From owner-freebsd-x11@FreeBSD.ORG Wed Jun 13 13:11:27 2012 Return-Path: Delivered-To: x11@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 105201065673 for ; Wed, 13 Jun 2012 13:11:27 +0000 (UTC) (envelope-from izen@mail.ru) Received: from fallback5.mail.ru (fallback5.mail.ru [94.100.176.59]) by mx1.freebsd.org (Postfix) with ESMTP id 159198FC0A for ; Wed, 13 Jun 2012 13:11:25 +0000 (UTC) Received: from smtp16.mail.ru (smtp16.mail.ru [94.100.176.153]) by fallback5.mail.ru (mPOP.Fallback_MX) with ESMTP id 59AFAA9CA5A0 for ; Wed, 13 Jun 2012 17:09:15 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail; h=Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=B7qNU7yndy7kvEzWVwhVA2iZLL5o4b5loeyYtiNbGC4=; b=0udesQscYUev7rAl4oDiCzOf7Kf94RBdJeddr3JbFa5dqWWa+A/0o8KMN2GvkVip6YTyOvy3xTk6YyIaScqmt/fCSiEnp5WG6/IPxyeOZiODwwIGuU0/GPb1VqJGY73J; Received: from [178.45.225.133] (port=16923 helo=roxy.fire) by smtp16.mail.ru with esmtpa (envelope-from ) id 1SenJp-0006Qc-Pe for x11@FreeBSD.org; Wed, 13 Jun 2012 17:09:07 +0400 Message-ID: <4FD890F1.8090803@mail.ru> Date: Wed, 13 Jun 2012 17:09:05 +0400 From: iZEN User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:13.0) Gecko/20120613 Thunderbird/13.0 MIME-Version: 1.0 To: x11@FreeBSD.org Content-Type: multipart/mixed; boundary="------------010607050900080705070502" X-Spam: Not detected X-Mras: Ok X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Stop in /usr/ports/x11-servers/xorg-server X-BeenThere: freebsd-x11@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: X11 on FreeBSD -- maintaining and support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 13:11:27 -0000 This is a multi-part message in MIME format. --------------010607050900080705070502 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit % cd /usr/ports/x11-servers/xorg-server/ && make By default, the X Server installs as a set-user-id root binary. When run by a normal user, it checks arguments and environment as done in the x11/wrapper port before handling them normally. If you are concerned about the security of this, but still want to run an X Server (for example using xdm/kdm/gdm, which will still run the server as root), you can cancel the build and set xorg-server_UNSET=SUID in /etc/make.conf. ===> License check disabled, port has not defined LICENSE ===> Found saved configuration for xorg-server-1.7.7_5,1 ===> Extracting for xorg-server-1.7.7_5,1 => SHA256 Checksum OK for xorg/xserver/xorg-server-1.7.7.tar.bz2. ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/bin/perl5.12.4 - found ===> Patching for xorg-server-1.7.7_5,1 ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/bin/perl5.12.4 - found ===> Applying extra patch /usr/ports/x11-servers/xorg-server/files/extra-dix_events.c ===> Applying extra patch /usr/ports/x11-servers/xorg-server/files/extra-include_eventstr.h ===> Applying extra patch /usr/ports/x11-servers/xorg-server/files/extra-patch-os-utils.c ===> Applying FreeBSD patches for xorg-server-1.7.7_5,1 ===> xorg-server-1.7.7_5,1 depends on executable: gmake - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xf86driproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/glproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/randrproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/renderproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/fixesproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/damageproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/dri2proto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xcmiscproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xextproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xtrans.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xf86miscproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xf86vidmodeproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xf86bigfontproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/scrnsaverproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/bigreqsproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/resourceproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/fontsproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/inputproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xf86dgaproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/videoproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/compositeproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/trapproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/recordproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xineramaproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/evieproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/dri.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xdmcp.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xkbfile.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xxf86misc.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xxf86vm.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xaw7.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xmu.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xt.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xpm.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xproto.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xinerama.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xfont.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/fontenc.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/xkbui.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/pixman-1.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/pciaccess.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/libdata/pkgconfig/pciaccess.pc - found ===> xorg-server-1.7.7_5,1 depends on file: /usr/local/bin/perl5.12.4 - found ===> xorg-server-1.7.7_5,1 depends on shared library: drm - found ===> xorg-server-1.7.7_5,1 depends on shared library: GL.1 - found ===> Configuring for xorg-server-1.7.7_5,1 configure: WARNING: unrecognized options: --without-xmlto, --disable-docs, --disable-devel-docs checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... gawk checking whether gmake sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for gcc... cc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking for style of include used by gmake... GNU checking dependency style of cc... gcc3 checking dependency style of cc... gcc3 checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel checking whether ln -s works... yes checking build system type... amd64-portbld-freebsd9.0 checking host system type... amd64-portbld-freebsd9.0 checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by cc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking the maximum length of command line arguments... (cached) 262144 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... no checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from cc object... ok checking how to run the C preprocessor... cpp checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if cc supports -fno-rtti -fno-exceptions... yes checking for cc option to produce PIC... -fPIC -DPIC checking if cc PIC flag -fPIC -DPIC works... yes checking if cc static flag -static works... yes checking if cc supports -c -o file.o... yes checking if cc supports -c -o file.o... (cached) yes checking whether the cc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... freebsd9.0 ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for bash... /usr/local/bin/bash checking if dolt supports this host... yes, replacing libtool checking whether gmake sets $(MAKE)... (cached) yes checking for pkg-config... /usr/local/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for flex... flex checking lex output file root... lex.yy checking lex library... -lfl checking whether yytext is a pointer... yes checking for bison... bison -y checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for cpp... /usr/bin/cpp checking if /usr/bin/cpp requires -undef... yes checking if /usr/bin/cpp requires -traditional... configure: error: /usr/bin/cpp does not preserve whitespace with or without -traditional. I don't know what to do. ===> Script "configure" failed unexpectedly. Please report the problem to x11@FreeBSD.org [maintainer] and attach the "/usr/ports/x11-servers/xorg-server/work/xorg-server-1.7.7/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. an `ls /var/db/pkg`). *** [do-configure] Error code 1 Stop in /usr/ports/x11-servers/xorg-server. *** [build] Error code 1 Stop in /usr/ports/x11-servers/xorg-server. % % cat /etc/make.conf KERNCONF=ROXY MAKE_JOBS_NUMBER=6 LOADER_ZFS_SUPPORT=true LOCALIZED_LANG=ru WITH_LCD_FILTERING=true WITH_XFT=true WITHOUT_TTF_BYTECODE_ENABLED=false WITH_TTF_BYTECODE_ENABLED=true WITH_MSWINDOWS_LICENSE=true WITH_VPX=true WITH_A4SIZE=true WITHOUT_DEBUG=true WITHOUT_NOUVEAU=true WITHOUT_MYSQL=true WITHOUT_NAUTILUS=true # Keep ruby 1.9 as default version. RUBY_DEFAULT_VER=1.9 # added by use.perl 2012-06-12 20:19:53 PERL_VERSION=5.12.4 % uname -a FreeBSD roxy.fire 9.0-STABLE FreeBSD 9.0-STABLE #0: Tue Jun 12 18:08:42 VOLT 2012 root@roxy.fire:/usr/obj/usr/src/sys/ROXY amd64 % cat /etc/src.conf WITHOUT_AMD=true WITHOUT_ASSERT_DEBUG=true WITHOUT_ATM=true WITHOUT_BIND_DNSSEC=true WITHOUT_BIND_ETC=true WITHOUT_BIND_LIBS_LWRES=true WITHOUT_BIND_MTREE=true WITHOUT_BIND_NAMED=true WITHOUT_BLUETOOTH=true WITH_BSD_GREP=true WITHOUT_BSNMP=true WITH_CLANG=true WITH_CLANG_IS_CC=true WITHOUT_EXAMPLES=true WITHOUT_FLOPPY=true WITHOUT_FREEBSD_UPDATE=true WITHOUT_GAMES=true WITHOUT_GDB=true WITHOUT_HTML=true WITH_IDEA=true WITHOUT_IPFILTER=true WITHOUT_IPFW=true WITHOUT_IPX=true WITHOUT_IPX_SUPPORT=true WITHOUT_LIB32=true WITHOUT_LPR=true WITHOUT_NDIS=true WITHOUT_NETGRAPH=true WITHOUT_NETGRAPH_SUPPORT=true WITHOUT_PPP=true WITHOUT_PROFILE=true WITHOUT_RCS=true WITHOUT_SENDMAIL=true WITHOUT_SYSINSTALL=true WITHOUT_TELNET=true WITHOUT_WIRELESS=true WITHOUT_WIRELESS_SUPPORT=true --------------010607050900080705070502 Content-Type: text/plain; charset=UTF-8; name="config.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.log" VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMg d2hpbGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJl IG1ha2VzIGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IHhvcmctc2VydmVyIGNvbmZp Z3VyZSAxLjcuNywgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42My4g IEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoKICAkIC4vY29uZmlndXJlIC0tZGlzYWJs ZS1kbXggLS1kaXNhYmxlLXh2ZmIgLS1kaXNhYmxlLXhuZXN0IC0td2l0aG91dC14bWx0byAt LWRpc2FibGUtZG9jcyAtLWRpc2FibGUtZGV2ZWwtZG9jcyAtLWxvY2Fsc3RhdGVkaXI9L3Zh ciAtLXdpdGhvdXQtZHRyYWNlIC0tZGlzYWJsZS14ZXBoeXIgLS1lbmFibGUtcmVjb3JkPXll cyAtLXdpdGgteGtiLXBhdGg9L3Vzci9sb2NhbC9zaGFyZS9YMTEveGtiIC0tZW5hYmxlLWNv bmZpZy1oYWw9bm8gLS1lbmFibGUtYWlnbHg9eWVzIC0tZW5hYmxlLWluc3RhbGwtc2V0dWlk PXllcyAtLXgtbGlicmFyaWVzPS91c3IvbG9jYWwvbGliIC0teC1pbmNsdWRlcz0vdXNyL2xv Y2FsL2luY2x1ZGUgLS1wcmVmaXg9L3Vzci9sb2NhbCAtLW1hbmRpcj0vdXNyL2xvY2FsL21h biAtLWluZm9kaXI9L3Vzci9sb2NhbC9pbmZvLyAtLWJ1aWxkPWFtZDY0LXBvcnRibGQtZnJl ZWJzZDkuMAoKIyMgLS0tLS0tLS0tICMjCiMjIFBsYXRmb3JtLiAjIwojIyAtLS0tLS0tLS0g IyMKCmhvc3RuYW1lID0gcm94eS5maXJlCnVuYW1lIC1tID0gYW1kNjQKdW5hbWUgLXIgPSA5 LjAtU1RBQkxFCnVuYW1lIC1zID0gRnJlZUJTRAp1bmFtZSAtdiA9IEZyZWVCU0QgOS4wLVNU QUJMRSAjMDogVHVlIEp1biAxMiAxODowODo0MiBWT0xUIDIwMTIgICAgIHJvb3RAcm94eS5m aXJlOi91c3Ivb2JqL3Vzci9zcmMvc3lzL1JPWFkgCgovdXNyL2Jpbi91bmFtZSAtcCA9IGFt ZDY0Ci9iaW4vdW5hbWUgLVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAg ICA9IHVua25vd24KL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252 ZXgvZ2V0c3lzaW5mbyA9IHVua25vd24KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IHVua25v d24KL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAg ICAgICA9IHVua25vd24KL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24KClBBVEg6 IC9zYmluClBBVEg6IC9iaW4KUEFUSDogL3Vzci9zYmluClBBVEg6IC91c3IvYmluClBBVEg6 IC91c3IvZ2FtZXMKUEFUSDogL3Vzci9sb2NhbC9zYmluClBBVEg6IC91c3IvbG9jYWwvYmlu ClBBVEg6IC9yb290L2JpbgoKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMuICMj CiMjIC0tLS0tLS0tLS0tICMjCgpjb25maWd1cmU6Mjg0NzogY2hlY2tpbmcgZm9yIGEgQlNE LWNvbXBhdGlibGUgaW5zdGFsbApjb25maWd1cmU6MjkxNTogcmVzdWx0OiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1vIHJvb3QgLWcgd2hlZWwKY29uZmlndXJlOjI5MjY6IGNoZWNraW5nIHdo ZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZQpjb25maWd1cmU6Mjk4NjogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjMxMjc6IGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGly IC1wCmNvbmZpZ3VyZTozMTY2OiByZXN1bHQ6IC4vaW5zdGFsbC1zaCAtYyAtZApjb25maWd1 cmU6MzE3OTogY2hlY2tpbmcgZm9yIGdhd2sKY29uZmlndXJlOjMxOTU6IGZvdW5kIC91c3Iv bG9jYWwvYmluL2dhd2sKY29uZmlndXJlOjMyMDY6IHJlc3VsdDogZ2F3awpjb25maWd1cmU6 MzIxNzogY2hlY2tpbmcgd2hldGhlciBnbWFrZSBzZXRzICQoTUFLRSkKY29uZmlndXJlOjMy Mzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMzIyOiBjaGVja2luZyB3aGV0aGVyIHRvIGVu YWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcwpjb25maWd1 cmU6MzMzMTogcmVzdWx0OiBubwpjb25maWd1cmU6MzQyNzogY2hlY2tpbmcgZm9yIGdjYwpj b25maWd1cmU6MzQ1NDogcmVzdWx0OiBjYwpjb25maWd1cmU6MzY4NjogY2hlY2tpbmcgZm9y IEMgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1cmU6MzY5NDogY2MgLS12ZXJzaW9uID4mNQpG cmVlQlNEIGNsYW5nIHZlcnNpb24gMy4xIChicmFuY2hlcy9yZWxlYXNlXzMxIDE1Njg2Mykg MjAxMjA1MjMKVGFyZ2V0OiB4ODZfNjQtdW5rbm93bi1mcmVlYnNkOS4wClRocmVhZCBtb2Rl bDogcG9zaXgKY29uZmlndXJlOjM2OTg6ICQ/ID0gMApjb25maWd1cmU6MzcwNTogY2MgLXYg PiY1CkZyZWVCU0QgY2xhbmcgdmVyc2lvbiAzLjEgKGJyYW5jaGVzL3JlbGVhc2VfMzEgMTU2 ODYzKSAyMDEyMDUyMwpUYXJnZXQ6IHg4Nl82NC11bmtub3duLWZyZWVic2Q5LjAKVGhyZWFk IG1vZGVsOiBwb3NpeApjb25maWd1cmU6MzcwOTogJD8gPSAwCmNvbmZpZ3VyZTozNzE2OiBj YyAtViA+JjUKY2M6IGVycm9yOiBhcmd1bWVudCB0byAnLVYnIGlzIG1pc3NpbmcgKGV4cGVj dGVkIDEgdmFsdWUpCmNjOiBlcnJvcjogbm8gaW5wdXQgZmlsZXMKY29uZmlndXJlOjM3MjA6 ICQ/ID0gMQpjb25maWd1cmU6Mzc0MzogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVs dCBvdXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTozNzY1OiBjYyAtTzIgLXBpcGUgLWZuby1z dHJpY3QtYWxpYXNpbmcgICAtcnBhdGg9L3Vzci9saWI6L3Vzci9sb2NhbC9saWIgY29uZnRl c3QuYyAgPiY1CmNjOiB3YXJuaW5nOiBhcmd1bWVudCB1bnVzZWQgZHVyaW5nIGNvbXBpbGF0 aW9uOiAnLXJwYXRoPS91c3IvbGliOi91c3IvbG9jYWwvbGliJwpjb25maWd1cmU6Mzc2OTog JD8gPSAwCmNvbmZpZ3VyZTozODA3OiByZXN1bHQ6IGEub3V0CmNvbmZpZ3VyZTozODI2OiBj aGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZTozODM2OiAu L2Eub3V0CmNvbmZpZ3VyZTozODQwOiAkPyA9IDAKY29uZmlndXJlOjM4NTk6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTozODY2OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21w aWxpbmcKY29uZmlndXJlOjM4Njg6IHJlc3VsdDogbm8KY29uZmlndXJlOjM4NzE6IGNoZWNr aW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMKY29uZmlndXJlOjM4Nzg6IGNjIC1vIGNv bmZ0ZXN0IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAgIC1ycGF0aD0vdXNyL2xp YjovdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5jICA+JjUKY2M6IHdhcm5pbmc6IGFyZ3VtZW50 IHVudXNlZCBkdXJpbmcgY29tcGlsYXRpb246ICctcnBhdGg9L3Vzci9saWI6L3Vzci9sb2Nh bC9saWInCmNvbmZpZ3VyZTozODgyOiAkPyA9IDAKY29uZmlndXJlOjM5MDg6IHJlc3VsdDog CmNvbmZpZ3VyZTozOTE0OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcwpj b25maWd1cmU6Mzk0MDogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nICBj b25mdGVzdC5jID4mNQpjb25maWd1cmU6Mzk0NDogJD8gPSAwCmNvbmZpZ3VyZTozOTY5OiBy ZXN1bHQ6IG8KY29uZmlndXJlOjM5NzM6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5n IHRoZSBHTlUgQyBjb21waWxlcgpjb25maWd1cmU6NDAwMjogY2MgLWMgLU8yIC1waXBlIC1m bm8tc3RyaWN0LWFsaWFzaW5nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDAwOTogJD8g PSAwCmNvbmZpZ3VyZTo0MDI2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDAzNTogY2hlY2tp bmcgd2hldGhlciBjYyBhY2NlcHRzIC1nCmNvbmZpZ3VyZTo0MDY1OiBjYyAtYyAtZyAgY29u ZnRlc3QuYyA+JjUKY29uZmlndXJlOjQwNzI6ICQ/ID0gMApjb25maWd1cmU6NDE3MzogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjQxOTA6IGNoZWNraW5nIGZvciBjYyBvcHRpb24gdG8gYWNj ZXB0IElTTyBDODkKY29uZmlndXJlOjQyNjQ6IGNjICAtYyAtTzIgLXBpcGUgLWZuby1zdHJp Y3QtYWxpYXNpbmcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0MjcxOiAkPyA9IDAKY29u ZmlndXJlOjQyOTQ6IHJlc3VsdDogbm9uZSBuZWVkZWQKY29uZmlndXJlOjQzMjM6IGNoZWNr aW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgZ21ha2UKY29uZmlndXJlOjQzNTE6 IHJlc3VsdDogR05VCmNvbmZpZ3VyZTo0Mzc2OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxl IG9mIGNjCmNvbmZpZ3VyZTo0NDg2OiByZXN1bHQ6IGdjYzMKY29uZmlndXJlOjQ1MTA6IGNo ZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgY2MKY29uZmlndXJlOjQ2MTg6IHJlc3VsdDog Z2NjMwpjb25maWd1cmU6NDY0NzogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5z dGFsbApjb25maWd1cmU6NDcxNTogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1vIHJv b3QgLWcgd2hlZWwKY29uZmlndXJlOjQ3MjY6IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29y a3MKY29uZmlndXJlOjQ3MzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NzQzOiBjaGVja2lu ZyBidWlsZCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6NDc2MTogcmVzdWx0OiBhbWQ2NC1wb3J0 YmxkLWZyZWVic2Q5LjAKY29uZmlndXJlOjQ3ODM6IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5 cGUKY29uZmlndXJlOjQ3OTg6IHJlc3VsdDogYW1kNjQtcG9ydGJsZC1mcmVlYnNkOS4wCmNv bmZpZ3VyZTo1MTc5OiBjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0 ZSBvdXRwdXQKY29uZmlndXJlOjUyNDU6IHJlc3VsdDogL3Vzci9iaW4vc2VkCmNvbmZpZ3Vy ZTo1MjYzOiBjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQg LWUKY29uZmlndXJlOjUzMjM6IHJlc3VsdDogL3Vzci9iaW4vZ3JlcApjb25maWd1cmU6NTMy ODogY2hlY2tpbmcgZm9yIGVncmVwCmNvbmZpZ3VyZTo1MzkyOiByZXN1bHQ6IC91c3IvYmlu L2dyZXAgLUUKY29uZmlndXJlOjUzOTc6IGNoZWNraW5nIGZvciBmZ3JlcApjb25maWd1cmU6 NTQ2MTogcmVzdWx0OiAvdXNyL2Jpbi9ncmVwIC1GCmNvbmZpZ3VyZTo1NDk2OiBjaGVja2lu ZyBmb3IgbGQgdXNlZCBieSBjYwpjb25maWd1cmU6NTU2MzogcmVzdWx0OiAvdXNyL2Jpbi9s ZApjb25maWd1cmU6NTU3MjogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoL3Vzci9iaW4vbGQp IGlzIEdOVSBsZApjb25maWd1cmU6NTU4NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU1OTk6 IGNoZWNraW5nIGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKQpj b25maWd1cmU6NTY0ODogcmVzdWx0OiAvdXNyL2Jpbi9ubSAtQgpjb25maWd1cmU6NTc2Njog Y2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgvdXNyL2Jpbi9ubSAtQikgaW50ZXJmYWNlCmNv bmZpZ3VyZTo1NzczOiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1Nzc2OiAvdXNyL2Jpbi9ubSAtQiAiY29uZnRlc3Qu byIKY29uZmlndXJlOjU3Nzk6IG91dHB1dAowMDAwMDAwMDAwMDAwMDAwIEIgc29tZV92YXJp YWJsZQpjb25maWd1cmU6NTc4NjogcmVzdWx0OiBCU0Qgbm0KY29uZmlndXJlOjU3OTA6IGNo ZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCmNv bmZpZ3VyZTo1OTEwOiByZXN1bHQ6IDI2MjE0NApjb25maWd1cmU6NTkyNzogY2hlY2tpbmcg d2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0cwpjb25m aWd1cmU6NTkzNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU5NDE6IGNoZWNraW5nIHdoZXRo ZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICIrPSIKY29uZmlndXJlOjU5NDc6IHJlc3VsdDog bm8KY29uZmlndXJlOjU5ODI6IGNoZWNraW5nIGZvciAvdXNyL2Jpbi9sZCBvcHRpb24gdG8g cmVsb2FkIG9iamVjdCBmaWxlcwpjb25maWd1cmU6NTk4OTogcmVzdWx0OiAtcgpjb25maWd1 cmU6NjA1ODogY2hlY2tpbmcgZm9yIG9iamR1bXAKY29uZmlndXJlOjYwODU6IHJlc3VsdDog b2JqZHVtcApjb25maWd1cmU6NjExNDogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBl bmRlbnQgbGlicmFyaWVzCmNvbmZpZ3VyZTo2MzEwOiByZXN1bHQ6IHBhc3NfYWxsCmNvbmZp Z3VyZTo2MzcwOiBjaGVja2luZyBmb3IgYXIKY29uZmlndXJlOjYzODY6IGZvdW5kIC91c3Iv YmluL2FyCmNvbmZpZ3VyZTo2Mzk3OiByZXN1bHQ6IGFyCmNvbmZpZ3VyZTo2NDc1OiBjaGVj a2luZyBmb3Igc3RyaXAKY29uZmlndXJlOjY0OTE6IGZvdW5kIC91c3IvYmluL3N0cmlwCmNv bmZpZ3VyZTo2NTAyOiByZXN1bHQ6IHN0cmlwCmNvbmZpZ3VyZTo2NTc0OiBjaGVja2luZyBm b3IgcmFubGliCmNvbmZpZ3VyZTo2NTkwOiBmb3VuZCAvdXNyL2Jpbi9yYW5saWIKY29uZmln dXJlOjY2MDE6IHJlc3VsdDogcmFubGliCmNvbmZpZ3VyZTo2NjkxOiBjaGVja2luZyBjb21t YW5kIHRvIHBhcnNlIC91c3IvYmluL25tIC1CIG91dHB1dCBmcm9tIGNjIG9iamVjdApjb25m aWd1cmU6NjgwOTogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6NjgxMjogJD8gPSAwCmNvbmZpZ3VyZTo2ODE2OiAvdXNy L2Jpbi9ubSAtQiBjb25mdGVzdC5vIFx8IHNlZCAtbiAtZSAncy9eLipbCSBdXChbQUJDREdJ UlNUV11bQUJDREdJUlNUV10qXClbCSBdWwkgXSpcKFtfQS1aYS16XVtfQS1aYS16MC05XSpc KSQvXDEgXDIgXDIvcCcgXD4gY29uZnRlc3Qubm0KY29uZmlndXJlOjY4MTk6ICQ/ID0gMApj b25maWd1cmU6Njg3MzogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFs aWFzaW5nICAgLXJwYXRoPS91c3IvbGliOi91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgY29u ZnRzdG0ubyA+JjUKY2M6IHdhcm5pbmc6IGFyZ3VtZW50IHVudXNlZCBkdXJpbmcgY29tcGls YXRpb246ICctcnBhdGg9L3Vzci9saWI6L3Vzci9sb2NhbC9saWInCmNvbmZpZ3VyZTo2ODc2 OiAkPyA9IDAKY29uZmlndXJlOjY5MTQ6IHJlc3VsdDogb2sKY29uZmlndXJlOjc3ODE6IGNo ZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTo3ODk5OiBy ZXN1bHQ6IGNwcApjb25maWd1cmU6NzkyODogY3BwICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo3 OTM1OiAkPyA9IDAKY29uZmlndXJlOjc5NjY6IGNwcCAgY29uZnRlc3QuYwpjb25mdGVzdC5j OjEwOjEwOiBmYXRhbCBlcnJvcjogJ2FjX25vbmV4aXN0ZW50LmgnIGZpbGUgbm90IGZvdW5k CiNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgogICAgICAgICBeCjEgZXJyb3IgZ2VuZXJh dGVkLgpjb25maWd1cmU6Nzk3MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJ4b3Jn LXNlcnZlciIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAieG9yZy1zZXJ2ZXIiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjEuNy43Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg Inhvcmctc2VydmVyIDEuNy43Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImh0dHBz Oi8vYnVncy5mcmVlZGVza3RvcC5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PXhvcmciCnwg I2RlZmluZSBQQUNLQUdFICJ4b3JnLXNlcnZlciIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNy43 Igp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQu aD4KY29uZmlndXJlOjgwMTM6IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzCmNv bmZpZ3VyZTo4MDQzOiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo4MDUwOiAkPyA9IDAKY29uZmlndXJlOjgxNDk6IGNj IC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAgIC1ycGF0aD0v dXNyL2xpYjovdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5jICA+JjUKY2M6IHdhcm5pbmc6IGFy Z3VtZW50IHVudXNlZCBkdXJpbmcgY29tcGlsYXRpb246ICctcnBhdGg9L3Vzci9saWI6L3Vz ci9sb2NhbC9saWInCmNvbmZpZ3VyZTo4MTUzOiAkPyA9IDAKY29uZmlndXJlOjgxNTk6IC4v Y29uZnRlc3QKY29uZmlndXJlOjgxNjM6ICQ/ID0gMApjb25maWd1cmU6ODE4MTogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjgyMDU6IGNoZWNraW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1 cmU6ODIyNjogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nICBjb25mdGVz dC5jID4mNQpjb25maWd1cmU6ODIzMzogJD8gPSAwCmNvbmZpZ3VyZTo4MjUwOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6ODIwNTogY2hlY2tpbmcgZm9yIHN5cy9zdGF0LmgKY29uZmlndXJl OjgyMjY6IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAgY29uZnRlc3Qu YyA+JjUKY29uZmlndXJlOjgyMzM6ICQ/ID0gMApjb25maWd1cmU6ODI1MDogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjgyMDU6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6ODIy NjogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nICBjb25mdGVzdC5jID4m NQpjb25maWd1cmU6ODIzMzogJD8gPSAwCmNvbmZpZ3VyZTo4MjUwOiByZXN1bHQ6IHllcwpj b25maWd1cmU6ODIwNTogY2hlY2tpbmcgZm9yIHN0cmluZy5oCmNvbmZpZ3VyZTo4MjI2OiBj YyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZpZ3VyZTo4MjMzOiAkPyA9IDAKY29uZmlndXJlOjgyNTA6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo4MjA1OiBjaGVja2luZyBmb3IgbWVtb3J5LmgKY29uZmlndXJlOjgyMjY6IGNjIC1j IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjgyMzM6ICQ/ID0gMApjb25maWd1cmU6ODI1MDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjgyMDU6IGNoZWNraW5nIGZvciBzdHJpbmdzLmgKY29uZmlndXJlOjgyMjY6IGNjIC1jIC1P MiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjgyMzM6ICQ/ID0gMApjb25maWd1cmU6ODI1MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgy MDU6IGNoZWNraW5nIGZvciBpbnR0eXBlcy5oCmNvbmZpZ3VyZTo4MjI2OiBjYyAtYyAtTzIg LXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo4 MjMzOiAkPyA9IDAKY29uZmlndXJlOjgyNTA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjA1 OiBjaGVja2luZyBmb3Igc3RkaW50LmgKY29uZmlndXJlOjgyMjY6IGNjIC1jIC1PMiAtcGlw ZSAtZm5vLXN0cmljdC1hbGlhc2luZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjgyMzM6 ICQ/ID0gMApjb25maWd1cmU6ODI1MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgyMDU6IGNo ZWNraW5nIGZvciB1bmlzdGQuaApjb25maWd1cmU6ODIyNjogY2MgLWMgLU8yIC1waXBlIC1m bm8tc3RyaWN0LWFsaWFzaW5nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6ODIzMzogJD8g PSAwCmNvbmZpZ3VyZTo4MjUwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODI2ODogY2hlY2tp bmcgZm9yIGRsZmNuLmgKY29uZmlndXJlOjgyODk6IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0 cmljdC1hbGlhc2luZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjgyOTY6ICQ/ID0gMApj b25maWd1cmU6ODMxMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg0Njc6IGNoZWNraW5nIGZv ciBvYmpkaXIKY29uZmlndXJlOjg0ODI6IHJlc3VsdDogLmxpYnMKY29uZmlndXJlOjg3Nzg6 IGNoZWNraW5nIGlmIGNjIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMKY29u ZmlndXJlOjg3OTY6IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAgLWZu by1ydHRpIC1mbm8tZXhjZXB0aW9ucyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6ODgwMDog JD8gPSAwCmNvbmZpZ3VyZTo4ODEzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODgzMzogY2hl Y2tpbmcgZm9yIGNjIG9wdGlvbiB0byBwcm9kdWNlIFBJQwpjb25maWd1cmU6OTEwNTogcmVz dWx0OiAtZlBJQyAtRFBJQwpjb25maWd1cmU6OTExNzogY2hlY2tpbmcgaWYgY2MgUElDIGZs YWcgLWZQSUMgLURQSUMgd29ya3MKY29uZmlndXJlOjkxMzU6IGNjIC1jIC1PMiAtcGlwZSAt Zm5vLXN0cmljdC1hbGlhc2luZyAgLWZQSUMgLURQSUMgLURQSUMgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjkxMzk6ICQ/ID0gMApjb25maWd1cmU6OTE1MjogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjkxNzY6IGNoZWNraW5nIGlmIGNjIHN0YXRpYyBmbGFnIC1zdGF0aWMgd29ya3MK Y2M6IHdhcm5pbmc6IGFyZ3VtZW50IHVudXNlZCBkdXJpbmcgY29tcGlsYXRpb246ICctcnBh dGg9L3Vzci9saWI6L3Vzci9sb2NhbC9saWInCmNvbmZpZ3VyZTo5MjA0OiByZXN1bHQ6IHll cwpjb25maWd1cmU6OTIxOTogY2hlY2tpbmcgaWYgY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5v CmNvbmZpZ3VyZTo5MjQwOiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcg IC1vIG91dC9jb25mdGVzdDIubyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6OTI0NDogJD8g PSAwCmNvbmZpZ3VyZTo5MjY2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTI3NDogY2hlY2tp bmcgaWYgY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vCmNvbmZpZ3VyZTo5MzIxOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6OTM1NDogY2hlY2tpbmcgd2hldGhlciB0aGUgY2MgbGlua2VyICgv dXNyL2Jpbi9sZCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6MTA0Mjg6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDQ2NTogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hv dWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluCmNvbmZpZ3VyZToxMDQ3MDogY2MgLWMgLU8y IC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6 MTA0NzM6ICQ/ID0gMApjb25maWd1cmU6MTA0ODg6IGNjIC1zaGFyZWQgY29uZnRlc3QubyAg LXYgLVdsLC1zb25hbWUgLVdsLGNvbmZ0ZXN0IC1vIGNvbmZ0ZXN0IDJcPlwmMSBcfCAvdXNy L2Jpbi9ncmVwICAtbGMgIFw+L2Rldi9udWxsIDJcPlwmMQpjb25maWd1cmU6MTA0OTE6ICQ/ ID0gMApjb25maWd1cmU6MTA1MDM6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwNjY3OiBjaGVj a2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MKY29uZmlndXJlOjExMzUzOiBy ZXN1bHQ6IGZyZWVic2Q5LjAgbGQuc28KY29uZmlndXJlOjExNDU1OiBjaGVja2luZyBob3cg dG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zCmNvbmZpZ3VyZToxMTQ4 MDogcmVzdWx0OiBpbW1lZGlhdGUKY29uZmlndXJlOjEyMzEzOiBjaGVja2luZyB3aGV0aGVy IHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUKY29uZmlndXJlOjEyMzE4OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MTIzNTM6IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMg c2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6MTIzNTU6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToxMjM1ODogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzCmNv bmZpZ3VyZToxMjM3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyMzgyOiBjaGVja2luZyB3 aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMKY29uZmlndXJlOjEyMzg2OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxMjQyNzogY2hlY2tpbmcgZm9yIGJhc2gKY29uZmlndXJlOjEy NDQ1OiBmb3VuZCAvdXNyL2xvY2FsL2Jpbi9iYXNoCmNvbmZpZ3VyZToxMjQ1NzogcmVzdWx0 OiAvdXNyL2xvY2FsL2Jpbi9iYXNoCmNvbmZpZ3VyZToxMjQ2NTogY2hlY2tpbmcgaWYgZG9s dCBzdXBwb3J0cyB0aGlzIGhvc3QKY29uZmlndXJlOjEyNDk1OiByZXN1bHQ6IHllcywgcmVw bGFjaW5nIGxpYnRvb2wKY29uZmlndXJlOjEyNjIyOiBjaGVja2luZyB3aGV0aGVyIGdtYWtl IHNldHMgJChNQUtFKQpjb25maWd1cmU6MTI2NDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox MjcwMjogY2hlY2tpbmcgZm9yIHBrZy1jb25maWcKY29uZmlndXJlOjEyNzIwOiBmb3VuZCAv dXNyL2xvY2FsL2Jpbi9wa2ctY29uZmlnCmNvbmZpZ3VyZToxMjczMjogcmVzdWx0OiAvdXNy L2xvY2FsL2Jpbi9wa2ctY29uZmlnCmNvbmZpZ3VyZToxMjc1NzogY2hlY2tpbmcgcGtnLWNv bmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9uIDAuOS4wCmNvbmZpZ3VyZToxMjc2MDogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjEyNzczOiBjaGVja2luZyBmb3IgZmxleApjb25maWd1cmU6MTI3 ODk6IGZvdW5kIC91c3IvYmluL2ZsZXgKY29uZmlndXJlOjEyODAwOiByZXN1bHQ6IGZsZXgK Y29uZmlndXJlOjEyODM3OiBmbGV4IGNvbmZ0ZXN0LmwKY29uZmlndXJlOjEyODQxOiAkPyA9 IDAKY29uZmlndXJlOjEyODQzOiBjaGVja2luZyBsZXggb3V0cHV0IGZpbGUgcm9vdApjb25m aWd1cmU6MTI4NTk6IHJlc3VsdDogbGV4Lnl5CmNvbmZpZ3VyZToxMjg2NDogY2hlY2tpbmcg bGV4IGxpYnJhcnkKY29uZmlndXJlOjEyODgzOiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUg LWZuby1zdHJpY3QtYWxpYXNpbmcgICAtcnBhdGg9L3Vzci9saWI6L3Vzci9sb2NhbC9saWIg Y29uZnRlc3QuYyAgID4mNQpjYzogd2FybmluZzogYXJndW1lbnQgdW51c2VkIGR1cmluZyBj b21waWxhdGlvbjogJy1ycGF0aD0vdXNyL2xpYjovdXNyL2xvY2FsL2xpYicKY29uZnRlc3Qu bDo2OjIwOiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gcG9pbnRlciBhbmQgaW50ZWdl ciAoJ2NoYXIgKicgYW5kICdpbnQnKQp7IHl5bGVzcyAoaW5wdXQgKCkgIT0gMCk7IH0KICB+ fn5+fn5+fn5+fn5+fn5+fl5+fn5+CmNvbmZ0ZXN0LmM6MTM4OjMyOiBub3RlOiBleHBhbmRl ZCBmcm9tIG1hY3JvICd5eWxlc3MnCiAgICAgICAgICAgICAgICB5eV9jX2J1Zl9wID0geXlf Y3AgPSB5eV9icCArIG4gLSBZWV9NT1JFX0FESjsgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfn5+fn5+fn5efn5+fn5+fn5+fn5+fn5+fn4KY29uZnRlc3QubDo2 OjM6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbnRlZ2VyIHRvIHBvaW50ZXIgY29udmVyc2lv biBhc3NpZ25pbmcgdG8gJ2NoYXIgKicgZnJvbSAnaW50JyBbLVdpbnQtY29udmVyc2lvbl0K eyB5eWxlc3MgKGlucHV0ICgpICE9IDApOyB9CiAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpj b25mdGVzdC5jOjEzODoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAneXlsZXNzJwog ICAgICAgICAgICAgICAgeXlfY19idWZfcCA9IHl5X2NwID0geXlfYnAgKyBuIC0gWVlfTU9S RV9BREo7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgovdG1wL2NvbmZ0ZXN0 LUpCZEJycy5vOiBJbiBmdW5jdGlvbiBgeXlsZXgnOgpjb25mdGVzdC5jOigudGV4dCsweDNm Myk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHl5d3JhcCcKY29uZnRlc3QuYzooLnRleHQr MHg2N2MpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB5eXdyYXAnCi90bXAvY29uZnRlc3Qt SkJkQnJzLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKY29uZnRlc3QuYzooLnRleHQrMHgxMDlh KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeXl3cmFwJwpjYzogZXJyb3I6IGxpbmtlciBj b21tYW5kIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxICh1c2UgLXYgdG8gc2VlIGludm9jYXRp b24pCmNvbmZpZ3VyZToxMjg5MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIEEgbGV4aWNhbCBzY2FubmVyIGdlbmVyYXRlZCBieSBmbGV4ICovCnwgCnwg LyogU2Nhbm5lciBza2VsZXRvbiB2ZXJzaW9uOgp8ICAqICRIZWFkZXI6IC9ob21lL2RhZmZ5 L3UwL3Zlcm4vZmxleC9SQ1MvZmxleC5za2wsdiAyLjkxIDk2LzA5LzEwIDE2OjU4OjQ4IHZl cm4gRXhwICQKfCAgKiAkRnJlZUJTRDogc3JjL3Vzci5iaW4vbGV4L2ZsZXguc2tsLHYgMS4x My4yLjEgMjAxMS8wOS8yMyAwMDo1MTozNyBrZW5zbWl0aCBFeHAgJAp8ICAqLwp8IAp8ICNp ZiBkZWZpbmVkKF9fRnJlZUJTRF9fKQp8ICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KfCAjZWxz ZQp8ICNkZWZpbmUgX191bnVzZWQKfCAjZGVmaW5lIF9fZGVhZDIKfCAjZW5kaWYKfCAKfCAj ZGVmaW5lIEZMRVhfU0NBTk5FUgp8ICNkZWZpbmUgWVlfRkxFWF9NQUpPUl9WRVJTSU9OIDIK fCAjZGVmaW5lIFlZX0ZMRVhfTUlOT1JfVkVSU0lPTiA1CnwgCnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgCnwgCnwgLyogY2Zyb250IDEuMiBkZWZpbmVzICJjX3BsdXNwbHVzIiBpbnN0ZWFk IG9mICJfX2NwbHVzcGx1cyIgKi8KfCAjaWZkZWYgY19wbHVzcGx1cwp8ICNpZm5kZWYgX19j cGx1c3BsdXMKfCAjZGVmaW5lIF9fY3BsdXNwbHVzCnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwg CnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgCnwgI2luY2x1ZGUgPHN0ZGxpYi5oPgp8ICNpbmNs dWRlIDx1bmlzdGQuaD4KfCAKfCAvKiBVc2UgcHJvdG90eXBlcyBpbiBmdW5jdGlvbiBkZWNs YXJhdGlvbnMuICovCnwgI2RlZmluZSBZWV9VU0VfUFJPVE9TCnwgCnwgLyogVGhlICJjb25z dCIgc3RvcmFnZS1jbGFzcy1tb2RpZmllciBpcyB2YWxpZC4gKi8KfCAjZGVmaW5lIFlZX1VT RV9DT05TVAp8IAp8ICNlbHNlCS8qICEgX19jcGx1c3BsdXMgKi8KfCAKfCAjaWYgX19TVERD X18KfCAKfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MKfCAjZGVmaW5lIFlZX1VTRV9DT05TVAp8 IAp8ICNlbmRpZgkvKiBfX1NURENfXyAqLwp8ICNlbmRpZgkvKiAhIF9fY3BsdXNwbHVzICov CnwgCnwgI2lmZGVmIF9fVFVSQk9DX18KfCAgI3ByYWdtYSB3YXJuIC1yY2gKfCAgI3ByYWdt YSB3YXJuIC11c2UKfCAjaW5jbHVkZSA8aW8uaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+Cnwg I2RlZmluZSBZWV9VU0VfQ09OU1QKfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MKfCAjZW5kaWYK fCAKfCAjaWZkZWYgWVlfVVNFX0NPTlNUCnwgI2RlZmluZSB5eWNvbnN0IGNvbnN0CnwgI2Vs c2UKfCAjZGVmaW5lIHl5Y29uc3QKfCAjZW5kaWYKfCAKfCAKfCAjaWZkZWYgWVlfVVNFX1BS T1RPUwp8ICNkZWZpbmUgWVlfUFJPVE8ocHJvdG8pIHByb3RvCnwgI2Vsc2UKfCAjZGVmaW5l IFlZX1BST1RPKHByb3RvKSAoKQp8ICNlbmRpZgp8IAp8IC8qIFJldHVybmVkIHVwb24gZW5k LW9mLWZpbGUuICovCnwgI2RlZmluZSBZWV9OVUxMIDAKfCAKfCAvKiBQcm9tb3RlcyBhIHBv c3NpYmx5IG5lZ2F0aXZlLCBwb3NzaWJseSBzaWduZWQgY2hhciB0byBhbiB1bnNpZ25lZAp8 ICAqIGludGVnZXIgZm9yIHVzZSBhcyBhbiBhcnJheSBpbmRleC4gIElmIHRoZSBzaWduZWQg Y2hhciBpcyBuZWdhdGl2ZSwKfCAgKiB3ZSB3YW50IHRvIGluc3RlYWQgdHJlYXQgaXQgYXMg YW4gOC1iaXQgdW5zaWduZWQgY2hhciwgaGVuY2UgdGhlCnwgICogZG91YmxlIGNhc3QuCnwg ICovCnwgI2RlZmluZSBZWV9TQ19UT19VSShjKSAoKHVuc2lnbmVkIGludCkgKHVuc2lnbmVk IGNoYXIpIGMpCnwgCnwgLyogRW50ZXIgYSBzdGFydCBjb25kaXRpb24uICBUaGlzIG1hY3Jv IHJlYWxseSBvdWdodCB0byB0YWtlIGEgcGFyYW1ldGVyLAp8ICAqIGJ1dCB3ZSBkbyBpdCB0 aGUgZGlzZ3VzdGluZyBjcnVmdHkgd2F5IGZvcmNlZCBvbiB1cyBieSB0aGUgKCktbGVzcwp8 ICAqIGRlZmluaXRpb24gb2YgQkVHSU4uCnwgICovCnwgI2RlZmluZSBCRUdJTiB5eV9zdGFy dCA9IDEgKyAyICoKfCAKfCAvKiBUcmFuc2xhdGUgdGhlIGN1cnJlbnQgc3RhcnQgc3RhdGUg aW50byBhIHZhbHVlIHRoYXQgY2FuIGJlIGxhdGVyIGhhbmRlZAp8ICAqIHRvIEJFR0lOIHRv IHJldHVybiB0byB0aGUgc3RhdGUuICBUaGUgWVlTVEFURSBhbGlhcyBpcyBmb3IgbGV4Cnwg ICogY29tcGF0aWJpbGl0eS4KfCAgKi8KfCAjZGVmaW5lIFlZX1NUQVJUICgoeXlfc3RhcnQg LSAxKSAvIDIpCnwgI2RlZmluZSBZWVNUQVRFIFlZX1NUQVJUCnwgCnwgLyogQWN0aW9uIG51 bWJlciBmb3IgRU9GIHJ1bGUgb2YgYSBnaXZlbiBzdGFydCBzdGF0ZS4gKi8KfCAjZGVmaW5l IFlZX1NUQVRFX0VPRihzdGF0ZSkgKFlZX0VORF9PRl9CVUZGRVIgKyBzdGF0ZSArIDEpCnwg CnwgLyogU3BlY2lhbCBhY3Rpb24gbWVhbmluZyAic3RhcnQgcHJvY2Vzc2luZyBhIG5ldyBm aWxlIi4gKi8KfCAjZGVmaW5lIFlZX05FV19GSUxFIHl5cmVzdGFydCggeXlpbiApCnwgCnwg I2RlZmluZSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIgMAp8IAp8IC8qIFNpemUgb2YgZGVmYXVs dCBpbnB1dCBidWZmZXIuICovCnwgI2RlZmluZSBZWV9CVUZfU0laRSAxNjM4NAp8IAp8IHR5 cGVkZWYgc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSAqWVlfQlVGRkVSX1NUQVRFOwp8IAp8IGV4 dGVybiBpbnQgeXlsZW5nOwp8IGV4dGVybiBGSUxFICp5eWluLCAqeXlvdXQ7CnwgCnwgI2Rl ZmluZSBFT0JfQUNUX0NPTlRJTlVFX1NDQU4gMAp8ICNkZWZpbmUgRU9CX0FDVF9FTkRfT0Zf RklMRSAxCnwgI2RlZmluZSBFT0JfQUNUX0xBU1RfTUFUQ0ggMgp8IAp8IC8qIFRoZSBmdW5r eSBkby13aGlsZSBpbiB0aGUgZm9sbG93aW5nICNkZWZpbmUgaXMgdXNlZCB0byB0dXJuIHRo ZSBkZWZpbml0aW9uCnwgICogaW50IGEgc2luZ2xlIEMgc3RhdGVtZW50ICh3aGljaCBuZWVk cyBhIHNlbWktY29sb24gdGVybWluYXRvcikuICBUaGlzCnwgICogYXZvaWRzIHByb2JsZW1z IHdpdGggY29kZSBsaWtlOgp8ICAqCnwgICogCWlmICggY29uZGl0aW9uX2hvbGRzICkKfCAg KgkJeXlsZXNzKCA1ICk7CnwgICoJZWxzZQp8ICAqCQlkb19zb21ldGhpbmdfZWxzZSgpOwp8 ICAqCnwgICogUHJpb3IgdG8gdXNpbmcgdGhlIGRvLXdoaWxlIHRoZSBjb21waWxlciB3b3Vs ZCBnZXQgdXBzZXQgYXQgdGhlCnwgICogImVsc2UiIGJlY2F1c2UgaXQgaW50ZXJwcmV0ZWQg dGhlICJpZiIgc3RhdGVtZW50IGFzIGJlaW5nIGFsbAp8ICAqIGRvbmUgd2hlbiBpdCByZWFj aGVkIHRoZSAnOycgYWZ0ZXIgdGhlIHl5bGVzcygpIGNhbGwuCnwgICovCnwgCnwgLyogUmV0 dXJuIGFsbCBidXQgdGhlIGZpcnN0ICduJyBtYXRjaGVkIGNoYXJhY3RlcnMgYmFjayB0byB0 aGUgaW5wdXQgc3RyZWFtLiAqLwp8IAp8ICNkZWZpbmUgeXlsZXNzKG4pIFwKfCAJZG8gXAp8 IAkJeyBcCnwgCQkvKiBVbmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQuICovIFwK fCAJCSp5eV9jcCA9IHl5X2hvbGRfY2hhcjsgXAp8IAkJWVlfUkVTVE9SRV9ZWV9NT1JFX09G RlNFVCBcCnwgCQl5eV9jX2J1Zl9wID0geXlfY3AgPSB5eV9icCArIG4gLSBZWV9NT1JFX0FE SjsgXAp8IAkJWVlfRE9fQkVGT1JFX0FDVElPTjsgLyogc2V0IHVwIHl5dGV4dCBhZ2FpbiAq LyBcCnwgCQl9IFwKfCAJd2hpbGUgKCAwICkKfCAKfCAjZGVmaW5lIHVucHV0KGMpIHl5dW5w dXQoIGMsIHl5dGV4dF9wdHIgKQp8IAp8IC8qIFRoZSBmb2xsb3dpbmcgaXMgYmVjYXVzZSB3 ZSBjYW5ub3QgcG9ydGFibHkgZ2V0IG91ciBoYW5kcyBvbiBzaXplX3QKfCAgKiAod2l0aG91 dCBhdXRvY29uZidzIGhlbHAsIHdoaWNoIGlzbid0IGF2YWlsYWJsZSBiZWNhdXNlIHdlIHdh bnQKfCAgKiBmbGV4LWdlbmVyYXRlZCBzY2FubmVycyB0byBjb21waWxlIG9uIHRoZWlyIG93 bikuCnwgICovCnwgdHlwZWRlZiB1bnNpZ25lZCBpbnQgeXlfc2l6ZV90Owp8IAp8IAp8IHN0 cnVjdCB5eV9idWZmZXJfc3RhdGUKfCAJewp8IAlGSUxFICp5eV9pbnB1dF9maWxlOwp8IAp8 IAljaGFyICp5eV9jaF9idWY7CQkvKiBpbnB1dCBidWZmZXIgKi8KfCAJY2hhciAqeXlfYnVm X3BvczsJCS8qIGN1cnJlbnQgcG9zaXRpb24gaW4gaW5wdXQgYnVmZmVyICovCnwgCnwgCS8q IFNpemUgb2YgaW5wdXQgYnVmZmVyIGluIGJ5dGVzLCBub3QgaW5jbHVkaW5nIHJvb20gZm9y IEVPQgp8IAkgKiBjaGFyYWN0ZXJzLgp8IAkgKi8KfCAJeXlfc2l6ZV90IHl5X2J1Zl9zaXpl Owp8IAp8IAkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyByZWFkIGludG8geXlfY2hfYnVmLCBu b3QgaW5jbHVkaW5nIEVPQgp8IAkgKiBjaGFyYWN0ZXJzLgp8IAkgKi8KfCAJaW50IHl5X25f Y2hhcnM7CnwgCnwgCS8qIFdoZXRoZXIgd2UgIm93biIgdGhlIGJ1ZmZlciAtIGkuZS4sIHdl IGtub3cgd2UgY3JlYXRlZCBpdCwKfCAJICogYW5kIGNhbiByZWFsbG9jKCkgaXQgdG8gZ3Jv dyBpdCwgYW5kIHNob3VsZCBmcmVlKCkgaXQgdG8KfCAJICogZGVsZXRlIGl0Lgp8IAkgKi8K fCAJaW50IHl5X2lzX291cl9idWZmZXI7CnwgCnwgCS8qIFdoZXRoZXIgdGhpcyBpcyBhbiAi aW50ZXJhY3RpdmUiIGlucHV0IHNvdXJjZTsgaWYgc28sIGFuZAp8IAkgKiBpZiB3ZSdyZSB1 c2luZyBzdGRpbyBmb3IgaW5wdXQsIHRoZW4gd2Ugd2FudCB0byB1c2UgZ2V0YygpCnwgCSAq IGluc3RlYWQgb2YgZnJlYWQoKSwgdG8gbWFrZSBzdXJlIHdlIHN0b3AgZmV0Y2hpbmcgaW5w dXQgYWZ0ZXIKfCAJICogZWFjaCBuZXdsaW5lLgp8IAkgKi8KfCAJaW50IHl5X2lzX2ludGVy YWN0aXZlOwp8IAp8IAkvKiBXaGV0aGVyIHdlJ3JlIGNvbnNpZGVyZWQgdG8gYmUgYXQgdGhl IGJlZ2lubmluZyBvZiBhIGxpbmUuCnwgCSAqIElmIHNvLCAnXicgcnVsZXMgd2lsbCBiZSBh Y3RpdmUgb24gdGhlIG5leHQgbWF0Y2gsIG90aGVyd2lzZQp8IAkgKiBub3QuCnwgCSAqLwp8 IAlpbnQgeXlfYXRfYm9sOwp8IAp8IAkvKiBXaGV0aGVyIHRvIHRyeSB0byBmaWxsIHRoZSBp bnB1dCBidWZmZXIgd2hlbiB3ZSByZWFjaCB0aGUKfCAJICogZW5kIG9mIGl0Lgp8IAkgKi8K fCAJaW50IHl5X2ZpbGxfYnVmZmVyOwp8IAp8IAlpbnQgeXlfYnVmZmVyX3N0YXR1czsKfCAj ZGVmaW5lIFlZX0JVRkZFUl9ORVcgMAp8ICNkZWZpbmUgWVlfQlVGRkVSX05PUk1BTCAxCnwg CS8qIFdoZW4gYW4gRU9GJ3MgYmVlbiBzZWVuIGJ1dCB0aGVyZSdzIHN0aWxsIHNvbWUgdGV4 dCB0byBwcm9jZXNzCnwgCSAqIHRoZW4gd2UgbWFyayB0aGUgYnVmZmVyIGFzIFlZX0VPRl9Q RU5ESU5HLCB0byBpbmRpY2F0ZSB0aGF0IHdlCnwgCSAqIHNob3VsZG4ndCB0cnkgcmVhZGlu ZyBmcm9tIHRoZSBpbnB1dCBzb3VyY2UgYW55IG1vcmUuICBXZSBtaWdodAp8IAkgKiBzdGls bCBoYXZlIGEgYnVuY2ggb2YgdG9rZW5zIHRvIG1hdGNoLCB0aG91Z2gsIGJlY2F1c2Ugb2YK fCAJICogcG9zc2libGUgYmFja2luZy11cC4KfCAJICoKfCAJICogV2hlbiB3ZSBhY3R1YWxs eSBzZWUgdGhlIEVPRiwgd2UgY2hhbmdlIHRoZSBzdGF0dXMgdG8gIm5ldyIKfCAJICogKHZp YSB5eXJlc3RhcnQoKSksIHNvIHRoYXQgdGhlIHVzZXIgY2FuIGNvbnRpbnVlIHNjYW5uaW5n IGJ5CnwgCSAqIGp1c3QgcG9pbnRpbmcgeXlpbiBhdCBhIG5ldyBpbnB1dCBmaWxlLgp8IAkg Ki8KfCAjZGVmaW5lIFlZX0JVRkZFUl9FT0ZfUEVORElORyAyCnwgCX07CnwgCnwgc3RhdGlj IFlZX0JVRkZFUl9TVEFURSB5eV9jdXJyZW50X2J1ZmZlciA9IDA7CnwgCnwgLyogV2UgcHJv dmlkZSBtYWNyb3MgZm9yIGFjY2Vzc2luZyBidWZmZXIgc3RhdGVzIGluIGNhc2UgaW4gdGhl CnwgICogZnV0dXJlIHdlIHdhbnQgdG8gcHV0IHRoZSBidWZmZXIgc3RhdGVzIGluIGEgbW9y ZSBnZW5lcmFsCnwgICogInNjYW5uZXIgc3RhdGUiLgp8ICAqLwp8ICNkZWZpbmUgWVlfQ1VS UkVOVF9CVUZGRVIgeXlfY3VycmVudF9idWZmZXIKfCAKfCAKfCAvKiB5eV9ob2xkX2NoYXIg aG9sZHMgdGhlIGNoYXJhY3RlciBsb3N0IHdoZW4geXl0ZXh0IGlzIGZvcm1lZC4gKi8KfCBz dGF0aWMgY2hhciB5eV9ob2xkX2NoYXI7CnwgCnwgc3RhdGljIGludCB5eV9uX2NoYXJzOwkJ LyogbnVtYmVyIG9mIGNoYXJhY3RlcnMgcmVhZCBpbnRvIHl5X2NoX2J1ZiAqLwp8IAp8IAp8 IGludCB5eWxlbmc7CnwgCnwgLyogUG9pbnRzIHRvIGN1cnJlbnQgY2hhcmFjdGVyIGluIGJ1 ZmZlci4gKi8KfCBzdGF0aWMgY2hhciAqeXlfY19idWZfcCA9IChjaGFyICopIDA7Cnwgc3Rh dGljIGludCB5eV9pbml0ID0gMTsJCS8qIHdoZXRoZXIgd2UgbmVlZCB0byBpbml0aWFsaXpl ICovCnwgc3RhdGljIGludCB5eV9zdGFydCA9IDA7CS8qIHN0YXJ0IHN0YXRlIG51bWJlciAq Lwp8IAp8IC8qIEZsYWcgd2hpY2ggaXMgdXNlZCB0byBhbGxvdyB5eXdyYXAoKSdzIHRvIGRv IGJ1ZmZlciBzd2l0Y2hlcwp8ICAqIGluc3RlYWQgb2Ygc2V0dGluZyB1cCBhIGZyZXNoIHl5 aW4uICBBIGJpdCBvZiBhIGhhY2sgLi4uCnwgICovCnwgc3RhdGljIGludCB5eV9kaWRfYnVm ZmVyX3N3aXRjaF9vbl9lb2Y7CnwgCnwgdm9pZCB5eXJlc3RhcnQgWVlfUFJPVE8oKCBGSUxF ICppbnB1dF9maWxlICkpOwp8IAp8IHZvaWQgeXlfc3dpdGNoX3RvX2J1ZmZlciBZWV9QUk9U TygoIFlZX0JVRkZFUl9TVEFURSBuZXdfYnVmZmVyICkpOwp8IHZvaWQgeXlfbG9hZF9idWZm ZXJfc3RhdGUgWVlfUFJPVE8oKCB2b2lkICkpOwp8IFlZX0JVRkZFUl9TVEFURSB5eV9jcmVh dGVfYnVmZmVyIFlZX1BST1RPKCggRklMRSAqZmlsZSwgaW50IHNpemUgKSk7Cnwgdm9pZCB5 eV9kZWxldGVfYnVmZmVyIFlZX1BST1RPKCggWVlfQlVGRkVSX1NUQVRFIGIgKSk7Cnwgdm9p ZCB5eV9pbml0X2J1ZmZlciBZWV9QUk9UTygoIFlZX0JVRkZFUl9TVEFURSBiLCBGSUxFICpm aWxlICkpOwp8IHZvaWQgeXlfZmx1c2hfYnVmZmVyIFlZX1BST1RPKCggWVlfQlVGRkVSX1NU QVRFIGIgKSk7CnwgI2RlZmluZSBZWV9GTFVTSF9CVUZGRVIgeXlfZmx1c2hfYnVmZmVyKCB5 eV9jdXJyZW50X2J1ZmZlciApCnwgCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnVmZmVy IFlZX1BST1RPKCggY2hhciAqYmFzZSwgeXlfc2l6ZV90IHNpemUgKSk7CnwgWVlfQlVGRkVS X1NUQVRFIHl5X3NjYW5fc3RyaW5nIFlZX1BST1RPKCggeXljb25zdCBjaGFyICp5eV9zdHIg KSk7CnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMgWVlfUFJPVE8oKCB5eWNvbnN0 IGNoYXIgKmJ5dGVzLCBpbnQgbGVuICkpOwp8IAp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X2Fs bG9jIFlZX1BST1RPKCggeXlfc2l6ZV90ICkpOwp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X3Jl YWxsb2MgWVlfUFJPVE8oKCB2b2lkICosIHl5X3NpemVfdCApKSBfX3VudXNlZDsKfCBzdGF0 aWMgdm9pZCB5eV9mbGV4X2ZyZWUgWVlfUFJPVE8oKCB2b2lkICogKSk7CnwgCnwgI2RlZmlu ZSB5eV9uZXdfYnVmZmVyIHl5X2NyZWF0ZV9idWZmZXIKfCAKfCAjZGVmaW5lIHl5X3NldF9p bnRlcmFjdGl2ZShpc19pbnRlcmFjdGl2ZSkgXAp8IAl7IFwKfCAJaWYgKCAhIHl5X2N1cnJl bnRfYnVmZmVyICkgXAp8IAkJeXlfY3VycmVudF9idWZmZXIgPSB5eV9jcmVhdGVfYnVmZmVy KCB5eWluLCBZWV9CVUZfU0laRSApOyBcCnwgCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9pc19p bnRlcmFjdGl2ZSA9IGlzX2ludGVyYWN0aXZlOyBcCnwgCX0KfCAKfCAjZGVmaW5lIHl5X3Nl dF9ib2woYXRfYm9sKSBcCnwgCXsgXAp8IAlpZiAoICEgeXlfY3VycmVudF9idWZmZXIgKSBc CnwgCQl5eV9jdXJyZW50X2J1ZmZlciA9IHl5X2NyZWF0ZV9idWZmZXIoIHl5aW4sIFlZX0JV Rl9TSVpFICk7IFwKfCAJeXlfY3VycmVudF9idWZmZXItPnl5X2F0X2JvbCA9IGF0X2JvbDsg XAp8IAl9CnwgCnwgI2RlZmluZSBZWV9BVF9CT0woKSAoeXlfY3VycmVudF9idWZmZXItPnl5 X2F0X2JvbCkKfCAKfCAKfCAjZGVmaW5lIFlZX1VTRVNfUkVKRUNUCnwgdHlwZWRlZiB1bnNp Z25lZCBjaGFyIFlZX0NIQVI7CnwgRklMRSAqeXlpbiA9IChGSUxFICopIDAsICp5eW91dCA9 IChGSUxFICopIDA7CnwgdHlwZWRlZiBpbnQgeXlfc3RhdGVfdHlwZTsKfCBleHRlcm4gY2hh ciAqeXl0ZXh0Owp8ICNkZWZpbmUgeXl0ZXh0X3B0ciB5eXRleHQKfCAKfCBzdGF0aWMgeXlf c3RhdGVfdHlwZSB5eV9nZXRfcHJldmlvdXNfc3RhdGUgWVlfUFJPVE8oKCB2b2lkICkpOwp8 IHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X3RyeV9OVUxfdHJhbnMgWVlfUFJPVE8oKCB5eV9z dGF0ZV90eXBlIGN1cnJlbnRfc3RhdGUgKSk7Cnwgc3RhdGljIGludCB5eV9nZXRfbmV4dF9i dWZmZXIgWVlfUFJPVE8oKCB2b2lkICkpOwp8IHN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vycm9y IFlZX1BST1RPKCggeXljb25zdCBjaGFyIG1zZ1tdICkpIF9fZGVhZDI7CnwgCnwgLyogRG9u ZSBhZnRlciB0aGUgY3VycmVudCBwYXR0ZXJuIGhhcyBiZWVuIG1hdGNoZWQgYW5kIGJlZm9y ZSB0aGUKfCAgKiBjb3JyZXNwb25kaW5nIGFjdGlvbiAtIHNldHMgdXAgeXl0ZXh0Lgp8ICAq Lwp8ICNkZWZpbmUgWVlfRE9fQkVGT1JFX0FDVElPTiBcCnwgCXl5dGV4dF9wdHIgPSB5eV9i cDsgXAp8IAl5eXRleHRfcHRyIC09IHl5X21vcmVfbGVuOyBcCnwgCXl5bGVuZyA9IChpbnQp ICh5eV9jcCAtIHl5dGV4dF9wdHIpOyBcCnwgCXl5X2hvbGRfY2hhciA9ICp5eV9jcDsgXAp8 IAkqeXlfY3AgPSAnXDAnOyBcCnwgCXl5X2NfYnVmX3AgPSB5eV9jcDsKfCAKfCAjZGVmaW5l IFlZX05VTV9SVUxFUyA4CnwgI2RlZmluZSBZWV9FTkRfT0ZfQlVGRkVSIDkKfCBzdGF0aWMg eXljb25zdCBzaG9ydCBpbnQgeXlfYWNjbGlzdFsyM10gPQp8ICAgICB7ICAgMCwKfCAgICAg ICAgIDksICAgIDcsICAgIDgsICAgIDgsICAgIDEsICAgIDcsICAgIDgsICAgIDIsICAgIDcs ICAgIDgsCnwgICAgICAgICAzLCAgICA3LCAgICA4LCAgICA0LCAgICA3LCAgICA4LCAgICA1 LCAgICA3LCAgICA4LCAgICA2LAp8ICAgICAgICAgNywgICAgOAp8ICAgICB9IDsKfCAKfCBz dGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlfYWNjZXB0WzE0XSA9CnwgICAgIHsgICAwLAp8 ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMiwgICAgNCwgICAgNSwgICAgOCwgICAxMSwg ICAxNCwgICAxNywKfCAgICAgICAgMjAsICAgMjMsICAgMjMKfCAgICAgfSA7CnwgCnwgc3Rh dGljIHl5Y29uc3QgaW50IHl5X2VjWzI1Nl0gPQp8ICAgICB7ICAgMCwKfCAgICAgICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDIs CnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8 ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAg ICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDMsICAgIDQsICAg IDUsICAgIDYsCnwgCnwgICAgICAgICA3LCAgICA4LCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwg ICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAg ICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8IAp8ICAgICAgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAg ICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAg ICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxCnwgICAgIH0gOwp8IAp8IHN0YXRpYyB5 eWNvbnN0IGludCB5eV9tZXRhWzldID0KfCAgICAgeyAgIDAsCnwgICAgICAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxCnwgICAgIH0gOwp8IAp8IHN0 YXRpYyB5eWNvbnN0IHNob3J0IGludCB5eV9iYXNlWzEzXSA9CnwgICAgIHsgICAwLAp8ICAg ICAgICAgMCwgICAgMCwgICAgOSwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAx MCwgICAxMCwKfCAgICAgICAgMTAsICAgMTAKfCAgICAgfSA7CnwgCnwgc3RhdGljIHl5Y29u c3Qgc2hvcnQgaW50IHl5X2RlZlsxM10gPQp8ICAgICB7ICAgMCwKfCAgICAgICAgMTIsICAg IDEsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsCnwg ICAgICAgIDEyLCAgICAwCnwgICAgIH0gOwp8IAp8IHN0YXRpYyB5eWNvbnN0IHNob3J0IGlu dCB5eV9ueHRbMTldID0KfCAgICAgeyAgIDAsCnwgICAgICAgICA0LCAgICA1LCAgICA2LCAg ICA3LCAgICA4LCAgICA5LCAgIDEwLCAgIDExLCAgIDEyLCAgICAzLAp8ICAgICAgICAxMiwg ICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMgp8ICAgICB9IDsKfCAK fCBzdGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlfY2hrWzE5XSA9CnwgICAgIHsgICAwLAp8 ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMywgICAxMiwKfCAgICAgICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIs ICAgMTIsICAgMTIKfCAgICAgfSA7CnwgCnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfc3Rh dGVfYnVmW1lZX0JVRl9TSVpFICsgMl0sICp5eV9zdGF0ZV9wdHI7Cnwgc3RhdGljIGNoYXIg Knl5X2Z1bGxfbWF0Y2g7Cnwgc3RhdGljIGludCB5eV9scDsKfCAjZGVmaW5lIFJFSkVDVCBc CnwgeyBcCnwgKnl5X2NwID0geXlfaG9sZF9jaGFyOyAvKiB1bmRvIGVmZmVjdHMgb2Ygc2V0 dGluZyB1cCB5eXRleHQgKi8gXAp8IHl5X2NwID0geXlfZnVsbF9tYXRjaDsgLyogcmVzdG9y ZSBwb3NzLiBiYWNrZWQtb3ZlciB0ZXh0ICovIFwKfCArK3l5X2xwOyBcCnwgZ290byBmaW5k X3J1bGU7IFwKfCB9Cnwgc3RhdGljIGludCB5eV9tb3JlX2ZsYWcgPSAwOwp8IHN0YXRpYyBp bnQgeXlfbW9yZV9sZW4gPSAwOwp8ICNkZWZpbmUgeXltb3JlKCkgKHl5X21vcmVfZmxhZyA9 IDEpCnwgI2RlZmluZSBZWV9NT1JFX0FESiB5eV9tb3JlX2xlbgp8ICNkZWZpbmUgWVlfUkVT VE9SRV9ZWV9NT1JFX09GRlNFVAp8IGNoYXIgKnl5dGV4dDsKfCAjbGluZSAxICJjb25mdGVz dC5sIgp8ICNkZWZpbmUgSU5JVElBTCAwCnwgI2xpbmUgMzkxICJsZXgueXkuYyIKfCAKfCAv KiBNYWNyb3MgYWZ0ZXIgdGhpcyBwb2ludCBjYW4gYWxsIGJlIG92ZXJyaWRkZW4gYnkgdXNl ciBkZWZpbml0aW9ucyBpbgp8ICAqIHNlY3Rpb24gMS4KfCAgKi8KfCAKfCAjaWZuZGVmIFlZ X1NLSVBfWVlXUkFQCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiBpbnQgeXl3 cmFwIFlZX1BST1RPKCggdm9pZCApKTsKfCAjZWxzZQp8IGV4dGVybiBpbnQgeXl3cmFwIFlZ X1BST1RPKCggdm9pZCApKTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAjaWZuZGVmIFlZX05P X1VOUFVUCnwgc3RhdGljIHZvaWQgeXl1bnB1dCBZWV9QUk9UTygoIGludCBjLCBjaGFyICpi dWZfcHRyICkpOwp8ICNlbmRpZgp8IAp8ICNpZm5kZWYgeXl0ZXh0X3B0cgp8IHN0YXRpYyB2 b2lkIHl5X2ZsZXhfc3RybmNweSBZWV9QUk9UTygoIGNoYXIgKiwgeXljb25zdCBjaGFyICos IGludCApKTsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgWVlfTkVFRF9TVFJMRU4KfCBzdGF0aWMg aW50IHl5X2ZsZXhfc3RybGVuIFlZX1BST1RPKCggeXljb25zdCBjaGFyICogKSk7CnwgI2Vu ZGlmCnwgCnwgI2lmbmRlZiBZWV9OT19JTlBVVAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IHN0 YXRpYyBpbnQgeXlpbnB1dCBZWV9QUk9UTygoIHZvaWQgKSk7CnwgI2Vsc2UKfCBzdGF0aWMg aW50IGlucHV0IFlZX1BST1RPKCggdm9pZCApKTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAj aWYgWVlfU1RBQ0tfVVNFRAp8IHN0YXRpYyBpbnQgeXlfc3RhcnRfc3RhY2tfcHRyID0gMDsK fCBzdGF0aWMgaW50IHl5X3N0YXJ0X3N0YWNrX2RlcHRoID0gMDsKfCBzdGF0aWMgaW50ICp5 eV9zdGFydF9zdGFjayA9IDA7CnwgI2lmbmRlZiBZWV9OT19QVVNIX1NUQVRFCnwgc3RhdGlj IHZvaWQgeXlfcHVzaF9zdGF0ZSBZWV9QUk9UTygoIGludCBuZXdfc3RhdGUgKSk7CnwgI2Vu ZGlmCnwgI2lmbmRlZiBZWV9OT19QT1BfU1RBVEUKfCBzdGF0aWMgdm9pZCB5eV9wb3Bfc3Rh dGUgWVlfUFJPVE8oKCB2b2lkICkpOwp8ICNlbmRpZgp8ICNpZm5kZWYgWVlfTk9fVE9QX1NU QVRFCnwgc3RhdGljIGludCB5eV90b3Bfc3RhdGUgWVlfUFJPVE8oKCB2b2lkICkpOwp8ICNl bmRpZgp8IAp8ICNlbHNlCnwgI2RlZmluZSBZWV9OT19QVVNIX1NUQVRFIDEKfCAjZGVmaW5l IFlZX05PX1BPUF9TVEFURSAxCnwgI2RlZmluZSBZWV9OT19UT1BfU1RBVEUgMQp8ICNlbmRp Zgp8IAp8ICNpZmRlZiBZWV9NQUxMT0NfREVDTAp8IFlZX01BTExPQ19ERUNMCnwgI2Vsc2UK fCAjaWYgX19TVERDX18KfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2luY2x1ZGUgPHN0ZGxp Yi5oPgp8ICNlbmRpZgp8ICNlbHNlCnwgLyogSnVzdCB0cnkgdG8gZ2V0IGJ5IHdpdGhvdXQg ZGVjbGFyaW5nIHRoZSByb3V0aW5lcy4gIFRoaXMgd2lsbCBmYWlsCnwgICogbWlzZXJhYmx5 IG9uIG5vbi1BTlNJIHN5c3RlbXMgZm9yIHdoaWNoIHNpemVvZihzaXplX3QpICE9IHNpemVv ZihpbnQpCnwgICogb3Igc2l6ZW9mKHZvaWQqKSAhPSBzaXplb2YoaW50KS4KfCAgKi8KfCAj ZW5kaWYKfCAjZW5kaWYKfCAKfCAvKiBBbW91bnQgb2Ygc3R1ZmYgdG8gc2x1cnAgdXAgd2l0 aCBlYWNoIHJlYWQuICovCnwgI2lmbmRlZiBZWV9SRUFEX0JVRl9TSVpFCnwgI2RlZmluZSBZ WV9SRUFEX0JVRl9TSVpFIDgxOTIKfCAjZW5kaWYKfCAKfCAvKiBDb3B5IHdoYXRldmVyIHRo ZSBsYXN0IHJ1bGUgbWF0Y2hlZCB0byB0aGUgc3RhbmRhcmQgb3V0cHV0LiAqLwp8IAp8ICNp Zm5kZWYgRUNITwp8IC8qIFRoaXMgdXNlZCB0byBiZSBhbiBmcHV0cygpLCBidXQgc2luY2Ug dGhlIHN0cmluZyBtaWdodCBjb250YWluIE5VTCdzLAp8ICAqIHdlIG5vdyB1c2UgZndyaXRl KCkuCnwgICovCnwgI2RlZmluZSBFQ0hPICh2b2lkKSBmd3JpdGUoIHl5dGV4dCwgeXlsZW5n LCAxLCB5eW91dCApCnwgI2VuZGlmCnwgCnwgLyogR2V0cyBpbnB1dCBhbmQgc3R1ZmZzIGl0 IGludG8gImJ1ZiIuICBudW1iZXIgb2YgY2hhcmFjdGVycyByZWFkLCBvciBZWV9OVUxMLAp8 ICAqIGlzIHJldHVybmVkIGluICJyZXN1bHQiLgp8ICAqLwp8ICNpZm5kZWYgWVlfSU5QVVQK fCAjZGVmaW5lIFlZX0lOUFVUKGJ1ZixyZXN1bHQsbWF4X3NpemUpIFwKfCAJaWYgKCB5eV9j dXJyZW50X2J1ZmZlci0+eXlfaXNfaW50ZXJhY3RpdmUgKSBcCnwgCQl7IFwKfCAJCWludCBj ID0gJyonLCBuOyBcCnwgCQlmb3IgKCBuID0gMDsgbiA8IG1heF9zaXplICYmIFwKfCAJCQkg ICAgIChjID0gZ2V0YyggeXlpbiApKSAhPSBFT0YgJiYgYyAhPSAnXG4nOyArK24gKSBcCnwg CQkJYnVmW25dID0gKGNoYXIpIGM7IFwKfCAJCWlmICggYyA9PSAnXG4nICkgXAp8IAkJCWJ1 ZltuKytdID0gKGNoYXIpIGM7IFwKfCAJCWlmICggYyA9PSBFT0YgJiYgZmVycm9yKCB5eWlu ICkgKSBcCnwgCQkJWVlfRkFUQUxfRVJST1IoICJpbnB1dCBpbiBmbGV4IHNjYW5uZXIgZmFp bGVkIiApOyBcCnwgCQlyZXN1bHQgPSBuOyBcCnwgCQl9IFwKfCAJZWxzZSBpZiAoICgocmVz dWx0ID0gZnJlYWQoIGJ1ZiwgMSwgbWF4X3NpemUsIHl5aW4gKSkgPT0gMCkgXAp8IAkJICAm JiBmZXJyb3IoIHl5aW4gKSApIFwKfCAJCVlZX0ZBVEFMX0VSUk9SKCAiaW5wdXQgaW4gZmxl eCBzY2FubmVyIGZhaWxlZCIgKTsKfCAjZW5kaWYKfCAKfCAvKiBObyBzZW1pLWNvbG9uIGFm dGVyIHJldHVybjsgY29ycmVjdCB1c2FnZSBpcyB0byB3cml0ZSAieXl0ZXJtaW5hdGUoKTsi IC0KfCAgKiB3ZSBkb24ndCB3YW50IGFuIGV4dHJhICc7JyBhZnRlciB0aGUgInJldHVybiIg YmVjYXVzZSB0aGF0IHdpbGwgY2F1c2UKfCAgKiBzb21lIGNvbXBpbGVycyB0byBjb21wbGFp biBhYm91dCB1bnJlYWNoYWJsZSBzdGF0ZW1lbnRzLgp8ICAqLwp8ICNpZm5kZWYgeXl0ZXJt aW5hdGUKfCAjZGVmaW5lIHl5dGVybWluYXRlKCkgcmV0dXJuIFlZX05VTEwKfCAjZW5kaWYK fCAKfCAvKiBOdW1iZXIgb2YgZW50cmllcyBieSB3aGljaCBzdGFydC1jb25kaXRpb24gc3Rh Y2sgZ3Jvd3MuICovCnwgI2lmbmRlZiBZWV9TVEFSVF9TVEFDS19JTkNSCnwgI2RlZmluZSBZ WV9TVEFSVF9TVEFDS19JTkNSIDI1CnwgI2VuZGlmCnwgCnwgLyogUmVwb3J0IGEgZmF0YWwg ZXJyb3IuICovCnwgI2lmbmRlZiBZWV9GQVRBTF9FUlJPUgp8ICNkZWZpbmUgWVlfRkFUQUxf RVJST1IobXNnKSB5eV9mYXRhbF9lcnJvciggbXNnICkKfCAjZW5kaWYKfCAKfCAvKiBEZWZh dWx0IGRlY2xhcmF0aW9uIG9mIGdlbmVyYXRlZCBzY2FubmVyIC0gYSBkZWZpbmUgc28gdGhl IHVzZXIgY2FuCnwgICogZWFzaWx5IGFkZCBwYXJhbWV0ZXJzLgp8ICAqLwp8ICNpZm5kZWYg WVlfREVDTAp8ICNkZWZpbmUgWVlfREVDTCBpbnQgeXlsZXggWVlfUFJPVE8oKCB2b2lkICkp CnwgI2VuZGlmCnwgCnwgLyogQ29kZSBleGVjdXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVh Y2ggcnVsZSwgYWZ0ZXIgeXl0ZXh0IGFuZCB5eWxlbmcKfCAgKiBoYXZlIGJlZW4gc2V0IHVw Lgp8ICAqLwp8ICNpZm5kZWYgWVlfVVNFUl9BQ1RJT04KfCAjZGVmaW5lIFlZX1VTRVJfQUNU SU9OCnwgI2VuZGlmCnwgCnwgLyogQ29kZSBleGVjdXRlZCBhdCB0aGUgZW5kIG9mIGVhY2gg cnVsZS4gKi8KfCAjaWZuZGVmIFlZX0JSRUFLCnwgI2RlZmluZSBZWV9CUkVBSyBicmVhazsK fCAjZW5kaWYKfCAKfCAjZGVmaW5lIFlZX1JVTEVfU0VUVVAgXAp8IAlZWV9VU0VSX0FDVElP Tgp8IAp8IFlZX0RFQ0wKfCAJewp8IAl5eV9zdGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGU7 CnwgCWNoYXIgKnl5X2NwLCAqeXlfYnA7CnwgCWludCB5eV9hY3Q7CnwgCnwgI2xpbmUgMSAi Y29uZnRlc3QubCIKfCAKfCAjbGluZSA1NDQgImxleC55eS5jIgp8IAp8IAlpZiAoIHl5X2lu aXQgKQp8IAkJewp8IAkJeXlfaW5pdCA9IDA7CnwgCnwgI2lmZGVmIFlZX1VTRVJfSU5JVAp8 IAkJWVlfVVNFUl9JTklUOwp8ICNlbmRpZgp8IAp8IAkJaWYgKCAhIHl5X3N0YXJ0ICkKfCAJ CQl5eV9zdGFydCA9IDE7CS8qIGZpcnN0IHN0YXJ0IHN0YXRlICovCnwgCnwgCQlpZiAoICEg eXlpbiApCnwgCQkJeXlpbiA9IHN0ZGluOwp8IAp8IAkJaWYgKCAhIHl5b3V0ICkKfCAJCQl5 eW91dCA9IHN0ZG91dDsKfCAKfCAJCWlmICggISB5eV9jdXJyZW50X2J1ZmZlciApCnwgCQkJ eXlfY3VycmVudF9idWZmZXIgPQp8IAkJCQl5eV9jcmVhdGVfYnVmZmVyKCB5eWluLCBZWV9C VUZfU0laRSApOwp8IAp8IAkJeXlfbG9hZF9idWZmZXJfc3RhdGUoKTsKfCAJCX0KfCAKfCAJ d2hpbGUgKCAxICkJCS8qIGxvb3BzIHVudGlsIGVuZC1vZi1maWxlIGlzIHJlYWNoZWQgKi8K fCAJCXsKfCAJCXl5X21vcmVfbGVuID0gMDsKfCAJCWlmICggeXlfbW9yZV9mbGFnICkKfCAJ CQl7CnwgCQkJeXlfbW9yZV9sZW4gPSB5eV9jX2J1Zl9wIC0geXl0ZXh0X3B0cjsKfCAJCQl5 eV9tb3JlX2ZsYWcgPSAwOwp8IAkJCX0KfCAJCXl5X2NwID0geXlfY19idWZfcDsKfCAKfCAJ CS8qIFN1cHBvcnQgb2YgeXl0ZXh0LiAqLwp8IAkJKnl5X2NwID0geXlfaG9sZF9jaGFyOwp8 IAp8IAkJLyogeXlfYnAgcG9pbnRzIHRvIHRoZSBwb3NpdGlvbiBpbiB5eV9jaF9idWYgb2Yg dGhlIHN0YXJ0IG9mCnwgCQkgKiB0aGUgY3VycmVudCBydW4uCnwgCQkgKi8KfCAJCXl5X2Jw ID0geXlfY3A7CnwgCnwgCQl5eV9jdXJyZW50X3N0YXRlID0geXlfc3RhcnQ7CnwgCQl5eV9z dGF0ZV9wdHIgPSB5eV9zdGF0ZV9idWY7CnwgCQkqeXlfc3RhdGVfcHRyKysgPSB5eV9jdXJy ZW50X3N0YXRlOwp8IHl5X21hdGNoOgp8IAkJZG8KfCAJCQl7CnwgCQkJWVlfQ0hBUiB5eV9j ID0geXlfZWNbWVlfU0NfVE9fVUkoKnl5X2NwKV07CnwgCQkJd2hpbGUgKCB5eV9jaGtbeXlf YmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1cnJlbnRfc3RhdGUgKQp8 IAkJCQl7CnwgCQkJCXl5X2N1cnJlbnRfc3RhdGUgPSAoaW50KSB5eV9kZWZbeXlfY3VycmVu dF9zdGF0ZV07CnwgCQkJCWlmICggeXlfY3VycmVudF9zdGF0ZSA+PSAxMyApCnwgCQkJCQl5 eV9jID0geXlfbWV0YVsodW5zaWduZWQgaW50KSB5eV9jXTsKfCAJCQkJfQp8IAkJCXl5X2N1 cnJlbnRfc3RhdGUgPSB5eV9ueHRbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArICh1bnNp Z25lZCBpbnQpIHl5X2NdOwp8IAkJCSp5eV9zdGF0ZV9wdHIrKyA9IHl5X2N1cnJlbnRfc3Rh dGU7CnwgCQkJKyt5eV9jcDsKfCAJCQl9CnwgCQl3aGlsZSAoIHl5X2Jhc2VbeXlfY3VycmVu dF9zdGF0ZV0gIT0gMTAgKTsKfCAKfCB5eV9maW5kX2FjdGlvbjoKfCAJCXl5X2N1cnJlbnRf c3RhdGUgPSAqLS15eV9zdGF0ZV9wdHI7CnwgCQl5eV9scCA9IHl5X2FjY2VwdFt5eV9jdXJy ZW50X3N0YXRlXTsKfCBnb3RvIGZpbmRfcnVsZTsgLyogYXZvaWQgYGRlZmluZWQgYnV0IG5v dCB1c2VkJyB3YXJuaW5nICovCnwgZmluZF9ydWxlOiAvKiB3ZSBicmFuY2ggdG8gdGhpcyBs YWJlbCB3aGVuIGJhY2tpbmcgdXAgKi8KfCAJCWZvciAoIDsgOyApIC8qIHVudGlsIHdlIGZp bmQgd2hhdCBydWxlIHdlIG1hdGNoZWQgKi8KfCAJCQl7CnwgCQkJaWYgKCB5eV9scCAmJiB5 eV9scCA8IHl5X2FjY2VwdFt5eV9jdXJyZW50X3N0YXRlICsgMV0gKQp8IAkJCQl7CnwgCQkJ CXl5X2FjdCA9IHl5X2FjY2xpc3RbeXlfbHBdOwp8IAkJCQkJewp8IAkJCQkJeXlfZnVsbF9t YXRjaCA9IHl5X2NwOwp8IAkJCQkJYnJlYWs7CnwgCQkJCQl9CnwgCQkJCX0KfCAJCQktLXl5 X2NwOwp8IAkJCXl5X2N1cnJlbnRfc3RhdGUgPSAqLS15eV9zdGF0ZV9wdHI7CnwgCQkJeXlf bHAgPSB5eV9hY2NlcHRbeXlfY3VycmVudF9zdGF0ZV07CnwgCQkJfQp8IAp8IAkJWVlfRE9f QkVGT1JFX0FDVElPTjsKfCAKfCAKfCBkb19hY3Rpb246CS8qIFRoaXMgbGFiZWwgaXMgdXNl ZCBvbmx5IHRvIGFjY2VzcyBFT0YgYWN0aW9ucy4gKi8KfCAKfCAKfCAJCXN3aXRjaCAoIHl5 X2FjdCApCnwgCXsgLyogYmVnaW5uaW5nIG9mIGFjdGlvbiBzd2l0Y2ggKi8KfCBjYXNlIDE6 CnwgWVlfUlVMRV9TRVRVUAp8ICNsaW5lIDIgImNvbmZ0ZXN0LmwiCnwgeyBFQ0hPOyB9Cnwg CVlZX0JSRUFLCnwgY2FzZSAyOgp8IFlZX1JVTEVfU0VUVVAKfCAjbGluZSAzICJjb25mdGVz dC5sIgp8IHsgUkVKRUNUOyB9CnwgCVlZX0JSRUFLCnwgY2FzZSAzOgp8IFlZX1JVTEVfU0VU VVAKfCAjbGluZSA0ICJjb25mdGVzdC5sIgp8IHsgeXltb3JlICgpOyB9CnwgCVlZX0JSRUFL CnwgY2FzZSA0Ogp8IFlZX1JVTEVfU0VUVVAKfCAjbGluZSA1ICJjb25mdGVzdC5sIgp8IHsg eXlsZXNzICgxKTsgfQp8IAlZWV9CUkVBSwp8IGNhc2UgNToKfCBZWV9SVUxFX1NFVFVQCnwg I2xpbmUgNiAiY29uZnRlc3QubCIKfCB7IHl5bGVzcyAoaW5wdXQgKCkgIT0gMCk7IH0KfCAJ WVlfQlJFQUsKfCBjYXNlIDY6CnwgWVlfUlVMRV9TRVRVUAp8ICNsaW5lIDcgImNvbmZ0ZXN0 LmwiCnwgeyB1bnB1dCAoeXl0ZXh0WzBdKTsgfQp8IAlZWV9CUkVBSwp8IGNhc2UgNzoKfCBZ WV9SVUxFX1NFVFVQCnwgI2xpbmUgOCAiY29uZnRlc3QubCIKfCB7IEJFR0lOIElOSVRJQUw7 IH0KfCAJWVlfQlJFQUsKfCBjYXNlIDg6CnwgWVlfUlVMRV9TRVRVUAp8ICNsaW5lIDkgImNv bmZ0ZXN0LmwiCnwgRUNITzsKfCAJWVlfQlJFQUsKfCAjbGluZSA2NzUgImxleC55eS5jIgp8 IAkJCWNhc2UgWVlfU1RBVEVfRU9GKElOSVRJQUwpOgp8IAkJCQl5eXRlcm1pbmF0ZSgpOwp8 IAp8IAljYXNlIFlZX0VORF9PRl9CVUZGRVI6CnwgCQl7CnwgCQkvKiBBbW91bnQgb2YgdGV4 dCBtYXRjaGVkIG5vdCBpbmNsdWRpbmcgdGhlIEVPQiBjaGFyLiAqLwp8IAkJaW50IHl5X2Ft b3VudF9vZl9tYXRjaGVkX3RleHQgPSAoaW50KSAoeXlfY3AgLSB5eXRleHRfcHRyKSAtIDE7 CnwgCnwgCQkvKiBVbmRvIHRoZSBlZmZlY3RzIG9mIFlZX0RPX0JFRk9SRV9BQ1RJT04uICov CnwgCQkqeXlfY3AgPSB5eV9ob2xkX2NoYXI7CnwgCQlZWV9SRVNUT1JFX1lZX01PUkVfT0ZG U0VUCnwgCnwgCQlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZmZXJfc3RhdHVzID09 IFlZX0JVRkZFUl9ORVcgKQp8IAkJCXsKfCAJCQkvKiBXZSdyZSBzY2FubmluZyBhIG5ldyBm aWxlIG9yIGlucHV0IHNvdXJjZS4gIEl0J3MKfCAJCQkgKiBwb3NzaWJsZSB0aGF0IHRoaXMg aGFwcGVuZWQgYmVjYXVzZSB0aGUgdXNlcgp8IAkJCSAqIGp1c3QgcG9pbnRlZCB5eWluIGF0 IGEgbmV3IHNvdXJjZSBhbmQgY2FsbGVkCnwgCQkJICogeXlsZXgoKS4gIElmIHNvLCB0aGVu IHdlIGhhdmUgdG8gYXNzdXJlCnwgCQkJICogY29uc2lzdGVuY3kgYmV0d2VlbiB5eV9jdXJy ZW50X2J1ZmZlciBhbmQgb3VyCnwgCQkJICogZ2xvYmFscy4gIEhlcmUgaXMgdGhlIHJpZ2h0 IHBsYWNlIHRvIGRvIHNvLCBiZWNhdXNlCnwgCQkJICogdGhpcyBpcyB0aGUgZmlyc3QgYWN0 aW9uIChvdGhlciB0aGFuIHBvc3NpYmx5IGEKfCAJCQkgKiBiYWNrLXVwKSB0aGF0IHdpbGwg bWF0Y2ggZm9yIHRoZSBuZXcgaW5wdXQgc291cmNlLgp8IAkJCSAqLwp8IAkJCXl5X25fY2hh cnMgPSB5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFyczsKfCAJCQl5eV9jdXJyZW50X2J1 ZmZlci0+eXlfaW5wdXRfZmlsZSA9IHl5aW47CnwgCQkJeXlfY3VycmVudF9idWZmZXItPnl5 X2J1ZmZlcl9zdGF0dXMgPSBZWV9CVUZGRVJfTk9STUFMOwp8IAkJCX0KfCAKfCAJCS8qIE5v dGUgdGhhdCBoZXJlIHdlIHRlc3QgZm9yIHl5X2NfYnVmX3AgIjw9IiB0byB0aGUgcG9zaXRp b24KfCAJCSAqIG9mIHRoZSBmaXJzdCBFT0IgaW4gdGhlIGJ1ZmZlciwgc2luY2UgeXlfY19i dWZfcCB3aWxsCnwgCQkgKiBhbHJlYWR5IGhhdmUgYmVlbiBpbmNyZW1lbnRlZCBwYXN0IHRo ZSBOVUwgY2hhcmFjdGVyCnwgCQkgKiAoc2luY2UgYWxsIHN0YXRlcyBtYWtlIHRyYW5zaXRp b25zIG9uIEVPQiB0byB0aGUKfCAJCSAqIGVuZC1vZi1idWZmZXIgc3RhdGUpLiAgQ29udHJh c3QgdGhpcyB3aXRoIHRoZSB0ZXN0CnwgCQkgKiBpbiBpbnB1dCgpLgp8IAkJICovCnwgCQlp ZiAoIHl5X2NfYnVmX3AgPD0gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbeXlfbl9j aGFyc10gKQp8IAkJCXsgLyogVGhpcyB3YXMgcmVhbGx5IGEgTlVMLiAqLwp8IAkJCXl5X3N0 YXRlX3R5cGUgeXlfbmV4dF9zdGF0ZTsKfCAKfCAJCQl5eV9jX2J1Zl9wID0geXl0ZXh0X3B0 ciArIHl5X2Ftb3VudF9vZl9tYXRjaGVkX3RleHQ7CnwgCnwgCQkJeXlfY3VycmVudF9zdGF0 ZSA9IHl5X2dldF9wcmV2aW91c19zdGF0ZSgpOwp8IAp8IAkJCS8qIE9rYXksIHdlJ3JlIG5v dyBwb3NpdGlvbmVkIHRvIG1ha2UgdGhlIE5VTAp8IAkJCSAqIHRyYW5zaXRpb24uICBXZSBj b3VsZG4ndCBoYXZlCnwgCQkJICogeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCkgZ28gYWhlYWQg YW5kIGRvIGl0CnwgCQkJICogZm9yIHVzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93IGhvdyB0 byBkZWFsCnwgCQkJICogd2l0aCB0aGUgcG9zc2liaWxpdHkgb2YgamFtbWluZyAoYW5kIHdl IGRvbid0CnwgCQkJICogd2FudCB0byBidWlsZCBqYW1taW5nIGludG8gaXQgYmVjYXVzZSB0 aGVuIGl0CnwgCQkJICogd2lsbCBydW4gbW9yZSBzbG93bHkpLgp8IAkJCSAqLwp8IAp8IAkJ CXl5X25leHRfc3RhdGUgPSB5eV90cnlfTlVMX3RyYW5zKCB5eV9jdXJyZW50X3N0YXRlICk7 CnwgCnwgCQkJeXlfYnAgPSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7CnwgCnwgCQkJaWYg KCB5eV9uZXh0X3N0YXRlICkKfCAJCQkJewp8IAkJCQkvKiBDb25zdW1lIHRoZSBOVUwuICov CnwgCQkJCXl5X2NwID0gKyt5eV9jX2J1Zl9wOwp8IAkJCQl5eV9jdXJyZW50X3N0YXRlID0g eXlfbmV4dF9zdGF0ZTsKfCAJCQkJZ290byB5eV9tYXRjaDsKfCAJCQkJfQp8IAp8IAkJCWVs c2UKfCAJCQkJewp8IAkJCQl5eV9jcCA9IHl5X2NfYnVmX3A7CnwgCQkJCWdvdG8geXlfZmlu ZF9hY3Rpb247CnwgCQkJCX0KfCAJCQl9CnwgCnwgCQllbHNlIHN3aXRjaCAoIHl5X2dldF9u ZXh0X2J1ZmZlcigpICkKfCAJCQl7CnwgCQkJY2FzZSBFT0JfQUNUX0VORF9PRl9GSUxFOgp8 IAkJCQl7CnwgCQkJCXl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZiA9IDA7CnwgCnwgCQkJ CWlmICggeXl3cmFwKCkgKQp8IAkJCQkJewp8IAkJCQkJLyogTm90ZTogYmVjYXVzZSB3ZSd2 ZSB0YWtlbiBjYXJlIGluCnwgCQkJCQkgKiB5eV9nZXRfbmV4dF9idWZmZXIoKSB0byBoYXZl IHNldCB1cAp8IAkJCQkJICogeXl0ZXh0LCB3ZSBjYW4gbm93IHNldCB1cAp8IAkJCQkJICog eXlfY19idWZfcCBzbyB0aGF0IGlmIHNvbWUgdG90YWwKfCAJCQkJCSAqIGhvc2VyIChsaWtl IGZsZXggaXRzZWxmKSB3YW50cyB0bwp8IAkJCQkJICogY2FsbCB0aGUgc2Nhbm5lciBhZnRl ciB3ZSByZXR1cm4gdGhlCnwgCQkJCQkgKiBZWV9OVUxMLCBpdCdsbCBzdGlsbCB3b3JrIC0g YW5vdGhlcgp8IAkJCQkJICogWVlfTlVMTCB3aWxsIGdldCByZXR1cm5lZC4KfCAJCQkJCSAq Lwp8IAkJCQkJeXlfY19idWZfcCA9IHl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsKfCAKfCAJ CQkJCXl5X2FjdCA9IFlZX1NUQVRFX0VPRihZWV9TVEFSVCk7CnwgCQkJCQlnb3RvIGRvX2Fj dGlvbjsKfCAJCQkJCX0KfCAKfCAJCQkJZWxzZQp8IAkJCQkJewp8IAkJCQkJaWYgKCAhIHl5 X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZiApCnwgCQkJCQkJWVlfTkVXX0ZJTEU7CnwgCQkJ CQl9CnwgCQkJCWJyZWFrOwp8IAkJCQl9CnwgCnwgCQkJY2FzZSBFT0JfQUNUX0NPTlRJTlVF X1NDQU46CnwgCQkJCXl5X2NfYnVmX3AgPQp8IAkJCQkJeXl0ZXh0X3B0ciArIHl5X2Ftb3Vu dF9vZl9tYXRjaGVkX3RleHQ7CnwgCnwgCQkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9nZXRf cHJldmlvdXNfc3RhdGUoKTsKfCAKfCAJCQkJeXlfY3AgPSB5eV9jX2J1Zl9wOwp8IAkJCQl5 eV9icCA9IHl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsKfCAJCQkJZ290byB5eV9tYXRjaDsK fCAKfCAJCQljYXNlIEVPQl9BQ1RfTEFTVF9NQVRDSDoKfCAJCQkJeXlfY19idWZfcCA9Cnwg CQkJCSZ5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25fY2hhcnNdOwp8IAp8IAkJ CQl5eV9jdXJyZW50X3N0YXRlID0geXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCk7CnwgCnwgCQkJ CXl5X2NwID0geXlfY19idWZfcDsKfCAJCQkJeXlfYnAgPSB5eXRleHRfcHRyICsgWVlfTU9S RV9BREo7CnwgCQkJCWdvdG8geXlfZmluZF9hY3Rpb247CnwgCQkJfQp8IAkJYnJlYWs7Cnwg CQl9CnwgCnwgCWRlZmF1bHQ6CnwgCQlZWV9GQVRBTF9FUlJPUigKfCAJCQkiZmF0YWwgZmxl eCBzY2FubmVyIGludGVybmFsIGVycm9yLS1ubyBhY3Rpb24gZm91bmQiICk7CnwgCX0gLyog ZW5kIG9mIGFjdGlvbiBzd2l0Y2ggKi8KfCAJCX0gLyogZW5kIG9mIHNjYW5uaW5nIG9uZSB0 b2tlbiAqLwp8IAl9IC8qIGVuZCBvZiB5eWxleCAqLwp8IAp8IAp8IC8qIHl5X2dldF9uZXh0 X2J1ZmZlciAtIHRyeSB0byByZWFkIGluIGEgbmV3IGJ1ZmZlcgp8ICAqCnwgICogUmV0dXJu cyBhIGNvZGUgcmVwcmVzZW50aW5nIGFuIGFjdGlvbjoKfCAgKglFT0JfQUNUX0xBU1RfTUFU Q0ggLQp8ICAqCUVPQl9BQ1RfQ09OVElOVUVfU0NBTiAtIGNvbnRpbnVlIHNjYW5uaW5nIGZy b20gY3VycmVudCBwb3NpdGlvbgp8ICAqCUVPQl9BQ1RfRU5EX09GX0ZJTEUgLSBlbmQgb2Yg ZmlsZQp8ICAqLwp8IAp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TCnwgc3RhdGljIGludCB5eV9n ZXRfbmV4dF9idWZmZXIodm9pZCkKfCAjZWxzZQp8IHN0YXRpYyBpbnQgeXlfZ2V0X25leHRf YnVmZmVyKCkKfCAjZW5kaWYKfCAJewp8IAljaGFyICpkZXN0ID0geXlfY3VycmVudF9idWZm ZXItPnl5X2NoX2J1ZjsKfCAJY2hhciAqc291cmNlID0geXl0ZXh0X3B0cjsKfCAJaW50IG51 bWJlcl90b19tb3ZlLCBpOwp8IAlpbnQgcmV0X3ZhbDsKfCAKfCAJaWYgKCB5eV9jX2J1Zl9w ID4gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbeXlfbl9jaGFycyArIDFdICkKfCAJ CVlZX0ZBVEFMX0VSUk9SKAp8IAkJImZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJv ci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQiICk7CnwgCnwgCWlmICggeXlfY3VycmVudF9idWZm ZXItPnl5X2ZpbGxfYnVmZmVyID09IDAgKQp8IAkJeyAvKiBEb24ndCB0cnkgdG8gZmlsbCB0 aGUgYnVmZmVyLCBzbyB0aGlzIGlzIGFuIEVPRi4gKi8KfCAJCWlmICggeXlfY19idWZfcCAt IHl5dGV4dF9wdHIgLSBZWV9NT1JFX0FESiA9PSAxICkKfCAJCQl7CnwgCQkJLyogV2UgbWF0 Y2hlZCBhIHNpbmdsZSBjaGFyYWN0ZXIsIHRoZSBFT0IsIHNvCnwgCQkJICogdHJlYXQgdGhp cyBhcyBhIGZpbmFsIEVPRi4KfCAJCQkgKi8KfCAJCQlyZXR1cm4gRU9CX0FDVF9FTkRfT0Zf RklMRTsKfCAJCQl9CnwgCnwgCQllbHNlCnwgCQkJewp8IAkJCS8qIFdlIG1hdGNoZWQgc29t ZSB0ZXh0IHByaW9yIHRvIHRoZSBFT0IsIGZpcnN0CnwgCQkJICogcHJvY2VzcyBpdC4KfCAJ CQkgKi8KfCAJCQlyZXR1cm4gRU9CX0FDVF9MQVNUX01BVENIOwp8IAkJCX0KfCAJCX0KfCAK fCAJLyogVHJ5IHRvIHJlYWQgbW9yZSBkYXRhLiAqLwp8IAp8IAkvKiBGaXJzdCBtb3ZlIGxh c3QgY2hhcnMgdG8gc3RhcnQgb2YgYnVmZmVyLiAqLwp8IAludW1iZXJfdG9fbW92ZSA9IChp bnQpICh5eV9jX2J1Zl9wIC0geXl0ZXh0X3B0cikgLSAxOwp8IAp8IAlmb3IgKCBpID0gMDsg aSA8IG51bWJlcl90b19tb3ZlOyArK2kgKQp8IAkJKihkZXN0KyspID0gKihzb3VyY2UrKyk7 CnwgCnwgCWlmICggeXlfY3VycmVudF9idWZmZXItPnl5X2J1ZmZlcl9zdGF0dXMgPT0gWVlf QlVGRkVSX0VPRl9QRU5ESU5HICkKfCAJCS8qIGRvbid0IGRvIHRoZSByZWFkLCBpdCdzIG5v dCBndWFyYW50ZWVkIHRvIHJldHVybiBhbiBFT0YsCnwgCQkgKiBqdXN0IGZvcmNlIGFuIEVP Rgp8IAkJICovCnwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFycyA9IHl5X25fY2hh cnMgPSAwOwp8IAp8IAllbHNlCnwgCQl7CnwgCQlpbnQgbnVtX3RvX3JlYWQgPQp8IAkJCXl5 X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6ZSAtIG51bWJlcl90b19tb3ZlIC0gMTsKfCAK fCAJCXdoaWxlICggbnVtX3RvX3JlYWQgPD0gMCApCnwgCQkJeyAvKiBOb3QgZW5vdWdoIHJv b20gaW4gdGhlIGJ1ZmZlciAtIGdyb3cgaXQuICovCnwgI2lmZGVmIFlZX1VTRVNfUkVKRUNU CnwgCQkJWVlfRkFUQUxfRVJST1IoCnwgImlucHV0IGJ1ZmZlciBvdmVyZmxvdywgY2FuJ3Qg ZW5sYXJnZSBidWZmZXIgYmVjYXVzZSBzY2FubmVyIHVzZXMgUkVKRUNUIiApOwp8ICNlbHNl CnwgCnwgCQkJLyoganVzdCBhIHNob3J0ZXIgbmFtZSBmb3IgdGhlIGN1cnJlbnQgYnVmZmVy ICovCnwgCQkJWVlfQlVGRkVSX1NUQVRFIGIgPSB5eV9jdXJyZW50X2J1ZmZlcjsKfCAKfCAJ CQlpbnQgeXlfY19idWZfcF9vZmZzZXQgPQp8IAkJCQkoaW50KSAoeXlfY19idWZfcCAtIGIt Pnl5X2NoX2J1Zik7CnwgCnwgCQkJaWYgKCBiLT55eV9pc19vdXJfYnVmZmVyICkKfCAJCQkJ ewp8IAkJCQlpbnQgbmV3X3NpemUgPSBiLT55eV9idWZfc2l6ZSAqIDI7CnwgCnwgCQkJCWlm ICggbmV3X3NpemUgPD0gMCApCnwgCQkJCQliLT55eV9idWZfc2l6ZSArPSBiLT55eV9idWZf c2l6ZSAvIDg7CnwgCQkJCWVsc2UKfCAJCQkJCWItPnl5X2J1Zl9zaXplICo9IDI7CnwgCnwg CQkJCWItPnl5X2NoX2J1ZiA9IChjaGFyICopCnwgCQkJCQkvKiBJbmNsdWRlIHJvb20gaW4g Zm9yIDIgRU9CIGNoYXJzLiAqLwp8IAkJCQkJeXlfZmxleF9yZWFsbG9jKCAodm9pZCAqKSBi LT55eV9jaF9idWYsCnwgCQkJCQkJCSBiLT55eV9idWZfc2l6ZSArIDIgKTsKfCAJCQkJfQp8 IAkJCWVsc2UKfCAJCQkJLyogQ2FuJ3QgZ3JvdyBpdCwgd2UgZG9uJ3Qgb3duIGl0LiAqLwp8 IAkJCQliLT55eV9jaF9idWYgPSAwOwp8IAp8IAkJCWlmICggISBiLT55eV9jaF9idWYgKQp8 IAkJCQlZWV9GQVRBTF9FUlJPUigKfCAJCQkJImZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1 dCBidWZmZXIgb3ZlcmZsb3ciICk7CnwgCnwgCQkJeXlfY19idWZfcCA9ICZiLT55eV9jaF9i dWZbeXlfY19idWZfcF9vZmZzZXRdOwp8IAp8IAkJCW51bV90b19yZWFkID0geXlfY3VycmVu dF9idWZmZXItPnl5X2J1Zl9zaXplIC0KfCAJCQkJCQludW1iZXJfdG9fbW92ZSAtIDE7Cnwg I2VuZGlmCnwgCQkJfQp8IAp8IAkJaWYgKCBudW1fdG9fcmVhZCA+IFlZX1JFQURfQlVGX1NJ WkUgKQp8IAkJCW51bV90b19yZWFkID0gWVlfUkVBRF9CVUZfU0laRTsKfCAKfCAJCS8qIFJl YWQgaW4gbW9yZSBkYXRhLiAqLwp8IAkJWVlfSU5QVVQoICgmeXlfY3VycmVudF9idWZmZXIt Pnl5X2NoX2J1ZltudW1iZXJfdG9fbW92ZV0pLAp8IAkJCXl5X25fY2hhcnMsIG51bV90b19y ZWFkICk7CnwgCnwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFycyA9IHl5X25fY2hh cnM7CnwgCQl9CnwgCnwgCWlmICggeXlfbl9jaGFycyA9PSAwICkKfCAJCXsKfCAJCWlmICgg bnVtYmVyX3RvX21vdmUgPT0gWVlfTU9SRV9BREogKQp8IAkJCXsKfCAJCQlyZXRfdmFsID0g RU9CX0FDVF9FTkRfT0ZfRklMRTsKfCAJCQl5eXJlc3RhcnQoIHl5aW4gKTsKfCAJCQl9Cnwg CnwgCQllbHNlCnwgCQkJewp8IAkJCXJldF92YWwgPSBFT0JfQUNUX0xBU1RfTUFUQ0g7Cnwg CQkJeXlfY3VycmVudF9idWZmZXItPnl5X2J1ZmZlcl9zdGF0dXMgPQp8IAkJCQlZWV9CVUZG RVJfRU9GX1BFTkRJTkc7CnwgCQkJfQp8IAkJfQp8IAp8IAllbHNlCnwgCQlyZXRfdmFsID0g RU9CX0FDVF9DT05USU5VRV9TQ0FOOwp8IAp8IAl5eV9uX2NoYXJzICs9IG51bWJlcl90b19t b3ZlOwp8IAl5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25fY2hhcnNdID0gWVlf RU5EX09GX0JVRkZFUl9DSEFSOwp8IAl5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW3l5 X25fY2hhcnMgKyAxXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsKfCAKfCAJeXl0ZXh0X3B0 ciA9ICZ5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmWzBdOwp8IAp8IAlyZXR1cm4gcmV0 X3ZhbDsKfCAJfQp8IAp8IAp8IC8qIHl5X2dldF9wcmV2aW91c19zdGF0ZSAtIGdldCB0aGUg c3RhdGUganVzdCBiZWZvcmUgdGhlIEVPQiBjaGFyIHdhcyByZWFjaGVkICovCnwgCnwgI2lm ZGVmIFlZX1VTRV9QUk9UT1MKfCBzdGF0aWMgeXlfc3RhdGVfdHlwZSB5eV9nZXRfcHJldmlv dXNfc3RhdGUodm9pZCkKfCAjZWxzZQp8IHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X2dldF9w cmV2aW91c19zdGF0ZSgpCnwgI2VuZGlmCnwgCXsKfCAJeXlfc3RhdGVfdHlwZSB5eV9jdXJy ZW50X3N0YXRlOwp8IAljaGFyICp5eV9jcDsKfCAKfCAJeXlfY3VycmVudF9zdGF0ZSA9IHl5 X3N0YXJ0Owp8IAl5eV9zdGF0ZV9wdHIgPSB5eV9zdGF0ZV9idWY7CnwgCSp5eV9zdGF0ZV9w dHIrKyA9IHl5X2N1cnJlbnRfc3RhdGU7CnwgCnwgCWZvciAoIHl5X2NwID0geXl0ZXh0X3B0 ciArIFlZX01PUkVfQURKOyB5eV9jcCA8IHl5X2NfYnVmX3A7ICsreXlfY3AgKQp8IAkJewp8 IAkJWVlfQ0hBUiB5eV9jID0gKCp5eV9jcCA/IHl5X2VjW1lZX1NDX1RPX1VJKCp5eV9jcCld IDogMSk7CnwgCQl3aGlsZSAoIHl5X2Noa1t5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVdICsg eXlfY10gIT0geXlfY3VycmVudF9zdGF0ZSApCnwgCQkJewp8IAkJCXl5X2N1cnJlbnRfc3Rh dGUgPSAoaW50KSB5eV9kZWZbeXlfY3VycmVudF9zdGF0ZV07CnwgCQkJaWYgKCB5eV9jdXJy ZW50X3N0YXRlID49IDEzICkKfCAJCQkJeXlfYyA9IHl5X21ldGFbKHVuc2lnbmVkIGludCkg eXlfY107CnwgCQkJfQp8IAkJeXlfY3VycmVudF9zdGF0ZSA9IHl5X254dFt5eV9iYXNlW3l5 X2N1cnJlbnRfc3RhdGVdICsgKHVuc2lnbmVkIGludCkgeXlfY107CnwgCQkqeXlfc3RhdGVf cHRyKysgPSB5eV9jdXJyZW50X3N0YXRlOwp8IAkJfQp8IAp8IAlyZXR1cm4geXlfY3VycmVu dF9zdGF0ZTsKfCAJfQp8IAp8IAp8IC8qIHl5X3RyeV9OVUxfdHJhbnMgLSB0cnkgdG8gbWFr ZSBhIHRyYW5zaXRpb24gb24gdGhlIE5VTCBjaGFyYWN0ZXIKfCAgKgp8ICAqIHN5bm9wc2lz CnwgICoJbmV4dF9zdGF0ZSA9IHl5X3RyeV9OVUxfdHJhbnMoIGN1cnJlbnRfc3RhdGUgKTsK fCAgKi8KfCAKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IHN0YXRpYyB5eV9zdGF0ZV90eXBl IHl5X3RyeV9OVUxfdHJhbnMoIHl5X3N0YXRlX3R5cGUgeXlfY3VycmVudF9zdGF0ZSApCnwg I2Vsc2UKfCBzdGF0aWMgeXlfc3RhdGVfdHlwZSB5eV90cnlfTlVMX3RyYW5zKCB5eV9jdXJy ZW50X3N0YXRlICkKfCB5eV9zdGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGU7CnwgI2VuZGlm CnwgCXsKfCAJaW50IHl5X2lzX2phbTsKfCAKfCAJWVlfQ0hBUiB5eV9jID0gMTsKfCAJd2hp bGUgKCB5eV9jaGtbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1 cnJlbnRfc3RhdGUgKQp8IAkJewp8IAkJeXlfY3VycmVudF9zdGF0ZSA9IChpbnQpIHl5X2Rl Zlt5eV9jdXJyZW50X3N0YXRlXTsKfCAJCWlmICggeXlfY3VycmVudF9zdGF0ZSA+PSAxMyAp CnwgCQkJeXlfYyA9IHl5X21ldGFbKHVuc2lnbmVkIGludCkgeXlfY107CnwgCQl9CnwgCXl5 X2N1cnJlbnRfc3RhdGUgPSB5eV9ueHRbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArICh1 bnNpZ25lZCBpbnQpIHl5X2NdOwp8IAl5eV9pc19qYW0gPSAoeXlfY3VycmVudF9zdGF0ZSA9 PSAxMik7CnwgCWlmICggISB5eV9pc19qYW0gKQp8IAkJKnl5X3N0YXRlX3B0cisrID0geXlf Y3VycmVudF9zdGF0ZTsKfCAKfCAJcmV0dXJuIHl5X2lzX2phbSA/IDAgOiB5eV9jdXJyZW50 X3N0YXRlOwp8IAl9CnwgCnwgCnwgI2lmbmRlZiBZWV9OT19VTlBVVAp8ICNpZmRlZiBZWV9V U0VfUFJPVE9TCnwgc3RhdGljIHZvaWQgeXl1bnB1dCggaW50IGMsIGNoYXIgKnl5X2JwICkK fCAjZWxzZQp8IHN0YXRpYyB2b2lkIHl5dW5wdXQoIGMsIHl5X2JwICkKfCBpbnQgYzsKfCBj aGFyICp5eV9icDsKfCAjZW5kaWYKfCAJewp8IAljaGFyICp5eV9jcCA9IHl5X2NfYnVmX3A7 CnwgCnwgCS8qIHVuZG8gZWZmZWN0cyBvZiBzZXR0aW5nIHVwIHl5dGV4dCAqLwp8IAkqeXlf Y3AgPSB5eV9ob2xkX2NoYXI7CnwgCnwgCWlmICggeXlfY3AgPCB5eV9jdXJyZW50X2J1ZmZl ci0+eXlfY2hfYnVmICsgMiApCnwgCQl7IC8qIG5lZWQgdG8gc2hpZnQgdGhpbmdzIHVwIHRv IG1ha2Ugcm9vbSAqLwp8IAkJLyogKzIgZm9yIEVPQiBjaGFycy4gKi8KfCAJCWludCBudW1i ZXJfdG9fbW92ZSA9IHl5X25fY2hhcnMgKyAyOwp8IAkJY2hhciAqZGVzdCA9ICZ5eV9jdXJy ZW50X2J1ZmZlci0+eXlfY2hfYnVmWwp8IAkJCQkJeXlfY3VycmVudF9idWZmZXItPnl5X2J1 Zl9zaXplICsgMl07CnwgCQljaGFyICpzb3VyY2UgPQp8IAkJCQkmeXlfY3VycmVudF9idWZm ZXItPnl5X2NoX2J1ZltudW1iZXJfdG9fbW92ZV07CnwgCnwgCQl3aGlsZSAoIHNvdXJjZSA+ IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWYgKQp8IAkJCSotLWRlc3QgPSAqLS1zb3Vy Y2U7CnwgCnwgCQl5eV9jcCArPSAoaW50KSAoZGVzdCAtIHNvdXJjZSk7CnwgCQl5eV9icCAr PSAoaW50KSAoZGVzdCAtIHNvdXJjZSk7CnwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9j aGFycyA9CnwgCQkJeXlfbl9jaGFycyA9IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6 ZTsKfCAKfCAJCWlmICggeXlfY3AgPCB5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmICsg MiApCnwgCQkJWVlfRkFUQUxfRVJST1IoICJmbGV4IHNjYW5uZXIgcHVzaC1iYWNrIG92ZXJm bG93IiApOwp8IAkJfQp8IAp8IAkqLS15eV9jcCA9IChjaGFyKSBjOwp8IAp8IAp8IAl5eXRl eHRfcHRyID0geXlfYnA7CnwgCXl5X2hvbGRfY2hhciA9ICp5eV9jcDsKfCAJeXlfY19idWZf cCA9IHl5X2NwOwp8IAl9CnwgI2VuZGlmCS8qIGlmbmRlZiBZWV9OT19VTlBVVCAqLwp8IAp8 IAp8ICNpZm5kZWYgWVlfTk9fSU5QVVQKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBzdGF0aWMg aW50IHl5aW5wdXQoKQp8ICNlbHNlCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCBzdGF0aWMg aW50IGlucHV0KHZvaWQpCnwgI2Vsc2UKfCBzdGF0aWMgaW50IGlucHV0KCkKfCAjZW5kaWYK fCAjZW5kaWYKfCAJewp8IAlpbnQgYzsKfCAKfCAJKnl5X2NfYnVmX3AgPSB5eV9ob2xkX2No YXI7CnwgCnwgCWlmICggKnl5X2NfYnVmX3AgPT0gWVlfRU5EX09GX0JVRkZFUl9DSEFSICkK fCAJCXsKfCAJCS8qIHl5X2NfYnVmX3Agbm93IHBvaW50cyB0byB0aGUgY2hhcmFjdGVyIHdl IHdhbnQgdG8gcmV0dXJuLgp8IAkJICogSWYgdGhpcyBvY2N1cnMgKmJlZm9yZSogdGhlIEVP QiBjaGFyYWN0ZXJzLCB0aGVuIGl0J3MgYQp8IAkJICogdmFsaWQgTlVMOyBpZiBub3QsIHRo ZW4gd2UndmUgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KfCAJCSAqLwp8IAkJaWYgKCB5 eV9jX2J1Zl9wIDwgJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbeXlfbl9jaGFyc10g KQp8IAkJCS8qIFRoaXMgd2FzIHJlYWxseSBhIE5VTC4gKi8KfCAJCQkqeXlfY19idWZfcCA9 ICdcMCc7CnwgCnwgCQllbHNlCnwgCQkJeyAvKiBuZWVkIG1vcmUgaW5wdXQgKi8KfCAJCQlp bnQgb2Zmc2V0ID0geXlfY19idWZfcCAtIHl5dGV4dF9wdHI7CnwgCQkJKyt5eV9jX2J1Zl9w Owp8IAp8IAkJCXN3aXRjaCAoIHl5X2dldF9uZXh0X2J1ZmZlcigpICkKfCAJCQkJewp8IAkJ CQljYXNlIEVPQl9BQ1RfTEFTVF9NQVRDSDoKfCAJCQkJCS8qIFRoaXMgaGFwcGVucyBiZWNh dXNlIHl5X2dfbl9iKCkKfCAJCQkJCSAqIHNlZXMgdGhhdCB3ZSd2ZSBhY2N1bXVsYXRlZCBh CnwgCQkJCQkgKiB0b2tlbiBhbmQgZmxhZ3MgdGhhdCB3ZSBuZWVkIHRvCnwgCQkJCQkgKiB0 cnkgbWF0Y2hpbmcgdGhlIHRva2VuIGJlZm9yZQp8IAkJCQkJICogcHJvY2VlZGluZy4gIEJ1 dCBmb3IgaW5wdXQoKSwKfCAJCQkJCSAqIHRoZXJlJ3Mgbm8gbWF0Y2hpbmcgdG8gY29uc2lk ZXIuCnwgCQkJCQkgKiBTbyBjb252ZXJ0IHRoZSBFT0JfQUNUX0xBU1RfTUFUQ0gKfCAJCQkJ CSAqIHRvIEVPQl9BQ1RfRU5EX09GX0ZJTEUuCnwgCQkJCQkgKi8KfCAKfCAJCQkJCS8qIFJl c2V0IGJ1ZmZlciBzdGF0dXMuICovCnwgCQkJCQl5eXJlc3RhcnQoIHl5aW4gKTsKfCAKfCAJ CQkJCS8qIGZhbGwgdGhyb3VnaCAqLwp8IAp8IAkJCQljYXNlIEVPQl9BQ1RfRU5EX09GX0ZJ TEU6CnwgCQkJCQl7CnwgCQkJCQlpZiAoIHl5d3JhcCgpICkKfCAJCQkJCQlyZXR1cm4gRU9G Owp8IAp8IAkJCQkJaWYgKCAhIHl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZiApCnwgCQkJ CQkJWVlfTkVXX0ZJTEU7CnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgCQkJCQlyZXR1cm4geXlp bnB1dCgpOwp8ICNlbHNlCnwgCQkJCQlyZXR1cm4gaW5wdXQoKTsKfCAjZW5kaWYKfCAJCQkJ CX0KfCAKfCAJCQkJY2FzZSBFT0JfQUNUX0NPTlRJTlVFX1NDQU46CnwgCQkJCQl5eV9jX2J1 Zl9wID0geXl0ZXh0X3B0ciArIG9mZnNldDsKfCAJCQkJCWJyZWFrOwp8IAkJCQl9CnwgCQkJ fQp8IAkJfQp8IAp8IAljID0gKih1bnNpZ25lZCBjaGFyICopIHl5X2NfYnVmX3A7CS8qIGNh c3QgZm9yIDgtYml0IGNoYXIncyAqLwp8IAkqeXlfY19idWZfcCA9ICdcMCc7CS8qIHByZXNl cnZlIHl5dGV4dCAqLwp8IAl5eV9ob2xkX2NoYXIgPSAqKyt5eV9jX2J1Zl9wOwp8IAp8IAp8 IAlyZXR1cm4gYzsKfCAJfQp8ICNlbmRpZgkvKiBpZm5kZWYgWVlfTk9fSU5QVVQgKi8KfCAK fCAKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IHZvaWQgeXlyZXN0YXJ0KCBGSUxFICppbnB1 dF9maWxlICkKfCAjZWxzZQp8IHZvaWQgeXlyZXN0YXJ0KCBpbnB1dF9maWxlICkKfCBGSUxF ICppbnB1dF9maWxlOwp8ICNlbmRpZgp8IAl7CnwgCWlmICggISB5eV9jdXJyZW50X2J1ZmZl ciApCnwgCQl5eV9jdXJyZW50X2J1ZmZlciA9IHl5X2NyZWF0ZV9idWZmZXIoIHl5aW4sIFlZ X0JVRl9TSVpFICk7CnwgCnwgCXl5X2luaXRfYnVmZmVyKCB5eV9jdXJyZW50X2J1ZmZlciwg aW5wdXRfZmlsZSApOwp8IAl5eV9sb2FkX2J1ZmZlcl9zdGF0ZSgpOwp8IAl9CnwgCnwgCnwg I2lmZGVmIFlZX1VTRV9QUk9UT1MKfCB2b2lkIHl5X3N3aXRjaF90b19idWZmZXIoIFlZX0JV RkZFUl9TVEFURSBuZXdfYnVmZmVyICkKfCAjZWxzZQp8IHZvaWQgeXlfc3dpdGNoX3RvX2J1 ZmZlciggbmV3X2J1ZmZlciApCnwgWVlfQlVGRkVSX1NUQVRFIG5ld19idWZmZXI7CnwgI2Vu ZGlmCnwgCXsKfCAJaWYgKCB5eV9jdXJyZW50X2J1ZmZlciA9PSBuZXdfYnVmZmVyICkKfCAJ CXJldHVybjsKfCAKfCAJaWYgKCB5eV9jdXJyZW50X2J1ZmZlciApCnwgCQl7CnwgCQkvKiBG bHVzaCBvdXQgaW5mb3JtYXRpb24gZm9yIG9sZCBidWZmZXIuICovCnwgCQkqeXlfY19idWZf cCA9IHl5X2hvbGRfY2hhcjsKfCAJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfcG9zID0g eXlfY19idWZfcDsKfCAJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9uX2NoYXJzID0geXlfbl9j aGFyczsKfCAJCX0KfCAKfCAJeXlfY3VycmVudF9idWZmZXIgPSBuZXdfYnVmZmVyOwp8IAl5 eV9sb2FkX2J1ZmZlcl9zdGF0ZSgpOwp8IAp8IAkvKiBXZSBkb24ndCBhY3R1YWxseSBrbm93 IHdoZXRoZXIgd2UgZGlkIHRoaXMgc3dpdGNoIGR1cmluZwp8IAkgKiBFT0YgKHl5d3JhcCgp KSBwcm9jZXNzaW5nLCBidXQgdGhlIG9ubHkgdGltZSB0aGlzIGZsYWcKfCAJICogaXMgbG9v a2VkIGF0IGlzIGFmdGVyIHl5d3JhcCgpIGlzIGNhbGxlZCwgc28gaXQncyBzYWZlCnwgCSAq IHRvIGdvIGFoZWFkIGFuZCBhbHdheXMgc2V0IGl0Lgp8IAkgKi8KfCAJeXlfZGlkX2J1ZmZl cl9zd2l0Y2hfb25fZW9mID0gMTsKfCAJfQp8IAp8IAp8ICNpZmRlZiBZWV9VU0VfUFJPVE9T Cnwgdm9pZCB5eV9sb2FkX2J1ZmZlcl9zdGF0ZSggdm9pZCApCnwgI2Vsc2UKfCB2b2lkIHl5 X2xvYWRfYnVmZmVyX3N0YXRlKCkKfCAjZW5kaWYKfCAJewp8IAl5eV9uX2NoYXJzID0geXlf Y3VycmVudF9idWZmZXItPnl5X25fY2hhcnM7CnwgCXl5dGV4dF9wdHIgPSB5eV9jX2J1Zl9w ID0geXlfY3VycmVudF9idWZmZXItPnl5X2J1Zl9wb3M7CnwgCXl5aW4gPSB5eV9jdXJyZW50 X2J1ZmZlci0+eXlfaW5wdXRfZmlsZTsKfCAJeXlfaG9sZF9jaGFyID0gKnl5X2NfYnVmX3A7 CnwgCX0KfCAKfCAKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IFlZX0JVRkZFUl9TVEFURSB5 eV9jcmVhdGVfYnVmZmVyKCBGSUxFICpmaWxlLCBpbnQgc2l6ZSApCnwgI2Vsc2UKfCBZWV9C VUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlciggZmlsZSwgc2l6ZSApCnwgRklMRSAqZmls ZTsKfCBpbnQgc2l6ZTsKfCAjZW5kaWYKfCAJewp8IAlZWV9CVUZGRVJfU1RBVEUgYjsKfCAK fCAJYiA9IChZWV9CVUZGRVJfU1RBVEUpIHl5X2ZsZXhfYWxsb2MoIHNpemVvZiggc3RydWN0 IHl5X2J1ZmZlcl9zdGF0ZSApICk7CnwgCWlmICggISBiICkKfCAJCVlZX0ZBVEFMX0VSUk9S KCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKSIgKTsKfCAK fCAJYi0+eXlfYnVmX3NpemUgPSBzaXplOwp8IAp8IAkvKiB5eV9jaF9idWYgaGFzIHRvIGJl IDIgY2hhcmFjdGVycyBsb25nZXIgdGhhbiB0aGUgc2l6ZSBnaXZlbiBiZWNhdXNlCnwgCSAq IHdlIG5lZWQgdG8gcHV0IGluIDIgZW5kLW9mLWJ1ZmZlciBjaGFyYWN0ZXJzLgp8IAkgKi8K fCAJYi0+eXlfY2hfYnVmID0gKGNoYXIgKikgeXlfZmxleF9hbGxvYyggYi0+eXlfYnVmX3Np emUgKyAyICk7CnwgCWlmICggISBiLT55eV9jaF9idWYgKQp8IAkJWVlfRkFUQUxfRVJST1Io ICJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfY3JlYXRlX2J1ZmZlcigpIiApOwp8IAp8 IAliLT55eV9pc19vdXJfYnVmZmVyID0gMTsKfCAKfCAJeXlfaW5pdF9idWZmZXIoIGIsIGZp bGUgKTsKfCAKfCAJcmV0dXJuIGI7CnwgCX0KfCAKfCAKfCAjaWZkZWYgWVlfVVNFX1BST1RP Uwp8IHZvaWQgeXlfZGVsZXRlX2J1ZmZlciggWVlfQlVGRkVSX1NUQVRFIGIgKQp8ICNlbHNl Cnwgdm9pZCB5eV9kZWxldGVfYnVmZmVyKCBiICkKfCBZWV9CVUZGRVJfU1RBVEUgYjsKfCAj ZW5kaWYKfCAJewp8IAlpZiAoICEgYiApCnwgCQlyZXR1cm47CnwgCnwgCWlmICggYiA9PSB5 eV9jdXJyZW50X2J1ZmZlciApCnwgCQl5eV9jdXJyZW50X2J1ZmZlciA9IChZWV9CVUZGRVJf U1RBVEUpIDA7CnwgCnwgCWlmICggYi0+eXlfaXNfb3VyX2J1ZmZlciApCnwgCQl5eV9mbGV4 X2ZyZWUoICh2b2lkICopIGItPnl5X2NoX2J1ZiApOwp8IAp8IAl5eV9mbGV4X2ZyZWUoICh2 b2lkICopIGIgKTsKfCAJfQp8IAp8IAp8ICNpZm5kZWYgWVlfQUxXQVlTX0lOVEVSQUNUSVZF CnwgI2lmbmRlZiBZWV9ORVZFUl9JTlRFUkFDVElWRQp8IGV4dGVybiBpbnQgaXNhdHR5IFlZ X1BST1RPKCggaW50ICkpOwp8ICNlbmRpZgp8ICNlbmRpZgp8IAp8ICNpZmRlZiBZWV9VU0Vf UFJPVE9TCnwgdm9pZCB5eV9pbml0X2J1ZmZlciggWVlfQlVGRkVSX1NUQVRFIGIsIEZJTEUg KmZpbGUgKQp8ICNlbHNlCnwgdm9pZCB5eV9pbml0X2J1ZmZlciggYiwgZmlsZSApCnwgWVlf QlVGRkVSX1NUQVRFIGI7CnwgRklMRSAqZmlsZTsKfCAjZW5kaWYKfCAKfCAKfCAJewp8IAl5 eV9mbHVzaF9idWZmZXIoIGIgKTsKfCAKfCAJYi0+eXlfaW5wdXRfZmlsZSA9IGZpbGU7Cnwg CWItPnl5X2ZpbGxfYnVmZmVyID0gMTsKfCAKfCAjaWYgWVlfQUxXQVlTX0lOVEVSQUNUSVZF CnwgCWItPnl5X2lzX2ludGVyYWN0aXZlID0gMTsKfCAjZWxzZQp8ICNpZiBZWV9ORVZFUl9J TlRFUkFDVElWRQp8IAliLT55eV9pc19pbnRlcmFjdGl2ZSA9IDA7CnwgI2Vsc2UKfCAJYi0+ eXlfaXNfaW50ZXJhY3RpdmUgPSBmaWxlID8gKGlzYXR0eSggZmlsZW5vKGZpbGUpICkgPiAw KSA6IDA7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCX0KfCAKfCAKfCAjaWZkZWYgWVlfVVNFX1BS T1RPUwp8IHZvaWQgeXlfZmx1c2hfYnVmZmVyKCBZWV9CVUZGRVJfU1RBVEUgYiApCnwgI2Vs c2UKfCB2b2lkIHl5X2ZsdXNoX2J1ZmZlciggYiApCnwgWVlfQlVGRkVSX1NUQVRFIGI7Cnwg I2VuZGlmCnwgCnwgCXsKfCAJaWYgKCAhIGIgKQp8IAkJcmV0dXJuOwp8IAp8IAliLT55eV9u X2NoYXJzID0gMDsKfCAKfCAJLyogV2UgYWx3YXlzIG5lZWQgdHdvIGVuZC1vZi1idWZmZXIg Y2hhcmFjdGVycy4gIFRoZSBmaXJzdCBjYXVzZXMKfCAJICogYSB0cmFuc2l0aW9uIHRvIHRo ZSBlbmQtb2YtYnVmZmVyIHN0YXRlLiAgVGhlIHNlY29uZCBjYXVzZXMKfCAJICogYSBqYW0g aW4gdGhhdCBzdGF0ZS4KfCAJICovCnwgCWItPnl5X2NoX2J1ZlswXSA9IFlZX0VORF9PRl9C VUZGRVJfQ0hBUjsKfCAJYi0+eXlfY2hfYnVmWzFdID0gWVlfRU5EX09GX0JVRkZFUl9DSEFS Owp8IAp8IAliLT55eV9idWZfcG9zID0gJmItPnl5X2NoX2J1ZlswXTsKfCAKfCAJYi0+eXlf YXRfYm9sID0gMTsKfCAJYi0+eXlfYnVmZmVyX3N0YXR1cyA9IFlZX0JVRkZFUl9ORVc7Cnwg CnwgCWlmICggYiA9PSB5eV9jdXJyZW50X2J1ZmZlciApCnwgCQl5eV9sb2FkX2J1ZmZlcl9z dGF0ZSgpOwp8IAl9CnwgCnwgCnwgI2lmbmRlZiBZWV9OT19TQ0FOX0JVRkZFUgp8ICNpZmRl ZiBZWV9VU0VfUFJPVE9TCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnVmZmVyKCBjaGFy ICpiYXNlLCB5eV9zaXplX3Qgc2l6ZSApCnwgI2Vsc2UKfCBZWV9CVUZGRVJfU1RBVEUgeXlf c2Nhbl9idWZmZXIoIGJhc2UsIHNpemUgKQp8IGNoYXIgKmJhc2U7CnwgeXlfc2l6ZV90IHNp emU7CnwgI2VuZGlmCnwgCXsKfCAJWVlfQlVGRkVSX1NUQVRFIGI7CnwgCnwgCWlmICggc2l6 ZSA8IDIgfHwKfCAJICAgICBiYXNlW3NpemUtMl0gIT0gWVlfRU5EX09GX0JVRkZFUl9DSEFS IHx8CnwgCSAgICAgYmFzZVtzaXplLTFdICE9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiApCnwg CQkvKiBUaGV5IGZvcmdvdCB0byBsZWF2ZSByb29tIGZvciB0aGUgRU9CJ3MuICovCnwgCQly ZXR1cm4gMDsKfCAKfCAJYiA9IChZWV9CVUZGRVJfU1RBVEUpIHl5X2ZsZXhfYWxsb2MoIHNp emVvZiggc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSApICk7CnwgCWlmICggISBiICkKfCAJCVlZ X0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X3NjYW5fYnVmZmVy KCkiICk7CnwgCnwgCWItPnl5X2J1Zl9zaXplID0gc2l6ZSAtIDI7CS8qICItIDIiIHRvIHRh a2UgY2FyZSBvZiBFT0IncyAqLwp8IAliLT55eV9idWZfcG9zID0gYi0+eXlfY2hfYnVmID0g YmFzZTsKfCAJYi0+eXlfaXNfb3VyX2J1ZmZlciA9IDA7CnwgCWItPnl5X2lucHV0X2ZpbGUg PSAwOwp8IAliLT55eV9uX2NoYXJzID0gYi0+eXlfYnVmX3NpemU7CnwgCWItPnl5X2lzX2lu dGVyYWN0aXZlID0gMDsKfCAJYi0+eXlfYXRfYm9sID0gMTsKfCAJYi0+eXlfZmlsbF9idWZm ZXIgPSAwOwp8IAliLT55eV9idWZmZXJfc3RhdHVzID0gWVlfQlVGRkVSX05FVzsKfCAKfCAJ eXlfc3dpdGNoX3RvX2J1ZmZlciggYiApOwp8IAp8IAlyZXR1cm4gYjsKfCAJfQp8ICNlbmRp Zgp8IAp8IAp8ICNpZm5kZWYgWVlfTk9fU0NBTl9TVFJJTkcKfCAjaWZkZWYgWVlfVVNFX1BS T1RPUwp8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX3N0cmluZyggeXljb25zdCBjaGFyICp5 eV9zdHIgKQp8ICNlbHNlCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fc3RyaW5nKCB5eV9z dHIgKQp8IHl5Y29uc3QgY2hhciAqeXlfc3RyOwp8ICNlbmRpZgp8IAl7CnwgCWludCBsZW47 CnwgCWZvciAoIGxlbiA9IDA7IHl5X3N0cltsZW5dOyArK2xlbiApCnwgCQk7CnwgCnwgCXJl dHVybiB5eV9zY2FuX2J5dGVzKCB5eV9zdHIsIGxlbiApOwp8IAl9CnwgI2VuZGlmCnwgCnwg CnwgI2lmbmRlZiBZWV9OT19TQ0FOX0JZVEVTCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCBZ WV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9ieXRlcyggeXljb25zdCBjaGFyICpieXRlcywgaW50 IGxlbiApCnwgI2Vsc2UKfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9ieXRlcyggYnl0ZXMs IGxlbiApCnwgeXljb25zdCBjaGFyICpieXRlczsKfCBpbnQgbGVuOwp8ICNlbmRpZgp8IAl7 CnwgCVlZX0JVRkZFUl9TVEFURSBiOwp8IAljaGFyICpidWY7CnwgCXl5X3NpemVfdCBuOwp8 IAlpbnQgaTsKfCAKfCAJLyogR2V0IG1lbW9yeSBmb3IgZnVsbCBidWZmZXIsIGluY2x1ZGlu ZyBzcGFjZSBmb3IgdHJhaWxpbmcgRU9CJ3MuICovCnwgCW4gPSBsZW4gKyAyOwp8IAlidWYg PSAoY2hhciAqKSB5eV9mbGV4X2FsbG9jKCBuICk7CnwgCWlmICggISBidWYgKQp8IAkJWVlf RkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfc2Nhbl9ieXRlcygp IiApOwp8IAp8IAlmb3IgKCBpID0gMDsgaSA8IGxlbjsgKytpICkKfCAJCWJ1ZltpXSA9IGJ5 dGVzW2ldOwp8IAp8IAlidWZbbGVuXSA9IGJ1ZltsZW4rMV0gPSBZWV9FTkRfT0ZfQlVGRkVS X0NIQVI7CnwgCnwgCWIgPSB5eV9zY2FuX2J1ZmZlciggYnVmLCBuICk7CnwgCWlmICggISBi ICkKfCAJCVlZX0ZBVEFMX0VSUk9SKCAiYmFkIGJ1ZmZlciBpbiB5eV9zY2FuX2J5dGVzKCki ICk7CnwgCnwgCS8qIEl0J3Mgb2theSB0byBncm93IGV0Yy4gdGhpcyBidWZmZXIsIGFuZCB3 ZSBzaG91bGQgdGhyb3cgaXQKfCAJICogYXdheSB3aGVuIHdlJ3JlIGRvbmUuCnwgCSAqLwp8 IAliLT55eV9pc19vdXJfYnVmZmVyID0gMTsKfCAKfCAJcmV0dXJuIGI7CnwgCX0KfCAjZW5k aWYKfCAKfCAKfCAjaWZuZGVmIFlZX05PX1BVU0hfU1RBVEUKfCAjaWZkZWYgWVlfVVNFX1BS T1RPUwp8IHN0YXRpYyB2b2lkIHl5X3B1c2hfc3RhdGUoIGludCBuZXdfc3RhdGUgKQp8ICNl bHNlCnwgc3RhdGljIHZvaWQgeXlfcHVzaF9zdGF0ZSggbmV3X3N0YXRlICkKfCBpbnQgbmV3 X3N0YXRlOwp8ICNlbmRpZgp8IAl7CnwgCWlmICggeXlfc3RhcnRfc3RhY2tfcHRyID49IHl5 X3N0YXJ0X3N0YWNrX2RlcHRoICkKfCAJCXsKfCAJCXl5X3NpemVfdCBuZXdfc2l6ZTsKfCAK fCAJCXl5X3N0YXJ0X3N0YWNrX2RlcHRoICs9IFlZX1NUQVJUX1NUQUNLX0lOQ1I7CnwgCQlu ZXdfc2l6ZSA9IHl5X3N0YXJ0X3N0YWNrX2RlcHRoICogc2l6ZW9mKCBpbnQgKTsKfCAKfCAJ CWlmICggISB5eV9zdGFydF9zdGFjayApCnwgCQkJeXlfc3RhcnRfc3RhY2sgPSAoaW50ICop IHl5X2ZsZXhfYWxsb2MoIG5ld19zaXplICk7CnwgCnwgCQllbHNlCnwgCQkJeXlfc3RhcnRf c3RhY2sgPSAoaW50ICopIHl5X2ZsZXhfcmVhbGxvYygKfCAJCQkJCSh2b2lkICopIHl5X3N0 YXJ0X3N0YWNrLCBuZXdfc2l6ZSApOwp8IAp8IAkJaWYgKCAhIHl5X3N0YXJ0X3N0YWNrICkK fCAJCQlZWV9GQVRBTF9FUlJPUigKfCAJCQkib3V0IG9mIG1lbW9yeSBleHBhbmRpbmcgc3Rh cnQtY29uZGl0aW9uIHN0YWNrIiApOwp8IAkJfQp8IAp8IAl5eV9zdGFydF9zdGFja1t5eV9z dGFydF9zdGFja19wdHIrK10gPSBZWV9TVEFSVDsKfCAKfCAJQkVHSU4obmV3X3N0YXRlKTsK fCAJfQp8ICNlbmRpZgp8IAp8IAp8ICNpZm5kZWYgWVlfTk9fUE9QX1NUQVRFCnwgI2lmZGVm IFlZX1VTRV9QUk9UT1MKfCBzdGF0aWMgdm9pZCB5eV9wb3Bfc3RhdGUodm9pZCkKfCAjZWxz ZQp8IHN0YXRpYyB2b2lkIHl5X3BvcF9zdGF0ZSgpCnwgI2VuZGlmCnwgCXsKfCAJaWYgKCAt LXl5X3N0YXJ0X3N0YWNrX3B0ciA8IDAgKQp8IAkJWVlfRkFUQUxfRVJST1IoICJzdGFydC1j b25kaXRpb24gc3RhY2sgdW5kZXJmbG93IiApOwp8IAp8IAlCRUdJTih5eV9zdGFydF9zdGFj a1t5eV9zdGFydF9zdGFja19wdHJdKTsKfCAJfQp8ICNlbmRpZgp8IAp8IAp8ICNpZm5kZWYg WVlfTk9fVE9QX1NUQVRFCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCBzdGF0aWMgaW50IHl5 X3RvcF9zdGF0ZSh2b2lkKQp8ICNlbHNlCnwgc3RhdGljIGludCB5eV90b3Bfc3RhdGUoKQp8 ICNlbmRpZgp8IAl7CnwgCXJldHVybiB5eV9zdGFydF9zdGFja1t5eV9zdGFydF9zdGFja19w dHIgLSAxXTsKfCAJfQp8ICNlbmRpZgp8IAp8ICNpZm5kZWYgWVlfRVhJVF9GQUlMVVJFCnwg I2RlZmluZSBZWV9FWElUX0ZBSUxVUkUgMgp8ICNlbmRpZgp8IAp8ICNpZmRlZiBZWV9VU0Vf UFJPVE9TCnwgc3RhdGljIHZvaWQgeXlfZmF0YWxfZXJyb3IoIHl5Y29uc3QgY2hhciBtc2db XSApCnwgI2Vsc2UKfCBzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvciggbXNnICkKfCBjaGFy IG1zZ1tdOwp8ICNlbmRpZgp8IAl7CnwgCSh2b2lkKSBmcHJpbnRmKCBzdGRlcnIsICIlc1xu IiwgbXNnICk7CnwgCWV4aXQoIFlZX0VYSVRfRkFJTFVSRSApOwp8IAl9CnwgCnwgCnwgCnwg LyogUmVkZWZpbmUgeXlsZXNzKCkgc28gaXQgd29ya3MgaW4gc2VjdGlvbiAzIGNvZGUuICov CnwgCnwgI3VuZGVmIHl5bGVzcwp8ICNkZWZpbmUgeXlsZXNzKG4pIFwKfCAJZG8gXAp8IAkJ eyBcCnwgCQkvKiBVbmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQuICovIFwKfCAJ CXl5dGV4dFt5eWxlbmddID0geXlfaG9sZF9jaGFyOyBcCnwgCQl5eV9jX2J1Zl9wID0geXl0 ZXh0ICsgbjsgXAp8IAkJeXlfaG9sZF9jaGFyID0gKnl5X2NfYnVmX3A7IFwKfCAJCSp5eV9j X2J1Zl9wID0gJ1wwJzsgXAp8IAkJeXlsZW5nID0gbjsgXAp8IAkJfSBcCnwgCXdoaWxlICgg MCApCnwgCnwgCnwgLyogSW50ZXJuYWwgdXRpbGl0eSByb3V0aW5lcy4gKi8KfCAKfCAjaWZu ZGVmIHl5dGV4dF9wdHIKfCAjaWZkZWYgWVlfVVNFX1BST1RPUwp8IHN0YXRpYyB2b2lkIHl5 X2ZsZXhfc3RybmNweSggY2hhciAqczEsIHl5Y29uc3QgY2hhciAqczIsIGludCBuICkKfCAj ZWxzZQp8IHN0YXRpYyB2b2lkIHl5X2ZsZXhfc3RybmNweSggczEsIHMyLCBuICkKfCBjaGFy ICpzMTsKfCB5eWNvbnN0IGNoYXIgKnMyOwp8IGludCBuOwp8ICNlbmRpZgp8IAl7CnwgCWlu dCBpOwp8IAlmb3IgKCBpID0gMDsgaSA8IG47ICsraSApCnwgCQlzMVtpXSA9IHMyW2ldOwp8 IAl9CnwgI2VuZGlmCnwgCnwgI2lmZGVmIFlZX05FRURfU1RSTEVOCnwgI2lmZGVmIFlZX1VT RV9QUk9UT1MKfCBzdGF0aWMgaW50IHl5X2ZsZXhfc3RybGVuKCB5eWNvbnN0IGNoYXIgKnMg KQp8ICNlbHNlCnwgc3RhdGljIGludCB5eV9mbGV4X3N0cmxlbiggcyApCnwgeXljb25zdCBj aGFyICpzOwp8ICNlbmRpZgp8IAl7CnwgCWludCBuOwp8IAlmb3IgKCBuID0gMDsgc1tuXTsg KytuICkKfCAJCTsKfCAKfCAJcmV0dXJuIG47CnwgCX0KfCAjZW5kaWYKfCAKfCAKfCAjaWZk ZWYgWVlfVVNFX1BST1RPUwp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X2FsbG9jKCB5eV9zaXpl X3Qgc2l6ZSApCnwgI2Vsc2UKfCBzdGF0aWMgdm9pZCAqeXlfZmxleF9hbGxvYyggc2l6ZSAp CnwgeXlfc2l6ZV90IHNpemU7CnwgI2VuZGlmCnwgCXsKfCAJcmV0dXJuICh2b2lkICopIG1h bGxvYyggc2l6ZSApOwp8IAl9CnwgCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MKfCBzdGF0aWMg dm9pZCAqeXlfZmxleF9yZWFsbG9jKCB2b2lkICpwdHIsIHl5X3NpemVfdCBzaXplICkKfCAj ZWxzZQp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X3JlYWxsb2MoIHB0ciwgc2l6ZSApCnwgdm9p ZCAqcHRyOwp8IHl5X3NpemVfdCBzaXplOwp8ICNlbmRpZgp8IAl7CnwgCS8qIFRoZSBjYXN0 IHRvIChjaGFyICopIGluIHRoZSBmb2xsb3dpbmcgYWNjb21tb2RhdGVzIGJvdGgKfCAJICog aW1wbGVtZW50YXRpb25zIHRoYXQgdXNlIGNoYXIqIGdlbmVyaWMgcG9pbnRlcnMsIGFuZCB0 aG9zZQp8IAkgKiB0aGF0IHVzZSB2b2lkKiBnZW5lcmljIHBvaW50ZXJzLiAgSXQgd29ya3Mg d2l0aCB0aGUgbGF0dGVyCnwgCSAqIGJlY2F1c2UgYm90aCBBTlNJIEMgYW5kIEMrKyBhbGxv dyBjYXN0bGVzcyBhc3NpZ25tZW50IGZyb20KfCAJICogYW55IHBvaW50ZXIgdHlwZSB0byB2 b2lkKiwgYW5kIGRlYWwgd2l0aCBhcmd1bWVudCBjb252ZXJzaW9ucwp8IAkgKiBhcyB0aG91 Z2ggZG9pbmcgYW4gYXNzaWdubWVudC4KfCAJICovCnwgCXJldHVybiAodm9pZCAqKSByZWFs bG9jKCAoY2hhciAqKSBwdHIsIHNpemUgKTsKfCAJfQp8IAp8ICNpZmRlZiBZWV9VU0VfUFJP VE9TCnwgc3RhdGljIHZvaWQgeXlfZmxleF9mcmVlKCB2b2lkICpwdHIgKQp8ICNlbHNlCnwg c3RhdGljIHZvaWQgeXlfZmxleF9mcmVlKCBwdHIgKQp8IHZvaWQgKnB0cjsKfCAjZW5kaWYK fCAJewp8IAlmcmVlKCBwdHIgKTsKfCAJfQp8IAp8ICNpZiBZWV9NQUlOCnwgaW50IG1haW4o KQp8IAl7CnwgCXl5bGV4KCk7CnwgCXJldHVybiAwOwp8IAl9CnwgI2VuZGlmCnwgI2xpbmUg OSAiY29uZnRlc3QubCIKfCAKfCAjaWZkZWYgWVlURVhUX1BPSU5URVIKfCBleHRlcm4gY2hh ciAqeXl0ZXh0Owp8ICNlbmRpZgp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8ICAgcmV0dXJu ICEgeXlsZXggKCkgKyAhIHl5d3JhcCAoKTsKfCB9CmNvbmZpZ3VyZToxMjg4MzogY2MgLW8g Y29uZnRlc3QgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgLXJwYXRoPS91c3Iv bGliOi91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgLWxmbCAgPiY1CmNjOiB3YXJuaW5nOiBh cmd1bWVudCB1bnVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uOiAnLXJwYXRoPS91c3IvbGliOi91 c3IvbG9jYWwvbGliJwpjb25mdGVzdC5sOjY6MjA6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0 d2VlbiBwb2ludGVyIGFuZCBpbnRlZ2VyICgnY2hhciAqJyBhbmQgJ2ludCcpCnsgeXlsZXNz IChpbnB1dCAoKSAhPSAwKTsgfQogIH5+fn5+fn5+fn5+fn5+fn5+Xn5+fn4KY29uZnRlc3Qu YzoxMzg6MzI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3l5bGVzcycKICAgICAgICAg ICAgICAgIHl5X2NfYnVmX3AgPSB5eV9jcCA9IHl5X2JwICsgbiAtIFlZX01PUkVfQURKOyBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fl5+fn5+fn5+ fn5+fn5+fn5+fgpjb25mdGVzdC5sOjY6Mzogd2FybmluZzogaW5jb21wYXRpYmxlIGludGVn ZXIgdG8gcG9pbnRlciBjb252ZXJzaW9uIGFzc2lnbmluZyB0byAnY2hhciAqJyBmcm9tICdp bnQnIFstV2ludC1jb252ZXJzaW9uXQp7IHl5bGVzcyAoaW5wdXQgKCkgIT0gMCk7IH0KICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MTM4OjIyOiBub3RlOiBleHBhbmRl ZCBmcm9tIG1hY3JvICd5eWxlc3MnCiAgICAgICAgICAgICAgICB5eV9jX2J1Zl9wID0geXlf Y3AgPSB5eV9icCArIG4gLSBZWV9NT1JFX0FESjsgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBn ZW5lcmF0ZWQuCmNvbmZpZ3VyZToxMjg5MDogJD8gPSAwCmNvbmZpZ3VyZToxMjkxNDogcmVz dWx0OiAtbGZsCmNvbmZpZ3VyZToxMjkyMDogY2hlY2tpbmcgd2hldGhlciB5eXRleHQgaXMg YSBwb2ludGVyCmNvbmZpZ3VyZToxMjk0MTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlIC1m bm8tc3RyaWN0LWFsaWFzaW5nICAgLXJwYXRoPS91c3IvbGliOi91c3IvbG9jYWwvbGliIGNv bmZ0ZXN0LmMgLWxmbCAgPiY1CmNjOiB3YXJuaW5nOiBhcmd1bWVudCB1bnVzZWQgZHVyaW5n IGNvbXBpbGF0aW9uOiAnLXJwYXRoPS91c3IvbGliOi91c3IvbG9jYWwvbGliJwpjb25mdGVz dC5sOjY6MjA6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBwb2ludGVyIGFuZCBpbnRl Z2VyICgnY2hhciAqJyBhbmQgJ2ludCcpCnsgeXlsZXNzIChpbnB1dCAoKSAhPSAwKTsgfQog IH5+fn5+fn5+fn5+fn5+fn5+Xn5+fn4KY29uZnRlc3QuYzoxMzk6MzI6IG5vdGU6IGV4cGFu ZGVkIGZyb20gbWFjcm8gJ3l5bGVzcycKICAgICAgICAgICAgICAgIHl5X2NfYnVmX3AgPSB5 eV9jcCA9IHl5X2JwICsgbiAtIFlZX01PUkVfQURKOyBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB+fn5+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fgpjb25mdGVzdC5s OjY6Mzogd2FybmluZzogaW5jb21wYXRpYmxlIGludGVnZXIgdG8gcG9pbnRlciBjb252ZXJz aW9uIGFzc2lnbmluZyB0byAnY2hhciAqJyBmcm9tICdpbnQnIFstV2ludC1jb252ZXJzaW9u XQp7IHl5bGVzcyAoaW5wdXQgKCkgIT0gMCk7IH0KICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ CmNvbmZ0ZXN0LmM6MTM5OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICd5eWxlc3Mn CiAgICAgICAgICAgICAgICB5eV9jX2J1Zl9wID0geXlfY3AgPSB5eV9icCArIG4gLSBZWV9N T1JFX0FESjsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCmNvbmZpZ3VyZTox Mjk0ODogJD8gPSAwCmNvbmZpZ3VyZToxMjk3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEy OTg2OiBjaGVja2luZyBmb3IgYmlzb24KY29uZmlndXJlOjEzMDAyOiBmb3VuZCAvdXNyL2xv Y2FsL2Jpbi9iaXNvbgpjb25maWd1cmU6MTMwMTM6IHJlc3VsdDogYmlzb24gLXkKY29uZmln dXJlOjEzMDMyOiBjaGVja2luZyBmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVl ZGVkIGZvciBsYXJnZSBmaWxlcwpjb25maWd1cmU6MTMxMjc6IHJlc3VsdDogbm8KY29uZmln dXJlOjEzMTMzOiBjaGVja2luZyBmb3IgX0ZJTEVfT0ZGU0VUX0JJVFMgdmFsdWUgbmVlZGVk IGZvciBsYXJnZSBmaWxlcwpjb25maWd1cmU6MTMxNjg6IGNjIC1jIC1PMiAtcGlwZSAtZm5v LXN0cmljdC1hbGlhc2luZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjEzMTc1OiAkPyA9 IDAKY29uZmlndXJlOjEzMjQ0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMzM4NzogY2hlY2tp bmcgZm9yIGNwcApjb25maWd1cmU6MTM0MDY6IGZvdW5kIC91c3IvYmluL2NwcApjb25maWd1 cmU6MTM0MTg6IHJlc3VsdDogL3Vzci9iaW4vY3BwCmNvbmZpZ3VyZToxMzQzNDogY2hlY2tp bmcgaWYgL3Vzci9iaW4vY3BwIHJlcXVpcmVzIC11bmRlZgpjb25maWd1cmU6MTM0NDU6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxMzQ2MDogY2hlY2tpbmcgaWYgL3Vzci9iaW4vY3BwIHJl cXVpcmVzIC10cmFkaXRpb25hbApjb25maWd1cmU6MTM0NzQ6IGVycm9yOiAvdXNyL2Jpbi9j cHAgZG9lcyBub3QgcHJlc2VydmUgd2hpdGVzcGFjZSB3aXRoIG9yIHdpdGhvdXQgLXRyYWRp dGlvbmFsLiAgSSBkb24ndCBrbm93IHdoYXQgdG8gZG8uCgojIyAtLS0tLS0tLS0tLS0tLS0t ICMjCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwoKYWNf Y3ZfYnVpbGQ9YW1kNjQtcG9ydGJsZC1mcmVlYnNkOS4wCmFjX2N2X2NfY29tcGlsZXJfZ251 PXllcwphY19jdl9lbnZfQ0NBU0ZMQUdTX3NldD0nJwphY19jdl9lbnZfQ0NBU0ZMQUdTX3Zh bHVlPScnCmFjX2N2X2Vudl9DQ0FTX3NldD0nJwphY19jdl9lbnZfQ0NBU192YWx1ZT0nJwph Y19jdl9lbnZfQ0Nfc2V0PXNldAphY19jdl9lbnZfQ0NfdmFsdWU9Y2MKYWNfY3ZfZW52X0NG TEFHU19zZXQ9c2V0CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9Jy1PMiAtcGlwZSAtZm5vLXN0 cmljdC1hbGlhc2luZycKYWNfY3ZfZW52X0NQUEZMQUdTX3NldD1zZXQKYWNfY3ZfZW52X0NQ UEZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9DUFBfc2V0PXNldAphY19jdl9lbnZfQ1BQX3Zh bHVlPWNwcAphY19jdl9lbnZfREJVU19DRkxBR1Nfc2V0PScnCmFjX2N2X2Vudl9EQlVTX0NG TEFHU192YWx1ZT0nJwphY19jdl9lbnZfREJVU19MSUJTX3NldD0nJwphY19jdl9lbnZfREJV U19MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9ER0FfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZf REdBX0NGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfREdBX0xJQlNfc2V0PScnCmFjX2N2X2Vu dl9ER0FfTElCU192YWx1ZT0nJwphY19jdl9lbnZfRE1YRVhBTVBMRVNfREVQX0NGTEFHU19z ZXQ9JycKYWNfY3ZfZW52X0RNWEVYQU1QTEVTX0RFUF9DRkxBR1NfdmFsdWU9JycKYWNfY3Zf ZW52X0RNWEVYQU1QTEVTX0RFUF9MSUJTX3NldD0nJwphY19jdl9lbnZfRE1YRVhBTVBMRVNf REVQX0xJQlNfdmFsdWU9JycKYWNfY3ZfZW52X0RNWE1PRFVMRVNfQ0ZMQUdTX3NldD0nJwph Y19jdl9lbnZfRE1YTU9EVUxFU19DRkxBR1NfdmFsdWU9JycKYWNfY3ZfZW52X0RNWE1PRFVM RVNfTElCU19zZXQ9JycKYWNfY3ZfZW52X0RNWE1PRFVMRVNfTElCU192YWx1ZT0nJwphY19j dl9lbnZfRE1YWElFWEFNUExFU19ERVBfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZfRE1YWElF WEFNUExFU19ERVBfQ0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9ETVhYSUVYQU1QTEVTX0RF UF9MSUJTX3NldD0nJwphY19jdl9lbnZfRE1YWElFWEFNUExFU19ERVBfTElCU192YWx1ZT0n JwphY19jdl9lbnZfRE1YWE1VRVhBTVBMRVNfREVQX0NGTEFHU19zZXQ9JycKYWNfY3ZfZW52 X0RNWFhNVUVYQU1QTEVTX0RFUF9DRkxBR1NfdmFsdWU9JycKYWNfY3ZfZW52X0RNWFhNVUVY QU1QTEVTX0RFUF9MSUJTX3NldD0nJwphY19jdl9lbnZfRE1YWE1VRVhBTVBMRVNfREVQX0xJ QlNfdmFsdWU9JycKYWNfY3ZfZW52X0RSSTJQUk9UT19DRkxBR1Nfc2V0PScnCmFjX2N2X2Vu dl9EUkkyUFJPVE9fQ0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9EUkkyUFJPVE9fTElCU19z ZXQ9JycKYWNfY3ZfZW52X0RSSTJQUk9UT19MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9EUklQ Uk9UT19DRkxBR1Nfc2V0PScnCmFjX2N2X2Vudl9EUklQUk9UT19DRkxBR1NfdmFsdWU9JycK YWNfY3ZfZW52X0RSSVBST1RPX0xJQlNfc2V0PScnCmFjX2N2X2Vudl9EUklQUk9UT19MSUJT X3ZhbHVlPScnCmFjX2N2X2Vudl9EUklfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZfRFJJX0NG TEFHU192YWx1ZT0nJwphY19jdl9lbnZfRFJJX0xJQlNfc2V0PScnCmFjX2N2X2Vudl9EUklf TElCU192YWx1ZT0nJwphY19jdl9lbnZfR0xJQl9DRkxBR1Nfc2V0PScnCmFjX2N2X2Vudl9H TElCX0NGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfR0xJQl9MSUJTX3NldD0nJwphY19jdl9l bnZfR0xJQl9MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9HTF9DRkxBR1Nfc2V0PScnCmFjX2N2 X2Vudl9HTF9DRkxBR1NfdmFsdWU9JycKYWNfY3ZfZW52X0dMX0xJQlNfc2V0PScnCmFjX2N2 X2Vudl9HTF9MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9IQUxfQ0ZMQUdTX3NldD0nJwphY19j dl9lbnZfSEFMX0NGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfSEFMX0xJQlNfc2V0PScnCmFj X2N2X2Vudl9IQUxfTElCU192YWx1ZT0nJwphY19jdl9lbnZfTERGTEFHU19zZXQ9c2V0CmFj X2N2X2Vudl9MREZMQUdTX3ZhbHVlPScgLXJwYXRoPS91c3IvbGliOi91c3IvbG9jYWwvbGli JwphY19jdl9lbnZfTElCRFJNX0NGTEFHU19zZXQ9JycKYWNfY3ZfZW52X0xJQkRSTV9DRkxB R1NfdmFsdWU9JycKYWNfY3ZfZW52X0xJQkRSTV9MSUJTX3NldD0nJwphY19jdl9lbnZfTElC RFJNX0xJQlNfdmFsdWU9JycKYWNfY3ZfZW52X0xJQlNfc2V0PScnCmFjX2N2X2Vudl9MSUJT X3ZhbHVlPScnCmFjX2N2X2Vudl9QQ0lBQ0NFU1NfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZf UENJQUNDRVNTX0NGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfUENJQUNDRVNTX0xJQlNfc2V0 PScnCmFjX2N2X2Vudl9QQ0lBQ0NFU1NfTElCU192YWx1ZT0nJwphY19jdl9lbnZfUEtHX0NP TkZJR19zZXQ9JycKYWNfY3ZfZW52X1BLR19DT05GSUdfdmFsdWU9JycKYWNfY3ZfZW52X1NF TElOVVhfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZfU0VMSU5VWF9DRkxBR1NfdmFsdWU9JycK YWNfY3ZfZW52X1NFTElOVVhfTElCU19zZXQ9JycKYWNfY3ZfZW52X1NFTElOVVhfTElCU192 YWx1ZT0nJwphY19jdl9lbnZfVFNMSUJfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZfVFNMSUJf Q0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9UU0xJQl9MSUJTX3NldD0nJwphY19jdl9lbnZf VFNMSUJfTElCU192YWx1ZT0nJwphY19jdl9lbnZfWDExRVhBTVBMRVNfREVQX0NGTEFHU19z ZXQ9JycKYWNfY3ZfZW52X1gxMUVYQU1QTEVTX0RFUF9DRkxBR1NfdmFsdWU9JycKYWNfY3Zf ZW52X1gxMUVYQU1QTEVTX0RFUF9MSUJTX3NldD0nJwphY19jdl9lbnZfWDExRVhBTVBMRVNf REVQX0xJQlNfdmFsdWU9JycKYWNfY3ZfZW52X1hETUNQX0NGTEFHU19zZXQ9JycKYWNfY3Zf ZW52X1hETUNQX0NGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfWERNQ1BfTElCU19zZXQ9JycK YWNfY3ZfZW52X1hETUNQX0xJQlNfdmFsdWU9JycKYWNfY3ZfZW52X1hETVhDT05GSUdfREVQ X0NGTEFHU19zZXQ9JycKYWNfY3ZfZW52X1hETVhDT05GSUdfREVQX0NGTEFHU192YWx1ZT0n JwphY19jdl9lbnZfWERNWENPTkZJR19ERVBfTElCU19zZXQ9JycKYWNfY3ZfZW52X1hETVhD T05GSUdfREVQX0xJQlNfdmFsdWU9JycKYWNfY3ZfZW52X1hFUEhZUl9DRkxBR1Nfc2V0PScn CmFjX2N2X2Vudl9YRVBIWVJfQ0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9YRVBIWVJfTElC U19zZXQ9JycKYWNfY3ZfZW52X1hFUEhZUl9MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9YRjg2 VklETU9ERV9DRkxBR1Nfc2V0PScnCmFjX2N2X2Vudl9YRjg2VklETU9ERV9DRkxBR1NfdmFs dWU9JycKYWNfY3ZfZW52X1hGODZWSURNT0RFX0xJQlNfc2V0PScnCmFjX2N2X2Vudl9YRjg2 VklETU9ERV9MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9YTElCX0NGTEFHU19zZXQ9JycKYWNf Y3ZfZW52X1hMSUJfQ0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9YTElCX0xJQlNfc2V0PScn CmFjX2N2X2Vudl9YTElCX0xJQlNfdmFsdWU9JycKYWNfY3ZfZW52X1hORVNUTU9EVUxFU19D RkxBR1Nfc2V0PScnCmFjX2N2X2Vudl9YTkVTVE1PRFVMRVNfQ0ZMQUdTX3ZhbHVlPScnCmFj X2N2X2Vudl9YTkVTVE1PRFVMRVNfTElCU19zZXQ9JycKYWNfY3ZfZW52X1hORVNUTU9EVUxF U19MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9YT1JHX01PRFVMRVNfQ0ZMQUdTX3NldD0nJwph Y19jdl9lbnZfWE9SR19NT0RVTEVTX0NGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfWE9SR19N T0RVTEVTX0xJQlNfc2V0PScnCmFjX2N2X2Vudl9YT1JHX01PRFVMRVNfTElCU192YWx1ZT0n JwphY19jdl9lbnZfWFBCUFJPWFlfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZfWFBCUFJPWFlf Q0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9YUEJQUk9YWV9MSUJTX3NldD0nJwphY19jdl9l bnZfWFBCUFJPWFlfTElCU192YWx1ZT0nJwphY19jdl9lbnZfWFJFU0VYQU1QTEVTX0RFUF9D RkxBR1Nfc2V0PScnCmFjX2N2X2Vudl9YUkVTRVhBTVBMRVNfREVQX0NGTEFHU192YWx1ZT0n JwphY19jdl9lbnZfWFJFU0VYQU1QTEVTX0RFUF9MSUJTX3NldD0nJwphY19jdl9lbnZfWFJF U0VYQU1QTEVTX0RFUF9MSUJTX3ZhbHVlPScnCmFjX2N2X2Vudl9YU0VSVkVSQ0ZMQUdTX0NG TEFHU19zZXQ9JycKYWNfY3ZfZW52X1hTRVJWRVJDRkxBR1NfQ0ZMQUdTX3ZhbHVlPScnCmFj X2N2X2Vudl9YU0VSVkVSQ0ZMQUdTX0xJQlNfc2V0PScnCmFjX2N2X2Vudl9YU0VSVkVSQ0ZM QUdTX0xJQlNfdmFsdWU9JycKYWNfY3ZfZW52X1hTRVJWRVJMSUJTX0NGTEFHU19zZXQ9JycK YWNfY3ZfZW52X1hTRVJWRVJMSUJTX0NGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfWFNFUlZF UkxJQlNfTElCU19zZXQ9JycKYWNfY3ZfZW52X1hTRVJWRVJMSUJTX0xJQlNfdmFsdWU9JycK YWNfY3ZfZW52X1hUU1RFWEFNUExFU19ERVBfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZfWFRT VEVYQU1QTEVTX0RFUF9DRkxBR1NfdmFsdWU9JycKYWNfY3ZfZW52X1hUU1RFWEFNUExFU19E RVBfTElCU19zZXQ9JycKYWNfY3ZfZW52X1hUU1RFWEFNUExFU19ERVBfTElCU192YWx1ZT0n JwphY19jdl9lbnZfWFdJTk1PRFVMRVNfQ0ZMQUdTX3NldD0nJwphY19jdl9lbnZfWFdJTk1P RFVMRVNfQ0ZMQUdTX3ZhbHVlPScnCmFjX2N2X2Vudl9YV0lOTU9EVUxFU19MSUJTX3NldD0n JwphY19jdl9lbnZfWFdJTk1PRFVMRVNfTElCU192YWx1ZT0nJwphY19jdl9lbnZfWUFDQ19z ZXQ9JycKYWNfY3ZfZW52X1lBQ0NfdmFsdWU9JycKYWNfY3ZfZW52X1lGTEFHU19zZXQ9JycK YWNfY3ZfZW52X1lGTEFHU192YWx1ZT0nJwphY19jdl9lbnZfYnVpbGRfYWxpYXNfc2V0PXNl dAphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9YW1kNjQtcG9ydGJsZC1mcmVlYnNkOS4w CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD0nJwphY19jdl9lbnZfaG9zdF9hbGlhc192YWx1 ZT0nJwphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0nJwphY19jdl9lbnZfdGFyZ2V0X2Fs aWFzX3ZhbHVlPScnCmFjX2N2X2hlYWRlcl9kbGZjbl9oPXllcwphY19jdl9oZWFkZXJfaW50 dHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX21lbW9yeV9oPXllcwphY19jdl9oZWFkZXJfc3Rk Yz15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGludF9oPXllcwphY19jdl9oZWFkZXJfc3RkbGliX2g9 eWVzCmFjX2N2X2hlYWRlcl9zdHJpbmdfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ3NfaD15 ZXMKYWNfY3ZfaGVhZGVyX3N5c19zdGF0X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdHlwZXNf aD15ZXMKYWNfY3ZfaGVhZGVyX3VuaXN0ZF9oPXllcwphY19jdl9ob3N0PWFtZDY0LXBvcnRi bGQtZnJlZWJzZDkuMAphY19jdl9saWJfbGV4PS1sZmwKYWNfY3Zfb2JqZXh0PW8KYWNfY3Zf cGF0aF9ET0xUX0JBU0g9L3Vzci9sb2NhbC9iaW4vYmFzaAphY19jdl9wYXRoX0VHUkVQPScv dXNyL2Jpbi9ncmVwIC1FJwphY19jdl9wYXRoX0ZHUkVQPScvdXNyL2Jpbi9ncmVwIC1GJwph Y19jdl9wYXRoX0dSRVA9L3Vzci9iaW4vZ3JlcAphY19jdl9wYXRoX1JBV0NQUD0vdXNyL2Jp bi9jcHAKYWNfY3ZfcGF0aF9TRUQ9L3Vzci9iaW4vc2VkCmFjX2N2X3BhdGhfYWNfcHRfUEtH X0NPTkZJRz0vdXNyL2xvY2FsL2Jpbi9wa2ctY29uZmlnCmFjX2N2X3Byb2dfQVdLPWdhd2sK YWNfY3ZfcHJvZ19DUFA9Y3BwCmFjX2N2X3Byb2dfTEVYPWZsZXgKYWNfY3ZfcHJvZ19ZQUND PSdiaXNvbiAteScKYWNfY3ZfcHJvZ19hY19jdF9BUj1hcgphY19jdl9wcm9nX2FjX2N0X0ND PWNjCmFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUD1vYmpkdW1wCmFjX2N2X3Byb2dfYWNfY3Rf UkFOTElCPXJhbmxpYgphY19jdl9wcm9nX2FjX2N0X1NUUklQPXN0cmlwCmFjX2N2X3Byb2df Y2NfYzg5PScnCmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNfY3ZfcHJvZ19sZXhfcm9vdD1sZXgu eXkKYWNfY3ZfcHJvZ19sZXhfeXl0ZXh0X3BvaW50ZXI9eWVzCmFjX2N2X3Byb2dfbWFrZV9n bWFrZV9zZXQ9eWVzCmFjX2N2X3N5c19maWxlX29mZnNldF9iaXRzPW5vCmFjX2N2X3N5c19s YXJnZWZpbGVfQ0M9bm8KYW1fY3ZfQ0NBU19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1n Y2MzCmFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPWdjYzMKbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJ Q19DTUQnCmx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPScnCmx0X2N2X2xkX3JlbG9hZF9m bGFnPS1yCmx0X2N2X25tX2ludGVyZmFjZT0nQlNEIG5tJwpsdF9jdl9vYmpkaXI9LmxpYnMK bHRfY3ZfcGF0aF9MRD0vdXNyL2Jpbi9sZApsdF9jdl9wYXRoX05NPScvdXNyL2Jpbi9ubSAt QicKbHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzCmx0X2N2X3Byb2dfY29tcGlsZXJfcGlj X3dvcmtzPXllcwpsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMKbHRf Y3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCmx0X2N2X3Byb2dfZ251X2xkPXll cwpsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSdzZWQgLW4gLWUgJ1wnJ3MvXi4qWwkg XVwoW0FCQ0RHSVJTVFddW0FCQ0RHSVJTVFddKlwpWwkgXVsJIF0qXChbX0EtWmEtel1bX0Et WmEtejAtOV0qXCkkL1wxIFwyIFwyL3AnXCcKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y19uYW1lX2FkZHJlc3M9J3NlZCAtbiAtZSAnXCcncy9eOiBcKFteIF0qXCkgJC8gIHtcIlwx XCIsICh2b2lkICopIDB9LC9wJ1wnJyAtZSAnXCcncy9eW0FCQ0RHSVJTVFddKiBcKFteIF0q XCkgXChbXiBdKlwpJC8gIHsiXDIiLCAodm9pZCAqKSBcJlwyfSwvcCdcJwpsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdzZWQgLW4gLWUg J1wnJ3MvXjogXChbXiBdKlwpICQvICB7XCJcMVwiLCAodm9pZCAqKSAwfSwvcCdcJycgLWUg J1wnJ3MvXltBQkNER0lSU1RXXSogXChbXiBdKlwpIFwobGliW14gXSpcKSQvICB7IlwyIiwg KHZvaWQgKikgXCZcMn0sL3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNUV10qIFwoW14gXSpc KSBcKFteIF0qXCkkLyAgeyJsaWJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnCmx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdzZWQgLW4gLWUgJ1wnJ3MvXlQgLiogXCguKlwp JC9leHRlcm4gaW50IFwxKCk7L3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNUV10qIC4qIFwo LipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnXCcKbHRfY3Zfc3lzX21heF9jbWRfbGVuPTI2MjE0 NAoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMg LS0tLS0tLS0tLS0tLS0tLS0gIyMKCkFDTE9DQUw9JyR7U0hFTEx9IC91c3IvcG9ydHMveDEx LXNlcnZlcnMveG9yZy1zZXJ2ZXIvd29yay94b3JnLXNlcnZlci0xLjcuNy9taXNzaW5nIC0t cnVuIGFjbG9jYWwtMS4xMScKQURNSU5fTUFOX0RJUj0nJwpBRE1JTl9NQU5fU1VGRklYPScn CkFHUF9GQUxTRT0nJwpBR1BfVFJVRT0nJwpBSUdMWF9GQUxTRT0nJwpBSUdMWF9UUlVFPScn CkFMTE9DQT0nJwpBTFBIQV9WSURFT19GQUxTRT0nJwpBTFBIQV9WSURFT19UUlVFPScnCkFN REVQQkFDS1NMQVNIPSdcJwpBTURFUF9GQUxTRT0nIycKQU1ERVBfVFJVRT0nJwpBTVRBUj0n JHtTSEVMTH0gL3Vzci9wb3J0cy94MTEtc2VydmVycy94b3JnLXNlcnZlci93b3JrL3hvcmct c2VydmVyLTEuNy43L21pc3NpbmcgLS1ydW4gdGFyJwpBTV9NQUtFRkxBR1M9JycKQVBQTEVf QVBQTElDQVRJT05TX0RJUj0nJwpBUFBMRV9BUFBMSUNBVElPTl9OQU1FPScnCkFQUF9NQU5f RElSPScnCkFQUF9NQU5fU1VGRklYPScnCkFSPSdhcicKQVJNX1ZJREVPX0ZBTFNFPScnCkFS TV9WSURFT19UUlVFPScnCkFTPSdhcycKQVVUT0NPTkY9JyR7U0hFTEx9IC91c3IvcG9ydHMv eDExLXNlcnZlcnMveG9yZy1zZXJ2ZXIvd29yay94b3JnLXNlcnZlci0xLjcuNy9taXNzaW5n IC0tcnVuIGF1dG9jb25mJwpBVVRPSEVBREVSPScke1NIRUxMfSAvdXNyL3BvcnRzL3gxMS1z ZXJ2ZXJzL3hvcmctc2VydmVyL3dvcmsveG9yZy1zZXJ2ZXItMS43LjcvbWlzc2luZyAtLXJ1 biBhdXRvaGVhZGVyJwpBVVRPTUFLRT0nJHtTSEVMTH0gL3Vzci9wb3J0cy94MTEtc2VydmVy cy94b3JnLXNlcnZlci93b3JrL3hvcmctc2VydmVyLTEuNy43L21pc3NpbmcgLS1ydW4gYXV0 b21ha2UtMS4xMScKQVdLPSdnYXdrJwpCQVNFX0ZPTlRfUEFUSD0nJwpCU0RfQVBNX0ZBTFNF PScnCkJTRF9BUE1fVFJVRT0nJwpCU0RfS1FVRVVFX0FQTV9GQUxTRT0nJwpCU0RfS1FVRVVF X0FQTV9UUlVFPScnCkJVSUxERE9DU19GQUxTRT0nJwpCVUlMRERPQ1NfVFJVRT0nJwpCVUlM RF9EQVRFPScnCkJVSUxEX0tEUklWRUZCREVWTElCX0ZBTFNFPScnCkJVSUxEX0tEUklWRUZC REVWTElCX1RSVUU9JycKQlVJTERfTElOVVhET0NfRkFMU0U9JycKQlVJTERfTElOVVhET0Nf VFJVRT0nJwpCVUlMRF9QREZET0NfRkFMU0U9JycKQlVJTERfUERGRE9DX1RSVUU9JycKQlVJ TERfVElNRT0nJwpDQz0nY2MnCkNDQVM9J2NjJwpDQ0FTREVQTU9ERT0nZGVwbW9kZT1nY2Mz JwpDQ0FTRkxBR1M9Jy1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZycKQ0NERVBNT0RF PSdkZXBtb2RlPWdjYzMnCkNGTEFHUz0nLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5n JwpDSEFOR0VMT0dfQ01EPScnCkNPTVBJTEVEREVGQVVMVEZPTlRQQVRIPScnCkNPTVBPU0lU RV9GQUxTRT0nJwpDT01QT1NJVEVfVFJVRT0nJwpDT05GSUdfREJVU19BUElfRkFMU0U9JycK Q09ORklHX0RCVVNfQVBJX1RSVUU9JycKQ09ORklHX0hBTF9GQUxTRT0nJwpDT05GSUdfSEFM X1RSVUU9JycKQ09ORklHX05FRURfREJVU19GQUxTRT0nJwpDT05GSUdfTkVFRF9EQlVTX1RS VUU9JycKQ1BQPSdjcHAnCkNQUEZMQUdTPScnCkNXQVJORkxBR1M9JycKQ1hYPSdjKysnCkNZ R1BBVEhfVz0nZWNobycKREFSV0lOX0xJQlM9JycKREJFX0ZBTFNFPScnCkRCRV9UUlVFPScn CkRCVVNfQ0ZMQUdTPScnCkRCVVNfTElCUz0nJwpERUJVR19GQUxTRT0nJwpERUJVR19UUlVF PScnCkRFRkFVTFRfTElCUkFSWV9QQVRIPScnCkRFRkFVTFRfTE9HUFJFRklYPScnCkRFRkFV TFRfTU9EVUxFX1BBVEg9JycKREVGUz0nJwpERVBESVI9Jy5kZXBzJwpER0FfQ0ZMQUdTPScn CkRHQV9GQUxTRT0nJwpER0FfTElCUz0nJwpER0FfVFJVRT0nJwpESVhfQ0ZMQUdTPScnCkRJ WF9MSUI9JycKRExMVE9PTD0nZGxsdG9vbCcKRE1YRVhBTVBMRVNfREVQX0NGTEFHUz0nJwpE TVhFWEFNUExFU19ERVBfTElCUz0nJwpETVhNT0RVTEVTX0NGTEFHUz0nJwpETVhNT0RVTEVT X0xJQlM9JycKRE1YWElFWEFNUExFU19ERVBfQ0ZMQUdTPScnCkRNWFhJRVhBTVBMRVNfREVQ X0xJQlM9JycKRE1YWE1VRVhBTVBMRVNfREVQX0NGTEFHUz0nJwpETVhYTVVFWEFNUExFU19E RVBfTElCUz0nJwpETVhfQlVJTERfTE5YX0ZBTFNFPScnCkRNWF9CVUlMRF9MTlhfVFJVRT0n JwpETVhfQlVJTERfVVNCX0ZBTFNFPScnCkRNWF9CVUlMRF9VU0JfVFJVRT0nJwpETVhfRkFM U0U9JycKRE1YX1RSVUU9JycKRE9MVF9CQVNIPScvdXNyL2xvY2FsL2Jpbi9iYXNoJwpEUE1T RXh0ZW5zaW9uX0ZBTFNFPScnCkRQTVNFeHRlbnNpb25fVFJVRT0nJwpEUkkyUFJPVE9fQ0ZM QUdTPScnCkRSSTJQUk9UT19MSUJTPScnCkRSSTJfQUlHTFhfRkFMU0U9JycKRFJJMl9BSUdM WF9UUlVFPScnCkRSSTJfRkFMU0U9JycKRFJJMl9UUlVFPScnCkRSSVBST1RPX0NGTEFHUz0n JwpEUklQUk9UT19MSUJTPScnCkRSSVZFUl9NQU5fRElSPScnCkRSSVZFUl9NQU5fU1VGRklY PScnCkRSSV9DRkxBR1M9JycKRFJJX0RSSVZFUl9QQVRIPScnCkRSSV9GQUxTRT0nJwpEUklf TElCUz0nJwpEUklfVFJVRT0nJwpEU1lNVVRJTD0nJwpEVFJBQ0U9JycKRFVNUEJJTj0nJwpF Q0hPX0M9JycKRUNIT19OPSctbicKRUNIT19UPScnCkVHUkVQPScvdXNyL2Jpbi9ncmVwIC1F JwpFWEVFWFQ9JycKRjc3PScnCkZCREVWSFdfRkFMU0U9JycKRkJERVZIV19UUlVFPScnCkZD PScnCkZHUkVQPScvdXNyL2Jpbi9ncmVwIC1GJwpGSUxFX01BTl9ESVI9JycKRklMRV9NQU5f U1VGRklYPScnCkZSRUVCU0RfS0xETE9BRF9GQUxTRT0nJwpGUkVFQlNEX0tMRExPQURfVFJV RT0nJwpHTElCX0NGTEFHUz0nJwpHTElCX0xJQlM9JycKR0xYX0FSQ0hfREVGSU5FUz0nJwpH TFhfREVGSU5FUz0nJwpHTFhfRkFMU0U9JycKR0xYX1RSVUU9JycKR0xfQ0ZMQUdTPScnCkdM X0xJQlM9JycKR1JFUD0nL3Vzci9iaW4vZ3JlcCcKSEFMX0NGTEFHUz0nJwpIQUxfTElCUz0n JwpIQVZFX0RCVVNfRkFMU0U9JycKSEFWRV9EQlVTX1RSVUU9JycKSTM4Nl9WSURFT19GQUxT RT0nJwpJMzg2X1ZJREVPX1RSVUU9JycKSU5TVEFMTF9EQVRBPSdpbnN0YWxsICAtbyByb290 IC1nIHdoZWVsIC1tIDQ0NCcKSU5TVEFMTF9MSUJYRjg2Q09ORklHX0ZBTFNFPScnCklOU1RB TExfTElCWEY4NkNPTkZJR19UUlVFPScnCklOU1RBTExfUFJPR1JBTT0naW5zdGFsbCAgLXMg LW8gcm9vdCAtZyB3aGVlbCAtbSA1NTUnCklOU1RBTExfU0NSSVBUPSdpbnN0YWxsICAtbyBy b290IC1nIHdoZWVsIC1tIDU1NScKSU5TVEFMTF9TRVRVSURfRkFMU0U9JycKSU5TVEFMTF9T RVRVSURfVFJVRT0nJwpJTlNUQUxMX1NUUklQX1BST0dSQU09JyQoaW5zdGFsbF9zaCkgLWMg LXMnCklOVDEwTU9EVUxFX0ZBTFNFPScnCklOVDEwTU9EVUxFX1RSVUU9JycKSU5UMTBfU1RV Ql9GQUxTRT0nJwpJTlQxMF9TVFVCX1RSVUU9JycKSU5UMTBfVk04Nl9GQUxTRT0nJwpJTlQx MF9WTTg2X1RSVUU9JycKSU5UMTBfWDg2RU1VX0ZBTFNFPScnCklOVDEwX1g4NkVNVV9UUlVF PScnCktEUklWRUZCREVWX0ZBTFNFPScnCktEUklWRUZCREVWX1RSVUU9JycKS0RSSVZFTElO VVhfRkFMU0U9JycKS0RSSVZFTElOVVhfVFJVRT0nJwpLRFJJVkVWRVNBX0ZBTFNFPScnCktE UklWRVZFU0FfVFJVRT0nJwpLRFJJVkVfQ0ZMQUdTPScnCktEUklWRV9GQUxTRT0nJwpLRFJJ VkVfSU5DUz0nJwpLRFJJVkVfTElCUz0nJwpLRFJJVkVfTE9DQUxfTElCUz0nJwpLRFJJVkVf UFVSRV9JTkNTPScnCktEUklWRV9QVVJFX0xJQlM9JycKS0RSSVZFX1RSVUU9JycKTEFVTkNI RF9JRF9QUkVGSVg9JycKTEQ9Jy91c3IvYmluL2xkJwpMREZMQUdTPScgLXJwYXRoPS91c3Iv bGliOi91c3IvbG9jYWwvbGliJwpMRF9FWFBPUlRfU1lNQk9MU19GTEFHPScnCkxFWD0nZmxl eCcKTEVYTElCPSctbGZsJwpMRVhfT1VUUFVUX1JPT1Q9J2xleC55eScKTElCRFJNX0NGTEFH Uz0nJwpMSUJEUk1fTElCUz0nJwpMSUJPQkpTPScnCkxJQlM9JycKTElCVE9PTD0nJCh0b3Bf YnVpbGRkaXIpL2RvbHRsaWJ0b29sJwpMSUJfTUFOX0RJUj0nJwpMSUJfTUFOX1NVRkZJWD0n JwpMSU5VWERPQz0nJwpMSU5VWF9BTFBIQV9GQUxTRT0nJwpMSU5VWF9BTFBIQV9UUlVFPScn CkxJTlVYX0lBNjRfRkFMU0U9JycKTElOVVhfSUE2NF9UUlVFPScnCkxJUE89JycKTE5YQUNQ SV9GQUxTRT0nJwpMTlhBQ1BJX1RSVUU9JycKTE5YQVBNX0ZBTFNFPScnCkxOWEFQTV9UUlVF PScnCkxOX1M9J2xuIC1zJwpMVENPTVBJTEU9JyQodG9wX2J1aWxkZGlyKS9kb2x0Y29tcGls ZSAkKENPTVBJTEUpJwpMVENYWENPTVBJTEU9JyQodG9wX2J1aWxkZGlyKS9kb2x0Y29tcGls ZSAkKENYWENPTVBJTEUpJwpMVExJQk9CSlM9JycKTUFJTlQ9JyMnCk1BSU5UQUlORVJfTU9E RV9GQUxTRT0nJwpNQUlOVEFJTkVSX01PREVfVFJVRT0nIycKTUFJTl9MSUI9JycKTUFLRUZM QUdTPScnCk1BS0VJTkZPPScke1NIRUxMfSAvdXNyL3BvcnRzL3gxMS1zZXJ2ZXJzL3hvcmct c2VydmVyL3dvcmsveG9yZy1zZXJ2ZXItMS43LjcvbWlzc2luZyAtLXJ1biBtYWtlaW5mbycK TUFLRV9IVE1MPScnCk1BS0VfUERGPScnCk1BS0VfUFM9JycKTUFLRV9URVhUPScnCk1JU0Nf TUFOX0RJUj0nJwpNSVNDX01BTl9TVUZGSVg9JycKTUlUU0hNX0ZBTFNFPScnCk1JVFNITV9U UlVFPScnCk1LRElSX1A9Jy4vaW5zdGFsbC1zaCAtYyAtZCcKTVVMVElCVUZGRVJfRkFMU0U9 JycKTVVMVElCVUZGRVJfVFJVRT0nJwpORUVEX1NUUkxDQVRfRkFMU0U9JycKTkVFRF9TVFJM Q0FUX1RSVUU9JycKTkVFRF9WU05QUklOVEZfRkFMU0U9JycKTkVFRF9WU05QUklOVEZfVFJV RT0nJwpOTT0nL3Vzci9iaW4vbm0gLUInCk5NRURJVD0nJwpPQkpDPScnCk9CSkNDTEQ9JycK T0JKQ0RFUE1PREU9JycKT0JKQ0ZMQUdTPScnCk9CSkNMSU5LPScnCk9CSkRVTVA9J29iamR1 bXAnCk9CSkVYVD0nbycKT1NfTElCPScnCk9UT09MNjQ9JycKT1RPT0w9JycKUEFDS0FHRT0n eG9yZy1zZXJ2ZXInClBBQ0tBR0VfQlVHUkVQT1JUPSdodHRwczovL2J1Z3MuZnJlZWRlc2t0 b3Aub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD14b3JnJwpQQUNLQUdFX05BTUU9J3hvcmct c2VydmVyJwpQQUNLQUdFX1NUUklORz0neG9yZy1zZXJ2ZXIgMS43LjcnClBBQ0tBR0VfVEFS TkFNRT0neG9yZy1zZXJ2ZXInClBBQ0tBR0VfVkVSU0lPTj0nMS43LjcnClBBVEhfU0VQQVJB VE9SPSc6JwpQQ0lBQ0NFU1NfQ0ZMQUdTPScnClBDSUFDQ0VTU19MSUJTPScnClBDSV9UWFRf SURTX1BBVEg9JycKUEVSTD0nJwpQS0dfQ09ORklHPScvdXNyL2xvY2FsL2Jpbi9wa2ctY29u ZmlnJwpQUENfVklERU9fRkFMU0U9JycKUFBDX1ZJREVPX1RSVUU9JycKUFJPSkVDVFJPT1Q9 JycKUFMyUERGPScnClE9JycKUkFOTElCPSdyYW5saWInClJBV0NQUD0nL3Vzci9iaW4vY3Bw JwpSQVdDUFBGTEFHUz0nLXVuZGVmJwpSRUNPUkRfRkFMU0U9JycKUkVDT1JEX1RSVUU9JycK UkVTX0ZBTFNFPScnClJFU19UUlVFPScnClNDUkVFTlNBVkVSX0ZBTFNFPScnClNDUkVFTlNB VkVSX1RSVUU9JycKU0VDVVJFX1JQQ19GQUxTRT0nJwpTRUNVUkVfUlBDX1RSVUU9JycKU0VE PScvdXNyL2Jpbi9zZWQnClNFTElOVVhfQ0ZMQUdTPScnClNFTElOVVhfTElCUz0nJwpTRVJW RVJfTUlTQ19DT05GSUdfUEFUSD0nJwpTRVRfTUFLRT0nJwpTSEVMTD0nL2Jpbi9zaCcKU09M QVJJU19BU01fQ0ZMQUdTPScnClNPTEFSSVNfQVNNX0lOTElORV9GQUxTRT0nJwpTT0xBUklT X0FTTV9JTkxJTkVfVFJVRT0nJwpTT0xBUklTX0lOT1VUX0FSQ0g9JycKU09MQVJJU19WVF9G QUxTRT0nJwpTT0xBUklTX1ZUX1RSVUU9JycKU1BBUkM2NF9WSURFT19GQUxTRT0nJwpTUEFS QzY0X1ZJREVPX1RSVUU9JycKU1BFQ0lBTF9EVFJBQ0VfT0JKRUNUU19GQUxTRT0nJwpTUEVD SUFMX0RUUkFDRV9PQkpFQ1RTX1RSVUU9JycKU1RBTkRBTE9ORV9YUEJQUk9YWV9GQUxTRT0n JwpTVEFOREFMT05FX1hQQlBST1hZX1RSVUU9JycKU1RSSVA9J3N0cmlwJwpUU0xJQl9DRkxB R1M9JycKVFNMSUJfRkFMU0U9JycKVFNMSUJfTElCUz0nJwpUU0xJQl9UUlVFPScnClVOSVRU RVNUU19GQUxTRT0nJwpVTklUVEVTVFNfVFJVRT0nJwpVVElMU19TWVNfTElCUz0nJwpWPScn ClZCRV9GQUxTRT0nJwpWQkVfVFJVRT0nJwpWRU5ET1JfTkFNRV9TSE9SVD0nJwpWRVJTSU9O PScxLjcuNycKVkdBSFdfRkFMU0U9JycKVkdBSFdfVFJVRT0nJwpXSU5EUkVTPScnClgxMUVY QU1QTEVTX0RFUF9DRkxBR1M9JycKWDExRVhBTVBMRVNfREVQX0xJQlM9JycKWEFBX0ZBTFNF PScnClhBQV9UUlVFPScnClhBQ0VfRkFMU0U9JycKWEFDRV9UUlVFPScnClhDQUxJQlJBVEVf RkFMU0U9JycKWENBTElCUkFURV9UUlVFPScnClhDU0VDVVJJVFlfRkFMU0U9JycKWENTRUNV UklUWV9UUlVFPScnClhETUFVVEhfRkFMU0U9JycKWERNQVVUSF9UUlVFPScnClhETUNQX0NG TEFHUz0nJwpYRE1DUF9GQUxTRT0nJwpYRE1DUF9MSUJTPScnClhETUNQX1RSVUU9JycKWERN WENPTkZJR19ERVBfQ0ZMQUdTPScnClhETVhDT05GSUdfREVQX0xJQlM9JycKWERNWF9DRkxB R1M9JycKWERNWF9MSUJTPScnClhETVhfU1lTX0xJQlM9JycKWEVQSFlSX0NGTEFHUz0nJwpY RVBIWVJfRkFMU0U9JycKWEVQSFlSX0lOQ1M9JycKWEVQSFlSX0xJQlM9JycKWEVQSFlSX1RS VUU9JycKWEY4NkJJR0ZPTlRfRkFMU0U9JycKWEY4NkJJR0ZPTlRfVFJVRT0nJwpYRjg2Q09O RklHRklMRT0nJwpYRjg2VVRJTFNfRkFMU0U9JycKWEY4NlVUSUxTX1RSVUU9JycKWEY4NlZJ RE1PREVfQ0ZMQUdTPScnClhGODZWSURNT0RFX0ZBTFNFPScnClhGODZWSURNT0RFX0xJQlM9 JycKWEY4NlZJRE1PREVfVFJVRT0nJwpYRkFLRVNFUlZFUl9GQUxTRT0nJwpYRkFLRVNFUlZF Ul9UUlVFPScnClhJTkVSQU1BX0ZBTFNFPScnClhJTkVSQU1BX1RSVUU9JycKWEtCX0JBU0Vf RElSRUNUT1JZPScnClhLQl9CSU5fRElSRUNUT1JZPScnClhLQl9DT01QSUxFRF9ESVI9JycK WEtNX09VVFBVVF9ESVI9JycKWExJQl9DRkxBR1M9JycKWExJQl9MSUJTPScnClhORVNUTU9E VUxFU19DRkxBR1M9JycKWE5FU1RNT0RVTEVTX0xJQlM9JycKWE5FU1RfRkFMU0U9JycKWE5F U1RfTElCUz0nJwpYTkVTVF9TWVNfTElCUz0nJwpYTkVTVF9UUlVFPScnClhPUkdfQlVTX0JT RFBDSV9GQUxTRT0nJwpYT1JHX0JVU19CU0RQQ0lfVFJVRT0nJwpYT1JHX0JVU19MSU5VWFBD SV9GQUxTRT0nJwpYT1JHX0JVU19MSU5VWFBDSV9UUlVFPScnClhPUkdfQlVTX1NQQVJDX0ZB TFNFPScnClhPUkdfQlVTX1NQQVJDX1RSVUU9JycKWE9SR19DRkxBR1M9JycKWE9SR19GQUxT RT0nJwpYT1JHX0lOQ1M9JycKWE9SR19MSUJTPScnClhPUkdfTU9EVUxFU19DRkxBR1M9JycK WE9SR19NT0RVTEVTX0xJQlM9JycKWE9SR19PUz0nJwpYT1JHX09TX1NVQkRJUj0nJwpYT1JH X1NHTUxfUEFUSD0nJwpYT1JHX1NZU19MSUJTPScnClhPUkdfVFJVRT0nJwpYUEJQUk9YWV9D RkxBR1M9JycKWFBCUFJPWFlfTElCUz0nJwpYUVVBUlRaX0ZBTFNFPScnClhRVUFSVFpfU1BB UktMRT0nJwpYUVVBUlRaX1NQQVJLTEVfRkFMU0U9JycKWFFVQVJUWl9TUEFSS0xFX1RSVUU9 JycKWFFVQVJUWl9UUlVFPScnClhSRUdJU1RSWV9GQUxTRT0nJwpYUkVHSVNUUllfVFJVRT0n JwpYUkVTRVhBTVBMRVNfREVQX0NGTEFHUz0nJwpYUkVTRVhBTVBMRVNfREVQX0xJQlM9JycK WFNETFNFUlZFUl9GQUxTRT0nJwpYU0RMU0VSVkVSX1RSVUU9JycKWFNETF9JTkNTPScnClhT RExfTElCUz0nJwpYU0VMSU5VWF9GQUxTRT0nJwpYU0VMSU5VWF9UUlVFPScnClhTRVJWRVJD RkxBR1NfQ0ZMQUdTPScnClhTRVJWRVJDRkxBR1NfTElCUz0nJwpYU0VSVkVSTElCU19DRkxB R1M9JycKWFNFUlZFUkxJQlNfTElCUz0nJwpYU0VSVkVSX0RUUkFDRV9GQUxTRT0nJwpYU0VS VkVSX0RUUkFDRV9UUlVFPScnClhTRVJWRVJfTElCUz0nJwpYU0VSVkVSX1NZU19MSUJTPScn ClhUU1RFWEFNUExFU19ERVBfQ0ZMQUdTPScnClhUU1RFWEFNUExFU19ERVBfTElCUz0nJwpY VkZCX0ZBTFNFPScnClhWRkJfTElCUz0nJwpYVkZCX1NZU19MSUJTPScnClhWRkJfVFJVRT0n JwpYVk1DX0ZBTFNFPScnClhWTUNfVFJVRT0nJwpYVl9GQUxTRT0nJwpYVl9UUlVFPScnClhX SU5NT0RVTEVTX0NGTEFHUz0nJwpYV0lOTU9EVUxFU19MSUJTPScnClhXSU5fQ0xJUEJPQVJE X0ZBTFNFPScnClhXSU5fQ0xJUEJPQVJEX1RSVUU9JycKWFdJTl9GQUxTRT0nJwpYV0lOX0dM WF9XSU5ET1dTX0ZBTFNFPScnClhXSU5fR0xYX1dJTkRPV1NfVFJVRT0nJwpYV0lOX0xJQlM9 JycKWFdJTl9NVUxUSVdJTkRPV0VYVFdNX0ZBTFNFPScnClhXSU5fTVVMVElXSU5ET1dFWFRX TV9UUlVFPScnClhXSU5fTVVMVElXSU5ET1dfRkFMU0U9JycKWFdJTl9NVUxUSVdJTkRPV19U UlVFPScnClhXSU5fTkFUSVZFR0RJX0ZBTFNFPScnClhXSU5fTkFUSVZFR0RJX1RSVUU9JycK WFdJTl9QUklNQVJZRkJfRkFMU0U9JycKWFdJTl9QUklNQVJZRkJfVFJVRT0nJwpYV0lOX1JB TkRSX0ZBTFNFPScnClhXSU5fUkFORFJfVFJVRT0nJwpYV0lOX1NFUlZFUl9OQU1FPScnClhX SU5fU1lTX0xJQlM9JycKWFdJTl9UUlVFPScnClhXSU5fWFZfRkFMU0U9JycKWFdJTl9YVl9U UlVFPScnCllBQ0M9J2Jpc29uIC15JwpZRkxBR1M9JycKX19YQ09ORklHRklMRV9fPScnCmFi aV9hbnNpYz0nJwphYmlfZXh0ZW5zaW9uPScnCmFiaV92aWRlb2Rydj0nJwphYmlfeGlucHV0 PScnCmFjX2N0X0NDPSdjYycKYWNfY3RfRFVNUEJJTj0nJwphbV9fRVhFRVhUX0ZBTFNFPScn CmFtX19FWEVFWFRfVFJVRT0nJwphbV9fZmFzdGRlcENDQVNfRkFMU0U9JyMnCmFtX19mYXN0 ZGVwQ0NBU19UUlVFPScnCmFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCmFtX19mYXN0ZGVwQ0Nf VFJVRT0nJwphbV9fZmFzdGRlcE9CSkNfRkFMU0U9JycKYW1fX2Zhc3RkZXBPQkpDX1RSVUU9 JycKYW1fX2luY2x1ZGU9J2luY2x1ZGUnCmFtX19pc3JjPScnCmFtX19sZWFkaW5nX2RvdD0n LicKYW1fX3F1b3RlPScnCmFtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJwph bV9fdW50YXI9JyR7QU1UQVJ9IHhmIC0nCmJpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwpi dWlsZD0nYW1kNjQtcG9ydGJsZC1mcmVlYnNkOS4wJwpidWlsZF9hbGlhcz0nYW1kNjQtcG9y dGJsZC1mcmVlYnNkOS4wJwpidWlsZF9jcHU9J2FtZDY0JwpidWlsZF9vcz0nZnJlZWJzZDku MCcKYnVpbGRfdmVuZG9yPSdwb3J0YmxkJwpkYXRhZGlyPScke2RhdGFyb290ZGlyfScKZGF0 YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2Mv JHtQQUNLQUdFX1RBUk5BTUV9Jwpkcml2ZXJkaXI9JycKZHZpZGlyPScke2RvY2Rpcn0nCmV4 ZWNfcHJlZml4PSdOT05FJwpleHRkaXI9JycKaG9zdD0nYW1kNjQtcG9ydGJsZC1mcmVlYnNk OS4wJwpob3N0X2FsaWFzPScnCmhvc3RfY3B1PSdhbWQ2NCcKaG9zdF9vcz0nZnJlZWJzZDku MCcKaG9zdF92ZW5kb3I9J3BvcnRibGQnCmh0bWxkaXI9JyR7ZG9jZGlyfScKaW5jbHVkZWRp cj0nJHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9Jy91c3IvbG9jYWwvaW5mbycKaW5zdGFs bF9zaD0nJHtTSEVMTH0gL3Vzci9wb3J0cy94MTEtc2VydmVycy94b3JnLXNlcnZlci93b3Jr L3hvcmctc2VydmVyLTEuNy43L2luc3RhbGwtc2gnCmxpYmRpcj0nJHtleGVjX3ByZWZpeH0v bGliJwpsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwpsb2NhbGVkaXI9JyR7 ZGF0YXJvb3RkaXJ9L2xvY2FsZScKbG9jYWxzdGF0ZWRpcj0nL3ZhcicKbG9nZGlyPScnCmx0 X0VDSE89J2VjaG8nCm1hbmRpcj0nL3Vzci9sb2NhbC9tYW4nCm1rZGlyX3A9JyQodG9wX2J1 aWxkZGlyKS8uL2luc3RhbGwtc2ggLWMgLWQnCm1vZHVsZWRpcj0nJwpvbGRpbmNsdWRlZGly PScvdXNyL2luY2x1ZGUnCnBkZmRpcj0nJHtkb2NkaXJ9JwpwcmVmaXg9Jy91c3IvbG9jYWwn CnByb2dyYW1fdHJhbnNmb3JtX25hbWU9J3MseCx4LCcKcHNkaXI9JyR7ZG9jZGlyfScKc2Jp bmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKc2RrZGlyPScnCnNoYXJlZHN0YXRlZGlyPSck e3ByZWZpeH0vY29tJwpzaGF2ZWRpcj0nJwpzeW1ib2xfdmlzaWJpbGl0eT0nJwpzeXNjb25m ZGlyPScke3ByZWZpeH0vZXRjJwp0YXJnZXRfYWxpYXM9JycKCiMjIC0tLS0tLS0tLS0tICMj CiMjIGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgojZGVmaW5lIFBBQ0tBR0Vf TkFNRSAieG9yZy1zZXJ2ZXIiCiNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJ4b3JnLXNlcnZl ciIKI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjEuNy43IgojZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJ4b3JnLXNlcnZlciAxLjcuNyIKI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiaHR0 cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9eG9yZyIK I2RlZmluZSBQQUNLQUdFICJ4b3JnLXNlcnZlciIKI2RlZmluZSBWRVJTSU9OICIxLjcuNyIK I2RlZmluZSBTVERDX0hFQURFUlMgMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQojZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCiNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQojZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCiNkZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZpbmUgSEFWRV9ETEZDTl9IIDEK I2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCgpj b25maWd1cmU6IGV4aXQgMQo= --------------010607050900080705070502--