<?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>162629</bug_id>
          
          <creation_ts>2016-09-27 13:37:12 -0700</creation_ts>
          <short_desc>Import w3c shadow DOM tests and fix one assertion</short_desc>
          <delta_ts>2016-09-27 20:00:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=162645</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1234044</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-27 13:37:12 -0700</bug_when>
    <thetext>Import web platform tests for shadow DOM and fix one assertion failure uncovered by the importation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234056</commentid>
    <comment_count>1</comment_count>
      <attachid>290004</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-27 13:51:37 -0700</bug_when>
    <thetext>Created attachment 290004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234065</commentid>
    <comment_count>2</comment_count>
      <attachid>290004</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-27 14:04:02 -0700</bug_when>
    <thetext>Comment on attachment 290004
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234069</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-27 14:06:38 -0700</bug_when>
    <thetext>Committed r206463: &lt;http://trac.webkit.org/changeset/206463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234231</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-09-27 20:00:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/28509314&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290004</attachid>
            <date>2016-09-27 13:51:37 -0700</date>
            <delta_ts>2016-09-27 14:04:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162629-20160927134838.patch</filename>
            <type>text/plain</type>
            <size>438498</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4MzU2Mzk2ZjA1MjBh
M2ZkODYzODQ2ZGFiOGQ5YjViZDE1NDQ5Zi4uZGViNzdiNzBlYmEzNWY3ZjUyZDFiOWMzZTAyOTMw
YzU3YmM4NjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE2LTA5LTI3ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcG9ydCB3M2Mgc2hhZG93
IERPTSB0ZXN0cyBhbmQgZml4IG9uZSBhc3NlcnRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBhc3NlcnRpb24gZmFpbHVyZSB3YXMgY2F1c2Vk
IGJ5IFJlbGF0ZWROb2RlUmV0YXJnZXRlcidzIGNvbnN0cnVjdG9yIG1peGluZyB1cCB0aGUgYW5j
ZXN0b3IgdHJlZSBzY29wZXMKKyAgICAgICAgZm9yIHRoZSB0YXJnZXQgYW5kIHRoZSByZWxhdGVk
IHRhcmdldC4gRml4ZWQgdGhlIGJ1ZyBieSByZXZlcnNpbmcgdGhlIHR3by4KKworICAgICAgICBU
ZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNv
bXBvc2VkLXBhdGgtd2l0aC1yZWxhdGVkLXRhcmdldC5odG1sCisKKyAgICAgICAgKiBkb20vRXZl
bnRQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbGF0ZWROb2RlUmV0YXJnZXRlcjo6UmVs
YXRlZE5vZGVSZXRhcmdldGVyKTogaSBhbmQgbV9hbmNlc3RvclRyZWVTY29wZXMgYXJlIGZvciB0
aGUgcmVsYXRlZCB0YXJnZXQKKyAgICAgICAgYW5kIGogYW5kIHRhcmdldFRyZWVTY29wZUFuY2Vz
dG9ycyBhcmUgZm9yIHRoZSB0YXJnZXQuCisKIDIwMTYtMDktMjcgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10g
SGFuZGxlIFdheWxhbmQgJiBYMTEgY29ycmVjdGx5IGZvciBHU1RfR0wKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFBhdGguY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
UGF0aC5jcHAKaW5kZXggODg3YjNkM2RmMDZhNDUzOGRjZGJjNGMwMDczY2NmNjBlOTBmMTZiNS4u
NjE4ZDhiM2MzMzRlOTM3OTM1YmVmMjI5NTFiZWYyYTNhYTU4OWVhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50UGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50UGF0aC5jcHAKQEAgLTI4OCw4ICsyODgsOCBAQCBSZWxhdGVkTm9kZVJldGFyZ2V0ZXI6OlJl
bGF0ZWROb2RlUmV0YXJnZXRlcihOb2RlJiByZWxhdGVkTm9kZSwgTm9kZSYgdGFyZ2V0KQogCiAg
ICAgYm9vbCBsb3dlc3RDb21tb25BbmNlc3RvcklzRG9jdW1lbnRTY29wZSA9IGkgKyAxID09IG1f
YW5jZXN0b3JUcmVlU2NvcGVzLnNpemUoKTsKICAgICBpZiAobG93ZXN0Q29tbW9uQW5jZXN0b3JJ
c0RvY3VtZW50U2NvcGUgJiYgIXJlbGF0ZWROb2RlLmluRG9jdW1lbnQoKSAmJiAhdGFyZ2V0Lmlu
RG9jdW1lbnQoKSkgewotICAgICAgICBOb2RlJiB0YXJnZXRBbmNlc3RvckluRG9jdW1lbnRTY29w
ZSA9IGkgPyAqZG93bmNhc3Q8U2hhZG93Um9vdD4obV9hbmNlc3RvclRyZWVTY29wZXNbaSAtIDFd
LT5yb290Tm9kZSgpKS5zaGFkb3dIb3N0KCkgOiB0YXJnZXQ7Ci0gICAgICAgIE5vZGUmIHJlbGF0
ZWROb2RlQW5jZXN0b3JJbkRvY3VtZW50U2NvcGUgPSBqID8gKmRvd25jYXN0PFNoYWRvd1Jvb3Q+
KHRhcmdldFRyZWVTY29wZUFuY2VzdG9yc1tqIC0gMV0tPnJvb3ROb2RlKCkpLnNoYWRvd0hvc3Qo
KSA6IHJlbGF0ZWROb2RlOworICAgICAgICBOb2RlJiByZWxhdGVkTm9kZUFuY2VzdG9ySW5Eb2N1
bWVudFNjb3BlID0gaSA/ICpkb3duY2FzdDxTaGFkb3dSb290PihtX2FuY2VzdG9yVHJlZVNjb3Bl
c1tpIC0gMV0tPnJvb3ROb2RlKCkpLnNoYWRvd0hvc3QoKSA6IHJlbGF0ZWROb2RlOworICAgICAg
ICBOb2RlJiB0YXJnZXRBbmNlc3RvckluRG9jdW1lbnRTY29wZSA9IGogPyAqZG93bmNhc3Q8U2hh
ZG93Um9vdD4odGFyZ2V0VHJlZVNjb3BlQW5jZXN0b3JzW2ogLSAxXS0+cm9vdE5vZGUoKSkuc2hh
ZG93SG9zdCgpIDogdGFyZ2V0OwogICAgICAgICBpZiAoJnRhcmdldEFuY2VzdG9ySW5Eb2N1bWVu
dFNjb3BlLnJvb3ROb2RlKCkgIT0gJnJlbGF0ZWROb2RlQW5jZXN0b3JJbkRvY3VtZW50U2NvcGUu
cm9vdE5vZGUoKSkgewogICAgICAgICAgICAgbV9oYXNEaWZmZXJlbnRUcmVlUm9vdCA9IHRydWU7
CiAgICAgICAgICAgICBtX3JldGFyZ2V0ZWRSZWxhdGVkTm9kZSA9IG1vdmVPdXRPZkFsbFNoYWRv
d1Jvb3RzKHJlbGF0ZWROb2RlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMmI4NjQ2Y2M1NTkwODVhM2FjM2M4YjFiMjdl
ZWVlMDgwNWViNTMzLi42ZTQ5NTYyNTU1NzRiOGI0OTZkNmU5NTdjYjg2YmI1MGVkZmY5NTRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDktMjcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgSW1wb3J0IHczYyBzaGFkb3cgRE9NIHRlc3RzIGFuZCBmaXgg
b25lIGFzc2VydGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYyNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRGVsZXRlZCB0aGUgZHVwbGljYXRlZCBjb3BpZXMgb2YgdGVzdHMgaW4gZmFzdC9zaGFk
b3cvIHNpbmNlIHRoaXMgcGF0Y2ggcmUtaW1wb3J0cyB0aGVtIHZpYSB3ZWItcGxhdGZvcm0tdGVz
dHMuCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vRWxlbWVudC1pbnRlcmZhY2UtYXR0YWNo
U2hhZG93LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20v
Tm9kZS1wcm90b3R5cGUtY2xvbmVOb2RlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKwogMjAxNi0w
OS0yNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJF
R1JFU1NJT04gKHIxODIxMjYpOiBTZWxlY3Rpb24gaGlnaGxpZ2h0IGFuZCBoYW5kbGVzIGFyZW7i
gJl0IHZpc2libGUgd2l0aCBXS1NlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA3ZmFjYTk1OGQ0YzdiMWViMWE1MjFiYjEwNjQwNDMx
ZTQ4NjVjOTRkLi44ZWNmZDI1MzQ4Njc5OGFjOGZmYjM1N2Q1YzdjOTQyZDNkNjIyZTA3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEgKzEsNzIgQEAKKzIwMTYtMDktMjcgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wb3J0IHczYyBzaGFk
b3cgRE9NIHRlc3RzIGFuZCBmaXggb25lIGFzc2VydGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wb3J0IHNoYWRvdyBET00gdGVzdHMgaW4gd2Vi
LXBsYXRmb3JtLXRlc3RzIGFzIG9mIDcxNjNkNmVlZWQ4MWU5ZTAyMDU0NWZiZTBjNGIxMWZjMmM1
OTYzY2QKKyAgICAgICAgZXhjZXB0IHVudHJpYWdlZCB0ZXN0cyBmb3IgdjAgQVBJLCB3aGljaCB3
ZSBvYnZpb3VzbHkgZG9uJ3QgaW1wbGVtZW50LgorCisgICAgICAgIE1vc3Qgb2YgdGhlc2UgdGVz
dHMgYXJlIHRoZSBvbmVzIHdlIHVwc3RyZWFtZWQgZnJvbSBmYXN0L3NoYWRvdy1kb20vLgorCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBl
LWFkb3B0Tm9kZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWFkb3B0Tm9kZS1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWFk
b3B0Tm9kZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0Rv
Y3VtZW50LXByb3RvdHlwZS1hZG9wdE5vZGUuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtY3VycmVudFNjcmlwdC1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRG9jdW1lbnQt
cHJvdG90eXBlLWN1cnJlbnRTY3JpcHQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1jdXJyZW50U2NyaXB0Lmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRG9jdW1lbnQtcHJv
dG90eXBlLWN1cnJlbnRTY3JpcHQuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtaW1wb3J0Tm9kZS1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBl
LWltcG9ydE5vZGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
aGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1pbXBvcnROb2RlLmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWltcG9ydE5v
ZGUuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9FbGVtZW50
LWludGVyZmFjZS1hdHRhY2hTaGFkb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFjZS1hdHRhY2hTaGFk
b3cuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9FbGVtZW50
LWludGVyZmFjZS1hdHRhY2hTaGFkb3cuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFjZS1zaGFkb3dSb290LWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRWxlbWVu
dC1pbnRlcmZhY2Utc2hhZG93Um9vdC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0VsZW1lbnQtaW50ZXJmYWNlLXNoYWRvd1Jv
b3QtYXR0cmlidXRlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vRWxlbWVudC1pbnRlcmZhY2Utc2hhZG93Um9vdC1hdHRyaWJ1dGUuaHRtbC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9FeHRlbnNpb25zLXRvLUV2ZW50LUludGVy
ZmFjZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vRXh0ZW5zaW9ucy10by1FdmVudC1JbnRlcmZhY2UtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0V4dGVuc2lvbnMtdG8tRXZlbnQtSW50ZXJm
YWNlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRXh0ZW5z
aW9ucy10by1FdmVudC1JbnRlcmZhY2UuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2hhZG93LWRvbS9IVE1MU2xvdEVsZW1lbnQtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9IVE1MU2xvdEVsZW1lbnQtaW50
ZXJmYWNlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93
LWRvbS9IVE1MU2xvdEVsZW1lbnQtaW50ZXJmYWNlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS5odG1sLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL01vdXNlRXZlbnQtcHJvdG90eXBl
LW9mZnNldFgtb2Zmc2V0WS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vTW91c2VFdmVudC1wcm90b3R5cGUtb2Zmc2V0WC1vZmZzZXRZLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Nb3VzZUV2
ZW50LXByb3RvdHlwZS1vZmZzZXRYLW9mZnNldFkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9Nb3VzZUV2ZW50LXByb3RvdHlwZS1vZmZzZXRYLW9mZnNldFku
aHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Ob2RlLXByb3Rv
dHlwZS1jbG9uZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9Ob2RlLXByb3RvdHlwZS1jbG9uZU5vZGUuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9Ob2RlLXByb3RvdHlwZS1jbG9uZU5v
ZGUuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9PV05FUlM6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL1NoYWRvd1Jv
b3QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qv
c2hhZG93LWRvbS9TaGFkb3dSb290LWludGVyZmFjZS1leHBlY3RlZC50eHQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vU2hhZG93Um9vdC1pbnRlcmZhY2UuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LWludGVy
ZmFjZS5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL1Nsb3Rh
YmxlLWludGVyZmFjZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vU2xvdGFibGUtaW50ZXJmYWNlLWFzc2lnbmVkU2xvdC1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vU2xvdGFibGUtaW50ZXJm
YWNlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vU2xvdGFi
bGUtaW50ZXJmYWNlLWFzc2lnbmVkU2xvdC5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtY29tcG9zZWQtcGF0aC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ct
ZG9tL2V2ZW50LWNvbXBvc2VkLXBhdGgtd2l0aC1yZWxhdGVkLXRhcmdldC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNv
bXBvc2VkLXBhdGgtd2l0aC1yZWxhdGVkLXRhcmdldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9ldmVudC1jb21wb3NlZC1wYXRoLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBv
c2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9t
L2V2ZW50LWluc2lkZS1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNoYWRvdy10cmVlLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9ldmVudC1pbnNp
ZGUtc2hhZG93LXRyZWUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93
LWRvbS9ldmVudC1pbnNpZGUtc2hhZG93LXRyZWUuaHRtbC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUt
c2xvdHRlZC1ub2RlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1s
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LXdpdGgtcmVs
YXRlZC10YXJnZXQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL2V2ZW50LXdpdGgtcmVsYXRlZC10YXJnZXQtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LXdpdGgtcmVsYXRlZC10YXJn
ZXQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC13
aXRoLXJlbGF0ZWQtdGFyZ2V0Lmh0bWwuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3No
YWRvdy1kb20vbGVha3Rlc3RzL2dldC1lbGVtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy9nZXQtZWxlbWVu
dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20v
bGVha3Rlc3RzL2h0bWwtY29sbGVjdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy9odG1sLWNvbGxlY3Rpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vbGVh
a3Rlc3RzL3czYy1pbXBvcnQubG9nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2hhZG93LWRvbS9sZWFrdGVzdHMvd2luZG93LWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy93aW5k
b3ctZnJhbWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFk
b3ctZG9tL3Jlc291cmNlcy9Eb2N1bWVudC1wcm90b3R5cGUtY3VycmVudFNjcmlwdC1oZWxwZXIu
anM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vcmVzb3VyY2VzL0Rv
Y3VtZW50LXByb3RvdHlwZS1jdXJyZW50U2NyaXB0LWhlbHBlci5qcy4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9yZXNvdXJjZXMvZXZlbnQtcGF0aC10ZXN0LWhlbHBl
cnMuanM6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Jl
c291cmNlcy9zaGFkb3ctZG9tLXV0aWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9yZXNvdXJjZXMvc2hhZG93LWRvbS5qczogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vcmVzb3VyY2VzL3czYy1pbXBvcnQu
bG9nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zY3Jv
bGwtdG8tdGhlLWZyYWdtZW50LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2Nyb2xsLXRvLXRoZS1mcmFn
bWVudC1pbi1zaGFkb3ctdHJlZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50LWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdl
LWV2ZW50Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vc2xv
dGNoYW5nZS1ldmVudC5odG1sLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ct
ZG9tL3Nsb3RjaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Nsb3RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2xvdHMtZmFsbGJhY2stZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRv
bS9zbG90cy1mYWxsYmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc2hhZG93LWRvbS9zbG90cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2hhZG93LWRvbS93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisKID09IFJvbGxlZCBvdmVy
IHRvIENoYW5nZUxvZy0yMDE2LTA5LTI2ID09CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWFkb3B0Tm9kZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWFkb3B0Tm9kZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNzNhMmViOTgxZjlh
OGFmNTk4N2IxMzBiY2VkN2E0ODU2NDk2MjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0RvY3VtZW50LXBy
b3RvdHlwZS1hZG9wdE5vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCww
IEBACi0KLVBBU1MgYWRvcHROb2RlIG9uIGEgc2hhZG93IHJvb3QgaW4gb3BlbiBtb2RlIG11c3Qg
dGhyb3cgYSBIaWVyYXJjaHlSZXF1ZXN0RXJyb3IgCi1QQVNTIGFkb3B0Tm9kZSBvbiBhIHNoYWRv
dyByb290IGluIGNsb3NlZCBtb2RlIG11c3QgdGhyb3cgYSBIaWVyYXJjaHlSZXF1ZXN0RXJyb3Ig
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90
b3R5cGUtYWRvcHROb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRG9jdW1l
bnQtcHJvdG90eXBlLWFkb3B0Tm9kZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyMWU1ODc1OTJjNTZmZWUyNThjZTFjMzg2Nzg4Zjk5MDdmNzVlY2JjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93
LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtYWRvcHROb2RlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+RE9N
IGFuZCBTaGFkb3cgRE9NOiBEb2N1bWVudC5wcm90b3R5cGUuYWRvcHROb2RlPC90aXRsZT4KLTxt
ZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdh
QHdlYmtpdC5vcmciPgotPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJUaGUgYWRvcHROb2Rl
KG5vZGUpIG1ldGhvZCBtdXN0IHRocm93IGEgSGllcmFyY2h5UmVxdWVzdEVycm9yIGV4Y2VwdGlv
biBpZiBub2RlIGlzIGEgc2hhZG93IHJvb3QuIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20tZG9jdW1lbnQtYWRvcHRub2RlIj4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5j
c3MnPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQot
ZnVuY3Rpb24gdGVzdEFkb3B0Tm9kZShtb2RlKSB7Ci0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIHZhciBuZXdEb2N1bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhU
TUxEb2N1bWVudCgpOwotICAgICAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3InfSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgIHZhciBzaGFkb3dSb290
ID0gZWxlbWVudC5hdHRhY2hTaGFkb3coe21vZGU6IG1vZGV9KTsKLSAgICAgICAgICAgIG5ld0Rv
Y3VtZW50LmFkb3B0Tm9kZShzaGFkb3dSb290KTsKLSAgICAgICAgfSk7Ci0gICAgfSwgJ2Fkb3B0
Tm9kZSBvbiBhIHNoYWRvdyByb290IGluICcgKyBtb2RlICsgJyBtb2RlIG11c3QgdGhyb3cgYSBI
aWVyYXJjaHlSZXF1ZXN0RXJyb3InKTsKLX0KLQotdGVzdEFkb3B0Tm9kZSgnb3BlbicpOwotdGVz
dEFkb3B0Tm9kZSgnY2xvc2VkJyk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1j
dXJyZW50U2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9E
b2N1bWVudC1wcm90b3R5cGUtY3VycmVudFNjcmlwdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGYxMGI4YjcyYjE5MzA0NGFjOGM1M2I4YzZiOWJlMWE4YmI0MmM0
NzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1jdXJyZW50U2NyaXB0LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLQotUEFTUyBkb2N1bWVu
dC5jdXJyZW50U2NyaXB0IG11c3Qgbm90IHRvIGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IGlu
IGEgc2hhZG93IHRyZWUgaW4gb3BlbiBtb2RlIAotUEFTUyBkb2N1bWVudC5jdXJyZW50U2NyaXB0
IG11c3Qgbm90IHRvIGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IGluIGEgc2hhZG93IHRyZWUg
aW4gY2xvc2VkIG1vZGUgCi1QQVNTIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQgbXVzdCBiZSBzZXQg
dG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0IGxvYWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhIGRv
Y3VtZW50IHRyZWUgCi1QQVNTIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQgbXVzdCBiZSBzZXQgdG8g
YSBzY3JpcHQgZWxlbWVudCB0aGF0IGxvYWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhIGRvY3Vt
ZW50IHRyZWUgCi1QQVNTIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQgbXVzdCBub3QgYmUgc2V0IHRv
IGEgc2NyaXB0IGVsZW1lbnQgdGhhdCBsb2FkcyBhbiBleHRlcm5hbCBzY3JpcHQgaW4gYW4gb3Bl
biBzaGFkb3cgdHJlZSAKLVBBU1MgZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0IG5vdCBiZSBz
ZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0IGxvYWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBh
IGNsb3NlZCBzaGFkb3cgdHJlZSAKLVBBU1MgZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0IGJl
IHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9hZHMgYW4gZXh0ZXJuYWwgc2NyaXB0IHRo
YXQgd2FzIGluIGFuIG9wZW4gc2hhZG93IHRyZWUgYW5kIHRoZW4gcmVtb3ZlZCAKLVBBU1MgZG9j
dW1lbnQuY3VycmVudFNjcmlwdCBtdXN0IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQg
bG9hZHMgYW4gZXh0ZXJuYWwgc2NyaXB0IHRoYXQgd2FzIGluIGEgY2xvc2VkIHNoYWRvdyB0cmVl
IGFuZCB0aGVuIHJlbW92ZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93
LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtY3VycmVudFNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zaGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1jdXJyZW50U2NyaXB0Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmZjM1MmI3ZGVlYTYxMjhlZjcyNjFiZjg1ZWZl
OTE2ZTE1MDcxZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1jdXJyZW50
U2NyaXB0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkRPTSBhbmQgU2hhZG93IERPTTogRG9jdW1lbnQu
cHJvdG90eXBlLmFkb3B0Tm9kZTwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJS
eW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iSWYgdGhlIHNjcmlwdCBlbGVtZW50IGlzIGluIGEgZG9jdW1lbnQs
IHRoZW4gc2V0IHRoZSBzY3JpcHQgZWxlbWVudCdzIG5vZGUgZG9jdW1lbnQncyBjdXJyZW50U2Ny
aXB0IGF0dHJpYnV0ZSB0byB0aGUgc2NyaXB0IGVsZW1lbnQuIj4KLTxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0
bWwjZXhlY3V0ZS10aGUtc2NyaXB0LWJsb2NrIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9J3N0eWxlc2hlZXQn
IGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgotPC9oZWFkPgotPGJvZHk+
Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdCBpZD0ib3V0ZXJTY3JpcHRFbGVtZW50Ij4K
LQotdmFyIG91dGVyU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQ7Ci0KLWZ1
bmN0aW9uIHRlc3RJbmxpbmVTY3JpcHQobW9kZSkKLXsKLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAg
ICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogbW9kZX0pOwotICAg
ICAgICB2YXIgc2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcp
OwotICAgICAgICBzY3JpcHRFbGVtZW50LnRleHRDb250ZW50ID0gJ2Fzc2VydF9lcXVhbHMoZG9j
dW1lbnQuY3VycmVudFNjcmlwdCwgb3V0ZXJTY3JpcHRFbGVtZW50KSc7Ci0gICAgICAgIHNoYWRv
d1Jvb3QuYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbWVudCk7Ci0KLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhkb2N1bWVudC5jdXJyZW50U2NyaXB0LCBvdXRlclNjcmlwdEVsZW1lbnQsCi0gICAgICAgICAg
ICAnZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0IGJlIHNldCB0byB0aGUgY3VycmVudGx5IGV4
Y3VzaW5nIHNjcmlwdCBlbGVtZW50IGluIGEgZG9jdW1lbnQgdHJlZSBiZWZvcmUgZXhlY3V0aW5n
IGEgc2NyaXB0IGluIGEgc2hhZG93IHRyZWUnKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChob3N0KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5jdXJyZW50U2Ny
aXB0LCBvdXRlclNjcmlwdEVsZW1lbnQsCi0gICAgICAgICAgICAnZG9jdW1lbnQuY3VycmVudFNj
cmlwdCBtdXN0IGJlIHNldCB0byB0aGUgY3VycmVudGx5IGV4Y3VzaW5nIHNjcmlwdCBlbGVtZW50
IGluIGEgZG9jdW1lbnQgdHJlZSBhZnRlciBleGVjdXRpbmcgYSBzY3JpcHQgaW4gYSBzaGFkb3cg
dHJlZScpOwotCi0gICAgfSwgJ2RvY3VtZW50LmN1cnJlbnRTY3JpcHQgbXVzdCBub3QgdG8gYmUg
c2V0IHRvIGEgc2NyaXB0IGVsZW1lbnQgaW4gYSBzaGFkb3cgdHJlZSBpbiAnICsgbW9kZSArICcg
bW9kZScpOwotfQotCi10ZXN0SW5saW5lU2NyaXB0KCdvcGVuJyk7Ci10ZXN0SW5saW5lU2NyaXB0
KCdjbG9zZWQnKTsKLQotdmFyIGV4ZWN1dGVFeHRlcm5hbFNjcmlwdCA9IG51bGw7Ci12YXIgdGVz
dGVkU2NyaXB0RWxlbWVudCA9IG51bGw7Ci1mdW5jdGlvbiBleGVjdXRlTmV4dFRlc3QoKQotewot
ICAgIHZhciB0ZXN0Q2FzZSA9IGFzeW5jU2NyaXB0VGVzdHMuc2hpZnQoKTsKLSAgICB2YXIgbW9k
ZSA9IHRlc3RDYXNlLm1vZGU7Ci0gICAgdmFyIHJlbW92ZSA9IHRlc3RDYXNlLm1vZGU7Ci0gICAg
aWYgKCF0ZXN0Q2FzZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGVzdENhc2UudGVzdC5zdGVw
KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdGVzdGVkU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwotICAgICAgICB0ZXN0ZWRTY3JpcHRFbGVtZW50LnNyYyA9
ICdyZXNvdXJjZXMvRG9jdW1lbnQtcHJvdG90eXBlLWN1cnJlbnRTY3JpcHQtaGVscGVyLmpzJzsK
LQotICAgICAgICBpZiAobW9kZSAhPT0gbnVsbCkgewotICAgICAgICAgICAgdmFyIGhvc3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgIHZhciBzaGFkb3dSb290
ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6IG1vZGV9KTsKLSAgICAgICAgICAgIHNoYWRvd1Jv
b3QuYXBwZW5kQ2hpbGQodGVzdGVkU2NyaXB0RWxlbWVudCk7Ci0gICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0ZWRTY3JpcHRFbGVtZW50KTsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmICh0ZXN0Q2FzZS5yZW1vdmUpCi0gICAgICAgICAgICB0ZXN0ZWRTY3Jp
cHRFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVzdGVkU2NyaXB0RWxlbWVudCk7Ci0g
ICAgfSk7Ci0KLSAgICBleGVjdXRlRXh0ZXJuYWxTY3JpcHQgPSBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIHRlc3RDYXNlLnRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQsIHRlc3RDYXNlLmV4cGVjdGVkKCkpOwotICAg
ICAgICB9KTsKLSAgICAgICAgdGVzdENhc2UudGVzdC5kb25lKCk7Ci0gICAgICAgIHNldFRpbWVv
dXQoZXhlY3V0ZU5leHRUZXN0LCAxKTsKLSAgICB9Ci19Ci0KLXZhciBhc3luY1NjcmlwdFRlc3Rz
ID0gWwotICAgIHsKLSAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQuY3VycmVudFNj
cmlwdCBtdXN0IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9hZHMgYW4gZXh0ZXJu
YWwgc2NyaXB0IGluIGEgZG9jdW1lbnQgdHJlZScpLAotICAgICAgICBtb2RlOiBudWxsLCByZW1v
dmU6IGZhbHNlLCBleHBlY3RlZDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdGVkU2NyaXB0RWxl
bWVudDsgfX0sCi0gICAgewotICAgICAgICB0ZXN0OiBhc3luY190ZXN0KCdkb2N1bWVudC5jdXJy
ZW50U2NyaXB0IG11c3QgYmUgc2V0IHRvIGEgc2NyaXB0IGVsZW1lbnQgdGhhdCBsb2FkcyBhbiBl
eHRlcm5hbCBzY3JpcHQgaW4gYSBkb2N1bWVudCB0cmVlJyksCi0gICAgICAgIG1vZGU6IG51bGws
IHJlbW92ZTogdHJ1ZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3RlZFNjcmlw
dEVsZW1lbnQ7IH19LAotICAgIHsKLSAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQu
Y3VycmVudFNjcmlwdCBtdXN0IG5vdCBiZSBzZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0IGxv
YWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhbiBvcGVuIHNoYWRvdyB0cmVlJyksCi0gICAgICAg
IG1vZGU6ICdvcGVuJywgcmVtb3ZlOiBmYWxzZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgpIHsgcmV0
dXJuIG51bGw7IH19LAotICAgIHsKLSAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQu
Y3VycmVudFNjcmlwdCBtdXN0IG5vdCBiZSBzZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0IGxv
YWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhIGNsb3NlZCBzaGFkb3cgdHJlZScpLAotICAgICAg
ICBtb2RlOiAnY2xvc2VkJywgcmVtb3ZlOiBmYWxzZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgpIHsg
cmV0dXJuIG51bGw7IH19LAotICAgIHsKLSAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1l
bnQuY3VycmVudFNjcmlwdCBtdXN0IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9h
ZHMgYW4gZXh0ZXJuYWwgc2NyaXB0IHRoYXQgd2FzIGluIGFuIG9wZW4gc2hhZG93IHRyZWUgYW5k
IHRoZW4gcmVtb3ZlZCcpLAotICAgICAgICBtb2RlOiAnb3BlbicsIHJlbW92ZTogdHJ1ZSwgZXhw
ZWN0ZWQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3RlZFNjcmlwdEVsZW1lbnQ7IH19LAotICAg
IHsKLSAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0
IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9hZHMgYW4gZXh0ZXJuYWwgc2NyaXB0
IHRoYXQgd2FzIGluIGEgY2xvc2VkIHNoYWRvdyB0cmVlIGFuZCB0aGVuIHJlbW92ZWQnKSwKLSAg
ICAgICAgbW9kZTogJ2Nsb3NlZCcsIHJlbW92ZTogdHJ1ZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIHRlc3RlZFNjcmlwdEVsZW1lbnQ7IH19LAotXTsKLQotZXhlY3V0ZU5leHRUZXN0
KCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1pbXBvcnROb2RlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtaW1w
b3J0Tm9kZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExMzQ1
OTRkMmZmNmUzMzllYzE1NzZmMmU0ZjM2MzBhMTE4NGQ2NGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0Rv
Y3VtZW50LXByb3RvdHlwZS1pbXBvcnROb2RlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDQgKzAsMCBAQAotCi1QQVNTIGltcG9ydE5vZGUgb24gYSBzaGFkb3cgcm9vdCBpbiBvcGVu
IG1vZGUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIAotUEFTUyBpbXBvcnROb2RlIG9u
IGEgc2hhZG93IHJvb3QgaW4gY2xvc2VkIG1vZGUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVy
cm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRG9jdW1lbnQt
cHJvdG90eXBlLWltcG9ydE5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9E
b2N1bWVudC1wcm90b3R5cGUtaW1wb3J0Tm9kZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhNDVjMjhjMmU2NzEyODY1MzA0MDE5NDhkZTI5ZmQ1OTI4MGI3NDE1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
c2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtaW1wb3J0Tm9kZS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRp
dGxlPkRPTSBhbmQgU2hhZG93IERPTTogRG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGU8L3Rp
dGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWls
dG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlRoZSBp
bXBvcnROb2RlKG5vZGUsIGRlZXApIG1ldGhvZCBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJy
b3IgZXhjZXB0aW9uIGlmIG5vZGUgaXMgYSBzaGFkb3cgcm9vdC4iPgotPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1kb2N1bWVudC1pbXBvcnRu
b2RlIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5jc3MnPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdEltcG9ydE5vZGUobW9kZSkgewotICAgIHRlc3QoZnVu
Y3Rpb24gKCkgewotICAgICAgICB2YXIgbmV3RG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRh
dGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKLSAgICAgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUn
OiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgIHZhciBz
aGFkb3dSb290ID0gZWxlbWVudC5hdHRhY2hTaGFkb3coe21vZGU6IG1vZGV9KTsKLSAgICAgICAg
ICAgIG5ld0RvY3VtZW50LmltcG9ydE5vZGUoc2hhZG93Um9vdCk7Ci0gICAgICAgIH0pOwotICAg
IH0sICdpbXBvcnROb2RlIG9uIGEgc2hhZG93IHJvb3QgaW4gJyArIG1vZGUgKyAnIG1vZGUgbXVz
dCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yJyk7Ci19Ci0KLXRlc3RJbXBvcnROb2RlKCdvcGVu
Jyk7Ci10ZXN0SW1wb3J0Tm9kZSgnY2xvc2VkJyk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0VsZW1lbnQtaW50
ZXJmYWNlLWF0dGFjaFNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRv
dy1kb20vRWxlbWVudC1pbnRlcmZhY2UtYXR0YWNoU2hhZG93LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRjNGVjMmIxZmI0ZWJlYmU3NGE1MWJhODdhODQ5Yjlj
Y2NkMzA1NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRWxlbWVudC1pbnRlcmZhY2UtYXR0YWNoU2hhZG93
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLQotUEFTUyBDaGVj
ayB0aGUgZXhpc3RlbmNlIG9mIEVsZW1lbnQuYXR0YWNoU2hhZG93IAotUEFTUyBOb2RlcyBvdGhl
ciB0aGFuIEVsZW1lbnQgc2hvdWxkIG5vdCBoYXZlIGF0dGFjaFNoYWRvdyAKLVBBU1MgRWxlbWVu
dC5hdHRhY2hTaGFkb3cgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciBpZiBtb2RlIGlzIG5vdCAib3Bl
biIgb3IgImNsb3NlZCIgCi1QQVNTIEVsZW1lbnQuYXR0YWNoU2hhZG93IG11c3QgY3JlYXRlIGFu
IGluc3RhbmNlIG9mIFNoYWRvd1Jvb3QgCi1QQVNTIEVsZW1lbnQuYXR0YWNoU2hhZG93IG11c3Qg
dGhyb3cgYSBJbnZhbGlkU3RhdGVFcnJvciBpZiB0aGUgY29udGV4dCBvYmplY3QgYWxyZWFkeSBo
b3N0cyBhIHNoYWRvdyB0cmVlIAotUEFTUyBFbGVtZW50LmF0dGFjaFNoYWRvdyBtdXN0IHRocm93
IGEgTm90U3VwcG9ydGVkRXJyb3Igb24gSFRNTCBlbGVtZW50cyB3aG9zZSBsb2NhbCBuYW1lIGlz
IG5vdCBvbmUgb2YgYXJ0aWNsZSwgYXNpZGUsIGJsb2NrcXVvdGUsIGJvZHksIGRpdiwgZm9vdGVy
LCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBoZWFkZXIsIG5hdiwgcCwgc2VjdGlvbiwgc3BhbiAK
LVBBU1MgRWxlbWVudC5hdHRhY2hTaGFkb3cgbXVzdCBub3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRF
cnJvciBvbiBhcnRpY2xlLCBhc2lkZSwgYmxvY2txdW90ZSwgYm9keSwgZGl2LCBmb290ZXIsIGgx
LCBoMiwgaDMsIGg0LCBoNSwgaDYsIGhlYWRlciwgbmF2LCBwLCBzZWN0aW9uLCBzcGFuIAotUEFT
UyBFbGVtZW50LmF0dGFjaFNoYWRvdyBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3Igb24g
YSBIVE1MS25vd25FbGVtZW50IHdoaWNoIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBjdXN0b20gZWxl
bWVudCAKLVBBU1MgRWxlbWVudC5hdHRhY2hTaGFkb3cgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRl
ZEVycm9yIG9uIGEgSFRNTEtub3duRWxlbWVudCB3aGljaCBoYXMgYSB2YWxpZCBjdXN0b20gZWxl
bWVudCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0VsZW1lbnQt
aW50ZXJmYWNlLWF0dGFjaFNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L0VsZW1lbnQtaW50ZXJmYWNlLWF0dGFjaFNoYWRvdy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMjRhZDlmZmZkMDg2NDg5OGRhZDMwMmJlZDAyNWNlNWNhMWFjY2U1Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFjZS1hdHRhY2hTaGFkb3cuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDEzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08dGl0bGU+U2hhZG93IERPTTogQXR0YWNoaW5nIGEgU2hhZG93Um9vdDwvdGl0bGU+Ci08bWV0
YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3
ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iRWxlbWVudC5wcm90b3R5
cGUuYXR0YWNoU2hhZG93IHNob3VsZCBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2hhZG93Um9vdCI+
Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25l
bnRzL3NwZWMvc2hhZG93LyN3aWRsLUVsZW1lbnQtYXR0YWNoU2hhZG93LVNoYWRvd1Jvb3QtU2hh
ZG93Um9vdEluaXQtc2hhZG93Um9vdEluaXREaWN0Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9J3N0eWxlc2hl
ZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgotPC9oZWFkPgotPGJv
ZHk+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQotdGVzdChmdW5jdGlvbiAoKSB7
Ci0gICAgYXNzZXJ0X3RydWUoJ2F0dGFjaFNoYWRvdycgaW4gRWxlbWVudC5wcm90b3R5cGUsICdF
bGVtZW50LnByb3RvdHlwZS5hdHRhY2hTaGFkb3cgbXVzdCBleGlzdCcpOwotICAgIGFzc2VydF9l
cXVhbHModHlwZW9mKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmF0dGFjaFNoYWRvdyks
ICdmdW5jdGlvbicsICdBbiBpbnN0YW5jZSBvZiBkaXYgbXVzdCBoYXZlIGF0dGFjaFNoYWRvdyB3
aGljaCBpcyBhIGZ1bmN0aW9uJyk7Ci19LCAnQ2hlY2sgdGhlIGV4aXN0ZW5jZSBvZiBFbGVtZW50
LmF0dGFjaFNoYWRvdycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfZmFsc2Uo
J2F0dGFjaFNoYWRvdycgaW4gTm9kZS5wcm90b3R5cGUsICdOb2RlLnByb3RvdHlwZS5hdHRhY2hT
aGFkb3cgbXVzdCBub3QgZXhpc3QnKTsKLSAgICBhc3NlcnRfZmFsc2UoJ2F0dGFjaFNoYWRvdycg
aW4gQ2hhcmFjdGVyRGF0YS5wcm90b3R5cGUsICdDaGFyYWN0ZXJEYXRhLnByb3RvdHlwZS5hdHRh
Y2hTaGFkb3cgbXVzdCBub3QgZXhpc3QnKTsKLSAgICBhc3NlcnRfZmFsc2UoJ2F0dGFjaFNoYWRv
dycgaW4gQ29tbWVudC5wcm90b3R5cGUsICdDb21tZW50LnByb3RvdHlwZS5hdHRhY2hTaGFkb3cg
bXVzdCBub3QgZXhpc3QnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZihkb2N1bWVudC5jcmVh
dGVDb21tZW50KCcnKS5hdHRhY2hTaGFkb3cpLCAndW5kZWZpbmVkJywgJ0FuIGluc3RhbmNlIG9m
IGNvbW1lbnQgbXVzdCBub3QgaGF2ZSBhdHRhY2hTaGFkb3cnKTsKLSAgICBhc3NlcnRfZmFsc2Uo
J2F0dGFjaFNoYWRvdycgaW4gRG9jdW1lbnQucHJvdG90eXBlLCAnRG9jdW1lbnQucHJvdG90eXBl
LmF0dGFjaFNoYWRvdyBtdXN0IG5vdCBleGlzdCcpOwotICAgIGFzc2VydF9lcXVhbHModHlwZW9m
KGRvY3VtZW50LmF0dGFjaFNoYWRvdyksICd1bmRlZmluZWQnLCAnQW4gaW5zdGFuY2Ugb2YgZG9j
dW1lbnQgbXVzdCBub3QgaGF2ZSBhdHRhY2hTaGFkb3cgd2hpY2ggaXMgYSBmdW5jdGlvbicpOwot
ICAgIGFzc2VydF9mYWxzZSgnYXR0YWNoU2hhZG93JyBpbiBEb2N1bWVudEZyYWdtZW50LnByb3Rv
dHlwZSwgJ0RvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdyBtdXN0IG5vdCBl
eGlzdCcpOwotICAgIGFzc2VydF9lcXVhbHModHlwZW9mKChuZXcgRE9NUGFyc2VyKCkpLnBhcnNl
RnJvbVN0cmluZygnJywgJ3RleHQvaHRtbCcpLmF0dGFjaFNoYWRvdyksICd1bmRlZmluZWQnLCAn
QW4gaW5zdGFuY2Ugb2YgZG9jdW1lbnQgbXVzdCBub3QgaGF2ZSBhdHRhY2hTaGFkb3cgd2hpY2gg
aXMgYSBmdW5jdGlvbicpOwotICAgIGFzc2VydF9mYWxzZSgnYXR0YWNoU2hhZG93JyBpbiBUZXh0
LnByb3RvdHlwZSwgJ1RleHQucHJvdG90eXBlLmF0dGFjaFNoYWRvdyBtdXN0IG5vdCBleGlzdCcp
OwotICAgIGFzc2VydF9lcXVhbHModHlwZW9mKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKS5h
dHRhY2hTaGFkb3cpLCAndW5kZWZpbmVkJywgJ0FuIGluc3RhbmNlIG9mIHRleHQgbm9kZSBtdXN0
IG5vdCBoYXZlIGF0dGFjaFNoYWRvdycpOwotfSwgJ05vZGVzIG90aGVyIHRoYW4gRWxlbWVudCBz
aG91bGQgbm90IGhhdmUgYXR0YWNoU2hhZG93Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAg
IGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmF0dGFjaFNoYWRvdyh7fSkKLSAgICB9
LCAnYXR0YWNoU2hhZG93IG11c3QgdGhyb3cgYSBUeXBlRXJyb3Igd2hlbiBtb2RlIGlzIG9taXR0
ZWQnKTsKLQotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmF0dGFjaFNoYWRv
dyh7bW9kZTogdHJ1ZX0pCi0gICAgfSwgJ2F0dGFjaFNoYWRvdyBtdXN0IHRocm93IGEgVHlwZUVy
cm9yIHdoZW4gbW9kZSBpcyBhIGJvb2xlYW4nKTsKLQotICAgIGFzc2VydF90aHJvd3MoeyduYW1l
JzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpLmF0dGFjaFNoYWRvdyh7bW9kZTogMX0pCi0gICAgfSwgJ2F0dGFjaFNoYWRv
dyBtdXN0IHRocm93IGEgVHlwZUVycm9yIHdoZW4gbW9kZSBpcyAxJyk7Ci19LCAnRWxlbWVudC5h
dHRhY2hTaGFkb3cgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciBpZiBtb2RlIGlzIG5vdCAib3BlbiIg
b3IgImNsb3NlZCInKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgYXNzZXJ0X3RydWUoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykuYXR0YWNoU2hhZG93KHttb2RlOiAib3BlbiJ9KSBp
bnN0YW5jZW9mIFNoYWRvd1Jvb3QsCi0gICAgICAgICdhdHRhY2hTaGFkb3coe21vZGU6ICJvcGVu
In0pIHNob3VsZCBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2hhZG93Um9vdCcpOwotICAgIGFzc2Vy
dF90cnVlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmF0dGFjaFNoYWRvdyh7bW9kZTog
ImNsb3NlZCJ9KSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QsCi0gICAgICAgICdhdHRhY2hTaGFkb3co
e21vZGU6ICJjbG9zZWQifSkgc2hvdWxkIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTaGFkb3dSb290
Jyk7Ci19LCAnRWxlbWVudC5hdHRhY2hTaGFkb3cgbXVzdCBjcmVhdGUgYW4gaW5zdGFuY2Ugb2Yg
U2hhZG93Um9vdCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfdGhyb3dzKHsn
bmFtZSc6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgZGl2LmF0dGFjaFNo
YWRvdyh7bW9kZTogIm9wZW4ifSk7Ci0gICAgICAgIGRpdi5hdHRhY2hTaGFkb3coe21vZGU6ICJv
cGVuIn0pOwotICAgIH0sICdDYWxsaW5nIGF0dGFjaFNoYWRvdyh7bW9kZTogIm9wZW4ifSkgdHdp
Y2Ugb24gdGhlIHNhbWUgZWxlbWVudCBtdXN0IHRocm93Jyk7Ci0KLSAgICBhc3NlcnRfdGhyb3dz
KHsnbmFtZSc6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgZGl2LmF0dGFj
aFNoYWRvdyh7bW9kZTogImNsb3NlZCJ9KTsKLSAgICAgICAgZGl2LmF0dGFjaFNoYWRvdyh7bW9k
ZTogImNsb3NlZCJ9KTsKLSAgICB9LCAnQ2FsbGluZyBhdHRhY2hTaGFkb3coe21vZGU6ICJjbG9z
ZWQifSkgdHdpY2Ugb24gdGhlIHNhbWUgZWxlbWVudCBtdXN0IHRocm93Jyk7Ci0KLSAgICBhc3Nl
cnRfdGhyb3dzKHsnbmFtZSc6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAg
ZGl2LmF0dGFjaFNoYWRvdyh7bW9kZTogIm9wZW4ifSk7Ci0gICAgICAgIGRpdi5hdHRhY2hTaGFk
b3coe21vZGU6ICJjbG9zZWQifSk7Ci0gICAgfSwgJ0NhbGxpbmcgYXR0YWNoU2hhZG93KHttb2Rl
OiAiY2xvc2VkIn0pIGFmdGVyIGF0dGFjaFNoYWRvdyh7bW9kZTogIm9wZW4ifSkgb24gdGhlIHNh
bWUgZWxlbWVudCBtdXN0IHRocm93Jyk7Ci0KLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdJ
bnZhbGlkU3RhdGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgZGl2LmF0dGFjaFNoYWRvdyh7bW9k
ZTogImNsb3NlZCJ9KTsKLSAgICAgICAgZGl2LmF0dGFjaFNoYWRvdyh7bW9kZTogIm9wZW4ifSk7
Ci0gICAgfSwgJ0NhbGxpbmcgYXR0YWNoU2hhZG93KHttb2RlOiAib3BlbiJ9KSBhZnRlciBhdHRh
Y2hTaGFkb3coe21vZGU6ICJjbG9zZWQifSkgb24gdGhlIHNhbWUgZWxlbWVudCBtdXN0IHRocm93
Jyk7Ci19LCAnRWxlbWVudC5hdHRhY2hTaGFkb3cgbXVzdCB0aHJvdyBhIEludmFsaWRTdGF0ZUVy
cm9yIGlmIHRoZSBjb250ZXh0IG9iamVjdCBhbHJlYWR5IGhvc3RzIGEgc2hhZG93IHRyZWUnKTsK
LQotdmFyIGh0bWxFbGVtZW50TmFtZXMgPSBbJ2EnLCAnYWJicicsICdhY3JvbnltJywgJ2FkZHJl
c3MnLCAnYXBwbGV0JywgJ2FyZWEnLCAnYXJ0aWNsZScsICdhc2lkZScsICdhdWRpbycsICdiJywg
J2Jhc2UnLCAnYmFzZWZvbnQnLCAnYmRpJywKLSAgICAnYmRvJywgJ2Jnc291bmQnLCAnYmlnJywg
J2Jsb2NrcXVvdGUnLCAnYm9keScsICdicicsICdidXR0b24nLCAnY2FudmFzJywgJ2NhcHRpb24n
LCAnY2VudGVyJywgJ2NpdGUnLCAnY29kZScsICdjb2wnLCAnY29sZ3JvdXAnLAotICAgICdjb21t
YW5kJywgJ2RhdGEnLCAnZGF0YWxpc3QnLCAnZGQnLCAnZGVsJywgJ2RldGFpbHMnLCAnZGZuJywg
J2RpcicsICdkaXYnLCAnZGwnLCAnZHQnLCAnZW0nLCAnZW1iZWQnLCAnZmllbGRzZXQnLCAnZmln
Y2FwdGlvbicsCi0gICAgJ2ZpZ3VyZScsICdmb250JywgJ2Zvb3RlcicsICdmb3JtJywgJ2ZyYW1l
JywgJ2ZyYW1lc2V0JywgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWQn
LCAnaGVhZGVyJywgJ2hncm91cCcsICdocicsCi0gICAgJ2h0bWwnLCAnaScsICdpZnJhbWUnLCAn
aW1hZ2UnLCAnaW1nJywgJ2lucHV0JywgJ2lucycsICdpc2luZGV4JywgJ2tiZCcsICdrZXlnZW4n
LCAnbGFiZWwnLCAnbGF5ZXInLCAnbGVnZW5kJywgJ2xpJywgJ2xpbmsnLCAnbGlzdGluZycsCi0g
ICAgJ21haW4nLCAnbWFwJywgJ21hcmsnLCAnbWFycXVlZScsICdtZW51JywgJ21ldGEnLCAnbWV0
ZXInLCAnbmF2JywgJ25vYnInLCAnbm9lbWJlZCcsICdub2ZyYW1lcycsICdub2xheWVyJywgJ29i
amVjdCcsICdvbCcsICdvcHRncm91cCcsCi0gICAgJ29wdGlvbicsICdvdXRwdXQnLCAncCcsICdw
YXJhbScsICdwaWN0dXJlJywgJ3BsYWludGV4dCcsICdwcmUnLCAncHJvZ3Jlc3MnLCAncScsICdy
YicsICdycCcsICdydCcsICdydGMnLCAncnVieScsICdzJywgJ3NhbXAnLCAnc2NyaXB0JywKLSAg
ICAnc2VjdGlvbicsICdzZWxlY3QnLCAnc2xvdCcsICdzbWFsbCcsICdzb3VyY2UnLCAnc3Bhbics
ICdzdHJpa2UnLCAnc3Ryb25nJywgJ3N0eWxlJywgJ3N1YicsICdzdW1tYXJ5JywgJ3N1cCcsICd0
YWJsZScsICd0Ym9keScsICd0ZCcsCi0gICAgJ3RlbXBsYXRlJywgJ3RleHRhcmVhJywgJ3Rmb290
JywgJ3RoJywgJ3RoZWFkJywgJ3RpbWUnLCAndGl0bGUnLCAndHInLCAndHJhY2snLCAndHQnLCAn
dScsICd1bCcsICd2YXInLCAndmlkZW8nLCAnd2JyJywgJ3htcCcsICdub3NjcmlwdCddOwotdmFy
IGFsbG93aW5nQXR0YWNoU2hhZG93ID0gWyJhcnRpY2xlIiwgImFzaWRlIiwgImJsb2NrcXVvdGUi
LCAiYm9keSIsICJkaXYiLCAiZm9vdGVyIiwgImgxIiwgImgyIiwgImgzIiwgImg0IiwgImg1Iiwg
Img2IiwgImhlYWRlciIsICJuYXYiLCAicCIsICJzZWN0aW9uIiwgInNwYW4iXTsKLQotdGVzdChm
dW5jdGlvbiAoKSB7Ci0gICAgZm9yICh2YXIgZWxlbWVudE5hbWUgb2YgaHRtbEVsZW1lbnROYW1l
cykgewotICAgICAgICBpZiAoYWxsb3dpbmdBdHRhY2hTaGFkb3cuaW5kZXhPZihlbGVtZW50TmFt
ZSkgPj0gMCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGFzc2VydF90aHJvd3Mo
eyduYW1lJzogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudE5hbWUpLmF0dGFjaFNoYWRvdyh7bW9kZTog
Im9wZW4ifSk7Ci0gICAgICAgIH0sICdDYWxsaW5nIGF0dGFjaFNoYWRvdyh7bW9kZTogIm9wZW4i
fSkgb24gJyArIGVsZW1lbnROYW1lICsgJyBlbGVtZW50IG11c3QgdGhyb3cnKTsKLQotICAgICAg
ICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnROYW1lKS5hdHRh
Y2hTaGFkb3coe21vZGU6ICJjbG9zZWQifSk7Ci0gICAgICAgIH0sICdDYWxsaW5nIGF0dGFjaFNo
YWRvdyh7bW9kZTogImNsb3NlZCJ9KSBvbiAnICsgZWxlbWVudE5hbWUgKyAnIGVsZW1lbnQgbXVz
dCB0aHJvdycpOwotICAgIH0KLX0sICdFbGVtZW50LmF0dGFjaFNoYWRvdyBtdXN0IHRocm93IGEg
Tm90U3VwcG9ydGVkRXJyb3Igb24gSFRNTCBlbGVtZW50cyB3aG9zZSBsb2NhbCBuYW1lIGlzIG5v
dCBvbmUgb2YgJyArIGFsbG93aW5nQXR0YWNoU2hhZG93LmpvaW4oJywgJykpOwotCi10ZXN0KGZ1
bmN0aW9uICgpIHsKLSAgICBmb3IgKHZhciBlbGVtZW50TmFtZSBvZiBhbGxvd2luZ0F0dGFjaFNo
YWRvdykgewotICAgICAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1l
bnROYW1lKS5hdHRhY2hTaGFkb3coe21vZGU6ICJvcGVuIn0pIGluc3RhbmNlb2YgU2hhZG93Um9v
dCwKLSAgICAgICAgICAgICdDYWxsaW5nIGF0dGFjaFNoYWRvdyh7bW9kZTogIm9wZW4ifSkgb24g
JyArIGVsZW1lbnROYW1lICsgJyBlbGVtZW50IG11c3Qgbm90IHRocm93Jyk7Ci0KLSAgICAgICAg
YXNzZXJ0X3RydWUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50TmFtZSkuYXR0YWNoU2hh
ZG93KHttb2RlOiAiY2xvc2VkIn0pIGluc3RhbmNlb2YgU2hhZG93Um9vdCwKLSAgICAgICAgICAg
ICdDYWxsaW5nIGF0dGFjaFNoYWRvdyh7bW9kZTogImNsb3NlZCJ9KSBvbiAnICsgZWxlbWVudE5h
bWUgKyAnIGVsZW1lbnQgbXVzdCBub3QgdGhyb3cnKTsKLSAgICB9Ci19LCAnRWxlbWVudC5hdHRh
Y2hTaGFkb3cgbXVzdCBub3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBvbiAnICsgYWxsb3dp
bmdBdHRhY2hTaGFkb3cuam9pbignLCAnKSk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGFz
c2VydF90aHJvd3MoeyduYW1lJzogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndzNjZnV0dXJlZWxlbWVudCcpLmF0dGFj
aFNoYWRvdyh7bW9kZTogIm9wZW4ifSk7Ci0gICAgfSwgJ0NhbGxpbmcgYXR0YWNoU2hhZG93KHtt
b2RlOiAib3BlbiJ9KSBvbiBhIEhUTUwgZWxlbWVudCB3aG9zZSBsb2NhbCBuYW1lIGlzICJ3M2Nm
dXR1cmVlbGVtZW50IiBtdXN0IHRocm93Jyk7Ci0KLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6
ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3czY2Z1dHVyZWVsZW1lbnQnKS5hdHRhY2hTaGFkb3coe21vZGU6ICJjbG9z
ZWQifSk7Ci0gICAgfSwgJ0NhbGxpbmcgYXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pIG9u
IGEgSFRNTCBlbGVtZW50IHdob3NlIGxvY2FsIG5hbWUgaXMgInczY2Z1dHVyZWVsZW1lbnQiIG11
c3QgdGhyb3cnKTsKLQotfSwgJ0VsZW1lbnQuYXR0YWNoU2hhZG93IG11c3QgdGhyb3cgYSBOb3RT
dXBwb3J0ZWRFcnJvciBvbiBhIEhUTUxLbm93bkVsZW1lbnQgd2hpY2ggZG9lcyBub3QgaGF2ZSBh
IHZhbGlkIGN1c3RvbSBlbGVtZW50Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGFzc2Vy
dF90cnVlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2N1c3RvbS1lbGVtZW50JykuYXR0YWNoU2hh
ZG93KHttb2RlOiAib3BlbiJ9KSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QsCi0gICAgICAgICdDYWxs
aW5nIGF0dGFjaFNoYWRvdyh7bW9kZTogIm9wZW4ifSkgb24gYSBIVE1MIGVsZW1lbnQgd2hvc2Ug
bG9jYWwgbmFtZSBpcyAiY3VzdG9tLWVsZW1lbnQiIGVsZW1lbnQgbXVzdCBub3QgdGhyb3cnKTsK
LQotICAgIGFzc2VydF90cnVlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2N1c3RvbS1lbGVtZW50
JykuYXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pIGluc3RhbmNlb2YgU2hhZG93Um9vdCwK
LSAgICAgICAgJ0NhbGxpbmcgYXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pIG9uIGEgSFRN
TCBlbGVtZW50IHdob3NlIGxvY2FsIG5hbWUgaXMgImN1c3RvbS1lbGVtZW50IiBtdXN0IG5vdCB0
aHJvdycpOwotCi19LCAnRWxlbWVudC5hdHRhY2hTaGFkb3cgbXVzdCB0aHJvdyBhIE5vdFN1cHBv
cnRlZEVycm9yIG9uIGEgSFRNTEtub3duRWxlbWVudCB3aGljaCBoYXMgYSB2YWxpZCBjdXN0b20g
ZWxlbWVudCcpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFjZS1zaGFkb3dSb290LWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRWxlbWVu
dC1pbnRlcmZhY2Utc2hhZG93Um9vdC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2OThjZmMwZWM2MmM5OTJmNTdmYmMwNTQ2MTQ4YjUwZDE4ZWUw
NGIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFjZS1zaGFkb3dSb290LWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBz
aGFkb3dSb290IG11c3QgYmUgZGVmaW5lZCBvbiBFbGVtZW50IHByb3RvdHlwZSAKLVBBU1Mgc2hh
ZG93Um9vdCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gdGhlIG9wZW4gc2hhZG93IHJvb3QgYXNzb2Np
YXRlZCB3aXRoIHRoZSBlbGVtZW50IAotUEFTUyBzaGFkb3dSb290IGF0dHJpYnV0ZSBtdXN0IHJl
dHVybiBudWxsIGlmIHRoZSBzaGFkb3cgcm9vdCBhdHRhY2hlZCB0byB0aGUgZWxlbWVudCBpcyBj
bG9zZWQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9FbGVtZW50
LWludGVyZmFjZS1zaGFkb3dSb290LWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL0VsZW1lbnQtaW50ZXJmYWNlLXNoYWRvd1Jvb3QtYXR0cmlidXRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1OWQyZGZlMjE5ZDY2OGE1NzM2NDBhNmJjYzc2
YzU1YzVjYjE2ZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0VsZW1lbnQtaW50ZXJmYWNlLXNoYWRvd1Jv
b3QtYXR0cmlidXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+U2hhZG93IERPTTogRWxlbWVudCBpbnRl
cmZhY2Ugc2hhZG93Um9vdCBhdHRyaWJ1dGU8L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0
aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0
YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9InNoYWRvd1Jvb3QgYXR0cmlidXRlIG9uIEVsZW1lbnQg
aW50ZXJmYWNlIG11c3QgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIG9wZW4gc2hhZG93IHRyZWUgaWYg
dGhlcmUgaXMgb25lIj4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL3dlYmNvbXBvbmVudHMvc3BlYy9zaGFkb3cvI3RoZS1zaGFkb3dyb290LWludGVyZmFjZSI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuY3NzJz4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3Jp
cHQ+Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGFzc2VydF90cnVlKCdzaGFkb3dSb290JyBp
biBFbGVtZW50LnByb3RvdHlwZSwgJ3NoYWRvd1Jvb3QgbXVzdCBiZSBkZWZpbmVkIG9uIEVsZW1l
bnQgcHJvdG90eXBlJyk7Ci0gICAgYXNzZXJ0X3RydWUoJ3NoYWRvd1Jvb3QnIGluIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCAnc2hhZG93Um9vdCBtdXN0IGJlIGRlZmluZWQgb24gYW4g
aW5zdGFuY2Ugb2YgZGl2IGVsZW1lbnQnKTsKLSAgICBhc3NlcnRfZmFsc2UoJ3NoYWRvd1Jvb3Qn
IGluIE5vZGUucHJvdG90eXBlLCAnc2hhZG93Um9vdCBtdXN0IG5vdCBiZSBkZWZpbmVkIG9uIE5v
ZGUgcHJvdG90eXBlJyk7Ci0gICAgYXNzZXJ0X2ZhbHNlKCdzaGFkb3dSb290JyBpbiBUZXh0LnBy
b3RvdHlwZSwgJ3NoYWRvd1Jvb3QgbXVzdCBub3QgYmUgZGVmaW5lZCBvbiBUZXh0IHByb3RvdHlw
ZScpOwotICAgIGFzc2VydF9mYWxzZSgnc2hhZG93Um9vdCcgaW4gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoJycpLCAnc2hhZG93Um9vdCBtdXN0IG5vdCBiZSBkZWZpbmVkIG9uIGFuIGluc3RhbmNl
IG9mIFRleHQgbm9kZScpOwotICAgIGFzc2VydF9mYWxzZSgnc2hhZG93Um9vdCcgaW4gQ29tbWVu
dC5wcm90b3R5cGUsICdzaGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQgb24gQ29tbWVudCBw
cm90b3R5cGUnKTsKLSAgICBhc3NlcnRfZmFsc2UoJ3NoYWRvd1Jvb3QnIGluIGRvY3VtZW50LmNy
ZWF0ZUNvbW1lbnQoJycpLCAnc2hhZG93Um9vdCBtdXN0IG5vdCBiZSBkZWZpbmVkIG9uIGFuIGlu
c3RhbmNlIG9mIENvbW1lbnQgbm9kZScpOwotICAgIGFzc2VydF9mYWxzZSgnc2hhZG93Um9vdCcg
aW4gRG9jdW1lbnQucHJvdG90eXBlLCAnc2hhZG93Um9vdCBtdXN0IG5vdCBiZSBkZWZpbmVkIG9u
IERvY3VtZW50IHByb3RvdHlwZScpOwotICAgIGFzc2VydF9mYWxzZSgnc2hhZG93Um9vdCcgaW4g
ZG9jdW1lbnQsICdzaGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQgb24gYW4gaW5zdGFuY2Ug
b2YgRG9jdW1lbnQnKTsKLSAgICBhc3NlcnRfZmFsc2UoJ3NoYWRvd1Jvb3QnIGluIERvY3VtZW50
RnJhZ21lbnQucHJvdG90eXBlLCAnc2hhZG93Um9vdCBtdXN0IG5vdCBiZSBkZWZpbmVkIG9uIERv
Y3VtZW50RnJhZ21lbnQgcHJvdG90eXBlJyk7Ci0gICAgYXNzZXJ0X2ZhbHNlKCdzaGFkb3dSb290
JyBpbiAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKCcnLCAndGV4dC9odG1sJyksICdz
aGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQgb24gYW4gaW5zdGFuY2Ugb2YgRG9jdW1lbnRG
cmFnbWVudCBub2RlJyk7Ci19LCAnc2hhZG93Um9vdCBtdXN0IGJlIGRlZmluZWQgb24gRWxlbWVu
dCBwcm90b3R5cGUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGhvc3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGhvc3Quc2hhZG93
Um9vdCwgbnVsbCwgJ3NoYWRvd1Jvb3QgbXVzdCByZXR1cm4gbnVsbCB3aGVuIHRoZSBob3N0IGRv
ZXMgbm90IGhhdmUgYSBzaGFkb3cgdHJlZSBhdHRhY2hlZCB0byBpdCcpOwotCi0gICAgdmFyIG9w
ZW5TaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30pOwotICAgIGFz
c2VydF9lcXVhbHMoaG9zdC5zaGFkb3dSb290LCBvcGVuU2hhZG93Um9vdCwgJ3NoYWRvd1Jvb3Qg
bXVzdCByZXR1cm4gdGhlIG9wZW4gc2hhZG93IHJvb3QgYXR0YWNoU2hhZG93IGF0dGFjaGVkJyk7
Ci19LCAnc2hhZG93Um9vdCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gdGhlIG9wZW4gc2hhZG93IHJv
b3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBlbGVtZW50Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewot
ICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgaG9zdC5h
dHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhob3N0LnNo
YWRvd1Jvb3QsIG51bGwpOwotfSwgJ3NoYWRvd1Jvb3QgYXR0cmlidXRlIG11c3QgcmV0dXJuIG51
bGwgaWYgdGhlIHNoYWRvdyByb290IGF0dGFjaGVkIHRvIHRoZSBlbGVtZW50IGlzIGNsb3NlZCcp
OwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9FeHRlbnNpb25zLXRvLUV2ZW50LUludGVyZmFjZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vRXh0ZW5zaW9ucy10by1FdmVudC1JbnRl
cmZhY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTc3ZTBh
NDMwNDM4NjBmNGFkMDM0NGMyNTk4MDNmZDIyMzdlNDM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9FeHRl
bnNpb25zLXRvLUV2ZW50LUludGVyZmFjZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMCArMCwwIEBACi0KLVBBU1MgY29tcG9zZWRQYXRoKCkgbXVzdCBleGlzdCBvbiBFdmVudCAK
LVBBU1MgY29tcG9zZWRQYXRoKCkgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUg
ZXZlbnQgaGFzIG5vdCBiZWVuIGRpc3BhdGNoZWQgCi1QQVNTIGNvbXBvc2VkUGF0aCgpIG11c3Qg
cmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIGV2ZW50IGlzIG5vIGxvbmdlciBkaXNwYXRj
aGVkIAotUEFTUyBjb21wb3NlZCBtdXN0IGV4aXN0IG9uIEV2ZW50IAotUEFTUyBjb21wb3NlZCBv
biBFdmVudEluaXQgbXVzdCBkZWZhdWx0IHRvIGZhbHNlIAotUEFTUyBjb21wb3NlZCBvbiBFdmVu
dEluaXQgbXVzdCBzZXQgdGhlIGNvbXBvc2VkIGZsYWcgCi1QQVNTIFRoZSBldmVudCBtdXN0IHBy
b3BhZ2F0ZSBvdXQgb2Ygb3BlbiBtb2RlIHNoYWRvdyBib3VuZGFyaWVzIHdoZW4gdGhlIGNvbXBv
c2VkIGZsYWcgaXMgc2V0IAotUEFTUyBUaGUgZXZlbnQgbXVzdCBwcm9wYWdhdGUgb3V0IG9mIGNs
b3NlZCBtb2RlIHNoYWRvdyBib3VuZGFyaWVzIHdoZW4gdGhlIGNvbXBvc2VkIGZsYWcgaXMgc2V0
IAotUEFTUyBUaGUgZXZlbnQgbXVzdCBub3QgcHJvcGFnYXRlIG91dCBvZiBvcGVuIG1vZGUgc2hh
ZG93IGJvdW5kYXJpZXMgd2hlbiB0aGUgY29tcG9zZWQgZmxhZyBpcyB1bnNldCAKLVBBU1MgVGhl
IGV2ZW50IG11c3Qgbm90IHByb3BhZ2F0ZSBvdXQgb2YgY2xvc2VkIG1vZGUgc2hhZG93IGJvdW5k
YXJpZXMgd2hlbiB0aGUgY29tcG9zZWQgZmxhZyBpcyB1bnNldCAKLVBBU1MgVGhlIGV2ZW50IG11
c3Qgbm90IHByb3BhZ2F0ZSBvdXQgb2Ygb3BlbiBtb2RlIHNoYWRvdyBib3VuZGFyaWVzIHdoZW4g
dGhlIGNvbXBvc2VkIGZsYWcgaXMgdW5zZXQgb24gYW4gZXZlbnQgd2l0aCByZWxhdGVkVGFyZ2V0
IAotUEFTUyBUaGUgZXZlbnQgbXVzdCBub3QgcHJvcGFnYXRlIG91dCBvZiBjbG9zZWQgbW9kZSBz
aGFkb3cgYm91bmRhcmllcyB3aGVuIHRoZSBjb21wb3NlZCBmbGFnIGlzIHVuc2V0IG9uIGFuIGV2
ZW50IHdpdGggcmVsYXRlZFRhcmdldCAKLVBBU1MgVGhlIGV2ZW50IG11c3Qgbm90IHByb3BhZ2F0
ZSBvdXQgb2Ygb3BlbiBtb2RlIHNoYWRvdyB0cmVlIG9mIHRoZSB0YXJnZXQgYnV0IG11c3QgcHJv
cGFnYXRlIG91dCBvZiBpbm5lciBzaGFkb3cgdHJlZXMgd2hlbiB0aGUgc2NvcGVkIGZsYWcgaXMg
c2V0IAotUEFTUyBUaGUgZXZlbnQgbXVzdCBub3QgcHJvcGFnYXRlIG91dCBvZiBjbG9zZWQgbW9k
ZSBzaGFkb3cgdHJlZSBvZiB0aGUgdGFyZ2V0IGJ1dCBtdXN0IHByb3BhZ2F0ZSBvdXQgb2YgaW5u
ZXIgc2hhZG93IHRyZWVzIHdoZW4gdGhlIHNjb3BlZCBmbGFnIGlzIHNldCAKLVBBU1MgVGhlIGV2
ZW50IG11c3QgcHJvcGFnYXRlIG91dCBvZiBvcGVuIG1vZGUgc2hhZG93IHRyZWUgaW4gd2hpY2gg
dGhlIHJlbGF0aXZlIHRhcmdldCBhbmQgdGhlIHJlbGF0aXZlIHJlbGF0ZWQgdGFyZ2V0IGFyZSB0
aGUgc2FtZSAKLVBBU1MgVGhlIGV2ZW50IG11c3QgcHJvcGFnYXRlIG91dCBvZiBjbG9zZWQgbW9k
ZSBzaGFkb3cgdHJlZSBpbiB3aGljaCB0aGUgcmVsYXRpdmUgdGFyZ2V0IGFuZCB0aGUgcmVsYXRp
dmUgcmVsYXRlZCB0YXJnZXQgYXJlIHRoZSBzYW1lIAotUEFTUyBjb21wb3NlZFBhdGgoKSBtdXN0
IGNvbnRhaW4gYW5kIG9ubHkgY29udGFpbiB0aGUgdW5jbG9zZWQgbm9kZXMgb2YgdGFyZ2V0IGlu
IG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCi1QQVNTIGNvbXBvc2VkUGF0aCgpIG11c3QgY29udGFp
biBhbmQgb25seSBjb250YWluIHRoZSB1bmNsb3NlZCBub2RlcyBvZiB0YXJnZXQgaW4gY2xvc2Vk
IG1vZGUgc2hhZG93IHRyZWVzIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRv
dy1kb20vRXh0ZW5zaW9ucy10by1FdmVudC1JbnRlcmZhY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9FeHRlbnNpb25zLXRvLUV2ZW50LUludGVyZmFjZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTI3NjNlODdlOTdkYjk0NTI5NmM0Yzc4MmNmZWMwZGE0
NTE2OTY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9FeHRlbnNpb25zLXRvLUV2ZW50LUludGVyZmFjZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTx0aXRsZT5TaGFkb3cgRE9NOiBFeHRlbnNpb25zIHRvIEV2ZW50IEludGVy
ZmFjZTwvdGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhy
ZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iRXZlbnQgaW50ZXJmYWNlIG11c3QgaGF2ZSBjb21wb3NlZFBhdGgoKSBhcyBhIG1ldGhvZCI+
Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93M2MuZ2l0aHViLmlvL3dlYmNvbXBvbmVu
dHMvc3BlYy9zaGFkb3cvI2V4dGVuc2lvbnMtdG8tZXZlbnQtaW50ZXJmYWNlIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LXBhdGgtdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4K
LTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyc+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0Pgot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfdHJ1ZSgnY29tcG9zZWRQYXRoJyBpbiBF
dmVudC5wcm90b3R5cGUpOwotICAgIGFzc2VydF90cnVlKCdjb21wb3NlZFBhdGgnIGluIG5ldyBF
dmVudCgnbXktZXZlbnQnKSk7Ci19LCAnY29tcG9zZWRQYXRoKCkgbXVzdCBleGlzdCBvbiBFdmVu
dCcpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoJ215
LWV2ZW50Jyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudC5jb21wb3NlZFBhdGgoKSwg
W10pOwotfSwgJ2NvbXBvc2VkUGF0aCgpIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4g
dGhlIGV2ZW50IGhhcyBub3QgYmVlbiBkaXNwYXRjaGVkJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkg
ewotICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgnbXktZXZlbnQnKTsKLSAgICBkb2N1bWVudC5i
b2R5LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnQu
Y29tcG9zZWRQYXRoKCksIFtdKTsKLX0sICdjb21wb3NlZFBhdGgoKSBtdXN0IHJldHVybiBhbiBl
bXB0eSBhcnJheSB3aGVuIHRoZSBldmVudCBpcyBubyBsb25nZXIgZGlzcGF0Y2hlZCcpOwotCi10
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfdHJ1ZSgnY29tcG9zZWQnIGluIEV2ZW50LnBy
b3RvdHlwZSk7Ci0gICAgYXNzZXJ0X3RydWUoJ2NvbXBvc2VkJyBpbiBuZXcgRXZlbnQoJ215LWV2
ZW50JykpOwotfSwgJ2NvbXBvc2VkIG11c3QgZXhpc3Qgb24gRXZlbnQnKTsKLQotdGVzdChmdW5j
dGlvbiAoKSB7Ci0gICAgdmFyIGV2ZW50ID0gbmV3IEV2ZW50KCdteS1ldmVudCcpOwotICAgIGFz
c2VydF9mYWxzZShldmVudC5jb21wb3NlZCk7Ci19LCAnY29tcG9zZWQgb24gRXZlbnRJbml0IG11
c3QgZGVmYXVsdCB0byBmYWxzZScpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgZXZl
bnQgPSBuZXcgRXZlbnQoJ215LWV2ZW50Jywge2NvbXBvc2VkOiB0cnVlfSk7Ci0gICAgYXNzZXJ0
X3RydWUoZXZlbnQuY29tcG9zZWQpOwotCi0gICAgZXZlbnQgPSBuZXcgRXZlbnQoJ215LWV2ZW50
Jywge2NvbXBvc2VkOiBmYWxzZX0pOwotICAgIGFzc2VydF9mYWxzZShldmVudC5jb21wb3NlZCk7
Ci19LCAnY29tcG9zZWQgb24gRXZlbnRJbml0IG11c3Qgc2V0IHRoZSBjb21wb3NlZCBmbGFnJyk7
Ci0KLS8qCi0tU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgKjogaW5kaWNh
dGVzIHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgotQSAoNCkgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEEtU1IgKDMpCi0rIEIgLS0tLS0tLS0tLS0tIEItU1IgICAgICAgICAgICAg
KyBBMSAoMikgLS0tIEExLVNSICgxKQotICArIEMgICAgICAgICAgICArIEIxIC0tLSBCMS1TUiAg
ICsgQTItUyAgICAgICArIEExYSAoKjsgMCkKLSAgKyBEIC0tLSBELVNSICAgICArIEIxYSAgICAr
IEIxYiAtLS0gQjFiLVNSCi0gICAgICAgICAgKyBEMSAgICAgICAgICAgICAgKyBCMWMtUyAgICsg
QjFiMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEIxYjIKLSovCi0K
LWZ1bmN0aW9uIHRlc3RDb21wb3NlZEV2ZW50KG1vZGUpIHsKLSAgICB0ZXN0KGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7Ci0gICAgICAgIHZh
ciBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQTFhLCBuZXcgRXZlbnQo
J215LWV2ZW50Jywge2NvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlfSkpOwotCi0gICAgICAg
IHZhciBleHBlY3RlZFBhdGggPSBbJ0ExYScsICdBMS1TUicsICdBMScsICdBLVNSJywgJ0EnXTsK
LSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cuZXZlbnRQYXRoLCBleHBlY3RlZFBhdGgp
OwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgubGVuZ3RoLCBsb2cu
cGF0aEF0VGFyZ2V0cy5sZW5ndGgpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5w
YXRoQXRUYXJnZXRzWzBdLCBleHBlY3RlZFBhdGgpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzFdLCBleHBlY3RlZFBhdGgpOwotICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzJdLCBtb2RlID09ICdvcGVuJyA/IGV4cGVj
dGVkUGF0aCA6IFsnQTEnLCAnQS1TUicsICdBJ10sCi0gICAgICAgICAgICAnY29tcG9zZWRQYXRo
IG11c3Qgb25seSBjb250YWluIHVuY2xvc2VkIG5vZGVzIG9mIHRoZSBjdXJyZW50IHRhcmdldC4n
KTsKLSAgICB9LCAnVGhlIGV2ZW50IG11c3QgcHJvcGFnYXRlIG91dCBvZiAnICsgbW9kZSArICcg
bW9kZSBzaGFkb3cgYm91bmRhcmllcyB3aGVuIHRoZSBjb21wb3NlZCBmbGFnIGlzIHNldCcpOwot
fQotCi10ZXN0Q29tcG9zZWRFdmVudCgnb3BlbicpOwotdGVzdENvbXBvc2VkRXZlbnQoJ2Nsb3Nl
ZCcpOwotCi0vKgotLVNSOiBTaGFkb3dSb290ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgICo6IGlu
ZGljYXRlcyBzdGFydCAgZGlnaXQ6IGV2ZW50IHBhdGggb3JkZXIKLUEgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBBLVNSCi0rIEIgLS0tLS0tLS0tLS0tIEItU1IgICAgICAgICAgICAg
KyBBMSAtLS0gQTEtU1IgKDEpCi0gICsgQyAgICAgICAgICAgICsgQjEgLS0tIEIxLVNSICAgKyBB
Mi1TICAgKyBBMWEgKCo7IDApCi0gICsgRCAtLS0gRC1TUiAgICAgKyBCMWEgICsgQjFiIC0tLSBC
MWItU1IKLSAgICAgICAgICArIEQxICAgICAgICAgICAgKyBCMWMtUyAgICsgQjFiMQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCi0qLwotCi1mdW5jdGlvbiB0ZXN0
Tm9uQ29tcG9zZWRFdmVudChtb2RlKSB7Ci0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAg
IHZhciBub2RlcyA9IGNyZWF0ZVRlc3RUcmVlKG1vZGUpOwotICAgICAgICB2YXIgbG9nID0gZGlz
cGF0Y2hFdmVudFdpdGhMb2cobm9kZXMsIG5vZGVzLkExYSwgbmV3IEV2ZW50KCdteS1ldmVudCcs
IHtjb21wb3NlZDogZmFsc2UsIGJ1YmJsZXM6IHRydWV9KSk7Ci0KLSAgICAgICAgdmFyIGV4cGVj
dGVkUGF0aCA9IFsnQTFhJywgJ0ExLVNSJ107Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nLmV2ZW50UGF0aCwgZXhwZWN0ZWRQYXRoKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2cuZXZlbnRQYXRoLmxlbmd0aCwgbG9nLnBhdGhBdFRhcmdldHMubGVuZ3RoKTsKLSAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1swXSwgZXhwZWN0ZWRQYXRo
KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1sxXSwgZXhw
ZWN0ZWRQYXRoKTsKLSAgICB9LCAnVGhlIGV2ZW50IG11c3Qgbm90IHByb3BhZ2F0ZSBvdXQgb2Yg
JyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IGJvdW5kYXJpZXMgd2hlbiB0aGUgY29tcG9zZWQgZmxh
ZyBpcyB1bnNldCcpOwotfQotCi10ZXN0Tm9uQ29tcG9zZWRFdmVudCgnb3BlbicpOwotdGVzdE5v
bkNvbXBvc2VkRXZlbnQoJ2Nsb3NlZCcpOwotCi0vKgotLVNSOiBTaGFkb3dSb290ICAtUzogU2xv
dCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRUYXJnZXQ6IFt+XSAgKjogaW5kaWNhdGVzIHN0YXJ0ICBk
aWdpdDogZXZlbnQgcGF0aCBvcmRlcgotQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IEEtU1IKLSsgQiAtLS0tLS0tLS0tLS0gQi1TUiAgICAgICAgICAgICArIEExIC0tLS0tLS0tLS0t
IEExLVNSICgxKQotICArIEMgICAgICAgICAgICArIEIxIC0tLSBCMS1TUiAgICsgQTItUyBbKjsg
MC0xXSAgKyBBMWEgKCo7IDApCi0gICsgRCAtLS0gRC1TUiAgICAgKyBCMWEgICsgQjFiIC0tLSBC
MWItU1IKLSAgICAgICAgICArIEQxICAgICAgICAgICAgKyBCMWMtUyAgICsgQjFiMQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCi0qLwotCi1mdW5jdGlvbiB0ZXN0
Tm9uQ29tcG9zZWRFdmVudFdpdGhSZWxhdGVkVGFyZ2V0KG1vZGUpIHsKLSAgICB0ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7Ci0gICAg
ICAgIHZhciBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQTFhLCBuZXcg
TW91c2VFdmVudCgnZm9vJywge2NvbXBvc2VkOiBmYWxzZSwgYnViYmxlczogdHJ1ZSwgcmVsYXRl
ZFRhcmdldDogbm9kZXNbJ0EyLVMnXX0pKTsKLQotICAgICAgICB2YXIgZXhwZWN0ZWRQYXRoID0g
WydBMWEnLCAnQTEtU1InXTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cuZXZlbnRQ
YXRoLCBleHBlY3RlZFBhdGgpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVu
dFBhdGgubGVuZ3RoLCBsb2cucGF0aEF0VGFyZ2V0cy5sZW5ndGgpOwotICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzBdLCBleHBlY3RlZFBhdGgpOwotICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzFdLCBleHBlY3RlZFBhdGgp
OwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5yZWxhdGVkVGFyZ2V0cywgWydBMi1T
JywgJ0EyLVMnXSk7Ci0gICAgfSwgJ1RoZSBldmVudCBtdXN0IG5vdCBwcm9wYWdhdGUgb3V0IG9m
ICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyBib3VuZGFyaWVzIHdoZW4gdGhlIGNvbXBvc2VkIGZs
YWcgaXMgdW5zZXQgb24gYW4gZXZlbnQgd2l0aCByZWxhdGVkVGFyZ2V0Jyk7Ci19Ci0KLXRlc3RO
b25Db21wb3NlZEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXQoJ29wZW4nKTsKLXRlc3ROb25Db21wb3Nl
ZEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXQoJ2Nsb3NlZCcpOwotCi0vKgotLVNSOiBTaGFkb3dSb290
ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRUYXJnZXQ6IFt+XSAgKjogaW5kaWNhdGVz
IHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgotQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQS1TUgotKyBCIC0tLS0tLS0tLS0tLSBCLVNSICg0
KSAgICAgICAgICAgICAgICAgICAgICAgICAgKyBBMSAtLS0gQTEtU1IKLSAgKyBDICAgICAgICAg
ICAgKyBCMSAoMykgWzAsMy00XSAtLS0gQjEtU1IgKDIpICAgICsgQTItUyAgICsgQTFhCi0gICsg
RCAtLS0gRC1TUiAgICAgKyBCMWEgKCo7IDApICAgICAgICsgQjFiIFsxLTJdIC0tLSBCMWItU1IK
LSAgICAgICAgICArIEQxICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWMtUyAoMSkgICAgICsg
QjFiMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKyBCMWIyIFsqXQotKi8KLQotZnVuY3Rpb24gdGVzdFNjb3BlZEV2ZW50V2l0aFVuc2NvcGVk
UmVsYXRlZFRhcmdldFRocm91Z2hTbG90KG1vZGUpIHsKLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7Ci0gICAgICAgIHZhciBs
b2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQjFhLCBuZXcgTW91c2VFdmVu
dCgnZm9vJywge3Njb3BlZDogdHJ1ZSwgcmVsYXRlZFRhcmdldFNjb3BlZDogZmFsc2UsIGJ1YmJs
ZXM6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG5vZGVzWydCMWIyJ119KSk7Ci0KLSAgICAgICAgdmFy
IGV4cGVjdGVkUGF0aCA9IFsnQjFhJywgJ0IxYy1TJywgJ0IxLVNSJywgJ0IxJywgJ0ItU1InXTsK
LSAgICAgICAgdmFyIHBhdGhFeHBvc2VkVG9CMWEgPSBbJ0IxYScsICdCMScsICdCLVNSJ107Ci0g
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aCwgZXhwZWN0ZWRQYXRoKTsK
LSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cuZXZlbnRQYXRoLmxlbmd0aCwgbG9nLnBh
dGhBdFRhcmdldHMubGVuZ3RoKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0
aEF0VGFyZ2V0c1swXSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3RlZFBhdGggOiBwYXRoRXhwb3Nl
ZFRvQjFhKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1sx
XSwgZXhwZWN0ZWRQYXRoKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0
VGFyZ2V0c1syXSwgZXhwZWN0ZWRQYXRoKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhs
b2cucGF0aEF0VGFyZ2V0c1szXSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3RlZFBhdGggOiBwYXRo
RXhwb3NlZFRvQjFhKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0VGFy
Z2V0c1s0XSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3RlZFBhdGggOiBwYXRoRXhwb3NlZFRvQjFh
KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdldHMsIFsnQjEn
LCAnQjFiJywgJ0IxYicsICdCMScsICdCMSddKTsKLSAgICB9LCAnVGhlIGV2ZW50IG11c3Qgbm90
IHByb3BhZ2F0ZSBvdXQgb2YgJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWUgb2YgdGhlIHRh
cmdldCBidXQgbXVzdCBwcm9wYWdhdGUgb3V0IG9mIGlubmVyIHNoYWRvdyB0cmVlcyB3aGVuIHRo
ZSBzY29wZWQgZmxhZyBpcyBzZXQnKTsKLX0KLQotdGVzdFNjb3BlZEV2ZW50V2l0aFVuc2NvcGVk
UmVsYXRlZFRhcmdldFRocm91Z2hTbG90KCdvcGVuJyk7Ci10ZXN0U2NvcGVkRXZlbnRXaXRoVW5z
Y29wZWRSZWxhdGVkVGFyZ2V0VGhyb3VnaFNsb3QoJ2Nsb3NlZCcpOwotCi0vKgotLVNSOiBTaGFk
b3dSb290ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRUYXJnZXQ6IFt+XSAgKjogaW5k
aWNhdGVzIHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgotQSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEEtU1IgKDMpCi0rIEIgLS0tLS0tLS0tLS0tIEItU1IgICAgICAgICAg
ICAgKyBBMSAoMikgLS0tLS0tLSBBMS1TUiAoMSkKLSAgKyBDICAgICAgICAgICAgKyBCMSAtLS0g
QjEtU1IgICArIEEyLVMgWyo7IDAtM10gICsgQTFhICgqOyAwKQotICArIEQgLS0tIEQtU1IgICAg
ICsgQjFhICArIEIxYiAtLS0gQjFiLVNSCi0gICAgICAgICAgKyBEMSAgICAgICAgICAgICsgQjFj
LVMgICArIEIxYjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQjFiMgot
Ki8KLQotZnVuY3Rpb24gdGVzdENvbXBvc2VkRXZlbnRXaXRoUmVsYXRlZFRhcmdldChtb2RlKSB7
Ci0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBub2RlcyA9IGNyZWF0ZVRlc3RU
cmVlKG1vZGUpOwotICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9k
ZXMuQTFhLCBuZXcgTW91c2VFdmVudCgnZm9vJywge2NvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0
cnVlLCByZWxhdGVkVGFyZ2V0OiBub2Rlc1snQTItUyddfSkpOwotCi0gICAgICAgIHZhciBleHBl
Y3RlZFBhdGggPSBbJ0ExYScsICdBMS1TUicsICdBMScsICdBLVNSJ107Ci0gICAgICAgIHZhciBw
YXRoRXhwb3NlZFRvQTEgPSBbJ0ExJywgJ0EtU1InXTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2cuZXZlbnRQYXRoLCBleHBlY3RlZFBhdGgpOwotICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZy5ldmVudFBhdGgubGVuZ3RoLCBsb2cucGF0aEF0VGFyZ2V0cy5sZW5ndGgpOwot
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzBdLCBleHBlY3Rl
ZFBhdGgpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzFd
LCBleHBlY3RlZFBhdGgpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRU
YXJnZXRzWzJdLCBtb2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2VkVG9B
MSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbM10sIG1v
ZGUgPT0gJ29wZW4nID8gZXhwZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRUb0ExKTsKLSAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdldHMsIFsnQTItUycsICdBMi1TJywg
J0EyLVMnLCAnQTItUyddKTsKLSAgICB9LCAnVGhlIGV2ZW50IG11c3QgcHJvcGFnYXRlIG91dCBv
ZiAnICsgbW9kZSArICcgbW9kZSBzaGFkb3cgdHJlZSBpbiB3aGljaCB0aGUgcmVsYXRpdmUgdGFy
Z2V0IGFuZCB0aGUgcmVsYXRpdmUgcmVsYXRlZCB0YXJnZXQgYXJlIHRoZSBzYW1lJyk7Ci19Ci0K
LXRlc3RDb21wb3NlZEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXQoJ29wZW4nKTsKLXRlc3RDb21wb3Nl
ZEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXQoJ2Nsb3NlZCcpOwotCi0vKgotLVNSOiBTaGFkb3dSb290
ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRUYXJnZXQ6IFt+XSAgKjogaW5kaWNhdGVz
IHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgotQSAoOCkgWzAtNSw4XSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEEtU1IgKDcpCi0rIEIgKDUpICAtLS0tLS0t
IEItU1IgKDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBBMSBbNiw3XSAtLS0gQTEt
U1IKLSAgKyBDICAgICAgICAgICAgKyBCMSAoMykgLS0tLS0tLSBCMS1TUiAoMikgICAgICAgICAg
ICArIEEyLVMgKDYpICAgICArIEExYSBbKl0KLSAgKyBEIC0tLSBELVNSICAgICArIEIxYSAoKjsg
MCkgICArIEIxYiAtLS0tLS0tIEIxYi1TUgotICAgICAgICAgICsgRDEgICAgICAgICAgICAgICAg
ICAgICsgQjFjLVMgKDEpICAgKyBCMWIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArIEIxYjIKLSovCi0KLWZ1bmN0aW9uIHRlc3RDb21wb3NlZEV2ZW50
VGhyb3VnaFNsb3QobW9kZSkgewotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIg
bm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKLSAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVu
dFdpdGhMb2cobm9kZXMsIG5vZGVzLkIxYSwgbmV3IE1vdXNlRXZlbnQoJ2ZvbycsIHtjb21wb3Nl
ZDogdHJ1ZSwgYnViYmxlczogdHJ1ZSwgcmVsYXRlZFRhcmdldDogbm9kZXMuQTFhfSkpOwotCi0g
ICAgICAgIHZhciBleHBlY3RlZFBhdGggPSAgICAgICAgICBbJ0IxYScsICdCMWMtUycsICdCMS1T
UicsICdCMScsICdCLVNSJywgJ0InLCAnQTItUycsICdBLVNSJywgJ0EnXTsKLSAgICAgICAgdmFy
IGV4cGVjdGVkUmVsYXRlZFRhcmdldCA9IFsnQScsICAgJ0EnLCAgICAgJ0EnLCAgICAgJ0EnLCAg
ICdBJywgICAnQScsICdBMScsICAgJ0ExJywgICAnQSddOwotICAgICAgICB2YXIgcGF0aEV4cG9z
ZWRUb0IxYSA9ICAgICAgWydCMWEnLCAgICAgICAgICAgICAgICAgICAnQjEnLCAnQi1TUicsICdC
JywgICAgICAgICAgICAgICAgICdBJ107Ci0gICAgICAgIHZhciBwYXRoRXhwb3NlZFRvQjFjUyA9
ICAgICBbJ0IxYScsICdCMWMtUycsICdCMS1TUicsICdCMScsICdCLVNSJywgJ0InLCAgICAgICAg
ICAgICAgICAgJ0EnXTsKLSAgICAgICAgdmFyIHBhdGhFeHBvc2VkVG9CID0gICAgICAgIFsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQicsICAgICAgICAgICAgICAgICAn
QSddOwotICAgICAgICB2YXIgcGF0aEV4cG9zZWRUb0ExID0gICAgICAgWyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdCJywgJ0EyLVMnLCAnQS1TUicsICdBJ107Ci0KLSAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cuZXZlbnRQYXRoLCBleHBlY3RlZFBhdGgpOwot
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgubGVuZ3RoLCBsb2cucGF0
aEF0VGFyZ2V0cy5sZW5ndGgpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRo
QXRUYXJnZXRzWzBdLCBtb2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2Vk
VG9CMWEpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzFd
LCBtb2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2VkVG9CMWNTKTsKLSAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1syXSwgbW9kZSA9PSAn
b3BlbicgPyBleHBlY3RlZFBhdGggOiBwYXRoRXhwb3NlZFRvQjFjUyk7Ci0gICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbM10sIG1vZGUgPT0gJ29wZW4nID8gZXhw
ZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRUb0IxYSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nLnBhdGhBdFRhcmdldHNbNF0sIG1vZGUgPT0gJ29wZW4nID8gZXhwZWN0ZWRQYXRoIDog
cGF0aEV4cG9zZWRUb0IxYSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhB
dFRhcmdldHNbNV0sIG1vZGUgPT0gJ29wZW4nID8gZXhwZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRU
b0IpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzZdLCBt
b2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2VkVG9BMSk7Ci0gICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbN10sIG1vZGUgPT0gJ29wZW4n
ID8gZXhwZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRUb0ExKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1s4XSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3RlZFBh
dGggOiBwYXRoRXhwb3NlZFRvQik7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnJl
bGF0ZWRUYXJnZXRzLCBleHBlY3RlZFJlbGF0ZWRUYXJnZXQpOwotICAgIH0sICdjb21wb3NlZFBh
dGgoKSBtdXN0IGNvbnRhaW4gYW5kIG9ubHkgY29udGFpbiB0aGUgdW5jbG9zZWQgbm9kZXMgb2Yg
dGFyZ2V0IGluICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyB0cmVlcycpOwotfQotCi10ZXN0Q29t
cG9zZWRFdmVudFRocm91Z2hTbG90KCdvcGVuJyk7Ci10ZXN0Q29tcG9zZWRFdmVudFRocm91Z2hT
bG90KCdjbG9zZWQnKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vSFRNTFNsb3RFbGVtZW50
LWludGVyZmFjZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDll
ZjY1ODdjNmYyMmM1M2JiMDA1ZGU1Y2YxMjQzNWFkZmQ3MmFjZWEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L0hUTUxTbG90RWxlbWVudC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotCi1QQVNTIEhUTUxTbG90RWxlbWVudCBtdXN0IGJlIGRlZmluZWQgb24g
d2luZG93IAotUEFTUyAibmFtZSIgYXR0cmlidXRlIG9uIEhUTUxTbG90RWxlbWVudCBtdXN0IHJl
ZmxlY3QgIm5hbWUiIGF0dHJpYnV0ZSAKLVBBU1MgYXNzaWduZWROb2RlcygpIG9uIGEgSFRNTFNs
b3RFbGVtZW50IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIHNsb3QgZWxlbWVu
dCBpcyBub3QgaW4gYSB0cmVlIG9yIGluIGEgZG9jdW1lbnQgdHJlZSAKLVBBU1MgYXNzaWduZWRO
b2Rlcyh7ImZsYXR0ZW5lZCI6ZmFsc2V9KSBvbiBhIEhUTUxTbG90RWxlbWVudCBtdXN0IHJldHVy
biBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZSBzbG90IGVsZW1lbnQgaXMgbm90IGluIGEgdHJlZSBv
ciBpbiBhIGRvY3VtZW50IHRyZWUgCi1QQVNTIGFzc2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQiOnRy
dWV9KSBvbiBhIEhUTUxTbG90RWxlbWVudCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVu
IHRoZSBzbG90IGVsZW1lbnQgaXMgbm90IGluIGEgdHJlZSBvciBpbiBhIGRvY3VtZW50IHRyZWUg
Ci1QQVNTIGFzc2lnbmVkTm9kZXMoKSBtdXN0IHJldHVybiB0aGUgbGlzdCBvZiBhc3NpZ25lZCBu
b2RlcyB3aGVuIG5vbmUgb2YgdGhlIGFzc2lnbmVkIG5vZGVzIHRoZW1zZWx2ZXMgYXJlIHNsb3Rz
IAotUEFTUyBhc3NpZ25lZE5vZGVzKHsiZmxhdHRlbmVkIjpmYWxzZX0pIG11c3QgcmV0dXJuIHRo
ZSBsaXN0IG9mIGFzc2lnbmVkIG5vZGVzIHdoZW4gbm9uZSBvZiB0aGUgYXNzaWduZWQgbm9kZXMg
dGhlbXNlbHZlcyBhcmUgc2xvdHMgCi1QQVNTIGFzc2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQiOnRy
dWV9KSBtdXN0IHJldHVybiB0aGUgbGlzdCBvZiBhc3NpZ25lZCBub2RlcyB3aGVuIG5vbmUgb2Yg
dGhlIGFzc2lnbmVkIG5vZGVzIHRoZW1zZWx2ZXMgYXJlIHNsb3RzIAotUEFTUyBhc3NpZ25lZE5v
ZGVzKCkgbXVzdCB1cGRhdGUgd2hlbiBzbG90IGFuZCBuYW1lIGF0dHJpYnV0ZXMgYXJlIG1vZGlm
aWVkIAotUEFTUyBhc3NpZ25lZE5vZGVzKHsiZmxhdHRlbmVkIjpmYWxzZX0pIG11c3QgdXBkYXRl
IHdoZW4gc2xvdCBhbmQgbmFtZSBhdHRyaWJ1dGVzIGFyZSBtb2RpZmllZCAKLVBBU1MgYXNzaWdu
ZWROb2Rlcyh7ImZsYXR0ZW5lZCI6dHJ1ZX0pIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBhbmQgbmFt
ZSBhdHRyaWJ1dGVzIGFyZSBtb2RpZmllZCAKLVBBU1MgYXNzaWduZWROb2RlcyBtdXN0IHVwZGF0
ZSB3aGVuIGEgZGVmYXVsdCBzbG90IGlzIGludHJvZHVjZWQgZHluYW1pY2FsbHkgYnkgYSBzbG90
IHJlbmFtZSAKLVBBU1MgYXNzaWduZWROb2Rlcyh7ImZsYXR0ZW5lZCI6ZmFsc2V9KSBtdXN0IHVw
ZGF0ZSB3aGVuIHNsb3QgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgbW9kaWZpZWQgCi1QQVNTIGFz
c2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQiOnRydWV9KSBtdXN0IHVwZGF0ZSB3aGVuIHNsb3QgYW5k
IG5hbWUgYXR0cmlidXRlcyBhcmUgbW9kaWZpZWQgCi1QQVNTIGFzc2lnbmVkTm9kZXMgbXVzdCB1
cGRhdGUgd2hlbiBzbG90IGVsZW1lbnRzIGFyZSBpbnNlcnRlZCBvciByZW1vdmVkIAotUEFTUyBh
c3NpZ25lZE5vZGVzIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBlbGVtZW50cyBhcmUgaW5zZXJ0ZWQg
b3IgcmVtb3ZlZCAKLVBBU1MgYXNzaWduZWROb2RlcyBtdXN0IHVwZGF0ZSB3aGVuIHNsb3QgZWxl
bWVudHMgYXJlIGluc2VydGVkIG9yIHJlbW92ZWQgCi1QQVNTIGFzc2lnbmVkTm9kZXMoe2ZsYXR0
ZW46IHRydWV9KSBtdXN0IHJldHVybiB0aGUgZGlzdHJpYnV0ZWQgbm9kZXMsIGFuZCBhc3NpZ25l
ZE5vZGVzKCkgYW5kIGFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkgbXVzdCByZXR1cm5l
ZCB0aGUgYXNzaWduZWQgbm9kZXMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9IVE1MU2xvdEVsZW1lbnQtaW50ZXJmYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZjhkOTdiZWEzOWY3ZmE2YzExMjZlZDhiN2NkMzRkYmIxZGZmODEw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9IVE1MU2xvdEVsZW1lbnQtaW50ZXJmYWNlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHRpdGxlPlNoYWRvdyBET006IEhUTUxTbG90RWxlbWVudCBpbnRlcmZhY2U8L3RpdGxlPgot
PG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5p
d2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkhUTUxTbG90RWxl
bWVudCBtdXN0IGV4aXN0IG9uIHdpbmRvdyB3aXRoIG5hbWUgYXR0cmlidXRlIGFuZCBnZXRBc3Np
Z25lZE5vZGUoKSBtZXRob2QiPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5n
aXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL3NoYWRvdy8jdGhlLXNsb3QtZWxlbWVudCI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuY3NzJz4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQ+
Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGFzc2VydF90cnVlKCdIVE1MU2xvdEVsZW1lbnQn
IGluIHdpbmRvdywgJ0hUTUxTbG90RWxlbWVudCBtdXN0IGJlIGRlZmluZWQgb24gd2luZG93Jyk7
Ci0gICAgYXNzZXJ0X2VxdWFscyhIVE1MU2xvdEVsZW1lbnQucHJvdG90eXBlLl9fcHJvdG9fXywg
SFRNTEVsZW1lbnQucHJvdG90eXBlLCAnSFRNTFNsb3RFbGVtZW50IHNob3VsZCBpbmhlcml0IGZy
b20gSFRNTEVsZW1lbnQnKTsKLSAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzbG90JykgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnQsICdzbG90IGVsZW1lbnQgc2hvdWxk
IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxTbG90RWxlbWVudCcpOwotICAgIGFzc2VydF90cnVlKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50LCAnc2xv
dCBlbGVtZW50IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudCcpOwotfSwgJ0hU
TUxTbG90RWxlbWVudCBtdXN0IGJlIGRlZmluZWQgb24gd2luZG93Jyk7Ci0KLXRlc3QoZnVuY3Rp
b24gKCkgewotICAgIGFzc2VydF90cnVlKCduYW1lJyBpbiBIVE1MU2xvdEVsZW1lbnQucHJvdG90
eXBlLCAnIm5hbWUiIGF0dHJpYnV0ZSBtdXN0IGJlIGRlZmluZWQgb24gSFRNTFNsb3RFbGVtZW50
LnByb3RvdHlwZScpOwotCi0gICAgdmFyIHNsb3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2xvdCcpOwotICAgIGFzc2VydF9lcXVhbHMoc2xvdEVsZW1lbnQubmFtZSwgJycsICci
bmFtZSIgYXR0cmlidXRlIG11c3QgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgd2hlbiAibmFtZSIg
Y29udGVudCBhdHRyaWJ1dGUgaXMgbm90IHNldCcpOwotCi0gICAgc2xvdEVsZW1lbnQuc2V0QXR0
cmlidXRlKCduYW1lJywgJ2ZvbycpOwotICAgIGFzc2VydF9lcXVhbHMoc2xvdEVsZW1lbnQubmFt
ZSwgJ2ZvbycsICcibmFtZSIgYXR0cmlidXRlIG11c3QgcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUg
Im5hbWUiIGNvbnRlbnQgYXR0cmlidXRlJyk7Ci0KLSAgICBzbG90RWxlbWVudC5uYW1lID0gJ2Jh
cic7Ci0gICAgYXNzZXJ0X2VxdWFscyhzbG90RWxlbWVudC5uYW1lLCAnYmFyJywgJyJuYW1lIiBh
dHRyaWJ1dGUgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIHZhbHVlJyk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhzbG90RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ25hbWUnKSwgJ2JhcicsICcibmFtZSIgYXR0
cmlidXRlIG11c3QgdXBkYXRlIHRoZSAibmFtZSIgY29udGVudCBhdHRyaWJ1dGUnKTsKLX0sICci
bmFtZSIgYXR0cmlidXRlIG9uIEhUTUxTbG90RWxlbWVudCBtdXN0IHJlZmxlY3QgIm5hbWUiIGF0
dHJpYnV0ZScpOwotCi1mdW5jdGlvbiB0ZXN0U2xvdE91dHNpZGVTaGFkb3dUcmVlKG9wdGlvbnMp
Ci17Ci0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKCdhc3NpZ25l
ZE5vZGVzJyBpbiBIVE1MU2xvdEVsZW1lbnQucHJvdG90eXBlLCAnImFzc2lnbmVkTm9kZXMiIG1l
dGhvZCBtdXN0IGJlIGRlZmluZWQgb24gSFRNTFNsb3RFbGVtZW50LnByb3RvdHlwZScpOwotCi0g
ICAgICAgIHZhciBzbG90RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsK
LSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9w
dGlvbnMpLCBbXSwgJ2Fzc2lnbmVkTm9kZXMoKSBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3
aGVuIHRoZSBzbG90IGVsZW1lbnQgaXMgbm90IGluIGFueSB0cmVlJyk7Ci0KLSAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChzbG90RWxlbWVudCk7Ci0gICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW10sICdhc3NpZ25l
ZE5vZGVzKCkgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50
IGlzIGluIGEgZG9jdW1lbnQgdHJlZScpOwotCi0gICAgfSwgJ2Fzc2lnbmVkTm9kZXMoJyArIChv
cHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiAnJykKLSAgICAgICAgKyAnKSBvbiBh
IEhUTUxTbG90RWxlbWVudCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZSBzbG90
IGVsZW1lbnQgaXMgbm90IGluIGEgdHJlZSBvciBpbiBhIGRvY3VtZW50IHRyZWUnKTsKLX0KLQot
dGVzdFNsb3RPdXRzaWRlU2hhZG93VHJlZShudWxsKTsKLXRlc3RTbG90T3V0c2lkZVNoYWRvd1Ry
ZWUoe2ZsYXR0ZW5lZDogZmFsc2V9KTsKLXRlc3RTbG90T3V0c2lkZVNoYWRvd1RyZWUoe2ZsYXR0
ZW5lZDogdHJ1ZX0pOwotCi1mdW5jdGlvbiB0ZXN0U2luZ2xlTGV2ZWxPZlNsb3R0aW5nKG9wdGlv
bnMpCi17Ci0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKCdhc3Np
Z25lZE5vZGVzJyBpbiBIVE1MU2xvdEVsZW1lbnQucHJvdG90eXBlLCAnImFzc2lnbmVkTm9kZXMi
IG1ldGhvZCBtdXN0IGJlIGRlZmluZWQgb24gSFRNTFNsb3RFbGVtZW50LnByb3RvdHlwZScpOwot
Ci0gICAgICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgICAgIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLQotICAg
ICAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Bl
bid9KTsKLSAgICAgICAgdmFyIHNsb3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2xvdCcpOwotICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3RFbGVtZW50KTsKLQot
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0
aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcygpIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdo
ZW4gdGhlcmUgYXJlIG5vIG5vZGVzIGluIHRoZSBzaGFkb3cgdHJlZScpOwotCi0gICAgICAgIHNo
YWRvd0hvc3QuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtjaGlsZF0sICdhc3NpZ25lZE5v
ZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gYW4gZWxlbWVudCB3aXRob3V0IHNs
b3QgZWxlbWVudCcpOwotCi0gICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgnc2xvdCcsICdmb28n
KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVz
KG9wdGlvbnMpLCBbXSwgJ2Fzc2lnbmVkTm9kZXMoKSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IG5v
dCByZXR1cm4gYW4gZWxlbWVudCB3aXRoIG5vbi1lbXB0eSBzbG90IGF0dHJpYnV0ZScpOwotCi0g
ICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgnc2xvdCcsICcnKTsKLSAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbY2hpbGRdLCAn
YXNzaWduZWROb2RlcygpIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIGFuIGVsZW1lbnQg
d2l0aCBlbXB0eSBzbG90IGF0dHJpYnV0ZScpOwotCi0gICAgICAgIHNsb3RFbGVtZW50LnNldEF0
dHJpYnV0ZSgnbmFtZScsICdiYXInKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90
RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwgJ2Fzc2lnbmVkTm9kZXMoKSBvbiBh
IG5hbWVkIHNsb3QgbXVzdCBub3QgcmV0dXJuIGFuIGVsZW1lbnQgd2l0aCBlbXB0eSBzbG90IGF0
dHJpYnV0ZScpOwotCi0gICAgICAgIHNsb3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnbmFtZScsICcn
KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVz
KG9wdGlvbnMpLCBbY2hpbGRdLCAnYXNzaWduZWROb2RlcygpIG9uIGFuIGVtcHR5IG5hbWUgc2xv
dCBtdXN0IHJldHVybiBhbiBlbGVtZW50IHdpdGggZW1wdHkgc2xvdCBhdHRyaWJ1dGUnKTsKLQot
ICAgIH0sICdhc3NpZ25lZE5vZGVzKCcgKyAob3B0aW9ucyA/IEpTT04uc3RyaW5naWZ5KG9wdGlv
bnMpIDogJycpICsgJykgbXVzdCByZXR1cm4gdGhlIGxpc3Qgb2YgYXNzaWduZWQgbm9kZXMgd2hl
biBub25lIG9mIHRoZSBhc3NpZ25lZCBub2RlcyB0aGVtc2VsdmVzIGFyZSBzbG90cycpOwotfQot
Ci10ZXN0U2luZ2xlTGV2ZWxPZlNsb3R0aW5nKG51bGwpOwotdGVzdFNpbmdsZUxldmVsT2ZTbG90
dGluZyh7ZmxhdHRlbmVkOiBmYWxzZX0pOwotdGVzdFNpbmdsZUxldmVsT2ZTbG90dGluZyh7Zmxh
dHRlbmVkOiB0cnVlfSk7Ci0KLWZ1bmN0aW9uIHRlc3RNdXRhdGluZ1Nsb3R0ZWRDb250ZW50cyhv
cHRpb25zKQotewotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgc2hhZG93SG9z
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICB2YXIgcCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgICAgICAgdmFyIGIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdiJyk7Ci0gICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQocCk7Ci0gICAgICAg
IHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoYik7Ci0KLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBz
aGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7Ci0gICAgICAgIHZhciBzbG90
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICAgICAgc2hhZG93
Um9vdC5hcHBlbmRDaGlsZChzbG90RWxlbWVudCk7Ci0KLSAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbcCwgYl0sICdhc3NpZ25l
ZE5vZGVzIG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRlZCBub2RlcycpOwotCi0gICAgICAgIHNs
b3RFbGVtZW50Lm5hbWUgPSAnZm9vJzsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90
RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwgJ2Fzc2lnbmVkTm9kZXMgbXVzdCBi
ZSBlbXB0eSB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyBlbGVtZW50cyBmb3IgdGhlIHNsb3Qg
bmFtZScpOwotCi0gICAgICAgIGIuc2xvdCA9ICdmb28nOwotICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtiXSwgJ2Fzc2lnbmVk
Tm9kZXMgbXVzdCByZXR1cm4gdGhlIG5vZGVzIHdpdGggdGhlIG1hdGNoaW5nIHNsb3QgbmFtZScp
OwotCi0gICAgICAgIHAuc2xvdCA9ICdmb28nOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtwLCBiXSwgJ2Fzc2lnbmVkTm9k
ZXMgbXVzdCByZXR1cm4gdGhlIG5vZGVzIHdpdGggdGhlIG1hdGNoaW5nIHNsb3QgbmFtZSBpbiB0
aGUgdHJlZSBvcmRlcicpOwotCi0gICAgICAgIHNsb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgn
bmFtZScpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVk
Tm9kZXMob3B0aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcyBtdXN0IGJlIGVtcHR5IGZvciBhIGRl
ZmF1bHQgc2xvdCB3aGVuIGFsbCBlbGVtZW50cyBoYXZlICJzbG90IiBhdHRyaWJ1dGVzIHNwZWNp
ZmllZCcpOwotCi0gICAgfSwgJ2Fzc2lnbmVkTm9kZXMoJyArIChvcHRpb25zID8gSlNPTi5zdHJp
bmdpZnkob3B0aW9ucykgOiAnJykgKyAnKSBtdXN0IHVwZGF0ZSB3aGVuIHNsb3QgYW5kIG5hbWUg
YXR0cmlidXRlcyBhcmUgbW9kaWZpZWQnKTsKLX0KLQotdGVzdE11dGF0aW5nU2xvdHRlZENvbnRl
bnRzKG51bGwpOwotdGVzdE11dGF0aW5nU2xvdHRlZENvbnRlbnRzKHtmbGF0dGVuZWQ6IGZhbHNl
fSk7Ci10ZXN0TXV0YXRpbmdTbG90dGVkQ29udGVudHMoe2ZsYXR0ZW5lZDogdHJ1ZX0pOwotCi1m
dW5jdGlvbiB0ZXN0TXV0YXRpbmdTbG90TmFtZShvcHRpb25zKQotewotICAgIHRlc3QoZnVuY3Rp
b24gKCkgewotICAgICAgICB2YXIgc2hhZG93SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgICAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFu
Jyk7Ci0gICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoY2hpbGQpOwotCi0gICAgICAgIHZh
ciBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30pOwot
ICAgICAgICB2YXIgc2xvdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7
Ci0gICAgICAgIHNsb3RFbGVtZW50Lm5hbWUgPSAnZm9vJzsKLSAgICAgICAgc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChzbG90RWxlbWVudCk7Ci0KLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhz
bG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwgJ2Fzc2lnbmVkTm9kZXMgbXVz
dCBiZSBlbXB0eSB3aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyBlbGVtZW50cyBmb3IgdGhlIHNs
b3QgbmFtZScpOwotCi0gICAgICAgIHNsb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnbmFtZScp
OwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMo
b3B0aW9ucyksIFtjaGlsZF0sICdhc3NpZ25lZE5vZGVzIG11c3QgYmUgZW1wdHkgd2hlbiB0aGVy
ZSBhcmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMgZm9yIHRoZSBzbG90IG5hbWUnKTsKLQotICAgIH0s
ICdhc3NpZ25lZE5vZGVzIG11c3QgdXBkYXRlIHdoZW4gYSBkZWZhdWx0IHNsb3QgaXMgaW50cm9k
dWNlZCBkeW5hbWljYWxseSBieSBhIHNsb3QgcmVuYW1lJyk7Ci19Ci0KLXRlc3RNdXRhdGluZ1Ns
b3ROYW1lKG51bGwpOwotdGVzdE11dGF0aW5nU2xvdHRlZENvbnRlbnRzKHtmbGF0dGVuZWQ6IGZh
bHNlfSk7Ci10ZXN0TXV0YXRpbmdTbG90dGVkQ29udGVudHMoe2ZsYXR0ZW5lZDogdHJ1ZX0pOwot
Ci1mdW5jdGlvbiB0ZXN0SW5zZXJ0aW5nQW5kUmVtb3ZpbmdTbG90cyhvcHRpb25zKQotewotICAg
IHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgc2hhZG93SG9zdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3AnKTsKLSAgICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJyk7
Ci0gICAgICAgIHZhciBjb21tZW50ID0gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgnJyk7Ci0gICAg
ICAgIHZhciBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oJ3RhcmdldCcsICdkYXRhJyk7Ci0gICAgICAgIHZhciBiID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnYicpOwotICAgICAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKHApOwot
ICAgICAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKHRleHQpOwotICAgICAgICBzaGFkb3dIb3N0
LmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKHBy
b2Nlc3NpbmdJbnN0cnVjdGlvbik7Ci0gICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoYik7
Ci0KLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9k
ZTogJ29wZW4nfSk7Ci0KLSAgICAgICAgdmFyIGZpcnN0U2xvdEVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzbG90Jyk7Ci0gICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZmly
c3RTbG90RWxlbWVudCk7Ci0KLSAgICAgICAgdmFyIHNlY29uZFNsb3RFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOwotICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxk
KHNlY29uZFNsb3RFbGVtZW50KTsKLQotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGZpcnN0
U2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW3AsIHRleHQsIGJdLAotICAgICAg
ICAgICAgJ2Fzc2lnbmVkTm9kZXMgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGVs
ZW1lbnRzIHdpdGhvdXQgc2xvdCBhdHRyaWJ1dGVzIGFuZCB0ZXh0IG5vZGVzJyk7Ci0gICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoc2Vjb25kU2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRp
b25zKSwgW10sCi0gICAgICAgICAgICAnYXNzaWduZWROb2RlcyBvbiB0aGUgc2Vjb25kIHVubmFt
ZWQgc2xvdCBlbGVtZW50IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5Jyk7Ci0KLSAgICAgICAg
c2hhZG93Um9vdC5yZW1vdmVDaGlsZChmaXJzdFNsb3RFbGVtZW50KTsKLSAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhmaXJzdFNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtd
LAotICAgICAgICAgICAgJ2Fzc2lnbmVkTm9kZXMgb24gYSBkZXRhY2hlZCBmb3JtZXJseS1kZWZh
dWx0IHNsb3QgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXknKTsKLSAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhzZWNvbmRTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbcCwg
dGV4dCwgYl0sCi0gICAgICAgICAgICAnYXNzaWduZWROb2RlcyBvbiB0aGUgc2Vjb25kIHVubmFt
ZWQgc2xvdCBlbGVtZW50IGFmdGVyIHJlbW92aW5nIHRoZSBmaXJzdCBtdXN0IHJldHVybiB0aGUg
ZWxlbWVudHMgd2l0aG91dCBzbG90IGF0dHJpYnV0ZXMgYW5kIHRleHQgbm9kZXMnKTsKLQotICAg
ICAgICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKHNlY29uZFNsb3RFbGVtZW50KTsKLSAgICAgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChzZWNvbmRTbG90RWxlbWVudCk7Ci0gICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoZmlyc3RTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBb
XSwKLSAgICAgICAgICAgICdSZW1vdmluZyBhbmQgcmUtaW5zZXJ0aW5nIGEgZGVmYXVsdCBzbG90
IG11c3Qgbm90IGNoYW5nZSB0aGUgcmVzdWx0IG9mIGFzc2lnbmVkTm9kZXMgb24gYSBkZXRhY2hl
ZCBzbG90Jyk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2Vjb25kU2xvdEVsZW1lbnQu
YXNzaWduZWROb2RlcyhvcHRpb25zKSwgW3AsIHRleHQsIGJdLAotICAgICAgICAgICAgJ1JlbW92
aW5nIGFuZCByZS1pbnNlcnRpbmcgYSBkZWZhdWx0IHNsb3QgbXVzdCBub3QgY2hhbmdlIHRoZSBy
ZXN1bHQgb2YgYXNzaWduZWROb2RlcycpOwotCi0gICAgICAgIHNoYWRvd1Jvb3QuaW5zZXJ0QmVm
b3JlKGZpcnN0U2xvdEVsZW1lbnQsIHNlY29uZFNsb3RFbGVtZW50KTsKLSAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhmaXJzdFNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtw
LCB0ZXh0LCBiXSwKLSAgICAgICAgICAgICdhc3NpZ25lZE5vZGVzIG9uIGEgbmV3bHkgaW5zZXJ0
ZWQgdW5uYW1lZCBzbG90IGVsZW1lbnQgbXVzdCByZXR1cm4gdGhlIGVsZW1lbnRzIHdpdGhvdXQg
c2xvdCBhdHRyaWJ1dGVzIGFuZCB0ZXh0IG5vZGVzJyk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoc2Vjb25kU2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW10sCi0gICAg
ICAgICAgICAnYXNzaWduZWROb2RlcyBvbiBmb3JtZXJseS1maXJzdCBidXQgbm93IHNlY29uZCB1
bm5hbWVkIHNsb3QgZWxlbWVudCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheScpOwotCi0gICAg
fSwgJ2Fzc2lnbmVkTm9kZXMgbXVzdCB1cGRhdGUgd2hlbiBzbG90IGVsZW1lbnRzIGFyZSBpbnNl
cnRlZCBvciByZW1vdmVkJyk7Ci19Ci0KLXRlc3RJbnNlcnRpbmdBbmRSZW1vdmluZ1Nsb3RzKG51
bGwpOwotdGVzdEluc2VydGluZ0FuZFJlbW92aW5nU2xvdHMoe2ZsYXR0ZW5lZDogZmFsc2V9KTsK
LXRlc3RJbnNlcnRpbmdBbmRSZW1vdmluZ1Nsb3RzKHtmbGF0dGVuZWQ6IHRydWV9KTsKLQotdGVz
dChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIG91dGVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotICAgIHZhciBvdXRlckNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c3BhbicpOwotICAgIG91dGVySG9zdC5hcHBlbmRDaGlsZChvdXRlckNoaWxkKTsKLQotICAgIHZh
ciBvdXRlclNoYWRvdyA9IG91dGVySG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7
Ci0gICAgdmFyIGlubmVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
IHZhciBvdXRlclNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7Ci0gICAgdmFy
IGlubmVyQ2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdiJyk7Ci0gICAgb3V0ZXJTaGFk
b3cuYXBwZW5kQ2hpbGQoaW5uZXJIb3N0KTsKLSAgICBpbm5lckhvc3QuYXBwZW5kQ2hpbGQob3V0
ZXJTbG90KTsKLSAgICBpbm5lckhvc3QuYXBwZW5kQ2hpbGQoaW5uZXJDaGlsZCk7Ci0KLSAgICB2
YXIgaW5uZXJTaGFkb3cgPSBpbm5lckhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30p
OwotICAgIHZhciBpbm5lclNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7Ci0g
ICAgaW5uZXJTaGFkb3cuYXBwZW5kQ2hpbGQoaW5uZXJTbG90KTsKLQotICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMob3V0ZXJTbG90LmFzc2lnbmVkTm9kZXMoKSwgW291dGVyQ2hpbGRdLCAnYXNzaWdu
ZWROb2RlcygpIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2Rl
cycpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMob3V0ZXJTbG90LmFzc2lnbmVkTm9kZXMoe2Zs
YXR0ZW46IGZhbHNlfSksIFtvdXRlckNoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IGZh
bHNlfSkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7
Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvdXRlclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRl
bjogdHJ1ZX0pLCBbb3V0ZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkg
b24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzIGlmIHRoZXkg
YXJlIG5vdCB0aGVtc2VsdmVzIHNsb3RzJyk7Ci0KLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlu
bmVyU2xvdC5hc3NpZ25lZE5vZGVzKCksIFtvdXRlclNsb3QsIGlubmVyQ2hpbGRdLCAnYXNzaWdu
ZWROb2RlcygpIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2Rl
cycpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2Zs
YXR0ZW46IGZhbHNlfSksIFtvdXRlclNsb3QsIGlubmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7
ZmxhdHRlbjogZmFsc2V9KSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUgYXNzaWdu
ZWQgbm9kZXMnKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlubmVyU2xvdC5hc3NpZ25lZE5v
ZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtvdXRlckNoaWxkLCBpbm5lckNoaWxkXSwgJ2Fzc2lnbmVk
Tm9kZXMoe2ZsYXR0ZW46IHRydWV9KSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUg
ZGlzdHJpYnV0ZWQgbm9kZXMnKTsKLQotICAgIG91dGVyU2xvdC5uYW1lID0gJ2Zvbyc7Ci0gICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhvdXRlclNsb3QuYXNzaWduZWROb2RlcygpLCBbXSwgJ2Fzc2ln
bmVkTm9kZXMoKSBvbiBhIG5hbWVkIHNsb3QgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgaWYg
dGhlcmUgYXJlIG5vIG1hdGNoaW5nIGVsZW1lbnRzJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhvdXRlclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW10sICdhc3NpZ25l
ZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgbmFtZWQgc2xvdCBtdXN0IHJldHVybiBhbiBl
bXB0eSBhcnJheSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMnKTsKLSAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKG91dGVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSks
IFtdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgbmFtZWQgc2xvdCBtdXN0
IHJldHVybiBhbiBlbXB0eSBhcnJheSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMn
KTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoKSwg
W291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNs
b3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyU2xv
dCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgZGVm
YXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOwotICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRydWV9KSwgW2lu
bmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgZGVmYXVsdCBz
bG90IG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRlZCBub2RlcycpOwotCi0gICAgb3V0ZXJDaGls
ZC5zbG90ID0gJ2Zvbyc7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvdXRlclNsb3QuYXNzaWdu
ZWROb2RlcygpLCBbb3V0ZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBuYW1lZCBzbG90
IG11c3QgcmV0dXJuIG1hdGNoaW5nIGVsZW1lbnRzJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhvdXRlclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyQ2hpbGRd
LCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSBvbiBhIG5hbWVkIHNsb3QgbXVzdCBy
ZXR1cm4gbWF0Y2hpbmcgZWxlbWVudHMnKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG91dGVy
U2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtvdXRlckNoaWxkXSwgJ2Fzc2ln
bmVkTm9kZXMoe2ZsYXR0ZW46IHRydWV9KSBvbiBhIG5hbWVkIHNsb3QgbXVzdCByZXR1cm4gbWF0
Y2hpbmcgZWxlbWVudHMnKTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFz
c2lnbmVkTm9kZXMoKSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkg
b24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7Ci0gICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFs
c2V9KSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBm
YWxzZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2Rlcycp
OwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0
ZW46IHRydWV9KSwgW291dGVyQ2hpbGQsIGlubmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7Zmxh
dHRlbjogdHJ1ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRl
ZCBub2RlcycpOwotCi0gICAgdmFyIG5ld0lubmVyU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3Nsb3QnKTsKLSAgICBpbm5lclNoYWRvdy5pbnNlcnRCZWZvcmUobmV3SW5uZXJTbG90LCBp
bm5lclNsb3QpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3SW5uZXJTbG90LmFzc2lnbmVk
Tm9kZXMoKSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBk
ZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7Ci0gICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhuZXdJbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9
KSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxz
ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOwot
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3SW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0
ZW46IHRydWV9KSwgW291dGVyQ2hpbGQsIGlubmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7Zmxh
dHRlbjogdHJ1ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRl
ZCBub2RlcycpOwotCi0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWRO
b2RlcygpLCBbXSwgJ2Fzc2lnbmVkTm9kZXMoKSBvbiBhIG5hbWVsZXNzIHNsb3QgZWxlbWVudCB3
aGljaCBhcHBlYXJzIGFmdGVyIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFy
cmF5Jyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7
ZmxhdHRlbjogZmFsc2V9KSwgW10sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9u
IGEgbmFtZWxlc3Mgc2xvdCBlbGVtZW50IHdoaWNoIGFwcGVhcnMgYWZ0ZXIgYSBkZWZhdWx0IHNs
b3QgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXknKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGlubmVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtdLCAnYXNzaWduZWRO
b2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgbmFtZWxlc3Mgc2xvdCBlbGVtZW50IHdoaWNoIGFw
cGVhcnMgYWZ0ZXIgYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXknKTsK
LQotICAgIGlubmVyU2hhZG93LnJlbW92ZUNoaWxkKG5ld0lubmVyU2xvdCk7Ci0gICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhuZXdJbm5lclNsb3QuYXNzaWduZWROb2RlcygpLCBbXSwgJ2Fzc2lnbmVk
Tm9kZXMoKSBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZSBzbG90IGVsZW1lbnQg
aXMgbm90IGluIGFueSB0cmVlJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXdJbm5lclNs
b3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW10sICdhc3NpZ25lZE5vZGVzKHtm
bGF0dGVuOiBmYWxzZX0pIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIHNsb3Qg
ZWxlbWVudCBpcyBub3QgaW4gYW55IHRyZWUnKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5l
d0lubmVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtdLCAnYXNzaWduZWRO
b2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhl
IHNsb3QgZWxlbWVudCBpcyBub3QgaW4gYW55IHRyZWUnKTsKLQotICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoKSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0s
ICdhc3NpZ25lZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2ln
bmVkIG5vZGVzJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWRO
b2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25l
ZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRo
ZSBhc3NpZ25lZCBub2RlcycpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFz
c2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRydWV9KSwgW291dGVyQ2hpbGQsIGlubmVyQ2hpbGRdLCAn
YXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0
dXJuIHRoZSBkaXN0cmlidXRlZCBub2RlcycpOwotCi19LCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRl
bjogdHJ1ZX0pIG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRlZCBub2RlcywgYW5kIGFzc2lnbmVk
Tm9kZXMoKSBhbmQgYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSBtdXN0IHJldHVybmVk
IHRoZSBhc3NpZ25lZCBub2RlcycpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9Nb3VzZUV2ZW50LXByb3RvdHlw
ZS1vZmZzZXRYLW9mZnNldFktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ct
ZG9tL01vdXNlRXZlbnQtcHJvdG90eXBlLW9mZnNldFgtb2Zmc2V0WS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwNzAwODJhMDhhZTJjMzg0ZDc5OTkzMDNmNjkw
NTE2ZWY2ZDI3NTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL01vdXNlRXZlbnQtcHJvdG90eXBlLW9mZnNl
dFgtb2Zmc2V0WS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLUNs
aWNrIGhlcmUKLQotUEFTUyBNb3VzZUV2ZW50J3Mgb2Zmc2V0WCBhbmQgb2Zmc2V0WSBhdHRyaWJ1
dGVzIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIHRhcmdldC4gCi1QQVNTIE1vdXNlRXZlbnQncyBv
ZmZzZXRYIGFuZCBvZmZzZXRZIGF0dHJpYnV0ZXMgbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgc2hh
ZG93IGhvc3Qgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVkIGluc2lkZSBpdHMgc2hhZG93IHRy
ZWUuIAotUEFTUyBNb3VzZUV2ZW50J3Mgb2Zmc2V0WCBhbmQgb2Zmc2V0WSBhdHRyaWJ1dGVzIG11
c3QgYmUgcmVsYXRpdmUgdG8gdGhlIHRhcmdldCB3aGVuIGFuIGV2ZW50IGlzIGRpc3BhdGNoZWQg
b24gYSBzbG90dGVkIGNvbnRlbnQuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vTW91c2VFdmVudC1wcm90b3R5cGUtb2Zmc2V0WC1vZmZzZXRZLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vTW91c2VFdmVudC1wcm90b3R5cGUtb2Zmc2V0WC1vZmZz
ZXRZLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NmNhMzY1OTU5NDM5MWYw
NmQ3OWI0ODllYThlNTYyYzEyODA4ZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL01vdXNlRXZlbnQtcHJv
dG90eXBlLW9mZnNldFgtb2Zmc2V0WS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU1ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5TaGFkb3cgRE9NOiBN
b3VzZUV2ZW50J3Mgb2Zmc2V0WCBhbmQgb2Zmc2V0WSBhdHRyaWJ1dGVzIG11c3QgYmUgcmVsYXRp
dmUgdG8gdGhlIHJlbGF0aXZlIHRhcmdldC48L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0
aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0
YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlRoZSBNb3VzZUV2ZW50IG9mZnNldFggYW5kIG9mZnNl
dFkgYXR0cmlidXRlcyBtdXN0IHJldHVybiB0aGUgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gdGhl
IG9yaWdpbiBvZiB0aGUgcGFkZGluZyBlZGdlIG9mIHRoZSByZWxhdGl2ZSB0YXJnZXQiPgotPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3Nw
ZWMvc2hhZG93LyNldmVudC1kaXNwYXRjaCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9l
dmVudC1wYXRoLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9J3N0eWxlc2hl
ZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgotPC9oZWFkPgotPGJv
ZHk+Ci08c3R5bGU+Ci1odG1sLCBib2R5IHsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyB9Ci1teS1o
b3N0IHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxODBweDsgaGVpZ2h0OiA4MHB4OyBtYXJnaW46
IDEwcHggMjBweDsgcGFkZGluZzogMTBweDsgYmFja2dyb3VuZDogI2NjYzsgfQotI2xvZyB7IG1h
cmdpbjogMXJlbTsgfQotPC9zdHlsZT4KLTxteS1ob3N0PjwvbXktaG9zdD4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0PgotCi12YXIgc2hhZG93U3R5bGUgPSAnI2NvbnRhaW5lciB7IHdp
ZHRoOiAxNjBweDsgaGVpZ2h0OiA2MHB4OyBwYWRkaW5nOiAxMHB4OyBiYWNrZ3JvdW5kOiB5ZWxs
b3c7IH0gI3RhcmdldCB7IG1hcmdpbi1sZWZ0OiA1cHg7IGJhY2tncm91bmQ6IG9yYW5nZTsgfSc7
Ci12YXIgaG9zdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWhvc3QnKTsKLQotZnVuY3Rp
b24gYXR0YWNoTG9nZ2Vycyh0YXJnZXRzKQotewotICAgIHZhciBldmVudExvZ3MgPSBbXTsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRhcmdldHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdGFy
Z2V0c1tpXS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmdW5jdGlvbiAoZXZlbnQpIHsK
LSAgICAgICAgICAgIGV2ZW50TG9ncy5wdXNoKHtjdXJyZW50OiB0aGlzLCB0YXJnZXQ6IGV2ZW50
LnRhcmdldCwgb2Zmc2V0WDogZXZlbnQub2Zmc2V0WCwgb2Zmc2V0WTogZXZlbnQub2Zmc2V0WX0p
OwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgcmV0dXJuIGV2ZW50TG9nczsKLX0KLQotdGVzdChm
dW5jdGlvbiAoKSB7Ci0gICAgaG9zdC5pbm5lckhUTUwgPSAnPHN0eWxlPicgKyBzaGFkb3dTdHls
ZSArICc8L3N0eWxlPjxkaXYgaWQ9ImNvbnRhaW5lciI+PHNwYW4gaWQ9InRhcmdldCI+Q2xpY2sg
aGVyZTwvZGl2PjwvZGl2Pic7Ci0KLSAgICB2YXIgdGFyZ2V0ID0gaG9zdC5xdWVyeVNlbGVjdG9y
KCcjdGFyZ2V0Jyk7Ci0gICAgdmFyIGNvbnRhaW5lciA9IGhvc3QucXVlcnlTZWxlY3RvcignI2Nv
bnRhaW5lcicpOwotCi0gICAgdmFyIGV2ZW50TG9ncyA9IGF0dGFjaExvZ2dlcnMoW3RhcmdldCwg
Y29udGFpbmVyLCBob3N0LCBkb2N1bWVudC5ib2R5XSk7Ci0gICAgdmFyIG1vdXNlRXZlbnQgPSBu
ZXcgTW91c2VFdmVudCgnbW91c2Vkb3duJywge2NsaWVudFg6IDUxLCBjbGllbnRZOiAzNywgY29t
cG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWV9KTsKLSAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudCht
b3VzZUV2ZW50KTsKLQotICAgIGFzc2VydF9lcXVhbHMoaG9zdC5vZmZzZXRMZWZ0LCAyMCwgJ1Ro
ZSBob3N0IG11c3QgYmUgYXQgKDIwcHgsIDEwcHgpJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhob3N0
Lm9mZnNldFRvcCwgMTAsICdUaGUgaG9zdCBtdXN0IGJlIGF0ICgyMHB4LCAxMHB4KScpOwotICAg
IGFzc2VydF9lcXVhbHModGFyZ2V0Lm9mZnNldExlZnQsIDQ1LCAnVGhlIHRhcmdldCBtdXN0IGJl
IGF0ICg0NXB4LCAzMHB4KScpOwotICAgIGFzc2VydF9lcXVhbHModGFyZ2V0Lm9mZnNldFRvcCwg
MzAsICdUaGUgdGFyZ2V0IG11c3QgYmUgYXQgKDQ1cHgsIDMwcHgpJyk7Ci0KLSAgICBhc3NlcnRf
ZXF1YWxzKGV2ZW50TG9nc1swXS5jdXJyZW50LCB0YXJnZXQpOwotICAgIGFzc2VydF9lcXVhbHMo
ZXZlbnRMb2dzWzBdLnRhcmdldCwgdGFyZ2V0KTsKLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9n
c1swXS5vZmZzZXRYLCAyMSk7IC8vIFBhZGRpbmcgZWRnZSBvZiB0YXJnZXQgaXMgYXQgKDMwcHgs
IDIwcHgpCi0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMF0ub2Zmc2V0WSwgMTcpOwotCi0g
ICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMV0uY3VycmVudCwgY29udGFpbmVyKTsKLSAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50TG9nc1sxXS50YXJnZXQsIHRhcmdldCk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhldmVudExvZ3NbMV0ub2Zmc2V0WCwgMjEpOwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRM
b2dzWzFdLm9mZnNldFksIDE3KTsKLQotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzJdLmN1
cnJlbnQsIGhvc3QpOwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzJdLnRhcmdldCwgdGFy
Z2V0KTsKLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1syXS5vZmZzZXRYLCAyMSk7Ci0gICAg
YXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMl0ub2Zmc2V0WSwgMTcpOwotCi0gICAgYXNzZXJ0X2Vx
dWFscyhldmVudExvZ3NbM10uY3VycmVudCwgZG9jdW1lbnQuYm9keSk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhldmVudExvZ3NbM10udGFyZ2V0LCB0YXJnZXQpOwotICAgIGFzc2VydF9lcXVhbHMoZXZl
bnRMb2dzWzNdLm9mZnNldFgsIDIxKTsKLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1szXS5v
ZmZzZXRZLCAxNyk7Ci19LCAnTW91c2VFdmVudFwncyBvZmZzZXRYIGFuZCBvZmZzZXRZIGF0dHJp
YnV0ZXMgbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0LicpOwotCi12YXIgc2hhZG93Um9v
dCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwotdGVzdChmdW5jdGlvbiAo
KSB7Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHN0eWxlPicgKyBzaGFkb3dTdHlsZSAr
ICc8L3N0eWxlPjxkaXYgaWQ9ImNvbnRhaW5lciI+PHNwYW4gaWQ9InRhcmdldCI+Q2xpY2sgaGVy
ZTwvZGl2PjwvZGl2Pic7Ci0KLSAgICB2YXIgdGFyZ2V0ID0gc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCcjdGFyZ2V0Jyk7Ci0gICAgdmFyIGNvbnRhaW5lciA9IHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignI2NvbnRhaW5lcicpOwotCi0gICAgdmFyIGV2ZW50TG9ncyA9IGF0dGFjaExvZ2dlcnMo
W3RhcmdldCwgY29udGFpbmVyLCBzaGFkb3dSb290LCBob3N0LCBkb2N1bWVudC5ib2R5XSk7Ci0g
ICAgdmFyIG1vdXNlRXZlbnQgPSBuZXcgTW91c2VFdmVudCgnbW91c2Vkb3duJywge2NsaWVudFg6
IDUxLCBjbGllbnRZOiAzNywgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWV9KTsKLSAgICB0
YXJnZXQuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKLQotICAgIGFzc2VydF9lcXVhbHMoaG9z
dC5vZmZzZXRMZWZ0LCAyMCwgJ1RoZSBob3N0IG11c3QgYmUgYXQgKDIwcHgsIDEwcHgpJyk7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhob3N0Lm9mZnNldFRvcCwgMTAsICdUaGUgaG9zdCBtdXN0IGJlIGF0
ICgyMHB4LCAxMHB4KScpOwotICAgIGFzc2VydF9lcXVhbHModGFyZ2V0Lm9mZnNldExlZnQsIDQ1
LCAnVGhlIHRhcmdldCBtdXN0IGJlIGF0ICg0NXB4LCAzMHB4KScpOwotICAgIGFzc2VydF9lcXVh
bHModGFyZ2V0Lm9mZnNldFRvcCwgMzAsICdUaGUgdGFyZ2V0IG11c3QgYmUgYXQgKDQ1cHgsIDMw
cHgpJyk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS5jdXJyZW50LCB0YXJnZXQp
OwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzBdLnRhcmdldCwgdGFyZ2V0KTsKLSAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS5vZmZzZXRYLCAyMSk7IC8vIFBhZGRpbmcgZWRnZSBv
ZiB0YXJnZXQgaXMgYXQgKDMwcHgsIDIwcHgpCi0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3Nb
MF0ub2Zmc2V0WSwgMTcpOwotCi0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMV0uY3VycmVu
dCwgY29udGFpbmVyKTsKLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1sxXS50YXJnZXQsIHRh
cmdldCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMV0ub2Zmc2V0WCwgMjEpOwotICAg
IGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzFdLm9mZnNldFksIDE3KTsKLQotICAgIGFzc2VydF9l
cXVhbHMoZXZlbnRMb2dzWzNdLmN1cnJlbnQsIGhvc3QpOwotICAgIGFzc2VydF9lcXVhbHMoZXZl
bnRMb2dzWzNdLnRhcmdldCwgaG9zdCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbM10u
b2Zmc2V0WCwgMzEpOyAvLyBQYWRkaW5nIGVkZ2Ugb2YgaG9zdCBpcyBhdCAoMjBweCwgMTBweCkK
LSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1szXS5vZmZzZXRZLCAyNyk7Ci0KLSAgICBhc3Nl
cnRfZXF1YWxzKGV2ZW50TG9nc1s0XS5jdXJyZW50LCBkb2N1bWVudC5ib2R5KTsKLSAgICBhc3Nl
cnRfZXF1YWxzKGV2ZW50TG9nc1s0XS50YXJnZXQsIGhvc3QpOwotICAgIGFzc2VydF9lcXVhbHMo
ZXZlbnRMb2dzWzRdLm9mZnNldFgsIDMxKTsKLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1s0
XS5vZmZzZXRZLCAyNyk7Ci19LCAnTW91c2VFdmVudFwncyBvZmZzZXRYIGFuZCBvZmZzZXRZIGF0
dHJpYnV0ZXMgbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgc2hhZG93IGhvc3Qgd2hlbiBhbiBldmVu
dCBpcyBkaXNwYXRjaGVkIGluc2lkZSBpdHMgc2hhZG93IHRyZWUuJyk7Ci0KLXRlc3QoZnVuY3Rp
b24gKCkgewotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzdHlsZT4nICsgc2hhZG93U3R5
bGUgKyAnPC9zdHlsZT48ZGl2IGlkPSJjb250YWluZXIiPjxzbG90Pjwvc2xvdD48L2Rpdj4nOwot
ICAgIGhvc3QuaW5uZXJIVE1MID0gJzxzdHlsZT4nICsgc2hhZG93U3R5bGUgKyAnPC9zdHlsZT48
ZGl2IGlkPSJ0YXJnZXQiPkNsaWNrIGhlcmU8L2Rpdj4nOwotCi0gICAgdmFyIHRhcmdldCA9IGhv
c3QucXVlcnlTZWxlY3RvcignI3RhcmdldCcpOwotICAgIHZhciBjb250YWluZXIgPSBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJyNjb250YWluZXInKTsKLQotICAgIHZhciBldmVudExvZ3MgPSBh
dHRhY2hMb2dnZXJzKFt0YXJnZXQsIGNvbnRhaW5lciwgc2hhZG93Um9vdCwgaG9zdCwgZG9jdW1l
bnQuYm9keV0pOwotICAgIHZhciBtb3VzZUV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ21vdXNlZG93
bicsIHtjbGllbnRYOiA1MSwgY2xpZW50WTogMzcsIHNjb3BlZDogZmFsc2UsIGJ1YmJsZXM6IHRy
dWV9KTsKLSAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKLQotICAgIGFzc2Vy
dF9lcXVhbHMoaG9zdC5vZmZzZXRMZWZ0LCAyMCwgJ1RoZSBob3N0IG11c3QgYmUgYXQgKDIwcHgs
IDEwcHgpJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhob3N0Lm9mZnNldFRvcCwgMTAsICdUaGUgaG9z
dCBtdXN0IGJlIGF0ICgyMHB4LCAxMHB4KScpOwotICAgIGFzc2VydF9lcXVhbHModGFyZ2V0Lm9m
ZnNldExlZnQsIDQ1LCAnVGhlIHRhcmdldCBtdXN0IGJlIGF0ICg0NXB4LCAzMHB4KScpOwotICAg
IGFzc2VydF9lcXVhbHModGFyZ2V0Lm9mZnNldFRvcCwgMzAsICdUaGUgdGFyZ2V0IG11c3QgYmUg
YXQgKDQ1cHgsIDMwcHgpJyk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS5jdXJy
ZW50LCB0YXJnZXQpOwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzBdLnRhcmdldCwgdGFy
Z2V0KTsKLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS50YXJnZXQub2Zmc2V0UGFyZW50
LCBkb2N1bWVudC5ib2R5KTsKLSAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS5vZmZzZXRY
LCA2KTsgLy8gUGFkZGluZyBlZGdlIG9mIHRhcmdldCBpcyBhdCAoNDVweCwgMzBweCkKLSAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS5vZmZzZXRZLCA3KTsKLQotICAgIGFzc2VydF9lcXVh
bHMoZXZlbnRMb2dzWzFdLmN1cnJlbnQsIGNvbnRhaW5lcik7Ci0gICAgYXNzZXJ0X2VxdWFscyhl
dmVudExvZ3NbMV0udGFyZ2V0LCB0YXJnZXQpOwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dz
WzFdLm9mZnNldFgsIDYpOwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzFdLm9mZnNldFks
IDcpOwotCi0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMl0uY3VycmVudCwgc2hhZG93Um9v
dCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMl0udGFyZ2V0LCB0YXJnZXQpOwotICAg
IGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzJdLm9mZnNldFgsIDYpOwotICAgIGFzc2VydF9lcXVh
bHMoZXZlbnRMb2dzWzJdLm9mZnNldFksIDcpOwotCi0gICAgYXNzZXJ0X2VxdWFscyhldmVudExv
Z3NbM10uY3VycmVudCwgaG9zdCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbM10udGFy
Z2V0LCB0YXJnZXQpOwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzNdLm9mZnNldFgsIDYp
OwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzNdLm9mZnNldFksIDcpOwotCi0gICAgYXNz
ZXJ0X2VxdWFscyhldmVudExvZ3NbNF0uY3VycmVudCwgZG9jdW1lbnQuYm9keSk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhldmVudExvZ3NbNF0udGFyZ2V0LCB0YXJnZXQpOwotICAgIGFzc2VydF9lcXVh
bHMoZXZlbnRMb2dzWzRdLm9mZnNldFgsIDYpOwotICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dz
WzRdLm9mZnNldFksIDcpOwotfSwgJ01vdXNlRXZlbnRcJ3Mgb2Zmc2V0WCBhbmQgb2Zmc2V0WSBh
dHRyaWJ1dGVzIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIHRhcmdldCB3aGVuIGFuIGV2ZW50IGlz
IGRpc3BhdGNoZWQgb24gYSBzbG90dGVkIGNvbnRlbnQuJyk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL05vZGUt
cHJvdG90eXBlLWNsb25lTm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRv
dy1kb20vTm9kZS1wcm90b3R5cGUtY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAzY2FjMmViMzM5MzI2YjNiYTI5OWIxZTU4OTdmMmY3OWRhMmQ0
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vTm9kZS1wcm90b3R5cGUtY2xvbmVOb2RlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1QQVNTIGNsb25lTm9kZSBvbiBhIHNo
YWRvdyByb290IGluIG9wZW4gbW9kZSBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3IgCi1Q
QVNTIGNsb25lTm9kZSBvbiBhIHNoYWRvdyByb290IGluIGNsb3NlZCBtb2RlIG11c3QgdGhyb3cg
YSBOb3RTdXBwb3J0ZWRFcnJvciAKLVBBU1MgY2xvbmVOb2RlIG9uIGFuIG9wZW4gc2hhZG93IHJv
b3QgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vTm9kZS1wcm90b3R5cGUtY2xvbmVOb2RlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vTm9kZS1wcm90b3R5cGUtY2xvbmVOb2RlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1ZWE3NDBlZGYxMWYyN2EyNGEzNjM2NmQwMDZm
OWY1NDNmNGU5OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL05vZGUtcHJvdG90eXBlLWNsb25lTm9kZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHRpdGxlPlNoYWRvdyBET006IEV4dGVuc2lvbnMgdG8gTm9kZSBpbnRlcmZh
Y2U8L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVm
PSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
Ikludm9raW5nIHRoZSBjbG9uZU5vZGUoKSBtZXRob2Qgb24gYSBTaGFkb3dSb290IGluc3RhbmNl
IG11c3QgYWx3YXlzIHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3IuIj4KLTxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cDovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL3NoYWRvdy8j
dGhlLXNoYWRvd3Jvb3QtaW50ZXJmYWNlIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9J3N0eWxlc2hlZXQnIGhy
ZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgotPC9oZWFkPgotPGJvZHk+Ci08
ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdENsb25lTm9kZSht
b2RlKSB7Ci0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFzc2VydF90aHJvd3Moeydu
YW1lJzogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZh
ciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgICAgICB2
YXIgc2hhZG93Um9vdCA9IGVsZW1lbnQuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7Ci0gICAg
ICAgICAgICBzaGFkb3dSb290LmNsb25lTm9kZShmYWxzZSk7Ci0gICAgICAgIH0sICdjbG9uZU5v
ZGUoZmFsc2UpIG9uIGEgc2hhZG93IHJvb3QgaW4gJyArIG1vZGUgKyAnIG1vZGUgbXVzdCB0aHJv
dyBhIE5vdFN1cHBvcnRlZEVycm9yJyk7Ci0KLSAgICAgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUn
OiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgIHZhciBz
aGFkb3dSb290ID0gZWxlbWVudC5hdHRhY2hTaGFkb3coe21vZGU6IG1vZGV9KTsKLSAgICAgICAg
ICAgIHNoYWRvd1Jvb3QuY2xvbmVOb2RlKGZhbHNlKTsKLSAgICAgICAgfSwgJ2Nsb25lTm9kZSh0
cnVlKSBvbiBhIGNsb3NlZCBzaGFkb3cgcm9vdCBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJy
b3InKTsKLQotICAgIH0sICdjbG9uZU5vZGUgb24gYSBzaGFkb3cgcm9vdCBpbiAnICsgbW9kZSAr
ICcgbW9kZSBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3InKTsKLX0KLQotdGVzdENsb25l
Tm9kZSgnb3BlbicpOwotdGVzdENsb25lTm9kZSgnY2xvc2VkJyk7Ci0KLXRlc3QoZnVuY3Rpb24g
KCkgewotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0g
ICAgdmFyIHNoYWRvd1Jvb3QgPSBlbGVtZW50LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7
Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQuY2xvbmVOb2RlKGZhbHNlKS5zaGFkb3dSb290
LCBudWxsLCAnY2xvbmVOb2RlKGZhbHNlKSBvbiBhbiBvcGVuIHNoYWRvdyBob3N0IG1vZGUgbXVz
dCBjbG9uZSBpdHMgc2hhZG93IHJvb3QnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQuY2xv
bmVOb2RlKHRydWUpLnNoYWRvd1Jvb3QsIG51bGwsICdjbG9uZU5vZGUodHJ1ZSkgb24gYW4gb3Bl
biBzaGFkb3cgaG9zdCBtb2RlIG11c3QgY2xvbmUgaXRzIHNoYWRvdyByb290Jyk7Ci19LCAnY2xv
bmVOb2RlIG9uIGFuIG9wZW4gc2hhZG93IHJvb3QgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVy
cm9yJyk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LWludGVyZmFjZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNTNlYzcwYmYzOGMwZDBkOTJk
ZWMyZWZmZTQ4YmQwYzFlMTk3YzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtaW50ZXJm
YWNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLQotUEFTUyBD
aGVjayB0aGUgZXhpc3RlbmNlIG9mIFNoYWRvd1Jvb3QgaW50ZXJmYWNlIAotUEFTUyBTaGFkb3dS
b290IG11c3QgaW5oZXJpdCBmcm9tIERvY3VtZW50RnJhZ21lbnQgCi1QQVNTIFNoYWRvd1Jvb3Qg
bXVzdCBub3QgYmUgYSBjb25zdHJ1Y3RvciAKLVBBU1MgU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50
IG11c3QgcmV0dXJuIHRoZSBmb2N1c2VkIGVsZW1lbnQgb2YgdGhlIGNvbnRleHQgb2JqZWN0IHdo
ZW4gc2hhZG93IHJvb3QgaXMgb3Blbi4gCi1QQVNTIFNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCBt
dXN0IHJldHVybiB0aGUgZm9jdXNlZCBlbGVtZW50IG9mIHRoZSBjb250ZXh0IG9iamVjdCB3aGVu
IHNoYWRvdyByb290IGlzIGNsb3NlZC4gCi1QQVNTIFNoYWRvd1Jvb3QuaG9zdCBtdXN0IHJldHVy
biB0aGUgc2hhZG93IGhvc3Qgb2YgdGhlIGNvbnRleHQgb2JqZWN0LiAKLVBBU1MgU2hhZG93Um9v
dC5pbm5lckhUTUwgbXVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgSFRNTCBmcmFnbWVudCBz
ZXJpYWxpemF0aW9uIGFsZ29yaXRobSB3aGVuIHNoYWRvdyByb290IGlzIG9wZW4uIAotUEFTUyBT
aGFkb3dSb290LmlubmVySFRNTCBtdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBIVE1MIGZy
YWdtZW50IHNlcmlhbGl6YXRpb24gYWxnb3JpdGhtIHdoZW4gc2hhZG93IHJvb3QgaXMgY2xvc2Vk
LiAKLVBBU1MgU2hhZG93Um9vdC5pbm5lckhUTUwgbXVzdCByZXBsYWNlIGFsbCB3aXRoIHRoZSBy
ZXN1bHQgb2YgaW52b2tpbmcgdGhlIGZyYWdtZW50IHBhcnNpbmcgYWxnb3JpdGhtIHdoZW4gc2hh
ZG93IHJvb3QgaXMgb3Blbi4gCi1QQVNTIFNoYWRvd1Jvb3QuaW5uZXJIVE1MIG11c3QgcmVwbGFj
ZSBhbGwgd2l0aCB0aGUgcmVzdWx0IG9mIGludm9raW5nIHRoZSBmcmFnbWVudCBwYXJzaW5nIGFs
Z29yaXRobSB3aGVuIHNoYWRvdyByb290IGlzIGNsb3NlZC4gCi1GQUlMIFNoYWRvd1Jvb3Quc3R5
bGVTaGVldHMgbXVzdCByZXR1cm4gYSBTdHlsZVNoZWV0TGlzdCBzZXF1ZW5jZSBjb250YWluaW5n
IHRoZSBzaGFkb3cgcm9vdCBzdHlsZSBzaGVldHMgd2hlbiBzaGFkb3cgcm9vdCBpcyBvcGVuLiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc2hhZG93Um9vdC5zdHlsZVNo
ZWV0cy5sZW5ndGgnKQotRkFJTCBTaGFkb3dSb290LnN0eWxlU2hlZXRzIG11c3QgcmV0dXJuIGEg
U3R5bGVTaGVldExpc3Qgc2VxdWVuY2UgY29udGFpbmluZyB0aGUgc2hhZG93IHJvb3Qgc3R5bGUg
c2hlZXRzIHdoZW4gc2hhZG93IHJvb3QgaXMgY2xvc2VkLiB1bmRlZmluZWQgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAnc2hhZG93Um9vdC5zdHlsZVNoZWV0cy5sZW5ndGgnKQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vU2hhZG93Um9vdC1pbnRlcmZhY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LWludGVyZmFjZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODhlOTIxNWY3NDY2NjNiMDJmYmQ2
MGE5ZjEyNmZiZTVjNTVmYTQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LWludGVyZmFj
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5TaGFkb3cgRE9NOiBTaGFkb3dSb290IGludGVyZmFjZTwv
dGl0bGU+Ci08bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1h
aWx0bzpybml3YUB3ZWJraXQub3JnIj4KLTxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2hh
ZG93Um9vdCBpbnRlcmZhY2UgYW5kIGl0cyBhdHRyaWJ1dGVzIG11c3QgYmUgZGVmaW5lZCI+Ci08
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRz
L3NwZWMvc2hhZG93LyN0aGUtc2hhZG93cm9vdC1pbnRlcmZhY2UiPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0n
c3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotCi10ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICBhc3NlcnRfdHJ1ZSgnU2hhZG93Um9vdCcgaW4gd2luZG93LCAnIlNoYWRv
d1Jvb3QiIGV4aXN0cyBvbiB3aW5kb3cnKTsKLX0sICdDaGVjayB0aGUgZXhpc3RlbmNlIG9mIFNo
YWRvd1Jvb3QgaW50ZXJmYWNlJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGFzc2VydF9l
cXVhbHMoU2hhZG93Um9vdC5wcm90b3R5cGUuX19wcm90b19fLCBEb2N1bWVudEZyYWdtZW50LnBy
b3RvdHlwZSwgJ1NoYWRvd1Jvb3QgbXVzdCBpbmhlcml0IGZyb20gRG9jdW1lbnRGcmFnbWVudCcp
OwotfSwgJ1NoYWRvd1Jvb3QgbXVzdCBpbmhlcml0IGZyb20gRG9jdW1lbnRGcmFnbWVudCcpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJy
b3InfSwgZnVuY3Rpb24gKCkgeyBuZXcgU2hhZG93Um9vdCgpOyB9LCAnbmV3IFNoYWRvd1Jvb3Qo
KSBtdXN0IHRocm93IGEgVHlwZUVycm9yJyk7Ci19LCAnU2hhZG93Um9vdCBtdXN0IG5vdCBiZSBh
IGNvbnN0cnVjdG9yJyk7Ci0KLWZ1bmN0aW9uIHRlc3RBY3RpdmVFbGVtZW50KG1vZGUpIHsKLSAg
ICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsK
LSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2Rl
fSk7Ci0gICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaW5wdXQnKSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5hY3RpdmVFbGVt
ZW50LCBudWxsLCAnU2hhZG93Um9vdC5ob3N0IG11c3QgcmV0dXJuIG51bGwgaWYgYW4gJyArIG1v
ZGUgKyAnIHNoYWRvdyB0cmVlIGRvZXMgbm90IGhhdmUgYSBmb2N1c2VkIGVsZW1lbnQnKTsKLSAg
ICAgICAgc2hhZG93Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7Ci0gICAgICAgIGFzc2VydF9lcXVh
bHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBzaGFkb3dSb290LmZpcnN0Q2hpbGQsICdTaGFk
b3dSb290Lmhvc3QgbXVzdCByZXR1cm4gdGhlIGZvY3VzZWQgZWxlbWVudCBvZiBhbiAnICsgbW9k
ZSArICcgc2hhZG93IHRyZWUnKTsKLSAgICAgICAgaG9zdC5yZW1vdmUoKTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQsIG51bGwsICdTaGFkb3dSb290Lmhv
c3QgbXVzdCByZXR1cm4gbnVsbCBpZiBhbiAnICsgbW9kZSArICcgc2hhZG93IHRyZWUgbG9zdCBm
b2N1cycpOwotICAgIH0sICdTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgbXVzdCByZXR1cm4gdGhl
IGZvY3VzZWQgZWxlbWVudCBvZiB0aGUgY29udGV4dCBvYmplY3Qgd2hlbiBzaGFkb3cgcm9vdCBp
cyAnICsgbW9kZSArICcuJyk7Ci19Ci0KLXRlc3RBY3RpdmVFbGVtZW50KCdvcGVuJyk7Ci10ZXN0
QWN0aXZlRWxlbWVudCgnY2xvc2VkJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBo
b3N0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGFzc2VydF9lcXVhbHMo
aG9zdDEuYXR0YWNoU2hhZG93KHsnbW9kZSc6ICdvcGVuJ30pLmhvc3QsIGhvc3QxLCAnU2hhZG93
Um9vdC5ob3N0IG11c3QgcmV0dXJuIHRoZSBzaGFkb3cgaG9zdCBvZiBhbiBvcGVuIHNoYWRvdyB0
cmVlJykKLQotICAgIHZhciBob3N0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgIGFzc2VydF9lcXVhbHMoaG9zdDIuYXR0YWNoU2hhZG93KHsnbW9kZSc6ICdjbG9zZWQnfSku
aG9zdCwgaG9zdDIsICdTaGFkb3dSb290Lmhvc3QgbXVzdCByZXR1cm4gdGhlIHNoYWRvdyBob3N0
IG9mIGEgY2xvc2VkIHNoYWRvdyB0cmVlJyk7Ci19LCAnU2hhZG93Um9vdC5ob3N0IG11c3QgcmV0
dXJuIHRoZSBzaGFkb3cgaG9zdCBvZiB0aGUgY29udGV4dCBvYmplY3QuJyk7Ci0KLWZ1bmN0aW9u
IHRlc3RJbm5lckhUTUwobW9kZSkgewotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICB2YXIgc2hh
ZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzaGFkb3dSb290LmlubmVySFRNTCwgJycsICdTaGFkb3dSb290LmlubmVySFRN
TCBtdXN0IGJlIGFuIGVtcHR5IHN0cmluZyB3aGVuIHRoZSBzaGFkb3cgcm9vdCBkb2VzIG5vdCBo
YXZlIGFueSBjaGlsZHJlbicpOwotCi0gICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2hlbGxvJykpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHNo
YWRvd1Jvb3QuaW5uZXJIVE1MLCAnaGVsbG8nLCAnU2hhZG93Um9vdC5pbm5lckhUTUwgbXVzdCBz
ZXJpYWxpemUgYSB0ZXh0IG5vZGUgY2hpbGQnKTsKLQotICAgICAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMoc2hhZG93Um9vdC5pbm5lckhUTUwsICdoZWxsbzxzcGFuPjwvc3Bhbj4nLCAnU2hhZG93
Um9vdC5pbm5lckhUTUwgbXVzdCBzZXJpYWxpemUgYSBIVE1MIGVsZW1lbnQgY2hpbGQnKTsKLSAg
ICB9LCAnU2hhZG93Um9vdC5pbm5lckhUTUwgbXVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUg
SFRNTCBmcmFnbWVudCBzZXJpYWxpemF0aW9uIGFsZ29yaXRobSB3aGVuIHNoYWRvdyByb290IGlz
ICcgKyBtb2RlICsgJy4nKTsKLX0KLQotdGVzdElubmVySFRNTCgnb3BlbicpOwotdGVzdElubmVy
SFRNTCgnY2xvc2VkJyk7Ci0KLWZ1bmN0aW9uIHRlc3RTZXRJbm5lckhUTUwobW9kZSkgewotICAg
IHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93
KHsnbW9kZSc6IG1vZGV9KTsKLSAgICAgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnaGVsbG8n
OwotICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1Jvb3QuY2hpbGROb2Rlcy5sZW5ndGgsIDEs
ICdTaGFkb3dSb290LmlubmVySFRNTCA9ICJoZWxsbyIgbXVzdCBpbnNlcnQgYSBzaW5nbGUgY2hp
bGQgKHRleHQgbm9kZSknKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoc2hhZG93Um9vdC5maXJzdENo
aWxkIGluc3RhbmNlb2YgVGV4dCwgJ1RoZSBmaXJzdCBjaGlsZCBvZiB0aGUgc2hhZG93IHJvb3Qg
YWZ0ZXIgU2hhZG93Um9vdC5pbm5lckhUTUwgPSAiaGVsbG8iIG11c3QgYmUgYSBUZXh0IG5vZGUn
KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290LmZpcnN0Q2hpbGQuZGF0YSwgJ2hl
bGxvJywgJ1RoZSBmaXJzdCBUZXh0IG5vZGUgc2hvdWxkIGNvbnRhaW4gdGhlIHN0cmluZyAiaGVs
bG8iIGFmdGVyIFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gImhlbGxvIicpOwotCi0gICAgICAgIHNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxiPmhlbGxvPC9iPic7Ci0gICAgICAgIGFzc2VydF9lcXVh
bHMoc2hhZG93Um9vdC5jaGlsZE5vZGVzLmxlbmd0aCwgMSwgJ1NoYWRvd1Jvb3QuaW5uZXJIVE1M
ID0gIjxiPmhlbGxvPC9iPiIgbXVzdCBpbnNlcnQgYSBzaW5nbGUgY2hpbGQgKGIpJyk7Ci0gICAg
ICAgIGFzc2VydF90cnVlKHNoYWRvd1Jvb3QuZmlyc3RDaGlsZCBpbnN0YW5jZW9mIEhUTUxFbGVt
ZW50LCAnVGhlIGZpcnN0IGNoaWxkIG9mIHRoZSBzaGFkb3cgcm9vdCBhZnRlciBTaGFkb3dSb290
LmlubmVySFRNTCA9ICI8Yj5oZWxsbzwvYj4iIG11c3QgYmUgYSBIVE1MIGVsZW1lbnQnKTsKLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290LmZpcnN0Q2hpbGQubG9jYWxOYW1lLCAnYics
ICdUaGUgbG9jYWwgbmFtZSBvZiB0aGUgc2hhZG93IHJvb3RcJ3MgZmlyc3QgY2hpbGQgYWZ0ZXIg
U2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGI+aGVsbG88L2I+IiBtdXN0IGJlICJiIicpOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1Jvb3QuaW5uZXJIVE1MLCAnPGI+aGVsbG88L2I+Jywg
J1NoYWRvd1Jvb3QuaW5uZXJIVE1MIG11c3QgYmUgIjxiPmhlbGxvPC9iPiIgYWZ0ZXIgU2hhZG93
Um9vdC5pbm5lckhUTUwgPSAiPGI+aGVsbG88L2I+IicpOwotCi0gICAgICAgIHNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gJyc7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5jaGlsZE5v
ZGVzLmxlbmd0aCwgMCwgJ1NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIiIgbXVzdCByZW1vdmUgYWxs
IGl0cyBjaGlsZHJlbicpOwotICAgIH0sICdTaGFkb3dSb290LmlubmVySFRNTCBtdXN0IHJlcGxh
Y2UgYWxsIHdpdGggdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgZnJhZ21lbnQgcGFyc2luZyBh
bGdvcml0aG0gd2hlbiBzaGFkb3cgcm9vdCBpcyAnICsgbW9kZSArICcuJyk7Ci19Ci0KLXRlc3RT
ZXRJbm5lckhUTUwoJ29wZW4nKTsKLXRlc3RTZXRJbm5lckhUTUwoJ2Nsb3NlZCcpOwotCi1mdW5j
dGlvbiB0ZXN0U3R5bGVTaGVldHMobW9kZSkgewotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAg
ICAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICB2
YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKLQotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1Jvb3Quc3R5bGVTaGVldHMubGVuZ3RoLCAwLCAnc2hh
ZG93Um9vdC5zdHlsZVNoZWV0cyBtdXN0IGJlIGVtcHR5IHdoZW4gdGhlIHNoYWRvdyByb290IGRv
ZXMgbm90IGNvbnRhaW4gYW55IHN0eWxlc2hlZXRzJyk7Ci0gICAgICAgIHNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gJzxzcGFuPjwvc3Bhbj48c3R5bGU+IGEucnVsZSB7fSA8L3N0eWxlPjxzdHlsZT4g
Yi5ydWxlIHt9IDwvc3R5bGU+JzsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290LnN0
eWxlU2hlZXRzLmxlbmd0aCwgMiwgJ3NoYWRvd1Jvb3Quc3R5bGVTaGVldHMgbXVzdCBjb250YWlu
IHR3byBpdGVtcyB3aGVuIHRoZSBzaGFkb3cgcm9vdCBoYXMgdHdvIHN0eWxlIGVsZW1lbnRzJyk7
Ci0gICAgICAgIHZhciBzdHlsZXMgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxl
Jyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5zdHlsZVNoZWV0c1swXSwgc3R5
bGVzWzBdLnNoZWV0LCAnc2hhZG93Um9vdC5zdHlsZVNoZWV0c1swXSBtdXN0IGJlIHRoZSBmaXJz
dCBzdHlsZSBlbGVtZW50IGluIHRoZSBzaGFkb3cgcm9vdCcpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKHNoYWRvd1Jvb3Quc3R5bGVTaGVldHNbMV0sIHN0eWxlc1sxXS5zaGVldCwgJ3NoYWRvd1Jv
b3Quc3R5bGVTaGVldHNbMV0gbXVzdCBiZSB0aGUgc2Vjb25kIHN0eWxlIGVsZW1lbnQgaW4gdGhl
IHNoYWRvdyByb290Jyk7Ci0gICAgfSwgJ1NoYWRvd1Jvb3Quc3R5bGVTaGVldHMgbXVzdCByZXR1
cm4gYSBTdHlsZVNoZWV0TGlzdCBzZXF1ZW5jZSBjb250YWluaW5nIHRoZSBzaGFkb3cgcm9vdCBz
dHlsZSBzaGVldHMgd2hlbiBzaGFkb3cgcm9vdCBpcyAnICsgbW9kZSArICcuJyk7Ci19Ci0KLXRl
c3RTdHlsZVNoZWV0cygnb3BlbicpOwotdGVzdFN0eWxlU2hlZXRzKCdjbG9zZWQnKTsKLQotPC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vU2xvdGFibGUtaW50ZXJmYWNlLWFzc2lnbmVkU2xvdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vU2xvdGFibGUtaW50ZXJmYWNlLWFzc2lnbmVkU2xv
dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0ZDc0Nzc5YWVk
MGVhNzk2YTAxNmQyODg2NDczMzM2MTg1MjQyNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL1Nsb3RhYmxl
LWludGVyZmFjZS1hc3NpZ25lZFNsb3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NiArMCwwIEBACi0KLVBBU1MgYXNzaWduZWRTbG90IGF0dHJpYnV0ZSBtdXN0IGJlIGRlZmluZWQg
b24gTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlIGludGVyZmFjZSAKLVBBU1MgYXNzaWduZWRTbG90
IG11c3QgcmV0dXJuIG51bGwgd2hlbiB0aGUgbm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFzc2lnbmVk
IG5vZGUgCi1QQVNTIGFzc2lnbmVkU2xvdCBtdXN0IHJldHVybiB0aGUgYXNzaWduZWQgc2xvdCAK
LVBBU1MgYXNzaWduZWRTbG90IG11c3QgcmV0dXJuIG51bGwgd2hlbiB0aGUgYXNzaWduZWQgc2xv
dCBlbGVtZW50IGlzIGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgdHJlZSAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL1Nsb3RhYmxlLWludGVyZmFjZS1hc3NpZ25lZFNs
b3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9TbG90YWJsZS1pbnRlcmZhY2Ut
YXNzaWduZWRTbG90Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjYmMzYmNm
ZTgwMDJkODFkOTVmZGE2ODc0NmMwOTQ0MmI1NmY4MjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL1Nsb3Rh
YmxlLWludGVyZmFjZS1hc3NpZ25lZFNsb3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5TaGFkb3cgRE9N
OiBTbG90YWJsZSBpbnRlcmZhY2U8L3RpdGxlPgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0i
Unlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBuYW1l
PSJhc3NlcnQiIGNvbnRlbnQ9IlNsb3RhYmxlIGludGVyZmFjZSBtdXN0IGhhdmUgYXNzaWduZWRT
bG90IGF0dHJpYnV0ZSI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1
Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvc2hhZG93LyN0aGUtc2xvdC1lbGVtZW50Ij4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08
bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5j
c3MnPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJsb2ciPjwvZGl2PgotPHNjcmlwdD4KLQot
dGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgYXNzZXJ0X3RydWUoJ2Fzc2lnbmVkU2xvdCcgaW4gRWxl
bWVudC5wcm90b3R5cGUsICdhc3NpZ25lZFNsb3QgbXVzdCBiZSBkZWZpbmVkIG9uIEVsZW1lbnQu
cHJvdG90eXBlJyk7Ci0gICAgYXNzZXJ0X3RydWUoJ2Fzc2lnbmVkU2xvdCcgaW4gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JyksICdhc3NpZ25lZFNsb3QgbXVzdCBiZSBkZWZpbmVkIG9uIGEg
ZGl2IGVsZW1lbnQnKTsKLQotICAgIGFzc2VydF90cnVlKCdhc3NpZ25lZFNsb3QnIGluIFRleHQu
cHJvdG90eXBlLCAnYXNzaWduZWRTbG90IG11c3QgYmUgZGVmaW5lZCBvbiBUZXh0LnByb3RvdHlw
ZScpOwotICAgIGFzc2VydF90cnVlKCdhc3NpZ25lZFNsb3QnIGluIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCcnKSwgJ2Fzc2lnbmVkU2xvdCBtdXN0IGJlIGRlZmluZWQgb24gYSB0ZXh0IG5vZGUn
KTsKLSAgICBhc3NlcnRfZmFsc2UoJ2Fzc2lnbmVkU2xvdCcgaW4gZG9jdW1lbnQuY3JlYXRlQ29t
bWVudCgnJyksICdhc3NpZ25lZFNsb3QgbXVzdCBub3QgYmUgZGVmaW5lZCBvbiBhIGNvbW1lbnQg
bm9kZScpOwotICAgIGFzc2VydF9mYWxzZSgnYXNzaWduZWRTbG90JyBpbiBkb2N1bWVudC5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3RhcmdldCcsICdkYXRhJyksICdhc3NpZ25lZFNsb3Qg
bXVzdCBub3QgYmUgZGVmaW5lZCBvbiBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gbm9kZScpOwot
Ci19LCAnYXNzaWduZWRTbG90IGF0dHJpYnV0ZSBtdXN0IGJlIGRlZmluZWQgb24gTm9uRG9jdW1l
bnRUeXBlQ2hpbGROb2RlIGludGVyZmFjZScpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBh
c3NlcnRfZXF1YWxzKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmFzc2lnbmVkU2xvdCwg
bnVsbCwgJ2Fzc2lnbmVkU2xvdCBtdXN0IGJlIG51bGwgd2hlbiB0aGUgZWxlbWVudCBpcyBub3Qg
aW4gYW55IHRyZWUnKTsKLQotICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRv
dyh7bW9kZTogJ29wZW4nfSk7Ci0KLSAgICB2YXIgY2hpbGRFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnYicpOwotICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoY2hpbGRFbGVtZW50
KTsKLSAgICBhc3NlcnRfZXF1YWxzKGNoaWxkRWxlbWVudC5hc3NpZ25lZFNsb3QsIG51bGwsICdh
c3NpZ25lZFNsb3Qgb24gYW4gZWxlbWVudCBtdXN0IGJlIG51bGwgd2hlbiBhIG5vZGUgaXMgbm90
IGFzc2lnbmVkIG9mIGFueSBzbG90Jyk7Ci0KLSAgICB2YXIgY2hpbGRUZXh0Tm9kZSA9IGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCcnKTsKLSAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNoaWxk
VGV4dE5vZGUpOwotICAgIGFzc2VydF9lcXVhbHMoY2hpbGRUZXh0Tm9kZS5hc3NpZ25lZFNsb3Qs
IG51bGwsICdhc3NpZ25lZFNsb3Qgb24gYSB0ZXh0IG5vZGUgbXVzdCBiZSBudWxsIHdoZW4gYSBu
b2RlIGlzIG5vdCBhc3NpZ25lZCBvZiBhbnkgc2xvdCcpOwotCi0gICAgdmFyIHNsb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7Ci0gICAgc2xvdC5uYW1lID0gJ2Zvbyc7Ci0gICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90KTsKLSAgICBhc3NlcnRfZXF1YWxzKGNoaWxkRWxl
bWVudC5hc3NpZ25lZFNsb3QsIG51bGwsICdhc3NpZ25lZFNsb3Qgb24gYW4gZWxlbWVudCBtdXN0
IGJlIG51bGwgd2hlbiBhIG5vZGUgZG9lcyBub3QgbWF0Y2ggYW55IHNsb3QnKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKGNoaWxkVGV4dE5vZGUuYXNzaWduZWRTbG90LCBudWxsLCAnYXNzaWduZWRTbG90
IG9uIGEgdGV4dCBub2RlIG11c3QgYmUgbnVsbCB3aGVuIGEgbm9kZSBkb2VzIG5vdCBtYXRjaCBh
bnkgc2xvdCcpOwotCi19LCAnYXNzaWduZWRTbG90IG11c3QgcmV0dXJuIG51bGwgd2hlbiB0aGUg
bm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFzc2lnbmVkIG5vZGUnKTsKLQotdGVzdChmdW5jdGlvbiAo
KSB7Ci0gICAgdmFyIHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICB2YXIgY2hpbGRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYicpOwotICAg
IHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoY2hpbGRFbGVtZW50KTsKLQotICAgIHZhciBjaGlsZFRl
eHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpOwotICAgIHNoYWRvd0hvc3QuYXBw
ZW5kQ2hpbGQoY2hpbGRUZXh0Tm9kZSk7Ci0KLSAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hv
c3QuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KTsKLSAgICB2YXIgc2xvdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3Qp
OwotCi0gICAgYXNzZXJ0X2VxdWFscyhjaGlsZEVsZW1lbnQuYXNzaWduZWRTbG90LCBzbG90LCAn
YXNzaWduZWRTbG90IG9uIGFuIGVsZW1lbnQgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIGRlZmF1
bHQgc2xvdCBlbGVtZW50Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjaGlsZFRleHROb2RlLmFzc2ln
bmVkU2xvdCwgc2xvdCwgJ2Fzc2lnbmVkU2xvdCBvbiBhIHRleHQgbm9kZSBtdXN0IHJldHVybiB0
aGUgYXNzaWduZWQgZGVmYXVsdCBzbG90IGVsZW1lbnQnKTsKLQotICAgIHNsb3QubmFtZSA9ICdm
b28nOwotICAgIGFzc2VydF9lcXVhbHMoY2hpbGRFbGVtZW50LmFzc2lnbmVkU2xvdCwgbnVsbCwg
J2Fzc2lnbmVkU2xvdCBvbiBhbiBlbGVtZW50IG11c3QgbnVsbCB3aGVuIHRoZSBlbGVtZW50IGlz
IHVuYXNzaWduZWQgZnJvbSBhIHNsb3QgZWxlbWVudCcpOwotICAgIGFzc2VydF9lcXVhbHMoY2hp
bGRUZXh0Tm9kZS5hc3NpZ25lZFNsb3QsIG51bGwsICdhc3NpZ25lZFNsb3Qgb24gYSB0ZXh0IG5v
ZGUgbXVzdCBudWxsIHdoZW4gdGhlIG5vZGUgaXMgdW5hc3NpZ25lZCBmcm9tIGEgc2xvdCBlbGVt
ZW50Jyk7Ci0KLSAgICBjaGlsZEVsZW1lbnQuc2xvdCA9ICdmb28nOwotICAgIGFzc2VydF9lcXVh
bHMoY2hpbGRFbGVtZW50LmFzc2lnbmVkU2xvdCwgc2xvdCwgJ2Fzc2lnbmVkU2xvdCBvbiBhbiBl
bGVtZW50IG11c3QgcmV0dXJuIHRoZSByZS1hc3NpZ25lZCBzbG90IGVsZW1lbnQnKTsKLQotICAg
IHNsb3QucmVtb3ZlQXR0cmlidXRlKCduYW1lJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjaGlsZFRl
eHROb2RlLmFzc2lnbmVkU2xvdCwgc2xvdCwgJ2Fzc2lnbmVkU2xvdCBvbiBhIHRleHQgbm9kZSBt
dXN0IHJldHVybiB0aGUgcmUtYXNzaWduZWQgc2xvdCBlbGVtZW50Jyk7Ci0KLX0sICdhc3NpZ25l
ZFNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIHNsb3QnKTsKLQotdGVzdChmdW5jdGlvbiAo
KSB7Ci0gICAgdmFyIHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICB2YXIgY2hpbGRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYicpOwotICAg
IHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoY2hpbGRFbGVtZW50KTsKLQotICAgIHZhciBjaGlsZFRl
eHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpOwotICAgIHNoYWRvd0hvc3QuYXBw
ZW5kQ2hpbGQoY2hpbGRUZXh0Tm9kZSk7Ci0KLSAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hv
c3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwotICAgIHZhciBzbG90ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xv
dCk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGNoaWxkRWxlbWVudC5hc3NpZ25lZFNsb3QsIG51bGws
ICdhc3NpZ25lZFNsb3Qgb24gYW4gZWxlbWVudCBtdXN0IHJldHVybiBudWxsIGlmIHRoZSBzbG90
IGlzIGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgdHJlZS4nKTsKLSAgICBhc3NlcnRfZXF1YWxzKGNo
aWxkVGV4dE5vZGUuYXNzaWduZWRTbG90LCBudWxsLCAnYXNzaWduZWRTbG90IG9uIGEgdGV4dCBu
b2RlIG11c3QgcmV0dXJuIG51bGwgaWYgdGhlIHNsb3QgaXMgaW5zaWRlIGEgY2xvc2VkIHNoYWRv
dyB0cmVlLicpOwotCi19LCAnYXNzaWduZWRTbG90IG11c3QgcmV0dXJuIG51bGwgd2hlbiB0aGUg
YXNzaWduZWQgc2xvdCBlbGVtZW50IGlzIGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgdHJlZScpOwot
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2V2ZW50LWluc2lkZS1zaGFkb3ctdHJlZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjMzMxYzI0MGVkMDBhZjMwNzQ2
NDIxMWMyMGExZjU2MDlkM2E1ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2V2ZW50LWluc2lkZS1zaGFk
b3ctdHJlZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0KLVBB
U1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9mIGEgZGV0YWNoZWQgb3Bl
biBtb2RlIHNoYWRvdyB0cmVlIAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgZ3JhbmQg
Y2hpbGQgb2YgYSBkZXRhY2hlZCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5n
IGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9mIGFuIGluLWRvY3VtZW50IG9wZW4gbW9k
ZSBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxk
IG9mIGFuIGluLWRvY3VtZW50IGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlIAotUEFTUyBGaXJpbmcg
YW4gZXZlbnQgaW5zaWRlIGEgZGV0YWNoZWQgb3BlbiBtb2RlIHNoYWRvdyB0cmVlIGluc2lkZSBv
cGVuIG1vZGUgc2hhZG93IHRyZWUgCi1QQVNTIEZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBkZXRh
Y2hlZCBvcGVuIG1vZGUgc2hhZG93IHRyZWUgaW5zaWRlIGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVl
IAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgZGV0YWNoZWQgY2xvc2VkIG1vZGUgc2hh
ZG93IHRyZWUgaW5zaWRlIG9wZW4gbW9kZSBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5nIGFuIGV2
ZW50IGluc2lkZSBhIGRldGFjaGVkIGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlIGluc2lkZSBjbG9z
ZWQgbW9kZSBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhbiBpbi1k
b2N1bWVudCBvcGVuIG1vZGUgc2hhZG93IHRyZWUgaW5zaWRlIG9wZW4gbW9kZSBzaGFkb3cgdHJl
ZSAKLVBBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhbiBpbi1kb2N1bWVudCBvcGVuIG1vZGUg
c2hhZG93IHRyZWUgaW5zaWRlIGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlIAotUEFTUyBGaXJpbmcg
YW4gZXZlbnQgaW5zaWRlIGFuIGluLWRvY3VtZW50IGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlIGlu
c2lkZSBvcGVuIG1vZGUgc2hhZG93IHRyZWUgCi1QQVNTIEZpcmluZyBhbiBldmVudCBpbnNpZGUg
YW4gaW4tZG9jdW1lbnQgY2xvc2VkIG1vZGUgc2hhZG93IHRyZWUgaW5zaWRlIGNsb3NlZCBtb2Rl
IHNoYWRvdyB0cmVlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
ZXZlbnQtaW5zaWRlLXNoYWRvdy10cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vZXZlbnQtaW5zaWRlLXNoYWRvdy10cmVlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNkNTcxNGQ4YzExYmY2MjQ4ODk0MzhlOTczMWE5Yjk4NGQzMGQxOTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL2V2ZW50LWluc2lkZS1zaGFkb3ctdHJlZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5T
aGFkb3cgRE9NOiBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgc2hhZG93IHRyZWU8L3RpdGxlPgot
PG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5p
d2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlRoZSBldmVudCBw
YXRoIGNhbGN1bGF0aW9uIGFsZ29yaXRobSBtdXN0IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIGV2ZW50
IHBhdGgiPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2Vi
Y29tcG9uZW50cy9zcGVjL3NoYWRvdy8jZXZlbnQtcGF0aHMiPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5
bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBkaXNw
YXRjaEV2ZW50V2l0aExvZyh0YXJnZXQsIGV2ZW50KSB7Ci0gICAgdmFyIGxvZyA9IFtdOwotCi0g
ICAgZm9yICh2YXIgbm9kZSA9IHRhcmdldDsgbm9kZTsgbm9kZSA9IG5vZGUucGFyZW50Tm9kZSB8
fCBub2RlLmhvc3QpIHsKLSAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LnR5cGUs
IChmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgICAgIGxvZy5wdXNoKFt0aGlzLCBldmVudC50
YXJnZXRdKTsKLSAgICAgICAgfSkuYmluZChub2RlKSk7Ci0gICAgfQotCi0gICAgdGFyZ2V0LmRp
c3BhdGNoRXZlbnQoZXZlbnQpOwotCi0gICAgcmV0dXJuIGxvZzsKLX0KLQotZnVuY3Rpb24gY3Jl
YXRlU2hhZG93Um9vdFdpdGhHcmFuZENoaWxkKG1vZGUpIHsKLSAgICB2YXIgaG9zdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciByb290ID0gaG9zdC5hdHRhY2hTaGFk
b3coe21vZGU6IG1vZGV9KTsKLQotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChwYXJlbnQpOwotCi0gICAgdmFyIHRh
cmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2InKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hp
bGQodGFyZ2V0KTsKLSAgICByZXR1cm4ge3RhcmdldDogdGFyZ2V0LCBwYXJlbnQ6IHBhcmVudCwg
cm9vdDogcm9vdCwgaG9zdDogaG9zdH07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RFdmVudEluRGV0YWNo
ZWRTaGFkb3dUcmVlKG1vZGUpIHsKLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFy
IHNoYWRvdyA9IGNyZWF0ZVNoYWRvd1Jvb3RXaXRoR3JhbmRDaGlsZChtb2RlKTsKLQotICAgICAg
ICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3cudGFyZ2V0LCBuZXcgRXZlbnQoJ2Zv
bycsIHtjb21wb3NlZDogdHJ1ZSwgYnViYmxlczogdHJ1ZX0pKTsKLQotICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZy5sZW5ndGgsIDQsICdFdmVudFBhdGggbXVzdCBjb250YWluIFt0YXJn
ZXQsIHBhcmVudCwgc2hhZG93IHJvb3QsIHNoYWRvdyBob3N0XScpOwotICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQsIHNoYWRvdy50YXJnZXRdLCAnRXZl
bnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1sxXSwgW3NoYWRvdy5wYXJlbnQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzFd
IG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7Ci0gICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzJdLCBbc2hhZG93LnJvb3QsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRo
WzJdIG11c3QgYmUgdGhlIHNoYWRvdyByb290Jyk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzNdLCBbc2hhZG93Lmhvc3QsIHNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFszXSBtdXN0
IGJlIHRoZSBzaGFkb3cgaG9zdCcpOwotCi0gICAgfSwgJ0ZpcmluZyBhbiBldmVudCBpbnNpZGUg
YSBncmFuZCBjaGlsZCBvZiBhIGRldGFjaGVkICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyB0cmVl
Jyk7Ci19Ci0KLXRlc3RFdmVudEluRGV0YWNoZWRTaGFkb3dUcmVlKCdvcGVuJyk7Ci10ZXN0RXZl
bnRJbkRldGFjaGVkU2hhZG93VHJlZSgnY2xvc2VkJyk7Ci0KLWZ1bmN0aW9uIHRlc3RFdmVudElu
U2hhZG93VHJlZUluc2lkZURvY3VtZW50KG1vZGUpIHsKLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgdmFyIHNoYWRvdyA9IGNyZWF0ZVNoYWRvd1Jvb3RXaXRoR3JhbmRDaGlsZChtb2Rl
KTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzaGFkb3cuaG9zdCk7Ci0KLSAg
ICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2coc2hhZG93LnRhcmdldCwgbmV3IEV2ZW50
KCdmb28nLCB7Y29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWV9KSk7Ci0KLSAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2cubGVuZ3RoLCA3LCAnRXZlbnRQYXRoIG11c3QgY29udGFpbiBb
dGFyZ2V0LCBwYXJlbnQsIHNoYWRvdyByb290LCBzaGFkb3cgaG9zdCwgYm9keSwgaHRtbCwgZG9j
dW1lbnRdJyk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbc2hhZG93LnRh
cmdldCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7
Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93LnBhcmVudCwgc2hh
ZG93LnRhcmdldF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJn
ZXQnKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cucm9vdCwg
c2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgc2hhZG93IHJvb3QnKTsK
LSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFtzaGFkb3cuaG9zdCwgc2hhZG93
Lmhvc3RdLCAnRXZlbnRQYXRoWzNdIG11c3QgYmUgdGhlIHNoYWRvdyBob3N0Jyk7Ci0gICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbZG9jdW1lbnQuYm9keSwgc2hhZG93Lmhvc3Rd
LCAnRXZlbnRQYXRoWzRdIG11c3QgYmUgdGhlIGJvZHkgZWxlbWVudCAocGFyZW50IG9mIHNoYWRv
dyBob3N0KScpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s1XSwgW2RvY3VtZW50
LmRvY3VtZW50RWxlbWVudCwgc2hhZG93Lmhvc3RdLCAnRXZlbnRQYXRoWzVdIG11c3QgYmUgdGhl
IGh0bWwgZWxlbWVudCcpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s2XSwgW2Rv
Y3VtZW50LCBzaGFkb3cuaG9zdF0sICdFdmVudFBhdGhbNl0gbXVzdCBiZSB0aGUgZG9jdW1lbnQg
bm9kZScpOwotCi0gICAgfSwgJ0ZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBjaGlsZCBv
ZiBhbiBpbi1kb2N1bWVudCAnICsgbW9kZSArICcgbW9kZSBzaGFkb3cgdHJlZScpOwotfQotCi10
ZXN0RXZlbnRJblNoYWRvd1RyZWVJbnNpZGVEb2N1bWVudCgnb3BlbicpOwotdGVzdEV2ZW50SW5T
aGFkb3dUcmVlSW5zaWRlRG9jdW1lbnQoJ2Nsb3NlZCcpOwotCi1mdW5jdGlvbiBjcmVhdGVOZXN0
ZWRTaGFkb3dSb290KGlubmVyTW9kZSwgb3V0ZXJNb2RlKSB7Ci0gICAgdmFyIG91dGVySG9zdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciBvdXRlclJvb3QgPSBvdXRl
ckhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiBvdXRlck1vZGV9KTsKLQotICAgIHZhciBvdXRlckNo
aWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwotICAgIG91dGVyUm9vdC5hcHBlbmRD
aGlsZChvdXRlckNoaWxkKTsKLQotICAgIHZhciBpbm5lckhvc3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzcGFuJyk7Ci0gICAgb3V0ZXJDaGlsZC5hcHBlbmRDaGlsZChpbm5lckhvc3QpOwot
Ci0gICAgdmFyIGlubmVyUm9vdCA9IGlubmVySG9zdC5hdHRhY2hTaGFkb3coe21vZGU6IGlubmVy
TW9kZX0pOwotICAgIHZhciBpbm5lckNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpOwotICAgIGlubmVyUm9vdC5hcHBlbmRDaGlsZChpbm5lckNoaWxkKTsKLQotICAgIHJldHVy
biB7dGFyZ2V0OiBpbm5lckNoaWxkLCBpbm5lclJvb3Q6IGlubmVyUm9vdCwgaW5uZXJIb3N0OiBp
bm5lckhvc3QsIG91dGVyQ2hpbGQ6IG91dGVyQ2hpbGQsIG91dGVyUm9vdDogb3V0ZXJSb290LCBv
dXRlckhvc3Q6IG91dGVySG9zdH07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RFdmVudEluRGV0YWNoZWRO
ZXN0ZWRTaGFkb3dUcmVlKGlubmVyTW9kZSwgb3V0ZXJNb2RlKSB7Ci0gICAgdGVzdChmdW5jdGlv
biAoKSB7Ci0gICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVOZXN0ZWRTaGFkb3dSb290KGlubmVy
TW9kZSwgb3V0ZXJNb2RlKTsKLQotICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhz
aGFkb3cudGFyZ2V0LCBuZXcgRXZlbnQoJ2JhcicsIHtjb21wb3NlZDogdHJ1ZSwgYnViYmxlczog
dHJ1ZX0pKTsKLQotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5sZW5ndGgsIDYsICdF
dmVudFBhdGggbXVzdCBjb250YWluIFt0YXJnZXQsIGlubmVyIHJvb3QsIGlubmVyIGhvc3QsIHBh
cmVudCwgb3V0ZXIgcm9vdCwgb3V0ZXIgaG9zdF0nKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsw
XSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MV0sIFtzaGFkb3cuaW5uZXJSb290LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsxXSBtdXN0
IGJlIHRoZSBpbm5lciBzaGFkb3cgcm9vdCcpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1syXSwgW3NoYWRvdy5pbm5lckhvc3QsIHNoYWRvdy5pbm5lckhvc3RdLCAnRXZlbnRQYXRo
WzJdIG11c3QgYmUgdGhlIGlubmVyIHNoYWRvdyBob3N0Jyk7Ci0gICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzNdLCBbc2hhZG93Lm91dGVyQ2hpbGQsIHNoYWRvdy5pbm5lckhvc3RdLCAn
RXZlbnRQYXRoWzNdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgaW5uZXIgc2hhZG93IGhvc3Qn
KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cub3V0ZXJSb290
LCBzaGFkb3cuaW5uZXJIb3N0XSwgJ0V2ZW50UGF0aFs0XSBtdXN0IGJlIHRoZSBvdXRlciBzaGFk
b3cgcm9vdCcpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5v
dXRlckhvc3QsIHNoYWRvdy5vdXRlckhvc3RdLCAnRXZlbnRQYXRoWzVdIG11c3QgYmUgdGhlIG91
dGVyIHNoYWRvdyBob3N0Jyk7Ci0KLSAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGRl
dGFjaGVkICcgKyBpbm5lck1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWUgaW5zaWRlICcgKyBvdXRl
ck1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWUnKTsKLX0KLQotdGVzdEV2ZW50SW5EZXRhY2hlZE5l
c3RlZFNoYWRvd1RyZWUoJ29wZW4nLCAgJ29wZW4nKTsKLXRlc3RFdmVudEluRGV0YWNoZWROZXN0
ZWRTaGFkb3dUcmVlKCdvcGVuJywgICdjbG9zZWQnKTsKLXRlc3RFdmVudEluRGV0YWNoZWROZXN0
ZWRTaGFkb3dUcmVlKCdjbG9zZWQnLCAnb3BlbicpOwotdGVzdEV2ZW50SW5EZXRhY2hlZE5lc3Rl
ZFNoYWRvd1RyZWUoJ2Nsb3NlZCcsICdjbG9zZWQnKTsKLQotZnVuY3Rpb24gdGVzdEV2ZW50SW5O
ZXN0ZWRTaGFkb3dUcmVlSW5zaWRlRG9jdW1lbnQoaW5uZXJNb2RlLCBvdXRlck1vZGUpIHsKLSAg
ICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHNoYWRvdyA9IGNyZWF0ZU5lc3RlZFNo
YWRvd1Jvb3QoaW5uZXJNb2RlLCBvdXRlck1vZGUpOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHNoYWRvdy5vdXRlckhvc3QpOwotCi0gICAgICAgIGxvZyA9IGRpc3BhdGNoRXZl
bnRXaXRoTG9nKHNoYWRvdy50YXJnZXQsIG5ldyBFdmVudCgnYmFyJywge2NvbXBvc2VkOiB0cnVl
LCBidWJibGVzOiB0cnVlfSkpOwotCi0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmxl
bmd0aCwgNiwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgaW5uZXIgcm9vdCwgaW5u
ZXIgaG9zdCwgcGFyZW50LCBvdXRlciByb290LCBvdXRlciBob3N0XScpOwotICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQsIHNoYWRvdy50YXJnZXRdLCAn
RXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOwotICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy5pbm5lclJvb3QsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQ
YXRoWzFdIG11c3QgYmUgdGhlIGlubmVyIHNoYWRvdyByb290Jyk7Ci0gICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzJdLCBbc2hhZG93LmlubmVySG9zdCwgc2hhZG93LmlubmVySG9zdF0s
ICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93IGhvc3QnKTsKLSAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFtzaGFkb3cub3V0ZXJDaGlsZCwgc2hhZG93Lmlu
bmVySG9zdF0sICdFdmVudFBhdGhbM10gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBpbm5lciBz
aGFkb3cgaG9zdCcpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s0XSwgW3NoYWRv
dy5vdXRlclJvb3QsIHNoYWRvdy5pbm5lckhvc3RdLCAnRXZlbnRQYXRoWzRdIG11c3QgYmUgdGhl
IG91dGVyIHNoYWRvdyByb290Jyk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVd
LCBbc2hhZG93Lm91dGVySG9zdCwgc2hhZG93Lm91dGVySG9zdF0sICdFdmVudFBhdGhbNV0gbXVz
dCBiZSB0aGUgb3V0ZXIgc2hhZG93IGhvc3QnKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbNl0sIFtkb2N1bWVudC5ib2R5LCBzaGFkb3cub3V0ZXJIb3N0XSwgJ0V2ZW50UGF0aFs2
XSBtdXN0IGJlIHRoZSBib2R5IGVsZW1lbnQnKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbN10sIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHNoYWRvdy5vdXRlckhvc3RdLCAn
RXZlbnRQYXRoWzddIG11c3QgYmUgdGhlIGh0bWwgZWxlbWVudCcpOwotICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s4XSwgW2RvY3VtZW50LCBzaGFkb3cub3V0ZXJIb3N0XSwgJ0V2ZW50
UGF0aFs4XSBtdXN0IGJlIHRoZSBkb2N1bWVudCBub2RlJyk7Ci0KLSAgICB9LCAnRmlyaW5nIGFu
IGV2ZW50IGluc2lkZSBhbiBpbi1kb2N1bWVudCAnICsgaW5uZXJNb2RlICsgJyBtb2RlIHNoYWRv
dyB0cmVlIGluc2lkZSAnICsgb3V0ZXJNb2RlICsgJyBtb2RlIHNoYWRvdyB0cmVlJyk7Ci19Ci0K
LXRlc3RFdmVudEluTmVzdGVkU2hhZG93VHJlZUluc2lkZURvY3VtZW50KCdvcGVuJywgICdvcGVu
Jyk7Ci10ZXN0RXZlbnRJbk5lc3RlZFNoYWRvd1RyZWVJbnNpZGVEb2N1bWVudCgnb3BlbicsICAn
Y2xvc2VkJyk7Ci10ZXN0RXZlbnRJbk5lc3RlZFNoYWRvd1RyZWVJbnNpZGVEb2N1bWVudCgnY2xv
c2VkJywgJ29wZW4nKTsKLXRlc3RFdmVudEluTmVzdGVkU2hhZG93VHJlZUluc2lkZURvY3VtZW50
KCdjbG9zZWQnLCAnY2xvc2VkJyk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2V2ZW50LWluc2lkZS1zbG90dGVk
LW5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2V2ZW50LWlu
c2lkZS1zbG90dGVkLW5vZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzM2ZlMGQ5ZDg0MDdhNzk0ODc1YmVkYjdiN2IyYTc5YmJlZDRjZWU2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIyICswLDAgQEAKLQotUEFTUyBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgZ3Jh
bmQgY2hpbGQgb2YgYSBkZXRhY2hlZCBvcGVuIG1vZGUgc2hhZG93IGhvc3QgCi1QQVNTIEZpcmlu
ZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBjaGlsZCBvZiBhIGRldGFjaGVkIGNsb3NlZCBtb2Rl
IHNoYWRvdyBob3N0IAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgZ3JhbmQgY2hpbGQg
b2YgYW4gaW4tZG9jdW1lbnQgb3BlbiBtb2RlIHNoYWRvdyBob3N0IAotUEFTUyBGaXJpbmcgYW4g
ZXZlbnQgaW5zaWRlIGEgZ3JhbmQgY2hpbGQgb2YgYW4gaW4tZG9jdW1lbnQgY2xvc2VkIG1vZGUg
c2hhZG93IGhvc3QgCi1QQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5j
ZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBvcGVuIGFuZCBvcGVuIHNoYWRvdyB0cmVlcyB3aXRoIGFu
IGlubmVyIG9wZW4gc2hhZG93IHRyZWUgCi1QQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUg
d2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBvcGVuIGFuZCBvcGVuIHNoYWRvdyB0
cmVlcyB3aXRoIGFuIGlubmVyIGNsb3NlZCBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5nIGFuIGV2
ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkIG9wZW4gYW5k
IGNsb3NlZCBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBvcGVuIHNoYWRvdyB0cmVlIAotUEFT
UyBGaXJpbmcgYW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdvIGFuY2VzdG9ycyB3aXRoIGEgZGV0
YWNoZWQgb3BlbiBhbmQgY2xvc2VkIHNoYWRvdyB0cmVlcyB3aXRoIGFuIGlubmVyIGNsb3NlZCBz
aGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5nIGFuIGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNl
c3RvcnMgd2l0aCBhIGRldGFjaGVkIGNsb3NlZCBhbmQgb3BlbiBzaGFkb3cgdHJlZXMgd2l0aCBh
biBpbm5lciBvcGVuIHNoYWRvdyB0cmVlIAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgb24gYSBub2Rl
IHdpdGggdHdvIGFuY2VzdG9ycyB3aXRoIGEgZGV0YWNoZWQgY2xvc2VkIGFuZCBvcGVuIHNoYWRv
dyB0cmVlcyB3aXRoIGFuIGlubmVyIGNsb3NlZCBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5nIGFu
IGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkIGNsb3Nl
ZCBhbmQgY2xvc2VkIHNoYWRvdyB0cmVlcyB3aXRoIGFuIGlubmVyIG9wZW4gc2hhZG93IHRyZWUg
Ci1QQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGgg
YSBkZXRhY2hlZCBjbG9zZWQgYW5kIGNsb3NlZCBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBj
bG9zZWQgc2hhZG93IHRyZWUgCi1QQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0
d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBvcGVuIGFuZCBvcGVuIHNoYWRvdyB0cmVlcyB3
aXRoIGFuIGlubmVyIG9wZW4gc2hhZG93IHRyZWUgCi1QQVNTIEZpcmluZyBhbiBldmVudCBvbiBh
IG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBvcGVuIGFuZCBvcGVuIHNo
YWRvdyB0cmVlcyB3aXRoIGFuIGlubmVyIGNsb3NlZCBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5n
IGFuIGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkIG9w
ZW4gYW5kIGNsb3NlZCBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBvcGVuIHNoYWRvdyB0cmVl
IAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdvIGFuY2VzdG9ycyB3aXRo
IGEgZGV0YWNoZWQgb3BlbiBhbmQgY2xvc2VkIHNoYWRvdyB0cmVlcyB3aXRoIGFuIGlubmVyIGNs
b3NlZCBzaGFkb3cgdHJlZSAKLVBBU1MgRmlyaW5nIGFuIGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3
byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkIGNsb3NlZCBhbmQgb3BlbiBzaGFkb3cgdHJlZXMg
d2l0aCBhbiBpbm5lciBvcGVuIHNoYWRvdyB0cmVlIAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgb24g
YSBub2RlIHdpdGggdHdvIGFuY2VzdG9ycyB3aXRoIGEgZGV0YWNoZWQgY2xvc2VkIGFuZCBvcGVu
IHNoYWRvdyB0cmVlcyB3aXRoIGFuIGlubmVyIGNsb3NlZCBzaGFkb3cgdHJlZSAKLVBBU1MgRmly
aW5nIGFuIGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVk
IGNsb3NlZCBhbmQgY2xvc2VkIHNoYWRvdyB0cmVlcyB3aXRoIGFuIGlubmVyIG9wZW4gc2hhZG93
IHRyZWUgCi1QQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3Jz
IHdpdGggYSBkZXRhY2hlZCBjbG9zZWQgYW5kIGNsb3NlZCBzaGFkb3cgdHJlZXMgd2l0aCBhbiBp
bm5lciBjbG9zZWQgc2hhZG93IHRyZWUgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkMWM0YTcyYmI1M2RhZWU4YTgyMjAyMjFiZGM0Y2YyYWRjZDI0
Yzc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotICAgIDx0aXRsZT5TaGFkb3cgRE9NOiBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgbm9k
ZSBhc3NpZ25lZCB0byBhIHNsb3Q8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0
bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgotICAgIDxt
ZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iVGhlIGV2ZW50IHBhdGggY2FsY3VsYXRpb24gYWxn
b3JpdGhtIG11c3QgYmUgdXNlZCB0byBkZXRlcm1pbmUgZXZlbnQgcGF0aCI+Ci0gICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVj
L3NoYWRvdy8jZXZlbnQtcGF0aHMiPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAgIDxsaW5rIHJlbD0nc3R5bGVz
aGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+Ci08
Ym9keT4KLSAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICAgIDxzY3JpcHQ+Ci0KLSAgICAgICAg
ZnVuY3Rpb24gZGlzcGF0Y2hFdmVudFdpdGhMb2coc2hhZG93LCBldmVudCkgewotICAgICAgICAg
ICAgdmFyIGxvZyA9IFtdOwotCi0gICAgICAgICAgICB2YXIgYXR0YWNoZWROb2RlcyA9IFtdOwot
ICAgICAgICAgICAgZm9yICh2YXIgbm9kZUtleSBpbiBzaGFkb3cpIHsKLSAgICAgICAgICAgICAg
ICB2YXIgc3RhcnRpbmdOb2RlID0gc2hhZG93W25vZGVLZXldOwotICAgICAgICAgICAgICAgIGZv
ciAodmFyIG5vZGUgPSBzdGFydGluZ05vZGU7IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudE5vZGUp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF0dGFjaGVkTm9kZXMuaW5kZXhPZihub2RlKSA+
PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAg
ICAgIGF0dGFjaGVkTm9kZXMucHVzaChub2RlKTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5h
ZGRFdmVudExpc3RlbmVyKGV2ZW50LnR5cGUsIChmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxvZy5wdXNoKFt0aGlzLCBldmVudC50YXJnZXRdKTsKLSAgICAgICAg
ICAgICAgICAgICAgfSkuYmluZChub2RlKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBzaGFkb3cudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwot
Ci0gICAgICAgICAgICByZXR1cm4gbG9nOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24g
ZWxlbWVudChuYW1lLCBjaGlsZHJlbiwgY2xhc3NOYW1lKSB7Ci0gICAgICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7Ci0gICAgICAgICAgICBpZiAoY2xh
c3NOYW1lKQotICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NOYW1lOwot
ICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgY2hp
bGQgb2YgY2hpbGRyZW4pCi0gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQo
Y2hpbGQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7Ci0gICAg
ICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBhdHRhY2hTaGFkb3coaG9zdCwgbW9kZSwgY2hpbGRy
ZW4pIHsKLSAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21v
ZGU6IG1vZGV9KTsKLSAgICAgICAgICAgIGlmIChjaGlsZHJlbikgewotICAgICAgICAgICAgICAg
IGZvciAodmFyIGNoaWxkIG9mIGNoaWxkcmVuKQotICAgICAgICAgICAgICAgICAgICBzaGFkb3dS
b290LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
biBzaGFkb3dSb290OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gY3JlYXRlU2hhZG93
SG9zdFdpdGhBc3NpZ25lZEdyYW5kQ2hpbGQobW9kZSkgewotICAgICAgICAgICAgdmFyIGhvc3Qg
PSBlbGVtZW50KCdkaXYnLCBbCi0gICAgICAgICAgICAgICAgZWxlbWVudCgnYicsIFsKLSAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudCgnaScpCi0gICAgICAgICAgICAgICAgXSkKLSAgICAgICAg
ICAgIF0pOwotCi0gICAgICAgICAgICB2YXIgcm9vdCA9IGF0dGFjaFNoYWRvdyhob3N0LCBtb2Rl
LCBbCi0gICAgICAgICAgICAgICAgZWxlbWVudCgnc3BhbicsIFsKLSAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudCgnc2xvdCcpCi0gICAgICAgICAgICAgICAgXSkKLSAgICAgICAgICAgIF0pOwot
Ci0gICAgICAgICAgICByZXR1cm4ge3RhcmdldDogaG9zdC5xdWVyeVNlbGVjdG9yKCdpJyksIHRh
cmdldFBhcmVudDogaG9zdC5xdWVyeVNlbGVjdG9yKCdiJyksIGhvc3Q6IGhvc3QsCi0gICAgICAg
ICAgICAgICAgICAgIHNsb3Q6IHJvb3QucXVlcnlTZWxlY3Rvcignc2xvdCcpLCBzbG90UGFyZW50
OiByb290LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKSwgcm9vdDogcm9vdH07Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRJbkRldGFjaGVkU2hhZG93SG9zdERlc2NlbmRhbnQo
bW9kZSkgewotICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAg
dmFyIHNoYWRvdyA9IGNyZWF0ZVNoYWRvd0hvc3RXaXRoQXNzaWduZWRHcmFuZENoaWxkKG1vZGUp
OwotCi0gICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2coc2hhZG93LCBu
ZXcgRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZX0pKTsKLQotICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgNiwgJ0V2ZW50UGF0aCBtdXN0
IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0IHBhcmVudCwgc2xvdCwgc2xvdCBwYXJlbnQsIHNoYWRv
dyByb290LCBzaGFkb3cgaG9zdF0nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzBd
IG11c3QgYmUgdGhlIHRhcmdldCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzFdLCBbc2hhZG93LnRhcmdldFBhcmVudCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBh
dGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgW3NoYWRvdy5zbG90LCBzaGFkb3cudGFyZ2V0
XSwgJ0V2ZW50UGF0aFsyXSBtdXN0IGJlIHRoZSBzbG90Jyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFtzaGFkb3cuc2xvdFBhcmVudCwgc2hhZG93LnRhcmdl
dF0sICdFdmVudFBhdGhbM10gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90Jyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cucm9vdCwgc2hh
ZG93LnRhcmdldF0sICdFdmVudFBhdGhbNF0gbXVzdCBiZSB0aGUgc2hhZG93IHJvb3QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5ob3N0LCBz
aGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs1XSBtdXN0IGJlIHRoZSBzaGFkb3cgaG9zdCcpOwot
Ci0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9m
IGEgZGV0YWNoZWQgJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IGhvc3QnKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHRlc3RFdmVudEluRGV0YWNoZWRTaGFkb3dIb3N0RGVzY2VuZGFudCgnb3Blbicp
OwotICAgICAgICB0ZXN0RXZlbnRJbkRldGFjaGVkU2hhZG93SG9zdERlc2NlbmRhbnQoJ2Nsb3Nl
ZCcpOwotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudEluU2hhZG93SG9zdERlc2NlbmRhbnRJ
bnNpZGVEb2N1bWVudChtb2RlKSB7Ci0gICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgICAgICB2YXIgc2hhZG93ID0gY3JlYXRlU2hhZG93SG9zdFdpdGhBc3NpZ25lZEdy
YW5kQ2hpbGQobW9kZSk7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChzaGFkb3cuaG9zdCk7Ci0KLSAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0
aExvZyhzaGFkb3csIG5ldyBFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0
cnVlfSkpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA5LCAn
RXZlbnRQYXRoIG11c3QgY29udGFpbiBbdGFyZ2V0LCB0YXJnZXQgcGFyZW50LCBzbG90LCBzbG90
IHBhcmVudCwgc2hhZG93IHJvb3QsIHNoYWRvdyBob3N0LCBib2R5LCBodG1sLCBkb2N1bWVudF0n
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50
YXJnZXQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93LnRh
cmdldFBhcmVudCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFy
ZW50IG9mIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1syXSwgW3NoYWRvdy5zbG90LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsyXSBtdXN0
IGJlIHRoZSBzbG90Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
M10sIFtzaGFkb3cuc2xvdFBhcmVudCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbM10gbXVz
dCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cucm9vdCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBh
dGhbNF0gbXVzdCBiZSB0aGUgc2hhZG93IHJvb3QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50
UGF0aFs1XSBtdXN0IGJlIHRoZSBzaGFkb3cgaG9zdCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzZdLCBbZG9jdW1lbnQuYm9keSwgc2hhZG93LnRhcmdldF0sICdF
dmVudFBhdGhbNl0gbXVzdCBiZSB0aGUgYm9keSBlbGVtZW50Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbN10sIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHNo
YWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzddIG11c3QgYmUgdGhlIGh0bWwgZWxlbWVudCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhdLCBbZG9jdW1lbnQsIHNo
YWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzhdIG11c3QgYmUgdGhlIGh0bWwgZWxlbWVudCcpOwot
Ci0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9m
IGFuIGluLWRvY3VtZW50ICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyBob3N0Jyk7Ci0gICAgICAg
IH0KLQotICAgICAgICB0ZXN0RXZlbnRJblNoYWRvd0hvc3REZXNjZW5kYW50SW5zaWRlRG9jdW1l
bnQoJ29wZW4nKTsKLSAgICAgICAgdGVzdEV2ZW50SW5TaGFkb3dIb3N0RGVzY2VuZGFudEluc2lk
ZURvY3VtZW50KCdjbG9zZWQnKTsKLQotICAgICAgICBmdW5jdGlvbiBjcmVhdGVOZXN0ZWRTaGFk
b3dUcmVlc1dpdGhTbG90cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9k
ZSkgewotICAgICAgICAgICAgdmFyIHVwcGVySG9zdCA9IGVsZW1lbnQoJ3VwcGVyLWhvc3QnLCBb
Ci0gICAgICAgICAgICAgICAgZWxlbWVudCgncCcsIFsKLSAgICAgICAgICAgICAgICAgICAgZWxl
bWVudCgnbG93ZXItaG9zdCcsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2En
KQotICAgICAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAg
ICBdKTsKLQotICAgICAgICAgICAgdmFyIHVwcGVyU2hhZG93ID0gYXR0YWNoU2hhZG93KHVwcGVy
SG9zdCwgb3V0ZXJVcHBlck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdiJywgWwot
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCdzbG90JywgW10sICd1cHBlci1zbG90JykKLSAg
ICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgXSk7Ci0KLSAgICAgICAgICAgIHZhciBsb3dl
ckhvc3QgPSB1cHBlckhvc3QucXVlcnlTZWxlY3RvcignbG93ZXItaG9zdCcpOwotICAgICAgICAg
ICAgdmFyIGxvd2VyU2hhZG93ID0gYXR0YWNoU2hhZG93KGxvd2VySG9zdCwgb3V0ZXJMb3dlck1v
ZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdlbScsIFsKLSAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudCgnaW5uZXItaG9zdCcsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQoJ3NwYW4nLCBbCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnc2xvdCcs
IFtdLCAnbG93ZXItc2xvdCcpCi0gICAgICAgICAgICAgICAgICAgICAgICBdKQotICAgICAgICAg
ICAgICAgICAgICBdKQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBdKTsKLQotICAg
ICAgICAgICAgaW5uZXJTaGFkb3cgPSBhdHRhY2hTaGFkb3cobG93ZXJTaGFkb3cucXVlcnlTZWxl
Y3RvcignaW5uZXItaG9zdCcpLCBpbm5lck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50
KCdpJywgWwotICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCdzbG90JywgW10sICdpbm5lci1z
bG90JykKLSAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgXSk7Ci0KLSAgICAgICAgICAg
IHJldHVybiB7Ci0gICAgICAgICAgICAgICAgaG9zdDogdXBwZXJIb3N0LAotICAgICAgICAgICAg
ICAgIHRhcmdldDogdXBwZXJIb3N0LnF1ZXJ5U2VsZWN0b3IoJ2EnKSwKLSAgICAgICAgICAgICAg
ICB1cHBlclNoYWRvdzogdXBwZXJTaGFkb3csCi0gICAgICAgICAgICAgICAgdXBwZXJTbG90OiB1
cHBlclNoYWRvdy5xdWVyeVNlbGVjdG9yKCdzbG90JyksCi0gICAgICAgICAgICAgICAgbG93ZXJT
aGFkb3c6IGxvd2VyU2hhZG93LAotICAgICAgICAgICAgICAgIGxvd2VyU2xvdDogbG93ZXJTaGFk
b3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAotICAgICAgICAgICAgICAgIGlubmVyU2hhZG93OiBp
bm5lclNoYWRvdywKLSAgICAgICAgICAgICAgICBpbm5lclNsb3Q6IGlubmVyU2hhZG93LnF1ZXJ5
U2VsZWN0b3IoJ3Nsb3QnKSwKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH0KLQotICAgICAgICAv
KgotICAgICAgICB1cHBlci1ob3N0ICgxNCkgLS0gKHVwcGVyU2hhZG93OyAxMykKLSAgICAgICAg
ICsgcCAoMTApICAgICAgICAgICsgYiAoMTIpCi0gICAgICAgICAgfCAgICAgICAgICAgICAgICAg
ICsgc2xvdCAodXBwZXJTbG90OyAxMSkKLSAgICAgICAgICArIGxvd2VyLWhvc3QgKDkpIC0tIChs
b3dlclNoYWRvdzsgOCkKLSAgICAgICAgICAgICsgYSAodGFyZ2V0OyAwKSAgICsgZW0gKDcpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaW5uZXItaG9zdCAoNikgLS0tLS0tLS0g
KGlubmVyU2hhZG93OyA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3Bh
biAoMikgICAgICAgICAgICAgICsgaSAoNCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICsgc2xvdCAobG93ZXJTbG90OyAxKSArIHNsb3QgKGlubmVyU2xvdDsgMykKLSAgICAg
ICAgKi8KLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRVbmRlclR3b1NoYWRvd1Jvb3RzKG91
dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9kZSwgaW5uZXJNb2RlKSB7Ci0gICAgICAgICAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICB2YXIgc2hhZG93ID0gY3JlYXRlTmVz
dGVkU2hhZG93VHJlZXNXaXRoU2xvdHMoaW5uZXJNb2RlLCBvdXRlclVwcGVyTW9kZSwgb3V0ZXJM
b3dlck1vZGUpOwotCi0gICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2co
c2hhZG93LCBuZXcgRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZX0p
KTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgMTUsICdFdmVu
dFBhdGggbXVzdCBjb250YWluIDE1IHRhcmdldHMnKTsKLQotICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzBdLCBbc2hhZG93LnRhcmdldCwgc2hhZG93LnRhcmdldF0sICdF
dmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dbMV0sIFtzaGFkb3cubG93ZXJTbG90LCBzaGFkb3cudGFyZ2V0XSwg
J0V2ZW50UGF0aFsxXSBtdXN0IGJlIHRoZSBzbG90IGluc2lkZSB0aGUgbG93ZXIgc2hhZG93IHRy
ZWUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgW3NoYWRv
dy5sb3dlclNsb3QucGFyZW50Tm9kZSwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMl0gbXVz
dCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90IGluc2lkZSB0aGUgbG93ZXIgc2hhZG93IHRyZWUn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgW3NoYWRvdy5p
bm5lclNsb3QsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzNdIG11c3QgYmUgdGhlIHNsb3Qg
aW5zaWRlIHRoZSBzaGFkb3cgdHJlZSBpbnNpZGUgdGhlIGxvd2VyIHNoYWRvdyB0cmVlJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cuaW5uZXJT
bG90LnBhcmVudE5vZGUsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzRdIG11c3QgYmUgdGhl
IGNoaWxkIG9mIHRoZSBpbm5lciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzVdLCBbc2hhZG93LmlubmVyU2hhZG93LCBzaGFkb3cudGFyZ2V0
XSwgJ0V2ZW50UGF0aFs1XSBtdXN0IGJlIHRoZSBpbm5lciBzaGFkb3cgcm9vdCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzZdLCBbc2hhZG93LmlubmVyU2hhZG93
Lmhvc3QsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGhvc3Qgb2Yg
dGhlIGlubmVyIHNoYWRvdyB0cmVlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbN10sIFtzaGFkb3cubG93ZXJTaGFkb3cuZmlyc3RDaGlsZCwgc2hhZG93LnRhcmdl
dF0sICdFdmVudFBhdGhbN10gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBpbm5lciBzaGFkb3cg
aG9zdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhdLCBbc2hh
ZG93Lmxvd2VyU2hhZG93LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs4XSBtdXN0IGJlIHRo
ZSBsb3dlciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzldLCBbc2hhZG93Lmxvd2VyU2hhZG93Lmhvc3QsIHNoYWRvdy50YXJnZXRdLCAnRXZl
bnRQYXRoWzldIG11c3QgYmUgdGhlIGxvd2VyIHNoYWRvdyBob3N0Jyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMTBdLCBbc2hhZG93Lmhvc3QuZmlyc3RDaGlsZCwg
c2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMTBdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUg
Z3JhbmQgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1sxMV0sIFtzaGFkb3cudXBwZXJTbG90LCBzaGFkb3cudGFyZ2V0XSwgJ0V2
ZW50UGF0aFsxMV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUgdGhlIHVwcGVyIHNoYWRvdyB0cmVl
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMTJdLCBbc2hhZG93
LnVwcGVyU2xvdC5wYXJlbnROb2RlLCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsxMl0gbXVz
dCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90IGluc2lkZSB0aGUgdXBwZXIgc2hhZG93IHRyZWUn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxM10sIFtzaGFkb3cu
dXBwZXJTaGFkb3csIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzEzXSBtdXN0IGJlIHRoZSB1
cHBlciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzE0XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsxNF0gbXVz
dCBiZSB0aGUgaG9zdCcpOwotCi0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IG9uIGEg
bm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkICcgKyBvdXRlclVwcGVyTW9k
ZSArICcgYW5kICcgKyBvdXRlckxvd2VyTW9kZQotICAgICAgICAgICAgICAgICsgJyBzaGFkb3cg
dHJlZXMgd2l0aCBhbiBpbm5lciAnICsgaW5uZXJNb2RlICsgJyBzaGFkb3cgdHJlZScpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdGVzdEV2ZW50VW5kZXJUd29TaGFkb3dSb290cygnb3BlbicsICdv
cGVuJywgJ29wZW4nKTsKLSAgICAgICAgdGVzdEV2ZW50VW5kZXJUd29TaGFkb3dSb290cygnb3Bl
bicsICdvcGVuJywgJ2Nsb3NlZCcpOwotICAgICAgICB0ZXN0RXZlbnRVbmRlclR3b1NoYWRvd1Jv
b3RzKCdvcGVuJywgJ2Nsb3NlZCcsICdvcGVuJyk7Ci0gICAgICAgIHRlc3RFdmVudFVuZGVyVHdv
U2hhZG93Um9vdHMoJ29wZW4nLCAnY2xvc2VkJywgJ2Nsb3NlZCcpOwotICAgICAgICB0ZXN0RXZl
bnRVbmRlclR3b1NoYWRvd1Jvb3RzKCdjbG9zZWQnLCAnb3BlbicsICdvcGVuJyk7Ci0gICAgICAg
IHRlc3RFdmVudFVuZGVyVHdvU2hhZG93Um9vdHMoJ2Nsb3NlZCcsICdvcGVuJywgJ2Nsb3NlZCcp
OwotICAgICAgICB0ZXN0RXZlbnRVbmRlclR3b1NoYWRvd1Jvb3RzKCdjbG9zZWQnLCAnY2xvc2Vk
JywgJ29wZW4nKTsKLSAgICAgICAgdGVzdEV2ZW50VW5kZXJUd29TaGFkb3dSb290cygnY2xvc2Vk
JywgJ2Nsb3NlZCcsICdjbG9zZWQnKTsKLQotICAgICAgICAvKgotICAgICAgICB1cHBlci1ob3N0
ICgxMSkgLS0gKHVwcGVyU2hhZG93OyAxMCkKLSAgICAgICAgICsgcCAoNykgICAgICAgICAgICsg
YiAoOSkKLSAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgKyBzbG90ICh1cHBlclNsb3Q7IDgp
Ci0gICAgICAgICAgKyBsb3dlci1ob3N0ICg2KSAtLSAobG93ZXJTaGFkb3c7IDUpCi0gICAgICAg
ICAgICArIGEgICAgICAgICAgICAgICArIGVtICg0KQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICArIGlubmVyLWhvc3QgKDMpIC0tIChpbm5lclNoYWRvdzsgMikKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICArIHNwYW4gICAgICAgICAgICArIGkgKDEpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNsb3QgICAgICAgICAgICArIHNsb3QgKGlu
bmVyU2xvdCwgdGFyZ2V0OyAwKQotICAgICAgICAqLwotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RF
dmVudEluc2lkZU5lc3RlZFNoYWRvd3NVbmRlckFub3RoZXJTaGFkb3cob3V0ZXJVcHBlck1vZGUs
IG91dGVyTG93ZXJNb2RlLCBpbm5lck1vZGUpIHsKLSAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVOZXN0ZWRTaGFkb3dUcmVl
c1dpdGhTbG90cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9kZSk7Ci0g
ICAgICAgICAgICAgICAgc2hhZG93LmRlZXBlc3ROb2RlSW5MaWdodERPTSA9IHNoYWRvdy50YXJn
ZXQ7IC8vIE5lZWRlZCBmb3IgZGlzcGF0Y2hFdmVudFdpdGhMb2cgdG8gYXR0YWNoIGV2ZW50IGxp
c3RlbmVycy4gCi0gICAgICAgICAgICAgICAgc2hhZG93LnRhcmdldCA9IHNoYWRvdy5pbm5lclNs
b3Q7Ci0KLSAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3cs
IG5ldyBFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlfSkpOwotCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCAxMiwgJ0V2ZW50UGF0aCBt
dXN0IGNvbnRhaW4gMTIgdGFyZ2V0cycpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0
aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy50YXJnZXQucGFyZW50Tm9kZSwgc2hhZG93LnRhcmdldF0s
ICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgW3NoYWRvdy5pbm5lclNoYWRv
dywgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93
IHJvb3QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgW3No
YWRvdy5pbm5lclNoYWRvdy5ob3N0LCBzaGFkb3cuaW5uZXJTaGFkb3cuaG9zdF0sICdFdmVudFBh
dGhbM10gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93IGhvc3QnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s0XSwgW3NoYWRvdy5sb3dlclNoYWRvdy5maXJzdENoaWxk
LCBzaGFkb3cuaW5uZXJTaGFkb3cuaG9zdF0sICdFdmVudFBhdGhbNF0gbXVzdCBiZSB0aGUgcGFy
ZW50IG9mIHRoZSBpbm5lciBzaGFkb3cgaG9zdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzVdLCBbc2hhZG93Lmxvd2VyU2hhZG93LCBzaGFkb3cuaW5uZXJTaGFk
b3cuaG9zdF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgbG93ZXIgKGJ1dCBvdXRlcikgc2hh
ZG93IHJvb3QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s2XSwg
W3NoYWRvdy5sb3dlclNoYWRvdy5ob3N0LCBzaGFkb3cubG93ZXJTaGFkb3cuaG9zdF0sICdFdmVu
dFBhdGhbNl0gbXVzdCBiZSB0aGUgbG93ZXIgKGJ1dCBvdXRlcikgc2hhZG93IHJvb3QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s3XSwgW3NoYWRvdy5ob3N0LmZp
cnN0Q2hpbGQsIHNoYWRvdy5sb3dlclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs3XSBtdXN0IGJl
IHRoZSBzbG90IGluc2lkZSB0aGUgdXBwZXIgc2hhZG93IHRyZWUnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s4XSwgW3NoYWRvdy51cHBlclNsb3QsIHNoYWRvdy5s
b3dlclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs4XSBtdXN0IGJlIHRoZSBzbG90IGluc2lkZSB0
aGUgdXBwZXIgc2hhZG93IHRyZWUnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1s5XSwgW3NoYWRvdy51cHBlclNsb3QucGFyZW50Tm9kZSwgc2hhZG93Lmxvd2VyU2hh
ZG93Lmhvc3RdLCAnRXZlbnRQYXRoWzldIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgc2xvdCBp
bnNpZGUgdGhlIHVwcGVyIHNoYWRvdyB0cmVlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhsb2dbMTBdLCBbc2hhZG93LnVwcGVyU2hhZG93LCBzaGFkb3cubG93ZXJTaGFk
b3cuaG9zdF0sICdFdmVudFBhdGhbMTBdIG11c3QgYmUgdGhlIHVwcGVyIHNoYWRvdyByb290Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMTFdLCBbc2hhZG93LnVw
cGVyU2hhZG93Lmhvc3QsIHNoYWRvdy5sb3dlclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFsxMV0g
bXVzdCBiZSB0aGUgaG9zdCcpOwotCi0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IG9u
IGEgbm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkICcgKyBvdXRlclVwcGVy
TW9kZSArICcgYW5kICcgKyBvdXRlckxvd2VyTW9kZQotICAgICAgICAgICAgICAgICsgJyBzaGFk
b3cgdHJlZXMgd2l0aCBhbiBpbm5lciAnICsgaW5uZXJNb2RlICsgJyBzaGFkb3cgdHJlZScpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgdGVzdEV2ZW50SW5zaWRlTmVzdGVkU2hhZG93c1VuZGVyQW5v
dGhlclNoYWRvdygnb3BlbicsICdvcGVuJywgJ29wZW4nKTsKLSAgICAgICAgdGVzdEV2ZW50SW5z
aWRlTmVzdGVkU2hhZG93c1VuZGVyQW5vdGhlclNoYWRvdygnb3BlbicsICdvcGVuJywgJ2Nsb3Nl
ZCcpOwotICAgICAgICB0ZXN0RXZlbnRJbnNpZGVOZXN0ZWRTaGFkb3dzVW5kZXJBbm90aGVyU2hh
ZG93KCdvcGVuJywgJ2Nsb3NlZCcsICdvcGVuJyk7Ci0gICAgICAgIHRlc3RFdmVudEluc2lkZU5l
c3RlZFNoYWRvd3NVbmRlckFub3RoZXJTaGFkb3coJ29wZW4nLCAnY2xvc2VkJywgJ2Nsb3NlZCcp
OwotICAgICAgICB0ZXN0RXZlbnRJbnNpZGVOZXN0ZWRTaGFkb3dzVW5kZXJBbm90aGVyU2hhZG93
KCdjbG9zZWQnLCAnb3BlbicsICdvcGVuJyk7Ci0gICAgICAgIHRlc3RFdmVudEluc2lkZU5lc3Rl
ZFNoYWRvd3NVbmRlckFub3RoZXJTaGFkb3coJ2Nsb3NlZCcsICdvcGVuJywgJ2Nsb3NlZCcpOwot
ICAgICAgICB0ZXN0RXZlbnRJbnNpZGVOZXN0ZWRTaGFkb3dzVW5kZXJBbm90aGVyU2hhZG93KCdj
bG9zZWQnLCAnY2xvc2VkJywgJ29wZW4nKTsKLSAgICAgICAgdGVzdEV2ZW50SW5zaWRlTmVzdGVk
U2hhZG93c1VuZGVyQW5vdGhlclNoYWRvdygnY2xvc2VkJywgJ2Nsb3NlZCcsICdjbG9zZWQnKTsK
LQotICAgIDwvc2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC13aXRoLXJlbGF0ZWQtdGFyZ2V0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC13aXRoLXJlbGF0ZWQtdGFy
Z2V0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZiMDNhMDI1
NWZlMTY2NWM3ZTNkZWVhYzg0YTIxNDM0MWQwZWExNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZXZlbnQt
d2l0aC1yZWxhdGVkLXRhcmdldC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCAr
MCwwIEBACi0KLVBBU1MgRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0
IEIxIHdpdGggb3BlbiBtb2RlIHNoYWRvdyB0cmVlcyAKLVBBU1MgRmlyaW5nIGFuIGV2ZW50IGF0
IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0IEIxIHdpdGggY2xvc2VkIG1vZGUgc2hhZG93IHRyZWVz
IAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgQjFiMSB3
aXRoIG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCi1QQVNTIEZpcmluZyBhbiBldmVudCBhdCBCMWEg
d2l0aCByZWxhdGVkTm9kZSBhdCBCMWIxIHdpdGggY2xvc2VkIG1vZGUgc2hhZG93IHRyZWVzIAot
UEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFiMSB3aXRoIHJlbGF0ZWROb2RlIGF0IEIxYSB3aXRo
IG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCi1QQVNTIEZpcmluZyBhbiBldmVudCBhdCBCMWIxIHdp
dGggcmVsYXRlZE5vZGUgYXQgQjFhIHdpdGggY2xvc2VkIG1vZGUgc2hhZG93IHRyZWVzIAotUEFT
UyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgRDEgd2l0aCBvcGVu
IG1vZGUgc2hhZG93IHRyZWVzIAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVs
YXRlZE5vZGUgYXQgRDEgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZXMgCi1QQVNTIEZpcmlu
ZyBhbiBldmVudCBhdCBEMSB3aXRoIHJlbGF0ZWROb2RlIGF0IEIxYSB3aXRoIG9wZW4gbW9kZSBz
aGFkb3cgdHJlZXMgCi1QQVNTIEZpcmluZyBhbiBldmVudCBhdCBEMSB3aXRoIHJlbGF0ZWROb2Rl
IGF0IEIxYSB3aXRoIGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlcyAKLVBBU1MgRmlyaW5nIGFuIGV2
ZW50IGF0IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0IEExYSB3aXRoIG9wZW4gbW9kZSBzaGFkb3cg
dHJlZXMgCi1QQVNTIEZpcmluZyBhbiBldmVudCBhdCBCMWEgd2l0aCByZWxhdGVkTm9kZSBhdCBB
MWEgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZXMgCi1QQVNTIEZpcmluZyBhbiBldmVudCBh
dCBCMWEgd2l0aCByZWxhdGVkTm9kZSBhdCBBMWEgd2l0aCBvcGVuIG1vZGUgc2hhZG93IHRyZWVz
IAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgQTFhIHdp
dGggY2xvc2VkIG1vZGUgc2hhZG93IHRyZWVzIAotUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFh
IHdpdGggcmVsYXRlZE5vZGUgYXQgQTFhIHdpdGggb3BlbiBtb2RlIHNoYWRvdyB0cmVlcyAKLVBB
U1MgRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0IEExYSB3aXRoIGNs
b3NlZCBtb2RlIHNoYWRvdyB0cmVlcyAKLVBBU1MgRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRo
IHJlbGF0ZWROb2RlIGF0IEExYSB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCi1QQVNTIEZp
cmluZyBhbiBldmVudCBhdCBCMWEgd2l0aCByZWxhdGVkTm9kZSBhdCBBMWEgd2l0aCBjbG9zZWQg
bW9kZSBzaGFkb3cgdHJlZXMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93
LWRvbS9ldmVudC13aXRoLXJlbGF0ZWQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vZXZlbnQtd2l0aC1yZWxhdGVkLXRhcmdldC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1ZDI1NjQ0OTljOGZkMjE3NTQ5OTVhYjFhODM0YjBjMmQ1MjhkNDI2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9ldmVudC13aXRoLXJlbGF0ZWQtdGFyZ2V0Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
ICAgIDx0aXRsZT5TaGFkb3cgRE9NOiBGaXJpbmcgYW4gZXZlbnQgd2l0aCByZWxhdGVkVGFyZ2V0
IGluc2lkZSBhIHNoYWRvdyB0cmVlPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRp
dGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KLSAgICA8
bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlRoZSByZXRhcmdldGluZyBhbGdvcml0aG0gaXMg
dXNlZCB0byBkZXRlcm1pbmUgcmVsYXRpdmUgdGFyZ2V0cyI+Ci0gICAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL3NoYWRvdy8j
cmV0YXJnZXRpbmctcmVsYXRlZHRhcmdldCI+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9ldmVudC1wYXRoLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+Ci0gICAgPGxp
bmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3Nz
Jz4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0gICAgPHNjcmlw
dD4KLQotICAgICAgICAvKgotICAgICAgICAtU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJn
ZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0ZXMgc3RhcnQgIGRpZ2l0OiBl
dmVudCBwYXRoIG9yZGVyCi0gICAgICAgIEEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gQS1TUgotICAgICAgICArIEIgLS0tLS0tLS0tLS0gQi1TUiAoNCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICsgQTEgLS0tIEExLVNSCi0gICAgICAgICAgKyBDICAg
ICAgICAgICArIEIxICgzKSBbKjsgMC00XSAtLS0gQjEtU1IgKDIpICAgKyBBMi1TICAgKyBBMWEK
LSAgICAgICAgICArIEQgLS0tIEQtU1IgICAgKyBCMWEgKCo7IDApICAgICAgICArIEIxYiBbMSwy
XSAtLS0gQjFiLVNSCi0gICAgICAgICAgICAgICAgICArIEQxICAgICAgICAgICAgICAgICAgICAg
ICAgKyBCMWMtUyAoMSkgICAgICsgQjFiMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEIxYjIKLSAgICAgICAgKi8KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEV2ZW50QXRCMWFXaXRoQjFhKG1vZGUpIHsKLSAgICAgICAgICAgIHRl
c3QoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IGNyZWF0ZVRlc3RU
cmVlKG1vZGUpOwotCi0gICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2co
bm9kZXMsIG5vZGVzLkIxYSwgbmV3IE1vdXNlRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBj
b21wb3NlZDogdHJ1ZSwgcmVsYXRlZFRhcmdldDogbm9kZXMuQjF9KSk7Ci0KLSAgICAgICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsCi0gICAgICAgICAgICAgICAg
ICAgIFsnQjFhJywgJ0IxYy1TJywgJ0IxLVNSJywgJ0IxJywgJ0ItU1InXSwgJ1RoZSBldmVudCBw
YXRoIG11c3QgYmUgY29ycmVjdC4nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZy5yZWxhdGVkVGFyZ2V0cywKLSAgICAgICAgICAgICAgICAgICAgWydCMScsICAnQjEn
LCAgICAnQjEnLCAgICAnQjEnLCAnQjEnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVzdCBiZSBj
b3JyZWN0LicpOwotCi0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRo
IHJlbGF0ZWROb2RlIGF0IEIxIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7
Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhCMWEoJ29wZW4nKTsKLSAg
ICAgICAgdGVzdEV2ZW50QXRCMWFXaXRoQjFhKCdjbG9zZWQnKTsKLQotICAgICAgICAvKgotICAg
ICAgICAtU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdl
dDogW35dICAqOiBpbmRpY2F0ZXMgc3RhcnQgIGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCi0gICAg
ICAgIEEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBB
LVNSCi0gICAgICAgICsgQiAtLS0tLS0tLS0tLSBCLVNSICg0KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICArIEExIC0tLSBBMS1TUgotICAgICAgICAgICsgQyAgICAgICAgICAgKyBCMSAoMykg
WzAsMy00XSAtLS0gQjEtU1IgKDIpICAgICAgKyBBMi1TICAgKyBBMWEKLSAgICAgICAgICArIEQg
LS0tIEQtU1IgICAgKyBCMWEgKCo7IDApICAgICAgICsgQjFiIFsxLDJdIC0tLSBCMWItU1IKLSAg
ICAgICAgICAgICAgICAgICsgRDEgICAgICAgICAgICAgICAgICAgICAgICsgQjFjLVMgKDEpICAg
ICArIEIxYjEgWypdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKyBCMWIyCi0gICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RFdmVudEF0QjFhV2l0aEIxYjEobW9kZSkgewotICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7Ci0K
LSAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMu
QjFhLCBuZXcgTW91c2VFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVl
LCByZWxhdGVkVGFyZ2V0OiBub2Rlcy5CMWIxfSkpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2cuZXZlbnRQYXRoLAotICAgICAgICAgICAgICAgICAgICBbJ0IxYScs
ICdCMWMtUycsICdCMS1TUicsICdCMScsICdCLVNSJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJl
IGNvcnJlY3QuJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVs
YXRlZFRhcmdldHMsCi0gICAgICAgICAgICAgICAgICAgIFsnQjEnLCAgJ0IxYicsICAgJ0IxYics
ICAgJ0IxJywgJ0IxJ10sICdUaGUgcmVsYXRlZCB0YXJnZXRzIG11c3QgYmUgY29ycmVjdC4nKTsK
LQotICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBhdCBCMWEgd2l0aCByZWxhdGVkTm9k
ZSBhdCBCMWIxIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7Ci0gICAgICAg
IH0KLQotICAgICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhCMWIxKCdvcGVuJyk7Ci0gICAgICAgIHRl
c3RFdmVudEF0QjFhV2l0aEIxYjEoJ2Nsb3NlZCcpOwotCi0gICAgICAgIC8qCi0gICAgICAgIC1T
UjogU2hhZG93Um9vdCAgLVM6IFNsb3QgIHRhcmdldDogKH4pICByZWxhdGVkVGFyZ2V0OiBbfl0g
ICo6IGluZGljYXRlcyBzdGFydCAgZGlnaXQ6IGV2ZW50IHBhdGggb3JkZXIKLSAgICAgICAgQSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBLVNSCi0g
ICAgICAgICsgQiAtLS0tLS0tLS0tLS0tIEItU1IgKDUpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKyBBMSAtLS0gQTEtU1IKLSAgICAgICAgICArIEMgICAgICAgICAgICAgKyBCMSAoNCkgLS0t
LS0tLSBCMS1TUiAoMykgICAgICAgICArIEEyLVMgICArIEExYQotICAgICAgICAgICsgRCAtLS0g
RC1TUiAgICArIEIxYSBbKjsgMC01XSAgICsgQjFiICgyKSAtLS0gQjFiLVNSICgxKQotICAgICAg
ICAgICAgICAgICAgKyBEMSAgICAgICAgICAgICAgICAgICAgICsgQjFjLVMgICAgICAgKyBCMWIx
ICgqOyAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKyBCMWIyCi0gICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudEF0
QjFiMVdpdGhCMWEobW9kZSkgewotICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7Ci0KLSAgICAgICAg
ICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQjFiMSwgbmV3
IE1vdXNlRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSwgcmVsYXRl
ZFRhcmdldDogbm9kZXMuQjFhfSkpOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2cuZXZlbnRQYXRoLAotICAgICAgICAgICAgICAgICAgICBbJ0IxYjEnLCAnQjFiLVNS
JywgJ0IxYicsICdCMS1TUicsICdCMScsICdCLVNSJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJl
IGNvcnJlY3QuJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVs
YXRlZFRhcmdldHMsCi0gICAgICAgICAgICAgICAgICAgIFsnQjFhJywgICdCMWEnLCAgICAnQjFh
JywgJ0IxYScsICAgJ0IxYScsICdCMWEnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVzdCBiZSBj
b3JyZWN0LicpOwotCi0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIxYjEgd2l0
aCByZWxhdGVkTm9kZSBhdCBCMWEgd2l0aCAnICsgbW9kZSArICcgbW9kZSBzaGFkb3cgdHJlZXMn
KTsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3RFdmVudEF0QjFiMVdpdGhCMWEoJ29wZW4nKTsK
LSAgICAgICAgdGVzdEV2ZW50QXRCMWIxV2l0aEIxYSgnY2xvc2VkJyk7Ci0KLSAgICAgICAgLyoK
LSAgICAgICAgLVNSOiBTaGFkb3dSb290ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRU
YXJnZXQ6IFt+XSAgKjogaW5kaWNhdGVzIHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgot
ICAgICAgICBBICg4KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBBLVNSICg3KQotICAgICAgICArIEIgKDUpIC0tLS0tLS0tLS0tLS0tIEItU1IgKDQp
ICAgICAgICAgICAgICAgICAgICAgICAgICArIEExIC0tLS0tLS0tIEExLVNSCi0gICAgICAgICAg
KyBDICAgICAgICAgICAgICAgICAgKyBCMSAoMykgWyo7IDAtNF0gLS0tIEIxLVNSICgyKSAgICsg
QTItUyAoNikgICAgKyBBMWEKLSAgICAgICAgICArIEQgWzAtOF0gLS0tIEQtU1IgICAgICsgQjFh
ICgqOyAwKSAgICAgICAgKyBCMWIgLS0tLS0tIEIxYi1TUgotICAgICAgICAgICAgICAgICAgICAg
ICAgKyBEMSBbKl0gICAgICAgICAgICAgICAgICAgICArIEIxYy1TICgxKSAgKyBCMWIxCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICArIEIxYjIKLSAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50QXRCMWFX
aXRoRDEobW9kZSkgewotICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7Ci0KLSAgICAgICAgICAgICAg
ICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQjFhLCBuZXcgTW91c2VF
dmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlLCByZWxhdGVkVGFyZ2V0
OiBub2Rlcy5EMX0pKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
LmV2ZW50UGF0aCwKLSAgICAgICAgICAgICAgICAgICAgWydCMWEnLCAnQjFjLVMnLCAnQjEtU1In
LCAnQjEnLCAnQi1TUicsICdCJywgJ0EyLVMnLCAnQS1TUicsICdBJ10sICdUaGUgZXZlbnQgcGF0
aCBtdXN0IGJlIGNvcnJlY3QuJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2cucmVsYXRlZFRhcmdldHMsCi0gICAgICAgICAgICAgICAgICAgIFsnRCcsICdEJywgJ0Qn
LCAnRCcsICdEJywgJ0QnLCAnRCcsICdEJywgJ0QnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVz
dCBiZSBjb3JyZWN0LicpOwotCi0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIx
YSB3aXRoIHJlbGF0ZWROb2RlIGF0IEQxIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRy
ZWVzJyk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhEMSgnb3Blbicp
OwotICAgICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhEMSgnY2xvc2VkJyk7Ci0KLSAgICAgICAgLyoK
LSAgICAgICAgLVNSOiBTaGFkb3dSb290ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRU
YXJnZXQ6IFt+XSAgKjogaW5kaWNhdGVzIHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgot
ICAgICAgICBBICg2KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBLVNSICg1
KQotICAgICAgICArIEIgKDMpIFswXSAtLS0tLS0tLS0tLSBCLVNSICAgICAgICAgICAgICArIEEx
IC0tLS0tLSBBMS1TUgotICAgICAgICAgICsgQyAgICAgICAgICAgICAgICAgICArIEIxIC0tLS0t
IEIxLVNSICArIEEyLVMgKDQpICArIEExYQotICAgICAgICAgICsgRCAoMikgLS0tIEQtU1IgKDEp
ICArIEIxYSBbKl0gICsgQjFiIC0tLSBCMWItU1IKLSAgICAgICAgICAgICAgICAgICAgICAgICsg
RDEgKCo7IDApICAgICAgICAgKyBCMWMtUyAgICsgQjFiMQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCi0gICAgICAgICovCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RFdmVudEF0RDFXaXRoQjFhKG1vZGUpIHsKLSAgICAgICAgICAgIHRl
c3QoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IGNyZWF0ZVRlc3RU
cmVlKG1vZGUpOwotCi0gICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2co
bm9kZXMsIG5vZGVzLkQxLCBuZXcgTW91c2VFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNv
bXBvc2VkOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBub2Rlcy5CMWF9KSk7Ci0KLSAgICAgICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsCi0gICAgICAgICAgICAgICAg
ICAgIFsnRDEnLCAnRC1TUicsICdEJywgJ0InLCAnQTItUycsICdBLVNSJywgJ0EnXSwgJ1RoZSBl
dmVudCBwYXRoIG11c3QgYmUgY29ycmVjdC4nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZy5yZWxhdGVkVGFyZ2V0cywKLSAgICAgICAgICAgICAgICAgICAgWydCJywg
J0InLCAnQicsICdCJywgJ0InLCAnQicsICdCJ10sICdUaGUgcmVsYXRlZCB0YXJnZXRzIG11c3Qg
YmUgY29ycmVjdC4nKTsKLQotICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBhdCBEMSB3
aXRoIHJlbGF0ZWROb2RlIGF0IEIxYSB3aXRoICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyB0cmVl
cycpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdEV2ZW50QXREMVdpdGhCMWEoJ29wZW4nKTsK
LSAgICAgICAgdGVzdEV2ZW50QXREMVdpdGhCMWEoJ2Nsb3NlZCcpOwotCi0gICAgICAgIC8qCi0g
ICAgICAgIC1TUjogU2hhZG93Um9vdCAgLVM6IFNsb3QgIHRhcmdldDogKH4pICByZWxhdGVkVGFy
Z2V0OiBbfl0gICo6IGluZGljYXRlcyBzdGFydCAgZGlnaXQ6IGV2ZW50IHBhdGggb3JkZXIKLSAg
ICAgICAgQSAoOCkgWzAtNSw4XSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIEEtU1IgKDcpCi0gICAgICAgICsgQiAoNSkgIC0tLS0tLS0gQi1TUiAoNCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICArIEExIFs2LDddIC0tLSBBMS1TUgotICAgICAgICAgICsgQyAg
ICAgICAgICAgICsgQjEgKDMpIC0tLS0tIEIxLVNSICgyKSAgICAgICAgICAgICAgKyBBMi1TICg2
KSAgICAgKyBBMWEgWypdCi0gICAgICAgICAgKyBEIC0tLSBELVNSICAgKyBCMWEgKCo7IDApICAg
KyBCMWIgLS0tLS0tLSBCMWItU1IKLSAgICAgICAgICAgICAgICAgICsgRDEgICAgICAgICAgICAg
ICAgICArIEIxYy1TICgxKSAgICsgQjFiMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCi0gICAgICAgICovCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RFdmVudEF0QjFhV2l0aEExYShtb2RlKSB7Ci0gICAgICAgICAgICB0ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgICAgICB2YXIgbm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2Rl
KTsKLQotICAgICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBu
b2Rlcy5CMWEsIG5ldyBNb3VzZUV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6
IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG5vZGVzLkExYX0pKTsKLQotICAgICAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aCwKLSAgICAgICAgICAgICAgICAgICAgWydC
MWEnLCAnQjFjLVMnLCAnQjEtU1InLCAnQjEnLCAnQi1TUicsICdCJywgJ0EyLVMnLCAnQS1TUics
ICdBJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJlIGNvcnJlY3QuJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdldHMsCi0gICAgICAgICAgICAg
ICAgICAgIFsnQScsICAgJ0EnLCAgICAgJ0EnLCAgICAgJ0EnLCAgICdBJywgICAnQScsICdBMScs
ICAgJ0ExJywgICAnQSddLCAnVGhlIHJlbGF0ZWQgdGFyZ2V0cyBtdXN0IGJlIGNvcnJlY3QuJyk7
Ci0KLSAgICAgICAgICAgIH0sICdGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5v
ZGUgYXQgQTFhIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7Ci0gICAgICAg
IH0KLQotICAgICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhBMWEoJ29wZW4nKTsKLSAgICAgICAgdGVz
dEV2ZW50QXRCMWFXaXRoQTFhKCdjbG9zZWQnKTsKLQotICAgICAgICAvKgotICAgICAgICAtU1I6
IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAq
OiBpbmRpY2F0ZXMgc3RhcnQgIGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCi0gICAgICAgIEEgKDQp
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEEtU1IgKDMpCi0gICAg
ICAgICsgQiBbMC00XSAgLS0tLS0gQi1TUiAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQTEg
KDIpIC0tLSBBMS1TUiAoMSkKLSAgICAgICAgICArIEMgICAgICAgICAgICArIEIxIC0tLS0tLS0g
QjEtU1IgICAgICAgICAgICAgKyBBMi1TICAgICAgICsgQTFhICgqOyAwKQotICAgICAgICAgICsg
RCAtLS0gRC1TUiAgICAgKyBCMWEgWypdICArIEIxYiAtLS0gQjFiLVNSCi0gICAgICAgICAgICAg
ICAgICArIEQxICAgICAgICAgICAgICAgICsgQjFjLVMgICArIEIxYjEKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQjFiMgotICAgICAgICAqLwotICAg
ICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRBdEExYVdpdGhCMWEobW9kZSkgewotICAgICAgICAgICAg
dGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVz
dFRyZWUobW9kZSk7Ci0KLSAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExv
Zyhub2Rlcywgbm9kZXMuQTFhLCBuZXcgTW91c2VFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUs
IGNvbXBvc2VkOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBub2Rlcy5CMWF9KSk7Ci0KLSAgICAgICAg
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsCi0gICAgICAgICAgICAg
ICAgICAgIFsnQTFhJywgJ0ExLVNSJywgJ0ExJywgJ0EtU1InLCAnQSddLCAnVGhlIGV2ZW50IHBh
dGggbXVzdCBiZSBjb3JyZWN0LicpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nLnJlbGF0ZWRUYXJnZXRzLAotICAgICAgICAgICAgICAgICAgICBbJ0InLCAnQicsICdC
JywgJ0InLCAnQiddLCAnVGhlIHJlbGF0ZWQgdGFyZ2V0cyBtdXN0IGJlIGNvcnJlY3QuJyk7Ci0K
LSAgICAgICAgICAgIH0sICdGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUg
YXQgQTFhIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7Ci0gICAgICAgIH0K
LQotICAgICAgICB0ZXN0RXZlbnRBdEExYVdpdGhCMWEoJ29wZW4nKTsKLSAgICAgICAgdGVzdEV2
ZW50QXRBMWFXaXRoQjFhKCdjbG9zZWQnKTsKLQotICAgICAgICAvKgotICAgICAgICAtU1I6IFNo
YWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBp
bmRpY2F0ZXMgc3RhcnQgIGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCi0gICAgICAgIEEgKDgpIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEEtU1IgKDcpCi0gICAgICAgICsgQiAo
NSkgIC0tLS0tIEItU1IgKDQpICAgICAgICAgICAgICAgICAgICsgQTItUyAoNikKLSAgICAgICAg
ICArIEMgICAgICAgICAgKyBCMSAoMykgLS0tLS0gQjEtU1IgKDIpCi0gICAgICAgICAgKyBEIC0t
LSBELVNSICAgKyBCMWEgKCo7IDApICsgQjFiIC0tLS0tLS0gQjFiLVNSCi0gICAgICAgICAgICAg
ICAgICArIEQxICAgICAgICAgICAgICAgICsgQjFjLVMgKDEpICAgKyBCMWIxCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCi0gICAgICAg
IEExIFswLTZdIC0tLSBBMS1TUgotICAgICAgICAgICAgICAgICAgICsgQTFhIFsqXQotICAgICAg
ICAqLwotICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRBdEIxYVdpdGhEZXRhY2hlZEExYShtb2Rl
KSB7Ci0gICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICB2YXIg
bm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKLQotICAgICAgICAgICAgICAgIG5vZGVzWydB
LVNSJ10ucmVtb3ZlQ2hpbGQobm9kZXMuQTEpOwotICAgICAgICAgICAgICAgIGxvZyA9IGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5CMWEsIG5ldyBNb3VzZUV2ZW50KCdmb28nLCB7
YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG5vZGVzLkExYX0p
KTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aCwK
LSAgICAgICAgICAgICAgICAgICAgWydCMWEnLCAnQjFjLVMnLCAnQjEtU1InLCAnQjEnLCAnQi1T
UicsICdCJywgJ0EyLVMnLCAnQS1TUicsICdBJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJlIGNv
cnJlY3QuJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRl
ZFRhcmdldHMsCi0gICAgICAgICAgICAgICAgICAgIFsnQTEnLCAnQTEnLCAnQTEnLCAnQTEnLCAn
QTEnLCAnQTEnLCAnQTEnLCAnQTEnLCAnQTEnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVzdCBi
ZSBjb3JyZWN0LicpOwotCi0gICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3
aXRoIHJlbGF0ZWROb2RlIGF0IEExYSB3aXRoICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyB0cmVl
cycpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVzdEV2ZW50QXRCMWFXaXRoRGV0YWNoZWRBMWEo
J29wZW4nKTsKLSAgICAgICAgdGVzdEV2ZW50QXRCMWFXaXRoRGV0YWNoZWRBMWEoJ2Nsb3NlZCcp
OwotCi0gICAgICAgIC8qCi0gICAgICAgIC1TUjogU2hhZG93Um9vdCAgLVM6IFNsb3QgIHRhcmdl
dDogKH4pICByZWxhdGVkVGFyZ2V0OiBbfl0gICo6IGluZGljYXRlcyBzdGFydCAgZGlnaXQ6IGV2
ZW50IHBhdGggb3JkZXIKLSAgICAgICAgQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBBLVNSCi0gICAgICAgICsgQiBbMC0zXSAgLS0tLS0gQi1TUiAgICAgICAgICAgICAgICAg
KyBBMi1TCi0gICAgICAgICAgKyBDICAgICAgICAgICAgKyBCMSAtLS0tLS0tLSBCMS1TUgotICAg
ICAgICAgICsgRCAtLS0gRC1TUiAgICAgKyBCMWEgWypdICAgKyBCMWIgLS0tIEIxYi1TUgotICAg
ICAgICAgICAgICAgICAgKyBEMSAgICAgICAgICAgICAgICAgKyBCMWMtUyAgICsgQjFiMQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQjFiMgotICAg
ICAgICBBMSAoMikgLS0tIEExLVNSICgxKQotICAgICAgICAgICAgICAgICAgICsgQTFhICgqOyAw
KQotICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRBdEExYVdpdGhEZXRhY2hl
ZEIxYShtb2RlKSB7Ci0gICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICB2YXIgbm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKLQotICAgICAgICAgICAgICAg
IG5vZGVzWydBLVNSJ10ucmVtb3ZlQ2hpbGQobm9kZXMuQTEpOwotICAgICAgICAgICAgICAgIGxv
ZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5BMWEsIG5ldyBNb3VzZUV2ZW50
KCdmb28nLCB7YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG5v
ZGVzLkIxYX0pKTsKLQotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2
ZW50UGF0aCwgICAgICBbJ0ExYScsICdBMS1TUicsICdBMSddLCAnVGhlIGV2ZW50IHBhdGggbXVz
dCBiZSBjb3JyZWN0LicpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
LnJlbGF0ZWRUYXJnZXRzLCBbJ0InLCAgICdCJywgICAgICdCJyBdLCAnVGhlIHJlbGF0ZWQgdGFy
Z2V0cyBtdXN0IGJlIGNvcnJlY3QuJyk7Ci0KLSAgICAgICAgICAgIH0sICdGaXJpbmcgYW4gZXZl
bnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgQTFhIHdpdGggJyArIG1vZGUgKyAnIG1vZGUg
c2hhZG93IHRyZWVzJyk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZXN0RXZlbnRBdEExYVdpdGhE
ZXRhY2hlZEIxYSgnb3BlbicpOwotICAgICAgICB0ZXN0RXZlbnRBdEExYVdpdGhEZXRhY2hlZEIx
YSgnY2xvc2VkJyk7Ci0KLSAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vcmVzb3VyY2VzL0RvY3VtZW50LXBy
b3RvdHlwZS1jdXJyZW50U2NyaXB0LWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93
LWRvbS9yZXNvdXJjZXMvRG9jdW1lbnQtcHJvdG90eXBlLWN1cnJlbnRTY3JpcHQtaGVscGVyLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjU2OTNjZGI5Y2U1YTAzMGIxMDZhM2Iw
NjFlMzY2NWYwMmMyZDYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZXNvdXJjZXMvRG9jdW1lbnQtcHJv
dG90eXBlLWN1cnJlbnRTY3JpcHQtaGVscGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotZXhlY3V0ZUV4dGVybmFsU2NyaXB0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFiYTM0OTIyYzZhOWJkNTA4M2JkMjRlZmQ0YWUwOTc1YzY3N2Vj
NmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotCi1QQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBm
aXJlIG9uIGEgZGVmYXVsdCBzbG90IGVsZW1lbnQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3Qg
IGluIGEgZG9jdW1lbnQgCi1QQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgZGVm
YXVsdCBzbG90IGVsZW1lbnQgaW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBpbiBhIGRvY3Vt
ZW50IAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIGRlZmF1bHQgc2xvdCBl
bGVtZW50IGluc2lkZSBhbiBvcGVuIHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1bWVudCAKLVBB
U1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBkZWZhdWx0IHNsb3QgZWxlbWVudCBp
bnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IAotUEFTUyBzbG90
Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIG5hbWVkIHNsb3QgZWxlbWVudCBpbnNpZGVhbiBv
cGVuIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11
c3QgZmlyZSBvbiBhIG5hbWVkIHNsb3QgZWxlbWVudCBpbnNpZGVhIGNsb3NlZCBzaGFkb3cgcm9v
dCAgaW4gYSBkb2N1bWVudCAKLVBBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBu
YW1lZCBzbG90IGVsZW1lbnQgaW5zaWRlYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9j
dW1lbnQgCi1QQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgbmFtZWQgc2xvdCBl
bGVtZW50IGluc2lkZWEgY2xvc2VkIHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1bWVudCAKLVBB
U1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lk
ZSBhbiBvcGVuIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gYW5vdGhlciBzbG90J3Mg
YXNzaWduZWQgbm9kZXMgY2hhbmdlIAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZp
cmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBpbiBhIGRv
Y3VtZW50IHdoZW4gYW5vdGhlciBzbG90J3MgYXNzaWduZWQgbm9kZXMgY2hhbmdlIAotUEFTUyBz
bG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGFu
IG9wZW4gc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gYW5vdGhlciBzbG90J3Mg
YXNzaWduZWQgbm9kZXMgY2hhbmdlIAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZp
cmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBub3QgaW4g
YSBkb2N1bWVudCB3aGVuIGFub3RoZXIgc2xvdCdzIGFzc2lnbmVkIG5vZGVzIGNoYW5nZSAKLVBB
U1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lk
ZSBhbiBvcGVuIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gdGhlIHNoYWRvdyBob3N0
IHdhcyBtdXRhdGVkIGJlZm9yZSB0aGUgc2xvdCB3YXMgaW5zZXJ0ZWQgb3IgYWZ0ZXIgdGhlIHNs
b3Qgd2FzIHJlbW92ZWQgCi1QQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgZmlyZSBvbiBh
IHNsb3QgZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3QgIGluIGEgZG9jdW1lbnQg
d2hlbiB0aGUgc2hhZG93IGhvc3Qgd2FzIG11dGF0ZWQgYmVmb3JlIHRoZSBzbG90IHdhcyBpbnNl
cnRlZCBvciBhZnRlciB0aGUgc2xvdCB3YXMgcmVtb3ZlZCAKLVBBU1Mgc2xvdGNoYW5nZSBldmVu
dCBtdXN0IG5vdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhbiBvcGVuIHNoYWRvdyBy
b290ICBub3QgaW4gYSBkb2N1bWVudCB3aGVuIHRoZSBzaGFkb3cgaG9zdCB3YXMgbXV0YXRlZCBi
ZWZvcmUgdGhlIHNsb3Qgd2FzIGluc2VydGVkIG9yIGFmdGVyIHRoZSBzbG90IHdhcyByZW1vdmVk
IAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZpcmUgb24gYSBzbG90IGVsZW1lbnQg
aW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1bWVudCB3aGVuIHRoZSBz
aGFkb3cgaG9zdCB3YXMgbXV0YXRlZCBiZWZvcmUgdGhlIHNsb3Qgd2FzIGluc2VydGVkIG9yIGFm
dGVyIHRoZSBzbG90IHdhcyByZW1vdmVkIAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmly
ZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgaW4gYSBkb2N1
bWVudCBldmVuIGlmIHRoZSBzbG90IHdhcyByZW1vdmVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBh
c3NpZ25lZCBub2RlcyB3ZXJlIG11dGF0ZWQgCi1QQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBm
aXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAgaW4gYSBk
b2N1bWVudCBldmVuIGlmIHRoZSBzbG90IHdhcyByZW1vdmVkIGltbWVkaWF0ZWx5IGFmdGVyIHRo
ZSBhc3NpZ25lZCBub2RlcyB3ZXJlIG11dGF0ZWQgCi1QQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVz
dCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhbiBvcGVuIHNoYWRvdyByb290ICBub3Qg
aW4gYSBkb2N1bWVudCBldmVuIGlmIHRoZSBzbG90IHdhcyByZW1vdmVkIGltbWVkaWF0ZWx5IGFm
dGVyIHRoZSBhc3NpZ25lZCBub2RlcyB3ZXJlIG11dGF0ZWQgCi1QQVNTIHNsb3RjaGFuZ2UgZXZl
bnQgbXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9v
dCAgbm90IGluIGEgZG9jdW1lbnQgZXZlbiBpZiB0aGUgc2xvdCB3YXMgcmVtb3ZlZCBpbW1lZGlh
dGVseSBhZnRlciB0aGUgYXNzaWduZWQgbm9kZXMgd2VyZSBtdXRhdGVkIAotUEFTUyBzbG90Y2hh
bmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFk
b3cgcm9vdCAgaW4gYSBkb2N1bWVudCB3aGVuIGlubmVySFRNTCBtb2RpZmllcyB0aGUgY2hpbGRy
ZW4gb2YgdGhlIHNoYWRvdyBob3N0IAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBv
biBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3QgIGluIGEgZG9jdW1l
bnQgd2hlbiBpbm5lckhUTUwgbW9kaWZpZXMgdGhlIGNoaWxkcmVuIG9mIHRoZSBzaGFkb3cgaG9z
dCAKLVBBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5z
aWRlIGFuIG9wZW4gc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gaW5uZXJIVE1M
IG1vZGlmaWVzIHRoZSBjaGlsZHJlbiBvZiB0aGUgc2hhZG93IGhvc3QgCi1QQVNTIHNsb3RjaGFu
Z2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFk
b3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBpbm5lckhUTUwgbW9kaWZpZXMgdGhlIGNo
aWxkcmVuIG9mIHRoZSBzaGFkb3cgaG9zdCAKLVBBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZp
cmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3QgIGluIGEgZG9j
dW1lbnQgd2hlbiBuZXN0ZWQgc2xvdHMncyBjb250ZW50cyBjaGFuZ2UgCi1QQVNTIHNsb3RjaGFu
Z2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFk
b3cgcm9vdCAgaW4gYSBkb2N1bWVudCB3aGVuIG5lc3RlZCBzbG90cydzIGNvbnRlbnRzIGNoYW5n
ZSAKLVBBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5z
aWRlIGFuIG9wZW4gc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gbmVzdGVkIHNs
b3RzJ3MgY29udGVudHMgY2hhbmdlIAotUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBv
biBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRv
Y3VtZW50IHdoZW4gbmVzdGVkIHNsb3RzJ3MgY29udGVudHMgY2hhbmdlIAotUEFTUyBzbG90Y2hh
bmdlIGV2ZW50IG11c3QgZmlyZSBhdCB0aGUgZW5kIG9mIGN1cnJlbnQgbWljcm90YXNrIGFmdGVy
IG11dGF0aW9uIG9ic2VydmVycyBhcmUgaW52b2tlZCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9v
dCAgaW4gYSBkb2N1bWVudCB3aGVuIHNsb3RzJ3MgY29udGVudHMgY2hhbmdlIAotUEFTUyBzbG90
Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBhdCB0aGUgZW5kIG9mIGN1cnJlbnQgbWljcm90YXNrIGFm
dGVyIG11dGF0aW9uIG9ic2VydmVycyBhcmUgaW52b2tlZCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93
IHJvb3QgIGluIGEgZG9jdW1lbnQgd2hlbiBzbG90cydzIGNvbnRlbnRzIGNoYW5nZSAKLVBBU1Mg
c2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgYXQgdGhlIGVuZCBvZiBjdXJyZW50IG1pY3JvdGFz
ayBhZnRlciBtdXRhdGlvbiBvYnNlcnZlcnMgYXJlIGludm9rZWQgaW5zaWRlIGFuIG9wZW4gc2hh
ZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gc2xvdHMncyBjb250ZW50cyBjaGFuZ2Ug
Ci1QQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQgb2YgY3VycmVudCBt
aWNyb3Rhc2sgYWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2VkIGluc2lkZSBhIGNs
b3NlZCBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBzbG90cydzIGNvbnRlbnRz
IGNoYW5nZSAKLWhlbGxvCi1oZWxsbwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ct
ZG9tL3Nsb3RjaGFuZ2UtZXZlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjYwMzhmYTgyZTJjMmFlNjk5YWY1NjdjYWRmMmJhY2M1ZmUwNzNjMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vc2xvdGNoYW5nZS1ldmVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjE5ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5TaGFkb3cgRE9NOiBzbG90
Y2hhbmdlIGV2ZW50PC90aXRsZT4KLTxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2Ug
Tml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5
bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0cmVl
TmFtZShtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KQotewotICAgIHJldHVybiAobW9kZSA9PSAn
b3BlbicgPyAnYW4gJyA6ICdhICcpICsgbW9kZSArICcgc2hhZG93IHJvb3QgJwotICAgICAgICAr
IChjb25uZWN0ZWRUb0RvY3VtZW50ID8gJycgOiAnIG5vdCcpICsgJyBpbiBhIGRvY3VtZW50JzsK
LX0KLQotZnVuY3Rpb24gdGVzdEFwcGVuZGluZ1NwYW5Ub1NoYWRvd1Jvb3RXaXRoRGVmYXVsdFNs
b3QobW9kZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkKLXsKLSAgICB2YXIgdGVzdCA9IGFzeW5jX3Rl
c3QoJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgZGVmYXVsdCBzbG90IGVsZW1lbnQg
aW5zaWRlICcKLSAgICAgICAgKyB0cmVlTmFtZShtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KSk7
Ci0KLSAgICB2YXIgaG9zdDsKLSAgICB2YXIgc2xvdDsKLSAgICB2YXIgZXZlbnRDb3VudCA9IDA7
Ci0KLSAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICBob3N0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIGlmIChjb25uZWN0ZWRUb0RvY3VtZW50KQot
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKLQotICAgICAgICB2
YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKLSAgICAg
ICAgc2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLQotICAgICAgICBzbG90
LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAg
ICAgICAgIGlmIChldmVudC5pc0Zha2VFdmVudCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhldmVudC50eXBlLCAnc2xvdGNoYW5nZScsICdzbG90Y2hhbmdlIGV2ZW50XCdz
IHR5cGUgbXVzdCBiZSAic2xvdGNoYW5nZSInKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGV2ZW50LnRhcmdldCwgc2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3MgdGFyZ2V0IG11c3Qg
YmUgdGhlIHNsb3QgZWxlbWVudCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZl
bnQucmVsYXRlZFRhcmdldCwgdW5kZWZpbmVkLCAnc2xvdGNoYW5nZSBtdXN0IG5vdCBzZXQgcmVs
YXRlZFRhcmdldCcpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBldmVudENvdW50Kys7
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xvdCk7Ci0K
LSAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykp
OwotICAgICAgICBob3N0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2InKSk7
Ci0KLSAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudENvdW50LCAwLCAnc2xvdGNoYW5nZSBldmVu
dCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7Ci0gICAgfSk7Ci0KLSAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3VudCwgMSwgJ3Nsb3RjaGFuZ2UgbXVzdCBi
ZSBmaXJlZCBleGFjdGx5IG9uY2UgYWZ0ZXIgdGhlIGFzc2lnbmVkIG5vZGVzIGNoYW5nZWQnKTsK
LQotICAgICAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
JykpOwotICAgICAgICB9KTsKLQotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhldmVudENvdW50LCAyLCAnc2xvdGNoYW5nZSBtdXN0IGJlIGZpcmVkIGV4YWN0bHkg
b25jZSBhZnRlciB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlZCcpOwotCi0gICAgICAgICAgICAg
ICAgaG9zdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnaGVsbG8nKSk7Ci0K
LSAgICAgICAgICAgICAgICB2YXIgZmFrZUV2ZW50ID0gbmV3IEV2ZW50KCdzbG90Y2hhbmdlJyk7
Ci0gICAgICAgICAgICAgICAgZmFrZUV2ZW50LmlzRmFrZUV2ZW50ID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICBzbG90LmRpc3BhdGNoRXZlbnQoZmFrZUV2ZW50KTsKLSAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICB0
ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGV2ZW50Q291bnQsIDMsICdzbG90Y2hhbmdlIG11c3QgYmUgZmlyZWQgZXhhY3RseSBvbmNlIGFm
dGVyIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFuZ2VkJwotICAgICAgICAgICAgICAgICAgICAgICAg
KyAnIGV2ZW50IGlmIHRoZXJlIHdhcyBhIHN5bnRoZXRpYyBzbG90Y2hhbmdlIGV2ZW50IGZpcmVk
Jyk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7Ci0g
ICAgICAgICAgICB9LCAxKTsKLSAgICAgICAgfSwgMSk7Ci0gICAgfSwgMSk7Ci19Ci0KLXRlc3RB
cHBlbmRpbmdTcGFuVG9TaGFkb3dSb290V2l0aERlZmF1bHRTbG90KCdvcGVuJywgdHJ1ZSk7Ci10
ZXN0QXBwZW5kaW5nU3BhblRvU2hhZG93Um9vdFdpdGhEZWZhdWx0U2xvdCgnY2xvc2VkJywgdHJ1
ZSk7Ci10ZXN0QXBwZW5kaW5nU3BhblRvU2hhZG93Um9vdFdpdGhEZWZhdWx0U2xvdCgnb3Blbics
IGZhbHNlKTsKLXRlc3RBcHBlbmRpbmdTcGFuVG9TaGFkb3dSb290V2l0aERlZmF1bHRTbG90KCdj
bG9zZWQnLCBmYWxzZSk7Ci0KLWZ1bmN0aW9uIHRlc3RBcHBlbmRpbmdTcGFuVG9TaGFkb3dSb290
V2l0aE5hbWVkU2xvdChtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KQotewotICAgIHZhciB0ZXN0
ID0gYXN5bmNfdGVzdCgnc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBuYW1lZCBzbG90
IGVsZW1lbnQgaW5zaWRlJwotICAgICAgICArIHRyZWVOYW1lKG1vZGUsIGNvbm5lY3RlZFRvRG9j
dW1lbnQpKTsKLQotICAgIHZhciBob3N0OwotICAgIHZhciBzbG90OwotICAgIHZhciBldmVudENv
dW50ID0gMDsKLQotICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGhvc3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgaWYgKGNvbm5lY3RlZFRvRG9j
dW1lbnQpCi0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwotCi0g
ICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogbW9kZX0p
OwotICAgICAgICBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOwotICAgICAg
ICBzbG90Lm5hbWUgPSAnc29tZVNsb3QnOwotCi0gICAgICAgIHNsb3QuYWRkRXZlbnRMaXN0ZW5l
cignc2xvdGNoYW5nZScsIGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICAgICAgaWYgKGV2ZW50
LmlzRmFrZUV2ZW50KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgdGVz
dC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50
LnR5cGUsICdzbG90Y2hhbmdlJywgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3MgdHlwZSBtdXN0IGJlICJz
bG90Y2hhbmdlIicpOwotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0
LCBzbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBiZSB0aGUgc2xvdCBlbGVt
ZW50Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5yZWxhdGVkVGFyZ2V0
LCB1bmRlZmluZWQsICdzbG90Y2hhbmdlIG11c3Qgbm90IHNldCByZWxhdGVkVGFyZ2V0Jyk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGV2ZW50Q291bnQrKzsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90KTsKLQotICAgICAgICB2YXIgc3Bh
biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgICAgc3Bhbi5zbG90ID0g
J3NvbWVTbG90JzsKLSAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChzcGFuKTsKLQotICAgICAgICB2
YXIgYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2InKTsKLSAgICAgICAgYi5zbG90ID0gJ3Nv
bWVTbG90JzsKLSAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChiKTsKLQotICAgICAgICBhc3NlcnRf
ZXF1YWxzKGV2ZW50Q291bnQsIDAsICdzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGJlIGZpcmVk
IHN5bmNocm9ub3VzbHknKTsKLSAgICB9KTsKLQotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkg
ewotICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhldmVudENvdW50LCAxLCAnc2xvdGNoYW5nZSBtdXN0IGJlIGZpcmVkIGV4YWN0bHkgb25j
ZSBhZnRlciB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlZCcpOwotCi0gICAgICAgICAgICB2YXIg
aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKTsKLSAgICAgICAgICAgIGkuc2xvdCA9ICdz
b21lU2xvdCc7Ci0gICAgICAgICAgICBob3N0LmFwcGVuZENoaWxkKGkpOwotICAgICAgICB9KTsK
LQotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHRlc3Quc3Rl
cChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudENvdW50
LCAyLCAnc2xvdGNoYW5nZSBtdXN0IGJlIGZpcmVkIGV4YWN0bHkgb25jZSBhZnRlciB0aGUgYXNz
aWduZWQgbm9kZXMgY2hhbmdlZCcpOwotCi0gICAgICAgICAgICAgICAgdmFyIGVtID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZW0nKTsKLSAgICAgICAgICAgICAgICBlbS5zbG90ID0gJ3NvbWVT
bG90JzsKLSAgICAgICAgICAgICAgICBob3N0LmFwcGVuZENoaWxkKGVtKTsKLQotICAgICAgICAg
ICAgICAgIHZhciBmYWtlRXZlbnQgPSBuZXcgRXZlbnQoJ3Nsb3RjaGFuZ2UnKTsKLSAgICAgICAg
ICAgICAgICBmYWtlRXZlbnQuaXNGYWtlRXZlbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHNs
b3QuZGlzcGF0Y2hFdmVudChmYWtlRXZlbnQpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHRlc3Quc3RlcChm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3Vu
dCwgMywgJ3Nsb3RjaGFuZ2UgbXVzdCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgYWZ0ZXIgdGhlIGFz
c2lnbmVkIG5vZGVzIGNoYW5nZWQnCi0gICAgICAgICAgICAgICAgICAgICAgICArICcgZXZlbnQg
aWYgdGhlcmUgd2FzIGEgc3ludGhldGljIHNsb3RjaGFuZ2UgZXZlbnQgZmlyZWQnKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKLSAgICAgICAgICAg
IH0sIDEpOwotCi0gICAgICAgIH0sIDEpOwotICAgIH0sIDEpOwotfQotCi10ZXN0QXBwZW5kaW5n
U3BhblRvU2hhZG93Um9vdFdpdGhOYW1lZFNsb3QoJ29wZW4nLCB0cnVlKTsKLXRlc3RBcHBlbmRp
bmdTcGFuVG9TaGFkb3dSb290V2l0aE5hbWVkU2xvdCgnY2xvc2VkJywgdHJ1ZSk7Ci10ZXN0QXBw
ZW5kaW5nU3BhblRvU2hhZG93Um9vdFdpdGhOYW1lZFNsb3QoJ29wZW4nLCBmYWxzZSk7Ci10ZXN0
QXBwZW5kaW5nU3BhblRvU2hhZG93Um9vdFdpdGhOYW1lZFNsb3QoJ2Nsb3NlZCcsIGZhbHNlKTsK
LQotZnVuY3Rpb24gdGVzdFNsb3RjaGFuZ2VEb2VzTm90RmlyZVdoZW5PdGhlclNsb3RzQ2hhbmdl
KG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQpCi17Ci0gICAgdmFyIHRlc3QgPSBhc3luY190ZXN0
KCdzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRl
ICcKLSAgICAgICAgKyB0cmVlTmFtZShtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KQotICAgICAg
ICArICcgd2hlbiBhbm90aGVyIHNsb3RcJ3MgYXNzaWduZWQgbm9kZXMgY2hhbmdlJyk7Ci0KLSAg
ICB2YXIgaG9zdDsKLSAgICB2YXIgZGVmYXVsdFNsb3RFdmVudENvdW50ID0gMDsKLSAgICB2YXIg
bmFtZWRTbG90RXZlbnRDb3VudCA9IDA7Ci0KLSAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewot
ICAgICAgICBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIGlm
IChjb25uZWN0ZWRUb0RvY3VtZW50KQotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChob3N0KTsKLQotICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93
KHsnbW9kZSc6IG1vZGV9KTsKLSAgICAgICAgdmFyIGRlZmF1bHRTbG90ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc2xvdCcpOwotICAgICAgICBkZWZhdWx0U2xvdC5hZGRFdmVudExpc3RlbmVy
KCdzbG90Y2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0LnN0ZXAo
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0
LCBkZWZhdWx0U2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3MgdGFyZ2V0IG11c3QgYmUgdGhlIHNs
b3QgZWxlbWVudCcpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBkZWZhdWx0U2xvdEV2
ZW50Q291bnQrKzsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgdmFyIG5hbWVkU2xvdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICAgICAgbmFtZWRTbG90Lm5hbWUgPSAnc2xv
dE5hbWUnOwotICAgICAgICBuYW1lZFNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScs
IGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgbmFtZWRTbG90LCAn
c2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBiZSB0aGUgc2xvdCBlbGVtZW50Jyk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIG5hbWVkU2xvdEV2ZW50Q291bnQrKzsKLSAgICAg
ICAgfSk7Ci0KLSAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkZWZhdWx0U2xvdCk7Ci0g
ICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobmFtZWRTbG90KTsKLQotICAgICAgICBob3N0
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7Ci0KLSAgICAgICAg
YXNzZXJ0X2VxdWFscyhkZWZhdWx0U2xvdEV2ZW50Q291bnQsIDAsICdzbG90Y2hhbmdlIGV2ZW50
IG11c3Qgbm90IGJlIGZpcmVkIHN5bmNocm9ub3VzbHknKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuYW1lZFNsb3RFdmVudENvdW50LCAwLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBm
aXJlZCBzeW5jaHJvbm91c2x5Jyk7Ci0gICAgfSk7Ci0KLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZGVmYXVsdFNsb3RFdmVudENvdW50LCAxLAotICAgICAgICAgICAgICAgICdzbG90
Y2hhbmdlIG11c3QgYmUgZmlyZWQgZXhhY3RseSBvbmNlIGFmdGVyIHRoZSBhc3NpZ25lZCBub2Rl
cyBjaGFuZ2Ugb24gYSBkZWZhdWx0IHNsb3QnKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bmFtZWRTbG90RXZlbnRDb3VudCwgMCwKLSAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0
IG5vdCBiZSBmaXJlZCBvbiBhIG5hbWVkIHNsb3QgYWZ0ZXIgdGhlIGFzc2lnbmVkIG5vZGVzIGNo
YW5nZSBvbiBhIGRlZmF1bHQgc2xvdCcpOwotCi0gICAgICAgICAgICB2YXIgc3BhbiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgICAgICAgIHNwYW4uc2xvdCA9ICdzbG90
TmFtZSc7Ci0gICAgICAgICAgICBob3N0LmFwcGVuZENoaWxkKHNwYW4pOwotICAgICAgICB9KTsK
LQotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHRlc3Quc3Rl
cChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWZhdWx0U2xv
dEV2ZW50Q291bnQsIDEsCi0gICAgICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIG11c3Qgbm90
IGJlIGZpcmVkIG9uIGEgZGVmYXVsdCBzbG90IGFmdGVyIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFu
Z2Ugb24gYSBuYW1lZCBzbG90Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuYW1l
ZFNsb3RFdmVudENvdW50LCAxLAotICAgICAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0
IGJlIGZpcmVkIGV4YWN0bHkgb25jZSBhZnRlciB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlIG9u
IGEgZGVmYXVsdCBzbG90Jyk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3QuZG9u
ZSgpOwotICAgICAgICB9LCAxKTsKLSAgICB9LCAxKTsKLX0KLQotdGVzdFNsb3RjaGFuZ2VEb2Vz
Tm90RmlyZVdoZW5PdGhlclNsb3RzQ2hhbmdlKCdvcGVuJywgdHJ1ZSk7Ci10ZXN0U2xvdGNoYW5n
ZURvZXNOb3RGaXJlV2hlbk90aGVyU2xvdHNDaGFuZ2UoJ2Nsb3NlZCcsIHRydWUpOwotdGVzdFNs
b3RjaGFuZ2VEb2VzTm90RmlyZVdoZW5PdGhlclNsb3RzQ2hhbmdlKCdvcGVuJywgZmFsc2UpOwot
dGVzdFNsb3RjaGFuZ2VEb2VzTm90RmlyZVdoZW5PdGhlclNsb3RzQ2hhbmdlKCdjbG9zZWQnLCBm
YWxzZSk7Ci0KLWZ1bmN0aW9uIHRlc3RTbG90Y2hhbmdlRG9lc05vdEZpcmVGb3JNdXRhdGlvbkJl
Zm9yZU9yQWZ0ZXJTbG90V2FzUHJlc2VudChtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KQotewot
ICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBmaXJl
IG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSAnCi0gICAgICAgICsgdHJlZU5hbWUobW9kZSwgY29u
bmVjdGVkVG9Eb2N1bWVudCkKLSAgICAgICAgKyAnIHdoZW4gdGhlIHNoYWRvdyBob3N0IHdhcyBt
dXRhdGVkIGJlZm9yZSB0aGUgc2xvdCB3YXMgaW5zZXJ0ZWQgb3IgYWZ0ZXIgdGhlIHNsb3Qgd2Fz
IHJlbW92ZWQnKTsKLQotICAgIHZhciBob3N0OwotICAgIHZhciBzbG90OwotICAgIHZhciBldmVu
dENvdW50ID0gMDsKLQotICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGhvc3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgaWYgKGNvbm5lY3RlZFRv
RG9jdW1lbnQpCi0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwot
Ci0gICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogbW9k
ZX0pOwotICAgICAgICBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOwotICAg
ICAgICBzbG90LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQp
IHsKLSAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhldmVudC50YXJnZXQsIHNsb3QsICdzbG90Y2hhbmdlIGV2ZW50XCdzIHRh
cmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgZXZlbnRDb3VudCsrOwotICAgICAgICB9KTsKLQotICAgICAgICBob3N0LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7Ci0gICAgICAgIHNoYWRvd1Jvb3Qu
YXBwZW5kQ2hpbGQoc2xvdCk7Ci0KLSAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudENvdW50LCAw
LCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7Ci0g
ICAgfSk7Ci0KLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdGVzdC5zdGVw
KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3VudCwgMCwK
LSAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0IG5vdCBiZSBmaXJlZCBvbiBhIHNsb3Qg
ZWxlbWVudCBpZiB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlZCBiZWZvcmUgdGhlIHNsb3Qgd2Fz
IGluc2VydGVkJyk7Ci0gICAgICAgICAgICBob3N0LnJlbW92ZUNoaWxkKGhvc3QuZmlyc3RDaGls
ZCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGV2ZW50Q291bnQsIDEsCi0gICAgICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIG11
c3QgYmUgZmlyZWQgZXhhY3RseSBvbmNlIGFmdGVyIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFuZ2Ug
b24gYSBzbG90IHdoaWxlIHRoZSBzbG90IGVsZW1lbnQgd2FzIGluIHRoZSB0cmVlJyk7Ci0gICAg
ICAgICAgICAgICAgc2xvdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNsb3QpOwotICAgICAgICAg
ICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50Q291bnQsIDEsCi0gICAgICAgICAg
ICAgICAgICAgICdzbG90Y2hhbmdlIG11c3Qgbm90IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50
IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFuZ2VkIGFmdGVyIHRoZSBzbG90IHdhcyByZW1vdmVk
Jyk7Ci0gICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7Ci0gICAgICAgICAgICB9LCAxKTsKLSAg
ICAgICAgfSwgMSk7Ci0gICAgfSwgMSk7Ci19Ci0KLXRlc3RTbG90Y2hhbmdlRG9lc05vdEZpcmVG
b3JNdXRhdGlvbkJlZm9yZU9yQWZ0ZXJTbG90V2FzUHJlc2VudCgnb3BlbicsIHRydWUpOwotdGVz
dFNsb3RjaGFuZ2VEb2VzTm90RmlyZUZvck11dGF0aW9uQmVmb3JlT3JBZnRlclNsb3RXYXNQcmVz
ZW50KCdjbG9zZWQnLCB0cnVlKTsKLXRlc3RTbG90Y2hhbmdlRG9lc05vdEZpcmVGb3JNdXRhdGlv
bkJlZm9yZU9yQWZ0ZXJTbG90V2FzUHJlc2VudCgnb3BlbicsIGZhbHNlKTsKLXRlc3RTbG90Y2hh
bmdlRG9lc05vdEZpcmVGb3JNdXRhdGlvbkJlZm9yZU9yQWZ0ZXJTbG90V2FzUHJlc2VudCgnY2xv
c2VkJywgZmFsc2UpOwotCi1mdW5jdGlvbiB0ZXN0U2xvdGNoYW5nZUZpcmVzT25UcmFuc2llbnRs
eVByZXNlbnRTbG90KG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQpCi17Ci0gICAgdmFyIHRlc3Qg
PSBhc3luY190ZXN0KCdzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVu
dCBpbnNpZGUgJwotICAgICAgICArIHRyZWVOYW1lKG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQp
Ci0gICAgICAgICsgJyBldmVuIGlmIHRoZSBzbG90IHdhcyByZW1vdmVkIGltbWVkaWF0ZWx5IGFm
dGVyIHRoZSBhc3NpZ25lZCBub2RlcyB3ZXJlIG11dGF0ZWQnKTsKLQotICAgIHZhciBob3N0Owot
ICAgIHZhciBzbG90OwotICAgIHZhciBhbm90aGVyU2xvdDsKLSAgICB2YXIgc2xvdEV2ZW50Q291
bnQgPSAwOwotICAgIHZhciBhbm90aGVyU2xvdEV2ZW50Q291bnQgPSAwOwotCi0gICAgdGVzdC5z
dGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgICAgICBpZiAoY29ubmVjdGVkVG9Eb2N1bWVudCkKLSAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLSAgICAgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBob3N0LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7Ci0gICAgICAgIHNsb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7Ci0gICAgICAgIHNsb3QubmFtZSA9ICdzb21lU2xv
dCc7Ci0gICAgICAgIHNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIGZ1bmN0aW9u
IChldmVudCkgewotICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgc2xvdCwgJ3Nsb3RjaGFuZ2UgZXZl
bnRcJ3MgdGFyZ2V0IG11c3QgYmUgdGhlIHNsb3QgZWxlbWVudCcpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBzbG90RXZlbnRDb3VudCsrOwotICAgICAgICB9KTsKLQotICAgICAgICBh
bm90aGVyU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICAgICAgYW5v
dGhlclNsb3QubmFtZSA9ICdzb21lU2xvdCc7Ci0gICAgICAgIGFub3RoZXJTbG90LmFkZEV2ZW50
TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgICAgIHRl
c3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVu
dC50YXJnZXQsIGFub3RoZXJTbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBi
ZSB0aGUgc2xvdCBlbGVtZW50Jyk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFub3Ro
ZXJTbG90RXZlbnRDb3VudCsrOwotICAgICAgICB9KTsKLQotICAgICAgICBzaGFkb3dSb290LmFw
cGVuZENoaWxkKHNsb3QpOwotCi0gICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc3BhbicpOwotICAgICAgICBzcGFuLnNsb3QgPSAnc29tZVNsb3QnOwotICAgICAgICBo
b3N0LmFwcGVuZENoaWxkKHNwYW4pOwotCi0gICAgICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQo
c2xvdCk7Ci0gICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYW5vdGhlclNsb3QpOwotCi0g
ICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAg
ICBzcGFuLnNsb3QgPSAnc29tZVNsb3QnOwotICAgICAgICBob3N0LmFwcGVuZENoaWxkKHNwYW4p
OwotCi0gICAgICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoYW5vdGhlclNsb3QpOwotCi0gICAg
ICAgIGFzc2VydF9lcXVhbHMoc2xvdEV2ZW50Q291bnQsIDAsICdzbG90Y2hhbmdlIGV2ZW50IG11
c3Qgbm90IGJlIGZpcmVkIHN5bmNocm9ub3VzbHknKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhh
bm90aGVyU2xvdEV2ZW50Q291bnQsIDAsICdzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGJlIGZp
cmVkIHN5bmNocm9ub3VzbHknKTsKLSAgICB9KTsKLQotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24g
KCkgewotICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzbG90RXZlbnRDb3VudCwgMSwKLSAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBt
dXN0IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFu
Z2VkIHdoaWxlIHRoZSBzbG90IHdhcyBwcmVzZW50Jyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGFub3RoZXJTbG90RXZlbnRDb3VudCwgMSwKLSAgICAgICAgICAgICAgICAnc2xvdGNoYW5n
ZSBtdXN0IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBj
aGFuZ2VkIHdoaWxlIHRoZSBzbG90IHdhcyBwcmVzZW50Jyk7Ci0gICAgICAgIH0pOwotICAgICAg
ICB0ZXN0LmRvbmUoKTsKLSAgICB9LCAxKTsKLX0KLQotdGVzdFNsb3RjaGFuZ2VGaXJlc09uVHJh
bnNpZW50bHlQcmVzZW50U2xvdCgnb3BlbicsIHRydWUpOwotdGVzdFNsb3RjaGFuZ2VGaXJlc09u
VHJhbnNpZW50bHlQcmVzZW50U2xvdCgnY2xvc2VkJywgdHJ1ZSk7Ci10ZXN0U2xvdGNoYW5nZUZp
cmVzT25UcmFuc2llbnRseVByZXNlbnRTbG90KCdvcGVuJywgZmFsc2UpOwotdGVzdFNsb3RjaGFu
Z2VGaXJlc09uVHJhbnNpZW50bHlQcmVzZW50U2xvdCgnY2xvc2VkJywgZmFsc2UpOwotCi1mdW5j
dGlvbiB0ZXN0U2xvdGNoYW5nZUZpcmVzT25Jbm5lckhUTUwobW9kZSwgY29ubmVjdGVkVG9Eb2N1
bWVudCkKLXsKLSAgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVz
dCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSAnCi0gICAgICAgICsgdHJlZU5hbWUobW9k
ZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkKLSAgICAgICAgKyAnIHdoZW4gaW5uZXJIVE1MIG1vZGlm
aWVzIHRoZSBjaGlsZHJlbiBvZiB0aGUgc2hhZG93IGhvc3QnKTsKLQotICAgIHZhciBob3N0Owot
ICAgIHZhciBkZWZhdWx0U2xvdDsKLSAgICB2YXIgbmFtZWRTbG90OwotICAgIHZhciBkZWZhdWx0
U2xvdEV2ZW50Q291bnQgPSAwOwotICAgIHZhciBuYW1lZFNsb3RFdmVudENvdW50ID0gMDsKLQot
ICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGhvc3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgaWYgKGNvbm5lY3RlZFRvRG9jdW1lbnQpCi0gICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwotCi0gICAgICAgIHZhciBz
aGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogbW9kZX0pOwotICAgICAgICBk
ZWZhdWx0U2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICAgICAgZGVm
YXVsdFNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIGZ1bmN0aW9uIChldmVudCkg
ewotICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgZGVmYXVsdFNsb3QsICdzbG90Y2hhbmdlIGV2ZW50
XCdzIHRhcmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgZGVmYXVsdFNsb3RFdmVudENvdW50Kys7Ci0gICAgICAgIH0pOwotCi0gICAg
ICAgIG5hbWVkU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICAgICAg
bmFtZWRTbG90Lm5hbWUgPSAnc29tZVNsb3QnOwotICAgICAgICBuYW1lZFNsb3QuYWRkRXZlbnRM
aXN0ZW5lcignc2xvdGNoYW5nZScsIGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICAgICAgdGVz
dC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50
LnRhcmdldCwgbmFtZWRTbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBiZSB0
aGUgc2xvdCBlbGVtZW50Jyk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIG5hbWVkU2xv
dEV2ZW50Q291bnQrKzsKLSAgICAgICAgfSk7Ci0gICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hp
bGQobmFtZWRTbG90KTsKLSAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkZWZhdWx0U2xv
dCk7Ci0gICAgICAgIGhvc3QuaW5uZXJIVE1MID0gJ2ZvbyA8Yj5iYXI8L2I+JzsKLQotICAgICAg
ICBhc3NlcnRfZXF1YWxzKGRlZmF1bHRTbG90RXZlbnRDb3VudCwgMCwgJ3Nsb3RjaGFuZ2UgZXZl
bnQgbXVzdCBub3QgYmUgZmlyZWQgc3luY2hyb25vdXNseScpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKG5hbWVkU2xvdEV2ZW50Q291bnQsIDAsICdzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGJl
IGZpcmVkIHN5bmNocm9ub3VzbHknKTsKLSAgICB9KTsKLQotICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24gKCkgewotICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkZWZhdWx0U2xvdEV2ZW50Q291bnQsIDEsCi0gICAgICAgICAgICAgICAgJ3Ns
b3RjaGFuZ2UgbXVzdCBiZSBmaXJlZCBvbiBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQg
bm9kZXMgYXJlIGNoYW5nZWQgYnkgaW5uZXJIVE1MJyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG5hbWVkU2xvdEV2ZW50Q291bnQsIDAsCi0gICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2Ug
bXVzdCBub3QgYmUgZmlyZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVz
IGFyZSBub3QgY2hhbmdlZCBieSBpbm5lckhUTUwnKTsKLSAgICAgICAgICAgIGhvc3QuaW5uZXJI
VE1MID0gJ2Jheic7Ci0gICAgICAgIH0pOwotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhkZWZhdWx0U2xvdEV2ZW50Q291bnQsIDIsCi0gICAgICAgICAgICAgICAg
ICAgICdzbG90Y2hhbmdlIG11c3QgYmUgZmlyZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFz
c2lnbmVkIG5vZGVzIGFyZSBjaGFuZ2VkIGJ5IGlubmVySFRNTCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmFtZWRTbG90RXZlbnRDb3VudCwgMCwKLSAgICAgICAgICAgICAgICAg
ICAgJ3Nsb3RjaGFuZ2UgbXVzdCBub3QgYmUgZmlyZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhl
IGFzc2lnbmVkIG5vZGVzIGFyZSBub3QgY2hhbmdlZCBieSBpbm5lckhUTUwnKTsKLSAgICAgICAg
ICAgICAgICBob3N0LmlubmVySFRNTCA9ICcnOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlZmF1bHRTbG90
RXZlbnRDb3VudCwgMywKLSAgICAgICAgICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIG11c3Qg
YmUgZmlyZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIGFyZSBjaGFu
Z2VkIGJ5IGlubmVySFRNTCcpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5h
bWVkU2xvdEV2ZW50Q291bnQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAnc2xvdGNoYW5n
ZSBtdXN0IG5vdCBiZSBmaXJlZCBvbiBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQgbm9k
ZXMgYXJlIG5vdCBjaGFuZ2VkIGJ5IGlubmVySFRNTCcpOwotICAgICAgICAgICAgICAgICAgICBo
b3N0LmlubmVySFRNTCA9ICc8YiBzbG90PSJzb21lU2xvdCI+Y29udGVudDwvYj4nOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWZhdWx0U2xvdEV2ZW50Q291bnQsIDMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBub3QgYmUgZmlyZWQgb24g
YSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIGFyZSBub3QgY2hhbmdlZCBieSBp
bm5lckhUTUwnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmFtZWRT
bG90RXZlbnRDb3VudCwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2xvdGNoYW5n
ZSBtdXN0IG5vdCBiZSBmaXJlZCBvbiBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQgbm9k
ZXMgYXJlIGNoYW5nZWQgYnkgaW5uZXJIVE1MJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBo
b3N0LmlubmVySFRNTCA9ICcnOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIHRlc3Qgd291bGQgZmFpbCBpbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlv
biBiZWNhdXNlIHdlIGNhbid0IHRlbGwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3
aGV0aGVyIGEgdGV4dCBub2RlIHdhcyByZW1vdmVkIGluIEFsbENoaWxkcmVuUmVtb3ZlZCBvciBu
b3QuCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlZmF1bHRT
bG90RXZlbnRDb3VudCwgMywKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2xv
dGNoYW5nZSBtdXN0IG5vdCBiZSBmaXJlZCBvbiBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWdu
ZWQgbm9kZXMgYXJlIG5vdCBjaGFuZ2VkIGJ5IGlubmVySFRNTCcpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmFtZWRTbG90RXZlbnRDb3VudCwgMiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBub3QgYmUgZmlyZWQg
b24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIGFyZSBjaGFuZ2VkIGJ5IGlu
bmVySFRNTCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0LmRvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSwgMSk7Ci0gICAgICAg
ICAgICAgICAgfSwgMSk7Ci0gICAgICAgICAgICB9LCAxKTsKLSAgICAgICAgfSwgMSk7Ci0gICAg
fSwgMSk7Ci19Ci0KLXRlc3RTbG90Y2hhbmdlRmlyZXNPbklubmVySFRNTCgnb3BlbicsIHRydWUp
OwotdGVzdFNsb3RjaGFuZ2VGaXJlc09uSW5uZXJIVE1MKCdjbG9zZWQnLCB0cnVlKTsKLXRlc3RT
bG90Y2hhbmdlRmlyZXNPbklubmVySFRNTCgnb3BlbicsIGZhbHNlKTsKLXRlc3RTbG90Y2hhbmdl
RmlyZXNPbklubmVySFRNTCgnY2xvc2VkJywgZmFsc2UpOwotCi1mdW5jdGlvbiB0ZXN0U2xvdGNo
YW5nZUZpcmVzV2hlbk5lc3RlZFNsb3RDaGFuZ2UobW9kZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkK
LXsKLSAgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJl
IG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSAnCi0gICAgICAgICsgdHJlZU5hbWUobW9kZSwgY29u
bmVjdGVkVG9Eb2N1bWVudCkKLSAgICAgICAgKyAnIHdoZW4gbmVzdGVkIHNsb3RzXCdzIGNvbnRl
bnRzIGNoYW5nZScpOwotCi0gICAgdmFyIG91dGVySG9zdDsKLSAgICB2YXIgaW5uZXJIb3N0Owot
ICAgIHZhciBvdXRlclNsb3Q7Ci0gICAgdmFyIGlubmVyU2xvdDsKLSAgICB2YXIgb3V0ZXJTbG90
RXZlbnRDb3VudCA9IDA7Ci0gICAgdmFyIGlubmVyU2xvdEV2ZW50Q291bnQgPSAwOwotCi0gICAg
dGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgb3V0ZXJIb3N0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIGlmIChjb25uZWN0ZWRUb0RvY3VtZW50KQotICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdXRlckhvc3QpOwotCi0gICAgICAg
IHZhciBvdXRlclNoYWRvdyA9IG91dGVySG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogbW9kZX0p
OwotICAgICAgICBvdXRlclNoYWRvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzcGFuJykpOwotICAgICAgICBvdXRlclNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
bG90Jyk7Ci0gICAgICAgIG91dGVyU2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywg
ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsK
LSAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhldmVudC50YXJnZXQsIG91dGVyU2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3Mg
dGFyZ2V0IG11c3QgYmUgdGhlIHNsb3QgZWxlbWVudCcpOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICBvdXRlclNsb3RFdmVudENvdW50Kys7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGlu
bmVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBpbm5lckhv
c3QuYXBwZW5kQ2hpbGQob3V0ZXJTbG90KTsKLSAgICAgICAgb3V0ZXJTaGFkb3cuYXBwZW5kQ2hp
bGQoaW5uZXJIb3N0KTsKLQotICAgICAgICB2YXIgaW5uZXJTaGFkb3cgPSBpbm5lckhvc3QuYXR0
YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKLSAgICAgICAgaW5uZXJTaGFkb3cuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKLSAgICAgICAgaW5uZXJTbG90ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOwotICAgICAgICBpbm5lclNsb3QuYWRkRXZl
bnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICAgICAg
ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBpbm5lclNs
b3QsICdzbG90Y2hhbmdlIGV2ZW50XCdzIHRhcmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQn
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaW5uZXJTbG90RXZlbnRDb3VudCsrOwot
ICAgICAgICB9KTsKLSAgICAgICAgaW5uZXJTaGFkb3cuYXBwZW5kQ2hpbGQoaW5uZXJTbG90KTsK
LQotICAgICAgICBvdXRlckhvc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c3BhbicpKTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKGlubmVyU2xvdEV2ZW50Q291bnQsIDAs
ICdzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGJlIGZpcmVkIHN5bmNocm9ub3VzbHknKTsKLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyhvdXRlclNsb3RFdmVudENvdW50LCAwLCAnc2xvdGNoYW5nZSBl
dmVudCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7Ci0gICAgfSk7Ci0KLSAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoaW5uZXJTbG90RXZlbnRDb3VudCwgMSwKLSAgICAg
ICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50IGlm
IHRoZSBhc3NpZ25lZCBub2RlcyBjaGFuZ2VkJyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KG91dGVyU2xvdEV2ZW50Q291bnQsIDEsCi0gICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVz
dCBiZSBmaXJlZCBvbiBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQgbm9kZXMgb2YgYW4g
aW5uZXIgc2xvdCBjaGFuZ2VkJyk7Ci0gICAgICAgIH0pOwotICAgICAgICB0ZXN0LmRvbmUoKTsK
LSAgICB9LCAxKTsKLX0KLQotdGVzdFNsb3RjaGFuZ2VGaXJlc1doZW5OZXN0ZWRTbG90Q2hhbmdl
KCdvcGVuJywgdHJ1ZSk7Ci10ZXN0U2xvdGNoYW5nZUZpcmVzV2hlbk5lc3RlZFNsb3RDaGFuZ2Uo
J2Nsb3NlZCcsIHRydWUpOwotdGVzdFNsb3RjaGFuZ2VGaXJlc1doZW5OZXN0ZWRTbG90Q2hhbmdl
KCdvcGVuJywgZmFsc2UpOwotdGVzdFNsb3RjaGFuZ2VGaXJlc1doZW5OZXN0ZWRTbG90Q2hhbmdl
KCdjbG9zZWQnLCBmYWxzZSk7Ci0KLWZ1bmN0aW9uIHRlc3RTbG90Y2hhbmdlRmlyZXNBdEVuZE9m
TWljcm9UYXNrKG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQpCi17Ci0gICAgdmFyIHRlc3QgPSBh
c3luY190ZXN0KCdzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBhdCB0aGUgZW5kIG9mIGN1cnJl
bnQgbWljcm90YXNrIGFmdGVyIG11dGF0aW9uIG9ic2VydmVycyBhcmUgaW52b2tlZCBpbnNpZGUg
JwotICAgICAgICArIHRyZWVOYW1lKG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQpICsgJyB3aGVu
IHNsb3RzXCdzIGNvbnRlbnRzIGNoYW5nZScpOwotCi0gICAgdmFyIG91dGVySG9zdDsKLSAgICB2
YXIgaW5uZXJIb3N0OwotICAgIHZhciBvdXRlclNsb3Q7Ci0gICAgdmFyIGlubmVyU2xvdDsKLSAg
ICB2YXIgc2xvdGNoYW5nZUV2ZW50cyA9IFtdOwotCi0gICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgb3V0ZXJIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0g
ICAgICAgIGlmIChjb25uZWN0ZWRUb0RvY3VtZW50KQotICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChvdXRlckhvc3QpOwotCi0gICAgICAgIHZhciBvdXRlclNoYWRvdyA9IG91
dGVySG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogbW9kZX0pOwotICAgICAgICBvdXRlclNoYWRv
dy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwotICAgICAgICBv
dXRlclNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7Ci0gICAgICAgIG91dGVy
U2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7Ci0g
ICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgICAgIHRlc3Quc3Rl
cChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC50YXJn
ZXQsIG91dGVyU2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3MgdGFyZ2V0IG11c3QgYmUgdGhlIHNs
b3QgZWxlbWVudCcpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBzbG90Y2hhbmdlRXZl
bnRzLnB1c2goJ291dGVyJyk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGlubmVySG9zdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBpbm5lckhvc3QuYXBwZW5kQ2hp
bGQob3V0ZXJTbG90KTsKLSAgICAgICAgb3V0ZXJTaGFkb3cuYXBwZW5kQ2hpbGQoaW5uZXJIb3N0
KTsKLQotICAgICAgICB2YXIgaW5uZXJTaGFkb3cgPSBpbm5lckhvc3QuYXR0YWNoU2hhZG93KHsn
bW9kZSc6IG1vZGV9KTsKLSAgICAgICAgaW5uZXJTaGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc3BhbicpKTsKLSAgICAgICAgaW5uZXJTbG90ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc2xvdCcpOwotICAgICAgICBpbm5lclNsb3QuYWRkRXZlbnRMaXN0ZW5lcign
c2xvdGNoYW5nZScsIGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICAgICAgZXZlbnQuc3RvcFBy
b3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBpbm5lclNsb3QsICdzbG90Y2hh
bmdlIGV2ZW50XCdzIHRhcmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgc2xvdGNoYW5nZUV2ZW50cy5wdXNoKCdpbm5lcicpOwotICAg
ICAgICB9KTsKLSAgICAgICAgaW5uZXJTaGFkb3cuYXBwZW5kQ2hpbGQoaW5uZXJTbG90KTsKLQot
ICAgICAgICBvdXRlckhvc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpKTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKHNsb3RjaGFuZ2VFdmVudHMubGVuZ3RoLCAw
LCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7Ci0g
ICAgfSk7Ci0KLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotCi0gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKCkgewotICAgICAgICB0ZXN0
LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzbG90Y2hhbmdl
RXZlbnRzLmxlbmd0aCwgMCwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgYmVm
b3JlIG11dGF0aW9uIHJlY29yZHMgYXJlIGRlbGl2ZXJlZCcpOwotICAgICAgICB9KTsKLSAgICAg
ICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ2JhcicpOwotICAgICAgICBpbm5lckhv
c3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKLSAgICB9KS5v
YnNlcnZlKGVsZW1lbnQsIHthdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQn
XX0pOwotCi0gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKCkgewotICAgICAgICB0
ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhz
bG90Y2hhbmdlRXZlbnRzLCBbJ291dGVyJywgJ2lubmVyJ10sICdzbG90Y2hhbmdlIGV2ZW50IG11
c3QgYmUgZmlyZWQgZHVyaW5nIGEgc2luZ2xlIGNvbXBvdW5kIG1pY3JvdGFzaycpOwotICAgICAg
ICB9KTsKLSAgICB9KS5vYnNlcnZlKGVsZW1lbnQsIHthdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1
dGVGaWx0ZXI6IFsndGl0bGUnXX0pOwotCi0gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lkJywg
J2ZvbycpOwotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHRlc3Quc3Rl
cChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RjaGFu
Z2VFdmVudHMsIFsnb3V0ZXInLCAnaW5uZXInLCAnaW5uZXInXSwKLSAgICAgICAgICAgICAgICAn
YSBkaXN0aW5jdCBzbG90Y2hhbmdlIGV2ZW50IG11c3QgYmUgZW5xdWV1ZWQgZm9yIGNoYW5nZXMg
bWFkZSBkdXJpbmcgYSBtdXRhdGlvbiBvYnNlcnZlciBkZWxpdmVyeScpOwotICAgICAgICB9KTsK
LSAgICAgICAgdGVzdC5kb25lKCk7Ci0gICAgfSwgMCk7Ci19Ci0KLXRlc3RTbG90Y2hhbmdlRmly
ZXNBdEVuZE9mTWljcm9UYXNrKCdvcGVuJywgdHJ1ZSk7Ci10ZXN0U2xvdGNoYW5nZUZpcmVzQXRF
bmRPZk1pY3JvVGFzaygnY2xvc2VkJywgdHJ1ZSk7Ci10ZXN0U2xvdGNoYW5nZUZpcmVzQXRFbmRP
Zk1pY3JvVGFzaygnb3BlbicsIGZhbHNlKTsKLXRlc3RTbG90Y2hhbmdlRmlyZXNBdEVuZE9mTWlj
cm9UYXNrKCdjbG9zZWQnLCBmYWxzZSk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
aGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1hZG9wdE5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0RvY3Vt
ZW50LXByb3RvdHlwZS1hZG9wdE5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNzNhMmVi
OTgxZjlhOGFmNTk4N2IxMzBiY2VkN2E0ODU2NDk2MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRG9jdW1l
bnQtcHJvdG90eXBlLWFkb3B0Tm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BB
U1MgYWRvcHROb2RlIG9uIGEgc2hhZG93IHJvb3QgaW4gb3BlbiBtb2RlIG11c3QgdGhyb3cgYSBI
aWVyYXJjaHlSZXF1ZXN0RXJyb3IgCitQQVNTIGFkb3B0Tm9kZSBvbiBhIHNoYWRvdyByb290IGlu
IGNsb3NlZCBtb2RlIG11c3QgdGhyb3cgYSBIaWVyYXJjaHlSZXF1ZXN0RXJyb3IgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93
LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtYWRvcHROb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBl
LWFkb3B0Tm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3NDAwZjgzZjBjZTc3NWZhMGFhZDEyNTgzNDJh
ZTEwZTFmOGMwYjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWFkb3B0Tm9k
ZS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5ET00gYW5kIFNoYWRvdyBET006IERvY3VtZW50LnByb3RvdHlwZS5hZG9wdE5vZGU8
L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJt
YWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlRo
ZSBhZG9wdE5vZGUobm9kZSkgbWV0aG9kIG11c3QgdGhyb3cgYSBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3IgZXhjZXB0aW9uIGlmIG5vZGUgaXMgYSBzaGFkb3cgcm9vdC4iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1kb2N1bWVudC1hZG9wdG5v
ZGUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3RBZG9wdE5vZGUobW9kZSkgeworICAgIHRlc3Qo
ZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgbmV3RG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyh7J25h
bWUnOiAnSGllcmFyY2h5UmVxdWVzdEVycm9yJ30sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAg
ICB2YXIgc2hhZG93Um9vdCA9IGVsZW1lbnQuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7Cisg
ICAgICAgICAgICBuZXdEb2N1bWVudC5hZG9wdE5vZGUoc2hhZG93Um9vdCk7CisgICAgICAgIH0p
OworICAgIH0sICdhZG9wdE5vZGUgb24gYSBzaGFkb3cgcm9vdCBpbiAnICsgbW9kZSArICcgbW9k
ZSBtdXN0IHRocm93IGEgSGllcmFyY2h5UmVxdWVzdEVycm9yJyk7Cit9CisKK3Rlc3RBZG9wdE5v
ZGUoJ29wZW4nKTsKK3Rlc3RBZG9wdE5vZGUoJ2Nsb3NlZCcpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtY3VycmVudFNjcmlwdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWN1cnJlbnRTY3JpcHQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYzNWVjN2UxNmY4OTg2YmI5MTI0ZTA4OTE4YzI0NDMyZThlNWU2YTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBlLWN1cnJlbnRTY3JpcHQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjAgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyNDIyOiBFcnJvcjog
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgbnVsbCBidXQgZ290IEVsZW1lbnQgbm9kZSA8c2NyaXB0
IGlkPSJvdXRlclNjcmlwdEVsZW1lbnQiPgorCit2YXIgb3V0ZXJTY3JpcHRFbGVtZW50IC4uLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDI0MjI6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxzY3JpcHQgaWQ9Im91dGVyU2NyaXB0RWxlbWVu
dCI+CisKK3ZhciBvdXRlclNjcmlwdEVsZW1lbnQgLi4uCisKK0hhcm5lc3MgRXJyb3IgKEZBSUwp
LCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBF
bGVtZW50IG5vZGUgPHNjcmlwdCBpZD0ib3V0ZXJTY3JpcHRFbGVtZW50Ij4KKwordmFyIG91dGVy
U2NyaXB0RWxlbWVudCAuLi4KKworUEFTUyBkb2N1bWVudC5jdXJyZW50U2NyaXB0IG11c3Qgbm90
IHRvIGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IGluIGEgc2hhZG93IHRyZWUgaW4gb3BlbiBt
b2RlIAorUEFTUyBkb2N1bWVudC5jdXJyZW50U2NyaXB0IG11c3Qgbm90IHRvIGJlIHNldCB0byBh
IHNjcmlwdCBlbGVtZW50IGluIGEgc2hhZG93IHRyZWUgaW4gY2xvc2VkIG1vZGUgCitQQVNTIGRv
Y3VtZW50LmN1cnJlbnRTY3JpcHQgbXVzdCBiZSBzZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0
IGxvYWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhIGRvY3VtZW50IHRyZWUgCitQQVNTIGRvY3Vt
ZW50LmN1cnJlbnRTY3JpcHQgbXVzdCBiZSBzZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0IGxv
YWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhIGRvY3VtZW50IHRyZWUgCitQQVNTIGRvY3VtZW50
LmN1cnJlbnRTY3JpcHQgbXVzdCBub3QgYmUgc2V0IHRvIGEgc2NyaXB0IGVsZW1lbnQgdGhhdCBs
b2FkcyBhbiBleHRlcm5hbCBzY3JpcHQgaW4gYW4gb3BlbiBzaGFkb3cgdHJlZSAKK1BBU1MgZG9j
dW1lbnQuY3VycmVudFNjcmlwdCBtdXN0IG5vdCBiZSBzZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0
aGF0IGxvYWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhIGNsb3NlZCBzaGFkb3cgdHJlZSAKK1BB
U1MgZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50
IHRoYXQgbG9hZHMgYW4gZXh0ZXJuYWwgc2NyaXB0IHRoYXQgd2FzIGluIGFuIG9wZW4gc2hhZG93
IHRyZWUgYW5kIHRoZW4gcmVtb3ZlZCAKK1BBU1MgZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0
IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9hZHMgYW4gZXh0ZXJuYWwgc2NyaXB0
IHRoYXQgd2FzIGluIGEgY2xvc2VkIHNoYWRvdyB0cmVlIGFuZCB0aGVuIHJlbW92ZWQgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hh
ZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtY3VycmVudFNjcmlwdC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0RvY3VtZW50LXBy
b3RvdHlwZS1jdXJyZW50U2NyaXB0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmYxMDBjMDJhM2U0ZjQ5YjNh
MWFiNzEzYzNiMGY1YjdhOGQwZmEwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5
cGUtY3VycmVudFNjcmlwdC5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5IVE1MOiBEb2N1bWVudC5wcm90b3R5cGUuY3VycmVudFNj
cmlwdDwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhy
ZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iSWYgdGhlIHNjcmlwdCBlbGVtZW50IGlzIGluIGEgZG9jdW1lbnQsIHRoZW4gc2V0IHRoZSBz
Y3JpcHQgZWxlbWVudCdzIG5vZGUgZG9jdW1lbnQncyBjdXJyZW50U2NyaXB0IGF0dHJpYnV0ZSB0
byB0aGUgc2NyaXB0IGVsZW1lbnQuIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjZXhlY3V0ZS10aGUt
c2NyaXB0LWJsb2NrIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+Cis8c2NyaXB0IGlkPSJvdXRlclNjcmlwdEVsZW1lbnQiPgorCit2YXIgb3V0
ZXJTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdDsKKworZnVuY3Rpb24gdGVz
dElubGluZVNjcmlwdChtb2RlKQoreworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICB2YXIgc2hh
ZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7CisgICAgICAgIHZhciBz
Y3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgICAg
IHNjcmlwdEVsZW1lbnQudGV4dENvbnRlbnQgPSAnYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5jdXJy
ZW50U2NyaXB0LCBudWxsKSc7CisgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2NyaXB0
RWxlbWVudCk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5jdXJyZW50U2NyaXB0
LCBvdXRlclNjcmlwdEVsZW1lbnQsCisgICAgICAgICAgICAnZG9jdW1lbnQuY3VycmVudFNjcmlw
dCBtdXN0IGJlIHNldCB0byB0aGUgY3VycmVudGx5IGV4Y3VzaW5nIHNjcmlwdCBlbGVtZW50IGlu
IGEgZG9jdW1lbnQgdHJlZSBiZWZvcmUgZXhlY3V0aW5nIGEgc2NyaXB0IGluIGEgc2hhZG93IHRy
ZWUnKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhkb2N1bWVudC5jdXJyZW50U2NyaXB0LCBvdXRlclNjcmlwdEVsZW1lbnQs
CisgICAgICAgICAgICAnZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0IGJlIHNldCB0byB0aGUg
Y3VycmVudGx5IGV4Y3VzaW5nIHNjcmlwdCBlbGVtZW50IGluIGEgZG9jdW1lbnQgdHJlZSBhZnRl
ciBleGVjdXRpbmcgYSBzY3JpcHQgaW4gYSBzaGFkb3cgdHJlZScpOworCisgICAgfSwgJ2RvY3Vt
ZW50LmN1cnJlbnRTY3JpcHQgbXVzdCBub3QgdG8gYmUgc2V0IHRvIGEgc2NyaXB0IGVsZW1lbnQg
aW4gYSBzaGFkb3cgdHJlZSBpbiAnICsgbW9kZSArICcgbW9kZScpOworfQorCit0ZXN0SW5saW5l
U2NyaXB0KCdvcGVuJyk7Cit0ZXN0SW5saW5lU2NyaXB0KCdjbG9zZWQnKTsKKwordmFyIGV4ZWN1
dGVFeHRlcm5hbFNjcmlwdCA9IG51bGw7Cit2YXIgdGVzdGVkU2NyaXB0RWxlbWVudCA9IG51bGw7
CitmdW5jdGlvbiBleGVjdXRlTmV4dFRlc3QoKQoreworICAgIHZhciB0ZXN0Q2FzZSA9IGFzeW5j
U2NyaXB0VGVzdHMuc2hpZnQoKTsKKyAgICB2YXIgbW9kZSA9IHRlc3RDYXNlLm1vZGU7CisgICAg
aWYgKCF0ZXN0Q2FzZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdENhc2UudGVzdC5zdGVw
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGVzdGVkU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICAgICB0ZXN0ZWRTY3JpcHRFbGVtZW50LnNyYyA9
ICdyZXNvdXJjZXMvRG9jdW1lbnQtcHJvdG90eXBlLWN1cnJlbnRTY3JpcHQtaGVscGVyLmpzJzsK
KworICAgICAgICBpZiAobW9kZSAhPT0gbnVsbCkgeworICAgICAgICAgICAgdmFyIGhvc3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290
ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6IG1vZGV9KTsKKyAgICAgICAgICAgIHNoYWRvd1Jv
b3QuYXBwZW5kQ2hpbGQodGVzdGVkU2NyaXB0RWxlbWVudCk7CisgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0ZWRTY3JpcHRFbGVtZW50KTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmICh0ZXN0Q2FzZS5yZW1vdmUpCisgICAgICAgICAgICB0ZXN0ZWRTY3Jp
cHRFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVzdGVkU2NyaXB0RWxlbWVudCk7Cisg
ICAgfSk7CisKKyAgICBleGVjdXRlRXh0ZXJuYWxTY3JpcHQgPSBmdW5jdGlvbiAoKSB7CisgICAg
ICAgIHRlc3RDYXNlLnRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQsIHRlc3RDYXNlLmV4cGVjdGVkKCkpOworICAg
ICAgICB9KTsKKyAgICAgICAgdGVzdENhc2UudGVzdC5kb25lKCk7CisgICAgICAgIHNldFRpbWVv
dXQoZXhlY3V0ZU5leHRUZXN0LCAxKTsKKyAgICB9Cit9CisKK3ZhciBhc3luY1NjcmlwdFRlc3Rz
ID0gWworICAgIHsKKyAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQuY3VycmVudFNj
cmlwdCBtdXN0IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9hZHMgYW4gZXh0ZXJu
YWwgc2NyaXB0IGluIGEgZG9jdW1lbnQgdHJlZScpLAorICAgICAgICBtb2RlOiBudWxsLCByZW1v
dmU6IGZhbHNlLCBleHBlY3RlZDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdGVkU2NyaXB0RWxl
bWVudDsgfX0sCisgICAgeworICAgICAgICB0ZXN0OiBhc3luY190ZXN0KCdkb2N1bWVudC5jdXJy
ZW50U2NyaXB0IG11c3QgYmUgc2V0IHRvIGEgc2NyaXB0IGVsZW1lbnQgdGhhdCBsb2FkcyBhbiBl
eHRlcm5hbCBzY3JpcHQgaW4gYSBkb2N1bWVudCB0cmVlJyksCisgICAgICAgIG1vZGU6IG51bGws
IHJlbW92ZTogdHJ1ZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3RlZFNjcmlw
dEVsZW1lbnQ7IH19LAorICAgIHsKKyAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQu
Y3VycmVudFNjcmlwdCBtdXN0IG5vdCBiZSBzZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0IGxv
YWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhbiBvcGVuIHNoYWRvdyB0cmVlJyksCisgICAgICAg
IG1vZGU6ICdvcGVuJywgcmVtb3ZlOiBmYWxzZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgpIHsgcmV0
dXJuIG51bGw7IH19LAorICAgIHsKKyAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQu
Y3VycmVudFNjcmlwdCBtdXN0IG5vdCBiZSBzZXQgdG8gYSBzY3JpcHQgZWxlbWVudCB0aGF0IGxv
YWRzIGFuIGV4dGVybmFsIHNjcmlwdCBpbiBhIGNsb3NlZCBzaGFkb3cgdHJlZScpLAorICAgICAg
ICBtb2RlOiAnY2xvc2VkJywgcmVtb3ZlOiBmYWxzZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgpIHsg
cmV0dXJuIG51bGw7IH19LAorICAgIHsKKyAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1l
bnQuY3VycmVudFNjcmlwdCBtdXN0IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9h
ZHMgYW4gZXh0ZXJuYWwgc2NyaXB0IHRoYXQgd2FzIGluIGFuIG9wZW4gc2hhZG93IHRyZWUgYW5k
IHRoZW4gcmVtb3ZlZCcpLAorICAgICAgICBtb2RlOiAnb3BlbicsIHJlbW92ZTogdHJ1ZSwgZXhw
ZWN0ZWQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3RlZFNjcmlwdEVsZW1lbnQ7IH19LAorICAg
IHsKKyAgICAgICAgdGVzdDogYXN5bmNfdGVzdCgnZG9jdW1lbnQuY3VycmVudFNjcmlwdCBtdXN0
IGJlIHNldCB0byBhIHNjcmlwdCBlbGVtZW50IHRoYXQgbG9hZHMgYW4gZXh0ZXJuYWwgc2NyaXB0
IHRoYXQgd2FzIGluIGEgY2xvc2VkIHNoYWRvdyB0cmVlIGFuZCB0aGVuIHJlbW92ZWQnKSwKKyAg
ICAgICAgbW9kZTogJ2Nsb3NlZCcsIHJlbW92ZTogdHJ1ZSwgZXhwZWN0ZWQ6IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIHRlc3RlZFNjcmlwdEVsZW1lbnQ7IH19LAorXTsKKworZXhlY3V0ZU5leHRUZXN0
KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0RvY3VtZW50LXBy
b3RvdHlwZS1pbXBvcnROb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtaW1wb3J0
Tm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTEzNDU5NGQyZmY2ZTMzOWVjMTU3NmYyZTRm
MzYzMGExMTg0ZDY0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtaW1wb3J0
Tm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgaW1wb3J0Tm9kZSBvbiBh
IHNoYWRvdyByb290IGluIG9wZW4gbW9kZSBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3Ig
CitQQVNTIGltcG9ydE5vZGUgb24gYSBzaGFkb3cgcm9vdCBpbiBjbG9zZWQgbW9kZSBtdXN0IHRo
cm93IGEgTm90U3VwcG9ydGVkRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUt
aW1wb3J0Tm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zaGFkb3ctZG9tL0RvY3VtZW50LXByb3RvdHlwZS1pbXBvcnROb2RlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzAwYzM3NDhlMTM4NTk0N2M5YjIwZjkzM2E0YzkxNjgzNjNjOTY0NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hh
ZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtaW1wb3J0Tm9kZS5odG1sCkBAIC0wLDAgKzEsMzEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5ET00gYW5kIFNoYWRv
dyBET006IERvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlPC90aXRsZT4KKzxtZXRhIG5hbWU9
ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5v
cmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJUaGUgaW1wb3J0Tm9kZShub2RlLCBk
ZWVwKSBtZXRob2QgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIGV4Y2VwdGlvbiBpZiBu
b2RlIGlzIGEgc2hhZG93IHJvb3QuIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
b20uc3BlYy53aGF0d2cub3JnLyNkb20tZG9jdW1lbnQtaW1wb3J0bm9kZSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKwor
ZnVuY3Rpb24gdGVzdEltcG9ydE5vZGUobW9kZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgewor
ICAgICAgICB2YXIgbmV3RG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVI
VE1MRG9jdW1lbnQoKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnTm90U3VwcG9y
dGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0g
ZWxlbWVudC5hdHRhY2hTaGFkb3coe21vZGU6IG1vZGV9KTsKKyAgICAgICAgICAgIG5ld0RvY3Vt
ZW50LmltcG9ydE5vZGUoc2hhZG93Um9vdCk7CisgICAgICAgIH0pOworICAgIH0sICdpbXBvcnRO
b2RlIG9uIGEgc2hhZG93IHJvb3QgaW4gJyArIG1vZGUgKyAnIG1vZGUgbXVzdCB0aHJvdyBhIE5v
dFN1cHBvcnRlZEVycm9yJyk7Cit9CisKK3Rlc3RJbXBvcnROb2RlKCdvcGVuJyk7Cit0ZXN0SW1w
b3J0Tm9kZSgnY2xvc2VkJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ct
ZG9tL0VsZW1lbnQtaW50ZXJmYWNlLWF0dGFjaFNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRWxlbWVudC1p
bnRlcmZhY2UtYXR0YWNoU2hhZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDAwZDMwZjRj
ODM5ZjllYTcwNTQ3MzIyMjE5MDI1OWY5NWJjNTY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0VsZW1lbnQt
aW50ZXJmYWNlLWF0dGFjaFNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BB
U1MgQ2hlY2sgdGhlIGV4aXN0ZW5jZSBvZiBFbGVtZW50LmF0dGFjaFNoYWRvdyAKK1BBU1MgTm9k
ZXMgb3RoZXIgdGhhbiBFbGVtZW50IHNob3VsZCBub3QgaGF2ZSBhdHRhY2hTaGFkb3cgCitQQVNT
IEVsZW1lbnQuYXR0YWNoU2hhZG93IG11c3QgdGhyb3cgYSBUeXBlRXJyb3IgaWYgbW9kZSBpcyBu
b3QgIm9wZW4iIG9yICJjbG9zZWQiIAorUEFTUyBFbGVtZW50LmF0dGFjaFNoYWRvdyBtdXN0IGNy
ZWF0ZSBhbiBpbnN0YW5jZSBvZiBTaGFkb3dSb290IAorUEFTUyBFbGVtZW50LmF0dGFjaFNoYWRv
dyBtdXN0IHRocm93IGEgSW52YWxpZFN0YXRlRXJyb3IgaWYgdGhlIGNvbnRleHQgb2JqZWN0IGFs
cmVhZHkgaG9zdHMgYSBzaGFkb3cgdHJlZSAKK1BBU1MgRWxlbWVudC5hdHRhY2hTaGFkb3cgbXVz
dCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIGZvciBidXR0b24sIGRldGFpbHMsIGlucHV0LCBt
YXJxdWVlLCBtZXRlciwgcHJvZ3Jlc3MsIHNlbGVjdCwgdGV4dGFyZWEsIGFuZCBrZXlnZW4gZWxl
bWVudHMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFjZS1hdHRhY2hTaGFkb3cuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9F
bGVtZW50LWludGVyZmFjZS1hdHRhY2hTaGFkb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzk5NjQ2ZmY1
YjYyYmM0ZjU5YjI3MWY0ZmY2MGY1NzhhZmI0NmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0VsZW1lbnQt
aW50ZXJmYWNlLWF0dGFjaFNoYWRvdy5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TaGFkb3cgRE9NOiBBdHRhY2hpbmcgYSBTaGFk
b3dSb290PC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIg
aHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJFbGVtZW50LnByb3RvdHlwZS5hdHRhY2hTaGFkb3cgc2hvdWxkIGNyZWF0ZSBhbiBpbnN0
YW5jZSBvZiBTaGFkb3dSb290Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3dlYmNvbXBvbmVudHMvc3BlYy9zaGFkb3cvI3dpZGwtRWxlbWVudC1hdHRhY2hT
aGFkb3ctU2hhZG93Um9vdC1TaGFkb3dSb290SW5pdC1zaGFkb3dSb290SW5pdERpY3QiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3Jp
cHQ+CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGFzc2VydF90cnVlKCdhdHRhY2hTaGFkb3cn
IGluIEVsZW1lbnQucHJvdG90eXBlLCAnRWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93IG11
c3QgZXhpc3QnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZihkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKS5hdHRhY2hTaGFkb3cpLCAnZnVuY3Rpb24nLCAnQW4gaW5zdGFuY2Ugb2YgZGl2
IG11c3QgaGF2ZSBhdHRhY2hTaGFkb3cgd2hpY2ggaXMgYSBmdW5jdGlvbicpOworfSwgJ0NoZWNr
IHRoZSBleGlzdGVuY2Ugb2YgRWxlbWVudC5hdHRhY2hTaGFkb3cnKTsKKwordGVzdChmdW5jdGlv
biAoKSB7CisgICAgYXNzZXJ0X2ZhbHNlKCdhdHRhY2hTaGFkb3cnIGluIE5vZGUucHJvdG90eXBl
LCAnTm9kZS5wcm90b3R5cGUuYXR0YWNoU2hhZG93IG11c3Qgbm90IGV4aXN0Jyk7CisgICAgYXNz
ZXJ0X2ZhbHNlKCdhdHRhY2hTaGFkb3cnIGluIENoYXJhY3RlckRhdGEucHJvdG90eXBlLCAnQ2hh
cmFjdGVyRGF0YS5wcm90b3R5cGUuYXR0YWNoU2hhZG93IG11c3Qgbm90IGV4aXN0Jyk7CisgICAg
YXNzZXJ0X2ZhbHNlKCdhdHRhY2hTaGFkb3cnIGluIENvbW1lbnQucHJvdG90eXBlLCAnQ29tbWVu
dC5wcm90b3R5cGUuYXR0YWNoU2hhZG93IG11c3Qgbm90IGV4aXN0Jyk7CisgICAgYXNzZXJ0X2Vx
dWFscyh0eXBlb2YoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgnJykuYXR0YWNoU2hhZG93KSwgJ3Vu
ZGVmaW5lZCcsICdBbiBpbnN0YW5jZSBvZiBjb21tZW50IG11c3Qgbm90IGhhdmUgYXR0YWNoU2hh
ZG93Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdhdHRhY2hTaGFkb3cnIGluIERvY3VtZW50LnByb3Rv
dHlwZSwgJ0RvY3VtZW50LnByb3RvdHlwZS5hdHRhY2hTaGFkb3cgbXVzdCBub3QgZXhpc3QnKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZihkb2N1bWVudC5hdHRhY2hTaGFkb3cpLCAndW5kZWZp
bmVkJywgJ0FuIGluc3RhbmNlIG9mIGRvY3VtZW50IG11c3Qgbm90IGhhdmUgYXR0YWNoU2hhZG93
IHdoaWNoIGlzIGEgZnVuY3Rpb24nKTsKKyAgICBhc3NlcnRfZmFsc2UoJ2F0dGFjaFNoYWRvdycg
aW4gRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsICdEb2N1bWVudEZyYWdtZW50LnByb3RvdHlw
ZS5hdHRhY2hTaGFkb3cgbXVzdCBub3QgZXhpc3QnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHR5cGVv
ZigobmV3IERPTVBhcnNlcigpKS5wYXJzZUZyb21TdHJpbmcoJycsICd0ZXh0L2h0bWwnKS5hdHRh
Y2hTaGFkb3cpLCAndW5kZWZpbmVkJywgJ0FuIGluc3RhbmNlIG9mIGRvY3VtZW50IG11c3Qgbm90
IGhhdmUgYXR0YWNoU2hhZG93IHdoaWNoIGlzIGEgZnVuY3Rpb24nKTsKKyAgICBhc3NlcnRfZmFs
c2UoJ2F0dGFjaFNoYWRvdycgaW4gVGV4dC5wcm90b3R5cGUsICdUZXh0LnByb3RvdHlwZS5hdHRh
Y2hTaGFkb3cgbXVzdCBub3QgZXhpc3QnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZihkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnJykuYXR0YWNoU2hhZG93KSwgJ3VuZGVmaW5lZCcsICdBbiBp
bnN0YW5jZSBvZiB0ZXh0IG5vZGUgbXVzdCBub3QgaGF2ZSBhdHRhY2hTaGFkb3cnKTsKK30sICdO
b2RlcyBvdGhlciB0aGFuIEVsZW1lbnQgc2hvdWxkIG5vdCBoYXZlIGF0dGFjaFNoYWRvdycpOwor
Cit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJy
b3InfSwgZnVuY3Rpb24gKCkgeworICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KS5hdHRhY2hTaGFkb3coe30pCisgICAgfSwgJ2F0dGFjaFNoYWRvdyBtdXN0IHRocm93IGEgVHlw
ZUVycm9yIHdoZW4gbW9kZSBpcyBvbWl0dGVkJyk7CisKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFt
ZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeworICAgICAgICBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKS5hdHRhY2hTaGFkb3coe21vZGU6IHRydWV9KQorICAgIH0sICdhdHRhY2hT
aGFkb3cgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIG1vZGUgaXMgYSBib29sZWFuJyk7CisK
KyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgewor
ICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5hdHRhY2hTaGFkb3coe21vZGU6
IDF9KQorICAgIH0sICdhdHRhY2hTaGFkb3cgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIG1v
ZGUgaXMgMScpOworfSwgJ0VsZW1lbnQuYXR0YWNoU2hhZG93IG11c3QgdGhyb3cgYSBUeXBlRXJy
b3IgaWYgbW9kZSBpcyBub3QgIm9wZW4iIG9yICJjbG9zZWQiJyk7CisKK3Rlc3QoZnVuY3Rpb24g
KCkgeworICAgIGFzc2VydF90cnVlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmF0dGFj
aFNoYWRvdyh7bW9kZTogIm9wZW4ifSkgaW5zdGFuY2VvZiBTaGFkb3dSb290LAorICAgICAgICAn
YXR0YWNoU2hhZG93KHttb2RlOiAib3BlbiJ9KSBzaG91bGQgY3JlYXRlIGFuIGluc3RhbmNlIG9m
IFNoYWRvd1Jvb3QnKTsKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKS5hdHRhY2hTaGFkb3coe21vZGU6ICJjbG9zZWQifSkgaW5zdGFuY2VvZiBTaGFkb3dSb290
LAorICAgICAgICAnYXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pIHNob3VsZCBjcmVhdGUg
YW4gaW5zdGFuY2Ugb2YgU2hhZG93Um9vdCcpOworfSwgJ0VsZW1lbnQuYXR0YWNoU2hhZG93IG11
c3QgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNoYWRvd1Jvb3QnKTsKKwordGVzdChmdW5jdGlvbiAo
KSB7CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgZnVu
Y3Rpb24gKCkgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgIGRpdi5hdHRhY2hTaGFkb3coe21vZGU6ICJvcGVuIn0pOworICAgICAgICBk
aXYuYXR0YWNoU2hhZG93KHttb2RlOiAib3BlbiJ9KTsKKyAgICB9LCAnQ2FsbGluZyBhdHRhY2hT
aGFkb3coe21vZGU6ICJvcGVuIn0pIHR3aWNlIG9uIHRoZSBzYW1lIGVsZW1lbnQgbXVzdCB0aHJv
dycpOworCisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnSW52YWxpZFN0YXRlRXJyb3InfSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisgICAgICAgIGRpdi5hdHRhY2hTaGFkb3coe21vZGU6ICJjbG9zZWQifSk7CisgICAg
ICAgIGRpdi5hdHRhY2hTaGFkb3coe21vZGU6ICJjbG9zZWQifSk7CisgICAgfSwgJ0NhbGxpbmcg
YXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pIHR3aWNlIG9uIHRoZSBzYW1lIGVsZW1lbnQg
bXVzdCB0aHJvdycpOworCisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnSW52YWxpZFN0YXRl
RXJyb3InfSwgZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGRpdi5hdHRhY2hTaGFkb3coe21vZGU6ICJvcGVuIn0p
OworICAgICAgICBkaXYuYXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pOworICAgIH0sICdD
YWxsaW5nIGF0dGFjaFNoYWRvdyh7bW9kZTogImNsb3NlZCJ9KSBhZnRlciBhdHRhY2hTaGFkb3co
e21vZGU6ICJvcGVuIn0pIG9uIHRoZSBzYW1lIGVsZW1lbnQgbXVzdCB0aHJvdycpOworCisgICAg
YXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgZnVuY3Rpb24gKCkg
eworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAg
ICAgIGRpdi5hdHRhY2hTaGFkb3coe21vZGU6ICJjbG9zZWQifSk7CisgICAgICAgIGRpdi5hdHRh
Y2hTaGFkb3coe21vZGU6ICJvcGVuIn0pOworICAgIH0sICdDYWxsaW5nIGF0dGFjaFNoYWRvdyh7
bW9kZTogIm9wZW4ifSkgYWZ0ZXIgYXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pIG9uIHRo
ZSBzYW1lIGVsZW1lbnQgbXVzdCB0aHJvdycpOworfSwgJ0VsZW1lbnQuYXR0YWNoU2hhZG93IG11
c3QgdGhyb3cgYSBJbnZhbGlkU3RhdGVFcnJvciBpZiB0aGUgY29udGV4dCBvYmplY3QgYWxyZWFk
eSBob3N0cyBhIHNoYWRvdyB0cmVlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGZvciAo
dmFyIGVsZW1lbnROYW1lIG9mIFsnYnV0dG9uJywgJ2RldGFpbHMnLCAnaW5wdXQnLCAnbWFycXVl
ZScsICdtZXRlcicsICdwcm9ncmVzcycsICdzZWxlY3QnLCAndGV4dGFyZWEnLCAna2V5Z2VuJ10p
IHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnTm90U3VwcG9ydGVkRXJyb3InfSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50
TmFtZSkuYXR0YWNoU2hhZG93KHttb2RlOiAib3BlbiJ9KTsKKyAgICAgICAgfSwgJ0NhbGxpbmcg
YXR0YWNoU2hhZG93KHttb2RlOiAib3BlbiJ9KSBvbiAnICsgZWxlbWVudE5hbWUgKyAnIGVsZW1l
bnQgbXVzdCB0aHJvdycpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ05vdFN1
cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoZWxlbWVudE5hbWUpLmF0dGFjaFNoYWRvdyh7bW9kZTogImNsb3NlZCJ9KTsKKyAg
ICAgICAgfSwgJ0NhbGxpbmcgYXR0YWNoU2hhZG93KHttb2RlOiAiY2xvc2VkIn0pIG9uICcgKyBl
bGVtZW50TmFtZSArICcgZWxlbWVudCBtdXN0IHRocm93Jyk7CisgICAgfQorfSwgJ0VsZW1lbnQu
YXR0YWNoU2hhZG93IG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBmb3IgYnV0dG9uLCBk
ZXRhaWxzLCBpbnB1dCwgbWFycXVlZSwgbWV0ZXIsIHByb2dyZXNzLCBzZWxlY3QsIHRleHRhcmVh
LCBhbmQga2V5Z2VuIGVsZW1lbnRzJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
aGFkb3ctZG9tL0VsZW1lbnQtaW50ZXJmYWNlLXNoYWRvd1Jvb3QtYXR0cmlidXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93
LWRvbS9FbGVtZW50LWludGVyZmFjZS1zaGFkb3dSb290LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjk4Y2ZjMGVjNjJjOTkyZjU3ZmJjMDU0NjE0OGI1MGQxOGVlMDRiMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFjZS1zaGFkb3dSb290LWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mgc2hhZG93Um9vdCBtdXN0IGJlIGRlZmlu
ZWQgb24gRWxlbWVudCBwcm90b3R5cGUgCitQQVNTIHNoYWRvd1Jvb3QgYXR0cmlidXRlIG11c3Qg
cmV0dXJuIHRoZSBvcGVuIHNoYWRvdyByb290IGFzc29jaWF0ZWQgd2l0aCB0aGUgZWxlbWVudCAK
K1BBU1Mgc2hhZG93Um9vdCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gbnVsbCBpZiB0aGUgc2hhZG93
IHJvb3QgYXR0YWNoZWQgdG8gdGhlIGVsZW1lbnQgaXMgY2xvc2VkIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRWxl
bWVudC1pbnRlcmZhY2Utc2hhZG93Um9vdC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9FbGVtZW50LWludGVyZmFj
ZS1zaGFkb3dSb290LWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiOTYzNmU5M2Q0M2ZkYjli
ZjA3Nzk2NzJlNTEwMjBmNjc2ZWNlM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRWxlbWVudC1pbnRlcmZh
Y2Utc2hhZG93Um9vdC1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2hhZG93IERPTTogRWxlbWVudCBpbnRlcmZh
Y2Ugc2hhZG93Um9vdCBhdHRyaWJ1dGU8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRs
ZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBu
YW1lPSJhc3NlcnQiIGNvbnRlbnQ9InNoYWRvd1Jvb3QgYXR0cmlidXRlIG9uIEVsZW1lbnQgaW50
ZXJmYWNlIG11c3QgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIG9wZW4gc2hhZG93IHRyZWUgaWYgdGhl
cmUgaXMgb25lIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L3dlYmNvbXBvbmVudHMvc3BlYy9zaGFkb3cvI3RoZS1zaGFkb3dyb290LWludGVyZmFjZSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNj
cmlwdD4KKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgYXNzZXJ0X3RydWUoJ3NoYWRvd1Jvb3Qn
IGluIEVsZW1lbnQucHJvdG90eXBlLCAnc2hhZG93Um9vdCBtdXN0IGJlIGRlZmluZWQgb24gRWxl
bWVudCBwcm90b3R5cGUnKTsKKyAgICBhc3NlcnRfdHJ1ZSgnc2hhZG93Um9vdCcgaW4gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2JyksICdzaGFkb3dSb290IG11c3QgYmUgZGVmaW5lZCBvbiBh
biBpbnN0YW5jZSBvZiBkaXYgZWxlbWVudCcpOworICAgIGFzc2VydF9mYWxzZSgnc2hhZG93Um9v
dCcgaW4gTm9kZS5wcm90b3R5cGUsICdzaGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQgb24g
Tm9kZSBwcm90b3R5cGUnKTsKKyAgICBhc3NlcnRfZmFsc2UoJ3NoYWRvd1Jvb3QnIGluIFRleHQu
cHJvdG90eXBlLCAnc2hhZG93Um9vdCBtdXN0IG5vdCBiZSBkZWZpbmVkIG9uIFRleHQgcHJvdG90
eXBlJyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdzaGFkb3dSb290JyBpbiBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgnJyksICdzaGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQgb24gYW4gaW5zdGFu
Y2Ugb2YgVGV4dCBub2RlJyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdzaGFkb3dSb290JyBpbiBDb21t
ZW50LnByb3RvdHlwZSwgJ3NoYWRvd1Jvb3QgbXVzdCBub3QgYmUgZGVmaW5lZCBvbiBDb21tZW50
IHByb3RvdHlwZScpOworICAgIGFzc2VydF9mYWxzZSgnc2hhZG93Um9vdCcgaW4gZG9jdW1lbnQu
Y3JlYXRlQ29tbWVudCgnJyksICdzaGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQgb24gYW4g
aW5zdGFuY2Ugb2YgQ29tbWVudCBub2RlJyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdzaGFkb3dSb290
JyBpbiBEb2N1bWVudC5wcm90b3R5cGUsICdzaGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQg
b24gRG9jdW1lbnQgcHJvdG90eXBlJyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdzaGFkb3dSb290JyBp
biBkb2N1bWVudCwgJ3NoYWRvd1Jvb3QgbXVzdCBub3QgYmUgZGVmaW5lZCBvbiBhbiBpbnN0YW5j
ZSBvZiBEb2N1bWVudCcpOworICAgIGFzc2VydF9mYWxzZSgnc2hhZG93Um9vdCcgaW4gRG9jdW1l
bnRGcmFnbWVudC5wcm90b3R5cGUsICdzaGFkb3dSb290IG11c3Qgbm90IGJlIGRlZmluZWQgb24g
RG9jdW1lbnRGcmFnbWVudCBwcm90b3R5cGUnKTsKKyAgICBhc3NlcnRfZmFsc2UoJ3NoYWRvd1Jv
b3QnIGluIChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoJycsICd0ZXh0L2h0bWwnKSwg
J3NoYWRvd1Jvb3QgbXVzdCBub3QgYmUgZGVmaW5lZCBvbiBhbiBpbnN0YW5jZSBvZiBEb2N1bWVu
dEZyYWdtZW50IG5vZGUnKTsKK30sICdzaGFkb3dSb290IG11c3QgYmUgZGVmaW5lZCBvbiBFbGVt
ZW50IHByb3RvdHlwZScpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaG9zdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFzc2VydF9lcXVhbHMoaG9zdC5zaGFk
b3dSb290LCBudWxsLCAnc2hhZG93Um9vdCBtdXN0IHJldHVybiBudWxsIHdoZW4gdGhlIGhvc3Qg
ZG9lcyBub3QgaGF2ZSBhIHNoYWRvdyB0cmVlIGF0dGFjaGVkIHRvIGl0Jyk7CisKKyAgICB2YXIg
b3BlblNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7CisgICAg
YXNzZXJ0X2VxdWFscyhob3N0LnNoYWRvd1Jvb3QsIG9wZW5TaGFkb3dSb290LCAnc2hhZG93Um9v
dCBtdXN0IHJldHVybiB0aGUgb3BlbiBzaGFkb3cgcm9vdCBhdHRhY2hTaGFkb3cgYXR0YWNoZWQn
KTsKK30sICdzaGFkb3dSb290IGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0aGUgb3BlbiBzaGFkb3cg
cm9vdCBhc3NvY2lhdGVkIHdpdGggdGhlIGVsZW1lbnQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7
CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBob3N0
LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGhvc3Qu
c2hhZG93Um9vdCwgbnVsbCk7Cit9LCAnc2hhZG93Um9vdCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4g
bnVsbCBpZiB0aGUgc2hhZG93IHJvb3QgYXR0YWNoZWQgdG8gdGhlIGVsZW1lbnQgaXMgY2xvc2Vk
Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0V4dGVuc2lvbnMt
dG8tRXZlbnQtSW50ZXJmYWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9FeHRlbnNpb25zLXRvLUV2ZW50LUludGVy
ZmFjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE3N2UwYTQzMDQzODYwZjRhZDAzNDRjMjU5
ODAzZmQyMjM3ZTQzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9FeHRlbnNpb25zLXRvLUV2ZW50LUludGVy
ZmFjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIGNvbXBvc2VkUGF0aCgp
IG11c3QgZXhpc3Qgb24gRXZlbnQgCitQQVNTIGNvbXBvc2VkUGF0aCgpIG11c3QgcmV0dXJuIGFu
IGVtcHR5IGFycmF5IHdoZW4gdGhlIGV2ZW50IGhhcyBub3QgYmVlbiBkaXNwYXRjaGVkIAorUEFT
UyBjb21wb3NlZFBhdGgoKSBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZSBldmVu
dCBpcyBubyBsb25nZXIgZGlzcGF0Y2hlZCAKK1BBU1MgY29tcG9zZWQgbXVzdCBleGlzdCBvbiBF
dmVudCAKK1BBU1MgY29tcG9zZWQgb24gRXZlbnRJbml0IG11c3QgZGVmYXVsdCB0byBmYWxzZSAK
K1BBU1MgY29tcG9zZWQgb24gRXZlbnRJbml0IG11c3Qgc2V0IHRoZSBjb21wb3NlZCBmbGFnIAor
UEFTUyBUaGUgZXZlbnQgbXVzdCBwcm9wYWdhdGUgb3V0IG9mIG9wZW4gbW9kZSBzaGFkb3cgYm91
bmRhcmllcyB3aGVuIHRoZSBjb21wb3NlZCBmbGFnIGlzIHNldCAKK1BBU1MgVGhlIGV2ZW50IG11
c3QgcHJvcGFnYXRlIG91dCBvZiBjbG9zZWQgbW9kZSBzaGFkb3cgYm91bmRhcmllcyB3aGVuIHRo
ZSBjb21wb3NlZCBmbGFnIGlzIHNldCAKK1BBU1MgVGhlIGV2ZW50IG11c3Qgbm90IHByb3BhZ2F0
ZSBvdXQgb2Ygb3BlbiBtb2RlIHNoYWRvdyBib3VuZGFyaWVzIHdoZW4gdGhlIGNvbXBvc2VkIGZs
YWcgaXMgdW5zZXQgCitQQVNTIFRoZSBldmVudCBtdXN0IG5vdCBwcm9wYWdhdGUgb3V0IG9mIGNs
b3NlZCBtb2RlIHNoYWRvdyBib3VuZGFyaWVzIHdoZW4gdGhlIGNvbXBvc2VkIGZsYWcgaXMgdW5z
ZXQgCitQQVNTIFRoZSBldmVudCBtdXN0IG5vdCBwcm9wYWdhdGUgb3V0IG9mIG9wZW4gbW9kZSBz
aGFkb3cgYm91bmRhcmllcyB3aGVuIHRoZSBjb21wb3NlZCBmbGFnIGlzIHVuc2V0IG9uIGFuIGV2
ZW50IHdpdGggcmVsYXRlZFRhcmdldCAKK1BBU1MgVGhlIGV2ZW50IG11c3Qgbm90IHByb3BhZ2F0
ZSBvdXQgb2YgY2xvc2VkIG1vZGUgc2hhZG93IGJvdW5kYXJpZXMgd2hlbiB0aGUgY29tcG9zZWQg
ZmxhZyBpcyB1bnNldCBvbiBhbiBldmVudCB3aXRoIHJlbGF0ZWRUYXJnZXQgCitQQVNTIFRoZSBl
dmVudCBtdXN0IG5vdCBwcm9wYWdhdGUgb3V0IG9mIG9wZW4gbW9kZSBzaGFkb3cgdHJlZSBvZiB0
aGUgdGFyZ2V0IGJ1dCBtdXN0IHByb3BhZ2F0ZSBvdXQgb2YgaW5uZXIgc2hhZG93IHRyZWVzIHdo
ZW4gdGhlIHNjb3BlZCBmbGFnIGlzIHNldCAKK1BBU1MgVGhlIGV2ZW50IG11c3Qgbm90IHByb3Bh
Z2F0ZSBvdXQgb2YgY2xvc2VkIG1vZGUgc2hhZG93IHRyZWUgb2YgdGhlIHRhcmdldCBidXQgbXVz
dCBwcm9wYWdhdGUgb3V0IG9mIGlubmVyIHNoYWRvdyB0cmVlcyB3aGVuIHRoZSBzY29wZWQgZmxh
ZyBpcyBzZXQgCitQQVNTIFRoZSBldmVudCBtdXN0IHByb3BhZ2F0ZSBvdXQgb2Ygb3BlbiBtb2Rl
IHNoYWRvdyB0cmVlIGluIHdoaWNoIHRoZSByZWxhdGl2ZSB0YXJnZXQgYW5kIHRoZSByZWxhdGl2
ZSByZWxhdGVkIHRhcmdldCBhcmUgdGhlIHNhbWUgCitQQVNTIFRoZSBldmVudCBtdXN0IHByb3Bh
Z2F0ZSBvdXQgb2YgY2xvc2VkIG1vZGUgc2hhZG93IHRyZWUgaW4gd2hpY2ggdGhlIHJlbGF0aXZl
IHRhcmdldCBhbmQgdGhlIHJlbGF0aXZlIHJlbGF0ZWQgdGFyZ2V0IGFyZSB0aGUgc2FtZSAKK1BB
U1MgY29tcG9zZWRQYXRoKCkgbXVzdCBjb250YWluIGFuZCBvbmx5IGNvbnRhaW4gdGhlIHVuY2xv
c2VkIG5vZGVzIG9mIHRhcmdldCBpbiBvcGVuIG1vZGUgc2hhZG93IHRyZWVzIAorUEFTUyBjb21w
b3NlZFBhdGgoKSBtdXN0IGNvbnRhaW4gYW5kIG9ubHkgY29udGFpbiB0aGUgdW5jbG9zZWQgbm9k
ZXMgb2YgdGFyZ2V0IGluIGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlcyAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0V4
dGVuc2lvbnMtdG8tRXZlbnQtSW50ZXJmYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRXh0ZW5zaW9ucy10by1FdmVudC1JbnRl
cmZhY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzFlYTQwNmEyMTgwNzY2NTU2ZGYyNDdlZWVhZGMyNGJl
MGNiNWJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0V4dGVuc2lvbnMtdG8tRXZlbnQtSW50ZXJmYWNlLmh0
bWwKQEAgLTAsMCArMSwyMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5TaGFkb3cgRE9NOiBFeHRlbnNpb25zIHRvIEV2ZW50IEludGVyZmFjZTwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3
YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iRXZlbnQgaW50ZXJm
YWNlIG11c3QgaGF2ZSBjb21wb3NlZFBhdGgoKSBhcyBhIG1ldGhvZCI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93M2MuZ2l0aHViLmlvL3dlYmNvbXBvbmVudHMvc3BlYy9zaGFkb3cv
I2V4dGVuc2lvbnMtdG8tZXZlbnQtaW50ZXJmYWNlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2V2ZW50LXBhdGgtdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVu
Y3Rpb24gKCkgeworICAgIGFzc2VydF90cnVlKCdjb21wb3NlZFBhdGgnIGluIEV2ZW50LnByb3Rv
dHlwZSk7CisgICAgYXNzZXJ0X3RydWUoJ2NvbXBvc2VkUGF0aCcgaW4gbmV3IEV2ZW50KCdteS1l
dmVudCcpKTsKK30sICdjb21wb3NlZFBhdGgoKSBtdXN0IGV4aXN0IG9uIEV2ZW50Jyk7CisKK3Rl
c3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgnbXktZXZlbnQnKTsK
KyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50LmNvbXBvc2VkUGF0aCgpLCBbXSk7Cit9LCAn
Y29tcG9zZWRQYXRoKCkgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgZXZlbnQg
aGFzIG5vdCBiZWVuIGRpc3BhdGNoZWQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFy
IGV2ZW50ID0gbmV3IEV2ZW50KCdteS1ldmVudCcpOworICAgIGRvY3VtZW50LmJvZHkuZGlzcGF0
Y2hFdmVudChldmVudCk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudC5jb21wb3NlZFBh
dGgoKSwgW10pOworfSwgJ2NvbXBvc2VkUGF0aCgpIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5
IHdoZW4gdGhlIGV2ZW50IGlzIG5vIGxvbmdlciBkaXNwYXRjaGVkJyk7CisKK3Rlc3QoZnVuY3Rp
b24gKCkgeworICAgIGFzc2VydF90cnVlKCdjb21wb3NlZCcgaW4gRXZlbnQucHJvdG90eXBlKTsK
KyAgICBhc3NlcnRfdHJ1ZSgnY29tcG9zZWQnIGluIG5ldyBFdmVudCgnbXktZXZlbnQnKSk7Cit9
LCAnY29tcG9zZWQgbXVzdCBleGlzdCBvbiBFdmVudCcpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoJ215LWV2ZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNl
KGV2ZW50LmNvbXBvc2VkKTsKK30sICdjb21wb3NlZCBvbiBFdmVudEluaXQgbXVzdCBkZWZhdWx0
IHRvIGZhbHNlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBldmVudCA9IG5ldyBF
dmVudCgnbXktZXZlbnQnLCB7Y29tcG9zZWQ6IHRydWV9KTsKKyAgICBhc3NlcnRfdHJ1ZShldmVu
dC5jb21wb3NlZCk7CisKKyAgICBldmVudCA9IG5ldyBFdmVudCgnbXktZXZlbnQnLCB7Y29tcG9z
ZWQ6IGZhbHNlfSk7CisgICAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNvbXBvc2VkKTsKK30sICdjb21w
b3NlZCBvbiBFdmVudEluaXQgbXVzdCBzZXQgdGhlIGNvbXBvc2VkIGZsYWcnKTsKKworLyoKKy1T
UjogU2hhZG93Um9vdCAgLVM6IFNsb3QgIHRhcmdldDogKH4pICAqOiBpbmRpY2F0ZXMgc3RhcnQg
IGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCitBICg0KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gQS1TUiAoMykKKysgQiAtLS0tLS0tLS0tLS0gQi1TUiAgICAgICAgICAgICArIEExICgyKSAt
LS0gQTEtU1IgKDEpCisgICsgQyAgICAgICAgICAgICsgQjEgLS0tIEIxLVNSICAgKyBBMi1TICAg
ICAgICsgQTFhICgqOyAwKQorICArIEQgLS0tIEQtU1IgICAgICsgQjFhICAgICsgQjFiIC0tLSBC
MWItU1IKKyAgICAgICAgICArIEQxICAgICAgICAgICAgICArIEIxYy1TICAgKyBCMWIxCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQjFiMgorKi8KKworZnVuY3Rpb24g
dGVzdENvbXBvc2VkRXZlbnQobW9kZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAg
ICB2YXIgbm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKKyAgICAgICAgdmFyIGxvZyA9IGRp
c3BhdGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5BMWEsIG5ldyBFdmVudCgnbXktZXZlbnQn
LCB7Y29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWV9KSk7CisKKyAgICAgICAgdmFyIGV4cGVj
dGVkUGF0aCA9IFsnQTFhJywgJ0ExLVNSJywgJ0ExJywgJ0EtU1InLCAnQSddOworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsIGV4cGVjdGVkUGF0aCk7CisgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aC5sZW5ndGgsIGxvZy5wYXRoQXRUYXJn
ZXRzLmxlbmd0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdl
dHNbMF0sIGV4cGVjdGVkUGF0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBh
dGhBdFRhcmdldHNbMV0sIGV4cGVjdGVkUGF0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nLnBhdGhBdFRhcmdldHNbMl0sIG1vZGUgPT0gJ29wZW4nID8gZXhwZWN0ZWRQYXRoIDog
WydBMScsICdBLVNSJywgJ0EnXSwKKyAgICAgICAgICAgICdjb21wb3NlZFBhdGggbXVzdCBvbmx5
IGNvbnRhaW4gdW5jbG9zZWQgbm9kZXMgb2YgdGhlIGN1cnJlbnQgdGFyZ2V0LicpOworICAgIH0s
ICdUaGUgZXZlbnQgbXVzdCBwcm9wYWdhdGUgb3V0IG9mICcgKyBtb2RlICsgJyBtb2RlIHNoYWRv
dyBib3VuZGFyaWVzIHdoZW4gdGhlIGNvbXBvc2VkIGZsYWcgaXMgc2V0Jyk7Cit9CisKK3Rlc3RD
b21wb3NlZEV2ZW50KCdvcGVuJyk7Cit0ZXN0Q29tcG9zZWRFdmVudCgnY2xvc2VkJyk7CisKKy8q
CistU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgKjogaW5kaWNhdGVzIHN0
YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgorQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIEEtU1IKKysgQiAtLS0tLS0tLS0tLS0gQi1TUiAgICAgICAgICAgICArIEExIC0tLSBB
MS1TUiAoMSkKKyAgKyBDICAgICAgICAgICAgKyBCMSAtLS0gQjEtU1IgICArIEEyLVMgICArIEEx
YSAoKjsgMCkKKyAgKyBEIC0tLSBELVNSICAgICArIEIxYSAgKyBCMWIgLS0tIEIxYi1TUgorICAg
ICAgICAgICsgRDEgICAgICAgICAgICArIEIxYy1TICAgKyBCMWIxCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICArIEIxYjIKKyovCisKK2Z1bmN0aW9uIHRlc3ROb25Db21wb3Nl
ZEV2ZW50KG1vZGUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIG5vZGVz
ID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7CisgICAgICAgIHZhciBsb2cgPSBkaXNwYXRjaEV2ZW50
V2l0aExvZyhub2Rlcywgbm9kZXMuQTFhLCBuZXcgRXZlbnQoJ215LWV2ZW50Jywge2NvbXBvc2Vk
OiBmYWxzZSwgYnViYmxlczogdHJ1ZX0pKTsKKworICAgICAgICB2YXIgZXhwZWN0ZWRQYXRoID0g
WydBMWEnLCAnQTEtU1InXTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cuZXZlbnRQ
YXRoLCBleHBlY3RlZFBhdGgpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVu
dFBhdGgubGVuZ3RoLCBsb2cucGF0aEF0VGFyZ2V0cy5sZW5ndGgpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzBdLCBleHBlY3RlZFBhdGgpOworICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzFdLCBleHBlY3RlZFBhdGgp
OworICAgIH0sICdUaGUgZXZlbnQgbXVzdCBub3QgcHJvcGFnYXRlIG91dCBvZiAnICsgbW9kZSAr
ICcgbW9kZSBzaGFkb3cgYm91bmRhcmllcyB3aGVuIHRoZSBjb21wb3NlZCBmbGFnIGlzIHVuc2V0
Jyk7Cit9CisKK3Rlc3ROb25Db21wb3NlZEV2ZW50KCdvcGVuJyk7Cit0ZXN0Tm9uQ29tcG9zZWRF
dmVudCgnY2xvc2VkJyk7CisKKy8qCistU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6
ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0ZXMgc3RhcnQgIGRpZ2l0OiBldmVu
dCBwYXRoIG9yZGVyCitBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQS1TUgorKyBC
IC0tLS0tLS0tLS0tLSBCLVNSICAgICAgICAgICAgICsgQTEgLS0tLS0tLS0tLS0gQTEtU1IgKDEp
CisgICsgQyAgICAgICAgICAgICsgQjEgLS0tIEIxLVNSICAgKyBBMi1TIFsqOyAwLTFdICArIEEx
YSAoKjsgMCkKKyAgKyBEIC0tLSBELVNSICAgICArIEIxYSAgKyBCMWIgLS0tIEIxYi1TUgorICAg
ICAgICAgICsgRDEgICAgICAgICAgICArIEIxYy1TICAgKyBCMWIxCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICArIEIxYjIKKyovCisKK2Z1bmN0aW9uIHRlc3ROb25Db21wb3Nl
ZEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXQobW9kZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgewor
ICAgICAgICB2YXIgbm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKKyAgICAgICAgdmFyIGxv
ZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5BMWEsIG5ldyBNb3VzZUV2ZW50
KCdmb28nLCB7Y29tcG9zZWQ6IGZhbHNlLCBidWJibGVzOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBu
b2Rlc1snQTItUyddfSkpOworCisgICAgICAgIHZhciBleHBlY3RlZFBhdGggPSBbJ0ExYScsICdB
MS1TUiddOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsIGV4cGVj
dGVkUGF0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aC5sZW5n
dGgsIGxvZy5wYXRoQXRUYXJnZXRzLmxlbmd0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nLnBhdGhBdFRhcmdldHNbMF0sIGV4cGVjdGVkUGF0aCk7CisgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbMV0sIGV4cGVjdGVkUGF0aCk7CisgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnJlbGF0ZWRUYXJnZXRzLCBbJ0EyLVMnLCAnQTItUydd
KTsKKyAgICB9LCAnVGhlIGV2ZW50IG11c3Qgbm90IHByb3BhZ2F0ZSBvdXQgb2YgJyArIG1vZGUg
KyAnIG1vZGUgc2hhZG93IGJvdW5kYXJpZXMgd2hlbiB0aGUgY29tcG9zZWQgZmxhZyBpcyB1bnNl
dCBvbiBhbiBldmVudCB3aXRoIHJlbGF0ZWRUYXJnZXQnKTsKK30KKwordGVzdE5vbkNvbXBvc2Vk
RXZlbnRXaXRoUmVsYXRlZFRhcmdldCgnb3BlbicpOwordGVzdE5vbkNvbXBvc2VkRXZlbnRXaXRo
UmVsYXRlZFRhcmdldCgnY2xvc2VkJyk7CisKKy8qCistU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90
ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0ZXMgc3RhcnQgIGRp
Z2l0OiBldmVudCBwYXRoIG9yZGVyCitBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBBLVNSCisrIEIgLS0tLS0tLS0tLS0tIEItU1IgKDQpICAgICAgICAg
ICAgICAgICAgICAgICAgICArIEExIC0tLSBBMS1TUgorICArIEMgICAgICAgICAgICArIEIxICgz
KSBbMCwzLTRdIC0tLSBCMS1TUiAoMikgICAgKyBBMi1TICAgKyBBMWEKKyAgKyBEIC0tLSBELVNS
ICAgICArIEIxYSAoKjsgMCkgICAgICAgKyBCMWIgWzEtMl0gLS0tIEIxYi1TUgorICAgICAgICAg
ICsgRDEgICAgICAgICAgICAgICAgICAgICAgICArIEIxYy1TICgxKSAgICAgKyBCMWIxCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEIxYjIg
WypdCisqLworCitmdW5jdGlvbiB0ZXN0U2NvcGVkRXZlbnRXaXRoVW5zY29wZWRSZWxhdGVkVGFy
Z2V0VGhyb3VnaFNsb3QobW9kZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2
YXIgbm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKKyAgICAgICAgdmFyIGxvZyA9IGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5CMWEsIG5ldyBNb3VzZUV2ZW50KCdmb28nLCB7
c2NvcGVkOiB0cnVlLCByZWxhdGVkVGFyZ2V0U2NvcGVkOiBmYWxzZSwgYnViYmxlczogdHJ1ZSwg
cmVsYXRlZFRhcmdldDogbm9kZXNbJ0IxYjInXX0pKTsKKworICAgICAgICB2YXIgZXhwZWN0ZWRQ
YXRoID0gWydCMWEnLCAnQjFjLVMnLCAnQjEtU1InLCAnQjEnLCAnQi1TUiddOworICAgICAgICB2
YXIgcGF0aEV4cG9zZWRUb0IxYSA9IFsnQjFhJywgJ0IxJywgJ0ItU1InXTsKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2cuZXZlbnRQYXRoLCBleHBlY3RlZFBhdGgpOworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgubGVuZ3RoLCBsb2cucGF0aEF0VGFyZ2V0
cy5sZW5ndGgpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRz
WzBdLCBtb2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2VkVG9CMWEpOwor
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzFdLCBleHBlY3Rl
ZFBhdGgpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzJd
LCBleHBlY3RlZFBhdGgpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRU
YXJnZXRzWzNdLCBtb2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2VkVG9C
MWEpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzRdLCBt
b2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2VkVG9CMWEpOworICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5yZWxhdGVkVGFyZ2V0cywgWydCMScsICdCMWInLCAn
QjFiJywgJ0IxJywgJ0IxJ10pOworICAgIH0sICdUaGUgZXZlbnQgbXVzdCBub3QgcHJvcGFnYXRl
IG91dCBvZiAnICsgbW9kZSArICcgbW9kZSBzaGFkb3cgdHJlZSBvZiB0aGUgdGFyZ2V0IGJ1dCBt
dXN0IHByb3BhZ2F0ZSBvdXQgb2YgaW5uZXIgc2hhZG93IHRyZWVzIHdoZW4gdGhlIHNjb3BlZCBm
bGFnIGlzIHNldCcpOworfQorCit0ZXN0U2NvcGVkRXZlbnRXaXRoVW5zY29wZWRSZWxhdGVkVGFy
Z2V0VGhyb3VnaFNsb3QoJ29wZW4nKTsKK3Rlc3RTY29wZWRFdmVudFdpdGhVbnNjb3BlZFJlbGF0
ZWRUYXJnZXRUaHJvdWdoU2xvdCgnY2xvc2VkJyk7CisKKy8qCistU1I6IFNoYWRvd1Jvb3QgIC1T
OiBTbG90ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0ZXMgc3Rh
cnQgIGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCitBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gQS1TUiAoMykKKysgQiAtLS0tLS0tLS0tLS0gQi1TUiAgICAgICAgICAgICArIEExICgy
KSAtLS0tLS0tIEExLVNSICgxKQorICArIEMgICAgICAgICAgICArIEIxIC0tLSBCMS1TUiAgICsg
QTItUyBbKjsgMC0zXSAgKyBBMWEgKCo7IDApCisgICsgRCAtLS0gRC1TUiAgICAgKyBCMWEgICsg
QjFiIC0tLSBCMWItU1IKKyAgICAgICAgICArIEQxICAgICAgICAgICAgKyBCMWMtUyAgICsgQjFi
MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCisqLworCitmdW5j
dGlvbiB0ZXN0Q29tcG9zZWRFdmVudFdpdGhSZWxhdGVkVGFyZ2V0KG1vZGUpIHsKKyAgICB0ZXN0
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7
CisgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5BMWEsIG5l
dyBNb3VzZUV2ZW50KCdmb28nLCB7Y29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUsIHJlbGF0
ZWRUYXJnZXQ6IG5vZGVzWydBMi1TJ119KSk7CisKKyAgICAgICAgdmFyIGV4cGVjdGVkUGF0aCA9
IFsnQTFhJywgJ0ExLVNSJywgJ0ExJywgJ0EtU1InXTsKKyAgICAgICAgdmFyIHBhdGhFeHBvc2Vk
VG9BMSA9IFsnQTEnLCAnQS1TUiddOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5l
dmVudFBhdGgsIGV4cGVjdGVkUGF0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
LmV2ZW50UGF0aC5sZW5ndGgsIGxvZy5wYXRoQXRUYXJnZXRzLmxlbmd0aCk7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbMF0sIGV4cGVjdGVkUGF0aCk7Cisg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbMV0sIGV4cGVjdGVk
UGF0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbMl0s
IG1vZGUgPT0gJ29wZW4nID8gZXhwZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRUb0ExKTsKKyAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1szXSwgbW9kZSA9PSAnb3Bl
bicgPyBleHBlY3RlZFBhdGggOiBwYXRoRXhwb3NlZFRvQTEpOworICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZy5yZWxhdGVkVGFyZ2V0cywgWydBMi1TJywgJ0EyLVMnLCAnQTItUycsICdB
Mi1TJ10pOworICAgIH0sICdUaGUgZXZlbnQgbXVzdCBwcm9wYWdhdGUgb3V0IG9mICcgKyBtb2Rl
ICsgJyBtb2RlIHNoYWRvdyB0cmVlIGluIHdoaWNoIHRoZSByZWxhdGl2ZSB0YXJnZXQgYW5kIHRo
ZSByZWxhdGl2ZSByZWxhdGVkIHRhcmdldCBhcmUgdGhlIHNhbWUnKTsKK30KKwordGVzdENvbXBv
c2VkRXZlbnRXaXRoUmVsYXRlZFRhcmdldCgnb3BlbicpOwordGVzdENvbXBvc2VkRXZlbnRXaXRo
UmVsYXRlZFRhcmdldCgnY2xvc2VkJyk7CisKKy8qCistU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90
ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0ZXMgc3RhcnQgIGRp
Z2l0OiBldmVudCBwYXRoIG9yZGVyCitBICg4KSBbMC01LDhdIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gQS1TUiAoNykKKysgQiAoNSkgIC0tLS0tLS0gQi1TUiAoNCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEExIFs2LDddIC0tLSBBMS1TUgorICArIEMg
ICAgICAgICAgICArIEIxICgzKSAtLS0tLS0tIEIxLVNSICgyKSAgICAgICAgICAgICsgQTItUyAo
NikgICAgICsgQTFhIFsqXQorICArIEQgLS0tIEQtU1IgICAgICsgQjFhICgqOyAwKSAgICsgQjFi
IC0tLS0tLS0gQjFiLVNSCisgICAgICAgICAgKyBEMSAgICAgICAgICAgICAgICAgICAgKyBCMWMt
UyAoMSkgICArIEIxYjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICsgQjFiMgorKi8KKworZnVuY3Rpb24gdGVzdENvbXBvc2VkRXZlbnRUaHJvdWdoU2xv
dChtb2RlKSB7CisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBub2RlcyA9IGNy
ZWF0ZVRlc3RUcmVlKG1vZGUpOworICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhu
b2Rlcywgbm9kZXMuQjFhLCBuZXcgTW91c2VFdmVudCgnZm9vJywge2NvbXBvc2VkOiB0cnVlLCBi
dWJibGVzOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBub2Rlcy5BMWF9KSk7CisKKyAgICAgICAgdmFy
IGV4cGVjdGVkUGF0aCA9ICAgICAgICAgIFsnQjFhJywgJ0IxYy1TJywgJ0IxLVNSJywgJ0IxJywg
J0ItU1InLCAnQicsICdBMi1TJywgJ0EtU1InLCAnQSddOworICAgICAgICB2YXIgZXhwZWN0ZWRS
ZWxhdGVkVGFyZ2V0ID0gWydBJywgICAnQScsICAgICAnQScsICAgICAnQScsICAgJ0EnLCAgICdB
JywgJ0ExJywgICAnQTEnLCAgICdBJ107CisgICAgICAgIHZhciBwYXRoRXhwb3NlZFRvQjFhID0g
ICAgICBbJ0IxYScsICAgICAgICAgICAgICAgICAgICdCMScsICdCLVNSJywgJ0InLCAgICAgICAg
ICAgICAgICAgJ0EnXTsKKyAgICAgICAgdmFyIHBhdGhFeHBvc2VkVG9CMWNTID0gICAgIFsnQjFh
JywgJ0IxYy1TJywgJ0IxLVNSJywgJ0IxJywgJ0ItU1InLCAnQicsICAgICAgICAgICAgICAgICAn
QSddOworICAgICAgICB2YXIgcGF0aEV4cG9zZWRUb0IgPSAgICAgICAgWyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdCJywgICAgICAgICAgICAgICAgICdBJ107CisgICAg
ICAgIHZhciBwYXRoRXhwb3NlZFRvQTEgPSAgICAgICBbICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ0InLCAnQTItUycsICdBLVNSJywgJ0EnXTsKKworICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsIGV4cGVjdGVkUGF0aCk7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aC5sZW5ndGgsIGxvZy5wYXRoQXRUYXJnZXRz
Lmxlbmd0aCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNb
MF0sIG1vZGUgPT0gJ29wZW4nID8gZXhwZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRUb0IxYSk7Cisg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbMV0sIG1vZGUgPT0g
J29wZW4nID8gZXhwZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRUb0IxY1MpOworICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZy5wYXRoQXRUYXJnZXRzWzJdLCBtb2RlID09ICdvcGVuJyA/IGV4
cGVjdGVkUGF0aCA6IHBhdGhFeHBvc2VkVG9CMWNTKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2cucGF0aEF0VGFyZ2V0c1szXSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3RlZFBhdGgg
OiBwYXRoRXhwb3NlZFRvQjFhKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0
aEF0VGFyZ2V0c1s0XSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3RlZFBhdGggOiBwYXRoRXhwb3Nl
ZFRvQjFhKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1s1
XSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3RlZFBhdGggOiBwYXRoRXhwb3NlZFRvQik7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnBhdGhBdFRhcmdldHNbNl0sIG1vZGUgPT0gJ29w
ZW4nID8gZXhwZWN0ZWRQYXRoIDogcGF0aEV4cG9zZWRUb0ExKTsKKyAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhsb2cucGF0aEF0VGFyZ2V0c1s3XSwgbW9kZSA9PSAnb3BlbicgPyBleHBlY3Rl
ZFBhdGggOiBwYXRoRXhwb3NlZFRvQTEpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxv
Zy5wYXRoQXRUYXJnZXRzWzhdLCBtb2RlID09ICdvcGVuJyA/IGV4cGVjdGVkUGF0aCA6IHBhdGhF
eHBvc2VkVG9CKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdl
dHMsIGV4cGVjdGVkUmVsYXRlZFRhcmdldCk7CisgICAgfSwgJ2NvbXBvc2VkUGF0aCgpIG11c3Qg
Y29udGFpbiBhbmQgb25seSBjb250YWluIHRoZSB1bmNsb3NlZCBub2RlcyBvZiB0YXJnZXQgaW4g
JyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7Cit9CisKK3Rlc3RDb21wb3NlZEV2ZW50
VGhyb3VnaFNsb3QoJ29wZW4nKTsKK3Rlc3RDb21wb3NlZEV2ZW50VGhyb3VnaFNsb3QoJ2Nsb3Nl
ZCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9IVE1MU2xvdEVs
ZW1lbnQtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9IVE1MU2xvdEVsZW1lbnQtaW50ZXJmYWNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGNjMzQ4ZjZhNWUxOGQ3Y2UwNGQ2N2E2NTQyNTkxOTQ1
OTk5MTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0hUTUxTbG90RWxlbWVudC1pbnRlcmZhY2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBIVE1MU2xvdEVsZW1lbnQgbXVzdCBiZSBk
ZWZpbmVkIG9uIHdpbmRvdyAKK1BBU1MgIm5hbWUiIGF0dHJpYnV0ZSBvbiBIVE1MU2xvdEVsZW1l
bnQgbXVzdCByZWZsZWN0ICJuYW1lIiBhdHRyaWJ1dGUgCitQQVNTIGFzc2lnbmVkTm9kZXMoKSBv
biBhIEhUTUxTbG90RWxlbWVudCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZSBz
bG90IGVsZW1lbnQgaXMgbm90IGluIGEgdHJlZSBvciBpbiBhIGRvY3VtZW50IHRyZWUgCitQQVNT
IGFzc2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQiOmZhbHNlfSkgb24gYSBIVE1MU2xvdEVsZW1lbnQg
bXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlzIG5vdCBp
biBhIHRyZWUgb3IgaW4gYSBkb2N1bWVudCB0cmVlIAorUEFTUyBhc3NpZ25lZE5vZGVzKHsiZmxh
dHRlbmVkIjp0cnVlfSkgb24gYSBIVE1MU2xvdEVsZW1lbnQgbXVzdCByZXR1cm4gYW4gZW1wdHkg
YXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlzIG5vdCBpbiBhIHRyZWUgb3IgaW4gYSBkb2N1
bWVudCB0cmVlIAorUEFTUyBhc3NpZ25lZE5vZGVzKCkgbXVzdCByZXR1cm4gdGhlIGxpc3Qgb2Yg
YXNzaWduZWQgbm9kZXMgd2hlbiBub25lIG9mIHRoZSBhc3NpZ25lZCBub2RlcyB0aGVtc2VsdmVz
IGFyZSBzbG90cyAKK1BBU1MgYXNzaWduZWROb2Rlcyh7ImZsYXR0ZW5lZCI6ZmFsc2V9KSBtdXN0
IHJldHVybiB0aGUgbGlzdCBvZiBhc3NpZ25lZCBub2RlcyB3aGVuIG5vbmUgb2YgdGhlIGFzc2ln
bmVkIG5vZGVzIHRoZW1zZWx2ZXMgYXJlIHNsb3RzIAorUEFTUyBhc3NpZ25lZE5vZGVzKHsiZmxh
dHRlbmVkIjp0cnVlfSkgbXVzdCByZXR1cm4gdGhlIGxpc3Qgb2YgYXNzaWduZWQgbm9kZXMgd2hl
biBub25lIG9mIHRoZSBhc3NpZ25lZCBub2RlcyB0aGVtc2VsdmVzIGFyZSBzbG90cyAKK1BBU1Mg
YXNzaWduZWROb2RlcygpIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBhbmQgbmFtZSBhdHRyaWJ1dGVz
IGFyZSBtb2RpZmllZCAKK1BBU1MgYXNzaWduZWROb2Rlcyh7ImZsYXR0ZW5lZCI6ZmFsc2V9KSBt
dXN0IHVwZGF0ZSB3aGVuIHNsb3QgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgbW9kaWZpZWQgCitQ
QVNTIGFzc2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQiOnRydWV9KSBtdXN0IHVwZGF0ZSB3aGVuIHNs
b3QgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgbW9kaWZpZWQgCitQQVNTIGFzc2lnbmVkTm9kZXMg
bXVzdCB1cGRhdGUgd2hlbiBhIGRlZmF1bHQgc2xvdCBpcyBpbnRyb2R1Y2VkIGR5bmFtaWNhbGx5
IGJ5IGEgc2xvdCByZW5hbWUgCitQQVNTIGFzc2lnbmVkTm9kZXMgbXVzdCB1cGRhdGUgd2hlbiBh
IGRlZmF1bHQgc2xvdCBpcyBpbnRyb2R1Y2VkIGR5bmFtaWNhbGx5IGJ5IGEgc2xvdCByZW5hbWUg
CitQQVNTIGFzc2lnbmVkTm9kZXMgbXVzdCB1cGRhdGUgd2hlbiBhIGRlZmF1bHQgc2xvdCBpcyBp
bnRyb2R1Y2VkIGR5bmFtaWNhbGx5IGJ5IGEgc2xvdCByZW5hbWUgCitQQVNTIGFzc2lnbmVkTm9k
ZXMgbXVzdCB1cGRhdGUgd2hlbiBzbG90IGVsZW1lbnRzIGFyZSBpbnNlcnRlZCBvciByZW1vdmVk
IAorUEFTUyBhc3NpZ25lZE5vZGVzIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBlbGVtZW50cyBhcmUg
aW5zZXJ0ZWQgb3IgcmVtb3ZlZCAKK1BBU1MgYXNzaWduZWROb2RlcyBtdXN0IHVwZGF0ZSB3aGVu
IHNsb3QgZWxlbWVudHMgYXJlIGluc2VydGVkIG9yIHJlbW92ZWQgCitQQVNTIGFzc2lnbmVkTm9k
ZXMoe2ZsYXR0ZW46IHRydWV9KSBtdXN0IHJldHVybiB0aGUgZGlzdHJpYnV0ZWQgbm9kZXMsIGFu
ZCBhc3NpZ25lZE5vZGVzKCkgYW5kIGFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkgbXVz
dCByZXR1cm5lZCB0aGUgYXNzaWduZWQgbm9kZXMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9IVE1MU2xvdEVsZW1l
bnQtaW50ZXJmYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NoYWRvdy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM0OWU2ZWUzMTExYmZjNDMwNzRkMmU2YzM1MjYwODQ1Mzc3YmYzYjYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRv
dy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS5odG1sCkBAIC0wLDAgKzEsMjY5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2hhZG93IERPTTogSFRNTFNs
b3RFbGVtZW50IGludGVyZmFjZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJS
eW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iSFRNTFNsb3RFbGVtZW50IG11c3QgZXhpc3Qgb24gd2luZG93IHdp
dGggbmFtZSBhdHRyaWJ1dGUgYW5kIGdldEFzc2lnbmVkTm9kZSgpIG1ldGhvZCI+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMv
c2hhZG93LyN0aGUtc2xvdC1lbGVtZW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICBhc3NlcnRfdHJ1ZSgnSFRNTFNsb3RFbGVtZW50JyBpbiB3aW5kb3csICdIVE1MU2xvdEVs
ZW1lbnQgbXVzdCBiZSBkZWZpbmVkIG9uIHdpbmRvdycpOworICAgIGFzc2VydF9lcXVhbHMoSFRN
TFNsb3RFbGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18sIEhUTUxFbGVtZW50LnByb3RvdHlwZSwg
J0hUTUxTbG90RWxlbWVudCBzaG91bGQgaW5oZXJpdCBmcm9tIEhUTUxFbGVtZW50Jyk7CisgICAg
YXNzZXJ0X3RydWUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpIGluc3RhbmNlb2YgSFRN
TFNsb3RFbGVtZW50LCAnc2xvdCBlbGVtZW50IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1M
U2xvdEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
bG90JykgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCwgJ3Nsb3QgZWxlbWVudCBzaG91bGQgYmUgYW4g
aW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKK30sICdIVE1MU2xvdEVsZW1lbnQgbXVzdCBiZSBk
ZWZpbmVkIG9uIHdpbmRvdycpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBhc3NlcnRfdHJ1
ZSgnbmFtZScgaW4gSFRNTFNsb3RFbGVtZW50LnByb3RvdHlwZSwgJyJuYW1lIiBhdHRyaWJ1dGUg
bXVzdCBiZSBkZWZpbmVkIG9uIEhUTUxTbG90RWxlbWVudC5wcm90b3R5cGUnKTsKKworICAgIHZh
ciBzbG90RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNsb3RFbGVtZW50Lm5hbWUsICcnLCAnIm5hbWUiIGF0dHJpYnV0ZSBtdXN0IHJl
dHVybiB0aGUgZW1wdHkgc3RyaW5nIHdoZW4gIm5hbWUiIGNvbnRlbnQgYXR0cmlidXRlIGlzIG5v
dCBzZXQnKTsKKworICAgIHNsb3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnbmFtZScsICdmb28nKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNsb3RFbGVtZW50Lm5hbWUsICdmb28nLCAnIm5hbWUiIGF0dHJp
YnV0ZSBtdXN0IHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICJuYW1lIiBjb250ZW50IGF0dHJpYnV0
ZScpOworCisgICAgc2xvdEVsZW1lbnQubmFtZSA9ICdiYXInOworICAgIGFzc2VydF9lcXVhbHMo
c2xvdEVsZW1lbnQubmFtZSwgJ2JhcicsICcibmFtZSIgYXR0cmlidXRlIG11c3QgcmV0dXJuIHRo
ZSBhc3NpZ25lZCB2YWx1ZScpOworICAgIGFzc2VydF9lcXVhbHMoc2xvdEVsZW1lbnQuZ2V0QXR0
cmlidXRlKCduYW1lJyksICdiYXInLCAnIm5hbWUiIGF0dHJpYnV0ZSBtdXN0IHVwZGF0ZSB0aGUg
Im5hbWUiIGNvbnRlbnQgYXR0cmlidXRlJyk7Cit9LCAnIm5hbWUiIGF0dHJpYnV0ZSBvbiBIVE1M
U2xvdEVsZW1lbnQgbXVzdCByZWZsZWN0ICJuYW1lIiBhdHRyaWJ1dGUnKTsKKworZnVuY3Rpb24g
dGVzdFNsb3RPdXRzaWRlU2hhZG93VHJlZShvcHRpb25zKQoreworICAgIHRlc3QoZnVuY3Rpb24g
KCkgeworICAgICAgICBhc3NlcnRfdHJ1ZSgnYXNzaWduZWROb2RlcycgaW4gSFRNTFNsb3RFbGVt
ZW50LnByb3RvdHlwZSwgJyJhc3NpZ25lZE5vZGVzIiBtZXRob2QgbXVzdCBiZSBkZWZpbmVkIG9u
IEhUTUxTbG90RWxlbWVudC5wcm90b3R5cGUnKTsKKworICAgICAgICB2YXIgc2xvdEVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW10sICdhc3NpZ25lZE5v
ZGVzKCkgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlz
IG5vdCBpbiBhbnkgdHJlZScpOworCisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
c2xvdEVsZW1lbnQpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFz
c2lnbmVkTm9kZXMob3B0aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcygpIG11c3QgcmV0dXJuIGFu
IGVtcHR5IGFycmF5IHdoZW4gdGhlIHNsb3QgZWxlbWVudCBpcyBpbiBhIGRvY3VtZW50IHRyZWUn
KTsKKworICAgIH0sICdhc3NpZ25lZE5vZGVzKCcgKyAob3B0aW9ucyA/IEpTT04uc3RyaW5naWZ5
KG9wdGlvbnMpIDogJycpCisgICAgICAgICsgJykgb24gYSBIVE1MU2xvdEVsZW1lbnQgbXVzdCBy
ZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlzIG5vdCBpbiBhIHRy
ZWUgb3IgaW4gYSBkb2N1bWVudCB0cmVlJyk7Cit9CisKK3Rlc3RTbG90T3V0c2lkZVNoYWRvd1Ry
ZWUobnVsbCk7Cit0ZXN0U2xvdE91dHNpZGVTaGFkb3dUcmVlKHtmbGF0dGVuZWQ6IGZhbHNlfSk7
Cit0ZXN0U2xvdE91dHNpZGVTaGFkb3dUcmVlKHtmbGF0dGVuZWQ6IHRydWV9KTsKKworZnVuY3Rp
b24gdGVzdFNpbmdsZUxldmVsT2ZTbG90dGluZyhvcHRpb25zKQoreworICAgIHRlc3QoZnVuY3Rp
b24gKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZSgnYXNzaWduZWROb2RlcycgaW4gSFRNTFNsb3RF
bGVtZW50LnByb3RvdHlwZSwgJyJhc3NpZ25lZE5vZGVzIiBtZXRob2QgbXVzdCBiZSBkZWZpbmVk
IG9uIEhUTUxTbG90RWxlbWVudC5wcm90b3R5cGUnKTsKKworICAgICAgICB2YXIgc2hhZG93SG9z
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICB2YXIgY2hpbGQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CisKKyAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBz
aGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7CisgICAgICAgIHZhciBzbG90
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgc2hhZG93
Um9vdC5hcHBlbmRDaGlsZChzbG90RWxlbWVudCk7CisKKyAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwgJ2Fzc2lnbmVkTm9k
ZXMoKSBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZXJlIGFyZSBubyBub2RlcyBp
biB0aGUgc2hhZG93IHRyZWUnKTsKKworICAgICAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNo
aWxkKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5v
ZGVzKG9wdGlvbnMpLCBbY2hpbGRdLCAnYXNzaWduZWROb2RlcygpIG9uIGEgZGVmYXVsdCBzbG90
IG11c3QgcmV0dXJuIGFuIGVsZW1lbnQgd2l0aG91dCBzbG90IGVsZW1lbnQnKTsKKworICAgICAg
ICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ3Nsb3QnLCAnZm9vJyk7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW10sICdhc3NpZ25l
ZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCBub3QgcmV0dXJuIGFuIGVsZW1lbnQgd2l0
aCBub24tZW1wdHkgc2xvdCBhdHRyaWJ1dGUnKTsKKworICAgICAgICBjaGlsZC5zZXRBdHRyaWJ1
dGUoJ3Nsb3QnLCAnJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQu
YXNzaWduZWROb2RlcyhvcHRpb25zKSwgW2NoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMoKSBvbiBhIGRl
ZmF1bHQgc2xvdCBtdXN0IHJldHVybiBhbiBlbGVtZW50IHdpdGggZW1wdHkgc2xvdCBhdHRyaWJ1
dGUnKTsKKworICAgICAgICBzbG90RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnYmFyJyk7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2Rlcyhv
cHRpb25zKSwgW10sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBuYW1lZCBzbG90IG11c3Qgbm90IHJl
dHVybiBhbiBlbGVtZW50IHdpdGggZW1wdHkgc2xvdCBhdHRyaWJ1dGUnKTsKKworICAgICAgICBz
bG90RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnJyk7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW2NoaWxkXSwgJ2Fz
c2lnbmVkTm9kZXMoKSBvbiBhbiBlbXB0eSBuYW1lIHNsb3QgbXVzdCByZXR1cm4gYW4gZWxlbWVu
dCB3aXRoIGVtcHR5IHNsb3QgYXR0cmlidXRlJyk7CisKKyAgICB9LCAnYXNzaWduZWROb2Rlcygn
ICsgKG9wdGlvbnMgPyBKU09OLnN0cmluZ2lmeShvcHRpb25zKSA6ICcnKSArICcpIG11c3QgcmV0
dXJuIHRoZSBsaXN0IG9mIGFzc2lnbmVkIG5vZGVzIHdoZW4gbm9uZSBvZiB0aGUgYXNzaWduZWQg
bm9kZXMgdGhlbXNlbHZlcyBhcmUgc2xvdHMnKTsKK30KKwordGVzdFNpbmdsZUxldmVsT2ZTbG90
dGluZyhudWxsKTsKK3Rlc3RTaW5nbGVMZXZlbE9mU2xvdHRpbmcoe2ZsYXR0ZW5lZDogZmFsc2V9
KTsKK3Rlc3RTaW5nbGVMZXZlbE9mU2xvdHRpbmcoe2ZsYXR0ZW5lZDogdHJ1ZX0pOworCitmdW5j
dGlvbiB0ZXN0TXV0YXRpbmdTbG90dGVkQ29udGVudHMob3B0aW9ucykKK3sKKyAgICB0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7
CisgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYicpOworICAgICAgICBz
aGFkb3dIb3N0LmFwcGVuZENoaWxkKHApOworICAgICAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxk
KGIpOworCisgICAgICAgIHZhciBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3co
e21vZGU6ICdvcGVuJ30pOworICAgICAgICB2YXIgc2xvdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzbG90Jyk7CisgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xvdEVs
ZW1lbnQpOworCisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWdu
ZWROb2RlcyhvcHRpb25zKSwgW3AsIGJdLCAnYXNzaWduZWROb2RlcyBtdXN0IHJldHVybiB0aGUg
ZGlzdHJpYnV0ZWQgbm9kZXMnKTsKKworICAgICAgICBzbG90RWxlbWVudC5uYW1lID0gJ2Zvbyc7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2Rlcyhv
cHRpb25zKSwgW10sICdhc3NpZ25lZE5vZGVzIG11c3QgYmUgZW1wdHkgd2hlbiB0aGVyZSBhcmUg
bm8gbWF0Y2hpbmcgZWxlbWVudHMgZm9yIHRoZSBzbG90IG5hbWUnKTsKKworICAgICAgICBiLnNs
b3QgPSAnZm9vJzsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3Np
Z25lZE5vZGVzKG9wdGlvbnMpLCBbYl0sICdhc3NpZ25lZE5vZGVzIG11c3QgcmV0dXJuIHRoZSBu
b2RlcyB3aXRoIHRoZSBtYXRjaGluZyBzbG90IG5hbWUnKTsKKworICAgICAgICBwLnNsb3QgPSAn
Zm9vJzsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5v
ZGVzKG9wdGlvbnMpLCBbcCwgYl0sICdhc3NpZ25lZE5vZGVzIG11c3QgcmV0dXJuIHRoZSBub2Rl
cyB3aXRoIHRoZSBtYXRjaGluZyBzbG90IG5hbWUgaW4gdGhlIHRyZWUgb3JkZXInKTsKKworICAg
ICAgICBzbG90RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ25hbWUnKTsKKyAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwgJ2Fz
c2lnbmVkTm9kZXMgbXVzdCBiZSBlbXB0eSBmb3IgYSBkZWZhdWx0IHNsb3Qgd2hlbiBhbGwgZWxl
bWVudHMgaGF2ZSAic2xvdCIgYXR0cmlidXRlcyBzcGVjaWZpZWQnKTsKKworICAgIH0sICdhc3Np
Z25lZE5vZGVzKCcgKyAob3B0aW9ucyA/IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpIDogJycpICsg
JykgbXVzdCB1cGRhdGUgd2hlbiBzbG90IGFuZCBuYW1lIGF0dHJpYnV0ZXMgYXJlIG1vZGlmaWVk
Jyk7Cit9CisKK3Rlc3RNdXRhdGluZ1Nsb3R0ZWRDb250ZW50cyhudWxsKTsKK3Rlc3RNdXRhdGlu
Z1Nsb3R0ZWRDb250ZW50cyh7ZmxhdHRlbmVkOiBmYWxzZX0pOwordGVzdE11dGF0aW5nU2xvdHRl
ZENvbnRlbnRzKHtmbGF0dGVuZWQ6IHRydWV9KTsKKworZnVuY3Rpb24gdGVzdE11dGF0aW5nU2xv
dE5hbWUob3B0aW9ucykKK3sKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHNo
YWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgdmFyIGNo
aWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgICBzaGFkb3dIb3N0
LmFwcGVuZENoaWxkKGNoaWxkKTsKKworICAgICAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hv
c3QuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KTsKKyAgICAgICAgdmFyIHNsb3RFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOworICAgICAgICBzbG90RWxlbWVudC5u
YW1lID0gJ2Zvbyc7CisgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xvdEVsZW1lbnQp
OworCisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2Rl
cyhvcHRpb25zKSwgW10sICdhc3NpZ25lZE5vZGVzIG11c3QgYmUgZW1wdHkgd2hlbiB0aGVyZSBh
cmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMgZm9yIHRoZSBzbG90IG5hbWUnKTsKKworICAgICAgICBz
bG90RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ25hbWUnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbY2hpbGRdLCAnYXNz
aWduZWROb2RlcyBtdXN0IGJlIGVtcHR5IHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIGVsZW1l
bnRzIGZvciB0aGUgc2xvdCBuYW1lJyk7CisKKyAgICB9LCAnYXNzaWduZWROb2RlcyBtdXN0IHVw
ZGF0ZSB3aGVuIGEgZGVmYXVsdCBzbG90IGlzIGludHJvZHVjZWQgZHluYW1pY2FsbHkgYnkgYSBz
bG90IHJlbmFtZScpOworfQorCit0ZXN0TXV0YXRpbmdTbG90TmFtZShudWxsKTsKK3Rlc3RNdXRh
dGluZ1Nsb3ROYW1lKHtmbGF0dGVuZWQ6IGZhbHNlfSk7Cit0ZXN0TXV0YXRpbmdTbG90TmFtZSh7
ZmxhdHRlbmVkOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHRlc3RJbnNlcnRpbmdBbmRSZW1vdmluZ1Ns
b3RzKG9wdGlvbnMpCit7CisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzaGFk
b3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIHZhciBwID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOworICAgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCcnKTsKKyAgICAgICAgdmFyIGNvbW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVDb21tZW50KCcnKTsKKyAgICAgICAgdmFyIHByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IGRvY3Vt
ZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigndGFyZ2V0JywgJ2RhdGEnKTsKKyAgICAg
ICAgdmFyIGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdiJyk7CisgICAgICAgIHNoYWRvd0hv
c3QuYXBwZW5kQ2hpbGQocCk7CisgICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQodGV4dCk7
CisgICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoY29tbWVudCk7CisgICAgICAgIHNoYWRv
d0hvc3QuYXBwZW5kQ2hpbGQocHJvY2Vzc2luZ0luc3RydWN0aW9uKTsKKyAgICAgICAgc2hhZG93
SG9zdC5hcHBlbmRDaGlsZChiKTsKKworICAgICAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hv
c3QuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KTsKKworICAgICAgICB2YXIgZmlyc3RTbG90
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgc2hhZG93
Um9vdC5hcHBlbmRDaGlsZChmaXJzdFNsb3RFbGVtZW50KTsKKworICAgICAgICB2YXIgc2Vjb25k
U2xvdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2Vjb25kU2xvdEVsZW1lbnQpOworCisgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoZmlyc3RTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBb
cCwgdGV4dCwgYl0sCisgICAgICAgICAgICAnYXNzaWduZWROb2RlcyBvbiBhIGRlZmF1bHQgc2xv
dCBtdXN0IHJldHVybiB0aGUgZWxlbWVudHMgd2l0aG91dCBzbG90IGF0dHJpYnV0ZXMgYW5kIHRl
eHQgbm9kZXMnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzZWNvbmRTbG90RWxlbWVu
dC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwKKyAgICAgICAgICAgICdhc3NpZ25lZE5vZGVz
IG9uIHRoZSBzZWNvbmQgdW5uYW1lZCBzbG90IGVsZW1lbnQgbXVzdCByZXR1cm4gYW4gZW1wdHkg
YXJyYXknKTsKKworICAgICAgICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKGZpcnN0U2xvdEVsZW1l
bnQpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGZpcnN0U2xvdEVsZW1lbnQuYXNzaWdu
ZWROb2RlcyhvcHRpb25zKSwgW10sCisgICAgICAgICAgICAnYXNzaWduZWROb2RlcyBvbiBhIGRl
dGFjaGVkIGZvcm1lcmx5LWRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheScp
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNlY29uZFNsb3RFbGVtZW50LmFzc2lnbmVk
Tm9kZXMob3B0aW9ucyksIFtwLCB0ZXh0LCBiXSwKKyAgICAgICAgICAgICdhc3NpZ25lZE5vZGVz
IG9uIHRoZSBzZWNvbmQgdW5uYW1lZCBzbG90IGVsZW1lbnQgYWZ0ZXIgcmVtb3ZpbmcgdGhlIGZp
cnN0IG11c3QgcmV0dXJuIHRoZSBlbGVtZW50cyB3aXRob3V0IHNsb3QgYXR0cmlidXRlcyBhbmQg
dGV4dCBub2RlcycpOworCisgICAgICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoc2Vjb25kU2xv
dEVsZW1lbnQpOworICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNlY29uZFNsb3RFbGVt
ZW50KTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhmaXJzdFNsb3RFbGVtZW50LmFzc2ln
bmVkTm9kZXMob3B0aW9ucyksIFtdLAorICAgICAgICAgICAgJ1JlbW92aW5nIGFuZCByZS1pbnNl
cnRpbmcgYSBkZWZhdWx0IHNsb3QgbXVzdCBub3QgY2hhbmdlIHRoZSByZXN1bHQgb2YgYXNzaWdu
ZWROb2RlcyBvbiBhIGRldGFjaGVkIHNsb3QnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhzZWNvbmRTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbcCwgdGV4dCwgYl0s
CisgICAgICAgICAgICAnUmVtb3ZpbmcgYW5kIHJlLWluc2VydGluZyBhIGRlZmF1bHQgc2xvdCBt
dXN0IG5vdCBjaGFuZ2UgdGhlIHJlc3VsdCBvZiBhc3NpZ25lZE5vZGVzJyk7CisKKyAgICAgICAg
c2hhZG93Um9vdC5pbnNlcnRCZWZvcmUoZmlyc3RTbG90RWxlbWVudCwgc2Vjb25kU2xvdEVsZW1l
bnQpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGZpcnN0U2xvdEVsZW1lbnQuYXNzaWdu
ZWROb2RlcyhvcHRpb25zKSwgW3AsIHRleHQsIGJdLAorICAgICAgICAgICAgJ2Fzc2lnbmVkTm9k
ZXMgb24gYSBuZXdseSBpbnNlcnRlZCB1bm5hbWVkIHNsb3QgZWxlbWVudCBtdXN0IHJldHVybiB0
aGUgZWxlbWVudHMgd2l0aG91dCBzbG90IGF0dHJpYnV0ZXMgYW5kIHRleHQgbm9kZXMnKTsKKyAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzZWNvbmRTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVz
KG9wdGlvbnMpLCBbXSwKKyAgICAgICAgICAgICdhc3NpZ25lZE5vZGVzIG9uIGZvcm1lcmx5LWZp
cnN0IGJ1dCBub3cgc2Vjb25kIHVubmFtZWQgc2xvdCBlbGVtZW50IG11c3QgcmV0dXJuIGFuIGVt
cHR5IGFycmF5Jyk7CisKKyAgICB9LCAnYXNzaWduZWROb2RlcyBtdXN0IHVwZGF0ZSB3aGVuIHNs
b3QgZWxlbWVudHMgYXJlIGluc2VydGVkIG9yIHJlbW92ZWQnKTsKK30KKwordGVzdEluc2VydGlu
Z0FuZFJlbW92aW5nU2xvdHMobnVsbCk7Cit0ZXN0SW5zZXJ0aW5nQW5kUmVtb3ZpbmdTbG90cyh7
ZmxhdHRlbmVkOiBmYWxzZX0pOwordGVzdEluc2VydGluZ0FuZFJlbW92aW5nU2xvdHMoe2ZsYXR0
ZW5lZDogdHJ1ZX0pOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb3V0ZXJIb3N0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIG91dGVyQ2hpbGQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgb3V0ZXJIb3N0LmFwcGVuZENoaWxkKG91
dGVyQ2hpbGQpOworCisgICAgdmFyIG91dGVyU2hhZG93ID0gb3V0ZXJIb3N0LmF0dGFjaFNoYWRv
dyh7bW9kZTogJ2Nsb3NlZCd9KTsKKyAgICB2YXIgaW5uZXJIb3N0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIG91dGVyU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3Nsb3QnKTsKKyAgICB2YXIgaW5uZXJDaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2InKTsKKyAgICBvdXRlclNoYWRvdy5hcHBlbmRDaGlsZChpbm5lckhvc3QpOworICAgIGlubmVy
SG9zdC5hcHBlbmRDaGlsZChvdXRlclNsb3QpOworICAgIGlubmVySG9zdC5hcHBlbmRDaGlsZChp
bm5lckNoaWxkKTsKKworICAgIHZhciBpbm5lclNoYWRvdyA9IGlubmVySG9zdC5hdHRhY2hTaGFk
b3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAgdmFyIGlubmVyU2xvdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICBpbm5lclNoYWRvdy5hcHBlbmRDaGlsZChpbm5lclNsb3Qp
OworCisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvdXRlclNsb3QuYXNzaWduZWROb2RlcygpLCBb
b3V0ZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1
cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvdXRlclNs
b3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyQ2hpbGRdLCAnYXNzaWdu
ZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0
aGUgYXNzaWduZWQgbm9kZXMnKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG91dGVyU2xvdC5h
c3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtvdXRlckNoaWxkXSwgJ2Fzc2lnbmVkTm9k
ZXMoe2ZsYXR0ZW46IHRydWV9KSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUgYXNz
aWduZWQgbm9kZXMgaWYgdGhleSBhcmUgbm90IHRoZW1zZWx2ZXMgc2xvdHMnKTsKKworICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoKSwgW291dGVyU2xvdCwg
aW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1
cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNs
b3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyU2xvdCwgaW5uZXJDaGls
ZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11
c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
aW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRydWV9KSwgW291dGVyQ2hpbGQsIGlu
bmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgZGVmYXVsdCBz
bG90IG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRlZCBub2RlcycpOworCisgICAgb3V0ZXJTbG90
Lm5hbWUgPSAnZm9vJzsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG91dGVyU2xvdC5hc3NpZ25l
ZE5vZGVzKCksIFtdLCAnYXNzaWduZWROb2RlcygpIG9uIGEgbmFtZWQgc2xvdCBtdXN0IHJldHVy
biBhbiBlbXB0eSBhcnJheSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMnKTsKKyAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKG91dGVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBm
YWxzZX0pLCBbXSwgJ2Fzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkgb24gYSBuYW1lZCBz
bG90IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIHRoZXJlIGFyZSBubyBtYXRjaGluZyBl
bGVtZW50cycpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMob3V0ZXJTbG90LmFzc2lnbmVkTm9k
ZXMoe2ZsYXR0ZW46IHRydWV9KSwgW10sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkg
b24gYSBuYW1lZCBzbG90IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIHRoZXJlIGFyZSBu
byBtYXRjaGluZyBlbGVtZW50cycpOworCisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNs
b3QuYXNzaWduZWROb2RlcygpLCBbb3V0ZXJTbG90LCBpbm5lckNoaWxkXSwgJ2Fzc2lnbmVkTm9k
ZXMoKSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUgYXNzaWduZWQgbm9kZXMnKTsK
KyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlubmVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVu
OiBmYWxzZX0pLCBbb3V0ZXJTbG90LCBpbm5lckNoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMoe2ZsYXR0
ZW46IGZhbHNlfSkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5v
ZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7
ZmxhdHRlbjogdHJ1ZX0pLCBbaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0
cnVlfSkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGRpc3RyaWJ1dGVkIG5vZGVz
Jyk7CisKKyAgICBvdXRlckNoaWxkLnNsb3QgPSAnZm9vJzsKKyAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKG91dGVyU2xvdC5hc3NpZ25lZE5vZGVzKCksIFtvdXRlckNoaWxkXSwgJ2Fzc2lnbmVkTm9k
ZXMoKSBvbiBhIG5hbWVkIHNsb3QgbXVzdCByZXR1cm4gbWF0Y2hpbmcgZWxlbWVudHMnKTsKKyAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKG91dGVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBm
YWxzZX0pLCBbb3V0ZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9u
IGEgbmFtZWQgc2xvdCBtdXN0IHJldHVybiBtYXRjaGluZyBlbGVtZW50cycpOworICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMob3V0ZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRydWV9KSwg
W291dGVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgbmFtZWQg
c2xvdCBtdXN0IHJldHVybiBtYXRjaGluZyBlbGVtZW50cycpOworCisgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2RlcygpLCBbb3V0ZXJTbG90LCBpbm5lckNoaWxk
XSwgJ2Fzc2lnbmVkTm9kZXMoKSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUgYXNz
aWduZWQgbm9kZXMnKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlubmVyU2xvdC5hc3NpZ25l
ZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pLCBbb3V0ZXJTbG90LCBpbm5lckNoaWxkXSwgJ2Fzc2ln
bmVkTm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4g
dGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3Qu
YXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pLCBbb3V0ZXJDaGlsZCwgaW5uZXJDaGlsZF0s
ICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCBy
ZXR1cm4gdGhlIGRpc3RyaWJ1dGVkIG5vZGVzJyk7CisKKyAgICB2YXIgbmV3SW5uZXJTbG90ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOworICAgIGlubmVyU2hhZG93Lmluc2VydEJl
Zm9yZShuZXdJbm5lclNsb3QsIGlubmVyU2xvdCk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhu
ZXdJbm5lclNsb3QuYXNzaWduZWROb2RlcygpLCBbb3V0ZXJTbG90LCBpbm5lckNoaWxkXSwgJ2Fz
c2lnbmVkTm9kZXMoKSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUgYXNzaWduZWQg
bm9kZXMnKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ld0lubmVyU2xvdC5hc3NpZ25lZE5v
ZGVzKHtmbGF0dGVuOiBmYWxzZX0pLCBbb3V0ZXJTbG90LCBpbm5lckNoaWxkXSwgJ2Fzc2lnbmVk
Tm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhl
IGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXdJbm5lclNsb3Qu
YXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pLCBbb3V0ZXJDaGlsZCwgaW5uZXJDaGlsZF0s
ICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCBy
ZXR1cm4gdGhlIGRpc3RyaWJ1dGVkIG5vZGVzJyk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGlubmVyU2xvdC5hc3NpZ25lZE5vZGVzKCksIFtdLCAnYXNzaWduZWROb2RlcygpIG9uIGEgbmFt
ZWxlc3Mgc2xvdCBlbGVtZW50IHdoaWNoIGFwcGVhcnMgYWZ0ZXIgYSBkZWZhdWx0IHNsb3QgbXVz
dCByZXR1cm4gYW4gZW1wdHkgYXJyYXknKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlubmVy
U2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pLCBbXSwgJ2Fzc2lnbmVkTm9kZXMo
e2ZsYXR0ZW46IGZhbHNlfSkgb24gYSBuYW1lbGVzcyBzbG90IGVsZW1lbnQgd2hpY2ggYXBwZWFy
cyBhZnRlciBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheScpOworICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRy
dWV9KSwgW10sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgb24gYSBuYW1lbGVzcyBz
bG90IGVsZW1lbnQgd2hpY2ggYXBwZWFycyBhZnRlciBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVy
biBhbiBlbXB0eSBhcnJheScpOworCisgICAgaW5uZXJTaGFkb3cucmVtb3ZlQ2hpbGQobmV3SW5u
ZXJTbG90KTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ld0lubmVyU2xvdC5hc3NpZ25lZE5v
ZGVzKCksIFtdLCAnYXNzaWduZWROb2RlcygpIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdo
ZW4gdGhlIHNsb3QgZWxlbWVudCBpcyBub3QgaW4gYW55IHRyZWUnKTsKKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKG5ld0lubmVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pLCBb
XSwgJ2Fzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkgbXVzdCByZXR1cm4gYW4gZW1wdHkg
YXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlzIG5vdCBpbiBhbnkgdHJlZScpOworICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobmV3SW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRy
dWV9KSwgW10sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgbXVzdCByZXR1cm4gYW4g
ZW1wdHkgYXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlzIG5vdCBpbiBhbnkgdHJlZScpOwor
CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2RlcygpLCBbb3V0
ZXJTbG90LCBpbm5lckNoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMoKSBvbiBhIGRlZmF1bHQgc2xvdCBt
dXN0IHJldHVybiB0aGUgYXNzaWduZWQgbm9kZXMnKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGlubmVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pLCBbb3V0ZXJTbG90LCBp
bm5lckNoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkgb24gYSBkZWZhdWx0
IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pLCBbb3V0ZXJD
aGlsZCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgb24gYSBk
ZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGRpc3RyaWJ1dGVkIG5vZGVzJyk7CisKK30sICdh
c3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgbXVzdCByZXR1cm4gdGhlIGRpc3RyaWJ1dGVk
IG5vZGVzLCBhbmQgYXNzaWduZWROb2RlcygpIGFuZCBhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBm
YWxzZX0pIG11c3QgcmV0dXJuZWQgdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL01vdXNlRXZlbnQtcHJvdG90eXBlLW9mZnNldFgt
b2Zmc2V0WS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vTW91c2VFdmVudC1wcm90b3R5cGUtb2Zmc2V0WC1vZmZzZXRZ
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDcwMDgyYTA4YWUyYzM4NGQ3OTk5MzAzZjY5MDUx
NmVmNmQyNzU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL01vdXNlRXZlbnQtcHJvdG90eXBlLW9mZnNldFgt
b2Zmc2V0WS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDbGljayBoZXJlCisKK1BBU1Mg
TW91c2VFdmVudCdzIG9mZnNldFggYW5kIG9mZnNldFkgYXR0cmlidXRlcyBtdXN0IGJlIHJlbGF0
aXZlIHRvIHRoZSB0YXJnZXQuIAorUEFTUyBNb3VzZUV2ZW50J3Mgb2Zmc2V0WCBhbmQgb2Zmc2V0
WSBhdHRyaWJ1dGVzIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIHNoYWRvdyBob3N0IHdoZW4gYW4g
ZXZlbnQgaXMgZGlzcGF0Y2hlZCBpbnNpZGUgaXRzIHNoYWRvdyB0cmVlLiAKK1BBU1MgTW91c2VF
dmVudCdzIG9mZnNldFggYW5kIG9mZnNldFkgYXR0cmlidXRlcyBtdXN0IGJlIHJlbGF0aXZlIHRv
IHRoZSB0YXJnZXQgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVkIG9uIGEgc2xvdHRlZCBjb250
ZW50LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zaGFkb3ctZG9tL01vdXNlRXZlbnQtcHJvdG90eXBlLW9mZnNldFgtb2Zmc2V0WS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ct
ZG9tL01vdXNlRXZlbnQtcHJvdG90eXBlLW9mZnNldFgtb2Zmc2V0WS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA1YzVjNTg0ZTRjMWU3MTUxOGUyZjNiYzdiMmNiNmU5Y2NiN2U5YjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vTW91c2VFdmVudC1wcm90b3R5cGUtb2Zmc2V0WC1vZmZzZXRZLmh0bWwKQEAgLTAsMCArMSwx
NTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TaGFkb3cgRE9N
OiBNb3VzZUV2ZW50J3Mgb2Zmc2V0WCBhbmQgb2Zmc2V0WSBhdHRyaWJ1dGVzIG11c3QgYmUgcmVs
YXRpdmUgdG8gdGhlIHJlbGF0aXZlIHRhcmdldC48L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9y
IiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8
bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlRoZSBNb3VzZUV2ZW50IG9mZnNldFggYW5kIG9m
ZnNldFkgYXR0cmlidXRlcyBtdXN0IHJldHVybiB0aGUgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8g
dGhlIG9yaWdpbiBvZiB0aGUgcGFkZGluZyBlZGdlIG9mIHRoZSByZWxhdGl2ZSB0YXJnZXQiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRz
L3NwZWMvc2hhZG93LyNldmVudC1kaXNwYXRjaCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9ldmVudC1wYXRoLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzdHlsZT4KK2h0bWwsIGJvZHkgeyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7
IH0KK215LWhvc3QgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDE4MHB4OyBoZWlnaHQ6IDgwcHg7
IG1hcmdpbjogMTBweCAyMHB4OyBwYWRkaW5nOiAxMHB4OyBiYWNrZ3JvdW5kOiAjY2NjOyB9Cisj
bG9nIHsgbWFyZ2luOiAxcmVtOyB9Cis8L3N0eWxlPgorPG15LWhvc3Q+PC9teS1ob3N0PgorPGRp
diBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBzaGFkb3dTdHlsZSA9ICcjY29udGFp
bmVyIHsgd2lkdGg6IDE2MHB4OyBoZWlnaHQ6IDYwcHg7IHBhZGRpbmc6IDEwcHg7IGJhY2tncm91
bmQ6IHllbGxvdzsgfSAjdGFyZ2V0IHsgbWFyZ2luLWxlZnQ6IDVweDsgYmFja2dyb3VuZDogb3Jh
bmdlOyB9JzsKK3ZhciBob3N0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktaG9zdCcpOwor
CitmdW5jdGlvbiBhdHRhY2hMb2dnZXJzKHRhcmdldHMpCit7CisgICAgdmFyIGV2ZW50TG9ncyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7IGkrKykgeworICAg
ICAgICB0YXJnZXRzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uIChl
dmVudCkgeworICAgICAgICAgICAgZXZlbnRMb2dzLnB1c2goe2N1cnJlbnQ6IHRoaXMsIHRhcmdl
dDogZXZlbnQudGFyZ2V0LCBvZmZzZXRYOiBldmVudC5vZmZzZXRYLCBvZmZzZXRZOiBldmVudC5v
ZmZzZXRZfSk7CisgICAgICAgIH0pOworICAgIH0KKyAgICByZXR1cm4gZXZlbnRMb2dzOworfQor
Cit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBob3N0LmlubmVySFRNTCA9ICc8c3R5bGU+JyArIHNo
YWRvd1N0eWxlICsgJzwvc3R5bGU+PGRpdiBpZD0iY29udGFpbmVyIj48c3BhbiBpZD0idGFyZ2V0
Ij5DbGljayBoZXJlPC9kaXY+PC9kaXY+JzsKKworICAgIHZhciB0YXJnZXQgPSBob3N0LnF1ZXJ5
U2VsZWN0b3IoJyN0YXJnZXQnKTsKKyAgICB2YXIgY29udGFpbmVyID0gaG9zdC5xdWVyeVNlbGVj
dG9yKCcjY29udGFpbmVyJyk7CisKKyAgICB2YXIgZXZlbnRMb2dzID0gYXR0YWNoTG9nZ2Vycyhb
dGFyZ2V0LCBjb250YWluZXIsIGhvc3QsIGRvY3VtZW50LmJvZHldKTsKKyAgICB2YXIgbW91c2VF
dmVudCA9IG5ldyBNb3VzZUV2ZW50KCdtb3VzZWRvd24nLCB7Y2xpZW50WDogNTEsIGNsaWVudFk6
IDM3LCBjb21wb3NlZDogdHJ1ZSwgYnViYmxlczogdHJ1ZX0pOworICAgIHRhcmdldC5kaXNwYXRj
aEV2ZW50KG1vdXNlRXZlbnQpOworCisgICAgYXNzZXJ0X2VxdWFscyhob3N0Lm9mZnNldExlZnQs
IDIwLCAnVGhlIGhvc3QgbXVzdCBiZSBhdCAoMjBweCwgMTBweCknKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGhvc3Qub2Zmc2V0VG9wLCAxMCwgJ1RoZSBob3N0IG11c3QgYmUgYXQgKDIwcHgsIDEwcHgp
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXQub2Zmc2V0TGVmdCwgNDUsICdUaGUgdGFyZ2V0
IG11c3QgYmUgYXQgKDQ1cHgsIDMwcHgpJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXQub2Zm
c2V0VG9wLCAzMCwgJ1RoZSB0YXJnZXQgbXVzdCBiZSBhdCAoNDVweCwgMzBweCknKTsKKworICAg
IGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzBdLmN1cnJlbnQsIHRhcmdldCk7CisgICAgYXNzZXJ0
X2VxdWFscyhldmVudExvZ3NbMF0udGFyZ2V0LCB0YXJnZXQpOworICAgIGFzc2VydF9lcXVhbHMo
ZXZlbnRMb2dzWzBdLm9mZnNldFgsIDIxKTsgLy8gUGFkZGluZyBlZGdlIG9mIHRhcmdldCBpcyBh
dCAoMzBweCwgMjBweCkKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS5vZmZzZXRZLCAx
Nyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1sxXS5jdXJyZW50LCBjb250YWluZXIp
OworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzFdLnRhcmdldCwgdGFyZ2V0KTsKKyAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50TG9nc1sxXS5vZmZzZXRYLCAyMSk7CisgICAgYXNzZXJ0X2VxdWFs
cyhldmVudExvZ3NbMV0ub2Zmc2V0WSwgMTcpOworCisgICAgYXNzZXJ0X2VxdWFscyhldmVudExv
Z3NbMl0uY3VycmVudCwgaG9zdCk7CisgICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMl0udGFy
Z2V0LCB0YXJnZXQpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzJdLm9mZnNldFgsIDIx
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1syXS5vZmZzZXRZLCAxNyk7CisKKyAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50TG9nc1szXS5jdXJyZW50LCBkb2N1bWVudC5ib2R5KTsKKyAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50TG9nc1szXS50YXJnZXQsIHRhcmdldCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhldmVudExvZ3NbM10ub2Zmc2V0WCwgMjEpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRM
b2dzWzNdLm9mZnNldFksIDE3KTsKK30sICdNb3VzZUV2ZW50XCdzIG9mZnNldFggYW5kIG9mZnNl
dFkgYXR0cmlidXRlcyBtdXN0IGJlIHJlbGF0aXZlIHRvIHRoZSB0YXJnZXQuJyk7CisKK3ZhciBz
aGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7Cit0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8c3R5bGU+JyArIHNoYWRv
d1N0eWxlICsgJzwvc3R5bGU+PGRpdiBpZD0iY29udGFpbmVyIj48c3BhbiBpZD0idGFyZ2V0Ij5D
bGljayBoZXJlPC9kaXY+PC9kaXY+JzsKKworICAgIHZhciB0YXJnZXQgPSBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJyN0YXJnZXQnKTsKKyAgICB2YXIgY29udGFpbmVyID0gc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCcjY29udGFpbmVyJyk7CisKKyAgICB2YXIgZXZlbnRMb2dzID0gYXR0YWNo
TG9nZ2VycyhbdGFyZ2V0LCBjb250YWluZXIsIHNoYWRvd1Jvb3QsIGhvc3QsIGRvY3VtZW50LmJv
ZHldKTsKKyAgICB2YXIgbW91c2VFdmVudCA9IG5ldyBNb3VzZUV2ZW50KCdtb3VzZWRvd24nLCB7
Y2xpZW50WDogNTEsIGNsaWVudFk6IDM3LCBjb21wb3NlZDogdHJ1ZSwgYnViYmxlczogdHJ1ZX0p
OworICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpOworCisgICAgYXNzZXJ0X2Vx
dWFscyhob3N0Lm9mZnNldExlZnQsIDIwLCAnVGhlIGhvc3QgbXVzdCBiZSBhdCAoMjBweCwgMTBw
eCknKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhvc3Qub2Zmc2V0VG9wLCAxMCwgJ1RoZSBob3N0IG11
c3QgYmUgYXQgKDIwcHgsIDEwcHgpJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXQub2Zmc2V0
TGVmdCwgNDUsICdUaGUgdGFyZ2V0IG11c3QgYmUgYXQgKDQ1cHgsIDMwcHgpJyk7CisgICAgYXNz
ZXJ0X2VxdWFscyh0YXJnZXQub2Zmc2V0VG9wLCAzMCwgJ1RoZSB0YXJnZXQgbXVzdCBiZSBhdCAo
NDVweCwgMzBweCknKTsKKworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzBdLmN1cnJlbnQs
IHRhcmdldCk7CisgICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMF0udGFyZ2V0LCB0YXJnZXQp
OworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzBdLm9mZnNldFgsIDIxKTsgLy8gUGFkZGlu
ZyBlZGdlIG9mIHRhcmdldCBpcyBhdCAoMzBweCwgMjBweCkKKyAgICBhc3NlcnRfZXF1YWxzKGV2
ZW50TG9nc1swXS5vZmZzZXRZLCAxNyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1sx
XS5jdXJyZW50LCBjb250YWluZXIpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzFdLnRh
cmdldCwgdGFyZ2V0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1sxXS5vZmZzZXRYLCAy
MSk7CisgICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMV0ub2Zmc2V0WSwgMTcpOworCisgICAg
YXNzZXJ0X2VxdWFscyhldmVudExvZ3NbM10uY3VycmVudCwgaG9zdCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhldmVudExvZ3NbM10udGFyZ2V0LCBob3N0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50
TG9nc1szXS5vZmZzZXRYLCAzMSk7IC8vIFBhZGRpbmcgZWRnZSBvZiBob3N0IGlzIGF0ICgyMHB4
LCAxMHB4KQorICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzNdLm9mZnNldFksIDI3KTsKKwor
ICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzRdLmN1cnJlbnQsIGRvY3VtZW50LmJvZHkpOwor
ICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzRdLnRhcmdldCwgaG9zdCk7CisgICAgYXNzZXJ0
X2VxdWFscyhldmVudExvZ3NbNF0ub2Zmc2V0WCwgMzEpOworICAgIGFzc2VydF9lcXVhbHMoZXZl
bnRMb2dzWzRdLm9mZnNldFksIDI3KTsKK30sICdNb3VzZUV2ZW50XCdzIG9mZnNldFggYW5kIG9m
ZnNldFkgYXR0cmlidXRlcyBtdXN0IGJlIHJlbGF0aXZlIHRvIHRoZSBzaGFkb3cgaG9zdCB3aGVu
IGFuIGV2ZW50IGlzIGRpc3BhdGNoZWQgaW5zaWRlIGl0cyBzaGFkb3cgdHJlZS4nKTsKKwordGVz
dChmdW5jdGlvbiAoKSB7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHN0eWxlPicgKyBz
aGFkb3dTdHlsZSArICc8L3N0eWxlPjxkaXYgaWQ9ImNvbnRhaW5lciI+PHNsb3Q+PC9zbG90Pjwv
ZGl2Pic7CisgICAgaG9zdC5pbm5lckhUTUwgPSAnPHN0eWxlPicgKyBzaGFkb3dTdHlsZSArICc8
L3N0eWxlPjxkaXYgaWQ9InRhcmdldCI+Q2xpY2sgaGVyZTwvZGl2Pic7CisKKyAgICB2YXIgdGFy
Z2V0ID0gaG9zdC5xdWVyeVNlbGVjdG9yKCcjdGFyZ2V0Jyk7CisgICAgdmFyIGNvbnRhaW5lciA9
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2NvbnRhaW5lcicpOworCisgICAgdmFyIGV2ZW50
TG9ncyA9IGF0dGFjaExvZ2dlcnMoW3RhcmdldCwgY29udGFpbmVyLCBzaGFkb3dSb290LCBob3N0
LCBkb2N1bWVudC5ib2R5XSk7CisgICAgdmFyIG1vdXNlRXZlbnQgPSBuZXcgTW91c2VFdmVudCgn
bW91c2Vkb3duJywge2NsaWVudFg6IDUxLCBjbGllbnRZOiAzNywgY29tcG9zZWQ6IHRydWUsIGJ1
YmJsZXM6IHRydWV9KTsKKyAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKKwor
ICAgIGFzc2VydF9lcXVhbHMoaG9zdC5vZmZzZXRMZWZ0LCAyMCwgJ1RoZSBob3N0IG11c3QgYmUg
YXQgKDIwcHgsIDEwcHgpJyk7CisgICAgYXNzZXJ0X2VxdWFscyhob3N0Lm9mZnNldFRvcCwgMTAs
ICdUaGUgaG9zdCBtdXN0IGJlIGF0ICgyMHB4LCAxMHB4KScpOworICAgIGFzc2VydF9lcXVhbHMo
dGFyZ2V0Lm9mZnNldExlZnQsIDQ1LCAnVGhlIHRhcmdldCBtdXN0IGJlIGF0ICg0NXB4LCAzMHB4
KScpOworICAgIGFzc2VydF9lcXVhbHModGFyZ2V0Lm9mZnNldFRvcCwgMzAsICdUaGUgdGFyZ2V0
IG11c3QgYmUgYXQgKDQ1cHgsIDMwcHgpJyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9n
c1swXS5jdXJyZW50LCB0YXJnZXQpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzBdLnRh
cmdldCwgdGFyZ2V0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS50YXJnZXQub2Zm
c2V0UGFyZW50LCBkb2N1bWVudC5ib2R5KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1sw
XS5vZmZzZXRYLCA2KTsgLy8gUGFkZGluZyBlZGdlIG9mIHRhcmdldCBpcyBhdCAoNDVweCwgMzBw
eCkKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50TG9nc1swXS5vZmZzZXRZLCA3KTsKKworICAgIGFz
c2VydF9lcXVhbHMoZXZlbnRMb2dzWzFdLmN1cnJlbnQsIGNvbnRhaW5lcik7CisgICAgYXNzZXJ0
X2VxdWFscyhldmVudExvZ3NbMV0udGFyZ2V0LCB0YXJnZXQpOworICAgIGFzc2VydF9lcXVhbHMo
ZXZlbnRMb2dzWzFdLm9mZnNldFgsIDYpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzFd
Lm9mZnNldFksIDcpOworCisgICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMl0uY3VycmVudCwg
c2hhZG93Um9vdCk7CisgICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbMl0udGFyZ2V0LCB0YXJn
ZXQpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzJdLm9mZnNldFgsIDYpOworICAgIGFz
c2VydF9lcXVhbHMoZXZlbnRMb2dzWzJdLm9mZnNldFksIDcpOworCisgICAgYXNzZXJ0X2VxdWFs
cyhldmVudExvZ3NbM10uY3VycmVudCwgaG9zdCk7CisgICAgYXNzZXJ0X2VxdWFscyhldmVudExv
Z3NbM10udGFyZ2V0LCB0YXJnZXQpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzNdLm9m
ZnNldFgsIDYpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnRMb2dzWzNdLm9mZnNldFksIDcpOwor
CisgICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbNF0uY3VycmVudCwgZG9jdW1lbnQuYm9keSk7
CisgICAgYXNzZXJ0X2VxdWFscyhldmVudExvZ3NbNF0udGFyZ2V0LCB0YXJnZXQpOworICAgIGFz
c2VydF9lcXVhbHMoZXZlbnRMb2dzWzRdLm9mZnNldFgsIDYpOworICAgIGFzc2VydF9lcXVhbHMo
ZXZlbnRMb2dzWzRdLm9mZnNldFksIDcpOworfSwgJ01vdXNlRXZlbnRcJ3Mgb2Zmc2V0WCBhbmQg
b2Zmc2V0WSBhdHRyaWJ1dGVzIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIHRhcmdldCB3aGVuIGFu
IGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gYSBzbG90dGVkIGNvbnRlbnQuJyk7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL05vZGUtcHJvdG90eXBlLWNsb25lTm9kZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NoYWRvdy1kb20vTm9kZS1wcm90b3R5cGUtY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zOTA2MGI1NWZhYmY5N2E1NzYwMzJiMTE0ZDMzOTVkZjE1ZDM5NTJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFk
b3ctZG9tL05vZGUtcHJvdG90eXBlLWNsb25lTm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
IEBACisKK1BBU1MgY2xvbmVOb2RlIG9uIGEgc2hhZG93IHJvb3QgaW4gb3BlbiBtb2RlIG11c3Qg
dGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciAKK1BBU1MgY2xvbmVOb2RlIG9uIGEgc2hhZG93IHJv
b3QgaW4gY2xvc2VkIG1vZGUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIAorUEFTUyBj
bG9uZU5vZGUgb24gYW4gZWxlbWVudCB3aXRoIGFuIG9wZW4gc2hhZG93IHJvb3Qgc2hvdWxkIG5v
dCBjbG9uZSBpdHMgc2hhZG93IHJvb3QgCitQQVNTIGNsb25lTm9kZSBvbiBhbiBlbGVtZW50IHdp
dGggYSBjbG9zZWQgc2hhZG93IHJvb3Qgc2hvdWxkIG5vdCBjbG9uZSBpdHMgc2hhZG93IHJvb3Qg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2hhZG93LWRvbS9Ob2RlLXByb3RvdHlwZS1jbG9uZU5vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9Ob2RlLXByb3RvdHlw
ZS1jbG9uZU5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTVjNzZjN2YyNWI3ODM2MDM0MmRiMTkzYThk
YzM3ODE3NjUxZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL05vZGUtcHJvdG90eXBlLWNsb25lTm9kZS5o
dG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5ET006IGNsb25lTm9kZShkZWVwKTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRp
dGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRh
IG5hbWU9ImFzc2VydCIgY29udGVudD0iSWYgY29udGV4dCBvYmplY3QgaXMgYSBzaGFkb3cgcm9v
dCwgdGhlbiBpdCBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3IuIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20tbm9kZS1jbG9uZW5v
ZGUiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3RDbG9uZU5vZGUobW9kZSkgeworICAgIHRlc3Qo
ZnVuY3Rpb24gKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdOb3RTdXBwb3J0
ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBl
bGVtZW50LmF0dGFjaFNoYWRvdyh7bW9kZTogbW9kZX0pOworICAgICAgICAgICAgc2hhZG93Um9v
dC5jbG9uZU5vZGUoZmFsc2UpOworICAgICAgICB9LCAnY2xvbmVOb2RlKGZhbHNlKSBvbiBhIHNo
YWRvdyByb290IGluICcgKyBtb2RlICsgJyBtb2RlIG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRF
cnJvcicpOworCisgICAgICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ05vdFN1cHBvcnRlZEVy
cm9yJ30sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGVsZW1l
bnQuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7CisgICAgICAgICAgICBzaGFkb3dSb290LmNs
b25lTm9kZShmYWxzZSk7CisgICAgICAgIH0sICdjbG9uZU5vZGUodHJ1ZSkgb24gYSBjbG9zZWQg
c2hhZG93IHJvb3QgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yJyk7CisKKyAgICB9LCAn
Y2xvbmVOb2RlIG9uIGEgc2hhZG93IHJvb3QgaW4gJyArIG1vZGUgKyAnIG1vZGUgbXVzdCB0aHJv
dyBhIE5vdFN1cHBvcnRlZEVycm9yJyk7Cit9CisKK3Rlc3RDbG9uZU5vZGUoJ29wZW4nKTsKK3Rl
c3RDbG9uZU5vZGUoJ2Nsb3NlZCcpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciBzaGFkb3dSb290
ID0gZWxlbWVudC5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30pOworCisgICAgYXNzZXJ0X2Vx
dWFscyhlbGVtZW50LmNsb25lTm9kZShmYWxzZSkuc2hhZG93Um9vdCwgbnVsbCwgJ2Nsb25lTm9k
ZShmYWxzZSkgb24gYW4gZWxlbWVudCB3aXRoIGFuIG9wZW4gc2hhZG93IHJvb3Qgc2hvdWxkIG5v
dCBjbG9uZSBpdHMgc2hhZG93IHJvb3QnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQuY2xv
bmVOb2RlKHRydWUpLnNoYWRvd1Jvb3QsIG51bGwsICdjbG9uZU5vZGUodHJ1ZSkgb24gYW4gZWxl
bWVudCB3aXRoIGFuIG9wZW4gc2hhZG93IHJvb3Qgc2hvdWxkIG5vdCBjbG9uZSBpdHMgc2hhZG93
IHJvb3QnKTsKK30sICdjbG9uZU5vZGUgb24gYW4gZWxlbWVudCB3aXRoIGFuIG9wZW4gc2hhZG93
IHJvb3Qgc2hvdWxkIG5vdCBjbG9uZSBpdHMgc2hhZG93IHJvb3QnKTsKKwordGVzdChmdW5jdGlv
biAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICB2YXIgc2hhZG93Um9vdCA9IGVsZW1lbnQuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2Vk
J30pOworCisgICAgYXNzZXJ0X3RydWUoZWxlbWVudC5jbG9uZU5vZGUoZmFsc2UpLmF0dGFjaFNo
YWRvdyh7bW9kZTogJ2Nsb3NlZCd9KSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QsCisgICAgICAgICdB
biBlbGVtZW50IHJldHVybmVkIGJ5IGNsb25lTm9kZShmYWxzZSkgb24gYW4gZWxlbWVudCB3aXRo
IGEgY2xvc2VkIHNoYWRvdyByb290IHNob3VsZCBhbGxvdyBhdHRhY2hTaGFkb3cnKTsKKworICAg
IGFzc2VydF90cnVlKGVsZW1lbnQuY2xvbmVOb2RlKHRydWUpLmF0dGFjaFNoYWRvdyh7bW9kZTog
J2Nsb3NlZCd9KSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QsCisgICAgICAgICdBbiBlbGVtZW50IHJl
dHVybmVkIGJ5IGNsb25lTm9kZSh0cnVlKSBvbiBhbiBlbGVtZW50IHdpdGggYSBjbG9zZWQgc2hh
ZG93IHJvb3Qgc2hvdWxkIGFsbG93IGF0dGFjaFNoYWRvdycpOworCit9LCAnY2xvbmVOb2RlIG9u
IGFuIGVsZW1lbnQgd2l0aCBhIGNsb3NlZCBzaGFkb3cgcm9vdCBzaG91bGQgbm90IGNsb25lIGl0
cyBzaGFkb3cgcm9vdCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRv
bS9PV05FUlMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3No
YWRvdy1kb20vT1dORVJTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1N2M2YjUxYjg4MGRjNzY0ZGIyNTM0NDZmODhh
Mzk2ZWYxMzFiY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vT1dORVJTCkBAIC0wLDAgKzEsNyBAQAorQGtv
amlpc2hpCitAcm5pd2EKK0BzaWRlc2hvd2JhcmtlcgorQHNpenVoaWtvCitAeXV0YWsKK0B0YWth
eW9zaGlrb2NoaQorQGhheWF0b2l0bwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtaW50ZXJmYWNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2hhZG93LWRvbS9TaGFkb3dSb290LWludGVyZmFjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWE1M2VjNzBiZjM4YzBkMGQ5MmRlYzJlZmZlNDhiZDBjMWUxOTdjMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRv
bS9TaGFkb3dSb290LWludGVyZmFjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCitQ
QVNTIENoZWNrIHRoZSBleGlzdGVuY2Ugb2YgU2hhZG93Um9vdCBpbnRlcmZhY2UgCitQQVNTIFNo
YWRvd1Jvb3QgbXVzdCBpbmhlcml0IGZyb20gRG9jdW1lbnRGcmFnbWVudCAKK1BBU1MgU2hhZG93
Um9vdCBtdXN0IG5vdCBiZSBhIGNvbnN0cnVjdG9yIAorUEFTUyBTaGFkb3dSb290LmFjdGl2ZUVs
ZW1lbnQgbXVzdCByZXR1cm4gdGhlIGZvY3VzZWQgZWxlbWVudCBvZiB0aGUgY29udGV4dCBvYmpl
Y3Qgd2hlbiBzaGFkb3cgcm9vdCBpcyBvcGVuLiAKK1BBU1MgU2hhZG93Um9vdC5hY3RpdmVFbGVt
ZW50IG11c3QgcmV0dXJuIHRoZSBmb2N1c2VkIGVsZW1lbnQgb2YgdGhlIGNvbnRleHQgb2JqZWN0
IHdoZW4gc2hhZG93IHJvb3QgaXMgY2xvc2VkLiAKK1BBU1MgU2hhZG93Um9vdC5ob3N0IG11c3Qg
cmV0dXJuIHRoZSBzaGFkb3cgaG9zdCBvZiB0aGUgY29udGV4dCBvYmplY3QuIAorUEFTUyBTaGFk
b3dSb290LmlubmVySFRNTCBtdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBIVE1MIGZyYWdt
ZW50IHNlcmlhbGl6YXRpb24gYWxnb3JpdGhtIHdoZW4gc2hhZG93IHJvb3QgaXMgb3Blbi4gCitQ
QVNTIFNoYWRvd1Jvb3QuaW5uZXJIVE1MIG11c3QgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIEhU
TUwgZnJhZ21lbnQgc2VyaWFsaXphdGlvbiBhbGdvcml0aG0gd2hlbiBzaGFkb3cgcm9vdCBpcyBj
bG9zZWQuIAorUEFTUyBTaGFkb3dSb290LmlubmVySFRNTCBtdXN0IHJlcGxhY2UgYWxsIHdpdGgg
dGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgZnJhZ21lbnQgcGFyc2luZyBhbGdvcml0aG0gd2hl
biBzaGFkb3cgcm9vdCBpcyBvcGVuLiAKK1BBU1MgU2hhZG93Um9vdC5pbm5lckhUTUwgbXVzdCBy
ZXBsYWNlIGFsbCB3aXRoIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIGZyYWdtZW50IHBhcnNp
bmcgYWxnb3JpdGhtIHdoZW4gc2hhZG93IHJvb3QgaXMgY2xvc2VkLiAKK0ZBSUwgU2hhZG93Um9v
dC5zdHlsZVNoZWV0cyBtdXN0IHJldHVybiBhIFN0eWxlU2hlZXRMaXN0IHNlcXVlbmNlIGNvbnRh
aW5pbmcgdGhlIHNoYWRvdyByb290IHN0eWxlIHNoZWV0cyB3aGVuIHNoYWRvdyByb290IGlzIG9w
ZW4uIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzaGFkb3dSb290LnN0
eWxlU2hlZXRzLmxlbmd0aCcpCitGQUlMIFNoYWRvd1Jvb3Quc3R5bGVTaGVldHMgbXVzdCByZXR1
cm4gYSBTdHlsZVNoZWV0TGlzdCBzZXF1ZW5jZSBjb250YWluaW5nIHRoZSBzaGFkb3cgcm9vdCBz
dHlsZSBzaGVldHMgd2hlbiBzaGFkb3cgcm9vdCBpcyBjbG9zZWQuIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdzaGFkb3dSb290LnN0eWxlU2hlZXRzLmxlbmd0aCcpCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2hhZG93LWRvbS9TaGFkb3dSb290LWludGVyZmFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtaW50ZXJmYWNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmFmNzY0MTg4ODI5ZWM3OTJhOGUyNDEwMzk2OWNlZDE4NTU4MWRh
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9TaGFkb3dSb290LWludGVyZmFjZS5odG1sCkBAIC0wLDAgKzEs
MTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2hhZG93IERP
TTogU2hhZG93Um9vdCBpbnRlcmZhY2U8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRs
ZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBu
YW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNoYWRvd1Jvb3QgaW50ZXJmYWNlIGFuZCBpdHMgYXR0cmli
dXRlcyBtdXN0IGJlIGRlZmluZWQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL3NoYWRvdy8jdGhlLXNoYWRvd3Jvb3QtaW50
ZXJmYWNlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBhc3NlcnRfdHJ1ZSgn
U2hhZG93Um9vdCcgaW4gd2luZG93LCAnIlNoYWRvd1Jvb3QiIGV4aXN0cyBvbiB3aW5kb3cnKTsK
K30sICdDaGVjayB0aGUgZXhpc3RlbmNlIG9mIFNoYWRvd1Jvb3QgaW50ZXJmYWNlJyk7CisKK3Rl
c3QoZnVuY3Rpb24gKCkgeworICAgIGFzc2VydF9lcXVhbHMoU2hhZG93Um9vdC5wcm90b3R5cGUu
X19wcm90b19fLCBEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSwgJ1NoYWRvd1Jvb3QgbXVzdCBp
bmhlcml0IGZyb20gRG9jdW1lbnRGcmFnbWVudCcpOworfSwgJ1NoYWRvd1Jvb3QgbXVzdCBpbmhl
cml0IGZyb20gRG9jdW1lbnRGcmFnbWVudCcpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBh
c3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBuZXcgU2hh
ZG93Um9vdCgpOyB9LCAnbmV3IFNoYWRvd1Jvb3QoKSBtdXN0IHRocm93IGEgVHlwZUVycm9yJyk7
Cit9LCAnU2hhZG93Um9vdCBtdXN0IG5vdCBiZSBhIGNvbnN0cnVjdG9yJyk7CisKK2Z1bmN0aW9u
IHRlc3RBY3RpdmVFbGVtZW50KG1vZGUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKKyAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7CisgICAgICAgIHNoYWRvd1Jvb3QuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBudWxsLCAnU2hhZG93Um9vdC5ob3N0
IG11c3QgcmV0dXJuIG51bGwgaWYgYW4gJyArIG1vZGUgKyAnIHNoYWRvdyB0cmVlIGRvZXMgbm90
IGhhdmUgYSBmb2N1c2VkIGVsZW1lbnQnKTsKKyAgICAgICAgc2hhZG93Um9vdC5maXJzdENoaWxk
LmZvY3VzKCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50
LCBzaGFkb3dSb290LmZpcnN0Q2hpbGQsICdTaGFkb3dSb290Lmhvc3QgbXVzdCByZXR1cm4gdGhl
IGZvY3VzZWQgZWxlbWVudCBvZiBhbiAnICsgbW9kZSArICcgc2hhZG93IHRyZWUnKTsKKyAgICAg
ICAgaG9zdC5yZW1vdmUoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQsIG51bGwsICdTaGFkb3dSb290Lmhvc3QgbXVzdCByZXR1cm4gbnVsbCBpZiBhbiAn
ICsgbW9kZSArICcgc2hhZG93IHRyZWUgbG9zdCBmb2N1cycpOworICAgIH0sICdTaGFkb3dSb290
LmFjdGl2ZUVsZW1lbnQgbXVzdCByZXR1cm4gdGhlIGZvY3VzZWQgZWxlbWVudCBvZiB0aGUgY29u
dGV4dCBvYmplY3Qgd2hlbiBzaGFkb3cgcm9vdCBpcyAnICsgbW9kZSArICcuJyk7Cit9CisKK3Rl
c3RBY3RpdmVFbGVtZW50KCdvcGVuJyk7Cit0ZXN0QWN0aXZlRWxlbWVudCgnY2xvc2VkJyk7CisK
K3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBob3N0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIGFzc2VydF9lcXVhbHMoaG9zdDEuYXR0YWNoU2hhZG93KHsnbW9kZSc6
ICdvcGVuJ30pLmhvc3QsIGhvc3QxLCAnU2hhZG93Um9vdC5ob3N0IG11c3QgcmV0dXJuIHRoZSBz
aGFkb3cgaG9zdCBvZiBhbiBvcGVuIHNoYWRvdyB0cmVlJykKKworICAgIHZhciBob3N0MiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFzc2VydF9lcXVhbHMoaG9zdDIuYXR0
YWNoU2hhZG93KHsnbW9kZSc6ICdjbG9zZWQnfSkuaG9zdCwgaG9zdDIsICdTaGFkb3dSb290Lmhv
c3QgbXVzdCByZXR1cm4gdGhlIHNoYWRvdyBob3N0IG9mIGEgY2xvc2VkIHNoYWRvdyB0cmVlJyk7
Cit9LCAnU2hhZG93Um9vdC5ob3N0IG11c3QgcmV0dXJuIHRoZSBzaGFkb3cgaG9zdCBvZiB0aGUg
Y29udGV4dCBvYmplY3QuJyk7CisKK2Z1bmN0aW9uIHRlc3RJbm5lckhUTUwobW9kZSkgeworICAg
IHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOworICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93
KHsnbW9kZSc6IG1vZGV9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290LmlubmVy
SFRNTCwgJycsICdTaGFkb3dSb290LmlubmVySFRNTCBtdXN0IGJlIGFuIGVtcHR5IHN0cmluZyB3
aGVuIHRoZSBzaGFkb3cgcm9vdCBkb2VzIG5vdCBoYXZlIGFueSBjaGlsZHJlbicpOworCisgICAg
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2hlbGxv
JykpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1Jvb3QuaW5uZXJIVE1MLCAnaGVsbG8n
LCAnU2hhZG93Um9vdC5pbm5lckhUTUwgbXVzdCBzZXJpYWxpemUgYSB0ZXh0IG5vZGUgY2hpbGQn
KTsKKworICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NwYW4nKSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5pbm5lckhUTUws
ICdoZWxsbzxzcGFuPjwvc3Bhbj4nLCAnU2hhZG93Um9vdC5pbm5lckhUTUwgbXVzdCBzZXJpYWxp
emUgYSBIVE1MIGVsZW1lbnQgY2hpbGQnKTsKKyAgICB9LCAnU2hhZG93Um9vdC5pbm5lckhUTUwg
bXVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgSFRNTCBmcmFnbWVudCBzZXJpYWxpemF0aW9u
IGFsZ29yaXRobSB3aGVuIHNoYWRvdyByb290IGlzICcgKyBtb2RlICsgJy4nKTsKK30KKwordGVz
dElubmVySFRNTCgnb3BlbicpOwordGVzdElubmVySFRNTCgnY2xvc2VkJyk7CisKK2Z1bmN0aW9u
IHRlc3RTZXRJbm5lckhUTUwobW9kZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAg
ICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICB2YXIg
c2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKKyAgICAgICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnaGVsbG8nOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNo
YWRvd1Jvb3QuY2hpbGROb2Rlcy5sZW5ndGgsIDEsICdTaGFkb3dSb290LmlubmVySFRNTCA9ICJo
ZWxsbyIgbXVzdCBpbnNlcnQgYSBzaW5nbGUgY2hpbGQgKHRleHQgbm9kZSknKTsKKyAgICAgICAg
YXNzZXJ0X3RydWUoc2hhZG93Um9vdC5maXJzdENoaWxkIGluc3RhbmNlb2YgVGV4dCwgJ1RoZSBm
aXJzdCBjaGlsZCBvZiB0aGUgc2hhZG93IHJvb3QgYWZ0ZXIgU2hhZG93Um9vdC5pbm5lckhUTUwg
PSAiaGVsbG8iIG11c3QgYmUgYSBUZXh0IG5vZGUnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
aGFkb3dSb290LmZpcnN0Q2hpbGQuZGF0YSwgJ2hlbGxvJywgJ1RoZSBmaXJzdCBUZXh0IG5vZGUg
c2hvdWxkIGNvbnRhaW4gdGhlIHN0cmluZyAiaGVsbG8iIGFmdGVyIFNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gImhlbGxvIicpOworCisgICAgICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxiPmhl
bGxvPC9iPic7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5jaGlsZE5vZGVzLmxl
bmd0aCwgMSwgJ1NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxiPmhlbGxvPC9iPiIgbXVzdCBpbnNl
cnQgYSBzaW5nbGUgY2hpbGQgKGIpJyk7CisgICAgICAgIGFzc2VydF90cnVlKHNoYWRvd1Jvb3Qu
Zmlyc3RDaGlsZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50LCAnVGhlIGZpcnN0IGNoaWxkIG9mIHRo
ZSBzaGFkb3cgcm9vdCBhZnRlciBTaGFkb3dSb290LmlubmVySFRNTCA9ICI8Yj5oZWxsbzwvYj4i
IG11c3QgYmUgYSBIVE1MIGVsZW1lbnQnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dS
b290LmZpcnN0Q2hpbGQubG9jYWxOYW1lLCAnYicsICdUaGUgbG9jYWwgbmFtZSBvZiB0aGUgc2hh
ZG93IHJvb3RcJ3MgZmlyc3QgY2hpbGQgYWZ0ZXIgU2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGI+
aGVsbG88L2I+IiBtdXN0IGJlICJiIicpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1Jv
b3QuaW5uZXJIVE1MLCAnPGI+aGVsbG88L2I+JywgJ1NoYWRvd1Jvb3QuaW5uZXJIVE1MIG11c3Qg
YmUgIjxiPmhlbGxvPC9iPiIgYWZ0ZXIgU2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGI+aGVsbG88
L2I+IicpOworCisgICAgICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJyc7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2hhZG93Um9vdC5jaGlsZE5vZGVzLmxlbmd0aCwgMCwgJ1NoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gIiIgbXVzdCByZW1vdmUgYWxsIGl0cyBjaGlsZHJlbicpOworICAgIH0sICdT
aGFkb3dSb290LmlubmVySFRNTCBtdXN0IHJlcGxhY2UgYWxsIHdpdGggdGhlIHJlc3VsdCBvZiBp
bnZva2luZyB0aGUgZnJhZ21lbnQgcGFyc2luZyBhbGdvcml0aG0gd2hlbiBzaGFkb3cgcm9vdCBp
cyAnICsgbW9kZSArICcuJyk7Cit9CisKK3Rlc3RTZXRJbm5lckhUTUwoJ29wZW4nKTsKK3Rlc3RT
ZXRJbm5lckhUTUwoJ2Nsb3NlZCcpOworCitmdW5jdGlvbiB0ZXN0U3R5bGVTaGVldHMobW9kZSkg
eworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNo
U2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1Jv
b3Quc3R5bGVTaGVldHMubGVuZ3RoLCAwLCAnc2hhZG93Um9vdC5zdHlsZVNoZWV0cyBtdXN0IGJl
IGVtcHR5IHdoZW4gdGhlIHNoYWRvdyByb290IGRvZXMgbm90IGNvbnRhaW4gYW55IHN0eWxlc2hl
ZXRzJyk7CisgICAgICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzcGFuPjwvc3Bhbj48c3R5
bGU+IGEucnVsZSB7fSA8L3N0eWxlPjxzdHlsZT4gYi5ydWxlIHt9IDwvc3R5bGU+JzsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290LnN0eWxlU2hlZXRzLmxlbmd0aCwgMiwgJ3NoYWRv
d1Jvb3Quc3R5bGVTaGVldHMgbXVzdCBjb250YWluIHR3byBpdGVtcyB3aGVuIHRoZSBzaGFkb3cg
cm9vdCBoYXMgdHdvIHN0eWxlIGVsZW1lbnRzJyk7CisgICAgICAgIHZhciBzdHlsZXMgPSBzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2hhZG93Um9vdC5zdHlsZVNoZWV0c1swXSwgc3R5bGVzWzBdLnNoZWV0LCAnc2hhZG93Um9vdC5z
dHlsZVNoZWV0c1swXSBtdXN0IGJlIHRoZSBmaXJzdCBzdHlsZSBlbGVtZW50IGluIHRoZSBzaGFk
b3cgcm9vdCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1Jvb3Quc3R5bGVTaGVldHNb
MV0sIHN0eWxlc1sxXS5zaGVldCwgJ3NoYWRvd1Jvb3Quc3R5bGVTaGVldHNbMV0gbXVzdCBiZSB0
aGUgc2Vjb25kIHN0eWxlIGVsZW1lbnQgaW4gdGhlIHNoYWRvdyByb290Jyk7CisgICAgfSwgJ1No
YWRvd1Jvb3Quc3R5bGVTaGVldHMgbXVzdCByZXR1cm4gYSBTdHlsZVNoZWV0TGlzdCBzZXF1ZW5j
ZSBjb250YWluaW5nIHRoZSBzaGFkb3cgcm9vdCBzdHlsZSBzaGVldHMgd2hlbiBzaGFkb3cgcm9v
dCBpcyAnICsgbW9kZSArICcuJyk7Cit9CisKK3Rlc3RTdHlsZVNoZWV0cygnb3BlbicpOwordGVz
dFN0eWxlU2hlZXRzKCdjbG9zZWQnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3No
YWRvdy1kb20vU2xvdGFibGUtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9TbG90YWJsZS1pbnRlcmZh
Y2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZmQ2Nzk5N2ZhMzhkMWY3YTIwODgxYTVmNjVl
MTgxOTZiNWY3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vU2xvdGFibGUtaW50ZXJmYWNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBhc3NpZ25lZFNsb3QgYXR0cmlidXRlIG11c3Qg
YmUgZGVmaW5lZCBvbiBFbGVtZW50IGFuZCBUZXh0IGludGVyZmFjZXMgCitQQVNTIGFzc2lnbmVk
U2xvdCBtdXN0IHJldHVybiBudWxsIHdoZW4gdGhlIG5vZGUgZG9lcyBub3QgaGF2ZSBhbiBhc3Np
Z25lZCBub2RlIAorUEFTUyBhc3NpZ25lZFNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIHNs
b3QgCitQQVNTIGFzc2lnbmVkU2xvdCBtdXN0IHJldHVybiBudWxsIHdoZW4gdGhlIGFzc2lnbmVk
IHNsb3QgZWxlbWVudCBpcyBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHRyZWUgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRv
bS9TbG90YWJsZS1pbnRlcmZhY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9TbG90YWJsZS1pbnRlcmZhY2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZjgwMjgxMTI0YmExMjRmODcxNzQyM2RkMGU0MzFiNzc4OGNjN2UwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFk
b3ctZG9tL1Nsb3RhYmxlLWludGVyZmFjZS5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TaGFkb3cgRE9NOiBTbG90YWJsZSBpbnRl
cmZhY2U8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBo
cmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRl
bnQ9IkVsZW1lbnQgYW5kIFRleHQgaW50ZXJmYWNlcyBtdXN0IGltcGxlbWVudCBTbG90YWJsZSBp
bnRlcmZhY2UiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3
Zy5vcmcvI3Nsb3RhYmxlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBhc3Nl
cnRfdHJ1ZSgnYXNzaWduZWRTbG90JyBpbiBFbGVtZW50LnByb3RvdHlwZSwgJ2Fzc2lnbmVkU2xv
dCBtdXN0IGJlIGRlZmluZWQgb24gRWxlbWVudC5wcm90b3R5cGUnKTsKKyAgICBhc3NlcnRfdHJ1
ZSgnYXNzaWduZWRTbG90JyBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgJ2Fzc2ln
bmVkU2xvdCBtdXN0IGJlIGRlZmluZWQgb24gYSBkaXYgZWxlbWVudCcpOworCisgICAgYXNzZXJ0
X3RydWUoJ2Fzc2lnbmVkU2xvdCcgaW4gVGV4dC5wcm90b3R5cGUsICdhc3NpZ25lZFNsb3QgbXVz
dCBiZSBkZWZpbmVkIG9uIFRleHQucHJvdG90eXBlJyk7CisgICAgYXNzZXJ0X3RydWUoJ2Fzc2ln
bmVkU2xvdCcgaW4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpLCAnYXNzaWduZWRTbG90IG11
c3QgYmUgZGVmaW5lZCBvbiBhIHRleHQgbm9kZScpOworICAgIGFzc2VydF9mYWxzZSgnYXNzaWdu
ZWRTbG90JyBpbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCcnKSwgJ2Fzc2lnbmVkU2xvdCBtdXN0
IG5vdCBiZSBkZWZpbmVkIG9uIGEgY29tbWVudCBub2RlJyk7CisgICAgYXNzZXJ0X2ZhbHNlKCdh
c3NpZ25lZFNsb3QnIGluIGRvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigndGFy
Z2V0JywgJ2RhdGEnKSwgJ2Fzc2lnbmVkU2xvdCBtdXN0IG5vdCBiZSBkZWZpbmVkIG9uIGEgcHJv
Y2Vzc2luZyBpbnN0cnVjdGlvbiBub2RlJyk7CisKK30sICdhc3NpZ25lZFNsb3QgYXR0cmlidXRl
IG11c3QgYmUgZGVmaW5lZCBvbiBFbGVtZW50IGFuZCBUZXh0IGludGVyZmFjZXMnKTsKKwordGVz
dChmdW5jdGlvbiAoKSB7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKS5hc3NpZ25lZFNsb3QsIG51bGwsICdhc3NpZ25lZFNsb3QgbXVzdCBiZSBudWxsIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgbm90IGluIGFueSB0cmVlJyk7CisKKyAgICB2YXIgc2hhZG93SG9z
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciBzaGFkb3dSb290ID0g
c2hhZG93SG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30pOworCisgICAgdmFyIGNoaWxk
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2InKTsKKyAgICBzaGFkb3dIb3N0LmFw
cGVuZENoaWxkKGNoaWxkRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhjaGlsZEVsZW1lbnQu
YXNzaWduZWRTbG90LCBudWxsLCAnYXNzaWduZWRTbG90IG9uIGFuIGVsZW1lbnQgbXVzdCBiZSBu
dWxsIHdoZW4gYSBub2RlIGlzIG5vdCBhc3NpZ25lZCBvZiBhbnkgc2xvdCcpOworCisgICAgdmFy
IGNoaWxkVGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJyk7CisgICAgc2hhZG93
SG9zdC5hcHBlbmRDaGlsZChjaGlsZFRleHROb2RlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNoaWxk
VGV4dE5vZGUuYXNzaWduZWRTbG90LCBudWxsLCAnYXNzaWduZWRTbG90IG9uIGEgdGV4dCBub2Rl
IG11c3QgYmUgbnVsbCB3aGVuIGEgbm9kZSBpcyBub3QgYXNzaWduZWQgb2YgYW55IHNsb3QnKTsK
KworICAgIHZhciBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOworICAgIHNs
b3QubmFtZSA9ICdmb28nOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xvdCk7CisgICAg
YXNzZXJ0X2VxdWFscyhjaGlsZEVsZW1lbnQuYXNzaWduZWRTbG90LCBudWxsLCAnYXNzaWduZWRT
bG90IG9uIGFuIGVsZW1lbnQgbXVzdCBiZSBudWxsIHdoZW4gYSBub2RlIGRvZXMgbm90IG1hdGNo
IGFueSBzbG90Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhjaGlsZFRleHROb2RlLmFzc2lnbmVkU2xv
dCwgbnVsbCwgJ2Fzc2lnbmVkU2xvdCBvbiBhIHRleHQgbm9kZSBtdXN0IGJlIG51bGwgd2hlbiBh
IG5vZGUgZG9lcyBub3QgbWF0Y2ggYW55IHNsb3QnKTsKKworfSwgJ2Fzc2lnbmVkU2xvdCBtdXN0
IHJldHVybiBudWxsIHdoZW4gdGhlIG5vZGUgZG9lcyBub3QgaGF2ZSBhbiBhc3NpZ25lZCBub2Rl
Jyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIGNoaWxkRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2InKTsKKyAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNoaWxkRWxlbWVu
dCk7CisKKyAgICB2YXIgY2hpbGRUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcn
KTsKKyAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNoaWxkVGV4dE5vZGUpOworCisgICAgdmFy
IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7Cisg
ICAgdmFyIHNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgc2hhZG93
Um9vdC5hcHBlbmRDaGlsZChzbG90KTsKKworICAgIGFzc2VydF9lcXVhbHMoY2hpbGRFbGVtZW50
LmFzc2lnbmVkU2xvdCwgc2xvdCwgJ2Fzc2lnbmVkU2xvdCBvbiBhbiBlbGVtZW50IG11c3QgcmV0
dXJuIHRoZSBhc3NpZ25lZCBkZWZhdWx0IHNsb3QgZWxlbWVudCcpOworICAgIGFzc2VydF9lcXVh
bHMoY2hpbGRUZXh0Tm9kZS5hc3NpZ25lZFNsb3QsIHNsb3QsICdhc3NpZ25lZFNsb3Qgb24gYSB0
ZXh0IG5vZGUgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIGRlZmF1bHQgc2xvdCBlbGVtZW50Jyk7
CisKKyAgICBzbG90Lm5hbWUgPSAnZm9vJzsKKyAgICBhc3NlcnRfZXF1YWxzKGNoaWxkRWxlbWVu
dC5hc3NpZ25lZFNsb3QsIG51bGwsICdhc3NpZ25lZFNsb3Qgb24gYW4gZWxlbWVudCBtdXN0IG51
bGwgd2hlbiB0aGUgZWxlbWVudCBpcyB1bmFzc2lnbmVkIGZyb20gYSBzbG90IGVsZW1lbnQnKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGNoaWxkVGV4dE5vZGUuYXNzaWduZWRTbG90LCBudWxsLCAnYXNz
aWduZWRTbG90IG9uIGEgdGV4dCBub2RlIG11c3QgbnVsbCB3aGVuIHRoZSBub2RlIGlzIHVuYXNz
aWduZWQgZnJvbSBhIHNsb3QgZWxlbWVudCcpOworCisgICAgY2hpbGRFbGVtZW50LnNsb3QgPSAn
Zm9vJzsKKyAgICBhc3NlcnRfZXF1YWxzKGNoaWxkRWxlbWVudC5hc3NpZ25lZFNsb3QsIHNsb3Qs
ICdhc3NpZ25lZFNsb3Qgb24gYW4gZWxlbWVudCBtdXN0IHJldHVybiB0aGUgcmUtYXNzaWduZWQg
c2xvdCBlbGVtZW50Jyk7CisKKyAgICBzbG90LnJlbW92ZUF0dHJpYnV0ZSgnbmFtZScpOworICAg
IGFzc2VydF9lcXVhbHMoY2hpbGRUZXh0Tm9kZS5hc3NpZ25lZFNsb3QsIHNsb3QsICdhc3NpZ25l
ZFNsb3Qgb24gYSB0ZXh0IG5vZGUgbXVzdCByZXR1cm4gdGhlIHJlLWFzc2lnbmVkIHNsb3QgZWxl
bWVudCcpOworCit9LCAnYXNzaWduZWRTbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBzbG90
Jyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIGNoaWxkRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2InKTsKKyAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNoaWxkRWxlbWVu
dCk7CisKKyAgICB2YXIgY2hpbGRUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcn
KTsKKyAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNoaWxkVGV4dE5vZGUpOworCisgICAgdmFy
IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsK
KyAgICB2YXIgc2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICBzaGFk
b3dSb290LmFwcGVuZENoaWxkKHNsb3QpOworCisgICAgYXNzZXJ0X2VxdWFscyhjaGlsZEVsZW1l
bnQuYXNzaWduZWRTbG90LCBudWxsLCAnYXNzaWduZWRTbG90IG9uIGFuIGVsZW1lbnQgbXVzdCBy
ZXR1cm4gbnVsbCBpZiB0aGUgc2xvdCBpcyBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHRyZWUuJyk7
CisgICAgYXNzZXJ0X2VxdWFscyhjaGlsZFRleHROb2RlLmFzc2lnbmVkU2xvdCwgbnVsbCwgJ2Fz
c2lnbmVkU2xvdCBvbiBhIHRleHQgbm9kZSBtdXN0IHJldHVybiBudWxsIGlmIHRoZSBzbG90IGlz
IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgdHJlZS4nKTsKKworfSwgJ2Fzc2lnbmVkU2xvdCBtdXN0
IHJldHVybiBudWxsIHdoZW4gdGhlIGFzc2lnbmVkIHNsb3QgZWxlbWVudCBpcyBpbnNpZGUgYSBj
bG9zZWQgc2hhZG93IHRyZWUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRv
dy1kb20vZXZlbnQtY29tcG9zZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41M2I1ODI1ZjllMjdlZmNmMDhjMWZmNDVmMGU3OTBmNDc0N2EyMmNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACisKK1BBU1MgQSBuZXcgZXZlbnRzIGNvbXBvc2VkIHZhbHVlIHNob3VsZCBiZSBzZXQg
dG8gZmFsc2UgYnkgZGVmYXVsdC4gCitQQVNTIFVzZXJzIHNob3VsZCBiZSBhYmxlIHRvIHNldCBh
IGNvbXBvc2VkIHZhbHVlLiAKK1BBU1MgQW4gZXZlbnQgc2hvdWxkIGJlIHNjb3BlZCBieSBkZWZh
dWx0IAorUEFTUyBBbiBldmVudCBzaG91bGQgbm90IGJlIHNjb3BlZCBpZiBjb21wb3NlZCBpcyBz
cGVjaWZpZWQgCitQQVNTIEEgc3ludGhldGljIE1vdXNlRXZlbnQgc2hvdWxkIGJlIHNjb3BlZCBi
eSBkZWZhdWx0IAorUEFTUyBBIHN5bnRoZXRpYyBNb3VzZUV2ZW50IHdpdGggY29tcG9zZWQ9dHJ1
ZSBzaG91bGQgbm90IGJlIHNjb3BlZCAKK1BBU1MgQSBzeW50aGV0aWMgRm9jdXNFdmVudCBzaG91
bGQgYmUgc2NvcGVkIGJ5IGRlZmF1bHQgCitQQVNTIEEgc3ludGhldGljIEZvY3VzRXZlbnQgd2l0
aCBjb21wb3NlZD10cnVlIHNob3VsZCBub3QgYmUgc2NvcGVkIAorRkFJTCBBIFVBIGNsaWNrIGV2
ZW50IHNob3VsZCBub3QgYmUgc2NvcGVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDMgYnV0IGdv
dCAyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2hhZG93LWRvbS9ldmVudC1jb21wb3NlZC1wYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9ldmVudC1j
b21wb3NlZC1wYXRoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWRlY2EwODAwYzI2ZWI1MmQ3
YjNkYjYxMDQ1Y2JjOTYxOTMwYTEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLXBh
dGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworUEFTUyBFdmVudCBQYXRoIHdpdGhv
dXQgU2hhZG93Um9vdHMuIAorUEFTUyBFdmVudCBQYXRoIHdpdGggYW4gb3BlbiBTaGFkb3dSb290
LiAKK1BBU1MgRXZlbnQgUGF0aCB3aXRoIGEgY2xvc2VkIFNoYWRvd1Jvb3QuIAorUEFTUyBFdmVu
dCBQYXRoIHdpdGggbmVzdGVkIFNoYWRvd1Jvb3RzOiBvcGVuID4gb3Blbi4gCitQQVNTIEV2ZW50
IFBhdGggd2l0aCBuZXN0ZWQgU2hhZG93Um9vdHM6IG9wZW4gPiBjbG9zZWQuIAorUEFTUyBFdmVu
dCBQYXRoIHdpdGggbmVzdGVkIFNoYWRvd1Jvb3RzOiBjbG9zZWQgPiBvcGVuLiAKK1BBU1MgRXZl
bnQgUGF0aCB3aXRoIG5lc3RlZCBTaGFkb3dSb290czogY2xvc2VkID4gY2xvc2VkLiAKK1BBU1Mg
RXZlbnQgUGF0aCB3aXRoIGEgc2xvdCBpbiBhbiBvcGVuIFNoYWRvdyBSb290LiAKK1BBU1MgRXZl
bnQgUGF0aCB3aXRoIGEgc2xvdCBpbiBhIGNsb3NlZCBTaGFkb3cgUm9vdC4gCitQQVNTIEV2ZW50
IFBhdGggd2l0aCBzbG90cyBpbiBuZXN0ZWQgU2hhZG93Um9vdHM6IG9wZW4gPiBvcGVuLiAKK1BB
U1MgRXZlbnQgUGF0aCB3aXRoIHNsb3RzIGluIG5lc3RlZCBTaGFkb3dSb290czogY2xvc2VkID4g
Y2xvc2VkLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLXBhdGgtd2l0aC1yZWxhdGVkLXRh
cmdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtY29tcG9zZWQtcGF0aC13aXRoLXJlbGF0ZWQtdGFyZ2V0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzVlODZlNDJjODMxZDczMDIyMmY2ZjY2MTQ3MGFi
ZDNjNDU4MjZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLXBhdGgtd2l0aC1yZWxh
dGVkLXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorCitQQVNTIEV2ZW50IHBh
dGggZm9yIGFuIGV2ZW50IHdpdGggYSByZWxhdGVkVGFyZ2V0LiByZWxhdGVkVGFyZ2V0ICE9IHRh
cmdldC4gCitQQVNTIEV2ZW50IHBhdGggZm9yIGFuIGV2ZW50IHdpdGggYSByZWxhdGVkVGFyZ2V0
LiBFdmVudCBzaG91bCBiZSBkaXNwYXRjaGVkIGlmIDEpIHRhcmdldCBhbmQgcmVsYXRlZFRhcmdl
dCBhcmUgc2FtZSwgYW5kIDIpIHRoZXkgYXJlIG5vdCBpbiBhIHNoYWRvdyB0cmVlLiAKK1BBU1Mg
RXZlbnQgcGF0aCBmb3IgYW4gZXZlbnQgd2l0aCBhIHJlbGF0ZWRUYXJnZXQuIEV2ZW50IHNob3Vs
ZCBzdG9wIGF0IHRoZSBzaGFkb3cgcm9vdCAKK0ZBSUwgRXZlbnQgcGF0aCBmb3IgYW4gZXZlbnQg
d2l0aCBhIHJlbGF0ZWRUYXJnZXQuIEV2ZW50IHNob3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBpZiAx
KSB0YXJnZXQgYW5kIHJlbGF0ZWRUYXJnZXQgYXJlIHNhbWUsIGFuZCAyKSBib3RoIGFyZSBpbiBh
IHNoYWRvdyB0cmVlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAwIGJ1dCBnb3QgMgorUEFTUyBF
dmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVsYXRlZFRhcmdldC4gdGFyZ2V0IGFuZCBy
ZWxhdGVyVGFyZ2V0IGRvIG5vdCBzaGFyZSBhbnkgc2hhZG93LWluY2x1ZGluZyBhbmNlc3Rvci4g
dGFyZ2V0IGlzIGluIGEgc2hhZG93IHRyZWUuIAorUEFTUyBFdmVudCBwYXRoIGZvciBhbiBldmVu
dCB3aXRoIGEgcmVsYXRlZFRhcmdldC4gdGFyZ2V0IGFuZCByZWxhdGVyVGFyZ2V0IGRvIG5vdCBz
aGFyZSBhbnkgc2hhZG93LWluY2x1ZGluZyBhbmNlc3Rvci4gdGFyZ2V0IGlzIG5vdCBpbiBhIHNo
YWRvdyB0cmVlIAorUEFTUyBFdmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVsYXRlZFRh
cmdldC4gdGFyZ2V0IGFuZCByZWxhdGVyVGFyZ2V0IHNoYXJlIHRoZSBzYW1lIHNoYWRvdy1pbmNs
dWRpbmcgYW5jZXN0b3IuIEJvdGggYXJlIGluIHNoYWRvdyB0cmVlcy4gCitQQVNTIEV2ZW50IHBh
dGggZm9yIGFuIGV2ZW50IHdpdGggYSByZWxhdGVkVGFyZ2V0LiByZWxhdGVyVGFyZ2V0IGlzIGEg
c2hhZG93LWluY2x1ZGluZyBhbmNlc3RvciBvZiB0YXJnZXQuIAorUEFTUyBFdmVudCBwYXRoIGZv
ciBhbiBldmVudCB3aXRoIGEgcmVsYXRlZFRhcmdldC4gdGFyZ2V0IGlzIGEgc2hhZG93LWluY2x1
ZGluZyBhbmNlc3RvciBvZiByZWxhdGVkVGFyZ2V0LiAKK1BBU1MgRXZlbnQgcGF0aCBmb3IgYW4g
ZXZlbnQgd2l0aCBhIHJlbGF0ZWRUYXJnZXQuIHRhcmdldCBpcyBhc3NpZ25lZCB0byBhIHNsb3Qu
IAorUEFTUyBFdmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVsYXRlZFRhcmdldC4gcmVs
YXRlZFRhcmdldCBpcyBhc3NpZ25lZCB0byBhIHNsb3QuIAorUEFTUyBFdmVudCBwYXRoIGZvciBh
biBldmVudCB3aXRoIGEgcmVsYXRlZFRhcmdldC4gRXZlbnQgc2hvdWxkIGJlIGRpc3BhdGNoZWQg
YXQgZXZlcnkgc2xvdHMuIAorUEFTUyBFdmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVs
YXRlZFRhcmdldC4gRXZlbnQgc2hvdWxkIGJlIGRpc3BhdGNoZWQgYXQgZXZlcnkgc2xvdHMuIHJl
bGF0ZWRUYXJnZXQgc2hvdWxkIGJlIGNvcnJlY3RseSByZXRhcmdldGVkLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9t
L2V2ZW50LWNvbXBvc2VkLXBhdGgtd2l0aC1yZWxhdGVkLXRhcmdldC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBv
c2VkLXBhdGgtd2l0aC1yZWxhdGVkLXRhcmdldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMDAwMjY1ODQx
MjI3ZDk1MWMzZjM4N2RiYWM0MDdjNmMxN2ZlNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtY29t
cG9zZWQtcGF0aC13aXRoLXJlbGF0ZWQtdGFyZ2V0Lmh0bWwKQEAgLTAsMCArMSwyNTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPlNoYWRvdyBET006IEV2ZW50IHBhdGggYW5kIEV2ZW50LmNv
bXBvc2VkUGF0aCgpICh3aXRoIHJlbGF0ZWQgdGFyZ2V0KTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJh
dXRob3IiIHRpdGxlPSJIYXlhdG8gSXRvIiBocmVmPSJtYWlsdG86aGF5YXRvQGdvb2dsZS5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3QxIj4KKyAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4K
KyAgPGRpdiBpZD0icmVsYXRlZCI+PC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK3Rlc3QoKCkg
PT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QxKTsKKyAgbGV0IGxvZyA9IGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKG4sIG4udGFyZ2V0LCBuZXcgRm9jdXNFdmVudCgnbXktZm9jdXMnLCB7
IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBuLnJlbGF0ZWQg
fSkpOworICBsZXQgcGF0aCA9IFsndGFyZ2V0JywgJ3Rlc3QxJ107CisgIGFzc2VydF9ldmVudF9w
YXRoX2VxdWFscyhsb2csIFtbJ3RhcmdldCcsICd0YXJnZXQnLCAncmVsYXRlZCcsIHBhdGhdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0MScsICd0YXJnZXQnLCAncmVs
YXRlZCcsIHBhdGhdXSk7Cit9LCAnRXZlbnQgcGF0aCBmb3IgYW4gZXZlbnQgd2l0aCBhIHJlbGF0
ZWRUYXJnZXQuIHJlbGF0ZWRUYXJnZXQgIT0gdGFyZ2V0LicpOworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0MSk7CisgIGxl
dCBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhuLCBuLnRhcmdldCwgbmV3IEZvY3VzRXZlbnQo
J215LWZvY3VzJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSwgcmVsYXRlZFRhcmdl
dDogbi50YXJnZXQgfSkpOworICBsZXQgcGF0aCA9IFsndGFyZ2V0JywgJ3Rlc3QxJ107CisgIGFz
c2VydF9ldmVudF9wYXRoX2VxdWFscyhsb2csIFtbJ3RhcmdldCcsICd0YXJnZXQnLCAndGFyZ2V0
JywgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3QxJywgJ3Rh
cmdldCcsICd0YXJnZXQnLCBwYXRoXV0pOworfSwgJ0V2ZW50IHBhdGggZm9yIGFuIGV2ZW50IHdp
dGggYSByZWxhdGVkVGFyZ2V0LiBFdmVudCBzaG91bCBiZSBkaXNwYXRjaGVkIGlmIDEpIHRhcmdl
dCBhbmQgcmVsYXRlZFRhcmdldCBhcmUgc2FtZSwgYW5kIDIpIHRoZXkgYXJlIG5vdCBpbiBhIHNo
YWRvdyB0cmVlLicpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3QyIj4KKyAgPGRpdiBpZD0i
aG9zdCI+CisgICAgPHRlbXBsYXRlIGlkPSJzciIgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxk
aXYgaWQ9InRhcmdldCI+PC9kaXY+CisgICAgICA8ZGl2IGlkPSJyZWxhdGVkIj48L2Rpdj4KKyAg
ICA8L3RlbXBsYXRlPgorICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7
CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdDIpOworICBsZXQgbG9nID0gZGlzcGF0Y2hF
dmVudFdpdGhMb2cobiwgbi50YXJnZXQsIG5ldyBGb2N1c0V2ZW50KCdteS1mb2N1cycsIHsgYnVi
YmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG4ucmVsYXRlZCB9KSk7
CisgIGxldCBwYXRoID0gWyd0YXJnZXQnLCAnc3InXTsKKyAgYXNzZXJ0X2V2ZW50X3BhdGhfZXF1
YWxzKGxvZywgW1sndGFyZ2V0JywgJ3RhcmdldCcsICdyZWxhdGVkJywgcGF0aF0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NyJywgJ3RhcmdldCcsICdyZWxhdGVkJywgcGF0
aF1dKTsKK30sICdFdmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVsYXRlZFRhcmdldC4g
RXZlbnQgc2hvdWxkIHN0b3AgYXQgdGhlIHNoYWRvdyByb290Jyk7CisKK3Rlc3QoKCkgPT4gewor
ICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QyKTsKKyAgbGV0IGxvZyA9IGRpc3BhdGNoRXZl
bnRXaXRoTG9nKG4sIG4udGFyZ2V0LCBuZXcgRm9jdXNFdmVudCgnbXktZm9jdXMnLCB7IGJ1YmJs
ZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBuLnRhcmdldCB9KSk7Cisg
IGFzc2VydF9ldmVudF9wYXRoX2VxdWFscyhsb2csIFtdKTsKK30sICdFdmVudCBwYXRoIGZvciBh
biBldmVudCB3aXRoIGEgcmVsYXRlZFRhcmdldC4gRXZlbnQgc2hvdWxkIG5vdCBiZSBkaXNwYXRj
aGVkIGlmIDEpIHRhcmdldCBhbmQgcmVsYXRlZFRhcmdldCBhcmUgc2FtZSwgYW5kIDIpIGJvdGgg
YXJlIGluIGEgc2hhZG93IHRyZWUuJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdDNfMSI+
CisgIDxkaXYgaWQ9Imhvc3QxIj4KKyAgICA8dGVtcGxhdGUgaWQ9InNyMSIgZGF0YS1tb2RlPSJv
cGVuIj4KKyAgICAgIDxkaXYgaWQ9InRhcmdldDEiPjwvZGl2PgorICAgIDwvdGVtcGxhdGU+Cisg
IDwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InRlc3QzXzIiPgorICA8ZGl2IGlkPSJob3N0MiI+
CisgICAgPHRlbXBsYXRlIGlkPSJzcjIiIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICA8ZGl2IGlk
PSJ0YXJnZXQyIj48L2Rpdj4KKyAgICA8L3RlbXBsYXRlPgorICA8L2Rpdj4KKzwvZGl2PgorCis8
c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuMSA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QzXzEp
OworICBsZXQgbjIgPSBjcmVhdGVUZXN0VHJlZSh0ZXN0M18yKTsKKyAgbGV0IGxvZyA9IGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKG4xLCBuMS50YXJnZXQxLCBuZXcgRm9jdXNFdmVudCgnbXktZm9jdXMn
LCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBuMi50YXJn
ZXQyIH0pKTsKKyAgbGV0IHBhdGggPSBbJ3RhcmdldDEnLCAnc3IxJywgJ2hvc3QxJywgJ3Rlc3Qz
XzEnXTsKKyAgYXNzZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKGxvZywgW1sndGFyZ2V0MScsICd0YXJn
ZXQxJywgJ2hvc3QyJywgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
J3NyMScsICAgICAndGFyZ2V0MScsICdob3N0MicsIHBhdGhdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWydob3N0MScsICAgJ2hvc3QxJywgICAnaG9zdDInLCBwYXRoXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdDNfMScsICdob3N0MScsICAgJ2hv
c3QyJywgcGF0aF1dKTsKK30sICdFdmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVsYXRl
ZFRhcmdldC4gdGFyZ2V0IGFuZCByZWxhdGVyVGFyZ2V0IGRvIG5vdCBzaGFyZSBhbnkgc2hhZG93
LWluY2x1ZGluZyBhbmNlc3Rvci4gdGFyZ2V0IGlzIGluIGEgc2hhZG93IHRyZWUuJyk7CisKK3Rl
c3QoKCkgPT4geworICBsZXQgbjEgPSBjcmVhdGVUZXN0VHJlZSh0ZXN0M18xKTsKKyAgbGV0IG4y
ID0gY3JlYXRlVGVzdFRyZWUodGVzdDNfMik7CisgIGxldCBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0
aExvZyhuMSwgbjEuaG9zdDEsIG5ldyBGb2N1c0V2ZW50KCdteS1mb2N1cycsIHsgYnViYmxlczog
dHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG4yLnRhcmdldDIgfSkpOworICBs
ZXQgcGF0aCA9IFsnaG9zdDEnLCAndGVzdDNfMSddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVh
bHMobG9nLCBbWydob3N0MScsICAgJ2hvc3QxJywgICAnaG9zdDInLCBwYXRoXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdDNfMScsICdob3N0MScsICAgJ2hvc3QyJywg
cGF0aF1dKTsKK30sICdFdmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVsYXRlZFRhcmdl
dC4gdGFyZ2V0IGFuZCByZWxhdGVyVGFyZ2V0IGRvIG5vdCBzaGFyZSBhbnkgc2hhZG93LWluY2x1
ZGluZyBhbmNlc3Rvci4gdGFyZ2V0IGlzIG5vdCBpbiBhIHNoYWRvdyB0cmVlJyk7Cis8L3Njcmlw
dD4KKworPGRpdiBpZD0idGVzdDQiPgorICA8ZGl2IGlkPSJob3N0MSI+CisgICAgPHRlbXBsYXRl
IGlkPSJzcjEiIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICA8ZGl2IGlkPSJob3N0MiI+CisgICAg
ICAgIDx0ZW1wbGF0ZSBpZD0ic3IyIiBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgICAgIDxkaXYg
aWQ9InRhcmdldCI+PC9kaXY+CisgICAgICAgIDwvdGVtcGxhdGU+CisgICAgICA8L2Rpdj4KKyAg
ICAgIDxkaXYgaWQ9Imhvc3QzIj4KKyAgICAgICAgPHRlbXBsYXRlIGlkPSJzcjMiIGRhdGEtbW9k
ZT0ib3BlbiI+CisgICAgICAgICAgPGRpdiBpZD0icmVsYXRlZCI+PC9kaXY+CisgICAgICAgIDwv
dGVtcGxhdGU+CisgICAgICA8L2Rpdj4KKyAgICA8L3RlbXBsYXRlPgorICA8L2Rpdj4KKzwvZGl2
PgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVz
dDQpOworICBsZXQgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2cobiwgbi50YXJnZXQsIG5ldyBG
b2N1c0V2ZW50KCdteS1mb2N1cycsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJl
bGF0ZWRUYXJnZXQ6IG4ucmVsYXRlZCB9KSk7CisgIGxldCBwYXRoID0gWyd0YXJnZXQnLCAnc3Iy
JywgJ2hvc3QyJywgJ3NyMSddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMobG9nLCBbWyd0
YXJnZXQnLCAndGFyZ2V0JywgJ2hvc3QzJywgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbJ3NyMicsICd0YXJnZXQnLCAnaG9zdDMnLCBwYXRoXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsnaG9zdDInLCAnaG9zdDInLCAnaG9zdDMnLCBwYXRoXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3IxJywgJ2hvc3QyJywgJ2hvc3Qz
JywgcGF0aF1dKTsKK30sICdFdmVudCBwYXRoIGZvciBhbiBldmVudCB3aXRoIGEgcmVsYXRlZFRh
cmdldC4gdGFyZ2V0IGFuZCByZWxhdGVyVGFyZ2V0IHNoYXJlIHRoZSBzYW1lIHNoYWRvdy1pbmNs
dWRpbmcgYW5jZXN0b3IuIEJvdGggYXJlIGluIHNoYWRvdyB0cmVlcy4nKTsKKwordGVzdCgoKSA9
PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdDQpOworICBsZXQgbG9nID0gZGlzcGF0
Y2hFdmVudFdpdGhMb2cobiwgbi50YXJnZXQsIG5ldyBGb2N1c0V2ZW50KCdteS1mb2N1cycsIHsg
YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG4uaG9zdDEgfSkp
OworICBsZXQgcGF0aCA9IFsndGFyZ2V0JywgJ3NyMicsICdob3N0MicsICdzcjEnXTsKKyAgYXNz
ZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKGxvZywgW1sndGFyZ2V0JywgJ3RhcmdldCcsICdob3N0MScs
IHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzcjInLCAndGFyZ2V0
JywgJ2hvc3QxJywgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2hv
c3QyJywgJ2hvc3QyJywgJ2hvc3QxJywgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ3NyMScsICdob3N0MicsICdob3N0MScsIHBhdGhdXSk7Cit9LCAnRXZlbnQgcGF0
aCBmb3IgYW4gZXZlbnQgd2l0aCBhIHJlbGF0ZWRUYXJnZXQuIHJlbGF0ZXJUYXJnZXQgaXMgYSBz
aGFkb3ctaW5jbHVkaW5nIGFuY2VzdG9yIG9mIHRhcmdldC4nKTsKKwordGVzdCgoKSA9PiB7Cisg
IGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdDQpOworICBsZXQgbG9nID0gZGlzcGF0Y2hFdmVu
dFdpdGhMb2cobiwgbi5ob3N0MSwgbmV3IEZvY3VzRXZlbnQoJ215LWZvY3VzJywgeyBidWJibGVz
OiB0cnVlLCBjb21wb3NlZDogdHJ1ZSwgcmVsYXRlZFRhcmdldDogbi50YXJnZXQgfSkpOworICBh
c3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMobG9nLCBbXSk7Cit9LCAnRXZlbnQgcGF0aCBmb3IgYW4g
ZXZlbnQgd2l0aCBhIHJlbGF0ZWRUYXJnZXQuIHRhcmdldCBpcyBhIHNoYWRvdy1pbmNsdWRpbmcg
YW5jZXN0b3Igb2YgcmVsYXRlZFRhcmdldC4nKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0
NSI+CisgIDxkaXYgaWQ9Imhvc3QiPgorICAgIDx0ZW1wbGF0ZSBpZD0ic3IiIGRhdGEtbW9kZT0i
b3BlbiI+CisgICAgICA8c2xvdCBpZD0ic2xvdCI+PC9zbG90PgorICAgICAgPGRpdiBpZD0icmVs
YXRlZCI+PC9kaXY+CisgICAgPC90ZW1wbGF0ZT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2
PgorICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuID0g
Y3JlYXRlVGVzdFRyZWUodGVzdDUpOworICBsZXQgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2co
biwgbi50YXJnZXQsIG5ldyBGb2N1c0V2ZW50KCdteS1mb2N1cycsIHsgYnViYmxlczogdHJ1ZSwg
Y29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG4ucmVsYXRlZCB9KSk7CisgIGxldCBwYXRo
ID0gWyd0YXJnZXQnLCAnc2xvdCcsICdzcicsICdob3N0JywgJ3Rlc3Q1J107CisgIGFzc2VydF9l
dmVudF9wYXRoX2VxdWFscyhsb2csIFtbJ3RhcmdldCcsICd0YXJnZXQnLCAnaG9zdCcsIHBhdGhd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzbG90JywgJ3RhcmdldCcsICdy
ZWxhdGVkJywgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NyJywg
J3RhcmdldCcsICdyZWxhdGVkJywgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbJ2hvc3QnLCAndGFyZ2V0JywgJ2hvc3QnLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsndGVzdDUnLCAndGFyZ2V0JywgJ2hvc3QnLCBwYXRoXV0pOworfSwg
J0V2ZW50IHBhdGggZm9yIGFuIGV2ZW50IHdpdGggYSByZWxhdGVkVGFyZ2V0LiB0YXJnZXQgaXMg
YXNzaWduZWQgdG8gYSBzbG90LicpOworCit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVU
ZXN0VHJlZSh0ZXN0NSk7CisgIGxldCBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhuLCBuLnJl
bGF0ZWQsIG5ldyBGb2N1c0V2ZW50KCdteS1mb2N1cycsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9z
ZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG4udGFyZ2V0IH0pKTsKKyAgbGV0IHBhdGggPSBbJ3Jl
bGF0ZWQnLCAnc3InLCAnaG9zdCcsICd0ZXN0NSddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVh
bHMobG9nLCBbWydyZWxhdGVkJywgJ3JlbGF0ZWQnLCAndGFyZ2V0JywgcGF0aF0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NyJywgJ3JlbGF0ZWQnLCAndGFyZ2V0JywgcGF0
aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2hvc3QnLCAnaG9zdCcsICd0
YXJnZXQnLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdDUn
LCAnaG9zdCcsICd0YXJnZXQnLCBwYXRoXV0pOworfSwgJ0V2ZW50IHBhdGggZm9yIGFuIGV2ZW50
IHdpdGggYSByZWxhdGVkVGFyZ2V0LiByZWxhdGVkVGFyZ2V0IGlzIGFzc2lnbmVkIHRvIGEgc2xv
dC4nKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0NiI+CisgIDxkaXYgaWQ9Imhvc3QwIj4K
KyAgICA8dGVtcGxhdGUgaWQ9InNyMCIgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxkaXYgaWQ9
Imhvc3QxIj4KKyAgICAgICAgPHRlbXBsYXRlIGlkPSJzcjEiIGRhdGEtbW9kZT0ib3BlbiI+Cisg
ICAgICAgICAgPGRpdiBpZD0iaG9zdDIiPgorICAgICAgICAgICAgPHRlbXBsYXRlIGlkPSJzcjIi
IGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICAgICAgICAgIDxzbG90IGlkPSJzbG90MiI+PC9zbG90
PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJyZWxhdGVkMiI+PC9kaXY+CisgICAgICAgICAgICA8
L3RlbXBsYXRlPgorICAgICAgICAgICAgPGRpdiBpZD0icmVsYXRlZDEiPjwvZGl2PgorICAgICAg
ICAgICAgPGRpdiBpZD0iZDEiPgorICAgICAgICAgICAgICA8c2xvdCBpZD0ic2xvdDEiPjwvc2xv
dD4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L3RlbXBs
YXRlPgorICAgICAgICA8ZGl2IGlkPSJob3N0MyI+CisgICAgICAgICAgPHRlbXBsYXRlIGlkPSJz
cjMiIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICAgICAgICA8ZGl2IGlkPSJob3N0NCI+CisgICAg
ICAgICAgICAgIDx0ZW1wbGF0ZSBpZD0ic3I0IiBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgICAg
ICAgICAgIDxkaXYgaWQ9Imhvc3Q1Ij4KKyAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpZD0i
c3I1IiBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgICAgICAgICAgICAgICA8c2xvdCBpZD0ic2xv
dDUiPjwvc2xvdD4KKyAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CisgICAgICAgICAgICAg
ICAgICA8c2xvdCBpZD0ic2xvdDQiPjwvc2xvdD4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgICAgICAgICAgPGRpdiBpZD0idGFyZ2V0Ij48
L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDwvdGVtcGxhdGU+CisgICAgICAg
IDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC90ZW1wbGF0ZT4KKyAgPC9kaXY+Cis8L2Rpdj4K
KworPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3Q2
KTsKKyAgbGV0IGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG4sIG4udGFyZ2V0LCBuZXcgRm9j
dXNFdmVudCgnbXktZm9jdXMnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlLCByZWxh
dGVkVGFyZ2V0OiBuLnJlbGF0ZWQxIH0pKTsKKyAgbGV0IHBhdGggPSBbJ3RhcmdldCcsICdzbG90
NCcsICdzbG90NScsICdzcjUnLCAnaG9zdDUnLCAnc3I0JywgJ2hvc3Q0JywgJ3NyMycsICdob3N0
MycsICdzbG90MScsICdkMScsICdzbG90MicsICdzcjInLCAnaG9zdDInLCAnc3IxJywgJ2hvc3Qx
JywgJ3NyMCddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMobG9nLCBbWyd0YXJnZXQnLCAg
J3RhcmdldCcsICdob3N0MScsICAgIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydzbG90NCcsICAgJ3RhcmdldCcsICdob3N0MScsICAgIHBhdGhdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWydzbG90NScsICAgJ3RhcmdldCcsICdob3N0MScsICAg
IHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzcjUnLCAgICAgJ3Rh
cmdldCcsICdob3N0MScsICAgIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWydob3N0NScsICAgJ3RhcmdldCcsICdob3N0MScsICAgIHBhdGhdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWydzcjQnLCAgICAgJ3RhcmdldCcsICdob3N0MScsICAgIHBh
dGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0NCcsICAgJ3Rhcmdl
dCcsICdob3N0MScsICAgIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WydzcjMnLCAgICAgJ3RhcmdldCcsICdob3N0MScsICAgIHBhdGhdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWydob3N0MycsICAgJ2hvc3QzJywgICdob3N0MScsICAgIHBhdGhd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzbG90MScsICAgJ2hvc3QzJywg
ICdyZWxhdGVkMScsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydk
MScgICAsICAgJ2hvc3QzJywgICdyZWxhdGVkMScsIHBhdGhdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWydzbG90MicsICAgJ2hvc3QzJywgICdyZWxhdGVkMScsIHBhdGhdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzcjInLCAgICAgJ2hvc3QzJywgICdy
ZWxhdGVkMScsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0
MicsICAgJ2hvc3QzJywgICdyZWxhdGVkMScsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWydzcjEnLCAgICAgJ2hvc3QzJywgICdyZWxhdGVkMScsIHBhdGhdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0MScsICAgJ2hvc3QzJywgICdob3N0
MScsICAgIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzcjAnLCAg
ICAgJ2hvc3QzJywgICdob3N0MScgICAsIHBhdGhdXSk7Cit9LCAnRXZlbnQgcGF0aCBmb3IgYW4g
ZXZlbnQgd2l0aCBhIHJlbGF0ZWRUYXJnZXQuIEV2ZW50IHNob3VsZCBiZSBkaXNwYXRjaGVkIGF0
IGV2ZXJ5IHNsb3RzLicpOworCit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJl
ZSh0ZXN0Nik7CisgIGxldCBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhuLCBuLnRhcmdldCwg
bmV3IEZvY3VzRXZlbnQoJ215LWZvY3VzJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1
ZSwgcmVsYXRlZFRhcmdldDogbi5yZWxhdGVkMiB9KSk7CisgIGxldCBwYXRoID0gWyd0YXJnZXQn
LCAnc2xvdDQnLCAnc2xvdDUnLCAnc3I1JywgJ2hvc3Q1JywgJ3NyNCcsICdob3N0NCcsICdzcjMn
LCAnaG9zdDMnLCAnc2xvdDEnLCAnZDEnLCAnc2xvdDInLCAnc3IyJywgJ2hvc3QyJywgJ3NyMScs
ICdob3N0MScsICdzcjAnXTsKKyAgYXNzZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKGxvZywgW1sndGFy
Z2V0JywgICd0YXJnZXQnLCAnaG9zdDEnLCAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsnc2xvdDQnLCAgICd0YXJnZXQnLCAnaG9zdDEnLCAgICBwYXRoXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc2xvdDUnLCAgICd0YXJnZXQnLCAnaG9z
dDEnLCAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3I1Jywg
ICAgICd0YXJnZXQnLCAnaG9zdDEnLCAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsnaG9zdDUnLCAgICd0YXJnZXQnLCAnaG9zdDEnLCAgICBwYXRoXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3I0JywgICAgICd0YXJnZXQnLCAnaG9zdDEn
LCAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnaG9zdDQnLCAg
ICd0YXJnZXQnLCAnaG9zdDEnLCAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnc3IzJywgICAgICd0YXJnZXQnLCAnaG9zdDEnLCAgICBwYXRoXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsnaG9zdDMnLCAgICdob3N0MycsICAnaG9zdDEnLCAg
ICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc2xvdDEnLCAgICdo
b3N0MycsICAnaG9zdDInLCAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsnZDEnICAgLCAgICdob3N0MycsICAnaG9zdDInLCAgICBwYXRoXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsnc2xvdDInLCAgICdob3N0MycsICAncmVsYXRlZDInLCBw
YXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3IyJywgICAgICdob3N0
MycsICAncmVsYXRlZDInLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnaG9zdDInLCAgICdob3N0MycsICAnaG9zdDInLCAgICBwYXRoXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsnc3IxJywgICAgICdob3N0MycsICAnaG9zdDInLCAgICBwYXRo
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnaG9zdDEnLCAgICdob3N0Mycs
ICAnaG9zdDEnLCAgICBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn
c3IwJywgICAgICdob3N0MycsICAnaG9zdDEnICAgLCBwYXRoXV0pOworfSwgJ0V2ZW50IHBhdGgg
Zm9yIGFuIGV2ZW50IHdpdGggYSByZWxhdGVkVGFyZ2V0LiBFdmVudCBzaG91bGQgYmUgZGlzcGF0
Y2hlZCBhdCBldmVyeSBzbG90cy4gcmVsYXRlZFRhcmdldCBzaG91bGQgYmUgY29ycmVjdGx5IHJl
dGFyZ2V0ZWQuJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9ldmVudC1jb21wb3NlZC1wYXRoLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vZXZlbnQtY29tcG9zZWQtcGF0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNzIxMzlmZTE2MWRiNjcy
NjczZjFhNTEwNzEyZjEzYjY4ODcwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtY29tcG9zZWQt
cGF0aC5odG1sCkBAIC0wLDAgKzEsMjgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TaGFk
b3cgRE9NOiBFdmVudCBwYXRoIGFuZCBFdmVudC5jb21wb3NlZFBhdGgoKTwvdGl0bGU+Cis8bWV0
YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJIYXlhdG8gSXRvIiBocmVmPSJtYWlsdG86aGF5YXRvQGdv
b2dsZS5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93
LWRvbS5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3QxIj4KKyAgPGRpdiBpZD0iZDEiPgor
ICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+
Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0MSk7CisgIGxldCBs
b2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhuLCBuLnRhcmdldCwgbmV3IEV2ZW50KCdteS1ldmVu
dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpOworICBsZXQgcGF0aCA9IFsn
dGFyZ2V0JywgJ2QxJywgJ3Rlc3QxJ107CisgIGFzc2VydF9ldmVudF9wYXRoX2VxdWFscyhsb2cs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBbWyd0YXJnZXQnLCAndGFyZ2V0JywgbnVsbCwg
cGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydkMScsICd0YXJnZXQnLCBudWxs
LCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3QxJywgJ3RhcmdldCcs
IG51bGwsIHBhdGhdXSk7Cit9LCAnRXZlbnQgUGF0aCB3aXRob3V0IFNoYWRvd1Jvb3RzLicpOwor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3QyIj4KKyAgPGRpdiBpZD0iaG9zdCI+CisgICAgPHRl
bXBsYXRlIGlkPSJzciIgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxkaXYgaWQ9InRhcmdldCI+
PC9kaXY+CisgICAgPC90ZW1wbGF0ZT4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK3Rl
c3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QyKTsKKyAgbGV0IGxvZyA9
IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG4sIG4udGFyZ2V0LCBuZXcgRXZlbnQoJ215LWV2ZW50Jywg
eyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7CisgIGxldCBwYXRoID0gWyd0YXJn
ZXQnLCAnc3InLCAnaG9zdCcsICd0ZXN0MiddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMo
bG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgW1sndGFyZ2V0JywgJ3RhcmdldCcsIG51
bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3InLCAndGFyZ2V0Jywg
bnVsbCwgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0JywgJ2hvc3Qn
LCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3QyJywgJ2hv
c3QnLCBudWxsLCBwYXRoXV0pOworfSwgJ0V2ZW50IFBhdGggd2l0aCBhbiBvcGVuIFNoYWRvd1Jv
b3QuJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdDMiPgorICA8ZGl2IGlkPSJob3N0Ij4K
KyAgICA8dGVtcGxhdGUgaWQ9InNyIiBkYXRhLW1vZGU9ImNsb3NlZCI+CisgICAgICA8ZGl2IGlk
PSJ0YXJnZXQiPjwvZGl2PgorICAgIDwvdGVtcGxhdGU+CisgIDwvZGl2PgorPC9kaXY+CisKKzxz
Y3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0Myk7Cisg
IGxldCBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhuLCBuLnRhcmdldCwgbmV3IEV2ZW50KCdt
eS1ldmVudCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpOworICBsZXQgcGF0
aCA9IFsndGFyZ2V0Jywnc3InLCAnaG9zdCcsICd0ZXN0MyddOworICBsZXQgcGF0aDEgPSBbJ2hv
c3QnLCAndGVzdDMnXTsKKyAgYXNzZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKGxvZywgW1sndGFyZ2V0
JywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWydzcicsICd0YXJnZXQnLCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsnaG9zdCcsICdob3N0JywgbnVsbCwgcGF0aDFdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWyd0ZXN0MycsICdob3N0JywgbnVsbCwgcGF0aDFdXSk7Cit9LCAn
RXZlbnQgUGF0aCB3aXRoIGEgY2xvc2VkIFNoYWRvd1Jvb3QuJyk7Cis8L3NjcmlwdD4KKworPGRp
diBpZD0idGVzdDQiPgorICA8ZGl2IGlkPSJob3N0MSI+CisgICAgPHRlbXBsYXRlIGlkPSJzcjEi
IGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICA8ZGl2IGlkPSJob3N0MiI+CisgICAgICAgIDx0ZW1w
bGF0ZSBpZD0ic3IyIiBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgICAgIDxkaXYgaWQ9InRhcmdl
dCI+PC9kaXY+CisgICAgICAgIDwvdGVtcGxhdGU+CisgICAgICA8L2Rpdj4KKyAgICA8L3RlbXBs
YXRlPgorICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBu
ID0gY3JlYXRlVGVzdFRyZWUodGVzdDQpOworICBsZXQgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhM
b2cobiwgbi50YXJnZXQsIG5ldyBFdmVudCgnbXktZXZlbnQnLCB7IGJ1YmJsZXM6IHRydWUsIGNv
bXBvc2VkOiB0cnVlIH0pKTsKKyAgbGV0IHBhdGggPSBbJ3RhcmdldCcsICdzcjInLCAnaG9zdDIn
LCAnc3IxJywgJ2hvc3QxJywgJ3Rlc3Q0J107CisgIGFzc2VydF9ldmVudF9wYXRoX2VxdWFscyhs
b2csIFtbJ3RhcmdldCcsICd0YXJnZXQnLCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsnc3IyJywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0MicsICdob3N0MicsIG51bGwsIHBhdGhdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzcjEnLCAnaG9zdDInLCBudWxsLCBw
YXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnaG9zdDEnLCAnaG9zdDEn
LCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdDQn
LCAnaG9zdDEnLCBudWxsLCBwYXRoXV0pOworfSwgJ0V2ZW50IFBhdGggd2l0aCBuZXN0ZWQgU2hh
ZG93Um9vdHM6IG9wZW4gPiBvcGVuLicpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3Q1Ij4K
KyAgPGRpdiBpZD0iaG9zdDEiPgorICAgIDx0ZW1wbGF0ZSBpZD0ic3IxIiBkYXRhLW1vZGU9Im9w
ZW4iPgorICAgICAgPGRpdiBpZD0iaG9zdDIiPgorICAgICAgICA8dGVtcGxhdGUgaWQ9InNyMiIg
ZGF0YS1tb2RlPSJjbG9zZWQiPgorICAgICAgICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cisg
ICAgICAgIDwvdGVtcGxhdGU+CisgICAgICA8L2Rpdj4KKyAgICA8L3RlbXBsYXRlPgorICA8L2Rp
dj4KKzwvZGl2PgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVz
dFRyZWUodGVzdDUpOworICBsZXQgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2cobiwgbi50YXJn
ZXQsIG5ldyBFdmVudCgnbXktZXZlbnQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVl
IH0pKTsKKyAgbGV0IHBhdGggPSBbJ3RhcmdldCcsICdzcjInLCAnaG9zdDInLCAnc3IxJywgJ2hv
c3QxJywgJ3Rlc3Q1J107CisgIGxldCBwYXRoMSA9IFsnaG9zdDInLCAnc3IxJywgJ2hvc3QxJywg
J3Rlc3Q1J107CisgIGFzc2VydF9ldmVudF9wYXRoX2VxdWFscyhsb2csIFtbJ3RhcmdldCcsICd0
YXJnZXQnLCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn
c3IyJywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydob3N0MicsICdob3N0MicsIG51bGwsIHBhdGgxXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsnc3IxJywgJ2hvc3QyJywgbnVsbCwgcGF0aDFdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0MScsICdob3N0MScsIG51bGwsIHBhdGgxXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdDUnLCAnaG9zdDEnLCBudWxs
LCBwYXRoMV1dKTsKK30sICdFdmVudCBQYXRoIHdpdGggbmVzdGVkIFNoYWRvd1Jvb3RzOiBvcGVu
ID4gY2xvc2VkLicpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3Q2Ij4KKyAgPGRpdiBpZD0i
aG9zdDEiPgorICAgIDx0ZW1wbGF0ZSBpZD0ic3IxIiBkYXRhLW1vZGU9ImNsb3NlZCI+CisgICAg
ICA8ZGl2IGlkPSJob3N0MiI+CisgICAgICAgIDx0ZW1wbGF0ZSBpZD0ic3IyIiBkYXRhLW1vZGU9
Im9wZW4iPgorICAgICAgICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgICAgICAgIDwvdGVt
cGxhdGU+CisgICAgICA8L2Rpdj4KKyAgICA8L3RlbXBsYXRlPgorICA8L2Rpdj4KKzwvZGl2Pgor
Cis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdDYp
OworICBsZXQgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2cobiwgbi50YXJnZXQsIG5ldyBFdmVu
dCgnbXktZXZlbnQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTsKKyAgbGV0
IHBhdGggPSBbJ3RhcmdldCcsICdzcjInLCAnaG9zdDInLCAnc3IxJywgJ2hvc3QxJywgJ3Rlc3Q2
J107CisgIGxldCBwYXRoMSA9IFsnaG9zdDEnLCAndGVzdDYnXTsKKyAgYXNzZXJ0X2V2ZW50X3Bh
dGhfZXF1YWxzKGxvZywgW1sndGFyZ2V0JywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzcjInLCAndGFyZ2V0JywgbnVsbCwgcGF0aF0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2hvc3QyJywgJ2hvc3QyJywgbnVs
bCwgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NyMScsICdob3N0
MicsIG51bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0
MScsICdob3N0MScsIG51bGwsIHBhdGgxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsndGVzdDYnLCAnaG9zdDEnLCBudWxsLCBwYXRoMV1dKTsKK30sICdFdmVudCBQYXRoIHdp
dGggbmVzdGVkIFNoYWRvd1Jvb3RzOiBjbG9zZWQgPiBvcGVuLicpOworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9InRlc3Q3Ij4KKyAgPGRpdiBpZD0iaG9zdDEiPgorICAgIDx0ZW1wbGF0ZSBpZD0ic3Ix
IiBkYXRhLW1vZGU9ImNsb3NlZCI+CisgICAgICA8ZGl2IGlkPSJob3N0MiI+CisgICAgICAgIDx0
ZW1wbGF0ZSBpZD0ic3IyIiBkYXRhLW1vZGU9ImNsb3NlZCI+CisgICAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0Ij48L2Rpdj4KKyAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgIDwvZGl2PgorICAgIDwv
dGVtcGxhdGU+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAg
bGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0Nyk7CisgIGxldCBsb2cgPSBkaXNwYXRjaEV2ZW50
V2l0aExvZyhuLCBuLnRhcmdldCwgbmV3IEV2ZW50KCdteS1ldmVudCcsIHsgYnViYmxlczogdHJ1
ZSwgY29tcG9zZWQ6IHRydWUgfSkpOworICBsZXQgcGF0aCA9IFsndGFyZ2V0JywgJ3NyMicsICdo
b3N0MicsICdzcjEnLCAnaG9zdDEnLCAndGVzdDcnXTsKKyAgbGV0IHBhdGgxID0gWydob3N0Mics
ICdzcjEnLCAnaG9zdDEnLCAndGVzdDcnXTsKKyAgbGV0IHBhdGgyID0gWydob3N0MScsICd0ZXN0
NyddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMobG9nLCBbWyd0YXJnZXQnLCAndGFyZ2V0
JywgbnVsbCwgcGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NyMics
ICd0YXJnZXQnLCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnaG9zdDInLCAnaG9zdDInLCBudWxsLCBwYXRoMV0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbJ3NyMScsICdob3N0MicsIG51bGwsIHBhdGgxXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsnaG9zdDEnLCAnaG9zdDEnLCBudWxsLCBwYXRoMl0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Q3JywgJ2hvc3QxJywgbnVsbCwgcGF0
aDJdXSk7Cit9LCAnRXZlbnQgUGF0aCB3aXRoIG5lc3RlZCBTaGFkb3dSb290czogY2xvc2VkID4g
Y2xvc2VkLicpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3Q4Ij4KKyAgPGRpdiBpZD0iaG9z
dDEiPgorICAgIDx0ZW1wbGF0ZSBpZD0ic3IxIiBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgPHNs
b3QgaWQ9InNsb3QiPjwvc2xvdD4KKyAgICA8L3RlbXBsYXRlPgorICAgIDxkaXYgaWQ9InRhcmdl
dCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAg
bGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0OCk7CisgIGxldCBsb2cgPSBkaXNwYXRjaEV2ZW50
V2l0aExvZyhuLCBuLnRhcmdldCwgbmV3IEV2ZW50KCdteS1ldmVudCcsIHsgYnViYmxlczogdHJ1
ZSwgY29tcG9zZWQ6IHRydWUgfSkpOworICBsZXQgcGF0aCA9IFsndGFyZ2V0Jywnc2xvdCcsICdz
cjEnLCAnaG9zdDEnLCAndGVzdDgnXTsKKyAgYXNzZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKGxvZywg
W1sndGFyZ2V0JywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWydzbG90JywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWydzcjEnLCAndGFyZ2V0JywgbnVsbCwgcGF0aF0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2hvc3QxJywgJ3RhcmdldCcsIG51bGwsIHBh
dGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0OCcsICd0YXJnZXQn
LCBudWxsLCBwYXRoXV0pOworfSwgJ0V2ZW50IFBhdGggd2l0aCBhIHNsb3QgaW4gYW4gb3BlbiBT
aGFkb3cgUm9vdC4nKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0OSI+CisgIDxkaXYgaWQ9
Imhvc3QxIj4KKyAgICA8dGVtcGxhdGUgaWQ9InNyMSIgZGF0YS1tb2RlPSJjbG9zZWQiPgorICAg
ICAgPHNsb3QgaWQ9InNsb3QiPjwvc2xvdD4KKyAgICA8L3RlbXBsYXRlPgorICAgIDxkaXYgaWQ9
InRhcmdldCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+
IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0OSk7CisgIGxldCBsb2cgPSBkaXNwYXRj
aEV2ZW50V2l0aExvZyhuLCBuLnRhcmdldCwgbmV3IEV2ZW50KCdteS1ldmVudCcsIHsgYnViYmxl
czogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpOworICBsZXQgcGF0aCA9IFsndGFyZ2V0JywgJ3Ns
b3QnLCAnc3IxJywgJ2hvc3QxJywgJ3Rlc3Q5J107CisgIGxldCBwYXRoMSA9IFsndGFyZ2V0Jywg
J2hvc3QxJywgJ3Rlc3Q5J107CisgIGFzc2VydF9ldmVudF9wYXRoX2VxdWFscyhsb2csIFtbJ3Rh
cmdldCcsICd0YXJnZXQnLCBudWxsLCBwYXRoMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ3Nsb3QnLCAndGFyZ2V0JywgbnVsbCwgcGF0aF0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbJ3NyMScsICd0YXJnZXQnLCBudWxsLCBwYXRoXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsnaG9zdDEnLCAndGFyZ2V0JywgbnVsbCwgcGF0aDFd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0OScsICd0YXJnZXQnLCBu
dWxsLCBwYXRoMV1dKTsKK30sICdFdmVudCBQYXRoIHdpdGggYSBzbG90IGluIGEgY2xvc2VkIFNo
YWRvdyBSb290LicpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3QxMCI+CisgIDxkaXYgaWQ9
Imhvc3QxIj4KKyAgICA8dGVtcGxhdGUgaWQ9InNyMSIgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAg
IDxkaXYgaWQ9Imhvc3QyIj4KKyAgICAgICAgPHRlbXBsYXRlIGlkPSJzcjIiIGRhdGEtbW9kZT0i
b3BlbiI+CisgICAgICAgICAgPHNsb3QgaWQ9InNsb3QyIj48L3Nsb3Q+CisgICAgICAgIDwvdGVt
cGxhdGU+CisgICAgICAgIDxzbG90IGlkPSJzbG90MSI+PC9zbG90PgorICAgICAgPC9kaXY+Cisg
ICAgPC90ZW1wbGF0ZT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorICA8L2Rpdj4KKzwv
ZGl2PgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUo
dGVzdDEwKTsKKyAgbGV0IGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG4sIG4udGFyZ2V0LCBu
ZXcgRXZlbnQoJ215LWV2ZW50JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7
CisgIGxldCBwYXRoID0gWyd0YXJnZXQnLCdzbG90MScsICdzbG90MicsICdzcjInLCAnaG9zdDIn
LCAnc3IxJywgJ2hvc3QxJywgJ3Rlc3QxMCddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMo
bG9nLCBbWyd0YXJnZXQnLCAndGFyZ2V0JywgbnVsbCwgcGF0aF0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbJ3Nsb3QxJywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzbG90MicsICd0YXJnZXQnLCBudWxsLCBwYXRo
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3IyJywgJ3RhcmdldCcsIG51
bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0MicsICd0
YXJnZXQnLCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn
c3IxJywgJ3RhcmdldCcsIG51bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydob3N0MScsICd0YXJnZXQnLCBudWxsLCBwYXRoXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsndGVzdDEwJywgJ3RhcmdldCcsIG51bGwsIHBhdGhdXSk7Cit9LCAn
RXZlbnQgUGF0aCB3aXRoIHNsb3RzIGluIG5lc3RlZCBTaGFkb3dSb290czogb3BlbiA+IG9wZW4u
Jyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdDExIj4KKyAgPGRpdiBpZD0iaG9zdDEiPgor
ICAgIDx0ZW1wbGF0ZSBpZD0ic3IxIiBkYXRhLW1vZGU9ImNsb3NlZCI+CisgICAgICA8ZGl2IGlk
PSJob3N0MiI+CisgICAgICAgIDx0ZW1wbGF0ZSBpZD0ic3IyIiBkYXRhLW1vZGU9ImNsb3NlZCI+
CisgICAgICAgICAgPHNsb3QgaWQ9InNsb3QyIj48L3Nsb3Q+CisgICAgICAgIDwvdGVtcGxhdGU+
CisgICAgICAgIDxzbG90IGlkPSJzbG90MSI+PC9zbG90PgorICAgICAgPC9kaXY+CisgICAgPC90
ZW1wbGF0ZT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2Pgor
Cis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdDEx
KTsKKyAgbGV0IGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG4sIG4udGFyZ2V0LCBuZXcgRXZl
bnQoJ215LWV2ZW50JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7CisgIGxl
dCBwYXRoID0gWyd0YXJnZXQnLCAnc2xvdDEnLCAnc2xvdDInLCAnc3IyJywgJ2hvc3QyJywgJ3Ny
MScsICdob3N0MScsICd0ZXN0MTEnXTsKKyAgbGV0IHBhdGgxID0gWyd0YXJnZXQnLCAnc2xvdDEn
LCAnaG9zdDInLCAnc3IxJywgJ2hvc3QxJywgJ3Rlc3QxMSddOworICBsZXQgcGF0aDIgPSBbJ3Rh
cmdldCcsICdob3N0MScsICd0ZXN0MTEnXTsKKyAgYXNzZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKGxv
ZywgW1sndGFyZ2V0JywgJ3RhcmdldCcsIG51bGwsIHBhdGgyXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsnc2xvdDEnLCAndGFyZ2V0JywgbnVsbCwgcGF0aDFdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzbG90MicsICd0YXJnZXQnLCBudWxsLCBwYXRo
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3IyJywgJ3RhcmdldCcsIG51
bGwsIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydob3N0MicsICd0
YXJnZXQnLCBudWxsLCBwYXRoMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
J3NyMScsICd0YXJnZXQnLCBudWxsLCBwYXRoMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ2hvc3QxJywgJ3RhcmdldCcsIG51bGwsIHBhdGgyXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsndGVzdDExJywgJ3RhcmdldCcsIG51bGwsIHBhdGgyXV0pOwor
fSwgJ0V2ZW50IFBhdGggd2l0aCBzbG90cyBpbiBuZXN0ZWQgU2hhZG93Um9vdHM6IGNsb3NlZCA+
IGNsb3NlZC4nKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZl
bnQtY29tcG9zZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWRmY2MzZDhlMzBmMzQzOTRjN2ZlZjkyMjg1
MTA3ZTEwNjM5ZGJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWNvbXBvc2VkLmh0bWwKQEAgLTAs
MCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2hhZG93IERPTTogRXZlbnQgY29t
cG9zZWQ8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iSGF5YXRvIEl0byIgaHJl
Zj0ibWFpbHRvOmhheWF0b0Bnb29nbGUuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgorPGRpdiBpZD1ob3N0PgorICA8
dGVtcGxhdGUgaWQ9c2hhZG93Um9vdCBkYXRhLW1vZGU9b3Blbj4KKyAgICA8ZGl2IGlkPXRhcmdl
dD48L2Rpdj4KKyAgPC90ZW1wbGF0ZT4KKzwvZGl2PgorPHNjcmlwdD4KK3Rlc3QoKCkgPT4gewor
ICBjb25zdCBlID0gbmV3IEV2ZW50KCd0ZXN0Jyk7CisgIGFzc2VydF9lcXVhbHMoZS5jb21wb3Nl
ZCwgZmFsc2UpOworfSwgJ0EgbmV3IGV2ZW50cyBjb21wb3NlZCB2YWx1ZSBzaG91bGQgYmUgc2V0
IHRvIGZhbHNlIGJ5IGRlZmF1bHQuJyk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBlID0gbmV3
IEV2ZW50KCd0ZXN0JywgeyBjb21wb3NlZDogdHJ1ZSB9KTsKKyAgYXNzZXJ0X2VxdWFscyhlLmNv
bXBvc2VkLCB0cnVlKTsKK30sICdVc2VycyBzaG91bGQgYmUgYWJsZSB0byBzZXQgYSBjb21wb3Nl
ZCB2YWx1ZS4nKTsKKworZnVuY3Rpb24gYXNzZXJ0U2NvcGVkKGV2ZW50KSB7CisgIGxldCBub2Rl
cyA9IGNyZWF0ZVRlc3RUcmVlKGhvc3QpOworICBsZXQgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhM
b2cobm9kZXMsIG5vZGVzLnRhcmdldCwgZXZlbnQpOworICBsZXQgZXhwZWN0ZWRQYXRoID0gWyd0
YXJnZXQnLCAnc2hhZG93Um9vdCddOworICBhc3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMobG9nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1sndGFyZ2V0JywgJ3RhcmdldCcsIG51bGwsIGV4
cGVjdGVkUGF0aF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzaGFkb3dSb290Jywg
J3RhcmdldCcsIG51bGwsIGV4cGVjdGVkUGF0aF1dKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0Q29t
cG9zZWQoZXZlbnQpIHsKKyAgbGV0IG5vZGVzID0gY3JlYXRlVGVzdFRyZWUoaG9zdCk7CisgIGxl
dCBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMudGFyZ2V0LCBldmVudCk7
CisgIGxldCBleHBlY3RlZFBhdGggPSBbJ3RhcmdldCcsICdzaGFkb3dSb290JywgJ2hvc3QnXTsK
KyAgYXNzZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKGxvZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtbJ3RhcmdldCcsICd0YXJnZXQnLCBudWxsLCBleHBlY3RlZFBhdGhdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsnc2hhZG93Um9vdCcsICd0YXJnZXQnLCBudWxsLCBleHBlY3Rl
ZFBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnaG9zdCcsICdob3N0JywgbnVs
bCwgZXhwZWN0ZWRQYXRoXV0pOworfQorCit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0U2NvcGVkKG5l
dyBFdmVudCgndGVzdCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7Cit9LCAnQW4gZXZlbnQgc2hvdWxk
IGJlIHNjb3BlZCBieSBkZWZhdWx0Jyk7CisKK3Rlc3QoKCkgPT4geworICBhc3NlcnRDb21wb3Nl
ZChuZXcgRXZlbnQoJ3Rlc3QnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTsK
K30sICdBbiBldmVudCBzaG91bGQgbm90IGJlIHNjb3BlZCBpZiBjb21wb3NlZCBpcyBzcGVjaWZp
ZWQnKTsKKwordGVzdCgoKSA9PiB7CisgIGFzc2VydFNjb3BlZChuZXcgTW91c2VFdmVudCgnY2xp
Y2snLCB7IGJ1YmJsZXM6IHRydWUgfSkpOworfSwgJ0Egc3ludGhldGljIE1vdXNlRXZlbnQgc2hv
dWxkIGJlIHNjb3BlZCBieSBkZWZhdWx0Jyk7CisKK3Rlc3QoKCkgPT4geworICBhc3NlcnRDb21w
b3NlZChuZXcgTW91c2VFdmVudCgnY2xpY2snLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0
cnVlIH0pKTsKK30sICdBIHN5bnRoZXRpYyBNb3VzZUV2ZW50IHdpdGggY29tcG9zZWQ9dHJ1ZSBz
aG91bGQgbm90IGJlIHNjb3BlZCcpOworCit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0U2NvcGVkKG5l
dyBGb2N1c0V2ZW50KCdmb2N1cycsIHsgYnViYmxlczogdHJ1ZSB9KSk7Cit9LCAnQSBzeW50aGV0
aWMgRm9jdXNFdmVudCBzaG91bGQgYmUgc2NvcGVkIGJ5IGRlZmF1bHQnKTsKKwordGVzdCgoKSA9
PiB7CisgIGFzc2VydENvbXBvc2VkKG5ldyBGb2N1c0V2ZW50KCdmb2N1cycsIHsgYnViYmxlczog
dHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpOworfSwgJ0Egc3ludGhldGljIEZvY3VzRXZlbnQgd2l0
aCBjb21wb3NlZD10cnVlIHNob3VsZCBub3QgYmUgc2NvcGVkJyk7CisKK2Z1bmN0aW9uIGFzc2Vy
dFVBQ29tcG9zZWQoZXZlbnRUeXBlLCBjYWxsYmFjaykgeworICBsZXQgbm9kZXMgPSBjcmVhdGVU
ZXN0VHJlZShob3N0KTsKKyAgbGV0IGxvZyA9IGRpc3BhdGNoVUFFdmVudFdpdGhMb2cobm9kZXMs
IG5vZGVzLnRhcmdldCwgZXZlbnRUeXBlLCBjYWxsYmFjayk7CisgIGxldCBleHBlY3RlZFBhdGgg
PSBbJ3RhcmdldCcsICdzaGFkb3dSb290JywgJ2hvc3QnXTsKKyAgYXNzZXJ0X2V2ZW50X3BhdGhf
ZXF1YWxzKGxvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbJ3RhcmdldCcsICd0YXJn
ZXQnLCBudWxsLCBleHBlY3RlZFBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn
c2hhZG93Um9vdCcsICd0YXJnZXQnLCBudWxsLCBleHBlY3RlZFBhdGhdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsnaG9zdCcsICdob3N0JywgbnVsbCwgZXhwZWN0ZWRQYXRoXV0pOwor
fQorCit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0VUFDb21wb3NlZCgnY2xpY2snLCAodGFyZ2V0KSA9
PiB7IHRhcmdldC5jbGljaygpOyB9KTsKK30sICdBIFVBIGNsaWNrIGV2ZW50IHNob3VsZCBub3Qg
YmUgc2NvcGVkJyk7CisKKy8vIFRPRE8oaGF5YXRvKTogVGVzdCBvdGhlciBVSUV2ZW50cy4KKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWluc2lkZS1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20v
ZXZlbnQtaW5zaWRlLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzMzMWMy
NDBlZDAwYWYzMDc0NjQyMTFjMjBhMWY1NjA5ZDNhNTgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50
LWluc2lkZS1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCitQQVNT
IEZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBjaGlsZCBvZiBhIGRldGFjaGVkIG9wZW4g
bW9kZSBzaGFkb3cgdHJlZSAKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNo
aWxkIG9mIGEgZGV0YWNoZWQgY2xvc2VkIG1vZGUgc2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBh
biBldmVudCBpbnNpZGUgYSBncmFuZCBjaGlsZCBvZiBhbiBpbi1kb2N1bWVudCBvcGVuIG1vZGUg
c2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBjaGlsZCBv
ZiBhbiBpbi1kb2N1bWVudCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZSAKK1BBU1MgRmlyaW5nIGFu
IGV2ZW50IGluc2lkZSBhIGRldGFjaGVkIG9wZW4gbW9kZSBzaGFkb3cgdHJlZSBpbnNpZGUgb3Bl
biBtb2RlIHNoYWRvdyB0cmVlIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgZGV0YWNo
ZWQgb3BlbiBtb2RlIHNoYWRvdyB0cmVlIGluc2lkZSBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZSAK
K1BBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGRldGFjaGVkIGNsb3NlZCBtb2RlIHNoYWRv
dyB0cmVlIGluc2lkZSBvcGVuIG1vZGUgc2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBhbiBldmVu
dCBpbnNpZGUgYSBkZXRhY2hlZCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZSBpbnNpZGUgY2xvc2Vk
IG1vZGUgc2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBhbiBldmVudCBpbnNpZGUgYW4gaW4tZG9j
dW1lbnQgb3BlbiBtb2RlIHNoYWRvdyB0cmVlIGluc2lkZSBvcGVuIG1vZGUgc2hhZG93IHRyZWUg
CitQQVNTIEZpcmluZyBhbiBldmVudCBpbnNpZGUgYW4gaW4tZG9jdW1lbnQgb3BlbiBtb2RlIHNo
YWRvdyB0cmVlIGluc2lkZSBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZSAKK1BBU1MgRmlyaW5nIGFu
IGV2ZW50IGluc2lkZSBhbiBpbi1kb2N1bWVudCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZSBpbnNp
ZGUgb3BlbiBtb2RlIHNoYWRvdyB0cmVlIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGFu
IGluLWRvY3VtZW50IGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlIGluc2lkZSBjbG9zZWQgbW9kZSBz
aGFkb3cgdHJlZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWluc2lkZS1zaGFkb3ctdHJlZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2
ZW50LWluc2lkZS1zaGFkb3ctdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMjBmYzQ5MWY5ZWQwNTVk
N2UyNjQzNTBjYzU4NzhiNjZkZjFlOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNo
YWRvdy10cmVlLmh0bWwKQEAgLTAsMCArMSwxNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzx0aXRsZT5TaGFkb3cgRE9NOiBGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgc2hh
ZG93IHRyZWU8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdh
IiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9IlRoZSBldmVudCBwYXRoIGNhbGN1bGF0aW9uIGFsZ29yaXRobSBtdXN0IGJlIHVzZWQg
dG8gZGV0ZXJtaW5lIGV2ZW50IHBhdGgiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL3NoYWRvdy8jZXZlbnQtcGF0aHMiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGRpc3BhdGNoRXZlbnRXaXRoTG9nKHRhcmdldCwgZXZlbnQpIHsK
KyAgICB2YXIgbG9nID0gW107CisKKyAgICBmb3IgKHZhciBub2RlID0gdGFyZ2V0OyBub2RlOyBu
b2RlID0gbm9kZS5wYXJlbnROb2RlIHx8IG5vZGUuaG9zdCkgeworICAgICAgICBub2RlLmFkZEV2
ZW50TGlzdGVuZXIoZXZlbnQudHlwZSwgKGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICAgICAg
bG9nLnB1c2goW3RoaXMsIGV2ZW50LnRhcmdldF0pOworICAgICAgICB9KS5iaW5kKG5vZGUpKTsK
KyAgICB9CisKKyAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICByZXR1cm4g
bG9nOworfQorCitmdW5jdGlvbiBjcmVhdGVTaGFkb3dSb290V2l0aEdyYW5kQ2hpbGQobW9kZSkg
eworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFy
IHJvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogbW9kZX0pOworCisgICAgdmFyIHBhcmVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICByb290LmFwcGVuZENoaWxk
KHBhcmVudCk7CisKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYicp
OworICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIHJldHVybiB7dGFyZ2V0OiB0
YXJnZXQsIHBhcmVudDogcGFyZW50LCByb290OiByb290LCBob3N0OiBob3N0fTsKK30KKworZnVu
Y3Rpb24gdGVzdEV2ZW50SW5EZXRhY2hlZFNoYWRvd1RyZWUobW9kZSkgeworICAgIHRlc3QoZnVu
Y3Rpb24gKCkgeworICAgICAgICB2YXIgc2hhZG93ID0gY3JlYXRlU2hhZG93Um9vdFdpdGhHcmFu
ZENoaWxkKG1vZGUpOworCisgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNoYWRv
dy50YXJnZXQsIG5ldyBFdmVudCgnZm9vJywge2NvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVl
fSkpOworCisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmxlbmd0aCwgNCwgJ0V2ZW50
UGF0aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgcGFyZW50LCBzaGFkb3cgcm9vdCwgc2hhZG93IGhv
c3RdJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbc2hhZG93LnRhcmdl
dCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7Cisg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93LnBhcmVudCwgc2hhZG93
LnRhcmdldF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQn
KTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cucm9vdCwgc2hh
ZG93LnRhcmdldF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgc2hhZG93IHJvb3QnKTsKKyAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFtzaGFkb3cuaG9zdCwgc2hhZG93Lmhv
c3RdLCAnRXZlbnRQYXRoWzNdIG11c3QgYmUgdGhlIHNoYWRvdyBob3N0Jyk7CisKKyAgICB9LCAn
RmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9mIGEgZGV0YWNoZWQgJyArIG1v
ZGUgKyAnIG1vZGUgc2hhZG93IHRyZWUnKTsKK30KKwordGVzdEV2ZW50SW5EZXRhY2hlZFNoYWRv
d1RyZWUoJ29wZW4nKTsKK3Rlc3RFdmVudEluRGV0YWNoZWRTaGFkb3dUcmVlKCdjbG9zZWQnKTsK
KworZnVuY3Rpb24gdGVzdEV2ZW50SW5TaGFkb3dUcmVlSW5zaWRlRG9jdW1lbnQobW9kZSkgewor
ICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgc2hhZG93ID0gY3JlYXRlU2hhZG93
Um9vdFdpdGhHcmFuZENoaWxkKG1vZGUpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKHNoYWRvdy5ob3N0KTsKKworICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhz
aGFkb3cudGFyZ2V0LCBuZXcgRXZlbnQoJ2ZvbycsIHtjb21wb3NlZDogdHJ1ZSwgYnViYmxlczog
dHJ1ZX0pKTsKKworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5sZW5ndGgsIDcsICdF
dmVudFBhdGggbXVzdCBjb250YWluIFt0YXJnZXQsIHBhcmVudCwgc2hhZG93IHJvb3QsIHNoYWRv
dyBob3N0LCBib2R5LCBodG1sLCBkb2N1bWVudF0nKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsw
XSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MV0sIFtzaGFkb3cucGFyZW50LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsxXSBtdXN0IGJl
IHRoZSBwYXJlbnQgb2YgdGhlIHRhcmdldCcpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1syXSwgW3NoYWRvdy5yb290LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsyXSBtdXN0
IGJlIHRoZSBzaGFkb3cgcm9vdCcpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sz
XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cuaG9zdF0sICdFdmVudFBhdGhbM10gbXVzdCBiZSB0aGUg
c2hhZG93IGhvc3QnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNF0sIFtkb2N1
bWVudC5ib2R5LCBzaGFkb3cuaG9zdF0sICdFdmVudFBhdGhbNF0gbXVzdCBiZSB0aGUgYm9keSBl
bGVtZW50IChwYXJlbnQgb2Ygc2hhZG93IGhvc3QpJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzVdLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzaGFkb3cuaG9zdF0sICdF
dmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgaHRtbCBlbGVtZW50Jyk7CisgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzZdLCBbZG9jdW1lbnQsIHNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs2
XSBtdXN0IGJlIHRoZSBkb2N1bWVudCBub2RlJyk7CisKKyAgICB9LCAnRmlyaW5nIGFuIGV2ZW50
IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9mIGFuIGluLWRvY3VtZW50ICcgKyBtb2RlICsgJyBtb2Rl
IHNoYWRvdyB0cmVlJyk7Cit9CisKK3Rlc3RFdmVudEluU2hhZG93VHJlZUluc2lkZURvY3VtZW50
KCdvcGVuJyk7Cit0ZXN0RXZlbnRJblNoYWRvd1RyZWVJbnNpZGVEb2N1bWVudCgnY2xvc2VkJyk7
CisKK2Z1bmN0aW9uIGNyZWF0ZU5lc3RlZFNoYWRvd1Jvb3QoaW5uZXJNb2RlLCBvdXRlck1vZGUp
IHsKKyAgICB2YXIgb3V0ZXJIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgdmFyIG91dGVyUm9vdCA9IG91dGVySG9zdC5hdHRhY2hTaGFkb3coe21vZGU6IG91dGVyTW9k
ZX0pOworCisgICAgdmFyIG91dGVyQ2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7
CisgICAgb3V0ZXJSb290LmFwcGVuZENoaWxkKG91dGVyQ2hpbGQpOworCisgICAgdmFyIGlubmVy
SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBvdXRlckNoaWxkLmFw
cGVuZENoaWxkKGlubmVySG9zdCk7CisKKyAgICB2YXIgaW5uZXJSb290ID0gaW5uZXJIb3N0LmF0
dGFjaFNoYWRvdyh7bW9kZTogaW5uZXJNb2RlfSk7CisgICAgdmFyIGlubmVyQ2hpbGQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgaW5uZXJSb290LmFwcGVuZENoaWxkKGlu
bmVyQ2hpbGQpOworCisgICAgcmV0dXJuIHt0YXJnZXQ6IGlubmVyQ2hpbGQsIGlubmVyUm9vdDog
aW5uZXJSb290LCBpbm5lckhvc3Q6IGlubmVySG9zdCwgb3V0ZXJDaGlsZDogb3V0ZXJDaGlsZCwg
b3V0ZXJSb290OiBvdXRlclJvb3QsIG91dGVySG9zdDogb3V0ZXJIb3N0fTsKK30KKworZnVuY3Rp
b24gdGVzdEV2ZW50SW5EZXRhY2hlZE5lc3RlZFNoYWRvd1RyZWUoaW5uZXJNb2RlLCBvdXRlck1v
ZGUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHNoYWRvdyA9IGNyZWF0
ZU5lc3RlZFNoYWRvd1Jvb3QoaW5uZXJNb2RlLCBvdXRlck1vZGUpOworCisgICAgICAgIGxvZyA9
IGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNoYWRvdy50YXJnZXQsIG5ldyBFdmVudCgnYmFyJywge2Nv
bXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlfSkpOworCisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nLmxlbmd0aCwgNiwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgaW5u
ZXIgcm9vdCwgaW5uZXIgaG9zdCwgcGFyZW50LCBvdXRlciByb290LCBvdXRlciBob3N0XScpOwor
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQsIHNoYWRv
dy50YXJnZXRdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy5pbm5lclJvb3QsIHNoYWRvdy50YXJn
ZXRdLCAnRXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIGlubmVyIHNoYWRvdyByb290Jyk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbc2hhZG93LmlubmVySG9zdCwgc2hhZG93
LmlubmVySG9zdF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93IGhvc3Qn
KTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFtzaGFkb3cub3V0ZXJDaGls
ZCwgc2hhZG93LmlubmVySG9zdF0sICdFdmVudFBhdGhbM10gbXVzdCBiZSB0aGUgcGFyZW50IG9m
IHRoZSBpbm5lciBzaGFkb3cgaG9zdCcpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxv
Z1s0XSwgW3NoYWRvdy5vdXRlclJvb3QsIHNoYWRvdy5pbm5lckhvc3RdLCAnRXZlbnRQYXRoWzRd
IG11c3QgYmUgdGhlIG91dGVyIHNoYWRvdyByb290Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzVdLCBbc2hhZG93Lm91dGVySG9zdCwgc2hhZG93Lm91dGVySG9zdF0sICdFdmVu
dFBhdGhbNV0gbXVzdCBiZSB0aGUgb3V0ZXIgc2hhZG93IGhvc3QnKTsKKworICAgIH0sICdGaXJp
bmcgYW4gZXZlbnQgaW5zaWRlIGEgZGV0YWNoZWQgJyArIGlubmVyTW9kZSArICcgbW9kZSBzaGFk
b3cgdHJlZSBpbnNpZGUgJyArIG91dGVyTW9kZSArICcgbW9kZSBzaGFkb3cgdHJlZScpOworfQor
Cit0ZXN0RXZlbnRJbkRldGFjaGVkTmVzdGVkU2hhZG93VHJlZSgnb3BlbicsICAnb3BlbicpOwor
dGVzdEV2ZW50SW5EZXRhY2hlZE5lc3RlZFNoYWRvd1RyZWUoJ29wZW4nLCAgJ2Nsb3NlZCcpOwor
dGVzdEV2ZW50SW5EZXRhY2hlZE5lc3RlZFNoYWRvd1RyZWUoJ2Nsb3NlZCcsICdvcGVuJyk7Cit0
ZXN0RXZlbnRJbkRldGFjaGVkTmVzdGVkU2hhZG93VHJlZSgnY2xvc2VkJywgJ2Nsb3NlZCcpOwor
CitmdW5jdGlvbiB0ZXN0RXZlbnRJbk5lc3RlZFNoYWRvd1RyZWVJbnNpZGVEb2N1bWVudChpbm5l
ck1vZGUsIG91dGVyTW9kZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIg
c2hhZG93ID0gY3JlYXRlTmVzdGVkU2hhZG93Um9vdChpbm5lck1vZGUsIG91dGVyTW9kZSk7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hhZG93Lm91dGVySG9zdCk7CisKKyAg
ICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2coc2hhZG93LnRhcmdldCwgbmV3IEV2ZW50
KCdiYXInLCB7Y29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWV9KSk7CisKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2cubGVuZ3RoLCA2LCAnRXZlbnRQYXRoIG11c3QgY29udGFpbiBb
dGFyZ2V0LCBpbm5lciByb290LCBpbm5lciBob3N0LCBwYXJlbnQsIG91dGVyIHJvb3QsIG91dGVy
IGhvc3RdJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbc2hhZG93LnRh
cmdldCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93LmlubmVyUm9vdCwg
c2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93IHJv
b3QnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cuaW5uZXJI
b3N0LCBzaGFkb3cuaW5uZXJIb3N0XSwgJ0V2ZW50UGF0aFsyXSBtdXN0IGJlIHRoZSBpbm5lciBz
aGFkb3cgaG9zdCcpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgW3NoYWRv
dy5vdXRlckNoaWxkLCBzaGFkb3cuaW5uZXJIb3N0XSwgJ0V2ZW50UGF0aFszXSBtdXN0IGJlIHRo
ZSBwYXJlbnQgb2YgdGhlIGlubmVyIHNoYWRvdyBob3N0Jyk7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzRdLCBbc2hhZG93Lm91dGVyUm9vdCwgc2hhZG93LmlubmVySG9zdF0sICdF
dmVudFBhdGhbNF0gbXVzdCBiZSB0aGUgb3V0ZXIgc2hhZG93IHJvb3QnKTsKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFtzaGFkb3cub3V0ZXJIb3N0LCBzaGFkb3cub3V0ZXJI
b3N0XSwgJ0V2ZW50UGF0aFs1XSBtdXN0IGJlIHRoZSBvdXRlciBzaGFkb3cgaG9zdCcpOworICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s2XSwgW2RvY3VtZW50LmJvZHksIHNoYWRvdy5v
dXRlckhvc3RdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGJvZHkgZWxlbWVudCcpOworICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s3XSwgW2RvY3VtZW50LmRvY3VtZW50RWxlbWVu
dCwgc2hhZG93Lm91dGVySG9zdF0sICdFdmVudFBhdGhbN10gbXVzdCBiZSB0aGUgaHRtbCBlbGVt
ZW50Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhdLCBbZG9jdW1lbnQsIHNo
YWRvdy5vdXRlckhvc3RdLCAnRXZlbnRQYXRoWzhdIG11c3QgYmUgdGhlIGRvY3VtZW50IG5vZGUn
KTsKKworICAgIH0sICdGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGFuIGluLWRvY3VtZW50ICcgKyBp
bm5lck1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWUgaW5zaWRlICcgKyBvdXRlck1vZGUgKyAnIG1v
ZGUgc2hhZG93IHRyZWUnKTsKK30KKwordGVzdEV2ZW50SW5OZXN0ZWRTaGFkb3dUcmVlSW5zaWRl
RG9jdW1lbnQoJ29wZW4nLCAgJ29wZW4nKTsKK3Rlc3RFdmVudEluTmVzdGVkU2hhZG93VHJlZUlu
c2lkZURvY3VtZW50KCdvcGVuJywgICdjbG9zZWQnKTsKK3Rlc3RFdmVudEluTmVzdGVkU2hhZG93
VHJlZUluc2lkZURvY3VtZW50KCdjbG9zZWQnLCAnb3BlbicpOwordGVzdEV2ZW50SW5OZXN0ZWRT
aGFkb3dUcmVlSW5zaWRlRG9jdW1lbnQoJ2Nsb3NlZCcsICdjbG9zZWQnKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzNmZTBkOWQ4NDA3YTc5NDg3NWJlZGI3YjdiMmE3OWJiZWQ0Y2VlNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hh
ZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIyIEBACisKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9mIGEg
ZGV0YWNoZWQgb3BlbiBtb2RlIHNoYWRvdyBob3N0IAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgaW5z
aWRlIGEgZ3JhbmQgY2hpbGQgb2YgYSBkZXRhY2hlZCBjbG9zZWQgbW9kZSBzaGFkb3cgaG9zdCAK
K1BBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBhIGdyYW5kIGNoaWxkIG9mIGFuIGluLWRvY3Vt
ZW50IG9wZW4gbW9kZSBzaGFkb3cgaG9zdCAKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IGluc2lkZSBh
IGdyYW5kIGNoaWxkIG9mIGFuIGluLWRvY3VtZW50IGNsb3NlZCBtb2RlIHNoYWRvdyBob3N0IAor
UEFTUyBGaXJpbmcgYW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdvIGFuY2VzdG9ycyB3aXRoIGEg
ZGV0YWNoZWQgb3BlbiBhbmQgb3BlbiBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBvcGVuIHNo
YWRvdyB0cmVlIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdvIGFuY2Vz
dG9ycyB3aXRoIGEgZGV0YWNoZWQgb3BlbiBhbmQgb3BlbiBzaGFkb3cgdHJlZXMgd2l0aCBhbiBp
bm5lciBjbG9zZWQgc2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUg
d2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBvcGVuIGFuZCBjbG9zZWQgc2hhZG93
IHRyZWVzIHdpdGggYW4gaW5uZXIgb3BlbiBzaGFkb3cgdHJlZSAKK1BBU1MgRmlyaW5nIGFuIGV2
ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkIG9wZW4gYW5k
IGNsb3NlZCBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBjbG9zZWQgc2hhZG93IHRyZWUgCitQ
QVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBk
ZXRhY2hlZCBjbG9zZWQgYW5kIG9wZW4gc2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgb3BlbiBz
aGFkb3cgdHJlZSAKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNl
c3RvcnMgd2l0aCBhIGRldGFjaGVkIGNsb3NlZCBhbmQgb3BlbiBzaGFkb3cgdHJlZXMgd2l0aCBh
biBpbm5lciBjbG9zZWQgc2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5v
ZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBjbG9zZWQgYW5kIGNsb3NlZCBz
aGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBvcGVuIHNoYWRvdyB0cmVlIAorUEFTUyBGaXJpbmcg
YW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdvIGFuY2VzdG9ycyB3aXRoIGEgZGV0YWNoZWQgY2xv
c2VkIGFuZCBjbG9zZWQgc2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgY2xvc2VkIHNoYWRvdyB0
cmVlIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdvIGFuY2VzdG9ycyB3
aXRoIGEgZGV0YWNoZWQgb3BlbiBhbmQgb3BlbiBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBv
cGVuIHNoYWRvdyB0cmVlIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdv
IGFuY2VzdG9ycyB3aXRoIGEgZGV0YWNoZWQgb3BlbiBhbmQgb3BlbiBzaGFkb3cgdHJlZXMgd2l0
aCBhbiBpbm5lciBjbG9zZWQgc2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBhbiBldmVudCBvbiBh
IG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBvcGVuIGFuZCBjbG9zZWQg
c2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgb3BlbiBzaGFkb3cgdHJlZSAKK1BBU1MgRmlyaW5n
IGFuIGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkIG9w
ZW4gYW5kIGNsb3NlZCBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBjbG9zZWQgc2hhZG93IHRy
ZWUgCitQQVNTIEZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdp
dGggYSBkZXRhY2hlZCBjbG9zZWQgYW5kIG9wZW4gc2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIg
b3BlbiBzaGFkb3cgdHJlZSAKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IG9uIGEgbm9kZSB3aXRoIHR3
byBhbmNlc3RvcnMgd2l0aCBhIGRldGFjaGVkIGNsb3NlZCBhbmQgb3BlbiBzaGFkb3cgdHJlZXMg
d2l0aCBhbiBpbm5lciBjbG9zZWQgc2hhZG93IHRyZWUgCitQQVNTIEZpcmluZyBhbiBldmVudCBv
biBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCBjbG9zZWQgYW5kIGNs
b3NlZCBzaGFkb3cgdHJlZXMgd2l0aCBhbiBpbm5lciBvcGVuIHNoYWRvdyB0cmVlIAorUEFTUyBG
aXJpbmcgYW4gZXZlbnQgb24gYSBub2RlIHdpdGggdHdvIGFuY2VzdG9ycyB3aXRoIGEgZGV0YWNo
ZWQgY2xvc2VkIGFuZCBjbG9zZWQgc2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgY2xvc2VkIHNo
YWRvdyB0cmVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2
ZW50LWluc2lkZS1zbG90dGVkLW5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWYzMzM1YmQyMDljOTYz
NGJmZjQ1YzRjYWU3ZTIzMGQ3MmQzZDZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LWluc2lkZS1z
bG90dGVkLW5vZGUuaHRtbApAQCAtMCwwICsxLDI1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDx0aXRsZT5TaGFkb3cgRE9NOiBGaXJpbmcgYW4gZXZlbnQgaW5zaWRl
IGEgbm9kZSBhc3NpZ25lZCB0byBhIHNsb3Q8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImF1dGhv
ciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgor
ICAgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iVGhlIGV2ZW50IHBhdGggY2FsY3VsYXRp
b24gYWxnb3JpdGhtIG11c3QgYmUgdXNlZCB0byBkZXRlcm1pbmUgZXZlbnQgcGF0aCI+CisgICAg
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50
cy9zcGVjL3NoYWRvdy8jZXZlbnQtcGF0aHMiPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorCisg
ICAgICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgZXZlbnQpIHsKKyAg
ICAgICAgICAgIHZhciBsb2cgPSBbXTsKKworICAgICAgICAgICAgdmFyIGF0dGFjaGVkTm9kZXMg
PSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIG5vZGVLZXkgaW4gc2hhZG93KSB7CisgICAgICAg
ICAgICAgICAgdmFyIHN0YXJ0aW5nTm9kZSA9IHNoYWRvd1tub2RlS2V5XTsKKyAgICAgICAgICAg
ICAgICBmb3IgKHZhciBub2RlID0gc3RhcnRpbmdOb2RlOyBub2RlOyBub2RlID0gbm9kZS5wYXJl
bnROb2RlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdHRhY2hlZE5vZGVzLmluZGV4T2Yo
bm9kZSkgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgICAgICBhdHRhY2hlZE5vZGVzLnB1c2gobm9kZSk7CisgICAgICAgICAgICAgICAgICAg
IG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudC50eXBlLCAoZnVuY3Rpb24gKGV2ZW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsb2cucHVzaChbdGhpcywgZXZlbnQudGFyZ2V0XSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pLmJpbmQobm9kZSkpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgc2hhZG93LnRhcmdldC5kaXNwYXRjaEV2ZW50KGV2
ZW50KTsKKworICAgICAgICAgICAgcmV0dXJuIGxvZzsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGVsZW1lbnQobmFtZSwgY2hpbGRyZW4sIGNsYXNzTmFtZSkgeworICAgICAgICAgICAg
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpOworICAgICAgICAgICAg
aWYgKGNsYXNzTmFtZSkKKyAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGNsYXNz
TmFtZTsKKyAgICAgICAgICAgIGlmIChjaGlsZHJlbikgeworICAgICAgICAgICAgICAgIGZvciAo
dmFyIGNoaWxkIG9mIGNoaWxkcmVuKQorICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVu
ZENoaWxkKGNoaWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXR0YWNoU2hhZG93KGhvc3QsIG1vZGUs
IGNoaWxkcmVuKSB7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hh
ZG93KHttb2RlOiBtb2RlfSk7CisgICAgICAgICAgICBpZiAoY2hpbGRyZW4pIHsKKyAgICAgICAg
ICAgICAgICBmb3IgKHZhciBjaGlsZCBvZiBjaGlsZHJlbikKKyAgICAgICAgICAgICAgICAgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICByZXR1cm4gc2hhZG93Um9vdDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNyZWF0
ZVNoYWRvd0hvc3RXaXRoQXNzaWduZWRHcmFuZENoaWxkKG1vZGUpIHsKKyAgICAgICAgICAgIHZh
ciBob3N0ID0gZWxlbWVudCgnZGl2JywgWworICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2InLCBb
CisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2knKQorICAgICAgICAgICAgICAgIF0pCisg
ICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgdmFyIHJvb3QgPSBhdHRhY2hTaGFkb3coaG9z
dCwgbW9kZSwgWworICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NwYW4nLCBbCisgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnKQorICAgICAgICAgICAgICAgIF0pCisgICAgICAgICAg
ICBdKTsKKworICAgICAgICAgICAgcmV0dXJuIHt0YXJnZXQ6IGhvc3QucXVlcnlTZWxlY3Rvcign
aScpLCB0YXJnZXRQYXJlbnQ6IGhvc3QucXVlcnlTZWxlY3RvcignYicpLCBob3N0OiBob3N0LAor
ICAgICAgICAgICAgICAgICAgICBzbG90OiByb290LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKSwgc2xv
dFBhcmVudDogcm9vdC5xdWVyeVNlbGVjdG9yKCdzcGFuJyksIHJvb3Q6IHJvb3R9OworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50SW5EZXRhY2hlZFNoYWRvd0hvc3REZXNj
ZW5kYW50KG1vZGUpIHsKKyAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGls
ZChtb2RlKTsKKworICAgICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNo
YWRvdywgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWV9KSk7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDYsICdFdmVudFBh
dGggbXVzdCBjb250YWluIFt0YXJnZXQsIHRhcmdldCBwYXJlbnQsIHNsb3QsIHNsb3QgcGFyZW50
LCBzaGFkb3cgcm9vdCwgc2hhZG93IGhvc3RdJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50
UGF0aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy50YXJnZXRQYXJlbnQsIHNoYWRvdy50YXJnZXRdLCAn
RXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cuc2xvdCwgc2hhZG93
LnRhcmdldF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgc2xvdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbc2hhZG93LnNsb3RQYXJlbnQsIHNoYWRv
dy50YXJnZXRdLCAnRXZlbnRQYXRoWzNdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgc2xvdCcp
OworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbc2hhZG93LnJv
b3QsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzRdIG11c3QgYmUgdGhlIHNoYWRvdyByb290
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFtzaGFkb3cu
aG9zdCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgc2hhZG93IGhv
c3QnKTsKKworICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBj
aGlsZCBvZiBhIGRldGFjaGVkICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyBob3N0Jyk7CisgICAg
ICAgIH0KKworICAgICAgICB0ZXN0RXZlbnRJbkRldGFjaGVkU2hhZG93SG9zdERlc2NlbmRhbnQo
J29wZW4nKTsKKyAgICAgICAgdGVzdEV2ZW50SW5EZXRhY2hlZFNoYWRvd0hvc3REZXNjZW5kYW50
KCdjbG9zZWQnKTsKKworICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRJblNoYWRvd0hvc3REZXNj
ZW5kYW50SW5zaWRlRG9jdW1lbnQobW9kZSkgeworICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgdmFyIHNoYWRvdyA9IGNyZWF0ZVNoYWRvd0hvc3RXaXRoQXNz
aWduZWRHcmFuZENoaWxkKG1vZGUpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoc2hhZG93Lmhvc3QpOworCisgICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hF
dmVudFdpdGhMb2coc2hhZG93LCBuZXcgRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBjb21w
b3NlZDogdHJ1ZX0pKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0
aCwgOSwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0IHBhcmVudCwgc2xv
dCwgc2xvdCBwYXJlbnQsIHNoYWRvdyByb290LCBzaGFkb3cgaG9zdCwgYm9keSwgaHRtbCwgZG9j
dW1lbnRdJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFtz
aGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJlIHRoZSB0
YXJnZXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgW3No
YWRvdy50YXJnZXRQYXJlbnQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzFdIG11c3QgYmUg
dGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cuc2xvdCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhb
Ml0gbXVzdCBiZSB0aGUgc2xvdCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzNdLCBbc2hhZG93LnNsb3RQYXJlbnQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRo
WzNdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgc2xvdCcpOworICAgICAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbc2hhZG93LnJvb3QsIHNoYWRvdy50YXJnZXRdLCAn
RXZlbnRQYXRoWzRdIG11c3QgYmUgdGhlIHNoYWRvdyByb290Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFtzaGFkb3cuaG9zdCwgc2hhZG93LnRhcmdldF0s
ICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgc2hhZG93IGhvc3QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s2XSwgW2RvY3VtZW50LmJvZHksIHNoYWRvdy50YXJn
ZXRdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGJvZHkgZWxlbWVudCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzddLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs3XSBtdXN0IGJlIHRoZSBodG1sIGVsZW1l
bnQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s4XSwgW2RvY3Vt
ZW50LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs4XSBtdXN0IGJlIHRoZSBodG1sIGVsZW1l
bnQnKTsKKworICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBj
aGlsZCBvZiBhbiBpbi1kb2N1bWVudCAnICsgbW9kZSArICcgbW9kZSBzaGFkb3cgaG9zdCcpOwor
ICAgICAgICB9CisKKyAgICAgICAgdGVzdEV2ZW50SW5TaGFkb3dIb3N0RGVzY2VuZGFudEluc2lk
ZURvY3VtZW50KCdvcGVuJyk7CisgICAgICAgIHRlc3RFdmVudEluU2hhZG93SG9zdERlc2NlbmRh
bnRJbnNpZGVEb2N1bWVudCgnY2xvc2VkJyk7CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlTmVz
dGVkU2hhZG93VHJlZXNXaXRoU2xvdHMoaW5uZXJNb2RlLCBvdXRlclVwcGVyTW9kZSwgb3V0ZXJM
b3dlck1vZGUpIHsKKyAgICAgICAgICAgIHZhciB1cHBlckhvc3QgPSBlbGVtZW50KCd1cHBlci1o
b3N0JywgWworICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3AnLCBbCisgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQoJ2xvd2VyLWhvc3QnLCBbCisgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50KCdhJykKKyAgICAgICAgICAgICAgICAgICAgXSkKKyAgICAgICAgICAgICAgICBdKQorICAg
ICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIHZhciB1cHBlclNoYWRvdyA9IGF0dGFjaFNoYWRv
dyh1cHBlckhvc3QsIG91dGVyVXBwZXJNb2RlLCBbCisgICAgICAgICAgICAgICAgZWxlbWVudCgn
YicsIFsKKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnc2xvdCcsIFtdLCAndXBwZXItc2xv
dCcpCisgICAgICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICB2
YXIgbG93ZXJIb3N0ID0gdXBwZXJIb3N0LnF1ZXJ5U2VsZWN0b3IoJ2xvd2VyLWhvc3QnKTsKKyAg
ICAgICAgICAgIHZhciBsb3dlclNoYWRvdyA9IGF0dGFjaFNoYWRvdyhsb3dlckhvc3QsIG91dGVy
TG93ZXJNb2RlLCBbCisgICAgICAgICAgICAgICAgZWxlbWVudCgnZW0nLCBbCisgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnQoJ2lubmVyLWhvc3QnLCBbCisgICAgICAgICAgICAgICAgICAgICAg
ICBlbGVtZW50KCdzcGFuJywgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQo
J3Nsb3QnLCBbXSwgJ2xvd2VyLXNsb3QnKQorICAgICAgICAgICAgICAgICAgICAgICAgXSkKKyAg
ICAgICAgICAgICAgICAgICAgXSkKKyAgICAgICAgICAgICAgICBdKQorICAgICAgICAgICAgXSk7
CisKKyAgICAgICAgICAgIGlubmVyU2hhZG93ID0gYXR0YWNoU2hhZG93KGxvd2VyU2hhZG93LnF1
ZXJ5U2VsZWN0b3IoJ2lubmVyLWhvc3QnKSwgaW5uZXJNb2RlLCBbCisgICAgICAgICAgICAgICAg
ZWxlbWVudCgnaScsIFsKKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnc2xvdCcsIFtdLCAn
aW5uZXItc2xvdCcpCisgICAgICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIF0pOworCisgICAg
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGhvc3Q6IHVwcGVySG9zdCwKKyAgICAg
ICAgICAgICAgICB0YXJnZXQ6IHVwcGVySG9zdC5xdWVyeVNlbGVjdG9yKCdhJyksCisgICAgICAg
ICAgICAgICAgdXBwZXJTaGFkb3c6IHVwcGVyU2hhZG93LAorICAgICAgICAgICAgICAgIHVwcGVy
U2xvdDogdXBwZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAorICAgICAgICAgICAgICAg
IGxvd2VyU2hhZG93OiBsb3dlclNoYWRvdywKKyAgICAgICAgICAgICAgICBsb3dlclNsb3Q6IGxv
d2VyU2hhZG93LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKSwKKyAgICAgICAgICAgICAgICBpbm5lclNo
YWRvdzogaW5uZXJTaGFkb3csCisgICAgICAgICAgICAgICAgaW5uZXJTbG90OiBpbm5lclNoYWRv
dy5xdWVyeVNlbGVjdG9yKCdzbG90JyksCisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAg
ICAgICAgLyoKKyAgICAgICAgdXBwZXItaG9zdCAoMTQpIC0tICh1cHBlclNoYWRvdzsgMTMpCisg
ICAgICAgICArIHAgKDEwKSAgICAgICAgICArIGIgKDEyKQorICAgICAgICAgIHwgICAgICAgICAg
ICAgICAgICArIHNsb3QgKHVwcGVyU2xvdDsgMTEpCisgICAgICAgICAgKyBsb3dlci1ob3N0ICg5
KSAtLSAobG93ZXJTaGFkb3c7IDgpCisgICAgICAgICAgICArIGEgKHRhcmdldDsgMCkgICArIGVt
ICg3KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGlubmVyLWhvc3QgKDYpIC0t
LS0tLS0tIChpbm5lclNoYWRvdzsgNSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICArIHNwYW4gKDIpICAgICAgICAgICAgICArIGkgKDQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICArIHNsb3QgKGxvd2VyU2xvdDsgMSkgKyBzbG90IChpbm5lclNsb3Q7IDMp
CisgICAgICAgICovCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50VW5kZXJUd29TaGFkb3dS
b290cyhvdXRlclVwcGVyTW9kZSwgb3V0ZXJMb3dlck1vZGUsIGlubmVyTW9kZSkgeworICAgICAg
ICAgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdmFyIHNoYWRvdyA9IGNy
ZWF0ZU5lc3RlZFNoYWRvd1RyZWVzV2l0aFNsb3RzKGlubmVyTW9kZSwgb3V0ZXJVcHBlck1vZGUs
IG91dGVyTG93ZXJNb2RlKTsKKworICAgICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRX
aXRoTG9nKHNoYWRvdywgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6
IHRydWV9KSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDE1
LCAnRXZlbnRQYXRoIG11c3QgY29udGFpbiAxNSB0YXJnZXRzJyk7CisKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQsIHNoYWRvdy50YXJn
ZXRdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOworICAgICAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93Lmxvd2VyU2xvdCwgc2hhZG93LnRh
cmdldF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUgdGhlIGxvd2VyIHNo
YWRvdyB0cmVlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0s
IFtzaGFkb3cubG93ZXJTbG90LnBhcmVudE5vZGUsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRo
WzJdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgc2xvdCBpbnNpZGUgdGhlIGxvd2VyIHNoYWRv
dyB0cmVlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFtz
aGFkb3cuaW5uZXJTbG90LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFszXSBtdXN0IGJlIHRo
ZSBzbG90IGluc2lkZSB0aGUgc2hhZG93IHRyZWUgaW5zaWRlIHRoZSBsb3dlciBzaGFkb3cgdHJl
ZScpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbc2hhZG93
LmlubmVyU2xvdC5wYXJlbnROb2RlLCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs0XSBtdXN0
IGJlIHRoZSBjaGlsZCBvZiB0aGUgaW5uZXIgc2hhZG93IHJvb3QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5pbm5lclNoYWRvdywgc2hhZG93
LnRhcmdldF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93IHJvb3QnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s2XSwgW3NoYWRvdy5pbm5l
clNoYWRvdy5ob3N0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs2XSBtdXN0IGJlIHRoZSBo
b3N0IG9mIHRoZSBpbm5lciBzaGFkb3cgdHJlZScpOworICAgICAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzddLCBbc2hhZG93Lmxvd2VyU2hhZG93LmZpcnN0Q2hpbGQsIHNoYWRv
dy50YXJnZXRdLCAnRXZlbnRQYXRoWzddIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgaW5uZXIg
c2hhZG93IGhvc3QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s4
XSwgW3NoYWRvdy5sb3dlclNoYWRvdywgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbOF0gbXVz
dCBiZSB0aGUgbG93ZXIgc2hhZG93IHJvb3QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1s5XSwgW3NoYWRvdy5sb3dlclNoYWRvdy5ob3N0LCBzaGFkb3cudGFyZ2V0
XSwgJ0V2ZW50UGF0aFs5XSBtdXN0IGJlIHRoZSBsb3dlciBzaGFkb3cgaG9zdCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzEwXSwgW3NoYWRvdy5ob3N0LmZpcnN0
Q2hpbGQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzEwXSBtdXN0IGJlIHRoZSBwYXJlbnQg
b2YgdGhlIGdyYW5kIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2dbMTFdLCBbc2hhZG93LnVwcGVyU2xvdCwgc2hhZG93LnRhcmdl
dF0sICdFdmVudFBhdGhbMTFdIG11c3QgYmUgdGhlIHNsb3QgaW5zaWRlIHRoZSB1cHBlciBzaGFk
b3cgdHJlZScpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzEyXSwg
W3NoYWRvdy51cHBlclNsb3QucGFyZW50Tm9kZSwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhb
MTJdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgc2xvdCBpbnNpZGUgdGhlIHVwcGVyIHNoYWRv
dyB0cmVlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMTNdLCBb
c2hhZG93LnVwcGVyU2hhZG93LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsxM10gbXVzdCBi
ZSB0aGUgdXBwZXIgc2hhZG93IHJvb3QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxNF0sIFtzaGFkb3cuaG9zdCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhb
MTRdIG11c3QgYmUgdGhlIGhvc3QnKTsKKworICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVu
dCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCAnICsgb3V0ZXJV
cHBlck1vZGUgKyAnIGFuZCAnICsgb3V0ZXJMb3dlck1vZGUKKyAgICAgICAgICAgICAgICArICcg
c2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgJyArIGlubmVyTW9kZSArICcgc2hhZG93IHRyZWUn
KTsKKyAgICAgICAgfQorCisgICAgICAgIHRlc3RFdmVudFVuZGVyVHdvU2hhZG93Um9vdHMoJ29w
ZW4nLCAnb3BlbicsICdvcGVuJyk7CisgICAgICAgIHRlc3RFdmVudFVuZGVyVHdvU2hhZG93Um9v
dHMoJ29wZW4nLCAnb3BlbicsICdjbG9zZWQnKTsKKyAgICAgICAgdGVzdEV2ZW50VW5kZXJUd29T
aGFkb3dSb290cygnb3BlbicsICdjbG9zZWQnLCAnb3BlbicpOworICAgICAgICB0ZXN0RXZlbnRV
bmRlclR3b1NoYWRvd1Jvb3RzKCdvcGVuJywgJ2Nsb3NlZCcsICdjbG9zZWQnKTsKKyAgICAgICAg
dGVzdEV2ZW50VW5kZXJUd29TaGFkb3dSb290cygnY2xvc2VkJywgJ29wZW4nLCAnb3BlbicpOwor
ICAgICAgICB0ZXN0RXZlbnRVbmRlclR3b1NoYWRvd1Jvb3RzKCdjbG9zZWQnLCAnb3BlbicsICdj
bG9zZWQnKTsKKyAgICAgICAgdGVzdEV2ZW50VW5kZXJUd29TaGFkb3dSb290cygnY2xvc2VkJywg
J2Nsb3NlZCcsICdvcGVuJyk7CisgICAgICAgIHRlc3RFdmVudFVuZGVyVHdvU2hhZG93Um9vdHMo
J2Nsb3NlZCcsICdjbG9zZWQnLCAnY2xvc2VkJyk7CisKKyAgICAgICAgLyoKKyAgICAgICAgdXBw
ZXItaG9zdCAoMTEpIC0tICh1cHBlclNoYWRvdzsgMTApCisgICAgICAgICArIHAgKDcpICAgICAg
ICAgICArIGIgKDkpCisgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICsgc2xvdCAodXBwZXJT
bG90OyA4KQorICAgICAgICAgICsgbG93ZXItaG9zdCAoNikgLS0gKGxvd2VyU2hhZG93OyA1KQor
ICAgICAgICAgICAgKyBhICAgICAgICAgICAgICAgKyBlbSAoNCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKyBpbm5lci1ob3N0ICgzKSAtLSAoaW5uZXJTaGFkb3c7IDIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzcGFuICAgICAgICAgICAgKyBpICgxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzbG90ICAgICAgICAgICAgKyBz
bG90IChpbm5lclNsb3QsIHRhcmdldDsgMCkKKyAgICAgICAgKi8KKworICAgICAgICBmdW5jdGlv
biB0ZXN0RXZlbnRJbnNpZGVOZXN0ZWRTaGFkb3dzVW5kZXJBbm90aGVyU2hhZG93KG91dGVyVXBw
ZXJNb2RlLCBvdXRlckxvd2VyTW9kZSwgaW5uZXJNb2RlKSB7CisgICAgICAgICAgICB0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB2YXIgc2hhZG93ID0gY3JlYXRlTmVzdGVkU2hh
ZG93VHJlZXNXaXRoU2xvdHMoaW5uZXJNb2RlLCBvdXRlclVwcGVyTW9kZSwgb3V0ZXJMb3dlck1v
ZGUpOworICAgICAgICAgICAgICAgIHNoYWRvdy5kZWVwZXN0Tm9kZUluTGlnaHRET00gPSBzaGFk
b3cudGFyZ2V0OyAvLyBOZWVkZWQgZm9yIGRpc3BhdGNoRXZlbnRXaXRoTG9nIHRvIGF0dGFjaCBl
dmVudCBsaXN0ZW5lcnMuIAorICAgICAgICAgICAgICAgIHNoYWRvdy50YXJnZXQgPSBzaGFkb3cu
aW5uZXJTbG90OworCisgICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2co
c2hhZG93LCBuZXcgRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZX0p
KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgMTIsICdFdmVu
dFBhdGggbXVzdCBjb250YWluIDEyIHRhcmdldHMnKTsKKworICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzBdLCBbc2hhZG93LnRhcmdldCwgc2hhZG93LnRhcmdldF0sICdF
dmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dbMV0sIFtzaGFkb3cudGFyZ2V0LnBhcmVudE5vZGUsIHNoYWRvdy50
YXJnZXRdLCAnRXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cuaW5u
ZXJTaGFkb3csIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzJdIG11c3QgYmUgdGhlIGlubmVy
IHNoYWRvdyByb290Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
M10sIFtzaGFkb3cuaW5uZXJTaGFkb3cuaG9zdCwgc2hhZG93LmlubmVyU2hhZG93Lmhvc3RdLCAn
RXZlbnRQYXRoWzNdIG11c3QgYmUgdGhlIGlubmVyIHNoYWRvdyBob3N0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cubG93ZXJTaGFkb3cuZmly
c3RDaGlsZCwgc2hhZG93LmlubmVyU2hhZG93Lmhvc3RdLCAnRXZlbnRQYXRoWzRdIG11c3QgYmUg
dGhlIHBhcmVudCBvZiB0aGUgaW5uZXIgc2hhZG93IGhvc3QnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5sb3dlclNoYWRvdywgc2hhZG93Lmlu
bmVyU2hhZG93Lmhvc3RdLCAnRXZlbnRQYXRoWzVdIG11c3QgYmUgdGhlIGxvd2VyIChidXQgb3V0
ZXIpIHNoYWRvdyByb290Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhs
b2dbNl0sIFtzaGFkb3cubG93ZXJTaGFkb3cuaG9zdCwgc2hhZG93Lmxvd2VyU2hhZG93Lmhvc3Rd
LCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGxvd2VyIChidXQgb3V0ZXIpIHNoYWRvdyByb290
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbN10sIFtzaGFkb3cu
aG9zdC5maXJzdENoaWxkLCBzaGFkb3cubG93ZXJTaGFkb3cuaG9zdF0sICdFdmVudFBhdGhbN10g
bXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUgdGhlIHVwcGVyIHNoYWRvdyB0cmVlJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbOF0sIFtzaGFkb3cudXBwZXJTbG90LCBz
aGFkb3cubG93ZXJTaGFkb3cuaG9zdF0sICdFdmVudFBhdGhbOF0gbXVzdCBiZSB0aGUgc2xvdCBp
bnNpZGUgdGhlIHVwcGVyIHNoYWRvdyB0cmVlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhsb2dbOV0sIFtzaGFkb3cudXBwZXJTbG90LnBhcmVudE5vZGUsIHNoYWRvdy5s
b3dlclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs5XSBtdXN0IGJlIHRoZSBwYXJlbnQgb2YgdGhl
IHNsb3QgaW5zaWRlIHRoZSB1cHBlciBzaGFkb3cgdHJlZScpOworICAgICAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzEwXSwgW3NoYWRvdy51cHBlclNoYWRvdywgc2hhZG93Lmxv
d2VyU2hhZG93Lmhvc3RdLCAnRXZlbnRQYXRoWzEwXSBtdXN0IGJlIHRoZSB1cHBlciBzaGFkb3cg
cm9vdCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzExXSwgW3No
YWRvdy51cHBlclNoYWRvdy5ob3N0LCBzaGFkb3cubG93ZXJTaGFkb3cuaG9zdF0sICdFdmVudFBh
dGhbMTFdIG11c3QgYmUgdGhlIGhvc3QnKTsKKworICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBl
dmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCAnICsgb3V0
ZXJVcHBlck1vZGUgKyAnIGFuZCAnICsgb3V0ZXJMb3dlck1vZGUKKyAgICAgICAgICAgICAgICAr
ICcgc2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgJyArIGlubmVyTW9kZSArICcgc2hhZG93IHRy
ZWUnKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlc3RFdmVudEluc2lkZU5lc3RlZFNoYWRvd3NV
bmRlckFub3RoZXJTaGFkb3coJ29wZW4nLCAnb3BlbicsICdvcGVuJyk7CisgICAgICAgIHRlc3RF
dmVudEluc2lkZU5lc3RlZFNoYWRvd3NVbmRlckFub3RoZXJTaGFkb3coJ29wZW4nLCAnb3Blbics
ICdjbG9zZWQnKTsKKyAgICAgICAgdGVzdEV2ZW50SW5zaWRlTmVzdGVkU2hhZG93c1VuZGVyQW5v
dGhlclNoYWRvdygnb3BlbicsICdjbG9zZWQnLCAnb3BlbicpOworICAgICAgICB0ZXN0RXZlbnRJ
bnNpZGVOZXN0ZWRTaGFkb3dzVW5kZXJBbm90aGVyU2hhZG93KCdvcGVuJywgJ2Nsb3NlZCcsICdj
bG9zZWQnKTsKKyAgICAgICAgdGVzdEV2ZW50SW5zaWRlTmVzdGVkU2hhZG93c1VuZGVyQW5vdGhl
clNoYWRvdygnY2xvc2VkJywgJ29wZW4nLCAnb3BlbicpOworICAgICAgICB0ZXN0RXZlbnRJbnNp
ZGVOZXN0ZWRTaGFkb3dzVW5kZXJBbm90aGVyU2hhZG93KCdjbG9zZWQnLCAnb3BlbicsICdjbG9z
ZWQnKTsKKyAgICAgICAgdGVzdEV2ZW50SW5zaWRlTmVzdGVkU2hhZG93c1VuZGVyQW5vdGhlclNo
YWRvdygnY2xvc2VkJywgJ2Nsb3NlZCcsICdvcGVuJyk7CisgICAgICAgIHRlc3RFdmVudEluc2lk
ZU5lc3RlZFNoYWRvd3NVbmRlckFub3RoZXJTaGFkb3coJ2Nsb3NlZCcsICdjbG9zZWQnLCAnY2xv
c2VkJyk7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20v
ZXZlbnQtd2l0aC1yZWxhdGVkLXRhcmdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtd2l0aC1yZWxhdGVk
LXRhcmdldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZiMDNhMDI1NWZlMTY2NWM3ZTNkZWVh
Yzg0YTIxNDM0MWQwZWExNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9ldmVudC13aXRoLXJlbGF0ZWQtdGFy
Z2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgRmlyaW5nIGFuIGV2ZW50
IGF0IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0IEIxIHdpdGggb3BlbiBtb2RlIHNoYWRvdyB0cmVl
cyAKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0IEIxIHdp
dGggY2xvc2VkIG1vZGUgc2hhZG93IHRyZWVzIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFh
IHdpdGggcmVsYXRlZE5vZGUgYXQgQjFiMSB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCitQ
QVNTIEZpcmluZyBhbiBldmVudCBhdCBCMWEgd2l0aCByZWxhdGVkTm9kZSBhdCBCMWIxIHdpdGgg
Y2xvc2VkIG1vZGUgc2hhZG93IHRyZWVzIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFiMSB3
aXRoIHJlbGF0ZWROb2RlIGF0IEIxYSB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCitQQVNT
IEZpcmluZyBhbiBldmVudCBhdCBCMWIxIHdpdGggcmVsYXRlZE5vZGUgYXQgQjFhIHdpdGggY2xv
c2VkIG1vZGUgc2hhZG93IHRyZWVzIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGgg
cmVsYXRlZE5vZGUgYXQgRDEgd2l0aCBvcGVuIG1vZGUgc2hhZG93IHRyZWVzIAorUEFTUyBGaXJp
bmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgRDEgd2l0aCBjbG9zZWQgbW9k
ZSBzaGFkb3cgdHJlZXMgCitQQVNTIEZpcmluZyBhbiBldmVudCBhdCBEMSB3aXRoIHJlbGF0ZWRO
b2RlIGF0IEIxYSB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCitQQVNTIEZpcmluZyBhbiBl
dmVudCBhdCBEMSB3aXRoIHJlbGF0ZWROb2RlIGF0IEIxYSB3aXRoIGNsb3NlZCBtb2RlIHNoYWRv
dyB0cmVlcyAKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0
IEExYSB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgdHJlZXMgCitQQVNTIEZpcmluZyBhbiBldmVudCBh
dCBCMWEgd2l0aCByZWxhdGVkTm9kZSBhdCBBMWEgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJl
ZXMgCitQQVNTIEZpcmluZyBhbiBldmVudCBhdCBCMWEgd2l0aCByZWxhdGVkTm9kZSBhdCBBMWEg
d2l0aCBvcGVuIG1vZGUgc2hhZG93IHRyZWVzIAorUEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFh
IHdpdGggcmVsYXRlZE5vZGUgYXQgQTFhIHdpdGggY2xvc2VkIG1vZGUgc2hhZG93IHRyZWVzIAor
UEFTUyBGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgQTFhIHdpdGgg
b3BlbiBtb2RlIHNoYWRvdyB0cmVlcyAKK1BBU1MgRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRo
IHJlbGF0ZWROb2RlIGF0IEExYSB3aXRoIGNsb3NlZCBtb2RlIHNoYWRvdyB0cmVlcyAKK1BBU1Mg
RmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJlbGF0ZWROb2RlIGF0IEExYSB3aXRoIG9wZW4g
bW9kZSBzaGFkb3cgdHJlZXMgCitQQVNTIEZpcmluZyBhbiBldmVudCBhdCBCMWEgd2l0aCByZWxh
dGVkTm9kZSBhdCBBMWEgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgdHJlZXMgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRv
bS9ldmVudC13aXRoLXJlbGF0ZWQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtd2l0aC1yZWxhdGVkLXRhcmdl
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk2YTBlNTJlN2ViZGZmMDMwNGU1OTc3MWYyNmYwNDcwNDY4Y2Zl
MmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtd2l0aC1yZWxhdGVkLXRhcmdldC5odG1sCkBAIC0w
LDAgKzEsMjU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PlNoYWRvdyBET006IEZpcmluZyBhbiBldmVudCB3aXRoIHJlbGF0ZWRUYXJnZXQgaW5zaWRlIGEg
c2hhZG93IHRyZWU8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1
a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorICAgIDxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iVGhlIHJldGFyZ2V0aW5nIGFsZ29yaXRobSBpcyB1c2VkIHRvIGRl
dGVybWluZSByZWxhdGl2ZSB0YXJnZXRzIj4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvc2hhZG93LyNyZXRhcmdldGlu
Zy1yZWxhdGVkdGFyZ2V0Ij4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2V2ZW50LXBhdGgtdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgPHNjcmlwdD4KKworICAg
ICAgICAvKgorICAgICAgICAtU1I6IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAg
cmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0ZXMgc3RhcnQgIGRpZ2l0OiBldmVudCBwYXRo
IG9yZGVyCisgICAgICAgIEEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gQS1TUgorICAgICAgICArIEIgLS0tLS0tLS0tLS0gQi1TUiAoNCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICsgQTEgLS0tIEExLVNSCisgICAgICAgICAgKyBDICAgICAgICAgICAr
IEIxICgzKSBbKjsgMC00XSAtLS0gQjEtU1IgKDIpICAgKyBBMi1TICAgKyBBMWEKKyAgICAgICAg
ICArIEQgLS0tIEQtU1IgICAgKyBCMWEgKCo7IDApICAgICAgICArIEIxYiBbMSwyXSAtLS0gQjFi
LVNSCisgICAgICAgICAgICAgICAgICArIEQxICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWMt
UyAoMSkgICAgICsgQjFiMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICArIEIxYjIKKyAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rp
b24gdGVzdEV2ZW50QXRCMWFXaXRoQjFhKG1vZGUpIHsKKyAgICAgICAgICAgIHRlc3QoZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IGNyZWF0ZVRlc3RUcmVlKG1vZGUp
OworCisgICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2cobm9kZXMsIG5v
ZGVzLkIxYSwgbmV3IE1vdXNlRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBjb21wb3NlZDog
dHJ1ZSwgcmVsYXRlZFRhcmdldDogbm9kZXMuQjF9KSk7CisKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsCisgICAgICAgICAgICAgICAgICAgIFsnQjFh
JywgJ0IxYy1TJywgJ0IxLVNSJywgJ0IxJywgJ0ItU1InXSwgJ1RoZSBldmVudCBwYXRoIG11c3Qg
YmUgY29ycmVjdC4nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5y
ZWxhdGVkVGFyZ2V0cywKKyAgICAgICAgICAgICAgICAgICAgWydCMScsICAnQjEnLCAgICAnQjEn
LCAgICAnQjEnLCAnQjEnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVzdCBiZSBjb3JyZWN0Licp
OworCisgICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJlbGF0ZWRO
b2RlIGF0IEIxIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7CisgICAgICAg
IH0KKworICAgICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhCMWEoJ29wZW4nKTsKKyAgICAgICAgdGVz
dEV2ZW50QXRCMWFXaXRoQjFhKCdjbG9zZWQnKTsKKworICAgICAgICAvKgorICAgICAgICAtU1I6
IFNoYWRvd1Jvb3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAq
OiBpbmRpY2F0ZXMgc3RhcnQgIGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCisgICAgICAgIEEgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBLVNSCisgICAg
ICAgICsgQiAtLS0tLS0tLS0tLSBCLVNSICg0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAr
IEExIC0tLSBBMS1TUgorICAgICAgICAgICsgQyAgICAgICAgICAgKyBCMSAoMykgWzAsMy00XSAt
LS0gQjEtU1IgKDIpICAgICAgKyBBMi1TICAgKyBBMWEKKyAgICAgICAgICArIEQgLS0tIEQtU1Ig
ICAgKyBCMWEgKCo7IDApICAgICAgICsgQjFiIFsxLDJdIC0tLSBCMWItU1IKKyAgICAgICAgICAg
ICAgICAgICsgRDEgICAgICAgICAgICAgICAgICAgICAgICsgQjFjLVMgKDEpICAgICArIEIxYjEg
WypdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKyBCMWIyCisgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudEF0
QjFhV2l0aEIxYjEobW9kZSkgeworICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7CisKKyAgICAgICAg
ICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQjFhLCBuZXcg
TW91c2VFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlLCByZWxhdGVk
VGFyZ2V0OiBub2Rlcy5CMWIxfSkpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2cuZXZlbnRQYXRoLAorICAgICAgICAgICAgICAgICAgICBbJ0IxYScsICdCMWMtUycs
ICdCMS1TUicsICdCMScsICdCLVNSJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJlIGNvcnJlY3Qu
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdl
dHMsCisgICAgICAgICAgICAgICAgICAgIFsnQjEnLCAgJ0IxYicsICAgJ0IxYicsICAgJ0IxJywg
J0IxJ10sICdUaGUgcmVsYXRlZCB0YXJnZXRzIG11c3QgYmUgY29ycmVjdC4nKTsKKworICAgICAg
ICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBhdCBCMWEgd2l0aCByZWxhdGVkTm9kZSBhdCBCMWIx
IHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7CisgICAgICAgIH0KKworICAg
ICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhCMWIxKCdvcGVuJyk7CisgICAgICAgIHRlc3RFdmVudEF0
QjFhV2l0aEIxYjEoJ2Nsb3NlZCcpOworCisgICAgICAgIC8qCisgICAgICAgIC1TUjogU2hhZG93
Um9vdCAgLVM6IFNsb3QgIHRhcmdldDogKH4pICByZWxhdGVkVGFyZ2V0OiBbfl0gICo6IGluZGlj
YXRlcyBzdGFydCAgZGlnaXQ6IGV2ZW50IHBhdGggb3JkZXIKKyAgICAgICAgQSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBLVNSCisgICAgICAgICsg
QiAtLS0tLS0tLS0tLS0tIEItU1IgKDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBBMSAt
LS0gQTEtU1IKKyAgICAgICAgICArIEMgICAgICAgICAgICAgKyBCMSAoNCkgLS0tLS0tLSBCMS1T
UiAoMykgICAgICAgICArIEEyLVMgICArIEExYQorICAgICAgICAgICsgRCAtLS0gRC1TUiAgICAr
IEIxYSBbKjsgMC01XSAgICsgQjFiICgyKSAtLS0gQjFiLVNSICgxKQorICAgICAgICAgICAgICAg
ICAgKyBEMSAgICAgICAgICAgICAgICAgICAgICsgQjFjLVMgICAgICAgKyBCMWIxICgqOyAwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KyBCMWIyCisgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudEF0QjFiMVdpdGhC
MWEobW9kZSkgeworICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7CisKKyAgICAgICAgICAgICAgICBs
b2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQjFiMSwgbmV3IE1vdXNlRXZl
bnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSwgcmVsYXRlZFRhcmdldDog
bm9kZXMuQjFhfSkpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cu
ZXZlbnRQYXRoLAorICAgICAgICAgICAgICAgICAgICBbJ0IxYjEnLCAnQjFiLVNSJywgJ0IxYics
ICdCMS1TUicsICdCMScsICdCLVNSJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJlIGNvcnJlY3Qu
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdl
dHMsCisgICAgICAgICAgICAgICAgICAgIFsnQjFhJywgICdCMWEnLCAgICAnQjFhJywgJ0IxYScs
ICAgJ0IxYScsICdCMWEnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVzdCBiZSBjb3JyZWN0Licp
OworCisgICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIxYjEgd2l0aCByZWxhdGVk
Tm9kZSBhdCBCMWEgd2l0aCAnICsgbW9kZSArICcgbW9kZSBzaGFkb3cgdHJlZXMnKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHRlc3RFdmVudEF0QjFiMVdpdGhCMWEoJ29wZW4nKTsKKyAgICAgICAg
dGVzdEV2ZW50QXRCMWIxV2l0aEIxYSgnY2xvc2VkJyk7CisKKyAgICAgICAgLyoKKyAgICAgICAg
LVNSOiBTaGFkb3dSb290ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRUYXJnZXQ6IFt+
XSAgKjogaW5kaWNhdGVzIHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgorICAgICAgICBB
ICg4KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBB
LVNSICg3KQorICAgICAgICArIEIgKDUpIC0tLS0tLS0tLS0tLS0tIEItU1IgKDQpICAgICAgICAg
ICAgICAgICAgICAgICAgICArIEExIC0tLS0tLS0tIEExLVNSCisgICAgICAgICAgKyBDICAgICAg
ICAgICAgICAgICAgKyBCMSAoMykgWyo7IDAtNF0gLS0tIEIxLVNSICgyKSAgICsgQTItUyAoNikg
ICAgKyBBMWEKKyAgICAgICAgICArIEQgWzAtOF0gLS0tIEQtU1IgICAgICsgQjFhICgqOyAwKSAg
ICAgICAgKyBCMWIgLS0tLS0tIEIxYi1TUgorICAgICAgICAgICAgICAgICAgICAgICAgKyBEMSBb
Kl0gICAgICAgICAgICAgICAgICAgICArIEIxYy1TICgxKSAgKyBCMWIxCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEIx
YjIKKyAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50QXRCMWFXaXRoRDEobW9k
ZSkgeworICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdmFy
IG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9kZSk7CisKKyAgICAgICAgICAgICAgICBsb2cgPSBk
aXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywgbm9kZXMuQjFhLCBuZXcgTW91c2VFdmVudCgnZm9v
Jywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBub2Rlcy5E
MX0pKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0
aCwKKyAgICAgICAgICAgICAgICAgICAgWydCMWEnLCAnQjFjLVMnLCAnQjEtU1InLCAnQjEnLCAn
Qi1TUicsICdCJywgJ0EyLVMnLCAnQS1TUicsICdBJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJl
IGNvcnJlY3QuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVs
YXRlZFRhcmdldHMsCisgICAgICAgICAgICAgICAgICAgIFsnRCcsICdEJywgJ0QnLCAnRCcsICdE
JywgJ0QnLCAnRCcsICdEJywgJ0QnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVzdCBiZSBjb3Jy
ZWN0LicpOworCisgICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJl
bGF0ZWROb2RlIGF0IEQxIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7Cisg
ICAgICAgIH0KKworICAgICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhEMSgnb3BlbicpOworICAgICAg
ICB0ZXN0RXZlbnRBdEIxYVdpdGhEMSgnY2xvc2VkJyk7CisKKyAgICAgICAgLyoKKyAgICAgICAg
LVNSOiBTaGFkb3dSb290ICAtUzogU2xvdCAgdGFyZ2V0OiAofikgIHJlbGF0ZWRUYXJnZXQ6IFt+
XSAgKjogaW5kaWNhdGVzIHN0YXJ0ICBkaWdpdDogZXZlbnQgcGF0aCBvcmRlcgorICAgICAgICBB
ICg2KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBLVNSICg1KQorICAgICAg
ICArIEIgKDMpIFswXSAtLS0tLS0tLS0tLSBCLVNSICAgICAgICAgICAgICArIEExIC0tLS0tLSBB
MS1TUgorICAgICAgICAgICsgQyAgICAgICAgICAgICAgICAgICArIEIxIC0tLS0tIEIxLVNSICAr
IEEyLVMgKDQpICArIEExYQorICAgICAgICAgICsgRCAoMikgLS0tIEQtU1IgKDEpICArIEIxYSBb
Kl0gICsgQjFiIC0tLSBCMWItU1IKKyAgICAgICAgICAgICAgICAgICAgICAgICsgRDEgKCo7IDAp
ICAgICAgICAgKyBCMWMtUyAgICsgQjFiMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCisgICAgICAgICovCisgICAgICAgIGZ1bmN0
aW9uIHRlc3RFdmVudEF0RDFXaXRoQjFhKG1vZGUpIHsKKyAgICAgICAgICAgIHRlc3QoZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IGNyZWF0ZVRlc3RUcmVlKG1vZGUp
OworCisgICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2cobm9kZXMsIG5v
ZGVzLkQxLCBuZXcgTW91c2VFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0
cnVlLCByZWxhdGVkVGFyZ2V0OiBub2Rlcy5CMWF9KSk7CisKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsCisgICAgICAgICAgICAgICAgICAgIFsnRDEn
LCAnRC1TUicsICdEJywgJ0InLCAnQTItUycsICdBLVNSJywgJ0EnXSwgJ1RoZSBldmVudCBwYXRo
IG11c3QgYmUgY29ycmVjdC4nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZy5yZWxhdGVkVGFyZ2V0cywKKyAgICAgICAgICAgICAgICAgICAgWydCJywgJ0InLCAnQics
ICdCJywgJ0InLCAnQicsICdCJ10sICdUaGUgcmVsYXRlZCB0YXJnZXRzIG11c3QgYmUgY29ycmVj
dC4nKTsKKworICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBhdCBEMSB3aXRoIHJlbGF0
ZWROb2RlIGF0IEIxYSB3aXRoICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyB0cmVlcycpOworICAg
ICAgICB9CisKKyAgICAgICAgdGVzdEV2ZW50QXREMVdpdGhCMWEoJ29wZW4nKTsKKyAgICAgICAg
dGVzdEV2ZW50QXREMVdpdGhCMWEoJ2Nsb3NlZCcpOworCisgICAgICAgIC8qCisgICAgICAgIC1T
UjogU2hhZG93Um9vdCAgLVM6IFNsb3QgIHRhcmdldDogKH4pICByZWxhdGVkVGFyZ2V0OiBbfl0g
ICo6IGluZGljYXRlcyBzdGFydCAgZGlnaXQ6IGV2ZW50IHBhdGggb3JkZXIKKyAgICAgICAgQSAo
OCkgWzAtNSw4XSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEEtU1Ig
KDcpCisgICAgICAgICsgQiAoNSkgIC0tLS0tLS0gQi1TUiAoNCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICArIEExIFs2LDddIC0tLSBBMS1TUgorICAgICAgICAgICsgQyAgICAgICAgICAg
ICsgQjEgKDMpIC0tLS0tIEIxLVNSICgyKSAgICAgICAgICAgICAgKyBBMi1TICg2KSAgICAgKyBB
MWEgWypdCisgICAgICAgICAgKyBEIC0tLSBELVNSICAgKyBCMWEgKCo7IDApICAgKyBCMWIgLS0t
LS0tLSBCMWItU1IKKyAgICAgICAgICAgICAgICAgICsgRDEgICAgICAgICAgICAgICAgICArIEIx
Yy1TICgxKSAgICsgQjFiMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKyBCMWIyCisgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIHRlc3RF
dmVudEF0QjFhV2l0aEExYShtb2RlKSB7CisgICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICB2YXIgbm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKKworICAg
ICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5CMWEs
IG5ldyBNb3VzZUV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJl
bGF0ZWRUYXJnZXQ6IG5vZGVzLkExYX0pKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nLmV2ZW50UGF0aCwKKyAgICAgICAgICAgICAgICAgICAgWydCMWEnLCAnQjFj
LVMnLCAnQjEtU1InLCAnQjEnLCAnQi1TUicsICdCJywgJ0EyLVMnLCAnQS1TUicsICdBJ10sICdU
aGUgZXZlbnQgcGF0aCBtdXN0IGJlIGNvcnJlY3QuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdldHMsCisgICAgICAgICAgICAgICAgICAgIFsn
QScsICAgJ0EnLCAgICAgJ0EnLCAgICAgJ0EnLCAgICdBJywgICAnQScsICdBMScsICAgJ0ExJywg
ICAnQSddLCAnVGhlIHJlbGF0ZWQgdGFyZ2V0cyBtdXN0IGJlIGNvcnJlY3QuJyk7CisKKyAgICAg
ICAgICAgIH0sICdGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgQTFh
IHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7CisgICAgICAgIH0KKworICAg
ICAgICB0ZXN0RXZlbnRBdEIxYVdpdGhBMWEoJ29wZW4nKTsKKyAgICAgICAgdGVzdEV2ZW50QXRC
MWFXaXRoQTFhKCdjbG9zZWQnKTsKKworICAgICAgICAvKgorICAgICAgICAtU1I6IFNoYWRvd1Jv
b3QgIC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0
ZXMgc3RhcnQgIGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCisgICAgICAgIEEgKDQpIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEEtU1IgKDMpCisgICAgICAgICsgQiBb
MC00XSAgLS0tLS0gQi1TUiAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQTEgKDIpIC0tLSBB
MS1TUiAoMSkKKyAgICAgICAgICArIEMgICAgICAgICAgICArIEIxIC0tLS0tLS0gQjEtU1IgICAg
ICAgICAgICAgKyBBMi1TICAgICAgICsgQTFhICgqOyAwKQorICAgICAgICAgICsgRCAtLS0gRC1T
UiAgICAgKyBCMWEgWypdICArIEIxYiAtLS0gQjFiLVNSCisgICAgICAgICAgICAgICAgICArIEQx
ICAgICAgICAgICAgICAgICsgQjFjLVMgICArIEIxYjEKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICsgQjFiMgorICAgICAgICAqLworICAgICAgICBmdW5j
dGlvbiB0ZXN0RXZlbnRBdEExYVdpdGhCMWEobW9kZSkgeworICAgICAgICAgICAgdGVzdChmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdmFyIG5vZGVzID0gY3JlYXRlVGVzdFRyZWUobW9k
ZSk7CisKKyAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhub2Rlcywg
bm9kZXMuQTFhLCBuZXcgTW91c2VFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWUsIGNvbXBvc2Vk
OiB0cnVlLCByZWxhdGVkVGFyZ2V0OiBub2Rlcy5CMWF9KSk7CisKKyAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZy5ldmVudFBhdGgsCisgICAgICAgICAgICAgICAgICAgIFsn
QTFhJywgJ0ExLVNSJywgJ0ExJywgJ0EtU1InLCAnQSddLCAnVGhlIGV2ZW50IHBhdGggbXVzdCBi
ZSBjb3JyZWN0LicpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnJl
bGF0ZWRUYXJnZXRzLAorICAgICAgICAgICAgICAgICAgICBbJ0InLCAnQicsICdCJywgJ0InLCAn
QiddLCAnVGhlIHJlbGF0ZWQgdGFyZ2V0cyBtdXN0IGJlIGNvcnJlY3QuJyk7CisKKyAgICAgICAg
ICAgIH0sICdGaXJpbmcgYW4gZXZlbnQgYXQgQjFhIHdpdGggcmVsYXRlZE5vZGUgYXQgQTFhIHdp
dGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRyZWVzJyk7CisgICAgICAgIH0KKworICAgICAg
ICB0ZXN0RXZlbnRBdEExYVdpdGhCMWEoJ29wZW4nKTsKKyAgICAgICAgdGVzdEV2ZW50QXRBMWFX
aXRoQjFhKCdjbG9zZWQnKTsKKworICAgICAgICAvKgorICAgICAgICAtU1I6IFNoYWRvd1Jvb3Qg
IC1TOiBTbG90ICB0YXJnZXQ6ICh+KSAgcmVsYXRlZFRhcmdldDogW35dICAqOiBpbmRpY2F0ZXMg
c3RhcnQgIGRpZ2l0OiBldmVudCBwYXRoIG9yZGVyCisgICAgICAgIEEgKDgpIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEEtU1IgKDcpCisgICAgICAgICsgQiAoNSkgIC0tLS0t
IEItU1IgKDQpICAgICAgICAgICAgICAgICAgICsgQTItUyAoNikKKyAgICAgICAgICArIEMgICAg
ICAgICAgKyBCMSAoMykgLS0tLS0gQjEtU1IgKDIpCisgICAgICAgICAgKyBEIC0tLSBELVNSICAg
KyBCMWEgKCo7IDApICsgQjFiIC0tLS0tLS0gQjFiLVNSCisgICAgICAgICAgICAgICAgICArIEQx
ICAgICAgICAgICAgICAgICsgQjFjLVMgKDEpICAgKyBCMWIxCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCMWIyCisgICAgICAgIEExIFswLTZd
IC0tLSBBMS1TUgorICAgICAgICAgICAgICAgICAgICsgQTFhIFsqXQorICAgICAgICAqLworICAg
ICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRBdEIxYVdpdGhEZXRhY2hlZEExYShtb2RlKSB7CisgICAg
ICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB2YXIgbm9kZXMgPSBj
cmVhdGVUZXN0VHJlZShtb2RlKTsKKworICAgICAgICAgICAgICAgIG5vZGVzWydBLVNSJ10ucmVt
b3ZlQ2hpbGQobm9kZXMuQTEpOworICAgICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRX
aXRoTG9nKG5vZGVzLCBub2Rlcy5CMWEsIG5ldyBNb3VzZUV2ZW50KCdmb28nLCB7YnViYmxlczog
dHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG5vZGVzLkExYX0pKTsKKworICAg
ICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aCwKKyAgICAgICAg
ICAgICAgICAgICAgWydCMWEnLCAnQjFjLVMnLCAnQjEtU1InLCAnQjEnLCAnQi1TUicsICdCJywg
J0EyLVMnLCAnQS1TUicsICdBJ10sICdUaGUgZXZlbnQgcGF0aCBtdXN0IGJlIGNvcnJlY3QuJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2cucmVsYXRlZFRhcmdldHMs
CisgICAgICAgICAgICAgICAgICAgIFsnQTEnLCAnQTEnLCAnQTEnLCAnQTEnLCAnQTEnLCAnQTEn
LCAnQTEnLCAnQTEnLCAnQTEnXSwgJ1RoZSByZWxhdGVkIHRhcmdldHMgbXVzdCBiZSBjb3JyZWN0
LicpOworCisgICAgICAgICAgICB9LCAnRmlyaW5nIGFuIGV2ZW50IGF0IEIxYSB3aXRoIHJlbGF0
ZWROb2RlIGF0IEExYSB3aXRoICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyB0cmVlcycpOworICAg
ICAgICB9CisKKyAgICAgICAgdGVzdEV2ZW50QXRCMWFXaXRoRGV0YWNoZWRBMWEoJ29wZW4nKTsK
KyAgICAgICAgdGVzdEV2ZW50QXRCMWFXaXRoRGV0YWNoZWRBMWEoJ2Nsb3NlZCcpOworCisgICAg
ICAgIC8qCisgICAgICAgIC1TUjogU2hhZG93Um9vdCAgLVM6IFNsb3QgIHRhcmdldDogKH4pICBy
ZWxhdGVkVGFyZ2V0OiBbfl0gICo6IGluZGljYXRlcyBzdGFydCAgZGlnaXQ6IGV2ZW50IHBhdGgg
b3JkZXIKKyAgICAgICAgQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBLVNS
CisgICAgICAgICsgQiBbMC0zXSAgLS0tLS0gQi1TUiAgICAgICAgICAgICAgICAgKyBBMi1TCisg
ICAgICAgICAgKyBDICAgICAgICAgICAgKyBCMSAtLS0tLS0tLSBCMS1TUgorICAgICAgICAgICsg
RCAtLS0gRC1TUiAgICAgKyBCMWEgWypdICAgKyBCMWIgLS0tIEIxYi1TUgorICAgICAgICAgICAg
ICAgICAgKyBEMSAgICAgICAgICAgICAgICAgKyBCMWMtUyAgICsgQjFiMQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQjFiMgorICAgICAgICBBMSAo
MikgLS0tIEExLVNSICgxKQorICAgICAgICAgICAgICAgICAgICsgQTFhICgqOyAwKQorICAgICAg
ICAqLworICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRBdEExYVdpdGhEZXRhY2hlZEIxYShtb2Rl
KSB7CisgICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB2YXIg
bm9kZXMgPSBjcmVhdGVUZXN0VHJlZShtb2RlKTsKKworICAgICAgICAgICAgICAgIG5vZGVzWydB
LVNSJ10ucmVtb3ZlQ2hpbGQobm9kZXMuQTEpOworICAgICAgICAgICAgICAgIGxvZyA9IGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKG5vZGVzLCBub2Rlcy5BMWEsIG5ldyBNb3VzZUV2ZW50KCdmb28nLCB7
YnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUsIHJlbGF0ZWRUYXJnZXQ6IG5vZGVzLkIxYX0p
KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLmV2ZW50UGF0aCwg
ICAgICBbJ0ExYScsICdBMS1TUicsICdBMSddLCAnVGhlIGV2ZW50IHBhdGggbXVzdCBiZSBjb3Jy
ZWN0LicpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nLnJlbGF0ZWRU
YXJnZXRzLCBbJ0InLCAgICdCJywgICAgICdCJyBdLCAnVGhlIHJlbGF0ZWQgdGFyZ2V0cyBtdXN0
IGJlIGNvcnJlY3QuJyk7CisKKyAgICAgICAgICAgIH0sICdGaXJpbmcgYW4gZXZlbnQgYXQgQjFh
IHdpdGggcmVsYXRlZE5vZGUgYXQgQTFhIHdpdGggJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IHRy
ZWVzJyk7CisgICAgICAgIH0KKworICAgICAgICB0ZXN0RXZlbnRBdEExYVdpdGhEZXRhY2hlZEIx
YSgnb3BlbicpOworICAgICAgICB0ZXN0RXZlbnRBdEExYVdpdGhEZXRhY2hlZEIxYSgnY2xvc2Vk
Jyk7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vbGVh
a3Rlc3RzL2dldC1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vbGVha3Rlc3RzL2dldC1lbGVtZW50cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZmMWUxNGQ1YTE5NGUwODg4MzFjMjQ4MmU0YWNlMjkx
MTkzZmMzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9sZWFrdGVzdHMvZ2V0LWVsZW1lbnRzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFTUyBnZXRFbGVtZW50c0J5SWQoKSBzaG91bGQgbm90
IGxlYWsgbm9kZXMgaW4gc2hhZG93IHRyZWUgCitQQVNTIGdldEVsZW1lbnRzQnlDbGFzc05hbWUo
KSBzaG91bGQgbm90IGxlYWsgbm9kZXMgaW4gc2hhZG93IHRyZWUgCitQQVNTIGdldEVsZW1lbnRz
QnlOYW1lKCkgc2hvdWxkIG5vdCBsZWFrIG5vZGVzIGluIHNoYWRvdyB0cmVlIAorUEFTUyBnZXRF
bGVtZW50c0J5VGFnTmFtZSgpIHNob3VsZCBub3QgbGVhayBub2RlcyBpbiBzaGFkb3cgdHJlZSAK
K1BBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygpIHNob3VsZCBub3QgbGVhayBub2RlcyBpbiBz
aGFkb3cgdHJlZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy9nZXQtZWxlbWVudHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9sZWFr
dGVzdHMvZ2V0LWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E3OTdlMjYxMzcwYmNlNmNmOTBh
ZjNkMDY1ZDlkZTU4M2ZlYmE2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9sZWFrdGVzdHMvZ2V0LWVsZW1l
bnRzLmh0bWwKQEAgLTAsMCArMSwxNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIG5hbWU9J2F1dGhvcicgdGl0bGU9J0dvb2dsZScgaHJlZj0naHR0cDovL3d3dy5n
b29nbGUuY29tJz4KKzxtZXRhIG5hbWU9J2Fzc2VydCcgY29udGVudD0nZ2V0RWxlbWVudCogQVBJ
IGluIGRvY3VtZW50IHNob3VsZCBub3QgbGVhayBhbnkgbm9kZSBpbiBzaGFkb3cgdHJlZS4nPgor
PGxpbmsgcmVsPSdoZWxwJyBocmVmPSdodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50
cy9zcGVjL3NoYWRvdy8nPgorPHNjcmlwdCBzcmM9Jy4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
Cis8IS0tICBUaGlzIHRlbXBsYXRlIHdpbGwgYmUgZmlsbGVkIGluICcjZG9jJywgJyNob3N0LW9w
ZW4nLCBhbmQgJyNob3N0LWNsb3NlZCcgYmVsb3cgIC0tPgorPHRlbXBsYXRlIGlkPSdkb210cmVl
LXRlbXBsYXRlJz4KKyAgPHNwYW4gaWQ9J2Zvbyc+PC9zcGFuPgorICA8ZGl2IGNsYXNzPSdiYXIn
PjwvZGl2PgorICA8Zm9ybSBuYW1lPSdiYXonPjwvZm9ybT4KKyAgPG15LWVsZW1lbnQ+PC9teS1l
bGVtZW50PgorPC90ZW1wbGF0ZT4KKworPGRpdiBpZD0nZG9jJz4KKyAgPGRpdiBpZD0naG9zdC1v
cGVuJz48L2Rpdj4KKyAgPGRpdiBpZD0naG9zdC1jbG9zZWQnPjwvZGl2PgorPC9kaXY+CisKKzwv
Ym9keT4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2Z1bmN0aW9uIGZpbGxUZW1wbGF0ZShy
b290LCBwcmVmaXgpIHsKKyAgICB2YXIgdG1wbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdk
b210cmVlLXRlbXBsYXRlJyk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5pbXBvcnRO
b2RlKHRtcGwuY29udGVudCwgdHJ1ZSkpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm9vdC5j
aGlsZE5vZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBlbCA9IHJvb3QuY2hpbGROb2Rl
c1tpXTsKKyAgICAgICAgaWYgKGVsLm5vZGVUeXBlICE9IDEpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdsYWJlbCcsIHByZWZpeCArIGVsLnRhZ05hbWUu
dG9Mb3dlckNhc2UoKSk7CisgICAgfQorCisgICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ2xpbmVhckdyYWRp
ZW50JykpOworfQorCisvLyBDb25zdHJ1Y3Qgc3VidHJlZSB3aXRoICdkb2MtKicgaWRzLgordmFy
IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2MnKTsKK2ZpbGxUZW1wbGF0ZShkb2Ms
ICdkb2MtJyk7CisKKy8vIENvbnN0cnVjdCBzaGFkb3cgc3VidHJlZSB3aXRoICdzaGFkb3ctKicg
aWRzLgordmFyIGhvc3RPcGVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3Qtb3Blbicp
OwordmFyIHNoYWRvd09wZW4gPSBob3N0T3Blbi5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30p
OworZmlsbFRlbXBsYXRlKHNoYWRvd09wZW4sICdzaGFkb3ctb3Blbi0nKTsKKwordmFyIGhvc3RD
bG9zZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdC1jbG9zZWQnKTsKK3ZhciBzaGFk
b3dDbG9zZWQgPSBob3N0Q2xvc2VkLmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK2Zp
bGxUZW1wbGF0ZShzaGFkb3dDbG9zZWQsICdzaGFkb3ctY2xvc2VkLScpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICAgIC8vIGdldEVsZW1lbnRCeUlkKCkgKE5vbkVsZW1lbnRQYXJlbnROb2RlKQor
ICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2ZvbycpLmxlbmd0
aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vJyku
Z2V0QXR0cmlidXRlKCdsYWJlbCcpLCAnZG9jLXNwYW4nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNmb28nKS5nZXRBdHRyaWJ1dGUoJ2xhYmVsJyksICdkb2Mt
c3BhbicpOworCisgICAgYXNzZXJ0X2VxdWFscyhkb2MucXVlcnlTZWxlY3RvckFsbCgnI2Zvbycp
Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2MucXVlcnlTZWxlY3RvcignI2Zvbycp
LmdldEF0dHJpYnV0ZSgnbGFiZWwnKSwgJ2RvYy1zcGFuJyk7CisKKyAgICBhc3NlcnRfZXF1YWxz
KGhvc3RPcGVuLnF1ZXJ5U2VsZWN0b3JBbGwoJyNmb28nKS5sZW5ndGgsIDApOworCisgICAgYXNz
ZXJ0X2VxdWFscyhzaGFkb3dPcGVuLnF1ZXJ5U2VsZWN0b3JBbGwoJyNmb28nKS5sZW5ndGgsIDEp
OworICAgIGFzc2VydF9lcXVhbHMoc2hhZG93T3Blbi5nZXRFbGVtZW50QnlJZCgnZm9vJykuZ2V0
QXR0cmlidXRlKCdsYWJlbCcpLCAnc2hhZG93LW9wZW4tc3BhbicpOworICAgIGFzc2VydF9lcXVh
bHMoc2hhZG93T3Blbi5xdWVyeVNlbGVjdG9yKCcjZm9vJykuZ2V0QXR0cmlidXRlKCdsYWJlbCcp
LCAnc2hhZG93LW9wZW4tc3BhbicpOworCisgICAgYXNzZXJ0X2VxdWFscyhob3N0Q2xvc2VkLnF1
ZXJ5U2VsZWN0b3JBbGwoJyNmb28nKS5sZW5ndGgsIDApOworCisgICAgYXNzZXJ0X2VxdWFscyhz
aGFkb3dDbG9zZWQucXVlcnlTZWxlY3RvckFsbCgnI2ZvbycpLmxlbmd0aCwgMSk7CisgICAgYXNz
ZXJ0X2VxdWFscyhzaGFkb3dDbG9zZWQuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpLmdldEF0dHJpYnV0
ZSgnbGFiZWwnKSwgJ3NoYWRvdy1jbG9zZWQtc3BhbicpOworICAgIGFzc2VydF9lcXVhbHMoc2hh
ZG93Q2xvc2VkLnF1ZXJ5U2VsZWN0b3IoJyNmb28nKS5nZXRBdHRyaWJ1dGUoJ2xhYmVsJyksICdz
aGFkb3ctY2xvc2VkLXNwYW4nKTsKK30sICdnZXRFbGVtZW50c0J5SWQoKSBzaG91bGQgbm90IGxl
YWsgbm9kZXMgaW4gc2hhZG93IHRyZWUnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICAvLyBn
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCkgKEVsZW1lbnQsIERvY3VtZW50KQorICAgIGFzc2VydF9l
cXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYmFyJykubGVuZ3RoLCAxKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Jhcicp
WzBdLmdldEF0dHJpYnV0ZSgnbGFiZWwnKSwgJ2RvYy1kaXYnKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JhcicpLmxlbmd0aCwgMSk7CisgICAg
YXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdiYXInKVswXS5n
ZXRBdHRyaWJ1dGUoJ2xhYmVsJyksICdkb2MtZGl2Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYmFyJykubGVuZ3RoLCAxKTsKKworICAgIGFzc2VydF9l
cXVhbHMoZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYXInKS5sZW5ndGgsIDEpOworICAgIGFzc2Vy
dF9lcXVhbHMoZG9jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JhcicpWzBdLmdldEF0dHJpYnV0
ZSgnbGFiZWwnKSwgJ2RvYy1kaXYnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaG9zdE9w
ZW4ucXVlcnlTZWxlY3RvckFsbCgnLmJhcicpLmxlbmd0aCwgMCk7CisKKyAgICBhc3NlcnRfZXF1
YWxzKHNoYWRvd09wZW4ucXVlcnlTZWxlY3RvckFsbCgnLmJhcicpLmxlbmd0aCwgMSk7CisgICAg
YXNzZXJ0X2VxdWFscyhzaGFkb3dPcGVuLnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYXInKVswXS5nZXRB
dHRyaWJ1dGUoJ2xhYmVsJyksICdzaGFkb3ctb3Blbi1kaXYnKTsKKworICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoaG9zdENsb3NlZC5xdWVyeVNlbGVjdG9yQWxsKCcuYmFyJykubGVuZ3RoLCAwKTsK
KworICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Q2xvc2VkLnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYXIn
KS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Q2xvc2VkLnF1ZXJ5U2VsZWN0
b3JBbGwoJy5iYXInKVswXS5nZXRBdHRyaWJ1dGUoJ2xhYmVsJyksICdzaGFkb3ctY2xvc2VkLWRp
dicpOworfSwgJ2dldEVsZW1lbnRzQnlDbGFzc05hbWUoKSBzaG91bGQgbm90IGxlYWsgbm9kZXMg
aW4gc2hhZG93IHRyZWUnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICAvLyBnZXRFbGVtZW50
c0J5TmFtZSAoRG9jdW1lbnQpCisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50
c0J5TmFtZSgnYmF6JykubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlOYW1lKCdiYXonKVswXS5nZXRBdHRyaWJ1dGUoJ2xhYmVsJyksICdkb2MtZm9y
bScpOworICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoJ2Jheicp
Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFt
ZSgnYmF6JylbMF0uZ2V0QXR0cmlidXRlKCdsYWJlbCcpLCAnZG9jLWZvcm0nKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tuYW1lPWJhel0nKS5sZW5ndGgs
IDEpOworCisgICAgYXNzZXJ0X2VxdWFscyhkb2MucXVlcnlTZWxlY3RvckFsbCgnW25hbWU9YmF6
XScpLmxlbmd0aCwgMSk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhvc3RPcGVuLnF1ZXJ5
U2VsZWN0b3JBbGwoJ1tuYW1lPWJhel0nKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMo
c2hhZG93T3Blbi5xdWVyeVNlbGVjdG9yQWxsKCdbbmFtZT1iYXpdJykubGVuZ3RoLCAxKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHNoYWRvd09wZW4ucXVlcnlTZWxlY3RvckFsbCgnW25hbWU9YmF6XScp
WzBdLmdldEF0dHJpYnV0ZSgnbGFiZWwnKSwgJ3NoYWRvdy1vcGVuLWZvcm0nKTsKKworICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoaG9zdENsb3NlZC5xdWVyeVNlbGVjdG9yQWxsKCdbbmFtZT1iYXpd
JykubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd0Nsb3NlZC5xdWVyeVNlbGVj
dG9yQWxsKCdbbmFtZT1iYXpdJykubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNoYWRv
d0Nsb3NlZC5xdWVyeVNlbGVjdG9yQWxsKCdbbmFtZT1iYXpdJylbMF0uZ2V0QXR0cmlidXRlKCds
YWJlbCcpLCAnc2hhZG93LWNsb3NlZC1mb3JtJyk7Cit9LCAnZ2V0RWxlbWVudHNCeU5hbWUoKSBz
aG91bGQgbm90IGxlYWsgbm9kZXMgaW4gc2hhZG93IHRyZWUnKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgICAvLyBnZXRFbGVtZW50c0J5VGFnTmFtZSAoRWxlbWVudCwgRG9jdW1lbnQpCisgICAg
YXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbXktZWxlbWVudCcp
Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnbXktZWxlbWVudCcpWzBdLmdldEF0dHJpYnV0ZSgnbGFiZWwnKSwgJ2RvYy1teS1lbGVt
ZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
bXktZWxlbWVudCcpLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgnbXktZWxlbWVudCcpWzBdLmdldEF0dHJpYnV0ZSgnbGFiZWwnKSwg
J2RvYy1teS1lbGVtZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCdteS1lbGVtZW50JykubGVuZ3RoLCAxKTsKKworICAgIGFzc2VydF9lcXVhbHMoZG9j
LnF1ZXJ5U2VsZWN0b3JBbGwoJ215LWVsZW1lbnQnKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9l
cXVhbHMoZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdteS1lbGVtZW50JylbMF0uZ2V0QXR0cmli
dXRlKCdsYWJlbCcpLCAnZG9jLW15LWVsZW1lbnQnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoaG9zdE9wZW4ucXVlcnlTZWxlY3RvckFsbCgnbXktZWxlbWVudCcpLmxlbmd0aCwgMCk7Cisg
ICAgLy8gU2hhZG93Um9vdCBpc24ndCBhbiBFbGVtZW50LCBkb2VzIG5vdCBoYXZlIGdldEVsZW1l
bnRzQnlUYWdOYW1lKCkuCisgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dPcGVuLnF1ZXJ5U2VsZWN0
b3JBbGwoJ215LWVsZW1lbnQnKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoc2hhZG93
T3Blbi5xdWVyeVNlbGVjdG9yQWxsKCdteS1lbGVtZW50JylbMF0uZ2V0QXR0cmlidXRlKCdsYWJl
bCcpLCAnc2hhZG93LW9wZW4tbXktZWxlbWVudCcpOworCisgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhob3N0Q2xvc2VkLnF1ZXJ5U2VsZWN0b3JBbGwoJ215LWVsZW1lbnQnKS5sZW5ndGgsIDApOwor
ICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Q2xvc2VkLnF1ZXJ5U2VsZWN0b3JBbGwoJ215LWVsZW1l
bnQnKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Q2xvc2VkLnF1ZXJ5U2Vs
ZWN0b3JBbGwoJ215LWVsZW1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ2xhYmVsJyksICdzaGFkb3ct
Y2xvc2VkLW15LWVsZW1lbnQnKTsKK30sICdnZXRFbGVtZW50c0J5VGFnTmFtZSgpIHNob3VsZCBu
b3QgbGVhayBub2RlcyBpbiBzaGFkb3cgdHJlZScpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAg
IC8vIGdldEVsZW1lbnRzQnlUYWdOYW1lTlMgKEVsZW1lbnQsIERvY3VtZW50KQorICAgIGFzc2Vy
dF9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpbmVhcmdyYWRpZW50Jyku
bGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lTlMoJyonLCAnbGluZWFyZ3JhZGllbnQnKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVh
bHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygnaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmcnLCAnbGluZWFyZ3JhZGllbnQnKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMo
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCcsICdsaW5lYXJncmFkaWVudCcpLmxlbmd0aCwgMCk7CisKKyAgICBhc3NlcnRfZXF1YWxz
KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaW5lYXJHcmFkaWVudCcpLmxlbmd0aCwg
MSk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCcq
JywgJ2xpbmVhckdyYWRpZW50JykubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywg
J2xpbmVhckdyYWRpZW50JykubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAn
bGluZWFyR3JhZGllbnQnKS5sZW5ndGgsIDApOworCisgICAgYXNzZXJ0X2VxdWFscyhkb2MuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ2xpbmVhcmdyYWRpZW50JykubGVuZ3RoLCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCcqJywgJ2xpbmVhcmdyYWRpZW50
JykubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRvYy5nZXRFbGVtZW50c0J5VGFnTmFt
ZU5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICdsaW5lYXJncmFkaWVudCcpLmxlbmd0
aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygnaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdsaW5lYXJncmFkaWVudCcpLmxlbmd0aCwgMCk7
CisKKyAgICBhc3NlcnRfZXF1YWxzKGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbGluZWFyR3Jh
ZGllbnQnKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoZG9jLmdldEVsZW1lbnRzQnlU
YWdOYW1lTlMoJyonLCAnbGluZWFyR3JhZGllbnQnKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9l
cXVhbHMoZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnJywgJ2xpbmVhckdyYWRpZW50JykubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGRv
Yy5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywg
J2xpbmVhckdyYWRpZW50JykubGVuZ3RoLCAwKTsKKworICAgIGFzc2VydF9lcXVhbHMoaG9zdE9w
ZW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpbmVhckdyYWRpZW50JykubGVuZ3RoLCAwKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGhvc3RPcGVuLmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoJyonLCAnbGlu
ZWFyR3JhZGllbnQnKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMoaG9zdE9wZW4uZ2V0
RWxlbWVudHNCeVRhZ05hbWVOUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnbGluZWFy
R3JhZGllbnQnKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMoaG9zdE9wZW4uZ2V0RWxl
bWVudHNCeVRhZ05hbWVOUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdsaW5lYXJH
cmFkaWVudCcpLmxlbmd0aCwgMCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGhvc3RDbG9zZWQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ2xpbmVhckdyYWRpZW50JykubGVuZ3RoLCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGhvc3RDbG9zZWQuZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygnKicsICdsaW5lYXJH
cmFkaWVudCcpLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhob3N0Q2xvc2VkLmdldEVs
ZW1lbnRzQnlUYWdOYW1lTlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ2xpbmVhckdy
YWRpZW50JykubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhvc3RDbG9zZWQuZ2V0RWxl
bWVudHNCeVRhZ05hbWVOUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdsaW5lYXJH
cmFkaWVudCcpLmxlbmd0aCwgMCk7CisKKyAgICAvLyBTaGFkb3dSb290IGlzbid0IGFuIEVsZW1l
bnQsIGRvZXMgbm90IGhhdmUgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygpLgorfSwgJ2dldEVsZW1l
bnRzQnlUYWdOYW1lTlMoKSBzaG91bGQgbm90IGxlYWsgbm9kZXMgaW4gc2hhZG93IHRyZWUnKTsK
Kzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy9odG1sLWNvbGxlY3Rpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy9odG1sLWNvbGxlY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM0M2ZiY2U3Y2ZiMGVkOTI5ZGZhOGM3ZmMzNmRhMjQwNmVjNmNiOWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3No
YWRvdy1kb20vbGVha3Rlc3RzL2h0bWwtY29sbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorICAKKworUEFTUyBkb2N1bWVudC5zY3JpcHRzIHNob3VsZCBub3QgY29udGFpbiBz
aGFkb3cgbm9kZXMgCitQQVNTIGRvY3VtZW50LmFsbCBzaG91bGQgbm90IGNvbnRhaW4gc2hhZG93
IG5vZGVzIAorUEFTUyBkb2N1bWVudC5mb3JtcyBzaG91bGQgbm90IGNvbnRhaW4gc2hhZG93IG5v
ZGVzIAorUEFTUyBkb2N1bWVudC5pbWFnZXMgc2hvdWxkIG5vdCBjb250YWluIHNoYWRvdyBub2Rl
cyAKK1BBU1MgZG9jdW1lbnQubGlua3Mgc2hvdWxkIG5vdCBjb250YWluIHNoYWRvdyBub2RlcyAK
K1BBU1MgZG9jdW1lbnQuYW5jaG9ycyBzaG91bGQgbm90IGNvbnRhaW4gc2hhZG93IG5vZGVzIAor
UEFTUyBkb2N1bWVudC5lbWJlZHMgc2hvdWxkIG5vdCBjb250YWluIHNoYWRvdyBub2RlcyAKK1BB
U1MgZG9jdW1lbnQucGx1Z2lucyBzaG91bGQgbm90IGNvbnRhaW4gc2hhZG93IG5vZGVzIAorUEFT
UyBkb2N1bWVudC5hcHBsZXRzIHNob3VsZCBub3QgY29udGFpbiBzaGFkb3cgbm9kZXMgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hh
ZG93LWRvbS9sZWFrdGVzdHMvaHRtbC1jb2xsZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vbGVha3Rlc3RzL2h0bWwtY29s
bGVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlOWRjM2Q4ZjZhMmIxMjFiNzE4NmRlZGExM2IzZmVj
OWFiODYyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vbGVha3Rlc3RzL2h0bWwtY29sbGVjdGlvbi5odG1s
CkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IG5hbWU9J2F1dGhvcicgdGl0bGU9J0dvb2dsZScgaHJlZj0naHR0cDovL3d3dy5nb29nbGUuY29t
Jz4KKzxtZXRhIG5hbWU9J2Fzc2VydCcgY29udGVudD0nZG9jdW1lbnQgYXR0cmlidXRlcyB0aGF0
IHJldHVybnMgSFRNTENvbGxlY3Rpb24gc2hvdWxkIG5vdCBleHBvc2Ugbm9kZXMgaW4gc2hhZG93
IHRyZWUuJz4KKzxsaW5rIHJlbD0naGVscCcgaHJlZj0naHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YmNvbXBvbmVudHMvc3BlYy9zaGFkb3cvJz4KKzxzY3JpcHQgc3JjPScuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzx0ZW1wbGF0ZSBpZD0nY29sbGVjdGlvbi10ZW1wbGF0ZSc+CisgIDxpbWc+Cisg
IDxlbWJlZD48L2VtYmVkPgorICA8YXBwbGV0PjwvYXBwbGV0PgorICA8b2JqZWN0IHR5cGU9J2Fw
cGxpY2F0aW9uL3gtamF2YS1hcHBsZXQnPjwvb2JqZWN0PgorICA8YSBocmVmPSdodHRwOi8vZXhh
bXBsZS5jb20nPjwvYT4KKyAgPGEgbmFtZT0ndGVzdCc+PC9hPgorICA8Zm9ybSBuYW1lPSd0ZXN0
Jz48L2Zvcm0+CisgIDxzY3JpcHQ+PC9zY3JpcHQ+Cis8L3RlbXBsYXRlPgorPGRpdiBpZD0nZG9j
Jz48L2Rpdj4KKzxkaXYgaWQ9J2hvc3Qtb3Blbic+PC9kaXY+Cis8ZGl2IGlkPSdob3N0LWNsb3Nl
ZCc+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitmdW5jdGlvbiBm
aWxsVGVtcGxhdGUocm9vdCwgcHJlZml4KSB7CisgICAgdmFyIHRtcGwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29sbGVjdGlvbi10ZW1wbGF0ZScpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuaW1wb3J0Tm9kZSh0bXBsLmNvbnRlbnQsIHRydWUpKTsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHJvb3QuY2hpbGROb2Rlcy5sZW5ndGg7ICsraSkgeworCXZhciBlbCA9IHJvb3Qu
Y2hpbGROb2Rlc1tpXTsKKwlpZiAoZWwubm9kZVR5cGUgIT0gMSkKKwkgICAgY29udGludWU7CisJ
ZWwuaWQgPSBwcmVmaXggKyBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CisgICAgfQorfQorCisv
LyBDb25zdHJ1Y3Qgc3VidHJlZSB3aXRoICdkb2MtKicgaWRzLgordmFyIGRvYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdkb2MnKTsKK2ZpbGxUZW1wbGF0ZShkb2MsICdkb2MtJyk7CisKKy8v
IENvbnN0cnVjdCBzaGFkb3cgc3VidHJlZSB3aXRoICdzaGFkb3ctKicgaWRzLgordmFyIGhvc3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdC1vcGVuJyk7Cit2YXIgc2hhZG93ID0gaG9z
dC5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30pOworZmlsbFRlbXBsYXRlKHNoYWRvdywgJ3No
YWRvdy1vcGVuLScpOworCitob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QtY2xv
c2VkJyk7CitzaGFkb3cgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK2Zp
bGxUZW1wbGF0ZShzaGFkb3csICdzaGFkb3ctY2xvc2VkLScpOworCitmdW5jdGlvbiB0ZXN0Q29s
bGVjdGlvbihjb2xsZWN0aW9uKSB7CisgICAgdmFyIGVsZW1lbnRzID0gZG9jdW1lbnRbY29sbGVj
dGlvbl07CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihlbGVtZW50cy5sZW5ndGgsIDAsICdkb2N1
bWVudC4nICsgY29sbGVjdGlvbiArICcgc2hvdWxkIGhhdmUgYXQgbGVhc3QgMSBlbGVtZW50Licp
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgaWYgKGVsZW1lbnRzW2ldLmlkKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGVsZW1l
bnRzW2ldLmlkLmluZGV4T2YoJ3NoYWRvdy0nKSwgLTEsICdkb2N1bWVudC4nICsgY29sbGVjdGlv
biArICcgc2hvdWxkIG5vdCBjb250YWluIGVsZW1lbnRzIGluIHNoYWRvdyB0cmVlLicpOworICAg
ICAgICB9CisgICAgfQorfQorCit2YXIgdGVzdFBhcmFtcyA9IFsKKyAgICBbJ2RvY3VtZW50LnNj
cmlwdHMgc2hvdWxkIG5vdCBjb250YWluIHNoYWRvdyBub2RlcycsICdzY3JpcHRzJ10sCisgICAg
Wydkb2N1bWVudC5hbGwgc2hvdWxkIG5vdCBjb250YWluIHNoYWRvdyBub2RlcycsICdhbGwnXSwK
KyAgICBbJ2RvY3VtZW50LmZvcm1zIHNob3VsZCBub3QgY29udGFpbiBzaGFkb3cgbm9kZXMnLCAn
Zm9ybXMnXSwKKyAgICBbJ2RvY3VtZW50LmltYWdlcyBzaG91bGQgbm90IGNvbnRhaW4gc2hhZG93
IG5vZGVzJywgJ2ltYWdlcyddLAorICAgIFsnZG9jdW1lbnQubGlua3Mgc2hvdWxkIG5vdCBjb250
YWluIHNoYWRvdyBub2RlcycsICdsaW5rcyddLAorICAgIFsnZG9jdW1lbnQuYW5jaG9ycyBzaG91
bGQgbm90IGNvbnRhaW4gc2hhZG93IG5vZGVzJywgJ2FuY2hvcnMnXSwKKyAgICBbJ2RvY3VtZW50
LmVtYmVkcyBzaG91bGQgbm90IGNvbnRhaW4gc2hhZG93IG5vZGVzJywgJ2VtYmVkcyddLAorICAg
IFsnZG9jdW1lbnQucGx1Z2lucyBzaG91bGQgbm90IGNvbnRhaW4gc2hhZG93IG5vZGVzJywgJ3Bs
dWdpbnMnXSwKKyAgICBbJ2RvY3VtZW50LmFwcGxldHMgc2hvdWxkIG5vdCBjb250YWluIHNoYWRv
dyBub2RlcycsICdhcHBsZXRzJ11dOworCitnZW5lcmF0ZV90ZXN0cyh0ZXN0Q29sbGVjdGlvbiwg
dGVzdFBhcmFtcyk7CisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2hhZG93LWRvbS9sZWFrdGVzdHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE5Nzdm
MjE2MWRlMzUwMjhkOTZlOTdkZWEyZmQ5YTI4M2NiZWVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9sZWFr
dGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgVzNDIENTUyBvciBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0
aHViLmNvbS93M2MvY3Nzd2ctdGVzdAorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vbGVha3Rlc3RzL2dldC1lbGVtZW50
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFk
b3ctZG9tL2xlYWt0ZXN0cy9odG1sLWNvbGxlY3Rpb24uaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9sZWFrdGVzdHMvd2luZG93LWZy
YW1lcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vbGVha3Rlc3RzL3dpbmRvdy1mcmFtZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9t
L2xlYWt0ZXN0cy93aW5kb3ctZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDYwZTI0
YTE1ZDdiYTAxYzQ0YzYwZjY5MDk2ZjhkNDU0ZjgwZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0
ZXN0cy93aW5kb3ctZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyB3
aW5kb3cuZnJhbWVzIHNob3VsZCBub3QgbGVhayBmcmFtZXMgaW4gU2hhZG93IERPTS4gCisKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
aGFkb3ctZG9tL2xlYWt0ZXN0cy93aW5kb3ctZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vbGVha3Rlc3RzL3dpbmRvdy1m
cmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDNiYWRlN2JhYWY5MDM2MTQ5NzYxOTc1MTczMGVhNjQw
MDcwN2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2xlYWt0ZXN0cy93aW5kb3ctZnJhbWVzLmh0bWwKQEAg
LTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFt
ZT0nYXV0aG9yJyB0aXRsZT0nR29vZ2xlJyBocmVmPSdodHRwOi8vd3d3Lmdvb2dsZS5jb20nPgor
PG1ldGEgbmFtZT0nYXNzZXJ0JyBjb250ZW50PSdTaGFkb3cgRE9NIHNob3VsZCBub3QgbGVhayB2
aWEgd2luZG93LmZyYW1lcy4nPgorPGxpbmsgcmVsPSdoZWxwJyBocmVmPSdodHRwczovL3czYy5n
aXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL3NoYWRvdy8nPgorPHNjcmlwdCBzcmM9Jy4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0nLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0nbG9nJz48L2Rpdj4KKzxpZnJhbWUgc3JjPSdh
Ym91dDpibGFuaycgbmFtZT0nbWFpbkZyYW1lMSc+PC9pZnJhbWU+Cis8ZGl2IGlkPSdob3N0LW9w
ZW4nPjwvZGl2PgorPGRpdiBpZD0naG9zdC1jbG9zZWQnPjwvZGl2PgorPC9ib2R5PgorPHNjcmlw
dD4KKyd1c2Ugc3RyaWN0JzsKKwordmFyIGhvc3Rfb3BlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdob3N0LW9wZW4nKTsKK3ZhciByb290X29wZW4gPSBob3N0X29wZW4uYXR0YWNoU2hhZG93
KHttb2RlOiAnb3Blbid9KTsKK3Jvb3Rfb3Blbi5pbm5lckhUTUwgPSAnPGlmcmFtZSBzcmM9ImFi
b3V0OmJsYW5rIiBuYW1lPSJzaGFkb3dGcmFtZTEiPjwvaWZyYW1lPic7CisKK3ZhciBob3N0X2Ns
b3NlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0LWNsb3NlZCcpOwordmFyIHJvb3Rf
Y2xvc2VkID0gaG9zdF9jbG9zZWQuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworcm9v
dF9jbG9zZWQuaW5uZXJIVE1MID0gJzxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgbmFtZT0ic2hh
ZG93RnJhbWUyIj48L2lmcmFtZT4nOworCit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X2VxdWFscyh3
aW5kb3cuZnJhbWVzLmxlbmd0aCwgMSwgJ3dpbmRvdy5mcmFtZXMgc2hvdWxkIHJldHVybiBvbmx5
IGZyYW1lcyBpbiBkb2N1bWVudC4nKTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3cuZnJhbWVzWzBd
Lm5hbWUsICdtYWluRnJhbWUxJywgJ3dpbmRvdy5mcmFtZXNbMF0gc2hvdWxkIGJlIG1haW5GcmFt
ZTEuJyk7CisgIGFzc2VydF9lcXVhbHMod2luZG93LmZyYW1lc1snbWFpbkZyYW1lMSddLCB3aW5k
b3cuZnJhbWVzWzBdLCAnd2luZG93LmZyYW1lc1tcJ21haW5GcmFtZTFcJ10gc2hvdWxkIGJlIGVx
dWFsIHRvIG1haW5GcmFtZTEuJyk7CisgIGFzc2VydF9lcXVhbHMod2luZG93LmZyYW1lc1snc2hh
ZG93RnJhbWUxJ10sIHVuZGVmaW5lZCwgJ3NoYWRvd0ZyYW1lMSBzaG91bGQgbm90IGxlYWsuJyk7
CisgIGFzc2VydF9lcXVhbHMod2luZG93LmZyYW1lc1snc2hhZG93RnJhbWUyJ10sIHVuZGVmaW5l
ZCwgJ3NoYWRvd0ZyYW1lMiBzaG91bGQgbm90IGxlYWsuJyk7CisKK30sICd3aW5kb3cuZnJhbWVz
IHNob3VsZCBub3QgbGVhayBmcmFtZXMgaW4gU2hhZG93IERPTS4nKTsKKzwvc2NyaXB0PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zaGFkb3ctZG9tL3Jlc291cmNlcy9Eb2N1bWVudC1wcm90b3R5cGUtY3VycmVudFNjcmlw
dC1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NoYWRvdy1kb20vcmVzb3VyY2VzL0RvY3VtZW50LXByb3RvdHlwZS1jdXJyZW50U2NyaXB0LWhl
bHBlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjU2OTNjZGI5Y2U1YTAzMGIxMDZhM2IwNjFlMzY2NWYwMmMy
ZDYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Jlc291cmNlcy9Eb2N1bWVudC1wcm90b3R5cGUtY3VycmVu
dFNjcmlwdC1oZWxwZXIuanMKQEAgLTAsMCArMSBAQAorZXhlY3V0ZUV4dGVybmFsU2NyaXB0KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NoYWRvdy1kb20vcmVzb3VyY2VzL2V2ZW50LXBhdGgtdGVzdC1oZWxwZXJzLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Jlc291cmNl
cy9ldmVudC1wYXRoLXRlc3QtaGVscGVycy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTFiY2QwODIzMzBkYzdi
NzAzNDllOWEzZDcwYTA1NmEyOWQ2YWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Jlc291cmNlcy9ldmVu
dC1wYXRoLXRlc3QtaGVscGVycy5qcwpAQCAtMCwwICsxLDkzIEBACisKK2Z1bmN0aW9uIGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgdGFyZ2V0LCBldmVudCkgeworICAgIHZhciBldmVudFBh
dGggPSBbXTsKKyAgICB2YXIgcmVsYXRlZFRhcmdldHMgPSBbXTsKKyAgICB2YXIgcGF0aEF0VGFy
Z2V0cyA9IFtdOworCisgICAgdmFyIGF0dGFjaGVkTm9kZXMgPSBbXTsKKyAgICBmb3IgKHZhciBu
b2RlS2V5IGluIHNoYWRvdykgeworICAgICAgICB2YXIgc3RhcnRpbmdOb2RlID0gc2hhZG93W25v
ZGVLZXldOworICAgICAgICBmb3IgKHZhciBub2RlID0gc3RhcnRpbmdOb2RlOyBub2RlOyBub2Rl
ID0gbm9kZS5wYXJlbnROb2RlKSB7CisgICAgICAgICAgICBpZiAoYXR0YWNoZWROb2Rlcy5pbmRl
eE9mKG5vZGUpID49IDApCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBh
dHRhY2hlZE5vZGVzLnB1c2gobm9kZSk7CisgICAgICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVu
ZXIoZXZlbnQudHlwZSwgKGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICAgICAgICAgIGV2ZW50
UGF0aC5wdXNoKHRoaXMubGFiZWwpOworICAgICAgICAgICAgICAgIHJlbGF0ZWRUYXJnZXRzLnB1
c2goZXZlbnQucmVsYXRlZFRhcmdldCA/IGV2ZW50LnJlbGF0ZWRUYXJnZXQubGFiZWwgOiBudWxs
KTsKKworICAgICAgICAgICAgICAgIGlmICghZXZlbnQuY29tcG9zZWRQYXRoKSAvLyBEb24ndCBm
YWlsIGFsbCB0ZXN0cyBqdXN0IGZvciB0aGUgbGFjayBvZiBjb21wb3NlZFBhdGguCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIHBhdGhBdFRhcmdldHMucHVz
aChldmVudC5jb21wb3NlZFBhdGgoKS5tYXAoZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bGFiZWw7IH0pKTsKKyAgICAgICAgICAgIH0pLmJpbmQobm9kZSkpOworICAgICAgICB9CisgICAg
fQorCisgICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgcmV0dXJuIHtldmVu
dFBhdGg6IGV2ZW50UGF0aCwgcmVsYXRlZFRhcmdldHM6IHJlbGF0ZWRUYXJnZXRzLCBwYXRoQXRU
YXJnZXRzOiBwYXRoQXRUYXJnZXRzfTsKK30KKworLyoKKy1TUjogU2hhZG93Um9vdCAgLVM6IFNs
b3QKK0EgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBLVNSCisrIEIgLS0tLS0tLS0t
LS0tIEItU1IgICAgICAgICAgICAgKyBBMSAtLS0gQTEtU1IKKyAgKyBDICAgICAgICAgICAgKyBC
MSAtLS0gQjEtU1IgICArIEEyLVMgICArIEExYQorICArIEQgLS0tIEQtU1IgICAgICsgQjFhICAr
IEIxYiAtLS0gQjFiLVNSCisgICAgICAgICAgKyBEMSAgICAgICAgICAgICsgQjFjLVMgICArIEIx
YjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQjFiMgorKi8KK2Z1bmN0
aW9uIGNyZWF0ZVRlc3RUcmVlKG1vZGUpIHsKKyAgICB2YXIgbmFtZWROb2RlcyA9IHt9OworCisg
ICAgZnVuY3Rpb24gZWxlbWVudChuYW1lKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudChuYW1lLmluZGV4T2YoJy1TJykgPiAwID8gJ3Nsb3QnIDogJ2Rpdicp
OworICAgICAgICBlbGVtZW50LmxhYmVsID0gbmFtZTsKKyAgICAgICAgbmFtZWROb2Rlc1tuYW1l
XSA9IGVsZW1lbnQ7CisgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgaXRlbSA9IGFyZ3VtZW50c1tpXTsKKyAgICAgICAg
ICAgIGlmICh0eXBlb2YoaXRlbSkgPT0gJ2Z1bmN0aW9uJykKKyAgICAgICAgICAgICAgICBpdGVt
KGVsZW1lbnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBw
ZW5kQ2hpbGQoaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc2hhZG93KG5hbWUpIHsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0g
W107CisgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKQor
ICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChhcmd1bWVudHNbaV0pOworICAgICAgICByZXR1cm4g
ZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gZWxlbWVu
dC5hdHRhY2hTaGFkb3coe21vZGU6IG1vZGV9KTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QubGFi
ZWwgPSBuYW1lOworICAgICAgICAgICAgbmFtZWROb2Rlc1tuYW1lXSA9IHNoYWRvd1Jvb3Q7Cisg
ICAgICAgICAgICBmb3IgKHZhciBjaGlsZCBvZiBjaGlsZHJlbikKKyAgICAgICAgICAgICAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZh
ciBob3N0ID0gZWxlbWVudCgnQScsCisgICAgICAgIHNoYWRvdygnQS1TUicsCisgICAgICAgICAg
ICBlbGVtZW50KCdBMScsCisgICAgICAgICAgICAgICAgc2hhZG93KCdBMS1TUicsCisgICAgICAg
ICAgICAgICAgICAgIGVsZW1lbnQoJ0ExYScpKSksCisgICAgICAgICAgICBlbGVtZW50KCdBMi1T
JykKKyAgICAgICAgKSwKKyAgICAgICAgZWxlbWVudCgnQicsCisgICAgICAgICAgICBzaGFkb3co
J0ItU1InLAorICAgICAgICAgICAgICAgIGVsZW1lbnQoJ0IxJywKKyAgICAgICAgICAgICAgICAg
ICAgc2hhZG93KCdCMS1TUicsCisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCdCMWIn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvdygnQjFiLVNSJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnQjFiMScpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50KCdCMWIyJykpKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQoJ0IxYy1TJykpLAorICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCdCMWEn
KSkpLAorICAgICAgICAgICAgZWxlbWVudCgnQycpLAorICAgICAgICAgICAgZWxlbWVudCgnRCcs
CisgICAgICAgICAgICAgICAgc2hhZG93KCdELVNSJywKKyAgICAgICAgICAgICAgICAgICAgZWxl
bWVudCgnRDEnKSkpKSk7CisKKyAgICByZXR1cm4gbmFtZWROb2RlczsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9y
ZXNvdXJjZXMvc2hhZG93LWRvbS11dGlscy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9yZXNvdXJjZXMvc2hhZG93LWRvbS11dGlscy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wN2RiMzQzMzY1ZWFiZTJhOThiOGQ4OGI5NTJjYmEwY2ZlYzkwMjgxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zaGFkb3ctZG9tL3Jlc291cmNlcy9zaGFkb3ctZG9tLXV0aWxzLmpzCkBAIC0wLDAgKzEs
MTU0IEBACisvLyBDb3B5cmlnaHQgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorCisvKgorRGlzdHJpYnV0ZWQgdW5kZXIgYm90aCB0aGUgVzNDIFRlc3QgU3VpdGUgTGljZW5z
ZSBbMV0gYW5kIHRoZSBXM0MKKzMtY2xhdXNlIEJTRCBMaWNlbnNlIFsyXS4gVG8gY29udHJpYnV0
ZSB0byBhIFczQyBUZXN0IFN1aXRlLCBzZWUgdGhlCitwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KKworWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
OC8wNC10ZXN0c3VpdGUtbGljZW5zZQorWzJdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwOC8wMy1ic2QtbGljZW5zZQorWzNdIGh0dHA6Ly93d3cudzMub3JnLzIwMDQvMTAv
MjctdGVzdGNhc2VzCisqLworCisidXNlIHN0cmljdCI7CisKKy8vIGN1c3RvbSBlbGVtZW50IGlz
IGFsc28gYWxsb3dlZC4KK3ZhciBBVFRBQ0hTSEFET1dfU0FGRUxJU1RFRF9FTEVNRU5UUyA9IFsK
KyAgICAnYXJ0aWNsZScsCisgICAgJ2FzaWRlJywKKyAgICAnYmxvY2txdW90ZScsCisgICAgJ2Jv
ZHknLAorICAgICdkaXYnLAorICAgICdmb290ZXInLAorICAgICdoMScsCisgICAgJ2gyJywKKyAg
ICAnaDMnLAorICAgICdoNCcsCisgICAgJ2g1JywKKyAgICAnaDYnLAorICAgICdoZWFkZXInLAor
ICAgICduYXYnLAorICAgICdwJywKKyAgICAnc2VjdGlvbicsCisgICAgJ3NwYW4nCitdOworCit2
YXIgSFRNTDVfRUxFTUVOVF9OQU1FUyA9IFsKKyAgICAnYScsICdhYmJyJywgJ2FkZHJlc3MnLCAn
YXJlYScsICdhcnRpY2xlJywgJ2FzaWRlJywgJ2F1ZGlvJywKKyAgICAnYicsICdiYXNlJywgJ2Jk
aScsICdiZG8nLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsCisgICAgJ2Nh
bnZhcycsICdjYXB0aW9uJywgJ2NpdGUnLCAnY29kZScsICdjb2wnLCAnY29sZ3JvdXAnLCAnY29t
bWFuZCcsCisgICAgJ2RhdGFsaXN0JywgJ2RkJywgJ2RlbCcsICdkZXRhaWxzJywgJ2RmbicsICdk
aWFsb2cnLCAnZGl2JywgJ2RsJywgJ2R0JywKKyAgICAnZW0nLCAnZW1iZWQnLAorICAgICdmaWVs
ZHNldCcsICdmaWdjYXB0aW9uJywgJ2ZpZ3VyZScsICdmb290ZXInLCAnZm9ybScsCisgICAgJ2gx
JywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWQnLCAnaGVhZGVyJywgJ2hncm91
cCcsICdocicsCisgICAgJ2h0bWwnLAorICAgICdpJywgJ2lmcmFtZScsICdpbWcnLCAnaW5wdXQn
LCAnaW5zJywgJ2tiZCcsICdrZXlnZW4nLAorICAgICdsYWJlbCcsICdsZWdlbmQnLCAnbGknLCAn
bGluaycsCisgICAgJ21hcCcsICdtYXJrJywgJ21lbnUnLCAnbWV0YScsICdtZXRlcicsCisgICAg
J25hdicsICdub3NjcmlwdCcsCisgICAgJ29iamVjdCcsICdvbCcsICdvcHRncm91cCcsICdvcHRp
b24nLCAnb3V0cHV0JywKKyAgICAncCcsICdwYXJhbScsICdwcmUnLCAncHJvZ3Jlc3MnLAorICAg
ICdxJywKKyAgICAncnAnLCAncnQnLCAncnVieScsCisgICAgJ3MnLCAnc2FtcCcsICdzY3JpcHQn
LCAnc2VjdGlvbicsICdzZWxlY3QnLCAnc21hbGwnLCAnc291cmNlJywgJ3NwYW4nLAorICAgICdz
dHJvbmcnLCAnc3R5bGUnLCAnc3ViJywKKyAgICAndGFibGUnLCAndGJvZHknLCAndGQnLCAndGV4
dGFyZWEnLCAndGZvb3QnLCAndGgnLCAndGhlYWQnLCAndGltZScsCisgICAgJ3RpdGxlJywgJ3Ry
JywgJ3RyYWNrJywKKyAgICAndScsICd1bCcsCisgICAgJ3ZhcicsICd2aWRlbycsCisgICAgJ3di
cicKK107CisKK2Z1bmN0aW9uIHVuaXQoZikgeworICAgIHJldHVybiBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHZhciBjdHggPSBuZXdDb250ZXh0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICBmKGN0eCk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBjbGVhbkNvbnRleHQo
Y3R4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gc3RlcF91bml0KGYsIGN0eCwg
dCkgeworICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBkb25lID0gZmFsc2U7
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmKCk7CisgICAgICAgICAgICBkb25lID0gdHJ1
ZTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjbGVhbkNvbnRl
eHQoY3R4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0X25vZGVsaXN0
X2NvbnRlbnRzX2VxdWFsX25vb3JkZXIoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAg
IGFzc2VydF9lcXVhbHMoYWN0dWFsLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCBtZXNzYWdlKTsK
KyAgICB2YXIgdXNlZCA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgdXNlZC5wdXNoKGZhbHNlKTsKKyAgICB9CisgICAgZm9yIChp
ID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBmb3VuZCA9IGZh
bHNlOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFjdHVhbC5sZW5ndGg7IGorKykgewor
ICAgICAgICAgICAgaWYgKHVzZWRbal0gPT0gZmFsc2UgJiYgZXhwZWN0ZWRbaV0gPT0gYWN0dWFs
W2pdKSB7CisgICAgICAgICAgICAgICAgdXNlZFtqXSA9IHRydWU7CisgICAgICAgICAgICAgICAg
Zm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNo
ZWQobWVzc2FnZSArICIuIEZhaWwgcmVhc29uOiAgZWxlbWVudCBub3QgZm91bmQ6ICIgKyBleHBl
Y3RlZFtpXSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vRXhhbXBsZSB0YWtlbiBmcm9tIGh0
dHA6Ly93d3cudzMub3JnL1RSL3NoYWRvdy1kb20vI2V2ZW50LXJldGFyZ2V0aW5nLWV4YW1wbGUK
K2Z1bmN0aW9uIGNyZWF0ZVRlc3RNZWRpYVBsYXllcihkKSB7CisgICAgZC5ib2R5LmlubmVySFRN
TCA9ICcnICsKKyAgICAnPGRpdiBpZD0icGxheWVyIj4nICsKKyAgICAgICAgJzxpbnB1dCB0eXBl
PSJjaGVja2JveCIgaWQ9Im91dHNpZGUtY29udHJvbCI+JyArCisgICAgICAgICc8ZGl2IGlkPSJw
bGF5ZXItc2hhZG93LWhvc3QiPicgKworICAgICAgICAnPC9kaXY+JyArCisgICAgJzwvZGl2Pic7
CisKKyAgICB2YXIgcGxheWVyU2hhZG93Um9vdCA9IGQucXVlcnlTZWxlY3RvcignI3BsYXllci1z
aGFkb3ctaG9zdCcpLmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7CisgICAgcGxheWVyU2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnJyArCisgICAgICAgICc8ZGl2IGlkPSJjb250cm9scyI+JyAr
CisgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0icGxheS1idXR0b24iPlBMQVk8L2J1dHRvbj4n
ICsKKyAgICAgICAgICAgICc8ZGl2IHRhYmluZGV4PSIwIiBpZD0idGltZWxpbmUiPicgKworICAg
ICAgICAgICAgICAgICc8ZGl2IGlkPSJ0aW1lbGluZS1zaGFkb3ctaG9zdCI+JyArCisgICAgICAg
ICAgICAgICAgJzwvZGl2PicgKworICAgICAgICAgICAgJzwvZGl2PicgKworICAgICAgICAgICAg
JzxkaXYgY2xhc3M9InZvbHVtZS1zbGlkZXItY29udGFpbmVyIiBpZD0idm9sdW1lLXNsaWRlci1j
b250YWluZXIiPicgKworICAgICAgICAgICAgICAgICc8ZGl2IHRhYmluZGV4PSIwIiBjbGFzcz0i
dm9sdW1lLXNsaWRlciIgaWQ9InZvbHVtZS1zbGlkZXIiPicgKworICAgICAgICAgICAgICAgICAg
ICAnPGRpdiBpZD0idm9sdW1lLXNoYWRvdy1ob3N0Ij4nICsKKyAgICAgICAgICAgICAgICAgICAg
JzwvZGl2PicgKworICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKKyAgICAgICAgICAgICc8L2Rp
dj4nICsKKyAgICAgICAgJzwvZGl2Pic7CisKKyAgICB2YXIgdGltZUxpbmVTaGFkb3dSb290ID0g
cGxheWVyU2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjdGltZWxpbmUtc2hhZG93LWhvc3QnKS5h
dHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30pOworICAgIHRpbWVMaW5lU2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAgJzxkaXYgY2xhc3M9InNsaWRlci10aHVtYiIgaWQ9InRpbWVsaW5lLXNsaWRlci10
aHVtYiI+PC9kaXY+JzsKKworICAgIHZhciB2b2x1bWVTaGFkb3dSb290ID0gcGxheWVyU2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCcjdm9sdW1lLXNoYWRvdy1ob3N0JykuYXR0YWNoU2hhZG93KHtt
b2RlOiAnb3Blbid9KTsKKyAgICB2b2x1bWVTaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2IGNs
YXNzPSJzbGlkZXItdGh1bWIiIGlkPSJ2b2x1bWUtc2xpZGVyLXRodW1iIj48L2Rpdj4nOworCisg
ICAgcmV0dXJuIHsKKyAgICAgICAgJ3BsYXllclNoYWRvd1Jvb3QnOiBwbGF5ZXJTaGFkb3dSb290
LAorICAgICAgICAndGltZUxpbmVTaGFkb3dSb290JzogdGltZUxpbmVTaGFkb3dSb290LAorICAg
ICAgICAndm9sdW1lU2hhZG93Um9vdCc6IHZvbHVtZVNoYWRvd1Jvb3QKKyAgICAgICAgfTsKK30K
KworLy9GSVhNRSBUaGlzIGNhbGwgb2YgaW5pdEtleWJvYXJkRXZlbnQgd29ya3MgZm9yIFdlYktp
dC1vbmx5LgorLy9TZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NzM1CisvLyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzY4
LiBBZGQgY2hlY2sgZm9yIGJyb3dzZXIgaGVyZQorZnVuY3Rpb24gZmlyZUtleWJvYXJkRXZlbnQo
ZG9jLCBlbGVtZW50LCBrZXkpIHsKKyAgICB2YXIgZXZlbnQgPSBkb2MuY3JlYXRlRXZlbnQoJ0tl
eWJvYXJkRXZlbnQnKTsKKyAgICBldmVudC5pbml0S2V5Ym9hcmRFdmVudCgia2V5ZG93biIsIHRy
dWUsIHRydWUsIGRvYy5kZWZhdWx0Vmlldywga2V5LCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9y
ZXNvdXJjZXMvc2hhZG93LWRvbS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2hhZG93LWRvbS9yZXNvdXJjZXMvc2hhZG93LWRvbS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZTU1Njg0ZGFjMWM0ZmJlMTA2NGM2ZDVkOGI4ZDdlZTg2MjI0OTIxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ct
ZG9tL3Jlc291cmNlcy9zaGFkb3ctZG9tLmpzCkBAIC0wLDAgKzEsMTMwIEBACitmdW5jdGlvbiBy
ZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2Rlcyhub2RlKQoreworICBmb3IgKHZhciBpID0gMDsg
aSA8IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykgeworICAgIHZhciBjaGlsZCA9IG5vZGUu
Y2hpbGROb2Rlc1tpXTsKKyAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RF
ICYmIGNoaWxkLm5vZGVWYWx1ZS50cmltKCkubGVuZ3RoID09IDApIHsKKyAgICAgIG5vZGUucmVt
b3ZlQ2hpbGQoY2hpbGQpOworICAgICAgaS0tOworICAgIH0gZWxzZSBpZiAoY2hpbGQubm9kZVR5
cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFIHx8IGNoaWxkLm5vZGVUeXBlID09PSBOb2RlLkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREUpIHsKKyAgICAgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVz
KGNoaWxkKTsKKyAgICB9CisgIH0KKyAgaWYgKG5vZGUuc2hhZG93Um9vdCkgeworICAgIHJlbW92
ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG5vZGUuc2hhZG93Um9vdCk7CisgIH0KK30KKworZnVu
Y3Rpb24gY3JlYXRlVGVzdFRyZWUobm9kZSkgeworCisgIGxldCBpZHMgPSB7fTsKKworICBmdW5j
dGlvbiBhdHRhY2hTaGFkb3dGcm9tVGVtcGxhdGUodGVtcGxhdGUpIHsKKyAgICBsZXQgcGFyZW50
ID0gdGVtcGxhdGUucGFyZW50Tm9kZTsKKyAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGVtcGxhdGUp
OworICAgIGxldCBzaGFkb3dSb290OworICAgIGlmICh0ZW1wbGF0ZS5nZXRBdHRyaWJ1dGUoJ2Rh
dGEtbW9kZScpID09PSAndjAnKSB7CisgICAgICAvLyBGb3IgbGVnYWN5IFNoYWRvdyBET00KKyAg
ICAgIHNoYWRvd1Jvb3QgPSBwYXJlbnQuY3JlYXRlU2hhZG93Um9vdCgpOworICAgIH0gZWxzZSB7
CisgICAgICBzaGFkb3dSb290ID0gcGFyZW50LmF0dGFjaFNoYWRvdyh7bW9kZTogdGVtcGxhdGUu
Z2V0QXR0cmlidXRlKCdkYXRhLW1vZGUnKX0pOworICAgIH0KKyAgICBsZXQgaWQgPSB0ZW1wbGF0
ZS5pZDsKKyAgICBpZiAoaWQpIHsKKyAgICAgIHNoYWRvd1Jvb3QuaWQgPSBpZDsKKyAgICAgIGlk
c1tpZF0gPSBzaGFkb3dSb290OworICAgIH0KKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmltcG9ydE5vZGUodGVtcGxhdGUuY29udGVudCwgdHJ1ZSkpOworICAgIHJldHVybiBz
aGFkb3dSb290OworICB9CisKKyAgZnVuY3Rpb24gd2Fsayhyb290KSB7CisgICAgaWYgKHJvb3Qu
aWQpIHsKKyAgICAgIGlkc1tyb290LmlkXSA9IHJvb3Q7CisgICAgfQorICAgIGZvciAobGV0IGUg
b2YgQXJyYXkuZnJvbShyb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZF0nKSkpIHsKKyAgICAgIGlk
c1tlLmlkXSA9IGU7CisgICAgfQorICAgIGZvciAobGV0IGUgb2YgQXJyYXkuZnJvbShyb290LnF1
ZXJ5U2VsZWN0b3JBbGwoJ3RlbXBsYXRlJykpKSB7CisgICAgICB3YWxrKGF0dGFjaFNoYWRvd0Zy
b21UZW1wbGF0ZShlKSk7CisgICAgfQorICB9CisKKyAgd2Fsayhub2RlLmNsb25lTm9kZSh0cnVl
KSk7CisgIHJldHVybiBpZHM7Cit9CisKK2Z1bmN0aW9uIGRpc3BhdGNoRXZlbnRXaXRoTG9nKG5v
ZGVzLCB0YXJnZXQsIGV2ZW50KSB7CisKKyAgZnVuY3Rpb24gbGFiZWxGb3IoZSkgeworICAgIHJl
dHVybiBlLmlkIHx8IGUudGFnTmFtZTsKKyAgfQorCisgIGxldCBsb2cgPSBbXTsKKyAgbGV0IGF0
dGFjaGVkTm9kZXMgPSBbXTsKKyAgZm9yIChsZXQgbGFiZWwgaW4gbm9kZXMpIHsKKyAgICBsZXQg
c3RhcnRpbmdOb2RlID0gbm9kZXNbbGFiZWxdOworICAgIGZvciAobGV0IG5vZGUgPSBzdGFydGlu
Z05vZGU7IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudE5vZGUpIHsKKyAgICAgIGlmIChhdHRhY2hl
ZE5vZGVzLmluZGV4T2Yobm9kZSkgPj0gMCkKKyAgICAgICAgY29udGludWU7CisgICAgICBsZXQg
aWQgPSBub2RlLmlkOworICAgICAgaWYgKCFpZCkKKyAgICAgICAgY29udGludWU7CisgICAgICBh
dHRhY2hlZE5vZGVzLnB1c2gobm9kZSk7CisgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZl
bnQudHlwZSwgKGUpID0+IHsKKyAgICAgICAgLy8gUmVjb3JkIFtjdXJyZW50VGFyZ2V0LCB0YXJn
ZXQsIHJlbGF0ZWRUYXJnZXQsIGNvbXBvc2VkUGF0aCgpXQorICAgICAgICBsb2cucHVzaChbaWQs
CisgICAgICAgICAgICAgICAgICBsYWJlbEZvcihlLnRhcmdldCksCisgICAgICAgICAgICAgICAg
ICBlLnJlbGF0ZWRUYXJnZXQgPyBsYWJlbEZvcihlLnJlbGF0ZWRUYXJnZXQpIDogbnVsbCwKKyAg
ICAgICAgICAgICAgICAgIGUuY29tcG9zZWRQYXRoKCkubWFwKChuKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBsYWJlbEZvcihuKTsKKyAgICAgICAgICAgICAgICAgIH0pXSk7Cisg
ICAgICB9KTsKKyAgICB9CisgIH0KKyAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICBy
ZXR1cm4gbG9nOworfQorCisvLyBUT0RPKGhheWF0byk6IE1lcmdlIHRoaXMgaW50byBkaXNwYXRj
aEV2ZW50V2l0aExvZworZnVuY3Rpb24gZGlzcGF0Y2hVQUV2ZW50V2l0aExvZyhub2RlcywgdGFy
Z2V0LCBldmVudFR5cGUsIGNhbGxiYWNrKSB7CisKKyAgZnVuY3Rpb24gbGFiZWxGb3IoZSkgewor
ICAgIHJldHVybiBlLmlkIHx8IGUudGFnTmFtZTsKKyAgfQorCisgIGxldCBsb2cgPSBbXTsKKyAg
bGV0IGF0dGFjaGVkTm9kZXMgPSBbXTsKKyAgZm9yIChsZXQgbGFiZWwgaW4gbm9kZXMpIHsKKyAg
ICBsZXQgc3RhcnRpbmdOb2RlID0gbm9kZXNbbGFiZWxdOworICAgIGZvciAobGV0IG5vZGUgPSBz
dGFydGluZ05vZGU7IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudE5vZGUpIHsKKyAgICAgIGlmIChh
dHRhY2hlZE5vZGVzLmluZGV4T2Yobm9kZSkgPj0gMCkKKyAgICAgICAgY29udGludWU7CisgICAg
ICBsZXQgaWQgPSBub2RlLmlkOworICAgICAgaWYgKCFpZCkKKyAgICAgICAgY29udGludWU7Cisg
ICAgICBhdHRhY2hlZE5vZGVzLnB1c2gobm9kZSk7CisgICAgICBub2RlLmFkZEV2ZW50TGlzdGVu
ZXIoZXZlbnRUeXBlLCAoZSkgPT4geworICAgICAgICAvLyBSZWNvcmQgW2N1cnJlbnRUYXJnZXQs
IHRhcmdldCwgcmVsYXRlZFRhcmdldCwgY29tcG9zZWRQYXRoKCldCisgICAgICAgIGxvZy5wdXNo
KFtpZCwKKyAgICAgICAgICAgICAgICAgIGxhYmVsRm9yKGUudGFyZ2V0KSwKKyAgICAgICAgICAg
ICAgICAgIGUucmVsYXRlZFRhcmdldCA/IGxhYmVsRm9yKGUucmVsYXRlZFRhcmdldCkgOiBudWxs
LAorICAgICAgICAgICAgICAgICAgZS5jb21wb3NlZFBhdGgoKS5tYXAoKG4pID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGxhYmVsRm9yKG4pOworICAgICAgICAgICAgICAgICAgfSld
KTsKKyAgICAgIH0pOworICAgIH0KKyAgfQorICBjYWxsYmFjayh0YXJnZXQpOworICByZXR1cm4g
bG9nOworfQorCisvLyBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0ZXN0aGFybmVzcy5qcyBp
cyBhdmFpbGFibGUuCitmdW5jdGlvbiBhc3NlcnRfZXZlbnRfcGF0aF9lcXVhbHMoYWN0dWFsLCBl
eHBlY3RlZCkgeworICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0
aCk7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgYWN0dWFsLmxlbmd0aDsgKytpKSB7CisgICAgYXNz
ZXJ0X2VxdWFscyhhY3R1YWxbaV1bMF0sIGV4cGVjdGVkW2ldWzBdLCAnY3VycmVudFRhcmdldCBh
dCAnICsgaSArICcgc2hvdWxkIGJlIHNhbWUnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFtp
XVsxXSwgZXhwZWN0ZWRbaV1bMV0sICd0YXJnZXQgYXQgJyArIGkgKyAnIHNob3VsZCBiZSBzYW1l
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWxbaV1bMl0sIGV4cGVjdGVkW2ldWzJdLCAncmVs
YXRlZFRhcmdldCBhdCAnICsgaSArICcgc2hvdWxkIGJlIHNhbWUnKTsKKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGFjdHVhbFtpXVszXSwgZXhwZWN0ZWRbaV1bM10sICdjb21wb3NlZFBhdGggYXQg
JyArIGkgKyAnIHNob3VsZCBiZSBzYW1lJyk7CisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9yZXNvdXJjZXMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NoYWRvdy1kb20vcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMDY4
NzI0YjEwZDgzNDA2ZDc3YmNlNDExNDhlMzY1MDAxZTg4NDEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vcmVz
b3VyY2VzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFczQyBDU1Mgb3IgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vdzNjL2Nzc3dnLXRlc3QKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Jlc291cmNlcy9Eb2N1bWVudC1w
cm90b3R5cGUtY3VycmVudFNjcmlwdC1oZWxwZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vcmVzb3VyY2VzL2V2ZW50LXBhdGgtdGVz
dC1oZWxwZXJzLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zaGFkb3ctZG9tL3Jlc291cmNlcy9zaGFkb3ctZG9tLXV0aWxzLmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Jlc291cmNlcy9zaGFk
b3ctZG9tLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vc2Nyb2xsLXRvLXRoZS1mcmFnbWVudC1pbi1zaGFkb3ctdHJl
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NoYWRvdy1kb20vc2Nyb2xsLXRvLXRoZS1mcmFnbWVudC1pbi1zaGFkb3ctdHJlZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODA2NzQ3ZWYzYTViOTg4MDM0ZWEwYzBkNzY0NTY1MjUzZmQw
ZDM0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zY3JvbGwtdG8tdGhlLWZyYWdtZW50LWluLXNoYWRvdy10
cmVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACisKK1BBU1MgVGhlIHVzZXIgYWdlbnQg
c2Nyb2xsIHRvIHRoZSBmcmFnbWVudCB3aGVuIHRoZXJlIGlzIGFuIGVsZW1lbnQgd2l0aCBhbiBJ
RCBleGFjdGx5IGVxdWFsIHRvIHRoZSBkZWNvZGVkIGZyYWdpZCAKK1BBU1MgVGhlIHVzZXIgYWdl
bnQgc2Nyb2xsIHRvIHRoZSBmcmFnbWVudCB3aGVuIHRoZXJlIGlzIGFuIGFuY2hvciBlbGVtZW50
IHdpdGggYSBuYW1lIGF0dHJpYnV0ZSBleGFjdGx5IGVxdWFsIHRvIHRoZSBkZWNvZGVkIGZyYWdp
ZCAKK1BBU1MgVGhlIHVzZXIgYWdlbnQgc2hvdWxkIG5vdCBzY3JvbGwgdG8gYW4gZWxlbWVudCB3
aXRoIGFuIElEIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGRlY29kZWQgZnJhZ2lkIGluIGFuIG9wZW4g
c2hhZG93IHRyZWUgCitQQVNTIFRoZSB1c2VyIGFnZW50IHNob3VsZCBub3Qgc2Nyb2xsIHRvIGFu
IGVsZW1lbnQgd2l0aCBhbiBJRCBleGFjdGx5IGVxdWFsIHRvIHRoZSBkZWNvZGVkIGZyYWdpZCBp
biBhIGNsb3NlZCBzaGFkb3cgdHJlZSAKK1BBU1MgVGhlIHVzZXIgYWdlbnQgc2hvdWxkIG5vdCBz
Y3JvbGwgdG8gYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCBhIG5hbWUgYXR0cmlidXRlIGV4YWN0bHkg
ZXF1YWwgdG8gdGhlIGRlY29kZWQgZnJhZ2lkIGluIGFuIG9wZW4gc2hhZG93IHRyZWUgCitQQVNT
IFRoZSB1c2VyIGFnZW50IHNob3VsZCBub3Qgc2Nyb2xsIHRvIGFuIGFuY2hvciBlbGVtZW50IHdp
dGggYSBuYW1lIGF0dHJpYnV0ZSBleGFjdGx5IGVxdWFsIHRvIHRoZSBkZWNvZGVkIGZyYWdpZCBp
biBhIGNsb3NlZCBzaGFkb3cgdHJlZSAKK1BBU1MgVGhlIHVzZXIgYWdlbnQgc2hvdWxkIHNjcm9s
bCB0byBhbiBlbGVtZW50IHdpdGggYW4gSUQgZXhhY3RseSBlcXVhbCB0byB0aGUgZGVjb2RlZCBm
cmFnaWQgaW4gdGhlIGRvY3VtZW50IHRyZWUgZXZlbiBpZiB0aGVyZSB3YXMgYW5vdGhlciBlbGVt
ZW50IHdpdGggdGhlIHNhbWUgSUQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHRyZWUgZWFybGllciBp
biB0cmVlIG9yZGVyIAorUEFTUyBUaGUgdXNlciBhZ2VudCBzaG91bGQgc2Nyb2xsIHRvIGFuIGVs
ZW1lbnQgd2l0aCBhbiBJRCBleGFjdGx5IGVxdWFsIHRvIHRoZSBkZWNvZGVkIGZyYWdpZCBpbiB0
aGUgZG9jdW1lbnQgdHJlZSBldmVuIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1lbnQgd2l0aCB0
aGUgc2FtZSBJRCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHRyZWUgZWFybGllciBpbiB0cmVlIG9y
ZGVyIAorUEFTUyBUaGUgdXNlciBhZ2VudCBzaG91bGQgc2Nyb2xsIHRvIGFuIGFuY2hvciBlbGVt
ZW50IHdpdGggYSBuYW1lIGF0dHJpYnV0ZSBleGFjdGx5IGVxdWFsIHRvIHRoZSBkZWNvZGVkIGZy
YWdpZCBpbiB0aGUgZG9jdW1lbnQgdHJlZSBldmVuIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1l
bnQgd2l0aCB0aGUgc2FtZSBJRCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgdHJlZSBlYXJsaWVyIGlu
IHRyZWUgb3JkZXIgCitQQVNTIFRoZSB1c2VyIGFnZW50IHNob3VsZCBzY3JvbGwgdG8gYW4gYW5j
aG9yIGVsZW1lbnQgd2l0aCBhIG5hbWUgYXR0cmlidXRlIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGRl
Y29kZWQgZnJhZ2lkIGluIHRoZSBkb2N1bWVudCB0cmVlIGV2ZW4gaWYgdGhlcmUgd2FzIGFub3Ro
ZXIgZWxlbWVudCB3aXRoIHRoZSBzYW1lIElEIGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgdHJlZSBl
YXJsaWVyIGluIHRyZWUgb3JkZXIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zY3JvbGwtdG8tdGhlLWZyYWdtZW50
LWluLXNoYWRvdy10cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vc2Nyb2xsLXRvLXRoZS1mcmFnbWVudC1pbi1zaGFkb3ctdHJl
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwZTg3MDVhM2I1YzVhZGU0ZmNjZjlhMzI2ZmIxZmZiMDZlZTcy
NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vc2Nyb2xsLXRvLXRoZS1mcmFnbWVudC1pbi1zaGFkb3ctdHJl
ZS5odG1sCkBAIC0wLDAgKzEsMTI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+U2hhZG93IERPTTogVGhlIGluZGljYXRlZCBwYXJ0IG9mIHRoZSBkb2N1bWVudCBz
aG91bGQgbm90IG1hdGNoIGFuIGVsZW1lbnQgaW5zaWRlIGEgc2hhZG93IHRyZWU8L3RpdGxlPgor
PG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5p
d2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkFuIGVsZW1lbnQg
aW5zaWRlIGEgc2hhZG93IHRyZWUgc2hvdWxkIG5vdCBiZSB0aGUgaW5kaWNhdGVkIHBhcnQgb2Yg
dGhlIGRvY3VtZW50IGV2ZW4gaWYgaXRzIElEIGlzIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGRlY29k
ZWQgZnJhZ2lkIG9yIGl0cyBuYW1lIGF0dHJpYnV0ZSBpcyBleGFjdGx5IGVxdWFsIHRvIHRoZSBm
cmFnaWQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS9icm93c2Vycy5odG1sI3Njcm9sbC10by10aGUtZnJhZ21lbnQtaWRlbnRp
ZmllciI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPGRpdiBpZD0idGVzdENvbnRhaW5lciI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgdGVz
dHMgPSBbCisgICAge3Rlc3Q6IGFzeW5jX3Rlc3QoJ1RoZSB1c2VyIGFnZW50IHNjcm9sbCB0byB0
aGUgZnJhZ21lbnQgd2hlbiB0aGVyZSBpcyBhbiBlbGVtZW50IHdpdGggYW4gSUQgZXhhY3RseSBl
cXVhbCB0byB0aGUgZGVjb2RlZCBmcmFnaWQnKSwKKyAgICAgICAgZXhlY3V0ZTogdGVzdFNjcm9s
bGluZ1RvRWxlbWVudEluRG9jdW1lbnRUcmVlLmJpbmQodGhpcywgJ2RpdicpfSwKKyAgICB7dGVz
dDogYXN5bmNfdGVzdCgnVGhlIHVzZXIgYWdlbnQgc2Nyb2xsIHRvIHRoZSBmcmFnbWVudCB3aGVu
IHRoZXJlIGlzIGFuIGFuY2hvciBlbGVtZW50IHdpdGggYSBuYW1lIGF0dHJpYnV0ZSBleGFjdGx5
IGVxdWFsIHRvIHRoZSBkZWNvZGVkIGZyYWdpZCcpLAorICAgICAgICBleGVjdXRlOiB0ZXN0U2Ny
b2xsaW5nVG9FbGVtZW50SW5Eb2N1bWVudFRyZWUuYmluZCh0aGlzLCAnYScpfSwKKworICAgIHt0
ZXN0OiBhc3luY190ZXN0KCdUaGUgdXNlciBhZ2VudCBzaG91bGQgbm90IHNjcm9sbCB0byBhbiBl
bGVtZW50IHdpdGggYW4gSUQgZXhhY3RseSBlcXVhbCB0byB0aGUgZGVjb2RlZCBmcmFnaWQgaW4g
YW4gb3BlbiBzaGFkb3cgdHJlZScpLAorICAgICAgICBleGVjdXRlOiB0ZXN0U2Nyb2xsaW5nVG9F
bGVtZW50SW5TaGFkb3dUcmVlLmJpbmQodGhpcywgJ2RpdicsICdvcGVuJyl9LAorICAgIHt0ZXN0
OiBhc3luY190ZXN0KCdUaGUgdXNlciBhZ2VudCBzaG91bGQgbm90IHNjcm9sbCB0byBhbiBlbGVt
ZW50IHdpdGggYW4gSUQgZXhhY3RseSBlcXVhbCB0byB0aGUgZGVjb2RlZCBmcmFnaWQgaW4gYSBj
bG9zZWQgc2hhZG93IHRyZWUnKSwKKyAgICAgICAgZXhlY3V0ZTogdGVzdFNjcm9sbGluZ1RvRWxl
bWVudEluU2hhZG93VHJlZS5iaW5kKHRoaXMsICdkaXYnLCAnY2xvc2VkJyl9LAorICAgIHt0ZXN0
OiBhc3luY190ZXN0KCdUaGUgdXNlciBhZ2VudCBzaG91bGQgbm90IHNjcm9sbCB0byBhbiBhbmNo
b3IgZWxlbWVudCB3aXRoIGEgbmFtZSBhdHRyaWJ1dGUgZXhhY3RseSBlcXVhbCB0byB0aGUgZGVj
b2RlZCBmcmFnaWQgaW4gYW4gb3BlbiBzaGFkb3cgdHJlZScpLAorICAgICAgICBleGVjdXRlOiB0
ZXN0U2Nyb2xsaW5nVG9FbGVtZW50SW5TaGFkb3dUcmVlLmJpbmQodGhpcywgJ2EnLCAnb3Blbicp
fSwKKyAgICB7dGVzdDogYXN5bmNfdGVzdCgnVGhlIHVzZXIgYWdlbnQgc2hvdWxkIG5vdCBzY3Jv
bGwgdG8gYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCBhIG5hbWUgYXR0cmlidXRlIGV4YWN0bHkgZXF1
YWwgdG8gdGhlIGRlY29kZWQgZnJhZ2lkIGluIGEgY2xvc2VkIHNoYWRvdyB0cmVlJyksCisgICAg
ICAgIGV4ZWN1dGU6IHRlc3RTY3JvbGxpbmdUb0VsZW1lbnRJblNoYWRvd1RyZWUuYmluZCh0aGlz
LCAnYScsICdjbG9zZWQnKX0sCisKKyAgICB7dGVzdDogYXN5bmNfdGVzdCgnVGhlIHVzZXIgYWdl
bnQgc2hvdWxkIHNjcm9sbCB0byBhbiBlbGVtZW50IHdpdGggYW4gSUQgZXhhY3RseSBlcXVhbCB0
byB0aGUgZGVjb2RlZCBmcmFnaWQgaW4gdGhlIGRvY3VtZW50IHRyZWUnCisgICAgICAgICsgJyBl
dmVuIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBJRCBpbnNpZGUg
YW4gb3BlbiBzaGFkb3cgdHJlZSBlYXJsaWVyIGluIHRyZWUgb3JkZXInKSwKKyAgICAgICAgZXhl
Y3V0ZTogdGVzdFNjcm9sbGluZ1RvRWxlbWVudEluRG9jdW1lbnRUcmVlQWZ0ZXJFbGVtZW50SW5T
aGFkb3dUcmVlV2l0aFNhbWVJRC5iaW5kKHRoaXMsICdkaXYnLCAnb3BlbicpfSwKKyAgICB7dGVz
dDogYXN5bmNfdGVzdCgnVGhlIHVzZXIgYWdlbnQgc2hvdWxkIHNjcm9sbCB0byBhbiBlbGVtZW50
IHdpdGggYW4gSUQgZXhhY3RseSBlcXVhbCB0byB0aGUgZGVjb2RlZCBmcmFnaWQgaW4gdGhlIGRv
Y3VtZW50IHRyZWUnCisgICAgICAgICsgJyBldmVuIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1l
bnQgd2l0aCB0aGUgc2FtZSBJRCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHRyZWUgZWFybGllciBp
biB0cmVlIG9yZGVyJyksCisgICAgICAgIGV4ZWN1dGU6IHRlc3RTY3JvbGxpbmdUb0VsZW1lbnRJ
bkRvY3VtZW50VHJlZUFmdGVyRWxlbWVudEluU2hhZG93VHJlZVdpdGhTYW1lSUQuYmluZCh0aGlz
LCAnZGl2JywgJ2Nsb3NlZCcpfSwKKyAgICB7dGVzdDogYXN5bmNfdGVzdCgnVGhlIHVzZXIgYWdl
bnQgc2hvdWxkIHNjcm9sbCB0byBhbiBhbmNob3IgZWxlbWVudCB3aXRoIGEgbmFtZSBhdHRyaWJ1
dGUgZXhhY3RseSBlcXVhbCB0byB0aGUgZGVjb2RlZCBmcmFnaWQgaW4gdGhlIGRvY3VtZW50IHRy
ZWUnCisgICAgICAgICsgJyBldmVuIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1lbnQgd2l0aCB0
aGUgc2FtZSBJRCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgdHJlZSBlYXJsaWVyIGluIHRyZWUgb3Jk
ZXInKSwKKyAgICAgICAgZXhlY3V0ZTogdGVzdFNjcm9sbGluZ1RvRWxlbWVudEluRG9jdW1lbnRU
cmVlQWZ0ZXJFbGVtZW50SW5TaGFkb3dUcmVlV2l0aFNhbWVJRC5iaW5kKHRoaXMsICdhJywgJ29w
ZW4nKX0sCisgICAge3Rlc3Q6IGFzeW5jX3Rlc3QoJ1RoZSB1c2VyIGFnZW50IHNob3VsZCBzY3Jv
bGwgdG8gYW4gYW5jaG9yIGVsZW1lbnQgd2l0aCBhIG5hbWUgYXR0cmlidXRlIGV4YWN0bHkgZXF1
YWwgdG8gdGhlIGRlY29kZWQgZnJhZ2lkIGluIHRoZSBkb2N1bWVudCB0cmVlJworICAgICAgICAr
ICcgZXZlbiBpZiB0aGVyZSB3YXMgYW5vdGhlciBlbGVtZW50IHdpdGggdGhlIHNhbWUgSUQgaW5z
aWRlIGEgY2xvc2VkIHNoYWRvdyB0cmVlIGVhcmxpZXIgaW4gdHJlZSBvcmRlcicpLAorICAgICAg
ICBleGVjdXRlOiB0ZXN0U2Nyb2xsaW5nVG9FbGVtZW50SW5Eb2N1bWVudFRyZWVBZnRlckVsZW1l
bnRJblNoYWRvd1RyZWVXaXRoU2FtZUlELmJpbmQodGhpcywgJ2EnLCAnY2xvc2VkJyl9LAorXTsK
KworZnVuY3Rpb24gZXhlY3V0ZU5leHRUZXN0KCkKK3sKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMCwg
MCk7CisKKyAgICBjdXJyZW50RnJhZ0lkU3VmZml4Kys7CisgICAgdmFyIG5leHRUZXN0ID0gdGVz
dHMuc2hpZnQoKTsKKyAgICBpZiAoIW5leHRUZXN0KQorICAgICAgICByZXR1cm47CisgICAgc2V0
VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgIG5leHRUZXN0LmV4ZWN1dGUobmV4dFRlc3Qu
dGVzdCk7CisgICAgfSwgMCk7Cit9CisKK3ZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3RDb250YWluZXInKTsKK3ZhciBjdXJyZW50RnJhZ0lkU3VmZml4ID0g
MDsKKworZnVuY3Rpb24gdGFsbEVsZW1lbnRNYXJrdXAoKQoreworICAgIHJldHVybiAnPGRpdiBz
dHlsZT0iaGVpZ2h0OiAnICsgKHdpbmRvdy5pbm5lckhlaWdodCAqIDIpICsgJ3B4Ij48YSBocmVm
PSIjZnJhZ2lkJyArIGN1cnJlbnRGcmFnSWRTdWZmaXggKyAnIj5HbyB0byBmcmFnbWVudDwvYT48
L2Rpdj4nOworfQorCitmdW5jdGlvbiB0YXJnZXRNYXJrdXAoZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIGVsZW1lbnRUeXBlID09ICdkaXYnID8gKCc8ZGl2IGlkPSJmcmFnaWQnICsgY3VycmVu
dEZyYWdJZFN1ZmZpeCArICciPmhlbGxvPC9kaXY+JykgOiAoJzxhIG5hbWU9ImZyYWdpZCcgKyBj
dXJyZW50RnJhZ0lkU3VmZml4ICsgJyI+aGVsbG88L2E+Jyk7Cit9CisKK2Z1bmN0aW9uIGNsaWNr
Rmlyc3RBbmNob3JBbmRSdW5TdGVwKHRlc3QsIHN0ZXApCit7CisgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHRlc3RDb250YWluZXIucXVlcnlTZWxlY3RvcignYScpLmNsaWNr
KCk7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdC5z
dGVwKHN0ZXApOworICAgICAgICAgICAgdGVzdENvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKKyAg
ICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgZXhlY3V0ZU5leHRUZXN0KCk7Cisg
ICAgICAgIH0sIDApOworICAgIH0sIDApOworfQorCitmdW5jdGlvbiB0ZXN0U2Nyb2xsaW5nVG9F
bGVtZW50SW5Eb2N1bWVudFRyZWUoZWxlbWVudFR5cGUsIHRlc3QpCit7CisgICAgdGVzdC5zdGVw
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGVzdENvbnRhaW5lci5pbm5lckhUTUwgPSB0YWxsRWxl
bWVudE1hcmt1cCgpICsgdGFyZ2V0TWFya3VwKGVsZW1lbnRUeXBlKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDApOworICAgIH0pOworICAgIGNsaWNrRmlyc3RB
bmNob3JBbmRSdW5TdGVwKHRlc3QsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVz
dFNjcm9sbGluZ1RvRWxlbWVudEluU2hhZG93VHJlZShlbGVtZW50VHlwZSwgbW9kZSwgdGVzdCkK
K3sKKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICB0ZXN0Q29udGFpbmVyLmlu
bmVySFRNTCA9IHRhbGxFbGVtZW50TWFya3VwKCkgKyAnPGRpdiBpZD0iaG9zdCI+PC9kaXY+JzsK
KyAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaG9zdCcpOworICAg
ICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7Cisg
ICAgICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gdGFyZ2V0TWFya3VwKGVsZW1lbnRUeXBlKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDApOworICAgIH0pOwor
ICAgIGNsaWNrRmlyc3RBbmNob3JBbmRSdW5TdGVwKHRlc3QsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDApOworICAgIH0pOworfQorCitm
dW5jdGlvbiB0ZXN0U2Nyb2xsaW5nVG9FbGVtZW50SW5Eb2N1bWVudFRyZWVBZnRlckVsZW1lbnRJ
blNoYWRvd1RyZWVXaXRoU2FtZUlEKGVsZW1lbnRUeXBlLCBtb2RlLCB0ZXN0KQoreworICAgIHRl
c3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3RDb250YWluZXIuaW5uZXJIVE1MID0g
dGFsbEVsZW1lbnRNYXJrdXAoKSArICc8ZGl2IGlkPSJob3N0Ij48L2Rpdj4nICsgdGFsbEVsZW1l
bnRNYXJrdXAoKSArIHRhcmdldE1hcmt1cChlbGVtZW50VHlwZSk7CisgICAgICAgIHZhciBob3N0
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2hvc3QnKTsKKyAgICAgICAgdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogbW9kZX0pOworICAgICAgICBzaGFkb3dSb290
LmlubmVySFRNTCA9IHRhcmdldE1hcmt1cChlbGVtZW50VHlwZSk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwKTsKKyAgICB9KTsKKyAgICBjbGlja0ZpcnN0QW5j
aG9yQW5kUnVuU3RlcCh0ZXN0LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFzc2VydF90cnVlKHdp
bmRvdy5wYWdlWU9mZnNldCA+IHRlc3RDb250YWluZXIucXVlcnlTZWxlY3RvcignI2hvc3QnKS5v
ZmZzZXRUb3ApOworICAgIH0pOworfQorCitleGVjdXRlTmV4dFRlc3QoKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vc2xvdGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJhMzQ5MjJjNmE5
YmQ1MDgzYmQyNGVmZDRhZTA5NzVjNjc3ZWM2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdl
LWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1Mgc2xvdGNoYW5nZSBl
dmVudCBtdXN0IGZpcmUgb24gYSBkZWZhdWx0IHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBz
aGFkb3cgcm9vdCAgaW4gYSBkb2N1bWVudCAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZp
cmUgb24gYSBkZWZhdWx0IHNsb3QgZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3Qg
IGluIGEgZG9jdW1lbnQgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgZGVm
YXVsdCBzbG90IGVsZW1lbnQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRv
Y3VtZW50IAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIGRlZmF1bHQgc2xv
dCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQg
CitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgbmFtZWQgc2xvdCBlbGVtZW50
IGluc2lkZWFuIG9wZW4gc2hhZG93IHJvb3QgIGluIGEgZG9jdW1lbnQgCitQQVNTIHNsb3RjaGFu
Z2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgbmFtZWQgc2xvdCBlbGVtZW50IGluc2lkZWEgY2xvc2Vk
IHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3Qg
ZmlyZSBvbiBhIG5hbWVkIHNsb3QgZWxlbWVudCBpbnNpZGVhbiBvcGVuIHNoYWRvdyByb290ICBu
b3QgaW4gYSBkb2N1bWVudCAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBu
YW1lZCBzbG90IGVsZW1lbnQgaW5zaWRlYSBjbG9zZWQgc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRv
Y3VtZW50IAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZpcmUgb24gYSBzbG90IGVs
ZW1lbnQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3QgIGluIGEgZG9jdW1lbnQgd2hlbiBhbm90
aGVyIHNsb3QncyBhc3NpZ25lZCBub2RlcyBjaGFuZ2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQg
bXVzdCBub3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJv
b3QgIGluIGEgZG9jdW1lbnQgd2hlbiBhbm90aGVyIHNsb3QncyBhc3NpZ25lZCBub2RlcyBjaGFu
Z2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVu
dCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBhbm90
aGVyIHNsb3QncyBhc3NpZ25lZCBub2RlcyBjaGFuZ2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQg
bXVzdCBub3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJv
b3QgIG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gYW5vdGhlciBzbG90J3MgYXNzaWduZWQgbm9kZXMg
Y2hhbmdlIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZpcmUgb24gYSBzbG90IGVs
ZW1lbnQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3QgIGluIGEgZG9jdW1lbnQgd2hlbiB0aGUg
c2hhZG93IGhvc3Qgd2FzIG11dGF0ZWQgYmVmb3JlIHRoZSBzbG90IHdhcyBpbnNlcnRlZCBvciBh
ZnRlciB0aGUgc2xvdCB3YXMgcmVtb3ZlZCAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IG5v
dCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAgaW4g
YSBkb2N1bWVudCB3aGVuIHRoZSBzaGFkb3cgaG9zdCB3YXMgbXV0YXRlZCBiZWZvcmUgdGhlIHNs
b3Qgd2FzIGluc2VydGVkIG9yIGFmdGVyIHRoZSBzbG90IHdhcyByZW1vdmVkIAorUEFTUyBzbG90
Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGFuIG9w
ZW4gc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gdGhlIHNoYWRvdyBob3N0IHdh
cyBtdXRhdGVkIGJlZm9yZSB0aGUgc2xvdCB3YXMgaW5zZXJ0ZWQgb3IgYWZ0ZXIgdGhlIHNsb3Qg
d2FzIHJlbW92ZWQgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgZmlyZSBvbiBhIHNs
b3QgZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50
IHdoZW4gdGhlIHNoYWRvdyBob3N0IHdhcyBtdXRhdGVkIGJlZm9yZSB0aGUgc2xvdCB3YXMgaW5z
ZXJ0ZWQgb3IgYWZ0ZXIgdGhlIHNsb3Qgd2FzIHJlbW92ZWQgCitQQVNTIHNsb3RjaGFuZ2UgZXZl
bnQgbXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhbiBvcGVuIHNoYWRvdyByb290
ICBpbiBhIGRvY3VtZW50IGV2ZW4gaWYgdGhlIHNsb3Qgd2FzIHJlbW92ZWQgaW1tZWRpYXRlbHkg
YWZ0ZXIgdGhlIGFzc2lnbmVkIG5vZGVzIHdlcmUgbXV0YXRlZCAKK1BBU1Mgc2xvdGNoYW5nZSBl
dmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGEgY2xvc2VkIHNoYWRvdyBy
b290ICBpbiBhIGRvY3VtZW50IGV2ZW4gaWYgdGhlIHNsb3Qgd2FzIHJlbW92ZWQgaW1tZWRpYXRl
bHkgYWZ0ZXIgdGhlIGFzc2lnbmVkIG5vZGVzIHdlcmUgbXV0YXRlZCAKK1BBU1Mgc2xvdGNoYW5n
ZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGFuIG9wZW4gc2hhZG93
IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IGV2ZW4gaWYgdGhlIHNsb3Qgd2FzIHJlbW92ZWQgaW1t
ZWRpYXRlbHkgYWZ0ZXIgdGhlIGFzc2lnbmVkIG5vZGVzIHdlcmUgbXV0YXRlZCAKK1BBU1Mgc2xv
dGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGEgY2xvc2Vk
IHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1bWVudCBldmVuIGlmIHRoZSBzbG90IHdhcyByZW1v
dmVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBhc3NpZ25lZCBub2RlcyB3ZXJlIG11dGF0ZWQgCitQ
QVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBh
biBvcGVuIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gaW5uZXJIVE1MIG1vZGlmaWVz
IHRoZSBjaGlsZHJlbiBvZiB0aGUgc2hhZG93IGhvc3QgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQg
bXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAg
aW4gYSBkb2N1bWVudCB3aGVuIGlubmVySFRNTCBtb2RpZmllcyB0aGUgY2hpbGRyZW4gb2YgdGhl
IHNoYWRvdyBob3N0IAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3Qg
ZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hl
biBpbm5lckhUTUwgbW9kaWZpZXMgdGhlIGNoaWxkcmVuIG9mIHRoZSBzaGFkb3cgaG9zdCAKK1BB
U1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGEg
Y2xvc2VkIHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1bWVudCB3aGVuIGlubmVySFRNTCBtb2Rp
ZmllcyB0aGUgY2hpbGRyZW4gb2YgdGhlIHNoYWRvdyBob3N0IAorUEFTUyBzbG90Y2hhbmdlIGV2
ZW50IG11c3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9v
dCAgaW4gYSBkb2N1bWVudCB3aGVuIG5lc3RlZCBzbG90cydzIGNvbnRlbnRzIGNoYW5nZSAKK1BB
U1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGEg
Y2xvc2VkIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gbmVzdGVkIHNsb3RzJ3MgY29u
dGVudHMgY2hhbmdlIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3Qg
ZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hl
biBuZXN0ZWQgc2xvdHMncyBjb250ZW50cyBjaGFuZ2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQg
bXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAg
bm90IGluIGEgZG9jdW1lbnQgd2hlbiBuZXN0ZWQgc2xvdHMncyBjb250ZW50cyBjaGFuZ2UgCitQ
QVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQgb2YgY3VycmVudCBtaWNy
b3Rhc2sgYWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2VkIGluc2lkZSBhbiBvcGVu
IHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gc2xvdHMncyBjb250ZW50cyBjaGFuZ2Ug
CitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQgb2YgY3VycmVudCBt
aWNyb3Rhc2sgYWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2VkIGluc2lkZSBhIGNs
b3NlZCBzaGFkb3cgcm9vdCAgaW4gYSBkb2N1bWVudCB3aGVuIHNsb3RzJ3MgY29udGVudHMgY2hh
bmdlIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBhdCB0aGUgZW5kIG9mIGN1cnJl
bnQgbWljcm90YXNrIGFmdGVyIG11dGF0aW9uIG9ic2VydmVycyBhcmUgaW52b2tlZCBpbnNpZGUg
YW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBzbG90cydzIGNvbnRl
bnRzIGNoYW5nZSAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgYXQgdGhlIGVuZCBv
ZiBjdXJyZW50IG1pY3JvdGFzayBhZnRlciBtdXRhdGlvbiBvYnNlcnZlcnMgYXJlIGludm9rZWQg
aW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1bWVudCB3aGVuIHNsb3Rz
J3MgY29udGVudHMgY2hhbmdlIAoraGVsbG8KK2hlbGxvCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdl
LWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkZTg5ZGUwZTYz
YmE5NmY0MmY5M2E0NWY3MDJjZTRjNjAzMGVhOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2xvdGNoYW5n
ZS1ldmVudC5odG1sCkBAIC0wLDAgKzEsNjIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8dGl0bGU+U2hhZG93IERPTTogc2xvdGNoYW5nZSBldmVudDwvdGl0bGU+Cis8bWV0
YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3
ZWJraXQub3JnIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kb20uc3BlYy53aGF0
d2cub3JnLyNzaWduYWxpbmctc2xvdC1jaGFuZ2UiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisvLyBGSVhNRTogRml4IHRo
ZXNlIHRlc3QgY2FzZXMgb25jZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmNvbXBvbmVudHMv
aXNzdWVzLzU3MSBpcyByZXNvbHZlZC4KKworZnVuY3Rpb24gdHJlZU5hbWUobW9kZSwgY29ubmVj
dGVkVG9Eb2N1bWVudCkKK3sKKyAgICByZXR1cm4gKG1vZGUgPT0gJ29wZW4nID8gJ2FuICcgOiAn
YSAnKSArIG1vZGUgKyAnIHNoYWRvdyByb290ICcKKyAgICAgICAgKyAoY29ubmVjdGVkVG9Eb2N1
bWVudCA/ICcnIDogJyBub3QnKSArICcgaW4gYSBkb2N1bWVudCc7Cit9CisKK2Z1bmN0aW9uIHRl
c3RBcHBlbmRpbmdTcGFuVG9TaGFkb3dSb290V2l0aERlZmF1bHRTbG90KG1vZGUsIGNvbm5lY3Rl
ZFRvRG9jdW1lbnQpCit7CisgICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCdzbG90Y2hhbmdlIGV2
ZW50IG11c3QgZmlyZSBvbiBhIGRlZmF1bHQgc2xvdCBlbGVtZW50IGluc2lkZSAnCisgICAgICAg
ICsgdHJlZU5hbWUobW9kZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkpOworCisgICAgdmFyIGhvc3Q7
CisgICAgdmFyIHNsb3Q7CisgICAgdmFyIGV2ZW50Q291bnQgPSAwOworCisgICAgdGVzdC5zdGVw
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgICAgICBpZiAoY29ubmVjdGVkVG9Eb2N1bWVudCkKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7CisKKyAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7CisgICAgICAgIHNsb3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisKKyAgICAgICAgc2xvdC5hZGRFdmVudExpc3RlbmVy
KCdzbG90Y2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
aXNGYWtlRXZlbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0ZXN0
LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQu
dHlwZSwgJ3Nsb3RjaGFuZ2UnLCAnc2xvdGNoYW5nZSBldmVudFwncyB0eXBlIG11c3QgYmUgInNs
b3RjaGFuZ2UiJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC50YXJnZXQs
IHNsb3QsICdzbG90Y2hhbmdlIGV2ZW50XCdzIHRhcmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1l
bnQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnJlbGF0ZWRUYXJnZXQs
IHVuZGVmaW5lZCwgJ3Nsb3RjaGFuZ2UgbXVzdCBub3Qgc2V0IHJlbGF0ZWRUYXJnZXQnKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgZXZlbnRDb3VudCsrOworICAgICAgICB9KTsKKwor
ICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3QpOworCisgICAgICAgIGhvc3QuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAgICAgICAgaG9zdC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdiJykpOworCisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZXZlbnRDb3VudCwgMCwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgYmUgZmly
ZWQgc3luY2hyb25vdXNseScpOworICAgIH0pOworCisgICAgc2V0VGltZW91dChmdW5jdGlvbiAo
KSB7CisgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGV2ZW50Q291bnQsIDEsICdzbG90Y2hhbmdlIG11c3QgYmUgZmlyZWQgZXhhY3RseSBv
bmNlIGFmdGVyIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFuZ2VkJyk7CisKKyAgICAgICAgICAgIGhv
c3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaScpKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0LnN0
ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3Vu
dCwgMiwgJ3Nsb3RjaGFuZ2UgbXVzdCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgYWZ0ZXIgdGhlIGFz
c2lnbmVkIG5vZGVzIGNoYW5nZWQnKTsKKworICAgICAgICAgICAgICAgIGhvc3QuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2hlbGxvJykpOworCisgICAgICAgICAgICAgICAg
dmFyIGZha2VFdmVudCA9IG5ldyBFdmVudCgnc2xvdGNoYW5nZScpOworICAgICAgICAgICAgICAg
IGZha2VFdmVudC5pc0Zha2VFdmVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2xvdC5kaXNw
YXRjaEV2ZW50KGZha2VFdmVudCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudENvdW50LCAzLCAn
c2xvdGNoYW5nZSBtdXN0IGJlIGZpcmVkIGV4YWN0bHkgb25jZSBhZnRlciB0aGUgYXNzaWduZWQg
bm9kZXMgY2hhbmdlZCcKKyAgICAgICAgICAgICAgICAgICAgICAgICsgJyBldmVudCBpZiB0aGVy
ZSB3YXMgYSBzeW50aGV0aWMgc2xvdGNoYW5nZSBldmVudCBmaXJlZCcpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgfSwgMSk7
CisgICAgICAgIH0sIDEpOworICAgIH0sIDEpOworfQorCit0ZXN0QXBwZW5kaW5nU3BhblRvU2hh
ZG93Um9vdFdpdGhEZWZhdWx0U2xvdCgnb3BlbicsIHRydWUpOwordGVzdEFwcGVuZGluZ1NwYW5U
b1NoYWRvd1Jvb3RXaXRoRGVmYXVsdFNsb3QoJ2Nsb3NlZCcsIHRydWUpOwordGVzdEFwcGVuZGlu
Z1NwYW5Ub1NoYWRvd1Jvb3RXaXRoRGVmYXVsdFNsb3QoJ29wZW4nLCBmYWxzZSk7Cit0ZXN0QXBw
ZW5kaW5nU3BhblRvU2hhZG93Um9vdFdpdGhEZWZhdWx0U2xvdCgnY2xvc2VkJywgZmFsc2UpOwor
CitmdW5jdGlvbiB0ZXN0QXBwZW5kaW5nU3BhblRvU2hhZG93Um9vdFdpdGhOYW1lZFNsb3QobW9k
ZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkKK3sKKyAgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoJ3Ns
b3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgbmFtZWQgc2xvdCBlbGVtZW50IGluc2lkZScK
KyAgICAgICAgKyB0cmVlTmFtZShtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KSk7CisKKyAgICB2
YXIgaG9zdDsKKyAgICB2YXIgc2xvdDsKKyAgICB2YXIgZXZlbnRDb3VudCA9IDA7CisKKyAgICB0
ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgICAgIGlmIChjb25uZWN0ZWRUb0RvY3VtZW50KQorICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKKworICAgICAgICB2YXIgc2hhZG93
Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKKyAgICAgICAgc2xvdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgc2xvdC5uYW1lID0gJ3Nv
bWVTbG90JzsKKworICAgICAgICBzbG90LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBm
dW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5pc0Zha2VFdmVudCkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC50eXBlLCAnc2xvdGNoYW5n
ZScsICdzbG90Y2hhbmdlIGV2ZW50XCdzIHR5cGUgbXVzdCBiZSAic2xvdGNoYW5nZSInKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgc2xvdCwgJ3Nsb3RjaGFu
Z2UgZXZlbnRcJ3MgdGFyZ2V0IG11c3QgYmUgdGhlIHNsb3QgZWxlbWVudCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQucmVsYXRlZFRhcmdldCwgdW5kZWZpbmVkLCAnc2xv
dGNoYW5nZSBtdXN0IG5vdCBzZXQgcmVsYXRlZFRhcmdldCcpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICBldmVudENvdW50Kys7CisgICAgICAgIH0pOworCisgICAgICAgIHNoYWRvd1Jv
b3QuYXBwZW5kQ2hpbGQoc2xvdCk7CisKKyAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzcGFuJyk7CisgICAgICAgIHNwYW4uc2xvdCA9ICdzb21lU2xvdCc7CisgICAg
ICAgIGhvc3QuYXBwZW5kQ2hpbGQoc3Bhbik7CisKKyAgICAgICAgdmFyIGIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdiJyk7CisgICAgICAgIGIuc2xvdCA9ICdzb21lU2xvdCc7CisgICAgICAg
IGhvc3QuYXBwZW5kQ2hpbGQoYik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudENvdW50
LCAwLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7
CisgICAgfSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGVzdC5z
dGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3VudCwg
MSwgJ3Nsb3RjaGFuZ2UgbXVzdCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgYWZ0ZXIgdGhlIGFzc2ln
bmVkIG5vZGVzIGNoYW5nZWQnKTsKKworICAgICAgICAgICAgdmFyIGkgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpJyk7CisgICAgICAgICAgICBpLnNsb3QgPSAnc29tZVNsb3QnOworICAgICAg
ICAgICAgaG9zdC5hcHBlbmRDaGlsZChpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3VudCwgMiwgJ3Nsb3RjaGFuZ2Ug
bXVzdCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgYWZ0ZXIgdGhlIGFzc2lnbmVkIG5vZGVzIGNoYW5n
ZWQnKTsKKworICAgICAgICAgICAgICAgIHZhciBlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2VtJyk7CisgICAgICAgICAgICAgICAgZW0uc2xvdCA9ICdzb21lU2xvdCc7CisgICAgICAgICAg
ICAgICAgaG9zdC5hcHBlbmRDaGlsZChlbSk7CisKKyAgICAgICAgICAgICAgICB2YXIgZmFrZUV2
ZW50ID0gbmV3IEV2ZW50KCdzbG90Y2hhbmdlJyk7CisgICAgICAgICAgICAgICAgZmFrZUV2ZW50
LmlzRmFrZUV2ZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzbG90LmRpc3BhdGNoRXZlbnQo
ZmFrZUV2ZW50KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50Q291bnQsIDMsICdzbG90Y2hhbmdl
IG11c3QgYmUgZmlyZWQgZXhhY3RseSBvbmNlIGFmdGVyIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFu
Z2VkJworICAgICAgICAgICAgICAgICAgICAgICAgKyAnIGV2ZW50IGlmIHRoZXJlIHdhcyBhIHN5
bnRoZXRpYyBzbG90Y2hhbmdlIGV2ZW50IGZpcmVkJyk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICB9LCAxKTsKKworICAgICAg
ICB9LCAxKTsKKyAgICB9LCAxKTsKK30KKwordGVzdEFwcGVuZGluZ1NwYW5Ub1NoYWRvd1Jvb3RX
aXRoTmFtZWRTbG90KCdvcGVuJywgdHJ1ZSk7Cit0ZXN0QXBwZW5kaW5nU3BhblRvU2hhZG93Um9v
dFdpdGhOYW1lZFNsb3QoJ2Nsb3NlZCcsIHRydWUpOwordGVzdEFwcGVuZGluZ1NwYW5Ub1NoYWRv
d1Jvb3RXaXRoTmFtZWRTbG90KCdvcGVuJywgZmFsc2UpOwordGVzdEFwcGVuZGluZ1NwYW5Ub1No
YWRvd1Jvb3RXaXRoTmFtZWRTbG90KCdjbG9zZWQnLCBmYWxzZSk7CisKK2Z1bmN0aW9uIHRlc3RT
bG90Y2hhbmdlRG9lc05vdEZpcmVXaGVuT3RoZXJTbG90c0NoYW5nZShtb2RlLCBjb25uZWN0ZWRU
b0RvY3VtZW50KQoreworICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnc2xvdGNoYW5nZSBldmVu
dCBtdXN0IG5vdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSAnCisgICAgICAgICsgdHJl
ZU5hbWUobW9kZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkKKyAgICAgICAgKyAnIHdoZW4gYW5vdGhl
ciBzbG90XCdzIGFzc2lnbmVkIG5vZGVzIGNoYW5nZScpOworCisgICAgdmFyIGhvc3Q7CisgICAg
dmFyIGRlZmF1bHRTbG90RXZlbnRDb3VudCA9IDA7CisgICAgdmFyIG5hbWVkU2xvdEV2ZW50Q291
bnQgPSAwOworCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaG9zdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBpZiAoY29ubmVjdGVkVG9Eb2N1
bWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7CisKKyAg
ICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7
CisgICAgICAgIHZhciBkZWZhdWx0U2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3Qn
KTsKKyAgICAgICAgZGVmYXVsdFNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIGZ1
bmN0aW9uIChldmVudCkgeworICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgZGVmYXVsdFNsb3QsICdz
bG90Y2hhbmdlIGV2ZW50XCdzIHRhcmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgZGVmYXVsdFNsb3RFdmVudENvdW50Kys7CisgICAg
ICAgIH0pOworCisgICAgICAgIHZhciBuYW1lZFNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzbG90Jyk7CisgICAgICAgIG5hbWVkU2xvdC5uYW1lID0gJ3Nsb3ROYW1lJzsKKyAgICAgICAg
bmFtZWRTbG90LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQp
IHsKKyAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhldmVudC50YXJnZXQsIG5hbWVkU2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnRc
J3MgdGFyZ2V0IG11c3QgYmUgdGhlIHNsb3QgZWxlbWVudCcpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICBuYW1lZFNsb3RFdmVudENvdW50Kys7CisgICAgICAgIH0pOworCisgICAgICAg
IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGVmYXVsdFNsb3QpOworICAgICAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKG5hbWVkU2xvdCk7CisKKyAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVm
YXVsdFNsb3RFdmVudENvdW50LCAwLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJl
ZCBzeW5jaHJvbm91c2x5Jyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMobmFtZWRTbG90RXZlbnRD
b3VudCwgMCwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgc3luY2hyb25vdXNs
eScpOworICAgIH0pOworCisgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgIHRl
c3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRlZmF1bHRT
bG90RXZlbnRDb3VudCwgMSwKKyAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0IGJlIGZp
cmVkIGV4YWN0bHkgb25jZSBhZnRlciB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlIG9uIGEgZGVm
YXVsdCBzbG90Jyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5hbWVkU2xvdEV2ZW50Q291
bnQsIDAsCisgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBub3QgYmUgZmlyZWQgb24g
YSBuYW1lZCBzbG90IGFmdGVyIHRoZSBhc3NpZ25lZCBub2RlcyBjaGFuZ2Ugb24gYSBkZWZhdWx0
IHNsb3QnKTsKKworICAgICAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzcGFuJyk7CisgICAgICAgICAgICBzcGFuLnNsb3QgPSAnc2xvdE5hbWUnOworICAgICAgICAg
ICAgaG9zdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVmYXVsdFNsb3RFdmVudENvdW50LCAxLAor
ICAgICAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0IG5vdCBiZSBmaXJlZCBvbiBhIGRl
ZmF1bHQgc2xvdCBhZnRlciB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlIG9uIGEgbmFtZWQgc2xv
dCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmFtZWRTbG90RXZlbnRDb3VudCwg
MSwKKyAgICAgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBiZSBmaXJlZCBleGFjdGx5
IG9uY2UgYWZ0ZXIgdGhlIGFzc2lnbmVkIG5vZGVzIGNoYW5nZSBvbiBhIGRlZmF1bHQgc2xvdCcp
OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgfSwg
MSk7CisgICAgfSwgMSk7Cit9CisKK3Rlc3RTbG90Y2hhbmdlRG9lc05vdEZpcmVXaGVuT3RoZXJT
bG90c0NoYW5nZSgnb3BlbicsIHRydWUpOwordGVzdFNsb3RjaGFuZ2VEb2VzTm90RmlyZVdoZW5P
dGhlclNsb3RzQ2hhbmdlKCdjbG9zZWQnLCB0cnVlKTsKK3Rlc3RTbG90Y2hhbmdlRG9lc05vdEZp
cmVXaGVuT3RoZXJTbG90c0NoYW5nZSgnb3BlbicsIGZhbHNlKTsKK3Rlc3RTbG90Y2hhbmdlRG9l
c05vdEZpcmVXaGVuT3RoZXJTbG90c0NoYW5nZSgnY2xvc2VkJywgZmFsc2UpOworCitmdW5jdGlv
biB0ZXN0U2xvdGNoYW5nZURvZXNOb3RGaXJlRm9yTXV0YXRpb25CZWZvcmVPckFmdGVyU2xvdFdh
c1ByZXNlbnQobW9kZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkKK3sKKyAgICB2YXIgdGVzdCA9IGFz
eW5jX3Rlc3QoJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVu
dCBpbnNpZGUgJworICAgICAgICArIHRyZWVOYW1lKG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQp
CisgICAgICAgICsgJyB3aGVuIHRoZSBzaGFkb3cgaG9zdCB3YXMgbXV0YXRlZCBiZWZvcmUgdGhl
IHNsb3Qgd2FzIGluc2VydGVkIG9yIGFmdGVyIHRoZSBzbG90IHdhcyByZW1vdmVkJyk7CisKKyAg
ICB2YXIgaG9zdDsKKyAgICB2YXIgc2xvdDsKKyAgICB2YXIgZXZlbnRDb3VudCA9IDA7CisKKyAg
ICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICBob3N0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGlmIChjb25uZWN0ZWRUb0RvY3VtZW50KQorICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKKworICAgICAgICB2YXIgc2hh
ZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKKyAgICAgICAgc2xv
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgc2xvdC5hZGRFdmVu
dExpc3RlbmVyKCdzbG90Y2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICB0
ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZl
bnQudGFyZ2V0LCBzbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBiZSB0aGUg
c2xvdCBlbGVtZW50Jyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGV2ZW50Q291bnQr
KzsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzcGFuJykpOworICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNsb3Qp
OworCisgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRDb3VudCwgMCwgJ3Nsb3RjaGFuZ2UgZXZl
bnQgbXVzdCBub3QgYmUgZmlyZWQgc3luY2hyb25vdXNseScpOworICAgIH0pOworCisgICAgc2V0
VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50Q291bnQsIDAsCisgICAgICAgICAgICAgICAg
J3Nsb3RjaGFuZ2UgbXVzdCBub3QgYmUgZmlyZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFz
c2lnbmVkIG5vZGVzIGNoYW5nZWQgYmVmb3JlIHRoZSBzbG90IHdhcyBpbnNlcnRlZCcpOworICAg
ICAgICAgICAgaG9zdC5yZW1vdmVDaGlsZChob3N0LmZpcnN0Q2hpbGQpOworICAgICAgICB9KTsK
KworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3Quc3Rl
cChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudENvdW50
LCAxLAorICAgICAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0IGJlIGZpcmVkIGV4YWN0
bHkgb25jZSBhZnRlciB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlIG9uIGEgc2xvdCB3aGlsZSB0
aGUgc2xvdCBlbGVtZW50IHdhcyBpbiB0aGUgdHJlZScpOworICAgICAgICAgICAgICAgIHNsb3Qu
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzbG90KTsKKyAgICAgICAgICAgICAgICBob3N0LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhldmVudENvdW50LCAxLAorICAgICAgICAgICAgICAgICAgICAnc2xvdGNo
YW5nZSBtdXN0IG5vdCBiZSBmaXJlZCBvbiBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQg
bm9kZXMgY2hhbmdlZCBhZnRlciB0aGUgc2xvdCB3YXMgcmVtb3ZlZCcpOworICAgICAgICAgICAg
ICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgfSwgMSk7CisgICAgICAgIH0sIDEpOworICAg
IH0sIDEpOworfQorCit0ZXN0U2xvdGNoYW5nZURvZXNOb3RGaXJlRm9yTXV0YXRpb25CZWZvcmVP
ckFmdGVyU2xvdFdhc1ByZXNlbnQoJ29wZW4nLCB0cnVlKTsKK3Rlc3RTbG90Y2hhbmdlRG9lc05v
dEZpcmVGb3JNdXRhdGlvbkJlZm9yZU9yQWZ0ZXJTbG90V2FzUHJlc2VudCgnY2xvc2VkJywgdHJ1
ZSk7Cit0ZXN0U2xvdGNoYW5nZURvZXNOb3RGaXJlRm9yTXV0YXRpb25CZWZvcmVPckFmdGVyU2xv
dFdhc1ByZXNlbnQoJ29wZW4nLCBmYWxzZSk7Cit0ZXN0U2xvdGNoYW5nZURvZXNOb3RGaXJlRm9y
TXV0YXRpb25CZWZvcmVPckFmdGVyU2xvdFdhc1ByZXNlbnQoJ2Nsb3NlZCcsIGZhbHNlKTsKKwor
ZnVuY3Rpb24gdGVzdFNsb3RjaGFuZ2VGaXJlc09uVHJhbnNpZW50bHlQcmVzZW50U2xvdChtb2Rl
LCBjb25uZWN0ZWRUb0RvY3VtZW50KQoreworICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnc2xv
dGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlICcKKyAgICAg
ICAgKyB0cmVlTmFtZShtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KQorICAgICAgICArICcgZXZl
biBpZiB0aGUgc2xvdCB3YXMgcmVtb3ZlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgYXNzaWduZWQg
bm9kZXMgd2VyZSBtdXRhdGVkJyk7CisKKyAgICB2YXIgaG9zdDsKKyAgICB2YXIgc2xvdDsKKyAg
ICB2YXIgYW5vdGhlclNsb3Q7CisgICAgdmFyIHNsb3RFdmVudENvdW50ID0gMDsKKyAgICB2YXIg
YW5vdGhlclNsb3RFdmVudENvdW50ID0gMDsKKworICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7
CisgICAgICAgIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAg
aWYgKGNvbm5lY3RlZFRvRG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGhvc3QpOworCisgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFk
b3coeydtb2RlJzogbW9kZX0pOworICAgICAgICBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2xvdCcpOworICAgICAgICBzbG90Lm5hbWUgPSAnc29tZVNsb3QnOworICAgICAgICBzbG90
LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAg
ICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhldmVudC50YXJnZXQsIHNsb3QsICdzbG90Y2hhbmdlIGV2ZW50XCdzIHRhcmdldCBtdXN0
IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgc2xv
dEV2ZW50Q291bnQrKzsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYW5vdGhlclNsb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgICAgIGFub3RoZXJTbG90Lm5hbWUgPSAn
c29tZVNsb3QnOworICAgICAgICBhbm90aGVyU2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hh
bmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBhbm90aGVy
U2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3MgdGFyZ2V0IG11c3QgYmUgdGhlIHNsb3QgZWxlbWVu
dCcpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhbm90aGVyU2xvdEV2ZW50Q291bnQr
KzsKKyAgICAgICAgfSk7CisKKyAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90KTsK
KworICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAg
ICAgICAgc3Bhbi5zbG90ID0gJ3NvbWVTbG90JzsKKyAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChz
cGFuKTsKKworICAgICAgICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKHNsb3QpOworICAgICAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKGFub3RoZXJTbG90KTsKKworICAgICAgICB2YXIgc3BhbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAgc3Bhbi5zbG90ID0gJ3Nv
bWVTbG90JzsKKyAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChzcGFuKTsKKworICAgICAgICBzaGFk
b3dSb290LnJlbW92ZUNoaWxkKGFub3RoZXJTbG90KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNsb3RFdmVudENvdW50LCAwLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBz
eW5jaHJvbm91c2x5Jyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYW5vdGhlclNsb3RFdmVudENv
dW50LCAwLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5
Jyk7CisgICAgfSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGVz
dC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2xvdEV2ZW50
Q291bnQsIDEsCisgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBiZSBmaXJlZCBvbiBh
IHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlZCB3aGlsZSB0aGUgc2xv
dCB3YXMgcHJlc2VudCcpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhbm90aGVyU2xvdEV2
ZW50Q291bnQsIDEsCisgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBiZSBmaXJlZCBv
biBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQgbm9kZXMgY2hhbmdlZCB3aGlsZSB0aGUg
c2xvdCB3YXMgcHJlc2VudCcpOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgfSwgMSk7Cit9CisKK3Rlc3RTbG90Y2hhbmdlRmlyZXNPblRyYW5zaWVudGx5UHJlc2VudFNs
b3QoJ29wZW4nLCB0cnVlKTsKK3Rlc3RTbG90Y2hhbmdlRmlyZXNPblRyYW5zaWVudGx5UHJlc2Vu
dFNsb3QoJ2Nsb3NlZCcsIHRydWUpOwordGVzdFNsb3RjaGFuZ2VGaXJlc09uVHJhbnNpZW50bHlQ
cmVzZW50U2xvdCgnb3BlbicsIGZhbHNlKTsKK3Rlc3RTbG90Y2hhbmdlRmlyZXNPblRyYW5zaWVu
dGx5UHJlc2VudFNsb3QoJ2Nsb3NlZCcsIGZhbHNlKTsKKworZnVuY3Rpb24gdGVzdFNsb3RjaGFu
Z2VGaXJlc09uSW5uZXJIVE1MKG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQpCit7CisgICAgdmFy
IHRlc3QgPSBhc3luY190ZXN0KCdzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3Qg
ZWxlbWVudCBpbnNpZGUgJworICAgICAgICArIHRyZWVOYW1lKG1vZGUsIGNvbm5lY3RlZFRvRG9j
dW1lbnQpCisgICAgICAgICsgJyB3aGVuIGlubmVySFRNTCBtb2RpZmllcyB0aGUgY2hpbGRyZW4g
b2YgdGhlIHNoYWRvdyBob3N0Jyk7CisKKyAgICB2YXIgaG9zdDsKKyAgICB2YXIgZGVmYXVsdFNs
b3Q7CisgICAgdmFyIG5hbWVkU2xvdDsKKyAgICB2YXIgZGVmYXVsdFNsb3RFdmVudENvdW50ID0g
MDsKKyAgICB2YXIgbmFtZWRTbG90RXZlbnRDb3VudCA9IDA7CisKKyAgICB0ZXN0LnN0ZXAoZnVu
Y3Rpb24gKCkgeworICAgICAgICBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgICAgIGlmIChjb25uZWN0ZWRUb0RvY3VtZW50KQorICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChob3N0KTsKKworICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3Qu
YXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKKyAgICAgICAgZGVmYXVsdFNsb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgICAgIGRlZmF1bHRTbG90LmFkZEV2ZW50
TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgIHRl
c3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVu
dC50YXJnZXQsIGRlZmF1bHRTbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBi
ZSB0aGUgc2xvdCBlbGVtZW50Jyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGRlZmF1
bHRTbG90RXZlbnRDb3VudCsrOworICAgICAgICB9KTsKKworICAgICAgICBuYW1lZFNsb3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgICAgIG5hbWVkU2xvdC5uYW1lID0g
J3NvbWVTbG90JzsKKyAgICAgICAgbmFtZWRTbG90LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFu
Z2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC50YXJnZXQsIG5hbWVkU2xv
dCwgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3MgdGFyZ2V0IG11c3QgYmUgdGhlIHNsb3QgZWxlbWVudCcp
OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBuYW1lZFNsb3RFdmVudENvdW50Kys7Cisg
ICAgICAgIH0pOworICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG5hbWVkU2xvdCk7Cisg
ICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGVmYXVsdFNsb3QpOworICAgICAgICBob3N0
LmlubmVySFRNTCA9ICdmb28gPGI+YmFyPC9iPic7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhk
ZWZhdWx0U2xvdEV2ZW50Q291bnQsIDAsICdzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGJlIGZp
cmVkIHN5bmNocm9ub3VzbHknKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhuYW1lZFNsb3RFdmVu
dENvdW50LCAwLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91
c2x5Jyk7CisgICAgfSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
dGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVmYXVs
dFNsb3RFdmVudENvdW50LCAxLAorICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIG11c3QgYmUg
ZmlyZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIGFyZSBjaGFuZ2Vk
IGJ5IGlubmVySFRNTCcpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuYW1lZFNsb3RFdmVu
dENvdW50LCAwLAorICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIG11c3Qgbm90IGJlIGZpcmVk
IG9uIGEgc2xvdCBlbGVtZW50IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBhcmUgbm90IGNoYW5nZWQg
YnkgaW5uZXJIVE1MJyk7CisgICAgICAgICAgICBob3N0LmlubmVySFRNTCA9ICdiYXonOworICAg
ICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0
ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGVm
YXVsdFNsb3RFdmVudENvdW50LCAyLAorICAgICAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBt
dXN0IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBhcmUg
Y2hhbmdlZCBieSBpbm5lckhUTUwnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5h
bWVkU2xvdEV2ZW50Q291bnQsIDAsCisgICAgICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIG11
c3Qgbm90IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBh
cmUgbm90IGNoYW5nZWQgYnkgaW5uZXJIVE1MJyk7CisgICAgICAgICAgICAgICAgaG9zdC5pbm5l
ckhUTUwgPSAnJzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWZhdWx0U2xvdEV2ZW50Q291bnQsIDMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAnc2xvdGNoYW5nZSBtdXN0IGJlIGZpcmVkIG9uIGEgc2xv
dCBlbGVtZW50IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBhcmUgY2hhbmdlZCBieSBpbm5lckhUTUwn
KTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuYW1lZFNsb3RFdmVudENvdW50
LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBub3QgYmUgZmly
ZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIGFyZSBub3QgY2hhbmdl
ZCBieSBpbm5lckhUTUwnKTsKKyAgICAgICAgICAgICAgICAgICAgaG9zdC5pbm5lckhUTUwgPSAn
PGIgc2xvdD0ic29tZVNsb3QiPmNvbnRlbnQ8L2I+JzsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZGVmYXVsdFNsb3RFdmVudENvdW50LCAzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdzbG90Y2hhbmdlIG11c3Qgbm90IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50IGlm
IHRoZSBhc3NpZ25lZCBub2RlcyBhcmUgbm90IGNoYW5nZWQgYnkgaW5uZXJIVE1MJyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5hbWVkU2xvdEV2ZW50Q291bnQsIDEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBub3QgYmUgZmly
ZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIGFyZSBjaGFuZ2VkIGJ5
IGlubmVySFRNTCcpOworICAgICAgICAgICAgICAgICAgICAgICAgaG9zdC5pbm5lckhUTUwgPSAn
JzsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0ZXN0
IHdvdWxkIGZhaWwgaW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYmVjYXVzZSB3ZSBjYW4n
dCB0ZWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hldGhlciBhIHRleHQgbm9k
ZSB3YXMgcmVtb3ZlZCBpbiBBbGxDaGlsZHJlblJlbW92ZWQgb3Igbm90LgorLy8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWZhdWx0U2xvdEV2ZW50Q291bnQsIDMs
CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nsb3RjaGFuZ2UgbXVzdCBub3Qg
YmUgZmlyZWQgb24gYSBzbG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIGFyZSBub3Qg
Y2hhbmdlZCBieSBpbm5lckhUTUwnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG5hbWVkU2xvdEV2ZW50Q291bnQsIDIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdzbG90Y2hhbmdlIG11c3Qgbm90IGJlIGZpcmVkIG9uIGEgc2xvdCBlbGVtZW50
IGlmIHRoZSBhc3NpZ25lZCBub2RlcyBhcmUgY2hhbmdlZCBieSBpbm5lckhUTUwnKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgICAgICAgICAgICAgICAgIH0sIDEpOworICAgICAgICAgICAgICAgIH0sIDEpOwor
ICAgICAgICAgICAgfSwgMSk7CisgICAgICAgIH0sIDEpOworICAgIH0sIDEpOworfQorCit0ZXN0
U2xvdGNoYW5nZUZpcmVzT25Jbm5lckhUTUwoJ29wZW4nLCB0cnVlKTsKK3Rlc3RTbG90Y2hhbmdl
RmlyZXNPbklubmVySFRNTCgnY2xvc2VkJywgdHJ1ZSk7Cit0ZXN0U2xvdGNoYW5nZUZpcmVzT25J
bm5lckhUTUwoJ29wZW4nLCBmYWxzZSk7Cit0ZXN0U2xvdGNoYW5nZUZpcmVzT25Jbm5lckhUTUwo
J2Nsb3NlZCcsIGZhbHNlKTsKKworZnVuY3Rpb24gdGVzdFNsb3RjaGFuZ2VGaXJlc1doZW5OZXN0
ZWRTbG90Q2hhbmdlKG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQpCit7CisgICAgdmFyIHRlc3Qg
PSBhc3luY190ZXN0KCdzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVu
dCBpbnNpZGUgJworICAgICAgICArIHRyZWVOYW1lKG1vZGUsIGNvbm5lY3RlZFRvRG9jdW1lbnQp
CisgICAgICAgICsgJyB3aGVuIG5lc3RlZCBzbG90c1wncyBjb250ZW50cyBjaGFuZ2UnKTsKKwor
ICAgIHZhciBvdXRlckhvc3Q7CisgICAgdmFyIGlubmVySG9zdDsKKyAgICB2YXIgb3V0ZXJTbG90
OworICAgIHZhciBpbm5lclNsb3Q7CisgICAgdmFyIG91dGVyU2xvdEV2ZW50Q291bnQgPSAwOwor
ICAgIHZhciBpbm5lclNsb3RFdmVudENvdW50ID0gMDsKKworICAgIHRlc3Quc3RlcChmdW5jdGlv
biAoKSB7CisgICAgICAgIG91dGVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgICAgICBpZiAoY29ubmVjdGVkVG9Eb2N1bWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJIb3N0KTsKKworICAgICAgICB2YXIgb3V0ZXJTaGFkb3cg
PSBvdXRlckhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKKyAgICAgICAgb3V0ZXJT
aGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAgICAg
ICAgb3V0ZXJTbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOworICAgICAgICBv
dXRlclNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIGZ1bmN0aW9uIChldmVudCkg
eworICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICB0ZXN0
LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQu
dGFyZ2V0LCBvdXRlclNsb3QsICdzbG90Y2hhbmdlIGV2ZW50XCdzIHRhcmdldCBtdXN0IGJlIHRo
ZSBzbG90IGVsZW1lbnQnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgb3V0ZXJTbG90
RXZlbnRDb3VudCsrOworICAgICAgICB9KTsKKworICAgICAgICBpbm5lckhvc3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgaW5uZXJIb3N0LmFwcGVuZENoaWxkKG91
dGVyU2xvdCk7CisgICAgICAgIG91dGVyU2hhZG93LmFwcGVuZENoaWxkKGlubmVySG9zdCk7CisK
KyAgICAgICAgdmFyIGlubmVyU2hhZG93ID0gaW5uZXJIb3N0LmF0dGFjaFNoYWRvdyh7J21vZGUn
OiBtb2RlfSk7CisgICAgICAgIGlubmVyU2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NwYW4nKSk7CisgICAgICAgIGlubmVyU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgaW5uZXJTbG90LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3Rj
aGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdh
dGlvbigpOworICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgaW5uZXJTbG90LCAnc2xvdGNoYW5nZSBl
dmVudFwncyB0YXJnZXQgbXVzdCBiZSB0aGUgc2xvdCBlbGVtZW50Jyk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIGlubmVyU2xvdEV2ZW50Q291bnQrKzsKKyAgICAgICAgfSk7CisgICAg
ICAgIGlubmVyU2hhZG93LmFwcGVuZENoaWxkKGlubmVyU2xvdCk7CisKKyAgICAgICAgb3V0ZXJI
b3N0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhpbm5lclNsb3RFdmVudENvdW50LCAwLCAnc2xvdGNoYW5nZSBldmVu
dCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMob3V0ZXJTbG90RXZlbnRDb3VudCwgMCwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgYmUg
ZmlyZWQgc3luY2hyb25vdXNseScpOworICAgIH0pOworCisgICAgc2V0VGltZW91dChmdW5jdGlv
biAoKSB7CisgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGlubmVyU2xvdEV2ZW50Q291bnQsIDEsCisgICAgICAgICAgICAgICAgJ3Nsb3Rj
aGFuZ2UgbXVzdCBiZSBmaXJlZCBvbiBhIHNsb3QgZWxlbWVudCBpZiB0aGUgYXNzaWduZWQgbm9k
ZXMgY2hhbmdlZCcpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvdXRlclNsb3RFdmVudENv
dW50LCAxLAorICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIG11c3QgYmUgZmlyZWQgb24gYSBz
bG90IGVsZW1lbnQgaWYgdGhlIGFzc2lnbmVkIG5vZGVzIG9mIGFuIGlubmVyIHNsb3QgY2hhbmdl
ZCcpOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSwgMSk7Cit9CisK
K3Rlc3RTbG90Y2hhbmdlRmlyZXNXaGVuTmVzdGVkU2xvdENoYW5nZSgnb3BlbicsIHRydWUpOwor
dGVzdFNsb3RjaGFuZ2VGaXJlc1doZW5OZXN0ZWRTbG90Q2hhbmdlKCdjbG9zZWQnLCB0cnVlKTsK
K3Rlc3RTbG90Y2hhbmdlRmlyZXNXaGVuTmVzdGVkU2xvdENoYW5nZSgnb3BlbicsIGZhbHNlKTsK
K3Rlc3RTbG90Y2hhbmdlRmlyZXNXaGVuTmVzdGVkU2xvdENoYW5nZSgnY2xvc2VkJywgZmFsc2Up
OworCitmdW5jdGlvbiB0ZXN0U2xvdGNoYW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFzayhtb2RlLCBj
b25uZWN0ZWRUb0RvY3VtZW50KQoreworICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnc2xvdGNo
YW5nZSBldmVudCBtdXN0IGZpcmUgYXQgdGhlIGVuZCBvZiBjdXJyZW50IG1pY3JvdGFzayBhZnRl
ciBtdXRhdGlvbiBvYnNlcnZlcnMgYXJlIGludm9rZWQgaW5zaWRlICcKKyAgICAgICAgKyB0cmVl
TmFtZShtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KSArICcgd2hlbiBzbG90c1wncyBjb250ZW50
cyBjaGFuZ2UnKTsKKworICAgIHZhciBvdXRlckhvc3Q7CisgICAgdmFyIGlubmVySG9zdDsKKyAg
ICB2YXIgb3V0ZXJTbG90OworICAgIHZhciBpbm5lclNsb3Q7CisgICAgdmFyIHNsb3RjaGFuZ2VF
dmVudHMgPSBbXTsKKworICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgIG91dGVy
SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBpZiAoY29ubmVj
dGVkVG9Eb2N1bWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0
ZXJIb3N0KTsKKworICAgICAgICB2YXIgb3V0ZXJTaGFkb3cgPSBvdXRlckhvc3QuYXR0YWNoU2hh
ZG93KHsnbW9kZSc6IG1vZGV9KTsKKyAgICAgICAgb3V0ZXJTaGFkb3cuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAgICAgICAgb3V0ZXJTbG90ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOworICAgICAgICBvdXRlclNsb3QuYWRkRXZlbnRMaXN0
ZW5lcignc2xvdGNoYW5nZScsIGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICAgICAgZXZlbnQu
c3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBvdXRlclNsb3QsICdz
bG90Y2hhbmdlIGV2ZW50XCdzIHRhcmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgc2xvdGNoYW5nZUV2ZW50cy5wdXNoKCdvdXRlcicp
OworICAgICAgICB9KTsKKworICAgICAgICBpbm5lckhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICAgICAgaW5uZXJIb3N0LmFwcGVuZENoaWxkKG91dGVyU2xvdCk7Cisg
ICAgICAgIG91dGVyU2hhZG93LmFwcGVuZENoaWxkKGlubmVySG9zdCk7CisKKyAgICAgICAgdmFy
IGlubmVyU2hhZG93ID0gaW5uZXJIb3N0LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7Cisg
ICAgICAgIGlubmVyU2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKSk7CisgICAgICAgIGlubmVyU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3Qn
KTsKKyAgICAgICAgaW5uZXJTbG90LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAg
ICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGV2ZW50LnRhcmdldCwgaW5uZXJTbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJn
ZXQgbXVzdCBiZSB0aGUgc2xvdCBlbGVtZW50Jyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHNsb3RjaGFuZ2VFdmVudHMucHVzaCgnaW5uZXInKTsKKyAgICAgICAgfSk7CisgICAgICAg
IGlubmVyU2hhZG93LmFwcGVuZENoaWxkKGlubmVyU2xvdCk7CisKKyAgICAgICAgb3V0ZXJIb3N0
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzbG90Y2hhbmdlRXZlbnRzLmxlbmd0aCwgMCwgJ3Nsb3RjaGFuZ2UgZXZl
bnQgbXVzdCBub3QgYmUgZmlyZWQgc3luY2hyb25vdXNseScpOworICAgIH0pOworCisgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2xvdGNoYW5nZUV2ZW50cy5sZW5ndGgsIDAs
ICdzbG90Y2hhbmdlIGV2ZW50IG11c3Qgbm90IGJlIGZpcmVkIGJlZm9yZSBtdXRhdGlvbiByZWNv
cmRzIGFyZSBkZWxpdmVyZWQnKTsKKyAgICAgICAgfSk7CisgICAgICAgIGVsZW1lbnQuc2V0QXR0
cmlidXRlKCd0aXRsZScsICdiYXInKTsKKyAgICAgICAgaW5uZXJIb3N0LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisgICAgfSkub2JzZXJ2ZShlbGVtZW50LCB7
YXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ2lkJ119KTsKKworICAgIG5ldyBN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdGNoYW5nZUV2ZW50cywg
WydvdXRlcicsICdpbm5lciddLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IGJlIGZpcmVkIGR1cmlu
ZyBhIHNpbmdsZSBjb21wb3VuZCBtaWNyb3Rhc2snKTsKKyAgICAgICAgfSk7CisgICAgfSkub2Jz
ZXJ2ZShlbGVtZW50LCB7YXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ3RpdGxl
J119KTsKKworICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsICdmb28nKTsKKworICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90Y2hhbmdlRXZlbnRzLCBbJ291dGVy
JywgJ2lubmVyJywgJ2lubmVyJ10sCisgICAgICAgICAgICAgICAgJ2EgZGlzdGluY3Qgc2xvdGNo
YW5nZSBldmVudCBtdXN0IGJlIGVucXVldWVkIGZvciBjaGFuZ2VzIG1hZGUgZHVyaW5nIGEgbXV0
YXRpb24gb2JzZXJ2ZXIgZGVsaXZlcnknKTsKKyAgICAgICAgfSk7CisgICAgICAgIHRlc3QuZG9u
ZSgpOworICAgIH0sIDApOworfQorCit0ZXN0U2xvdGNoYW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFz
aygnb3BlbicsIHRydWUpOwordGVzdFNsb3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2soJ2Ns
b3NlZCcsIHRydWUpOwordGVzdFNsb3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2soJ29wZW4n
LCBmYWxzZSk7Cit0ZXN0U2xvdGNoYW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFzaygnY2xvc2VkJywg
ZmFsc2UpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90Y2hh
bmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjAx
MTQ1N2Y4YTI2ZmI1YmMwY2QzZWE5N2Q3ZjM4MjVlOTYyMzM5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Ns
b3RjaGFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKKworSGFybmVzcyBFcnJvciAo
VElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1BBU1Mgc2xvdGNoYW5nZSBldmVudDogQXBwZW5k
IGEgY2hpbGQgdG8gYSBob3N0LiAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudDogUmVtb3ZlIGEgY2hp
bGQgZnJvbSBhIGhvc3QuIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50OiBSZW1vdmUgYSBjaGlsZCBi
ZWZvcmUgYWRkaW5nIGFuIGV2ZW50IGxpc3RlbmVyLiAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudDog
Q2hhbmdlIHNsb3Q9IGF0dHJpYnV0ZSB0byBtYWtlIGl0IHVuLWFzc2lnbmVkLiAKK1RJTUVPVVQg
c2xvdGNoYW5nZSBldmVudDogQ2hhbmdlIHNsb3QncyBuYW1lPSBhdHRyaWJ1dGUgc28gdGhhdCBu
b25lIGlzIGFzc2lnbmVkLiBUZXN0IHRpbWVkIG91dAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50OiBD
aGFuZ2Ugc2xvdD0gYXR0cmlidXRlIHRvIG1ha2UgaXQgYXNzaWduZWQuIAorVElNRU9VVCBzbG90
Y2hhbmdlIGV2ZW50OiBDaGFuZ2Ugc2xvdCdzIG5hbWU9IGF0dHJpYnV0ZSBzbyB0aGF0IGEgbm9k
ZSBpcyBhc3NpZ25lZCB0byB0aGUgc2xvdC4gVGVzdCB0aW1lZCBvdXQKK1BBU1Mgc2xvdGNoYW5n
ZSBldmVudDogQWRkIGEgZmFsbGJhY2sgY29udGVudC4gCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQ6
IFJlbW92ZSBhIGZhbGxiYWNrIGNvbnRlbnQuIAorVElNRU9VVCBzbG90Y2hhbmdlIGV2ZW50OiBB
ZGQgYSBmYWxsYmFjayBjb250ZW50IHRvIG5lc3RlZCBzbG90cy4gVGVzdCB0aW1lZCBvdXQKK1RJ
TUVPVVQgc2xvdGNoYW5nZSBldmVudDogUmVtb3ZlIGEgZmFsbGJhY2sgY29udGVudCBmcm9tIG5l
c3RlZCBzbG90cy4gVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgc2xvdGNoYW5nZSBldmVudDogSW5z
ZXJ0IGEgc2xvdCBiZWZvcmUgYW4gZXhpc3Rpbmcgc2xvdC4gVGVzdCB0aW1lZCBvdXQKK1RJTUVP
VVQgc2xvdGNoYW5nZSBldmVudDogUmVtb3ZlIGEgcHJlY2VkaW5nIHNsb3QuIFRlc3QgdGltZWQg
b3V0CitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQ6IEEgc2xvdCBpcyBhc3NpZ25lZCB0byBhbm90aGVy
IHNsb3QuIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50OiBFdmVuIGlmIGRpc3RyaWJ1dGVkIG5vZGVz
IGRvIG5vdCBjaGFuZ2UsIHNsb3RjaGFuZ2Ugc2hvdWxkIGJlIGZpcmVkIGlmIGFzc2lnbmVkIG5v
ZGVzIGFyZSBjaGFuZ2VkLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmEyYzM5NjhmMjdmNzEwZTcxOWIzNGZmZGQyNDY0MGMzOWNlZTY1
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9zbG90Y2hhbmdlLmh0bWwKQEAgLTAsMCArMSwyNzAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPlNoYWRvdyBET006IHNsb3RjaGFuZ2UgRXZlbnRzPC90aXRs
ZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkhheWF0byBJdG8iIGhyZWY9Im1haWx0bzpo
YXlhdG9AZ29vZ2xlLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdDEiPgorICA8ZGl2IGlk
PSJob3N0MSI+CisgICAgPHRlbXBsYXRlIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICA8c2xvdCBp
ZD0iczEiIG5hbWU9InNsb3QxIj48L3Nsb3Q+CisgICAgPC90ZW1wbGF0ZT4KKyAgICA8ZGl2IGlk
PSJjMSIgc2xvdD0ic2xvdDEiPjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0Pgor
ZnVuY3Rpb24gZG9uZUlmU2xvdENoYW5nZShzbG90cywgdGVzdCkgeworICBsZXQgZmlyZWQgPSBu
ZXcgU2V0KCk7CisgIGZvciAobGV0IHNsb3Qgb2Ygc2xvdHMpIHsKKyAgICBzbG90LmFkZEV2ZW50
TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0ZXN0LnN0ZXBfZnVuYygoZSkgPT4geworICAgICAgYXNz
ZXJ0X2ZhbHNlKGZpcmVkLmhhcyhzbG90LmlkKSk7CisgICAgICBmaXJlZC5hZGQoc2xvdC5pZCk7
CisgICAgICBpZiAoZmlyZWQuc2l6ZSA9PSBzbG90cy5sZW5ndGgpIHsKKyAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgICB9CisgICAgfSkpCisgIH0KK30KKworYXN5bmNfdGVzdCgodGVzdCkgPT4g
eworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QxKTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9u
bHlUZXh0Tm9kZXMobi50ZXN0MSk7CisKKyAgZG9uZUlmU2xvdENoYW5nZShbbi5zMV0sIHRlc3Qp
OworCisgIGxldCBkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBkMS5zZXRB
dHRyaWJ1dGUoJ3Nsb3QnLCAnc2xvdDEnKTsKKyAgbi5ob3N0MS5hcHBlbmRDaGlsZChkMSk7Cit9
LCAnc2xvdGNoYW5nZSBldmVudDogQXBwZW5kIGEgY2hpbGQgdG8gYSBob3N0LicpOworCithc3lu
Y190ZXN0KCh0ZXN0KSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdDEpOworICBy
ZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRlc3QxKTsKKworICBkb25lSWZTbG90Q2hh
bmdlKFtuLnMxXSwgdGVzdCk7CisKKyAgbi5jMS5yZW1vdmUoKTsKK30sICdzbG90Y2hhbmdlIGV2
ZW50OiBSZW1vdmUgYSBjaGlsZCBmcm9tIGEgaG9zdC4nKTsKKworYXN5bmNfdGVzdCgodGVzdCkg
PT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QxKTsKKyAgcmVtb3ZlV2hpdGVTcGFj
ZU9ubHlUZXh0Tm9kZXMobi50ZXN0MSk7CisKKyAgbi5jMS5yZW1vdmUoKTsKKworICBkb25lSWZT
bG90Q2hhbmdlKFtuLnMxXSwgdGVzdCk7Cit9LCAnc2xvdGNoYW5nZSBldmVudDogUmVtb3ZlIGEg
Y2hpbGQgYmVmb3JlIGFkZGluZyBhbiBldmVudCBsaXN0ZW5lci4nKTsKKworYXN5bmNfdGVzdCgo
dGVzdCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QxKTsKKyAgcmVtb3ZlV2hp
dGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0MSk7CisKKyAgZG9uZUlmU2xvdENoYW5nZShbbi5z
MV0sIHRlc3QpOworCisgIG4uYzEuc2V0QXR0cmlidXRlKCdzbG90JywgJ3Nsb3Qtbm9uZScpOwor
fSwgJ3Nsb3RjaGFuZ2UgZXZlbnQ6IENoYW5nZSBzbG90PSBhdHRyaWJ1dGUgdG8gbWFrZSBpdCB1
bi1hc3NpZ25lZC4nKTsKKworYXN5bmNfdGVzdCgodGVzdCkgPT4geworICBsZXQgbiA9IGNyZWF0
ZVRlc3RUcmVlKHRlc3QxKTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0
MSk7CisKKyAgZG9uZUlmU2xvdENoYW5nZShbbi5zMV0sIHRlc3QpOworCisgIG4uczEuc2V0QXR0
cmlidXRlKCduYW1lJywgJ3Nsb3Qtbm9uZScpOworfSwgJ3Nsb3RjaGFuZ2UgZXZlbnQ6IENoYW5n
ZSBzbG90XCdzIG5hbWU9IGF0dHJpYnV0ZSBzbyB0aGF0IG5vbmUgaXMgYXNzaWduZWQuJyk7Cis8
L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdDIiPgorICA8ZGl2IGlkPSJob3N0MSI+CisgICAgPHRl
bXBsYXRlIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICA8c2xvdCBpZD0iczEiIG5hbWU9InNsb3Qx
Ij48L3Nsb3Q+CisgICAgPC90ZW1wbGF0ZT4KKyAgICA8ZGl2IGlkPSJjMiIgc2xvdD0ic2xvdDIi
PjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgorYXN5bmNfdGVzdCgodGVzdCkg
PT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3QyKTsKKyAgcmVtb3ZlV2hpdGVTcGFj
ZU9ubHlUZXh0Tm9kZXMobi50ZXN0Mik7CisKKyAgZG9uZUlmU2xvdENoYW5nZShbbi5zMV0sIHRl
c3QpOworCisgIG4uYzIuc2V0QXR0cmlidXRlKCdzbG90JywgJ3Nsb3QxJyk7Cit9LCAnc2xvdGNo
YW5nZSBldmVudDogQ2hhbmdlIHNsb3Q9IGF0dHJpYnV0ZSB0byBtYWtlIGl0IGFzc2lnbmVkLicp
OworCithc3luY190ZXN0KCh0ZXN0KSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVz
dDIpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRlc3QyKTsKKworICBkb25l
SWZTbG90Q2hhbmdlKFtuLnMxXSwgdGVzdCk7CisKKyAgbi5zMS5zZXRBdHRyaWJ1dGUoJ25hbWUn
LCAnc2xvdDInKTsKK30sICdzbG90Y2hhbmdlIGV2ZW50OiBDaGFuZ2Ugc2xvdFwncyBuYW1lPSBh
dHRyaWJ1dGUgc28gdGhhdCBhIG5vZGUgaXMgYXNzaWduZWQgdG8gdGhlIHNsb3QuJyk7Cis8L3Nj
cmlwdD4KKworPGRpdiBpZD0idGVzdF9mYWxsYmFjayI+CisgIDxkaXYgaWQ9Imhvc3QxIj4KKyAg
ICA8dGVtcGxhdGUgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxzbG90IGlkPSJzMSI+PC9zbG90
PgorICAgIDwvdGVtcGxhdGU+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cithc3luY190
ZXN0KCh0ZXN0KSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdF9mYWxsYmFjayk7
CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdF9mYWxsYmFjayk7CisKKyAg
ZG9uZUlmU2xvdENoYW5nZShbbi5zMV0sIHRlc3QpOworCisgIG4uczEuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOworfSwgJ3Nsb3RjaGFuZ2UgZXZlbnQ6IEFkZCBh
IGZhbGxiYWNrIGNvbnRlbnQuJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdF9mYWxsYmFj
azIiPgorICA8ZGl2IGlkPSJob3N0MSI+CisgICAgPHRlbXBsYXRlIGRhdGEtbW9kZT0ib3BlbiI+
CisgICAgICA8c2xvdCBpZD0iczEiPgorICAgICAgICA8ZGl2IGlkPSJmMSI+PC9kaXY+CisgICAg
ICA8L3Nsb3Q+CisgICAgPC90ZW1wbGF0ZT4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4K
K2FzeW5jX3Rlc3QoKHRlc3QpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0X2Zh
bGxiYWNrMik7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdF9mYWxsYmFj
azIpOworCisgIGRvbmVJZlNsb3RDaGFuZ2UoW24uczFdLCB0ZXN0KTsKKworICBuLmYxLnJlbW92
ZSgpOworfSwgJ3Nsb3RjaGFuZ2UgZXZlbnQ6IFJlbW92ZSBhIGZhbGxiYWNrIGNvbnRlbnQuJyk7
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdF9mYWxsYmFjazMiPgorICA8ZGl2IGlkPSJob3N0
MSI+CisgICAgPHRlbXBsYXRlIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICA8c2xvdCBpZD0iczIi
PgorICAgICAgICA8c2xvdCBpZD0iczEiPgorICAgICAgICAgIDxkaXYgaWQ9ImYxIj48L2Rpdj4K
KyAgICAgICAgPC9zbG90PgorICAgICAgPC9zbG90PgorICAgIDwvdGVtcGxhdGU+CisgIDwvZGl2
PgorPC9kaXY+CisKKzxzY3JpcHQ+Cithc3luY190ZXN0KCh0ZXN0KSA9PiB7CisgIGxldCBuID0g
Y3JlYXRlVGVzdFRyZWUodGVzdF9mYWxsYmFjazMpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRl
eHROb2RlcyhuLnRlc3RfZmFsbGJhY2szKTsKKworICBkb25lSWZTbG90Q2hhbmdlKFtuLnMxLCBu
LnMyXSwgdGVzdCk7CisKKyAgbi5zMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKSk7Cit9LCAnc2xvdGNoYW5nZSBldmVudDogQWRkIGEgZmFsbGJhY2sgY29udGVudCB0
byBuZXN0ZWQgc2xvdHMuJyk7CisKK2FzeW5jX3Rlc3QoKHRlc3QpID0+IHsKKyAgbGV0IG4gPSBj
cmVhdGVUZXN0VHJlZSh0ZXN0X2ZhbGxiYWNrMyk7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4
dE5vZGVzKG4udGVzdF9mYWxsYmFjazMpOworCisgIGRvbmVJZlNsb3RDaGFuZ2UoW24uczEsIG4u
czJdLCB0ZXN0KTsKKworICBuLmYxLnJlbW92ZSgpOworfSwgJ3Nsb3RjaGFuZ2UgZXZlbnQ6IFJl
bW92ZSBhIGZhbGxiYWNrIGNvbnRlbnQgZnJvbSBuZXN0ZWQgc2xvdHMuJyk7Cis8L3NjcmlwdD4K
KworPGRpdiBpZD0idGVzdDMiPgorICA8ZGl2IGlkPSJob3N0MSI+CisgICAgPHRlbXBsYXRlIGlk
PSJzaGFkb3dyb290IiBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgPHNsb3QgaWQ9InMxIiBuYW1l
PSJzbG90MSI+PC9zbG90PgorICAgIDwvdGVtcGxhdGU+CisgICAgPGRpdiBpZD0iYzEiIHNsb3Q9
InNsb3QxIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK2FzeW5jX3Rlc3Qo
KHRlc3QpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0Myk7CisgIHJlbW92ZVdo
aXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdDMpOworCisgIGRvbmVJZlNsb3RDaGFuZ2UoW24u
czFdLCB0ZXN0KTsKKworICBsZXQgc2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3Qn
KTsKKyAgc2xvdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnc2xvdDEnKTsKKyAgbi5zaGFkb3dyb290
Lmluc2VydEJlZm9yZShzbG90LCBuLnMxKTsKK30sICJzbG90Y2hhbmdlIGV2ZW50OiBJbnNlcnQg
YSBzbG90IGJlZm9yZSBhbiBleGlzdGluZyBzbG90LiIpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
InRlc3Q0Ij4KKyAgPGRpdiBpZD0iaG9zdDEiPgorICAgIDx0ZW1wbGF0ZSBpZD0ic2hhZG93cm9v
dCIgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxzbG90IGlkPSJzMSIgbmFtZT0ic2xvdDEiPjwv
c2xvdD4KKyAgICAgIDxzbG90IGlkPSJzMiIgbmFtZT0ic2xvdDEiPjwvc2xvdD4KKyAgICA8L3Rl
bXBsYXRlPgorICAgIDxkaXYgaWQ9ImMxIiBzbG90PSJzbG90MSI+PC9kaXY+CisgIDwvZGl2Pgor
PC9kaXY+CisKKzxzY3JpcHQ+Cithc3luY190ZXN0KCh0ZXN0KSA9PiB7CisgIGxldCBuID0gY3Jl
YXRlVGVzdFRyZWUodGVzdDQpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRl
c3Q0KTsKKworICBkb25lSWZTbG90Q2hhbmdlKFtuLnMyXSwgdGVzdCk7CisKKyAgbi5zMS5yZW1v
dmUoKTsKK30sICJzbG90Y2hhbmdlIGV2ZW50OiBSZW1vdmUgYSBwcmVjZWRpbmcgc2xvdC4iKTsK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0NSI+CisgIDxkaXYgaWQ9Imhvc3QxIj4KKyAgICA8
dGVtcGxhdGUgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxkaXYgaWQ9Imhvc3QyIj4KKyAgICAg
ICAgPHRlbXBsYXRlIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICAgICAgPHNsb3QgaWQ9InMyIiBu
YW1lPSJzbG90MiI+PC9zbG90PgorICAgICAgICA8L3RlbXBsYXRlPgorICAgICAgICA8c2xvdCBp
ZD0iczEiIG5hbWU9InNsb3QxIiBzbG90PSJzbG90MiI+PC9zbG90PgorICAgICAgPC9kaXY+Cisg
ICAgPC90ZW1wbGF0ZT4KKyAgICA8ZGl2IGlkPSJjMSIgc2xvdD0ic2xvdDEiPjwvZGl2PgorICA8
L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgorYXN5bmNfdGVzdCgodGVzdCkgPT4geworICBsZXQg
biA9IGNyZWF0ZVRlc3RUcmVlKHRlc3Q1KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9k
ZXMobi50ZXN0NSk7CisKKyAgZG9uZUlmU2xvdENoYW5nZShbbi5zMSwgbi5zMl0sIHRlc3QpOwor
CisgIG4uYzEucmVtb3ZlKCk7Cit9LCAic2xvdGNoYW5nZSBldmVudDogQSBzbG90IGlzIGFzc2ln
bmVkIHRvIGFub3RoZXIgc2xvdC4iKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0NiI+Cisg
IDxkaXYgaWQ9Imhvc3QxIj4KKyAgICA8dGVtcGxhdGUgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAg
IDxkaXYgaWQ9Imhvc3QyIj4KKyAgICAgICAgPHRlbXBsYXRlIGRhdGEtbW9kZT0ib3BlbiI+Cisg
ICAgICAgICAgPHNsb3QgaWQ9InMyIiBuYW1lPSJzbG90MiI+PC9zbG90PgorICAgICAgICA8L3Rl
bXBsYXRlPgorICAgICAgICA8c2xvdCBpZD0iczEiIG5hbWU9InNsb3QxIiBzbG90PSJzbG90MiI+
PC9zbG90PgorICAgICAgPC9kaXY+CisgICAgPC90ZW1wbGF0ZT4KKyAgPC9kaXY+Cis8L2Rpdj4K
KworPHNjcmlwdD4KK2FzeW5jX3Rlc3QoKHRlc3QpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0
VHJlZSh0ZXN0Nik7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdDYpOwor
CisgIGRvbmVJZlNsb3RDaGFuZ2UoW24uczJdLCB0ZXN0KTsKKworICBuLnMxLnJlbW92ZSgpOwor
fSwgInNsb3RjaGFuZ2UgZXZlbnQ6IEV2ZW4gaWYgZGlzdHJpYnV0ZWQgbm9kZXMgZG8gbm90IGNo
YW5nZSwgc2xvdGNoYW5nZSBzaG91bGQgYmUgZmlyZWQgaWYgYXNzaWduZWQgbm9kZXMgYXJlIGNo
YW5nZWQuIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2xvdHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyZWU0ZDc2OTMwNTc1NmNmODRiM2MwZTc2MWM4NzI2
ZjljNWEwN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2xvdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjUgQEAKKworUEFTUyBTbG90czogQmFzaWMuIAorUEFTUyBTbG90czogU2xvdHMgaW4gY2xvc2Vk
LiAKK1BBU1MgU2xvdHM6IFNsb3RzIG5vdCBpbiBhIHNoYWRvdyB0cmVlLiAKK0ZBSUwgU2xvdHM6
IERpc3RyaWJ1dGVkIG5vb2VzIGZvciBTbG90cyBub3QgaW4gYSBzaGFkb3cgdHJlZS4gYXNzZXJ0
X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BBU1MgU2xv
dHM6IE5hbWUgbWF0Y2hpbmcgCitQQVNTIFNsb3RzOiBObyBkaXJlY3QgaG9zdCBjaGlsZC4gCitQ
QVNTIFNsb3RzOiBEZWZhdWx0IFNsb3QuIAorUEFTUyBTbG90czogU2xvdCBpbiBTbG90IGRvZXMg
bm90IG1hdHRlciBpbiBhc3NpZ25tZW50LiAKK1BBU1MgU2xvdHM6IFNsb3QgaXMgYXNzaWduZWQg
dG8gYW5vdGhlciBzbG90IAorUEFTUyBTbG90czogT3BlbiA+IENsb3NlZC4gCitQQVNTIFNsb3Rz
OiBDbG9zZWQgPiBDbG9zZWQuIAorUEFTUyBTbG90czogQ2xvc2VkID4gT3Blbi4gCitQQVNTIFNs
b3RzOiBDb21wbGV4IGNhc2U6IEJhc2kgbGluZS4gCitQQVNTIFNsb3RzOiBNdXRhdGlvbjogYXBw
ZW5kQ2hpbGQuIAorUEFTUyBTbG90czogTXV0YXRpb246IENoYW5nZSBzbG90PSBhdHRyaWJ1dGUg
MS4gCitQQVNTIFNsb3RzOiBNdXRhdGlvbjogQ2hhbmdlIHNsb3Q9IGF0dHJpYnV0ZSAyLiAKK1BB
U1MgU2xvdHM6IE11dGF0aW9uOiBDaGFuZ2Ugc2xvdD0gYXR0cmlidXRlIDMuIAorUEFTUyBTbG90
czogTXV0YXRpb246IFJlbW92ZSBhIGNoaWxkLiAKK1BBU1MgU2xvdHM6IE11dGF0aW9uOiBBZGQg
YSBzbG90OiBhZnRlci4gCitQQVNTIFNsb3RzOiBNdXRhdGlvbjogQWRkIGEgc2xvdDogYmVmb3Jl
LiAKK1BBU1MgU2xvdHM6IE11dGF0aW9uOiBSZW1vdmUgYSBzbG90LiAKK1BBU1MgU2xvdHM6IE11
dGF0aW9uOiBDaGFuZ2Ugc2xvdCBuYW1lPSBhdHRyaWJ1dGUuIAorUEFTUyBTbG90czogTXV0YXRp
b246IENoYW5nZSBzbG90IHNsb3Q9IGF0dHJpYnV0ZS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90cy1mYWxs
YmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NoYWRvdy1kb20vc2xvdHMtZmFsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI0YTQ0YWRhMjEzMGE2MWQxMWI1YTM3MzE2N2M0YWVlMzhiYTYyODQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vc2xvdHMtZmFsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKworRkFJTCBT
bG90cyBmYWxsYmFjazogQmFzaWMuIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVy
LCBleHBlY3RlZCAxIGdvdCAwCitGQUlMIFNsb3RzIGZhbGxiYWNrOiBTbG90cyBpbiBTbG90cy4g
YXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZB
SUwgU2xvdHMgZmFsbGJhY2s6IEZhbGxiYWNrIGNvbnRlbnRzIHNob3VsZCBub3QgYmUgdXNlZCBp
ZiBhIG5vZGUgaXMgYXNzaWduZWQuIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVy
LCBleHBlY3RlZCAxIGdvdCAwCitGQUlMIFNsb3RzIGZhbGxiYWNrOiBTbG90cyBpbiBTbG90czog
QXNzaW5nZWQgbm9kZXMgc2hvdWxkIGJlIHVzZWQgYXMgZmFsbGJhY2sgY29udGVudHMgb2YgYW5v
dGhlciBzbG90IGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAx
IGdvdCAwCitGQUlMIFNsb3RzIGZhbGxiYWNrOiBDb21wbGV4IGNhc2UuIGFzc2VydF9hcnJheV9l
cXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAyIGdvdCAwCitGQUlMIFNsb3RzIGZhbGxi
YWNrOiBNdXRhdGlvbi4gQXBwZW5kIGZhbGxiYWNrIGNvbnRlbnRzLiBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMyBnb3QgMAorRkFJTCBTbG90cyBmYWxsYmFj
azogTXV0YXRpb24uIFJlbW92ZSBmYWxsYmFjayBjb250ZW50cy4gYXNzZXJ0X2FycmF5X2VxdWFs
czogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK0ZBSUwgU2xvdHMgZmFsbGJhY2s6
IE11dGF0aW9uLiBBc3NpZ24gYSBub2RlIHRvIGEgc2xvdCBzbyB0aGF0IGZhbGxiYWNrIGNvbnRl
bnMgYXJlIG5vIGxvbmdlciB1c2VkLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZl
ciwgZXhwZWN0ZWQgMiBnb3QgMAorRkFJTCBTbG90cyBmYWxsYmFjazogTXV0YXRpb24uIFJlbW92
ZSBhbiBhc3NpZ25lZCBub2RlIGZyb20gYSBzbG90IHNvIHRoYXQgZmFsbGJhY2sgY29udGVucyB3
aWxsIGJlIHVzZWQuIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3Rl
ZCAxIGdvdCAwCitGQUlMIFNsb3RzIGZhbGxiYWNrOiBNdXRhdGlvbi4gIFJlbW92ZSBhIHNsb3Qg
d2hpY2ggaXMgYSBmYWxsYmFjayBjb250ZW50IG9mIGFub3RoZXIgc2xvdC4gYXNzZXJ0X2FycmF5
X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Ns
b3RzLWZhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NoYWRvdy1kb20vc2xvdHMtZmFsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTNiMzIy
YjQ3MjEwYzFhYmNhZjJkOGZhNTE1NjA1OTYxODY1NjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Nsb3Rz
LWZhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSwyMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PlNoYWRvdyBET006IFNsb3RzIGFuZCBmYWxsYmFjayBjb250ZW50czwvdGl0bGU+Cis8bWV0YSBu
YW1lPSJhdXRob3IiIHRpdGxlPSJIYXlhdG8gSXRvIiBocmVmPSJtYWlsdG86aGF5YXRvQGdvb2ds
ZS5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRv
bS5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3QxIj4KKyAgPGRpdiBpZD0iaG9zdCI+Cisg
ICAgPHRlbXBsYXRlIGRhdGEtbW9kZT0ib3BlbiI+CisgICAgICA8c2xvdCBpZD0iczEiIG5hbWU9
InNsb3QxIj4KKyAgICAgICAgPGRpdiBpZD0iZjEiPjwvZGl2PgorICAgICAgPC9zbG90PgorICAg
IDwvdGVtcGxhdGU+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsK
KyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0MSk7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5
VGV4dE5vZGVzKG4udGVzdDEpOworCisgIGFzc2VydF9lcXVhbHMobi5mMS5hc3NpZ25lZFNsb3Qs
IG51bGwpOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKCksIFtd
KTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0
cnVlIH0pLCBbbi5mMV0pOworfSwgJ1Nsb3RzIGZhbGxiYWNrOiBCYXNpYy4nKTsKKzwvc2NyaXB0
PgorCis8ZGl2IGlkPSJ0ZXN0MiI+CisgIDxkaXYgaWQ9Imhvc3QiPgorICAgIDx0ZW1wbGF0ZSBk
YXRhLW1vZGU9Im9wZW4iPgorICAgICAgPHNsb3QgaWQ9InMxIiBuYW1lPSJzbG90MSI+CisgICAg
ICAgIDxzbG90IGlkPSJzMiIgbmFtZT0ic2xvdDIiPgorICAgICAgICAgIDxkaXYgaWQ9ImYxIj48
L2Rpdj4KKyAgICAgICAgPC9zbG90PgorICAgICAgPC9zbG90PgorICAgIDwvdGVtcGxhdGU+Cisg
IDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVh
dGVUZXN0VHJlZSh0ZXN0Mik7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVz
dDIpOworCisgIGFzc2VydF9lcXVhbHMobi5mMS5hc3NpZ25lZFNsb3QsIG51bGwpOworCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKCksIFtdKTsKKyAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhuLnMyLmFzc2lnbmVkTm9kZXMoKSwgW10pOworCisgIGFzc2VydF9hcnJheV9l
cXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uZjFdKTsKKyAg
YXNzZXJ0X2FycmF5X2VxdWFscyhuLnMyLmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0p
LCBbbi5mMV0pOworfSwgJ1Nsb3RzIGZhbGxiYWNrOiBTbG90cyBpbiBTbG90cy4nKTsKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJ0ZXN0MyI+CisgIDxkaXYgaWQ9Imhvc3QiPgorICAgIDx0ZW1wbGF0
ZSBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgPHNsb3QgaWQ9InMxIiBuYW1lPSJzbG90MSI+Cisg
ICAgICAgIDxzbG90IGlkPSJzMiIgbmFtZT0ic2xvdDIiPgorICAgICAgICAgIDxkaXYgaWQ9ImYx
Ij48L2Rpdj4KKyAgICAgICAgPC9zbG90PgorICAgICAgPC9zbG90PgorICAgIDwvdGVtcGxhdGU+
CisgICAgPGRpdiBpZD0iYzEiIHNsb3Q9InNsb3QxIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4K
KworPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3Qz
KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0Myk7CisKKyAgYXNzZXJ0
X2VxdWFscyhuLmMxLmFzc2lnbmVkU2xvdCwgbi5zMSk7CisgIGFzc2VydF9lcXVhbHMobi5mMS5h
c3NpZ25lZFNsb3QsIG51bGwpOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25l
ZE5vZGVzKCksIFtuLmMxXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMi5hc3NpZ25lZE5v
ZGVzKCksIFtdKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczEuYXNzaWduZWROb2Rlcyh7
IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMi5h
c3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uZjFdKTsKK30sICdTbG90cyBmYWxs
YmFjazogRmFsbGJhY2sgY29udGVudHMgc2hvdWxkIG5vdCBiZSB1c2VkIGlmIGEgbm9kZSBpcyBh
c3NpZ25lZC4nKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0NCI+CisgIDxkaXYgaWQ9Imhv
c3QiPgorICAgIDx0ZW1wbGF0ZSBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgPHNsb3QgaWQ9InMx
IiBuYW1lPSJzbG90MSI+CisgICAgICAgIDxzbG90IGlkPSJzMiIgbmFtZT0ic2xvdDIiPgorICAg
ICAgICAgIDxkaXYgaWQ9ImYxIj48L2Rpdj4KKyAgICAgICAgPC9zbG90PgorICAgICAgPC9zbG90
PgorICAgIDwvdGVtcGxhdGU+CisgICAgPGRpdiBpZD0iYzEiIHNsb3Q9InNsb3QyIj48L2Rpdj4K
KyAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNy
ZWF0ZVRlc3RUcmVlKHRlc3Q0KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50
ZXN0NCk7CisKKyAgYXNzZXJ0X2VxdWFscyhuLmMxLmFzc2lnbmVkU2xvdCwgbi5zMik7CisgIGFz
c2VydF9lcXVhbHMobi5mMS5hc3NpZ25lZFNsb3QsIG51bGwpOworCisgIGFzc2VydF9hcnJheV9l
cXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKCksIFtdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhu
LnMyLmFzc2lnbmVkTm9kZXMoKSwgW24uYzFdKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4u
czEuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7CisgIGFzc2VydF9h
cnJheV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzFd
KTsKK30sICdTbG90cyBmYWxsYmFjazogU2xvdHMgaW4gU2xvdHM6IEFzc2luZ2VkIG5vZGVzIHNo
b3VsZCBiZSB1c2VkIGFzIGZhbGxiYWNrIGNvbnRlbnRzIG9mIGFub3RoZXIgc2xvdCcpOworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9InRlc3Q1Ij4KKyAgPGRpdiBpZD0iaG9zdDEiPgorICAgIDx0ZW1w
bGF0ZSBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgPGRpdiBpZD0iaG9zdDIiPgorICAgICAgICA8
dGVtcGxhdGUgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgICAgICA8c2xvdCBpZD0iczQiIG5hbWU9
InNsb3Q0Ij4KKyAgICAgICAgICAgIDxzbG90IGlkPSJzMyIgbmFtZT0ic2xvdDMiPgorICAgICAg
ICAgICAgICA8ZGl2IGlkPSJmMyI+PC9kaXY+CisgICAgICAgICAgICA8L3Nsb3Q+CisgICAgICAg
ICAgICA8ZGl2IGlkPSJmNCI+PC9kaXY+CisgICAgICAgICAgPC9zbG90PgorICAgICAgICA8L3Rl
bXBsYXRlPgorICAgICAgICA8c2xvdCBpZD0iczIiIG5hbWU9InNsb3QyIiBzbG90PSJzbG90MyI+
CisgICAgICAgICAgPHNsb3QgaWQ9InMxIiBuYW1lPSJzbG90MSI+CisgICAgICAgICAgICA8ZGl2
IGlkPSJmMSI+PC9kaXY+CisgICAgICAgICAgPC9zbG90PgorICAgICAgICAgIDxkaXYgaWQ9ImYy
Ij48L2Rpdj4KKyAgICAgICAgPC9zbG90PgorICAgICAgPC9kaXY+CisgICAgPC90ZW1wbGF0ZT4K
KyAgICA8ZGl2IGlkPSJjMSIgc2xvdD0ic2xvdDEiPjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2Pgor
Cis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdDUp
OworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRlc3Q1KTsKKworICBhc3NlcnRf
YXJyYXlfZXF1YWxzKG4uczEuYXNzaWduZWROb2RlcygpLCBbbi5jMV0pOworICBhc3NlcnRfYXJy
YXlfZXF1YWxzKG4uczIuYXNzaWduZWROb2RlcygpLCBbXSk7CisgIGFzc2VydF9hcnJheV9lcXVh
bHMobi5zMy5hc3NpZ25lZE5vZGVzKCksIFtuLnMyXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMo
bi5zNC5hc3NpZ25lZE5vZGVzKCksIFtdKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczEu
YXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7CisgIGFzc2VydF9hcnJh
eV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzEsIG4u
ZjJdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMzLmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVu
OiB0cnVlIH0pLCBbbi5jMSwgbi5mMl0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczQuYXNz
aWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxLCBuLmYyLCBuLmY0XSk7Cit9LCAn
U2xvdHMgZmFsbGJhY2s6IENvbXBsZXggY2FzZS4nKTsKKwordGVzdCgoKSA9PiB7CisgIGxldCBu
ID0gY3JlYXRlVGVzdFRyZWUodGVzdDUpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2Rl
cyhuLnRlc3Q1KTsKKworICBsZXQgZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgbi5zMi5hcHBlbmRDaGlsZChkMSk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFz
c2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5jMV0pOworICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKG4uczIuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxLCBuLmYy
LCBkMV0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczMuYXNzaWduZWROb2Rlcyh7IGZsYXR0
ZW46IHRydWUgfSksIFtuLmMxLCBuLmYyLCBkMV0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4u
czQuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxLCBuLmYyLCBkMSwgbi5m
NF0pOworfSwgJ1Nsb3RzIGZhbGxiYWNrOiBNdXRhdGlvbi4gQXBwZW5kIGZhbGxiYWNrIGNvbnRl
bnRzLicpOworCit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0NSk7
CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdDUpOworCisgIG4uZjIucmVt
b3ZlKCk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoeyBmbGF0
dGVuOiB0cnVlIH0pLCBbbi5jMV0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczIuYXNzaWdu
ZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7CisgIGFzc2VydF9hcnJheV9lcXVh
bHMobi5zMy5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzFdKTsKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhuLnM0LmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBb
bi5jMSwgbi5mNF0pOworfSwgJ1Nsb3RzIGZhbGxiYWNrOiBNdXRhdGlvbi4gUmVtb3ZlIGZhbGxi
YWNrIGNvbnRlbnRzLicpOworCit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJl
ZSh0ZXN0NSk7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdDUpOworCisg
IGxldCBkMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBkMi5zZXRBdHRyaWJ1
dGUoJ3Nsb3QnLCAnc2xvdDInKTsKKyAgbi5ob3N0MS5hcHBlbmRDaGlsZChkMik7CisKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhuLnMyLmFzc2lnbmVkTm9kZXMoKSwgW2QyXSk7CisgIGFzc2VydF9h
cnJheV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW2QyXSk7
CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMy5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1
ZSB9KSwgW2QyXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zNC5hc3NpZ25lZE5vZGVzKHsg
ZmxhdHRlbjogdHJ1ZSB9KSwgW2QyLCBuLmY0XSk7Cit9LCAnU2xvdHMgZmFsbGJhY2s6IE11dGF0
aW9uLiBBc3NpZ24gYSBub2RlIHRvIGEgc2xvdCBzbyB0aGF0IGZhbGxiYWNrIGNvbnRlbnMgYXJl
IG5vIGxvbmdlciB1c2VkLicpOworCit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0
VHJlZSh0ZXN0NSk7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdDUpOwor
CisgIG4uYzEucmVtb3ZlKCk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVk
Tm9kZXMoKSwgW10pOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVz
KHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uZjFdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMy
LmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5mMSwgbi5mMl0pOworICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKG4uczMuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtu
LmYxLCBuLmYyXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zNC5hc3NpZ25lZE5vZGVzKHsg
ZmxhdHRlbjogdHJ1ZSB9KSwgW24uZjEsIG4uZjIsIG4uZjRdKTsKK30sICdTbG90cyBmYWxsYmFj
azogTXV0YXRpb24uIFJlbW92ZSBhbiBhc3NpZ25lZCBub2RlIGZyb20gYSBzbG90IHNvIHRoYXQg
ZmFsbGJhY2sgY29udGVucyB3aWxsIGJlIHVzZWQuJyk7CisKK3Rlc3QoKCkgPT4geworICBsZXQg
biA9IGNyZWF0ZVRlc3RUcmVlKHRlc3Q1KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9k
ZXMobi50ZXN0NSk7CisKKyAgbi5zMS5yZW1vdmUoKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxz
KG4uczEuYXNzaWduZWROb2RlcygpLCBbXSk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMx
LmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5mMV0pOworICBhc3NlcnRfYXJy
YXlfZXF1YWxzKG4uczIuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmYyXSk7
CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMy5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1
ZSB9KSwgW24uZjJdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnM0LmFzc2lnbmVkTm9kZXMo
eyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5mMiwgbi5mNF0pOworfSwgJ1Nsb3RzIGZhbGxiYWNrOiBN
dXRhdGlvbi4gIFJlbW92ZSBhIHNsb3Qgd2hpY2ggaXMgYSBmYWxsYmFjayBjb250ZW50IG9mIGFu
b3RoZXIgc2xvdC4nKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Nsb3RzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2xvdHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMjBmMTk1NDM5ZThjZTQ2ODJmZDQ4NjE4YmZiYzNkODRmZjQyZmM2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zaGFkb3ctZG9tL3Nsb3RzLmh0bWwKQEAgLTAsMCArMSw1MDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRpdGxlPlNoYWRvdyBET006IFNsb3RzIGFuZCBhc3NpZ25tZW50czwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJIYXlhdG8gSXRvIiBocmVmPSJtYWlsdG86aGF5YXRv
QGdvb2dsZS5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
ZG93LWRvbS5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9InRlc3RfYmFzaWMiPgorICA8ZGl2IGlk
PSJob3N0Ij4KKyAgICA8dGVtcGxhdGUgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxzbG90IGlk
PSJzMSIgbmFtZT0ic2xvdDEiPjwvc2xvdD4KKyAgICA8L3RlbXBsYXRlPgorICAgIDxkaXYgaWQ9
ImMxIiBzbG90PSJzbG90MSI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0
ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0X2Jhc2ljKTsKKyAgcmVt
b3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0X2Jhc2ljKTsKKworICBhc3NlcnRfZXF1
YWxzKG4uYzEuYXNzaWduZWRTbG90LCBuLnMxKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMx
LmFzc2lnbmVkTm9kZXMoKSwgW24uYzFdKTsKK30sICdTbG90czogQmFzaWMuJyk7Cis8L3Njcmlw
dD4KKworPGRpdiBpZD0idGVzdF9iYXNpY19jbG9zZWQiPgorICA8ZGl2IGlkPSJob3N0Ij4KKyAg
ICA8dGVtcGxhdGUgZGF0YS1tb2RlPSJjbG9zZWQiPgorICAgICAgPHNsb3QgaWQ9InMxIiBuYW1l
PSJzbG90MSI+PC9zbG90PgorICAgIDwvdGVtcGxhdGU+CisgICAgPGRpdiBpZD0iYzEiIHNsb3Q9
InNsb3QxIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK3Rlc3QoKCkgPT4g
eworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3RfYmFzaWNfY2xvc2VkKTsKKyAgcmVtb3Zl
V2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0X2Jhc2ljX2Nsb3NlZCk7CisKKyAgYXNzZXJ0
X2VxdWFscyhuLmMxLmFzc2lnbmVkU2xvdCwgbnVsbCk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMo
bi5zMS5hc3NpZ25lZE5vZGVzKCksIFtuLmMxXSk7Cit9LCAnU2xvdHM6IFNsb3RzIGluIGNsb3Nl
ZC4nKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0X3Nsb3Rfbm90X2luX3NoYWRvdyI+Cisg
IDxzbG90IGlkPSJzMSI+PC9zbG90PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsK
KyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0X3Nsb3Rfbm90X2luX3NoYWRvdyk7CisgIHJl
bW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdF9zbG90X25vdF9pbl9zaGFkb3cpOwor
CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKCksIFtdKTsKK30sICdT
bG90czogU2xvdHMgbm90IGluIGEgc2hhZG93IHRyZWUuJyk7Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD0idGVzdF9zbG90X25vdF9pbl9zaGFkb3dfMiI+CisgIDxzbG90IGlkPSJzMSI+CisgICAgPGRp
diBpZD0iYzEiPjwvZGl2PgorICA8L3Nsb3Q+CisgIDxzbG90IGlkPSJzMiI+CisgICAgPGRpdiBp
ZD0iYzIiPjwvZGl2PgorICAgIDxzbG90IGlkPSJzMyI+CisgICAgICA8ZGl2IGlkPSJjM18xIj48
L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImMzXzIiPjwvZGl2PgorICAgIDwvc2xvdD4KKyAgPC9zbG90
PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0
VHJlZSh0ZXN0X3Nsb3Rfbm90X2luX3NoYWRvd18yKTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlU
ZXh0Tm9kZXMobi50ZXN0X3Nsb3Rfbm90X2luX3NoYWRvd18yKTsKKworICBhc3NlcnRfZXF1YWxz
KG4uYzEuYXNzaWduZWRTbG90LCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhuLmMyLmFzc2lnbmVk
U2xvdCwgbnVsbCk7CisgIGFzc2VydF9lcXVhbHMobi5jM18xLmFzc2lnbmVkU2xvdCwgbnVsbCk7
CisgIGFzc2VydF9lcXVhbHMobi5jM18yLmFzc2lnbmVkU2xvdCwgbnVsbCk7CisKKyAgYXNzZXJ0
X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoKSwgW10pOworICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKG4uczIuYXNzaWduZWROb2RlcygpLCBbXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMo
bi5zMy5hc3NpZ25lZE5vZGVzKCksIFtdKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczEu
YXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7CisgIGFzc2VydF9hcnJh
eV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzIsIG4u
YzNfMSwgbi5jM18yXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMy5hc3NpZ25lZE5vZGVz
KHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzNfMSwgbi5jM18yXSk7Cit9LCAnU2xvdHM6IERpc3Ry
aWJ1dGVkIG5vb2VzIGZvciBTbG90cyBub3QgaW4gYSBzaGFkb3cgdHJlZS4nKTsKKzwvc2NyaXB0
PgorCis8ZGl2IGlkPSJ0ZXN0X3Nsb3RfbmFtZV9tYXRjaGluZyI+CisgIDxkaXYgaWQ9Imhvc3Qi
PgorICAgIDx0ZW1wbGF0ZSBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgPHNsb3QgaWQ9InMxIiBu
YW1lPSJzbG90MSI+PC9zbG90PgorICAgICAgPHNsb3QgaWQ9InMyIiBuYW1lPSJzbG90MiI+PC9z
bG90PgorICAgICAgPHNsb3QgaWQ9InMzIiBuYW1lPSJ4eHgiPjwvc2xvdD4KKyAgICA8L3RlbXBs
YXRlPgorICAgIDxkaXYgaWQ9ImMxIiBzbG90PSJzbG90MSI+PC9kaXY+CisgICAgPGRpdiBpZD0i
YzIiIHNsb3Q9InNsb3QyIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjMyIgc2xvdD0ieXl5Ij48L2Rp
dj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBsZXQgbiA9
IGNyZWF0ZVRlc3RUcmVlKHRlc3Rfc2xvdF9uYW1lX21hdGNoaW5nKTsKKyAgcmVtb3ZlV2hpdGVT
cGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0X3Nsb3RfbmFtZV9tYXRjaGluZyk7CisKKyAgYXNzZXJ0
X2VxdWFscyhuLmMxLmFzc2lnbmVkU2xvdCwgbi5zMSk7CisgIGFzc2VydF9lcXVhbHMobi5jMi5h
c3NpZ25lZFNsb3QsIG4uczIpOworICBhc3NlcnRfZXF1YWxzKG4uYzMuYXNzaWduZWRTbG90LCBu
dWxsKTsKK30sICdTbG90czogTmFtZSBtYXRjaGluZycpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
InRlc3Rfbm9fZGlyZWN0X2hvc3RfY2hpbGQiPgorICA8ZGl2IGlkPSJob3N0Ij4KKyAgICA8dGVt
cGxhdGUgZGF0YS1tb2RlPSJvcGVuIj4KKyAgICAgIDxzbG90IGlkPSJzMSIgbmFtZT0ic2xvdDEi
Pjwvc2xvdD4KKyAgICAgIDxzbG90IGlkPSJzMiIgbmFtZT0ic2xvdDEiPjwvc2xvdD4KKyAgICA8
L3RlbXBsYXRlPgorICAgIDxkaXYgaWQ9ImMxIiBzbG90PSJzbG90MSI+PC9kaXY+CisgICAgPGRp
diBpZD0iYzIiIHNsb3Q9InNsb3QxIj48L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgPGRpdiBpZD0i
YzMiIHNsb3Q9InNsb3QxIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKwor
PHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3Rfbm9f
ZGlyZWN0X2hvc3RfY2hpbGQpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRl
c3Rfbm9fZGlyZWN0X2hvc3RfY2hpbGQpOworCisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3NpZ25l
ZFNsb3QsIG4uczEpOworICBhc3NlcnRfZXF1YWxzKG4uYzIuYXNzaWduZWRTbG90LCBuLnMxKTsK
KyAgYXNzZXJ0X2VxdWFscyhuLmMzLmFzc2lnbmVkU2xvdCwgbnVsbCk7CisKKyAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoKSwgW24uYzEsIG4uYzJdKTsKK30sICdTbG90
czogTm8gZGlyZWN0IGhvc3QgY2hpbGQuJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdF9k
ZWZhdWx0X3Nsb3QiPgorICA8ZGl2IGlkPSJob3N0Ij4KKyAgICA8dGVtcGxhdGUgZGF0YS1tb2Rl
PSJvcGVuIj4KKyAgICAgIDxzbG90IGlkPSJzMSIgbmFtZT0ic2xvdDEiPjwvc2xvdD4KKyAgICAg
IDxzbG90IGlkPSJzMiI+PC9zbG90PgorICAgICAgPHNsb3QgaWQ9InMzIj48L3Nsb3Q+CisgICAg
PC90ZW1wbGF0ZT4KKyAgICA8ZGl2IGlkPSJjMSI+PC9kaXY+CisgICAgPGRpdiBpZD0iYzIiIHNs
b3Q9IiI+PC9kaXY+CisgICAgPGRpdiBpZD0iYzMiIHNsb3Q9ImZvbyI+PC9kaXY+CisgIDwvZGl2
PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0
VHJlZSh0ZXN0X2RlZmF1bHRfc2xvdCk7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVz
KG4udGVzdF9kZWZhdWx0X3Nsb3QpOworCisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3NpZ25lZFNs
b3QsIG4uczIpOworICBhc3NlcnRfZXF1YWxzKG4uYzIuYXNzaWduZWRTbG90LCBuLnMyKTsKKyAg
YXNzZXJ0X2VxdWFscyhuLmMzLmFzc2lnbmVkU2xvdCwgbnVsbCk7Cit9LCAnU2xvdHM6IERlZmF1
bHQgU2xvdC4nKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0ZXN0X3Nsb3RfaW5fc2xvdCI+Cisg
IDxkaXYgaWQ9Imhvc3QiPgorICAgIDx0ZW1wbGF0ZSBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAg
PHNsb3QgaWQ9InMxIiBuYW1lPSJzbG90MSI+CisgICAgICAgIDxzbG90IGlkPSJzMiIgbmFtZT0i
c2xvdDIiPjwvc2xvdD4KKyAgICAgIDwvc2xvdD4KKyAgICA8L3RlbXBsYXRlPgorICAgIDxkaXYg
aWQ9ImMxIiBzbG90PSJzbG90MiI+PC9kaXY+CisgICAgPGRpdiBpZD0iYzIiIHNsb3Q9InNsb3Qx
Ij48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBs
ZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3Rfc2xvdF9pbl9zbG90KTsKKyAgcmVtb3ZlV2hpdGVT
cGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0X3Nsb3RfaW5fc2xvdCk7CisKKyAgYXNzZXJ0X2VxdWFs
cyhuLmMxLmFzc2lnbmVkU2xvdCwgbi5zMik7CisgIGFzc2VydF9lcXVhbHMobi5jMi5hc3NpZ25l
ZFNsb3QsIG4uczEpOworfSwgJ1Nsb3RzOiBTbG90IGluIFNsb3QgZG9lcyBub3QgbWF0dGVyIGlu
IGFzc2lnbm1lbnQuJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdF9zbG90X2lzX2Fzc2ln
bmVkX3RvX3Nsb3QiPgorICA8ZGl2IGlkPSJob3N0MSI+CisgICAgPHRlbXBsYXRlIGRhdGEtbW9k
ZT0ib3BlbiI+CisgICAgICA8ZGl2IGlkPSJob3N0MiI+CisgICAgICAgIDx0ZW1wbGF0ZSBkYXRh
LW1vZGU9Im9wZW4iPgorICAgICAgICAgIDxzbG90IGlkPSJzMiIgbmFtZT0ic2xvdDIiPjwvc2xv
dD4KKyAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgICAgPHNsb3QgaWQ9InMxIiBuYW1lPSJzbG90
MSIgc2xvdD0ic2xvdDIiPjwvc2xvdD4KKyAgICAgIDwvZGl2PgorICAgIDwvdGVtcGxhdGU+Cisg
ICAgPGRpdiBpZD0iYzEiIHNsb3Q9InNsb3QxIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKwor
PHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3Rfc2xv
dF9pc19hc3NpZ25lZF90b19zbG90KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMo
bi50ZXN0X3Nsb3RfaXNfYXNzaWduZWRfdG9fc2xvdCk7CisKKyAgYXNzZXJ0X2VxdWFscyhuLmMx
LmFzc2lnbmVkU2xvdCwgbi5zMSk7CisgIGFzc2VydF9lcXVhbHMobi5zMS5hc3NpZ25lZFNsb3Qs
IG4uczIpOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKCksIFtu
LmMxXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKCksIFtuLnMx
XSk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVu
OiB0cnVlIH0pLCBbbi5jMV0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczIuYXNzaWduZWRO
b2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7Cit9LCAnU2xvdHM6IFNsb3QgaXMgYXNz
aWduZWQgdG8gYW5vdGhlciBzbG90Jyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdF9vcGVu
X2Nsb3NlZCI+CisgIDxkaXYgaWQ9Imhvc3QxIj4KKyAgICA8dGVtcGxhdGUgZGF0YS1tb2RlPSJv
cGVuIj4KKyAgICAgIDxkaXYgaWQ9Imhvc3QyIj4KKyAgICAgICAgPHRlbXBsYXRlIGRhdGEtbW9k
ZT0iY2xvc2VkIj4KKyAgICAgICAgICA8c2xvdCBpZD0iczIiIG5hbWU9InNsb3QyIj48L3Nsb3Q+
CisgICAgICAgIDwvdGVtcGxhdGU+CisgICAgICAgIDxzbG90IGlkPSJzMSIgbmFtZT0ic2xvdDEi
IHNsb3Q9InNsb3QyIj48L3Nsb3Q+CisgICAgICA8L2Rpdj4KKyAgICA8L3RlbXBsYXRlPgorICAg
IDxkaXYgaWQ9ImMxIiBzbG90PSJzbG90MSI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxz
Y3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0X29wZW5f
Y2xvc2VkKTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0X29wZW5fY2xv
c2VkKTsKKworICBhc3NlcnRfZXF1YWxzKG4uYzEuYXNzaWduZWRTbG90LCBuLnMxKTsKKyAgYXNz
ZXJ0X2VxdWFscyhuLnMxLmFzc2lnbmVkU2xvdCwgbnVsbCwKKyAgICAgICAgICAgICAgICAnQSBz
bG90IGluIGEgY2xvc2VkIHNoYWRvdyB0cmVlIHNob3VsZCBub3QgYmUgYWNjZXNzZWQgdmlhIGFz
c2lnbmVkU2xvdCcpOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVz
KCksIFtuLmMxXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKCks
IFtuLnMxXSk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoeyBm
bGF0dGVuOiB0cnVlIH0pLCBbbi5jMV0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczIuYXNz
aWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7Cit9LCAnU2xvdHM6IE9wZW4g
PiBDbG9zZWQuJyk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0idGVzdF9jbG9zZWRfY2xvc2VkIj4K
KyAgPGRpdiBpZD0iaG9zdDEiPgorICAgIDx0ZW1wbGF0ZSBkYXRhLW1vZGU9ImNsb3NlZCI+Cisg
ICAgICA8ZGl2IGlkPSJob3N0MiI+CisgICAgICAgIDx0ZW1wbGF0ZSBkYXRhLW1vZGU9ImNsb3Nl
ZCI+CisgICAgICAgICAgPHNsb3QgaWQ9InMyIiBuYW1lPSJzbG90MiI+PC9zbG90PgorICAgICAg
ICA8L3RlbXBsYXRlPgorICAgICAgICA8c2xvdCBpZD0iczEiIG5hbWU9InNsb3QxIiBzbG90PSJz
bG90MiI+PC9zbG90PgorICAgICAgPC9kaXY+CisgICAgPC90ZW1wbGF0ZT4KKyAgICA8ZGl2IGlk
PSJjMSIgc2xvdD0ic2xvdDEiPjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0Pgor
dGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUodGVzdF9jbG9zZWRfY2xvc2Vk
KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0X2Nsb3NlZF9jbG9zZWQp
OworCisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3NpZ25lZFNsb3QsIG51bGwsCisgICAgICAgICAg
ICAgICAgJ0Egc2xvdCBpbiBhIGNsb3NlZCBzaGFkb3cgdHJlZSBzaG91bGQgbm90IGJlIGFjY2Vz
c2VkIHZpYSBhc3NpZ25lZFNsb3QnKTsKKyAgYXNzZXJ0X2VxdWFscyhuLnMxLmFzc2lnbmVkU2xv
dCwgbnVsbCwKKyAgICAgICAgICAgICAgICAnQSBzbG90IGluIGEgY2xvc2VkIHNoYWRvdyB0cmVl
IHNob3VsZCBub3QgYmUgYWNjZXNzZWQgdmlhIGFzc2lnbmVkU2xvdCcpOworCisgIGFzc2VydF9h
cnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKCksIFtuLmMxXSk7CisgIGFzc2VydF9hcnJh
eV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKCksIFtuLnMxXSk7CisKKyAgYXNzZXJ0X2FycmF5
X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5jMV0pOwor
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczIuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUg
fSksIFtuLmMxXSk7Cit9LCAnU2xvdHM6IENsb3NlZCA+IENsb3NlZC4nKTsKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJ0ZXN0X2Nsb3NlZF9vcGVuIj4KKyAgPGRpdiBpZD0iaG9zdDEiPgorICAgIDx0
ZW1wbGF0ZSBkYXRhLW1vZGU9ImNsb3NlZCI+CisgICAgICA8ZGl2IGlkPSJob3N0MiI+CisgICAg
ICAgIDx0ZW1wbGF0ZSBkYXRhLW1vZGU9Im9wZW4iPgorICAgICAgICAgIDxzbG90IGlkPSJzMiIg
bmFtZT0ic2xvdDIiPjwvc2xvdD4KKyAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgICAgPHNsb3Qg
aWQ9InMxIiBuYW1lPSJzbG90MSIgc2xvdD0ic2xvdDIiPjwvc2xvdD4KKyAgICAgIDwvZGl2Pgor
ICAgIDwvdGVtcGxhdGU+CisgICAgPGRpdiBpZD0iYzEiIHNsb3Q9InNsb3QxIj48L2Rpdj4KKyAg
PC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0
ZVRlc3RUcmVlKHRlc3RfY2xvc2VkX29wZW4pOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHRO
b2RlcyhuLnRlc3RfY2xvc2VkX29wZW4pOworCisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3NpZ25l
ZFNsb3QsIG51bGwsCisgICAgICAgICAgICAgICAgJ0Egc2xvdCBpbiBhIGNsb3NlZCBzaGFkb3cg
dHJlZSBzaG91bGQgbm90IGJlIGFjY2Vzc2VkIHZpYSBhc3NpZ25lZFNsb3QnKTsKKyAgYXNzZXJ0
X2VxdWFscyhuLnMxLmFzc2lnbmVkU2xvdCwgbi5zMik7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhuLnMxLmFzc2lnbmVkTm9kZXMoKSwgW24uYzFdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhu
LnMyLmFzc2lnbmVkTm9kZXMoKSwgW24uczFdKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4u
czEuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMxXSk7CisgIGFzc2VydF9h
cnJheV9lcXVhbHMobi5zMi5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzFd
KTsKK30sICdTbG90czogQ2xvc2VkID4gT3Blbi4nKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0
ZXN0X2NvbXBsZXgiPgorICA8ZGl2IGlkPSJob3N0MSI+CisgICAgPHRlbXBsYXRlIGRhdGEtbW9k
ZT0ib3BlbiI+CisgICAgICA8ZGl2IGlkPSJob3N0MiI+CisgICAgICAgIDx0ZW1wbGF0ZSBkYXRh
LW1vZGU9Im9wZW4iPgorICAgICAgICAgIDxzbG90IGlkPSJzNSIgbmFtZT0ic2xvdDUiPjwvc2xv
dD4KKyAgICAgICAgICA8c2xvdCBpZD0iczYiIG5hbWU9InNsb3Q2Ij48L3Nsb3Q+CisgICAgICAg
ICAgPHNsb3QgaWQ9InM3Ij48L3Nsb3Q+CisgICAgICAgICAgPHNsb3QgaWQ9InM4IiBuYW1lPSJz
bG90OCI+PC9zbG90PgorICAgICAgICA8L3RlbXBsYXRlPgorICAgICAgICA8c2xvdCBpZD0iczEi
IG5hbWU9InNsb3QxIiBzbG90PSJzbG90NSI+PC9zbG90PgorICAgICAgICA8c2xvdCBpZD0iczIi
IG5hbWU9InNsb3QyIiBzbG90PSJzbG90NiI+PC9zbG90PgorICAgICAgICA8c2xvdCBpZD0iczMi
Pjwvc2xvdD4KKyAgICAgICAgPHNsb3QgaWQ9InM0IiBuYW1lPSJzbG90NCIgc2xvdD0ic2xvdC1u
b25lIj48L3Nsb3Q+CisgICAgICAgIDxkaXYgaWQ9ImM1IiBzbG90PSJzbG90NSI+PC9kaXY+Cisg
ICAgICAgIDxkaXYgaWQ9ImM2IiBzbG90PSJzbG90NiI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
ImM3Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYzgiIHNsb3Q9InNsb3Qtbm9uZSI+PC9kaXY+
CisgICAgICA8L2Rpdj4KKyAgICA8L3RlbXBsYXRlPgorICAgIDxkaXYgaWQ9ImMxIiBzbG90PSJz
bG90MSI+PC9kaXY+CisgICAgPGRpdiBpZD0iYzIiIHNsb3Q9InNsb3QyIj48L2Rpdj4KKyAgICA8
ZGl2IGlkPSJjMyI+PC9kaXY+CisgICAgPGRpdiBpZD0iYzQiIHNsb3Q9InNsb3Qtbm9uZSI+PC9k
aXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4g
PSBjcmVhdGVUZXN0VHJlZSh0ZXN0X2NvbXBsZXgpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRl
eHROb2RlcyhuLnRlc3RfY29tcGxleCk7CisKKyAgYXNzZXJ0X2VxdWFscyhuLmMxLmFzc2lnbmVk
U2xvdCwgbi5zMSk7CisgIGFzc2VydF9lcXVhbHMobi5jMi5hc3NpZ25lZFNsb3QsIG4uczIpOwor
ICBhc3NlcnRfZXF1YWxzKG4uYzMuYXNzaWduZWRTbG90LCBuLnMzKTsKKyAgYXNzZXJ0X2VxdWFs
cyhuLmM0LmFzc2lnbmVkU2xvdCwgbnVsbCk7CisKKyAgYXNzZXJ0X2VxdWFscyhuLnMxLmFzc2ln
bmVkU2xvdCwgbi5zNSk7CisgIGFzc2VydF9lcXVhbHMobi5zMi5hc3NpZ25lZFNsb3QsIG4uczYp
OworICBhc3NlcnRfZXF1YWxzKG4uczMuYXNzaWduZWRTbG90LCBuLnM3KTsKKyAgYXNzZXJ0X2Vx
dWFscyhuLnM0LmFzc2lnbmVkU2xvdCwgbnVsbCk7CisKKyAgYXNzZXJ0X2VxdWFscyhuLmM1LmFz
c2lnbmVkU2xvdCwgbi5zNSk7CisgIGFzc2VydF9lcXVhbHMobi5jNi5hc3NpZ25lZFNsb3QsIG4u
czYpOworICBhc3NlcnRfZXF1YWxzKG4uYzcuYXNzaWduZWRTbG90LCBuLnM3KTsKKyAgYXNzZXJ0
X2VxdWFscyhuLmM4LmFzc2lnbmVkU2xvdCwgbnVsbCk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhuLnMxLmFzc2lnbmVkTm9kZXMoKSwgW24uYzFdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhu
LnMyLmFzc2lnbmVkTm9kZXMoKSwgW24uYzJdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMz
LmFzc2lnbmVkTm9kZXMoKSwgW24uYzNdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnM0LmFz
c2lnbmVkTm9kZXMoKSwgW10pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczUuYXNzaWduZWRO
b2RlcygpLCBbbi5zMSwgbi5jNV0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczYuYXNzaWdu
ZWROb2RlcygpLCBbbi5zMiwgbi5jNl0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczcuYXNz
aWduZWROb2RlcygpLCBbbi5zMywgbi5jN10pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczgu
YXNzaWduZWROb2RlcygpLCBbXSk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2ln
bmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5jMV0pOworICBhc3NlcnRfYXJyYXlfZXF1
YWxzKG4uczIuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmMyXSk7CisgIGFz
c2VydF9hcnJheV9lcXVhbHMobi5zMy5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwg
W24uYzNdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnM0LmFzc2lnbmVkTm9kZXMoeyBmbGF0
dGVuOiB0cnVlIH0pLCBbXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zNS5hc3NpZ25lZE5v
ZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzEsIG4uYzVdKTsKKyAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhuLnM2LmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5jMiwgbi5jNl0p
OworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczcuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRy
dWUgfSksIFtuLmMzLCBuLmM3XSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zOC5hc3NpZ25l
ZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW10pOworfSwgJ1Nsb3RzOiBDb21wbGV4IGNhc2U6
IEJhc2kgbGluZS4nKTsKKwordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRlVGVzdFRyZWUo
dGVzdF9jb21wbGV4KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMobi50ZXN0X2Nv
bXBsZXgpOworCisgIGxldCBkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBk
MS5zZXRBdHRyaWJ1dGUoJ3Nsb3QnLCAnc2xvdDEnKTsKKyAgbi5ob3N0MS5hcHBlbmRDaGlsZChk
MSk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoKSwgW24uYzEs
IGQxXSk7CisgIGFzc2VydF9lcXVhbHMoZDEuYXNzaWduZWRTbG90LCBuLnMxKTsKKworICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKG4uczUuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtu
LmMxLCBkMSwgbi5jNV0pOworfSwgJ1Nsb3RzOiBNdXRhdGlvbjogYXBwZW5kQ2hpbGQuJyk7CisK
K3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3RfY29tcGxleCk7Cisg
IHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdF9jb21wbGV4KTsKKworICBuLmMx
LnNldEF0dHJpYnV0ZSgnc2xvdCcsICdzbG90LW5vbmUnKTsKKworICBhc3NlcnRfYXJyYXlfZXF1
YWxzKG4uczEuYXNzaWduZWROb2RlcygpLCBbXSk7CisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3Np
Z25lZFNsb3QsIG51bGwpOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zNS5hc3NpZ25lZE5v
ZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24uYzVdKTsKK30sICdTbG90czogTXV0YXRpb246IENo
YW5nZSBzbG90PSBhdHRyaWJ1dGUgMS4nKTsKKwordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3Jl
YXRlVGVzdFRyZWUodGVzdF9jb21wbGV4KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9k
ZXMobi50ZXN0X2NvbXBsZXgpOworCisgIG4uYzEuc2V0QXR0cmlidXRlKCdzbG90JywgJ3Nsb3Qy
Jyk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoKSwgW10pOwor
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczIuYXNzaWduZWROb2RlcygpLCBbbi5jMSwgbi5jMl0p
OworICBhc3NlcnRfZXF1YWxzKG4uYzEuYXNzaWduZWRTbG90LCBuLnMyKTsKKworICBhc3NlcnRf
YXJyYXlfZXF1YWxzKG4uczUuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUgfSksIFtuLmM1
XSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zNi5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjog
dHJ1ZSB9KSwgW24uYzEsIG4uYzIsIG4uYzZdKTsKK30sICdTbG90czogTXV0YXRpb246IENoYW5n
ZSBzbG90PSBhdHRyaWJ1dGUgMi4nKTsKKwordGVzdCgoKSA9PiB7CisgIGxldCBuID0gY3JlYXRl
VGVzdFRyZWUodGVzdF9jb21wbGV4KTsKKyAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMo
bi50ZXN0X2NvbXBsZXgpOworCisgIG4uYzQuc2V0QXR0cmlidXRlKCdzbG90JywgJ3Nsb3QxJyk7
CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnMxLmFzc2lnbmVkTm9kZXMoKSwgW24uYzEsIG4u
YzRdKTsKKyAgYXNzZXJ0X2VxdWFscyhuLmM0LmFzc2lnbmVkU2xvdCwgbi5zMSk7CisKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhuLnM1LmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBb
bi5jMSwgbi5jNCwgbi5jNV0pOworfSwgJ1Nsb3RzOiBNdXRhdGlvbjogQ2hhbmdlIHNsb3Q9IGF0
dHJpYnV0ZSAzLicpOworCit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0
ZXN0X2NvbXBsZXgpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRlc3RfY29t
cGxleCk7CisKKyAgbi5jMS5yZW1vdmUoKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczEu
YXNzaWduZWROb2RlcygpLCBbXSk7CisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3NpZ25lZFNsb3Qs
IG51bGwpOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zNS5hc3NpZ25lZE5vZGVzKHsgZmxh
dHRlbjogdHJ1ZSB9KSwgW24uYzVdKTsKK30sICdTbG90czogTXV0YXRpb246IFJlbW92ZSBhIGNo
aWxkLicpOworCit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0X2Nv
bXBsZXgpOworICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRlc3RfY29tcGxleCk7
CisKKyAgbGV0IHNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgIHNsb3Qu
c2V0QXR0cmlidXRlKCduYW1lJywgJ3Nsb3QxJyk7CisgIG4uaG9zdDIuYXBwZW5kQ2hpbGQoc2xv
dCk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90LmFzc2lnbmVkTm9kZXMoKSwgW10pOwor
fSwgJ1Nsb3RzOiBNdXRhdGlvbjogQWRkIGEgc2xvdDogYWZ0ZXIuJyk7CisKK3Rlc3QoKCkgPT4g
eworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3RfY29tcGxleCk7CisgIHJlbW92ZVdoaXRl
U3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdF9jb21wbGV4KTsKKworICBsZXQgc2xvdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgc2xvdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAn
c2xvdDEnKTsKKyAgbi5ob3N0Mi5pbnNlcnRCZWZvcmUoc2xvdCwgbi5zMSk7CisKKyAgYXNzZXJ0
X2FycmF5X2VxdWFscyhzbG90LmFzc2lnbmVkTm9kZXMoKSwgW24uYzFdKTsKKyAgYXNzZXJ0X2Vx
dWFscyhuLmMxLmFzc2lnbmVkU2xvdCwgc2xvdCk7CisKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhu
LnM3LmFzc2lnbmVkTm9kZXMoKSwgW3Nsb3QsIG4uczMsIG4uYzddKTsKKyAgYXNzZXJ0X2FycmF5
X2VxdWFscyhuLnM3LmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVlIH0pLCBbbi5jMSwgbi5j
Mywgbi5jN10pOworfSwgJ1Nsb3RzOiBNdXRhdGlvbjogQWRkIGEgc2xvdDogYmVmb3JlLicpOwor
Cit0ZXN0KCgpID0+IHsKKyAgbGV0IG4gPSBjcmVhdGVUZXN0VHJlZSh0ZXN0X2NvbXBsZXgpOwor
ICByZW1vdmVXaGl0ZVNwYWNlT25seVRleHROb2RlcyhuLnRlc3RfY29tcGxleCk7CisKKyAgbi5z
MS5yZW1vdmUoKTsKKworICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczEuYXNzaWduZWROb2Rlcygp
LCBbXSk7CisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3NpZ25lZFNsb3QsIG51bGwpOworCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobi5zNS5hc3NpZ25lZE5vZGVzKCksIFtuLmM1XSk7CisgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobi5zNS5hc3NpZ25lZE5vZGVzKHsgZmxhdHRlbjogdHJ1ZSB9KSwgW24u
YzVdKTsKK30sICdTbG90czogTXV0YXRpb246IFJlbW92ZSBhIHNsb3QuJyk7CisKK3Rlc3QoKCkg
PT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVlKHRlc3RfY29tcGxleCk7CisgIHJlbW92ZVdo
aXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdF9jb21wbGV4KTsKKworICBuLnMxLnNldEF0dHJp
YnV0ZSgnbmFtZScsICdzbG90MicpOworCisgIGFzc2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3Np
Z25lZE5vZGVzKCksIFtuLmMyXSk7CisgIGFzc2VydF9lcXVhbHMobi5jMS5hc3NpZ25lZFNsb3Qs
IG51bGwpOworICBhc3NlcnRfZXF1YWxzKG4uYzIuYXNzaWduZWRTbG90LCBuLnMxKTsKKworICBh
c3NlcnRfYXJyYXlfZXF1YWxzKG4uczUuYXNzaWduZWROb2RlcygpLCBbbi5zMSwgbi5jNV0pOwor
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKG4uczUuYXNzaWduZWROb2Rlcyh7IGZsYXR0ZW46IHRydWUg
fSksIFtuLmMyLCBuLmM1XSk7Cit9LCAnU2xvdHM6IE11dGF0aW9uOiBDaGFuZ2Ugc2xvdCBuYW1l
PSBhdHRyaWJ1dGUuJyk7CisKK3Rlc3QoKCkgPT4geworICBsZXQgbiA9IGNyZWF0ZVRlc3RUcmVl
KHRlc3RfY29tcGxleCk7CisgIHJlbW92ZVdoaXRlU3BhY2VPbmx5VGV4dE5vZGVzKG4udGVzdF9j
b21wbGV4KTsKKworICBuLnMxLnNldEF0dHJpYnV0ZSgnc2xvdCcsICdzbG90NicpOworCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobi5zMS5hc3NpZ25lZE5vZGVzKCksIFtuLmMxXSk7CisKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhuLnM1LmFzc2lnbmVkTm9kZXMoKSwgW24uYzVdKTsKKyAgYXNzZXJ0
X2FycmF5X2VxdWFscyhuLnM2LmFzc2lnbmVkTm9kZXMoKSwgW24uczEsIG4uczIsIG4uYzZdKTsK
KyAgYXNzZXJ0X2FycmF5X2VxdWFscyhuLnM2LmFzc2lnbmVkTm9kZXMoeyBmbGF0dGVuOiB0cnVl
IH0pLCBbbi5jMSwgbi5jMiwgbi5jNl0pOworfSwgJ1Nsb3RzOiBNdXRhdGlvbjogQ2hhbmdlIHNs
b3Qgc2xvdD0gYXR0cmlidXRlLicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI3ODk1NTJkOTczODRhMTBkOWM5NzQ2NzA3
YWNjZWQ4MTA5YzI3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDQwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9y
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CisJaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93
LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtYWRvcHROb2RlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vRG9jdW1lbnQtcHJvdG90eXBl
LWN1cnJlbnRTY3JpcHQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2hhZG93LWRvbS9Eb2N1bWVudC1wcm90b3R5cGUtaW1wb3J0Tm9kZS5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0Vs
ZW1lbnQtaW50ZXJmYWNlLWF0dGFjaFNoYWRvdy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL0VsZW1lbnQtaW50ZXJmYWNlLXNoYWRv
d1Jvb3QtYXR0cmlidXRlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vRXh0ZW5zaW9ucy10by1FdmVudC1JbnRlcmZhY2UuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9I
VE1MU2xvdEVsZW1lbnQtaW50ZXJmYWNlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vTW91c2VFdmVudC1wcm90b3R5cGUtb2Zmc2V0
WC1vZmZzZXRZLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NoYWRvdy1kb20vTm9kZS1wcm90b3R5cGUtY2xvbmVOb2RlLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vT1dORVJTCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL1NoYWRv
d1Jvb3QtaW50ZXJmYWNlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vU2xvdGFibGUtaW50ZXJmYWNlLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtY29tcG9z
ZWQtcGF0aC13aXRoLXJlbGF0ZWQtdGFyZ2V0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtY29tcG9zZWQtcGF0aC5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9t
L2V2ZW50LWNvbXBvc2VkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNoYWRvdy10cmVlLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZXZlbnQt
aW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2V2ZW50LXdpdGgtcmVsYXRlZC10YXJnZXQuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9z
Y3JvbGwtdG8tdGhlLWZyYWdtZW50LWluLXNoYWRvdy10cmVlLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVu
dC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFk
b3ctZG9tL3Nsb3RjaGFuZ2UuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2hhZG93LWRvbS9zbG90cy1mYWxsYmFjay5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3Nsb3RzLmh0bWwK
</data>
<flag name="review"
          id="313202"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>