From MAILER-DAEMON Thu Dec 03 00:31:23 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kkhD9-00008d-Or for mharc-bug-bison@gnu.org; Thu, 03 Dec 2020 00:31:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58794) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkhD6-00005p-PA for bug-bison@gnu.org; Thu, 03 Dec 2020 00:31:20 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:33794) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkhD1-0007kz-Sj for bug-bison@gnu.org; Thu, 03 Dec 2020 00:31:20 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id 02A174348F; Thu, 3 Dec 2020 06:31:05 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Possible bug or simple nuisance compiler warning From: Akim Demaille In-Reply-To: <5DA155DE-4A1A-4BBF-A3A5-71592C1F72F1@lrde.epita.fr> Date: Thu, 3 Dec 2020 06:31:02 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: <49F8F529-A1E8-4D0A-858E-8C4FAF251DCF@lrde.epita.fr> References: <141949472.88750394.1606439742505.JavaMail.zimbra@shaw.ca> <03CCB8D7-83FB-4BA3-9EBE-F754CAB4358D@lrde.epita.fr> <1236061004.90062756.1606467169011.JavaMail.zimbra@shaw.ca> <1618811757.98568229.1606612374485.JavaMail.zimbra@shaw.ca> <07B22002-39E8-46C0-82F3-D74719D625B0@lrde.epita.fr> <5DA155DE-4A1A-4BBF-A3A5-71592C1F72F1@lrde.epita.fr> To: Jot Dot X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Dec 2020 05:31:21 -0000 Hi all, > Le 30 nov. 2020 =C3=A0 07:19, Akim Demaille a = =C3=A9crit : >=20 > Hi Jot, >=20 > [...] > Therefore: > 1. the compiler is right, a cast would be nice to avoid this warning. > 2. it's actually a pity to use -1 here to mean "invalid value". >=20 > I won't address (1), I think it's better to address (2) by using 0 = instead of -1, which in this precise case would result in the use of = "unsigned char yydefgoto", i.e., the very same type as state_type. I will install this following commit. Cheers! commit 24233748ecd1dfaae212224fb269531eca50ad37 Author: Akim Demaille Date: Wed Dec 2 21:39:26 2020 +0100 tables: avoid warnings and save bits =20 The yydefgoto table uses -1 as an invalid for an impossible case (we never use yydefgoto[0], since it corresponds to the reduction to $accept, which never happens). Since yydefgoto is a table of state numbers, this -1 forces a signed type uselessly, which (1) might trigger compiler warnings when storing a value from yydefgoto into a state number (nonnegative), and (2) wastes bits which might result = in using a int16 where a uint8 suffices. =20 Reported by Jot Dot . https://lists.gnu.org/r/bug-bison/2020-11/msg00027.html =20 * src/tables.c (default_goto): Use 0 rather than -1 as invalid = value. * tests/regression.at: Adjust. diff --git a/src/parse-gram.c b/src/parse-gram.c index adda86af..83f7d4a9 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.3.118-d0ea7-dirty. */ +/* A Bison parser, made by GNU Bison 3.7.4.133-f40c-dirty. */ =20 /* Bison implementation for Yacc-like parsers in C =20 @@ -46,10 +46,10 @@ USER NAME SPACE" below. */ =20 /* Identify Bison output, and Bison version. */ -#define YYBISON 30703 +#define YYBISON 30704 =20 /* Bison version string. */ -#define YYBISON_VERSION "3.7.3.118-d0ea7-dirty" +#define YYBISON_VERSION "3.7.4.133-f40c-dirty" =20 /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -799,9 +799,9 @@ static const yytype_int16 yypgoto[] =3D }; =20 /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] =3D +static const yytype_uint8 yydefgoto[] =3D { - -1, 1, 2, 43, 81, 115, 76, 45, 83, = 46, + 0, 1, 2, 43, 81, 115, 76, 45, 83, = 46, 50, 49, 51, 47, 60, 158, 120, 121, 122, = 96, 92, 93, 94, 128, 142, 86, 87, 88, 99, = 70, 77, 78, 79, 136, 146, 147, 113, 55, 105, = 71, diff --git a/src/parse-gram.h b/src/parse-gram.h index b679374e..02e352e2 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.3.118-d0ea7-dirty. */ +/* A Bison parser, made by GNU Bison 3.7.4.133-f40c-dirty. */ =20 /* Bison interface for Yacc-like parsers in C =20 diff --git a/src/tables.c b/src/tables.c index 052e96e6..d26a4a97 100644 --- a/src/tables.c +++ b/src/tables.c @@ -512,7 +512,14 @@ default_goto (symbol_number sym, size_t = state_count[]) { const goto_number begin =3D goto_map[sym - ntokens]; const goto_number end =3D goto_map[sym - ntokens + 1]; - state_number res =3D -1; + + /* In the case this symbol is never reduced to ($accept), use state + 0. We used to use -1, but as a result the yydefgoto table must + be signed, which (1) might trigger compiler warnings when storing + a value from yydefgoto into a state number (nonnegative), and (2) + wastes bits which might result in using a int16 where a uint8 + suffices. */ + state_number res =3D 0; =20 if (begin !=3D end) { diff --git a/tests/regression.at b/tests/regression.at index 3e57e38a..5bb05ae9 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -737,7 +737,7 @@ static const yytype_int8 yypgoto[] =3D }; static const yytype_int8 yydefgoto[] =3D { - -1, 2, 3, 4, 8 + 0, 2, 3, 4, 8 }; static const yytype_int8 yytable[] =3D { From MAILER-DAEMON Thu Dec 03 16:00:33 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kkviL-0003Qb-KB for mharc-bug-bison@gnu.org; Thu, 03 Dec 2020 16:00:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46910) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkviH-0003PF-2T for bug-bison@gnu.org; Thu, 03 Dec 2020 16:00:30 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:44656) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkviD-0003Gz-3V for bug-bison@gnu.org; Thu, 03 Dec 2020 16:00:28 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id 0A21B43480; Thu, 3 Dec 2020 22:00:22 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: SIGSEGV in test 316 on SPARCv9 From: Akim Demaille In-Reply-To: <1606755268.jf6sn9v85i.astroid@wand.none> Date: Thu, 3 Dec 2020 22:00:21 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: References: <1606755268.jf6sn9v85i.astroid@wand.none> To: Martin Rehak X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Dec 2020 21:00:30 -0000 Hi Martin, Thanks a lot for your reports. Sorry for not answering sooner, but rest assured that your reports are on the radar. > Le 30 nov. 2020 =C3=A0 18:20, Martin Rehak a = =C3=A9crit : >=20 > stderr: =20 > 1.1 =20 > 1.1: syntax error =20 > ./testsuite[2584]: .: line 181: 19978: Memory fault(coredump) Wow... > It is reproducible just on SPARCv9, it passes on SPARCv7. Same compiler? > I have done some debugging on it. These are the arguments of bison and=20= > g++ commands used: >=20 > $ bison --color=3Dno -fno-caret -o input.cc input.y > $ g++ -g -m64 -O3 -mno-app-regs = -ffile-prefix-map=3D/builds/mrehak/workspace/bison/components/bison=3D. = \ > -I/builds/mrehak/workspace/bison/components/bison/bison-3.7.3/tests = -D_REENTRANT -o input input.cc \ > = /builds/mrehak/workspace/bison/components/bison/build/sparcv9/lib/libbison= .a Great job, thanks! What version of GCC is this? > This is what gdb catches: >=20 > Reading symbols from ./input... > (gdb) r > Starting program: = /builds/mrehak/workspace/bison/components/bison/build/sparcv9/tests/testsu= ite.dir/316/input=20 > [Thread debugging using libthread_db enabled] > 1.1 > 1.1: syntax error > [New Thread 1 (LWP 1)] W00t??? I have no idea why it creates a thread here. There's no such = thing in the generated parser. > Thread 2 received signal SIGSEGV, Segmentation fault. What on Earth is going on here??? > And here is how yydestruct looks like in input.cc: >=20 > static void = =20 > yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE = *yylocationp, yy::parser& yyparser) =20 > { = =20 > YYUSE (yyvaluep); = =20 > YYUSE (yylocationp); = =20 > YYUSE (yyparser); = =20 > if (!yymsg) = =20 > yymsg =3D "Deleting"; = =20 > YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); // <- 1464 >=20 > YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN = =20 > YYUSE (yytype); = =20 > YY_IGNORE_MAYBE_UNINITIALIZED_END = =20 > } So if I understood correctly you have a crash in line 1464 when traces = are not enabled (i.e., but YYDEBUG is not set). Which is weird, since: # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) = \ do { = \ if (yydebug) = \ { = \ YY_FPRINTF ((stderr, "%s ", Title)); = \ yy_symbol_print (stderr, Kind, Value, Location, yyparser); = \ YY_FPRINTF ((stderr, "\n")); = \ } = \ } while (0) In other words, there is nothing to run here! If you inline the macro by hand in line 1464, and compile again, what = happens? I'm very tempted to call this a compiler bug.= From MAILER-DAEMON Fri Dec 04 01:28:12 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kl4Zg-0003qJ-Am for mharc-bug-bison@gnu.org; Fri, 04 Dec 2020 01:28:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kl4Ze-0003pt-0m for bug-bison@gnu.org; Fri, 04 Dec 2020 01:28:10 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:47608) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kl4ZY-00060U-9f for bug-bison@gnu.org; Fri, 04 Dec 2020 01:28:08 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id 1737F432AA; Fri, 4 Dec 2020 07:27:53 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Invalid inputs FAILED (input.at:102) on Solaris From: Akim Demaille In-Reply-To: <1606751670.8sittcli85.astroid@wand.none> Date: Fri, 4 Dec 2020 07:27:52 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: <7A70497A-7BB0-4F26-97CB-8737ED9895F5@lrde.epita.fr> References: <1605533751.bla7bts7bb.astroid@wand.none> <26632859-F18F-4412-9DB6-F843A846A3DF@lrde.epita.fr> <1606213712.853jd0ps1y.astroid@wand.none> <1606290922.cwxzh2kz25.astroid@wand.none> <169A4AE1-D733-4418-863A-B03DBE70DD84@lrde.epita.fr> <1606751670.8sittcli85.astroid@wand.none> To: Martin Rehak X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Dec 2020 06:28:10 -0000 Hi Martin, > Le 30 nov. 2020 =C3=A0 16:56, Martin Rehak a = =C3=A9crit : >=20 > Hi Akim, >=20 > On November 26, 2020 8:27 am Akim Demaille wrote: >> Hi Martin, >>=20 >>> Le 25 nov. 2020 =C3=A0 09:03, Martin Rehak = a =C3=A9crit : >>>=20 >>> Hi Akim, >>>=20 >>> Strange, absolutely same output: >>>=20 >>> $ printf "\0\n" > /tmp/foo.y >>> $ LC_ALL=3DC ./src/bison -fcaret /tmp/foo.y >/tmp/foo.log 2>&1 >>> ?1$ xxd /tmp/foo.log >>> 00000000: 2f74 6d70 2f66 6f6f 2e79 3a31 2e31 3a20 /tmp/foo.y:1.1:=20= >>> 00000010: 6572 726f 723a 2069 6e76 616c 6964 2063 error: invalid c >>> 00000020: 6861 7261 6374 6572 3a20 275c 3027 0a20 haracter: '\0'.=20= >>> 00000030: 2020 2031 207c 2000 0a20 2020 2020 207c 1 | .. | >>> 00000040: 205e 0a ^. >>> $ perl -p -e 's{([\0\377])}{sprintf "\\x%02x", ord($1)}ge' = /tmp/foo.log >>> /tmp/foo.y:1.1: error: invalid character: '\0' >>> 1 | \x00 >>> | ^ >>=20 >> I am confused. Please run this: >>=20 >> make check-local TESTSUITEFLAGS=3D'-d 4' >>=20 >> and wrap a tarball of tests/testsuite.dir/004 and send it. >>=20 >>> In case you are not happy with debugging this case (and I would=20 >>> understand it) is there a way how to disable it? >=20 > Tarball is attached. The stderr file in your tarball starts with: input.y:1.1-2: error: invalid characters: '\0\001\002\377?' 1 | ^A^BM-^?? | ^~ input.y:2.2: error: invalid null character 2 | "" | ^ In other words, the NUL byte is really not there. For some reason when you ran the shorter example above the NUL byte was properly output, but not when there is another character after it. The function which is at work here is location_caret in src/location.c. It uses Gnulib's mbchar.h. I have made a stripped down version of this routine in this tarball: = https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.4.136-0e78a-dirty.= tar.gz = https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.4.136-0e78a-dirty.= tar.lz = https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.4.136-0e78a-dirty.= tar.xz Once compiled, src/mbcat should imitate what bison does when it quotes the input. So could you feed it with tests/testsuite.dir/004/input.y and see what difference there is between the input and the output? ./src/mbcat tests/testsuite.dir/004/input.y >/tmp/out.y diff tests/testsuite.dir/004/input.y /tmp/out.y And if there are diffs, try to make them visible (cat -v for instance). Or attach /tmp/out.y. Thanks!= From MAILER-DAEMON Mon Dec 07 11:47:42 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kmJfq-0006qV-Fi for mharc-bug-bison@gnu.org; Mon, 07 Dec 2020 11:47:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:36524) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmJfo-0006mn-Qz for bug-bison@gnu.org; Mon, 07 Dec 2020 11:47:40 -0500 Received: from userp2130.oracle.com ([156.151.31.86]:52432) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmJfm-00013D-74 for bug-bison@gnu.org; Mon, 07 Dec 2020 11:47:40 -0500 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0B7Gdvep194626; Mon, 7 Dec 2020 16:47:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : subject : to : cc : references : in-reply-to : mime-version : message-id : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=32N//k731LlN194Gly7bNJfrQGdMXqOkaVqyYRwD8Fo=; b=teSBy9nI443AnG9WJyAZIszit1OKZyOZJ+XV3ij3CO34oD9nEojJaMYcQdawvR8PVanh MVPR65gXVH4Cz8h62HTVwieweW4V/mXWMm3X72fdaGDlnINCODDE++HiQ6b26H4masU9 ftv8y3PbZ2GbnjuBEf5jvYtFj/QwOv6z6Y929lOF8y3UXSSEpG3cr5vSDSWmuxJhWkLy fyVB9qsan4x0tzPZwXzfOqm3Z1YTXp3Q8YWKOq3Yy802wjaVbDgM3msOCecslvyhEbfA 0aR2J+A6bQesDJUDycEZepur9j8WJQyePeDXw6J2iUp4JbDmMYqiIHxskQ6y/Yy8DBtn JA== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 3581mqpa4u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 07 Dec 2020 16:47:33 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0B7Gej3P087207; Mon, 7 Dec 2020 16:47:32 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3030.oracle.com with ESMTP id 358ksmdurq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Dec 2020 16:47:32 +0000 Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 0B7GlUla008795; Mon, 7 Dec 2020 16:47:30 GMT Received: from localhost (/10.175.189.75) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 07 Dec 2020 08:47:29 -0800 Date: Mon, 07 Dec 2020 17:47:26 +0100 From: Martin Rehak Subject: Re: Invalid inputs FAILED (input.at:102) on Solaris To: Akim Demaille Cc: Bison Bugs References: <1605533751.bla7bts7bb.astroid@wand.none> <26632859-F18F-4412-9DB6-F843A846A3DF@lrde.epita.fr> <1606213712.853jd0ps1y.astroid@wand.none> <1606290922.cwxzh2kz25.astroid@wand.none> <169A4AE1-D733-4418-863A-B03DBE70DD84@lrde.epita.fr> <1606751670.8sittcli85.astroid@wand.none> <7A70497A-7BB0-4F26-97CB-8737ED9895F5@lrde.epita.fr> In-Reply-To: <7A70497A-7BB0-4F26-97CB-8737ED9895F5@lrde.epita.fr> MIME-Version: 1.0 User-Agent: astroid/0.15.0 (https://github.com/astroidmail/astroid) Message-Id: <1607359479.ayrbikbj1x.astroid@wand.none> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9827 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012070107 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9827 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxlogscore=999 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 impostorscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012070107 Received-SPF: pass client-ip=156.151.31.86; envelope-from=martin.rehak@oracle.com; helo=userp2130.oracle.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Dec 2020 16:47:41 -0000 Hi Akim, On December 4, 2020 7:27 am Akim Demaille wrote: > Hi Martin, >=20 >> Le 30 nov. 2020 =C3=A0 16:56, Martin Rehak a = =C3=A9crit : >>=20 >> Hi Akim, >>=20 >> On November 26, 2020 8:27 am Akim Demaille wrote: >>> Hi Martin, >>>=20 >>>> Le 25 nov. 2020 =C3=A0 09:03, Martin Rehak a= =C3=A9crit : >>>>=20 >>>> Hi Akim, >>>>=20 >>>> Strange, absolutely same output: >>>>=20 >>>> $ printf "\0\n" > /tmp/foo.y >>>> $ LC_ALL=3DC ./src/bison -fcaret /tmp/foo.y >/tmp/foo.log 2>&1 >>>> ?1$ xxd /tmp/foo.log >>>> 00000000: 2f74 6d70 2f66 6f6f 2e79 3a31 2e31 3a20 /tmp/foo.y:1.1:=20 >>>> 00000010: 6572 726f 723a 2069 6e76 616c 6964 2063 error: invalid c >>>> 00000020: 6861 7261 6374 6572 3a20 275c 3027 0a20 haracter: '\0'.=20 >>>> 00000030: 2020 2031 207c 2000 0a20 2020 2020 207c 1 | .. | >>>> 00000040: 205e 0a ^. >>>> $ perl -p -e 's{([\0\377])}{sprintf "\\x%02x", ord($1)}ge' /tmp/foo.lo= g >>>> /tmp/foo.y:1.1: error: invalid character: '\0' >>>> 1 | \x00 >>>> | ^ >>>=20 >>> I am confused. Please run this: >>>=20 >>> make check-local TESTSUITEFLAGS=3D'-d 4' >>>=20 >>> and wrap a tarball of tests/testsuite.dir/004 and send it. >>>=20 >>>> In case you are not happy with debugging this case (and I would=20 >>>> understand it) is there a way how to disable it? >>=20 >> Tarball is attached. >=20 > The stderr file in your tarball starts with: >=20 > input.y:1.1-2: error: invalid characters: '\0\001\002\377?' > 1 | ^A^BM-^?? > | ^~ > input.y:2.2: error: invalid null character > 2 | "" > | ^ >=20 > In other words, the NUL byte is really not there. For some reason > when you ran the shorter example above the NUL byte was properly > output, but not when there is another character after it. >=20 > The function which is at work here is location_caret in src/location.c. > It uses Gnulib's mbchar.h. >=20 > I have made a stripped down version of this routine in this tarball: >=20 > https://urldefense.com/v3/__https://www.lrde.epita.fr/*akim/private/bison= /bison-3.7.4.136-0e78a-dirty.tar.gz__;fg!!GqivPVa7Brio!OoEllf4EXPgqSG1AEwmv= KYVYVJ_ZxMNnjWQEK7cq6T7Bgs9ekKcKsUlYH_lsP5nmGQ$=20 > https://urldefense.com/v3/__https://www.lrde.epita.fr/*akim/private/bison= /bison-3.7.4.136-0e78a-dirty.tar.lz__;fg!!GqivPVa7Brio!OoEllf4EXPgqSG1AEwmv= KYVYVJ_ZxMNnjWQEK7cq6T7Bgs9ekKcKsUlYH_mGBczwDg$=20 > https://urldefense.com/v3/__https://www.lrde.epita.fr/*akim/private/bison= /bison-3.7.4.136-0e78a-dirty.tar.xz__;fg!!GqivPVa7Brio!OoEllf4EXPgqSG1AEwmv= KYVYVJ_ZxMNnjWQEK7cq6T7Bgs9ekKcKsUlYH_n0AvB7mg$=20 >=20 > Once compiled, src/mbcat should imitate what bison does when it quotes > the input. So could you feed it with tests/testsuite.dir/004/input.y > and see what difference there is between the input and the output? >=20 > ./src/mbcat tests/testsuite.dir/004/input.y >/tmp/out.y > diff tests/testsuite.dir/004/input.y /tmp/out.y >=20 > And if there are diffs, try to make them visible (cat -v for instance). > Or attach /tmp/out.y. So I am puzzled even more. $ ./src/mbcat tests/testsuite.dir/004/input.y >/tmp/out.y $ diff tests/testsuite.dir/004/input.y /tmp/out.y $ echo $? 0 $ cat -v /tmp/out.y ^@^A^BM-^?? "^@" %% ? default: 'a' } %& %a-does-not-exist %- %{ It's fine that we have bison working. But I don't understand the test=20 failing. :) And it still does: $ gmake check-local TESTSUITEFLAGS=3D'-d 4' ... /bin/bash /builds/mrehak/workspace/bison/components/bison/bison-3.7.3/tests= /testsuite -C tests -d 4 ## --------------------------- ## ## GNU Bison 3.7.3 test suite. ## ## --------------------------- ## 4: Invalid inputs FAILED (input.at:102) ## ------------- ## ## Test results. ## ## ------------- ## ERROR: 1 test was run, Any idea, please? Thanks --=20 Martin From MAILER-DAEMON Tue Dec 08 01:07:26 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kmW9l-0006yK-Uu for mharc-bug-bison@gnu.org; Tue, 08 Dec 2020 01:07:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35620) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmW9k-0006y5-B3 for bug-bison@gnu.org; Tue, 08 Dec 2020 01:07:24 -0500 Received: from userp2130.oracle.com ([156.151.31.86]:58202) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmW9g-0002II-9J for bug-bison@gnu.org; Tue, 08 Dec 2020 01:07:23 -0500 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0B863smZ089110; Tue, 8 Dec 2020 06:07:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : subject : to : cc : references : in-reply-to : mime-version : message-id : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=0Dwgjj2w/Ls/1xxbbIuUrFYJDMcZfTaIEM+IJxcsgew=; b=AFYLj1Zm3RbuaLNqDLWcSWWgUzkPMSyNe0do5oje3PzVMTUrY9WtpiMVr67yJ9fgaKJJ OTzUBPncl7ycoqZT3yOmOHH/oEhlyQAQTQ4GxHYeZtmNA+u1Cd6bLNJ/OvlTnLck/pVQ LPHkq2joacGpTFapdxKKBGunrRDok3viVJvqDtadsGshKqqLWRCu+u0tqZovH/v+YiSz aA/qL7zPE3mvWrQ7YXY1z+ThPC+Il15j7yy85YaRBDyTEaJVaqu8LrPvKxRO/iTVbcYp O2Xj7rIkhJsc0TGyPSP9nI7LTcxNsr6tFAsNBZh5j7KQzqE+RIqu9sehGMGU5PPuEe9g 7w== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 3581mqryxj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 08 Dec 2020 06:07:15 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0B864kYp001295; Tue, 8 Dec 2020 06:07:15 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3030.oracle.com with ESMTP id 358ksn48eh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 08 Dec 2020 06:07:14 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 0B867C9k004204; Tue, 8 Dec 2020 06:07:13 GMT Received: from localhost (/10.175.189.75) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 07 Dec 2020 22:07:12 -0800 Date: Tue, 08 Dec 2020 07:07:10 +0100 From: Martin Rehak Subject: Re: SIGSEGV in test 316 on SPARCv9 To: Akim Demaille Cc: Bison Bugs References: <1606755268.jf6sn9v85i.astroid@wand.none> In-Reply-To: MIME-Version: 1.0 User-Agent: astroid/0.15.0 (https://github.com/astroidmail/astroid) Message-Id: <1607381604.2dz2fuc5vx.astroid@wand.none> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9828 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012080037 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9828 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxlogscore=999 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 impostorscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012080037 Received-SPF: pass client-ip=156.151.31.86; envelope-from=martin.rehak@oracle.com; helo=userp2130.oracle.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Dec 2020 06:07:24 -0000 Hi Akim, it really seems that I am hitting kind of compiler optimization issue on=20 64bit SPARC with gcc 9.3.0. I have set -O2 and now it seems it passes=20 constantly. I don't think I need to bother you with this one any more. Thanks much for your help! --=20 m. On December 3, 2020 10:00 pm Akim Demaille wrote: > Hi Martin, >=20 > Thanks a lot for your reports. Sorry for not answering sooner, > but rest assured that your reports are on the radar. >=20 >> Le 30 nov. 2020 =C3=A0 18:20, Martin Rehak a = =C3=A9crit : >>=20 >> stderr: =20 >> 1.1 =20 >> 1.1: syntax error =20 >> ./testsuite[2584]: .: line 181: 19978: Memory fault(coredump) >=20 > Wow... >=20 >> It is reproducible just on SPARCv9, it passes on SPARCv7. >=20 > Same compiler? >=20 >> I have done some debugging on it. These are the arguments of bison and=20 >> g++ commands used: >>=20 >> $ bison --color=3Dno -fno-caret -o input.cc input.y >> $ g++ -g -m64 -O3 -mno-app-regs -ffile-prefix-map=3D/builds/mrehak/works= pace/bison/components/bison=3D. \ >> -I/builds/mrehak/workspace/bison/components/bison/bison-3.7.3/tests -D_= REENTRANT -o input input.cc \ >> /builds/mrehak/workspace/bison/components/bison/build/sparcv9/lib/libbi= son.a >=20 > Great job, thanks! >=20 > What version of GCC is this? >=20 >=20 >> This is what gdb catches: >>=20 >> Reading symbols from ./input... >> (gdb) r >> Starting program: /builds/mrehak/workspace/bison/components/bison/build/= sparcv9/tests/testsuite.dir/316/input=20 >> [Thread debugging using libthread_db enabled] >> 1.1 >> 1.1: syntax error >> [New Thread 1 (LWP 1)] >=20 > W00t??? I have no idea why it creates a thread here. There's no such th= ing in the generated parser. >=20 >> Thread 2 received signal SIGSEGV, Segmentation fault. >=20 > What on Earth is going on here??? >=20 >> And here is how yydestruct looks like in input.cc: >>=20 >> static void = =20 >> yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *y= ylocationp, yy::parser& yyparser) =20 >> { = =20 >> YYUSE (yyvaluep); = =20 >> YYUSE (yylocationp); = =20 >> YYUSE (yyparser); = =20 >> if (!yymsg) = =20 >> yymsg =3D "Deleting"; = =20 >> YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); // <- 1464 >>=20 >> YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN = =20 >> YYUSE (yytype); = =20 >> YY_IGNORE_MAYBE_UNINITIALIZED_END = =20 >> } >=20 > So if I understood correctly you have a crash in line 1464 when traces ar= e not enabled (i.e., but YYDEBUG is not set). Which is weird, since: >=20 > # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ > do { \ > if (yydebug) \ > { \ > YY_FPRINTF ((stderr, "%s ", Title)); \ > yy_symbol_print (stderr, Kind, Value, Location, yyparser); = \ > YY_FPRINTF ((stderr, "\n")); \ > } \ > } while (0) >=20 > In other words, there is nothing to run here! >=20 > If you inline the macro by hand in line 1464, and compile again, what hap= pens? >=20 > I'm very tempted to call this a compiler bug. From MAILER-DAEMON Tue Dec 08 01:55:16 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kmWu4-0006Ra-M0 for mharc-bug-bison@gnu.org; Tue, 08 Dec 2020 01:55:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42170) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmWu2-0006PA-4d for bug-bison@gnu.org; Tue, 08 Dec 2020 01:55:14 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:49382) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmWtz-0005vd-OW for bug-bison@gnu.org; Tue, 08 Dec 2020 01:55:13 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id 0311342AFF; Tue, 8 Dec 2020 07:55:08 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Invalid inputs FAILED (input.at:102) on Solaris From: Akim Demaille In-Reply-To: <1607359479.ayrbikbj1x.astroid@wand.none> Date: Tue, 8 Dec 2020 07:55:08 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: References: <1605533751.bla7bts7bb.astroid@wand.none> <26632859-F18F-4412-9DB6-F843A846A3DF@lrde.epita.fr> <1606213712.853jd0ps1y.astroid@wand.none> <1606290922.cwxzh2kz25.astroid@wand.none> <169A4AE1-D733-4418-863A-B03DBE70DD84@lrde.epita.fr> <1606751670.8sittcli85.astroid@wand.none> <7A70497A-7BB0-4F26-97CB-8737ED9895F5@lrde.epita.fr> <1607359479.ayrbikbj1x.astroid@wand.none> To: Martin Rehak X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Dec 2020 06:55:14 -0000 Hi Martin, > Le 7 d=C3=A9c. 2020 =C3=A0 17:47, Martin Rehak = a =C3=A9crit : >=20 > Hi Akim, >=20 >> Once compiled, src/mbcat should imitate what bison does when it = quotes >> the input. So could you feed it with tests/testsuite.dir/004/input.y >> and see what difference there is between the input and the output? >>=20 >> ./src/mbcat tests/testsuite.dir/004/input.y >/tmp/out.y >> diff tests/testsuite.dir/004/input.y /tmp/out.y >>=20 >> And if there are diffs, try to make them visible (cat -v for = instance). >> Or attach /tmp/out.y. >=20 > So I am puzzled even more. >=20 > $ ./src/mbcat tests/testsuite.dir/004/input.y >/tmp/out.y > $ diff tests/testsuite.dir/004/input.y /tmp/out.y > $ echo $? > 0 This is probably related to the current locale. Could you also try with LC_ALL=3DC set in your environment? It will probably not change anything because mbcat does not call setlocale. I have uploaded a new tarball with it. Please, try the same procedure with: = https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.4.154-1bbfe.tar.gz= = https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.4.154-1bbfe.tar.lz= = https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.4.154-1bbfe.tar.xz= with both your default locale, and with LC_ALL forced to C. Thanks a lot for keeping up with this!= From MAILER-DAEMON Wed Dec 09 04:02:13 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kmvMS-00051j-VX for mharc-bug-bison@gnu.org; Wed, 09 Dec 2020 04:02:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50858) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmvMS-000504-1c for bug-bison@gnu.org; Wed, 09 Dec 2020 04:02:12 -0500 Received: from userp2130.oracle.com ([156.151.31.86]:49198) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmvML-0008AV-4o for bug-bison@gnu.org; Wed, 09 Dec 2020 04:02:11 -0500 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0B98rv1r108286; Wed, 9 Dec 2020 09:01:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : subject : to : cc : references : in-reply-to : mime-version : message-id : content-type; s=corp-2020-01-29; bh=6FbRaywoBL+isZzulHXhSJeMHQj9ES2yyrOHEOOv+Mc=; b=oamZO45sqjDEEBuhSCpPJ+wvn1ljh8kpl9PrzFvnrGNRfQu0ZtG8YWCuyVklWHp9n+3J DaULbKihmlXBuXDREtMm1LpXRimQjzM7ERuhOYQzo3imCz7jwCs8IYUFX0sx85wx3oBK 5nQHWYUdjSf42yhRlBj6PaqAJzjDWK1bzP0kMvlO1WL3hj5goV5+1d/XvNxIQmGnoHif v8lov76wnIte7F7z6lGsGhmRrZS4d942bRPRO+ggFpZes7mNv9xvSUvsKJSvZ94aW2zK 2DSgr+M6Dfyq+E/rKBbpJPGdqKENheyqJJGyzmRebhwQ3IY974E1bqTc7bT03wd/6I1p Xg== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 3581mqxw20-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 09 Dec 2020 09:01:58 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0B990opX181425; Wed, 9 Dec 2020 09:01:57 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 358kspsk7w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Dec 2020 09:01:56 +0000 Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 0B991txR031395; Wed, 9 Dec 2020 09:01:55 GMT Received: from localhost (/10.175.168.116) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 09 Dec 2020 01:01:53 -0800 Date: Wed, 09 Dec 2020 10:01:51 +0100 From: Martin Rehak Subject: Re: Invalid inputs FAILED (input.at:102) on Solaris To: Akim Demaille Cc: Bison Bugs References: <1605533751.bla7bts7bb.astroid@wand.none> <26632859-F18F-4412-9DB6-F843A846A3DF@lrde.epita.fr> <1606213712.853jd0ps1y.astroid@wand.none> <1606290922.cwxzh2kz25.astroid@wand.none> <169A4AE1-D733-4418-863A-B03DBE70DD84@lrde.epita.fr> <1606751670.8sittcli85.astroid@wand.none> <7A70497A-7BB0-4F26-97CB-8737ED9895F5@lrde.epita.fr> <1607359479.ayrbikbj1x.astroid@wand.none> In-Reply-To: MIME-Version: 1.0 User-Agent: astroid/0.15.0 (https://github.com/astroidmail/astroid) Message-Id: <1607503623.65c6130hg7.astroid@wand.none> Content-Type: multipart/mixed; boundary="=-L1ercko6A/nhd3T04OiM" X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9829 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012090064 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9829 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxlogscore=999 clxscore=1015 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 impostorscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012090063 Received-SPF: pass client-ip=156.151.31.86; envelope-from=martin.rehak@oracle.com; helo=userp2130.oracle.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Dec 2020 09:02:12 -0000 --=-L1ercko6A/nhd3T04OiM Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On December 8, 2020 7:55 am Akim Demaille wrote: > Hi Martin, >=20 >> Le 7 d=C3=A9c. 2020 =C3=A0 17:47, Martin Rehak = a =C3=A9crit : >>=20 >> Hi Akim, >>=20 >>> Once compiled, src/mbcat should imitate what bison does when it quotes >>> the input. So could you feed it with tests/testsuite.dir/004/input.y >>> and see what difference there is between the input and the output? >>>=20 >>> ./src/mbcat tests/testsuite.dir/004/input.y >/tmp/out.y >>> diff tests/testsuite.dir/004/input.y /tmp/out.y >>>=20 >>> And if there are diffs, try to make them visible (cat -v for instance). >>> Or attach /tmp/out.y. >>=20 >> So I am puzzled even more. >>=20 >> $ ./src/mbcat tests/testsuite.dir/004/input.y >/tmp/out.y >> $ diff tests/testsuite.dir/004/input.y /tmp/out.y >> $ echo $? >> 0 >=20 > This is probably related to the current locale. Could you also try > with LC_ALL=3DC set in your environment? It will probably not change > anything because mbcat does not call setlocale. I have uploaded a > new tarball with it. Please, try the same procedure with: >=20 > https://urldefense.com/v3/__https://www.lrde.epita.fr/*akim/private/bison= /bison-3.7.4.154-1bbfe.tar.gz__;fg!!GqivPVa7Brio!IhS-xLEI8xJEjIItvUHlZ0x86B= 0VsWGzdFfdnkyjje57NelDgoye4bIxXEywYSeVPA$=20 > https://urldefense.com/v3/__https://www.lrde.epita.fr/*akim/private/bison= /bison-3.7.4.154-1bbfe.tar.lz__;fg!!GqivPVa7Brio!IhS-xLEI8xJEjIItvUHlZ0x86B= 0VsWGzdFfdnkyjje57NelDgoye4bIxXEzjHy5RuA$=20 > https://urldefense.com/v3/__https://www.lrde.epita.fr/*akim/private/bison= /bison-3.7.4.154-1bbfe.tar.xz__;fg!!GqivPVa7Brio!IhS-xLEI8xJEjIItvUHlZ0x86B= 0VsWGzdFfdnkyjje57NelDgoye4bIxXEyBuUGVnw$=20 >=20 > with both your default locale, and with LC_ALL forced to C. >=20 >=20 >=20 > Thanks a lot for keeping up with this! Hi Akim, we must be missing something: $ for l in en_US.UTF-8 C ""; do LC_ALL=3D$l src/mbcat tests/testsuite.dir/0= 04/input.y >/tmp/out.y; diff tests/testsuite.dir/004/input.y /tmp/out.y; ec= ho $?; done 0 0 0 After applying the source with explicit setlocale(), the output is of=20 course same. As far as I understand the core of the test is to run bison on input.y. But there is this in input.at: # Autotest's diffing, when there are NUL bytes, just reports "binary # files differ". So don't leave NUL bytes. AT_PERL_CHECK([[-p -e 's{([\0\377])}{sprintf "\\x%02x", ord($1)}ge' stderr]= ], [], [[input.y:1.1-2: error: invalid characters: '\0\001\002\377?' 1 | \x00^A^B\xff? | ^~ input.y:2.2: error: invalid null character 2 | "\x00" | ^ input.y:4.1: error: invalid character: '?' 4 | ? | ^ input.y:5.14: error: invalid character: '}' 5 | default: 'a' } | ^ input.y:6.1: error: invalid character: '%' 6 | %& | ^ input.y:6.2: error: invalid character: '&' 6 | %& | ^ input.y:7.1-17: error: invalid directive: '%a-does-not-exist' 7 | %a-does-not-exist | ^~~~~~~~~~~~~~~~~ input.y:8.1: error: invalid character: '%' 8 | %- | ^ input.y:8.2: error: invalid character: '-' 8 | %- | ^ input.y:9.1-10.0: error: missing '%}' at end of file 9 | %{ | ^~ ]]) How to run the input.at so I am able to observe what is it doing? And all this seem to work very well regardless of what locale we=20 set. $ pwd /builds/mrehak/workspace/bison/components/bison/build/amd64/tests/testsuite= .dir/004 $ LC_ALL=3DC $ export LC_ALL $ xxd i 00000000: 0001 02ff 3f0a ....?. $ ../../../src/bison i 2>o $ /usr/perl5/5.22/bin/perl -p -e 's{([\0\377])}{sprintf "\\x%02x", ord($1)}= ge' o >op $ xxd op 00000000: 693a 312e 312d 323a 2065 7272 6f72 3a20 i:1.1-2: error:=20 00000010: 696e 7661 6c69 6420 6368 6172 6163 7465 invalid characte 00000020: 7273 3a20 275c 305c 3030 315c 3030 325c rs: '\0\001\002\ 00000030: 3337 373f 270a 2020 2020 3120 7c20 5c78 377?'. 1 | \x 00000040: 3030 0102 5c78 6666 3f0a 2020 2020 2020 00..\xff?. =20 00000050: 7c20 5e7e 0a | ^~. Could you look into attached trace of run script? Thank you --=20 m. --=-L1ercko6A/nhd3T04OiM Content-Type: text/plain; name=run_trace Content-Disposition: attachment; filename=run_trace Content-Transfer-Encoding: base64 KyBEVUFMQ0FTRT0xCisgZXhwb3J0IERVQUxDQVNFCisgdGVzdAorIGNhc2UgYChzZXQgLW8pIDI+ L2Rldi9udWxsYCBpbgorIDoKKyBzZXQgLW8gcG9zaXgKKyA6CisgUEFUSF9TRVBBUkFUT1I9Ogor IGFzX25sPScKJworIGV4cG9ydCBhc19ubAorIElGUz0nIAkKJworIGFzX215c2VsZj0KKyBjYXNl ICQwIGluCisgYXNfbXlzZWxmPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25l bnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzLy4vdGVzdHN1aXRlCisgdGVzdCB4L2J1aWxkcy9t cmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMv Li90ZXN0c3VpdGUgPSB4CisgdGVzdCAnIScgLWYgL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jp c29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvLi90ZXN0c3VpdGUKKyBmb3Ig YXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICisgZXZhbCB0ZXN0ICcke0JBU0hf RU5WK3l9JworKyB0ZXN0CisgOgorIGZvciBhc192YXIgaW4gQkFTSF9FTlYgRU5WIE1BSUwgTUFJ TFBBVEgKKyBldmFsIHRlc3QgJyR7RU5WK3l9JworKyB0ZXN0CisgOgorIGZvciBhc192YXIgaW4g QkFTSF9FTlYgRU5WIE1BSUwgTUFJTFBBVEgKKyBldmFsIHRlc3QgJyR7TUFJTCt5fScKKysgdGVz dAorIDoKKyBmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICisgZXZhbCB0 ZXN0ICcke01BSUxQQVRIK3l9JworKyB0ZXN0CisgOgorIFBTMT0nJCAnCisgUFMyPSc+ICcKKyBQ UzQ9JysgJworIExDX0FMTD1DCisgZXhwb3J0IExDX0FMTAorIExBTkdVQUdFPUMKKyBleHBvcnQg TEFOR1VBR0UKKyB1bnNldCBDRFBBVEgKKyB0ZXN0IHggPSB4CisgYXNfYm91cm5lX2NvbXBhdGli bGU9J2lmIHRlc3QgJHtaU0hfVkVSU0lPTit5fSAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAy PiYxCnRoZW4gOgogIGVtdWxhdGUgc2gKICBOVUxMQ01EPToKICAjIFByZS00LjIgdmVyc2lvbnMg b2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKICAjIGlzIGNvbnRy YXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgogIGFsaWFzIC1nICdcJyck ezErIiRAIn0nXCcnPSdcJyciJEAiJ1wnJwogIHNldG9wdCBOT19HTE9CX1NVQlNUCmVsc2UKICBj YXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4gIygKICAqcG9zaXgqKSA6CiAgICBzZXQgLW8g cG9zaXggOzsgIygKICAqKSA6CiAgICAgOzsKZXNhYwpmaQonCisgYXNfcmVxdWlyZWQ9J2FzX2Zu X3JldHVybiAoKSB7IChleGl0ICQxKTsgfQphc19mbl9zdWNjZXNzICgpIHsgYXNfZm5fcmV0dXJu IDA7IH0KYXNfZm5fZmFpbHVyZSAoKSB7IGFzX2ZuX3JldHVybiAxOyB9CmFzX2ZuX3JldF9zdWNj ZXNzICgpIHsgcmV0dXJuIDA7IH0KYXNfZm5fcmV0X2ZhaWx1cmUgKCkgeyByZXR1cm4gMTsgfQoK ZXhpdGNvZGU9MAphc19mbl9zdWNjZXNzIHx8IHsgZXhpdGNvZGU9MTsgZWNobyBhc19mbl9zdWNj ZXNzIGZhaWxlZC47IH0KYXNfZm5fZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5f ZmFpbHVyZSBzdWNjZWVkZWQuOyB9CmFzX2ZuX3JldF9zdWNjZXNzIHx8IHsgZXhpdGNvZGU9MTsg ZWNobyBhc19mbl9yZXRfc3VjY2VzcyBmYWlsZWQuOyB9CmFzX2ZuX3JldF9mYWlsdXJlICYmIHsg ZXhpdGNvZGU9MTsgZWNobyBhc19mbl9yZXRfZmFpbHVyZSBzdWNjZWVkZWQuOyB9CmlmICggc2V0 IHg7IGFzX2ZuX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gIiQxIiApCnRoZW4gOgoKZWxzZQog IGV4aXRjb2RlPTE7IGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90IHNhdmVkLgpm aQp0ZXN0IHgkZXhpdGNvZGUgPSB4MCB8fCBleGl0IDEKdGVzdCAteCAvIHx8IGV4aXQgMScKKyBh c19zdWdnZXN0ZWQ9JyAgYXNfbGluZW5vXzE9JworIGFzX3N1Z2dlc3RlZD0nICBhc19saW5lbm9f MT0xMzUnCisgYXNfc3VnZ2VzdGVkPScgIGFzX2xpbmVub18xPTEzNSBhc19saW5lbm9fMWE9JExJ TkVOTwogIGFzX2xpbmVub18yPScKKyBhc19zdWdnZXN0ZWQ9JyAgYXNfbGluZW5vXzE9MTM1IGFz X2xpbmVub18xYT0kTElORU5PCiAgYXNfbGluZW5vXzI9MTM2JworIGFzX3N1Z2dlc3RlZD0nICBh c19saW5lbm9fMT0xMzUgYXNfbGluZW5vXzFhPSRMSU5FTk8KICBhc19saW5lbm9fMj0xMzYgYXNf bGluZW5vXzJhPSRMSU5FTk8KICBldmFsICdcJyd0ZXN0ICJ4JGFzX2xpbmVub18xJ1wnJyRhc19y dW4nXCcnIiAhPSAieCRhc19saW5lbm9fMidcJyckYXNfcnVuJ1wnJyIgJiYKICB0ZXN0ICJ4YGV4 cHIgJGFzX2xpbmVub18xJ1wnJyRhc19ydW4nXCcnICsgMWAiID0gIngkYXNfbGluZW5vXzInXCcn JGFzX3J1bidcJyciJ1wnJyB8fCBleGl0IDEKdGVzdCAkKCggMSArIDEgKSkgPSAyIHx8IGV4aXQg MScKKyA6CisgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKKyB0ZXN0IHh5ZXMgPSB4eWVzCisgOgorIFNI RUxMPS9iaW4vc2gKKyBleHBvcnQgU0hFTEwKKyBDTElDT0xPUl9GT1JDRT0KKyBHUkVQX09QVElP TlM9CisgdW5zZXQgQ0xJQ09MT1JfRk9SQ0UgR1JFUF9PUFRJT05TCisgYXNfdW5zZXQ9YXNfZm5f dW5zZXQKKyA6CisgZXZhbCAnYXNfZm5fYXBwZW5kICgpCiAgewogICAgZXZhbCAkMSs9XCQyCiAg fScKKyA6CisgZXZhbCAnYXNfZm5fYXJpdGggKCkKICB7CiAgICBhc192YWw9JCgoICQqICkpCiAg fScKKyBleHByIGEgOiAnXChhXCknCisrIGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJworIHRlc3Qg WDAwMSA9IFgwMDEKKyBhc19leHByPWV4cHIKKysgYmFzZW5hbWUgLS0gLworIHRlc3QgWC0tID0g WC8KKyBhc19iYXNlbmFtZT1mYWxzZQorKyBmYWxzZSAtLSAvYnVpbGRzL21yZWhhay93b3Jrc3Bh Y2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy8uL3Rlc3RzdWl0ZQor KyBleHByIFgvL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24v YnVpbGQvYW1kNjQvdGVzdHMvLi90ZXN0c3VpdGUgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgJ3wn IFgvYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9h bWQ2NC90ZXN0cy8uL3Rlc3RzdWl0ZSA6ICdYXCgvL1wpJCcgJ3wnIFgvYnVpbGRzL21yZWhhay93 b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy8uL3Rlc3Rz dWl0ZSA6ICdYXCgvXCknICd8JyAuCisgYXNfbWU9dGVzdHN1aXRlCisgYXNfZGlybmFtZT1kaXJu YW1lCisgYXNfY3JfbGV0dGVycz1hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egorIGFzX2NyX0xF VFRFUlM9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoKKyBhc19jcl9MZXR0ZXJzPWFiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoKKyBhc19jcl9kaWdp dHM9MDEyMzQ1Njc4OQorIGFzX2NyX2FsbnVtPWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5CisgYXNfbGluZW5vXzE9NDE4CisgYXNf bGluZW5vXzFhPTQxOAorIGFzX2xpbmVub18yPTQxOQorIGFzX2xpbmVub18yYT00MTkKKyBldmFs ICd0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKICB0ZXN0ICJ4YGV4 cHIgJGFzX2xpbmVub18xICsgMWAiID0gIngkYXNfbGluZW5vXzIiJworKyB0ZXN0IHg0MTggJyE9 JyB4NDE5CisrKyBleHByIDQxOCArIDEKKysgdGVzdCB4NDE5ID0geDQxOQorIEVDSE9fQz0KKyBF Q0hPX049CisgRUNIT19UPQorIGNhc2UgYGVjaG8gLW4geGAgaW4KKysgZWNobyAtbiB4CisgY2Fz ZSBgZWNobyAneHlcYydgIGluCisrIGVjaG8gJ3h5XGMnCisgRUNIT19DPSdcYycKKyBhc19lY2hv PSdwcmludGYgJXNcbicKKyBhc19lY2hvX249J3ByaW50ZiAlcycKKyBybSAtZiBjb25mMTY3NjAg Y29uZjE2NzYwLmV4ZSBjb25mMTY3NjAuZmlsZQorIHRlc3QgLWQgY29uZjE2NzYwLmRpcgorIHJt IC1mIGNvbmYxNjc2MC5kaXIKKyBta2RpciBjb25mMTY3NjAuZGlyCisgbG4gLXMgY29uZjE2NzYw LmZpbGUgY29uZjE2NzYwCisgYXNfbG5fcz0nbG4gLXMnCisgbG4gLXMgY29uZjE2NzYwLmZpbGUg Y29uZjE2NzYwLmRpcgorIHRlc3QgJyEnIC1mIGNvbmYxNjc2MC5leGUKKyBybSAtZiBjb25mMTY3 NjAgY29uZjE2NzYwLmV4ZSBjb25mMTY3NjAuZGlyL2NvbmYxNjc2MC5maWxlIGNvbmYxNjc2MC5m aWxlCisgcm1kaXIgY29uZjE2NzYwLmRpcgorIG1rZGlyIC1wIC4KKyBhc19ta2Rpcl9wPSdta2Rp ciAtcCAiJGFzX2RpciInCisgYXNfdGVzdF94PSd0ZXN0IC14JworIGFzX2V4ZWN1dGFibGVfcD1h c19mbl9leGVjdXRhYmxlX3AKKyBhc190cl9jcHA9J2V2YWwgc2VkICdcJyd5JSphYmNkZWZnaGlq a2xtbm9wcXJzdHV2d3h5eiVQQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVolO3MlW15fYWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODld JV8lZydcJycnCisgYXNfdHJfc2g9J2V2YWwgc2VkICdcJyd5JSorJXBwJTtzJVteX2FiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5XSVf JWcnXCcnJworIFNIRUxMPS9iaW4vc2gKKyBhdF9jbGlfYXJncz0nLXYgLWQgNCcKKyBhdF90aW1l c19wPWZhbHNlCisgYXRfdGltZXNfcD06CisgYXRfZGVidWdfYXJncz0KKyBhdF9lcnJleGl0X3A9 ZmFsc2UKKyBhdF92ZXJib3NlPToKKyBhdF9xdWlldD0KKyBhdF9qb2JzPTEKKyBhdF90cmFjZW9u PToKKyBhdF90cmFjZV9lY2hvPToKKyBhdF9jaGVja19maWx0ZXJfdHJhY2U9OgorIGF0X2RlYnVn X3A9ZmFsc2UKKyBhdF9oZWxwX3A9ZmFsc2UKKyBhdF92ZXJzaW9uX3A9ZmFsc2UKKyBhdF9saXN0 X3A9ZmFsc2UKKyBhdF9jbGVhbj1mYWxzZQorIGF0X2dyb3Vwcz0KKyBhdF9yZWNoZWNrPQorIGF0 X3dyaXRlX2ZhaWw9MAorKyBwd2QKKyBhdF9kaXI9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jp c29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMKKyBjYXNlICRhc19teXNlbGYg aW4KKyBhdF9teXNlbGY9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMv Ymlzb24vYnVpbGQvYW1kNjQvdGVzdHMvLi90ZXN0c3VpdGUKKyBhdF9jaGFuZ2VfZGlyPWZhbHNl CisgYXRfY29sb3I9YXV0bworIGF0X3Rlc3RlZD0nImJpc29uIicKKyBhdF9mb3JtYXQ9Jz8/PycK KyBhdF9oZWxwX2FsbD0nMTttNC5hdDoyMTtHZW5lcmF0aW5nIENvbW1lbnRzOzsKMjtpbnB1dC5h dDoyNztJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHM7OwozO2lucHV0LmF0OjU4O0ludmFsaWQg b3B0aW9uczs7CjQ7aW5wdXQuYXQ6ODM7SW52YWxpZCBpbnB1dHM7Owo1O2lucHV0LmF0OjE0MjtJ bnZhbGlkIGlucHV0cyB3aXRoIHt9OzsKNjtpbnB1dC5hdDoxNjg7WWFjYyB3YXJuaW5ncyBvbiBz eW1ib2xzOzsKNztpbnB1dC5hdDoxOTk7WWFjYyB3YXJuaW5nczs7Cjg7aW5wdXQuYXQ6MjMzO1lh Y2MnXCcncyAldHlwZTs7Cjk7aW5wdXQuYXQ6MjgyO0ludmFsaWQgc3ltYm9sIGRlY2xhcmF0aW9u czs7CjEwO2lucHV0LmF0OjMzNjtSZWRlZmluaW5nIHRoZSBlcnJvciB0b2tlbjs7CjExO2lucHV0 LmF0OjM5NjtEYW5nbGluZyBhbGlhc2VzOzsKMTI7aW5wdXQuYXQ6NDIyO1N5bWJvbCBkZWNsYXJh dGlvbnM7OwoxMztpbnB1dC5hdDo1MjM7SW52YWxpZCAkbiBhbmQgQG47OwoxNDtpbnB1dC5hdDo1 NDc7VHlwZSBDbGFzaGVzOzsKMTU7aW5wdXQuYXQ6NzY5O1VudXNlZCB2YWx1ZXM7OwoxNjtpbnB1 dC5hdDo3Nzk7VW51c2VkIHZhbHVlcyBiZWZvcmUgc3ltYm9sIGRlY2xhcmF0aW9uczs7CjE3O2lu cHV0LmF0Ojc4OTtTeW1ib2wgcmVkZWNsYXJlZDs7CjE4O2lucHV0LmF0OjgyNztFT0YgcmVkZWNs YXJlZDs7CjE5O2lucHV0LmF0Ojg1NDtTeW1ib2wgY2xhc3MgcmVkZWZpbml0aW9uOzsKMjA7aW5w dXQuYXQ6ODk0O0RlZmF1bHQgJXByaW50ZXIgYW5kICVkZXN0cnVjdG9yIHJlZGVjbGFyZWQ7Owoy MTtpbnB1dC5hdDo5NjU7UGVyLXR5cGUgJXByaW50ZXIgYW5kICVkZXN0cnVjdG9yIHJlZGVjbGFy ZWQ7OwoyMjtpbnB1dC5hdDoxMDA4O1VuZGVmaW5lZCBzeW1ib2xzOzsKMjM7aW5wdXQuYXQ6MTA0 MDtVbmFzc29jaWF0ZWQgdHlwZXMgdXNlZCBmb3IgYSBwcmludGVyIG9yIGRlc3RydWN0b3I7Owoy NDtpbnB1dC5hdDoxMDY5O1VzZWxlc3MgcHJpbnRlcnMgb3IgZGVzdHJ1Y3RvcnM7OwoyNTtpbnB1 dC5hdDoxMTM0O1VudXNlZCB2YWx1ZXMgd2l0aCBkZWZhdWx0ICVkZXN0cnVjdG9yOzsKMjY7aW5w dXQuYXQ6MTE4MjtVbnVzZWQgdmFsdWVzIHdpdGggcGVyLXR5cGUgJWRlc3RydWN0b3I7OwoyNztp bnB1dC5hdDoxMjE0O0R1cGxpY2F0ZSBzdHJpbmc7OwoyODtpbnB1dC5hdDoxMjQyO1Rva2VuIGNv bGxpc2lvbnM7OwoyOTtpbnB1dC5hdDoxMjcwO0luY29tcGF0aWJsZSBBbGlhc2VzOzsKMzA7aW5w dXQuYXQ6MTM5NTtUb3J0dXJpbmcgdGhlIFNjYW5uZXI7OwozMTtpbnB1dC5hdDoxNTY0O1R5cGVk IHN5bWJvbCBhbGlhc2VzOzsKMzI7aW5wdXQuYXQ6MTYwNDtSZXF1aXJlIDEuMDs7CjMzO2lucHV0 LmF0OjE2MDU7UmVxdWlyZSAzLjcuMzs7CjM0O2lucHV0LmF0OjE2MDc7UmVxdWlyZSAxMDAuMDs7 CjM1O2lucHV0LmF0OjE2MTQ7U3RyaW5nIGFsaWFzZXMgZm9yIGNoYXJhY3RlciB0b2tlbnM7Owoz NjtpbnB1dC5hdDoxNjM3O1N5bWJvbHM7OwozNztpbnB1dC5hdDoxNzAzO051bWJlcmVkIHRva2Vu czs7CjM4O2lucHV0LmF0OjE3NDU7VW5jbG9zZWQgY29uc3RydWN0czs7CjM5O2lucHV0LmF0OjE4 MDA7JXN0YXJ0IGFmdGVyIGZpcnN0IHJ1bGU7Owo0MDtpbnB1dC5hdDoxODIxOyVwcmVjIHRha2Vz IGEgdG9rZW47Owo0MTtpbnB1dC5hdDoxODQyOyVwcmVjJ1wnJ3MgdG9rZW4gbXVzdCBiZSBkZWZp bmVkOzsKNDI7aW5wdXQuYXQ6MTg2MjtSZWplY3QgdW51c2VkICVjb2RlIHF1YWxpZmllcnM7Owo0 MztpbnB1dC5hdDoxOTUxO011bHRpcGxlICVjb2RlOzsKNDQ7aW5wdXQuYXQ6MTk5MTtlcnJvcnM7 Owo0NTtpbnB1dC5hdDoyMDI4OyVkZWZpbmUsIC0tZGVmaW5lLCAtLWZvcmNlLWRlZmluZTs7CjQ2 O2lucHV0LmF0OjIwOTY7IiVkZWZpbmUiIEJvb2xlYW4gdmFyaWFibGVzOzsKNDc7aW5wdXQuYXQ6 MjExNzsiJWRlZmluZSIgY29kZSB2YXJpYWJsZXM7Owo0ODtpbnB1dC5hdDoyMTUwOyIlZGVmaW5l IiBrZXl3b3JkIHZhcmlhYmxlczs7CjQ5O2lucHV0LmF0OjIxODM7IiVkZWZpbmUiIGVudW0gdmFy aWFibGVzOzsKNTA7aW5wdXQuYXQ6MjI0NjsiJWRlZmluZSIgZmlsZSB2YXJpYWJsZXM7Owo1MTtp bnB1dC5hdDoyMjY4OyIlZGVmaW5lIiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OzsKNTI7aW5wdXQu YXQ6MjMxOTtVbnVzZWQgYXBpLnB1cmU7Owo1MztpbnB1dC5hdDoyMzU1O0MrKyBuYW1lc3BhY2Ug cmVmZXJlbmNlIGVycm9yczs7CjU0O2lucHV0LmF0OjI0MDg7QmFkIGNoYXJhY3RlciBsaXRlcmFs czs7CjU1O2lucHV0LmF0OjI0Njk7QmFkIGVzY2FwZXMgaW4gbGl0ZXJhbHM7Owo1NjtpbnB1dC5h dDoyNTA4O1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGU7Owo1NztpbnB1dC5hdDoyNjAxO0xBQzogRXJy b3JzIGZvciAlZGVmaW5lO2xhYzsKNTg7aW5wdXQuYXQ6MjY1NTstV2Vycm9yIGNvbWJpbmF0aW9u czs7CjU5O2lucHV0LmF0OjI3MDA7JW5hbWUtcHJlZml4IGFuZCBhcGkucHJlZml4IGFyZSBpbmNv bXBhdGlibGU7Owo2MDtpbnB1dC5hdDoyNzI5O1JlZGVmaW5lZCAldW5pb24gbmFtZTs7CjYxO2lu cHV0LmF0OjI3NzY7U3RyYXkgJCBvciBAOzsKNjI7aW5wdXQuYXQ6MjgxOTtDb2RlIGluamVjdGlv bjs7CjYzO2lucHV0LmF0OjI4ODM7RGVwcmVjYXRlZCBkaXJlY3RpdmVzO2RlcHJlYzsKNjQ7aW5w dXQuYXQ6MzAxMjtVbnB1dCdcJydzIGVmZmVjdCBvbiBsb2NhdGlvbnM7ZGVwcmVjOwo2NTtpbnB1 dC5hdDozMDQ4O05vbi1kZXByZWNhdGVkIGRpcmVjdGl2ZXM7ZGVwcmVjOwo2NjtpbnB1dC5hdDoz MDgzO0Nhbm5vdCB0eXBlIGFjdGlvbjs7CjY3O2lucHV0LmF0OjMxMDY7Q2hhcmFjdGVyIGxpdGVy YWxzIGFuZCBhcGkudG9rZW4ucmF3OzsKNjg7aW5wdXQuYXQ6MzE0MDsldG9rZW4tdGFibGUgYW5k IHBhcnNlLmVycm9yOzsKNjk7aW5wdXQuYXQ6MzE2NjtJbnZhbGlkIGZpbGUgcHJlZml4IG1hcHBp bmcgYXJndW1lbnRzOzsKNzA7bmFtZWQtcmVmcy5hdDoyMjtUdXRvcmlhbCBjYWxjdWxhdG9yOzsK NzE7bmFtZWQtcmVmcy5hdDoxOTY7VW5kZWZpbmVkIGFuZCBhbWJpZ3VvdXMgcmVmZXJlbmNlczs7 CjcyO25hbWVkLXJlZnMuYXQ6Mjk3O01pc2xlYWRpbmcgcmVmZXJlbmNlczs7CjczO25hbWVkLXJl ZnMuYXQ6MzE2O01hbnkga2luZHMgb2YgZXJyb3JzOzsKNzQ7bmFtZWQtcmVmcy5hdDo1NTE7TWlz c2luZyBpZGVudGlmaWVycyBpbiBicmFja2V0czs7Cjc1O25hbWVkLXJlZnMuYXQ6NTY3O1JlZHVu ZGFudCB3b3JkcyBpbiBicmFja2V0czs7Cjc2O25hbWVkLXJlZnMuYXQ6NTgzO0NvbW1lbnRzIGlu IGJyYWNrZXRzOzsKNzc7bmFtZWQtcmVmcy5hdDo1OTk7U3RyYXkgc3ltYm9scyBpbiBicmFja2V0 czs7Cjc4O25hbWVkLXJlZnMuYXQ6NjE4O1JlZHVuZGFudCB3b3JkcyBpbiBMSFMgYnJhY2tldHM7 Owo3OTtuYW1lZC1yZWZzLmF0OjYzNTtGYWN0b3JlZCBMSFM7Owo4MDtuYW1lZC1yZWZzLmF0OjY0 ODtVbnJlc29sdmVkIHJlZmVyZW5jZXM7Owo4MTtuYW1lZC1yZWZzLmF0OjcxNTskIG9yIEAgZm9s bG93ZWQgYnkgLiBvciAtOzsKODI7b3V0cHV0LmF0OjY2O091dHB1dCBmaWxlczogIC1kdjs7Cjgz O291dHB1dC5hdDo3MjtPdXRwdXQgZmlsZXM6ICAtZHYgPiYtOzsKODQ7b3V0cHV0LmF0Ojc5O091 dHB1dCBmaWxlczogIC1kdiAtbyBmb28uYzs7Cjg1O291dHB1dC5hdDo4MjtPdXRwdXQgZmlsZXM6 ICAtZHYgLXk7Owo4NjtvdXRwdXQuYXQ6ODU7T3V0cHV0IGZpbGVzOiBhcGkuaGVhZGVyLmluY2x1 ZGU9eyIuL2Zvby5oIn0gLWR2IC15OzsKODc7b3V0cHV0LmF0OjkwO091dHB1dCBmaWxlczogIC1k diAtbyBmb28udGFiLmM7Owo4ODtvdXRwdXQuYXQ6OTM7T3V0cHV0IGZpbGVzOiAgLWR2IC1nIC0t eG1sIC0tZml4ZWQtb3V0cHV0LWZpbGVzOzsKODk7b3V0cHV0LmF0Ojk1O091dHB1dCBmaWxlczog IC1kdiAtZyAtLXhtbCAteTs7CjkwO291dHB1dC5hdDo5NztPdXRwdXQgZmlsZXM6ICVyZXF1aXJl ICIzLjQiIC1kdiAtZyAtLXhtbCAteTs7CjkxO291dHB1dC5hdDoxMDA7T3V0cHV0IGZpbGVzOiAg LWR2IC1nIC0teG1sIC1vIHkudGFiLmM7Owo5MjtvdXRwdXQuYXQ6MTAzO091dHB1dCBmaWxlczog IC1kdiAtYiBiYXI7Owo5MztvdXRwdXQuYXQ6MTA1O091dHB1dCBmaWxlczogIC1kdiAtZyAtbyBm b28uYzs7Cjk0O291dHB1dC5hdDoxMDk7T3V0cHV0IGZpbGVzOiAlZGVmaW5lcyAldmVyYm9zZSA7 Owo5NTtvdXRwdXQuYXQ6MTExO091dHB1dCBmaWxlczogJWRlZmluZXMgJXZlcmJvc2UgJXlhY2Mg OzsKOTY7b3V0cHV0LmF0OjExNDtPdXRwdXQgZmlsZXM6ICVkZWZpbmVzICV2ZXJib3NlICV5YWNj IDs7Cjk3O291dHB1dC5hdDoxMTg7T3V0cHV0IGZpbGVzOiAlZmlsZS1wcmVmaXggImJhciIgJWRl ZmluZXMgJXZlcmJvc2UgOzsKOTg7b3V0cHV0LmF0OjEyMDtPdXRwdXQgZmlsZXM6ICVvdXRwdXQg ImJhci5jIiAlZGVmaW5lcyAldmVyYm9zZSAleWFjYyA7Owo5OTtvdXRwdXQuYXQ6MTIyO091dHB1 dCBmaWxlczogJWZpbGUtcHJlZml4ICJiYXoiICVvdXRwdXQgImJhci5jIiAlZGVmaW5lcyAldmVy Ym9zZSAleWFjYyA7OwoxMDA7b3V0cHV0LmF0OjEyOTtPdXRwdXQgZmlsZXM6ICVkZWZpbmVzICV2 ZXJib3NlIDs7CjEwMTtvdXRwdXQuYXQ6MTMyO091dHB1dCBmaWxlczogJWRlZmluZXMgJXZlcmJv c2UgIC1vIGZvby5jOzsKMTAyO291dHB1dC5hdDoxMzU7T3V0cHV0IGZpbGVzOiAgLS1kZWZpbmVz PWZvby5ocHAgLW8gZm9vLmMrKzs7CjEwMztvdXRwdXQuYXQ6MTM5O091dHB1dCBmaWxlczogJWRl ZmluZXMgImZvby5ocHAiIC1vIGZvby5jKys7OwoxMDQ7b3V0cHV0LmF0OjE0MztPdXRwdXQgZmls ZXM6ICAtbyBmb28uYysrIC0tZ3JhcGg9Zm9vLmdwaDs7CjEwNTtvdXRwdXQuYXQ6MTQ5O091dHB1 dCBmaWxlczogJXR5cGUgPGZvbz4gdXNlbGVzcyAtLWRlZmluZXMgLS1ncmFwaCAtLXhtbCAtLXJl cG9ydD1hbGwgLVdhbGwgLVdlcnJvcjs7CjEwNjtvdXRwdXQuYXQ6MTU2O091dHB1dCBmaWxlczog dXNlbGVzcz0tLWRlZmluZXMgLS1ncmFwaCAtLXhtbCAtLXJlcG9ydD1hbGwgLVdhbGwgLVdlcnJv cjs7CjEwNztvdXRwdXQuYXQ6MTcyO091dHB1dCBmaWxlczogbGFscjEuY2MgOzsKMTA4O291dHB1 dC5hdDoxNzU7T3V0cHV0IGZpbGVzOiBsYWxyMS5jYyAldmVyYm9zZSA7OwoxMDk7b3V0cHV0LmF0 OjE3ODtPdXRwdXQgZmlsZXM6IGxhbHIxLmNjICVkZWZpbmVzICV2ZXJib3NlIDs7CjExMDtvdXRw dXQuYXQ6MTgxO091dHB1dCBmaWxlczogbGFscjEuY2MgJXZlcmJvc2UgJWxvY2F0aW9ucyA7Owox MTE7b3V0cHV0LmF0OjE4NDtPdXRwdXQgZmlsZXM6IGxhbHIxLmNjICVkZWZpbmVzICV2ZXJib3Nl ICVsb2NhdGlvbnMgOzsKMTEyO291dHB1dC5hdDoxODc7T3V0cHV0IGZpbGVzOiBsYWxyMS5jYyAl ZGVmaW5lcyAldmVyYm9zZSA7OwoxMTM7b3V0cHV0LmF0OjE5MTtPdXRwdXQgZmlsZXM6IGxhbHIx LmNjICVkZWZpbmVzICV2ZXJib3NlICVsb2NhdGlvbnMgLW8gc3ViZGlyL2Zvby5jYzs7CjExNDtv dXRwdXQuYXQ6MTk2O091dHB1dCBmaWxlczogbGFscjEuY2MgJWRlZmluZXMgJXZlcmJvc2UgJWZp bGUtcHJlZml4ICJvdXRwdXRfZGlyL2ZvbyIgOzsKMTE1O291dHB1dC5hdDoyMDE7T3V0cHV0IGZp bGVzOiBsYWxyMS5jYyAlZGVmaW5lcyAlbG9jYXRpb25zICV2ZXJib3NlICVmaWxlLXByZWZpeCAi b3V0cHV0X2Rpci9mb28iIDs7CjExNjtvdXRwdXQuYXQ6MjA3O091dHB1dCBmaWxlczogbGFscjEu Y2MgJWRlZmluZXMgJWxvY2F0aW9ucyBhcGkubG9jYXRpb24uZmlsZT1ub25lICVyZXF1aXJlICIz LjIiIDs7CjExNztvdXRwdXQuYXQ6MjEyO091dHB1dCBmaWxlczogbGFscjEuY2MgJWRlZmluZXMg JWxvY2F0aW9ucyBhcGkubG9jYXRpb24uZmlsZT0iZm9vLmxvYy5oaCIgJXJlcXVpcmUgIjMuMiIg OzsKMTE4O291dHB1dC5hdDoyMTg7T3V0cHV0IGZpbGVzOiBsYWxyMS5jYyAlZGVmaW5lcyAlbG9j YXRpb25zIGFwaS5sb2NhdGlvbi5maWxlPSIkYXRfZGlyL2Zvby5sb2MuaGgiICVyZXF1aXJlICIz LjIiIDs7CjExOTtvdXRwdXQuYXQ6MjQ4O0NvbmZsaWN0aW5nIG91dHB1dCBmaWxlczogIC0tZ3Jh cGg9ImZvby50YWIuYyI7OwoxMjA7b3V0cHV0LmF0OjI1MztDb25mbGljdGluZyBvdXRwdXQgZmls ZXM6ICVkZWZpbmVzICJmb28ub3V0cHV0IiAtdjs7CjEyMTtvdXRwdXQuYXQ6MjU4O0NvbmZsaWN0 aW5nIG91dHB1dCBmaWxlczogbGFscjEuY2MgJWRlZmluZXMgJWxvY2F0aW9ucyAtLWdyYXBoPSJs b2NhdGlvbi5oaCI7OwoxMjI7b3V0cHV0LmF0OjI2MztDb25mbGljdGluZyBvdXRwdXQgZmlsZXM6 ICAtbyBmb28ueTs7CjEyMztvdXRwdXQuYXQ6MzA5O091dHB1dCBmaWxlIG5hbWU6IGB+IUAjJCVe JiooKS09Xyt7fVtdfFw6Ozw+LCAuJ1wnJztjKys7CjEyNDtvdXRwdXQuYXQ6MzE2O091dHB1dCBm aWxlIG5hbWU6ICg7YysrOwoxMjU7b3V0cHV0LmF0OjMxNztPdXRwdXQgZmlsZSBuYW1lOiApO2Mr KzsKMTI2O291dHB1dC5hdDozMTg7T3V0cHV0IGZpbGUgbmFtZTogIztjKys7CjEyNztvdXRwdXQu YXQ6MzE5O091dHB1dCBmaWxlIG5hbWU6IEBAO2MrKzsKMTI4O291dHB1dC5hdDozMjA7T3V0cHV0 IGZpbGUgbmFtZTogQHs7YysrOwoxMjk7b3V0cHV0LmF0OjMyMTtPdXRwdXQgZmlsZSBuYW1lOiBA fTtjKys7CjEzMDtvdXRwdXQuYXQ6MzIyO091dHB1dCBmaWxlIG5hbWU6IFs7YysrOwoxMzE7b3V0 cHV0LmF0OjMyMztPdXRwdXQgZmlsZSBuYW1lOiBdO2MrKzsKMTMyO291dHB1dC5hdDozNDQ7R3Jh cGggd2l0aCBubyBjb25mbGljdHM7Z3JhcGg7CjEzMztvdXRwdXQuYXQ6Mzg0O0dyYXBoIHdpdGgg dW5zb2x2ZWQgUy9SO2dyYXBoOwoxMzQ7b3V0cHV0LmF0OjQ1NDtHcmFwaCB3aXRoIHNvbHZlZCBT L1I7Z3JhcGg7CjEzNTtvdXRwdXQuYXQ6NTE5O0dyYXBoIHdpdGggUi9SO2dyYXBoOwoxMzY7b3V0 cHV0LmF0OjU1NztHcmFwaCB3aXRoIHJlZHVjdGlvbnMgd2l0aCBtdWx0aXBsZSBMQVQ7Z3JhcGg7 CjEzNztvdXRwdXQuYXQ6NjIyO0dyYXBoIHdpdGggYSByZWR1Y3Rpb24gcnVsZSBib3RoIGVuYWJs ZWQgYW5kIGRpc2FibGVkO2dyYXBoOwoxMzg7b3V0cHV0LmF0OjcyNTtDKysgT3V0cHV0IEZpbGUg UHJlZml4IE1hcHBpbmc7YysrOwoxMzk7ZGlhZ25vc3RpY3MuYXQ6ODQ7V2FybmluZ3M7ZGlhZ25v c3RpY3M7CjE0MDtkaWFnbm9zdGljcy5hdDoxMzM7U2luZ2xlIHBvaW50IGxvY2F0aW9ucztkaWFn bm9zdGljczsKMTQxO2RpYWdub3N0aWNzLmF0OjE4MjtMaW5lIGlzIHRvbyBzaG9ydCwgYW5kIHRo ZW4geW91IGRpZTtkaWFnbm9zdGljczsKMTQyO2RpYWdub3N0aWNzLmF0OjIxNztaZXJvLXdpZHRo IGNoYXJhY3RlcnM7ZGlhZ25vc3RpY3M7CjE0MztkaWFnbm9zdGljcy5hdDoyMzU7VGFidWxhdGlv bnMgYW5kIG11bHRpYnl0ZSBjaGFyYWN0ZXJzO2RpYWdub3N0aWNzOwoxNDQ7ZGlhZ25vc3RpY3Mu YXQ6MjgyO1RhYnVsYXRpb25zIGFuZCBtdWx0aWJ5dGUgY2hhcmFjdGVycztkaWFnbm9zdGljczsK MTQ1O2RpYWdub3N0aWNzLmF0OjMwMztTcGVjaWFsIGZpbGVzO2RpYWdub3N0aWNzOwoxNDY7ZGlh Z25vc3RpY3MuYXQ6MzI4O0NvbXBsYWludHMgZnJvbSBNNDtkaWFnbm9zdGljczsKMTQ3O2RpYWdu b3N0aWNzLmF0OjM1MTtDYXJyaWFnZSByZXR1cm47ZGlhZ25vc3RpY3M7CjE0ODtkaWFnbm9zdGlj cy5hdDozNzI7Q1IgTkw7ZGlhZ25vc3RpY3M7CjE0OTtkaWFnbm9zdGljcy5hdDozOTk7U2NyZWVu IHdpZHRoOiAyMDAgY29sdW1ucztkaWFnbm9zdGljczsKMTUwO2RpYWdub3N0aWNzLmF0OjQzMjtT Y3JlZW4gd2lkdGg6IDgwIGNvbHVtbnM7ZGlhZ25vc3RpY3M7CjE1MTtkaWFnbm9zdGljcy5hdDo0 NjU7U2NyZWVuIHdpZHRoOiA2MCBjb2x1bW5zO2RpYWdub3N0aWNzOwoxNTI7ZGlhZ25vc3RpY3Mu YXQ6NTA0O1N1Z2dlc3Rpb25zO2RpYWdub3N0aWNzOwoxNTM7ZGlhZ25vc3RpY3MuYXQ6NTI3O0Nv dW50ZXJleGFtcGxlcztkaWFnbm9zdGljcyBjZXg7CjE1NDtkaWFnbm9zdGljcy5hdDo1ODU7RGVl cCBDb3VudGVyZXhhbXBsZXM7ZGlhZ25vc3RpY3MgY2V4OwoxNTU7ZGlhZ25vc3RpY3MuYXQ6NjUz O0luZGVudGF0aW9uIHdpdGggbWVzc2FnZSBzdXBwcmVzc2lvbjs7CjE1Njtza2VsZXRvbnMuYXQ6 MjU7UmVsYXRpdmUgc2tlbGV0b24gZmlsZSBuYW1lczs7CjE1Nztza2VsZXRvbnMuYXQ6ODU7SW5z dGFsbGVkIHNrZWxldG9uIGZpbGUgbmFtZXM7OwoxNTg7c2tlbGV0b25zLmF0OjE0MjtCb29sZWFu PXZhcmlhYmxlczogaW52YWxpZCBza2VsZXRvbiBkZWZhdWx0czs7CjE1OTtza2VsZXRvbnMuYXQ6 MTY2O0NvbXBsYWluaW5nIGR1cmluZyBtYWNybyBhcmd1bWVudCBleHBhbnNpb247OwoxNjA7c2tl bGV0b25zLmF0OjI0ODtGYXRhbCBlcnJvcnMgbWFrZSBNNCBleGl0IGltbWVkaWF0ZWx5OzsKMTYx O3NrZWxldG9ucy5hdDozMDI7RmF0YWwgZXJyb3JzIGJ1dCBNNCBjb250aW51ZXMgcHJvZHVjaW5n IG91dHB1dDs7CjE2MjtzZXRzLmF0OjI3O051bGxhYmxlOzsKMTYzO3NldHMuYXQ6MTExO0Jyb2tl biBDbG9zdXJlOzsKMTY0O3NldHMuYXQ6MTUzO0ZpcnN0czs7CjE2NTtzZXRzLmF0OjIyODtBY2Nl cHQ7OwoxNjY7c2V0cy5hdDoyNjk7QnVpbGQgcmVsYXRpb25zOzsKMTY3O3NldHMuYXQ6MzE1O1Jl ZHVjZWQgR3JhbW1hcjs7CjE2ODtzZXRzLmF0OjM5MztSZWR1Y2VkIEdyYW1tYXIgd2l0aCBwcmVj IGFuZCBhc3NvYzs7CjE2OTtyZWR1Y2UuYXQ6MjY7VXNlbGVzcyBUZXJtaW5hbHM7OwoxNzA7cmVk dWNlLmF0OjcwO1VzZWxlc3MgTm9udGVybWluYWxzOzsKMTcxO3JlZHVjZS5hdDoxMjA7VXNlbGVz cyBSdWxlcztyZXBvcnQ7CjE3MjtyZWR1Y2UuYXQ6MjI0O1VzZWxlc3MgUGFydHM7OwoxNzM7cmVk dWNlLmF0OjMxMjtSZWR1Y2VkIEF1dG9tYXRvbjtyZXBvcnQ7CjE3NDtyZWR1Y2UuYXQ6NDA2O1Vu ZGVyaXZhYmxlIFJ1bGVzO3JlcG9ydDsKMTc1O3JlZHVjZS5hdDo0NTI7RW1wdHkgTGFuZ3VhZ2U7 OwoxNzY7cmVkdWNlLmF0OjUwMztubyBsci50eXBlOiBTaW5nbGUgU3RhdGUgU3BsaXQ7OwoxNzc7 cmVkdWNlLmF0OjUwMztsci50eXBlPWxhbHI6IFNpbmdsZSBTdGF0ZSBTcGxpdDs7CjE3ODtyZWR1 Y2UuYXQ6NTAzO2xyLnR5cGU9aWVscjogU2luZ2xlIFN0YXRlIFNwbGl0OzsKMTc5O3JlZHVjZS5h dDo1MDM7bHIudHlwZT1jYW5vbmljYWwtbHI6IFNpbmdsZSBTdGF0ZSBTcGxpdDs7CjE4MDtyZWR1 Y2UuYXQ6NzM2O25vIGxyLnR5cGU6IExhbmUgU3BsaXQ7OwoxODE7cmVkdWNlLmF0OjczNjtsci50 eXBlPWxhbHI6IExhbmUgU3BsaXQ7OwoxODI7cmVkdWNlLmF0OjczNjtsci50eXBlPWllbHI6IExh bmUgU3BsaXQ7OwoxODM7cmVkdWNlLmF0OjczNjtsci50eXBlPWNhbm9uaWNhbC1scjogTGFuZSBT cGxpdDs7CjE4NDtyZWR1Y2UuYXQ6OTgwO25vIGxyLnR5cGU6IENvbXBsZXggTGFuZSBTcGxpdDs7 CjE4NTtyZWR1Y2UuYXQ6OTgwO2xyLnR5cGU9bGFscjogQ29tcGxleCBMYW5lIFNwbGl0OzsKMTg2 O3JlZHVjZS5hdDo5ODA7bHIudHlwZT1pZWxyOiBDb21wbGV4IExhbmUgU3BsaXQ7OwoxODc7cmVk dWNlLmF0Ojk4MDtsci50eXBlPWNhbm9uaWNhbC1scjogQ29tcGxleCBMYW5lIFNwbGl0OzsKMTg4 O3JlZHVjZS5hdDoxMjQ5O25vIGxyLnR5cGU6IFNwbGl0IER1cmluZyBBZGRlZCBMb29rYWhlYWQg UHJvcGFnYXRpb247OwoxODk7cmVkdWNlLmF0OjEyNDk7bHIudHlwZT1sYWxyOiBTcGxpdCBEdXJp bmcgQWRkZWQgTG9va2FoZWFkIFByb3BhZ2F0aW9uOzsKMTkwO3JlZHVjZS5hdDoxMjQ5O2xyLnR5 cGU9aWVscjogU3BsaXQgRHVyaW5nIEFkZGVkIExvb2thaGVhZCBQcm9wYWdhdGlvbjs7CjE5MTty ZWR1Y2UuYXQ6MTI0OTtsci50eXBlPWNhbm9uaWNhbC1scjogU3BsaXQgRHVyaW5nIEFkZGVkIExv b2thaGVhZCBQcm9wYWdhdGlvbjs7CjE5MjtyZWR1Y2UuYXQ6MTU4MDtubyBsci5kZWZhdWx0LXJl ZHVjdGlvbjs7CjE5MztyZWR1Y2UuYXQ6MTU4MDtsci5kZWZhdWx0LXJlZHVjdGlvbj1tb3N0OzsK MTk0O3JlZHVjZS5hdDoxNTgwO2xyLmRlZmF1bHQtcmVkdWN0aW9uPWNvbnNpc3RlbnQ7OwoxOTU7 cmVkdWNlLmF0OjE1ODA7bHIuZGVmYXVsdC1yZWR1Y3Rpb249YWNjZXB0aW5nOzsKMTk2O3JlcG9y dC5hdDoyNDtSZXBvcnRzO3JlcG9ydDsKMTk3O3JlcG9ydC5hdDoxNTE2O1JlcG9ydHMgd2l0aCBj b25mbGljdHM7Y2V4IHJlcG9ydDsKMTk4O2NvbmZsaWN0cy5hdDoyODtUb2tlbiBkZWNsYXJhdGlv biBvcmRlcjs7CjE5OTtjb25mbGljdHMuYXQ6MTAxO1Rva2VuIGRlY2xhcmF0aW9uIG9yZGVyOiBs aXRlcmFscyB2cy4gaWRlbnRpZmllcnM7OwoyMDA7Y29uZmxpY3RzLmF0OjE4MztVc2VsZXNzIGFz c29jaWF0aXZpdHkgd2FybmluZzs7CjIwMTtjb25mbGljdHMuYXQ6MjE4O1VzZWxlc3MgcHJlY2Vk ZW5jZSB3YXJuaW5nOzsKMjAyO2NvbmZsaWN0cy5hdDoyNzU7Uy9SIGluIGluaXRpYWw7OwoyMDM7 Y29uZmxpY3RzLmF0OjMwMTslbm9uYXNzb2MgYW5kIGVvZjs7CjIwNDtjb25mbGljdHMuYXQ6NTA5 O3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNvbnNpc3RlbnQgZXJyb3JzOiBsci50eXBlPWllbHI7 OwoyMDU7Y29uZmxpY3RzLmF0OjUxMztwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25zaXN0ZW50 IGVycm9yczogbHIudHlwZT1pZWxyICVnbHItcGFyc2VyO2dscjsKMjA2O2NvbmZsaWN0cy5hdDo1 MTg7cGFyc2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLnR5cGU9aWVs ciBjKys7YysrOwoyMDc7Y29uZmxpY3RzLmF0OjUyMztwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBj b25zaXN0ZW50IGVycm9yczogbHIudHlwZT1pZWxyIGphdmE7amF2YTsKMjA4O2NvbmZsaWN0cy5h dDo1MzA7cGFyc2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLnR5cGU9 aWVsciBsci5kZWZhdWx0LXJlZHVjdGlvbj1jb25zaXN0ZW50OzsKMjA5O2NvbmZsaWN0cy5hdDo1 MzU7cGFyc2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLnR5cGU9aWVs ciBsci5kZWZhdWx0LXJlZHVjdGlvbj1hY2NlcHRpbmc7OwoyMTA7Y29uZmxpY3RzLmF0OjU0MDtw YXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25zaXN0ZW50IGVycm9yczogbHIudHlwZT1jYW5vbmlj YWwtbHI7OwoyMTE7Y29uZmxpY3RzLmF0OjU0NjtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25z aXN0ZW50IGVycm9yczogbHIudHlwZT1jYW5vbmljYWwtbHIgcGFyc2UubGFjPWZ1bGw7OwoyMTI7 Y29uZmxpY3RzLmF0OjU1MTtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25zaXN0ZW50IGVycm9y czogbHIudHlwZT1pZWxyIHBhcnNlLmxhYz1mdWxsOzsKMjEzO2NvbmZsaWN0cy5hdDo1NTg7cGFy c2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGMrKyBsci50eXBlPWNhbm9u aWNhbC1sciBwYXJzZS5sYWM9ZnVsbDtjKys7CjIxNDtjb25mbGljdHMuYXQ6NTY0O3BhcnNlLmVy cm9yPXZlcmJvc2UgYW5kIGNvbnNpc3RlbnQgZXJyb3JzOiBjKysgbHIudHlwZT1pZWxyIHBhcnNl LmxhYz1mdWxsO2MrKzsKMjE1O2NvbmZsaWN0cy5hdDo2MjI7cGFyc2UuZXJyb3I9dmVyYm9zZSBh bmQgY29uc2lzdGVudCBlcnJvcnM6IDs7CjIxNjtjb25mbGljdHMuYXQ6NjI2O3BhcnNlLmVycm9y PXZlcmJvc2UgYW5kIGNvbnNpc3RlbnQgZXJyb3JzOiAlZ2xyLXBhcnNlcjtnbHI7CjIxNztjb25m bGljdHMuYXQ6NjMyO3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNvbnNpc3RlbnQgZXJyb3JzOiBs ci5kZWZhdWx0LXJlZHVjdGlvbj1jb25zaXN0ZW50OzsKMjE4O2NvbmZsaWN0cy5hdDo2Mzg7cGFy c2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLmRlZmF1bHQtcmVkdWN0 aW9uPWFjY2VwdGluZzs7CjIxOTtjb25mbGljdHMuYXQ6NjQyO3BhcnNlLmVycm9yPXZlcmJvc2Ug YW5kIGNvbnNpc3RlbnQgZXJyb3JzOiBsci50eXBlPWNhbm9uaWNhbC1scjs7CjIyMDtjb25mbGlj dHMuYXQ6NjQ3O3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNvbnNpc3RlbnQgZXJyb3JzOiBwYXJz ZS5sYWM9ZnVsbDs7CjIyMTtjb25mbGljdHMuYXQ6NjUxO3BhcnNlLmVycm9yPXZlcmJvc2UgYW5k IGNvbnNpc3RlbnQgZXJyb3JzOiBwYXJzZS5sYWM9ZnVsbCBsci5kZWZhdWx0LXJlZHVjdGlvbj1h Y2NlcHRpbmc7OwoyMjI7Y29uZmxpY3RzLmF0OjY3NjtMQUM6ICVub25hc3NvYyByZXF1aXJlcyBz cGxpdHRpbmcgY2Fub25pY2FsIExSIHN0YXRlczs7CjIyMztjb25mbGljdHMuYXQ6NzY0O1VucmVz b2x2ZWQgU1IgQ29uZmxpY3RzO2NleCByZXBvcnQ7CjIyNDtjb25mbGljdHMuYXQ6ODg3O1Jlc29s dmVkIFNSIENvbmZsaWN0cztyZXBvcnQ7CjIyNTtjb25mbGljdHMuYXQ6OTg5OyVwcmVjZWRlbmNl IHN1ZmZpY2VzOzsKMjI2O2NvbmZsaWN0cy5hdDoxMDE1OyVwcmVjZWRlbmNlIGRvZXMgbm90IHN1 ZmZpY2U7OwoyMjc7Y29uZmxpY3RzLmF0OjEwOTY7U3ludGF4IGVycm9yIGluIGNvbnNpc3RlbnQg ZXJyb3Igc3RhdGU6IHlhY2MuYzs7CjIyODtjb25mbGljdHMuYXQ6MTA5NjtTeW50YXggZXJyb3Ig aW4gY29uc2lzdGVudCBlcnJvciBzdGF0ZTogZ2xyLmM7Z2xyOwoyMjk7Y29uZmxpY3RzLmF0OjEw OTY7U3ludGF4IGVycm9yIGluIGNvbnNpc3RlbnQgZXJyb3Igc3RhdGU6IGxhbHIxLmNjO2MrKzsK MjMwO2NvbmZsaWN0cy5hdDoxMDk2O1N5bnRheCBlcnJvciBpbiBjb25zaXN0ZW50IGVycm9yIHN0 YXRlOiBnbHIuY2M7Z2xyIGMrKzsKMjMxO2NvbmZsaWN0cy5hdDoxMTI3O0RlZmF1bHRlZCBDb25m bGljdGVkIFJlZHVjdGlvbjtjZXggcmVwb3J0OwoyMzI7Y29uZmxpY3RzLmF0OjEyNjQ7JWV4cGVj dCBub3QgZW5vdWdoOzsKMjMzO2NvbmZsaWN0cy5hdDoxMjg0OyVleHBlY3QgcmlnaHQ7OwoyMzQ7 Y29uZmxpY3RzLmF0OjEzMDE7JWV4cGVjdCB0b28gbXVjaDs7CjIzNTtjb25mbGljdHMuYXQ6MTMy MTslZXhwZWN0IHdpdGggcmVkdWNlIGNvbmZsaWN0czs7CjIzNjtjb25mbGljdHMuYXQ6MTM0MTsl ZXhwZWN0IGluIGdyYW1tYXIgcnVsZSBub3QgZW5vdWdoOzsKMjM3O2NvbmZsaWN0cy5hdDoxMzYw OyVleHBlY3QgaW4gZ3JhbW1hciBydWxlIHJpZ2h0OzsKMjM4O2NvbmZsaWN0cy5hdDoxMzc3OyVl eHBlY3QgaW4gZ3JhbW1hciBydWxlczs7CjIzOTtjb25mbGljdHMuYXQ6MTM5NjslZXhwZWN0IGlu IGdyYW1tYXIgcnVsZSB0b28gbXVjaDs7CjI0MDtjb25mbGljdHMuYXQ6MTQxNTslZXhwZWN0LXJy IGluIGdyYW1tYXIgcnVsZTs7CjI0MTtjb25mbGljdHMuYXQ6MTQ0MDslZXhwZWN0LXJyIHRvbyBt dWNoIGluIGdyYW1tYXIgcnVsZTs7CjI0Mjtjb25mbGljdHMuYXQ6MTQ2OTslZXhwZWN0LXJyIG5v dCBlbm91Z2ggaW4gZ3JhbW1hciBydWxlOzsKMjQzO2NvbmZsaWN0cy5hdDoxNDk4OyVwcmVjIHdp dGggdXNlciBzdHJpbmc7OwoyNDQ7Y29uZmxpY3RzLmF0OjE1MTU7JW5vLWRlZmF1bHQtcHJlYyB3 aXRob3V0ICVwcmVjOzsKMjQ1O2NvbmZsaWN0cy5hdDoxNTQ0OyVuby1kZWZhdWx0LXByZWMgd2l0 aCAlcHJlYzs7CjI0Njtjb25mbGljdHMuYXQ6MTU2ODslZGVmYXVsdC1wcmVjOzsKMjQ3O2NvbmZs aWN0cy5hdDoxNTkyO1VucmVhY2hhYmxlIFN0YXRlcyBBZnRlciBDb25mbGljdCBSZXNvbHV0aW9u O2NleCByZXBvcnQ7CjI0ODtjb25mbGljdHMuYXQ6MTg1NTtTb2x2ZWQgY29uZmxpY3RzIHJlcG9y dCBmb3IgbXVsdGlwbGUgcmVkdWN0aW9ucyBpbiBhIHN0YXRlOzsKMjQ5O2NvbmZsaWN0cy5hdDox OTM1OyVub25hc3NvYyBlcnJvciBhY3Rpb25zIGZvciBtdWx0aXBsZSByZWR1Y3Rpb25zIGluIGEg c3RhdGU7Y2V4IHJlcG9ydDsKMjUwO2NvbmZsaWN0cy5hdDoyMDIwOyVleHBlY3QtcnIgbm9uIEdM Ujs7CjI1MTtjb25mbGljdHMuYXQ6MjA1MjstVyB2ZXJzdXMgJWV4cGVjdCBhbmQgJWV4cGVjdC1y cjs7CjI1Mjtjb3VudGVyZXhhbXBsZS5hdDo0MztVbmlmeWluZyBTL1I7Y2V4OwoyNTM7Y291bnRl cmV4YW1wbGUuYXQ6ODM7RGVlcCBVbmlmeWluZyBTL1I7Y2V4OwoyNTQ7Y291bnRlcmV4YW1wbGUu YXQ6MTQ0O1MvUiBDb25mbGljdCB3aXRoIE51bGxhYmxlIFN5bWJvbHM7Y2V4OwoyNTU7Y291bnRl cmV4YW1wbGUuYXQ6MjA3O05vbi11bmlmeWluZyBBbWJpZ3VvdXMgUy9SO2NleDsKMjU2O2NvdW50 ZXJleGFtcGxlLmF0OjI1NDtOb24tdW5pZnlpbmcgVW5hbWJpZ3VvdXMgUy9SO2NleDsKMjU3O2Nv dW50ZXJleGFtcGxlLmF0OjI5ODtTL1IgYWZ0ZXIgZmlyc3QgdG9rZW47Y2V4OwoyNTg7Y291bnRl cmV4YW1wbGUuYXQ6MzYzO1VuaWZ5aW5nIFIvUiBjb3VudGVyZXhhbXBsZTtjZXg7CjI1OTtjb3Vu dGVyZXhhbXBsZS5hdDozOTk7Tm9uLXVuaWZ5aW5nIFIvUiBMUigxKSBjb25mbGljdDtjZXg7CjI2 MDtjb3VudGVyZXhhbXBsZS5hdDo0NDE7Tm9uLXVuaWZ5aW5nIFIvUiBMUigyKSBjb25mbGljdDtj ZXg7CjI2MTtjb3VudGVyZXhhbXBsZS5hdDo0ODg7Q2V4IFNlYXJjaCBQcmVwZW5kO2NleDsKMjYy O2NvdW50ZXJleGFtcGxlLmF0OjU1MDtSL1IgY2V4IHdpdGggcHJlYztjZXg7CjI2Mztjb3VudGVy ZXhhbXBsZS5hdDo2MTA7TnVsbCBub250ZXJtaW5hbHM7Y2V4OwoyNjQ7Y291bnRlcmV4YW1wbGUu YXQ6Nzk3O05vbi11bmlmeWluZyBQcmVmaXggU2hhcmU7Y2V4OwoyNjU7Y291bnRlcmV4YW1wbGUu YXQ6ODQyO0RlZXAgTnVsbCBVbmlmeWluZztjZXg7CjI2Njtjb3VudGVyZXhhbXBsZS5hdDo4ODQ7 RGVlcCBOdWxsIE5vbi11bmlmeWluZztjZXg7CjI2NztzeW5jbGluZXMuYXQ6MTk0O1Byb2xvZ3Vl IHN5bmNsaW5lOzsKMjY4O3N5bmNsaW5lcy5hdDoyMTQ7JXVuaW9uIHN5bmNsaW5lOzsKMjY5O3N5 bmNsaW5lcy5hdDoyMzc7JXVuaW9uIG5hbWUgc3luY2xpbmU7OwoyNzA7c3luY2xpbmVzLmF0OjI2 NDtQb3N0cHJvbG9ndWUgc3luY2xpbmU7OwoyNzE7c3luY2xpbmVzLmF0OjI5MTtBY3Rpb24gc3lu Y2xpbmU7OwoyNzI7c3luY2xpbmVzLmF0OjMxMDtFcGlsb2d1ZSBzeW5jbGluZTs7CjI3MztzeW5j bGluZXMuYXQ6MzI3OyVjb2RlIHRvcCBzeW5jbGluZTs7CjI3NDtzeW5jbGluZXMuYXQ6MzQ2OyVk ZXN0cnVjdG9yIHN5bmNsaW5lOzsKMjc1O3N5bmNsaW5lcy5hdDozNzA7JXByaW50ZXIgc3luY2xp bmU7OwoyNzY7c3luY2xpbmVzLmF0OjQ0MDtzeW5jbGluZSBlc2NhcGVzOiB5YWNjLmM7OwoyNzc7 c3luY2xpbmVzLmF0OjQ0MDtzeW5jbGluZSBlc2NhcGVzOiBnbHIuYztnbHI7CjI3ODtzeW5jbGlu ZXMuYXQ6NDQwO3N5bmNsaW5lIGVzY2FwZXM6IGxhbHIxLmNjO2MrKzsKMjc5O3N5bmNsaW5lcy5h dDo0NDA7c3luY2xpbmUgZXNjYXBlczogZ2xyLmNjO2dsciBjKys7CjI4MDtzeW5jbGluZXMuYXQ6 NDk3OyVuby1saW5lczogeWFjYy5jOzsKMjgxO3N5bmNsaW5lcy5hdDo0OTc7JW5vLWxpbmVzOiBn bHIuYztnbHI7CjI4MjtzeW5jbGluZXMuYXQ6NDk3OyVuby1saW5lczogbGFscjEuY2M7OwoyODM7 c3luY2xpbmVzLmF0OjQ5Nzslbm8tbGluZXM6IGdsci5jYztnbHI7CjI4NDtzeW5jbGluZXMuYXQ6 NTA3O091dHB1dCBjb2x1bW5zOzsKMjg1O2hlYWRlcnMuYXQ6NTc7SW52YWxpZCBDUFAgZ3VhcmRz OiAgLS1kZWZpbmVzPWlucHV0L2lucHV0Lmg7OwoyODY7aGVhZGVycy5hdDo1ODtJbnZhbGlkIENQ UCBndWFyZHM6ICAtLWRlZmluZXM9OWZvby5oOzsKMjg3O2hlYWRlcnMuYXQ6NTk7SW52YWxpZCBD UFAgZ3VhcmRzOiAlZ2xyLXBhcnNlciAtLWRlZmluZXM9aW5wdXQvaW5wdXQuaDtnbHI7CjI4ODto ZWFkZXJzLmF0OjYwO0ludmFsaWQgQ1BQIGd1YXJkczogJWdsci1wYXJzZXIgLS1kZWZpbmVzPTlm b28uaDtnbHI7CjI4OTtoZWFkZXJzLmF0OjY4O2V4cG9ydCBZWUxUWVBFOzsKMjkwO2hlYWRlcnMu YXQ6MTc4O1NhbmUgaGVhZGVyczogOzsKMjkxO2hlYWRlcnMuYXQ6MTc5O1NhbmUgaGVhZGVyczog JWxvY2F0aW9ucyAlZGVidWc7OwoyOTI7aGVhZGVycy5hdDoxODE7U2FuZSBoZWFkZXJzOiAlZ2xy LXBhcnNlcjtnbHI7CjI5MztoZWFkZXJzLmF0OjE4MjtTYW5lIGhlYWRlcnM6ICVsb2NhdGlvbnMg JWRlYnVnICVnbHItcGFyc2VyO2dscjsKMjk0O2hlYWRlcnMuYXQ6MTg0O1NhbmUgaGVhZGVyczog YXBpLnB1cmU7OwoyOTU7aGVhZGVycy5hdDoxODU7U2FuZSBoZWFkZXJzOiBhcGkucHVzaC1wdWxs PWJvdGg7cHVzaDsKMjk2O2hlYWRlcnMuYXQ6MTg2O1NhbmUgaGVhZGVyczogYXBpLnB1cmUgYXBp LnB1c2gtcHVsbD1ib3RoO3B1c2g7CjI5NztoZWFkZXJzLmF0OjE4ODtTYW5lIGhlYWRlcnM6IGMr KztjKys7CjI5ODtoZWFkZXJzLmF0OjE4OTtTYW5lIGhlYWRlcnM6ICVsb2NhdGlvbnMgJWRlYnVn IGMrKztjKys7CjI5OTtoZWFkZXJzLmF0OjE5MDtTYW5lIGhlYWRlcnM6IGMrKyBhcGkudmFsdWUu dHlwZT12YXJpYW50IHBhcnNlLmFzc2VydDtjKys7CjMwMDtoZWFkZXJzLmF0OjE5MjtTYW5lIGhl YWRlcnM6ICVsb2NhdGlvbnMgYysrICVnbHItcGFyc2VyO2dsciBjKys7CjMwMTtoZWFkZXJzLmF0 OjIwMDtTZXZlcmFsIHBhcnNlcnM7Z2xyIGMrKyBwdXNoOwozMDI7YWN0aW9ucy5hdDoyNDtNaWRy dWxlIGFjdGlvbnM7OwozMDM7YWN0aW9ucy5hdDo3MjtUeXBlZCBtaWRydWxlIGFjdGlvbnM7Owoz MDQ7YWN0aW9ucy5hdDoxMjI7SW1wbGljaXRseSBlbXB0eSBydWxlOzsKMzA1O2FjdGlvbnMuYXQ6 MTcyO0ludmFsaWQgdXNlcyBvZiAlZW1wdHk7OwozMDY7YWN0aW9ucy5hdDoyNDA7VmFsaWQgdXNl cyBvZiAlZW1wdHk7OwozMDc7YWN0aW9ucy5hdDoyNzA7QWRkIG1pc3NpbmcgJWVtcHR5OzsKMzA4 O2FjdGlvbnMuYXQ6MzY1O0luaXRpYWwgbG9jYXRpb246IHlhY2MuYyA7OwozMDk7YWN0aW9ucy5h dDozNjY7SW5pdGlhbCBsb2NhdGlvbjogeWFjYy5jIGFwaS5wdXJlPWZ1bGw7OwozMTA7YWN0aW9u cy5hdDozNjc7SW5pdGlhbCBsb2NhdGlvbjogeWFjYy5jIGFwaS5wdXJlICVwYXJzZS1wYXJhbSB7 IGludCB4IH07OwozMTE7YWN0aW9ucy5hdDozNjg7SW5pdGlhbCBsb2NhdGlvbjogeWFjYy5jIGFw aS5wdXNoLXB1bGw9Ym90aDtwdXNoOwozMTI7YWN0aW9ucy5hdDozNjk7SW5pdGlhbCBsb2NhdGlv bjogeWFjYy5jIGFwaS5wdXNoLXB1bGw9Ym90aCBhcGkucHVyZT1mdWxsO3B1c2g7CjMxMzthY3Rp b25zLmF0OjM3MDtJbml0aWFsIGxvY2F0aW9uOiBnbHIuYyA7Z2xyOwozMTQ7YWN0aW9ucy5hdDoz NzE7SW5pdGlhbCBsb2NhdGlvbjogZ2xyLmMgYXBpLnB1cmU7Z2xyOwozMTU7YWN0aW9ucy5hdDoz NzI7SW5pdGlhbCBsb2NhdGlvbjogbGFscjEuY2MgO2MrKzsKMzE2O2FjdGlvbnMuYXQ6MzczO0lu aXRpYWwgbG9jYXRpb246IGdsci5jYyA7Z2xyIGMrKzsKMzE3O2FjdGlvbnMuYXQ6MzgyO0luaXRp YWwgbG9jYXRpb246IHlhY2MuYyBhcGkucHVyZT1mdWxsOzsKMzE4O2FjdGlvbnMuYXQ6MzkzO0lu aXRpYWwgbG9jYXRpb246IHlhY2MuYyBhcGkucHVyZT1mdWxsOzsKMzE5O2FjdGlvbnMuYXQ6NDc3 O0xvY2F0aW9uIHByaW50OiB5YWNjLmMgOzsKMzIwO2FjdGlvbnMuYXQ6NDc3O0xvY2F0aW9uIHBy aW50OiBnbHIuYyA7Z2xyOwozMjE7YWN0aW9ucy5hdDo0Nzc7TG9jYXRpb24gcHJpbnQ6IGxhbHIx LmNjIDtjKys7CjMyMjthY3Rpb25zLmF0OjQ3NztMb2NhdGlvbiBwcmludDogZ2xyLmNjIDtnbHIg YysrOwozMjM7YWN0aW9ucy5hdDo0ODc7RXhvdGljIERvbGxhcnM7OwozMjQ7YWN0aW9ucy5hdDox MDQ2O1ByaW50ZXJzIGFuZCBEZXN0cnVjdG9yczs7CjMyNTthY3Rpb25zLmF0OjEwNDc7UHJpbnRl cnMgYW5kIERlc3RydWN0b3JzIHdpdGggdW5pb247OwozMjY7YWN0aW9ucy5hdDoxMDQ5O1ByaW50 ZXJzIGFuZCBEZXN0cnVjdG9yczogJWdsci1wYXJzZXI7Z2xyOwozMjc7YWN0aW9ucy5hdDoxMDUw O1ByaW50ZXJzIGFuZCBEZXN0cnVjdG9ycyB3aXRoIHVuaW9uOiAlZ2xyLXBhcnNlcjtnbHI7CjMy ODthY3Rpb25zLmF0OjEwNTI7UHJpbnRlcnMgYW5kIERlc3RydWN0b3JzOiAlZGVmaW5lcyBsYWxy MS5jYztjKys7CjMyOTthY3Rpb25zLmF0OjEwNTM7UHJpbnRlcnMgYW5kIERlc3RydWN0b3JzIHdp dGggdW5pb246ICVkZWZpbmVzIGxhbHIxLmNjO2MrKzsKMzMwO2FjdGlvbnMuYXQ6MTA1NTtQcmlu dGVycyBhbmQgRGVzdHJ1Y3RvcnM6ICVkZWZpbmVzIGdsci5jYztnbHIgYysrOwozMzE7YWN0aW9u cy5hdDoxMDU2O1ByaW50ZXJzIGFuZCBEZXN0cnVjdG9ycyB3aXRoIHVuaW9uOiAlZGVmaW5lcyBn bHIuY2M7Z2xyIGMrKzsKMzMyO2FjdGlvbnMuYXQ6MTA2NztEZWZhdWx0IHRhZ2xlc3MgJXByaW50 ZXIgYW5kICVkZXN0cnVjdG9yOzsKMzMzO2FjdGlvbnMuYXQ6MTE3MDtEZWZhdWx0IHRhZ2dlZCBh bmQgcGVyLXR5cGUgJXByaW50ZXIgYW5kICVkZXN0cnVjdG9yOzsKMzM0O2FjdGlvbnMuYXQ6MTMw MztEZWZhdWx0ICVwcmludGVyIGFuZCAlZGVzdHJ1Y3RvciBmb3IgdXNlci1kZWZpbmVkIGVuZCB0 b2tlbjs7CjMzNTthY3Rpb25zLmF0OjE0MjU7RGVmYXVsdCAlcHJpbnRlciBhbmQgJWRlc3RydWN0 b3IgYXJlIG5vdCBmb3IgZXJyb3Igb3IgJHVuZGVmaW5lZDs7CjMzNjthY3Rpb25zLmF0OjE1Mjg7 RGVmYXVsdCAlcHJpbnRlciBhbmQgJWRlc3RydWN0b3IgYXJlIG5vdCBmb3IgJGFjY2VwdDs7CjMz NzthY3Rpb25zLmF0OjE1OTI7RGVmYXVsdCAlcHJpbnRlciBhbmQgJWRlc3RydWN0b3IgZm9yIG1p ZHJ1bGUgdmFsdWVzOzsKMzM4O2FjdGlvbnMuYXQ6MTczOTtAJCBpbiAlaW5pdGlhbC1hY3Rpb24g aW1wbGllcyAlbG9jYXRpb25zOzsKMzM5O2FjdGlvbnMuYXQ6MTc0MDtAJCBpbiAlZGVzdHJ1Y3Rv ciBpbXBsaWVzICVsb2NhdGlvbnM7OwozNDA7YWN0aW9ucy5hdDoxNzQxO0AkIGluICVwcmludGVy IGltcGxpZXMgJWxvY2F0aW9uczs7CjM0MTthY3Rpb25zLmF0OjE4NTU7UXVhbGlmaWVkICQkIGlu IGFjdGlvbnM6IHlhY2MuYzs7CjM0MjthY3Rpb25zLmF0OjE4NTU7UXVhbGlmaWVkICQkIGluIGFj dGlvbnM6IGdsci5jO2dscjsKMzQzO2FjdGlvbnMuYXQ6MTg1NTtRdWFsaWZpZWQgJCQgaW4gYWN0 aW9uczogbGFscjEuY2M7YysrOwozNDQ7YWN0aW9ucy5hdDoxODU1O1F1YWxpZmllZCAkJCBpbiBh Y3Rpb25zOiBnbHIuY2M7Z2xyIGMrKzsKMzQ1O2FjdGlvbnMuYXQ6MTg2MjtEZXN0cm95aW5nIGxv b2thaGVhZCBhc3NpZ25lZCBieSBzZW1hbnRpYyBhY3Rpb247OwozNDY7YWN0aW9ucy5hdDoxOTE3 O1lZQkFDS1VQOzsKMzQ3O3R5cGVzLmF0OjI1OyV1bmlvbiB2cy4gYXBpLnZhbHVlLnR5cGU7Owoz NDg7dHlwZXMuYXQ6NDQ7JXlhY2MgdnMuIGFwaS52YWx1ZS50eXBlPXVuaW9uOzsKMzQ5O3R5cGVz LmF0OjEzODt5YWNjLmMgYXBpLnZhbHVlLnR5cGU9e2RvdWJsZX07YXBpLnZhbHVlLnR5cGU7CjM1 MDt0eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1ZS50eXBlPXtkb3VibGV9ICVkZWZpbmVzO2Fw aS52YWx1ZS50eXBlOwozNTE7dHlwZXMuYXQ6MTM4O3lhY2MuYyBhcGkudmFsdWUudHlwZT17dmFy aWFudH07YXBpLnZhbHVlLnR5cGU7CjM1Mjt0eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1ZS50 eXBlPXt2YXJpYW50fSAlZGVmaW5lczthcGkudmFsdWUudHlwZTsKMzUzO3R5cGVzLmF0OjEzODt5 YWNjLmMgYXBpLnZhbHVlLnR5cGU9e3N0cnVjdCBmb299O2FwaS52YWx1ZS50eXBlOwozNTQ7dHlw ZXMuYXQ6MTM4O3lhY2MuYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGZvb30gJWRlZmluZXM7YXBp LnZhbHVlLnR5cGU7CjM1NTt0eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1ZS50eXBlPXtzdHJ1 Y3QgYmFyfTthcGkudmFsdWUudHlwZTsKMzU2O3R5cGVzLmF0OjEzODt5YWNjLmMgYXBpLnZhbHVl LnR5cGU9e3N0cnVjdCBiYXJ9ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlOwozNTc7dHlwZXMuYXQ6 MTM4O3lhY2MuYyBhcGkudmFsdWUudHlwZT17dW5pb24gZm9vfTthcGkudmFsdWUudHlwZTsKMzU4 O3R5cGVzLmF0OjEzODt5YWNjLmMgYXBpLnZhbHVlLnR5cGU9e3VuaW9uIGZvb30gJWRlZmluZXM7 YXBpLnZhbHVlLnR5cGU7CjM1OTt0eXBlcy5hdDoxMzg7eWFjYy5jICV1bmlvbiB7IGZsb2F0IGZ2 YWw7IGludCBpdmFsOyB9OzthcGkudmFsdWUudHlwZTsKMzYwO3R5cGVzLmF0OjEzODt5YWNjLmMg JXVuaW9uIHsgZmxvYXQgZnZhbDsgaW50IGl2YWw7IH07ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBl OwozNjE7dHlwZXMuYXQ6MTM4O3lhY2MuYyAldW5pb24gZm9vIHsgZmxvYXQgZnZhbDsgaW50IGl2 YWw7IH07O2FwaS52YWx1ZS50eXBlOwozNjI7dHlwZXMuYXQ6MTM4O3lhY2MuYyAldW5pb24gZm9v IHsgZmxvYXQgZnZhbDsgaW50IGl2YWw7IH07ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlOwozNjM7 dHlwZXMuYXQ6MTM4O3lhY2MuYyBhcGkudmFsdWUudW5pb24ubmFtZT1mb287ICV1bmlvbiB7IGZs b2F0IGZ2YWw7IGludCBpdmFsOyB9OzthcGkudmFsdWUudHlwZTsKMzY0O3R5cGVzLmF0OjEzODt5 YWNjLmMgYXBpLnZhbHVlLnVuaW9uLm5hbWU9Zm9vOyAldW5pb24geyBmbG9hdCBmdmFsOyBpbnQg aXZhbDsgfTsgJWRlZmluZXM7YXBpLnZhbHVlLnR5cGU7CjM2NTt0eXBlcy5hdDoxMzg7eWFjYy5j IGFwaS52YWx1ZS50eXBlPXVuaW9uO2FwaS52YWx1ZS50eXBlOwozNjY7dHlwZXMuYXQ6MTM4O3lh Y2MuYyBhcGkudmFsdWUudHlwZT11bmlvbiAlZGVmaW5lczthcGkudmFsdWUudHlwZTsKMzY3O3R5 cGVzLmF0OjEzODtnbHIuYyBhcGkudmFsdWUudHlwZT17ZG91YmxlfTthcGkudmFsdWUudHlwZSBn bHI7CjM2ODt0eXBlcy5hdDoxMzg7Z2xyLmMgYXBpLnZhbHVlLnR5cGU9e2RvdWJsZX0gJWRlZmlu ZXM7YXBpLnZhbHVlLnR5cGUgZ2xyOwozNjk7dHlwZXMuYXQ6MTM4O2dsci5jIGFwaS52YWx1ZS50 eXBlPXt2YXJpYW50fTthcGkudmFsdWUudHlwZSBnbHI7CjM3MDt0eXBlcy5hdDoxMzg7Z2xyLmMg YXBpLnZhbHVlLnR5cGU9e3ZhcmlhbnR9ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGdscjsKMzcx O3R5cGVzLmF0OjEzODtnbHIuYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGZvb307YXBpLnZhbHVl LnR5cGUgZ2xyOwozNzI7dHlwZXMuYXQ6MTM4O2dsci5jIGFwaS52YWx1ZS50eXBlPXtzdHJ1Y3Qg Zm9vfSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBnbHI7CjM3Mzt0eXBlcy5hdDoxMzg7Z2xyLmMg YXBpLnZhbHVlLnR5cGU9e3N0cnVjdCBiYXJ9O2FwaS52YWx1ZS50eXBlIGdscjsKMzc0O3R5cGVz LmF0OjEzODtnbHIuYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGJhcn0gJWRlZmluZXM7YXBpLnZh bHVlLnR5cGUgZ2xyOwozNzU7dHlwZXMuYXQ6MTM4O2dsci5jIGFwaS52YWx1ZS50eXBlPXt1bmlv biBmb299O2FwaS52YWx1ZS50eXBlIGdscjsKMzc2O3R5cGVzLmF0OjEzODtnbHIuYyBhcGkudmFs dWUudHlwZT17dW5pb24gZm9vfSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBnbHI7CjM3Nzt0eXBl cy5hdDoxMzg7Z2xyLmMgJXVuaW9uIHsgZmxvYXQgZnZhbDsgaW50IGl2YWw7IH07O2FwaS52YWx1 ZS50eXBlIGdscjsKMzc4O3R5cGVzLmF0OjEzODtnbHIuYyAldW5pb24geyBmbG9hdCBmdmFsOyBp bnQgaXZhbDsgfTsgJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgZ2xyOwozNzk7dHlwZXMuYXQ6MTM4 O2dsci5jICV1bmlvbiBmb28geyBmbG9hdCBmdmFsOyBpbnQgaXZhbDsgfTs7YXBpLnZhbHVlLnR5 cGUgZ2xyOwozODA7dHlwZXMuYXQ6MTM4O2dsci5jICV1bmlvbiBmb28geyBmbG9hdCBmdmFsOyBp bnQgaXZhbDsgfTsgJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgZ2xyOwozODE7dHlwZXMuYXQ6MTM4 O2dsci5jIGFwaS52YWx1ZS51bmlvbi5uYW1lPWZvbzsgJXVuaW9uIHsgZmxvYXQgZnZhbDsgaW50 IGl2YWw7IH07O2FwaS52YWx1ZS50eXBlIGdscjsKMzgyO3R5cGVzLmF0OjEzODtnbHIuYyBhcGku dmFsdWUudW5pb24ubmFtZT1mb287ICV1bmlvbiB7IGZsb2F0IGZ2YWw7IGludCBpdmFsOyB9OyAl ZGVmaW5lczthcGkudmFsdWUudHlwZSBnbHI7CjM4Mzt0eXBlcy5hdDoxMzg7Z2xyLmMgYXBpLnZh bHVlLnR5cGU9dW5pb247YXBpLnZhbHVlLnR5cGUgZ2xyOwozODQ7dHlwZXMuYXQ6MTM4O2dsci5j IGFwaS52YWx1ZS50eXBlPXVuaW9uICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGdscjsKMzg1O3R5 cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT17ZG91YmxlfTthcGkudmFsdWUudHlw ZSBjKys7CjM4Njt0eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9e2RvdWJsZX0g JWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgYysrOwozODc7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFw aS52YWx1ZS50eXBlPXt2YXJpYW50fTthcGkudmFsdWUudHlwZSBjKys7CjM4ODt0eXBlcy5hdDox Mzg7bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9e3ZhcmlhbnR9ICVkZWZpbmVzO2FwaS52YWx1ZS50 eXBlIGMrKzsKMzg5O3R5cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT17c3RydWN0 IGZvb307YXBpLnZhbHVlLnR5cGUgYysrOwozOTA7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFwaS52 YWx1ZS50eXBlPXtzdHJ1Y3QgZm9vfSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBjKys7CjM5MTt0 eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9e3N0cnVjdCBiYXJ9O2FwaS52YWx1 ZS50eXBlIGMrKzsKMzkyO3R5cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT17c3Ry dWN0IGJhcn0gJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgYysrOwozOTM7dHlwZXMuYXQ6MTM4O2xh bHIxLmNjIGFwaS52YWx1ZS50eXBlPXt1bmlvbiBmb299O2FwaS52YWx1ZS50eXBlIGMrKzsKMzk0 O3R5cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT17dW5pb24gZm9vfSAlZGVmaW5l czthcGkudmFsdWUudHlwZSBjKys7CjM5NTt0eXBlcy5hdDoxMzg7bGFscjEuY2MgJXVuaW9uIHsg ZmxvYXQgZnZhbDsgaW50IGl2YWw7IH07O2FwaS52YWx1ZS50eXBlIGMrKzsKMzk2O3R5cGVzLmF0 OjEzODtsYWxyMS5jYyAldW5pb24geyBmbG9hdCBmdmFsOyBpbnQgaXZhbDsgfTsgJWRlZmluZXM7 YXBpLnZhbHVlLnR5cGUgYysrOwozOTc7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFwaS52YWx1ZS50 eXBlPXVuaW9uO2FwaS52YWx1ZS50eXBlIGMrKzsKMzk4O3R5cGVzLmF0OjEzODtsYWxyMS5jYyBh cGkudmFsdWUudHlwZT11bmlvbiAlZGVmaW5lczthcGkudmFsdWUudHlwZSBjKys7CjM5OTt0eXBl cy5hdDoxMzg7bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9dmFyaWFudDthcGkudmFsdWUudHlwZSBj Kys7CjQwMDt0eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9dmFyaWFudCAlZGVm aW5lczthcGkudmFsdWUudHlwZSBjKys7CjQwMTt0eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZh bHVlLnR5cGU9dmFyaWFudDthcGkudmFsdWUudHlwZSBjKys7CjQwMjt0eXBlcy5hdDoxMzg7bGFs cjEuY2MgYXBpLnZhbHVlLnR5cGU9dmFyaWFudCAlZGVmaW5lczthcGkudmFsdWUudHlwZSBjKys7 CjQwMzt0eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9dmFyaWFudCBhcGkudG9r ZW4uY29uc3RydWN0b3I7YXBpLnZhbHVlLnR5cGUgYysrOwo0MDQ7dHlwZXMuYXQ6MTM4O2xhbHIx LmNjIGFwaS52YWx1ZS50eXBlPXZhcmlhbnQgYXBpLnRva2VuLmNvbnN0cnVjdG9yICVkZWZpbmVz O2FwaS52YWx1ZS50eXBlIGMrKzsKNDA1O3R5cGVzLmF0OjEzODtsYWxyMS5jYyAlY29kZSByZXF1 aXJlcyB7ICNpbmNsdWRlIDxtZW1vcnk+IH0gYXBpLnZhbHVlLnR5cGU9dmFyaWFudDthcGkudmFs dWUudHlwZSBjKys7CjQwNjt0eXBlcy5hdDoxMzg7bGFscjEuY2MgJWNvZGUgcmVxdWlyZXMgeyAj aW5jbHVkZSA8bWVtb3J5PiB9IGFwaS52YWx1ZS50eXBlPXZhcmlhbnQgJWRlZmluZXM7YXBpLnZh bHVlLnR5cGUgYysrOwo0MDc7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjICVjb2RlIHJlcXVpcmVzIHsg I2luY2x1ZGUgPG1lbW9yeT4gfSBhcGkudmFsdWUudHlwZT12YXJpYW50IGFwaS50b2tlbi5jb25z dHJ1Y3RvcjthcGkudmFsdWUudHlwZSBjKys7CjQwODt0eXBlcy5hdDoxMzg7bGFscjEuY2MgJWNv ZGUgcmVxdWlyZXMgeyAjaW5jbHVkZSA8bWVtb3J5PiB9IGFwaS52YWx1ZS50eXBlPXZhcmlhbnQg YXBpLnRva2VuLmNvbnN0cnVjdG9yICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGMrKzsKNDA5O3R5 cGVzLmF0OjEzODtsYWxyMS5jYyAlY29kZSByZXF1aXJlcyB7ICNpbmNsdWRlIDxtZW1vcnk+IH0g YXBpLnZhbHVlLnR5cGU9dmFyaWFudCBhcGkudG9rZW4uY29uc3RydWN0b3I7YXBpLnZhbHVlLnR5 cGUgYysrOwo0MTA7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjICVjb2RlIHJlcXVpcmVzIHsgI2luY2x1 ZGUgPG1lbW9yeT4gfSBhcGkudmFsdWUudHlwZT12YXJpYW50IGFwaS50b2tlbi5jb25zdHJ1Y3Rv ciAlZGVmaW5lczthcGkudmFsdWUudHlwZSBjKys7CjQxMTt0eXBlcy5hdDoxMzg7Z2xyLmNjIGFw aS52YWx1ZS50eXBlPXtkb3VibGV9O2FwaS52YWx1ZS50eXBlIGdsciBjKys7CjQxMjt0eXBlcy5h dDoxMzg7Z2xyLmNjIGFwaS52YWx1ZS50eXBlPXtkb3VibGV9ICVkZWZpbmVzO2FwaS52YWx1ZS50 eXBlIGdsciBjKys7CjQxMzt0eXBlcy5hdDoxMzg7Z2xyLmNjIGFwaS52YWx1ZS50eXBlPXt2YXJp YW50fTthcGkudmFsdWUudHlwZSBnbHIgYysrOwo0MTQ7dHlwZXMuYXQ6MTM4O2dsci5jYyBhcGku dmFsdWUudHlwZT17dmFyaWFudH0gJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgZ2xyIGMrKzsKNDE1 O3R5cGVzLmF0OjEzODtnbHIuY2MgYXBpLnZhbHVlLnR5cGU9e3N0cnVjdCBmb299O2FwaS52YWx1 ZS50eXBlIGdsciBjKys7CjQxNjt0eXBlcy5hdDoxMzg7Z2xyLmNjIGFwaS52YWx1ZS50eXBlPXtz dHJ1Y3QgZm9vfSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBnbHIgYysrOwo0MTc7dHlwZXMuYXQ6 MTM4O2dsci5jYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGJhcn07YXBpLnZhbHVlLnR5cGUgZ2xy IGMrKzsKNDE4O3R5cGVzLmF0OjEzODtnbHIuY2MgYXBpLnZhbHVlLnR5cGU9e3N0cnVjdCBiYXJ9 ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGdsciBjKys7CjQxOTt0eXBlcy5hdDoxMzg7Z2xyLmNj IGFwaS52YWx1ZS50eXBlPXt1bmlvbiBmb299O2FwaS52YWx1ZS50eXBlIGdsciBjKys7CjQyMDt0 eXBlcy5hdDoxMzg7Z2xyLmNjIGFwaS52YWx1ZS50eXBlPXt1bmlvbiBmb299ICVkZWZpbmVzO2Fw aS52YWx1ZS50eXBlIGdsciBjKys7CjQyMTt0eXBlcy5hdDoxMzg7Z2xyLmNjICV1bmlvbiB7IGZs b2F0IGZ2YWw7IGludCBpdmFsOyB9OzthcGkudmFsdWUudHlwZSBnbHIgYysrOwo0MjI7dHlwZXMu YXQ6MTM4O2dsci5jYyAldW5pb24geyBmbG9hdCBmdmFsOyBpbnQgaXZhbDsgfTsgJWRlZmluZXM7 YXBpLnZhbHVlLnR5cGUgZ2xyIGMrKzsKNDIzO3R5cGVzLmF0OjEzODtnbHIuY2MgYXBpLnZhbHVl LnR5cGU9dW5pb247YXBpLnZhbHVlLnR5cGUgZ2xyIGMrKzsKNDI0O3R5cGVzLmF0OjEzODtnbHIu Y2MgYXBpLnZhbHVlLnR5cGU9dW5pb24gJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgZ2xyIGMrKzsK NDI1O3R5cGVzLmF0OjM3NjtsYWxyMS5jYzogTmFtZWQgJXVuaW9uOzsKNDI2O3R5cGVzLmF0OjM3 NjtnbHIuY2M6IE5hbWVkICV1bmlvbjs7CjQyNztzY2FubmVyLmF0OjMzNjtUb2tlbiBudW1iZXJz OiB5YWNjLmM7Owo0Mjg7c2Nhbm5lci5hdDozMzY7VG9rZW4gbnVtYmVyczogeWFjYy5jIGFwaS50 b2tlbi5yYXc7Owo0Mjk7c2Nhbm5lci5hdDozMzY7VG9rZW4gbnVtYmVyczogZ2xyLmM7Z2xyOwo0 MzA7c2Nhbm5lci5hdDozMzY7VG9rZW4gbnVtYmVyczogZ2xyLmMgYXBpLnRva2VuLnJhdztnbHI7 CjQzMTtzY2FubmVyLmF0OjMzNjtUb2tlbiBudW1iZXJzOiBsYWxyMS5jYztjKys7CjQzMjtzY2Fu bmVyLmF0OjMzNjtUb2tlbiBudW1iZXJzOiBsYWxyMS5jYyBhcGkudG9rZW4ucmF3O2MrKzsKNDMz O3NjYW5uZXIuYXQ6MzM2O1Rva2VuIG51bWJlcnM6IGdsci5jYztnbHIgYysrOwo0MzQ7c2Nhbm5l ci5hdDozMzY7VG9rZW4gbnVtYmVyczogZ2xyLmNjIGFwaS50b2tlbi5yYXc7Z2xyIGMrKzsKNDM1 O3NjYW5uZXIuYXQ6MzM2O1Rva2VuIG51bWJlcnM6IGxhbHIxLmphdmE7amF2YTsKNDM2O3NjYW5u ZXIuYXQ6MzM2O1Rva2VuIG51bWJlcnM6IGxhbHIxLmphdmEgYXBpLnRva2VuLnJhdztqYXZhOwo0 Mzc7c2Nhbm5lci5hdDozMzY7VG9rZW4gbnVtYmVyczogbGFscjEuZDtkOwo0Mzg7c2Nhbm5lci5h dDozMzY7VG9rZW4gbnVtYmVyczogbGFscjEuZCBhcGkudG9rZW4ucmF3O2Q7CjQzOTtzY2FubmVy LmF0OjM0MDtUb2tlbiBudW1iZXJzOiBsYWxyMS5jYyBhcGkudG9rZW4ucmF3IGFwaS52YWx1ZS50 eXBlPXZhcmlhbnQgYXBpLnRva2VuLmNvbnN0cnVjdG9yO2MrKzsKNDQwO2NhbGMuYXQ6MTA4MjtD YWxjdWxhdG9yIHBhcnNlLnRyYWNlIDs7CjQ0MTtjYWxjLmF0OjEwODQ7Q2FsY3VsYXRvciAlZGVm aW5lcyA7Owo0NDI7Y2FsYy5hdDoxMDg1O0NhbGN1bGF0b3IgJWRlYnVnICVsb2NhdGlvbnMgOzsK NDQzO2NhbGMuYXQ6MTA4NjtDYWxjdWxhdG9yICVsb2NhdGlvbnMgYXBpLmxvY2F0aW9uLnR5cGU9 e1NwYW59IDs7CjQ0NDtjYWxjLmF0OjEwODg7Q2FsY3VsYXRvciAlbmFtZS1wcmVmaXggImNhbGMi IDs7CjQ0NTtjYWxjLmF0OjEwODk7Q2FsY3VsYXRvciAldmVyYm9zZSA7Owo0NDY7Y2FsYy5hdDox MDkwO0NhbGN1bGF0b3IgJXlhY2MgOzsKNDQ3O2NhbGMuYXQ6MTA5MTtDYWxjdWxhdG9yIHBhcnNl LmVycm9yPWRldGFpbGVkIDs7CjQ0ODtjYWxjLmF0OjEwOTI7Q2FsY3VsYXRvciBwYXJzZS5lcnJv cj12ZXJib3NlIDs7CjQ0OTtjYWxjLmF0OjEwOTQ7Q2FsY3VsYXRvciBhcGkucHVyZT1mdWxsICVs b2NhdGlvbnMgOzsKNDUwO2NhbGMuYXQ6MTA5NTtDYWxjdWxhdG9yIGFwaS5wdXNoLXB1bGw9Ym90 aCBhcGkucHVyZT1mdWxsICVsb2NhdGlvbnMgO3B1c2g7CjQ1MTtjYWxjLmF0OjEwOTY7Q2FsY3Vs YXRvciBwYXJzZS5lcnJvcj1kZXRhaWxlZCAlbG9jYXRpb25zIDs7CjQ1MjtjYWxjLmF0OjEwOTg7 Q2FsY3VsYXRvciBwYXJzZS5lcnJvcj1kZXRhaWxlZCAlbG9jYXRpb25zICVkZWZpbmVzIGFwaS5w cmVmaXg9e2NhbGN9ICV2ZXJib3NlICV5YWNjIDs7CjQ1MztjYWxjLmF0OjEwOTk7Q2FsY3VsYXRv ciBwYXJzZS5lcnJvcj1kZXRhaWxlZCAlbG9jYXRpb25zICVkZWZpbmVzICVuYW1lLXByZWZpeCAi Y2FsYyIgYXBpLnRva2VuLnByZWZpeD17VE9LX30gJXZlcmJvc2UgJXlhY2MgOzsKNDU0O2NhbGMu YXQ6MTEwMTtDYWxjdWxhdG9yICVkZWJ1ZyA7Owo0NTU7Y2FsYy5hdDoxMTAyO0NhbGN1bGF0b3Ig cGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWRlYnVnICVsb2NhdGlvbnMgJWRlZmluZXMgJW5hbWUtcHJl Zml4ICJjYWxjIiAldmVyYm9zZSAleWFjYyA7Owo0NTY7Y2FsYy5hdDoxMTAzO0NhbGN1bGF0b3Ig cGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWRlYnVnICVsb2NhdGlvbnMgJWRlZmluZXMgYXBpLnByZWZp eD17Y2FsY30gJXZlcmJvc2UgJXlhY2MgOzsKNDU3O2NhbGMuYXQ6MTEwNTtDYWxjdWxhdG9yIGFw aS5wdXJlPWZ1bGwgcGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWRlYnVnICVsb2NhdGlvbnMgJWRlZmlu ZXMgJW5hbWUtcHJlZml4ICJjYWxjIiAldmVyYm9zZSAleWFjYyA7Owo0NTg7Y2FsYy5hdDoxMTA2 O0NhbGN1bGF0b3IgYXBpLnB1c2gtcHVsbD1ib3RoIGFwaS5wdXJlPWZ1bGwgcGFyc2UuZXJyb3I9 ZGV0YWlsZWQgJWRlYnVnICVsb2NhdGlvbnMgJWRlZmluZXMgYXBpLnByZWZpeD17Y2FsY30gJXZl cmJvc2UgJXlhY2MgO3B1c2g7CjQ1OTtjYWxjLmF0OjExMDg7Q2FsY3VsYXRvciBhcGkucHVyZSBw YXJzZS5lcnJvcj1kZXRhaWxlZCAlZGVidWcgJWxvY2F0aW9ucyAlZGVmaW5lcyBhcGkucHJlZml4 PXtjYWxjfSAldmVyYm9zZSAleWFjYyAlcGFyc2UtcGFyYW0ge3NlbWFudGljX3ZhbHVlICpyZXN1 bHR9e2ludCAqY291bnR9e2ludCAqbmVycnN9IDs7CjQ2MDtjYWxjLmF0OjExMTA7Q2FsY3VsYXRv ciAlbm8tbGluZXMgYXBpLnB1cmUgcGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWRlYnVnICVsb2NhdGlv bnMgJWRlZmluZXMgYXBpLnByZWZpeD17Y2FsY30gJXZlcmJvc2UgJXlhY2MgJXBhcnNlLXBhcmFt IHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7Owo0NjE7 Y2FsYy5hdDoxMTExO0NhbGN1bGF0b3IgJW5vLWxpbmVzIGFwaS5wdXJlIHBhcnNlLmVycm9yPXZl cmJvc2UgJWRlYnVnICVsb2NhdGlvbnMgJWRlZmluZXMgYXBpLnByZWZpeD17Y2FsY30gJXZlcmJv c2UgJXlhY2MgJXBhcnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50 fXtpbnQgKm5lcnJzfSA7Owo0NjI7Y2FsYy5hdDoxMTE0O0NhbGN1bGF0b3IgcGFyc2UuZXJyb3I9 Y3VzdG9tIDs7CjQ2MztjYWxjLmF0OjExMTU7Q2FsY3VsYXRvciBwYXJzZS5lcnJvcj1jdXN0b20g JWxvY2F0aW9ucyBhcGkucHJlZml4PXtjYWxjfSA7Owo0NjQ7Y2FsYy5hdDoxMTE2O0NhbGN1bGF0 b3IgcGFyc2UuZXJyb3I9Y3VzdG9tICVsb2NhdGlvbnMgYXBpLnByZWZpeD17Y2FsY30gJXBhcnNl LXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7 Owo0NjU7Y2FsYy5hdDoxMTE3O0NhbGN1bGF0b3IgcGFyc2UuZXJyb3I9Y3VzdG9tICVsb2NhdGlv bnMgYXBpLnByZWZpeD17Y2FsY30gJXBhcnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0 fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSBhcGkucHVzaC1wdWxsPWJvdGggYXBpLnB1cmU9ZnVs bCA7cHVzaDsKNDY2O2NhbGMuYXQ6MTExODtDYWxjdWxhdG9yIHBhcnNlLmVycm9yPWN1c3RvbSAl bG9jYXRpb25zIGFwaS5wcmVmaXg9e2NhbGN9ICVwYXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUg KnJlc3VsdH17aW50ICpjb3VudH17aW50ICpuZXJyc30gYXBpLnB1c2gtcHVsbD1ib3RoIGFwaS5w dXJlPWZ1bGwgcGFyc2UubGFjPWZ1bGwgO3B1c2g7CjQ2NztjYWxjLmF0OjExMjk7Q2FsY3VsYXRv ciAlZ2xyLXBhcnNlciAgO2dscjsKNDY4O2NhbGMuYXQ6MTEzMTtDYWxjdWxhdG9yICVnbHItcGFy c2VyICVkZWZpbmVzIDtnbHI7CjQ2OTtjYWxjLmF0OjExMzI7Q2FsY3VsYXRvciAlZ2xyLXBhcnNl ciAlbG9jYXRpb25zIDtnbHI7CjQ3MDtjYWxjLmF0OjExMzM7Q2FsY3VsYXRvciAlZ2xyLXBhcnNl ciAlbG9jYXRpb25zIGFwaS5sb2NhdGlvbi50eXBlPXtTcGFufSA7Z2xyOwo0NzE7Y2FsYy5hdDox MTM0O0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgJW5hbWUtcHJlZml4ICJjYWxjIiA7Z2xyOwo0NzI7 Y2FsYy5hdDoxMTM1O0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgYXBpLnByZWZpeD17Y2FsY30gO2ds cjsKNDczO2NhbGMuYXQ6MTEzNjtDYWxjdWxhdG9yICVnbHItcGFyc2VyICV2ZXJib3NlIDtnbHI7 CjQ3NDtjYWxjLmF0OjExMzc7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciBwYXJzZS5lcnJvcj12ZXJi b3NlIDtnbHI7CjQ3NTtjYWxjLmF0OjExMzk7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciBhcGkucHVy ZSAlbG9jYXRpb25zIDtnbHI7CjQ3NjtjYWxjLmF0OjExNDA7Q2FsY3VsYXRvciAlZ2xyLXBhcnNl ciBwYXJzZS5lcnJvcj12ZXJib3NlICVsb2NhdGlvbnMgO2dscjsKNDc3O2NhbGMuYXQ6MTE0MjtD YWxjdWxhdG9yICVnbHItcGFyc2VyIHBhcnNlLmVycm9yPWN1c3RvbSAlbG9jYXRpb25zICVkZWZp bmVzICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgO2dscjsKNDc4O2NhbGMuYXQ6MTE0MztD YWxjdWxhdG9yICVnbHItcGFyc2VyIHBhcnNlLmVycm9yPWRldGFpbGVkICVsb2NhdGlvbnMgJWRl ZmluZXMgJW5hbWUtcHJlZml4ICJjYWxjIiAldmVyYm9zZSA7Z2xyOwo0Nzk7Y2FsYy5hdDoxMTQ0 O0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgcGFyc2UuZXJyb3I9dmVyYm9zZSAlbG9jYXRpb25zICVk ZWZpbmVzICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgO2dscjsKNDgwO2NhbGMuYXQ6MTE0 NjtDYWxjdWxhdG9yICVnbHItcGFyc2VyICVkZWJ1ZyA7Z2xyOwo0ODE7Y2FsYy5hdDoxMTQ3O0Nh bGN1bGF0b3IgJWdsci1wYXJzZXIgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgJWxvY2F0aW9u cyAlZGVmaW5lcyAlbmFtZS1wcmVmaXggImNhbGMiICV2ZXJib3NlIDtnbHI7CjQ4MjtjYWxjLmF0 OjExNDg7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyAl bG9jYXRpb25zICVkZWZpbmVzIGFwaS5wcmVmaXg9e2NhbGN9IGFwaS50b2tlbi5wcmVmaXg9e1RP S199ICV2ZXJib3NlIDtnbHI7CjQ4MztjYWxjLmF0OjExNTA7Q2FsY3VsYXRvciAlZ2xyLXBhcnNl ciBhcGkucHVyZSBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyAlbG9jYXRpb25zICVkZWZpbmVz ICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgO2dscjsKNDg0O2NhbGMuYXQ6MTE1MjtDYWxj dWxhdG9yICVnbHItcGFyc2VyIGFwaS5wdXJlIHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVnICVs b2NhdGlvbnMgJWRlZmluZXMgJW5hbWUtcHJlZml4ICJjYWxjIiAldmVyYm9zZSAlcGFyc2UtcGFy YW0ge3NlbWFudGljX3ZhbHVlICpyZXN1bHR9e2ludCAqY291bnR9e2ludCAqbmVycnN9IDtnbHI7 CjQ4NTtjYWxjLmF0OjExNTM7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciBhcGkucHVyZSBwYXJzZS5l cnJvcj12ZXJib3NlICVkZWJ1ZyAlbG9jYXRpb25zICVkZWZpbmVzIGFwaS5wcmVmaXg9e2NhbGN9 ICV2ZXJib3NlICVwYXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUgKnJlc3VsdH17aW50ICpjb3Vu dH17aW50ICpuZXJyc30gO2dscjsKNDg2O2NhbGMuYXQ6MTE1NTtDYWxjdWxhdG9yICVnbHItcGFy c2VyICVuby1saW5lcyBhcGkucHVyZSBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyAlbG9jYXRp b25zICVkZWZpbmVzIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlICVwYXJzZS1wYXJhbSB7c2Vt YW50aWNfdmFsdWUgKnJlc3VsdH17aW50ICpjb3VudH17aW50ICpuZXJyc30gO2dscjsKNDg3O2Nh bGMuYXQ6MTE2NTtDYWxjdWxhdG9yIGxhbHIxLmNjICVkZWZpbmVzIDtjKys7CjQ4ODtjYWxjLmF0 OjExNzA7Q2FsY3VsYXRvciBDKysgIDtjKys7CjQ4OTtjYWxjLmF0OjExNzE7Q2FsY3VsYXRvciBD KysgJWxvY2F0aW9ucyA7YysrOwo0OTA7Y2FsYy5hdDoxMTcyO0NhbGN1bGF0b3IgQysrICVsb2Nh dGlvbnMgJE5PX0VYQ0VQVElPTlNfQ1hYRkxBR1M7YysrOwo0OTE7Y2FsYy5hdDoxMTczO0NhbGN1 bGF0b3IgQysrICVsb2NhdGlvbnMgYXBpLmxvY2F0aW9uLnR5cGU9e1NwYW59IDtjKys7CjQ5Mjtj YWxjLmF0OjExNzQ7Q2FsY3VsYXRvciBDKysgJWRlZmluZXMgJWxvY2F0aW9ucyBwYXJzZS5lcnJv cj12ZXJib3NlICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgO2MrKzsKNDkzO2NhbGMuYXQ6 MTE3NjtDYWxjdWxhdG9yIEMrKyAlbG9jYXRpb25zIHBhcnNlLmVycm9yPXZlcmJvc2UgYXBpLnBy ZWZpeD17Y2FsY30gJXZlcmJvc2UgO2MrKzsKNDk0O2NhbGMuYXQ6MTE3NztDYWxjdWxhdG9yIEMr KyAlbG9jYXRpb25zIHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVnICVuYW1lLXByZWZpeCAiY2Fs YyIgJXZlcmJvc2UgO2MrKzsKNDk1O2NhbGMuYXQ6MTE3OTtDYWxjdWxhdG9yIEMrKyAlbG9jYXRp b25zIHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVnIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3Nl IDtjKys7CjQ5NjtjYWxjLmF0OjExODA7Q2FsY3VsYXRvciBDKysgJWxvY2F0aW9ucyBwYXJzZS5l cnJvcj12ZXJib3NlICVkZWJ1ZyBhcGkucHJlZml4PXtjYWxjfSBhcGkudG9rZW4ucHJlZml4PXtU T0tffSAldmVyYm9zZSA7YysrOwo0OTc7Y2FsYy5hdDoxMTgyO0NhbGN1bGF0b3IgQysrICVkZWZp bmVzICVsb2NhdGlvbnMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgJW5hbWUtcHJlZml4ICJj YWxjIiAldmVyYm9zZSAlcGFyc2UtcGFyYW0ge3NlbWFudGljX3ZhbHVlICpyZXN1bHR9e2ludCAq Y291bnR9e2ludCAqbmVycnN9IDtjKys7CjQ5ODtjYWxjLmF0OjExODQ7Q2FsY3VsYXRvciBDKysg cGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgYXBpLnByZWZpeD17Y2FsY30gJXZlcmJvc2UgJXBh cnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJz fSA7YysrOwo0OTk7Y2FsYy5hdDoxMTg1O0NhbGN1bGF0b3IgQysrICVkZWZpbmVzICVsb2NhdGlv bnMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgYXBpLnByZWZpeD17Y2FsY30gJXZlcmJvc2Ug JXBhcnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5l cnJzfSA7YysrOwo1MDA7Y2FsYy5hdDoxMTg3O0NhbGN1bGF0b3IgQysrICVkZWZpbmVzICVsb2Nh dGlvbnMgYXBpLmxvY2F0aW9uLmZpbGU9bm9uZSA7YysrOwo1MDE7Y2FsYy5hdDoxMTg4O0NhbGN1 bGF0b3IgQysrICVkZWZpbmVzICVsb2NhdGlvbnMgYXBpLmxvY2F0aW9uLmZpbGU9Im15LWxvY2F0 aW9uLmhoIiA7YysrOwo1MDI7Y2FsYy5hdDoxMTkwO0NhbGN1bGF0b3IgQysrICVuby1saW5lcyAl ZGVmaW5lcyAlbG9jYXRpb25zIGFwaS5sb2NhdGlvbi5maWxlPSJteS1sb2NhdGlvbi5oaCIgO2Mr KzsKNTAzO2NhbGMuYXQ6MTE5MjtDYWxjdWxhdG9yIEMrKyAlbG9jYXRpb25zIHBhcnNlLmxhYz1m dWxsIHBhcnNlLmVycm9yPXZlcmJvc2UgO2MrKzsKNTA0O2NhbGMuYXQ6MTE5MztDYWxjdWxhdG9y IEMrKyAlbG9jYXRpb25zIHBhcnNlLmxhYz1mdWxsIHBhcnNlLmVycm9yPWRldGFpbGVkIDtjKys7 CjUwNTtjYWxjLmF0OjExOTU7Q2FsY3VsYXRvciBDKysgcGFyc2UuZXJyb3I9Y3VzdG9tIDtjKys7 CjUwNjtjYWxjLmF0OjExOTY7Q2FsY3VsYXRvciBDKysgcGFyc2UuZXJyb3I9Y3VzdG9tICVsb2Nh dGlvbnMgYXBpLnByZWZpeD17Y2FsY30gJXBhcnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVz dWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7YysrOwo1MDc7Y2FsYy5hdDoxMTk3O0NhbGN1 bGF0b3IgQysrIHBhcnNlLmVycm9yPWN1c3RvbSAlbG9jYXRpb25zIGFwaS5wcmVmaXg9e2NhbGN9 ICVwYXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUgKnJlc3VsdH17aW50ICpjb3VudH17aW50ICpu ZXJyc30gcGFyc2UubGFjPWZ1bGwgO2MrKzsKNTA4O2NhbGMuYXQ6MTIwNjtDYWxjdWxhdG9yIGds ci5jYyA7Z2xyIGMrKzsKNTA5O2NhbGMuYXQ6MTIxMTtDYWxjdWxhdG9yIEMrKyAlZ2xyLXBhcnNl ciAgO2dsciBjKys7CjUxMDtjYWxjLmF0OjEyMTI7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIg JWxvY2F0aW9ucyA7Z2xyIGMrKzsKNTExO2NhbGMuYXQ6MTIxMztDYWxjdWxhdG9yIEMrKyAlZ2xy LXBhcnNlciAlbG9jYXRpb25zIGFwaS5sb2NhdGlvbi50eXBlPXtTcGFufSA7Z2xyIGMrKzsKNTEy O2NhbGMuYXQ6MTIxNDtDYWxjdWxhdG9yIEMrKyAlZ2xyLXBhcnNlciAlZGVmaW5lcyBwYXJzZS5l cnJvcj12ZXJib3NlICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgO2dsciBjKys7CjUxMztj YWxjLmF0OjEyMTU7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIgcGFyc2UuZXJyb3I9dmVyYm9z ZSBhcGkucHJlZml4PXtjYWxjfSAldmVyYm9zZSA7Z2xyIGMrKzsKNTE0O2NhbGMuYXQ6MTIxNztD YWxjdWxhdG9yIEMrKyAlZ2xyLXBhcnNlciAlZGVidWcgO2dsciBjKys7CjUxNTtjYWxjLmF0OjEy MTk7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcg JW5hbWUtcHJlZml4ICJjYWxjIiAldmVyYm9zZSA7Z2xyIGMrKzsKNTE2O2NhbGMuYXQ6MTIyMDtD YWxjdWxhdG9yIEMrKyAlZ2xyLXBhcnNlciBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyAlbmFt ZS1wcmVmaXggImNhbGMiIGFwaS50b2tlbi5wcmVmaXg9e1RPS199ICV2ZXJib3NlIDtnbHIgYysr Owo1MTc7Y2FsYy5hdDoxMjIyO0NhbGN1bGF0b3IgQysrICVnbHItcGFyc2VyICVsb2NhdGlvbnMg JWRlZmluZXMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgJW5hbWUtcHJlZml4ICJjYWxjIiAl dmVyYm9zZSAlcGFyc2UtcGFyYW0ge3NlbWFudGljX3ZhbHVlICpyZXN1bHR9e2ludCAqY291bnR9 e2ludCAqbmVycnN9IDtnbHIgYysrOwo1MTg7Y2FsYy5hdDoxMjIzO0NhbGN1bGF0b3IgQysrICVn bHItcGFyc2VyICVsb2NhdGlvbnMgJWRlZmluZXMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcg YXBpLnByZWZpeD17Y2FsY30gJXZlcmJvc2UgJXBhcnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAq cmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7Z2xyIGMrKzsKNTE5O2NhbGMuYXQ6MTIy NTtDYWxjdWxhdG9yIEMrKyAlZ2xyLXBhcnNlciAlbm8tbGluZXMgJWxvY2F0aW9ucyAlZGVmaW5l cyBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyBhcGkucHJlZml4PXtjYWxjfSAldmVyYm9zZSAl cGFyc2UtcGFyYW0ge3NlbWFudGljX3ZhbHVlICpyZXN1bHR9e2ludCAqY291bnR9e2ludCAqbmVy cnN9IDtnbHIgYysrOwo1MjA7Y2FsYy5hdDoxMjM1O0NhbGN1bGF0b3IgbGFscjEuZCA7ZDsKNTIx O2NhbGMuYXQ6MTI0MDtDYWxjdWxhdG9yIEQgIDtkOwo1MjI7Y2FsYy5hdDoxMjQxO0NhbGN1bGF0 b3IgRCAlbG9jYXRpb25zIDtkOwo1MjM7Y2FsYy5hdDoxMjQzO0NhbGN1bGF0b3IgRCBwYXJzZS5l cnJvcj12ZXJib3NlIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlIDtkOwo1MjQ7Y2FsYy5hdDox MjQ1O0NhbGN1bGF0b3IgRCAlZGVidWcgO2Q7CjUyNTtjYWxjLmF0OjEyNDc7Q2FsY3VsYXRvciBE IHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVnICV2ZXJib3NlIDtkOwo1MjY7Y2FsYy5hdDoxMjYz O0NhbGN1bGF0b3IgSmF2YSAgO2phdmE7CjUyNztjYWxjLmF0OjEyNjQ7Q2FsY3VsYXRvciBKYXZh IHBhcnNlLmVycm9yPWN1c3RvbSA7amF2YTsKNTI4O2NhbGMuYXQ6MTI2NTtDYWxjdWxhdG9yIEph dmEgcGFyc2UuZXJyb3I9ZGV0YWlsZWQgO2phdmE7CjUyOTtjYWxjLmF0OjEyNjY7Q2FsY3VsYXRv ciBKYXZhIHBhcnNlLmVycm9yPXZlcmJvc2UgO2phdmE7CjUzMDtjYWxjLmF0OjEyNjc7Q2FsY3Vs YXRvciBKYXZhICVsb2NhdGlvbnMgcGFyc2UuZXJyb3I9Y3VzdG9tIDtqYXZhOwo1MzE7Y2FsYy5h dDoxMjY4O0NhbGN1bGF0b3IgSmF2YSAlbG9jYXRpb25zIHBhcnNlLmVycm9yPWRldGFpbGVkIDtq YXZhOwo1MzI7Y2FsYy5hdDoxMjY5O0NhbGN1bGF0b3IgSmF2YSAlbG9jYXRpb25zIHBhcnNlLmVy cm9yPXZlcmJvc2UgO2phdmE7CjUzMztjYWxjLmF0OjEyNzA7Q2FsY3VsYXRvciBKYXZhIHBhcnNl LnRyYWNlIHBhcnNlLmVycm9yPXZlcmJvc2UgO2phdmE7CjUzNDtjYWxjLmF0OjEyNzE7Q2FsY3Vs YXRvciBKYXZhIHBhcnNlLnRyYWNlIHBhcnNlLmVycm9yPXZlcmJvc2UgJWxvY2F0aW9ucyAlbGV4 LXBhcmFtIHtJbnB1dFN0cmVhbSBpc30gO2phdmE7CjUzNTtjYWxjLmF0OjEyNzM7Q2FsY3VsYXRv ciBKYXZhIGFwaS5wdXNoLXB1bGw9Ym90aCA7cHVzaCBqYXZhOwo1MzY7Y2FsYy5hdDoxMjc0O0Nh bGN1bGF0b3IgSmF2YSBhcGkucHVzaC1wdWxsPWJvdGggcGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWxv Y2F0aW9ucyA7cHVzaCBqYXZhOwo1Mzc7Y2FsYy5hdDoxMjc1O0NhbGN1bGF0b3IgSmF2YSBwYXJz ZS50cmFjZSBwYXJzZS5lcnJvcj1jdXN0b20gJWxvY2F0aW9ucyAlbGV4LXBhcmFtIHtJbnB1dFN0 cmVhbSBpc30gYXBpLnB1c2gtcHVsbD1ib3RoIDtwdXNoIGphdmE7CjUzODtjYWxjLmF0OjEyNzY7 Q2FsY3VsYXRvciBKYXZhIHBhcnNlLnRyYWNlIHBhcnNlLmVycm9yPXZlcmJvc2UgJWxvY2F0aW9u cyAlbGV4LXBhcmFtIHtJbnB1dFN0cmVhbSBpc30gYXBpLnB1c2gtcHVsbD1ib3RoIDtwdXNoIGph dmE7CjUzOTt0b3J0dXJlLmF0OjEzMjtCaWcgdHJpYW5nbGU7Owo1NDA7dG9ydHVyZS5hdDoyMTY7 QmlnIGhvcml6b250YWw7Owo1NDE7dG9ydHVyZS5hdDoyNzA7U3RhdGUgbnVtYmVyIHR5cGU6IDEy OCBzdGF0ZXM7Owo1NDI7dG9ydHVyZS5hdDoyNzE7U3RhdGUgbnVtYmVyIHR5cGU6IDEyOSBzdGF0 ZXM7Owo1NDM7dG9ydHVyZS5hdDoyNzI7U3RhdGUgbnVtYmVyIHR5cGU6IDI1NiBzdGF0ZXM7Owo1 NDQ7dG9ydHVyZS5hdDoyNzM7U3RhdGUgbnVtYmVyIHR5cGU6IDI1NyBzdGF0ZXM7Owo1NDU7dG9y dHVyZS5hdDoyNzQ7U3RhdGUgbnVtYmVyIHR5cGU6IDMyNzY4IHN0YXRlczs7CjU0Njt0b3J0dXJl LmF0OjI3NTtTdGF0ZSBudW1iZXIgdHlwZTogNjU1MzYgc3RhdGVzOzsKNTQ3O3RvcnR1cmUuYXQ6 Mjc2O1N0YXRlIG51bWJlciB0eXBlOiA2NTUzNyBzdGF0ZXM7Owo1NDg7dG9ydHVyZS5hdDozODU7 TWFueSBsb29rYWhlYWQgdG9rZW5zOzsKNTQ5O3RvcnR1cmUuYXQ6NDg1O0V4cGxvZGluZyB0aGUg U3RhY2sgU2l6ZSB3aXRoIEFsbG9jYTtwdXNoOwo1NTA7dG9ydHVyZS5hdDo1MzE7RXhwbG9kaW5n IHRoZSBTdGFjayBTaXplIHdpdGggTWFsbG9jO3B1c2g7CjU1MTtleGlzdGluZy5hdDo3NDtHTlUg QVdLIDMuMS4wIEdyYW1tYXI6IExBTFIoMSk7Owo1NTI7ZXhpc3RpbmcuYXQ6NzQ7R05VIEFXSyAz LjEuMCBHcmFtbWFyOiBJRUxSKDEpOzsKNTUzO2V4aXN0aW5nLmF0Ojc0O0dOVSBBV0sgMy4xLjAg R3JhbW1hcjogQ2Fub25pY2FsIExSKDEpOzsKNTU0O2V4aXN0aW5nLmF0OjgwODtHTlUgQ2ltIEdy YW1tYXI6IExBTFIoMSk7Owo1NTU7ZXhpc3RpbmcuYXQ6ODA4O0dOVSBDaW0gR3JhbW1hcjogSUVM UigxKTs7CjU1NjtleGlzdGluZy5hdDo4MDg7R05VIENpbSBHcmFtbWFyOiBDYW5vbmljYWwgTFIo MSk7Owo1NTc7ZXhpc3RpbmcuYXQ6MTQ2MDtHTlUgcGljIChHcm9mZiAxLjE4LjEpIEdyYW1tYXI6 IExBTFIoMSk7Owo1NTg7ZXhpc3RpbmcuYXQ6MTQ2MDtHTlUgcGljIChHcm9mZiAxLjE4LjEpIEdy YW1tYXI6IElFTFIoMSk7Owo1NTk7ZXhpc3RpbmcuYXQ6MTQ2MDtHTlUgcGljIChHcm9mZiAxLjE4 LjEpIEdyYW1tYXI6IENhbm9uaWNhbCBMUigxKTs7CjU2MDtyZWdyZXNzaW9uLmF0OjI1O1RyaXZp YWwgZ3JhbW1hcnM7Owo1NjE7cmVncmVzc2lvbi5hdDo1NTtZWVNUWVBFIHR5cGVkZWY7Owo1NjI7 cmVncmVzc2lvbi5hdDo4NTtFYXJseSB0b2tlbiBkZWZpbml0aW9ucyB3aXRoIC0teWFjYzs7CjU2 MztyZWdyZXNzaW9uLmF0OjEyNztFYXJseSB0b2tlbiBkZWZpbml0aW9ucyB3aXRob3V0IC0teWFj Yzs7CjU2NDtyZWdyZXNzaW9uLmF0OjE3MztCcmFjZXMgcGFyc2luZzs7CjU2NTtyZWdyZXNzaW9u LmF0OjE5NjtSdWxlIExpbmUgTnVtYmVycztyZXBvcnQ7CjU2NjtyZWdyZXNzaW9uLmF0OjM0NTtN aXhpbmcgJXRva2VuIHN0eWxlczs7CjU2NztyZWdyZXNzaW9uLmF0OjQzNztUb2tlbiBkZWZpbml0 aW9uczogcGFyc2UuZXJyb3I9ZGV0YWlsZWQ7Owo1Njg7cmVncmVzc2lvbi5hdDo0Mzg7VG9rZW4g ZGVmaW5pdGlvbnM6IHBhcnNlLmVycm9yPXZlcmJvc2U7Owo1Njk7cmVncmVzc2lvbi5hdDo0NDc7 Q2hhcmFjdGVycyBFc2NhcGVzOzsKNTcwO3JlZ3Jlc3Npb24uYXQ6NDgwO1dlYjJjIFJlcG9ydDty ZXBvcnQ7CjU3MTtyZWdyZXNzaW9uLmF0OjY2MTtXZWIyYyBBY3Rpb25zO3JlcG9ydDsKNTcyO3Jl Z3Jlc3Npb24uYXQ6ODUxO0RhbmNlciA7Owo1NzM7cmVncmVzc2lvbi5hdDo4NTI7RGFuY2VyICVn bHItcGFyc2VyO2dscjsKNTc0O3JlZ3Jlc3Npb24uYXQ6ODUzO0RhbmNlciBsYWxyMS5jYztjKys7 CjU3NTtyZWdyZXNzaW9uLmF0OjkyODtFeHBlY3RpbmcgdHdvIHRva2VucyA7Owo1NzY7cmVncmVz c2lvbi5hdDo5Mjk7RXhwZWN0aW5nIHR3byB0b2tlbnMgJWdsci1wYXJzZXI7Z2xyOwo1Nzc7cmVn cmVzc2lvbi5hdDo5MzA7RXhwZWN0aW5nIHR3byB0b2tlbnMgbGFscjEuY2M7YysrOwo1Nzg7cmVn cmVzc2lvbi5hdDo5Mzg7QnJhY2VkIGNvZGUgaW4gZGVjbGFyYXRpb24gaW4gcnVsZXMgc2VjdGlv bjs7CjU3OTtyZWdyZXNzaW9uLmF0Ojk5OTtTdHJpbmcgYWxpYXMgZGVjbGFyZWQgYWZ0ZXIgdXNl OzsKNTgwO3JlZ3Jlc3Npb24uYXQ6MTAyMjtFeHRyYSBsb29rYWhlYWQgc2V0cyBpbiByZXBvcnQ7 Owo1ODE7cmVncmVzc2lvbi5hdDoxMDYzO1Rva2VuIG51bWJlciBpbiBwcmVjZWRlbmNlIGRlY2xh cmF0aW9uOzsKNTgyO3JlZ3Jlc3Npb24uYXQ6MTExNjtwYXJzZS1ncmFtLnk6IExBTFIgPSBJRUxS OzsKNTgzO3JlZ3Jlc3Npb24uYXQ6MTEzODtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBZWVNUQUNL X1VTRV9BTExPQ0E7Owo1ODQ7cmVncmVzc2lvbi5hdDoxMjEyO3BhcnNlLmVycm9yPXZlcmJvc2Ug b3ZlcmZsb3c7Owo1ODU7cmVncmVzc2lvbi5hdDoxMzM2O0xBQzogRXhwbG9yYXRvcnkgc3RhY2s7 bGFjIHB1c2ggYysrOwo1ODY7cmVncmVzc2lvbi5hdDoxNDIyO0xBQzogTWVtb3J5IGV4aGF1c3Rp b247bGFjOwo1ODc7cmVncmVzc2lvbi5hdDoxNTU2O0xleCBhbmQgcGFyc2UgcGFyYW1zOiB5YWNj LmM7Owo1ODg7cmVncmVzc2lvbi5hdDoxNTU3O0xleCBhbmQgcGFyc2UgcGFyYW1zOiBnbHIuYztn bHI7CjU4OTtyZWdyZXNzaW9uLmF0OjE1NTg7TGV4IGFuZCBwYXJzZSBwYXJhbXM6IGxhbHIxLmNj O2MrKzsKNTkwO3JlZ3Jlc3Npb24uYXQ6MTU1OTtMZXggYW5kIHBhcnNlIHBhcmFtczogZ2xyLmNj O2dsciBjKys7CjU5MTtyZWdyZXNzaW9uLmF0OjE1NzA7c3RkaW8uaCBpcyBub3QgbmVlZGVkOzsK NTkyO3B1c2guYXQ6MjU7TWVtb3J5IExlYWsgZm9yIEVhcmx5IERlbGV0aW9uOzsKNTkzO3B1c2gu YXQ6ODQ7TXVsdGlwbGUgaW1wdXJlIGluc3RhbmNlczs7CjU5NDtwdXNoLmF0OjE0NTtVbnN1cHBv cnRlZCBTa2VsZXRvbnM7Owo1OTU7YysrLmF0OjI2O0MrKyBMb2NhdGlvbnMgVW5pdCBUZXN0cztj Kys7CjU5NjtjKysuYXQ6MTA3O0MrKyBWYXJpYW50LWJhc2VkIFN5bWJvbHMgVW5pdCBUZXN0czt2 YXJpYW50IGMrKzsKNTk3O2MrKy5hdDoyNDc7TXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgJG4gYW5k IGFwaS52YWx1ZS5hdXRvbW92ZTs7CjU5ODtjKysuYXQ6NTY2O1ZhcmlhbnRzIGxhbHIxLmNjO3Zh cmlhbnQgYysrOwo1OTk7YysrLmF0OjU2NztWYXJpYW50cyBsYWxyMS5jYyBwYXJzZS5hc3NlcnQ7 dmFyaWFudCBjKys7CjYwMDtjKysuYXQ6NTY4O1ZhcmlhbnRzIGxhbHIxLmNjIHBhcnNlLmFzc2Vy dCBhcGkudmFsdWUuYXV0b21vdmU7dmFyaWFudCBjKys7CjYwMTtjKysuYXQ6NTY5O1ZhcmlhbnRz IGxhbHIxLmNjIHBhcnNlLmFzc2VydCAlbG9jYXRpb25zO3ZhcmlhbnQgYysrOwo2MDI7YysrLmF0 OjU3MDtWYXJpYW50cyBsYWxyMS5jYyBwYXJzZS5hc3NlcnQgJWNvZGUge1xuI2RlZmluZSBUV09f U1RBR0VfQlVJTERcbn07dmFyaWFudCBjKys7CjYwMztjKysuYXQ6NTcxO1ZhcmlhbnRzIGxhbHIx LmNjIHBhcnNlLmFzc2VydCBhcGkudG9rZW4uY29uc3RydWN0b3I7dmFyaWFudCBjKys7CjYwNDtj KysuYXQ6NTcyO1ZhcmlhbnRzIGxhbHIxLmNjIHBhcnNlLmFzc2VydCBhcGkudG9rZW4uY29uc3Ry dWN0b3IgYXBpLnRva2VuLnByZWZpeD17VE9LX307dmFyaWFudCBjKys7CjYwNTtjKysuYXQ6NTcz O1ZhcmlhbnRzIGxhbHIxLmNjIHBhcnNlLmFzc2VydCBhcGkudG9rZW4uY29uc3RydWN0b3IgYXBp LnRva2VuLnByZWZpeD17VE9LX30gJWxvY2F0aW9uczt2YXJpYW50IGMrKzsKNjA2O2MrKy5hdDo1 NzQ7VmFyaWFudHMgbGFscjEuY2MgcGFyc2UuYXNzZXJ0IGFwaS50b2tlbi5jb25zdHJ1Y3RvciBh cGkudG9rZW4ucHJlZml4PXtUT0tffSAlbG9jYXRpb25zIGFwaS52YWx1ZS5hdXRvbW92ZTt2YXJp YW50IGMrKzsKNjA3O2MrKy5hdDo1ODQ7VmFyaWFudHMgYW5kIFR5cGVkIE1pZHJ1bGUgQWN0aW9u cztjKys7CjYwODtjKysuYXQ6Nzk0O0RveHlnZW4gUHVibGljIERvY3VtZW50YXRpb247Owo2MDk7 YysrLmF0Ojc5NTtEb3h5Z2VuIFByaXZhdGUgRG9jdW1lbnRhdGlvbjs7CjYxMDtjKysuYXQ6ODQ4 O1JlbGF0aXZlIG5hbWVzcGFjZSByZWZlcmVuY2VzO2MrKzsKNjExO2MrKy5hdDo4NTQ7QWJzb2x1 dGUgbmFtZXNwYWNlIHJlZmVyZW5jZXM7YysrOwo2MTI7YysrLmF0Ojg2MztTeW50YWN0aWNhbGx5 IGludmFsaWQgbmFtZXNwYWNlIHJlZmVyZW5jZXM7Owo2MTM7YysrLmF0Ojg4NDtTeW50YXggZXJy b3IgZGlzY2FyZGluZyBubyBsb29rYWhlYWQ7YysrOwo2MTQ7YysrLmF0OjEwNjM7U3ludGF4IGVy cm9yIGFzIGV4Y2VwdGlvbjogbGFscjEuY2M7YysrOwo2MTU7YysrLmF0OjEwNjQ7U3ludGF4IGVy cm9yIGFzIGV4Y2VwdGlvbjogZ2xyLmNjO2dsciBjKys7CjYxNjtjKysuYXQ6MTM1ODtFeGNlcHRp b24gc2FmZXR5IHdpdGggZXJyb3IgcmVjb3ZlcnkgO2MrKzsKNjE3O2MrKy5hdDoxMzU5O0V4Y2Vw dGlvbiBzYWZldHkgd2l0aG91dCBlcnJvciByZWNvdmVyeSA7YysrOwo2MTg7YysrLmF0OjEzNjA7 RXhjZXB0aW9uIHNhZmV0eSB3aXRoIGVycm9yIHJlY292ZXJ5IGFwaS52YWx1ZS50eXBlPXZhcmlh bnQ7YysrOwo2MTk7YysrLmF0OjEzNjE7RXhjZXB0aW9uIHNhZmV0eSB3aXRob3V0IGVycm9yIHJl Y292ZXJ5IGFwaS52YWx1ZS50eXBlPXZhcmlhbnQ7YysrOwo2MjA7YysrLmF0OjEzNjk7QysrIEdM UiBwYXJzZXIgaWRlbnRpZmllciBzaGFkb3dpbmc7YysrOwo2MjE7YysrLmF0OjE0MjA7U2hhcmVk IGxvY2F0aW9ucztjKys7CjYyMjtjKysuYXQ6MTUxNTtEZWZhdWx0IGFjdGlvbjthY3Rpb24gYysr Owo2MjM7amF2YS5hdDoyNTtKYXZhIGludmFsaWQgZGlyZWN0aXZlczs7CjYyNDtqYXZhLmF0OjE3 MTtKYXZhIHBhcnNlciBjbGFzcyBhbmQgcGFja2FnZSBuYW1lcztqYXZhOwo2MjU7amF2YS5hdDoy MDI7SmF2YSBwYXJzZXIgY2xhc3MgbW9kaWZpZXJzO2phdmE7CjYyNjtqYXZhLmF0OjI3MjtKYXZh IHBhcnNlciBjbGFzcyBleHRlbmRzIGFuZCBpbXBsZW1lbnRzO2phdmE7CjYyNztqYXZhLmF0OjI5 MjtKYXZhICVwYXJzZS1wYXJhbSBhbmQgJWxleC1wYXJhbTtqYXZhOwo2Mjg7amF2YS5hdDozNjY7 SmF2YSB0aHJvd3Mgc3BlY2lmaWNhdGlvbnM7amF2YTsKNjI5O2phdmEuYXQ6NDU1O0phdmEgY29u c3RydWN0b3IgaW5pdCBhbmQgaW5pdF90aHJvd3M7amF2YTsKNjMwO2phdmEuYXQ6NDgyO0phdmEg dmFsdWUsIHBvc2l0aW9uLCBhbmQgbG9jYXRpb24gdHlwZXM7amF2YTsKNjMxO2phdmEuYXQ6NTEz O0phdmEgc3ludGF4IGVycm9yIGhhbmRsaW5nIHdpdGhvdXQgZXJyb3IgdG9rZW47amF2YTsKNjMy O2phdmFwdXNoLmF0OjE3MjtUcml2aWFsIFB1c2ggUGFyc2VyIHdpdGggYXBpLnB1c2gtcHVsbCB2 ZXJpZmljYXRpb247amF2YTsKNjMzO2phdmFwdXNoLmF0OjIxNztUcml2aWFsIFB1c2ggUGFyc2Vy IHdpdGggJWluaXRpYWwtYWN0aW9uO2phdmE7CjYzNDtjeHgtdHlwZS5hdDozOTA7R0xSOiBSZXNv bHZlIGFtYmlndWl0eSwgaW1wdXJlLCBubyBsb2NhdGlvbnM7Z2xyOwo2MzU7Y3h4LXR5cGUuYXQ6 Mzk3O0dMUjogUmVzb2x2ZSBhbWJpZ3VpdHksIGltcHVyZSwgbG9jYXRpb25zO2dscjsKNjM2O2N4 eC10eXBlLmF0OjQwMztHTFI6IFJlc29sdmUgYW1iaWd1aXR5LCBwdXJlLCBubyBsb2NhdGlvbnM7 Z2xyOwo2Mzc7Y3h4LXR5cGUuYXQ6NDEwO0dMUjogUmVzb2x2ZSBhbWJpZ3VpdHksIHB1cmUsIGxv Y2F0aW9ucztnbHI7CjYzODtjeHgtdHlwZS5hdDo0MTc7R0xSOiBNZXJnZSBjb25mbGljdGluZyBw YXJzZXMsIGltcHVyZSwgbm8gbG9jYXRpb25zO2dscjsKNjM5O2N4eC10eXBlLmF0OjQyNDtHTFI6 IE1lcmdlIGNvbmZsaWN0aW5nIHBhcnNlcywgaW1wdXJlLCBsb2NhdGlvbnM7Z2xyOwo2NDA7Y3h4 LXR5cGUuYXQ6NDMxO0dMUjogTWVyZ2UgY29uZmxpY3RpbmcgcGFyc2VzLCBwdXJlLCBubyBsb2Nh dGlvbnM7Z2xyOwo2NDE7Y3h4LXR5cGUuYXQ6NDM3O0dMUjogTWVyZ2UgY29uZmxpY3RpbmcgcGFy c2VzLCBwdXJlLCBsb2NhdGlvbnM7Z2xyOwo2NDI7Y3h4LXR5cGUuYXQ6NDQ0O0dMUjogVmVyYm9z ZSBtZXNzYWdlcywgcmVzb2x2ZSBhbWJpZ3VpdHksIGltcHVyZSwgbm8gbG9jYXRpb25zO2dscjsK NjQzO2dsci1yZWdyZXNzaW9uLmF0OjI1O0JhZGx5IENvbGxhcHNlZCBHTFIgU3RhdGVzOzsKNjQ0 O2dsci1yZWdyZXNzaW9uLmF0OjExMztJbXByb3BlciBoYW5kbGluZyBvZiBlbWJlZGRlZCBhY3Rp b25zIGFuZCBkb2xsYXIoLU4pIGluIEdMUiBwYXJzZXJzOzsKNjQ1O2dsci1yZWdyZXNzaW9uLmF0 OjI1MDtJbXByb3BlciBtZXJnaW5nIG9mIEdMUiBkZWxheWVkIGFjdGlvbiBzZXRzOzsKNjQ2O2ds ci1yZWdyZXNzaW9uLmF0OjM3MztEdXBsaWNhdGUgcmVwcmVzZW50YXRpb24gb2YgbWVyZ2VkIHRy ZWVzOzsKNjQ3O2dsci1yZWdyZXNzaW9uLmF0OjQ2NjtVc2VyIGRlc3RydWN0b3IgZm9yIHVucmVz b2x2ZWQgR0xSIHNlbWFudGljIHZhbHVlOzsKNjQ4O2dsci1yZWdyZXNzaW9uLmF0OjUyNDtVc2Vy IGRlc3RydWN0b3IgYWZ0ZXIgYW4gZXJyb3IgZHVyaW5nIGEgc3BsaXQgcGFyc2U7Owo2NDk7Z2xy LXJlZ3Jlc3Npb24uYXQ6NTc2O0R1cGxpY2F0ZWQgdXNlciBkZXN0cnVjdG9yIGZvciBsb29rYWhl YWQ7Owo2NTA7Z2xyLXJlZ3Jlc3Npb24uYXQ6NjY3O0luY29ycmVjdGx5IGluaXRpYWxpemVkIGxv Y2F0aW9uIGZvciBlbXB0eSByaWdodC1oYW5kIHNpZGUgaW4gR0xSOzsKNjUxO2dsci1yZWdyZXNz aW9uLmF0Ojc1ODtObyB1c2VycyBkZXN0cnVjdG9ycyBpZiBzdGFjayAwIGRlbGV0ZWQ7Owo2NTI7 Z2xyLXJlZ3Jlc3Npb24uYXQ6ODM3O0NvcnJ1cHRlZCBzZW1hbnRpYyBvcHRpb25zIGlmIHVzZXIg YWN0aW9uIGN1dHMgcGFyc2U7Owo2NTM7Z2xyLXJlZ3Jlc3Npb24uYXQ6ODkzO1VuZGVzaXJhYmxl IGRlc3RydWN0b3JzIGlmIHVzZXIgYWN0aW9uIGN1dHMgcGFyc2U7Owo2NTQ7Z2xyLXJlZ3Jlc3Np b24uYXQ6OTUzO0xlYWtlZCBzZW1hbnRpYyB2YWx1ZXMgaWYgdXNlciBhY3Rpb24gY3V0cyBwYXJz ZTs7CjY1NTtnbHItcmVncmVzc2lvbi5hdDoxMDc4O0luY29ycmVjdCBsb29rYWhlYWQgZHVyaW5n IGRldGVybWluaXN0aWMgR0xSOzsKNjU2O2dsci1yZWdyZXNzaW9uLmF0OjEyMDM7SW5jb3JyZWN0 IGxvb2thaGVhZCBkdXJpbmcgbm9uZGV0ZXJtaW5pc3RpYyBHTFI7Owo2NTc7Z2xyLXJlZ3Jlc3Np b24uYXQ6MTQyMTtMZWFrZWQgc2VtYW50aWMgdmFsdWVzIHdoZW4gcmVwb3J0aW5nIGFtYmlndWl0 eTs7CjY1ODtnbHItcmVncmVzc2lvbi5hdDoxNTA1O0xlYWtlZCBsb29rYWhlYWQgYWZ0ZXIgbm9u ZGV0ZXJtaW5pc3RpYyBwYXJzZSBzeW50YXggZXJyb3I7Owo2NTk7Z2xyLXJlZ3Jlc3Npb24uYXQ6 MTU2NztVbmluaXRpYWxpemVkIGxvY2F0aW9uIHdoZW4gcmVwb3J0aW5nIGFtYmlndWl0eTtnbHI7 CjY2MDtnbHItcmVncmVzc2lvbi5hdDoxNjQzO01pc3NlZCAlbWVyZ2UgdHlwZSB3YXJuaW5ncyB3 aGVuIExIUyB0eXBlIGlzIGRlY2xhcmVkIGxhdGVyOzsKNjYxO2dsci1yZWdyZXNzaW9uLmF0OjE2 OTI7QW1iaWd1aXR5IHJlcG9ydHM7Owo2NjI7Z2xyLXJlZ3Jlc3Npb24uYXQ6MTc5OTtQcmVkaWNh dGVzOzsKJworKyBzZWQgJ3MvOy4qLy8nCisrIHByaW50ZiAnJXNcbicgJzE7bTQuYXQ6MjE7R2Vu ZXJhdGluZyBDb21tZW50czs7CjI7aW5wdXQuYXQ6Mjc7SW52YWxpZCBudW1iZXIgb2YgYXJndW1l bnRzOzsKMztpbnB1dC5hdDo1ODtJbnZhbGlkIG9wdGlvbnM7Owo0O2lucHV0LmF0OjgzO0ludmFs aWQgaW5wdXRzOzsKNTtpbnB1dC5hdDoxNDI7SW52YWxpZCBpbnB1dHMgd2l0aCB7fTs7CjY7aW5w dXQuYXQ6MTY4O1lhY2Mgd2FybmluZ3Mgb24gc3ltYm9sczs7Cjc7aW5wdXQuYXQ6MTk5O1lhY2Mg d2FybmluZ3M7Owo4O2lucHV0LmF0OjIzMztZYWNjJ1wnJ3MgJXR5cGU7Owo5O2lucHV0LmF0OjI4 MjtJbnZhbGlkIHN5bWJvbCBkZWNsYXJhdGlvbnM7OwoxMDtpbnB1dC5hdDozMzY7UmVkZWZpbmlu ZyB0aGUgZXJyb3IgdG9rZW47OwoxMTtpbnB1dC5hdDozOTY7RGFuZ2xpbmcgYWxpYXNlczs7CjEy O2lucHV0LmF0OjQyMjtTeW1ib2wgZGVjbGFyYXRpb25zOzsKMTM7aW5wdXQuYXQ6NTIzO0ludmFs aWQgJG4gYW5kIEBuOzsKMTQ7aW5wdXQuYXQ6NTQ3O1R5cGUgQ2xhc2hlczs7CjE1O2lucHV0LmF0 Ojc2OTtVbnVzZWQgdmFsdWVzOzsKMTY7aW5wdXQuYXQ6Nzc5O1VudXNlZCB2YWx1ZXMgYmVmb3Jl IHN5bWJvbCBkZWNsYXJhdGlvbnM7OwoxNztpbnB1dC5hdDo3ODk7U3ltYm9sIHJlZGVjbGFyZWQ7 OwoxODtpbnB1dC5hdDo4Mjc7RU9GIHJlZGVjbGFyZWQ7OwoxOTtpbnB1dC5hdDo4NTQ7U3ltYm9s IGNsYXNzIHJlZGVmaW5pdGlvbjs7CjIwO2lucHV0LmF0Ojg5NDtEZWZhdWx0ICVwcmludGVyIGFu ZCAlZGVzdHJ1Y3RvciByZWRlY2xhcmVkOzsKMjE7aW5wdXQuYXQ6OTY1O1Blci10eXBlICVwcmlu dGVyIGFuZCAlZGVzdHJ1Y3RvciByZWRlY2xhcmVkOzsKMjI7aW5wdXQuYXQ6MTAwODtVbmRlZmlu ZWQgc3ltYm9sczs7CjIzO2lucHV0LmF0OjEwNDA7VW5hc3NvY2lhdGVkIHR5cGVzIHVzZWQgZm9y IGEgcHJpbnRlciBvciBkZXN0cnVjdG9yOzsKMjQ7aW5wdXQuYXQ6MTA2OTtVc2VsZXNzIHByaW50 ZXJzIG9yIGRlc3RydWN0b3JzOzsKMjU7aW5wdXQuYXQ6MTEzNDtVbnVzZWQgdmFsdWVzIHdpdGgg ZGVmYXVsdCAlZGVzdHJ1Y3Rvcjs7CjI2O2lucHV0LmF0OjExODI7VW51c2VkIHZhbHVlcyB3aXRo IHBlci10eXBlICVkZXN0cnVjdG9yOzsKMjc7aW5wdXQuYXQ6MTIxNDtEdXBsaWNhdGUgc3RyaW5n OzsKMjg7aW5wdXQuYXQ6MTI0MjtUb2tlbiBjb2xsaXNpb25zOzsKMjk7aW5wdXQuYXQ6MTI3MDtJ bmNvbXBhdGlibGUgQWxpYXNlczs7CjMwO2lucHV0LmF0OjEzOTU7VG9ydHVyaW5nIHRoZSBTY2Fu bmVyOzsKMzE7aW5wdXQuYXQ6MTU2NDtUeXBlZCBzeW1ib2wgYWxpYXNlczs7CjMyO2lucHV0LmF0 OjE2MDQ7UmVxdWlyZSAxLjA7OwozMztpbnB1dC5hdDoxNjA1O1JlcXVpcmUgMy43LjM7OwozNDtp bnB1dC5hdDoxNjA3O1JlcXVpcmUgMTAwLjA7OwozNTtpbnB1dC5hdDoxNjE0O1N0cmluZyBhbGlh c2VzIGZvciBjaGFyYWN0ZXIgdG9rZW5zOzsKMzY7aW5wdXQuYXQ6MTYzNztTeW1ib2xzOzsKMzc7 aW5wdXQuYXQ6MTcwMztOdW1iZXJlZCB0b2tlbnM7OwozODtpbnB1dC5hdDoxNzQ1O1VuY2xvc2Vk IGNvbnN0cnVjdHM7OwozOTtpbnB1dC5hdDoxODAwOyVzdGFydCBhZnRlciBmaXJzdCBydWxlOzsK NDA7aW5wdXQuYXQ6MTgyMTslcHJlYyB0YWtlcyBhIHRva2VuOzsKNDE7aW5wdXQuYXQ6MTg0Mjsl cHJlYydcJydzIHRva2VuIG11c3QgYmUgZGVmaW5lZDs7CjQyO2lucHV0LmF0OjE4NjI7UmVqZWN0 IHVudXNlZCAlY29kZSBxdWFsaWZpZXJzOzsKNDM7aW5wdXQuYXQ6MTk1MTtNdWx0aXBsZSAlY29k ZTs7CjQ0O2lucHV0LmF0OjE5OTE7ZXJyb3JzOzsKNDU7aW5wdXQuYXQ6MjAyODslZGVmaW5lLCAt LWRlZmluZSwgLS1mb3JjZS1kZWZpbmU7Owo0NjtpbnB1dC5hdDoyMDk2OyIlZGVmaW5lIiBCb29s ZWFuIHZhcmlhYmxlczs7CjQ3O2lucHV0LmF0OjIxMTc7IiVkZWZpbmUiIGNvZGUgdmFyaWFibGVz OzsKNDg7aW5wdXQuYXQ6MjE1MDsiJWRlZmluZSIga2V5d29yZCB2YXJpYWJsZXM7Owo0OTtpbnB1 dC5hdDoyMTgzOyIlZGVmaW5lIiBlbnVtIHZhcmlhYmxlczs7CjUwO2lucHV0LmF0OjIyNDY7IiVk ZWZpbmUiIGZpbGUgdmFyaWFibGVzOzsKNTE7aW5wdXQuYXQ6MjI2ODsiJWRlZmluZSIgYmFja3dh cmQgY29tcGF0aWJpbGl0eTs7CjUyO2lucHV0LmF0OjIzMTk7VW51c2VkIGFwaS5wdXJlOzsKNTM7 aW5wdXQuYXQ6MjM1NTtDKysgbmFtZXNwYWNlIHJlZmVyZW5jZSBlcnJvcnM7Owo1NDtpbnB1dC5h dDoyNDA4O0JhZCBjaGFyYWN0ZXIgbGl0ZXJhbHM7Owo1NTtpbnB1dC5hdDoyNDY5O0JhZCBlc2Nh cGVzIGluIGxpdGVyYWxzOzsKNTY7aW5wdXQuYXQ6MjUwODtVbmV4cGVjdGVkIGVuZCBvZiBmaWxl OzsKNTc7aW5wdXQuYXQ6MjYwMTtMQUM6IEVycm9ycyBmb3IgJWRlZmluZTtsYWM7CjU4O2lucHV0 LmF0OjI2NTU7LVdlcnJvciBjb21iaW5hdGlvbnM7Owo1OTtpbnB1dC5hdDoyNzAwOyVuYW1lLXBy ZWZpeCBhbmQgYXBpLnByZWZpeCBhcmUgaW5jb21wYXRpYmxlOzsKNjA7aW5wdXQuYXQ6MjcyOTtS ZWRlZmluZWQgJXVuaW9uIG5hbWU7Owo2MTtpbnB1dC5hdDoyNzc2O1N0cmF5ICQgb3IgQDs7CjYy O2lucHV0LmF0OjI4MTk7Q29kZSBpbmplY3Rpb247Owo2MztpbnB1dC5hdDoyODgzO0RlcHJlY2F0 ZWQgZGlyZWN0aXZlcztkZXByZWM7CjY0O2lucHV0LmF0OjMwMTI7VW5wdXQnXCcncyBlZmZlY3Qg b24gbG9jYXRpb25zO2RlcHJlYzsKNjU7aW5wdXQuYXQ6MzA0ODtOb24tZGVwcmVjYXRlZCBkaXJl Y3RpdmVzO2RlcHJlYzsKNjY7aW5wdXQuYXQ6MzA4MztDYW5ub3QgdHlwZSBhY3Rpb247Owo2Nztp bnB1dC5hdDozMTA2O0NoYXJhY3RlciBsaXRlcmFscyBhbmQgYXBpLnRva2VuLnJhdzs7CjY4O2lu cHV0LmF0OjMxNDA7JXRva2VuLXRhYmxlIGFuZCBwYXJzZS5lcnJvcjs7CjY5O2lucHV0LmF0OjMx NjY7SW52YWxpZCBmaWxlIHByZWZpeCBtYXBwaW5nIGFyZ3VtZW50czs7CjcwO25hbWVkLXJlZnMu YXQ6MjI7VHV0b3JpYWwgY2FsY3VsYXRvcjs7CjcxO25hbWVkLXJlZnMuYXQ6MTk2O1VuZGVmaW5l ZCBhbmQgYW1iaWd1b3VzIHJlZmVyZW5jZXM7Owo3MjtuYW1lZC1yZWZzLmF0OjI5NztNaXNsZWFk aW5nIHJlZmVyZW5jZXM7Owo3MztuYW1lZC1yZWZzLmF0OjMxNjtNYW55IGtpbmRzIG9mIGVycm9y czs7Cjc0O25hbWVkLXJlZnMuYXQ6NTUxO01pc3NpbmcgaWRlbnRpZmllcnMgaW4gYnJhY2tldHM7 Owo3NTtuYW1lZC1yZWZzLmF0OjU2NztSZWR1bmRhbnQgd29yZHMgaW4gYnJhY2tldHM7Owo3Njtu YW1lZC1yZWZzLmF0OjU4MztDb21tZW50cyBpbiBicmFja2V0czs7Cjc3O25hbWVkLXJlZnMuYXQ6 NTk5O1N0cmF5IHN5bWJvbHMgaW4gYnJhY2tldHM7Owo3ODtuYW1lZC1yZWZzLmF0OjYxODtSZWR1 bmRhbnQgd29yZHMgaW4gTEhTIGJyYWNrZXRzOzsKNzk7bmFtZWQtcmVmcy5hdDo2MzU7RmFjdG9y ZWQgTEhTOzsKODA7bmFtZWQtcmVmcy5hdDo2NDg7VW5yZXNvbHZlZCByZWZlcmVuY2VzOzsKODE7 bmFtZWQtcmVmcy5hdDo3MTU7JCBvciBAIGZvbGxvd2VkIGJ5IC4gb3IgLTs7CjgyO291dHB1dC5h dDo2NjtPdXRwdXQgZmlsZXM6ICAtZHY7Owo4MztvdXRwdXQuYXQ6NzI7T3V0cHV0IGZpbGVzOiAg LWR2ID4mLTs7Cjg0O291dHB1dC5hdDo3OTtPdXRwdXQgZmlsZXM6ICAtZHYgLW8gZm9vLmM7Owo4 NTtvdXRwdXQuYXQ6ODI7T3V0cHV0IGZpbGVzOiAgLWR2IC15OzsKODY7b3V0cHV0LmF0Ojg1O091 dHB1dCBmaWxlczogYXBpLmhlYWRlci5pbmNsdWRlPXsiLi9mb28uaCJ9IC1kdiAteTs7Cjg3O291 dHB1dC5hdDo5MDtPdXRwdXQgZmlsZXM6ICAtZHYgLW8gZm9vLnRhYi5jOzsKODg7b3V0cHV0LmF0 OjkzO091dHB1dCBmaWxlczogIC1kdiAtZyAtLXhtbCAtLWZpeGVkLW91dHB1dC1maWxlczs7Cjg5 O291dHB1dC5hdDo5NTtPdXRwdXQgZmlsZXM6ICAtZHYgLWcgLS14bWwgLXk7Owo5MDtvdXRwdXQu YXQ6OTc7T3V0cHV0IGZpbGVzOiAlcmVxdWlyZSAiMy40IiAtZHYgLWcgLS14bWwgLXk7Owo5MTtv dXRwdXQuYXQ6MTAwO091dHB1dCBmaWxlczogIC1kdiAtZyAtLXhtbCAtbyB5LnRhYi5jOzsKOTI7 b3V0cHV0LmF0OjEwMztPdXRwdXQgZmlsZXM6ICAtZHYgLWIgYmFyOzsKOTM7b3V0cHV0LmF0OjEw NTtPdXRwdXQgZmlsZXM6ICAtZHYgLWcgLW8gZm9vLmM7Owo5NDtvdXRwdXQuYXQ6MTA5O091dHB1 dCBmaWxlczogJWRlZmluZXMgJXZlcmJvc2UgOzsKOTU7b3V0cHV0LmF0OjExMTtPdXRwdXQgZmls ZXM6ICVkZWZpbmVzICV2ZXJib3NlICV5YWNjIDs7Cjk2O291dHB1dC5hdDoxMTQ7T3V0cHV0IGZp bGVzOiAlZGVmaW5lcyAldmVyYm9zZSAleWFjYyA7Owo5NztvdXRwdXQuYXQ6MTE4O091dHB1dCBm aWxlczogJWZpbGUtcHJlZml4ICJiYXIiICVkZWZpbmVzICV2ZXJib3NlIDs7Cjk4O291dHB1dC5h dDoxMjA7T3V0cHV0IGZpbGVzOiAlb3V0cHV0ICJiYXIuYyIgJWRlZmluZXMgJXZlcmJvc2UgJXlh Y2MgOzsKOTk7b3V0cHV0LmF0OjEyMjtPdXRwdXQgZmlsZXM6ICVmaWxlLXByZWZpeCAiYmF6IiAl b3V0cHV0ICJiYXIuYyIgJWRlZmluZXMgJXZlcmJvc2UgJXlhY2MgOzsKMTAwO291dHB1dC5hdDox Mjk7T3V0cHV0IGZpbGVzOiAlZGVmaW5lcyAldmVyYm9zZSA7OwoxMDE7b3V0cHV0LmF0OjEzMjtP dXRwdXQgZmlsZXM6ICVkZWZpbmVzICV2ZXJib3NlICAtbyBmb28uYzs7CjEwMjtvdXRwdXQuYXQ6 MTM1O091dHB1dCBmaWxlczogIC0tZGVmaW5lcz1mb28uaHBwIC1vIGZvby5jKys7OwoxMDM7b3V0 cHV0LmF0OjEzOTtPdXRwdXQgZmlsZXM6ICVkZWZpbmVzICJmb28uaHBwIiAtbyBmb28uYysrOzsK MTA0O291dHB1dC5hdDoxNDM7T3V0cHV0IGZpbGVzOiAgLW8gZm9vLmMrKyAtLWdyYXBoPWZvby5n cGg7OwoxMDU7b3V0cHV0LmF0OjE0OTtPdXRwdXQgZmlsZXM6ICV0eXBlIDxmb28+IHVzZWxlc3Mg LS1kZWZpbmVzIC0tZ3JhcGggLS14bWwgLS1yZXBvcnQ9YWxsIC1XYWxsIC1XZXJyb3I7OwoxMDY7 b3V0cHV0LmF0OjE1NjtPdXRwdXQgZmlsZXM6IHVzZWxlc3M9LS1kZWZpbmVzIC0tZ3JhcGggLS14 bWwgLS1yZXBvcnQ9YWxsIC1XYWxsIC1XZXJyb3I7OwoxMDc7b3V0cHV0LmF0OjE3MjtPdXRwdXQg ZmlsZXM6IGxhbHIxLmNjIDs7CjEwODtvdXRwdXQuYXQ6MTc1O091dHB1dCBmaWxlczogbGFscjEu Y2MgJXZlcmJvc2UgOzsKMTA5O291dHB1dC5hdDoxNzg7T3V0cHV0IGZpbGVzOiBsYWxyMS5jYyAl ZGVmaW5lcyAldmVyYm9zZSA7OwoxMTA7b3V0cHV0LmF0OjE4MTtPdXRwdXQgZmlsZXM6IGxhbHIx LmNjICV2ZXJib3NlICVsb2NhdGlvbnMgOzsKMTExO291dHB1dC5hdDoxODQ7T3V0cHV0IGZpbGVz OiBsYWxyMS5jYyAlZGVmaW5lcyAldmVyYm9zZSAlbG9jYXRpb25zIDs7CjExMjtvdXRwdXQuYXQ6 MTg3O091dHB1dCBmaWxlczogbGFscjEuY2MgJWRlZmluZXMgJXZlcmJvc2UgOzsKMTEzO291dHB1 dC5hdDoxOTE7T3V0cHV0IGZpbGVzOiBsYWxyMS5jYyAlZGVmaW5lcyAldmVyYm9zZSAlbG9jYXRp b25zIC1vIHN1YmRpci9mb28uY2M7OwoxMTQ7b3V0cHV0LmF0OjE5NjtPdXRwdXQgZmlsZXM6IGxh bHIxLmNjICVkZWZpbmVzICV2ZXJib3NlICVmaWxlLXByZWZpeCAib3V0cHV0X2Rpci9mb28iIDs7 CjExNTtvdXRwdXQuYXQ6MjAxO091dHB1dCBmaWxlczogbGFscjEuY2MgJWRlZmluZXMgJWxvY2F0 aW9ucyAldmVyYm9zZSAlZmlsZS1wcmVmaXggIm91dHB1dF9kaXIvZm9vIiA7OwoxMTY7b3V0cHV0 LmF0OjIwNztPdXRwdXQgZmlsZXM6IGxhbHIxLmNjICVkZWZpbmVzICVsb2NhdGlvbnMgYXBpLmxv Y2F0aW9uLmZpbGU9bm9uZSAlcmVxdWlyZSAiMy4yIiA7OwoxMTc7b3V0cHV0LmF0OjIxMjtPdXRw dXQgZmlsZXM6IGxhbHIxLmNjICVkZWZpbmVzICVsb2NhdGlvbnMgYXBpLmxvY2F0aW9uLmZpbGU9 ImZvby5sb2MuaGgiICVyZXF1aXJlICIzLjIiIDs7CjExODtvdXRwdXQuYXQ6MjE4O091dHB1dCBm aWxlczogbGFscjEuY2MgJWRlZmluZXMgJWxvY2F0aW9ucyBhcGkubG9jYXRpb24uZmlsZT0iJGF0 X2Rpci9mb28ubG9jLmhoIiAlcmVxdWlyZSAiMy4yIiA7OwoxMTk7b3V0cHV0LmF0OjI0ODtDb25m bGljdGluZyBvdXRwdXQgZmlsZXM6ICAtLWdyYXBoPSJmb28udGFiLmMiOzsKMTIwO291dHB1dC5h dDoyNTM7Q29uZmxpY3Rpbmcgb3V0cHV0IGZpbGVzOiAlZGVmaW5lcyAiZm9vLm91dHB1dCIgLXY7 OwoxMjE7b3V0cHV0LmF0OjI1ODtDb25mbGljdGluZyBvdXRwdXQgZmlsZXM6IGxhbHIxLmNjICVk ZWZpbmVzICVsb2NhdGlvbnMgLS1ncmFwaD0ibG9jYXRpb24uaGgiOzsKMTIyO291dHB1dC5hdDoy NjM7Q29uZmxpY3Rpbmcgb3V0cHV0IGZpbGVzOiAgLW8gZm9vLnk7OwoxMjM7b3V0cHV0LmF0OjMw OTtPdXRwdXQgZmlsZSBuYW1lOiBgfiFAIyQlXiYqKCktPV8re31bXXxcOjs8PiwgLidcJyc7Yysr OwoxMjQ7b3V0cHV0LmF0OjMxNjtPdXRwdXQgZmlsZSBuYW1lOiAoO2MrKzsKMTI1O291dHB1dC5h dDozMTc7T3V0cHV0IGZpbGUgbmFtZTogKTtjKys7CjEyNjtvdXRwdXQuYXQ6MzE4O091dHB1dCBm aWxlIG5hbWU6ICM7YysrOwoxMjc7b3V0cHV0LmF0OjMxOTtPdXRwdXQgZmlsZSBuYW1lOiBAQDtj Kys7CjEyODtvdXRwdXQuYXQ6MzIwO091dHB1dCBmaWxlIG5hbWU6IEB7O2MrKzsKMTI5O291dHB1 dC5hdDozMjE7T3V0cHV0IGZpbGUgbmFtZTogQH07YysrOwoxMzA7b3V0cHV0LmF0OjMyMjtPdXRw dXQgZmlsZSBuYW1lOiBbO2MrKzsKMTMxO291dHB1dC5hdDozMjM7T3V0cHV0IGZpbGUgbmFtZTog XTtjKys7CjEzMjtvdXRwdXQuYXQ6MzQ0O0dyYXBoIHdpdGggbm8gY29uZmxpY3RzO2dyYXBoOwox MzM7b3V0cHV0LmF0OjM4NDtHcmFwaCB3aXRoIHVuc29sdmVkIFMvUjtncmFwaDsKMTM0O291dHB1 dC5hdDo0NTQ7R3JhcGggd2l0aCBzb2x2ZWQgUy9SO2dyYXBoOwoxMzU7b3V0cHV0LmF0OjUxOTtH cmFwaCB3aXRoIFIvUjtncmFwaDsKMTM2O291dHB1dC5hdDo1NTc7R3JhcGggd2l0aCByZWR1Y3Rp b25zIHdpdGggbXVsdGlwbGUgTEFUO2dyYXBoOwoxMzc7b3V0cHV0LmF0OjYyMjtHcmFwaCB3aXRo IGEgcmVkdWN0aW9uIHJ1bGUgYm90aCBlbmFibGVkIGFuZCBkaXNhYmxlZDtncmFwaDsKMTM4O291 dHB1dC5hdDo3MjU7QysrIE91dHB1dCBGaWxlIFByZWZpeCBNYXBwaW5nO2MrKzsKMTM5O2RpYWdu b3N0aWNzLmF0Ojg0O1dhcm5pbmdzO2RpYWdub3N0aWNzOwoxNDA7ZGlhZ25vc3RpY3MuYXQ6MTMz O1NpbmdsZSBwb2ludCBsb2NhdGlvbnM7ZGlhZ25vc3RpY3M7CjE0MTtkaWFnbm9zdGljcy5hdDox ODI7TGluZSBpcyB0b28gc2hvcnQsIGFuZCB0aGVuIHlvdSBkaWU7ZGlhZ25vc3RpY3M7CjE0Mjtk aWFnbm9zdGljcy5hdDoyMTc7WmVyby13aWR0aCBjaGFyYWN0ZXJzO2RpYWdub3N0aWNzOwoxNDM7 ZGlhZ25vc3RpY3MuYXQ6MjM1O1RhYnVsYXRpb25zIGFuZCBtdWx0aWJ5dGUgY2hhcmFjdGVycztk aWFnbm9zdGljczsKMTQ0O2RpYWdub3N0aWNzLmF0OjI4MjtUYWJ1bGF0aW9ucyBhbmQgbXVsdGli eXRlIGNoYXJhY3RlcnM7ZGlhZ25vc3RpY3M7CjE0NTtkaWFnbm9zdGljcy5hdDozMDM7U3BlY2lh bCBmaWxlcztkaWFnbm9zdGljczsKMTQ2O2RpYWdub3N0aWNzLmF0OjMyODtDb21wbGFpbnRzIGZy b20gTTQ7ZGlhZ25vc3RpY3M7CjE0NztkaWFnbm9zdGljcy5hdDozNTE7Q2FycmlhZ2UgcmV0dXJu O2RpYWdub3N0aWNzOwoxNDg7ZGlhZ25vc3RpY3MuYXQ6MzcyO0NSIE5MO2RpYWdub3N0aWNzOwox NDk7ZGlhZ25vc3RpY3MuYXQ6Mzk5O1NjcmVlbiB3aWR0aDogMjAwIGNvbHVtbnM7ZGlhZ25vc3Rp Y3M7CjE1MDtkaWFnbm9zdGljcy5hdDo0MzI7U2NyZWVuIHdpZHRoOiA4MCBjb2x1bW5zO2RpYWdu b3N0aWNzOwoxNTE7ZGlhZ25vc3RpY3MuYXQ6NDY1O1NjcmVlbiB3aWR0aDogNjAgY29sdW1ucztk aWFnbm9zdGljczsKMTUyO2RpYWdub3N0aWNzLmF0OjUwNDtTdWdnZXN0aW9ucztkaWFnbm9zdGlj czsKMTUzO2RpYWdub3N0aWNzLmF0OjUyNztDb3VudGVyZXhhbXBsZXM7ZGlhZ25vc3RpY3MgY2V4 OwoxNTQ7ZGlhZ25vc3RpY3MuYXQ6NTg1O0RlZXAgQ291bnRlcmV4YW1wbGVzO2RpYWdub3N0aWNz IGNleDsKMTU1O2RpYWdub3N0aWNzLmF0OjY1MztJbmRlbnRhdGlvbiB3aXRoIG1lc3NhZ2Ugc3Vw cHJlc3Npb247OwoxNTY7c2tlbGV0b25zLmF0OjI1O1JlbGF0aXZlIHNrZWxldG9uIGZpbGUgbmFt ZXM7OwoxNTc7c2tlbGV0b25zLmF0Ojg1O0luc3RhbGxlZCBza2VsZXRvbiBmaWxlIG5hbWVzOzsK MTU4O3NrZWxldG9ucy5hdDoxNDI7Qm9vbGVhbj12YXJpYWJsZXM6IGludmFsaWQgc2tlbGV0b24g ZGVmYXVsdHM7OwoxNTk7c2tlbGV0b25zLmF0OjE2NjtDb21wbGFpbmluZyBkdXJpbmcgbWFjcm8g YXJndW1lbnQgZXhwYW5zaW9uOzsKMTYwO3NrZWxldG9ucy5hdDoyNDg7RmF0YWwgZXJyb3JzIG1h a2UgTTQgZXhpdCBpbW1lZGlhdGVseTs7CjE2MTtza2VsZXRvbnMuYXQ6MzAyO0ZhdGFsIGVycm9y cyBidXQgTTQgY29udGludWVzIHByb2R1Y2luZyBvdXRwdXQ7OwoxNjI7c2V0cy5hdDoyNztOdWxs YWJsZTs7CjE2MztzZXRzLmF0OjExMTtCcm9rZW4gQ2xvc3VyZTs7CjE2NDtzZXRzLmF0OjE1MztG aXJzdHM7OwoxNjU7c2V0cy5hdDoyMjg7QWNjZXB0OzsKMTY2O3NldHMuYXQ6MjY5O0J1aWxkIHJl bGF0aW9uczs7CjE2NztzZXRzLmF0OjMxNTtSZWR1Y2VkIEdyYW1tYXI7OwoxNjg7c2V0cy5hdDoz OTM7UmVkdWNlZCBHcmFtbWFyIHdpdGggcHJlYyBhbmQgYXNzb2M7OwoxNjk7cmVkdWNlLmF0OjI2 O1VzZWxlc3MgVGVybWluYWxzOzsKMTcwO3JlZHVjZS5hdDo3MDtVc2VsZXNzIE5vbnRlcm1pbmFs czs7CjE3MTtyZWR1Y2UuYXQ6MTIwO1VzZWxlc3MgUnVsZXM7cmVwb3J0OwoxNzI7cmVkdWNlLmF0 OjIyNDtVc2VsZXNzIFBhcnRzOzsKMTczO3JlZHVjZS5hdDozMTI7UmVkdWNlZCBBdXRvbWF0b247 cmVwb3J0OwoxNzQ7cmVkdWNlLmF0OjQwNjtVbmRlcml2YWJsZSBSdWxlcztyZXBvcnQ7CjE3NTty ZWR1Y2UuYXQ6NDUyO0VtcHR5IExhbmd1YWdlOzsKMTc2O3JlZHVjZS5hdDo1MDM7bm8gbHIudHlw ZTogU2luZ2xlIFN0YXRlIFNwbGl0OzsKMTc3O3JlZHVjZS5hdDo1MDM7bHIudHlwZT1sYWxyOiBT aW5nbGUgU3RhdGUgU3BsaXQ7OwoxNzg7cmVkdWNlLmF0OjUwMztsci50eXBlPWllbHI6IFNpbmds ZSBTdGF0ZSBTcGxpdDs7CjE3OTtyZWR1Y2UuYXQ6NTAzO2xyLnR5cGU9Y2Fub25pY2FsLWxyOiBT aW5nbGUgU3RhdGUgU3BsaXQ7OwoxODA7cmVkdWNlLmF0OjczNjtubyBsci50eXBlOiBMYW5lIFNw bGl0OzsKMTgxO3JlZHVjZS5hdDo3MzY7bHIudHlwZT1sYWxyOiBMYW5lIFNwbGl0OzsKMTgyO3Jl ZHVjZS5hdDo3MzY7bHIudHlwZT1pZWxyOiBMYW5lIFNwbGl0OzsKMTgzO3JlZHVjZS5hdDo3MzY7 bHIudHlwZT1jYW5vbmljYWwtbHI6IExhbmUgU3BsaXQ7OwoxODQ7cmVkdWNlLmF0Ojk4MDtubyBs ci50eXBlOiBDb21wbGV4IExhbmUgU3BsaXQ7OwoxODU7cmVkdWNlLmF0Ojk4MDtsci50eXBlPWxh bHI6IENvbXBsZXggTGFuZSBTcGxpdDs7CjE4NjtyZWR1Y2UuYXQ6OTgwO2xyLnR5cGU9aWVscjog Q29tcGxleCBMYW5lIFNwbGl0OzsKMTg3O3JlZHVjZS5hdDo5ODA7bHIudHlwZT1jYW5vbmljYWwt bHI6IENvbXBsZXggTGFuZSBTcGxpdDs7CjE4ODtyZWR1Y2UuYXQ6MTI0OTtubyBsci50eXBlOiBT cGxpdCBEdXJpbmcgQWRkZWQgTG9va2FoZWFkIFByb3BhZ2F0aW9uOzsKMTg5O3JlZHVjZS5hdDox MjQ5O2xyLnR5cGU9bGFscjogU3BsaXQgRHVyaW5nIEFkZGVkIExvb2thaGVhZCBQcm9wYWdhdGlv bjs7CjE5MDtyZWR1Y2UuYXQ6MTI0OTtsci50eXBlPWllbHI6IFNwbGl0IER1cmluZyBBZGRlZCBM b29rYWhlYWQgUHJvcGFnYXRpb247OwoxOTE7cmVkdWNlLmF0OjEyNDk7bHIudHlwZT1jYW5vbmlj YWwtbHI6IFNwbGl0IER1cmluZyBBZGRlZCBMb29rYWhlYWQgUHJvcGFnYXRpb247OwoxOTI7cmVk dWNlLmF0OjE1ODA7bm8gbHIuZGVmYXVsdC1yZWR1Y3Rpb247OwoxOTM7cmVkdWNlLmF0OjE1ODA7 bHIuZGVmYXVsdC1yZWR1Y3Rpb249bW9zdDs7CjE5NDtyZWR1Y2UuYXQ6MTU4MDtsci5kZWZhdWx0 LXJlZHVjdGlvbj1jb25zaXN0ZW50OzsKMTk1O3JlZHVjZS5hdDoxNTgwO2xyLmRlZmF1bHQtcmVk dWN0aW9uPWFjY2VwdGluZzs7CjE5NjtyZXBvcnQuYXQ6MjQ7UmVwb3J0cztyZXBvcnQ7CjE5Nzty ZXBvcnQuYXQ6MTUxNjtSZXBvcnRzIHdpdGggY29uZmxpY3RzO2NleCByZXBvcnQ7CjE5ODtjb25m bGljdHMuYXQ6Mjg7VG9rZW4gZGVjbGFyYXRpb24gb3JkZXI7OwoxOTk7Y29uZmxpY3RzLmF0OjEw MTtUb2tlbiBkZWNsYXJhdGlvbiBvcmRlcjogbGl0ZXJhbHMgdnMuIGlkZW50aWZpZXJzOzsKMjAw O2NvbmZsaWN0cy5hdDoxODM7VXNlbGVzcyBhc3NvY2lhdGl2aXR5IHdhcm5pbmc7OwoyMDE7Y29u ZmxpY3RzLmF0OjIxODtVc2VsZXNzIHByZWNlZGVuY2Ugd2FybmluZzs7CjIwMjtjb25mbGljdHMu YXQ6Mjc1O1MvUiBpbiBpbml0aWFsOzsKMjAzO2NvbmZsaWN0cy5hdDozMDE7JW5vbmFzc29jIGFu ZCBlb2Y7OwoyMDQ7Y29uZmxpY3RzLmF0OjUwOTtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25z aXN0ZW50IGVycm9yczogbHIudHlwZT1pZWxyOzsKMjA1O2NvbmZsaWN0cy5hdDo1MTM7cGFyc2Uu ZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLnR5cGU9aWVsciAlZ2xyLXBh cnNlcjtnbHI7CjIwNjtjb25mbGljdHMuYXQ6NTE4O3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNv bnNpc3RlbnQgZXJyb3JzOiBsci50eXBlPWllbHIgYysrO2MrKzsKMjA3O2NvbmZsaWN0cy5hdDo1 MjM7cGFyc2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLnR5cGU9aWVs ciBqYXZhO2phdmE7CjIwODtjb25mbGljdHMuYXQ6NTMwO3BhcnNlLmVycm9yPXZlcmJvc2UgYW5k IGNvbnNpc3RlbnQgZXJyb3JzOiBsci50eXBlPWllbHIgbHIuZGVmYXVsdC1yZWR1Y3Rpb249Y29u c2lzdGVudDs7CjIwOTtjb25mbGljdHMuYXQ6NTM1O3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNv bnNpc3RlbnQgZXJyb3JzOiBsci50eXBlPWllbHIgbHIuZGVmYXVsdC1yZWR1Y3Rpb249YWNjZXB0 aW5nOzsKMjEwO2NvbmZsaWN0cy5hdDo1NDA7cGFyc2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lz dGVudCBlcnJvcnM6IGxyLnR5cGU9Y2Fub25pY2FsLWxyOzsKMjExO2NvbmZsaWN0cy5hdDo1NDY7 cGFyc2UuZXJyb3I9dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLnR5cGU9Y2Fub25p Y2FsLWxyIHBhcnNlLmxhYz1mdWxsOzsKMjEyO2NvbmZsaWN0cy5hdDo1NTE7cGFyc2UuZXJyb3I9 dmVyYm9zZSBhbmQgY29uc2lzdGVudCBlcnJvcnM6IGxyLnR5cGU9aWVsciBwYXJzZS5sYWM9ZnVs bDs7CjIxMztjb25mbGljdHMuYXQ6NTU4O3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNvbnNpc3Rl bnQgZXJyb3JzOiBjKysgbHIudHlwZT1jYW5vbmljYWwtbHIgcGFyc2UubGFjPWZ1bGw7YysrOwoy MTQ7Y29uZmxpY3RzLmF0OjU2NDtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25zaXN0ZW50IGVy cm9yczogYysrIGxyLnR5cGU9aWVsciBwYXJzZS5sYWM9ZnVsbDtjKys7CjIxNTtjb25mbGljdHMu YXQ6NjIyO3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNvbnNpc3RlbnQgZXJyb3JzOiA7OwoyMTY7 Y29uZmxpY3RzLmF0OjYyNjtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25zaXN0ZW50IGVycm9y czogJWdsci1wYXJzZXI7Z2xyOwoyMTc7Y29uZmxpY3RzLmF0OjYzMjtwYXJzZS5lcnJvcj12ZXJi b3NlIGFuZCBjb25zaXN0ZW50IGVycm9yczogbHIuZGVmYXVsdC1yZWR1Y3Rpb249Y29uc2lzdGVu dDs7CjIxODtjb25mbGljdHMuYXQ6NjM4O3BhcnNlLmVycm9yPXZlcmJvc2UgYW5kIGNvbnNpc3Rl bnQgZXJyb3JzOiBsci5kZWZhdWx0LXJlZHVjdGlvbj1hY2NlcHRpbmc7OwoyMTk7Y29uZmxpY3Rz LmF0OjY0MjtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25zaXN0ZW50IGVycm9yczogbHIudHlw ZT1jYW5vbmljYWwtbHI7OwoyMjA7Y29uZmxpY3RzLmF0OjY0NztwYXJzZS5lcnJvcj12ZXJib3Nl IGFuZCBjb25zaXN0ZW50IGVycm9yczogcGFyc2UubGFjPWZ1bGw7OwoyMjE7Y29uZmxpY3RzLmF0 OjY1MTtwYXJzZS5lcnJvcj12ZXJib3NlIGFuZCBjb25zaXN0ZW50IGVycm9yczogcGFyc2UubGFj PWZ1bGwgbHIuZGVmYXVsdC1yZWR1Y3Rpb249YWNjZXB0aW5nOzsKMjIyO2NvbmZsaWN0cy5hdDo2 NzY7TEFDOiAlbm9uYXNzb2MgcmVxdWlyZXMgc3BsaXR0aW5nIGNhbm9uaWNhbCBMUiBzdGF0ZXM7 OwoyMjM7Y29uZmxpY3RzLmF0Ojc2NDtVbnJlc29sdmVkIFNSIENvbmZsaWN0cztjZXggcmVwb3J0 OwoyMjQ7Y29uZmxpY3RzLmF0Ojg4NztSZXNvbHZlZCBTUiBDb25mbGljdHM7cmVwb3J0OwoyMjU7 Y29uZmxpY3RzLmF0Ojk4OTslcHJlY2VkZW5jZSBzdWZmaWNlczs7CjIyNjtjb25mbGljdHMuYXQ6 MTAxNTslcHJlY2VkZW5jZSBkb2VzIG5vdCBzdWZmaWNlOzsKMjI3O2NvbmZsaWN0cy5hdDoxMDk2 O1N5bnRheCBlcnJvciBpbiBjb25zaXN0ZW50IGVycm9yIHN0YXRlOiB5YWNjLmM7OwoyMjg7Y29u ZmxpY3RzLmF0OjEwOTY7U3ludGF4IGVycm9yIGluIGNvbnNpc3RlbnQgZXJyb3Igc3RhdGU6IGds ci5jO2dscjsKMjI5O2NvbmZsaWN0cy5hdDoxMDk2O1N5bnRheCBlcnJvciBpbiBjb25zaXN0ZW50 IGVycm9yIHN0YXRlOiBsYWxyMS5jYztjKys7CjIzMDtjb25mbGljdHMuYXQ6MTA5NjtTeW50YXgg ZXJyb3IgaW4gY29uc2lzdGVudCBlcnJvciBzdGF0ZTogZ2xyLmNjO2dsciBjKys7CjIzMTtjb25m bGljdHMuYXQ6MTEyNztEZWZhdWx0ZWQgQ29uZmxpY3RlZCBSZWR1Y3Rpb247Y2V4IHJlcG9ydDsK MjMyO2NvbmZsaWN0cy5hdDoxMjY0OyVleHBlY3Qgbm90IGVub3VnaDs7CjIzMztjb25mbGljdHMu YXQ6MTI4NDslZXhwZWN0IHJpZ2h0OzsKMjM0O2NvbmZsaWN0cy5hdDoxMzAxOyVleHBlY3QgdG9v IG11Y2g7OwoyMzU7Y29uZmxpY3RzLmF0OjEzMjE7JWV4cGVjdCB3aXRoIHJlZHVjZSBjb25mbGlj dHM7OwoyMzY7Y29uZmxpY3RzLmF0OjEzNDE7JWV4cGVjdCBpbiBncmFtbWFyIHJ1bGUgbm90IGVu b3VnaDs7CjIzNztjb25mbGljdHMuYXQ6MTM2MDslZXhwZWN0IGluIGdyYW1tYXIgcnVsZSByaWdo dDs7CjIzODtjb25mbGljdHMuYXQ6MTM3NzslZXhwZWN0IGluIGdyYW1tYXIgcnVsZXM7OwoyMzk7 Y29uZmxpY3RzLmF0OjEzOTY7JWV4cGVjdCBpbiBncmFtbWFyIHJ1bGUgdG9vIG11Y2g7OwoyNDA7 Y29uZmxpY3RzLmF0OjE0MTU7JWV4cGVjdC1yciBpbiBncmFtbWFyIHJ1bGU7OwoyNDE7Y29uZmxp Y3RzLmF0OjE0NDA7JWV4cGVjdC1yciB0b28gbXVjaCBpbiBncmFtbWFyIHJ1bGU7OwoyNDI7Y29u ZmxpY3RzLmF0OjE0Njk7JWV4cGVjdC1yciBub3QgZW5vdWdoIGluIGdyYW1tYXIgcnVsZTs7CjI0 Mztjb25mbGljdHMuYXQ6MTQ5ODslcHJlYyB3aXRoIHVzZXIgc3RyaW5nOzsKMjQ0O2NvbmZsaWN0 cy5hdDoxNTE1OyVuby1kZWZhdWx0LXByZWMgd2l0aG91dCAlcHJlYzs7CjI0NTtjb25mbGljdHMu YXQ6MTU0NDslbm8tZGVmYXVsdC1wcmVjIHdpdGggJXByZWM7OwoyNDY7Y29uZmxpY3RzLmF0OjE1 Njg7JWRlZmF1bHQtcHJlYzs7CjI0Nztjb25mbGljdHMuYXQ6MTU5MjtVbnJlYWNoYWJsZSBTdGF0 ZXMgQWZ0ZXIgQ29uZmxpY3QgUmVzb2x1dGlvbjtjZXggcmVwb3J0OwoyNDg7Y29uZmxpY3RzLmF0 OjE4NTU7U29sdmVkIGNvbmZsaWN0cyByZXBvcnQgZm9yIG11bHRpcGxlIHJlZHVjdGlvbnMgaW4g YSBzdGF0ZTs7CjI0OTtjb25mbGljdHMuYXQ6MTkzNTslbm9uYXNzb2MgZXJyb3IgYWN0aW9ucyBm b3IgbXVsdGlwbGUgcmVkdWN0aW9ucyBpbiBhIHN0YXRlO2NleCByZXBvcnQ7CjI1MDtjb25mbGlj dHMuYXQ6MjAyMDslZXhwZWN0LXJyIG5vbiBHTFI7OwoyNTE7Y29uZmxpY3RzLmF0OjIwNTI7LVcg dmVyc3VzICVleHBlY3QgYW5kICVleHBlY3QtcnI7OwoyNTI7Y291bnRlcmV4YW1wbGUuYXQ6NDM7 VW5pZnlpbmcgUy9SO2NleDsKMjUzO2NvdW50ZXJleGFtcGxlLmF0OjgzO0RlZXAgVW5pZnlpbmcg Uy9SO2NleDsKMjU0O2NvdW50ZXJleGFtcGxlLmF0OjE0NDtTL1IgQ29uZmxpY3Qgd2l0aCBOdWxs YWJsZSBTeW1ib2xzO2NleDsKMjU1O2NvdW50ZXJleGFtcGxlLmF0OjIwNztOb24tdW5pZnlpbmcg QW1iaWd1b3VzIFMvUjtjZXg7CjI1Njtjb3VudGVyZXhhbXBsZS5hdDoyNTQ7Tm9uLXVuaWZ5aW5n IFVuYW1iaWd1b3VzIFMvUjtjZXg7CjI1Nztjb3VudGVyZXhhbXBsZS5hdDoyOTg7Uy9SIGFmdGVy IGZpcnN0IHRva2VuO2NleDsKMjU4O2NvdW50ZXJleGFtcGxlLmF0OjM2MztVbmlmeWluZyBSL1Ig Y291bnRlcmV4YW1wbGU7Y2V4OwoyNTk7Y291bnRlcmV4YW1wbGUuYXQ6Mzk5O05vbi11bmlmeWlu ZyBSL1IgTFIoMSkgY29uZmxpY3Q7Y2V4OwoyNjA7Y291bnRlcmV4YW1wbGUuYXQ6NDQxO05vbi11 bmlmeWluZyBSL1IgTFIoMikgY29uZmxpY3Q7Y2V4OwoyNjE7Y291bnRlcmV4YW1wbGUuYXQ6NDg4 O0NleCBTZWFyY2ggUHJlcGVuZDtjZXg7CjI2Mjtjb3VudGVyZXhhbXBsZS5hdDo1NTA7Ui9SIGNl eCB3aXRoIHByZWM7Y2V4OwoyNjM7Y291bnRlcmV4YW1wbGUuYXQ6NjEwO051bGwgbm9udGVybWlu YWxzO2NleDsKMjY0O2NvdW50ZXJleGFtcGxlLmF0Ojc5NztOb24tdW5pZnlpbmcgUHJlZml4IFNo YXJlO2NleDsKMjY1O2NvdW50ZXJleGFtcGxlLmF0Ojg0MjtEZWVwIE51bGwgVW5pZnlpbmc7Y2V4 OwoyNjY7Y291bnRlcmV4YW1wbGUuYXQ6ODg0O0RlZXAgTnVsbCBOb24tdW5pZnlpbmc7Y2V4Owoy Njc7c3luY2xpbmVzLmF0OjE5NDtQcm9sb2d1ZSBzeW5jbGluZTs7CjI2ODtzeW5jbGluZXMuYXQ6 MjE0OyV1bmlvbiBzeW5jbGluZTs7CjI2OTtzeW5jbGluZXMuYXQ6MjM3OyV1bmlvbiBuYW1lIHN5 bmNsaW5lOzsKMjcwO3N5bmNsaW5lcy5hdDoyNjQ7UG9zdHByb2xvZ3VlIHN5bmNsaW5lOzsKMjcx O3N5bmNsaW5lcy5hdDoyOTE7QWN0aW9uIHN5bmNsaW5lOzsKMjcyO3N5bmNsaW5lcy5hdDozMTA7 RXBpbG9ndWUgc3luY2xpbmU7OwoyNzM7c3luY2xpbmVzLmF0OjMyNzslY29kZSB0b3Agc3luY2xp bmU7OwoyNzQ7c3luY2xpbmVzLmF0OjM0NjslZGVzdHJ1Y3RvciBzeW5jbGluZTs7CjI3NTtzeW5j bGluZXMuYXQ6MzcwOyVwcmludGVyIHN5bmNsaW5lOzsKMjc2O3N5bmNsaW5lcy5hdDo0NDA7c3lu Y2xpbmUgZXNjYXBlczogeWFjYy5jOzsKMjc3O3N5bmNsaW5lcy5hdDo0NDA7c3luY2xpbmUgZXNj YXBlczogZ2xyLmM7Z2xyOwoyNzg7c3luY2xpbmVzLmF0OjQ0MDtzeW5jbGluZSBlc2NhcGVzOiBs YWxyMS5jYztjKys7CjI3OTtzeW5jbGluZXMuYXQ6NDQwO3N5bmNsaW5lIGVzY2FwZXM6IGdsci5j YztnbHIgYysrOwoyODA7c3luY2xpbmVzLmF0OjQ5Nzslbm8tbGluZXM6IHlhY2MuYzs7CjI4MTtz eW5jbGluZXMuYXQ6NDk3OyVuby1saW5lczogZ2xyLmM7Z2xyOwoyODI7c3luY2xpbmVzLmF0OjQ5 Nzslbm8tbGluZXM6IGxhbHIxLmNjOzsKMjgzO3N5bmNsaW5lcy5hdDo0OTc7JW5vLWxpbmVzOiBn bHIuY2M7Z2xyOwoyODQ7c3luY2xpbmVzLmF0OjUwNztPdXRwdXQgY29sdW1uczs7CjI4NTtoZWFk ZXJzLmF0OjU3O0ludmFsaWQgQ1BQIGd1YXJkczogIC0tZGVmaW5lcz1pbnB1dC9pbnB1dC5oOzsK Mjg2O2hlYWRlcnMuYXQ6NTg7SW52YWxpZCBDUFAgZ3VhcmRzOiAgLS1kZWZpbmVzPTlmb28uaDs7 CjI4NztoZWFkZXJzLmF0OjU5O0ludmFsaWQgQ1BQIGd1YXJkczogJWdsci1wYXJzZXIgLS1kZWZp bmVzPWlucHV0L2lucHV0Lmg7Z2xyOwoyODg7aGVhZGVycy5hdDo2MDtJbnZhbGlkIENQUCBndWFy ZHM6ICVnbHItcGFyc2VyIC0tZGVmaW5lcz05Zm9vLmg7Z2xyOwoyODk7aGVhZGVycy5hdDo2ODtl eHBvcnQgWVlMVFlQRTs7CjI5MDtoZWFkZXJzLmF0OjE3ODtTYW5lIGhlYWRlcnM6IDs7CjI5MTto ZWFkZXJzLmF0OjE3OTtTYW5lIGhlYWRlcnM6ICVsb2NhdGlvbnMgJWRlYnVnOzsKMjkyO2hlYWRl cnMuYXQ6MTgxO1NhbmUgaGVhZGVyczogJWdsci1wYXJzZXI7Z2xyOwoyOTM7aGVhZGVycy5hdDox ODI7U2FuZSBoZWFkZXJzOiAlbG9jYXRpb25zICVkZWJ1ZyAlZ2xyLXBhcnNlcjtnbHI7CjI5NDto ZWFkZXJzLmF0OjE4NDtTYW5lIGhlYWRlcnM6IGFwaS5wdXJlOzsKMjk1O2hlYWRlcnMuYXQ6MTg1 O1NhbmUgaGVhZGVyczogYXBpLnB1c2gtcHVsbD1ib3RoO3B1c2g7CjI5NjtoZWFkZXJzLmF0OjE4 NjtTYW5lIGhlYWRlcnM6IGFwaS5wdXJlIGFwaS5wdXNoLXB1bGw9Ym90aDtwdXNoOwoyOTc7aGVh ZGVycy5hdDoxODg7U2FuZSBoZWFkZXJzOiBjKys7YysrOwoyOTg7aGVhZGVycy5hdDoxODk7U2Fu ZSBoZWFkZXJzOiAlbG9jYXRpb25zICVkZWJ1ZyBjKys7YysrOwoyOTk7aGVhZGVycy5hdDoxOTA7 U2FuZSBoZWFkZXJzOiBjKysgYXBpLnZhbHVlLnR5cGU9dmFyaWFudCBwYXJzZS5hc3NlcnQ7Yysr OwozMDA7aGVhZGVycy5hdDoxOTI7U2FuZSBoZWFkZXJzOiAlbG9jYXRpb25zIGMrKyAlZ2xyLXBh cnNlcjtnbHIgYysrOwozMDE7aGVhZGVycy5hdDoyMDA7U2V2ZXJhbCBwYXJzZXJzO2dsciBjKysg cHVzaDsKMzAyO2FjdGlvbnMuYXQ6MjQ7TWlkcnVsZSBhY3Rpb25zOzsKMzAzO2FjdGlvbnMuYXQ6 NzI7VHlwZWQgbWlkcnVsZSBhY3Rpb25zOzsKMzA0O2FjdGlvbnMuYXQ6MTIyO0ltcGxpY2l0bHkg ZW1wdHkgcnVsZTs7CjMwNTthY3Rpb25zLmF0OjE3MjtJbnZhbGlkIHVzZXMgb2YgJWVtcHR5OzsK MzA2O2FjdGlvbnMuYXQ6MjQwO1ZhbGlkIHVzZXMgb2YgJWVtcHR5OzsKMzA3O2FjdGlvbnMuYXQ6 MjcwO0FkZCBtaXNzaW5nICVlbXB0eTs7CjMwODthY3Rpb25zLmF0OjM2NTtJbml0aWFsIGxvY2F0 aW9uOiB5YWNjLmMgOzsKMzA5O2FjdGlvbnMuYXQ6MzY2O0luaXRpYWwgbG9jYXRpb246IHlhY2Mu YyBhcGkucHVyZT1mdWxsOzsKMzEwO2FjdGlvbnMuYXQ6MzY3O0luaXRpYWwgbG9jYXRpb246IHlh Y2MuYyBhcGkucHVyZSAlcGFyc2UtcGFyYW0geyBpbnQgeCB9OzsKMzExO2FjdGlvbnMuYXQ6MzY4 O0luaXRpYWwgbG9jYXRpb246IHlhY2MuYyBhcGkucHVzaC1wdWxsPWJvdGg7cHVzaDsKMzEyO2Fj dGlvbnMuYXQ6MzY5O0luaXRpYWwgbG9jYXRpb246IHlhY2MuYyBhcGkucHVzaC1wdWxsPWJvdGgg YXBpLnB1cmU9ZnVsbDtwdXNoOwozMTM7YWN0aW9ucy5hdDozNzA7SW5pdGlhbCBsb2NhdGlvbjog Z2xyLmMgO2dscjsKMzE0O2FjdGlvbnMuYXQ6MzcxO0luaXRpYWwgbG9jYXRpb246IGdsci5jIGFw aS5wdXJlO2dscjsKMzE1O2FjdGlvbnMuYXQ6MzcyO0luaXRpYWwgbG9jYXRpb246IGxhbHIxLmNj IDtjKys7CjMxNjthY3Rpb25zLmF0OjM3MztJbml0aWFsIGxvY2F0aW9uOiBnbHIuY2MgO2dsciBj Kys7CjMxNzthY3Rpb25zLmF0OjM4MjtJbml0aWFsIGxvY2F0aW9uOiB5YWNjLmMgYXBpLnB1cmU9 ZnVsbDs7CjMxODthY3Rpb25zLmF0OjM5MztJbml0aWFsIGxvY2F0aW9uOiB5YWNjLmMgYXBpLnB1 cmU9ZnVsbDs7CjMxOTthY3Rpb25zLmF0OjQ3NztMb2NhdGlvbiBwcmludDogeWFjYy5jIDs7CjMy MDthY3Rpb25zLmF0OjQ3NztMb2NhdGlvbiBwcmludDogZ2xyLmMgO2dscjsKMzIxO2FjdGlvbnMu YXQ6NDc3O0xvY2F0aW9uIHByaW50OiBsYWxyMS5jYyA7YysrOwozMjI7YWN0aW9ucy5hdDo0Nzc7 TG9jYXRpb24gcHJpbnQ6IGdsci5jYyA7Z2xyIGMrKzsKMzIzO2FjdGlvbnMuYXQ6NDg3O0V4b3Rp YyBEb2xsYXJzOzsKMzI0O2FjdGlvbnMuYXQ6MTA0NjtQcmludGVycyBhbmQgRGVzdHJ1Y3RvcnM7 OwozMjU7YWN0aW9ucy5hdDoxMDQ3O1ByaW50ZXJzIGFuZCBEZXN0cnVjdG9ycyB3aXRoIHVuaW9u OzsKMzI2O2FjdGlvbnMuYXQ6MTA0OTtQcmludGVycyBhbmQgRGVzdHJ1Y3RvcnM6ICVnbHItcGFy c2VyO2dscjsKMzI3O2FjdGlvbnMuYXQ6MTA1MDtQcmludGVycyBhbmQgRGVzdHJ1Y3RvcnMgd2l0 aCB1bmlvbjogJWdsci1wYXJzZXI7Z2xyOwozMjg7YWN0aW9ucy5hdDoxMDUyO1ByaW50ZXJzIGFu ZCBEZXN0cnVjdG9yczogJWRlZmluZXMgbGFscjEuY2M7YysrOwozMjk7YWN0aW9ucy5hdDoxMDUz O1ByaW50ZXJzIGFuZCBEZXN0cnVjdG9ycyB3aXRoIHVuaW9uOiAlZGVmaW5lcyBsYWxyMS5jYztj Kys7CjMzMDthY3Rpb25zLmF0OjEwNTU7UHJpbnRlcnMgYW5kIERlc3RydWN0b3JzOiAlZGVmaW5l cyBnbHIuY2M7Z2xyIGMrKzsKMzMxO2FjdGlvbnMuYXQ6MTA1NjtQcmludGVycyBhbmQgRGVzdHJ1 Y3RvcnMgd2l0aCB1bmlvbjogJWRlZmluZXMgZ2xyLmNjO2dsciBjKys7CjMzMjthY3Rpb25zLmF0 OjEwNjc7RGVmYXVsdCB0YWdsZXNzICVwcmludGVyIGFuZCAlZGVzdHJ1Y3Rvcjs7CjMzMzthY3Rp b25zLmF0OjExNzA7RGVmYXVsdCB0YWdnZWQgYW5kIHBlci10eXBlICVwcmludGVyIGFuZCAlZGVz dHJ1Y3Rvcjs7CjMzNDthY3Rpb25zLmF0OjEzMDM7RGVmYXVsdCAlcHJpbnRlciBhbmQgJWRlc3Ry dWN0b3IgZm9yIHVzZXItZGVmaW5lZCBlbmQgdG9rZW47OwozMzU7YWN0aW9ucy5hdDoxNDI1O0Rl ZmF1bHQgJXByaW50ZXIgYW5kICVkZXN0cnVjdG9yIGFyZSBub3QgZm9yIGVycm9yIG9yICR1bmRl ZmluZWQ7OwozMzY7YWN0aW9ucy5hdDoxNTI4O0RlZmF1bHQgJXByaW50ZXIgYW5kICVkZXN0cnVj dG9yIGFyZSBub3QgZm9yICRhY2NlcHQ7OwozMzc7YWN0aW9ucy5hdDoxNTkyO0RlZmF1bHQgJXBy aW50ZXIgYW5kICVkZXN0cnVjdG9yIGZvciBtaWRydWxlIHZhbHVlczs7CjMzODthY3Rpb25zLmF0 OjE3Mzk7QCQgaW4gJWluaXRpYWwtYWN0aW9uIGltcGxpZXMgJWxvY2F0aW9uczs7CjMzOTthY3Rp b25zLmF0OjE3NDA7QCQgaW4gJWRlc3RydWN0b3IgaW1wbGllcyAlbG9jYXRpb25zOzsKMzQwO2Fj dGlvbnMuYXQ6MTc0MTtAJCBpbiAlcHJpbnRlciBpbXBsaWVzICVsb2NhdGlvbnM7OwozNDE7YWN0 aW9ucy5hdDoxODU1O1F1YWxpZmllZCAkJCBpbiBhY3Rpb25zOiB5YWNjLmM7OwozNDI7YWN0aW9u cy5hdDoxODU1O1F1YWxpZmllZCAkJCBpbiBhY3Rpb25zOiBnbHIuYztnbHI7CjM0MzthY3Rpb25z LmF0OjE4NTU7UXVhbGlmaWVkICQkIGluIGFjdGlvbnM6IGxhbHIxLmNjO2MrKzsKMzQ0O2FjdGlv bnMuYXQ6MTg1NTtRdWFsaWZpZWQgJCQgaW4gYWN0aW9uczogZ2xyLmNjO2dsciBjKys7CjM0NTth Y3Rpb25zLmF0OjE4NjI7RGVzdHJveWluZyBsb29rYWhlYWQgYXNzaWduZWQgYnkgc2VtYW50aWMg YWN0aW9uOzsKMzQ2O2FjdGlvbnMuYXQ6MTkxNztZWUJBQ0tVUDs7CjM0Nzt0eXBlcy5hdDoyNTsl dW5pb24gdnMuIGFwaS52YWx1ZS50eXBlOzsKMzQ4O3R5cGVzLmF0OjQ0OyV5YWNjIHZzLiBhcGku dmFsdWUudHlwZT11bmlvbjs7CjM0OTt0eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1ZS50eXBl PXtkb3VibGV9O2FwaS52YWx1ZS50eXBlOwozNTA7dHlwZXMuYXQ6MTM4O3lhY2MuYyBhcGkudmFs dWUudHlwZT17ZG91YmxlfSAlZGVmaW5lczthcGkudmFsdWUudHlwZTsKMzUxO3R5cGVzLmF0OjEz ODt5YWNjLmMgYXBpLnZhbHVlLnR5cGU9e3ZhcmlhbnR9O2FwaS52YWx1ZS50eXBlOwozNTI7dHlw ZXMuYXQ6MTM4O3lhY2MuYyBhcGkudmFsdWUudHlwZT17dmFyaWFudH0gJWRlZmluZXM7YXBpLnZh bHVlLnR5cGU7CjM1Mzt0eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1ZS50eXBlPXtzdHJ1Y3Qg Zm9vfTthcGkudmFsdWUudHlwZTsKMzU0O3R5cGVzLmF0OjEzODt5YWNjLmMgYXBpLnZhbHVlLnR5 cGU9e3N0cnVjdCBmb299ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlOwozNTU7dHlwZXMuYXQ6MTM4 O3lhY2MuYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGJhcn07YXBpLnZhbHVlLnR5cGU7CjM1Njt0 eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1ZS50eXBlPXtzdHJ1Y3QgYmFyfSAlZGVmaW5lczth cGkudmFsdWUudHlwZTsKMzU3O3R5cGVzLmF0OjEzODt5YWNjLmMgYXBpLnZhbHVlLnR5cGU9e3Vu aW9uIGZvb307YXBpLnZhbHVlLnR5cGU7CjM1ODt0eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1 ZS50eXBlPXt1bmlvbiBmb299ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlOwozNTk7dHlwZXMuYXQ6 MTM4O3lhY2MuYyAldW5pb24geyBmbG9hdCBmdmFsOyBpbnQgaXZhbDsgfTs7YXBpLnZhbHVlLnR5 cGU7CjM2MDt0eXBlcy5hdDoxMzg7eWFjYy5jICV1bmlvbiB7IGZsb2F0IGZ2YWw7IGludCBpdmFs OyB9OyAlZGVmaW5lczthcGkudmFsdWUudHlwZTsKMzYxO3R5cGVzLmF0OjEzODt5YWNjLmMgJXVu aW9uIGZvbyB7IGZsb2F0IGZ2YWw7IGludCBpdmFsOyB9OzthcGkudmFsdWUudHlwZTsKMzYyO3R5 cGVzLmF0OjEzODt5YWNjLmMgJXVuaW9uIGZvbyB7IGZsb2F0IGZ2YWw7IGludCBpdmFsOyB9OyAl ZGVmaW5lczthcGkudmFsdWUudHlwZTsKMzYzO3R5cGVzLmF0OjEzODt5YWNjLmMgYXBpLnZhbHVl LnVuaW9uLm5hbWU9Zm9vOyAldW5pb24geyBmbG9hdCBmdmFsOyBpbnQgaXZhbDsgfTs7YXBpLnZh bHVlLnR5cGU7CjM2NDt0eXBlcy5hdDoxMzg7eWFjYy5jIGFwaS52YWx1ZS51bmlvbi5uYW1lPWZv bzsgJXVuaW9uIHsgZmxvYXQgZnZhbDsgaW50IGl2YWw7IH07ICVkZWZpbmVzO2FwaS52YWx1ZS50 eXBlOwozNjU7dHlwZXMuYXQ6MTM4O3lhY2MuYyBhcGkudmFsdWUudHlwZT11bmlvbjthcGkudmFs dWUudHlwZTsKMzY2O3R5cGVzLmF0OjEzODt5YWNjLmMgYXBpLnZhbHVlLnR5cGU9dW5pb24gJWRl ZmluZXM7YXBpLnZhbHVlLnR5cGU7CjM2Nzt0eXBlcy5hdDoxMzg7Z2xyLmMgYXBpLnZhbHVlLnR5 cGU9e2RvdWJsZX07YXBpLnZhbHVlLnR5cGUgZ2xyOwozNjg7dHlwZXMuYXQ6MTM4O2dsci5jIGFw aS52YWx1ZS50eXBlPXtkb3VibGV9ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGdscjsKMzY5O3R5 cGVzLmF0OjEzODtnbHIuYyBhcGkudmFsdWUudHlwZT17dmFyaWFudH07YXBpLnZhbHVlLnR5cGUg Z2xyOwozNzA7dHlwZXMuYXQ6MTM4O2dsci5jIGFwaS52YWx1ZS50eXBlPXt2YXJpYW50fSAlZGVm aW5lczthcGkudmFsdWUudHlwZSBnbHI7CjM3MTt0eXBlcy5hdDoxMzg7Z2xyLmMgYXBpLnZhbHVl LnR5cGU9e3N0cnVjdCBmb299O2FwaS52YWx1ZS50eXBlIGdscjsKMzcyO3R5cGVzLmF0OjEzODtn bHIuYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGZvb30gJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUg Z2xyOwozNzM7dHlwZXMuYXQ6MTM4O2dsci5jIGFwaS52YWx1ZS50eXBlPXtzdHJ1Y3QgYmFyfTth cGkudmFsdWUudHlwZSBnbHI7CjM3NDt0eXBlcy5hdDoxMzg7Z2xyLmMgYXBpLnZhbHVlLnR5cGU9 e3N0cnVjdCBiYXJ9ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGdscjsKMzc1O3R5cGVzLmF0OjEz ODtnbHIuYyBhcGkudmFsdWUudHlwZT17dW5pb24gZm9vfTthcGkudmFsdWUudHlwZSBnbHI7CjM3 Njt0eXBlcy5hdDoxMzg7Z2xyLmMgYXBpLnZhbHVlLnR5cGU9e3VuaW9uIGZvb30gJWRlZmluZXM7 YXBpLnZhbHVlLnR5cGUgZ2xyOwozNzc7dHlwZXMuYXQ6MTM4O2dsci5jICV1bmlvbiB7IGZsb2F0 IGZ2YWw7IGludCBpdmFsOyB9OzthcGkudmFsdWUudHlwZSBnbHI7CjM3ODt0eXBlcy5hdDoxMzg7 Z2xyLmMgJXVuaW9uIHsgZmxvYXQgZnZhbDsgaW50IGl2YWw7IH07ICVkZWZpbmVzO2FwaS52YWx1 ZS50eXBlIGdscjsKMzc5O3R5cGVzLmF0OjEzODtnbHIuYyAldW5pb24gZm9vIHsgZmxvYXQgZnZh bDsgaW50IGl2YWw7IH07O2FwaS52YWx1ZS50eXBlIGdscjsKMzgwO3R5cGVzLmF0OjEzODtnbHIu YyAldW5pb24gZm9vIHsgZmxvYXQgZnZhbDsgaW50IGl2YWw7IH07ICVkZWZpbmVzO2FwaS52YWx1 ZS50eXBlIGdscjsKMzgxO3R5cGVzLmF0OjEzODtnbHIuYyBhcGkudmFsdWUudW5pb24ubmFtZT1m b287ICV1bmlvbiB7IGZsb2F0IGZ2YWw7IGludCBpdmFsOyB9OzthcGkudmFsdWUudHlwZSBnbHI7 CjM4Mjt0eXBlcy5hdDoxMzg7Z2xyLmMgYXBpLnZhbHVlLnVuaW9uLm5hbWU9Zm9vOyAldW5pb24g eyBmbG9hdCBmdmFsOyBpbnQgaXZhbDsgfTsgJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgZ2xyOwoz ODM7dHlwZXMuYXQ6MTM4O2dsci5jIGFwaS52YWx1ZS50eXBlPXVuaW9uO2FwaS52YWx1ZS50eXBl IGdscjsKMzg0O3R5cGVzLmF0OjEzODtnbHIuYyBhcGkudmFsdWUudHlwZT11bmlvbiAlZGVmaW5l czthcGkudmFsdWUudHlwZSBnbHI7CjM4NTt0eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZhbHVl LnR5cGU9e2RvdWJsZX07YXBpLnZhbHVlLnR5cGUgYysrOwozODY7dHlwZXMuYXQ6MTM4O2xhbHIx LmNjIGFwaS52YWx1ZS50eXBlPXtkb3VibGV9ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGMrKzsK Mzg3O3R5cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT17dmFyaWFudH07YXBpLnZh bHVlLnR5cGUgYysrOwozODg7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFwaS52YWx1ZS50eXBlPXt2 YXJpYW50fSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBjKys7CjM4OTt0eXBlcy5hdDoxMzg7bGFs cjEuY2MgYXBpLnZhbHVlLnR5cGU9e3N0cnVjdCBmb299O2FwaS52YWx1ZS50eXBlIGMrKzsKMzkw O3R5cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGZvb30gJWRlZmlu ZXM7YXBpLnZhbHVlLnR5cGUgYysrOwozOTE7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFwaS52YWx1 ZS50eXBlPXtzdHJ1Y3QgYmFyfTthcGkudmFsdWUudHlwZSBjKys7CjM5Mjt0eXBlcy5hdDoxMzg7 bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9e3N0cnVjdCBiYXJ9ICVkZWZpbmVzO2FwaS52YWx1ZS50 eXBlIGMrKzsKMzkzO3R5cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT17dW5pb24g Zm9vfTthcGkudmFsdWUudHlwZSBjKys7CjM5NDt0eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZh bHVlLnR5cGU9e3VuaW9uIGZvb30gJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgYysrOwozOTU7dHlw ZXMuYXQ6MTM4O2xhbHIxLmNjICV1bmlvbiB7IGZsb2F0IGZ2YWw7IGludCBpdmFsOyB9OzthcGku dmFsdWUudHlwZSBjKys7CjM5Njt0eXBlcy5hdDoxMzg7bGFscjEuY2MgJXVuaW9uIHsgZmxvYXQg ZnZhbDsgaW50IGl2YWw7IH07ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGMrKzsKMzk3O3R5cGVz LmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT11bmlvbjthcGkudmFsdWUudHlwZSBjKys7 CjM5ODt0eXBlcy5hdDoxMzg7bGFscjEuY2MgYXBpLnZhbHVlLnR5cGU9dW5pb24gJWRlZmluZXM7 YXBpLnZhbHVlLnR5cGUgYysrOwozOTk7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFwaS52YWx1ZS50 eXBlPXZhcmlhbnQ7YXBpLnZhbHVlLnR5cGUgYysrOwo0MDA7dHlwZXMuYXQ6MTM4O2xhbHIxLmNj IGFwaS52YWx1ZS50eXBlPXZhcmlhbnQgJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgYysrOwo0MDE7 dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFwaS52YWx1ZS50eXBlPXZhcmlhbnQ7YXBpLnZhbHVlLnR5 cGUgYysrOwo0MDI7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFwaS52YWx1ZS50eXBlPXZhcmlhbnQg JWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgYysrOwo0MDM7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjIGFw aS52YWx1ZS50eXBlPXZhcmlhbnQgYXBpLnRva2VuLmNvbnN0cnVjdG9yO2FwaS52YWx1ZS50eXBl IGMrKzsKNDA0O3R5cGVzLmF0OjEzODtsYWxyMS5jYyBhcGkudmFsdWUudHlwZT12YXJpYW50IGFw aS50b2tlbi5jb25zdHJ1Y3RvciAlZGVmaW5lczthcGkudmFsdWUudHlwZSBjKys7CjQwNTt0eXBl cy5hdDoxMzg7bGFscjEuY2MgJWNvZGUgcmVxdWlyZXMgeyAjaW5jbHVkZSA8bWVtb3J5PiB9IGFw aS52YWx1ZS50eXBlPXZhcmlhbnQ7YXBpLnZhbHVlLnR5cGUgYysrOwo0MDY7dHlwZXMuYXQ6MTM4 O2xhbHIxLmNjICVjb2RlIHJlcXVpcmVzIHsgI2luY2x1ZGUgPG1lbW9yeT4gfSBhcGkudmFsdWUu dHlwZT12YXJpYW50ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGMrKzsKNDA3O3R5cGVzLmF0OjEz ODtsYWxyMS5jYyAlY29kZSByZXF1aXJlcyB7ICNpbmNsdWRlIDxtZW1vcnk+IH0gYXBpLnZhbHVl LnR5cGU9dmFyaWFudCBhcGkudG9rZW4uY29uc3RydWN0b3I7YXBpLnZhbHVlLnR5cGUgYysrOwo0 MDg7dHlwZXMuYXQ6MTM4O2xhbHIxLmNjICVjb2RlIHJlcXVpcmVzIHsgI2luY2x1ZGUgPG1lbW9y eT4gfSBhcGkudmFsdWUudHlwZT12YXJpYW50IGFwaS50b2tlbi5jb25zdHJ1Y3RvciAlZGVmaW5l czthcGkudmFsdWUudHlwZSBjKys7CjQwOTt0eXBlcy5hdDoxMzg7bGFscjEuY2MgJWNvZGUgcmVx dWlyZXMgeyAjaW5jbHVkZSA8bWVtb3J5PiB9IGFwaS52YWx1ZS50eXBlPXZhcmlhbnQgYXBpLnRv a2VuLmNvbnN0cnVjdG9yO2FwaS52YWx1ZS50eXBlIGMrKzsKNDEwO3R5cGVzLmF0OjEzODtsYWxy MS5jYyAlY29kZSByZXF1aXJlcyB7ICNpbmNsdWRlIDxtZW1vcnk+IH0gYXBpLnZhbHVlLnR5cGU9 dmFyaWFudCBhcGkudG9rZW4uY29uc3RydWN0b3IgJWRlZmluZXM7YXBpLnZhbHVlLnR5cGUgYysr Owo0MTE7dHlwZXMuYXQ6MTM4O2dsci5jYyBhcGkudmFsdWUudHlwZT17ZG91YmxlfTthcGkudmFs dWUudHlwZSBnbHIgYysrOwo0MTI7dHlwZXMuYXQ6MTM4O2dsci5jYyBhcGkudmFsdWUudHlwZT17 ZG91YmxlfSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBnbHIgYysrOwo0MTM7dHlwZXMuYXQ6MTM4 O2dsci5jYyBhcGkudmFsdWUudHlwZT17dmFyaWFudH07YXBpLnZhbHVlLnR5cGUgZ2xyIGMrKzsK NDE0O3R5cGVzLmF0OjEzODtnbHIuY2MgYXBpLnZhbHVlLnR5cGU9e3ZhcmlhbnR9ICVkZWZpbmVz O2FwaS52YWx1ZS50eXBlIGdsciBjKys7CjQxNTt0eXBlcy5hdDoxMzg7Z2xyLmNjIGFwaS52YWx1 ZS50eXBlPXtzdHJ1Y3QgZm9vfTthcGkudmFsdWUudHlwZSBnbHIgYysrOwo0MTY7dHlwZXMuYXQ6 MTM4O2dsci5jYyBhcGkudmFsdWUudHlwZT17c3RydWN0IGZvb30gJWRlZmluZXM7YXBpLnZhbHVl LnR5cGUgZ2xyIGMrKzsKNDE3O3R5cGVzLmF0OjEzODtnbHIuY2MgYXBpLnZhbHVlLnR5cGU9e3N0 cnVjdCBiYXJ9O2FwaS52YWx1ZS50eXBlIGdsciBjKys7CjQxODt0eXBlcy5hdDoxMzg7Z2xyLmNj IGFwaS52YWx1ZS50eXBlPXtzdHJ1Y3QgYmFyfSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBnbHIg YysrOwo0MTk7dHlwZXMuYXQ6MTM4O2dsci5jYyBhcGkudmFsdWUudHlwZT17dW5pb24gZm9vfTth cGkudmFsdWUudHlwZSBnbHIgYysrOwo0MjA7dHlwZXMuYXQ6MTM4O2dsci5jYyBhcGkudmFsdWUu dHlwZT17dW5pb24gZm9vfSAlZGVmaW5lczthcGkudmFsdWUudHlwZSBnbHIgYysrOwo0MjE7dHlw ZXMuYXQ6MTM4O2dsci5jYyAldW5pb24geyBmbG9hdCBmdmFsOyBpbnQgaXZhbDsgfTs7YXBpLnZh bHVlLnR5cGUgZ2xyIGMrKzsKNDIyO3R5cGVzLmF0OjEzODtnbHIuY2MgJXVuaW9uIHsgZmxvYXQg ZnZhbDsgaW50IGl2YWw7IH07ICVkZWZpbmVzO2FwaS52YWx1ZS50eXBlIGdsciBjKys7CjQyMzt0 eXBlcy5hdDoxMzg7Z2xyLmNjIGFwaS52YWx1ZS50eXBlPXVuaW9uO2FwaS52YWx1ZS50eXBlIGds ciBjKys7CjQyNDt0eXBlcy5hdDoxMzg7Z2xyLmNjIGFwaS52YWx1ZS50eXBlPXVuaW9uICVkZWZp bmVzO2FwaS52YWx1ZS50eXBlIGdsciBjKys7CjQyNTt0eXBlcy5hdDozNzY7bGFscjEuY2M6IE5h bWVkICV1bmlvbjs7CjQyNjt0eXBlcy5hdDozNzY7Z2xyLmNjOiBOYW1lZCAldW5pb247Owo0Mjc7 c2Nhbm5lci5hdDozMzY7VG9rZW4gbnVtYmVyczogeWFjYy5jOzsKNDI4O3NjYW5uZXIuYXQ6MzM2 O1Rva2VuIG51bWJlcnM6IHlhY2MuYyBhcGkudG9rZW4ucmF3OzsKNDI5O3NjYW5uZXIuYXQ6MzM2 O1Rva2VuIG51bWJlcnM6IGdsci5jO2dscjsKNDMwO3NjYW5uZXIuYXQ6MzM2O1Rva2VuIG51bWJl cnM6IGdsci5jIGFwaS50b2tlbi5yYXc7Z2xyOwo0MzE7c2Nhbm5lci5hdDozMzY7VG9rZW4gbnVt YmVyczogbGFscjEuY2M7YysrOwo0MzI7c2Nhbm5lci5hdDozMzY7VG9rZW4gbnVtYmVyczogbGFs cjEuY2MgYXBpLnRva2VuLnJhdztjKys7CjQzMztzY2FubmVyLmF0OjMzNjtUb2tlbiBudW1iZXJz OiBnbHIuY2M7Z2xyIGMrKzsKNDM0O3NjYW5uZXIuYXQ6MzM2O1Rva2VuIG51bWJlcnM6IGdsci5j YyBhcGkudG9rZW4ucmF3O2dsciBjKys7CjQzNTtzY2FubmVyLmF0OjMzNjtUb2tlbiBudW1iZXJz OiBsYWxyMS5qYXZhO2phdmE7CjQzNjtzY2FubmVyLmF0OjMzNjtUb2tlbiBudW1iZXJzOiBsYWxy MS5qYXZhIGFwaS50b2tlbi5yYXc7amF2YTsKNDM3O3NjYW5uZXIuYXQ6MzM2O1Rva2VuIG51bWJl cnM6IGxhbHIxLmQ7ZDsKNDM4O3NjYW5uZXIuYXQ6MzM2O1Rva2VuIG51bWJlcnM6IGxhbHIxLmQg YXBpLnRva2VuLnJhdztkOwo0Mzk7c2Nhbm5lci5hdDozNDA7VG9rZW4gbnVtYmVyczogbGFscjEu Y2MgYXBpLnRva2VuLnJhdyBhcGkudmFsdWUudHlwZT12YXJpYW50IGFwaS50b2tlbi5jb25zdHJ1 Y3RvcjtjKys7CjQ0MDtjYWxjLmF0OjEwODI7Q2FsY3VsYXRvciBwYXJzZS50cmFjZSA7Owo0NDE7 Y2FsYy5hdDoxMDg0O0NhbGN1bGF0b3IgJWRlZmluZXMgOzsKNDQyO2NhbGMuYXQ6MTA4NTtDYWxj dWxhdG9yICVkZWJ1ZyAlbG9jYXRpb25zIDs7CjQ0MztjYWxjLmF0OjEwODY7Q2FsY3VsYXRvciAl bG9jYXRpb25zIGFwaS5sb2NhdGlvbi50eXBlPXtTcGFufSA7Owo0NDQ7Y2FsYy5hdDoxMDg4O0Nh bGN1bGF0b3IgJW5hbWUtcHJlZml4ICJjYWxjIiA7Owo0NDU7Y2FsYy5hdDoxMDg5O0NhbGN1bGF0 b3IgJXZlcmJvc2UgOzsKNDQ2O2NhbGMuYXQ6MTA5MDtDYWxjdWxhdG9yICV5YWNjIDs7CjQ0Nztj YWxjLmF0OjEwOTE7Q2FsY3VsYXRvciBwYXJzZS5lcnJvcj1kZXRhaWxlZCA7Owo0NDg7Y2FsYy5h dDoxMDkyO0NhbGN1bGF0b3IgcGFyc2UuZXJyb3I9dmVyYm9zZSA7Owo0NDk7Y2FsYy5hdDoxMDk0 O0NhbGN1bGF0b3IgYXBpLnB1cmU9ZnVsbCAlbG9jYXRpb25zIDs7CjQ1MDtjYWxjLmF0OjEwOTU7 Q2FsY3VsYXRvciBhcGkucHVzaC1wdWxsPWJvdGggYXBpLnB1cmU9ZnVsbCAlbG9jYXRpb25zIDtw dXNoOwo0NTE7Y2FsYy5hdDoxMDk2O0NhbGN1bGF0b3IgcGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWxv Y2F0aW9ucyA7Owo0NTI7Y2FsYy5hdDoxMDk4O0NhbGN1bGF0b3IgcGFyc2UuZXJyb3I9ZGV0YWls ZWQgJWxvY2F0aW9ucyAlZGVmaW5lcyBhcGkucHJlZml4PXtjYWxjfSAldmVyYm9zZSAleWFjYyA7 Owo0NTM7Y2FsYy5hdDoxMDk5O0NhbGN1bGF0b3IgcGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWxvY2F0 aW9ucyAlZGVmaW5lcyAlbmFtZS1wcmVmaXggImNhbGMiIGFwaS50b2tlbi5wcmVmaXg9e1RPS199 ICV2ZXJib3NlICV5YWNjIDs7CjQ1NDtjYWxjLmF0OjExMDE7Q2FsY3VsYXRvciAlZGVidWcgOzsK NDU1O2NhbGMuYXQ6MTEwMjtDYWxjdWxhdG9yIHBhcnNlLmVycm9yPWRldGFpbGVkICVkZWJ1ZyAl bG9jYXRpb25zICVkZWZpbmVzICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgJXlhY2MgOzsK NDU2O2NhbGMuYXQ6MTEwMztDYWxjdWxhdG9yIHBhcnNlLmVycm9yPWRldGFpbGVkICVkZWJ1ZyAl bG9jYXRpb25zICVkZWZpbmVzIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlICV5YWNjIDs7CjQ1 NztjYWxjLmF0OjExMDU7Q2FsY3VsYXRvciBhcGkucHVyZT1mdWxsIHBhcnNlLmVycm9yPWRldGFp bGVkICVkZWJ1ZyAlbG9jYXRpb25zICVkZWZpbmVzICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJv c2UgJXlhY2MgOzsKNDU4O2NhbGMuYXQ6MTEwNjtDYWxjdWxhdG9yIGFwaS5wdXNoLXB1bGw9Ym90 aCBhcGkucHVyZT1mdWxsIHBhcnNlLmVycm9yPWRldGFpbGVkICVkZWJ1ZyAlbG9jYXRpb25zICVk ZWZpbmVzIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlICV5YWNjIDtwdXNoOwo0NTk7Y2FsYy5h dDoxMTA4O0NhbGN1bGF0b3IgYXBpLnB1cmUgcGFyc2UuZXJyb3I9ZGV0YWlsZWQgJWRlYnVnICVs b2NhdGlvbnMgJWRlZmluZXMgYXBpLnByZWZpeD17Y2FsY30gJXZlcmJvc2UgJXlhY2MgJXBhcnNl LXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7 Owo0NjA7Y2FsYy5hdDoxMTEwO0NhbGN1bGF0b3IgJW5vLWxpbmVzIGFwaS5wdXJlIHBhcnNlLmVy cm9yPWRldGFpbGVkICVkZWJ1ZyAlbG9jYXRpb25zICVkZWZpbmVzIGFwaS5wcmVmaXg9e2NhbGN9 ICV2ZXJib3NlICV5YWNjICVwYXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUgKnJlc3VsdH17aW50 ICpjb3VudH17aW50ICpuZXJyc30gOzsKNDYxO2NhbGMuYXQ6MTExMTtDYWxjdWxhdG9yICVuby1s aW5lcyBhcGkucHVyZSBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyAlbG9jYXRpb25zICVkZWZp bmVzIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlICV5YWNjICVwYXJzZS1wYXJhbSB7c2VtYW50 aWNfdmFsdWUgKnJlc3VsdH17aW50ICpjb3VudH17aW50ICpuZXJyc30gOzsKNDYyO2NhbGMuYXQ6 MTExNDtDYWxjdWxhdG9yIHBhcnNlLmVycm9yPWN1c3RvbSA7Owo0NjM7Y2FsYy5hdDoxMTE1O0Nh bGN1bGF0b3IgcGFyc2UuZXJyb3I9Y3VzdG9tICVsb2NhdGlvbnMgYXBpLnByZWZpeD17Y2FsY30g OzsKNDY0O2NhbGMuYXQ6MTExNjtDYWxjdWxhdG9yIHBhcnNlLmVycm9yPWN1c3RvbSAlbG9jYXRp b25zIGFwaS5wcmVmaXg9e2NhbGN9ICVwYXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUgKnJlc3Vs dH17aW50ICpjb3VudH17aW50ICpuZXJyc30gOzsKNDY1O2NhbGMuYXQ6MTExNztDYWxjdWxhdG9y IHBhcnNlLmVycm9yPWN1c3RvbSAlbG9jYXRpb25zIGFwaS5wcmVmaXg9e2NhbGN9ICVwYXJzZS1w YXJhbSB7c2VtYW50aWNfdmFsdWUgKnJlc3VsdH17aW50ICpjb3VudH17aW50ICpuZXJyc30gYXBp LnB1c2gtcHVsbD1ib3RoIGFwaS5wdXJlPWZ1bGwgO3B1c2g7CjQ2NjtjYWxjLmF0OjExMTg7Q2Fs Y3VsYXRvciBwYXJzZS5lcnJvcj1jdXN0b20gJWxvY2F0aW9ucyBhcGkucHJlZml4PXtjYWxjfSAl cGFyc2UtcGFyYW0ge3NlbWFudGljX3ZhbHVlICpyZXN1bHR9e2ludCAqY291bnR9e2ludCAqbmVy cnN9IGFwaS5wdXNoLXB1bGw9Ym90aCBhcGkucHVyZT1mdWxsIHBhcnNlLmxhYz1mdWxsIDtwdXNo Owo0Njc7Y2FsYy5hdDoxMTI5O0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgIDtnbHI7CjQ2ODtjYWxj LmF0OjExMzE7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciAlZGVmaW5lcyA7Z2xyOwo0Njk7Y2FsYy5h dDoxMTMyO0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgJWxvY2F0aW9ucyA7Z2xyOwo0NzA7Y2FsYy5h dDoxMTMzO0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgJWxvY2F0aW9ucyBhcGkubG9jYXRpb24udHlw ZT17U3Bhbn0gO2dscjsKNDcxO2NhbGMuYXQ6MTEzNDtDYWxjdWxhdG9yICVnbHItcGFyc2VyICVu YW1lLXByZWZpeCAiY2FsYyIgO2dscjsKNDcyO2NhbGMuYXQ6MTEzNTtDYWxjdWxhdG9yICVnbHIt cGFyc2VyIGFwaS5wcmVmaXg9e2NhbGN9IDtnbHI7CjQ3MztjYWxjLmF0OjExMzY7Q2FsY3VsYXRv ciAlZ2xyLXBhcnNlciAldmVyYm9zZSA7Z2xyOwo0NzQ7Y2FsYy5hdDoxMTM3O0NhbGN1bGF0b3Ig JWdsci1wYXJzZXIgcGFyc2UuZXJyb3I9dmVyYm9zZSA7Z2xyOwo0NzU7Y2FsYy5hdDoxMTM5O0Nh bGN1bGF0b3IgJWdsci1wYXJzZXIgYXBpLnB1cmUgJWxvY2F0aW9ucyA7Z2xyOwo0NzY7Y2FsYy5h dDoxMTQwO0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgcGFyc2UuZXJyb3I9dmVyYm9zZSAlbG9jYXRp b25zIDtnbHI7CjQ3NztjYWxjLmF0OjExNDI7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciBwYXJzZS5l cnJvcj1jdXN0b20gJWxvY2F0aW9ucyAlZGVmaW5lcyAlbmFtZS1wcmVmaXggImNhbGMiICV2ZXJi b3NlIDtnbHI7CjQ3ODtjYWxjLmF0OjExNDM7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciBwYXJzZS5l cnJvcj1kZXRhaWxlZCAlbG9jYXRpb25zICVkZWZpbmVzICVuYW1lLXByZWZpeCAiY2FsYyIgJXZl cmJvc2UgO2dscjsKNDc5O2NhbGMuYXQ6MTE0NDtDYWxjdWxhdG9yICVnbHItcGFyc2VyIHBhcnNl LmVycm9yPXZlcmJvc2UgJWxvY2F0aW9ucyAlZGVmaW5lcyAlbmFtZS1wcmVmaXggImNhbGMiICV2 ZXJib3NlIDtnbHI7CjQ4MDtjYWxjLmF0OjExNDY7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciAlZGVi dWcgO2dscjsKNDgxO2NhbGMuYXQ6MTE0NztDYWxjdWxhdG9yICVnbHItcGFyc2VyIHBhcnNlLmVy cm9yPXZlcmJvc2UgJWRlYnVnICVsb2NhdGlvbnMgJWRlZmluZXMgJW5hbWUtcHJlZml4ICJjYWxj IiAldmVyYm9zZSA7Z2xyOwo0ODI7Y2FsYy5hdDoxMTQ4O0NhbGN1bGF0b3IgJWdsci1wYXJzZXIg cGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgJWxvY2F0aW9ucyAlZGVmaW5lcyBhcGkucHJlZml4 PXtjYWxjfSBhcGkudG9rZW4ucHJlZml4PXtUT0tffSAldmVyYm9zZSA7Z2xyOwo0ODM7Y2FsYy5h dDoxMTUwO0NhbGN1bGF0b3IgJWdsci1wYXJzZXIgYXBpLnB1cmUgcGFyc2UuZXJyb3I9dmVyYm9z ZSAlZGVidWcgJWxvY2F0aW9ucyAlZGVmaW5lcyAlbmFtZS1wcmVmaXggImNhbGMiICV2ZXJib3Nl IDtnbHI7CjQ4NDtjYWxjLmF0OjExNTI7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciBhcGkucHVyZSBw YXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyAlbG9jYXRpb25zICVkZWZpbmVzICVuYW1lLXByZWZp eCAiY2FsYyIgJXZlcmJvc2UgJXBhcnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtp bnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7Z2xyOwo0ODU7Y2FsYy5hdDoxMTUzO0NhbGN1bGF0b3Ig JWdsci1wYXJzZXIgYXBpLnB1cmUgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgJWxvY2F0aW9u cyAlZGVmaW5lcyBhcGkucHJlZml4PXtjYWxjfSAldmVyYm9zZSAlcGFyc2UtcGFyYW0ge3NlbWFu dGljX3ZhbHVlICpyZXN1bHR9e2ludCAqY291bnR9e2ludCAqbmVycnN9IDtnbHI7CjQ4NjtjYWxj LmF0OjExNTU7Q2FsY3VsYXRvciAlZ2xyLXBhcnNlciAlbm8tbGluZXMgYXBpLnB1cmUgcGFyc2Uu ZXJyb3I9dmVyYm9zZSAlZGVidWcgJWxvY2F0aW9ucyAlZGVmaW5lcyBhcGkucHJlZml4PXtjYWxj fSAldmVyYm9zZSAlcGFyc2UtcGFyYW0ge3NlbWFudGljX3ZhbHVlICpyZXN1bHR9e2ludCAqY291 bnR9e2ludCAqbmVycnN9IDtnbHI7CjQ4NztjYWxjLmF0OjExNjU7Q2FsY3VsYXRvciBsYWxyMS5j YyAlZGVmaW5lcyA7YysrOwo0ODg7Y2FsYy5hdDoxMTcwO0NhbGN1bGF0b3IgQysrICA7YysrOwo0 ODk7Y2FsYy5hdDoxMTcxO0NhbGN1bGF0b3IgQysrICVsb2NhdGlvbnMgO2MrKzsKNDkwO2NhbGMu YXQ6MTE3MjtDYWxjdWxhdG9yIEMrKyAlbG9jYXRpb25zICROT19FWENFUFRJT05TX0NYWEZMQUdT O2MrKzsKNDkxO2NhbGMuYXQ6MTE3MztDYWxjdWxhdG9yIEMrKyAlbG9jYXRpb25zIGFwaS5sb2Nh dGlvbi50eXBlPXtTcGFufSA7YysrOwo0OTI7Y2FsYy5hdDoxMTc0O0NhbGN1bGF0b3IgQysrICVk ZWZpbmVzICVsb2NhdGlvbnMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlbmFtZS1wcmVmaXggImNhbGMi ICV2ZXJib3NlIDtjKys7CjQ5MztjYWxjLmF0OjExNzY7Q2FsY3VsYXRvciBDKysgJWxvY2F0aW9u cyBwYXJzZS5lcnJvcj12ZXJib3NlIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlIDtjKys7CjQ5 NDtjYWxjLmF0OjExNzc7Q2FsY3VsYXRvciBDKysgJWxvY2F0aW9ucyBwYXJzZS5lcnJvcj12ZXJi b3NlICVkZWJ1ZyAlbmFtZS1wcmVmaXggImNhbGMiICV2ZXJib3NlIDtjKys7CjQ5NTtjYWxjLmF0 OjExNzk7Q2FsY3VsYXRvciBDKysgJWxvY2F0aW9ucyBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1 ZyBhcGkucHJlZml4PXtjYWxjfSAldmVyYm9zZSA7YysrOwo0OTY7Y2FsYy5hdDoxMTgwO0NhbGN1 bGF0b3IgQysrICVsb2NhdGlvbnMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgYXBpLnByZWZp eD17Y2FsY30gYXBpLnRva2VuLnByZWZpeD17VE9LX30gJXZlcmJvc2UgO2MrKzsKNDk3O2NhbGMu YXQ6MTE4MjtDYWxjdWxhdG9yIEMrKyAlZGVmaW5lcyAlbG9jYXRpb25zIHBhcnNlLmVycm9yPXZl cmJvc2UgJWRlYnVnICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgJXBhcnNlLXBhcmFtIHtz ZW1hbnRpY192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7YysrOwo0OTg7 Y2FsYy5hdDoxMTg0O0NhbGN1bGF0b3IgQysrIHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVnIGFw aS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlICVwYXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUgKnJl c3VsdH17aW50ICpjb3VudH17aW50ICpuZXJyc30gO2MrKzsKNDk5O2NhbGMuYXQ6MTE4NTtDYWxj dWxhdG9yIEMrKyAlZGVmaW5lcyAlbG9jYXRpb25zIHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVn IGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlICVwYXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUg KnJlc3VsdH17aW50ICpjb3VudH17aW50ICpuZXJyc30gO2MrKzsKNTAwO2NhbGMuYXQ6MTE4NztD YWxjdWxhdG9yIEMrKyAlZGVmaW5lcyAlbG9jYXRpb25zIGFwaS5sb2NhdGlvbi5maWxlPW5vbmUg O2MrKzsKNTAxO2NhbGMuYXQ6MTE4ODtDYWxjdWxhdG9yIEMrKyAlZGVmaW5lcyAlbG9jYXRpb25z IGFwaS5sb2NhdGlvbi5maWxlPSJteS1sb2NhdGlvbi5oaCIgO2MrKzsKNTAyO2NhbGMuYXQ6MTE5 MDtDYWxjdWxhdG9yIEMrKyAlbm8tbGluZXMgJWRlZmluZXMgJWxvY2F0aW9ucyBhcGkubG9jYXRp b24uZmlsZT0ibXktbG9jYXRpb24uaGgiIDtjKys7CjUwMztjYWxjLmF0OjExOTI7Q2FsY3VsYXRv ciBDKysgJWxvY2F0aW9ucyBwYXJzZS5sYWM9ZnVsbCBwYXJzZS5lcnJvcj12ZXJib3NlIDtjKys7 CjUwNDtjYWxjLmF0OjExOTM7Q2FsY3VsYXRvciBDKysgJWxvY2F0aW9ucyBwYXJzZS5sYWM9ZnVs bCBwYXJzZS5lcnJvcj1kZXRhaWxlZCA7YysrOwo1MDU7Y2FsYy5hdDoxMTk1O0NhbGN1bGF0b3Ig QysrIHBhcnNlLmVycm9yPWN1c3RvbSA7YysrOwo1MDY7Y2FsYy5hdDoxMTk2O0NhbGN1bGF0b3Ig QysrIHBhcnNlLmVycm9yPWN1c3RvbSAlbG9jYXRpb25zIGFwaS5wcmVmaXg9e2NhbGN9ICVwYXJz ZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUgKnJlc3VsdH17aW50ICpjb3VudH17aW50ICpuZXJyc30g O2MrKzsKNTA3O2NhbGMuYXQ6MTE5NztDYWxjdWxhdG9yIEMrKyBwYXJzZS5lcnJvcj1jdXN0b20g JWxvY2F0aW9ucyBhcGkucHJlZml4PXtjYWxjfSAlcGFyc2UtcGFyYW0ge3NlbWFudGljX3ZhbHVl ICpyZXN1bHR9e2ludCAqY291bnR9e2ludCAqbmVycnN9IHBhcnNlLmxhYz1mdWxsIDtjKys7CjUw ODtjYWxjLmF0OjEyMDY7Q2FsY3VsYXRvciBnbHIuY2MgO2dsciBjKys7CjUwOTtjYWxjLmF0OjEy MTE7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIgIDtnbHIgYysrOwo1MTA7Y2FsYy5hdDoxMjEy O0NhbGN1bGF0b3IgQysrICVnbHItcGFyc2VyICVsb2NhdGlvbnMgO2dsciBjKys7CjUxMTtjYWxj LmF0OjEyMTM7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIgJWxvY2F0aW9ucyBhcGkubG9jYXRp b24udHlwZT17U3Bhbn0gO2dsciBjKys7CjUxMjtjYWxjLmF0OjEyMTQ7Q2FsY3VsYXRvciBDKysg JWdsci1wYXJzZXIgJWRlZmluZXMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlbmFtZS1wcmVmaXggImNh bGMiICV2ZXJib3NlIDtnbHIgYysrOwo1MTM7Y2FsYy5hdDoxMjE1O0NhbGN1bGF0b3IgQysrICVn bHItcGFyc2VyIHBhcnNlLmVycm9yPXZlcmJvc2UgYXBpLnByZWZpeD17Y2FsY30gJXZlcmJvc2Ug O2dsciBjKys7CjUxNDtjYWxjLmF0OjEyMTc7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIgJWRl YnVnIDtnbHIgYysrOwo1MTU7Y2FsYy5hdDoxMjE5O0NhbGN1bGF0b3IgQysrICVnbHItcGFyc2Vy IHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVnICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2Ug O2dsciBjKys7CjUxNjtjYWxjLmF0OjEyMjA7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIgcGFy c2UuZXJyb3I9dmVyYm9zZSAlZGVidWcgJW5hbWUtcHJlZml4ICJjYWxjIiBhcGkudG9rZW4ucHJl Zml4PXtUT0tffSAldmVyYm9zZSA7Z2xyIGMrKzsKNTE3O2NhbGMuYXQ6MTIyMjtDYWxjdWxhdG9y IEMrKyAlZ2xyLXBhcnNlciAlbG9jYXRpb25zICVkZWZpbmVzIHBhcnNlLmVycm9yPXZlcmJvc2Ug JWRlYnVnICVuYW1lLXByZWZpeCAiY2FsYyIgJXZlcmJvc2UgJXBhcnNlLXBhcmFtIHtzZW1hbnRp Y192YWx1ZSAqcmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7Z2xyIGMrKzsKNTE4O2Nh bGMuYXQ6MTIyMztDYWxjdWxhdG9yIEMrKyAlZ2xyLXBhcnNlciAlbG9jYXRpb25zICVkZWZpbmVz IHBhcnNlLmVycm9yPXZlcmJvc2UgJWRlYnVnIGFwaS5wcmVmaXg9e2NhbGN9ICV2ZXJib3NlICVw YXJzZS1wYXJhbSB7c2VtYW50aWNfdmFsdWUgKnJlc3VsdH17aW50ICpjb3VudH17aW50ICpuZXJy c30gO2dsciBjKys7CjUxOTtjYWxjLmF0OjEyMjU7Q2FsY3VsYXRvciBDKysgJWdsci1wYXJzZXIg JW5vLWxpbmVzICVsb2NhdGlvbnMgJWRlZmluZXMgcGFyc2UuZXJyb3I9dmVyYm9zZSAlZGVidWcg YXBpLnByZWZpeD17Y2FsY30gJXZlcmJvc2UgJXBhcnNlLXBhcmFtIHtzZW1hbnRpY192YWx1ZSAq cmVzdWx0fXtpbnQgKmNvdW50fXtpbnQgKm5lcnJzfSA7Z2xyIGMrKzsKNTIwO2NhbGMuYXQ6MTIz NTtDYWxjdWxhdG9yIGxhbHIxLmQgO2Q7CjUyMTtjYWxjLmF0OjEyNDA7Q2FsY3VsYXRvciBEICA7 ZDsKNTIyO2NhbGMuYXQ6MTI0MTtDYWxjdWxhdG9yIEQgJWxvY2F0aW9ucyA7ZDsKNTIzO2NhbGMu YXQ6MTI0MztDYWxjdWxhdG9yIEQgcGFyc2UuZXJyb3I9dmVyYm9zZSBhcGkucHJlZml4PXtjYWxj fSAldmVyYm9zZSA7ZDsKNTI0O2NhbGMuYXQ6MTI0NTtDYWxjdWxhdG9yIEQgJWRlYnVnIDtkOwo1 MjU7Y2FsYy5hdDoxMjQ3O0NhbGN1bGF0b3IgRCBwYXJzZS5lcnJvcj12ZXJib3NlICVkZWJ1ZyAl dmVyYm9zZSA7ZDsKNTI2O2NhbGMuYXQ6MTI2MztDYWxjdWxhdG9yIEphdmEgIDtqYXZhOwo1Mjc7 Y2FsYy5hdDoxMjY0O0NhbGN1bGF0b3IgSmF2YSBwYXJzZS5lcnJvcj1jdXN0b20gO2phdmE7CjUy ODtjYWxjLmF0OjEyNjU7Q2FsY3VsYXRvciBKYXZhIHBhcnNlLmVycm9yPWRldGFpbGVkIDtqYXZh Owo1Mjk7Y2FsYy5hdDoxMjY2O0NhbGN1bGF0b3IgSmF2YSBwYXJzZS5lcnJvcj12ZXJib3NlIDtq YXZhOwo1MzA7Y2FsYy5hdDoxMjY3O0NhbGN1bGF0b3IgSmF2YSAlbG9jYXRpb25zIHBhcnNlLmVy cm9yPWN1c3RvbSA7amF2YTsKNTMxO2NhbGMuYXQ6MTI2ODtDYWxjdWxhdG9yIEphdmEgJWxvY2F0 aW9ucyBwYXJzZS5lcnJvcj1kZXRhaWxlZCA7amF2YTsKNTMyO2NhbGMuYXQ6MTI2OTtDYWxjdWxh dG9yIEphdmEgJWxvY2F0aW9ucyBwYXJzZS5lcnJvcj12ZXJib3NlIDtqYXZhOwo1MzM7Y2FsYy5h dDoxMjcwO0NhbGN1bGF0b3IgSmF2YSBwYXJzZS50cmFjZSBwYXJzZS5lcnJvcj12ZXJib3NlIDtq YXZhOwo1MzQ7Y2FsYy5hdDoxMjcxO0NhbGN1bGF0b3IgSmF2YSBwYXJzZS50cmFjZSBwYXJzZS5l cnJvcj12ZXJib3NlICVsb2NhdGlvbnMgJWxleC1wYXJhbSB7SW5wdXRTdHJlYW0gaXN9IDtqYXZh Owo1MzU7Y2FsYy5hdDoxMjczO0NhbGN1bGF0b3IgSmF2YSBhcGkucHVzaC1wdWxsPWJvdGggO3B1 c2ggamF2YTsKNTM2O2NhbGMuYXQ6MTI3NDtDYWxjdWxhdG9yIEphdmEgYXBpLnB1c2gtcHVsbD1i b3RoIHBhcnNlLmVycm9yPWRldGFpbGVkICVsb2NhdGlvbnMgO3B1c2ggamF2YTsKNTM3O2NhbGMu YXQ6MTI3NTtDYWxjdWxhdG9yIEphdmEgcGFyc2UudHJhY2UgcGFyc2UuZXJyb3I9Y3VzdG9tICVs b2NhdGlvbnMgJWxleC1wYXJhbSB7SW5wdXRTdHJlYW0gaXN9IGFwaS5wdXNoLXB1bGw9Ym90aCA7 cHVzaCBqYXZhOwo1Mzg7Y2FsYy5hdDoxMjc2O0NhbGN1bGF0b3IgSmF2YSBwYXJzZS50cmFjZSBw YXJzZS5lcnJvcj12ZXJib3NlICVsb2NhdGlvbnMgJWxleC1wYXJhbSB7SW5wdXRTdHJlYW0gaXN9 IGFwaS5wdXNoLXB1bGw9Ym90aCA7cHVzaCBqYXZhOwo1Mzk7dG9ydHVyZS5hdDoxMzI7QmlnIHRy aWFuZ2xlOzsKNTQwO3RvcnR1cmUuYXQ6MjE2O0JpZyBob3Jpem9udGFsOzsKNTQxO3RvcnR1cmUu YXQ6MjcwO1N0YXRlIG51bWJlciB0eXBlOiAxMjggc3RhdGVzOzsKNTQyO3RvcnR1cmUuYXQ6Mjcx O1N0YXRlIG51bWJlciB0eXBlOiAxMjkgc3RhdGVzOzsKNTQzO3RvcnR1cmUuYXQ6MjcyO1N0YXRl IG51bWJlciB0eXBlOiAyNTYgc3RhdGVzOzsKNTQ0O3RvcnR1cmUuYXQ6MjczO1N0YXRlIG51bWJl ciB0eXBlOiAyNTcgc3RhdGVzOzsKNTQ1O3RvcnR1cmUuYXQ6Mjc0O1N0YXRlIG51bWJlciB0eXBl OiAzMjc2OCBzdGF0ZXM7Owo1NDY7dG9ydHVyZS5hdDoyNzU7U3RhdGUgbnVtYmVyIHR5cGU6IDY1 NTM2IHN0YXRlczs7CjU0Nzt0b3J0dXJlLmF0OjI3NjtTdGF0ZSBudW1iZXIgdHlwZTogNjU1Mzcg c3RhdGVzOzsKNTQ4O3RvcnR1cmUuYXQ6Mzg1O01hbnkgbG9va2FoZWFkIHRva2Vuczs7CjU0OTt0 b3J0dXJlLmF0OjQ4NTtFeHBsb2RpbmcgdGhlIFN0YWNrIFNpemUgd2l0aCBBbGxvY2E7cHVzaDsK NTUwO3RvcnR1cmUuYXQ6NTMxO0V4cGxvZGluZyB0aGUgU3RhY2sgU2l6ZSB3aXRoIE1hbGxvYztw dXNoOwo1NTE7ZXhpc3RpbmcuYXQ6NzQ7R05VIEFXSyAzLjEuMCBHcmFtbWFyOiBMQUxSKDEpOzsK NTUyO2V4aXN0aW5nLmF0Ojc0O0dOVSBBV0sgMy4xLjAgR3JhbW1hcjogSUVMUigxKTs7CjU1Mztl eGlzdGluZy5hdDo3NDtHTlUgQVdLIDMuMS4wIEdyYW1tYXI6IENhbm9uaWNhbCBMUigxKTs7CjU1 NDtleGlzdGluZy5hdDo4MDg7R05VIENpbSBHcmFtbWFyOiBMQUxSKDEpOzsKNTU1O2V4aXN0aW5n LmF0OjgwODtHTlUgQ2ltIEdyYW1tYXI6IElFTFIoMSk7Owo1NTY7ZXhpc3RpbmcuYXQ6ODA4O0dO VSBDaW0gR3JhbW1hcjogQ2Fub25pY2FsIExSKDEpOzsKNTU3O2V4aXN0aW5nLmF0OjE0NjA7R05V IHBpYyAoR3JvZmYgMS4xOC4xKSBHcmFtbWFyOiBMQUxSKDEpOzsKNTU4O2V4aXN0aW5nLmF0OjE0 NjA7R05VIHBpYyAoR3JvZmYgMS4xOC4xKSBHcmFtbWFyOiBJRUxSKDEpOzsKNTU5O2V4aXN0aW5n LmF0OjE0NjA7R05VIHBpYyAoR3JvZmYgMS4xOC4xKSBHcmFtbWFyOiBDYW5vbmljYWwgTFIoMSk7 Owo1NjA7cmVncmVzc2lvbi5hdDoyNTtUcml2aWFsIGdyYW1tYXJzOzsKNTYxO3JlZ3Jlc3Npb24u YXQ6NTU7WVlTVFlQRSB0eXBlZGVmOzsKNTYyO3JlZ3Jlc3Npb24uYXQ6ODU7RWFybHkgdG9rZW4g ZGVmaW5pdGlvbnMgd2l0aCAtLXlhY2M7Owo1NjM7cmVncmVzc2lvbi5hdDoxMjc7RWFybHkgdG9r ZW4gZGVmaW5pdGlvbnMgd2l0aG91dCAtLXlhY2M7Owo1NjQ7cmVncmVzc2lvbi5hdDoxNzM7QnJh Y2VzIHBhcnNpbmc7Owo1NjU7cmVncmVzc2lvbi5hdDoxOTY7UnVsZSBMaW5lIE51bWJlcnM7cmVw b3J0Owo1NjY7cmVncmVzc2lvbi5hdDozNDU7TWl4aW5nICV0b2tlbiBzdHlsZXM7Owo1Njc7cmVn cmVzc2lvbi5hdDo0Mzc7VG9rZW4gZGVmaW5pdGlvbnM6IHBhcnNlLmVycm9yPWRldGFpbGVkOzsK NTY4O3JlZ3Jlc3Npb24uYXQ6NDM4O1Rva2VuIGRlZmluaXRpb25zOiBwYXJzZS5lcnJvcj12ZXJi b3NlOzsKNTY5O3JlZ3Jlc3Npb24uYXQ6NDQ3O0NoYXJhY3RlcnMgRXNjYXBlczs7CjU3MDtyZWdy ZXNzaW9uLmF0OjQ4MDtXZWIyYyBSZXBvcnQ7cmVwb3J0Owo1NzE7cmVncmVzc2lvbi5hdDo2NjE7 V2ViMmMgQWN0aW9ucztyZXBvcnQ7CjU3MjtyZWdyZXNzaW9uLmF0Ojg1MTtEYW5jZXIgOzsKNTcz O3JlZ3Jlc3Npb24uYXQ6ODUyO0RhbmNlciAlZ2xyLXBhcnNlcjtnbHI7CjU3NDtyZWdyZXNzaW9u LmF0Ojg1MztEYW5jZXIgbGFscjEuY2M7YysrOwo1NzU7cmVncmVzc2lvbi5hdDo5Mjg7RXhwZWN0 aW5nIHR3byB0b2tlbnMgOzsKNTc2O3JlZ3Jlc3Npb24uYXQ6OTI5O0V4cGVjdGluZyB0d28gdG9r ZW5zICVnbHItcGFyc2VyO2dscjsKNTc3O3JlZ3Jlc3Npb24uYXQ6OTMwO0V4cGVjdGluZyB0d28g dG9rZW5zIGxhbHIxLmNjO2MrKzsKNTc4O3JlZ3Jlc3Npb24uYXQ6OTM4O0JyYWNlZCBjb2RlIGlu IGRlY2xhcmF0aW9uIGluIHJ1bGVzIHNlY3Rpb247Owo1Nzk7cmVncmVzc2lvbi5hdDo5OTk7U3Ry aW5nIGFsaWFzIGRlY2xhcmVkIGFmdGVyIHVzZTs7CjU4MDtyZWdyZXNzaW9uLmF0OjEwMjI7RXh0 cmEgbG9va2FoZWFkIHNldHMgaW4gcmVwb3J0OzsKNTgxO3JlZ3Jlc3Npb24uYXQ6MTA2MztUb2tl biBudW1iZXIgaW4gcHJlY2VkZW5jZSBkZWNsYXJhdGlvbjs7CjU4MjtyZWdyZXNzaW9uLmF0OjEx MTY7cGFyc2UtZ3JhbS55OiBMQUxSID0gSUVMUjs7CjU4MztyZWdyZXNzaW9uLmF0OjExMzg7cGFy c2UuZXJyb3I9dmVyYm9zZSBhbmQgWVlTVEFDS19VU0VfQUxMT0NBOzsKNTg0O3JlZ3Jlc3Npb24u YXQ6MTIxMjtwYXJzZS5lcnJvcj12ZXJib3NlIG92ZXJmbG93OzsKNTg1O3JlZ3Jlc3Npb24uYXQ6 MTMzNjtMQUM6IEV4cGxvcmF0b3J5IHN0YWNrO2xhYyBwdXNoIGMrKzsKNTg2O3JlZ3Jlc3Npb24u YXQ6MTQyMjtMQUM6IE1lbW9yeSBleGhhdXN0aW9uO2xhYzsKNTg3O3JlZ3Jlc3Npb24uYXQ6MTU1 NjtMZXggYW5kIHBhcnNlIHBhcmFtczogeWFjYy5jOzsKNTg4O3JlZ3Jlc3Npb24uYXQ6MTU1NztM ZXggYW5kIHBhcnNlIHBhcmFtczogZ2xyLmM7Z2xyOwo1ODk7cmVncmVzc2lvbi5hdDoxNTU4O0xl eCBhbmQgcGFyc2UgcGFyYW1zOiBsYWxyMS5jYztjKys7CjU5MDtyZWdyZXNzaW9uLmF0OjE1NTk7 TGV4IGFuZCBwYXJzZSBwYXJhbXM6IGdsci5jYztnbHIgYysrOwo1OTE7cmVncmVzc2lvbi5hdDox NTcwO3N0ZGlvLmggaXMgbm90IG5lZWRlZDs7CjU5MjtwdXNoLmF0OjI1O01lbW9yeSBMZWFrIGZv ciBFYXJseSBEZWxldGlvbjs7CjU5MztwdXNoLmF0Ojg0O011bHRpcGxlIGltcHVyZSBpbnN0YW5j ZXM7Owo1OTQ7cHVzaC5hdDoxNDU7VW5zdXBwb3J0ZWQgU2tlbGV0b25zOzsKNTk1O2MrKy5hdDoy NjtDKysgTG9jYXRpb25zIFVuaXQgVGVzdHM7YysrOwo1OTY7YysrLmF0OjEwNztDKysgVmFyaWFu dC1iYXNlZCBTeW1ib2xzIFVuaXQgVGVzdHM7dmFyaWFudCBjKys7CjU5NztjKysuYXQ6MjQ3O011 bHRpcGxlIG9jY3VycmVuY2VzIG9mICRuIGFuZCBhcGkudmFsdWUuYXV0b21vdmU7Owo1OTg7Yysr LmF0OjU2NjtWYXJpYW50cyBsYWxyMS5jYzt2YXJpYW50IGMrKzsKNTk5O2MrKy5hdDo1Njc7VmFy aWFudHMgbGFscjEuY2MgcGFyc2UuYXNzZXJ0O3ZhcmlhbnQgYysrOwo2MDA7YysrLmF0OjU2ODtW YXJpYW50cyBsYWxyMS5jYyBwYXJzZS5hc3NlcnQgYXBpLnZhbHVlLmF1dG9tb3ZlO3ZhcmlhbnQg YysrOwo2MDE7YysrLmF0OjU2OTtWYXJpYW50cyBsYWxyMS5jYyBwYXJzZS5hc3NlcnQgJWxvY2F0 aW9uczt2YXJpYW50IGMrKzsKNjAyO2MrKy5hdDo1NzA7VmFyaWFudHMgbGFscjEuY2MgcGFyc2Uu YXNzZXJ0ICVjb2RlIHtcbiNkZWZpbmUgVFdPX1NUQUdFX0JVSUxEXG59O3ZhcmlhbnQgYysrOwo2 MDM7YysrLmF0OjU3MTtWYXJpYW50cyBsYWxyMS5jYyBwYXJzZS5hc3NlcnQgYXBpLnRva2VuLmNv bnN0cnVjdG9yO3ZhcmlhbnQgYysrOwo2MDQ7YysrLmF0OjU3MjtWYXJpYW50cyBsYWxyMS5jYyBw YXJzZS5hc3NlcnQgYXBpLnRva2VuLmNvbnN0cnVjdG9yIGFwaS50b2tlbi5wcmVmaXg9e1RPS199 O3ZhcmlhbnQgYysrOwo2MDU7YysrLmF0OjU3MztWYXJpYW50cyBsYWxyMS5jYyBwYXJzZS5hc3Nl cnQgYXBpLnRva2VuLmNvbnN0cnVjdG9yIGFwaS50b2tlbi5wcmVmaXg9e1RPS199ICVsb2NhdGlv bnM7dmFyaWFudCBjKys7CjYwNjtjKysuYXQ6NTc0O1ZhcmlhbnRzIGxhbHIxLmNjIHBhcnNlLmFz c2VydCBhcGkudG9rZW4uY29uc3RydWN0b3IgYXBpLnRva2VuLnByZWZpeD17VE9LX30gJWxvY2F0 aW9ucyBhcGkudmFsdWUuYXV0b21vdmU7dmFyaWFudCBjKys7CjYwNztjKysuYXQ6NTg0O1Zhcmlh bnRzIGFuZCBUeXBlZCBNaWRydWxlIEFjdGlvbnM7YysrOwo2MDg7YysrLmF0Ojc5NDtEb3h5Z2Vu IFB1YmxpYyBEb2N1bWVudGF0aW9uOzsKNjA5O2MrKy5hdDo3OTU7RG94eWdlbiBQcml2YXRlIERv Y3VtZW50YXRpb247Owo2MTA7YysrLmF0Ojg0ODtSZWxhdGl2ZSBuYW1lc3BhY2UgcmVmZXJlbmNl cztjKys7CjYxMTtjKysuYXQ6ODU0O0Fic29sdXRlIG5hbWVzcGFjZSByZWZlcmVuY2VzO2MrKzsK NjEyO2MrKy5hdDo4NjM7U3ludGFjdGljYWxseSBpbnZhbGlkIG5hbWVzcGFjZSByZWZlcmVuY2Vz OzsKNjEzO2MrKy5hdDo4ODQ7U3ludGF4IGVycm9yIGRpc2NhcmRpbmcgbm8gbG9va2FoZWFkO2Mr KzsKNjE0O2MrKy5hdDoxMDYzO1N5bnRheCBlcnJvciBhcyBleGNlcHRpb246IGxhbHIxLmNjO2Mr KzsKNjE1O2MrKy5hdDoxMDY0O1N5bnRheCBlcnJvciBhcyBleGNlcHRpb246IGdsci5jYztnbHIg YysrOwo2MTY7YysrLmF0OjEzNTg7RXhjZXB0aW9uIHNhZmV0eSB3aXRoIGVycm9yIHJlY292ZXJ5 IDtjKys7CjYxNztjKysuYXQ6MTM1OTtFeGNlcHRpb24gc2FmZXR5IHdpdGhvdXQgZXJyb3IgcmVj b3ZlcnkgO2MrKzsKNjE4O2MrKy5hdDoxMzYwO0V4Y2VwdGlvbiBzYWZldHkgd2l0aCBlcnJvciBy ZWNvdmVyeSBhcGkudmFsdWUudHlwZT12YXJpYW50O2MrKzsKNjE5O2MrKy5hdDoxMzYxO0V4Y2Vw dGlvbiBzYWZldHkgd2l0aG91dCBlcnJvciByZWNvdmVyeSBhcGkudmFsdWUudHlwZT12YXJpYW50 O2MrKzsKNjIwO2MrKy5hdDoxMzY5O0MrKyBHTFIgcGFyc2VyIGlkZW50aWZpZXIgc2hhZG93aW5n O2MrKzsKNjIxO2MrKy5hdDoxNDIwO1NoYXJlZCBsb2NhdGlvbnM7YysrOwo2MjI7YysrLmF0OjE1 MTU7RGVmYXVsdCBhY3Rpb247YWN0aW9uIGMrKzsKNjIzO2phdmEuYXQ6MjU7SmF2YSBpbnZhbGlk IGRpcmVjdGl2ZXM7Owo2MjQ7amF2YS5hdDoxNzE7SmF2YSBwYXJzZXIgY2xhc3MgYW5kIHBhY2th Z2UgbmFtZXM7amF2YTsKNjI1O2phdmEuYXQ6MjAyO0phdmEgcGFyc2VyIGNsYXNzIG1vZGlmaWVy cztqYXZhOwo2MjY7amF2YS5hdDoyNzI7SmF2YSBwYXJzZXIgY2xhc3MgZXh0ZW5kcyBhbmQgaW1w bGVtZW50cztqYXZhOwo2Mjc7amF2YS5hdDoyOTI7SmF2YSAlcGFyc2UtcGFyYW0gYW5kICVsZXgt cGFyYW07amF2YTsKNjI4O2phdmEuYXQ6MzY2O0phdmEgdGhyb3dzIHNwZWNpZmljYXRpb25zO2ph dmE7CjYyOTtqYXZhLmF0OjQ1NTtKYXZhIGNvbnN0cnVjdG9yIGluaXQgYW5kIGluaXRfdGhyb3dz O2phdmE7CjYzMDtqYXZhLmF0OjQ4MjtKYXZhIHZhbHVlLCBwb3NpdGlvbiwgYW5kIGxvY2F0aW9u IHR5cGVzO2phdmE7CjYzMTtqYXZhLmF0OjUxMztKYXZhIHN5bnRheCBlcnJvciBoYW5kbGluZyB3 aXRob3V0IGVycm9yIHRva2VuO2phdmE7CjYzMjtqYXZhcHVzaC5hdDoxNzI7VHJpdmlhbCBQdXNo IFBhcnNlciB3aXRoIGFwaS5wdXNoLXB1bGwgdmVyaWZpY2F0aW9uO2phdmE7CjYzMztqYXZhcHVz aC5hdDoyMTc7VHJpdmlhbCBQdXNoIFBhcnNlciB3aXRoICVpbml0aWFsLWFjdGlvbjtqYXZhOwo2 MzQ7Y3h4LXR5cGUuYXQ6MzkwO0dMUjogUmVzb2x2ZSBhbWJpZ3VpdHksIGltcHVyZSwgbm8gbG9j YXRpb25zO2dscjsKNjM1O2N4eC10eXBlLmF0OjM5NztHTFI6IFJlc29sdmUgYW1iaWd1aXR5LCBp bXB1cmUsIGxvY2F0aW9ucztnbHI7CjYzNjtjeHgtdHlwZS5hdDo0MDM7R0xSOiBSZXNvbHZlIGFt YmlndWl0eSwgcHVyZSwgbm8gbG9jYXRpb25zO2dscjsKNjM3O2N4eC10eXBlLmF0OjQxMDtHTFI6 IFJlc29sdmUgYW1iaWd1aXR5LCBwdXJlLCBsb2NhdGlvbnM7Z2xyOwo2Mzg7Y3h4LXR5cGUuYXQ6 NDE3O0dMUjogTWVyZ2UgY29uZmxpY3RpbmcgcGFyc2VzLCBpbXB1cmUsIG5vIGxvY2F0aW9ucztn bHI7CjYzOTtjeHgtdHlwZS5hdDo0MjQ7R0xSOiBNZXJnZSBjb25mbGljdGluZyBwYXJzZXMsIGlt cHVyZSwgbG9jYXRpb25zO2dscjsKNjQwO2N4eC10eXBlLmF0OjQzMTtHTFI6IE1lcmdlIGNvbmZs aWN0aW5nIHBhcnNlcywgcHVyZSwgbm8gbG9jYXRpb25zO2dscjsKNjQxO2N4eC10eXBlLmF0OjQz NztHTFI6IE1lcmdlIGNvbmZsaWN0aW5nIHBhcnNlcywgcHVyZSwgbG9jYXRpb25zO2dscjsKNjQy O2N4eC10eXBlLmF0OjQ0NDtHTFI6IFZlcmJvc2UgbWVzc2FnZXMsIHJlc29sdmUgYW1iaWd1aXR5 LCBpbXB1cmUsIG5vIGxvY2F0aW9ucztnbHI7CjY0MztnbHItcmVncmVzc2lvbi5hdDoyNTtCYWRs eSBDb2xsYXBzZWQgR0xSIFN0YXRlczs7CjY0NDtnbHItcmVncmVzc2lvbi5hdDoxMTM7SW1wcm9w ZXIgaGFuZGxpbmcgb2YgZW1iZWRkZWQgYWN0aW9ucyBhbmQgZG9sbGFyKC1OKSBpbiBHTFIgcGFy c2Vyczs7CjY0NTtnbHItcmVncmVzc2lvbi5hdDoyNTA7SW1wcm9wZXIgbWVyZ2luZyBvZiBHTFIg ZGVsYXllZCBhY3Rpb24gc2V0czs7CjY0NjtnbHItcmVncmVzc2lvbi5hdDozNzM7RHVwbGljYXRl IHJlcHJlc2VudGF0aW9uIG9mIG1lcmdlZCB0cmVlczs7CjY0NztnbHItcmVncmVzc2lvbi5hdDo0 NjY7VXNlciBkZXN0cnVjdG9yIGZvciB1bnJlc29sdmVkIEdMUiBzZW1hbnRpYyB2YWx1ZTs7CjY0 ODtnbHItcmVncmVzc2lvbi5hdDo1MjQ7VXNlciBkZXN0cnVjdG9yIGFmdGVyIGFuIGVycm9yIGR1 cmluZyBhIHNwbGl0IHBhcnNlOzsKNjQ5O2dsci1yZWdyZXNzaW9uLmF0OjU3NjtEdXBsaWNhdGVk IHVzZXIgZGVzdHJ1Y3RvciBmb3IgbG9va2FoZWFkOzsKNjUwO2dsci1yZWdyZXNzaW9uLmF0OjY2 NztJbmNvcnJlY3RseSBpbml0aWFsaXplZCBsb2NhdGlvbiBmb3IgZW1wdHkgcmlnaHQtaGFuZCBz aWRlIGluIEdMUjs7CjY1MTtnbHItcmVncmVzc2lvbi5hdDo3NTg7Tm8gdXNlcnMgZGVzdHJ1Y3Rv cnMgaWYgc3RhY2sgMCBkZWxldGVkOzsKNjUyO2dsci1yZWdyZXNzaW9uLmF0OjgzNztDb3JydXB0 ZWQgc2VtYW50aWMgb3B0aW9ucyBpZiB1c2VyIGFjdGlvbiBjdXRzIHBhcnNlOzsKNjUzO2dsci1y ZWdyZXNzaW9uLmF0Ojg5MztVbmRlc2lyYWJsZSBkZXN0cnVjdG9ycyBpZiB1c2VyIGFjdGlvbiBj dXRzIHBhcnNlOzsKNjU0O2dsci1yZWdyZXNzaW9uLmF0Ojk1MztMZWFrZWQgc2VtYW50aWMgdmFs dWVzIGlmIHVzZXIgYWN0aW9uIGN1dHMgcGFyc2U7Owo2NTU7Z2xyLXJlZ3Jlc3Npb24uYXQ6MTA3 ODtJbmNvcnJlY3QgbG9va2FoZWFkIGR1cmluZyBkZXRlcm1pbmlzdGljIEdMUjs7CjY1NjtnbHIt cmVncmVzc2lvbi5hdDoxMjAzO0luY29ycmVjdCBsb29rYWhlYWQgZHVyaW5nIG5vbmRldGVybWlu aXN0aWMgR0xSOzsKNjU3O2dsci1yZWdyZXNzaW9uLmF0OjE0MjE7TGVha2VkIHNlbWFudGljIHZh bHVlcyB3aGVuIHJlcG9ydGluZyBhbWJpZ3VpdHk7Owo2NTg7Z2xyLXJlZ3Jlc3Npb24uYXQ6MTUw NTtMZWFrZWQgbG9va2FoZWFkIGFmdGVyIG5vbmRldGVybWluaXN0aWMgcGFyc2Ugc3ludGF4IGVy cm9yOzsKNjU5O2dsci1yZWdyZXNzaW9uLmF0OjE1Njc7VW5pbml0aWFsaXplZCBsb2NhdGlvbiB3 aGVuIHJlcG9ydGluZyBhbWJpZ3VpdHk7Z2xyOwo2NjA7Z2xyLXJlZ3Jlc3Npb24uYXQ6MTY0MztN aXNzZWQgJW1lcmdlIHR5cGUgd2FybmluZ3Mgd2hlbiBMSFMgdHlwZSBpcyBkZWNsYXJlZCBsYXRl cjs7CjY2MTtnbHItcmVncmVzc2lvbi5hdDoxNjkyO0FtYmlndWl0eSByZXBvcnRzOzsKNjYyO2ds ci1yZWdyZXNzaW9uLmF0OjE3OTk7UHJlZGljYXRlczs7CicKKyBhdF9ncm91cHNfYWxsPScxCjIK Mwo0CjUKNgo3CjgKOQoxMAoxMQoxMgoxMwoxNAoxNQoxNgoxNwoxOAoxOQoyMAoyMQoyMgoyMwoy NAoyNQoyNgoyNwoyOAoyOQozMAozMQozMgozMwozNAozNQozNgozNwozOAozOQo0MAo0MQo0Mgo0 Mwo0NAo0NQo0Ngo0Nwo0OAo0OQo1MAo1MQo1Mgo1Mwo1NAo1NQo1Ngo1Nwo1OAo1OQo2MAo2MQo2 Mgo2Mwo2NAo2NQo2Ngo2Nwo2OAo2OQo3MAo3MQo3Mgo3Mwo3NAo3NQo3Ngo3Nwo3OAo3OQo4MAo4 MQo4Mgo4Mwo4NAo4NQo4Ngo4Nwo4OAo4OQo5MAo5MQo5Mgo5Mwo5NAo5NQo5Ngo5Nwo5OAo5OQox MDAKMTAxCjEwMgoxMDMKMTA0CjEwNQoxMDYKMTA3CjEwOAoxMDkKMTEwCjExMQoxMTIKMTEzCjEx NAoxMTUKMTE2CjExNwoxMTgKMTE5CjEyMAoxMjEKMTIyCjEyMwoxMjQKMTI1CjEyNgoxMjcKMTI4 CjEyOQoxMzAKMTMxCjEzMgoxMzMKMTM0CjEzNQoxMzYKMTM3CjEzOAoxMzkKMTQwCjE0MQoxNDIK MTQzCjE0NAoxNDUKMTQ2CjE0NwoxNDgKMTQ5CjE1MAoxNTEKMTUyCjE1MwoxNTQKMTU1CjE1Ngox NTcKMTU4CjE1OQoxNjAKMTYxCjE2MgoxNjMKMTY0CjE2NQoxNjYKMTY3CjE2OAoxNjkKMTcwCjE3 MQoxNzIKMTczCjE3NAoxNzUKMTc2CjE3NwoxNzgKMTc5CjE4MAoxODEKMTgyCjE4MwoxODQKMTg1 CjE4NgoxODcKMTg4CjE4OQoxOTAKMTkxCjE5MgoxOTMKMTk0CjE5NQoxOTYKMTk3CjE5OAoxOTkK MjAwCjIwMQoyMDIKMjAzCjIwNAoyMDUKMjA2CjIwNwoyMDgKMjA5CjIxMAoyMTEKMjEyCjIxMwoy MTQKMjE1CjIxNgoyMTcKMjE4CjIxOQoyMjAKMjIxCjIyMgoyMjMKMjI0CjIyNQoyMjYKMjI3CjIy OAoyMjkKMjMwCjIzMQoyMzIKMjMzCjIzNAoyMzUKMjM2CjIzNwoyMzgKMjM5CjI0MAoyNDEKMjQy CjI0MwoyNDQKMjQ1CjI0NgoyNDcKMjQ4CjI0OQoyNTAKMjUxCjI1MgoyNTMKMjU0CjI1NQoyNTYK MjU3CjI1OAoyNTkKMjYwCjI2MQoyNjIKMjYzCjI2NAoyNjUKMjY2CjI2NwoyNjgKMjY5CjI3MAoy NzEKMjcyCjI3MwoyNzQKMjc1CjI3NgoyNzcKMjc4CjI3OQoyODAKMjgxCjI4MgoyODMKMjg0CjI4 NQoyODYKMjg3CjI4OAoyODkKMjkwCjI5MQoyOTIKMjkzCjI5NAoyOTUKMjk2CjI5NwoyOTgKMjk5 CjMwMAozMDEKMzAyCjMwMwozMDQKMzA1CjMwNgozMDcKMzA4CjMwOQozMTAKMzExCjMxMgozMTMK MzE0CjMxNQozMTYKMzE3CjMxOAozMTkKMzIwCjMyMQozMjIKMzIzCjMyNAozMjUKMzI2CjMyNwoz MjgKMzI5CjMzMAozMzEKMzMyCjMzMwozMzQKMzM1CjMzNgozMzcKMzM4CjMzOQozNDAKMzQxCjM0 MgozNDMKMzQ0CjM0NQozNDYKMzQ3CjM0OAozNDkKMzUwCjM1MQozNTIKMzUzCjM1NAozNTUKMzU2 CjM1NwozNTgKMzU5CjM2MAozNjEKMzYyCjM2MwozNjQKMzY1CjM2NgozNjcKMzY4CjM2OQozNzAK MzcxCjM3MgozNzMKMzc0CjM3NQozNzYKMzc3CjM3OAozNzkKMzgwCjM4MQozODIKMzgzCjM4NAoz ODUKMzg2CjM4NwozODgKMzg5CjM5MAozOTEKMzkyCjM5MwozOTQKMzk1CjM5NgozOTcKMzk4CjM5 OQo0MDAKNDAxCjQwMgo0MDMKNDA0CjQwNQo0MDYKNDA3CjQwOAo0MDkKNDEwCjQxMQo0MTIKNDEz CjQxNAo0MTUKNDE2CjQxNwo0MTgKNDE5CjQyMAo0MjEKNDIyCjQyMwo0MjQKNDI1CjQyNgo0MjcK NDI4CjQyOQo0MzAKNDMxCjQzMgo0MzMKNDM0CjQzNQo0MzYKNDM3CjQzOAo0MzkKNDQwCjQ0MQo0 NDIKNDQzCjQ0NAo0NDUKNDQ2CjQ0Nwo0NDgKNDQ5CjQ1MAo0NTEKNDUyCjQ1Mwo0NTQKNDU1CjQ1 Ngo0NTcKNDU4CjQ1OQo0NjAKNDYxCjQ2Mgo0NjMKNDY0CjQ2NQo0NjYKNDY3CjQ2OAo0NjkKNDcw CjQ3MQo0NzIKNDczCjQ3NAo0NzUKNDc2CjQ3Nwo0NzgKNDc5CjQ4MAo0ODEKNDgyCjQ4Mwo0ODQK NDg1CjQ4Ngo0ODcKNDg4CjQ4OQo0OTAKNDkxCjQ5Mgo0OTMKNDk0CjQ5NQo0OTYKNDk3CjQ5OAo0 OTkKNTAwCjUwMQo1MDIKNTAzCjUwNAo1MDUKNTA2CjUwNwo1MDgKNTA5CjUxMAo1MTEKNTEyCjUx Mwo1MTQKNTE1CjUxNgo1MTcKNTE4CjUxOQo1MjAKNTIxCjUyMgo1MjMKNTI0CjUyNQo1MjYKNTI3 CjUyOAo1MjkKNTMwCjUzMQo1MzIKNTMzCjUzNAo1MzUKNTM2CjUzNwo1MzgKNTM5CjU0MAo1NDEK NTQyCjU0Mwo1NDQKNTQ1CjU0Ngo1NDcKNTQ4CjU0OQo1NTAKNTUxCjU1Mgo1NTMKNTU0CjU1NQo1 NTYKNTU3CjU1OAo1NTkKNTYwCjU2MQo1NjIKNTYzCjU2NAo1NjUKNTY2CjU2Nwo1NjgKNTY5CjU3 MAo1NzEKNTcyCjU3Mwo1NzQKNTc1CjU3Ngo1NzcKNTc4CjU3OQo1ODAKNTgxCjU4Mgo1ODMKNTg0 CjU4NQo1ODYKNTg3CjU4OAo1ODkKNTkwCjU5MQo1OTIKNTkzCjU5NAo1OTUKNTk2CjU5Nwo1OTgK NTk5CjYwMAo2MDEKNjAyCjYwMwo2MDQKNjA1CjYwNgo2MDcKNjA4CjYwOQo2MTAKNjExCjYxMgo2 MTMKNjE0CjYxNQo2MTYKNjE3CjYxOAo2MTkKNjIwCjYyMQo2MjIKNjIzCjYyNAo2MjUKNjI2CjYy Nwo2MjgKNjI5CjYzMAo2MzEKNjMyCjYzMwo2MzQKNjM1CjYzNgo2MzcKNjM4CjYzOQo2NDAKNjQx CjY0Mgo2NDMKNjQ0CjY0NQo2NDYKNjQ3CjY0OAo2NDkKNjUwCjY1MQo2NTIKNjUzCjY1NAo2NTUK NjU2CjY1Nwo2NTgKNjU5CjY2MAo2NjEKNjYyJworIGF0X2FyZ19jb21waWxlX2Nfd2l0aF9jeHg9 ZmFsc2UKKyBhdF9hcmdfZ2l2ZW5fY29tcGlsZV9jX3dpdGhfY3h4PWZhbHNlCisgYXRfcHJldj0K KyBmb3IgYXRfb3B0aW9uIGluICIkQCIKKyB0ZXN0IC1uICcnCisgY2FzZSAkYXRfb3B0aW9uIGlu CisgYXRfb3B0YXJnPQorIGNhc2UgJGF0X29wdGlvbiBpbgorIGF0X3ZlcmJvc2U9CisgYXRfcXVp ZXQ9OgorIGZvciBhdF9vcHRpb24gaW4gIiRAIgorIHRlc3QgLW4gJycKKyBjYXNlICRhdF9vcHRp b24gaW4KKyBhdF9vcHRhcmc9CisgY2FzZSAkYXRfb3B0aW9uIGluCisgYXRfZGVidWdfcD06Cisg Zm9yIGF0X29wdGlvbiBpbiAiJEAiCisgdGVzdCAtbiAnJworIGNhc2UgJGF0X29wdGlvbiBpbgor IGF0X29wdGFyZz0KKyBjYXNlICRhdF9vcHRpb24gaW4KKyBhdF9mbl92YWxpZGF0ZV9yYW5nZXMg YXRfb3B0aW9uCisgZm9yIGF0X2dycCBpbiAiJEAiCisgZXZhbCAnYXRfdmFsdWU9JGF0X29wdGlv bicKKysgYXRfdmFsdWU9NAorIHRlc3QgNCAtbHQgMQorIHRlc3QgNCAtZ3QgNjYyCisgY2FzZSAk YXRfdmFsdWUgaW4KKyBhc19mbl9hcHBlbmQgYXRfZ3JvdXBzICc0CicKKyBldmFsICdhdF9ncm91 cHMrPSQyJworKyBhdF9ncm91cHMrPSc0CicKKyB0ZXN0IC1uICcnCisgYXRfc3VpdGVfbG9nPS9i dWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0 L3Rlc3RzL3Rlc3RzdWl0ZS5sb2cKKyB0ZXN0IC16ICc0CicKKyB0ZXN0IC1uICcnCisrIHByaW50 ZiAnJXNcbicgJzQKJworKyBzb3J0IC1udQorKyBzZWQgJy9eJC9kJworIGF0X2dyb3Vwcz00Cisg dGVzdCB4YXV0byA9IHhhbHdheXMKKyB0ZXN0IHhhdXRvID0geGF1dG8KKyB0ZXN0IC10IDEKKyBh dF9yZWQ9CisgYXRfZ3JuPQorIGF0X2xnbj0KKyBhdF9ibHU9CisgYXRfc3RkPQorIGZhbHNlCisg ZmFsc2UKKyBmYWxzZQorIGNhc2UgJGF0X2dyb3VwcyBpbgorIGF0X3ByaW50X2Jhbm5lcnM9ZmFs c2UKKyBhdF9iYW5uZXJfdGV4dF8xPSdNNCBNYWNyb3MuJworIGF0X2Jhbm5lcl90ZXh0XzI9J0lu cHV0IFByb2Nlc3NpbmcuJworIGF0X2Jhbm5lcl90ZXh0XzM9J05hbWVkIHJlZmVyZW5jZXMgdGVz dHMuJworIGF0X2Jhbm5lcl90ZXh0XzQ9J091dHB1dCBmaWxlIG5hbWVzLicKKyBhdF9iYW5uZXJf dGV4dF81PURpYWdub3N0aWNzLgorIGF0X2Jhbm5lcl90ZXh0XzY9J1NrZWxldG9uIFN1cHBvcnQu JworIGF0X2Jhbm5lcl90ZXh0Xzc9J0dyYW1tYXIgU2V0cyAoRmlyc3RzIGV0Yy4pLicKKyBhdF9i YW5uZXJfdGV4dF84PSdHcmFtbWFyIFJlZHVjdGlvbi4nCisgYXRfYmFubmVyX3RleHRfOT0nVGVz dCByZXBvcnRzLicKKyBhdF9iYW5uZXJfdGV4dF8xMD1Db25mbGljdHMuCisgYXRfYmFubmVyX3Rl eHRfMTE9Q291bnRlcmV4YW1wbGVzLgorIGF0X2Jhbm5lcl90ZXh0XzEyPSdTeW5jIExpbmVzLicK KyBhdF9iYW5uZXJfdGV4dF8xMz0nUGFyc2VyIEhlYWRlcnMuJworIGF0X2Jhbm5lcl90ZXh0XzE0 PSdVc2VyIEFjdGlvbnMuJworIGF0X2Jhbm5lcl90ZXh0XzE1PSdWYWx1ZSB0eXBlIHRlc3RzLicK KyBhdF9iYW5uZXJfdGV4dF8xNj0nSW50ZXJmYWNlIHdpdGggdGhlIHNjYW5uZXIuJworIGF0X2Jh bm5lcl90ZXh0XzE3PSdMQUxSKDEpIENhbGN1bGF0b3IuJworIGF0X2Jhbm5lcl90ZXh0XzE4PSdH TFIgQ2FsY3VsYXRvci4nCisgYXRfYmFubmVyX3RleHRfMTk9J0xBTFIoMSkgQysrIENhbGN1bGF0 b3IuJworIGF0X2Jhbm5lcl90ZXh0XzIwPSdHTFIgQysrIENhbGN1bGF0b3IuJworIGF0X2Jhbm5l cl90ZXh0XzIxPSdMQUxSKDEpIEQgQ2FsY3VsYXRvci4nCisgYXRfYmFubmVyX3RleHRfMjI9J0xB TFIoMSkgSmF2YSBDYWxjdWxhdG9yLicKKyBhdF9iYW5uZXJfdGV4dF8yMz0nVG9ydHVyZSBUZXN0 cy4nCisgYXRfYmFubmVyX3RleHRfMjQ9J0V4aXN0aW5nIEdyYW1tYXJzLicKKyBhdF9iYW5uZXJf dGV4dF8yNT0nUmVncmVzc2lvbiB0ZXN0cy4nCisgYXRfYmFubmVyX3RleHRfMjY9J1B1c2ggUGFy c2luZyBUZXN0cycKKyBhdF9iYW5uZXJfdGV4dF8yNz0nQysrIEZlYXR1cmVzLicKKyBhdF9iYW5u ZXJfdGV4dF8yOD0nSmF2YSBDYWxjdWxhdG9yLicKKyBhdF9iYW5uZXJfdGV4dF8yOT0nSmF2YSBQ YXJhbWV0ZXJzLicKKyBhdF9iYW5uZXJfdGV4dF8zMD0nSmF2YSBQdXNoIFBhcnNpbmcgVGVzdHMn CisgYXRfYmFubmVyX3RleHRfMzE9J0MrKyBUeXBlIFN5bnRheCAoR0xSKS4nCisgYXRfYmFubmVy X3RleHRfMzI9J0dMUiBSZWdyZXNzaW9uIFRlc3RzJworIGZhbHNlCisgZm9yIGF0X2ZpbGUgaW4g YXRjb25maWcgYXRsb2NhbAorIHRlc3QgLXIgYXRjb25maWcKKyAuIC4vYXRjb25maWcKKysgYXRf dGVzdGRpcj10ZXN0cworKyBhYnNfYnVpbGRkaXI9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jp c29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMKKysgYXRfc3JjZGlyPS9idWls ZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zL3Rl c3RzCisrIGFic19zcmNkaXI9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVu dHMvYmlzb24vYmlzb24tMy43LjMvdGVzdHMKKysgYXRfdG9wX3NyY2Rpcj0vYnVpbGRzL21yZWhh ay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMworKyBhYnNfdG9w X3NyY2Rpcj0vYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9i aXNvbi0zLjcuMworKyBhdF90b3BfYnVpbGRfcHJlZml4PS4uLworKyBhYnNfdG9wX2J1aWxkZGly PS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2Ft ZDY0CisrIGF0X3RvcF9idWlsZGRpcj0uLi8KKysgQVVUT1RFU1RfUEFUSD10ZXN0cworKyBTSEVM TD0vYmluL2Jhc2gKKyBmb3IgYXRfZmlsZSBpbiBhdGNvbmZpZyBhdGxvY2FsCisgdGVzdCAtciBh dGxvY2FsCisgLiAuL2F0bG9jYWwKKysgQ1BQRkxBR1M9Jy1JL2J1aWxkcy9tcmVoYWsvd29ya3Nw YWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYmlzb24tMy43LjMvdGVzdHMgLW02NCAtRF9SRUVO VFJBTlQnCisrIGVudgorKyBncmVwICdeUE9TSVhMWV9DT1JSRUNUPScKKysgUE9TSVhMWV9DT1JS RUNUX0lTX0VYUE9SVEVEPWZhbHNlCisrIDogL3Vzci9nY2MvOS9iaW4vZ2NjCisrIDogL3Vzci9n Y2MvOS9iaW4vZysrCisrIDogeWVzCisrIDogLW02NCAtTzMgLWZmaWxlLXByZWZpeC1tYXA9L2J1 aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb249LgorKyA6IC1tNjQg LU8zIC1mZmlsZS1wcmVmaXgtbWFwPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21w b25lbnRzL2Jpc29uPS4gLW02NCAtTzMgLWZmaWxlLXByZWZpeC1tYXA9L2J1aWxkcy9tcmVoYWsv d29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb249LgorKyA6CisrIDogLW02NCAtTzMgLWZm aWxlLXByZWZpeC1tYXA9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMv Ymlzb249LgorKyA6IC1tNjQgLU8zIC1mZmlsZS1wcmVmaXgtbWFwPS9idWlsZHMvbXJlaGFrL3dv cmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uPS4gLW02NCAtTzMgLWZmaWxlLXByZWZpeC1t YXA9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb249LgorKyA6 IDoKKysgOiAtZm5vLWV4Y2VwdGlvbnMKKysgOiAtc3RkPWMrKzk4CisrIDogLXN0ZD1jKyswMwor KyA6IC1zdGQ9YysrMTEKKysgOiAtc3RkPWMrKzE0CisrIDogLXN0ZD1jKysxNworKyA6IC1zdGQ9 YysrMmEKKysgOgorKyBjYXQKKysgL3Vzci9nY2MvOS9iaW4vZysrIC1tNjQgLU8zIC1mZmlsZS1w cmVmaXgtbWFwPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29u PS4gLW02NCAtTzMgLWZmaWxlLXByZWZpeC1tYXA9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jp c29uL2NvbXBvbmVudHMvYmlzb249LiAtSS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9j b21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zL3Rlc3RzIC1tNjQgLURfUkVFTlRSQU5UIC1vIGNv bmZ0ZXN0IGNvbmZ0ZXN0LmNjCisrIGNhc2UgJD8gaW4KKysgcm0gLWZyIGNvbmZ0ZXN0IGNvbmZ0 ZXN0LmNjCisrIDogdHJ1ZQorKyA6IHRydWUKKysgZmFsc2UKKysgZmFsc2UKKysgQ0NfSVNfQ1hY PTAKKysgOgorKyA6CisrIHRlc3QgeCA9IHgKKysgQklTT05fRENfV09SS1M9ZmFsc2UKKysgOiBq YXZhYyAtdGFyZ2V0IDEuNyAtc291cmNlIDEuNworKyA6IGphdmEKKysgOiAvdXNyL2Jpbi9nZ3Jl cCAtRQorKyA6IC91c3IvYmluL3BlcmwKKysgTENfQ1RZUEU9QworKyBleHBvcnQgTENfQ1RZUEUK KysgOgorKyA6IC9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29u L2J1aWxkL2FtZDY0L2xpYi9saWJiaXNvbi5hCisrIDogL3Vzci9iaW4veHNsdHByb2MKKysgY2F0 CisrIGNhdAorKyBjYXQKKysgZGlmZiAtdSBjb25mdGVzdC4xIGNvbmZ0ZXN0LjIKKysgc2VkIC1u ICcvXkBALywkcCcKKysgc2VkICdzL14gJC8vJworKyBkaWZmIGNvbmZ0ZXN0LmV4cGVjdGVkIGNv bmZ0ZXN0LmRpZmYKKysgRElGRl9VX1dPUktTPXRydWUKKysgcm0gY29uZnRlc3QuMSBjb25mdGVz dC4yIGNvbmZ0ZXN0LmRpZmYgY29uZnRlc3QuZXhwZWN0ZWQKKyA6IC4uLworIGV2YWwgJycKKyB0 ZXN0IC1uIC9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2Jp c29uLTMuNy4zCisgYnVpbGRkaXI9Li4vLi4KKyBmb3IgYXRfZGlyX3ZhciBpbiBzcmNkaXIgdG9w X3NyY2RpciB0b3BfYnVpbGRfcHJlZml4CisgZXZhbCAnYXRfdmFsPSRhdF9zcmNkaXInCisrIGF0 X3ZhbD0vYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9iaXNv bi0zLjcuMy90ZXN0cworIGNhc2UgJGF0X3ZhbCBpbgorIGF0X3ByZWZpeD0KKyBldmFsICdzcmNk aXI9JGF0X3ByZWZpeCRhdF92YWwnCisrIHNyY2Rpcj0vYnVpbGRzL21yZWhhay93b3Jrc3BhY2Uv Ymlzb24vY29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMy90ZXN0cworIGZvciBhdF9kaXJfdmFy IGluIHNyY2RpciB0b3Bfc3JjZGlyIHRvcF9idWlsZF9wcmVmaXgKKyBldmFsICdhdF92YWw9JGF0 X3RvcF9zcmNkaXInCisrIGF0X3ZhbD0vYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29t cG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMworIGNhc2UgJGF0X3ZhbCBpbgorIGF0X3ByZWZpeD0K KyBldmFsICd0b3Bfc3JjZGlyPSRhdF9wcmVmaXgkYXRfdmFsJworKyB0b3Bfc3JjZGlyPS9idWls ZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zCisg Zm9yIGF0X2Rpcl92YXIgaW4gc3JjZGlyIHRvcF9zcmNkaXIgdG9wX2J1aWxkX3ByZWZpeAorIGV2 YWwgJ2F0X3ZhbD0kYXRfdG9wX2J1aWxkX3ByZWZpeCcKKysgYXRfdmFsPS4uLworIGNhc2UgJGF0 X3ZhbCBpbgorIGF0X3ByZWZpeD0uLi8uLi8KKyBldmFsICd0b3BfYnVpbGRfcHJlZml4PSRhdF9w cmVmaXgkYXRfdmFsJworKyB0b3BfYnVpbGRfcHJlZml4PS4uLy4uLy4uLworIGF0X3N1aXRlX2Rp cj0vYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9h bWQ2NC90ZXN0cy90ZXN0c3VpdGUuZGlyCisgYXRfc3VpdGVfbG9nPS9idWlsZHMvbXJlaGFrL3dv cmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0 ZS5sb2cKKyBhdF9oZWxwZXJfZGlyPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21w b25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvYXQtZ3JvdXBzCisg YXRfc3RvcF9maWxlPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jp c29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvYXQtc3RvcAorIGF0X2pvYl9maWZv PS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2Ft ZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvYXQtam9iLWZpZm8KKyBmYWxzZQorKyBwcmludGYgJyVz XG4nIHRlc3RzCisrIHNlZCAnc3w6fDp8ZycKKyBBVVRPVEVTVF9QQVRIPXRlc3RzCisgYXRfcGF0 aD0KKyBhc19zYXZlX0lGUz0nIAkKJworIElGUz06CisgZm9yIGFzX2RpciBpbiAkQVVUT1RFU1Rf UEFUSCAkUEFUSAorIElGUz0nIAkKJworIGNhc2UgJGFzX2RpciBpbgorIGFzX2Rpcj10ZXN0cy8K KyB0ZXN0IC1uICcnCisgY2FzZSAkYXNfZGlyIGluCisgdGVzdCAteiAuLi8KKyBhc19mbl9hcHBl bmQgYXRfcGF0aCAuLi90ZXN0cy86CisgZXZhbCAnYXRfcGF0aCs9JDInCisrIGF0X3BhdGgrPS4u L3Rlc3RzLzoKKyBhc19mbl9hcHBlbmQgYXRfcGF0aCAvYnVpbGRzL21yZWhhay93b3Jrc3BhY2Uv Ymlzb24vY29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMy90ZXN0cy8KKyBldmFsICdhdF9wYXRo Kz0kMicKKysgYXRfcGF0aCs9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVu dHMvYmlzb24vYmlzb24tMy43LjMvdGVzdHMvCisgZm9yIGFzX2RpciBpbiAkQVVUT1RFU1RfUEFU SCAkUEFUSAorIElGUz0nIAkKJworIGNhc2UgJGFzX2RpciBpbgorIGFzX2Rpcj0vdXNyL2Jpbi8K KyB0ZXN0IC1uIC4uL3Rlc3RzLzovYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9u ZW50cy9iaXNvbi9iaXNvbi0zLjcuMy90ZXN0cy8KKyBhc19mbl9hcHBlbmQgYXRfcGF0aCA6Cisg ZXZhbCAnYXRfcGF0aCs9JDInCisrIGF0X3BhdGgrPToKKyBjYXNlICRhc19kaXIgaW4KKyBhc19m bl9hcHBlbmQgYXRfcGF0aCAvdXNyL2Jpbi8KKyBldmFsICdhdF9wYXRoKz0kMicKKysgYXRfcGF0 aCs9L3Vzci9iaW4vCisgZm9yIGFzX2RpciBpbiAkQVVUT1RFU1RfUEFUSCAkUEFUSAorIElGUz0n IAkKJworIGNhc2UgJGFzX2RpciBpbgorIGFzX2Rpcj0vYmluLworIHRlc3QgLW4gLi4vdGVzdHMv Oi9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMu Ny4zL3Rlc3RzLzovdXNyL2Jpbi8KKyBhc19mbl9hcHBlbmQgYXRfcGF0aCA6CisgZXZhbCAnYXRf cGF0aCs9JDInCisrIGF0X3BhdGgrPToKKyBjYXNlICRhc19kaXIgaW4KKyBhc19mbl9hcHBlbmQg YXRfcGF0aCAvYmluLworIGV2YWwgJ2F0X3BhdGgrPSQyJworKyBhdF9wYXRoKz0vYmluLworIGZv ciBhc19kaXIgaW4gJEFVVE9URVNUX1BBVEggJFBBVEgKKyBJRlM9JyAJCicKKyBjYXNlICRhc19k aXIgaW4KKyBhc19kaXI9L3Vzci9zYmluLworIHRlc3QgLW4gLi4vdGVzdHMvOi9idWlsZHMvbXJl aGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zL3Rlc3RzLzov dXNyL2Jpbi86L2Jpbi8KKyBhc19mbl9hcHBlbmQgYXRfcGF0aCA6CisgZXZhbCAnYXRfcGF0aCs9 JDInCisrIGF0X3BhdGgrPToKKyBjYXNlICRhc19kaXIgaW4KKyBhc19mbl9hcHBlbmQgYXRfcGF0 aCAvdXNyL3NiaW4vCisgZXZhbCAnYXRfcGF0aCs9JDInCisrIGF0X3BhdGgrPS91c3Ivc2Jpbi8K KyBmb3IgYXNfZGlyIGluICRBVVRPVEVTVF9QQVRIICRQQVRICisgSUZTPScgCQonCisgY2FzZSAk YXNfZGlyIGluCisgYXNfZGlyPS9zYmluLworIHRlc3QgLW4gLi4vdGVzdHMvOi9idWlsZHMvbXJl aGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zL3Rlc3RzLzov dXNyL2Jpbi86L2Jpbi86L3Vzci9zYmluLworIGFzX2ZuX2FwcGVuZCBhdF9wYXRoIDoKKyBldmFs ICdhdF9wYXRoKz0kMicKKysgYXRfcGF0aCs9OgorIGNhc2UgJGFzX2RpciBpbgorIGFzX2ZuX2Fw cGVuZCBhdF9wYXRoIC9zYmluLworIGV2YWwgJ2F0X3BhdGgrPSQyJworKyBhdF9wYXRoKz0vc2Jp bi8KKyBmb3IgYXNfZGlyIGluICRBVVRPVEVTVF9QQVRIICRQQVRICisgSUZTPScgCQonCisgY2Fz ZSAkYXNfZGlyIGluCisgYXNfZGlyPS9idWlsZHMvbXJlaGFrL3Vzci9iaW4vU3VuT1MvCisgdGVz dCAtbiAuLi90ZXN0cy86L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMv Ymlzb24vYmlzb24tMy43LjMvdGVzdHMvOi91c3IvYmluLzovYmluLzovdXNyL3NiaW4vOi9zYmlu LworIGFzX2ZuX2FwcGVuZCBhdF9wYXRoIDoKKyBldmFsICdhdF9wYXRoKz0kMicKKysgYXRfcGF0 aCs9OgorIGNhc2UgJGFzX2RpciBpbgorIGFzX2ZuX2FwcGVuZCBhdF9wYXRoIC9idWlsZHMvbXJl aGFrL3Vzci9iaW4vU3VuT1MvCisgZXZhbCAnYXRfcGF0aCs9JDInCisrIGF0X3BhdGgrPS9idWls ZHMvbXJlaGFrL3Vzci9iaW4vU3VuT1MvCisgZm9yIGFzX2RpciBpbiAkQVVUT1RFU1RfUEFUSCAk UEFUSAorIElGUz0nIAkKJworIGNhc2UgJGFzX2RpciBpbgorIGFzX2Rpcj0vYnVpbGRzL21yZWhh ay91c3IvYmluLworIHRlc3QgLW4gLi4vdGVzdHMvOi9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9i aXNvbi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zL3Rlc3RzLzovdXNyL2Jpbi86L2Jpbi86 L3Vzci9zYmluLzovc2Jpbi86L2J1aWxkcy9tcmVoYWsvdXNyL2Jpbi9TdW5PUy8KKyBhc19mbl9h cHBlbmQgYXRfcGF0aCA6CisgZXZhbCAnYXRfcGF0aCs9JDInCisrIGF0X3BhdGgrPToKKyBjYXNl ICRhc19kaXIgaW4KKyBhc19mbl9hcHBlbmQgYXRfcGF0aCAvYnVpbGRzL21yZWhhay91c3IvYmlu LworIGV2YWwgJ2F0X3BhdGgrPSQyJworKyBhdF9wYXRoKz0vYnVpbGRzL21yZWhhay91c3IvYmlu LworIGZvciBhc19kaXIgaW4gJEFVVE9URVNUX1BBVEggJFBBVEgKKyBJRlM9JyAJCicKKyBjYXNl ICRhc19kaXIgaW4KKyBhc19kaXI9L29wdC9vbmJsZC9iaW4vCisgdGVzdCAtbiAuLi90ZXN0cy86 L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYmlzb24tMy43 LjMvdGVzdHMvOi91c3IvYmluLzovYmluLzovdXNyL3NiaW4vOi9zYmluLzovYnVpbGRzL21yZWhh ay91c3IvYmluL1N1bk9TLzovYnVpbGRzL21yZWhhay91c3IvYmluLworIGFzX2ZuX2FwcGVuZCBh dF9wYXRoIDoKKyBldmFsICdhdF9wYXRoKz0kMicKKysgYXRfcGF0aCs9OgorIGNhc2UgJGFzX2Rp ciBpbgorIGFzX2ZuX2FwcGVuZCBhdF9wYXRoIC9vcHQvb25ibGQvYmluLworIGV2YWwgJ2F0X3Bh dGgrPSQyJworKyBhdF9wYXRoKz0vb3B0L29uYmxkL2Jpbi8KKyBmb3IgYXNfZGlyIGluICRBVVRP VEVTVF9QQVRIICRQQVRICisgSUZTPScgCQonCisgY2FzZSAkYXNfZGlyIGluCisgYXNfZGlyPS91 c3Ivc2Jpbi8KKyB0ZXN0IC1uIC4uL3Rlc3RzLzovYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlz b24vY29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMy90ZXN0cy86L3Vzci9iaW4vOi9iaW4vOi91 c3Ivc2Jpbi86L3NiaW4vOi9idWlsZHMvbXJlaGFrL3Vzci9iaW4vU3VuT1MvOi9idWlsZHMvbXJl aGFrL3Vzci9iaW4vOi9vcHQvb25ibGQvYmluLworIGFzX2ZuX2FwcGVuZCBhdF9wYXRoIDoKKyBl dmFsICdhdF9wYXRoKz0kMicKKysgYXRfcGF0aCs9OgorIGNhc2UgJGFzX2RpciBpbgorIGFzX2Zu X2FwcGVuZCBhdF9wYXRoIC91c3Ivc2Jpbi8KKyBldmFsICdhdF9wYXRoKz0kMicKKysgYXRfcGF0 aCs9L3Vzci9zYmluLworIElGUz0nIAkKJworIGF0X25ld19wYXRoPQorIGFzX3NhdmVfSUZTPScg CQonCisgSUZTPToKKyBmb3IgYXNfZGlyIGluICRhdF9wYXRoCisgSUZTPScgCQonCisgY2FzZSAk YXNfZGlyIGluCisgdGVzdCAtZCAuLi90ZXN0cy8KKyBjYXNlICRhc19kaXIgaW4KKyBhc19kaXI9 L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1k NjQvdGVzdHMKKyBjYXNlICRQQVRIX1NFUEFSQVRPUiRhdF9uZXdfcGF0aCRQQVRIX1NFUEFSQVRP UiBpbgorIGF0X25ld19wYXRoPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25l bnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzCisgZm9yIGFzX2RpciBpbiAkYXRfcGF0aAorIElG Uz0nIAkKJworIGNhc2UgJGFzX2RpciBpbgorIHRlc3QgLWQgL2J1aWxkcy9tcmVoYWsvd29ya3Nw YWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYmlzb24tMy43LjMvdGVzdHMvCisgY2FzZSAkYXNf ZGlyIGluCisgY2FzZSAkUEFUSF9TRVBBUkFUT1IkYXRfbmV3X3BhdGgkUEFUSF9TRVBBUkFUT1Ig aW4KKyBhc19mbl9hcHBlbmQgYXRfbmV3X3BhdGggOi9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9i aXNvbi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zL3Rlc3RzLworIGV2YWwgJ2F0X25ld19w YXRoKz0kMicKKysgYXRfbmV3X3BhdGgrPTovYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24v Y29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMy90ZXN0cy8KKyBmb3IgYXNfZGlyIGluICRhdF9w YXRoCisgSUZTPScgCQonCisgY2FzZSAkYXNfZGlyIGluCisgdGVzdCAtZCAvdXNyL2Jpbi8KKyBj YXNlICRhc19kaXIgaW4KKyBjYXNlICRQQVRIX1NFUEFSQVRPUiRhdF9uZXdfcGF0aCRQQVRIX1NF UEFSQVRPUiBpbgorIGFzX2ZuX2FwcGVuZCBhdF9uZXdfcGF0aCA6L3Vzci9iaW4vCisgZXZhbCAn YXRfbmV3X3BhdGgrPSQyJworKyBhdF9uZXdfcGF0aCs9Oi91c3IvYmluLworIGZvciBhc19kaXIg aW4gJGF0X3BhdGgKKyBJRlM9JyAJCicKKyBjYXNlICRhc19kaXIgaW4KKyB0ZXN0IC1kIC9iaW4v CisgY2FzZSAkYXNfZGlyIGluCisgY2FzZSAkUEFUSF9TRVBBUkFUT1IkYXRfbmV3X3BhdGgkUEFU SF9TRVBBUkFUT1IgaW4KKyBhc19mbl9hcHBlbmQgYXRfbmV3X3BhdGggOi9iaW4vCisgZXZhbCAn YXRfbmV3X3BhdGgrPSQyJworKyBhdF9uZXdfcGF0aCs9Oi9iaW4vCisgZm9yIGFzX2RpciBpbiAk YXRfcGF0aAorIElGUz0nIAkKJworIGNhc2UgJGFzX2RpciBpbgorIHRlc3QgLWQgL3Vzci9zYmlu LworIGNhc2UgJGFzX2RpciBpbgorIGNhc2UgJFBBVEhfU0VQQVJBVE9SJGF0X25ld19wYXRoJFBB VEhfU0VQQVJBVE9SIGluCisgYXNfZm5fYXBwZW5kIGF0X25ld19wYXRoIDovdXNyL3NiaW4vCisg ZXZhbCAnYXRfbmV3X3BhdGgrPSQyJworKyBhdF9uZXdfcGF0aCs9Oi91c3Ivc2Jpbi8KKyBmb3Ig YXNfZGlyIGluICRhdF9wYXRoCisgSUZTPScgCQonCisgY2FzZSAkYXNfZGlyIGluCisgdGVzdCAt ZCAvc2Jpbi8KKyBjYXNlICRhc19kaXIgaW4KKyBjYXNlICRQQVRIX1NFUEFSQVRPUiRhdF9uZXdf cGF0aCRQQVRIX1NFUEFSQVRPUiBpbgorIGFzX2ZuX2FwcGVuZCBhdF9uZXdfcGF0aCA6L3NiaW4v CisgZXZhbCAnYXRfbmV3X3BhdGgrPSQyJworKyBhdF9uZXdfcGF0aCs9Oi9zYmluLworIGZvciBh c19kaXIgaW4gJGF0X3BhdGgKKyBJRlM9JyAJCicKKyBjYXNlICRhc19kaXIgaW4KKyB0ZXN0IC1k IC9idWlsZHMvbXJlaGFrL3Vzci9iaW4vU3VuT1MvCisgY2FzZSAkYXNfZGlyIGluCisgY2FzZSAk UEFUSF9TRVBBUkFUT1IkYXRfbmV3X3BhdGgkUEFUSF9TRVBBUkFUT1IgaW4KKyBhc19mbl9hcHBl bmQgYXRfbmV3X3BhdGggOi9idWlsZHMvbXJlaGFrL3Vzci9iaW4vU3VuT1MvCisgZXZhbCAnYXRf bmV3X3BhdGgrPSQyJworKyBhdF9uZXdfcGF0aCs9Oi9idWlsZHMvbXJlaGFrL3Vzci9iaW4vU3Vu T1MvCisgZm9yIGFzX2RpciBpbiAkYXRfcGF0aAorIElGUz0nIAkKJworIGNhc2UgJGFzX2RpciBp bgorIHRlc3QgLWQgL2J1aWxkcy9tcmVoYWsvdXNyL2Jpbi8KKyBjYXNlICRhc19kaXIgaW4KKyBj YXNlICRQQVRIX1NFUEFSQVRPUiRhdF9uZXdfcGF0aCRQQVRIX1NFUEFSQVRPUiBpbgorIGFzX2Zu X2FwcGVuZCBhdF9uZXdfcGF0aCA6L2J1aWxkcy9tcmVoYWsvdXNyL2Jpbi8KKyBldmFsICdhdF9u ZXdfcGF0aCs9JDInCisrIGF0X25ld19wYXRoKz06L2J1aWxkcy9tcmVoYWsvdXNyL2Jpbi8KKyBm b3IgYXNfZGlyIGluICRhdF9wYXRoCisgSUZTPScgCQonCisgY2FzZSAkYXNfZGlyIGluCisgdGVz dCAtZCAvb3B0L29uYmxkL2Jpbi8KKyBjYXNlICRhc19kaXIgaW4KKyBjYXNlICRQQVRIX1NFUEFS QVRPUiRhdF9uZXdfcGF0aCRQQVRIX1NFUEFSQVRPUiBpbgorIGFzX2ZuX2FwcGVuZCBhdF9uZXdf cGF0aCA6L29wdC9vbmJsZC9iaW4vCisgZXZhbCAnYXRfbmV3X3BhdGgrPSQyJworKyBhdF9uZXdf cGF0aCs9Oi9vcHQvb25ibGQvYmluLworIGZvciBhc19kaXIgaW4gJGF0X3BhdGgKKyBJRlM9JyAJ CicKKyBjYXNlICRhc19kaXIgaW4KKyB0ZXN0IC1kIC91c3Ivc2Jpbi8KKyBjYXNlICRhc19kaXIg aW4KKyBjYXNlICRQQVRIX1NFUEFSQVRPUiRhdF9uZXdfcGF0aCRQQVRIX1NFUEFSQVRPUiBpbgor IElGUz0nIAkKJworIFBBVEg9L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVu dHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHM6L2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29u L2NvbXBvbmVudHMvYmlzb24vYmlzb24tMy43LjMvdGVzdHMvOi91c3IvYmluLzovYmluLzovdXNy L3NiaW4vOi9zYmluLzovYnVpbGRzL21yZWhhay91c3IvYmluL1N1bk9TLzovYnVpbGRzL21yZWhh ay91c3IvYmluLzovb3B0L29uYmxkL2Jpbi8KKyBleHBvcnQgUEFUSAorIDoKKyBhdF9zdWl0ZV9s b2c9L2Rldi9udWxsCisgZXhlYworIHByaW50ZiAnJXNcbicgJyMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAjIwojIyBHTlUgQmlzb24gMy43LjMgdGVzdCBzdWl0ZS4gIyMKIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjJwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKIyMgR05VIEJpc29uIDMuNy4zIHRlc3Qgc3VpdGUuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAjIworIHByaW50ZiAnJXNcbicgJyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjIwojIyBHTlUgQmlzb24gMy43LjMgdGVzdCBzdWl0ZS4gIyMKIyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICMjJworIGVjaG8KKyBwcmludGYgJyVzXG4nICd0ZXN0c3VpdGU6IGNv bW1hbmQgbGluZSB3YXM6JworIHByaW50ZiAnJXNcbicgJyAgJCAvYnVpbGRzL21yZWhhay93b3Jr c3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy8uL3Rlc3RzdWl0 ZSAtdiAtZCA0JworIGVjaG8KKyB0ZXN0IC1uIC9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNv bi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zCisgdGVzdCAtZiAvYnVpbGRzL21yZWhhay93 b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMy9DaGFuZ2VMb2cKKyBw cmludGYgJyVzXG4nICcjIyAtLS0tLS0tLS0tICMjCiMjIENoYW5nZUxvZy4gIyMKIyMgLS0tLS0t LS0tLSAjIycKKyBlY2hvCisgc2VkICdzL14vfCAvOzEwcScgL2J1aWxkcy9tcmVoYWsvd29ya3Nw YWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYmlzb24tMy43LjMvQ2hhbmdlTG9nCisgZWNobwor IGNhdAorKyBzZWQgMXEKKysgZWNobyB1bmtub3duCisrIGVjaG8gdW5rbm93bgorKyBlY2hvIHVu a25vd24KKysgZWNobyB1bmtub3duCisrIGVjaG8gdW5rbm93bgorIGFzX3NhdmVfSUZTPScgCQon CisgSUZTPToKKyBmb3IgYXNfZGlyIGluICRQQVRICisgSUZTPScgCQonCisgY2FzZSAkYXNfZGly IGluCisgYXNfZGlyPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jp c29uL2J1aWxkL2FtZDY0L3Rlc3RzLworIHByaW50ZiAnJXNcbicgJ1BBVEg6IC9idWlsZHMvbXJl aGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzLycK KyBmb3IgYXNfZGlyIGluICRQQVRICisgSUZTPScgCQonCisgY2FzZSAkYXNfZGlyIGluCisgcHJp bnRmICclc1xuJyAnUEFUSDogL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVu dHMvYmlzb24vYmlzb24tMy43LjMvdGVzdHMvJworIGZvciBhc19kaXIgaW4gJFBBVEgKKyBJRlM9 JyAJCicKKyBjYXNlICRhc19kaXIgaW4KKyBwcmludGYgJyVzXG4nICdQQVRIOiAvdXNyL2Jpbi8n CisgZm9yIGFzX2RpciBpbiAkUEFUSAorIElGUz0nIAkKJworIGNhc2UgJGFzX2RpciBpbgorIHBy aW50ZiAnJXNcbicgJ1BBVEg6IC9iaW4vJworIGZvciBhc19kaXIgaW4gJFBBVEgKKyBJRlM9JyAJ CicKKyBjYXNlICRhc19kaXIgaW4KKyBwcmludGYgJyVzXG4nICdQQVRIOiAvdXNyL3NiaW4vJwor IGZvciBhc19kaXIgaW4gJFBBVEgKKyBJRlM9JyAJCicKKyBjYXNlICRhc19kaXIgaW4KKyBwcmlu dGYgJyVzXG4nICdQQVRIOiAvc2Jpbi8nCisgZm9yIGFzX2RpciBpbiAkUEFUSAorIElGUz0nIAkK JworIGNhc2UgJGFzX2RpciBpbgorIHByaW50ZiAnJXNcbicgJ1BBVEg6IC9idWlsZHMvbXJlaGFr L3Vzci9iaW4vU3VuT1MvJworIGZvciBhc19kaXIgaW4gJFBBVEgKKyBJRlM9JyAJCicKKyBjYXNl ICRhc19kaXIgaW4KKyBwcmludGYgJyVzXG4nICdQQVRIOiAvYnVpbGRzL21yZWhhay91c3IvYmlu LycKKyBmb3IgYXNfZGlyIGluICRQQVRICisgSUZTPScgCQonCisgY2FzZSAkYXNfZGlyIGluCisg cHJpbnRmICclc1xuJyAnUEFUSDogL29wdC9vbmJsZC9iaW4vJworIElGUz0nIAkKJworIGVjaG8K KyBmb3IgYXRfZmlsZSBpbiBhdGNvbmZpZyBhdGxvY2FsCisgdGVzdCAtciBhdGNvbmZpZworIHBy aW50ZiAnJXNcbicgJ3Rlc3RzdWl0ZTogYXRjb25maWc6JworIHNlZCAncy9eL3wgLycgYXRjb25m aWcKKyBlY2hvCisgZm9yIGF0X2ZpbGUgaW4gYXRjb25maWcgYXRsb2NhbAorIHRlc3QgLXIgYXRs b2NhbAorIHByaW50ZiAnJXNcbicgJ3Rlc3RzdWl0ZTogYXRsb2NhbDonCisgc2VkICdzL14vfCAv JyBhdGxvY2FsCisgZWNobworIHByaW50ZiAnJXNcbicgJyMjIC0tLS0tLS0tLS0tLS0tLS0gIyMK IyMgVGVzdGVkIHByb2dyYW1zLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tICMjJworIGVjaG8KKysg ZXZhbCBlY2hvICciYmlzb24iJworKysgZWNobyBiaXNvbgorIGZvciBhdF9wcm9ncmFtIGluIDog YGV2YWwgZWNobyAkYXRfdGVzdGVkYAorIHRlc3QgOiA9IDoKKyBjb250aW51ZQorIGZvciBhdF9w cm9ncmFtIGluIDogYGV2YWwgZWNobyAkYXRfdGVzdGVkYAorIHRlc3QgYmlzb24gPSA6CisgY2Fz ZSAkYXRfcHJvZ3JhbSBpbgorIGFzX3NhdmVfSUZTPScgCQonCisgSUZTPToKKyBmb3IgYXNfZGly IGluICRQQVRICisgSUZTPScgCQonCisgY2FzZSAkYXNfZGlyIGluCisgYXNfZGlyPS9idWlsZHMv bXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3Rz LworIHRlc3QgLWYgL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlz b24vYnVpbGQvYW1kNjQvdGVzdHMvYmlzb24KKyBicmVhaworIElGUz0nIAkKJworIGF0X3Byb2dy YW1fPS9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxk L2FtZDY0L3Rlc3RzL2Jpc29uCisgdGVzdCAtZiAvYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlz b24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy9iaXNvbgorIHByaW50ZiAnJXNc bicgJyMjIC0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSdW5uaW5nIHRoZSB0ZXN0cy4gIyMKIyMg LS0tLS0tLS0tLS0tLS0tLS0tICMjJworKyBkYXRlCisgYXRfc3RhcnRfZGF0ZT0nV2VkIERlYyAg OSAxMDowMDo1NCBDRVQgMjAyMCcKKysgZGF0ZSArJXMKKyBhdF9zdGFydF90aW1lPTE2MDc1MDQ0 NTQKKyBwcmludGYgJyVzXG4nICd0ZXN0c3VpdGU6IHN0YXJ0aW5nIGF0OiBXZWQgRGVjICA5IDEw OjAwOjU0IENFVCAyMDIwJworIGFzX2Rpcj0vYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24v Y29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy90ZXN0c3VpdGUuZGlyCisgYXNfZm5f bWtkaXJfcAorIGNhc2UgJGFzX2RpciBpbgorIHRlc3QgLWQgL2J1aWxkcy9tcmVoYWsvd29ya3Nw YWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1aXRlLmRp cgorIGRpZmYgL2Rldi9udWxsIC9kZXYvbnVsbAorIGF0X2Rldm51bGw9L2Rldi9udWxsCisrIGRp ZmYgLXUgL2Rldi9udWxsIC9kZXYvbnVsbAorIGF0X2RpZmY9CisgdGVzdCAteiAnJworIGF0X2Rp ZmY9J2RpZmYgLXUnCisgZm9yIGF0X2dyb3VwIGluIDogJGF0X2dyb3VwcworIDoKKyBmb3IgYXRf Z3JvdXAgaW4gOiAkYXRfZ3JvdXBzCisgOgorIGF3ayAnCkJFR0lOIHsgRlM9IgciIH0KL14jQVRf U1RBUlRfLyB7CiAgc3RhcnQgPSBOUgp9Ci9eI0FUX1NUT1BfLyB7CiAgdGVzdCA9IHN1YnN0ciAo JCAwLCAxMCkKICBwcmludCAiYXRfc2VkIiB0ZXN0ICI9XCIxLCIgc3RhcnQgImQ7IiAoTlItMSkg InFcIiIKICBpZiAodGVzdCA9PSAiNCIpIGV4aXQKfScgL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNl L2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvLi90ZXN0c3VpdGUKKyAu IC9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2Ft ZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvYXQtc291cmNlLWxpbmVzCisrIGF0X3NlZDE9JzEsMjgw NmQ7Mjk4MnEnCisrIGF0X3NlZDI9JzEsMjk4NGQ7MzA3M3EnCisrIGF0X3NlZDM9JzEsMzA3NWQ7 MzE0NHEnCisrIGF0X3NlZDQ9JzEsMzE0NmQ7MzI1MHEnCisgcm0gLWYgL2J1aWxkcy9tcmVoYWsv d29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1 aXRlLmRpci9hdC1zb3VyY2UtbGluZXMKKyBzZXQgWCA0Cisgc2hpZnQKKyBhdF9tYXhfam9icz0x CisgdGVzdCAxIC1lcSAwCisgdGVzdCAxIC1uZSAxCisgdGVzdCAxIC1uZSAxCisgcm0gLXJmIC9i dWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0 L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvYXQtZ3JvdXBzCisgbWtkaXIgL2J1aWxkcy9tcmVoYWsvd29y a3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1aXRl LmRpci9hdC1ncm91cHMKKyBjZCAvYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9u ZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy90ZXN0c3VpdGUuZGlyL2F0LWdyb3VwcworIHRl c3QgLXogNAorIG1rZGlyIDQKKyBzZXQgK2IKKyBhdF9qb2JfY29udHJvbF9vbj0nc2V0IC1tJwor IGF0X2pvYl9jb250cm9sX29mZj0nc2V0ICttJworIGF0X2pvYl9ncm91cD0tCisgZm9yIGF0X3Np Z25hbCBpbiAxIDIgMTUKKyB0cmFwICdzZXQgK3g7IHNldCArZQoJJGF0X2pvYl9jb250cm9sX29m ZgoJYXRfc2lnbmFsPTEKCWVjaG8gc3RvcCA+ICIkYXRfc3RvcF9maWxlIgoJdHJhcCAiIiAkYXRf c2lnbmFsCglhdF9wZ2lkcz0KCWZvciBhdF9wZ2lkIGluIGBqb2JzIC1wIDI+L2Rldi9udWxsYDsg ZG8KCSAgYXRfcGdpZHM9IiRhdF9wZ2lkcyAkYXRfam9iX2dyb3VwJGF0X3BnaWQiCglkb25lCgl0 ZXN0IC16ICIkYXRfcGdpZHMiIHx8IGtpbGwgLSRhdF9zaWduYWwgJGF0X3BnaWRzIDI+L2Rldi9u dWxsCgl3YWl0CglpZiB0ZXN0ICIkYXRfam9icyIgLWVxIDEgfHwgdGVzdCAteiAiJGF0X3ZlcmJv c2UiOyB0aGVuCgkgIGVjaG8gPiYyCglmaQoJYXRfc2lnbmFtZT1ga2lsbCAtbCAkYXRfc2lnbmFs IDI+JjEgfHwgZWNobyAkYXRfc2lnbmFsYAoJc2V0IHggJGF0X3NpZ25hbWUKCXRlc3QgMCAtZ3Qg MiAmJiBhdF9zaWduYW1lPSRhdF9zaWduYWwKCXsgcHJpbnRmICIlc1xuIiAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBjYXVnaHQgc2lnbmFsICRhdF9zaWduYW1lLCBiYWls aW5nIG91dCIgPiY1CnByaW50ZiAiJXNcbiIgIiRhc19tZTogV0FSTklORzogY2F1Z2h0IHNpZ25h bCAkYXRfc2lnbmFtZSwgYmFpbGluZyBvdXQiID4mMjt9Cglhc19mbl9hcml0aCAxMjggKyAkYXRf c2lnbmFsICYmIGV4aXRfc3RhdHVzPSRhc192YWwKCWFzX2ZuX2V4aXQgJGV4aXRfc3RhdHVzJyAx CisgZm9yIGF0X3NpZ25hbCBpbiAxIDIgMTUKKyB0cmFwICdzZXQgK3g7IHNldCArZQoJJGF0X2pv Yl9jb250cm9sX29mZgoJYXRfc2lnbmFsPTIKCWVjaG8gc3RvcCA+ICIkYXRfc3RvcF9maWxlIgoJ dHJhcCAiIiAkYXRfc2lnbmFsCglhdF9wZ2lkcz0KCWZvciBhdF9wZ2lkIGluIGBqb2JzIC1wIDI+ L2Rldi9udWxsYDsgZG8KCSAgYXRfcGdpZHM9IiRhdF9wZ2lkcyAkYXRfam9iX2dyb3VwJGF0X3Bn aWQiCglkb25lCgl0ZXN0IC16ICIkYXRfcGdpZHMiIHx8IGtpbGwgLSRhdF9zaWduYWwgJGF0X3Bn aWRzIDI+L2Rldi9udWxsCgl3YWl0CglpZiB0ZXN0ICIkYXRfam9icyIgLWVxIDEgfHwgdGVzdCAt eiAiJGF0X3ZlcmJvc2UiOyB0aGVuCgkgIGVjaG8gPiYyCglmaQoJYXRfc2lnbmFtZT1ga2lsbCAt bCAkYXRfc2lnbmFsIDI+JjEgfHwgZWNobyAkYXRfc2lnbmFsYAoJc2V0IHggJGF0X3NpZ25hbWUK CXRlc3QgMCAtZ3QgMiAmJiBhdF9zaWduYW1lPSRhdF9zaWduYWwKCXsgcHJpbnRmICIlc1xuIiAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBjYXVnaHQgc2lnbmFsICRhdF9z aWduYW1lLCBiYWlsaW5nIG91dCIgPiY1CnByaW50ZiAiJXNcbiIgIiRhc19tZTogV0FSTklORzog Y2F1Z2h0IHNpZ25hbCAkYXRfc2lnbmFtZSwgYmFpbGluZyBvdXQiID4mMjt9Cglhc19mbl9hcml0 aCAxMjggKyAkYXRfc2lnbmFsICYmIGV4aXRfc3RhdHVzPSRhc192YWwKCWFzX2ZuX2V4aXQgJGV4 aXRfc3RhdHVzJyAyCisgZm9yIGF0X3NpZ25hbCBpbiAxIDIgMTUKKyB0cmFwICdzZXQgK3g7IHNl dCArZQoJJGF0X2pvYl9jb250cm9sX29mZgoJYXRfc2lnbmFsPTE1CgllY2hvIHN0b3AgPiAiJGF0 X3N0b3BfZmlsZSIKCXRyYXAgIiIgJGF0X3NpZ25hbAoJYXRfcGdpZHM9Cglmb3IgYXRfcGdpZCBp biBgam9icyAtcCAyPi9kZXYvbnVsbGA7IGRvCgkgIGF0X3BnaWRzPSIkYXRfcGdpZHMgJGF0X2pv Yl9ncm91cCRhdF9wZ2lkIgoJZG9uZQoJdGVzdCAteiAiJGF0X3BnaWRzIiB8fCBraWxsIC0kYXRf c2lnbmFsICRhdF9wZ2lkcyAyPi9kZXYvbnVsbAoJd2FpdAoJaWYgdGVzdCAiJGF0X2pvYnMiIC1l cSAxIHx8IHRlc3QgLXogIiRhdF92ZXJib3NlIjsgdGhlbgoJICBlY2hvID4mMgoJZmkKCWF0X3Np Z25hbWU9YGtpbGwgLWwgJGF0X3NpZ25hbCAyPiYxIHx8IGVjaG8gJGF0X3NpZ25hbGAKCXNldCB4 ICRhdF9zaWduYW1lCgl0ZXN0IDAgLWd0IDIgJiYgYXRfc2lnbmFtZT0kYXRfc2lnbmFsCgl7IHBy aW50ZiAiJXNcbiIgIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogY2F1Z2h0 IHNpZ25hbCAkYXRfc2lnbmFtZSwgYmFpbGluZyBvdXQiID4mNQpwcmludGYgIiVzXG4iICIkYXNf bWU6IFdBUk5JTkc6IGNhdWdodCBzaWduYWwgJGF0X3NpZ25hbWUsIGJhaWxpbmcgb3V0IiA+JjI7 fQoJYXNfZm5fYXJpdGggMTI4ICsgJGF0X3NpZ25hbCAmJiBleGl0X3N0YXR1cz0kYXNfdmFsCglh c19mbl9leGl0ICRleGl0X3N0YXR1cycgMTUKKyBybSAtZiAvYnVpbGRzL21yZWhhay93b3Jrc3Bh Y2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy90ZXN0c3VpdGUuZGly L2F0LXN0b3AKKyBhdF9maXJzdD06CisgdGVzdCAxIC1uZSAxCisgZm9yIGF0X2dyb3VwIGluICRh dF9ncm91cHMKKyBhdF9mbl9ncm91cF9wcmVwYXJlCisgYXRfam9iX2Rpcj0vYnVpbGRzL21yZWhh ay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy90ZXN0 c3VpdGUuZGlyL2F0LWdyb3Vwcy80CisgYXRfY2hlY2tfbGluZV9maWxlPS9idWlsZHMvbXJlaGFr L3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3Rz dWl0ZS5kaXIvYXQtZ3JvdXBzLzQvY2hlY2stbGluZQorIGF0X3N0YXR1c19maWxlPS9idWlsZHMv bXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3Rz L3Rlc3RzdWl0ZS5kaXIvYXQtZ3JvdXBzLzQvc3RhdHVzCisgYXRfc3Rkb3V0PS9idWlsZHMvbXJl aGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rl c3RzdWl0ZS5kaXIvYXQtZ3JvdXBzLzQvc3Rkb3V0CisgYXRfc3RkZXIxPS9idWlsZHMvbXJlaGFr L3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3Rz dWl0ZS5kaXIvYXQtZ3JvdXBzLzQvc3RkZXIxCisgYXRfc3RkZXJyPS9idWlsZHMvbXJlaGFrL3dv cmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0 ZS5kaXIvYXQtZ3JvdXBzLzQvc3RkZXJyCisgYXRfdGVzdF9zb3VyY2U9L2J1aWxkcy9tcmVoYWsv d29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1 aXRlLmRpci9hdC1ncm91cHMvNC90ZXN0LXNvdXJjZQorIGF0X3RpbWVzX2ZpbGU9L2J1aWxkcy9t cmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMv dGVzdHN1aXRlLmRpci9hdC1ncm91cHMvNC90aW1lcworIGNkIC9idWlsZHMvbXJlaGFrL3dvcmtz cGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5k aXIKKyA6CisgYXRfZ3JvdXBfbm9ybWFsaXplZD00CisgZXZhbCAnd2hpbGUgOjsgZG8KICAgIGNh c2UgJGF0X2dyb3VwX25vcm1hbGl6ZWQgaW4gIygKICAgID8/PyopIGJyZWFrOzsKICAgIGVzYWMK ICAgIGF0X2dyb3VwX25vcm1hbGl6ZWQ9MCRhdF9ncm91cF9ub3JtYWxpemVkCiAgZG9uZScKKysg OgorKyBjYXNlICRhdF9ncm91cF9ub3JtYWxpemVkIGluCisrIGF0X2dyb3VwX25vcm1hbGl6ZWQ9 MDQKKysgOgorKyBjYXNlICRhdF9ncm91cF9ub3JtYWxpemVkIGluCisrIGF0X2dyb3VwX25vcm1h bGl6ZWQ9MDA0CisrIDoKKysgY2FzZSAkYXRfZ3JvdXBfbm9ybWFsaXplZCBpbgorKyBicmVhawor IGF0X2dyb3VwX2Rpcj0vYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9i aXNvbi9idWlsZC9hbWQ2NC90ZXN0cy90ZXN0c3VpdGUuZGlyLzAwNAorIGF0X2dyb3VwX2xvZz0v YnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2 NC90ZXN0cy90ZXN0c3VpdGUuZGlyLzAwNC90ZXN0c3VpdGUubG9nCisgdGVzdCAtZCAvYnVpbGRz L21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0 cy90ZXN0c3VpdGUuZGlyLzAwNAorIGZpbmQgL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29u L2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1aXRlLmRpci8wMDQgLXR5 cGUgZCAnIScgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCAne30nICc7JworIHJtIC1mciAv YnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2 NC90ZXN0cy90ZXN0c3VpdGUuZGlyLzAwNC9pbnB1dC55IC9idWlsZHMvbXJlaGFrL3dvcmtzcGFj ZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIv MDA0L3J1biAvYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9i dWlsZC9hbWQ2NC90ZXN0cy90ZXN0c3VpdGUuZGlyLzAwNC9zdGRlcnIgL2J1aWxkcy9tcmVoYWsv d29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1 aXRlLmRpci8wMDQvdGVzdHN1aXRlLmxvZyAnL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29u L2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1aXRlLmRpci8wMDQvLlsh Ll0nICcvYnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWls ZC9hbWQ2NC90ZXN0cy90ZXN0c3VpdGUuZGlyLzAwNC8uPz8qJworIGFzX2Rpcj0vYnVpbGRzL21y ZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy90 ZXN0c3VpdGUuZGlyLzAwNAorIGFzX2ZuX21rZGlyX3AKKyBjYXNlICRhc19kaXIgaW4KKyB0ZXN0 IC1kIC9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxk L2FtZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvMDA0CisgZWNobyAwCisgdGVzdCAteiAnJworIGF0 X3RlZV9waXBlPSd0ZWUgLWEgIiRhdF9ncm91cF9sb2ciJworIGNkIC9idWlsZHMvbXJlaGFrL3dv cmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0 ZS5kaXIvMDA0CisgYXRfZm5fdGVzdCA0CisgZXZhbCAnYXRfc2VkPSRhdF9zZWQ0JworKyBhdF9z ZWQ9JzEsMzE0NmQ7MzI1MHEnCisgc2VkICcxLDMxNDZkOzMyNTBxJyAvYnVpbGRzL21yZWhhay93 b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy8uL3Rlc3Rz dWl0ZQorIC4gL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24v YnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1aXRlLmRpci9hdC1ncm91cHMvNC90ZXN0LXNvdXJjZQor KyBhdF9mbl9ncm91cF9iYW5uZXIgNCBpbnB1dC5hdDo4MyAnSW52YWxpZCBpbnB1dHMnICcgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIDIKKysgYXRfc2V0dXBfbGluZT1pbnB1dC5h dDo4MworKyB0ZXN0IC1uIDIKKysgYXRfZm5fYmFubmVyIDIKKysgZmFsc2UKKysgcmV0dXJuIDAK KysgYXRfZGVzYz0nSW52YWxpZCBpbnB1dHMnCisrIGNhc2UgJDEgaW4KKysgYXRfZGVzY19saW5l PScgIDQ6ICcKKysgYXNfZm5fYXBwZW5kIGF0X2Rlc2NfbGluZSAnSW52YWxpZCBpbnB1dHMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnCisrIGV2YWwgJ2F0X2Rlc2NfbGluZSs9JDIn CisrKyBhdF9kZXNjX2xpbmUrPSdJbnZhbGlkIGlucHV0cyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICcKKysgOiBwcmludGYgJXMgJyAgNDogSW52YWxpZCBpbnB1dHMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnCisrIGVjaG8gJyMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0qLSBjb21waWxhdGlvbiAtKi0nCisrIGF0X3hmYWlsPW5vCisrIGV2YWwgdGVlIC1h ICciJGF0X2dyb3VwX2xvZyInCisrKyB0ZWUgLWEgL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jp c29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1aXRlLmRpci8wMDQv dGVzdHN1aXRlLmxvZworKyBwcmludGYgJyVzXG4nICc0LiBpbnB1dC5hdDo4MzogdGVzdGluZyBJ bnZhbGlkIGlucHV0cyAuLi4nCjQuIGlucHV0LmF0OjgzOiB0ZXN0aW5nIEludmFsaWQgaW5wdXRz IC4uLgorKyA6CisrIGNhdAorKyBzZXQgK3gKL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29u L2NvbXBvbmVudHMvYmlzb24vYmlzb24tMy43LjMvdGVzdHMvaW5wdXQuYXQ6OTY6ICIkUEVSTCIg LXBpIC1lICdzL1xcKFxkezN9KS9jaHIob2N0KCQxKSkvZ2UnIGlucHV0LnkgfHwgZXhpdCA3Nwov YnVpbGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcu My90ZXN0cy9pbnB1dC5hdDo5ODogQ09MVU1OUz0xMDAwOyBleHBvcnQgQ09MVU1OUzsgTk9fVEVS TV9IWVBFUkxJTktTPTE7IGV4cG9ydCBOT19URVJNX0hZUEVSTElOS1M7IFZBTEdSSU5EX09QVFM9 IiRWQUxHUklORF9PUFRTIC0tbGVhay1jaGVjaz1zdW1tYXJ5IC0tc2hvdy1yZWFjaGFibGU9bm8i OyBleHBvcnQgVkFMR1JJTkRfT1BUUzsgIGJpc29uIC0tY29sb3I9bm8gLWZuby1jYXJldCAtZmNh cmV0IGlucHV0LnkKc3RkZXJyOgppbnB1dC55OjEuMS0yOiBlcnJvcjogaW52YWxpZCBjaGFyYWN0 ZXJzOiAnXDBcMDAxXDAwMlwzNzc/JwogICAgMSB8IAEC/z8KICAgICAgfCBefgppbnB1dC55OjIu MjogZXJyb3I6IGludmFsaWQgbnVsbCBjaGFyYWN0ZXIKICAgIDIgfCAiIgogICAgICB8ICBeCmlu cHV0Lnk6NC4xOiBlcnJvcjogaW52YWxpZCBjaGFyYWN0ZXI6ICc/JwogICAgNCB8ID8KICAgICAg fCBeCmlucHV0Lnk6NS4xNDogZXJyb3I6IGludmFsaWQgY2hhcmFjdGVyOiAnfScKICAgIDUgfCBk ZWZhdWx0OiAnYScgfQogICAgICB8ICAgICAgICAgICAgICBeCmlucHV0Lnk6Ni4xOiBlcnJvcjog aW52YWxpZCBjaGFyYWN0ZXI6ICclJwogICAgNiB8ICUmCiAgICAgIHwgXgppbnB1dC55OjYuMjog ZXJyb3I6IGludmFsaWQgY2hhcmFjdGVyOiAnJicKICAgIDYgfCAlJgogICAgICB8ICBeCmlucHV0 Lnk6Ny4xLTE3OiBlcnJvcjogaW52YWxpZCBkaXJlY3RpdmU6ICclYS1kb2VzLW5vdC1leGlzdCcK ICAgIDcgfCAlYS1kb2VzLW5vdC1leGlzdAogICAgICB8IF5+fn5+fn5+fn5+fn5+fn5+CmlucHV0 Lnk6OC4xOiBlcnJvcjogaW52YWxpZCBjaGFyYWN0ZXI6ICclJwogICAgOCB8ICUtCiAgICAgIHwg XgppbnB1dC55OjguMjogZXJyb3I6IGludmFsaWQgY2hhcmFjdGVyOiAnLScKICAgIDggfCAlLQog ICAgICB8ICBeCmlucHV0Lnk6OS4xLTEwLjA6IGVycm9yOiBtaXNzaW5nICclfScgYXQgZW5kIG9m IGZpbGUKICAgIDkgfCAlewogICAgICB8IF5+Ci9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNv bi9jb21wb25lbnRzL2Jpc29uL2Jpc29uLTMuNy4zL3Rlc3RzL2lucHV0LmF0OjEwMjogIiRQRVJM IiAtcCAtZSAnc3soW1wwXDM3N10pfXtzcHJpbnRmICJcXHglMDJ4Iiwgb3JkKCQxKX1nZScgc3Rk ZXJyCi0tLSAtCTIwMjAtMTItMDkgMTA6MDA6NTQuNDIyMTIwNDAyICswMTAwCisrKyAvYnVpbGRz L21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0 cy90ZXN0c3VpdGUuZGlyL2F0LWdyb3Vwcy80L3N0ZG91dAkyMDIwLTEyLTA5IDEwOjAwOjU0LjQy MDk2OTQ0NCArMDEwMApAQCAtMSw4ICsxLDggQEAKIGlucHV0Lnk6MS4xLTI6IGVycm9yOiBpbnZh bGlkIGNoYXJhY3RlcnM6ICdcMFwwMDFcMDAyXDM3Nz8nCi0gICAgMSB8IFx4MDABAlx4ZmY/Cisg ICAgMSB8IAECXHhmZj8KICAgICAgIHwgXn4KIGlucHV0Lnk6Mi4yOiBlcnJvcjogaW52YWxpZCBu dWxsIGNoYXJhY3RlcgotICAgIDIgfCAiXHgwMCIKKyAgICAyIHwgIiIKICAgICAgIHwgIF4KIGlu cHV0Lnk6NC4xOiBlcnJvcjogaW52YWxpZCBjaGFyYWN0ZXI6ICc/JwogICAgIDQgfCA/CisrIHJl YWQgYXRfc3RhdHVzCisgOgorIGF0X2ZuX2dyb3VwX3Bvc3Rwcm9jZXNzCisgY2QgL2J1aWxkcy9t cmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMv dGVzdHN1aXRlLmRpcgorIHRlc3QgJyEnIC1mIC9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNv bi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvYXQtZ3Jv dXBzLzQvY2hlY2stbGluZQorIHByaW50ZiAlcyAnNC4gaW5wdXQuYXQ6ODM6ICcKNC4gaW5wdXQu YXQ6ODM6ICsgcHJpbnRmICVzICc0LiBpbnB1dC5hdDo4MzogJworIGNhc2UgJGF0X3hmYWlsOiRh dF9zdGF0dXMgaW4KKysgY2F0IC9idWlsZHMvbXJlaGFrL3dvcmtzcGFjZS9iaXNvbi9jb21wb25l bnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvYXQtZ3JvdXBzLzQvY2hl Y2stbGluZQorIGF0X21zZz0nRkFJTEVEIChpbnB1dC5hdDoxMDIpJworIGF0X3Jlcz1mYWlsCisg YXRfZXJyZXhpdD1mYWxzZQorIGF0X2NvbG9yPQorIGVjaG8gZmFpbAorIHRlc3QgMSAtbmUgMQor IHByaW50ZiAnJXNcbicgJyBGQUlMRUQgKGlucHV0LmF0OjEwMiknCiBGQUlMRUQgKGlucHV0LmF0 OjEwMikKKyBhdF9sb2dfbXNnPSc0LiBJbnZhbGlkIGlucHV0cyAoaW5wdXQuYXQ6ODMpOiBGQUlM RUQgKGlucHV0LmF0OjEwMiknCisgY2FzZSAkYXRfc3RhdHVzIGluCisgcHJpbnRmICclc1xuJyAn NC4gSW52YWxpZCBpbnB1dHMgKGlucHV0LmF0OjgzKTogRkFJTEVEIChpbnB1dC5hdDoxMDIpJwor IGF0X2ZuX2NyZWF0ZV9kZWJ1Z2dpbmdfc2NyaXB0CisgZWNobyAnIyEgL2Jpbi9zaCcKKyBlY2hv ICd0ZXN0ICR7WlNIX1ZFUlNJT04reX0gJiYgYWxpYXMgLWcgJ1wnJyR7MSsiJEAifSdcJyc9J1wn JyIkQCInXCcnJworIHByaW50ZiAnJXNcbicgJ2NkICdcJycvYnVpbGRzL21yZWhhay93b3Jrc3Bh Y2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cydcJycnCisgcHJpbnRm ICclc1xuJyAnZXhlYyAke0NPTkZJR19TSEVMTC0vYmluL2Jhc2h9ICIvYnVpbGRzL21yZWhhay93 b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy8uL3Rlc3Rz dWl0ZSIgLXYgLWQgIDQgJHsxKyIkQCJ9JworIGVjaG8gJ2V4aXQgMScKKyBjaG1vZCAreCAvYnVp bGRzL21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90 ZXN0cy90ZXN0c3VpdGUuZGlyLzAwNC9ydW4KKyBmYWxzZQorIHRlc3QgLWYgL2J1aWxkcy9tcmVo YWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVz dHN1aXRlLmRpci9hdC1zdG9wCisgYXRfZmlyc3Q9ZmFsc2UKKyBjZCAvYnVpbGRzL21yZWhhay93 b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9idWlsZC9hbWQ2NC90ZXN0cy90ZXN0c3Vp dGUuZGlyL2F0LWdyb3VwcworKyBzZWQgJy9cKi9kOyBzLC9wYXNzLCwnCisrIGZvciBmIGluICov cGFzcworKyBlY2hvICcqL3Bhc3MnCisgYXRfcGFzc19saXN0PQorKyBzZWQgJy9cKi9kOyBzLC9z a2lwLCwnCisrIGZvciBmIGluICovc2tpcAorKyBlY2hvICcqL3NraXAnCisgYXRfc2tpcF9saXN0 PQorKyBzZWQgJy9cKi9kOyBzLC94ZmFpbCwsJworKyBmb3IgZiBpbiAqL3hmYWlsCisrIGVjaG8g JyoveGZhaWwnCisgYXRfeGZhaWxfbGlzdD0KKysgc2VkICcvPy9kOyBzLC94cGFzcywsJworKyBm b3IgZiBpbiA/L3hwYXNzID8/L3hwYXNzID8/Py94cGFzcyA/Pz8/L3hwYXNzCisrIGVjaG8gJz8v eHBhc3MnCisrIGZvciBmIGluID8veHBhc3MgPz8veHBhc3MgPz8/L3hwYXNzID8/Pz8veHBhc3MK KysgZWNobyAnPz8veHBhc3MnCisrIGZvciBmIGluID8veHBhc3MgPz8veHBhc3MgPz8/L3hwYXNz ID8/Pz8veHBhc3MKKysgZWNobyAnPz8/L3hwYXNzJworKyBmb3IgZiBpbiA/L3hwYXNzID8/L3hw YXNzID8/Py94cGFzcyA/Pz8/L3hwYXNzCisrIGVjaG8gJz8/Pz8veHBhc3MnCisgYXRfeHBhc3Nf bGlzdD0KKysgc2VkICcvPy9kOyBzLC9mYWlsLCwnCisrIGZvciBmIGluID8vZmFpbCA/Py9mYWls ID8/Py9mYWlsID8/Pz8vZmFpbAorKyBlY2hvIDQvZmFpbAorKyBmb3IgZiBpbiA/L2ZhaWwgPz8v ZmFpbCA/Pz8vZmFpbCA/Pz8/L2ZhaWwKKysgZWNobyAnPz8vZmFpbCcKKysgZm9yIGYgaW4gPy9m YWlsID8/L2ZhaWwgPz8/L2ZhaWwgPz8/Py9mYWlsCisrIGVjaG8gJz8/Py9mYWlsJworKyBmb3Ig ZiBpbiA/L2ZhaWwgPz8vZmFpbCA/Pz8vZmFpbCA/Pz8/L2ZhaWwKKysgZWNobyAnPz8/Py9mYWls JworIGF0X2ZhaWxfbGlzdD00Cisgc2V0IFggNAorIHNoaWZ0CisgYXRfZ3JvdXBfY291bnQ9MQor IHNldCBYCisgc2hpZnQKKyBhdF94cGFzc19jb3VudD0wCisgYXRfeHBhc3NfbGlzdD0KKyBzZXQg WAorIHNoaWZ0CisgYXRfeGZhaWxfY291bnQ9MAorIHNldCBYIDQKKyBzaGlmdAorIGF0X2ZhaWxf Y291bnQ9MQorIGF0X2ZhaWxfbGlzdD00Cisgc2V0IFgKKyBzaGlmdAorIGF0X3NraXBfY291bnQ9 MAorIGFzX2ZuX2FyaXRoIDEgLSAwCisgYXNfdmFsPTEKKyBhdF9ydW5fY291bnQ9MQorIGFzX2Zu X2FyaXRoIDAgKyAxCisgYXNfdmFsPTEKKyBhdF91bmV4cGVjdGVkX2NvdW50PTEKKyBhc19mbl9h cml0aCAwICsgMQorIGFzX3ZhbD0xCisgYXRfdG90YWxfZmFpbF9jb3VudD0xCisgY2QgL2J1aWxk cy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVz dHMKKyBybSAtcmYgL2J1aWxkcy9tcmVoYWsvd29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlz b24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1aXRlLmRpci9hdC1ncm91cHMKKysgZGF0ZQorIGF0 X3N0b3BfZGF0ZT0nV2VkIERlYyAgOSAxMDowMDo1NCBDRVQgMjAyMCcKKysgZGF0ZSArJXMKKyBh dF9zdG9wX3RpbWU9MTYwNzUwNDQ1NAorIHByaW50ZiAnJXNcbicgJ3Rlc3RzdWl0ZTogZW5kaW5n IGF0OiBXZWQgRGVjICA5IDEwOjAwOjU0IENFVCAyMDIwJworIGNhc2UgJGF0X3N0YXJ0X3RpbWUs JGF0X3N0b3BfdGltZSBpbgorIGFzX2ZuX2FyaXRoIDE2MDc1MDQ0NTQgLSAxNjA3NTA0NDU0Cisg YXNfdmFsPTAKKyBhdF9kdXJhdGlvbl9zPTAKKyBhc19mbl9hcml0aCAwIC8gNjAKKyBhc192YWw9 MAorIGF0X2R1cmF0aW9uX209MAorIGFzX2ZuX2FyaXRoIDAgLyA2MAorIGFzX3ZhbD0wCisgYXRf ZHVyYXRpb25faD0wCisgYXNfZm5fYXJpdGggMCAlIDYwCisgYXNfdmFsPTAKKyBhdF9kdXJhdGlv bl9zPTAKKyBhc19mbl9hcml0aCAwICUgNjAKKyBhc192YWw9MAorIGF0X2R1cmF0aW9uX209MAor IGF0X2R1cmF0aW9uPScwaCAwbSAwcycKKyBwcmludGYgJyVzXG4nICd0ZXN0c3VpdGU6IHRlc3Qg c3VpdGUgZHVyYXRpb246IDBoIDBtIDBzJworIGVjaG8KCisgcHJpbnRmICclc1xuJyAnIyMgLS0t LS0tLS0tLS0tLSAjIwojIyBUZXN0IHJlc3VsdHMuICMjCiMjIC0tLS0tLS0tLS0tLS0gIyMnCiMj IC0tLS0tLS0tLS0tLS0gIyMKIyMgVGVzdCByZXN1bHRzLiAjIwojIyAtLS0tLS0tLS0tLS0tICMj CisgZWNobwoKKyBlY2hvCisgcHJpbnRmICclc1xuJyAnIyMgLS0tLS0tLS0tLS0tLSAjIwojIyBU ZXN0IHJlc3VsdHMuICMjCiMjIC0tLS0tLS0tLS0tLS0gIyMnCisgZWNobworIHRlc3QgMSA9IDEK KyBhdF9yZXN1bHQ9JzEgdGVzdCcKKyBhdF93ZXJlPXdhcworIGZhbHNlCisgYXRfY29sb3I9Cisg Y2FzZSAkYXRfeHBhc3NfY291bnQ6JGF0X2ZhaWxfY291bnQ6JGF0X3hmYWlsX2NvdW50IGluCisg YXRfcmVzdWx0PScxIHRlc3Qgd2FzIHJ1biwKMSBmYWlsZWQgdW5leHBlY3RlZGx5LicKKyB0ZXN0 IDAgPSAwCisgdGVzdCAxIC1ndCAxCisgY2FzZSAkYXRfc2tpcF9jb3VudCBpbgorIHRlc3QgMSA9 IDAKKyBlY2hvICdFUlJPUjogMSB0ZXN0IHdhcyBydW4sCjEgZmFpbGVkIHVuZXhwZWN0ZWRseS4n CkVSUk9SOiAxIHRlc3Qgd2FzIHJ1biwKMSBmYWlsZWQgdW5leHBlY3RlZGx5LgorIGVjaG8gJ0VS Uk9SOiAxIHRlc3Qgd2FzIHJ1biwKMSBmYWlsZWQgdW5leHBlY3RlZGx5LicKKyBlY2hvCisgcHJp bnRmICclc1xuJyAnIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFN1bW1hcnkgb2Yg dGhlIGZhaWx1cmVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMnCisgdGVzdCAx ICchPScgMAorIGVjaG8gJ0ZhaWxlZCB0ZXN0czonCisgL2Jpbi9iYXNoIC9idWlsZHMvbXJlaGFr L3dvcmtzcGFjZS9iaXNvbi9jb21wb25lbnRzL2Jpc29uL2J1aWxkL2FtZDY0L3Rlc3RzLy4vdGVz dHN1aXRlIDQgLS1saXN0CisgZWNobworIHRlc3QgMCAnIT0nIDAKKyB0ZXN0IDAgJyE9JyAwCisg dGVzdCAxICchPScgMAorIHByaW50ZiAnJXNcbicgJyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKIyMgRGV0YWlsZWQgZmFpbGVkIHRlc3RzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMjJworIGVjaG8KKyBmb3IgYXRfZ3JvdXAgaW4gJGF0X2ZhaWxfbGlzdAorIGF0X2dyb3VwX25v cm1hbGl6ZWQ9NAorIGV2YWwgJ3doaWxlIDo7IGRvCiAgICBjYXNlICRhdF9ncm91cF9ub3JtYWxp emVkIGluICMoCiAgICA/Pz8qKSBicmVhazs7CiAgICBlc2FjCiAgICBhdF9ncm91cF9ub3JtYWxp emVkPTAkYXRfZ3JvdXBfbm9ybWFsaXplZAogIGRvbmUnCisrIDoKKysgY2FzZSAkYXRfZ3JvdXBf bm9ybWFsaXplZCBpbgorKyBhdF9ncm91cF9ub3JtYWxpemVkPTA0CisrIDoKKysgY2FzZSAkYXRf Z3JvdXBfbm9ybWFsaXplZCBpbgorKyBhdF9ncm91cF9ub3JtYWxpemVkPTAwNAorKyA6CisrIGNh c2UgJGF0X2dyb3VwX25vcm1hbGl6ZWQgaW4KKysgYnJlYWsKKyBjYXQgL2J1aWxkcy9tcmVoYWsv d29ya3NwYWNlL2Jpc29uL2NvbXBvbmVudHMvYmlzb24vYnVpbGQvYW1kNjQvdGVzdHMvdGVzdHN1 aXRlLmRpci8wMDQvdGVzdHN1aXRlLmxvZworIGVjaG8KKyBlY2hvCisgdGVzdCAtbiAvYnVpbGRz L21yZWhhay93b3Jrc3BhY2UvYmlzb24vY29tcG9uZW50cy9iaXNvbi9iaXNvbi0zLjcuMworIHNl ZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnCisgc2VkICdzL14v fCAvJyAuLi9jb25maWcubG9nCisgZWNobworIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3Mv Li4uJC8gIyMvO3A7eDtwO3gnCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIHRl c3RzdWl0ZS5sb2cgd2FzIGNyZWF0ZWQuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMjCisgZWNobwoKKyA6CisgYXRfbXNnPSdwZXItdGVzdCBsb2cgZmlsZXMnCisgYXRfbXNnMWE9 CisgYXRfbXNnMT0nNCBmYWlsZWQnCisgYXRfbXNnMj0KKyBwcmludGYgJyVzXG4nICdQbGVhc2Ug c2VuZCBwZXItdGVzdCBsb2cgZmlsZXMgYW5kIGFsbCBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWln aHQgaGVscDoKCiAgIFRvOiA8YnVnLWJpc29uQGdudS5vcmc+CiAgIFN1YmplY3Q6IFtHTlUgQmlz b24gMy43LjNdIHRlc3RzdWl0ZTogNCBmYWlsZWQKCllvdSBtYXkgaW52ZXN0aWdhdGUgYW55IHBy b2JsZW0gaWYgeW91IGZlZWwgYWJsZSB0byBkbyBzbywgaW4gd2hpY2gKY2FzZSB0aGUgdGVzdCBz dWl0ZSBwcm92aWRlcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuICBJdHMgb3V0cHV0IG1heQpiZSBm b3VuZCBiZWxvdyBgdGVzdHMvdGVzdHN1aXRlLmRpcidcJycuCicKUGxlYXNlIHNlbmQgcGVyLXRl c3QgbG9nIGZpbGVzIGFuZCBhbGwgaW5mb3JtYXRpb24geW91IHRoaW5rIG1pZ2h0IGhlbHA6Cgog ICBUbzogPGJ1Zy1iaXNvbkBnbnUub3JnPgogICBTdWJqZWN0OiBbR05VIEJpc29uIDMuNy4zXSB0 ZXN0c3VpdGU6IDQgZmFpbGVkCgpZb3UgbWF5IGludmVzdGlnYXRlIGFueSBwcm9ibGVtIGlmIHlv dSBmZWVsIGFibGUgdG8gZG8gc28sIGluIHdoaWNoCmNhc2UgdGhlIHRlc3Qgc3VpdGUgcHJvdmlk ZXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiAgSXRzIG91dHB1dCBtYXkKYmUgZm91bmQgYmVsb3cg YHRlc3RzL3Rlc3RzdWl0ZS5kaXInLgoKKyBleGl0IDEK --=-L1ercko6A/nhd3T04OiM-- From MAILER-DAEMON Thu Dec 10 19:35:49 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1knWPV-0000sL-HZ for mharc-bug-bison@gnu.org; Thu, 10 Dec 2020 19:35:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44618) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knWPL-0000rT-QC for bug-bison@gnu.org; Thu, 10 Dec 2020 19:35:42 -0500 Received: from smtp-out-no.shaw.ca ([64.59.134.12]:51658) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knWPH-0007C4-Vv for bug-bison@gnu.org; Thu, 10 Dec 2020 19:35:38 -0500 Received: from cds201.dcs.int.inet ([10.0.153.91]) by shaw.ca with ESMTP id nWPDkVbCutdldnWPEk69Ps; Thu, 10 Dec 2020 17:35:32 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shaw.ca; s=s20180605; t=1607646932; bh=Gw2iuaz4+EL54F1Br8NaeZo4t90CZ8hdNaITYsQDeEg=; h=Date:From:To:Subject; b=VFTwcxRq1t5i66eOH+6KOevJzHfi5WYPn/zCSju9YxM40TRxQSvWQaXtm03qBmb98 ao0DWLGKVFPbbbWAFbvf7da9YOe/km2ok7voBKon3shOEZB0wd/kaDMRX1bp1Sr1gb Jbg78XJ+V0H7E+cW04dMwVDzNzrmg20oGI1plyj6lvxdGndw3QjKHgrMNu0DG5vcq6 Zq2wQoBgkUfWyH1qcyc+lmLtrrHm0yVcAV9LyRdAJeq00syC3uJ3Luu3ds0Y54D/x6 W8deDltBPGkBt638i1VO68bFy6I6IlcPG1d4q0BGDZEYCCCuEPy6/7aqe0iFLFR+ND AXMYVCHUI5PFA== X-Authority-Analysis: v=2.4 cv=INe8tijG c=1 sm=1 tr=0 ts=5fd2bed4 a=GAU1nFYnozB6uKdotKweJA==:117 a=FKkrIqjQGGEA:10 a=twRUS8McFIcA:10 a=ghclHpdzGxzoaRH2P9oA:9 a=QEXdDO2ut3YA:10 a=ycLq1XAyZdG12YPmG-AA:9 a=IKIoO-ieCDEA:10 a=Yy2xoct6d_2ZlxTvqP-Z:22 Date: Thu, 10 Dec 2020 17:35:30 -0700 (MST) From: Jot Dot To: bug-bison@gnu.org Message-ID: <1705107579.151067158.1607646930704.JavaMail.zimbra@shaw.ca> Subject: Heap Corruption using MSVC (found the issue) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_151067156_984273220.1607646930701" X-Originating-IP: [50.72.139.91, 50.72.139.91] X-Mailer: Zimbra 8.8.15_GA_3968 (ZimbraWebClient - GC87 (Win)/8.8.15_GA_3968) Thread-Index: CM5FBZYbG/08YjipJwU2KeIbHqgbHA== Thread-Topic: Heap Corruption using MSVC (found the issue) X-CMAE-Envelope: MS4xfEiZI/EDJShHH6ky4B75eB+dKAuQ29kLwrElVULBd1BDSnyJCGgeT+jhyMZDw41l5gh4wXc0qYf2UbqGCfvuJa4jIgNQIDkW8SSwNyS0tQPuFKGr6kkW RlpmuU8iuEj+f+HBn//n5uTmM41OiKsgfNFdjBBq5W6JGlPhg4VbzsJuhcEx5JMAaRTnXaBNkXf0ww== Received-SPF: pass client-ip=64.59.134.12; envelope-from=jotdot@shaw.ca; helo=smtp-out-no.shaw.ca X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Dec 2020 00:35:43 -0000 ------=_Part_151067156_984273220.1607646930701 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit re: Posting in help-bison, same topic I have isolated the problem with my code. If (in my .y file) I do not have this defined: %define parse.trace then I get a heap corruption error. By simply adding that line, the corruption disappears. Attached is a heavily chopped down MSVC solution that demonstrates it. The entire main program (in test.cpp) is simply: #include #include "driver.h" #include "scanner.h" int main(int argc, char* argv[]) { Driver driver; gen::Parser* pParser = new gen::Parser(&driver); // Heap corruption when the .y file does not have %define parse.trace // If we add the define, the corruption disappears delete pParser; // <<<=== Heap corruption detected return 0; } ------=_Part_151067156_984273220.1607646930701 Content-Type: application/zip; name=test.zip Content-Disposition: attachment; filename=test.zip Content-Transfer-Encoding: base64 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 AACMvAAAAAA= ------=_Part_151067156_984273220.1607646930701-- From MAILER-DAEMON Fri Dec 11 00:46:30 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1knbGA-0007Z2-EA for mharc-bug-bison@gnu.org; Fri, 11 Dec 2020 00:46:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45708) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knbG8-0007Yb-CB for bug-bison@gnu.org; Fri, 11 Dec 2020 00:46:28 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:42622) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knbG6-0000kN-KB for bug-bison@gnu.org; Fri, 11 Dec 2020 00:46:28 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id 4FB1342B74; Fri, 11 Dec 2020 06:46:16 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Heap Corruption using MSVC (found the issue) From: Akim Demaille In-Reply-To: <1705107579.151067158.1607646930704.JavaMail.zimbra@shaw.ca> Date: Fri, 11 Dec 2020 06:46:15 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: References: <1705107579.151067158.1607646930704.JavaMail.zimbra@shaw.ca> To: Jot Dot X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Dec 2020 05:46:28 -0000 Jot, > Le 11 d=C3=A9c. 2020 =C3=A0 01:35, Jot Dot a =C3=A9crit= : >=20 > re: Posting in help-bison, same topic >=20 > I have isolated the problem with my code. > If (in my .y file) I do not have this defined: >=20 > %define parse.trace >=20 > then I get a heap corruption error. > By simply adding that line, the corruption disappears. I spent an awful lot of time tracking your issue, which is: %code top { #define YYDEBUG 1 [...] } This is dead wrong. You are *compiling* the parser with YYDEBUG set, but to the rest of the application you expose a Parser class *without* YYDEBUG. So you have to different sizes for the same class in a one program, of course that does not work (does ODR ring a bell?). No wonder that %define parse.trace "fixes" your problem, since it defines *properly* YYDEBUG. Bottom line: stop messing with macros.= From MAILER-DAEMON Fri Dec 11 05:41:25 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1knfrY-0006J1-V4 for mharc-bug-bison@gnu.org; Fri, 11 Dec 2020 05:41:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50170) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knfrX-0006Ie-FL for bug-bison@gnu.org; Fri, 11 Dec 2020 05:41:23 -0500 Received: from smtp-out-no.shaw.ca ([64.59.134.12]:60021) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knfrS-0004LD-6i for bug-bison@gnu.org; Fri, 11 Dec 2020 05:41:23 -0500 Received: from cds201.dcs.int.inet ([10.0.153.91]) by shaw.ca with ESMTP id nfrKkYkw7tdldnfrLk77pT; Fri, 11 Dec 2020 03:41:12 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shaw.ca; s=s20180605; t=1607683272; bh=74XU9/JaX4KebDzSHHJD5NRmcm2WzDcQhutAPAfkrso=; h=Date:From:To:Cc:In-Reply-To:References:Subject; b=v7EA1Wxs93suhX+PI3xbM7gUNK7UadGIm0kZCBaoGFXXTW7vZIuFhRJvlPvA7wifn ZyXN8iUyXUyByt2KRAhMk0NugW3uk/v8qcFfPpfuqVqnNzrbtXvBxKRjiQgVlcDJzH YQrE4GrIssq/GEZK0U8BUzYIp3aYpRJalSbb+KXl1BHlBP7IGumojemR4ZPzRAS8Ga NOOKxbjVOpASsUvcYJ0ibKpOAHv+tKrgUx+oZaeuXoR/wPoy7D3wiKtyO6l+z/Iqdc UdCmwLXyjF6fOcMZrVQHzkTYpXFzLLj91SX4OXibKTQPOuVT/CKKpwsemEnQrFlhbE XhB13ZvNAaBYw== X-Authority-Analysis: v=2.4 cv=INe8tijG c=1 sm=1 tr=0 ts=5fd34cc8 a=GAU1nFYnozB6uKdotKweJA==:117 a=FKkrIqjQGGEA:10 a=twRUS8McFIcA:10 a=IkcTkHD0fZMA:10 a=mDV3o1hIAAAA:8 a=MbO4YNDo1nrarZsjfrAA:9 a=QEXdDO2ut3YA:10 a=G76DsmnX-ugA:10 a=PcA5aXaHcHwA:10 a=_FVE-zBwftR9WsbkzFJk:22 Date: Fri, 11 Dec 2020 03:41:10 -0700 (MST) From: Jot Dot To: Akim Demaille Cc: Bison Bugs Message-ID: <1761990728.152373820.1607683270793.JavaMail.zimbra@shaw.ca> In-Reply-To: References: <1705107579.151067158.1607646930704.JavaMail.zimbra@shaw.ca> Subject: Re: Heap Corruption using MSVC (found the issue) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [50.72.139.91, 50.72.139.91] X-Mailer: Zimbra 8.8.15_GA_3968 (ZimbraWebClient - GC87 (Win)/8.8.15_GA_3968) Thread-Topic: Heap Corruption using MSVC (found the issue) Thread-Index: XQnChDb99kUX8UbDMO+2ndXEBYrfiQ== X-CMAE-Envelope: MS4xfEHltpZU69vZUlNeA3rFoOH8Psx1ypsEItIgf0qxPos/lFxhwXwQsPlQUd4/3H5mrgs+611cEyKHZ6N5AQK3JgBjIy/nTcitgRnrfG/lZVE8I21DTbrk lh+kp9F9ZUDGoceqSzF1WZRfRFeIzMyk+mj6usBxZ0ot6scCPAVYTV/zDwsLMStmFQAgET4sOnKV/0FiqJUNXkaNVwzX1HDBfiM= Received-SPF: pass client-ip=64.59.134.12; envelope-from=jotdot@shaw.ca; helo=smtp-out-no.shaw.ca X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Dec 2020 10:41:23 -0000 Hello Akim, > I spent an awful lot of time tracking your issue, which is: >=20 > %code top > { > #define YYDEBUG 1 > [...] > } >=20 > This is dead wrong. You are *compiling* the parser with YYDEBUG > set, but to the rest of the application you expose a Parser class > *without* YYDEBUG. So you have to different sizes for the same > class in a one program, of course that does not work (does ODR > ring a bell?). Since the =E2=80=98parse.trace=E2=80=99 was commented out, we are left with= just the YYDEBUG macro. So I tested this and moved the macro from the %code top section to the %code requires section. I noticed that this placed the macro into the parser header, not just in the source file. Which makes perfect sense. Sorry, I missed that detail. That was the issue. Just say that :) I know what that mistake did - what you said above. >=20 > No wonder that %define parse.trace "fixes" your problem, since it > defines *properly* YYDEBUG. >=20 >=20 > Bottom line: stop messing with macros. Then change your manual to reflect this. https://www.gnu.org/software/bison/manual/html_node/Enabling-Traces.html YYDEBUG is still supported as a POSIX yacc compliant method (for c++ too) %define parse.trace is a Bison extension, thus not POSIX yacc compliant. quote just under the YYDEBUG part of that web page: "We suggest that you always enable the trace option so that debugging is al= ways possible." My take on that web page was that YYDEBUG is the minimum that should be ena= bled and that the Bison "extension" 'parse.trace' gives more info than the "stan= dard" YYDEBUG. I can see now that I was wrong. An "extension" extends. It usually does not mean "alternate way of doing ex= actly the same". >From what I am hearing, 'parse.trace' is just that. Borrowing your phrase: = "(does ODR ring a bell?)" A "Suggested Improvement": My suggestion is to edit that web page: 1) Mention the parse.trace is simply a far less error prone alternative to = the YYDEBUG macro. 2) If POSIX compliance is preferred and YYDEBUG is used, the proper placeme= nt of the YYDEBUG macro is in the %code requires section, not %code top (for us newbies) 3) change the line: "We suggest that you always enable the trace option so that debugging is al= ways possible." to: "We suggest that you always enable one of the above options so that debuggi= ng is always possible." Sorry to waste your time, thanks for the effort. From MAILER-DAEMON Sat Dec 12 01:41:51 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1knybH-0006gi-Ix for mharc-bug-bison@gnu.org; Sat, 12 Dec 2020 01:41:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44866) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knyb9-0006gC-6O for bug-bison@gnu.org; Sat, 12 Dec 2020 01:41:45 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:54262) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knyb4-0005gs-8Q for bug-bison@gnu.org; Sat, 12 Dec 2020 01:41:42 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id 0AF9A42B08; Sat, 12 Dec 2020 07:41:29 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Heap Corruption using MSVC (found the issue) From: Akim Demaille In-Reply-To: <1761990728.152373820.1607683270793.JavaMail.zimbra@shaw.ca> Date: Sat, 12 Dec 2020 07:41:26 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: References: <1705107579.151067158.1607646930704.JavaMail.zimbra@shaw.ca> <1761990728.152373820.1607683270793.JavaMail.zimbra@shaw.ca> To: Jot Dot X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Dec 2020 06:41:48 -0000 Hi Jot, > Le 11 d=C3=A9c. 2020 =C3=A0 11:41, Jot Dot a =C3=A9crit= : >=20 > Hello Akim, >=20 > That was the issue. Just say that :) I apologize for my tone, it was very harsh, and I did not intended it to be. I was definitely angry, but mostly at me, for the time it took me to understand what was going on. What the debugger told me made no sense, and instead of pausing and thinking about what could be going on, I kept on stepping, as a bee expecting the window to magically vanish at some point. But I eventually noticed that it was trying to reach a member variable that was located outside of the object, then something clicked in my head: the Parser class has two sizes. Then it was easy. >> No wonder that %define parse.trace "fixes" your problem, since it >> defines *properly* YYDEBUG. >>=20 >>=20 >> Bottom line: stop messing with macros. >=20 > Then change your manual to reflect this. > = https://www.gnu.org/software/bison/manual/html_node/Enabling-Traces.html >=20 > YYDEBUG is still supported as a POSIX yacc compliant method (for c++ = too) > %define parse.trace is a Bison extension, thus not POSIX yacc = compliant. POSIX has nothing to say about C++, or Java, or D, or GLR, etc. All these are Bison extensions, and POSIX is irrelevant. > quote just under the YYDEBUG part of that web page: > "We suggest that you always enable the trace option so that debugging = is always possible." >=20 > My take on that web page was that YYDEBUG is the minimum that should = be enabled > and that the Bison "extension" 'parse.trace' gives more info than the = "standard" YYDEBUG. > I can see now that I was wrong. And I can see that my wording could use some improvement in this area. Will do. Sorry about that. > An "extension" extends. It usually does not mean "alternate way of = doing exactly the same". Yes, I was referring to the syntax, not the semantics. > =46rom what I am hearing, 'parse.trace' is just that. Except that it is safe, and works also in Java or D, where there are no macros. > Borrowing your phrase: "(does ODR ring a bell?)" :) > A "Suggested Improvement": >=20 > My suggestion is to edit that web page: >=20 > 1) Mention the parse.trace is simply a far less error prone = alternative to the YYDEBUG macro. > 2) If POSIX compliance is preferred and YYDEBUG is used, the proper = placement of the YYDEBUG macro I agree that it must be spelled out (with the exception that POSIX is = for --yacc only). > is in the %code requires section, not %code top (for us newbies) > 3) change the line: > "We suggest that you always enable the trace option so that debugging = is always possible." > to: > "We suggest that you always enable one of the above options so that = debugging is always possible." Ok. Cheers!= From MAILER-DAEMON Tue Dec 15 13:00:48 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kpEcy-00037y-7K for mharc-bug-bison@gnu.org; Tue, 15 Dec 2020 13:00:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35748) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpEcw-000343-Bz for bug-bison@gnu.org; Tue, 15 Dec 2020 13:00:46 -0500 Received: from smtp-out-no.shaw.ca ([64.59.134.13]:55962) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpEcr-0002K4-U8 for bug-bison@gnu.org; Tue, 15 Dec 2020 13:00:45 -0500 Received: from cds201.dcs.int.inet ([10.0.153.91]) by shaw.ca with ESMTP id pEcak8q2ttdldpEcbkK6Vp; Tue, 15 Dec 2020 11:00:25 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shaw.ca; s=s20180605; t=1608055225; bh=lzJ8WBJKzuXpY+p+TtWzbJyUs4ZAa2d6G5biCP+UfUI=; h=Date:From:To:Subject; b=Hutnf3u0dZ8HFgGc1qVMparrXfYnwChhgZkrPaWJMwz0/SeWfAMxNMwDRK73U7SOK LDQcfDoYyUyIcdz7nTfnAqy1+A3tRj8dR/ySAZI4xDGv0J6ngDp8uDn+3xXLUP6h1J ZtCfWa7GD/a4U1tACbL9em2PWI5/+wG0ZOESPcRRGNp7sA9imLL/S+Lzi6wQwVjyNI LgFIgpZKi164iQzvd6uxboGWPZopVZImL7X2Dp8SxC4L7TPRXGgu1qFBiVfYjRzeBK NtaTiULIDDxOPFpcveeyM5fAY2mvDukVvMIbKbRJO1aeZj/hwxAw5sfdvPgyyW/ovv mSdEMx1eY/Tnw== X-Authority-Analysis: v=2.4 cv=INe8tijG c=1 sm=1 tr=0 ts=5fd8f9b9 a=GAU1nFYnozB6uKdotKweJA==:117 a=FKkrIqjQGGEA:10 a=twRUS8McFIcA:10 a=IkcTkHD0fZMA:10 a=mDV3o1hIAAAA:8 a=MUQBNuln17wWJrQx3mUA:9 a=QEXdDO2ut3YA:10 a=NCtwzT-R8tAA:10 a=PPdaKEp9zw8A:10 a=_FVE-zBwftR9WsbkzFJk:22 Date: Tue, 15 Dec 2020 11:00:24 -0700 (MST) From: Jot Dot To: bug-bison@gnu.org Message-ID: <1196801549.169212746.1608055224043.JavaMail.zimbra@shaw.ca> Subject: Improvement in R/R Conflict resolution MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [50.72.139.91, 50.72.139.91] X-Mailer: Zimbra 8.8.15_GA_3968 (ZimbraWebClient - GC87 (Win)/8.8.15_GA_3968) Thread-Index: pTRCWXLWF54Evd5SKSBSi5N5kvEFIA== Thread-Topic: Improvement in R/R Conflict resolution X-CMAE-Envelope: MS4xfF78JPPNOaMMtQO+6teu0+v5Q/kpBXVEp4C+5FBG0EOly6yAcM2iuD9FWp8BQ8S0+h/VMK+lnUWa4WdlZo21WTphvQAkV78q+keoEmwwCKQkhGWWuaOn BsKInGyl9stRI2LTAZum92lXKNw+dg7TpKViVxjFfc97F0UI7xlJKuzkDw8m5dmYCaWCQ9Fe4sOhBg== Received-SPF: pass client-ip=64.59.134.13; envelope-from=jotdot@shaw.ca; helo=smtp-out-no.shaw.ca X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Dec 2020 18:00:46 -0000 I have read the current R/R resolution method on the page: https://www.gnu.org/software/bison/manual/html_node/Reduce_002fReduce.html I have an idea for an improvement in R/R conflict resolution. First I will point out an issue, then a proposed solution. As my work with lexical analysers and parsers continue, I am experiencing S/R and R/R conflicts in the grammar I am writing. Naturally, one must strive to eliminate them, but I noticed some simply can not be done easily with grammar rules (parser only). Take a classic C++ problem: int x(y * z); Is that an int x being initialised with y*z or is that a forward declaration of a function x that takes a pointer to a type y and then returns an int? The only real way to resolve that is to understand the context surrounding it. This occurs in my parser code due to this part: | ... | storage_type '(' expr ')' | storage_type '(' declaration ')' | ... There is an R/R conflict since: 'expr' can be IDENTIFIER * IDENTIFIER (multiply) and 'declaration' can be the same IDENTIFIER * IDENTIFIER. This makes sense, since the choice depends on whether the lhs identifier is a type or the name of a variable. Doing some googling, I have found the solution (or one of many solutions?) is to tie into the lexer and have it check the context for IDENTIFIER so that the lexer can discern the difference between a simple identifier or a typedef'd type; returning one token or another. (ie: return IDENTIFIER or say, TYPE_IDENT). We then change the parser grammar accordingly. This is great for a single pass compiler. What if we want to check for syntactic correctness only at that point but push context sensitive issues into a second pass? Somehow we should be able to discern this ambiguity, mark it, and move on. THE CURRENT SOLUTION As per: https://www.gnu.org/software/bison/manual/html_node/Reduce_002fReduce.html Section 5.6 Reduce/Reduce Conflicts, Paragraph 6 quote: "Bison resolves a reduce/reduce conflict by choosing to use the rule that appears first in the grammar, but it is very risky to rely on this." THE PROPOSED SOLUTION: Instead of having Bison pick the first one, we should allow the user to specify an alternate. In the example shown above: | ... | storage_type '(' expr ')' | storage_type '(' declaration ')' | ... Would it be possible to flag an alternate rule for the conflict? A proposal would be to introduce a directive to choose the reduction for a R/R conflict. example: | ... | storage_type '(' expr ')' | storage_type '(' declaration ')' | %RR storage_type '(' IDENTIFIER '*' IDENTIFIER ')' // For ambiguous context | ... In what I am doing, this is exactly what I want. If this makes sense, then it would not be as hard to introduce as one might think. The %RR line is, in essence, a deliberate introduction of a the very R/R conflict we want to resolve. The detection of this is already in Bison. Instead of picking the first conflict, we choose the one marked. Note that this is a deliberate injection of a conflict. If there was no conflict, this would introduce one. This can be easily detected and marked as a warning and probably useless. Disclaimer: I haven't looked at Bison code so this 'easy' mod may not be so easy. I'm simply saying, from the outside looking in, it seems the logic is there to possibly introduce this without too much pain. I know it is a far cry from "knowing about the concepts of lexers and parsers" to actually using them (as I am finding out.) But I do believe this is a better solution than "choosing the first rule". CONCLUSION: The above proposal would simplify R/R resolution by purposely allowing the R/R resolution to pick a user supplied solution rather than just "anything". The lexer can be simplified in these cases since it does not have to be forced into context sensitive issues unless the user deliberately wants to. Thanks for taking the time reading. From MAILER-DAEMON Wed Dec 16 01:42:59 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kpQWW-0007W8-3a for mharc-bug-bison@gnu.org; Wed, 16 Dec 2020 01:42:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57670) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpQWU-0007Vu-ER for bug-bison@gnu.org; Wed, 16 Dec 2020 01:42:54 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:40426) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpQWQ-00013K-MN for bug-bison@gnu.org; Wed, 16 Dec 2020 01:42:54 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id EDA6D42B3C; Wed, 16 Dec 2020 07:42:48 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Improvement in R/R Conflict resolution From: Akim Demaille In-Reply-To: <1196801549.169212746.1608055224043.JavaMail.zimbra@shaw.ca> Date: Wed, 16 Dec 2020 07:42:48 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: <108C6123-C213-428F-9036-EB881E970B92@lrde.epita.fr> References: <1196801549.169212746.1608055224043.JavaMail.zimbra@shaw.ca> To: Jot Dot X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Dec 2020 06:42:54 -0000 Hi Jot, > Le 15 d=C3=A9c. 2020 =C3=A0 19:00, Jot Dot a =C3=A9crit= : >=20 > Doing some googling, I have found the solution (or one of many = solutions?) > is to tie into the lexer and have it check the context for IDENTIFIER > so that the lexer can discern the difference between a simple = identifier > or a typedef'd type; returning one token or another. > (ie: return IDENTIFIER or say, TYPE_IDENT). > We then change the parser grammar accordingly. You don't need Google to find about this, just 'info bison' should do. Look for lexical-tie in. = https://www.gnu.org/software/bison/manual/html_node/Lexical-Tie_002dins.ht= ml > This is great for a single pass compiler. What if we want to check for > syntactic correctness only at that point but push context sensitive = issues > into a second pass? Somehow we should be able to discern this = ambiguity, > mark it, and move on. That's called GLR. It's also in the documentation. > THE CURRENT SOLUTION >=20 > As per: = https://www.gnu.org/software/bison/manual/html_node/Reduce_002fReduce.html= > Section 5.6 Reduce/Reduce Conflicts, Paragraph 6 >=20 > quote: "Bison resolves a reduce/reduce conflict by choosing to use the = rule > that appears first in the grammar, but it is very risky to rely on = this." To be clear: we are not advocating that you accept the "resolution" (I hate the word here, we are not resolving anything, we are just shooting alternatives down until only one remains). You should not accept RR conflicts at all, period. > THE PROPOSED SOLUTION: >=20 > Instead of having Bison pick the first one, we should allow the user = to > specify an alternate. >=20 > In the example shown above: > | ... > | storage_type '(' expr ')' > | storage_type '(' declaration ')' > | ... >=20 > Would it be possible to flag an alternate rule for the conflict? > A proposal would be to introduce a directive to choose the reduction = for > a R/R conflict. >=20 > example: > | ... > | storage_type '(' expr ')' > | storage_type '(' declaration ')' > | %RR storage_type '(' IDENTIFIER '*' IDENTIFIER ')' // For = ambiguous context > | ... >=20 > In what I am doing, this is exactly what I want. There are several problems with your proposal. First, it is very narrow: it fits your need, but does not scale to more complex cases of ambiguities. Second, you are probably underestimating the difficulty of what you are proposing. On two accounts. First, our generated parsers have a single lookahead; not many, only one. So the vast majority of these annotations can simply not be taken care of by the parser. Second, these resolutions must be processed by the generator to build the shift-reduce automaton, and if you don't have an idea of how technical and complex this is, I suggest that you have a look at this paper, which is the basis for Bison's implementation of the state machine generation: https://hassan-ait-kaci.net/pdf/others/p615-deremer.pdf Last, besides GLR, the true answer to your problem is the fusion of the scanner within the parser (or pseudo-fusion), so that the "context-free context" dependency is dealt with by the tool, not by you. But that's an extremely difficult task, already dubbed Bison 4, which is not for the near future. > If this makes sense, then it would not be as hard to introduce as one > might think. No, indeed, it is even more difficult than that :) I suggest that you read Joel E. Denny's PhD. Cheers.= From MAILER-DAEMON Wed Dec 16 18:09:56 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kpfvf-0004FH-1s for mharc-bug-bison@gnu.org; Wed, 16 Dec 2020 18:09:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46590) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpfvd-0004F9-6D for bug-bison@gnu.org; Wed, 16 Dec 2020 18:09:53 -0500 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]:43942) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kpfvZ-0004QQ-GG for bug-bison@gnu.org; Wed, 16 Dec 2020 18:09:52 -0500 Received: by mail-lf1-x129.google.com with SMTP id 23so52641015lfg.10 for ; Wed, 16 Dec 2020 15:09:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=runtimeverification-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=0QRJOB++hMNrWRvG5lIS/rN5FfJuZpmqKi9pdl2vH8A=; b=PoL+hCIlQLFAL5X3hoWYWJjyeafi5Ev6KMmj+SDNQ8rieTkjW+e8nhbz1BWLcEtkai yletidSnqdZNtuxJD7wtFlV6swcgGC17DKPshHi+RrI+qJDawMPIKltc7MhCTjlbBa00 yyZShc05TNpMBFSUAHChL31DkXzH1vXl8aGsJOWyYoSMK2afZ371YdX9cfyYBJDlXWIc EFbEYYX9vgxL+m2pPNskPXurNcc6EjVqrBQXNnnD0EGxIaGPssszEsNuHjcbRWSKRzEa 5IRoA6c5Qdm4EkZ2Eu1fmZdHfBXJ+gGkAIALjbNdtXl/Em44NR3uAVbmkpHHiBCs728I /0vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=0QRJOB++hMNrWRvG5lIS/rN5FfJuZpmqKi9pdl2vH8A=; b=WjkuOG5uDmJ0qbawj0q+a8gaqZZ/JI5s3maANoV+s2Mni2rToAf5VQ8/P34PGyvlVX omnNMoyV6KiNgarN8+3VYjAxLjfBoxIyPGQ5K2HOqgZBOZUJLiFKsiUPSS4kxUAgobQC 9I0EW2v/+9iiDI2etSkOPW0GO17Bw0iXr4IBiOrhhkRUsRmREKAP9JGvqkhsDE8Zcd5O 0tNOYtIeijne8jERSHk3vg2G2tsRpwVMzYy1OJpYasyVfFOWjP0Cy/arc/UQNXCloCiZ Vs1aHeyGxplTa80v7GKQS2ARoOBAUrnygCPqwcBY1BfTNE7dXV3t/PefYyMlYfuTKdPY gQAA== X-Gm-Message-State: AOAM531FibiiTLfprI1ZlWy7gaBPLZgiZVWBeYL++NMfVzyG/59/vIMC bL063vpvR0V4NOnux0JwDPZaKplgJ3b1YrMzm5mBL/+aubYl3w== X-Google-Smtp-Source: ABdhPJxsv6Fi1Fx9v0e/Gve++yLDK6xYOP9xAjam09j1SVrwGZBi92+Tdzy669YDIacsastAA3zrQY147OzfgswRf54= X-Received: by 2002:a05:6512:989:: with SMTP id w9mr1737122lft.246.1608160186708; Wed, 16 Dec 2020 15:09:46 -0800 (PST) MIME-Version: 1.0 From: Dwight Guth Date: Wed, 16 Dec 2020 17:09:35 -0600 Message-ID: Subject: Assertion failure in AnnotationList.c on IELR grammar with a useless nonterminal To: Bison Bugs Content-Type: multipart/mixed; boundary="000000000000ac294205b69cf82e" Received-SPF: none client-ip=2a00:1450:4864:20::129; envelope-from=dwight.guth@runtimeverification.com; helo=mail-lf1-x129.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Dec 2020 23:09:53 -0000 --000000000000ac294205b69cf82e Content-Type: text/plain; charset="UTF-8" I have reproduced this error with Bison 3.7.4, but it is also present in versions as old as 3.0.4, the oldest version I have tried. I am attaching the smallest grammar I was able to produce that generates the error. I'm aware that this grammar is rather contrived. It was generated by minimizing a larger, self-contained, real-world grammar which I can provide on request, but I figured you would rather work with a minimized grammar. The bug manifests with the following assertion failure, followed by a SIGABRT: bison: src/AnnotationList.c:481: AnnotationList__compute_from_inadequacies: Assertion `!Sbitset__isEmpty (annotation_node->contributions[ci], s->nitems)' failed. Note that the terminal output mentions that C is a useless nonterminal, but if C is removed from the grammar, the error disappears. While I am aware that the problem could be solved by simply removing the useless nonterminal from the grammar (and have been able to reproduce this behavior on my real-world example), the real-world grammar is autogenerated and it would be nice if this just worked and the useless nonterminal was ignored. Regardless, I figured an assertion error is probably not an appropriate failure mode, so I wanted to report the error to you. We have plans to modify our grammar generator on our end to fix the issue in the way I described above, so this is not terribly high priority for us, since by the time bison releases trickle out into Linux distros, we will have already worked around the issue. But I have seen this same error message in other contexts in the past, so it's possible we may run into it again in a situation where it will be harder for us to simply work around it, so a fix would still be helpful to us long-term. I should have already completed a copyright assignment form that is applicable for changes to Bison, and am happy to follow any steps you have in mind in order to incorporate this minimized test into your test suite. Just let me know what you need. -- Dwight Guth Director of Engineering Email: dwight.guth@runtimeverification.com --000000000000ac294205b69cf82e Content-Type: application/octet-stream; name="parser.y" Content-Disposition: attachment; filename="parser.y" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kis0x8ok0 JXsNCiV9DQolZGVmaW5lIGxyLnR5cGUgaWVscg0KJXN0YXJ0IHRvcA0KJSUNCnRvcDogQSB7fSA7 DQpCOg0KOw0KQzoNCjsNCkE6DQogfEINCjsNCiUl --000000000000ac294205b69cf82e-- From MAILER-DAEMON Wed Dec 16 23:58:29 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kplMy-0004PI-RX for mharc-bug-bison@gnu.org; Wed, 16 Dec 2020 23:58:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38182) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kplMw-0004OC-RK for bug-bison@gnu.org; Wed, 16 Dec 2020 23:58:26 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:40664) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kplMs-0004sz-Tp for bug-bison@gnu.org; Wed, 16 Dec 2020 23:58:26 -0500 Received: from [192.168.1.34] (lns-bzn-30-82-253-153-106.adsl.proxad.net [82.253.153.106]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id 869E042B14; Thu, 17 Dec 2020 05:58:19 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Assertion failure in AnnotationList.c on IELR grammar with a useless nonterminal From: Akim Demaille In-Reply-To: Date: Thu, 17 Dec 2020 05:58:17 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Dwight Guth X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Dec 2020 04:58:27 -0000 Hi Dwight, > Le 17 d=C3=A9c. 2020 =C3=A0 00:09, Dwight Guth = a =C3=A9crit : >=20 > I have reproduced this error with Bison 3.7.4, but it is also present > in versions as old as 3.0.4, the oldest version I have tried. Wow... > Note that the terminal output mentions that C is a useless > nonterminal, but if C is removed from the grammar, the error > disappears. While I am aware that the problem could be solved by > simply removing the useless nonterminal from the grammar (and have > been able to reproduce this behavior on my real-world example), the > real-world grammar is autogenerated and it would be nice if this just > worked and the useless nonterminal was ignored. Regardless, I figured > an assertion error is probably not an appropriate failure mode, so I > wanted to report the error to you. Yes, this is definitely not expected, thanks a lot for the (complete) report! > We have plans to modify our grammar generator on our end to fix the > issue in the way I described above, so this is not terribly high > priority for us, since by the time bison releases trickle out into > Linux distros, we will have already worked around the issue. But I > have seen this same error message in other contexts in the past, so > it's possible we may run into it again in a situation where it will be > harder for us to simply work around it, so a fix would still be > helpful to us long-term. I will not work on this immediately (I expect this one to be tricky, and I have ongoing business in Bison I'd like to finish first), but this is definitely in the TODO list. > I should have already completed a copyright assignment form that is > applicable for changes to Bison, and am happy to follow any steps you > have in mind in order to incorporate this minimized test into your > test suite. Just let me know what you need. I believe your test case is small enough so that we can call it "trivial" (although, I agree, finding it was not), and therefore I can use it as a contributions of yours that does not require paperwork. If, however, you'd like to contribute to Bison (for instance there's a bug report about IELR that has just arrived :-), you'll have to sign these papers. Cheers! From MAILER-DAEMON Fri Dec 18 04:16:21 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kqBs5-0004c6-G6 for mharc-bug-bison@gnu.org; Fri, 18 Dec 2020 04:16:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqBs4-0004aZ-3R for bug-bison@gnu.org; Fri, 18 Dec 2020 04:16:20 -0500 Received: from smtp-out-no.shaw.ca ([64.59.134.9]:46078) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqBry-0000Fe-Gi for bug-bison@gnu.org; Fri, 18 Dec 2020 04:16:19 -0500 Received: from cds201.dcs.int.inet ([10.0.153.91]) by shaw.ca with ESMTP id qBrqkX85VtdldqBrrkVG35; Fri, 18 Dec 2020 02:16:07 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shaw.ca; s=s20180605; t=1608282967; bh=lHVh6IctQM/OxqYAcus2XdoNkL5p/eoB13vkxILQ5rw=; h=Date:From:To:Subject; b=e97oDEVNpMMGskkTXMmnEnGtabSzxTDW7ATKvfwdniwEFTmUmaAdo9zPNq3Yqs292 K2cOKeRTMGMWmaaFkI5t5Sov5RViIIt9Q7nlzsedigp76sXbz8WT9k7mkRvHhkYnqZ Q5sAMa0a7Jx8KqN/TXz4hzgSz4ke8oId0EsN/gkKRAhNi8P5HbGh8SKIDlIbw50zn/ WJDbKC3cY0GG1cDT0uYrC9s8vlpiy34hTfoatl2ADa3AgqH91DucIv8kyUrGp7NBzX qc8XAPC2MbHptjDZr5/fqEh7fSU3ubRamJoQj+WG1FMhgxGgEQu05DEmptxV/kQGtt c6i0eWvDHQRzA== X-Authority-Analysis: v=2.4 cv=INe8tijG c=1 sm=1 tr=0 ts=5fdc7357 a=GAU1nFYnozB6uKdotKweJA==:117 a=FKkrIqjQGGEA:10 a=twRUS8McFIcA:10 a=IkcTkHD0fZMA:10 a=eJ0aM7DSZ7wgNde_7hUA:9 a=QEXdDO2ut3YA:10 Date: Fri, 18 Dec 2020 02:16:05 -0700 (MST) From: Jot Dot To: bug-bison@gnu.org Message-ID: <271414884.181573112.1608282965993.JavaMail.zimbra@shaw.ca> Subject: Suggested Fix/Change MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [50.72.139.91, 50.72.139.91] X-Mailer: Zimbra 8.8.15_GA_3968 (ZimbraWebClient - GC87 (Win)/8.8.15_GA_3968) Thread-Index: kLNIiFVhocntEv5v5HPmzlRiWpjV7Q== Thread-Topic: Suggested Fix/Change X-CMAE-Envelope: MS4xfL8kHKGh01STtlH83ucI4pa7/cPMRE5ptc/J8EuuALjU6QqOTrDoxPP4nixnoMELVXpVo0clLiyjgfeuVLEgMaZCVZTpt3EsVB74YD3OU9VkvxGXvUAu RCrTzCb0jBVTtLNQxsxBvdotw/yqvoVeM+1WdortzJnsgxBSGmXgzREDHbe3LRxsd0HP0/ihu9JJEg== Received-SPF: pass client-ip=64.59.134.9; envelope-from=jotdot@shaw.ca; helo=smtp-out-no.shaw.ca X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Dec 2020 09:16:20 -0000 Tools Used: bison (GNU Bison) 3.7.1 I was attempting to convert my lalr(1) code to glr. I know that the current glr version only uses POD. I was using variants and lalr(1). When changing the source to use glr I completely missed removing one line: %define api.token.constructor Naturally it must be removed for glr. ISSUE: With the %define in the code, Bison still processes the grammar and outputs a report that is exactly the same as when that %define is not in the source, and then silently fails with an error code 1 and leaves two temporary files around. The problem is that (visually) it appears there is no issue at all! Even the --verbose option has no effect. My Visual Studio report: 1>parser.y : warning : 4 shift/reduce conflicts [-Wconflicts-sr] 1>parser.y : warning : 5 reduce/reduce conflicts [-Wconflicts-rr] 1> 2 Warning(s) 1> 0 Error(s) The command line shows no difference in output (good vs fail). Even with --verbose. I consider this almost a silent failure since there is no real visual clue anything is wrong. Heck, my first clue was simply that Bison was "a bit too quick" on the command line. My Request: It would be real nice if Bison would check for this invalid option and output an error instead of making it look like it worked. Actually, any visual clue would be appreciated! It should also clean up and remove the temp files it generated when it does fail. Thanks. From MAILER-DAEMON Sat Dec 19 11:27:08 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kqf4W-0002MK-Qp for mharc-bug-bison@gnu.org; Sat, 19 Dec 2020 11:27:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:40954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqf4U-0002MA-TH for bug-bison@gnu.org; Sat, 19 Dec 2020 11:27:07 -0500 Received: from smtp-out-no.shaw.ca ([64.59.134.13]:51819) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqf4S-0000rB-9w for bug-bison@gnu.org; Sat, 19 Dec 2020 11:27:06 -0500 Received: from cds201.dcs.int.inet ([10.0.153.91]) by shaw.ca with ESMTP id qf4LkbxmH34axqf4Mki0zA; Sat, 19 Dec 2020 09:26:58 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shaw.ca; s=s20180605; t=1608395218; bh=cWcGNoNKojVbjfb1qHuBsXmBaOnJoujV9F1yr/Jad5w=; h=Date:From:To:Subject; b=jaKQxlhMT6FKWoH8Lumf37Dfa+bH7IHtAykzabSoG00y4l3J50nF1JL8cAMkyXglH uNM8IGo6jivC9t6P2b8sUW5shs+budN/0bw4WNtK02Ff+rkWiDo0Bt+7XX4jd5nMhN QRPxBe/lqMYaN36oIcpis0P0VQdiPxPgIY7V7odS81WdKvdBKB3mjgOxBpRQ+n1I7h ZfkwFB0G6gT1gDSUlJQUTb/CV5NM91FyTPjNbz4WLiMXZX4GM203QD79dpv2Bme6JL FVfXoM6eF5r14vO29lzPNc3BvQT15if+qHzA9iQi/DQYeDCyvXNCDtPAqbP0SBdG3D yIhKdTiyKzKoQ== X-Authority-Analysis: v=2.4 cv=LvQsdlRc c=1 sm=1 tr=0 ts=5fde29d2 a=GAU1nFYnozB6uKdotKweJA==:117 a=FKkrIqjQGGEA:10 a=twRUS8McFIcA:10 a=IkcTkHD0fZMA:10 a=YNk7qosgcI-nNk_gg6gA:9 a=QEXdDO2ut3YA:10 Date: Sat, 19 Dec 2020 09:26:56 -0700 (MST) From: Jot Dot To: bug-bison@gnu.org Message-ID: <386322043.187116262.1608395216975.JavaMail.zimbra@shaw.ca> Subject: re: My last message: Suggested Fix/Change MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [50.72.139.91, 50.72.139.91] X-Mailer: Zimbra 8.8.15_GA_3968 (ZimbraWebClient - GC87 (Win)/8.8.15_GA_3968) Thread-Index: 31sUDhu/QeqxnjeKJktvBFLu6U6+MA== Thread-Topic: My last message: Suggested Fix/Change X-CMAE-Envelope: MS4xfGwFDb8a1NLcN3IGe76OxyyD8d+OTa4PXDFAr/b/zbS5JOPdVlxJgYf8uRdpIwOWd5h1/sPvZXODJBP21jpYuoYpHAmBDLKpXo6JyctwDReZksKf6HoI J7djF3GZuXtVlaJaQv7CpKlt+HmERnON4DEbEyvIQM0DN7Frxp42W9/PIXD6oaB8DUxK1HKvGNAXmQ== Received-SPF: pass client-ip=64.59.134.13; envelope-from=jotdot@shaw.ca; helo=smtp-out-no.shaw.ca X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Dec 2020 16:27:07 -0000 I took some time to narrow down the issue I mentioned and found: The c version detects and reports the incorrect use of: %define api.token.constructor The c++ version does not report this error. (it actually fails silently, leaving a couple of temp files around). Source: %language "c++" // Try with and without this line %define api.token.constructor %start s %% s: 'x' | 'x'; %% Yes, the above is a silly example. My point is without that error message, there is no visual difference in the output between success or failure (for the c++ version). To borrow a phrase: "a bee expecting the window to magically vanish at some point" Well, that's what happened to me. Using Microsoft Visual Studio and a recommended plug-in, when I launch Bison, the build report shows 0 errors. There is an unexpected error return code of 1 and the build fails. So, armed with countless of previous cycles of "it always worked as expected", I began to chase the wind :) Thanks From MAILER-DAEMON Sun Dec 20 10:55:10 2020 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kr138-0003fN-F4 for mharc-bug-bison@gnu.org; Sun, 20 Dec 2020 10:55:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38518) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kr137-0003fC-2w for bug-bison@gnu.org; Sun, 20 Dec 2020 10:55:09 -0500 Received: from smtp.lrde.epita.fr ([163.5.55.2]:51204) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kr135-0004Fq-3a for bug-bison@gnu.org; Sun, 20 Dec 2020 10:55:08 -0500 Received: from [192.168.0.31] (91-161-82-75.subs.proxad.net [91.161.82.75]) by smtp.lrde.epita.fr (Postfix) with ESMTPSA id AD93943038; Sun, 20 Dec 2020 16:54:56 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\)) Subject: Re: Suggested Fix/Change From: Akim Demaille In-Reply-To: <271414884.181573112.1608282965993.JavaMail.zimbra@shaw.ca> Date: Sun, 20 Dec 2020 16:54:55 +0100 Cc: Bison Bugs Content-Transfer-Encoding: quoted-printable Message-Id: References: <271414884.181573112.1608282965993.JavaMail.zimbra@shaw.ca> To: Jot Dot X-Mailer: Apple Mail (2.3445.104.17) Received-SPF: pass client-ip=163.5.55.2; envelope-from=akim@lrde.epita.fr; helo=smtp.lrde.epita.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-bison@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Bug reports for Bison, the GNU parser generator" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Dec 2020 15:55:09 -0000 Hi Jot, > Le 18 d=C3=A9c. 2020 =C3=A0 10:16, Jot Dot a =C3=A9crit= : >=20 > Tools Used: bison (GNU Bison) 3.7.1 >=20 > I was attempting to convert my lalr(1) code to glr. > I know that the current glr version only uses POD. > I was using variants and lalr(1). When changing the > source to use glr I completely missed removing one line: >=20 > %define api.token.constructor >=20 > Naturally it must be removed for glr. >=20 > ISSUE: >=20 > With the %define in the code, Bison still processes the > grammar and outputs a report that is exactly the same > as when that %define is not in the source, and then silently > fails with an error code 1 and leaves two temporary > files around. >=20 > The problem is that (visually) it appears there is > no issue at all! Even the --verbose option has no effect. You have been very unlucky: bison does check whether your %define variables are used or not by the skeleton. So you should have had the warning, I'm sorry you didn't. The reason you didn't have it is that there was some ongoing work to support it with glr.cc, but it does not work. And if you look at the archives of bison-patches, you'll see that there is a lot of activity currently on glr2.cc which should fill the gap and add proper support for GLR in C++. I will address your request at some point. Currently the hot topic is the completion of glr2.cc. Cheers!=