<?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>215820</bug_id>
          
          <creation_ts>2008-04-02 07:06 0000</creation_ts>
          <short_desc>appling the chroot patch to openssh-4.9_p1 fails</short_desc>
          <delta_ts>2009-02-08 23:10:27 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>Applications</component>
          <version>unspecified</version>
          <rep_platform>AMD64</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>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>gentoo@cybertinus.nl</reporter>
          <assigned_to>base-system@gentoo.org</assigned_to>
          <cc>caratorn@gmail.com</cc>
    
    <cc>che@chrekh.se</cc>
    
    <cc>dkarasik@gmail.com</cc>
    
    <cc>Ristioja@gmail.com</cc>
    
    <cc>sandro.bonazzola@gmail.com</cc>
    
    <cc>sergey.dryabzhinsky@gmail.com</cc>
    
    <cc>vugluskr@vugluskr.org.ua</cc>
    
    <cc>zeekec@mad.scientist.com</cc>

      

      
          <long_desc isprivate="0">
            <who>gentoo@cybertinus.nl</who>
            <bug_when>2008-04-02 07:06:26 0000</bug_when>
            <thetext>When I try to upgrade OpenSSH to version 4.9_p1 the emerge process failes, when it tries to apply the chroot patch to it.

Reproducible: Always

Steps to Reproduce:
1. allow to install the ~amd64 version
2. run the command &apos;emerge openssh&apos;

Actual Results:  
It fails with the message that applying the patch has failed.

Expected Results:  
The patch should be applied and OpenSSH should be updated to version 4.9_p1.

# emerge --info
Portage 2.1.4.4 (default-linux/amd64/2007.0/desktop, gcc-4.2.3, glibc-2.7-r2, 2.6.24-gentoo-r2 x86_64)
=================================================================
System uname: 2.6.24-gentoo-r2 x86_64 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
Timestamp of tree: Wed, 02 Apr 2008 06:30:01 +0000
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.5
dev-lang/python:     2.5.1-r5
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 1.12.12
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
sys-devel/binutils:  2.18.50.0.5
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.2
virtual/os-headers:  2.6.24
ACCEPT_KEYWORDS=&quot;amd64 ~amd64&quot;
CBUILD=&quot;x86_64-pc-linux-gnu&quot;
CFLAGS=&quot;-O2 -pipe -march=nocona&quot;
CHOST=&quot;x86_64-pc-linux-gnu&quot;
CONFIG_PROTECT=&quot;/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb&quot;
CONFIG_PROTECT_MASK=&quot;/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d&quot;
CXXFLAGS=&quot;-O2 -pipe -march=nocona&quot;
DISTDIR=&quot;/usr/portage/distfiles&quot;
FEATURES=&quot;ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch&quot;
GENTOO_MIRRORS=&quot;http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo&quot;
LINGUAS=&quot;en en_GB en_US nl&quot;
MAKEOPTS=&quot;-j5&quot;
PKGDIR=&quot;/usr/portage/packages&quot;
PORTAGE_RSYNC_OPTS=&quot;--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages&quot;
PORTAGE_TMPDIR=&quot;/var/tmp&quot;
PORTDIR=&quot;/usr/portage&quot;
PORTDIR_OVERLAY=&quot;/usr/local/layman/php-testing /usr/local/layman/berkano /usr/local/layman/php-experimental /root/overlay&quot;
SYNC=&quot;rsync://rsync.gentoo.org/gentoo-portage&quot;
USE=&quot;X aac acl alsa amd64 apache2 bash-completion berkdb cairo cdr cli cracklib crypt cups dbus dga doc dri dvd dvdr dvdread emboss encode evo fam firefox fortran gdbm gif glitz gpm gstreamer hal iconv ipv6 isdnlog jpeg kde kipi mad midi mikmod mmx mmxext mp2 mp3 mpeg mudflap mysql ncurses nls nptl nptlonly nvidia ogg opengl openmp oss pam pcre pdf perl png postgres pppd python qt qt3 qt3support qt4 quicktime readline reflection sdl server session spell spl sqlite sse sse2 sse3 ssl ssse3 svg tcpd threads tiff tk truetype unicode vim-syntax vorbis x264 xinerama xml xorg xv zlib&quot; ALSA_CARDS=&quot;ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci&quot; ALSA_PCM_PLUGINS=&quot;adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol&quot; APACHE2_MODULES=&quot;actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias&quot; ELIBC=&quot;glibc&quot; INPUT_DEVICES=&quot;keyboard mouse evdev&quot; KERNEL=&quot;linux&quot; LCD_DEVICES=&quot;bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text&quot; LINGUAS=&quot;en en_GB en_US nl&quot; USERLAND=&quot;GNU&quot; VIDEO_CARDS=&quot;(-apm) (-ark) (-chips) (-cirrus) (-cyrix) (-dummy) (-fbdev) (-glint) (-i128) (-i810) (-mga) (-neomagic) nv (-rendition) (-s3) (-s3virge) (-savage) (-siliconmotion) (-sis) (-sisusb) (-tdfx) (-tga) (-trident) (-tseng) (-v4l) vesa vga (-via) vmware (-voodoo) (-epson) (-fglrx) (-i740) (-impact) (-imstt) (-mach64) (-mga) (-newport) (-nsc) nvidia (-r128) (-radeon) (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx)&quot;
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


I don&apos;t file a bugreport very often, so if you need any more information, please tell me, so I can supply it.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo@cybertinus.nl</who>
            <bug_when>2008-04-02 07:08:23 0000</bug_when>
            <thetext>Created an attachment (id=148055)
The error said to include this file in the bugreport, so here it is :)

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo@cybertinus.nl</who>
            <bug_when>2008-04-02 07:09:51 0000</bug_when>
            <thetext>Created an attachment (id=148056)
This is the build log

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo@cybertinus.nl</who>
            <bug_when>2008-04-02 07:10:20 0000</bug_when>
            <thetext>Created an attachment (id=148058)
The ebuild environment file

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>yngwin@gentoo.org</who>
            <bug_when>2008-04-02 15:43:17 0000</bug_when>
            <thetext>*** Bug 215900 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caratorn@gmail.com</who>
            <bug_when>2008-04-02 16:37:02 0000</bug_when>
            <thetext>Same bug on ~x86 arch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caratorn@gmail.com</who>
            <bug_when>2008-04-02 17:02:00 0000</bug_when>
            <thetext>As said Sergey Dryabzhinsky in Bug 215900, the patch doesn&apos;t seem to be needed any more, as chroot support as been added upstream.
Maybe we should drop the chroot USE flag in this case.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>Ristioja@gmail.com</who>
            <bug_when>2008-04-02 18:52:13 0000</bug_when>
            <thetext>Therefore the chroot USE-flag should be removed from the ebuild.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2008-04-02 21:01:17 0000</bug_when>
            <thetext>USE=chroot dropped</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vugluskr@vugluskr.org.ua</who>
            <bug_when>2009-02-08 23:10:27 0000</bug_when>
            <thetext>Very bad...

Internal ChrootDirectory have less abilities in compare to the chroot patch. Wth patch I can set chroot path individually for each user and assign them to predefined sandboxes. With internal chroot support I can&apos;t do that.

sadly...</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>148055</attachid>
            <date>2008-04-02 07:08 0000</date>
            <desc>The error said to include this file in the bugreport, so here it is :). It&apos;s the .out file.</desc>
            <filename>openssh-4.3_p1-chroot.patch-31194.out</filename>
            <type>text/plain</type>
            <data encoding="base64">KioqKiogb3BlbnNzaC00LjNfcDEtY2hyb290LnBhdGNoICoqKioqCgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KClBBVENIIENPTU1BTkQ6CSBwYXRjaCAtcDAgLWcwIC1F
IC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIDwgL3Vzci9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gv
ZmlsZXMvb3BlbnNzaC00LjNfcDEtY2hyb290LnBhdGNoCgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KY2FuJ3QgZmluZCBmaWxlIHRvIHBhdGNoIGF0IGlucHV0IGxpbmUg
NQpQZXJoYXBzIHlvdSB1c2VkIHRoZSB3cm9uZyAtcCBvciAtLXN0cmlwIG9wdGlvbj8KVGhlIHRl
eHQgbGVhZGluZyB1cCB0byB0aGlzIHdhczoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0
dHA6Ly9jaHJvb3Rzc2guc291cmNlZm9yZ2UubmV0Lwp8CnwtLS0gb3BlbnNzaC00LjNwMS9zZXNz
aW9uLmMKfCsrKyBvcGVuc3NoLTQuM3AxL3Nlc3Npb24uYwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpObyBmaWxlIHRvIHBhdGNoLiAgU2tpcHBpbmcgcGF0Y2guCjMgb3V0IG9mIDMgaHVua3Mg
aWdub3JlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClBBVENIIENP
TU1BTkQ6CSBwYXRjaCAtcDEgLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIDwgL3Vzci9w
b3J0YWdlL25ldC1taXNjL29wZW5zc2gvZmlsZXMvb3BlbnNzaC00LjNfcDEtY2hyb290LnBhdGNo
Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KcGF0Y2hpbmcgZmlsZSBz
ZXNzaW9uLmMKSHVuayAjMSBzdWNjZWVkZWQgYXQgOTAgd2l0aCBmdXp6IDIgKG9mZnNldCAzMSBs
aW5lcykuCkh1bmsgIzIgRkFJTEVEIGF0IDEyODQuCkh1bmsgIzMgRkFJTEVEIGF0IDEzNDYuCjIg
b3V0IG9mIDMgaHVua3MgRkFJTEVEIC0tIHNhdmluZyByZWplY3RzIHRvIGZpbGUgc2Vzc2lvbi5j
LnJlago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClBBVENIIENPTU1B
TkQ6CSBwYXRjaCAtcDIgLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIDwgL3Vzci9wb3J0
YWdlL25ldC1taXNjL29wZW5zc2gvZmlsZXMvb3BlbnNzaC00LjNfcDEtY2hyb290LnBhdGNoCgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KbWlzc2luZyBoZWFkZXIgZm9y
IHVuaWZpZWQgZGlmZiBhdCBsaW5lIDUgb2YgcGF0Y2gKY2FuJ3QgZmluZCBmaWxlIHRvIHBhdGNo
IGF0IGlucHV0IGxpbmUgNQpQZXJoYXBzIHlvdSB1c2VkIHRoZSB3cm9uZyAtcCBvciAtLXN0cmlw
IG9wdGlvbj8KVGhlIHRleHQgbGVhZGluZyB1cCB0byB0aGlzIHdhczoKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KfGh0dHA6Ly9jaHJvb3Rzc2guc291cmNlZm9yZ2UubmV0Lwp8CnwtLS0gb3Bl
bnNzaC00LjNwMS9zZXNzaW9uLmMKfCsrKyBvcGVuc3NoLTQuM3AxL3Nlc3Npb24uYwotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpObyBmaWxlIHRvIHBhdGNoLiAgU2tpcHBpbmcgcGF0Y2guCjMg
b3V0IG9mIDMgaHVua3MgaWdub3JlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KClBBVENIIENPTU1BTkQ6CSBwYXRjaCAtcDMgLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1p
c21hdGNoIDwgL3Vzci9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gvZmlsZXMvb3BlbnNzaC00LjNf
cDEtY2hyb290LnBhdGNoCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
bWlzc2luZyBoZWFkZXIgZm9yIHVuaWZpZWQgZGlmZiBhdCBsaW5lIDUgb2YgcGF0Y2gKY2FuJ3Qg
ZmluZCBmaWxlIHRvIHBhdGNoIGF0IGlucHV0IGxpbmUgNQpQZXJoYXBzIHlvdSB1c2VkIHRoZSB3
cm9uZyAtcCBvciAtLXN0cmlwIG9wdGlvbj8KVGhlIHRleHQgbGVhZGluZyB1cCB0byB0aGlzIHdh
czoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9jaHJvb3Rzc2guc291cmNlZm9y
Z2UubmV0Lwp8CnwtLS0gb3BlbnNzaC00LjNwMS9zZXNzaW9uLmMKfCsrKyBvcGVuc3NoLTQuM3Ax
L3Nlc3Npb24uYwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpObyBmaWxlIHRvIHBhdGNoLiAg
U2tpcHBpbmcgcGF0Y2guCjMgb3V0IG9mIDMgaHVua3MgaWdub3JlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KClBBVENIIENPTU1BTkQ6CSBwYXRjaCAtcDQgLWcwIC1F
IC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIDwgL3Vzci9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gv
ZmlsZXMvb3BlbnNzaC00LjNfcDEtY2hyb290LnBhdGNoCgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KbWlzc2luZyBoZWFkZXIgZm9yIHVuaWZpZWQgZGlmZiBhdCBsaW5l
IDUgb2YgcGF0Y2gKY2FuJ3QgZmluZCBmaWxlIHRvIHBhdGNoIGF0IGlucHV0IGxpbmUgNQpQZXJo
YXBzIHlvdSB1c2VkIHRoZSB3cm9uZyAtcCBvciAtLXN0cmlwIG9wdGlvbj8KVGhlIHRleHQgbGVh
ZGluZyB1cCB0byB0aGlzIHdhczoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfGh0dHA6Ly9j
aHJvb3Rzc2guc291cmNlZm9yZ2UubmV0Lwp8CnwtLS0gb3BlbnNzaC00LjNwMS9zZXNzaW9uLmMK
fCsrKyBvcGVuc3NoLTQuM3AxL3Nlc3Npb24uYwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpO
byBmaWxlIHRvIHBhdGNoLiAgU2tpcHBpbmcgcGF0Y2guCjMgb3V0IG9mIDMgaHVua3MgaWdub3Jl
ZAo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>148056</attachid>
            <date>2008-04-02 07:09 0000</date>
            <desc>This is the build log</desc>
            <filename>build.log</filename>
            <type>text/plain</type>
            <data encoding="base64">Pj4+IFVucGFja2luZyBzb3VyY2UuLi4KPj4+IFVucGFja2luZyBvcGVuc3NoLTQuOXAxLnRhci5n
eiB0byAvdmFyL3RtcC9wb3J0YWdlL25ldC1taXNjL29wZW5zc2gtNC45X3AxL3dvcmsKIBtbMzI7
MDFtKhtbMG0gQXBwbHlpbmcgb3BlbnNzaC00LjNfcDEtY2hyb290LnBhdGNoIC4uLgoKIBtbMzE7
MDFtKhtbMG0gRmFpbGVkIFBhdGNoOiBvcGVuc3NoLTQuM19wMS1jaHJvb3QucGF0Y2ggIQogG1sz
MTswMW0qG1swbSAgKCAvdXNyL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC9maWxlcy9vcGVuc3No
LTQuM19wMS1jaHJvb3QucGF0Y2ggKQogG1szMTswMW0qG1swbSAKIBtbMzE7MDFtKhtbMG0gSW5j
bHVkZSBpbiB5b3VyIGJ1Z3JlcG9ydCB0aGUgY29udGVudHMgb2Y6CiAbWzMxOzAxbSobWzBtIAog
G1szMTswMW0qG1swbSAgIC92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC00LjlfcDEv
dGVtcC9vcGVuc3NoLTQuM19wMS1jaHJvb3QucGF0Y2gtMzExOTQub3V0CgogG1szMTswMW0qG1sw
bSAKIBtbMzE7MDFtKhtbMG0gRVJST1I6IG5ldC1taXNjL29wZW5zc2gtNC45X3AxIGZhaWxlZC4K
IBtbMzE7MDFtKhtbMG0gQ2FsbCBzdGFjazoKIBtbMzE7MDFtKhtbMG0gICAgICAgICAgICAgICBl
YnVpbGQuc2gsIGxpbmUgICA0OTogIENhbGxlZCBzcmNfdW5wYWNrCiAbWzMxOzAxbSobWzBtICAg
ICAgICAgICAgIGVudmlyb25tZW50LCBsaW5lIDMxODA6ICBDYWxsZWQgZXBhdGNoICdzcmNfdW5w
YWNrJwogG1szMTswMW0qG1swbSAgICAgICAgICAgICBlbnZpcm9ubWVudCwgbGluZSAxNzYwOiAg
Q2FsbGVkIGRpZQogG1szMTswMW0qG1swbSBUaGUgc3BlY2lmaWMgc25pcHBldCBvZiBjb2RlOgog
G1szMTswMW0qG1swbSAgICAgICAgICAgICAgICAgICBkaWUgIkZhaWxlZCBQYXRjaDogJHtwYXRj
aG5hbWV9ISI7CiAbWzMxOzAxbSobWzBtICBUaGUgZGllIG1lc3NhZ2U6CiAbWzMxOzAxbSobWzBt
ICAgRmFpbGVkIFBhdGNoOiBvcGVuc3NoLTQuM19wMS1jaHJvb3QucGF0Y2ghCiAbWzMxOzAxbSob
WzBtIAogG1szMTswMW0qG1swbSBJZiB5b3UgbmVlZCBzdXBwb3J0LCBwb3N0IHRoZSB0b3Btb3N0
IGJ1aWxkIGVycm9yLCBhbmQgdGhlIGNhbGwgc3RhY2sgaWYgcmVsZXZhbnQuCiAbWzMxOzAxbSob
WzBtIEEgY29tcGxldGUgYnVpbGQgbG9nIGlzIGxvY2F0ZWQgYXQgJy92YXIvdG1wL3BvcnRhZ2Uv
bmV0LW1pc2Mvb3BlbnNzaC00LjlfcDEvdGVtcC9idWlsZC5sb2cnLgogG1szMTswMW0qG1swbSBU
aGUgZWJ1aWxkIGVudmlyb25tZW50IGZpbGUgaXMgbG9jYXRlZCBhdCAnL3Zhci90bXAvcG9ydGFn
ZS9uZXQtbWlzYy9vcGVuc3NoLTQuOV9wMS90ZW1wL2Vudmlyb25tZW50Jy4KIBtbMzE7MDFtKhtb
MG0gCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>148058</attachid>
            <date>2008-04-02 07:10 0000</date>
            <desc>The ebuild environment file</desc>
            <filename>environment</filename>
            <type>text/plain</type>
            <data encoding="base64">QUJJPWFtZDY0CkFMU0FfQ0FSRFM9J2FsaTU0NTEgYWxzNDAwMCBhdGlpeHAgYXRpaXhwLW1vZGVt
IGJ0ODd4IGNhMDEwNiBjbWlwY2kgZW11MTBrMXggZW5zMTM3MCBlbnMxMzcxIGVzMTkzOCBlczE5
NjggZm04MDEgaGRhLWludGVsIGludGVsOHgwIGludGVsOHgwbSBtYWVzdHJvMyB0cmlkZW50IHVz
Yi1hdWRpbyB2aWE4Mnh4IHZpYTgyeHgtbW9kZW0geW1mcGNpJwpBTFNBX1BDTV9QTFVHSU5TPSdh
ZHBjbSBhbGF3IGFzeW0gY29weSBkbWl4IGRzaGFyZSBkc25vb3AgZW1wdHkgZXh0cGx1ZyBmaWxl
IGhvb2tzIGllYzk1OCBpb3BsdWcgbGFkc3BhIGxmbG9hdCBsaW5lYXIgbWV0ZXIgbXVsYXcgbXVs
dGkgbnVsbCBwbHVnIHJhdGUgcm91dGUgc2hhcmUgc2htIHNvZnR2b2wnCkFOVF9IT01FPS91c3Iv
c2hhcmUvYW50CkFQQUNIRTJfTU9EVUxFUz0nYWN0aW9ucyBhbGlhcyBhdXRoX2Jhc2ljIGF1dGhf
ZGlnZXN0IGF1dGhuX2Fub24gYXV0aG5fZGJkIGF1dGhuX2RibSBhdXRobl9kZWZhdWx0IGF1dGhu
X2ZpbGUgYXV0aHpfZGJtIGF1dGh6X2RlZmF1bHQgYXV0aHpfZ3JvdXBmaWxlIGF1dGh6X2hvc3Qg
YXV0aHpfb3duZXIgYXV0aHpfdXNlciBhdXRvaW5kZXggY2FjaGUgZGJkIGRlZmxhdGUgZGlyIGRp
c2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0X2ZpbHRlciBmaWxlX2NhY2hlIGZpbHRlciBoZWFkZXJz
IGlkZW50IGltYWdlbWFwIGluY2x1ZGUgaW5mbyBsb2dfY29uZmlnIGxvZ2lvIG1lbV9jYWNoZSBt
aW1lIG1pbWVfbWFnaWMgbmVnb3RpYXRpb24gcHJveHkgcHJveHlfYWpwIHByb3h5X2JhbGFuY2Vy
IHByb3h5X2Nvbm5lY3QgcHJveHlfaHR0cCByZXdyaXRlIHNldGVudmlmIHNvIHNwZWxpbmcgc3Rh
dHVzIHVuaXF1ZV9pZCB1c2VyZGlyIHVzZXJ0cmFjayB2aG9zdF9hbGlhcycKQVJDSD1hbWQ2NApB
U0ZMQUdTX3g4Nj0tLTMyCkFUX0dOVUNPTkZfVVBEQVRFPW5vCkFUX000RElSPQpDQlVJTEQ9eDg2
XzY0LXBjLWxpbnV4LWdudQpDREVGSU5FX2FtZDY0PV9feDg2XzY0X18KQ0RFRklORV9kZWZhdWx0
PV9fdW5peF9fCkNERUZJTkVfeDg2PV9faTM4Nl9fCkNGTEFHUz0nLU8yIC1waXBlIC1tYXJjaD1u
b2NvbmEnCkNGTEFHU19kZWZhdWx0PQpDRkxBR1NfeDg2PSctbTMyIC1ML2VtdWwvbGludXgveDg2
L2xpYiAtTC9lbXVsL2xpbnV4L3g4Ni91c3IvbGliJwpDSE9TVD14ODZfNjQtcGMtbGludXgtZ251
CkNIT1NUX2FtZDY0PXg4Nl82NC1wYy1saW51eC1nbnUKQ0hPU1RfZGVmYXVsdD14ODZfNjQtcGMt
bGludXgtZ251CkNIT1NUX3g4Nj1pNjg2LXBjLWxpbnV4LWdudQpDTEFTU1BBVEg9L3Vzci9zaGFy
ZS9saWJyZWFkbGluZS1qYXZhL2xpYi9saWJyZWFkbGluZS1qYXZhLmphcjovdXNyL3NoYXJlL2Nv
bW1vbnMtY2xpLTEvbGliL2NvbW1vbnMtY2xpLmphcjovdXNyL3NoYXJlL3N3dC0zL2xpYi9zd3Qu
amFyOi91c3Ivc2hhcmUvbG9nNGovbGliL2xvZzRqLmphcjouCkNUQVJHRVRfZGVmYXVsdD14ODZf
NjQtcGMtbGludXgtZ251CkNWU19SU0g9c3NoCkNYWEZMQUdTPSctTzIgLXBpcGUgLW1hcmNoPW5v
Y29uYScKREJVU19TRVNTSU9OX0JVU19BRERSRVNTPXVuaXg6YWJzdHJhY3Q9L3RtcC9kYnVzLVZO
Smc3N0xLYmQsZ3VpZD03ZDJlZTZhOThkZjNhZTk2ODk2MGM1NDQ0N2YzMmJjMApEQ0NDX1BBVEg9
L3Vzci9saWIvZGlzdGNjL2JpbgpERUZBVUxUX0FCST1hbWQ2NApERVBFTkQ9JCdwYW0/ICggdmly
dHVhbC9wYW0gKVxuXHRrZXJiZXJvcz8gKCB2aXJ0dWFsL2tyYjUgKVxuXHRzZWxpbnV4PyAoID49
c3lzLWxpYnMvbGlic2VsaW51eC0xLjI4IClcblx0c2tleT8gKCA+PWFwcC1hZG1pbi9za2V5LTEu
MS41LXIxIClcblx0bGRhcD8gKCBuZXQtbmRzL29wZW5sZGFwIClcblx0bGliZWRpdD8gKCBkZXYt
bGlicy9saWJlZGl0IClcblx0Pj1kZXYtbGlicy9vcGVuc3NsLTAuOS42ZFxuXHQ+PXN5cy1saWJz
L3psaWItMS4yLjNcblx0c21hcnRjYXJkPyAoIGRldi1saWJzL29wZW5zYyApXG5cdHRjcGQ/ICgg
Pj1zeXMtYXBwcy90Y3Atd3JhcHBlcnMtNy42IClcblx0WD8gKCB4MTEtYXBwcy94YXV0aCApXG5c
dHVzZXJsYW5kX0dOVT8gKCBzeXMtYXBwcy9zaGFkb3cgKVxuXHRkZXYtdXRpbC9wa2djb25maWdc
blx0dmlydHVhbC9vcy1oZWFkZXJzXG5cdHN5cy1kZXZlbC9hdXRvY29uZiAgPXN5cy1kZXZlbC9h
dXRvbWFrZS0xLjEwKlxuXHQ+PXN5cy1kZXZlbC9hdXRvY29uZi0yLjYxXG5cdHN5cy1kZXZlbC9s
aWJ0b29sJwpERVNDUklQVElPTj0nUG9ydCBvZiBPcGVuQlNEJ1wnJ3MgZnJlZSBTU0ggcmVsZWFz
ZScKREVTS1RPUF9TRVNTSU9OPWRlZmF1bHQKREVTVFRSRUU9L3VzcgpESVJPUFRJT05TPS1tMDc1
NQpETV9DT05UUk9MPS92YXIvcnVuL3hkbWN0bApFQVBJPQpFTElCQz1nbGliYwpFTElCVE9PTF9W
RVJTSU9OPTIuMC4yCkVMVF9BUFBMSUVEX1BBVENIRVM9CkVMVF9MVE1BSU5fU0g9CkVMVF9QQVRD
SF9ESVI9L3Vzci9wb3J0YWdlL2VjbGFzcy9FTFQtcGF0Y2hlcwpFUEFUQ0hfRVhDTFVERT0KRVBB
VENIX0ZPUkNFPW5vCkVQQVRDSF9NVUxUSV9NU0c9J0FwcGx5aW5nIHZhcmlvdXMgcGF0Y2hlcyAo
YnVnZml4ZXMvdXBkYXRlcykgLi4uJwpFUEFUQ0hfT1BUUz0nLWcwIC1FIC0tbm8tYmFja3VwLWlm
LW1pc21hdGNoJwpFUEFUQ0hfU0lOR0xFX01TRz0KRVBBVENIX1NPVVJDRT0vdmFyL3RtcC9wb3J0
YWdlL25ldC1taXNjL29wZW5zc2gtNC45X3AxL3dvcmsvcGF0Y2gKRVBBVENIX1NVRkZJWD1wYXRj
aC5iejIKRVhFT1BUSU9OUz0tbTA3NTUKRkVBVFVSRVM9J2NjYWNoZSBkaXN0bG9ja3MgbWV0YWRh
dGEtdHJhbnNmZXIgcGFyYWxsZWwtZmV0Y2ggc2FuZGJveCBzZnBlcm1zIHN0cmljdCB1bm1lcmdl
LW9ycGhhbnMgdXNlcmZldGNoJwpHQ0NfU1BFQ1M9CkdES19VU0VfWEZUPTEKR0VORVJBVElPTj0y
CkdTX0xJQj0vaG9tZS90aWpuLy5mb250cwpHVEsyX1JDX0ZJTEVTPS9ldGMvZ3RrLTIuMC9ndGty
YzovaG9tZS90aWpuLy5ndGtyYy0yLjA6L2hvbWUvdGlqbi8ua2RlMy41L3NoYXJlL2NvbmZpZy9n
dGtyYy0yLjAKR1RLX1JDX0ZJTEVTPS9ldGMvZ3RrL2d0a3JjOi9ob21lL3Rpam4vLmd0a3JjOi9o
b21lL3Rpam4vLmtkZTMuNS9zaGFyZS9jb25maWcvZ3RrcmMKSE9NRVBBR0U9aHR0cDovL3d3dy5v
cGVuc3NoLm9yZy8KSU5IRVJJVEVEPSd0b29sY2hhaW4tZnVuY3MgcG9ydGFiaWxpdHkgZmxhZy1v
LW1hdGljIG11bHRpbGliIGxpYnRvb2wgZXV0aWxzIGF1dG90b29scyBwYW0gY2NjJwpJTlBVVF9E
RVZJQ0VTPSdrZXlib2FyZCBtb3VzZSBldmRldicKSU5TREVTVFRSRUU9CklOU09QVElPTlM9LW0w
NjQ0CklVU0U9JyBzdGF0aWMgcGFtIHRjcGQga2VyYmVyb3Mgc2tleSBzZWxpbnV4IGNocm9vdCBY
NTA5IGxkYXAgc21hcnRjYXJkIGhwbiBsaWJlZGl0IFgnCkpBVkFDPS9ldGMvamF2YS1jb25maWct
Mi9jdXJyZW50LXN5c3RlbS12bS9iaW4vamF2YWMKSkFWQV9IT01FPS9ldGMvamF2YS1jb25maWct
Mi9jdXJyZW50LXN5c3RlbS12bQpKREtfSE9NRT0vZXRjL2phdmEtY29uZmlnLTIvY3VycmVudC1z
eXN0ZW0tdm0KS0RFRElSPS91c3Iva2RlLzMuNQpLREVESVJTPS91c3I6L3Vzci9sb2NhbDovdXNy
L2tkZS8zLjUKS0RFX0ZVTExfU0VTU0lPTj10cnVlCktERV9JU19QUkVMSU5LRUQ9MQpLREVfTVVM
VElIRUFEPWZhbHNlCktERV9TRVNTSU9OX1VJRD0xMDAwCktFUk5FTD1saW51eApLRVJORUxfQUJJ
PWFtZDY0CktFWVdPUkRTPSd+YWxwaGEgfmFtZDY0IH5hcm0gfmhwcGEgfmlhNjQgfm02OGsgfm1p
cHMgfnBwYyB+cHBjNjQgfnMzOTAgfnNoIH5zcGFyYyB+c3BhcmMtZmJzZCB+eDg2IH54ODYtZmJz
ZCcKS09OU09MRV9EQ09QPSdEQ09QUmVmKGtvbnNvbGUtNzE2OSxrb25zb2xlKScKS09OU09MRV9E
Q09QX1NFU1NJT049J0RDT1BSZWYoa29uc29sZS03MTY5LHNlc3Npb24tMSknCktWPTIuNi4yNC1n
ZW50b28tcjIKTENEX0RFVklDRVM9J2JheXJhZCBjZm9udHogY2ZvbnR6NjMzIGdsayBoZDQ0Nzgw
IGxiMjE2IGxjZG0wMDEgbXR4b3JiIG5jdXJzZXMgdGV4dCcKTERGTEFHU19kZWZhdWx0PQpMREZM
QUdTX3g4Nj0nLW0gZWxmX2kzODYgLUwvZW11bC9saW51eC94ODYvbGliIC1ML2VtdWwvbGludXgv
eDg2L3Vzci9saWInCkxEUEFUSD0vdXNyL2tkZS8zLjUvbGliOi91c3Iva2RlLzMuNS9saWI2NDov
dXNyL2tkZS8zLjUvbGliMzI6CkxJQkRJUl9hbWQ2ND1saWI2NApMSUJESVJfZGVmYXVsdD1saWIK
TElCRElSX3g4Nj1saWIzMgpMSUJPUFRJT05TPS1tMDY0NApMSUNFTlNFPWFzLWlzCkxJTkdVQVM9
J2VuIGVuX0dCIGVuX1VTIG5sJwpNQUtFT1BUUz0tajUKTVVMVElMSUJfQUJJUz0nYW1kNjQgeDg2
JwpNVUxUSUxJQl9TVFJJQ1RfREVOWT0nNjQtYml0LipzaGFyZWQgb2JqZWN0JwpNVUxUSUxJQl9T
VFJJQ1RfRElSUz0nL2xpYiAvdXNyL2xpYiAvdXNyL2tkZS8qL2xpYiAvdXNyL3F0LyovbGliIC91
c3IvWDExUjYvbGliJwpNVUxUSUxJQl9TVFJJQ1RfRVhFTVBUPScocGVybDV8Z2NjfGdjYy1saWJ8
YmludXRpbHN8ZWNsaXBzZS0zfGRlYnVnfHBvcnRhZ2UpJwpPTU5JT1JCX0NPTkZJRz0vZXRjL29t
bmlvcmIvb21uaU9SQi5jZmcKT1BFTkdMX1BST0ZJTEU9bnZpZGlhClBBUkNIPW9wZW5zc2gtNC45
cDEKUERFUEVORD0nICcKUEtHX0NPTkZJR19QQVRIPS91c3IvcXQvMy9saWI2NC9wa2djb25maWcK
UE9SVEFHRV9OSUNFTkVTUz0xOQpQT1JUQUdFX1RNUEZTPS9kZXYvc2htClBSRUxJTktfUEFUSF9N
QVNLPS9vcHQKUFJPVklERT12aXJ0dWFsL3NzaApQWVRIT05ET0NTPS91c3Ivc2hhcmUvZG9jL3B5
dGhvbi1kb2NzLTIuNS4xL2h0bWwvbGliClBZVEhPTlBBVEg9L3Vzci9saWI2NC9wb3J0YWdlL3B5
bQpRTUFLRVNQRUM9bGludXgtZysrClFURElSPS91c3IvcXQvMwpSREVQRU5EPSQncGFtPyAoIHZp
cnR1YWwvcGFtIClcblx0a2VyYmVyb3M/ICggdmlydHVhbC9rcmI1IClcblx0c2VsaW51eD8gKCA+
PXN5cy1saWJzL2xpYnNlbGludXgtMS4yOCApXG5cdHNrZXk/ICggPj1hcHAtYWRtaW4vc2tleS0x
LjEuNS1yMSApXG5cdGxkYXA/ICggbmV0LW5kcy9vcGVubGRhcCApXG5cdGxpYmVkaXQ/ICggZGV2
LWxpYnMvbGliZWRpdCApXG5cdD49ZGV2LWxpYnMvb3BlbnNzbC0wLjkuNmRcblx0Pj1zeXMtbGli
cy96bGliLTEuMi4zXG5cdHNtYXJ0Y2FyZD8gKCBkZXYtbGlicy9vcGVuc2MgKVxuXHR0Y3BkPyAo
ID49c3lzLWFwcHMvdGNwLXdyYXBwZXJzLTcuNiApXG5cdFg/ICggeDExLWFwcHMveGF1dGggKVxu
XHR1c2VybGFuZF9HTlU/ICggc3lzLWFwcHMvc2hhZG93ICkgICcKUkVTVFJJQ1Q9ClM9L3Zhci90
bXAvcG9ydGFnZS9uZXQtbWlzYy9vcGVuc3NoLTQuOV9wMS93b3JrL29wZW5zc2gtNC45cDEKU0FO
REJPWF9ERU5ZPS9ldGMvbGQuc28ucHJlbG9hZApTQU5EQk9YX1BSRURJQ1Q9Oi9wcm9jL3NlbGYv
bWFwczovZGV2L2NvbnNvbGU6L2Rldi9yYW5kb206L3Vzci9saWI2NC9wb3J0YWdlL3B5bTovdmFy
L2NhY2hlL2VkYi9kZXAKU0FOREJPWF9SRUFEPTovOi9kZXYvc2htOi9kZXYvc3RkaW46L3Zhci90
bXA6L3Zhci90bXAvY2NhY2hlClNBTkRCT1hfV1JJVEU9Oi9kZXYvc2htOi9kZXYvc3Rkb3V0Oi9k
ZXYvc3RkZXJyOi92YXIvdG1wOi92YXIvdG1wL2NjYWNoZQpTRVNTSU9OX01BTkFHRVI9bG9jYWwv
Q1lCRVJUSU5VUzovdG1wLy5JQ0UtdW5peC83MTI5ClNMT1Q9MApTUkNfVVJJPSQnbWlycm9yOi8v
b3BlbmJzZC9PcGVuU1NIL3BvcnRhYmxlL29wZW5zc2gtNC45cDEudGFyLmd6XG5cdGh0dHA6Ly93
d3cuc3h3Lm9yZy51ay9jb21wdXRpbmcvcGF0Y2hlcy9vcGVuc3NoLTQuN3AxLWdzc2tleC0yMDA3
MDkyNy5wYXRjaFxuXHRcblx0XG5cdCcKU1RBR0UxX1VTRT0nbnB0bCBucHRsb25seSB1bmljb2Rl
JwpTWU1MSU5LX0xJQj15ZXMKVVNFPSdYIGFtZDY0IGNocm9vdCBlbGliY19nbGliYyBrZXJuZWxf
bGludXggcGFtIHRjcGQgdXNlcmxhbmRfR05VJwpVU0VSTEFORD1HTlUKVklERU9fQ0FSRFM9Jygt
YXBtKSAoLWFyaykgKC1jaGlwcykgKC1jaXJydXMpICgtY3lyaXgpICgtZHVtbXkpICgtZmJkZXYp
ICgtZ2xpbnQpICgtaTEyOCkgKC1pODEwKSAoLW1nYSkgKC1uZW9tYWdpYykgbnYgKC1yZW5kaXRp
b24pICgtczMpICgtczN2aXJnZSkgKC1zYXZhZ2UpICgtc2lsaWNvbm1vdGlvbikgKC1zaXMpICgt
c2lzdXNiKSAoLXRkZngpICgtdGdhKSAoLXRyaWRlbnQpICgtdHNlbmcpICgtdjRsKSB2ZXNhIHZn
YSAoLXZpYSkgdm13YXJlICgtdm9vZG9vKSAoLWVwc29uKSAoLWZnbHJ4KSAoLWk3NDApICgtaW1w
YWN0KSAoLWltc3R0KSAoLW1hY2g2NCkgKC1tZ2EpICgtbmV3cG9ydCkgKC1uc2MpIG52aWRpYSAo
LXIxMjgpICgtcmFkZW9uKSAoLXN1bmJ3MikgKC1zdW5jZzE0KSAoLXN1bmNnMykgKC1zdW5jZzYp
ICgtc3VuZmZiKSAoLXN1bmxlbykgKC1zdW50Y3gpJwpWTUhBTkRMRT1ibGFja2Rvd24tamRrLTEu
NC4yCldBTlRfQVVUT0NPTkY9Mi41CldBTlRfQVVUT01BS0U9MS4xMApXSU5ET1dJRD0xMDQ4NTc2
NwpYQ1VSU09SX1RIRU1FPWdlbnRvby1ibHVlClhER19DT05GSUdfRElSUz0vdXNyL2tkZS8zLjUv
ZXRjL3hkZwpYREdfREFUQV9ESVJTPS91c3Ivc2hhcmU6L3Vzci9rZGUvMy41L3NoYXJlOi91c3Iv
bG9jYWwvc2hhcmUKWERNX01BTkFHRUQ9L3Zhci9ydW4veGRtY3RsL3hkbWN0bC06MCxtYXlzZCxt
YXlmbixzY2hlZCxyc3ZkLG1ldGhvZD1jbGFzc2ljCl89X1JDX0dFVF9LVl9DQUNIRQpfRV9ET0NE
RVNUVFJFRV89Cl9FX0VYRURFU1RUUkVFXz0KX19fRUNMQVNTX1JFQ1VSX01VTFRJTElCPXllcwpf
X19FQ0xBU1NfUkVDVVJfVE9PTENIQUlOX0ZVTkNTPXllcwpjb25mPW9wZW5zc2gtNC45X3AxLXIw
CkVMVF9maW5kX2x0bWFpbl9zaCAoKSAKeyAKICAgIGxvY2FsIHg9OwogICAgbG9jYWwgZGlybGlz
dD07CiAgICBmb3IgeCBpbiAkKGZpbmQgIiR7U30iIC1uYW1lICdsdG1haW4uc2gnKTsKICAgIGRv
CiAgICAgICAgZGlybGlzdD0iJHtkaXJsaXN0fSAke3glLyp9IjsKICAgIGRvbmU7CiAgICBlY2hv
ICIke2Rpcmxpc3R9Igp9CkVMVF9saWJ0b29sX3ZlcnNpb24gKCkgCnsgCiAgICBsb2NhbCBsdG1h
aW5fc2g9JDE7CiAgICBsb2NhbCB2ZXJzaW9uPTsKICAgIHZlcnNpb249JChldmFsICQoZ3JlcCAt
ZSAnXltbOnNwYWNlOl1dKlZFUlNJT049JyAiJHtsdG1haW5fc2h9Iik7IAkgICAgICAgICAgICAg
ICAgIGVjaG8gIiR7VkVSU0lPTn0iKTsKICAgIFtbIC16ICR7dmVyc2lvbn0gXV0gJiYgdmVyc2lv
bj0iMCI7CiAgICBlY2hvICIke3ZlcnNpb259Igp9CkVMVF90cnlfYW5kX2FwcGx5X3BhdGNoICgp
IAp7IAogICAgbG9jYWwgcmV0PTA7CiAgICBsb2NhbCBmaWxlPSQxOwogICAgbG9jYWwgcGF0Y2g9
JDI7CiAgICBpZiBwYXRjaCAtcDAgLS1kcnktcnVuICIke2ZpbGV9IiAiJHtwYXRjaH0iID4mIiR7
VH0vZWxpYnRvb2wubG9nIjsgdGhlbgogICAgICAgIGVpbmZvICIgIEFwcGx5aW5nICQoYmFzZW5h
bWUgIiQoZGlybmFtZSAiJHtwYXRjaH0iKSIpLSR7cGF0Y2gjIyovfS5wYXRjaCAuLi4iOwogICAg
ICAgIHBhdGNoIC1wMCAtZzAgLS1uby1iYWNrdXAtaWYtbWlzbWF0Y2ggIiR7ZmlsZX0iICIke3Bh
dGNofSIgPiYiJHtUfS9lbGlidG9vbC5sb2ciOwogICAgICAgIHJldD0kPzsKICAgICAgICBleHBv
cnQgRUxUX0FQUExJRURfUEFUQ0hFUz0iJHtFTFRfQVBQTElFRF9QQVRDSEVTfSAke3BhdGNoIyMq
L30iOwogICAgZWxzZQogICAgICAgIHJldD0xOwogICAgZmk7CiAgICByZXR1cm4gIiR7cmV0fSIK
fQpFTFRfd2Fsa19wYXRjaGVzICgpIAp7IAogICAgbG9jYWwgeD07CiAgICBsb2NhbCB5PTsKICAg
IGxvY2FsIHJldD0xOwogICAgbG9jYWwgZmlsZT0kMTsKICAgIGxvY2FsIHBhdGNoX3NldD0kMjsK
ICAgIGxvY2FsIHBhdGNoX2Rpcj07CiAgICBsb2NhbCByZW1faW50X2RlcD0kMzsKICAgIGlmIFtb
IC1uICR7cGF0Y2hfc2V0fSBdXTsgdGhlbgogICAgICAgIGlmIFtbIC1kICR7RUxUX1BBVENIX0RJ
Un0vJHtwYXRjaF9zZXR9IF1dOyB0aGVuCiAgICAgICAgICAgIHBhdGNoX2Rpcj0iJHtFTFRfUEFU
Q0hfRElSfS8ke3BhdGNoX3NldH0iOwogICAgICAgIGVsc2UKICAgICAgICAgICAgcmV0dXJuICIk
e3JldH0iOwogICAgICAgIGZpOwogICAgICAgIGZvciB4IGluICQobHMgLWQgIiR7cGF0Y2hfZGly
fSIvKiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdDVlMnIHwgc29ydCAtcik7CiAgICAgICAgZG8K
ICAgICAgICAgICAgaWYgW1sgLW4gJHt4fSAmJiAtZiAke3h9IF1dOyB0aGVuCiAgICAgICAgICAg
ICAgICBpZiBbWyAtbiAke3JlbV9pbnRfZGVwfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAg
IHNlZCAtZSAic3xAUkVNX0lOVF9ERVBAfCR7cmVtX2ludF9kZXB9fGciICR7eH0gPiAiJHtUfS8k
JC5yZW1faW50X2RlcHMucGF0Y2giOwogICAgICAgICAgICAgICAgICAgIHg9IiR7VH0vJCQucmVt
X2ludF9kZXBzLnBhdGNoIjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgaWYg
RUxUX3RyeV9hbmRfYXBwbHlfcGF0Y2ggIiR7ZmlsZX0iICIke3h9IjsgdGhlbgogICAgICAgICAg
ICAgICAgICAgIHJldD0wOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgZmk7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICBmaTsKICAgIHJldHVybiAi
JHtyZXR9Igp9ClZFUl9tYWpvciAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIHJldHVybiAxOwog
ICAgbG9jYWwgVkVSPSRAOwogICAgZWNobyAiJHtWRVIlJVteWzpkaWdpdDpdXSp9Igp9ClZFUl9t
aWNybyAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIHJldHVybiAxOwogICAgbG9jYWwgVkVSPSRA
OwogICAgVkVSPSR7VkVSIyouKi59OwogICAgZWNobyAiJHtWRVIlJVteWzpkaWdpdDpdXSp9Igp9
ClZFUl9taW5vciAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIHJldHVybiAxOwogICAgbG9jYWwg
VkVSPSRAOwogICAgVkVSPSR7VkVSIyoufTsKICAgIGVjaG8gIiR7VkVSJSVbXls6ZGlnaXQ6XV0q
fSIKfQpWRVJfdG9faW50ICgpIAp7IAogICAgW1sgLXogJDEgXV0gJiYgcmV0dXJuIDE7CiAgICBs
b2NhbCBWRVJfTUFKT1I9JChWRVJfbWFqb3IgIiQxIik7CiAgICBsb2NhbCBWRVJfTUlOT1I9JChW
RVJfbWlub3IgIiQxIik7CiAgICBsb2NhbCBWRVJfTUlDUk89JChWRVJfbWljcm8gIiQxIik7CiAg
ICBsb2NhbCBWRVJfaW50PSQoKCBWRVJfTUFKT1IgKiA2NTUzNiArIFZFUl9NSU5PUiAqIDI1NiAr
IFZFUl9NSUNSTyApKTsKICAgIGlmIFtbICR7VkVSX2ludH0gLWdlIDY1NTM2IF1dOyB0aGVuCiAg
ICAgICAgZWNobyAiJHtWRVJfaW50fSI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGVj
aG8gMTsKICAgIHJldHVybiAxCn0KX2Nkcm9tX2xvY2F0ZV9maWxlX29uX2NkICgpIAp7IAogICAg
bG9jYWwgbWxpbmU9IiI7CiAgICBsb2NhbCBzaG93ZWRtc2c9MCBzaG93am9saWV0bXNnPTA7CiAg
ICB3aGlsZSBbWyAteiAke0NEUk9NX1JPT1R9IF1dOyBkbwogICAgICAgIGxvY2FsIGk9MDsKICAg
ICAgICBsb2NhbCAtYSBjZHNldD0oJHsqLy86LyB9KTsKICAgICAgICBpZiBbWyAtbiAke0NEUk9N
X1NFVH0gXV07IHRoZW4KICAgICAgICAgICAgY2RzZXQ9KCR7Y2RzZXRbJHtDRFJPTV9TRVR9XX0p
OwogICAgICAgIGZpOwogICAgICAgIHdoaWxlIFtbIC1uICR7Y2RzZXRbJHtpfV19IF1dOyBkbwog
ICAgICAgICAgICBsb2NhbCBkaXI9JChkaXJuYW1lICR7Y2RzZXRbJHtpfV19KTsKICAgICAgICAg
ICAgbG9jYWwgZmlsZT0kKGJhc2VuYW1lICR7Y2RzZXRbJHtpfV19KTsKICAgICAgICAgICAgbG9j
YWwgcG9pbnQ9IG5vZGU9IGZzPSBmb289OwogICAgICAgICAgICB3aGlsZSByZWFkIHBvaW50IG5v
ZGUgZnMgZm9vOyBkbwogICAgICAgICAgICAgICAgW1sgIiBjZDk2NjAgaXNvOTY2MCB1ZGYgIiAh
PSAqIiAke2ZzfSAiKiBdXSAmJiAhIFtbICR7ZnN9ID09ICJzdWJmcyIgJiYgIiwke29wdHN9LCIg
PT0gKiIsZnM9Y2Rmc3MsIiogXV0gJiYgY29udGludWU7CiAgICAgICAgICAgICAgICBwb2ludD0k
e3BvaW50Ly9cMDQwLyB9OwogICAgICAgICAgICAgICAgW1sgISAtZCAke3BvaW50fS8ke2Rpcn0g
XV0gJiYgY29udGludWU7CiAgICAgICAgICAgICAgICBbWyAteiAkKGZpbmQgIiR7cG9pbnR9LyR7
ZGlyfSIgLW1heGRlcHRoIDEgLWluYW1lICIke2ZpbGV9IikgXV0gJiYgY29udGludWU7CiAgICAg
ICAgICAgICAgICBleHBvcnQgQ0RST01fUk9PVD0ke3BvaW50fTsKICAgICAgICAgICAgICAgIGV4
cG9ydCBDRFJPTV9TRVQ9JHtpfTsKICAgICAgICAgICAgICAgIGV4cG9ydCBDRFJPTV9NQVRDSD0k
e2Nkc2V0WyR7aX1dfTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgZG9uZSA8
PDwgIiQoZ2V0X21vdW50cykiOwogICAgICAgICAgICAoKCsraSkpOwogICAgICAgIGRvbmU7CiAg
ICAgICAgZWNobzsKICAgICAgICBpZiBbWyAke3Nob3dlZG1zZ30gLWVxIDAgXV07IHRoZW4KICAg
ICAgICAgICAgaWYgW1sgJHtDRFJPTV9UT1RBTF9DRFN9IC1lcSAxIF1dOyB0aGVuCiAgICAgICAg
ICAgICAgICBpZiBbWyAteiAke0NEUk9NX05BTUV9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAg
ICAgZWluZm8gIlBsZWFzZSBpbnNlcnQrbW91bnQgdGhlIGNkcm9tIGZvciAke1BOfSBub3cgISI7
CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgZWluZm8gIlBsZWFzZSBp
bnNlcnQrbW91bnQgdGhlICR7Q0RST01fTkFNRX0gY2Ryb20gbm93ICEiOwogICAgICAgICAgICAg
ICAgZmk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFtbIC16ICR7Q0RST01f
TkFNRV8xfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2UgaW5zZXJ0
K21vdW50IGNkICMke0NEUk9NX0NVUlJFTlRfQ0R9IGZvciAke1BOfSBub3cgISI7CiAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgdmFyPSJDRFJPTV9OQU1FXyR7
Q0RST01fQ1VSUkVOVF9DRH0iOwogICAgICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2UgaW5z
ZXJ0K21vdW50IHRoZSAkeyF2YXJ9IGNkcm9tIG5vdyAhIjsKICAgICAgICAgICAgICAgIGZpOwog
ICAgICAgICAgICBmaTsKICAgICAgICAgICAgc2hvd2VkbXNnPTE7CiAgICAgICAgZmk7CiAgICAg
ICAgZWluZm8gIlByZXNzIHJldHVybiB0byBzY2FuIGZvciB0aGUgY2QgYWdhaW4iOwogICAgICAg
IGVpbmZvICJvciBoaXQgQ1RSTCtDIHRvIGFib3J0IHRoZSBlbWVyZ2UuIjsKICAgICAgICBlY2hv
OwogICAgICAgIGlmIFtbICR7c2hvd2pvbGlldG1zZ30gLWVxIDAgXV07IHRoZW4KICAgICAgICAg
ICAgc2hvd2pvbGlldG1zZz0xOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZXdhcm4gIklmIHlv
dSBhcmUgaGF2aW5nIHRyb3VibGUgd2l0aCB0aGUgZGV0ZWN0aW9uIjsKICAgICAgICAgICAgZXdh
cm4gIm9mIHlvdXIgQ0QsIGl0IGlzIHBvc3NpYmxlIHRoYXQgeW91IGRvIG5vdCBoYXZlIjsKICAg
ICAgICAgICAgZXdhcm4gIkpvbGlldCBzdXBwb3J0IGVuYWJsZWQgaW4geW91ciBrZXJuZWwuICBQ
bGVhc2UiOwogICAgICAgICAgICBld2FybiAiY2hlY2sgdGhhdCBDT05GSUdfSk9MSUVUIGlzIGVu
YWJsZWQgaW4geW91ciBrZXJuZWwuIjsKICAgICAgICAgICAgZWJlZXAgNTsKICAgICAgICBmaTsK
ICAgICAgICByZWFkIHx8IGRpZSAic29tZXRoaW5nIGlzIHNjcmV3ZWQgd2l0aCB5b3VyIHN5c3Rl
bSI7CiAgICBkb25lCn0KX2VsaWJ0b29saXplICgpIAp7IAogICAgbG9jYWwgb3B0czsKICAgIGxv
Y2FsIGx0dGVzdDsKICAgIGx0dGVzdD0iJChhdXRvdG9vbHNfY2hlY2tfbWFjcm8gIkFDX1BST0df
TElCVE9PTCIpJChhdXRvdG9vbHNfY2hlY2tfbWFjcm8gIkFNX1BST0dfTElCVE9PTCIpIjsKICAg
IFtbIC1uICRsdHRlc3QgXV0gfHwgcmV0dXJuIDA7CiAgICBbWyAtZiBHTlVtYWtlZmlsZS5hbSB8
fCAtZiBNYWtlZmlsZS5hbSBdXSAmJiBvcHRzPSItLWF1dG9tYWtlIjsKICAgIFtbICIke1VTRVJM
QU5EfSIgPT0gIkRhcndpbiIgXV0gJiYgTElCVE9PTElaRT0iZ2xpYnRvb2xpemUiOwogICAgYXV0
b3Rvb2xzX3J1bl90b29sICR7TElCVE9PTElaRTotbGlidG9vbGl6ZX0gIiRAIiAke29wdHN9Owog
ICAgZWFjbG9jYWwKfQpfZmlsdGVyLWhhcmRlbmVkICgpIAp7IAogICAgbG9jYWwgZjsKICAgIGZv
ciBmIGluICIkQCI7CiAgICBkbwogICAgICAgIGNhc2UgIiR7Zn0iIGluIAogICAgICAgICAgICAt
ZlBJQyB8IC1mcGljIHwgLWZQSUUgfCAtZnBpZSB8IC1XbCxwaWUgfCAtcGllKQogICAgICAgICAg
ICAgICAgZ2NjLXNwZWNzLXBpZSB8fCBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlzLWZsYWdx
IC1ub3BpZSB8fCBhcHBlbmQtZmxhZ3MgLW5vcGllCiAgICAgICAgICAgIDs7CiAgICAgICAgICAg
IC1mc3RhY2stcHJvdGVjdG9yKQogICAgICAgICAgICAgICAgZ2NjLXNwZWNzLXNzcCB8fCBjb250
aW51ZTsKICAgICAgICAgICAgICAgIGlzLWZsYWdxIC1mbm8tc3RhY2stcHJvdGVjdG9yIHx8IGFw
cGVuZC1mbGFncyAtZm5vLXN0YWNrLXByb3RlY3RvcgogICAgICAgICAgICA7OwogICAgICAgICAg
ICAtZnN0YWNrLXByb3RlY3Rvci1hbGwpCiAgICAgICAgICAgICAgICBnY2Mtc3BlY3Mtc3NwLXRv
LWFsbCB8fCBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlzLWZsYWdxIC1mbm8tc3RhY2stcHJv
dGVjdG9yLWFsbCB8fCBhcHBlbmQtZmxhZ3MgLWZuby1zdGFjay1wcm90ZWN0b3ItYWxsCiAgICAg
ICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgIGRvbmUKfQpfZmlsdGVyLXZhciAoKSAKeyAKICAg
IGxvY2FsIGYgeCBWQVIgVkFMOwogICAgZGVjbGFyZSAtYSBuZXc7CiAgICBWQVI9JDE7CiAgICBz
aGlmdDsKICAgIGV2YWwgVkFMPVwkeyR7VkFSfX07CiAgICBmb3IgZiBpbiAke1ZBTH07CiAgICBk
bwogICAgICAgIGZvciB4IGluICIkQCI7CiAgICAgICAgZG8KICAgICAgICAgICAgW1sgJHtmfSA9
PSAke3h9IF1dICYmIGNvbnRpbnVlIDI7CiAgICAgICAgZG9uZTsKICAgICAgICBldmFsIG5ld1xb
XCR7XCNuZXdcW0BdfV09XCR7Zn07CiAgICBkb25lOwogICAgZXZhbCBleHBvcnQgJHtWQVJ9PVwk
e25ld1xbKl19Cn0KX2djYy1pbnN0YWxsLWRpciAoKSAKeyAKICAgIGVjaG8gIiQoJCh0Yy1nZXRD
QykgLXByaW50LXNlYXJjaC1kaXJzIDI+IC9kZXYvbnVsbCB8CQlhd2sgJyQxPT0iaW5zdGFsbDoi
IHtwcmludCAkMn0nKSIKfQpfZ2NjLXNwZWNzLWRpcmVjdGl2ZV9yYXcgKCkgCnsgCiAgICBsb2Nh
bCBjYz0kKHRjLWdldENDKTsKICAgIGxvY2FsIHNwZWNmaWxlcz0kKExDX0FMTD1DICR7Y2N9IC12
IDI+JjEgfCBhd2sgJyQxPT0iUmVhZGluZyIge3ByaW50ICRORn0nKTsKICAgICR7Y2N9IC1kdW1w
c3BlY3MgMj4gL2Rldi9udWxsIHwgY2F0IC0gJHtzcGVjZmlsZXN9IHwgYXdrIC12IGRpcmVjdGl2
ZT0kMSAnQkVHSU4JeyBwc3BlYz0iIjsgc3BlYz0iIjsgb3V0c2lkZT0xIH0KJDE9PSIqImRpcmVj
dGl2ZSI6IiAgeyBwc3BlYz1zcGVjOyBzcGVjPSIiOyBvdXRzaWRlPTA7IG5leHQgfQoJb3V0c2lk
ZSB8fCBORj09MCB8fCAoIHN1YnN0cigkMSwxLDEpPT0iKiIgJiYgc3Vic3RyKCQxLGxlbmd0aCgk
MSksMSk9PSI6IiApIHsgb3V0c2lkZT0xOyBuZXh0IH0KCXNwZWM9PSIiICYmIHN1YnN0cigkMCwx
LDEpPT0iKyIgeyBzcGVjPXBzcGVjICIgIiBzdWJzdHIoJDAsMik7IG5leHQgfQoJeyBzcGVjPXNw
ZWMgJDAgfQpFTkQJeyBwcmludCBzcGVjIH0nOwogICAgcmV0dXJuIDAKfQpfZ2NjLXNwZWNzLWV4
aXN0cyAoKSAKeyAKICAgIFtbIC1mICQoX2djYy1pbnN0YWxsLWRpcikvJDEgXV0KfQpfaXNfZmxh
Z3EgKCkgCnsgCiAgICBsb2NhbCB4OwogICAgZm9yIHggaW4gJHshMX07CiAgICBkbwogICAgICAg
IFtbICR7eH0gPT0gJDIgXV0gJiYgcmV0dXJuIDA7CiAgICBkb25lOwogICAgcmV0dXJuIDEKfQph
cHBlbmQtY3BwZmxhZ3MgKCkgCnsgCiAgICBbWyAteiAkKiBdXSAmJiByZXR1cm4gMDsKICAgIGV4
cG9ydCBDUFBGTEFHUz0iJHtDUFBGTEFHU30gJCoiOwogICAgcmV0dXJuIDAKfQphcHBlbmQtZmxh
Z3MgKCkgCnsgCiAgICBbWyAteiAkKiBdXSAmJiByZXR1cm4gMDsKICAgIGV4cG9ydCBDRkxBR1M9
IiR7Q0ZMQUdTfSAkKiI7CiAgICBleHBvcnQgQ1hYRkxBR1M9IiR7Q1hYRkxBR1N9ICQqIjsKICAg
IHJldHVybiAwCn0KYXBwZW5kLWxkZmxhZ3MgKCkgCnsgCiAgICBMREZMQUdTPSIke0xERkxBR1N9
ICR7MX0iCn0KYXBwZW5kLWxmcy1mbGFncyAoKSAKeyAKICAgIFtbIC1uICRAIF1dICYmIGRpZSAi
YXBwZW5kLWxmcy1mbGFncyB0YWtlcyBubyBhcmd1bWVudHMiOwogICAgYXBwZW5kLWNwcGZsYWdz
IC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9MQVJHRUZJTEU2
NF9TT1VSQ0UKfQphdXRvdG9vbHNfY2hlY2tfbWFjcm8gKCkgCnsgCiAgICBbWyAtZiBjb25maWd1
cmUuYWMgfHwgLWYgY29uZmlndXJlLmluIF1dICYmIFdBTlRfQVVUT0NPTkY9IjIuNSIgYXV0b2Nv
bmYgLS10cmFjZT0kMSAyPiAvZGV2L251bGw7CiAgICByZXR1cm4gMAp9CmF1dG90b29sc19nZXRf
YXV4ZGlyICgpIAp7IAogICAgbG9jYWwgYXV4ZGlyX3NjYW5fb3V0OwogICAgYXV4ZGlyX3NjYW5f
b3V0PSQoYXV0b3Rvb2xzX2NoZWNrX21hY3JvICJBQ19DT05GSUdfQVVYX0RJUiIpOwogICAgW1sg
LW4gJHthdXhkaXJfc2Nhbl9vdXR9IF1dIHx8IHJldHVybiAwOwogICAgZWNobyAke2F1eGRpcl9z
Y2FuX291dH0gfCBnYXdrICcoJDAgIX4gL15bWzpzcGFjZTpdXSooI3xkbmwpLykgewoJCWlmICht
YXRjaCgkMCwgL0FDX0NPTkZJR19BVVhfRElSOiguKikkLywgcmVzKSkKCQkJcHJpbnQgcmVzWzFd
Cgl9JyB8IHVuaXE7CiAgICByZXR1cm4gMAp9CmF1dG90b29sc19nZXRfc3ViZGlycyAoKSAKeyAK
ICAgIGxvY2FsIHN1YmRpcnNfc2Nhbl9vdXQ7CiAgICBzdWJkaXJzX3NjYW5fb3V0PSQoYXV0b3Rv
b2xzX2NoZWNrX21hY3JvICJBQ19DT05GSUdfU1VCRElSUyIpOwogICAgW1sgLW4gJHtzdWJkaXJz
X3NjYW5fb3V0fSBdXSB8fCByZXR1cm4gMDsKICAgIGVjaG8gIiR7c3ViZGlyc19zY2FuX291dH0i
IHwgZ2F3ayAnKCQwICF+IC9eW1s6c3BhY2U6XV0qKCN8ZG5sKS8pIHsKCQlpZiAobWF0Y2goJDAs
IC9BQ19DT05GSUdfU1VCRElSUzooLiopJC8sIHJlcykpCgkJCXByaW50IHJlc1sxXQoJfScgfCB1
bmlxOwogICAgcmV0dXJuIDAKfQphdXRvdG9vbHNfcnVuX3Rvb2wgKCkgCnsgCiAgICBpZiBbWyAk
e0VCVUlMRF9QSEFTRX0gIT0gInVucGFjayIgXV07IHRoZW4KICAgICAgICBld2FybiAiUUEgV2Fy
bmluZzogcnVubmluZyAkMSBpbiAke0VCVUlMRF9QSEFTRX0gcGhhc2UiOwogICAgZmk7CiAgICBs
b2NhbCBTVERFUlJfVEFSR0VUPSIke1R9LyQkLm91dCI7CiAgICBsb2NhbCByaXM7CiAgICBwcmlu
dGYgIioqKioqICQxICoqKioqXG4qKioqKiAkKlxuXG4iID4gIiR7U1RERVJSX1RBUkdFVCUvKn0v
JDEtJHtTVERFUlJfVEFSR0VUIyMqL30iOwogICAgZWJlZ2luICJSdW5uaW5nICRAIjsKICAgICIk
QCIgPj4gIiR7U1RERVJSX1RBUkdFVCUvKn0vJDEtJHtTVERFUlJfVEFSR0VUIyMqL30iIDI+JjE7
CiAgICByaXM9JD87CiAgICBlZW5kICR7cmlzfTsKICAgIGlmIFtbICR7cmlzfSAhPSAwICYmICR7
Tk9fRkFJTH0gIT0gMSBdXTsgdGhlbgogICAgICAgIGVjaG87CiAgICAgICAgZWVycm9yICJGYWls
ZWQgUnVubmluZyAkMSAhIjsKICAgICAgICBlZXJyb3I7CiAgICAgICAgZWVycm9yICJJbmNsdWRl
IGluIHlvdXIgYnVncmVwb3J0IHRoZSBjb250ZW50cyBvZjoiOwogICAgICAgIGVlcnJvcjsKICAg
ICAgICBlZXJyb3IgIiAgJHtTVERFUlJfVEFSR0VUJS8qfS8kMS0ke1NUREVSUl9UQVJHRVQjIyov
fSI7CiAgICAgICAgZWNobzsKICAgICAgICBkaWUgIkZhaWxlZCBSdW5uaW5nICQxICEiOwogICAg
ZmkKfQpiYXNocmNfaGFzICgpIAp7IAogICAgW1sgIiAkeyo6Mn0gIiA9PSAqIiAkMSAiKiBdXQp9
CmJpbmRub3ctZmxhZ3MgKCkgCnsgCiAgICBld2FybiAiUUE6IHN0b3AgdXNpbmcgdGhlIGJpbmRu
b3ctZmxhZ3MgZnVuY3Rpb24gLi4uIHNpbXBseSBkcm9wIGl0IGZyb20geW91ciBlYnVpbGQiIDE+
JjI7CiAgICBjYXNlICQoJCh0Yy1nZXRMRCkgLXYgMj4mMSA8L2Rldi9udWxsKSBpbiAKICAgICAg
ICAqR05VKiB8ICond2l0aCBCRkQnKikKICAgICAgICAgICAgZWNobyAiLVdsLC16LG5vdyIKICAg
ICAgICA7OwogICAgICAgICpBcHBsZSopCiAgICAgICAgICAgIGVjaG8gIi1iaW5kX2F0X2xvYWQi
CiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBjYXNlICQoJCh0Yy1nZXRMRCkgLVYg
Mj4mMSA8L2Rldi9udWxsKSBpbiAKICAgICAgICAgICAgICAgICpTb2xhcmlzKikKICAgICAgICAg
ICAgICAgICAgICBlY2hvICItV2wsLXosbm93IgogICAgICAgICAgICAgICAgOzsKICAgICAgICAg
ICAgZXNhYwogICAgICAgIDs7CiAgICBlc2FjCn0KYnVpbHRfd2l0aF91c2UgKCkgCnsgCiAgICBs
b2NhbCBoaWRkZW49Im5vIjsKICAgIGlmIFtbICQxID09ICItLWhpZGRlbiIgXV07IHRoZW4KICAg
ICAgICBoaWRkZW49InllcyI7CiAgICAgICAgc2hpZnQ7CiAgICBmaTsKICAgIGxvY2FsIG1pc3Np
bmdfYWN0aW9uPSJkaWUiOwogICAgaWYgW1sgJDEgPT0gIi0tbWlzc2luZyIgXV07IHRoZW4KICAg
ICAgICBtaXNzaW5nX2FjdGlvbj0kMjsKICAgICAgICBzaGlmdDsKICAgICAgICBzaGlmdDsKICAg
ICAgICBjYXNlICR7bWlzc2luZ19hY3Rpb259IGluIAogICAgICAgICAgICB0cnVlIHwgZmFsc2Ug
fCBkaWUpCgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgZGll
ICJ1bmtub3duIGFjdGlvbiAnJHttaXNzaW5nX2FjdGlvbn0nIgogICAgICAgICAgICA7OwogICAg
ICAgIGVzYWM7CiAgICBmaTsKICAgIGxvY2FsIG9wdD0kMTsKICAgIFtbICR7b3B0OjA6MX0gPSAi
LSIgXV0gJiYgc2hpZnQgfHwgb3B0PSItYSI7CiAgICBsb2NhbCBQS0c9JChiZXN0X3ZlcnNpb24g
JDEpOwogICAgW1sgLXogJHtQS0d9IF1dICYmIGRpZSAiVW5hYmxlIHRvIHJlc29sdmUgJDEgdG8g
YW4gaW5zdGFsbGVkIHBhY2thZ2UiOwogICAgc2hpZnQ7CiAgICBsb2NhbCBVU0VGSUxFPSR7Uk9P
VH0vdmFyL2RiL3BrZy8ke1BLR30vVVNFOwogICAgbG9jYWwgSVVTRUZJTEU9JHtST09UfS92YXIv
ZGIvcGtnLyR7UEtHfS9JVVNFOwogICAgaWYgW1sgISAtZSAke1VTRUZJTEV9IF1dIHx8IFtbICEg
LWUgJHtJVVNFRklMRX0gJiYgJHtoaWRkZW59ID09ICJubyIgXV07IHRoZW4KICAgICAgICBjYXNl
ICR7bWlzc2luZ19hY3Rpb259IGluIAogICAgICAgICAgICB0cnVlKQogICAgICAgICAgICAgICAg
cmV0dXJuIDAKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZmFsc2UpCiAgICAgICAgICAgICAg
ICByZXR1cm4gMQogICAgICAgICAgICA7OwogICAgICAgICAgICBkaWUpCiAgICAgICAgICAgICAg
ICBkaWUgIlVuYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBVU0UgZmxhZ3MgJFBLRyB3YXMgYnVpbHQg
d2l0aCIKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAgZmk7CiAgICBpZiBbWyAke2hp
ZGRlbn0gPT0gIm5vIiBdXTsgdGhlbgogICAgICAgIGxvY2FsIElVU0VfQlVJTFQ9JCg8JHtJVVNF
RklMRX0pOwogICAgICAgIGxvY2FsIGV4cGFuZDsKICAgICAgICBmb3IgZXhwYW5kIGluICQoZWNo
byAke1VTRV9FWFBBTkR9IHwgdHIgJ1s6dXBwZXI6XScgJ1s6bG93ZXI6XScpOwogICAgICAgIGRv
CiAgICAgICAgICAgIGlmIFtbICQxID09ICR7ZXhwYW5kfV8qIF1dOyB0aGVuCiAgICAgICAgICAg
ICAgICBleHBhbmQ9IiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZmk7CiAg
ICAgICAgZG9uZTsKICAgICAgICBpZiBbWyAtbiAke2V4cGFuZH0gXV07IHRoZW4KICAgICAgICAg
ICAgaWYgISBoYXMgJDEgJHtJVVNFX0JVSUxUfTsgdGhlbgogICAgICAgICAgICAgICAgY2FzZSAk
e21pc3NpbmdfYWN0aW9ufSBpbiAKICAgICAgICAgICAgICAgICAgICB0cnVlKQogICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg
ICAgICAgICAgZmFsc2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAg
ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBkaWUpCiAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZSAiJFBLRyBkb2VzIG5vdCBhY3R1YWxseSBzdXBwb3J0IHRoZSAkMSBVU0UgZmxh
ZyEiCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAg
ICAgIGZpOwogICAgICAgIGZpOwogICAgZmk7CiAgICBsb2NhbCBVU0VfQlVJTFQ9JCg8JHtVU0VG
SUxFfSk7CiAgICB3aGlsZSBbWyAkIyAtZ3QgMCBdXTsgZG8KICAgICAgICBpZiBbWyAke29wdH0g
PSAiLW8iIF1dOyB0aGVuCiAgICAgICAgICAgIGhhcyAkMSAke1VTRV9CVUlMVH0gJiYgcmV0dXJu
IDA7CiAgICAgICAgZWxzZQogICAgICAgICAgICBoYXMgJDEgJHtVU0VfQlVJTFR9IHx8IHJldHVy
biAxOwogICAgICAgIGZpOwogICAgICAgIHNoaWZ0OwogICAgZG9uZTsKICAgIFtbICR7b3B0fSA9
ICItYSIgXV0KfQpjY2MtZWxmLWNoZWNrICgpIAp7IAogICAgbG9jYWwgbXlCSU5BUlk9JHsxOi1h
Lm91dH07CiAgICBpZiBbWyAhICIke215QklOQVJZfSIgPT0gKi5hIF1dOyB0aGVuCiAgICAgICAg
bG9jYWwgZWxmX25vdGVfb2Zmc2V0PWBvYmpkdW1wIC1oICR7bXlCSU5BUll9IHwgCQlncmVwIC1F
ICdeXCBbMC05XXsyLH1cIC5ub3RlXCAnIHwgCQkJYXdrICd7cHJpbnQgJDYsJDN9JyB8IAkJCWxp
bmVgOwogICAgICAgIFsgISAiJHtlbGZfbm90ZV9vZmZzZXR9IiBdICYmIHJldHVybiAxOwogICAg
ICAgIGhleGR1bXAgLXMgMHgke2VsZl9ub3RlX29mZnNldCUgKn0gLW4gJCgoMHgke2VsZl9ub3Rl
X29mZnNldCMqIH0pKSAtZSAnIiVfcCInICR7bXlCSU5BUll9IHwgZ3JlcCAtRSAnQ29tcGFxIENv
bXB1dGVyIENvcnAuJyA+Ji9kZXYvbnVsbCAmJiByZXR1cm4gMDsKICAgIGVsc2UKICAgICAgICBo
ZXhkdW1wIC1lICciJV9wIicgJHtteUJJTkFSWX0gfCBncmVwIC1FICdDb21wYXEgQ29tcHV0ZXIg
Q29ycC4nID4mL2Rldi9udWxsICYmIHJldHVybiAwOwogICAgZmk7CiAgICByZXR1cm4gMQp9CmNj
Yy1maXh1cCAoKSAKeyAKICAgIGxvY2FsIGZpbGVzIGxpc3Qgc3VmZml4PWNjYy1maXh1cC0keyR9
OwogICAgd2hpbGUgcmVhZCBmaWxlczsgZG8KICAgICAgICBzZWQgLS1pbi1wbGFjZT0uJHtzdWZm
aXh9ICR7MX0gJHtmaWxlc30gfHwgcmV0dXJuIDE7CiAgICAgICAgbGlzdD0iJHtsaXN0fSAke2Zp
bGVzfSI7CiAgICBkb25lOwogICAgWyAhICIkREVCVUdfQ0NDX0VDTEFTUyIgXSAmJiByZXR1cm4g
MDsKICAgIGZvciBpIGluICR7bGlzdH07CiAgICBkbwogICAgICAgIGVpbmZvICJDaGVja2luZyBm
b3IgY2hhbmdlcyB0byBgYmFzZW5hbWUgJHtpfWAgLi4uIjsKICAgICAgICBpZiBbIC1lICIke2l9
LiR7c3VmZml4fSIgXTsgdGhlbgogICAgICAgICAgICBkaWZmIC11ICR7aX0uJHtzdWZmaXh9ICR7
aX07CiAgICAgICAgZmk7CiAgICBkb25lCn0KY2Ryb21fZ2V0X2NkcyAoKSAKeyAKICAgIGxvY2Fs
IGNkY250PTA7CiAgICBsb2NhbCBmPTsKICAgIGZvciBmIGluICIkQCI7CiAgICBkbwogICAgICAg
ICgoKytjZGNudCkpOwogICAgICAgIGV4cG9ydCBDRFJPTV9DSEVDS18ke2NkY250fT0iJGYiOwog
ICAgZG9uZTsKICAgIGV4cG9ydCBDRFJPTV9UT1RBTF9DRFM9JHtjZGNudH07CiAgICBleHBvcnQg
Q0RST01fQ1VSUkVOVF9DRD0xOwogICAgaWYgW1sgLW4gJHtDRF9ST09UfSR7Q0RfUk9PVF8xfSBd
XTsgdGhlbgogICAgICAgIGxvY2FsIHZhcj07CiAgICAgICAgY2RjbnQ9MDsKICAgICAgICB3aGls
ZSBbWyAke2NkY250fSAtbHQgJHtDRFJPTV9UT1RBTF9DRFN9IF1dOyBkbwogICAgICAgICAgICAo
KCsrY2RjbnQpKTsKICAgICAgICAgICAgdmFyPSJDRF9ST09UXyR7Y2RjbnR9IjsKICAgICAgICAg
ICAgW1sgLXogJHshdmFyfSBdXSAmJiB2YXI9IkNEX1JPT1QiOwogICAgICAgICAgICBpZiBbWyAt
eiAkeyF2YXJ9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlZXJyb3IgIllvdSBtdXN0IGVpdGhl
ciB1c2UganVzdCB0aGUgQ0RfUk9PVCI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIm9yIHNwZWNp
ZnkgQUxMIHRoZSBDRF9ST09UX1ggdmFyaWFibGVzLiI7CiAgICAgICAgICAgICAgICBlZXJyb3Ig
IkluIHRoaXMgY2FzZSwgeW91IHdpbGwgbmVlZCAke0NEUk9NX1RPVEFMX0NEU30gQ0RfUk9PVF9Y
IHZhcmlhYmxlcy4iOwogICAgICAgICAgICAgICAgZGllICJjb3VsZCBub3QgbG9jYXRlIENEX1JP
T1RfJHtjZGNudH0iOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lOwogICAgICAgIGV4cG9y
dCBDRFJPTV9ST09UPSR7Q0RfUk9PVF8xOi0ke0NEX1JPT1R9fTsKICAgICAgICBlaW5mbyAiRm91
bmQgQ0QgIyR7Q0RST01fQ1VSUkVOVF9DRH0gcm9vdCBhdCAke0NEUk9NX1JPT1R9IjsKICAgICAg
ICBleHBvcnQgQ0RST01fU0VUPS0xOwogICAgICAgIGZvciBmIGluICR7Q0RST01fQ0hFQ0tfMS8v
Oi8gfTsKICAgICAgICBkbwogICAgICAgICAgICAoKCsrQ0RST01fU0VUKSk7CiAgICAgICAgICAg
IFtbIC1lICR7Q0RfUk9PVH0vJHtmfSBdXSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgICAg
IGV4cG9ydCBDRFJPTV9NQVRDSD0ke2Z9OwogICAgICAgIHJldHVybjsKICAgIGZpOwogICAgaWYg
W1sgJHtDRFJPTV9UT1RBTF9DRFN9IC1lcSAxIF1dOyB0aGVuCiAgICAgICAgZWluZm8gIlRoaXMg
ZWJ1aWxkIHdpbGwgbmVlZCB0aGUgJHtDRFJPTV9OQU1FOi1jZHJvbSBmb3IgJHtQTn19IjsKICAg
ICAgICBlY2hvOwogICAgICAgIGVpbmZvICJJZiB5b3UgZG8gbm90IGhhdmUgdGhlIENELCBidXQg
aGF2ZSB0aGUgZGF0YSBmaWxlcyI7CiAgICAgICAgZWluZm8gIm1vdW50ZWQgc29tZXdoZXJlIG9u
IHlvdXIgZmlsZXN5c3RlbSwganVzdCBleHBvcnQiOwogICAgICAgIGVpbmZvICJ0aGUgdmFyaWFi
bGUgQ0RfUk9PVCBzbyB0aGF0IGl0IHBvaW50cyB0byB0aGUiOwogICAgICAgIGVpbmZvICJkaXJl
Y3RvcnkgY29udGFpbmluZyB0aGUgZmlsZXMuIjsKICAgICAgICBlY2hvOwogICAgICAgIGVpbmZv
ICJGb3IgZXhhbXBsZToiOwogICAgICAgIGVpbmZvICJleHBvcnQgQ0RfUk9PVD0vbW50L2Nkcm9t
IjsKICAgICAgICBlY2hvOwogICAgZWxzZQogICAgICAgIGlmIFtbIC1uICR7Q0RST01fTkFNRV9T
RVR9IF1dOyB0aGVuCiAgICAgICAgICAgIGNkY250PTA7CiAgICAgICAgICAgIHdoaWxlIFtbICR7
Y2RjbnR9IC1sdCAke0NEUk9NX1RPVEFMX0NEU30gXV07IGRvCiAgICAgICAgICAgICAgICAoKCsr
Y2RjbnQpKTsKICAgICAgICAgICAgICAgIGV4cG9ydCBDRFJPTV9OQU1FXyR7Y2RjbnR9PSIke0NE
Uk9NX05BTUVfU0VUWyQoKCR7Y2RjbnR9LTEpKV19IjsKICAgICAgICAgICAgZG9uZTsKICAgICAg
ICBmaTsKICAgICAgICBlaW5mbyAiVGhpcyBwYWNrYWdlIHdpbGwgbmVlZCBhY2Nlc3MgdG8gJHtD
RFJPTV9UT1RBTF9DRFN9IGNkcy4iOwogICAgICAgIGNkY250PTA7CiAgICAgICAgd2hpbGUgW1sg
JHtjZGNudH0gLWx0ICR7Q0RST01fVE9UQUxfQ0RTfSBdXTsgZG8KICAgICAgICAgICAgKCgrK2Nk
Y250KSk7CiAgICAgICAgICAgIHZhcj0iQ0RST01fTkFNRV8ke2NkY250fSI7CiAgICAgICAgICAg
IFtbICEgLXogJHshdmFyfSBdXSAmJiBlaW5mbyAiIENEICR7Y2RjbnR9OiAkeyF2YXJ9IjsKICAg
ICAgICBkb25lOwogICAgICAgIGVjaG87CiAgICAgICAgZWluZm8gIklmIHlvdSBkbyBub3QgaGF2
ZSB0aGUgQ0RzLCBidXQgaGF2ZSB0aGUgZGF0YSBmaWxlcyI7CiAgICAgICAgZWluZm8gIm1vdW50
ZWQgc29tZXdoZXJlIG9uIHlvdXIgZmlsZXN5c3RlbSwganVzdCBleHBvcnQiOwogICAgICAgIGVp
bmZvICJ0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBzbyB0aGV5IHBvaW50IHRvIHRoZSByaWdodCBw
bGFjZToiOwogICAgICAgIGVpbmZvbiAiIjsKICAgICAgICBjZGNudD0wOwogICAgICAgIHdoaWxl
IFtbICR7Y2RjbnR9IC1sdCAke0NEUk9NX1RPVEFMX0NEU30gXV07IGRvCiAgICAgICAgICAgICgo
KytjZGNudCkpOwogICAgICAgICAgICBlY2hvIC1uICIgQ0RfUk9PVF8ke2NkY250fSI7CiAgICAg
ICAgZG9uZTsKICAgICAgICBlY2hvOwogICAgICAgIGVpbmZvICJPciwgaWYgeW91IGhhdmUgYWxs
IHRoZSBmaWxlcyBpbiB0aGUgc2FtZSBwbGFjZSwgb3IiOwogICAgICAgIGVpbmZvICJ5b3Ugb25s
eSBoYXZlIG9uZSBjZHJvbSwgeW91IGNhbiBleHBvcnQgQ0RfUk9PVCI7CiAgICAgICAgZWluZm8g
ImFuZCB0aGF0IHBsYWNlIHdpbGwgYmUgdXNlZCBhcyB0aGUgc2FtZSBkYXRhIHNvdXJjZSI7CiAg
ICAgICAgZWluZm8gImZvciBhbGwgdGhlIENEcy4iOwogICAgICAgIGVjaG87CiAgICAgICAgZWlu
Zm8gIkZvciBleGFtcGxlOiI7CiAgICAgICAgZWluZm8gImV4cG9ydCBDRF9ST09UXzE9L21udC9j
ZHJvbSI7CiAgICAgICAgZWNobzsKICAgIGZpOwogICAgZXhwb3J0IENEUk9NX1NFVD0iIjsKICAg
IGV4cG9ydCBDRFJPTV9DVVJSRU5UX0NEPTA7CiAgICBjZHJvbV9sb2FkX25leHRfY2QKfQpjZHJv
bV9sb2FkX25leHRfY2QgKCkgCnsgCiAgICBsb2NhbCB2YXI7CiAgICAoKCsrQ0RST01fQ1VSUkVO
VF9DRCkpOwogICAgdW5zZXQgQ0RST01fUk9PVDsKICAgIHZhcj1DRF9ST09UXyR7Q0RST01fQ1VS
UkVOVF9DRH07CiAgICBbWyAteiAkeyF2YXJ9IF1dICYmIHZhcj0iQ0RfUk9PVCI7CiAgICBpZiBb
WyAteiAkeyF2YXJ9IF1dOyB0aGVuCiAgICAgICAgdmFyPSJDRFJPTV9DSEVDS18ke0NEUk9NX0NV
UlJFTlRfQ0R9IjsKICAgICAgICBfY2Ryb21fbG9jYXRlX2ZpbGVfb25fY2QgJHshdmFyfTsKICAg
IGVsc2UKICAgICAgICBleHBvcnQgQ0RST01fUk9PVD0keyF2YXJ9OwogICAgZmk7CiAgICBlaW5m
byAiRm91bmQgQ0QgIyR7Q0RST01fQ1VSUkVOVF9DRH0gcm9vdCBhdCAke0NEUk9NX1JPT1R9Igp9
CmNoZWNrX2xpY2Vuc2UgKCkgCnsgCiAgICBsb2NhbCBsaWM9JDE7CiAgICBpZiBbIC16ICIke2xp
Y30iIF07IHRoZW4KICAgICAgICBsaWM9IiR7UE9SVERJUn0vbGljZW5zZXMvJHtMSUNFTlNFfSI7
CiAgICBlbHNlCiAgICAgICAgaWYgWyAtZSAiJHtQT1JURElSfS9saWNlbnNlcy8ke2xpY30iIF07
IHRoZW4KICAgICAgICAgICAgbGljPSIke1BPUlRESVJ9L2xpY2Vuc2VzLyR7bGljfSI7CiAgICAg
ICAgZWxzZQogICAgICAgICAgICBpZiBbIC1lICIke1BXRH0vJHtsaWN9IiBdOyB0aGVuCiAgICAg
ICAgICAgICAgICBsaWM9IiR7UFdEfS8ke2xpY30iOwogICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICBpZiBbIC1lICIke2xpY30iIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBsaWM9
IiR7bGljfSI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7
CiAgICBmaTsKICAgIFsgISAtZiAiJHtsaWN9IiBdICYmIGRpZSAiQ291bGQgbm90IGZpbmQgcmVx
dWVzdGVkIGxpY2Vuc2UgJHtsaWN9IjsKICAgIGxvY2FsIGw9ImBiYXNlbmFtZSAke2xpY31gIjsK
ICAgIGxvY2FsIHNob3B0cz0kLTsKICAgIGxvY2FsIGFsaWM7CiAgICBzZXQgLW8gbm9nbG9iOwog
ICAgZm9yIGFsaWMgaW4gJHtBQ0NFUFRfTElDRU5TRX07CiAgICBkbwogICAgICAgIGlmIFtbICR7
YWxpY30gPT0gJHtsfSBdXTsgdGhlbgogICAgICAgICAgICBzZXQgK28gbm9nbG9iOwogICAgICAg
ICAgICBzZXQgLSR7c2hvcHRzfTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAg
ICBkb25lOwogICAgc2V0ICtvIG5vZ2xvYjsKICAgIHNldCAtJHNob3B0czsKICAgIGxvY2FsIGxp
Y21zZz0kKGVta3RlbXApOwogICAgY2F0ID4gJHtsaWNtc2d9ICA8PC1FT0YKKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUaGUgZm9sbG93
aW5nIGxpY2Vuc2Ugb3V0bGluZXMgdGhlIHRlcm1zIG9mIHVzZSBvZiB0aGlzCnBhY2thZ2UuICBZ
b3UgTVVTVCBhY2NlcHQgdGhpcyBsaWNlbnNlIGZvciBpbnN0YWxsYXRpb24gdG8KY29udGludWUu
ICBXaGVuIHlvdSBhcmUgZG9uZSB2aWV3aW5nLCBoaXQgJ3EnLglJZiB5b3UKQ1RSTCtDIG91dCBv
ZiB0aGlzLCB0aGUgaW5zdGFsbCB3aWxsIG5vdCBydW4hCioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCkVPRgoKICAgIGNhdCAke2xpY30g
Pj4gJHtsaWNtc2d9OwogICAgJHtQQUdFUjotbGVzc30gJHtsaWNtc2d9IHx8IGRpZSAiQ291bGQg
bm90IGV4ZWN1dGUgcGFnZXIgKCR7UEFHRVJ9KSB0byBhY2NlcHQgJHtsaWN9IjsKICAgIGVpbmZv
biAiRG8geW91IGFjY2VwdCB0aGUgdGVybXMgb2YgdGhpcyBsaWNlbnNlICgke2x9KT8gW3llcy9u
b10gIjsKICAgIHJlYWQgYWxpYzsKICAgIGNhc2UgJHthbGljfSBpbiAKICAgICAgICB5ZXMgfCBZ
ZXMgfCB5IHwgWSkKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICA7OwogICAgICAgICopCiAg
ICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGVjaG87CiAgICAg
ICAgICAgIGVlcnJvciAiWW91IE1VU1QgYWNjZXB0IHRoZSBsaWNlbnNlIHRvIGNvbnRpbnVlISAg
RXhpdGluZyEiOwogICAgICAgICAgICBkaWUgIkZhaWxlZCB0byBhY2NlcHQgbGljZW5zZSIKICAg
ICAgICA7OwogICAgZXNhYwp9CmNsZWFucGFtZCAoKSAKeyAKICAgIHdoaWxlIFtbIC1uICQxIF1d
OyBkbwogICAgICAgIGlmICEgaGFzX3ZlcnNpb24gc3lzLWxpYnMvcGFtOyB0aGVuCiAgICAgICAg
ICAgIHNlZCAtaSAtZSAnL3BhbV9zaGVsbHNcfHBhbV9jb25zb2xlL3M6XjojOicgIiR7RH0vZXRj
L3BhbS5kLyQxIjsKICAgICAgICBmaTsKICAgICAgICBzaGlmdDsKICAgIGRvbmUKfQpjcmVhdGUt
c28gKCkgCnsgCiAgICBpZiBbWyAiJHsyfSIgPT0gKi5zbyBdXTsgdGhlbgogICAgICAgICR7TEQ6
LWxkfSAtc2hhcmVkIC1vICR7VH0vJHsyIyMqL30gLXNvbmFtZSAkezIjIyovfSAtd2hvbGUtYXJj
aGl2ZSAkezF9IC1uby13aG9sZS1hcmNoaXZlIC1sb3RzICR7TERGTEFHU307CiAgICBlbHNlCiAg
ICAgICAgbG9jYWwgc29fdmVyc2lvbj0kezIjIyouc299OwogICAgICAgICR7TEQ6LWxkfSAtc2hh
cmVkIC1vICR7VH0vJHsyIyMqL30gLXNvbmFtZSBgYmFzZW5hbWUgJHsyLyR7c29fdmVyc2lvbn19
YCAtd2hvbGUtYXJjaGl2ZSAkezF9IC1uby13aG9sZS1hcmNoaXZlIC1sb3RzICR7TERGTEFHU307
CiAgICBmaTsKICAgIGRvbGliLnNvICR7VH0vJHsyIyMqL30KfQpjcmVhdGVfbWxfaW5jbHVkZXMg
KCkgCnsgCiAgICBsb2NhbCBkZXN0PSQxOwogICAgc2hpZnQ7CiAgICBsb2NhbCBiYXNlZGlycz0k
KGNyZWF0ZV9tbF9pbmNsdWRlcy1saXN0ZGlycyAiJEAiKTsKICAgIGNyZWF0ZV9tbF9pbmNsdWRl
cy1tYWtlZGVzdGRpcnMgJHtkZXN0fSAke2Jhc2VkaXJzfTsKICAgIGxvY2FsIGZpbGU7CiAgICBm
b3IgZmlsZSBpbiAkKGNyZWF0ZV9tbF9pbmNsdWRlcy1hbGxmaWxlcyAke2Jhc2VkaXJzfSk7CiAg
ICBkbwogICAgICAgICggZWNobyAiLyogQXV0b2dlbmVyYXRlZCBieSBjcmVhdGVfbWxfaW5jbHVk
ZXMoKSBpbiBtdWx0aWxpYi5lY2xhc3MgKi8iOwogICAgICAgIGxvY2FsIGRpcjsKICAgICAgICBm
b3IgZGlyIGluICR7YmFzZWRpcnN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtbIC1mICR7
RH0vJHtkaXJ9LyR7ZmlsZX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8gIiI7CiAgICAg
ICAgICAgICAgICBsb2NhbCBzeW09JChjcmVhdGVfbWxfaW5jbHVkZXMtc3ltX2Zvcl9kaXIgJHtk
aXJ9ICIkQCIpOwogICAgICAgICAgICAgICAgaWYgW1sgJHtzeW0vPX0gIT0gIiR7c3ltfSIgXV07
IHRoZW4KICAgICAgICAgICAgICAgICAgICBlY2hvICIjaWYgJHtzeW19IjsKICAgICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBpZiBbWyAke3N5bTo6MX0gPT0gIiEiIF1dOyB0
aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiNpZm5kZWYgJHtzeW06MX0iOwogICAg
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiI2lmZGVm
ICR7c3ltfSI7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBmaTsKICAg
ICAgICAgICAgICAgIGVjaG8gIiMgaW5jbHVkZSA8JChjcmVhdGVfbWxfaW5jbHVkZXMtYWJzb2x1
dGUgJHtkaXJ9LyR7ZmlsZX0pPiI7CiAgICAgICAgICAgICAgICBlY2hvICIjZW5kaWYgLyogJHtz
eW19ICovIjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZSApID4gIiR7RH0vJHtkZXN0fS8k
e2ZpbGV9IjsKICAgIGRvbmUKfQpjcmVhdGVfbWxfaW5jbHVkZXMtYWJzb2x1dGUgKCkgCnsgCiAg
ICBsb2NhbCBkc3Q9IiQoY3JlYXRlX21sX2luY2x1ZGVzLXRpZHlfcGF0aCAkMSkiOwogICAgZHN0
PSgke2RzdC8vXC8vIH0pOwogICAgbG9jYWwgaTsKICAgIGZvciAoKGk9MDsgaTwkeyNkc3RbKl19
OyBpKyspKQogICAgZG8KICAgICAgICBbICIke2RzdFtpXX0iID09ICJpbmNsdWRlIiBdICYmIGJy
ZWFrOwogICAgZG9uZTsKICAgIGxvY2FsIHN0cmlwX3VwdG89JGk7CiAgICBmb3IgKChpPXN0cmlw
X3VwdG8rMTsgaTwkeyNkc3RbKl19LTE7IGkrKykpCiAgICBkbwogICAgICAgIGVjaG8gLW4gJHtk
c3RbaV19LzsKICAgIGRvbmU7CiAgICBlY2hvIC1uICR7ZHN0W2ldfQp9CmNyZWF0ZV9tbF9pbmNs
dWRlcy1hbGxmaWxlcyAoKSAKeyAKICAgIGxvY2FsIGJhc2VkaXIgZmlsZTsKICAgIGZvciBiYXNl
ZGlyIGluICIkQCI7CiAgICBkbwogICAgICAgIGZvciBmaWxlIGluICQoZmluZCAiJHtEfSIvJHti
YXNlZGlyfSAtdHlwZSBmKTsKICAgICAgICBkbwogICAgICAgICAgICBlY2hvICR7ZmlsZS8ke0R9
XC8ke2Jhc2VkaXJ9XC8vfTsKICAgICAgICBkb25lOwogICAgZG9uZSB8IHNvcnQgfCB1bmlxCn0K
Y3JlYXRlX21sX2luY2x1ZGVzLWxpc3RkaXJzICgpIAp7IAogICAgbG9jYWwgZGlyczsKICAgIGxv
Y2FsIGRhdGE7CiAgICBmb3IgZGF0YSBpbiAiJEAiOwogICAgZG8KICAgICAgICBkaXJzPSIke2Rp
cnN9ICR7ZGF0YS8qOi99IjsKICAgIGRvbmU7CiAgICBlY2hvICR7ZGlyczoxfQp9CmNyZWF0ZV9t
bF9pbmNsdWRlcy1tYWtlZGVzdGRpcnMgKCkgCnsgCiAgICBsb2NhbCBkZXN0PSQxOwogICAgc2hp
ZnQ7CiAgICBsb2NhbCBiYXNlZGlycz0kQDsKICAgIGRvZGlyICR7ZGVzdH07CiAgICBsb2NhbCBi
YXNlZGlyOwogICAgZm9yIGJhc2VkaXIgaW4gJHtiYXNlZGlyc307CiAgICBkbwogICAgICAgIGxv
Y2FsIGRpcjsKICAgICAgICBmb3IgZGlyIGluICQoZmluZCAke0R9LyR7YmFzZWRpcn0gLXR5cGUg
ZCk7CiAgICAgICAgZG8KICAgICAgICAgICAgZG9kaXIgJHtkZXN0fS8ke2Rpci8ke0R9XC8ke2Jh
c2VkaXJ9L307CiAgICAgICAgZG9uZTsKICAgIGRvbmUKfQpjcmVhdGVfbWxfaW5jbHVkZXMtc3lt
X2Zvcl9kaXIgKCkgCnsgCiAgICBsb2NhbCBkaXI9JDE7CiAgICBzaGlmdDsKICAgIGxvY2FsIGRh
dGE7CiAgICBmb3IgZGF0YSBpbiAiJEAiOwogICAgZG8KICAgICAgICBpZiBbWyAke2RhdGF9ID09
ICo6JHtkaXJ9IF1dOyB0aGVuCiAgICAgICAgICAgIGVjaG8gJHtkYXRhLzoqL307CiAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIGVjaG8gIlNob3VsZG4ndCBi
ZSBoZXJlIC0tIGNyZWF0ZV9tbF9pbmNsdWRlcy1zeW1fZm9yX2RpciAkMSAkQCI7CiAgICBleGl0
IDEKfQpjcmVhdGVfbWxfaW5jbHVkZXMtdGlkeV9wYXRoICgpIAp7IAogICAgbG9jYWwgcmVtb3Zl
ZD0kMTsKICAgIGlmIFsgLW4gIiR7cmVtb3ZlZH0iIF07IHRoZW4KICAgICAgICB3aGlsZSBbICIk
e3JlbW92ZWR9IiAhPSAiJHtyZW1vdmVkL1wvXC8vXC99IiBdOyBkbwogICAgICAgICAgICByZW1v
dmVkPSR7cmVtb3ZlZC9cL1wvL1wvfTsKICAgICAgICBkb25lOwogICAgICAgIHdoaWxlIFsgIiR7
cmVtb3ZlZH0iICE9ICIke3JlbW92ZWQvL1wvLlwvL1wvfSIgXTsgZG8KICAgICAgICAgICAgcmVt
b3ZlZD0ke3JlbW92ZWQvL1wvLlwvL1wvfTsKICAgICAgICBkb25lOwogICAgICAgIFsgIiR7cmVt
b3ZlZCMjKi99IiA9ICIuIiBdICYmIHJlbW92ZWQ9JHtyZW1vdmVkJS8qfTsKICAgICAgICB3aGls
ZSBbICIke3JlbW92ZWR9IiAhPSAiJHtyZW1vdmVkLy9cLy4uXC99IiBdOyBkbwogICAgICAgICAg
ICBsb2NhbCBwMT0iJHtyZW1vdmVkJSVcLy4uXC8qfSI7CiAgICAgICAgICAgIGxvY2FsIHAyPSIk
e3JlbW92ZWQjKlwvLi5cL30iOwogICAgICAgICAgICByZW1vdmVkPSIke3AxJVwvKn0vJHtwMn0i
OwogICAgICAgIGRvbmU7CiAgICAgICAgWyAiJHtyZW1vdmVkIyMqL30iID0gIi4uIiBdICYmIHJl
bW92ZWQ9JHtyZW1vdmVkJS8qLyp9OwogICAgICAgIFsgIiR7cmVtb3ZlZCMjKi99IiA9ICIiIF0g
JiYgcmVtb3ZlZD0ke3JlbW92ZWQlLyp9OwogICAgICAgIGVjaG8gJHtyZW1vdmVkfTsKICAgIGZp
Cn0KZGFyd2ludG9vbGl6ZSAoKSAKeyAKICAgIGV3YXJuICJkYXJ3aW50b29saXplKCkgaXMgZGVw
cmVjYXRlZCwgcGxlYXNlIGp1c3QgdXNlIGVsaWJ0b29saXplKCkhIjsKICAgIGVsaWJ0b29saXpl
Cn0KZGxvcGVuX2xpYiAoKSAKeyAKICAgIGlmIFtbICR7RUxJQkN9ICE9ICpCU0QgXV07IHRoZW4K
ICAgICAgICBlY2hvICItbGRsIjsKICAgIGZpCn0KZG9pY29uICgpIAp7IAogICAgKCBsb2NhbCBp
IGogcmV0OwogICAgaW5zaW50byAvdXNyL3NoYXJlL3BpeG1hcHM7CiAgICBmb3IgaSBpbiAiJEAi
OwogICAgZG8KICAgICAgICBpZiBbWyAtZiAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgIGRvaW5z
ICIke2l9IjsKICAgICAgICAgICAgKChyZXQrPSQ/KSk7CiAgICAgICAgZWxzZQogICAgICAgICAg
ICBpZiBbWyAtZCAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBmb3IgaiBpbiAiJHtpfSIv
Ki5wbmc7CiAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIGRvaW5zICIke2p9
IjsKICAgICAgICAgICAgICAgICAgICAoKHJldCs9JD8pKTsKICAgICAgICAgICAgICAgIGRvbmU7
CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICgoKytyZXQpKTsKICAgICAgICAgICAg
Zmk7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgZXhpdCAke3JldH0gKQp9CmRvbWVudSAoKSAK
eyAKICAgICggbG9jYWwgaSBqIHJldD0wOwogICAgaW5zaW50byAvdXNyL3NoYXJlL2FwcGxpY2F0
aW9uczsKICAgIGZvciBpIGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtbIC1mICR7aX0gXV07
IHRoZW4KICAgICAgICAgICAgZG9pbnMgIiR7aX0iOwogICAgICAgICAgICAoKHJldCs9JD8pKTsK
ICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbIC1kICR7aX0gXV07IHRoZW4KICAgICAgICAg
ICAgICAgIGZvciBqIGluICIke2l9Ii8qLmRlc2t0b3A7CiAgICAgICAgICAgICAgICBkbwogICAg
ICAgICAgICAgICAgICAgIGRvaW5zICIke2p9IjsKICAgICAgICAgICAgICAgICAgICAoKHJldCs9
JD8pKTsKICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICgoKytyZXQpKTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAg
ZXhpdCAke3JldH0gKQp9CmRvcGFtZCAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIGRpZSAiZG9w
YW1kIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBhcmd1bWVudCI7CiAgICBpZiBoYXNxIHBhbSAke0lV
U0V9ICYmICEgdXNlIHBhbTsgdGhlbgogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICAoIGlu
c2ludG8gL2V0Yy9wYW0uZDsKICAgIGluc29wdHMgLW0gMDY0NDsKICAgIGRvaW5zICIkQCIgKSB8
fCBkaWUgImZhaWxlZCB0byBpbnN0YWxsICRAIjsKICAgIGNsZWFucGFtZCAiJEAiCn0KZG9wYW1t
b2QgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiBkaWUgImRvcGFtbW9kIHJlcXVpcmVzIGF0IGxl
YXN0IG9uZSBhcmd1bWVudCI7CiAgICBpZiBoYXNxIHBhbSAke0lVU0V9ICYmICEgdXNlIHBhbTsg
dGhlbgogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBleGVpbnRvICQoZ2V0cGFtX21vZF9k
aXIpOwogICAgZG9leGUgIiRAIiB8fCBkaWUgImZhaWxlZCB0byBpbnN0YWxsICRAIgp9CmRvcGFt
c2VjdXJpdHkgKCkgCnsgCiAgICBbWyAkIyAtbHQgMiBdXSAmJiBkaWUgImRvcGFtc2VjdXJpdHkg
cmVxdWlyZXMgYXQgbGVhc3QgdHdvIGFyZ3VtZW50cyI7CiAgICBpZiBoYXNxIHBhbSAke0lVU0V9
ICYmICEgdXNlIHBhbTsgdGhlbgogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICAoIGluc2lu
dG8gL2V0Yy9zZWN1cml0eS8kMTsKICAgIGluc29wdHMgLW0gMDY0NDsKICAgIGRvaW5zICIke0A6
Mn0iICkgfHwgZGllICJmYWlsZWQgdG8gaW5zdGFsbCAke0A6Mn0iCn0KZWFjbG9jYWwgKCkgCnsg
CiAgICBsb2NhbCBhY2xvY2FsX29wdHM7CiAgICBpZiBbWyAtbiAke0FUX000RElSfSBdXTsgdGhl
bgogICAgICAgIGZvciB4IGluICR7QVRfTTRESVJ9OwogICAgICAgIGRvCiAgICAgICAgICAgIGNh
c2UgIiR7eH0iIGluIAogICAgICAgICAgICAgICAgIi1JIikKCiAgICAgICAgICAgICAgICA7Owog
ICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICBbWyAhIC1kICR7eH0gXV0gJiYg
ZXdhcm4gImVhY2xvY2FsOiAnJHt4fScgZG9lcyBub3QgZXhpc3QiOwogICAgICAgICAgICAgICAg
ICAgIGFjbG9jYWxfb3B0cz0iJHthY2xvY2FsX29wdHN9IC1JICR7eH0iCiAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICBlc2FjOwogICAgICAgIGRvbmU7CiAgICBmaTsKICAgIFtbICEgLWYg
YWNsb2NhbC5tNCB8fCAtbiAkKGdyZXAgLWUgJ2dlbmVyYXRlZC4qYnkgYWNsb2NhbCcgYWNsb2Nh
bC5tNCkgXV0gJiYgYXV0b3Rvb2xzX3J1bl90b29sIGFjbG9jYWwgIiRAIiAke2FjbG9jYWxfb3B0
c30KfQplYXV0b2NvbmYgKCkgCnsgCiAgICBpZiBbWyAhIC1mIGNvbmZpZ3VyZS5hYyAmJiAhIC1m
IGNvbmZpZ3VyZS5pbiBdXTsgdGhlbgogICAgICAgIGVjaG87CiAgICAgICAgZWVycm9yICJObyBj
b25maWd1cmUue2FjLGlufSBwcmVzZW50IGluICckKHB3ZCB8IHNlZCAtZSAnczouKi86OicpJyEi
OwogICAgICAgIGVjaG87CiAgICAgICAgZGllICJObyBjb25maWd1cmUue2FjLGlufSBwcmVzZW50
ISI7CiAgICBmaTsKICAgIGF1dG90b29sc19ydW5fdG9vbCBhdXRvY29uZiAiJEAiCn0KZWF1dG9o
ZWFkZXIgKCkgCnsgCiAgICBbWyAtbiAkKGF1dG90b29sc19jaGVja19tYWNybyAiQUNfQ09ORklH
X0hFQURFUlMiKSBdXSB8fCByZXR1cm4gMDsKICAgIE5PX0ZBSUw9MSBhdXRvdG9vbHNfcnVuX3Rv
b2wgYXV0b2hlYWRlciAiJEAiCn0KZWF1dG9tYWtlICgpIAp7IAogICAgbG9jYWwgZXh0cmFfb3B0
czsKICAgIGxvY2FsIG1ha2VmaWxlX25hbWU7CiAgICBpZiBbWyAtZiBHTlVtYWtlZmlsZS5hbSBd
XTsgdGhlbgogICAgICAgIG1ha2VmaWxlX25hbWU9IkdOVW1ha2VmaWxlIjsKICAgIGVsc2UKICAg
ICAgICBpZiBbWyAtZiBNYWtlZmlsZS5hbSBdXTsgdGhlbgogICAgICAgICAgICBtYWtlZmlsZV9u
YW1lPSJNYWtlZmlsZSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICBmaTsKICAgIGZpOwogICAgaWYgW1sgLXogJHtGUk9NX0VBVVRPUkVDT05GfSAmJiAtZiAke21h
a2VmaWxlX25hbWV9LmluIF1dOyB0aGVuCiAgICAgICAgbG9jYWwgdXNlZF9hdXRvbWFrZTsKICAg
ICAgICBsb2NhbCBpbnN0YWxsZWRfYXV0b21ha2U7CiAgICAgICAgaW5zdGFsbGVkX2F1dG9tYWtl
PSQoYXV0b21ha2UgLS12ZXJzaW9uIHwgaGVhZCAtbiAxIHwgCQkJc2VkIC1lICdzOi4qKEdOVSBh
dXRvbWFrZSkgOjonKTsKICAgICAgICB1c2VkX2F1dG9tYWtlPSQoaGVhZCAtbiAxIDwgJHttYWtl
ZmlsZV9uYW1lfS5pbiB8IAkJCXNlZCAtZSAnczouKmJ5IGF1dG9tYWtlIFwoLipcKSBmcm9tIC4q
OlwxOicpOwogICAgICAgIGlmIFtbICR7aW5zdGFsbGVkX2F1dG9tYWtlfSAhPSAke3VzZWRfYXV0
b21ha2V9IF1dOyB0aGVuCiAgICAgICAgICAgIGVpbmZvICJBdXRvbWFrZSB1c2VkIGZvciB0aGUg
cGFja2FnZSAoJHt1c2VkX2F1dG9tYWtlfSkgZGlmZmVycyBmcm9tIjsKICAgICAgICAgICAgZWlu
Zm8gInRoZSBpbnN0YWxsZWQgdmVyc2lvbiAoJHtpbnN0YWxsZWRfYXV0b21ha2V9KS4iOwogICAg
ICAgICAgICBlYXV0b3JlY29uZjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAg
ICBmaTsKICAgIFtbIC1mIElOU1RBTEwgJiYgLWYgQVVUSE9SUyAmJiAtZiBDaGFuZ2VMb2cgJiYg
LWYgTkVXUyBdXSB8fCBleHRyYV9vcHRzPSIke2V4dHJhX29wdHN9IC0tZm9yZWlnbiI7CiAgICBh
dXRvdG9vbHNfcnVuX3Rvb2wgYXV0b21ha2UgLS1hZGQtbWlzc2luZyAtLWNvcHkgJHtleHRyYV9v
cHRzfSAiJEAiCn0KZWF1dG9yZWNvbmYgKCkgCnsgCiAgICBsb2NhbCBwd2Q9JChwd2QpIHggYXV4
ZGlyOwogICAgaWYgW1sgLXogJHtBVF9OT19SRUNVUlNJVkV9IF1dOyB0aGVuCiAgICAgICAgZm9y
IHggaW4gJChhdXRvdG9vbHNfZ2V0X3N1YmRpcnMpOwogICAgICAgIGRvCiAgICAgICAgICAgIGlm
IFtbIC1kICR7eH0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGNkICIke3h9IjsKICAgICAgICAg
ICAgICAgIEFUX05PRUxJQlRPT0xJWkU9InllcyIgZWF1dG9yZWNvbmY7CiAgICAgICAgICAgICAg
ICBjZCAiJHtwd2R9IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsKICAgIGZpOwogICAg
YXV4ZGlyPSQoYXV0b3Rvb2xzX2dldF9hdXhkaXIpOwogICAgZWluZm8gIlJ1bm5pbmcgZWF1dG9y
ZWNvbmYgaW4gJyQocHdkKScgLi4uIjsKICAgIFtbIC1uICR7YXV4ZGlyfSBdXSAmJiBta2RpciAt
cCAke2F1eGRpcn07CiAgICBlYWNsb2NhbDsKICAgIGlmICR7TElCVE9PTElaRTotbGlidG9vbGl6
ZX0gLW4gLS1pbnN0YWxsID4mL2Rldi9udWxsOyB0aGVuCiAgICAgICAgX2VsaWJ0b29saXplIC0t
Y29weSAtLWZvcmNlIC0taW5zdGFsbDsKICAgIGVsc2UKICAgICAgICBfZWxpYnRvb2xpemUgLS1j
b3B5IC0tZm9yY2U7CiAgICBmaTsKICAgIGVhdXRvY29uZjsKICAgIGVhdXRvaGVhZGVyOwogICAg
RlJPTV9FQVVUT1JFQ09ORj0ieWVzIiBlYXV0b21ha2UgJHtBTV9PUFRTfTsKICAgIFtbICR7QVRf
Tk9FTElCVE9PTElaRX0gPT0gInllcyIgXV0gJiYgcmV0dXJuIDA7CiAgICBlbGlidG9vbGl6ZTsK
ICAgIHJldHVybiAwCn0KZWJlZXAgKCkgCnsgCiAgICBsb2NhbCBuOwogICAgaWYgW1sgLXogJHtF
QkVFUF9JR05PUkV9IF1dOyB0aGVuCiAgICAgICAgZm9yICgobj0xIDsgbiA8PSAkezE6LTV9IDsg
bisrKSkKICAgICAgICBkbwogICAgICAgICAgICBlY2hvIC1uZSAiXGEiOwogICAgICAgICAgICBz
bGVlcCAwLjEgPiYvZGV2L251bGw7CiAgICAgICAgICAgIHNsZWVwIDAsMSA+Ji9kZXYvbnVsbDsK
ICAgICAgICAgICAgZWNobyAtbmUgIlxhIjsKICAgICAgICAgICAgc2xlZXAgMTsKICAgICAgICBk
b25lOwogICAgZmkKfQplY3ZzX2NsZWFuICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgc2V0IC0t
IC47CiAgICBmaW5kICIkQCIgLXR5cGUgZCAtbmFtZSAnQ1ZTJyAtcHJ1bmUgLXByaW50MCB8IHhh
cmdzIC0wIHJtIC1yZjsKICAgIGZpbmQgIiRAIiAtdHlwZSBmIC1uYW1lICcuY3ZzKicgLXByaW50
MCB8IHhhcmdzIC0wIHJtIC1yZgp9CmVkb3MydW5peCAoKSAKeyAKICAgIGVjaG8gIiRAIiB8IHhh
cmdzIHNlZCAtaSAncy9cciQvLycKfQplZ2V0ZW50ICgpIAp7IAogICAgY2FzZSAke0NIT1NUfSBp
biAKICAgICAgICAqLWRhcndpbiopCiAgICAgICAgICAgIGNhc2UgIiQyIiBpbiAKICAgICAgICAg
ICAgICAgICpbITAtOV0qKQogICAgICAgICAgICAgICAgICAgIG5pZHVtcCAkMSAuIHwgYXdrIC1G
IjoiICJ7IGlmIChcJDEgfiAvXiQyJC8pIHtwcmludCBcJDA7ZXhpdDt9IH0iCiAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICBuaWR1bXAgJDEg
LiB8IGF3ayAtRiI6IiAieyBpZiAoXCQzID09ICQyKSB7cHJpbnQgXCQwO2V4aXQ7fSB9IgogICAg
ICAgICAgICAgICAgOzsKICAgICAgICAgICAgZXNhYwogICAgICAgIDs7CiAgICAgICAgKi1mcmVl
YnNkKiB8ICotZHJhZ29uZmx5KikKICAgICAgICAgICAgbG9jYWwgb3B0cyBhY3Rpb249InVzZXIi
OwogICAgICAgICAgICBbWyAkMSA9PSAicGFzc3dkIiBdXSB8fCBhY3Rpb249Imdyb3VwIjsKICAg
ICAgICAgICAgaWYgW1sgJDIgPT0gW1s6ZGlnaXQ6XV0qIF1dOyB0aGVuCiAgICAgICAgICAgICAg
ICBbWyAke2FjdGlvbn0gPT0gInVzZXIiIF1dICYmIG9wdHM9Ii11IiB8fCBvcHRzPSItZyI7CiAg
ICAgICAgICAgIGZpOwogICAgICAgICAgICBwdyBzaG93ICR7YWN0aW9ufSAke29wdHN9ICIkMiIg
LXEKICAgICAgICA7OwogICAgICAgICotbmV0YnNkKiB8ICotb3BlbmJzZCopCiAgICAgICAgICAg
IGdyZXAgIiQyOlwqOiIgL2V0Yy8kMQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAg
dHlwZSAtcCBuc2NkID4mL2Rldi9udWxsICYmIG5zY2QgLWkgIiQxIjsKICAgICAgICAgICAgZ2V0
ZW50ICIkMSIgIiQyIgogICAgICAgIDs7CiAgICBlc2FjCn0KZWdldGhvbWUgKCkgCnsgCiAgICBl
bnQ9JChlZ2V0ZW50IHBhc3N3ZCAkMSk7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICot
ZGFyd2luKiB8ICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIGVjaG8gJHtl
bnR9IHwgY3V0IC1kOiAtZjkKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG8g
JHtlbnR9IHwgY3V0IC1kOiAtZjYKICAgICAgICA7OwogICAgZXNhYwp9CmVnZXRzaGVsbCAoKSAK
eyAKICAgIGVudD0kKGVnZXRlbnQgcGFzc3dkICIkMSIpOwogICAgY2FzZSAke0NIT1NUfSBpbiAK
ICAgICAgICAqLWRhcndpbiogfCAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAg
ICBlY2hvICR7ZW50fSB8IGN1dCAtZDogLWYxMAogICAgICAgIDs7CiAgICAgICAgKikKICAgICAg
ICAgICAgZWNobyAke2VudH0gY3V0IC1kOiAtZjcKICAgICAgICA7OwogICAgZXNhYwp9CmVsaWJ0
b29saXplICgpIAp7IAogICAgbG9jYWwgeD07CiAgICBsb2NhbCB5PTsKICAgIGxvY2FsIGRvX3Bv
cnRhZ2U9Im5vIjsKICAgIGxvY2FsIGRvX3JldmVyc2VkZXBzPSJubyI7CiAgICBsb2NhbCBkb19v
bmx5X3BhdGNoZXM9Im5vIjsKICAgIGxvY2FsIGRvX3VjbGliYz0ieWVzIjsKICAgIGxvY2FsIGRl
cHRvcmVtb3ZlPTsKICAgIGxvY2FsIG15X2Rpcmxpc3Q9OwogICAgbG9jYWwgZWx0X3BhdGNoZXM9
Imluc3RhbGwtc2ggbHRtYWluIHBvcnRhZ2UgcmVsaW5rIG1heF9jbWRfbGVuIHNlZCB0ZXN0IHRt
cCI7CiAgICBsb2NhbCBzdGFydF9kaXI9JHtQV0R9OwogICAgbXlfZGlybGlzdD0kKEVMVF9maW5k
X2x0bWFpbl9zaCk7CiAgICBmb3IgeCBpbiAiJEAiOwogICAgZG8KICAgICAgICBjYXNlICIke3h9
IiBpbiAKICAgICAgICAgICAgIi0tcG9ydGFnZSIpCiAgICAgICAgICAgICAgICBkb19wb3J0YWdl
PSJ5ZXMiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICItLXJldmVyc2UtZGVwcyIpCiAgICAg
ICAgICAgICAgICBkb19yZXZlcnNlZGVwcz0ieWVzIjsKICAgICAgICAgICAgICAgIGVsdF9wYXRj
aGVzPSIke2VsdF9wYXRjaGVzfSBmaXgtcmVsaW5rIgogICAgICAgICAgICA7OwogICAgICAgICAg
ICAiLS1wYXRjaC1vbmx5IikKICAgICAgICAgICAgICAgIGRvX29ubHlfcGF0Y2hlcz0ieWVzIgog
ICAgICAgICAgICA7OwogICAgICAgICAgICAiXi0tcmVtb3ZlLWludGVybmFsLWRlcD0iKikKICAg
ICAgICAgICAgICAgIGRlcHRvcmVtb3ZlPSQoZWNobyAiJHt4fSIgfCBzZWQgLWUgJ3N8LS1yZW1v
dmUtaW50ZXJuYWwtZGVwPXx8Jyk7CiAgICAgICAgICAgICAgICBbWyAtbiAke2RlcHRvcmVtb3Zl
fSBdXSAmJiBlbHRfcGF0Y2hlcz0iJHtlbHRfcGF0Y2hlc30gcmVtLWludC1kZXAiCiAgICAgICAg
ICAgIDs7CiAgICAgICAgICAgICItLXNoYWxsb3ciKQogICAgICAgICAgICAgICAgaWYgW1sgLWYg
JHtTfS9sdG1haW4uc2ggXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBteV9kaXJsaXN0PSR7
U307CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgbXlfZGlybGlzdD07
CiAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICA7OwogICAgICAgICAgICAiLS1uby11Y2xp
YmMiKQogICAgICAgICAgICAgICAgZG9fdWNsaWJjPSJubyIKICAgICAgICAgICAgOzsKICAgICAg
ICAgICAgKikKICAgICAgICAgICAgICAgIGVlcnJvciAiSW52YWxpZCBlbGlidG9vbGl6ZSBvcHRp
b246ICR7eH0iOwogICAgICAgICAgICAgICAgZGllICJlbGlidG9vbGl6ZSBjYWxsZWQgd2l0aCAk
e3h9ID8/IgogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICBkb25lOwogICAgW1sgJHtk
b191Y2xpYmN9ID09ICJ5ZXMiIF1dICYmIGVsdF9wYXRjaGVzPSIke2VsdF9wYXRjaGVzfSB1Y2xp
YmMtY29uZiB1Y2xpYmMtbHRjb25mIjsKICAgIFtbICR7Q0hPU1R9ID09ICoiLWZyZWVic2QiKiBd
XSAmJiBlbHRfcGF0Y2hlcz0iJHtlbHRfcGF0Y2hlc30gZmJzZC1jb25mIGZic2QtbHRjb25mIjsK
ICAgIFtbICR7Q0hPU1R9ID09ICoiLWRhcndpbiIqIF1dICYmIGVsdF9wYXRjaGVzPSIke2VsdF9w
YXRjaGVzfSBkYXJ3aW4tbHRjb25mIGRhcndpbi1sdG1haW4iOwogICAgZm9yIHggaW4gJHtteV9k
aXJsaXN0fTsKICAgIGRvCiAgICAgICAgbG9jYWwgdG1wPSQoZWNobyAiJHt4fSIgfCBzZWQgLWUg
InN8JHtXT1JLRElSfXx8Iik7CiAgICAgICAgZXhwb3J0IEVMVF9BUFBMSUVEX1BBVENIRVM9Owog
ICAgICAgIGV4cG9ydCBFTFRfTFRNQUlOX1NIPSIke3h9L2x0bWFpbi5zaCI7CiAgICAgICAgW1sg
LWYgJHt4fS8uZWxpYnRvb2xpemVkIF1dICYmIGNvbnRpbnVlOwogICAgICAgIGNkICR7eH07CiAg
ICAgICAgZWluZm8gIlJ1bm5pbmcgZWxpYnRvb2xpemUgaW46ICQoZWNobyAiLyR7dG1wfSIgfCBz
ZWQgLWUgJ3N8Ly98L3xnOyBzfF4vfHwnKSI7CiAgICAgICAgZm9yIHkgaW4gJHtlbHRfcGF0Y2hl
c307CiAgICAgICAgZG8KICAgICAgICAgICAgbG9jYWwgcmV0PTA7CiAgICAgICAgICAgIGNhc2Ug
IiR7eX0iIGluIAogICAgICAgICAgICAgICAgInBvcnRhZ2UiKQogICAgICAgICAgICAgICAgICAg
IGlmIFtbIC16ICQoZ3JlcCAnV2UgZG8gbm90IHdhbnQgcG9ydGFnZScgIiR7eH0vbHRtYWluLnNo
IikgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHt4
fS9sdG1haW4uc2giICIke3l9IjsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/OwogICAg
ICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgInJl
bS1pbnQtZGVwIikKICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9L2x0
bWFpbi5zaCIgIiR7eX0iICIke2RlcHRvcmVtb3ZlfSI7CiAgICAgICAgICAgICAgICAgICAgcmV0
PSQ/CiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgImZpeC1yZWxpbmsiKQogICAg
ICAgICAgICAgICAgICAgIGlmIFtbIC1uICQoZ3JlcCAnaW5zdF9wcmVmaXhfZGlyJyAiJHt4fS9s
dG1haW4uc2giKSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRj
aGVzICIke3h9L2x0bWFpbi5zaCIgIiR7eX0iOwogICAgICAgICAgICAgICAgICAgICAgICByZXQ9
JD87CiAgICAgICAgICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg
ICAgICAibWF4X2NtZF9sZW4iKQogICAgICAgICAgICAgICAgICAgIGlmIFtbIC1uICQoZ3JlcCAn
bWF4X2NtZF9sZW4nICIke3h9L2x0bWFpbi5zaCIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAg
ICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7eH0vbHRtYWluLnNoIiAiJHt5fSI7CiAgICAgICAg
ICAgICAgICAgICAgICAgIHJldD0kPzsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICJ1Y2xpYmMtY29uZiIpCiAgICAgICAgICAgICAgICAg
ICAgaWYgW1sgLWUgJHt4fS9jb25maWd1cmUgJiYgLW4gJChncmVwICdUcmFuc2Zvcm0gbGludXgn
ICIke3h9L2NvbmZpZ3VyZSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93
YWxrX3BhdGNoZXMgIiR7eH0vY29uZmlndXJlIiAiJHt5fSI7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHJldD0kPzsKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIFtbICEgLWUgJHt4fS9jb25maWd1cmUgJiYgLWUgJHt4fS8uLi9jb25maWd1cmUgJiYg
LW4gJChncmVwICdUcmFuc2Zvcm0gbGludXgnICIke3h9Ly4uL2NvbmZpZ3VyZSIpIF1dOyB0aGVu
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9Ly4uL2Nv
bmZpZ3VyZSIgIiR7eX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/OwogICAg
ICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICJ1Y2xpYmMtbHRjb25mIikKICAgICAgICAgICAgICAg
ICAgICBpZiBbWyAtcyAke3h9L2x0Y29uZmlnIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAg
ICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7eH0vbHRjb25maWciICIke3l9IjsKICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0PSQ/OwogICAgICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICAgICAgImZic2QtY29uZiIpCiAgICAgICAgICAgICAgICAgICAgaWYg
W1sgLWUgJHt4fS9jb25maWd1cmUgJiYgLW4gJChncmVwICd2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0n
ICIke3h9L2NvbmZpZ3VyZSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93
YWxrX3BhdGNoZXMgIiR7eH0vY29uZmlndXJlIiAiJHt5fSI7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHJldD0kPzsKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIFtbICEgLWUgJHt4fS9jb25maWd1cmUgJiYgLWUgJHt4fS8uLi9jb25maWd1cmUgJiYg
LW4gJChncmVwICd2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0nICIke3h9Ly4uL2NvbmZpZ3VyZSIpIF1d
OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9
Ly4uL2NvbmZpZ3VyZSIgIiR7eX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/
OwogICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBmaQogICAg
ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICJmYnNkLWx0Y29uZiIpCiAgICAgICAgICAg
ICAgICAgICAgaWYgW1sgLXMgJHt4fS9sdGNvbmZpZyBdXTsgdGhlbgogICAgICAgICAgICAgICAg
ICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9L2x0Y29uZmlnIiAiJHt5fSI7CiAgICAgICAg
ICAgICAgICAgICAgICAgIHJldD0kPzsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICJkYXJ3aW4tbHRjb25mIikKICAgICAgICAgICAgICAg
ICAgICBpZiBbWyAtcyAke3h9L2x0Y29uZmlnIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAg
ICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7eH0vbHRjb25maWciICIke3l9IjsKICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0PSQ/OwogICAgICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICAgICAgImluc3RhbGwtc2giKQogICAgICAgICAgICAgICAgICAgIEVM
VF93YWxrX3BhdGNoZXMgIiR7eH0vaW5zdGFsbC1zaCIgIiR7eX0iOwogICAgICAgICAgICAgICAg
ICAgIHJldD0kPwogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAg
ICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHt4fS9sdG1haW4uc2giICIke3l9IjsKICAg
ICAgICAgICAgICAgICAgICByZXQ9JD8KICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVz
YWM7CiAgICAgICAgICAgIGlmIFtbICR7cmV0fSAtbmUgMCBdXTsgdGhlbgogICAgICAgICAgICAg
ICAgY2FzZSAke3l9IGluIAogICAgICAgICAgICAgICAgICAgICJyZWxpbmsiKQogICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhbCB2ZXJzaW9uPSQoRUxUX2xpYnRvb2xfdmVyc2lvbiAiJHt4fS9s
dG1haW4uc2giKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sgLXogJChncmVwICdpbnN0
X3ByZWZpeF9kaXInICIke3h9L2x0bWFpbi5zaCIpICYmICQoVkVSX3RvX2ludCAiJHt2ZXJzaW9u
fSIpIC1nZSAkKFZFUl90b19pbnQgIjEuNC4wIikgXV07IHRoZW4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV3YXJuICIgIENvdWxkIG5vdCBhcHBseSByZWxpbmsucGF0Y2ghIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg
ICAgICAgICJwb3J0YWdlIikKICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHtkb19wb3J0
YWdlfSA9PSAieWVzIiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sg
LXogJChncmVwICdXZSBkbyBub3Qgd2FudCBwb3J0YWdlJyAiJHt4fS9sdG1haW4uc2giKSBdXTsg
dGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZWVycm9yICJQb3J0YWdlIHBhdGNoIHJlcXVlc3RlZCwgYnV0IGZh
aWxlZCB0byBhcHBseSEiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVlcnJvciAi
UGxlYXNlIGJ1ZyBhemFyYWggb3IgdmFwaWVyIHRvIGFkZCBwcm9wZXIgcGF0Y2guIjsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgIlBvcnRhZ2UgcGF0Y2ggcmVxdWVzdGVkLCBi
dXQgZmFpbGVkIHRvIGFwcGx5ISI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
W1sgLW4gJChncmVwICdXZSBkbyBub3Qgd2FudCBwb3J0YWdlJyAiJHt4fS9sdG1haW4uc2giKSBd
XTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwg
dmVyc2lvbj0kKCAJCQkJCQkJCQlldmFsICQoZ3JlcCAtZSAnXltbOnNwYWNlOl1dKlZFUlNJT049
JyAiJHt4fS9sdG1haW4uc2giKTsgCQkJCQkJCQkJZWNobyAiJHtWRVJTSU9OfSIpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZWVycm9yICJQb3J0YWdlIHBhdGNoIGZhaWxlZCB0byBhcHBseSAobHRtYWluLnNoIHZl
cnNpb24gJHt2ZXJzaW9ufSkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZXJy
b3IgIlBsZWFzZSBidWcgYXphcmFoIG9yIHZhcGllciB0byBhZGQgcHJvcGVyIHBhdGNoLiI7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGllICJQb3J0YWdlIHBhdGNoIGZhaWxlZCB0
byBhcHBseSEiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFTFRfQVBQTElFRF9QQVRDSEVTPSJwb3J0YWdlIjsKICAgICAgICAgICAg
ICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg
ICJ1Y2xpYmMtIiopCiAgICAgICAgICAgICAgICAgICAgICAgIFtbICR7Q0hPU1R9ID09ICoiLXVj
bGliYyIgXV0gJiYgZXdhcm4gIiAgdUNsaWJjIHBhdGNoIHNldCAnJHt5fScgZmFpbGVkIHRvIGFw
cGx5ISIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgICJmYnNkLSIq
KQogICAgICAgICAgICAgICAgICAgICAgICBpZiBbWyAke0NIT1NUfSA9PSAqIi1mcmVlYnNkIiog
XV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFtbIC16ICQoZ3JlcCAnSGFu
ZGxlIEdlbnRvby9GcmVlQlNEIGFzIGl0IHdhcyBMaW51eCcgCQkJCQkJCQkiJHt4fS9jb25maWd1
cmUiICIke3h9Ly4uL2NvbmZpZ3VyZSIgMj4vZGV2L251bGwpIF1dOyB0aGVuCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZWVycm9yICIgIEZyZWVCU0QgcGF0Y2ggc2V0ICcke3l9JyBm
YWlsZWQgdG8gYXBwbHkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgIkZy
ZWVCU0QgcGF0Y2ggc2V0ICcke3l9JyBmYWlsZWQgdG8gYXBwbHkhIjsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAg
ICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgImRhcndpbi0iKikKICAgICAgICAgICAgICAg
ICAgICAgICAgW1sgJHtDSE9TVH0gPT0gKiItZGFyd2luIiogXV0gJiYgZXdhcm4gIiAgRGFyd2lu
IHBhdGNoIHNldCAnJHt5fScgZmFpbGVkIHRvIGFwcGx5ISIKICAgICAgICAgICAgICAgICAgICA7
OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsKICAg
ICAgICBpZiBbWyAteiAke0VMVF9BUFBMSUVEX1BBVENIRVN9IF1dOyB0aGVuCiAgICAgICAgICAg
IGlmIFtbICR7ZG9fcG9ydGFnZX0gPT0gIm5vIiAmJiAke2RvX3JldmVyc2VkZXBzfSA9PSAibm8i
ICYmICR7ZG9fb25seV9wYXRjaGVzfSA9PSAibm8iICYmICR7ZGVwdG9yZW1vdmV9ID09ICIiIF1d
OyB0aGVuCiAgICAgICAgICAgICAgICBld2FybiAiQ2Fubm90IGFwcGx5IGFueSBwYXRjaGVzLCBw
bGVhc2UgZmlsZSBhIGJ1ZyBhYm91dCB0aGlzIjsKICAgICAgICAgICAgICAgIGRpZTsKICAgICAg
ICAgICAgZmk7CiAgICAgICAgZmk7CiAgICAgICAgW1sgLWYgJHt4fS9saWJ0b29sIF1dICYmIHJt
IC1mICIke3h9L2xpYnRvb2wiOwogICAgICAgIHRvdWNoICIke3h9Ly5lbGlidG9vbGl6ZWQiOwog
ICAgZG9uZTsKICAgIGNkICIke3N0YXJ0X2Rpcn0iCn0KZW1rdGVtcCAoKSAKeyAKICAgIGxvY2Fs
IGV4ZT0idG91Y2giOwogICAgW1sgJDEgPT0gLWQgXV0gJiYgZXhlPSJta2RpciIgJiYgc2hpZnQ7
CiAgICBsb2NhbCB0b3BkaXI9JDE7CiAgICBpZiBbWyAteiAke3RvcGRpcn0gXV07IHRoZW4KICAg
ICAgICBbWyAteiAke1R9IF1dICYmIHRvcGRpcj0iL3RtcCIgfHwgdG9wZGlyPSR7VH07CiAgICBm
aTsKICAgIGlmICEgdHlwZSAtUCBta3RlbXAgPiAvZGV2L251bGw7IHRoZW4KICAgICAgICBsb2Nh
bCB0bXA9LzsKICAgICAgICB3aGlsZSBbWyAtZSAke3RtcH0gXV07IGRvCiAgICAgICAgICAgIHRt
cD0ke3RvcGRpcn0vdG1wLiR7UkFORE9NfS4ke1JBTkRPTX0uJHtSQU5ET019OwogICAgICAgIGRv
bmU7CiAgICAgICAgJHtleGV9ICIke3RtcH0iIHx8ICR7ZXhlfSAtcCAiJHt0bXB9IjsKICAgICAg
ICBlY2hvICIke3RtcH0iOwogICAgZWxzZQogICAgICAgIGlmIFtbICR7ZXhlfSA9PSAidG91Y2gi
IF1dOyB0aGVuCiAgICAgICAgICAgIFRNUERJUj0iJHt0b3BkaXJ9IiBta3RlbXAgLXQgdG1wLlhY
WFhYWFhYWFg7CiAgICAgICAgZWxzZQogICAgICAgICAgICBUTVBESVI9IiR7dG9wZGlyfSIgbWt0
ZW1wIC1kdCB0bXAuWFhYWFhYWFhYWDsKICAgICAgICBmaTsKICAgIGZpCn0KZW5ld2dyb3VwICgp
IAp7IAogICAgY2FzZSAke0VCVUlMRF9QSEFTRX0gaW4gCiAgICAgICAgdW5wYWNrIHwgY29tcGls
ZSB8IHRlc3QgfCBpbnN0YWxsKQogICAgICAgICAgICBlZXJyb3IgIidlbmV3Z3JvdXAoKScgY2Fs
bGVkIGZyb20gJyR7RUJVSUxEX1BIQVNFfSgpJyB3aGljaCBpcyBub3QgYSBwa2dfKiBmdW5jdGlv
bi4iOwogICAgICAgICAgICBlZXJyb3IgIlBhY2thZ2UgZmFpbHMgYXQgUUEgYW5kIGF0IGxpZmUu
ICBQbGVhc2UgZmlsZSBhIGJ1Zy4iOwogICAgICAgICAgICBkaWUgIkJhZCBwYWNrYWdlISAgZW5l
d2dyb3VwIGlzIG9ubHkgZm9yIHVzZSBpbiBwa2dfKiBmdW5jdGlvbnMhIgogICAgICAgIDs7CiAg
ICBlc2FjOwogICAgbG9jYWwgZWdyb3VwPSIkMSI7CiAgICBzaGlmdDsKICAgIGlmIFsgLXogIiR7
ZWdyb3VwfSIgXTsgdGhlbgogICAgICAgIGVlcnJvciAiTm8gZ3JvdXAgc3BlY2lmaWVkICEiOwog
ICAgICAgIGRpZSAiQ2Fubm90IGNhbGwgZW5ld2dyb3VwIHdpdGhvdXQgYSBncm91cCI7CiAgICBm
aTsKICAgIGlmIFtbIC1uICQoZWdldGVudCBncm91cCAiJHtlZ3JvdXB9IikgXV07IHRoZW4KICAg
ICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgZWluZm8gIkFkZGluZyBncm91cCAnJHtlZ3JvdXB9
JyB0byB5b3VyIHN5c3RlbSAuLi4iOwogICAgbG9jYWwgb3B0cz07CiAgICBsb2NhbCBlZ2lkPSIk
MSI7CiAgICBzaGlmdDsKICAgIGlmIFsgISAteiAiJHtlZ2lkfSIgXTsgdGhlbgogICAgICAgIGlm
IFsgIiR7ZWdpZH0iIC1ndCAwIF07IHRoZW4KICAgICAgICAgICAgaWYgWyAteiAiYGVnZXRlbnQg
Z3JvdXAgJHtlZ2lkfWAiIF07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFtbICIke0NIT1NUfSIg
PT0gKi1kYXJ3aW4qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgb3B0cz0iJHtvcHRzfSAk
e2VnaWR9IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBvcHRzPSIk
e29wdHN9IC1nICR7ZWdpZH0iOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgIGVnaWQ9Im5leHQgYXZhaWxhYmxlOyByZXF1ZXN0ZWQgZ2lkIHRha2Vu
IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBlZXJyb3IgIkdyb3Vw
aWQgZ2l2ZW4gYnV0IGlzIG5vdCBncmVhdGVyIHRoYW4gMCAhIjsKICAgICAgICAgICAgZGllICIk
e2VnaWR9IGlzIG5vdCBhIHZhbGlkIEdJRCI7CiAgICAgICAgZmk7CiAgICBlbHNlCiAgICAgICAg
ZWdpZD0ibmV4dCBhdmFpbGFibGUiOwogICAgZmk7CiAgICBlaW5mbyAiIC0gR3JvdXBpZDogJHtl
Z2lkfSI7CiAgICBsb2NhbCBlZXh0cmE9IiRAIjsKICAgIG9wdHM9IiR7b3B0c30gJHtlZXh0cmF9
IjsKICAgIGxvY2FsIG9sZHNhbmRib3g9IiR7U0FOREJPWF9PTn0iOwogICAgZXhwb3J0IFNBTkRC
T1hfT049IjAiOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAqLWRhcndpbiopCiAgICAg
ICAgICAgIGlmIFsgISAteiAiJHtlZXh0cmF9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBlaW5m
byAiRXh0cmEgb3B0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBvbiBEYXJ3aW4vT1MgWCB5ZXQiOwog
ICAgICAgICAgICAgICAgZWluZm8gIlBsZWFzZSByZXBvcnQgdGhlIGVidWlsZCBhbG9uZyB3aXRo
IHRoZSBpbmZvIGJlbG93IjsKICAgICAgICAgICAgICAgIGVpbmZvICJlZXh0cmE6ICR7ZWV4dHJh
fSI7CiAgICAgICAgICAgICAgICBkaWUgIlJlcXVpcmVkIGZ1bmN0aW9uIG1pc3NpbmciOwogICAg
ICAgICAgICBmaTsKICAgICAgICAgICAgY2FzZSAke2VnaWR9IGluIAogICAgICAgICAgICAgICAg
KlshMC05XSopCiAgICAgICAgICAgICAgICAgICAgZm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8PSA5
OTk7IGVnaWQrKykpCiAgICAgICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICAg
ICAgW1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdpZH0pIF1dICYmIGJyZWFrOwogICAgICAgICAg
ICAgICAgICAgIGRvbmUKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAg
ICAgICAgIGRzY2wgLiBjcmVhdGUgL2dyb3Vwcy8ke2Vncm91cH0gZ2lkICR7ZWdpZH07CiAgICAg
ICAgICAgIGRzY2wgLiBjcmVhdGUgL2dyb3Vwcy8ke2Vncm91cH0gcGFzc3dkICcqJwogICAgICAg
IDs7CiAgICAgICAgKi1mcmVlYnNkKiB8ICotZHJhZ29uZmx5KikKICAgICAgICAgICAgY2FzZSAk
e2VnaWR9IGluIAogICAgICAgICAgICAgICAgKlshMC05XSopCiAgICAgICAgICAgICAgICAgICAg
Zm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8PSA5OTk7IGVnaWQrKykpCiAgICAgICAgICAgICAgICAg
ICAgZG8KICAgICAgICAgICAgICAgICAgICAgICAgW1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdp
ZH0pIF1dICYmIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRvbmUKICAgICAgICAgICAgICAg
IDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgIHB3IGdyb3VwYWRkICR7ZWdyb3VwfSAt
ZyAke2VnaWR9IHx8IGRpZSAiZW5ld2dyb3VwIGZhaWxlZCIKICAgICAgICA7OwogICAgICAgICot
bmV0YnNkKikKICAgICAgICAgICAgY2FzZSAke2VnaWR9IGluIAogICAgICAgICAgICAgICAgKlsh
MC05XSopCiAgICAgICAgICAgICAgICAgICAgZm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8PSA5OTk7
IGVnaWQrKykpCiAgICAgICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICAgICAg
W1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdpZH0pIF1dICYmIGJyZWFrOwogICAgICAgICAgICAg
ICAgICAgIGRvbmUKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAg
ICAgIGdyb3VwYWRkIC1nICR7ZWdpZH0gJHtlZ3JvdXB9IHx8IGRpZSAiZW5ld2dyb3VwIGZhaWxl
ZCIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGdyb3VwYWRkICR7b3B0c30gJHtl
Z3JvdXB9IHx8IGRpZSAiZW5ld2dyb3VwIGZhaWxlZCIKICAgICAgICA7OwogICAgZXNhYzsKICAg
IGV4cG9ydCBTQU5EQk9YX09OPSIke29sZHNhbmRib3h9Igp9CmVuZXd1c2VyICgpIAp7IAogICAg
Y2FzZSAke0VCVUlMRF9QSEFTRX0gaW4gCiAgICAgICAgdW5wYWNrIHwgY29tcGlsZSB8IHRlc3Qg
fCBpbnN0YWxsKQogICAgICAgICAgICBlZXJyb3IgIidlbmV3dXNlcigpJyBjYWxsZWQgZnJvbSAn
JHtFQlVJTERfUEhBU0V9KCknIHdoaWNoIGlzIG5vdCBhIHBrZ18qIGZ1bmN0aW9uLiI7CiAgICAg
ICAgICAgIGVlcnJvciAiUGFja2FnZSBmYWlscyBhdCBRQSBhbmQgYXQgbGlmZS4gIFBsZWFzZSBm
aWxlIGEgYnVnLiI7CiAgICAgICAgICAgIGRpZSAiQmFkIHBhY2thZ2UhICBlbmV3dXNlciBpcyBv
bmx5IGZvciB1c2UgaW4gcGtnXyogZnVuY3Rpb25zISIKICAgICAgICA7OwogICAgZXNhYzsKICAg
IGxvY2FsIGV1c2VyPSQxOwogICAgc2hpZnQ7CiAgICBpZiBbWyAteiAke2V1c2VyfSBdXTsgdGhl
bgogICAgICAgIGVlcnJvciAiTm8gdXNlcm5hbWUgc3BlY2lmaWVkICEiOwogICAgICAgIGRpZSAi
Q2Fubm90IGNhbGwgZW5ld3VzZXIgd2l0aG91dCBhIHVzZXJuYW1lIjsKICAgIGZpOwogICAgaWYg
W1sgLW4gJChlZ2V0ZW50IHBhc3N3ZCAiJHtldXNlcn0iKSBdXTsgdGhlbgogICAgICAgIHJldHVy
biAwOwogICAgZmk7CiAgICBlaW5mbyAiQWRkaW5nIHVzZXIgJyR7ZXVzZXJ9JyB0byB5b3VyIHN5
c3RlbSAuLi4iOwogICAgbG9jYWwgb3B0cz07CiAgICBsb2NhbCBldWlkPSQxOwogICAgc2hpZnQ7
CiAgICBpZiBbWyAtbiAke2V1aWR9ICYmICR7ZXVpZH0gIT0gLTEgXV07IHRoZW4KICAgICAgICBp
ZiBbWyAke2V1aWR9IC1ndCAwIF1dOyB0aGVuCiAgICAgICAgICAgIGlmIFtbIC1uICQoZWdldGVu
dCBwYXNzd2QgJHtldWlkfSkgXV07IHRoZW4KICAgICAgICAgICAgICAgIGV1aWQ9Im5leHQiOwog
ICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGVlcnJvciAiVXNlcmlkIGdp
dmVuIGJ1dCBpcyBub3QgZ3JlYXRlciB0aGFuIDAgISI7CiAgICAgICAgICAgIGRpZSAiJHtldWlk
fSBpcyBub3QgYSB2YWxpZCBVSUQiOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGV1aWQ9
Im5leHQiOwogICAgZmk7CiAgICBpZiBbWyAke2V1aWR9ID09ICJuZXh0IiBdXTsgdGhlbgogICAg
ICAgIGZvciAoKGV1aWQgPSAxMDE7IGV1aWQgPD0gOTk5OyBldWlkKyspKQogICAgICAgIGRvCiAg
ICAgICAgICAgIFtbIC16ICQoZWdldGVudCBwYXNzd2QgJHtldWlkfSkgXV0gJiYgYnJlYWs7CiAg
ICAgICAgZG9uZTsKICAgIGZpOwogICAgb3B0cz0iJHtvcHRzfSAtdSAke2V1aWR9IjsKICAgIGVp
bmZvICIgLSBVc2VyaWQ6ICR7ZXVpZH0iOwogICAgbG9jYWwgZXNoZWxsPSQxOwogICAgc2hpZnQ7
CiAgICBpZiBbWyAhIC16ICR7ZXNoZWxsfSBdXSAmJiBbWyAke2VzaGVsbH0gIT0gIi0xIiBdXTsg
dGhlbgogICAgICAgIGlmIFtbICEgLWUgJHtST09UfSR7ZXNoZWxsfSBdXTsgdGhlbgogICAgICAg
ICAgICBlZXJyb3IgIkEgc2hlbGwgd2FzIHNwZWNpZmllZCBidXQgaXQgZG9lcyBub3QgZXhpc3Qg
ISI7CiAgICAgICAgICAgIGRpZSAiJHtlc2hlbGx9IGRvZXMgbm90IGV4aXN0IGluICR7Uk9PVH0i
OwogICAgICAgIGZpOwogICAgICAgIGlmIFtbICR7ZXNoZWxsfSA9PSAqL2ZhbHNlIHx8ICR7ZXNo
ZWxsfSA9PSAqL25vbG9naW4gXV07IHRoZW4KICAgICAgICAgICAgZWVycm9yICJEbyBub3Qgc3Bl
Y2lmeSAke2VzaGVsbH0geW91cnNlbGYsIHVzZSAtMSI7CiAgICAgICAgICAgIGRpZSAiUGFzcyAn
LTEnIGFzIHRoZSBzaGVsbCBwYXJhbWV0ZXIiOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAg
IGZvciBzaGVsbCBpbiAvc2Jpbi9ub2xvZ2luIC91c3Ivc2Jpbi9ub2xvZ2luIC9iaW4vZmFsc2Ug
L3Vzci9iaW4vZmFsc2UgL2Rldi9udWxsOwogICAgICAgIGRvCiAgICAgICAgICAgIFtbIC14ICR7
Uk9PVH0ke3NoZWxsfSBdXSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgICAgIGlmIFtbICR7
c2hlbGx9ID09ICIvZGV2L251bGwiIF1dOyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiVW5hYmxl
IHRvIGlkZW50aWZ5IHRoZSBzaGVsbCB0byB1c2UsIHByb2NlZWRpbmcgd2l0aCB1c2VybGFuZCBk
ZWZhdWx0LiI7CiAgICAgICAgICAgIGNhc2UgJHtVU0VSTEFORH0gaW4gCiAgICAgICAgICAgICAg
ICBHTlUpCiAgICAgICAgICAgICAgICAgICAgc2hlbGw9Ii9iaW4vZmFsc2UiCiAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgQlNEKQogICAgICAgICAgICAgICAgICAgIHNoZWxsPSIv
c2Jpbi9ub2xvZ2luIgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIERhcndpbikK
ICAgICAgICAgICAgICAgICAgICBzaGVsbD0iL3Vzci9zYmluL25vbG9naW4iCiAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICBkaWUgIlVuYWJs
ZSB0byBpZGVudGlmeSB0aGUgZGVmYXVsdCBzaGVsbCBmb3IgdXNlcmxhbmQgJHtVU0VSTEFORH0i
CiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICBlc2FjOwogICAgICAgIGZpOwogICAgICAg
IGVzaGVsbD0ke3NoZWxsfTsKICAgIGZpOwogICAgZWluZm8gIiAtIFNoZWxsOiAke2VzaGVsbH0i
OwogICAgb3B0cz0iJHtvcHRzfSAtcyAke2VzaGVsbH0iOwogICAgbG9jYWwgZWhvbWU9JDE7CiAg
ICBzaGlmdDsKICAgIGlmIFtbIC16ICR7ZWhvbWV9IF1dIHx8IFtbICR7ZWhvbWV9ID09ICItMSIg
XV07IHRoZW4KICAgICAgICBlaG9tZT0iL2Rldi9udWxsIjsKICAgIGZpOwogICAgZWluZm8gIiAt
IEhvbWU6ICR7ZWhvbWV9IjsKICAgIG9wdHM9IiR7b3B0c30gLWQgJHtlaG9tZX0iOwogICAgbG9j
YWwgZWdyb3Vwcz0kMTsKICAgIHNoaWZ0OwogICAgaWYgW1sgISAteiAke2Vncm91cHN9IF1dOyB0
aGVuCiAgICAgICAgbG9jYWwgb2xkaWZzPSR7SUZTfTsKICAgICAgICBsb2NhbCBkZWZncm91cD0i
IiBleGdyb3Vwcz0iIjsKICAgICAgICBleHBvcnQgSUZTPSIsIjsKICAgICAgICBmb3IgZyBpbiAk
e2Vncm91cHN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGV4cG9ydCBJRlM9JHtvbGRpZnN9Owog
ICAgICAgICAgICBpZiBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgIiR7Z30iKSBdXTsgdGhlbgogICAg
ICAgICAgICAgICAgZWVycm9yICJZb3UgbXVzdCBhZGQgZ3JvdXAgJHtnfSB0byB0aGUgc3lzdGVt
IGZpcnN0IjsKICAgICAgICAgICAgICAgIGRpZSAiJHtnfSBpcyBub3QgYSB2YWxpZCBHSUQiOwog
ICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgW1sgLXogJHtkZWZncm91cH0gXV07IHRoZW4K
ICAgICAgICAgICAgICAgIGRlZmdyb3VwPSR7Z307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgIGV4Z3JvdXBzPSIke2V4Z3JvdXBzfSwke2d9IjsKICAgICAgICAgICAgZmk7CiAgICAg
ICAgICAgIGV4cG9ydCBJRlM9IiwiOwogICAgICAgIGRvbmU7CiAgICAgICAgZXhwb3J0IElGUz0k
e29sZGlmc307CiAgICAgICAgb3B0cz0iJHtvcHRzfSAtZyAke2RlZmdyb3VwfSI7CiAgICAgICAg
aWYgW1sgISAteiAke2V4Z3JvdXBzfSBdXTsgdGhlbgogICAgICAgICAgICBvcHRzPSIke29wdHN9
IC1HICR7ZXhncm91cHM6MX0iOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGVncm91cHM9
Iihub25lKSI7CiAgICBmaTsKICAgIGVpbmZvICIgLSBHcm91cHM6ICR7ZWdyb3Vwc30iOwogICAg
bG9jYWwgb2xkc2FuZGJveD0ke1NBTkRCT1hfT059OwogICAgZXhwb3J0IFNBTkRCT1hfT049IjAi
OwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAqLWRhcndpbiopCiAgICAgICAgICAgIGlm
IFtbIC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBkc2NsIC4gY3JlYXRlIC91c2Vycy8k
e2V1c2VyfSB1aWQgJHtldWlkfTsKICAgICAgICAgICAgICAgIGRzY2wgLiBjcmVhdGUgL3VzZXJz
LyR7ZXVzZXJ9IHNoZWxsICR7ZXNoZWxsfTsKICAgICAgICAgICAgICAgIGRzY2wgLiBjcmVhdGUg
L3VzZXJzLyR7ZXVzZXJ9IGhvbWUgJHtlaG9tZX07CiAgICAgICAgICAgICAgICBkc2NsIC4gY3Jl
YXRlIC91c2Vycy8ke2V1c2VyfSByZWFsbmFtZSAiYWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0i
OwogICAgICAgICAgICAgICAgbG9jYWwgb2xkaWZzPSR7SUZTfTsKICAgICAgICAgICAgICAgIGV4
cG9ydCBJRlM9IiwiOwogICAgICAgICAgICAgICAgZm9yIGcgaW4gJHtlZ3JvdXBzfTsKICAgICAg
ICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgZHNjbCAuIG1lcmdlIC9ncm91cHMvJHtn
fSB1c2VycyAke2V1c2VyfTsKICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgICAgICBl
eHBvcnQgSUZTPSR7b2xkaWZzfTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWlu
Zm8gIkV4dHJhIG9wdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gRGFyd2luIHlldCI7CiAgICAg
ICAgICAgICAgICBlaW5mbyAiUGxlYXNlIHJlcG9ydCB0aGUgZWJ1aWxkIGFsb25nIHdpdGggdGhl
IGluZm8gYmVsb3ciOwogICAgICAgICAgICAgICAgZWluZm8gImVleHRyYTogJEAiOwogICAgICAg
ICAgICAgICAgZGllICJSZXF1aXJlZCBmdW5jdGlvbiBtaXNzaW5nIjsKICAgICAgICAgICAgZmkK
ICAgICAgICA7OwogICAgICAgICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAg
IGlmIFtbIC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBwdyB1c2VyYWRkICR7ZXVzZXJ9
ICR7b3B0c30gLWMgImFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7UE59IiBkaWUgImVuZXd1c2VyIGZh
aWxlZCI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGVpbmZvICIgLSBFeHRyYTog
JEAiOwogICAgICAgICAgICAgICAgcHcgdXNlcmFkZCAke2V1c2VyfSAke29wdHN9ICIkQCIgfHwg
ZGllICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAg
Ki1uZXRic2QqKQogICAgICAgICAgICBpZiBbWyAteiAkQCBdXTsgdGhlbgogICAgICAgICAgICAg
ICAgdXNlcmFkZCAke29wdHN9ICR7ZXVzZXJ9IHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAgICAg
ICAgICAgICAgICB1c2VyYWRkICR7b3B0c30gJHtldXNlcn0gIiRAIiB8fCBkaWUgImVuZXd1c2Vy
IGZhaWxlZCI7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAqLW9wZW5ic2QqKQog
ICAgICAgICAgICBpZiBbWyAteiAkQCBdXTsgdGhlbgogICAgICAgICAgICAgICAgdXNlcmFkZCAt
dSAke2V1aWR9IC1zICR7ZXNoZWxsfSAtZCAke2Vob21lfSAtYyAiQWRkZWQgYnkgcG9ydGFnZSBm
b3IgJHtQTn0iIC1nICR7ZWdyb3Vwc30gJHtldXNlcn0gfHwgZGllICJlbmV3dXNlciBmYWlsZWQi
OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiIC0gRXh0cmE6ICRAIjsK
ICAgICAgICAgICAgICAgIHVzZXJhZGQgLXUgJHtldWlkfSAtcyAke2VzaGVsbH0gLWQgJHtlaG9t
ZX0gLWMgIkFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7UE59IiAtZyAke2Vncm91cHN9ICR7ZXVzZXJ9
ICIkQCIgfHwgZGllICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBmaQogICAgICAgIDs7
CiAgICAgICAgKikKICAgICAgICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAgICAgICAg
ICAgIHVzZXJhZGQgJHtvcHRzfSAke2V1c2VyfSAtYyAiYWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQ
Tn0iIHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAgICAgICAgICAgICAgICB1c2VyYWRkICR7b3B0
c30gJHtldXNlcn0gIiRAIiB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAgICAgIGZp
CiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBpZiBbWyAhIC1lICR7Uk9PVH0vJHtlaG9tZX0gXV07
IHRoZW4KICAgICAgICBlaW5mbyAiIC0gQ3JlYXRpbmcgJHtlaG9tZX0gaW4gJHtST09UfSI7CiAg
ICAgICAgbWtkaXIgLXAgIiR7Uk9PVH0vJHtlaG9tZX0iOwogICAgICAgIGNob3duICR7ZXVzZXJ9
ICIke1JPT1R9LyR7ZWhvbWV9IjsKICAgICAgICBjaG1vZCA3NTUgIiR7Uk9PVH0vJHtlaG9tZX0i
OwogICAgZmk7CiAgICBleHBvcnQgU0FOREJPWF9PTj0ke29sZHNhbmRib3h9Cn0KZXBhdGNoICgp
IAp7IAogICAgZnVuY3Rpb24gX2VwYXRjaF9kcmF3X2xpbmUgKCkgCiAgICB7IAogICAgICAgIFtb
IC16ICQxIF1dICYmIHNldCAiJChwcmludGYgIiU2NXMiICcnKSI7CiAgICAgICAgZWNobyAiJHsx
Ly8/Lz19IgogICAgfTsKICAgIGZ1bmN0aW9uIF9lcGF0Y2hfYXNzZXJ0ICgpIAogICAgeyAKICAg
ICAgICBsb2NhbCBfcGlwZXN0YXR1cz0ke1BJUEVTVEFUVVNbKl19OwogICAgICAgIFtbICR7X3Bp
cGVzdGF0dXMvLyAvfSAtZXEgMCBdXQogICAgfTsKICAgIGxvY2FsIFBJUEVfQ01EPSIiOwogICAg
bG9jYWwgU1RERVJSX1RBUkdFVD0iJHtUfS8kJC5vdXQiOwogICAgbG9jYWwgUEFUQ0hfVEFSR0VU
PSIke1R9LyQkLnBhdGNoIjsKICAgIGxvY2FsIFBBVENIX1NVRkZJWD0iIjsKICAgIGxvY2FsIFNJ
TkdMRV9QQVRDSD0ibm8iOwogICAgbG9jYWwgeD0iIjsKICAgIHVuc2V0IFA0Q09ORklHIFA0UE9S
VCBQNFVTRVI7CiAgICBpZiBbICIkIyIgLWd0IDEgXTsgdGhlbgogICAgICAgIGxvY2FsIG09IiI7
CiAgICAgICAgZm9yIG0gaW4gIiRAIjsKICAgICAgICBkbwogICAgICAgICAgICBlcGF0Y2ggIiR7
bX0iOwogICAgICAgIGRvbmU7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGlmIFsgLW4g
IiQxIiAtYSAtZiAiJDEiIF07IHRoZW4KICAgICAgICBTSU5HTEVfUEFUQ0g9InllcyI7CiAgICAg
ICAgbG9jYWwgRVBBVENIX1NPVVJDRT0iJDEiOwogICAgICAgIGxvY2FsIEVQQVRDSF9TVUZGSVg9
IiR7MSMjKlwufSI7CiAgICBlbHNlCiAgICAgICAgaWYgWyAtbiAiJDEiIC1hIC1kICIkMSIgXTsg
dGhlbgogICAgICAgICAgICBpZiBbICIke0VQQVRDSF9GT1JDRX0iID0gInllcyIgXSAmJiBbIC16
ICIke0VQQVRDSF9TVUZGSVh9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBsb2NhbCBFUEFUQ0hf
U09VUkNFPSIkMS8qIjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgbG9jYWwgRVBB
VENIX1NPVVJDRT0iJDEvKi4ke0VQQVRDSF9TVUZGSVh9IjsKICAgICAgICAgICAgZmk7CiAgICAg
ICAgZWxzZQogICAgICAgICAgICBpZiBbWyAhIC1kICR7RVBBVENIX1NPVVJDRX0gXV0gfHwgW1sg
LW4gJDEgXV07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFsgLW4gIiQxIiAtYSAiJHtFUEFUQ0hf
U09VUkNFfSIgPSAiJHtXT1JLRElSfS9wYXRjaCIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAg
IEVQQVRDSF9TT1VSQ0U9IiQxIjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAg
ZWNobzsKICAgICAgICAgICAgICAgIGVlcnJvciAiQ2Fubm90IGZpbmQgXCRFUEFUQ0hfU09VUkNF
ISAgVmFsdWUgZm9yIFwkRVBBVENIX1NPVVJDRSBpczoiOwogICAgICAgICAgICAgICAgZWVycm9y
OwogICAgICAgICAgICAgICAgZWVycm9yICIgICR7RVBBVENIX1NPVVJDRX0iOwogICAgICAgICAg
ICAgICAgZWVycm9yICIgICggJHtFUEFUQ0hfU09VUkNFIyMqL30gKSI7CiAgICAgICAgICAgICAg
ICBlY2hvOwogICAgICAgICAgICAgICAgZGllICJDYW5ub3QgZmluZCBcJEVQQVRDSF9TT1VSQ0Uh
IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGxvY2FsIEVQQVRDSF9TT1VSQ0U9IiR7RVBB
VENIX1NPVVJDRX0vKi4ke0VQQVRDSF9TVUZGSVh9IjsKICAgICAgICBmaTsKICAgIGZpOwogICAg
Y2FzZSAke0VQQVRDSF9TVUZGSVgjIypcLn0gaW4gCiAgICAgICAgYnoyKQogICAgICAgICAgICBQ
SVBFX0NNRD0iYnppcDIgLWRjIjsKICAgICAgICAgICAgUEFUQ0hfU1VGRklYPSJiejIiCiAgICAg
ICAgOzsKICAgICAgICBneiB8IFogfCB6KQogICAgICAgICAgICBQSVBFX0NNRD0iZ3ppcCAtZGMi
OwogICAgICAgICAgICBQQVRDSF9TVUZGSVg9Imd6IgogICAgICAgIDs7CiAgICAgICAgWklQIHwg
emlwKQogICAgICAgICAgICBQSVBFX0NNRD0idW56aXAgLXAiOwogICAgICAgICAgICBQQVRDSF9T
VUZGSVg9InppcCIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIFBJUEVfQ01EPSJj
YXQiOwogICAgICAgICAgICBQQVRDSF9TVUZGSVg9InBhdGNoIgogICAgICAgIDs7CiAgICBlc2Fj
OwogICAgaWYgWyAiJHtTSU5HTEVfUEFUQ0h9IiA9ICJubyIgXTsgdGhlbgogICAgICAgIGVpbmZv
ICIke0VQQVRDSF9NVUxUSV9NU0d9IjsKICAgIGZpOwogICAgZm9yIHggaW4gJHtFUEFUQ0hfU09V
UkNFfTsKICAgIGRvCiAgICAgICAgaWYgWyAtZiAke3h9IF0gJiYgKCBbICIke1NJTkdMRV9QQVRD
SH0iID0gInllcyIgLW8gIiR7eC9fYWxsX30iICE9ICIke3h9IiAtbyAiJHt4L18ke0FSQ0h9X30i
ICE9ICIke3h9IiBdIHx8IFsgIiR7RVBBVENIX0ZPUkNFfSIgPSAieWVzIiBdICk7IHRoZW4KICAg
ICAgICAgICAgbG9jYWwgY291bnQ9MDsKICAgICAgICAgICAgbG9jYWwgcG9wdHM9IiR7RVBBVENI
X09QVFN9IjsKICAgICAgICAgICAgbG9jYWwgcGF0Y2huYW1lPSR7eCMjKi99OwogICAgICAgICAg
ICBpZiBbIC1uICIke0VQQVRDSF9FWENMVURFfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgaWYg
WyAiJHtFUEFUQ0hfRVhDTFVERS8ke3BhdGNobmFtZX19IiAhPSAiJHtFUEFUQ0hfRVhDTFVERX0i
IF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIGZp
OwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgWyAiJHtTSU5HTEVfUEFUQ0h9IiA9ICJ5
ZXMiIF07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFsgLW4gIiR7RVBBVENIX1NJTkdMRV9NU0d9
IiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgZWluZm8gIiR7RVBBVENIX1NJTkdMRV9NU0d9
IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBlaW5mbyAiQXBwbHlp
bmcgJHtwYXRjaG5hbWV9IC4uLiI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgZWluZm8gIiAgJHtwYXRjaG5hbWV9IC4uLiI7CiAgICAgICAgICAg
IGZpOwogICAgICAgICAgICBlY2hvICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiID4gJHtTVERF
UlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAg
ICAgIGVjaG8gPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFS
R0VUIyMqL307CiAgICAgICAgICAgIHdoaWxlIFsgIiR7Y291bnR9IiAtbHQgNSBdOyBkbwogICAg
ICAgICAgICAgICAgX2VwYXRjaF9kcmF3X2xpbmUgIioqKioqICR7cGF0Y2huYW1lfSAqKioqKiIg
Pj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307
CiAgICAgICAgICAgICAgICBlY2hvID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9
LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgaWYgWyAiJHtQQVRDSF9TVUZG
SVh9IiAhPSAicGF0Y2giIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlY2hvIC1uICJQSVBF
X0NPTU1BTkQ6CSIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJf
VEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICAgICAgZWNobyAiJHtQSVBFX0NNRH0gJHt4fSA+
ICR7UEFUQ0hfVEFSR0VUfSIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtT
VERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgUEFUQ0hfVEFSR0VUPSIke3h9IjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAg
ICAgZWNobyAtbiAiUEFUQ0ggQ09NTUFORDoJICIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3Bh
dGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICBlY2hvICJwYXRj
aCAtcCR7Y291bnR9ICR7cG9wdHN9IDwgJHtQQVRDSF9UQVJHRVR9IiA+PiAke1NUREVSUl9UQVJH
RVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAg
IGVjaG8gPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VU
IyMqL307CiAgICAgICAgICAgICAgICBfZXBhdGNoX2RyYXdfbGluZSAiKioqKiogJHtwYXRjaG5h
bWV9ICoqKioqIiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9U
QVJHRVQjIyovfTsKICAgICAgICAgICAgICAgIGlmIFsgIiR7UEFUQ0hfU1VGRklYfSIgIT0gInBh
dGNoIiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgaWYgISAoICR7UElQRV9DTUR9ICR7eH0g
PiAke1BBVENIX1RBUkdFVH0gKSA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0k
e1NUREVSUl9UQVJHRVQjIyovfSAyPiYxOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVj
aG87CiAgICAgICAgICAgICAgICAgICAgICAgIGVlcnJvciAiQ291bGQgbm90IGV4dHJhY3QgcGF0
Y2ghIjsKICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ9NTsKICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBmaTsK
ICAgICAgICAgICAgICAgIGlmICggY2F0ICR7UEFUQ0hfVEFSR0VUfSB8IHBhdGNoIC1wJHtjb3Vu
dH0gJHtwb3B0c30gLS1kcnktcnVuIC1mOwogICAgICAgICAgICAgICAgX2VwYXRjaF9hc3NlcnQg
KSA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyov
fSAyPiYxOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgX2VwYXRjaF9kcmF3X2xpbmUgIioqKioq
ICR7cGF0Y2huYW1lfSAqKioqKiIgPiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0k
e1NUREVSUl9UQVJHRVQjIyovfS5yZWFsOwogICAgICAgICAgICAgICAgICAgIGVjaG8gPj4gJHtT
VERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbDsK
ICAgICAgICAgICAgICAgICAgICBlY2hvICJBQ1RVQUxMWSBBUFBMWUlORyAke3BhdGNobmFtZX0g
Li4uIiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQj
IyovfS5yZWFsOwogICAgICAgICAgICAgICAgICAgIGVjaG8gPj4gJHtTVERFUlJfVEFSR0VUJS8q
fS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAg
ICAgICBfZXBhdGNoX2RyYXdfbGluZSAiKioqKiogJHtwYXRjaG5hbWV9ICoqKioqIiA+PiAke1NU
REVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfS5yZWFsOwog
ICAgICAgICAgICAgICAgICAgIGNhdCAke1BBVENIX1RBUkdFVH0gfCBwYXRjaCAtcCR7Y291bnR9
ICR7cG9wdHN9ID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RB
UkdFVCMjKi99LnJlYWwgMj4mMTsKICAgICAgICAgICAgICAgICAgICBfZXBhdGNoX2Fzc2VydDsK
ICAgICAgICAgICAgICAgICAgICBpZiBbICIkPyIgLW5lIDAgXTsgdGhlbgogICAgICAgICAgICAg
ICAgICAgICAgICBjYXQgJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJf
VEFSR0VUIyMqL30ucmVhbCA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NU
REVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAg
ICAgICAgICAgICAgICAgZWVycm9yICJBIGRyeS1ydW4gb2YgcGF0Y2ggY29tbWFuZCBzdWNjZWVk
ZWQsIGJ1dCBhY3R1YWxseSI7CiAgICAgICAgICAgICAgICAgICAgICAgIGVlcnJvciAiYXBwbHlp
bmcgdGhlIHBhdGNoIGZhaWxlZCEiOwogICAgICAgICAgICAgICAgICAgICAgICBjb3VudD01Owog
ICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgIHJtIC1mICR7U1RERVJS
X1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWw7CiAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAg
IGNvdW50PSQoKGNvdW50ICsgMSkpOwogICAgICAgICAgICBkb25lOwogICAgICAgICAgICBpZiBb
ICIke1BBVENIX1NVRkZJWH0iICE9ICJwYXRjaCIgXTsgdGhlbgogICAgICAgICAgICAgICAgcm0g
LWYgJHtQQVRDSF9UQVJHRVR9OwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgWyAiJHtj
b3VudH0iIC1lcSA1IF07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAg
ICBlZXJyb3IgIkZhaWxlZCBQYXRjaDogJHtwYXRjaG5hbWV9ICEiOwogICAgICAgICAgICAgICAg
ZWVycm9yICIgKCAke1BBVENIX1RBUkdFVH0gKSI7CiAgICAgICAgICAgICAgICBlZXJyb3I7CiAg
ICAgICAgICAgICAgICBlZXJyb3IgIkluY2x1ZGUgaW4geW91ciBidWdyZXBvcnQgdGhlIGNvbnRl
bnRzIG9mOiI7CiAgICAgICAgICAgICAgICBlZXJyb3I7CiAgICAgICAgICAgICAgICBlZXJyb3Ig
IiAgJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30i
OwogICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgICAgIGRpZSAiRmFpbGVkIFBhdGNo
OiAke3BhdGNobmFtZX0hIjsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIHJtIC1mICR7U1RE
RVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAg
ICAgICBlZW5kIDA7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgaWYgWyAiJHtTSU5HTEVfUEFU
Q0h9IiA9ICJubyIgXTsgdGhlbgogICAgICAgIGVpbmZvICJEb25lIHdpdGggcGF0Y2hpbmciOwog
ICAgZmkKfQplcGF1c2UgKCkgCnsgCiAgICBbWyAteiAke0VQQVVTRV9JR05PUkV9IF1dICYmIHNs
ZWVwICR7MTotNX0KfQplcHVudF9jeHggKCkgCnsgCiAgICBsb2NhbCBkaXI9JDE7CiAgICBbWyAt
eiAke2Rpcn0gXV0gJiYgZGlyPSR7U307CiAgICBlYmVnaW4gIlJlbW92aW5nIHVzZWxlc3MgQysr
IGNoZWNrcyI7CiAgICBsb2NhbCBmOwogICAgZmluZCAiJHtkaXJ9IiAtbmFtZSBjb25maWd1cmUg
fCB3aGlsZSByZWFkIGY7IGRvCiAgICAgICAgcGF0Y2ggLS1uby1iYWNrdXAtaWYtbWlzbWF0Y2gg
LXAwICIke2Z9IiAiJHtQT1JURElSfS9lY2xhc3MvRUxULXBhdGNoZXMvbm9jeHgvbm9jeHgucGF0
Y2giID4gL2Rldi9udWxsOwogICAgZG9uZTsKICAgIGVlbmQgMAp9CmVzdm5fY2xlYW4gKCkgCnsg
CiAgICBbWyAteiAkKiBdXSAmJiBzZXQgLS0gLjsKICAgIGZpbmQgIiRAIiAtdHlwZSBkIC1uYW1l
ICcuc3ZuJyAtcHJ1bmUgLXByaW50MCB8IHhhcmdzIC0wIHJtIC1yZgp9CmZpbHRlci1mbGFncyAo
KSAKeyAKICAgIF9maWx0ZXItaGFyZGVuZWQgIiRAIjsKICAgIF9maWx0ZXItdmFyIENGTEFHUyAi
JEAiOwogICAgX2ZpbHRlci12YXIgQ1BQRkxBR1MgIiRAIjsKICAgIF9maWx0ZXItdmFyIENYWEZM
QUdTICIkQCI7CiAgICByZXR1cm4gMAp9CmZpbHRlci1sZGZsYWdzICgpIAp7IAogICAgZm9yIHgg
aW4gJHsxfTsKICAgIGRvCiAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTLyR7eH19IjsKICAgIGRv
bmUKfQpmaWx0ZXItbGZzLWZsYWdzICgpIAp7IAogICAgW1sgLW4gJEAgXV0gJiYgZGllICJmaWx0
ZXItbGZzLWZsYWdzIHRha2VzIG5vIGFyZ3VtZW50cyI7CiAgICBmaWx0ZXItZmxhZ3MgLURfRklM
RV9PRkZTRVRfQklUUz02NCAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0xBUkdFRklMRTY0X1NPVVJD
RQp9CmZpbHRlci1tZnBtYXRoICgpIAp7IAogICAgbG9jYWwgb3JpZ19tZnBtYXRoIG5ld19tYXRo
IHBydW5lX21hdGg7CiAgICBvcmlnX21mcG1hdGg9JChnZXQtZmxhZyAtbWZwbWF0aCk7CiAgICBu
ZXdfbWF0aD0kKGdldC1mbGFnIG1mcG1hdGgpOwogICAgbmV3X21hdGg9IiAke25ld19tYXRoLy8s
LyB9ICI7CiAgICBwcnVuZV9tYXRoPSIiOwogICAgZm9yIHBydW5lX21hdGggaW4gIiRAIjsKICAg
IGRvCiAgICAgICAgbmV3X21hdGg9JHtuZXdfbWF0aC8gJHtwcnVuZV9tYXRofSAvIH07CiAgICBk
b25lOwogICAgbmV3X21hdGg9JChlY2hvICR7bmV3X21hdGh9KTsKICAgIG5ld19tYXRoPSR7bmV3
X21hdGgvLyAvLH07CiAgICBpZiBbWyAteiAke25ld19tYXRofSBdXTsgdGhlbgogICAgICAgIGZp
bHRlci1mbGFncyAke29yaWdfbWZwbWF0aH07CiAgICBlbHNlCiAgICAgICAgcmVwbGFjZS1mbGFn
cyAke29yaWdfbWZwbWF0aH0gLW1mcG1hdGg9JHtuZXdfbWF0aH07CiAgICBmaTsKICAgIHJldHVy
biAwCn0KZmlsdGVyX2ludmFsaWRfZmxhZ3MgKCkgCnsgCiAgICBsb2NhbCBmbGFnIGJyb2tlbl9m
bGFnczsKICAgIGV2YWwgYnJva2VuX2ZsYWdzPSgkKGdldF9icm9rZW5fZmxhZ3MgJChnZXRQUk9H
IENDIGdjYykgYyAke0NGTEFHU30pKTsKICAgIGZvciBmbGFnIGluICIke2Jyb2tlbl9mbGFnc1tA
XX0iOwogICAgZG8KICAgICAgICBld2FybiAiRmlsdGVyaW5nIG91dCBpbnZhbGlkIENGTEFHIFwi
JHtmbGFnfVwiIjsKICAgICAgICBDRkxBR1M9IiQocmVtb3ZlX2ZsYWcgIiR7ZmxhZ30iICR7Q0ZM
QUdTfSkiOwogICAgZG9uZTsKICAgIGV2YWwgYnJva2VuX2ZsYWdzPSgkKGdldF9icm9rZW5fZmxh
Z3MgJChnZXRQUk9HIENYWCBnKyspIGMrKyAke0NYWEZMQUdTfSkpOwogICAgZm9yIGZsYWcgaW4g
IiR7YnJva2VuX2ZsYWdzW0BdfSI7CiAgICBkbwogICAgICAgIGV3YXJuICJGaWx0ZXJpbmcgb3V0
IGludmFsaWQgQ1hYRkxBRyBcIiR7ZmxhZ31cIiI7CiAgICAgICAgQ1hYRkxBR1M9IiQocmVtb3Zl
X2ZsYWcgIiR7ZmxhZ30iICR7Q1hYRkxBR1N9KSI7CiAgICBkb25lCn0KZmluZF91bnBhY2thYmxl
X2ZpbGUgKCkgCnsgCiAgICBsb2NhbCBzcmM9JDE7CiAgICBpZiBbWyAteiAke3NyY30gXV07IHRo
ZW4KICAgICAgICBzcmM9JHtESVNURElSfS8ke0F9OwogICAgZWxzZQogICAgICAgIGlmIFtbIC1l
ICR7RElTVERJUn0vJHtzcmN9IF1dOyB0aGVuCiAgICAgICAgICAgIHNyYz0ke0RJU1RESVJ9LyR7
c3JjfTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbIC1lICR7UFdEfS8ke3NyY30gXV07
IHRoZW4KICAgICAgICAgICAgICAgIHNyYz0ke1BXRH0vJHtzcmN9OwogICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICBpZiBbWyAtZSAke3NyY30gXV07IHRoZW4KICAgICAgICAgICAgICAg
ICAgICBzcmM9JHtzcmN9OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGZpOwogICAg
ICAgIGZpOwogICAgZmk7CiAgICBbWyAhIC1lICR7c3JjfSBdXSAmJiByZXR1cm4gMTsKICAgIGVj
aG8gIiR7c3JjfSIKfQpnY2MtZnVsbHZlcnNpb24gKCkgCnsgCiAgICAkKHRjLWdldENDICIkQCIp
IC1kdW1wdmVyc2lvbgp9CmdjYy1tYWpvci12ZXJzaW9uICgpIAp7IAogICAgZ2NjLXZlcnNpb24g
IiRAIiB8IGN1dCAtZjEgLWQuCn0KZ2NjLW1pY3JvLXZlcnNpb24gKCkgCnsgCiAgICBnY2MtZnVs
bHZlcnNpb24gIiRAIiB8IGN1dCAtZjMgLWQuIHwgY3V0IC1mMSAtZC0KfQpnY2MtbWlub3ItdmVy
c2lvbiAoKSAKeyAKICAgIGdjYy12ZXJzaW9uICIkQCIgfCBjdXQgLWYyIC1kLgp9CmdjYy1zcGVj
cy1kaXJlY3RpdmUgKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmUgc3ViZG5hbWUgc3ViZGlyZWN0
aXZlOwogICAgZGlyZWN0aXZlPSIkKF9nY2Mtc3BlY3MtZGlyZWN0aXZlX3JhdyAkMSkiOwogICAg
d2hpbGUgW1sgJHtkaXJlY3RpdmV9ID09IColXCgqXCkqIF1dOyBkbwogICAgICAgIHN1YmRuYW1l
PSR7ZGlyZWN0aXZlLyolXCh9OwogICAgICAgIHN1YmRuYW1lPSR7c3ViZG5hbWUvXCkqfTsKICAg
ICAgICBzdWJkaXJlY3RpdmU9IiQoX2djYy1zcGVjcy1kaXJlY3RpdmVfcmF3ICR7c3ViZG5hbWV9
KSI7CiAgICAgICAgZGlyZWN0aXZlPSIke2RpcmVjdGl2ZS8vXCUoJHtzdWJkbmFtZX0pLyR7c3Vi
ZGlyZWN0aXZlfX0iOwogICAgZG9uZTsKICAgIGVjaG8gIiR7ZGlyZWN0aXZlfSI7CiAgICByZXR1
cm4gMAp9CmdjYy1zcGVjcy1ub3cgKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJl
Y3RpdmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGxpbmtfY29tbWFuZCk7CiAgICByZXR1cm4gJChb
WyAke2RpcmVjdGl2ZS9ceyFub25vdzp9ICE9ICR7ZGlyZWN0aXZlfSBdXSkKfQpnY2Mtc3BlY3Mt
cGllICgpIAp7IAogICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGlyZWN0aXZlPSQoZ2NjLXNwZWNz
LWRpcmVjdGl2ZSBjYzEpOwogICAgcmV0dXJuICQoW1sgJHtkaXJlY3RpdmUvXHshbm9waWU6fSAh
PSAke2RpcmVjdGl2ZX0gXV0pCn0KZ2NjLXNwZWNzLXJlbHJvICgpIAp7IAogICAgbG9jYWwgZGly
ZWN0aXZlOwogICAgZGlyZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBsaW5rX2NvbW1hbmQp
OwogICAgcmV0dXJuICQoW1sgJHtkaXJlY3RpdmUvXHshbm9yZWxybzp9ICE9ICR7ZGlyZWN0aXZl
fSBdXSkKfQpnY2Mtc3BlY3Mtc3NwICgpIAp7IAogICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGly
ZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBjYzEpOwogICAgcmV0dXJuICQoW1sgJHtkaXJl
Y3RpdmUvXHshZm5vLXN0YWNrLXByb3RlY3Rvcjp9ICE9ICR7ZGlyZWN0aXZlfSBdXSkKfQpnY2Mt
c3BlY3Mtc3NwLXRvLWFsbCAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2
ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUgY2MxKTsKICAgIHJldHVybiAkKFtbICR7ZGlyZWN0aXZl
L1x7IWZuby1zdGFjay1wcm90ZWN0b3ItYWxsOn0gIT0gJHtkaXJlY3RpdmV9IF1dKQp9CmdjYy12
ZXJzaW9uICgpIAp7IAogICAgZ2NjLWZ1bGx2ZXJzaW9uICIkQCIgfCBjdXQgLWYxLDIgLWQuCn0K
Z2VuX3Vzcl9sZHNjcmlwdCAoKSAKeyAKICAgIGxvY2FsIGxpYiBsaWJkaXI9JChnZXRfbGliZGly
KSBvdXRwdXRfZm9ybWF0PSIiOwogICAgZG9kaXIgL3Vzci8ke2xpYmRpcn07CiAgICBvdXRwdXRf
Zm9ybWF0PSQoJCh0Yy1nZXRDQykgJHtDRkxBR1N9ICR7TERGTEFHU30gLVdsLC0tdmVyYm9zZSAy
PiYxIHwgc2VkIC1uICdzL15PVVRQVVRfRk9STUFUKCJcKFteIl0qXCkiLC4qL1wxL3AnKTsKICAg
IFtbIC1uICR7b3V0cHV0X2Zvcm1hdH0gXV0gJiYgb3V0cHV0X2Zvcm1hdD0iT1VUUFVUX0ZPUk1B
VCAoICR7b3V0cHV0X2Zvcm1hdH0gKSI7CiAgICBmb3IgbGliIGluICIkQCI7CiAgICBkbwogICAg
ICAgIGlmIFtbICR7VVNFUkxBTkR9ID09ICJEYXJ3aW4iIF1dOyB0aGVuCiAgICAgICAgICAgIGV3
YXJuICJOb3QgY3JlYXRpbmcgZmFrZSBkeW5hbWljIGxpYnJhcnkgZm9yICRsaWIgb24gRGFyd2lu
OyI7CiAgICAgICAgICAgIGV3YXJuICJtYWtpbmcgYSBzeW1saW5rIGluc3RlYWQuIjsKICAgICAg
ICAgICAgZG9zeW0gIi8ke2xpYmRpcn0vJHtsaWJ9IiAiL3Vzci8ke2xpYmRpcn0vJHtsaWJ9IjsK
ICAgICAgICBlbHNlCiAgICAgICAgICAgIGNhdCA+ICIke0R9L3Vzci8ke2xpYmRpcn0vJHtsaWJ9
IiAgPDwtRU5EX0xEU0NSSVBUCi8qIEdOVSBsZCBzY3JpcHQKICAgU2luY2UgR2VudG9vIGhhcyBj
cml0aWNhbCBkeW5hbWljIGxpYnJhcmllcwogICBpbiAvbGliLCBhbmQgdGhlIHN0YXRpYyB2ZXJz
aW9ucyBpbiAvdXNyL2xpYiwKICAgd2UgbmVlZCB0byBoYXZlIGEgImZha2UiIGR5bmFtaWMgbGli
IGluIC91c3IvbGliLAogICBvdGhlcndpc2Ugd2UgcnVuIGludG8gbGlua2luZyBwcm9ibGVtcy4K
CiAgIFNlZSBidWcgaHR0cDovL2J1Z3MuZ2VudG9vLm9yZy80NDExIGZvciBtb3JlIGluZm8uCiAq
Lwoke291dHB1dF9mb3JtYXR9CkdST1VQICggLyR7bGliZGlyfS8ke2xpYn0gKQpFTkRfTERTQ1JJ
UFQKCiAgICAgICAgZmkKICAgICAgICBmcGVybXMgYSt4ICIvdXNyLyR7bGliZGlyfS8ke2xpYn0i
IHx8IGRpZSAiY291bGQgbm90IGNoYW5nZSBwZXJtcyBvbiAke2xpYn0iOwogICAgZG9uZQp9Cmdl
dC1mbGFnICgpIAp7IAogICAgbG9jYWwgZiBmaW5kZmxhZz0iJDEiOwogICAgZm9yIGYgaW4gJHtD
RkxBR1N9ICR7Q1hYRkxBR1N9OwogICAgZG8KICAgICAgICBpZiBbICIke2YvJHtmaW5kZmxhZ319
IiAhPSAiJHtmfSIgXTsgdGhlbgogICAgICAgICAgICBwcmludGYgIiVzXG4iICIke2YvLSR7Zmlu
ZGZsYWd9PX0iOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICBmaTsKICAgIGRvbmU7CiAg
ICByZXR1cm4gMQp9CmdldFBST0cgKCkgCnsgCiAgICBsb2NhbCB2YXI9JDEgcHJvZz0kMjsKICAg
IGlmIFtbIC1uICR7IXZhcn0gXV07IHRoZW4KICAgICAgICBlY2hvICIkeyF2YXJ9IjsKICAgICAg
ICByZXR1cm4gMDsKICAgIGZpOwogICAgbG9jYWwgc2VhcmNoPTsKICAgIFtbIC1uICQzIF1dICYm
IHNlYXJjaD0kKHR5cGUgLXAgIiQzLSR7cHJvZ30iKTsKICAgIFtbIC16ICR7c2VhcmNofSAmJiAt
biAke0NIT1NUfSBdXSAmJiBzZWFyY2g9JCh0eXBlIC1wICIke0NIT1NUfS0ke3Byb2d9Iik7CiAg
ICBbWyAtbiAke3NlYXJjaH0gXV0gJiYgcHJvZz0ke3NlYXJjaCMjKi99OwogICAgZXhwb3J0ICR7
dmFyfT0ke3Byb2d9OwogICAgZWNobyAiJHshdmFyfSIKfQpnZXRfYWJpX0FTRkxBR1MgKCkgCnsg
CiAgICBnZXRfYWJpX3ZhciBBU0ZMQUdTICIkQCIKfQpnZXRfYWJpX0NERUZJTkUgKCkgCnsgCiAg
ICBnZXRfYWJpX3ZhciBDREVGSU5FICIkQCIKfQpnZXRfYWJpX0NGTEFHUyAoKSAKeyAKICAgIGdl
dF9hYmlfdmFyIENGTEFHUyAiJEAiCn0KZ2V0X2FiaV9DSE9TVCAoKSAKeyAKICAgIGdldF9hYmlf
dmFyIENIT1NUICIkQCIKfQpnZXRfYWJpX0NUQVJHRVQgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBD
VEFSR0VUICIkQCIKfQpnZXRfYWJpX0ZBS0VfVEFSR0VUUyAoKSAKeyAKICAgIGdldF9hYmlfdmFy
IEZBS0VfVEFSR0VUUyAiJEAiCn0KZ2V0X2FiaV9MREZMQUdTICgpIAp7IAogICAgZ2V0X2FiaV92
YXIgTERGTEFHUyAiJEAiCn0KZ2V0X2FiaV9MSUJESVIgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBM
SUJESVIgIiRAIgp9CmdldF9hYmlfdmFyICgpIAp7IAogICAgbG9jYWwgZmxhZz0kMTsKICAgIGxv
Y2FsIGFiaTsKICAgIGlmIFsgJCMgLWd0IDEgXTsgdGhlbgogICAgICAgIGFiaT0kezJ9OwogICAg
ZWxzZQogICAgICAgIGlmIFsgLW4gIiR7QUJJfSIgXTsgdGhlbgogICAgICAgICAgICBhYmk9JHtB
Qkl9OwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgWyAtbiAiJHtERUZBVUxUX0FCSX0iIF07
IHRoZW4KICAgICAgICAgICAgICAgIGFiaT0ke0RFRkFVTFRfQUJJfTsKICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgYWJpPSJkZWZhdWx0IjsKICAgICAgICAgICAgZmk7CiAgICAgICAg
Zmk7CiAgICBmaTsKICAgIGxvY2FsIHZhcj0iJHtmbGFnfV8ke2FiaX0iOwogICAgZWNobyAkeyF2
YXJ9Cn0KZ2V0X2FsbF9hYmlzICgpIAp7IAogICAgbG9jYWwgb3JkZXI9IiI7CiAgICBpZiBbWyAt
eiAke01VTFRJTElCX0FCSVN9IF1dOyB0aGVuCiAgICAgICAgZWNobyAiZGVmYXVsdCI7CiAgICAg
ICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGZvciB4IGluICR7TVVMVElMSUJfQUJJU307CiAgICBk
bwogICAgICAgIGlmIFtbICR7eH0gIT0gJHtERUZBVUxUX0FCSX0gXV07IHRoZW4KICAgICAgICAg
ICAgb3JkZXI9IiR7b3JkZXI6KyR7b3JkZXJ9IH0ke3h9IjsKICAgICAgICBmaTsKICAgIGRvbmU7
CiAgICBvcmRlcj0iJHtvcmRlcjorJHtvcmRlcn0gfSR7REVGQVVMVF9BQkl9IjsKICAgIGVjaG8g
JHtvcmRlcn07CiAgICByZXR1cm4gMAp9CmdldF9hbGxfbGliZGlycyAoKSAKeyAKICAgIGxvY2Fs
IGxpYmRpcnM9ImxpYiI7CiAgICBsb2NhbCBhYmk7CiAgICBsb2NhbCBkaXI7CiAgICBmb3IgYWJp
IGluICR7TVVMVElMSUJfQUJJU307CiAgICBkbwogICAgICAgIFsgIiQoZ2V0X2FiaV9MSUJESVIg
JHthYml9KSIgIT0gImxpYiIgXSAmJiBsaWJkaXJzPSIke2xpYmRpcnN9ICQoZ2V0X2FiaV9MSUJE
SVIgJHthYml9KSI7CiAgICBkb25lOwogICAgZWNobyAiJHtsaWJkaXJzfSIKfQpnZXRfYm1ha2Ug
KCkgCnsgCiAgICBpZiBbWyAke1VTRVJMQU5EfSA9PSAqQlNEIF1dOyB0aGVuCiAgICAgICAgZWNo
byBtYWtlOwogICAgZWxzZQogICAgICAgIGlmIFtbICR7VVNFUkxBTkR9ID09ICJEYXJ3aW4iIF1d
OyB0aGVuCiAgICAgICAgICAgIGVjaG8gYnNkbWFrZTsKICAgICAgICBlbHNlCiAgICAgICAgICAg
IGVjaG8gcG1ha2U7CiAgICAgICAgZmk7CiAgICBmaQp9CmdldF9icm9rZW5fZmxhZ3MgKCkgCnsg
CiAgICBsb2NhbCBteXByb2c9IiR7MX0iIGxhbmc9IiR7Mn0iOwogICAgc2hpZnQgMjsKICAgIGVj
aG8gJ21haW4oKXt9JyB8IExDX0FMTD1DICR7bXlwcm9nfSAke0B9IC14ICR7bGFuZ30gLW8gL2Rl
di9udWxsIC0gMj4mMSB8IGVncmVwICJ1bnJlY29nbml6ZWQgLipvcHRpb24iIHwgZWdyZXAgLW8g
LS0gJygnXCcnfFwifGApLS4qJyB8IHNlZCAtciAncy8oJ1wnJ3xgfCIpLy9nOyBzL14vIi87IHMv
JC8iLyc7CiAgICBlY2hvICdtYWluKCl7fScgfCBMQ19BTEw9QyAke215cHJvZ30gJHtAfSAteCAk
e2xhbmd9IC1vIC9kZXYvbnVsbCAtIDI+JjEgfCBlZ3JlcCAidW5yZWNvZ25pc2VkIGRlYnVnIG91
dHB1dCIgfCBlZ3JlcCAtbyAtLSAnKCdcJyd8XCJ8YCkuKicgfCBzZWQgLXIgJ3MvKCdcJyd8YHwi
KS8vZzsgcy9eLyItZy87IHMvJC8iLycKfQpnZXRfaW5zdGFsbF9hYmlzICgpIAp7IAogICAgbG9j
YWwgb3JkZXI9IiI7CiAgICBpZiBbWyAteiAke01VTFRJTElCX0FCSVN9IF1dOyB0aGVuCiAgICAg
ICAgZWNobyAiZGVmYXVsdCI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGlmIFtbICR7
RU1VTFRJTElCX1BLR30gPT0gInRydWUiIF1dOyB0aGVuCiAgICAgICAgZm9yIHggaW4gJHtNVUxU
SUxJQl9BQklTfTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAke3h9ICE9ICIke0RFRkFV
TFRfQUJJfSIgXV07IHRoZW4KICAgICAgICAgICAgICAgIGhhc3EgJHt4fSAke0FCSV9ERU5ZfSB8
fCBvcmRlcmE9IiR7b3JkZXJhfSAke3h9IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsK
ICAgICAgICBoYXNxICR7REVGQVVMVF9BQkl9ICR7QUJJX0RFTll9IHx8IG9yZGVyPSIke29yZGVy
YX0gJHtERUZBVUxUX0FCSX0iOwogICAgICAgIGlmIFtbIC1uICR7QUJJX0FMTE9XfSBdXTsgdGhl
bgogICAgICAgICAgICBsb2NhbCBvcmRlcmE9IiI7CiAgICAgICAgICAgIGZvciB4IGluICR7b3Jk
ZXJ9OwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYgaGFzcSAke3h9ICR7QUJJX0FM
TE9XfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIG9yZGVyYT0iJHtvcmRlcmF9ICR7eH0iOwog
ICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIG9yZGVyPSR7
b3JkZXJhfTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBvcmRlcj0ke0RFRkFVTFRfQUJJ
fTsKICAgIGZpOwogICAgaWYgW1sgLXogJHtvcmRlcn0gXV07IHRoZW4KICAgICAgICBkaWUgIlRo
ZSBBQkkgbGlzdCBpcyBlbXB0eS4gIEFyZSB5b3UgdXNpbmcgYSBwcm9wZXIgbXVsdGlsaWIgcHJv
ZmlsZT8gIFBlcmhhcHMgeW91ciBVU0UgZmxhZ3Mgb3IgTVVMVElMSUJfQUJJUyBhcmUgdG9vIHJl
c3RyaWN0aXZlIGZvciB0aGlzIHBhY2thZ2UuIjsKICAgIGZpOwogICAgZWNobyAke29yZGVyfTsK
ICAgIHJldHVybiAwCn0KZ2V0X2xpYmRpciAoKSAKeyAKICAgIGxvY2FsIENPTkZfTElCRElSOwog
ICAgaWYgWyAtbiAiJHtDT05GX0xJQkRJUl9PVkVSUklERX0iIF07IHRoZW4KICAgICAgICBlY2hv
ICR7Q09ORl9MSUJESVJfT1ZFUlJJREV9OwogICAgZWxzZQogICAgICAgIGdldF9hYmlfTElCRElS
OwogICAgZmkKfQpnZXRfbGliZGlyX292ZXJyaWRlICgpIAp7IAogICAgaWYgaGFzX211bHRpbGli
X3Byb2ZpbGU7IHRoZW4KICAgICAgICBlZXJyb3IgImdldF9saWJkaXJfb3ZlcnJpZGUgY2FsbGVk
LCBidXQgaXQgc2hvdWxkbid0IGJlIG5lZWRlZCB3aXRoIHRoZSBuZXcgbXVsdGlsaWIgYXBwcm9h
Y2guICBQbGVhc2UgZmlsZSBhIGJ1ZyBhdCBodHRwOi8vYnVncy5nZW50b28ub3JnIGFuZCBhc3Np
Z24gaXQgdG8gZXJhZGljYXRvckBnZW50b28ub3JnIjsKICAgICAgICBleGl0IDE7CiAgICBmaTsK
ICAgIENPTkZfTElCRElSPSIkMSI7CiAgICBDT05GX0xJQkRJUl9PVkVSUklERT0iJDEiOwogICAg
TElCRElSX2RlZmF1bHQ9IiQxIgp9CmdldF9saWJuYW1lICgpIAp7IAogICAgbG9jYWwgbGlibmFt
ZTsKICAgIGxvY2FsIHZlcj0kMTsKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3
aW4qKQogICAgICAgICAgICBsaWJuYW1lPSJkeWxpYiIKICAgICAgICA7OwogICAgICAgICopCiAg
ICAgICAgICAgIGxpYm5hbWU9InNvIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgaWYgW1sgLXog
JEAgXV07IHRoZW4KICAgICAgICBlY2hvICIuJHtsaWJuYW1lfSI7CiAgICBlbHNlCiAgICAgICAg
Zm9yIHZlciBpbiAiJEAiOwogICAgICAgIGRvCiAgICAgICAgICAgIGNhc2UgJHtDSE9TVH0gaW4g
CiAgICAgICAgICAgICAgICAqLWRhcndpbiopCiAgICAgICAgICAgICAgICAgICAgZWNobyAiLiR7
dmVyfS4ke2xpYm5hbWV9IgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAg
ICAgICAgICAgICAgICAgICAgZWNobyAiLiR7bGlibmFtZX0uJHt2ZXJ9IgogICAgICAgICAgICAg
ICAgOzsKICAgICAgICAgICAgZXNhYzsKICAgICAgICBkb25lOwogICAgZmkKfQpnZXRfbWxfaW5j
ZGlyICgpIAp7IAogICAgbG9jYWwgZGlyPS91c3IvaW5jbHVkZTsKICAgIGlmIFtbICQjIC1ndCAw
IF1dOyB0aGVuCiAgICAgICAgaW5jZGlyPSQxOwogICAgICAgIHNoaWZ0OwogICAgZmk7CiAgICBp
ZiBbWyAteiAiJHtNVUxUSUxJQl9BQklTfSIgXV07IHRoZW4KICAgICAgICBlY2hvICR7aW5jZGly
fTsKICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgbG9jYWwgYWJpPSR7QUJJLSR7REVGQVVM
VF9BQkl9fTsKICAgIGlmIFtbICQjIC1ndCAwIF1dOyB0aGVuCiAgICAgICAgYWJpPSQxOwogICAg
ICAgIHNoaWZ0OwogICAgZmk7CiAgICBpZiBbWyAtZCAiJHtkaXJ9L2dlbnRvby1tdWx0aWxpYi8k
e2FiaX0iIF1dOyB0aGVuCiAgICAgICAgZWNobyAke2Rpcn0vZ2VudG9vLW11bHRpbGliLyR7YWJp
fTsKICAgIGVsc2UKICAgICAgICBlY2hvICR7ZGlyfTsKICAgIGZpCn0KZ2V0X21vdW50cyAoKSAK
eyAKICAgIGxvY2FsIHBvaW50PSBub2RlPSBmcz0gb3B0cz0gZm9vPTsKICAgIGlmIFtbICQodW5h
bWUgLXMpID09ICJMaW51eCIgXV07IHRoZW4KICAgICAgICB3aGlsZSByZWFkIG5vZGUgcG9pbnQg
ZnMgb3B0cyBmb287IGRvCiAgICAgICAgICAgIGVjaG8gIiR7cG9pbnR9ICR7bm9kZX0gJHtmc30g
JHtvcHRzfSI7CiAgICAgICAgZG9uZSA8IC9wcm9jL21vdW50czsKICAgICAgICByZXR1cm47CiAg
ICBmaTsKICAgIGxvY2FsIElGUz0nCSc7CiAgICBMQ19BTEw9QyBtb3VudCAtcCB8IHdoaWxlIHJl
YWQgbm9kZSBwb2ludCBmcyBmb287IGRvCiAgICAgICAgb3B0cz0ke2ZzIyogfTsKICAgICAgICBm
cz0ke2ZzJSUgKn07CiAgICAgICAgZWNobyAiJHtwb2ludC8vIC9cMDQwfSAke25vZGUvLyAvXDA0
MH0gJHtmcyUlICp9ICR7b3B0cy8vIC9cMDQwfSI7CiAgICBkb25lCn0KZ2V0X211bHRpbGliZGly
ICgpIAp7IAogICAgaWYgaGFzX211bHRpbGliX3Byb2ZpbGU7IHRoZW4KICAgICAgICBlZXJyb3Ig
ImdldF9tdWx0aWxpYmRpciBjYWxsZWQsIGJ1dCBpdCBzaG91bGRuJ3QgYmUgbmVlZGVkIHdpdGgg
dGhlIG5ldyBtdWx0aWxpYiBhcHByb2FjaC4gIFBsZWFzZSBmaWxlIGEgYnVnIGF0IGh0dHA6Ly9i
dWdzLmdlbnRvby5vcmcgYW5kIGFzc2lnbiBpdCB0byBlcmFkaWNhdG9yQGdlbnRvby5vcmciOwog
ICAgICAgIGV4aXQgMTsKICAgIGZpOwogICAgZWNobyAke0NPTkZfTVVMVElMSUJESVI6PWxpYjMy
fQp9CmdldHBhbV9tb2RfZGlyICgpIAp7IAogICAgaWYgaGFzX3ZlcnNpb24gc3lzLWxpYnMvcGFt
IHx8IGhhc192ZXJzaW9uIHN5cy1saWJzL29wZW5wYW07IHRoZW4KICAgICAgICBQQU1fTU9EX0RJ
Uj0vJChnZXRfbGliZGlyKS9zZWN1cml0eTsKICAgIGVsc2UKICAgICAgICBpZiB1c2UgcHBjLW1h
Y29zOyB0aGVuCiAgICAgICAgICAgIFBBTV9NT0RfRElSPS91c3IvbGliL3BhbTsKICAgICAgICBl
bHNlCiAgICAgICAgICAgIFBBTV9NT0RfRElSPS8kKGdldF9saWJkaXIpL3NlY3VyaXR5OwogICAg
ICAgIGZpOwogICAgZmk7CiAgICBlY2hvICR7UEFNX01PRF9ESVJ9Cn0KaGFzX2hhcmRlbmVkICgp
IAp7IAogICAgZXdhcm4gImhhc19oYXJkZW5lZDogZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBnY2Mt
c3BlY3Mte3JlbHJvLG5vd30oKSEiIDE+JjI7CiAgICB0ZXN0X3ZlcnNpb25faW5mbyBIYXJkZW5l
ZCAmJiByZXR1cm4gMDsKICAgIFtbIC1mICR7R0NDX1NQRUNTfSAmJiAke0dDQ19TUEVDU30gIT0g
JHtHQ0NfU1BFQ1MvaGFyZGVuZWQvfSBdXQp9Cmhhc19tMzIgKCkgCnsgCiAgICBbICIkKHRjLWFy
Y2gpIiA9ICJhbWQ2NCIgXSAmJiBoYXNfbXVsdGlsaWJfcHJvZmlsZSAmJiByZXR1cm4gMDsKICAg
IGxvY2FsIHRlbXA9JChlbWt0ZW1wKTsKICAgIGVjaG8gImludCBtYWluKCkgeyByZXR1cm4oMCk7
IH0iID4gIiR7dGVtcH0iLmM7CiAgICBNWV9DQz0kKHRjLWdldENDKTsKICAgICR7TVlfQ0MvIC4q
L30gLW0zMiAtbyAiJChlbWt0ZW1wKSIgIiR7dGVtcH0iLmMgPiAvZGV2L251bGwgMj4mMTsKICAg
IGxvY2FsIHJldD0kPzsKICAgIHJtIC1mICIke3RlbXB9Ii5jOwogICAgW1sgJHtyZXR9ICE9IDEg
XV0gJiYgcmV0dXJuIDA7CiAgICByZXR1cm4gMQp9Cmhhc19tNjQgKCkgCnsgCiAgICBsb2NhbCB0
ZW1wPSIkKGVta3RlbXApIjsKICAgIGVjaG8gImludCBtYWluKCkgeyByZXR1cm4oMCk7IH0iID4g
IiR7dGVtcH0iLmM7CiAgICBNWV9DQz0kKHRjLWdldENDKTsKICAgICR7TVlfQ0MvIC4qL30gLW02
NCAtbyAiJChlbWt0ZW1wKSIgIiR7dGVtcH0iLmMgPiAvZGV2L251bGwgMj4mMTsKICAgIGxvY2Fs
IHJldD0kPzsKICAgIHJtIC1mICIke3RlbXB9Ii5jOwogICAgW1sgJHtyZXR9ICE9IDEgXV0gJiYg
cmV0dXJuIDA7CiAgICByZXR1cm4gMQp9Cmhhc19tdWx0aWxpYl9wcm9maWxlICgpIAp7IAogICAg
WyAtbiAiJHtNVUxUSUxJQl9BQklTfSIgLWEgIiR7TVVMVElMSUJfQUJJU30iICE9ICIke01VTFRJ
TElCX0FCSVMvIC99IiBdCn0KaGFzX3BpYyAoKSAKeyAKICAgIGV3YXJuICJoYXNfcGljOiBkZXBy
ZWNhdGVkLCBwbGVhc2UgdXNlIGdjYy1zcGVjcy1waWUoKSEiIDE+JjI7CiAgICBbWyAke0NGTEFH
Uy8tZlBJQ30gIT0gJHtDRkxBR1N9IHx8ICR7Q0ZMQUdTLy1mcGljfSAhPSAke0NGTEFHU30gXV0g
fHwgZ2NjLXNwZWNzLXBpZQp9Cmhhc19waWUgKCkgCnsgCiAgICBld2FybiAiaGFzX3BpZTogZGVw
cmVjYXRlZCwgcGxlYXNlIHVzZSBnY2Mtc3BlY3MtcGllKCkhIiAxPiYyOwogICAgW1sgJHtDRkxB
R1MvLWZQSUV9ICE9ICR7Q0ZMQUdTfSB8fCAke0NGTEFHUy8tZnBpZX0gIT0gJHtDRkxBR1N9IF1d
IHx8IGdjYy1zcGVjcy1waWUKfQpoYXNfc3NwICgpIAp7IAogICAgZXdhcm4gImhhc19zc3A6IGRl
cHJlY2F0ZWQsIHBsZWFzZSB1c2UgZ2NjLXNwZWNzLXNzcCgpISIgMT4mMjsKICAgIFtbICR7Q0ZM
QUdTLy1mc3RhY2stcHJvdGVjdG9yfSAhPSAke0NGTEFHU30gfHwgLW4gJChlY2hvIHwgJCh0Yy1n
ZXRDQykgJHtDRkxBR1N9IC1FIC1kTSAtIHwgZ3JlcCBfX1NTUF9fKSBdXSB8fCBnY2Mtc3BlY3Mt
c3NwCn0KaGFzX3NzcF9hbGwgKCkgCnsgCiAgICBld2FybiAiaGFzX3NzcF9hbGw6IGRlcHJlY2F0
ZWQsIHBsZWFzZSB1c2UgZ2NjLXNwZWNzLXNzcCgpISIgMT4mMjsKICAgIFtbICR7Q0ZMQUdTLy1m
c3RhY2stcHJvdGVjdG9yLWFsbH0gIT0gJHtDRkxBR1N9IHx8IC1uICQoZWNobyB8ICQodGMtZ2V0
Q0MpICR7Q0ZMQUdTfSAtRSAtZE0gLSB8IGdyZXAgX19TU1BfQUxMX18pIF1dIHx8IGdjYy1zcGVj
cy1zc3AtYWxsCn0KaGlkZS1yZXN0cmljdC1hcnIgKCkgCnsgCiAgICBmaW5kICR7V09SS0RJUn0g
LWluYW1lICcqLmgnIHwgeGFyZ3MgfCBjY2MtZml4dXAgJ3MjXChcW19fcmVzdHJpY3RcKV9hcnJc
XSNcMVxdI2cnCn0KaXMtY2NjICgpIAp7IAogICAgWyAiJHtBUkNIfTpgYmFzZW5hbWUgJHtDQzot
Z2NjfWAiID09ICJhbHBoYTpjY2MiIF0KfQppcy1jeHggKCkgCnsgCiAgICBbICIke0FSQ0h9OmBi
YXNlbmFtZSAke0NYWDotZysrfWAiID09ICJhbHBoYTpjeHgiIF0KfQppcy1mbGFnICgpIAp7IAog
ICAgaXMtZmxhZ3EgIiRAIiAmJiBlY2hvIHRydWUKfQppcy1mbGFncSAoKSAKeyAKICAgIFtbIC1u
ICQyIF1dICYmIGRpZSAiVXNhZ2U6IGlzLWZsYWcgPGZsYWc+IjsKICAgIF9pc19mbGFncSBDRkxB
R1MgJDEgfHwgX2lzX2ZsYWdxIENYWEZMQUdTICQxCn0KaXMtbGRmbGFnICgpIAp7IAogICAgaXMt
bGRmbGFncSAiJEAiICYmIGVjaG8gdHJ1ZQp9CmlzLWxkZmxhZ3EgKCkgCnsgCiAgICBbWyAtbiAk
MiBdXSAmJiBkaWUgIlVzYWdlOiBpcy1sZGZsYWcgPGZsYWc+IjsKICAgIF9pc19mbGFncSBMREZM
QUdTICQxCn0KaXMtbGRmbGFncyAoKSAKeyAKICAgIGxvY2FsIHg7CiAgICBmb3IgeCBpbiAke0xE
RkxBR1N9OwogICAgZG8KICAgICAgICBpZiBbICIke3h9IiA9PSAiJHsxfSIgXTsgdGhlbgogICAg
ICAgICAgICB0dHkgLS1xdWlldCA8IC9kZXYvc3Rkb3V0IHx8IGVjaG8gInRydWUiOwogICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICByZXR1cm4gMQp9CmlzLWxv
Z2luLWRpc2FibGVkICgpIAp7IAogICAgc2hlbGw9JChlZ2V0c2hlbGwgIiQxIik7CiAgICBjYXNl
ICR7c2hlbGx9IGluIAogICAgICAgIC9iaW4vZmFsc2UgfCAvdXNyL2Jpbi9mYWxzZSB8IC9zYmlu
L25vbG9naW4gfCAvdXNyL3NiaW4vbm9sb2dpbikKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAg
ICA7OwogICAgICAgICopCiAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgOzsKICAgIGVzYWMK
fQppc19maW5hbF9hYmkgKCkgCnsgCiAgICBoYXNfbXVsdGlsaWJfcHJvZmlsZSB8fCByZXR1cm4g
MDsKICAgIGxvY2FsIEFMTF9BQklTPSQoZ2V0X2luc3RhbGxfYWJpcyk7CiAgICBsb2NhbCBMQVNU
X0FCST0ke0FMTF9BQklTLyogL307CiAgICBbWyAke0xBU1RfQUJJfSA9PSAke0FCSX0gXV0KfQpt
YWtlX2Rlc2t0b3BfZW50cnkgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiBlZXJyb3IgIm1ha2Vf
ZGVza3RvcF9lbnRyeTogWW91IG11c3Qgc3BlY2lmeSB0aGUgZXhlY3V0YWJsZSIgJiYgcmV0dXJu
IDE7CiAgICBsb2NhbCBleGVjPSR7MX07CiAgICBsb2NhbCBuYW1lPSR7MjotJHtQTn19OwogICAg
bG9jYWwgaWNvbj0kezM6LSR7UE59fTsKICAgIGxvY2FsIHR5cGU9JHs0fTsKICAgIGxvY2FsIHBh
dGg9JHs1fTsKICAgIGlmIFtbIC16ICR7dHlwZX0gXV07IHRoZW4KICAgICAgICBsb2NhbCBjYXRt
YWo9JHtDQVRFR09SWSUlLSp9OwogICAgICAgIGxvY2FsIGNhdG1pbj0ke0NBVEVHT1JZIyMqLX07
CiAgICAgICAgY2FzZSAke2NhdG1han0gaW4gCiAgICAgICAgICAgIGFwcCkKICAgICAgICAgICAg
ICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHkp
CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QWNjZXNzaWJpbGl0eQogICAgICAgICAgICAg
ICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYWRtaW4pCiAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGU9U3lzdGVtCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAg
ICBhbnRpdmlydXMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U3lzdGVtCiAgICAgICAg
ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhcmNoKQogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPUFyY2hpdmluZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg
ICAgICAgICAgYmFja3VwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFyY2hpdmluZwog
ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgY2RyKQogICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlPURpc2NCdXJuaW5nCiAgICAgICAgICAgICAgICAgICAgOzsKICAg
ICAgICAgICAgICAgICAgICBkaWN0cykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1EaWN0
aW9uYXJ5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBkb2MpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RG9jdW1lbnRhdGlvbgogICAgICAgICAgICAgICAg
ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZWRpdG9ycykKICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZT1UZXh0RWRpdG9yCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg
ICAgICBlbWFjcykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UZXh0RWRpdG9yCiAgICAg
ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBlbXVsYXRpb24pCiAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9RW11bGF0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAg
ICAgICAgICAgICAgICAgIGxhcHRvcCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1IYXJk
d2FyZVNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBv
ZmZpY2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9T2ZmaWNlCiAgICAgICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBwZGEpCiAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGU9UERBCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICB2aW0p
CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9VGV4dEVkaXRvcgogICAgICAgICAgICAgICAg
ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgeGVtYWNzKQogICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlPVRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg
ICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAgICAgICAg
OzsKICAgICAgICAgICAgICAgIGVzYWMKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZGV2KQog
ICAgICAgICAgICAgICAgdHlwZT0iRGV2ZWxvcG1lbnQiCiAgICAgICAgICAgIDs7CiAgICAgICAg
ICAgIGdhbWVzKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAg
ICAgICAgICAgYWN0aW9uIHwgZnBzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFjdGlv
bkdhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGFyY2FkZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BcmNhZGVHYW1lCiAgICAgICAgICAgICAgICAg
ICAgOzsKICAgICAgICAgICAgICAgICAgICBib2FyZCkKICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZT1Cb2FyZEdhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg
IGVtdWxhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbXVsYXRvcgogICAgICAg
ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAga2lkcykKICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZT1LaWRzR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg
ICAgICAgICAgcHV6emxlKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUxvZ2ljR2FtZQog
ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgcm9ndWVsaWtlKQogICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPVJvbGVQbGF5aW5nCiAgICAgICAgICAgICAgICAgICAg
OzsKICAgICAgICAgICAgICAgICAgICBycGcpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9
Um9sZVBsYXlpbmcKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHNp
bXVsYXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U2ltdWxhdGlvbgogICAgICAg
ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgc3BvcnRzKQogICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPVNwb3J0c0dhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg
ICAgICAgICAgICAgIHN0cmF0ZWd5KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVN0cmF0
ZWd5R2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgKikKICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg
ICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9IkdhbWU7JHt0eXBlfSIKICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgZ25vbWUpCiAgICAgICAgICAgICAgICB0eXBlPSJHbm9tZTtH
VEsiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGtkZSkKICAgICAgICAgICAgICAgIHR5cGU9
IktERTtRdCIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgbWFpbCkKICAgICAgICAgICAgICAg
IHR5cGU9Ik5ldHdvcms7RW1haWwiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIG1lZGlhKQog
ICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgZ2Z4
KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUdyYXBoaWNzCiAgICAgICAgICAgICAgICAg
ICAgOzsKICAgICAgICAgICAgICAgICAgICByYWRpbykKICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZT1UdW5lcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgc291
bmQpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QXVkaW8KICAgICAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICAgICAgICAgIHR2KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl
PVRWCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICB2aWRlbykKICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZT1WaWRlbwogICAgICAgICAgICAgICAgICAgIDs7CiAg
ICAgICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAg
ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5
cGU9IkF1ZGlvVmlkZW87JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgbmV0KQog
ICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgZGlh
bHVwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPURpYWx1cAogICAgICAgICAgICAgICAg
ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZnRwKQogICAgICAgICAgICAgICAgICAgICAgICB0
eXBlPUZpbGVUcmFuc2ZlcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAg
ICAgaW0pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9SW5zdGFudE1lc3NhZ2luZwogICAg
ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgaXJjKQogICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPUlSQ0NsaWVudAogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAg
ICAgICAgICAgICAgbWFpbCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbWFpbAogICAg
ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgbmV3cykKICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZT1OZXdzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg
ICAgICAgICBubnRwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPU5ld3MKICAgICAgICAg
ICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHAycCkKICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZT1GaWxlVHJhbnNmZXIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAg
ICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0eXBlPSJOZXR3
b3JrOyR7dHlwZX0iCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIHNjaSkKICAgICAgICAgICAg
ICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAgIGFzdHJvKikKICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZT1Bc3Ryb25vbXkKICAgICAgICAgICAgICAgICAgICA7Owog
ICAgICAgICAgICAgICAgICAgIGJpbyopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Qmlv
bG9neQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgY2FsYyopCiAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Q2FsY3VsYXRvcgogICAgICAgICAgICAgICAgICAg
IDs7CiAgICAgICAgICAgICAgICAgICAgY2hlbSopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGU9Q2hlbWlzdHJ5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBl
bGVjKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbGVjdHJvbmljcwogICAgICAgICAg
ICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZ2VvKikKICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZT1HZW9sb2d5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg
ICAgICBtYXRoKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1NYXRoCiAgICAgICAgICAg
ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBwaHlzaWNzKQogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPVBoeXNpY3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg
ICAgICAgIHZpc3VhbCopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RGF0YVZpc3VhbGl6
YXRpb24KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgICopCiAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg
ICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0eXBlPSJTY2llbmNlOyR7dHlwZX0iCiAgICAg
ICAgICAgIDs7CiAgICAgICAgICAgIHN5cykKICAgICAgICAgICAgICAgIHR5cGU9IlN5c3RlbSIK
ICAgICAgICAgICAgOzsKICAgICAgICAgICAgd3d3KQogICAgICAgICAgICAgICAgY2FzZSAke2Nh
dG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgY2xpZW50KQogICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlPVdlYkJyb3dzZXIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg
ICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAgICAg
ICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0eXBlPSJOZXR3b3Jr
IgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgdHlwZT0KICAg
ICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAgZmk7CiAgICBpZiBbICIke1NMT1R9IiA9PSAi
MCIgXTsgdGhlbgogICAgICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0iOwogICAgZWxzZQog
ICAgICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0tJHtTTE9UfSI7CiAgICBmaTsKICAgIGxv
Y2FsIGRlc2t0b3A9IiR7VH0vJChlY2hvICR7ZXhlY30gfCBzZWQgJ3M6W1s6c3BhY2U6XS86XTpf
OmcnKS0ke2Rlc2t0b3BfbmFtZX0uZGVza3RvcCI7CiAgICBjYXQgPiAiJHtkZXNrdG9wfSIgIDw8
LUVPRgpbRGVza3RvcCBFbnRyeV0KVmVyc2lvbj0xLjAKTmFtZT0ke25hbWV9ClR5cGU9QXBwbGlj
YXRpb24KQ29tbWVudD0ke0RFU0NSSVBUSU9OfQpFeGVjPSR7ZXhlY30KVHJ5RXhlYz0ke2V4ZWMl
JSAqfQpJY29uPSR7aWNvbn0KQ2F0ZWdvcmllcz0ke3R5cGV9OwpFT0YKCiAgICBbWyAtbiAke3Bh
dGh9IF1dICYmIGVjaG8gIlBhdGg9JHtwYXRofSIgPj4gIiR7ZGVza3RvcH0iOwogICAgKCBpbnNp
bnRvIC91c3Ivc2hhcmUvYXBwbGljYXRpb25zOwogICAgZG9pbnMgIiR7ZGVza3RvcH0iICkKfQpt
YWtlX3Nlc3Npb25fZGVza3RvcCAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIGVlcnJvciAibWFr
ZV9zZXNzaW9uX2Rlc2t0b3A6IFlvdSBtdXN0IHNwZWNpZnkgdGhlIHRpdGxlIiAmJiByZXR1cm4g
MTsKICAgIFtbIC16ICQyIF1dICYmIGVlcnJvciAibWFrZV9zZXNzaW9uX2Rlc2t0b3A6IFlvdSBt
dXN0IHNwZWNpZnkgdGhlIGNvbW1hbmQiICYmIHJldHVybiAxOwogICAgbG9jYWwgdGl0bGU9JDE7
CiAgICBsb2NhbCBjb21tYW5kPSQyOwogICAgbG9jYWwgZGVza3RvcD0ke1R9LyR7d219LmRlc2t0
b3A7CiAgICBjYXQgPiAiJHtkZXNrdG9wfSIgIDw8LUVPRgpbRGVza3RvcCBFbnRyeV0KTmFtZT0k
e3RpdGxlfQpDb21tZW50PVRoaXMgc2Vzc2lvbiBsb2dzIHlvdSBpbnRvICR7dGl0bGV9CkV4ZWM9
JHtjb21tYW5kfQpUcnlFeGVjPSR7Y29tbWFuZH0KVHlwZT1BcHBsaWNhdGlvbgpFT0YKCiAgICAo
IGluc2ludG8gL3Vzci9zaGFyZS94c2Vzc2lvbnM7CiAgICBkb2lucyAiJHtkZXNrdG9wfSIgKQp9
Cm1ha2Vfd3JhcHBlciAoKSAKeyAKICAgIGxvY2FsIHdyYXBwZXI9JDEgYmluPSQyIGNoZGlyPSQz
IGxpYmRpcj0kNCBwYXRoPSQ1OwogICAgbG9jYWwgdG1wd3JhcHBlcj0kKGVta3RlbXApOwogICAg
Y2F0ID4gIiR7dG1wd3JhcHBlcn0iICA8PEVPRgojIS9iaW4vc2gKY2QgIiR7Y2hkaXI6LS59Igpp
ZiBbIC1uICIke2xpYmRpcn0iIF0gOyB0aGVuCglpZiBbICJcJHtMRF9MSUJSQVJZX1BBVEgrc2V0
fSIgPSAic2V0IiBdIDsgdGhlbgoJCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9Ilwke0xEX0xJQlJB
UllfUEFUSH06JHtsaWJkaXJ9IgoJZWxzZQoJCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiR7bGli
ZGlyfSIKCWZpCmZpCmV4ZWMgJHtiaW59ICJcJEAiCkVPRgoKICAgIGNobW9kIGdvK3J4ICIke3Rt
cHdyYXBwZXJ9IjsKICAgIGlmIFtbIC1uICR7cGF0aH0gXV07IHRoZW4KICAgICAgICAoIGV4ZWlu
dG8gIiR7cGF0aH0iOwogICAgICAgIG5ld2V4ZSAiJHt0bXB3cmFwcGVyfSIgIiR7d3JhcHBlcn0i
ICkgfHwgZGllOwogICAgZWxzZQogICAgICAgIG5ld2JpbiAiJHt0bXB3cmFwcGVyfSIgIiR7d3Jh
cHBlcn0iIHx8IGRpZTsKICAgIGZpCn0KbWF5YmVfZmFpbCAoKSAKeyAKICAgIFtbIC16ICR7ITJ9
IF1dICYmIHVzZSAkezF9ICYmIGVjaG8gJHsxfQp9Cm11bHRpbGliX2VudiAoKSAKeyAKICAgIGxv
Y2FsIENUQVJHRVQ9JHsxOi0ke0NUQVJHRVR9fTsKICAgIGNhc2UgJHtDVEFSR0VUfSBpbiAKICAg
ICAgICB4ODZfNjQqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3g4Nj0ke0NGTEFHU194ODYt
LW0zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF94ODY9JHtDVEFSR0VUL3g4Nl82NC9pNjg2
fTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfeDg2PSR7Q0hPU1RfeDg2fTsKICAgICAgICAg
ICAgZXhwb3J0IENERUZJTkVfeDg2PSJfX2kzODZfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJE
SVJfeDg2PSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX2FtZDY0PSR7Q0ZMQUdTX2Ft
ZDY0LS1tNjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfYW1kNjQ9JHtDVEFSR0VUfTsKICAg
ICAgICAgICAgZXhwb3J0IENUQVJHRVRfYW1kNjQ9JHtDSE9TVF9hbWQ2NH07CiAgICAgICAgICAg
IGV4cG9ydCBDREVGSU5FX2FtZDY0PSJfX3g4Nl82NF9fIjsKICAgICAgICAgICAgZXhwb3J0IExJ
QkRJUl9hbWQ2ND0ibGliNjQiOwogICAgICAgICAgICBleHBvcnQgTVVMVElMSUJfQUJJUz0iYW1k
NjQgeDg2IjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJhbWQ2NCIKICAgICAgICA7
OwogICAgICAgIG1pcHM2NCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfbzMyPSR7Q0ZMQUdT
X28zMi0tbWFiaT0zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9vMzI9JHtDVEFSR0VUL21p
cHM2NC9taXBzfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfbzMyPSR7Q0hPU1RfbzMyfTsK
ICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfbzMyPSJfTUlQU19TSU0gPT0gX0FCSU8zMiI7CiAg
ICAgICAgICAgIGV4cG9ydCBMSUJESVJfbzMyPSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZM
QUdTX24zMj0ke0NGTEFHU19uMzItLW1hYmk9bjMyfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NU
X24zMj0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9uMzI9JHtDSE9TVF9u
MzJ9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9uMzI9Il9NSVBTX1NJTSA9PSBfQUJJTjMy
IjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9uMzI9ImxpYjMyIjsKICAgICAgICAgICAgZXhw
b3J0IENGTEFHU19uNjQ9JHtDRkxBR1NfbjY0LS1tYWJpPTY0fTsKICAgICAgICAgICAgZXhwb3J0
IENIT1NUX242ND0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9uNjQ9JHtD
SE9TVF9uNjR9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9uNjQ9Il9NSVBTX1NJTSA9PSBf
QUJJNjQiOwogICAgICAgICAgICBleHBvcnQgTElCRElSX242ND0ibGliNjQiOwogICAgICAgICAg
ICBleHBvcnQgTVVMVElMSUJfQUJJUz0ibjY0IG4zMiBvMzIiOwogICAgICAgICAgICBleHBvcnQg
REVGQVVMVF9BQkk9Im4zMiIKICAgICAgICA7OwogICAgICAgIHBvd2VycGM2NCopCiAgICAgICAg
ICAgIGV4cG9ydCBDRkxBR1NfcHBjPSR7Q0ZMQUdTX3BwYy0tbTMyfTsKICAgICAgICAgICAgZXhw
b3J0IENIT1NUX3BwYz0ke0NUQVJHRVQvcG93ZXJwYzY0L3Bvd2VycGN9OwogICAgICAgICAgICBl
eHBvcnQgQ1RBUkdFVF9wcGM9JHtDSE9TVF9wcGN9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklO
RV9wcGM9IiFfX3Bvd2VycGM2NF9fIjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9wcGM9Imxp
YiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfcHBjNjQ9JHtDRkxBR1NfcHBjNjQtLW02NH07
CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9wcGM2ND0ke0NUQVJHRVR9OwogICAgICAgICAgICBl
eHBvcnQgQ1RBUkdFVF9wcGM2ND0ke0NIT1NUX3BwYzY0fTsKICAgICAgICAgICAgZXhwb3J0IENE
RUZJTkVfcHBjNjQ9Il9fcG93ZXJwYzY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3Bw
YzY0PSJsaWI2NCI7CiAgICAgICAgICAgIGV4cG9ydCBNVUxUSUxJQl9BQklTPSJwcGM2NCBwcGMi
OwogICAgICAgICAgICBleHBvcnQgREVGQVVMVF9BQkk9InBwYzY0IgogICAgICAgIDs7CiAgICAg
ICAgczM5MHgqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3MzOTA9JHtDRkxBR1NfczM5MC0t
bTMxfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX3MzOTA9JHtDVEFSR0VUL3MzOTB4L3MzOTB9
OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9zMzkwPSR7Q0hPU1RfczM5MH07CiAgICAgICAg
ICAgIGV4cG9ydCBDREVGSU5FX3MzOTA9IiFfX3MzOTB4X18iOwogICAgICAgICAgICBleHBvcnQg
TElCRElSX3MzOTA9ImxpYiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfczM5MHg9JHtDRkxB
R1NfczM5MHgtLW02NH07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9zMzkweD0ke0NUQVJHRVR9
OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9zMzkweD0ke0NIT1NUX3MzOTB4fTsKICAgICAg
ICAgICAgZXhwb3J0IENERUZJTkVfczM5MHg9Il9fczM5MHhfXyI7CiAgICAgICAgICAgIGV4cG9y
dCBMSUJESVJfczM5MHg9ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9
InMzOTB4IHMzOTAiOwogICAgICAgICAgICBleHBvcnQgREVGQVVMVF9BQkk9InMzOTB4IgogICAg
ICAgIDs7CiAgICAgICAgc3BhcmM2NCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1Nfc3BhcmMz
Mj0ke0NGTEFHU19zcGFyYzMyLS1tMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rfc3BhcmMz
Mj0ke0NUQVJHRVQvc3BhcmM2NC9zcGFyY307CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX3Nw
YXJjMzI9JHtDSE9TVF9zcGFyYzMyfTsKICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfc3BhcmMz
Mj0iIV9fYXJjaDY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3NwYXJjMzI9ImxpYiI7
CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1Nfc3BhcmM2ND0ke0NGTEFHU19zcGFyYzY0LS1tNjR9
OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rfc3BhcmM2ND0ke0NUQVJHRVR9OwogICAgICAgICAg
ICBleHBvcnQgQ1RBUkdFVF9zcGFyYzY0PSR7Q0hPU1Rfc3BhcmM2NH07CiAgICAgICAgICAgIGV4
cG9ydCBDREVGSU5FX3NwYXJjNjQ9Il9fYXJjaDY0X18iOwogICAgICAgICAgICBleHBvcnQgTElC
RElSX3NwYXJjNjQ9ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9InNw
YXJjNjQgc3BhcmMzMiI7CiAgICAgICAgICAgIGV4cG9ydCBERUZBVUxUX0FCST0ic3BhcmM2NCIK
ICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGV4cG9ydCBNVUxUSUxJQl9BQklTPSJk
ZWZhdWx0IjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJkZWZhdWx0IgogICAgICAg
IDs7CiAgICBlc2FjCn0KbXVsdGlsaWJfdG9vbGNoYWluX3NldHVwICgpIAp7IAogICAgZXhwb3J0
IEFCST0kMTsKICAgIGlmIGhhc192ZXJzaW9uIGFwcC1hZG1pbi9lc2VsZWN0LWNvbXBpbGVyOyB0
aGVuCiAgICAgICAgZXhwb3J0IExEPSJsZCAkKGdldF9hYmlfTERGTEFHUyAkMSkiOwogICAgICAg
IGV4cG9ydCBBUz0iYXMgJChnZXRfYWJpX0FTRkxBR1MgJDEpIjsKICAgICAgICBleHBvcnQgQ0hP
U1Q9JChnZXRfYWJpX0NIT1NUICQxKTsKICAgICAgICBleHBvcnQgQ0JVSUxEPSQoZ2V0X2FiaV9D
SE9TVCAkMSk7CiAgICBlbHNlCiAgICAgICAgdGMtZXhwb3J0IENDOwogICAgZmkKfQpuZXdpY29u
ICgpIAp7IAogICAgKCBpbnNpbnRvIC91c3Ivc2hhcmUvcGl4bWFwczsKICAgIG5ld2lucyAiJEAi
ICkKfQpuZXdtZW51ICgpIAp7IAogICAgKCBpbnNpbnRvIC91c3Ivc2hhcmUvYXBwbGljYXRpb25z
OwogICAgbmV3aW5zICIkQCIgKQp9Cm5ld3BhbWQgKCkgCnsgCiAgICBbWyAkIyAtbmUgMiBdXSAm
JiBkaWUgIm5ld3BhbWQgcmVxdWlyZXMgdHdvIGFyZ3VtZW50cyI7CiAgICBpZiBoYXNxIHBhbSAk
e0lVU0V9ICYmICEgdXNlIHBhbTsgdGhlbgogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICAo
IGluc2ludG8gL2V0Yy9wYW0uZDsKICAgIGluc29wdHMgLW0gMDY0NDsKICAgIG5ld2lucyAiJDEi
ICIkMiIgKSB8fCBkaWUgImZhaWxlZCB0byBpbnN0YWxsICQxIGFzICQyIjsKICAgIGNsZWFucGFt
ZCAkMgp9Cm5ld3BhbW1vZCAoKSAKeyAKICAgIFtbICQjIC1uZSAyIF1dICYmIGRpZSAibmV3cGFt
bW9kIHJlcXVpcmVzIHR3byBhcmd1ZW1lbnRzIjsKICAgIGlmIGhhc3EgcGFtICR7SVVTRX0gJiYg
ISB1c2UgcGFtOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGV4ZWludG8gJChn
ZXRwYW1fbW9kX2Rpcik7CiAgICBuZXdleGUgIiQxIiAiJDIiIHx8IGRpZSAiZmFpbGVkIHRvIGlu
c3RhbGwgJDEgYXMgJDIiCn0KbmV3cGFtc2VjdXJpdHkgKCkgCnsgCiAgICBbWyAkIyAtbmUgMyBd
XSAmJiBkaWUgIm5ld3BhbXNlY3VyaXR5IHJlcXVpcmVzIHRocmVlIGFyZ3VtZW50cyI7CiAgICBp
ZiBoYXNxIHBhbSAke0lVU0V9ICYmICEgdXNlIHBhbTsgdGhlbgogICAgICAgIHJldHVybiAwOwog
ICAgZmk7CiAgICAoIGluc2ludG8gL2V0Yy9zZWN1cml0eS8kMTsKICAgIGluc29wdHMgLW0gMDY0
NDsKICAgIG5ld2lucyAiJDIiICIkMyIgKSB8fCBkaWUgImZhaWxlZCB0byBpbnN0YWxsICQyIGFz
ICQzIgp9Cm51bWJlcl9hYmlzICgpIAp7IAogICAgZ2V0X2luc3RhbGxfYWJpcyB8IHdjIC13Cn0K
b3RzaWZ5ICgpIAp7IAogICAgWyAiJERFQlVHX0NDQ19FQ0xBU1MiIF0gJiYgbG9jYWwgYXJfYXJn
cz0idiI7CiAgICBpZiBbICIkezEjIyoufSIgPT0gImEiIF0gJiYgWyAtZiAiJHsxfSIgXTsgdGhl
bgogICAgICAgIGVpbmZvICJvdHNpZnlpbmcgYGJhc2VuYW1lICR7MX1gIC4uLiI7CiAgICAgICAg
bWtkaXIgJHtUfS9jY2Mtb3RzaWZ5LSR7JH07CiAgICAgICAgY2QgJHtUfS9jY2Mtb3RzaWZ5LSR7
JH07CiAgICAgICAgZWluZm8gIglleHRyYWN0aW5nIGFyY2hpdmUgbWVtYmVycyBmcm9tIGxpYm90
cyAuLi4iOwogICAgICAgIGFyICR7YXJfYXJnc314IC91c3IvbGliL2xpYm90cy5hIHx8IHsgCiAg
ICAgICAgICAgIGVlcnJvciAiCXVuYWJsZSB0byBleHRyYWN0IGxpYm90cyBtZW1iZXJzLiI7CiAg
ICAgICAgICAgIHJldHVybiAxCiAgICAgICAgfTsKICAgICAgICBlaW5mbyAiCWFwcGVuZGluZyBs
aWJvdHMgbWVtYmVycyB0byBgYmFzZW5hbWUgJHsxfWAgLi4uIjsKICAgICAgICBhciAke2FyX2Fy
Z3N9cSAkezF9ICR7VH0vY2NjLW90c2lmeS0keyR9LyoubyB8fCB7IAogICAgICAgICAgICBlZXJy
b3IgIglmYWlsZWQgdG8gYXBwZW5kIGxpYm90cyBtZW1iZXJzIHRvICR7MX0uIjsKICAgICAgICAg
ICAgcmV0dXJuIDEKICAgICAgICB9OwogICAgICAgIGVpbmZvICIJcmVnZW5lcmF0aW5nIGBiYXNl
bmFtZSAkezF9YCBhcmNoaXZlIGluZGV4IC4uLiI7CiAgICAgICAgcmFubGliICR7MX0gfHwgZXdh
cm4gIglyYW5saWIgcmV0dXJuZWQgYW4gZXJyb3IsIHByb2JhYmx5IG5vdCBpbXBvcnRhbnQuIjsK
ICAgICAgICBlaW5mbyAib3RzaWZpY2F0aW9uIGNvbXBsZXRlZCBzdWNjZXNmdWxseS4iOwogICAg
ICAgIGNkICR7T0xEUFdEOi0ufTsKICAgICAgICByZXR1cm4gMDsKICAgIGVsc2UKICAgICAgICBl
d2FybiAiY2FsbGVkIG90c2lmeSgpIHdpdGggYmFkIGFyZ3VtZW50IC4uLiI7CiAgICAgICAgY2Qg
JHtPTERQV0Q6LS59OwogICAgICAgIHJldHVybiAxOwogICAgZmkKfQpwYW1fZXBhbV9leHBhbmQg
KCkgCnsgCiAgICBzZWQgLW4gLWUgJ3N8IyVFUEFNLVwoW1s6YWxwaGE6XS1dXCtcKTpcKFstKzw+
PS8uIVs6YWxudW06XV1cK1wpJSMuKnxcMSBcMnxwJyAiJEAiIHwgc29ydCAtdSB8IHdoaWxlIHJl
YWQgY29uZGl0aW9uIHBhcmFtZXRlcjsgZG8KICAgICAgICBkaXNhYmxlPSJ5ZXMiOwogICAgICAg
IGNhc2UgIiRjb25kaXRpb24iIGluIAogICAgICAgICAgICBJZi1IYXMpCiAgICAgICAgICAgICAg
ICBtZXNzYWdlPSJUaGlzIGNhbiBiZSB1c2VkIG9ubHkgaWYgeW91IGhhdmUgJHtwYXJhbWV0ZXJ9
IGluc3RhbGxlZCI7CiAgICAgICAgICAgICAgICBoYXNfdmVyc2lvbiAiJHBhcmFtZXRlciIgJiYg
ZGlzYWJsZT0ibm8iCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIFVzZS1GbGFnKQogICAgICAg
ICAgICAgICAgbWVzc2FnZT0iVGhpcyBjYW4gYmUgdXNlZCBvbmx5IGlmIHlvdSBlbmFibGVkIHRo
ZSAke3BhcmFtZXRlcn0gVVNFIGZsYWciOwogICAgICAgICAgICAgICAgdXNlICIkcGFyYW1ldGVy
IiAmJiBkaXNhYmxlPSJubyIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAg
ICAgICAgIGVlcnJvciAiVW5rbm93biBFUEFNIGNvbmRpdGlvbiAnJHtjb25kaXRpb259JyAoJyR7
cGFyYW1ldGVyfScpIjsKICAgICAgICAgICAgICAgIGRpZSAiVW5rbm93biBFUEFNIGNvbmRpdGlv
biAnJHtjb25kaXRpb259JyAoJyR7cGFyYW1ldGVyfScpIgogICAgICAgICAgICA7OwogICAgICAg
IGVzYWM7CiAgICAgICAgaWYgWyAiJHtkaXNhYmxlfSIgPSAieWVzIiBdOyB0aGVuCiAgICAgICAg
ICAgIHNlZCAtaSAtZSAiLyMlRVBBTS0ke2NvbmRpdGlvbn06JHtwYXJhbWV0ZXIvXC8vXFwvfSUj
L2QiICIkQCI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBzZWQgLWkgLWUgInN8IyVFUEFNLSR7
Y29uZGl0aW9ufToke3BhcmFtZXRlcn0lI3x8IiAiJEAiOwogICAgICAgIGZpOwogICAgZG9uZQp9
CnBhbWRfbWltaWMgKCkgCnsgCiAgICBbWyAkIyAtbHQgMyBdXSAmJiBkaWUgInBhbWRfbWltaWMg
cmVxdWlyZXMgYXQgbGVhc3QgdGhyZWUgYXJnbWVudHMiOwogICAgaWYgaGFzcSBwYW0gJHtJVVNF
fSAmJiAhIHVzZSBwYW07IHRoZW4KICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgZG9kaXIg
L2V0Yy9wYW0uZDsKICAgIHBhbWRmaWxlPSR7RH0vZXRjL3BhbS5kLyQyOwogICAgZWNobyAtZSAi
IyBGaWxlIGF1dG9nZW5lcmF0ZWQgYnkgcGFtZF9taW1pYyBpbiBwYW0gZWNsYXNzXG5cbiIgPj4g
JHBhbWRmaWxlOwogICAgb3JpZ2luYWxzdGFjaz0kMTsKICAgIGF1dGhsZXZlbHM9ImF1dGggYWNj
b3VudCBwYXNzd29yZCBzZXNzaW9uIjsKICAgIGlmIGhhc192ZXJzaW9uICc8c3lzLWxpYnMvcGFt
LTAuNzgnOyB0aGVuCiAgICAgICAgbWltaWM9Ilx0cmVxdWlyZWRcdFx0cGFtX3N0YWNrLnNvIHNl
cnZpY2U9JHtvcmlnaW5hbHN0YWNrfSI7CiAgICBlbHNlCiAgICAgICAgbWltaWM9Ilx0aW5jbHVk
ZVx0XHQke29yaWdpbmFsc3RhY2t9IjsKICAgIGZpOwogICAgc2hpZnQ7CiAgICBzaGlmdDsKICAg
IHdoaWxlIFtbIC1uICQxIF1dOyBkbwogICAgICAgIGhhc3EgJDEgJHthdXRobGV2ZWxzfSB8fCBk
aWUgInVua25vd24gbGV2ZWwgdHlwZSI7CiAgICAgICAgZWNobyAtZSAiJDEke21pbWljfSIgPj4g
JHtwYW1kZmlsZX07CiAgICAgICAgc2hpZnQ7CiAgICBkb25lCn0KcGFtZF9taW1pY19zeXN0ZW0g
KCkgCnsgCiAgICBbWyAkIyAtbHQgMiBdXSAmJiBkaWUgInBhbWRfbWltaWNfc3lzdGVtIHJlcXVp
cmVzIGF0IGxlYXN0IHR3byBhcmdtZW50cyI7CiAgICBwYW1kX21pbWljIHN5c3RlbS1hdXRoICIk
QCIKfQpwa2dfbm9mZXRjaCAoKSAKeyAKICAgIFsgLXogIiR7U1JDX1VSSX0iIF0gJiYgcmV0dXJu
OwogICAgZWNobyAiISEhIFRoZSBmb2xsb3dpbmcgYXJlIGxpc3RlZCBpbiBTUkNfVVJJIGZvciAk
e1BOfToiOwogICAgbG9jYWwgeDsKICAgIGZvciB4IGluICQoZWNobyAke1NSQ19VUkl9KTsKICAg
IGRvCiAgICAgICAgZWNobyAiISEhICAgJHt4fSI7CiAgICBkb25lCn0KcGtnX3Bvc3RpbnN0ICgp
IAp7IAogICAgZW5ld2dyb3VwIHNzaGQgMjI7CiAgICBlbmV3dXNlciBzc2hkIDIyIC0xIC92YXIv
ZW1wdHkgc3NoZDsKICAgIGNobW9kIHUreCAiJHtST09UfSIvZXRjL3NrZWwvLnNzaCA+Ji9kZXYv
bnVsbDsKICAgIGV3YXJuICJSZW1lbWJlciB0byBtZXJnZSB5b3VyIGNvbmZpZyBmaWxlcyBpbiAv
ZXRjL3NzaC8gYW5kIHRoZW4iOwogICAgZXdhcm4gInJlc3RhcnQgc3NoZDogJy9ldGMvaW5pdC5k
L3NzaGQgcmVzdGFydCcuIjsKICAgIGlmIHVzZSBwYW07IHRoZW4KICAgICAgICBlY2hvOwogICAg
ICAgIGV3YXJuICJQbGVhc2UgYmUgYXdhcmUgdXNlcnMgbmVlZCBhIHZhbGlkIHNoZWxsIGluIC9l
dGMvcGFzc3dkIjsKICAgICAgICBld2FybiAiaW4gb3JkZXIgdG8gYmUgYWxsb3dlZCB0byBsb2dp
bi4iOwogICAgZmkKfQpwa2dfc2V0dXAgKCkgCnsgCiAgICBmdW5jdGlvbiBtYXliZV9mYWlsICgp
IAogICAgeyAKICAgICAgICBbWyAteiAkeyEyfSBdXSAmJiB1c2UgJHsxfSAmJiBlY2hvICR7MX0K
ICAgIH07CiAgICBsb2NhbCBmYWlsPSIKCQkkKG1heWJlX2ZhaWwgWDUwOSBYNTA5X1BBVENIKQoJ
CSQobWF5YmVfZmFpbCBsZGFwIExEQVBfUEFUQ0gpCgkiOwogICAgZmFpbD0kKGVjaG8gJHtmYWls
fSk7CiAgICBpZiBbWyAtbiAke2ZhaWx9IF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJTb3JyeSwg
YnV0IHRoaXMgdmVyc2lvbiBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBmZWF0dXJlcyI7CiAgICAgICAg
ZWVycm9yICJ0aGF0IHlvdSByZXF1ZXN0ZWQ6CSAke2ZhaWx9IjsKICAgICAgICBlZXJyb3IgIlBs
ZWFzZSBtYXNrICR7UEZ9IGZvciBub3cgYW5kIGNoZWNrIGJhY2sgbGF0ZXI6IjsKICAgICAgICBl
ZXJyb3IgIiAjIGVjaG8gJz0ke0NBVEVHT1JZfS8ke1BGfScgPj4gL2V0Yy9wb3J0YWdlL3BhY2th
Z2UubWFzayI7CiAgICAgICAgZGllICJib29vb28iOwogICAgZmkKfQpwcmVwX21sX2luY2x1ZGVz
ICgpIAp7IAogICAgaWYgW1sgJChudW1iZXJfYWJpcykgLWd0IDEgXV07IHRoZW4KICAgICAgICBs
b2NhbCBkaXI7CiAgICAgICAgbG9jYWwgZGlyczsKICAgICAgICBsb2NhbCBiYXNlOwogICAgICAg
IGlmIFtbICQjIC1lcSAwIF1dOyB0aGVuCiAgICAgICAgICAgIGRpcnM9L3Vzci9pbmNsdWRlOwog
ICAgICAgIGVsc2UKICAgICAgICAgICAgZGlycz0iJEAiOwogICAgICAgIGZpOwogICAgICAgIGZv
ciBkaXIgaW4gJHtkaXJzfTsKICAgICAgICBkbwogICAgICAgICAgICBiYXNlPSR7VH0vZ2VudG9v
LW11bHRpbGliLyR7ZGlyfS9nZW50b28tbXVsdGlsaWI7CiAgICAgICAgICAgIG1rZGlyIC1wICIk
e2Jhc2V9IjsKICAgICAgICAgICAgW1sgLWQgJHtiYXNlfS8ke0FCSX0gXV0gJiYgcm0gLXJmICIk
e2Jhc2V9LyR7QUJJfSI7CiAgICAgICAgICAgIG12ICIke0R9LyR7ZGlyfSIgIiR7YmFzZX0vJHtB
Qkl9IjsKICAgICAgICBkb25lOwogICAgICAgIGlmIGlzX2ZpbmFsX2FiaTsgdGhlbgogICAgICAg
ICAgICBiYXNlPSR7VH0vZ2VudG9vLW11bHRpbGliOwogICAgICAgICAgICBwdXNoZCAiJHtiYXNl
fSI7CiAgICAgICAgICAgIGZpbmQgLiB8IHRhciAtYyAtVCAtIC1mIC0gfCB0YXIgLXggLS1uby1z
YW1lLW93bmVyIC1mIC0gLUMgJHtEfTsKICAgICAgICAgICAgcG9wZDsKICAgICAgICAgICAgc2V0
IC0tOwogICAgICAgICAgICBmb3IgZGlyIGluICR7ZGlyc307CiAgICAgICAgICAgIGRvCiAgICAg
ICAgICAgICAgICBzZXQgLS0gIiRAIiAiJHtkaXJ9IjsKICAgICAgICAgICAgICAgIGxvY2FsIGFi
aTsKICAgICAgICAgICAgICAgIGZvciBhYmkgaW4gJChnZXRfaW5zdGFsbF9hYmlzKTsKICAgICAg
ICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgc2V0IC0tICIkQCIgIiQoZ2V0X2FiaV9D
REVGSU5FICR7YWJpfSk6JHtkaXJ9L2dlbnRvby1tdWx0aWxpYi8ke2FiaX0iOwogICAgICAgICAg
ICAgICAgZG9uZTsKICAgICAgICAgICAgICAgIGNyZWF0ZV9tbF9pbmNsdWRlcyAiJEAiOwogICAg
ICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAgZmkKfQpwcmVzZXJ2ZV9vbGRfbGliICgpIAp7
IAogICAgaWYgW1sgJHtFQlVJTERfUEhBU0V9ICE9ICJwcmVpbnN0IiBdXTsgdGhlbgogICAgICAg
IGVlcnJvciAicHJlc2VydmVfb2xkX2xpYigpIG11c3QgYmUgY2FsbGVkIGZyb20gcGtnX3ByZWlu
c3QoKSBvbmx5IjsKICAgICAgICBkaWUgIkludmFsaWQgcHJlc2VydmVfb2xkX2xpYigpIHVzYWdl
IjsKICAgIGZpOwogICAgW1sgLXogJDEgXV0gJiYgZGllICJVc2FnZTogcHJlc2VydmVfb2xkX2xp
YiA8bGlicmFyeSB0byBwcmVzZXJ2ZT4gW21vcmUgbGlicmFyaWVzIHRvIHByZXNlcnZlXSI7CiAg
ICBoYXMgcHJlc2VydmUtbGlicyAke0ZFQVRVUkVTfSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIGxp
YiBkaXI7CiAgICBmb3IgbGliIGluICIkQCI7CiAgICBkbwogICAgICAgIFtbIC1lICR7Uk9PVH0v
JHtsaWJ9IF1dIHx8IGNvbnRpbnVlOwogICAgICAgIGRpcj0ke2xpYiUvKn07CiAgICAgICAgZG9k
aXIgJHtkaXJ9IHx8IGRpZSAiZG9kaXIgJHtkaXJ9IGZhaWxlZCI7CiAgICAgICAgY3AgIiR7Uk9P
VH0iLyR7bGlifSAiJHtEfSIvJHtsaWJ9IHx8IGRpZSAiY3AgJHtsaWJ9IGZhaWxlZCI7CiAgICAg
ICAgdG91Y2ggIiR7RH0iLyR7bGlifTsKICAgIGRvbmUKfQpwcmVzZXJ2ZV9vbGRfbGliX25vdGlm
eSAoKSAKeyAKICAgIGlmIFtbICR7RUJVSUxEX1BIQVNFfSAhPSAicG9zdGluc3QiIF1dOyB0aGVu
CiAgICAgICAgZWVycm9yICJwcmVzZXJ2ZV9vbGRfbGliX25vdGlmeSgpIG11c3QgYmUgY2FsbGVk
IGZyb20gcGtnX3Bvc3RpbnN0KCkgb25seSI7CiAgICAgICAgZGllICJJbnZhbGlkIHByZXNlcnZl
X29sZF9saWJfbm90aWZ5KCkgdXNhZ2UiOwogICAgZmk7CiAgICBoYXMgcHJlc2VydmUtbGlicyAk
e0ZFQVRVUkVTfSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIGxpYiBub3RpY2U9MDsKICAgIGZvciBs
aWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgW1sgLWUgJHtST09UfS8ke2xpYn0gXV0gfHwgY29u
dGludWU7CiAgICAgICAgaWYgW1sgJHtub3RpY2V9IC1lcSAwIF1dOyB0aGVuCiAgICAgICAgICAg
IG5vdGljZT0xOwogICAgICAgICAgICBld2FybiAiT2xkIHZlcnNpb25zIG9mIGluc3RhbGxlZCBs
aWJyYXJpZXMgd2VyZSBkZXRlY3RlZCBvbiB5b3VyIHN5c3RlbS4iOwogICAgICAgICAgICBld2Fy
biAiSW4gb3JkZXIgdG8gYXZvaWQgYnJlYWtpbmcgcGFja2FnZXMgdGhhdCBkZXBlbmQgb24gdGhl
c2Ugb2xkIGxpYnMsIjsKICAgICAgICAgICAgZXdhcm4gInRoZSBsaWJyYXJpZXMgYXJlIG5vdCBi
ZWluZyByZW1vdmVkLiAgWW91IG5lZWQgdG8gcnVuIHJldmRlcC1yZWJ1aWxkIjsKICAgICAgICAg
ICAgZXdhcm4gImluIG9yZGVyIHRvIHJlbW92ZSB0aGVzZSBvbGQgZGVwZW5kZW5jaWVzLiAgSWYg
eW91IGRvIG5vdCBoYXZlIHRoaXMiOwogICAgICAgICAgICBld2FybiAiaGVscGVyIHByb2dyYW0s
IHNpbXBseSBlbWVyZ2UgdGhlICdnZW50b29sa2l0JyBwYWNrYWdlLiI7CiAgICAgICAgICAgIGV3
YXJuOwogICAgICAgIGZpOwogICAgICAgIGV3YXJuICIgICMgcmV2ZGVwLXJlYnVpbGQgLS1saWJy
YXJ5ICR7bGliIyMqL30iOwogICAgZG9uZTsKICAgIGlmIFtbICR7bm90aWNlfSAtZXEgMSBdXTsg
dGhlbgogICAgICAgIGV3YXJuOwogICAgICAgIGV3YXJuICJPbmNlIHlvdSd2ZSBmaW5pc2hlZCBy
dW5uaW5nIHJldmRlcC1yZWJ1aWxkLCBpdCBzaG91bGQgYmUgc2FmZSB0byI7CiAgICAgICAgZXdh
cm4gImRlbGV0ZSB0aGUgb2xkIGxpYnJhcmllcy4gIEhlcmUgaXMgYSBjb3B5ICYgcGFzdGUgZm9y
IHRoZSBsYXp5OiI7CiAgICAgICAgZm9yIGxpYiBpbiAiJEAiOwogICAgICAgIGRvCiAgICAgICAg
ICAgIGV3YXJuICIgICMgcm0gJyR7bGlifSciOwogICAgICAgIGRvbmU7CiAgICBmaQp9CnJhdy1s
ZGZsYWdzICgpIAp7IAogICAgbG9jYWwgeCBpbnB1dD0iJEAiOwogICAgW1sgLXogJHtpbnB1dH0g
XV0gJiYgaW5wdXQ9JHtMREZMQUdTfTsKICAgIHNldCAtLTsKICAgIGZvciB4IGluICR7aW5wdXR9
OwogICAgZG8KICAgICAgICB4PSR7eCMtV2wsfTsKICAgICAgICBzZXQgLS0gIiRAIiAke3gvLywv
IH07CiAgICBkb25lOwogICAgZWNobyAiJEAiCn0KcmVtb3ZlX2ZsYWcgKCkgCnsgCiAgICBsb2Nh
bCByZW1vdmU9IiR7MX0iOwogICAgc2hpZnQ7CiAgICB3aGlsZSBbWyAtbiAiJHsxfSIgXV07IGRv
CiAgICAgICAgW1sgIiR7MX0iICE9ICIke3JlbW92ZX0iIF1dICYmIGVjaG8gLW4gIiR7MX0gIjsK
ICAgICAgICBzaGlmdDsKICAgIGRvbmUKfQpyZXBsYWNlLWNjLWhhcmRjb2RlICgpIAp7IAogICAg
ZmluZCAke1dPUktESVJ9IC1pbmFtZSBNYWtlZmlsZSB8IHhhcmdzIHwgY2NjLWZpeHVwICJzI15c
KENDLio9XCkuKmdcP2NjI1wxJHtDQzotZ2NjfSNnIgp9CnJlcGxhY2UtY2NjLWcgKCkgCnsgCiAg
ICBmaW5kICR7V09SS0RJUn0gLWluYW1lIE1ha2VmaWxlIHwgeGFyZ3MgfCBjY2MtZml4dXAgInMj
XCheXENYXHssMlx9RkxBR1NbWzpzcGFjZTpdXSo9LipbXCdcIlx4MjBcdF0qXCktZ1woW1wnXCJc
eDIwXHRdXHwkXCkjXDEtZzNcMiNnIgp9CnJlcGxhY2UtY3B1LWZsYWdzICgpIAp7IAogICAgbG9j
YWwgbmV3Y3B1PSIkIyI7CiAgICBuZXdjcHU9IiR7IW5ld2NwdX0iOwogICAgd2hpbGUgWyAkIyAt
Z3QgMSBdOyBkbwogICAgICAgIHJlcGxhY2UtZmxhZ3MgIi1tYXJjaD0kezF9IiAiLW1hcmNoPSR7
bmV3Y3B1fSI7CiAgICAgICAgcmVwbGFjZS1mbGFncyAiLW1jcHU9JHsxfSIgIi1tY3B1PSR7bmV3
Y3B1fSI7CiAgICAgICAgcmVwbGFjZS1mbGFncyAiLW10dW5lPSR7MX0iICItbXR1bmU9JHtuZXdj
cHV9IjsKICAgICAgICBzaGlmdDsKICAgIGRvbmU7CiAgICByZXR1cm4gMAp9CnJlcGxhY2UtY3h4
LWhhcmRjb2RlICgpIAp7IAogICAgZmluZCAke1dPUktESVJ9IC1pbmFtZSBNYWtlZmlsZSB8IHhh
cmdzIHwgY2NjLWZpeHVwICJzI15cKENYWC4qPVwpLipbZ2NdXHsxXH0rKyNcMSR7Q1hYOi1nKyt9
I2ciCn0KcmVwbGFjZS1mbGFncyAoKSAKeyAKICAgIFtbICQjICE9IDIgXV0gJiYgZWNobyAmJiBl
ZXJyb3IgIlVzYWdlOiByZXBsYWNlLWZsYWdzIDxvbGQgZmxhZz4gPG5ldyBmbGFnPiIgJiYgZGll
ICJyZXBsYWNlLWZsYWdzIHRha2VzIDIgYXJndW1lbnRzLCBub3QgJCMiOwogICAgbG9jYWwgZiBm
c2V0OwogICAgZGVjbGFyZSAtYSBuZXdfQ0ZMQUdTIG5ld19DWFhGTEFHUzsKICAgIGZvciBmc2V0
IGluIENGTEFHUyBDWFhGTEFHUzsKICAgIGRvCiAgICAgICAgZm9yIGYgaW4gJHshZnNldH07CiAg
ICAgICAgZG8KICAgICAgICAgICAgW1sgJHtmfSA9PSAkezF9IF1dICYmIGY9JHsyfTsKICAgICAg
ICAgICAgZXZhbCBuZXdfJHtmc2V0fVxbXCR7XCNuZXdfJHtmc2V0fVxbQF19XT1cJHtmfTsKICAg
ICAgICBkb25lOwogICAgICAgIGV2YWwgZXhwb3J0ICR7ZnNldH09XCR7bmV3XyR7ZnNldH1cWypd
fTsKICAgIGRvbmU7CiAgICByZXR1cm4gMAp9CnJlcGxhY2Utc3BhcmM2NC1mbGFncyAoKSAKeyAK
ICAgIGxvY2FsIFNQQVJDNjRfQ1BVUz0idWx0cmFzcGFyYzMgdWx0cmFzcGFyYyB2OSI7CiAgICBp
ZiBbICIke0NGTEFHUy9tdHVuZX0iICE9ICIke0NGTEFHU30iIF07IHRoZW4KICAgICAgICBmb3Ig
eCBpbiAke1NQQVJDNjRfQ1BVU307CiAgICAgICAgZG8KICAgICAgICAgICAgQ0ZMQUdTPSIke0NG
TEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4fSI7CiAgICAgICAgZG9uZTsKICAgIGVsc2UKICAgICAg
ICBmb3IgeCBpbiAke1NQQVJDNjRfQ1BVU307CiAgICAgICAgZG8KICAgICAgICAgICAgQ0ZMQUdT
PSIke0NGTEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4IC1tdHVuZT0ke3h9fSI7CiAgICAgICAgZG9u
ZTsKICAgIGZpOwogICAgaWYgWyAiJHtDWFhGTEFHUy9tdHVuZX0iICE9ICIke0NYWEZMQUdTfSIg
XTsgdGhlbgogICAgICAgIGZvciB4IGluICR7U1BBUkM2NF9DUFVTfTsKICAgICAgICBkbwogICAg
ICAgICAgICBDWFhGTEFHUz0iJHtDWFhGTEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4fSI7CiAgICAg
ICAgZG9uZTsKICAgIGVsc2UKICAgICAgICBmb3IgeCBpbiAke1NQQVJDNjRfQ1BVU307CiAgICAg
ICAgZG8KICAgICAgICAgICAgQ1hYRkxBR1M9IiR7Q1hYRkxBR1MvLW1jcHU9JHt4fS8tbWNwdT12
OCAtbXR1bmU9JHt4fX0iOwogICAgICAgIGRvbmU7CiAgICBmaTsKICAgIGV4cG9ydCBDRkxBR1Mg
Q1hYRkxBR1MKfQpzZXEgKCkgCnsgCiAgICBsb2NhbCBwPSQodHlwZSAtUCBzZXEpOwogICAgY2Fz
ZSAkIyBpbiAKICAgICAgICAxKQogICAgICAgICAgICBtaW49MSBtYXg9JDEgc3RlcD0xCiAgICAg
ICAgOzsKICAgICAgICAyKQogICAgICAgICAgICBtaW49JDEgbWF4PSQyIHN0ZXA9MQogICAgICAg
IDs7CiAgICAgICAgMykKICAgICAgICAgICAgbWluPSQxIG1heD0kMyBzdGVwPSQyCiAgICAgICAg
OzsKICAgICAgICAqKQogICAgICAgICAgICBkaWUgInNlcSBjYWxsZWQgd2l0aCB3cm9uZyBudW1i
ZXIgb2YgYXJndW1lbnRzIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgaWYgW1sgLXogJHtwfSBd
XTsgdGhlbgogICAgICAgIGxvY2FsIHJlcHM7CiAgICAgICAgaWYgW1sgJHtzdGVwfSAhPSAwIF1d
OyB0aGVuCiAgICAgICAgICAgIHJlcHM9JCgoICgkbWF4LSRtaW4pIC8gJHN0ZXAgKzEgKSk7CiAg
ICAgICAgZWxzZQogICAgICAgICAgICByZXBzPTA7CiAgICAgICAgZmk7CiAgICAgICAgam90ICRy
ZXBzICRtaW4gJG1heCAkc3RlcDsKICAgIGVsc2UKICAgICAgICAiJHtwfSIgJG1pbiAkc3RlcCAk
bWF4OwogICAgZmkKfQpzZXR1cC1hbGxvd2VkLWZsYWdzICgpIAp7IAogICAgaWYgW1sgLXogJHtB
TExPV0VEX0ZMQUdTfSBdXTsgdGhlbgogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSItcGlw
ZSI7CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLU8gLU8w
IC1PMSAtTzIgLW1jcHUgLW1hcmNoIC1tdHVuZSI7CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxB
R1M9IiR7QUxMT1dFRF9GTEFHU30gLWZzdGFjay1wcm90ZWN0b3IgLWZzdGFjay1wcm90ZWN0b3It
YWxsIjsKICAgICAgICBleHBvcnQgQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtZmJv
dW5kcy1jaGVja2luZyI7CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9G
TEFHU30gLWZuby1QSUUgLWZuby1waWUgLWZuby11bml0LWF0LWEtdGltZSI7CiAgICAgICAgZXhw
b3J0IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLWcgLWdbMC05XSAtZ2dkYiAtZ2dk
YlswLTldIC1nc3RhYnMgLWdzdGFicysiOwogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIk
e0FMTE9XRURfRkxBR1N9IC1mbm8taWRlbnQiOwogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdT
PSIke0FMTE9XRURfRkxBR1N9IC1XKiAtdyI7CiAgICBmaTsKICAgIEFMTE9XRURfRkxBR1M9IiR7
QUxMT1dFRF9GTEFHU30gLWZuby1zdGFjay1wcm90ZWN0b3IgLWZuby1zdGFjay1wcm90ZWN0b3It
YWxsIAkJLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1ib3VuZHMtY2hlY2tpbmciOwogICAgQUxM
T1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtbXJlZ3Bhcm0gLW1uby1hcHAtcmVncyAtbWFw
cC1yZWdzIAkJLW1uby1tbXggLW1uby1zc2UgLW1uby1zc2UyIC1tbm8tc3NlMyAtbW5vLTNkbm93
IAkJLW1pcHMxIC1taXBzMiAtbWlwczMgLW1pcHM0IC1taXBzMzIgLW1pcHM2NCAtbWlwczE2IAkJ
LW1zb2Z0LWZsb2F0IC1tbm8tc29mdC1mbG9hdCAtbWhhcmQtZmxvYXQgLW1uby1oYXJkLWZsb2F0
IC1tZnB1IAkJLW1pZWVlIC1taWVlZS13aXRoLWluZXhhY3QgLW1zY2hlZHVsZSAJCS1tdGxzLWRp
cmVjdC1zZWctcmVmcyAtbW5vLXRscy1kaXJlY3Qtc2VnLXJlZnMgCQktbWZsYXQgLW1uby1mbGF0
IC1tbm8tZmFzdGVyLXN0cnVjdHMgLW1mYXN0ZXItc3RydWN0cyAJCS1tMzIgLW02NCAtbWFiaSAt
bWxpdHRsZS1lbmRpYW4gLW1iaWctZW5kaWFuIC1FTCAtRUIgLWZQSUMgCQktbWxpdmUtZzAgLW1j
bW9kZWwgLW1zdGFjay1iaWFzIC1tbm8tc3RhY2stYmlhcyAJCS1tc2VjdXJlLXBsdCAtRCoiOwog
ICAgZXhwb3J0IFVOU1RBQkxFX0ZMQUdTPSItT3MgLU8zIC1mcmVvcmRlci1ibG9ja3MiOwogICAg
cmV0dXJuIDAKfQpzcmNfY29tcGlsZSAoKSAKeyAKICAgIGFkZHdyaXRlIC9kZXYvcHRteDsKICAg
IGFkZHByZWRpY3QgL2V0Yy9za2V5L3NrZXlrZXlzOwogICAgbG9jYWwgbXljb25mPSIiOwogICAg
aWYgdXNlIHN0YXRpYzsgdGhlbgogICAgICAgIGFwcGVuZC1sZGZsYWdzIC1zdGF0aWM7CiAgICAg
ICAgdXNlIHBhbSAmJiBld2FybiAiRGlzYWJsaW5nIHBhbSBzdXBwb3J0IGJlY3VzZSBvZiBzdGF0
aWMgZmxhZyI7CiAgICAgICAgbXljb25mPSIke215Y29uZn0gLS13aXRob3V0LXBhbSI7CiAgICBl
bHNlCiAgICAgICAgbXljb25mPSIke215Y29uZn0gJCh1c2Vfd2l0aCBwYW0pIjsKICAgIGZpOwog
ICAgZWNvbmYgLS13aXRoLWxkZmxhZ3M9IiR7TERGTEFHU30iIC0tZGlzYWJsZS1zdHJpcCAtLXN5
c2NvbmZkaXI9L2V0Yy9zc2ggLS1saWJleGVjZGlyPS91c3IvJChnZXRfbGliZGlyKS9taXNjIC0t
ZGF0YWRpcj0vdXNyL3NoYXJlL29wZW5zc2ggLS1kaXNhYmxlLXN1aWQtc3NoIC0td2l0aC1wcml2
c2VwLXBhdGg9L3Zhci9lbXB0eSAtLXdpdGgtcHJpdnNlcC11c2VyPXNzaGQgLS13aXRoLW1kNS1w
YXNzd29yZHMgLS13aXRoLXNzbC1lbmdpbmUgJCh1c2Vfd2l0aCBsZGFwKSAkKHVzZV93aXRoIGxp
YmVkaXQpICQodXNlX3dpdGgga2VyYmVyb3Mga2VyYmVyb3M1IC91c3IpICQodXNlX3dpdGggdGNw
ZCB0Y3Atd3JhcHBlcnMpICQodXNlX3dpdGggc2VsaW51eCkgJCh1c2Vfd2l0aCBza2V5KSAkKHVz
ZV93aXRoIHNtYXJ0Y2FyZCBvcGVuc2MpICR7bXljb25mfSB8fCBkaWUgImJhZCBjb25maWd1cmUi
OwogICAgZW1ha2UgfHwgZGllICJjb21waWxlIHByb2JsZW0iCn0Kc3JjX2luc3RhbGwgKCkgCnsg
CiAgICBlbWFrZSBpbnN0YWxsLW5va2V5cyBERVNURElSPSIke0R9IiB8fCBkaWU7CiAgICBmcGVy
bXMgNjAwIC9ldGMvc3NoL3NzaGRfY29uZmlnOwogICAgZG9iaW4gY29udHJpYi9zc2gtY29weS1p
ZDsKICAgIG5ld2luaXRkICIke0ZJTEVTRElSfSIvc3NoZC5yYzYgc3NoZDsKICAgIG5ld2NvbmZk
ICIke0ZJTEVTRElSfSIvc3NoZC5jb25mZCBzc2hkOwogICAga2VlcGRpciAvdmFyL2VtcHR5Owog
ICAgbmV3cGFtZCAiJHtGSUxFU0RJUn0iL3NzaGQucGFtX2luY2x1ZGUuMSBzc2hkOwogICAgdXNl
IHBhbSAmJiBkb3NlZCAiL14jVXNlUEFNIC9zOi4qOlVzZVBBTSB5ZXM6IiAvZXRjL3NzaC9zc2hk
X2NvbmZpZyAmJiBkb3NlZCAiL14jUGFzc3dvcmRBdXRoZW50aWNhdGlvbiAvczouKjpQYXNzd29y
ZEF1dGhlbnRpY2F0aW9uIG5vOiIgL2V0Yy9zc2gvc3NoZF9jb25maWc7CiAgICBkb21hbiBjb250
cmliL3NzaC1jb3B5LWlkLjE7CiAgICBkb2RvYyBDaGFuZ2VMb2cgQ1JFRElUUyBPVkVSVklFVyBS
RUFETUUqIFRPRE8gc3NoZF9jb25maWc7CiAgICBkaXJvcHRzIC1tIDA3MDA7CiAgICBkb2RpciAv
ZXRjL3NrZWwvLnNzaAp9CnNyY190ZXN0ICgpIAp7IAogICAgaWYgZW1ha2UgLWoxIGNoZWNrIC1u
ID4mL2Rldi9udWxsOyB0aGVuCiAgICAgICAgdmVjaG8gIj4+PiBUZXN0IHBoYXNlIFtjaGVja106
ICR7Q0FURUdPUll9LyR7UEZ9IjsKICAgICAgICBpZiAhIGVtYWtlIC1qMSBjaGVjazsgdGhlbgog
ICAgICAgICAgICBoYXNxIHRlc3QgJEZFQVRVUkVTICYmIGRpZSAiTWFrZSBjaGVjayBmYWlsZWQu
IFNlZSBhYm92ZSBmb3IgZGV0YWlscy4iOwogICAgICAgICAgICBoYXNxIHRlc3QgJEZFQVRVUkVT
IHx8IGVlcnJvciAiTWFrZSBjaGVjayBmYWlsZWQuIFNlZSBhYm92ZSBmb3IgZGV0YWlscy4iOwog
ICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGlmIGVtYWtlIC1qMSB0ZXN0IC1uID4mL2Rldi9u
dWxsOyB0aGVuCiAgICAgICAgICAgIHZlY2hvICI+Pj4gVGVzdCBwaGFzZSBbdGVzdF06ICR7Q0FU
RUdPUll9LyR7UEZ9IjsKICAgICAgICAgICAgaWYgISBlbWFrZSAtajEgdGVzdDsgdGhlbgogICAg
ICAgICAgICAgICAgaGFzcSB0ZXN0ICRGRUFUVVJFUyAmJiBkaWUgIk1ha2UgdGVzdCBmYWlsZWQu
IFNlZSBhYm92ZSBmb3IgZGV0YWlscy4iOwogICAgICAgICAgICAgICAgaGFzcSB0ZXN0ICRGRUFU
VVJFUyB8fCBlZXJyb3IgIk1ha2UgdGVzdCBmYWlsZWQuIFNlZSBhYm92ZSBmb3IgZGV0YWlscy4i
OwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHZlY2hvICI+Pj4gVGVz
dCBwaGFzZSBbbm9uZV06ICR7Q0FURUdPUll9LyR7UEZ9IjsKICAgICAgICBmaTsKICAgIGZpCn0K
c3JjX3VucGFjayAoKSAKeyAKICAgIHVucGFjayAke1BBUkNIfS50YXIuZ3o7CiAgICBjZCAiJHtT
fSI7CiAgICBzZWQgLWkgLWUgJy9fUEFUSF9YQVVUSC9zOi91c3IvWDExUjYvYmluL3hhdXRoOi91
c3IvYmluL3hhdXRoOicgcGF0aG5hbWVzLmggfHwgZGllOwogICAgdXNlIFg1MDkgJiYgZXBhdGNo
ICIke0RJU1RESVJ9Ii8ke1g1MDlfUEFUQ0h9ICIke0ZJTEVTRElSfSIvJHtQTn0tNC43X3AxLXg1
MDktaHBuLWdsdWUucGF0Y2g7CiAgICB1c2UgY2hyb290ICYmIGVwYXRjaCAiJHtGSUxFU0RJUn0i
L29wZW5zc2gtNC4zX3AxLWNocm9vdC5wYXRjaDsKICAgIHVzZSBzbWFydGNhcmQgJiYgZXBhdGNo
ICIke0ZJTEVTRElSfSIvb3BlbnNzaC0zLjlfcDEtb3BlbnNjLnBhdGNoOwogICAgaWYgISB1c2Ug
WDUwOTsgdGhlbgogICAgICAgIGlmIFtbIC1uICR7TERBUF9QQVRDSH0gXV0gJiYgdXNlIGxkYXA7
IHRoZW4KICAgICAgICAgICAgZXBhdGNoICIke0RJU1RESVJ9Ii8ke0xEQVBfUEFUQ0h9ICIke0ZJ
TEVTRElSfSIvJHtQTn0tNC40X3AxLWxkYXAtaHBuLWdsdWUucGF0Y2g7CiAgICAgICAgICAgIGVw
YXRjaCAiJHtGSUxFU0RJUn0iLyR7UH0tbHBrLTY0Yml0LnBhdGNoOwogICAgICAgIGZpOwogICAg
ZWxzZQogICAgICAgIHVzZSBsZGFwICYmIGV3YXJuICJTb3JyeSwgWDUwOSBhbmQgbGRhcCBkb24n
dCBnZXQgYWxvbmcsIGRpc2FibGluZyBsZGFwIjsKICAgIGZpOwogICAgZXBhdGNoICIke0ZJTEVT
RElSfSIvJHtQTn0tNC43X3AxLUdTU0FQSS1kbnMucGF0Y2g7CiAgICBbWyAtbiAke0hQTl9QQVRD
SH0gXV0gJiYgdXNlIGhwbiAmJiBlcGF0Y2ggIiR7RElTVERJUn0iLyR7SFBOX1BBVENIfTsKICAg
IGVwYXRjaCAiJHtGSUxFU0RJUn0iLyR7UE59LTQuN3AxLXNlbGludXguZGlmZjsKICAgIHNlZCAt
aSAiczotbGNyeXB0bzokKHBrZy1jb25maWcgLS1saWJzIG9wZW5zc2wpOiIgY29uZmlndXJleywu
YWN9IHx8IGRpZTsKICAgIGVhdXRvcmVjb25mCn0Kc3RyaXAtZmxhZ3MgKCkgCnsgCiAgICBsb2Nh
bCB4IHkgZmxhZyBORVdfQ0ZMQUdTIE5FV19DWFhGTEFHUzsKICAgIHNldHVwLWFsbG93ZWQtZmxh
Z3M7CiAgICBsb2NhbCBORVdfQ0ZMQUdTPSIiOwogICAgbG9jYWwgTkVXX0NYWEZMQUdTPSIiOwog
ICAgaWYgaGFzIH4kKHRjLWFyY2gpICR7QUNDRVBUX0tFWVdPUkRTfTsgdGhlbgogICAgICAgIEFM
TE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gJHtVTlNUQUJMRV9GTEFHU30iOwogICAgZmk7
CiAgICBzZXQgLWY7CiAgICBmb3IgeCBpbiAke0NGTEFHU307CiAgICBkbwogICAgICAgIGZvciB5
IGluICR7QUxMT1dFRF9GTEFHU307CiAgICAgICAgZG8KICAgICAgICAgICAgZmxhZz0ke3glJT0q
fTsKICAgICAgICAgICAgaWYgWyAiJHtmbGFnJSUke3l9fSIgPSAiIiBdOyB0aGVuCiAgICAgICAg
ICAgICAgICBORVdfQ0ZMQUdTPSIke05FV19DRkxBR1N9ICR7eH0iOwogICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICBkb25lOwogICAgZm9yIHgg
aW4gJHtDWFhGTEFHU307CiAgICBkbwogICAgICAgIGZvciB5IGluICR7QUxMT1dFRF9GTEFHU307
CiAgICAgICAgZG8KICAgICAgICAgICAgZmxhZz0ke3glJT0qfTsKICAgICAgICAgICAgaWYgWyAi
JHtmbGFnJSUke3l9fSIgPSAiIiBdOyB0aGVuCiAgICAgICAgICAgICAgICBORVdfQ1hYRkxBR1M9
IiR7TkVXX0NYWEZMQUdTfSAke3h9IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICBmaTsKICAgICAgICBkb25lOwogICAgZG9uZTsKICAgIGlmIFsgIiR7Q0ZMQUdTLy1PfSIgIT0g
IiR7Q0ZMQUdTfSIgLWEgIiR7TkVXX0NGTEFHUy8tT30iID0gIiR7TkVXX0NGTEFHU30iIF07IHRo
ZW4KICAgICAgICBORVdfQ0ZMQUdTPSIke05FV19DRkxBR1N9IC1PMiI7CiAgICBmaTsKICAgIGlm
IFsgIiR7Q1hYRkxBR1MvLU99IiAhPSAiJHtDWFhGTEFHU30iIC1hICIke05FV19DWFhGTEFHUy8t
T30iID0gIiR7TkVXX0NYWEZMQUdTfSIgXTsgdGhlbgogICAgICAgIE5FV19DWFhGTEFHUz0iJHtO
RVdfQ1hYRkxBR1N9IC1PMiI7CiAgICBmaTsKICAgIHNldCArZjsKICAgIGV4cG9ydCBDRkxBR1M9
IiR7TkVXX0NGTEFHU30iOwogICAgZXhwb3J0IENYWEZMQUdTPSIke05FV19DWFhGTEFHU30iOwog
ICAgcmV0dXJuIDAKfQpzdHJpcC1saW5ndWFzICgpIAp7IAogICAgbG9jYWwgbHMgbmV3bHMgbm9s
czsKICAgIGlmIFtbICQxID09ICItaSIgXV0gfHwgW1sgJDEgPT0gIi11IiBdXTsgdGhlbgogICAg
ICAgIGxvY2FsIG9wPSQxOwogICAgICAgIHNoaWZ0OwogICAgICAgIGxzPSQoZmluZCAiJDEiIC1u
YW1lICcqLnBvJyAtZXhlYyBiYXNlbmFtZSB7fSAucG8gXDspOwogICAgICAgIHNoaWZ0OwogICAg
ICAgIGxvY2FsIGQgZjsKICAgICAgICBmb3IgZCBpbiAiJEAiOwogICAgICAgIGRvCiAgICAgICAg
ICAgIGlmIFtbICR7b3B9ID09ICItdSIgXV07IHRoZW4KICAgICAgICAgICAgICAgIG5ld2xzPSR7
bHN9OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBuZXdscz0iIjsKICAgICAgICAg
ICAgZmk7CiAgICAgICAgICAgIGZvciBmIGluICQoZmluZCAiJGQiIC1uYW1lICcqLnBvJyAtZXhl
YyBiYXNlbmFtZSB7fSAucG8gXDspOwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYg
W1sgJHtvcH0gPT0gIi1pIiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGhhc3EgJHtmfSAk
e2xzfSAmJiBuZXdscz0iJHtuZXdsc30gJHtmfSI7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgaGFzcSAke2Z9ICR7bHN9IHx8IG5ld2xzPSIke25ld2xzfSAke2Z9IjsK
ICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICBkb25lOwogICAgICAgICAgICBscz0ke25l
d2xzfTsKICAgICAgICBkb25lOwogICAgZWxzZQogICAgICAgIGxzPSIkQCI7CiAgICBmaTsKICAg
IG5vbHM9IiI7CiAgICBuZXdscz0iIjsKICAgIGZvciBmIGluICR7TElOR1VBU307CiAgICBkbwog
ICAgICAgIGlmIGhhc3EgJHtmfSAke2xzfTsgdGhlbgogICAgICAgICAgICBuZXdscz0iJHtuZXds
c30gJHtmfSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBub2xzPSIke25vbHN9ICR7Zn0iOwog
ICAgICAgIGZpOwogICAgZG9uZTsKICAgIFtbIC1uICR7bm9sc30gXV0gJiYgZXdhcm4gIlNvcnJ5
LCBidXQgJHtQTn0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgTElOR1VBczoiICR7bm9sc307CiAgICBl
eHBvcnQgTElOR1VBUz0ke25ld2xzOjF9Cn0Kc3RyaXAtdW5zdXBwb3J0ZWQtZmxhZ3MgKCkgCnsg
CiAgICBleHBvcnQgQ0ZMQUdTPSQodGVzdC1mbGFncy1DQyAke0NGTEFHU30pOwogICAgZXhwb3J0
IENYWEZMQUdTPSQodGVzdC1mbGFncy1DWFggJHtDWFhGTEFHU30pCn0KdGMtYXJjaCAoKSAKeyAK
ICAgIHRjLW5pbmphX21hZ2ljX3RvX2FyY2ggcG9ydGFnZSAiJEAiCn0KdGMtYXJjaC1rZXJuZWwg
KCkgCnsgCiAgICB0Yy1uaW5qYV9tYWdpY190b19hcmNoIGtlcm4gIiRAIgp9CnRjLWVuZGlhbiAo
KSAKeyAKICAgIGxvY2FsIGhvc3Q9JDE7CiAgICBbWyAteiAke2hvc3R9IF1dICYmIGhvc3Q9JHtD
VEFSR0VUOi0ke0NIT1NUfX07CiAgICBob3N0PSR7aG9zdCUlLSp9OwogICAgY2FzZSAke2hvc3R9
IGluIAogICAgICAgIGFscGhhKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAg
ICAgIGFybSpiKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIGFybSop
CiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsKICAgICAgICBjcmlzKikKICAgICAg
ICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIGhwcGEqKQogICAgICAgICAgICBl
Y2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgaT84NiopCiAgICAgICAgICAgIGVjaG8gbGl0dGxl
CiAgICAgICAgOzsKICAgICAgICBpYTY0KikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAg
ICA7OwogICAgICAgIG02OCopCiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAg
ICBtaXBzKmwqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgbWlw
cyopCiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBwb3dlcnBjKikKICAg
ICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHMzOTAqKQogICAgICAgICAgICBl
Y2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgc2gqYiopCiAgICAgICAgICAgIGVjaG8gYmlnCiAg
ICAgICAgOzsKICAgICAgICBzaCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsK
ICAgICAgICBzcGFyYyopCiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICB4
ODZfNjQqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgKikKICAg
ICAgICAgICAgZWNobyB3dGYKICAgICAgICA7OwogICAgZXNhYwp9CnRjLWV4cG9ydCAoKSAKeyAK
ICAgIGxvY2FsIHZhcjsKICAgIGZvciB2YXIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgZXZhbCB0
Yy1nZXQke3Zhcn0gPiAvZGV2L251bGw7CiAgICBkb25lCn0KdGMtZ2V0QVIgKCkgCnsgCiAgICB0
Yy1nZXRQUk9HIEFSIGFyICIkQCIKfQp0Yy1nZXRBUyAoKSAKeyAKICAgIHRjLWdldFBST0cgQVMg
YXMgIiRAIgp9CnRjLWdldEJVSUxEX0NDICgpIAp7IAogICAgbG9jYWwgdjsKICAgIGZvciB2IGlu
IENDX0ZPUl9CVUlMRCBCVUlMRF9DQyBIT1NUQ0M7CiAgICBkbwogICAgICAgIGlmIFtbIC1uICR7
IXZ9IF1dOyB0aGVuCiAgICAgICAgICAgIGV4cG9ydCBCVUlMRF9DQz0keyF2fTsKICAgICAgICAg
ICAgZWNobyAiJHshdn0iOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICBmaTsKICAgIGRv
bmU7CiAgICBsb2NhbCBzZWFyY2g9OwogICAgaWYgW1sgLW4gJHtDQlVJTER9IF1dOyB0aGVuCiAg
ICAgICAgc2VhcmNoPSQodHlwZSAtcCAke0NCVUlMRH0tZ2NjKTsKICAgICAgICBzZWFyY2g9JHtz
ZWFyY2gjIyovfTsKICAgIGZpOwogICAgc2VhcmNoPSR7c2VhcmNoOi1nY2N9OwogICAgZXhwb3J0
IEJVSUxEX0NDPSR7c2VhcmNofTsKICAgIGVjaG8gIiR7c2VhcmNofSIKfQp0Yy1nZXRDQyAoKSAK
eyAKICAgIHRjLWdldFBST0cgQ0MgZ2NjICIkQCIKfQp0Yy1nZXRDUFAgKCkgCnsgCiAgICB0Yy1n
ZXRQUk9HIENQUCBjcHAgIiRAIgp9CnRjLWdldENYWCAoKSAKeyAKICAgIHRjLWdldFBST0cgQ1hY
IGcrKyAiJEAiCn0KdGMtZ2V0Rjc3ICgpIAp7IAogICAgdGMtZ2V0UFJPRyBGNzcgZjc3ICIkQCIK
fQp0Yy1nZXRGOTAgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEY5MCBnZm9ydHJhbiAiJEAiCn0KdGMt
Z2V0Rk9SVFJBTiAoKSAKeyAKICAgIHRjLWdldFBST0cgRk9SVFJBTiBnZm9ydHJhbiAiJEAiCn0K
dGMtZ2V0R0NKICgpIAp7IAogICAgdGMtZ2V0UFJPRyBHQ0ogZ2NqICIkQCIKfQp0Yy1nZXRMRCAo
KSAKeyAKICAgIHRjLWdldFBST0cgTEQgbGQgIiRAIgp9CnRjLWdldE5NICgpIAp7IAogICAgdGMt
Z2V0UFJPRyBOTSBubSAiJEAiCn0KdGMtZ2V0UFJPRyAoKSAKeyAKICAgIGxvY2FsIHZhcj0kMTsK
ICAgIGxvY2FsIHByb2c9JDI7CiAgICBpZiBbWyAtbiAkeyF2YXJ9IF1dOyB0aGVuCiAgICAgICAg
ZWNobyAiJHshdmFyfSI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGxvY2FsIHNlYXJj
aD07CiAgICBbWyAtbiAkMyBdXSAmJiBzZWFyY2g9JCh0eXBlIC1wICIkMy0ke3Byb2d9Iik7CiAg
ICBbWyAteiAke3NlYXJjaH0gJiYgLW4gJHtDSE9TVH0gXV0gJiYgc2VhcmNoPSQodHlwZSAtcCAi
JHtDSE9TVH0tJHtwcm9nfSIpOwogICAgW1sgLW4gJHtzZWFyY2h9IF1dICYmIHByb2c9JHtzZWFy
Y2gjIyovfTsKICAgIGV4cG9ydCAke3Zhcn09JHtwcm9nfTsKICAgIGVjaG8gIiR7IXZhcn0iCn0K
dGMtZ2V0UkFOTElCICgpIAp7IAogICAgdGMtZ2V0UFJPRyBSQU5MSUIgcmFubGliICIkQCIKfQp0
Yy1nZXRTVFJJUCAoKSAKeyAKICAgIHRjLWdldFBST0cgU1RSSVAgc3RyaXAgIiRAIgp9CnRjLWlz
LWNyb3NzLWNvbXBpbGVyICgpIAp7IAogICAgcmV0dXJuICQoW1sgJHtDQlVJTEQ6LSR7Q0hPU1R9
fSAhPSAke0NIT1NUfSBdXSkKfQp0Yy1pcy1zb2Z0ZmxvYXQgKCkgCnsgCiAgICBjYXNlICR7Q1RB
UkdFVH0gaW4gCiAgICAgICAgYmZpbiogfCBoODMwMCopCiAgICAgICAgICAgIGVjaG8gIm9ubHki
CiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBbWyAke0NUQVJHRVQvL18vLX0gPT0g
Ki1zb2Z0ZmxvYXQtKiBdXSAmJiBlY2hvICJ5ZXMiIHx8IGVjaG8gIm5vIgogICAgICAgIDs7CiAg
ICBlc2FjCn0KdGMtbmluamFfbWFnaWNfdG9fYXJjaCAoKSAKeyAKICAgIGZ1bmN0aW9uIG5pbmog
KCkgCiAgICB7IAogICAgICAgIFtbICR7dHlwZX0gPT0gImtlcm4iIF1dICYmIGVjaG8gJDEgfHwg
ZWNobyAkMgogICAgfTsKICAgIGxvY2FsIHR5cGU9JDE7CiAgICBsb2NhbCBob3N0PSQyOwogICAg
W1sgLXogJHtob3N0fSBdXSAmJiBob3N0PSR7Q1RBUkdFVDotJHtDSE9TVH19OwogICAgY2FzZSAk
e2hvc3R9IGluIAogICAgICAgIGFscGhhKikKICAgICAgICAgICAgZWNobyBhbHBoYQogICAgICAg
IDs7CiAgICAgICAgYXJtKikKICAgICAgICAgICAgZWNobyBhcm0KICAgICAgICA7OwogICAgICAg
IGF2ciopCiAgICAgICAgICAgIG5pbmogYXZyMzIgYXZyCiAgICAgICAgOzsKICAgICAgICBiZmlu
KikKICAgICAgICAgICAgbmluaiBibGFja2ZpbiBiZmluCiAgICAgICAgOzsKICAgICAgICBjcmlz
KikKICAgICAgICAgICAgZWNobyBjcmlzCiAgICAgICAgOzsKICAgICAgICBocHBhKikKICAgICAg
ICAgICAgbmluaiBwYXJpc2MgaHBwYQogICAgICAgIDs7CiAgICAgICAgaT84NiopCiAgICAgICAg
ICAgIGlmIFtbICR7dHlwZX0gPT0gImtlcm4iIF1dICYmIFtbICQoS1ZfdG9faW50ICR7S1Z9KSAt
bHQgJChLVl90b19pbnQgMi42LjI0KSBdXTsgdGhlbgogICAgICAgICAgICAgICAgZWNobyBpMzg2
OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlY2hvIHg4NjsKICAgICAgICAgICAg
ZmkKICAgICAgICA7OwogICAgICAgIGlhNjQqKQogICAgICAgICAgICBlY2hvIGlhNjQKICAgICAg
ICA7OwogICAgICAgIG02OCopCiAgICAgICAgICAgIGVjaG8gbTY4awogICAgICAgIDs7CiAgICAg
ICAgbWlwcyopCiAgICAgICAgICAgIGVjaG8gbWlwcwogICAgICAgIDs7CiAgICAgICAgbmlvczIq
KQogICAgICAgICAgICBlY2hvIG5pb3MyCiAgICAgICAgOzsKICAgICAgICBuaW9zKikKICAgICAg
ICAgICAgZWNobyBuaW9zCiAgICAgICAgOzsKICAgICAgICBwb3dlcnBjKikKICAgICAgICAgICAg
aWYgW1sgJChLVl90b19pbnQgJHtLVn0pIC1nZSAkKEtWX3RvX2ludCAyLjYuMTYpIF1dICYmIFtb
ICR7dHlwZX0gPT0gImtlcm4iIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvIHBvd2VycGM7
CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFtbICQoS1ZfdG9faW50ICR7S1Z9
KSAtZXEgJChLVl90b19pbnQgMi42LjE1KSBdXSAmJiBbWyAke3R5cGV9ID09ICJrZXJuIiBdXTsg
dGhlbgogICAgICAgICAgICAgICAgICAgIGlmIFtbICR7aG9zdH0gPT0gcG93ZXJwYzY0KiBdXSB8
fCBbWyAke1BST0ZJTEVfQVJDSH0gPT0gInBwYzY0IiBdXTsgdGhlbgogICAgICAgICAgICAgICAg
ICAgICAgICBlY2hvIHBvd2VycGM7CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICBlY2hvIHBwYzsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBpZiBbWyAke2hvc3R9ID09IHBvd2VycGM2
NCogXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBwcGM2NDsKICAgICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIFtbICR7UFJPRklMRV9B
UkNIfSA9PSAicHBjNjQiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaW5q
IHBwYzY0IHBwYzsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWNobyBwcGM7CiAgICAgICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAg
ICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGZpCiAgICAg
ICAgOzsKICAgICAgICBzMzkwKikKICAgICAgICAgICAgZWNobyBzMzkwCiAgICAgICAgOzsKICAg
ICAgICBzaDY0KikKICAgICAgICAgICAgbmluaiBzaDY0IHNoCiAgICAgICAgOzsKICAgICAgICBz
aCopCiAgICAgICAgICAgIGVjaG8gc2gKICAgICAgICA7OwogICAgICAgIHNwYXJjNjQqKQogICAg
ICAgICAgICBuaW5qIHNwYXJjNjQgc3BhcmMKICAgICAgICA7OwogICAgICAgIHNwYXJjKikKICAg
ICAgICAgICAgW1sgJHtQUk9GSUxFX0FSQ0h9ID09ICJzcGFyYzY0IiBdXSAmJiBuaW5qIHNwYXJj
NjQgc3BhcmMgfHwgZWNobyBzcGFyYwogICAgICAgIDs7CiAgICAgICAgdmF4KikKICAgICAgICAg
ICAgZWNobyB2YXgKICAgICAgICA7OwogICAgICAgIHg4Nl82NCopCiAgICAgICAgICAgIGlmIFtb
ICR7dHlwZX0gPT0gImtlcm4iIF1dICYmIFtbICQoS1ZfdG9faW50ICR7S1Z9KSAtZ2UgJChLVl90
b19pbnQgMi42LjI0KSBdXTsgdGhlbgogICAgICAgICAgICAgICAgZWNobyB4ODY7CiAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgIG5pbmogeDg2XzY0IGFtZDY0OwogICAgICAgICAgICBm
aQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZWNobyB1bmtub3duCiAgICAgICAg
OzsKICAgIGVzYWMKfQp0ZXN0LWZsYWctQ0MgKCkgCnsgCiAgICB0ZXN0LWZsYWctUFJPRyAiQ0Mi
ICIkMSIKfQp0ZXN0LWZsYWctQ1hYICgpIAp7IAogICAgdGVzdC1mbGFnLVBST0cgIkNYWCIgIiQx
Igp9CnRlc3QtZmxhZy1QUk9HICgpIAp7IAogICAgbG9jYWwgY29tcD0kMTsKICAgIGxvY2FsIGZs
YWdzPSIkMiI7CiAgICBbWyAteiAke2NvbXB9IHx8IC16ICR7ZmxhZ3N9IF1dICYmIHJldHVybiAx
OwogICAgbG9jYWwgUFJPRz0kKHRjLWdldCR7Y29tcH0pOwogICAgJHtQUk9HfSAke2ZsYWdzfSAt
UyAtbyAvZGV2L251bGwgLXhjIC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAyPiYxCn0KdGVzdC1mbGFn
cyAoKSAKeyAKICAgIHRlc3QtZmxhZ3MtQ0MgIiRAIgp9CnRlc3QtZmxhZ3MtQ0MgKCkgCnsgCiAg
ICB0ZXN0LWZsYWdzLVBST0cgIkNDIiAiJEAiCn0KdGVzdC1mbGFncy1DWFggKCkgCnsgCiAgICB0
ZXN0LWZsYWdzLVBST0cgIkNYWCIgIiRAIgp9CnRlc3QtZmxhZ3MtUFJPRyAoKSAKeyAKICAgIGxv
Y2FsIGNvbXA9JDE7CiAgICBsb2NhbCBmbGFnczsKICAgIGxvY2FsIHg7CiAgICBzaGlmdDsKICAg
IFtbIC16ICR7Y29tcH0gXV0gJiYgcmV0dXJuIDE7CiAgICB4PSIiOwogICAgZm9yIHggaW4gIiRA
IjsKICAgIGRvCiAgICAgICAgdGVzdC1mbGFnLSR7Y29tcH0gIiR7eH0iICYmIGZsYWdzPSIke2Zs
YWdzfSR7ZmxhZ3M6KyB9JHt4fSI7CiAgICBkb25lOwogICAgZWNobyAiJHtmbGFnc30iOwogICAg
W1sgLW4gJHtmbGFnc30gXV0KfQp0ZXN0X2ZsYWcgKCkgCnsgCiAgICBld2FybiAidGVzdF9mbGFn
OiBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHRlc3QtZmxhZ3MoKSEiIDE+JjI7CiAgICB0ZXN0LWZs
YWdzLUNDICIkQCIKfQp0ZXN0X3ZlcnNpb25faW5mbyAoKSAKeyAKICAgIGlmIFtbICQoJCh0Yy1n
ZXRDQykgLS12ZXJzaW9uIDI+JjEpID09ICokMSogXV07IHRoZW4KICAgICAgICByZXR1cm4gMDsK
ICAgIGVsc2UKICAgICAgICByZXR1cm4gMTsKICAgIGZpCn0KdHJlZWNvcHkgKCkgCnsgCiAgICBk
ZXN0PSR7ISN9OwogICAgZmlsZXNfY291bnQ9JCM7CiAgICB3aGlsZSAoKCAkIyA+IDEgKSk7IGRv
CiAgICAgICAgZGlyc3RydWN0PSQoZGlybmFtZSAiJDEiKTsKICAgICAgICBta2RpciAtcCAiJHtk
ZXN0fS8ke2RpcnN0cnVjdH0iOwogICAgICAgIGNwIC1wUFIgIiQxIiAiJHtkZXN0fS8ke2RpcnN0
cnVjdH0iOwogICAgICAgIHNoaWZ0OwogICAgZG9uZQp9CnVjbGliY3Rvb2xpemUgKCkgCnsgCiAg
ICBld2FybiAidWNsaWJjdG9vbGl6ZSgpIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSBqdXN0IHVzZSBl
bGlidG9vbGl6ZSgpISI7CiAgICBlbGlidG9vbGl6ZQp9CnVucGFja19tYWtlc2VsZiAoKSAKeyAK
ICAgIGxvY2FsIHNyY19pbnB1dD0kezE6LSR7QX19OwogICAgbG9jYWwgc3JjPSQoZmluZF91bnBh
Y2thYmxlX2ZpbGUgIiR7c3JjX2lucHV0fSIpOwogICAgbG9jYWwgc2tpcD0kMjsKICAgIGxvY2Fs
IGV4ZT0kMzsKICAgIFtbIC16ICR7c3JjfSBdXSAmJiBkaWUgIkNvdWxkIG5vdCBsb2NhdGUgc291
cmNlIGZvciAnJHtzcmNfaW5wdXR9JyI7CiAgICBsb2NhbCBzaHJ0c3JjPSQoYmFzZW5hbWUgIiR7
c3JjfSIpOwogICAgZWNobyAiPj4+IFVucGFja2luZyAke3NocnRzcmN9IHRvICR7UFdEfSI7CiAg
ICBpZiBbWyAteiAke3NraXB9IF1dOyB0aGVuCiAgICAgICAgbG9jYWwgdmVyPSQoZ3JlcCAtYSAn
Iy4qTWFrZXNlbGYnICIke3NyY30iIHwgYXdrICd7cHJpbnQgJE5GfScpOwogICAgICAgIGxvY2Fs
IHNraXA9MDsKICAgICAgICBleGU9dGFpbDsKICAgICAgICBjYXNlICR7dmVyfSBpbiAKICAgICAg
ICAgICAgMS41LiogfCAxLjYuMC1udikKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF5z
a2lwPSAiJHtzcmN9IiB8IGN1dCAtZD0gLWYyKQogICAgICAgICAgICA7OwogICAgICAgICAgICAy
LjAgfCAyLjAuMSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF4nCSd0YWlsICIke3Ny
Y30iIHwgYXdrICd7cHJpbnQgJDJ9JyB8IGN1dCAtYjItKQogICAgICAgICAgICA7OwogICAgICAg
ICAgICAyLjEuMSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF5vZmZzZXQ9ICIke3Ny
Y30iIHwgYXdrICd7cHJpbnQgJDJ9JyB8IGN1dCAtYjItKTsKICAgICAgICAgICAgICAgIGxldCBz
a2lwPSJza2lwICsgMSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjIpCiAgICAgICAg
ICAgICAgICBza2lwPSQoZ3JlcCAtYSBeb2Zmc2V0PSAiJHtzcmN9IiB8IGF3ayAne3ByaW50ICQz
fScgfCBoZWFkIC1uIDEpOwogICAgICAgICAgICAgICAgbGV0IHNraXA9InNraXAgKyAxIgogICAg
ICAgICAgICA7OwogICAgICAgICAgICAyLjEuMykKICAgICAgICAgICAgICAgIHNraXA9YGdyZXAg
LWEgXm9mZnNldD0gIiR7c3JjfSIgfCBhd2sgJ3twcmludCAkM30nYDsKICAgICAgICAgICAgICAg
IGxldCBza2lwPSJza2lwICsgMSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjQgfCAy
LjEuNSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIG9mZnNldD0uKmhlYWQuKndjICIk
e3NyY30iIHwgYXdrICd7cHJpbnQgJDN9JyB8IGhlYWQgLW4gMSk7CiAgICAgICAgICAgICAgICBz
a2lwPSQoaGVhZCAtbiAke3NraXB9ICIke3NyY30iIHwgd2MgLWMpOwogICAgICAgICAgICAgICAg
ZXhlPSJkZCIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGVl
cnJvciAiSSdtIHNvcnJ5LCBidXQgSSB3YXMgdW5hYmxlIHRvIHN1cHBvcnQgdGhlIE1ha2VzZWxm
IGZpbGUuIjsKICAgICAgICAgICAgICAgIGVlcnJvciAiVGhlIHZlcnNpb24gSSBkZXRlY3RlZCB3
YXMgJyR7dmVyfScuIjsKICAgICAgICAgICAgICAgIGVlcnJvciAiUGxlYXNlIGZpbGUgYSBidWcg
YWJvdXQgdGhlIGZpbGUgJHtzaHJ0c3JjfSBhdCI7CiAgICAgICAgICAgICAgICBlZXJyb3IgImh0
dHA6Ly9idWdzLmdlbnRvby5vcmcvIHNvIHRoYXQgc3VwcG9ydCBjYW4gYmUgYWRkZWQuIjsKICAg
ICAgICAgICAgICAgIGRpZSAibWFrZXNlbGYgdmVyc2lvbiAnJHt2ZXJ9JyBub3Qgc3VwcG9ydGVk
IgogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICAgICAgZGVidWctcHJpbnQgIkRldGVj
dGVkIE1ha2VzZWxmIHZlcnNpb24gJHt2ZXJ9IC4uLiB1c2luZyAke3NraXB9IGFzIG9mZnNldCI7
CiAgICBmaTsKICAgIGNhc2UgJHtleGV9IGluIAogICAgICAgIHRhaWwpCiAgICAgICAgICAgIGV4
ZT0idGFpbCAtbiArJHtza2lwfSAnJHtzcmN9JyIKICAgICAgICA7OwogICAgICAgIGRkKQogICAg
ICAgICAgICBleGU9ImRkIGlicz0ke3NraXB9IHNraXA9MSBvYnM9MTAyNCBjb252PXN5bmMgaWY9
JyR7c3JjfSciCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBkaWUgIm1ha2VzZWxm
IGNhbnQgaGFuZGxlIGV4ZSAnJHtleGV9JyIKICAgICAgICA7OwogICAgZXNhYzsKICAgIGxvY2Fs
IHRtcGZpbGU9JChlbWt0ZW1wKTsKICAgIGV2YWwgJHtleGV9IDI+IC9kZXYvbnVsbCB8IGhlYWQg
LWMgNTEyID4gIiR7dG1wZmlsZX0iOwogICAgbG9jYWwgZmlsZXR5cGU9JChmaWxlIC1iICIke3Rt
cGZpbGV9Iik7CiAgICBjYXNlICR7ZmlsZXR5cGV9IGluIAogICAgICAgICp0YXJcIGFyY2hpdmUq
KQogICAgICAgICAgICBldmFsICR7ZXhlfSB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC0KICAg
ICAgICA7OwogICAgICAgIGJ6aXAyKikKICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCBiemlwMiAt
ZGMgfCB0YXIgLS1uby1zYW1lLW93bmVyIC14ZiAtCiAgICAgICAgOzsKICAgICAgICBnemlwKikK
ICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCB0YXIgLS1uby1zYW1lLW93bmVyIC14emYgLQogICAg
ICAgIDs7CiAgICAgICAgY29tcHJlc3MqKQogICAgICAgICAgICBldmFsICR7ZXhlfSB8IGd1bnpp
cCB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC0KICAgICAgICA7OwogICAgICAgICopCiAgICAg
ICAgICAgIGVlcnJvciAiVW5rbm93biBmaWxldHlwZSBcIiR7ZmlsZXR5cGV9XCIgPyI7CiAgICAg
ICAgICAgIGZhbHNlCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBfcGlwZXN0YXR1cz0iJHtQSVBF
U1RBVFVTWypdfSI7CiAgICBbWyAiJHtfcGlwZXN0YXR1cy8vIC99IiAtZXEgMCBdXSB8fCBkaWUg
ImZhaWx1cmUgdW5wYWNraW5nICgke2ZpbGV0eXBlfSkgbWFrZXNlbGYgJHtzaHJ0c3JjfSAoJyR7
dmVyfScgKyR7c2tpcH0pIgp9CnVucGFja19wZHYgKCkgCnsgCiAgICBsb2NhbCBzcmM9JChmaW5k
X3VucGFja2FibGVfZmlsZSAiJDEiKTsKICAgIGxvY2FsIHNpemVvZmZfdD0kMjsKICAgIFtbIC16
ICR7c3JjfSBdXSAmJiBkaWUgIkNvdWxkIG5vdCBsb2NhdGUgc291cmNlIGZvciAnJDEnIjsKICAg
IFtbIC16ICR7c2l6ZW9mZl90fSBdXSAmJiBkaWUgIk5vIGlkZWEgd2hhdCBvZmZfdCBzaXplIHdh
cyB1c2VkIGZvciB0aGlzIHBkdiA6KCI7CiAgICBsb2NhbCBzaHJ0c3JjPSQoYmFzZW5hbWUgIiR7
c3JjfSIpOwogICAgZWNobyAiPj4+IFVucGFja2luZyAke3NocnRzcmN9IHRvICR7UFdEfSI7CiAg
ICBsb2NhbCBtZXRhc2tpcD0kKHRhaWwgLWMgJHtzaXplb2ZmX3R9ICIke3NyY30iIHwgaGV4ZHVt
cCAtZSBcIiVpXCIpOwogICAgbG9jYWwgdGFpbHNraXA9JCh0YWlsIC1jICQoKCR7c2l6ZW9mZl90
fSoyKSkgIiR7c3JjfSIgfCBoZWFkIC1jICR7c2l6ZW9mZl90fSB8IGhleGR1bXAgLWUgXCIlaVwi
KTsKICAgIGxvY2FsIG1ldGFmaWxlPSQoZW1rdGVtcCk7CiAgICB0YWlsIC1jICskKCgke21ldGFz
a2lwfSsxKSkgIiR7c3JjfSIgPiAiJHttZXRhZmlsZX0iOwogICAgbG9jYWwgZGF0YWZpbGU9JCh0
YWlsIC1jICskKCgke21ldGFza2lwfSsxKSkgIiR7c3JjfSIgfCBzdHJpbmdzIHwgaGVhZCAtbiAx
KTsKICAgIGRhdGFmaWxlPSQoYmFzZW5hbWUgIiR7ZGF0YWZpbGV9Iik7CiAgICBsb2NhbCB0bXBm
aWxlPSQoZW1rdGVtcCk7CiAgICB0YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9IDI+
IC9kZXYvbnVsbCB8IGhlYWQgLWMgNTEyID4gJHt0bXBmaWxlfTsKICAgIGxvY2FsIGlzY29tcHJl
c3NlZD0kKGZpbGUgLWIgIiR7dG1wZmlsZX0iKTsKICAgIGlmIFtbICR7aXNjb21wcmVzc2VkOjA6
OH0gPT0gImNvbXByZXNzIiBdXTsgdGhlbgogICAgICAgIGlzY29tcHJlc3NlZD0xOwogICAgICAg
IG12ICR7dG1wZmlsZX17LC5afTsKICAgICAgICBndW56aXAgJHt0bXBmaWxlfTsKICAgIGVsc2UK
ICAgICAgICBpc2NvbXByZXNzZWQ9MDsKICAgIGZpOwogICAgbG9jYWwgaXN0YXI9JChmaWxlIC1i
ICIke3RtcGZpbGV9Iik7CiAgICBpZiBbWyAke2lzdGFyOjA6OX0gPT0gIlBPU0lYIHRhciIgXV07
IHRoZW4KICAgICAgICBpc3Rhcj0xOwogICAgZWxzZQogICAgICAgIGlzdGFyPTA7CiAgICBmaTsK
ICAgIGlmIFsgJHtpc2NvbXByZXNzZWR9IC1lcSAxIF07IHRoZW4KICAgICAgICBpZiBbICR7aXN0
YXJ9IC1lcSAxIF07IHRoZW4KICAgICAgICAgICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkp
ICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNraXB9LSR7dGFpbHNraXB9
KSkgfCB0YXIgLXh6ZiAtOwogICAgICAgIGVsc2UKICAgICAgICAgICAgdGFpbCAtYyArJCgoJHt0
YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNraXB9
LSR7dGFpbHNraXB9KSkgfCBnemlwIC1kYyA+ICR7ZGF0YWZpbGV9OwogICAgICAgIGZpOwogICAg
ZWxzZQogICAgICAgIGlmIFsgJHtpc3Rhcn0gLWVxIDEgXTsgdGhlbgogICAgICAgICAgICB0YWls
IC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgJCgo
JHttZXRhc2tpcH0tJHt0YWlsc2tpcH0pKSB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC07CiAg
ICAgICAgZWxzZQogICAgICAgICAgICB0YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9
IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgJCgoJHttZXRhc2tpcH0tJHt0YWlsc2tpcH0pKSA+ICR7
ZGF0YWZpbGV9OwogICAgICAgIGZpOwogICAgZmk7CiAgICB0cnVlCn0KdmFsaWRhdGVfZGVza3Rv
cF9lbnRyaWVzICgpIAp7IAogICAgaWYgW1sgLXggL3Vzci9iaW4vZGVza3RvcC1maWxlLXZhbGlk
YXRlIF1dOyB0aGVuCiAgICAgICAgZWluZm8gIkNoZWNraW5nIGRlc2t0b3AgZW50cnkgdmFsaWRp
dHkiOwogICAgICAgIGxvY2FsIGRpcmVjdG9yaWVzPSIiOwogICAgICAgIGZvciBkIGluIC91c3Iv
c2hhcmUvYXBwbGljYXRpb25zICRAOwogICAgICAgIGRvCiAgICAgICAgICAgIFtbIC1kICR7RH0k
e2R9IF1dICYmIGRpcmVjdG9yaWVzPSIke2RpcmVjdG9yaWVzfSAke0R9JHtkfSI7CiAgICAgICAg
ZG9uZTsKICAgICAgICBpZiBbWyAtbiAke2RpcmVjdG9yaWVzfSBdXTsgdGhlbgogICAgICAgICAg
ICBmb3IgRklMRSBpbiAkKGZpbmQgJHtkaXJlY3Rvcmllc30gLW5hbWUgIipcLmRlc2t0b3AiIAkJ
CQkJCQktbm90IC1wYXRoICcqLmhpZGRlbionIHwgc29ydCAtdSAyPi9kZXYvbnVsbCk7CiAgICAg
ICAgICAgIGRvCiAgICAgICAgICAgICAgICBsb2NhbCB0ZW1wPSQoZGVza3RvcC1maWxlLXZhbGlk
YXRlICR7RklMRX0gfCBncmVwIC12ICJ3YXJuaW5nOiIgfCAJCQkJCQkJCXNlZCAtZSAic3xlcnJv
cjogfHwiIC1lICJzfCR7RklMRX06fC0tfGciICk7CiAgICAgICAgICAgICAgICBbWyAtbiAkdGVt
cCBdXSAmJiBlbG9nICR7dGVtcC8tLS8ke0ZJTEUvJHtEfS99On07CiAgICAgICAgICAgIGRvbmU7
CiAgICAgICAgZmk7CiAgICAgICAgZWNobyAiIjsKICAgIGVsc2UKICAgICAgICBlaW5mbyAiUGFz
c2luZyBkZXNrdG9wIGVudHJ5IHZhbGlkaXR5IGNoZWNrLiBJbnN0YWxsIGRldi11dGlsL2Rlc2t0
b3AtZmlsZS11dGlscywgaWYgeW91IHdhbnQgdG8gaGVscCB0byBpbXByb3ZlIEdlbnRvby4iOwog
ICAgZmkKfQpkZWNsYXJlIC14IEFCST0iYW1kNjQiCmRlY2xhcmUgLXggQUxTQV9DQVJEUz0iYWxp
NTQ1MSBhbHM0MDAwIGF0aWl4cCBhdGlpeHAtbW9kZW0gYnQ4N3ggY2EwMTA2IGNtaXBjaSBlbXUx
MGsxeCBlbnMxMzcwIGVuczEzNzEgZXMxOTM4IGVzMTk2OCBmbTgwMSBoZGEtaW50ZWwgaW50ZWw4
eDAgaW50ZWw4eDBtIG1hZXN0cm8zIHRyaWRlbnQgdXNiLWF1ZGlvIHZpYTgyeHggdmlhODJ4eC1t
b2RlbSB5bWZwY2kiCmRlY2xhcmUgLXggQUxTQV9QQ01fUExVR0lOUz0iYWRwY20gYWxhdyBhc3lt
IGNvcHkgZG1peCBkc2hhcmUgZHNub29wIGVtcHR5IGV4dHBsdWcgZmlsZSBob29rcyBpZWM5NTgg
aW9wbHVnIGxhZHNwYSBsZmxvYXQgbGluZWFyIG1ldGVyIG11bGF3IG11bHRpIG51bGwgcGx1ZyBy
YXRlIHJvdXRlIHNoYXJlIHNobSBzb2Z0dm9sIgpkZWNsYXJlIC14IEFOVF9IT01FPSIvdXNyL3No
YXJlL2FudCIKZGVjbGFyZSAteCBBUEFDSEUyX01PRFVMRVM9ImFjdGlvbnMgYWxpYXMgYXV0aF9i
YXNpYyBhdXRoX2RpZ2VzdCBhdXRobl9hbm9uIGF1dGhuX2RiZCBhdXRobl9kYm0gYXV0aG5fZGVm
YXVsdCBhdXRobl9maWxlIGF1dGh6X2RibSBhdXRoel9kZWZhdWx0IGF1dGh6X2dyb3VwZmlsZSBh
dXRoel9ob3N0IGF1dGh6X293bmVyIGF1dGh6X3VzZXIgYXV0b2luZGV4IGNhY2hlIGRiZCBkZWZs
YXRlIGRpciBkaXNrX2NhY2hlIGVudiBleHBpcmVzIGV4dF9maWx0ZXIgZmlsZV9jYWNoZSBmaWx0
ZXIgaGVhZGVycyBpZGVudCBpbWFnZW1hcCBpbmNsdWRlIGluZm8gbG9nX2NvbmZpZyBsb2dpbyBt
ZW1fY2FjaGUgbWltZSBtaW1lX21hZ2ljIG5lZ290aWF0aW9uIHByb3h5IHByb3h5X2FqcCBwcm94
eV9iYWxhbmNlciBwcm94eV9jb25uZWN0IHByb3h5X2h0dHAgcmV3cml0ZSBzZXRlbnZpZiBzbyBz
cGVsaW5nIHN0YXR1cyB1bmlxdWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxpYXMiCmRl
Y2xhcmUgLXggQVJDSD0iYW1kNjQiCmRlY2xhcmUgLXggQVNGTEFHU194ODY9Ii0tMzIiCmRlY2xh
cmUgLXggQ0JVSUxEPSJ4ODZfNjQtcGMtbGludXgtZ251IgpkZWNsYXJlIC14IENERUZJTkVfYW1k
NjQ9Il9feDg2XzY0X18iCmRlY2xhcmUgLXggQ0RFRklORV9kZWZhdWx0PSJfX3VuaXhfXyIKZGVj
bGFyZSAteCBDREVGSU5FX3g4Nj0iX19pMzg2X18iCmRlY2xhcmUgLXggQ0ZMQUdTPSItTzIgLXBp
cGUgLW1hcmNoPW5vY29uYSIKZGVjbGFyZSAteCBDRkxBR1NfZGVmYXVsdD0iIgpkZWNsYXJlIC14
IENGTEFHU194ODY9Ii1tMzIgLUwvZW11bC9saW51eC94ODYvbGliIC1ML2VtdWwvbGludXgveDg2
L3Vzci9saWIiCmRlY2xhcmUgLXggQ0hPU1Q9Ing4Nl82NC1wYy1saW51eC1nbnUiCmRlY2xhcmUg
LXggQ0hPU1RfYW1kNjQ9Ing4Nl82NC1wYy1saW51eC1nbnUiCmRlY2xhcmUgLXggQ0hPU1RfZGVm
YXVsdD0ieDg2XzY0LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDSE9TVF94ODY9Imk2ODYtcGMt
bGludXgtZ251IgpkZWNsYXJlIC14IENMQVNTUEFUSD0iL3Vzci9zaGFyZS9saWJyZWFkbGluZS1q
YXZhL2xpYi9saWJyZWFkbGluZS1qYXZhLmphcjovdXNyL3NoYXJlL2NvbW1vbnMtY2xpLTEvbGli
L2NvbW1vbnMtY2xpLmphcjovdXNyL3NoYXJlL3N3dC0zL2xpYi9zd3QuamFyOi91c3Ivc2hhcmUv
bG9nNGovbGliL2xvZzRqLmphcjouIgpkZWNsYXJlIC14IENUQVJHRVRfZGVmYXVsdD0ieDg2XzY0
LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDVlNfUlNIPSJzc2giCmRlY2xhcmUgLXggQ1hYRkxB
R1M9Ii1PMiAtcGlwZSAtbWFyY2g9bm9jb25hIgpkZWNsYXJlIC14IERCVVNfU0VTU0lPTl9CVVNf
QUREUkVTUz0idW5peDphYnN0cmFjdD0vdG1wL2RidXMtVk5KZzc3TEtiZCxndWlkPTdkMmVlNmE5
OGRmM2FlOTY4OTYwYzU0NDQ3ZjMyYmMwIgpkZWNsYXJlIC14IERDQ0NfUEFUSD0iL3Vzci9saWIv
ZGlzdGNjL2JpbiIKZGVjbGFyZSAteCBERUZBVUxUX0FCST0iYW1kNjQiCmRlY2xhcmUgLXggREVT
S1RPUF9TRVNTSU9OPSJkZWZhdWx0IgpkZWNsYXJlIC14IERFU1RUUkVFPSIvdXNyIgpkZWNsYXJl
IC14IERJUk9QVElPTlM9Ii1tMDc1NSIKZGVjbGFyZSAteCBETV9DT05UUk9MPSIvdmFyL3J1bi94
ZG1jdGwiCmRlY2xhcmUgLXggRUxJQkM9ImdsaWJjIgpkZWNsYXJlIC14IEVYRU9QVElPTlM9Ii1t
MDc1NSIKZGVjbGFyZSAteCBGRUFUVVJFUz0iY2NhY2hlIGRpc3Rsb2NrcyBtZXRhZGF0YS10cmFu
c2ZlciBwYXJhbGxlbC1mZXRjaCBzYW5kYm94IHNmcGVybXMgc3RyaWN0IHVubWVyZ2Utb3JwaGFu
cyB1c2VyZmV0Y2giCmRlY2xhcmUgLXggR0NDX1NQRUNTPSIiCmRlY2xhcmUgLXggR0RLX1VTRV9Y
RlQ9IjEiCmRlY2xhcmUgLXggR0VORVJBVElPTj0iMiIKZGVjbGFyZSAteCBHU19MSUI9Ii9ob21l
L3Rpam4vLmZvbnRzIgpkZWNsYXJlIC14IEdUSzJfUkNfRklMRVM9Ii9ldGMvZ3RrLTIuMC9ndGty
YzovaG9tZS90aWpuLy5ndGtyYy0yLjA6L2hvbWUvdGlqbi8ua2RlMy41L3NoYXJlL2NvbmZpZy9n
dGtyYy0yLjAiCmRlY2xhcmUgLXggR1RLX1JDX0ZJTEVTPSIvZXRjL2d0ay9ndGtyYzovaG9tZS90
aWpuLy5ndGtyYzovaG9tZS90aWpuLy5rZGUzLjUvc2hhcmUvY29uZmlnL2d0a3JjIgpkZWNsYXJl
IC14IElOSEVSSVRFRD0idG9vbGNoYWluLWZ1bmNzIHBvcnRhYmlsaXR5IGZsYWctby1tYXRpYyBt
dWx0aWxpYiBsaWJ0b29sIGV1dGlscyBhdXRvdG9vbHMgcGFtIGNjYyIKZGVjbGFyZSAteCBJTlBV
VF9ERVZJQ0VTPSJrZXlib2FyZCBtb3VzZSBldmRldiIKZGVjbGFyZSAteCBJTlNERVNUVFJFRT0i
IgpkZWNsYXJlIC14IElOU09QVElPTlM9Ii1tMDY0NCIKZGVjbGFyZSAteCBJVVNFPSIgc3RhdGlj
IHBhbSB0Y3BkIGtlcmJlcm9zIHNrZXkgc2VsaW51eCBjaHJvb3QgWDUwOSBsZGFwIHNtYXJ0Y2Fy
ZCBocG4gbGliZWRpdCBYIgpkZWNsYXJlIC14IEpBVkFDPSIvZXRjL2phdmEtY29uZmlnLTIvY3Vy
cmVudC1zeXN0ZW0tdm0vYmluL2phdmFjIgpkZWNsYXJlIC14IEpBVkFfSE9NRT0iL2V0Yy9qYXZh
LWNvbmZpZy0yL2N1cnJlbnQtc3lzdGVtLXZtIgpkZWNsYXJlIC14IEpES19IT01FPSIvZXRjL2ph
dmEtY29uZmlnLTIvY3VycmVudC1zeXN0ZW0tdm0iCmRlY2xhcmUgLXggS0RFRElSPSIvdXNyL2tk
ZS8zLjUiCmRlY2xhcmUgLXggS0RFRElSUz0iL3VzcjovdXNyL2xvY2FsOi91c3Iva2RlLzMuNSIK
ZGVjbGFyZSAteCBLREVfRlVMTF9TRVNTSU9OPSJ0cnVlIgpkZWNsYXJlIC14IEtERV9JU19QUkVM
SU5LRUQ9IjEiCmRlY2xhcmUgLXggS0RFX01VTFRJSEVBRD0iZmFsc2UiCmRlY2xhcmUgLXggS0RF
X1NFU1NJT05fVUlEPSIxMDAwIgpkZWNsYXJlIC14IEtFUk5FTD0ibGludXgiCmRlY2xhcmUgLXgg
S0VSTkVMX0FCST0iYW1kNjQiCmRlY2xhcmUgLXggS09OU09MRV9EQ09QPSJEQ09QUmVmKGtvbnNv
bGUtNzE2OSxrb25zb2xlKSIKZGVjbGFyZSAteCBLT05TT0xFX0RDT1BfU0VTU0lPTj0iRENPUFJl
Zihrb25zb2xlLTcxNjksc2Vzc2lvbi0xKSIKZGVjbGFyZSAteCBLVj0iMi42LjI0LWdlbnRvby1y
MiIKZGVjbGFyZSAteCBMQ0RfREVWSUNFUz0iYmF5cmFkIGNmb250eiBjZm9udHo2MzMgZ2xrIGhk
NDQ3ODAgbGIyMTYgbGNkbTAwMSBtdHhvcmIgbmN1cnNlcyB0ZXh0IgpkZWNsYXJlIC14IExERkxB
R1NfZGVmYXVsdD0iIgpkZWNsYXJlIC14IExERkxBR1NfeDg2PSItbSBlbGZfaTM4NiAtTC9lbXVs
L2xpbnV4L3g4Ni9saWIgLUwvZW11bC9saW51eC94ODYvdXNyL2xpYiIKZGVjbGFyZSAteCBMRFBB
VEg9Ii91c3Iva2RlLzMuNS9saWI6L3Vzci9rZGUvMy41L2xpYjY0Oi91c3Iva2RlLzMuNS9saWIz
MjoiCmRlY2xhcmUgLXggTElCRElSX2FtZDY0PSJsaWI2NCIKZGVjbGFyZSAteCBMSUJESVJfZGVm
YXVsdD0ibGliIgpkZWNsYXJlIC14IExJQkRJUl94ODY9ImxpYjMyIgpkZWNsYXJlIC14IExJQk9Q
VElPTlM9Ii1tMDY0NCIKZGVjbGFyZSAteCBMSU5HVUFTPSJlbiBlbl9HQiBlbl9VUyBubCIKZGVj
bGFyZSAteCBNQUtFT1BUUz0iLWo1IgpkZWNsYXJlIC14IE1VTFRJTElCX0FCSVM9ImFtZDY0IHg4
NiIKZGVjbGFyZSAteCBNVUxUSUxJQl9TVFJJQ1RfREVOWT0iNjQtYml0LipzaGFyZWQgb2JqZWN0
IgpkZWNsYXJlIC14IE1VTFRJTElCX1NUUklDVF9ESVJTPSIvbGliIC91c3IvbGliIC91c3Iva2Rl
LyovbGliIC91c3IvcXQvKi9saWIgL3Vzci9YMTFSNi9saWIiCmRlY2xhcmUgLXggTVVMVElMSUJf
U1RSSUNUX0VYRU1QVD0iKHBlcmw1fGdjY3xnY2MtbGlifGJpbnV0aWxzfGVjbGlwc2UtM3xkZWJ1
Z3xwb3J0YWdlKSIKZGVjbGFyZSAteCBPTU5JT1JCX0NPTkZJRz0iL2V0Yy9vbW5pb3JiL29tbmlP
UkIuY2ZnIgpkZWNsYXJlIC14IE9QRU5HTF9QUk9GSUxFPSJudmlkaWEiCmRlY2xhcmUgLXggUEtH
X0NPTkZJR19QQVRIPSIvdXNyL3F0LzMvbGliNjQvcGtnY29uZmlnIgpkZWNsYXJlIC14IFBPUlRB
R0VfTklDRU5FU1M9IjE5IgpkZWNsYXJlIC14IFBPUlRBR0VfVE1QRlM9Ii9kZXYvc2htIgpkZWNs
YXJlIC14IFBSRUxJTktfUEFUSF9NQVNLPSIvb3B0IgpkZWNsYXJlIC14IFBZVEhPTkRPQ1M9Ii91
c3Ivc2hhcmUvZG9jL3B5dGhvbi1kb2NzLTIuNS4xL2h0bWwvbGliIgpkZWNsYXJlIC14IFBZVEhP
TlBBVEg9Ii91c3IvbGliNjQvcG9ydGFnZS9weW0iCmRlY2xhcmUgLXggUU1BS0VTUEVDPSJsaW51
eC1nKysiCmRlY2xhcmUgLXggUVRESVI9Ii91c3IvcXQvMyIKZGVjbGFyZSAteCBSRVNUUklDVD0i
IgpkZWNsYXJlIC14IFM9Ii92YXIvdG1wL3BvcnRhZ2UvbmV0LW1pc2Mvb3BlbnNzaC00LjlfcDEv
d29yay9vcGVuc3NoLTQuOXAxIgpkZWNsYXJlIC14IFNBTkRCT1hfREVOWT0iL2V0Yy9sZC5zby5w
cmVsb2FkIgpkZWNsYXJlIC14IFNBTkRCT1hfUFJFRElDVD0iOi9wcm9jL3NlbGYvbWFwczovZGV2
L2NvbnNvbGU6L2Rldi9yYW5kb206L3Vzci9saWI2NC9wb3J0YWdlL3B5bTovdmFyL2NhY2hlL2Vk
Yi9kZXAiCmRlY2xhcmUgLXggU0FOREJPWF9SRUFEPSI6LzovZGV2L3NobTovZGV2L3N0ZGluOi92
YXIvdG1wOi92YXIvdG1wL2NjYWNoZSIKZGVjbGFyZSAteCBTQU5EQk9YX1dSSVRFPSI6L2Rldi9z
aG06L2Rldi9zdGRvdXQ6L2Rldi9zdGRlcnI6L3Zhci90bXA6L3Zhci90bXAvY2NhY2hlIgpkZWNs
YXJlIC14IFNFU1NJT05fTUFOQUdFUj0ibG9jYWwvQ1lCRVJUSU5VUzovdG1wLy5JQ0UtdW5peC83
MTI5IgpkZWNsYXJlIC14IFNMT1Q9IjAiCmRlY2xhcmUgLXggU1RBR0UxX1VTRT0ibnB0bCBucHRs
b25seSB1bmljb2RlIgpkZWNsYXJlIC14IFNZTUxJTktfTElCPSJ5ZXMiCmRlY2xhcmUgLXggVVNF
PSJYIGFtZDY0IGNocm9vdCBlbGliY19nbGliYyBrZXJuZWxfbGludXggcGFtIHRjcGQgdXNlcmxh
bmRfR05VIgpkZWNsYXJlIC14IFVTRVJMQU5EPSJHTlUiCmRlY2xhcmUgLXggVklERU9fQ0FSRFM9
IigtYXBtKSAoLWFyaykgKC1jaGlwcykgKC1jaXJydXMpICgtY3lyaXgpICgtZHVtbXkpICgtZmJk
ZXYpICgtZ2xpbnQpICgtaTEyOCkgKC1pODEwKSAoLW1nYSkgKC1uZW9tYWdpYykgbnYgKC1yZW5k
aXRpb24pICgtczMpICgtczN2aXJnZSkgKC1zYXZhZ2UpICgtc2lsaWNvbm1vdGlvbikgKC1zaXMp
ICgtc2lzdXNiKSAoLXRkZngpICgtdGdhKSAoLXRyaWRlbnQpICgtdHNlbmcpICgtdjRsKSB2ZXNh
IHZnYSAoLXZpYSkgdm13YXJlICgtdm9vZG9vKSAoLWVwc29uKSAoLWZnbHJ4KSAoLWk3NDApICgt
aW1wYWN0KSAoLWltc3R0KSAoLW1hY2g2NCkgKC1tZ2EpICgtbmV3cG9ydCkgKC1uc2MpIG52aWRp
YSAoLXIxMjgpICgtcmFkZW9uKSAoLXN1bmJ3MikgKC1zdW5jZzE0KSAoLXN1bmNnMykgKC1zdW5j
ZzYpICgtc3VuZmZiKSAoLXN1bmxlbykgKC1zdW50Y3gpIgpkZWNsYXJlIC14IFZNSEFORExFPSJi
bGFja2Rvd24tamRrLTEuNC4yIgpkZWNsYXJlIC14IFdBTlRfQVVUT0NPTkY9IjIuNSIKZGVjbGFy
ZSAteCBXQU5UX0FVVE9NQUtFPSIxLjEwIgpkZWNsYXJlIC14IFdJTkRPV0lEPSIxMDQ4NTc2NyIK
ZGVjbGFyZSAteCBYQ1VSU09SX1RIRU1FPSJnZW50b28tYmx1ZSIKZGVjbGFyZSAteCBYREdfQ09O
RklHX0RJUlM9Ii91c3Iva2RlLzMuNS9ldGMveGRnIgpkZWNsYXJlIC14IFhER19EQVRBX0RJUlM9
Ii91c3Ivc2hhcmU6L3Vzci9rZGUvMy41L3NoYXJlOi91c3IvbG9jYWwvc2hhcmUiCmRlY2xhcmUg
LXggWERNX01BTkFHRUQ9Ii92YXIvcnVuL3hkbWN0bC94ZG1jdGwtOjAsbWF5c2QsbWF5Zm4sc2No
ZWQscnN2ZCxtZXRob2Q9Y2xhc3NpYyIKZGVjbGFyZSAteCBfRV9ET0NERVNUVFJFRV89IiIKZGVj
bGFyZSAteCBfRV9FWEVERVNUVFJFRV89IiIK
</data>        

          </attachment>
    </bug>

</bugzilla>