<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>218208</bug_id>
          
          <creation_ts>2008-04-18 04:00 0000</creation_ts>
          <short_desc>media-libs/allegro-4.2.2 fails in eautoreconf</short_desc>
          <delta_ts>2008-06-01 15:55:37 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217647</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>zeekec@mad.scientist.com</reporter>
          <assigned_to>games@gentoo.org</assigned_to>
          <cc>andoni.zubimendi@gmail.com</cc>
    
    <cc>drwook@users.sourceforge.net</cc>
    
    <cc>hawking@gentoo.org</cc>
    
    <cc>hind@narod.ru</cc>
    
    <cc>james.ausmus@gmail.com</cc>
    
    <cc>jgrimbert@free.fr</cc>
    
    <cc>rolipong@web.de</cc>

      

      
          <long_desc isprivate="0">
            <who>zeekec@mad.scientist.com</who>
            <bug_when>2008-04-18 04:00:49 0000</bug_when>
            <thetext>Not sure what the problem is.

&gt;&gt;&gt; Emerging (1 of 3) media-libs/allegro-4.2.2 to /
 * allegro-4.2.2.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                                      [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                                                         [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                        [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                       [ ok ]
 * checking allegro-4.2.2.tar.gz ;-) ...                                                                                                                                     [ ok ]
&gt;&gt;&gt; Unpacking source...
&gt;&gt;&gt; Unpacking allegro-4.2.2.tar.gz to /gentoo/tmp/portage/media-libs/allegro-4.2.2/work
 * Applying allegro-4.2.2-exec-stack.patch ...                                                                                                                               [ ok ]
 * Applying allegro-4.2.2-flags.patch ...                                                                                                                                    [ ok ]
 * Running eautoreconf in &apos;/gentoo/tmp/portage/media-libs/allegro-4.2.2/work/allegro-4.2.2&apos; ...
 * Running autoconf ...                                                                                                                                                      [ !! ]

 * Failed Running autoconf !
 *
 * Include in your bugreport the contents of:
 *
 *   /gentoo/tmp/portage/media-libs/allegro-4.2.2/temp/autoconf-22221.out

 *
 * ERROR: media-libs/allegro-4.2.2 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_unpack
 *             environment, line 2569:  Called eautoreconf
 *             environment, line  876:  Called eautoconf
 *             environment, line  819:  Called autotools_run_tool &apos;autoconf&apos;
 *             environment, line  372:  Called die
 * The specific snippet of code:
 *           die &quot;Failed Running $1 !&quot;;
 *  The die message:
 *   Failed Running autoconf !
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at &apos;/var/log/portage/media-libs:allegro-4.2.2:20080418-035658.log&apos;.
 * The ebuild environment file is located at &apos;/gentoo/tmp/portage/media-libs/allegro-4.2.2/temp/environment&apos;.
 *</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zeekec@mad.scientist.com</who>
            <bug_when>2008-04-18 04:01:23 0000</bug_when>
            <thetext>Created an attachment (id=150126)
autoconf output

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zeekec@mad.scientist.com</who>
            <bug_when>2008-04-18 04:01:55 0000</bug_when>
            <thetext>Created an attachment (id=150127)
emerge --info

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>nyhm@gentoo.org</who>
            <bug_when>2008-04-29 20:23:48 0000</bug_when>
            <thetext>*** Bug 219724 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>james.ausmus@gmail.com</who>
            <bug_when>2008-05-06 14:32:54 0000</bug_when>
            <thetext>I&apos;m hitting this one as well, amd64 system, exact same autoconf-xxxx.out file contents.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mr_bones_@gentoo.org</who>
            <bug_when>2008-05-22 18:23:05 0000</bug_when>
            <thetext>Please attach the configure file from the build directory so I can see where it went off the rails.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zeekec@mad.scientist.com</who>
            <bug_when>2008-05-22 18:50:34 0000</bug_when>
            <thetext>Created an attachment (id=153967)
configure

As requested: configure

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zeekec@mad.scientist.com</who>
            <bug_when>2008-05-22 18:56:03 0000</bug_when>
            <thetext>Created an attachment (id=153973)
aclocal.m4

Line 196 is:
AC_MSG_CHECKING(for System V sys/procfs)

It&apos;s not inside a function.  Is that allowed?
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mr_bones_@gentoo.org</who>
            <bug_when>2008-05-22 19:14:04 0000</bug_when>
            <thetext>try replacing that line with:

AC_MSG_CHECKING([for System V sys/procfs])

and see if it works better.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hind@narod.ru</who>
            <bug_when>2008-05-31 18:47:30 0000</bug_when>
            <thetext>WORKAROUND: Since this probably won&apos;t be fixed until autoconf-2.62 goes stable, those having problems (like I did) with this package may just mask autoconf-2.62, then allegro compiles just fine with the previous version.
(for reference, I&apos;m on amd64 too)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>nyhm@gentoo.org</who>
            <bug_when>2008-06-01 15:55:37 0000</bug_when>
            <thetext>Fixed in allegro-4.2.2-r1, thanks.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>150126</attachid>
            <date>2008-04-18 04:01 0000</date>
            <desc>autoconf output</desc>
            <filename>autoconf-22221.out</filename>
            <type>text/plain</type>
            <data encoding="base64">KioqKiogYXV0b2NvbmYgKioqKioKKioqKiogYXV0b2NvbmYKCmFjbG9jYWwubTQ6MTk2OiBlcnJv
cjogbTRfZGVmbjogdW5kZWZpbmVkIG1hY3JvOiBfbTRfZGl2ZXJ0X2RpdmVyc2lvbgphY2xvY2Fs
Lm00OjE5NjogdGhlIHRvcCBsZXZlbAphdXRvbTR0ZS0yLjYyOiAvdXNyL2Jpbi9tNCBmYWlsZWQg
d2l0aCBleGl0IHN0YXR1czogMQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>150127</attachid>
            <date>2008-04-18 04:01 0000</date>
            <desc>emerge --info</desc>
            <filename>emerge_info.txt</filename>
            <type>text/plain</type>
            <data encoding="base64">UG9ydGFnZSAyLjEuNV9yYzQgKGRlZmF1bHQvbGludXgveDg2LzIwMDguMC9kZXNrdG9wLCBnY2Mt
NC4yLjMsIGdsaWJjLTIuNy1yMiwgMi42LjI0LWdlbnRvby1yNSBpNjg2KQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpTeXN0
ZW0gdW5hbWU6IDIuNi4yNC1nZW50b28tcjUgaTY4NiBJbnRlbChSKSBQZW50aXVtKFIpIDQgQ1BV
IDMuMDBHSHoKVGltZXN0YW1wIG9mIHRyZWU6IEZyaSwgMTggQXByIDIwMDggMDI6NDU6MDEgKzAw
MDAKZGlzdGNjIDIuMTguMyBpNjg2LXBjLWxpbnV4LWdudSAocHJvdG9jb2xzIDEgYW5kIDIpIChk
ZWZhdWx0IHBvcnQgMzYzMikgW2Rpc2FibGVkXQpjY2FjaGUgdmVyc2lvbiAyLjQgW2VuYWJsZWRd
CmFwcC1zaGVsbHMvYmFzaDogICAgIDMuMl9wMzMKZGV2LWphdmEvamF2YS1jb25maWc6IDEuMy43
LCAyLjEuNQpkZXYtbGFuZy9weXRob246ICAgICAyLjUuMS1yNQpkZXYtcHl0aG9uL3B5Y3J5cHRv
OiAyLjAuMS1yNgpkZXYtdXRpbC9jY2FjaGU6ICAgICAyLjQtcjcKc3lzLWFwcHMvYmFzZWxheW91
dDogMi4wLjAKc3lzLWFwcHMvb3BlbnJjOiAgICAgMC4yLjIKc3lzLWFwcHMvc2FuZGJveDogICAg
MS4yLjE4LjEtcjIKc3lzLWRldmVsL2F1dG9jb25mOiAgMi4xMywgMi42MgpzeXMtZGV2ZWwvYXV0
b21ha2U6ICAxLjRfcDYsIDEuNSwgMS43LjktcjEsIDEuOC41LXIzLCAxLjkuNi1yMiwgMS4xMC4x
CnN5cy1kZXZlbC9iaW51dGlsczogIDIuMTgtcjEKc3lzLWRldmVsL2djYy1jb25maWc6IDEuNC4w
LXI0CnN5cy1kZXZlbC9saWJ0b29sOiAgIDEuNS4yNgp2aXJ0dWFsL29zLWhlYWRlcnM6ICAyLjYu
MjQKQUNDRVBUX0tFWVdPUkRTPSJ4ODYgfng4NiIKQ0JVSUxEPSJpNjg2LXBjLWxpbnV4LWdudSIK
Q0ZMQUdTPSItTzIgLW10dW5lPW5hdGl2ZSAtbWFyY2g9bmF0aXZlIC1waXBlIC1tZnBtYXRoPXNz
ZSAtZm9taXQtZnJhbWUtcG9pbnRlciIKQ0hPU1Q9Imk2ODYtcGMtbGludXgtZ251IgpDT05GSUdf
UFJPVEVDVD0iL2V0YyAvdXNyL2tkZS8zLjUvZW52IC91c3Iva2RlLzMuNS9zaGFyZS9jb25maWcg
L3Vzci9rZGUvMy41L3NodXRkb3duIC91c3Iva2RlLzQuMC9lbnYgL3Vzci9rZGUvNC4wL3NoYXJl
L2NvbmZpZyAvdXNyL2tkZS80LjAvc2h1dGRvd24gL3Vzci9saWIvZmF4IC91c3Ivc2hhcmUvY29u
ZmlnIC92YXIvbGliL2hzcWxkYiAvdmFyL3Nwb29sL2ZheC9ldGMgL3Zhci9zcG9vbC90b3JxdWUi
CkNPTkZJR19QUk9URUNUX01BU0s9Ii9ldGMvZW52LmQgL2V0Yy9lbnYuZC9qYXZhLyAvZXRjL2Zv
bnRzL2ZvbnRzLmNvbmYgL2V0Yy9nY29uZiAvZXRjL2dlbnRvby1yZWxlYXNlIC9ldGMvcGhwL2Fw
YWNoZTItcGhwNS9leHQtYWN0aXZlLyAvZXRjL3BocC9jZ2ktcGhwNS9leHQtYWN0aXZlLyAvZXRj
L3BocC9jbGktcGhwNS9leHQtYWN0aXZlLyAvZXRjL3JldmRlcC1yZWJ1aWxkIC9ldGMvc3BsYXNo
IC9ldGMvdGVybWluZm8gL2V0Yy90ZXhtZi93ZWIyYyAvZXRjL3VkZXYvcnVsZXMuZCIKQ1hYRkxB
R1M9Ii1PMiAtbXR1bmU9bmF0aXZlIC1tYXJjaD1uYXRpdmUgLXBpcGUgLW1mcG1hdGg9c3NlIC1m
b21pdC1mcmFtZS1wb2ludGVyIgpESVNURElSPSIvZ2VudG9vL3BvcnRhZ2UvZGlzdGZpbGVzIgpG
RUFUVVJFUz0iY2FuZHkgY2NhY2hlIGNvbGxpc2lvbi1wcm90ZWN0IGRpc3Rsb2NrcyBtZXRhZGF0
YS10cmFuc2ZlciBwYXJhbGxlbC1mZXRjaCBzYW5kYm94IHNmcGVybXMgc3RyaWN0IHVubWVyZ2Ut
b3JwaGFucyB1c2VyZmV0Y2ggdXNlcnByaXYgdXNlcnNhbmRib3giCkdFTlRPT19NSVJST1JTPSJo
dHRwOi8vZ2VudG9vLmNoZW0ud2lzYy5lZHUvZ2VudG9vIGh0dHA6Ly9nZW50b28ubWlycm9ycy5l
YXN5bmV3cy5jb20vbGludXgvZ2VudG9vLyBodHRwOi8vY3VkbHVnLmN1ZGVudmVyLmVkdS9nZW50
b28vIGh0dHA6Ly9vcGVuLXN5c3RlbXMudWZsLmVkdS9taXJyb3JzL2dlbnRvbyBodHRwOi8vZ2Vu
dG9vLmxsYXJpYW4ubmV0LyBodHRwOi8vbWlycm9yLmRhdGFwaXBlLm5ldC9nZW50b28gaHR0cDov
L2dlbnRvby5jaXRlcy51aXVjLmVkdS9wdWIvZ2VudG9vLyBodHRwOi8vZ2VudG9vLm9zdW9zbC5v
cmcvIgpMQU5HPSJlbl9VUy5VVEYtOCIKTENfQUxMPSJlbl9VUy5VVEYtOCIKTERGTEFHUz0iLVds
LC1PMSAtV2wsLS1zb3J0LWNvbW1vbiIKTElOR1VBUz0iZW4gZW5fVVMiCk1BS0VPUFRTPSItajIg
LXMgLXciClBLR0RJUj0iL2dlbnRvby9wb3J0YWdlL3BhY2thZ2VzIgpQT1JUQUdFX1JTWU5DX0VY
VFJBX09QVFM9Ii0tdGltZW91dD0yMCAtLXBydW5lLWVtcHR5LWRpcnMgLWkiClBPUlRBR0VfUlNZ
TkNfT1BUUz0iLS1yZWN1cnNpdmUgLS1saW5rcyAtLXNhZmUtbGlua3MgLS1wZXJtcyAtLXRpbWVz
IC0tY29tcHJlc3MgLS1mb3JjZSAtLXdob2xlLWZpbGUgLS1kZWxldGUgLS1zdGF0cyAtLXRpbWVv
dXQ9MTgwIC0tZXhjbHVkZT0vZGlzdGZpbGVzIC0tZXhjbHVkZT0vbG9jYWwgLS1leGNsdWRlPS9w
YWNrYWdlcyIKUE9SVEFHRV9UTVBESVI9Ii9nZW50b28vdG1wIgpQT1JURElSPSIvZ2VudG9vL3Bv
cnRhZ2UiClBPUlRESVJfT1ZFUkxBWT0iL2dlbnRvby9sb2NhbC9wb3J0YWdlIC9nZW50b28vbG9j
YWwvbGF5bWFuL3Ztd2FyZSAvZ2VudG9vL2xvY2FsL2xheW1hbi9zdW5yaXNlIC9nZW50b28vbG9j
YWwvbGF5bWFuL3h3aW5nIC9nZW50b28vbG9jYWwvbGF5bWFuL3NjaWVuY2UiClNZTkM9InJzeW5j
Oi8vcnN5bmMyMS51cy5nZW50b28ub3JnL2dlbnRvby1wb3J0YWdlIgpVU0U9IjE2Yml0IDNkcyA2
NGJpdCA3emlwIFIgWCBYNTA5IFhhdzNkIGE1MiBhYWMgYWFsaWIgYWNjZXNzaWJpbGl0eSBhY2N0
IGFjZSBhY2wgYWNwaSBhY3RpdmVmaWx0ZXIgYWRkYm9va21hcmtzIGFkZGl0aW9ucyBhZG1pbmlz
dHJhdG9yIGFnZyBhaW0gYWlvIGFrb2RlIGFsaWFzIGFsaXNwIGFsc2EgYW1hcm9rIGFtYXpvbiBh
bWQgYW1yIGFtcm5iIGFtcndiIGFuaW1naWYgYW5zaSBhbyBhb3R1diBhcGFjaGUyIGFwbSBhcnRz
d3JhcHBlcnN1aWQgYXJ0d29ya2V4dHJhIGFzbSBhc3luYyBhdG0gYXVkaW9maWxlIGF1dGggYXV0
aGRhZW1vbmQgYXV0aGZpbGUgYXV0b21vdW50IGF1dG9yZXBsYWNlIGJhY2tncm91bmQgYmFzaC1j
b21wbGV0aW9uIGJjbWF0aCBiY3AgYmRmIGJlcmtkYiBiaWdwYXRjaCBiaW5hcnktZHJpdmVycyBi
aW5maWx0ZXIgYml0dG9ycmVudCBiamFtIGJsIGJsYXMgYmxlbmRlci1nYW1lIGJsdWV0b290aCBi
b29zdCBicmFuZGluZyBiemlwMiBjKysgY2Fpcm8gY2FsZW5kYXIgY2FwcyBjYXB0dXJ5IGNhdGFs
b2dzIGNibGFzIGNjYWNoZSBjZGRhIGNkZGIgY2RmIGNkaW5zdGFsbCBjZGlvIGNkcGFyYW5vaWEg
Y2RyIGNkcm9tIGNnaSBjaGVja3BhdGggY2htIGNocm9vdCBjbGkgY29sb3JkaWZmIGNvbmZpZ193
aXphcmQgY29ubmVjdGlvbnN0YXR1cyBjb25zb2xla2l0IGNvbnRhY3Rub3RlcyBjb250ZXh0IGNv
bnRyaWIgY29yYmEgY3BwdW5pdCBjcmFja2xpYiBjcnlwdCBjc2NvcGUgY3NzIGN0eXBlIGN1cHMg
Y3VybCBjdXJsd3JhcHBlcnMgY3ZpZXdlciBjdnMgY3ZzZ3JhcGggY3h4IGQgZGFhcCBkYm0gZGJ1
cyBkYnggZGVsbCBkZXByZWNhdGVkIGRlc2lnbmVyLXBsdWdpbiBkZXZpY2UtbWFwcGVyIGRnYSBk
aGNwIGRpYSBkaXJlY3RmYiBkaXNjYXJkLXBhdGggZGlzY291cmFnZWQgZGlzay1wYXJ0aXRpb24g
ZGl2eCBkanZ1IGRtaSBkbmQgZG5vdGlmeSBkb29tIGRyaSBkdHMgZHYgZHZkIGR2ZHIgZHZkcmVh
ZCBkdmkgZWNjIGVkaXRvciBlZHMgZW1ib3NzIGVtZXJhbGQgZW1mIGVtb3RpY29uIGVtb3ZpeCBl
bmNhIGVuY29kZSBlbnNjcmlwdCBlcHNvbiBlcmFuZG9tIGVzZCBldGMtcHJvcG9zYWxzIGV2byBl
eGFtcGxlcyBleGNlbCBleGlmIGV4cGF0IGV4dGVuc2lvbnMgZXh0cmEgZXh0cmFmaWx0ZXJzIGV4
dHJhaWNvbnMgZXh0cmFtb2R1bGVzIGY5MCBmYW0gZmFtZSBmYXN0YnVpbGQgZmFzdGNnaSBmYXQg
ZmF4IGZiY29uIGZiY29uZGVjb3IgZmJkZXYgZmJzcGxhc2ggZmVzdGl2YWwgZmZtcGVnIGZmdHcg
ZmlsZSBmaWx0ZXIgZmluZ2VyIGZpcmVmb3ggZml0cyBmbGFjIGZsYXNoIGZsYXRmaWxlIGZsdGsg
Zm1vZCBmb250LXNlcnZlciBmb250Y29uZmlnIGZvb21hdGljZGIgZm9yY2UtY2dpLXJlZGlyZWN0
IGZvcnRyYW4gZm9ydHJhbjk1IGZweCBmcmVldHRzIGZ0cCBmdXNlIGdhZHUgZ2FsYWdvIGdhbWVz
IGdjYy1saWJmZmkgZ2NqIGdkIGdkYWwgZ2RibSBnZW9pcCBnZW9zIGdnaSBnaWYgZ2ltcCBnaW5h
YyBna3JlbGxtIGdsYWRlIGdsZXAgZ2xnZCBnbGliIGdsaWJjLW9taXRmcCBnbGl0eiBnbHV0IGds
dyBnbWFpbCBnbWF0aCBnbWVkaWEgZ21sIGdtcCBnbXRmdWxsIGdtdGhpZ2ggZ210c3VwcGwgZ210
dHJpYSBnbm9tZSBnbm9tZS1wcmludCBnbnVwbG90IGdudXRscyBnb2NyIGdvcGhlciBncGFjIGdw
ZyBncGdtZSBncGhvdG8yIGdwbSBncmFjZSBncmFtbWFyIGdyYXBoaWNzIGdyYXBodml6IGdyb3Vw
d2lzZSBncyBnc2wgZ3N0cmVhbWVyIGd0ayBndGtodG1sIGd1aWxlIGd6aXAgaGFsIGhhc2ggaGJj
aSBoZGR0ZW1wIGhkZiBoZGY1IGhkcmkgaGV0ZXJvZ2VuZW91cyBoZXhlbiBoZnMgaGlnaC1pbnRz
IGhpZ2hsaWdodCBoaXN0b3J5IGhsYXBpIGhvdSBocG4gaHRtbCBodG1saGFuZGJvb2sgaHR0cGQg
aHVtYW5pdGllcyBpY2FsIGljb252IGljcSBpY3UgaWQzIGlkM3RhZyBpZGUgaWRlYSBpZG4gaW1h
Z2UgaW1hZ2VtYWdpY2sgaW1hcCBpbWxpYiBpbmlmaWxlIGlua2phciBpbm90aWZ5IGluc2VjdXJl
LXNhdmVycyBpcG9kIGlwdjYgaXJjIGlzZG5sb2cgaXRjbCBqYWNrIGphaSBqYXZhIGphdmFjb21t
IGphdmFzY3JpcHQgamJpZyBqY2UgamlrZXMgamltaSBqaW5nbGUgaml0IGptZiBqb2huIGpwZWcg
anBlZzJrIGtjYWwga2RlIGtkZWNhcmRzIGtkZWVuYWJsZWZpbmFsIGtkZWhpZGRlbnZpc2liaWxp
dHkga2RlcGltIGtlcmJlcm9zIGtleGkga2V5cmluZyBraWctc2NyaXB0aW5nIGtpcGkga3BhdGhz
ZWEga3FlbXUga3R0cyBsYWRzcGEgbGFtZSBsYXBhY2sgbGFyZ2VmaWxlIGxhcmdldGVybWluYWwg
bGFzaCBsYXRleCBsY21zIGxkYXAgbGliY2FjYSBsaWJkc2sgbGliZ2NyeXB0IGxpYmdkYSBsaWJs
b2NrZmlsZSBsaWJub3RpZnkgbGlic2FtcGxlcmF0ZSBsaWJzc2gyIGxpYnd3dyBsaXZlIGxtX3Nl
bnNvcnMgbG9naXRlY2gtbW91c2UgbG9ncm90YXRlIGxvZ3dhdGNoIGxvb3AtYWVzIGx2bTIgbHpt
YSBsem8gbWFkIG1haWwgbWFpbGRpciBtYWlsd3JhcHBlciBtYXBzIG1hdGggbWF0cm9za2EgbWJy
b2xhIG1jYWwgbWQ1c3VtIG1nZXR0eSBtaGFzaCBtaWRpIG1pa21vZCBtaW1lIG1pbmcgbWl4ZXIg
bWpwZWcgbWt0ZW1wIG1tYXAgbW14IG1teGV4dCBtbmcgbW9kX3B5dGhvbiBtb2RwbHVnIG1vZHVs
ZSBtb25vIG1vcGFjNyBtb3RpZiBtb3pkZXZlbG9wIG1vemRvbSBtb3pub2NvbXBvc2UgbW96bm9p
cmMgbW96bm9tYWlsIG1venNoYTEgbXAyIG1wMyBtcDQgbXA0bGl2ZSBtcGVnIG1wZWcyIG1wbGF5
ZXIgbXBxYyBtdHAgbXVkZmxhcCBtdWx0aXByb2Nlc3MgbXVzZXBhY2sgbXVzaWMgbXVzaWNicmFp
bnogbXlzcWwgbmFfZGQgbmFfZHR2IG5hX2ljb25zIG5hcyBuY3Vyc2VzIG5lb24gbmV0IG5ldGNk
ZiBuZXRoYWNrIG5ldG1lZXRpbmcgbmV0cGJtIG5ldHdvcmsgbmV0d29yay1jcm9uIG5ldHdvcmtp
bmcgbmV3LWNseCBuZXctbG9naW4gbmZzIG5scyBubnRwIG5vY2Qgbm9kcm0gbm9zb3VyY2Ugbm92
YSBub3dpbiBub3dsaXN0ZW5pbmcgbnBwIG5wdGwgbnB0bG9ubHkgbnNwbHVnaW4gbnNzIG50ZnMg
bnRsbSBudHAgbnVtYXJyYXkgbnVtZXJpYyBudXYgb2NhbWwgb2NyIG9jcmFkIG9jdGF2ZSBvZGJj
IG9kayBvZmZlbnNpdmUgb2dkaSBvZ2cgb21lZ2Egb3BlbmFsIG9wZW5iYWJlbCBvcGVuZXhyIG9w
ZW5nbCBvcGVubXAgb3BlbnNzbCBvcGVuc3NsY3J5cHQgb3BlbnN0cmVldG1hcCBvc2Mgb3NjYXIg
cGFnZXIgcGFtIHBhbmdvIHBhcmFub2lkbXNnIHBhcnBvcnQgcGFyc2UtY2xvY2tzIHBhc2NhbCBw
YXNzd2RxYyBwYXRjaCBwYXRlbnRlZCBwYnMgcGNoIHBjbnRsIHBjcmUgcGRmIHBlcmwgcGhwIHBo
eXNmcyBwaWMgcGtjczExIHBsYXllciBwbGliIHBsb3R1dGlscyBwbW91bnQgcG5nIHBubSBwb3Ag
cG9ydGF1ZGlvIHBvc2l4IHBvc3RmaXggcG9zdHByb2MgcG9zdHNjcmlwdCBwb3ZyYXkgcHBkcyBw
cHBkIHByaW50IHByb2ogcHMgcHN0cmlja3MgcHVibGlzaGVycyBweXN0ZSBweXRob24gcTMyIHE4
IHFodWxsIHF0MyBxdDNzdXBwb3J0IHF0NCBxdWlja3RpbWUgcXVvdGFzIHF1b3RlcyByYWRpbyBy
YXIgcmF3IHJjNSByZGVza3RvcCByZWFkbGluZSByZWFsIHJlYWxtZWRpYSByZWZsZWN0aW9uIHJl
Z2V4IHJlbWl4IHJsZSByb2d1ZSByb21pbyBycGMgcnBtIHJyZGNnaSBycmR0b29sIHJ0YyBydHNw
IHNhbWJhIHNhbWV0aW1lIHNhbmRib3ggc2FzbCBzYmNsIHNiaWcgc2Nhbm5lciBzY2llbmNlIHNj
cmVlbiBzY3JpcHQgc2NyaXB0aW5nIHNkayBzZGwgc2RsLWltYWdlIHNkbC1zb3VuZCBzZWFyY2gg
c2VuZGVyIHNlcmlhbCBzZXNzaW9uIHNmdHAgc2hhcmVkZXh0IHNoYXJlZG1lbSBzaG9ydGVuIHNo
b3V0IHNpbHZlcmNpdHkgc2tpbnMgc2xwIHNtaW1lIHNtcCBzbXMgc210cCBzbmRmaWxlIHNvYXAg
c29ja2V0cyBzb2NrczUgc29sdmVyIHNvbmdzIHNvdSBzb3VuZCBzb3VuZGV4IHNvdW5kcyBzb3Vw
IHNveCBzcGFtYXNzYXNzaW4gc3BlZWNoIHNwZWVkbyBzcGVleCBzcGVsbCBzcGwgc3FsIHNxbGl0
ZSBzcWxpdGUzIHNydCBzc2Ugc3NlMiBzc2wgc3RhcnR1cC1ub3RpZmljYXRpb24gc3RhdGlzdGlj
cyBzdGxwb3J0IHN0cmVhbSBzdWJqZWN0LXJld3JpdGUgc3VidGl0bGVzIHN1YnZlcnNpb24gc3Vl
eGVjIHN1aWQgc3ZnIHN2Z3ogc3ZuLW1pcnJvciBzd2F0IHN5bWxpbmsgc3lzZnMgc3lzbG9nIHN5
c3ZpcGMgc3ppcCB0MWxpYiB0YWdsaWIgdGFnd3JpdGluZyB0Y2wgdGNwZCB0ZXNzZXJhY3QgdGVz
dCB0ZXRleCB0ZXh0IHRleHRlZmZlY3QgdGV4dHVyZXMgdGdhIHRoZW1lcyB0aGVvcmEgdGhlc2F1
cnVzIHRocmVhZHMgdGhyZWFkc2FmZSB0aWR5IHRpZmYgdGltaWRpdHkgdGsgdG50YyB0b2tlbml6
ZXIgdG9tc2Zhc3RtYXRoIHRvb2xiYXIgdG9vbHMgdHJhbnNjb2RlIHRyYW5zbGF0b3IgdHJ1ZXR5
cGUgdHVuZXBpbXAgdHZfY2hlY2sgdHZfY29tYmluZXIgdHZfcGlja19jZ2kgdHdvbGFtZSB0eXBl
MSB1Y3MyIHVjczQgdW1mcGFjayB1bmljb2RlIHVuemlwIHVwbnAgdXJhbmRvbSB1c2IgdXNlcmxv
Y2FsZXMgdXNlcnByaXYgdXRlbXB0ZXIgdXRpbHMgdXVkZXZpZXcgdjRsIHY0bDIgdmNkIHZjZHgg
dmRyIHZpZGVvcyB2aWRpeCB2aW0gdmltLXBhZ2VyIHZpbS13aXRoLXggdmlzdWFsaXphdGlvbiB2
bG0gdm5jIHZuY3ZpZXdlciB2b2ljZSB2b3JiaXMgdm9yYmlzLXBzeSB3YXZwYWNrIHdlYmRhdiB3
ZWJwcmVzZW5jZSB3aW4zMmNvZGVjcyB3aW5wb3B1cCB3aXRoc2FtcGxlc2NyaXB0cyB3bWEgd21m
IHdtcCB3b3JkcGVyZmVjdCB3eHdpbmRvd3MgeDI2NCB4ODYgeGFuaW0geGF0dHIgeGNiIHhjb21w
b3NpdGUgeGVyY2VzLWMgeGV0ZXggeGZhY2UgeGZjZSB4Zm9ybXMgeGZ0IHhodG1sIHhpbmUgeGlu
ZXJhbWEgeGluZXRkIHhtbCB4bWxyZWFkZXIgeG1scnBjIHhtbHdyaXRlciB4bXAgeG1waSB4b3Jn
IHhvc2QgeHBsYW5ldCB4cG0geHJhbmRyIHhyZW5kZXIgeHNjcmVlbnNhdmVyIHhzZXR0aW5ncyB4
c2wgeHNsdCB4dGVuZGVkIHh0ZXJtIHh0b20geHYgeHZpZCB4dm1jIHh2bmMgeWFlcGcgeWFob28g
eXYxMiB6ZXJvY29uZiB6aXAgemxpYiB6b3JhbiB6dmJpIiBBTFNBX0NBUkRTPSJpbnRlbDh4MCBp
bnRlbDh4MG0gcHhhMnh4LWFjOTcgcHhhMnh4LXNvYyBoZGEtaW50ZWwiIEFMU0FfUENNX1BMVUdJ
TlM9ImFkcGNtIGFsYXcgYXN5bSBjb3B5IGRtaXggZHNoYXJlIGRzbm9vcCBlbXB0eSBleHRwbHVn
IGZpbGUgaG9va3MgaWVjOTU4IGlvcGx1ZyBsYWRzcGEgbGZsb2F0IGxpbmVhciBtZXRlciBtdWxh
dyBtdWx0aSBudWxsIHBsdWcgcmF0ZSByb3V0ZSBzaGFyZSBzaG0gc29mdHZvbCIgQVBBQ0hFMl9N
T0RVTEVTPSJhY3Rpb25zIGFsaWFzIGF1dGhfYmFzaWMgYXV0aF9kaWdlc3QgYXV0aG5fYW5vbiBh
dXRobl9kYmQgYXV0aG5fZGJtIGF1dGhuX2RlZmF1bHQgYXV0aG5fZmlsZSBhdXRoel9kYm0gYXV0
aHpfZGVmYXVsdCBhdXRoel9ncm91cGZpbGUgYXV0aHpfaG9zdCBhdXRoel9vd25lciBhdXRoel91
c2VyIGF1dG9pbmRleCBjYWNoZSBkYXYgZGF2X2ZzIGRhdl9sb2NrIGRiZCBkZWZsYXRlIGRpciBk
aXNrX2NhY2hlIGVudiBleHBpcmVzIGV4dF9maWx0ZXIgZmlsZV9jYWNoZSBmaWx0ZXIgaGVhZGVy
cyBpZGVudCBpbWFnZW1hcCBpbmNsdWRlIGluZm8gbG9nX2NvbmZpZyBsb2dpbyBtZW1fY2FjaGUg
bWltZSBtaW1lX21hZ2ljIG5lZ290aWF0aW9uIHByb3h5IHByb3h5X2FqcCBwcm94eV9iYWxhbmNl
ciBwcm94eV9jb25uZWN0IHByb3h5X2h0dHAgcmV3cml0ZSBzZXRlbnZpZiBzbyBzcGVsaW5nIHN0
YXR1cyB1bmlxdWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxpYXMiIENBTUVSQVM9ImFs
bCIgRUxJQkM9ImdsaWJjIiBJTlBVVF9ERVZJQ0VTPSJrZXlib2FyZCBtb3VzZSBqYW1zdHVkaW8g
ZXZkZXYiIEtFUk5FTD0ibGludXgiIExDRF9ERVZJQ0VTPSJiYXlyYWQgY2ZvbnR6IGNmb250ejYz
MyBnbGsgaGQ0NDc4MCBsYjIxNiBsY2RtMDAxIG10eG9yYiBuY3Vyc2VzIHRleHQiIExJTkdVQVM9
ImVuIGVuX1VTIiBVU0VSTEFORD0iR05VIiBWSURFT19DQVJEUz0iaTgxMCBpODMwIgpVbnNldDog
IENQUEZMQUdTLCBDVEFSR0VULCBFTUVSR0VfREVGQVVMVF9PUFRTLCBJTlNUQUxMX01BU0ssIFBP
UlRBR0VfQ09NUFJFU1MsIFBPUlRBR0VfQ09NUFJFU1NfRkxBR1MKCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>153967</attachid>
            <date>2008-05-22 18:50 0000</date>
            <desc>configure</desc>
            <filename>configure</filename>
            <type>text/plain</type>
            <data encoding="base64">IyEgL2Jpbi9zaAojIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMg
YW5kIGNyZWF0ZSBNYWtlZmlsZXMuCiMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYxLgoj
CiMgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5
LCAyMDAwLCAyMDAxLAojIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdh
cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz
c2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCiMjIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAjIwojIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKIyMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICMjCgojIEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUKRFVBTENBU0U9MTsgZXhwb3J0
IERVQUxDQVNFICMgZm9yIE1LUyBzaAppZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYm
IChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBlbXVsYXRlIHNoCiAgTlVMTENN
RD06CiAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIk
QCJ9LCB3aGljaAogICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZl
YXR1cmUuCiAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCiAgc2V0b3B0IE5PX0dMT0JfU1VC
U1QKZWxzZQogIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbgogICpwb3NpeCopIHNldCAt
byBwb3NpeCA7Owplc2FjCgpmaQoKCgoKIyBQQVRIIG5lZWRzIENSCiMgQXZvaWQgZGVwZW5kaW5n
IHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXonCmFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwphc19j
cl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKYXNfY3JfZGlnaXRzPScwMTIz
NDU2Nzg5Jwphc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKCiMgVGhlIHVz
ZXIgaXMgYWx3YXlzIHJpZ2h0LgppZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNl
dDsgdGhlbgogIGVjaG8gIiMhIC9iaW4vc2giID5jb25mJCQuc2gKICBlY2hvICAiZXhpdCAwIiAg
ID4+Y29uZiQkLnNoCiAgY2htb2QgK3ggY29uZiQkLnNoCiAgaWYgKFBBVEg9Ii9ub25leGlzdGVu
dDsuIjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgIFBBVEhfU0VQQVJBVE9S
PSc7JwogIGVsc2UKICAgIFBBVEhfU0VQQVJBVE9SPToKICBmaQogIHJtIC1mIGNvbmYkJC5zaApm
aQoKIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCmlmICggKE1BSUw9NjA7IHVuc2V0IE1B
SUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgogIGFzX3Vuc2V0PXVuc2V0CmVsc2UK
ICBhc191bnNldD1mYWxzZQpmaQoKCiMgSUZTCiMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcg
bGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5nIGlzCiMgdGhlcmUgdG8gcHJl
dmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2UtdGFiLgojIChJZiBfQVNf
UEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdv
cmQKIyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQphc19ubD0nCicK
SUZTPSIgIiIJJGFzX25sIgoKIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlm
IHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KY2FzZSAkMCBpbgogICpbXFwvXSog
KSBhc19teXNlbGY9JDAgOzsKICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB
VE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAi
JGFzX2RpciIgJiYgYXNfZGlyPS4KICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9
JGFzX2Rpci8kMCAmJiBicmVhawpkb25lCklGUz0kYXNfc2F2ZV9JRlMKCiAgICAgOzsKZXNhYwoj
IFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMg
YHNoIENPTU1BTkQnCiMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRo
ZSBwYXRoLgppZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCiAgYXNfbXlzZWxmPSQwCmZp
CmlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KICBlY2hvICIkYXNfbXlzZWxmOiBlcnJv
cjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIg
PiYyCiAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CmZpCgojIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJl
LTMuMCBVV0lOIGtzaC4KZm9yIGFzX3ZhciBpbiBFTlYgTUFJTCBNQUlMUEFUSApkbyAoJGFzX3Vu
c2V0ICRhc192YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3Zhcgpkb25lClBT
MT0nJCAnClBTMj0nPiAnClBTND0nKyAnCgojIE5MUyBudWlzYW5jZXMuCmZvciBhc192YXIgaW4g
XAogIExBTkcgTEFOR1VBR0UgTENfQUREUkVTUyBMQ19BTEwgTENfQ09MTEFURSBMQ19DVFlQRSBM
Q19JREVOVElGSUNBVElPTiBcCiAgTENfTUVBU1VSRU1FTlQgTENfTUVTU0FHRVMgTENfTU9ORVRB
UlkgTENfTkFNRSBMQ19OVU1FUklDIExDX1BBUEVSIFwKICBMQ19URUxFUEhPTkUgTENfVElNRQpk
bwogIGlmIChzZXQgK3g7IHRlc3QgLXogImAoZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFy
KSAyPiYxYCIpOyB0aGVuCiAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKICBlbHNl
CiAgICAoJGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFz
X3ZhcgogIGZpCmRvbmUKCiMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgppZiBleHByIGEgOiAn
XChhXCknID4vZGV2L251bGwgMj4mMSAmJgogICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4u
LlwpJ2AiID0gWDAwMTsgdGhlbgogIGFzX2V4cHI9ZXhwcgplbHNlCiAgYXNfZXhwcj1mYWxzZQpm
aQoKaWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1l
IC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgogIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCmVsc2UKICBh
c19iYXNlbmFtZT1mYWxzZQpmaQoKCiMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KYXNfbWU9YCRh
c19iYXNlbmFtZSAtLSAiJDAiIHx8CiRhc19leHByIFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwp
LyokJyBcfCBcCgkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKCSBYIiQwIiA6ICdYXCgvXCknIFx8
IC4gMj4vZGV2L251bGwgfHwKZWNobyBYLyIkMCIgfAogICAgc2VkICcvXi4qXC9cKFteL11bXi9d
KlwpXC8qJC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwvXChcL1wvXCkkL3sKCSAg
ICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXC9cKFwvXCkuKi97CgkgICAgcy8vXDEvCgkgICAg
cQoJICB9CgkgIHMvLiovLi87IHEnYAoKIyBDRFBBVEguCiRhc191bnNldCBDRFBBVEgKCgppZiB0
ZXN0ICJ4JENPTkZJR19TSEVMTCIgPSB4OyB0aGVuCiAgaWYgKGV2YWwgIjoiKSAyPi9kZXYvbnVs
bDsgdGhlbgogIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCmVsc2UKICBhc19oYXZlX3JlcXVpcmVkPW5v
CmZpCgogIGlmIHRlc3QgJGFzX2hhdmVfcmVxdWlyZWQgPSB5ZXMgJiYgCSAoZXZhbCAiOgooYXNf
ZnVuY19yZXR1cm4gKCkgewogIChleGl0IFwkMSkKfQphc19mdW5jX3N1Y2Nlc3MgKCkgewogIGFz
X2Z1bmNfcmV0dXJuIDAKfQphc19mdW5jX2ZhaWx1cmUgKCkgewogIGFzX2Z1bmNfcmV0dXJuIDEK
fQphc19mdW5jX3JldF9zdWNjZXNzICgpIHsKICByZXR1cm4gMAp9CmFzX2Z1bmNfcmV0X2ZhaWx1
cmUgKCkgewogIHJldHVybiAxCn0KCmV4aXRjb2RlPTAKaWYgYXNfZnVuY19zdWNjZXNzOyB0aGVu
CiAgOgplbHNlCiAgZXhpdGNvZGU9MQogIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KZmkK
CmlmIGFzX2Z1bmNfZmFpbHVyZTsgdGhlbgogIGV4aXRjb2RlPTEKICBlY2hvIGFzX2Z1bmNfZmFp
bHVyZSBzdWNjZWVkZWQuCmZpCgppZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCiAgOgplbHNl
CiAgZXhpdGNvZGU9MQogIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBmYWlsZWQuCmZpCgppZiBh
c19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCiAgZXhpdGNvZGU9MQogIGVjaG8gYXNfZnVuY19yZXRf
ZmFpbHVyZSBzdWNjZWVkZWQuCmZpCgppZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkg
JiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCiAgOgplbHNlCiAgZXhpdGNvZGU9MQogIGVjaG8g
cG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90IHNhdmVkLgpmaQoKdGVzdCBcJGV4aXRjb2Rl
ID0gMCkgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CgooCiAgYXNfbGluZW5vXzE9XCRMSU5FTk8K
ICBhc19saW5lbm9fMj1cJExJTkVOTwogIHRlc3QgXCJ4XCRhc19saW5lbm9fMVwiICE9IFwieFwk
YXNfbGluZW5vXzJcIiAmJgogIHRlc3QgXCJ4XGBleHByIFwkYXNfbGluZW5vXzEgKyAxXGBcIiA9
IFwieFwkYXNfbGluZW5vXzJcIikgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CiIpIDI+IC9kZXYv
bnVsbDsgdGhlbgogIDoKZWxzZQogIGFzX2NhbmRpZGF0ZV9zaGVsbHM9CiAgICBhc19zYXZlX0lG
Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFS
QVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAg
dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBjYXNlICRhc19kaXIgaW4KCSAvKikKCSAg
IGZvciBhc19iYXNlIGluIHNoIGJhc2gga3NoIHNoNTsgZG8KCSAgICAgYXNfY2FuZGlkYXRlX3No
ZWxscz0iJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJGFzX2Rpci8kYXNfYmFzZSIKCSAgIGRvbmU7Owog
ICAgICAgZXNhYwpkb25lCklGUz0kYXNfc2F2ZV9JRlMKCgogICAgICBmb3IgYXNfc2hlbGwgaW4g
JGFzX2NhbmRpZGF0ZV9zaGVsbHMgJFNIRUxMOyBkbwoJICMgVHJ5IG9ubHkgc2hlbGxzIHRoYXQg
ZXhpc3QsIHRvIHNhdmUgc2V2ZXJhbCBmb3Jrcy4KCSBpZiB7IHRlc3QgLWYgIiRhc19zaGVsbCIg
fHwgdGVzdCAtZiAiJGFzX3NoZWxsLmV4ZSI7IH0gJiYKCQl7ICgiJGFzX3NoZWxsIikgMj4gL2Rl
di9udWxsIDw8XF9BU0VPRgppZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVs
YXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBlbXVsYXRlIHNoCiAgTlVMTENNRD06CiAg
IyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3
aGljaAogICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUu
CiAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCiAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKZWxz
ZQogIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbgogICpwb3NpeCopIHNldCAtbyBwb3Np
eCA7Owplc2FjCgpmaQoKCjoKX0FTRU9GCn07IHRoZW4KICBDT05GSUdfU0hFTEw9JGFzX3NoZWxs
CgkgICAgICAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKCSAgICAgICBpZiB7ICIkYXNfc2hlbGwiIDI+
IC9kZXYvbnVsbCA8PFxfQVNFT0YKaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAo
ZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgZW11bGF0ZSBzaAogIE5VTExDTUQ9
OgogICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAi
fSwgd2hpY2gKICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0
dXJlLgogIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwogIHNldG9wdCBOT19HTE9CX1NVQlNU
CmVsc2UKICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KICAqcG9zaXgqKSBzZXQgLW8g
cG9zaXggOzsKZXNhYwoKZmkKCgo6Cihhc19mdW5jX3JldHVybiAoKSB7CiAgKGV4aXQgJDEpCn0K
YXNfZnVuY19zdWNjZXNzICgpIHsKICBhc19mdW5jX3JldHVybiAwCn0KYXNfZnVuY19mYWlsdXJl
ICgpIHsKICBhc19mdW5jX3JldHVybiAxCn0KYXNfZnVuY19yZXRfc3VjY2VzcyAoKSB7CiAgcmV0
dXJuIDAKfQphc19mdW5jX3JldF9mYWlsdXJlICgpIHsKICByZXR1cm4gMQp9CgpleGl0Y29kZT0w
CmlmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgogIDoKZWxzZQogIGV4aXRjb2RlPTEKICBlY2hvIGFz
X2Z1bmNfc3VjY2VzcyBmYWlsZWQuCmZpCgppZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KICBleGl0
Y29kZT0xCiAgZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2VlZGVkLgpmaQoKaWYgYXNfZnVuY19y
ZXRfc3VjY2VzczsgdGhlbgogIDoKZWxzZQogIGV4aXRjb2RlPTEKICBlY2hvIGFzX2Z1bmNfcmV0
X3N1Y2Nlc3MgZmFpbGVkLgpmaQoKaWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhlbgogIGV4aXRj
b2RlPTEKICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgpmaQoKaWYgKCBzZXQg
eDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9ICIkMSIgKTsgdGhlbgogIDoKZWxz
ZQogIGV4aXRjb2RlPTEKICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZl
ZC4KZmkKCnRlc3QgJGV4aXRjb2RlID0gMCkgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CgooCiAg
YXNfbGluZW5vXzE9JExJTkVOTwogIGFzX2xpbmVub18yPSRMSU5FTk8KICB0ZXN0ICJ4JGFzX2xp
bmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18x
ICsgMWAiID0gIngkYXNfbGluZW5vXzIiKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KCl9BU0VP
Rgp9OyB0aGVuCiAgYnJlYWsKZmkKCmZpCgogICAgICBkb25lCgogICAgICBpZiB0ZXN0ICJ4JENP
TkZJR19TSEVMTCIgIT0geDsgdGhlbgogIGZvciBhc192YXIgaW4gQkFTSF9FTlYgRU5WCiAgICAg
ICAgZG8gKCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRh
c192YXIKICAgICAgICBkb25lCiAgICAgICAgZXhwb3J0IENPTkZJR19TSEVMTAogICAgICAgIGV4
ZWMgIiRDT05GSUdfU0hFTEwiICIkYXNfbXlzZWxmIiAkezErIiRAIn0KZmkKCgogICAgaWYgdGVz
dCAkYXNfaGF2ZV9yZXF1aXJlZCA9IG5vOyB0aGVuCiAgZWNobyBUaGlzIHNjcmlwdCByZXF1aXJl
cyBhIHNoZWxsIG1vcmUgbW9kZXJuIHRoYW4gYWxsIHRoZQogICAgICBlY2hvIHNoZWxscyB0aGF0
IEkgZm91bmQgb24geW91ciBzeXN0ZW0uICBQbGVhc2UgaW5zdGFsbCBhCiAgICAgIGVjaG8gbW9k
ZXJuIHNoZWxsLCBvciBtYW51YWxseSBydW4gdGhlIHNjcmlwdCB1bmRlciBzdWNoIGEKICAgICAg
ZWNobyBzaGVsbCBpZiB5b3UgZG8gaGF2ZSBvbmUuCiAgICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg
fQpmaQoKCmZpCgpmaQoKRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KY2FzZSBgZWNobyAtbiB4YCBp
bgotbiopCiAgY2FzZSBgZWNobyAneFxjJ2AgaW4KICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9f
VCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KICAqKSAgIEVDSE9fQz0nXGMnOzsKICBlc2FjOzsK
KikKICBFQ0hPX049Jy1uJzs7CmVzYWMKCgoKKGV2YWwgImFzX2Z1bmNfcmV0dXJuICgpIHsKICAo
ZXhpdCBcJDEpCn0KYXNfZnVuY19zdWNjZXNzICgpIHsKICBhc19mdW5jX3JldHVybiAwCn0KYXNf
ZnVuY19mYWlsdXJlICgpIHsKICBhc19mdW5jX3JldHVybiAxCn0KYXNfZnVuY19yZXRfc3VjY2Vz
cyAoKSB7CiAgcmV0dXJuIDAKfQphc19mdW5jX3JldF9mYWlsdXJlICgpIHsKICByZXR1cm4gMQp9
CgpleGl0Y29kZT0wCmlmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgogIDoKZWxzZQogIGV4aXRjb2Rl
PTEKICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQuCmZpCgppZiBhc19mdW5jX2ZhaWx1cmU7
IHRoZW4KICBleGl0Y29kZT0xCiAgZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2VlZGVkLgpmaQoK
aWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgogIDoKZWxzZQogIGV4aXRjb2RlPTEKICBlY2hv
IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgZmFpbGVkLgpmaQoKaWYgYXNfZnVuY19yZXRfZmFpbHVyZTsg
dGhlbgogIGV4aXRjb2RlPTEKICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgpm
aQoKaWYgKCBzZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9IFwiXCQxXCIg
KTsgdGhlbgogIDoKZWxzZQogIGV4aXRjb2RlPTEKICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVy
cyB3ZXJlIG5vdCBzYXZlZC4KZmkKCnRlc3QgXCRleGl0Y29kZSA9IDAiKSB8fCB7CiAgZWNobyBO
byBzaGVsbCBmb3VuZCB0aGF0IHN1cHBvcnRzIHNoZWxsIGZ1bmN0aW9ucy4KICBlY2hvIFBsZWFz
ZSB0ZWxsIGF1dG9jb25mQGdudS5vcmcgYWJvdXQgeW91ciBzeXN0ZW0sCiAgZWNobyBpbmNsdWRp
bmcgYW55IGVycm9yIHBvc3NpYmx5IG91dHB1dCBiZWZvcmUgdGhpcwogIGVjaG8gbWVzc2FnZQp9
CgoKCiAgYXNfbGluZW5vXzE9JExJTkVOTwogIGFzX2xpbmVub18yPSRMSU5FTk8KICB0ZXN0ICJ4
JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKICB0ZXN0ICJ4YGV4cHIgJGFzX2xp
bmVub18xICsgMWAiID0gIngkYXNfbGluZW5vXzIiIHx8IHsKCiAgIyBDcmVhdGUgJGFzX21lLmxp
bmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTwogICMgdW5pZm9y
bWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRz
IGEKICAjIGxpbmUtbnVtYmVyIGxpbmUgYWZ0ZXIgZWFjaCBsaW5lIHVzaW5nICRMSU5FTk87IHRo
ZSBzZWNvbmQgJ3NlZCcKICAjIGRvZXMgdGhlIHJlYWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0
IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAogICMgbGluZS1udW1iZXIgbGluZSB3aXRoIHRoZSBsaW5l
IGNvbnRhaW5pbmcgJExJTkVOTywgYW5kIGFwcGVuZHMKICAjIHRyYWlsaW5nICctJyBkdXJpbmcg
c3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsCiAgIyBjYXNlIGF0
IGxpbmUgZW5kLgogICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5kIFBh
dWwgRWdnZXJ0IHdyb3RlIHRoZQogICMgc2NyaXB0cyB3aXRoIG9wdGltaXphdGlvbiBoZWxwIGZy
b20gUGFvbG8gQm9uemluaS4gIEJsYW1lIExlZQogICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBm
b3Igc2VkJ3Mgc3ludGF4LiAgOi0pCiAgc2VkIC1uICcKICAgIHAKICAgIC9bJF1MSU5FTk8vPQog
ICcgPCRhc19teXNlbGYgfAogICAgc2VkICcKICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KICAgICAg
dCBsaW5lbm8KICAgICAgYgogICAgICA6bGluZW5vCiAgICAgIE4KICAgICAgOmxvb3AKICAgICAg
cy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwxXDIvCiAgICAg
IHQgbG9vcAogICAgICBzLy1cbi4qLy8KICAgICcgPiRhc19tZS5saW5lbm8gJiYKICBjaG1vZCAr
eCAiJGFzX21lLmxpbmVubyIgfHwKICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNy
ZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgogICB7IChl
eGl0IDEpOyBleGl0IDE7IH07IH0KCiAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2Vz
ICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKICAjICh0aGUgZGlybmFtZSBvZiAk
WzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKICAjIG9yaWdpbmFs
IGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgog
IC4gIi4vJGFzX21lLmxpbmVubyIKICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3Qg
Y29tbWFuZC4KICBleGl0Cn0KCgppZiAoYXNfZGlyPWBkaXJuYW1lIC0tIC9gICYmIHRlc3QgIlgk
YXNfZGlyIiA9IFgvKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBhc19kaXJuYW1lPWRpcm5hbWUK
ZWxzZQogIGFzX2Rpcm5hbWU9ZmFsc2UKZmkKCkVDSE9fQz0gRUNIT19OPSBFQ0hPX1Q9CmNhc2Ug
YGVjaG8gLW4geGAgaW4KLW4qKQogIGNhc2UgYGVjaG8gJ3hcYydgIGluCiAgKmMqKSBFQ0hPX1Q9
JwknOzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBjaGFyYWN0ZXIuCiAgKikgICBFQ0hPX0M9J1xj
Jzs7CiAgZXNhYzs7CiopCiAgRUNIT19OPSctbic7Owplc2FjCgppZiBleHByIGEgOiAnXChhXCkn
ID4vZGV2L251bGwgMj4mMSAmJgogICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2Ai
ID0gWDAwMTsgdGhlbgogIGFzX2V4cHI9ZXhwcgplbHNlCiAgYXNfZXhwcj1mYWxzZQpmaQoKcm0g
LWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKaWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0
aGVuCiAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQplbHNlCiAgcm0gLWYgY29uZiQkLmRp
cgogIG1rZGlyIGNvbmYkJC5kaXIKZmkKZWNobyA+Y29uZiQkLmZpbGUKaWYgbG4gLXMgY29uZiQk
LmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCiAgYXNfbG5fcz0nbG4gLXMnCiAgIyAuLi4g
YnV0IHRoZXJlIGFyZSB0d28gZ290Y2hhczoKICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZp
bGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgogICMgMikgREpHUFAgPCAyLjA0IGhhcyBu
byBzeW1saW5rczsgYGxuIC1zJyBjcmVhdGVzIGEgd3JhcHBlciBleGVjdXRhYmxlLgogICMgSW4g
Ym90aCBjYXNlcywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCiAgbG4gLXMgY29uZiQk
LmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAog
ICAgYXNfbG5fcz0nY3AgLXAnCmVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxs
OyB0aGVuCiAgYXNfbG5fcz1sbgplbHNlCiAgYXNfbG5fcz0nY3AgLXAnCmZpCnJtIC1mIGNvbmYk
JCBjb25mJCQuZXhlIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUgY29uZiQkLmZpbGUKcm1kaXIgY29u
ZiQkLmRpciAyPi9kZXYvbnVsbAoKaWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgogIGFz
X21rZGlyX3A9OgplbHNlCiAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKICBhc19ta2Rpcl9w
PWZhbHNlCmZpCgppZiB0ZXN0IC14IC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgYXNfdGVzdF94
PSd0ZXN0IC14JwplbHNlCiAgaWYgbHMgLWRMIC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICBh
c19sc19MX29wdGlvbj1MCiAgZWxzZQogICAgYXNfbHNfTF9vcHRpb249CiAgZmkKICBhc190ZXN0
X3g9JwogICAgZXZhbCBzaCAtYyAnXCcnCiAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgogICAg
ICAgIHRlc3QgLWQgIiQxLy4iOwogICAgICBlbHNlCgljYXNlICQxIGluCiAgICAgICAgLSopc2V0
ICIuLyQxIjs7Cgllc2FjOwoJY2FzZSBgbHMgLWxkJyRhc19sc19MX29wdGlvbicgIiQxIiAyPi9k
ZXYvbnVsbGAgaW4KCT8/P1tzeF0qKTo7OyopZmFsc2U7O2VzYWM7ZmkKICAgICdcJycgc2gKICAn
CmZpCmFzX2V4ZWN1dGFibGVfcD0kYXNfdGVzdF94CgojIFNlZCBleHByZXNzaW9uIHRvIG1hcCBh
IHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCmFzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRh
c19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCgoj
IFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFt
ZS4KYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIK
CgoKZXhlYyA3PCYwIDwvZGV2L251bGwgNj4mMQoKIyBOYW1lIG9mIHRoZSBob3N0LgojIGhvc3Ru
YW1lIG9uIHNvbWUgc3lzdGVtcyAoU1ZSMy4yLCBMaW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQg
c3RhdHVzLAojIHNvIHVuYW1lIGdldHMgcnVuIHRvby4KYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8
fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCgojCiMgSW5pdGlhbGl6YXRpb25zLgoj
CmFjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKYWNfY2xlYW5fZmlsZXM9CmFjX2NvbmZpZ19s
aWJvYmpfZGlyPS4KTElCT0JKUz0KY3Jvc3NfY29tcGlsaW5nPW5vCnN1YmRpcnM9Ck1GTEFHUz0K
TUFLRUZMQUdTPQpTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQoKIyBJZGVudGl0eSBvZiB0
aGlzIHBhY2thZ2UuClBBQ0tBR0VfTkFNRT0KUEFDS0FHRV9UQVJOQU1FPQpQQUNLQUdFX1ZFUlNJ
T049ClBBQ0tBR0VfU1RSSU5HPQpQQUNLQUdFX0JVR1JFUE9SVD0KCiMgRmFjdG9yaW5nIGRlZmF1
bHQgaGVhZGVycyBmb3IgbW9zdCB0ZXN0cy4KYWNfaW5jbHVkZXNfZGVmYXVsdD0iXAojaW5jbHVk
ZSA8c3RkaW8uaD4KI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKIyBpbmNsdWRlIDxzeXMvdHlwZXMu
aD4KI2VuZGlmCiNpZmRlZiBIQVZFX1NZU19TVEFUX0gKIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgoj
ZW5kaWYKI2lmZGVmIFNURENfSEVBREVSUwojIGluY2x1ZGUgPHN0ZGxpYi5oPgojIGluY2x1ZGUg
PHN0ZGRlZi5oPgojZWxzZQojIGlmZGVmIEhBVkVfU1RETElCX0gKIyAgaW5jbHVkZSA8c3RkbGli
Lmg+CiMgZW5kaWYKI2VuZGlmCiNpZmRlZiBIQVZFX1NUUklOR19ICiMgaWYgIWRlZmluZWQgU1RE
Q19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAojICBpbmNsdWRlIDxtZW1vcnkuaD4K
IyBlbmRpZgojIGluY2x1ZGUgPHN0cmluZy5oPgojZW5kaWYKI2lmZGVmIEhBVkVfU1RSSU5HU19I
CiMgaW5jbHVkZSA8c3RyaW5ncy5oPgojZW5kaWYKI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAojIGlu
Y2x1ZGUgPGludHR5cGVzLmg+CiNlbmRpZgojaWZkZWYgSEFWRV9TVERJTlRfSAojIGluY2x1ZGUg
PHN0ZGludC5oPgojZW5kaWYKI2lmZGVmIEhBVkVfVU5JU1REX0gKIyBpbmNsdWRlIDx1bmlzdGQu
aD4KI2VuZGlmIgoKYWNfc3Vic3RfdmFycz0nU0hFTEwKUEFUSF9TRVBBUkFUT1IKUEFDS0FHRV9O
QU1FClBBQ0tBR0VfVEFSTkFNRQpQQUNLQUdFX1ZFUlNJT04KUEFDS0FHRV9TVFJJTkcKUEFDS0FH
RV9CVUdSRVBPUlQKZXhlY19wcmVmaXgKcHJlZml4CnByb2dyYW1fdHJhbnNmb3JtX25hbWUKYmlu
ZGlyCnNiaW5kaXIKbGliZXhlY2RpcgpkYXRhcm9vdGRpcgpkYXRhZGlyCnN5c2NvbmZkaXIKc2hh
cmVkc3RhdGVkaXIKbG9jYWxzdGF0ZWRpcgppbmNsdWRlZGlyCm9sZGluY2x1ZGVkaXIKZG9jZGly
CmluZm9kaXIKaHRtbGRpcgpkdmlkaXIKcGRmZGlyCnBzZGlyCmxpYmRpcgpsb2NhbGVkaXIKbWFu
ZGlyCkRFRlMKRUNIT19DCkVDSE9fTgpFQ0hPX1QKTElCUwpidWlsZF9hbGlhcwpob3N0X2FsaWFz
CnRhcmdldF9hbGlhcwpDQwpDRkxBR1MKTERGTEFHUwpDUFBGTEFHUwphY19jdF9DQwpFWEVFWFQK
T0JKRVhUCkNQUApJTlNUQUxMX1BST0dSQU0KSU5TVEFMTF9TQ1JJUFQKSU5TVEFMTF9EQVRBClNF
VF9NQUtFCkxOX1MKTERDT05GSUcKTUFLRUlORk8KSU5TVEFMTF9JTkZPCkFMTEVHUk9fTUFZQkVf
QVNNX0ZJTEVTCkdSRVAKRUdSRVAKSU5DTFVERV9QUkVGSVgKTElCQUxMRUcKTElOS19MSUJBTExF
RwpQTFVHSU5fTElCCkNPTVBJTEVfUFJPR1JBTQpDT01QSUxFX0NYWF9QUk9HUkFNCkNPTVBJTEVf
U19QUk9HUkFNClBST0dfTERGTEFHUwpMSUJfVE9fTElOSwpMSU5LX1dJVEhfU1RBVElDX0xJQlMK
QUxMRUdST19MSUJfVEFSR0VUUwpFU0RfQ09ORklHCkFSVFNDX0NPTkZJRwpQS0dfQ09ORklHClhN
S01GCkFMTEVHUk9fTUFZQkVfWFdJTkRPV1NfRklMRVMKQUxMRUdST19NQVlCRV9MSUJfWF9FWEVf
U09VUkNFUwpBTExFR1JPX01BWUJFX0xJQl9YX0VYRVMKQUxMRUdST19YV0lORE9XU19MSUJESVIK
QUxMRUdST19NQVlCRV9MSU5VWF9GSUxFUwpBTExFR1JPX01PRFVMRV9UQVJHRVRTCkFSCkFMTEVH
Uk9fREVCVUdfQ0ZMQUdTCkFMTEVHUk9fUFJPRklMRV9DRkxBR1MKQUxMRUdST19TRkxBR1MKQUxM
RUdST19TSEFSRURMSUJfQ0ZMQUdTCkNYWApDWFhGTEFHUwpBTExFR1JPX0RFQlVHX0NYWEZMQUdT
CkFMTEVHUk9fUFJPRklMRV9DWFhGTEFHUwpGUkFNRVdPUktTCkxJQk9CSlMKTFRMSUJPQkpTJwph
Y19zdWJzdF9maWxlcz0nJwogICAgICBhY19wcmVjaW91c192YXJzPSdidWlsZF9hbGlhcwpob3N0
X2FsaWFzCnRhcmdldF9hbGlhcwpDQwpDRkxBR1MKTERGTEFHUwpMSUJTCkNQUEZMQUdTCkNQUApY
TUtNRicKCgojIEluaXRpYWxpemUgc29tZSB2YXJpYWJsZXMgc2V0IGJ5IG9wdGlvbnMuCmFjX2lu
aXRfaGVscD0KYWNfaW5pdF92ZXJzaW9uPWZhbHNlCiMgVGhlIHZhcmlhYmxlcyBoYXZlIHRoZSBz
YW1lIG5hbWVzIGFzIHRoZSBvcHRpb25zLCB3aXRoCiMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJs
aW5lcy4KY2FjaGVfZmlsZT0vZGV2L251bGwKZXhlY19wcmVmaXg9Tk9ORQpub19jcmVhdGU9Cm5v
X3JlY3Vyc2lvbj0KcHJlZml4PU5PTkUKcHJvZ3JhbV9wcmVmaXg9Tk9ORQpwcm9ncmFtX3N1ZmZp
eD1OT05FCnByb2dyYW1fdHJhbnNmb3JtX25hbWU9cyx4LHgsCnNpbGVudD0Kc2l0ZT0Kc3JjZGly
PQp2ZXJib3NlPQp4X2luY2x1ZGVzPU5PTkUKeF9saWJyYXJpZXM9Tk9ORQoKIyBJbnN0YWxsYXRp
b24gZGlyZWN0b3J5IG9wdGlvbnMuCiMgVGhlc2UgYXJlIGxlZnQgdW5leHBhbmRlZCBzbyB1c2Vy
cyBjYW4gIm1ha2UgaW5zdGFsbCBleGVjX3ByZWZpeD0vZm9vIgojIGFuZCBhbGwgdGhlIHZhcmlh
YmxlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBiYXNlZCBvbiBleGVjX3ByZWZpeAojIGJ5IGRl
ZmF1bHQgd2lsbCBhY3R1YWxseSBjaGFuZ2UuCiMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVu
cyBiZWNhdXNlIHNoLCBwZXJsLCBldGMuIGFsc28gYWNjZXB0IHRoZW0uCiMgKFRoZSBsaXN0IGZv
bGxvd3MgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIEdOVSBDb2RpbmcgU3RhbmRhcmRzLikKYmluZGly
PScke2V4ZWNfcHJlZml4fS9iaW4nCnNiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCmxpYmV4
ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCmRhdGFyb290ZGlyPScke3ByZWZpeH0vc2hh
cmUnCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JwpzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJwpz
aGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3Zh
cicKaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCm9sZGluY2x1ZGVkaXI9Jy91c3IvaW5j
bHVkZScKZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFfScKaW5mb2Rpcj0nJHtk
YXRhcm9vdGRpcn0vaW5mbycKaHRtbGRpcj0nJHtkb2NkaXJ9JwpkdmlkaXI9JyR7ZG9jZGlyfScK
cGRmZGlyPScke2RvY2Rpcn0nCnBzZGlyPScke2RvY2Rpcn0nCmxpYmRpcj0nJHtleGVjX3ByZWZp
eH0vbGliJwpsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xvY2FsZScKbWFuZGlyPScke2RhdGFy
b290ZGlyfS9tYW4nCgphY19wcmV2PQphY19kYXNoZGFzaD0KZm9yIGFjX29wdGlvbgpkbwogICMg
SWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgogIGlm
IHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgogICAgZXZhbCAkYWNfcHJldj1cJGFjX29wdGlvbgog
ICAgYWNfcHJldj0KICAgIGNvbnRpbnVlCiAgZmkKCiAgY2FzZSAkYWNfb3B0aW9uIGluCiAgKj0q
KQlhY19vcHRhcmc9YGV4cHIgIlgkYWNfb3B0aW9uIiA6ICdbXj1dKj1cKC4qXCknYCA7OwogICop
CWFjX29wdGFyZz15ZXMgOzsKICBlc2FjCgogICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVz
IGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCgogIGNhc2UgJGFj
X2Rhc2hkYXNoJGFjX29wdGlvbiBpbgogIC0tKQogICAgYWNfZGFzaGRhc2g9eWVzIDs7CgogIC1i
aW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCiAgICBh
Y19wcmV2PWJpbmRpciA7OwogIC1iaW5kaXI9KiB8IC0tYmluZGlyPSogfCAtLWJpbmRpPSogfCAt
LWJpbmQ9KiB8IC0tYmluPSogfCAtLWJpPSopCiAgICBiaW5kaXI9JGFjX29wdGFyZyA7OwoKICAt
YnVpbGQgfCAtLWJ1aWxkIHwgLS1idWlsIHwgLS1idWkgfCAtLWJ1KQogICAgYWNfcHJldj1idWls
ZF9hbGlhcyA7OwogIC1idWlsZD0qIHwgLS1idWlsZD0qIHwgLS1idWlsPSogfCAtLWJ1aT0qIHwg
LS1idT0qKQogICAgYnVpbGRfYWxpYXM9JGFjX29wdGFyZyA7OwoKICAtY2FjaGUtZmlsZSB8IC0t
Y2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsIHwgLS1jYWNoZS1maSBcCiAgfCAtLWNhY2hlLWYgfCAt
LWNhY2hlLSB8IC0tY2FjaGUgfCAtLWNhY2ggfCAtLWNhYyB8IC0tY2EgfCAtLWMpCiAgICBhY19w
cmV2PWNhY2hlX2ZpbGUgOzsKICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNh
Y2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKICB8IC0tY2FjaGUtZj0qIHwgLS1jYWNoZS09KiB8
IC0tY2FjaGU9KiB8IC0tY2FjaD0qIHwgLS1jYWM9KiB8IC0tY2E9KiB8IC0tYz0qKQogICAgY2Fj
aGVfZmlsZT0kYWNfb3B0YXJnIDs7CgogIC0tY29uZmlnLWNhY2hlIHwgLUMpCiAgICBjYWNoZV9m
aWxlPWNvbmZpZy5jYWNoZSA7OwoKICAtZGF0YWRpciB8IC0tZGF0YWRpciB8IC0tZGF0YWRpIHwg
LS1kYXRhZCkKICAgIGFjX3ByZXY9ZGF0YWRpciA7OwogIC1kYXRhZGlyPSogfCAtLWRhdGFkaXI9
KiB8IC0tZGF0YWRpPSogfCAtLWRhdGFkPSopCiAgICBkYXRhZGlyPSRhY19vcHRhcmcgOzsKCiAg
LWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaSB8IC0tZGF0YXJvb3Rk
IHwgLS1kYXRhcm9vdCBcCiAgfCAtLWRhdGFyb28gfCAtLWRhdGFybyB8IC0tZGF0YXIpCiAgICBh
Y19wcmV2PWRhdGFyb290ZGlyIDs7CiAgLWRhdGFyb290ZGlyPSogfCAtLWRhdGFyb290ZGlyPSog
fCAtLWRhdGFyb290ZGk9KiB8IC0tZGF0YXJvb3RkPSogXAogIHwgLS1kYXRhcm9vdD0qIHwgLS1k
YXRhcm9vPSogfCAtLWRhdGFybz0qIHwgLS1kYXRhcj0qKQogICAgZGF0YXJvb3RkaXI9JGFjX29w
dGFyZyA7OwoKICAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSopCiAgICBhY19mZWF0dXJlPWBleHBy
ICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1cKC4qXCknYAogICAgIyBSZWplY3QgbmFtZXMg
dGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgogICAgZXhwciAieCRhY19m
ZWF0dXJlIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgogICAgICB7IGVj
aG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfZmVhdHVyZSIgPiYy
CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVh
dHVyZSB8IHNlZCAncy9bLS5dL18vZydgCiAgICBldmFsIGVuYWJsZV8kYWNfZmVhdHVyZT1ubyA7
OwoKICAtZG9jZGlyIHwgLS1kb2NkaXIgfCAtLWRvY2RpIHwgLS1kb2MgfCAtLWRvKQogICAgYWNf
cHJldj1kb2NkaXIgOzsKICAtZG9jZGlyPSogfCAtLWRvY2Rpcj0qIHwgLS1kb2NkaT0qIHwgLS1k
b2M9KiB8IC0tZG89KikKICAgIGRvY2Rpcj0kYWNfb3B0YXJnIDs7CgogIC1kdmlkaXIgfCAtLWR2
aWRpciB8IC0tZHZpZGkgfCAtLWR2aWQgfCAtLWR2aSB8IC0tZHYpCiAgICBhY19wcmV2PWR2aWRp
ciA7OwogIC1kdmlkaXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0t
ZHZpPSogfCAtLWR2PSopCiAgICBkdmlkaXI9JGFjX29wdGFyZyA7OwoKICAtZW5hYmxlLSogfCAt
LWVuYWJsZS0qKQogICAgYWNfZmVhdHVyZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmVuYWJs
ZS1cKFtePV0qXCknYAogICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxs
IHZhcmlhYmxlIG5hbWVzLgogICAgZXhwciAieCRhY19mZWF0dXJlIiA6ICIuKlteLS5fJGFzX2Ny
X2FsbnVtXSIgPi9kZXYvbnVsbCAmJgogICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFs
aWQgZmVhdHVyZSBuYW1lOiAkYWNfZmVhdHVyZSIgPiYyCiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg
fTsgfQogICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVhdHVyZSB8IHNlZCAncy9bLS5dL18vZydg
CiAgICBldmFsIGVuYWJsZV8kYWNfZmVhdHVyZT1cJGFjX29wdGFyZyA7OwoKICAtZXhlYy1wcmVm
aXggfCAtLWV4ZWNfcHJlZml4IHwgLS1leGVjLXByZWZpeCB8IC0tZXhlYy1wcmVmaSBcCiAgfCAt
LWV4ZWMtcHJlZiB8IC0tZXhlYy1wcmUgfCAtLWV4ZWMtcHIgfCAtLWV4ZWMtcCB8IC0tZXhlYy0g
XAogIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4KQogICAgYWNfcHJldj1leGVjX3ByZWZpeCA7Owog
IC1leGVjLXByZWZpeD0qIHwgLS1leGVjX3ByZWZpeD0qIHwgLS1leGVjLXByZWZpeD0qIHwgLS1l
eGVjLXByZWZpPSogXAogIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1w
cj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCiAgfCAtLWV4ZWM9KiB8IC0tZXhlPSogfCAt
LWV4PSopCiAgICBleGVjX3ByZWZpeD0kYWNfb3B0YXJnIDs7CgogIC1nYXMgfCAtLWdhcyB8IC0t
Z2EgfCAtLWcpCiAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLWdhcy4KICAgIHdpdGhfZ2FzPXll
cyA7OwoKICAtaGVscCB8IC0taGVscCB8IC0taGVsIHwgLS1oZSB8IC1oKQogICAgYWNfaW5pdF9o
ZWxwPWxvbmcgOzsKICAtaGVscD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1oZT1yKiB8
IC1ociopCiAgICBhY19pbml0X2hlbHA9cmVjdXJzaXZlIDs7CiAgLWhlbHA9cyogfCAtLWhlbHA9
cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQogICAgYWNfaW5pdF9oZWxwPXNob3J0IDs7
CgogIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQogICAgYWNfcHJldj1ob3N0X2FsaWFz
IDs7CiAgLWhvc3Q9KiB8IC0taG9zdD0qIHwgLS1ob3M9KiB8IC0taG89KikKICAgIGhvc3RfYWxp
YXM9JGFjX29wdGFyZyA7OwoKICAtaHRtbGRpciB8IC0taHRtbGRpciB8IC0taHRtbGRpIHwgLS1o
dG1sZCB8IC0taHRtbCB8IC0taHRtIHwgLS1odCkKICAgIGFjX3ByZXY9aHRtbGRpciA7OwogIC1o
dG1sZGlyPSogfCAtLWh0bWxkaXI9KiB8IC0taHRtbGRpPSogfCAtLWh0bWxkPSogfCAtLWh0bWw9
KiB8IC0taHRtPSogXAogIHwgLS1odD0qKQogICAgaHRtbGRpcj0kYWNfb3B0YXJnIDs7CgogIC1p
bmNsdWRlZGlyIHwgLS1pbmNsdWRlZGlyIHwgLS1pbmNsdWRlZGkgfCAtLWluY2x1ZGVkIHwgLS1p
bmNsdWRlIFwKICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQogICAgYWNf
cHJldj1pbmNsdWRlZGlyIDs7CiAgLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpcj0qIHwgLS1p
bmNsdWRlZGk9KiB8IC0taW5jbHVkZWQ9KiB8IC0taW5jbHVkZT0qIFwKICB8IC0taW5jbHVkPSog
fCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCiAgICBpbmNsdWRlZGlyPSRhY19vcHRh
cmcgOzsKCiAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWlu
Zm8gfCAtLWluZikKICAgIGFjX3ByZXY9aW5mb2RpciA7OwogIC1pbmZvZGlyPSogfCAtLWluZm9k
aXI9KiB8IC0taW5mb2RpPSogfCAtLWluZm9kPSogfCAtLWluZm89KiB8IC0taW5mPSopCiAgICBp
bmZvZGlyPSRhY19vcHRhcmcgOzsKCiAgLWxpYmRpciB8IC0tbGliZGlyIHwgLS1saWJkaSB8IC0t
bGliZCkKICAgIGFjX3ByZXY9bGliZGlyIDs7CiAgLWxpYmRpcj0qIHwgLS1saWJkaXI9KiB8IC0t
bGliZGk9KiB8IC0tbGliZD0qKQogICAgbGliZGlyPSRhY19vcHRhcmcgOzsKCiAgLWxpYmV4ZWNk
aXIgfCAtLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhlY2QgfCAtLWxpYmV4ZWMg
XAogIHwgLS1saWJleGUgfCAtLWxpYmV4IHwgLS1saWJlKQogICAgYWNfcHJldj1saWJleGVjZGly
IDs7CiAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGk9KiB8IC0t
bGliZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKICB8IC0tbGliZXhlPSogfCAtLWxpYmV4PSogfCAt
LWxpYmU9KikKICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OwoKICAtbG9jYWxlZGlyIHwgLS1s
b2NhbGVkaXIgfCAtLWxvY2FsZWRpIHwgLS1sb2NhbGVkIHwgLS1sb2NhbGUpCiAgICBhY19wcmV2
PWxvY2FsZWRpciA7OwogIC1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGlyPSogfCAtLWxvY2FsZWRp
PSogfCAtLWxvY2FsZWQ9KiB8IC0tbG9jYWxlPSopCiAgICBsb2NhbGVkaXI9JGFjX29wdGFyZyA7
OwoKICAtbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpIHwg
LS1sb2NhbHN0YXRlZCBcCiAgfCAtLWxvY2Fsc3RhdGUgfCAtLWxvY2Fsc3RhdCB8IC0tbG9jYWxz
dGEgfCAtLWxvY2Fsc3QgfCAtLWxvY2FscykKICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7Owog
IC1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpPSog
fCAtLWxvY2Fsc3RhdGVkPSogXAogIHwgLS1sb2NhbHN0YXRlPSogfCAtLWxvY2Fsc3RhdD0qIHwg
LS1sb2NhbHN0YT0qIHwgLS1sb2NhbHN0PSogfCAtLWxvY2Fscz0qKQogICAgbG9jYWxzdGF0ZWRp
cj0kYWNfb3B0YXJnIDs7CgogIC1tYW5kaXIgfCAtLW1hbmRpciB8IC0tbWFuZGkgfCAtLW1hbmQg
fCAtLW1hbiB8IC0tbWEgfCAtLW0pCiAgICBhY19wcmV2PW1hbmRpciA7OwogIC1tYW5kaXI9KiB8
IC0tbWFuZGlyPSogfCAtLW1hbmRpPSogfCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAt
LW09KikKICAgIG1hbmRpcj0kYWNfb3B0YXJnIDs7CgogIC1uZnAgfCAtLW5mcCB8IC0tbmYpCiAg
ICAjIE9ic29sZXRlOyB1c2UgLS13aXRob3V0LWZwLgogICAgd2l0aF9mcD1ubyA7OwoKICAtbm8t
Y3JlYXRlIHwgLS1uby1jcmVhdGUgfCAtLW5vLWNyZWF0IHwgLS1uby1jcmVhIHwgLS1uby1jcmUg
XAogIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQogICAgbm9fY3JlYXRlPXllcyA7OwoKICAtbm8t
cmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNp
IFwKICB8IC0tbm8tcmVjdXJzIHwgLS1uby1yZWN1ciB8IC0tbm8tcmVjdSB8IC0tbm8tcmVjIHwg
LS1uby1yZSB8IC0tbm8tcikKICAgIG5vX3JlY3Vyc2lvbj15ZXMgOzsKCiAgLW9sZGluY2x1ZGVk
aXIgfCAtLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaSB8IC0tb2xkaW5jbHVkZWQgXAog
IHwgLS1vbGRpbmNsdWRlIHwgLS1vbGRpbmNsdWQgfCAtLW9sZGluY2x1IHwgLS1vbGRpbmNsIHwg
LS1vbGRpbmMgXAogIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKICAg
IGFjX3ByZXY9b2xkaW5jbHVkZWRpciA7OwogIC1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1
ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpPSogfCAtLW9sZGluY2x1ZGVkPSogXAogIHwgLS1vbGRp
bmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAt
LW9sZGluYz0qIFwKICB8IC0tb2xkaW49KiB8IC0tb2xkaT0qIHwgLS1vbGQ9KiB8IC0tb2w9KiB8
IC0tbz0qKQogICAgb2xkaW5jbHVkZWRpcj0kYWNfb3B0YXJnIDs7CgogIC1wcmVmaXggfCAtLXBy
ZWZpeCB8IC0tcHJlZmkgfCAtLXByZWYgfCAtLXByZSB8IC0tcHIgfCAtLXApCiAgICBhY19wcmV2
PXByZWZpeCA7OwogIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9
KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikKICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7Cgog
IC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAt
LXByb2dyYW0tcHJlZiBcCiAgfCAtLXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1wcm9n
cmFtLXApCiAgICBhY19wcmV2PXByb2dyYW1fcHJlZml4IDs7CiAgLXByb2dyYW0tcHJlZml4PSog
fCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCiAgfCAtLXByb2dyYW0t
cHJlZj0qIHwgLS1wcm9ncmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXByb2dyYW0tcD0q
KQogICAgcHJvZ3JhbV9wcmVmaXg9JGFjX29wdGFyZyA7OwoKICAtcHJvZ3JhbS1zdWZmaXggfCAt
LXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9ncmFtLXN1ZmYgXAogIHwg
LS1wcm9ncmFtLXN1ZiB8IC0tcHJvZ3JhbS1zdSB8IC0tcHJvZ3JhbS1zKQogICAgYWNfcHJldj1w
cm9ncmFtX3N1ZmZpeCA7OwogIC1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpeD0q
IHwgLS1wcm9ncmFtLXN1ZmZpPSogXAogIHwgLS1wcm9ncmFtLXN1ZmY9KiB8IC0tcHJvZ3JhbS1z
dWY9KiB8IC0tcHJvZ3JhbS1zdT0qIHwgLS1wcm9ncmFtLXM9KikKICAgIHByb2dyYW1fc3VmZml4
PSRhY19vcHRhcmcgOzsKCiAgLXByb2dyYW0tdHJhbnNmb3JtLW5hbWUgfCAtLXByb2dyYW0tdHJh
bnNmb3JtLW5hbWUgXAogIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJh
bnNmb3JtLW5hIFwKICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbiB8IC0tcHJvZ3JhbS10cmFuc2Zv
cm0tIFwKICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0gfCAtLXByb2dyYW0tdHJhbnNmb3IgXAogIHwg
LS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKICB8IC0tcHJvZ3JhbS10cmFu
cyB8IC0tcHJvZ3JhbS10cmFuIFwKICB8IC0tcHJvZ3ItdHJhIHwgLS1wcm9ncmFtLXRyIHwgLS1w
cm9ncmFtLXQpCiAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKICAtcHJvZ3Jh
bS10cmFuc2Zvcm0tbmFtZT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogXAogIHwgLS1w
cm9ncmFtLXRyYW5zZm9ybS1uYW09KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmE9KiBcCiAgfCAt
LXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAogIHwgLS1w
cm9ncmFtLXRyYW5zZm9ybT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9yPSogXAogIHwgLS1wcm9ncmFt
LXRyYW5zZm89KiB8IC0tcHJvZ3JhbS10cmFuc2Y9KiBcCiAgfCAtLXByb2dyYW0tdHJhbnM9KiB8
IC0tcHJvZ3JhbS10cmFuPSogXAogIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwg
LS1wcm9ncmFtLXQ9KikKICAgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9JGFjX29wdGFyZyA7OwoK
ICAtcGRmZGlyIHwgLS1wZGZkaXIgfCAtLXBkZmRpIHwgLS1wZGZkIHwgLS1wZGYgfCAtLXBkKQog
ICAgYWNfcHJldj1wZGZkaXIgOzsKICAtcGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1wZGZkaT0q
IHwgLS1wZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQogICAgcGRmZGlyPSRhY19vcHRhcmcgOzsK
CiAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykKICAgIGFjX3ByZXY9
cHNkaXIgOzsKICAtcHNkaXI9KiB8IC0tcHNkaXI9KiB8IC0tcHNkaT0qIHwgLS1wc2Q9KiB8IC0t
cHM9KikKICAgIHBzZGlyPSRhY19vcHRhcmcgOzsKCiAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwg
LS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0t
c2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKICAgIHNpbGVudD15ZXMgOzsKCiAgLXNiaW5kaXIgfCAt
LXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCiAg
ICBhY19wcmV2PXNiaW5kaXIgOzsKICAtc2JpbmRpcj0qIHwgLS1zYmluZGlyPSogfCAtLXNiaW5k
aT0qIHwgLS1zYmluZD0qIHwgLS1zYmluPSogXAogIHwgLS1zYmk9KiB8IC0tc2I9KikKICAgIHNi
aW5kaXI9JGFjX29wdGFyZyA7OwoKICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGly
IHwgLS1zaGFyZWRzdGF0ZWRpIFwKICB8IC0tc2hhcmVkc3RhdGVkIHwgLS1zaGFyZWRzdGF0ZSB8
IC0tc2hhcmVkc3RhdCB8IC0tc2hhcmVkc3RhIFwKICB8IC0tc2hhcmVkc3QgfCAtLXNoYXJlZHMg
fCAtLXNoYXJlZCB8IC0tc2hhcmUgfCAtLXNoYXIgXAogIHwgLS1zaGEgfCAtLXNoKQogICAgYWNf
cHJldj1zaGFyZWRzdGF0ZWRpciA7OwogIC1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0
ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpPSogXAogIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hh
cmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCiAgfCAtLXNoYXJl
ZHN0PSogfCAtLXNoYXJlZHM9KiB8IC0tc2hhcmVkPSogfCAtLXNoYXJlPSogfCAtLXNoYXI9KiBc
CiAgfCAtLXNoYT0qIHwgLS1zaD0qKQogICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OwoK
ICAtc2l0ZSB8IC0tc2l0ZSB8IC0tc2l0KQogICAgYWNfcHJldj1zaXRlIDs7CiAgLXNpdGU9KiB8
IC0tc2l0ZT0qIHwgLS1zaXQ9KikKICAgIHNpdGU9JGFjX29wdGFyZyA7OwoKICAtc3JjZGlyIHwg
LS1zcmNkaXIgfCAtLXNyY2RpIHwgLS1zcmNkIHwgLS1zcmMgfCAtLXNyKQogICAgYWNfcHJldj1z
cmNkaXIgOzsKICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSog
fCAtLXNyYz0qIHwgLS1zcj0qKQogICAgc3JjZGlyPSRhY19vcHRhcmcgOzsKCiAgLXN5c2NvbmZk
aXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYg
XAogIHwgLS1zeXNjb24gfCAtLXN5c2NvIHwgLS1zeXNjIHwgLS1zeXMgfCAtLXN5KQogICAgYWNf
cHJldj1zeXNjb25mZGlyIDs7CiAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1z
eXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKICB8IC0tc3lzY29uPSog
fCAtLXN5c2NvPSogfCAtLXN5c2M9KiB8IC0tc3lzPSogfCAtLXN5PSopCiAgICBzeXNjb25mZGly
PSRhY19vcHRhcmcgOzsKCiAgLXRhcmdldCB8IC0tdGFyZ2V0IHwgLS10YXJnZSB8IC0tdGFyZyB8
IC0tdGFyIHwgLS10YSB8IC0tdCkKICAgIGFjX3ByZXY9dGFyZ2V0X2FsaWFzIDs7CiAgLXRhcmdl
dD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9
KiB8IC0tdD0qKQogICAgdGFyZ2V0X2FsaWFzPSRhY19vcHRhcmcgOzsKCiAgLXYgfCAtdmVyYm9z
ZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKICAgIHZlcmJvc2U9
eWVzIDs7CgogIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12
ZXJzIHwgLVYpCiAgICBhY19pbml0X3ZlcnNpb249OiA7OwoKICAtd2l0aC0qIHwgLS13aXRoLSop
CiAgICBhY19wYWNrYWdlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aC1cKFtePV0qXCkn
YAogICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5h
bWVzLgogICAgZXhwciAieCRhY19wYWNrYWdlIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9k
ZXYvbnVsbCAmJgogICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBu
YW1lOiAkYWNfcGFja2FnZSIgPiYyCiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgYWNf
cGFja2FnZT1gZWNobyAkYWNfcGFja2FnZSB8IHNlZCAncy9bLS5dL18vZydgCiAgICBldmFsIHdp
dGhfJGFjX3BhY2thZ2U9XCRhY19vcHRhcmcgOzsKCiAgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0q
KQogICAgYWNfcGFja2FnZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwp
J2AKICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBu
YW1lcy4KICAgIGV4cHIgIngkYWNfcGFja2FnZSIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4v
ZGV2L251bGwgJiYKICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2Ug
bmFtZTogJGFjX3BhY2thZ2UiID4mMgogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KICAgIGFj
X3BhY2thZ2U9YGVjaG8gJGFjX3BhY2thZ2UgfCBzZWQgJ3MvWy0uXS9fL2cnYAogICAgZXZhbCB3
aXRoXyRhY19wYWNrYWdlPW5vIDs7CgogIC0teCkKICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgt
eC4KICAgIHdpdGhfeD15ZXMgOzsKCiAgLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZXMgfCAtLXgt
aW5jbHVkZSB8IC0teC1pbmNsdWQgfCAtLXgtaW5jbHUgXAogIHwgLS14LWluY2wgfCAtLXgtaW5j
IHwgLS14LWluIHwgLS14LWkpCiAgICBhY19wcmV2PXhfaW5jbHVkZXMgOzsKICAteC1pbmNsdWRl
cz0qIHwgLS14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1ZD0qIHwgLS14
LWluY2x1PSogXAogIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9
KikKICAgIHhfaW5jbHVkZXM9JGFjX29wdGFyZyA7OwoKICAteC1saWJyYXJpZXMgfCAtLXgtbGli
cmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAogIHwgLS14LWxpYnJhciB8IC0t
eC1saWJyYSB8IC0teC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0teC1sKQogICAgYWNfcHJl
dj14X2xpYnJhcmllcyA7OwogIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14
LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKICB8IC0teC1saWJyYXI9KiB8IC0teC1saWJy
YT0qIHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1saT0qIHwgLS14LWw9KikKICAgIHhf
bGlicmFyaWVzPSRhY19vcHRhcmcgOzsKCiAgLSopIHsgZWNobyAiJGFzX21lOiBlcnJvcjogdW5y
ZWNvZ25pemVkIG9wdGlvbjogJGFjX29wdGlvbgpUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGlu
Zm9ybWF0aW9uLiIgPiYyCiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgOzsKCiAgKj0q
KQogICAgYWNfZW52dmFyPWBleHByICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAogICAg
IyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgog
ICAgZXhwciAieCRhY19lbnZ2YXIiIDogIi4qW15fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAm
JgogICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdmFyaWFibGUgbmFtZTogJGFj
X2VudnZhciIgPiYyCiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgZXZhbCAkYWNfZW52
dmFyPVwkYWNfb3B0YXJnCiAgICBleHBvcnQgJGFjX2VudnZhciA7OwoKICAqKQogICAgIyBGSVhN
RTogc2hvdWxkIGJlIHJlbW92ZWQgaW4gYXV0b2NvbmYgMy4wLgogICAgZWNobyAiJGFzX21lOiBX
QVJOSU5HOiB5b3Ugc2hvdWxkIHVzZSAtLWJ1aWxkLCAtLWhvc3QsIC0tdGFyZ2V0IiA+JjIKICAg
IGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAm
JgogICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0
aW9uIiA+JjIKICAgIDogJHtidWlsZF9hbGlhcz0kYWNfb3B0aW9ufSAke2hvc3RfYWxpYXM9JGFj
X29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KICAgIDs7CgogIGVzYWMKZG9uZQoK
aWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCiAgYWNfb3B0aW9uPS0tYGVjaG8gJGFjX3ByZXYg
fCBzZWQgJ3MvXy8tL2cnYAogIHsgZWNobyAiJGFzX21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVu
dCB0byAkYWNfb3B0aW9uIiA+JjIKICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCgojIEJl
IHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZXMuCmZvciBhY192YXIgaW4JZXhl
Y19wcmVmaXggcHJlZml4IGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YXJvb3RkaXIgXAoJ
CWRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVk
aXIgXAoJCW9sZGluY2x1ZGVkaXIgZG9jZGlyIGluZm9kaXIgaHRtbGRpciBkdmlkaXIgcGRmZGly
IHBzZGlyIFwKCQlsaWJkaXIgbG9jYWxlZGlyIG1hbmRpcgpkbwogIGV2YWwgYWNfdmFsPVwkJGFj
X3ZhcgogIGNhc2UgJGFjX3ZhbCBpbgogICAgW1xcLyRdKiB8ID86W1xcL10qICkgIGNvbnRpbnVl
OzsKICAgIE5PTkUgfCAnJyApIGNhc2UgJGFjX3ZhciBpbiAqcHJlZml4ICkgY29udGludWU7OyBl
c2FjOzsKICBlc2FjCiAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0
ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKICAgeyAoZXhpdCAx
KTsgZXhpdCAxOyB9OyB9CmRvbmUKCiMgVGhlcmUgbWlnaHQgYmUgcGVvcGxlIHdobyBkZXBlbmQg
b24gdGhlIG9sZCBicm9rZW4gYmVoYXZpb3I6IGAkaG9zdCcKIyB1c2VkIHRvIGhvbGQgdGhlIGFy
Z3VtZW50IG9mIC0taG9zdCBldGMuCiMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KYnVpbGQ9
JGJ1aWxkX2FsaWFzCmhvc3Q9JGhvc3RfYWxpYXMKdGFyZ2V0PSR0YXJnZXRfYWxpYXMKCiMgRklY
TUU6IFRvIHJlbW92ZSBzb21lIGRheS4KaWYgdGVzdCAieCRob3N0X2FsaWFzIiAhPSB4OyB0aGVu
CiAgaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgPSB4OyB0aGVuCiAgICBjcm9zc19jb21waWxpbmc9
bWF5YmUKICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhl
IC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KICAgIElmIGEgY3Jvc3MgY29tcGlsZXIg
aXMgZGV0ZWN0ZWQgdGhlbiBjcm9zcyBjb21waWxlIG1vZGUgd2lsbCBiZSB1c2VkLiIgPiYyCiAg
ZWxpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiAhPSAieCRob3N0X2FsaWFzIjsgdGhlbgogICAgY3Jv
c3NfY29tcGlsaW5nPXllcwogIGZpCmZpCgphY190b29sX3ByZWZpeD0KdGVzdCAtbiAiJGhvc3Rf
YWxpYXMiICYmIGFjX3Rvb2xfcHJlZml4PSRob3N0X2FsaWFzLQoKdGVzdCAiJHNpbGVudCIgPSB5
ZXMgJiYgZXhlYyA2Pi9kZXYvbnVsbAoKCmFjX3B3ZD1gcHdkYCAmJiB0ZXN0IC1uICIkYWNfcHdk
IiAmJgphY19sc19kaT1gbHMgLWRpIC5gICYmCmFjX3B3ZF9sc19kaT1gY2QgIiRhY19wd2QiICYm
IGxzIC1kaSAuYCB8fAogIHsgZWNobyAiJGFzX21lOiBlcnJvcjogV29ya2luZyBkaXJlY3Rvcnkg
Y2Fubm90IGJlIGRldGVybWluZWQiID4mMgogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KdGVz
dCAiWCRhY19sc19kaSIgPSAiWCRhY19wd2RfbHNfZGkiIHx8CiAgeyBlY2hvICIkYXNfbWU6IGVy
cm9yOiBwd2QgZG9lcyBub3QgcmVwb3J0IG5hbWUgb2Ygd29ya2luZyBkaXJlY3RvcnkiID4mMgog
ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KCgojIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYg
bG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQuCmlmIHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCiAg
YWNfc3JjZGlyX2RlZmF1bHRlZD15ZXMKICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcg
dGhpcyBzY3JpcHQsIHRoZW4gdGhlIHBhcmVudCBkaXJlY3RvcnkuCiAgYWNfY29uZmRpcj1gJGFz
X2Rpcm5hbWUgLS0gIiQwIiB8fAokYXNfZXhwciBYIiQwIiA6ICdYXCguKlteL11cKS8vKlteL11b
Xi9dKi8qJCcgXHwgXAoJIFgiJDAiIDogJ1hcKC8vXClbXi9dJyBcfCBcCgkgWCIkMCIgOiAnWFwo
Ly9cKSQnIFx8IFwKCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKZWNobyBY
IiQwIiB8CiAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewoJICAgIHMv
L1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXC9cKVteL10uKi97CgkgICAgcy8vXDEvCgkgICAg
cQoJICB9CgkgIC9eWFwoXC9cL1wpJC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwo
XC9cKS4qL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgcy8uKi8uLzsgcSdgCiAgc3JjZGly
PSRhY19jb25mZGlyCiAgaWYgdGVzdCAhIC1yICIkc3JjZGlyLyRhY191bmlxdWVfZmlsZSI7IHRo
ZW4KICAgIHNyY2Rpcj0uLgogIGZpCmVsc2UKICBhY19zcmNkaXJfZGVmYXVsdGVkPW5vCmZpCmlm
IHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCiAgdGVzdCAiJGFjX3Ny
Y2Rpcl9kZWZhdWx0ZWQiID0geWVzICYmIHNyY2Rpcj0iJGFjX2NvbmZkaXIgb3IgLi4iCiAgeyBl
Y2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUp
IGluICRzcmNkaXIiID4mMgogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KZmkKYWNfbXNnPSJz
b3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgph
Y19hYnNfY29uZmRpcj1gKAoJY2QgIiRzcmNkaXIiICYmIHRlc3QgLXIgIi4vJGFjX3VuaXF1ZV9m
aWxlIiB8fCB7IGVjaG8gIiRhc19tZTogZXJyb3I6ICRhY19tc2ciID4mMgogICB7IChleGl0IDEp
OyBleGl0IDE7IH07IH0KCXB3ZClgCiMgV2hlbiBidWlsZGluZyBpbiBwbGFjZSwgc2V0IHNyY2Rp
cj0uCmlmIHRlc3QgIiRhY19hYnNfY29uZmRpciIgPSAiJGFjX3B3ZCI7IHRoZW4KICBzcmNkaXI9
LgpmaQojIFJlbW92ZSB1bm5lY2Vzc2FyeSB0cmFpbGluZyBzbGFzaGVzIGZyb20gc3JjZGlyLgoj
IERvdWJsZSBzbGFzaGVzIGluIGZpbGUgbmFtZXMgaW4gb2JqZWN0IGZpbGUgZGVidWdnaW5nIGlu
Zm8KIyBtZXNzIHVwIE0teCBnZGIgaW4gRW1hY3MuCmNhc2UgJHNyY2RpciBpbgoqLykgc3JjZGly
PWBleHByICJYJHNyY2RpciIgOiAnWFwoLipbXi9dXCknIFx8ICJYJHNyY2RpciIgOiAnWFwoLipc
KSdgOzsKZXNhYwpmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBkbwogIGV2YWwgYWNf
ZW52XyR7YWNfdmFyfV9zZXQ9XCR7JHthY192YXJ9K3NldH0KICBldmFsIGFjX2Vudl8ke2FjX3Zh
cn1fdmFsdWU9XCQke2FjX3Zhcn0KICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7
YWNfdmFyfStzZXR9CiAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9
CmRvbmUKCiMKIyBSZXBvcnQgdGhlIC0taGVscCBtZXNzYWdlLgojCmlmIHRlc3QgIiRhY19pbml0
X2hlbHAiID0gImxvbmciOyB0aGVuCiAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUg
b3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgIyBUaGlzIG1lc3NhZ2Ug
aXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgogIGNhdCA8PF9B
Q0VPRgpcYGNvbmZpZ3VyZScgY29uZmlndXJlcyB0aGlzIHBhY2thZ2UgdG8gYWRhcHQgdG8gbWFu
eSBraW5kcyBvZiBzeXN0ZW1zLgoKVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4u
CgpUbyBhc3NpZ24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCBDQywgQ0ZMQUdTLi4uKSwg
c3BlY2lmeSB0aGVtIGFzClZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3IgZGVzY3JpcHRpb25zIG9m
IHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCgpEZWZhdWx0cyBmb3IgdGhlIG9wdGlvbnMg
YXJlIHNwZWNpZmllZCBpbiBicmFja2V0cy4KCkNvbmZpZ3VyYXRpb246CiAgLWgsIC0taGVscCAg
ICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKICAgICAgLS1oZWxwPXNob3J0
ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCiAgICAgIC0t
aGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQgaGVscCBvZiBhbGwgdGhlIGluY2x1
ZGVkIHBhY2thZ2VzCiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGlu
Zm9ybWF0aW9uIGFuZCBleGl0CiAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8gbm90IHByaW50
IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCiAgICAgIC0tY2FjaGUtZmlsZT1GSUxFICAgY2FjaGUg
dGVzdCByZXN1bHRzIGluIEZJTEUgW2Rpc2FibGVkXQogIC1DLCAtLWNvbmZpZy1jYWNoZSAgICAg
IGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCiAgLW4sIC0tbm8tY3JlYXRl
ICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKICAgICAgLS1zcmNkaXI9RElSICAg
ICAgICBmaW5kIHRoZSBzb3VyY2VzIGluIERJUiBbY29uZmlndXJlIGRpciBvciBcYC4uJ10KCklu
c3RhbGxhdGlvbiBkaXJlY3RvcmllczoKICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxs
IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKCQkJICBbJGFjX2RlZmF1
bHRfcHJlZml4XQogIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJl
LWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCgkJCSAgW1BSRUZJWF0KCkJ5IGRlZmF1bHQsIFxg
bWFrZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgpcYCRhY19kZWZhdWx0
X3ByZWZpeC9iaW4nLCBcYCRhY19kZWZhdWx0X3ByZWZpeC9saWInIGV0Yy4gIFlvdSBjYW4gc3Bl
Y2lmeQphbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gXGAkYWNfZGVmYXVsdF9wcmVm
aXgnIHVzaW5nIFxgLS1wcmVmaXgnLApmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgoK
Rm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVsb3cuCgpGaW5lIHR1bmluZyBv
ZiB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgogIC0tYmluZGlyPURJUiAgICAgICAgICAg
dXNlciBleGVjdXRhYmxlcyBbRVBSRUZJWC9iaW5dCiAgLS1zYmluZGlyPURJUiAgICAgICAgICBz
eXN0ZW0gYWRtaW4gZXhlY3V0YWJsZXMgW0VQUkVGSVgvc2Jpbl0KICAtLWxpYmV4ZWNkaXI9RElS
ICAgICAgIHByb2dyYW0gZXhlY3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KICAtLXN5c2NvbmZk
aXI9RElSICAgICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvZXRjXQog
IC0tc2hhcmVkc3RhdGVkaXI9RElSICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRl
bnQgZGF0YSBbUFJFRklYL2NvbV0KICAtLWxvY2Fsc3RhdGVkaXI9RElSICAgIG1vZGlmaWFibGUg
c2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL3Zhcl0KICAtLWxpYmRpcj1ESVIgICAgICAgICAg
IG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCiAgLS1pbmNsdWRlZGlyPURJUiAg
ICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCiAgLS1vbGRpbmNsdWRlZGlyPURJ
UiAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBbL3Vzci9pbmNsdWRlXQogIC0tZGF0YXJv
b3RkaXI9RElSICAgICAgcmVhZC1vbmx5IGFyY2guLWluZGVwZW5kZW50IGRhdGEgcm9vdCBbUFJF
RklYL3NoYXJlXQogIC0tZGF0YWRpcj1ESVIgICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVy
ZS1pbmRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUl0KICAtLWluZm9kaXI9RElSICAgICAgICAg
IGluZm8gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvaW5mb10KICAtLWxvY2FsZWRpcj1ESVIg
ICAgICAgIGxvY2FsZS1kZXBlbmRlbnQgZGF0YSBbREFUQVJPT1RESVIvbG9jYWxlXQogIC0tbWFu
ZGlyPURJUiAgICAgICAgICAgbWFuIGRvY3VtZW50YXRpb24gW0RBVEFST09URElSL21hbl0KICAt
LWRvY2Rpcj1ESVIgICAgICAgICAgIGRvY3VtZW50YXRpb24gcm9vdCBbREFUQVJPT1RESVIvZG9j
L1BBQ0tBR0VdCiAgLS1odG1sZGlyPURJUiAgICAgICAgICBodG1sIGRvY3VtZW50YXRpb24gW0RP
Q0RJUl0KICAtLWR2aWRpcj1ESVIgICAgICAgICAgIGR2aSBkb2N1bWVudGF0aW9uIFtET0NESVJd
CiAgLS1wZGZkaXI9RElSICAgICAgICAgICBwZGYgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQogIC0t
cHNkaXI9RElSICAgICAgICAgICAgcHMgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQpfQUNFT0YKCiAg
Y2F0IDw8XF9BQ0VPRgoKUHJvZ3JhbSBuYW1lczoKICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCAg
ICAgICAgICAgIHByZXBlbmQgUFJFRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCiAgLS1w
cm9ncmFtLXN1ZmZpeD1TVUZGSVggICAgICAgICAgICBhcHBlbmQgU1VGRklYIHRvIGluc3RhbGxl
ZCBwcm9ncmFtIG5hbWVzCiAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0gICBydW4g
c2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKClggZmVhdHVyZXM6CiAgLS14
LWluY2x1ZGVzPURJUiAgICBYIGluY2x1ZGUgZmlsZXMgYXJlIGluIERJUgogIC0teC1saWJyYXJp
ZXM9RElSICAgWCBsaWJyYXJ5IGZpbGVzIGFyZSBpbiBESVIKX0FDRU9GCmZpCgppZiB0ZXN0IC1u
ICIkYWNfaW5pdF9oZWxwIjsgdGhlbgoKICBjYXQgPDxcX0FDRU9GCgpPcHRpb25hbCBGZWF0dXJl
czoKICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1l
IGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCiAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVk
ZSBGRUFUVVJFIFtBUkc9eWVzXQogIC0tZW5hYmxlLWFzbT14ICAgICAgICBlbmFibGUgdGhlIHVz
ZSBvZiBhc20gY29kZSBkZWZhdWx0PXllcwogIC0tZW5hYmxlLWNvbG9yOD14ICAgICBlbmFibGUg
c3VwcG9ydCBmb3IgOC1icHAgbW9kZXMgZGVmYXVsdD15ZXMKICAtLWVuYWJsZS1jb2xvcjE2PXgg
ICAgZW5hYmxlIHN1cHBvcnQgZm9yIDE2LWJwcCBtb2RlcyBkZWZhdWx0PXllcwogIC0tZW5hYmxl
LWNvbG9yMjQ9eCAgICBlbmFibGUgc3VwcG9ydCBmb3IgMjQtYnBwIG1vZGVzIGRlZmF1bHQ9eWVz
CiAgLS1lbmFibGUtY29sb3IzMj14ICAgIGVuYWJsZSBzdXBwb3J0IGZvciAzMi1icHAgbW9kZXMg
ZGVmYXVsdD15ZXMKICAtLWVuYWJsZS1zdGF0aWM9eCAgICAgYnVpbGQgc3RhdGljIGxpYnJhcmll
cyBkZWZhdWx0PW5vCiAgLS1lbmFibGUtc2hhcmVkPXggICAgIGJ1aWxkIHNoYXJlZCBsaWJyYXJp
ZXMgZGVmYXVsdD15ZXMKICAtLWVuYWJsZS1zdGRsaWI9eCAgICAgZW5hYmxlIGJ1aWxkaW5nIG5v
cm1hbCBsaWJyYXJ5IGRlZmF1bHQ9eWVzCiAgLS1lbmFibGUtZGJnbGliPXggICAgIGVuYWJsZSBi
dWlsZGluZyBkZWJ1Z2dpbmcgbGlicmFyeSBkZWZhdWx0PW5vCiAgLS1lbmFibGUtcHJvZmxpYj14
ICAgIGVuYWJsZSBidWlsZGluZyBwcm9maWxpbmcgbGlicmFyeSBkZWZhdWx0PW5vCiAgLS1lbmFi
bGUtZGJncHJvZz14ICAgIGVuYWJsZSBidWlsZGluZyBkZWJ1Z2dpbmcgcHJvZ3JhbXMgZGVmYXVs
dD1ubwogIC0tZW5hYmxlLXByb2Zwcm9nPXggICBlbmFibGUgYnVpbGRpbmcgcHJvZmlsaW5nIHBy
b2dyYW1zIGRlZmF1bHQ9bm8KICAtLWVuYWJsZS1zdGF0aWNwcm9nPXggbGluayBwcm9ncmFtcyB3
aXRoIHN0YXRpYyBsaWJyYXJ5IGRlZmF1bHQ9bm8KICAtLWVuYWJsZS1vcHRzPUNQVSAgICAgICBl
bmFibGUgeDg2IHByb2Nlc3NvciBvcHRpbWl6YXRpb25zIHBlbnRpdW0KICAtLWVuYWJsZS1leGNs
b3B0cz1DUFUgICBlbmFibGUgeDg2IHByb2Nlc3NvciBleGNsdXNpdmUgb3B0aW1pemF0aW9ucyBu
b25lCiAgLS1lbmFibGUtc3RyaWN0d2Fybj14IHByb2R1Y2Ugc3RyaWN0IGNvbXBpbGVyIHdhcm5p
bmdzIGRlZmF1bHQ9bm8KICAtLWVuYWJsZS1tYWdpY21haW49eCAgZW5hYmxlIG1hZ2ljIG1haW4g
ZGVmYXVsdD1ubwogIC0tZW5hYmxlLW1teD14ICAgICAgICBlbmFibGUgdGhlIHVzZSBvZiBNTVgg
aW5zdHJ1Y3Rpb25zIGRlZmF1bHQ9eWVzCiAgLS1lbmFibGUtc3NlPXggICAgICAgIGVuYWJsZSB0
aGUgdXNlIG9mIFNTRSBpbnN0cnVjdGlvbnMgZGVmYXVsdD15ZXMKICAtLWVuYWJsZS1jb25zdHJ1
Y3Rvcj14ZW5hYmxlIHRoZSB1c2Ugb2YgY29uc3RydWN0b3IgYXR0ciBkZWZhdWx0PXllcwogIC0t
ZW5hYmxlLW1vZHVsZXM9eCAgICBlbmFibGUgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZXMgZGVm
YXVsdD15ZXMKICAtLWVuYWJsZS1kYmctd2l0aC1mb3J0aWZ5PXggICAgZW5hYmxlIGRlYnVnZ2lu
ZyB3aXRoIEZvcnRpZnkgZGVmYXVsdD1ubwogIC0tZW5hYmxlLWRiZy13aXRoLWRtYWxsb2M9eCAg
ICBlbmFibGUgZGVidWdnaW5nIHdpdGggRE1hbGxvYyBkZWZhdWx0PW5vCiAgLS1lbmFibGUtcHRo
cmVhZHM9eCAgIGVuYWJsZSB1c2Ugb2YgcHRocmVhZHMgZGVmYXVsdD15ZXMKICAtLWVuYWJsZS1v
c3NkaWdpPXggICAgZW5hYmxlIGJ1aWxkaW5nIE9TUyBESUdJIGRyaXZlciBkZWZhdWx0PXllcwog
IC0tZW5hYmxlLW9zc21pZGk9eCAgICBlbmFibGUgYnVpbGRpbmcgT1NTIE1JREkgZHJpdmVyIGRl
ZmF1bHQ9eWVzCiAgLS1lbmFibGUtYWxzYWRpZ2k9eCAgIGVuYWJsZSBidWlsZGluZyBBTFNBIERJ
R0kgZHJpdmVyIGRlZmF1bHQ9eWVzCiAgLS1lbmFibGUtYWxzYW1pZGk9eCAgIGVuYWJsZSBidWls
ZGluZyBBTFNBIE1JREkgZHJpdmVyIGRlZmF1bHQ9eWVzCiAgLS1lbmFibGUtZXNkZGlnaT14ICAg
IGVuYWJsZSBidWlsZGluZyBFU0QgRElHSSBkcml2ZXIgZGVmYXVsdD15ZXMKICAtLWVuYWJsZS1h
cnRzZGlnaT14ICAgZW5hYmxlIGJ1aWxkaW5nIEFSVFMgRElHSSBkcml2ZXIgZGVmYXVsdD15ZXMK
ICAtLWVuYWJsZS1zZ2lhbGRpZ2k9eCAgZW5hYmxlIGJ1aWxkaW5nIFNHSSBBTCBESUdJIGRyaXZl
ciBkZWZhdWx0PXllcwogIC0tZW5hYmxlLWphY2tkaWdpPXggICAgZW5hYmxlIGJ1aWxkaW5nIEpB
Q0sgRElHSSBkcml2ZXIgZGVmYXVsdD15ZXMKICAtLWVuYWJsZS14d2luLXhjdXJzb3I9eCBlbmFi
bGUgdGhlIHVzZSBvZiBYY3Vyc29yIGxpYnJhcnkgZGVmYXVsdD15ZXMKICAtLWVuYWJsZS14d2lu
LXNobT14ICAgZW5hYmxlIHRoZSB1c2Ugb2YgTUlULVNITSBFeHRlbnNpb24gZGVmYXVsdD15ZXMK
ICAtLWVuYWJsZS14d2luLXZpZG1vZGU9eCBlbmFibGUgdGhlIHVzZSBvZiBYRjg2VmlkTW9kZSBF
eHQuIGRlZmF1bHQ9eWVzCiAgLS1lbmFibGUteHdpbi1kZ2EyPXggIGVuYWJsZSB0aGUgdXNlIG9m
IERHQSAyLjAgRXh0ZW5zaW9uIGRlZmF1bHQ9eWVzCiAgLS1lbmFibGUteGltPXggICAgICAgIGVu
YWJsZSB0aGUgdXNlIG9mIFhJTSBrZXlib2FyZCBpbnB1dCBkZWZhdWx0PXllcwogIC0tZW5hYmxl
LWxpbnV4PXggICAgICBlbmFibGUgTGludXggY29uc29sZSBzdXBwb3J0IGRlZmF1bHQ9eWVzCiAg
LS1lbmFibGUtdmdhPXggICAgICAgIGVuYWJsZSBWR0EgZ3JhcGhpY3MgZHJpdmVyIGRlZmF1bHQ9
eWVzCiAgLS1lbmFibGUtZmJjb249eCAgICAgIGVuYWJsZSBmYmNvbiBncmFwaGljcyBkcml2ZXIg
ZGVmYXVsdD15ZXMKICAtLWVuYWJsZS12YmVhZj14ICAgICAgZW5hYmxlIFZCRS9BRiBncmFwaGlj
cyBkcml2ZXIgZGVmYXVsdD1ubwogIC0tZW5hYmxlLXN2Z2FsaWI9eCAgICBlbmFibGUgU1ZHQWxp
YiBncmFwaGljcyBkcml2ZXIgZGVmYXVsdD15ZXMKCk9wdGlvbmFsIFBhY2thZ2VzOgogIC0td2l0
aC1QQUNLQUdFWz1BUkddICAgIHVzZSBQQUNLQUdFIFtBUkc9eWVzXQogIC0td2l0aG91dC1QQUNL
QUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykK
ICAtLXdpdGgteCAgICAgICAgICAgICAgICB1c2UgdGhlIFggV2luZG93IFN5c3RlbQoKU29tZSBp
bmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CiAgQ0MgICAgICAgICAgQyBjb21waWxl
ciBjb21tYW5kCiAgQ0ZMQUdTICAgICAgQyBjb21waWxlciBmbGFncwogIExERkxBR1MgICAgIGxp
bmtlciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQog
ICAgICAgICAgICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8bGliIGRpcj4KICBMSUJTICAgICAg
ICBsaWJyYXJpZXMgdG8gcGFzcyB0byB0aGUgbGlua2VyLCBlLmcuIC1sPGxpYnJhcnk+CiAgQ1BQ
RkxBR1MgICAgQy9DKysvT2JqZWN0aXZlIEMgcHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcuIC1JPGlu
Y2x1ZGUgZGlyPiBpZgogICAgICAgICAgICAgIHlvdSBoYXZlIGhlYWRlcnMgaW4gYSBub25zdGFu
ZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgogIENQUCAgICAgICAgIEMgcHJlcHJvY2Vzc29y
CiAgWE1LTUYgICAgICAgUGF0aCB0byB4bWttZiwgTWFrZWZpbGUgZ2VuZXJhdG9yIGZvciBYIFdp
bmRvdyBTeXN0ZW0KClVzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMg
bWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCml0IHRvIGZpbmQgbGlicmFyaWVzIGFuZCBw
cm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJkIG5hbWVzL2xvY2F0aW9ucy4KCl9BQ0VPRgphY19zdGF0
dXM9JD8KZmkKCmlmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KICAj
IElmIHRoZXJlIGFyZSBzdWJkaXJzLCByZXBvcnQgdGhlaXIgc3BlY2lmaWMgLS1oZWxwLgogIGZv
ciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGlyIiA9IHg6ICYm
IGNvbnRpbnVlCiAgICB0ZXN0IC1kICIkYWNfZGlyIiB8fCBjb250aW51ZQogICAgYWNfYnVpbGRk
aXI9LgoKY2FzZSAiJGFjX2RpciIgaW4KLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGly
X3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CiopCiAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8g
IiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAogICMgQSAiLi4iIGZvciBlYWNoIGRpcmVj
dG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KICBhY190b3BfYnVpbGRkaXJfc3ViPWBlY2hvICIkYWNf
ZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLy4uLGc7cywvLCwnYAogIGNhc2UgJGFjX3Rv
cF9idWlsZGRpcl9zdWIgaW4KICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWls
ZF9wcmVmaXg9IDs7CiAgKikgIGFjX3RvcF9idWlsZF9wcmVmaXg9JGFjX3RvcF9idWlsZGRpcl9z
dWIvIDs7CiAgZXNhYyA7Owplc2FjCmFjX2Fic190b3BfYnVpbGRkaXI9JGFjX3B3ZAphY19hYnNf
YnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4CiMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxp
dHk6CmFjX3RvcF9idWlsZGRpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeAoKY2FzZSAkc3JjZGlyIGlu
CiAgLikgICMgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgogICAgYWNfc3JjZGlyPS4KICAgIGFj
X3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKICAgIGFjX2Fic190b3Bfc3JjZGlyPSRh
Y19wd2QgOzsKICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCiAgICBhY19z
cmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwogICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyCiAg
ICBhY19hYnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CiAgKikgIyBSZWxhdGl2ZSBuYW1lLgogICAg
YWNfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpciRhY19kaXJfc3VmZml4CiAgICBh
Y190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgogICAgYWNfYWJzX3RvcF9z
cmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7CmVzYWMKYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX3RvcF9z
cmNkaXIkYWNfZGlyX3N1ZmZpeAoKICAgIGNkICIkYWNfZGlyIiB8fCB7IGFjX3N0YXR1cz0kPzsg
Y29udGludWU7IH0KICAgICMgQ2hlY2sgZm9yIGd1ZXN0ZWQgY29uZmlndXJlLgogICAgaWYgdGVz
dCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IjsgdGhlbgogICAgICBlY2hvICYmCiAgICAg
ICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IiAtLWhlbHA9cmVjdXJzaXZlCiAgICBl
bGlmIHRlc3QgLWYgIiRhY19zcmNkaXIvY29uZmlndXJlIjsgdGhlbgogICAgICBlY2hvICYmCiAg
ICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUiIC0taGVscD1yZWN1cnNpdmUKICAgIGVs
c2UKICAgICAgZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0
aW9uIGlzIGluICRhY19kaXIiID4mMgogICAgZmkgfHwgYWNfc3RhdHVzPSQ/CiAgICBjZCAiJGFj
X3B3ZCIgfHwgeyBhY19zdGF0dXM9JD87IGJyZWFrOyB9CiAgZG9uZQpmaQoKdGVzdCAtbiAiJGFj
X2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCmlmICRhY19pbml0X3ZlcnNpb247IHRoZW4K
ICBjYXQgPDxcX0FDRU9GCmNvbmZpZ3VyZQpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjEK
CkNvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwg
MjAwMCwgMjAwMSwKMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4KVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g
Y29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgpfQUNFT0YKICBleGl0CmZpCmNhdCA+Y29u
ZmlnLmxvZyA8PF9BQ0VPRgpUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2Vk
IGJ5IGNvbXBpbGVycyB3aGlsZQpydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBp
ZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgoKSXQgd2FzIGNyZWF0ZWQgYnkgJGFzX21lLCB3
aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYxLiAgSW52b2NhdGlvbiBjb21t
YW5kIGxpbmUgd2FzCgogICQgJDAgJEAKCl9BQ0VPRgpleGVjIDU+PmNvbmZpZy5sb2cKewpjYXQg
PDxfQVNVTkFNRQojIyAtLS0tLS0tLS0gIyMKIyMgUGxhdGZvcm0uICMjCiMjIC0tLS0tLS0tLSAj
IwoKaG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAx
cWAKdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCnVu
YW1lIC1yID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAp1bmFtZSAt
cyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKdW5hbWUgLXYgPSBg
KHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCgovdXNyL2Jpbi91bmFtZSAt
cCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKL2Jp
bi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsICAgICB8fCBlY2hv
IHVua25vd25gCgovYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9u
dWxsICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi91c3IvYmluL2FyY2ggLWsgICAgICAg
PSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAK
L3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2
L251bGwgfHwgZWNobyB1bmtub3duYAovdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jp
bi9ob3N0aW5mbykgMj4vZGV2L251bGwgICAgICB8fCBlY2hvIHVua25vd25gCi9iaW4vbWFjaGlu
ZSAgICAgICAgICAgPSBgKC9iaW4vbWFjaGluZSkgMj4vZGV2L251bGwgICAgICAgICAgIHx8IGVj
aG8gdW5rbm93bmAKL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkg
Mj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAovYmluL3VuaXZlcnNlICAgICAgICAg
ID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25g
CgpfQVNVTkFNRQoKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNf
ZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYm
IGFzX2Rpcj0uCiAgZWNobyAiUEFUSDogJGFzX2RpciIKZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgp9
ID4mNQoKY2F0ID4mNSA8PF9BQ0VPRgoKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMu
ICMjCiMjIC0tLS0tLS0tLS0tICMjCgpfQUNFT0YKCgojIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29t
bWFuZCBsaW5lLgojIFN0cmlwIG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNpb24gc28g
dGhleSBkbyBub3QgcGlsZSB1cC4KIyBTdHJpcCBvdXQgLS1zaWxlbnQgYmVjYXVzZSB3ZSBkb24n
dCB3YW50IHRvIHJlY29yZCBpdCBmb3IgZnV0dXJlIHJ1bnMuCiMgQWxzbyBxdW90ZSBhbnkgYXJn
cyBjb250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KIyBNYWtlIHR3byBwYXNzZXMgdG8g
YWxsb3cgZm9yIHByb3BlciBkdXBsaWNhdGUtYXJndW1lbnQgc3VwcHJlc3Npb24uCmFjX2NvbmZp
Z3VyZV9hcmdzPQphY19jb25maWd1cmVfYXJnczA9CmFjX2NvbmZpZ3VyZV9hcmdzMT0KYWNfbXVz
dF9rZWVwX25leHQ9ZmFsc2UKZm9yIGFjX3Bhc3MgaW4gMSAyCmRvCiAgZm9yIGFjX2FyZwogIGRv
CiAgICBjYXNlICRhY19hcmcgaW4KICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8t
cmVjdXJzaW9uIHwgLS1uby1yKikgY29udGludWUgOzsKICAgIC1xIHwgLXF1aWV0IHwgLS1xdWll
dCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCiAgICB8IC1zaWxlbnQgfCAtLXNpbGVu
dCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKICAgICAgY29udGludWUgOzsKICAgICpcJyop
CiAgICAgIGFjX2FyZz1gZWNobyAiJGFjX2FyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAg
OzsKICAgIGVzYWMKICAgIGNhc2UgJGFjX3Bhc3MgaW4KICAgIDEpIGFjX2NvbmZpZ3VyZV9hcmdz
MD0iJGFjX2NvbmZpZ3VyZV9hcmdzMCAnJGFjX2FyZyciIDs7CiAgICAyKQogICAgICBhY19jb25m
aWd1cmVfYXJnczE9IiRhY19jb25maWd1cmVfYXJnczEgJyRhY19hcmcnIgogICAgICBpZiB0ZXN0
ICRhY19tdXN0X2tlZXBfbmV4dCA9IHRydWU7IHRoZW4KCWFjX211c3Rfa2VlcF9uZXh0PWZhbHNl
ICMgR290IHZhbHVlLCBiYWNrIHRvIG5vcm1hbC4KICAgICAgZWxzZQoJY2FzZSAkYWNfYXJnIGlu
CgkgICo9KiB8IC0tY29uZmlnLWNhY2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSog
XAoJICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2FzIHwgLS1nKiB8IC1uZnAgfCAtLW5m
KiBcCgkgIHwgLXEgfCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZl
cmIqIFwKCSAgfCAtd2l0aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13aXRob3V0LSog
fCAtLXgpCgkgICAgY2FzZSAiJGFjX2NvbmZpZ3VyZV9hcmdzMCAiIGluCgkgICAgICAiJGFjX2Nv
bmZpZ3VyZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OwoJICAgIGVzYWMKCSAg
ICA7OwoJICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKCWVzYWMKICAgICAgZmkKICAg
ICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciCiAgICAg
IDs7CiAgICBlc2FjCiAgZG9uZQpkb25lCiRhc191bnNldCBhY19jb25maWd1cmVfYXJnczAgfHwg
dGVzdCAiJHthY19jb25maWd1cmVfYXJnczArc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJl
X2FyZ3MwPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMDsgfQokYXNfdW5zZXQgYWNfY29uZmln
dXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MxK3NldH0iICE9IHNldCB8fCB7
IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczE7IH0KCiMgV2hl
biBpbnRlcnJ1cHRlZCBvciBleGl0J2QsIGNsZWFudXAgdGVtcG9yYXJ5IGZpbGVzLCBhbmQgY29t
cGxldGUKIyBjb25maWcubG9nLiAgV2UgcmVtb3ZlIGNvbW1lbnRzIGJlY2F1c2UgYW55d2F5IHRo
ZSBxdW90ZXMgaW4gdGhlcmUKIyB3b3VsZCBjYXVzZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCiMg
V0FSTklORzogVXNlICdcJycgdG8gcmVwcmVzZW50IGFuIGFwb3N0cm9waGUgd2l0aGluIHRoZSB0
cmFwLgojIFdBUk5JTkc6IERvIG5vdCBzdGFydCB0aGUgdHJhcCBjb2RlIHdpdGggYSBuZXdsaW5l
LCBkdWUgdG8gYSBGcmVlQlNEIDQuMCBidWcuCnRyYXAgJ2V4aXRfc3RhdHVzPSQ/CiAgIyBTYXZl
IGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBpbiBkZWJ1
Z2dpbmcuCiAgewogICAgZWNobwoKICAgIGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0t
LSAjIwojIyBDYWNoZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKX0FTQk9Y
CiAgICBlY2hvCiAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1p
c2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAooCiAgZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4m
MSB8IHNlZCAtbiAnXCcncy9eXChbYS16QS1aX11bYS16QS1aMC05X10qXCk9LiovXDEvcCdcJydg
OyBkbwogICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCiAgICBjYXNlICRhY192YWwgaW4gIygKICAg
ICoke2FzX25sfSopCiAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAogICAgICAqX2N2XyopIHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IENhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFp
bnMgYSBuZXdsaW5lLiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogQ2FjaGUgdmFyaWFibGUg
JGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUuIiA+JjI7fSA7OwogICAgICBlc2FjCiAgICAgIGNh
c2UgJGFjX3ZhciBpbiAjKAogICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCiAgICAgICopICRh
c191bnNldCAkYWNfdmFyIDs7CiAgICAgIGVzYWMgOzsKICAgIGVzYWMKICBkb25lCiAgKHNldCkg
Mj4mMSB8CiAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9J1wnJyAnXCcnOyBzZXQpIDI+JjFgIGlu
ICMoCiAgICAqJHthc19ubH1hY19zcGFjZT1cICopCiAgICAgIHNlZCAtbiBcCgkicy8nXCcnLydc
JydcXFxcJ1wnJydcJycvZzsKCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9h
bG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXCcnXFwyJ1wnJy9wIgogICAgICA7OyAjKAogICAgKikK
ICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIK
ICAgICAgOzsKICAgIGVzYWMgfAogICAgc29ydAopCiAgICBlY2hvCgogICAgY2F0IDw8XF9BU0JP
WAojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBPdXRwdXQgdmFyaWFibGVzLiAjIwojIyAtLS0t
LS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgIGVjaG8KICAgIGZvciBhY192YXIgaW4gJGFjX3N1
YnN0X3ZhcnMKICAgIGRvCiAgICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgogICAgICBjYXNlICRh
Y192YWwgaW4KICAgICAgKlwnXCcnKikgYWNfdmFsPWBlY2hvICIkYWNfdmFsIiB8IHNlZCAicy8n
XCcnLydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7CiAgICAgIGVzYWMKICAgICAgZWNobyAiJGFj
X3Zhcj0nXCcnJGFjX3ZhbCdcJyciCiAgICBkb25lIHwgc29ydAogICAgZWNobwoKICAgIGlmIHRl
c3QgLW4gIiRhY19zdWJzdF9maWxlcyI7IHRoZW4KICAgICAgY2F0IDw8XF9BU0JPWAojIyAtLS0t
LS0tLS0tLS0tLS0tLS0tICMjCiMjIEZpbGUgc3Vic3RpdHV0aW9ucy4gIyMKIyMgLS0tLS0tLS0t
LS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgICAgZWNobwogICAgICBmb3IgYWNfdmFyIGluICRhY19z
dWJzdF9maWxlcwogICAgICBkbwoJZXZhbCBhY192YWw9XCQkYWNfdmFyCgljYXNlICRhY192YWwg
aW4KCSpcJ1wnJyopIGFjX3ZhbD1gZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxc
XFxcXFwnXCcnJ1wnJy9nImA7OwoJZXNhYwoJZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyci
CiAgICAgIGRvbmUgfCBzb3J0CiAgICAgIGVjaG8KICAgIGZpCgogICAgaWYgdGVzdCAtcyBjb25m
ZGVmcy5oOyB0aGVuCiAgICAgIGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0gIyMKIyMgY29u
ZmRlZnMuaC4gIyMKIyMgLS0tLS0tLS0tLS0gIyMKX0FTQk9YCiAgICAgIGVjaG8KICAgICAgY2F0
IGNvbmZkZWZzLmgKICAgICAgZWNobwogICAgZmkKICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAg
JiYKICAgICAgZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCiAgICBlY2hv
ICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgogIH0gPiY1CiAgcm0gLWYgY29yZSAqLmNvcmUg
Y29yZS5jb25mdGVzdC4qICYmCiAgICBybSAtZiAtciBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYk
JCogJGFjX2NsZWFuX2ZpbGVzICYmCiAgICBleGl0ICRleGl0X3N0YXR1cwonIDAKZm9yIGFjX3Np
Z25hbCBpbiAxIDIgMTMgMTU7IGRvCiAgdHJhcCAnYWNfc2lnbmFsPSckYWNfc2lnbmFsJzsgeyAo
ZXhpdCAxKTsgZXhpdCAxOyB9JyAkYWNfc2lnbmFsCmRvbmUKYWNfc2lnbmFsPTAKCiMgY29uZmRl
ZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBl
eGNlZWQuCnJtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcy5oCgojIFByZWRlZmluZWQgcHJlcHJv
Y2Vzc29yIHZhcmlhYmxlcy4KCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBQQUNL
QUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCl9BQ0VPRgoKCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNF
T0YKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNLQUdFX1RBUk5BTUUiCl9BQ0VPRgoKCmNh
dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRQQUNLQUdF
X1ZFUlNJT04iCl9BQ0VPRgoKCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBQQUNL
QUdFX1NUUklORyAiJFBBQ0tBR0VfU1RSSU5HIgpfQUNFT0YKCgpjYXQgPj5jb25mZGVmcy5oIDw8
X0FDRU9GCiNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiRQQUNLQUdFX0JVR1JFUE9SVCIKX0FD
RU9GCgoKIyBMZXQgdGhlIHNpdGUgZmlsZSBzZWxlY3QgYW4gYWx0ZXJuYXRlIGNhY2hlIGZpbGUg
aWYgaXQgd2FudHMgdG8uCiMgUHJlZmVyIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRv
bWF0aWNhbGx5IHNlbGVjdGVkIG9uZXMuCmlmIHRlc3QgLW4gIiRDT05GSUdfU0lURSI7IHRoZW4K
ICBzZXQgeCAiJENPTkZJR19TSVRFIgplbGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhl
bgogIHNldCB4ICIkcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlIiAiJHByZWZpeC9ldGMvY29uZmln
LnNpdGUiCmVsc2UKICBzZXQgeCAiJGFjX2RlZmF1bHRfcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRl
IiBcCgkiJGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0ZSIKZmkKc2hpZnQKZm9yIGFj
X3NpdGVfZmlsZQpkbwogIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCiAgICB7IGVj
aG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4m
NQplY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY2O30K
ICAgIHNlZCAncy9eL3wgLycgIiRhY19zaXRlX2ZpbGUiID4mNQogICAgLiAiJGFjX3NpdGVfZmls
ZSIKICBmaQpkb25lCgppZiB0ZXN0IC1yICIkY2FjaGVfZmlsZSI7IHRoZW4KICAjIFNvbWUgdmVy
c2lvbnMgb2YgYmFzaCB3aWxsIGZhaWwgdG8gc291cmNlIC9kZXYvbnVsbCAoc3BlY2lhbAogICMg
ZmlsZXMgYWN0dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LgogIGlmIHRlc3QgLWYgIiRj
YWNoZV9maWxlIjsgdGhlbgogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNo
ZSAkY2FjaGVfZmlsZSIgPiY1CmVjaG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmls
ZSIgPiY2O30KICAgIGNhc2UgJGNhY2hlX2ZpbGUgaW4KICAgICAgW1xcL10qIHwgPzpbXFwvXSog
KSAuICIkY2FjaGVfZmlsZSI7OwogICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuICIuLyRj
YWNoZV9maWxlIjs7CiAgICBlc2FjCiAgZmkKZWxzZQogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKZWNobyAiJGFzX21lOiBjcmVhdGluZyBj
YWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KICA+JGNhY2hlX2ZpbGUKZmkKCiMgQ2hlY2sgdGhhdCB0
aGUgcHJlY2lvdXMgdmFyaWFibGVzIHNhdmVkIGluIHRoZSBjYWNoZSBoYXZlIGtlcHQgdGhlIHNh
bWUKIyB2YWx1ZS4KYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCmZvciBhY192YXIgaW4gJGFjX3By
ZWNpb3VzX3ZhcnM7IGRvCiAgZXZhbCBhY19vbGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV9z
ZXQKICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192YXJ9X3NldAogIGV2YWwgYWNfb2xk
X3ZhbD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWUKICBldmFsIGFjX25ld192YWw9XCRhY19l
bnZfJHthY192YXJ9X3ZhbHVlCiAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgogICAg
c2V0LCkKICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zhcicgd2Fz
IHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKZWNobyAiJGFz
X21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBw
cmV2aW91cyBydW4iID4mMjt9CiAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CiAgICAsc2V0
KQogICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90
IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNf
dmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQogICAgICBhY19jYWNo
ZV9jb3JydXB0ZWQ9OiA7OwogICAgLCk7OwogICAgKikKICAgICAgaWYgdGVzdCAieCRhY19vbGRf
dmFsIiAhPSAieCRhY19uZXdfdmFsIjsgdGhlbgoJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJy
b3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQpl
Y2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2
aW91cyBydW46IiA+JjI7fQoJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6
ICAkYWNfb2xkX3ZhbCIgPiY1CmVjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xk
X3ZhbCIgPiYyO30KCXsgZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVudCB2YWx1ZTogJGFj
X25ld192YWwiID4mNQplY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTogJGFjX25ld192YWwi
ID4mMjt9CglhY19jYWNoZV9jb3JydXB0ZWQ9OgogICAgICBmaTs7CiAgZXNhYwogICMgUGFzcyBw
cmVjaW91cyB2YXJpYWJsZXMgdG8gY29uZmlnLnN0YXR1cy4KICBpZiB0ZXN0ICIkYWNfbmV3X3Nl
dCIgPSBzZXQ7IHRoZW4KICAgIGNhc2UgJGFjX25ld192YWwgaW4KICAgICpcJyopIGFjX2FyZz0k
YWNfdmFyPWBlY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsK
ICAgICopIGFjX2FyZz0kYWNfdmFyPSRhY19uZXdfdmFsIDs7CiAgICBlc2FjCiAgICBjYXNlICIg
JGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KICAgICAgKiIgJyRhY19hcmcnICIqKSA7OyAjIEF2b2lk
IGR1cHMuICBVc2Ugb2YgcXVvdGVzIGVuc3VyZXMgYWNjdXJhY3kuCiAgICAgICopIGFjX2NvbmZp
Z3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIiA7OwogICAgZXNhYwogIGZp
CmRvbmUKaWYgJGFjX2NhY2hlX2NvcnJ1cHRlZDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUg
YnVpbGQiID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVu
dCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mMjt9CiAgeyB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxl
JyBhbmQgc3RhcnQgb3ZlciIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlz
dGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9CiAg
IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQpmaQoKCgoKCgoKCgoKCgoKCgoKCmFjX2V4dD1jCmFj
X2NwcD0nJENQUCAkQ1BQRkxBR1MnCmFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFH
UyBjb25mdGVzdC4kYWNfZXh0ID4mNScKYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4
dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK
YWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQoKCmFjX2F1eF9kaXI9CmZvciBh
Y19kaXIgaW4gbWlzYyAiJHNyY2RpciIvbWlzYzsgZG8KICBpZiB0ZXN0IC1mICIkYWNfZGlyL2lu
c3RhbGwtc2giOyB0aGVuCiAgICBhY19hdXhfZGlyPSRhY19kaXIKICAgIGFjX2luc3RhbGxfc2g9
IiRhY19hdXhfZGlyL2luc3RhbGwtc2ggLWMiCiAgICBicmVhawogIGVsaWYgdGVzdCAtZiAiJGFj
X2Rpci9pbnN0YWxsLnNoIjsgdGhlbgogICAgYWNfYXV4X2Rpcj0kYWNfZGlyCiAgICBhY19pbnN0
YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1jIgogICAgYnJlYWsKICBlbGlmIHRlc3Qg
LWYgIiRhY19kaXIvc2h0b29sIjsgdGhlbgogICAgYWNfYXV4X2Rpcj0kYWNfZGlyCiAgICBhY19p
bnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9zaHRvb2wgaW5zdGFsbCAtYyIKICAgIGJyZWFrCiAgZmkK
ZG9uZQppZiB0ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KICB7IHsgZWNobyAiJGFzX21lOiRM
SU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gbWlz
YyBcIiRzcmNkaXJcIi9taXNjIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQg
aW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluIG1pc2MgXCIkc3JjZGlyXCIvbWlzYyIgPiYyO30K
ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCgojIFRoZXNlIHRocmVlIHZhcmlhYmxlcyBh
cmUgdW5kb2N1bWVudGVkIGFuZCB1bnN1cHBvcnRlZCwKIyBhbmQgYXJlIGludGVuZGVkIHRvIGJl
IHdpdGhkcmF3biBpbiBhIGZ1dHVyZSBBdXRvY29uZiByZWxlYXNlLgojIFRoZXkgY2FuIGNhdXNl
IHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mgc291cmNlIHRyZWUgaXMgaW4gYSBkaXJl
Y3RvcnkKIyB3aG9zZSBmdWxsIG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzLgphY19j
b25maWdfZ3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiICAjIFBsZWFzZSBk
b24ndCB1c2UgdGhpcyB2YXIuCmFjX2NvbmZpZ19zdWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25m
aWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgphY19jb25maWd1cmU9IiRTSEVM
TCAkYWNfYXV4X2Rpci9jb25maWd1cmUiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCgoK
CnRlc3QgIiRwcm9ncmFtX3ByZWZpeCIgIT0gTk9ORSAmJgogIHByb2dyYW1fdHJhbnNmb3JtX25h
bWU9InMmXiYkcHJvZ3JhbV9wcmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgojIFVzZSBh
IGRvdWJsZSAkIHNvIG1ha2UgaWdub3JlcyBpdC4KdGVzdCAiJHByb2dyYW1fc3VmZml4IiAhPSBO
T05FICYmCiAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRw
cm9ncmFtX3RyYW5zZm9ybV9uYW1lIgojIERvdWJsZSBhbnkgXCBvciAkLiAgZWNobyBtaWdodCBp
bnRlcnByZXQgYmFja3NsYXNoZXMuCiMgQnkgZGVmYXVsdCB3YXMgYHMseCx4JywgcmVtb3ZlIGl0
IGlmIHVzZWxlc3MuCmNhdCA8PFxfQUNFT0YgPmNvbmZ0ZXN0LnNlZApzL1tcXCRdLyYmL2c7cy87
cyx4LHgsJC8vCl9BQ0VPRgpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPWBlY2hvICRwcm9ncmFtX3Ry
YW5zZm9ybV9uYW1lIHwgc2VkIC1mIGNvbmZ0ZXN0LnNlZGAKcm0gLWYgY29uZnRlc3Quc2VkCgoK
Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIwoKQ0ZMQUdTPQoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxl
LWFzbSB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX2FzbStzZXR9IiA9IHNldDsgdGhlbgog
IGVuYWJsZXZhbD0kZW5hYmxlX2FzbTsgdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFs
bGVncm9fZW5hYmxlX2FzbT15ZXMKZWxzZQogIGFsbGVncm9fZW5hYmxlX2FzbT15ZXMKZmkKCgoj
IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtY29sb3I4IHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFi
bGVfY29sb3I4K3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfY29sb3I4OyB0
ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YK
I2RlZmluZSBBTExFR1JPX0NPTE9SOCAxCl9BQ0VPRgoKZWxzZQogIGNhdCA+PmNvbmZkZWZzLmgg
PDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19DT0xPUjggMQpfQUNFT0YKCmZpCgoKIyBDaGVjayB3
aGV0aGVyIC0tZW5hYmxlLWNvbG9yMTYgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9jb2xv
cjE2K3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfY29sb3IxNjsgdGVzdCAi
WCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZp
bmUgQUxMRUdST19DT0xPUjE2IDEKX0FDRU9GCgplbHNlCiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxf
QUNFT0YKI2RlZmluZSBBTExFR1JPX0NPTE9SMTYgMQpfQUNFT0YKCmZpCgoKIyBDaGVjayB3aGV0
aGVyIC0tZW5hYmxlLWNvbG9yMjQgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9jb2xvcjI0
K3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfY29sb3IyNDsgdGVzdCAiWCRl
bmFibGV2YWwiICE9ICJYbm8iICYmIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUg
QUxMRUdST19DT0xPUjI0IDEKX0FDRU9GCgplbHNlCiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF
T0YKI2RlZmluZSBBTExFR1JPX0NPTE9SMjQgMQpfQUNFT0YKCmZpCgoKIyBDaGVjayB3aGV0aGVy
IC0tZW5hYmxlLWNvbG9yMzIgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9jb2xvcjMyK3Nl
dH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfY29sb3IzMjsgdGVzdCAiWCRlbmFi
bGV2YWwiICE9ICJYbm8iICYmIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxM
RUdST19DT0xPUjMyIDEKX0FDRU9GCgplbHNlCiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YK
I2RlZmluZSBBTExFR1JPX0NPTE9SMzIgMQpfQUNFT0YKCmZpCgoKIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIwoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4uCmlmIHRlc3Qg
IiR7ZW5hYmxlX3N0YXRpYytzZXR9IiA9IHNldDsgdGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX3N0
YXRpYzsgdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fc3RhdGljX2xpYnJh
cmllcz15ZXMKZmkKCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc2hhcmVkIHdhcyBnaXZlbi4K
aWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRl
bmFibGVfc2hhcmVkOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19zaGFy
ZWRfbGlicmFyaWVzPXllcwplbHNlCiAgYWxsZWdyb19zaGFyZWRfbGlicmFyaWVzPXllcwpmaQoK
CiMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zdGRsaWIgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2Vu
YWJsZV9zdGRsaWIrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9zdGRsaWI7
IHRlc3QgIlgkZW5hYmxldmFsIiAhPSAiWG5vIiAmJiBhbGxlZ3JvX2J1aWxkX25vcm1hbF9saWJy
YXJ5PXllcwplbHNlCiAgYWxsZWdyb19idWlsZF9ub3JtYWxfbGlicmFyeT15ZXMKZmkKCgojIENo
ZWNrIHdoZXRoZXIgLS1lbmFibGUtZGJnbGliIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVf
ZGJnbGliK3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfZGJnbGliOyB0ZXN0
ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19idWlsZF9kZWJ1Z2dpbmdfbGlicmFy
eT15ZXMKZmkKCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtcHJvZmxpYiB3YXMgZ2l2ZW4uCmlm
IHRlc3QgIiR7ZW5hYmxlX3Byb2ZsaWIrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVu
YWJsZV9wcm9mbGliOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19idWls
ZF9wcm9maWxpbmdfbGlicmFyeT15ZXMKZmkKCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZGJn
cHJvZyB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX2RiZ3Byb2crc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlbmFibGV2YWw9JGVuYWJsZV9kYmdwcm9nOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhu
byIgJiYgYWxsZWdyb19idWlsZF9kZWJ1Z2dpbmdfcHJvZ3JhbXM9eWVzCmZpCgoKIyBDaGVjayB3
aGV0aGVyIC0tZW5hYmxlLXByb2Zwcm9nIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVfcHJv
ZnByb2crc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9wcm9mcHJvZzsgdGVz
dCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fYnVpbGRfcHJvZmlsaW5nX3Byb2dy
YW1zPXllcwpmaQoKCiMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zdGF0aWNwcm9nIHdhcyBnaXZl
bi4KaWYgdGVzdCAiJHtlbmFibGVfc3RhdGljcHJvZytzZXR9IiA9IHNldDsgdGhlbgogIGVuYWJs
ZXZhbD0kZW5hYmxlX3N0YXRpY3Byb2c7IHRlc3QgIlgkZW5hYmxldmFsIiAhPSAiWG5vIiAmJiBh
bGxlZ3JvX2J1aWxkX3N0YXRpY19wcm9ncmFtcz15ZXMKZmkKCgojIENoZWNrIHdoZXRoZXIgLS1l
bmFibGUtb3B0cyB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX29wdHMrc2V0fSIgPSBzZXQ7
IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9vcHRzOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlh5
ZXMiICYmIGFsbGVncm9fb3B0aW1pemF0aW9ucz0kZW5hYmxldmFsCmVsc2UKICBhbGxlZ3JvX29w
dGltaXphdGlvbnM9cGVudGl1bQpmaQoKCiMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1leGNsb3B0
cyB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX2V4Y2xvcHRzK3NldH0iID0gc2V0OyB0aGVu
CiAgZW5hYmxldmFsPSRlbmFibGVfZXhjbG9wdHM7IHRlc3QgIlgkZW5hYmxldmFsIiAhPSAiWHll
cyIgJiYgYWxsZWdyb19leGNsdXNpdmVfb3B0aW1pemF0aW9ucz0kZW5hYmxldmFsCmVsc2UKICBh
bGxlZ3JvX2V4Y2x1c2l2ZV9vcHRpbWl6YXRpb25zPW5vbmUKZmkKCgppZiB0ZXN0ICJYJGFsbGVn
cm9fc3RhdGljX2xpYnJhcmllcyIgIT0gIlh5ZXMiOyB0aGVuCiAgaWYgdGVzdCAiWCRhbGxlZ3Jv
X3NoYXJlZF9saWJyYXJpZXMiICE9ICJYeWVzIjsgdGhlbgogICAgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogV0FSTklORzogc3RhdGljIGFuZCBzaGFyZWQgbGlicmFyaWVzIGFsbCBkaXNhYmxlZCwg
YXNzdW1pbmcgc2hhcmVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzdGF0aWMgYW5kIHNo
YXJlZCBsaWJyYXJpZXMgYWxsIGRpc2FibGVkLCBhc3N1bWluZyBzaGFyZWQiID4mMjt9CiAgICBh
bGxlZ3JvX3NoYXJlZF9saWJyYXJpZXM9eWVzCiAgZmkKZWxpZiB0ZXN0ICJYJGFsbGVncm9fc2hh
cmVkX2xpYnJhcmllcyIgIT0gIlh5ZXMiOyB0aGVuCiAgYWxsZWdyb19idWlsZF9zdGF0aWNfcHJv
Z3JhbXM9eWVzCmZpCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RyaWN0d2FybiB3YXMgZ2l2
ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX3N0cmljdHdhcm4rc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFi
bGV2YWw9JGVuYWJsZV9zdHJpY3R3YXJuOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYg
YWxsZWdyb19zdHJpY3Rfd2FybmluZ3M9eWVzCmZpCgoKaWYgdGVzdCAiWCRhbGxlZ3JvX3N0cmlj
dF93YXJuaW5ncyIgPSAiWHllcyI7IHRoZW4KICAgX3dhcm5tb2RlPSJCdWlsZGluZyBBbGxlZ3Jv
IHdpdGggc3RyaWN0IHdhcm5pbmdzLiIKZWxzZQogICBfd2Fybm1vZGU9Iklnbm9yaW5nIGNvbXBp
bGVyIHdhcm5pbmdzLiIKZmkKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKCiMgQ2hlY2sgd2hldGhl
ciAtLWVuYWJsZS1tYWdpY21haW4gd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9tYWdpY21h
aW4rc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9tYWdpY21haW47IHRlc3Qg
IlgkZW5hYmxldmFsIiA9ICJYeWVzIiAmJgpjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVm
aW5lIEFMTEVHUk9fV0lUSF9NQUdJQ19NQUlOIDEKX0FDRU9GCgpmaQoKCiMtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSMKCnRlc3QgIiRwcmVmaXgiID0gTk9ORSAmJiBwcmVmaXg9L3Vzci9sb2NhbAoKYWNf
ZXh0PWMKYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg
JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwphY19saW5rPSckQ0MgLW8gY29uZnRlc3Qk
YWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ
QlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CmlmIHRlc3QgLW4g
IiRhY190b29sX3ByZWZpeCI7IHRoZW4KICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7
YWNfdG9vbF9wcmVmaXh9Z2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn
cy4Kc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBhY193b3JkPSQyCnsgZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hl
Y2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3By
b2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgplbHNlCiAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgogIGFjX2N2X3Byb2dfQ0M9IiRDQyIg
IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsg
SUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZl
X0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgZm9yIGFjX2V4ZWNfZXh0IGlu
ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgaWYgeyB0ZXN0IC1mICIkYXNfZGly
LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj
X2V4ZWNfZXh0IjsgfTsgdGhlbgogICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1n
Y2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l
eGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQpkb25lCklGUz0kYXNfc2F2ZV9JRlMK
CmZpCmZpCkNDPSRhY19jdl9wcm9nX0NDCmlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KICB7IGVjaG8g
IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CmVjaG8gIiR7RUNIT19UfSRDQyIgPiY2
OyB9CmVsc2UKICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKZWNobyAi
JHtFQ0hPX1R9bm8iID4mNjsgfQpmaQoKCmZpCmlmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsg
dGhlbgogIGFjX2N0X0NDPSRDQwogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwg
c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15IGdjYzsgYWNf
d29yZD0kMgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjY7IH0K
aWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAk
RUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRhY19jdF9D
QyI7IHRoZW4KICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2Vy
IG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCmFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB
UkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16
ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0
YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l
eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07
IHRoZW4KICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9ImdjYyIKICAgIGVjaG8gIiRhc19tZTokTElO
RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIK
ICBmaQpkb25lCmRvbmUKSUZTPSRhc19zYXZlX0lGUwoKZmkKZmkKYWNfY3RfQ0M9JGFjX2N2X3By
b2dfYWNfY3RfQ0MKaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgogIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0ND
IiA+JjY7IH0KZWxzZQogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQpl
Y2hvICIke0VDSE9fVH1ubyIgPiY2OyB9CmZpCgogIGlmIHRlc3QgIngkYWNfY3RfQ0MiID0geDsg
dGhlbgogICAgQ0M9IiIKICBlbHNlCiAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xf
d2FybmVkIGluCnllczopCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IEluIHRoZSBm
dXR1cmUsIEF1dG9jb25mIHdpbGwgbm90IGRldGVjdCBjcm9zcy10b29scwp3aG9zZSBuYW1lIGRv
ZXMgbm90IHN0YXJ0IHdpdGggdGhlIGhvc3QgdHJpcGxldC4gIElmIHlvdSB0aGluayB0aGlzCmNv
bmZpZ3VyYXRpb24gaXMgdXNlZnVsIHRvIHlvdSwgcGxlYXNlIHdyaXRlIHRvIGF1dG9jb25mQGdu
dS5vcmcuIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBJbiB0aGUgZnV0dXJlLCBBdXRvY29u
ZiB3aWxsIG5vdCBkZXRlY3QgY3Jvc3MtdG9vbHMKd2hvc2UgbmFtZSBkb2VzIG5vdCBzdGFydCB3
aXRoIHRoZSBob3N0IHRyaXBsZXQuICBJZiB5b3UgdGhpbmsgdGhpcwpjb25maWd1cmF0aW9uIGlz
IHVzZWZ1bCB0byB5b3UsIHBsZWFzZSB3cml0ZSB0byBhdXRvY29uZkBnbnUub3JnLiIgPiYyO30K
YWNfdG9vbF93YXJuZWQ9eWVzIDs7CmVzYWMKICAgIENDPSRhY19jdF9DQwogIGZpCmVsc2UKICBD
Qz0iJGFjX2N2X3Byb2dfQ0MiCmZpCgppZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCiAgICAgICAgICBp
ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCiAgICAjIEV4dHJhY3QgdGhlIGZpcnN0
IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Y2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h
bWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jYzsgYWNfd29yZD0kMgp7
IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQplY2hvICRF
Q0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAi
JHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVk
KSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KICBhY19jdl9wcm9n
X0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCmFzX3NhdmVf
SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElG
Uz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogIGZvciBhY19l
eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAt
ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k
YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9v
bF9wcmVmaXh9Y2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf
d29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQpkb25lCklGUz0kYXNf
c2F2ZV9JRlMKCmZpCmZpCkNDPSRhY19jdl9wcm9nX0NDCmlmIHRlc3QgLW4gIiRDQyI7IHRoZW4K
ICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CmVjaG8gIiR7RUNIT19U
fSRDQyIgPiY2OyB9CmVsc2UKICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+
JjUKZWNobyAiJHtFQ0hPX1R9bm8iID4mNjsgfQpmaQoKCiAgZmkKZmkKaWYgdGVzdCAteiAiJEND
IjsgdGhlbgogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUg
YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKZWNobyAkRUNIT19O
ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNf
Y3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVD
SE9fQyIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgYWNfY3ZfcHJvZ19DQz0i
JENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxzZQogIGFjX3Byb2dfcmVq
ZWN0ZWQ9bm8KYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGly
IGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFz
X2Rpcj0uCiAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7
IGRvCiAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf
dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgogICAgaWYgdGVz
dCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCiAg
ICAgICBhY19wcm9nX3JlamVjdGVkPXllcwogICAgICAgY29udGludWUKICAgICBmaQogICAgYWNf
Y3ZfcHJvZ19DQz0iY2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k
YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQpkb25lCklGUz0k
YXNfc2F2ZV9JRlMKCmlmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KICAjIFdl
IGZvdW5kIGEgYm9nb24gaW4gdGhlIHBhdGgsIHNvIG1ha2Ugc3VyZSB3ZSBuZXZlciB1c2UgaXQu
CiAgc2V0IGR1bW15ICRhY19jdl9wcm9nX0NDCiAgc2hpZnQKICBpZiB0ZXN0ICQjICE9IDA7IHRo
ZW4KICAgICMgV2UgY2hvc2UgYSBkaWZmZXJlbnQgY29tcGlsZXIgZnJvbSB0aGUgYm9ndXMgb25l
LgogICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3
aWxsIGJlIGNob3NlbgogICAgIyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5h
bWU7IHVzZSB0aGUgZnVsbCBmaWxlIG5hbWUuCiAgICBzaGlmdAogICAgYWNfY3ZfcHJvZ19DQz0i
JGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCiAgZmkKZmkKZmkKZmkKQ0M9JGFjX2N2X3Byb2df
Q0MKaWYgdGVzdCAtbiAiJENDIjsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs
dDogJENDIiA+JjUKZWNobyAiJHtFQ0hPX1R9JENDIiA+JjY7IH0KZWxzZQogIHsgZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2OyB9CmZp
CgoKZmkKaWYgdGVzdCAteiAiJENDIjsgdGhlbgogIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZp
eCI7IHRoZW4KICBmb3IgYWNfcHJvZyBpbiBjbC5leGUKICBkbwogICAgIyBFeHRyYWN0IHRoZSBm
aXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHBy
b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsg
YWNfd29yZD0kMgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjY7
IH0KaWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNI
T19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4K
ICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgpl
bHNlCmFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAk
UEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9
LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwog
IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf
eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3Byb2df
Q0M9IiRhY190b29sX3ByZWZpeCRhY19wcm9nIgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZv
dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRv
bmUKZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgpmaQpmaQpDQz0kYWNfY3ZfcHJvZ19DQwppZiB0ZXN0
IC1uICIkQ0MiOyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4m
NQplY2hvICIke0VDSE9fVH0kQ0MiID4mNjsgfQplbHNlCiAgeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogcmVzdWx0OiBubyIgPiY1CmVjaG8gIiR7RUNIT19UfW5vIiA+JjY7IH0KZmkKCgogICAgdGVz
dCAtbiAiJENDIiAmJiBicmVhawogIGRvbmUKZmkKaWYgdGVzdCAteiAiJENDIjsgdGhlbgogIGFj
X2N0X0NDPSRDQwogIGZvciBhY19wcm9nIGluIGNsLmV4ZQpkbwogICMgRXh0cmFjdCB0aGUgZmly
c3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh
cmdzLgpzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Ig
JGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9D
QytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2
CmVsc2UKICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCiAgYWNfY3ZfcHJvZ19hY19jdF9D
Qz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19z
YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8K
ICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBmb3Ig
YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICBpZiB7IHRl
c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k
aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCiAgICBhY19jdl9wcm9nX2FjX2N0X0ND
PSIkYWNfcHJvZyIKICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193
b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCmRvbmUKSUZTPSRhc19z
YXZlX0lGUwoKZmkKZmkKYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKaWYgdGVzdCAtbiAi
JGFjX2N0X0NDIjsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0
X0NDIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjY7IH0KZWxzZQogIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2OyB9
CmZpCgoKICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCmRvbmUKCiAgaWYgdGVzdCAieCRh
Y19jdF9DQyIgPSB4OyB0aGVuCiAgICBDQz0iIgogIGVsc2UKICAgIGNhc2UgJGNyb3NzX2NvbXBp
bGluZzokYWNfdG9vbF93YXJuZWQgaW4KeWVzOikKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogSW4gdGhlIGZ1dHVyZSwgQXV0b2NvbmYgd2lsbCBub3QgZGV0ZWN0IGNyb3NzLXRvb2xz
Cndob3NlIG5hbWUgZG9lcyBub3Qgc3RhcnQgd2l0aCB0aGUgaG9zdCB0cmlwbGV0LiAgSWYgeW91
IHRoaW5rIHRoaXMKY29uZmlndXJhdGlvbiBpcyB1c2VmdWwgdG8geW91LCBwbGVhc2Ugd3JpdGUg
dG8gYXV0b2NvbmZAZ251Lm9yZy4iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IEluIHRoZSBm
dXR1cmUsIEF1dG9jb25mIHdpbGwgbm90IGRldGVjdCBjcm9zcy10b29scwp3aG9zZSBuYW1lIGRv
ZXMgbm90IHN0YXJ0IHdpdGggdGhlIGhvc3QgdHJpcGxldC4gIElmIHlvdSB0aGluayB0aGlzCmNv
bmZpZ3VyYXRpb24gaXMgdXNlZnVsIHRvIHlvdSwgcGxlYXNlIHdyaXRlIHRvIGF1dG9jb25mQGdu
dS5vcmcuIiA+JjI7fQphY190b29sX3dhcm5lZD15ZXMgOzsKZXNhYwogICAgQ0M9JGFjX2N0X0ND
CiAgZmkKZmkKCmZpCgoKdGVzdCAteiAiJENDIiAmJiB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRIClNlZSBcYGNv
bmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogbm8g
YWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSApTZWUgXGBjb25maWcubG9nJyBm
b3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CgojIFBy
b3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCmVjaG8gIiRhc19tZTok
TElORU5POiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uIiA+JjUKYWNfY29tcGlsZXI9
YHNldCBYICRhY19jb21waWxlOyBlY2hvICQyYAp7IChhY190cnk9IiRhY19jb21waWxlciAtLXZl
cnNpb24gPiY1IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190
cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAi
ZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFj
X2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
CnsgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpc
IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hv
PSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo
b1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CiAgYWNfc3RhdHVz
PSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0
ICRhY19zdGF0dXMpOyB9CnsgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKY2FzZSAiKCgk
YWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owog
ICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5F
Tk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAy
PiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9CgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf
QUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0
LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMu
aC4gICovCgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKYWNfY2xlYW5f
ZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxl
cyBhLm91dCBhLmV4ZSBiLm91dCIKIyBUcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91
dCAtbyBmaXJzdCwgZGlzcmVnYXJkIGEub3V0LgojIEl0IHdpbGwgaGVscCB1cyBkaWFnbm9zZSBi
cm9rZW4gY29tcGlsZXJzLCBhbmQgZmluZGluZyBvdXQgYW4gaW50dWl0aW9uCiMgb2YgZXhlZXh0
Lgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0
IG91dHB1dCBmaWxlIG5hbWUiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBDIGNvbXBp
bGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiAkRUNIT19DIiA+JjY7IH0KYWNfbGlua19k
ZWZhdWx0PWBlY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVzdFteIF0qLy8nYAoj
CiMgTGlzdCBvZiBwb3NzaWJsZSBvdXRwdXQgZmlsZXMsIHN0YXJ0aW5nIGZyb20gdGhlIG1vc3Qg
bGlrZWx5LgojIFRoZSBhbGdvcml0aG0gaXMgbm90IHJvYnVzdCB0byBqdW5rIGluIGAuJywgaGVu
Y2UgZ28gdG8gd2lsZGNhcmRzIChhLiopCiMgb25seSBhcyBhIGxhc3QgcmVzb3J0LiAgYi5vdXQg
aXMgY3JlYXRlZCBieSBpOTYwIGNvbXBpbGVycy4KYWNfZmlsZXM9J2Ffb3V0LmV4ZSBhLmV4ZSBj
b25mdGVzdC5leGUgYS5vdXQgY29uZnRlc3QgYS4qIGNvbmZ0ZXN0LiogYi5vdXQnCiMKIyBUaGUg
SVJJWCA2IGxpbmtlciB3cml0ZXMgaW50byBleGlzdGluZyBmaWxlcyB3aGljaCBtYXkgbm90IGJl
CiMgZXhlY3V0YWJsZSwgcmV0YWluaW5nIHRoZWlyIHBlcm1pc3Npb25zLiAgUmVtb3ZlIHRoZW0g
Zmlyc3Qgc28gYQojIHN1YnNlcXVlbnQgZXhlY3V0aW9uIHRlc3Qgd29ya3MuCmFjX3JtZmlsZXM9
CmZvciBhY19maWxlIGluICRhY19maWxlcwpkbwogIGNhc2UgJGFjX2ZpbGUgaW4KICAgICouJGFj
X2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICou
YmJnIHwgKi5tYXAgfCAqLmluZiB8ICoubyB8ICoub2JqICkgOzsKICAgICogKSBhY19ybWZpbGVz
PSIkYWNfcm1maWxlcyAkYWNfZmlsZSI7OwogIGVzYWMKZG9uZQpybSAtZiAkYWNfcm1maWxlcwoK
aWYgeyAoYWNfdHJ5PSIkYWNfbGlua19kZWZhdWx0IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwi
KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89
JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv
XCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmtfZGVmYXVsdCIpIDI+JjUKICBhY19zdGF0dXM9JD8K
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH07IHRoZW4KICAjIEF1dG9jb25mLTIuMTMgY291bGQgc2V0IHRoZSBhY19jdl9l
eGVleHQgdmFyaWFibGUgdG8gYG5vJy4KIyBTbyBpZ25vcmUgYSB2YWx1ZSBvZiBgbm8nLCBvdGhl
cndpc2UgdGhpcyB3b3VsZCBsZWFkIHRvIGBFWEVFWFQgPSBubycKIyBpbiBhIE1ha2VmaWxlLiAg
V2Ugc2hvdWxkIG5vdCBvdmVycmlkZSBhY19jdl9leGVleHQgaWYgaXQgd2FzIGNhY2hlZCwKIyBz
byB0aGF0IHRoZSB1c2VyIGNhbiBzaG9ydC1jaXJjdWl0IHRoaXMgdGVzdCBmb3IgY29tcGlsZXJz
IHVua25vd24gdG8KIyBBdXRvY29uZi4KZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzICcnCmRvCiAg
dGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCiAgY2FzZSAkYWNfZmlsZSBpbgogICAgKi4k
YWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwg
Ki5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5vIHwgKi5vYmogKQoJOzsKICAgIFthYl0ub3V0ICkK
CSMgV2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0
CgkjIGNlcnRhaW5seSByaWdodC4KCWJyZWFrOzsKICAgICouKiApCiAgICAgICAgaWYgdGVzdCAi
JHthY19jdl9leGVleHQrc2V0fSIgPSBzZXQgJiYgdGVzdCAiJGFjX2N2X2V4ZWV4dCIgIT0gbm87
Cgl0aGVuIDo7IGVsc2UKCSAgIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0q
XChcLi4qXCknYAoJZmkKCSMgV2Ugc2V0IGFjX2N2X2V4ZWV4dCBoZXJlIGJlY2F1c2UgdGhlIGxh
dGVyIHRlc3QgZm9yIGl0IGlzIG5vdAoJIyBzYWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBh
ZGQgdGhlIHN1ZmZpeCBpZiBnaXZlbiBhbiBgLW8nCgkjIGFyZ3VtZW50LCBzbyB3ZSBtYXkgbmVl
ZCB0byBrbm93IGl0IGF0IHRoYXQgcG9pbnQgYWxyZWFkeS4KCSMgRXZlbiBpZiB0aGlzIHNlY3Rp
b24gbG9va3MgY3J1ZnR5OiBpdCBoYXMgdGhlIGFkdmFudGFnZSBvZgoJIyBhY3R1YWxseSB3b3Jr
aW5nLgoJYnJlYWs7OwogICAgKiApCglicmVhazs7CiAgZXNhYwpkb25lCnRlc3QgIiRhY19jdl9l
eGVleHQiID0gbm8gJiYgYWNfY3ZfZXhlZXh0PQoKZWxzZQogIGFjX2ZpbGU9JycKZmkKCnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUiID4mNQplY2hvICIke0VDSE9fVH0k
YWNfZmlsZSIgPiY2OyB9CmlmIHRlc3QgLXogIiRhY19maWxlIjsgdGhlbgogIGVjaG8gIiRhc19t
ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4
dCA+JjUKCnsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgY29tcGlsZXIgY2Fubm90
IGNyZWF0ZSBleGVjdXRhYmxlcwpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIg
PiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IEMgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRh
YmxlcwpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgeyAoZXhp
dCA3Nyk7IGV4aXQgNzc7IH07IH0KZmkKCmFjX2V4ZWV4dD0kYWNfY3ZfZXhlZXh0CgojIENoZWNr
IHRoYXQgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBu
b3QsIGVpdGhlcgojIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUu
CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIg
d29ya3MiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIg
d29ya3MuLi4gJEVDSE9fQyIgPiY2OyB9CiMgRklYTUU6IFRoZXNlIGNyb3NzIGNvbXBpbGVyIGhh
Y2tzIHNob3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKIyBJZiBub3QgY3Jvc3MgY29t
cGlsaW5nLCBjaGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KaWYgdGVzdCAi
JGNyb3NzX2NvbXBpbGluZyIgIT0geWVzOyB0aGVuCiAgaWYgeyBhY190cnk9Jy4vJGFjX2ZpbGUn
CiAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj
aG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8g
XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY190cnki
KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgICBjcm9zc19jb21w
aWxpbmc9bm8KICBlbHNlCiAgICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IG1heWJlOyB0
aGVuCgljcm9zc19jb21waWxpbmc9eWVzCiAgICBlbHNlCgl7IHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGVycm9yOiBjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCklmIHlvdSBtZWFudCB0
byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y
ZSBkZXRhaWxzLiIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gQyBjb21waWxl
ZCBwcm9ncmFtcy4KSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcu
ClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQogICB7IChleGl0IDEp
OyBleGl0IDE7IH07IH0KICAgIGZpCiAgZmkKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiB5ZXMiID4mNQplY2hvICIke0VDSE9fVH15ZXMiID4mNjsgfQoKcm0gLWYgYS5vdXQgYS5l
eGUgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGIub3V0CmFjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9m
aWxlc19zYXZlCiMgQ2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMg
d2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCiMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Ig
d2UgY3Jvc3MgY29tcGlsZS4KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl
ciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0
aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gJEVDSE9fQyIgPiY2OyB9CnsgZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1CmVjaG8gIiR7RUNIT19U
fSRjcm9zc19jb21waWxpbmciID4mNjsgfQoKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
Zm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAkRUNIT19DIiA+JjY7IH0KaWYgeyAoYWNfdHJ5
PSIkYWNfbGluayIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNf
dHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwg
ImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRh
Y19saW5rIikgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgogICMgSWYgYm90
aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNl
cnZhYmxlKQojIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2lu
LCBgbHMgY29uZnRlc3QnIHdpbGwKIyB3b3JrIHByb3Blcmx5IChpLmUuLCByZWZlciB0byBgY29u
ZnRlc3QuZXhlJyksIHdoaWxlIGl0IHdvbid0IHdpdGgKIyBgcm0nLgpmb3IgYWNfZmlsZSBpbiBj
b25mdGVzdC5leGUgY29uZnRlc3QgY29uZnRlc3QuKjsgZG8KICB0ZXN0IC1mICIkYWNfZmlsZSIg
fHwgY29udGludWUKICBjYXNlICRhY19maWxlIGluCiAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwg
Ki50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5p
bmYgfCAqLm8gfCAqLm9iaiApIDs7CiAgICAqLiogKSBhY19jdl9leGVleHQ9YGV4cHIgIiRhY19m
aWxlIiA6ICdbXi5dKlwoXC4uKlwpJ2AKCSAgYnJlYWs7OwogICAgKiApIGJyZWFrOzsKICBlc2Fj
CmRvbmUKZWxzZQogIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21w
dXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKU2VlIFxg
Y29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBj
YW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBs
aW5rClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQogICB7IChleGl0
IDEpOyBleGl0IDE7IH07IH0KZmkKCnJtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAp7IGVjaG8g
IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQplY2hvICIke0VDSE9f
VH0kYWNfY3ZfZXhlZXh0IiA+JjY7IH0KCnJtIC1mIGNvbmZ0ZXN0LiRhY19leHQKRVhFRVhUPSRh
Y19jdl9leGVleHQKYWNfZXhlZXh0PSRFWEVFWFQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMiID4mNQplY2hvICRFQ0hPX04gImNoZWNr
aW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0
ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hl
ZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
Y29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK
Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgpp
bnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QubyBj
b25mdGVzdC5vYmoKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBp
bgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3Ry
eV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190
cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj4mNQogIGFjX3N0YXR1cz0k
PwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfTsgdGhlbgogIGZvciBhY19maWxlIGluIGNvbmZ0ZXN0Lm8gY29uZnRlc3Qu
b2JqIGNvbmZ0ZXN0Lio7IGRvCiAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlOwogIGNh
c2UgJGFjX2ZpbGUgaW4KICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICou
cGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiApIDs7CiAgICAqKSBh
Y19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKICAgICAgIGJyZWFr
OzsKICBlc2FjCmRvbmUKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg
PiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCnsgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNh
bm5vdCBjb21waWxlClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKZWNo
byAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczog
Y2Fubm90IGNvbXBpbGUKU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9
CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQpmaQoKcm0gLWYgY29uZnRlc3QuJGFjX2N2X29i
amV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
JGFjX2N2X29iamV4dCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9vYmpleHQiID4mNjsgfQpP
QkpFWFQ9JGFjX2N2X29iamV4dAphY19vYmpleHQ9JE9CSkVYVAp7IGVjaG8gIiRhc19tZTokTElO
RU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBj
b21waWxlci4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2du
dStzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2
CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICov
Cl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3Qu
JGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CiNp
Zm5kZWYgX19HTlVDX18KICAgICAgIGNob2tlIG1lCiNlbmRpZgoKICA7CiAgcmV0dXJuIDA7Cn0K
X0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls
ZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89
XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJc
JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxl
IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVz
dC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5l
cnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwK
CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj
X29iamV4dDsgdGhlbgogIGFjX2NvbXBpbGVyX2dudT15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTog
ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+
JjUKCglhY19jb21waWxlcl9nbnU9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAphY19jdl9jX2NvbXBpbGVyX2dudT0kYWNf
Y29tcGlsZXJfZ251CgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9j
X2NvbXBpbGVyX2dudSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9jX2NvbXBpbGVyX2dudSIg
PiY2OyB9CkdDQz1gdGVzdCAkYWNfY29tcGlsZXJfZ251ID0geWVzICYmIGVjaG8geWVzYAphY190
ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9CmFjX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZy4uLiAkRUNIT19DIiA+JjY7
IH0KaWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRF
Q0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFn
PSRhY19jX3dlcnJvcl9mbGFnCiAgIGFjX2Nfd2Vycm9yX2ZsYWc9eWVzCiAgIGFjX2N2X3Byb2df
Y2NfZz1ubwogICBDRkxBR1M9Ii1nIgogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
LyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l
eHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICov
CgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3Qu
JGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGlu
CiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5
X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry
eV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFj
X3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAg
cm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg
ewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5l
cnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNfY3Zf
cHJvZ19jY19nPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+
JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCUNGTEFHUz0iIgogICAgICBj
YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpj
YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8
PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1
cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRh
Y19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190
cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAi
ZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFj
X2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisn
IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNv
bmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg
PiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9m
bGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25m
dGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgOgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2Nf
d2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZwoJIENGTEFHUz0iLWciCgkgY2F0ID5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNv
bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewoKICA7CiAgcmV0dXJuIDA7
Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29t
cGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj
aG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8g
XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21w
aWxlIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25m
dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVz
dC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIg
fHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu
JGFjX29iamV4dDsgdGhlbgogIGFjX2N2X3Byb2dfY2NfZz15ZXMKZWxzZQogIGVjaG8gIiRhc19t
ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4
dCA+JjUKCgpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj
b25mdGVzdC4kYWNfZXh0CmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogICBhY19jX3dlcnJvcl9mbGFnPSRhY19z
YXZlX2Nfd2Vycm9yX2ZsYWcKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf
Y3ZfcHJvZ19jY19nIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2NfZyIgPiY2OyB9
CmlmIHRlc3QgIiRhY190ZXN0X0NGTEFHUyIgPSBzZXQ7IHRoZW4KICBDRkxBR1M9JGFjX3NhdmVf
Q0ZMQUdTCmVsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCiAgaWYgdGVzdCAi
JEdDQyIgPSB5ZXM7IHRoZW4KICAgIENGTEFHUz0iLWcgLU8yIgogIGVsc2UKICAgIENGTEFHUz0i
LWciCiAgZmkKZWxzZQogIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgICBDRkxBR1M9Ii1P
MiIKICBlbHNlCiAgICBDRkxBR1M9CiAgZmkKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkiID4mNQplY2hvICRFQ0hPX04g
ImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uICRFQ0hPX0MiID4m
NjsgfQppZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfYzg5K3NldH0iID0gc2V0OyB0aGVuCiAgZWNo
byAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X3Byb2dfY2NfYzg5
PW5vCmFjX3NhdmVfQ0M9JENDCmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25m
ZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQg
Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1
ZGUgPHN0ZGFyZy5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgoj
aW5jbHVkZSA8c3lzL3N0YXQuaD4KLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBz
dG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwpzdHJ1Y3QgYnVmIHsgaW50IHg7
IH07CkZJTEUgKiAoKnJjc29wZW4pIChzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCk7
CnN0YXRpYyBjaGFyICplIChwLCBpKQogICAgIGNoYXIgKipwOwogICAgIGludCBpOwp7CiAgcmV0
dXJuIHBbaV07Cn0Kc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBj
aGFyICoqcCwgLi4uKQp7CiAgY2hhciAqczsKICB2YV9saXN0IHY7CiAgdmFfc3RhcnQgKHYscCk7
CiAgcyA9IGcgKHAsIHZhX2FyZyAodixpbnQpKTsKICB2YV9lbmQgKHYpOwogIHJldHVybiBzOwp9
CgovKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxtb3N0LUFOU0kgYnkgZGVm
YXVsdC4gIEl0IGhhcwogICBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBzdHVmZiwgYnV0IG5vdCAn
XHhISCcgaGV4IGNoYXJhY3RlciBjb25zdGFudHMuCiAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4g
ZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAogICBhcyAn
eCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3IsIHVudGlsIC1zdGQgaXMgYWRkZWQg
dG8gZ2V0CiAgIHByb3BlciBBTlNJIG1vZGUuICBDdXJpb3VzbHkgJ1x4MDAnIT0neCcgYWx3YXlz
IGNvbWVzIG91dCB0cnVlLCBmb3IgYW4KICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVj
ZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCiAgIHRoYXQncyB0cnVl
IG9ubHkgd2l0aCAtc3RkLiAgKi8KaW50IG9zZjRfY2NfYXJyYXkgWydceDAwJyA9PSAwID8gMSA6
IC0xXTsKCi8qIElCTSBDIDYgZm9yIEFJWCBpcyBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQg
aXQgcmVwbGFjZXMgbWFjcm8gcGFyYW1ldGVycwogICBpbnNpZGUgc3RyaW5ncyBhbmQgY2hhcmFj
dGVyIGNvbnN0YW50cy4gICovCiNkZWZpbmUgRk9PKHgpICd4JwppbnQgeGxjNl9jY19hcnJheVtG
T08oYSkgPT0gJ3gnID8gMSA6IC0xXTsKCmludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwpzdHJ1
Y3QgczEge2ludCAoKmYpIChpbnQgYSk7fTsKc3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEp
O307CmludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwg
c3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwppbnQgYXJnYzsKY2hhciAqKmFyZ3Y7Cmlu
dAptYWluICgpCnsKcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBh
cmd2LCAxKSAhPSBhcmd2WzFdOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKZm9yIGFjX2FyZyBp
biAnJyAtcWxhbmdsdmw9ZXh0Yzg5IC1xbGFuZ2x2bD1hbnNpIC1zdGQgXAoJLUFlICItQWEgLURf
SFBVWF9TT1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNfXyIKZG8KICBDQz0iJGFjX3NhdmVfQ0Mg
JGFjX2FyZyIKICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2Nv
bXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l
Y2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hv
IFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29t
cGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29u
ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRl
c3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK
ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWci
IHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0
LiRhY19vYmpleHQ7IHRoZW4KICBhY19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCmVsc2UKICBlY2hv
ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0
LiRhY19leHQgPiY1CgoKZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v
YmpleHQKICB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSAieG5vIiAmJiBicmVhawpkb25l
CnJtIC1mIGNvbmZ0ZXN0LiRhY19leHQKQ0M9JGFjX3NhdmVfQ0MKCmZpCiMgQUNfQ0FDSEVfVkFM
CmNhc2UgIngkYWNfY3ZfcHJvZ19jY19jODkiIGluCiAgeCkKICAgIHsgZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogbm9uZSBuZWVkZWQiID4mNQplY2hvICIke0VDSE9fVH1ub25lIG5lZWRl
ZCIgPiY2OyB9IDs7CiAgeG5vKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB1
bnN1cHBvcnRlZCIgPiY1CmVjaG8gIiR7RUNIT19UfXVuc3VwcG9ydGVkIiA+JjY7IH0gOzsKICAq
KQogICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19jY19jODkiCiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2M4OSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19j
dl9wcm9nX2NjX2M4OSIgPiY2OyB9IDs7CmVzYWMKCgphY19leHQ9YwphY19jcHA9JyRDUFAgJENQ
UEZMQUdTJwphY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj
X2V4dCA+JjUnCmFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQ
RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCmFjX2NvbXBpbGVyX2du
dT0kYWNfY3ZfY19jb21waWxlcl9nbnUKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n
IHdoZXRoZXIgLWZvbWl0LWZyYW1lLXBvaW50ZXIgaXMgc2FmZSIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgd2hldGhlciAtZm9taXQtZnJhbWUtcG9pbnRlciBpcyBzYWZlLi4uICRFQ0hPX0Mi
ID4mNjsgfQppZiB0ZXN0ICIke2FsbGVncm9fY3Zfc3VwcG9ydF9mb21pdF9mcmFtZV9wb2ludGVy
K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYK
ZWxzZQogIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmICRDQyAtLXZlcnNpb24gfCBncmVwICczXC4w
XChcLlw/WzAxMl1cKVw/JCcgPi9kZXYvbnVsbDsgdGhlbgogIGFsbGVncm9fY3Zfc3VwcG9ydF9m
b21pdF9mcmFtZV9wb2ludGVyPW5vCmVsc2UKICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgog
ICAgYWxsZWdyb19jdl9zdXBwb3J0X2ZvbWl0X2ZyYW1lX3BvaW50ZXI9eWVzCiAgZWxzZQogICAg
YWxsZWdyb19jdl9zdXBwb3J0X2ZvbWl0X2ZyYW1lX3BvaW50ZXI9bm8KICBmaQpmaQoKZmkKCnsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFsbGVncm9fY3Zfc3VwcG9ydF9mb21pdF9m
cmFtZV9wb2ludGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFsbGVncm9fY3Zfc3VwcG9ydF9mb21p
dF9mcmFtZV9wb2ludGVyIiA+JjY7IH0KCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n
IHdoZXRoZXIgYW4gaW5jbHVkZSBwcmVmaXggaXMgbmVlZGVkIiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyB3aGV0aGVyIGFuIGluY2x1ZGUgcHJlZml4IGlzIG5lZWRlZC4uLiAkRUNIT19DIiA+
JjY7IH0KYWxsZWdyb19zYXZlX0NGTEFHUz0iJENGTEFHUyIKQ0ZMQUdTPSItV2Vycm9yIC1JJHBy
ZWZpeC9pbmNsdWRlICRDRkxBR1MiCmlmIHRlc3QgIiR7YWxsZWdyb19jdl9zdXBwb3J0X2luY2x1
ZGVfcHJlZml4K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNI
T19DIiA+JjYKZWxzZQogIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgIGNhdCA+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVm
cy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKaW50IGZvbygpe3JldHVybiAwO30K
ICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAo
YWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwg
KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owpl
c2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAg
KGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVw
IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVy
MQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh
Y19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNf
Y193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRl
c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFsbGVncm9fY3Zfc3VwcG9ydF9pbmNs
dWRlX3ByZWZpeD15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg
PiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhbGxlZ3JvX2N2X3N1cHBv
cnRfaW5jbHVkZV9wcmVmaXg9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAplbHNlCiAgIGFsbGVncm9fY3Zfc3VwcG9ydF9p
bmNsdWRlX3ByZWZpeD15ZXMKZmkKCmZpCgpDRkxBR1M9IiRhbGxlZ3JvX3NhdmVfQ0ZMQUdTIgp7
IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbGxlZ3JvX2N2X3N1cHBvcnRfaW5jbHVk
ZV9wcmVmaXgiID4mNQplY2hvICIke0VDSE9fVH0kYWxsZWdyb19jdl9zdXBwb3J0X2luY2x1ZGVf
cHJlZml4IiA+JjY7IH0KYWNfZXh0PWMKYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKYWNfY29tcGls
ZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwphY19saW5r
PSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv
bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGls
ZXJfZ251CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMg
cHJlcHJvY2Vzc29yIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBD
IHByZXByb2Nlc3Nvci4uLiAkRUNIT19DIiA+JjY7IH0KIyBPbiBTdW5zLCBzb21ldGltZXMgJENQ
UCBuYW1lcyBhIGRpcmVjdG9yeS4KaWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7
IHRoZW4KICBDUFA9CmZpCmlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCiAgaWYgdGVzdCAiJHthY19j
dl9wcm9nX0NQUCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVD
SE9fQyIgPiY2CmVsc2UKICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1BQIG5lZWRzIHRv
IGJlIGV4cGFuZGVkCiAgICBmb3IgQ1BQIGluICIkQ0MgLUUiICIkQ0MgLUUgLXRyYWRpdGlvbmFs
LWNwcCIgIi9saWIvY3BwIgogICAgZG8KICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQpmb3IgYWNf
Y19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKZG8KICAjIFVzZSBhIGhlYWRlciBmaWxlIHRo
YXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCiAgIyB3aXRoIGEgZnJlc2gg
Y3Jvc3MtY29tcGlsZXIgd29ya3MuCiAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+
IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCiAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVu
IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCiAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0
aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKICAjIG5vdCBqdXN0IHRocm91
Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KICBjYXQg
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQg
Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpZmRlZiBfX1NURENfXwojIGluY2x1ZGUgPGxp
bWl0cy5oPgojZWxzZQojIGluY2x1ZGUgPGFzc2VydC5oPgojZW5kaWYKCQkgICAgIFN5bnRheCBl
cnJvcgpfQUNFT0YKaWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCmNhc2Ug
IigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5
OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTok
TElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh
Y19leHQiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNv
bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0
ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1
CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CgkgdGVzdCAteiAiJGFjX2Nf
cHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRl
c3QuZXJyCiAgICAgICB9OyB0aGVuCiAgOgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICAjIEJy
b2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCmNvbnRpbnVlCmZpCgpybSAtZiBjb25mdGVzdC5l
cnIgY29uZnRlc3QuJGFjX2V4dAoKICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNo
ZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwogICMgY2FuIGJlIGRldGVjdGVkIGFuZCBo
b3cuCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8YWNfbm9uZXhp
c3RlbnQuaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Igpj
YXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj
X3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNf
bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVz
dC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICor
JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBj
b25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRh
Y19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNv
bmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQg
aW5wdXQuCmNvbnRpbnVlCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi
ID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgogICMgUGFzc2VzIGJvdGgg
dGVzdHMuCmFjX3ByZXByb2Nfb2s9OgpicmVhawpmaQoKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0
ZXN0LiRhY19leHQKCmRvbmUKIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxT
RSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfZXh0CmlmICRhY19wcmVwcm9jX29rOyB0aGVuCiAgYnJlYWsKZmkKCiAgICBkb25lCiAg
ICBhY19jdl9wcm9nX0NQUD0kQ1BQCgpmaQogIENQUD0kYWNfY3ZfcHJvZ19DUFAKZWxzZQogIGFj
X2N2X3Byb2dfQ1BQPSRDUFAKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1BQ
IiA+JjUKZWNobyAiJHtFQ0hPX1R9JENQUCIgPiY2OyB9CmFjX3ByZXByb2Nfb2s9ZmFsc2UKZm9y
IGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCmRvCiAgIyBVc2UgYSBoZWFkZXIgZmls
ZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwogICMgd2l0aCBhIGZy
ZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgogICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2Vy
dC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQogICMgPGxpbWl0cy5oPiBleGlzdHMg
ZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgogICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1
bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCiAgIyBub3QganVzdCB0
aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YK
Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaWZkZWYgX19TVERDX18KIyBpbmNsdWRl
IDxsaW1pdHMuaD4KI2Vsc2UKIyBpbmNsdWRlIDxhc3NlcnQuaD4KI2VuZGlmCgkJICAgICBTeW50
YXggZXJyb3IKX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Igpj
YXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj
X3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNf
bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVz
dC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICor
JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBj
b25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRh
Y19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNv
bmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIDoKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVk
IHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAg
IyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0Lgpjb250aW51ZQpmaQoKcm0gLWYgY29uZnRl
c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKCiAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5v
dyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKICAjIGNhbiBiZSBkZXRlY3RlZCBh
bmQgaG93LgogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAg
Ki8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPGFjX25v
bmV4aXN0ZW50Lmg+Cl9BQ0VPRgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4
dCIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89
XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJc
JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jcHAgY29u
ZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAn
XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBj
YXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh
dHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0ZXN0IC16
ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAt
cyBjb25mdGVzdC5lcnIKICAgICAgIH07IHRoZW4KICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZh
bGlkIGlucHV0Lgpjb250aW51ZQplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICAjIFBhc3NlcyBi
b3RoIHRlc3RzLgphY19wcmVwcm9jX29rPToKYnJlYWsKZmkKCnJtIC1mIGNvbmZ0ZXN0LmVyciBj
b25mdGVzdC4kYWNfZXh0Cgpkb25lCiMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19J
RkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgpybSAtZiBjb25mdGVzdC5lcnIgY29u
ZnRlc3QuJGFjX2V4dAppZiAkYWNfcHJlcHJvY19vazsgdGhlbgogIDoKZWxzZQogIHsgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNh
bml0eSBjaGVjawpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CmVjaG8g
IiRhc19tZTogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVj
awpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgeyAoZXhpdCAx
KTsgZXhpdCAxOyB9OyB9CmZpCgphY19leHQ9YwphY19jcHA9JyRDUFAgJENQUEZMQUdTJwphY19j
b21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCmFj
X2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxB
R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCmFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19j
b21waWxlcl9nbnUKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYSBD
KysgY29tcGlsZXIgaXMgaW5zdGFsbGVkIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0
aGVyIGEgQysrIGNvbXBpbGVyIGlzIGluc3RhbGxlZC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVz
dCAiJHthbGxlZ3JvX2N2X3N1cHBvcnRfY3BsdXNwbHVzK3NldH0iID0gc2V0OyB0aGVuCiAgZWNo
byAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgIiRHQ0MiID0g
eWVzOyB0aGVuCiAgIGFsbGVncm9fc2F2ZV9DRkxBR1M9JENGTEFHUwogICBDRkxBR1M9Ii14IGMr
KyIKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewpjbGFz
cyBmb28ge2ZvbygpIHt9fTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0
LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBp
bgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3Ry
eV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190
cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBh
Y19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgog
IHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYm
IHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3Qu
ZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFsbGVn
cm9fY3Zfc3VwcG9ydF9jcGx1c3BsdXM9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBw
cm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWxs
ZWdyb19jdl9zdXBwb3J0X2NwbHVzcGx1cz1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg
Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiAgIENGTEFHUz0kYWxsZWdyb19z
YXZlX0NGTEFHUwplbHNlCiAgIGFsbGVncm9fY3Zfc3VwcG9ydF9jcGx1c3BsdXM9bm8KZmkKCmZp
Cgp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbGxlZ3JvX2N2X3N1cHBvcnRfY3Bs
dXNwbHVzIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFsbGVncm9fY3Zfc3VwcG9ydF9jcGx1c3BsdXMi
ID4mNjsgfQp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGxpbmtlciB3
b3JrcyB3aXRoIC1zIG9wdGlvbiIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBs
aW5rZXIgd29ya3Mgd2l0aCAtcyBvcHRpb24uLi4gJEVDSE9fQyIgPiY2OyB9CmFsbGVncm9fc2F2
ZV9MREZMQUdTPSRMREZMQUdTCkxERkxBR1M9Ii1zICRMREZMQUdTIgppZiB0ZXN0ICIke2FsbGVn
cm9fY3ZfcHJvZ19sZF9zK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVk
KSAkRUNIT19DIiA+JjYKZWxzZQoKY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNv
bmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNh
dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50
Cm1haW4gKCkKewp7fQogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAi
KCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7
OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRM
SU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz
dC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0
ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMg
Y29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmCiAg
ICAgICAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgogIGFsbGVncm9fY3ZfcHJv
Z19sZF9zPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK
c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFsbGVncm9fY3ZfcHJvZ19sZF9z
PW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0
ZXN0X2lwYThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu
JGFjX2V4dApmaQoKTERGTEFHUz0kYWxsZWdyb19zYXZlX0xERkxBR1MKeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogcmVzdWx0OiAkYWxsZWdyb19jdl9wcm9nX2xkX3MiID4mNQplY2hvICIke0VDSE9f
VH0kYWxsZWdyb19jdl9wcm9nX2xkX3MiID4mNjsgfQoKIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHBy
b2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCiMgc28gb25lIHNjcmlwdCBp
cyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgojIGluY29tcGF0
aWJsZSB2ZXJzaW9uczoKIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKIyBT
dW5PUyAvdXNyL2V0Yy9pbnN0YWxsCiMgSVJJWCAvc2Jpbi9pbnN0YWxsCiMgQUlYIC9iaW4vaW5z
dGFsbAojIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBm
bG9wcHkgZGlzY3MKIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdv
cmsgd2l0aG91dCBhIC1nIGZsYWcKIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2gg
bWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCiMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGlj
aCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKIyBPUy8yJ3Mgc3lz
dGVtIGluc3RhbGwsIHdoaWNoIGhhcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFudGljCiMg
Li9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20g
Li9pbnN0YWxsLnNoLgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0Qt
Y29tcGF0aWJsZSBpbnN0YWxsIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYSBCU0Qt
Y29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0IC16ICIkSU5TVEFM
TCI7IHRoZW4KaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYXNfc2F2ZV9JRlM9
JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRh
c19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgIyBBY2NvdW50IGZv
ciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCmNhc2Ug
JGFzX2Rpci8gaW4KICAuLyB8IC4vLyB8IC9jQy8qIHwgXAogIC9ldGMvKiB8IC91c3Ivc2Jpbi8q
IHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAogID86XFwvb3My
XFwvaW5zdGFsbFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAogIC91c3IvdWNiLyog
KSA7OwogICopCiAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVz
IGZvciBpbnN0YWxsLgogICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBp
dCBpbnN0YWxscyBzdHVmZiBhcyByb290CiAgICAjIGJ5IGRlZmF1bHQuCiAgICBmb3IgYWNfcHJv
ZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCiAgICAgIGZvciBhY19leGVjX2V4dCBp
biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwoJaWYgeyB0ZXN0IC1mICIkYXNfZGly
LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFj
X2V4ZWNfZXh0IjsgfTsgdGhlbgoJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgoJICAg
IGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+
JjE7IHRoZW4KCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxs
aW5nIGNvbnZlbnRpb24uCgkgICAgOgoJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYm
CgkgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251
bGwgMj4mMTsgdGhlbgoJICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2Vk
IGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgoJICAgIDoKCSAgZWxzZQoJICAgIGFjX2N2X3BhdGhf
aW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKCSAgICBicmVhayAzCgkg
IGZpCglmaQogICAgICBkb25lCiAgICBkb25lCiAgICA7Owplc2FjCmRvbmUKSUZTPSRhc19zYXZl
X0lGUwoKCmZpCiAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRo
ZW4KICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAogIGVsc2UKICAgICMgQXMgYSBsYXN0
IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKICAgICMg
dmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0
IHdpbGwKICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQg
ZGlyZWN0b3J5IGlzCiAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZl
IG5hbWUuCiAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCiAgZmkKZmkKeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1CmVjaG8gIiR7RUNIT19UfSRJTlNUQUxMIiA+
JjY7IH0KCiMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMg
aW4gJHt2YXItdmFsfS4KIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhl
IHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KdGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5T
VEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwoKdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAmJiBJ
TlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKCnRlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElO
U1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCgp7IGVjaG8gIiRhc19tZTokTElORU5POiBj
aGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKZWNobyAkRUNI
T19OICJjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpLi4uICRFQ0hP
X0MiID4mNjsgfQpzZXQgeCAke01BS0UtbWFrZX07IGFjX21ha2U9YGVjaG8gIiQyIiB8IHNlZCAn
cy8rL3AvZzsgcy9bXmEtekEtWjAtOV9dL18vZydgCmlmIHsgYXNfdmFyPWFjX2N2X3Byb2dfbWFr
ZV8ke2FjX21ha2V9X3NldDsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0Ijsg
fTsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQg
PmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GClNIRUxMID0gL2Jpbi9zaAphbGw6CglAZWNobyAnQEBA
JSUlPSQoTUFLRSk9QEBAJSUlJwpfQUNFT0YKIyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJt
YWtlWzFdOiBFbnRlcmluZy4uLiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMuCmNhc2UgYCR7TUFL
RS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBpbgogICpAQEAlJSU9Pyo9QEBA
JSUlKikKICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PXllczs7CiAgKikK
ICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vOzsKZXNhYwpybSAtZiBj
b25mdGVzdC5tYWtlCmZpCmlmIGV2YWwgdGVzdCBcJGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9
X3NldCA9IHllczsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+
JjUKZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjY7IH0KICBTRVRfTUFLRT0KZWxzZQogIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2OyB9
CiAgU0VUX01BS0U9Ik1BS0U9JHtNQUtFLW1ha2V9IgpmaQoKeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tp
bmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAkRUNIT19DIiA+JjY7IH0KTE5fUz0kYXNfbG5fcwpp
ZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiB5ZXMiID4mNQplY2hvICIke0VDSE9fVH15ZXMiID4mNjsgfQplbHNlCiAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubywgdXNpbmcgJExOX1MiID4mNQplY2hvICIke0VD
SE9fVH1ubywgdXNpbmcgJExOX1MiID4mNjsgfQpmaQoKCiMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y
ZCBvZiAibGRjb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpz
ZXQgZHVtbXkgbGRjb25maWc7IGFjX3dvcmQ9JDIKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dv
cmQuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9MRENPTkZJRytzZXR9
IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UK
ICBjYXNlICRMRENPTkZJRyBpbgogIFtcXC9dKiB8ID86W1xcL10qKQogIGFjX2N2X3BhdGhfTERD
T05GSUc9IiRMRENPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBh
IHBhdGguCiAgOzsKICAqKQogIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK
YXNfZHVtbXk9IiRQQVRIOi9zYmluOi91c3Ivc2JpbiIKZm9yIGFzX2RpciBpbiAkYXNfZHVtbXkK
ZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBm
b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICBpZiB7
IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh
c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCiAgICBhY19jdl9wYXRoX0xEQ09O
RklHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgogICAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgog
IGZpCmRvbmUKZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgogIHRlc3QgLXogIiRhY19jdl9wYXRoX0xE
Q09ORklHIiAmJiBhY19jdl9wYXRoX0xEQ09ORklHPSJlY2hvIG91Z2h0IHRvIHJ1biBsZGNvbmZp
ZyIKICA7Owplc2FjCmZpCkxEQ09ORklHPSRhY19jdl9wYXRoX0xEQ09ORklHCmlmIHRlc3QgLW4g
IiRMRENPTkZJRyI7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRMRENP
TkZJRyIgPiY1CmVjaG8gIiR7RUNIT19UfSRMRENPTkZJRyIgPiY2OyB9CmVsc2UKICB7IGVjaG8g
IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKZWNobyAiJHtFQ0hPX1R9bm8iID4mNjsg
fQpmaQoKCgojIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm1ha2VpbmZvIiwgc28gaXQgY2Fu
IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15IG1ha2VpbmZvOyBhY193b3Jk
PSQyCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CmVj
aG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0
ZXN0ICIke2FjX2N2X3BhdGhfTUFLRUlORk8rc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hP
X04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2FzZSAkTUFLRUlORk8gaW4KICBbXFwv
XSogfCA/OltcXC9dKikKICBhY19jdl9wYXRoX01BS0VJTkZPPSIkTUFLRUlORk8iICMgTGV0IHRo
ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgogIDs7CiAgKikKICBhc19zYXZl
X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmFzX2R1bW15PSIkUEFUSDovc2JpbjovdXNy
L3NiaW4iCmZvciBhc19kaXIgaW4gJGFzX2R1bW15CmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRl
c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l
eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk
JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0
IjsgfTsgdGhlbgogICAgYWNfY3ZfcGF0aF9NQUtFSU5GTz0iJGFzX2Rpci8kYWNfd29yZCRhY19l
eGVjX2V4dCIKICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk
JGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCmRvbmUKSUZTPSRhc19zYXZl
X0lGUwoKICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9NQUtFSU5GTyIgJiYgYWNfY3ZfcGF0aF9NQUtF
SU5GTz0iZWNobyBvdWdodCB0byBydW4gbWFrZWluZm8iCiAgOzsKZXNhYwpmaQpNQUtFSU5GTz0k
YWNfY3ZfcGF0aF9NQUtFSU5GTwppZiB0ZXN0IC1uICIkTUFLRUlORk8iOyB0aGVuCiAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFLRUlORk8iID4mNQplY2hvICIke0VDSE9fVH0k
TUFLRUlORk8iID4mNjsgfQplbHNlCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu
byIgPiY1CmVjaG8gIiR7RUNIT19UfW5vIiA+JjY7IH0KZmkKCgoKIyBFeHRyYWN0IHRoZSBmaXJz
dCB3b3JkIG9mICJpbnN0YWxsLWluZm8iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0
aCBhcmdzLgpzZXQgZHVtbXkgaW5zdGFsbC1pbmZvOyBhY193b3JkPSQyCnsgZWNobyAiJGFzX21l
OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tp
bmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3BhdGhf
SU5TVEFMTF9JTkZPK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAk
RUNIT19DIiA+JjYKZWxzZQogIGNhc2UgJElOU1RBTExfSU5GTyBpbgogIFtcXC9dKiB8ID86W1xc
L10qKQogIGFjX2N2X3BhdGhfSU5TVEFMTF9JTkZPPSIkSU5TVEFMTF9JTkZPIiAjIExldCB0aGUg
dXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KICA7OwogICopCiAgYXNfc2F2ZV9J
RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgphc19kdW1teT0iJFBBVEg6L3NiaW46L3Vzci9z
YmluIgpmb3IgYXNfZGlyIGluICRhc19kdW1teQpkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0
IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl
Y3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh
Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7
IH07IHRoZW4KICAgIGFjX2N2X3BhdGhfSU5TVEFMTF9JTkZPPSIkYXNfZGlyLyRhY193b3JkJGFj
X2V4ZWNfZXh0IgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv
cmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKZG9uZQpJRlM9JGFzX3Nh
dmVfSUZTCgogIHRlc3QgLXogIiRhY19jdl9wYXRoX0lOU1RBTExfSU5GTyIgJiYgYWNfY3ZfcGF0
aF9JTlNUQUxMX0lORk89ImVjaG8gb3VnaHQgdG8gcnVuIGluc3RhbGwtaW5mbyIKICA7Owplc2Fj
CmZpCklOU1RBTExfSU5GTz0kYWNfY3ZfcGF0aF9JTlNUQUxMX0lORk8KaWYgdGVzdCAtbiAiJElO
U1RBTExfSU5GTyI7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRJTlNU
QUxMX0lORk8iID4mNQplY2hvICIke0VDSE9fVH0kSU5TVEFMTF9JTkZPIiA+JjY7IH0KZWxzZQog
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1u
byIgPiY2OyB9CmZpCgoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKCgp7IGVjaG8gIiRhc19tZTok
TElORU5POiBjaGVja2luZyBmb3IgcHJvY2Vzc29yIHR5cGUiID4mNQplY2hvICRFQ0hPX04gImNo
ZWNraW5nIGZvciBwcm9jZXNzb3IgdHlwZS4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHth
bGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBlK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19O
ICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu
JGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KCmludAptYWluICgpCnsKYXNtICgiLmdsb2JsIF9kdW1teV9mdW5jdGlvblxuIgoiX2R1
bW15X2Z1bmN0aW9uOlxuIgoiICAgICBwdXNobCAlJWVicFxuIgoiICAgICBtb3ZsICUlZXNwLCAl
JWVicFxuIgoiICAgICBsZWFsIDEwKCUlZWJ4LCAlJWVjeCwgNCksICUlZWR4XG4iCiIgICAgIGNh
bGwgKiUlZWR4XG4iCiIgICAgIGFkZGwgJSVlYngsICUlZWF4XG4iCiIgICAgIHBvcGwgJSVlYnBc
biIKIiAgICAgcmV0IiA6IDopCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVz
dC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIg
aW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190
cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNf
dHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAg
YWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK
ICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm
JiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0
LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhbGxl
Z3JvX2N2X3Byb2Nlc3Nvcl90eXBlPWkzODYKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHBy
b2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCgljYXQg
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQg
Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CmFzbSAoIi5nbG9ibCBf
ZHVtbXlfZnVuY3Rpb25cbiIKIl9kdW1teV9mdW5jdGlvbjpcbiIKIiAgICAgc2F2ZSAlJXNwLCAt
MTIwLCAlJXNwXG4iCiIgICAgIGxkIFslJWZwLTIwXSwgJSVmMTJcbiIKIiAgICAgZml0b2QgJSVm
MTIsICUlZjEwXG4iCiIgICAgIGZhZGRkICUlZjEwLCAlJWY4LCAlJWY4XG4iCiIgICAgIHJldFxu
IgoiICAgICByZXN0b3JlIiA6IDopCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25m
dGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3Ry
eSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBh
Y190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAk
YWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIx
CiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l
cnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRh
c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsg
fSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0
ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBh
bGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBlPXNwYXJjCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJ
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YK
Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewphc20gKCIuZ2xv
YmwgX2R1bW15X2Z1bmN0aW9uXG4iCiJfZHVtbXlfZnVuY3Rpb246XG4iCiIgICAgIHB1c2hxICUl
cmJwXG4iCiIgICAgIG1vdmwgJSVlc3AsICUlZWJwXG4iCiIgICAgIGxlYWwgMTAoJSVlYngsICUl
ZWN4LCA0KSwgJSVlZHhcbiIKIiAgICAgY2FsbHEgKiUlcmR4XG4iCiIgICAgIGFkZGwgJSVlYngs
ICUlZWF4XG4iCiIgICAgIHBvcHEgJSVyYnBcbiIKIiAgICAgcmV0IiA6IDopCiAgOwogIHJldHVy
biAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFj
X2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry
eV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJl
Y2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNf
Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycg
Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29u
ZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2Zs
YWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0
ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhbGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBlPWFtZDY0CmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8n
IGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWxsZWdyb19jdl9wcm9jZXNzb3JfdHlwZT11bmtub3du
CmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0
LiRhY19leHQKZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QuJGFjX2V4dApmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCgp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1
bHQ6ICRhbGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBlIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFsbGVn
cm9fY3ZfcHJvY2Vzc29yX3R5cGUiID4mNjsgfQoKaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3Byb2Nl
c3Nvcl90eXBlIiA9ICJYaTM4NiI7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVj
a2luZyB3aGV0aGVyIC1tdHVuZSBpcyBzdXBwb3J0ZWQiID4mNQplY2hvICRFQ0hPX04gImNoZWNr
aW5nIHdoZXRoZXIgLW10dW5lIGlzIHN1cHBvcnRlZC4uLiAkRUNIT19DIiA+JjY7IH0KYWxsZWdy
b19zYXZlX0NGTEFHUz0iJENGTEFHUyIKQ0ZMQUdTPSItbXR1bmU9aTM4NiIKaWYgdGVzdCAiJHth
bGxlZ3JvX2N2X3N1cHBvcnRfaTM4Nl9tdHVuZStzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVD
SE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg
dGhlbgogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICov
Cl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3Qu
JGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7Cmlu
dCBmb28oKXtyZXR1cm4gMDt9CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVz
dC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIg
aW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190
cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNf
dHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAg
YWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK
ICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm
JiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0
LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhbGxl
Z3JvX2N2X3N1cHBvcnRfaTM4Nl9tdHVuZT15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVk
IHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglh
bGxlZ3JvX2N2X3N1cHBvcnRfaTM4Nl9tdHVuZT1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5l
cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmVsc2UKICAgYWxsZWdyb19j
dl9zdXBwb3J0X2kzODZfbXR1bmU9bm8KZmkKCmZpCgpDRkxBR1M9IiRhbGxlZ3JvX3NhdmVfQ0ZM
QUdTIgp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbGxlZ3JvX2N2X3N1cHBvcnRf
aTM4Nl9tdHVuZSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhbGxlZ3JvX2N2X3N1cHBvcnRfaTM4Nl9t
dHVuZSIgPiY2OyB9CmZpCgppZiB0ZXN0ICJYJGFsbGVncm9fY3ZfcHJvY2Vzc29yX3R5cGUiID0g
IlhhbWQ2NCI7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy
IC1tdHVuZSBpcyBzdXBwb3J0ZWQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIg
LW10dW5lIGlzIHN1cHBvcnRlZC4uLiAkRUNIT19DIiA+JjY7IH0KYWxsZWdyb19zYXZlX0NGTEFH
Uz0iJENGTEFHUyIKQ0ZMQUdTPSItbXR1bmU9azgiCmlmIHRlc3QgIiR7YWxsZWdyb19jdl9zdXBw
b3J0X2FtZDY0X210dW5lK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVk
KSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgIGNhdCA+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBj
b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKaW50IGZvbygpe3JldHVy
biAwO30KICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK
aWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAq
XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190
cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikg
PiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8K
ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0
ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwk
PyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16
ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9
ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFsbGVncm9fY3Zfc3VwcG9y
dF9hbWQ2NF9tdHVuZT15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz
OiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhbGxlZ3JvX2N2X3N1
cHBvcnRfYW1kNjRfbXR1bmU9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAplbHNlCiAgIGFsbGVncm9fY3Zfc3VwcG9ydF9h
bWQ2NF9tdHVuZT1ubwpmaQoKZmkKCkNGTEFHUz0iJGFsbGVncm9fc2F2ZV9DRkxBR1MiCnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFsbGVncm9fY3Zfc3VwcG9ydF9hbWQ2NF9tdHVu
ZSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhbGxlZ3JvX2N2X3N1cHBvcnRfYW1kNjRfbXR1bmUiID4m
NjsgfQpmaQoKaWYgdGVzdCAiWCRhbGxlZ3JvX2VuYWJsZV9hc20iID0gIlh5ZXMiOyB0aGVuCiAg
aWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBlIiA9ICJYaTM4NiI7IHRoZW4KICAg
IEFMTEVHUk9fTUFZQkVfQVNNX0ZJTEVTPUFMTEVHUk9fU1JDX0kzODZfRklMRVMKICAgIF9jb2Rl
X2ZlYXR1cmVzPSJpMzg2IGFzbSIKCgoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLW1teCB3YXMg
Z2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX21teCtzZXR9IiA9IHNldDsgdGhlbgogIGVuYWJsZXZh
bD0kZW5hYmxlX21teDsgdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5h
YmxlX21teD15ZXMKZWxzZQogIGFsbGVncm9fZW5hYmxlX21teD15ZXMKZmkKCnsgZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBNTVggc3VwcG9ydCIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgZm9yIE1NWCBzdXBwb3J0Li4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2Fs
bGVncm9fY3Zfc3VwcG9ydF9tbXgrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihj
YWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgaWYgdGVzdCAiJGFsbGVncm9fY3ZfcHJvY2Vzc29y
X3R5cGUiID0gaTM4NiAtYSAiJGFsbGVncm9fZW5hYmxlX21teCIgPSB5ZXM7IHRoZW4KICBjYXQg
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQg
Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CmFzbSAoIi5nbG9ibCBf
ZHVtbXlfZnVuY3Rpb25cbiIKICAiX2R1bW15X2Z1bmN0aW9uOlxuIgogICIgICAgIHB1c2hsICUl
ZWJwXG4iCiAgIiAgICAgbW92bCAlJWVzcCwgJSVlYnBcbiIKICAiICAgICBtb3ZxIC04KCUlZWJw
KSwgJSVtbTBcbiIKICAiICAgICBtb3ZkICUlZWRpLCAlJW1tMVxuIgogICIgICAgIHB1bnBja2xk
cSAlJW1tMSwgJSVtbTFcbiIKICAiICAgICBwc3JsZCAkIDE5LCAlJW1tN1xuIgogICIgICAgIHBz
bGxkICQgMTAsICUlbW02XG4iCiAgIiAgICAgcG9yICUlbW02LCAlJW1tN1xuIgogICIgICAgIHBh
ZGRkICUlbW0xLCAlJW1tMFxuIgogICIgICAgIGVtbXNcbiIKICAiICAgICBwb3BsICUlZWJwXG4i
CiAgIiAgICAgcmV0IiA6IDogKQogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRl
c3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnki
IGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNf
dHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFj
X3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQog
IGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy
CiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g
JiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVz
dC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWxs
ZWdyb19jdl9zdXBwb3J0X21teD15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy
YW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhbGxlZ3Jv
X2N2X3N1cHBvcnRfbW14PW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k
YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZWxzZQogIGFsbGVncm9fY3Zfc3VwcG9ydF9tbXg9
bm8KZmkKCmZpCgp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbGxlZ3JvX2N2X3N1
cHBvcnRfbW14IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFsbGVncm9fY3Zfc3VwcG9ydF9tbXgiID4m
NjsgfQogICAgaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3N1cHBvcnRfbW14IiA9ICJYeWVzIjsgdGhl
bgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX01NWCAxCl9BQ0VP
RgoKICAgICAgX2NvZGVfZmVhdHVyZXM9IiRfY29kZV9mZWF0dXJlcywgTU1YIgogICAgZmkKCgoj
IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3NlIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVf
c3NlK3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfc3NlOyB0ZXN0ICJYJGVu
YWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfc3NlPXllcwplbHNlCiAgYWxsZWdy
b19lbmFibGVfc3NlPXllcwpmaQoKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y
IFNTRSBzdXBwb3J0IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgU1NFIHN1cHBvcnQu
Li4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWxsZWdyb19jdl9zdXBwb3J0X3NzZStzZXR9
IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UK
ICBpZiB0ZXN0ICIkYWxsZWdyb19jdl9zdXBwb3J0X21teCIgIT0gbm8gLWEgIiRhbGxlZ3JvX2Vu
YWJsZV9zc2UiID0geWVzOyB0aGVuCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoK
aW50Cm1haW4gKCkKewphc20gKCIuZ2xvYmwgX2R1bW15X2Z1bmN0aW9uXG4iCiAgIl9kdW1teV9m
dW5jdGlvbjpcbiIKICAiICAgICBwdXNobCAlJWVicFxuIgogICIgICAgIG1vdmwgJSVlc3AsICUl
ZWJwXG4iCiAgIiAgICAgbW92cSAtOCglJWVicCksICUlbW0wXG4iCiAgIiAgICAgbW92ZCAlJWVk
aSwgJSVtbTFcbiIKICAiICAgICBwdW5wY2tsZHEgJSVtbTEsICUlbW0xXG4iCiAgIiAgICAgcHNy
bGQgJCAxMCwgJSVtbTNcbiIKICAiICAgICBtYXNrbW92cSAlJW1tMywgJSVtbTFcbiIKICAiICAg
ICBwYWRkZCAlJW1tMSwgJSVtbTBcbiIKICAiICAgICBlbW1zXG4iCiAgIiAgICAgcG9wbCAlJWVi
cFxuIgogICIgICAgIHJldCIgOiA6ICkKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNv
bmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNf
dHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICop
IGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86
ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l
cjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0
LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29u
ZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgog
IGFsbGVncm9fY3Zfc3VwcG9ydF9zc2U9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBw
cm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWxs
ZWdyb19jdl9zdXBwb3J0X3NzZT1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl
c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmVsc2UKICBhbGxlZ3JvX2N2X3N1cHBvcnRf
c3NlPW5vCmZpCgpmaQoKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWxsZWdyb19j
dl9zdXBwb3J0X3NzZSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhbGxlZ3JvX2N2X3N1cHBvcnRfc3Nl
IiA+JjY7IH0KICAgIGlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X3NzZSIgPSAiWHllcyI7
IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19TU0UgMQpf
QUNFT0YKCiAgICAgIF9jb2RlX2ZlYXR1cmVzPSIkX2NvZGVfZmVhdHVyZXMsIFNTRSIKICAgIGZp
CiAgZWxpZiB0ZXN0ICJYJGFsbGVncm9fY3ZfcHJvY2Vzc29yX3R5cGUiID0gIlhhbWQ2NCI7IHRo
ZW4KICAgIEFMTEVHUk9fTUFZQkVfQVNNX0ZJTEVTPUFMTEVHUk9fU1JDX0FNRDY0X0ZJTEVTCiAg
ICBfY29kZV9mZWF0dXJlcz0iYW1kNjQgYXNtIgoKCiAgICAgICAgICAgICAgZmkKZmkKCmlmIHRl
c3QgLXogIiRBTExFR1JPX01BWUJFX0FTTV9GSUxFUyI7IHRoZW4KICBBTExFR1JPX01BWUJFX0FT
TV9GSUxFUz1BTExFR1JPX1NSQ19DX0ZJTEVTCiAgQ0ZMQUdTPSIkQ0ZMQUdTIC1EQUxMRUdST19O
T19BU00iCgpjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fTk9fQVNN
IDEKX0FDRU9GCgogIF9jb2RlX2ZlYXR1cmVzPSJDIG9ubHkiCmZpCgoKCnsgZWNobyAiJGFzX21l
OiRMSU5FTk86IGNoZWNraW5nIGZvciBhc20gcHJlZml4IGJlZm9yZSBzeW1ib2xzIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyBmb3IgYXNtIHByZWZpeCBiZWZvcmUgc3ltYm9scy4uLiAkRUNI
T19DIiA+JjY7IH0KaWYgdGVzdCAiJHthbGxlZ3JvX2N2X2FzbV9wcmVmaXgrc2V0fSIgPSBzZXQ7
IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2F0ID5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNv
bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwppbnQgdGVzdF9mb3JfdW5kZXJzY29yZSh2b2lkKTsK
YXNtICgiLmdsb2JsIF90ZXN0X2Zvcl91bmRlcnNjb3JlXG4iCiJfdGVzdF9mb3JfdW5kZXJzY29y
ZToiKTsKaW50Cm1haW4gKCkKewp0ZXN0X2Zvcl91bmRlcnNjb3JlICgpOwogIDsKICByZXR1cm4g
MDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK
aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAq
IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7
Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1
CiAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVw
IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVy
MQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh
Y19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNf
Y193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRl
c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmCiAgICAgICAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj
X2V4ZWV4dDsgdGhlbgogIGFsbGVncm9fY3ZfYXNtX3ByZWZpeD1fCmVsc2UKICBlY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l
eHQgPiY1CgoJYWxsZWdyb19jdl9hc21fcHJlZml4PW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0
LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAogICAg
ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAppZiB0ZXN0ICIkYWxsZWdyb19j
dl9hc21fcHJlZml4IiA9IG5vOyB0aGVuCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
Ci8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf
ZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAq
LwppbnQgdGVzdF9mb3JfdW5kZXJzY29yZSh2b2lkKTsKICBhc20gKCIuZ2xvYmwgdGVzdF9mb3Jf
dW5kZXJjb3JlXG4iCiAgInRlc3RfZm9yX3VuZGVyc2NvcmU6Iik7CmludAptYWluICgpCnsKdGVz
dF9mb3JfdW5kZXJzY29yZSAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRh
c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+
Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx
ID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4m
NQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVz
dCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4
dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBhbGxlZ3Jv
X2N2X2FzbV9wcmVmaXg9CmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi
ID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWxsZWdyb19jdl9hc21f
cHJlZml4PW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0
IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29u
ZnRlc3QuJGFjX2V4dApmaQppZiB0ZXN0ICIkYWxsZWdyb19jdl9hc21fcHJlZml4IiA9IG5vOyB0
aGVuCiAgYWxsZWdyb19jdl9hc21fcHJlZml4PQpmaQoKZmkKCnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogXCIkYWxsZWdyb19jdl9hc21fcHJlZml4XCIiID4mNQplY2hvICIke0VDSE9f
VH1cIiRhbGxlZ3JvX2N2X2FzbV9wcmVmaXhcIiIgPiY2OyB9CmlmIHRlc3QgIiRhbGxlZ3JvX2N2
X2FzbV9wcmVmaXgiICE9ICIiOyB0aGVuCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZp
bmUgQUxMRUdST19BU01fUFJFRklYICIkYWxsZWdyb19jdl9hc21fcHJlZml4IgpfQUNFT0YKCmZp
CgoKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVz
IGxvbmcgbGluZXMgYW5kIC1lIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgZ3JlcCB0
aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3Qg
IiR7YWNfY3ZfcGF0aF9HUkVQK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ3Jl
cCBnZ3JlcCIgdG8gdXNlIGluIG1zZyBvdXRwdXQKaWYgdGVzdCAteiAiJEdSRVAiOyB0aGVuCnNl
dCBkdW1teSBncmVwIGdncmVwOyBhY19wcm9nX25hbWU9JDIKaWYgdGVzdCAiJHthY19jdl9wYXRo
X0dSRVArc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgplbHNlCiAgYWNfcGF0aF9HUkVQX2ZvdW5kPWZhbHNlCiMgTG9vcCB0aHJvdWdoIHRoZSB1
c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCmFzX3NhdmVfSUZT
PSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFS
QVRPUi91c3IveHBnNC9iaW4KZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2Rp
ciIgJiYgYXNfZGlyPS4KICBmb3IgYWNfcHJvZyBpbiBncmVwIGdncmVwOyBkbwogIGZvciBhY19l
eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogICAgYWNfcGF0aF9H
UkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgogICAgeyB0ZXN0IC1mICIkYWNfcGF0
aF9HUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9HUkVQIjsgfSB8fCBjb250aW51ZQogICAg
IyBDaGVjayBmb3IgR05VIGFjX3BhdGhfR1JFUCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5k
LgogICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9HUkVQCmNhc2UgYCIkYWNfcGF0aF9HUkVQIiAt
LXZlcnNpb24gMj4mMWAgaW4KKkdOVSopCiAgYWNfY3ZfcGF0aF9HUkVQPSIkYWNfcGF0aF9HUkVQ
IiBhY19wYXRoX0dSRVBfZm91bmQ9Ojs7CiopCiAgYWNfY291bnQ9MAogIGVjaG8gJEVDSE9fTiAi
MDEyMzQ1Njc4OSRFQ0hPX0MiID4iY29uZnRlc3QuaW4iCiAgd2hpbGUgOgogIGRvCiAgICBjYXQg
ImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgogICAgbXYgImNvbmZ0
ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgogICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3Qubmwi
CiAgICBlY2hvICdHUkVQJyA+PiAiY29uZnRlc3QubmwiCiAgICAiJGFjX3BhdGhfR1JFUCIgLWUg
J0dSRVAkJyAtZSAnLShjYW5ub3QgbWF0Y2gpLScgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qu
b3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhawogICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRl
c3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhawogICAgYWNfY291bnQ9YGV4cHIgJGFjX2Nv
dW50ICsgMWAKICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfR1JFUF9tYXgtMH07
IHRoZW4KICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBm
b3IgYSBiZXR0ZXIgb25lCiAgICAgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JFUCIKICAg
ICAgYWNfcGF0aF9HUkVQX21heD0kYWNfY291bnQKICAgIGZpCiAgICAjIDEwKigyXjEwKSBjaGFy
cyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCiAgICB0ZXN0ICRhY19jb3VudCAtZ3Qg
MTAgJiYgYnJlYWsKICBkb25lCiAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0
ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7CmVzYWMKCgogICAgJGFjX3BhdGhfR1JFUF9mb3VuZCAmJiBi
cmVhayAzCiAgZG9uZQpkb25lCgpkb25lCklGUz0kYXNfc2F2ZV9JRlMKCgpmaQoKR1JFUD0iJGFj
X2N2X3BhdGhfR1JFUCIKaWYgdGVzdCAteiAiJEdSRVAiOyB0aGVuCiAgeyB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSAkYWNfcHJvZ19uYW1lIGNvdWxkIGJlIGZv
dW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1CmVjaG8gIiRhc19t
ZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgJGFjX3Byb2dfbmFtZSBjb3VsZCBiZSBmb3VuZCBpbiAk
UEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4
aXQgMTsgfTsgfQpmaQoKZWxzZQogIGFjX2N2X3BhdGhfR1JFUD0kR1JFUApmaQoKCmZpCnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3BhdGhfR1JFUCIgPiY1CmVjaG8gIiR7
RUNIT19UfSRhY19jdl9wYXRoX0dSRVAiID4mNjsgfQogR1JFUD0iJGFjX2N2X3BhdGhfR1JFUCIK
Cgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZWdyZXAiID4mNQplY2hvICRF
Q0hPX04gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHth
Y19jdl9wYXRoX0VHUkVQK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVk
KSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIGVjaG8gYSB8ICRHUkVQIC1FICcoYXxiKScgPi9kZXYv
bnVsbCAyPiYxCiAgIHRoZW4gYWNfY3ZfcGF0aF9FR1JFUD0iJEdSRVAgLUUiCiAgIGVsc2UKICAg
ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImVncmVwIiB0byB1c2UgaW4gbXNnIG91dHB1
dAppZiB0ZXN0IC16ICIkRUdSRVAiOyB0aGVuCnNldCBkdW1teSBlZ3JlcDsgYWNfcHJvZ19uYW1l
PSQyCmlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9FR1JFUCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8g
JEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19wYXRoX0VHUkVQX2ZvdW5k
PWZhbHNlCiMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBv
ZiBQUk9HTkFNRS1MSVNUCmFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9y
IGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KZG8KICBJRlM9JGFz
X3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBmb3IgYWNfcHJvZyBp
biBlZ3JlcDsgZG8KICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z
aW9uczsgZG8KICAgIGFjX3BhdGhfRUdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQi
CiAgICB7IHRlc3QgLWYgIiRhY19wYXRoX0VHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9F
R1JFUCI7IH0gfHwgY29udGludWUKICAgICMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0VHUkVQIGFu
ZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCiAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0VH
UkVQCmNhc2UgYCIkYWNfcGF0aF9FR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCipHTlUqKQogIGFj
X2N2X3BhdGhfRUdSRVA9IiRhY19wYXRoX0VHUkVQIiBhY19wYXRoX0VHUkVQX2ZvdW5kPTo7Owoq
KQogIGFjX2NvdW50PTAKICBlY2hvICRFQ0hPX04gIjAxMjM0NTY3ODkkRUNIT19DIiA+ImNvbmZ0
ZXN0LmluIgogIHdoaWxlIDoKICBkbwogICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lmlu
IiA+ImNvbmZ0ZXN0LnRtcCIKICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKICAg
IGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgogICAgZWNobyAnRUdSRVAnID4+ICJjb25m
dGVzdC5ubCIKICAgICIkYWNfcGF0aF9FR1JFUCIgJ0VHUkVQJCcgPCAiY29uZnRlc3QubmwiID4i
Y29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhawogICAgZGlmZiAiY29uZnRlc3Qub3V0
IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhawogICAgYWNfY291bnQ9YGV4
cHIgJGFjX2NvdW50ICsgMWAKICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfRUdS
RVBfbWF4LTB9OyB0aGVuCiAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVw
IGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQogICAgICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0
aF9FR1JFUCIKICAgICAgYWNfcGF0aF9FR1JFUF9tYXg9JGFjX2NvdW50CiAgICBmaQogICAgIyAx
MCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAogICAgdGVzdCAk
YWNfY291bnQgLWd0IDEwICYmIGJyZWFrCiAgZG9uZQogIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0
ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7Owplc2FjCgoKICAgICRhY19wYXRoX0VH
UkVQX2ZvdW5kICYmIGJyZWFrIDMKICBkb25lCmRvbmUKCmRvbmUKSUZTPSRhc19zYXZlX0lGUwoK
CmZpCgpFR1JFUD0iJGFjX2N2X3BhdGhfRUdSRVAiCmlmIHRlc3QgLXogIiRFR1JFUCI7IHRoZW4K
ICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlICRhY19wcm9n
X25hbWUgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmlu
IiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSAkYWNfcHJvZ19uYW1lIGNv
dWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiYyO30K
ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCgplbHNlCiAgYWNfY3ZfcGF0aF9FR1JFUD0k
RUdSRVAKZmkKCgogICBmaQpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j
dl9wYXRoX0VHUkVQIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3BhdGhfRUdSRVAiID4mNjsg
fQogRUdSRVA9IiRhY19jdl9wYXRoX0VHUkVQIgoKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNo
ZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2lu
ZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHth
Y19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hl
ZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
Y29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK
Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNp
bmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGFyZy5oPgojaW5jbHVkZSA8c3RyaW5nLmg+
CiNpbmNsdWRlIDxmbG9hdC5oPgoKaW50Cm1haW4gKCkKewoKICA7CiAgcmV0dXJuIDA7Cn0KX0FD
RU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK
Y2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh
Y190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFz
X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikg
Mj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l
cjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIg
PiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0
ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0
ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29i
amV4dDsgdGhlbgogIGFjX2N2X2hlYWRlcl9zdGRjPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m
NQoKCWFjX2N2X2hlYWRlcl9zdGRjPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m
dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKCmlmIHRlc3QgJGFjX2N2X2hlYWRlcl9z
dGRjID0geWVzOyB0aGVuCiAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBt
ZW0qLCBjb250cmFyeSB0byBBTlNJLgogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgov
KiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4
dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8K
I2luY2x1ZGUgPHN0cmluZy5oPgoKX0FDRU9GCmlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh
Y19leHQiKSAyPiY1IHwKICAkRUdSRVAgIm1lbWNociIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAg
OgplbHNlCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KZmkKcm0gLWYgY29uZnRlc3QqCgpmaQoKaWYg
dGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KICAjIElTQyAyLjAuMiBzdGRsaWIu
aCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCiAgY2F0ID5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZz
LmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
ZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3RkbGliLmg+CgpfQUNFT0YKaWYgKGV2YWwg
IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAogICRFR1JFUCAiZnJlZSIgPi9kZXYv
bnVsbCAyPiYxOyB0aGVuCiAgOgplbHNlCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KZmkKcm0gLWYg
Y29uZnRlc3QqCgpmaQoKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KICAj
IC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3Mg
dXNpbmcgLWFuc2kuCiAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KICA6
CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICov
Cl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3Qu
JGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxjdHlwZS5o
PgojaW5jbHVkZSA8c3RkbGliLmg+CiNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkKIyBkZWZp
bmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQojIGRlZmluZSBUT1VQUEVS
KGMpIChJU0xPV0VSKGMpID8gJ0EnICsgKChjKSAtICdhJykgOiAoYykpCiNlbHNlCiMgZGVmaW5l
IElTTE9XRVIoYykgXAoJCSAgICgoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCgkJICAgICB8
fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCgkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAo
YykgPD0gJ3onKSkKIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICgoYykgfCAweDQw
KSA6IChjKSkKI2VuZGlmCgojZGVmaW5lIFhPUihlLCBmKSAoKChlKSAmJiAhKGYpKSB8fCAoIShl
KSAmJiAoZikpKQppbnQKbWFpbiAoKQp7CiAgaW50IGk7CiAgZm9yIChpID0gMDsgaSA8IDI1Njsg
aSsrKQogICAgaWYgKFhPUiAoaXNsb3dlciAoaSksIElTTE9XRVIgKGkpKQoJfHwgdG91cHBlciAo
aSkgIT0gVE9VUFBFUiAoaSkpCiAgICAgIHJldHVybiAyOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpy
bSAtZiBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAiKCgk
YWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owog
ICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5F
Tk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj4mNQogIGFjX3N0
YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCiAg
eyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89
XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJc
JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY190cnkiKSAy
PiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgOgplbHNlCiAgZWNobyAi
JGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKZWNobyAi
JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4k
YWNfZXh0ID4mNQoKKCBleGl0ICRhY19zdGF0dXMgKQphY19jdl9oZWFkZXJfc3RkYz1ubwpmaQpy
bSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0
JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKCgpmaQpm
aQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1
CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9CmlmIHRlc3QgJGFjX2N2
X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCgpjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVm
aW5lIFNURENfSEVBREVSUyAxCl9BQ0VPRgoKZmkKCiMgT24gSVJJWCA1LjMsIHN5cy90eXBlcyBh
bmQgaW50dHlwZXMuaCBhcmUgY29uZmxpY3RpbmcuCgoKCgoKCgoKCmZvciBhY19oZWFkZXIgaW4g
c3lzL3R5cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdz
LmggXAoJCSAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaApkbwphc19hY19IZWFkZXI9YGVj
aG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNr
aW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNjsgfQppZiB7IGFzX3Zhcj0kYXNfYWNf
SGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCiAg
ZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3Qu
JGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5o
ID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKCiNpbmNsdWRlIDwkYWNfaGVh
ZGVyPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19j
b21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf
ZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNo
byBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2Nv
bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNv
bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0
ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1
CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn
IiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz
dC4kYWNfb2JqZXh0OyB0aGVuCiAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCmVsc2UKICBlY2hv
ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0
LiRhY19leHQgPiY1CgoJZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKZmkKCnJtIC1mIGNvcmUgY29u
ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQphY19yZXM9
YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AKCSAgICAgICB7IGVjaG8gIiRhc19tZTok
TElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQplY2hvICIke0VDSE9fVH0kYWNfcmVzIiA+JjY7
IH0KaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgog
IGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVy
IiB8ICRhc190cl9jcHBgIDEKX0FDRU9GCgpmaQoKZG9uZQoKCnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4iID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4uLi4g
JEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfY19iaWdlbmRpYW4rc2V0fSIgPSBzZXQ7
IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgIyBTZWUg
aWYgc3lzL3BhcmFtLmggZGVmaW5lcyB0aGUgQllURV9PUkRFUiBtYWNyby4KY2F0ID5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZz
LmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
ZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMv
cGFyYW0uaD4KCmludAptYWluICgpCnsKI2lmICAhIChkZWZpbmVkIEJZVEVfT1JERVIgJiYgZGVm
aW5lZCBCSUdfRU5ESUFOICYmIGRlZmluZWQgTElUVExFX0VORElBTiBcCgkmJiBCWVRFX09SREVS
ICYmIEJJR19FTkRJQU4gJiYgTElUVExFX0VORElBTikKIGJvZ3VzIGVuZGlhbiBtYWNyb3MKI2Vu
ZGlmCgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dApp
ZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpc
YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry
eTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+
JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwog
IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRl
c3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/
ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXog
IiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0g
JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgIyBJdCBkb2VzOyBub3cgc2Vl
IHdoZXRoZXIgaXQgZGVmaW5lZCB0byBCSUdfRU5ESUFOIG9yIG5vdC4KY2F0ID5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmgg
Pj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5k
IGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvcGFy
YW0uaD4KCmludAptYWluICgpCnsKI2lmIEJZVEVfT1JERVIgIT0gQklHX0VORElBTgogbm90IGJp
ZyBlbmRpYW4KI2VuZGlmCgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3Qu
JGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGlu
CiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5
X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry
eV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFj
X3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAg
cm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg
ewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5l
cnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNfY3Zf
Y19iaWdlbmRpYW49eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi
ID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfY3ZfY19iaWdlbmRp
YW49bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u
ZnRlc3QuJGFjX2V4dAplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+
JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCSMgSXQgZG9lcyBub3Q7IGNv
bXBpbGUgYSB0ZXN0IHByb2dyYW0uCmlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0
aGVuCiAgIyB0cnkgdG8gZ3Vlc3MgdGhlIGVuZGlhbm5lc3MgYnkgZ3JlcHBpbmcgdmFsdWVzIGlu
dG8gYW4gb2JqZWN0IGZpbGUKICBhY19jdl9jX2JpZ2VuZGlhbj11bmtub3duCiAgY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZk
ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
LyogZW5kIGNvbmZkZWZzLmguICAqLwpzaG9ydCBpbnQgYXNjaWlfbW1bXSA9IHsgMHg0MjQ5LCAw
eDQ3NjUsIDB4NkU0NCwgMHg2OTYxLCAweDZFNTMsIDB4Nzk1MywgMCB9OwpzaG9ydCBpbnQgYXNj
aWlfaWlbXSA9IHsgMHg2OTRDLCAweDU0NTQsIDB4NjU2QywgMHg2RTQ1LCAweDY5NDQsIDB4NkU2
MSwgMCB9Owp2b2lkIF9hc2NpaSAoKSB7IGNoYXIgKnMgPSAoY2hhciAqKSBhc2NpaV9tbTsgcyA9
IChjaGFyICopIGFzY2lpX2lpOyB9CnNob3J0IGludCBlYmNkaWNfaWlbXSA9IHsgMHg4OUQzLCAw
eEUzRTMsIDB4ODU5MywgMHg5NUM1LCAweDg5QzQsIDB4OTU4MSwgMCB9OwpzaG9ydCBpbnQgZWJj
ZGljX21tW10gPSB7IDB4QzJDOSwgMHhDNzg1LCAweDk1QzQsIDB4ODk4MSwgMHg5NUUyLCAweEE4
RTIsIDAgfTsKdm9pZCBfZWJjZGljICgpIHsgY2hhciAqcyA9IChjaGFyICopIGViY2RpY19tbTsg
cyA9IChjaGFyICopIGViY2RpY19paTsgfQppbnQKbWFpbiAoKQp7CiBfYXNjaWkgKCk7IF9lYmNk
aWMgKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0
CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwg
KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNf
dHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIp
ID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/
CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25m
dGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBc
JD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAt
eiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAg
fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBpZiBncmVwIEJJR2VuRGlh
blN5UyBjb25mdGVzdC4kYWNfb2JqZXh0ID4vZGV2L251bGwgOyB0aGVuCiAgYWNfY3ZfY19iaWdl
bmRpYW49eWVzCmZpCmlmIGdyZXAgTGlUVGxlRW5EaWFuIGNvbmZ0ZXN0LiRhY19vYmpleHQgPi9k
ZXYvbnVsbCA7IHRoZW4KICBpZiB0ZXN0ICIkYWNfY3ZfY19iaWdlbmRpYW4iID0gdW5rbm93bjsg
dGhlbgogICAgYWNfY3ZfY19iaWdlbmRpYW49bm8KICBlbHNlCiAgICAjIGZpbmRpbmcgYm90aCBz
dHJpbmdzIGlzIHVubGlrZWx5IHRvIGhhcHBlbiwgYnV0IHdobyBrbm93cz8KICAgIGFjX2N2X2Nf
YmlnZW5kaWFuPXVua25vd24KICBmaQpmaQplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCmZpCgpy
bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l
eHQKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAg
Ki8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2Rl
ZmF1bHQKaW50Cm1haW4gKCkKewoKICAvKiBBcmUgd2UgbGl0dGxlIG9yIGJpZyBlbmRpYW4/ICBG
cm9tIEhhcmJpc29uJlN0ZWVsZS4gICovCiAgdW5pb24KICB7CiAgICBsb25nIGludCBsOwogICAg
Y2hhciBjW3NpemVvZiAobG9uZyBpbnQpXTsKICB9IHU7CiAgdS5sID0gMTsKICByZXR1cm4gdS5j
W3NpemVvZiAobG9uZyBpbnQpIC0gMV0gPT0gMTsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpy
bSAtZiBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAiKCgk
YWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owog
ICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5F
Tk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj4mNQogIGFjX3N0
YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCiAg
eyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89
XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJc
JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY190cnkiKSAy
PiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfY19iaWdlbmRp
YW49bm8KZWxzZQogIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFj
X3N0YXR1cyIgPiY1CmVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAn
cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiggZXhpdCAkYWNfc3RhdHVzICkKYWNfY3Zf
Y19iaWdlbmRpYW49eWVzCmZpCnJtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9u
Lm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl
c3QuJGFjX2V4dApmaQoKCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNfY3ZfY19iaWdlbmRpYW4iID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfY19iaWdlbmRp
YW4iID4mNjsgfQpjYXNlICRhY19jdl9jX2JpZ2VuZGlhbiBpbgogIHllcykKCgpjYXQgPj5jb25m
ZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fQklHX0VORElBTiAxCl9BQ0VPRgoKICBf
Y29kZV9mZWF0dXJlcz0iYmlnIGVuZGlhbiwgJF9jb2RlX2ZlYXR1cmVzIgogOzsKICBubykKCgpj
YXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fTElUVExFX0VORElBTiAx
Cl9BQ0VPRgoKICBfY29kZV9mZWF0dXJlcz0ibGl0dGxlIGVuZGlhbiwgJF9jb2RlX2ZlYXR1cmVz
IgogOzsKICAqKQogICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5rbm93biBl
bmRpYW5uZXNzCnByZXNldHRpbmcgYWNfY3ZfY19iaWdlbmRpYW49bm8gKG9yIHllcykgd2lsbCBo
ZWxwIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogdW5rbm93biBlbmRpYW5uZXNzCnByZXNldHRp
bmcgYWNfY3ZfY19iaWdlbmRpYW49bm8gKG9yIHllcykgd2lsbCBoZWxwIiA+JjI7fQogICB7IChl
eGl0IDEpOyBleGl0IDE7IH07IH0gOzsKZXNhYwoKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNo
ZWNraW5nIGZvciBNQVBfRkFJTEVEIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgTUFQ
X0ZBSUxFRC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthbGxlZ3JvX2N2X2hhdmVfbWFw
X2ZhaWxlZCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9f
QyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMu
aC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29u
ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDx1
bmlzdGQuaD4KI2luY2x1ZGUgPHN5cy9tbWFuLmg+CmludAptYWluICgpCnsKaW50IHRlc3RfbW1h
cF9mYWlsZWQgKHZvaWQgKmFkZHIpIHsgcmV0dXJuIChhZGRyID09IE1BUF9GQUlMRUQpOyB9CiAg
OwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFj
X3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpc
XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNh
YwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChl
dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAt
diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEK
ICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nf
d2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0
IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhbGxlZ3JvX2N2X2hhdmVfbWFwX2ZhaWxl
ZD15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAn
cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhbGxlZ3JvX2N2X2hhdmVfbWFwX2ZhaWxl
ZD1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m
dGVzdC4kYWNfZXh0CmZpCgp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbGxlZ3Jv
X2N2X2hhdmVfbWFwX2ZhaWxlZCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhbGxlZ3JvX2N2X2hhdmVf
bWFwX2ZhaWxlZCIgPiY2OyB9CmlmIHRlc3QgIiRYYWxsZWdyb19jdl9oYXZlX21hcF9mYWlsZWQi
ID0gIlhubyI7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgTUFQX0ZB
SUxFRCAodm9pZCAqKS0xCl9BQ0VPRgoKZmkKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciBzY2hlZF95aWVsZCBpbiAtbGMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZv
ciBzY2hlZF95aWVsZCBpbiAtbGMuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3Zf
bGliX2Nfc2NoZWRfeWllbGQrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNo
ZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpMSUJT
PSItbGMgICRMSUJTIgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMu
aC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29u
ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgovKiBPdmVycmlk
ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KICAgVXNlIGNo
YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCiAgIGJ1
aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g
ICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgpjaGFyIHNjaGVkX3lpZWxk
ICgpOwppbnQKbWFpbiAoKQp7CnJldHVybiBzY2hlZF95aWVsZCAoKTsKICA7CiAgcmV0dXJuIDA7
Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Cmlm
IHsgKGFjX3RyeT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8
ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK
ZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQog
IChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAt
diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEK
ICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nf
d2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0
IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19l
eGVleHQ7IHRoZW4KICBhY19jdl9saWJfY19zY2hlZF95aWVsZD15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj
X2V4dCA+JjUKCglhY19jdl9saWJfY19zY2hlZF95aWVsZD1ubwpmaQoKcm0gLWYgY29yZSBjb25m
dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK
ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tf
bGliX3NhdmVfTElCUwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9s
aWJfY19zY2hlZF95aWVsZCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9saWJfY19zY2hlZF95
aWVsZCIgPiY2OyB9CmlmIHRlc3QgJGFjX2N2X2xpYl9jX3NjaGVkX3lpZWxkID0geWVzOyB0aGVu
CiAgYWxsZWdyb19jdl9zdXBwb3J0X3NjaGVkX3lpZWxkPXllcwplbHNlCiAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzY2hlZF95aWVsZCIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzY2hlZF95
aWVsZC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9zZWFyY2hfc2NoZWRfeWll
bGQrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4m
NgplbHNlCiAgYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTPSRMSUJTCmNhdCA+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+
Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv
IGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv
dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAi
QyIKI2VuZGlmCmNoYXIgc2NoZWRfeWllbGQgKCk7CmludAptYWluICgpCnsKcmV0dXJuIHNjaGVk
X3lpZWxkICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKZm9yIGFjX2xpYiBpbiAnJyBwb3Np
eDQgcnQ7IGRvCiAgaWYgdGVzdCAteiAiJGFjX2xpYiI7IHRoZW4KICAgIGFjX3Jlcz0ibm9uZSBy
ZXF1aXJlZCIKICBlbHNlCiAgICBhY19yZXM9LWwkYWNfbGliCiAgICBMSUJTPSItbCRhY19saWIg
ICRhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlMiCiAgZmkKICBybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19saW5rIgpjYXNlICIoKCRh
Y190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAg
KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVO
TzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVy
MQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu
ZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7
IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25m
dGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYKICAgICAg
ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWNfY3Zfc2VhcmNoX3NjaGVk
X3lpZWxkPSRhY19yZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg
PiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCgpmaQoKcm0gLWYgY29yZSBj
b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v
IFwKICAgICAgY29uZnRlc3QkYWNfZXhlZXh0CiAgaWYgdGVzdCAiJHthY19jdl9zZWFyY2hfc2No
ZWRfeWllbGQrc2V0fSIgPSBzZXQ7IHRoZW4KICBicmVhawpmaQpkb25lCmlmIHRlc3QgIiR7YWNf
Y3Zfc2VhcmNoX3NjaGVkX3lpZWxkK3NldH0iID0gc2V0OyB0aGVuCiAgOgplbHNlCiAgYWNfY3Zf
c2VhcmNoX3NjaGVkX3lpZWxkPW5vCmZpCnJtIGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfZnVu
Y19zZWFyY2hfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj
X2N2X3NlYXJjaF9zY2hlZF95aWVsZCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9zZWFyY2hf
c2NoZWRfeWllbGQiID4mNjsgfQphY19yZXM9JGFjX2N2X3NlYXJjaF9zY2hlZF95aWVsZAppZiB0
ZXN0ICIkYWNfcmVzIiAhPSBubzsgdGhlbgogIHRlc3QgIiRhY19yZXMiID0gIm5vbmUgcmVxdWly
ZWQiIHx8IExJQlM9IiRhY19yZXMgJExJQlMiCiAgYWxsZWdyb19jdl9zdXBwb3J0X3NjaGVkX3lp
ZWxkPXllcwpmaQoKZmkKCmlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X3NjaGVkX3lpZWxk
IiA9ICJYeWVzIjsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExF
R1JPX0hBVkVfU0NIRURfWUlFTEQgMQpfQUNFT0YKCmZpCgp7IGVjaG8gIiRhc19tZTokTElORU5P
OiBjaGVja2luZyBmb3IgY29uc3RydWN0b3IgYXR0cmlidXRlIiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBmb3IgY29uc3RydWN0b3IgYXR0cmlidXRlLi4uICRFQ0hPX0MiID4mNjsgfQojIENo
ZWNrIHdoZXRoZXIgLS1lbmFibGUtY29uc3RydWN0b3Igd2FzIGdpdmVuLgppZiB0ZXN0ICIke2Vu
YWJsZV9jb25zdHJ1Y3RvcitzZXR9IiA9IHNldDsgdGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX2Nv
bnN0cnVjdG9yOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVf
Y29uc3RydWN0b3I9eWVzCmVsc2UKICBhbGxlZ3JvX2VuYWJsZV9jb25zdHJ1Y3Rvcj15ZXMKZmkK
CgppZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfY29uc3RydWN0b3IiOyB0aGVuCiAgaWYgdGVz
dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KICBhbGxlZ3JvX3N1cHBvcnRfY29uc3Ry
dWN0b3I9eWVzCmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRl
ZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCnN0YXRpYyBp
bnQgbm90c3VwcG9ydGVkID0gMTsKICAgIHZvaWQgdGVzdF9jdG9yICh2b2lkKSBfX2F0dHJpYnV0
ZV9fICgoY29uc3RydWN0b3IpKTsKICAgIHZvaWQgdGVzdF9jdG9yICh2b2lkKSB7IG5vdHN1cHBv
cnRlZCA9IDA7IH0KICAgIGludCBtYWluICh2b2lkKSB7IHJldHVybiAobm90c3VwcG9ydGVkKTsg
fQpfQUNFT0YKcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRh
c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+
JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNf
ZXhlZXh0JwogIHsgKGNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj
X3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFs
ICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIk
YWNfdHJ5IikgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFsbGVn
cm9fc3VwcG9ydF9jb25zdHJ1Y3Rvcj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBl
eGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CmVjaG8gIiRhc19tZTogZmFpbGVkIHBy
b2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiggZXhp
dCAkYWNfc3RhdHVzICkKYWxsZWdyb19zdXBwb3J0X2NvbnN0cnVjdG9yPW5vCmZpCnJtIC1mIGNv
cmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhl
ZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQoKCmVsc2UKICBhbGxl
Z3JvX3N1cHBvcnRfY29uc3RydWN0b3I9bm8KZmkKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFsbGVncm9fc3VwcG9ydF9jb25zdHJ1Y3RvciIgPiY1CmVjaG8gIiR7RUNIT19UfSRh
bGxlZ3JvX3N1cHBvcnRfY29uc3RydWN0b3IiID4mNjsgfQppZiB0ZXN0ICJYJGFsbGVncm9fc3Vw
cG9ydF9jb25zdHJ1Y3RvciIgPSAiWHllcyI7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FD
RU9GCiNkZWZpbmUgQUxMRUdST19VU0VfQ09OU1RSVUNUT1IgMQpfQUNFT0YKCmZpCgojIENoZWNr
IHdoZXRoZXIgLS1lbmFibGUtbW9kdWxlcyB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX21v
ZHVsZXMrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9tb2R1bGVzOyB0ZXN0
ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfbW9kdWxlcz15ZXMKZWxz
ZQogIGFsbGVncm9fZW5hYmxlX21vZHVsZXM9eWVzCmZpCgoKaWYgdGVzdCAtbiAiJGFsbGVncm9f
ZW5hYmxlX21vZHVsZXMiOyB0aGVuCiAgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfZGxmY25faCtz
ZXR9IiA9IHNldDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBk
bGZjbi5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgZGxmY24uaC4uLiAkRUNIT19D
IiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfZGxmY25faCtzZXR9IiA9IHNldDsgdGhl
bgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNobyAiJGFzX21l
OiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA+JjUKZWNobyAiJHtFQ0hP
X1R9JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBj
b21waWxhYmxlPwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkbGZjbi5oIHVzYWJp
bGl0eSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZGxmY24uaCB1c2FiaWxpdHkuLi4gJEVD
SE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5o
LiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVz
X2RlZmF1bHQKI2luY2x1ZGUgPGRsZmNuLmg+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIq
IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0k
YWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c
IiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVz
PSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBj
b25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVz
dCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAg
ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29t
cGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpz
ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5v
CmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0
LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBp
bGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9CgojIElz
IHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGxm
Y24uaCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZGxmY24uaCBwcmVzZW5j
ZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNv
bmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNh
dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5j
bHVkZSA8ZGxmY24uaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNf
ZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo
bz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBc
IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBj
b25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12
ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQog
IGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3Qg
LXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAh
IC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwpl
bHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAv
JyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYg
Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3By
ZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hl
YWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcg
aW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRsZmNu
Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3Nv
ciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGRsZmNuLmg6IGFjY2VwdGVkIGJ5IHRoZSBj
b21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBkbGZjbi5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNv
bXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkbGZjbi5oOiBwcm9j
ZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAgYWNfaGVhZGVyX3By
ZXByb2M9eWVzCiAgICA7OwogIG5vOnllczoqICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IFdBUk5JTkc6IGRsZmNuLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVj
aG8gIiRhc19tZTogV0FSTklORzogZGxmY24uaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBp
bGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogZGxmY24uaDog
ICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRh
c19tZTogV0FSTklORzogZGxmY24uaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0
ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRs
ZmNuLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogZGxmY24uaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQog
ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogZGxmY24uaDogICAgIHNlY3Rpb24g
XCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19tZTogV0FS
TklORzogZGxmY24uaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGls
ZWRcIiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRsZmNuLmg6
IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFz
X21lOiBXQVJOSU5HOiBkbGZjbi5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nvcidz
IHJlc3VsdCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRsZmNu
Lmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1
CmVjaG8gIiRhc19tZTogV0FSTklORzogZGxmY24uaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBp
bGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsZmNuLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNr
aW5nIGZvciBkbGZjbi5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRl
cl9kbGZjbl9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNI
T19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRlcl9kbGZjbl9oPSRhY19oZWFkZXJfcHJlcHJvYwpm
aQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfZGxmY25faCIg
PiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfZGxmY25faCIgPiY2OyB9CgpmaQppZiB0
ZXN0ICRhY19jdl9oZWFkZXJfZGxmY25faCA9IHllczsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgLS1leHBvcnQtZHluYW1pYyBsaW5rZXIgZmxhZyBpcyBz
dXBwb3J0ZWQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgLS1leHBvcnQtZHlu
YW1pYyBsaW5rZXIgZmxhZyBpcyBzdXBwb3J0ZWQuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3Qg
IiR7YWxsZWdyb19jdl9zdXBwb3J0X2V4cG9ydF9keW5hbWljK3NldH0iID0gc2V0OyB0aGVuCiAg
ZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFsbGVncm9fc2F2ZV9M
REZMQUdTPSIkTERGTEFHUyIKICAgICAgTERGTEFHUz0iLVdsLC0tZXhwb3J0LWR5bmFtaWMgJExE
RkxBR1MiCiAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5o
LiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgp
CnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19saW5rIgpjYXNlICIoKCRhY190cnki
IGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNf
dHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFj
X3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQogIGFj
X3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAg
cm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg
ewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5l
cnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYKICAgICAgICRhc190
ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWxsZWdyb19jdl9zdXBwb3J0X2V4cG9y
dF9keW5hbWljPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+
JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFsbGVncm9fY3Zfc3VwcG9y
dF9leHBvcnRfZHluYW1pYz1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu
JGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKICAgICAgY29uZnRlc3QkYWNf
ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKICAgICAgTERGTEFHUz0iJGFsbGVncm9fc2F2ZV9MREZM
QUdTIgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbGxlZ3JvX2N2X3N1cHBv
cnRfZXhwb3J0X2R5bmFtaWMiID4mNQplY2hvICIke0VDSE9fVH0kYWxsZWdyb19jdl9zdXBwb3J0
X2V4cG9ydF9keW5hbWljIiA+JjY7IH0KICAgIGlmIHRlc3QgJGFsbGVncm9fY3Zfc3VwcG9ydF9l
eHBvcnRfZHluYW1pYyA9IHllczsgdGhlbgogICAgICBhbGxlZ3JvX3N1cHBvcnRfbW9kdWxlcz15
ZXMKICAgICAgICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3Bl
biBpbiAtbGRsIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwu
Li4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9
IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBh
Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sZGwgICRMSUJTIgpjYXQgPmNvbmZ0
ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRl
ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgov
KiBlbmQgY29uZmRlZnMuaC4gICovCgovKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv
dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0
Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt
ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpl
eHRlcm4gIkMiCiNlbmRpZgpjaGFyIGRsb3BlbiAoKTsKaW50Cm1haW4gKCkKewpyZXR1cm4gZGxv
cGVuICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4
dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAiKCgkYWNf
dHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICop
IGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86
ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK
ICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy
cgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRl
c3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmCiAgICAgICAk
YXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgogIGFjX2N2X2xpYl9kbF9kbG9wZW49
eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3Mv
Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubwpmaQoK
cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4
X2NvbmZ0ZXN0Lm9vIFwKICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK
TElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiBy
ZXN1bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2xp
Yl9kbF9kbG9wZW4iID4mNjsgfQppZiB0ZXN0ICRhY19jdl9saWJfZGxfZGxvcGVuID0geWVzOyB0
aGVuCiAgTElCUz0iLWxkbCAkTElCUyIKZmkKCiAgICAgIExERkxBR1M9Ii1XbCwtLWV4cG9ydC1k
eW5hbWljICRMREZMQUdTIgogICAgZmkKZmkKCgpmaQoKaWYgdGVzdCAtbiAiJGFsbGVncm9fc3Vw
cG9ydF9tb2R1bGVzIjsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBB
TExFR1JPX1dJVEhfTU9EVUxFUyAxCl9BQ0VPRgoKICBfbW9kdWxlcz0iU29tZSBkcml2ZXJzIHdp
bGwgYmUgYnVpbHQgYXMgZHluYW1pYyBtb2R1bGVzLiIKZWxzZQogIF9tb2R1bGVzPSJBbGwgZHJp
dmVycyB3aWxsIGJlIHN0YXRpY2FsbHkgbGlua2VkLiIKZmkKCmlmIHRlc3QgIiRhbGxlZ3JvX2N2
X3N1cHBvcnRfaW5jbHVkZV9wcmVmaXgiID0gInllcyI7IHRoZW4KICBJTkNMVURFX1BSRUZJWD0i
JHByZWZpeCIKZWxzZQogIElOQ0xVREVfUFJFRklYPQpmaQoKCmlmIHRlc3QgIlgkYWxsZWdyb19i
dWlsZF9kZWJ1Z2dpbmdfcHJvZ3JhbXMiID0gIlh5ZXMiOyB0aGVuCiAgQ09NUElMRV9QUk9HUkFN
PUNPTVBJTEVfREVCVUcKICBDT01QSUxFX0NYWF9QUk9HUkFNPUNPTVBJTEVfQ1hYX0RFQlVHCiAg
Q09NUElMRV9TX1BST0dSQU09Q09NUElMRV9TX0RFQlVHCiAgUFJPR19MREZMQUdTPSItZyBcJChM
REZMQUdTKSIKICBMSUJfVE9fTElOSz1hbGxkCiAgUExVR0lOX0xJQj1saWIvdW5peC9saWJhZGRh
dC5hCiAgYWxsZWdyb19idWlsZF9kZWJ1Z2dpbmdfbGlicmFyeT15ZXMKICBfcHJvZ3JhbXM9ImRl
YnVnIgplbGlmIHRlc3QgIlgkYWxsZWdyb19idWlsZF9wcm9maWxpbmdfcHJvZ3JhbXMiID0gIlh5
ZXMiOyB0aGVuCiAgQ09NUElMRV9QUk9HUkFNPUNPTVBJTEVfUFJPRklMRQogIENPTVBJTEVfQ1hY
X1BST0dSQU09Q09NUElMRV9DWFhfUFJPRklMRQogIENPTVBJTEVfU19QUk9HUkFNPUNPTVBJTEVf
U19QUk9GSUxFCiAgUFJPR19MREZMQUdTPSItcGcgXCQoTERGTEFHUykiCiAgTElCX1RPX0xJTks9
YWxscAogIFBMVUdJTl9MSUI9bGliL3VuaXgvbGliYXBkYXQuYQogIGFsbGVncm9fYnVpbGRfcHJv
ZmlsaW5nX2xpYnJhcnk9eWVzCiAgX3Byb2dyYW1zPSJwcm9maWxlIgplbHNlCiAgQ09NUElMRV9Q
Uk9HUkFNPUNPTVBJTEVfTk9STUFMCiAgQ09NUElMRV9DWFhfUFJPR1JBTT1DT01QSUxFX0NYWF9O
T1JNQUwKICBDT01QSUxFX1NfUFJPR1JBTT1DT01QSUxFX1NfTk9STUFMCiAgaWYgdGVzdCAiWCRh
bGxlZ3JvX2N2X3Byb2dfbGRfcyIgPSAiWHllcyI7IHRoZW4KICAgIFBST0dfTERGTEFHUz0iLXMg
XCQoTERGTEFHUykiCiAgZWxzZQogICAgUFJPR19MREZMQUdTPSJcJChMREZMQUdTKSIKICBmaQog
IExJQl9UT19MSU5LPWFsbGVnCiAgUExVR0lOX0xJQj1saWIvdW5peC9saWJhbGRhdC5hCiAgYWxs
ZWdyb19idWlsZF9ub3JtYWxfbGlicmFyeT15ZXMKICBfcHJvZ3JhbXM9InJlbGVhc2UiCmZpCmlm
IHRlc3QgIlgkYWxsZWdyb19idWlsZF9zdGF0aWNfcHJvZ3JhbXMiID0gIlh5ZXMiOyB0aGVuCiAg
TElCQUxMRUc9bGliL3VuaXgvbGliJExJQl9UT19MSU5LLmEKICBMSU5LX0xJQkFMTEVHPSIkTElC
QUxMRUcgXCQoTElCUykiCiAgTElOS19XSVRIX1NUQVRJQ19MSUJTPXllcwogIGFsbGVncm9fc3Rh
dGljX2xpYnJhcmllcz15ZXMKICBfcHJvZ3JhbXM9InN0YXRpY2FsbHkgbGlua2VkICRfcHJvZ3Jh
bXMiCmVsc2UKICBMSUJBTExFRz0ibGliL3VuaXgvbGliJHtMSUJfVE9fTElOS30tXCQoc2hhcmVk
X3ZlcnNpb24pLnNvIGxpYi91bml4L2xpYiR7TElCX1RPX0xJTkt9X3Vuc2hhcmFibGUuYSIKICBM
SU5LX0xJQkFMTEVHPSItTGxpYi91bml4IC1sJHtMSUJfVE9fTElOS30tXCQoc2hhcmVkX3ZlcnNp
b24pIC1sJHtMSUJfVE9fTElOS31fdW5zaGFyYWJsZSAtbG0iCiAgTElOS19XSVRIX1NUQVRJQ19M
SUJTPW5vCiAgYWxsZWdyb19zaGFyZWRfbGlicmFyaWVzPXllcwogIF9wcm9ncmFtcz0iZHluYW1p
Y2FsbHkgbGlua2VkICRfcHJvZ3JhbXMiCmZpCgoKCgoKCgoKCgpBTExFR1JPX0xJQl9UQVJHRVRT
PQppZiB0ZXN0ICJYJGFsbGVncm9fc3RhdGljX2xpYnJhcmllcyIgPSAiWHllcyI7IHRoZW4KICBf
bGlicmFyaWVzPSIgc3RhdGljIgogIGlmIHRlc3QgIlgkYWxsZWdyb19idWlsZF9ub3JtYWxfbGli
cmFyeSIgPSAiWHllcyI7IHRoZW4KICAgIEFMTEVHUk9fTElCX1RBUkdFVFM9IiRBTExFR1JPX0xJ
Ql9UQVJHRVRTIGxpYi91bml4L2xpYmFsbGVnLmEiCiAgICBfbGlicmFyaWVzPSIkX2xpYnJhcmll
cyByZWxlYXNlIgogIGZpCiAgaWYgdGVzdCAiWCRhbGxlZ3JvX2J1aWxkX2RlYnVnZ2luZ19saWJy
YXJ5IiA9ICJYeWVzIjsgdGhlbgogICAgQUxMRUdST19MSUJfVEFSR0VUUz0iJEFMTEVHUk9fTElC
X1RBUkdFVFMgbGliL3VuaXgvbGliYWxsZC5hIgogICAgX2xpYnJhcmllcz0iJF9saWJyYXJpZXMg
ZGVidWciCiAgZmkKICBpZiB0ZXN0ICJYJGFsbGVncm9fYnVpbGRfcHJvZmlsaW5nX2xpYnJhcnki
ID0gIlh5ZXMiOyB0aGVuCiAgICBBTExFR1JPX0xJQl9UQVJHRVRTPSIkQUxMRUdST19MSUJfVEFS
R0VUUyBsaWIvdW5peC9saWJhbGxwLmEiCiAgICBfbGlicmFyaWVzPSIkX2xpYnJhcmllcyBwcm9m
aWxlIgogIGZpCmZpCmlmIHRlc3QgIlgkYWxsZWdyb19zaGFyZWRfbGlicmFyaWVzIiA9ICJYeWVz
IjsgdGhlbgogIGlmIHRlc3QgLW4gIiRfbGlicmFyaWVzIjsgdGhlbgogICAgX2xpYnJhcmllcz0i
JF9saWJyYXJpZXMsIgogIGZpCgogIF9saWJyYXJpZXM9IiRfbGlicmFyaWVzIHNoYXJlZCIKICBp
ZiB0ZXN0ICJYJGFsbGVncm9fYnVpbGRfbm9ybWFsX2xpYnJhcnkiID0gIlh5ZXMiOyB0aGVuCiAg
ICBBTExFR1JPX0xJQl9UQVJHRVRTPSIkQUxMRUdST19MSUJfVEFSR0VUUyBsaWIvdW5peC9saWJh
bGxlZy1cJChzaGFyZWRfdmVyc2lvbikuc28gbGliL3VuaXgvbGliYWxsZWdfdW5zaGFyYWJsZS5h
IgogICAgX2xpYnJhcmllcz0iJF9saWJyYXJpZXMgcmVsZWFzZSIKICBmaQogIGlmIHRlc3QgIlgk
YWxsZWdyb19idWlsZF9kZWJ1Z2dpbmdfbGlicmFyeSIgPSAiWHllcyI7IHRoZW4KICAgIEFMTEVH
Uk9fTElCX1RBUkdFVFM9IiRBTExFR1JPX0xJQl9UQVJHRVRTIGxpYi91bml4L2xpYmFsbGQtXCQo
c2hhcmVkX3ZlcnNpb24pLnNvIGxpYi91bml4L2xpYmFsbGRfdW5zaGFyYWJsZS5hIgogICAgX2xp
YnJhcmllcz0iJF9saWJyYXJpZXMgZGVidWciCiAgZmkKICBpZiB0ZXN0ICJYJGFsbGVncm9fYnVp
bGRfcHJvZmlsaW5nX2xpYnJhcnkiID0gIlh5ZXMiOyB0aGVuCiAgICBBTExFR1JPX0xJQl9UQVJH
RVRTPSIkQUxMRUdST19MSUJfVEFSR0VUUyBsaWIvdW5peC9saWJhbGxwLVwkKHNoYXJlZF92ZXJz
aW9uKS5zbyBsaWIvdW5peC9saWJhbGxwX3Vuc2hhcmFibGUuYSIKICAgIF9saWJyYXJpZXM9IiRf
bGlicmFyaWVzIHByb2ZpbGUiCiAgZmkKZmkKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCgojIENo
ZWNrIHdoZXRoZXIgLS1lbmFibGUtZGJnLXdpdGgtZm9ydGlmeSB3YXMgZ2l2ZW4uCmlmIHRlc3Qg
IiR7ZW5hYmxlX2RiZ193aXRoX2ZvcnRpZnkrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9
JGVuYWJsZV9kYmdfd2l0aF9mb3J0aWZ5OyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYg
YWxsZWdyb19lbmFibGVfZGVidWdfd2l0aF9mb3J0aWZ5PXllcwpmaQoKCmlmIHRlc3QgLW4gIiRh
bGxlZ3JvX2VuYWJsZV9kZWJ1Z193aXRoX2ZvcnRpZnkiOyB0aGVuCiAgIGlmIHRlc3QgIiR7YWNf
Y3ZfaGVhZGVyX2ZvcnRpZnlfZm9ydGlmeV9oK3NldH0iID0gc2V0OyB0aGVuCiAgeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGZvcnRpZnkvZm9ydGlmeS5oIiA+JjUKZWNobyAk
RUNIT19OICJjaGVja2luZyBmb3IgZm9ydGlmeS9mb3J0aWZ5LmguLi4gJEVDSE9fQyIgPiY2OyB9
CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX2ZvcnRpZnlfZm9ydGlmeV9oK3NldH0iID0gc2V0OyB0
aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZmkKeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX2ZvcnRpZnlfZm9ydGlmeV9oIiA+JjUK
ZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9mb3J0aWZ5X2ZvcnRpZnlfaCIgPiY2OyB9CmVs
c2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
Y2hlY2tpbmcgZm9ydGlmeS9mb3J0aWZ5LmggdXNhYmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBmb3J0aWZ5L2ZvcnRpZnkuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNh
dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNh
dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1
ZGUgPGZvcnRpZnkvZm9ydGlmeS5oPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dApp
ZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpc
YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry
eTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+
JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwog
IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRl
c3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/
ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXog
IiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0g
JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVy
PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdz
L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2hlYWRlcl9jb21waWxlcj1ubwpmaQoK
cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf
ZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIg
PiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNjsgfQoKIyBJcyB0aGUg
aGVhZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvcnRpZnkv
Zm9ydGlmeS5oIHByZXNlbmNlIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3J0aWZ5L2Zv
cnRpZnkuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0
IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25m
dGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZk
ZWZzLmguICAqLwojaW5jbHVkZSA8Zm9ydGlmeS9mb3J0aWZ5Lmg+Cl9BQ0VPRgppZiB7IChhY190
cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiog
fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRh
Y190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi
IikgPiY1CiAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIx
CiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l
cnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRh
c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsg
fSA+L2Rldi9udWxsICYmIHsKCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19j
X3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH07IHRoZW4K
ICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy
YW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVh
ZGVyX3ByZXByb2M9bm8KZmkKCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Cnsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKZWNo
byAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0KCiMgU28/ICBXaGF0IGFib3V0
IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9j
OiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCiAgeWVzOm5vOiApCiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiBmb3J0aWZ5L2ZvcnRpZnkuaDogYWNjZXB0ZWQgYnkgdGhlIGNv
bXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogZm9ydGlmeS9mb3J0aWZ5Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVq
ZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiBmb3J0aWZ5L2ZvcnRpZnkuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21w
aWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogZm9ydGlmeS9mb3J0aWZ5
Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CiAgICBhY19o
ZWFkZXJfcHJlcHJvYz15ZXMKICAgIDs7CiAgbm86eWVzOiogKQogICAgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogV0FSTklORzogZm9ydGlmeS9mb3J0aWZ5Lmg6IHByZXNlbnQgYnV0IGNhbm5vdCBi
ZSBjb21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogZm9ydGlmeS9mb3J0aWZ5Lmg6
IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6IGZvcnRpZnkvZm9ydGlmeS5oOiAgICAgY2hlY2sgZm9yIG1pc3Np
bmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBmb3J0
aWZ5L2ZvcnRpZnkuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJz
PyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGZvcnRpZnkvZm9y
dGlmeS5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQplY2hvICIkYXNfbWU6
IFdBUk5JTkc6IGZvcnRpZnkvZm9ydGlmeS5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRp
b24iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBmb3J0aWZ5L2Zv
cnRpZnkuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIg
PiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogZm9ydGlmeS9mb3J0aWZ5Lmg6ICAgICBzZWN0aW9u
IFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICB7IGVjaG8gIiRh
c19tZTokTElORU5POiBXQVJOSU5HOiBmb3J0aWZ5L2ZvcnRpZnkuaDogcHJvY2VlZGluZyB3aXRo
IHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGZv
cnRpZnkvZm9ydGlmeS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3Vs
dCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGZvcnRpZnkvZm9y
dGlmeS5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2Ui
ID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGZvcnRpZnkvZm9ydGlmeS5oOiBpbiB0aGUgZnV0
dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mMjt9CgogICAgOzsKZXNh
Ywp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZm9ydGlmeS9mb3J0aWZ5Lmgi
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBmb3J0aWZ5L2ZvcnRpZnkuaC4uLiAkRUNI
T19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfZm9ydGlmeV9mb3J0aWZ5X2grc2V0
fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNl
CiAgYWNfY3ZfaGVhZGVyX2ZvcnRpZnlfZm9ydGlmeV9oPSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7
IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfZm9ydGlmeV9mb3J0
aWZ5X2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX2ZvcnRpZnlfZm9ydGlmeV9o
IiA+JjY7IH0KCmZpCmlmIHRlc3QgJGFjX2N2X2hlYWRlcl9mb3J0aWZ5X2ZvcnRpZnlfaCA9IHll
czsgdGhlbgogIGFsbGVncm9fZGVidWdfd2l0aF9mb3J0aWZ5PXllcwpmaQoKCmZpCgppZiB0ZXN0
IC1uICIkYWxsZWdyb19kZWJ1Z193aXRoX2ZvcnRpZnkiOyB0aGVuCiAgTElCUz0iJExJQlMgLWxm
b3J0aWZ5IgpmaQoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRiZy13aXRoLWRtYWxsb2Mgd2Fz
IGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9kYmdfd2l0aF9kbWFsbG9jK3NldH0iID0gc2V0OyB0
aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfZGJnX3dpdGhfZG1hbGxvYzsgdGVzdCAiWCRlbmFibGV2
YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2RlYnVnX3dpdGhfZG1hbGxvYz15ZXMKZmkK
CgppZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfZGVidWdfd2l0aF9kbWFsbG9jIjsgdGhlbgog
ICBpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9kbWFsbG9jX2grc2V0fSIgPSBzZXQ7IHRoZW4KICB7
IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZG1hbGxvYy5oIiA+JjUKZWNobyAk
RUNIT19OICJjaGVja2luZyBmb3IgZG1hbGxvYy5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0
ICIke2FjX2N2X2hlYWRlcl9kbWFsbG9jX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hP
X04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1
bHQ6ICRhY19jdl9oZWFkZXJfZG1hbGxvY19oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hl
YWRlcl9kbWFsbG9jX2giID4mNjsgfQplbHNlCiAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/
CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRtYWxsb2MuaCB1c2FiaWxpdHkiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIGRtYWxsb2MuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIg
PiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8K
X0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1
bHQKI2luY2x1ZGUgPGRtYWxsb2MuaD4KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK
aWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAq
XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190
cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikg
PiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8K
ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0
ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwk
PyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16
ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9
ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFjX2hlYWRlcl9jb21waWxl
cj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAn
cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhY19oZWFkZXJfY29tcGlsZXI9bm8KZmkK
CnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj
X2V4dAp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIi
ID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KCiMgSXMgdGhl
IGhlYWRlciBwcmVzZW50Pwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkbWFsbG9j
LmggcHJlc2VuY2UiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGRtYWxsb2MuaCBwcmVzZW5j
ZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNv
bmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNh
dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5j
bHVkZSA8ZG1hbGxvYy5oPgpfQUNFT0YKaWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRh
Y19leHQiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l
Y2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hv
IFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY3Bw
IGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAg
LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIx
CiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj
X3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CgkgdGVz
dCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0
ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9OyB0aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVz
CmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98
IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgogIGFjX2hlYWRlcl9wcmVwcm9jPW5vCmZpCgpybSAt
ZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAp7IGVjaG8gIiRhc19tZTokTElORU5POiBy
ZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJf
cHJlcHJvYyIgPiY2OyB9CgojIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KY2FzZSAkYWNf
aGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxh
ZyBpbgogIHllczpubzogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogZG1h
bGxvYy5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9j
ZXNzb3IhIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkbWFsbG9jLmg6IGFjY2VwdGVkIGJ5
IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7
IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBkbWFsbG9jLmg6IHByb2NlZWRpbmcgd2l0
aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGRtYWxs
b2MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KICAgIGFj
X2hlYWRlcl9wcmVwcm9jPXllcwogICAgOzsKICBubzp5ZXM6KiApCiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiBkbWFsbG9jLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21w
aWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogZG1hbGxvYy5oOiBwcmVzZW50IGJ1dCBj
YW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJO
SU5HOiBkbWFsbG9jLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVy
cz8iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGRtYWxsb2MuaDogICAgIGNoZWNrIGZvciBt
aXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRM
SU5FTk86IFdBUk5JTkc6IGRtYWxsb2MuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9u
IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkbWFsbG9jLmg6IHNlZSB0aGUgQXV0b2NvbmYg
ZG9jdW1lbnRhdGlvbiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IGRtYWxsb2MuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRc
IiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogZG1hbGxvYy5oOiAgICAgc2VjdGlvbiBcIlBy
ZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogV0FSTklORzogZG1hbGxvYy5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nl
c3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogZG1hbGxvYy5oOiBwcm9j
ZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRtYWxsb2MuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNv
bXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBk
bWFsbG9jLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5j
ZSIgPiYyO30KCiAgICA7Owplc2FjCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv
ciBkbWFsbG9jLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBkbWFsbG9jLmguLi4g
JEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX2RtYWxsb2NfaCtzZXR9IiA9
IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBh
Y19jdl9oZWFkZXJfZG1hbGxvY19oPSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7IGVjaG8gIiRhc19t
ZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfZG1hbGxvY19oIiA+JjUKZWNobyAiJHtF
Q0hPX1R9JGFjX2N2X2hlYWRlcl9kbWFsbG9jX2giID4mNjsgfQoKZmkKaWYgdGVzdCAkYWNfY3Zf
aGVhZGVyX2RtYWxsb2NfaCA9IHllczsgdGhlbgogIGFsbGVncm9fZGVidWdfd2l0aF9kbWFsbG9j
PXllcwpmaQoKCmZpCgppZiB0ZXN0IC1uICIkYWxsZWdyb19kZWJ1Z193aXRoX2RtYWxsb2MiOyB0
aGVuCiAgTElCUz0iJExJQlMgLWxkbWFsbG9jIgpmaQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwoK
IyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXB0aHJlYWRzIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtl
bmFibGVfcHRocmVhZHMrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9wdGhy
ZWFkczsgdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX3B0aHJl
YWRzPXllcwplbHNlCiAgYWxsZWdyb19lbmFibGVfcHRocmVhZHM9eWVzCmZpCgoKX2RvX3B0aHJl
YWQ9Im5vIgppZiB0ZXN0ICJYJGFsbGVncm9fZW5hYmxlX3B0aHJlYWRzIiA9ICJYeWVzIjsgdGhl
bgogIGlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3B0aHJlYWRfaCtzZXR9IiA9IHNldDsgdGhlbgog
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBwdGhyZWFkLmgiID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nIGZvciBwdGhyZWFkLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRl
c3QgIiR7YWNfY3ZfaGVhZGVyX3B0aHJlYWRfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVD
SE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2N2X2hlYWRlcl9wdGhyZWFkX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3Zf
aGVhZGVyX3B0aHJlYWRfaCIgPiY2OyB9CmVsc2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJs
ZT8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgcHRocmVhZC5oIHVzYWJpbGl0eSIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgcHRocmVhZC5oIHVzYWJpbGl0eS4uLiAkRUNIT19D
IiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAq
LwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0
LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVm
YXVsdAojaW5jbHVkZSA8cHRocmVhZC5oPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4
dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8
ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFj
X3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi
KSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0k
PwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29u
ZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3Qg
LXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAg
IH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBp
bGVyPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2Vk
ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2hlYWRlcl9jb21waWxlcj1ubwpm
aQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k
YWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxl
ciIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNjsgfQoKIyBJcyB0
aGUgaGVhZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHB0aHJl
YWQuaCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgcHRocmVhZC5oIHByZXNl
bmNlLi4uICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
Y29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK
Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNp
bmNsdWRlIDxwdGhyZWFkLmg+Cl9BQ0VPRgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu
JGFjX2V4dCIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5
X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVj
aG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19j
cHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3Jl
cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5l
cjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0
ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRl
c3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH07IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15
ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9e
L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKCnJt
IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRl
cl9wcmVwcm9jIiA+JjY7IH0KCiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRh
Y19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9m
bGFnIGluCiAgeWVzOm5vOiApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBw
dGhyZWFkLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXBy
b2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHB0aHJlYWQuaDogYWNjZXB0ZWQg
YnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHB0aHJlYWQuaDogcHJvY2VlZGluZyB3
aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogcHRo
cmVhZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAg
YWNfaGVhZGVyX3ByZXByb2M9eWVzCiAgICA7OwogIG5vOnllczoqICkKICAgIHsgZWNobyAiJGFz
X21lOiRMSU5FTk86IFdBUk5JTkc6IHB0aHJlYWQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNv
bXBpbGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBwdGhyZWFkLmg6IHByZXNlbnQgYnV0
IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdB
Uk5JTkc6IHB0aHJlYWQuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFk
ZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogcHRocmVhZC5oOiAgICAgY2hlY2sgZm9y
IG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogV0FSTklORzogcHRocmVhZC5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRp
b24iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHB0aHJlYWQuaDogc2VlIHRoZSBBdXRvY29u
ZiBkb2N1bWVudGF0aW9uIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO
RzogcHRocmVhZC5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxl
ZFwiIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBwdGhyZWFkLmg6ICAgICBzZWN0aW9uIFwi
UHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiBwdGhyZWFkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJv
Y2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBwdGhyZWFkLmg6IHBy
b2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogcHRocmVhZC5oOiBpbiB0aGUgZnV0dXJlLCB0aGUg
Y29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6
IHB0aHJlYWQuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRl
bmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg
Zm9yIHB0aHJlYWQuaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHB0aHJlYWQuaC4u
LiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfcHRocmVhZF9oK3NldH0i
ID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQog
IGFjX2N2X2hlYWRlcl9wdGhyZWFkX2g9JGFjX2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9wdGhyZWFkX2giID4mNQplY2hvICIk
e0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3B0aHJlYWRfaCIgPiY2OyB9CgpmaQppZiB0ZXN0ICRhY19j
dl9oZWFkZXJfcHRocmVhZF9oID0geWVzOyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
Y2hlY2tpbmcgZm9yIHB0aHJlYWRfY3JlYXRlIGluIC1scHRocmVhZCIgPiY1CmVjaG8gJEVDSE9f
TiAiY2hlY2tpbmcgZm9yIHB0aHJlYWRfY3JlYXRlIGluIC1scHRocmVhZC4uLiAkRUNIT19DIiA+
JjY7IH0KaWYgdGVzdCAiJHthY19jdl9saWJfcHRocmVhZF9wdGhyZWFkX2NyZWF0ZStzZXR9IiA9
IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBh
Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1scHRocmVhZCAgJExJQlMiCmNhdCA+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBj
b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwg
cHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo
dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg
YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNw
bHVzCmV4dGVybiAiQyIKI2VuZGlmCmNoYXIgcHRocmVhZF9jcmVhdGUgKCk7CmludAptYWluICgp
CnsKcmV0dXJuIHB0aHJlYWRfY3JlYXRlICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0g
LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIk
YWNfbGluayIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5
X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVj
aG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19s
aW5rIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25m
dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVz
dC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIg
fHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk
YWNfZXhlZXh0ICYmCiAgICAgICAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgog
IGFjX2N2X2xpYl9wdGhyZWFkX3B0aHJlYWRfY3JlYXRlPXllcwplbHNlCiAgZWNobyAiJGFzX21l
OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0
ID4mNQoKCWFjX2N2X2xpYl9wdGhyZWFkX3B0aHJlYWRfY3JlYXRlPW5vCmZpCgpybSAtZiBjb3Jl
IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qu
b28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJTPSRhY19j
aGVja19saWJfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj
X2N2X2xpYl9wdGhyZWFkX3B0aHJlYWRfY3JlYXRlIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2
X2xpYl9wdGhyZWFkX3B0aHJlYWRfY3JlYXRlIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfbGliX3B0
aHJlYWRfcHRocmVhZF9jcmVhdGUgPSB5ZXM7IHRoZW4KICBMSUJTPSItbHB0aHJlYWQgJExJQlMi
CmFsbGVncm9fY3Zfc3VwcG9ydF9wdGhyZWFkcz15ZXMKZmkKCmZpCgoKICBpZiB0ZXN0ICJYJGFs
bGVncm9fY3Zfc3VwcG9ydF9wdGhyZWFkcyIgPSAiWHllcyI7IHRoZW4KCmNhdCA+PmNvbmZkZWZz
LmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19IQVZFX0xJQlBUSFJFQUQgMQpfQUNFT0YKCiAg
ICBfZG9fcHRocmVhZD0ieWVzIgogIGZpCmZpCgppZiB0ZXN0ICIkX2RvX3B0aHJlYWQiID0geWVz
OyB0aGVuCiAgX2NvZGVfZmVhdHVyZXM9Im11bHRpdGhyZWFkZWQsICRfY29kZV9mZWF0dXJlcyIK
ZWxzZQogIF9jb2RlX2ZlYXR1cmVzPSJzaWduYWxzIGluc3RlYWQgb2YgdGhyZWFkcywgJF9jb2Rl
X2ZlYXR1cmVzIgpmaQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwojCiMgU291bmQgZHJpdmVycwoj
CgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtb3NzZGlnaSB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7
ZW5hYmxlX29zc2RpZ2krc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9vc3Nk
aWdpOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfb3NzZGln
aT15ZXMKZWxzZQogIGFsbGVncm9fZW5hYmxlX29zc2RpZ2k9eWVzCmZpCgoKaWYgdGVzdCAtbiAi
JGFsbGVncm9fZW5hYmxlX29zc2RpZ2kiOyB0aGVuCiAgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJf
c291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBj
aGVja2luZyBmb3Igc291bmRjYXJkLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBz
b3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc291
bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP
X0MiID4mNgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJf
c291bmRjYXJkX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3NvdW5kY2FyZF9o
IiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwp7IGVjaG8gIiRhc19t
ZTokTElORU5POiBjaGVja2luZyBzb3VuZGNhcmQuaCB1c2FiaWxpdHkiID4mNQplY2hvICRFQ0hP
X04gImNoZWNraW5nIHNvdW5kY2FyZC5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0
ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0
IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf
QUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5jbHVk
ZSA8c291bmRjYXJkLmg+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFj
X3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpc
XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNh
YwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChl
dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAt
diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEK
ICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nf
d2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0
IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8n
IGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBj
b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNo
byAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIg
cHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc291bmRjYXJkLmggcHJl
c2VuY2UiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHNvdW5kY2FyZC5oIHByZXNlbmNlLi4u
ICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRl
ZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRl
IDxzb3VuZGNhcmQuaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNf
ZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo
bz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBc
IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBj
b25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12
ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQog
IGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3Qg
LXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAh
IC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwpl
bHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAv
JyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYg
Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3By
ZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hl
YWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcg
aW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHNvdW5k
Y2FyZC5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9j
ZXNzb3IhIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzb3VuZGNhcmQuaDogYWNjZXB0ZWQg
YnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiBwcm9jZWVkaW5n
IHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBz
b3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30K
ICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogICAgOzsKICBubzp5ZXM6KiApCiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzb3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90
IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzb3VuZGNhcmQuaDogcHJl
c2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogV0FSTklORzogc291bmRjYXJkLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1
aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiAg
ICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQogICAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc291bmRjYXJkLmg6IHNlZSB0aGUgQXV0b2Nv
bmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc291bmRjYXJkLmg6
IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0
IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzb3VuZGNh
cmQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYy
O30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiBwcm9j
ZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogc291bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3Mg
cmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc291bmRj
YXJkLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIg
PiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc291bmRjYXJkLmg6IGluIHRoZSBmdXR1cmUsIHRo
ZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KCiAgICA7Owplc2FjCnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzb3VuZGNhcmQuaCIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgZm9yIHNvdW5kY2FyZC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0
ICIke2FjX2N2X2hlYWRlcl9zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVD
SE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jdl9oZWFkZXJfc291bmRjYXJk
X2g9JGFjX2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
JGFjX2N2X2hlYWRlcl9zb3VuZGNhcmRfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFk
ZXJfc291bmRjYXJkX2giID4mNjsgfQoKZmkKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3NvdW5kY2Fy
ZF9oID0geWVzOyB0aGVuCgogICAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBB
TExFR1JPX0hBVkVfU09VTkRDQVJEX0ggMQpfQUNFT0YKCiAgICBhbGxlZ3JvX3N1cHBvcnRfb3Nz
ZGlnaT15ZXMKCmZpCgoKICBpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2gr
c2V0fSIgPSBzZXQ7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig
c3lzL3NvdW5kY2FyZC5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL3NvdW5k
Y2FyZC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc291
bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP
X0MiID4mNgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJf
c3lzX3NvdW5kY2FyZF9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfc291
bmRjYXJkX2giID4mNjsgfQplbHNlCiAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHN5cy9zb3VuZGNhcmQuaCB1c2FiaWxpdHkiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIHN5cy9zb3VuZGNhcmQuaCB1c2FiaWxpdHkuLi4gJEVD
SE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5o
LiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVz
X2RlZmF1bHQKI2luY2x1ZGUgPHN5cy9zb3VuZGNhcmQuaD4KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0
LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBp
bgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3Ry
eV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190
cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBh
Y19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgog
IHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYm
IHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3Qu
ZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFjX2hl
YWRlcl9jb21waWxlcj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz
OiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhY19oZWFkZXJfY29t
cGlsZXI9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QuJGFjX2V4dAp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFk
ZXJfY29tcGlsZXIiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7
IH0KCiMgSXMgdGhlIGhlYWRlciBwcmVzZW50Pwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVj
a2luZyBzeXMvc291bmRjYXJkLmggcHJlc2VuY2UiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5n
IHN5cy9zb3VuZGNhcmQuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZz
LmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
ZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL3NvdW5kY2FyZC5oPgpfQUNFT0YKaWYg
eyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCmNhc2UgIigoJGFjX3RyeSIgaW4K
ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlf
ZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5
X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0
ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u
ZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0
YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CgkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2Zs
YWckYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9
OyB0aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cgog
IGFjX2hlYWRlcl9wcmVwcm9jPW5vCmZpCgpybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj
X2V4dAp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIg
PiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2OyB9CgojIFNvPyAgV2hh
dCBhYm91dCB0aGlzIGhlYWRlcj8KY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJf
cHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbgogIHllczpubzogKQogICAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBhY2NlcHRlZCBieSB0
aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKZWNobyAiJGFz
X21lOiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwg
cmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTok
TElORU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29t
cGlsZXIncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQu
aDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KICAgIGFjX2hl
YWRlcl9wcmVwcm9jPXllcwogICAgOzsKICBubzp5ZXM6KiApCiAgICB7IGVjaG8gIiRhc19tZTok
TElORU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBj
b21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcmVz
ZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVy
ZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zb3VuZGNh
cmQuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30K
ICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogc2Vl
IHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBz
eXMvc291bmRjYXJkLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogICAgIHNl
Y3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19t
ZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENh
bm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogc3lzL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nvcidz
IHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcm9j
ZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogaW4gdGhlIGZ1dHVyZSwg
dGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKZWNobyAiJGFzX21lOiBXQVJO
SU5HOiBzeXMvc291bmRjYXJkLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh
a2UgcHJlY2VkZW5jZSIgPiYyO30KCiAgICA7Owplc2FjCnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGNoZWNraW5nIGZvciBzeXMvc291bmRjYXJkLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5n
IGZvciBzeXMvc291bmRjYXJkLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3Zf
aGVhZGVyX3N5c19zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAi
KGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9o
PSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh
Y19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hl
YWRlcl9zeXNfc291bmRjYXJkX2giID4mNjsgfQoKZmkKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N5
c19zb3VuZGNhcmRfaCA9IHllczsgdGhlbgoKICAgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9G
CiNkZWZpbmUgQUxMRUdST19IQVZFX1NZU19TT1VORENBUkRfSCAxCl9BQ0VPRgoKICAgIGFsbGVn
cm9fc3VwcG9ydF9vc3NkaWdpPXllcwoKZmkKCgogIGlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX21h
Y2hpbmVfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBjaGVja2luZyBmb3IgbWFjaGluZS9zb3VuZGNhcmQuaCIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgZm9yIG1hY2hpbmUvc291bmRjYXJkLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRl
c3QgIiR7YWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpmaQp7IGVjaG8gIiRhc19tZTok
TElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCIgPiY1CmVj
aG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCIgPiY2OyB9CmVs
c2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
Y2hlY2tpbmcgbWFjaGluZS9zb3VuZGNhcmQuaCB1c2FiaWxpdHkiID4mNQplY2hvICRFQ0hPX04g
ImNoZWNraW5nIG1hY2hpbmUvc291bmRjYXJkLmggdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNjsg
fQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VP
RgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiRhY19pbmNsdWRlc19kZWZhdWx0CiNp
bmNsdWRlIDxtYWNoaW5lL3NvdW5kY2FyZC5oPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwi
KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89
JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv
XCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1
cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYg
Y29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRl
c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAg
ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNfaGVhZGVyX2Nv
bXBpbGVyPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK
c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2hlYWRlcl9jb21waWxlcj1u
bwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21w
aWxlciIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNjsgfQoKIyBJ
cyB0aGUgaGVhZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIG1h
Y2hpbmUvc291bmRjYXJkLmggcHJlc2VuY2UiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIG1h
Y2hpbmUvc291bmRjYXJkLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVm
cy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPG1hY2hpbmUvc291bmRjYXJkLmg+Cl9BQ0VP
RgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKY2FzZSAiKCgkYWNfdHJ5
IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFj
X3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRh
Y190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+
Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx
ID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4m
NQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dh
cm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAg
ICAgIH07IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTog
ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+
JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVw
cm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0KCiMgU28/
ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hl
YWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCiAgeWVzOm5vOiApCiAgICB7
IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBhY2Nl
cHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUK
ZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBhY2NlcHRlZCBieSB0
aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJvY2Vl
ZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklO
RzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJl
c3VsdCIgPiYyO30KICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogICAgOzsKICBubzp5ZXM6KiAp
CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5o
OiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6IG1hY2hpbmUvc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1hY2hpbmUvc291bmRj
YXJkLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQpl
Y2hvICIkYXNfbWU6IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6ICAgICBjaGVjayBmb3Ig
bWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTok
TElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBzZWUgdGhlIEF1dG9jb25mIGRv
Y3VtZW50YXRpb24iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJk
Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KICAgIHsgZWNobyAiJGFz
X21lOiRMSU5FTk86IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6ICAgICBzZWN0aW9uIFwi
UHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6IG1hY2hpbmUvc291bmRjYXJkLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90
IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nvcidz
IHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDog
cHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICB7IGVj
aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBpbiB0aGUg
ZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQplY2hvICIkYXNf
bWU6IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21w
aWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KCiAgICA7Owplc2FjCnsgZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oIiA+JjUKZWNobyAk
RUNIT19OICJjaGVja2luZyBmb3IgbWFjaGluZS9zb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjY7
IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCtzZXR9IiA9IHNl
dDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19j
dl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaD0kYWNfaGVhZGVyX3ByZXByb2MKZmkKeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJk
X2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2gi
ID4mNjsgfQoKZmkKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2ggPSB5
ZXM7IHRoZW4KCiAgICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9f
SEFWRV9NQUNISU5FX1NPVU5EQ0FSRF9IIDEKX0FDRU9GCgogICAgYWxsZWdyb19zdXBwb3J0X29z
c2RpZ2k9eWVzCgpmaQoKCiAgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbGludXhfc291bmRjYXJk
X2grc2V0fSIgPSBzZXQ7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm
b3IgbGludXgvc291bmRjYXJkLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsaW51
eC9zb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJf
bGludXhfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNo
ZWQpICRFQ0hPX0MiID4mNgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j
dl9oZWFkZXJfbGludXhfc291bmRjYXJkX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVh
ZGVyX2xpbnV4X3NvdW5kY2FyZF9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21w
aWxhYmxlPwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBsaW51eC9zb3VuZGNhcmQu
aCB1c2FiaWxpdHkiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGxpbnV4L3NvdW5kY2FyZC5o
IHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5jbHVkZSA8bGludXgvc291bmRjYXJkLmg+Cl9B
Q0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRh
c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIp
IDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu
ZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJy
ID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Cgkg
dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v
YmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6
IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg
PiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj
b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hl
YWRlcl9jb21waWxlciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbGludXgvc291bmRjYXJkLmggcHJlc2VuY2UiID4mNQpl
Y2hvICRFQ0hPX04gImNoZWNraW5nIGxpbnV4L3NvdW5kY2FyZC5oIHByZXNlbmNlLi4uICRFQ0hP
X0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4g
ICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxsaW51
eC9zb3VuZGNhcmQuaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNf
ZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo
bz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBc
IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBj
b25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12
ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQog
IGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3Qg
LXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAh
IC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwpl
bHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAv
JyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYg
Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3By
ZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hl
YWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcg
aW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4
L3NvdW5kY2FyZC5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBw
cmVwcm9jZXNzb3IhIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBsaW51eC9zb3VuZGNhcmQu
aDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29y
ISIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L3NvdW5k
Y2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAi
JGFzX21lOiBXQVJOSU5HOiBsaW51eC9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBj
b21waWxlcidzIHJlc3VsdCIgPiYyO30KICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogICAgOzsK
ICBubzp5ZXM6KiApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9z
b3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFz
X21lOiBXQVJOSU5HOiBsaW51eC9zb3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNv
bXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGludXgv
c291bmRjYXJkLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8i
ID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L3NvdW5kY2FyZC5oOiAgICAgY2hlY2sg
Zm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQogICAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogV0FSTklORzogbGludXgvc291bmRjYXJkLmg6IHNlZSB0aGUgQXV0b2NvbmYg
ZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvc291bmRjYXJk
Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KICAgIHsgZWNobyAiJGFz
X21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L3NvdW5kY2FyZC5oOiAgICAgc2VjdGlvbiBcIlBy
ZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiBsaW51eC9zb3VuZGNhcmQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUg
Q29tcGlsZWRcIiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxp
bnV4L3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3Vs
dCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvc291bmRjYXJkLmg6IHByb2NlZWRp
bmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogV0FSTklORzogbGludXgvc291bmRjYXJkLmg6IGluIHRoZSBmdXR1cmUsIHRo
ZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklO
RzogbGludXgvc291bmRjYXJkLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh
a2UgcHJlY2VkZW5jZSIgPiYyO30KCiAgICA7Owplc2FjCnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGNoZWNraW5nIGZvciBsaW51eC9zb3VuZGNhcmQuaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tp
bmcgZm9yIGxpbnV4L3NvdW5kY2FyZC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2Fj
X2N2X2hlYWRlcl9saW51eF9zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVD
SE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jdl9oZWFkZXJfbGludXhfc291
bmRjYXJkX2g9JGFjX2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2N2X2hlYWRlcl9saW51eF9zb3VuZGNhcmRfaCIgPiY1CmVjaG8gIiR7RUNIT19U
fSRhY19jdl9oZWFkZXJfbGludXhfc291bmRjYXJkX2giID4mNjsgfQoKZmkKaWYgdGVzdCAkYWNf
Y3ZfaGVhZGVyX2xpbnV4X3NvdW5kY2FyZF9oID0geWVzOyB0aGVuCgogICAgY2F0ID4+Y29uZmRl
ZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX0hBVkVfTElOVVhfU09VTkRDQVJEX0ggMQpf
QUNFT0YKCiAgICBhbGxlZ3JvX3N1cHBvcnRfb3NzZGlnaT15ZXMKCmZpCgoKCgp7IGVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyBmb3IgX29zc19pb2N0bCBpbiAtbG9zc2F1ZGlvIiA+JjUK
ZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgX29zc19pb2N0bCBpbiAtbG9zc2F1ZGlvLi4uICRF
Q0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2xpYl9vc3NhdWRpb19fb3NzX2lvY3RsK3Nl
dH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxz
ZQogIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKTElCUz0iLWxvc3NhdWRpbyAgJExJQlMi
CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9G
CmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0
IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50
ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGlu
dCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhl
biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9f
Y3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCmNoYXIgX29zc19pb2N0bCAoKTsKaW50Cm1haW4g
KCkKewpyZXR1cm4gX29zc19pb2N0bCAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1m
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFj
X2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l
Y2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hv
IFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGlu
ayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRl
c3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3Qu
ZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8
CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj
X2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBh
Y19jdl9saWJfb3NzYXVkaW9fX29zc19pb2N0bD15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFp
bGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK
CglhY19jdl9saWJfb3NzYXVkaW9fX29zc19pb2N0bD1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVz
dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKICAg
ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tfbGli
X3NhdmVfTElCUwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJf
b3NzYXVkaW9fX29zc19pb2N0bCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9saWJfb3NzYXVk
aW9fX29zc19pb2N0bCIgPiY2OyB9CmlmIHRlc3QgJGFjX2N2X2xpYl9vc3NhdWRpb19fb3NzX2lv
Y3RsID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIEhBVkVf
TElCT1NTQVVESU8gMQpfQUNFT0YKCiAgTElCUz0iLWxvc3NhdWRpbyAkTElCUyIKCmZpCgpmaQoK
aWYgdGVzdCAtbiAiJGFsbGVncm9fc3VwcG9ydF9vc3NkaWdpIjsgdGhlbgoKY2F0ID4+Y29uZmRl
ZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX1dJVEhfT1NTRElHSSAxCl9BQ0VPRgoKICBf
ZW5hYmxlZF9tb2R1bGVzPSJvc3NkaWdpICRfZW5hYmxlZF9tb2R1bGVzIgplbHNlCiAgX2Rpc2Fi
bGVkX21vZHVsZXM9Im9zc2RpZ2kgJF9kaXNhYmxlZF9tb2R1bGVzIgpmaQoKIyBDaGVjayB3aGV0
aGVyIC0tZW5hYmxlLW9zc21pZGkgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9vc3NtaWRp
K3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfb3NzbWlkaTsgdGVzdCAiWCRl
bmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX29zc21pZGk9eWVzCmVsc2UKICBh
bGxlZ3JvX2VuYWJsZV9vc3NtaWRpPXllcwpmaQoKCmlmIHRlc3QgLW4gIiRhbGxlZ3JvX2VuYWJs
ZV9vc3NtaWRpIjsgdGhlbgogIGlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3NvdW5kY2FyZF9oK3Nl
dH0iID0gc2V0OyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNv
dW5kY2FyZC5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc291bmRjYXJkLmguLi4g
JEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3NvdW5kY2FyZF9oK3NldH0i
ID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZmkKeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3NvdW5kY2FyZF9oIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zb3VuZGNhcmRfaCIgPiY2OyB9CmVsc2UK
ICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgc291bmRjYXJkLmggdXNhYmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBz
b3VuZGNhcmQuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+
Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPHNvdW5kY2FyZC5o
PgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21w
aWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo
bz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBc
IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBp
bGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0
ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0
LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAg
KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8
fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k
YWNfb2JqZXh0OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNobyAiJGFz
X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf
ZXh0ID4mNQoKCWFjX2hlYWRlcl9jb21waWxlcj1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5l
cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19UfSRh
Y19oZWFkZXJfY29tcGlsZXIiID4mNjsgfQoKIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHNvdW5kY2FyZC5oIHByZXNlbmNlIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyBzb3VuZGNhcmQuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7
IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNF
T0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19l
eHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c291bmRjYXJkLmg+
Cl9BQ0VPRgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKY2FzZSAiKCgk
YWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owog
ICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5F
Tk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4
dCIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRl
c3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3Qu
ZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0ZXN0IC16ICIkYWNfY19wcmVw
cm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5l
cnIKICAgICAgIH07IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj
X2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKCnJtIC1mIGNvbmZ0ZXN0LmVyciBj
b25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRl
cl9wcmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0K
CiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6
JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCiAgeWVzOm5vOiAp
CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzb3VuZGNhcmQuaDogYWNjZXB0
ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CmVj
aG8gIiRhc19tZTogV0FSTklORzogc291bmRjYXJkLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxl
ciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiBzb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21w
aWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc291bmRjYXJkLmg6IHBy
b2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CiAgICBhY19oZWFkZXJf
cHJlcHJvYz15ZXMKICAgIDs7CiAgbm86eWVzOiogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogV0FSTklORzogc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIg
PiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5v
dCBiZSBjb21waWxlZCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IHNvdW5kY2FyZC5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/
IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzb3VuZGNhcmQuaDogICAgIGNoZWNrIGZvciBt
aXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRM
SU5FTk86IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRp
b24iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiBzZWUgdGhlIEF1dG9j
b25mIGRvY3VtZW50YXRpb24iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJO
SU5HOiBzb3VuZGNhcmQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29t
cGlsZWRcIiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc291bmRjYXJkLmg6ICAgICBzZWN0
aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRo
ZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHNvdW5k
Y2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30K
ICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiBpbiB0aGUg
ZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQplY2hvICIkYXNf
bWU6IFdBUk5JTkc6IHNvdW5kY2FyZC5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2ls
bCB0YWtlIHByZWNlZGVuY2UiID4mMjt9CgogICAgOzsKZXNhYwp7IGVjaG8gIiRhc19tZTokTElO
RU5POiBjaGVja2luZyBmb3Igc291bmRjYXJkLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5n
IGZvciBzb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFk
ZXJfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQp
ICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY3ZfaGVhZGVyX3NvdW5kY2FyZF9oPSRhY19oZWFkZXJf
cHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJf
c291bmRjYXJkX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3NvdW5kY2FyZF9o
IiA+JjY7IH0KCmZpCmlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zb3VuZGNhcmRfaCA9IHllczsgdGhl
bgogIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19IQVZFX1NPVU5E
Q0FSRF9IIDEKX0FDRU9GCgpmaQoKCiAgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3NvdW5k
Y2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgZm9yIHN5cy9zb3VuZGNhcmQuaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5
cy9zb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJf
c3lzX3NvdW5kY2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVk
KSAkRUNIT19DIiA+JjYKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf
aGVhZGVyX3N5c19zb3VuZGNhcmRfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJf
c3lzX3NvdW5kY2FyZF9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxl
Pwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvc291bmRjYXJkLmggdXNhYmls
aXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvc291bmRjYXJkLmggdXNhYmlsaXR5
Li4uICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29u
ZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0
ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiRhY19p
bmNsdWRlc19kZWZhdWx0CiNpbmNsdWRlIDxzeXMvc291bmRjYXJkLmg+Cl9BQ0VPRgpybSAtZiBj
b25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFj
X3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAq
KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5P
OiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3Qu
ZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz
dC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVz
KTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNv
bmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K
ICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n
cmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVh
ZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk
YWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxl
ciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgc3lzL3NvdW5kY2FyZC5oIHByZXNlbmNlIiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBzeXMvc291bmRjYXJkLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBj
b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN5cy9zb3VuZGNhcmQuaD4KX0FD
RU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgpjYXNlICIoKCRhY190
cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikg
YWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzog
JGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Iikg
Mj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l
cjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIg
PiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0
ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nf
d2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgog
ICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFzX21l
OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0
ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0
ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3By
ZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQoKIyBT
bz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNf
aGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KICB5ZXM6bm86ICkKICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogYWNjZXB0
ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CmVj
aG8gIiRhc19tZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBhY2NlcHRlZCBieSB0aGUgY29t
cGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAgeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGgg
dGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc291
bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CiAg
ICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKICAgIDs7CiAgbm86eWVzOiogKQogICAgeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcmVzZW50IGJ1dCBjYW5u
b3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQu
aDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiAgICAgY2hlY2sgZm9yIG1pc3Np
bmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMv
c291bmRjYXJkLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8i
ID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJk
Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTogV0FS
TklORzogc3lzL3NvdW5kY2FyZC5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4m
Mjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6
ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQplY2hv
ICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50
IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9j
ZXNzb3IncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQu
aDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICB7
IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IGluIHRoZSBm
dXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19t
ZTogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIg
d2lsbCB0YWtlIHByZWNlZGVuY2UiID4mMjt9CgogICAgOzsKZXNhYwp7IGVjaG8gIiRhc19tZTok
TElORU5POiBjaGVja2luZyBmb3Igc3lzL3NvdW5kY2FyZC5oIiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBmb3Igc3lzL3NvdW5kY2FyZC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIk
e2FjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRF
Q0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY3ZfaGVhZGVyX3N5c19zb3Vu
ZGNhcmRfaD0kYWNfaGVhZGVyX3ByZXByb2MKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRh
Y19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oIiA+JjY7IH0KCmZpCmlmIHRlc3QgJGFjX2N2X2hl
YWRlcl9zeXNfc291bmRjYXJkX2ggPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8XF9B
Q0VPRgojZGVmaW5lIEFMTEVHUk9fSEFWRV9TWVNfU09VTkRDQVJEX0ggMQpfQUNFT0YKCmZpCgoK
ICBpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oK3NldH0iID0gc2V0
OyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1hY2hpbmUvc291
bmRjYXJkLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2Fy
ZC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9tYWNoaW5lX3Nv
dW5kY2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNI
T19DIiA+JjYKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVy
X21hY2hpbmVfc291bmRjYXJkX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX21h
Y2hpbmVfc291bmRjYXJkX2giID4mNjsgfQplbHNlCiAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFi
bGU/CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIG1hY2hpbmUvc291bmRjYXJkLmgg
dXNhYmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBtYWNoaW5lL3NvdW5kY2FyZC5o
IHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5jbHVkZSA8bWFjaGluZS9zb3VuZGNhcmQuaD4K
X0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls
ZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89
XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJc
JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxl
IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVz
dC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5l
cnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwK
CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj
X29iamV4dDsgdGhlbgogIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKZWxzZQogIGVjaG8gIiRhc19t
ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4
dCA+JjUKCglhY19oZWFkZXJfY29tcGlsZXI9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJy
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAp7IGVjaG8gIiRhc19tZTokTElO
RU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQplY2hvICIke0VDSE9fVH0kYWNf
aGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KCiMgSXMgdGhlIGhlYWRlciBwcmVzZW50Pwp7IGVjaG8g
IiRhc19tZTokTElORU5POiBjaGVja2luZyBtYWNoaW5lL3NvdW5kY2FyZC5oIHByZXNlbmNlIiA+
JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBtYWNoaW5lL3NvdW5kY2FyZC5oIHByZXNlbmNlLi4u
ICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRl
ZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRl
IDxtYWNoaW5lL3NvdW5kY2FyZC5oPgpfQUNFT0YKaWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0
ZXN0LiRhY19leHQiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj
X3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFs
ICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIk
YWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwog
IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRl
c3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/
ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7
CgkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwK
CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9OyB0aGVuCiAgYWNfaGVhZGVyX3ByZXBy
b2M9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQg
J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgogIGFjX2hlYWRlcl9wcmVwcm9jPW5vCmZp
CgpybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAp7IGVjaG8gIiRhc19tZTokTElO
RU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19o
ZWFkZXJfcHJlcHJvYyIgPiY2OyB9CgojIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KY2Fz
ZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dh
cm5fZmxhZyBpbgogIHllczpubzogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO
RzogbWFjaGluZS9zb3VuZGNhcmQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3Rl
ZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbWFjaGlu
ZS9zb3VuZGNhcmQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUg
cHJlcHJvY2Vzc29yISIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IG1hY2hpbmUvc291bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1
bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6IHByb2Nl
ZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CiAgICBhY19oZWFkZXJfcHJl
cHJvYz15ZXMKICAgIDs7CiAgbm86eWVzOiogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
V0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBp
bGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBwcmVz
ZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiAgICAgY2hlY2sgZm9yIG1pc3Npbmcg
cHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5l
L3NvdW5kY2FyZC5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/
IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3Vu
ZGNhcmQuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKZWNobyAiJGFzX21l
OiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50
YXRpb24iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5l
L3NvdW5kY2FyZC5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxl
ZFwiIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiAgICAg
c2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQogICAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJvY2Vl
ZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6IG1hY2hpbmUvc291bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vz
c29yJ3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzog
bWFjaGluZS9zb3VuZGNhcmQuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFr
ZSBwcmVjZWRlbmNlIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2Fy
ZC5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4m
Mjt9CgogICAgOzsKZXNhYwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFj
aGluZS9zb3VuZGNhcmQuaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1hY2hpbmUv
c291bmRjYXJkLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX21h
Y2hpbmVfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNo
ZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2g9
JGFjX2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj
X2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2
X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oIiA+JjY7IH0KCmZpCmlmIHRlc3QgJGFjX2N2X2hl
YWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8
PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX0hBVkVfTUFDSElORV9TT1VORENBUkRfSCAxCl9BQ0VP
RgoKZmkKCgogIGlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX2xpbnV4X3NvdW5kY2FyZF9oK3NldH0i
ID0gc2V0OyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpbnV4
L3NvdW5kY2FyZC5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbGludXgvc291bmRj
YXJkLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX2xpbnV4X3Nv
dW5kY2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNI
T19DIiA+JjYKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVy
X2xpbnV4X3NvdW5kY2FyZF9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9saW51
eF9zb3VuZGNhcmRfaCIgPiY2OyB9CmVsc2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8K
eyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbGludXgvc291bmRjYXJkLmggdXNhYmls
aXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBsaW51eC9zb3VuZGNhcmQuaCB1c2FiaWxp
dHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBj
b25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApj
YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFj
X2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPGxpbnV4L3NvdW5kY2FyZC5oPgpfQUNFT0YKcm0g
LWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIo
KCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7
CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJ
TkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0
ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u
ZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0
YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAt
cyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0
aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFj
X2hlYWRlcl9jb21waWxlcj1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu
JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs
dDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29t
cGlsZXIiID4mNjsgfQoKIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nIGxpbnV4L3NvdW5kY2FyZC5oIHByZXNlbmNlIiA+JjUKZWNobyAkRUNI
T19OICJjaGVja2luZyBsaW51eC9zb3VuZGNhcmQuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7
IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNF
T0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19l
eHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8bGludXgvc291bmRj
YXJkLmg+Cl9BQ0VPRgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKY2Fz
ZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190
cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21l
OiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu
JGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycg
Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29u
ZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0ZXN0IC16ICIkYWNf
Y19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25m
dGVzdC5lcnIKICAgICAgIH07IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVj
aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRl
c3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKCnJtIC1mIGNvbmZ0ZXN0
LmVyciBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj
X2hlYWRlcl9wcmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+
JjY7IH0KCiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29t
cGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCiAgeWVz
Om5vOiApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9zb3VuZGNh
cmQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vz
c29yISIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvc291bmRjYXJkLmg6IGFjY2Vw
dGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9
CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9zb3VuZGNhcmQuaDog
cHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogbGludXgvc291bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIn
cyByZXN1bHQiID4mMjt9CiAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKICAgIDs7CiAgbm86eWVz
OiogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGludXgvc291bmRjYXJk
Lmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FS
TklORzogbGludXgvc291bmRjYXJkLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L3NvdW5kY2Fy
ZC5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKZWNo
byAiJGFzX21lOiBXQVJOSU5HOiBsaW51eC9zb3VuZGNhcmQuaDogICAgIGNoZWNrIGZvciBtaXNz
aW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFdBUk5JTkc6IGxpbnV4L3NvdW5kY2FyZC5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50
YXRpb24iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L3NvdW5kY2FyZC5oOiBzZWUg
dGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiBsaW51eC9zb3VuZGNhcmQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1
dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgv
c291bmRjYXJkLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVk
XCIiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9zb3Vu
ZGNhcmQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQpl
Y2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGgg
dGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFdBUk5JTkc6IGxpbnV4L3NvdW5kY2FyZC5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGls
ZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4
L3NvdW5kY2FyZC5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNl
ZGVuY2UiID4mMjt9CgogICAgOzsKZXNhYwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu
ZyBmb3IgbGludXgvc291bmRjYXJkLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBs
aW51eC9zb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFk
ZXJfbGludXhfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihj
YWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY3ZfaGVhZGVyX2xpbnV4X3NvdW5kY2FyZF9o
PSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh
Y19jdl9oZWFkZXJfbGludXhfc291bmRjYXJkX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3Zf
aGVhZGVyX2xpbnV4X3NvdW5kY2FyZF9oIiA+JjY7IH0KCmZpCmlmIHRlc3QgJGFjX2N2X2hlYWRl
cl9saW51eF9zb3VuZGNhcmRfaCA9IHllczsgdGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FD
RU9GCiNkZWZpbmUgQUxMRUdST19IQVZFX0xJTlVYX1NPVU5EQ0FSRF9IIDEKX0FDRU9GCgpmaQoK
CiAgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbGludXhfYXdlX3ZvaWNlX2grc2V0fSIgPSBzZXQ7
IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGludXgvYXdlX3Zv
aWNlLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsaW51eC9hd2Vfdm9pY2UuaC4u
LiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbGludXhfYXdlX3ZvaWNl
X2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4m
NgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfbGludXhf
YXdlX3ZvaWNlX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX2xpbnV4X2F3ZV92
b2ljZV9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwp7IGVjaG8g
IiRhc19tZTokTElORU5POiBjaGVja2luZyBsaW51eC9hd2Vfdm9pY2UuaCB1c2FiaWxpdHkiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIGxpbnV4L2F3ZV92b2ljZS5oIHVzYWJpbGl0eS4uLiAk
RUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZz
LmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVk
ZXNfZGVmYXVsdAojaW5jbHVkZSA8bGludXgvYXdlX3ZvaWNlLmg+Cl9BQ0VPRgpybSAtZiBjb25m
dGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3Ry
eSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBh
Y190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAk
YWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIx
CiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l
cnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRh
c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsg
fSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0
ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBh
Y19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt
IHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVy
X2NvbXBpbGVyPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq
ZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf
aGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIg
PiY2OyB9CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
Y2hlY2tpbmcgbGludXgvYXdlX3ZvaWNlLmggcHJlc2VuY2UiID4mNQplY2hvICRFQ0hPX04gImNo
ZWNraW5nIGxpbnV4L2F3ZV92b2ljZS5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNjsgfQpjYXQg
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQg
Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxsaW51eC9hd2Vfdm9pY2UuaD4K
X0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgpjYXNlICIoKCRh
Y190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAg
KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVO
TzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0
IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVz
dC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5l
cnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRhY19jX3ByZXBy
b2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy
cgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFz
X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf
ZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29uZnRlc3QuZXJyIGNv
bmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVy
X3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQoK
IyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjok
YWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KICB5ZXM6bm86ICkK
ICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L2F3ZV92b2ljZS5oOiBh
Y2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+
JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBsaW51eC9hd2Vfdm9pY2UuaDogYWNjZXB0ZWQgYnkg
dGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KICAgIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L2F3ZV92b2ljZS5oOiBwcm9jZWVk
aW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiBsaW51eC9hd2Vfdm9pY2UuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3Vs
dCIgPiYyO30KICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogICAgOzsKICBubzp5ZXM6KiApCiAg
ICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9hd2Vfdm9pY2UuaDogcHJl
c2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBs
aW51eC9hd2Vfdm9pY2UuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQog
ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGludXgvYXdlX3ZvaWNlLmg6ICAg
ICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNf
bWU6IFdBUk5JTkc6IGxpbnV4L2F3ZV92b2ljZS5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJl
cmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogbGludXgvYXdlX3ZvaWNlLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIg
PiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvYXdlX3ZvaWNlLmg6IHNlZSB0aGUgQXV0
b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdB
Uk5JTkc6IGxpbnV4L2F3ZV92b2ljZS5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5v
dCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBsaW51eC9hd2Vfdm9p
Y2UuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYy
O30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L2F3ZV92b2ljZS5o
OiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRh
c19tZTogV0FSTklORzogbGludXgvYXdlX3ZvaWNlLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJl
cHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogbGludXgvYXdlX3ZvaWNlLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxs
IHRha2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvYXdlX3Zv
aWNlLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIg
PiYyO30KCiAgICA7Owplc2FjCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBs
aW51eC9hd2Vfdm9pY2UuaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpbnV4L2F3
ZV92b2ljZS5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9saW51
eF9hd2Vfdm9pY2VfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkg
JEVDSE9fQyIgPiY2CmVsc2UKICBhY19jdl9oZWFkZXJfbGludXhfYXdlX3ZvaWNlX2g9JGFjX2hl
YWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hl
YWRlcl9saW51eF9hd2Vfdm9pY2VfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJf
bGludXhfYXdlX3ZvaWNlX2giID4mNjsgfQoKZmkKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX2xpbnV4
X2F3ZV92b2ljZV9oID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2Rl
ZmluZSBBTExFR1JPX0hBVkVfTElOVVhfQVdFX1ZPSUNFX0ggMQpfQUNFT0YKCmZpCgoKCgp7IGVj
aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgX29zc19pb2N0bCBpbiAtbG9zc2F1ZGlv
IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgX29zc19pb2N0bCBpbiAtbG9zc2F1ZGlv
Li4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2xpYl9vc3NhdWRpb19fb3NzX2lv
Y3RsK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+
JjYKZWxzZQogIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKTElCUz0iLWxvc3NhdWRpbyAg
JExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8K
X0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBH
Q0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNh
dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBh
bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lm
ZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCmNoYXIgX29zc19pb2N0bCAoKTsKaW50
Cm1haW4gKCkKewpyZXR1cm4gX29zc19pb2N0bCAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9G
CnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3Ry
eT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj
X3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFs
ICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIk
YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycg
Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29u
ZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2Zs
YWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0
ZXN0JGFjX2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRo
ZW4KICBhY19jdl9saWJfb3NzYXVkaW9fX29zc19pb2N0bD15ZXMKZWxzZQogIGVjaG8gIiRhc19t
ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4
dCA+JjUKCglhY19jdl9saWJfb3NzYXVkaW9fX29zc19pb2N0bD1ubwpmaQoKcm0gLWYgY29yZSBj
b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v
IFwKICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hl
Y2tfbGliX3NhdmVfTElCUwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j
dl9saWJfb3NzYXVkaW9fX29zc19pb2N0bCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9saWJf
b3NzYXVkaW9fX29zc19pb2N0bCIgPiY2OyB9CmlmIHRlc3QgJGFjX2N2X2xpYl9vc3NhdWRpb19f
b3NzX2lvY3RsID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5l
IEhBVkVfTElCT1NTQVVESU8gMQpfQUNFT0YKCiAgTElCUz0iLWxvc3NhdWRpbyAkTElCUyIKCmZp
CgoKICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE9TUyBzZXF1ZW5j
ZXIgc3VwcG9ydCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIE9TUyBzZXF1ZW5jZXIg
c3VwcG9ydC4uLiAkRUNIT19DIiA+JjY7IH0KICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh
Y19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4g
ICovCgogICAgICAjaWYgQUxMRUdST19IQVZFX1NPVU5EQ0FSRF9ICiAgICAgICAjaW5jbHVkZSA8
c291bmRjYXJkLmg+CiAgICAgICNlbGlmIEFMTEVHUk9fSEFWRV9TWVNfU09VTkRDQVJEX0gKICAg
ICAgICNpbmNsdWRlIDxzeXMvc291bmRjYXJkLmg+CiAgICAgICNlbGlmIEFMTEVHUk9fSEFWRV9N
QUNISU5FX1NPVU5EQ0FSRF9ICiAgICAgICAjaW5jbHVkZSA8bWFjaGluZS9zb3VuZGNhcmQuaD4K
ICAgICAgI2VsaWYgQUxMRUdST19IQVZFX0xJTlVYX1NPVU5EQ0FSRF9ICiAgICAgICAjaW5jbHVk
ZSA8bGludXgvc291bmRjYXJkLmg+CiAgICAgICNlbmRpZgppbnQKbWFpbiAoKQp7CnJldHVybiBT
TkRDVExfU0VRX05SU1lOVEhTOwoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRh
c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+
Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx
ID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4m
NQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVz
dCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4
dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBhbGxlZ3Jv
X3N1cHBvcnRfb3NzbWlkaT15ZXMKCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt
IHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoKZmkKCnJtIC1m
IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25m
dGVzdC5vbyBcCiAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CiAgaWYg
dGVzdCAtbiAiJGFsbGVncm9fc3VwcG9ydF9vc3NtaWRpIjsgdGhlbgogICAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQplY2hvICIke0VDSE9fVH15ZXMiID4mNjsgfQog
IGVsc2UKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIk
e0VDSE9fVH1ubyIgPiY2OyB9CiAgZmkKZmkKCmlmIHRlc3QgLW4gIiRhbGxlZ3JvX3N1cHBvcnRf
b3NzbWlkaSI7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdS
T19XSVRIX09TU01JREkgMQpfQUNFT0YKCiAgX2VuYWJsZWRfbW9kdWxlcz0ib3NzbWlkaSAkX2Vu
YWJsZWRfbW9kdWxlcyIKZWxzZQogIF9kaXNhYmxlZF9tb2R1bGVzPSJvc3NtaWRpICRfZGlzYWJs
ZWRfbW9kdWxlcyIKZmkKCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYWxzYWRpZ2kgd2FzIGdp
dmVuLgppZiB0ZXN0ICIke2VuYWJsZV9hbHNhZGlnaStzZXR9IiA9IHNldDsgdGhlbgogIGVuYWJs
ZXZhbD0kZW5hYmxlX2Fsc2FkaWdpOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxs
ZWdyb19lbmFibGVfYWxzYWRpZ2k9eWVzCmVsc2UKICBhbGxlZ3JvX2VuYWJsZV9hbHNhZGlnaT15
ZXMKZmkKCgppZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfYWxzYWRpZ2kiOyB0aGVuCiAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBBTFNBIHZlcnNpb24g
Zm9yIGRpZ2l0YWwgc291bmQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdXBwb3J0
ZWQgQUxTQSB2ZXJzaW9uIGZvciBkaWdpdGFsIHNvdW5kLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0
ZXN0ICIke2FsbGVncm9fY3Zfc3VwcG9ydF9hbHNhZGlnaStzZXR9IiA9IHNldDsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQg
Y29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzeXMvYXNvdW5kbGliLmg+CiAgICAgICAgICAgICAg
ICAgICNpZiAoU05EX0xJQl9NQUpPUiA+IDApIHx8IChTTkRfTElCX01BSk9SID09IDAgJiYgU05E
X0xJQl9NSU5PUiA9PSA5ICYmIFNORF9MSUJfU1VCTUlOT1IgPj0gMSkKICAgICAgICAgICAgICAg
ICAgI2Vsc2UKICAgICAgICAgICAgICAgICAgI2Vycm9yCiAgICAgICAgICAgICAgICAgICNlbmRp
ZgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3Qu
JGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGlu
CiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5
X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry
eV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFj
X3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAg
cm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg
ewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5l
cnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWxsZWdy
b19jdl9zdXBwb3J0X2Fsc2FkaWdpPXllcwogICBhbGxlZ3JvX2N2X2Fsc2FfdmVyc2lvbj05CmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8n
IGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoj
aW5jbHVkZSA8c3lzL2Fzb3VuZGxpYi5oPgogICAgICAgICAgICAgICAgICAjaWYgU05EX0xJQl9N
QUpPUiA9PSAwICYmIFNORF9MSUJfTUlOT1IgPT0gNQogICAgICAgICAgICAgICAgICAjZWxzZQog
ICAgICAgICAgICAgICAgICAjZXJyb3IKICAgICAgICAgICAgICAgICAgI2VuZGlmCmludAptYWlu
ICgpCnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0
CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwg
KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNf
dHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIp
ID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/
CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25m
dGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBc
JD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAt
eiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAg
fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhbGxlZ3JvX2N2X3N1cHBv
cnRfYWxzYWRpZ2k9eWVzCiAgIGFsbGVncm9fY3ZfYWxzYV92ZXJzaW9uPTUKZWxzZQogIGVjaG8g
IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3Qu
JGFjX2V4dCA+JjUKCglhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYWRpZ2k9bm8KZmkKCnJtIC1mIGNv
cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQoK
cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf
ZXh0CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFsbGVncm9fY3Zfc3VwcG9y
dF9hbHNhZGlnaSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYWRp
Z2kiID4mNjsgfQogIGlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X2Fsc2FkaWdpIiA9ICJY
eWVzIiAmJgogICAgIHRlc3QgLXogIiRhbGxlZ3JvX3N1cHBvcnRfbW9kdWxlcyI7IHRoZW4KICAg
IExJQlM9Ii1sYXNvdW5kICRMSUJTIgogIGZpCmZpCmlmIHRlc3QgIiRhbGxlZ3JvX2N2X3N1cHBv
cnRfYWxzYWRpZ2kiID0geWVzOyB0aGVuCgpjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVm
aW5lIEFMTEVHUk9fV0lUSF9BTFNBRElHSSAxCl9BQ0VPRgoKICBpZiB0ZXN0ICIkYWxsZWdyb19j
dl9hbHNhX3ZlcnNpb24iID0gOTsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2Rl
ZmluZSBBTExFR1JPX0FMU0FfVkVSU0lPTiA5Cl9BQ0VPRgoKICBlbHNlCgpjYXQgPj5jb25mZGVm
cy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fQUxTQV9WRVJTSU9OIDUKX0FDRU9GCgogIGZp
CiAgX2VuYWJsZWRfbW9kdWxlcz0iYWxzYWRpZ2kgJF9lbmFibGVkX21vZHVsZXMiCmVsc2UKICBf
ZGlzYWJsZWRfbW9kdWxlcz0iYWxzYWRpZ2kgJF9kaXNhYmxlZF9tb2R1bGVzIgpmaQoKIyBDaGVj
ayB3aGV0aGVyIC0tZW5hYmxlLWFsc2FtaWRpIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVf
YWxzYW1pZGkrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9hbHNhbWlkaTsg
dGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2Fsc2FtaWRpPXll
cwplbHNlCiAgYWxsZWdyb19lbmFibGVfYWxzYW1pZGk9eWVzCmZpCgoKaWYgdGVzdCAtbiAiJGFs
bGVncm9fZW5hYmxlX2Fsc2FtaWRpIjsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNo
ZWNraW5nIGZvciBzdXBwb3J0ZWQgQUxTQSB2ZXJzaW9uIGZvciBNSURJIiA+JjUKZWNobyAkRUNI
T19OICJjaGVja2luZyBmb3Igc3VwcG9ydGVkIEFMU0EgdmVyc2lvbiBmb3IgTUlESS4uLiAkRUNI
T19DIiA+JjY7IH0KaWYgdGVzdCAiJHthbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYW1pZGkrc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YK
Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL2Fzb3VuZGxpYi5o
PgogICAgICAgICAgICAgICAgICAjaWYgKFNORF9MSUJfTUFKT1IgPiAwKSB8fCAoU05EX0xJQl9N
QUpPUiA9PSAwICYmIFNORF9MSUJfTUlOT1IgPT0gOSkKICAgICAgICAgICAgICAgICAgI2Vsc2UK
ICAgICAgICAgICAgICAgICAgI2Vycm9yCiAgICAgICAgICAgICAgICAgICNlbmRpZgppbnQKbWFp
biAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4
dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8
ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFj
X3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi
KSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0k
PwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29u
ZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3Qg
LXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAg
IH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWxsZWdyb19jdl9zdXBw
b3J0X2Fsc2FtaWRpPXllcwogICBhbGxlZ3JvX2N2X2Fsc2FfdmVyc2lvbj05CmVsc2UKICBlY2hv
ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0
LiRhY19leHQgPiY1CgoJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZz
LmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8
c3lzL2Fzb3VuZGxpYi5oPgogICAgICAgICAgICAgICAgICAjaWYgU05EX0xJQl9NQUpPUiA9PSAw
ICYmIFNORF9MSUJfTUlOT1IgPT0gNQogICAgICAgICAgICAgICAgICAjZWxzZQogICAgICAgICAg
ICAgICAgICAjZXJyb3IKICAgICAgICAgICAgICAgICAgI2VuZGlmCmludAptYWluICgpCnsKCiAg
OwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFj
X3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpc
XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNh
YwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChl
dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAt
diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEK
ICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nf
d2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0
IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYW1p
ZGk9eWVzCiAgIGFsbGVncm9fY3ZfYWxzYV92ZXJzaW9uPTUKZWxzZQogIGVjaG8gIiRhc19tZTog
ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+
JjUKCglhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYW1pZGk9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRl
c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQoKcm0gLWYgY29y
ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCnsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFsbGVncm9fY3Zfc3VwcG9ydF9hbHNhbWlk
aSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYW1pZGkiID4mNjsg
fQogIGlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X2Fsc2FtaWRpIiA9ICJYeWVzIiAmJgog
ICAgIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X2Fsc2FkaWdpIiAhPSAiWHllcyIgJiYKICAg
ICB0ZXN0IC16ICIkYWxsZWdyb19zdXBwb3J0X21vZHVsZXMiOyB0aGVuCiAgICBMSUJTPSItbGFz
b3VuZCAkTElCUyIKICBmaQpmaQppZiB0ZXN0ICIkYWxsZWdyb19jdl9zdXBwb3J0X2Fsc2FtaWRp
IiA9IHllczsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JP
X1dJVEhfQUxTQU1JREkgMQpfQUNFT0YKCiAgaWYgdGVzdCAiJGFsbGVncm9fY3ZfYWxzYV92ZXJz
aW9uIiA9IDk7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdS
T19BTFNBX1ZFUlNJT04gOQpfQUNFT0YKCiAgZWxzZQoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF
T0YKI2RlZmluZSBBTExFR1JPX0FMU0FfVkVSU0lPTiA1Cl9BQ0VPRgoKICBmaQogIF9lbmFibGVk
X21vZHVsZXM9ImFsc2FtaWRpICRfZW5hYmxlZF9tb2R1bGVzIgplbHNlCiAgX2Rpc2FibGVkX21v
ZHVsZXM9ImFsc2FtaWRpICRfZGlzYWJsZWRfbW9kdWxlcyIKZmkKCiMgQ2hlY2sgd2hldGhlciAt
LWVuYWJsZS1lc2RkaWdpIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVfZXNkZGlnaStzZXR9
IiA9IHNldDsgdGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX2VzZGRpZ2k7IHRlc3QgIlgkZW5hYmxl
dmFsIiAhPSAiWG5vIiAmJiBhbGxlZ3JvX2VuYWJsZV9lc2RkaWdpPXllcwplbHNlCiAgYWxsZWdy
b19lbmFibGVfZXNkZGlnaT15ZXMKZmkKCgppZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfZXNk
ZGlnaSI7IHRoZW4KICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImVzZC1jb25maWciLCBz
byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgZXNkLWNvbmZp
ZzsgYWNfd29yZD0kMgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dv
cmQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+
JjY7IH0KaWYgdGVzdCAiJHthY19jdl9wYXRoX0VTRF9DT05GSUcrc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2FzZSAkRVNEX0NP
TkZJRyBpbgogIFtcXC9dKiB8ID86W1xcL10qKQogIGFjX2N2X3BhdGhfRVNEX0NPTkZJRz0iJEVT
RF9DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgog
IDs7CiAgKikKICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19k
aXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYg
YXNfZGlyPS4KICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u
czsgZG8KICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh
c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCiAgICBhY19j
dl9wYXRoX0VTRF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCiAgICBlY2hv
ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1
CiAgICBicmVhayAyCiAgZmkKZG9uZQpkb25lCklGUz0kYXNfc2F2ZV9JRlMKCiAgOzsKZXNhYwpm
aQpFU0RfQ09ORklHPSRhY19jdl9wYXRoX0VTRF9DT05GSUcKaWYgdGVzdCAtbiAiJEVTRF9DT05G
SUciOyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkRVNEX0NPTkZJRyIg
PiY1CmVjaG8gIiR7RUNIT19UfSRFU0RfQ09ORklHIiA+JjY7IH0KZWxzZQogIHsgZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2OyB9CmZp
CgoKICBpZiB0ZXN0IC1uICIkRVNEX0NPTkZJRyI7IHRoZW4KICAgIEFMTEVHUk9fT0xEX0xJQlM9
IiRMSUJTIgogICAgQUxMRUdST19PTERfQ0ZMQUdTPSIkQ0ZMQUdTIgogICAgTElCUz0iYCRFU0Rf
Q09ORklHIC0tbGlic2AgJExJQlMiCiAgICBDRkxBR1M9ImAkRVNEX0NPTkZJRyAtLWNmbGFnc2Ag
JENGTEFHUyIKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBlc2Rfb3Bl
bl9zb3VuZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGVzZF9vcGVuX3NvdW5kLi4u
ICRFQ0hPX0MiID4mNjsgfQogICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNv
bmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNh
dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5j
bHVkZSA8ZXNkLmg+CmludAptYWluICgpCnsKZXNkX29wZW5fc291bmQoMCk7CiAgOwogIHJldHVy
biAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4
dAppZiB7IChhY190cnk9IiRhY19saW5rIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpc
YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry
eTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+
JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdy
ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3Qu
ZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRh
Y19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYg
dGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3Qk
YWNfZXhlZXh0OyB0aGVuCiAgYWxsZWdyb19zdXBwb3J0X2VzZGRpZ2k9eWVzCiAgICAgICBpZiB0
ZXN0IC1uICIkYWxsZWdyb19zdXBwb3J0X21vZHVsZXMiOyB0aGVuCiAgICAgICAgIExJQlM9IiRB
TExFR1JPX09MRF9MSUJTIgogICAgICAgZmkKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHBy
b2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglDRkxB
R1M9IiRBTExFR1JPX09MRF9DRkxBR1MiCiAgICAgICBMSUJTPSIkQUxMRUdST19PTERfTElCUyIK
ZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Rf
aXBhOF9jb25mdGVzdC5vbyBcCiAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf
ZXh0CiAgICBpZiB0ZXN0IC1uICIkYWxsZWdyb19zdXBwb3J0X2VzZGRpZ2kiOyB0aGVuCiAgICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKZWNobyAiJHtFQ0hPX1R9
eWVzIiA+JjY7IH0KICAgIGVsc2UKICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiBubyIgPiY1CmVjaG8gIiR7RUNIT19UfW5vIiA+JjY7IH0KICAgIGZpCiAgZmkKZmkKaWYgdGVz
dCAtbiAiJGFsbGVncm9fc3VwcG9ydF9lc2RkaWdpIjsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8
PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX1dJVEhfRVNERElHSSAxCl9BQ0VPRgoKICBfZW5hYmxl
ZF9tb2R1bGVzPSJlc2RkaWdpICRfZW5hYmxlZF9tb2R1bGVzIgplbHNlCiAgX2Rpc2FibGVkX21v
ZHVsZXM9ImVzZGRpZ2kgJF9kaXNhYmxlZF9tb2R1bGVzIgpmaQoKIyBDaGVjayB3aGV0aGVyIC0t
ZW5hYmxlLWFydHNkaWdpIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVfYXJ0c2RpZ2krc2V0
fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9hcnRzZGlnaTsgdGVzdCAiWCRlbmFi
bGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2FydHNkaWdpPXllcwplbHNlCiAgYWxs
ZWdyb19lbmFibGVfYXJ0c2RpZ2k9eWVzCmZpCgoKaWYgdGVzdCAtbiAiJGFsbGVncm9fZW5hYmxl
X2FydHNkaWdpIjsgdGhlbgogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXJ0c2MtY29u
ZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15IGFy
dHNjLWNvbmZpZzsgYWNfd29yZD0kMgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm
b3IgJGFjX3dvcmQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAk
RUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9wYXRoX0FSVFNDX0NPTkZJRytzZXR9IiA9
IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBj
YXNlICRBUlRTQ19DT05GSUcgaW4KICBbXFwvXSogfCA/OltcXC9dKikKICBhY19jdl9wYXRoX0FS
VFNDX0NPTkZJRz0iJEFSVFNDX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl
c3Qgd2l0aCBhIHBhdGguCiAgOzsKICAqKQogIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T
RVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0
IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl
Y3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh
Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7
IH07IHRoZW4KICAgIGFjX2N2X3BhdGhfQVJUU0NfQ09ORklHPSIkYXNfZGlyLyRhY193b3JkJGFj
X2V4ZWNfZXh0IgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv
cmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKZG9uZQpJRlM9JGFzX3Nh
dmVfSUZTCgogIDs7CmVzYWMKZmkKQVJUU0NfQ09ORklHPSRhY19jdl9wYXRoX0FSVFNDX0NPTkZJ
RwppZiB0ZXN0IC1uICIkQVJUU0NfQ09ORklHIjsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogJEFSVFNDX0NPTkZJRyIgPiY1CmVjaG8gIiR7RUNIT19UfSRBUlRTQ19DT05G
SUciID4mNjsgfQplbHNlCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1
CmVjaG8gIiR7RUNIT19UfW5vIiA+JjY7IH0KZmkKCgogIGlmIHRlc3QgLW4gIiRBUlRTQ19DT05G
SUciOyB0aGVuCiAgICBBTExFR1JPX09MRF9MSUJTPSIkTElCUyIKICAgIEFMTEVHUk9fT0xEX0NG
TEFHUz0iJENGTEFHUyIKICAgIExJQlM9ImAkQVJUU0NfQ09ORklHIC0tbGlic2AgJExJQlMiCiAg
ICBDRkxBR1M9ImAkQVJUU0NfQ09ORklHIC0tY2ZsYWdzYCAkQ0ZMQUdTIgogICAgeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGFydHNfaW5pdCIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgZm9yIGFydHNfaW5pdC4uLiAkRUNIT19DIiA+JjY7IH0KICAgIGNhdCA+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVm
cy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPGFydHNjLmg+CmludAptYWluICgpCnsKYXJ0
c19pbml0KCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19saW5rIgpjYXNlICIoKCRh
Y190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAg
KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVO
TzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVy
MQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu
ZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7
IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25m
dGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYKICAgICAg
ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWxsZWdyb19zdXBwb3J0X2Fy
dHNkaWdpPXllcwogICAgICAgaWYgdGVzdCAtbiAiJGFsbGVncm9fc3VwcG9ydF9tb2R1bGVzIjsg
dGhlbgogICAgICAgICBMSUJTPSIkQUxMRUdST19PTERfTElCUyIKICAgICAgIGZpCmVsc2UKICBl
Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0
ZXN0LiRhY19leHQgPiY1CgoJQ0ZMQUdTPSIkQUxMRUdST19PTERfQ0ZMQUdTIgogICAgICAgTElC
Uz0iJEFMTEVHUk9fT0xEX0xJQlMiCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRh
Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogICAgaWYgdGVzdCAtbiAiJGFsbGVncm9fc3VwcG9y
dF9hcnRzZGlnaSI7IHRoZW4KICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5
ZXMiID4mNQplY2hvICIke0VDSE9fVH15ZXMiID4mNjsgfQogICAgZWxzZQogICAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKZWNobyAiJHtFQ0hPX1R9bm8iID4mNjsg
fQogICAgZmkKICBmaQpmaQppZiB0ZXN0IC1uICIkYWxsZWdyb19zdXBwb3J0X2FydHNkaWdpIjsg
dGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX1dJVEhfQVJU
U0RJR0kgMQpfQUNFT0YKCiAgX2VuYWJsZWRfbW9kdWxlcz0iYXJ0c2RpZ2kgJF9lbmFibGVkX21v
ZHVsZXMiCmVsc2UKICBfZGlzYWJsZWRfbW9kdWxlcz0iYXJ0c2RpZ2kgJF9kaXNhYmxlZF9tb2R1
bGVzIgpmaQoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNnaWFsZGlnaSB3YXMgZ2l2ZW4uCmlm
IHRlc3QgIiR7ZW5hYmxlX3NnaWFsZGlnaStzZXR9IiA9IHNldDsgdGhlbgogIGVuYWJsZXZhbD0k
ZW5hYmxlX3NnaWFsZGlnaTsgdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9f
ZW5hYmxlX3NnaWFsZGlnaT15ZXMKZWxzZQogIGFsbGVncm9fZW5hYmxlX3NnaWFsZGlnaT15ZXMK
ZmkKCgppZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfc2dpYWxkaWdpIjsgdGhlbgogIHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhbE9wZW5Qb3J0IGluIC1sYXVkaW8iID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBhbE9wZW5Qb3J0IGluIC1sYXVkaW8uLi4gJEVD
SE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfbGliX2F1ZGlvX2FsT3BlblBvcnQrc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
YWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpMSUJTPSItbGF1ZGlvICAkTElCUyIKY2F0ID5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNv
bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBw
cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCiAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0
IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwogICBidWlsdGluIGFuZCB0aGVuIGl0cyBh
cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwojaWZkZWYgX19jcGx1c3Bs
dXMKZXh0ZXJuICJDIgojZW5kaWYKY2hhciBhbE9wZW5Qb3J0ICgpOwppbnQKbWFpbiAoKQp7CnJl
dHVybiBhbE9wZW5Qb3J0ICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRl
c3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK
Y2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh
Y190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFz
X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj5j
b25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg
PmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1
CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRh
Y19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0
ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0
ICYmCiAgICAgICAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgogIGFjX2N2X2xp
Yl9hdWRpb19hbE9wZW5Qb3J0PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2N2X2xp
Yl9hdWRpb19hbE9wZW5Qb3J0PW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRh
Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZp
CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9hdWRpb19hbE9wZW5Q
b3J0IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2xpYl9hdWRpb19hbE9wZW5Qb3J0IiA+JjY7
IH0KaWYgdGVzdCAkYWNfY3ZfbGliX2F1ZGlvX2FsT3BlblBvcnQgPSB5ZXM7IHRoZW4KICBhbGxl
Z3JvX2N2X3N1cHBvcnRfc2dpYWxkaWdpPXllcwpmaQoKICBpZiB0ZXN0IC1uICIkYWxsZWdyb19j
dl9zdXBwb3J0X3NnaWFsZGlnaSIgJiYKICAgICB0ZXN0IC16ICIkYWxsZWdyb19zdXBwb3J0X21v
ZHVsZXMiOyB0aGVuCiAgICBMSUJTPSItbGF1ZGlvICRMSUJTIgogIGZpCmZpCmlmIHRlc3QgIiRh
bGxlZ3JvX2N2X3N1cHBvcnRfc2dpYWxkaWdpIiA9IHllczsgdGhlbgoKY2F0ID4+Y29uZmRlZnMu
aCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX1dJVEhfU0dJQUxESUdJIDEKX0FDRU9GCgogIF9l
bmFibGVkX21vZHVsZXM9InNnaWFsZGlnaSAkX2VuYWJsZWRfbW9kdWxlcyIKZWxzZQogIF9kaXNh
YmxlZF9tb2R1bGVzPSJzZ2lhbGRpZ2kgJF9kaXNhYmxlZF9tb2R1bGVzIgpmaQoKIyBDaGVjayB3
aGV0aGVyIC0tZW5hYmxlLWphY2tkaWdpIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVfamFj
a2RpZ2krc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9JGVuYWJsZV9qYWNrZGlnaTsgdGVz
dCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2phY2tkaWdpPXllcwpl
bHNlCiAgYWxsZWdyb19lbmFibGVfamFja2RpZ2k9eWVzCmZpCgoKaWYgdGVzdCAtbiAiJGFsbGVn
cm9fZW5hYmxlX2phY2tkaWdpIjsgdGhlbgogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi
cGtnLWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBk
dW1teSBwa2ctY29uZmlnOyBhY193b3JkPSQyCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciAkYWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3Jk
Li4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtHX0NPTkZJRytzZXR9
IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UK
ICBjYXNlICRQS0dfQ09ORklHIGluCiAgW1xcL10qIHwgPzpbXFwvXSopCiAgYWNfY3ZfcGF0aF9Q
S0dfQ09ORklHPSIkUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qg
d2l0aCBhIHBhdGguCiAgOzsKICAqKQogIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB
UkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16
ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0
YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l
eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07
IHRoZW4KICAgIGFjX2N2X3BhdGhfUEtHX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVj
X2V4dCIKICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj
X2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCmRvbmUKSUZTPSRhc19zYXZlX0lG
UwoKICA7Owplc2FjCmZpClBLR19DT05GSUc9JGFjX2N2X3BhdGhfUEtHX0NPTkZJRwppZiB0ZXN0
IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
ICRQS0dfQ09ORklHIiA+JjUKZWNobyAiJHtFQ0hPX1R9JFBLR19DT05GSUciID4mNjsgfQplbHNl
CiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CmVjaG8gIiR7RUNIT19U
fW5vIiA+JjY7IH0KZmkKCgogIGlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgogICAgQUxM
RUdST19PTERfTElCUz0iJExJQlMiCiAgICBBTExFR1JPX09MRF9DRkxBR1M9IiRDRkxBR1MiCiAg
ICBMSUJTPSJgJFBLR19DT05GSUcgLS1saWJzIGphY2tgICRMSUJTIgogICAgQ0ZMQUdTPSJgJFBL
R19DT05GSUcgLS1jZmxhZ3MgamFja2AgJENGTEFHUyIKICAgIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIGZvciBqYWNrX2NsaWVudF9uZXciID4mNQplY2hvICRFQ0hPX04gImNoZWNr
aW5nIGZvciBqYWNrX2NsaWVudF9uZXcuLi4gJEVDSE9fQyIgPiY2OyB9CiAgICBjYXQgPmNvbmZ0
ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRl
ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgov
KiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxqYWNrL2phY2suaD4KaW50Cm1haW4gKCkK
ewpqYWNrX2NsaWVudF9uZXcoMCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25m
dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19saW5r
IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c
JGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwk
YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAy
PmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy
MSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+
JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQg
JGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRl
c3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl
eHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWxsZWdy
b19jdl9zdXBwb3J0X2phY2tkaWdpPXllcwogICAgICAgaWYgdGVzdCAtbiAiJGFsbGVncm9fc3Vw
cG9ydF9tb2R1bGVzIjsgdGhlbgogICAgICAgICBMSUJTPSIkQUxMRUdST19PTERfTElCUyIKICAg
ICAgIGZpCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQg
J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJQ0ZMQUdTPSIkQUxMRUdST19PTERfQ0ZM
QUdTIgogICAgICAgTElCUz0iJEFMTEVHUk9fT0xEX0xJQlMiCmZpCgpybSAtZiBjb3JlIGNvbmZ0
ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAog
ICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogICAgaWYgdGVzdCAtbiAi
JGFsbGVncm9fY3Zfc3VwcG9ydF9qYWNrZGlnaSI7IHRoZW4KICAgICAgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQplY2hvICIke0VDSE9fVH15ZXMiID4mNjsgfQogICAg
ZWxzZQogICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKZWNobyAi
JHtFQ0hPX1R9bm8iID4mNjsgfQogICAgZmkKICBmaQpmaQppZiB0ZXN0ICJYJGFsbGVncm9fY3Zf
c3VwcG9ydF9qYWNrZGlnaSIgPSAiWHllcyI7IHRoZW4KICBpZiB0ZXN0ICJYJF9kb19wdGhyZWFk
IiA9ICJYeWVzIjsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExF
R1JPX1dJVEhfSkFDS0RJR0kgMQpfQUNFT0YKCiAgICBfZW5hYmxlZF9tb2R1bGVzPSJqYWNrZGln
aSAkX2VuYWJsZWRfbW9kdWxlcyIKICBlbHNlCiAgICBlY2hvIFdhcm5pbmc6IEphY2sgd2lsbCBi
ZSBkaXNhYmxlZCwgc2luY2UgcHRocmVhZHMgc3VwcG9ydCBpcyBtaXNzaW5nL2Rpc2FibGVkLgog
ICAgX2Rpc2FibGVkX21vZHVsZXM9ImphY2tkaWdpICRfZGlzYWJsZWRfbW9kdWxlcyIKICBmaQpl
bHNlCiAgX2Rpc2FibGVkX21vZHVsZXM9ImphY2tkaWdpICRfZGlzYWJsZWRfbW9kdWxlcyIKZmkK
CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKCgogIGlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19w
cm9jZnNfaCtzZXR9IiA9IHNldDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciBzeXMvcHJvY2ZzLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMv
cHJvY2ZzLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19w
cm9jZnNfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9f
QyIgPiY2CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9z
eXNfcHJvY2ZzX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19wcm9jZnNf
aCIgPiY2OyB9CmVsc2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL3Byb2Nmcy5oIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgc3lzL3Byb2Nmcy5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjY7IH0K
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YK
Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5j
bHVkZSA8c3lzL3Byb2Nmcy5oPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7
IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCog
fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7
CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUK
ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdy
ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3Qu
ZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRh
Y19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYg
dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXll
cwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2hlYWRlcl9jb21waWxlcj1ubwpmaQoKcm0g
LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0
CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1
CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNjsgfQoKIyBJcyB0aGUgaGVh
ZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHN5cy9wcm9jZnMu
aCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3Byb2Nmcy5oIHByZXNl
bmNlLi4uICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
Y29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK
Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNp
bmNsdWRlIDxzeXMvcHJvY2ZzLmg+Cl9BQ0VPRgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRl
c3QuJGFjX2V4dCIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNf
dHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwg
ImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRh
Y19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAg
Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVz
dC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsK
CSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJ
IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH07IHRoZW4KICBhY19oZWFkZXJfcHJlcHJv
Yz15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAn
cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkK
CnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hl
YWRlcl9wcmVwcm9jIiA+JjY7IH0KCiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNl
ICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fy
bl9mbGFnIGluCiAgeWVzOm5vOiApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiBzeXMvcHJvY2ZzLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhl
IHByZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9wcm9jZnMuaDog
YWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9wcm9jZnMuaDog
cHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogc3lzL3Byb2Nmcy5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVz
dWx0IiA+JjI7fQogICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCiAgICA7OwogIG5vOnllczoqICkK
ICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9wcm9jZnMuaDogcHJlc2Vu
dCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMv
cHJvY2ZzLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KICAgIHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9wcm9jZnMuaDogICAgIGNoZWNrIGZvciBt
aXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzog
c3lzL3Byb2Nmcy5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/
IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3Byb2Nmcy5o
OiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6IHN5cy9wcm9jZnMuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQog
ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3Byb2Nmcy5oOiAgICAgc2Vj
dGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFzX21l
OiBXQVJOSU5HOiBzeXMvcHJvY2ZzLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90
IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiBzeXMvcHJvY2ZzLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0
IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvcHJvY2ZzLmg6IHByb2NlZWRpbmcgd2l0
aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogV0FSTklORzogc3lzL3Byb2Nmcy5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIg
d2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9wcm9j
ZnMuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+
JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5
cy9wcm9jZnMuaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9wcm9jZnMuaC4u
LiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3Byb2Nmc19oK3Nl
dH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxz
ZQogIGFjX2N2X2hlYWRlcl9zeXNfcHJvY2ZzX2g9JGFjX2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfcHJvY2ZzX2giID4m
NQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19wcm9jZnNfaCIgPiY2OyB9CgpmaQpp
ZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3Byb2Nmc19oID0geWVzOyB0aGVuCgogICAgY2F0ID5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNv
bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KICAgICAg
ICAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CgppbnQKbWFpbiAoKQp7CiBzdHJ1Y3QgcHJwc2luZm8g
cHNpbmZvOwogICAgICAgIGlvY3RsKDAsIFBJT0NQU0lORk8sICZwc2luZm8pOwoKICA7CiAgcmV0
dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIk
YWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNf
dHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwg
ImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRh
Y19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICor
JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBj
b25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf
ZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29u
ZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFsbGVncm9fc3ZfcHJvY2ZzPXllcwplbHNlCiAgZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVz
dC4kYWNfZXh0ID4mNQoKCWFsbGVncm9fc3ZfcHJvY2ZzPW5vCgpmaQoKcm0gLWYgY29yZSBjb25m
dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0LAogICAgYWxsZWdy
b19zdl9wcm9jZnM9bm8KCmZpCgoKCmlmIHRlc3QgIiRhbGxlZ3JvX3N2X3Byb2NmcyIgPSB5ZXM7
IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19IQVZFX1NW
X1BST0NGU19IIDEKX0FDRU9GCgoKCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoj
aW5jbHVkZSAgPHN5cy9wcm9jZnMuaD4KaW50Cm1haW4gKCkKewpzdHJ1Y3QgcHJwc2luZm8gcHNp
bmZvOyBwc2luZm8ucHJfYXJnYyA9IDA7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBj
b25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFj
X3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAq
KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5P
OiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3Qu
ZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz
dC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVz
KTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNv
bmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K
ICBhbGxlZ3JvX3Byb2Nmc19hcmdjdj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHBy
b2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhbGxl
Z3JvX3Byb2Nmc19hcmdjdj1ubwoKZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAoKICAgaWYgdGVzdCAiJGFsbGVncm9fcHJvY2Zz
X2FyZ2N2IiA9IHllczsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBB
TExFR1JPX0hBVkVfUFJPQ0ZTX0FSR0NWIDEKX0FDRU9GCgogICBmaQpmaQoKeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGdldGV4ZWNuYW1lIGluIC1sYyIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgZm9yIGdldGV4ZWNuYW1lIGluIC1sYy4uLiAkRUNIT19DIiA+JjY7IH0K
aWYgdGVzdCAiJHthY19jdl9saWJfY19nZXRleGVjbmFtZStzZXR9IiA9IHNldDsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJfc2F2
ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sYyAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu
JGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFu
IGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5
cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv
dWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlm
CmNoYXIgZ2V0ZXhlY25hbWUgKCk7CmludAptYWluICgpCnsKcmV0dXJuIGdldGV4ZWNuYW1lICgp
OwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m
dGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAiKCgkYWNfdHJ5IiBp
bgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3Ry
eV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190
cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKICBhY19z
dGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJt
IC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK
CSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy
CiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmCiAgICAgICAkYXNfdGVz
dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgogIGFjX2N2X2xpYl9jX2dldGV4ZWNuYW1lPXll
cwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2N2X2xpYl9jX2dldGV4ZWNuYW1lPW5vCmZp
CgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw
YThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4
dApMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2N2X2xpYl9jX2dldGV4ZWNuYW1lIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFj
X2N2X2xpYl9jX2dldGV4ZWNuYW1lIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfbGliX2NfZ2V0ZXhl
Y25hbWUgPSB5ZXM7IHRoZW4KICBhbGxlZ3JvX3N5c19nZXRleGVjbmFtZT15ZXMKZWxzZQogIGFs
bGVncm9fc3lzX2dldGV4ZWNuYW1lPW5vCmZpCgoKaWYgdGVzdCAiJGFsbGVncm9fc3lzX2dldGV4
ZWNuYW1lIiA9IHllczsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBB
TExFR1JPX0hBVkVfR0VURVhFQ05BTUUgMQpfQUNFT0YKCmZpCgojLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0jCiMKIyBYLVdpbmRvd3MKIwoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXh3aW4teGN1cnNv
ciB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX3h3aW5feGN1cnNvcitzZXR9IiA9IHNldDsg
dGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX3h3aW5feGN1cnNvcjsgdGVzdCAiWCRlbmFibGV2YWwi
ICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX3h3aW5feGN1cnNvcj15ZXMKZWxzZQogIGFsbGVn
cm9fZW5hYmxlX3h3aW5feGN1cnNvcj15ZXMKZmkKCiMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS14
d2luLXNobSB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX3h3aW5fc2htK3NldH0iID0gc2V0
OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfeHdpbl9zaG07IHRlc3QgIlgkZW5hYmxldmFsIiAh
PSAiWG5vIiAmJiBhbGxlZ3JvX2VuYWJsZV94d2luX3NobT15ZXMKZWxzZQogIGFsbGVncm9fZW5h
YmxlX3h3aW5fc2htPXllcwpmaQoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXh3aW4tdmlkbW9k
ZSB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX3h3aW5fdmlkbW9kZStzZXR9IiA9IHNldDsg
dGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX3h3aW5fdmlkbW9kZTsgdGVzdCAiWCRlbmFibGV2YWwi
ICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX3h3aW5feGY4NnZpZG1vZGU9eWVzCmVsc2UKICBh
bGxlZ3JvX2VuYWJsZV94d2luX3hmODZ2aWRtb2RlPXllcwpmaQoKIyBDaGVjayB3aGV0aGVyIC0t
ZW5hYmxlLXh3aW4tZGdhMiB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX3h3aW5fZGdhMitz
ZXR9IiA9IHNldDsgdGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX3h3aW5fZGdhMjsgdGVzdCAiWCRl
bmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX3h3aW5feGY4NmRnYTI9eWVzCmVs
c2UKICBhbGxlZ3JvX2VuYWJsZV94d2luX3hmODZkZ2EyPXllcwpmaQoKIyBDaGVjayB3aGV0aGVy
IC0tZW5hYmxlLXhpbSB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX3hpbStzZXR9IiA9IHNl
dDsgdGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX3hpbTsgdGVzdCAiWCRlbmFibGV2YWwiICE9ICJY
bm8iICYmIGFsbGVncm9fZW5hYmxlX3hpbT15ZXMKZWxzZQogIGFsbGVncm9fZW5hYmxlX3hpbT15
ZXMKZmkKCgpfeDExPSJYMTEgc3VwcG9ydDogZGlzYWJsZWQiCnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIGZvciBYIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgWC4uLiAk
RUNIT19DIiA+JjY7IH0KCgojIENoZWNrIHdoZXRoZXIgLS13aXRoLXggd2FzIGdpdmVuLgppZiB0
ZXN0ICIke3dpdGhfeCtzZXR9IiA9IHNldDsgdGhlbgogIHdpdGh2YWw9JHdpdGhfeDsKZmkKCiMg
JGhhdmVfeCBpcyBgeWVzJywgYG5vJywgYGRpc2FibGVkJywgb3IgZW1wdHkgd2hlbiB3ZSBkbyBu
b3QgeWV0IGtub3cuCmlmIHRlc3QgIngkd2l0aF94IiA9IHhubzsgdGhlbgogICMgVGhlIHVzZXIg
ZXhwbGljaXRseSBkaXNhYmxlZCBYLgogIGhhdmVfeD1kaXNhYmxlZAplbHNlCiAgY2FzZSAkeF9p
bmNsdWRlcywkeF9saWJyYXJpZXMgaW4gIygKICAgICpcJyopIHsgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogZXJyb3I6IENhbm5vdCB1c2UgWCBkaXJlY3RvcnkgbmFtZXMgY29udGFpbmluZyAnIiA+
JjUKZWNobyAiJGFzX21lOiBlcnJvcjogQ2Fubm90IHVzZSBYIGRpcmVjdG9yeSBuYW1lcyBjb250
YWluaW5nICciID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7ICMoCiAgICAqLE5P
TkUgfCBOT05FLCopIGlmIHRlc3QgIiR7YWNfY3ZfaGF2ZV94K3NldH0iID0gc2V0OyB0aGVuCiAg
ZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogICMgT25lIG9yIGJvdGgg
b2YgdGhlIHZhcnMgYXJlIG5vdCBzZXQsIGFuZCB0aGVyZSBpcyBubyBjYWNoZWQgdmFsdWUuCmFj
X3hfaW5jbHVkZXM9bm8gYWNfeF9saWJyYXJpZXM9bm8Kcm0gLWYgLXIgY29uZnRlc3QuZGlyCmlm
IG1rZGlyIGNvbmZ0ZXN0LmRpcjsgdGhlbgogIGNkIGNvbmZ0ZXN0LmRpcgogIGNhdCA+SW1ha2Vm
aWxlIDw8J19BQ0VPRicKaW5jcm9vdDoKCUBlY2hvIGluY3Jvb3Q9JyR7SU5DUk9PVH0nCnVzcmxp
YmRpcjoKCUBlY2hvIHVzcmxpYmRpcj0nJHtVU1JMSUJESVJ9JwpsaWJkaXI6CglAZWNobyBsaWJk
aXI9JyR7TElCRElSfScKX0FDRU9GCiAgaWYgKGV4cG9ydCBDQzsgJHtYTUtNRi14bWttZn0pID4v
ZGV2L251bGwgMj4vZGV2L251bGwgJiYgdGVzdCAtZiBNYWtlZmlsZTsgdGhlbgogICAgIyBHTlUg
bWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZy4uLiIsIHdoaWNoIHdvdWxk
IGNvbmZ1c2UgdXMuCiAgICBmb3IgYWNfdmFyIGluIGluY3Jvb3QgdXNybGliZGlyIGxpYmRpcjsg
ZG8KICAgICAgZXZhbCAiYWNfaW1fJGFjX3Zhcj1cYFwke01BS0UtbWFrZX0gJGFjX3ZhciAyPi9k
ZXYvbnVsbCB8IHNlZCAtbiAncy9eJGFjX3Zhcj0vL3AnXGAiCiAgICBkb25lCiAgICAjIE9wZW4g
V2luZG93cyB4bWttZiByZXBvcnRlZGx5IHNldHMgTElCRElSIGluc3RlYWQgb2YgVVNSTElCRElS
LgogICAgZm9yIGFjX2V4dGVuc2lvbiBpbiBhIHNvIHNsOyBkbwogICAgICBpZiB0ZXN0ICEgLWYg
IiRhY19pbV91c3JsaWJkaXIvbGliWDExLiRhY19leHRlbnNpb24iICYmCgkgdGVzdCAtZiAiJGFj
X2ltX2xpYmRpci9saWJYMTEuJGFjX2V4dGVuc2lvbiI7IHRoZW4KCWFjX2ltX3VzcmxpYmRpcj0k
YWNfaW1fbGliZGlyOyBicmVhawogICAgICBmaQogICAgZG9uZQogICAgIyBTY3JlZW4gb3V0IGJv
Z3VzIHZhbHVlcyBmcm9tIHRoZSBpbWFrZSBjb25maWd1cmF0aW9uLiAgVGhleSBhcmUKICAgICMg
Ym9ndXMgYm90aCBiZWNhdXNlIHRoZXkgYXJlIHRoZSBkZWZhdWx0IGFueXdheSwgYW5kIGJlY2F1
c2UKICAgICMgdXNpbmcgdGhlbSB3b3VsZCBicmVhayBnY2Mgb24gc3lzdGVtcyB3aGVyZSBpdCBu
ZWVkcyBmaXhlZCBpbmNsdWRlcy4KICAgIGNhc2UgJGFjX2ltX2luY3Jvb3QgaW4KCS91c3IvaW5j
bHVkZSkgYWNfeF9pbmNsdWRlcz0gOzsKCSopIHRlc3QgLWYgIiRhY19pbV9pbmNyb290L1gxMS9Y
b3MuaCIgJiYgYWNfeF9pbmNsdWRlcz0kYWNfaW1faW5jcm9vdDs7CiAgICBlc2FjCiAgICBjYXNl
ICRhY19pbV91c3JsaWJkaXIgaW4KCS91c3IvbGliIHwgL2xpYikgOzsKCSopIHRlc3QgLWQgIiRh
Y19pbV91c3JsaWJkaXIiICYmIGFjX3hfbGlicmFyaWVzPSRhY19pbV91c3JsaWJkaXIgOzsKICAg
IGVzYWMKICBmaQogIGNkIC4uCiAgcm0gLWYgLXIgY29uZnRlc3QuZGlyCmZpCgojIFN0YW5kYXJk
IHNldCBvZiBjb21tb24gZGlyZWN0b3JpZXMgZm9yIFggaGVhZGVycy4KIyBDaGVjayBYMTEgYmVm
b3JlIFgxMVJuIGJlY2F1c2UgaXQgaXMgb2Z0ZW4gYSBzeW1saW5rIHRvIHRoZSBjdXJyZW50IHJl
bGVhc2UuCmFjX3hfaGVhZGVyX2RpcnM9JwovdXNyL1gxMS9pbmNsdWRlCi91c3IvWDExUjYvaW5j
bHVkZQovdXNyL1gxMVI1L2luY2x1ZGUKL3Vzci9YMTFSNC9pbmNsdWRlCgovdXNyL2luY2x1ZGUv
WDExCi91c3IvaW5jbHVkZS9YMTFSNgovdXNyL2luY2x1ZGUvWDExUjUKL3Vzci9pbmNsdWRlL1gx
MVI0CgovdXNyL2xvY2FsL1gxMS9pbmNsdWRlCi91c3IvbG9jYWwvWDExUjYvaW5jbHVkZQovdXNy
L2xvY2FsL1gxMVI1L2luY2x1ZGUKL3Vzci9sb2NhbC9YMTFSNC9pbmNsdWRlCgovdXNyL2xvY2Fs
L2luY2x1ZGUvWDExCi91c3IvbG9jYWwvaW5jbHVkZS9YMTFSNgovdXNyL2xvY2FsL2luY2x1ZGUv
WDExUjUKL3Vzci9sb2NhbC9pbmNsdWRlL1gxMVI0CgovdXNyL1gzODYvaW5jbHVkZQovdXNyL3gz
ODYvaW5jbHVkZQovdXNyL1hGcmVlODYvaW5jbHVkZS9YMTEKCi91c3IvaW5jbHVkZQovdXNyL2xv
Y2FsL2luY2x1ZGUKL3Vzci91bnN1cHBvcnRlZC9pbmNsdWRlCi91c3IvYXRoZW5hL2luY2x1ZGUK
L3Vzci9sb2NhbC94MTFyNS9pbmNsdWRlCi91c3IvbHBwL1hhbXBsZXMvaW5jbHVkZQoKL3Vzci9v
cGVud2luL2luY2x1ZGUKL3Vzci9vcGVud2luL3NoYXJlL2luY2x1ZGUnCgppZiB0ZXN0ICIkYWNf
eF9pbmNsdWRlcyIgPSBubzsgdGhlbgogICMgR3Vlc3Mgd2hlcmUgdG8gZmluZCBpbmNsdWRlIGZp
bGVzLCBieSBsb29raW5nIGZvciBYbGliLmguCiAgIyBGaXJzdCwgdHJ5IHVzaW5nIHRoYXQgZmls
ZSB3aXRoIG5vIHNwZWNpYWwgZGlyZWN0b3J5IHNwZWNpZmllZC4KICBjYXQgPmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQg
Y29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxYMTEvWGxpYi5oPgpfQUNFT0YKaWYgeyAoYWNfdHJ5
PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwg
KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNf
dHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIp
ID4mNQogIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQog
IGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy
CiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g
Pi9kZXYvbnVsbCAmJiB7CgkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193
ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9OyB0aGVuCiAg
IyBXZSBjYW4gY29tcGlsZSB1c2luZyBYIGhlYWRlcnMgd2l0aCBubyBzcGVjaWFsIGluY2x1ZGUg
ZGlyZWN0b3J5LgphY194X2luY2x1ZGVzPQplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBmb3Ig
YWNfZGlyIGluICRhY194X2hlYWRlcl9kaXJzOyBkbwogIGlmIHRlc3QgLXIgIiRhY19kaXIvWDEx
L1hsaWIuaCI7IHRoZW4KICAgIGFjX3hfaW5jbHVkZXM9JGFjX2RpcgogICAgYnJlYWsKICBmaQpk
b25lCmZpCgpybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dApmaSAjICRhY194X2lu
Y2x1ZGVzID0gbm8KCmlmIHRlc3QgIiRhY194X2xpYnJhcmllcyIgPSBubzsgdGhlbgogICMgQ2hl
Y2sgZm9yIHRoZSBsaWJyYXJpZXMuCiAgIyBTZWUgaWYgd2UgZmluZCB0aGVtIHdpdGhvdXQgYW55
IHNwZWNpYWwgb3B0aW9ucy4KICAjIERvbid0IGFkZCB0byAkTElCUyBwZXJtYW5lbnRseS4KICBh
Y19zYXZlX0xJQlM9JExJQlMKICBMSUJTPSItbFgxMSAkTElCUyIKICBjYXQgPmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQg
Y29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxYMTEvWGxpYi5oPgppbnQKbWFpbiAoKQp7ClhybUlu
aXRpYWxpemUgKCkKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19v
YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCmNhc2UgIigo
JGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK
ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElO
RU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3Qu
ZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz
dC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVz
KTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNv
bmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJgogICAg
ICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBMSUJTPSRhY19zYXZlX0xJ
QlMKIyBXZSBjYW4gbGluayBYIHByb2dyYW1zIHdpdGggbm8gc3BlY2lhbCBsaWJyYXJ5IHBhdGgu
CmFjX3hfbGlicmFyaWVzPQplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCUxJQlM9JGFjX3NhdmVf
TElCUwpmb3IgYWNfZGlyIGluIGBlY2hvICIkYWNfeF9pbmNsdWRlcyAkYWNfeF9oZWFkZXJfZGly
cyIgfCBzZWQgcy9pbmNsdWRlL2xpYi9nYApkbwogICMgRG9uJ3QgZXZlbiBhdHRlbXB0IHRoZSBo
YWlyIG9mIHRyeWluZyB0byBsaW5rIGFuIFggcHJvZ3JhbSEKICBmb3IgYWNfZXh0ZW5zaW9uIGlu
IGEgc28gc2w7IGRvCiAgICBpZiB0ZXN0IC1yICIkYWNfZGlyL2xpYlgxMS4kYWNfZXh0ZW5zaW9u
IjsgdGhlbgogICAgICBhY194X2xpYnJhcmllcz0kYWNfZGlyCiAgICAgIGJyZWFrIDIKICAgIGZp
CiAgZG9uZQpkb25lCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq
ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQg
Y29uZnRlc3QuJGFjX2V4dApmaSAjICRhY194X2xpYnJhcmllcyA9IG5vCgpjYXNlICRhY194X2lu
Y2x1ZGVzLCRhY194X2xpYnJhcmllcyBpbiAjKAogIG5vLCogfCAqLG5vIHwgKlwnKikKICAgICMg
RGlkbid0IGZpbmQgWCwgb3IgYSBkaXJlY3RvcnkgaGFzICInIiBpbiBpdHMgbmFtZS4KICAgIGFj
X2N2X2hhdmVfeD0iaGF2ZV94PW5vIjs7ICMoCiAgKikKICAgICMgUmVjb3JkIHdoZXJlIHdlIGZv
dW5kIFggZm9yIHRoZSBjYWNoZS4KICAgIGFjX2N2X2hhdmVfeD0iaGF2ZV94PXllc1wKCWFjX3hf
aW5jbHVkZXM9JyRhY194X2luY2x1ZGVzJ1wKCWFjX3hfbGlicmFyaWVzPSckYWNfeF9saWJyYXJp
ZXMnIgplc2FjCmZpCjs7ICMoCiAgICAqKSBoYXZlX3g9eWVzOzsKICBlc2FjCiAgZXZhbCAiJGFj
X2N2X2hhdmVfeCIKZmkgIyAkd2l0aF94ICE9IG5vCgppZiB0ZXN0ICIkaGF2ZV94IiAhPSB5ZXM7
IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXZlX3giID4mNQplY2hv
ICIke0VDSE9fVH0kaGF2ZV94IiA+JjY7IH0KICBub194PXllcwplbHNlCiAgIyBJZiBlYWNoIG9m
IHRoZSB2YWx1ZXMgd2FzIG9uIHRoZSBjb21tYW5kIGxpbmUsIGl0IG92ZXJyaWRlcyBlYWNoIGd1
ZXNzLgogIHRlc3QgIngkeF9pbmNsdWRlcyIgPSB4Tk9ORSAmJiB4X2luY2x1ZGVzPSRhY194X2lu
Y2x1ZGVzCiAgdGVzdCAieCR4X2xpYnJhcmllcyIgPSB4Tk9ORSAmJiB4X2xpYnJhcmllcz0kYWNf
eF9saWJyYXJpZXMKICAjIFVwZGF0ZSB0aGUgY2FjaGUgdmFsdWUgdG8gcmVmbGVjdCB0aGUgY29t
bWFuZCBsaW5lIHZhbHVlcy4KICBhY19jdl9oYXZlX3g9ImhhdmVfeD15ZXNcCglhY194X2luY2x1
ZGVzPSckeF9pbmNsdWRlcydcCglhY194X2xpYnJhcmllcz0nJHhfbGlicmFyaWVzJyIKICB7IGVj
aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGxpYnJhcmllcyAkeF9saWJyYXJpZXMsIGhlYWRl
cnMgJHhfaW5jbHVkZXMiID4mNQplY2hvICIke0VDSE9fVH1saWJyYXJpZXMgJHhfbGlicmFyaWVz
LCBoZWFkZXJzICR4X2luY2x1ZGVzIiA+JjY7IH0KZmkKCmlmIHRlc3QgLXogIiRub194IjsgdGhl
bgogIGFsbGVncm9fc3VwcG9ydF94d2luZG93cz15ZXMKCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FD
RU9GCiNkZWZpbmUgQUxMRUdST19XSVRIX1hXSU5ET1dTIDEKX0FDRU9GCgoKICBpZiB0ZXN0IC1u
ICIkeF9pbmNsdWRlcyI7IHRoZW4KICAgIENQUEZMQUdTPSItSSR4X2luY2x1ZGVzICRDUFBGTEFH
UyIKICBmaQogIGlmIHRlc3QgLW4gIiR4X2xpYnJhcmllcyI7IHRoZW4KICAgIExERkxBR1M9Ii1M
JHhfbGlicmFyaWVzICRMREZMQUdTIgogICAgQUxMRUdST19YV0lORE9XU19MSUJESVI9IiR4X2xp
YnJhcmllcyIKICBmaQogIExJQlM9Ii1sWDExICRMSUJTIgogIF94MTE9IlgxMSBzdXBwb3J0OiBl
bmFibGVkIgogIF94MTFleHQ9IiIKCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu
ZyBmb3IgWE1pc3NpbmdFeHRlbnNpb24gaW4gLWxYZXh0IiA+JjUKZWNobyAkRUNIT19OICJjaGVj
a2luZyBmb3IgWE1pc3NpbmdFeHRlbnNpb24gaW4gLWxYZXh0Li4uICRFQ0hPX0MiID4mNjsgfQpp
ZiB0ZXN0ICIke2FjX2N2X2xpYl9YZXh0X1hNaXNzaW5nRXh0ZW5zaW9uK3NldH0iID0gc2V0OyB0
aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2NoZWNr
X2xpYl9zYXZlX0xJQlM9JExJQlMKTElCUz0iLWxYZXh0ICAkTElCUyIKY2F0ID5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmgg
Pj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5k
IGNvbmZkZWZzLmguICAqLwoKLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg
dG8gYXZvaWQgYW4gZXJyb3IuCiAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo
ZSByZXR1cm4gdHlwZSBvZiBhIEdDQwogICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw
cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJu
ICJDIgojZW5kaWYKY2hhciBYTWlzc2luZ0V4dGVuc2lvbiAoKTsKaW50Cm1haW4gKCkKewpyZXR1
cm4gWE1pc3NpbmdFeHRlbnNpb24gKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBj
b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19s
aW5rIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo
bz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBc
IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsi
KSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0
LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVy
ciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4
aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJ
IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l
eGVleHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWNf
Y3ZfbGliX1hleHRfWE1pc3NpbmdFeHRlbnNpb249eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZh
aWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1
CgoJYWNfY3ZfbGliX1hleHRfWE1pc3NpbmdFeHRlbnNpb249bm8KZmkKCnJtIC1mIGNvcmUgY29u
ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBc
CiAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkxJQlM9JGFjX2NoZWNr
X2xpYl9zYXZlX0xJQlMKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf
bGliX1hleHRfWE1pc3NpbmdFeHRlbnNpb24iID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfbGli
X1hleHRfWE1pc3NpbmdFeHRlbnNpb24iID4mNjsgfQppZiB0ZXN0ICRhY19jdl9saWJfWGV4dF9Y
TWlzc2luZ0V4dGVuc2lvbiA9IHllczsgdGhlbgogIF94MTFleHQ9IiRfeDExZXh0IFhleHQiCiAg
ICBMSUJTPSItbFhleHQgJExJQlMiCmZpCgoKICAgIGlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX1gx
MV94cG1faCtzZXR9IiA9IHNldDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciBYMTEveHBtLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBYMTEveHBt
LmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX1gxMV94cG1faCtz
ZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZp
CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9YMTFfeHBtX2gi
ID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX1gxMV94cG1faCIgPiY2OyB9CmVsc2UK
ICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgWDExL3hwbS5oIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgWDEx
L3hwbS5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0
IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25m
dGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZk
ZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5jbHVkZSA8WDExL3hwbS5oPgpfQUNF
T0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpj
YXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj
X3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNf
bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy
PmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy
MSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+
JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQg
JGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRl
c3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq
ZXh0OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m
NQoKCWFjX2hlYWRlcl9jb21waWxlcj1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u
ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFk
ZXJfY29tcGlsZXIiID4mNjsgfQoKIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nIFgxMS94cG0uaCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9f
TiAiY2hlY2tpbmcgWDExL3hwbS5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP
RgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxYMTEveHBtLmg+Cl9BQ0VPRgppZiB7
IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKY2FzZSAiKCgkYWNfdHJ5IiBpbgog
ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9l
Y2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf
ZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRl
c3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m
dGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVj
aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3Rh
dHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxh
ZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH07
IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVk
IHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAg
YWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
ZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0KCiMgU28/ICBXaGF0
IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9w
cmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCiAgeWVzOm5vOiApCiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBYMTEveHBtLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21w
aWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6IFgxMS94cG0uaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0
aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J
Tkc6IFgxMS94cG0uaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1
CmVjaG8gIiRhc19tZTogV0FSTklORzogWDExL3hwbS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNv
bXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCiAgICA7Owog
IG5vOnllczoqICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFgxMS94cG0u
aDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJO
SU5HOiBYMTEveHBtLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFgxMS94cG0uaDogICAgIGNoZWNrIGZv
ciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklO
RzogWDExL3hwbS5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/
IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogWDExL3hwbS5oOiBz
ZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6
IFgxMS94cG0uaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQogICAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogWDExL3hwbS5oOiAgICAgc2VjdGlvbiBcIlBy
ZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiBYMTEveHBtLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVk
XCIiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBYMTEveHBtLmg6
IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFz
X21lOiBXQVJOSU5HOiBYMTEveHBtLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29y
J3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogWDEx
L3hwbS5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2Ui
ID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IFgxMS94cG0uaDogaW4gdGhlIGZ1dHVyZSwgdGhl
IGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFgxMS94cG0uaCIgPiY1CmVjaG8gJEVDSE9f
TiAiY2hlY2tpbmcgZm9yIFgxMS94cG0uaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHth
Y19jdl9oZWFkZXJfWDExX3hwbV9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIo
Y2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRlcl9YMTFfeHBtX2g9JGFjX2hl
YWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hl
YWRlcl9YMTFfeHBtX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX1gxMV94cG1f
aCIgPiY2OyB9CgpmaQppZiB0ZXN0ICRhY19jdl9oZWFkZXJfWDExX3hwbV9oID0geWVzOyB0aGVu
CiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFhwbUNyZWF0ZVBpeG1hcEZy
b21EYXRhIGluIC1sWHBtIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgWHBtQ3JlYXRl
UGl4bWFwRnJvbURhdGEgaW4gLWxYcG0uLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNf
Y3ZfbGliX1hwbV9YcG1DcmVhdGVQaXhtYXBGcm9tRGF0YStzZXR9IiA9IHNldDsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJfc2F2
ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sWHBtICAkTElCUyIKY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz
dC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZz
LmguICAqLwoKLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg
YW4gZXJyb3IuCiAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g
dHlwZSBvZiBhIEdDQwogICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg
d291bGQgc3RpbGwgYXBwbHkuICAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIgojZW5k
aWYKY2hhciBYcG1DcmVhdGVQaXhtYXBGcm9tRGF0YSAoKTsKaW50Cm1haW4gKCkKewpyZXR1cm4g
WHBtQ3JlYXRlUGl4bWFwRnJvbURhdGEgKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAt
ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRh
Y19saW5rIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf
ZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNo
byBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xp
bmsiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0
ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0
LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAg
KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8
fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRh
Y19leGVleHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAg
YWNfY3ZfbGliX1hwbV9YcG1DcmVhdGVQaXhtYXBGcm9tRGF0YT15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj
X2V4dCA+JjUKCglhY19jdl9saWJfWHBtX1hwbUNyZWF0ZVBpeG1hcEZyb21EYXRhPW5vCmZpCgpy
bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThf
Y29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApM
SUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2N2X2xpYl9YcG1fWHBtQ3JlYXRlUGl4bWFwRnJvbURhdGEiID4mNQplY2hvICIk
e0VDSE9fVH0kYWNfY3ZfbGliX1hwbV9YcG1DcmVhdGVQaXhtYXBGcm9tRGF0YSIgPiY2OyB9Cmlm
IHRlc3QgJGFjX2N2X2xpYl9YcG1fWHBtQ3JlYXRlUGl4bWFwRnJvbURhdGEgPSB5ZXM7IHRoZW4K
ICBMSUJTPSItbFhwbSAkTElCUyIKICAgIF94MTFleHQ9IiRfeDExZXh0IFhwbSIKCmNhdCA+PmNv
bmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19YV0lORE9XU19XSVRIX1hQTSAxCl9B
Q0VPRgoKCmZpCgoKZmkKCgoKICAgIGlmIHRlc3QgLW4gIiRhbGxlZ3JvX2VuYWJsZV94d2luX3hj
dXJzb3IiOyB0aGVuCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgWGN1
cnNvckltYWdlQ3JlYXRlIGluIC1sWGN1cnNvciIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
Zm9yIFhjdXJzb3JJbWFnZUNyZWF0ZSBpbiAtbFhjdXJzb3IuLi4gJEVDSE9fQyIgPiY2OyB9Cmlm
IHRlc3QgIiR7YWNfY3ZfbGliX1hjdXJzb3JfWGN1cnNvckltYWdlQ3JlYXRlK3NldH0iID0gc2V0
OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2No
ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKTElCUz0iLWxYY3Vyc29yICAkTElCUyIKY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZk
ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
LyogZW5kIGNvbmZkZWZzLmguICAqLwoKLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90
b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCiAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h
dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwogICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1
bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwojaWZkZWYgX19jcGx1c3BsdXMK
ZXh0ZXJuICJDIgojZW5kaWYKY2hhciBYY3Vyc29ySW1hZ2VDcmVhdGUgKCk7CmludAptYWluICgp
CnsKcmV0dXJuIFhjdXJzb3JJbWFnZUNyZWF0ZSAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9G
CnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3Ry
eT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj
X3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFs
ICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIk
YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycg
Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29u
ZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2Zs
YWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0
ZXN0JGFjX2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRo
ZW4KICBhY19jdl9saWJfWGN1cnNvcl9YY3Vyc29ySW1hZ2VDcmVhdGU9eWVzCmVsc2UKICBlY2hv
ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0
LiRhY19leHQgPiY1CgoJYWNfY3ZfbGliX1hjdXJzb3JfWGN1cnNvckltYWdlQ3JlYXRlPW5vCmZp
CgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw
YThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4
dApMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2N2X2xpYl9YY3Vyc29yX1hjdXJzb3JJbWFnZUNyZWF0ZSIgPiY1CmVjaG8g
IiR7RUNIT19UfSRhY19jdl9saWJfWGN1cnNvcl9YY3Vyc29ySW1hZ2VDcmVhdGUiID4mNjsgfQpp
ZiB0ZXN0ICRhY19jdl9saWJfWGN1cnNvcl9YY3Vyc29ySW1hZ2VDcmVhdGUgPSB5ZXM7IHRoZW4K
ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VP
RgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxYMTEvWGxpYi5oPgog
ICAgICAgICAgICAgICAgICAgICAgI2luY2x1ZGUgPFgxMS9YY3Vyc29yL1hjdXJzb3IuaD4KaW50
Cm1haW4gKCkKewpYY3Vyc29ySW1hZ2UgKnhjdXJzb3JfaW1hZ2U7CiAgICAgICAgICAgICAgICAg
ICAgICBYY3Vyc29ySW1hZ2VMb2FkQ3Vyc29yKDAsIHhjdXJzb3JfaW1hZ2UpOwogICAgICAgICAg
ICAgICAgICAgICAgWGN1cnNvclN1cHBvcnRzQVJHQigwKTsKCiAgOwogIHJldHVybiAwOwp9Cl9B
Q0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRh
c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIp
IDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu
ZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJy
ID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Cgkg
dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v
YmpleHQ7IHRoZW4KICBMSUJTPSItbFhjdXJzb3IgJExJQlMiCiAgICAgICAgX3gxMWV4dD0iJF94
MTFleHQgWGN1cnNvciIKCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdS
T19YV0lORE9XU19XSVRIX1hDVVJTT1IgMQpfQUNFT0YKCgplbHNlCiAgZWNobyAiJGFzX21lOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m
NQoKCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0
ZXN0LiRhY19leHQKCmZpCgogIGZpCgogICAgaWYgdGVzdCAtbiAiJGFsbGVncm9fZW5hYmxlX3h3
aW5fc2htIjsgdGhlbgogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFhT
aG1RdWVyeUV4dGVuc2lvbiBpbiAtbFhleHQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZv
ciBYU2htUXVlcnlFeHRlbnNpb24gaW4gLWxYZXh0Li4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0
ICIke2FjX2N2X2xpYl9YZXh0X1hTaG1RdWVyeUV4dGVuc2lvbitzZXR9IiA9IHNldDsgdGhlbgog
IGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJf
c2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sWGV4dCAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29u
ZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2
b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0
dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90
eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIK
I2VuZGlmCmNoYXIgWFNobVF1ZXJ5RXh0ZW5zaW9uICgpOwppbnQKbWFpbiAoKQp7CnJldHVybiBY
U2htUXVlcnlFeHRlbnNpb24gKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25m
dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19saW5r
IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c
JGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwk
YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAy
PmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy
MSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+
JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQg
JGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRl
c3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl
eHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWNfY3Zf
bGliX1hleHRfWFNobVF1ZXJ5RXh0ZW5zaW9uPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoK
CWFjX2N2X2xpYl9YZXh0X1hTaG1RdWVyeUV4dGVuc2lvbj1ubwpmaQoKcm0gLWYgY29yZSBjb25m
dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK
ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tf
bGliX3NhdmVfTElCUwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9s
aWJfWGV4dF9YU2htUXVlcnlFeHRlbnNpb24iID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfbGli
X1hleHRfWFNobVF1ZXJ5RXh0ZW5zaW9uIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfbGliX1hleHRf
WFNobVF1ZXJ5RXh0ZW5zaW9uID0geWVzOyB0aGVuCiAgX3gxMWV4dD0iJF94MTFleHQgWFNobSIK
CmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19YV0lORE9XU19XSVRI
X1NITSAxCl9BQ0VPRgoKZmkKCiAgZmkKCiAgICBpZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVf
eHdpbl94Zjg2dmlkbW9kZSI7IHRoZW4KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciBYRjg2VmlkTW9kZVF1ZXJ5RXh0ZW5zaW9uIGluIC1sWHhmODZ2bSIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgZm9yIFhGODZWaWRNb2RlUXVlcnlFeHRlbnNpb24gaW4gLWxYeGY4
NnZtLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2xpYl9YeGY4NnZtX1hGODZW
aWRNb2RlUXVlcnlFeHRlbnNpb24rc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihj
YWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpM
SUJTPSItbFh4Zjg2dm0gICRMSUJTIgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
Y29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK
Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgov
KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4K
ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg
R0NDCiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls
bCBhcHBseS4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgpjaGFyIFhG
ODZWaWRNb2RlUXVlcnlFeHRlbnNpb24gKCk7CmludAptYWluICgpCnsKcmV0dXJuIFhGODZWaWRN
b2RlUXVlcnlFeHRlbnNpb24gKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25m
dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19saW5r
IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c
JGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwk
YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAy
PmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy
MSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+
JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQg
JGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRl
c3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl
eHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWNfY3Zf
bGliX1h4Zjg2dm1fWEY4NlZpZE1vZGVRdWVyeUV4dGVuc2lvbj15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj
X2V4dCA+JjUKCglhY19jdl9saWJfWHhmODZ2bV9YRjg2VmlkTW9kZVF1ZXJ5RXh0ZW5zaW9uPW5v
CmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0
X2lwYThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFj
X2V4dApMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogJGFjX2N2X2xpYl9YeGY4NnZtX1hGODZWaWRNb2RlUXVlcnlFeHRlbnNpb24i
ID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX1h4Zjg2dm1fWEY4NlZpZE1vZGVRdWVyeUV4
dGVuc2lvbiIgPiY2OyB9CmlmIHRlc3QgJGFjX2N2X2xpYl9YeGY4NnZtX1hGODZWaWRNb2RlUXVl
cnlFeHRlbnNpb24gPSB5ZXM7IHRoZW4KICBMSUJTPSItbFh4Zjg2dm0gJExJQlMiCiAgICAgIF94
MTFleHQ9IiRfeDExZXh0IFhGODZWaWRNb2RlIgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YK
I2RlZmluZSBBTExFR1JPX1hXSU5ET1dTX1dJVEhfWEY4NlZJRE1PREUgMQpfQUNFT0YKCmZpCgog
IGZpCgogICAgaWYgdGVzdCAtbiAiJGFsbGVncm9fZW5hYmxlX3h3aW5feGY4NmRnYTIiOyB0aGVu
CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgWERHQVF1ZXJ5RXh0ZW5z
aW9uIGluIC1sWHhmODZkZ2EiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBYREdBUXVl
cnlFeHRlbnNpb24gaW4gLWxYeGY4NmRnYS4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHth
Y19jdl9saWJfWHhmODZkZ2FfWERHQVF1ZXJ5RXh0ZW5zaW9uK3NldH0iID0gc2V0OyB0aGVuCiAg
ZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2NoZWNrX2xpYl9z
YXZlX0xJQlM9JExJQlMKTElCUz0iLWxYeGY4NmRnYSAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+
Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv
IGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv
dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAi
QyIKI2VuZGlmCmNoYXIgWERHQVF1ZXJ5RXh0ZW5zaW9uICgpOwppbnQKbWFpbiAoKQp7CnJldHVy
biBYREdBUXVlcnlFeHRlbnNpb24gKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBj
b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRhY19s
aW5rIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo
bz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBc
IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xpbmsi
KSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0
LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVy
ciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4
aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJ
IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l
eGVleHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAgYWNf
Y3ZfbGliX1h4Zjg2ZGdhX1hER0FRdWVyeUV4dGVuc2lvbj15ZXMKZWxzZQogIGVjaG8gIiRhc19t
ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4
dCA+JjUKCglhY19jdl9saWJfWHhmODZkZ2FfWERHQVF1ZXJ5RXh0ZW5zaW9uPW5vCmZpCgpybSAt
ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u
ZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJT
PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs
dDogJGFjX2N2X2xpYl9YeGY4NmRnYV9YREdBUXVlcnlFeHRlbnNpb24iID4mNQplY2hvICIke0VD
SE9fVH0kYWNfY3ZfbGliX1h4Zjg2ZGdhX1hER0FRdWVyeUV4dGVuc2lvbiIgPiY2OyB9CmlmIHRl
c3QgJGFjX2N2X2xpYl9YeGY4NmRnYV9YREdBUXVlcnlFeHRlbnNpb24gPSB5ZXM7IHRoZW4KICBh
bGxlZ3JvX3N1cHBvcnRfeGY4NmRnYTI9eWVzCiAgICAgIGlmIHRlc3QgLXogIiRhbGxlZ3JvX3N1
cHBvcnRfbW9kdWxlcyI7IHRoZW4KICAgICAgICBMSUJTPSItbFh4Zjg2ZGdhICRMSUJTIgogICAg
ICBmaQogICAgICBfeDExZXh0PSIkX3gxMWV4dCBYREdBIgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxf
QUNFT0YKI2RlZmluZSBBTExFR1JPX1hXSU5ET1dTX1dJVEhfWEY4NkRHQTIgMQpfQUNFT0YKCmZp
CgogIGZpCgogICAgaWYgdGVzdCAtbiAiJGFsbGVncm9fZW5hYmxlX3hpbSI7IHRoZW4KICAgIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBYT3BlbklNIGluIC1sWDExIiA+JjUK
ZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgWE9wZW5JTSBpbiAtbFgxMS4uLiAkRUNIT19DIiA+
JjY7IH0KaWYgdGVzdCAiJHthY19jdl9saWJfWDExX1hPcGVuSU0rc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY2hlY2tfbGli
X3NhdmVfTElCUz0kTElCUwpMSUJTPSItbFgxMSAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29u
ZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2
b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0
dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90
eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIK
I2VuZGlmCmNoYXIgWE9wZW5JTSAoKTsKaW50Cm1haW4gKCkKewpyZXR1cm4gWE9wZW5JTSAoKTsK
ICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl
c3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4K
ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlf
ZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5
X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3Rh
dHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAt
ZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElO
RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Cgkg
dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgog
ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3Rf
eCBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBhY19jdl9saWJfWDExX1hPcGVuSU09eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8n
IGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfY3ZfbGliX1gxMV9YT3BlbklNPW5vCmZpCgpybSAt
ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u
ZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJT
PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs
dDogJGFjX2N2X2xpYl9YMTFfWE9wZW5JTSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9saWJf
WDExX1hPcGVuSU0iID4mNjsgfQppZiB0ZXN0ICRhY19jdl9saWJfWDExX1hPcGVuSU0gPSB5ZXM7
IHRoZW4KICBfeDExZXh0PSIkX3gxMWV4dCBYSU0iCgpjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VP
RgojZGVmaW5lIEFMTEVHUk9fWFdJTkRPV1NfV0lUSF9YSU0gMQpfQUNFT0YKCmZpCgogIGZpCgog
IGlmIHRlc3QgLW4gIiRfeDExZXh0IjsgdGhlbgogICAgX3gxMT0iJF94MTEgd2l0aDokX3gxMWV4
dCIKICBmaQoKZmkKCmlmIHRlc3QgIiRhbGxlZ3JvX3N1cHBvcnRfeHdpbmRvd3MiID0geWVzOyB0
aGVuCiAgQUxMRUdST19NQVlCRV9YV0lORE9XU19GSUxFUz1BTExFR1JPX1NSQ19YX0ZJTEVTCiAg
QUxMRUdST19NQVlCRV9MSUJfWF9FWEVfU09VUkNFUz1BTExFR1JPX0xJQl9YX0VYRV9TT1VSQ0VT
CiAgQUxMRUdST19NQVlCRV9MSUJfWF9FWEVTPUFMTEVHUk9fTElCX1hfRVhFUwplbHNlCiAgQUxM
RUdST19NQVlCRV9YV0lORE9XU19GSUxFUz1BTExFR1JPX0VNUFRZX0xJU1QKICBBTExFR1JPX01B
WUJFX0xJQl9YX0VYRV9TT1VSQ0VTPUFMTEVHUk9fRU1QVFlfTElTVAogIEFMTEVHUk9fTUFZQkVf
TElCX1hfRVhFUz1BTExFR1JPX0VNUFRZX0xJU1QKZmkKCgoKCgppZiB0ZXN0ICJYJGFsbGVncm9f
c3VwcG9ydF94Zjg2ZGdhMiIgPSAiWHllcyI7IHRoZW4KICBfZW5hYmxlZF9tb2R1bGVzPSJkZ2Ey
ICRfZW5hYmxlZF9tb2R1bGVzIgplbHNlCiAgX2Rpc2FibGVkX21vZHVsZXM9ImRnYTIgJF9kaXNh
YmxlZF9tb2R1bGVzIgpmaQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwojCiMgTGludXggY29uc29s
ZQojCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGludXggd2FzIGdpdmVuLgppZiB0ZXN0ICIk
e2VuYWJsZV9saW51eCtzZXR9IiA9IHNldDsgdGhlbgogIGVuYWJsZXZhbD0kZW5hYmxlX2xpbnV4
OyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfbGludXg9eWVz
CmVsc2UKICBhbGxlZ3JvX2VuYWJsZV9saW51eD15ZXMKZmkKCgojIENoZWNrIHdoZXRoZXIgLS1l
bmFibGUtdmdhIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVfdmdhK3NldH0iID0gc2V0OyB0
aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfdmdhOyB0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIg
JiYgYWxsZWdyb19lbmFibGVfdmdhPXllcwplbHNlCiAgYWxsZWdyb19lbmFibGVfdmdhPXllcwpm
aQoKCiMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1mYmNvbiB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7
ZW5hYmxlX2ZiY29uK3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfZmJjb247
IHRlc3QgIlgkZW5hYmxldmFsIiAhPSAiWG5vIiAmJiBhbGxlZ3JvX2VuYWJsZV9mYmNvbj15ZXMK
ZWxzZQogIGFsbGVncm9fZW5hYmxlX2ZiY29uPXllcwpmaQoKCiMgQ2hlY2sgd2hldGhlciAtLWVu
YWJsZS12YmVhZiB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX3ZiZWFmK3NldH0iID0gc2V0
OyB0aGVuCiAgZW5hYmxldmFsPSRlbmFibGVfdmJlYWY7IHRlc3QgIlgkZW5hYmxldmFsIiAhPSAi
WG5vIiAmJiBhbGxlZ3JvX2VuYWJsZV92YmVhZj15ZXMKZWxzZQogIGFsbGVncm9fZW5hYmxlX3Zi
ZWFmPW5vCmZpCgoKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN2Z2FsaWIgd2FzIGdpdmVuLgpp
ZiB0ZXN0ICIke2VuYWJsZV9zdmdhbGliK3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSRl
bmFibGVfc3ZnYWxpYjsgdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5h
YmxlX3N2Z2FsaWI9eWVzCmVsc2UKICBhbGxlZ3JvX2VuYWJsZV9zdmdhbGliPXllcwpmaQoKCkFM
TEVHUk9fTUFZQkVfTElOVVhfRklMRVM9QUxMRUdST19FTVBUWV9MSVNUCgphbGxlZ3JvX3N1cHBv
cnRfbGludXg9bm8KYWxsZWdyb19zeXN0ZW09YHVuYW1lIC1zIHwgdHIgQS1aIGEtemAKY2FzZSAi
JGFsbGVncm9fc3lzdGVtIiBpbgoKKmxpbnV4KikKICBpZiB0ZXN0ICJYJGFsbGVncm9fZW5hYmxl
X2xpbnV4IiA9ICJYeWVzIjsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmlu
ZSBBTExFR1JPX0xJTlVYIDEKX0FDRU9GCgogICAgQUxMRUdST19NQVlCRV9MSU5VWF9GSUxFUz1B
TExFR1JPX1NSQ19MSU5VWF9GSUxFUwoKICAgIGFsbGVncm9fc3VwcG9ydF9saW51eD15ZXMKCiAg
ICBpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfaW9faCtzZXR9IiA9IHNldDsgdGhlbgogIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvaW8uaCIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9pby5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIk
e2FjX2N2X2hlYWRlcl9zeXNfaW9faCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAi
KGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
JGFjX2N2X2hlYWRlcl9zeXNfaW9faCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJf
c3lzX2lvX2giID4mNjsgfQplbHNlCiAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHN5cy9pby5oIHVzYWJpbGl0eSIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgc3lzL2lvLmggdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNjsgfQpj
YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpj
YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8
PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiRhY19pbmNsdWRlc19kZWZhdWx0CiNpbmNs
dWRlIDxzeXMvaW8uaD4KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNf
dHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxc
KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2Fj
CmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2
YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12
ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQog
IGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193
ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3Qg
LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKZWxz
ZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycg
Y29uZnRlc3QuJGFjX2V4dCA+JjUKCglhY19oZWFkZXJfY29tcGlsZXI9bm8KZmkKCnJtIC1mIGNv
cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAp7IGVj
aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQplY2hv
ICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KCiMgSXMgdGhlIGhlYWRlciBw
cmVzZW50Pwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvaW8uaCBwcmVzZW5j
ZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL2lvLmggcHJlc2VuY2UuLi4gJEVDSE9f
QyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAg
Ki8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN5cy9p
by5oPgpfQUNFT0YKaWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCmNhc2Ug
IigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5
OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTok
TElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh
Y19leHQiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNv
bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0
ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1
CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CgkgdGVzdCAteiAiJGFjX2Nf
cHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRl
c3QuZXJyCiAgICAgICB9OyB0aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCmVsc2UKICBlY2hv
ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0
LiRhY19leHQgPiY1CgogIGFjX2hlYWRlcl9wcmVwcm9jPW5vCmZpCgpybSAtZiBjb25mdGVzdC5l
cnIgY29uZnRlc3QuJGFjX2V4dAp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19o
ZWFkZXJfcHJlcHJvYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2
OyB9CgojIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KY2FzZSAkYWNfaGVhZGVyX2NvbXBp
bGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbgogIHllczpu
bzogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL2lvLmg6IGFjY2Vw
dGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQpl
Y2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9pby5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIs
IHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogV0FSTklORzogc3lzL2lvLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIn
cyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9pby5oOiBwcm9jZWVkaW5n
IHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAgYWNfaGVhZGVyX3ByZXByb2M9
eWVzCiAgICA7OwogIG5vOnllczoqICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J
Tkc6IHN5cy9pby5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIk
YXNfbWU6IFdBUk5JTkc6IHN5cy9pby5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQi
ID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvaW8uaDogICAg
IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19t
ZTogV0FSTklORzogc3lzL2lvLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUg
aGVhZGVycz8iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMv
aW8uaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKZWNobyAiJGFzX21lOiBX
QVJOSU5HOiBzeXMvaW8uaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQog
ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL2lvLmg6ICAgICBzZWN0aW9u
IFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6IHN5cy9pby5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21w
aWxlZFwiIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL2lv
Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAi
JGFzX21lOiBXQVJOSU5HOiBzeXMvaW8uaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNz
b3IncyByZXN1bHQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBz
eXMvaW8uaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNl
IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvaW8uaDogaW4gdGhlIGZ1dHVyZSwgdGhl
IGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9pby5oIiA+JjUKZWNobyAkRUNIT19O
ICJjaGVja2luZyBmb3Igc3lzL2lvLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNf
Y3ZfaGVhZGVyX3N5c19pb19oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRlcl9zeXNfaW9faD0kYWNfaGVhZGVy
X3ByZXByb2MKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVy
X3N5c19pb19oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfaW9faCIgPiY2
OyB9CgpmaQppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX2lvX2ggPSB5ZXM7IHRoZW4KICBjYXQg
Pj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fSEFWRV9TWVNfSU9fSCAxCl9B
Q0VPRgoKZmkKCgoKICAgIGlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX2xpbnV4X2pveXN0aWNrX2gr
c2V0fSIgPSBzZXQ7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig
bGludXgvam95c3RpY2suaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpbnV4L2pv
eXN0aWNrLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX2xpbnV4
X2pveXN0aWNrX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRF
Q0hPX0MiID4mNgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFk
ZXJfbGludXhfam95c3RpY2tfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfbGlu
dXhfam95c3RpY2tfaCIgPiY2OyB9CmVsc2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8K
eyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbGludXgvam95c3RpY2suaCB1c2FiaWxp
dHkiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGxpbnV4L2pveXN0aWNrLmggdXNhYmlsaXR5
Li4uICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29u
ZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0
ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiRhY19p
bmNsdWRlc19kZWZhdWx0CiNpbmNsdWRlIDxsaW51eC9qb3lzdGljay5oPgpfQUNFT0YKcm0gLWYg
Y29uZnRlc3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRh
Y190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAg
KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVO
TzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0
LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl
c3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hv
ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1
cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBj
b25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVu
CiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2hl
YWRlcl9jb21waWxlcj1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
JGFjX2hlYWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGls
ZXIiID4mNjsgfQoKIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIGxpbnV4L2pveXN0aWNrLmggcHJlc2VuY2UiID4mNQplY2hvICRFQ0hPX04g
ImNoZWNraW5nIGxpbnV4L2pveXN0aWNrLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2OyB9CmNh
dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNh
dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPGxpbnV4L2pveXN0aWNrLmg+
Cl9BQ0VPRgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKY2FzZSAiKCgk
YWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owog
ICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5F
Tk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4
dCIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRl
c3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3Qu
ZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0ZXN0IC16ICIkYWNfY19wcmVw
cm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5l
cnIKICAgICAgIH07IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj
X2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKCnJtIC1mIGNvbmZ0ZXN0LmVyciBj
b25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRl
cl9wcmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0K
CiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6
JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCiAgeWVzOm5vOiAp
CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9qb3lzdGljay5oOiBh
Y2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+
JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBsaW51eC9qb3lzdGljay5oOiBhY2NlcHRlZCBieSB0
aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGludXgvam95c3RpY2suaDogcHJvY2VlZGlu
ZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzog
bGludXgvam95c3RpY2suaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIg
PiYyO30KICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogICAgOzsKICBubzp5ZXM6KiApCiAgICB7
IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9qb3lzdGljay5oOiBwcmVzZW50
IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4
L2pveXN0aWNrLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KICAgIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L2pveXN0aWNrLmg6ICAgICBjaGVj
ayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6IGxpbnV4L2pveXN0aWNrLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNp
dGUgaGVhZGVycz8iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBs
aW51eC9qb3lzdGljay5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQplY2hv
ICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L2pveXN0aWNrLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9j
dW1lbnRhdGlvbiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxp
bnV4L2pveXN0aWNrLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBp
bGVkXCIiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L2pveXN0aWNrLmg6ICAgICBz
ZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICB7IGVj
aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9qb3lzdGljay5oOiBwcm9jZWVkaW5n
IHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklO
RzogbGludXgvam95c3RpY2suaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyBy
ZXN1bHQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9q
b3lzdGljay5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVu
Y2UiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L2pveXN0aWNrLmg6IGluIHRoZSBm
dXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KCiAgICA7Owpl
c2FjCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsaW51eC9qb3lzdGljay5o
IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbGludXgvam95c3RpY2suaC4uLiAkRUNI
T19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbGludXhfam95c3RpY2tfaCtzZXR9
IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UK
ICBhY19jdl9oZWFkZXJfbGludXhfam95c3RpY2tfaD0kYWNfaGVhZGVyX3ByZXByb2MKZmkKeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX2xpbnV4X2pveXN0aWNr
X2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX2xpbnV4X2pveXN0aWNrX2giID4m
NjsgfQoKZmkKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX2xpbnV4X2pveXN0aWNrX2ggPSB5ZXM7IHRo
ZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fSEFWRV9MSU5V
WF9KT1lTVElDS19IIDEKX0FDRU9GCgpmaQoKCgogICAgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJf
bGludXhfaW5wdXRfaCtzZXR9IiA9IHNldDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGNoZWNraW5nIGZvciBsaW51eC9pbnB1dC5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBm
b3IgbGludXgvaW5wdXQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFk
ZXJfbGludXhfaW5wdXRfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hl
ZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2
X2hlYWRlcl9saW51eF9pbnB1dF9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9s
aW51eF9pbnB1dF9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwp7
IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBsaW51eC9pbnB1dC5oIHVzYWJpbGl0eSIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgbGludXgvaW5wdXQuaCB1c2FiaWxpdHkuLi4gJEVD
SE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5o
LiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVz
X2RlZmF1bHQKI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4k
YWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4K
ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlf
ZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5
X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNf
c3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBy
bSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTok
TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7
CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy
cgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19oZWFk
ZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi
ID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVyX2NvbXBp
bGVyPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVy
X2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9
CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgbGludXgvaW5wdXQuaCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgbGlu
dXgvaW5wdXQuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5j
b25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNv
bmZkZWZzLmguICAqLwojaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KX0FDRU9GCmlmIHsgKGFjX3Ry
eT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8
ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFj
X3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi
KSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEK
ICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy
cgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nf
d2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgog
IGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFk
ZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hv
ICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQg
dGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6
JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L2lucHV0Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxl
ciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6IGxpbnV4L2lucHV0Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkg
dGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJO
SU5HOiBsaW51eC9pbnB1dC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0
IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBsaW51eC9pbnB1dC5oOiBwcm9jZWVkaW5nIHdp
dGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAgYWNfaGVhZGVyX3ByZXByb2M9eWVz
CiAgICA7OwogIG5vOnllczoqICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IGxpbnV4L2lucHV0Lmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVjaG8g
IiRhc19tZTogV0FSTklORzogbGludXgvaW5wdXQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNv
bXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGludXgv
aW5wdXQuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1
CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvaW5wdXQuaDogICAgIGNoZWNrIGZvciBtaXNz
aW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFdBUk5JTkc6IGxpbnV4L2lucHV0Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlv
biIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvaW5wdXQuaDogc2VlIHRoZSBBdXRv
Y29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogbGludXgvaW5wdXQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUg
Q29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvaW5wdXQuaDogICAg
IHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KICAgIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L2lucHV0Lmg6IHByb2NlZWRpbmcg
d2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiBsaW51eC9pbnB1dC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3Vs
dCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGxpbnV4L2lucHV0
Lmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1
CmVjaG8gIiRhc19tZTogV0FSTklORzogbGludXgvaW5wdXQuaDogaW4gdGhlIGZ1dHVyZSwgdGhl
IGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpbnV4L2lucHV0LmgiID4mNQplY2hvICRF
Q0hPX04gImNoZWNraW5nIGZvciBsaW51eC9pbnB1dC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0
ZXN0ICIke2FjX2N2X2hlYWRlcl9saW51eF9pbnB1dF9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNo
byAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRlcl9saW51
eF9pbnB1dF9oPSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiBy
ZXN1bHQ6ICRhY19jdl9oZWFkZXJfbGludXhfaW5wdXRfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRh
Y19jdl9oZWFkZXJfbGludXhfaW5wdXRfaCIgPiY2OyB9CgpmaQppZiB0ZXN0ICRhY19jdl9oZWFk
ZXJfbGludXhfaW5wdXRfaCA9IHllczsgdGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9G
CiNkZWZpbmUgQUxMRUdST19IQVZFX0xJTlVYX0lOUFVUX0ggMQpfQUNFT0YKCmZpCgoKCiAgICBp
ZiB0ZXN0ICJYJGFsbGVncm9fY3ZfcHJvY2Vzc29yX3R5cGUiID0gIlhpMzg2IiAtYSAiWCRhbGxl
Z3JvX2VuYWJsZV92Z2EiID0gIlh5ZXMiOyB0aGVuCiAgICAgIGFsbGVncm9fc3VwcG9ydF92Z2E9
eWVzCgpjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fTElOVVhfVkdB
IDEKX0FDRU9GCgogICAgICBfZW5hYmxlZF9tb2R1bGVzPSJ2Z2EgJF9lbmFibGVkX21vZHVsZXMi
CiAgICBlbHNlCiAgICAgIF9kaXNhYmxlZF9tb2R1bGVzPSJ2Z2EgJF9kaXNhYmxlZF9tb2R1bGVz
IgogICAgZmkKCiAgICBpZiB0ZXN0ICJYJGFsbGVncm9fY3ZfcHJvY2Vzc29yX3R5cGUiID0gIlhp
Mzg2IiAtYSAiWCRhbGxlZ3JvX2VuYWJsZV92YmVhZiIgPSAiWHllcyI7IHRoZW4KCmNhdCA+PmNv
bmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19MSU5VWF9WQkVBRiAxCl9BQ0VPRgoK
ICAgICAgX2VuYWJsZWRfbW9kdWxlcz0idmJlYWYgJF9lbmFibGVkX21vZHVsZXMiCiAgICBlbHNl
CiAgICAgIF9kaXNhYmxlZF9tb2R1bGVzPSJ2YmVhZiAkX2Rpc2FibGVkX21vZHVsZXMiCiAgICBm
aQoKICAgIF9kb19mYmNvbj0ibm8iCiAgICBpZiB0ZXN0ICJYJGFsbGVncm9fZW5hYmxlX2ZiY29u
IiA9ICJYeWVzIjsgdGhlbgoKICBpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9saW51eF9mYl9oK3Nl
dH0iID0gc2V0OyB0aGVuCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxp
bnV4L2ZiLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsaW51eC9mYi5oLi4uICRF
Q0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9saW51eF9mYl9oK3NldH0iID0g
c2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZmkKeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX2xpbnV4X2ZiX2giID4mNQpl
Y2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX2xpbnV4X2ZiX2giID4mNjsgfQplbHNlCiAgIyBJ
cyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n
IGxpbnV4L2ZiLmggdXNhYmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBsaW51eC9m
Yi5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz
dC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZz
LmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5jbHVkZSA8bGludXgvZmIuaD4KX0FDRU9G
CnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2Fz
ZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190
cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21l
OiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j
b25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg
PmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1
CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRh
Y19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0
ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4
dDsgdGhlbgogIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFp
bGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK
CglhY19oZWFkZXJfY29tcGlsZXI9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAp7IGVjaG8gIiRhc19tZTokTElORU5POiBy
ZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVy
X2NvbXBpbGVyIiA+JjY7IH0KCiMgSXMgdGhlIGhlYWRlciBwcmVzZW50Pwp7IGVjaG8gIiRhc19t
ZTokTElORU5POiBjaGVja2luZyBsaW51eC9mYi5oIHByZXNlbmNlIiA+JjUKZWNobyAkRUNIT19O
ICJjaGVja2luZyBsaW51eC9mYi5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP
RgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxsaW51eC9mYi5oPgpfQUNFT0YKaWYg
eyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCmNhc2UgIigoJGFjX3RyeSIgaW4K
ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlf
ZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5
X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0
ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u
ZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0
YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CgkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2Zs
YWckYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9
OyB0aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cgog
IGFjX2hlYWRlcl9wcmVwcm9jPW5vCmZpCgpybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj
X2V4dAp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIg
PiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2OyB9CgojIFNvPyAgV2hh
dCBhYm91dCB0aGlzIGhlYWRlcj8KY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJf
cHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbgogIHllczpubzogKQogICAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGludXgvZmIuaDogYWNjZXB0ZWQgYnkgdGhlIGNv
bXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogbGludXgvZmIuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBi
eSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdB
Uk5JTkc6IGxpbnV4L2ZiLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQi
ID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L2ZiLmg6IHByb2NlZWRpbmcgd2l0aCB0
aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CiAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKICAg
IDs7CiAgbm86eWVzOiogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGlu
dXgvZmIuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFzX21l
OiBXQVJOSU5HOiBsaW51eC9mYi5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4m
Mjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9mYi5oOiAgICAg
Y2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKZWNobyAiJGFzX21l
OiBXQVJOSU5HOiBsaW51eC9mYi5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRl
IGhlYWRlcnM/IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbGlu
dXgvZmIuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKZWNobyAiJGFzX21l
OiBXQVJOSU5HOiBsaW51eC9mYi5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4m
Mjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBsaW51eC9mYi5oOiAgICAg
c2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFz
X21lOiBXQVJOSU5HOiBsaW51eC9mYi5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5v
dCBCZSBDb21waWxlZFwiIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO
RzogbGludXgvZmIuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQi
ID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IGxpbnV4L2ZiLmg6IHByb2NlZWRpbmcgd2l0aCB0
aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogV0FSTklORzogbGludXgvZmIuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwg
dGFrZSBwcmVjZWRlbmNlIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBsaW51eC9mYi5oOiBp
biB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mMjt9Cgog
ICAgOzsKZXNhYwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGludXgvZmIu
aCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpbnV4L2ZiLmguLi4gJEVDSE9fQyIg
PiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX2xpbnV4X2ZiX2grc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY3ZfaGVh
ZGVyX2xpbnV4X2ZiX2g9JGFjX2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9saW51eF9mYl9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9
JGFjX2N2X2hlYWRlcl9saW51eF9mYl9oIiA+JjY7IH0KCmZpCmlmIHRlc3QgJGFjX2N2X2hlYWRl
cl9saW51eF9mYl9oID0geWVzOyB0aGVuCgogICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwojaW5jbHVkZSA8bGludXgvZmIuaD4KaW50Cm1haW4gKCkKewppbnQgeCA9IEZCX1NZTkNf
T05fR1JFRU47CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIq
IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0k
YWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c
IiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVz
PSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBj
b25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVz
dCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAg
ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhbGxlZ3JvX2N2X3N1
cHBvcnRfZmJjb249eWVzCgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCmZpCgpybSAtZiBjb3Jl
IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKCmZpCgoK
CiAgICAgIGlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X2ZiY29uIiA9ICJYeWVzIjsgdGhl
bgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX0xJTlVYX0ZCQ09O
IDEKX0FDRU9GCgoJX2RvX2ZiY29uPSJ5ZXMiCiAgICAgIGZpCiAgICBmaQoKICAgIGlmIHRlc3Qg
IiRfZG9fZmJjb24iID0geWVzOyB0aGVuCiAgICAgIF9lbmFibGVkX21vZHVsZXM9ImZiY29uICRf
ZW5hYmxlZF9tb2R1bGVzIgogICAgZWxzZQogICAgICBfZGlzYWJsZWRfbW9kdWxlcz0iZmJjb24g
JF9kaXNhYmxlZF9tb2R1bGVzIgogICAgZmkKCiAgICBfZG9fc3ZnYWxpYj0ibm8iCiAgICBpZiB0
ZXN0ICJYJGFsbGVncm9fZW5hYmxlX3N2Z2FsaWIiID0gIlh5ZXMiOyB0aGVuCiAgICAgIGlmIHRl
c3QgIiR7YWNfY3ZfaGVhZGVyX3ZnYV9oK3NldH0iID0gc2V0OyB0aGVuCiAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHZnYS5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2lu
ZyBmb3IgdmdhLmguLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3Zn
YV9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+
JjYKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3ZnYV9o
IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl92Z2FfaCIgPiY2OyB9CmVsc2UKICAj
IElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgdmdhLmggdXNhYmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB2Z2EuaCB1c2Fi
aWxpdHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgov
KiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4
dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8K
JGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPHZnYS5oPgpfQUNFT0YKcm0gLWYgY29uZnRl
c3QuJGFjX29iamV4dAppZiB7IChhY190cnk9IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnki
IGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNf
dHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFj
X3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQog
IGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy
CiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g
JiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVz
dC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNf
aGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2hlYWRlcl9j
b21waWxlcj1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4
dCBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hl
YWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4m
NjsgfQoKIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNo
ZWNraW5nIHZnYS5oIHByZXNlbmNlIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB2Z2EuaCBw
cmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
Ci8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf
ZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAq
LwojaW5jbHVkZSA8dmdhLmg+Cl9BQ0VPRgppZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu
JGFjX2V4dCIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5
X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVj
aG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19j
cHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3Jl
cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5l
cjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKCSB0
ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAoJIHRl
c3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH07IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15
ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9e
L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKCnJt
IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRl
cl9wcmVwcm9jIiA+JjY7IH0KCiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRh
Y19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9m
bGFnIGluCiAgeWVzOm5vOiApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB2
Z2EuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vz
c29yISIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogdmdhLmg6IGFjY2VwdGVkIGJ5IHRoZSBj
b21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBXQVJOSU5HOiB2Z2EuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21w
aWxlcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogdmdhLmg6IHByb2NlZWRp
bmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CiAgICBhY19oZWFkZXJfcHJlcHJv
Yz15ZXMKICAgIDs7CiAgbm86eWVzOiogKQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogdmdhLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVjaG8gIiRh
c19tZTogV0FSTklORzogdmdhLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYy
O30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHZnYS5oOiAgICAgY2hlY2sg
Zm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKZWNobyAiJGFzX21lOiBXQVJO
SU5HOiB2Z2EuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHZnYS5oOiBzZWUgdGhl
IEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHZnYS5o
OiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mMjt9CiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiB2Z2EuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5u
b3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogdmdhLmg6ICAgICBz
ZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICB7IGVj
aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB2Z2EuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBw
cmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHZnYS5oOiBw
cm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgIHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHZnYS5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29t
cGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHZn
YS5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4m
Mjt9CgogICAgOzsKZXNhYwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igdmdh
LmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB2Z2EuaC4uLiAkRUNIT19DIiA+JjY7
IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfdmdhX2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hv
ICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY3ZfaGVhZGVyX3ZnYV9o
PSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh
Y19jdl9oZWFkZXJfdmdhX2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3ZnYV9o
IiA+JjY7IH0KCmZpCmlmIHRlc3QgJGFjX2N2X2hlYWRlcl92Z2FfaCA9IHllczsgdGhlbgogIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB2Z2FfaW5pdCBpbiAtbHZnYSIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHZnYV9pbml0IGluIC1sdmdhLi4uICRFQ0hPX0Mi
ID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2xpYl92Z2FfdmdhX2luaXQrc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY2hlY2tf
bGliX3NhdmVfTElCUz0kTElCUwpMSUJTPSItbHZnYSAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+
Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv
IGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv
dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAi
QyIKI2VuZGlmCmNoYXIgdmdhX2luaXQgKCk7CmludAptYWluICgpCnsKcmV0dXJuIHZnYV9pbml0
ICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj
b25mdGVzdCRhY19leGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAiKCgkYWNfdHJ5
IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFj
X3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRh
Y190cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKICBh
Y19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgog
IHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYm
IHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3Qu
ZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmCiAgICAgICAkYXNf
dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgogIGFjX2N2X2xpYl92Z2FfdmdhX2luaXQ9
eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3Mv
Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfY3ZfbGliX3ZnYV92Z2FfaW5pdD1ubwpm
aQoKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9p
cGE4X2NvbmZ0ZXN0Lm9vIFwKICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l
eHQKTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRhY19jdl9saWJfdmdhX3ZnYV9pbml0IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFj
X2N2X2xpYl92Z2FfdmdhX2luaXQiID4mNjsgfQppZiB0ZXN0ICRhY19jdl9saWJfdmdhX3ZnYV9p
bml0ID0geWVzOyB0aGVuCiAgYWxsZWdyb19jdl9zdXBwb3J0X3N2Z2FsaWI9eWVzCnsgZWNobyAi
JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB2Z2FfdmVyc2lvbiBpbiB2Z2EuaCIgPiY1CmVj
aG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHZnYV92ZXJzaW9uIGluIHZnYS5oLi4uICRFQ0hPX0Mi
ID4mNjsgfQppZiB0ZXN0ICIke2FsbGVncm9fY3ZfaGF2ZV92Z2FfdmVyc2lvbitzZXR9IiA9IHNl
dDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQg
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQg
Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDx2Z2EuaD4KaW50Cm1haW4gKCkK
ewppbnQgeCA9IHZnYV92ZXJzaW9uOyB4Kys7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAt
ZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigo
JGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK
ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElO
RU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl
c3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m
dGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVj
aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3Rh
dHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1z
IGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRo
ZW4KICBhbGxlZ3JvX2N2X2hhdmVfdmdhX3ZlcnNpb249eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6
IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg
PiY1CgoJYWxsZWdyb19jdl9oYXZlX3ZnYV92ZXJzaW9uPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0
ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKCnsgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFsbGVncm9fY3ZfaGF2ZV92Z2FfdmVyc2lvbiIgPiY1
CmVjaG8gIiR7RUNIT19UfSRhbGxlZ3JvX2N2X2hhdmVfdmdhX3ZlcnNpb24iID4mNjsgfQpmaQoK
ZmkKCgogICAgICBpZiB0ZXN0ICJYJGFsbGVncm9fY3Zfc3VwcG9ydF9zdmdhbGliIiA9ICJYeWVz
IjsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX0xJTlVY
X1NWR0FMSUIgMQpfQUNFT0YKCglfZG9fc3ZnYWxpYj0ieWVzIgoJaWYgdGVzdCAteiAiJGFsbGVn
cm9fc3VwcG9ydF9tb2R1bGVzIjsgdGhlbgoJICBMSUJTPSItbHZnYSAkTElCUyIKCWZpCglpZiB0
ZXN0ICJYJGFsbGVncm9fY3ZfaGF2ZV92Z2FfdmVyc2lvbiIgPSAiWHllcyI7IHRoZW4KCmNhdCA+
PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19MSU5VWF9TVkdBTElCX0hBVkVf
VkdBX1ZFUlNJT04gMQpfQUNFT0YKCiAgICAgICAgZmkKICAgICAgZmkKICAgIGZpCgogICAgaWYg
dGVzdCAiJF9kb19zdmdhbGliIiA9IHllczsgdGhlbgogICAgICBfZW5hYmxlZF9tb2R1bGVzPSJz
dmdhbGliICRfZW5hYmxlZF9tb2R1bGVzIgogICAgZWxzZQogICAgICBfZGlzYWJsZWRfbW9kdWxl
cz0ic3ZnYWxpYiAkX2Rpc2FibGVkX21vZHVsZXMiCiAgICBmaQogIGZpCiAgOzsKCmVzYWMKCl9s
aW51eF9jb25zb2xlPSJMaW51eCBjb25zb2xlIHN1cHBvcnQ6IgppZiB0ZXN0ICJYJGFsbGVncm9f
c3VwcG9ydF9saW51eCIgIT0gIlh5ZXMiOyB0aGVuCiAgX2xpbnV4X2NvbnNvbGU9IiRfbGludXhf
Y29uc29sZSBkaXNhYmxlZCIKZWxzZQogIF9saW51eF9jb25zb2xlPSIkX2xpbnV4X2NvbnNvbGUg
ZW5hYmxlZCIKZmkKCgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIwojCiMgTW9kdWxlcwojCgppZiB0
ZXN0IC1uICIkYWxsZWdyb19zdXBwb3J0X21vZHVsZXMiOyB0aGVuCgogICAgaWYgdGVzdCAiWCRh
bGxlZ3JvX3N1cHBvcnRfdmdhIiA9ICJYeWVzIjsgdGhlbgogICAgQUxMRUdST19NT0RVTEVfVEFS
R0VUUz0iJEFMTEVHUk9fTU9EVUxFX1RBUkdFVFMgbGliL3VuaXgvYWxsZWctdmdhLnNvIgogIGZp
CgogICAgaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3N1cHBvcnRfc3ZnYWxpYiIgPSAiWHllcyI7IHRo
ZW4KICAgIEFMTEVHUk9fTU9EVUxFX1RBUkdFVFM9IiRBTExFR1JPX01PRFVMRV9UQVJHRVRTIGxp
Yi91bml4L2FsbGVnLXN2Z2FsaWIuc28iCiAgZmkKCiAgICBpZiB0ZXN0ICJYJGFsbGVncm9fY3Zf
c3VwcG9ydF9mYmNvbiIgPSAiWHllcyI7IHRoZW4KICAgIEFMTEVHUk9fTU9EVUxFX1RBUkdFVFM9
IiRBTExFR1JPX01PRFVMRV9UQVJHRVRTIGxpYi91bml4L2FsbGVnLWZiY29uLnNvIgogIGZpCgog
ICAgaWYgdGVzdCAiWCRhbGxlZ3JvX3N1cHBvcnRfeGY4NmRnYTIiID0gIlh5ZXMiOyB0aGVuCiAg
ICBBTExFR1JPX01PRFVMRV9UQVJHRVRTPSIkQUxMRUdST19NT0RVTEVfVEFSR0VUUyBsaWIvdW5p
eC9hbGxlZy1kZ2EyLnNvIgogIGZpCgogICAgaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3N1cHBvcnRf
YWxzYWRpZ2kiID0gIlh5ZXMiOyB0aGVuCiAgICBBTExFR1JPX01PRFVMRV9UQVJHRVRTPSIkQUxM
RUdST19NT0RVTEVfVEFSR0VUUyBsaWIvdW5peC9hbGxlZy1hbHNhZGlnaS5zbyIKICBmaQoKICAg
IGlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X2Fsc2FtaWRpIiA9ICJYeWVzIjsgdGhlbgog
ICAgQUxMRUdST19NT0RVTEVfVEFSR0VUUz0iJEFMTEVHUk9fTU9EVUxFX1RBUkdFVFMgbGliL3Vu
aXgvYWxsZWctYWxzYW1pZGkuc28iCiAgZmkKCiAgICBpZiB0ZXN0ICJYJGFsbGVncm9fc3VwcG9y
dF9lc2RkaWdpIiA9ICJYeWVzIjsgdGhlbgogICAgQUxMRUdST19NT0RVTEVfVEFSR0VUUz0iJEFM
TEVHUk9fTU9EVUxFX1RBUkdFVFMgbGliL3VuaXgvYWxsZWctZXNkZGlnaS5zbyIKICBmaQoKICAg
IGlmIHRlc3QgIlgkYWxsZWdyb19zdXBwb3J0X2FydHNkaWdpIiA9ICJYeWVzIjsgdGhlbgogICAg
QUxMRUdST19NT0RVTEVfVEFSR0VUUz0iJEFMTEVHUk9fTU9EVUxFX1RBUkdFVFMgbGliL3VuaXgv
YWxsZWctYXJ0c2RpZ2kuc28iCiAgZmkKCiAgICBpZiB0ZXN0ICJYJGFsbGVncm9fY3Zfc3VwcG9y
dF9zZ2lhbGRpZ2kiID0gIlh5ZXMiOyB0aGVuCiAgICBBTExFR1JPX01PRFVMRV9UQVJHRVRTPSIk
QUxMRUdST19NT0RVTEVfVEFSR0VUUyBsaWIvdW5peC9hbGxlZy1zZ2lhbGRpZ2kuc28iCiAgZmkK
CiAgICBpZiB0ZXN0ICJYJGFsbGVncm9fY3Zfc3VwcG9ydF9qYWNrZGlnaSIgPSAiWHllcyI7IHRo
ZW4KICAgIEFMTEVHUk9fTU9EVUxFX1RBUkdFVFM9IiRBTExFR1JPX01PRFVMRV9UQVJHRVRTIGxp
Yi91bml4L2FsbGVnLWphY2tkaWdpLnNvIgogIGZpCmZpCgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IwoKTElCUz0iLWxtICRMSUJTIgoKY2FzZSAiJGFsbGVncm9fc3lzdGVtIiBpbgoKKmRhcndpbiop
CgpjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fREFSV0lOIDEKX0FD
RU9GCgogIExJQlM9Ii1sY2NfZHluYW1pYyAkTElCUyIKICBBUj0iXCQoTEQpIC1yIC1rZWVwX3By
aXZhdGVfZXh0ZXJucyAtbyIKICA7OwoKKikKICBBUj0iYXIgcnZzIgogIDs7Cgplc2FjCgoKCgoj
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0jCgojIEhlYWRlcnMsIGZlYXR1cmVzLCBmdW5jdGlvbnMgYW5k
IG1hY3Jvcy4KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfZGlyZW50X2grc2V0fSIgPSBzZXQ7IHRo
ZW4KICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGlyZW50LmgiID4mNQpl
Y2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBkaXJlbnQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYg
dGVzdCAiJHthY19jdl9oZWFkZXJfZGlyZW50X2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRF
Q0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiBy
ZXN1bHQ6ICRhY19jdl9oZWFkZXJfZGlyZW50X2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3Zf
aGVhZGVyX2RpcmVudF9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxl
Pwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkaXJlbnQuaCB1c2FiaWxpdHkiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIGRpcmVudC5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+
JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVs
dAojaW5jbHVkZSA8ZGlyZW50Lmg+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Cmlm
IHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxg
KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5
OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4m
NQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAg
Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVz
dC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAi
JGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAm
JiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9
eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3Mv
Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpy
bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l
eHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9CgojIElzIHRoZSBo
ZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGlyZW50Lmgg
cHJlc2VuY2UiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGRpcmVudC5oIHByZXNlbmNlLi4u
ICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRl
ZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRl
IDxkaXJlbnQuaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0
IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c
JGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwk
YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25m
dGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICde
ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNh
dCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXog
IiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1z
IGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBj
b25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29u
ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXBy
b2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRl
cl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4K
ICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRpcmVudC5o
OiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3Ih
IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkaXJlbnQuaDogYWNjZXB0ZWQgYnkgdGhlIGNv
bXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KICAgIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRpcmVudC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNv
bXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkaXJlbnQuaDogcHJv
Y2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KICAgIGFjX2hlYWRlcl9w
cmVwcm9jPXllcwogICAgOzsKICBubzp5ZXM6KiApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5P
OiBXQVJOSU5HOiBkaXJlbnQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUK
ZWNobyAiJGFzX21lOiBXQVJOSU5HOiBkaXJlbnQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNv
bXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogZGlyZW50
Lmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hv
ICIkYXNfbWU6IFdBUk5JTkc6IGRpcmVudC5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVx
dWlzaXRlIGhlYWRlcnM/IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO
RzogZGlyZW50Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRh
c19tZTogV0FSTklORzogZGlyZW50Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGRpcmVudC5oOiAgICAg
c2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFz
X21lOiBXQVJOSU5HOiBkaXJlbnQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3Qg
QmUgQ29tcGlsZWRcIiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IGRpcmVudC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1
CmVjaG8gIiRhc19tZTogV0FSTklORzogZGlyZW50Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJl
cHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogZGlyZW50Lmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJl
Y2VkZW5jZSIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogZGlyZW50Lmg6IGluIHRoZSBmdXR1
cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KCiAgICA7Owplc2Fj
CnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkaXJlbnQuaCIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgZm9yIGRpcmVudC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0
ICIke2FjX2N2X2hlYWRlcl9kaXJlbnRfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9f
TiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jdl9oZWFkZXJfZGlyZW50X2g9JGFj
X2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2
X2hlYWRlcl9kaXJlbnRfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfZGlyZW50
X2giID4mNjsgfQoKZmkKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX2RpcmVudF9oID0geWVzOyB0aGVu
CiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX0hBVkVfRElSRU5U
X0ggMQpfQUNFT0YKCmZpCgoKaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfaW50dHlwZXNfaCtzZXR9
IiA9IHNldDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBpbnR0
eXBlcy5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgaW50dHlwZXMuaC4uLiAkRUNI
T19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfaW50dHlwZXNfaCtzZXR9IiA9IHNl
dDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9pbnR0eXBlc19oIiA+JjUKZWNo
byAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9pbnR0eXBlc19oIiA+JjY7IH0KZWxzZQogICMgSXMg
dGhlIGhlYWRlciBjb21waWxhYmxlPwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBp
bnR0eXBlcy5oIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaW50dHlwZXMu
aCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu
JGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPGludHR5cGVzLmg+Cl9BQ0VPRgpy
bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2Ug
IigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5
OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTok
TElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29u
ZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j
b25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQog
IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAh
IC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7
IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJ
YWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9j
b21waWxlciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgaW50dHlwZXMuaCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgaW50dHlwZXMuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZk
ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
LyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8aW50dHlwZXMuaD4KX0FDRU9GCmlmIHsg
KGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAg
KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2Vj
aG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l
Y2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVz
dC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0
ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFn
JGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsg
dGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBh
Y19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l
eHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4m
NQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQg
YWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3By
ZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGludHR5cGVzLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21w
aWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6IGludHR5cGVzLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkg
dGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJO
SU5HOiBpbnR0eXBlcy5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+
JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnR0eXBlcy5oOiBwcm9jZWVkaW5nIHdpdGggdGhl
IGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCiAgICA7
OwogIG5vOnllczoqICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGludHR5
cGVzLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogaW50dHlwZXMuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogaW50dHlwZXMuaDogICAgIGNo
ZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogaW50dHlwZXMuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBo
ZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGludHR5
cGVzLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogaW50dHlwZXMuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogaW50dHlwZXMuaDogICAgIHNl
Y3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19t
ZTogV0FSTklORzogaW50dHlwZXMuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3Qg
QmUgQ29tcGlsZWRcIiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IGludHR5cGVzLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+
JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnR0eXBlcy5oOiBwcm9jZWVkaW5nIHdpdGggdGhl
IHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IFdBUk5JTkc6IGludHR5cGVzLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh
a2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogaW50dHlwZXMuaDogaW4g
dGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAg
IDs7CmVzYWMKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGludHR5cGVzLmgi
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBpbnR0eXBlcy5oLi4uICRFQ0hPX0MiID4m
NjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9pbnR0eXBlc19oK3NldH0iID0gc2V0OyB0aGVu
CiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRl
cl9pbnR0eXBlc19oPSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfaW50dHlwZXNfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRh
Y19jdl9oZWFkZXJfaW50dHlwZXNfaCIgPiY2OyB9CgpmaQppZiB0ZXN0ICRhY19jdl9oZWFkZXJf
aW50dHlwZXNfaCA9IHllczsgdGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZp
bmUgQUxMRUdST19IQVZFX0lOVFRZUEVTX0ggMQpfQUNFT0YKCmZpCgoKaWYgdGVzdCAiJHthY19j
dl9oZWFkZXJfc3RkaW50X2grc2V0fSIgPSBzZXQ7IHRoZW4KICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBjaGVja2luZyBmb3Igc3RkaW50LmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZv
ciBzdGRpbnQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3Rk
aW50X2grc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3Rk
aW50X2giID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0ZGludF9oIiA+JjY7IH0K
ZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwp7IGVjaG8gIiRhc19tZTokTElORU5P
OiBjaGVja2luZyBzdGRpbnQuaCB1c2FiaWxpdHkiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5n
IHN0ZGludC5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5j
b25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNv
bmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5jbHVkZSA8c3RkaW50Lmg+Cl9B
Q0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRh
c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIp
IDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu
ZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJy
ID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Cgkg
dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v
YmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6
IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg
PiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj
b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hl
YWRlcl9jb21waWxlciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3RkaW50LmggcHJlc2VuY2UiID4mNQplY2hvICRFQ0hP
X04gImNoZWNraW5nIHN0ZGludC5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNjsgfQpjYXQgPmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP
RgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzdGRpbnQuaD4KX0FDRU9GCmlmIHsg
KGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAg
KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2Vj
aG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l
Y2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVz
dC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0
ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFn
JGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsg
dGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBh
Y19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l
eHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4m
NQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQg
YWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3By
ZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN0ZGludC5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGls
ZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKZWNobyAiJGFzX21lOiBXQVJO
SU5HOiBzdGRpbnQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUg
cHJlcHJvY2Vzc29yISIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IHN0ZGludC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNo
byAiJGFzX21lOiBXQVJOSU5HOiBzdGRpbnQuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxl
cidzIHJlc3VsdCIgPiYyO30KICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogICAgOzsKICBubzp5
ZXM6KiApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzdGRpbnQuaDogcHJl
c2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBz
dGRpbnQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3RkaW50Lmg6ICAgICBjaGVjayBmb3IgbWlzc2lu
ZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN0ZGlu
dC5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQog
ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3RkaW50Lmg6IHNlZSB0aGUgQXV0
b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3RkaW50Lmg6
IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6IHN0ZGludC5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENh
bm5vdCBCZSBDb21waWxlZFwiIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzdGRpbnQuaDog
ICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN0ZGludC5oOiBwcm9jZWVkaW5nIHdp
dGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzog
c3RkaW50Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3RkaW50Lmg6IGluIHRoZSBm
dXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19t
ZTogV0FSTklORzogc3RkaW50Lmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh
a2UgcHJlY2VkZW5jZSIgPiYyO30KCiAgICA7Owplc2FjCnsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGNoZWNraW5nIGZvciBzdGRpbnQuaCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0
ZGludC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRpbnRf
aCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2
CmVsc2UKICBhY19jdl9oZWFkZXJfc3RkaW50X2g9JGFjX2hlYWRlcl9wcmVwcm9jCmZpCnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRpbnRfaCIgPiY1CmVj
aG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3RkaW50X2giID4mNjsgfQoKZmkKaWYgdGVzdCAk
YWNfY3ZfaGVhZGVyX3N0ZGludF9oID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxf
QUNFT0YKI2RlZmluZSBBTExFR1JPX0hBVkVfU1RESU5UX0ggMQpfQUNFT0YKCmZpCgoKaWYgdGVz
dCAiJHthY19jdl9oZWFkZXJfc3lzX3N0YXRfaCtzZXR9IiA9IHNldDsgdGhlbgogIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oIiA+JjUKZWNobyAkRUNIT19O
ICJjaGVja2luZyBmb3Igc3lzL3N0YXQuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHth
Y19jdl9oZWFkZXJfc3lzX3N0YXRfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAi
KGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
JGFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRl
cl9zeXNfc3RhdF9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwp7
IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvc3RhdC5oIHVzYWJpbGl0eSIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3N0YXQuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIg
PiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8K
X0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1
bHQKI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0
CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwg
KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNf
dHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIp
ID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/
CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25m
dGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBc
JD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAt
eiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAg
fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29tcGls
ZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQg
J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZp
CgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh
Y19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVy
IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9CgojIElzIHRo
ZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL3N0
YXQuaCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3N0YXQuaCBwcmVz
ZW5jZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoj
aW5jbHVkZSA8c3lzL3N0YXQuaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVz
dC4kYWNfZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190
cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAi
ZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFj
X2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBn
cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0
LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJ
IHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Cgkg
dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9j
PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdz
L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoK
cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVO
TzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVh
ZGVyX3ByZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2Ug
JGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJu
X2ZsYWcgaW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IHN5cy9zdGF0Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHBy
ZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zdGF0Lmg6IGFjY2Vw
dGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9
CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc3RhdC5oOiBwcm9jZWVk
aW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiBzeXMvc3RhdC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7
fQogICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCiAgICA7OwogIG5vOnllczoqICkKICAgIHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zdGF0Lmg6IHByZXNlbnQgYnV0IGNhbm5v
dCBiZSBjb21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N0YXQuaDogcHJl
c2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogV0FSTklORzogc3lzL3N0YXQuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVp
c2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N0YXQuaDogICAg
IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zdGF0Lmg6IHNlZSB0aGUgQXV0b2NvbmYg
ZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N0YXQuaDogc2Vl
IHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogV0FSTklORzogc3lzL3N0YXQuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5u
b3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N0YXQuaDog
ICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zdGF0Lmg6IHByb2NlZWRpbmcg
d2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiBzeXMvc3RhdC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zdGF0Lmg6IGlu
IHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8g
IiRhc19tZTogV0FSTklORzogc3lzL3N0YXQuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVy
IHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9zdGF0LmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNr
aW5nIGZvciBzeXMvc3RhdC5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hl
YWRlcl9zeXNfc3RhdF9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVk
KSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oPSRhY19oZWFkZXJf
cHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJf
c3lzX3N0YXRfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX3N0YXRfaCIg
PiY2OyB9CgpmaQppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3N0YXRfaCA9IHllczsgdGhlbgog
IGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19IQVZFX1NZU19TVEFU
X0ggMQpfQUNFT0YKCmZpCgoKaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3RpbWVfaCtzZXR9
IiA9IHNldDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMv
dGltZS5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL3RpbWUuaC4uLiAkRUNI
T19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3RpbWVfaCtzZXR9IiA9IHNl
dDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfdGltZV9oIiA+JjUKZWNo
byAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfdGltZV9oIiA+JjY7IH0KZWxzZQogICMgSXMg
dGhlIGhlYWRlciBjb21waWxhYmxlPwp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBz
eXMvdGltZS5oIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3RpbWUu
aCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu
JGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPHN5cy90aW1lLmg+Cl9BQ0VPRgpy
bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2Ug
IigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5
OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTok
TElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29u
ZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j
b25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQog
IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAh
IC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7
IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJ
YWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9j
b21waWxlciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgc3lzL3RpbWUuaCBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgc3lzL3RpbWUuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjY7IH0KY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZk
ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
LyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL3RpbWUuaD4KX0FDRU9GCmlmIHsg
KGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAg
KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2Vj
aG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l
Y2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVz
dC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0
ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFn
JGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsg
dGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBh
Y19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l
eHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4m
NQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQg
YWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3By
ZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy90aW1lLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21w
aWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6IHN5cy90aW1lLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkg
dGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJO
SU5HOiBzeXMvdGltZS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+
JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvdGltZS5oOiBwcm9jZWVkaW5nIHdpdGggdGhl
IGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCiAgICA7
OwogIG5vOnllczoqICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy90
aW1lLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogc3lzL3RpbWUuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3RpbWUuaDogICAgIGNo
ZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogc3lzL3RpbWUuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBo
ZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy90
aW1lLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogc3lzL3RpbWUuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3RpbWUuaDogICAgIHNl
Y3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRhc19t
ZTogV0FSTklORzogc3lzL3RpbWUuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3Qg
QmUgQ29tcGlsZWRcIiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
IHN5cy90aW1lLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+
JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvdGltZS5oOiBwcm9jZWVkaW5nIHdpdGggdGhl
IHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IFdBUk5JTkc6IHN5cy90aW1lLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh
a2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3RpbWUuaDogaW4g
dGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAg
IDs7CmVzYWMKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy90aW1lLmgi
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMvdGltZS5oLi4uICRFQ0hPX0MiID4m
NjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfdGltZV9oK3NldH0iID0gc2V0OyB0aGVu
CiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRl
cl9zeXNfdGltZV9oPSRhY19oZWFkZXJfcHJlcHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX3RpbWVfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRh
Y19jdl9oZWFkZXJfc3lzX3RpbWVfaCIgPiY2OyB9CgpmaQppZiB0ZXN0ICRhY19jdl9oZWFkZXJf
c3lzX3RpbWVfaCA9IHllczsgdGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZp
bmUgQUxMRUdST19IQVZFX1NZU19USU1FX0ggMQpfQUNFT0YKCmZpCgoKaWYgdGVzdCAiJHthY19j
dl9oZWFkZXJfc3lzX3RpbWVfaCtzZXR9IiA9IHNldDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nIGZvciBzeXMvdGltZS5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2lu
ZyBmb3Igc3lzL3RpbWUuaC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFk
ZXJfc3lzX3RpbWVfaCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkg
JEVDSE9fQyIgPiY2CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hl
YWRlcl9zeXNfdGltZV9oIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfdGlt
ZV9oIiA+JjY7IH0KZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwp7IGVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyBzeXMvdGltZS5oIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgc3lzL3RpbWUuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNh
dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNh
dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1
ZGUgPHN5cy90aW1lLmg+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFj
X3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpc
XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNh
YwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChl
dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAt
diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEK
ICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nf
d2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0
IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8n
IGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBj
b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNo
byAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIg
cHJlc2VudD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL3RpbWUuaCBwcmVz
ZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3RpbWUuaCBwcmVzZW5jZS4uLiAk
RUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZz
LmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8
c3lzL3RpbWUuaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0
IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c
JGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBcIlwk
YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBjb25m
dGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICde
ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNh
dCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3QgLXog
IiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1z
IGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBj
b25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYgY29u
ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXBy
b2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRl
cl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4K
ICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy90aW1l
Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3Nv
ciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy90aW1lLmg6IGFjY2VwdGVkIGJ5IHRo
ZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVj
aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvdGltZS5oOiBwcm9jZWVkaW5nIHdpdGgg
dGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvdGlt
ZS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQogICAgYWNf
aGVhZGVyX3ByZXByb2M9eWVzCiAgICA7OwogIG5vOnllczoqICkKICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6IHN5cy90aW1lLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21w
aWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3RpbWUuaDogcHJlc2VudCBidXQg
Y2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogc3lzL3RpbWUuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFk
ZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3RpbWUuaDogICAgIGNoZWNrIGZv
ciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6IHN5cy90aW1lLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRh
dGlvbiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3RpbWUuaDogc2VlIHRoZSBBdXRv
Y29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogc3lzL3RpbWUuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29t
cGlsZWRcIiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3RpbWUuaDogICAgIHNlY3Rp
b24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KICAgIHsgZWNobyAi
JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy90aW1lLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUg
cHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvdGlt
ZS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy90aW1lLmg6IGluIHRoZSBmdXR1
cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogc3lzL3RpbWUuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFr
ZSBwcmVjZWRlbmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
Y2hlY2tpbmcgZm9yIHN5cy90aW1lLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBz
eXMvdGltZS5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNf
dGltZV9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZWxzZQogIGFjX2N2X2hlYWRlcl9zeXNfdGltZV9oPSRhY19oZWFkZXJfcHJlcHJvYwpm
aQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX3RpbWVf
aCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX3RpbWVfaCIgPiY2OyB9Cgpm
aQppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3RpbWVfaCA9IHllczsgdGhlbgogIGNhdCA+PmNv
bmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19IQVZFX1NZU19USU1FX0ggMQpfQUNF
T0YKCmZpCgoKaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3V0c25hbWVfaCtzZXR9IiA9IHNl
dDsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvdXRzbmFt
ZS5oIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL3V0c25hbWUuaC4uLiAkRUNI
T19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3V0c25hbWVfaCtzZXR9IiA9
IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCnsgZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfdXRzbmFtZV9oIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfdXRzbmFtZV9oIiA+JjY7IH0KZWxz
ZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwp7IGVjaG8gIiRhc19tZTokTElORU5POiBj
aGVja2luZyBzeXMvdXRzbmFtZS5oIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tp
bmcgc3lzL3V0c25hbWUuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2OyB9CmNhdCA+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVm
cy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPHN5cy91
dHNuYW1lLmg+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0i
JGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj
X3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFs
ICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIk
YWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAq
KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQg
Y29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz
IiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9y
X2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNv
bmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBl
Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0
ZXN0LiRhY19leHQgPiY1CgoJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCgpybSAtZiBjb3JlIGNv
bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtF
Q0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9CgojIElzIHRoZSBoZWFkZXIgcHJlc2Vu
dD8KeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL3V0c25hbWUuaCBwcmVzZW5j
ZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3V0c25hbWUuaCBwcmVzZW5jZS4uLiAk
RUNIT19DIiA+JjY7IH0KY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZz
LmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8
c3lzL3V0c25hbWUuaD4KX0FDRU9GCmlmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNf
ZXh0IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo
bz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNobyBc
IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2NwcCBj
b25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12
ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQog
IGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewoJIHRlc3Qg
LXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAh
IC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfTsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwpl
bHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAv
JyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQoKcm0gLWYg
Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3By
ZXByb2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hl
YWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcg
aW4KICB5ZXM6bm86ICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy91
dHNuYW1lLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXBy
b2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy91dHNuYW1lLmg6IGFjY2Vw
dGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9
CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvdXRzbmFtZS5oOiBwcm9j
ZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJO
SU5HOiBzeXMvdXRzbmFtZS5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0
IiA+JjI7fQogICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCiAgICA7OwogIG5vOnllczoqICkKICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy91dHNuYW1lLmg6IHByZXNlbnQg
YnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3V0
c25hbWUuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3V0c25hbWUuaDogICAgIGNoZWNrIGZvciBt
aXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzog
c3lzL3V0c25hbWUuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJz
PyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy91dHNuYW1l
Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CmVjaG8gIiRhc19tZTogV0FS
TklORzogc3lzL3V0c25hbWUuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3V0c25hbWUuaDogICAg
IHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CmVjaG8gIiRh
c19tZTogV0FSTklORzogc3lzL3V0c25hbWUuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBD
YW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdB
Uk5JTkc6IHN5cy91dHNuYW1lLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3Mg
cmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvdXRzbmFtZS5oOiBwcm9jZWVk
aW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgIHsgZWNobyAiJGFz
X21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy91dHNuYW1lLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBj
b21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzog
c3lzL3V0c25hbWUuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVj
ZWRlbmNlIiA+JjI7fQoKICAgIDs7CmVzYWMKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgZm9yIHN5cy91dHNuYW1lLmgiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMv
dXRzbmFtZS5oLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNf
dXRzbmFtZV9oK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNI
T19DIiA+JjYKZWxzZQogIGFjX2N2X2hlYWRlcl9zeXNfdXRzbmFtZV9oPSRhY19oZWFkZXJfcHJl
cHJvYwpmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lz
X3V0c25hbWVfaCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX3V0c25hbWVf
aCIgPiY2OyB9CgpmaQppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3V0c25hbWVfaCA9IHllczsg
dGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19IQVZFX1NZ
U19VVFNOQU1FX0ggMQpfQUNFT0YKCmZpCgoKCiMgSWYgdGhlIEMgY29tcGlsZXIgZG9lcyBub3Qg
ZnVsbHkgc3VwcG9ydCB0aGUgYGNvbnN0JyBrZXl3b3JkLAojIGRlZmluZSBgY29uc3QnIHRvIGJl
IGVtcHR5Lgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYW4gQU5TSSBDLWNv
bmZvcm1pbmcgY29uc3QiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBhbiBBTlNJIEMt
Y29uZm9ybWluZyBjb25zdC4uLiAkRUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9jX2Nv
bnN0K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+
JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAg
Ki8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsK
LyogRklYTUU6IEluY2x1ZGUgdGhlIGNvbW1lbnRzIHN1Z2dlc3RlZCBieSBQYXVsLiAqLwojaWZu
ZGVmIF9fY3BsdXNwbHVzCiAgLyogVWx0cml4IG1pcHMgY2MgcmVqZWN0cyB0aGlzLiAgKi8KICB0
eXBlZGVmIGludCBjaGFyc2V0WzJdOwogIGNvbnN0IGNoYXJzZXQgY3M7CiAgLyogU3VuT1MgNC4x
LjEgY2MgcmVqZWN0cyB0aGlzLiAgKi8KICBjaGFyIGNvbnN0ICpjb25zdCAqcGNwY2M7CiAgY2hh
ciAqKnBwYzsKICAvKiBORUMgU1ZSNC4wLjIgbWlwcyBjYyByZWplY3RzIHRoaXMuICAqLwogIHN0
cnVjdCBwb2ludCB7aW50IHgsIHk7fTsKICBzdGF0aWMgc3RydWN0IHBvaW50IGNvbnN0IHplcm8g
PSB7MCwwfTsKICAvKiBBSVggWEwgQyAxLjAyLjAuMCByZWplY3RzIHRoaXMuCiAgICAgSXQgZG9l
cyBub3QgbGV0IHlvdSBzdWJ0cmFjdCBvbmUgY29uc3QgWCogcG9pbnRlciBmcm9tIGFub3RoZXIg
aW4KICAgICBhbiBhcm0gb2YgYW4gaWYtZXhwcmVzc2lvbiB3aG9zZSBpZi1wYXJ0IGlzIG5vdCBh
IGNvbnN0YW50CiAgICAgZXhwcmVzc2lvbiAqLwogIGNvbnN0IGNoYXIgKmcgPSAic3RyaW5nIjsK
ICBwY3BjYyA9ICZnICsgKGcgPyBnLWcgOiAwKTsKICAvKiBIUFVYIDcuMCBjYyByZWplY3RzIHRo
ZXNlLiAqLwogICsrcGNwY2M7CiAgcHBjID0gKGNoYXIqKikgcGNwY2M7CiAgcGNwY2MgPSAoY2hh
ciBjb25zdCAqY29uc3QgKikgcHBjOwogIHsgLyogU0NPIDMuMnY0IGNjIHJlamVjdHMgdGhpcy4g
ICovCiAgICBjaGFyICp0OwogICAgY2hhciBjb25zdCAqcyA9IDAgPyAoY2hhciAqKSAwIDogKGNo
YXIgY29uc3QgKikgMDsKCiAgICAqdCsrID0gMDsKICAgIGlmIChzKSByZXR1cm4gMDsKICB9CiAg
eyAvKiBTb21lb25lIHRoaW5rcyB0aGUgU3VuIHN1cHBvc2VkbHktQU5TSSBjb21waWxlciB3aWxs
IHJlamVjdCB0aGlzLiAgKi8KICAgIGludCB4W10gPSB7MjUsIDE3fTsKICAgIGNvbnN0IGludCAq
Zm9vID0gJnhbMF07CiAgICArK2ZvbzsKICB9CiAgeyAvKiBTdW4gU0MxLjAgQU5TSSBjb21waWxl
ciByZWplY3RzIHRoaXMgLS0gYnV0IG5vdCB0aGUgYWJvdmUuICovCiAgICB0eXBlZGVmIGNvbnN0
IGludCAqaXB0cjsKICAgIGlwdHIgcCA9IDA7CiAgICArK3A7CiAgfQogIHsgLyogQUlYIFhMIEMg
MS4wMi4wLjAgcmVqZWN0cyB0aGlzIHNheWluZwogICAgICAgImsuYyIsIGxpbmUgMi4yNzogMTUw
Ni0wMjUgKFMpIE9wZXJhbmQgbXVzdCBiZSBhIG1vZGlmaWFibGUgbHZhbHVlLiAqLwogICAgc3Ry
dWN0IHMgeyBpbnQgajsgY29uc3QgaW50ICphcFszXTsgfTsKICAgIHN0cnVjdCBzICpiOyBiLT5q
ID0gNTsKICB9CiAgeyAvKiBVTFRSSVgtMzIgVjMuMSAoUmV2IDkpIHZjYyByZWplY3RzIHRoaXMg
Ki8KICAgIGNvbnN0IGludCBmb28gPSAxMDsKICAgIGlmICghZm9vKSByZXR1cm4gMDsKICB9CiAg
cmV0dXJuICFjc1swXSAmJiAhemVyby54OwojZW5kaWYKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNh
c2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf
dHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19t
ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+
Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx
ID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4m
NQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVz
dCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl
eHQ7IHRoZW4KICBhY19jdl9jX2NvbnN0PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFj
X2N2X2NfY29uc3Q9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v
YmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
ICRhY19jdl9jX2NvbnN0IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2NfY29uc3QiID4mNjsg
fQppZiB0ZXN0ICRhY19jdl9jX2NvbnN0ID0gbm87IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxc
X0FDRU9GCiNkZWZpbmUgY29uc3QKX0FDRU9GCgpmaQoKCiMgSWYgdGhlIEMgY29tcGlsZXIgc3Vw
cG9ydHMgdGhlIGtleXdvcmQgYGlubGluZScsIGRvIG5vdGhpbmcuCiMgT3RoZXJ3aXNlIGRlZmlu
ZSBgaW5saW5lJyB0byBgX19pbmxpbmVfXycgb3IgYF9faW5saW5lJyBpZiBpdAojIGFjY2VwdHMg
b25lIG9mIHRob3NlLCBvdGhlcndpc2UgZGVmaW5lIGBpbmxpbmUnIHRvIGJlIGVtcHR5Lgp7IGVj
aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgaW5saW5lIiA+JjUKZWNobyAkRUNIT19O
ICJjaGVja2luZyBmb3IgaW5saW5lLi4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2
X2NfaW5saW5lK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNI
T19DIiA+JjYKZWxzZQogIGFjX2N2X2NfaW5saW5lPW5vCmZvciBhY19rdyBpbiBpbmxpbmUgX19p
bmxpbmVfXyBfX2lubGluZTsgZG8KICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
Y29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK
Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNp
Zm5kZWYgX19jcGx1c3BsdXMKdHlwZWRlZiBpbnQgZm9vX3Q7CnN0YXRpYyAkYWNfa3cgZm9vX3Qg
c3RhdGljX2ZvbyAoKSB7cmV0dXJuIDA7IH0KJGFjX2t3IGZvb190IGZvbyAoKSB7cmV0dXJuIDA7
IH0KI2VuZGlmCgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChhY190cnk9
IiRhY19jb21waWxlIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBh
Y190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZh
bCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAi
JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14g
KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0
IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJv
cl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBj
b25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCiAgYWNfY3ZfY19pbmxpbmU9JGFjX2t3CmVsc2UKICBl
Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0
ZXN0LiRhY19leHQgPiY1CgoKZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh
Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogIHRlc3QgIiRhY19jdl9jX2lubGluZSIgIT0gbm8g
JiYgYnJlYWsKZG9uZQoKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf
Y19pbmxpbmUiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfY19pbmxpbmUiID4mNjsgfQoKCmNh
c2UgJGFjX2N2X2NfaW5saW5lIGluCiAgaW5saW5lIHwgeWVzKSA7OwogICopCiAgICBjYXNlICRh
Y19jdl9jX2lubGluZSBpbgogICAgICBubykgYWNfdmFsPTs7CiAgICAgICopIGFjX3ZhbD0kYWNf
Y3ZfY19pbmxpbmU7OwogICAgZXNhYwogICAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojaWZu
ZGVmIF9fY3BsdXNwbHVzCiNkZWZpbmUgaW5saW5lICRhY192YWwKI2VuZGlmCl9BQ0VPRgogICAg
OzsKZXNhYwoKCiMgRGVmaW5lIGBzaXplX3QnIHRvIGEgc3VpdGFibGUgdHlwZSwgaWYgc3RhbmRh
cmQgaGVhZGVycyBkbyBub3QgZGVmaW5lIGl0LgojIE5vdGUgdGhpcyBkZWZpbmVzIGEgYnVuY2gg
b2Ygb3RoZXIgbWFjcm9zIG5hbWVkIEhBVkVfKiBzbyB3ZSBkb24ndCB1c2UgaXQuCnsgZWNobyAi
JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzaXplX3QiID4mNQplY2hvICRFQ0hPX04gImNo
ZWNraW5nIGZvciBzaXplX3QuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfdHlw
ZV9zaXplX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP
X0MiID4mNgplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZz
LmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVk
ZXNfZGVmYXVsdAp0eXBlZGVmIHNpemVfdCBhY19fdHlwZV9uZXdfOwppbnQKbWFpbiAoKQp7Cmlm
ICgoYWNfX3R5cGVfbmV3XyAqKSAwKQogIHJldHVybiAwOwppZiAoc2l6ZW9mIChhY19fdHlwZV9u
ZXdfKSkKICByZXR1cm4gMDsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0
LiRhY19vYmpleHQKaWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKY2FzZSAiKCgkYWNfdHJ5IiBp
bgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3Ry
eV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190
cnlfZWNob1wiIikgPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKICBh
Y19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgog
IHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYm
IHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3Qu
ZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgogIGFjX2N2
X3R5cGVfc2l6ZV90PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2N2X3R5cGVfc2l6
ZV90PW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0LiRhY19leHQKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf
dHlwZV9zaXplX3QiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zaXplX3QiID4mNjsg
fQppZiB0ZXN0ICRhY19jdl90eXBlX3NpemVfdCA9IHllczsgdGhlbgogIDoKZWxzZQoKY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKX0FDRU9GCgpm
aQoKCiMgSWYgYHNpZ25hbC5oJyBkZWNsYXJlcyBgc2lnbmFsJyBhcyByZXR1cm5pbmcgYSBwb2lu
dGVyIHRvIGEKIyBmdW5jdGlvbiByZXR1cm5pbmcgYHZvaWQnLCBkZWZpbmUgYFJFVFNJR1RZUEUn
IHRvIGJlIGB2b2lkJzsKIyBvdGhlcndpc2UsIGRlZmluZSBpdCB0byBiZSBgaW50Jy4KeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJz
IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxl
cnMuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zaWduYWwrc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YK
Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNp
bmNsdWRlIDxzaWduYWwuaD4KCmludAptYWluICgpCnsKcmV0dXJuICooc2lnbmFsICgwLCAwKSkg
KDApID09IDE7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIq
IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0k
YWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c
IiIpID4mNQogIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVz
PSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBj
b25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVz
dCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAg
ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KICBhY19jdl90eXBlX3Np
Z25hbD1pbnQKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNl
ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCglhY19jdl90eXBlX3NpZ25hbD12b2lk
CmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0
LiRhY19leHQKZmkKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9z
aWduYWwiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zaWduYWwiID4mNjsgfQoKY2F0
ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIFJFVFNJR1RZUEUgJGFjX2N2X3R5cGVfc2ln
bmFsCl9BQ0VPRgoKCgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbW1hcCIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1tYXAuLi4gJEVDSE9fQyIgPiY2OyB9Cmlm
IHRlc3QgIiR7YWNfY3ZfZnVuY19tbWFwK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19O
ICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu
JGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KLyogRGVmaW5lIG1tYXAgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxp
bWl0cy5oPiBkZWNsYXJlcyBtbWFwLgogICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMu
aD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KI2RlZmluZSBtbWFwIGlubm9jdW91c19tbWFw
CgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg
ZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIG1tYXAgKCk7
IGJlbG93LgogICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp
cyBkZWZpbmVkLCBzaW5jZQogICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRp
bmcgY29tcGlsZXJzLiAgKi8KCiNpZmRlZiBfX1NURENfXwojIGluY2x1ZGUgPGxpbWl0cy5oPgoj
ZWxzZQojIGluY2x1ZGUgPGFzc2VydC5oPgojZW5kaWYKCiN1bmRlZiBtbWFwCgovKiBPdmVycmlk
ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KICAgVXNlIGNo
YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCiAgIGJ1
aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g
ICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgpjaGFyIG1tYXAgKCk7Ci8q
IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt
cGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg
YXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl
IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgX19zdHViX21tYXAgfHwg
ZGVmaW5lZCBfX3N0dWJfX19tbWFwCmNob2tlIG1lCiNlbmRpZgoKaW50Cm1haW4gKCkKewpyZXR1
cm4gbW1hcCAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19v
YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCmNhc2UgIigo
JGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK
ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElO
RU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3Qu
ZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz
dC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVz
KTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNv
bmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJgogICAg
ICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBhY19jdl9mdW5jX21tYXA9
eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3Mv
Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfY3ZfZnVuY19tbWFwPW5vCmZpCgpybSAt
ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u
ZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApmaQp7
IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX21tYXAiID4mNQplY2hv
ICIke0VDSE9fVH0kYWNfY3ZfZnVuY19tbWFwIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfZnVuY19t
bWFwID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExF
R1JPX0hBVkVfTU1BUCAxCl9BQ0VPRgoKZmkKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciBtcHJvdGVjdCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1wcm90ZWN0
Li4uICRFQ0hPX0MiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2Z1bmNfbXByb3RlY3Qrc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YK
Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwovKiBEZWZpbmUgbXByb3RlY3QgdG8gYW4g
aW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBtcHJvdGVjdC4K
ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh
eS4gICovCiNkZWZpbmUgbXByb3RlY3QgaW5ub2N1b3VzX21wcm90ZWN0CgovKiBTeXN0ZW0gaGVh
ZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMs
CiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIG1wcm90ZWN0ICgpOyBiZWxvdy4KICAg
IFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwg
c2luY2UKICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVy
cy4gICovCgojaWZkZWYgX19TVERDX18KIyBpbmNsdWRlIDxsaW1pdHMuaD4KI2Vsc2UKIyBpbmNs
dWRlIDxhc3NlcnQuaD4KI2VuZGlmCgojdW5kZWYgbXByb3RlY3QKCi8qIE92ZXJyaWRlIGFueSBH
Q0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNh
dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBh
bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lm
ZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCmNoYXIgbXByb3RlY3QgKCk7Ci8qIFRo
ZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxl
bWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl
IGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v
cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgX19zdHViX21wcm90ZWN0IHx8
IGRlZmluZWQgX19zdHViX19fbXByb3RlY3QKY2hva2UgbWUKI2VuZGlmCgppbnQKbWFpbiAoKQp7
CnJldHVybiBtcHJvdGVjdCAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRh
c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+
Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx
ID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4m
NQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVz
dCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4
dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBhY19jdl9m
dW5jX21wcm90ZWN0PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX2N2X2Z1bmNfbXBy
b3RlY3Q9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCiAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m
dGVzdC4kYWNfZXh0CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1
bmNfbXByb3RlY3QiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY19tcHJvdGVjdCIgPiY2
OyB9CmlmIHRlc3QgJGFjX2N2X2Z1bmNfbXByb3RlY3QgPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25m
ZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fSEFWRV9NUFJPVEVDVCAxCl9BQ0VPRgoK
ZmkKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtZW1jbXAiID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nIGZvciBtZW1jbXAuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3Qg
IiR7YWNfY3ZfZnVuY19tZW1jbXArc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihj
YWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
Ci8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf
ZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAq
LwovKiBEZWZpbmUgbWVtY21wIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p
dHMuaD4gZGVjbGFyZXMgbWVtY21wLgogICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMu
aD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KI2RlZmluZSBtZW1jbXAgaW5ub2N1b3VzX21l
bWNtcAoKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1
bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBtZW1j
bXAgKCk7IGJlbG93LgogICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NU
RENfXyBpcyBkZWZpbmVkLCBzaW5jZQogICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl
c3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KCiNpZmRlZiBfX1NURENfXwojIGluY2x1ZGUgPGxpbWl0
cy5oPgojZWxzZQojIGluY2x1ZGUgPGFzc2VydC5oPgojZW5kaWYKCiN1bmRlZiBtZW1jbXAKCi8q
IE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgog
ICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBH
Q0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs
IGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCmNoYXIgbWVt
Y21wICgpOwovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3
aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg
ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGgg
X18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIF9fc3R1
Yl9tZW1jbXAgfHwgZGVmaW5lZCBfX3N0dWJfX19tZW1jbXAKY2hva2UgbWUKI2VuZGlmCgppbnQK
bWFpbiAoKQp7CnJldHVybiBtZW1jbXAgKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAt
ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChhY190cnk9IiRh
Y19saW5rIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf
ZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCAiZWNo
byBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+JjUKICAoZXZhbCAiJGFjX2xp
bmsiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0
ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0
LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAg
KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8
fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRh
Y19leGVleHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCiAg
YWNfY3ZfZnVuY19tZW1jbXA9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt
IHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJYWNfY3ZfZnVu
Y19tZW1jbXA9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl
eHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCiAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj
b25mdGVzdC4kYWNfZXh0CmZpCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2
X2Z1bmNfbWVtY21wIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2Z1bmNfbWVtY21wIiA+JjY7
IH0KaWYgdGVzdCAkYWNfY3ZfZnVuY19tZW1jbXAgPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVm
cy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fSEFWRV9NRU1DTVAgMQpfQUNFT0YKCmZpCgp7
IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWtzdGVtcCIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgZm9yIG1rc3RlbXAuLi4gJEVDSE9fQyIgPiY2OyB9CmlmIHRlc3QgIiR7
YWNfY3ZfZnVuY19ta3N0ZW1wK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgov
KiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4
dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8K
LyogRGVmaW5lIG1rc3RlbXAgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0
cy5oPiBkZWNsYXJlcyBta3N0ZW1wLgogICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMu
aD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KI2RlZmluZSBta3N0ZW1wIGlubm9jdW91c19t
a3N0ZW1wCgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3Bl
ZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIG1r
c3RlbXAgKCk7IGJlbG93LgogICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBf
X1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQogICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBm
cmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KCiNpZmRlZiBfX1NURENfXwojIGluY2x1ZGUgPGxp
bWl0cy5oPgojZWxzZQojIGluY2x1ZGUgPGFzc2VydC5oPgojZW5kaWYKCiN1bmRlZiBta3N0ZW1w
CgovKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv
ci4KICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m
IGEgR0NDCiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz
dGlsbCBhcHBseS4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgpjaGFy
IG1rc3RlbXAgKCk7Ci8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rp
b25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg
U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcg
d2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQg
X19zdHViX21rc3RlbXAgfHwgZGVmaW5lZCBfX3N0dWJfX19ta3N0ZW1wCmNob2tlIG1lCiNlbmRp
ZgoKaW50Cm1haW4gKCkKewpyZXR1cm4gbWtzdGVtcCAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FD
RU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGFj
X3RyeT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCop
IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpl
dmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIpID4mNQogIChldmFs
ICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAq
KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQg
Y29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz
IiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAteiAiJGFjX2Nfd2Vycm9y
X2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNv
bmZ0ZXN0JGFjX2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQ7
IHRoZW4KICBhY19jdl9mdW5jX21rc3RlbXA9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgoJ
YWNfY3ZfZnVuY19ta3N0ZW1wPW5vCmZpCgpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAogICAgICBjb25mdGVzdCRh
Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dApmaQp7IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1
bHQ6ICRhY19jdl9mdW5jX21rc3RlbXAiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY19t
a3N0ZW1wIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfZnVuY19ta3N0ZW1wID0geWVzOyB0aGVuCiAg
Y2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExFR1JPX0hBVkVfTUtTVEVNUCAx
Cl9BQ0VPRgoKZmkKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJpY21w
IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RyaWNtcC4uLiAkRUNIT19DIiA+JjY7
IH0KaWYgdGVzdCAiJHthY19jdl9mdW5jX3N0cmljbXArc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hv
ICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5j
b25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNv
bmZkZWZzLmguICAqLwovKiBEZWZpbmUgc3RyaWNtcCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwg
aW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHN0cmljbXAuCiAgIEZvciBleGFtcGxlLCBIUC1V
WCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwojZGVmaW5lIHN0cmlj
bXAgaW5ub2N1b3VzX3N0cmljbXAKCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt
YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGlj
dCB3aXRoIGNoYXIgc3RyaWNtcCAoKTsgYmVsb3cuCiAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8
YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCiAgICA8bGltaXRzLmg+IGV4
aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwoKI2lmZGVmIF9fU1REQ19f
CiMgaW5jbHVkZSA8bGltaXRzLmg+CiNlbHNlCiMgaW5jbHVkZSA8YXNzZXJ0Lmg+CiNlbmRpZgoK
I3VuZGVmIHN0cmljbXAKCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv
IGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv
dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAi
QyIKI2VuZGlmCmNoYXIgc3RyaWNtcCAoKTsKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0
aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwg
d2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0
aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAq
LwojaWYgZGVmaW5lZCBfX3N0dWJfc3RyaWNtcCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3N0cmljbXAK
Y2hva2UgbWUKI2VuZGlmCgppbnQKbWFpbiAoKQp7CnJldHVybiBzdHJpY21wICgpOwogIDsKICBy
ZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l
eGVleHQKaWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiog
fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRh
Y190cnk7Owplc2FjCmV2YWwgImVjaG8gXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi
IikgPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8K
ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0
ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwk
PyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKCSB0ZXN0IC16
ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9
ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmCiAgICAgICAkYXNfdGVzdF94IGNvbmZ0
ZXN0JGFjX2V4ZWV4dDsgdGhlbgogIGFjX2N2X2Z1bmNfc3RyaWNtcD15ZXMKZWxzZQogIGVjaG8g
IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3Qu
JGFjX2V4dCA+JjUKCglhY19jdl9mdW5jX3N0cmljbXA9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRl
c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCiAg
ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCnsgZWNobyAiJGFzX21l
OiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfc3RyaWNtcCIgPiY1CmVjaG8gIiR7RUNIT19U
fSRhY19jdl9mdW5jX3N0cmljbXAiID4mNjsgfQppZiB0ZXN0ICRhY19jdl9mdW5jX3N0cmljbXAg
PSB5ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9f
SEFWRV9TVFJJQ01QIDEKX0FDRU9GCgpmaQoKeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgZm9yIHN0cmx3ciIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cmx3ci4uLiAk
RUNIT19DIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9mdW5jX3N0cmx3citzZXR9IiA9IHNldDsg
dGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP
RgovKiBlbmQgY29uZmRlZnMuaC4gICovCi8qIERlZmluZSBzdHJsd3IgdG8gYW4gaW5ub2N1b3Vz
IHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzdHJsd3IuCiAgIEZvciBleGFt
cGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwojZGVm
aW5lIHN0cmx3ciBpbm5vY3VvdXNfc3RybHdyCgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBf
X3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4g
Y29uZmxpY3Qgd2l0aCBjaGFyIHN0cmx3ciAoKTsgYmVsb3cuCiAgICBQcmVmZXIgPGxpbWl0cy5o
PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCiAgICA8bGltaXRz
Lmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwoKI2lmZGVmIF9f
U1REQ19fCiMgaW5jbHVkZSA8bGltaXRzLmg+CiNlbHNlCiMgaW5jbHVkZSA8YXNzZXJ0Lmg+CiNl
bmRpZgoKI3VuZGVmIHN0cmx3cgoKLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5
cGUgdG8gYXZvaWQgYW4gZXJyb3IuCiAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo
IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwogICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu
dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0
ZXJuICJDIgojZW5kaWYKY2hhciBzdHJsd3IgKCk7Ci8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmlu
ZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBm
YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBz
b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz
LiAgKi8KI2lmIGRlZmluZWQgX19zdHViX3N0cmx3ciB8fCBkZWZpbmVkIF9fc3R1Yl9fX3N0cmx3
cgpjaG9rZSBtZQojZW5kaWYKCmludAptYWluICgpCnsKcmV0dXJuIHN0cmx3ciAoKTsKICA7CiAg
cmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNf
ZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIq
IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0k
YWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c
IiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/
CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25m
dGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBc
JD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVzdCAt
eiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAg
fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3RfeCBjb25m
dGVzdCRhY19leGVleHQ7IHRoZW4KICBhY19jdl9mdW5jX3N0cmx3cj15ZXMKZWxzZQogIGVjaG8g
IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3Qu
JGFjX2V4dCA+JjUKCglhY19jdl9mdW5jX3N0cmx3cj1ubwpmaQoKcm0gLWYgY29yZSBjb25mdGVz
dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKICAg
ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19zdHJsd3IiID4mNQplY2hvICIke0VDSE9fVH0k
YWNfY3ZfZnVuY19zdHJsd3IiID4mNjsgfQppZiB0ZXN0ICRhY19jdl9mdW5jX3N0cmx3ciA9IHll
czsgdGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgQUxMRUdST19IQVZF
X1NUUkxXUiAxCl9BQ0VPRgoKZmkKCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv
ciBzdHJ1cHIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1cHIuLi4gJEVDSE9f
QyIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfZnVuY19zdHJ1cHIrc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2F0ID5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZz
LmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
ZW5kIGNvbmZkZWZzLmguICAqLwovKiBEZWZpbmUgc3RydXByIHRvIGFuIGlubm9jdW91cyB2YXJp
YW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc3RydXByLgogICBGb3IgZXhhbXBsZSwg
SFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KI2RlZmluZSBz
dHJ1cHIgaW5ub2N1b3VzX3N0cnVwcgoKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHVi
IG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZs
aWN0IHdpdGggY2hhciBzdHJ1cHIgKCk7IGJlbG93LgogICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g
PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQogICAgPGxpbWl0cy5oPiBl
eGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KCiNpZmRlZiBfX1NURENf
XwojIGluY2x1ZGUgPGxpbWl0cy5oPgojZWxzZQojIGluY2x1ZGUgPGFzc2VydC5oPgojZW5kaWYK
CiN1bmRlZiBzdHJ1cHIKCi8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv
IGF2b2lkIGFuIGVycm9yLgogICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBHQ0MKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv
dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAi
QyIKI2VuZGlmCmNoYXIgc3RydXByICgpOwovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRo
aXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3
aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRo
aW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICov
CiNpZiBkZWZpbmVkIF9fc3R1Yl9zdHJ1cHIgfHwgZGVmaW5lZCBfX3N0dWJfX19zdHJ1cHIKY2hv
a2UgbWUKI2VuZGlmCgppbnQKbWFpbiAoKQp7CnJldHVybiBzdHJ1cHIgKCk7CiAgOwogIHJldHVy
biAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4
dAppZiB7IChhY190cnk9IiRhY19saW5rIgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpc
YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry
eTs7CmVzYWMKZXZhbCAiZWNobyBcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiKSA+
JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdy
ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29uZnRlc3Qu
ZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewoJIHRlc3QgLXogIiRh
Y19jX3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYg
dGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYKICAgICAgICRhc190ZXN0X3ggY29uZnRlc3Qk
YWNfZXhlZXh0OyB0aGVuCiAgYWNfY3ZfZnVuY19zdHJ1cHI9eWVzCmVsc2UKICBlY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l
eHQgPiY1CgoJYWNfY3ZfZnVuY19zdHJ1cHI9bm8KZmkKCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJy
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCiAgICAgIGNv
bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCnsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfc3RydXByIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2
X2Z1bmNfc3RydXByIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfZnVuY19zdHJ1cHIgPSB5ZXM7IHRo
ZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEFMTEVHUk9fSEFWRV9TVFJV
UFIgMQpfQUNFT0YKCmZpCgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3lz
Y29uZiIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5c2NvbmYuLi4gJEVDSE9fQyIg
PiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfZnVuY19zeXNjb25mK3NldH0iID0gc2V0OyB0aGVuCiAg
ZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3Qu
JGFjX2V4dCA8PF9BQ0VPRgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5o
ID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KLyogRGVmaW5lIHN5c2NvbmYgdG8gYW4gaW5ub2N1b3VzIHZhcmlh
bnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzeXNjb25mLgogICBGb3IgZXhhbXBsZSwg
SFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KI2RlZmluZSBz
eXNjb25mIGlubm9jdW91c19zeXNjb25mCgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0
dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29u
ZmxpY3Qgd2l0aCBjaGFyIHN5c2NvbmYgKCk7IGJlbG93LgogICAgUHJlZmVyIDxsaW1pdHMuaD4g
dG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQogICAgPGxpbWl0cy5o
PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KCiNpZmRlZiBfX1NU
RENfXwojIGluY2x1ZGUgPGxpbWl0cy5oPgojZWxzZQojIGluY2x1ZGUgPGFzc2VydC5oPgojZW5k
aWYKCiN1bmRlZiBzeXNjb25mCgovKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw
ZSB0byBhdm9pZCBhbiBlcnJvci4KICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg
dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50
IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRl
cm4gIkMiCiNlbmRpZgpjaGFyIHN5c2NvbmYgKCk7Ci8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmlu
ZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBm
YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBz
b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz
LiAgKi8KI2lmIGRlZmluZWQgX19zdHViX3N5c2NvbmYgfHwgZGVmaW5lZCBfX3N0dWJfX19zeXNj
b25mCmNob2tlIG1lCiNlbmRpZgoKaW50Cm1haW4gKCkKewpyZXR1cm4gc3lzY29uZiAoKTsKICA7
CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk
YWNfZXhlZXh0CmlmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAq
XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNo
bz0kYWNfdHJ5OzsKZXNhYwpldmFsICJlY2hvIFwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj
aG9cIiIpID4mNQogIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVz
PSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBj
b25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CgkgdGVz
dCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAg
ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJgogICAgICAgJGFzX3Rlc3RfeCBj
b25mdGVzdCRhY19leGVleHQ7IHRoZW4KICBhY19jdl9mdW5jX3N5c2NvbmY9eWVzCmVsc2UKICBl
Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0
ZXN0LiRhY19leHQgPiY1CgoJYWNfY3ZfZnVuY19zeXNjb25mPW5vCmZpCgpybSAtZiBjb3JlIGNv
bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g
XAogICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApmaQp7IGVjaG8gIiRh
c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX3N5c2NvbmYiID4mNQplY2hvICIke0VD
SE9fVH0kYWNfY3ZfZnVuY19zeXNjb25mIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfZnVuY19zeXNj
b25mID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBBTExF
R1JPX0hBVkVfU1lTQ09ORiAxCl9BQ0VPRgoKZmkKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCgpD
RkxBR1M9IiRDRkxBR1MgLURBTExFR1JPX0xJQl9CVUlMRCIKCmlmIHRlc3QgLW4gIiRHQ0MiOyB0
aGVuCiAgaWYgdGVzdCAiWCRhbGxlZ3JvX3N0cmljdF93YXJuaW5ncyIgPSAiWHllcyI7IHRoZW4K
ICAgIFdGTEFHUz0iLVdhbGwgLVcgLVdzdHJpY3QtcHJvdG90eXBlcyAtV25vLXVudXNlZC1wYXJh
bWV0ZXIgLVdlcnJvciIKICBlbHNlCiAgICBXRkxBR1M9Ii1XYWxsIC1Xbm8tdW51c2VkIgogIGZp
CiAgaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBlIiA9ICJYaTM4NiI7IHRoZW4K
ICAgIGlmIHRlc3QgIiRhbGxlZ3JvX2V4Y2x1c2l2ZV9vcHRpbWl6YXRpb25zIiAhPSBub25lOyB0
aGVuCiAgICAgIFRBUkdFVF9BUkNIPSItbWFyY2g9JGFsbGVncm9fZXhjbHVzaXZlX29wdGltaXph
dGlvbnMiCiAgICBlbGlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X2kzODZfbXR1bmUiID0g
Ilh5ZXMiOyB0aGVuCiAgICAgIFRBUkdFVF9BUkNIPSItbXR1bmU9JGFsbGVncm9fb3B0aW1pemF0
aW9ucyIKICAgIGVsc2UKICAgICAgVEFSR0VUX0FSQ0g9Ii1tY3B1PSRhbGxlZ3JvX29wdGltaXph
dGlvbnMiCiAgICBmaQogIGVsaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBlIiA9
ICJYYW1kNjQiOyB0aGVuCiAgICAgICAgaWYgdGVzdCAiWCRhbGxlZ3JvX29wdGltaXphdGlvbnMi
ID0gIlhwZW50aXVtIjsgdGhlbgogICAgICBhbGxlZ3JvX29wdGltaXphdGlvbnM9Ims4IgogICAg
ZmkKICAgIGlmIHRlc3QgIiRhbGxlZ3JvX2V4Y2x1c2l2ZV9vcHRpbWl6YXRpb25zIiAhPSBub25l
OyB0aGVuCiAgICAgIFRBUkdFVF9BUkNIPSItbWFyY2g9JGFsbGVncm9fZXhjbHVzaXZlX29wdGlt
aXphdGlvbnMiCiAgICBlbGlmIHRlc3QgIlgkYWxsZWdyb19jdl9zdXBwb3J0X2FtZDY0X210dW5l
IiA9ICJYeWVzIjsgdGhlbgogICAgICBUQVJHRVRfQVJDSD0iLW10dW5lPSRhbGxlZ3JvX29wdGlt
aXphdGlvbnMiCiAgICBlbHNlCiAgICAgIFRBUkdFVF9BUkNIPSItbWNwdT0kYWxsZWdyb19vcHRp
bWl6YXRpb25zIgogICAgZmkKICBlbHNlCiAgICBUQVJHRVRfQVJDSD0KICBmaQogICAgQ0ZMQUdT
PSIkQ0ZMQUdTICRYQ0ZMQUdTIgogIFdGTEFHUz0iJFdGTEFHUyAkV0NGTEFHUyIKICAgIEFMTEVH
Uk9fREVCVUdfQ0ZMQUdTPSIkQ0ZMQUdTIC1nICRXRkxBR1MgLURERUJVR01PREUiCiAgaWYgdGVz
dCAiWCRhbGxlZ3JvX2RlYnVnX3dpdGhfZm9ydGlmeSIgPSAiWHllcyI7IHRoZW4KICAgICBBTExF
R1JPX0RFQlVHX0NGTEFHUz0iJEFMTEVHUk9fREVCVUdfQ0ZMQUdTIC1ERk9SVElGWSIKICBmaQog
IGlmIHRlc3QgIlgkYWxsZWdyb19kZWJ1Z193aXRoX2RtYWxsb2MiID0gIlh5ZXMiOyB0aGVuCiAg
ICAgQUxMRUdST19ERUJVR19DRkxBR1M9IiRBTExFR1JPX0RFQlVHX0NGTEFHUyAtRERNQUxMT0Mi
CiAgZmkKICBBTExFR1JPX1BST0ZJTEVfQ0ZMQUdTPSIkQ0ZMQUdTIC1wZyAkVEFSR0VUX0FSQ0gg
LU8yIC1mdW5yb2xsLWxvb3BzIC1mZmFzdC1tYXRoICRXRkxBR1MiCiAgaWYgdGVzdCAiWCRhbGxl
Z3JvX2N2X3N1cHBvcnRfZm9taXRfZnJhbWVfcG9pbnRlciIgPSAiWHllcyI7IHRoZW4KICAgIENG
TEFHUz0iJENGTEFHUyAkVEFSR0VUX0FSQ0ggLU8yIC1mdW5yb2xsLWxvb3BzIC1mZmFzdC1tYXRo
IC1mb21pdC1mcmFtZS1wb2ludGVyICRXRkxBR1MiCiAgZWxzZQogICAgQ0ZMQUdTPSIkQ0ZMQUdT
ICRUQVJHRVRfQVJDSCAtTzIgLWZ1bnJvbGwtbG9vcHMgLWZmYXN0LW1hdGggJFdGTEFHUyIKICBm
aQogIEFMTEVHUk9fU0ZMQUdTPSIteCBhc3NlbWJsZXItd2l0aC1jcHAiCiAgQUxMRUdST19TSEFS
RURMSUJfQ0ZMQUdTPSItZlBJQyAtREFMTEVHUk9fU0hBUkVEIgplbHNlCiAgQUxMRUdST19ERUJV
R19DRkxBR1M9IiRDRkxBR1MiCiAgQUxMRUdST19QUk9GSUxFX0NGTEFHUz0iJENGTEFHUyIKICBB
TExFR1JPX1NGTEFHUz0KICBBTExFR1JPX1NIQVJFRExJQl9DRkxBR1M9CmZpCgoKCgoKCgojLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0jCgppZiB0ZXN0ICJYJGFsbGVncm9fY3Zfc3VwcG9ydF9jcGx1c3Bs
dXMiID0gIlh5ZXMiOyB0aGVuCiAgQ1hYPSIkQ0MiCiAgQ1hYRkxBR1M9Ii1mbm8tZXhjZXB0aW9u
cyAkQ0ZMQUdTIgogIEFMTEVHUk9fREVCVUdfQ1hYRkxBR1M9Ii1mbm8tZXhjZXB0aW9ucyAkQUxM
RUdST19ERUJVR19DRkxBR1MiCiAgQUxMRUdST19QUk9GSUxFX0NYWEZMQUdTPSItZm5vLWV4Y2Vw
dGlvbnMgJEFMTEVHUk9fUFJPRklMRV9DRkxBR1MiCmVsc2UKICBDWFg9CiAgQ1hYRkxBR1M9CiAg
QUxMRUdST19ERUJVR19DWFhGTEFHUz0KICBBTExFR1JPX1BST0ZJTEVfQ1hYRkxBR1M9CmZpCgoK
CgoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKIwojIEluZm9ybWF0aW9uYWwKIwoKY2F0ID4gbWFr
ZWZpbGUuaW5mbyA8PCBFT0YKICRfbW9kdWxlcwogRW5hYmxlZCBtb2R1bGVzOiAkX2VuYWJsZWRf
bW9kdWxlcwogRGlzYWJsZWQgbW9kdWxlczogJF9kaXNhYmxlZF9tb2R1bGVzCiBHZW5lcmF0ZWQg
Y29kZTogJF9jb2RlX2ZlYXR1cmVzCiBHZW5lcmF0ZWQgbGlicmFyaWVzOiRfbGlicmFyaWVzCiBD
b21waWxlZCBwcm9ncmFtczogJF9wcm9ncmFtcwogJF93YXJubW9kZQogJF94MTEKICRfbGludXhf
Y29uc29sZQoKRU9GCgppZiB0ZXN0ICJYJGFsbGVncm9fc3VwcG9ydF94d2luZG93cyIgIT0gIlh5
ZXMiOyB0aGVuCiAgaWYgdGVzdCAiWCRhbGxlZ3JvX3N1cHBvcnRfbGludXgiICE9ICJYeWVzIjsg
dGhlbgogICAgY2F0ID4+IG1ha2VmaWxlLmluZm8gPDwgRU9GCiBXYXJuaW5nOiB0aGUgbGlicmFy
eSB3aWxsIG5vdCBiZSBidWlsdCB3aXRoIGVpdGhlciBYMTEgb3IgTGludXggY29uc29sZQogICAg
ICAgICAgc3VwcG9ydC4gIFRoaXMgY29uZmlndXJhdGlvbiBpcyB1c2VsZXNzIGZvciBtb3N0IHB1
cnBvc2VzLgoKRU9GCiAgZWxzZQogICAgY2F0ID4+IG1ha2VmaWxlLmluZm8gPDwgRU9GCiBXYXJu
aW5nOiB0aGUgbGlicmFyeSB3aWxsIG5vdCBiZSBidWlsdCB3aXRoIFgxMSBzdXBwb3J0LgogICAg
ICAgICAgSWYgeW91IHdlcmUgZXhwZWN0aW5nIFgxMSBzdXBwb3J0IHRoZW4geW91IG1heSBuZWVk
IHRvIGluc3RhbGwKICAgICAgICAgIHRoZSBhcHByb3ByaWF0ZSBkZXZlbG9wbWVudCBwYWNrYWdl
cyBmcm9tIHlvdXIgZGlzdHJpYnV0aW9uLgogICAgICAgICAgT3RoZXJ3aXNlLCBpZ25vcmUgdGhp
cyB3YXJuaW5nIChpdCdzIGp1c3QgdGhhdCBhIGxvdCBvZiBuZXcKICAgICAgICAgIHVzZXJzIHRy
aXAgdXAgb24gdGhpcykuCgpFT0YKICBmaQpmaQoKaWYgdGVzdCAtbiAiJGFsbGVncm9fZGVidWdf
d2l0aF9mb3J0aWZ5IjsgdGhlbgogIGlmIHRlc3QgLXogIiRhbGxlZ3JvX2J1aWxkX2RlYnVnZ2lu
Z19saWJyYXJ5IjsgdGhlbgogICAgY2F0ID4+IG1ha2VmaWxlLmluZm8gPDwgRU9GCiBXYXJuaW5n
OiB0aGUgbGlicmFyeSB3aWxsIG5vdCBiZSBidWlsdCB3aXRoIEZvcnRpZnkgc3VwcG9ydC4KICAg
ICAgICAgIFRoZSBzdXBwb3J0IGlzIG9ubHkgZW5hYmxlZCB3aXRoIHRoZSBkZWJ1ZyB2ZXJzaW9u
LgoKRU9GCiAgZmkKICBpZiB0ZXN0IC16ICIkYWxsZWdyb19idWlsZF9kZWJ1Z2dpbmdfcHJvZ3Jh
bXMiOyB0aGVuCiAgICBjYXQgPj4gbWFrZWZpbGUuaW5mbyA8PCBFT0YKIFdhcm5pbmc6IHRoZSBw
cm9ncmFtcyB3aWxsIG5vdCBiZSBidWlsdCB3aXRoIEZvcnRpZnkgc3VwcG9ydC4KICAgICAgICAg
IFRoZSBzdXBwb3J0IGlzIG9ubHkgZW5hYmxlZCB3aXRoIHRoZSBkZWJ1ZyB2ZXJzaW9uLgoKRU9G
CiAgZmkKZmkKCmlmIHRlc3QgLW4gIiRhbGxlZ3JvX2RlYnVnX3dpdGhfZG1hbGxvYyI7IHRoZW4K
ICBpZiB0ZXN0IC16ICIkYWxsZWdyb19idWlsZF9kZWJ1Z2dpbmdfbGlicmFyeSI7IHRoZW4KICAg
IGNhdCA+PiBtYWtlZmlsZS5pbmZvIDw8IEVPRgogV2FybmluZzogdGhlIGxpYnJhcnkgd2lsbCBu
b3QgYmUgYnVpbHQgd2l0aCBETWFsbG9jIHN1cHBvcnQuCiAgICAgICAgICBUaGUgc3VwcG9ydCBp
cyBvbmx5IGVuYWJsZWQgd2l0aCB0aGUgZGVidWcgdmVyc2lvbi4KCkVPRgogIGZpCiAgaWYgdGVz
dCAteiAiJGFsbGVncm9fYnVpbGRfZGVidWdnaW5nX3Byb2dyYW1zIjsgdGhlbgogICAgY2F0ID4+
IG1ha2VmaWxlLmluZm8gPDwgRU9GCiBXYXJuaW5nOiB0aGUgcHJvZ3JhbXMgd2lsbCBub3QgYmUg
YnVpbHQgd2l0aCBETWFsbG9jIHN1cHBvcnQuCiAgICAgICAgICBUaGUgc3VwcG9ydCBpcyBvbmx5
IGVuYWJsZWQgd2l0aCB0aGUgZGVidWcgdmVyc2lvbi4KCkVPRgogIGZpCmZpCgojLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0jCiMKIyBPdXRwdXQKIwoKaWYgdGVzdCAtZiAiJHNyY2Rpci9tYWtlZmlsZS5k
ZXAiOyB0aGVuCiAgaWYgdGVzdCBgY2QgIiRzcmNkaXIiIDsgcHdkYCAhPSBgY2QgLiA7IHB3ZGA7
IHRoZW4KICAgIGNwICIkc3JjZGlyL21ha2VmaWxlLmRlcCIgbWFrZWZpbGUuZGVwCiAgICAgICAg
ICAgIGVjaG8gJ0hhdmluZyBhIHNub296ZS4uLicKICAgIHNsZWVwIDEKICBmaQplbGlmIHRlc3Qg
ISAtZiBtYWtlZmlsZS5kZXA7IHRoZW4KICBhbGxlZ3JvX21ha2VfZGVwZW5kPSJ5ZXMiCmZpCgph
Y19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIGluY2x1ZGUvYWxsZWdyby9wbGF0
Zm9ybS9hbHVuaXhhYy5oOmluY2x1ZGUvYWxsZWdyby9wbGF0Zm9ybS9hbHVuaXhhYy5oaW4iCgoK
RlJBTUVXT1JLUz0KCgphY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgbWFrZWZpbGU6
bWFrZWZpbGUuaW4gYWxsZWdyby1jb25maWc6bWlzYy9hbGxlZ3JvLWNvbmZpZy5pbiIKCmFjX2Nv
bmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZWZhdWx0IgoKY2F0ID5jb25mY2Fj
aGUgPDxcX0FDRU9GCiMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2FjaGVzIHRo
ZSByZXN1bHRzIG9mIGNvbmZpZ3VyZQojIHRlc3RzIHJ1biBvbiB0aGlzIHN5c3RlbSBzbyB0aGV5
IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKIyBzY3JpcHRzIGFuZCBjb25maWd1cmUg
cnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KIyBJdCBpcyBub3Qg
dXNlZnVsIG9uIG90aGVyIHN5c3RlbXMuICBJZiBpdCBjb250YWlucyByZXN1bHRzIHlvdSBkb24n
dAojIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KIwojIGNvbmZpZy5z
dGF0dXMgb25seSBwYXlzIGF0dGVudGlvbiB0byB0aGUgY2FjaGUgZmlsZSBpZiB5b3UgZ2l2ZSBp
dAojIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4KIwojIGBhY19jdl9l
bnZfZm9vJyB2YXJpYWJsZXMgKHNldCBvciB1bnNldCkgd2lsbCBiZSBvdmVycmlkZGVuIHdoZW4K
IyBsb2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFz
c2lnbmVkIHRoZQojIGZvbGxvd2luZyB2YWx1ZXMuCgpfQUNFT0YKCiMgVGhlIGZvbGxvd2luZyB3
YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCiMg
YnV0IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFu
ZCBlZmZpY2llbnQuCiMgU28sIHdlIGtpbGwgdmFyaWFibGVzIGNvbnRhaW5pbmcgbmV3bGluZXMu
CiMgVWx0cml4IHNoIHNldCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBjYW4ndCBiZSByZWRpcmVjdGVk
IGRpcmVjdGx5LAojIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxl
c3Mgd2UgYXNzaWduIHRvIHRoZSB2YXJzLgooCiAgZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8
IHNlZCAtbiAncy9eXChbYS16QS1aX11bYS16QS1aMC05X10qXCk9LiovXDEvcCdgOyBkbwogICAg
ZXZhbCBhY192YWw9XCQkYWNfdmFyCiAgICBjYXNlICRhY192YWwgaW4gIygKICAgICoke2FzX25s
fSopCiAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAogICAgICAqX2N2XyopIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6IENhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXds
aW5lLiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogQ2FjaGUgdmFyaWFibGUgJGFjX3ZhciBj
b250YWlucyBhIG5ld2xpbmUuIiA+JjI7fSA7OwogICAgICBlc2FjCiAgICAgIGNhc2UgJGFjX3Zh
ciBpbiAjKAogICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCiAgICAgICopICRhc191bnNldCAk
YWNfdmFyIDs7CiAgICAgIGVzYWMgOzsKICAgIGVzYWMKICBkb25lCgogIChzZXQpIDI+JjEgfAog
ICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsgc2V0KSAyPiYxYCBpbiAjKAogICAgKiR7YXNf
bmx9YWNfc3BhY2U9XCAqKQogICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwg
c28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCiAgICAgICMgc3Vic3RpdHV0aW9uIHR1cm5zIFxc
XFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwpLgogICAgICBzZWQgLW4gXAoJInMv
Jy8nXFxcXCcnL2c7CgkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1d
KlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKICAgICAgOzsgIygKICAgICopCiAgICAgICMgYHNl
dCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJlZCBieSBQT1NJWCwgc28gZG8gbm90IGFkZCBx
dW90ZXMuCiAgICAgIHNlZCAtbiAiL15bXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVt
XSo9L3AiCiAgICAgIDs7CiAgICBlc2FjIHwKICAgIHNvcnQKKSB8CiAgc2VkICcKICAgICAvXmFj
X2N2X2Vudl8vYiBlbmQKICAgICB0IGNsZWFyCiAgICAgOmNsZWFyCiAgICAgcy9eXChbXj1dKlwp
PVwoLipbe31dLipcKSQvdGVzdCAiJHtcMStzZXR9IiA9IHNldCB8fCAmLwogICAgIHQgZW5kCiAg
ICAgcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCiAgICAgOmVuZCcgPj5jb25mY2Fj
aGUKaWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNvbmZjYWNoZSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g
OjsgZWxzZQogIGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhlbgogICAgdGVzdCAieCRjYWNo
ZV9maWxlIiAhPSAieC9kZXYvbnVsbCIgJiYKICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
dXBkYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQplY2hvICIkYXNfbWU6IHVwZGF0aW5nIGNh
Y2hlICRjYWNoZV9maWxlIiA+JjY7fQogICAgY2F0IGNvbmZjYWNoZSA+JGNhY2hlX2ZpbGUKICBl
bHNlCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBj
YWNoZSAkY2FjaGVfZmlsZSIgPiY1CmVjaG8gIiRhc19tZTogbm90IHVwZGF0aW5nIHVud3JpdGFi
bGUgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CiAgZmkKZmkKcm0gLWYgY29uZmNhY2hlCgp0ZXN0
ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4CiMgTGV0IG1h
a2UgZXhwYW5kIGV4ZWNfcHJlZml4Lgp0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4
ZWNfcHJlZml4PScke3ByZWZpeH0nCgpERUZTPS1ESEFWRV9DT05GSUdfSAoKYWNfbGlib2Jqcz0K
YWNfbHRsaWJvYmpzPQpmb3IgYWNfaSBpbiA6ICRMSUJPQkpTOyBkbyB0ZXN0ICJ4JGFjX2kiID0g
eDogJiYgY29udGludWUKICAjIDEuIFJlbW92ZSB0aGUgZXh0ZW5zaW9uLCBhbmQgJFUgaWYgYWxy
ZWFkeSBpbnN0YWxsZWQuCiAgYWNfc2NyaXB0PSdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5vYmok
Ly8nCiAgYWNfaT1gZWNobyAiJGFjX2kiIHwgc2VkICIkYWNfc2NyaXB0ImAKICAjIDIuIFByZXBl
bmQgTElCT0JKRElSLiAgV2hlbiB1c2VkIHdpdGggYXV0b21ha2U+PTEuMTAgTElCT0JKRElSCiAg
IyAgICB3aWxsIGJlIHNldCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIExJQk9CSlMgb2JqZWN0cyBh
cmUgYnVpbHQuCiAgYWNfbGlib2Jqcz0iJGFjX2xpYm9ianMgXCR7TElCT0JKRElSfSRhY19pXCRV
LiRhY19vYmpleHQiCiAgYWNfbHRsaWJvYmpzPSIkYWNfbHRsaWJvYmpzIFwke0xJQk9CSkRJUn0k
YWNfaSInJFUubG8nCmRvbmUKTElCT0JKUz0kYWNfbGlib2JqcwoKTFRMSUJPQkpTPSRhY19sdGxp
Ym9ianMKCgoKOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQphY19jbGVhbl9maWxl
c19zYXZlPSRhY19jbGVhbl9maWxlcwphY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzICRD
T05GSUdfU1RBVFVTIgp7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkQ09ORklHX1NU
QVRVUyIgPiY1CmVjaG8gIiRhc19tZTogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNjt9CmNh
dCA+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKIyEgJFNIRUxMCiMgR2VuZXJhdGVkIGJ5ICRhc19t
ZS4KIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24u
CiMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1
Z2dpbmcKIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgoKZGVidWc9
ZmFsc2UKYWNfY3NfcmVjaGVjaz1mYWxzZQphY19jc19zaWxlbnQ9ZmFsc2UKU0hFTEw9XCR7Q09O
RklHX1NIRUxMLSRTSEVMTH0KX0FDRU9GCgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YK
IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIwoj
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKCiMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQpE
VUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCmlmIHRlc3QgLW4gIiR7WlNI
X1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgogIGVt
dWxhdGUgc2gKICBOVUxMQ01EPToKICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNw
bGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCiAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2Uu
ICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKICBz
ZXRvcHQgTk9fR0xPQl9TVUJTVAplbHNlCiAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGlu
CiAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7CmVzYWMKCmZpCgoKCgojIFBBVEggbmVlZHMgQ1IK
IyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgphc19jcl9sZXR0ZXJzPSdh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5P
UFFSU1RVVldYWVonCmFzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUwph
c19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCmFzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2Ny
X2RpZ2l0cwoKIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCmlmIHRlc3QgIiR7UEFUSF9TRVBB
UkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCiAgZWNobyAiIyEgL2Jpbi9zaCIgPmNvbmYkJC5zaAog
IGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKICBjaG1vZCAreCBjb25mJCQuc2gKICBpZiAo
UEFUSD0iL25vbmV4aXN0ZW50Oy4iOyBjb25mJCQuc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgog
ICAgUEFUSF9TRVBBUkFUT1I9JzsnCiAgZWxzZQogICAgUEFUSF9TRVBBUkFUT1I9OgogIGZpCiAg
cm0gLWYgY29uZiQkLnNoCmZpCgojIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KaWYgKCAo
TUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgYXNf
dW5zZXQ9dW5zZXQKZWxzZQogIGFzX3Vuc2V0PWZhbHNlCmZpCgoKIyBJRlMKIyBXZSBuZWVkIHNw
YWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3Rpbmcg
aXMKIyB0aGVyZSB0byBwcmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBzcGFj
ZS10YWIuCiMgKElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0
IHdvdWxkIGRpc2FibGUgd29yZAojIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2
YWx1ZS4pCmFzX25sPScKJwpJRlM9IiAiIgkkYXNfbmwiCgojIEZpbmQgd2hvIHdlIGFyZS4gIExv
b2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgpjYXNl
ICQwIGluCiAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OwogICopIGFzX3NhdmVfSUZTPSRJRlM7
IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2
ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogIHRlc3QgLXIgIiRhc19kaXIv
JDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCmRvbmUKSUZTPSRhc19zYXZlX0lG
UwoKICAgICA7Owplc2FjCiMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJs
eSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3Qg
dG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCmlmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4K
ICBhc19teXNlbGY9JDAKZmkKaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgogIGVjaG8g
IiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJz
b2x1dGUgZmlsZSBuYW1lIiA+JjIKICB7IChleGl0IDEpOyBleGl0IDE7IH0KZmkKCiMgV29yayBh
cm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgpmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1B
SUxQQVRICmRvICgkYXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRhc191bnNl
dCAkYXNfdmFyCmRvbmUKUFMxPSckICcKUFMyPSc+ICcKUFM0PScrICcKCiMgTkxTIG51aXNhbmNl
cy4KZm9yIGFzX3ZhciBpbiBcCiAgTEFORyBMQU5HVUFHRSBMQ19BRERSRVNTIExDX0FMTCBMQ19D
T0xMQVRFIExDX0NUWVBFIExDX0lERU5USUZJQ0FUSU9OIFwKICBMQ19NRUFTVVJFTUVOVCBMQ19N
RVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAogIExDX1RF
TEVQSE9ORSBMQ19USU1FCmRvCiAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9
QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KICAgIGV2YWwgJGFzX3Zhcj1DOyBleHBv
cnQgJGFzX3ZhcgogIGVsc2UKICAgICgkYXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYx
ICYmICRhc191bnNldCAkYXNfdmFyCiAgZmkKZG9uZQoKIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5h
bWUuCmlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCiAgIHRlc3QgIlhgZXhw
ciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCiAgYXNfZXhwcj1leHByCmVsc2UK
ICBhc19leHByPWZhbHNlCmZpCgppZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYm
IHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCiAgYXNfYmFzZW5hbWU9
YmFzZW5hbWUKZWxzZQogIGFzX2Jhc2VuYW1lPWZhbHNlCmZpCgoKIyBOYW1lIG9mIHRoZSBleGVj
dXRhYmxlLgphc19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKJGFzX2V4cHIgWC8iJDAiIDog
Jy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAoJIFgi
JDAiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAplY2hvIFgvIiQwIiB8CiAgICBzZWQg
Jy9eLipcL1woW14vXVteL10qXClcLyokL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15Y
XC9cKFwvXC9cKSQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcL1woXC9cKS4qL3sK
CSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgcy8uKi8uLzsgcSdgCgojIENEUEFUSC4KJGFzX3Vu
c2V0IENEUEFUSAoKCgogIGFzX2xpbmVub18xPSRMSU5FTk8KICBhc19saW5lbm9fMj0kTElORU5P
CiAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCiAgdGVzdCAieGBl
eHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIiB8fCB7CgogICMgQ3JlYXRl
ICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8K
ICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3Nl
ZCcgaW5zZXJ0cyBhCiAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVyIGVhY2ggbGluZSB1c2luZyAk
TElORU5POyB0aGUgc2Vjb25kICdzZWQnCiAgIyBkb2VzIHRoZSByZWFsIHdvcmsuICBUaGUgc2Vj
b25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2gKICAjIGxpbmUtbnVtYmVyIGxpbmUgd2l0
aCB0aGUgbGluZSBjb250YWluaW5nICRMSU5FTk8sIGFuZCBhcHBlbmRzCiAgIyB0cmFpbGluZyAn
LScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbAog
ICMgY2FzZSBhdCBsaW5lIGVuZC4KICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAn
PScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRp
b24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmkuICBCbGFtZSBMZWUKICAjIEUuIE1jTWFob24gKDE5
MzEtMTk4OSkgZm9yIHNlZCdzIHN5bnRheC4gIDotKQogIHNlZCAtbiAnCiAgICBwCiAgICAvWyRd
TElORU5PLz0KICAnIDwkYXNfbXlzZWxmIHwKICAgIHNlZCAnCiAgICAgIHMvWyRdTElORU5PLiov
Ji0vCiAgICAgIHQgbGluZW5vCiAgICAgIGIKICAgICAgOmxpbmVubwogICAgICBOCiAgICAgIDps
b29wCiAgICAgIHMvWyRdTElORU5PXChbXickYXNfY3JfYWxudW0nX10uKlxuXClcKC4qXCkvXDJc
MVwyLwogICAgICB0IGxvb3AKICAgICAgcy8tXG4uKi8vCiAgICAnID4kYXNfbWUubGluZW5vICYm
CiAgY2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8CiAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6
IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+
JjIKICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CgogICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMg
aXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCiAgIyAodGhlIGRp
cm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCiAg
IyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0
byB0aGlzKS4KICAuICIuLyRhc19tZS5saW5lbm8iCiAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9m
IHRoZSBsYXN0IGNvbW1hbmQuCiAgZXhpdAp9CgoKaWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAm
JiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgYXNfZGlybmFt
ZT1kaXJuYW1lCmVsc2UKICBhc19kaXJuYW1lPWZhbHNlCmZpCgpFQ0hPX0M9IEVDSE9fTj0gRUNI
T19UPQpjYXNlIGBlY2hvIC1uIHhgIGluCi1uKikKICBjYXNlIGBlY2hvICd4XGMnYCBpbgogICpj
KikgRUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgogICopICAg
RUNIT19DPSdcYyc7OwogIGVzYWM7OwoqKQogIEVDSE9fTj0nLW4nOzsKZXNhYwoKaWYgZXhwciBh
IDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4q
XCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KICBhc19leHByPWV4cHIKZWxzZQogIGFzX2V4cHI9ZmFs
c2UKZmkKCnJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCmlmIHRlc3QgLWQgY29u
ZiQkLmRpcjsgdGhlbgogIHJtIC1mIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUKZWxzZQogIHJtIC1m
IGNvbmYkJC5kaXIKICBta2RpciBjb25mJCQuZGlyCmZpCmVjaG8gPmNvbmYkJC5maWxlCmlmIGxu
IC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgogIGFzX2xuX3M9J2xuIC1z
JwogICMgLi4uIGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6CiAgIyAxKSBPbiBNU1lTLCBib3Ro
IGBsbiAtcyBmaWxlIGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4KICAjIDIpIERKR1BQIDwg
Mi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJs
ZS4KICAjIEluIGJvdGggY2FzZXMsIHdlIGhhdmUgdG8gZGVmYXVsdCB0byBgY3AgLXAnLgogIGxu
IC1zIGNvbmYkJC5maWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYk
JC5leGUgfHwKICAgIGFzX2xuX3M9J2NwIC1wJwplbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAy
Pi9kZXYvbnVsbDsgdGhlbgogIGFzX2xuX3M9bG4KZWxzZQogIGFzX2xuX3M9J2NwIC1wJwpmaQpy
bSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxl
CnJtZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKCmlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7
IHRoZW4KICBhc19ta2Rpcl9wPToKZWxzZQogIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCiAg
YXNfbWtkaXJfcD1mYWxzZQpmaQoKaWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgog
IGFzX3Rlc3RfeD0ndGVzdCAteCcKZWxzZQogIGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsg
dGhlbgogICAgYXNfbHNfTF9vcHRpb249TAogIGVsc2UKICAgIGFzX2xzX0xfb3B0aW9uPQogIGZp
CiAgYXNfdGVzdF94PScKICAgIGV2YWwgc2ggLWMgJ1wnJwogICAgICBpZiB0ZXN0IC1kICIkMSI7
IHRoZW4KICAgICAgICB0ZXN0IC1kICIkMS8uIjsKICAgICAgZWxzZQoJY2FzZSAkMSBpbgogICAg
ICAgIC0qKXNldCAiLi8kMSI7OwoJZXNhYzsKCWNhc2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24n
ICIkMSIgMj4vZGV2L251bGxgIGluCgk/Pz9bc3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCiAgICAn
XCcnIHNoCiAgJwpmaQphc19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAoKIyBTZWQgZXhwcmVzc2lv
biB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgphc190cl9jcHA9ImV2YWwg
c2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVt
XSVfJWcnIgoKIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZh
cmlhYmxlIG5hbWUuCmFzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxu
dW1dJV8lZyciCgoKZXhlYyA2PiYxCgojIFNhdmUgdGhlIGxvZyBtZXNzYWdlLCB0byBrZWVwICRb
MF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwojIHJlcG9ydCBhY3R1YWwgaW5wdXQgdmFs
dWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKIyB2YWx1ZXMgYWZ0ZXIg
b3B0aW9ucyBoYW5kbGluZy4KYWNfbG9nPSIKVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSAkYXNf
bWUsIHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjEuICBJbnZvY2F0aW9u
IGNvbW1hbmQgbGluZSB3YXMKCiAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwogIENP
TkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwogIENPTkZJR19MSU5LUyAgICA9ICRDT05G
SUdfTElOS1MKICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklHX0NPTU1BTkRTCiAgJCAkMCAkQAoK
b24gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCiIKCl9BQ0VP
RgoKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKIyBGaWxlcyB0aGF0IGNvbmZpZy5zdGF0
dXMgd2FzIG1hZGUgZm9yLgpjb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMiCmNvbmZpZ19o
ZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMiCmNvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19j
b21tYW5kcyIKCl9BQ0VPRgoKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCmFjX2NzX3Vz
YWdlPSJcClxgJGFzX21lJyBpbnN0YW50aWF0ZXMgZmlsZXMgZnJvbSB0ZW1wbGF0ZXMgYWNjb3Jk
aW5nIHRvIHRoZQpjdXJyZW50IGNvbmZpZ3VyYXRpb24uCgpVc2FnZTogJDAgW09QVElPTlNdIFtG
SUxFXS4uLgoKICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CiAg
LVYsIC0tdmVyc2lvbiAgICBwcmludCB2ZXJzaW9uIG51bWJlciBhbmQgY29uZmlndXJhdGlvbiBz
ZXR0aW5ncywgdGhlbiBleGl0CiAgLXEsIC0tcXVpZXQgICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jl
c3MgbWVzc2FnZXMKICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmls
ZXMKICAgICAgLS1yZWNoZWNrICAgIHVwZGF0ZSAkYXNfbWUgYnkgcmVjb25maWd1cmluZyBpbiB0
aGUgc2FtZSBjb25kaXRpb25zCiAgLS1maWxlPUZJTEVbOlRFTVBMQVRFXQoJCSAgIGluc3RhbnRp
YXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQogIC0taGVhZGVyPUZJTEVbOlRFTVBMQVRF
XQoJCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCgpDb25maWd1
cmF0aW9uIGZpbGVzOgokY29uZmlnX2ZpbGVzCgpDb25maWd1cmF0aW9uIGhlYWRlcnM6CiRjb25m
aWdfaGVhZGVycwoKQ29uZmlndXJhdGlvbiBjb21tYW5kczoKJGNvbmZpZ19jb21tYW5kcwoKUmVw
b3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvY29uZkBnbnUub3JnPi4iCgpfQUNFT0YKY2F0ID4+JENPTkZJ
R19TVEFUVVMgPDxfQUNFT0YKYWNfY3NfdmVyc2lvbj0iXFwKY29uZmlnLnN0YXR1cwpjb25maWd1
cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjEsCiAgd2l0aCBvcHRpb25z
IFxcImBlY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwgc2VkICdzL14gLy87IHMvW1xcIiJcYFwk
XS9cXFxcJi9nJ2BcXCIKCkNvcHlyaWdodCAoQykgMjAwNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4KVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCmdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv
cHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCgphY19wd2Q9JyRhY19wd2QnCnNyY2Rpcj0n
JHNyY2RpcicKSU5TVEFMTD0nJElOU1RBTEwnCl9BQ0VPRgoKY2F0ID4+JENPTkZJR19TVEFUVVMg
PDxcX0FDRU9GCiMgSWYgbm8gZmlsZSBhcmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB0aGVuIHdl
IG5lZWQgdG8gcHJvdmlkZSBkZWZhdWx0CiMgdmFsdWUuICBCeSB3ZSBuZWVkIHRvIGtub3cgaWYg
ZmlsZXMgd2VyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuCmFjX25lZWRfZGVmYXVsdHM9Ogp3aGls
ZSB0ZXN0ICQjICE9IDAKZG8KICBjYXNlICQxIGluCiAgLS0qPSopCiAgICBhY19vcHRpb249YGV4
cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAogICAgYWNfb3B0YXJnPWBleHByICJYJDEiIDogJ1hb
Xj1dKj1cKC4qXCknYAogICAgYWNfc2hpZnQ9OgogICAgOzsKICAqKQogICAgYWNfb3B0aW9uPSQx
CiAgICBhY19vcHRhcmc9JDIKICAgIGFjX3NoaWZ0PXNoaWZ0CiAgICA7OwogIGVzYWMKCiAgY2Fz
ZSAkYWNfb3B0aW9uIGluCiAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KICAtcmVjaGVjayB8
IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8IC0tcmVjIHwgLS1yZSB8
IC0tcikKICAgIGFjX2NzX3JlY2hlY2s9OiA7OwogIC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12
ZXJzaSB8IC0tdmVycyB8IC0tdmVyIHwgLS12ZSB8IC0tdiB8IC1WICkKICAgIGVjaG8gIiRhY19j
c192ZXJzaW9uIjsgZXhpdCA7OwogIC0tZGVidWcgfCAtLWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAt
LWQgfCAtZCApCiAgICBkZWJ1Zz06IDs7CiAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwgLS1mICkK
ICAgICRhY19zaGlmdAogICAgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTICRhY19vcHRhcmci
CiAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhl
YWQgfCAtLWhlYSApCiAgICAkYWNfc2hpZnQKICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hF
QURFUlMgJGFjX29wdGFyZyIKICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwogIC0taGUgfCAt
LWgpCiAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgogICAgeyBlY2hv
ICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQpUcnkgXGAkMCAtLWhlbHAnIGZv
ciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CiAg
LS1oZWxwIHwgLS1oZWwgfCAtaCApCiAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDs7CiAg
LXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKICB8
IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAt
LXMpCiAgICBhY19jc19zaWxlbnQ9OiA7OwoKICAjIFRoaXMgaXMgYW4gZXJyb3IuCiAgLSopIHsg
ZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKVHJ5IFxgJDAgLS1o
ZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgogICB7IChleGl0IDEpOyBleGl0IDE7IH07
IH0gOzsKCiAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIKICAg
ICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlIDs7CgogIGVzYWMKICBzaGlmdApkb25lCgphY19jb25m
aWd1cmVfZXh0cmFfYXJncz0KCmlmICRhY19jc19zaWxlbnQ7IHRoZW4KICBleGVjIDY+L2Rldi9u
dWxsCiAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAt
LXNpbGVudCIKZmkKCl9BQ0VPRgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgppZiBcJGFj
X2NzX3JlY2hlY2s7IHRoZW4KICBlY2hvICJydW5uaW5nIENPTkZJR19TSEVMTD0kU0hFTEwgJFNI
RUxMICQwICIkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAiIC0t
bm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uIiA+JjYKICBDT05GSUdfU0hFTEw9JFNIRUxMCiAgZXhw
b3J0IENPTkZJR19TSEVMTAogIGV4ZWMgJFNIRUxMICIkMCIkYWNfY29uZmlndXJlX2FyZ3MgXCRh
Y19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgpmaQoKX0FD
RU9GCmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgpleGVjIDU+PmNvbmZpZy5sb2cKewog
IGVjaG8KICBzZWQgJ2g7cy8uLy0vZztzL14uLi4vIyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8
PF9BU0JPWAojIyBSdW5uaW5nICRhc19tZS4gIyMKX0FTQk9YCiAgZWNobyAiJGFjX2xvZyIKfSA+
JjUKCl9BQ0VPRgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgpfQUNFT0YKCmNhdCA+PiRD
T05GSUdfU1RBVFVTIDw8XF9BQ0VPRgoKIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCmZvciBhY19j
b25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwpkbwogIGNhc2UgJGFjX2NvbmZpZ190
YXJnZXQgaW4KICAgICJpbmNsdWRlL2FsbGVncm8vcGxhdGZvcm0vYWx1bml4YWMuaCIpIENPTkZJ
R19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgaW5jbHVkZS9hbGxlZ3JvL3BsYXRmb3JtL2FsdW5p
eGFjLmg6aW5jbHVkZS9hbGxlZ3JvL3BsYXRmb3JtL2FsdW5peGFjLmhpbiIgOzsKICAgICJtYWtl
ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtYWtlZmlsZTptYWtlZmlsZS5pbiIg
OzsKICAgICJhbGxlZ3JvLWNvbmZpZyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBhbGxl
Z3JvLWNvbmZpZzptaXNjL2FsbGVncm8tY29uZmlnLmluIiA7OwogICAgImRlZmF1bHQiKSBDT05G
SUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVmYXVsdCIgOzsKCiAgKikgeyB7IGVjaG8g
IiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJn
ZXQiID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmln
X3RhcmdldCIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKICBlc2FjCmRvbmUK
CgojIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3BlY2lmeSB0aGUg
aXRlbXMgdG8gaW5zdGFudGlhdGUsCiMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2Vk
LiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgojIFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZv
ciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5CiMgYml6YXJy
ZSBidWcgb24gU3VuT1MgNC4xLjMuCmlmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCiAgdGVzdCAi
JHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMK
ICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0IHx8IENPTkZJR19IRUFERVJTPSRj
b25maWdfaGVhZGVycwogIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0gc2V0IHx8IENP
TkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRzCmZpCgojIEhhdmUgYSB0ZW1wb3JhcnkgZGly
ZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxkIHRyZWUKIyBzaW1w
bHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5k
IGluIGFkZGl0aW9uLAojIGNyZWF0aW5nIGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAvdG1wIGNhbiBz
b21ldGltZXMgY2F1c2UgcHJvYmxlbXMuCiMgSG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRl
YnVnZ2luZy4KIyBOb3RlIHRoYXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhl
IGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVhbmVkOgojIGFmdGVyIGl0cyBjcmVhdGlvbiBidXQg
YmVmb3JlIGl0cyBuYW1lIGhhcyBiZWVuIGFzc2lnbmVkIHRvIGAkdG1wJy4KJGRlYnVnIHx8CnsK
ICB0bXA9CiAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KICB7IHRlc3QgLXogIiR0bXAiIHx8IHRlc3Qg
ISAtZCAiJHRtcCIgfHwgcm0gLWZyICIkdG1wIjsgfSAmJiBleGl0ICRleGl0X3N0YXR1cwonIDAK
ICB0cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAxMyAxNQp9CiMgQ3JlYXRlIGEgKHNl
Y3VyZSkgdG1wIGRpcmVjdG9yeSBmb3IgdG1wIGZpbGVzLgoKewogIHRtcD1gKHVtYXNrIDA3NyAm
JiBta3RlbXAgLWQgIi4vY29uZlhYWFhYWCIpIDI+L2Rldi9udWxsYCAmJgogIHRlc3QgLW4gIiR0
bXAiICYmIHRlc3QgLWQgIiR0bXAiCn0gIHx8CnsKICB0bXA9Li9jb25mJCQtJFJBTkRPTQogICh1
bWFzayAwNzcgJiYgbWtkaXIgIiR0bXAiKQp9IHx8CnsKICAgZWNobyAiJG1lOiBjYW5ub3QgY3Jl
YXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiA+JjIKICAgeyAoZXhpdCAxKTsgZXhpdCAx
OyB9Cn0KCiMKIyBTZXQgdXAgdGhlIHNlZCBzY3JpcHRzIGZvciBDT05GSUdfRklMRVMgc2VjdGlv
bi4KIwoKIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZSBzY3JpcHRzIGlmIHRoZXJlIGFyZSBubyBD
T05GSUdfRklMRVMuCiMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIC4vY29uZmlnLnN0
YXR1cyBjb25maWcuaAppZiB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIjsgdGhlbgoKX0FDRU9GCgoK
CmFjX2RlbGltPSclIV8hIyAnCmZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSBmYWxzZSBm
YWxzZSBmYWxzZSA6OyBkbwogIGNhdCA+Y29uZiQkc3Vicy5zZWQgPDxfQUNFT0YKU0hFTEwhJFNI
RUxMJGFjX2RlbGltClBBVEhfU0VQQVJBVE9SISRQQVRIX1NFUEFSQVRPUiRhY19kZWxpbQpQQUNL
QUdFX05BTUUhJFBBQ0tBR0VfTkFNRSRhY19kZWxpbQpQQUNLQUdFX1RBUk5BTUUhJFBBQ0tBR0Vf
VEFSTkFNRSRhY19kZWxpbQpQQUNLQUdFX1ZFUlNJT04hJFBBQ0tBR0VfVkVSU0lPTiRhY19kZWxp
bQpQQUNLQUdFX1NUUklORyEkUEFDS0FHRV9TVFJJTkckYWNfZGVsaW0KUEFDS0FHRV9CVUdSRVBP
UlQhJFBBQ0tBR0VfQlVHUkVQT1JUJGFjX2RlbGltCmV4ZWNfcHJlZml4ISRleGVjX3ByZWZpeCRh
Y19kZWxpbQpwcmVmaXghJHByZWZpeCRhY19kZWxpbQpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lISRw
cm9ncmFtX3RyYW5zZm9ybV9uYW1lJGFjX2RlbGltCmJpbmRpciEkYmluZGlyJGFjX2RlbGltCnNi
aW5kaXIhJHNiaW5kaXIkYWNfZGVsaW0KbGliZXhlY2RpciEkbGliZXhlY2RpciRhY19kZWxpbQpk
YXRhcm9vdGRpciEkZGF0YXJvb3RkaXIkYWNfZGVsaW0KZGF0YWRpciEkZGF0YWRpciRhY19kZWxp
bQpzeXNjb25mZGlyISRzeXNjb25mZGlyJGFjX2RlbGltCnNoYXJlZHN0YXRlZGlyISRzaGFyZWRz
dGF0ZWRpciRhY19kZWxpbQpsb2NhbHN0YXRlZGlyISRsb2NhbHN0YXRlZGlyJGFjX2RlbGltCmlu
Y2x1ZGVkaXIhJGluY2x1ZGVkaXIkYWNfZGVsaW0Kb2xkaW5jbHVkZWRpciEkb2xkaW5jbHVkZWRp
ciRhY19kZWxpbQpkb2NkaXIhJGRvY2RpciRhY19kZWxpbQppbmZvZGlyISRpbmZvZGlyJGFjX2Rl
bGltCmh0bWxkaXIhJGh0bWxkaXIkYWNfZGVsaW0KZHZpZGlyISRkdmlkaXIkYWNfZGVsaW0KcGRm
ZGlyISRwZGZkaXIkYWNfZGVsaW0KcHNkaXIhJHBzZGlyJGFjX2RlbGltCmxpYmRpciEkbGliZGly
JGFjX2RlbGltCmxvY2FsZWRpciEkbG9jYWxlZGlyJGFjX2RlbGltCm1hbmRpciEkbWFuZGlyJGFj
X2RlbGltCkRFRlMhJERFRlMkYWNfZGVsaW0KRUNIT19DISRFQ0hPX0MkYWNfZGVsaW0KRUNIT19O
ISRFQ0hPX04kYWNfZGVsaW0KRUNIT19UISRFQ0hPX1QkYWNfZGVsaW0KTElCUyEkTElCUyRhY19k
ZWxpbQpidWlsZF9hbGlhcyEkYnVpbGRfYWxpYXMkYWNfZGVsaW0KaG9zdF9hbGlhcyEkaG9zdF9h
bGlhcyRhY19kZWxpbQp0YXJnZXRfYWxpYXMhJHRhcmdldF9hbGlhcyRhY19kZWxpbQpDQyEkQ0Mk
YWNfZGVsaW0KQ0ZMQUdTISRDRkxBR1MkYWNfZGVsaW0KTERGTEFHUyEkTERGTEFHUyRhY19kZWxp
bQpDUFBGTEFHUyEkQ1BQRkxBR1MkYWNfZGVsaW0KYWNfY3RfQ0MhJGFjX2N0X0NDJGFjX2RlbGlt
CkVYRUVYVCEkRVhFRVhUJGFjX2RlbGltCk9CSkVYVCEkT0JKRVhUJGFjX2RlbGltCkNQUCEkQ1BQ
JGFjX2RlbGltCklOU1RBTExfUFJPR1JBTSEkSU5TVEFMTF9QUk9HUkFNJGFjX2RlbGltCklOU1RB
TExfU0NSSVBUISRJTlNUQUxMX1NDUklQVCRhY19kZWxpbQpJTlNUQUxMX0RBVEEhJElOU1RBTExf
REFUQSRhY19kZWxpbQpTRVRfTUFLRSEkU0VUX01BS0UkYWNfZGVsaW0KTE5fUyEkTE5fUyRhY19k
ZWxpbQpMRENPTkZJRyEkTERDT05GSUckYWNfZGVsaW0KTUFLRUlORk8hJE1BS0VJTkZPJGFjX2Rl
bGltCklOU1RBTExfSU5GTyEkSU5TVEFMTF9JTkZPJGFjX2RlbGltCkFMTEVHUk9fTUFZQkVfQVNN
X0ZJTEVTISRBTExFR1JPX01BWUJFX0FTTV9GSUxFUyRhY19kZWxpbQpHUkVQISRHUkVQJGFjX2Rl
bGltCkVHUkVQISRFR1JFUCRhY19kZWxpbQpJTkNMVURFX1BSRUZJWCEkSU5DTFVERV9QUkVGSVgk
YWNfZGVsaW0KTElCQUxMRUchJExJQkFMTEVHJGFjX2RlbGltCkxJTktfTElCQUxMRUchJExJTktf
TElCQUxMRUckYWNfZGVsaW0KUExVR0lOX0xJQiEkUExVR0lOX0xJQiRhY19kZWxpbQpDT01QSUxF
X1BST0dSQU0hJENPTVBJTEVfUFJPR1JBTSRhY19kZWxpbQpDT01QSUxFX0NYWF9QUk9HUkFNISRD
T01QSUxFX0NYWF9QUk9HUkFNJGFjX2RlbGltCkNPTVBJTEVfU19QUk9HUkFNISRDT01QSUxFX1Nf
UFJPR1JBTSRhY19kZWxpbQpQUk9HX0xERkxBR1MhJFBST0dfTERGTEFHUyRhY19kZWxpbQpMSUJf
VE9fTElOSyEkTElCX1RPX0xJTkskYWNfZGVsaW0KTElOS19XSVRIX1NUQVRJQ19MSUJTISRMSU5L
X1dJVEhfU1RBVElDX0xJQlMkYWNfZGVsaW0KQUxMRUdST19MSUJfVEFSR0VUUyEkQUxMRUdST19M
SUJfVEFSR0VUUyRhY19kZWxpbQpFU0RfQ09ORklHISRFU0RfQ09ORklHJGFjX2RlbGltCkFSVFND
X0NPTkZJRyEkQVJUU0NfQ09ORklHJGFjX2RlbGltClBLR19DT05GSUchJFBLR19DT05GSUckYWNf
ZGVsaW0KWE1LTUYhJFhNS01GJGFjX2RlbGltCkFMTEVHUk9fTUFZQkVfWFdJTkRPV1NfRklMRVMh
JEFMTEVHUk9fTUFZQkVfWFdJTkRPV1NfRklMRVMkYWNfZGVsaW0KQUxMRUdST19NQVlCRV9MSUJf
WF9FWEVfU09VUkNFUyEkQUxMRUdST19NQVlCRV9MSUJfWF9FWEVfU09VUkNFUyRhY19kZWxpbQpB
TExFR1JPX01BWUJFX0xJQl9YX0VYRVMhJEFMTEVHUk9fTUFZQkVfTElCX1hfRVhFUyRhY19kZWxp
bQpBTExFR1JPX1hXSU5ET1dTX0xJQkRJUiEkQUxMRUdST19YV0lORE9XU19MSUJESVIkYWNfZGVs
aW0KQUxMRUdST19NQVlCRV9MSU5VWF9GSUxFUyEkQUxMRUdST19NQVlCRV9MSU5VWF9GSUxFUyRh
Y19kZWxpbQpBTExFR1JPX01PRFVMRV9UQVJHRVRTISRBTExFR1JPX01PRFVMRV9UQVJHRVRTJGFj
X2RlbGltCkFSISRBUiRhY19kZWxpbQpBTExFR1JPX0RFQlVHX0NGTEFHUyEkQUxMRUdST19ERUJV
R19DRkxBR1MkYWNfZGVsaW0KQUxMRUdST19QUk9GSUxFX0NGTEFHUyEkQUxMRUdST19QUk9GSUxF
X0NGTEFHUyRhY19kZWxpbQpBTExFR1JPX1NGTEFHUyEkQUxMRUdST19TRkxBR1MkYWNfZGVsaW0K
QUxMRUdST19TSEFSRURMSUJfQ0ZMQUdTISRBTExFR1JPX1NIQVJFRExJQl9DRkxBR1MkYWNfZGVs
aW0KQ1hYISRDWFgkYWNfZGVsaW0KQ1hYRkxBR1MhJENYWEZMQUdTJGFjX2RlbGltCkFMTEVHUk9f
REVCVUdfQ1hYRkxBR1MhJEFMTEVHUk9fREVCVUdfQ1hYRkxBR1MkYWNfZGVsaW0KQUxMRUdST19Q
Uk9GSUxFX0NYWEZMQUdTISRBTExFR1JPX1BST0ZJTEVfQ1hYRkxBR1MkYWNfZGVsaW0KRlJBTUVX
T1JLUyEkRlJBTUVXT1JLUyRhY19kZWxpbQpMSUJPQkpTISRMSUJPQkpTJGFjX2RlbGltCkxUTElC
T0JKUyEkTFRMSUJPQkpTJGFjX2RlbGltCl9BQ0VPRgoKICBpZiB0ZXN0IGBzZWQgLW4gInMvLiok
YWNfZGVsaW1cJC9YL3AiIGNvbmYkJHN1YnMuc2VkIHwgZ3JlcCAtYyBYYCA9IDg5OyB0aGVuCiAg
ICBicmVhawogIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCiAgICB7IHsgZWNobyAiJGFzX21lOiRM
SU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiY1CmVjaG8gIiRh
c19tZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjI7fQogICB7IChl
eGl0IDEpOyBleGl0IDE7IH07IH0KICBlbHNlCiAgICBhY19kZWxpbT0iJGFjX2RlbGltISRhY19k
ZWxpbSBfJGFjX2RlbGltISEgIgogIGZpCmRvbmUKCmFjX2VvZj1gc2VkIC1uICcvXkNFT0ZbMC05
XSokL3MvQ0VPRi8wL3AnIGNvbmYkJHN1YnMuc2VkYAppZiB0ZXN0IC1uICIkYWNfZW9mIjsgdGhl
bgogIGFjX2VvZj1gZWNobyAiJGFjX2VvZiIgfCBzb3J0IC1ucnUgfCBzZWQgMXFgCiAgYWNfZW9m
PWBleHByICRhY19lb2YgKyAxYApmaQoKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKY2F0
ID4iXCR0bXAvc3Vicy0xLnNlZCIgPDxcQ0VPRiRhY19lb2YKL0BbYS16QS1aX11bYS16QS1aXzAt
OV0qQC8hYiBlbmQKX0FDRU9GCnNlZCAnCnMvWyxcXCZdL1xcJi9nOyBzL0AvQHwjXyEhXyN8L2cK
cy9eL3MsQC87IHMvIS9ALHwjXyEhXyN8Lwo6bgp0IG4Kcy8nIiRhY19kZWxpbSInJC8sZy87IHQK
cy8kL1xcLzsgcApOOyBzL14uKlxuLy87IHMvWyxcXCZdL1xcJi9nOyBzL0AvQHwjXyEhXyN8L2c7
IGIgbgonID4+JENPTkZJR19TVEFUVVMgPGNvbmYkJHN1YnMuc2VkCnJtIC1mIGNvbmYkJHN1YnMu
c2VkCmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCjplbmQKcy98I18hIV8jfC8vZwpDRU9G
JGFjX2VvZgpfQUNFT0YKCgojIFZQQVRIIG1heSBjYXVzZSB0cm91YmxlIHdpdGggc29tZSBtYWtl
cywgc28gd2UgcmVtb3ZlICQoc3JjZGlyKSwKIyAke3NyY2Rpcn0gYW5kIEBzcmNkaXJAIGZyb20g
VlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKIyB0cmFpbGluZyBjb2xv
bnMgYW5kIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBsaW5lIGlmIFZQQVRIIGJlY29tZXMgZW1wdHkK
IyAoYWN0dWFsbHkgd2UgbGVhdmUgYW4gZW1wdHkgbGluZSB0byBwcmVzZXJ2ZSBsaW5lIG51bWJl
cnMpLgppZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgogIGFjX3Zwc3ViPScvXlsJIF0qVlBB
VEhbCSBdKj0vewpzLzoqXCQoc3JjZGlyKToqLzovCnMvOipcJHtzcmNkaXJ9OiovOi8Kcy86KkBz
cmNkaXJAOiovOi8Kcy9eXChbXj1dKj1bCSBdKlwpOiovXDEvCnMvOiokLy8Kcy9eW149XSo9Wwkg
XSokLy8KfScKZmkKCmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgpmaSAjIHRlc3QgLW4g
IiRDT05GSUdfRklMRVMiCgoKZm9yIGFjX3RhZyBpbiAgOkYgJENPTkZJR19GSUxFUyAgOkggJENP
TkZJR19IRUFERVJTICAgIDpDICRDT05GSUdfQ09NTUFORFMKZG8KICBjYXNlICRhY190YWcgaW4K
ICA6W0ZITENdKSBhY19tb2RlPSRhY190YWc7IGNvbnRpbnVlOzsKICBlc2FjCiAgY2FzZSAkYWNf
bW9kZSRhY190YWcgaW4KICA6W0ZITF0qOiopOzsKICA6TCogfCA6Qyo6KikgeyB7IGVjaG8gIiRh
c19tZTokTElORU5POiBlcnJvcjogSW52YWxpZCB0YWcgJGFjX3RhZy4iID4mNQplY2hvICIkYXNf
bWU6IGVycm9yOiBJbnZhbGlkIHRhZyAkYWNfdGFnLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhp
dCAxOyB9OyB9OzsKICA6W0ZIXS0pIGFjX3RhZz0tOi07OwogIDpbRkhdKikgYWNfdGFnPSRhY190
YWc6JGFjX3RhZy5pbjs7CiAgZXNhYwogIGFjX3NhdmVfSUZTPSRJRlMKICBJRlM9OgogIHNldCB4
ICRhY190YWcKICBJRlM9JGFjX3NhdmVfSUZTCiAgc2hpZnQKICBhY19maWxlPSQxCiAgc2hpZnQK
CiAgY2FzZSAkYWNfbW9kZSBpbgogIDpMKSBhY19zb3VyY2U9JDE7OwogIDpbRkhdKQogICAgYWNf
ZmlsZV9pbnB1dHM9CiAgICBmb3IgYWNfZgogICAgZG8KICAgICAgY2FzZSAkYWNfZiBpbgogICAg
ICAtKSBhY19mPSIkdG1wL3N0ZGluIjs7CiAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmly
c3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCgkgIyAoaWYgdGhl
IHBhdGggaXMgbm90IGFic29sdXRlKS4gIFRoZSBhYnNvbHV0ZSBwYXRoIGNhbm5vdCBiZSBET1Mt
c3R5bGUsCgkgIyBiZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KCSB0ZXN0IC1mICIk
YWNfZiIgfHwKCSAgIGNhc2UgJGFjX2YgaW4KCSAgIFtcXC8kXSopIGZhbHNlOzsKCSAgICopIHRl
c3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKCSAgIGVzYWMg
fHwKCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0
IGZpbGU6ICRhY19mIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQg
ZmlsZTogJGFjX2YiID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CiAgICAgIGVz
YWMKICAgICAgYWNfZmlsZV9pbnB1dHM9IiRhY19maWxlX2lucHV0cyAkYWNfZiIKICAgIGRvbmUK
CiAgICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFu
dGlhdGVzIChpLmUuLCBkb24ndAogICAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1
cnByaXNlZCB0byByZWFkOgogICAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25m
aWcuc3RhdHVzLiAgKi8KICAgIGNvbmZpZ3VyZV9pbnB1dD0iR2VuZXJhdGVkIGZyb20gImBJRlM9
OgoJICBlY2hvICQqIHwgc2VkICdzfF5bXjpdKi98fDtzfDpbXjpdKi98LCB8ZydgIiBieSBjb25m
aWd1cmUuIgogICAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgogICAgICBjb25maWd1
cmVfaW5wdXQ9IiRhY19maWxlLiAgJGNvbmZpZ3VyZV9pbnB1dCIKICAgICAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQplY2hvICIkYXNfbWU6IGNyZWF0aW5n
ICRhY19maWxlIiA+JjY7fQogICAgZmkKCiAgICBjYXNlICRhY190YWcgaW4KICAgICo6LToqIHwg
KjotKSBjYXQgPiIkdG1wL3N0ZGluIjs7CiAgICBlc2FjCiAgICA7OwogIGVzYWMKCiAgYWNfZGly
PWAkYXNfZGlybmFtZSAtLSAiJGFjX2ZpbGUiIHx8CiRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hc
KC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCgkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVte
L10nIFx8IFwKCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAoJIFgiJGFjX2ZpbGUiIDog
J1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAplY2hvIFgiJGFjX2ZpbGUiIHwKICAgIHNlZCAn
L15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9
CgkgIC9eWFwoXC9cL1wpW14vXS4qL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChc
L1wvXCkkL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wpLiovewoJICAgIHMv
L1wxLwoJICAgIHEKCSAgfQoJICBzLy4qLy4vOyBxJ2AKICB7IGFzX2Rpcj0iJGFjX2RpciIKICBj
YXNlICRhc19kaXIgaW4gIygKICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7CiAgZXNhYwogIHRlc3Qg
LWQgIiRhc19kaXIiIHx8IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9IHx8
IHsKICAgIGFzX2RpcnM9CiAgICB3aGlsZSA6OyBkbwogICAgICBjYXNlICRhc19kaXIgaW4gIygK
ICAgICAgKlwnKikgYXNfcWRpcj1gZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwn
Jy9nImA7OyAjKAogICAgICAqKSBhc19xZGlyPSRhc19kaXI7OwogICAgICBlc2FjCiAgICAgIGFz
X2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCiAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0g
IiRhc19kaXIiIHx8CiRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14v
XSovKiQnIFx8IFwKCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCgkgWCIkYXNfZGly
IiA6ICdYXCgvL1wpJCcgXHwgXAoJIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9u
dWxsIHx8CmVjaG8gWCIkYXNfZGlyIiB8CiAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11b
Xi9dKlwvKiQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXC9cKVteL10uKi97
CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cL1wpJC97CgkgICAgcy8vXDEvCgkg
ICAgcQoJICB9CgkgIC9eWFwoXC9cKS4qL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgcy8u
Ki8uLzsgcSdgCiAgICAgIHRlc3QgLWQgIiRhc19kaXIiICYmIGJyZWFrCiAgICBkb25lCiAgICB0
ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCiAgfSB8fCB0ZXN0IC1k
ICIkYXNfZGlyIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3Jl
YXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNy
ZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9
OyB9CiAgYWNfYnVpbGRkaXI9LgoKY2FzZSAiJGFjX2RpciIgaW4KLikgYWNfZGlyX3N1ZmZpeD0g
YWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CiopCiAgYWNfZGly
X3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAogICMgQSAiLi4i
IGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KICBhY190b3BfYnVpbGRkaXJf
c3ViPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLy4uLGc7cywvLCwn
YAogIGNhc2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1
Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CiAgKikgIGFjX3RvcF9idWlsZF9wcmVmaXg9JGFj
X3RvcF9idWlsZGRpcl9zdWIvIDs7CiAgZXNhYyA7Owplc2FjCmFjX2Fic190b3BfYnVpbGRkaXI9
JGFjX3B3ZAphY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4CiMgZm9yIGJhY2t3
YXJkIGNvbXBhdGliaWxpdHk6CmFjX3RvcF9idWlsZGRpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeAoK
Y2FzZSAkc3JjZGlyIGluCiAgLikgICMgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgogICAgYWNf
c3JjZGlyPS4KICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKICAgIGFjX2Fi
c190b3Bfc3JjZGlyPSRhY19wd2QgOzsKICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRl
IG5hbWUuCiAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwogICAgYWNfdG9wX3Ny
Y2Rpcj0kc3JjZGlyCiAgICBhY19hYnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CiAgKikgIyBSZWxh
dGl2ZSBuYW1lLgogICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpciRhY19k
aXJfc3VmZml4CiAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2Rpcgog
ICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7CmVzYWMKYWNfYWJzX3NyY2Rp
cj0kYWNfYWJzX3RvcF9zcmNkaXIkYWNfZGlyX3N1ZmZpeAoKCiAgY2FzZSAkYWNfbW9kZSBpbgog
IDpGKQogICMKICAjIENPTkZJR19GSUxFCiAgIwoKICBjYXNlICRJTlNUQUxMIGluCiAgW1xcLyRd
KiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwogICopIGFjX0lOU1RBTEw9JGFj
X3RvcF9idWlsZF9wcmVmaXgkSU5TVEFMTCA7OwogIGVzYWMKX0FDRU9GCgpjYXQgPj4kQ09ORklH
X1NUQVRVUyA8PFxfQUNFT0YKIyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qga25vdyBhYm91dCBk
YXRhcm9vdGRpciwgZXhwYW5kIGl0LgojIEZJWE1FOiBUaGlzIGhhY2sgc2hvdWxkIGJlIHJlbW92
ZWQgYSBmZXcgeWVhcnMgYWZ0ZXIgMi42MC4KYWNfZGF0YXJvb3RkaXJfaGFjaz07IGFjX2RhdGFy
b290ZGlyX3NlZW49CgpjYXNlIGBzZWQgLW4gJy9kYXRhcm9vdGRpci8gewogIHAKICBxCn0KL0Bk
YXRhZGlyQC9wCi9AZG9jZGlyQC9wCi9AaW5mb2RpckAvcAovQGxvY2FsZWRpckAvcAovQG1hbmRp
ckAvcAonICRhY19maWxlX2lucHV0c2AgaW4KKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJf
c2Vlbj15ZXM7OwoqQGRhdGFkaXJAKnwqQGRvY2RpckAqfCpAaW5mb2RpckAqfCpAbG9jYWxlZGly
QCp8KkBtYW5kaXJAKikKICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfZmls
ZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mNQpl
Y2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhl
IC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiYyO30KX0FDRU9GCmNhdCA+PiRDT05GSUdfU1RBVFVT
IDw8X0FDRU9GCiAgYWNfZGF0YXJvb3RkaXJfaGFjaz0nCiAgcyZAZGF0YWRpckAmJGRhdGFkaXIm
ZwogIHMmQGRvY2RpckAmJGRvY2RpciZnCiAgcyZAaW5mb2RpckAmJGluZm9kaXImZwogIHMmQGxv
Y2FsZWRpckAmJGxvY2FsZWRpciZnCiAgcyZAbWFuZGlyQCYkbWFuZGlyJmcKICAgIHMmXFxcJHtk
YXRhcm9vdGRpcn0mJGRhdGFyb290ZGlyJmcnIDs7CmVzYWMKX0FDRU9GCgojIE5ldXRyYWxpemUg
VlBBVEggd2hlbiBgJHNyY2RpcicgPSBgLicuCiMgU2hlbGwgY29kZSBpbiBjb25maWd1cmUuYWMg
bWlnaHQgc2V0IGV4dHJhc3ViLgojIEZJWE1FOiBkbyB3ZSByZWFsbHkgd2FudCB0byBtYWludGFp
biB0aGlzIGZlYXR1cmU/CmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCiAgc2VkICIkYWNf
dnBzdWIKJGV4dHJhc3ViCl9BQ0VPRgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKOnQK
L0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYgpzJkBjb25maWd1cmVfaW5wdXRAJiRjb25maWd1
cmVfaW5wdXQmO3QgdApzJkB0b3BfYnVpbGRkaXJAJiRhY190b3BfYnVpbGRkaXJfc3ViJjt0IHQK
cyZAc3JjZGlyQCYkYWNfc3JjZGlyJjt0IHQKcyZAYWJzX3NyY2RpckAmJGFjX2Fic19zcmNkaXIm
O3QgdApzJkB0b3Bfc3JjZGlyQCYkYWNfdG9wX3NyY2RpciY7dCB0CnMmQGFic190b3Bfc3JjZGly
QCYkYWNfYWJzX3RvcF9zcmNkaXImO3QgdApzJkBidWlsZGRpckAmJGFjX2J1aWxkZGlyJjt0IHQK
cyZAYWJzX2J1aWxkZGlyQCYkYWNfYWJzX2J1aWxkZGlyJjt0IHQKcyZAYWJzX3RvcF9idWlsZGRp
ckAmJGFjX2Fic190b3BfYnVpbGRkaXImO3QgdApzJkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0
CiRhY19kYXRhcm9vdGRpcl9oYWNrCiIgJGFjX2ZpbGVfaW5wdXRzIHwgc2VkIC1mICIkdG1wL3N1
YnMtMS5zZWQiID4kdG1wL291dAoKdGVzdCAteiAiJGFjX2RhdGFyb290ZGlyX2hhY2skYWNfZGF0
YXJvb3RkaXJfc2VlbiIgJiYKICB7IGFjX291dD1gc2VkIC1uICcvXCR7ZGF0YXJvb3RkaXJ9L3An
ICIkdG1wL291dCJgOyB0ZXN0IC1uICIkYWNfb3V0IjsgfSAmJgogIHsgYWNfb3V0PWBzZWQgLW4g
Jy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnICIkdG1wL291dCJgOyB0ZXN0IC16ICIkYWNf
b3V0IjsgfSAmJgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19maWxlIGNv
bnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFyb290ZGlyJwp3aGljaCBz
ZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuIiA+
JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0
byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVk
LiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiYyO30KCiAgcm0gLWYgIiR0bXAv
c3RkaW4iCiAgY2FzZSAkYWNfZmlsZSBpbgogIC0pIGNhdCAiJHRtcC9vdXQiOyBybSAtZiAiJHRt
cC9vdXQiOzsKICAqKSBybSAtZiAiJGFjX2ZpbGUiOyBtdiAiJHRtcC9vdXQiICRhY19maWxlOzsK
ICBlc2FjCiA7OwogIDpIKQogICMKICAjIENPTkZJR19IRUFERVIKICAjCl9BQ0VPRgoKIyBUcmFu
c2Zvcm0gY29uZmRlZnMuaCBpbnRvIGEgc2VkIHNjcmlwdCBgY29uZnRlc3QuZGVmaW5lcycsIHRo
YXQKIyBzdWJzdGl0dXRlcyB0aGUgcHJvcGVyIHZhbHVlcyBpbnRvIGNvbmZpZy5oLmluIHRvIHBy
b2R1Y2UgY29uZmlnLmguCnJtIC1mIGNvbmZ0ZXN0LmRlZmluZXMgY29uZnRlc3QudGFpbAojIEZp
cnN0LCBhcHBlbmQgYSBzcGFjZSB0byBldmVyeSB1bmRlZi9kZWZpbmUgbGluZSwgdG8gZWFzZSBt
YXRjaGluZy4KZWNobyAncy8kLyAvJyA+Y29uZnRlc3QuZGVmaW5lcwojIFRoZW4sIHByb3RlY3Qg
YWdhaW5zdCBiZWluZyBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIHNlZCBzdWJzdCwgb3IgaW4KIyBh
biB1bnF1b3RlZCBoZXJlIGRvY3VtZW50LCBpbiBjb25maWcuc3RhdHVzLiAgSWYgc29tZSBtYWNy
b3Mgd2VyZQojIGNhbGxlZCBzZXZlcmFsIHRpbWVzIHRoZXJlIG1pZ2h0IGJlIHNldmVyYWwgI2Rl
ZmluZXMgZm9yIHRoZSBzYW1lCiMgc3ltYm9sLCB3aGljaCBpcyB1c2VsZXNzLiAgQnV0IGRvIG5v
dCBzb3J0IHRoZW0sIHNpbmNlIHRoZSBsYXN0CiMgQUNfREVGSU5FIG11c3QgYmUgaG9ub3JlZC4K
YWNfd29yZF9yZT1bXyRhc19jcl9MZXR0ZXJzXVtfJGFzX2NyX2FsbnVtXSoKIyBUaGVzZSBzZWQg
Y29tbWFuZHMgYXJlIHBhc3NlZCB0byBzZWQgYXMgIkEgTkFNRSBCIFBBUkFNUyBDIFZBTFVFIEQi
LCB3aGVyZQojIE5BTUUgaXMgdGhlIGNwcCBtYWNybyBiZWluZyBkZWZpbmVkLCBWQUxVRSBpcyB0
aGUgdmFsdWUgaXQgaXMgYmVpbmcgZ2l2ZW4uCiMgUEFSQU1TIGlzIHRoZSBwYXJhbWV0ZXIgbGlz
dCBpbiB0aGUgbWFjcm8gZGVmaW5pdGlvbi0taW4gbW9zdCBjYXNlcywgaXQncwojIGp1c3QgYW4g
ZW1wdHkgc3RyaW5nLgphY19kQT0ncyxeXFwoWwkgI10qXFwpW14JIF0qXFwoWwkgXSonCmFjX2RC
PSdcXClbCSAoXS4qLFxcMWRlZmluZVxcMicKYWNfZEM9JyAnCmFjX2REPScgLCcKCnVuaXEgY29u
ZmRlZnMuaCB8CiAgc2VkIC1uICcKCXQgcnNldAoJOnJzZXQKCXMvXlsJIF0qI1sJIF0qZGVmaW5l
WwkgXVsJIF0qLy8KCXQgb2sKCWQKCTpvawoJcy9bXFwmLF0vXFwmL2cKCXMvXlwoJyIkYWNfd29y
ZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS8gJyIkYWNfZEEiJ1wxJyIkYWNfZEIiJ1wy
JyIke2FjX2RDfSInXDMnIiRhY19kRCInL3AKCXMvXlwoJyIkYWNfd29yZF9yZSInXClbCSBdKlwo
LipcKS8nIiRhY19kQSInXDEnIiRhY19kQiRhY19kQyInXDInIiRhY19kRCInL3AKICAnID4+Y29u
ZnRlc3QuZGVmaW5lcwoKIyBSZW1vdmUgdGhlIHNwYWNlIHRoYXQgd2FzIGFwcGVuZGVkIHRvIGVh
c2UgbWF0Y2hpbmcuCiMgVGhlbiByZXBsYWNlICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAgVGhpcyBp
cyBuZWNlc3NhcnksIGZvcgojIGV4YW1wbGUsIGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0Us
IHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCiMgb24gc29tZSBzeXN0ZW1zIHdoZXJl
IGNvbmZpZ3VyZSB3aWxsIG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0LgojIChUaGUgcmVnZXhwIGNh
biBiZSBzaG9ydCwgc2luY2UgdGhlIGxpbmUgY29udGFpbnMgZWl0aGVyICNkZWZpbmUgb3IgI3Vu
ZGVmLikKZWNobyAncy8gJC8vCnMsXlsJICNdKnUuKiwvKiAmICovLCcgPj5jb25mdGVzdC5kZWZp
bmVzCgojIEJyZWFrIHVwIGNvbmZ0ZXN0LmRlZmluZXM6CmFjX21heF9zZWRfbGluZXM9NTAKCiMg
Rmlyc3Qgc2VkIGNvbW1hbmQgaXM6CSBzZWQgLWYgZGVmaW5lcy5zZWQgJGFjX2ZpbGVfaW5wdXRz
ID4iJHRtcC9vdXQxIgojIFNlY29uZCBvbmUgaXM6CSBzZWQgLWYgZGVmaW5lcy5zZWQgIiR0bXAv
b3V0MSIgPiIkdG1wL291dDIiCiMgVGhpcmQgb25lIHdpbGwgYmU6CSBzZWQgLWYgZGVmaW5lcy5z
ZWQgIiR0bXAvb3V0MiIgPiIkdG1wL291dDEiCiMgZXQgY2V0ZXJhLgphY19pbj0nJGFjX2ZpbGVf
aW5wdXRzJwphY19vdXQ9JyIkdG1wL291dDEiJwphY19ueHQ9JyIkdG1wL291dDIiJwoKd2hpbGUg
OgpkbwogICMgV3JpdGUgYSBoZXJlIGRvY3VtZW50OgogICAgY2F0ID4+JENPTkZJR19TVEFUVVMg
PDxfQUNFT0YKICAgICMgRmlyc3QsIGNoZWNrIHRoZSBmb3JtYXQgb2YgdGhlIGxpbmU6CiAgICBj
YXQgPiJcJHRtcC9kZWZpbmVzLnNlZCIgPDxcXENFT0YKL15bCSBdKiNbCSBdKnVuZGVmWwkgXVsJ
IF0qJGFjX3dvcmRfcmVbCSBdKlwkL2IgZGVmCi9eWwkgXSojWwkgXSpkZWZpbmVbCSBdWwkgXSok
YWNfd29yZF9yZVsoCSBdL2IgZGVmCmIKOmRlZgpfQUNFT0YKICBzZWQgJHthY19tYXhfc2VkX2xp
bmVzfXEgY29uZnRlc3QuZGVmaW5lcyA+PiRDT05GSUdfU1RBVFVTCiAgZWNobyAnQ0VPRgogICAg
c2VkIC1mICIkdG1wL2RlZmluZXMuc2VkIicgIiRhY19pbiA+JGFjX291dCIgPj4kQ09ORklHX1NU
QVRVUwogIGFjX2luPSRhY19vdXQ7IGFjX291dD0kYWNfbnh0OyBhY19ueHQ9JGFjX2luCiAgc2Vk
IDEsJHthY19tYXhfc2VkX2xpbmVzfWQgY29uZnRlc3QuZGVmaW5lcyA+Y29uZnRlc3QudGFpbAog
IGdyZXAgLiBjb25mdGVzdC50YWlsID4vZGV2L251bGwgfHwgYnJlYWsKICBybSAtZiBjb25mdGVz
dC5kZWZpbmVzCiAgbXYgY29uZnRlc3QudGFpbCBjb25mdGVzdC5kZWZpbmVzCmRvbmUKcm0gLWYg
Y29uZnRlc3QuZGVmaW5lcyBjb25mdGVzdC50YWlsCgplY2hvICJhY19yZXN1bHQ9JGFjX2luIiA+
PiRDT05GSUdfU1RBVFVTCmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgogIGlmIHRlc3Qg
eCIkYWNfZmlsZSIgIT0geC07IHRoZW4KICAgIGVjaG8gIi8qICRjb25maWd1cmVfaW5wdXQgICov
IiA+IiR0bXAvY29uZmlnLmgiCiAgICBjYXQgIiRhY19yZXN1bHQiID4+IiR0bXAvY29uZmlnLmgi
CiAgICBpZiBkaWZmICRhY19maWxlICIkdG1wL2NvbmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRo
ZW4KICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+
JjUKZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CiAgICBlbHNlCiAg
ICAgIHJtIC1mICRhY19maWxlCiAgICAgIG12ICIkdG1wL2NvbmZpZy5oIiAkYWNfZmlsZQogICAg
ZmkKICBlbHNlCiAgICBlY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIKICAgIGNhdCAiJGFj
X3Jlc3VsdCIKICBmaQogIHJtIC1mICIkdG1wL291dDEyIgogOzsKCiAgOkMpICB7IGVjaG8gIiRh
c19tZTokTElORU5POiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNQplY2hvICIkYXNf
bWU6IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY2O30KIDs7CiAgZXNhYwoKCiAgY2Fz
ZSAkYWNfZmlsZSRhY19tb2RlIGluCiAgICAiZGVmYXVsdCI6QykgdGVzdCAteiAiJENPTkZJR19I
RUFERVJTIiB8fCBlY2hvIHRpbWVzdGFtcCA+IHN0YW1wLWggOzsKCiAgZXNhYwpkb25lICMgZm9y
IGFjX3RhZwoKCnsgKGV4aXQgMCk7IGV4aXQgMDsgfQpfQUNFT0YKY2htb2QgK3ggJENPTkZJR19T
VEFUVVMKYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKCgojIGNvbmZpZ3VyZSBp
cyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCiMg
Y29uZmlnLnN0YXR1cyBkb2VzIGl0cyBvd24gcmVkaXJlY3Rpb24sIGFwcGVuZGluZyB0byBjb25m
aWcubG9nLgojIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9n
IGlzIHN0aWxsIGtlcHQgb3BlbgojIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24n
dCBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBpdHMKIyBvdXRwdXQgaXMgc2ltcGx5IGRpc2NhcmRl
ZC4gIFNvIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwKIyBlZmZlY3RpdmVseSBjbG9zaW5n
IGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAojIGFwcGVu
ZGVkIHRvIGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwg
d2UKIyBuZWVkIHRvIG1ha2UgdGhlIEZEIGF2YWlsYWJsZSBhZ2Fpbi4KaWYgdGVzdCAiJG5vX2Ny
ZWF0ZSIgIT0geWVzOyB0aGVuCiAgYWNfY3Nfc3VjY2Vzcz06CiAgYWNfY29uZmlnX3N0YXR1c19h
cmdzPQogIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCiAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9
IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKICBleGVjIDU+L2Rldi9udWxsCiAgJFNI
RUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vz
cz1mYWxzZQogIGV4ZWMgNT4+Y29uZmlnLmxvZwogICMgVXNlIHx8LCBub3QgJiYsIHRvIGF2b2lk
IGV4aXRpbmcgZnJvbSB0aGUgaWYgd2l0aCAkPyA9IDEsIHdoaWNoCiAgIyB3b3VsZCBtYWtlIGNv
bmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCiAgJGFjX2NzX3N1
Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CmZpCgoKaWYgJHtNQUtFLW1ha2V9IC12IC1m
IC9kZXYvbnVsbCAyPi9kZXYvbnVsbCB8IGdyZXAgLWkgImdudSIgPi9kZXYvbnVsbDsgdGhlbgog
IGdudV9tYWtlPSJ5ZXMiCmZpCgppZiB0ZXN0ICJYJGFsbGVncm9fbWFrZV9kZXBlbmQiID0gIlh5
ZXMiOyB0aGVuCiAgaWYgdGVzdCAiWCRnbnVfbWFrZSIgPSAiWHllcyI7IHRoZW4KICAgICR7TUFL
RS1tYWtlfSBkZXBlbmQKICBlbHNlCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiBOb24tR05VIG1ha2UgZGV0ZWN0ZWQsIHRyeWluZyBnbWFrZSB0byBidWlsZCBkZXBlbmRlbmNp
ZXMuIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiBOb24tR05VIG1ha2UgZGV0ZWN0ZWQsIHRy
eWluZyBnbWFrZSB0byBidWlsZCBkZXBlbmRlbmNpZXMuIiA+JjI7fQogICAgZ21ha2UgZGVwZW5k
CiAgZmkKZmkKCmlmIHRlc3QgIlgkZ251X21ha2UiID0gIlh5ZXMiOyB0aGVuCiAgJHtNQUtFLW1h
a2V9IGluZm8KZWxzZQogIGdtYWtlIGluZm8KZmkKCmlmIHRlc3QgIlgkZ251X21ha2UiICE9ICJY
eWVzIjsgdGhlbgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFlvdSBuZWVkIHRv
IHVzZSBHTlUgbWFrZSB0byBidWlsZCBBbGxlZ3JvLiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklO
RzogWW91IG5lZWQgdG8gdXNlIEdOVSBtYWtlIHRvIGJ1aWxkIEFsbGVncm8uIiA+JjI7fQogIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFRoaXMgbWlnaHQgYmUgY2FsbGVkIGdtYWtl
IG9uIHlvdXIgc3lzdGVtLiIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogVGhpcyBtaWdodCBi
ZSBjYWxsZWQgZ21ha2Ugb24geW91ciBzeXN0ZW0uIiA+JjI7fQpmaQoKIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIwojIHZpbTogc2V0IHN0cz0yIHN3PTIgZXQ6Cg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>153973</attachid>
            <date>2008-05-22 18:56 0000</date>
            <desc>aclocal.m4</desc>
            <filename>aclocal.m4</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBQbGFjZSBtNCBtYWNyb3MgaGVyZS4KCmRubApkbmwgVGVzdCBmb3IgcHJvY2Vzc29yIHR5cGUu
CmRubApkbmwgVmFyaWFibGVzOgpkbmwgIGFsbGVncm9fY3ZfcHJvY2Vzc29yX3R5cGU9KGkzODZ8
c3BhcmN8dW5rbm93bikKZG5sCkFDX0RFRlVOKEFMTEVHUk9fQUNURVNUX1BST0NFU1NPUl9UWVBF
LApbQUNfQkVGT1JFKFskMF0sIFtBTExFR1JPX0FDVEVTVF9TVVBQT1JUX01NWF0pCkFDX01TR19D
SEVDS0lORyhmb3IgcHJvY2Vzc29yIHR5cGUpCkFDX0NBQ0hFX1ZBTChhbGxlZ3JvX2N2X3Byb2Nl
c3Nvcl90eXBlLApbQUNfVFJZX0NPTVBJTEUoW10sIFthc20gKCIuZ2xvYmwgX2R1bW15X2Z1bmN0
aW9uXG4iCiJfZHVtbXlfZnVuY3Rpb246XG4iCiIgICAgIHB1c2hsICUlZWJwXG4iCiIgICAgIG1v
dmwgJSVlc3AsICUlZWJwXG4iCiIgICAgIGxlYWwgMTAoJSVlYngsICUlZWN4LCA0KSwgJSVlZHhc
biIKIiAgICAgY2FsbCAqJSVlZHhcbiIKIiAgICAgYWRkbCAlJWVieCwgJSVlYXhcbiIKIiAgICAg
cG9wbCAlJWVicFxuIgoiICAgICByZXQiIDogOildLAphbGxlZ3JvX2N2X3Byb2Nlc3Nvcl90eXBl
PWkzODYsCkFDX1RSWV9DT01QSUxFKFtdLCBbYXNtICgiLmdsb2JsIF9kdW1teV9mdW5jdGlvblxu
IgoiX2R1bW15X2Z1bmN0aW9uOlxuIgoiICAgICBzYXZlICUlc3AsIC0xMjAsICUlc3BcbiIKIiAg
ICAgbGQgW1slJWZwLTIwXV0sICUlZjEyXG4iCiIgICAgIGZpdG9kICUlZjEyLCAlJWYxMFxuIgoi
ICAgICBmYWRkZCAlJWYxMCwgJSVmOCwgJSVmOFxuIgoiICAgICByZXRcbiIKIiAgICAgcmVzdG9y
ZSIgOiA6KV0sCmFsbGVncm9fY3ZfcHJvY2Vzc29yX3R5cGU9c3BhcmMsCkFDX1RSWV9DT01QSUxF
KFtdLCBbYXNtICgiLmdsb2JsIF9kdW1teV9mdW5jdGlvblxuIgoiX2R1bW15X2Z1bmN0aW9uOlxu
IgoiICAgICBwdXNocSAlJXJicFxuIgoiICAgICBtb3ZsICUlZXNwLCAlJWVicFxuIgoiICAgICBs
ZWFsIDEwKCUlZWJ4LCAlJWVjeCwgNCksICUlZWR4XG4iCiIgICAgIGNhbGxxIColJXJkeFxuIgoi
ICAgICBhZGRsICUlZWJ4LCAlJWVheFxuIgoiICAgICBwb3BxICUlcmJwXG4iCiIgICAgIHJldCIg
OiA6KV0sCmFsbGVncm9fY3ZfcHJvY2Vzc29yX3R5cGU9YW1kNjQsCmFsbGVncm9fY3ZfcHJvY2Vz
c29yX3R5cGU9dW5rbm93bikpKV0pCkFDX01TR19SRVNVTFQoJGFsbGVncm9fY3ZfcHJvY2Vzc29y
X3R5cGUpXSkKCmRubApkbmwgVGVzdCBpZiBNTVggaW5zdHJ1Y3Rpb25zIGFyZSBzdXBwb3J0ZWQg
YnkgYXNzZW1ibGVyLgpkbmwKZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX2VuYWJsZV9tbXg9
KHllc3wpLApkbmwgIGFsbGVncm9fY3Zfc3VwcG9ydF9tbXg9KHllc3xubykuCmRubApBQ19ERUZV
TihBTExFR1JPX0FDVEVTVF9TVVBQT1JUX01NWCwKW0FDX1JFUVVJUkUoW0FMTEVHUk9fQUNURVNU
X1BST0NFU1NPUl9UWVBFXSkKQUNfQkVGT1JFKFskMF0sIFtBTExFR1JPX0FDVEVTVF9TVVBQT1JU
X1NTRV0pCkFDX0FSR19FTkFCTEUobW14LApbICAtLWVuYWJsZS1tbXhbPXhdICAgICAgICBlbmFi
bGUgdGhlIHVzZSBvZiBNTVggaW5zdHJ1Y3Rpb25zIFtkZWZhdWx0PXllc11dLAp0ZXN0ICJYJGVu
YWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfbW14PXllcywKYWxsZWdyb19lbmFi
bGVfbW14PXllcykKQUNfTVNHX0NIRUNLSU5HKGZvciBNTVggc3VwcG9ydCkKQUNfQ0FDSEVfVkFM
KGFsbGVncm9fY3Zfc3VwcG9ydF9tbXgsCltpZiB0ZXN0ICIkYWxsZWdyb19jdl9wcm9jZXNzb3Jf
dHlwZSIgPSBpMzg2IC1hICIkYWxsZWdyb19lbmFibGVfbW14IiA9IHllczsgdGhlbgogIEFDX1RS
WV9DT01QSUxFKFtdLCBbYXNtICgiLmdsb2JsIF9kdW1teV9mdW5jdGlvblxuIgogICJfZHVtbXlf
ZnVuY3Rpb246XG4iCiAgIiAgICAgcHVzaGwgJSVlYnBcbiIKICAiICAgICBtb3ZsICUlZXNwLCAl
JWVicFxuIgogICIgICAgIG1vdnEgLTgoJSVlYnApLCAlJW1tMFxuIgogICIgICAgIG1vdmQgJSVl
ZGksICUlbW0xXG4iCiAgIiAgICAgcHVucGNrbGRxICUlbW0xLCAlJW1tMVxuIgogICIgICAgIHBz
cmxkICQgMTksICUlbW03XG4iCiAgIiAgICAgcHNsbGQgJCAxMCwgJSVtbTZcbiIKICAiICAgICBw
b3IgJSVtbTYsICUlbW03XG4iCiAgIiAgICAgcGFkZGQgJSVtbTEsICUlbW0wXG4iCiAgIiAgICAg
ZW1tc1xuIgogICIgICAgIHBvcGwgJSVlYnBcbiIKICAiICAgICByZXQiIDogOiApXSwKICBhbGxl
Z3JvX2N2X3N1cHBvcnRfbW14PXllcywKICBhbGxlZ3JvX2N2X3N1cHBvcnRfbW14PW5vKQplbHNl
CiAgYWxsZWdyb19jdl9zdXBwb3J0X21teD1ubwpmaQpdKQpBQ19NU0dfUkVTVUxUKCRhbGxlZ3Jv
X2N2X3N1cHBvcnRfbW14KV0pCgpkbmwKZG5sIFRlc3QgaWYgU1NFIGluc3RydWN0aW9ucyBhcmUg
c3VwcG9ydGVkIGJ5IGFzc2VtYmxlci4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19l
bmFibGVfc3NlPSh5ZXN8KSwKZG5sICBhbGxlZ3JvX2N2X3N1cHBvcnRfc3NlPSh5ZXN8bm8pLgpk
bmwKQUNfREVGVU4oQUxMRUdST19BQ1RFU1RfU1VQUE9SVF9TU0UsCltBQ19SRVFVSVJFKFtBTExF
R1JPX0FDVEVTVF9TVVBQT1JUX01NWF0pCkFDX0FSR19FTkFCTEUoc3NlLApbICAtLWVuYWJsZS1z
c2VbPXhdICAgICAgICBlbmFibGUgdGhlIHVzZSBvZiBTU0UgaW5zdHJ1Y3Rpb25zIFtkZWZhdWx0
PXllc11dLAp0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfc3Nl
PXllcywKYWxsZWdyb19lbmFibGVfc3NlPXllcykKQUNfTVNHX0NIRUNLSU5HKGZvciBTU0Ugc3Vw
cG9ydCkKQUNfQ0FDSEVfVkFMKGFsbGVncm9fY3Zfc3VwcG9ydF9zc2UsCltpZiB0ZXN0ICIkYWxs
ZWdyb19jdl9zdXBwb3J0X21teCIgIT0gbm8gLWEgIiRhbGxlZ3JvX2VuYWJsZV9zc2UiID0geWVz
OyB0aGVuCiAgQUNfVFJZX0NPTVBJTEUoW10sIFthc20gKCIuZ2xvYmwgX2R1bW15X2Z1bmN0aW9u
XG4iCiAgIl9kdW1teV9mdW5jdGlvbjpcbiIKICAiICAgICBwdXNobCAlJWVicFxuIgogICIgICAg
IG1vdmwgJSVlc3AsICUlZWJwXG4iCiAgIiAgICAgbW92cSAtOCglJWVicCksICUlbW0wXG4iCiAg
IiAgICAgbW92ZCAlJWVkaSwgJSVtbTFcbiIKICAiICAgICBwdW5wY2tsZHEgJSVtbTEsICUlbW0x
XG4iCiAgIiAgICAgcHNybGQgJCAxMCwgJSVtbTNcbiIKICAiICAgICBtYXNrbW92cSAlJW1tMywg
JSVtbTFcbiIKICAiICAgICBwYWRkZCAlJW1tMSwgJSVtbTBcbiIKICAiICAgICBlbW1zXG4iCiAg
IiAgICAgcG9wbCAlJWVicFxuIgogICIgICAgIHJldCIgOiA6ICldLAogIGFsbGVncm9fY3Zfc3Vw
cG9ydF9zc2U9eWVzLAogIGFsbGVncm9fY3Zfc3VwcG9ydF9zc2U9bm8pCmVsc2UKICBhbGxlZ3Jv
X2N2X3N1cHBvcnRfc3NlPW5vCmZpCl0pCkFDX01TR19SRVNVTFQoJGFsbGVncm9fY3Zfc3VwcG9y
dF9zc2UpXSkKCmRubApkbmwgVGVzdCBmb3IgcHJlZml4IHByZXBlbmRlZCBieSBjb21waWxlciB0
byBnbG9iYWwgc3ltYm9scy4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19jdl9hc21f
cHJlZml4PShffCkKZG5sCkFDX0RFRlVOKEFMTEVHUk9fQUNURVNUX0FTTV9QUkVGSVgsCltBQ19N
U0dfQ0hFQ0tJTkcoZm9yIGFzbSBwcmVmaXggYmVmb3JlIHN5bWJvbHMpCkFDX0NBQ0hFX1ZBTChh
bGxlZ3JvX2N2X2FzbV9wcmVmaXgsCltBQ19UUllfTElOSyhbaW50IHRlc3RfZm9yX3VuZGVyc2Nv
cmUodm9pZCk7CmFzbSAoIi5nbG9ibCBfdGVzdF9mb3JfdW5kZXJzY29yZVxuIgoiX3Rlc3RfZm9y
X3VuZGVyc2NvcmU6Iik7XSwgW3Rlc3RfZm9yX3VuZGVyc2NvcmUgKCk7XSwKYWxsZWdyb19jdl9h
c21fcHJlZml4PV8sCmFsbGVncm9fY3ZfYXNtX3ByZWZpeD1ubykKaWYgdGVzdCAiJGFsbGVncm9f
Y3ZfYXNtX3ByZWZpeCIgPSBubzsgdGhlbgogIEFDX1RSWV9MSU5LKFtpbnQgdGVzdF9mb3JfdW5k
ZXJzY29yZSh2b2lkKTsKICBhc20gKCIuZ2xvYmwgdGVzdF9mb3JfdW5kZXJjb3JlXG4iCiAgInRl
c3RfZm9yX3VuZGVyc2NvcmU6Iik7XSwgW3Rlc3RfZm9yX3VuZGVyc2NvcmUgKCk7XSwKICAgIGFs
bGVncm9fY3ZfYXNtX3ByZWZpeD0sCiAgICBhbGxlZ3JvX2N2X2FzbV9wcmVmaXg9bm8pCmZpCmRu
bCBBZGQgbW9yZSB0ZXN0cyBmb3IgYXNtIHByZWZpeCBoZXJlLgpkbmwgaWYgdGVzdCAiJGFsbGVn
cm9fY3ZfYXNtX3ByZWZpeCIgPSBubzsgdGhlbgpkbmwgICBBQ19UUllfTElOSyhbXSwgW10sCmRu
bCAgICAgYWxsZWdyb19jdl9hc21fcHJlZml4PSwKZG5sICAgICBhbGxlZ3JvX2N2X2FzbV9wcmVm
aXg9bm8pCmRubCBmaQppZiB0ZXN0ICIkYWxsZWdyb19jdl9hc21fcHJlZml4IiA9IG5vOyB0aGVu
CiAgYWxsZWdyb19jdl9hc21fcHJlZml4PQpmaQpdKQpBQ19NU0dfUkVTVUxUKFwiJGFsbGVncm9f
Y3ZfYXNtX3ByZWZpeFwiKV0pCgpkbmwKZG5sIFRlc3QgZm9yIG1vZHVsZXMgc3VwcG9ydCAoZGxv
cGVuIGludGVyZmFjZSBhbmQgLS1leHBvcnQtZHluYW1pYyBsaW5rZXIgZmxhZykuCmRubApkbmwg
VmFyaWFibGVzOgpkbmwgIGFsbGVncm9fc3VwcG9ydF9tb2R1bGVzPSh5ZXN8KQpkbmwgIGFsbGVn
cm9fY3Zfc3VwcG9ydF9leHBvcnRfZHluYW1pYz0oeWVzfG5vKQpkbmwKZG5sIExERkxBR1MgYW5k
IExJQlMgY2FuIGJlIG1vZGlmaWVkLgpkbmwKQUNfREVGVU4oQUxMRUdST19BQ1RFU1RfTU9EVUxF
UywKW0FDX0FSR19FTkFCTEUobW9kdWxlcywKWyAgLS1lbmFibGUtbW9kdWxlc1s9eF0gICAgZW5h
YmxlIGR5bmFtaWNhbGx5IGxvYWRlZCBtb2R1bGVzIFtkZWZhdWx0PXllc11dLAp0ZXN0ICJYJGVu
YWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfbW9kdWxlcz15ZXMsCmFsbGVncm9f
ZW5hYmxlX21vZHVsZXM9eWVzKQoKaWYgdGVzdCAtbiAiJGFsbGVncm9fZW5hYmxlX21vZHVsZXMi
OyB0aGVuCiAgQUNfQ0hFQ0tfSEVBREVSKGRsZmNuLmgsCiAgICBbQUNfQ0FDSEVfQ0hFQ0sod2hl
dGhlciAtLWV4cG9ydC1keW5hbWljIGxpbmtlciBmbGFnIGlzIHN1cHBvcnRlZCwKICAgICAgYWxs
ZWdyb19jdl9zdXBwb3J0X2V4cG9ydF9keW5hbWljLAogICAgICBbYWxsZWdyb19zYXZlX0xERkxB
R1M9IiRMREZMQUdTIgogICAgICBMREZMQUdTPSItV2wsLS1leHBvcnQtZHluYW1pYyAkTERGTEFH
UyIKICAgICAgQUNfVFJZX0xJTksoLCwKICAgICAgICBhbGxlZ3JvX2N2X3N1cHBvcnRfZXhwb3J0
X2R5bmFtaWM9eWVzLAogICAgICAgIGFsbGVncm9fY3Zfc3VwcG9ydF9leHBvcnRfZHluYW1pYz1u
bywKICAgICAgICBhbGxlZ3JvX2N2X3N1cHBvcnRfZXhwb3J0X2R5bmFtaWM9eWVzKQogICAgICBM
REZMQUdTPSIkYWxsZWdyb19zYXZlX0xERkxBR1MiXSkKICAgIGlmIHRlc3QgJGFsbGVncm9fY3Zf
c3VwcG9ydF9leHBvcnRfZHluYW1pYyA9IHllczsgdGhlbgogICAgICBhbGxlZ3JvX3N1cHBvcnRf
bW9kdWxlcz15ZXMKICAgICAgZG5sIFVzZSBsaWJkbCBpZiBmb3VuZCwgZWxzZSBhc3N1bWUgZGwq
IGZ1bmN0aW9ucyBpbiBsaWJjLgogICAgICBBQ19DSEVDS19MSUIoZGwsIGRsb3BlbiwKICAgICAg
ICBbTElCUz0iLWxkbCAkTElCUyJdKQogICAgICBMREZMQUdTPSItV2wsLS1leHBvcnQtZHluYW1p
YyAkTERGTEFHUyIKICAgIGZpXSkKZmkKXSkKCmRubApkbmwgVGVzdCBmb3IgU3lzdGVtIFYgc3lz
L3Byb2Nmcy5oLgpkbmwKZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX3N2X3Byb2Nmcz0oeWVz
fG5vKQpkbmwKQUNfTVNHX0NIRUNLSU5HKGZvciBTeXN0ZW0gViBzeXMvcHJvY2ZzKQpBQ19ERUZV
TihBTExFR1JPX0FDVEVTVF9TVl9QUk9DRlMsIFsKICBBQ19DSEVDS19IRUFERVIoc3lzL3Byb2Nm
cy5oLCBbCiAgICBBQ19UUllfQ09NUElMRSgKICAgICAgWyAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5o
PiAKICAgICAgICAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiAgICAgIF0sCiAgICAgIFsgc3RydWN0
IHBycHNpbmZvIHBzaW5mbzsgCiAgICAgICAgaW9jdGwoMCwgUElPQ1BTSU5GTywgJnBzaW5mbyk7
CiAgICAgIF0sCiAgICAgIFthbGxlZ3JvX3N2X3Byb2Nmcz15ZXNdLAogICAgICBbYWxsZWdyb19z
dl9wcm9jZnM9bm9dCiAgICApLAogICAgW2FsbGVncm9fc3ZfcHJvY2ZzPW5vXQogIF0pCl0pCkFD
X01TR19SRVNVTFQoJGFsbGVncm9fc3ZfcHJvY2ZzKQoKZG5sCmRubCBUZXN0IGlmIHN5cy9wcm9j
ZnMuaCB0ZWxscyB1cyBhcmdjL2FyZ3YuCmRubApkbmwgVmFyaWFibGVzOgpkbmwgIGFsbGVncm9f
cHJvY2ZzX2FyZ2N2PSh5ZXN8bm8pCmRubApBQ19NU0dfQ0hFQ0tJTkcoaWYgc3lzL3Byb2Nmcy5o
IHRlbGxzIHVzIGFyZ2MvYXJndikKQUNfREVGVU4oQUxMRUdST19BQ1RFU1RfUFJPQ0ZTX0FSR0NW
LCBbCiAgQUNfVFJZX0NPTVBJTEUoCiAgICBbI2luY2x1ZGUgIDxzeXMvcHJvY2ZzLmg+XSwKICAg
IFtzdHJ1Y3QgcHJwc2luZm8gcHNpbmZvOyBwc2luZm8ucHJfYXJnYyA9IDA7XSwKICAgIFthbGxl
Z3JvX3Byb2Nmc19hcmdjdj15ZXNdLAogICAgW2FsbGVncm9fcHJvY2ZzX2FyZ2N2PW5vXQogICkK
XSkKQUNfTVNHX1JFU1VMVCgkYWxsZWdyb19wcm9jZnNfYXJnY3YpCgpkbmwKZG5sIFRlc3QgZm9y
IGdldGV4ZWNuYW1lKCkgb24gU29sYXJpcwpkbmwKZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3Jv
X3N5c19nZXRleGVjbmFtZT0oeWVzfG5vKQpkbmwKQUNfTVNHX0NIRUNLSU5HKGZvciBnZXRleGVj
bmFtZSkKQUNfREVGVU4oQUxMRUdST19BQ1RFU1RfU1lTX0dFVEVYRUNOQU1FLAogICBbQUNfQ0hF
Q0tfTElCKGMsIGdldGV4ZWNuYW1lLAogICAgICBbYWxsZWdyb19zeXNfZ2V0ZXhlY25hbWU9eWVz
XSwKICAgICAgW2FsbGVncm9fc3lzX2dldGV4ZWNuYW1lPW5vXSldCikKQUNfTVNHX1JFU1VMVCgk
YWxsZWdyb19zeXNfZ2V0ZXhlY25hbWUpCgpkbmwKZG5sIFRlc3QgZm9yIFgtV2luZG93cyBzdXBw
b3J0LgpkbmwKZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX2VuYWJsZV94d2luX3hjdXJzb3I9
KHllc3wpCmRubCAgYWxsZWdyb19lbmFibGVfeHdpbl9zaG09KHllc3wpCmRubCAgYWxsZWdyb19l
bmFibGVfeHdpbl94Zjg2dmlkbW9kZT0oeWVzfCkKZG5sICBhbGxlZ3JvX2VuYWJsZV94d2luX3hm
ODZkZ2E9KHllc3wpCmRubCAgYWxsZWdyb19lbmFibGVfeHdpbl94Zjg2ZGdhMj0oeWVzfCkKZG5s
ICBhbGxlZ3JvX3N1cHBvcnRfeHdpbmRvd3M9KHllc3wpCmRubApkbmwgQ1BQRkxBR1MsIExERkxB
R1MgYW5kIExJQlMgY2FuIGJlIG1vZGlmaWVkLgpkbmwKQUNfREVGVU4oQUxMRUdST19BQ1RFU1Rf
U1VQUE9SVF9YV0lORE9XUywKW0FDX0FSR19FTkFCTEUoeHdpbi14Y3Vyc29yLApbICAtLWVuYWJs
ZS14d2luLXhjdXJzb3JbPXhdIGVuYWJsZSB0aGUgdXNlIG9mIFhjdXJzb3IgbGlicmFyeSBbZGVm
YXVsdD15ZXNdXSwKdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxl
X3h3aW5feGN1cnNvcj15ZXMsCmFsbGVncm9fZW5hYmxlX3h3aW5feGN1cnNvcj15ZXMpCkFDX0FS
R19FTkFCTEUoeHdpbi1zaG0sClsgIC0tZW5hYmxlLXh3aW4tc2htWz14XSAgIGVuYWJsZSB0aGUg
dXNlIG9mIE1JVC1TSE0gRXh0ZW5zaW9uIFtkZWZhdWx0PXllc11dLAp0ZXN0ICJYJGVuYWJsZXZh
bCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfeHdpbl9zaG09eWVzLAphbGxlZ3JvX2VuYWJs
ZV94d2luX3NobT15ZXMpCkFDX0FSR19FTkFCTEUoeHdpbi12aWRtb2RlLApbICAtLWVuYWJsZS14
d2luLXZpZG1vZGVbPXhdIGVuYWJsZSB0aGUgdXNlIG9mIFhGODZWaWRNb2RlIEV4dC4gW2RlZmF1
bHQ9eWVzXV0sCnRlc3QgIlgkZW5hYmxldmFsIiAhPSAiWG5vIiAmJiBhbGxlZ3JvX2VuYWJsZV94
d2luX3hmODZ2aWRtb2RlPXllcywKYWxsZWdyb19lbmFibGVfeHdpbl94Zjg2dmlkbW9kZT15ZXMp
CkFDX0FSR19FTkFCTEUoeHdpbi1kZ2EyLApbICAtLWVuYWJsZS14d2luLWRnYTJbPXhdICBlbmFi
bGUgdGhlIHVzZSBvZiBER0EgMi4wIEV4dGVuc2lvbiBbZGVmYXVsdD15ZXNdXSwKdGVzdCAiWCRl
bmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX3h3aW5feGY4NmRnYTI9eWVzLAph
bGxlZ3JvX2VuYWJsZV94d2luX3hmODZkZ2EyPXllcykKQUNfQVJHX0VOQUJMRSh4aW0sClsgIC0t
ZW5hYmxlLXhpbVs9eF0gICAgICAgIGVuYWJsZSB0aGUgdXNlIG9mIFhJTSBrZXlib2FyZCBpbnB1
dCBbZGVmYXVsdD15ZXNdXSwKdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9f
ZW5hYmxlX3hpbT15ZXMsCmFsbGVncm9fZW5hYmxlX3hpbT15ZXMpCgpkbmwgUHJvY2VzcyAiLS13
aXRoW291dF0teCIsICItLXgtaW5jbHVkZXMiIGFuZCAiLS14LWxpYnJhcmllcyIgb3B0aW9ucy4K
X3gxMT0iWDExIHN1cHBvcnQ6IGRpc2FibGVkIgpBQ19QQVRIX1gKaWYgdGVzdCAteiAiJG5vX3gi
OyB0aGVuCiAgYWxsZWdyb19zdXBwb3J0X3h3aW5kb3dzPXllcwogIEFDX0RFRklORShBTExFR1JP
X1dJVEhfWFdJTkRPV1MsMSxbRGVmaW5lIGlmIHlvdSBuZWVkIHN1cHBvcnQgZm9yIFgtV2luZG93
cy5dKQoKICBpZiB0ZXN0IC1uICIkeF9pbmNsdWRlcyI7IHRoZW4KICAgIENQUEZMQUdTPSItSSR4
X2luY2x1ZGVzICRDUFBGTEFHUyIKICBmaQogIGlmIHRlc3QgLW4gIiR4X2xpYnJhcmllcyI7IHRo
ZW4KICAgIExERkxBR1M9Ii1MJHhfbGlicmFyaWVzICRMREZMQUdTIgogICAgQUxMRUdST19YV0lO
RE9XU19MSUJESVI9IiR4X2xpYnJhcmllcyIKICBmaQogIExJQlM9Ii1sWDExICRMSUJTIgogIF94
MTE9IlgxMSBzdXBwb3J0OiBlbmFibGVkIgogIF94MTFleHQ9IiIKCiAgZG5sIFRlc3QgZm9yIFhl
eHQgbGlicmFyeS4KICBBQ19DSEVDS19MSUIoWGV4dCwgWE1pc3NpbmdFeHRlbnNpb24sCiAgICBb
X3gxMWV4dD0iJF94MTFleHQgWGV4dCIKICAgIExJQlM9Ii1sWGV4dCAkTElCUyJdKQoKICBkbmwg
VGVzdCBmb3IgWHBtIGxpYnJhcnkuCiAgQUNfQ0hFQ0tfSEVBREVSKFgxMS94cG0uaCwgQUNfQ0hF
Q0tfTElCKFhwbSwgWHBtQ3JlYXRlUGl4bWFwRnJvbURhdGEsCiAgICBbTElCUz0iLWxYcG0gJExJ
QlMiCiAgICBfeDExZXh0PSIkX3gxMWV4dCBYcG0iCiAgICBBQ19ERUZJTkUoQUxMRUdST19YV0lO
RE9XU19XSVRIX1hQTSwxLFtEZWZpbmUgaWYgeHBtIGJpdG1hcCBzdXBwb3J0IGlzIGF2YWlsYWJs
ZS5dKQogICAgXSkKICAgKQoKICBkbmwgVGVzdCBmb3IgWGN1cnNvciBsaWJyYXJ5LgogIGlmIHRl
c3QgLW4gIiRhbGxlZ3JvX2VuYWJsZV94d2luX3hjdXJzb3IiOyB0aGVuCiAgICBBQ19DSEVDS19M
SUIoWGN1cnNvciwgWGN1cnNvckltYWdlQ3JlYXRlLAogICAgICBBQ19UUllfQ09NUElMRShbI2lu
Y2x1ZGUgPFgxMS9YbGliLmg+CiAgICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8WDExL1hj
dXJzb3IvWGN1cnNvci5oPl0sIAogICAgICAgICAgICAgICAgICAgICBbWGN1cnNvckltYWdlICp4
Y3Vyc29yX2ltYWdlOwogICAgICAgICAgICAgICAgICAgICAgWGN1cnNvckltYWdlTG9hZEN1cnNv
cigwLCB4Y3Vyc29yX2ltYWdlKTsKICAgICAgICAgICAgICAgICAgICAgIFhjdXJzb3JTdXBwb3J0
c0FSR0IoMCk7CiAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgW0xJQlM9Ii1sWGN1cnNv
ciAkTElCUyIKICAgICAgICBfeDExZXh0PSIkX3gxMWV4dCBYY3Vyc29yIgogICAgICAgIEFDX0RF
RklORShBTExFR1JPX1hXSU5ET1dTX1dJVEhfWENVUlNPUiwxLFtEZWZpbmUgaWYgWEN1cnNvciBB
UkdCIGV4dGVuc2lvbiBpcyBhdmFpbGFibGUuXSkKICAgICAgICBdKQogICAgICkKICBmaQoKICBk
bmwgVGVzdCBmb3IgU0hNIGV4dGVuc2lvbi4KICBpZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVf
eHdpbl9zaG0iOyB0aGVuCiAgICBBQ19DSEVDS19MSUIoWGV4dCwgWFNobVF1ZXJ5RXh0ZW5zaW9u
LAogICAgICBbX3gxMWV4dD0iJF94MTFleHQgWFNobSIKICAgICAgQUNfREVGSU5FKEFMTEVHUk9f
WFdJTkRPV1NfV0lUSF9TSE0sMSxbRGVmaW5lIGlmIE1JVC1TSE0gZXh0ZW5zaW9uIGlzIHN1cHBv
cnRlZC5dKV0pCiAgZmkKCiAgZG5sIFRlc3QgZm9yIFhGODZWaWRNb2RlIGV4dGVuc2lvbi4KICBp
ZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfeHdpbl94Zjg2dmlkbW9kZSI7IHRoZW4KICAgIEFD
X0NIRUNLX0xJQihYeGY4NnZtLCBYRjg2VmlkTW9kZVF1ZXJ5RXh0ZW5zaW9uLAogICAgICBbTElC
Uz0iLWxYeGY4NnZtICRMSUJTIgogICAgICBfeDExZXh0PSIkX3gxMWV4dCBYRjg2VmlkTW9kZSIK
ICAgICAgQUNfREVGSU5FKEFMTEVHUk9fWFdJTkRPV1NfV0lUSF9YRjg2VklETU9ERSwxLFtEZWZp
bmUgaWYgWEY4NlZpZE1vZGUgZXh0ZW5zaW9uIGlzIHN1cHBvcnRlZC5dKV0pCiAgZmkKCiAgZG5s
IFRlc3QgZm9yIERHQSAyLjAgZXh0ZW5zaW9uLgogIGlmIHRlc3QgLW4gIiRhbGxlZ3JvX2VuYWJs
ZV94d2luX3hmODZkZ2EyIjsgdGhlbgogICAgQUNfQ0hFQ0tfTElCKFh4Zjg2ZGdhLCBYREdBUXVl
cnlFeHRlbnNpb24sCiAgICAgIFthbGxlZ3JvX3N1cHBvcnRfeGY4NmRnYTI9eWVzCiAgICAgIGlm
IHRlc3QgLXogIiRhbGxlZ3JvX3N1cHBvcnRfbW9kdWxlcyI7IHRoZW4KICAgICAgICBMSUJTPSIt
bFh4Zjg2ZGdhICRMSUJTIgogICAgICBmaQogICAgICBfeDExZXh0PSIkX3gxMWV4dCBYREdBIgog
ICAgICBBQ19ERUZJTkUoQUxMRUdST19YV0lORE9XU19XSVRIX1hGODZER0EyLDEsW0RlZmluZSBp
ZiBER0EgdmVyc2lvbiAyLjAgb3IgbmV3ZXIgaXMgc3VwcG9ydGVkXSldKQogIGZpCgogIGRubCBU
ZXN0IGZvciBYSU0gc3VwcG9ydC4KICBpZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfeGltIjsg
dGhlbgogICAgQUNfQ0hFQ0tfTElCKFgxMSwgWE9wZW5JTSwKICAgICAgW194MTFleHQ9IiRfeDEx
ZXh0IFhJTSIKICAgICAgQUNfREVGSU5FKEFMTEVHUk9fWFdJTkRPV1NfV0lUSF9YSU0sMSxbRGVm
aW5lIGlmIFhJTSBleHRlbnNpb24gaXMgc3VwcG9ydGVkLl0pXSkKICBmaQoKICBpZiB0ZXN0IC1u
ICIkX3gxMWV4dCI7IHRoZW4KICAgIF94MTE9IiRfeDExIHdpdGg6JF94MTFleHQiCiAgZmkKCmZp
Cl0pCgpkbmwKZG5sIFRlc3QgZm9yIGRlYnVnZ2luZyB3aXRoIEZvcnRpZnkuCmRubApkbmwgVmFy
aWFibGVzOgpkbmwgIGFsbGVncm9fZGVidWdfd2l0aF9mb3J0aWZ5PSh5ZXN8KQpkbmwKQUNfREVG
VU4oQUxMRUdST19BQ1RFU1RfREVCVUdfV0lUSF9GT1JUSUZZLApbQUNfQVJHX0VOQUJMRShkYmct
d2l0aC1mb3J0aWZ5LApbICAtLWVuYWJsZS1kYmctd2l0aC1mb3J0aWZ5Wz14XSAgICBlbmFibGUg
ZGVidWdnaW5nIHdpdGggRm9ydGlmeSBbZGVmYXVsdD1ub11dLAp0ZXN0ICJYJGVuYWJsZXZhbCIg
IT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfZGVidWdfd2l0aF9mb3J0aWZ5PXllcykKCmlmIHRl
c3QgLW4gIiRhbGxlZ3JvX2VuYWJsZV9kZWJ1Z193aXRoX2ZvcnRpZnkiOyB0aGVuCiAgIEFDX0NI
RUNLX0hFQURFUihmb3J0aWZ5L2ZvcnRpZnkuaCwgYWxsZWdyb19kZWJ1Z193aXRoX2ZvcnRpZnk9
eWVzKQpmaQpdKQoKZG5sCmRubCBUZXN0IGZvciBkZWJ1Z2dpbmcgd2l0aCBETWFsbG9jLgpkbmwK
ZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX2RlYnVnX3dpdGhfZG1hbGxvYz0oeWVzfCkKZG5s
CkFDX0RFRlVOKEFMTEVHUk9fQUNURVNUX0RFQlVHX1dJVEhfRE1BTExPQywKW0FDX0FSR19FTkFC
TEUoZGJnLXdpdGgtZG1hbGxvYywKWyAgLS1lbmFibGUtZGJnLXdpdGgtZG1hbGxvY1s9eF0gICAg
ZW5hYmxlIGRlYnVnZ2luZyB3aXRoIERNYWxsb2MgW2RlZmF1bHQ9bm9dXSwKdGVzdCAiWCRlbmFi
bGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2RlYnVnX3dpdGhfZG1hbGxvYz15ZXMp
CgppZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfZGVidWdfd2l0aF9kbWFsbG9jIjsgdGhlbgog
ICBBQ19DSEVDS19IRUFERVIoZG1hbGxvYy5oLCBhbGxlZ3JvX2RlYnVnX3dpdGhfZG1hbGxvYz15
ZXMpCmZpCl0pCgpkbmwKZG5sIFRlc3QgZm9yIExpbnV4IEZyYW1lYnVmZmVyIENvbnNvbGUgc3Vw
cG9ydC4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19jdl9zdXBwb3J0X2ZiY29uPSh5
ZXN8KQpkbmwKQUNfREVGVU4oQUxMRUdST19BQ1RFU1RfRkJDT04sIFsKICBBQ19DSEVDS19IRUFE
RVIobGludXgvZmIuaCwgWwogICAgQUNfVFJZX0NPTVBJTEUoCiAgICAgIFsjaW5jbHVkZSA8bGlu
dXgvZmIuaD5dLAogICAgICBbaW50IHggPSBGQl9TWU5DX09OX0dSRUVOO10sCiAgICAgIFthbGxl
Z3JvX2N2X3N1cHBvcnRfZmJjb249eWVzXQogICAgKQogIF0pCl0pCgpkbmwKZG5sIFRlc3QgZm9y
IExpbnV4IFNWR0FsaWIgc3VwcG9ydC4KZG5sCmRubCAgVmFyaWFibGVzOgpkbmwgICBhbGxlZ3Jv
X2N2X3N1cHBvcnRfc3ZnYWxpYj0oeWVzfCkKZG5sICAgYWxsZWdyb19jdl9oYXZlX3ZnYV92ZXJz
aW9uPSh5ZXN8bm8pCmRubApBQ19ERUZVTihBTExFR1JPX0FDVEVTVF9TVkdBTElCLApbQUNfQ0hF
Q0tfSEVBREVSKHZnYS5oLApBQ19DSEVDS19MSUIodmdhLCB2Z2FfaW5pdCwKYWxsZWdyb19jdl9z
dXBwb3J0X3N2Z2FsaWI9eWVzCkFDX01TR19DSEVDS0lORyhmb3IgdmdhX3ZlcnNpb24gaW4gdmdh
LmgpCkFDX0NBQ0hFX1ZBTChhbGxlZ3JvX2N2X2hhdmVfdmdhX3ZlcnNpb24sCltBQ19UUllfQ09N
UElMRShbI2luY2x1ZGUgPHZnYS5oPl0sIFtpbnQgeCA9IHZnYV92ZXJzaW9uOyB4Kys7XSwKYWxs
ZWdyb19jdl9oYXZlX3ZnYV92ZXJzaW9uPXllcywKYWxsZWdyb19jdl9oYXZlX3ZnYV92ZXJzaW9u
PW5vKV0pCkFDX01TR19SRVNVTFQoJGFsbGVncm9fY3ZfaGF2ZV92Z2FfdmVyc2lvbikpKV0pCgpk
bmwKZG5sIFRlc3QgZm9yIE9TUyBESUdJIGRyaXZlci4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAg
YWxsZWdyb19zdXBwb3J0X29zc2RpZ2k9KHllc3wpCmRubApBQ19ERUZVTihBTExFR1JPX0FDVEVT
VF9PU1NESUdJLApbQUNfQVJHX0VOQUJMRShvc3NkaWdpLApbICAtLWVuYWJsZS1vc3NkaWdpWz14
XSAgICBlbmFibGUgYnVpbGRpbmcgT1NTIERJR0kgZHJpdmVyIFtkZWZhdWx0PXllc11dLAp0ZXN0
ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfb3NzZGlnaT15ZXMsCmFs
bGVncm9fZW5hYmxlX29zc2RpZ2k9eWVzKQoKaWYgdGVzdCAtbiAiJGFsbGVncm9fZW5hYmxlX29z
c2RpZ2kiOyB0aGVuCiAgQUNfQ0hFQ0tfSEVBREVSKHNvdW5kY2FyZC5oLCBbCiAgICBBQ19ERUZJ
TkUoQUxMRUdST19IQVZFX1NPVU5EQ0FSRF9ILCAxKQogICAgYWxsZWdyb19zdXBwb3J0X29zc2Rp
Z2k9eWVzCiAgXSkKICBBQ19DSEVDS19IRUFERVIoc3lzL3NvdW5kY2FyZC5oLCBbCiAgICBBQ19E
RUZJTkUoQUxMRUdST19IQVZFX1NZU19TT1VORENBUkRfSCwgMSkKICAgIGFsbGVncm9fc3VwcG9y
dF9vc3NkaWdpPXllcwogIF0pCiAgQUNfQ0hFQ0tfSEVBREVSKG1hY2hpbmUvc291bmRjYXJkLmgs
IFsKICAgIEFDX0RFRklORShBTExFR1JPX0hBVkVfTUFDSElORV9TT1VORENBUkRfSCwgMSkKICAg
IGFsbGVncm9fc3VwcG9ydF9vc3NkaWdpPXllcwogIF0pCiAgQUNfQ0hFQ0tfSEVBREVSKGxpbnV4
L3NvdW5kY2FyZC5oLCBbCiAgICBBQ19ERUZJTkUoQUxMRUdST19IQVZFX0xJTlVYX1NPVU5EQ0FS
RF9ILCAxKQogICAgYWxsZWdyb19zdXBwb3J0X29zc2RpZ2k9eWVzCiAgXSkKCiAgZG5sIExpbmsg
d2l0aCBsaWJvc3NhdWRpbyBpZiBuZWNlc3NhcnksIHVzZWQgYnkgc29tZSBCU0Qgc3lzdGVtcy4K
ICBBQ19DSEVDS19MSUIob3NzYXVkaW8sIF9vc3NfaW9jdGwpCmZpCl0pCgpkbmwKZG5sIFRlc3Qg
Zm9yIE9TUyBNSURJIGRyaXZlci4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19zdXBw
b3J0X29zc21pZGk9KHllc3wpCmRubApBQ19ERUZVTihBTExFR1JPX0FDVEVTVF9PU1NNSURJLApb
QUNfQVJHX0VOQUJMRShvc3NtaWRpLApbICAtLWVuYWJsZS1vc3NtaWRpWz14XSAgICBlbmFibGUg
YnVpbGRpbmcgT1NTIE1JREkgZHJpdmVyIFtkZWZhdWx0PXllc11dLAp0ZXN0ICJYJGVuYWJsZXZh
bCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFibGVfb3NzbWlkaT15ZXMsCmFsbGVncm9fZW5hYmxl
X29zc21pZGk9eWVzKQoKaWYgdGVzdCAtbiAiJGFsbGVncm9fZW5hYmxlX29zc21pZGkiOyB0aGVu
CiAgQUNfQ0hFQ0tfSEVBREVSKHNvdW5kY2FyZC5oLAogICAgQUNfREVGSU5FKEFMTEVHUk9fSEFW
RV9TT1VORENBUkRfSCwgMSkpCiAgQUNfQ0hFQ0tfSEVBREVSKHN5cy9zb3VuZGNhcmQuaCwKICAg
IEFDX0RFRklORShBTExFR1JPX0hBVkVfU1lTX1NPVU5EQ0FSRF9ILCAxKSkKICBBQ19DSEVDS19I
RUFERVIobWFjaGluZS9zb3VuZGNhcmQuaCwKICAgIEFDX0RFRklORShBTExFR1JPX0hBVkVfTUFD
SElORV9TT1VORENBUkRfSCwgMSkpCiAgQUNfQ0hFQ0tfSEVBREVSKGxpbnV4L3NvdW5kY2FyZC5o
LAogICAgQUNfREVGSU5FKEFMTEVHUk9fSEFWRV9MSU5VWF9TT1VORENBUkRfSCwgMSkpCiAgQUNf
Q0hFQ0tfSEVBREVSKGxpbnV4L2F3ZV92b2ljZS5oLAogICAgQUNfREVGSU5FKEFMTEVHUk9fSEFW
RV9MSU5VWF9BV0VfVk9JQ0VfSCwgMSkpCgogIGRubCBMaW5rIHdpdGggbGlib3NzYXVkaW8gaWYg
bmVjZXNzYXJ5LCB1c2VkIGJ5IHNvbWUgQlNEIHN5c3RlbXMuCiAgQUNfQ0hFQ0tfTElCKG9zc2F1
ZGlvLCBfb3NzX2lvY3RsKQoKICBkbmwgU2VxdWVuY2VyIHN1cHBvcnQgbWlnaHQgbm90IGJlIHBy
ZXNlbnQgaWYgdGhpcyBpcyBhbiBpbmNvbXBsZXRlCiAgZG5sIGVtdWxhdGlvbiBvZiB0aGUgT1NT
IEFQSS4KICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIE9TUyBzZXF1ZW5jZXIgc3VwcG9ydCkKICBBQ19M
SU5LX0lGRUxTRSgKICAgIEFDX0xBTkdfUFJPR1JBTShbWwogICAgICAjaWYgQUxMRUdST19IQVZF
X1NPVU5EQ0FSRF9ICiAgICAgICAjaW5jbHVkZSA8c291bmRjYXJkLmg+CiAgICAgICNlbGlmIEFM
TEVHUk9fSEFWRV9TWVNfU09VTkRDQVJEX0gKICAgICAgICNpbmNsdWRlIDxzeXMvc291bmRjYXJk
Lmg+CiAgICAgICNlbGlmIEFMTEVHUk9fSEFWRV9NQUNISU5FX1NPVU5EQ0FSRF9ICiAgICAgICAj
aW5jbHVkZSA8bWFjaGluZS9zb3VuZGNhcmQuaD4KICAgICAgI2VsaWYgQUxMRUdST19IQVZFX0xJ
TlVYX1NPVU5EQ0FSRF9ICiAgICAgICAjaW5jbHVkZSA8bGludXgvc291bmRjYXJkLmg+CiAgICAg
ICNlbmRpZl1dLAogICAgICBbcmV0dXJuIFNORENUTF9TRVFfTlJTWU5USFM7XQogICAgKSwKICAg
IFthbGxlZ3JvX3N1cHBvcnRfb3NzbWlkaT15ZXNdCiAgKQogIGlmIHRlc3QgLW4gIiRhbGxlZ3Jv
X3N1cHBvcnRfb3NzbWlkaSI7IHRoZW4KICAgIEFDX01TR19SRVNVTFQoeWVzKQogIGVsc2UKICAg
IEFDX01TR19SRVNVTFQobm8pCiAgZmkKZmkKXSkKCmRubApkbmwgVGVzdCBmb3IgQUxTQSBESUdJ
IGRyaXZlci4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19jdl9zdXBwb3J0X2Fsc2Fk
aWdpPSh5ZXN8KQpkbmwgIGFsbGVncm9fY3ZfYWxzYV92ZXJzaW9uPSg1fDkpCmRubApBQ19ERUZV
TihBTExFR1JPX0FDVEVTVF9BTFNBRElHSSwKW0FDX0JFRk9SRShbJDBdLCBbQUxMRUdST19BQ1RF
U1RfQUxTQU1JREldKQpBQ19BUkdfRU5BQkxFKGFsc2FkaWdpLApbICAtLWVuYWJsZS1hbHNhZGln
aVs9eF0gICBlbmFibGUgYnVpbGRpbmcgQUxTQSBESUdJIGRyaXZlciBbZGVmYXVsdD15ZXNdXSwK
dGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2Fsc2FkaWdpPXll
cywKYWxsZWdyb19lbmFibGVfYWxzYWRpZ2k9eWVzKQogCmlmIHRlc3QgLW4gIiRhbGxlZ3JvX2Vu
YWJsZV9hbHNhZGlnaSI7IHRoZW4KICBBQ19DQUNIRV9DSEVDSyhmb3Igc3VwcG9ydGVkIEFMU0Eg
dmVyc2lvbiBmb3IgZGlnaXRhbCBzb3VuZCwKICBhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYWRpZ2ks
CiAgQUNfVFJZX0NPTVBJTEUoWyNpbmNsdWRlIDxzeXMvYXNvdW5kbGliLmg+CiAgICAgICAgICAg
ICAgICAgICNpZiAoU05EX0xJQl9NQUpPUiA+IDApIHx8IChTTkRfTElCX01BSk9SID09IDAgJiYg
U05EX0xJQl9NSU5PUiA9PSA5ICYmIFNORF9MSUJfU1VCTUlOT1IgPj0gMSkKICAgICAgICAgICAg
ICAgICAgI2Vsc2UKICAgICAgICAgICAgICAgICAgI2Vycm9yCiAgICAgICAgICAgICAgICAgICNl
bmRpZl0sLAogIFthbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYWRpZ2k9eWVzCiAgIGFsbGVncm9fY3Zf
YWxzYV92ZXJzaW9uPTldLAogIEFDX1RSWV9DT01QSUxFKFsjaW5jbHVkZSA8c3lzL2Fzb3VuZGxp
Yi5oPgogICAgICAgICAgICAgICAgICAjaWYgU05EX0xJQl9NQUpPUiA9PSAwICYmIFNORF9MSUJf
TUlOT1IgPT0gNQogICAgICAgICAgICAgICAgICAjZWxzZQogICAgICAgICAgICAgICAgICAjZXJy
b3IKICAgICAgICAgICAgICAgICAgI2VuZGlmXSwsCiAgW2FsbGVncm9fY3Zfc3VwcG9ydF9hbHNh
ZGlnaT15ZXMKICAgYWxsZWdyb19jdl9hbHNhX3ZlcnNpb249NV0sCiAgYWxsZWdyb19jdl9zdXBw
b3J0X2Fsc2FkaWdpPW5vKSkpCiAgaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYWRp
Z2kiID0gIlh5ZXMiICYmIAogICAgIHRlc3QgLXogIiRhbGxlZ3JvX3N1cHBvcnRfbW9kdWxlcyI7
IHRoZW4KICAgIExJQlM9Ii1sYXNvdW5kICRMSUJTIgogIGZpCmZpXSkKCmRubApkbmwgVGVzdCBm
b3IgQUxTQSBNSURJIGRyaXZlci4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19zdXBw
b3J0X2Fsc2FtaWRpPSh5ZXN8KQpkbmwgIGFsbGVncm9fY3ZfYWxzYV92ZXJzaW9uPSg1fDkpCmRu
bApBQ19ERUZVTihBTExFR1JPX0FDVEVTVF9BTFNBTUlESSwKW0FDX0FSR19FTkFCTEUoYWxzYW1p
ZGksClsgIC0tZW5hYmxlLWFsc2FtaWRpWz14XSAgIGVuYWJsZSBidWlsZGluZyBBTFNBIE1JREkg
ZHJpdmVyIFtkZWZhdWx0PXllc11dLAp0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxs
ZWdyb19lbmFibGVfYWxzYW1pZGk9eWVzLAphbGxlZ3JvX2VuYWJsZV9hbHNhbWlkaT15ZXMpCgpp
ZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfYWxzYW1pZGkiOyB0aGVuCiAgQUNfQ0FDSEVfQ0hF
Q0soZm9yIHN1cHBvcnRlZCBBTFNBIHZlcnNpb24gZm9yIE1JREksCiAgYWxsZWdyb19jdl9zdXBw
b3J0X2Fsc2FtaWRpLAogIEFDX1RSWV9DT01QSUxFKFsjaW5jbHVkZSA8c3lzL2Fzb3VuZGxpYi5o
PgogICAgICAgICAgICAgICAgICAjaWYgKFNORF9MSUJfTUFKT1IgPiAwKSB8fCAoU05EX0xJQl9N
QUpPUiA9PSAwICYmIFNORF9MSUJfTUlOT1IgPT0gOSkKICAgICAgICAgICAgICAgICAgI2Vsc2UK
ICAgICAgICAgICAgICAgICAgI2Vycm9yCiAgICAgICAgICAgICAgICAgICNlbmRpZl0sLAogIFth
bGxlZ3JvX2N2X3N1cHBvcnRfYWxzYW1pZGk9eWVzCiAgIGFsbGVncm9fY3ZfYWxzYV92ZXJzaW9u
PTldLAogIEFDX1RSWV9DT01QSUxFKFsjaW5jbHVkZSA8c3lzL2Fzb3VuZGxpYi5oPgogICAgICAg
ICAgICAgICAgICAjaWYgU05EX0xJQl9NQUpPUiA9PSAwICYmIFNORF9MSUJfTUlOT1IgPT0gNQog
ICAgICAgICAgICAgICAgICAjZWxzZQogICAgICAgICAgICAgICAgICAjZXJyb3IKICAgICAgICAg
ICAgICAgICAgI2VuZGlmXSwsCiAgW2FsbGVncm9fY3Zfc3VwcG9ydF9hbHNhbWlkaT15ZXMKICAg
YWxsZWdyb19jdl9hbHNhX3ZlcnNpb249NV0sCiAgYWxsZWdyb19jdl9zdXBwb3J0X2Fsc2FtaWRp
PW5vKSkpCiAgaWYgdGVzdCAiWCRhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYW1pZGkiID0gIlh5ZXMi
ICYmCiAgICAgdGVzdCAiWCRhbGxlZ3JvX2N2X3N1cHBvcnRfYWxzYWRpZ2kiICE9ICJYeWVzIiAm
JgogICAgIHRlc3QgLXogIiRhbGxlZ3JvX3N1cHBvcnRfbW9kdWxlcyI7IHRoZW4KICAgIExJQlM9
Ii1sYXNvdW5kICRMSUJTIgogIGZpCmZpXSkKCmRubApkbmwgVGVzdCBmb3IgRVNEIERJR0kgZHJp
dmVyLgpkbmwKZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX3N1cHBvcnRfZXNkZGlnaT0oeWVz
fCkKZG5sCkFDX0RFRlVOKEFMTEVHUk9fQUNURVNUX0VTRERJR0ksCltBQ19BUkdfRU5BQkxFKGVz
ZGRpZ2ksClsgIC0tZW5hYmxlLWVzZGRpZ2lbPXhdICAgIGVuYWJsZSBidWlsZGluZyBFU0QgRElH
SSBkcml2ZXIgW2RlZmF1bHQ9eWVzXV0sCnRlc3QgIlgkZW5hYmxldmFsIiAhPSAiWG5vIiAmJiBh
bGxlZ3JvX2VuYWJsZV9lc2RkaWdpPXllcywKYWxsZWdyb19lbmFibGVfZXNkZGlnaT15ZXMpCgpp
ZiB0ZXN0IC1uICIkYWxsZWdyb19lbmFibGVfZXNkZGlnaSI7IHRoZW4KICBBQ19QQVRIX1BST0co
RVNEX0NPTkZJRywgZXNkLWNvbmZpZykKICBpZiB0ZXN0IC1uICIkRVNEX0NPTkZJRyI7IHRoZW4K
ICAgIEFMTEVHUk9fT0xEX0xJQlM9IiRMSUJTIgogICAgQUxMRUdST19PTERfQ0ZMQUdTPSIkQ0ZM
QUdTIgogICAgTElCUz0iYCRFU0RfQ09ORklHIC0tbGlic2AgJExJQlMiCiAgICBDRkxBR1M9ImAk
RVNEX0NPTkZJRyAtLWNmbGFnc2AgJENGTEFHUyIKICAgIEFDX01TR19DSEVDS0lORyhmb3IgZXNk
X29wZW5fc291bmQpCiAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPGVzZC5oPl0sCiAgICAgIFtl
c2Rfb3Blbl9zb3VuZCgwKTtdLAogICAgICBbYWxsZWdyb19zdXBwb3J0X2VzZGRpZ2k9eWVzCiAg
ICAgICBpZiB0ZXN0IC1uICIkYWxsZWdyb19zdXBwb3J0X21vZHVsZXMiOyB0aGVuCiAgICAgICAg
IExJQlM9IiRBTExFR1JPX09MRF9MSUJTIgogICAgICAgZmldLAogICAgICBbQ0ZMQUdTPSIkQUxM
RUdST19PTERfQ0ZMQUdTIgogICAgICAgTElCUz0iJEFMTEVHUk9fT0xEX0xJQlMiXSkKICAgIGlm
IHRlc3QgLW4gIiRhbGxlZ3JvX3N1cHBvcnRfZXNkZGlnaSI7IHRoZW4KICAgICAgQUNfTVNHX1JF
U1VMVCh5ZXMpCiAgICBlbHNlCiAgICAgIEFDX01TR19SRVNVTFQobm8pCiAgICBmaQogIGZpCmZp
XSkKCmRubApkbmwgVGVzdCBmb3IgQVJUUyBESUdJIGRyaXZlci4KZG5sCmRubCBWYXJpYWJsZXM6
CmRubCAgYWxsZWdyb19zdXBwb3J0X2FydHNkaWdpPSh5ZXN8KQpkbmwKQUNfREVGVU4oQUxMRUdS
T19BQ1RFU1RfQVJUU0RJR0ksCltBQ19BUkdfRU5BQkxFKGFydHNkaWdpLApbICAtLWVuYWJsZS1h
cnRzZGlnaVs9eF0gICBlbmFibGUgYnVpbGRpbmcgQVJUUyBESUdJIGRyaXZlciBbZGVmYXVsdD15
ZXNdXSwKdGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2FydHNk
aWdpPXllcywKYWxsZWdyb19lbmFibGVfYXJ0c2RpZ2k9eWVzKQoKaWYgdGVzdCAtbiAiJGFsbGVn
cm9fZW5hYmxlX2FydHNkaWdpIjsgdGhlbgogIEFDX1BBVEhfUFJPRyhBUlRTQ19DT05GSUcsIGFy
dHNjLWNvbmZpZykKICBpZiB0ZXN0IC1uICIkQVJUU0NfQ09ORklHIjsgdGhlbgogICAgQUxMRUdS
T19PTERfTElCUz0iJExJQlMiCiAgICBBTExFR1JPX09MRF9DRkxBR1M9IiRDRkxBR1MiCiAgICBM
SUJTPSJgJEFSVFNDX0NPTkZJRyAtLWxpYnNgICRMSUJTIgogICAgQ0ZMQUdTPSJgJEFSVFNDX0NP
TkZJRyAtLWNmbGFnc2AgJENGTEFHUyIKICAgIEFDX01TR19DSEVDS0lORyhmb3IgYXJ0c19pbml0
KQogICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxhcnRzYy5oPl0sCiAgICAgIFthcnRzX2luaXQo
KTtdLAogICAgICBbYWxsZWdyb19zdXBwb3J0X2FydHNkaWdpPXllcwogICAgICAgaWYgdGVzdCAt
biAiJGFsbGVncm9fc3VwcG9ydF9tb2R1bGVzIjsgdGhlbgogICAgICAgICBMSUJTPSIkQUxMRUdS
T19PTERfTElCUyIKICAgICAgIGZpXSwKICAgICAgW0NGTEFHUz0iJEFMTEVHUk9fT0xEX0NGTEFH
UyIKICAgICAgIExJQlM9IiRBTExFR1JPX09MRF9MSUJTIl0pCiAgICBpZiB0ZXN0IC1uICIkYWxs
ZWdyb19zdXBwb3J0X2FydHNkaWdpIjsgdGhlbgogICAgICBBQ19NU0dfUkVTVUxUKHllcykKICAg
IGVsc2UKICAgICAgQUNfTVNHX1JFU1VMVChubykKICAgIGZpCiAgZmkKZmldKQoKZG5sCmRubCBU
ZXN0IGZvciBTR0kgQUwgRElHSSBkcml2ZXIuCmRubApkbmwgVmFyaWFibGVzOgpkbmwgIGFsbGVn
cm9fZW5hYmxlX3NnaWFsZGlnaT0oeWVzfCkKZG5sICBhbGxlZ3JvX2N2X3N1cHBvcnRfc2dpYWxk
aWdpPSh5ZXN8KQpkbmwKQUNfREVGVU4oQUxMRUdST19BQ1RFU1RfU0dJQUxESUdJLApbQUNfQVJH
X0VOQUJMRShzZ2lhbGRpZ2ksClsgIC0tZW5hYmxlLXNnaWFsZGlnaVs9eF0gIGVuYWJsZSBidWls
ZGluZyBTR0kgQUwgRElHSSBkcml2ZXIgW2RlZmF1bHQ9eWVzXV0sCnRlc3QgIlgkZW5hYmxldmFs
IiAhPSAiWG5vIiAmJiBhbGxlZ3JvX2VuYWJsZV9zZ2lhbGRpZ2k9eWVzLAphbGxlZ3JvX2VuYWJs
ZV9zZ2lhbGRpZ2k9eWVzKQogCmlmIHRlc3QgLW4gIiRhbGxlZ3JvX2VuYWJsZV9zZ2lhbGRpZ2ki
OyB0aGVuCiAgQUNfQ0hFQ0tfTElCKGF1ZGlvLCBhbE9wZW5Qb3J0LAogIGFsbGVncm9fY3Zfc3Vw
cG9ydF9zZ2lhbGRpZ2k9eWVzKQogIGlmIHRlc3QgLW4gIiRhbGxlZ3JvX2N2X3N1cHBvcnRfc2dp
YWxkaWdpIiAmJiAKICAgICB0ZXN0IC16ICIkYWxsZWdyb19zdXBwb3J0X21vZHVsZXMiOyB0aGVu
CiAgICBMSUJTPSItbGF1ZGlvICRMSUJTIgogIGZpCmZpXSkKCmRubApkbmwgVGVzdCBmb3IgSkFD
SyBkcml2ZXIuCmRubApkbmwgVmFyaWFibGVzOgpkbmwgIGFsbGVncm9fZW5hYmxlX3NnaWFsZGln
aT0oeWVzfCkKZG5sICBhbGxlZ3JvX2N2X3N1cHBvcnRfamFja2RpZ2k9KHllc3wpCmRubApBQ19E
RUZVTihBTExFR1JPX0FDVEVTVF9KQUNLLApbQUNfQVJHX0VOQUJMRShqYWNrZGlnaSwKWyAgLS1l
bmFibGUtamFja2RpZ2lbPXhdICAgIGVuYWJsZSBidWlsZGluZyBKQUNLIERJR0kgZHJpdmVyIFtk
ZWZhdWx0PXllc11dLAp0ZXN0ICJYJGVuYWJsZXZhbCIgIT0gIlhubyIgJiYgYWxsZWdyb19lbmFi
bGVfamFja2RpZ2k9eWVzLAphbGxlZ3JvX2VuYWJsZV9qYWNrZGlnaT15ZXMpCgppZiB0ZXN0IC1u
ICIkYWxsZWdyb19lbmFibGVfamFja2RpZ2kiOyB0aGVuCiAgQUNfUEFUSF9QUk9HKFBLR19DT05G
SUcsIHBrZy1jb25maWcpCiAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCiAgICBBTExF
R1JPX09MRF9MSUJTPSIkTElCUyIKICAgIEFMTEVHUk9fT0xEX0NGTEFHUz0iJENGTEFHUyIKICAg
IExJQlM9ImAkUEtHX0NPTkZJRyAtLWxpYnMgamFja2AgJExJQlMiCiAgICBDRkxBR1M9ImAkUEtH
X0NPTkZJRyAtLWNmbGFncyBqYWNrYCAkQ0ZMQUdTIgogICAgQUNfTVNHX0NIRUNLSU5HKGZvciBq
YWNrX2NsaWVudF9uZXcpCiAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPGphY2svamFjay5oPl0s
CiAgICAgIFtqYWNrX2NsaWVudF9uZXcoMCk7XSwKICAgICAgW2FsbGVncm9fY3Zfc3VwcG9ydF9q
YWNrZGlnaT15ZXMKICAgICAgIGlmIHRlc3QgLW4gIiRhbGxlZ3JvX3N1cHBvcnRfbW9kdWxlcyI7
IHRoZW4KICAgICAgICAgTElCUz0iJEFMTEVHUk9fT0xEX0xJQlMiCiAgICAgICBmaV0sCiAgICAg
IFtDRkxBR1M9IiRBTExFR1JPX09MRF9DRkxBR1MiCiAgICAgICBMSUJTPSIkQUxMRUdST19PTERf
TElCUyJdKQogICAgaWYgdGVzdCAtbiAiJGFsbGVncm9fY3Zfc3VwcG9ydF9qYWNrZGlnaSI7IHRo
ZW4KICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCiAgICBlbHNlCiAgICAgIEFDX01TR19SRVNVTFQo
bm8pCiAgICBmaQogIGZpCmZpXSkKCmRubApkbmwgVGVzdCB0aGF0IE1BUF9GQUlMRUQgaXMgZGVm
aW5lZCBpbiBzeXN0ZW0gaGVhZGVycy4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19j
dl9oYXZlX21hcF9mYWlsZWQgPSAoeWVzfG5vKQpkbmwKQUNfREVGVU4oQUxMRUdST19BQ1RFU1Rf
TUFQX0ZBSUxFRCwKW0FDX01TR19DSEVDS0lORyhmb3IgTUFQX0ZBSUxFRCkKQUNfQ0FDSEVfVkFM
KGFsbGVncm9fY3ZfaGF2ZV9tYXBfZmFpbGVkLApbQUNfVFJZX0NPTVBJTEUoWyNpbmNsdWRlIDx1
bmlzdGQuaD4KI2luY2x1ZGUgPHN5cy9tbWFuLmg+XSwKW2ludCB0ZXN0X21tYXBfZmFpbGVkICh2
b2lkICphZGRyKSB7IHJldHVybiAoYWRkciA9PSBNQVBfRkFJTEVEKTsgfV0sCmFsbGVncm9fY3Zf
aGF2ZV9tYXBfZmFpbGVkPXllcywKYWxsZWdyb19jdl9oYXZlX21hcF9mYWlsZWQ9bm8pXSkKQUNf
TVNHX1JFU1VMVCgkYWxsZWdyb19jdl9oYXZlX21hcF9mYWlsZWQpXSkKCmRubApkbmwgVGVzdCB0
aGF0IHRoZSBQT1NJWCB0aHJlYWRzIGxpYnJhcnkgaXMgcHJlc2VudC4KZG5sCmRubCBWYXJpYWJs
ZXM6CmRubCAgYWxsZWdyb19jdl9zdXBwb3J0X3B0aHJlYWRzID0gKHllc3wpCmRubApkbmwgTElC
UyBjYW4gYmUgbW9kaWZpZWQuCmRubApBQ19ERUZVTihBTExFR1JPX0FDVEVTVF9QVEhSRUFEUywK
W0FDX0NIRUNLX0hFQURFUihwdGhyZWFkLmgsCkFDX0NIRUNLX0xJQihwdGhyZWFkLCBwdGhyZWFk
X2NyZWF0ZSwKTElCUz0iLWxwdGhyZWFkICRMSUJTIgphbGxlZ3JvX2N2X3N1cHBvcnRfcHRocmVh
ZHM9eWVzKSldKQoKZG5sCmRubCBUZXN0IGZvciBzY2hlZF95aWVsZCAoU3VuT1MpLgpkbmwKZG5s
IFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX2N2X3N1cHBvcnRfc2NoZWRfeWllbGQ9KHllc3wpCmRu
bApkbmwgTElCUyBjYW4gYmUgbW9kaWZpZWQuCmRubApBQ19ERUZVTihBTExFR1JPX0FDVEVTVF9T
Q0hFRF9ZSUVMRCwKW0FDX0NIRUNLX0xJQihjLCBzY2hlZF95aWVsZCwKYWxsZWdyb19jdl9zdXBw
b3J0X3NjaGVkX3lpZWxkPXllcywKQUNfU0VBUkNIX0xJQlMoc2NoZWRfeWllbGQsIHBvc2l4NCBy
dCwKYWxsZWdyb19jdl9zdXBwb3J0X3NjaGVkX3lpZWxkPXllcykpXSkKCmRubApkbmwgVGVzdCBm
b3IgY29uc3RydWN0b3IgYXR0cmlidXRlIHN1cHBvcnQuCmRubApkbmwgVmFyaWFibGVzOgpkbmwg
IGFsbGVncm9fc3VwcG9ydF9jb25zdHJ1Y3Rvcj0oeWVzfG5vKQpkbmwKQUNfREVGVU4oQUxMRUdS
T19BQ1RFU1RfQ09OU1RSVUNUT1IsCltBQ19NU0dfQ0hFQ0tJTkcoZm9yIGNvbnN0cnVjdG9yIGF0
dHJpYnV0ZSkKQUNfQVJHX0VOQUJMRShjb25zdHJ1Y3RvciwKWyAgLS1lbmFibGUtY29uc3RydWN0
b3JbPXhdZW5hYmxlIHRoZSB1c2Ugb2YgY29uc3RydWN0b3IgYXR0ciBbZGVmYXVsdD15ZXNdXSwK
dGVzdCAiWCRlbmFibGV2YWwiICE9ICJYbm8iICYmIGFsbGVncm9fZW5hYmxlX2NvbnN0cnVjdG9y
PXllcywKYWxsZWdyb19lbmFibGVfY29uc3RydWN0b3I9eWVzKQoKaWYgdGVzdCAtbiAiJGFsbGVn
cm9fZW5hYmxlX2NvbnN0cnVjdG9yIjsgdGhlbgogIEFDX1RSWV9SVU4oW3N0YXRpYyBpbnQgbm90
c3VwcG9ydGVkID0gMTsKICAgIHZvaWQgdGVzdF9jdG9yICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgo
Y29uc3RydWN0b3IpKTsKICAgIHZvaWQgdGVzdF9jdG9yICh2b2lkKSB7IG5vdHN1cHBvcnRlZCA9
IDA7IH0KICAgIGludCBtYWluICh2b2lkKSB7IHJldHVybiAobm90c3VwcG9ydGVkKTsgfV0sCiAg
YWxsZWdyb19zdXBwb3J0X2NvbnN0cnVjdG9yPXllcywKICBhbGxlZ3JvX3N1cHBvcnRfY29uc3Ry
dWN0b3I9bm8sCiAgYWxsZWdyb19zdXBwb3J0X2NvbnN0cnVjdG9yPXllcykKZWxzZQogIGFsbGVn
cm9fc3VwcG9ydF9jb25zdHJ1Y3Rvcj1ubwpmaQoKQUNfTVNHX1JFU1VMVCgkYWxsZWdyb19zdXBw
b3J0X2NvbnN0cnVjdG9yKV0pCgpkbmwKZG5sIFRlc3QgZm9yIGJ1Z2d5IElSSVggbGlua2VyLgpk
bmwKZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX2N2X3Byb2dfbGRfcz0oeWVzfG5vKQpkbmwK
QUNfREVGVU4oQUxMRUdST19BQ1RFU1RfUFJPR19MRF9TLApbQUNfTVNHX0NIRUNLSU5HKHdoZXRo
ZXIgbGlua2VyIHdvcmtzIHdpdGggLXMgb3B0aW9uKQphbGxlZ3JvX3NhdmVfTERGTEFHUz0kTERG
TEFHUwpMREZMQUdTPSItcyAkTERGTEFHUyIKQUNfQ0FDSEVfVkFMKGFsbGVncm9fY3ZfcHJvZ19s
ZF9zLCBbCkFDX1RSWV9MSU5LKCx7fSxhbGxlZ3JvX2N2X3Byb2dfbGRfcz15ZXMsIGFsbGVncm9f
Y3ZfcHJvZ19sZF9zPW5vKV0pCkxERkxBR1M9JGFsbGVncm9fc2F2ZV9MREZMQUdTCkFDX01TR19S
RVNVTFQoJGFsbGVncm9fY3ZfcHJvZ19sZF9zKQpdKQoKZG5sCmRubCBUZXN0IGZvciBidWdneSBn
Y2MgdmVyc2lvbi4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19jdl9zdXBwb3J0X2Zv
bWl0X2ZyYW1lX3BvaW50ZXI9KHllc3xubykKZG5sCkFDX0RFRlVOKEFMTEVHUk9fQUNURVNUX0dD
Q19WRVJTSU9OLApbQUNfTVNHX0NIRUNLSU5HKHdoZXRoZXIgLWZvbWl0LWZyYW1lLXBvaW50ZXIg
aXMgc2FmZSkKQUNfQ0FDSEVfVkFMKGFsbGVncm9fY3Zfc3VwcG9ydF9mb21pdF9mcmFtZV9wb2lu
dGVyLApbaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgJENDIC0tdmVyc2lvbiB8IGdyZXAgJzNcLjBc
KFwuXD9bWzAxMl1dXClcPyQnID4vZGV2L251bGw7IHRoZW4KICBhbGxlZ3JvX2N2X3N1cHBvcnRf
Zm9taXRfZnJhbWVfcG9pbnRlcj1ubwplbHNlCiAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K
ICAgIGFsbGVncm9fY3Zfc3VwcG9ydF9mb21pdF9mcmFtZV9wb2ludGVyPXllcwogIGVsc2UKICAg
IGFsbGVncm9fY3Zfc3VwcG9ydF9mb21pdF9mcmFtZV9wb2ludGVyPW5vCiAgZmkKZmkKXSkKQUNf
TVNHX1JFU1VMVCgkYWxsZWdyb19jdl9zdXBwb3J0X2ZvbWl0X2ZyYW1lX3BvaW50ZXIpXSkKCmRu
bApkbmwgVGVzdCBmb3IgaW5jbHVkZSBwYXRoIGNvbmZsaWN0IHdpdGggZ2NjIDMuMSBvciBsYXRl
ci4KZG5sCmRubCBWYXJpYWJsZXM6CmRubCAgYWxsZWdyb19jdl9zdXBwb3J0X2luY2x1ZGVfcHJl
Zml4PSh5ZXN8bm8pCmRubApBQ19ERUZVTihBTExFR1JPX0FDVEVTVF9HQ0NfSU5DTFVERV9QUkVG
SVgsCltBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciBhbiBpbmNsdWRlIHByZWZpeCBpcyBuZWVkZWQp
CmFsbGVncm9fc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCkNGTEFHUz0iLVdlcnJvciAtSSRwcmVmaXgv
aW5jbHVkZSAkQ0ZMQUdTIgpBQ19DQUNIRV9WQUwoYWxsZWdyb19jdl9zdXBwb3J0X2luY2x1ZGVf
cHJlZml4LApbaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgQUNfVFJZX0NPTVBJTEUoLGlu
dCBmb28oKXtyZXR1cm4gMDt9LCBhbGxlZ3JvX2N2X3N1cHBvcnRfaW5jbHVkZV9wcmVmaXg9eWVz
LCBhbGxlZ3JvX2N2X3N1cHBvcnRfaW5jbHVkZV9wcmVmaXg9bm8pCmVsc2UKICAgYWxsZWdyb19j
dl9zdXBwb3J0X2luY2x1ZGVfcHJlZml4PXllcwpmaQpdKQpDRkxBR1M9IiRhbGxlZ3JvX3NhdmVf
Q0ZMQUdTIgpBQ19NU0dfUkVTVUxUKCRhbGxlZ3JvX2N2X3N1cHBvcnRfaW5jbHVkZV9wcmVmaXgp
XSkKCmRubApkbmwgVGVzdCBmb3IgdGhlIHByZXNlbmNlIG9mIGEgQysrIGNvbXBpbGVyLgpkbmwK
ZG5sIFZhcmlhYmxlczoKZG5sICBhbGxlZ3JvX2N2X3N1cHBvcnRfY3BsdXNwbHVzPSh5ZXN8bm8p
CmRubApBQ19ERUZVTihBTExFR1JPX0FDVEVTVF9HQ0NfQ1hYLApbQUNfTVNHX0NIRUNLSU5HKHdo
ZXRoZXIgYSBDKysgY29tcGlsZXIgaXMgaW5zdGFsbGVkKQpBQ19DQUNIRV9WQUwoYWxsZWdyb19j
dl9zdXBwb3J0X2NwbHVzcGx1cywKW2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgIGFsbGVn
cm9fc2F2ZV9DRkxBR1M9JENGTEFHUwogICBDRkxBR1M9Ii14IGMrKyIKICAgQUNfVFJZX0NPTVBJ
TEUoLGNsYXNzIGZvbyB7Zm9vKCkge319OywgYWxsZWdyb19jdl9zdXBwb3J0X2NwbHVzcGx1cz15
ZXMsIGFsbGVncm9fY3Zfc3VwcG9ydF9jcGx1c3BsdXM9bm8pCiAgIENGTEFHUz0kYWxsZWdyb19z
YXZlX0NGTEFHUwplbHNlCiAgIGFsbGVncm9fY3Zfc3VwcG9ydF9jcGx1c3BsdXM9bm8KZmkKXSkK
QUNfTVNHX1JFU1VMVCgkYWxsZWdyb19jdl9zdXBwb3J0X2NwbHVzcGx1cyldKQoKZG5sCmRubCBU
ZXN0IGZvciB3b3JraW5nICctbXR1bmUnIGkzODYgY29tcGlsZSBvcHRpb24uCmRubApkbmwgVmFy
aWFibGVzOgpkbmwgIGFsbGVncm9fY3Zfc3VwcG9ydF9pMzg2X210dW5lPSh5ZXN8bm8pCmRubApB
Q19ERUZVTihBTExFR1JPX0FDVEVTVF9HQ0NfSTM4Nl9NVFVORSwKW0FDX01TR19DSEVDS0lORyh3
aGV0aGVyIC1tdHVuZSBpcyBzdXBwb3J0ZWQpCmFsbGVncm9fc2F2ZV9DRkxBR1M9IiRDRkxBR1Mi
CkNGTEFHUz0iLW10dW5lPWkzODYiCkFDX0NBQ0hFX1ZBTChhbGxlZ3JvX2N2X3N1cHBvcnRfaTM4
Nl9tdHVuZSwKW2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgIEFDX1RSWV9DT01QSUxFKCxp
bnQgZm9vKCl7cmV0dXJuIDA7fSwgYWxsZWdyb19jdl9zdXBwb3J0X2kzODZfbXR1bmU9eWVzLCBh
bGxlZ3JvX2N2X3N1cHBvcnRfaTM4Nl9tdHVuZT1ubykKZWxzZQogICBhbGxlZ3JvX2N2X3N1cHBv
cnRfaTM4Nl9tdHVuZT1ubwpmaQpdKQpDRkxBR1M9IiRhbGxlZ3JvX3NhdmVfQ0ZMQUdTIgpBQ19N
U0dfUkVTVUxUKCRhbGxlZ3JvX2N2X3N1cHBvcnRfaTM4Nl9tdHVuZSldKQoKZG5sCmRubCBUZXN0
IGZvciB3b3JraW5nICctbXR1bmUnIGFtZDY0IGNvbXBpbGUgb3B0aW9uLgpkbmwKZG5sIFZhcmlh
YmxlczoKZG5sICBhbGxlZ3JvX2N2X3N1cHBvcnRfYW1kNjRfbXR1bmU9KHllc3xubykKZG5sCkFD
X0RFRlVOKEFMTEVHUk9fQUNURVNUX0dDQ19BTUQ2NF9NVFVORSwKW0FDX01TR19DSEVDS0lORyh3
aGV0aGVyIC1tdHVuZSBpcyBzdXBwb3J0ZWQpCmFsbGVncm9fc2F2ZV9DRkxBR1M9IiRDRkxBR1Mi
CkNGTEFHUz0iLW10dW5lPWs4IgpBQ19DQUNIRV9WQUwoYWxsZWdyb19jdl9zdXBwb3J0X2FtZDY0
X210dW5lLApbaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgQUNfVFJZX0NPTVBJTEUoLGlu
dCBmb28oKXtyZXR1cm4gMDt9LCBhbGxlZ3JvX2N2X3N1cHBvcnRfYW1kNjRfbXR1bmU9eWVzLCBh
bGxlZ3JvX2N2X3N1cHBvcnRfYW1kNjRfbXR1bmU9bm8pCmVsc2UKICAgYWxsZWdyb19jdl9zdXBw
b3J0X2FtZDY0X210dW5lPW5vCmZpCl0pCkNGTEFHUz0iJGFsbGVncm9fc2F2ZV9DRkxBR1MiCkFD
X01TR19SRVNVTFQoJGFsbGVncm9fY3Zfc3VwcG9ydF9hbWQ2NF9tdHVuZSldKQoKZG5sIHZpbTog
c2V0IHN0cz0yIHN3PTIgZXQ6Cg==
</data>        

          </attachment>
    </bug>

</bugzilla>