X-Loop: help-debbugs@HIDDEN Subject: bug#15845: [GNU Libtool 2.4.2] testsuite: 55 95 96 97 107 115 failed Resent-From: =?UTF-8?Q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9_?= =?UTF-8?Q?=D0=9D=D0=BE=D0=B2=D0=B8=D0=BA=D0=BE=D0=B2?= <stalkien@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-libtool@HIDDEN Resent-Date: Sat, 09 Nov 2013 23:18:01 +0000 Resent-Message-ID: <handler.15845.B.138403906124764 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 15845 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: kristos84@HIDDEN, 15845 <at> debbugs.gnu.org X-Debbugs-Original-To: kristos84@HIDDEN, bug-libtool@HIDDEN Reply-To: =?UTF-8?Q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9_?= =?UTF-8?Q?=D0=9D=D0=BE=D0=B2=D0=B8=D0=BA=D0=BE=D0=B2?= <stalkien@HIDDEN> Received: via spool by submit <at> debbugs.gnu.org id=B.138403906124764 (code B ref -1); Sat, 09 Nov 2013 23:18:01 +0000 Received: (at submit) by debbugs.gnu.org; 9 Nov 2013 23:17:41 +0000 Received: from localhost ([127.0.0.1]:44799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1VfHme-0006RL-9L for submit <at> debbugs.gnu.org; Sat, 09 Nov 2013 18:17:40 -0500 Received: from eggs.gnu.org ([208.118.235.92]:50738) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <stalkien@HIDDEN>) id 1VfGt3-00056R-Ed for submit <at> debbugs.gnu.org; Sat, 09 Nov 2013 17:20:14 -0500 Received: from lists.gnu.org ([2001:4830:134:3::11]:46227) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <stalkien@HIDDEN>) id 1VfGsx-0001bp-Qo for submit <at> debbugs.gnu.org; Sat, 09 Nov 2013 17:20:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52464) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <stalkien@HIDDEN>) id 1VfGsp-0000jx-IX for bug-libtool@HIDDEN; Sat, 09 Nov 2013 17:20:07 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_50, CHARSET_FARAWAY_HEADER,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from mxout1.rambler.ru ([81.19.67.58]:12982) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <stalkien@HIDDEN>) id 1VfGsm-0001M9-Qs for bug-libtool@HIDDEN; Sat, 09 Nov 2013 17:19:59 -0500 Received: from saddam2.rambler.ru (saddam2.rambler.ru [10.32.16.2]) by mxout1.rambler.ru (Postfix) with ESMTP id D51661140; Sun, 10 Nov 2013 02:19:54 +0400 (MSK) Received: from localhost.localdomain (localhost [127.0.0.1]) by saddam2.rambler.ru (Postfix) with ESMTP id B1AA33FF84D; Sun, 10 Nov 2013 02:19:54 +0400 (MSK) Received: from [185.19.23.59] by saddam2.rambler.ru with HTTP; Sun, 10 Nov 2013 02:19:54 +0400 From: =?UTF-8?Q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9_?= =?UTF-8?Q?=D0=9D=D0=BE=D0=B2=D0=B8=D0=BA=D0=BE=D0=B2?= <stalkien@HIDDEN> Date: Sun, 10 Nov 2013 02:19:54 +0400 Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_13840355941782731" Message-Id: <1384035594.169109.17827.11989@HIDDEN> MIME-Version: 1.0 X-Mailer: Rambler WebMail, http://mail.rambler.ru/ X-Rambler-User: stalkien@HIDDEN/185.19.23.59 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Mailman-Approved-At: Sat, 09 Nov 2013 18:17:37 -0500 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> This is a multi-part message in MIME format. --_----------=_13840355941782731 Content-Type: multipart/alternative; boundary="_----------=_13840355941782732" This is a multi-part message in MIME format. --_----------=_13840355941782732 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8"; format="flowed" Current MinGW+MSYS versions deployed on my Wintel have the libtool [2.4.1-m= sys ?? I doubt: really only usual libtool-2.4-1-mingw32-bin.tar.lzma ], GCC 4.8.1. Before a build of the 2.4.2 [for MinGW - not for MSYS] (i.e. the one for th= is report): I already decided to use (even for a build and hence for this buil= d) the libtool file (in /mingw/bin) with my manual correction: I saw the stran= ge [for the presence of GCC 4.8.1 deployed] script - working, but inside it there were 4.5.0 paths instead of 4.8.1 (and this is not stra= nge for the libtool-2.4-1-mingw32-bin.tar.lzma , but only for the current MinGW+MSYS). I almost ignore this hand-made file, but here it is among the attachment. The build of the 2.4.2 that I mention above was successful, but here the .l= og - more important file, of cource - is among the attachment. (One can see sys_lib_search_path_spec=3D"c:/tingw/lib/gcc/mingw32/4.8.1 c:/tingw/lib/gcc c:/tingw/mingw32/lib c:/tingw/lib " and compiler_lib_search_dirs=3D"c:/tingw/bin/../lib/gcc/mingw32/4.8.1 c:/tingw/bin/../lib/gcc c:/tingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib c:/tingw/bin/../lib/gcc/mingw32/4.8.1/../../.." in the 312.96KB file of the 2.4.2 build - the "TinGW" substrings are due to my allusion to tin plague under a frost= :/) Best regards, while you can be giving an advice what a libtool without any hand-made file must become a mean for my case. --_----------=_13840355941782732 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8" <p>Current MinGW+MSYS versions deployed on my Wintel have the <strong= >libtool</strong> [2.4.1-msys ?? I doubt: really only usual lib= tool-2.4-1-mingw32-bin.tar.lzma ],<br />GCC 4.8.1.<br />Before a build of t= he 2.4.2 [for MinGW - not for MSYS] (i.e. the one for this report): I alrea= dy decided to use (even for a build and hence for this build) <br />th= e <strong>libtool file</strong> (in /mingw/bin) with my manual correction: = I saw the strange [for the presence of GCC 4.8.1 deployed]<strong> </s= trong>script - working, <br />but inside it there were 4.5.0 paths ins= tead of 4.8.1 (and this is not strange for the libtool-2.4-1-mingw32-= bin.tar.lzma , but only for the current MinGW+MSYS).<br />I almost ig= nore this hand-made <strong>file, </strong> but here it is among = the attachment.<br />The build of the 2.4.2 that I mention abov= e was successful, but here the .log - more important file, of cource = - is among the attachment. <br /><br />(One can see <br />= sys_lib_search_path_spec=3D"c:/tingw/lib/gcc/mingw32/4.8.1 c:/tingw/lib/gcc= c:/tingw/mingw32/lib c:/tingw/lib "<br />and <br />compiler_lib_sear= ch_dirs=3D"c:/tingw/bin/../lib/gcc/mingw32/4.8.1 c:/tingw/bin/../lib/gcc c:= /tingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib c:/tingw/bin/..= /lib/gcc/mingw32/4.8.1/../../.." <br />in the 312.96KB file = of the 2.4.2 build <br />- the "TinGW" substrings are due to my allusi= on to tin plague under a frost:/)<br /><br />Best regards, while you can be= giving an advice what a <strong>libtool</strong> without any hand-made fil= e must become a mean for my case.</p>= --_----------=_13840355941782732-- --_----------=_13840355941782731 Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="config.log" VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBj b21waWxlcnMgd2hpbGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1 Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KCkl0IHdhcyBj cmVhdGVkIGJ5IEdOVSBMaWJ0b29sIGNvbmZpZ3VyZSAyLjQuMiwgd2hpY2gg d2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42OC4gIEludm9jYXRp b24gY29tbWFuZCBsaW5lIHdhcwoKICAkIC9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvY29uZmlndXJlIAoKIyMgLS0tLS0tLS0t ICMjCiMjIFBsYXRmb3JtLiAjIwojIyAtLS0tLS0tLS0gIyMKCmhvc3RuYW1l ID0gdGlsbAp1bmFtZSAtbSA9IGk2ODYKdW5hbWUgLXIgPSAxLjAuMTgoMC40 OC8zLzIpCnVuYW1lIC1zID0gTUlOR1czMl9OVC02LjEKdW5hbWUgLXYgPSAy MDEyLTExLTIxIDIyOjM0CgovdXNyL2Jpbi91bmFtZSAtcCA9IHVua25vd24K L2Jpbi91bmFtZSAtWCAgICAgPSB1bmtub3duCgovYmluL2FyY2ggICAgICAg ICAgICAgID0gdW5rbm93bgovdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gdW5r bm93bgovdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgovdXNyL2Jp bi9ob3N0aW5mbyAgICAgID0gdW5rbm93bgovYmluL21hY2hpbmUgICAgICAg ICAgID0gdW5rbm93bgovdXNyL2Jpbi9vc2xldmVsICAgICAgID0gdW5rbm93 bgovYmluL3VuaXZlcnNlICAgICAgICAgID0gdW5rbm93bgoKUEFUSDogLgpQ QVRIOiAvdXNyL2xvY2FsL2JpbgpQQVRIOiAvbWluZ3cvYmluClBBVEg6IC9i aW4KUEFUSDogL2MvV2luZG93cy9zeXN0ZW0zMgpQQVRIOiAvYy9XaW5kb3dz ClBBVEg6IC9jL1dpbmRvd3MvU3lzdGVtMzIvV2JlbQpQQVRIOiAvYy9XaW5k b3dzL1N5c3RlbTMyL1dpbmRvd3NQb3dlclNoZWxsL3YxLjAvClBBVEg6IC9j L1Byb2dyYW0gRmlsZXMgKHg4NikvTWljcm9zb2Z0IFNRTCBTZXJ2ZXIvMTAw L1Rvb2xzL0Jpbm4vClBBVEg6IC9jL1Byb2dyYW0gRmlsZXMvTWljcm9zb2Z0 IFNRTCBTZXJ2ZXIvMTAwL1Rvb2xzL0Jpbm4vClBBVEg6IC9jL1Byb2dyYW0g RmlsZXMvTWljcm9zb2Z0IFNRTCBTZXJ2ZXIvMTAwL0RUUy9CaW5uLwpQQVRI OiAvYy9CQzUvQklOClBBVEg6IC9jL0JDNS9CSU4KUEFUSDogL2MvV2luZG93 cy9zeXN0ZW0zMgpQQVRIOiAvYy9XaW5kb3dzClBBVEg6IC9jL1dpbmRvd3Mv U3lzdGVtMzIvV2JlbQpQQVRIOiAvYy9XaW5kb3dzL1N5c3RlbTMyL1dpbmRv d3NQb3dlclNoZWxsL3YxLjAvClBBVEg6IC9jL1Byb2dyYW0gRmlsZXMgKHg4 NikvTWljcm9zb2Z0IFNRTCBTZXJ2ZXIvMTAwL1Rvb2xzL0Jpbm4vClBBVEg6 IC9jL1Byb2dyYW0gRmlsZXMvTWljcm9zb2Z0IFNRTCBTZXJ2ZXIvMTAwL1Rv b2xzL0Jpbm4vClBBVEg6IC9jL1Byb2dyYW0gRmlsZXMvTWljcm9zb2Z0IFNR TCBTZXJ2ZXIvMTAwL0RUUy9CaW5uLwoKCiMjIC0tLS0tLS0tLS0tICMjCiMj IENvcmUgdGVzdHMuICMjCiMjIC0tLS0tLS0tLS0tICMjCgpjb25maWd1cmU6 MjcwNDogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbApj b25maWd1cmU6Mjc3MjogcmVzdWx0OiAvYmluL2luc3RhbGwgLWMKY29uZmln dXJlOjI3ODM6IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQg aXMgc2FuZQpjb25maWd1cmU6MjgzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjI5NzQ6IGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wCmNv bmZpZ3VyZTozMDEzOiByZXN1bHQ6IC9iaW4vbWtkaXIgLXAKY29uZmlndXJl OjMwMjY6IGNoZWNraW5nIGZvciBnYXdrCmNvbmZpZ3VyZTozMDQyOiBmb3Vu ZCAvYmluL2dhd2sKY29uZmlndXJlOjMwNTM6IHJlc3VsdDogZ2F3awpjb25m aWd1cmU6MzA2NDogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtF KQpjb25maWd1cmU6MzA4NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxODA6 IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlCmNvbmZpZ3VyZTozMTk0OiBy ZXN1bHQ6IGk2ODYtcGMtbWluZ3czMgpjb25maWd1cmU6MzIxNDogY2hlY2tp bmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6MzIyNzogcmVzdWx0OiBp Njg2LXBjLW1pbmd3MzIKY29uZmlndXJlOjMyNTQ6IGF1dG9idWlsZCBwcm9q ZWN0Li4uIEdOVSBMaWJ0b29sCmNvbmZpZ3VyZTozMjYwOiBhdXRvYnVpbGQg cmV2aXNpb24uLi4gMi40LjIgKCkKY29uZmlndXJlOjMyNjU6IGF1dG9idWls ZCBob3N0bmFtZS4uLiB0aWxsCmNvbmZpZ3VyZTozMjY5OiBhdXRvYnVpbGQg bW9kZS4uLiBkZWZhdWx0CmNvbmZpZ3VyZTozMjc3OiBhdXRvYnVpbGQgdGlt ZXN0YW1wLi4uIDIwMTMxMTA5VDAwMDYxNFoKY29uZmlndXJlOjMzNzY6IGNo ZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjMzOTI6IGZvdW5kIC9taW5ndy9i aW4vZ2NjCmNvbmZpZ3VyZTozNDAzOiByZXN1bHQ6IGdjYwpjb25maWd1cmU6 MzYzMjogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1 cmU6MzY0MTogZ2NjIC0tdmVyc2lvbiA+JjUKZ2NjLmV4ZSAoR0NDKSA0Ljgu MQ0KQ29weXJpZ2h0IChDKSAyMDEzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLg0KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJj ZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8NCndhcnJh bnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLg0KDQpjb25maWd1cmU6MzY1Mjog JD8gPSAwCmNvbmZpZ3VyZTozNjQxOiBnY2MgLXYgPiY1ClVzaW5nIGJ1aWx0 LWluIHNwZWNzLgpDT0xMRUNUX0dDQz1jOlxUaW5HV1xiaW5cZ2NjLmV4ZQpD T0xMRUNUX0xUT19XUkFQUEVSPWM6L3Rpbmd3L2Jpbi8uLi9saWJleGVjL2dj Yy9taW5ndzMyLzQuOC4xL2x0by13cmFwcGVyLmV4ZQpUYXJnZXQ6IG1pbmd3 MzIKQ29uZmlndXJlZCB3aXRoOiAuLi9nY2MtNC44LjEvY29uZmlndXJlIC0t cHJlZml4PS9taW5ndyAtLWhvc3Q9bWluZ3czMiAtLWJ1aWxkPW1pbmd3MzIg LS13aXRob3V0LXBpYyAtLWVuYWJsZS1zaGFyZWQgLS1lbmFibGUtc3RhdGlj IC0td2l0aC1nbnUtbGQgLS1lbmFibGUtbHRvIC0tZW5hYmxlLWxpYnNzcCAt LWRpc2FibGUtbXVsdGlsaWIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrLGZv cnRyYW4sb2JqYyxvYmotYysrLGFkYSAtLWRpc2FibGUtc2psai1leGNlcHRp b25zIC0td2l0aC1kd2FyZjIgLS1kaXNhYmxlLXdpbjMyLXJlZ2lzdHJ5IC0t ZW5hYmxlLWxpYnN0ZGN4eC1kZWJ1ZyAtLWVuYWJsZS12ZXJzaW9uLXNwZWNp ZmljLXJ1bnRpbWUtbGlicyAtLXdpdGgtZ21wPS91c3Ivc3JjL3BrZy9nbXAt NS4xLjItMS1taW5ndzMyLXNyYy9ibGQgLS13aXRoLW1wYz0vdXNyL3NyYy9w a2cvbXBjLTEuMC4xLTEtbWluZ3czMi1zcmMvYmxkIC0td2l0aC1tcGZyPSAt LXdpdGgtc3lzdGVtLXpsaWIgLS13aXRoLWdudS1hcyAtLWVuYWJsZS1kZWNp bWFsLWZsb2F0PXllcyAtLWVuYWJsZS1saWJnb21wIC0tZW5hYmxlLXRocmVh ZHMgLS13aXRoLWxpYmljb252LXByZWZpeD0vbWluZ3czMiAtLXdpdGgtbGli aW50bC1wcmVmaXg9L21pbmd3IC0tZGlzYWJsZS1ib290c3RyYXAgTERGTEFH Uz0tcyBDRkxBR1M9LURfVVNFXzMyQklUX1RJTUVfVApUaHJlYWQgbW9kZWw6 IHdpbjMyCmdjYyB2ZXJzaW9uIDQuOC4xIChHQ0MpIApjb25maWd1cmU6MzY1 MjogJD8gPSAwCmNvbmZpZ3VyZTozNjQxOiBnY2MgLVYgPiY1CmdjYy5leGU6 IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLVYn CmdjYy5leGU6IGZhdGFsIGVycm9yOiBubyBpbnB1dCBmaWxlcwpjb21waWxh dGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MzY1MjogJD8gPSAxCmNvbmZp Z3VyZTozNjQxOiBnY2MgLXF2ZXJzaW9uID4mNQpnY2MuZXhlOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy1xdmVyc2lvbicK Z2NjLmV4ZTogZmF0YWwgZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNvbXBpbGF0 aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTozNjUyOiAkPyA9IDEKY29uZmln dXJlOjM2NzI6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29y a3MKY29uZmlndXJlOjM2OTQ6IGdjYyAgICBjb25mdGVzdC5jICA+JjUKY29u ZmlndXJlOjM2OTg6ICQ/ID0gMApjb25maWd1cmU6Mzc0NjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjM3NDk6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRl ZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQpjb25maWd1cmU6Mzc1MTogcmVzdWx0 OiBhLmV4ZQpjb25maWd1cmU6Mzc1NzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBv ZiBleGVjdXRhYmxlcwpjb25maWd1cmU6Mzc2NDogZ2NjIC1vIGNvbmZ0ZXN0 LmV4ZSAgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjM3Njg6ICQ/ID0g MApjb25maWd1cmU6Mzc5MDogcmVzdWx0OiAuZXhlCmNvbmZpZ3VyZTozODEy OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcKY29u ZmlndXJlOjM4MjA6IGdjYyAtbyBjb25mdGVzdC5leGUgICAgY29uZnRlc3Qu YyAgPiY1CmNvbmZpZ3VyZTozODI0OiAkPyA9IDAKY29uZmlndXJlOjM4MzE6 IC4vY29uZnRlc3QuZXhlCmNvbmZpZ3VyZTozODM1OiAkPyA9IDAKY29uZmln dXJlOjM4NTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjM4NTU6IGNoZWNraW5n IGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTozODc3OiBn Y2MgLWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Mzg4MTogJD8gPSAw CmNvbmZpZ3VyZTozOTAyOiByZXN1bHQ6IG8KY29uZmlndXJlOjM5MDY6IGNo ZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxl cgpjb25maWd1cmU6MzkyNTogZ2NjIC1jICAgY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjM5MjU6ICQ/ID0gMApjb25maWd1cmU6MzkzNDogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjM5NDM6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2Vw dHMgLWcKY29uZmlndXJlOjM5NjM6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjM5NjM6ICQ/ID0gMApjb25maWd1cmU6NDAwNDogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjQwMjE6IGNoZWNraW5nIGZvciBnY2Mgb3B0 aW9uIHRvIGFjY2VwdCBJU08gQzg5CmNvbmZpZ3VyZTo0MDg1OiBnY2MgIC1j IC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQwODU6ICQ/ID0g MApjb25maWd1cmU6NDA5ODogcmVzdWx0OiBub25lIG5lZWRlZApjb25maWd1 cmU6NDEyOTogY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBi eSBtYWtlCmNvbmZpZ3VyZTo0MTU3OiByZXN1bHQ6IEdOVQpjb25maWd1cmU6 NDE4MjogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MKY29uZmln dXJlOjQyOTI6IHJlc3VsdDogZ2NjMwpjb25maWd1cmU6NDMwODogY2hlY2tp bmcgd2hldGhlciBnY2MgYW5kIGNjIHVuZGVyc3RhbmQgLWMgYW5kIC1vIHRv Z2V0aGVyCmNvbmZpZ3VyZTo0MzM5OiBnY2MgLWMgY29uZnRlc3QuYyAtbyBj b25mdGVzdDIubyA+JjUKY29uZmlndXJlOjQzNDM6ICQ/ID0gMApjb25maWd1 cmU6NDM0OTogZ2NjIC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1 CmNvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKY29uZmlndXJlOjQzNjQ6IGNjIC1j IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0MzY4OiAkPyA9IDAKY29uZmln dXJlOjQzNzY6IGNjIC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1 CmNvbmZpZ3VyZTo0MzgwOiAkPyA9IDAKY29uZmlndXJlOjQzODY6IGNjIC1j IGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1CmNvbmZpZ3VyZTo0Mzkw OiAkPyA9IDAKY29uZmlndXJlOjQ0MDg6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo0NDM4OiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nv cgpjb25maWd1cmU6NDQ2OTogZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZpZ3Vy ZTo0NDY5OiAkPyA9IDAKY29uZmlndXJlOjQ0ODM6IGdjYyAtRSAgY29uZnRl c3QuYwpjb25mdGVzdC5jOjExOjI4OiBmYXRhbCBlcnJvcjogYWNfbm9uZXhp c3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogI2luY2x1ZGUg PGFjX25vbmV4aXN0ZW50Lmg+CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo0NDgzOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGlidG9v bCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9v bC8iCnwgI2RlZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUgVkVS U0lPTiAiMi40LjIiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxhY19ub25leGlzdGVudC5oPgpjb25maWd1cmU6NDUwODogcmVzdWx0 OiBnY2MgLUUKY29uZmlndXJlOjQ1Mjg6IGdjYyAtRSAgY29uZnRlc3QuYwpj b25maWd1cmU6NDUyODogJD8gPSAwCmNvbmZpZ3VyZTo0NTQyOiBnY2MgLUUg IGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMToyODogZmF0YWwgZXJyb3I6IGFj X25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICNp bmNsdWRlIDxhY19ub25leGlzdGVudC5oPgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6 NDU0MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IExpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnRvb2wi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4yIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1saWJ0b29sQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlidG9vbCIKfCAjZGVm aW5lIFZFUlNJT04gIjIuNC4yIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KY29uZmlndXJlOjQ2MjA6 IGNoZWNraW5nIGhvdyB0byBwcmludCBzdHJpbmdzCmNvbmZpZ3VyZTo0NjQ3 OiByZXN1bHQ6IHByaW50Zgpjb25maWd1cmU6NDY2ODogY2hlY2tpbmcgZm9y IGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0CmNvbmZpZ3Vy ZTo0NzMyOiByZXN1bHQ6IC9iaW4vc2VkCmNvbmZpZ3VyZTo0NzUwOiBjaGVj a2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUK Y29uZmlndXJlOjQ4MDg6IHJlc3VsdDogL2Jpbi9ncmVwCmNvbmZpZ3VyZTo0 ODEzOiBjaGVja2luZyBmb3IgZWdyZXAKY29uZmlndXJlOjQ4NzU6IHJlc3Vs dDogL2Jpbi9ncmVwIC1FCmNvbmZpZ3VyZTo0ODgwOiBjaGVja2luZyBmb3Ig ZmdyZXAKY29uZmlndXJlOjQ5NDI6IHJlc3VsdDogL2Jpbi9ncmVwIC1GCmNv bmZpZ3VyZTo0OTc3OiBjaGVja2luZyBmb3IgbGQgdXNlZCBieSBnY2MKY29u ZmlndXJlOjUwNDQ6IHJlc3VsdDogYzovdGluZ3cvbWluZ3czMi9iaW4vbGQu ZXhlCmNvbmZpZ3VyZTo1MDUxOiBjaGVja2luZyBpZiB0aGUgbGlua2VyIChj Oi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUpIGlzIEdOVSBsZApjb25maWd1 cmU6NTA2NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUwNzg6IGNoZWNraW5n IGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKQpj b25maWd1cmU6NTEyNzogcmVzdWx0OiAvYmluL25tIC1CCmNvbmZpZ3VyZTo1 MjU3OiBjaGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKC9iaW4vbm0gLUIpIGlu dGVyZmFjZQpjb25maWd1cmU6NTI2NDogZ2NjIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY29uZmlndXJlOjUyNjc6IC9iaW4vbm0gLUIgImNvbmZ0ZXN0 Lm8iCmNvbmZpZ3VyZTo1MjcwOiBvdXRwdXQKMDAwMDAwMDAgYiAuYnNzCjAw MDAwMDAwIGQgLmRhdGEKMDAwMDAwMDAgTiAuZGVidWdfYWJicmV2CjAwMDAw MDAwIE4gLmRlYnVnX2FyYW5nZXMKMDAwMDAwMDAgTiAuZGVidWdfaW5mbwow MDAwMDAwMCBOIC5kZWJ1Z19saW5lCjAwMDAwMDAwIHIgLnJkYXRhJHp6egow MDAwMDAwMCB0IC50ZXh0CjAwMDAwMDAwIEIgX3NvbWVfdmFyaWFibGUKY29u ZmlndXJlOjUyNzc6IHJlc3VsdDogQlNEIG5tCmNvbmZpZ3VyZTo1MjgwOiBj aGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzCmNvbmZpZ3VyZTo1Mjg3OiBy ZXN1bHQ6IG5vLCB1c2luZyBjcCAtcApjb25maWd1cmU6NTI5MjogY2hlY2tp bmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVu dHMKY29uZmlndXJlOjU0MjI6IHJlc3VsdDogODE5Mgpjb25maWd1cmU6NTQz OTogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29t ZSBYU0kgY29uc3RydWN0cwpjb25maWd1cmU6NTQ0OTogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjU0NTM6IGNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVu ZGVyc3RhbmRzICIrPSIKY29uZmlndXJlOjU0NTk6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo1NDk0OiBjaGVja2luZyBob3cgdG8gY29udmVydCBpNjg2LXBj LW1pbmd3MzIgZmlsZSBuYW1lcyB0byBpNjg2LXBjLW1pbmd3MzIgZm9ybWF0 CmNvbmZpZ3VyZTo1NTM0OiByZXN1bHQ6IGZ1bmNfY29udmVydF9maWxlX21z eXNfdG9fdzMyCmNvbmZpZ3VyZTo1NTQxOiBjaGVja2luZyBob3cgdG8gY29u dmVydCBpNjg2LXBjLW1pbmd3MzIgZmlsZSBuYW1lcyB0byB0b29sY2hhaW4g Zm9ybWF0CmNvbmZpZ3VyZTo1NTYxOiByZXN1bHQ6IGZ1bmNfY29udmVydF9m aWxlX21zeXNfdG9fdzMyCmNvbmZpZ3VyZTo1NTY4OiBjaGVja2luZyBmb3Ig YzovdGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlIG9wdGlvbiB0byByZWxvYWQg b2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTo1NTc1OiByZXN1bHQ6IC1yCmNvbmZp Z3VyZTo1NjQ5OiBjaGVja2luZyBmb3Igb2JqZHVtcApjb25maWd1cmU6NTY2 NTogZm91bmQgL21pbmd3L2Jpbi9vYmpkdW1wCmNvbmZpZ3VyZTo1Njc2OiBy ZXN1bHQ6IG9iamR1bXAKY29uZmlndXJlOjU3MDU6IGNoZWNraW5nIGhvdyB0 byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllcwpjb25maWd1cmU6NTkw NzogcmVzdWx0OiBmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4 NiBETEwKY29uZmlndXJlOjU5OTI6IGNoZWNraW5nIGZvciBkbGx0b29sCmNv bmZpZ3VyZTo2MDA4OiBmb3VuZCAvbWluZ3cvYmluL2RsbHRvb2wKY29uZmln dXJlOjYwMTk6IHJlc3VsdDogZGxsdG9vbApjb25maWd1cmU6NjA0OTogY2hl Y2tpbmcgaG93IHRvIGFzc29jaWF0ZSBydW50aW1lIGFuZCBsaW5rIGxpYnJh cmllcwpjb25maWd1cmU6NjA3NjogcmVzdWx0OiBmdW5jX2N5Z21pbmdfZGxs X2Zvcl9pbXBsaWIKY29uZmlndXJlOjYxMzc6IGNoZWNraW5nIGZvciBhcgpj b25maWd1cmU6NjE1MzogZm91bmQgL21pbmd3L2Jpbi9hcgpjb25maWd1cmU6 NjE2NDogcmVzdWx0OiBhcgpjb25maWd1cmU6NjIwMTogY2hlY2tpbmcgZm9y IGFyY2hpdmVyIEBGSUxFIHN1cHBvcnQKY29uZmlndXJlOjYyMTg6IGdjYyAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2MjE4OiAkPyA9 IDAKY29uZmlndXJlOjYyMjE6IGFyIGNydSBsaWJjb25mdGVzdC5hIEBjb25m dGVzdC5sc3QgPiY1CmNvbmZpZ3VyZTo2MjI0OiAkPyA9IDAKY29uZmlndXJl OjYyMjk6IGFyIGNydSBsaWJjb25mdGVzdC5hIEBjb25mdGVzdC5sc3QgPiY1 CmM6XFRpbkdXXGJpblxhci5leGU6IGNvbmZ0ZXN0Lm86IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkNCmNvbmZpZ3VyZTo2MjMyOiAkPyA9IDEKY29uZmln dXJlOjYyNDQ6IHJlc3VsdDogQApjb25maWd1cmU6NjMwMjogY2hlY2tpbmcg Zm9yIHN0cmlwCmNvbmZpZ3VyZTo2MzE4OiBmb3VuZCAvbWluZ3cvYmluL3N0 cmlwCmNvbmZpZ3VyZTo2MzI5OiByZXN1bHQ6IHN0cmlwCmNvbmZpZ3VyZTo2 NDAxOiBjaGVja2luZyBmb3IgcmFubGliCmNvbmZpZ3VyZTo2NDE3OiBmb3Vu ZCAvbWluZ3cvYmluL3JhbmxpYgpjb25maWd1cmU6NjQyODogcmVzdWx0OiBy YW5saWIKY29uZmlndXJlOjY1MzA6IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFy c2UgL2Jpbi9ubSAtQiBvdXRwdXQgZnJvbSBnY2Mgb2JqZWN0CmNvbmZpZ3Vy ZTo2NjUwOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1 cmU6NjY1MzogJD8gPSAwCmNvbmZpZ3VyZTo2NjU3OiAvYmluL25tIC1CIGNv bmZ0ZXN0Lm8gXHwgc2VkIC1uIC1lICdzL14uKlsgXVwoW0FCQ0RHSVJTVFdd W0FCQ0RHSVJTVFddKlwpWyBdWyBdKlwoW19BLVphLXpdW19BLVphLXowLTld KlwpXHswLDFcfSQvXDEgXDIgXDIvcCcgfCBzZWQgJy8gX19nbnVfbHRvL2Qn IFw+IGNvbmZ0ZXN0Lm5tCmNvbmZpZ3VyZTo2NjYwOiAkPyA9IDAKY2Fubm90 IGZpbmQgbm1fdGVzdF92YXIgaW4gY29uZnRlc3Qubm0KY29uZmlndXJlOjY2 NTA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2 NjUzOiAkPyA9IDAKY29uZmlndXJlOjY2NTc6IC9iaW4vbm0gLUIgY29uZnRl c3QubyBcfCBzZWQgLW4gLWUgJ3MvXi4qWyBdXChbQUJDREdJUlNUV11bQUJD REdJUlNUV10qXClbIF1bIF0qX1woW19BLVphLXpdW19BLVphLXowLTldKlwp XHswLDFcfSQvXDEgX1wyIFwyL3AnIHwgc2VkICcvIF9fZ251X2x0by9kJyBc PiBjb25mdGVzdC5ubQpjb25maWd1cmU6NjY2MDogJD8gPSAwCmNvbmZpZ3Vy ZTo2NzI2OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0 LmMgY29uZnRzdG0ubyA+JjUKY29uZmlndXJlOjY3Mjk6ICQ/ID0gMApjb25m aWd1cmU6Njc2NzogcmVzdWx0OiBvawpjb25maWd1cmU6NjgwNDogY2hlY2tp bmcgZm9yIHN5c3Jvb3QKY29uZmlndXJlOjY4MzQ6IHJlc3VsdDogbm8KY29u ZmlndXJlOjcwOTA6IGNoZWNraW5nIGZvciBtdApjb25maWd1cmU6NzEyMDog cmVzdWx0OiBubwpjb25maWd1cmU6NzE0MDogY2hlY2tpbmcgaWYgOiBpcyBh IG1hbmlmZXN0IHRvb2wKY29uZmlndXJlOjcxNDY6IDogJy0/Jwpjb25maWd1 cmU6NzE1NDogcmVzdWx0OiBubwpjb25maWd1cmU6Nzc5MjogY2hlY2tpbmcg Zm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMKY29uZmlndXJlOjc4MTI6IGdjYyAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3ODEyOiAkPyA9 IDAKY29uZmlndXJlOjc4ODU6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8y ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo3ODg1OiAkPyA9IDAKY29u ZmlndXJlOjc4ODU6IC4vY29uZnRlc3QuZXhlCmNvbmZpZ3VyZTo3ODg1OiAk PyA9IDAKY29uZmlndXJlOjc4OTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3 OTA5OiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKY29uZmlndXJlOjc5MDk6 IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3OTA5 OiAkPyA9IDAKY29uZmlndXJlOjc5MDk6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo3OTA5OiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6Nzkw OTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjc5 MDk6ICQ/ID0gMApjb25maWd1cmU6NzkwOTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjc5MDk6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6Nzkw OTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjc5 MDk6ICQ/ID0gMApjb25maWd1cmU6NzkwOTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjc5MDk6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1cmU6Nzkw OTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjc5 MDk6ICQ/ID0gMApjb25maWd1cmU6NzkwOTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjc5MDk6IGNoZWNraW5nIGZvciBtZW1vcnkuaApjb25maWd1cmU6Nzkw OTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjc5 MDk6ICQ/ID0gMApjb25maWd1cmU6NzkwOTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjc5MDk6IGNoZWNraW5nIGZvciBzdHJpbmdzLmgKY29uZmlndXJlOjc5 MDk6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3 OTA5OiAkPyA9IDAKY29uZmlndXJlOjc5MDk6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo3OTA5OiBjaGVja2luZyBmb3IgaW50dHlwZXMuaApjb25maWd1cmU6 NzkwOTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl Ojc5MDk6ICQ/ID0gMApjb25maWd1cmU6NzkwOTogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjc5MDk6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6 NzkwOTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl Ojc5MDk6ICQ/ID0gMApjb25maWd1cmU6NzkwOTogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjc5MDk6IGNoZWNraW5nIGZvciB1bmlzdGQuaApjb25maWd1cmU6 NzkwOTogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl Ojc5MDk6ICQ/ID0gMApjb25maWd1cmU6NzkwOTogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjc5MjM6IGNoZWNraW5nIGZvciBkbGZjbi5oCmNvbmZpZ3VyZTo3 OTIzOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5j OjU1OjE5OiBmYXRhbCBlcnJvcjogZGxmY24uaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQogI2luY2x1ZGUgPGRsZmNuLmg+CiAgICAgICAgICAgICAg ICAgICBeCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo3OTIz OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGli dG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGli dG9vbC8iCnwgI2RlZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUg VkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T WVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8 ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVf U1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVk IFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBp bmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJp bmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRU WVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5p c3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPGRsZmNuLmg+CmNvbmZp Z3VyZTo3OTIzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3OTg3OiBjaGVja2lu ZyBmb3IgYXMKY29uZmlndXJlOjgwMDM6IGZvdW5kIC9taW5ndy9iaW4vYXMK Y29uZmlndXJlOjgwMTQ6IHJlc3VsdDogYXMKY29uZmlndXJlOjgwNzk6IGNo ZWNraW5nIGZvciBkbGx0b29sCmNvbmZpZ3VyZTo4MTA2OiByZXN1bHQ6IGRs bHRvb2wKY29uZmlndXJlOjgxNzE6IGNoZWNraW5nIGZvciBvYmpkdW1wCmNv bmZpZ3VyZTo4MTk4OiByZXN1bHQ6IG9iamR1bXAKY29uZmlndXJlOjg0MjY6 IGNoZWNraW5nIGZvciBvYmpkaXIKY29uZmlndXJlOjg0NDE6IHJlc3VsdDog LmxpYnMKY29uZmlndXJlOjg3MTI6IGNoZWNraW5nIGlmIGdjYyBzdXBwb3J0 cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zCmNvbmZpZ3VyZTo4NzMwOiBn Y2MgLWMgLWcgLU8yICAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIGNvbmZ0 ZXN0LmMgPiY1CmNjMS5leGU6IHdhcm5pbmc6IGNvbW1hbmQgbGluZSBvcHRp b24gJy1mbm8tcnR0aScgaXMgdmFsaWQgZm9yIEMrKy9PYmpDKysgYnV0IG5v dCBmb3IgQyBbZW5hYmxlZCBieSBkZWZhdWx0XQ0KY29uZmlndXJlOjg3MzQ6 ICQ/ID0gMApjb25maWd1cmU6ODc0NzogcmVzdWx0OiBubwpjb25maWd1cmU6 OTA3NDogY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gcHJvZHVjZSBQSUMK Y29uZmlndXJlOjkwODE6IHJlc3VsdDogLURETExfRVhQT1JUIC1EUElDCmNv bmZpZ3VyZTo5MDg5OiBjaGVja2luZyBpZiBnY2MgUElDIGZsYWcgLURETExf RVhQT1JUIC1EUElDIHdvcmtzCmNvbmZpZ3VyZTo5MTA3OiBnY2MgLWMgLWcg LU8yICAtRERMTF9FWFBPUlQgLURQSUMgLURQSUMgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjkxMTE6ICQ/ID0gMApjb25maWd1cmU6OTEyNDogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjkxNTM6IGNoZWNraW5nIGlmIGdjYyBzdGF0aWMg ZmxhZyAtc3RhdGljIHdvcmtzCmNvbmZpZ3VyZTo5MTgxOiByZXN1bHQ6IHll cwpjb25maWd1cmU6OTE5NjogY2hlY2tpbmcgaWYgZ2NjIHN1cHBvcnRzIC1j IC1vIGZpbGUubwpjb25maWd1cmU6OTIxNzogZ2NjIC1jIC1nIC1PMiAgLW8g b3V0L2NvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MjIx OiAkPyA9IDAKY29uZmlndXJlOjkyNDM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo5MjUxOiBjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5v CmNvbmZpZ3VyZTo5Mjk4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTMzMTog Y2hlY2tpbmcgd2hldGhlciB0aGUgZ2NjIGxpbmtlciAoYzovdGluZ3cvbWlu Z3czMi9iaW4vbGQuZXhlKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzCmNv bmZpZ3VyZToxMDQ4NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwNTIxOiBj aGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5r ZWQgaW4KY29uZmlndXJlOjEwNTI5OiBnY2MgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjb25maWd1cmU6MTA1MzI6ICQ/ID0gMApjb25maWd1cmU6MTA1 NDc6IGdjYyAtc2hhcmVkIGNvbmZ0ZXN0Lm8gIC12IC1vIC4vY29uZnRlc3Qg LVdsLC0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1p bXBsaWIgLVhsaW5rZXIgY29uZnRlc3QgMlw+XCYxIFx8IC9iaW4vZ3JlcCAg LWxjICBcPi9kZXYvbnVsbCAyXD5cJjEKY29uZmlndXJlOjEwNTUwOiAkPyA9 IDEKY29uZmlndXJlOjEwNTY0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTA3 MjQ6IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcwpj b25maWd1cmU6MTE0NTc6IHJlc3VsdDogV2luMzIgbGQuZXhlCmNvbmZpZ3Vy ZToxMTU2NDogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0 aHMgaW50byBwcm9ncmFtcwpjb25maWd1cmU6MTE1ODk6IHJlc3VsdDogaW1t ZWRpYXRlCmNvbmZpZ3VyZToxMjEyOTogY2hlY2tpbmcgd2hldGhlciBzdHJp cHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlCmNvbmZpZ3VyZToxMjEzNDog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyMTY5OiBjaGVja2luZyBpZiBsaWJ0 b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMKY29uZmlndXJlOjEyMTcx OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTIxNzQ6IGNoZWNraW5nIHdoZXRo ZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6MTIxOTU6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjE5ODogY2hlY2tpbmcgd2hldGhl ciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzCmNvbmZpZ3VyZToxMjIwMjog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyMjQwOiBjaGVja2luZyB3aGljaCBl eHRlbnNpb24gaXMgdXNlZCBmb3IgcnVudGltZSBsb2FkYWJsZSBtb2R1bGVz CmNvbmZpZ3VyZToxMjI1MjogcmVzdWx0OiAuZGxsCmNvbmZpZ3VyZToxMjI2 OTogY2hlY2tpbmcgd2hpY2ggdmFyaWFibGUgc3BlY2lmaWVzIHJ1bi10aW1l IG1vZHVsZSBzZWFyY2ggcGF0aApjb25maWd1cmU6MTIyNzY6IHJlc3VsdDog UEFUSApjb25maWd1cmU6MTIyODY6IGNoZWNraW5nIGZvciB0aGUgZGVmYXVs dCBsaWJyYXJ5IHNlYXJjaCBwYXRoCmNvbmZpZ3VyZToxMjI5MzogcmVzdWx0 OiAvbGliIC91c3IvbGliCmNvbmZpZ3VyZToxMjMyMzogY2hlY2tpbmcgZm9y IGxpYnJhcnkgY29udGFpbmluZyBkbG9wZW4KY29uZmlndXJlOjEyMzU0OiBn Y2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpD OlxVc2Vyc1xQVVNIX1R+MVxBcHBEYXRhXExvY2FsXFRlbXBcY2NPM0NicDgu bzogSW4gZnVuY3Rpb24gYG1haW4nOgpjOlxUaW5HV1xsaWJ0b29sLWJ1aWxk LWR1ZS10by1HTlUvY29uZnRlc3QuYzozNjogdW5kZWZpbmVkIHJlZmVyZW5j ZSB0byBgZGxvcGVuJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5l ZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxMjM1NDogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBMaWJ0b29sIDIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1saWJ0b29sQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZp bmUgUEFDS0FHRSAibGlidG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4y Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RV TEVfRVhUICIuZGxsIgp8ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQ QVRIIgp8ICNkZWZpbmUgTFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xp YiIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAj aWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hh ciBkbG9wZW4gKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZGxv cGVuICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTIz NTQ6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAt bGRsICAgPiY1CkM6XFVzZXJzXFBVU0hfVH4xXEFwcERhdGFcTG9jYWxcVGVt cFxjY3dVckFNVi5vOiBJbiBmdW5jdGlvbiBgbWFpbic6CmM6XFRpbkdXXGxp YnRvb2wtYnVpbGQtZHVlLXRvLUdOVS9jb25mdGVzdC5jOjM2OiB1bmRlZmlu ZWQgcmVmZXJlbmNlIHRvIGBkbG9wZW4nCmNvbGxlY3QyLmV4ZTogZXJyb3I6 IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjEyMzU0OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGlidG9v bCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9v bC8iCnwgI2RlZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUgVkVS U0lPTiAiMi40LjIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZp bmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVm aW5lIExUX01PRFVMRV9FWFQgIi5kbGwiCnwgI2RlZmluZSBMVF9NT0RVTEVf UEFUSF9WQVIgIlBBVEgiCnwgI2RlZmluZSBMVF9ETFNFQVJDSF9QQVRIICIv bGliOi91c3IvbGliIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAv KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFu ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw bHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAj ZW5kaWYKfCBjaGFyIGRsb3BlbiAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiBkbG9wZW4gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxMjM3MTogcmVzdWx0OiBubwpjb25maWd1cmU6MTIzOTk6IGdj YyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CkM6 XFVzZXJzXFBVU0hfVH4xXEFwcERhdGFcTG9jYWxcVGVtcFxjY3JSVXdFcS5v OiBJbiBmdW5jdGlvbiBgbWFpbic6CmM6XFRpbkdXXGxpYnRvb2wtYnVpbGQt ZHVlLXRvLUdOVS9jb25mdGVzdC5jOjMyOiB1bmRlZmluZWQgcmVmZXJlbmNl IHRvIGBkbG9wZW4nCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVk IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjEyMzk5OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGlidG9vbCIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8iCnwgI2RlZmlu ZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUgVkVSU0lPTiAiMi40LjIi CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIExUX01PRFVM RV9FWFQgIi5kbGwiCnwgI2RlZmluZSBMVF9NT0RVTEVfUEFUSF9WQVIgIlBB VEgiCnwgI2RlZmluZSBMVF9ETFNFQVJDSF9QQVRIICIvbGliOi91c3IvbGli Igp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWYgSEFWRV9ETEZDTl9I CnwgIyAgaW5jbHVkZSA8ZGxmY24uaD4KfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IGRsb3BlbigwLCAwKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjEyNDA2OiBjaGVja2luZyBmb3IgZGxvcGVuIGlu IC1sc3ZsZApjb25maWd1cmU6MTI0MzE6IGdjYyAtbyBjb25mdGVzdC5leGUg LWcgLU8yICAgY29uZnRlc3QuYyAtbHN2bGQgICA+JjUKYzovdGluZ3cvYmlu Ly4uL2xpYi9nY2MvbWluZ3czMi80LjguMS8uLi8uLi8uLi8uLi9taW5ndzMy L2Jpbi9sZC5leGU6IGNhbm5vdCBmaW5kIC1sc3ZsZApjb2xsZWN0Mi5leGU6 IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTox MjQzMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IExpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnRvb2wi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4yIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1saWJ0b29sQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlidG9vbCIKfCAjZGVm aW5lIFZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8i CnwgI2RlZmluZSBMVF9NT0RVTEVfRVhUICIuZGxsIgp8ICNkZWZpbmUgTFRf TU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8ICNkZWZpbmUgTFRfRExTRUFSQ0hf UEFUSCAiL2xpYjovdXNyL2xpYiIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0 aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4g IkMiCnwgI2VuZGlmCnwgY2hhciBkbG9wZW4gKCk7CnwgaW50CnwgbWFpbiAo KQp8IHsKfCByZXR1cm4gZGxvcGVuICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MTI0NDA6IHJlc3VsdDogbm8KY29uZmlndXJlOjEy NDc1OiBjaGVja2luZyBmb3Igc2hsX2xvYWQKY29uZmlndXJlOjEyNDc1OiBn Y2MgLW8gY29uZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpD OlxVc2Vyc1xQVVNIX1R+MVxBcHBEYXRhXExvY2FsXFRlbXBcY2NDNEF6T1Uu bzogSW4gZnVuY3Rpb24gYG1haW4nOgpjOlxUaW5HV1xsaWJ0b29sLWJ1aWxk LWR1ZS10by1HTlUvY29uZnRlc3QuYzo1OTogdW5kZWZpbmVkIHJlZmVyZW5j ZSB0byBgc2hsX2xvYWQnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVy bmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjEyNDc1OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGlidG9vbCIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8iCnwgI2Rl ZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUgVkVSU0lPTiAiMi40 LjIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIExUX01P RFVMRV9FWFQgIi5kbGwiCnwgI2RlZmluZSBMVF9NT0RVTEVfUEFUSF9WQVIg IlBBVEgiCnwgI2RlZmluZSBMVF9ETFNFQVJDSF9QQVRIICIvbGliOi91c3Iv bGliIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc2hs X2xvYWQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0 cy5oPiBkZWNsYXJlcyBzaGxfbG9hZC4KfCAgICBGb3IgZXhhbXBsZSwgSFAt VVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K fCAjZGVmaW5lIHNobF9sb2FkIGlubm9jdW91c19zaGxfbG9hZAp8IAp8IC8q IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhv cGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZs aWN0IHdpdGggY2hhciBzaGxfbG9hZCAoKTsgYmVsb3cuCnwgICAgIFByZWZl ciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVm aW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBm cmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERD X18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRl IDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgc2hsX2xvYWQKfCAK fCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIK fCAjZW5kaWYKfCBjaGFyIHNobF9sb2FkICgpOwp8IC8qIFRoZSBHTlUgQyBs aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt cGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBT b21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRo aW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBh biBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3NobF9sb2FkIHx8 IGRlZmluZWQgX19zdHViX19fc2hsX2xvYWQKfCBjaG9rZSBtZQp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHNobF9sb2FkICgp Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTI0NzU6IHJl c3VsdDogbm8KY29uZmlndXJlOjEyNDgyOiBjaGVja2luZyBmb3Igc2hsX2xv YWQgaW4gLWxkbGQKY29uZmlndXJlOjEyNTA3OiBnY2MgLW8gY29uZnRlc3Qu ZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgLWxkbGQgICA+JjUKYzovdGluZ3cv YmluLy4uL2xpYi9nY2MvbWluZ3czMi80LjguMS8uLi8uLi8uLi8uLi9taW5n dzMyL2Jpbi9sZC5leGU6IGNhbm5vdCBmaW5kIC1sZGxkCmNvbGxlY3QyLmV4 ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJl OjEyNTA3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgTGlidG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9v bCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvbGlidG9vbC8iCnwgI2RlZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNk ZWZpbmUgVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9J TlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJz LyIKfCAjZGVmaW5lIExUX01PRFVMRV9FWFQgIi5kbGwiCnwgI2RlZmluZSBM VF9NT0RVTEVfUEFUSF9WQVIgIlBBVEgiCnwgI2RlZmluZSBMVF9ETFNFQVJD SF9QQVRIICIvbGliOi91c3IvbGliIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGlu dCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg c3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVy biAiQyIKfCAjZW5kaWYKfCBjaGFyIHNobF9sb2FkICgpOwp8IGludAp8IG1h aW4gKCkKfCB7CnwgcmV0dXJuIHNobF9sb2FkICgpOwp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MTI1MTY6IHJlc3VsdDogbm8KY29uZmln dXJlOjEyNTQ2OiBjaGVja2luZyB3aGV0aGVyIGN5Z3dpbl9jb252X3BhdGgg aXMgZGVjbGFyZWQKY29uZmlndXJlOjEyNTQ2OiBnY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjI1OjI0OiBmYXRhbCBlcnJvcjog c3lzL2N5Z3dpbi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAjaW5j bHVkZSA8c3lzL2N5Z3dpbi5oPgogICAgICAgICAgICAgICAgICAgICAgICBe CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMjU0NjogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIExpYnRvb2wi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnRvb2wiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1saWJ0b29sQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wv Igp8ICNkZWZpbmUgUEFDS0FHRSAibGlidG9vbCIKfCAjZGVmaW5lIFZFUlNJ T04gIjIuNC4yIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmlu ZSBMVF9NT0RVTEVfRVhUICIuZGxsIgp8ICNkZWZpbmUgTFRfTU9EVUxFX1BB VEhfVkFSICJQQVRIIgp8ICNkZWZpbmUgTFRfRExTRUFSQ0hfUEFUSCAiL2xp YjovdXNyL2xpYiIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN5cy9jeWd3aW4uaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNp Zm5kZWYgY3lnd2luX2NvbnZfcGF0aAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 ICAgKHZvaWQpIGN5Z3dpbl9jb252X3BhdGg7CnwgI2Vsc2UKfCAgICh2b2lk KSBjeWd3aW5fY29udl9wYXRoOwp8ICNlbmRpZgp8ICNlbmRpZgp8IAp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTI1NDY6IHJlc3VsdDog bm8KY29uZmlndXJlOjEyNTYyOiBjaGVja2luZyBmb3IgZGxkX2xpbmsgaW4g LWxkbGQKY29uZmlndXJlOjEyNTg3OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1n IC1PMiAgIGNvbmZ0ZXN0LmMgLWxkbGQgICA+JjUKYzovdGluZ3cvYmluLy4u L2xpYi9nY2MvbWluZ3czMi80LjguMS8uLi8uLi8uLi8uLi9taW5ndzMyL2Jp bi9sZC5leGU6IGNhbm5vdCBmaW5kIC1sZGxkCmNvbGxlY3QyLmV4ZTogZXJy b3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjEyNTg3 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGli dG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGli dG9vbC8iCnwgI2RlZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUg VkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAj ZGVmaW5lIExUX01PRFVMRV9FWFQgIi5kbGwiCnwgI2RlZmluZSBMVF9NT0RV TEVfUEFUSF9WQVIgIlBBVEgiCnwgI2RlZmluZSBMVF9ETFNFQVJDSF9QQVRI ICIvbGliOi91c3IvbGliIgp8ICNkZWZpbmUgSEFWRV9ERUNMX0NZR1dJTl9D T05WX1BBVEggMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBP dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0 aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5k aWYKfCBjaGFyIGRsZF9saW5rICgpOwp8IGludAp8IG1haW4gKCkKfCB7Cnwg cmV0dXJuIGRsZF9saW5rICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTI1OTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjMwOiBj aGVja2luZyBmb3IgXyBwcmVmaXggaW4gY29tcGlsZWQgc3ltYm9scwpjb25m aWd1cmU6MTI2NDA6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZpZ3VyZToxMjY0MzogJD8gPSAwCmNvbmZpZ3VyZToxMjY0NzogL2Jpbi9u bSAtQiBjb25mdGVzdC5vIFx8IHNlZCAtbiAtZSAncy9eLipbCSBdXChbQUJD REdJUlNUV11bQUJDREdJUlNUV10qXClbCSBdWwkgXSpfXChbX0EtWmEtel1b X0EtWmEtejAtOV0qXClcezAsMVx9JC9cMSBfXDIgXDIvcCcgfCBzZWQgJy8g X19nbnVfbHRvL2QnIFw+IGNvbmZ0ZXN0Lm5tCmNvbmZpZ3VyZToxMjY1MDog JD8gPSAwCmNvbmZpZ3VyZToxMjY3MjogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjEyNzk2OiBjaGVja2luZyB3aGV0aGVyIGRlcGxpYnMgYXJlIGxvYWRlZCBi eSBkbG9wZW4KY29uZmlndXJlOjEyODkwOiByZXN1bHQ6IHVua25vd24KY29u ZmlndXJlOjEyOTAyOiBjaGVja2luZyBmb3IgYXJnei5oCmNvbmZpZ3VyZTox MjkwMjogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3Qu Yzo2MjoxODogZmF0YWwgZXJyb3I6IGFyZ3ouaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQogI2luY2x1ZGUgPGFyZ3ouaD4KICAgICAgICAgICAgICAg ICAgXgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTI5MDI6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBMaWJ0 b29sIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJ0b29sIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjQuMiIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgTGlidG9vbCAyLjQuMiIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctbGlidG9vbEBnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0 b29sLyIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnRvb2wiCnwgI2RlZmluZSBW RVJTSU9OICIyLjQuMiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2Rl ZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNk ZWZpbmUgTFRfTU9EVUxFX0VYVCAiLmRsbCIKfCAjZGVmaW5lIExUX01PRFVM RV9QQVRIX1ZBUiAiUEFUSCIKfCAjZGVmaW5lIExUX0RMU0VBUkNIX1BBVEgg Ii9saWI6L3Vzci9saWIiCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ1lHV0lOX0NP TlZfUEFUSCAwCnwgI2RlZmluZSBIQVZFX0xJQkRMTE9BREVSIDEKfCAjZGVm aW5lIExURExfRExPUEVOX0RFUExJQlMgMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNf VFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwg IyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwg IyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMg aW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RS SU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8 c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAj IGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxh cmd6Lmg+CmNvbmZpZ3VyZToxMjkwMjogcmVzdWx0OiBubwpjb25maWd1cmU6 MTI5MTQ6IGNoZWNraW5nIGZvciBlcnJvcl90CmNvbmZpZ3VyZToxMjkxNDog Z2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4g ZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjM1OjEzOiBlcnJvcjogJ2Vy cm9yX3QnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogaWYgKHNpemVvZiAoZXJyb3JfdCkpCiAgICAgICAgICAgICBeCmNvbmZ0 ZXN0LmM6MzU6MTM6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVy IGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh cHBlYXJzIGluCmNvbmZpZ3VyZToxMjkxNDogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0 b29sIDIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1s aWJ0b29sQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFD S0FHRSAibGlidG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4yIgp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RVTEVfRVhU ICIuZGxsIgp8ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8 ICNkZWZpbmUgTFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xpYiIKfCAj ZGVmaW5lIEhBVkVfREVDTF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAjZGVmaW5l IEhBVkVfTElCRExMT0FERVIgMQp8ICNkZWZpbmUgTFRETF9ETE9QRU5fREVQ TElCUyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZiBkZWZpbmVk KEhBVkVfQVJHWl9IKQp8ICMgIGluY2x1ZGUgPGFyZ3ouaD4KfCAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKGVycm9yX3Qp KQp8IAkgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToxMjkxNDogcmVzdWx0OiBubwpjb25maWd1cmU6MTI5NDA6IGNoZWNr aW5nIGZvciBhcmd6X2FkZApjb25maWd1cmU6MTI5NDA6IGdjYyAtbyBjb25m dGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CkM6XFVzZXJzXFBV U0hfVH4xXEFwcERhdGFcTG9jYWxcVGVtcFxjYzZaclJkMy5vOiBJbiBmdW5j dGlvbiBgbWFpbic6CmM6XFRpbkdXXGxpYnRvb2wtYnVpbGQtZHVlLXRvLUdO VS9jb25mdGVzdC5jOjY0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBhcmd6 X2FkZCcKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0 IHN0YXR1cwpjb25maWd1cmU6MTI5NDA6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBMaWJ0b29sIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJsaWJ0b29sIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjQuMiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTGlidG9v bCAyLjQuMiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctbGli dG9vbEBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0b29sLyIKfCAjZGVmaW5lIFBBQ0tB R0UgImxpYnRvb2wiCnwgI2RlZmluZSBWRVJTSU9OICIyLjQuMiIKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgTFRfTU9EVUxFX0VYVCAi LmRsbCIKfCAjZGVmaW5lIExUX01PRFVMRV9QQVRIX1ZBUiAiUEFUSCIKfCAj ZGVmaW5lIExUX0RMU0VBUkNIX1BBVEggIi9saWI6L3Vzci9saWIiCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQ1lHV0lOX0NPTlZfUEFUSCAwCnwgI2RlZmluZSBI QVZFX0xJQkRMTE9BREVSIDEKfCAjZGVmaW5lIExURExfRExPUEVOX0RFUExJ QlMgMQp8ICNkZWZpbmUgZXJyb3JfdCBpbnQKfCAjZGVmaW5lIF9fZXJyb3Jf dF9kZWZpbmVkIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVm aW5lIGFyZ3pfYWRkIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNl IDxsaW1pdHMuaD4gZGVjbGFyZXMgYXJnel9hZGQuCnwgICAgRm9yIGV4YW1w bGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4gICovCnwgI2RlZmluZSBhcmd6X2FkZCBpbm5vY3VvdXNfYXJnel9hZGQK fCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9z IGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNh biBjb25mbGljdCB3aXRoIGNoYXIgYXJnel9hZGQgKCk7IGJlbG93Lgp8ICAg ICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2 ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVm IF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMg aW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGFyZ3pf YWRkCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBp bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRl cm4gIkMiCnwgI2VuZGlmCnwgY2hhciBhcmd6X2FkZCAoKTsKfCAvKiBUaGUg R05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGlj aCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5P U1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAg IHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9hcmd6 X2FkZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FyZ3pfYWRkCnwgY2hva2UgbWUK fCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBhcmd6 X2FkZCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEy OTQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjk0MDogY2hlY2tpbmcgZm9y IGFyZ3pfYXBwZW5kCmNvbmZpZ3VyZToxMjk0MDogZ2NjIC1vIGNvbmZ0ZXN0 LmV4ZSAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKQzpcVXNlcnNcUFVTSF9U fjFcQXBwRGF0YVxMb2NhbFxUZW1wXGNjMTNtbWlLLm86IEluIGZ1bmN0aW9u IGBtYWluJzoKYzpcVGluR1dcbGlidG9vbC1idWlsZC1kdWUtdG8tR05VL2Nv bmZ0ZXN0LmM6NjQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGFyZ3pfYXBw ZW5kJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQg c3RhdHVzCmNvbmZpZ3VyZToxMjk0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0b29s IDIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1saWJ0 b29sQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFDS0FH RSAibGlidG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4yIgp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg TFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RVTEVfRVhUICIu ZGxsIgp8ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8ICNk ZWZpbmUgTFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xpYiIKfCAjZGVm aW5lIEhBVkVfREVDTF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAjZGVmaW5lIEhB VkVfTElCRExMT0FERVIgMQp8ICNkZWZpbmUgTFRETF9ETE9QRU5fREVQTElC UyAxCnwgI2RlZmluZSBlcnJvcl90IGludAp8ICNkZWZpbmUgX19lcnJvcl90 X2RlZmluZWQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZp bmUgYXJnel9hcHBlbmQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNh c2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBhcmd6X2FwcGVuZC4KfCAgICBGb3Ig ZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGlt ZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGFyZ3pfYXBwZW5kIGlubm9jdW91c19h cmd6X2FwcGVuZAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9f c3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAg ICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBhcmd6X2FwcGVuZCAo KTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0 cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAg Ki8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5o Pgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAK fCAjdW5kZWYgYXJnel9hcHBlbmQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBV c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBf X2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGFyZ3pf YXBwZW5kICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhp cyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUg YWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGgg X18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lm IGRlZmluZWQgX19zdHViX2FyZ3pfYXBwZW5kIHx8IGRlZmluZWQgX19zdHVi X19fYXJnel9hcHBlbmQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8 IG1haW4gKCkKfCB7CnwgcmV0dXJuIGFyZ3pfYXBwZW5kICgpOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTI5NDA6IHJlc3VsdDogbm8K Y29uZmlndXJlOjEyOTQwOiBjaGVja2luZyBmb3IgYXJnel9jb3VudApjb25m aWd1cmU6MTI5NDA6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29u ZnRlc3QuYyAgPiY1CkM6XFVzZXJzXFBVU0hfVH4xXEFwcERhdGFcTG9jYWxc VGVtcFxjY05ZUm1hVy5vOiBJbiBmdW5jdGlvbiBgbWFpbic6CmM6XFRpbkdX XGxpYnRvb2wtYnVpbGQtZHVlLXRvLUdOVS9jb25mdGVzdC5jOjY0OiB1bmRl ZmluZWQgcmVmZXJlbmNlIHRvIGBhcmd6X2NvdW50Jwpjb2xsZWN0Mi5leGU6 IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTox Mjk0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IExpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnRvb2wi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4yIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1saWJ0b29sQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlidG9vbCIKfCAjZGVm aW5lIFZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8i CnwgI2RlZmluZSBMVF9NT0RVTEVfRVhUICIuZGxsIgp8ICNkZWZpbmUgTFRf TU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8ICNkZWZpbmUgTFRfRExTRUFSQ0hf UEFUSCAiL2xpYjovdXNyL2xpYiIKfCAjZGVmaW5lIEhBVkVfREVDTF9DWUdX SU5fQ09OVl9QQVRIIDAKfCAjZGVmaW5lIEhBVkVfTElCRExMT0FERVIgMQp8 ICNkZWZpbmUgTFRETF9ETE9QRU5fREVQTElCUyAxCnwgI2RlZmluZSBlcnJv cl90IGludAp8ICNkZWZpbmUgX19lcnJvcl90X2RlZmluZWQgMQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgYXJnel9jb3VudCB0byBh biBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xh cmVzIGFyZ3pfY291bnQuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8 bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmlu ZSBhcmd6X2NvdW50IGlubm9jdW91c19hcmd6X2NvdW50CnwgCnwgLyogU3lz dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qg d2l0aCBjaGFyIGFyZ3pfY291bnQgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIg PGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmlu ZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl ZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19f CnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8 YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGFyZ3pfY291bnQKfCAK fCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIK fCAjZW5kaWYKfCBjaGFyIGFyZ3pfY291bnQgKCk7CnwgLyogVGhlIEdOVSBD IGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQg aW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4g IFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21l dGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlz IGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfYXJnel9jb3Vu dCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FyZ3pfY291bnQKfCBjaG9rZSBtZQp8 ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGFyZ3pf Y291bnQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTox Mjk0MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTI5NDA6IGNoZWNraW5nIGZv ciBhcmd6X2NyZWF0ZV9zZXAKY29uZmlndXJlOjEyOTQwOiBnY2MgLW8gY29u ZnRlc3QuZXhlIC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpDOlxVc2Vyc1xQ VVNIX1R+MVxBcHBEYXRhXExvY2FsXFRlbXBcY2NJUm9iSmQubzogSW4gZnVu Y3Rpb24gYG1haW4nOgpjOlxUaW5HV1xsaWJ0b29sLWJ1aWxkLWR1ZS10by1H TlUvY29uZnRlc3QuYzo2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgYXJn el9jcmVhdGVfc2VwJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5l ZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxMjk0MDogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBMaWJ0b29sIDIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1saWJ0b29sQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZp bmUgUEFDS0FHRSAibGlidG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4y Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RV TEVfRVhUICIuZGxsIgp8ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQ QVRIIgp8ICNkZWZpbmUgTFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xp YiIKfCAjZGVmaW5lIEhBVkVfREVDTF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAj ZGVmaW5lIEhBVkVfTElCRExMT0FERVIgMQp8ICNkZWZpbmUgTFRETF9ETE9Q RU5fREVQTElCUyAxCnwgI2RlZmluZSBlcnJvcl90IGludAp8ICNkZWZpbmUg X19lcnJvcl90X2RlZmluZWQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAvKiBEZWZpbmUgYXJnel9jcmVhdGVfc2VwIHRvIGFuIGlubm9jdW91cyB2 YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYXJnel9jcmVh dGVfc2VwLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5o PiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgYXJnel9j cmVhdGVfc2VwIGlubm9jdW91c19hcmd6X2NyZWF0ZV9zZXAKfCAKfCAvKiBT eXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3Bl ZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGlj dCB3aXRoIGNoYXIgYXJnel9jcmVhdGVfc2VwICgpOyBiZWxvdy4KfCAgICAg UHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp cyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVu IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGlu Y2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBhcmd6X2Ny ZWF0ZV9zZXAKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MK fCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGFyZ3pfY3JlYXRlX3NlcCAo KTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1 bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBm YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5 IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0 aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVk IF9fc3R1Yl9hcmd6X2NyZWF0ZV9zZXAgfHwgZGVmaW5lZCBfX3N0dWJfX19h cmd6X2NyZWF0ZV9zZXAKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8 IG1haW4gKCkKfCB7CnwgcmV0dXJuIGFyZ3pfY3JlYXRlX3NlcCAoKTsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEyOTQwOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxMjk0MDogY2hlY2tpbmcgZm9yIGFyZ3pfaW5zZXJ0 CmNvbmZpZ3VyZToxMjk0MDogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtZyAtTzIg ICBjb25mdGVzdC5jICA+JjUKQzpcVXNlcnNcUFVTSF9UfjFcQXBwRGF0YVxM b2NhbFxUZW1wXGNjVUtuTVVSLm86IEluIGZ1bmN0aW9uIGBtYWluJzoKYzpc VGluR1dcbGlidG9vbC1idWlsZC1kdWUtdG8tR05VL2NvbmZ0ZXN0LmM6NjQ6 IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGFyZ3pfaW5zZXJ0Jwpjb2xsZWN0 Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZToxMjk0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIExpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxp YnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuNC4yIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4yIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1saWJ0b29sQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlidG9vbCIK fCAjZGVmaW5lIFZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgU1REQ19IRUFE RVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIu bGlicy8iCnwgI2RlZmluZSBMVF9NT0RVTEVfRVhUICIuZGxsIgp8ICNkZWZp bmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8ICNkZWZpbmUgTFRfRExT RUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xpYiIKfCAjZGVmaW5lIEhBVkVfREVD TF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAjZGVmaW5lIEhBVkVfTElCRExMT0FE RVIgMQp8ICNkZWZpbmUgTFRETF9ETE9QRU5fREVQTElCUyAxCnwgI2RlZmlu ZSBlcnJvcl90IGludAp8ICNkZWZpbmUgX19lcnJvcl90X2RlZmluZWQgMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgYXJnel9pbnNl cnQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5o PiBkZWNsYXJlcyBhcmd6X2luc2VydC4KfCAgICBGb3IgZXhhbXBsZSwgSFAt VVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K fCAjZGVmaW5lIGFyZ3pfaW5zZXJ0IGlubm9jdW91c19hcmd6X2luc2VydAp8 IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2Fu IGNvbmZsaWN0IHdpdGggY2hhciBhcmd6X2luc2VydCAoKTsgYmVsb3cuCnwg ICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERD X18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMg ZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZk ZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwg IyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgYXJn el9pbnNlcnQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MK fCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGFyZ3pfaW5zZXJ0ICgpOwp8 IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rp b25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwg d2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBu b3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19z dHViX2FyZ3pfaW5zZXJ0IHx8IGRlZmluZWQgX19zdHViX19fYXJnel9pbnNl cnQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7 CnwgcmV0dXJuIGFyZ3pfaW5zZXJ0ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MTI5NDA6IHJlc3VsdDogbm8KY29uZmlndXJlOjEy OTQwOiBjaGVja2luZyBmb3IgYXJnel9uZXh0CmNvbmZpZ3VyZToxMjk0MDog Z2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUK QzpcVXNlcnNcUFVTSF9UfjFcQXBwRGF0YVxMb2NhbFxUZW1wXGNjSVRpbm56 Lm86IEluIGZ1bmN0aW9uIGBtYWluJzoKYzpcVGluR1dcbGlidG9vbC1idWls ZC1kdWUtdG8tR05VL2NvbmZ0ZXN0LmM6NjQ6IHVuZGVmaW5lZCByZWZlcmVu Y2UgdG8gYGFyZ3pfbmV4dCcKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0 dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTI5NDA6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBMaWJ0b29sIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJ0b29sIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjQuMiIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgTGlidG9vbCAyLjQuMiIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJidWctbGlidG9vbEBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0b29sLyIKfCAj ZGVmaW5lIFBBQ0tBR0UgImxpYnRvb2wiCnwgI2RlZmluZSBWRVJTSU9OICIy LjQuMiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgTFRf TU9EVUxFX0VYVCAiLmRsbCIKfCAjZGVmaW5lIExUX01PRFVMRV9QQVRIX1ZB UiAiUEFUSCIKfCAjZGVmaW5lIExUX0RMU0VBUkNIX1BBVEggIi9saWI6L3Vz ci9saWIiCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ1lHV0lOX0NPTlZfUEFUSCAw CnwgI2RlZmluZSBIQVZFX0xJQkRMTE9BREVSIDEKfCAjZGVmaW5lIExURExf RExPUEVOX0RFUExJQlMgMQp8ICNkZWZpbmUgZXJyb3JfdCBpbnQKfCAjZGVm aW5lIF9fZXJyb3JfdF9kZWZpbmVkIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgLyogRGVmaW5lIGFyZ3pfbmV4dCB0byBhbiBpbm5vY3VvdXMgdmFy aWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGFyZ3pfbmV4dC4K fCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFy ZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGFyZ3pfbmV4dCBpbm5v Y3VvdXNfYXJnel9uZXh0CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZp bmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVz LAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGFyZ3pfbmV4 dCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3Nl cnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxp bWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJz LiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0 cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYK fCAKfCAjdW5kZWYgYXJnel9uZXh0CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAg VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBhcmd6 X25leHQgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlz IGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBh bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYg ZGVmaW5lZCBfX3N0dWJfYXJnel9uZXh0IHx8IGRlZmluZWQgX19zdHViX19f YXJnel9uZXh0CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWlu ICgpCnwgewp8IHJldHVybiBhcmd6X25leHQgKCk7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToxMjk0MDogcmVzdWx0OiBubwpjb25maWd1 cmU6MTI5NDA6IGNoZWNraW5nIGZvciBhcmd6X3N0cmluZ2lmeQpjb25maWd1 cmU6MTI5NDA6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRl c3QuYyAgPiY1CkM6XFVzZXJzXFBVU0hfVH4xXEFwcERhdGFcTG9jYWxcVGVt cFxjY0VQNFVPOS5vOiBJbiBmdW5jdGlvbiBgbWFpbic6CmM6XFRpbkdXXGxp YnRvb2wtYnVpbGQtZHVlLXRvLUdOVS9jb25mdGVzdC5jOjY0OiB1bmRlZmlu ZWQgcmVmZXJlbmNlIHRvIGBhcmd6X3N0cmluZ2lmeScKY29sbGVjdDIuZXhl OiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6 MTI5NDA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBMaWJ0b29sIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJ0b29s Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjQuMiIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgTGlidG9vbCAyLjQuMiIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctbGlidG9vbEBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9saWJ0b29sLyIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnRvb2wiCnwgI2Rl ZmluZSBWRVJTSU9OICIyLjQuMiIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMv Igp8ICNkZWZpbmUgTFRfTU9EVUxFX0VYVCAiLmRsbCIKfCAjZGVmaW5lIExU X01PRFVMRV9QQVRIX1ZBUiAiUEFUSCIKfCAjZGVmaW5lIExUX0RMU0VBUkNI X1BBVEggIi9saWI6L3Vzci9saWIiCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ1lH V0lOX0NPTlZfUEFUSCAwCnwgI2RlZmluZSBIQVZFX0xJQkRMTE9BREVSIDEK fCAjZGVmaW5lIExURExfRExPUEVOX0RFUExJQlMgMQp8ICNkZWZpbmUgZXJy b3JfdCBpbnQKfCAjZGVmaW5lIF9fZXJyb3JfdF9kZWZpbmVkIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGFyZ3pfc3RyaW5naWZ5 IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4g ZGVjbGFyZXMgYXJnel9zdHJpbmdpZnkuCnwgICAgRm9yIGV4YW1wbGUsIEhQ LVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICov CnwgI2RlZmluZSBhcmd6X3N0cmluZ2lmeSBpbm5vY3VvdXNfYXJnel9zdHJp bmdpZnkKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdo aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYXJnel9zdHJpbmdpZnkgKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+ IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMu aD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICov CnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4K fCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwg I3VuZGVmIGFyZ3pfc3RyaW5naWZ5CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAg VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBhcmd6 X3N0cmluZ2lmeSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVz IHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAg IHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg YXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3 aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8 ICNpZiBkZWZpbmVkIF9fc3R1Yl9hcmd6X3N0cmluZ2lmeSB8fCBkZWZpbmVk IF9fc3R1Yl9fX2FyZ3pfc3RyaW5naWZ5CnwgY2hva2UgbWUKfCAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBhcmd6X3N0cmluZ2lm eSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEyOTQw OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMzAwODogY2hlY2tpbmcgd2hldGhl ciBsaWJ0b29sIHN1cHBvcnRzIC1kbG9wZW4vLWRscHJlb3Blbgpjb25maWd1 cmU6MTMwMjA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMzA3MzogY2hlY2tp bmcgZm9yIHVuaXN0ZC5oCmNvbmZpZ3VyZToxMzA3MzogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjEzMDczOiBjaGVja2luZyBmb3IgZGwuaApjb25maWd1cmU6 MTMwNzM6IGdjYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0 LmM6NjY6MTY6IGZhdGFsIGVycm9yOiBkbC5oOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5CiAjaW5jbHVkZSA8ZGwuaD4KICAgICAgICAgICAgICAgIF4K Y29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEzMDczOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGlidG9vbCIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8i CnwgI2RlZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUgVkVSU0lP TiAiMi40LjIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5l IExUX01PRFVMRV9FWFQgIi5kbGwiCnwgI2RlZmluZSBMVF9NT0RVTEVfUEFU SF9WQVIgIlBBVEgiCnwgI2RlZmluZSBMVF9ETFNFQVJDSF9QQVRIICIvbGli Oi91c3IvbGliIgp8ICNkZWZpbmUgSEFWRV9ERUNMX0NZR1dJTl9DT05WX1BB VEggMAp8ICNkZWZpbmUgSEFWRV9MSUJETExPQURFUiAxCnwgI2RlZmluZSBM VERMX0RMT1BFTl9ERVBMSUJTIDEKfCAjZGVmaW5lIGVycm9yX3QgaW50Cnwg I2RlZmluZSBfX2Vycm9yX3RfZGVmaW5lZCAxCnwgI2RlZmluZSBIQVZFX1BS RUxPQURFRF9TWU1CT0xTIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4K fCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMg aW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMg JiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5 Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5j bHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJ TlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRp Zgp8IAp8ICNpbmNsdWRlIDxkbC5oPgpjb25maWd1cmU6MTMwNzM6IHJlc3Vs dDogbm8KY29uZmlndXJlOjEzMDczOiBjaGVja2luZyBmb3Igc3lzL2RsLmgK Y29uZmlndXJlOjEzMDczOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjb25mdGVzdC5jOjY2OjIwOiBmYXRhbCBlcnJvcjogc3lzL2RsLmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICNpbmNsdWRlIDxzeXMvZGwuaD4K ICAgICAgICAgICAgICAgICAgICBeCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZToxMzA3MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuNC4y Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4y Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1saWJ0b29sQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFDS0FHRSAibGli dG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTFRfT0JK RElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RVTEVfRVhUICIuZGxsIgp8 ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8ICNkZWZpbmUg TFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xpYiIKfCAjZGVmaW5lIEhB VkVfREVDTF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAjZGVmaW5lIEhBVkVfTElC RExMT0FERVIgMQp8ICNkZWZpbmUgTFRETF9ETE9QRU5fREVQTElCUyAxCnwg I2RlZmluZSBlcnJvcl90IGludAp8ICNkZWZpbmUgX19lcnJvcl90X2RlZmlu ZWQgMQp8ICNkZWZpbmUgSEFWRV9QUkVMT0FERURfU1lNQk9MUyAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVT X0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZk ZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg ZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllf SAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1 ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1Nf SAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGlu dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL2Rs Lmg+CmNvbmZpZ3VyZToxMzA3MzogcmVzdWx0OiBubwpjb25maWd1cmU6MTMw NzM6IGNoZWNraW5nIGZvciBkbGQuaApjb25maWd1cmU6MTMwNzM6IGdjYyAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NjY6MTc6IGZh dGFsIGVycm9yOiBkbGQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog I2luY2x1ZGUgPGRsZC5oPgogICAgICAgICAgICAgICAgIF4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjEzMDczOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTGlidG9vbCIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8iCnwgI2RlZmlu ZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZpbmUgVkVSU0lPTiAiMi40LjIi CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIExUX01PRFVM RV9FWFQgIi5kbGwiCnwgI2RlZmluZSBMVF9NT0RVTEVfUEFUSF9WQVIgIlBB VEgiCnwgI2RlZmluZSBMVF9ETFNFQVJDSF9QQVRIICIvbGliOi91c3IvbGli Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0NZR1dJTl9DT05WX1BBVEggMAp8ICNk ZWZpbmUgSEFWRV9MSUJETExPQURFUiAxCnwgI2RlZmluZSBMVERMX0RMT1BF Tl9ERVBMSUJTIDEKfCAjZGVmaW5lIGVycm9yX3QgaW50CnwgI2RlZmluZSBf X2Vycm9yX3RfZGVmaW5lZCAxCnwgI2RlZmluZSBIQVZFX1BSRUxPQURFRF9T WU1CT0xTIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYg SEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8 c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwg IyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8 ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5l ZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBl bmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMg aW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5J U1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNp bmNsdWRlIDxkbGQuaD4KY29uZmlndXJlOjEzMDczOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToxMzA3MzogY2hlY2tpbmcgZm9yIG1hY2gtby9keWxkLmgKY29u ZmlndXJlOjEzMDczOiBnY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpj b25mdGVzdC5jOjY2OjI1OiBmYXRhbCBlcnJvcjogbWFjaC1vL2R5bGQuaDog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogI2luY2x1ZGUgPG1hY2gtby9k eWxkLmg+CiAgICAgICAgICAgICAgICAgICAgICAgICBeCmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMzA3MzogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBM aWJ0b29sIDIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1saWJ0b29sQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZpbmUg UEFDS0FHRSAibGlidG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4yIgp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RVTEVf RVhUICIuZGxsIgp8ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQQVRI Igp8ICNkZWZpbmUgTFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xpYiIK fCAjZGVmaW5lIEhBVkVfREVDTF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAjZGVm aW5lIEhBVkVfTElCRExMT0FERVIgMQp8ICNkZWZpbmUgTFRETF9ETE9QRU5f REVQTElCUyAxCnwgI2RlZmluZSBlcnJvcl90IGludAp8ICNkZWZpbmUgX19l cnJvcl90X2RlZmluZWQgMQp8ICNkZWZpbmUgSEFWRV9QUkVMT0FERURfU1lN Qk9MUyAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAj ZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQg SEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5k aWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5j bHVkZSA8bWFjaC1vL2R5bGQuaD4KY29uZmlndXJlOjEzMDczOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxMzA3MzogY2hlY2tpbmcgZm9yIGRpcmVudC5oCmNv bmZpZ3VyZToxMzA3MzogZ2NjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjEzMDczOiAkPyA9IDAKY29uZmlndXJlOjEzMDczOiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MTMwODg6IGNoZWNraW5nIGZvciBjbG9zZWRp cgpjb25maWd1cmU6MTMwODg6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8y ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZToxMzA4ODogJD8gPSAwCmNv bmZpZ3VyZToxMzA4ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEzMDg4OiBj aGVja2luZyBmb3Igb3BlbmRpcgpjb25maWd1cmU6MTMwODg6IGdjYyAtbyBj b25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3Vy ZToxMzA4ODogJD8gPSAwCmNvbmZpZ3VyZToxMzA4ODogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjEzMDg4OiBjaGVja2luZyBmb3IgcmVhZGRpcgpjb25maWd1 cmU6MTMwODg6IGdjYyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRl c3QuYyAgPiY1CmNvbmZpZ3VyZToxMzA4ODogJD8gPSAwCmNvbmZpZ3VyZTox MzA4ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEzMTA3OiBjaGVja2luZyBm b3Igc3RybGNhdApjb25maWd1cmU6MTMxMDc6IGdjYyAtbyBjb25mdGVzdC5l eGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CkM6XFVzZXJzXFBVU0hfVH4x XEFwcERhdGFcTG9jYWxcVGVtcFxjY2F4OFpSbC5vOiBJbiBmdW5jdGlvbiBg bWFpbic6CmM6XFRpbkdXXGxpYnRvb2wtYnVpbGQtZHVlLXRvLUdOVS9jb25m dGVzdC5jOjcwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzdHJsY2F0Jwpj b2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz CmNvbmZpZ3VyZToxMzEwNzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuNC4y Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4y Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1saWJ0b29sQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFDS0FHRSAibGli dG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4yIgp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgTFRfT0JK RElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RVTEVfRVhUICIuZGxsIgp8 ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8ICNkZWZpbmUg TFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xpYiIKfCAjZGVmaW5lIEhB VkVfREVDTF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAjZGVmaW5lIEhBVkVfTElC RExMT0FERVIgMQp8ICNkZWZpbmUgTFRETF9ETE9QRU5fREVQTElCUyAxCnwg I2RlZmluZSBlcnJvcl90IGludAp8ICNkZWZpbmUgX19lcnJvcl90X2RlZmlu ZWQgMQp8ICNkZWZpbmUgSEFWRV9QUkVMT0FERURfU1lNQk9MUyAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9DTE9TRURJUiAxCnwgI2RlZmluZSBIQVZFX09Q RU5ESVIgMQp8ICNkZWZpbmUgSEFWRV9SRUFERElSIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHN0cmxjYXQgdG8gYW4gaW5ub2N1 b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzdHJs Y2F0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBk ZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc3RybGNhdCBp bm5vY3VvdXNfc3RybGNhdAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBl cywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzdHJsY2F0 ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2Vy dC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMu ICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRz Lmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8 IAp8ICN1bmRlZiBzdHJsY2F0CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19j cGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzdHJsY2F0 ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3Ig ZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlz IGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmlu ZWQgX19zdHViX3N0cmxjYXQgfHwgZGVmaW5lZCBfX3N0dWJfX19zdHJsY2F0 CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiBzdHJsY2F0ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTMxMDc6IHJlc3VsdDogbm8KY29uZmlndXJlOjEzMTA3OiBj aGVja2luZyBmb3Igc3RybGNweQpjb25maWd1cmU6MTMxMDc6IGdjYyAtbyBj b25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CkM6XFVzZXJz XFBVU0hfVH4xXEFwcERhdGFcTG9jYWxcVGVtcFxjY2ZCY0VYbC5vOiBJbiBm dW5jdGlvbiBgbWFpbic6CmM6XFRpbkdXXGxpYnRvb2wtYnVpbGQtZHVlLXRv LUdOVS9jb25mdGVzdC5jOjcwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBz dHJsY3B5Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4 aXQgc3RhdHVzCmNvbmZpZ3VyZToxMzEwNzogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIExpYnRvb2wiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImxpYnRvb2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBMaWJ0 b29sIDIuNC4yIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1s aWJ0b29sQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvIgp8ICNkZWZpbmUgUEFD S0FHRSAibGlidG9vbCIKfCAjZGVmaW5lIFZFUlNJT04gIjIuNC4yIgp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBMVF9NT0RVTEVfRVhU ICIuZGxsIgp8ICNkZWZpbmUgTFRfTU9EVUxFX1BBVEhfVkFSICJQQVRIIgp8 ICNkZWZpbmUgTFRfRExTRUFSQ0hfUEFUSCAiL2xpYjovdXNyL2xpYiIKfCAj ZGVmaW5lIEhBVkVfREVDTF9DWUdXSU5fQ09OVl9QQVRIIDAKfCAjZGVmaW5l IEhBVkVfTElCRExMT0FERVIgMQp8ICNkZWZpbmUgTFRETF9ETE9QRU5fREVQ TElCUyAxCnwgI2RlZmluZSBlcnJvcl90IGludAp8ICNkZWZpbmUgX19lcnJv cl90X2RlZmluZWQgMQp8ICNkZWZpbmUgSEFWRV9QUkVMT0FERURfU1lNQk9M UyAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVf RElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9DTE9TRURJUiAxCnwgI2RlZmlu ZSBIQVZFX09QRU5ESVIgMQp8ICNkZWZpbmUgSEFWRV9SRUFERElSIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHN0cmxjcHkgdG8g YW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNs YXJlcyBzdHJsY3B5Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxp bWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUg c3RybGNweSBpbm5vY3VvdXNfc3RybGNweQp8IAp8IC8qIFN5c3RlbSBoZWFk ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg cHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hh ciBzdHJsY3B5ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4g dG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8 ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBj b21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVk ZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8 ICNlbmRpZgp8IAp8ICN1bmRlZiBzdHJsY3B5CnwgCnwgLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAj aWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hh ciBzdHJsY3B5ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAg dG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBh cmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdp dGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwg I2lmIGRlZmluZWQgX19zdHViX3N0cmxjcHkgfHwgZGVmaW5lZCBfX3N0dWJf X19zdHJsY3B5CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWlu ICgpCnwgewp8IHJldHVybiBzdHJsY3B5ICgpOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTMxMDc6IHJlc3VsdDogbm8KY29uZmlndXJl OjEzMjAyOiBjaGVja2luZyBmb3IgZysrCmNvbmZpZ3VyZToxMzIxODogZm91 bmQgL21pbmd3L2Jpbi9nKysKY29uZmlndXJlOjEzMjI5OiByZXN1bHQ6IGcr Kwpjb25maWd1cmU6MTMyNTY6IGNoZWNraW5nIGZvciBDKysgY29tcGlsZXIg dmVyc2lvbgpjb25maWd1cmU6MTMyNjU6IGcrKyAtLXZlcnNpb24gPiY1Cmcr Ky5leGUgKEdDQykgNC44LjENCkNvcHlyaWdodCAoQykgMjAxMyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NClRoaXMgaXMgZnJlZSBzb2Z0d2Fy ZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRo ZXJlIGlzIE5PDQp3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4NCg0K Y29uZmlndXJlOjEzMjc2OiAkPyA9IDAKY29uZmlndXJlOjEzMjY1OiBnKysg LXYgPiY1ClVzaW5nIGJ1aWx0LWluIHNwZWNzLgpDT0xMRUNUX0dDQz1jOlxU aW5HV1xiaW5cZysrLmV4ZQpDT0xMRUNUX0xUT19XUkFQUEVSPWM6L3Rpbmd3 L2Jpbi8uLi9saWJleGVjL2djYy9taW5ndzMyLzQuOC4xL2x0by13cmFwcGVy LmV4ZQpUYXJnZXQ6IG1pbmd3MzIKQ29uZmlndXJlZCB3aXRoOiAuLi9nY2Mt NC44LjEvY29uZmlndXJlIC0tcHJlZml4PS9taW5ndyAtLWhvc3Q9bWluZ3cz MiAtLWJ1aWxkPW1pbmd3MzIgLS13aXRob3V0LXBpYyAtLWVuYWJsZS1zaGFy ZWQgLS1lbmFibGUtc3RhdGljIC0td2l0aC1nbnUtbGQgLS1lbmFibGUtbHRv IC0tZW5hYmxlLWxpYnNzcCAtLWRpc2FibGUtbXVsdGlsaWIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMsYysrLGZvcnRyYW4sb2JqYyxvYmotYysrLGFkYSAtLWRp c2FibGUtc2psai1leGNlcHRpb25zIC0td2l0aC1kd2FyZjIgLS1kaXNhYmxl LXdpbjMyLXJlZ2lzdHJ5IC0tZW5hYmxlLWxpYnN0ZGN4eC1kZWJ1ZyAtLWVu YWJsZS12ZXJzaW9uLXNwZWNpZmljLXJ1bnRpbWUtbGlicyAtLXdpdGgtZ21w PS91c3Ivc3JjL3BrZy9nbXAtNS4xLjItMS1taW5ndzMyLXNyYy9ibGQgLS13 aXRoLW1wYz0vdXNyL3NyYy9wa2cvbXBjLTEuMC4xLTEtbWluZ3czMi1zcmMv YmxkIC0td2l0aC1tcGZyPSAtLXdpdGgtc3lzdGVtLXpsaWIgLS13aXRoLWdu dS1hcyAtLWVuYWJsZS1kZWNpbWFsLWZsb2F0PXllcyAtLWVuYWJsZS1saWJn b21wIC0tZW5hYmxlLXRocmVhZHMgLS13aXRoLWxpYmljb252LXByZWZpeD0v bWluZ3czMiAtLXdpdGgtbGliaW50bC1wcmVmaXg9L21pbmd3IC0tZGlzYWJs ZS1ib290c3RyYXAgTERGTEFHUz0tcyBDRkxBR1M9LURfVVNFXzMyQklUX1RJ TUVfVApUaHJlYWQgbW9kZWw6IHdpbjMyCmdjYyB2ZXJzaW9uIDQuOC4xIChH Q0MpIApjb25maWd1cmU6MTMyNzY6ICQ/ID0gMApjb25maWd1cmU6MTMyNjU6 IGcrKyAtViA+JjUKZysrLmV4ZTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICctVicKZysrLmV4ZTogZmF0YWwgZXJyb3I6IG5v IGlucHV0IGZpbGVzCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3Vy ZToxMzI3NjogJD8gPSAxCmNvbmZpZ3VyZToxMzI2NTogZysrIC1xdmVyc2lv biA+JjUKZysrLmV4ZTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICctcXZlcnNpb24nCmcrKy5leGU6IGZhdGFsIGVycm9yOiBu byBpbnB1dCBmaWxlcwpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1 cmU6MTMyNzY6ICQ/ID0gMQpjb25maWd1cmU6MTMyODA6IGNoZWNraW5nIHdo ZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNvbXBpbGVyCmNvbmZp Z3VyZToxMzI5OTogZysrIC1jICAgY29uZnRlc3QuY3BwID4mNQpjb25maWd1 cmU6MTMyOTk6ICQ/ID0gMApjb25maWd1cmU6MTMzMDg6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToxMzMxNzogY2hlY2tpbmcgd2hldGhlciBnKysgYWNjZXB0 cyAtZwpjb25maWd1cmU6MTMzMzc6IGcrKyAtYyAtZyAgY29uZnRlc3QuY3Bw ID4mNQpjb25maWd1cmU6MTMzMzc6ICQ/ID0gMApjb25maWd1cmU6MTMzNzg6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMzQwMzogY2hlY2tpbmcgZGVwZW5k ZW5jeSBzdHlsZSBvZiBnKysKY29uZmlndXJlOjEzNTEzOiByZXN1bHQ6IGdj YzMKY29uZmlndXJlOjEzNTQ3OiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBD KysgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZToxMzU3NDogZysrIC1FICBjb25m dGVzdC5jcHAKY29uZmlndXJlOjEzNTc0OiAkPyA9IDAKY29uZmlndXJlOjEz NTg4OiBnKysgLUUgIGNvbmZ0ZXN0LmNwcApjb25mdGVzdC5jcHA6Mzg6Mjg6 IGZhdGFsIGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CiAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KY29tcGlsYXRpb24gdGVybWlu YXRlZC4KY29uZmlndXJlOjEzNTg4OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgTGlidG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAibGlidG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIExpYnRvb2wg Mi40LjIiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWxpYnRv b2xAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8iCnwgI2RlZmluZSBQQUNLQUdF ICJsaWJ0b29sIgp8ICNkZWZpbmUgVkVSU0lPTiAiMi40LjIiCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RE SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBM VF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIExUX01PRFVMRV9FWFQgIi5k bGwiCnwgI2RlZmluZSBMVF9NT0RVTEVfUEFUSF9WQVIgIlBBVEgiCnwgI2Rl ZmluZSBMVF9ETFNFQVJDSF9QQVRIICIvbGliOi91c3IvbGliIgp8ICNkZWZp bmUgSEFWRV9ERUNMX0NZR1dJTl9DT05WX1BBVEggMAp8ICNkZWZpbmUgSEFW RV9MSUJETExPQURFUiAxCnwgI2RlZmluZSBMVERMX0RMT1BFTl9ERVBMSUJT IDEKfCAjZGVmaW5lIGVycm9yX3QgaW50CnwgI2RlZmluZSBfX2Vycm9yX3Rf ZGVmaW5lZCAxCnwgI2RlZmluZSBIQVZFX1BSRUxPQURFRF9TWU1CT0xTIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX0NMT1NFRElSIDEKfCAjZGVmaW5lIEhB VkVfT1BFTkRJUiAxCnwgI2RlZmluZSBIQVZFX1JFQURESVIgMQp8ICNkZWZp bmUgTFRfTElCRVhUICJhIgp8ICNkZWZpbmUgTFRfTElCUFJFRklYICJsaWIi CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25l eGlzdGVudC5oPgpjb25maWd1cmU6MTM2MTM6IHJlc3VsdDogZysrIC1FCmNv bmZpZ3VyZToxMzYzMzogZysrIC1FICBjb25mdGVzdC5jcHAKY29uZmlndXJl OjEzNjMzOiAkPyA9IDAKY29uZmlndXJlOjEzNjQ3OiBnKysgLUUgIGNvbmZ0 ZXN0LmNwcApjb25mdGVzdC5jcHA6Mzg6Mjg6IGZhdGFsIGVycm9yOiBhY19u b25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAjaW5j bHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEz NjQ3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg TGlidG9vbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlidG9vbCIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIExpYnRvb2wgMi40LjIiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWxpYnRvb2xAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv bGlidG9vbC8iCnwgI2RlZmluZSBQQUNLQUdFICJsaWJ0b29sIgp8ICNkZWZp bmUgVkVSU0lPTiAiMi40LjIiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIK fCAjZGVmaW5lIExUX01PRFVMRV9FWFQgIi5kbGwiCnwgI2RlZmluZSBMVF9N T0RVTEVfUEFUSF9WQVIgIlBBVEgiCnwgI2RlZmluZSBMVF9ETFNFQVJDSF9Q QVRIICIvbGliOi91c3IvbGliIgp8ICNkZWZpbmUgSEFWRV9ERUNMX0NZR1dJ Tl9DT05WX1BBVEggMAp8ICNkZWZpbmUgSEFWRV9MSUJETExPQURFUiAxCnwg I2RlZmluZSBMVERMX0RMT1BFTl9ERVBMSUJTIDEKfCAjZGVmaW5lIGVycm9y X3QgaW50CnwgI2RlZmluZSBfX2Vycm9yX3RfZGVmaW5lZCAxCnwgI2RlZmlu ZSBIQVZFX1BSRUxPQURFRF9TWU1CT0xTIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX0NMT1NFRElSIDEKfCAjZGVmaW5lIEhBVkVfT1BFTkRJUiAxCnwgI2Rl ZmluZSBIQVZFX1JFQURESVIgMQp8ICNkZWZpbmUgTFRfTElCRVhUICJhIgp8 ICNkZWZpbmUgTFRfTElCUFJFRklYICJsaWIiCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25maWd1 cmU6MTM4MTY6IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5IGcrKwpjb25maWd1 cmU6MTM4ODM6IHJlc3VsdDogYzovdGluZ3cvbWluZ3czMi9iaW4vbGQuZXhl CmNvbmZpZ3VyZToxMzg5MDogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoYzov dGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlKSBpcyBHTlUgbGQKY29uZmlndXJl OjEzOTA1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTM5NjA6IGNoZWNraW5n IHdoZXRoZXIgdGhlIGcrKyBsaW5rZXIgKGM6L3Rpbmd3L21pbmd3MzIvYmlu L2xkLmV4ZSkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6 MTQ5NjU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNTAwMTogZysrIC1jIC1n IC1PMiAgY29uZnRlc3QuY3BwID4mNQpjb25maWd1cmU6MTUwMDQ6ICQ/ID0g MApjb25maWd1cmU6MTU1MjQ6IGNoZWNraW5nIGZvciBnKysgb3B0aW9uIHRv IHByb2R1Y2UgUElDCmNvbmZpZ3VyZToxNTUzMTogcmVzdWx0OiAtRERMTF9F WFBPUlQgLURQSUMKY29uZmlndXJlOjE1NTM5OiBjaGVja2luZyBpZiBnKysg UElDIGZsYWcgLURETExfRVhQT1JUIC1EUElDIHdvcmtzCmNvbmZpZ3VyZTox NTU1NzogZysrIC1jIC1nIC1PMiAgLURETExfRVhQT1JUIC1EUElDIC1EUElD IGNvbmZ0ZXN0LmNwcCA+JjUKY29uZmlndXJlOjE1NTYxOiAkPyA9IDAKY29u ZmlndXJlOjE1NTc0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTU1OTc6IGNo ZWNraW5nIGlmIGcrKyBzdGF0aWMgZmxhZyAtc3RhdGljIHdvcmtzCmNvbmZp Z3VyZToxNTYyNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE1NjM3OiBjaGVj a2luZyBpZiBnKysgc3VwcG9ydHMgLWMgLW8gZmlsZS5vCmNvbmZpZ3VyZTox NTY1ODogZysrIC1jIC1nIC1PMiAgLW8gb3V0L2NvbmZ0ZXN0Mi5vIGNvbmZ0 ZXN0LmNwcCA+JjUKY29uZmlndXJlOjE1NjYyOiAkPyA9IDAKY29uZmlndXJl OjE1Njg0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTU2ODk6IGNoZWNraW5n IGlmIGcrKyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8KY29uZmlndXJlOjE1NzM2 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTU3NjY6IGNoZWNraW5nIHdoZXRo ZXIgdGhlIGcrKyBsaW5rZXIgKGM6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4 ZSkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6MTU4MDI6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNTk0MzogY2hlY2tpbmcgZHluYW1p YyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzCmNvbmZpZ3VyZToxNjYxMDogcmVz dWx0OiBXaW4zMiBsZC5leGUKY29uZmlndXJlOjE2NjYzOiBjaGVja2luZyBo b3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zCmNv bmZpZ3VyZToxNjY4ODogcmVzdWx0OiBpbW1lZGlhdGUKY29uZmlndXJlOjE2 NzgxOiBjaGVja2luZyBmb3IgZzc3CmNvbmZpZ3VyZToxNjgxMTogcmVzdWx0 OiBubwpjb25maWd1cmU6MTY3ODE6IGNoZWNraW5nIGZvciB4bGYKY29uZmln dXJlOjE2ODExOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNjc4MTogY2hlY2tp bmcgZm9yIGY3Nwpjb25maWd1cmU6MTY4MTE6IHJlc3VsdDogbm8KY29uZmln dXJlOjE2NzgxOiBjaGVja2luZyBmb3IgZnJ0CmNvbmZpZ3VyZToxNjgxMTog cmVzdWx0OiBubwpjb25maWd1cmU6MTY3ODE6IGNoZWNraW5nIGZvciBwZ2Y3 Nwpjb25maWd1cmU6MTY4MTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2Nzgx OiBjaGVja2luZyBmb3IgY2Y3Nwpjb25maWd1cmU6MTY4MTE6IHJlc3VsdDog bm8KY29uZmlndXJlOjE2NzgxOiBjaGVja2luZyBmb3IgZm9ydDc3CmNvbmZp Z3VyZToxNjgxMTogcmVzdWx0OiBubwpjb25maWd1cmU6MTY3ODE6IGNoZWNr aW5nIGZvciBmbDMyCmNvbmZpZ3VyZToxNjgxMTogcmVzdWx0OiBubwpjb25m aWd1cmU6MTY3ODE6IGNoZWNraW5nIGZvciBhZjc3CmNvbmZpZ3VyZToxNjgx MTogcmVzdWx0OiBubwpjb25maWd1cmU6MTY3ODE6IGNoZWNraW5nIGZvciB4 bGY5MApjb25maWd1cmU6MTY4MTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2 NzgxOiBjaGVja2luZyBmb3IgZjkwCmNvbmZpZ3VyZToxNjgxMTogcmVzdWx0 OiBubwpjb25maWd1cmU6MTY3ODE6IGNoZWNraW5nIGZvciBwZ2Y5MApjb25m aWd1cmU6MTY4MTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2NzgxOiBjaGVj a2luZyBmb3IgcGdocGYKY29uZmlndXJlOjE2ODExOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToxNjc4MTogY2hlY2tpbmcgZm9yIGVwY2Y5MApjb25maWd1cmU6 MTY4MTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2NzgxOiBjaGVja2luZyBm b3IgZ2ZvcnRyYW4KY29uZmlndXJlOjE2ODExOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxNjc4MTogY2hlY2tpbmcgZm9yIGc5NQpjb25maWd1cmU6MTY4MTE6 IHJlc3VsdDogbm8KY29uZmlndXJlOjE2NzgxOiBjaGVja2luZyBmb3IgeGxm OTUKY29uZmlndXJlOjE2ODExOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNjc4 MTogY2hlY2tpbmcgZm9yIGY5NQpjb25maWd1cmU6MTY4MTE6IHJlc3VsdDog bm8KY29uZmlndXJlOjE2NzgxOiBjaGVja2luZyBmb3IgZm9ydApjb25maWd1 cmU6MTY4MTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2NzgxOiBjaGVja2lu ZyBmb3IgaWZvcnQKY29uZmlndXJlOjE2ODExOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxNjc4MTogY2hlY2tpbmcgZm9yIGlmYwpjb25maWd1cmU6MTY4MTE6 IHJlc3VsdDogbm8KY29uZmlndXJlOjE2NzgxOiBjaGVja2luZyBmb3IgZWZj CmNvbmZpZ3VyZToxNjgxMTogcmVzdWx0OiBubwpjb25maWd1cmU6MTY3ODE6 IGNoZWNraW5nIGZvciBwZ2ZvcnRyYW4KY29uZmlndXJlOjE2ODExOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxNjc4MTogY2hlY2tpbmcgZm9yIHBnZjk1CmNv bmZpZ3VyZToxNjgxMTogcmVzdWx0OiBubwpjb25maWd1cmU6MTY3ODE6IGNo ZWNraW5nIGZvciBsZjk1CmNvbmZpZ3VyZToxNjgxMTogcmVzdWx0OiBubwpj b25maWd1cmU6MTY3ODE6IGNoZWNraW5nIGZvciBmdG4KY29uZmlndXJlOjE2 ODExOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNjgzNDogY2hlY2tpbmcgZm9y IEZvcnRyYW4gNzcgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1cmU6MTY4NDM6 ICAtLXZlcnNpb24gPiY1Ci9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xp YnRvb2wtMi40LjIvY29uZmlndXJlOiBsaW5lIDE2ODQ1OiAtLXZlcnNpb246 IGNvbW1hbmQgbm90IGZvdW5kCmNvbmZpZ3VyZToxNjg1NDogJD8gPSAxMjcK Y29uZmlndXJlOjE2ODQzOiAgLXYgPiY1Ci9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvY29uZmlndXJlOiBsaW5lIDE2ODQ1OiAt djogY29tbWFuZCBub3QgZm91bmQKY29uZmlndXJlOjE2ODU0OiAkPyA9IDEy Nwpjb25maWd1cmU6MTY4NDM6ICAtViA+JjUKL01pbkdXL3NoYXJlL2F1dG9t YWtlLTEuMTEvbGlidG9vbC0yLjQuMi9jb25maWd1cmU6IGxpbmUgMTY4NDU6 IC1WOiBjb21tYW5kIG5vdCBmb3VuZApjb25maWd1cmU6MTY4NTQ6ICQ/ID0g MTI3CmNvbmZpZ3VyZToxNjg0MzogIC1xdmVyc2lvbiA+JjUKL01pbkdXL3No YXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9jb25maWd1cmU6IGxp bmUgMTY4NDU6IC1xdmVyc2lvbjogY29tbWFuZCBub3QgZm91bmQKY29uZmln dXJlOjE2ODU0OiAkPyA9IDEyNwpjb25maWd1cmU6MTY4NjM6IGNoZWNraW5n IHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgRm9ydHJhbiA3NyBjb21w aWxlcgpjb25maWd1cmU6MTY4NzY6ICAtYyAgY29uZnRlc3QuRiA+JjUKL01p bkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9jb25maWd1 cmU6IGxpbmUgMjA1MjogLWM6IGNvbW1hbmQgbm90IGZvdW5kCmNvbmZpZ3Vy ZToxNjg3NjogJD8gPSAxMjcKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgICAgICAgcHJvZ3JhbSBtYWluCnwgI2lmbmRlZiBfX0dOVUNfXwp8 ICAgICAgICBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8ICAgICAgIGVuZApjb25m aWd1cmU6MTY4ODU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2ODkxOiBjaGVj a2luZyB3aGV0aGVyICBhY2NlcHRzIC1nCmNvbmZpZ3VyZToxNjkwMjogIC1j IC1nIGNvbmZ0ZXN0LmYgPiY1Ci9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjEx L2xpYnRvb2wtMi40LjIvY29uZmlndXJlOiBsaW5lIDIwNTI6IC1jOiBjb21t YW5kIG5vdCBmb3VuZApjb25maWd1cmU6MTY5MDI6ICQ/ID0gMTI3CmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8ICAgICAgIHByb2dyYW0gbWFp bgp8IAp8ICAgICAgIGVuZApjb25maWd1cmU6MTY5MTA6IHJlc3VsdDogbm8K Y29uZmlndXJlOjE5NzEwOiBjaGVja2luZyBmb3IgZ2ZvcnRyYW4KY29uZmln dXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTcxMDogY2hlY2tp bmcgZm9yIGc5NQpjb25maWd1cmU6MTk3NDA6IHJlc3VsdDogbm8KY29uZmln dXJlOjE5NzEwOiBjaGVja2luZyBmb3IgeGxmOTUKY29uZmlndXJlOjE5NzQw OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTcxMDogY2hlY2tpbmcgZm9yIGY5 NQpjb25maWd1cmU6MTk3NDA6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5NzEw OiBjaGVja2luZyBmb3IgZm9ydApjb25maWd1cmU6MTk3NDA6IHJlc3VsdDog bm8KY29uZmlndXJlOjE5NzEwOiBjaGVja2luZyBmb3IgaWZvcnQKY29uZmln dXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTcxMDogY2hlY2tp bmcgZm9yIGlmYwpjb25maWd1cmU6MTk3NDA6IHJlc3VsdDogbm8KY29uZmln dXJlOjE5NzEwOiBjaGVja2luZyBmb3IgZWZjCmNvbmZpZ3VyZToxOTc0MDog cmVzdWx0OiBubwpjb25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZvciBwZ2Zv cnRyYW4KY29uZmlndXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox OTcxMDogY2hlY2tpbmcgZm9yIHBnZjk1CmNvbmZpZ3VyZToxOTc0MDogcmVz dWx0OiBubwpjb25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZvciBsZjk1CmNv bmZpZ3VyZToxOTc0MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTk3MTA6IGNo ZWNraW5nIGZvciBmdG4KY29uZmlndXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToxOTcxMDogY2hlY2tpbmcgZm9yIHhsZjkwCmNvbmZpZ3VyZTox OTc0MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZv ciBmOTAKY29uZmlndXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox OTcxMDogY2hlY2tpbmcgZm9yIHBnZjkwCmNvbmZpZ3VyZToxOTc0MDogcmVz dWx0OiBubwpjb25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZvciBwZ2hwZgpj b25maWd1cmU6MTk3NDA6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5NzEwOiBj aGVja2luZyBmb3IgZXBjZjkwCmNvbmZpZ3VyZToxOTc0MDogcmVzdWx0OiBu bwpjb25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZvciBnNzcKY29uZmlndXJl OjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTcxMDogY2hlY2tpbmcg Zm9yIHhsZgpjb25maWd1cmU6MTk3NDA6IHJlc3VsdDogbm8KY29uZmlndXJl OjE5NzEwOiBjaGVja2luZyBmb3IgZjc3CmNvbmZpZ3VyZToxOTc0MDogcmVz dWx0OiBubwpjb25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZvciBmcnQKY29u ZmlndXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTcxMDogY2hl Y2tpbmcgZm9yIHBnZjc3CmNvbmZpZ3VyZToxOTc0MDogcmVzdWx0OiBubwpj b25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZvciBjZjc3CmNvbmZpZ3VyZTox OTc0MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTk3MTA6IGNoZWNraW5nIGZv ciBmb3J0NzcKY29uZmlndXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToxOTcxMDogY2hlY2tpbmcgZm9yIGZsMzIKY29uZmlndXJlOjE5NzQwOiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTcxMDogY2hlY2tpbmcgZm9yIGFmNzcK Y29uZmlndXJlOjE5NzQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTc2Mzog Y2hlY2tpbmcgZm9yIEZvcnRyYW4gY29tcGlsZXIgdmVyc2lvbgpjb25maWd1 cmU6MTk3NzI6ICAtLXZlcnNpb24gPiY1Ci9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvY29uZmlndXJlOiBsaW5lIDE5Nzc0OiAt LXZlcnNpb246IGNvbW1hbmQgbm90IGZvdW5kCmNvbmZpZ3VyZToxOTc4Mzog JD8gPSAxMjcKY29uZmlndXJlOjE5NzcyOiAgLXYgPiY1Ci9NaW5HVy9zaGFy ZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvY29uZmlndXJlOiBsaW5l IDE5Nzc0OiAtdjogY29tbWFuZCBub3QgZm91bmQKY29uZmlndXJlOjE5Nzgz OiAkPyA9IDEyNwpjb25maWd1cmU6MTk3NzI6ICAtViA+JjUKL01pbkdXL3No YXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9jb25maWd1cmU6IGxp bmUgMTk3NzQ6IC1WOiBjb21tYW5kIG5vdCBmb3VuZApjb25maWd1cmU6MTk3 ODM6ICQ/ID0gMTI3CmNvbmZpZ3VyZToxOTc3MjogIC1xdmVyc2lvbiA+JjUK L01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9jb25m aWd1cmU6IGxpbmUgMTk3NzQ6IC1xdmVyc2lvbjogY29tbWFuZCBub3QgZm91 bmQKY29uZmlndXJlOjE5NzgzOiAkPyA9IDEyNwpjb25maWd1cmU6MTk3OTI6 IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgRm9ydHJh biBjb21waWxlcgpjb25maWd1cmU6MTk4MDU6ICAtYyAgIGNvbmZ0ZXN0LkYg PiY1Ci9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIv Y29uZmlndXJlOiBsaW5lIDIxMzY6IC1jOiBjb21tYW5kIG5vdCBmb3VuZApj b25maWd1cmU6MTk4MDU6ICQ/ID0gMTI3CmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8ICAgICAgIHByb2dyYW0gbWFpbgp8ICNpZm5kZWYgX19H TlVDX18KfCAgICAgICAgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCAgICAgICBl bmQKY29uZmlndXJlOjE5ODE0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTgy MDogY2hlY2tpbmcgd2hldGhlciAgYWNjZXB0cyAtZwpjb25maWd1cmU6MTk4 MzE6ICAtYyAtZyAgY29uZnRlc3QuZiA+JjUKL01pbkdXL3NoYXJlL2F1dG9t YWtlLTEuMTEvbGlidG9vbC0yLjQuMi9jb25maWd1cmU6IGxpbmUgMjEzNjog LWM6IGNvbW1hbmQgbm90IGZvdW5kCmNvbmZpZ3VyZToxOTgzMTogJD8gPSAx MjcKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgICAgICAgcHJv Z3JhbSBtYWluCnwgCnwgICAgICAgZW5kCmNvbmZpZ3VyZToxOTgzOTogcmVz dWx0OiBubwpjb25maWd1cmU6MjI3NzI6IGNoZWNraW5nIGZvciBnY2Nnbwpj b25maWd1cmU6MjI4MDI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI0ODY4OiBj aGVja2luZyBmb3IgZ2NqCmNvbmZpZ3VyZToyNDg5ODogcmVzdWx0OiBubwpj b25maWd1cmU6MjY5NjU6IGNoZWNraW5nIGZvciB3aW5kcmVzCmNvbmZpZ3Vy ZToyNjk4MTogZm91bmQgL21pbmd3L2Jpbi93aW5kcmVzCmNvbmZpZ3VyZToy Njk5MjogcmVzdWx0OiB3aW5kcmVzCmNvbmZpZ3VyZToyNzE0ODogY2hlY2tp bmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG9yZGVyLW9ubHkgcHJlcmVxdWlz aXRlcwpjb25maWd1cmU6MjcxNzI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToy NzM1NjogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCgojIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCiMjIFJ1bm5pbmcgY29uZmlnLnN0YXR1cy4gIyMK IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKVGhpcyBmaWxlIHdhcyBl eHRlbmRlZCBieSBHTlUgTGlidG9vbCBjb25maWcuc3RhdHVzIDIuNC4yLCB3 aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LiAgSW52 b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCgogIENPTkZJR19GSUxFUyAgICA9 IAogIENPTkZJR19IRUFERVJTICA9IAogIENPTkZJR19MSU5LUyAgICA9IAog IENPTkZJR19DT01NQU5EUyA9IAogICQgLi9jb25maWcuc3RhdHVzIAoKb24g dGlsbAoKY29uZmlnLnN0YXR1czoxNDkwOiBjcmVhdGluZyBNYWtlZmlsZQpj b25maWcuc3RhdHVzOjE0OTA6IGNyZWF0aW5nIGNvbmZpZy5oCmNvbmZpZy5z dGF0dXM6MTcwNDogZXhlY3V0aW5nIHRlc3RzL2F0Y29uZmlnIGNvbW1hbmRz CmNvbmZpZy5zdGF0dXM6MTcwNDogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1h bmRzCmNvbmZpZy5zdGF0dXM6MTcwNDogZXhlY3V0aW5nIGxpYnRvb2wgY29t bWFuZHMKCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgQ2FjaGUgdmFyaWFi bGVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tICMjCgphY19jdl9idWlsZD1p Njg2LXBjLW1pbmd3MzIKYWNfY3ZfY19jb21waWxlcl9nbnU9eWVzCmFjX2N2 X2N4eF9jb21waWxlcl9nbnU9eWVzCmFjX2N2X2Vudl9DQ0Nfc2V0PQphY19j dl9lbnZfQ0NDX3ZhbHVlPQphY19jdl9lbnZfQ0Nfc2V0PQphY19jdl9lbnZf Q0NfdmFsdWU9CmFjX2N2X2Vudl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfQ0ZM QUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQRkxBR1Nfc2V0PQphY19jdl9lbnZf Q1BQRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBfc2V0PQphY19jdl9lbnZf Q1BQX3ZhbHVlPQphY19jdl9lbnZfQ1hYQ1BQX3NldD0KYWNfY3ZfZW52X0NY WENQUF92YWx1ZT0KYWNfY3ZfZW52X0NYWEZMQUdTX3NldD0KYWNfY3ZfZW52 X0NYWEZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1hYX3NldD0KYWNfY3ZfZW52 X0NYWF92YWx1ZT0KYWNfY3ZfZW52X0Y3N19zZXQ9CmFjX2N2X2Vudl9GNzdf dmFsdWU9CmFjX2N2X2Vudl9GQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0ZDRkxB R1NfdmFsdWU9CmFjX2N2X2Vudl9GQ19zZXQ9CmFjX2N2X2Vudl9GQ192YWx1 ZT0KYWNfY3ZfZW52X0ZGTEFHU19zZXQ9CmFjX2N2X2Vudl9GRkxBR1NfdmFs dWU9CmFjX2N2X2Vudl9MREZMQUdTX3NldD0KYWNfY3ZfZW52X0xERkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9MSUJTX3NldD0KYWNfY3ZfZW52X0xJQlNfdmFs dWU9CmFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9idWls ZF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfc2V0PQphY19j dl9lbnZfaG9zdF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52X3RhcmdldF9hbGlh c19zZXQ9CmFjX2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9CmFjX2N2X2V4 ZWV4dD0uZXhlCmFjX2N2X2Y3N19jb21waWxlcl9nbnU9bm8KYWNfY3ZfZmNf Y29tcGlsZXJfZ251PW5vCmFjX2N2X2Z1bmNfYXJnel9hZGQ9bm8KYWNfY3Zf ZnVuY19hcmd6X2FwcGVuZD1ubwphY19jdl9mdW5jX2FyZ3pfY291bnQ9bm8K YWNfY3ZfZnVuY19hcmd6X2NyZWF0ZV9zZXA9bm8KYWNfY3ZfZnVuY19hcmd6 X2luc2VydD1ubwphY19jdl9mdW5jX2FyZ3pfbmV4dD1ubwphY19jdl9mdW5j X2FyZ3pfc3RyaW5naWZ5PW5vCmFjX2N2X2Z1bmNfY2xvc2VkaXI9eWVzCmFj X2N2X2Z1bmNfb3BlbmRpcj15ZXMKYWNfY3ZfZnVuY19yZWFkZGlyPXllcwph Y19jdl9mdW5jX3NobF9sb2FkPW5vCmFjX2N2X2Z1bmNfc3RybGNhdD1ubwph Y19jdl9mdW5jX3N0cmxjcHk9bm8KYWNfY3ZfaGF2ZV9kZWNsX2N5Z3dpbl9j b252X3BhdGg9bm8KYWNfY3ZfaGVhZGVyX2FyZ3pfaD1ubwphY19jdl9oZWFk ZXJfZGlyZW50X2g9eWVzCmFjX2N2X2hlYWRlcl9kbF9oPW5vCmFjX2N2X2hl YWRlcl9kbGRfaD1ubwphY19jdl9oZWFkZXJfZGxmY25faD1ubwphY19jdl9o ZWFkZXJfaW50dHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX21hY2hfb19keWxk X2g9bm8KYWNfY3ZfaGVhZGVyX21lbW9yeV9oPXllcwphY19jdl9oZWFkZXJf c3RkYz15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGludF9oPXllcwphY19jdl9oZWFk ZXJfc3RkbGliX2g9eWVzCmFjX2N2X2hlYWRlcl9zdHJpbmdfaD15ZXMKYWNf Y3ZfaGVhZGVyX3N0cmluZ3NfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19kbF9o PW5vCmFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oPXllcwphY19jdl9oZWFkZXJf c3lzX3R5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNf Y3ZfaG9zdD1pNjg2LXBjLW1pbmd3MzIKYWNfY3ZfbGliX2RsZF9kbGRfbGlu az1ubwphY19jdl9saWJfZGxkX3NobF9sb2FkPW5vCmFjX2N2X2xpYl9zdmxk X2Rsb3Blbj1ubwphY19jdl9vYmpleHQ9bwphY19jdl9wYXRoX0VHUkVQPScv YmluL2dyZXAgLUUnCmFjX2N2X3BhdGhfRkdSRVA9Jy9iaW4vZ3JlcCAtRicK YWNfY3ZfcGF0aF9HUkVQPS9iaW4vZ3JlcAphY19jdl9wYXRoX1NFRD0vYmlu L3NlZAphY19jdl9wYXRoX2luc3RhbGw9Jy9iaW4vaW5zdGFsbCAtYycKYWNf Y3ZfcGF0aF9ta2Rpcj0vYmluL21rZGlyCmFjX2N2X3Byb2dfQVdLPWdhd2sK YWNfY3ZfcHJvZ19DUFA9J2djYyAtRScKYWNfY3ZfcHJvZ19DWFhDUFA9J2cr KyAtRScKYWNfY3ZfcHJvZ19hY19jdF9BUj1hcgphY19jdl9wcm9nX2FjX2N0 X0FTPWFzCmFjX2N2X3Byb2dfYWNfY3RfQ0M9Z2NjCmFjX2N2X3Byb2dfYWNf Y3RfQ1hYPWcrKwphY19jdl9wcm9nX2FjX2N0X0RMTFRPT0w9ZGxsdG9vbAph Y19jdl9wcm9nX2FjX2N0X09CSkRVTVA9b2JqZHVtcAphY19jdl9wcm9nX2Fj X2N0X1JBTkxJQj1yYW5saWIKYWNfY3ZfcHJvZ19hY19jdF9SQz13aW5kcmVz CmFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9c3RyaXAKYWNfY3ZfcHJvZ19jY19j ODk9CmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNfY3ZfcHJvZ19jY19nY2NfY19v PXllcwphY19jdl9wcm9nX2N4eF9nPXllcwphY19jdl9wcm9nX2Y3N19nPW5v CmFjX2N2X3Byb2dfZmNfZz1ubwphY19jdl9wcm9nX21ha2VfbWFrZV9zZXQ9 eWVzCmFjX2N2X3NlYXJjaF9kbG9wZW49bm8KYWNfY3ZfdHlwZV9lcnJvcl90 PW5vCmFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPWdjYzMK YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPWdjYzMKbGli bHRkbF9jdl9wcmVsb2FkZWRfc3ltYm9scz15ZXMKbGlibHRkbF9jdl9zaGxp YmV4dD0uZGxsCmxpYmx0ZGxfY3Zfc2hyZXh0PS5kbGwKbHRfY3ZfYXJfYXRf ZmlsZT1ACmx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjPXllcwpsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUg aW1wb3J0fF54ODYgRExMJwpsdF9jdl9kbG9wZW49TG9hZExpYnJhcnkKbHRf Y3ZfZGxvcGVuX2xpYnM9Cmx0X2N2X2ZpbGVfbWFnaWNfY21kPWZ1bmNfd2lu MzJfbGliaWQKbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9Cmx0X2N2X2xk X3JlbG9hZF9mbGFnPS1yCmx0X2N2X21ha2Vfb3JkZXJfb25seT15ZXMKbHRf Y3ZfbW9kdWxlX3BhdGhfdmFyPVBBVEgKbHRfY3Zfbm1faW50ZXJmYWNlPSdC U0Qgbm0nCmx0X2N2X29iamRpcj0ubGlicwpsdF9jdl9wYXRoX0xEPWM6L3Rp bmd3L21pbmd3MzIvYmluL2xkLmV4ZQpsdF9jdl9wYXRoX0xEQ1hYPWM6L3Rp bmd3L21pbmd3MzIvYmluL2xkLmV4ZQpsdF9jdl9wYXRoX05NPScvYmluL25t IC1CJwpsdF9jdl9wYXRoX21haW5mZXN0X3Rvb2w9bm8KbHRfY3ZfcHJvZ19j b21waWxlcl9jX289eWVzCmx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15 ZXMKbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fUkM9eWVzCmx0X2N2X3Byb2df Y29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQgLURQSUMnCmx0X2N2X3Byb2df Y29tcGlsZXJfcGljX0NYWD0nLURETExfRVhQT1JUIC1EUElDJwpsdF9jdl9w cm9nX2NvbXBpbGVyX3BpY193b3Jrcz15ZXMKbHRfY3ZfcHJvZ19jb21waWxl cl9waWNfd29ya3NfQ1hYPXllcwpsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlf ZXhjZXB0aW9ucz1ubwpsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr cz15ZXMKbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXll cwpsdF9jdl9wcm9nX2dudV9sZD15ZXMKbHRfY3ZfcHJvZ19nbnVfbGRjeHg9 eWVzCmx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPWZ1bmNfY3ln bWluZ19kbGxfZm9yX2ltcGxpYgpsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnM9 dW5rbm93bgpsdF9jdl9zeXNfZGxzZWFyY2hfcGF0aD0nL2xpYiAvdXNyL2xp YicKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0nc2VkIC1uIC1lICdc JydzL14uKlsJIF1cKFtBQkNER0lSU1RXXVtBQkNER0lSU1RXXSpcKVsJIF1b CSBdKl9cKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKQ1cezAsMVx9JC9cMSBf XDIgXDIvcCdcJycgfCBzZWQgJ1wnJy8gX19nbnVfbHRvL2QnXCcnJwpsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0nc2VkIC1u IC1lICdcJydzL146IFwoW14gXSpcKVsgXSokLyAge1wiXDFcIiwgKHZvaWQg KikgMH0sL3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNUV10qIFwoW14gXSpc KSBcKFteIF0qXCkkLyAgeyJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnJycK bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGli X3ByZWZpeD0nc2VkIC1uIC1lICdcJydzL146IFwoW14gXSpcKVsgXSokLyAg e1wiXDFcIiwgKHZvaWQgKikgMH0sL3AnXCcnIC1lICdcJydzL15bQUJDREdJ UlNUV10qIFwoW14gXSpcKSBcKGxpYlteIF0qXCkkLyAgeyJcMiIsICh2b2lk ICopIFwmXDJ9LC9wJ1wnJyAtZSAnXCcncy9eW0FCQ0RHSVJTVFddKiBcKFte IF0qXCkgXChbXiBdKlwpJC8gIHsibGliXDIiLCAodm9pZCAqKSBcJlwyfSwv cCdcJycnCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdzZWQg LW4gLWUgJ1wnJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3An XCcnIC1lICdcJydzL15bQUJDREdJUlNUV10qIC4qIFwoLipcKSQvZXh0ZXJu IGNoYXIgXDE7L3AnXCcnJwpsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5Mgps dF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmU9eWVzCmx0X2N2X3RvX2hvc3Rf ZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKbHRfY3Zf dG9fdG9vbF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3cz MgoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxl cy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKCkFDTE9DQUw9JyR7U0hF TEx9IC9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIv bGlibHRkbC9jb25maWcvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuMTEnCkFN REVQQkFDS1NMQVNIPSdcJwpBTURFUF9GQUxTRT0nIycKQU1ERVBfVFJVRT0n JwpBTVRBUj0nJHtTSEVMTH0gL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEv bGlidG9vbC0yLjQuMi9saWJsdGRsL2NvbmZpZy9taXNzaW5nIC0tcnVuIHRh cicKQVI9J2FyJwpBUkdaX0g9J2FyZ3ouaCcKQVM9J2FzJwpBVVRPQ09ORj0n JHtTSEVMTH0gL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0y LjQuMi9saWJsdGRsL2NvbmZpZy9taXNzaW5nIC0tcnVuIGF1dG9jb25mJwpB VVRPSEVBREVSPScke1NIRUxMfSAvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4x MS9saWJ0b29sLTIuNC4yL2xpYmx0ZGwvY29uZmlnL21pc3NpbmcgLS1ydW4g YXV0b2hlYWRlcicKQVVUT000VEU9J2F1dG9tNHRlJwpBVVRPTUFLRT0nJHtT SEVMTH0gL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQu Mi9saWJsdGRsL2NvbmZpZy9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuMTEn CkFVVE9URVNUPSckKEFVVE9NNFRFKSAtLWxhbmd1YWdlPWF1dG90ZXN0JwpB V0s9J2dhd2snCkNDPSdnY2MnCkNDREVQTU9ERT0nZGVwbW9kZT1nY2MzJwpD RkxBR1M9Jy1nIC1PMicKQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVM9JyQo dG9wX3NyY2RpcikvQ2hhbmdlTG9nJwpDT05GX1NVQkRJUlM9J3Rlc3RzL2Nk ZW1vIHRlc3RzL2RlbW8gdGVzdHMvZGVwZGVtbyB0ZXN0cy9mNzdkZW1vIHRl c3RzL2ZjZGVtbyAJdGVzdHMvbWRlbW8gdGVzdHMvbWRlbW8yIHRlc3RzL3Bk ZW1vIHRlc3RzL3RhZ2RlbW8nCkNPTlZFTklFTkNFX0xURExfRkFMU0U9JycK Q09OVkVOSUVOQ0VfTFRETF9UUlVFPScjJwpDUFA9J2djYyAtRScKQ1BQRkxB R1M9JycKQ1hYPSdnKysnCkNYWENQUD0nZysrIC1FJwpDWFhERVBNT0RFPSdk ZXBtb2RlPWdjYzMnCkNYWEZMQUdTPSctZyAtTzInCkNZR1BBVEhfVz0nZWNo bycKREVGUz0nLURIQVZFX0NPTkZJR19IJwpERVBESVI9Jy5kZXBzJwpESVNU X01BS0VGSUxFX0xJU1Q9J3Rlc3RzL2NkZW1vL01ha2VmaWxlIHRlc3RzL2Rl bW8vTWFrZWZpbGUgdGVzdHMvZGVwZGVtby9NYWtlZmlsZSB0ZXN0cy9mNzdk ZW1vL01ha2VmaWxlIHRlc3RzL2ZjZGVtby9NYWtlZmlsZSB0ZXN0cy9tZGVt by9NYWtlZmlsZSB0ZXN0cy9tZGVtbzIvTWFrZWZpbGUgdGVzdHMvcGRlbW8v TWFrZWZpbGUgdGVzdHMvdGFnZGVtby9NYWtlZmlsZSAnCkRMTFRPT0w9J2Rs bHRvb2wnCkRTWU1VVElMPScnCkRVTVBCSU49JycKRUNIT19DPScnCkVDSE9f Tj0nLW4nCkVDSE9fVD0nJwpFR1JFUD0nL2Jpbi9ncmVwIC1FJwpFWEVFWFQ9 Jy5leGUnCkY3Nz0nJwpGQz0nJwpGQ0ZMQUdTPScnCkZGTEFHUz0nJwpGR1JF UD0nL2Jpbi9ncmVwIC1GJwpHQ0o9JycKR0NKRkxBR1M9Jy1nIC1PMicKR09D PScnCkdSRVA9Jy9iaW4vZ3JlcCcKSEFWRV9DWFhfRkFMU0U9JyMnCkhBVkVf Q1hYX1RSVUU9JycKSEFWRV9GNzdfRkFMU0U9JycKSEFWRV9GNzdfVFJVRT0n IycKSEFWRV9GQ19GQUxTRT0nJwpIQVZFX0ZDX1RSVUU9JyMnCkhBVkVfR0NK X0ZBTFNFPScnCkhBVkVfR0NKX1RSVUU9JyMnCkhBVkVfUkNfRkFMU0U9JyMn CkhBVkVfUkNfVFJVRT0nJwpIRUxQMk1BTj0nJHtTSEVMTH0gL01pbkdXL3No YXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9saWJsdGRsL2NvbmZp Zy9taXNzaW5nIC0tcnVuIGhlbHAybWFuJwpJTlNUQUxMX0RBVEE9JyR7SU5T VEFMTH0gLW0gNjQ0JwpJTlNUQUxMX0xURExfRkFMU0U9JyMnCklOU1RBTExf TFRETF9UUlVFPScnCklOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKSU5T VEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCklOU1RBTExfU1RSSVBfUFJPR1JB TT0nJChpbnN0YWxsX3NoKSAtYyAtcycKTEFTVFJFTEVBU0U9JzIuNC4xJwpM RD0nYzovdGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlJwpMREZMQUdTPScnCkxJ QkFERF9ETD0nICcKTElCQUREX0RMRF9MSU5LPScnCkxJQkFERF9ETE9QRU49 JycKTElCQUREX1NITF9MT0FEPScnCkxJQk9CSlM9JyAke0xJQk9CSkRJUn1h cmd6JFUubyAke0xJQk9CSkRJUn1sdF9fc3RybCRVLm8nCkxJQlM9JycKTElC VE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCkxJUE89 JycKTE5fUz0nY3AgLXAnCkxURExPUEVOPSdsaWJsdGRsJwpMVExJQk9CSlM9 JyAke0xJQk9CSkRJUn1hcmd6JFUubG8gJHtMSUJPQkpESVJ9bHRfX3N0cmwk VS5sbycKTFRfQ09ORklHX0g9J2NvbmZpZy5oJwpMVF9ETExPQURFUlM9JyBs aWJsdGRsL2xvYWRsaWJyYXJ5LmxhJwpMVF9ETFBSRU9QRU49Jy1kbHByZW9w ZW4gbGlibHRkbC9sb2FkbGlicmFyeS5sYSAnCk00U0g9JyQoQVVUT000VEUp IC0tbGFuZ3VhZ2U9bTRzaCcKTUFLRUlORk89JyR7U0hFTEx9IC9NaW5HVy9z aGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvbGlibHRkbC9jb25m aWcvbWlzc2luZyAtLXJ1biBtYWtlaW5mbycKTUFOSUZFU1RfVE9PTD0nOicK TUtESVJfUD0nL2Jpbi9ta2RpciAtcCcKTk09Jy9iaW4vbm0gLUInCk5NRURJ VD0nJwpPQkpEVU1QPSdvYmpkdW1wJwpPQkpFWFQ9J28nCk9SREVSPSd8JwpP VE9PTDY0PScnCk9UT09MPScnClBBQ0tBR0U9J2xpYnRvb2wnClBBQ0tBR0Vf QlVHUkVQT1JUPSdidWctbGlidG9vbEBnbnUub3JnJwpQQUNLQUdFX05BTUU9 J0dOVSBMaWJ0b29sJwpQQUNLQUdFX1NUUklORz0nR05VIExpYnRvb2wgMi40 LjInClBBQ0tBR0VfVEFSTkFNRT0nbGlidG9vbCcKUEFDS0FHRV9VUkw9J2h0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0b29sLycKUEFDS0FHRV9W RVJTSU9OPScyLjQuMicKUEFUSF9TRVBBUkFUT1I9JzonClJBTkxJQj0ncmFu bGliJwpSQz0nd2luZHJlcycKU0VEPScvYmluL3NlZCcKU0VUX01BS0U9JycK U0hFTEw9Jy9iaW4vc2gnClNUUklQPSdzdHJpcCcKVElNRVNUQU1QPScnClZF UlNJT049JzIuNC4yJwphY19jdF9BUj0nYXInCmFjX2N0X0NDPSdnY2MnCmFj X2N0X0NYWD0nZysrJwphY19jdF9EVU1QQklOPScnCmFjX2N0X0Y3Nz0nJwph Y19jdF9GQz0nJwphY2xvY2FsZGlyPScke2RhdGFkaXJ9L2FjbG9jYWwnCmFt X19FWEVFWFRfRkFMU0U9JyMnCmFtX19FWEVFWFRfVFJVRT0nJwphbV9fZmFz dGRlcENDX0ZBTFNFPScjJwphbV9fZmFzdGRlcENDX1RSVUU9JycKYW1fX2Zh c3RkZXBDWFhfRkFMU0U9JyMnCmFtX19mYXN0ZGVwQ1hYX1RSVUU9JycKYW1f X2luY2x1ZGU9J2luY2x1ZGUnCmFtX19pc3JjPScgLUkkKHNyY2RpciknCmFt X19sZWFkaW5nX2RvdD0nLicKYW1fX3F1b3RlPScnCmFtX190YXI9JyR7QU1U QVJ9IGNob2YgLSAiJCR0YXJkaXIiJwphbV9fdW50YXI9JyR7QU1UQVJ9IHhm IC0nCmJpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwpidWlsZD0naTY4Ni1w Yy1taW5ndzMyJwpidWlsZF9hbGlhcz0nJwpidWlsZF9jcHU9J2k2ODYnCmJ1 aWxkX29zPSdtaW5ndzMyJwpidWlsZF92ZW5kb3I9J3BjJwpkYXRhZGlyPSck e2RhdGFyb290ZGlyfScKZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScK ZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9 JwpkdmlkaXI9JyR7ZG9jZGlyfScKZXhlY19wcmVmaXg9JyR7cHJlZml4fScK aG9zdD0naTY4Ni1wYy1taW5ndzMyJwpob3N0X2FsaWFzPScnCmhvc3RfY3B1 PSdpNjg2Jwpob3N0X29zPSdtaW5ndzMyJwpob3N0X3ZlbmRvcj0ncGMnCmh0 bWxkaXI9JyR7ZG9jZGlyfScKaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1 ZGUnCmluZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCmluc3RhbGxfc2g9 JyR7U0hFTEx9IC9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wt Mi40LjIvbGlibHRkbC9jb25maWcvaW5zdGFsbC1zaCcKbGliZGlyPScke2V4 ZWNfcHJlZml4fS9saWInCmxpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xp YmV4ZWMnCmxvY2FsZWRpcj0nJHtkYXRhcm9vdGRpcn0vbG9jYWxlJwpsb2Nh bHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJwptYW5kaXI9JyR7ZGF0YXJvb3Rk aXJ9L21hbicKbWtkaXJfcD0nL2Jpbi9ta2RpciAtcCcKb2xkaW5jbHVkZWRp cj0nL3Vzci9pbmNsdWRlJwpwYWNrYWdlX3JldmlzaW9uPScxLjMzMzcnCnBk ZmRpcj0nJHtkb2NkaXJ9Jwpwa2dkYXRhZGlyPScke2RhdGFkaXJ9L2xpYnRv b2wnCnByZWZpeD0nL3Vzci9sb2NhbCcKcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZT0ncyx4LHgsJwpwc2Rpcj0nJHtkb2NkaXJ9JwpzYmluZGlyPScke2V4ZWNf cHJlZml4fS9zYmluJwpzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScK c3lzX3N5bWJvbF91bmRlcnNjb3JlPSd5ZXMnCnN5c2NvbmZkaXI9JyR7cHJl Zml4fS9ldGMnCnRhcmdldF9hbGlhcz0nJwp0b19ob3N0X2ZpbGVfY21kPSdm dW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMicKdG9fdG9vbF9maWxlX2Nt ZD0nZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzInCgojIyAtLS0tLS0t LS0tLSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoK LyogY29uZmRlZnMuaCAqLwojZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIExp YnRvb2wiCiNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJ0b29sIgojZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi40LjIiCiNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBMaWJ0b29sIDIuNC4yIgojZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctbGlidG9vbEBnbnUub3JnIgojZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8iCiNk ZWZpbmUgUEFDS0FHRSAibGlidG9vbCIKI2RlZmluZSBWRVJTSU9OICIyLjQu MiIKI2RlZmluZSBTVERDX0hFQURFUlMgMQojZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCiNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCiNkZWZpbmUg SEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQojZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CiNkZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZpbmUgTFRfT0JKRElSICIu bGlicy8iCiNkZWZpbmUgTFRfTU9EVUxFX0VYVCAiLmRsbCIKI2RlZmluZSBM VF9NT0RVTEVfUEFUSF9WQVIgIlBBVEgiCiNkZWZpbmUgTFRfRExTRUFSQ0hf UEFUSCAiL2xpYjovdXNyL2xpYiIKI2RlZmluZSBIQVZFX0RFQ0xfQ1lHV0lO X0NPTlZfUEFUSCAwCiNkZWZpbmUgSEFWRV9MSUJETExPQURFUiAxCiNkZWZp bmUgTFRETF9ETE9QRU5fREVQTElCUyAxCiNkZWZpbmUgZXJyb3JfdCBpbnQK I2RlZmluZSBfX2Vycm9yX3RfZGVmaW5lZCAxCiNkZWZpbmUgSEFWRV9QUkVM T0FERURfU1lNQk9MUyAxCiNkZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZp bmUgSEFWRV9ESVJFTlRfSCAxCiNkZWZpbmUgSEFWRV9DTE9TRURJUiAxCiNk ZWZpbmUgSEFWRV9PUEVORElSIDEKI2RlZmluZSBIQVZFX1JFQURESVIgMQoj ZGVmaW5lIExUX0xJQkVYVCAiYSIKI2RlZmluZSBMVF9MSUJQUkVGSVggImxp YiIKCmNvbmZpZ3VyZTogZXhpdCAwCg== --_----------=_13840355941782731 Content-Disposition: attachment; filename="config.status" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="config.status" IyEgL2Jpbi9zaAojIEdlbmVyYXRlZCBieSBjb25maWd1cmUuCiMgUnVuIHRo aXMgZmlsZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9u LgojIENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVz ZWZ1bCBmb3IgZGVidWdnaW5nCiMgY29uZmlndXJlLCBpcyBpbiBjb25maWcu bG9nIGlmIGl0IGV4aXN0cy4KCmRlYnVnPWZhbHNlCmFjX2NzX3JlY2hlY2s9 ZmFsc2UKYWNfY3Nfc2lsZW50PWZhbHNlCgpTSEVMTD0ke0NPTkZJR19TSEVM TC0vYmluL3NofQpleHBvcnQgU0hFTEwKIyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0gIyMKIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gIyMKIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKCiMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQpE VUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCmlmIHRl c3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4v ZGV2L251bGwgMj4mMTsgdGhlbiA6CiAgZW11bGF0ZSBzaAogIE5VTExDTUQ9 OgogICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRp bmcgb24gJHsxKyIkQCJ9LCB3aGljaAogICMgaXMgY29udHJhcnkgdG8gb3Vy IHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCiAgYWxpYXMgLWcgJyR7 MSsiJEAifSc9JyIkQCInCiAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKZWxzZQog IGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAjKAogICpwb3NpeCop IDoKICAgIHNldCAtbyBwb3NpeCA7OyAjKAogICopIDoKICAgICA7Owplc2Fj CmZpCgoKYXNfbmw9JwonCmV4cG9ydCBhc19ubAojIFByaW50aW5nIGEgbG9u ZyBzdHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRmLgph c19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcJwphc19lY2hvPSRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KYXNfZWNobz0kYXNfZWNobyRh c19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KIyBQcmVm ZXIgYSBrc2ggc2hlbGwgYnVpbHRpbiBvdmVyIGFuIGV4dGVybmFsIHByaW50 ZiBwcm9ncmFtIG9uIFNvbGFyaXMsCiMgYnV0IHdpdGhvdXQgd2FzdGluZyBm b3JrcyBmb3IgYmFzaCBvciB6c2guCmlmIHRlc3QgLXogIiRCQVNIX1ZFUlNJ T04kWlNIX1ZFUlNJT04iIFwKICAgICYmICh0ZXN0ICJYYHByaW50IC1yIC0t ICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4K ICBhc19lY2hvPSdwcmludCAtciAtLScKICBhc19lY2hvX249J3ByaW50IC1y biAtLScKZWxpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJY JGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgogIGFzX2VjaG89J3ByaW50 ZiAlc1xuJwogIGFzX2VjaG9fbj0ncHJpbnRmICVzJwplbHNlCiAgaWYgdGVz dCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251 bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCiAgICBhc19lY2hvX2JvZHk9 J2V2YWwgL3Vzci91Y2IvZWNobyAtbiAiJDEkYXNfbmwiJwogICAgYXNfZWNo b19uPScvdXNyL3VjYi9lY2hvIC1uJwogIGVsc2UKICAgIGFzX2VjaG9fYm9k eT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxcKSInCiAgICBhc19lY2hv X25fYm9keT0nZXZhbAogICAgICBhcmc9JDE7CiAgICAgIGNhc2UgJGFyZyBp biAjKAogICAgICAqIiRhc19ubCIqKQoJZXhwciAiWCRhcmciIDogIlhcXCgu KlxcKSRhc19ubCI7Cglhcmc9YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxc KC4qXFwpImA7OwogICAgICBlc2FjOwogICAgICBleHByICJYJGFyZyIgOiAi WFxcKC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCiAgICAnCiAgICBleHBvcnQg YXNfZWNob19uX2JvZHkKICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9f bl9ib2R5IGFzX2VjaG8nCiAgZmkKICBleHBvcnQgYXNfZWNob19ib2R5CiAg YXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJwpmaQoKIyBU aGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCmlmIHRlc3QgIiR7UEFUSF9TRVBB UkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCiAgUEFUSF9TRVBBUkFUT1I9Ogog IChQQVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9k ZXYvbnVsbCAyPiYxICYmIHsKICAgIChQQVRIPScvYmluOi9iaW4nOyBGUEFU SD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxIHx8CiAgICAgIFBB VEhfU0VQQVJBVE9SPSc7JwogIH0KZmkKCgojIElGUwojIFdlIG5lZWQgc3Bh Y2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVy LiAgUXVvdGluZyBpcwojIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9t IGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KIyAoSWYgX0FTX1BBVEhf V0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlz YWJsZSB3b3JkCiMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5 IHZhbHVlLikKSUZTPSIgIiIJJGFzX25sIgoKIyBGaW5kIHdobyB3ZSBhcmUu ICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5 IHNlcGFyYXRvci4KYXNfbXlzZWxmPQpjYXNlICQwIGluICMoKAogICpbXFwv XSogKSBhc19teXNlbGY9JDAgOzsKICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJ RlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KICAgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNf ZGlyLyQwICYmIGJyZWFrCiAgZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgogICAg IDs7CmVzYWMKIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHBy b2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwojIGluIHdoaWNo IGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KaWYg dGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgogIGFzX215c2VsZj0kMApm aQppZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCiAgJGFzX2VjaG8g IiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVu IHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKICBleGl0IDEKZmkK CiMgVW5zZXQgdmFyaWFibGVzIHRoYXQgd2UgZG8gbm90IG5lZWQgYW5kIHdo aWNoIGNhdXNlIGJ1Z3MgKGUuZy4gaW4KIyBwcmUtMy4wIFVXSU4ga3NoKS4g IEJ1dCBkbyBub3QgY2F1c2UgYnVncyBpbiBiYXNoIDIuMDE7IHRoZSAifHwg ZXhpdCAxIgojIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRpb24gZmF1bHQi IG1lc3NhZ2UgdGhlcmUuICAnKCgnIGNvdWxkCiMgdHJpZ2dlciBhIGJ1ZyBp biBwZGtzaCA1LjIuMTQuCmZvciBhc192YXIgaW4gQkFTSF9FTlYgRU5WIE1B SUwgTUFJTFBBVEgKZG8gZXZhbCB0ZXN0IHhcJHskYXNfdmFyK3NldH0gPSB4 c2V0IFwKICAmJiAoICh1bnNldCAkYXNfdmFyKSB8fCBleGl0IDEpID4vZGV2 L251bGwgMj4mMSAmJiB1bnNldCAkYXNfdmFyIHx8IDoKZG9uZQpQUzE9JyQg JwpQUzI9Jz4gJwpQUzQ9JysgJwoKIyBOTFMgbnVpc2FuY2VzLgpMQ19BTEw9 QwpleHBvcnQgTENfQUxMCkxBTkdVQUdFPUMKZXhwb3J0IExBTkdVQUdFCgoj IENEUEFUSC4KKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVu c2V0IENEUEFUSAoKCiMgYXNfZm5fZXJyb3IgU1RBVFVTIEVSUk9SIFtMSU5F Tk8gTE9HX0ZEXQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIyBPdXRwdXQgImBiYXNlbmFtZSAkMGA6IGVycm9yOiBFUlJP UiIgdG8gc3RkZXJyLiBJZiBMSU5FTk8gYW5kIExPR19GRCBhcmUKIyBwcm92 aWRlZCwgYWxzbyBvdXRwdXQgdGhlIGVycm9yIHRvIExPR19GRCwgcmVmZXJl bmNpbmcgTElORU5PLiBUaGVuIGV4aXQgdGhlCiMgc2NyaXB0IHdpdGggU1RB VFVTLCB1c2luZyAxIGlmIHRoYXQgd2FzIDAuCmFzX2ZuX2Vycm9yICgpCnsK ICBhc19zdGF0dXM9JDE7IHRlc3QgJGFzX3N0YXR1cyAtZXEgMCAmJiBhc19z dGF0dXM9MQogIGlmIHRlc3QgIiQ0IjsgdGhlbgogICAgYXNfbGluZW5vPSR7 YXNfbGluZW5vLSIkMyJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3Rh Y2s9JGFzX2xpbmVub19zdGFjawogICAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogZXJyb3I6ICQyIiA+JiQ0CiAgZmkKICAkYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogJDIiID4mMgogIGFzX2ZuX2V4aXQgJGFz X3N0YXR1cwp9ICMgYXNfZm5fZXJyb3IKCgojIGFzX2ZuX3NldF9zdGF0dXMg U1RBVFVTCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTZXQgJD8gdG8g U1RBVFVTLCB3aXRob3V0IGZvcmtpbmcuCmFzX2ZuX3NldF9zdGF0dXMgKCkK ewogIHJldHVybiAkMQp9ICMgYXNfZm5fc2V0X3N0YXR1cwoKIyBhc19mbl9l eGl0IFNUQVRVUwojIC0tLS0tLS0tLS0tLS0tLS0tCiMgRXhpdCB0aGUgc2hl bGwgd2l0aCBTVEFUVVMsIGV2ZW4gaW4gYSAidHJhcCAwIiBvciAic2V0IC1l IiBjb250ZXh0Lgphc19mbl9leGl0ICgpCnsKICBzZXQgK2UKICBhc19mbl9z ZXRfc3RhdHVzICQxCiAgZXhpdCAkMQp9ICMgYXNfZm5fZXhpdAoKIyBhc19m bl91bnNldCBWQVIKIyAtLS0tLS0tLS0tLS0tLS0KIyBQb3J0YWJseSB1bnNl dCBWQVIuCmFzX2ZuX3Vuc2V0ICgpCnsKICB7IGV2YWwgJDE9OyB1bnNldCAk MTt9Cn0KYXNfdW5zZXQ9YXNfZm5fdW5zZXQKIyBhc19mbl9hcHBlbmQgVkFS IFZBTFVFCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFwcGVuZCB0aGUg dGV4dCBpbiBWQUxVRSB0byB0aGUgZW5kIG9mIHRoZSBkZWZpbml0aW9uIGNv bnRhaW5lZCBpbiBWQVIuIFRha2UKIyBhZHZhbnRhZ2Ugb2YgYW55IHNoZWxs IG9wdGltaXphdGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdy b3d0aCBvdmVyCiMgcmVwZWF0ZWQgYXBwZW5kcywgaW5zdGVhZCBvZiB0aGUg dHlwaWNhbCBxdWFkcmF0aWMgZ3Jvd3RoIHByZXNlbnQgaW4gbmFpdmUKIyBp bXBsZW1lbnRhdGlvbnMuCmlmIChldmFsICJhc192YXI9MTsgYXNfdmFyKz0y OyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9udWxsOyB0aGVuIDoK ICBldmFsICdhc19mbl9hcHBlbmQgKCkKICB7CiAgICBldmFsICQxKz1cJDIK ICB9JwplbHNlCiAgYXNfZm5fYXBwZW5kICgpCiAgewogICAgZXZhbCAkMT1c JCQxXCQyCiAgfQpmaSAjIGFzX2ZuX2FwcGVuZAoKIyBhc19mbl9hcml0aCBB UkcuLi4KIyAtLS0tLS0tLS0tLS0tLS0tLS0KIyBQZXJmb3JtIGFyaXRobWV0 aWMgZXZhbHVhdGlvbiBvbiB0aGUgQVJHcywgYW5kIHN0b3JlIHRoZSByZXN1 bHQgaW4gdGhlCiMgZ2xvYmFsICRhc192YWwuIFRha2UgYWR2YW50YWdlIG9m IHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4gVGhlIGFyZ3VtZW50cwoj IG11c3QgYmUgcG9ydGFibGUgYWNyb3NzICQoKCkpIGFuZCBleHByLgppZiAo ZXZhbCAidGVzdCBcJCgoIDEgKyAxICkpID0gMiIpIDI+L2Rldi9udWxsOyB0 aGVuIDoKICBldmFsICdhc19mbl9hcml0aCAoKQogIHsKICAgIGFzX3ZhbD0k KCggJCogKSkKICB9JwplbHNlCiAgYXNfZm5fYXJpdGggKCkKICB7CiAgICBh c192YWw9YGV4cHIgIiRAIiB8fCB0ZXN0ICQ/IC1lcSAxYAogIH0KZmkgIyBh c19mbl9hcml0aAoKCmlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAy PiYxICYmCiAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIg PSBYMDAxOyB0aGVuCiAgYXNfZXhwcj1leHByCmVsc2UKICBhc19leHByPWZh bHNlCmZpCgppZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYm IHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCiAg YXNfYmFzZW5hbWU9YmFzZW5hbWUKZWxzZQogIGFzX2Jhc2VuYW1lPWZhbHNl CmZpCgppZiAoYXNfZGlyPWBkaXJuYW1lIC0tIC9gICYmIHRlc3QgIlgkYXNf ZGlyIiA9IFgvKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBhc19kaXJuYW1l PWRpcm5hbWUKZWxzZQogIGFzX2Rpcm5hbWU9ZmFsc2UKZmkKCmFzX21lPWAk YXNfYmFzZW5hbWUgLS0gIiQwIiB8fAokYXNfZXhwciBYLyIkMCIgOiAnLiov XChbXi9dW14vXSpcKS8qJCcgXHwgXAoJIFgiJDAiIDogJ1hcKC8vXCkkJyBc fCBcCgkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CiRh c19lY2hvIFgvIiQwIiB8CiAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClc LyokL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXC9cKFwvXC9c KSQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcL1woXC9cKS4q L3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgcy8uKi8uLzsgcSdgCgoj IEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCmFzX2Ny X2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Jwphc19jcl9M RVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKYXNfY3JfTGV0 dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCmFzX2NyX2RpZ2l0 cz0nMDEyMzQ1Njc4OScKYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNf Y3JfZGlnaXRzCgpFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQpjYXNlIGBlY2hv IC1uIHhgIGluICMoKCgoKAotbiopCiAgY2FzZSBgZWNobyAneHlcYydgIGlu CiAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBj aGFyYWN0ZXIuCiAgeHkpICBFQ0hPX0M9J1xjJzs7CiAgKikgICBlY2hvIGBl Y2hvIGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAogICAgICAg RUNIT19UPScJJzs7CiAgZXNhYzs7CiopCiAgRUNIT19OPSctbic7Owplc2Fj CgpybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQppZiB0ZXN0 IC1kIGNvbmYkJC5kaXI7IHRoZW4KICBybSAtZiBjb25mJCQuZGlyL2NvbmYk JC5maWxlCmVsc2UKICBybSAtZiBjb25mJCQuZGlyCiAgbWtkaXIgY29uZiQk LmRpciAyPi9kZXYvbnVsbApmaQppZiAoZWNobyA+Y29uZiQkLmZpbGUpIDI+ L2Rldi9udWxsOyB0aGVuCiAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQk IDI+L2Rldi9udWxsOyB0aGVuCiAgICBhc19sbl9zPSdsbiAtcycKICAgICMg Li4uIGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6CiAgICAjIDEpIE9uIE1T WVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBm YWlsLgogICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBg bG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCiAgICAjIElu IGJvdGggY2FzZXMsIHdlIGhhdmUgdG8gZGVmYXVsdCB0byBgY3AgLXAnLgog ICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAm JiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAogICAgICBhc19sbl9zPSdjcCAt cCcKICBlbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsg dGhlbgogICAgYXNfbG5fcz1sbgogIGVsc2UKICAgIGFzX2xuX3M9J2NwIC1w JwogIGZpCmVsc2UKICBhc19sbl9zPSdjcCAtcCcKZmkKcm0gLWYgY29uZiQk IGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmls ZQpybWRpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCgoKIyBhc19mbl9ta2Rp cl9wCiMgLS0tLS0tLS0tLS0tLQojIENyZWF0ZSAiJGFzX2RpciIgYXMgYSBk aXJlY3RvcnksIGluY2x1ZGluZyBwYXJlbnRzIGlmIG5lY2Vzc2FyeS4KYXNf Zm5fbWtkaXJfcCAoKQp7CgogIGNhc2UgJGFzX2RpciBpbiAjKAogIC0qKSBh c19kaXI9Li8kYXNfZGlyOzsKICBlc2FjCiAgdGVzdCAtZCAiJGFzX2RpciIg fHwgZXZhbCAkYXNfbWtkaXJfcCB8fCB7CiAgICBhc19kaXJzPQogICAgd2hp bGUgOjsgZG8KICAgICAgY2FzZSAkYXNfZGlyIGluICMoCiAgICAgICpcJyop IGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8nLydcXFxc XFxcXCcnL2ciYDs7ICMnKAogICAgICAqKSBhc19xZGlyPSRhc19kaXI7Owog ICAgICBlc2FjCiAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMi CiAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8CiRh c19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSov KiQnIFx8IFwKCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCgkg WCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAoJIFgiJGFzX2RpciIgOiAn WFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CiRhc19lY2hvIFgiJGFzX2Rp ciIgfAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyok L3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wvXClbXi9d LiovewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXC9cKSQv ewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXCkuKi97Cgkg ICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIHMvLiovLi87IHEnYAogICAgICB0 ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhawogICAgZG9uZQogICAgdGVzdCAt eiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGlyICRhc19kaXJzIgogIH0gfHwg dGVzdCAtZCAiJGFzX2RpciIgfHwgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBj cmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiCgoKfSAjIGFzX2ZuX21rZGlyX3AK aWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgogIGFzX21rZGlyX3A9 J21rZGlyIC1wICIkYXNfZGlyIicKZWxzZQogIHRlc3QgLWQgLi8tcCAmJiBy bWRpciAuLy1wCiAgYXNfbWtkaXJfcD1mYWxzZQpmaQoKaWYgdGVzdCAteCAv ID4vZGV2L251bGwgMj4mMTsgdGhlbgogIGFzX3Rlc3RfeD0ndGVzdCAteCcK ZWxzZQogIGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAg YXNfbHNfTF9vcHRpb249TAogIGVsc2UKICAgIGFzX2xzX0xfb3B0aW9uPQog IGZpCiAgYXNfdGVzdF94PScKICAgIGV2YWwgc2ggLWMgJ1wnJwogICAgICBp ZiB0ZXN0IC1kICIkMSI7IHRoZW4KCXRlc3QgLWQgIiQxLy4iOwogICAgICBl bHNlCgljYXNlICQxIGluICMoCgktKilzZXQgIi4vJDEiOzsKCWVzYWM7Cglj YXNlIGBscyAtbGQnJGFzX2xzX0xfb3B0aW9uJyAiJDEiIDI+L2Rldi9udWxs YCBpbiAjKCgKCT8/P1tzeF0qKTo7OyopZmFsc2U7O2VzYWM7ZmkKICAgICdc Jycgc2gKICAnCmZpCmFzX2V4ZWN1dGFibGVfcD0kYXNfdGVzdF94CgojIFNl ZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQ IG5hbWUuCmFzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJz JVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCgoj IFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQg dmFyaWFibGUgbmFtZS4KYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtz JVteXyRhc19jcl9hbG51bV0lXyVnJyIKCgpleGVjIDY+JjEKIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgTWFpbiBib2R5 IG9mICRDT05GSUdfU1RBVFVTIHNjcmlwdC4gIyMKIyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyBTYXZlIHRoZSBsb2cgbWVz c2FnZSwgdG8ga2VlcCAkMCBhbmQgc28gb24gbWVhbmluZ2Z1bCwgYW5kIHRv CiMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVT IGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgojIHZhbHVlcyBhZnRlciBvcHRpb25z IGhhbmRsaW5nLgphY19sb2c9IgpUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5 IEdOVSBMaWJ0b29sICRhc19tZSAyLjQuMiwgd2hpY2ggd2FzCmdlbmVyYXRl ZCBieSBHTlUgQXV0b2NvbmYgMi42OC4gIEludm9jYXRpb24gY29tbWFuZCBs aW5lIHdhcwoKICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCiAg Q09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFERVJTCiAgQ09ORklHX0xJ TktTICAgID0gJENPTkZJR19MSU5LUwogIENPTkZJR19DT01NQU5EUyA9ICRD T05GSUdfQ09NTUFORFMKICAkICQwICRACgpvbiBgKGhvc3RuYW1lIHx8IHVu YW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKIgoKIyBGaWxlcyB0aGF0 IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgpjb25maWdfZmlsZXM9IiBN YWtlZmlsZSIKY29uZmlnX2hlYWRlcnM9IiBjb25maWcuaDpjb25maWctaC5p biIKY29uZmlnX2NvbW1hbmRzPSIgdGVzdHMvYXRjb25maWcgZGVwZmlsZXMg bGlidG9vbCIKCmFjX2NzX3VzYWdlPSJcClxgJGFzX21lJyBpbnN0YW50aWF0 ZXMgZmlsZXMgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb24gYWN0aW9ucwpmcm9t IHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgY29uZmlndXJh dGlvbi4gIFVubGVzcyB0aGUgZmlsZXMKYW5kIGFjdGlvbnMgYXJlIHNwZWNp ZmllZCBhcyBUQUdzLCBhbGwgYXJlIGluc3RhbnRpYXRlZCBieSBkZWZhdWx0 LgoKVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtUQUddLi4uCgogIC1oLCAtLWhl bHAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKICAtViwgLS12 ZXJzaW9uICAgIHByaW50IHZlcnNpb24gbnVtYmVyIGFuZCBjb25maWd1cmF0 aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQKICAgICAgLS1jb25maWcgICAgIHBy aW50IGNvbmZpZ3VyYXRpb24sIHRoZW4gZXhpdAogIC1xLCAtLXF1aWV0LCAt LXNpbGVudAogICAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dy ZXNzIG1lc3NhZ2VzCiAgLWQsIC0tZGVidWcgICAgICBkb24ndCByZW1vdmUg dGVtcG9yYXJ5IGZpbGVzCiAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFz X21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucwog ICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCiAgICAgICAgICAgICAgICAg ICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIEZJTEUKICAg ICAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCiAgICAgICAgICAgICAgICAg ICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQoK Q29uZmlndXJhdGlvbiBmaWxlczoKJGNvbmZpZ19maWxlcwoKQ29uZmlndXJh dGlvbiBoZWFkZXJzOgokY29uZmlnX2hlYWRlcnMKCkNvbmZpZ3VyYXRpb24g Y29tbWFuZHM6CiRjb25maWdfY29tbWFuZHMKClJlcG9ydCBidWdzIHRvIDxi dWctbGlidG9vbEBnbnUub3JnPi4KR05VIExpYnRvb2wgaG9tZSBwYWdlOiA8 aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvPi4KR2VuZXJh bCBoZWxwIHVzaW5nIEdOVSBzb2Z0d2FyZTogPGh0dHA6Ly93d3cuZ251Lm9y Zy9nZXRoZWxwLz4uIgoKYWNfY3NfY29uZmlnPSIiCmFjX2NzX3ZlcnNpb249 IlwKR05VIExpYnRvb2wgY29uZmlnLnN0YXR1cyAyLjQuMgpjb25maWd1cmVk IGJ5IC9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIv Y29uZmlndXJlLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjgsCiAg d2l0aCBvcHRpb25zIFwiJGFjX2NzX2NvbmZpZ1wiCgpDb3B5cmlnaHQgKEMp IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgY29u ZmlnLnN0YXR1cyBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgpnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgoKYWNfcHdk PScvbWluZ3cvbGlidG9vbC1idWlsZC1kdWUtdG8tR05VJwpzcmNkaXI9Jy9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjInCklOU1RB TEw9Jy9iaW4vaW5zdGFsbCAtYycKTUtESVJfUD0nL2Jpbi9ta2RpciAtcCcK QVdLPSdnYXdrJwp0ZXN0IC1uICIkQVdLIiB8fCBBV0s9YXdrCiMgVGhlIGRl ZmF1bHQgbGlzdHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lm eSBhbnkgZmlsZS4KYWNfbmVlZF9kZWZhdWx0cz06CndoaWxlIHRlc3QgJCMg IT0gMApkbwogIGNhc2UgJDEgaW4KICAtLSo9PyopCiAgICBhY19vcHRpb249 YGV4cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAogICAgYWNfb3B0YXJnPWBl eHByICJYJDEiIDogJ1hbXj1dKj1cKC4qXCknYAogICAgYWNfc2hpZnQ9Ogog ICAgOzsKICAtLSo9KQogICAgYWNfb3B0aW9uPWBleHByICJYJDEiIDogJ1hc KFtePV0qXCk9J2AKICAgIGFjX29wdGFyZz0KICAgIGFjX3NoaWZ0PToKICAg IDs7CiAgKikKICAgIGFjX29wdGlvbj0kMQogICAgYWNfb3B0YXJnPSQyCiAg ICBhY19zaGlmdD1zaGlmdAogICAgOzsKICBlc2FjCgogIGNhc2UgJGFjX29w dGlvbiBpbgogICMgSGFuZGxpbmcgb2YgdGhlIG9wdGlvbnMuCiAgLXJlY2hl Y2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2gg fCAtLXJlYyB8IC0tcmUgfCAtLXIpCiAgICBhY19jc19yZWNoZWNrPTogOzsK ICAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAt LXZlciB8IC0tdmUgfCAtLXYgfCAtViApCiAgICAkYXNfZWNobyAiJGFjX2Nz X3ZlcnNpb24iOyBleGl0IDs7CiAgLS1jb25maWcgfCAtLWNvbmZpIHwgLS1j b25mIHwgLS1jb24gfCAtLWNvIHwgLS1jICkKICAgICRhc19lY2hvICIkYWNf Y3NfY29uZmlnIjsgZXhpdCA7OwogIC0tZGVidWcgfCAtLWRlYnUgfCAtLWRl YiB8IC0tZGUgfCAtLWQgfCAtZCApCiAgICBkZWJ1Zz06IDs7CiAgLS1maWxl IHwgLS1maWwgfCAtLWZpIHwgLS1mICkKICAgICRhY19zaGlmdAogICAgY2Fz ZSAkYWNfb3B0YXJnIGluCiAgICAqXCcqKSBhY19vcHRhcmc9YCRhc19lY2hv ICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7Owog ICAgJycpIGFzX2ZuX2Vycm9yICQ/ICJtaXNzaW5nIGZpbGUgYXJndW1lbnQi IDs7CiAgICBlc2FjCiAgICBhc19mbl9hcHBlbmQgQ09ORklHX0ZJTEVTICIg JyRhY19vcHRhcmcnIgogICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CiAg LS1oZWFkZXIgfCAtLWhlYWRlIHwgLS1oZWFkIHwgLS1oZWEgKQogICAgJGFj X3NoaWZ0CiAgICBjYXNlICRhY19vcHRhcmcgaW4KICAgICpcJyopIGFjX29w dGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxc XFxcJycvZyJgIDs7CiAgICBlc2FjCiAgICBhc19mbl9hcHBlbmQgQ09ORklH X0hFQURFUlMgIiAnJGFjX29wdGFyZyciCiAgICBhY19uZWVkX2RlZmF1bHRz PWZhbHNlOzsKICAtLWhlIHwgLS1oKQogICAgIyBDb25mbGljdCBiZXR3ZWVu IC0taGVscCBhbmQgLS1oZWFkZXIKICAgIGFzX2ZuX2Vycm9yICQ/ICJhbWJp Z3VvdXMgb3B0aW9uOiBcYCQxJwpUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3Jl IGluZm9ybWF0aW9uLiI7OwogIC0taGVscCB8IC0taGVsIHwgLWggKQogICAg JGFzX2VjaG8gIiRhY19jc191c2FnZSI7IGV4aXQgOzsKICAtcSB8IC1xdWll dCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAog IHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0t c2lsIHwgLS1zaSB8IC0tcykKICAgIGFjX2NzX3NpbGVudD06IDs7CgogICMg VGhpcyBpcyBhbiBlcnJvci4KICAtKikgYXNfZm5fZXJyb3IgJD8gInVucmVj b2duaXplZCBvcHRpb246IFxgJDEnClRyeSBcYCQwIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24uIiA7OwoKICAqKSBhc19mbl9hcHBlbmQgYWNfY29u ZmlnX3RhcmdldHMgIiAkMSIKICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNl IDs7CgogIGVzYWMKICBzaGlmdApkb25lCgphY19jb25maWd1cmVfZXh0cmFf YXJncz0KCmlmICRhY19jc19zaWxlbnQ7IHRoZW4KICBleGVjIDY+L2Rldi9u dWxsCiAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVf ZXh0cmFfYXJncyAtLXNpbGVudCIKZmkKCmlmICRhY19jc19yZWNoZWNrOyB0 aGVuCiAgc2V0IFggJy9iaW4vc2gnICcvTWluR1cvc2hhcmUvYXV0b21ha2Ut MS4xMS9saWJ0b29sLTIuNC4yL2NvbmZpZ3VyZScgICRhY19jb25maWd1cmVf ZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgogIHNoaWZ0 CiAgJGFzX2VjaG8gInJ1bm5pbmcgQ09ORklHX1NIRUxMPS9iaW4vc2ggJCoi ID4mNgogIENPTkZJR19TSEVMTD0nL2Jpbi9zaCcKICBleHBvcnQgQ09ORklH X1NIRUxMCiAgZXhlYyAiJEAiCmZpCgpleGVjIDU+PmNvbmZpZy5sb2cKewog IGVjaG8KICBzZWQgJ2g7cy8uLy0vZztzL14uLi4vIyMgLztzLy4uLiQvICMj LztwO3g7cDt4JyA8PF9BU0JPWAojIyBSdW5uaW5nICRhc19tZS4gIyMKX0FT Qk9YCiAgJGFzX2VjaG8gIiRhY19sb2ciCn0gPiY1CgojCiMgSU5JVC1DT01N QU5EUwojCgpBTURFUF9UUlVFPSIiIGFjX2F1eF9kaXI9Ii9NaW5HVy9zaGFy ZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvbGlibHRkbC9jb25maWci CgoKIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUg dGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKIyBpZiBDRFBBVEggaXMgc2V0 LgoodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQ QVRICgpzZWRfcXVvdGVfc3Vic3Q9J3MvXChbImAkXFxdXCkvXFxcMS9nJwpk b3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCmRlbGF5 X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCm1h Y3JvX3ZlcnNpb249JzIuNC4yJwptYWNyb19yZXZpc2lvbj0nMS4zMzM3JwpB Uz0nYXMnCkRMTFRPT0w9J2RsbHRvb2wnCk9CSkRVTVA9J29iamR1bXAnCmVu YWJsZV9zaGFyZWQ9J3llcycKZW5hYmxlX3N0YXRpYz0neWVzJwpwaWNfbW9k ZT0nZGVmYXVsdCcKZW5hYmxlX2Zhc3RfaW5zdGFsbD0nbmVlZGxlc3MnClNI RUxMPScvYmluL3NoJwpFQ0hPPSdwcmludGYgJXNcbicKUEFUSF9TRVBBUkFU T1I9JzonCmhvc3RfYWxpYXM9JycKaG9zdD0naTY4Ni1wYy1taW5ndzMyJwpo b3N0X29zPSdtaW5ndzMyJwpidWlsZF9hbGlhcz0nJwpidWlsZD0naTY4Ni1w Yy1taW5ndzMyJwpidWlsZF9vcz0nbWluZ3czMicKU0VEPScvYmluL3NlZCcK WHNlZD0nL2Jpbi9zZWQgLWUgMXMvXlgvLycKR1JFUD0nL2Jpbi9ncmVwJwpF R1JFUD0nL2Jpbi9ncmVwIC1FJwpGR1JFUD0nL2Jpbi9ncmVwIC1GJwpMRD0n YzovdGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlJwpOTT0nL2Jpbi9ubSAtQicK TE5fUz0nY3AgLXAnCm1heF9jbWRfbGVuPSc4MTkyJwphY19vYmpleHQ9J28n CmV4ZWV4dD0nJwpsdF91bnNldD0ndW5zZXQnCmx0X1NQMk5MPSd0ciBcMDQw IFwwMTInCmx0X05MMlNQPSd0ciBcMDE1XDAxMiBcMDQwXDA0MCcKbHRfY3Zf dG9faG9zdF9maWxlX2NtZD0nZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193 MzInCmx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQ9J2Z1bmNfY29udmVydF9maWxl X21zeXNfdG9fdzMyJwpyZWxvYWRfZmxhZz0nIC1yJwpyZWxvYWRfY21kcz0n JExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCmRlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBv cnR8Xng4NiBETEwnCmZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlk JwpmaWxlX21hZ2ljX2dsb2I9JycKd2FudF9ub2Nhc2VnbG9iPSd5ZXMnCnNo YXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSdmdW5jX2N5Z21pbmdfZGxsX2Zv cl9pbXBsaWInCkFSPSdhcicKQVJfRkxBR1M9J2NydScKYXJjaGl2ZXJfbGlz dF9zcGVjPSdAJwpTVFJJUD0nc3RyaXAnClJBTkxJQj0ncmFubGliJwpvbGRf cG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0ICRvbGRsaWJ+JFJBTkxJQiAk dG9vbF9vbGRsaWInCm9sZF9wb3N0dW5pbnN0YWxsX2NtZHM9JycKb2xkX2Fy Y2hpdmVfY21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianN+JFJB TkxJQiAkdG9vbF9vbGRsaWInCmxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlv bj0nbm8nCkNDPSdnY2MnCkNGTEFHUz0nLWcgLU8yJwpjb21waWxlcj0nd2lu ZHJlcycKR0NDPSd5ZXMnCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9 J3NlZCAtbiAtZSAnXCcncy9eLipbCSBdXChbQUJDREdJUlNUV11bQUJDREdJ UlNUV10qXClbCSBdWwkgXSpfXChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCkN XHswLDFcfSQvXDEgX1wyIFwyL3AnXCcnIHwgc2VkICdcJycvIF9fZ251X2x0 by9kJ1wnJycKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9J3Nl ZCAtbiAtZSAnXCcncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsv cCdcJycgLWUgJ1wnJ3MvXltBQkNER0lSU1RXXSogLiogXCguKlwpJC9leHRl cm4gY2hhciBcMTsvcCdcJycnCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzPSdzZWQgLW4gLWUgJ1wnJ3MvXjogXChbXiBdKlwp WyBdKiQvICB7XCJcMVwiLCAodm9pZCAqKSAwfSwvcCdcJycgLWUgJ1wnJ3Mv XltBQkNER0lSU1RXXSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7IlwyIiwg KHZvaWQgKikgXCZcMn0sL3AnXCcnJwpsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdzZWQgLW4gLWUgJ1wn J3MvXjogXChbXiBdKlwpWyBdKiQvICB7XCJcMVwiLCAodm9pZCAqKSAwfSwv cCdcJycgLWUgJ1wnJ3MvXltBQkNER0lSU1RXXSogXChbXiBdKlwpIFwobGli W14gXSpcKSQvICB7IlwyIiwgKHZvaWQgKikgXCZcMn0sL3AnXCcnIC1lICdc JydzL15bQUJDREdJUlNUV10qIFwoW14gXSpcKSBcKFteIF0qXCkkLyAgeyJs aWJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnJycKbm1fZmlsZV9saXN0X3Nw ZWM9J0AnCmx0X3N5c3Jvb3Q9JycKb2JqZGlyPScubGlicycKTUFHSUNfQ01E PSdmaWxlJwpsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nIC1m bm8tYnVpbHRpbicKbHRfcHJvZ19jb21waWxlcl9waWM9JyAtRERMTF9FWFBP UlQgLURQSUMnCmx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCmx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctc3RhdGljJwpsdF9jdl9wcm9nX2NvbXBpbGVy X2Nfbz0neWVzJwpuZWVkX2xvY2tzPSdubycKTUFOSUZFU1RfVE9PTD0nOicK RFNZTVVUSUw9JycKTk1FRElUPScnCkxJUE89JycKT1RPT0w9JycKT1RPT0w2 ND0nJwpsaWJleHQ9J2EnCnNocmV4dF9jbWRzPScuZGxsJwpleHRyYWN0X2V4 cHN5bXNfY21kcz0nJwphcmNoaXZlX2NtZHNfbmVlZF9sYz0neWVzJwplbmFi bGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPSd5ZXMnCmV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tLWV4cG9ydC1hbGwtc3ltYm9scycK d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZl JGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwpjb21waWxl cl9uZWVkc19vYmplY3Q9J25vJwpvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz PScnCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPScnCmFyY2hpdmVf Y21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJs ZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlu a2VyICRsaWInCmFyY2hpdmVfZXhwc3ltX2NtZHM9J2lmIHRlc3QgInhgJFNF RCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCgkgIGNw ICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsK CWVsc2UKCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5kZWY7CgkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpk aXIvJHNvbmFtZS5kZWY7CglmaX4KCSRDQyAtc2hhcmVkICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUt YXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtl ciAkbGliJwptb2R1bGVfY21kcz0nJwptb2R1bGVfZXhwc3ltX2NtZHM9JycK d2l0aF9nbnVfbGQ9J3llcycKYWxsb3dfdW5kZWZpbmVkX2ZsYWc9J3Vuc3Vw cG9ydGVkJwpub191bmRlZmluZWRfZmxhZz0nJwpoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjPSctTCRsaWJkaXInCmhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3I9JycKaGFyZGNvZGVfZGlyZWN0PSdubycKaGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlPSdubycKaGFyZGNvZGVfbWludXNfTD0nbm8nCmhhcmRjb2RlX3No bGlicGF0aF92YXI9J3Vuc3VwcG9ydGVkJwpoYXJkY29kZV9hdXRvbWF0aWM9 J25vJwppbmhlcml0X3JwYXRoPSdubycKbGlua19hbGxfZGVwbGlicz0ndW5r bm93bicKYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSdubycKZXhwb3J0X3N5bWJv bHNfY21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxf c3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipb IF1cKFteIF0qXCkvXDEgREFUQS87cy9eLipbIF1fX25tX19cKFteIF0qXClb IF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsvXltBSVRXXVsgXS9zLy4qIC8v J1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwpleGNsdWRl X2V4cHN5bXM9J1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFM X19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16 MC05X10rX2RsbF9pbmFtZScKaW5jbHVkZV9leHBzeW1zPScnCnByZWxpbmtf Y21kcz0nJwpwb3N0bGlua19jbWRzPScnCmZpbGVfbGlzdF9zcGVjPScnCnZh cmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSdQQVRIIFBBVEggTERfUlVOX1BB VEggR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRI JwpuZWVkX2xpYl9wcmVmaXg9J25vJwpuZWVkX3ZlcnNpb249J25vJwp2ZXJz aW9uX3R5cGU9J3dpbmRvd3MnCnJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK c2hsaWJwYXRoX3Zhcj0nUEFUSCcKc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPSd5ZXMnCmxpYm5hbWVfc3BlYz0nbGliJG5hbWUnCmxpYnJhcnlfbmFt ZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCnNvbmFtZV9zcGVjPScke2xpYm5h bWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgcy9bLl0vLS9nYCR7dmVy c3VmZml4fSR7c2hhcmVkX2V4dH0nCmluc3RhbGxfb3ZlcnJpZGVfbW9kZT0n Jwpwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2Zp bGV9YH4KICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGly LydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4K ICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgogICAg ICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KICAgICAg JGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgog ICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lfgogICAgICBpZiB0ZXN0 IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGli J1wnJzsgdGhlbgogICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGly LyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OwogICAgICBmaScKcG9zdHVuaW5z dGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7 IGVjaG8gXCRkbG5hbWUnXCcnYH4KICAgICAgZGxwYXRoPSRkaXIvXCRkbGRs bH4KICAgICAgICRSTSBcJGRscGF0aCcKZmluaXNoX2NtZHM9JycKZmluaXNo X2V2YWw9JycKaGFyZGNvZGVfaW50b19saWJzPSdubycKc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSdjOi90aW5ndy9saWIvZ2NjL21pbmd3MzIvNC44LjEg YzovdGluZ3cvbGliL2djYyBjOi90aW5ndy9taW5ndzMyL2xpYiBjOi90aW5n dy9saWIgJwpzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNy L2xpYicKaGFyZGNvZGVfYWN0aW9uPSdpbW1lZGlhdGUnCmVuYWJsZV9kbG9w ZW49J3llcycKZW5hYmxlX2Rsb3Blbl9zZWxmPSd1bmtub3duJwplbmFibGVf ZGxvcGVuX3NlbGZfc3RhdGljPSd1bmtub3duJwpvbGRfc3RyaXBsaWI9J3N0 cmlwIC0tc3RyaXAtZGVidWcnCnN0cmlwbGliPSdzdHJpcCAtLXN0cmlwLXVu bmVlZGVkJwpjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JycKcHJlZGVwX29i amVjdHM9JycKcG9zdGRlcF9vYmplY3RzPScnCnByZWRlcHM9JycKcG9zdGRl cHM9JycKY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPScnCkxEX0NYWD0nYzov dGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlJwpMRF9GNzc9JycKTERfRkM9JycK TERfR089J2M6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZScKTERfR0NKPSdj Oi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUnCkxEX1JDPScnCnJlbG9hZF9m bGFnX0NYWD0nIC1yJwpyZWxvYWRfZmxhZ19GNzc9JyAtcicKcmVsb2FkX2Zs YWdfRkM9JyAtcicKcmVsb2FkX2ZsYWdfR089JyAtcicKcmVsb2FkX2ZsYWdf R0NKPScgLXInCnJlbG9hZF9mbGFnX1JDPScnCnJlbG9hZF9jbWRzX0NYWD0n JExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCnJlbG9h ZF9jbWRzX0Y3Nz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2Fk X29ianMnCnJlbG9hZF9jbWRzX0ZDPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91 dHB1dCRyZWxvYWRfb2JqcycKcmVsb2FkX2NtZHNfR089JyRMRCRyZWxvYWRf ZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwpyZWxvYWRfY21kc19HQ0o9 JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwpyZWxv YWRfY21kc19SQz0nJwpvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJEFSICRBUl9G TEFHUyAkb2xkbGliJG9sZG9ianN+JFJBTkxJQiAkdG9vbF9vbGRsaWInCm9s ZF9hcmNoaXZlX2NtZHNfRjc3PSckQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xk b2Jqc34kUkFOTElCICR0b29sX29sZGxpYicKb2xkX2FyY2hpdmVfY21kc19G Qz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianN+JFJBTkxJQiAkdG9v bF9vbGRsaWInCm9sZF9hcmNoaXZlX2NtZHNfR089JyRBUiAkQVJfRkxBR1Mg JG9sZGxpYiRvbGRvYmpzfiRSQU5MSUIgJHRvb2xfb2xkbGliJwpvbGRfYXJj aGl2ZV9jbWRzX0dDSj0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianN+ JFJBTkxJQiAkdG9vbF9vbGRsaWInCm9sZF9hcmNoaXZlX2NtZHNfUkM9JycK Y29tcGlsZXJfQ1hYPSdnKysnCmNvbXBpbGVyX0Y3Nz0nJwpjb21waWxlcl9G Qz0nJwpjb21waWxlcl9HTz0nJwpjb21waWxlcl9HQ0o9JycKY29tcGlsZXJf UkM9J3dpbmRyZXMnCkdDQ19DWFg9J3llcycKR0NDX0Y3Nz0nJwpHQ0NfRkM9 JycKR0NDX0dPPScnCkdDQ19HQ0o9JycKR0NDX1JDPScnCmx0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0nIC1mbm8tYnVpbHRpbicKbHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfRjc3PScnCmx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0ZDPScnCmx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnX0dPPScnCmx0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnX0dDSj0nJwpsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0 aW5fZmxhZ19SQz0nJwpsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9JyAtRERM TF9FWFBPUlQgLURQSUMnCmx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nJwps dF9wcm9nX2NvbXBpbGVyX3BpY19GQz0nJwpsdF9wcm9nX2NvbXBpbGVyX3Bp Y19HTz0nJwpsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9JycKbHRfcHJvZ19j b21waWxlcl9waWNfUkM9JycKbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1X bCwnCmx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PScnCmx0X3Byb2dfY29tcGls ZXJfd2xfRkM9JycKbHRfcHJvZ19jb21waWxlcl93bF9HTz0nJwpsdF9wcm9n X2NvbXBpbGVyX3dsX0dDSj0nJwpsdF9wcm9nX2NvbXBpbGVyX3dsX1JDPScn Cmx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfRjc3PScnCmx0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0ZDPScnCmx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dPPScnCmx0X3By b2dfY29tcGlsZXJfc3RhdGljX0dDSj0nJwpsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19SQz0nJwpsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9J3llcycK bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3PScnCmx0X2N2X3Byb2dfY29t cGlsZXJfY19vX0ZDPScnCmx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dPPScn Cmx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSj0nJwpsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfb19SQz0neWVzJwphcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9 J25vJwphcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9J25vJwphcmNoaXZlX2Nt ZHNfbmVlZF9sY19GQz0nbm8nCmFyY2hpdmVfY21kc19uZWVkX2xjX0dPPSdu bycKYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPSdubycKYXJjaGl2ZV9jbWRz X25lZWRfbGNfUkM9JycKZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lc19DWFg9J3llcycKZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lc19GNzc9J25vJwplbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzX0ZDPSdubycKZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1l c19HTz0nJwplbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0dD Sj0nJwplbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX1JDPScn CmV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQt YWxsLXN5bWJvbHMnCmV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9JycK ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0ZDPScnCmV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlY19HTz0nJwpleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NK PScnCmV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19SQz0nJwp3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZl bmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwp3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19GNzc9JycKd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRkM9 JycKd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR089JycKd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfR0NKPScnCndob2xlX2FyY2hpdmVfZmxhZ19zcGVjX1JD PScnCmNvbXBpbGVyX25lZWRzX29iamVjdF9DWFg9J25vJwpjb21waWxlcl9u ZWVkc19vYmplY3RfRjc3PScnCmNvbXBpbGVyX25lZWRzX29iamVjdF9GQz0n Jwpjb21waWxlcl9uZWVkc19vYmplY3RfR089JycKY29tcGlsZXJfbmVlZHNf b2JqZWN0X0dDSj0nJwpjb21waWxlcl9uZWVkc19vYmplY3RfUkM9JycKb2xk X2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFg9JycKb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kc19GNzc9JycKb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19G Qz0nJwpvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0dPPScnCm9sZF9hcmNo aXZlX2Zyb21fbmV3X2NtZHNfR0NKPScnCm9sZF9hcmNoaXZlX2Zyb21fbmV3 X2NtZHNfUkM9JycKb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hY PScnCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0Y3Nz0nJwpvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19GQz0nJwpvbGRfYXJjaGl2ZV9m cm9tX2V4cHN5bXNfY21kc19HTz0nJwpvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kc19HQ0o9JycKb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNf UkM9JycKYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGli ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29u YW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0t b3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwphcmNoaXZlX2NtZHNfRjc3PScn CmFyY2hpdmVfY21kc19GQz0nJwphcmNoaXZlX2NtZHNfR089JycKYXJjaGl2 ZV9jbWRzX0dDSj0nJwphcmNoaXZlX2NtZHNfUkM9JycKYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJv bHNgIiA9IHhFWFBPUlRTOyB0aGVuCgkgICAgICBjcCAkZXhwb3J0X3N5bWJv bHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CgkgICAgZWxzZQoJICAg ICAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7 CgkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGly LyRzb25hbWUuZGVmOwoJICAgIGZpfgoJICAgICRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5h YmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhs aW5rZXIgJGxpYicKYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JycKYXJjaGl2 ZV9leHBzeW1fY21kc19GQz0nJwphcmNoaXZlX2V4cHN5bV9jbWRzX0dPPScn CmFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPScnCmFyY2hpdmVfZXhwc3ltX2Nt ZHNfUkM9JycKbW9kdWxlX2NtZHNfQ1hYPScnCm1vZHVsZV9jbWRzX0Y3Nz0n Jwptb2R1bGVfY21kc19GQz0nJwptb2R1bGVfY21kc19HTz0nJwptb2R1bGVf Y21kc19HQ0o9JycKbW9kdWxlX2NtZHNfUkM9JycKbW9kdWxlX2V4cHN5bV9j bWRzX0NYWD0nJwptb2R1bGVfZXhwc3ltX2NtZHNfRjc3PScnCm1vZHVsZV9l eHBzeW1fY21kc19GQz0nJwptb2R1bGVfZXhwc3ltX2NtZHNfR089JycKbW9k dWxlX2V4cHN5bV9jbWRzX0dDSj0nJwptb2R1bGVfZXhwc3ltX2NtZHNfUkM9 JycKd2l0aF9nbnVfbGRfQ1hYPSd5ZXMnCndpdGhfZ251X2xkX0Y3Nz0nJwp3 aXRoX2dudV9sZF9GQz0nJwp3aXRoX2dudV9sZF9HTz0nJwp3aXRoX2dudV9s ZF9HQ0o9JycKd2l0aF9nbnVfbGRfUkM9JycKYWxsb3dfdW5kZWZpbmVkX2Zs YWdfQ1hYPSd1bnN1cHBvcnRlZCcKYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3 PScnCmFsbG93X3VuZGVmaW5lZF9mbGFnX0ZDPScnCmFsbG93X3VuZGVmaW5l ZF9mbGFnX0dPPScnCmFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0nJwphbGxv d191bmRlZmluZWRfZmxhZ19SQz0nJwpub191bmRlZmluZWRfZmxhZ19DWFg9 JycKbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PScnCm5vX3VuZGVmaW5lZF9mbGFn X0ZDPScnCm5vX3VuZGVmaW5lZF9mbGFnX0dPPScnCm5vX3VuZGVmaW5lZF9m bGFnX0dDSj0nJwpub191bmRlZmluZWRfZmxhZ19SQz0nJwpoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJwpoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0Y3Nz0nJwpoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0ZDPScnCmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR089JycKaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JycKaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19SQz0nJwpoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0n JwpoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz0nJwpoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0ZDPScnCmhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfR089JycKaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9JycKaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9SQz0nJwpoYXJkY29kZV9kaXJlY3Rf Q1hYPSdubycKaGFyZGNvZGVfZGlyZWN0X0Y3Nz0nbm8nCmhhcmRjb2RlX2Rp cmVjdF9GQz0nbm8nCmhhcmRjb2RlX2RpcmVjdF9HTz0nJwpoYXJkY29kZV9k aXJlY3RfR0NKPScnCmhhcmRjb2RlX2RpcmVjdF9SQz0nJwpoYXJkY29kZV9k aXJlY3RfYWJzb2x1dGVfQ1hYPSdubycKaGFyZGNvZGVfZGlyZWN0X2Fic29s dXRlX0Y3Nz0nbm8nCmhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9GQz0nbm8n CmhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9HTz0nJwpoYXJkY29kZV9kaXJl Y3RfYWJzb2x1dGVfR0NKPScnCmhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9S Qz0nJwpoYXJkY29kZV9taW51c19MX0NYWD0nbm8nCmhhcmRjb2RlX21pbnVz X0xfRjc3PSdubycKaGFyZGNvZGVfbWludXNfTF9GQz0nbm8nCmhhcmRjb2Rl X21pbnVzX0xfR089JycKaGFyZGNvZGVfbWludXNfTF9HQ0o9JycKaGFyZGNv ZGVfbWludXNfTF9SQz0nJwpoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD0n dW5zdXBwb3J0ZWQnCmhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PScnCmhh cmRjb2RlX3NobGlicGF0aF92YXJfRkM9JycKaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcl9HTz0nJwpoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj0nJwpoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX1JDPScnCmhhcmRjb2RlX2F1dG9tYXRpY19D WFg9J25vJwpoYXJkY29kZV9hdXRvbWF0aWNfRjc3PSdubycKaGFyZGNvZGVf YXV0b21hdGljX0ZDPSdubycKaGFyZGNvZGVfYXV0b21hdGljX0dPPScnCmhh cmRjb2RlX2F1dG9tYXRpY19HQ0o9JycKaGFyZGNvZGVfYXV0b21hdGljX1JD PScnCmluaGVyaXRfcnBhdGhfQ1hYPSdubycKaW5oZXJpdF9ycGF0aF9GNzc9 J25vJwppbmhlcml0X3JwYXRoX0ZDPSdubycKaW5oZXJpdF9ycGF0aF9HTz0n Jwppbmhlcml0X3JwYXRoX0dDSj0nJwppbmhlcml0X3JwYXRoX1JDPScnCmxp bmtfYWxsX2RlcGxpYnNfQ1hYPSd1bmtub3duJwpsaW5rX2FsbF9kZXBsaWJz X0Y3Nz0ndW5rbm93bicKbGlua19hbGxfZGVwbGlic19GQz0ndW5rbm93bicK bGlua19hbGxfZGVwbGlic19HTz0nJwpsaW5rX2FsbF9kZXBsaWJzX0dDSj0n JwpsaW5rX2FsbF9kZXBsaWJzX1JDPScnCmFsd2F5c19leHBvcnRfc3ltYm9s c19DWFg9J25vJwphbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PSdubycKYWx3 YXlzX2V4cG9ydF9zeW1ib2xzX0ZDPSdubycKYWx3YXlzX2V4cG9ydF9zeW1i b2xzX0dPPScnCmFsd2F5c19leHBvcnRfc3ltYm9sc19HQ0o9JycKYWx3YXlz X2V4cG9ydF9zeW1ib2xzX1JDPScnCmV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hY PSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xf cGlwZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwoW14g XSpcKS9cMSBEQVRBLztzL14uKlsgXV9fbm1fX1woW14gXSpcKVsgXVteIF0q L1wxIERBVEEvOy9eSVsgXS9kOy9eW0FJVFddWyBdL3MvLiogLy8nXCcnIHwg c29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCmV4cG9ydF9zeW1ib2xz X2NtZHNfRjc3PScnCmV4cG9ydF9zeW1ib2xzX2NtZHNfRkM9JycKZXhwb3J0 X3N5bWJvbHNfY21kc19HTz0nJwpleHBvcnRfc3ltYm9sc19jbWRzX0dDSj0n JwpleHBvcnRfc3ltYm9sc19jbWRzX1JDPScnCmV4Y2x1ZGVfZXhwc3ltc19D WFg9J1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFMX19bRklE XV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16MC05X10r X2RsbF9pbmFtZScKZXhjbHVkZV9leHBzeW1zX0Y3Nz0nJwpleGNsdWRlX2V4 cHN5bXNfRkM9JycKZXhjbHVkZV9leHBzeW1zX0dPPScnCmV4Y2x1ZGVfZXhw c3ltc19HQ0o9JycKZXhjbHVkZV9leHBzeW1zX1JDPScnCmluY2x1ZGVfZXhw c3ltc19DWFg9JycKaW5jbHVkZV9leHBzeW1zX0Y3Nz0nJwppbmNsdWRlX2V4 cHN5bXNfRkM9JycKaW5jbHVkZV9leHBzeW1zX0dPPScnCmluY2x1ZGVfZXhw c3ltc19HQ0o9JycKaW5jbHVkZV9leHBzeW1zX1JDPScnCnByZWxpbmtfY21k c19DWFg9JycKcHJlbGlua19jbWRzX0Y3Nz0nJwpwcmVsaW5rX2NtZHNfRkM9 JycKcHJlbGlua19jbWRzX0dPPScnCnByZWxpbmtfY21kc19HQ0o9JycKcHJl bGlua19jbWRzX1JDPScnCnBvc3RsaW5rX2NtZHNfQ1hYPScnCnBvc3RsaW5r X2NtZHNfRjc3PScnCnBvc3RsaW5rX2NtZHNfRkM9JycKcG9zdGxpbmtfY21k c19HTz0nJwpwb3N0bGlua19jbWRzX0dDSj0nJwpwb3N0bGlua19jbWRzX1JD PScnCmZpbGVfbGlzdF9zcGVjX0NYWD0nJwpmaWxlX2xpc3Rfc3BlY19GNzc9 JycKZmlsZV9saXN0X3NwZWNfRkM9JycKZmlsZV9saXN0X3NwZWNfR089JycK ZmlsZV9saXN0X3NwZWNfR0NKPScnCmZpbGVfbGlzdF9zcGVjX1JDPScnCmhh cmRjb2RlX2FjdGlvbl9DWFg9J2ltbWVkaWF0ZScKaGFyZGNvZGVfYWN0aW9u X0Y3Nz0nJwpoYXJkY29kZV9hY3Rpb25fRkM9JycKaGFyZGNvZGVfYWN0aW9u X0dPPScnCmhhcmRjb2RlX2FjdGlvbl9HQ0o9JycKaGFyZGNvZGVfYWN0aW9u X1JDPScnCmNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9J2M6L3Rpbmd3 L2Jpbi8uLi9saWIvZ2NjL21pbmd3MzIvNC44LjEgYzovdGluZ3cvYmluLy4u L2xpYi9nY2MgYzovdGluZ3cvYmluLy4uL2xpYi9nY2MvbWluZ3czMi80Ljgu MS8uLi8uLi8uLi8uLi9taW5ndzMyL2xpYiBjOi90aW5ndy9iaW4vLi4vbGli L2djYy9taW5ndzMyLzQuOC4xLy4uLy4uLy4uJwpjb21waWxlcl9saWJfc2Vh cmNoX2RpcnNfRjc3PScnCmNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19GQz0n Jwpjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfR089JycKY29tcGlsZXJfbGli X3NlYXJjaF9kaXJzX0dDSj0nJwpjb21waWxlcl9saWJfc2VhcmNoX2RpcnNf UkM9JycKcHJlZGVwX29iamVjdHNfQ1hYPSdjOi90aW5ndy9iaW4vLi4vbGli L2djYy9taW5ndzMyLzQuOC4xLy4uLy4uLy4uLy4uL21pbmd3MzIvbGliL2Rs bGNydDIubyBjOi90aW5ndy9iaW4vLi4vbGliL2djYy9taW5ndzMyLzQuOC4x L2NydGJlZ2luLm8nCnByZWRlcF9vYmplY3RzX0Y3Nz0nJwpwcmVkZXBfb2Jq ZWN0c19GQz0nJwpwcmVkZXBfb2JqZWN0c19HTz0nJwpwcmVkZXBfb2JqZWN0 c19HQ0o9JycKcHJlZGVwX29iamVjdHNfUkM9JycKcG9zdGRlcF9vYmplY3Rz X0NYWD0nYzovdGluZ3cvYmluLy4uL2xpYi9nY2MvbWluZ3czMi80LjguMS9j cnRlbmQubycKcG9zdGRlcF9vYmplY3RzX0Y3Nz0nJwpwb3N0ZGVwX29iamVj dHNfRkM9JycKcG9zdGRlcF9vYmplY3RzX0dPPScnCnBvc3RkZXBfb2JqZWN0 c19HQ0o9JycKcG9zdGRlcF9vYmplY3RzX1JDPScnCnByZWRlcHNfQ1hYPScn CnByZWRlcHNfRjc3PScnCnByZWRlcHNfRkM9JycKcHJlZGVwc19HTz0nJwpw cmVkZXBzX0dDSj0nJwpwcmVkZXBzX1JDPScnCnBvc3RkZXBzX0NYWD0nLWxz dGRjKysgLWxtaW5ndzMyIC1sZ2NjX3MgLWxnY2MgLWxtb2xkbmFtZSAtbG1p bmd3ZXggLWxtc3ZjcnQgLWxhZHZhcGkzMiAtbHNoZWxsMzIgLWx1c2VyMzIg LWxrZXJuZWwzMiAtbG1pbmd3MzIgLWxnY2NfcyAtbGdjYyAtbG1vbGRuYW1l IC1sbWluZ3dleCAtbG1zdmNydCcKcG9zdGRlcHNfRjc3PScnCnBvc3RkZXBz X0ZDPScnCnBvc3RkZXBzX0dPPScnCnBvc3RkZXBzX0dDSj0nJwpwb3N0ZGVw c19SQz0nJwpjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSctTGM6L3Rp bmd3L2Jpbi8uLi9saWIvZ2NjL21pbmd3MzIvNC44LjEgLUxjOi90aW5ndy9i aW4vLi4vbGliL2djYyAtTGM6L3Rpbmd3L2Jpbi8uLi9saWIvZ2NjL21pbmd3 MzIvNC44LjEvLi4vLi4vLi4vLi4vbWluZ3czMi9saWIgLUxjOi90aW5ndy9i aW4vLi4vbGliL2djYy9taW5ndzMyLzQuOC4xLy4uLy4uLy4uJwpjb21waWxl cl9saWJfc2VhcmNoX3BhdGhfRjc3PScnCmNvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aF9GQz0nJwpjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfR089JycKY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoX0dDSj0nJwpjb21waWxlcl9saWJfc2Vh cmNoX3BhdGhfUkM9JycKCkxUQ0M9J2djYycKTFRDRkxBR1M9Jy1nIC1PMicK Y29tcGlsZXI9J2djYycKCiMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hl biB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KZnVuY19m YWxsYmFja19lY2hvICgpCnsKICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgok MQpfTFRFQ0hPX0VPRicKfQoKIyBRdW90ZSBldmFsZWQgc3RyaW5ncy4KZm9y IHZhciBpbiBBUyBETExUT09MIE9CSkRVTVAgU0hFTEwgRUNITyBQQVRIX1NF UEFSQVRPUiBTRUQgR1JFUCBFR1JFUCBGR1JFUCBMRCBOTSBMTl9TIGx0X1NQ Mk5MIGx0X05MMlNQIHJlbG9hZF9mbGFnIGRlcGxpYnNfY2hlY2tfbWV0aG9k IGZpbGVfbWFnaWNfY21kIGZpbGVfbWFnaWNfZ2xvYiB3YW50X25vY2FzZWds b2Igc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQgQVIgQVJfRkxBR1MgYXJj aGl2ZXJfbGlzdF9zcGVjIFNUUklQIFJBTkxJQiBDQyBDRkxBR1MgY29tcGls ZXIgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBsdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF90b19jZGVjbCBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcyBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzc19saWJfcHJlZml4IG5tX2ZpbGVfbGlzdF9zcGVjIGx0 X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIGx0X3Byb2dfY29tcGls ZXJfcGljIGx0X3Byb2dfY29tcGlsZXJfd2wgbHRfcHJvZ19jb21waWxlcl9z dGF0aWMgbHRfY3ZfcHJvZ19jb21waWxlcl9jX28gbmVlZF9sb2NrcyBNQU5J RkVTVF9UT09MIERTWU1VVElMIE5NRURJVCBMSVBPIE9UT09MIE9UT09MNjQg c2hyZXh0X2NtZHMgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjIGNvbXBpbGVyX25lZWRzX29iamVjdCB3aXRoX2du dV9sZCBhbGxvd191bmRlZmluZWRfZmxhZyBub191bmRlZmluZWRfZmxhZyBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IgZXhjbHVkZV9leHBzeW1zIGluY2x1ZGVfZXhwc3ltcyBmaWxlX2xp c3Rfc3BlYyB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBsaWJuYW1lX3Nw ZWMgbGlicmFyeV9uYW1lc19zcGVjIHNvbmFtZV9zcGVjIGluc3RhbGxfb3Zl cnJpZGVfbW9kZSBmaW5pc2hfZXZhbCBvbGRfc3RyaXBsaWIgc3RyaXBsaWIg Y29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIHByZWRlcF9vYmplY3RzIHBvc3Rk ZXBfb2JqZWN0cyBwcmVkZXBzIHBvc3RkZXBzIGNvbXBpbGVyX2xpYl9zZWFy Y2hfcGF0aCBMRF9DWFggTERfRjc3IExEX0ZDIExEX0dPIExEX0dDSiBMRF9S QyByZWxvYWRfZmxhZ19DWFggcmVsb2FkX2ZsYWdfRjc3IHJlbG9hZF9mbGFn X0ZDIHJlbG9hZF9mbGFnX0dPIHJlbG9hZF9mbGFnX0dDSiByZWxvYWRfZmxh Z19SQyBjb21waWxlcl9DWFggY29tcGlsZXJfRjc3IGNvbXBpbGVyX0ZDIGNv bXBpbGVyX0dPIGNvbXBpbGVyX0dDSiBjb21waWxlcl9SQyBsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFggbHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWdfRjc3IGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnX0ZDIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dP IGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dDSiBsdF9wcm9n X2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19SQyBsdF9wcm9nX2NvbXBpbGVy X3BpY19DWFggbHRfcHJvZ19jb21waWxlcl9waWNfRjc3IGx0X3Byb2dfY29t cGlsZXJfcGljX0ZDIGx0X3Byb2dfY29tcGlsZXJfcGljX0dPIGx0X3Byb2df Y29tcGlsZXJfcGljX0dDSiBsdF9wcm9nX2NvbXBpbGVyX3BpY19SQyBsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWCBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3NyBs dF9wcm9nX2NvbXBpbGVyX3dsX0ZDIGx0X3Byb2dfY29tcGlsZXJfd2xfR08g bHRfcHJvZ19jb21waWxlcl93bF9HQ0ogbHRfcHJvZ19jb21waWxlcl93bF9S QyBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFggbHRfcHJvZ19jb21waWxl cl9zdGF0aWNfRjc3IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0ZDIGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0dPIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0dDSiBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19SQyBsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfb19DWFggbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3IGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vX0ZDIGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vX0dPIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSiBsdF9jdl9wcm9n X2NvbXBpbGVyX2Nfb19SQyBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hY IGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzcgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0ZDIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HTyBleHBv cnRfZHluYW1pY19mbGFnX3NwZWNfR0NKIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19SQyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFggd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWNfRjc3IHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0ZD IHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dPIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjX0dDSiB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19SQyBjb21waWxl cl9uZWVkc19vYmplY3RfQ1hYIGNvbXBpbGVyX25lZWRzX29iamVjdF9GNzcg Y29tcGlsZXJfbmVlZHNfb2JqZWN0X0ZDIGNvbXBpbGVyX25lZWRzX29iamVj dF9HTyBjb21waWxlcl9uZWVkc19vYmplY3RfR0NKIGNvbXBpbGVyX25lZWRz X29iamVjdF9SQyB3aXRoX2dudV9sZF9DWFggd2l0aF9nbnVfbGRfRjc3IHdp dGhfZ251X2xkX0ZDIHdpdGhfZ251X2xkX0dPIHdpdGhfZ251X2xkX0dDSiB3 aXRoX2dudV9sZF9SQyBhbGxvd191bmRlZmluZWRfZmxhZ19DWFggYWxsb3df dW5kZWZpbmVkX2ZsYWdfRjc3IGFsbG93X3VuZGVmaW5lZF9mbGFnX0ZDIGFs bG93X3VuZGVmaW5lZF9mbGFnX0dPIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dD SiBhbGxvd191bmRlZmluZWRfZmxhZ19SQyBub191bmRlZmluZWRfZmxhZ19D WFggbm9fdW5kZWZpbmVkX2ZsYWdfRjc3IG5vX3VuZGVmaW5lZF9mbGFnX0ZD IG5vX3VuZGVmaW5lZF9mbGFnX0dPIG5vX3VuZGVmaW5lZF9mbGFnX0dDSiBu b191bmRlZmluZWRfZmxhZ19SQyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWCBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3NyBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0ZDIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf R08gaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0ogaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19SQyBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WCBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3NyBoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yX0ZDIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR08g aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0ogaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcl9SQyBleGNsdWRlX2V4cHN5bXNfQ1hYIGV4Y2x1ZGVfZXhw c3ltc19GNzcgZXhjbHVkZV9leHBzeW1zX0ZDIGV4Y2x1ZGVfZXhwc3ltc19H TyBleGNsdWRlX2V4cHN5bXNfR0NKIGV4Y2x1ZGVfZXhwc3ltc19SQyBpbmNs dWRlX2V4cHN5bXNfQ1hYIGluY2x1ZGVfZXhwc3ltc19GNzcgaW5jbHVkZV9l eHBzeW1zX0ZDIGluY2x1ZGVfZXhwc3ltc19HTyBpbmNsdWRlX2V4cHN5bXNf R0NKIGluY2x1ZGVfZXhwc3ltc19SQyBmaWxlX2xpc3Rfc3BlY19DWFggZmls ZV9saXN0X3NwZWNfRjc3IGZpbGVfbGlzdF9zcGVjX0ZDIGZpbGVfbGlzdF9z cGVjX0dPIGZpbGVfbGlzdF9zcGVjX0dDSiBmaWxlX2xpc3Rfc3BlY19SQyBj b21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIGNvbXBpbGVyX2xpYl9zZWFy Y2hfZGlyc19GNzcgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0ZDIGNvbXBp bGVyX2xpYl9zZWFyY2hfZGlyc19HTyBjb21waWxlcl9saWJfc2VhcmNoX2Rp cnNfR0NKIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19SQyBwcmVkZXBfb2Jq ZWN0c19DWFggcHJlZGVwX29iamVjdHNfRjc3IHByZWRlcF9vYmplY3RzX0ZD IHByZWRlcF9vYmplY3RzX0dPIHByZWRlcF9vYmplY3RzX0dDSiBwcmVkZXBf b2JqZWN0c19SQyBwb3N0ZGVwX29iamVjdHNfQ1hYIHBvc3RkZXBfb2JqZWN0 c19GNzcgcG9zdGRlcF9vYmplY3RzX0ZDIHBvc3RkZXBfb2JqZWN0c19HTyBw b3N0ZGVwX29iamVjdHNfR0NKIHBvc3RkZXBfb2JqZWN0c19SQyBwcmVkZXBz X0NYWCBwcmVkZXBzX0Y3NyBwcmVkZXBzX0ZDIHByZWRlcHNfR08gcHJlZGVw c19HQ0ogcHJlZGVwc19SQyBwb3N0ZGVwc19DWFggcG9zdGRlcHNfRjc3IHBv c3RkZXBzX0ZDIHBvc3RkZXBzX0dPIHBvc3RkZXBzX0dDSiBwb3N0ZGVwc19S QyBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIGNvbXBpbGVyX2xpYl9z ZWFyY2hfcGF0aF9GNzcgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0ZDIGNv bXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9HTyBjb21waWxlcl9saWJfc2VhcmNo X3BhdGhfR0NKIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9SQzsgZG8KICAg IGNhc2UgYGV2YWwgXFwkRUNITyBcXCIiXFwkJHZhciJcXCJgIGluCiAgICAq W1xcXGBcIlwkXSopCiAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRFQ0hP IFwiXCQkdmFyXCIgfCBcJFNFRCBcIlwkc2VkX3F1b3RlX3N1YnN0XCJcYFxc XCIiCiAgICAgIDs7CiAgICAqKQogICAgICBldmFsICJsdF8kdmFyPVxcXCJc JCR2YXJcXFwiIgogICAgICA7OwogICAgZXNhYwpkb25lCgojIERvdWJsZS1x dW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCmZvciB2YXIgaW4gcmVsb2Fk X2NtZHMgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgb2xkX3Bvc3R1bmluc3RhbGxf Y21kcyBvbGRfYXJjaGl2ZV9jbWRzIGV4dHJhY3RfZXhwc3ltc19jbWRzIG9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMgb2xkX2FyY2hpdmVfZnJvbV9leHBz eW1zX2NtZHMgYXJjaGl2ZV9jbWRzIGFyY2hpdmVfZXhwc3ltX2NtZHMgbW9k dWxlX2NtZHMgbW9kdWxlX2V4cHN5bV9jbWRzIGV4cG9ydF9zeW1ib2xzX2Nt ZHMgcHJlbGlua19jbWRzIHBvc3RsaW5rX2NtZHMgcG9zdGluc3RhbGxfY21k cyBwb3N0dW5pbnN0YWxsX2NtZHMgZmluaXNoX2NtZHMgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIHJlbG9h ZF9jbWRzX0NYWCByZWxvYWRfY21kc19GNzcgcmVsb2FkX2NtZHNfRkMgcmVs b2FkX2NtZHNfR08gcmVsb2FkX2NtZHNfR0NKIHJlbG9hZF9jbWRzX1JDIG9s ZF9hcmNoaXZlX2NtZHNfQ1hYIG9sZF9hcmNoaXZlX2NtZHNfRjc3IG9sZF9h cmNoaXZlX2NtZHNfRkMgb2xkX2FyY2hpdmVfY21kc19HTyBvbGRfYXJjaGl2 ZV9jbWRzX0dDSiBvbGRfYXJjaGl2ZV9jbWRzX1JDIG9sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHNfQ1hYIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfRjc3 IG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfRkMgb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kc19HTyBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0dDSiBv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX1JDIG9sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzX0NYWCBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k c19GNzcgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfRkMgb2xkX2Fy Y2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfR08gb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHNfR0NKIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz X1JDIGFyY2hpdmVfY21kc19DWFggYXJjaGl2ZV9jbWRzX0Y3NyBhcmNoaXZl X2NtZHNfRkMgYXJjaGl2ZV9jbWRzX0dPIGFyY2hpdmVfY21kc19HQ0ogYXJj aGl2ZV9jbWRzX1JDIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYIGFyY2hpdmVf ZXhwc3ltX2NtZHNfRjc3IGFyY2hpdmVfZXhwc3ltX2NtZHNfRkMgYXJjaGl2 ZV9leHBzeW1fY21kc19HTyBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSiBhcmNo aXZlX2V4cHN5bV9jbWRzX1JDIG1vZHVsZV9jbWRzX0NYWCBtb2R1bGVfY21k c19GNzcgbW9kdWxlX2NtZHNfRkMgbW9kdWxlX2NtZHNfR08gbW9kdWxlX2Nt ZHNfR0NKIG1vZHVsZV9jbWRzX1JDIG1vZHVsZV9leHBzeW1fY21kc19DWFgg bW9kdWxlX2V4cHN5bV9jbWRzX0Y3NyBtb2R1bGVfZXhwc3ltX2NtZHNfRkMg bW9kdWxlX2V4cHN5bV9jbWRzX0dPIG1vZHVsZV9leHBzeW1fY21kc19HQ0og bW9kdWxlX2V4cHN5bV9jbWRzX1JDIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hY IGV4cG9ydF9zeW1ib2xzX2NtZHNfRjc3IGV4cG9ydF9zeW1ib2xzX2NtZHNf RkMgZXhwb3J0X3N5bWJvbHNfY21kc19HTyBleHBvcnRfc3ltYm9sc19jbWRz X0dDSiBleHBvcnRfc3ltYm9sc19jbWRzX1JDIHByZWxpbmtfY21kc19DWFgg cHJlbGlua19jbWRzX0Y3NyBwcmVsaW5rX2NtZHNfRkMgcHJlbGlua19jbWRz X0dPIHByZWxpbmtfY21kc19HQ0ogcHJlbGlua19jbWRzX1JDIHBvc3RsaW5r X2NtZHNfQ1hYIHBvc3RsaW5rX2NtZHNfRjc3IHBvc3RsaW5rX2NtZHNfRkMg cG9zdGxpbmtfY21kc19HTyBwb3N0bGlua19jbWRzX0dDSiBwb3N0bGlua19j bWRzX1JDOyBkbwogICAgY2FzZSBgZXZhbCBcXCRFQ0hPIFxcIiJcXCQkdmFy IlxcImAgaW4KICAgICpbXFxcYFwiXCRdKikKICAgICAgZXZhbCAibHRfJHZh cj1cXFwiXGBcJEVDSE8gXCJcJCR2YXJcIiB8IFwkU0VEIC1lIFwiXCRkb3Vi bGVfcXVvdGVfc3Vic3RcIiAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCIgLWUg XCJcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XCJcYFxcXCIiCiAgICAgIDs7CiAg ICAqKQogICAgICBldmFsICJsdF8kdmFyPVxcXCJcJCR2YXJcXFwiIgogICAg ICA7OwogICAgZXNhYwpkb25lCgphY19hdXhfZGlyPScvTWluR1cvc2hhcmUv YXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL2xpYmx0ZGwvY29uZmlnJwp4 c2lfc2hlbGw9J3llcycKbHRfc2hlbGxfYXBwZW5kPSd5ZXMnCgojIFNlZSBp ZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMg d2hpY2ggYWxsb3cgb3VyCiMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJl bW92YWwgb2YgXCBlc2NhcGVzIElOSVQuCmlmIHRlc3QgLW4gIiR7WlNIX1ZF UlNJT04rc2V0fSIgOyB0aGVuCiAgIHNldG9wdCBOT19HTE9CX1NVQlNUCmZp CgoKICAgIFBBQ0tBR0U9J2xpYnRvb2wnCiAgICBWRVJTSU9OPScyLjQuMicK ICAgIFRJTUVTVEFNUD0nJwogICAgUk09J3JtIC1mJwogICAgb2ZpbGU9J2xp YnRvb2wnCgoKCgoKCgoKCgoKCgoKCgoKIyBIYW5kbGluZyBvZiBhcmd1bWVu dHMuCmZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0 cwpkbwogIGNhc2UgJGFjX2NvbmZpZ190YXJnZXQgaW4KICAgICJjb25maWcu aCIpIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgY29uZmlnLmg6 Y29uZmlnLWguaW4iIDs7CiAgICAidGVzdHMvYXRjb25maWciKSBDT05GSUdf Q09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgdGVzdHMvYXRjb25maWciIDs7 CiAgICAiZGVwZmlsZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09N TUFORFMgZGVwZmlsZXMiIDs7CiAgICAibGlidG9vbCIpIENPTkZJR19DT01N QU5EUz0iJENPTkZJR19DT01NQU5EUyBsaWJ0b29sIiA7OwogICAgIk1ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlIiA7 OwoKICAqKSBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBhcmd1bWVudDogXGAk YWNfY29uZmlnX3RhcmdldCciICIkTElORU5PIiA1OzsKICBlc2FjCmRvbmUK CgojIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8g c3BlY2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCiMgdGhlbiB0aGUg ZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhh dCBhcmUgbm90LgojIFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVm YXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5CiMgYml6 YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCmlmICRhY19uZWVkX2RlZmF1bHRz OyB0aGVuCiAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwg Q09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKICB0ZXN0ICIke0NPTkZJR19I RUFERVJTK3NldH0iID0gc2V0IHx8IENPTkZJR19IRUFERVJTPSRjb25maWdf aGVhZGVycwogIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0gc2V0 IHx8IENPTkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRzCmZpCgojIEhh dmUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1h a2UgaXQgaW4gdGhlIGJ1aWxkIHRyZWUKIyBzaW1wbHkgYmVjYXVzZSB0aGVy ZSBpcyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5kIGlu IGFkZGl0aW9uLAojIGNyZWF0aW5nIGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAv dG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMuCiMgSG9vayBmb3Ig aXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KIyBOb3RlIHRoYXQgdGhl cmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhlIGRpcmVjdG9yeSB3 aWxsIG5vdCBiZSBjbGVhbmVkOgojIGFmdGVyIGl0cyBjcmVhdGlvbiBidXQg YmVmb3JlIGl0cyBuYW1lIGhhcyBiZWVuIGFzc2lnbmVkIHRvIGAkdG1wJy4K JGRlYnVnIHx8CnsKICB0bXA9IGFjX3RtcD0KICB0cmFwICdleGl0X3N0YXR1 cz0kPwogIDogIiR7YWNfdG1wOj0kdG1wfSIKICB7IHRlc3QgISAtZCAiJGFj X3RtcCIgfHwgcm0gLWZyICIkYWNfdG1wIjsgfSAmJiBleGl0ICRleGl0X3N0 YXR1cwonIDAKICB0cmFwICdhc19mbl9leGl0IDEnIDEgMiAxMyAxNQp9CiMg Q3JlYXRlIGEgKHNlY3VyZSkgdG1wIGRpcmVjdG9yeSBmb3IgdG1wIGZpbGVz LgoKewogIHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgIi4vY29uZlhY WFhYWCIpIDI+L2Rldi9udWxsYCAmJgogIHRlc3QgLWQgIiR0bXAiCn0gIHx8 CnsKICB0bXA9Li9jb25mJCQtJFJBTkRPTQogICh1bWFzayAwNzcgJiYgbWtk aXIgIiR0bXAiKQp9IHx8IGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY3JlYXRl IGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiAiJExJTkVOTyIgNQphY190 bXA9JHRtcAoKIyBTZXQgdXAgdGhlIHNjcmlwdHMgZm9yIENPTkZJR19GSUxF UyBzZWN0aW9uLgojIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVy ZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgojIFRoaXMgaGFwcGVucyBmb3IgaW5z dGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIGNvbmZpZy5oJy4KaWYgdGVz dCAtbiAiJENPTkZJR19GSUxFUyI7IHRoZW4KCgphY19jcj1gZWNobyBYIHwg dHIgWCAnXDAxNSdgCiMgT24gY3lnd2luLCBiYXNoIGNhbiBlYXQgXHIgaW5z aWRlIGBgIGlmIHRoZSB1c2VyIHJlcXVlc3RlZCBpZ25jci4KIyBCdXQgd2Ug a25vdyBvZiBubyBvdGhlciBzaGVsbCB3aGVyZSBhY19jciB3b3VsZCBiZSBl bXB0eSBhdCB0aGlzCiMgcG9pbnQsIHNvIHdlIGNhbiB1c2UgYSBiYXNoaXNt IGFzIGEgZmFsbGJhY2suCmlmIHRlc3QgIngkYWNfY3IiID0geDsgdGhlbgog IGV2YWwgYWNfY3I9XCRcJ1xcclwnCmZpCmFjX2NzX2F3a19jcj1gJEFXSyAn QkVHSU4geyBwcmludCAiYVxyYiIgfScgPC9kZXYvbnVsbCAyPi9kZXYvbnVs bGAKaWYgdGVzdCAiJGFjX2NzX2F3a19jciIgPSAiYSR7YWNfY3J9YiI7IHRo ZW4KICBhY19jc19hd2tfY3I9J1xccicKZWxzZQogIGFjX2NzX2F3a19jcj0k YWNfY3IKZmkKCmVjaG8gJ0JFR0lOIHsnID4iJGFjX3RtcC9zdWJzMS5hd2si ICYmCmNhdCA+PiIkYWNfdG1wL3N1YnMxLmF3ayIgPDxcX0FDQVdLICYmClNb ImFtX19FWEVFWFRfRkFMU0UiXT0iIyIKU1siYW1fX0VYRUVYVF9UUlVFIl09 IiIKU1siTFRMSUJPQkpTIl09IiAke0xJQk9CSkRJUn1hcmd6JFUubG8gJHtM SUJPQkpESVJ9bHRfX3N0cmwkVS5sbyIKU1siSEVMUDJNQU4iXT0iJHtTSEVM TH0gL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9s aWJsdGRsL2NvbmZpZy9taXNzaW5nIC0tcnVuIGhlbHAybWFuIgpTWyJPUkRF UiJdPSJ8IgpTWyJIQVZFX1JDX0ZBTFNFIl09IiMiClNbIkhBVkVfUkNfVFJV RSJdPSIiClNbIkhBVkVfR0NKX0ZBTFNFIl09IiIKU1siSEFWRV9HQ0pfVFJV RSJdPSIjIgpTWyJIQVZFX0ZDX0ZBTFNFIl09IiIKU1siSEFWRV9GQ19UUlVF Il09IiMiClNbIkhBVkVfRjc3X0ZBTFNFIl09IiIKU1siSEFWRV9GNzdfVFJV RSJdPSIjIgpTWyJIQVZFX0NYWF9GQUxTRSJdPSIjIgpTWyJIQVZFX0NYWF9U UlVFIl09IiIKU1sidG9fdG9vbF9maWxlX2NtZCJdPSJmdW5jX2NvbnZlcnRf ZmlsZV9tc3lzX3RvX3czMiIKU1sidG9faG9zdF9maWxlX2NtZCJdPSJmdW5j X2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMiIKU1siUkMiXT0id2luZHJlcyIK U1siR0NKRkxBR1MiXT0iLWcgLU8yIgpTWyJHQ0oiXT0iIgpTWyJHT0MiXT0i IgpTWyJhY19jdF9GQyJdPSIiClNbIkZDRkxBR1MiXT0iIgpTWyJGQyJdPSIi ClNbImFjX2N0X0Y3NyJdPSIiClNbIkZGTEFHUyJdPSIiClNbIkY3NyJdPSIi ClNbIkNYWENQUCJdPSJnKysgLUUiClNbImFtX19mYXN0ZGVwQ1hYX0ZBTFNF Il09IiMiClNbImFtX19mYXN0ZGVwQ1hYX1RSVUUiXT0iIgpTWyJDWFhERVBN T0RFIl09ImRlcG1vZGU9Z2NjMyIKU1siYWNfY3RfQ1hYIl09ImcrKyIKU1si Q1hYRkxBR1MiXT0iLWcgLU8yIgpTWyJDWFgiXT0iZysrIgpTWyJMVERMT1BF TiJdPSJsaWJsdGRsIgpTWyJMVF9DT05GSUdfSCJdPSJjb25maWcuaCIKU1si Q09OVkVOSUVOQ0VfTFRETF9GQUxTRSJdPSIiClNbIkNPTlZFTklFTkNFX0xU RExfVFJVRSJdPSIjIgpTWyJJTlNUQUxMX0xURExfRkFMU0UiXT0iIyIKU1si SU5TVEFMTF9MVERMX1RSVUUiXT0iIgpTWyJBUkdaX0giXT0iYXJnei5oIgpT WyJMSUJPQkpTIl09IiAke0xJQk9CSkRJUn1hcmd6JFUubyAke0xJQk9CSkRJ Un1sdF9fc3RybCRVLm8iClNbInN5c19zeW1ib2xfdW5kZXJzY29yZSJdPSJ5 ZXMiClNbIkxJQkFERF9ETCJdPSIgIgpTWyJMVF9ETFBSRU9QRU4iXT0iLWRs cHJlb3BlbiBsaWJsdGRsL2xvYWRsaWJyYXJ5LmxhICIKU1siTElCQUREX0RM RF9MSU5LIl09IiIKU1siTElCQUREX1NITF9MT0FEIl09IiIKU1siTElCQURE X0RMT1BFTiJdPSIiClNbIkxUX0RMTE9BREVSUyJdPSIgbGlibHRkbC9sb2Fk bGlicmFyeS5sYSIKU1siT1RPT0w2NCJdPSIiClNbIk9UT09MIl09IiIKU1si TElQTyJdPSIiClNbIk5NRURJVCJdPSIiClNbIkRTWU1VVElMIl09IiIKU1si TUFOSUZFU1RfVE9PTCJdPSI6IgpTWyJSQU5MSUIiXT0icmFubGliIgpTWyJh Y19jdF9BUiJdPSJhciIKU1siQVIiXT0iYXIiClNbIkxOX1MiXT0iY3AgLXAi ClNbIk5NIl09Ii9iaW4vbm0gLUIiClNbImFjX2N0X0RVTVBCSU4iXT0iIgpT WyJEVU1QQklOIl09IiIKU1siTEQiXT0iYzovdGluZ3cvbWluZ3czMi9iaW4v bGQuZXhlIgpTWyJGR1JFUCJdPSIvYmluL2dyZXAgLUYiClNbIkVHUkVQIl09 Ii9iaW4vZ3JlcCAtRSIKU1siR1JFUCJdPSIvYmluL2dyZXAiClNbIlNFRCJd PSIvYmluL3NlZCIKU1siTElCVE9PTCJdPSIkKFNIRUxMKSAkKHRvcF9idWls ZGRpcikvbGlidG9vbCIKU1siT0JKRFVNUCJdPSJvYmpkdW1wIgpTWyJETExU T09MIl09ImRsbHRvb2wiClNbIkFTIl09ImFzIgpTWyJDUFAiXT0iZ2NjIC1F IgpTWyJhbV9fZmFzdGRlcENDX0ZBTFNFIl09IiMiClNbImFtX19mYXN0ZGVw Q0NfVFJVRSJdPSIiClNbIkNDREVQTU9ERSJdPSJkZXBtb2RlPWdjYzMiClNb IkFNREVQQkFDS1NMQVNIIl09IlxcIgpTWyJBTURFUF9GQUxTRSJdPSIjIgpT WyJBTURFUF9UUlVFIl09IiIKU1siYW1fX3F1b3RlIl09IiIKU1siYW1fX2lu Y2x1ZGUiXT0iaW5jbHVkZSIKU1siREVQRElSIl09Ii5kZXBzIgpTWyJPQkpF WFQiXT0ibyIKU1siRVhFRVhUIl09Ii5leGUiClNbImFjX2N0X0NDIl09Imdj YyIKU1siQ1BQRkxBR1MiXT0iIgpTWyJMREZMQUdTIl09IiIKU1siQ0ZMQUdT Il09Ii1nIC1PMiIKU1siQ0MiXT0iZ2NjIgpTWyJESVNUX01BS0VGSUxFX0xJ U1QiXT0idGVzdHMvY2RlbW8vTWFrZWZpbGUgdGVzdHMvZGVtby9NYWtlZmls ZSB0ZXN0cy9kZXBkZW1vL01ha2VmaWxlIHRlc3RzL2Y3N2RlbW8vTWFrZWZp bGUgdGVzdHMvZmNkZW1vL01ha2VmaWxlIHRlc3RzL21kZW1vL01ha2VmaWxl IHRlc3RzL21kZW1vMi9NYWtlZiJcCiJpbGUgdGVzdHMvcGRlbW8vTWFrZWZp bGUgdGVzdHMvdGFnZGVtby9NYWtlZmlsZSAiClNbIkNPTkZfU1VCRElSUyJd PSJ0ZXN0cy9jZGVtbyB0ZXN0cy9kZW1vIHRlc3RzL2RlcGRlbW8gdGVzdHMv Zjc3ZGVtbyB0ZXN0cy9mY2RlbW8gCXRlc3RzL21kZW1vIHRlc3RzL21kZW1v MiB0ZXN0cy9wZGVtbyB0ZXN0cy90YWdkZW1vIgpTWyJwa2dkYXRhZGlyIl09 IiR7ZGF0YWRpcn0vbGlidG9vbCIKU1siYWNsb2NhbGRpciJdPSIke2RhdGFk aXJ9L2FjbG9jYWwiClNbIkNPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTIl09 IiQodG9wX3NyY2RpcikvQ2hhbmdlTG9nIgpTWyJNNFNIIl09IiQoQVVUT000 VEUpIC0tbGFuZ3VhZ2U9bTRzaCIKU1siaG9zdF9vcyJdPSJtaW5ndzMyIgpT WyJob3N0X3ZlbmRvciJdPSJwYyIKU1siaG9zdF9jcHUiXT0iaTY4NiIKU1si aG9zdCJdPSJpNjg2LXBjLW1pbmd3MzIiClNbImJ1aWxkX29zIl09Im1pbmd3 MzIiClNbImJ1aWxkX3ZlbmRvciJdPSJwYyIKU1siYnVpbGRfY3B1Il09Imk2 ODYiClNbImJ1aWxkIl09Imk2ODYtcGMtbWluZ3czMiIKU1siYW1fX3VudGFy Il09IiR7QU1UQVJ9IHhmIC0iClNbImFtX190YXIiXT0iJHtBTVRBUn0gY2hv ZiAtIFwiJCR0YXJkaXJcIiIKU1siQU1UQVIiXT0iJHtTSEVMTH0gL01pbkdX L3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9saWJsdGRsL2Nv bmZpZy9taXNzaW5nIC0tcnVuIHRhciIKU1siYW1fX2xlYWRpbmdfZG90Il09 Ii4iClNbIlNFVF9NQUtFIl09IiIKU1siQVdLIl09Imdhd2siClNbIm1rZGly X3AiXT0iL2Jpbi9ta2RpciAtcCIKU1siTUtESVJfUCJdPSIvYmluL21rZGly IC1wIgpTWyJJTlNUQUxMX1NUUklQX1BST0dSQU0iXT0iJChpbnN0YWxsX3No KSAtYyAtcyIKU1siU1RSSVAiXT0ic3RyaXAiClNbImluc3RhbGxfc2giXT0i JHtTSEVMTH0gL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0y LjQuMi9saWJsdGRsL2NvbmZpZy9pbnN0YWxsLXNoIgpTWyJNQUtFSU5GTyJd PSIke1NIRUxMfSAvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29s LTIuNC4yL2xpYmx0ZGwvY29uZmlnL21pc3NpbmcgLS1ydW4gbWFrZWluZm8i ClNbIkFVVE9IRUFERVIiXT0iJHtTSEVMTH0gL01pbkdXL3NoYXJlL2F1dG9t YWtlLTEuMTEvbGlidG9vbC0yLjQuMi9saWJsdGRsL2NvbmZpZy9taXNzaW5n IC0tcnVuIGF1dG9oZWFkZXIiClNbIkFVVE9NQUtFIl09IiR7U0hFTEx9IC9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvbGlibHRk bC9jb25maWcvbWlzc2luZyAtLXJ1biBhdXRvbWFrZS0xLjExIgpTWyJBVVRP Q09ORiJdPSIke1NIRUxMfSAvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9s aWJ0b29sLTIuNC4yL2xpYmx0ZGwvY29uZmlnL21pc3NpbmcgLS1ydW4gYXV0 b2NvbmYiClNbIkFDTE9DQUwiXT0iJHtTSEVMTH0gL01pbkdXL3NoYXJlL2F1 dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi9saWJsdGRsL2NvbmZpZy9taXNz aW5nIC0tcnVuIGFjbG9jYWwtMS4xMSIKU1siVkVSU0lPTiJdPSIyLjQuMiIK U1siUEFDS0FHRSJdPSJsaWJ0b29sIgpTWyJDWUdQQVRIX1ciXT0iZWNobyIK U1siYW1fX2lzcmMiXT0iIC1JJChzcmNkaXIpIgpTWyJJTlNUQUxMX0RBVEEi XT0iJHtJTlNUQUxMfSAtbSA2NDQiClNbIklOU1RBTExfU0NSSVBUIl09IiR7 SU5TVEFMTH0iClNbIklOU1RBTExfUFJPR1JBTSJdPSIke0lOU1RBTEx9IgpT WyJwYWNrYWdlX3JldmlzaW9uIl09IjEuMzMzNyIKU1siVElNRVNUQU1QIl09 IiIKU1siTEFTVFJFTEVBU0UiXT0iMi40LjEiClNbIkFVVE9URVNUIl09IiQo QVVUT000VEUpIC0tbGFuZ3VhZ2U9YXV0b3Rlc3QiClNbIkFVVE9NNFRFIl09 ImF1dG9tNHRlIgpTWyJ0YXJnZXRfYWxpYXMiXT0iIgpTWyJob3N0X2FsaWFz Il09IiIKU1siYnVpbGRfYWxpYXMiXT0iIgpTWyJMSUJTIl09IiIKU1siRUNI T19UIl09IiIKU1siRUNIT19OIl09Ii1uIgpTWyJFQ0hPX0MiXT0iIgpTWyJE RUZTIl09Ii1ESEFWRV9DT05GSUdfSCIKU1sibWFuZGlyIl09IiR7ZGF0YXJv b3RkaXJ9L21hbiIKU1sibG9jYWxlZGlyIl09IiR7ZGF0YXJvb3RkaXJ9L2xv Y2FsZSIKU1sibGliZGlyIl09IiR7ZXhlY19wcmVmaXh9L2xpYiIKU1sicHNk aXIiXT0iJHtkb2NkaXJ9IgpTWyJwZGZkaXIiXT0iJHtkb2NkaXJ9IgpTWyJk dmlkaXIiXT0iJHtkb2NkaXJ9IgpTWyJodG1sZGlyIl09IiR7ZG9jZGlyfSIK U1siaW5mb2RpciJdPSIke2RhdGFyb290ZGlyfS9pbmZvIgpTWyJkb2NkaXIi XT0iJHtkYXRhcm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfSIKU1si b2xkaW5jbHVkZWRpciJdPSIvdXNyL2luY2x1ZGUiClNbImluY2x1ZGVkaXIi XT0iJHtwcmVmaXh9L2luY2x1ZGUiClNbImxvY2Fsc3RhdGVkaXIiXT0iJHtw cmVmaXh9L3ZhciIKU1sic2hhcmVkc3RhdGVkaXIiXT0iJHtwcmVmaXh9L2Nv bSIKU1sic3lzY29uZmRpciJdPSIke3ByZWZpeH0vZXRjIgpTWyJkYXRhZGly Il09IiR7ZGF0YXJvb3RkaXJ9IgpTWyJkYXRhcm9vdGRpciJdPSIke3ByZWZp eH0vc2hhcmUiClNbImxpYmV4ZWNkaXIiXT0iJHtleGVjX3ByZWZpeH0vbGli ZXhlYyIKU1sic2JpbmRpciJdPSIke2V4ZWNfcHJlZml4fS9zYmluIgpTWyJi aW5kaXIiXT0iJHtleGVjX3ByZWZpeH0vYmluIgpTWyJwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lIl09InMseCx4LCIKU1sicHJlZml4Il09Ii91c3IvbG9jYWwi ClNbImV4ZWNfcHJlZml4Il09IiR7cHJlZml4fSIKU1siUEFDS0FHRV9VUkwi XT0iaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvIgpTWyJQ QUNLQUdFX0JVR1JFUE9SVCJdPSJidWctbGlidG9vbEBnbnUub3JnIgpTWyJQ QUNLQUdFX1NUUklORyJdPSJHTlUgTGlidG9vbCAyLjQuMiIKU1siUEFDS0FH RV9WRVJTSU9OIl09IjIuNC4yIgpTWyJQQUNLQUdFX1RBUk5BTUUiXT0ibGli dG9vbCIKU1siUEFDS0FHRV9OQU1FIl09IkdOVSBMaWJ0b29sIgpTWyJQQVRI X1NFUEFSQVRPUiJdPSI6IgpTWyJTSEVMTCJdPSIvYmluL3NoIgpfQUNBV0sK Y2F0ID4+IiRhY190bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgogIGZvciAo a2V5IGluIFMpIFNfaXNfc2V0W2tleV0gPSAxCiAgRlMgPSAiByIKCn0Kewog IGxpbmUgPSAkIDAKICBuZmllbGRzID0gc3BsaXQobGluZSwgZmllbGQsICJA IikKICBzdWJzdGVkID0gMAogIGxlbiA9IGxlbmd0aChmaWVsZFsxXSkKICBm b3IgKGkgPSAyOyBpIDwgbmZpZWxkczsgaSsrKSB7CiAgICBrZXkgPSBmaWVs ZFtpXQogICAga2V5bGVuID0gbGVuZ3RoKGtleSkKICAgIGlmIChTX2lzX3Nl dFtrZXldKSB7CiAgICAgIHZhbHVlID0gU1trZXldCiAgICAgIGxpbmUgPSBz dWJzdHIobGluZSwgMSwgbGVuKSAiIiB2YWx1ZSAiIiBzdWJzdHIobGluZSwg bGVuICsga2V5bGVuICsgMykKICAgICAgbGVuICs9IGxlbmd0aCh2YWx1ZSkg KyBsZW5ndGgoZmllbGRbKytpXSkKICAgICAgc3Vic3RlZCA9IDEKICAgIH0g ZWxzZQogICAgICBsZW4gKz0gMSArIGtleWxlbgogIH0KCiAgcHJpbnQgbGlu ZQp9CgpfQUNBV0sKaWYgc2VkICJzLyRhY19jci8vIiA8IC9kZXYvbnVsbCA+ IC9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgc2VkICJzLyRhY19jclwkLy87IHMv JGFjX2NyLyRhY19jc19hd2tfY3IvZyIKZWxzZQogIGNhdApmaSA8ICIkYWNf dG1wL3N1YnMxLmF3ayIgPiAiJGFjX3RtcC9zdWJzLmF3ayIgXAogIHx8IGFz X2ZuX2Vycm9yICQ/ICJjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGZpbGVzIG1h Y2hpbmVyeSIgIiRMSU5FTk8iIDUKZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJ TEVTIgoKIyBTZXQgdXAgdGhlIHNjcmlwdHMgZm9yIENPTkZJR19IRUFERVJT IHNlY3Rpb24uCiMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJl IGFyZSBubyBDT05GSUdfSEVBREVSUy4KIyBUaGlzIGhhcHBlbnMgZm9yIGlu c3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCmlmIHRl c3QgLW4gIiRDT05GSUdfSEVBREVSUyI7IHRoZW4KY2F0ID4iJGFjX3RtcC9k ZWZpbmVzLmF3ayIgPDxcX0FDQVdLIHx8CkJFR0lOIHsKRFsiUEFDS0FHRV9O QU1FIl09IiBcIkdOVSBMaWJ0b29sXCIiCkRbIlBBQ0tBR0VfVEFSTkFNRSJd PSIgXCJsaWJ0b29sXCIiCkRbIlBBQ0tBR0VfVkVSU0lPTiJdPSIgXCIyLjQu MlwiIgpEWyJQQUNLQUdFX1NUUklORyJdPSIgXCJHTlUgTGlidG9vbCAyLjQu MlwiIgpEWyJQQUNLQUdFX0JVR1JFUE9SVCJdPSIgXCJidWctbGlidG9vbEBn bnUub3JnXCIiCkRbIlBBQ0tBR0VfVVJMIl09IiBcImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9saWJ0b29sL1wiIgpEWyJQQUNLQUdFIl09IiBcImxp YnRvb2xcIiIKRFsiVkVSU0lPTiJdPSIgXCIyLjQuMlwiIgpEWyJTVERDX0hF QURFUlMiXT0iIDEiCkRbIkhBVkVfU1lTX1RZUEVTX0giXT0iIDEiCkRbIkhB VkVfU1lTX1NUQVRfSCJdPSIgMSIKRFsiSEFWRV9TVERMSUJfSCJdPSIgMSIK RFsiSEFWRV9TVFJJTkdfSCJdPSIgMSIKRFsiSEFWRV9NRU1PUllfSCJdPSIg MSIKRFsiSEFWRV9TVFJJTkdTX0giXT0iIDEiCkRbIkhBVkVfSU5UVFlQRVNf SCJdPSIgMSIKRFsiSEFWRV9TVERJTlRfSCJdPSIgMSIKRFsiSEFWRV9VTklT VERfSCJdPSIgMSIKRFsiTFRfT0JKRElSIl09IiBcIi5saWJzL1wiIgpEWyJM VF9NT0RVTEVfRVhUIl09IiBcIi5kbGxcIiIKRFsiTFRfTU9EVUxFX1BBVEhf VkFSIl09IiBcIlBBVEhcIiIKRFsiTFRfRExTRUFSQ0hfUEFUSCJdPSIgXCIv bGliOi91c3IvbGliXCIiCkRbIkhBVkVfREVDTF9DWUdXSU5fQ09OVl9QQVRI Il09IiAwIgpEWyJIQVZFX0xJQkRMTE9BREVSIl09IiAxIgpEWyJMVERMX0RM T1BFTl9ERVBMSUJTIl09IiAxIgpEWyJlcnJvcl90Il09IiBpbnQiCkRbIl9f ZXJyb3JfdF9kZWZpbmVkIl09IiAxIgpEWyJIQVZFX1BSRUxPQURFRF9TWU1C T0xTIl09IiAxIgpEWyJIQVZFX1VOSVNURF9IIl09IiAxIgpEWyJIQVZFX0RJ UkVOVF9IIl09IiAxIgpEWyJIQVZFX0NMT1NFRElSIl09IiAxIgpEWyJIQVZF X09QRU5ESVIiXT0iIDEiCkRbIkhBVkVfUkVBRERJUiJdPSIgMSIKRFsiTFRf TElCRVhUIl09IiBcImFcIiIKRFsiTFRfTElCUFJFRklYIl09IiBcImxpYlwi IgogIGZvciAoa2V5IGluIEQpIERfaXNfc2V0W2tleV0gPSAxCiAgRlMgPSAi ByIKfQovXltcdCBdKiNbXHQgXSooZGVmaW5lfHVuZGVmKVtcdCBdK1tfYWJj ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVW V1hZWl1bX2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktM TU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5XSooW1x0IChdfCQpLyB7CiAgbGlu ZSA9ICQgMAogIHNwbGl0KGxpbmUsIGFyZywgIiAiKQogIGlmIChhcmdbMV0g PT0gIiMiKSB7CiAgICBkZWZ1bmRlZiA9IGFyZ1syXQogICAgbWFjMSA9IGFy Z1szXQogIH0gZWxzZSB7CiAgICBkZWZ1bmRlZiA9IHN1YnN0cihhcmdbMV0s IDIpCiAgICBtYWMxID0gYXJnWzJdCiAgfQogIHNwbGl0KG1hYzEsIG1hYzIs ICIoIikgIykKICBtYWNybyA9IG1hYzJbMV0KICBwcmVmaXggPSBzdWJzdHIo bGluZSwgMSwgaW5kZXgobGluZSwgZGVmdW5kZWYpIC0gMSkKICBpZiAoRF9p c19zZXRbbWFjcm9dKSB7CiAgICAjIFByZXNlcnZlIHRoZSB3aGl0ZSBzcGFj ZSBzdXJyb3VuZGluZyB0aGUgIiMiLgogICAgcHJpbnQgcHJlZml4ICJkZWZp bmUiLCBtYWNybyBQW21hY3JvXSBEW21hY3JvXQogICAgbmV4dAogIH0gZWxz ZSB7CiAgICAjIFJlcGxhY2UgI3VuZGVmIHdpdGggY29tbWVudHMuICBUaGlz IGlzIG5lY2Vzc2FyeSwgZm9yIGV4YW1wbGUsCiAgICAjIGluIHRoZSBjYXNl IG9mIF9QT1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJl cXVpcmVkCiAgICAjIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUg d2lsbCBub3QgZGVjaWRlIHRvIGRlZmluZSBpdC4KICAgIGlmIChkZWZ1bmRl ZiA9PSAidW5kZWYiKSB7CiAgICAgIHByaW50ICIvKiIsIHByZWZpeCBkZWZ1 bmRlZiwgbWFjcm8sICIqLyIKICAgICAgbmV4dAogICAgfQogIH0KfQp7IHBy aW50IH0KX0FDQVdLCiAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBzZXR1 cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiICIkTElORU5PIiA1CmZpICMg dGVzdCAtbiAiJENPTkZJR19IRUFERVJTIgoKCmV2YWwgc2V0IFggIiAgOkYg JENPTkZJR19GSUxFUyAgOkggJENPTkZJR19IRUFERVJTICAgIDpDICRDT05G SUdfQ09NTUFORFMiCnNoaWZ0CmZvciBhY190YWcKZG8KICBjYXNlICRhY190 YWcgaW4KICA6W0ZITENdKSBhY19tb2RlPSRhY190YWc7IGNvbnRpbnVlOzsK ICBlc2FjCiAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KICA6W0ZITF0qOiop OzsKICA6TCogfCA6Qyo6KikgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgdGFn IFxgJGFjX3RhZyciICIkTElORU5PIiA1OzsKICA6W0ZIXS0pIGFjX3RhZz0t Oi07OwogIDpbRkhdKikgYWNfdGFnPSRhY190YWc6JGFjX3RhZy5pbjs7CiAg ZXNhYwogIGFjX3NhdmVfSUZTPSRJRlMKICBJRlM9OgogIHNldCB4ICRhY190 YWcKICBJRlM9JGFjX3NhdmVfSUZTCiAgc2hpZnQKICBhY19maWxlPSQxCiAg c2hpZnQKCiAgY2FzZSAkYWNfbW9kZSBpbgogIDpMKSBhY19zb3VyY2U9JDE7 OwogIDpbRkhdKQogICAgYWNfZmlsZV9pbnB1dHM9CiAgICBmb3IgYWNfZgog ICAgZG8KICAgICAgY2FzZSAkYWNfZiBpbgogICAgICAtKSBhY19mPSIkYWNf dG1wL3N0ZGluIjs7CiAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmly c3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVl CgkgIyAoaWYgdGhlIHBhdGggaXMgbm90IGFic29sdXRlKS4gIFRoZSBhYnNv bHV0ZSBwYXRoIGNhbm5vdCBiZSBET1Mtc3R5bGUsCgkgIyBiZWNhdXNlICRh Y19mIGNhbm5vdCBjb250YWluIGA6Jy4KCSB0ZXN0IC1mICIkYWNfZiIgfHwK CSAgIGNhc2UgJGFjX2YgaW4KCSAgIFtcXC8kXSopIGZhbHNlOzsKCSAgICop IHRlc3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFj X2YiOzsKCSAgIGVzYWMgfHwKCSAgIGFzX2ZuX2Vycm9yIDEgImNhbm5vdCBm aW5kIGlucHV0IGZpbGU6IFxgJGFjX2YnIiAiJExJTkVOTyIgNTs7CiAgICAg IGVzYWMKICAgICAgY2FzZSAkYWNfZiBpbiAqXCcqKSBhY19mPWAkYXNfZWNo byAiJGFjX2YiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgZXNhYwog ICAgICBhc19mbl9hcHBlbmQgYWNfZmlsZV9pbnB1dHMgIiAnJGFjX2YnIgog ICAgZG9uZQoKICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29u ZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0CiAgICAj IHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJl YWQ6CiAgICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZp Zy5zdGF0dXMuICAqLwogICAgY29uZmlndXJlX2lucHV0PSdHZW5lcmF0ZWQg ZnJvbSAnYAoJICAkYXNfZWNobyAiJCoiIHwgc2VkICdzfF5bXjpdKi98fDtz fDpbXjpdKi98LCB8ZycKCWAnIGJ5IGNvbmZpZ3VyZS4nCiAgICBpZiB0ZXN0 IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCiAgICAgIGNvbmZpZ3VyZV9pbnB1 dD0iJGFjX2ZpbGUuICAkY29uZmlndXJlX2lucHV0IgogICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNyZWF0aW5nICRh Y19maWxlIiA+JjUKJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2Zp bGUiID4mNjt9CiAgICBmaQogICAgIyBOZXV0cmFsaXplIHNwZWNpYWwgY2hh cmFjdGVycyBpbnRlcnByZXRlZCBieSBzZWQgaW4gcmVwbGFjZW1lbnQgc3Ry aW5ncy4KICAgIGNhc2UgJGNvbmZpZ3VyZV9pbnB1dCBpbiAjKAogICAgKlwm KiB8ICpcfCogfCAqXFwqICkKICAgICAgIGFjX3NlZF9jb25mX2lucHV0PWAk YXNfZWNobyAiJGNvbmZpZ3VyZV9pbnB1dCIgfAogICAgICAgc2VkICdzL1tc XFxcJnxdL1xcXFwmL2cnYDs7ICMoCiAgICAqKSBhY19zZWRfY29uZl9pbnB1 dD0kY29uZmlndXJlX2lucHV0OzsKICAgIGVzYWMKCiAgICBjYXNlICRhY190 YWcgaW4KICAgICo6LToqIHwgKjotKSBjYXQgPiIkYWNfdG1wL3N0ZGluIiBc CiAgICAgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlICRh Y19maWxlIiAiJExJTkVOTyIgNSA7OwogICAgZXNhYwogICAgOzsKICBlc2Fj CgogIGFjX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhY19maWxlIiB8fAokYXNf ZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8q JCcgXHwgXAoJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCgkg WCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKCSBYIiRhY19maWxlIiA6 ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKJGFzX2VjaG8gWCIkYWNf ZmlsZSIgfAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpc LyokL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wvXClb Xi9dLiovewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXC9c KSQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXCkuKi97 CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIHMvLiovLi87IHEnYAogIGFz X2Rpcj0iJGFjX2RpciI7IGFzX2ZuX21rZGlyX3AKICBhY19idWlsZGRpcj0u CgpjYXNlICIkYWNfZGlyIiBpbgouKSBhY19kaXJfc3VmZml4PSBhY190b3Bf YnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKKikKICBh Y19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5c LltcXC9dfHwnYAogICMgQSAiLi4iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAk YWNfZGlyX3N1ZmZpeC4KICBhY190b3BfYnVpbGRkaXJfc3ViPWAkYXNfZWNo byAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8 L3x8J2AKICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCiAgIiIpIGFj X3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7Owog ICopICBhY190b3BfYnVpbGRfcHJlZml4PSRhY190b3BfYnVpbGRkaXJfc3Vi LyA7OwogIGVzYWMgOzsKZXNhYwphY19hYnNfdG9wX2J1aWxkZGlyPSRhY19w d2QKYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAojIGZv ciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OgphY190b3BfYnVpbGRkaXI9JGFj X3RvcF9idWlsZF9wcmVmaXgKCmNhc2UgJHNyY2RpciBpbgogIC4pICAjIFdl IGFyZSBidWlsZGluZyBpbiBwbGFjZS4KICAgIGFjX3NyY2Rpcj0uCiAgICBh Y190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXJfc3ViCiAgICBhY19hYnNf dG9wX3NyY2Rpcj0kYWNfcHdkIDs7CiAgW1xcL10qIHwgPzpbXFwvXSogKSAg IyBBYnNvbHV0ZSBuYW1lLgogICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGly X3N1ZmZpeDsKICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgogICAgYWNfYWJz X3RvcF9zcmNkaXI9JHNyY2RpciA7OwogICopICMgUmVsYXRpdmUgbmFtZS4K ICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNf ZGlyX3N1ZmZpeAogICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3By ZWZpeCRzcmNkaXIKICAgIGFjX2Fic190b3Bfc3JjZGlyPSRhY19wd2QvJHNy Y2RpciA7Owplc2FjCmFjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGly JGFjX2Rpcl9zdWZmaXgKCgogIGNhc2UgJGFjX21vZGUgaW4KICA6RikKICAj CiAgIyBDT05GSUdfRklMRQogICMKCiAgY2FzZSAkSU5TVEFMTCBpbgogIFtc XC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElOU1RBTEwgOzsKICAq KSBhY19JTlNUQUxMPSRhY190b3BfYnVpbGRfcHJlZml4JElOU1RBTEwgOzsK ICBlc2FjCiAgYWNfTUtESVJfUD0kTUtESVJfUAogIGNhc2UgJE1LRElSX1Ag aW4KICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwogICovKikgYWNfTUtESVJf UD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRNS0RJUl9QIDs7CiAgZXNhYwojIElm IHRoZSB0ZW1wbGF0ZSBkb2VzIG5vdCBrbm93IGFib3V0IGRhdGFyb290ZGly LCBleHBhbmQgaXQuCiMgRklYTUU6IFRoaXMgaGFjayBzaG91bGQgYmUgcmVt b3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYwLgphY19kYXRhcm9vdGRpcl9o YWNrPTsgYWNfZGF0YXJvb3RkaXJfc2Vlbj0KYWNfc2VkX2RhdGFyb290PScK L2RhdGFyb290ZGlyLyB7CiAgcAogIHEKfQovQGRhdGFkaXJAL3AKL0Bkb2Nk aXJAL3AKL0BpbmZvZGlyQC9wCi9AbG9jYWxlZGlyQC9wCi9AbWFuZGlyQC9w JwpjYXNlIGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRh Y19maWxlX2lucHV0cyJgIGluCipkYXRhcm9vdGRpciopIGFjX2RhdGFyb290 ZGlyX3NlZW49eWVzOzsKKkBkYXRhZGlyQCp8KkBkb2NkaXJAKnwqQGluZm9k aXJAKnwqQGxvY2FsZWRpckAqfCpAbWFuZGlyQCopCiAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkYWNfZmls ZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNl dHRpbmciID4mNQokYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmls ZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNl dHRpbmciID4mMjt9CiAgYWNfZGF0YXJvb3RkaXJfaGFjaz0nCiAgcyZAZGF0 YWRpckAmJHtkYXRhcm9vdGRpcn0mZwogIHMmQGRvY2RpckAmJHtkYXRhcm9v dGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfSZnCiAgcyZAaW5mb2RpckAm JHtkYXRhcm9vdGRpcn0vaW5mbyZnCiAgcyZAbG9jYWxlZGlyQCYke2RhdGFy b290ZGlyfS9sb2NhbGUmZwogIHMmQG1hbmRpckAmJHtkYXRhcm9vdGRpcn0v bWFuJmcKICBzJlwke2RhdGFyb290ZGlyfSYke3ByZWZpeH0vc2hhcmUmZycg OzsKZXNhYwphY19zZWRfZXh0cmE9IgoKOnQKL0BbYS16QS1aX11bYS16QS1a XzAtOV0qQC8hYgpzfEBjb25maWd1cmVfaW5wdXRAfCRhY19zZWRfY29uZl9p bnB1dHw7dCB0CnMmQHRvcF9idWlsZGRpckAmJGFjX3RvcF9idWlsZGRpcl9z dWImO3QgdApzJkB0b3BfYnVpbGRfcHJlZml4QCYkYWNfdG9wX2J1aWxkX3By ZWZpeCY7dCB0CnMmQHNyY2RpckAmJGFjX3NyY2RpciY7dCB0CnMmQGFic19z cmNkaXJAJiRhY19hYnNfc3JjZGlyJjt0IHQKcyZAdG9wX3NyY2RpckAmJGFj X3RvcF9zcmNkaXImO3QgdApzJkBhYnNfdG9wX3NyY2RpckAmJGFjX2Fic190 b3Bfc3JjZGlyJjt0IHQKcyZAYnVpbGRkaXJAJiRhY19idWlsZGRpciY7dCB0 CnMmQGFic19idWlsZGRpckAmJGFjX2Fic19idWlsZGRpciY7dCB0CnMmQGFi c190b3BfYnVpbGRkaXJAJiRhY19hYnNfdG9wX2J1aWxkZGlyJjt0IHQKcyZA SU5TVEFMTEAmJGFjX0lOU1RBTEwmO3QgdApzJkBNS0RJUl9QQCYkYWNfTUtE SVJfUCY7dCB0CiRhY19kYXRhcm9vdGRpcl9oYWNrCiIKZXZhbCBzZWQgXCJc JGFjX3NlZF9leHRyYVwiICIkYWNfZmlsZV9pbnB1dHMiIHwgJEFXSyAtZiAi JGFjX3RtcC9zdWJzLmF3ayIgXAogID4kYWNfdG1wL291dCB8fCBhc19mbl9l cnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8i IDUKCnRlc3QgLXogIiRhY19kYXRhcm9vdGRpcl9oYWNrJGFjX2RhdGFyb290 ZGlyX3NlZW4iICYmCiAgeyBhY19vdXQ9YHNlZCAtbiAnL1wke2RhdGFyb290 ZGlyfS9wJyAiJGFjX3RtcC9vdXQiYDsgdGVzdCAtbiAiJGFjX291dCI7IH0g JiYKICB7IGFjX291dD1gc2VkIC1uICcvXlsJIF0qZGF0YXJvb3RkaXJbCSBd KjoqPS9wJyBcCiAgICAgICIkYWNfdG1wL291dCJgOyB0ZXN0IC16ICIkYWNf b3V0IjsgfSAmJgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVu Y2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCndoaWNoIHNlZW1z IHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgZGVm aW5lZCIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxl IGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFy b290ZGlyJwp3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2Ug bWFrZSBzdXJlIGl0IGlzIGRlZmluZWQiID4mMjt9CgogIHJtIC1mICIkYWNf dG1wL3N0ZGluIgogIGNhc2UgJGFjX2ZpbGUgaW4KICAtKSBjYXQgIiRhY190 bXAvb3V0IiAmJiBybSAtZiAiJGFjX3RtcC9vdXQiOzsKICAqKSBybSAtZiAi JGFjX2ZpbGUiICYmIG12ICIkYWNfdG1wL291dCIgIiRhY19maWxlIjs7CiAg ZXNhYyBcCiAgfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUg JGFjX2ZpbGUiICIkTElORU5PIiA1CiA7OwogIDpIKQogICMKICAjIENPTkZJ R19IRUFERVIKICAjCiAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhl bgogICAgewogICAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAg Ki8iIFwKICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJGFjX3RtcC9kZWZpbmVz LmF3ayInICIkYWNfZmlsZV9pbnB1dHMiCiAgICB9ID4iJGFjX3RtcC9jb25m aWcuaCIgXAogICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNy ZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKICAgIGlmIGRpZmYgIiRhY19m aWxlIiAiJGFjX3RtcC9jb25maWcuaCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CiAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKJGFzX2VjaG8gIiRhc19t ZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQogICAgZWxzZQogICAg ICBybSAtZiAiJGFjX2ZpbGUiCiAgICAgIG12ICIkYWNfdG1wL2NvbmZpZy5o IiAiJGFjX2ZpbGUiIFwKCXx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3Qg Y3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNQogICAgZmkKICBlbHNlCiAg ICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKICAgICAg JiYgZXZhbCAnJEFXSyAtZiAiJGFjX3RtcC9kZWZpbmVzLmF3ayInICIkYWNf ZmlsZV9pbnB1dHMiIFwKICAgICAgfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxk IG5vdCBjcmVhdGUgLSIgIiRMSU5FTk8iIDUKICBmaQojIENvbXB1dGUgIiRh Y19maWxlIidzIGluZGV4IGluICRjb25maWdfaGVhZGVycy4KX2FtX2FyZz0i JGFjX2ZpbGUiCl9hbV9zdGFtcF9jb3VudD0xCmZvciBfYW1faGVhZGVyIGlu ICRjb25maWdfaGVhZGVycyA6OyBkbwogIGNhc2UgJF9hbV9oZWFkZXIgaW4K ICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiApCiAgICAgIGJyZWFrIDs7CiAg ICAqICkKICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBf Y291bnQgKyAxYCA7OwogIGVzYWMKZG9uZQplY2hvICJ0aW1lc3RhbXAgZm9y ICRfYW1fYXJnIiA+YCRhc19kaXJuYW1lIC0tICIkX2FtX2FyZyIgfHwKJGFz X2V4cHIgWCIkX2FtX2FyZyIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSov KiQnIFx8IFwKCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpW14vXScgXHwgXAoJ IFgiJF9hbV9hcmciIDogJ1hcKC8vXCkkJyBcfCBcCgkgWCIkX2FtX2FyZyIg OiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CiRhc19lY2hvIFgiJF9h bV9hcmciIHwKICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10q XC8qJC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cL1wp W14vXS4qL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wv XCkkL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wpLiov ewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICBzLy4qLy4vOyBxJ2Avc3Rh bXAtaCRfYW1fc3RhbXBfY291bnQKIDs7CgogIDpDKSAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBleGVjdXRpbmcgJGFjX2Zp bGUgY29tbWFuZHMiID4mNQokYXNfZWNobyAiJGFzX21lOiBleGVjdXRpbmcg JGFjX2ZpbGUgY29tbWFuZHMiID4mNjt9CiA7OwogIGVzYWMKCgogIGNhc2Ug JGFjX2ZpbGUkYWNfbW9kZSBpbgogICAgInRlc3RzL2F0Y29uZmlnIjpDKSBj YXQgPnRlc3RzL2F0Y29uZmlnIDw8QVRFT0YKIyBDb25maWd1cmFibGUgdmFy aWFibGUgdmFsdWVzIGZvciBidWlsZGluZyB0ZXN0IHN1aXRlcy4KIyBHZW5l cmF0ZWQgYnkgJDAuCiMgQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgoKIyBUaGUgdGVzdCBzdWl0ZSB3aWxsIGRl ZmluZSB0b3Bfc3JjZGlyPSRhdF90b3Bfc3JjZGlyLy4uLy4uIGV0Yy4KYXRf dGVzdGRpcj0ndGVzdHMnCmFic19idWlsZGRpcj0nJGFjX2Fic19idWlsZGRp cicKYXRfc3JjZGlyPSckYWNfc3JjZGlyJwphYnNfc3JjZGlyPSckYWNfYWJz X3NyY2RpcicKYXRfdG9wX3NyY2Rpcj0nJGFjX3RvcF9zcmNkaXInCmFic190 b3Bfc3JjZGlyPSckYWNfYWJzX3RvcF9zcmNkaXInCmF0X3RvcF9idWlsZF9w cmVmaXg9JyRhY190b3BfYnVpbGRfcHJlZml4JwphYnNfdG9wX2J1aWxkZGly PSckYWNfYWJzX3RvcF9idWlsZGRpcicKCiMgQmFja3dhcmQgY29tcGF0aWJp bGl0eSB3aXRoIEF1dG90ZXN0IDw9IDIuNTliOgphdF90b3BfYnVpbGRkaXI9 XCRhdF90b3BfYnVpbGRfcHJlZml4CgpBVVRPVEVTVF9QQVRIPSd0ZXN0cycK ClNIRUxMPVwke0NPTkZJR19TSEVMTC0nJFNIRUxMJ30KQVRFT0YKIDs7CiAg ICAiZGVwZmlsZXMiOkMpIHRlc3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8 IHsKICAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMg Zm9yIGV2YWwsIGJ1dCBub3Qgd2hlbiBmaWxlcwogICMgYXJlIGxpc3RlZCB3 aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFi bGUgdGhlIGV2YWwKICAjIGlmIHdlIGRldGVjdCB0aGUgcXVvdGluZy4KICBj YXNlICRDT05GSUdfRklMRVMgaW4KICAqXCcqKSBldmFsIHNldCB4ICIkQ09O RklHX0ZJTEVTIiA7OwogICopICAgc2V0IHggJENPTkZJR19GSUxFUyA7Owog IGVzYWMKICBzaGlmdAogIGZvciBtZgogIGRvCiAgICAjIFN0cmlwIE1GIHNv IHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgogICAgbWY9 YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKICAgICMgQ2hlY2sg d2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmls ZSBvciBub3QuCiAgICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmls ZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0CiAgICAjIHNvbWUgcGVvcGxl IHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUg Y29udGVudC4KICAgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90 IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCiAgICAjIGVhY2gg TWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNo IGZpbGUgdG8gc2F5IHNvLgogICAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmls ZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKICAg ICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUg dW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgogICAgaWYgc2VkIC1uICdzLF4j LipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBY ID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICBkaXJwYXJ0PWAkYXNfZGly bmFtZSAtLSAiJG1mIiB8fAokYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9d XCkvLypbXi9dW14vXSovKiQnIFx8IFwKCSBYIiRtZiIgOiAnWFwoLy9cKVte L10nIFx8IFwKCSBYIiRtZiIgOiAnWFwoLy9cKSQnIFx8IFwKCSBYIiRtZiIg OiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CiRhc19lY2hvIFgiJG1m IiB8CiAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQv ewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXC9cKVteL10u Ki97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cL1wpJC97 CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cKS4qL3sKCSAg ICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgcy8uKi8uLzsgcSdgCiAgICBlbHNl CiAgICAgIGNvbnRpbnVlCiAgICBmaQogICAgIyBFeHRyYWN0IHRoZSBkZWZp bml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUK ICAgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtl Jy4KICAgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRt ZiJgCiAgICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQogICAgYW1f X2luY2x1ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUgPSAvL3AnIDwgIiRt ZiJgCiAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKICAg IGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRt ZiJgCiAgICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5 IG9yIGFuIHVuZGVyc2NvcmU7IGV4cGFuZCBpdAogICAgVT1gc2VkIC1uICdz L15VID0gLy9wJyA8ICIkbWYiYAogICAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5 IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAog ICAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2Vk IHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhlCiAgICAjIHNpbXBsZXN0IGFwcHJv YWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVl IGluIHRoZQogICAgIyBleHBhbnNpb24uCiAgICBmb3IgZmlsZSBpbiBgc2Vk IC1uICIKICAgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERF UERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCgkgc2Vk IC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyci JFUiJy9nJ2A7IGRvCiAgICAgICMgTWFrZSBzdXJlIHRoZSBkaXJlY3Rvcnkg ZXhpc3RzLgogICAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29u dGludWUKICAgICAgZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRmaWxlIiB8fAok YXNfZXhwciBYIiRmaWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8q JCcgXHwgXAoJIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCgkgWCIk ZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKCSBYIiRmaWxlIiA6ICdYXCgvXCkn IFx8IC4gMj4vZGV2L251bGwgfHwKJGFzX2VjaG8gWCIkZmlsZSIgfAogICAg c2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKCSAgICBz Ly9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wvXClbXi9dLiovewoJICAg IHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXC9cKSQvewoJICAgIHMv L1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXCkuKi97CgkgICAgcy8vXDEv CgkgICAgcQoJICB9CgkgIHMvLiovLi87IHEnYAogICAgICBhc19kaXI9JGRp cnBhcnQvJGZkaXI7IGFzX2ZuX21rZGlyX3AKICAgICAgIyBlY2hvICJjcmVh dGluZyAkZGlycGFydC8kZmlsZSIKICAgICAgZWNobyAnIyBkdW1teScgPiAi JGRpcnBhcnQvJGZpbGUiCiAgICBkb25lCiAgZG9uZQp9CiA7OwogICAgImxp YnRvb2wiOkMpCgogICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNo LCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgogICAgIyBj b21tYW5kcyB0aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMu CiAgICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgog ICAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAogICAgZmkKCiAgICBjZmdmaWxl PSIke29maWxlfVQiCiAgICB0cmFwICIkUk0gXCIkY2ZnZmlsZVwiOyBleGl0 IDEiIDEgMiAxNQogICAgJFJNICIkY2ZnZmlsZSIKCiAgICBjYXQgPDxfTFRf RU9GID4+ICIkY2ZnZmlsZSIKIyEgJFNIRUxMCgojIGAkRUNITyAiJG9maWxl IiB8IHNlZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGli cmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgojIEdlbmVyYXRlZCBh dXRvbWF0aWNhbGx5IGJ5ICRhc19tZSAoJFBBQ0tBR0UkVElNRVNUQU1QKSAk VkVSU0lPTgojIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhv c3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6CiMg Tk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6 IGxvb2sgYXQgbHRtYWluLnNoLgojCiMgICBDb3B5cmlnaHQgKEMpIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIw MDUsCiMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks IDIwMTAsIDIwMTEgRnJlZSBTb2Z0d2FyZQojICAgICAgICAgICAgICAgICBG b3VuZGF0aW9uLCBJbmMuCiMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdr ZWl0LCAxOTk2CiMKIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0 b29sLgojCiMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiMgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMK IyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMiBvZgojIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgQXMgYSBzcGVjaWFs IGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Us CiMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBw cm9ncmFtIG9yIGxpYnJhcnkgdGhhdAojIGlzIGJ1aWx0IHVzaW5nIEdOVSBM aWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQoj IHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhl IHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgojCiMgR05VIExpYnRvb2wgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29s OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5CiMgY2Fu IGJlIGRvd25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvZ3BsLmh0bWwsIG9yCiMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAojIDUxIEZyYW5rbGlu IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg VVNBLgoKCiMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlv bnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgphdmFpbGFibGVfdGFncz0i Q1hYIEY3NyBGQyBHTyBHQ0ogUkMgIgoKIyAjIyMgQkVHSU4gTElCVE9PTCBD T05GSUcKCiMgV2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2Vk PwptYWNyb192ZXJzaW9uPSRtYWNyb192ZXJzaW9uCm1hY3JvX3JldmlzaW9u PSRtYWNyb19yZXZpc2lvbgoKIyBBc3NlbWJsZXIgcHJvZ3JhbS4KQVM9JGx0 X0FTCgojIERMTCBjcmVhdGlvbiBwcm9ncmFtLgpETExUT09MPSRsdF9ETExU T09MCgojIE9iamVjdCBkdW1wZXIgcHJvZ3JhbS4KT0JKRFVNUD0kbHRfT0JK RFVNUAoKIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFy aWVzLgpidWlsZF9saWJ0b29sX2xpYnM9JGVuYWJsZV9zaGFyZWQKCiMgV2hl dGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KYnVpbGRf b2xkX2xpYnM9JGVuYWJsZV9zdGF0aWMKCiMgV2hhdCB0eXBlIG9mIG9iamVj dHMgdG8gYnVpbGQuCnBpY19tb2RlPSRwaWNfbW9kZQoKIyBXaGV0aGVyIG9y IG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCmZhc3Rf aW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAoKIyBTaGVsbCB0byB1c2Ug d2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzLgpTSEVMTD0kbHRfU0hFTEwK CiMgQW4gZWNobyBwcm9ncmFtIHRoYXQgcHJvdGVjdHMgYmFja3NsYXNoZXMu CkVDSE89JGx0X0VDSE8KCiMgVGhlIFBBVEggc2VwYXJhdG9yIGZvciB0aGUg YnVpbGQgc3lzdGVtLgpQQVRIX1NFUEFSQVRPUj0kbHRfUEFUSF9TRVBBUkFU T1IKCiMgVGhlIGhvc3Qgc3lzdGVtLgpob3N0X2FsaWFzPSRob3N0X2FsaWFz Cmhvc3Q9JGhvc3QKaG9zdF9vcz0kaG9zdF9vcwoKIyBUaGUgYnVpbGQgc3lz dGVtLgpidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKYnVpbGQ9JGJ1aWxkCmJ1 aWxkX29zPSRidWlsZF9vcwoKIyBBIHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBu b3QgdHJ1bmNhdGUgb3V0cHV0LgpTRUQ9JGx0X1NFRAoKIyBTZWQgdGhhdCBo ZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hvKDEp IG9wdGlvbnMgbGlrZSAtbi4KWHNlZD0iXCRTRUQgLWUgMXMvXlgvLyIKCiMg QSBncmVwIHByb2dyYW0gdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMuCkdSRVA9 JGx0X0dSRVAKCiMgQW4gRVJFIG1hdGNoZXIuCkVHUkVQPSRsdF9FR1JFUAoK IyBBIGxpdGVyYWwgc3RyaW5nIG1hdGNoZXIuCkZHUkVQPSRsdF9GR1JFUAoK IyBBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rlci4KTk09JGx0 X05NCgojIFdoZXRoZXIgd2UgbmVlZCBzb2Z0IG9yIGhhcmQgbGlua3MuCkxO X1M9JGx0X0xOX1MKCiMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2Yg YSBjb21tYW5kPwptYXhfY21kX2xlbj0kbWF4X2NtZF9sZW4KCiMgT2JqZWN0 IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIpLgpvYmpleHQ9JGFjX29iamV4 dAoKIyBFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCmV4 ZWV4dD0kZXhlZXh0CgojIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRz ICJ1bnNldCIuCmx0X3Vuc2V0PSRsdF91bnNldAoKIyB0dXJuIHNwYWNlcyBp bnRvIG5ld2xpbmVzLgpTUDJOTD0kbHRfbHRfU1AyTkwKCiMgdHVybiBuZXds aW5lcyBpbnRvIHNwYWNlcy4KTkwyU1A9JGx0X2x0X05MMlNQCgojIGNvbnZl cnQgXCRidWlsZCBmaWxlIG5hbWVzIHRvIFwkaG9zdCBmb3JtYXQuCnRvX2hv c3RfZmlsZV9jbWQ9JGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQKCiMgY29udmVy dCBcJGJ1aWxkIGZpbGVzIHRvIHRvb2xjaGFpbiBmb3JtYXQuCnRvX3Rvb2xf ZmlsZV9jbWQ9JGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQKCiMgTWV0aG9kIHRv IGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVk IG9iamVjdHMuCmRlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2No ZWNrX21ldGhvZAoKIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hl Y2tfbWV0aG9kID0gImZpbGVfbWFnaWMiLgpmaWxlX21hZ2ljX2NtZD0kbHRf ZmlsZV9tYWdpY19jbWQKCiMgSG93IHRvIGZpbmQgcG90ZW50aWFsIGZpbGVz IHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyIuCmZp bGVfbWFnaWNfZ2xvYj0kbHRfZmlsZV9tYWdpY19nbG9iCgojIEZpbmQgcG90 ZW50aWFsIGZpbGVzIHVzaW5nIG5vY2FzZWdsb2Igd2hlbiBkZXBsaWJzX2No ZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIi4Kd2FudF9ub2Nhc2VnbG9iPSRs dF93YW50X25vY2FzZWdsb2IKCiMgQ29tbWFuZCB0byBhc3NvY2lhdGUgc2hh cmVkIGFuZCBsaW5rIGxpYnJhcmllcy4Kc2hhcmVkbGliX2Zyb21fbGlua2xp Yl9jbWQ9JGx0X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kCgojIFRoZSBh cmNoaXZlci4KQVI9JGx0X0FSCgojIEZsYWdzIHRvIGNyZWF0ZSBhbiBhcmNo aXZlLgpBUl9GTEFHUz0kbHRfQVJfRkxBR1MKCiMgSG93IHRvIGZlZWQgYSBm aWxlIGxpc3RpbmcgdG8gdGhlIGFyY2hpdmVyLgphcmNoaXZlcl9saXN0X3Nw ZWM9JGx0X2FyY2hpdmVyX2xpc3Rfc3BlYwoKIyBBIHN5bWJvbCBzdHJpcHBp bmcgcHJvZ3JhbS4KU1RSSVA9JGx0X1NUUklQCgojIENvbW1hbmRzIHVzZWQg dG8gaW5zdGFsbCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KUkFOTElCPSRsdF9S QU5MSUIKb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFs bF9jbWRzCm9sZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0dW5p bnN0YWxsX2NtZHMKCiMgV2hldGhlciB0byB1c2UgYSBsb2NrIGZvciBvbGQg YXJjaGl2ZSBleHRyYWN0aW9uLgpsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rp b249JGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbgoKIyBBIEMgY29tcGls ZXIuCkxUQ0M9JGx0X0NDCgojIExUQ0MgY29tcGlsZXIgZmxhZ3MuCkxUQ0ZM QUdTPSRsdF9DRkxBR1MKCiMgVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBw cm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lcy4K Z2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF9waXBlCgojIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJv cGVyIEMgZGVjbGFyYXRpb24uCmdsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0 X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCgojIFRyYW5zZm9y bSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpci4K Z2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKCiMgVHJhbnNmb3Jt IHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyIHdo ZW4gbGliIHByZWZpeCBpcyBuZWVkZWQuCmdsb2JhbF9zeW1ib2xfdG9fY19u YW1lX2FkZHJlc3NfbGliX3ByZWZpeD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeAoKIyBTcGVjaWZ5 IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMgZm9yIFwkTk0uCm5t X2ZpbGVfbGlzdF9zcGVjPSRsdF9ubV9maWxlX2xpc3Rfc3BlYwoKIyBUaGUg cm9vdCB3aGVyZSB0byBzZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJyYXJpZXMs YW5kIGluIHdoaWNoIG91ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxl ZC4KbHRfc3lzcm9vdD0kbHRfc3lzcm9vdAoKIyBUaGUgbmFtZSBvZiB0aGUg ZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wgZmls ZXMuCm9iamRpcj0kb2JqZGlyCgojIFVzZWQgdG8gZXhhbWluZSBsaWJyYXJp ZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgd2l0aCAiZmlsZSIuCk1B R0lDX0NNRD0kTUFHSUNfQ01ECgojIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVu IGRvaW5nIGNvbXBpbGF0aW9uPwpuZWVkX2xvY2tzPSRsdF9uZWVkX2xvY2tz CgojIE1hbmlmZXN0IHRvb2wuCk1BTklGRVNUX1RPT0w9JGx0X01BTklGRVNU X1RPT0wKCiMgVG9vbCB0byBtYW5pcHVsYXRlIGFyY2hpdmVkIERXQVJGIGRl YnVnIHN5bWJvbCBmaWxlcyBvbiBNYWMgT1MgWC4KRFNZTVVUSUw9JGx0X0RT WU1VVElMCgojIFRvb2wgdG8gY2hhbmdlIGdsb2JhbCB0byBsb2NhbCBzeW1i b2xzIG9uIE1hYyBPUyBYLgpOTUVESVQ9JGx0X05NRURJVAoKIyBUb29sIHRv IG1hbmlwdWxhdGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9uIE1hYyBP UyBYLgpMSVBPPSRsdF9MSVBPCgojIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBm b3IgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYLgpPVE9PTD0kbHRfT1RP T0wKCiMgbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciA2NCBiaXQgTWFjaC1P IGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEwLjQuCk9UT09MNjQ9JGx0X09UT09M NjQKCiMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgpsaWJl eHQ9JGxpYmV4dAoKIyBTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5 ICIuc28iKS4Kc2hyZXh0X2NtZHM9JGx0X3NocmV4dF9jbWRzCgojIFRoZSBj b21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBm cm9tIGEgc2hhcmVkIGFyY2hpdmUuCmV4dHJhY3RfZXhwc3ltc19jbWRzPSRs dF9leHRyYWN0X2V4cHN5bXNfY21kcwoKIyBWYXJpYWJsZXMgd2hvc2UgdmFs dWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0 cyBhbmQKIyByZXN0b3JlZCBhdCBsaW5rIHRpbWUuCnZhcmlhYmxlc19zYXZl ZF9mb3JfcmVsaW5rPSRsdF92YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluawoK IyBEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/Cm5l ZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJlZml4CgojIERvIHdlIG5lZWQg YSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Cm5lZWRfdmVyc2lvbj0kbmVlZF92 ZXJzaW9uCgojIExpYnJhcnkgdmVyc2lvbmluZyB0eXBlLgp2ZXJzaW9uX3R5 cGU9JHZlcnNpb25fdHlwZQoKIyBTaGFyZWQgbGlicmFyeSBydW50aW1lIHBh dGggdmFyaWFibGUuCnJ1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgoKIyBTaGFy ZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgpzaGxpYnBhdGhfdmFyPSRzaGxp YnBhdGhfdmFyCgojIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhl IGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8Kc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgK CiMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCmxpYm5hbWVfc3Bl Yz0kbHRfbGlibmFtZV9zcGVjCgojIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4g IEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlu a3MuCiMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtl ciBmaW5kcyB3aXRoIC1sTkFNRQpsaWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xp YnJhcnlfbmFtZXNfc3BlYwoKIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGli cmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4Kc29uYW1l X3NwZWM9JGx0X3NvbmFtZV9zcGVjCgojIFBlcm1pc3Npb24gbW9kZSBvdmVy cmlkZSBmb3IgaW5zdGFsbGF0aW9uIG9mIHNoYXJlZCBsaWJyYXJpZXMuCmlu c3RhbGxfb3ZlcnJpZGVfbW9kZT0kbHRfaW5zdGFsbF9vdmVycmlkZV9tb2Rl CgojIENvbW1hbmQgdG8gdXNlIGFmdGVyIGluc3RhbGxhdGlvbiBvZiBhIHNo YXJlZCBhcmNoaXZlLgpwb3N0aW5zdGFsbF9jbWRzPSRsdF9wb3N0aW5zdGFs bF9jbWRzCgojIENvbW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9u IG9mIGEgc2hhcmVkIGFyY2hpdmUuCnBvc3R1bmluc3RhbGxfY21kcz0kbHRf cG9zdHVuaW5zdGFsbF9jbWRzCgojIENvbW1hbmRzIHVzZWQgdG8gZmluaXNo IGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9y eS4KZmluaXNoX2NtZHM9JGx0X2ZpbmlzaF9jbWRzCgojIEFzICJmaW5pc2hf Y21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUg ZXZhbGVkIGJ1dAojIG5vdCBzaG93bi4KZmluaXNoX2V2YWw9JGx0X2Zpbmlz aF9ldmFsCgojIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkg cGF0aHMgaW50byBsaWJyYXJpZXMuCmhhcmRjb2RlX2ludG9fbGlicz0kaGFy ZGNvZGVfaW50b19saWJzCgojIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNo IHBhdGggZm9yIGxpYnJhcmllcy4Kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PSRsdF9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKCiMgUnVuLXRpbWUgc3lz dGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMuCnN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYwoK IyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCmRsb3Blbl9zdXBwb3J0 PSRlbmFibGVfZGxvcGVuCgojIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1z IGlzIHN1cHBvcnRlZC4KZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2Vs ZgoKIyBXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9n cmFtcyBpcyBzdXBwb3J0ZWQuCmRsb3Blbl9zZWxmX3N0YXRpYz0kZW5hYmxl X2Rsb3Blbl9zZWxmX3N0YXRpYwoKIyBDb21tYW5kcyB0byBzdHJpcCBsaWJy YXJpZXMuCm9sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlwbGliCnN0cmlwbGli PSRsdF9zdHJpcGxpYgoKCiMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxp YnJhcmllcy4KTEQ9JGx0X0xECgojIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJs ZSBvYmplY3QgZmlsZXMuCnJlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZwpy ZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKCiMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfY21k cz0kbHRfb2xkX2FyY2hpdmVfY21kcwoKIyBBIGxhbmd1YWdlIHNwZWNpZmlj IGNvbXBpbGVyLgpDQz0kbHRfY29tcGlsZXIKCiMgSXMgdGhlIGNvbXBpbGVy IHRoZSBHTlUgY29tcGlsZXI/CndpdGhfZ2NjPSRHQ0MKCiMgQ29tcGlsZXIg ZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4Kbm9fYnVpbHRp bl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZwoK IyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJy YXJ5IG9iamVjdHMuCnBpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3Bp YwoKIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNv bXBpbGVyLgp3bD0kbHRfbHRfcHJvZ19jb21waWxlcl93bAoKIyBDb21waWxl ciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgpsaW5rX3N0YXRp Y19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpYwoKIyBEb2VzIGNv bXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlv bnM/CmNvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX28K CiMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hh cmVkIGxpYnJhcmllcy4KYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZl X2NtZHNfbmVlZF9sYwoKIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBz aGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgphbGxv d19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9z aGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMKCiMgQ29tcGlsZXIgZmxhZyB0 byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWMKCiMgQ29tcGls ZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBm cm9tIGFyY2hpdmVzLgp3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMKCiMgV2hldGhlciB0aGUgY29tcGlsZXIg Y29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCmNvbXBp bGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0Cgoj IENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFy Y2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNo aXZlX2Zyb21fbmV3X2NtZHMKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1z dHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNo aXZlLgpvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRfb2xkX2Fy Y2hpdmVfZnJvbV9leHBzeW1zX2NtZHMKCiMgQ29tbWFuZHMgdXNlZCB0byBi dWlsZCBhIHNoYXJlZCBhcmNoaXZlLgphcmNoaXZlX2NtZHM9JGx0X2FyY2hp dmVfY21kcwphcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5 bV9jbWRzCgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBt b2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKIyBhIHNoYXJlZCBh cmNoaXZlLgptb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHMKbW9kdWxlX2V4 cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHMKCiMgV2hldGhlciB3 ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90Lgp3aXRoX2dudV9s ZD0kbHRfd2l0aF9nbnVfbGQKCiMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQg bGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQu CmFsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxh ZwoKIyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMu Cm5vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZwoKIyBG bGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5n IGxpbmtpbmcuCiMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBk b2VzIG5vdCBleGlzdApoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9o YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjCgojIFdoZXRoZXIgd2UgbmVlZCBh IHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1l bnQuCmhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IKCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9s aWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVz CiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX2Rp cmVjdD0kaGFyZGNvZGVfZGlyZWN0CgojIFNldCB0byAieWVzIiBpZiB1c2lu ZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhh cmRjb2RlcwojIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0 aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcwojICJhYnNvbHV0 ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hs aWJwYXRoX3Zhcn0gaWYgdGhlCiMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCmhh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0kaGFyZGNvZGVfZGlyZWN0X2Fic29s dXRlCgojIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeS4KaGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNf TAoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIg ZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIHJlc3Vs dGluZyBiaW5hcnkuCmhhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2Rl X3NobGlicGF0aF92YXIKCiMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEg c2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCiMg aW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVz IGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKIyBhZ2FpbnN0IGl0LgpoYXJkY29k ZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpYwoKIyBTZXQgdG8geWVz IGlmIGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxp YnJhcmllcwojIHRvIHJ1bnRpbWUgcGF0aCBsaXN0Lgppbmhlcml0X3JwYXRo PSRpbmhlcml0X3JwYXRoCgojIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsg YSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmll cy4KbGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGlicwoKIyBTZXQg dG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCmFs d2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzCgoj IFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCmV4cG9y dF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHMKCiMgU3lt Ym9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2Fk ZWQgc3ltYm9scy4KZXhjbHVkZV9leHBzeW1zPSRsdF9leGNsdWRlX2V4cHN5 bXMKCiMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgpp bmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3ltcwoKIyBDb21tYW5k cyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGli cmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KcHJlbGlua19jbWRzPSRsdF9wcmVs aW5rX2NtZHMKCiMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBmaW5pc2hpbmcg bGlua2luZyBwcm9ncmFtcy4KcG9zdGxpbmtfY21kcz0kbHRfcG9zdGxpbmtf Y21kcwoKIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmls ZXMuCmZpbGVfbGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rfc3BlYwoKIyBIb3cg dG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhl Y3V0YWJsZS4KaGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb24KCiMg VGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hl biBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2Vh cmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycwoKIyBEZXBl bmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0 cyBiZWluZyBsaW5rZWQgdG8KIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4K cHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9vYmplY3RzCnBvc3RkZXBfb2Jq ZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCnByZWRlcHM9JGx0X3ByZWRlcHMK cG9zdGRlcHM9JGx0X3Bvc3RkZXBzCgojIFRoZSBsaWJyYXJ5IHNlYXJjaCBw YXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5r aW5nCiMgYSBzaGFyZWQgbGlicmFyeS4KY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGgKCiMgIyMjIEVORCBM SUJUT09MIENPTkZJRwoKX0xUX0VPRgoKICBjYXNlICRob3N0X29zIGluCiAg YWl4MyopCiAgICBjYXQgPDxcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCiMgQUlY IHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3Qy IHByb2dyYW0uICBGb3Igc29tZQojIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBD T0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxl bXMKIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNtb2tlLgppZiB0ZXN0ICJYJHtD T0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KICBDT0xMRUNUX05B TUVTPQogIGV4cG9ydCBDT0xMRUNUX05BTUVTCmZpCl9MVF9FT0YKICAgIDs7 CiAgZXNhYwoKCmx0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgoKCiAg IyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBE SkdQUCBnZXRzIGNvbmZ1c2VkIGlmCiAgIyBpZiBmaW5kcyBtaXhlZCBDUi9M RiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBpbgog ICMgdGV4dCBtb2RlLCBpdCBwcm9wZXJseSBjb252ZXJ0cyBsaW5lcyB0byBD Ui9MRi4gIFRoaXMgYmFzaCBwcm9ibGVtCiAgIyBpcyByZXBvcnRlZGx5IGZp eGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KICBz ZWQgJyRxJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCiAgICAgfHwgKHJt IC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKCiAgaWYgdGVzdCB4IiR4c2lfc2hl bGwiID0geHllczsgdGhlbgogIHNlZCAtZSAnL15mdW5jX2Rpcm5hbWUgKCkk LywvXn0gIyBmdW5jX2Rpcm5hbWUgL2NcCmZ1bmNfZGlybmFtZSAoKVwKe1wK XCAgICBjYXNlICR7MX0gaW5cClwgICAgICAqLyopIGZ1bmNfZGlybmFtZV9y ZXN1bHQ9IiR7MSUvKn0kezJ9IiA7O1wKXCAgICAgICogICkgZnVuY19kaXJu YW1lX3Jlc3VsdD0iJHszfSIgOztcClwgICAgZXNhY1wKfSAjIEV4dGVuZGVk LXNoZWxsIGZ1bmNfZGlybmFtZSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxl IiA+ICRjZmdmaWxlLnRtcCBcCiAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIg IiRjZmdmaWxlIiBcCiAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAi JGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50 bXAiKQp0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2Zh aWw9OgoKCiAgc2VkIC1lICcvXmZ1bmNfYmFzZW5hbWUgKCkkLywvXn0gIyBm dW5jX2Jhc2VuYW1lIC9jXApmdW5jX2Jhc2VuYW1lICgpXAp7XApcICAgIGZ1 bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSJcCn0gIyBFeHRlbmRlZC1z aGVsbCBmdW5jX2Jhc2VuYW1lIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUi ID4gJGNmZ2ZpbGUudG1wIFwKICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAi JGNmZ2ZpbGUiIFwKICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIk Y2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRt cCIpCnRlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFp bD06CgoKICBzZWQgLWUgJy9eZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAo KSQvLC9efSAjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgL2NcCmZ1bmNf ZGlybmFtZV9hbmRfYmFzZW5hbWUgKClcCntcClwgICAgY2FzZSAkezF9IGlu XApcICAgICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsy fSIgOztcClwgICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30i IDs7XApcICAgIGVzYWNcClwgICAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7 MSMjKi99IlwKfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfZGlybmFtZV9hbmRf YmFzZW5hbWUgaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmls ZS50bXAgXAogICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIg XAogICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRt cCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKdGVzdCAw IC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKCgogIHNl ZCAtZSAnL15mdW5jX3N0cmlwbmFtZSAoKSQvLC9efSAjIGZ1bmNfc3RyaXBu YW1lIC9jXApmdW5jX3N0cmlwbmFtZSAoKVwKe1wKXCAgICAjIHBka3NoIDUu Mi4xNCBkb2VzIG5vdCBkbyAke1glJFl9IGNvcnJlY3RseSBpZiBib3RoIFgg YW5kIFkgYXJlXApcICAgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBh c3NpZ24gb25lIHRvIG9yZGluYXJ5IHBhcmFtZXRlciBmaXJzdC5cClwgICAg ZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M31cClwgICAgZnVuY19zdHJpcG5h bWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0IyIkezF9In1cClwg ICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVz dWx0JSIkezJ9In1cCn0gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX3N0cmlwbmFt ZSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBc CiAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCiAgICB8 fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNm Z2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQp0ZXN0IDAgLWVxICQ/ IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgoKCiAgc2VkIC1lICcv XmZ1bmNfc3BsaXRfbG9uZ19vcHQgKCkkLywvXn0gIyBmdW5jX3NwbGl0X2xv bmdfb3B0IC9jXApmdW5jX3NwbGl0X2xvbmdfb3B0ICgpXAp7XApcICAgIGZ1 bmNfc3BsaXRfbG9uZ19vcHRfbmFtZT0kezElJT0qfVwKXCAgICBmdW5jX3Nw bGl0X2xvbmdfb3B0X2FyZz0kezEjKj19XAp9ICMgRXh0ZW5kZWQtc2hlbGwg ZnVuY19zcGxpdF9sb25nX29wdCBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxl IiA+ICRjZmdmaWxlLnRtcCBcCiAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIg IiRjZmdmaWxlIiBcCiAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAi JGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50 bXAiKQp0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2Zh aWw9OgoKCiAgc2VkIC1lICcvXmZ1bmNfc3BsaXRfc2hvcnRfb3B0ICgpJC8s L159ICMgZnVuY19zcGxpdF9zaG9ydF9vcHQgL2NcCmZ1bmNfc3BsaXRfc2hv cnRfb3B0ICgpXAp7XApcICAgIGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZz0k ezEjPz99XApcICAgIGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWU9JHsxJSIk ZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnIn1cCn0gIyBFeHRlbmRlZC1zaGVs bCBmdW5jX3NwbGl0X3Nob3J0X29wdCBpbXBsZW1lbnRhdGlvbicgIiRjZmdm aWxlIiA+ICRjZmdmaWxlLnRtcCBcCiAgJiYgbXYgLWYgIiRjZmdmaWxlLnRt cCIgIiRjZmdmaWxlIiBcCiAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBj cCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmls ZS50bXAiKQp0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNl X2ZhaWw9OgoKCiAgc2VkIC1lICcvXmZ1bmNfbG8ybyAoKSQvLC9efSAjIGZ1 bmNfbG8ybyAvY1wKZnVuY19sbzJvICgpXAp7XApcICAgIGNhc2UgJHsxfSBp blwKXCAgICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtv YmpleHR9IDs7XApcICAgICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9 IDs7XApcICAgIGVzYWNcCn0gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2xvMm8g aW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAog ICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAogICAgfHwg KHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdm aWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKdGVzdCAwIC1lcSAkPyB8 fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKCgogIHNlZCAtZSAnL15m dW5jX3hmb3JtICgpJC8sL159ICMgZnVuY194Zm9ybSAvY1wKZnVuY194Zm9y bSAoKVwKe1wKICAgIGZ1bmNfeGZvcm1fcmVzdWx0PSR7MSUuKn0ubG9cCn0g IyBFeHRlbmRlZC1zaGVsbCBmdW5jX3hmb3JtIGltcGxlbWVudGF0aW9uJyAi JGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKICAmJiBtdiAtZiAiJGNmZ2Zp bGUudG1wIiAiJGNmZ2ZpbGUiIFwKICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUi ICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRj ZmdmaWxlLnRtcCIpCnRlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3Jl cGxhY2VfZmFpbD06CgoKICBzZWQgLWUgJy9eZnVuY19hcml0aCAoKSQvLC9e fSAjIGZ1bmNfYXJpdGggL2NcCmZ1bmNfYXJpdGggKClcCntcCiAgICBmdW5j X2FyaXRoX3Jlc3VsdD0kKCggJCogKSlcCn0gIyBFeHRlbmRlZC1zaGVsbCBm dW5jX2FyaXRoIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2Zp bGUudG1wIFwKICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUi IFwKICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50 bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCnRlc3Qg MCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06CgoKICBz ZWQgLWUgJy9eZnVuY19sZW4gKCkkLywvXn0gIyBmdW5jX2xlbiAvY1wKZnVu Y19sZW4gKClcCntcCiAgICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX1cCn0gIyBF eHRlbmRlZC1zaGVsbCBmdW5jX2xlbiBpbXBsZW1lbnRhdGlvbicgIiRjZmdm aWxlIiA+ICRjZmdmaWxlLnRtcCBcCiAgJiYgbXYgLWYgIiRjZmdmaWxlLnRt cCIgIiRjZmdmaWxlIiBcCiAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBj cCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmls ZS50bXAiKQp0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNl X2ZhaWw9OgoKZmkKCmlmIHRlc3QgeCIkbHRfc2hlbGxfYXBwZW5kIiA9IHh5 ZXM7IHRoZW4KICBzZWQgLWUgJy9eZnVuY19hcHBlbmQgKCkkLywvXn0gIyBm dW5jX2FwcGVuZCAvY1wKZnVuY19hcHBlbmQgKClcCntcCiAgICBldmFsICIk ezF9Kz1cXCR7Mn0iXAp9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19hcHBlbmQg aW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAog ICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAogICAgfHwg KHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdm aWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKdGVzdCAwIC1lcSAkPyB8 fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKCgogIHNlZCAtZSAnL15m dW5jX2FwcGVuZF9xdW90ZWQgKCkkLywvXn0gIyBmdW5jX2FwcGVuZF9xdW90 ZWQgL2NcCmZ1bmNfYXBwZW5kX3F1b3RlZCAoKVwKe1wKXCAgICBmdW5jX3F1 b3RlX2Zvcl9ldmFsICIkezJ9IlwKXCAgICBldmFsICIkezF9Kz1cXFxcIFxc JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IlwKfSAjIEV4dGVuZGVkLXNo ZWxsIGZ1bmNfYXBwZW5kX3F1b3RlZCBpbXBsZW1lbnRhdGlvbicgIiRjZmdm aWxlIiA+ICRjZmdmaWxlLnRtcCBcCiAgJiYgbXYgLWYgIiRjZmdmaWxlLnRt cCIgIiRjZmdmaWxlIiBcCiAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBj cCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmls ZS50bXAiKQp0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNl X2ZhaWw9OgoKCiAgIyBTYXZlIGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlvbiBj YWxsIHdoZXJlIHBvc3NpYmxlIGJ5IGRpcmVjdCB1c2Ugb2YgJys9JwogIHNl ZCAtZSAncyVmdW5jX2FwcGVuZCBcKFthLXpBLVpfXVx7MSxcfVwpICIlXDEr PSIlZycgJGNmZ2ZpbGUgPiAkY2ZnZmlsZS50bXAgXAogICAgJiYgbXYgLWYg IiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCiAgICAgIHx8IChybSAtZiAi JGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYg cm0gLWYgIiRjZmdmaWxlLnRtcCIpCiAgdGVzdCAwIC1lcSAkPyB8fCBfbHRf ZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKZWxzZQogICMgU2F2ZSBhIGBmdW5j X2FwcGVuZCcgZnVuY3Rpb24gY2FsbCBldmVuIHdoZW4gJys9JyBpcyBub3Qg YXZhaWxhYmxlCiAgc2VkIC1lICdzJWZ1bmNfYXBwZW5kIFwoW2EtekEtWl9d XHsxLFx9XCkgIiVcMT0iJFwxJWcnICRjZmdmaWxlID4gJGNmZ2ZpbGUudG1w IFwKICAgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAog ICAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1w IiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQogIHRlc3Qg MCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06CmZpCgpp ZiB0ZXN0IHgiJF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWwiID0geCI6Ijsg dGhlbgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogV0FSTklORzogVW5hYmxlIHRvIHN1YnN0aXR1dGUgZXh0ZW5kZWQgc2hl bGwgZnVuY3Rpb25zIGluICRvZmlsZSIgPiY1CiRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IFVuYWJsZSB0byBzdWJzdGl0dXRlIGV4dGVuZGVkIHNoZWxs IGZ1bmN0aW9ucyBpbiAkb2ZpbGUiID4mMjt9CmZpCgoKICAgbXYgLWYgIiRj ZmdmaWxlIiAiJG9maWxlIiB8fAogICAgKHJtIC1mICIkb2ZpbGUiICYmIGNw ICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKICBj aG1vZCAreCAiJG9maWxlIgoKCiAgICBjYXQgPDxfTFRfRU9GID4+ICIkb2Zp bGUiCgojICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IENYWAoKIyBU aGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgpMRD0kbHRfTERf Q1hYCgojIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMu CnJlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZ19DWFgKcmVsb2FkX2NtZHM9 JGx0X3JlbG9hZF9jbWRzX0NYWAoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxk IGFuIG9sZC1zdHlsZSBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9jbWRzPSRsdF9v bGRfYXJjaGl2ZV9jbWRzX0NYWAoKIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNv bXBpbGVyLgpDQz0kbHRfY29tcGlsZXJfQ1hYCgojIElzIHRoZSBjb21waWxl ciB0aGUgR05VIGNvbXBpbGVyPwp3aXRoX2djYz0kR0NDX0NYWAoKIyBDb21w aWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgpub19i dWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnX0NYWAoKIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWls ZGluZyBsaWJyYXJ5IG9iamVjdHMuCnBpY19mbGFnPSRsdF9sdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFgKCiMgSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0 aHJvdWdoIHRoZSBjb21waWxlci4Kd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJf d2xfQ1hYCgojIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxp bmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJf c3RhdGljX0NYWAoKIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1 cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CmNvbXBpbGVyX2Nfbz0kbHRfbHRf Y3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYCgojIFdoZXRoZXIgb3Igbm90IHRv IGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCmJ1aWxk X2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYCgoj IFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4g cnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93X2xpYnRvb2xfbGlic193 aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lc19DWFgKCiMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZs ZXhpdmUgZGxvcGVucy4KZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9l eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYCgojIENvbXBpbGVyIGZsYWcg dG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNo aXZlcy4Kd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JGx0X3dob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWAoKIyBXaGV0aGVyIHRoZSBjb21waWxlciBjb3Bl cyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KY29tcGlsZXJf bmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19vYmplY3RfQ1hYCgoj IENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFy Y2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNo aXZlX2Zyb21fbmV3X2NtZHNfQ1hYCgojIENyZWF0ZSBhIHRlbXBvcmFyeSBv bGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQg YXJjaGl2ZS4Kb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X29s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWAoKIyBDb21tYW5kcyB1 c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0k bHRfYXJjaGl2ZV9jbWRzX0NYWAphcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9h cmNoaXZlX2V4cHN5bV9jbWRzX0NYWAoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1 aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxk aW5nCiMgYSBzaGFyZWQgYXJjaGl2ZS4KbW9kdWxlX2NtZHM9JGx0X21vZHVs ZV9jbWRzX0NYWAptb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBz eW1fY21kc19DWFgKCiMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBH TlUgbGQgb3Igbm90Lgp3aXRoX2dudV9sZD0kbHRfd2l0aF9nbnVfbGRfQ1hY CgojIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVu ZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgphbGxvd191bmRlZmluZWRf ZmxhZz0kbHRfYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYCgojIEZsYWcgdGhh dCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4Kbm9fdW5kZWZpbmVk X2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnX0NYWAoKIyBGbGFnIHRvIGhh cmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcu CiMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBl eGlzdApoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWAoKIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5n bGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50Lgpo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0NYWAoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xp Yk5BTUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMK IyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfZGly ZWN0PSRoYXJkY29kZV9kaXJlY3RfQ1hYCgojIFNldCB0byAieWVzIiBpZiB1 c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcwojIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFu ZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcwojICJhYnNv bHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7 c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCiMgbGlicmFyeSBpcyByZWxvY2F0ZWQu CmhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0kaGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlX0NYWAoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgdGhlIC1MRElS IGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgojIGludG8gdGhl IHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX21pbnVzX0w9JGhhcmRjb2Rl X21pbnVzX0xfQ1hYCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBB VEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFgKCiMgU2V0IHRvICJ5ZXMi IGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBo YXJkY29kZXMgRElSCiMgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNl cXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKIyBhZ2Fp bnN0IGl0LgpoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRp Y19DWFgKCiMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBh dGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKIyB0byBydW50aW1lIHBhdGgg bGlzdC4KaW5oZXJpdF9ycGF0aD0kaW5oZXJpdF9ycGF0aF9DWFgKCiMgV2hl dGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwg aXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgpsaW5rX2FsbF9kZXBsaWJzPSRs aW5rX2FsbF9kZXBsaWJzX0NYWAoKIyBTZXQgdG8gInllcyIgaWYgZXhwb3J0 ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCmFsd2F5c19leHBvcnRfc3ltYm9s cz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWAoKIyBUaGUgY29tbWFuZHMg dG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgpleHBvcnRfc3ltYm9sc19jbWRz PSRsdF9leHBvcnRfc3ltYm9sc19jbWRzX0NYWAoKIyBTeW1ib2xzIHRoYXQg c2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xz LgpleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19DWFgKCiMg U3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgppbmNsdWRl X2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3ltc19DWFgKCiMgQ29tbWFuZHMg bmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJh cmllcykgd2l0aCB0ZW1wbGF0ZXMuCnByZWxpbmtfY21kcz0kbHRfcHJlbGlu a19jbWRzX0NYWAoKIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGZpbmlzaGlu ZyBsaW5raW5nIHByb2dyYW1zLgpwb3N0bGlua19jbWRzPSRsdF9wb3N0bGlu a19jbWRzX0NYWAoKIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5w dXQgZmlsZXMuCmZpbGVfbGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rfc3BlY19D WFgKCiMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBp bnRvIGFuIGV4ZWN1dGFibGUuCmhhcmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVf YWN0aW9uX0NYWAoKIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhp cyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCmNv bXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJj aF9kaXJzX0NYWAoKIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFu ZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KIyBjcmVhdGUg YSBzaGFyZWQgbGlicmFyeS4KcHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9v YmplY3RzX0NYWApwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0 c19DWFgKcHJlZGVwcz0kbHRfcHJlZGVwc19DWFgKcG9zdGRlcHM9JGx0X3Bv c3RkZXBzX0NYWAoKIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGlu dGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZwojIGEgc2hh cmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWAoKIyAjIyMgRU5EIExJQlRPT0wg VEFHIENPTkZJRzogQ1hYCl9MVF9FT0YKCgogICAgY2F0IDw8X0xUX0VPRiA+ PiAiJG9maWxlIgoKIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBG NzcKCiMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KTEQ9 JGx0X0xEX0Y3NwoKIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0 IGZpbGVzLgpyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWdfRjc3CnJlbG9h ZF9jbWRzPSRsdF9yZWxvYWRfY21kc19GNzcKCiMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfY21k cz0kbHRfb2xkX2FyY2hpdmVfY21kc19GNzcKCiMgQSBsYW5ndWFnZSBzcGVj aWZpYyBjb21waWxlci4KQ0M9JGx0X2NvbXBpbGVyX0Y3NwoKIyBJcyB0aGUg Y29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9nY2M9JEdDQ19GNzcK CiMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9u cy4Kbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZ19GNzcKCiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBm b3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgpwaWNfZmxhZz0kbHRfbHRf cHJvZ19jb21waWxlcl9waWNfRjc3CgojIEhvdyB0byBwYXNzIGEgbGlua2Vy IGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCndsPSRsdF9sdF9wcm9nX2Nv bXBpbGVyX3dsX0Y3NwoKIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHlu YW1pYyBsaW5raW5nLgpsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19GNzcKCiMgRG9lcyBjb21waWxlciBzaW11bHRhbmVv dXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwpjb21waWxlcl9jX289 JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3NwoKIyBXaGV0aGVyIG9y IG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVz LgpidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xj X0Y3NwoKIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGli cyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgphbGxvd19saWJ0b29s X2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0 aF9zdGF0aWNfcnVudGltZXNfRjc3CgojIENvbXBpbGVyIGZsYWcgdG8gYWxs b3cgcmVmbGV4aXZlIGRsb3BlbnMuCmV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Yz0kbHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3NwoKIyBDb21waWxl ciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZy b20gYXJjaGl2ZXMuCndob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzcKCiMgV2hldGhlciB0aGUgY29tcGls ZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCmNv bXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0 X0Y3NwoKIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNo YXJlZCBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9v bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0Y3NwoKIyBDcmVhdGUgYSB0ZW1w b3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEg c2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz PSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19GNzcKCiMgQ29t bWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgphcmNoaXZl X2NtZHM9JGx0X2FyY2hpdmVfY21kc19GNzcKYXJjaGl2ZV9leHBzeW1fY21k cz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kc19GNzcKCiMgQ29tbWFuZHMgdXNl ZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJv bSBidWlsZGluZwojIGEgc2hhcmVkIGFyY2hpdmUuCm1vZHVsZV9jbWRzPSRs dF9tb2R1bGVfY21kc19GNzcKbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1 bGVfZXhwc3ltX2NtZHNfRjc3CgojIFdoZXRoZXIgd2UgYXJlIGJ1aWxkaW5n IHdpdGggR05VIGxkIG9yIG5vdC4Kd2l0aF9nbnVfbGQ9JGx0X3dpdGhfZ251 X2xkX0Y3NwoKIyBGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMg d2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWlsdC4KYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX0Y3NwoKIyBG bGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCm5vX3Vu ZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZ19GNzcKCiMgRmxh ZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBs aW5raW5nLgojIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9l cyBub3QgZXhpc3QKaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzcKCiMgV2hldGhlciB3ZSBuZWVk IGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1 bWVudC4KaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcl9GNzcKCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFy ZGNvZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRj b2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0X0Y3NwoKIyBTZXQgdG8gInll cyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJp bmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMK IyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0 aW5nIFwke3NobGlicGF0aF92YXJ9IGlmIHRoZQojIGxpYnJhcnkgaXMgcmVs b2NhdGVkLgpoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2Rp cmVjdF9hYnNvbHV0ZV9GNzcKCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRo ZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKIyBp bnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9taW51c19MPSRo YXJkY29kZV9taW51c19MX0Y3NwoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcg U0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJ UgojIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX3NobGli cGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3CgojIFNldCB0 byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRp Y2FsbHkgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIGxpYnJhcnkgYW5kIGFs bCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2Vk CiMgYWdhaW5zdCBpdC4KaGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9h dXRvbWF0aWNfRjc3CgojIFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVu dGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCiMgdG8gcnVudGlt ZSBwYXRoIGxpc3QuCmluaGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGhfRjc3 CgojIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWlu c3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KbGlua19hbGxfZGVw bGlicz0kbGlua19hbGxfZGVwbGlic19GNzcKCiMgU2V0IHRvICJ5ZXMiIGlm IGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgphbHdheXNfZXhwb3J0 X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9sc19GNzcKCiMgVGhlIGNv bW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KZXhwb3J0X3N5bWJv bHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kc19GNzcKCiMgU3ltYm9s cyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQg c3ltYm9scy4KZXhjbHVkZV9leHBzeW1zPSRsdF9leGNsdWRlX2V4cHN5bXNf Rjc3CgojIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4K aW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXNfRjc3CgojIENv bW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5z dCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVzLgpwcmVsaW5rX2NtZHM9JGx0 X3ByZWxpbmtfY21kc19GNzcKCiMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBm aW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4KcG9zdGxpbmtfY21kcz0kbHRf cG9zdGxpbmtfY21kc19GNzcKCiMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWlu aW5nIGlucHV0IGZpbGVzLgpmaWxlX2xpc3Rfc3BlYz0kbHRfZmlsZV9saXN0 X3NwZWNfRjc3CgojIEhvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5 IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgpoYXJkY29kZV9hY3Rpb249JGhh cmRjb2RlX2FjdGlvbl9GNzcKCiMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVk IGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJy YXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xp Yl9zZWFyY2hfZGlyc19GNzcKCiMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJl Zm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCiMg Y3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkuCnByZWRlcF9vYmplY3RzPSRsdF9w cmVkZXBfb2JqZWN0c19GNzcKcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0ZGVw X29iamVjdHNfRjc3CnByZWRlcHM9JGx0X3ByZWRlcHNfRjc3CnBvc3RkZXBz PSRsdF9wb3N0ZGVwc19GNzcKCiMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGgg dXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcK IyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9 JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9GNzcKCiMgIyMjIEVORCBM SUJUT09MIFRBRyBDT05GSUc6IEY3NwpfTFRfRU9GCgoKICAgIGNhdCA8PF9M VF9FT0YgPj4gIiRvZmlsZSIKCiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENP TkZJRzogRkMKCiMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmll cy4KTEQ9JGx0X0xEX0ZDCgojIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBv YmplY3QgZmlsZXMuCnJlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZ19GQwpy ZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHNfRkMKCiMgQ29tbWFuZHMgdXNl ZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVf Y21kcz0kbHRfb2xkX2FyY2hpdmVfY21kc19GQwoKIyBBIGxhbmd1YWdlIHNw ZWNpZmljIGNvbXBpbGVyLgpDQz0kbHRfY29tcGlsZXJfRkMKCiMgSXMgdGhl IGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/CndpdGhfZ2NjPSRHQ0NfRkMK CiMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9u cy4Kbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZ19GQwoKIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZv ciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCnBpY19mbGFnPSRsdF9sdF9w cm9nX2NvbXBpbGVyX3BpY19GQwoKIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBm bGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgp3bD0kbHRfbHRfcHJvZ19jb21w aWxlcl93bF9GQwoKIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1p YyBsaW5raW5nLgpsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19GQwoKIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5 IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CmNvbXBpbGVyX2Nfbz0kbHRf bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRkMKCiMgV2hldGhlciBvciBub3Qg dG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KYnVp bGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZlX2NtZHNfbmVlZF9sY19GQwoK IyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVu IHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgphbGxvd19saWJ0b29sX2xpYnNf d2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXNfRkMKCiMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZs ZXhpdmUgZGxvcGVucy4KZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9l eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRkMKCiMgQ29tcGlsZXIgZmxhZyB0 byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hp dmVzLgp3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfRkMKCiMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMg d2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCmNvbXBpbGVyX25l ZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0X0ZDCgojIENy ZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hp dmUuCm9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHNfRkMKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1z dHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNo aXZlLgpvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRfb2xkX2Fy Y2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfRkMKCiMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgphcmNoaXZlX2NtZHM9JGx0X2Fy Y2hpdmVfY21kc19GQwphcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZl X2V4cHN5bV9jbWRzX0ZDCgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBs b2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKIyBh IHNoYXJlZCBhcmNoaXZlLgptb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHNf RkMKbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHNf RkMKCiMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Ig bm90Lgp3aXRoX2dudV9sZD0kbHRfd2l0aF9nbnVfbGRfRkMKCiMgRmxhZyB0 aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5 bWJvbHMgdG8gYmUgYnVpbHQuCmFsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9h bGxvd191bmRlZmluZWRfZmxhZ19GQwoKIyBGbGFnIHRoYXQgZW5mb3JjZXMg bm8gdW5kZWZpbmVkIHN5bWJvbHMuCm5vX3VuZGVmaW5lZF9mbGFnPSRsdF9u b191bmRlZmluZWRfZmxhZ19GQwoKIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGli ZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCiMgVGhpcyBtdXN0 IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdApoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0ZDCgojIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBm bGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCmhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRkMK CiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVk X2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCiMgRElSIGludG8gdGhl IHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVf ZGlyZWN0X0ZDCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFN RVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwojIERJ UiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5n IGxpYnJhcnkgZGVwZW5kZW5jeSBpcwojICJhYnNvbHV0ZSIsaS5lIGltcG9z c2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0g aWYgdGhlCiMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCmhhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZT0kaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0ZDCgojIFNl dCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlu a2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFy eS4KaGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9GQwoKIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5n IGxpbmtpbmcgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBi aW5hcnkuCmhhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGli cGF0aF92YXJfRkMKCiMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hh cmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCiMgaW50 byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFu ZCBleGVjdXRhYmxlcyBsaW5rZWQKIyBhZ2FpbnN0IGl0LgpoYXJkY29kZV9h dXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19GQwoKIyBTZXQgdG8geWVz IGlmIGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxp YnJhcmllcwojIHRvIHJ1bnRpbWUgcGF0aCBsaXN0Lgppbmhlcml0X3JwYXRo PSRpbmhlcml0X3JwYXRoX0ZDCgojIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxp bmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJh cmllcy4KbGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGlic19GQwoK IyBTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWly ZWQuCmFsd2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1i b2xzX0ZDCgojIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJv bHMuCmV4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2Nt ZHNfRkMKCiMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGlu IHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KZXhjbHVkZV9leHBzeW1zPSRsdF9l eGNsdWRlX2V4cHN5bXNfRkMKCiMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlz IGJlIGV4cG9ydGVkLgppbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhw c3ltc19GQwoKIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJv Z3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KcHJl bGlua19jbWRzPSRsdF9wcmVsaW5rX2NtZHNfRkMKCiMgQ29tbWFuZHMgbmVj ZXNzYXJ5IGZvciBmaW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4KcG9zdGxp bmtfY21kcz0kbHRfcG9zdGxpbmtfY21kc19GQwoKIyBTcGVjaWZ5IGZpbGVu YW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCmZpbGVfbGlzdF9zcGVjPSRs dF9maWxlX2xpc3Rfc3BlY19GQwoKIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFy ZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KaGFyZGNvZGVf YWN0aW9uPSRoYXJkY29kZV9hY3Rpb25fRkMKCiMgVGhlIGRpcmVjdG9yaWVz IHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNo YXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2Nv bXBpbGVyX2xpYl9zZWFyY2hfZGlyc19GQwoKIyBEZXBlbmRlbmNpZXMgdG8g cGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5r ZWQgdG8KIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KcHJlZGVwX29iamVj dHM9JGx0X3ByZWRlcF9vYmplY3RzX0ZDCnBvc3RkZXBfb2JqZWN0cz0kbHRf cG9zdGRlcF9vYmplY3RzX0ZDCnByZWRlcHM9JGx0X3ByZWRlcHNfRkMKcG9z dGRlcHM9JGx0X3Bvc3RkZXBzX0ZDCgojIFRoZSBsaWJyYXJ5IHNlYXJjaCBw YXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5r aW5nCiMgYSBzaGFyZWQgbGlicmFyeS4KY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGhfRkMKCiMgIyMjIEVO RCBMSUJUT09MIFRBRyBDT05GSUc6IEZDCl9MVF9FT0YKCgogICAgY2F0IDw8 X0xUX0VPRiA+PiAiJG9maWxlIgoKIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcg Q09ORklHOiBHTwoKIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFy aWVzLgpMRD0kbHRfTERfR08KCiMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxl IG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9JGx0X3JlbG9hZF9mbGFnX0dP CnJlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kc19HTwoKIyBDb21tYW5kcyB1 c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgpvbGRfYXJjaGl2 ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzX0dPCgojIEEgbGFuZ3VhZ2Ug c3BlY2lmaWMgY29tcGlsZXIuCkNDPSRsdF9jb21waWxlcl9HTwoKIyBJcyB0 aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9nY2M9JEdDQ19H TwoKIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rp b25zLgpub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnX0dPCgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3Mg Zm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0cy4KcGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfcGljX0dPCgojIEhvdyB0byBwYXNzIGEgbGlua2Vy IGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCndsPSRsdF9sdF9wcm9nX2Nv bXBpbGVyX3dsX0dPCgojIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5h bWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29t cGlsZXJfc3RhdGljX0dPCgojIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3Vz bHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KY29tcGlsZXJfY19vPSRs dF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19HTwoKIyBXaGV0aGVyIG9yIG5v dCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgpi dWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX0dP CgojIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdo ZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0 YXRpY19ydW50aW1lc19HTwoKIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJl ZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0 X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HTwoKIyBDb21waWxlciBmbGFn IHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJj aGl2ZXMuCndob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19HTwoKIyBXaGV0aGVyIHRoZSBjb21waWxlciBjb3Bl cyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KY29tcGlsZXJf bmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19vYmplY3RfR08KCiMg Q3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJj aGl2ZS4Kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hp dmVfZnJvbV9uZXdfY21kc19HTwoKIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xk LXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFy Y2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19HTwoKIyBDb21tYW5kcyB1c2Vk IHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0kbHRf YXJjaGl2ZV9jbWRzX0dPCmFyY2hpdmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hp dmVfZXhwc3ltX2NtZHNfR08KCiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBh IGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZwoj IGEgc2hhcmVkIGFyY2hpdmUuCm1vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21k c19HTwptb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21k c19HTwoKIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBv ciBub3QuCndpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZF9HTwoKIyBGbGFn IHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQg c3ltYm9scyB0byBiZSBidWlsdC4KYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0 X2FsbG93X3VuZGVmaW5lZF9mbGFnX0dPCgojIEZsYWcgdGhhdCBlbmZvcmNl cyBubyB1bmRlZmluZWQgc3ltYm9scy4Kbm9fdW5kZWZpbmVkX2ZsYWc9JGx0 X25vX3VuZGVmaW5lZF9mbGFnX0dPCgojIEZsYWcgdG8gaGFyZGNvZGUgXCRs aWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KIyBUaGlzIG11 c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0CmhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfR08KCiMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgi IGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9H TwoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFy ZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0 aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfZGlyZWN0PSRoYXJkY29k ZV9kaXJlY3RfR08KCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJO QU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCiMg RElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRp bmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCiMgImFic29sdXRlIixpLmUgaW1w b3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyBcJHtzaGxpYnBhdGhfdmFy fSBpZiB0aGUKIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfR08KCiMg U2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBs aW5raW5nIGhhcmRjb2RlcyBESVIKIyBpbnRvIHRoZSByZXN1bHRpbmcgYmlu YXJ5LgpoYXJkY29kZV9taW51c19MPSRoYXJkY29kZV9taW51c19MX0dPCgoj IFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJp bmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVzdWx0aW5n IGJpbmFyeS4KaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9HTwoKIyBTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBz aGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKIyBp bnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMg YW5kIGV4ZWN1dGFibGVzIGxpbmtlZAojIGFnYWluc3QgaXQuCmhhcmRjb2Rl X2F1dG9tYXRpYz0kaGFyZGNvZGVfYXV0b21hdGljX0dPCgojIFNldCB0byB5 ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQg bGlicmFyaWVzCiMgdG8gcnVudGltZSBwYXRoIGxpc3QuCmluaGVyaXRfcnBh dGg9JGluaGVyaXRfcnBhdGhfR08KCiMgV2hldGhlciBsaWJ0b29sIG11c3Qg bGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGli cmFyaWVzLgpsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzX0dP CgojIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1 aXJlZC4KYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5 bWJvbHNfR08KCiMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3lt Ym9scy4KZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNf Y21kc19HTwoKIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQg aW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgpleGNsdWRlX2V4cHN5bXM9JGx0 X2V4Y2x1ZGVfZXhwc3ltc19HTwoKIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdh eXMgYmUgZXhwb3J0ZWQuCmluY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9l eHBzeW1zX0dPCgojIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBw cm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVzLgpw cmVsaW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kc19HTwoKIyBDb21tYW5kcyBu ZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5nIHByb2dyYW1zLgpwb3N0 bGlua19jbWRzPSRsdF9wb3N0bGlua19jbWRzX0dPCgojIFNwZWNpZnkgZmls ZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcy4KZmlsZV9saXN0X3NwZWM9 JGx0X2ZpbGVfbGlzdF9zcGVjX0dPCgojIEhvdyB0byBoYXJkY29kZSBhIHNo YXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgpoYXJkY29k ZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9HTwoKIyBUaGUgZGlyZWN0b3Jp ZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEg c2hhcmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRf Y29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0dPCgojIERlcGVuZGVuY2llcyB0 byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxp bmtlZCB0bwojIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgpwcmVkZXBfb2Jq ZWN0cz0kbHRfcHJlZGVwX29iamVjdHNfR08KcG9zdGRlcF9vYmplY3RzPSRs dF9wb3N0ZGVwX29iamVjdHNfR08KcHJlZGVwcz0kbHRfcHJlZGVwc19HTwpw b3N0ZGVwcz0kbHRfcG9zdGRlcHNfR08KCiMgVGhlIGxpYnJhcnkgc2VhcmNo IHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxp bmtpbmcKIyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNo X3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9HTwoKIyAjIyMg RU5EIExJQlRPT0wgVEFHIENPTkZJRzogR08KX0xUX0VPRgoKCiAgICBjYXQg PDxfTFRfRU9GID4+ICIkb2ZpbGUiCgojICMjIyBCRUdJTiBMSUJUT09MIFRB RyBDT05GSUc6IEdDSgoKIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGli cmFyaWVzLgpMRD0kbHRfTERfR0NKCgojIEhvdyB0byBjcmVhdGUgcmVsb2Fk YWJsZSBvYmplY3QgZmlsZXMuCnJlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxh Z19HQ0oKcmVsb2FkX2NtZHM9JGx0X3JlbG9hZF9jbWRzX0dDSgoKIyBDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgpvbGRf YXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzX0dDSgoKIyBBIGxh bmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgpDQz0kbHRfY29tcGlsZXJfR0NK CgojIElzIHRoZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVyPwp3aXRoX2dj Yz0kR0NDX0dDSgoKIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0 aW4gZnVuY3Rpb25zLgpub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dDSgoKIyBBZGRpdGlvbmFsIGNvbXBp bGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCnBpY19m bGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oKCiMgSG93IHRvIHBh c3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4Kd2w9JGx0 X2x0X3Byb2dfY29tcGlsZXJfd2xfR0NKCgojIENvbXBpbGVyIGZsYWcgdG8g cHJldmVudCBkeW5hbWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9JGx0 X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSgoKIyBEb2VzIGNvbXBpbGVy IHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CmNv bXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fR0NKCgoj IFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJl ZCBsaWJyYXJpZXMuCmJ1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9j bWRzX25lZWRfbGNfR0NKCgojIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93 IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFs bG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19HQ0oKCiMgQ29tcGlsZXIg ZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NK CgojIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMg ZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4Kd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWM9JGx0X3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSgoKIyBXaGV0aGVy IHRoZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBk aXJlY3RseS4KY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9u ZWVkc19vYmplY3RfR0NKCgojIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2 ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fbmV3 X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfR0NKCgojIENy ZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGlu c3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz X0dDSgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hp dmUuCmFyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzX0dDSgphcmNoaXZl X2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX0dDSgoKIyBD b21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRp ZmZlcmVudCBmcm9tIGJ1aWxkaW5nCiMgYSBzaGFyZWQgYXJjaGl2ZS4KbW9k dWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzX0dDSgptb2R1bGVfZXhwc3ltX2Nt ZHM9JGx0X21vZHVsZV9leHBzeW1fY21kc19HQ0oKCiMgV2hldGhlciB3ZSBh cmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90Lgp3aXRoX2dudV9sZD0k bHRfd2l0aF9nbnVfbGRfR0NKCgojIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVk IGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0 LgphbGxvd191bmRlZmluZWRfZmxhZz0kbHRfYWxsb3dfdW5kZWZpbmVkX2Zs YWdfR0NKCgojIEZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3lt Ym9scy4Kbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFn X0dDSgoKIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5h cnkgZHVyaW5nIGxpbmtpbmcuCiMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBc JGxpYmRpciBkb2VzIG5vdCBleGlzdApoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSgoKIyBXaGV0 aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2Vw YXJhdGVkIGFyZ3VtZW50LgpoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRs dF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSgoKIyBTZXQgdG8gInll cyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJp bmFyeS4KaGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfR0NKCgoj IFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9l eHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwojIERJUiBpbnRvIHRoZSBy ZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVw ZW5kZW5jeSBpcwojICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hh bmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCiMgbGli cmFyeSBpcyByZWxvY2F0ZWQuCmhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0k aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0dDSgoKIyBTZXQgdG8gInllcyIg aWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2Rl X21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfR0NKCgojIFNldCB0byAieWVz IiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBo YXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9H Q0oKCiMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJh cnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgbGli cmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRh YmxlcyBsaW5rZWQKIyBhZ2FpbnN0IGl0LgpoYXJkY29kZV9hdXRvbWF0aWM9 JGhhcmRjb2RlX2F1dG9tYXRpY19HQ0oKCiMgU2V0IHRvIHllcyBpZiBsaW5r ZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMK IyB0byBydW50aW1lIHBhdGggbGlzdC4KaW5oZXJpdF9ycGF0aD0kaW5oZXJp dF9ycGF0aF9HQ0oKCiMgV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHBy b2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgps aW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzX0dDSgoKIyBTZXQg dG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCmFs d2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0dD SgoKIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgpl eHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzX0dD SgoKIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhl IHByZWxvYWRlZCBzeW1ib2xzLgpleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1 ZGVfZXhwc3ltc19HQ0oKCiMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJl IGV4cG9ydGVkLgppbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3lt c19HQ0oKCiMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dy YW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMuCnByZWxp bmtfY21kcz0kbHRfcHJlbGlua19jbWRzX0dDSgoKIyBDb21tYW5kcyBuZWNl c3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5nIHByb2dyYW1zLgpwb3N0bGlu a19jbWRzPSRsdF9wb3N0bGlua19jbWRzX0dDSgoKIyBTcGVjaWZ5IGZpbGVu YW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCmZpbGVfbGlzdF9zcGVjPSRs dF9maWxlX2xpc3Rfc3BlY19HQ0oKCiMgSG93IHRvIGhhcmRjb2RlIGEgc2hh cmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCmhhcmRjb2Rl X2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uX0dDSgoKIyBUaGUgZGlyZWN0b3Jp ZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEg c2hhcmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRf Y29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0dDSgoKIyBEZXBlbmRlbmNpZXMg dG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBs aW5rZWQgdG8KIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KcHJlZGVwX29i amVjdHM9JGx0X3ByZWRlcF9vYmplY3RzX0dDSgpwb3N0ZGVwX29iamVjdHM9 JGx0X3Bvc3RkZXBfb2JqZWN0c19HQ0oKcHJlZGVwcz0kbHRfcHJlZGVwc19H Q0oKcG9zdGRlcHM9JGx0X3Bvc3RkZXBzX0dDSgoKIyBUaGUgbGlicmFyeSBz ZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdo ZW4gbGlua2luZwojIGEgc2hhcmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9z ZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0dDSgoK IyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogR0NKCl9MVF9FT0YKCgog ICAgY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgoKIyAjIyMgQkVHSU4gTElC VE9PTCBUQUcgQ09ORklHOiBSQwoKIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVp bGQgbGlicmFyaWVzLgpMRD0kbHRfTERfUkMKCiMgSG93IHRvIGNyZWF0ZSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9JGx0X3JlbG9h ZF9mbGFnX1JDCnJlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kc19SQwoKIyBD b21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgpv bGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzX1JDCgojIEEg bGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCkNDPSRsdF9jb21waWxlcl9S QwoKIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9n Y2M9JEdDQ19SQwoKIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0 aW4gZnVuY3Rpb25zLgpub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnX1JDCgojIEFkZGl0aW9uYWwgY29tcGls ZXIgZmxhZ3MgZm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0cy4KcGljX2Zs YWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX1JDCgojIEhvdyB0byBwYXNz IGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCndsPSRsdF9s dF9wcm9nX2NvbXBpbGVyX3dsX1JDCgojIENvbXBpbGVyIGZsYWcgdG8gcHJl dmVudCBkeW5hbWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfc3RhdGljX1JDCgojIERvZXMgY29tcGlsZXIgc2lt dWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KY29tcGls ZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19SQwoKIyBXaGV0 aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGli cmFyaWVzLgpidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19u ZWVkX2xjX1JDCgojIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJl ZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93X2xp YnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lc19SQwoKIyBDb21waWxlciBmbGFnIHRv IGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHluYW1pY19mbGFn X3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19SQwoKIyBDb21w aWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5 IGZyb20gYXJjaGl2ZXMuCndob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19SQwoKIyBXaGV0aGVyIHRoZSBjb21w aWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4K Y29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19vYmpl Y3RfUkMKCiMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBz aGFyZWQgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRf b2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19SQwoKIyBDcmVhdGUgYSB0ZW1w b3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEg c2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz PSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19SQwoKIyBDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVf Y21kcz0kbHRfYXJjaGl2ZV9jbWRzX1JDCmFyY2hpdmVfZXhwc3ltX2NtZHM9 JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHNfUkMKCiMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBi dWlsZGluZwojIGEgc2hhcmVkIGFyY2hpdmUuCm1vZHVsZV9jbWRzPSRsdF9t b2R1bGVfY21kc19SQwptb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9l eHBzeW1fY21kc19SQwoKIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRo IEdOVSBsZCBvciBub3QuCndpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZF9S QwoKIyBGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1 bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWlsdC4KYWxsb3dfdW5kZWZpbmVk X2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX1JDCgojIEZsYWcgdGhh dCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4Kbm9fdW5kZWZpbmVk X2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnX1JDCgojIEZsYWcgdG8gaGFy ZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4K IyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4 aXN0CmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfUkMKCiMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xl ICItcnBhdGgiIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcl9SQwoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5B TUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKIyBE SVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfZGlyZWN0 PSRoYXJkY29kZV9kaXJlY3RfUkMKCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFy ZGNvZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRo ZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCiMgImFic29sdXRl IixpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyBcJHtzaGxp YnBhdGhfdmFyfSBpZiB0aGUKIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KaGFy ZGNvZGVfZGlyZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGVfUkMKCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFn IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKIyBpbnRvIHRoZSByZXN1 bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9taW51c19MPSRoYXJkY29kZV9taW51 c19MX1JDCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFS PURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUg cmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcl9SQwoKIyBTZXQgdG8gInllcyIgaWYgYnVp bGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2Rl cyBESVIKIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBs aWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAojIGFnYWluc3QgaXQu CmhhcmRjb2RlX2F1dG9tYXRpYz0kaGFyZGNvZGVfYXV0b21hdGljX1JDCgoj IFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBk ZXBlbmRlbnQgbGlicmFyaWVzCiMgdG8gcnVudGltZSBwYXRoIGxpc3QuCmlu aGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGhfUkMKCiMgV2hldGhlciBsaWJ0 b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVu ZGVuY3kgbGlicmFyaWVzLgpsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9k ZXBsaWJzX1JDCgojIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xz IGFyZSByZXF1aXJlZC4KYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNf ZXhwb3J0X3N5bWJvbHNfUkMKCiMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhw b3J0ZWQgc3ltYm9scy4KZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0 X3N5bWJvbHNfY21kc19SQwoKIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBi ZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgpleGNsdWRlX2V4 cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19SQwoKIyBTeW1ib2xzIHRoYXQg bXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCmluY2x1ZGVfZXhwc3ltcz0kbHRf aW5jbHVkZV9leHBzeW1zX1JDCgojIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3Ig bGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVt cGxhdGVzLgpwcmVsaW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kc19SQwoKIyBD b21tYW5kcyBuZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5nIHByb2dy YW1zLgpwb3N0bGlua19jbWRzPSRsdF9wb3N0bGlua19jbWRzX1JDCgojIFNw ZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcy4KZmlsZV9s aXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9zcGVjX1JDCgojIEhvdyB0byBoYXJk Y29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxl LgpoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9SQwoKIyBUaGUg ZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNy ZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hf ZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX1JDCgojIERlcGVu ZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3Rz IGJlaW5nIGxpbmtlZCB0bwojIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5Lgpw cmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHNfUkMKcG9zdGRlcF9v YmplY3RzPSRsdF9wb3N0ZGVwX29iamVjdHNfUkMKcHJlZGVwcz0kbHRfcHJl ZGVwc19SQwpwb3N0ZGVwcz0kbHRfcG9zdGRlcHNfUkMKCiMgVGhlIGxpYnJh cnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxl ciB3aGVuIGxpbmtpbmcKIyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9s aWJfc2VhcmNoX3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9S QwoKIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogUkMKX0xUX0VPRgoK IDs7CgogIGVzYWMKZG9uZSAjIGZvciBhY190YWcKCgphc19mbl9leGl0IDAK --_----------=_13840355941782731 Content-Disposition: attachment; filename="test-suite.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="test-suite.log" PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAg R05VIExpYnRvb2wgMi40LjI6IC4vdGVzdC1zdWl0ZS5sb2cgICAKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkFsbCAxMDQg dGVzdHMgcGFzc2VkLiAgKDIgdGVzdHMgd2VyZSBub3QgcnVuKS4gIAoKLi4g Y29udGVudHM6OiA6ZGVwdGg6IDIKCgpTS0lQOiB0ZXN0cy9jZGVtby11bmRl Zi50ZXN0IChleGl0OiA3NykKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CgpjZGVtby11bmRlZi50ZXN0OiA9PT0gIFJ1bm5pbmcg Y2RlbW8tdW5kZWYudGVzdApjZGVtby11bmRlZi50ZXN0OiA9PT0gIFJ1bm5p bmcgYG1ha2UgZGlzdGNsZWFuJyBpbiBjZGVtbwogcm0gLWYgY2RlbW8uZXhl CiBybSAtZiBjZGVtbwpybSAtcmYgLmxpYnMgX2xpYnMKdGVzdCAteiAibGli Zm9vLmxhIiB8fCBybSAtZiBsaWJmb28ubGEKcm0gLWYgIi4vc29fbG9jYXRp b25zIgpybSAtZiAqLm8Kcm0gLWYgKi5sbwpybSAtZiAqLnRhYi5jCnRlc3Qg LXogIiIgfHwgcm0gLWYgCnRlc3QgLiA9ICIvTWluR1cvc2hhcmUvYXV0b21h a2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2NkZW1vIiB8fCB0ZXN0IC16 ICIiIHx8IHJtIC1mIApybSAtZiBsaWJ0b29sIGNvbmZpZy5sdAphY19maWxl cz0iYS5vdXQuKiBhLmV4ZS4qIGFfb3V0LmV4ZS4qIGIub3V0LiogY29uZnRl c3QuKiI7IFwKCWZvciBhY19maWxlIGluICRhY19maWxlczsgZG8gXAoJICBj YXNlICRhY19maWxlIGluIFwKCSAgICAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQg fCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5p bmYgfCAqLmRTWU0gKSBybSAtcmYgJGFjX2ZpbGUgOzsgXAoJICBlc2FjOyBc Cglkb25lCnJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRI IHRhZ3MKcm0gLWYgY29uZmlnLnN0YXR1cyBjb25maWcuY2FjaGUgY29uZmln LmxvZyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5zdGF0dXMubGluZW5vCnJt IC1mIE1ha2VmaWxlCmNkZW1vLXVuZGVmLnRlc3Q6ID09PSAgQ29uZmlndXJp bmcgaW4gY2RlbW8KY2RlbW8tdW5kZWYudGVzdDogPT09ICAvYmluL3NoIC9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMv Y2RlbW8vY29uZmlndXJlIC0tc3JjZGlyPS9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvY2RlbW8gLS1wcmVmaXg9L21p bmd3L2xpYnRvb2wtYnVpbGQtZHVlLXRvLUdOVS9faW5zdC1jZGVtbyAtLWRp c2FibGUtc3RhdGljCmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGlu c3RhbGwuLi4gL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgYnVp bGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEg dGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4gL2Jpbi9ta2RpciAtcApjaGVja2lu ZyBmb3IgZ2F3ay4uLiBnYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRz ICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNr aW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNr aW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4u LiBhLmV4ZQpjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4u IC5leGUKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5n Li4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4u IG8KY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNv bXBpbGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1n Li4uIHllcwpjaGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBhY2NlcHQgSVNP IEM4OS4uLiBub25lIG5lZWRlZApjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5j bHVkZSB1c2VkIGJ5IG1ha2UuLi4gR05VCmNoZWNraW5nIGRlcGVuZGVuY3kg c3R5bGUgb2YgZ2NjLi4uIGdjYzMKY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5 cGUuLi4gaTY4Ni1wYy1taW5ndzMyCmNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5 cGUuLi4gaTY4Ni1wYy1taW5ndzMyCmNoZWNraW5nIGhvdyB0byBwcmludCBz dHJpbmdzLi4uIHByaW50ZgpjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2Vz IG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gL2Jpbi9zZWQKY2hlY2tpbmcgZm9y IGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lLi4uIC9iaW4v Z3JlcApjaGVja2luZyBmb3IgZWdyZXAuLi4gL2Jpbi9ncmVwIC1FCmNoZWNr aW5nIGZvciBmZ3JlcC4uLiAvYmluL2dyZXAgLUYKY2hlY2tpbmcgZm9yIGxk IHVzZWQgYnkgZ2NjLi4uIGM6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZQpj aGVja2luZyBpZiB0aGUgbGlua2VyIChjOi90aW5ndy9taW5ndzMyL2Jpbi9s ZC5leGUpIGlzIEdOVSBsZC4uLiB5ZXMKY2hlY2tpbmcgZm9yIEJTRC0gb3Ig TVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pLi4uIC9iaW4vbm0gLUIK Y2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgvYmluL25tIC1CKSBpbnRlcmZh Y2UuLi4gQlNEIG5tCmNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MuLi4g bm8sIHVzaW5nIGNwIC1wCmNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBv ZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uIDgxOTIKY2hlY2tpbmcgd2hl dGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0 cy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFu ZHMgIis9Ii4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgaTY4Ni1w Yy1taW5ndzMyIGZpbGUgbmFtZXMgdG8gaTY4Ni1wYy1taW5ndzMyIGZvcm1h dC4uLiAoY2FjaGVkKSBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgpj aGVja2luZyBob3cgdG8gY29udmVydCBpNjg2LXBjLW1pbmd3MzIgZmlsZSBu YW1lcyB0byB0b29sY2hhaW4gZm9ybWF0Li4uIChjYWNoZWQpIGZ1bmNfY29u dmVydF9maWxlX21zeXNfdG9fdzMyCmNoZWNraW5nIGZvciBjOi90aW5ndy9t aW5ndzMyL2Jpbi9sZC5leGUgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmls ZXMuLi4gLXIKY2hlY2tpbmcgZm9yIG9iamR1bXAuLi4gb2JqZHVtcApjaGVj a2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMuLi4g ZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMCmNoZWNr aW5nIGZvciBkbGx0b29sLi4uIGRsbHRvb2wKY2hlY2tpbmcgaG93IHRvIGFz c29jaWF0ZSBydW50aW1lIGFuZCBsaW5rIGxpYnJhcmllcy4uLiBmdW5jX2N5 Z21pbmdfZGxsX2Zvcl9pbXBsaWIKY2hlY2tpbmcgZm9yIGFyY2hpdmVyIEBG SUxFIHN1cHBvcnQuLi4gQApjaGVja2luZyBmb3Igc3RyaXAuLi4gc3RyaXAK Y2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgY29tbWFu ZCB0byBwYXJzZSAvYmluL25tIC1CIG91dHB1dCBmcm9tIGdjYyBvYmplY3Qu Li4gb2sKY2hlY2tpbmcgZm9yIHN5c3Jvb3QuLi4gbm8KY2hlY2tpbmcgZm9y IG10Li4uIDoKY2hlY2tpbmcgaWYgOiBpcyBhIG1hbmlmZXN0IHRvb2wuLi4g bm8KY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4g Z2NjIC1FCmNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uIHll cwpjaGVja2luZyBmb3Igc3lzL3R5cGVzLmguLi4geWVzCmNoZWNraW5nIGZv ciBzeXMvc3RhdC5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RkbGliLmguLi4g eWVzCmNoZWNraW5nIGZvciBzdHJpbmcuaC4uLiB5ZXMKY2hlY2tpbmcgZm9y IG1lbW9yeS5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RyaW5ncy5oLi4uIHll cwpjaGVja2luZyBmb3IgaW50dHlwZXMuaC4uLiB5ZXMKY2hlY2tpbmcgZm9y IHN0ZGludC5oLi4uIHllcwpjaGVja2luZyBmb3IgdW5pc3RkLmguLi4geWVz CmNoZWNraW5nIGZvciBkbGZjbi5oLi4uIG5vCmNoZWNraW5nIGZvciBvYmpk aXIuLi4gLmxpYnMKY2hlY2tpbmcgaWYgZ2NjIHN1cHBvcnRzIC1mbm8tcnR0 aSAtZm5vLWV4Y2VwdGlvbnMuLi4gbm8KY2hlY2tpbmcgZm9yIGdjYyBvcHRp b24gdG8gcHJvZHVjZSBQSUMuLi4gLURETExfRVhQT1JUIC1EUElDCmNoZWNr aW5nIGlmIGdjYyBQSUMgZmxhZyAtRERMTF9FWFBPUlQgLURQSUMgd29ya3Mu Li4geWVzCmNoZWNraW5nIGlmIGdjYyBzdGF0aWMgZmxhZyAtc3RhdGljIHdv cmtzLi4uIHllcwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmls ZS5vLi4uIHllcwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmls ZS5vLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyB3aGV0aGVyIHRoZSBnY2Mg bGlua2VyIChjOi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUpIHN1cHBvcnRz IHNoYXJlZCBsaWJyYXJpZXMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgLWxj IHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiB5ZXMKY2hlY2tp bmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uIFdpbjMyIGxk LmV4ZQpjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBp bnRvIHByb2dyYW1zLi4uIGltbWVkaWF0ZQpjaGVja2luZyB3aGV0aGVyIHN0 cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUuLi4geWVzCmNoZWNraW5n IGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiB5ZXMK Y2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4u IHllcwpjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJp ZXMuLi4gbm8KY2hlY2tpbmcgZm9yIGNvcyBpbiAtbG0uLi4geWVzCmNvbmZp Z3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6 IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBk ZXBmaWxlcyBjb21tYW5kcwpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgbGli dG9vbCBjb21tYW5kcwpjZGVtby11bmRlZi50ZXN0OiBpNjg2LXBjLW1pbmd3 MzIgZG9lc24ndCBzdXBwb3J0IHVuZGVmaW5lZCBzeW1ib2xzIGluIHNoYXJl ZCBsaWJzCgpTS0lQOiB0ZXN0cy90YWdkZW1vLXVuZGVmLnRlc3QgKGV4aXQ6 IDc3KQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQoKdGFnZGVtby11bmRlZi50ZXN0OiA9PT0gIFJ1bm5pbmcgdGFnZGVtby11 bmRlZi50ZXN0CnRhZ2RlbW8tdW5kZWYudGVzdDogPT09ICBSdW5uaW5nIGBt YWtlIGRpc3RjbGVhbicgaW4gdGFnZGVtbwogcm0gLWYgdGFnZGVtby5leGUK IHJtIC1mIHRhZ2RlbW8KdGVzdCAteiAibGliZm9vLmxhIGxpYmJhei5sYSIg fHwgcm0gLWYgbGliZm9vLmxhIGxpYmJhei5sYQpybSAtZiAiLi9zb19sb2Nh dGlvbnMiCnJtIC1mICIuL3NvX2xvY2F0aW9ucyIKcm0gLXJmIC5saWJzIF9s aWJzCnRlc3QgLXogImxpYmNvbnYubGEiIHx8IHJtIC1mIGxpYmNvbnYubGEK cm0gLWYgIi4vc29fbG9jYXRpb25zIgpybSAtZiAqLm8Kcm0gLWYgKi5sbwpy bSAtZiAqLnRhYi5jCnRlc3QgLXogIiIgfHwgcm0gLWYgCnRlc3QgLiA9ICIv TWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3Rz L3RhZ2RlbW8iIHx8IHRlc3QgLXogIiIgfHwgcm0gLWYgCnJtIC1mIGxpYnRv b2wgY29uZmlnLmx0CmFjX2ZpbGVzPSJhLm91dC4qIGEuZXhlLiogYV9vdXQu ZXhlLiogYi5vdXQuKiBjb25mdGVzdC4qIjsgXAoJZm9yIGFjX2ZpbGUgaW4g JGFjX2ZpbGVzOyBkbyBcCgkgIGNhc2UgJGFjX2ZpbGUgaW4gXAoJICAgICou eGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8 ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSApIHJtIC1yZiAkYWNf ZmlsZSA7OyBcCgkgIGVzYWM7IFwKCWRvbmUKcm0gLWYgVEFHUyBJRCBHVEFH UyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwpybSAtZiBjb25maWcuc3RhdHVz IGNvbmZpZy5jYWNoZSBjb25maWcubG9nIGNvbmZpZ3VyZS5saW5lbm8gY29u ZmlnLnN0YXR1cy5saW5lbm8Kcm0gLWYgTWFrZWZpbGUKdGFnZGVtby11bmRl Zi50ZXN0OiA9PT0gIENvbmZpZ3VyaW5nIGluIHRhZ2RlbW8KdGFnZGVtby11 bmRlZi50ZXN0OiA9PT0gIC9iaW4vc2ggL01pbkdXL3NoYXJlL2F1dG9tYWtl LTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy90YWdkZW1vL2NvbmZpZ3VyZSAt LXNyY2Rpcj0vTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIu NC4yL3Rlc3RzL3RhZ2RlbW8gLS1wcmVmaXg9L21pbmd3L2xpYnRvb2wtYnVp bGQtZHVlLXRvLUdOVS9faW5zdC10YWdkZW1vIC0tZGlzYWJsZS1zdGF0aWMK Y2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4gaTY4Ni1wYy1taW5ndzMy CmNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUuLi4gaTY4Ni1wYy1taW5ndzMy CmNoZWNraW5nIHRhcmdldCBzeXN0ZW0gdHlwZS4uLiBpNjg2LXBjLW1pbmd3 MzIKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAv YmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9u bWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSB0aHJlYWQtc2Fm ZSBta2RpciAtcC4uLiAvYmluL21rZGlyIC1wCmNoZWNraW5nIGZvciBnYXdr Li4uIGdhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4u LiB5ZXMKY2hlY2tpbmcgZm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hldGhl ciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMg Y29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEuZXhlCmNo ZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gLmV4ZQpjaGVj a2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hl Y2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2lu ZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4g eWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNo ZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uIG5v bmUgbmVlZGVkCmNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQg YnkgbWFrZS4uLiBHTlUKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBn Y2MuLi4gZ2NjMwpjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nl c3Nvci4uLiBnY2MgLUUKY2hlY2tpbmcgd2hldGhlciBnY2MgYW5kIGNjIHVu ZGVyc3RhbmQgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlci4uLiB5 ZXMKY2hlY2tpbmcgd2hldGhlciBnKysgYWNjZXB0cyAtZy4uLiB5ZXMKY2hl Y2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnKysuLi4gZ2NjMwpjaGVja2lu ZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yLi4uIGcrKyAtRQpj aGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsZW1lbnRzIG5hbWVz cGFjZXMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIGhh cyBJU08gQysrIGlvc3RyZWFtLi4uIHllcwpjaGVja2luZyBob3cgdG8gcHJp bnQgc3RyaW5ncy4uLiBwcmludGYKY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQg ZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0Li4uIC9iaW4vc2VkCmNoZWNraW5n IGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4uLiAv YmluL2dyZXAKY2hlY2tpbmcgZm9yIGVncmVwLi4uIC9iaW4vZ3JlcCAtRQpj aGVja2luZyBmb3IgZmdyZXAuLi4gL2Jpbi9ncmVwIC1GCmNoZWNraW5nIGZv ciBsZCB1c2VkIGJ5IGdjYy4uLiBjOi90aW5ndy9taW5ndzMyL2Jpbi9sZC5l eGUKY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoYzovdGluZ3cvbWluZ3czMi9i aW4vbGQuZXhlKSBpcyBHTlUgbGQuLi4geWVzCmNoZWNraW5nIGZvciBCU0Qt IG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAvYmluL25t IC1CCmNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoL2Jpbi9ubSAtQikgaW50 ZXJmYWNlLi4uIEJTRCBubQpjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtz Li4uIG5vLCB1c2luZyBjcCAtcApjaGVja2luZyB0aGUgbWF4aW11bSBsZW5n dGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4uLiA4MTkyCmNoZWNraW5n IHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0 cnVjdHMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVy c3RhbmRzICIrPSIuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjb252ZXJ0IGk2 ODYtcGMtbWluZ3czMiBmaWxlIG5hbWVzIHRvIGk2ODYtcGMtbWluZ3czMiBm b3JtYXQuLi4gKGNhY2hlZCkgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193 MzIKY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgaTY4Ni1wYy1taW5ndzMyIGZp bGUgbmFtZXMgdG8gdG9vbGNoYWluIGZvcm1hdC4uLiAoY2FjaGVkKSBmdW5j X2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgpjaGVja2luZyBmb3IgYzovdGlu Z3cvbWluZ3czMi9iaW4vbGQuZXhlIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0 IGZpbGVzLi4uIC1yCmNoZWNraW5nIGZvciBvYmpkdW1wLi4uIG9iamR1bXAK Y2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVz Li4uIGZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTApj aGVja2luZyBmb3IgZGxsdG9vbC4uLiBkbGx0b29sCmNoZWNraW5nIGhvdyB0 byBhc3NvY2lhdGUgcnVudGltZSBhbmQgbGluayBsaWJyYXJpZXMuLi4gZnVu Y19jeWdtaW5nX2RsbF9mb3JfaW1wbGliCmNoZWNraW5nIGZvciBhcmNoaXZl ciBARklMRSBzdXBwb3J0Li4uIEAKY2hlY2tpbmcgZm9yIHN0cmlwLi4uIHN0 cmlwCmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGliCmNoZWNraW5nIGNv bW1hbmQgdG8gcGFyc2UgL2Jpbi9ubSAtQiBvdXRwdXQgZnJvbSBnY2Mgb2Jq ZWN0Li4uIG9rCmNoZWNraW5nIGZvciBzeXNyb290Li4uIG5vCmNoZWNraW5n IGZvciBtdC4uLiA6CmNoZWNraW5nIGlmIDogaXMgYSBtYW5pZmVzdCB0b29s Li4uIG5vCmNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uIHll cwpjaGVja2luZyBmb3Igc3lzL3R5cGVzLmguLi4geWVzCmNoZWNraW5nIGZv ciBzeXMvc3RhdC5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RkbGliLmguLi4g eWVzCmNoZWNraW5nIGZvciBzdHJpbmcuaC4uLiB5ZXMKY2hlY2tpbmcgZm9y IG1lbW9yeS5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RyaW5ncy5oLi4uIHll cwpjaGVja2luZyBmb3IgaW50dHlwZXMuaC4uLiB5ZXMKY2hlY2tpbmcgZm9y IHN0ZGludC5oLi4uIHllcwpjaGVja2luZyBmb3IgdW5pc3RkLmguLi4geWVz CmNoZWNraW5nIGZvciBkbGZjbi5oLi4uIG5vCmNoZWNraW5nIGZvciBvYmpk aXIuLi4gLmxpYnMKY2hlY2tpbmcgaWYgZ2NjIHN1cHBvcnRzIC1mbm8tcnR0 aSAtZm5vLWV4Y2VwdGlvbnMuLi4gbm8KY2hlY2tpbmcgZm9yIGdjYyBvcHRp b24gdG8gcHJvZHVjZSBQSUMuLi4gLURETExfRVhQT1JUIC1EUElDCmNoZWNr aW5nIGlmIGdjYyBQSUMgZmxhZyAtRERMTF9FWFBPUlQgLURQSUMgd29ya3Mu Li4geWVzCmNoZWNraW5nIGlmIGdjYyBzdGF0aWMgZmxhZyAtc3RhdGljIHdv cmtzLi4uIHllcwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmls ZS5vLi4uIHllcwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmls ZS5vLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyB3aGV0aGVyIHRoZSBnY2Mg bGlua2VyIChjOi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUpIHN1cHBvcnRz IHNoYXJlZCBsaWJyYXJpZXMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgLWxj IHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiB5ZXMKY2hlY2tp bmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uIFdpbjMyIGxk LmV4ZQpjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBp bnRvIHByb2dyYW1zLi4uIGltbWVkaWF0ZQpjaGVja2luZyB3aGV0aGVyIHN0 cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUuLi4geWVzCmNoZWNraW5n IGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiB5ZXMK Y2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4u IHllcwpjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJp ZXMuLi4gbm8KY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nl c3Nvci4uLiBnKysgLUUKY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgZysrLi4u IGM6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZQpjaGVja2luZyBpZiB0aGUg bGlua2VyIChjOi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUpIGlzIEdOVSBs ZC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciB0aGUgZysrIGxpbmtlciAoYzov dGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlKSBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzLi4uIHllcwpjaGVja2luZyBmb3IgZysrIG9wdGlvbiB0byBwcm9k dWNlIFBJQy4uLiAtRERMTF9FWFBPUlQgLURQSUMKY2hlY2tpbmcgaWYgZysr IFBJQyBmbGFnIC1ERExMX0VYUE9SVCAtRFBJQyB3b3Jrcy4uLiB5ZXMKY2hl Y2tpbmcgaWYgZysrIHN0YXRpYyBmbGFnIC1zdGF0aWMgd29ya3MuLi4geWVz CmNoZWNraW5nIGlmIGcrKyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8uLi4geWVz CmNoZWNraW5nIGlmIGcrKyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8uLi4gKGNh Y2hlZCkgeWVzCmNoZWNraW5nIHdoZXRoZXIgdGhlIGcrKyBsaW5rZXIgKGM6 L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZSkgc3VwcG9ydHMgc2hhcmVkIGxp YnJhcmllcy4uLiB5ZXMKY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFj dGVyaXN0aWNzLi4uIFdpbjMyIGxkLmV4ZQpjaGVja2luZyBob3cgdG8gaGFy ZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uIGltbWVkaWF0 ZQpjaGVja2luZyBmb3IgY29zIGluIC1sbS4uLiB5ZXMKY29uZmlndXJlOiBj cmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRp bmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVz IGNvbW1hbmRzCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBsaWJ0b29sIGNv bW1hbmRzCnRhZ2RlbW8tdW5kZWYudGVzdDogaTY4Ni1wYy1taW5ndzMyIGRv ZXNuJ3Qgc3VwcG9ydCB1bmRlZmluZWQgc3ltYm9scyBpbiBzaGFyZWQgbGli cwo= --_----------=_13840355941782731 Content-Disposition: attachment; filename="libtool" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="libtool" IyEgL2Jpbi9zaAoKIyBsaWJ0b29sIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBs aWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCiMgR2VuZXJhdGVk IGF1dG9tYXRpY2FsbHkgYnkgY29uZmlnLnN0YXR1cyAobGlidG9vbCkgMi40 CiMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGtoZWxkYXI6CiMg Tk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6 IGxvb2sgYXQgbHRtYWluLnNoLgojCiMgICBDb3B5cmlnaHQgKEMpIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIw MDUsCiMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAojICAgICAgICAgICAg ICAgICBJbmMuCiMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAx OTk2CiMKIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sLgoj CiMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCiMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKIyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMiBvZgojIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgQXMgYSBzcGVjaWFsIGV4Y2Vw dGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCiMgaWYg eW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFt IG9yIGxpYnJhcnkgdGhhdAojIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29s LCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQojIHNhbWUg ZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qg b2YgdGhhdCBwcm9ncmFtLgojCiMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUg dGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5CiMgY2FuIGJlIGRv d25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3Bs Lmh0bWwsIG9yCiMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAojIDUxIEZyYW5rbGluIFN0cmVl dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgoK CiMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3Vw cG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgphdmFpbGFibGVfdGFncz0iQ1hYIEY3 NyBGQyBHQ0ogUkMgIgoKIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKCiMg V2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2VkPwptYWNyb192 ZXJzaW9uPTIuNAptYWNyb19yZXZpc2lvbj0xLjMyOTQKCiMgQXNzZW1ibGVy IHByb2dyYW0uCkFTPSJhcyIKCiMgRExMIGNyZWF0aW9uIHByb2dyYW0uCkRM TFRPT0w9ImRsbHRvb2wiCgojIE9iamVjdCBkdW1wZXIgcHJvZ3JhbS4KT0JK RFVNUD0ib2JqZHVtcCIKCiMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc2hh cmVkIGxpYnJhcmllcy4KYnVpbGRfbGlidG9vbF9saWJzPXllcwoKIyBXaGV0 aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgpidWlsZF9v bGRfbGlicz15ZXMKCiMgV2hhdCB0eXBlIG9mIG9iamVjdHMgdG8gYnVpbGQu CnBpY19tb2RlPWRlZmF1bHQKCiMgV2hldGhlciBvciBub3QgdG8gb3B0aW1p emUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgpmYXN0X2luc3RhbGw9bmVlZGxl c3MKCiMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0 cy4KU0hFTEw9Ii9iaW4vc2giCgojIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IHBy b3RlY3RzIGJhY2tzbGFzaGVzLgpFQ0hPPSJwcmludGYgJXNcXG4iCgojIFRo ZSBob3N0IHN5c3RlbS4KaG9zdF9hbGlhcz0KaG9zdD1pNjg2LXBjLW1pbmd3 MzIKaG9zdF9vcz1taW5ndzMyCgojIFRoZSBidWlsZCBzeXN0ZW0uCmJ1aWxk X2FsaWFzPQpidWlsZD1pNjg2LXBjLW1pbmd3MzIKYnVpbGRfb3M9bWluZ3cz MgoKIyBBIHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0 cHV0LgpTRUQ9Ii9iaW4vc2VkIgoKIyBTZWQgdGhhdCBoZWxwcyB1cyBhdm9p ZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlr ZSAtbi4KWHNlZD0iJFNFRCAtZSAxcy9eWC8vIgoKIyBBIGdyZXAgcHJvZ3Jh bSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcy4KR1JFUD0iL2Jpbi9ncmVwIgoK IyBBbiBFUkUgbWF0Y2hlci4KRUdSRVA9Ii9iaW4vZ3JlcCAtRSIKCiMgQSBs aXRlcmFsIHN0cmluZyBtYXRjaGVyLgpGR1JFUD0iL2Jpbi9ncmVwIC1GIgoK IyBBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rlci4KTk09Ii9i aW4vbm0gLUIiCgojIFdoZXRoZXIgd2UgbmVlZCBzb2Z0IG9yIGhhcmQgbGlu a3MuCkxOX1M9ImNwIC1wIgoKIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0 aCBvZiBhIGNvbW1hbmQ/Cm1heF9jbWRfbGVuPTgxOTIKCiMgT2JqZWN0IGZp bGUgc3VmZml4IChub3JtYWxseSAibyIpLgpvYmpleHQ9bwoKIyBFeGVjdXRh YmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCmV4ZWV4dD0KCiMgd2hl dGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KbHRfdW5zZXQ9 dW5zZXQKCiMgdHVybiBzcGFjZXMgaW50byBuZXdsaW5lcy4KU1AyTkw9InRy IFxcMDQwIFxcMDEyIgoKIyB0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzLgpO TDJTUD0idHIgXFwwMTVcXDAxMiBcXDA0MFxcMDQwIgoKIyBjb252ZXJ0ICRi dWlsZCBmaWxlIG5hbWVzIHRvICRob3N0IGZvcm1hdC4KdG9faG9zdF9maWxl X2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgoKIyBjb252ZXJ0 ICRidWlsZCBmaWxlcyB0byB0b29sY2hhaW4gZm9ybWF0Lgp0b190b29sX2Zp bGVfY21kPWZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCgojIE1ldGhv ZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNo YXJlZCBvYmplY3RzLgpkZXBsaWJzX2NoZWNrX21ldGhvZD0iZmlsZV9tYWdp YyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMIgoKIyBDb21tYW5kIHRv IHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMi LgpmaWxlX21hZ2ljX2NtZD0iZnVuY193aW4zMl9saWJpZCIKCiMgSG93IHRv IGZpbmQgcG90ZW50aWFsIGZpbGVzIHdoZW4gZGVwbGlic19jaGVja19tZXRo b2QgPSAiZmlsZV9tYWdpYyIuCmZpbGVfbWFnaWNfZ2xvYj0iIgoKIyBGaW5k IHBvdGVudGlhbCBmaWxlcyB1c2luZyBub2Nhc2VnbG9iIHdoZW4gZGVwbGli c19jaGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyIuCndhbnRfbm9jYXNlZ2xv Yj0ieWVzIgoKIyBDb21tYW5kIHRvIGFzc29jaWF0ZSBzaGFyZWQgYW5kIGxp bmsgbGlicmFyaWVzLgpzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0iZnVu Y19jeWdtaW5nX2RsbF9mb3JfaW1wbGliIgoKIyBUaGUgYXJjaGl2ZXIuCkFS PSJhciIKCiMgRmxhZ3MgdG8gY3JlYXRlIGFuIGFyY2hpdmUuCkFSX0ZMQUdT PSJjcnUiCgojIEhvdyB0byBmZWVkIGEgZmlsZSBsaXN0aW5nIHRvIHRoZSBh cmNoaXZlci4KYXJjaGl2ZXJfbGlzdF9zcGVjPSJAIgoKIyBBIHN5bWJvbCBz dHJpcHBpbmcgcHJvZ3JhbS4KU1RSSVA9InN0cmlwIgoKIyBDb21tYW5kcyB1 c2VkIHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuClJBTkxJQj0i cmFubGliIgpvbGRfcG9zdGluc3RhbGxfY21kcz0iY2htb2QgNjQ0IFwkb2xk bGliflwkUkFOTElCIFwkb2xkbGliIgpvbGRfcG9zdHVuaW5zdGFsbF9jbWRz PSIiCgojIFdoZXRoZXIgdG8gdXNlIGEgbG9jayBmb3Igb2xkIGFyY2hpdmUg ZXh0cmFjdGlvbi4KbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPW5vCgoj IEEgQyBjb21waWxlci4KTFRDQz0iZ2NjIgoKIyBMVENDIGNvbXBpbGVyIGZs YWdzLgpMVENGTEFHUz0iLU8zIC1zIC1tbXMtYml0ZmllbGRzIC1tYXJjaD1p Mzg2IC1tdHVuZT1pNjg2IgoKIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5k IHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVz LgpnbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbCSBdXFwo W0FCQ0RHSVJTVFddW0FCQ0RHSVJTVFddKlxcKVsJIF1bCSBdKl9cXChbX0Et WmEtel1bX0EtWmEtejAtOV0qXFwpXFx7MCwxXFx9XCQvXFwxIF9cXDIgXFwy L3AnIHwgc2VkICcvIF9fZ251X2x0by9kJyIKCiMgVHJhbnNmb3JtIHRoZSBv dXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KZ2xvYmFs X3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFxcKC4qXFwp XCQvZXh0ZXJuIGludCBcXDEoKTsvcCcgLWUgJ3MvXltBQkNER0lSU1RXXSog LiogXFwoLipcXClcJC9leHRlcm4gY2hhciBcXDE7L3AnIgoKIyBUcmFuc2Zv cm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIu Cmdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAn cy9eOiBcXChbXiBdKlxcKVsgXSpcJC8gIHtcXFwiXFwxXFxcIiwgKHZvaWQg KikgMH0sL3AnIC1lICdzL15bQUJDREdJUlNUV10qIFxcKFteIF0qXFwpIFxc KFteIF0qXFwpXCQvICB7XCJcXDJcIiwgKHZvaWQgKikgXFwmXFwyfSwvcCci CgojIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFk ZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkLgpnbG9iYWxf c3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAt ZSAncy9eOiBcXChbXiBdKlxcKVsgXSpcJC8gIHtcXFwiXFwxXFxcIiwgKHZv aWQgKikgMH0sL3AnIC1lICdzL15bQUJDREdJUlNUV10qIFxcKFteIF0qXFwp IFxcKGxpYlteIF0qXFwpXCQvICB7XCJcXDJcIiwgKHZvaWQgKikgXFwmXFwy fSwvcCcgLWUgJ3MvXltBQkNER0lSU1RXXSogXFwoW14gXSpcXCkgXFwoW14g XSpcXClcJC8gIHtcImxpYlxcMlwiLCAodm9pZCAqKSBcXCZcXDJ9LC9wJyIK CiMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzIGZv ciAkTk0uCm5tX2ZpbGVfbGlzdF9zcGVjPSJAIgoKIyBUaGUgcm9vdCB3aGVy ZSB0byBzZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJyYXJpZXMsYW5kIGluIHdo aWNoIG91ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4KbHRfc3lz cm9vdD0KCiMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRh aW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzLgpvYmpkaXI9LmxpYnMKCiMg VXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21k IGJlZ2lucyB3aXRoICJmaWxlIi4KTUFHSUNfQ01EPWZpbGUKCiMgTXVzdCB3 ZSBsb2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/Cm5lZWRfbG9j a3M9Im5vIgoKIyBNYW5pZmVzdCB0b29sLgpNQU5JRkVTVF9UT09MPSI6IgoK IyBUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3lt Ym9sIGZpbGVzIG9uIE1hYyBPUyBYLgpEU1lNVVRJTD0iIgoKIyBUb29sIHRv IGNoYW5nZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWC4K Tk1FRElUPSIiCgojIFRvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBh bmQgYXJjaGl2ZXMgb24gTWFjIE9TIFguCkxJUE89IiIKCiMgbGRkL3JlYWRl bGYgbGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFgu Ck9UT09MPSIiCgojIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0 IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWCAxMC40LgpPVE9PTDY0PSIi CgojIE9sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKS4KbGliZXh0 PWEKCiMgU2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNvIiku CnNocmV4dF9jbWRzPSIuZGxsIgoKIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFj dCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNo aXZlLgpleHRyYWN0X2V4cHN5bXNfY21kcz0iIgoKIyBWYXJpYWJsZXMgd2hv c2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIg c2NyaXB0cyBhbmQKIyByZXN0b3JlZCBhdCBsaW5rIHRpbWUuCnZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIIFBBVEggTERfUlVOX1BBVEggR0ND X0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgoKIyBE byB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/Cm5lZWRf bGliX3ByZWZpeD1ubwoKIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGli cmFyaWVzPwpuZWVkX3ZlcnNpb249bm8KCiMgTGlicmFyeSB2ZXJzaW9uaW5n IHR5cGUuCnZlcnNpb25fdHlwZT13aW5kb3dzCgojIFNoYXJlZCBsaWJyYXJ5 IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KcnVucGF0aF92YXI9TERfUlVOX1BB VEgKCiMgU2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4Kc2hsaWJwYXRo X3Zhcj1QQVRICgojIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhl IGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8Kc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwoKIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1l IHByZWZpeC4KbGlibmFtZV9zcGVjPSJsaWJcJG5hbWUiCgojIExpc3Qgb2Yg YXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0 aGUgcmVzdCBhcmUgbGlua3MuCiMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25l IHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRQpsaWJyYXJ5X25h bWVzX3NwZWM9IlwkbGlibmFtZS5kbGwuYSIKCiMgVGhlIGNvZGVkIG5hbWUg b2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5h bWUuCnNvbmFtZV9zcGVjPSJcJHtsaWJuYW1lfVxgZWNobyBcJHtyZWxlYXNl fSB8IFwkU0VEIC1lIHMvWy5dLy0vZ1xgXCR7dmVyc3VmZml4fVwke3NoYXJl ZF9leHR9IgoKIyBQZXJtaXNzaW9uIG1vZGUgb3ZlcnJpZGUgZm9yIGluc3Rh bGxhdGlvbiBvZiBzaGFyZWQgbGlicmFyaWVzLgppbnN0YWxsX292ZXJyaWRl X21vZGU9IiIKCiMgQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9u IG9mIGEgc2hhcmVkIGFyY2hpdmUuCnBvc3RpbnN0YWxsX2NtZHM9ImJhc2Vf ZmlsZT1cXFxgYmFzZW5hbWUgXFxcJHtmaWxlfVxcXGB+CiAgICAgIGRscGF0 aD1cXFxgXCRTSEVMTCAyPiYxIC1jICcuIFwkZGlyLydcXFwke2Jhc2VfZmls ZX0naTsgZWNobyBcXFwkZGxuYW1lJ1xcXGB+CiAgICAgIGRsZGlyPVwkZGVz dGRpci9cXFxgZGlybmFtZSBcXFwkZGxwYXRoXFxcYH4KICAgICAgdGVzdCAt ZCBcXFwkZGxkaXIgfHwgbWtkaXIgLXAgXFxcJGRsZGlyfgogICAgICBcJGlu c3RhbGxfcHJvZyBcJGRpci9cJGRsbmFtZSBcXFwkZGxkaXIvXCRkbG5hbWV+ CiAgICAgIGNobW9kIGEreCBcXFwkZGxkaXIvXCRkbG5hbWV+CiAgICAgIGlm IHRlc3QgLW4gJ1wkc3RyaXBtZScgJiYgdGVzdCAtbiAnXCRzdHJpcGxpYic7 IHRoZW4KICAgICAgICBldmFsICdcJHN0cmlwbGliIFxcXCRkbGRpci9cJGRs bmFtZScgfHwgZXhpdCBcXFwkPzsKICAgICAgZmkiCgojIENvbW1hbmQgdG8g dXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUu CnBvc3R1bmluc3RhbGxfY21kcz0iZGxkbGw9XFxcYFwkU0hFTEwgMj4mMSAt YyAnLiBcJGZpbGU7IGVjaG8gXFxcJGRsbmFtZSdcXFxgfgogICAgICBkbHBh dGg9XCRkaXIvXFxcJGRsZGxsfgogICAgICAgXCRSTSBcXFwkZGxwYXRoIgoK IyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBp bnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCmZpbmlzaF9jbWRzPSIiCgoj IEFzICJmaW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJh Z21lbnQgdG8gYmUgZXZhbGVkIGJ1dAojIG5vdCBzaG93bi4KZmluaXNoX2V2 YWw9IiIKCiMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBw YXRocyBpbnRvIGxpYnJhcmllcy4KaGFyZGNvZGVfaW50b19saWJzPW5vCgoj IENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmll cy4Kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSJjOi9taW5ndy9saWIvZ2Nj L21pbmd3MzIvNC44LjEgYzovbWluZ3cvbGliL2djYyBjOi9taW5ndy9taW5n dzMyL2xpYiBjOi9taW5ndy9saWIgL21pbmd3L2xpYiAiCgojIFJ1bi10aW1l IHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgpzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKCiMgV2hldGhlciBk bG9wZW4gaXMgc3VwcG9ydGVkLgpkbG9wZW5fc3VwcG9ydD15ZXMKCiMgV2hl dGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgpkbG9wZW5f c2VsZj11bmtub3duCgojIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkg bGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KZGxvcGVuX3NlbGZfc3Rh dGljPXVua25vd24KCiMgQ29tbWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzLgpv bGRfc3RyaXBsaWI9InN0cmlwIC0tc3RyaXAtZGVidWciCnN0cmlwbGliPSJz dHJpcCAtLXN0cmlwLXVubmVlZGVkIgoKCiMgVGhlIGxpbmtlciB1c2VkIHRv IGJ1aWxkIGxpYnJhcmllcy4KTEQ9ImM6L21pbmd3L21pbmd3MzIvYmluL2xk LmV4ZSIKCiMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxl cy4KcmVsb2FkX2ZsYWc9IiAtciIKcmVsb2FkX2NtZHM9IlwkTERcJHJlbG9h ZF9mbGFnIC1vIFwkb3V0cHV0XCRyZWxvYWRfb2JqcyIKCiMgQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hp dmVfY21kcz0iXCRBUiBcJEFSX0ZMQUdTIFwkb2xkbGliXCRvbGRvYmpzflwk UkFOTElCIFwkb2xkbGliIgoKIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBp bGVyLgpDQz0iZ2NjIgoKIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21w aWxlcj8Kd2l0aF9nY2M9eWVzCgojIENvbXBpbGVyIGZsYWcgdG8gdHVybiBv ZmYgYnVpbHRpbiBmdW5jdGlvbnMuCm5vX2J1aWx0aW5fZmxhZz0iIC1mbm8t YnVpbHRpbiIKCiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVp bGRpbmcgbGlicmFyeSBvYmplY3RzLgpwaWNfZmxhZz0iIC1ERExMX0VYUE9S VCAtRFBJQyIKCiMgSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdo IHRoZSBjb21waWxlci4Kd2w9Ii1XbCwiCgojIENvbXBpbGVyIGZsYWcgdG8g cHJldmVudCBkeW5hbWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9Ii1z dGF0aWMiCgojIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9y dCAtYyBhbmQgLW8gb3B0aW9ucz8KY29tcGlsZXJfY19vPSJ5ZXMiCgojIFdo ZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBs aWJyYXJpZXMuCmJ1aWxkX2xpYnRvb2xfbmVlZF9sYz15ZXMKCiMgV2hldGhl ciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1l IGxpYnMgYXJlIHN0YXRpYy4KYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3Rh dGljX3J1bnRpbWVzPXllcwoKIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJl ZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9Ilwk e3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzIgoKIyBDb21waWxlciBmbGFnIHRv IGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJjaGl2 ZXMuCndob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSJcJHt3bH0tLXdob2xlLWFy Y2hpdmVcJGNvbnZlbmllbmNlIFwke3dsfS0tbm8td2hvbGUtYXJjaGl2ZSIK CiMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5v IG9iamVjdHMgZGlyZWN0bHkuCmNvbXBpbGVyX25lZWRzX29iamVjdD0ibm8i CgojIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVk IGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9IiIKCiMgQ3Jl YXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5z dGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kcz0iIgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hh cmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0iXCRDQyAtc2hhcmVkIFwkbGli b2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtbyBcJG91dHB1dF9v YmpkaXIvXCRzb25hbWUgXCR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNl IC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciBcJGxpYiIKYXJjaGl2 ZV9leHBzeW1fY21kcz0iaWYgdGVzdCBcXFwieFxcXGBcJFNFRCAxcSBcJGV4 cG9ydF9zeW1ib2xzXFxcYFxcXCIgPSB4RVhQT1JUUzsgdGhlbgoJICBjcCBc JGV4cG9ydF9zeW1ib2xzIFwkb3V0cHV0X29iamRpci9cJHNvbmFtZS5kZWY7 CgllbHNlCgkgIGVjaG8gRVhQT1JUUyA+IFwkb3V0cHV0X29iamRpci9cJHNv bmFtZS5kZWY7CgkgIGNhdCBcJGV4cG9ydF9zeW1ib2xzID4+IFwkb3V0cHV0 X29iamRpci9cJHNvbmFtZS5kZWY7CglmaX4KCVwkQ0MgLXNoYXJlZCBcJG91 dHB1dF9vYmpkaXIvXCRzb25hbWUuZGVmIFwkbGlib2JqcyBcJGRlcGxpYnMg XCRjb21waWxlcl9mbGFncyAtbyBcJG91dHB1dF9vYmpkaXIvXCRzb25hbWUg XCR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciBcJGxpYiIKCiMgQ29tbWFuZHMgdXNlZCB0byBi dWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWls ZGluZwojIGEgc2hhcmVkIGFyY2hpdmUuCm1vZHVsZV9jbWRzPSIiCm1vZHVs ZV9leHBzeW1fY21kcz0iIgoKIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3 aXRoIEdOVSBsZCBvciBub3QuCndpdGhfZ251X2xkPSJ5ZXMiCgojIEZsYWcg dGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBz eW1ib2xzIHRvIGJlIGJ1aWx0LgphbGxvd191bmRlZmluZWRfZmxhZz0idW5z dXBwb3J0ZWQiCgojIEZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQg c3ltYm9scy4Kbm9fdW5kZWZpbmVkX2ZsYWc9IiIKCiMgRmxhZyB0byBoYXJk Y29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCiMg VGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0 CmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ii1MXCRsaWJkaXIiCgojIElm IGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlICRs aWJkaXIgaW50byBhIGJpbmFyeQojIGR1cmluZyBsaW5raW5nLiAgVGhpcyBt dXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0LgpoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSIiCgojIFdoZXRoZXIgd2UgbmVl ZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJn dW1lbnQuCmhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9IiIKCiMgU2V0IHRv ICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJp bmcgbGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUgcmVzdWx0aW5n IGJpbmFyeS4KaGFyZGNvZGVfZGlyZWN0PW5vCgojIFNldCB0byAieWVzIiBp ZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkg YW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCiMgImFi c29sdXRlIixpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyAk e3NobGlicGF0aF92YXJ9IGlmIHRoZQojIGxpYnJhcnkgaXMgcmVsb2NhdGVk LgpoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9bm8KCiMgU2V0IHRvICJ5ZXMi IGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRj b2RlcyBESVIKIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29k ZV9taW51c19MPW5vCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBB VEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj11bnN1cHBvcnRlZAoKIyBTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBz aGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKIyBp bnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMg YW5kIGV4ZWN1dGFibGVzIGxpbmtlZAojIGFnYWluc3QgaXQuCmhhcmRjb2Rl X2F1dG9tYXRpYz1ubwoKIyBTZXQgdG8geWVzIGlmIGxpbmtlciBhZGRzIHJ1 bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwojIHRvIHJ1bnRp bWUgcGF0aCBsaXN0Lgppbmhlcml0X3JwYXRoPW5vCgojIFdoZXRoZXIgbGli dG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBl bmRlbmN5IGxpYnJhcmllcy4KbGlua19hbGxfZGVwbGlicz11bmtub3duCgoj IFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJl ZC4KYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCgojIFRoZSBjb21tYW5kcyB0 byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCmV4cG9ydF9zeW1ib2xzX2NtZHM9 IlwkTk0gXCRsaWJvYmpzIFwkY29udmVuaWVuY2UgfCBcJGdsb2JhbF9zeW1i b2xfcGlwZSB8IFwkU0VEIC1lICcvXltCQ0RHUlNdWyBdL3MvLipbIF1cXFxc KFteIF0qXFxcXCkvXFxcXDEgREFUQS87cy9eLipbIF1fX25tX19cXFxcKFte IF0qXFxcXClbIF1bXiBdKi9cXFxcMSBEQVRBLzsvXklbIF0vZDsvXltBSVRX XVsgXS9zLy4qIC8vJyB8IHNvcnQgfCB1bmlxID4gXCRleHBvcnRfc3ltYm9s cyIKCiMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRo ZSBwcmVsb2FkZWQgc3ltYm9scy4KZXhjbHVkZV9leHBzeW1zPSJbX10rR0xP QkFMX09GRlNFVF9UQUJMRV98W19dK0dMT0JBTF9fW0ZJRF1fLip8W19dK2hl YWRfW0EtWmEtejAtOV9dK19kbGx8W0EtWmEtejAtOV9dK19kbGxfaW5hbWUi CgojIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4KaW5j bHVkZV9leHBzeW1zPSIiCgojIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlu a2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxh dGVzLgpwcmVsaW5rX2NtZHM9IiIKCiMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZv ciBmaW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4KcG9zdGxpbmtfY21kcz0i IgoKIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMu CmZpbGVfbGlzdF9zcGVjPSIiCgojIEhvdyB0byBoYXJkY29kZSBhIHNoYXJl ZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgpoYXJkY29kZV9h Y3Rpb249aW1tZWRpYXRlCgojIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBi eSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGlicmFy eS4KY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSIiCgojIERlcGVuZGVuY2ll cyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5n IGxpbmtlZCB0bwojIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgpwcmVkZXBf b2JqZWN0cz0iIgpwb3N0ZGVwX29iamVjdHM9IiIKcHJlZGVwcz0iIgpwb3N0 ZGVwcz0iIgoKIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVy bmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZwojIGEgc2hhcmVk IGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0iIgoKIyAjIyMg RU5EIExJQlRPT0wgQ09ORklHCgoKIyBsaWJ0b29sIChHTlUgbGlidG9vbCkg Mi40CiMgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUu YWkubWl0LmVkdT4sIDE5OTYKCiMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LAojIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUg dGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMg Tk8KIyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KCiMgR05VIExp YnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgojCiMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCiMgaWYgeW91IGRpc3Ry aWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJh cnkgdGhhdAojIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5 IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQojIHNhbWUgZGlzdHJpYnV0 aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBw cm9ncmFtLgojCiMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CiMgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiMgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUg Q09QWUlORy4gIElmIG5vdCwgYSBjb3B5CiMgY2FuIGJlIGRvd25sb2FkZWQg ZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwsCiMg b3Igb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuLAojIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgoKIyBVc2FnZTog JHByb2duYW1lIFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4KIwojIFByb3Zp ZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZp Y2VzLgojCiMgICAgICAgLS1jb25maWcgICAgICAgICAgICAgc2hvdyBhbGwg Y29uZmlndXJhdGlvbiB2YXJpYWJsZXMKIyAgICAgICAtLWRlYnVnICAgICAg ICAgICAgICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCiMgICAtbiwg LS1kcnktcnVuICAgICAgICAgICAgZGlzcGxheSBjb21tYW5kcyB3aXRob3V0 IG1vZGlmeWluZyBhbnkgZmlsZXMKIyAgICAgICAtLWZlYXR1cmVzICAgICAg ICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24g YW5kIGV4aXQKIyAgICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ugb3Bl cmF0aW9uIG1vZGUgTU9ERQojICAgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMg IGRvbid0IHJlbW92ZSBkdXBsaWNhdGUgZGVwZW5kZW5jeSBsaWJyYXJpZXMK IyAgICAgICAtLXF1aWV0LCAtLXNpbGVudCAgICBkb24ndCBwcmludCBpbmZv cm1hdGlvbmFsIG1lc3NhZ2VzCiMgICAgICAgLS1uby1xdWlldCwgLS1uby1z aWxlbnQKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBpbmZv cm1hdGlvbmFsIG1lc3NhZ2VzIChkZWZhdWx0KQojICAgICAgIC0tdGFnPVRB RyAgICAgICAgICAgIHVzZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmcm9t IHRhZyBUQUcKIyAgIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBwcmludCBt b3JlIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgdGhhbiBkZWZhdWx0CiMgICAg ICAgLS1uby12ZXJib3NlICAgICAgICAgZG9uJ3QgcHJpbnQgdGhlIGV4dHJh IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMKIyAgICAgICAtLXZlcnNpb24gICAg ICAgICAgICBwcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uCiMgICAtaCwgLS1o ZWxwLCAtLWhlbHAtYWxsICAgcHJpbnQgc2hvcnQsIGxvbmcsIG9yIGRldGFp bGVkIGhlbHAgbWVzc2FnZQojCiMgTU9ERSBtdXN0IGJlIG9uZSBvZiB0aGUg Zm9sbG93aW5nOgojCiMgICAgICAgICBjbGVhbiAgICAgICAgICAgICAgcmVt b3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeQojICAgICAgICAg Y29tcGlsZSAgICAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRv IGEgbGlidG9vbCBvYmplY3QKIyAgICAgICAgIGV4ZWN1dGUgICAgICAgICAg ICBhdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEg cHJvZ3JhbQojICAgICAgICAgZmluaXNoICAgICAgICAgICAgIGNvbXBsZXRl IHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMKIyAgICAg ICAgIGluc3RhbGwgICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBl eGVjdXRhYmxlcwojICAgICAgICAgbGluayAgICAgICAgICAgICAgIGNyZWF0 ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJsZQojICAgICAgICAgdW5pbnN0 YWxsICAgICAgICAgIHJlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxs ZWQgZGlyZWN0b3J5CiMKIyBNT0RFLUFSR1MgdmFyeSBkZXBlbmRpbmcgb24g dGhlIE1PREUuICBXaGVuIHBhc3NlZCBhcyBmaXJzdCBvcHRpb24sCiMgYC0t bW9kZT1NT0RFJyBtYXkgYmUgYWJicmV2aWF0ZWQgYXMgYE1PREUnIG9yIGEg dW5pcXVlIGFiYnJldmlhdGlvbiBvZiB0aGF0LgojIFRyeSBgJHByb2duYW1l IC0taGVscCAtLW1vZGU9TU9ERScgZm9yIGEgbW9yZSBkZXRhaWxlZCBkZXNj cmlwdGlvbiBvZiBNT0RFLgojCiMgV2hlbiByZXBvcnRpbmcgYSBidWcsIHBs ZWFzZSBkZXNjcmliZSBhIHRlc3QgY2FzZSB0byByZXByb2R1Y2UgaXQgYW5k CiMgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgojCiMgICAg ICAgICBob3N0LXRyaXBsZXQ6CSRob3N0CiMgICAgICAgICBzaGVsbDoJCSRT SEVMTAojICAgICAgICAgY29tcGlsZXI6CQkkTFRDQwojICAgICAgICAgY29t cGlsZXIgZmxhZ3M6CQkkTFRDRkxBR1MKIyAgICAgICAgIGxpbmtlcjoJCSRM RCAoZ251PyAkd2l0aF9nbnVfbGQpCiMgICAgICAgICAkcHJvZ25hbWU6CShH TlUgbGlidG9vbCkgMi40CiMgICAgICAgICBhdXRvbWFrZToJJGF1dG9tYWtl X3ZlcnNpb24KIyAgICAgICAgIGF1dG9jb25mOgkkYXV0b2NvbmZfdmVyc2lv bgojCiMgUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+Lgoj IEdOVSBsaWJ0b29sIGhvbWUgcGFnZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9saWJ0b29sLz4uCiMgR2VuZXJhbCBoZWxwIHVzaW5nIEdOVSBz b2Z0d2FyZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9nZXRoZWxwLz4uCgpQUk9H UkFNPWxpYnRvb2wKUEFDS0FHRT1saWJ0b29sClZFUlNJT049Mi40ClRJTUVT VEFNUD0iIgpwYWNrYWdlX3JldmlzaW9uPTEuMzI5NAoKIyBCZSBCb3VybmUg Y29tcGF0aWJsZQppZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYm IChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBlbXVsYXRl IHNoCiAgTlVMTENNRD06CiAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMg d29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAogICMgaXMgY29u dHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCiAg YWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCiAgc2V0b3B0IE5PX0dMT0Jf U1VCU1QKZWxzZQogIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAq cG9zaXgqKSBzZXQgLW8gcG9zaXg7OyBlc2FjCmZpCkJJTl9TSD14cGc0OyBl eHBvcnQgQklOX1NIICMgZm9yIFRydTY0CkRVQUxDQVNFPTE7IGV4cG9ydCBE VUFMQ0FTRSAjIGZvciBNS1Mgc2gKCiMgQSBmdW5jdGlvbiB0aGF0IGlzIHVz ZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4K ZnVuY19mYWxsYmFja19lY2hvICgpCnsKICBldmFsICdjYXQgPDxfTFRFQ0hP X0VPRgokMQpfTFRFQ0hPX0VPRicKfQoKIyBOTFMgbnVpc2FuY2VzOiBXZSBz YXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUg bW9kZS4KbHRfdXNlcl9sb2NhbGU9Cmx0X3NhZmVfbG9jYWxlPQpmb3IgbHRf dmFyIGluIExBTkcgTEFOR1VBR0UgTENfQUxMIExDX0NUWVBFIExDX0NPTExB VEUgTENfTUVTU0FHRVMKZG8KICBldmFsICJpZiB0ZXN0IFwiXCR7JGx0X3Zh citzZXR9XCIgPSBzZXQ7IHRoZW4KICAgICAgICAgIHNhdmVfJGx0X3Zhcj1c JCRsdF92YXIKICAgICAgICAgICRsdF92YXI9QwoJICBleHBvcnQgJGx0X3Zh cgoJICBsdF91c2VyX2xvY2FsZT1cIiRsdF92YXI9XFxcJHNhdmVfXCRsdF92 YXI7IFwkbHRfdXNlcl9sb2NhbGVcIgoJICBsdF9zYWZlX2xvY2FsZT1cIiRs dF92YXI9QzsgXCRsdF9zYWZlX2xvY2FsZVwiCglmaSIKZG9uZQpMQ19BTEw9 QwpMQU5HVUFHRT1DCmV4cG9ydCBMQU5HVUFHRSBMQ19BTEwKCiRsdF91bnNl dCBDRFBBVEgKCgojIFdvcmsgYXJvdW5kIGJhY2t3YXJkIGNvbXBhdGliaWxp dHkgaXNzdWUgb24gSVJJWCA2LjUuIE9uIElSSVggNi40Kywgc2gKIyBpcyBr c2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQg dGhlIGN1cnJlbnQgdmFsdWUgb2YKIyB0aGUgX1hQRyBlbnZpcm9ubWVudCB2 YXJpYWJsZSBpcyBub3QgZXF1YWwgdG8gMSAob25lKSwgdGhlIHNwZWNpYWwK IyBwb3NpdGlvbmFsIHBhcmFtZXRlciAkMCwgd2l0aGluIGEgZnVuY3Rpb24g Y2FsbCwgaXMgdGhlIG5hbWUgb2YgdGhlCiMgZnVuY3Rpb24uCnByb2dwYXRo PSIkMCIKCgoKOiAke0NQPSJjcCAtZiJ9CnRlc3QgIiR7RUNITytzZXR9IiA9 IHNldCB8fCBFQ0hPPSR7YXNfZWNoby0ncHJpbnRmICVzXG4nfQo6ICR7RUdS RVA9Ii9iaW4vZ3JlcCAtRSJ9CjogJHtGR1JFUD0iL2Jpbi9ncmVwIC1GIn0K OiAke0dSRVA9Ii9iaW4vZ3JlcCJ9CjogJHtMTl9TPSJjcCAtcCJ9CjogJHtN QUtFPSJtYWtlIn0KOiAke01LRElSPSJta2RpciJ9CjogJHtNVj0ibXYgLWYi fQo6ICR7Uk09InJtIC1mIn0KOiAke1NFRD0iL2Jpbi9zZWQifQo6ICR7U0hF TEw9IiR7Q09ORklHX1NIRUxMLS9iaW4vc2h9In0KOiAke1hzZWQ9IiRTRUQg LWUgMXMvXlgvLyJ9CgojIEdsb2JhbCB2YXJpYWJsZXM6CkVYSVRfU1VDQ0VT Uz0wCkVYSVRfRkFJTFVSRT0xCkVYSVRfTUlTTUFUQ0g9NjMgICMgJD8gPSA2 MyBpcyB1c2VkIHRvIGluZGljYXRlIHZlcnNpb24gbWlzbWF0Y2ggdG8gbWlz c2luZy4KRVhJVF9TS0lQPTc3CSAgIyAkPyA9IDc3IGlzIHVzZWQgdG8gaW5k aWNhdGUgYSBza2lwcGVkIHRlc3QgdG8gYXV0b21ha2UuCgpleGl0X3N0YXR1 cz0kRVhJVF9TVUNDRVNTCgojIE1ha2Ugc3VyZSBJRlMgaGFzIGEgc2Vuc2li bGUgZGVmYXVsdApsdF9ubD0nCicKSUZTPSIgCSRsdF9ubCIKCmRpcm5hbWU9 InMsL1teL10qJCwsIgpiYXNlbmFtZT0icyxeLiovLCwiCgojIGZ1bmNfZGly bmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKIyBDb21wdXRl IHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVO RCB0byB0aGUgcmVzdWx0LAojIG90aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5P TkRJUl9SRVBMQUNFTUVOVC4KZnVuY19kaXJuYW1lICgpCnsKICAgIGNhc2Ug JHsxfSBpbgogICAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUv Kn0kezJ9IiA7OwogICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7 M30iIDs7CiAgICBlc2FjCn0gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2Rpcm5h bWUgaW1wbGVtZW50YXRpb24KCgojIGZ1bmNfYmFzZW5hbWUgZmlsZQpmdW5j X2Jhc2VuYW1lICgpCnsKICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEj IyovfSIKfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfYmFzZW5hbWUgaW1wbGVt ZW50YXRpb24KCgojIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBh cHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CiMgcGVyZm9ybSBmdW5jX2Jhc2Vu YW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KIyBj YWxsOgojICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklM RS4gIElmIG5vbmVtcHR5LAojICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8g dGhlIHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKIyAgICAgICAgICAg ICB0byBOT05ESVJfUkVQTEFDRU1FTlQuCiMgICAgICAgICAgICAgdmFsdWUg cmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgojICAgYmFzZW5h bWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KIyAgICAgICAgICAgICB2 YWx1ZSByZXR1bmVkIGluICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCiMgSW1w bGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1 bmNfZGlybmFtZQojIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5j eSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCiMgdGhvc2UgZnVuY3Rpb25zIGJ1 dCBpbnN0ZWFkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgpm dW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCnsKICAgIGNhc2UgJHsxfSBp bgogICAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9 IiA7OwogICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7 CiAgICBlc2FjCiAgICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30i Cn0gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1l IGltcGxlbWVudGF0aW9uCgoKIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3Vm Zml4IG5hbWUKIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFN RS4KIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2Ji aW5nIG9yIHJlZ2V4IHNwZWNpYWwKIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBl cmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5n CiMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90 KS4KIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFtZQpmdW5jX3N0cmlw bmFtZSAoKQp7CiAgICAjIHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1gl JFl9IGNvcnJlY3RseSBpZiBib3RoIFggYW5kIFkgYXJlCiAgICAjIHBvc2l0 aW9uYWwgcGFyYW1ldGVycywgc28gYXNzaWduIG9uZSB0byBvcmRpbmFyeSBw YXJhbWV0ZXIgZmlyc3QuCiAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHsz fQogICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVf cmVzdWx0IyIkezF9In0KICAgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1 bmNfc3RyaXBuYW1lX3Jlc3VsdCUiJHsyfSJ9Cn0gIyBFeHRlbmRlZC1zaGVs bCBmdW5jX3N0cmlwbmFtZSBpbXBsZW1lbnRhdGlvbgoKCiMgVGhlc2UgU0VE IHNjcmlwdHMgcHJlc3VwcG9zZSBhbiBhYnNvbHV0ZSBwYXRoIHdpdGggYSB0 cmFpbGluZyBzbGFzaC4KcGF0aGNhcj0ncyxeL1woW14vXSpcKS4qJCxcMSwn CnBhdGhjZHI9J3MsXi9bXi9dKiwsJwpyZW1vdmVkb3RwYXJ0cz0nOmRvdHNs CgkJc0AvXC4vQC9AZwoJCXQgZG90c2wKCQlzLC9cLiQsLywnCmNvbGxhcHNl c2xhc2hlcz0nc0AvXHsxLFx9QC9AZycKZmluYWxzbGFzaD0ncywvKiQsLywn CgojIGZ1bmNfbm9ybWFsX2Fic3BhdGggUEFUSAojIFJlbW92ZSBkb3VibGVk LXVwIGFuZCB0cmFpbGluZyBzbGFzaGVzLCAiLiIgcGF0aCBjb21wb25lbnRz LAojIGFuZCBjYW5jZWwgb3V0IGFueSAiLi4iIHBhdGggY29tcG9uZW50cyBp biBQQVRIIGFmdGVyIG1ha2luZwojIGl0IGFuIGFic29sdXRlIHBhdGguCiMg ICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX25vcm1hbF9h YnNwYXRoX3Jlc3VsdCIKZnVuY19ub3JtYWxfYWJzcGF0aCAoKQp7CiAgIyBT dGFydCBmcm9tIHJvb3QgZGlyIGFuZCByZWFzc2VtYmxlIHRoZSBwYXRoLgog IGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PQogIGZ1bmNfbm9ybWFsX2Fi c3BhdGhfdHBhdGg9JDEKICBmdW5jX25vcm1hbF9hYnNwYXRoX2FsdG5hbWVz cGFjZT0KICBjYXNlICRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoIGluCiAg ICAiIikKICAgICAgIyBFbXB0eSBwYXRoLCB0aGF0IGp1c3QgbWVhbnMgJGN3 ZC4KICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy8nICJgcHdkYCIKICAgICAg ZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9JGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdAogICAgICByZXR1cm4KICAgIDs7CiAgICAjIFRoZSBuZXh0IHRocmVl IGVudHJpZXMgYXJlIHVzZWQgdG8gc3BvdCBhIHJ1biBvZiBwcmVjaXNlbHkK ICAgICMgdHdvIGxlYWRpbmcgc2xhc2hlcyB3aXRob3V0IHVzaW5nIG5lZ2F0 ZWQgY2hhcmFjdGVyIGNsYXNzZXM7CiAgICAjIHdlIHRha2UgYWR2YW50YWdl IG9mIGNhc2UncyBmaXJzdC1tYXRjaCBiZWhhdmlvdXIuCiAgICAvLy8qKQog ICAgICAjIFVudXN1YWwgZm9ybSBvZiBhYnNvbHV0ZSBwYXRoLCBkbyBub3Ro aW5nLgogICAgOzsKICAgIC8vKikKICAgICAgIyBOb3QgbmVjZXNzYXJpbHkg YW4gb3JkaW5hcnkgcGF0aDsgUE9TSVggcmVzZXJ2ZXMgbGVhZGluZyAnLy8n CiAgICAgICMgYW5kIGZvciBleGFtcGxlIEN5Z3dpbiB1c2VzIGl0IHRvIGFj Y2VzcyByZW1vdGUgZmlsZSBzaGFyZXMKICAgICAgIyBvdmVyIENJRlMvU01C LCBzbyB3ZSBjb25zZXJ2ZSBhIGxlYWRpbmcgZG91YmxlIHNsYXNoIGlmIGZv dW5kLgogICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX2FsdG5hbWVzcGFjZT0v CiAgICA7OwogICAgLyopCiAgICAgICMgQWJzb2x1dGUgcGF0aCwgZG8gbm90 aGluZy4KICAgIDs7CiAgICAqKQogICAgICAjIFJlbGF0aXZlIHBhdGgsIHBy ZXBlbmQgJGN3ZC4KICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD1g cHdkYC8kZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aAogICAgOzsKICBlc2Fj CiAgIyBDYW5jZWwgb3V0IGFsbCB0aGUgc2ltcGxlIHN0dWZmIHRvIHNhdmUg aXRlcmF0aW9ucy4gIFdlIGFsc28gd2FudAogICMgdGhlIHBhdGggdG8gZW5k IHdpdGggYSBzbGFzaCBmb3IgZWFzZSBvZiBwYXJzaW5nLCBzbyBtYWtlIHN1 cmUKICAjIHRoZXJlIGlzIG9uZSAoYW5kIG9ubHkgb25lKSBoZXJlLgogIGZ1 bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxf YWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKICAgICAgICAtZSAiJHJlbW92ZWRv dHBhcnRzIiAtZSAiJGNvbGxhcHNlc2xhc2hlcyIgLWUgIiRmaW5hbHNsYXNo ImAKICB3aGlsZSA6OyBkbwogICAgIyBQcm9jZXNzZWQgaXQgYWxsIHlldD8K ICAgIGlmIHRlc3QgIiRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoIiA9IC8g OyB0aGVuCiAgICAgICMgSWYgd2UgYXNjZW5kZWQgdG8gdGhlIHJvb3QgdXNp bmcgIi4uIiB0aGUgcmVzdWx0IG1heSBiZSBlbXB0eSBub3cuCiAgICAgIGlm IHRlc3QgLXogIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCIgOyB0aGVu CiAgICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9LwogICAgICBm aQogICAgICBicmVhawogICAgZmkKICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhf dGNvbXBvbmVudD1gJEVDSE8gIiRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRo IiB8ICRTRUQgXAogICAgICAgIC1lICIkcGF0aGNhciJgCiAgICBmdW5jX25v cm1hbF9hYnNwYXRoX3RwYXRoPWAkRUNITyAiJGZ1bmNfbm9ybWFsX2Fic3Bh dGhfdHBhdGgiIHwgJFNFRCBcCiAgICAgICAgLWUgIiRwYXRoY2RyImAKICAg ICMgRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggaXQKICAgIGNhc2UgJGZ1 bmNfbm9ybWFsX2Fic3BhdGhfdGNvbXBvbmVudCBpbgogICAgICAiIikKICAg ICAgICAjIFRyYWlsaW5nIGVtcHR5IHBhdGggY29tcG9uZW50LCBpZ25vcmUg aXQuCiAgICAgIDs7CiAgICAgIC4uKQogICAgICAgICMgUGFyZW50IGRpcjsg c3RyaXAgbGFzdCBhc3NlbWJsZWQgY29tcG9uZW50IGZyb20gcmVzdWx0Lgog ICAgICAgIGZ1bmNfZGlybmFtZSAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVz dWx0IgogICAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PSRmdW5j X2Rpcm5hbWVfcmVzdWx0CiAgICAgIDs7CiAgICAgICopCiAgICAgICAgIyBB Y3R1YWwgcGF0aCBjb21wb25lbnQsIGFwcGVuZCBpdC4KICAgICAgICBmdW5j X25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19ub3JtYWxfYWJzcGF0aF9y ZXN1bHQvJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdGNvbXBvbmVudAogICAgICA7 OwogICAgZXNhYwogIGRvbmUKICAjIFJlc3RvcmUgbGVhZGluZyBkb3VibGUt c2xhc2ggaWYgb25lIHdhcyBmb3VuZCBvbiBlbnRyeS4KICBmdW5jX25vcm1h bF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1l c3BhY2UkZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKfQoKIyBmdW5jX3Jl bGF0aXZlX3BhdGggU1JDRElSIERTVERJUgojIGdlbmVyYXRlcyBhIHJlbGF0 aXZlIHBhdGggZnJvbSBTUkNESVIgdG8gRFNURElSLCB3aXRoIGEgdHJhaWxp bmcKIyBzbGFzaCBpZiBub24tZW1wdHksIHN1aXRhYmxlIGZvciBpbW1lZGlh dGVseSBhcHBlbmRpbmcgYSBmaWxlbmFtZQojIHdpdGhvdXQgbmVlZGluZyB0 byBhcHBlbmQgYSBzZXBhcmF0b3IuCiMgICAgICAgICAgICAgdmFsdWUgcmV0 dXJuZWQgaW4gIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IgpmdW5jX3Jl bGF0aXZlX3BhdGggKCkKewogIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9 CiAgZnVuY19ub3JtYWxfYWJzcGF0aCAiJDEiCiAgZnVuY19yZWxhdGl2ZV9w YXRoX3RsaWJkaXI9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0CiAgZnVu Y19ub3JtYWxfYWJzcGF0aCAiJDIiCiAgZnVuY19yZWxhdGl2ZV9wYXRoX3Ri aW5kaXI9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0CgogICMgQXNjZW5k IHRoZSB0cmVlIHN0YXJ0aW5nIGZyb20gbGliZGlyCiAgd2hpbGUgOjsgZG8K ICAgICMgY2hlY2sgaWYgd2UgaGF2ZSBmb3VuZCBhIHByZWZpeCBvZiBiaW5k aXIKICAgIGNhc2UgJGZ1bmNfcmVsYXRpdmVfcGF0aF90YmluZGlyIGluCiAg ICAgICRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcikKICAgICAgICAjIGZv dW5kIGFuIGV4YWN0IG1hdGNoCiAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRo X3RjYW5jZWxsZWQ9CiAgICAgICAgYnJlYWsKICAgICAgICA7OwogICAgICAk ZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIqKQogICAgICAgICMgZm91bmQg YSBtYXRjaGluZyBwcmVmaXgKICAgICAgICBmdW5jX3N0cmlwbmFtZSAiJGZ1 bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyIiAnJyAiJGZ1bmNfcmVsYXRpdmVf cGF0aF90YmluZGlyIgogICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2Fu Y2VsbGVkPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgICAgICBpZiB0ZXN0 IC16ICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCI7IHRoZW4KICAgICAg ICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9LgogICAgICAgIGZpCiAg ICAgICAgYnJlYWsKICAgICAgICA7OwogICAgICAqKQogICAgICAgIGZ1bmNf ZGlybmFtZSAkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIKICAgICAgICBm dW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcj0ke2Z1bmNfZGlybmFtZV9yZXN1 bHR9CiAgICAgICAgaWYgdGVzdCAieCRmdW5jX3JlbGF0aXZlX3BhdGhfdGxp YmRpciIgPSB4IDsgdGhlbgogICAgICAgICAgIyBIYXZlIHRvIGRlc2NlbmQg YWxsIHRoZSB3YXkgdG8gdGhlIHJvb3QhCiAgICAgICAgICBmdW5jX3JlbGF0 aXZlX3BhdGhfcmVzdWx0PS4uLyRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0 CiAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGNhbmNlbGxlZD0kZnVu Y19yZWxhdGl2ZV9wYXRoX3RiaW5kaXIKICAgICAgICAgIGJyZWFrCiAgICAg ICAgZmkKICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4uLyRm dW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0CiAgICAgICAgOzsKICAgIGVzYWMK ICBkb25lCgogICMgTm93IGNhbGN1bGF0ZSBwYXRoOyB0YWtlIGNhcmUgdG8g YXZvaWQgZG91YmxpbmctdXAgc2xhc2hlcy4KICBmdW5jX3N0cmlwbmFtZSAn JyAnLycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IgogIGZ1bmNfcmVs YXRpdmVfcGF0aF9yZXN1bHQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAogIGZ1 bmNfc3RyaXBuYW1lICcvJyAnLycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfdGNh bmNlbGxlZCIKICBpZiB0ZXN0ICJ4JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIg IT0geCA7IHRoZW4KICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9JHtm dW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0fS8ke2Z1bmNfc3RyaXBuYW1lX3Jl c3VsdH0KICBmaQoKICAjIE5vcm1hbGlzYXRpb24uIElmIGJpbmRpciBpcyBs aWJkaXIsIHJldHVybiBlbXB0eSBzdHJpbmcsCiAgIyBlbHNlIHJlbGF0aXZl IHBhdGggZW5kaW5nIHdpdGggYSBzbGFzaDsgZWl0aGVyIHdheSwgdGFyZ2V0 CiAgIyBmaWxlIG5hbWUgY2FuIGJlIGRpcmVjdGx5IGFwcGVuZGVkLgogIGlm IHRlc3QgISAteiAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQiOyB0aGVu CiAgICBmdW5jX3N0cmlwbmFtZSAnLi8nICcnICIkZnVuY19yZWxhdGl2ZV9w YXRoX3Jlc3VsdC8iCiAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKICBmaQp9CgojIFRoZSBuYW1lIG9mIHRo aXMgcHJvZ3JhbToKZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJHByb2dw YXRoIgpwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKCiMgTWFrZSBz dXJlIHdlIGhhdmUgYW4gYWJzb2x1dGUgcGF0aCBmb3IgcmVleGVjdXRpb246 CmNhc2UgJHByb2dwYXRoIGluCiAgW1xcL10qfFtBLVphLXpdOlxcKikgOzsK ICAqW1xcL10qKQogICAgIHByb2dkaXI9JGZ1bmNfZGlybmFtZV9yZXN1bHQK ICAgICBwcm9nZGlyPWBjZCAiJHByb2dkaXIiICYmIHB3ZGAKICAgICBwcm9n cGF0aD0iJHByb2dkaXIvJHByb2duYW1lIgogICAgIDs7CiAgKikKICAgICBz YXZlX0lGUz0iJElGUyIKICAgICBJRlM9OgogICAgIGZvciBwcm9nZGlyIGlu ICRQQVRIOyBkbwogICAgICAgSUZTPSIkc2F2ZV9JRlMiCiAgICAgICB0ZXN0 IC14ICIkcHJvZ2Rpci8kcHJvZ25hbWUiICYmIGJyZWFrCiAgICAgZG9uZQog ICAgIElGUz0iJHNhdmVfSUZTIgogICAgIHRlc3QgLW4gIiRwcm9nZGlyIiB8 fCBwcm9nZGlyPWBwd2RgCiAgICAgcHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9n bmFtZSIKICAgICA7Owplc2FjCgojIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBo ZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVz CiMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhp biBkb3VibGUtcXVvdGVkIHN0cmluZ3MuClhzZWQ9IiR7U0VEfSInIC1lIDFz L15YLy8nCnNlZF9xdW90ZV9zdWJzdD0ncy9cKFtgIiRcXF1cKS9cXFwxL2cn CgojIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUg cmVmZXJlbmNlcy4KZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkv XFxcMS9nJwoKIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgdHVybnMgYSBzdHJp bmcgaW50byBhIHJlZ2V4IG1hdGNoaW5nIGZvciB0aGUKIyBzdHJpbmcgbGl0 ZXJhbGx5LgpzZWRfbWFrZV9saXRlcmFsX3JlZ2V4PSdzLFtdLlteJFxcKlwv XSxcXCYsZycKCiMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGNvbnZlcnRzIGEg dzMyIGZpbGUgbmFtZSBvciBwYXRoCiMgd2hpY2ggY29udGFpbnMgZm9yd2Fy ZCBzbGFzaGVzLCBpbnRvIG9uZSB0aGF0IGNvbnRhaW5zCiMgKGVzY2FwZWQp IGJhY2tzbGFzaGVzLiAgQSB2ZXJ5IG5haXZlIGltcGxlbWVudGF0aW9uLgps dF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxc fGc7c3xcXHxcXFxcfGcnCgojIFJlLWBcJyBwYXJhbWV0ZXIgZXhwYW5zaW9u cyBpbiBvdXRwdXQgb2YgZG91YmxlX3F1b3RlX3N1YnN0IHRoYXQgd2VyZQoj IGBcJy1lZCBpbiBpbnB1dCB0byB0aGUgc2FtZS4gIElmIGFuIG9kZCBudW1i ZXIgb2YgYFwnIHByZWNlZGVkIGEgJyQnCiMgaW4gaW5wdXQgdG8gZG91Ymxl X3F1b3RlX3N1YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVjdGVkIGZyb20gZXhw YW5zaW9uLgojIFNpbmNlIGVhY2ggaW5wdXQgYFwnIGlzIG5vdyB0d28gYFwn cywgbG9vayBmb3IgYW55IG51bWJlciBvZiBydW5zIG9mCiMgZm91ciBgXCdz IGZvbGxvd2VkIGJ5IHR3byBgXCdzIGFuZCB0aGVuIGEgJyQnLiAgYFwnIHRo YXQgJyQnLgpicz0nXFwnCmJzMj0nXFxcXCcKYnM0PSdcXFxcXFxcXCcKZG9s bGFyPSdcJCcKc2VkX2RvdWJsZV9iYWNrc2xhc2g9IlwKICBzLyRiczQvJlxc Ci9nCiAgcy9eJGJzMiRkb2xsYXIvJGJzJi8KICBzL1xcKFteJGJzXVxcKSRi czIkZG9sbGFyL1xcMSRiczIkYnMkZG9sbGFyL2cKICBzL1xuLy9nIgoKIyBT dGFuZGFyZCBvcHRpb25zOgpvcHRfZHJ5X3J1bj1mYWxzZQpvcHRfaGVscD1m YWxzZQpvcHRfcXVpZXQ9ZmFsc2UKb3B0X3ZlcmJvc2U9ZmFsc2UKb3B0X3dh cm5pbmc9OgoKIyBmdW5jX2VjaG8gYXJnLi4uCiMgRWNobyBwcm9ncmFtIG5h bWUgcHJlZml4ZWQgbWVzc2FnZSwgYWxvbmcgd2l0aCB0aGUgY3VycmVudCBt b2RlCiMgbmFtZSBpZiBpdCBoYXMgYmVlbiBzZXQgeWV0LgpmdW5jX2VjaG8g KCkKewogICAgJEVDSE8gIiRwcm9nbmFtZTogJHtvcHRfbW9kZSskb3B0X21v ZGU6IH0kKiIKfQoKIyBmdW5jX3ZlcmJvc2UgYXJnLi4uCiMgRWNobyBwcm9n cmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSBpbiB2ZXJib3NlIG1vZGUgb25s eS4KZnVuY192ZXJib3NlICgpCnsKICAgICRvcHRfdmVyYm9zZSAmJiBmdW5j X2VjaG8gJHsxKyIkQCJ9CgogICAgIyBBIGJ1ZyBpbiBiYXNoIGhhbHRzIHRo ZSBzY3JpcHQgaWYgdGhlIGxhc3QgbGluZSBvZiBhIGZ1bmN0aW9uCiAgICAj IGZhaWxzIHdoZW4gc2V0IC1lIGlzIGluIGZvcmNlLCBzbyB3ZSBuZWVkIGFu b3RoZXIgY29tbWFuZCB0bwogICAgIyB3b3JrIGFyb3VuZCB0aGF0OgogICAg Ogp9CgojIGZ1bmNfZWNob19hbGwgYXJnLi4uCiMgSW52b2tlICRFQ0hPIHdp dGggYWxsIGFyZ3MsIHNwYWNlLXNlcGFyYXRlZC4KZnVuY19lY2hvX2FsbCAo KQp7CiAgICAkRUNITyAiJCoiCn0KCiMgZnVuY19lcnJvciBhcmcuLi4KIyBF Y2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJk IGVycm9yLgpmdW5jX2Vycm9yICgpCnsKICAgICRFQ0hPICIkcHJvZ25hbWU6 ICR7b3B0X21vZGUrJG9wdF9tb2RlOiB9IiR7MSsiJEAifSAxPiYyCn0KCiMg ZnVuY193YXJuaW5nIGFyZy4uLgojIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZp eGVkIHdhcm5pbmcgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KZnVuY193 YXJuaW5nICgpCnsKICAgICRvcHRfd2FybmluZyAmJiAkRUNITyAiJHByb2du YW1lOiAke29wdF9tb2RlKyRvcHRfbW9kZTogfXdhcm5pbmc6ICIkezErIiRA In0gMT4mMgoKICAgICMgYmFzaCBidWcgYWdhaW46CiAgICA6Cn0KCiMgZnVu Y19mYXRhbF9lcnJvciBhcmcuLi4KIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVm aXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBhbmQgZXhpdC4KZnVu Y19mYXRhbF9lcnJvciAoKQp7CiAgICBmdW5jX2Vycm9yICR7MSsiJEAifQog ICAgZXhpdCAkRVhJVF9GQUlMVVJFCn0KCiMgZnVuY19mYXRhbF9oZWxwIGFy Zy4uLgojIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8g c3RhbmRhcmQgZXJyb3IsIGZvbGxvd2VkIGJ5CiMgYSBoZWxwIGhpbnQsIGFu ZCBleGl0LgpmdW5jX2ZhdGFsX2hlbHAgKCkKewogICAgZnVuY19lcnJvciAk ezErIiRAIn0KICAgIGZ1bmNfZmF0YWxfZXJyb3IgIiRoZWxwIgp9CmhlbHA9 IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9u LiIgICMjIGRlZmF1bHQKCgojIGZ1bmNfZ3JlcCBleHByZXNzaW9uIGZpbGVu YW1lCiMgQ2hlY2sgd2hldGhlciBFWFBSRVNTSU9OIG1hdGNoZXMgYW55IGxp bmUgb2YgRklMRU5BTUUsIHdpdGhvdXQgb3V0cHV0LgpmdW5jX2dyZXAgKCkK ewogICAgJEdSRVAgIiQxIiAiJDIiID4vZGV2L251bGwgMj4mMQp9CgoKIyBm dW5jX21rZGlyX3AgZGlyZWN0b3J5LXBhdGgKIyBNYWtlIHN1cmUgdGhlIGVu dGlyZSBwYXRoIHRvIERJUkVDVE9SWS1QQVRIIGlzIGF2YWlsYWJsZS4KZnVu Y19ta2Rpcl9wICgpCnsKICAgIG15X2RpcmVjdG9yeV9wYXRoPSIkMSIKICAg IG15X2Rpcl9saXN0PQoKICAgIGlmIHRlc3QgLW4gIiRteV9kaXJlY3Rvcnlf cGF0aCIgJiYgdGVzdCAiJG9wdF9kcnlfcnVuIiAhPSAiOiI7IHRoZW4KCiAg ICAgICMgUHJvdGVjdCBkaXJlY3RvcnkgbmFtZXMgc3RhcnRpbmcgd2l0aCBg LScKICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4KICAgICAgICAt KikgbXlfZGlyZWN0b3J5X3BhdGg9Ii4vJG15X2RpcmVjdG9yeV9wYXRoIiA7 OwogICAgICBlc2FjCgogICAgICAjIFdoaWxlIHNvbWUgcG9ydGlvbiBvZiBE SVIgZG9lcyBub3QgeWV0IGV4aXN0Li4uCiAgICAgIHdoaWxlIHRlc3QgISAt ZCAiJG15X2RpcmVjdG9yeV9wYXRoIjsgZG8KICAgICAgICAjIC4uLm1ha2Ug YSBsaXN0IGluIHRvcG1vc3QgZmlyc3Qgb3JkZXIuICBVc2UgYSBjb2xvbiBk ZWxpbWl0ZWQKCSMgbGlzdCBpbmNhc2Ugc29tZSBwb3J0aW9uIG9mIHBhdGgg Y29udGFpbnMgd2hpdGVzcGFjZS4KICAgICAgICBteV9kaXJfbGlzdD0iJG15 X2RpcmVjdG9yeV9wYXRoOiRteV9kaXJfbGlzdCIKCiAgICAgICAgIyBJZiB0 aGUgbGFzdCBwb3J0aW9uIGFkZGVkIGhhcyBubyBzbGFzaCBpbiBpdCwgdGhl IGxpc3QgaXMgZG9uZQogICAgICAgIGNhc2UgJG15X2RpcmVjdG9yeV9wYXRo IGluICovKikgOzsgKikgYnJlYWsgOzsgZXNhYwoKICAgICAgICAjIC4uLm90 aGVyd2lzZSB0aHJvdyBhd2F5IHRoZSBjaGlsZCBkaXJlY3RvcnkgYW5kIGxv b3AKICAgICAgICBteV9kaXJlY3RvcnlfcGF0aD1gJEVDSE8gIiRteV9kaXJl Y3RvcnlfcGF0aCIgfCAkU0VEIC1lICIkZGlybmFtZSJgCiAgICAgIGRvbmUK ICAgICAgbXlfZGlyX2xpc3Q9YCRFQ0hPICIkbXlfZGlyX2xpc3QiIHwgJFNF RCAncyw6KiQsLCdgCgogICAgICBzYXZlX21rZGlyX3BfSUZTPSIkSUZTIjsg SUZTPSc6JwogICAgICBmb3IgbXlfZGlyIGluICRteV9kaXJfbGlzdDsgZG8K CUlGUz0iJHNhdmVfbWtkaXJfcF9JRlMiCiAgICAgICAgIyBta2RpciBjYW4g ZmFpbCB3aXRoIGEgYEZpbGUgZXhpc3QnIGVycm9yIGlmIHR3byBwcm9jZXNz ZXMKICAgICAgICAjIHRyeSB0byBjcmVhdGUgb25lIG9mIHRoZSBkaXJlY3Rv cmllcyBjb25jdXJyZW50bHkuICBEb24ndAogICAgICAgICMgc3RvcCBpbiB0 aGF0IGNhc2UhCiAgICAgICAgJE1LRElSICIkbXlfZGlyIiAyPi9kZXYvbnVs bCB8fCA6CiAgICAgIGRvbmUKICAgICAgSUZTPSIkc2F2ZV9ta2Rpcl9wX0lG UyIKCiAgICAgICMgQmFpbCBvdXQgaWYgd2UgKG9yIHNvbWUgb3RoZXIgcHJv Y2VzcykgZmFpbGVkIHRvIGNyZWF0ZSBhIGRpcmVjdG9yeS4KICAgICAgdGVz dCAtZCAiJG15X2RpcmVjdG9yeV9wYXRoIiB8fCBcCiAgICAgICAgZnVuY19m YXRhbF9lcnJvciAiRmFpbGVkIHRvIGNyZWF0ZSBcYCQxJyIKICAgIGZpCn0K CgojIGZ1bmNfbWt0ZW1wZGlyIFtzdHJpbmddCiMgTWFrZSBhIHRlbXBvcmFy eSBkaXJlY3RvcnkgdGhhdCB3b24ndCBjbGFzaCB3aXRoIG90aGVyIHJ1bm5p bmcKIyBsaWJ0b29sIHByb2Nlc3NlcywgYW5kIGF2b2lkcyByYWNlIGNvbmRp dGlvbnMgaWYgcG9zc2libGUuICBJZgojIGdpdmVuLCBTVFJJTkcgaXMgdGhl IGJhc2VuYW1lIGZvciB0aGF0IGRpcmVjdG9yeS4KZnVuY19ta3RlbXBkaXIg KCkKewogICAgbXlfdGVtcGxhdGU9IiR7VE1QRElSLS90bXB9LyR7MS0kcHJv Z25hbWV9IgoKICAgIGlmIHRlc3QgIiRvcHRfZHJ5X3J1biIgPSAiOiI7IHRo ZW4KICAgICAgIyBSZXR1cm4gYSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRvbid0 IGNyZWF0ZSBpdCBpbiBkcnktcnVuIG1vZGUKICAgICAgbXlfdG1wZGlyPSIk e215X3RlbXBsYXRlfS0kJCIKICAgIGVsc2UKCiAgICAgICMgSWYgbWt0ZW1w IHdvcmtzLCB1c2UgdGhhdCBmaXJzdCBhbmQgZm9yZW1vc3QKICAgICAgbXlf dG1wZGlyPWBta3RlbXAgLWQgIiR7bXlfdGVtcGxhdGV9LVhYWFhYWFhYIiAy Pi9kZXYvbnVsbGAKCiAgICAgIGlmIHRlc3QgISAtZCAiJG15X3RtcGRpciI7 IHRoZW4KICAgICAgICAjIEZhaWxpbmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFu ZCB1c2UgJFJBTkRPTSB0byBhdm9pZCBhIHJhY2UKICAgICAgICBteV90bXBk aXI9IiR7bXlfdGVtcGxhdGV9LSR7UkFORE9NLTB9JCQiCgogICAgICAgIHNh dmVfbWt0ZW1wZGlyX3VtYXNrPWB1bWFza2AKICAgICAgICB1bWFzayAwMDc3 CiAgICAgICAgJE1LRElSICIkbXlfdG1wZGlyIgogICAgICAgIHVtYXNrICRz YXZlX21rdGVtcGRpcl91bWFzawogICAgICBmaQoKICAgICAgIyBJZiB3ZSdy ZSBub3QgaW4gZHJ5LXJ1biBtb2RlLCBib21iIG91dCBvbiBmYWlsdXJlCiAg ICAgIHRlc3QgLWQgIiRteV90bXBkaXIiIHx8IFwKICAgICAgICBmdW5jX2Zh dGFsX2Vycm9yICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3Rvcnkg XGAkbXlfdG1wZGlyJyIKICAgIGZpCgogICAgJEVDSE8gIiRteV90bXBkaXIi Cn0KCgojIGZ1bmNfcXVvdGVfZm9yX2V2YWwgYXJnCiMgQWVzdGhldGljYWxs eSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVkIGxhdGVyLgojIFRoaXMgZnVuY3Rp b24gcmV0dXJucyB0d28gdmFsdWVzOiBGVU5DX1FVT1RFX0ZPUl9FVkFMX1JF U1VMVAojIGlzIGRvdWJsZS1xdW90ZWQsIHN1aXRhYmxlIGZvciBhIHN1YnNl cXVlbnQgZXZhbCwgd2hlcmVhcwojIEZVTkNfUVVPVEVfRk9SX0VWQUxfVU5R VU9URURfUkVTVUxUIGhhcyBtZXJlbHkgYWxsIGNoYXJhY3RlcnMKIyB3aGlj aCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUgcXVvdGVzIGJhY2tz bGFzaGlmaWVkLgpmdW5jX3F1b3RlX2Zvcl9ldmFsICgpCnsKICAgIGNhc2Ug JDEgaW4KICAgICAgKltcXFxgXCJcJF0qKQoJZnVuY19xdW90ZV9mb3JfZXZh bF91bnF1b3RlZF9yZXN1bHQ9YCRFQ0hPICIkMSIgfCAkU0VEICIkc2VkX3F1 b3RlX3N1YnN0ImAgOzsKICAgICAgKikKICAgICAgICBmdW5jX3F1b3RlX2Zv cl9ldmFsX3VucXVvdGVkX3Jlc3VsdD0iJDEiIDs7CiAgICBlc2FjCgogICAg Y2FzZSAkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQgaW4K ICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIHNoZWxsIG1l dGFjaGFyYWN0ZXJzIHRvIGRlbGF5CiAgICAgICMgd29yZCBzcGxpdHRpbmcs IGNvbW1hbmQgc3Vic3RpdHV0aW9uIGFuZCBhbmQgdmFyaWFibGUKICAgICAg IyBleHBhbnNpb24gZm9yIGEgc3Vic2VxdWVudCBldmFsLgogICAgICAjIE1h bnkgQm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3NlIGJyYWNrZXRz IGNvcnJlY3RseQogICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lm eSBpdCBzZXBhcmF0ZWx5LgogICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9 XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKICAgICAgICBmdW5jX3F1b3Rl X2Zvcl9ldmFsX3Jlc3VsdD0iXCIkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1 b3RlZF9yZXN1bHRcIiIKICAgICAgICA7OwogICAgICAqKQogICAgICAgIGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSIkZnVuY19xdW90ZV9mb3JfZXZh bF91bnF1b3RlZF9yZXN1bHQiCiAgICBlc2FjCn0KCgojIGZ1bmNfcXVvdGVf Zm9yX2V4cGFuZCBhcmcKIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBi ZSBldmFsZWQgbGF0ZXI7IHNhbWUgYXMgYWJvdmUsCiMgYnV0IGRvIG5vdCBx dW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgpmdW5jX3F1b3RlX2Zvcl9leHBh bmQgKCkKewogICAgY2FzZSAkMSBpbgogICAgICAqW1xcXGBcIl0qKQoJbXlf YXJnPWAkRUNITyAiJDEiIHwgJFNFRCBcCgkgICAgLWUgIiRkb3VibGVfcXVv dGVfc3Vic3QiIC1lICIkc2VkX2RvdWJsZV9iYWNrc2xhc2giYCA7OwogICAg ICAqKQogICAgICAgIG15X2FyZz0iJDEiIDs7CiAgICBlc2FjCgogICAgY2Fz ZSAkbXlfYXJnIGluCiAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFp bmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxheQogICAgICAjIHdv cmQgc3BsaXR0aW5nIGFuZCBjb21tYW5kIHN1YnN0aXR1dGlvbiBmb3IgYSBz dWJzZXF1ZW50IGV2YWwuCiAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNh bm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5CiAgICAgICMg aW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCiAg ICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8 Kl0qfCIiKQogICAgICAgIG15X2FyZz0iXCIkbXlfYXJnXCIiCiAgICAgICAg OzsKICAgIGVzYWMKCiAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0 PSIkbXlfYXJnIgp9CgoKIyBmdW5jX3Nob3dfZXZhbCBjbWQgW2ZhaWxfZXhw XQojIFVubGVzcyBvcHRfc2lsZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENN RC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMKIyBub3QgdHJ1ZSwgZXZhbHVh dGUgQ01ELiAgSWYgdGhlIGV2YWx1YXRpb24gb2YgQ01EIGZhaWxzLCBhbmQg RkFJTF9FWFAKIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4KZnVuY19z aG93X2V2YWwgKCkKewogICAgbXlfY21kPSIkMSIKICAgIG15X2ZhaWxfZXhw PSIkezItOn0iCgogICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7CiAgICAg IGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJG15X2NtZCIKICAgICAgZXZhbCAi ZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgogICAg fQoKICAgIGlmICR7b3B0X2RyeV9ydW4tZmFsc2V9OyB0aGVuIDo7IGVsc2UK ICAgICAgZXZhbCAiJG15X2NtZCIKICAgICAgbXlfc3RhdHVzPSQ/CiAgICAg IGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAwOyB0aGVuIDo7IGVsc2UKCWV2 YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCiAgICAgIGZp CiAgICBmaQp9CgoKIyBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgY21kIFtmYWls X2V4cF0KIyBVbmxlc3Mgb3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1 dCBDTUQuICBUaGVuLCBpZiBvcHRfZHJ5cnVuIGlzCiMgbm90IHRydWUsIGV2 YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywg YW5kIEZBSUxfRVhQCiMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBV c2UgdGhlIHNhdmVkIGxvY2FsZSBmb3IgZXZhbHVhdGlvbi4KZnVuY19zaG93 X2V2YWxfbG9jYWxlICgpCnsKICAgIG15X2NtZD0iJDEiCiAgICBteV9mYWls X2V4cD0iJHsyLTp9IgoKICAgICR7b3B0X3NpbGVudC1mYWxzZX0gfHwgewog ICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRteV9jbWQiCiAgICAgIGV2 YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIK ICAgIH0KCiAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBl bHNlCiAgICAgIGV2YWwgIiRsdF91c2VyX2xvY2FsZQoJICAgICRteV9jbWQi CiAgICAgIG15X3N0YXR1cz0kPwogICAgICBldmFsICIkbHRfc2FmZV9sb2Nh bGUiCiAgICAgIGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAwOyB0aGVuIDo7 IGVsc2UKCWV2YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAi CiAgICAgIGZpCiAgICBmaQp9CgojIGZ1bmNfdHJfc2gKIyBUdXJuICQxIGlu dG8gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGEgc2hlbGwgdmFyaWFibGUgbmFt ZS4KIyBSZXN1bHQgaXMgc3RvcmVkIGluICRmdW5jX3RyX3NoX3Jlc3VsdC4g IEFsbCBjaGFyYWN0ZXJzCiMgbm90IGluIHRoZSBzZXQgYS16QS1aMC05XyBh cmUgcmVwbGFjZWQgd2l0aCAnXycuIEZ1cnRoZXIsCiMgaWYgJDEgYmVnaW5z IHdpdGggYSBkaWdpdCwgYSAnXycgaXMgcHJlcGVuZGVkIGFzIHdlbGwuCmZ1 bmNfdHJfc2ggKCkKewogIGNhc2UgJDEgaW4KICBbMC05XSogfCAqWyFhLXpB LVowLTlfXSopCiAgICBmdW5jX3RyX3NoX3Jlc3VsdD1gJEVDSE8gIiQxIiB8 ICRTRUQgJ3MvXlwoWzAtOV1cKS9fXDEvOyBzL1teYS16QS1aMC05X10vXy9n J2AKICAgIDs7CiAgKiApCiAgICBmdW5jX3RyX3NoX3Jlc3VsdD0kMQogICAg OzsKICBlc2FjCn0KCgojIGZ1bmNfdmVyc2lvbgojIEVjaG8gdmVyc2lvbiBt ZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KZnVuY192ZXJz aW9uICgpCnsKICAgICRvcHRfZGVidWcKCiAgICAkU0VEIC1uICcvKEMpLyFi IGdvCgk6bW9yZQoJL1wuLyF7CgkgIE4KCSAgcy9cbiMgLyAvCgkgIGIgbW9y ZQoJfQoJOmdvCgkvXiMgJyRQUk9HUkFNJyAoR05VIC8sLyMgd2FycmFudHk7 IC8gewogICAgICAgIHMvXiMgLy8KCXMvXiMgKiQvLwogICAgICAgIHMvXCgo QylcKVsgMC05LC1dKlwoIFsxLTldWzAtOV0qXCkvXDFcMi8KICAgICAgICBw CiAgICAgfScgPCAiJHByb2dwYXRoIgogICAgIGV4aXQgJD8KfQoKIyBmdW5j X3VzYWdlCiMgRWNobyBzaG9ydCBoZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQg b3V0cHV0IGFuZCBleGl0LgpmdW5jX3VzYWdlICgpCnsKICAgICRvcHRfZGVi dWcKCiAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvXiMgICouKi0taGVscC8g ewogICAgICAgIHMvXiMgLy8KCXMvXiMgKiQvLwoJcy9cJHByb2duYW1lLyck cHJvZ25hbWUnLwoJcAogICAgfScgPCAiJHByb2dwYXRoIgogICAgZWNobwog ICAgJEVDSE8gInJ1biBcYCRwcm9nbmFtZSAtLWhlbHAgfCBtb3JlJyBmb3Ig ZnVsbCB1c2FnZSIKICAgIGV4aXQgJD8KfQoKIyBmdW5jX2hlbHAgW05PRVhJ VF0KIyBFY2hvIGxvbmcgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1 dCBhbmQgZXhpdCwKIyB1bmxlc3MgJ25vZXhpdCcgaXMgcGFzc2VkIGFzIGFy Z3VtZW50LgpmdW5jX2hlbHAgKCkKewogICAgJG9wdF9kZWJ1ZwoKICAgICRT RUQgLW4gJy9eIyBVc2FnZTovLC8jIFJlcG9ydCBidWdzIHRvLyB7Cgk6cHJp bnQKICAgICAgICBzL14jIC8vCglzL14jICokLy8KCXMqXCRwcm9nbmFtZSon JHByb2duYW1lJyoKCXMqXCRob3N0KiciJGhvc3QiJyoKCXMqXCRTSEVMTCon IiRTSEVMTCInKgoJcypcJExUQ0MqJyIkTFRDQyInKgoJcypcJExUQ0ZMQUdT KiciJExUQ0ZMQUdTIicqCglzKlwkTEQqJyIkTEQiJyoKCXMvXCR3aXRoX2du dV9sZC8nIiR3aXRoX2dudV9sZCInLwoJcy9cJGF1dG9tYWtlX3ZlcnNpb24v JyJgKGF1dG9tYWtlIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFg IicvCglzL1wkYXV0b2NvbmZfdmVyc2lvbi8nImAoYXV0b2NvbmYgLS12ZXJz aW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KCXAKCWQKICAgICB9CiAg ICAgL14jIC4qIGhvbWUgcGFnZTovYiBwcmludAogICAgIC9eIyBHZW5lcmFs IGhlbHAgdXNpbmcvYiBwcmludAogICAgICcgPCAiJHByb2dwYXRoIgogICAg cmV0PSQ/CiAgICBpZiB0ZXN0IC16ICIkMSI7IHRoZW4KICAgICAgZXhpdCAk cmV0CiAgICBmaQp9CgojIGZ1bmNfbWlzc2luZ19hcmcgYXJnbmFtZQojIEVj aG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQg ZXJyb3IgYW5kIHNldCBnbG9iYWwKIyBleGl0X2NtZC4KZnVuY19taXNzaW5n X2FyZyAoKQp7CiAgICAkb3B0X2RlYnVnCgogICAgZnVuY19lcnJvciAibWlz c2luZyBhcmd1bWVudCBmb3IgJDEuIgogICAgZXhpdF9jbWQ9ZXhpdAp9CgoK IyBmdW5jX3NwbGl0X3Nob3J0X29wdCBzaG9ydG9wdAojIFNldCBmdW5jX3Nw bGl0X3Nob3J0X29wdF9uYW1lIGFuZCBmdW5jX3NwbGl0X3Nob3J0X29wdF9h cmcgc2hlbGwKIyB2YXJpYWJsZXMgYWZ0ZXIgc3BsaXR0aW5nIFNIT1JUT1BU IGFmdGVyIHRoZSAybmQgY2hhcmFjdGVyLgpmdW5jX3NwbGl0X3Nob3J0X29w dCAoKQp7CiAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmc9JHsxIz8/fQog ICAgZnVuY19zcGxpdF9zaG9ydF9vcHRfbmFtZT0kezElIiRmdW5jX3NwbGl0 X3Nob3J0X29wdF9hcmcifQp9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19zcGxp dF9zaG9ydF9vcHQgaW1wbGVtZW50YXRpb24KCgojIGZ1bmNfc3BsaXRfbG9u Z19vcHQgbG9uZ29wdAojIFNldCBmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWUg YW5kIGZ1bmNfc3BsaXRfbG9uZ19vcHRfYXJnIHNoZWxsCiMgdmFyaWFibGVz IGFmdGVyIHNwbGl0dGluZyBMT05HT1BUIGF0IHRoZSBgPScgc2lnbi4KZnVu Y19zcGxpdF9sb25nX29wdCAoKQp7CiAgICBmdW5jX3NwbGl0X2xvbmdfb3B0 X25hbWU9JHsxJSU9Kn0KICAgIGZ1bmNfc3BsaXRfbG9uZ19vcHRfYXJnPSR7 MSMqPX0KfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfc3BsaXRfbG9uZ19vcHQg aW1wbGVtZW50YXRpb24KCmV4aXRfY21kPToKCgoKCgptYWdpYz0iJSUlTUFH SUMgdmFyaWFibGUlJSUiCm1hZ2ljX2V4ZT0iJSUlTUFHSUMgRVhFIHZhcmlh YmxlJSUlIgoKIyBHbG9iYWwgdmFyaWFibGVzLgpub25vcHQ9CnByZXNlcnZl X2FyZ3M9CmxvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKbzJsbz0icy9c XC4ke29iamV4dH1cJC8ubG8vIgpleHRyYWN0ZWRfYXJjaGl2ZXM9CmV4dHJh Y3RlZF9zZXJpYWw9MAoKIyBJZiB0aGlzIHZhcmlhYmxlIGlzIHNldCBpbiBh bnkgb2YgdGhlIGFjdGlvbnMsIHRoZSBjb21tYW5kIGluIGl0CiMgd2lsbCBi ZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1 bWVudHMgZnJvbSBiZWluZwojIGxlZnQgb3ZlciBieSBzaGVsbHMuCmV4ZWNf Y21kPQoKIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKIyBBcHBlbmQgVkFMVUUg dG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCmZ1bmNfYXBwZW5k ICgpCnsKICAgIGV2YWwgIiR7MX0rPVwkezJ9Igp9ICMgRXh0ZW5kZWQtc2hl bGwgZnVuY19hcHBlbmQgaW1wbGVtZW50YXRpb24KCiMgZnVuY19hcHBlbmRf cXVvdGVkIHZhciB2YWx1ZQojIFF1b3RlIFZBTFVFIGFuZCBhcHBlbmQgdG8g dGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIsIHNlcGFyYXRlZAojIGJ5 IGEgc3BhY2UuCmZ1bmNfYXBwZW5kX3F1b3RlZCAoKQp7CiAgICBmdW5jX3F1 b3RlX2Zvcl9ldmFsICIkezJ9IgogICAgZXZhbCAiJHsxfSs9XFwgXCRmdW5j X3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKfSAjIEV4dGVuZGVkLXNoZWxsIGZ1 bmNfYXBwZW5kX3F1b3RlZCBpbXBsZW1lbnRhdGlvbgoKCiMgZnVuY19hcml0 aCBhcml0aG1ldGljLXRlcm0uLi4KZnVuY19hcml0aCAoKQp7CiAgICBmdW5j X2FyaXRoX3Jlc3VsdD0kKCggJCogKSkKfSAjIEV4dGVuZGVkLXNoZWxsIGZ1 bmNfYXJpdGggaW1wbGVtZW50YXRpb24KCgojIGZ1bmNfbGVuIHN0cmluZwoj IFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCmZ1bmNfbGVu ICgpCnsKICAgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfQp9ICMgRXh0ZW5kZWQt c2hlbGwgZnVuY19sZW4gaW1wbGVtZW50YXRpb24KCgojIGZ1bmNfbG8ybyBv YmplY3QKZnVuY19sbzJvICgpCnsKICAgIGNhc2UgJHsxfSBpbgogICAgICAq LmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7Owog ICAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKICAgIGVzYWMK fSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfbG8ybyBpbXBsZW1lbnRhdGlvbgoK CiMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCmZ1bmNfeGZvcm0gKCkK ewogICAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbwp9ICMgRXh0ZW5k ZWQtc2hlbGwgZnVuY194Zm9ybSBpbXBsZW1lbnRhdGlvbgoKCiMgZnVuY19m YXRhbF9jb25maWd1cmF0aW9uIGFyZy4uLgojIEVjaG8gcHJvZ3JhbSBuYW1l IHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2Vk IGJ5CiMgYSBjb25maWd1cmF0aW9uIGZhaWx1cmUgaGludCwgYW5kIGV4aXQu CmZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAoKQp7CiAgICBmdW5jX2Vycm9y ICR7MSsiJEAifQogICAgZnVuY19lcnJvciAiU2VlIHRoZSAkUEFDS0FHRSBk b2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKICAgIGZ1bmNf ZmF0YWxfZXJyb3IgIkZhdGFsIGNvbmZpZ3VyYXRpb24gZXJyb3IuIgp9CgoK IyBmdW5jX2NvbmZpZwojIERpc3BsYXkgdGhlIGNvbmZpZ3VyYXRpb24gZm9y IGFsbCB0aGUgdGFncyBpbiB0aGlzIHNjcmlwdC4KZnVuY19jb25maWcgKCkK ewogICAgcmVfYmVnaW5jZj0nXiMgIyMjIEJFR0lOIExJQlRPT0wnCiAgICBy ZV9lbmRjZj0nXiMgIyMjIEVORCBMSUJUT09MJwoKICAgICMgRGVmYXVsdCBj b25maWd1cmF0aW9uLgogICAgJFNFRCAiMSwvJHJlX2JlZ2luY2YgQ09ORklH L2Q7LyRyZV9lbmRjZiBDT05GSUcvLFwkZCIgPCAiJHByb2dwYXRoIgoKICAg ICMgTm93IHByaW50IHRoZSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHRhZ3Mu CiAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KICAgICAgJFNFRCAt biAiLyRyZV9iZWdpbmNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvLC8kcmVf ZW5kY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC9wIiA8ICIkcHJvZ3BhdGgi CiAgICBkb25lCgogICAgZXhpdCAkPwp9CgojIGZ1bmNfZmVhdHVyZXMKIyBE aXNwbGF5IHRoZSBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQu CmZ1bmNfZmVhdHVyZXMgKCkKewogICAgZWNobyAiaG9zdDogJGhvc3QiCiAg ICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgog ICAgICBlY2hvICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKICAgIGVsc2UK ICAgICAgZWNobyAiZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIgogICAgZmkK ICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KICAg ICAgZWNobyAiZW5hYmxlIHN0YXRpYyBsaWJyYXJpZXMiCiAgICBlbHNlCiAg ICAgIGVjaG8gImRpc2FibGUgc3RhdGljIGxpYnJhcmllcyIKICAgIGZpCgog ICAgZXhpdCAkPwp9CgojIGZ1bmNfZW5hYmxlX3RhZyB0YWduYW1lCiMgVmVy aWZ5IHRoYXQgVEFHTkFNRSBpcyB2YWxpZCwgYW5kIGVpdGhlciBmbGFnIGFu IGVycm9yIGFuZCBleGl0LCBvcgojIGVuYWJsZSB0aGUgVEFHTkFNRSB0YWcu ICBXZSBhbHNvIGFkZCBUQUdOQU1FIHRvIHRoZSBnbG9iYWwgJHRhZ2xpc3QK IyB2YXJpYWJsZSBoZXJlLgpmdW5jX2VuYWJsZV90YWcgKCkKewogICMgR2xv YmFsIHZhcmlhYmxlOgogIHRhZ25hbWU9IiQxIgoKICByZV9iZWdpbmNmPSJe IyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgog IHJlX2VuZGNmPSJeIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJHRh Z25hbWVcJCIKICBzZWRfZXh0cmFjdGNmPSIvJHJlX2JlZ2luY2YvLC8kcmVf ZW5kY2YvcCIKCiAgIyBWYWxpZGF0ZSB0YWduYW1lLgogIGNhc2UgJHRhZ25h bWUgaW4KICAgICpbIS1fQS1aYS16MC05LC9dKikKICAgICAgZnVuY19mYXRh bF9lcnJvciAiaW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWUiCiAgICAgIDs7 CiAgZXNhYwoKICAjIERvbid0IHRlc3QgZm9yIHRoZSAiZGVmYXVsdCIgQyB0 YWcsIGFzIHdlIGtub3cgaXQncwogICMgdGhlcmUgYnV0IG5vdCBzcGVjaWFs bHkgbWFya2VkLgogIGNhc2UgJHRhZ25hbWUgaW4KICAgIENDKSA7OwogICAg KikKICAgICAgaWYgJEdSRVAgIiRyZV9iZWdpbmNmIiAiJHByb2dwYXRoIiA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KCXRhZ2xpc3Q9IiR0YWdsaXN0ICR0YWdu YW1lIgoKCSMgRXZhbHVhdGUgdGhlIGNvbmZpZ3VyYXRpb24uICBCZSBjYXJl ZnVsIHRvIHF1b3RlIHRoZSBwYXRoCgkjIGFuZCB0aGUgc2VkIHNjcmlwdCwg dG8gYXZvaWQgc3BsaXR0aW5nIG9uIHdoaXRlc3BhY2UsIGJ1dAoJIyBhbHNv IGRvbid0IHVzZSBub24tcG9ydGFibGUgcXVvdGVzIHdpdGhpbiBiYWNrcXVv dGVzIHdpdGhpbgoJIyBxdW90ZXMgd2UgaGF2ZSB0byBkbyBpdCBpbiAyIHN0 ZXBzOgoJZXh0cmFjdGVkY2Y9YCRTRUQgLW4gLWUgIiRzZWRfZXh0cmFjdGNm IiA8ICIkcHJvZ3BhdGgiYAoJZXZhbCAiJGV4dHJhY3RlZGNmIgogICAgICBl bHNlCglmdW5jX2Vycm9yICJpZ25vcmluZyB1bmtub3duIHRhZyAkdGFnbmFt ZSIKICAgICAgZmkKICAgICAgOzsKICBlc2FjCn0KCiMgZnVuY19jaGVja192 ZXJzaW9uX21hdGNoCiMgRW5zdXJlIHRoYXQgd2UgYXJlIHVzaW5nIG00IG1h Y3JvcywgYW5kIGxpYnRvb2wgc2NyaXB0IGZyb20gdGhlIHNhbWUKIyByZWxl YXNlIG9mIGxpYnRvb2wuCmZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaCAoKQp7 CiAgaWYgdGVzdCAiJHBhY2thZ2VfcmV2aXNpb24iICE9ICIkbWFjcm9fcmV2 aXNpb24iOyB0aGVuCiAgICBpZiB0ZXN0ICIkVkVSU0lPTiIgIT0gIiRtYWNy b192ZXJzaW9uIjsgdGhlbgogICAgICBpZiB0ZXN0IC16ICIkbWFjcm9fdmVy c2lvbiI7IHRoZW4KICAgICAgICBjYXQgPiYyIDw8X0xUX0VPRgokcHJvZ25h bWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdF ICRWRVJTSU9OLCBidXQgdGhlCiRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0 aGlzIExUX0lOSVQgY29tZXMgZnJvbSBhbiBvbGRlciByZWxlYXNlLgokcHJv Z25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1h Y3JvcyBmcm9tICRQQUNLQUdFICRWRVJTSU9OCiRwcm9nbmFtZTogYW5kIHJ1 biBhdXRvY29uZiBhZ2Fpbi4KX0xUX0VPRgogICAgICBlbHNlCiAgICAgICAg Y2F0ID4mMiA8PF9MVF9FT0YKJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNo IGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQok cHJvZ25hbWU6IGRlZmluaXRpb24gb2YgdGhpcyBMVF9JTklUIGNvbWVzIGZy b20gJFBBQ0tBR0UgJG1hY3JvX3ZlcnNpb24uCiRwcm9nbmFtZTogWW91IHNo b3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20gJFBB Q0tBR0UgJFZFUlNJT04KJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFn YWluLgpfTFRfRU9GCiAgICAgIGZpCiAgICBlbHNlCiAgICAgIGNhdCA+JjIg PDxfTFRfRU9GCiRwcm9nbmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJvci4g IFRoaXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04sIHJldmlzaW9uICRwYWNrYWdl X3JldmlzaW9uLAokcHJvZ25hbWU6IGJ1dCB0aGUgZGVmaW5pdGlvbiBvZiB0 aGlzIExUX0lOSVQgY29tZXMgZnJvbSByZXZpc2lvbiAkbWFjcm9fcmV2aXNp b24uCiRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00 IHdpdGggbWFjcm9zIGZyb20gcmV2aXNpb24gJHBhY2thZ2VfcmV2aXNpb24K JHByb2duYW1lOiBvZiAkUEFDS0FHRSAkVkVSU0lPTiBhbmQgcnVuIGF1dG9j b25mIGFnYWluLgpfTFRfRU9GCiAgICBmaQoKICAgIGV4aXQgJEVYSVRfTUlT TUFUQ0gKICBmaQp9CgoKIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9u bHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50CmNhc2UgJDEgaW4KY2xl YW58Y2xlYXxjbGV8Y2wpCiAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xl YW4gJHsxKyIkQCJ9OyBzaGlmdAogIDs7CmNvbXBpbGV8Y29tcGlsfGNvbXBp fGNvbXB8Y29tfGNvfGMpCiAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29t cGlsZSAkezErIiRAIn07IHNoaWZ0CiAgOzsKZXhlY3V0ZXxleGVjdXR8ZXhl Y3V8ZXhlY3xleGV8ZXh8ZSkKICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBl eGVjdXRlICR7MSsiJEAifTsgc2hpZnQKICA7OwpmaW5pc2h8ZmluaXN8Zmlu aXxmaW58Zml8ZikKICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2gg JHsxKyIkQCJ9OyBzaGlmdAogIDs7Cmluc3RhbGx8aW5zdGFsfGluc3RhfGlu c3R8aW5zfGlufGkpCiAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFs bCAkezErIiRAIn07IHNoaWZ0CiAgOzsKbGlua3xsaW58bGl8bCkKICBzaGlm dDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQKICA7 Owp1bmluc3RhbGx8dW5pbnN0YWx8dW5pbnN0YXx1bmluc3R8dW5pbnN8dW5p bnx1bml8dW58dSkKICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3Rh bGwgJHsxKyIkQCJ9OyBzaGlmdAogIDs7CmVzYWMKCgoKIyBPcHRpb24gZGVm YXVsdHM6Cm9wdF9kZWJ1Zz06Cm9wdF9kcnlfcnVuPWZhbHNlCm9wdF9jb25m aWc9ZmFsc2UKb3B0X3ByZXNlcnZlX2R1cF9kZXBzPWZhbHNlCm9wdF9mZWF0 dXJlcz1mYWxzZQpvcHRfZmluaXNoPWZhbHNlCm9wdF9oZWxwPWZhbHNlCm9w dF9oZWxwX2FsbD1mYWxzZQpvcHRfc2lsZW50PToKb3B0X3ZlcmJvc2U9Ogpv cHRfc2lsZW50PWZhbHNlCm9wdF92ZXJib3NlPWZhbHNlCgoKIyBQYXJzZSBv cHRpb25zIG9uY2UsIHRob3JvdWdobHkuICBUaGlzIGNvbWVzIGFzIHNvb24g YXMgcG9zc2libGUgaW4gdGhlCiMgc2NyaXB0IHRvIG1ha2UgdGhpbmdzIGxp a2UgYC0tdmVyc2lvbicgaGFwcGVuIGFzIHF1aWNrbHkgYXMgd2UgY2FuLgp7 CiAgIyB0aGlzIGp1c3QgZWFzZXMgZXhpdCBoYW5kbGluZwogIHdoaWxlIHRl c3QgJCMgLWd0IDA7IGRvCiAgICBvcHQ9IiQxIgogICAgc2hpZnQKICAgIGNh c2UgJG9wdCBpbgogICAgICAtLWRlYnVnfC14KQlvcHRfZGVidWc9J3NldCAt eCcKCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgoJ CQkkb3B0X2RlYnVnCgkJCTs7CiAgICAgIC0tZHJ5LXJ1bnwtLWRyeXJ1bnwt bikKCQkJb3B0X2RyeV9ydW49OgoJCQk7OwogICAgICAtLWNvbmZpZykKCQkJ b3B0X2NvbmZpZz06CmZ1bmNfY29uZmlnCgkJCTs7CiAgICAgIC0tZGxvcGVu fC1kbG9wZW4pCgkJCW9wdGFyZz0iJDEiCgkJCW9wdF9kbG9wZW49IiR7b3B0 X2Rsb3Blbiskb3B0X2Rsb3Blbgp9JG9wdGFyZyIKCQkJc2hpZnQKCQkJOzsK ICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcykKCQkJb3B0X3ByZXNlcnZlX2R1 cF9kZXBzPToKCQkJOzsKICAgICAgLS1mZWF0dXJlcykKCQkJb3B0X2ZlYXR1 cmVzPToKZnVuY19mZWF0dXJlcwoJCQk7OwogICAgICAtLWZpbmlzaCkKCQkJ b3B0X2ZpbmlzaD06CnNldCBkdW1teSAtLW1vZGUgZmluaXNoICR7MSsiJEAi fTsgc2hpZnQKCQkJOzsKICAgICAgLS1oZWxwKQoJCQlvcHRfaGVscD06CgkJ CTs7CiAgICAgIC0taGVscC1hbGwpCgkJCW9wdF9oZWxwX2FsbD06Cm9wdF9o ZWxwPSc6IGhlbHAtYWxsJwoJCQk7OwogICAgICAtLW1vZGUpCgkJCXRlc3Qg JCMgPSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgJG9wdCAmJiBicmVhawoJCQlv cHRhcmc9IiQxIgoJCQlvcHRfbW9kZT0iJG9wdGFyZyIKY2FzZSAkb3B0YXJn IGluCiAgIyBWYWxpZCBtb2RlIGFyZ3VtZW50czoKICBjbGVhbnxjb21waWxl fGV4ZWN1dGV8ZmluaXNofGluc3RhbGx8bGlua3xyZWxpbmt8dW5pbnN0YWxs KSA7OwoKICAjIENhdGNoIGFueXRoaW5nIGVsc2UgYXMgYW4gZXJyb3IKICAq KSBmdW5jX2Vycm9yICJpbnZhbGlkIGFyZ3VtZW50IGZvciAkb3B0IgogICAg IGV4aXRfY21kPWV4aXQKICAgICBicmVhawogICAgIDs7CmVzYWMKCQkJc2hp ZnQKCQkJOzsKICAgICAgLS1uby1zaWxlbnR8LS1uby1xdWlldCkKCQkJb3B0 X3NpbGVudD1mYWxzZQpwcmVzZXJ2ZV9hcmdzKz0iICRvcHQiCgkJCTs7CiAg ICAgIC0tbm8tdmVyYm9zZSkKCQkJb3B0X3ZlcmJvc2U9ZmFsc2UKcHJlc2Vy dmVfYXJncys9IiAkb3B0IgoJCQk7OwogICAgICAtLXNpbGVudHwtLXF1aWV0 KQoJCQlvcHRfc2lsZW50PToKcHJlc2VydmVfYXJncys9IiAkb3B0IgogICAg ICAgIG9wdF92ZXJib3NlPWZhbHNlCgkJCTs7CiAgICAgIC0tdmVyYm9zZXwt dikKCQkJb3B0X3ZlcmJvc2U9OgpwcmVzZXJ2ZV9hcmdzKz0iICRvcHQiCm9w dF9zaWxlbnQ9ZmFsc2UKCQkJOzsKICAgICAgLS10YWcpCgkJCXRlc3QgJCMg PSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgJG9wdCAmJiBicmVhawoJCQlvcHRh cmc9IiQxIgoJCQlvcHRfdGFnPSIkb3B0YXJnIgpwcmVzZXJ2ZV9hcmdzKz0i ICRvcHQgJG9wdGFyZyIKZnVuY19lbmFibGVfdGFnICIkb3B0YXJnIgoJCQlz aGlmdAoJCQk7OwoKICAgICAgLVw/fC1oKQkJZnVuY191c2FnZQkJCQk7Owog ICAgICAtLWhlbHApCQlmdW5jX2hlbHAJCQkJOzsKICAgICAgLS12ZXJzaW9u KQlmdW5jX3ZlcnNpb24JCQkJOzsKCiAgICAgICMgU2VwYXJhdGUgb3B0YXJn cyB0byBsb25nIG9wdGlvbnM6CiAgICAgIC0tKj0qKQoJCQlmdW5jX3NwbGl0 X2xvbmdfb3B0ICIkb3B0IgoJCQlzZXQgZHVtbXkgIiRmdW5jX3NwbGl0X2xv bmdfb3B0X25hbWUiICIkZnVuY19zcGxpdF9sb25nX29wdF9hcmciICR7MSsi JEAifQoJCQlzaGlmdAoJCQk7OwoKICAgICAgIyBTZXBhcmF0ZSBub24tYXJn dW1lbnQgc2hvcnQgb3B0aW9uczoKICAgICAgLVw/KnwtaCp8LW4qfC12KikK CQkJZnVuY19zcGxpdF9zaG9ydF9vcHQgIiRvcHQiCgkJCXNldCBkdW1teSAi JGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWUiICItJGZ1bmNfc3BsaXRfc2hv cnRfb3B0X2FyZyIgJHsxKyIkQCJ9CgkJCXNoaWZ0CgkJCTs7CgogICAgICAt LSkJCWJyZWFrCQkJCQk7OwogICAgICAtKikJCWZ1bmNfZmF0YWxfaGVscCAi dW5yZWNvZ25pemVkIG9wdGlvbiBcYCRvcHQnIiA7OwogICAgICAqKQkJc2V0 IGR1bW15ICIkb3B0IiAkezErIiRAIn07CXNoaWZ0OyBicmVhayAgOzsKICAg IGVzYWMKICBkb25lCgogICMgVmFsaWRhdGUgb3B0aW9uczoKCiAgIyBzYXZl IGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQKICBpZiB0ZXN0ICIkIyIgLWd0 IDA7IHRoZW4KICAgIG5vbm9wdD0iJG9wdCIKICAgIHNoaWZ0CiAgZmkKCiAg IyBwcmVzZXJ2ZSAtLWRlYnVnCiAgdGVzdCAiJG9wdF9kZWJ1ZyIgPSA6IHx8 IHByZXNlcnZlX2FyZ3MrPSIgLS1kZWJ1ZyIKCiAgY2FzZSAkaG9zdCBpbgog ICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKICAg ICAgIyBkb24ndCBlbGltaW5hdGUgZHVwbGljYXRpb25zIGluICRwb3N0ZGVw cyBhbmQgJHByZWRlcHMKICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9n ZW5lcmF0ZWRfZGVwcz06CiAgICAgIDs7CiAgICAqKQogICAgICBvcHRfZHVw bGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPSRvcHRfcHJlc2VydmVf ZHVwX2RlcHMKICAgICAgOzsKICBlc2FjCgogICRvcHRfaGVscCB8fCB7CiAg ICAjIFNhbml0eSBjaGVja3MgZmlyc3Q6CiAgICBmdW5jX2NoZWNrX3ZlcnNp b25fbWF0Y2gKCiAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAh PSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiAhPSB5ZXM7IHRoZW4K ICAgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJub3QgY29uZmlndXJl ZCB0byBidWlsZCBhbnkga2luZCBvZiBsaWJyYXJ5IgogICAgZmkKCiAgICAj IERhcndpbiBzdWNrcwogICAgZXZhbCBzdGRfc2hyZXh0PVwiJHNocmV4dF9j bWRzXCIKCiAgICAjIE9ubHkgZXhlY3V0ZSBtb2RlIGlzIGFsbG93ZWQgdG8g aGF2ZSAtZGxvcGVuIGZsYWdzLgogICAgaWYgdGVzdCAtbiAiJG9wdF9kbG9w ZW4iICYmIHRlc3QgIiRvcHRfbW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgogICAg ICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRsb3Blbici CiAgICAgICRFQ0hPICIkaGVscCIgMT4mMgogICAgICBleGl0ICRFWElUX0ZB SUxVUkUKICAgIGZpCgogICAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2FnZSB0 byBhIG1vZGUtc3BlY2lmaWMgb25lLgogICAgZ2VuZXJpY19oZWxwPSIkaGVs cCIKICAgIGhlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPSRv cHRfbW9kZScgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgogIH0KCgogICMgQmFp bCBpZiB0aGUgb3B0aW9ucyB3ZXJlIHNjcmV3ZWQKICAkZXhpdF9jbWQgJEVY SVRfRkFJTFVSRQp9CgoKCgojIyAtLS0tLS0tLS0tLSAjIwojIyAgICBNYWlu LiAgICAjIwojIyAtLS0tLS0tLS0tLSAjIwoKIyBmdW5jX2xhbGliX3AgZmls ZQojIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEnIGxpYnJhcnkg b3IgYC5sbycgb2JqZWN0IGZpbGUuCiMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5 IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBv dXQKIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KZnVuY19sYWxpYl9wICgpCnsK ICAgIHRlc3QgLWYgIiQxIiAmJgogICAgICAkU0VEIC1lIDRxICIkMSIgMj4v ZGV2L251bGwgXAogICAgICAgIHwgJEdSRVAgIl4jIEdlbmVyYXRlZCBieSAu KiRQQUNLQUdFIiA+IC9kZXYvbnVsbCAyPiYxCn0KCiMgZnVuY19sYWxpYl91 bnNhZmVfcCBmaWxlCiMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5s YScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KIyBUaGlzIGZ1bmN0 aW9uIGltcGxlbWVudHMgdGhlIHNhbWUgY2hlY2sgYXMgZnVuY19sYWxpYl9w IHdpdGhvdXQKIyByZXNvcnRpbmcgdG8gZXh0ZXJuYWwgcHJvZ3JhbXMuICBU byB0aGlzIGVuZCwgaXQgcmVkaXJlY3RzIHN0ZGluIGFuZAojIGNsb3NlcyBp dCBhZnRlcndhcmRzLCB3aXRob3V0IHNhdmluZyB0aGUgb3JpZ2luYWwgZmls ZSBkZXNjcmlwdG9yLgojIEFzIGEgc2FmZXR5IG1lYXN1cmUsIHVzZSBpdCBv bmx5IHdoZXJlIGEgbmVnYXRpdmUgcmVzdWx0IHdvdWxkIGJlCiMgZmF0YWwg YW55d2F5LiAgV29ya3MgaWYgYGZpbGUnIGRvZXMgbm90IGV4aXN0LgpmdW5j X2xhbGliX3Vuc2FmZV9wICgpCnsKICAgIGxhbGliX3A9bm8KICAgIGlmIHRl c3QgLWYgIiQxIiAmJiB0ZXN0IC1yICIkMSIgJiYgZXhlYyA1PCYwIDwiJDEi OyB0aGVuCglmb3IgbGFsaWJfcF9sIGluIDEgMiAzIDQKCWRvCgkgICAgcmVh ZCBsYWxpYl9wX2xpbmUKCSAgICBjYXNlICIkbGFsaWJfcF9saW5lIiBpbgoJ CVwjXCBHZW5lcmF0ZWRcIGJ5XCAqJFBBQ0tBR0UqICkgbGFsaWJfcD15ZXM7 IGJyZWFrOzsKCSAgICBlc2FjCglkb25lCglleGVjIDA8JjUgNTwmLQogICAg ZmkKICAgIHRlc3QgIiRsYWxpYl9wIiA9IHllcwp9CgojIGZ1bmNfbHR3cmFw cGVyX3NjcmlwdF9wIGZpbGUKIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9v bCB3cmFwcGVyIHNjcmlwdAojIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJh c2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CiMg ZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCmZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9w ICgpCnsKICAgIGZ1bmNfbGFsaWJfcCAiJDEiCn0KCiMgZnVuY19sdHdyYXBw ZXJfZXhlY3V0YWJsZV9wIGZpbGUKIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGli dG9vbCB3cmFwcGVyIGV4ZWN1dGFibGUKIyBUaGlzIGZ1bmN0aW9uIGlzIG9u bHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNo IG91dAojIGRldGVybWluZWQgaW1wb3N0ZXJzLgpmdW5jX2x0d3JhcHBlcl9l eGVjdXRhYmxlX3AgKCkKewogICAgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZm aXg9CiAgICBjYXNlICQxIGluCiAgICAqLmV4ZSkgOzsKICAgICopIGZ1bmNf bHR3cmFwcGVyX2V4ZWNfc3VmZml4PS5leGUgOzsKICAgIGVzYWMKICAgICRH UkVQICIkbWFnaWNfZXhlIiAiJDEkZnVuY19sdHdyYXBwZXJfZXhlY19zdWZm aXgiID4vZGV2L251bGwgMj4mMQp9CgojIGZ1bmNfbHR3cmFwcGVyX3Njcmlw dG5hbWUgZmlsZQojIEFzc3VtZXMgZmlsZSBpcyBhbiBsdHdyYXBwZXJfZXhl Y3V0YWJsZQojIHVzZXMgJGZpbGUgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3By aWF0ZSBmaWxlbmFtZSBmb3IgYQojIHRlbXBvcmFyeSBsdHdyYXBwZXJfc2Ny aXB0LgpmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICgpCnsKICAgIGZ1bmNf ZGlybmFtZV9hbmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIKICAgIGZ1bmNfc3Ry aXBuYW1lICcnICcuZXhlJyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgogICAg ZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5h bWVfcmVzdWx0LyRvYmpkaXIvJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9X2x0 c2h3cmFwcGVyIgp9CgojIGZ1bmNfbHR3cmFwcGVyX3AgZmlsZQojIFRydWUg aWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9yIHdyYXBw ZXIgZXhlY3V0YWJsZQojIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2lj IHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CiMgZGV0 ZXJtaW5lZCBpbXBvc3RlcnMuCmZ1bmNfbHR3cmFwcGVyX3AgKCkKewogICAg ZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiQxIiB8fCBmdW5jX2x0d3JhcHBl cl9leGVjdXRhYmxlX3AgIiQxIgp9CgoKIyBmdW5jX2V4ZWN1dGVfY21kcyBj b21tYW5kcyBmYWlsX2NtZAojIEV4ZWN1dGUgdGlsZGUtZGVsaW1pdGVkIENP TU1BTkRTLgojIElmIEZBSUxfQ01EIGlzIGdpdmVuLCBldmFsIHRoYXQgdXBv biBmYWlsdXJlLgojIEZBSUxfQ01EIG1heSByZWFkLWFjY2VzcyB0aGUgY3Vy cmVudCBjb21tYW5kIGluIHZhcmlhYmxlIENNRCEKZnVuY19leGVjdXRlX2Nt ZHMgKCkKewogICAgJG9wdF9kZWJ1ZwogICAgc2F2ZV9pZnM9JElGUzsgSUZT PSd+JwogICAgZm9yIGNtZCBpbiAkMTsgZG8KICAgICAgSUZTPSRzYXZlX2lm cwogICAgICBldmFsIGNtZD1cIiRjbWRcIgogICAgICBmdW5jX3Nob3dfZXZh bCAiJGNtZCIgIiR7Mi06fSIKICAgIGRvbmUKICAgIElGUz0kc2F2ZV9pZnMK fQoKCiMgZnVuY19zb3VyY2UgZmlsZQojIFNvdXJjZSBGSUxFLCBhZGRpbmcg ZGlyZWN0b3J5IGNvbXBvbmVudCBpZiBuZWNlc3NhcnkuCiMgTm90ZSB0aGF0 IGl0IGlzIG5vdCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRvIGFwcGVu ZCBhIGRvdCB0bwojIEZJTEUgZXZlbiBpZiBib3RoIEZJTEUgYW5kIEZJTEUu ZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBwZW5kLS5leGUKIyBiZWhhdmlvciBo YXBwZW5zIG9ubHkgZm9yIGV4ZWMoMyksIG5vdCBmb3Igb3BlbigyKSEgIEFs c28sIHNvdXJjaW5nCiMgYEZJTEUuJyBkb2VzIG5vdCB3b3JrIG9uIGN5Z3dp biBtYW5hZ2VkIG1vdW50cy4KZnVuY19zb3VyY2UgKCkKewogICAgJG9wdF9k ZWJ1ZwogICAgY2FzZSAkMSBpbgogICAgKi8qIHwgKlxcKikJLiAiJDEiIDs7 CiAgICAqKQkJLiAiLi8kMSIgOzsKICAgIGVzYWMKfQoKCiMgZnVuY19yZXNv bHZlX3N5c3Jvb3QgUEFUSAojIFJlcGxhY2UgYSBsZWFkaW5nID0gaW4gUEFU SCB3aXRoIGEgc3lzcm9vdC4gIFN0b3JlIHRoZSByZXN1bHQgaW50bwojIGZ1 bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdApmdW5jX3Jlc29sdmVfc3lzcm9v dCAoKQp7CiAgZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0PSQxCiAgY2Fz ZSAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IGluCiAgPSopCiAgICBm dW5jX3N0cmlwbmFtZSAnPScgJycgIiRmdW5jX3Jlc29sdmVfc3lzcm9vdF9y ZXN1bHQiCiAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQ9JGx0X3N5 c3Jvb3QkZnVuY19zdHJpcG5hbWVfcmVzdWx0CiAgICA7OwogIGVzYWMKfQoK IyBmdW5jX3JlcGxhY2Vfc3lzcm9vdCBQQVRICiMgSWYgUEFUSCBiZWdpbnMg d2l0aCB0aGUgc3lzcm9vdCwgcmVwbGFjZSBpdCB3aXRoID0gYW5kCiMgc3Rv cmUgdGhlIHJlc3VsdCBpbnRvIGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3Vs dC4KZnVuY19yZXBsYWNlX3N5c3Jvb3QgKCkKewogIGNhc2UgIiRsdF9zeXNy b290OiQxIiBpbgogID8qOiIkbHRfc3lzcm9vdCIqKQogICAgZnVuY19zdHJp cG5hbWUgIiRsdF9zeXNyb290IiAnJyAiJDEiCiAgICBmdW5jX3JlcGxhY2Vf c3lzcm9vdF9yZXN1bHQ9Ij0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IgogICAg OzsKICAqKQogICAgIyBJbmNsdWRpbmcgbm8gc3lzcm9vdC4KICAgIGZ1bmNf cmVwbGFjZV9zeXNyb290X3Jlc3VsdD0kMQogICAgOzsKICBlc2FjCn0KCiMg ZnVuY19pbmZlcl90YWcgYXJnCiMgSW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRp b24gdG8gdXNlIGlmIGFueSBhcmUgYXZhaWxhYmxlIGFuZAojIGlmIG9uZSB3 YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFnIiBjb21tYW5kIGxpbmUgb3B0 aW9uLgojIE9ubHkgYXR0ZW1wdCB0aGlzIGlmIHRoZSBjb21waWxlciBpbiB0 aGUgYmFzZSBjb21waWxlCiMgY29tbWFuZCBkb2Vzbid0IG1hdGNoIHRoZSBk ZWZhdWx0IGNvbXBpbGVyLgojIGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBmb3Jt ICdnY2MgLi4uJwpmdW5jX2luZmVyX3RhZyAoKQp7CiAgICAkb3B0X2RlYnVn CiAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXog IiR0YWduYW1lIjsgdGhlbgogICAgICBDQ19xdW90ZWQ9CiAgICAgIGZvciBh cmcgaW4gJENDOyBkbwoJZnVuY19hcHBlbmRfcXVvdGVkIENDX3F1b3RlZCAi JGFyZyIKICAgICAgZG9uZQogICAgICBDQ19leHBhbmRlZD1gZnVuY19lY2hv X2FsbCAkQ0NgCiAgICAgIENDX3F1b3RlZF9leHBhbmRlZD1gZnVuY19lY2hv X2FsbCAkQ0NfcXVvdGVkYAogICAgICBjYXNlICRAIGluCiAgICAgICMgQmxh bmtzIGluIHRoZSBjb21tYW5kIG1heSBoYXZlIGJlZW4gc3RyaXBwZWQgYnkg dGhlIGNhbGxpbmcgc2hlbGwsCiAgICAgICMgYnV0IG5vdCBmcm9tIHRoZSBD QyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3VyZSB3YXMgcnVu LgogICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiICRDQ19leHBhbmRlZCAi KiB8ICIkQ0NfZXhwYW5kZWQgIiogfCBcCiAgICAgICIgJENDX3F1b3RlZCIq IHwgIiRDQ19xdW90ZWQgIiogfCAiICRDQ19xdW90ZWRfZXhwYW5kZWQgIiog fCAiJENDX3F1b3RlZF9leHBhbmRlZCAiKikgOzsKICAgICAgIyBCbGFua3Mg YXQgdGhlIHN0YXJ0IG9mICRiYXNlX2NvbXBpbGUgd2lsbCBjYXVzZSB0aGlz IHRvIGZhaWwKICAgICAgIyBpZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhlbSBh cyB3ZWxsLgogICAgICAqKQoJZm9yIHogaW4gJGF2YWlsYWJsZV90YWdzOyBk bwoJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJ RzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCgkgICAg IyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4KCSAgICBldmFsICJgJHtT RUR9IC1uIC1lICcvXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzog JyR6JyQvLC9eIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJyR6JyQv cCcgPCAkcHJvZ3BhdGhgIgoJICAgIENDX3F1b3RlZD0KCSAgICBmb3IgYXJn IGluICRDQzsgZG8KCSAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFp bmluZyBvdGhlciBzaGVsbCBtZXRhY2hhcmFjdGVycy4KCSAgICAgIGZ1bmNf YXBwZW5kX3F1b3RlZCBDQ19xdW90ZWQgIiRhcmciCgkgICAgZG9uZQoJICAg IENDX2V4cGFuZGVkPWBmdW5jX2VjaG9fYWxsICRDQ2AKCSAgICBDQ19xdW90 ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAKCSAgICBj YXNlICIkQCAiIGluCgkgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiAkQ0Nf ZXhwYW5kZWQgIiogfCAiJENDX2V4cGFuZGVkICIqIHwgXAoJICAgICIgJEND X3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiICRDQ19xdW90ZWRfZXhw YW5kZWQgIiogfCAiJENDX3F1b3RlZF9leHBhbmRlZCAiKikKCSAgICAgICMg VGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUgY29tbWFuZCBtYXRj aGVzCgkgICAgICAjIHRoZSBvbmUgaW4gdGhlIHRhZ2dlZCBjb25maWd1cmF0 aW9uLgoJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZp Z3VyYXRpb24gd2Ugd2FudC4KCSAgICAgIHRhZ25hbWU9JHoKCSAgICAgIGJy ZWFrCgkgICAgICA7OwoJICAgIGVzYWMKCSAgZmkKCWRvbmUKCSMgSWYgJHRh Z25hbWUgc3RpbGwgaXNuJ3Qgc2V0LCB0aGVuIG5vIHRhZ2dlZCBjb25maWd1 cmF0aW9uCgkjIHdhcyBmb3VuZCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgdGhh dCB0aGUgIi0tdGFnIiBjb21tYW5kCgkjIGxpbmUgb3B0aW9uIG11c3QgYmUg dXNlZC4KCWlmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgoJICBmdW5jX2Vj aG8gInVuYWJsZSB0byBpbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiIKCSAg ZnVuY19mYXRhbF9lcnJvciAic3BlY2lmeSBhIHRhZyB3aXRoIFxgLS10YWcn IgojCWVsc2UKIwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgJHRhZ25hbWUgdGFn Z2VkIGNvbmZpZ3VyYXRpb24iCglmaQoJOzsKICAgICAgZXNhYwogICAgZmkK fQoKCgojIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qgb3V0cHV0X25hbWUg cGljX25hbWUgbm9ucGljX25hbWUKIyBDcmVhdGUgYSBsaWJ0b29sIG9iamVj dCBmaWxlIChhbmFsb2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKIyBidXQgZG9u J3QgY3JlYXRlIGl0IGlmIHdlJ3JlIGRvaW5nIGEgZHJ5IHJ1bi4KZnVuY193 cml0ZV9saWJ0b29sX29iamVjdCAoKQp7CiAgICB3cml0ZV9saWJvYmo9JHsx fQogICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRo ZW4KICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJwogICAgZWxzZQogICAgICB3 cml0ZV9sb2JqPW5vbmUKICAgIGZpCgogICAgaWYgdGVzdCAiJGJ1aWxkX29s ZF9saWJzIiA9IHllczsgdGhlbgogICAgICB3cml0ZV9vbGRvYmo9XCckezN9 XCcKICAgIGVsc2UKICAgICAgd3JpdGVfb2xkb2JqPW5vbmUKICAgIGZpCgog ICAgJG9wdF9kcnlfcnVuIHx8IHsKICAgICAgY2F0ID4ke3dyaXRlX2xpYm9i an1UIDw8RU9GCiMgJHdyaXRlX2xpYm9iaiAtIGEgbGlidG9vbCBvYmplY3Qg ZmlsZQojIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJ TUVTVEFNUCkgJFZFUlNJT04KIwojIFBsZWFzZSBETyBOT1QgZGVsZXRlIHRo aXMgZmlsZSEKIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxp YnJhcnkuCgojIE5hbWUgb2YgdGhlIFBJQyBvYmplY3QuCnBpY19vYmplY3Q9 JHdyaXRlX2xvYmoKCiMgTmFtZSBvZiB0aGUgbm9uLVBJQyBvYmplY3QKbm9u X3BpY19vYmplY3Q9JHdyaXRlX29sZG9iagoKRU9GCiAgICAgICRNViAiJHt3 cml0ZV9saWJvYmp9VCIgIiR7d3JpdGVfbGlib2JqfSIKICAgIH0KfQoKCiMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCiMgRklMRSBOQU1FIEFORCBQQVRIIENPTlZFUlNJT04gSEVMUEVSIEZV TkNUSU9OUyAjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCgojIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2lu ZV90b193MzIgQVJHCiMgSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgZmlsZSBu YW1lIGNvbnZlcnNpb24gZnVuY3Rpb25zIHdoZW4gJGJ1aWxkIGlzICpuaXgs CiMgYW5kICRob3N0IGlzIG1pbmd3LCBjeWd3aW4sIG9yIHNvbWUgb3RoZXIg dzMyIGVudmlyb25tZW50LiBSZWxpZXMgb24gYQojIGNvcnJlY3RseSBjb25m aWd1cmVkIHdpbmUgZW52aXJvbm1lbnQgYXZhaWxhYmxlLCB3aXRoIHRoZSB3 aW5lcGF0aCBwcm9ncmFtCiMgaW4gJGJ1aWxkJ3MgJFBBVEguCiMKIyBBUkcg aXMgdGhlICRidWlsZCBmaWxlIG5hbWUgdG8gYmUgY29udmVydGVkIHRvIHcz MiBmb3JtYXQuCiMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiAkZnVuY19jb252 ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQsIGFuZCB3aWxsCiMg YmUgZW1wdHkgb24gZXJyb3IgKG9yIHdoZW4gQVJHIGlzIGVtcHR5KQpmdW5j X2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyICgpCnsKICAkb3B0X2Rl YnVnCiAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1 bHQ9IiQxIgogIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgogICAgIyBVbmZvcnR1 bmF0ZWx5LCB3aW5lcGF0aCBkb2VzIG5vdCBleGl0IHdpdGggYSBub24temVy byBlcnJvciBjb2RlLCBzbyB3ZQogICAgIyBhcmUgZm9yY2VkIHRvIGNoZWNr IHRoZSBjb250ZW50cyBvZiBzdGRvdXQuIE9uIHRoZSBvdGhlciBoYW5kLCBp ZiB0aGUKICAgICMgY29tbWFuZCBpcyBub3QgZm91bmQsIHRoZSBzaGVsbCB3 aWxsIHNldCBhbiBleGl0IGNvZGUgb2YgMTI3IGFuZCBwcmludAogICAgIyAq YW4gZXJyb3IgbWVzc2FnZSogdG8gc3Rkb3V0LiBTbyB3ZSBtdXN0IGNoZWNr IGZvciBib3RoIGVycm9yIGNvZGUgb2YKICAgICMgemVybyBBTkQgbm9uLWVt cHR5IHN0ZG91dCwgd2hpY2ggZXhwbGFpbnMgdGhlIG9kZCBjb25zdHJ1Y3Rp b246CiAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyX3Rt cD1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVsbGAKICAgIGlmIHRlc3Qg IiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfY29udmVydF9jb3JlX2Zp bGVfd2luZV90b193MzJfdG1wfSI7IHRoZW4KICAgICAgZnVuY19jb252ZXJ0 X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQ9YCRFQ0hPICIkZnVuY19j b252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl90bXAiIHwKICAgICAgICAk U0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCiAgICBlbHNl CiAgICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVz dWx0PQogICAgZmkKICBmaQp9CiMgZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9m aWxlX3dpbmVfdG9fdzMyCgoKIyBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dp bmVfdG9fdzMyIEFSRwojIEhlbHBlciBmdW5jdGlvbiB1c2VkIGJ5IHBhdGgg Y29udmVyc2lvbiBmdW5jdGlvbnMgd2hlbiAkYnVpbGQgaXMgKm5peCwgYW5k CiMgJGhvc3QgaXMgbWluZ3csIGN5Z3dpbiwgb3Igc29tZSBvdGhlciB3MzIg ZW52aXJvbm1lbnQuIFJlbGllcyBvbiBhIGNvcnJlY3RseQojIGNvbmZpZ3Vy ZWQgd2luZSBlbnZpcm9ubWVudCBhdmFpbGFibGUsIHdpdGggdGhlIHdpbmVw YXRoIHByb2dyYW0gaW4gJGJ1aWxkJ3MKIyAkUEFUSC4gQXNzdW1lcyBBUkcg aGFzIG5vIGxlYWRpbmcgb3IgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hh cmFjdGVycy4KIwojIEFSRyBpcyBwYXRoIHRvIGJlIGNvbnZlcnRlZCBmcm9t ICRidWlsZCBmb3JtYXQgdG8gd2luMzIuCiMgUmVzdWx0IGlzIGF2YWlsYWJs ZSBpbiAkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1 bHQuCiMgVW5jb252ZXJ0aWJsZSBmaWxlIChkaXJlY3RvcnkpIG5hbWVzIGlu IEFSRyBhcmUgc2tpcHBlZDsgaWYgbm8gZGlyZWN0b3J5IG5hbWVzCiMgYXJl IGNvbnZlcnRpYmxlLCB0aGVuIHRoZSByZXN1bHQgbWF5IGJlIGVtcHR5Lgpm dW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyICgpCnsKICAkb3B0 X2RlYnVnCiAgIyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vzbid0IGNv bnZlcnQgcGF0aHMsIG9ubHkgZmlsZSBuYW1lcwogIGZ1bmNfY29udmVydF9j b3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0PSIiCiAgaWYgdGVzdCAtbiAi JDEiOyB0aGVuCiAgICBvbGRJRlM9JElGUwogICAgSUZTPToKICAgIGZvciBm dW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX2YgaW4gJDE7IGRv CiAgICAgIElGUz0kb2xkSUZTCiAgICAgIGZ1bmNfY29udmVydF9jb3JlX2Zp bGVfd2luZV90b193MzIgIiRmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVf dG9fdzMyX2YiCiAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX2NvbnZlcnRfY29y ZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdCIgOyB0aGVuCiAgICAgICAgaWYg dGVzdCAteiAiJGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJf cmVzdWx0IjsgdGhlbgogICAgICAgICAgZnVuY19jb252ZXJ0X2NvcmVfcGF0 aF93aW5lX3RvX3czMl9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29yZV9maWxl X3dpbmVfdG9fdzMyX3Jlc3VsdCIKICAgICAgICBlbHNlCiAgICAgICAgICBm dW5jX2FwcGVuZCBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMy X3Jlc3VsdCAiOyRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMy X3Jlc3VsdCIKICAgICAgICBmaQogICAgICBmaQogICAgZG9uZQogICAgSUZT PSRvbGRJRlMKICBmaQp9CiMgZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9wYXRo X3dpbmVfdG9fdzMyCgoKIyBmdW5jX2N5Z3BhdGggQVJHUy4uLgojIFdyYXBw ZXIgYXJvdW5kIGNhbGxpbmcgdGhlIGN5Z3BhdGggcHJvZ3JhbSB2aWEgTFRf Q1lHUEFUSC4gVGhpcyBpcyB1c2VkIHdoZW4KIyB3aGVuICgxKSAkYnVpbGQg aXMgKm5peCBhbmQgQ3lnd2luIGlzIGhvc3RlZCB2aWEgYSB3aW5lIGVudmly b25tZW50OyBvciAoMikKIyAkYnVpbGQgaXMgTVNZUyBhbmQgJGhvc3QgaXMg Q3lnd2luLCBvciAoMykgJGJ1aWxkIGlzIEN5Z3dpbi4gSW4gY2FzZSAoMSkg b3IKIyAoMiksIHJldHVybnMgdGhlIEN5Z3dpbiBmaWxlIG5hbWUgb3IgcGF0 aCBpbiBmdW5jX2N5Z3BhdGhfcmVzdWx0IChpbnB1dAojIGZpbGUgbmFtZSBv ciBwYXRoIGlzIGFzc3VtZWQgdG8gYmUgaW4gdzMyIGZvcm1hdCwgYXMgcHJl dmlvdXNseSBjb252ZXJ0ZWQKIyBmcm9tICRidWlsZCdzICpuaXggb3IgTVNZ UyBmb3JtYXQpLiBJbiBjYXNlICgzKSwgcmV0dXJucyB0aGUgdzMyIGZpbGUg bmFtZQojIG9yIHBhdGggaW4gZnVuY19jeWdwYXRoX3Jlc3VsdCAoaW5wdXQg ZmlsZSBuYW1lIG9yIHBhdGggaXMgYXNzdW1lZCB0byBiZSBpbgojIEN5Z3dp biBmb3JtYXQpLiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBvbiBlcnJvci4K IwojIEFSR1MgYXJlIHBhc3NlZCB0byBjeWdwYXRoLCB3aXRoIHRoZSBsYXN0 IG9uZSBiZWluZyB0aGUgZmlsZSBuYW1lIG9yIHBhdGggdG8KIyBiZSBjb252 ZXJ0ZWQuCiMKIyBTcGVjaWZ5IHRoZSBhYnNvbHV0ZSAqbml4IChvciB3MzIp IG5hbWUgdG8gY3lncGF0aCBpbiB0aGUgTFRfQ1lHUEFUSAojIGVudmlyb25t ZW50IHZhcmlhYmxlOyBkbyBub3QgcHV0IGl0IGluICRQQVRILgpmdW5jX2N5 Z3BhdGggKCkKewogICRvcHRfZGVidWcKICBpZiB0ZXN0IC1uICIkTFRfQ1lH UEFUSCIgJiYgdGVzdCAtZiAiJExUX0NZR1BBVEgiOyB0aGVuCiAgICBmdW5j X2N5Z3BhdGhfcmVzdWx0PWAkTFRfQ1lHUEFUSCAiJEAiIDI+L2Rldi9udWxs YAogICAgaWYgdGVzdCAiJD8iIC1uZSAwOyB0aGVuCiAgICAgICMgb24gZmFp bHVyZSwgZW5zdXJlIHJlc3VsdCBpcyBlbXB0eQogICAgICBmdW5jX2N5Z3Bh dGhfcmVzdWx0PQogICAgZmkKICBlbHNlCiAgICBmdW5jX2N5Z3BhdGhfcmVz dWx0PQogICAgZnVuY19lcnJvciAiTFRfQ1lHUEFUSCBpcyBlbXB0eSBvciBz cGVjaWZpZXMgbm9uLWV4aXN0ZW50IGZpbGU6IFxgJExUX0NZR1BBVEgnIgog IGZpCn0KI2VuZDogZnVuY19jeWdwYXRoCgoKIyBmdW5jX2NvbnZlcnRfY29y ZV9tc3lzX3RvX3czMiBBUkcKIyBDb252ZXJ0IGZpbGUgbmFtZSBvciBwYXRo IEFSRyBmcm9tIE1TWVMgZm9ybWF0IHRvIHczMiBmb3JtYXQuICBSZXR1cm4K IyByZXN1bHQgaW4gZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzJfcmVz dWx0LgpmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiAoKQp7CiAgJG9w dF9kZWJ1ZwogICMgYXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRvIHJl c3VsdAogIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdD1g KCBjbWQgLy9jIGVjaG8gIiQxIiApIDI+L2Rldi9udWxsIHwKICAgICRTRUQg LWUgJ3MvWyBdKiQvLycgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5 ImAKfQojZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMgoKCiMg ZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgQVJHMSBBUkcyCiMgVmVyaWZ5IHRo YXQgQVJHMSAoYSBmaWxlIG5hbWUgaW4gJGJ1aWxkIGZvcm1hdCkgd2FzIGNv bnZlcnRlZCB0byAkaG9zdAojIGZvcm1hdCBpbiBBUkcyLiBPdGhlcndpc2Us IGVtaXQgYW4gZXJyb3IgbWVzc2FnZSwgYnV0IGNvbnRpbnVlIChyZXNldHRp bmcKIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQgdG8gQVJHMSkuCmZ1bmNf Y29udmVydF9maWxlX2NoZWNrICgpCnsKICAkb3B0X2RlYnVnCiAgaWYgdGVz dCAteiAiJDIiICYmIHRlc3QgLW4gIiQxIiA7IHRoZW4KICAgIGZ1bmNfZXJy b3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBmaWxlIG5hbWUgY29ycmVz cG9uZGluZyB0byIKICAgIGZ1bmNfZXJyb3IgIiAgXGAkMSciCiAgICBmdW5j X2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJs ZXMgbWF5IG5vdCB3b3JrLiIKICAgICMgRmFsbGJhY2s6CiAgICBmdW5jX3Rv X2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgogIGZpCn0KIyBlbmQgZnVuY19jb252 ZXJ0X2ZpbGVfY2hlY2sKCgojIGZ1bmNfY29udmVydF9wYXRoX2NoZWNrIEZS T01fUEFUSFNFUCBUT19QQVRIU0VQIEZST01fUEFUSCBUT19QQVRICiMgVmVy aWZ5IHRoYXQgRlJPTV9QQVRIIChhIHBhdGggaW4gJGJ1aWxkIGZvcm1hdCkg d2FzIGNvbnZlcnRlZCB0byAkaG9zdAojIGZvcm1hdCBpbiBUT19QQVRILiBP dGhlcndpc2UsIGVtaXQgYW4gZXJyb3IgbWVzc2FnZSwgYnV0IGNvbnRpbnVl LCByZXNldHRpbmcKIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQgdG8gYSBz aW1wbGlzdGljIGZhbGxiYWNrIHZhbHVlIChzZWUgYmVsb3cpLgpmdW5jX2Nv bnZlcnRfcGF0aF9jaGVjayAoKQp7CiAgJG9wdF9kZWJ1ZwogIGlmIHRlc3Qg LXogIiQ0IiAmJiB0ZXN0IC1uICIkMyI7IHRoZW4KICAgIGZ1bmNfZXJyb3Ig IkNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGhvc3QgcGF0aCBjb3JyZXNwb25k aW5nIHRvIgogICAgZnVuY19lcnJvciAiICBcYCQzJyIKICAgIGZ1bmNfZXJy b3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBt YXkgbm90IHdvcmsuIgogICAgIyBGYWxsYmFjay4gIFRoaXMgaXMgYSBkZWxp YmVyYXRlbHkgc2ltcGxpc3RpYyAiY29udmVyc2lvbiIgYW5kCiAgICAjIHNo b3VsZCBub3QgYmUgImltcHJvdmVkIi4gIFNlZSBsaWJ0b29sLmluZm8uCiAg ICBpZiB0ZXN0ICJ4JDEiICE9ICJ4JDIiOyB0aGVuCiAgICAgIGx0X3JlcGxh Y2VfcGF0aHNlcF9jaGFycz0ic3wkMXwkMnxnIgogICAgICBmdW5jX3RvX2hv c3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiQzIiB8CiAgICAgICAgJFNFRCAtZSAi JGx0X3JlcGxhY2VfcGF0aHNlcF9jaGFycyJgCiAgICBlbHNlCiAgICAgIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDMiCiAgICBmaQogIGZpCn0KIyBl bmQgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sKCgojIGZ1bmNfY29udmVydF9w YXRoX2Zyb250X2JhY2tfcGF0aHNlcCBGUk9OVFBBVCBCQUNLUEFUIFJFUEwg T1JJRwojIE1vZGlmaWVzIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCBieSBw cmVwZW5kaW5nIFJFUEwgaWYgT1JJRyBtYXRjaGVzIEZST05UUEFUCiMgYW5k IGFwcGVuZGluZyBSRVBMIGlmIE9SSUcgbWF0Y2hlcyBCQUNLUEFULgpmdW5j X2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgKCkKewogICRvcHRf ZGVidWcKICBjYXNlICQ0IGluCiAgJDEgKSBmdW5jX3RvX2hvc3RfcGF0aF9y ZXN1bHQ9IiQzJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKICAgIDs7CiAg ZXNhYwogIGNhc2UgJDQgaW4KICAkMiApIGZ1bmNfdG9faG9zdF9wYXRoX3Jl c3VsdCs9IiQzIgogICAgOzsKICBlc2FjCn0KIyBlbmQgZnVuY19jb252ZXJ0 X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwCgoKIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAkYnVpbGQgdG8g JGhvc3QgRklMRSBOQU1FIENPTlZFUlNJT04gRlVOQ1RJT05TICMKIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK IyBpbnZva2VkIHZpYSBgJHRvX2hvc3RfZmlsZV9jbWQgQVJHJwojCiMgSW4g ZWFjaCBjYXNlLCBBUkcgaXMgdGhlIHBhdGggdG8gYmUgY29udmVydGVkIGZy b20gJGJ1aWxkIHRvICRob3N0IGZvcm1hdC4KIyBSZXN1bHQgd2lsbCBiZSBh dmFpbGFibGUgaW4gJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KCgojIGZ1 bmNfdG9faG9zdF9maWxlIEFSRwojIENvbnZlcnRzIHRoZSBmaWxlIG5hbWUg QVJHIGZyb20gJGJ1aWxkIGZvcm1hdCB0byAkaG9zdCBmb3JtYXQuIFJldHVy biByZXN1bHQKIyBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCmZ1bmNf dG9faG9zdF9maWxlICgpCnsKICAkb3B0X2RlYnVnCiAgJHRvX2hvc3RfZmls ZV9jbWQgIiQxIgp9CiMgZW5kIGZ1bmNfdG9faG9zdF9maWxlCgoKIyBmdW5j X3RvX3Rvb2xfZmlsZSBBUkcgTEFaWQojIGNvbnZlcnRzIHRoZSBmaWxlIG5h bWUgQVJHIGZyb20gJGJ1aWxkIGZvcm1hdCB0byB0b29sY2hhaW4gZm9ybWF0 LiBSZXR1cm4KIyByZXN1bHQgaW4gZnVuY190b190b29sX2ZpbGVfcmVzdWx0 LiAgSWYgdGhlIGNvbnZlcnNpb24gaW4gdXNlIGlzIGxpc3RlZAojIGluICh0 aGUgY29tbWEgc2VwYXJhdGVkKSBMQVpZLCBubyBjb252ZXJzaW9uIHRha2Vz IHBsYWNlLgpmdW5jX3RvX3Rvb2xfZmlsZSAoKQp7CiAgJG9wdF9kZWJ1Zwog IGNhc2UgLCQyLCBpbgogICAgKiwiJHRvX3Rvb2xfZmlsZV9jbWQiLCopCiAg ICAgIGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdD0kMQogICAgICA7OwogICAg KikKICAgICAgJHRvX3Rvb2xfZmlsZV9jbWQgIiQxIgogICAgICBmdW5jX3Rv X3Rvb2xfZmlsZV9yZXN1bHQ9JGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdAog ICAgICA7OwogIGVzYWMKfQojIGVuZCBmdW5jX3RvX3Rvb2xfZmlsZQoKCiMg ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcCBBUkcKIyBDb3B5IEFSRyB0byBmdW5j X3RvX2hvc3RfZmlsZV9yZXN1bHQuCmZ1bmNfY29udmVydF9maWxlX25vb3Ag KCkKewogIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCn0KIyBlbmQg ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcAoKCiMgZnVuY19jb252ZXJ0X2ZpbGVf bXN5c190b193MzIgQVJHCiMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20g KG1pbmd3KSBNU1lTIHRvIChtaW5ndykgdzMyIGZvcm1hdDsgYXV0b21hdGlj CiMgY29udmVyc2lvbiB0byB3MzIgaXMgbm90IGF2YWlsYWJsZSBpbnNpZGUg dGhlIGN3cmFwcGVyLiAgUmV0dXJucyByZXN1bHQgaW4KIyBmdW5jX3RvX2hv c3RfZmlsZV9yZXN1bHQuCmZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMy ICgpCnsKICAkb3B0X2RlYnVnCiAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0 PSIkMSIKICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KICAgIGZ1bmNfY29udmVy dF9jb3JlX21zeXNfdG9fdzMyICIkMSIKICAgIGZ1bmNfdG9faG9zdF9maWxl X3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3Vs dCIKICBmaQogIGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIgIiRmdW5j X3RvX2hvc3RfZmlsZV9yZXN1bHQiCn0KIyBlbmQgZnVuY19jb252ZXJ0X2Zp bGVfbXN5c190b193MzIKCgojIGZ1bmNfY29udmVydF9maWxlX2N5Z3dpbl90 b193MzIgQVJHCiMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20gQ3lnd2lu IHRvIHczMiBmb3JtYXQuICBSZXR1cm5zIHJlc3VsdCBpbgojIGZ1bmNfdG9f aG9zdF9maWxlX3Jlc3VsdC4KZnVuY19jb252ZXJ0X2ZpbGVfY3lnd2luX3Rv X3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNfdG9faG9zdF9maWxlX3Jl c3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCiAgICAjIGJlY2F1 c2UgJGJ1aWxkIGlzIGN5Z3dpbiwgd2UgY2FsbCAidGhlIiBjeWdwYXRoIGlu ICRQQVRIOyBubyBuZWVkIHRvIHVzZQogICAgIyBMVF9DWUdQQVRIIGluIHRo aXMgY2FzZS4KICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD1gY3lncGF0 aCAtbSAiJDEiYAogIGZpCiAgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgIiQx IiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKfQojIGVuZCBmdW5jX2Nv bnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMyCgoKIyBmdW5jX2NvbnZlcnRfZmls ZV9uaXhfdG9fdzMyIEFSRwojIENvbnZlcnQgZmlsZSBuYW1lIEFSRyBmcm9t ICpuaXggdG8gdzMyIGZvcm1hdC4gIFJlcXVpcmVzIGEgd2luZSBlbnZpcm9u bWVudAojIGFuZCBhIHdvcmtpbmcgd2luZXBhdGguIFJldHVybnMgcmVzdWx0 IGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KZnVuY19jb252ZXJ0X2Zp bGVfbml4X3RvX3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNfdG9faG9z dF9maWxlX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCiAg ICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyICIkMSIKICAg IGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3Jl X2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgogIGZpCiAgZnVuY19jb252ZXJ0 X2ZpbGVfY2hlY2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIK fQojIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyCgoKIyBmdW5j X2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbiBBUkcKIyBDb252ZXJ0IGZp bGUgbmFtZSBBUkcgZnJvbSBNU1lTIHRvIEN5Z3dpbiBmb3JtYXQuICBSZXF1 aXJlcyBMVF9DWUdQQVRIIHNldC4KIyBSZXR1cm5zIHJlc3VsdCBpbiBmdW5j X3RvX2hvc3RfZmlsZV9yZXN1bHQuCmZ1bmNfY29udmVydF9maWxlX21zeXNf dG9fY3lnd2luICgpCnsKICAkb3B0X2RlYnVnCiAgZnVuY190b19ob3N0X2Zp bGVfcmVzdWx0PSIkMSIKICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KICAgIGZ1 bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkMSIKICAgIGZ1bmNfY3ln cGF0aCAtdSAiJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3Vs dCIKICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY3lncGF0 aF9yZXN1bHQiCiAgZmkKICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAiJDEi ICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0Igp9CiMgZW5kIGZ1bmNfY29u dmVydF9maWxlX21zeXNfdG9fY3lnd2luCgoKIyBmdW5jX2NvbnZlcnRfZmls ZV9uaXhfdG9fY3lnd2luIEFSRwojIENvbnZlcnQgZmlsZSBuYW1lIEFSRyBm cm9tICpuaXggdG8gQ3lnd2luIGZvcm1hdC4gIFJlcXVpcmVzIEN5Z3dpbiBp bnN0YWxsZWQKIyBpbiBhIHdpbmUgZW52aXJvbm1lbnQsIHdvcmtpbmcgd2lu ZXBhdGgsIGFuZCBMVF9DWUdQQVRIIHNldC4gIFJldHVybnMgcmVzdWx0CiMg aW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgpmdW5jX2NvbnZlcnRfZmls ZV9uaXhfdG9fY3lnd2luICgpCnsKICAkb3B0X2RlYnVnCiAgZnVuY190b19o b3N0X2ZpbGVfcmVzdWx0PSIkMSIKICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4K ICAgICMgY29udmVydCBmcm9tICpuaXggdG8gdzMyLCB0aGVuIHVzZSBjeWdw YXRoIHRvIGNvbnZlcnQgZnJvbSB3MzIgdG8gY3lnd2luLgogICAgZnVuY19j b252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMiAiJDEiCiAgICBmdW5jX2N5 Z3BhdGggLXUgIiRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMy X3Jlc3VsdCIKICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNf Y3lncGF0aF9yZXN1bHQiCiAgZmkKICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVj ayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0Igp9CiMgZW5kIGZ1 bmNfY29udmVydF9maWxlX25peF90b19jeWd3aW4KCgojIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAkYnVpbGQgdG8g JGhvc3QgUEFUSCBDT05WRVJTSU9OIEZVTkNUSU9OUyAjCiMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIGludm9rZWQg dmlhIGAkdG9faG9zdF9wYXRoX2NtZCBBUkcnCiMKIyBJbiBlYWNoIGNhc2Us IEFSRyBpcyB0aGUgcGF0aCB0byBiZSBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQg dG8gJGhvc3QgZm9ybWF0LgojIFRoZSByZXN1bHQgd2lsbCBiZSBhdmFpbGFi bGUgaW4gJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KIwojIFBhdGggc2Vw YXJhdG9ycyBhcmUgYWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0 IHRvICRob3N0IGZvcm1hdC4gIElmCiMgQVJHIGJlZ2lucyBvciBlbmRzIHdp dGggYSBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXIsIGl0IGlzIHByZXNlcnZl ZCAoYnV0CiMgY29udmVydGVkIHRvICRob3N0IGZvcm1hdCkgb24gb3V0cHV0 LgojCiMgQWxsIHBhdGggY29udmVyc2lvbiBmdW5jdGlvbnMgYXJlIG5hbWVk IHVzaW5nIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbjoKIyAgIGZpbGUgbmFt ZSBjb252ZXJzaW9uIGZ1bmN0aW9uICAgIDogZnVuY19jb252ZXJ0X2ZpbGVf WF90b19ZICgpCiMgICBwYXRoIGNvbnZlcnNpb24gZnVuY3Rpb24gICAgICAg ICA6IGZ1bmNfY29udmVydF9wYXRoX1hfdG9fWSAoKQojIHdoZXJlLCBmb3Ig YW55IGdpdmVuICRidWlsZC8kaG9zdCBjb21iaW5hdGlvbiB0aGUgJ1hfdG9f WScgdmFsdWUgaXMgdGhlCiMgc2FtZS4gIElmIGNvbnZlcnNpb24gZnVuY3Rp b25zIGFyZSBhZGRlZCBmb3IgbmV3ICRidWlsZC8kaG9zdCBjb21iaW5hdGlv bnMsCiMgdGhlIHR3byBuZXcgZnVuY3Rpb25zIG11c3QgZm9sbG93IHRoaXMg cGF0dGVybiwgb3IgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQKIyB3aWxs IGJyZWFrLgoKCiMgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQKIyBFbnN1 cmVzIHRoYXQgZnVuY3Rpb24gInBvaW50ZXIiIHZhcmlhYmxlICR0b19ob3N0 X3BhdGhfY21kIGlzIHNldCB0byB0aGUKIyBhcHByb3ByaWF0ZSB2YWx1ZSwg YmFzZWQgb24gdGhlIHZhbHVlIG9mICR0b19ob3N0X2ZpbGVfY21kLgp0b19o b3N0X3BhdGhfY21kPQpmdW5jX2luaXRfdG9faG9zdF9wYXRoX2NtZCAoKQp7 CiAgJG9wdF9kZWJ1ZwogIGlmIHRlc3QgLXogIiR0b19ob3N0X3BhdGhfY21k IjsgdGhlbgogICAgZnVuY19zdHJpcG5hbWUgJ2Z1bmNfY29udmVydF9maWxl XycgJycgIiR0b19ob3N0X2ZpbGVfY21kIgogICAgdG9faG9zdF9wYXRoX2Nt ZD0iZnVuY19jb252ZXJ0X3BhdGhfJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9 IgogIGZpCn0KCgojIGZ1bmNfdG9faG9zdF9wYXRoIEFSRwojIENvbnZlcnRz IHRoZSBwYXRoIEFSRyBmcm9tICRidWlsZCBmb3JtYXQgdG8gJGhvc3QgZm9y bWF0LiBSZXR1cm4gcmVzdWx0CiMgaW4gZnVuY190b19ob3N0X3BhdGhfcmVz dWx0LgpmdW5jX3RvX2hvc3RfcGF0aCAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1 bmNfaW5pdF90b19ob3N0X3BhdGhfY21kCiAgJHRvX2hvc3RfcGF0aF9jbWQg IiQxIgp9CiMgZW5kIGZ1bmNfdG9faG9zdF9wYXRoCgoKIyBmdW5jX2NvbnZl cnRfcGF0aF9ub29wIEFSRwojIENvcHkgQVJHIHRvIGZ1bmNfdG9faG9zdF9w YXRoX3Jlc3VsdC4KZnVuY19jb252ZXJ0X3BhdGhfbm9vcCAoKQp7CiAgZnVu Y190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKfQojIGVuZCBmdW5jX2NvbnZl cnRfcGF0aF9ub29wCgoKIyBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3cz MiBBUkcKIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gKG1pbmd3KSBNU1lTIHRv IChtaW5ndykgdzMyIGZvcm1hdDsgYXV0b21hdGljCiMgY29udmVyc2lvbiB0 byB3MzIgaXMgbm90IGF2YWlsYWJsZSBpbnNpZGUgdGhlIGN3cmFwcGVyLiAg UmV0dXJucyByZXN1bHQgaW4KIyBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQu CmZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyICgpCnsKICAkb3B0X2Rl YnVnCiAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKICBpZiB0ZXN0 IC1uICIkMSI7IHRoZW4KICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWls aW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbSBBUkcuICBNU1lT CiAgICAjIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlOyBjeWdwYXRo IHR1cm5zIHRoZW0gaW50byAnLjsnIGFuZCAnOy4nOwogICAgIyBhbmQgd2lu ZXBhdGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHkuCiAgICBmdW5jX3N0cmlw bmFtZSA6IDogIiQxIgogICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0CiAgICBmdW5jX2NvbnZlcnRfY29yZV9tc3lz X3RvX3czMiAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiCiAgICBmdW5jX3Rv X2hvc3RfcGF0aF9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3Rv X3czMl9yZXN1bHQiCiAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6ICI7 IiBcCiAgICAgICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgIiRmdW5jX3Rv X2hvc3RfcGF0aF9yZXN1bHQiCiAgICBmdW5jX2NvbnZlcnRfcGF0aF9mcm9u dF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoiICI7IiAiJDEiCiAgZmkKfQojIGVu ZCBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMgoKCiMgZnVuY19jb252 ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiBBUkcKIyBDb252ZXJ0IHBhdGggQVJH IGZyb20gQ3lnd2luIHRvIHczMiBmb3JtYXQuICBSZXR1cm5zIHJlc3VsdCBp bgojIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KZnVuY19jb252ZXJ0X3Bh dGhfY3lnd2luX3RvX3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNfdG9f aG9zdF9wYXRoX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEiOyB0aGVu CiAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMjoKICAg IGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3RvX2hvc3RfcGF0 aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1bmNfdG9faG9z dF9wYXRoX3Jlc3VsdD1gY3lncGF0aCAtbSAtcCAiJGZ1bmNfdG9faG9zdF9w YXRoX3RtcDEiYAogICAgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sgOiAiOyIg XAogICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiICIkZnVuY190b19o b3N0X3BhdGhfcmVzdWx0IgogICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRf YmFja19wYXRoc2VwICI6KiIgIio6IiAiOyIgIiQxIgogIGZpCn0KIyBlbmQg ZnVuY19jb252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMgoKCiMgZnVuY19jb252 ZXJ0X3BhdGhfbml4X3RvX3czMiBBUkcKIyBDb252ZXJ0IHBhdGggQVJHIGZy b20gKm5peCB0byB3MzIgZm9ybWF0LiAgUmVxdWlyZXMgYSB3aW5lIGVudmly b25tZW50IGFuZAojIGEgd29ya2luZyB3aW5lcGF0aC4gIFJldHVybnMgcmVz dWx0IGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KZnVuY19jb252ZXJ0 X3BhdGhfbml4X3RvX3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNfdG9f aG9zdF9wYXRoX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEiOyB0aGVu CiAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMjoKICAg IGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3RvX2hvc3RfcGF0 aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1bmNfY29udmVy dF9jb3JlX3BhdGhfd2luZV90b193MzIgIiRmdW5jX3RvX2hvc3RfcGF0aF90 bXAxIgogICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkZnVuY19jb252 ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQiCiAgICBmdW5jX2Nv bnZlcnRfcGF0aF9jaGVjayA6ICI7IiBcCiAgICAgICIkZnVuY190b19ob3N0 X3BhdGhfdG1wMSIgIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCiAgICBm dW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoi ICI7IiAiJDEiCiAgZmkKfQojIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9uaXhf dG9fdzMyCgoKIyBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX2N5Z3dpbiBB UkcKIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gTVNZUyB0byBDeWd3aW4gZm9y bWF0LiAgUmVxdWlyZXMgTFRfQ1lHUEFUSCBzZXQuCiMgUmV0dXJucyByZXN1 bHQgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgpmdW5jX2NvbnZlcnRf cGF0aF9tc3lzX3RvX2N5Z3dpbiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNf dG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEiOyB0 aGVuCiAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMjoK ICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3RvX2hvc3Rf cGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1bmNfY29u dmVydF9jb3JlX21zeXNfdG9fdzMyICIkZnVuY190b19ob3N0X3BhdGhfdG1w MSIKICAgIGZ1bmNfY3lncGF0aCAtdSAtcCAiJGZ1bmNfY29udmVydF9jb3Jl X21zeXNfdG9fdzMyX3Jlc3VsdCIKICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jl c3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCiAgICBmdW5jX2NvbnZlcnRf cGF0aF9jaGVjayA6IDogXAogICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3Rt cDEiICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgogICAgZnVuY19jb252 ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICI6KiIgIio6IiA6ICIkMSIK ICBmaQp9CiMgZW5kIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fY3lnd2lu CgoKIyBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luIEFSRwojIENv bnZlcnQgcGF0aCBBUkcgZnJvbSAqbml4IHRvIEN5Z3dpbiBmb3JtYXQuICBS ZXF1aXJlcyBDeWd3aW4gaW5zdGFsbGVkIGluIGEKIyBhIHdpbmUgZW52aXJv bm1lbnQsIHdvcmtpbmcgd2luZXBhdGgsIGFuZCBMVF9DWUdQQVRIIHNldC4g IFJldHVybnMgcmVzdWx0IGluCiMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0 LgpmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luICgpCnsKICAkb3B0 X2RlYnVnCiAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKICBpZiB0 ZXN0IC1uICIkMSI7IHRoZW4KICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRy YWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbQogICAgIyBB UkcuIG1zeXMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmUsIGN5Z3Bh dGggdHVybnMgdGhlbQogICAgIyBpbnRvICcuOycgYW5kICc7LicsIGFuZCB3 aW5lcGF0aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KICAgIGZ1bmNfc3Ry aXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1bmNfY29udmVydF9jb3JlX3Bh dGhfd2luZV90b193MzIgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIgogICAg ZnVuY19jeWdwYXRoIC11IC1wICIkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93 aW5lX3RvX3czMl9yZXN1bHQiCiAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1 bHQ9IiRmdW5jX2N5Z3BhdGhfcmVzdWx0IgogICAgZnVuY19jb252ZXJ0X3Bh dGhfY2hlY2sgOiA6IFwKICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAx IiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKICAgIGZ1bmNfY29udmVy dF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAiOioiICIqOiIgOiAiJDEiCiAg ZmkKfQojIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luCgoK IyBmdW5jX21vZGVfY29tcGlsZSBhcmcuLi4KZnVuY19tb2RlX2NvbXBpbGUg KCkKewogICAgJG9wdF9kZWJ1ZwogICAgIyBHZXQgdGhlIGNvbXBpbGF0aW9u IGNvbW1hbmQgYW5kIHRoZSBzb3VyY2UgZmlsZS4KICAgIGJhc2VfY29tcGls ZT0KICAgIHNyY2ZpbGU9IiRub25vcHQiICAjICBhbHdheXMga2VlcCBhIG5v bi1lbXB0eSB2YWx1ZSBpbiAic3JjZmlsZSIKICAgIHN1cHByZXNzX29wdD15 ZXMKICAgIHN1cHByZXNzX291dHB1dD0KICAgIGFyZ19tb2RlPW5vcm1hbAog ICAgbGlib2JqPQogICAgbGF0ZXI9CiAgICBwaWVfZmxhZz0KCiAgICBmb3Ig YXJnCiAgICBkbwogICAgICBjYXNlICRhcmdfbW9kZSBpbgogICAgICBhcmcg ICkKCSMgZG8gbm90ICJjb250aW51ZSIuICBJbnN0ZWFkLCBhZGQgdGhpcyB0 byBiYXNlX2NvbXBpbGUKCWxhc3Rhcmc9IiRhcmciCglhcmdfbW9kZT1ub3Jt YWwKCTs7CgogICAgICB0YXJnZXQgKQoJbGlib2JqPSIkYXJnIgoJYXJnX21v ZGU9bm9ybWFsCgljb250aW51ZQoJOzsKCiAgICAgIG5vcm1hbCApCgkjIEFj Y2VwdCBhbnkgY29tbWFuZC1saW5lIG9wdGlvbnMuCgljYXNlICRhcmcgaW4K CS1vKQoJICB0ZXN0IC1uICIkbGlib2JqIiAmJiBcCgkgICAgZnVuY19mYXRh bF9lcnJvciAieW91IGNhbm5vdCBzcGVjaWZ5IFxgLW8nIG1vcmUgdGhhbiBv bmNlIgoJICBhcmdfbW9kZT10YXJnZXQKCSAgY29udGludWUKCSAgOzsKCgkt cGllIHwgLWZwaWUgfCAtZlBJRSkKICAgICAgICAgIHBpZV9mbGFnKz0iICRh cmciCgkgIGNvbnRpbnVlCgkgIDs7CgoJLXNoYXJlZCB8IC1zdGF0aWMgfCAt cHJlZmVyLXBpYyB8IC1wcmVmZXItbm9uLXBpYykKCSAgbGF0ZXIrPSIgJGFy ZyIKCSAgY29udGludWUKCSAgOzsKCgktbm8tc3VwcHJlc3MpCgkgIHN1cHBy ZXNzX29wdD1ubwoJICBjb250aW51ZQoJICA7OwoKCS1YY29tcGlsZXIpCgkg IGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25lIGdvZXMgaW50byB0aGUg ImJhc2VfY29tcGlsZSIgYXJnIGxpc3QKCSAgY29udGludWUgICAgICAjICBU aGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUgcmV0YWluZWQg b3IKCSAgOzsgICAgICAgICAgICAjICByZXBsYWNlZCBsYXRlci4gIEkgd291 bGQgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIGJ1Zy4KCgktV2MsKikKCSAgZnVu Y19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgoJICBhcmdzPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKCSAgbGFzdGFyZz0KCSAgc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JywnCgkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCgkgICAgSUZTPSIk c2F2ZV9pZnMiCgkgICAgZnVuY19hcHBlbmRfcXVvdGVkIGxhc3RhcmcgIiRh cmciCgkgIGRvbmUKCSAgSUZTPSIkc2F2ZV9pZnMiCgkgIGZ1bmNfc3RyaXBu YW1lICcgJyAnJyAiJGxhc3RhcmciCgkgIGxhc3Rhcmc9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAoKCSAgIyBBZGQgdGhlIGFyZ3VtZW50cyB0byBiYXNlX2Nv bXBpbGUuCgkgIGJhc2VfY29tcGlsZSs9IiAkbGFzdGFyZyIKCSAgY29udGlu dWUKCSAgOzsKCgkqKQoJICAjIEFjY2VwdCB0aGUgY3VycmVudCBhcmd1bWVu dCBhcyB0aGUgc291cmNlIGZpbGUuCgkgICMgVGhlIHByZXZpb3VzICJzcmNm aWxlIiBiZWNvbWVzIHRoZSBjdXJyZW50IGFyZ3VtZW50LgoJICAjCgkgIGxh c3Rhcmc9IiRzcmNmaWxlIgoJICBzcmNmaWxlPSIkYXJnIgoJICA7OwoJZXNh YyAgIyAgY2FzZSAkYXJnCgk7OwogICAgICBlc2FjICAgICMgIGNhc2UgJGFy Z19tb2RlCgogICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIHByZXZp b3VzIGFyZ3VtZW50LgogICAgICBmdW5jX2FwcGVuZF9xdW90ZWQgYmFzZV9j b21waWxlICIkbGFzdGFyZyIKICAgIGRvbmUgIyBmb3IgYXJnCgogICAgY2Fz ZSAkYXJnX21vZGUgaW4KICAgIGFyZykKICAgICAgZnVuY19mYXRhbF9lcnJv ciAieW91IG11c3Qgc3BlY2lmeSBhbiBhcmd1bWVudCBmb3IgLVhjb21waWxl IgogICAgICA7OwogICAgdGFyZ2V0KQogICAgICBmdW5jX2ZhdGFsX2Vycm9y ICJ5b3UgbXVzdCBzcGVjaWZ5IGEgdGFyZ2V0IHdpdGggXGAtbyciCiAgICAg IDs7CiAgICAqKQogICAgICAjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFy eSBvYmplY3QuCiAgICAgIHRlc3QgLXogIiRsaWJvYmoiICYmIHsKCWZ1bmNf YmFzZW5hbWUgIiRzcmNmaWxlIgoJbGlib2JqPSIkZnVuY19iYXNlbmFtZV9y ZXN1bHQiCiAgICAgIH0KICAgICAgOzsKICAgIGVzYWMKCiAgICAjIFJlY29n bml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgogICAgIyBJ ZiB0aGUgdXNlciBzcGVjaWZpZXMgLW8gZmlsZS5vLCBpdCBpcyByZXBsYWNl ZCB3aXRoIGZpbGUubG8KICAgIGNhc2UgJGxpYm9iaiBpbgogICAgKi5bY0NG U2lmbXNvXSB8IFwKICAgICouYWRhIHwgKi5hZGIgfCAqLmFkcyB8ICouYXNt IHwgXAogICAgKi5jKysgfCAqLmNjIHwgKi5paSB8ICouY2xhc3MgfCAqLmNw cCB8ICouY3h4IHwgXAogICAgKi5bZkZdWzA5XT8gfCAqLmZvciB8ICouamF2 YSB8ICoub2JqIHwgKi5zeCB8ICouY3UgfCAqLmN1cCkKICAgICAgZnVuY194 Zm9ybSAiJGxpYm9iaiIKICAgICAgbGlib2JqPSRmdW5jX3hmb3JtX3Jlc3Vs dAogICAgICA7OwogICAgZXNhYwoKICAgIGNhc2UgJGxpYm9iaiBpbgogICAg Ki5sbykgZnVuY19sbzJvICIkbGlib2JqIjsgb2JqPSRmdW5jX2xvMm9fcmVz dWx0IDs7CiAgICAqKQogICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3Qg ZGV0ZXJtaW5lIG5hbWUgb2YgbGlicmFyeSBvYmplY3QgZnJvbSBcYCRsaWJv YmonIgogICAgICA7OwogICAgZXNhYwoKICAgIGZ1bmNfaW5mZXJfdGFnICRi YXNlX2NvbXBpbGUKCiAgICBmb3IgYXJnIGluICRsYXRlcjsgZG8KICAgICAg Y2FzZSAkYXJnIGluCiAgICAgIC1zaGFyZWQpCgl0ZXN0ICIkYnVpbGRfbGli dG9vbF9saWJzIiAhPSB5ZXMgJiYgXAoJICBmdW5jX2ZhdGFsX2NvbmZpZ3Vy YXRpb24gImNhbiBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKCWJ1aWxk X29sZF9saWJzPW5vCgljb250aW51ZQoJOzsKCiAgICAgIC1zdGF0aWMpCgli dWlsZF9saWJ0b29sX2xpYnM9bm8KCWJ1aWxkX29sZF9saWJzPXllcwoJY29u dGludWUKCTs7CgogICAgICAtcHJlZmVyLXBpYykKCXBpY19tb2RlPXllcwoJ Y29udGludWUKCTs7CgogICAgICAtcHJlZmVyLW5vbi1waWMpCglwaWNfbW9k ZT1ubwoJY29udGludWUKCTs7CiAgICAgIGVzYWMKICAgIGRvbmUKCiAgICBm dW5jX3F1b3RlX2Zvcl9ldmFsICIkbGlib2JqIgogICAgdGVzdCAiWCRsaWJv YmoiICE9ICJYJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IiBcCiAgICAg ICYmICRFQ0hPICJYJGxpYm9iaiIgfCAkR1JFUCAnW11+I14qe307PD4/Iici JyInCSAmKCl8YCRbXScgXAogICAgICAmJiBmdW5jX3dhcm5pbmcgImxpYm9i aiBuYW1lIFxgJGxpYm9iaicgbWF5IG5vdCBjb250YWluIHNoZWxsIHNwZWNp YWwgY2hhcmFjdGVycy4iCiAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1l ICIkb2JqIiAiLyIgIiIKICAgIG9iam5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jl c3VsdCIKICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgogICAgbG9i aj0ke3hkaXJ9JG9iamRpci8kb2JqbmFtZQoKICAgIHRlc3QgLXogIiRiYXNl X2NvbXBpbGUiICYmIFwKICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVz dCBzcGVjaWZ5IGEgY29tcGlsYXRpb24gY29tbWFuZCIKCiAgICAjIERlbGV0 ZSBhbnkgbGVmdG92ZXIgbGlicmFyeSBvYmplY3RzLgogICAgaWYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgogICAgICByZW1vdmVsaXN0 PSIkb2JqICRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKICAgIGVsc2UKICAg ICAgcmVtb3ZlbGlzdD0iJGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgogICAg ZmkKCiAgICAjIE9uIEN5Z3dpbiB0aGVyZSdzIG5vICJyZWFsIiBQSUMgZmxh ZyBzbyB3ZSBtdXN0IGJ1aWxkIGJvdGggb2JqZWN0IHR5cGVzCiAgICBjYXNl ICRob3N0X29zIGluCiAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBv czIqIHwgY2VnY2MqKQogICAgICBwaWNfbW9kZT1kZWZhdWx0CiAgICAgIDs7 CiAgICBlc2FjCiAgICBpZiB0ZXN0ICIkcGljX21vZGUiID0gbm8gJiYgdGVz dCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgog ICAgICAjIG5vbi1QSUMgY29kZSBpbiBzaGFyZWQgbGlicmFyaWVzIGlzIG5v dCBzdXBwb3J0ZWQKICAgICAgcGljX21vZGU9ZGVmYXVsdAogICAgZmkKCiAg ICAjIENhbGN1bGF0ZSB0aGUgZmlsZW5hbWUgb2YgdGhlIG91dHB1dCBvYmpl Y3QgaWYgY29tcGlsZXIgZG9lcwogICAgIyBub3Qgc3VwcG9ydCAtbyB3aXRo IC1jCiAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IG5vOyB0aGVuCiAg ICAgIG91dHB1dF9vYmo9YCRFQ0hPICIkc3JjZmlsZSIgfCAkU0VEICdzJV4u Ki8lJTsgcyVcLlteLl0qJCUlJ2AuJHtvYmpleHR9CiAgICAgIGxvY2tmaWxl PSIkb3V0cHV0X29iai5sb2NrIgogICAgZWxzZQogICAgICBvdXRwdXRfb2Jq PQogICAgICBuZWVkX2xvY2tzPW5vCiAgICAgIGxvY2tmaWxlPQogICAgZmkK CiAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5l ZWRlZAogICAgIyBXZSB1c2UgdGhpcyBzY3JpcHQgZmlsZSB0byBtYWtlIHRo ZSBsaW5rLCBpdCBhdm9pZHMgY3JlYXRpbmcgYSBuZXcgZmlsZQogICAgaWYg dGVzdCAiJG5lZWRfbG9ja3MiID0geWVzOyB0aGVuCiAgICAgIHVudGlsICRv cHRfZHJ5X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxvY2tmaWxlIiAyPi9k ZXYvbnVsbDsgZG8KCWZ1bmNfZWNobyAiV2FpdGluZyBmb3IgJGxvY2tmaWxl IHRvIGJlIHJlbW92ZWQiCglzbGVlcCAyCiAgICAgIGRvbmUKICAgIGVsaWYg dGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybjsgdGhlbgogICAgICBpZiB0ZXN0 IC1mICIkbG9ja2ZpbGUiOyB0aGVuCgkkRUNITyAiXAoqKiogRVJST1IsICRs b2NrZmlsZSBleGlzdHMgYW5kIGNvbnRhaW5zOgpgY2F0ICRsb2NrZmlsZSAy Pi9kZXYvbnVsbGAKClRoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9j ZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKdGVtcG9yYXJ5IG9iamVj dCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQg YmVjYXVzZQp5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycg YW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CnJlcGVhdCB0aGlzIGNvbXBp bGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhh ZCBiZXR0ZXIKYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0 aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKY29tcGlsZXIuIgoKCSRv cHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKCWV4aXQgJEVYSVRfRkFJ TFVSRQogICAgICBmaQogICAgICByZW1vdmVsaXN0Kz0iICRvdXRwdXRfb2Jq IgogICAgICAkRUNITyAiJHNyY2ZpbGUiID4gIiRsb2NrZmlsZSIKICAgIGZp CgogICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAogICAgcmVt b3ZlbGlzdCs9IiAkbG9ja2ZpbGUiCiAgICB0cmFwICckb3B0X2RyeV9ydW4g fHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnIDEgMiAx NQoKICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkc3JjZmlsZSIgZnVuY19jb252 ZXJ0X2ZpbGVfbXN5c190b193MzIKICAgIHNyY2ZpbGU9JGZ1bmNfdG9fdG9v bF9maWxlX3Jlc3VsdAogICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHNyY2Zp bGUiCiAgICBxc3JjZmlsZT0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQK CiAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBidWls ZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KICAgIGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCiAgICAgICMgV2l0aG91dCB0aGlz IGFzc2lnbm1lbnQsIGJhc2VfY29tcGlsZSBnZXRzIGVtcHRpZWQuCiAgICAg IGZic2RfaGlkZW91c19zaF9idWc9JGJhc2VfY29tcGlsZQoKICAgICAgaWYg dGVzdCAiJHBpY19tb2RlIiAhPSBubzsgdGhlbgoJY29tbWFuZD0iJGJhc2Vf Y29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgogICAgICBlbHNlCgkjIERv bid0IGJ1aWxkIFBJQyBjb2RlCgljb21tYW5kPSIkYmFzZV9jb21waWxlICRx c3JjZmlsZSIKICAgICAgZmkKCiAgICAgIGZ1bmNfbWtkaXJfcCAiJHhkaXIk b2JqZGlyIgoKICAgICAgaWYgdGVzdCAteiAiJG91dHB1dF9vYmoiOyB0aGVu CgkjIFBsYWNlIFBJQyBvYmplY3RzIGluICRvYmpkaXIKCWNvbW1hbmQrPSIg LW8gJGxvYmoiCiAgICAgIGZpCgogICAgICBmdW5jX3Nob3dfZXZhbF9sb2Nh bGUgIiRjb21tYW5kIglcCiAgICAgICAgICAndGVzdCAtbiAiJG91dHB1dF9v YmoiICYmICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJwoK ICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgoJIHRlc3Qg IlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUi OyB0aGVuCgkkRUNITyAiXAoqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWlu czoKYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCgpidXQgaXQgc2hvdWxk IGNvbnRhaW46CiRzcmNmaWxlCgpUaGlzIGluZGljYXRlcyB0aGF0IGFub3Ro ZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCnRlbXBvcmFy eSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJv dW5kIGl0IGJlY2F1c2UKeW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0 IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQpyZXBlYXQgdGhp cyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0 IHlvdSBoYWQgYmV0dGVyCmF2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAt aikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCmNvbXBpbGVy LiIKCgkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CglleGl0ICRF WElUX0ZBSUxVUkUKICAgICAgZmkKCiAgICAgICMgSnVzdCBtb3ZlIHRoZSBv YmplY3QgaWYgbmVlZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5l eHQgb25lCiAgICAgIGlmIHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0 ICJYJG91dHB1dF9vYmoiICE9ICJYJGxvYmoiOyB0aGVuCglmdW5jX3Nob3df ZXZhbCAnJE1WICIkb3V0cHV0X29iaiIgIiRsb2JqIicgXAoJICAnZXJyb3I9 JD87ICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVy cm9yJwogICAgICBmaQoKICAgICAgIyBBbGxvdyBlcnJvciBtZXNzYWdlcyBv bmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9uLgogICAgICBpZiB0ZXN0 ICIkc3VwcHJlc3Nfb3B0IiA9IHllczsgdGhlbgoJc3VwcHJlc3Nfb3V0cHV0 PScgPi9kZXYvbnVsbCAyPiYxJwogICAgICBmaQogICAgZmkKCiAgICAjIE9u bHkgYnVpbGQgYSBwb3NpdGlvbi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1 aWxkIG9sZCBsaWJyYXJpZXMuCiAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xp YnMiID0geWVzOyB0aGVuCiAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0g eWVzOyB0aGVuCgkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCgljb21tYW5kPSIk YmFzZV9jb21waWxlICRxc3JjZmlsZSRwaWVfZmxhZyIKICAgICAgZWxzZQoJ Y29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgog ICAgICBmaQogICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IHllczsg dGhlbgoJY29tbWFuZCs9IiAtbyAkb2JqIgogICAgICBmaQoKICAgICAgIyBT dXBwcmVzcyBjb21waWxlciBvdXRwdXQgaWYgd2UgYWxyZWFkeSBkaWQgYSBQ SUMgY29tcGlsYXRpb24uCiAgICAgIGNvbW1hbmQrPSIkc3VwcHJlc3Nfb3V0 cHV0IgogICAgICBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgIiRjb21tYW5kIiBc CiAgICAgICAgJyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4 aXQgJEVYSVRfRkFJTFVSRScKCiAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tz IiA9IHdhcm4gJiYKCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251 bGxgIiAhPSAiWCRzcmNmaWxlIjsgdGhlbgoJJEVDSE8gIlwKKioqIEVSUk9S LCAkbG9ja2ZpbGUgY29udGFpbnM6CmBjYXQgJGxvY2tmaWxlIDI+L2Rldi9u dWxsYAoKYnV0IGl0IHNob3VsZCBjb250YWluOgokc3JjZmlsZQoKVGhpcyBp bmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVz ZSB0aGUgc2FtZQp0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29s IGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCnlvdXIgY29tcGls ZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIu ICBJZiB5b3UKcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNj ZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgphdm9pZCBwYXJh bGxlbCBidWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdl dCBhIGJldHRlcgpjb21waWxlci4iCgoJJG9wdF9kcnlfcnVuIHx8ICRSTSAk cmVtb3ZlbGlzdAoJZXhpdCAkRVhJVF9GQUlMVVJFCiAgICAgIGZpCgogICAg ICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZAogICAgICBpZiB0 ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAh PSAiWCRvYmoiOyB0aGVuCglmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0cHV0 X29iaiIgIiRvYmoiJyBcCgkgICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8 ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCiAgICAgIGZpCiAgICBm aQoKICAgICRvcHRfZHJ5X3J1biB8fCB7CiAgICAgIGZ1bmNfd3JpdGVfbGli dG9vbF9vYmplY3QgIiRsaWJvYmoiICIkb2JqZGlyLyRvYmpuYW1lIiAiJG9i am5hbWUiCgogICAgICAjIFVubG9jayB0aGUgY3JpdGljYWwgc2VjdGlvbiBp ZiBpdCB3YXMgbG9ja2VkCiAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiAh PSBubzsgdGhlbgoJcmVtb3ZlbGlzdD0kbG9ja2ZpbGUKICAgICAgICAkUk0g IiRsb2NrZmlsZSIKICAgICAgZmkKICAgIH0KCiAgICBleGl0ICRFWElUX1NV Q0NFU1MKfQoKJG9wdF9oZWxwIHx8IHsKICB0ZXN0ICIkb3B0X21vZGUiID0g Y29tcGlsZSAmJiBmdW5jX21vZGVfY29tcGlsZSAkezErIiRAIn0KfQoKZnVu Y19tb2RlX2hlbHAgKCkKewogICAgIyBXZSBuZWVkIHRvIGRpc3BsYXkgaGVs cCBmb3IgZWFjaCBvZiB0aGUgbW9kZXMuCiAgICBjYXNlICRvcHRfbW9kZSBp bgogICAgICAiIikKICAgICAgICAjIEdlbmVyaWMgaGVscCBpcyBleHRyYWN0 ZWQgZnJvbSB0aGUgdXNhZ2UgY29tbWVudHMKICAgICAgICAjIGF0IHRoZSBz dGFydCBvZiB0aGlzIGZpbGUuCiAgICAgICAgZnVuY19oZWxwCiAgICAgICAg OzsKCiAgICAgIGNsZWFuKQogICAgICAgICRFQ0hPIFwKIlVzYWdlOiAkcHJv Z25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1PUFRJT05d Li4uIEZJTEUuLi4KClJlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWlsZCBkaXJl Y3RvcnkuCgpSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2Ug dG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKKHR5 cGljYWxseSBcYC9iaW4vcm0nKS4gIFJNLU9QVElPTlMgYXJlIG9wdGlvbnMg KHN1Y2ggYXMgXGAtZicpIHRvIGJlIHBhc3NlZAp0byBSTS4KCklmIEZJTEUg aXMgYSBsaWJ0b29sIGxpYnJhcnksIG9iamVjdCBvciBwcm9ncmFtLCBhbGwg dGhlIGZpbGVzIGFzc29jaWF0ZWQKd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3Ro ZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0u IgogICAgICAgIDs7CgogICAgICBjb21waWxlKQogICAgICAkRUNITyBcCiJV c2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1jb21waWxlIENP TVBJTEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxFCgpDb21waWxlIGEgc291cmNl IGZpbGUgaW50byBhIGxpYnRvb2wgbGlicmFyeSBvYmplY3QuCgpUaGlzIG1v ZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoK CiAgLW8gT1VUUFVULUZJTEUgICAgc2V0IHRoZSBvdXRwdXQgZmlsZSBuYW1l IHRvIE9VVFBVVC1GSUxFCiAgLW5vLXN1cHByZXNzICAgICAgZG8gbm90IHN1 cHByZXNzIGNvbXBpbGVyIG91dHB1dCBmb3IgbXVsdGlwbGUgcGFzc2VzCiAg LXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1aWxkIFBJQyBvYmplY3RzIG9u bHkKICAtcHJlZmVyLW5vbi1waWMgICB0cnkgdG8gYnVpbGQgbm9uLVBJQyBv YmplY3RzIG9ubHkKICAtc2hhcmVkICAgICAgICAgICBkbyBub3QgYnVpbGQg YSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZwogIC1z dGF0aWMgICAgICAgICAgIG9ubHkgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRh YmxlIGZvciBzdGF0aWMgbGlua2luZwogIC1XYyxGTEFHICAgICAgICAgIHBh c3MgRkxBRyBkaXJlY3RseSB0byB0aGUgY29tcGlsZXIKCkNPTVBJTEUtQ09N TUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVhdGluZyBhIFxg c3RhbmRhcmQnIG9iamVjdCBmaWxlCmZyb20gdGhlIGdpdmVuIFNPVVJDRUZJ TEUuCgpUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJl bW92aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZyb20KU09VUkNFRklM RSwgdGhlbiBzdWJzdGl0dXRpbmcgdGhlIEMgc291cmNlIGNvZGUgc3VmZml4 IFxgLmMnIHdpdGggdGhlCmxpYnJhcnkgb2JqZWN0IHN1ZmZpeCwgXGAubG8n LiIKICAgICAgICA7OwoKICAgICAgZXhlY3V0ZSkKICAgICAgICAkRUNITyBc CiJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1leGVjdXRl IENPTU1BTkQgW0FSR1NdLi4uCgpBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5 IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KClRoaXMgbW9kZSBhY2NlcHRz IHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgoKICAtZGxvcGVu IEZJTEUgICAgICBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIEZJTEUg dG8gdGhlIGxpYnJhcnkgcGF0aAoKVGhpcyBtb2RlIHNldHMgdGhlIGxpYnJh cnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8gXGAt ZGxvcGVuJwpmbGFncy4KCklmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9v bCBleGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0 ZWQKaW50byB0aGVpciBjb3JyZXNwb25kaW5nIHVuaW5zdGFsbGVkIGJpbmFy eSwgYW5kIGFueSBvZiB0aGVpciByZXF1aXJlZCBsaWJyYXJ5CmRpcmVjdG9y aWVzIGFyZSBhZGRlZCB0byB0aGUgbGlicmFyeSBwYXRoLgoKVGhlbiwgQ09N TUFORCBpcyBleGVjdXRlZCwgd2l0aCBBUkdTIGFzIGFyZ3VtZW50cy4iCiAg ICAgICAgOzsKCiAgICAgIGZpbmlzaCkKICAgICAgICAkRUNITyBcCiJVc2Fn ZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1maW5pc2ggW0xJQkRJ Ul0uLi4KCkNvbXBsZXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBs aWJyYXJpZXMuCgpFYWNoIExJQkRJUiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNv bnRhaW5zIGxpYnRvb2wgbGlicmFyaWVzLgoKVGhlIGNvbW1hbmRzIHRoYXQg dGhpcyBtb2RlIGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVydXNlciBwcml2 aWxlZ2VzLiAgVXNlCnRoZSBcYC0tZHJ5LXJ1bicgb3B0aW9uIGlmIHlvdSBq dXN0IHdhbnQgdG8gc2VlIHdoYXQgd291bGQgYmUgZXhlY3V0ZWQuIgogICAg ICAgIDs7CgogICAgICBpbnN0YWxsKQogICAgICAgICRFQ0hPIFwKIlVzYWdl OiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwgSU5TVEFM TC1DT01NQU5ELi4uCgpJbnN0YWxsIGV4ZWN1dGFibGVzIG9yIGxpYnJhcmll cy4KCklOU1RBTEwtQ09NTUFORCBpcyB0aGUgaW5zdGFsbGF0aW9uIGNvbW1h bmQuICBUaGUgZmlyc3QgY29tcG9uZW50IHNob3VsZCBiZQplaXRoZXIgdGhl IFxgaW5zdGFsbCcgb3IgXGBjcCcgcHJvZ3JhbS4KClRoZSBmb2xsb3dpbmcg Y29tcG9uZW50cyBvZiBJTlNUQUxMLUNPTU1BTkQgYXJlIHRyZWF0ZWQgc3Bl Y2lhbGx5OgoKICAtaW5zdC1wcmVmaXgtZGlyIFBSRUZJWC1ESVIgIFVzZSBQ UkVGSVgtRElSIGFzIGEgc3RhZ2luZyBhcmVhIGZvciBpbnN0YWxsYXRpb24K ClRoZSByZXN0IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBh cyBhcmd1bWVudHMgdG8gdGhhdCBjb21tYW5kIChvbmx5CkJTRC1jb21wYXRp YmxlIGluc3RhbGwgb3B0aW9ucyBhcmUgcmVjb2duaXplZCkuIgogICAgICAg IDs7CgogICAgICBsaW5rKQogICAgICAgICRFQ0hPIFwKIlVzYWdlOiAkcHJv Z25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWxpbmsgTElOSy1DT01NQU5ELi4u CgpMaW5rIG9iamVjdCBmaWxlcyBvciBsaWJyYXJpZXMgdG9nZXRoZXIgdG8g Zm9ybSBhbm90aGVyIGxpYnJhcnksIG9yIHRvCmNyZWF0ZSBhbiBleGVjdXRh YmxlIHByb2dyYW0uCgpMSU5LLUNPTU1BTkQgaXMgYSBjb21tYW5kIHVzaW5n IHRoZSBDIGNvbXBpbGVyIHRoYXQgeW91IHdvdWxkIHVzZSB0byBjcmVhdGUK YSBwcm9ncmFtIGZyb20gc2V2ZXJhbCBvYmplY3QgZmlsZXMuCgpUaGUgZm9s bG93aW5nIGNvbXBvbmVudHMgb2YgTElOSy1DT01NQU5EIGFyZSB0cmVhdGVk IHNwZWNpYWxseToKCiAgLWFsbC1zdGF0aWMgICAgICAgZG8gbm90IGRvIGFu eSBkeW5hbWljIGxpbmtpbmcgYXQgYWxsCiAgLWF2b2lkLXZlcnNpb24gICAg ZG8gbm90IGFkZCBhIHZlcnNpb24gc3VmZml4IGlmIHBvc3NpYmxlCiAgLWJp bmRpciBCSU5ESVIgICAgc3BlY2lmeSBwYXRoIHRvIGJpbmFyaWVzIGRpcmVj dG9yeSAoZm9yIHN5c3RlbXMgd2hlcmUKICAgICAgICAgICAgICAgICAgICBs aWJyYXJpZXMgbXVzdCBiZSBmb3VuZCBpbiB0aGUgUEFUSCBzZXR0aW5nIGF0 IHJ1bnRpbWUpCiAgLWRsb3BlbiBGSUxFICAgICAgXGAtZGxwcmVvcGVuJyBG SUxFIGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZCBhdCBydW50aW1lCiAgLWRs cHJlb3BlbiBGSUxFICAgbGluayBpbiBGSUxFIGFuZCBhZGQgaXRzIHN5bWJv bHMgdG8gbHRfcHJlbG9hZGVkX3N5bWJvbHMKICAtZXhwb3J0LWR5bmFtaWMg ICBhbGxvdyBzeW1ib2xzIGZyb20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2 ZWQgd2l0aCBkbHN5bSgzKQogIC1leHBvcnQtc3ltYm9scyBTWU1GSUxFCiAg ICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1i b2xzIGxpc3RlZCBpbiBTWU1GSUxFCiAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4 IFJFR0VYCiAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5 IHRoZSBzeW1ib2xzIG1hdGNoaW5nIFJFR0VYCiAgLUxMSUJESVIgICAgICAg ICAgc2VhcmNoIExJQkRJUiBmb3IgcmVxdWlyZWQgaW5zdGFsbGVkIGxpYnJh cmllcwogIC1sTkFNRSAgICAgICAgICAgIE9VVFBVVC1GSUxFIHJlcXVpcmVz IHRoZSBpbnN0YWxsZWQgbGlicmFyeSBsaWJOQU1FCiAgLW1vZHVsZSAgICAg ICAgICAgYnVpbGQgYSBsaWJyYXJ5IHRoYXQgY2FuIGRsb3BlbmVkCiAgLW5v LWZhc3QtaW5zdGFsbCAgZGlzYWJsZSB0aGUgZmFzdC1pbnN0YWxsIG1vZGUK ICAtbm8taW5zdGFsbCAgICAgICBsaW5rIGEgbm90LWluc3RhbGxhYmxlIGV4 ZWN1dGFibGUKICAtbm8tdW5kZWZpbmVkICAgICBkZWNsYXJlIHRoYXQgYSBs aWJyYXJ5IGRvZXMgbm90IHJlZmVyIHRvIGV4dGVybmFsIHN5bWJvbHMKICAt byBPVVRQVVQtRklMRSAgICBjcmVhdGUgT1VUUFVULUZJTEUgZnJvbSB0aGUg c3BlY2lmaWVkIG9iamVjdHMKICAtb2JqZWN0bGlzdCBGSUxFICBVc2UgYSBs aXN0IG9mIG9iamVjdCBmaWxlcyBmb3VuZCBpbiBGSUxFIHRvIHNwZWNpZnkg b2JqZWN0cwogIC1wcmVjaW91cy1maWxlcy1yZWdleCBSRUdFWAogICAgICAg ICAgICAgICAgICAgIGRvbid0IHJlbW92ZSBvdXRwdXQgZmlsZXMgbWF0Y2hp bmcgUkVHRVgKICAtcmVsZWFzZSBSRUxFQVNFICBzcGVjaWZ5IHBhY2thZ2Ug cmVsZWFzZSBpbmZvcm1hdGlvbgogIC1ycGF0aCBMSUJESVIgICAgIHRoZSBj cmVhdGVkIGxpYnJhcnkgd2lsbCBldmVudHVhbGx5IGJlIGluc3RhbGxlZCBp biBMSUJESVIKICAtUlsgXUxJQkRJUiAgICAgICBhZGQgTElCRElSIHRvIHRo ZSBydW50aW1lIHBhdGggb2YgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcwogIC1z aGFyZWQgICAgICAgICAgIG9ubHkgZG8gZHluYW1pYyBsaW5raW5nIG9mIGxp YnRvb2wgbGlicmFyaWVzCiAgLXNocmV4dCBTVUZGSVggICAgb3ZlcnJpZGUg dGhlIHN0YW5kYXJkIHNoYXJlZCBsaWJyYXJ5IGZpbGUgZXh0ZW5zaW9uCiAg LXN0YXRpYyAgICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtp bmcgb2YgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKICAtc3RhdGlj LWxpYnRvb2wtbGlicwogICAgICAgICAgICAgICAgICAgIGRvIG5vdCBkbyBh bnkgZHluYW1pYyBsaW5raW5nIG9mIGxpYnRvb2wgbGlicmFyaWVzCiAgLXZl cnNpb24taW5mbyBDVVJSRU5UWzpSRVZJU0lPTls6QUdFXV0KICAgICAgICAg ICAgICAgICAgICBzcGVjaWZ5IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNo IHZhcmlhYmxlIGRlZmF1bHRzIHRvIDBdCiAgLXdlYWsgTElCTkFNRSAgICAg ZGVjbGFyZSB0aGF0IHRoZSB0YXJnZXQgcHJvdmlkZXMgdGhlIExJQk5BTUUg aW50ZXJmYWNlCiAgLVdjLEZMQUcKICAtWGNvbXBpbGVyIEZMQUcgICBwYXNz IGxpbmtlci1zcGVjaWZpYyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBjb21waWxl cgogIC1XbCxGTEFHCiAgLVhsaW5rZXIgRkxBRyAgICAgcGFzcyBsaW5rZXIt c3BlY2lmaWMgRkxBRyBkaXJlY3RseSB0byB0aGUgbGlua2VyCiAgLVhDQ2xp bmtlciBGTEFHICAgcGFzcyBsaW5rLXNwZWNpZmljIEZMQUcgdG8gdGhlIGNv bXBpbGVyIGRyaXZlciAoQ0MpCgpBbGwgb3RoZXIgb3B0aW9ucyAoYXJndW1l bnRzIGJlZ2lubmluZyB3aXRoIFxgLScpIGFyZSBpZ25vcmVkLgoKRXZlcnkg b3RoZXIgYXJndW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGVuYW1lLiAgRmls ZXMgZW5kaW5nIGluIFxgLmxhJyBhcmUKdHJlYXRlZCBhcyB1bmluc3RhbGxl ZCBsaWJ0b29sIGxpYnJhcmllcywgb3RoZXIgZmlsZXMgYXJlIHN0YW5kYXJk IG9yIGxpYnJhcnkKb2JqZWN0IGZpbGVzLgoKSWYgdGhlIE9VVFBVVC1GSUxF IGVuZHMgaW4gXGAubGEnLCB0aGVuIGEgbGlidG9vbCBsaWJyYXJ5IGlzIGNy ZWF0ZWQsCm9ubHkgbGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMpIG1h eSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKcmVxdWlyZWQsIGV4 Y2VwdCB3aGVuIGNyZWF0aW5nIGEgY29udmVuaWVuY2UgbGlicmFyeS4KCklm IE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBh IHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRlZAp1c2luZyBcYGFyJyBhbmQg XGByYW5saWInLCBvciBvbiBXaW5kb3dzIHVzaW5nIFxgbGliJy4KCklmIE9V VFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRo ZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCmlzIGNyZWF0ZWQsIG90aGVy d2lzZSBhbiBleGVjdXRhYmxlIHByb2dyYW0gaXMgY3JlYXRlZC4iCiAgICAg ICAgOzsKCiAgICAgIHVuaW5zdGFsbCkKICAgICAgICAkRUNITyBcCiJVc2Fn ZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwgUk0g W1JNLU9QVElPTl0uLi4gRklMRS4uLgoKUmVtb3ZlIGxpYnJhcmllcyBmcm9t IGFuIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkuCgpSTSBpcyB0aGUgbmFtZSBv ZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0 ZWQgd2l0aCBlYWNoIEZJTEUKKHR5cGljYWxseSBcYC9iaW4vcm0nKS4gIFJN LU9QVElPTlMgYXJlIG9wdGlvbnMgKHN1Y2ggYXMgXGAtZicpIHRvIGJlIHBh c3NlZAp0byBSTS4KCklmIEZJTEUgaXMgYSBsaWJ0b29sIGxpYnJhcnksIGFs bCB0aGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGl0IGFyZSBkZWxldGVkLgpP dGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBS TS4iCiAgICAgICAgOzsKCiAgICAgICopCiAgICAgICAgZnVuY19mYXRhbF9o ZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG9wdF9tb2RlJyIKICAg ICAgICA7OwogICAgZXNhYwoKICAgIGVjaG8KICAgICRFQ0hPICJUcnkgXGAk cHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBv dGhlciBtb2Rlcy4iCn0KCiMgTm93IHRoYXQgd2UndmUgY29sbGVjdGVkIGEg cG9zc2libGUgLS1tb2RlIGFyZywgc2hvdyBoZWxwIGlmIG5lY2Vzc2FyeQpp ZiAkb3B0X2hlbHA7IHRoZW4KICBpZiB0ZXN0ICIkb3B0X2hlbHAiID0gOjsg dGhlbgogICAgZnVuY19tb2RlX2hlbHAKICBlbHNlCiAgICB7CiAgICAgIGZ1 bmNfaGVscCBub2V4aXQKICAgICAgZm9yIG9wdF9tb2RlIGluIGNvbXBpbGUg bGluayBleGVjdXRlIGluc3RhbGwgZmluaXNoIHVuaW5zdGFsbCBjbGVhbjsg ZG8KCWZ1bmNfbW9kZV9oZWxwCiAgICAgIGRvbmUKICAgIH0gfCBzZWQgLW4g JzFwOyAyLCRzL15Vc2FnZTovICBvcjogL3AnCiAgICB7CiAgICAgIGZ1bmNf aGVscCBub2V4aXQKICAgICAgZm9yIG9wdF9tb2RlIGluIGNvbXBpbGUgbGlu ayBleGVjdXRlIGluc3RhbGwgZmluaXNoIHVuaW5zdGFsbCBjbGVhbjsgZG8K CWVjaG8KCWZ1bmNfbW9kZV9oZWxwCiAgICAgIGRvbmUKICAgIH0gfAogICAg c2VkICcxZAogICAgICAvXldoZW4gcmVwb3J0aW5nLywvXlJlcG9ydC97CglI CglkCiAgICAgIH0KICAgICAgJHgKICAgICAgL2luZm9ybWF0aW9uIGFib3V0 IG90aGVyIG1vZGVzL2QKICAgICAgL21vcmUgZGV0YWlsZWQgLipNT0RFL2QK ICAgICAgcy9eVXNhZ2U6LiotLW1vZGU9XChbXiBdKlwpIC4qL0Rlc2NyaXB0 aW9uIG9mIFwxIG1vZGU6LycKICBmaQogIGV4aXQgJD8KZmkKCgojIGZ1bmNf bW9kZV9leGVjdXRlIGFyZy4uLgpmdW5jX21vZGVfZXhlY3V0ZSAoKQp7CiAg ICAkb3B0X2RlYnVnCiAgICAjIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUg Y29tbWFuZCBuYW1lLgogICAgY21kPSIkbm9ub3B0IgogICAgdGVzdCAteiAi JGNtZCIgJiYgXAogICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNw ZWNpZnkgYSBDT01NQU5EIgoKICAgICMgSGFuZGxlIC1kbG9wZW4gZmxhZ3Mg aW1tZWRpYXRlbHkuCiAgICBmb3IgZmlsZSBpbiAkb3B0X2Rsb3BlbjsgZG8K ICAgICAgdGVzdCAtZiAiJGZpbGUiIFwKCXx8IGZ1bmNfZmF0YWxfaGVscCAi XGAkZmlsZScgaXMgbm90IGEgZmlsZSIKCiAgICAgIGRpcj0KICAgICAgY2Fz ZSAkZmlsZSBpbgogICAgICAqLmxhKQoJZnVuY19yZXNvbHZlX3N5c3Jvb3Qg IiRmaWxlIgoJZmlsZT0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CgoJ IyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wg YXJjaGl2ZS4KCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCgkgIHx8 IGZ1bmNfZmF0YWxfaGVscCAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0 b29sIGFyY2hpdmUiCgoJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCglk bG5hbWU9CglsaWJyYXJ5X25hbWVzPQoJZnVuY19zb3VyY2UgIiRmaWxlIgoK CSMgU2tpcCB0aGlzIGxpYnJhcnkgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVk LgoJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KCSAgIyBXYXJuIGlmIGl0 IHdhcyBhIHNoYXJlZCBsaWJyYXJ5LgoJICB0ZXN0IC1uICIkbGlicmFyeV9u YW1lcyIgJiYgXAoJICAgIGZ1bmNfd2FybmluZyAiXGAkZmlsZScgd2FzIG5v dCBsaW5rZWQgd2l0aCBcYC1leHBvcnQtZHluYW1pYyciCgkgIGNvbnRpbnVl CglmaQoKCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgoJZGlyPSIkZnVu Y19kaXJuYW1lX3Jlc3VsdCIKCglpZiB0ZXN0IC1mICIkZGlyLyRvYmpkaXIv JGRsbmFtZSI7IHRoZW4KCSAgZGlyKz0iLyRvYmpkaXIiCgllbHNlCgkgIGlm IHRlc3QgISAtZiAiJGRpci8kZGxuYW1lIjsgdGhlbgoJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgImNhbm5vdCBmaW5kIFxgJGRsbmFtZScgaW4gXGAkZGlyJyBv ciBcYCRkaXIvJG9iamRpciciCgkgIGZpCglmaQoJOzsKCiAgICAgICoubG8p CgkjIEp1c3QgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgLmxv IGZpbGUuCglmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKCWRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCgk7OwoKICAgICAgKikKCWZ1bmNfd2Fybmlu ZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBub24tbGlidG9vbCBsaWJy YXJpZXMgYW5kIG9iamVjdHMiCgljb250aW51ZQoJOzsKICAgICAgZXNhYwoK ICAgICAgIyBHZXQgdGhlIGFic29sdXRlIHBhdGhuYW1lLgogICAgICBhYnNk aXI9YGNkICIkZGlyIiAmJiBwd2RgCiAgICAgIHRlc3QgLW4gIiRhYnNkaXIi ICYmIGRpcj0iJGFic2RpciIKCiAgICAgICMgTm93IGFkZCB0aGUgZGlyZWN0 b3J5IHRvIHNobGlicGF0aF92YXIuCiAgICAgIGlmIGV2YWwgInRlc3QgLXog XCJcJCRzaGxpYnBhdGhfdmFyXCIiOyB0aGVuCglldmFsICIkc2hsaWJwYXRo X3Zhcj1cIlwkZGlyXCIiCiAgICAgIGVsc2UKCWV2YWwgIiRzaGxpYnBhdGhf dmFyPVwiXCRkaXI6XCQkc2hsaWJwYXRoX3ZhclwiIgogICAgICBmaQogICAg ZG9uZQoKICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlw dHMganVzdCB0byBzZXQgc2hsaWJwYXRoX3ZhcgogICAgIyByYXRoZXIgdGhh biBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgogICAgbGlidG9vbF9leGVjdXRl X21hZ2ljPSIkbWFnaWMiCgogICAgIyBDaGVjayBpZiBhbnkgb2YgdGhlIGFy Z3VtZW50cyBpcyBhIHdyYXBwZXIgc2NyaXB0LgogICAgYXJncz0KICAgIGZv ciBmaWxlCiAgICBkbwogICAgICBjYXNlICRmaWxlIGluCiAgICAgIC0qIHwg Ki5sYSB8ICoubG8gKSA7OwogICAgICAqKQoJIyBEbyBhIHRlc3QgdG8gc2Vl IGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgoJaWYgZnVu Y19sdHdyYXBwZXJfc2NyaXB0X3AgIiRmaWxlIjsgdGhlbgoJICBmdW5jX3Nv dXJjZSAiJGZpbGUiCgkgICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5h bWUuCgkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgoJZWxpZiBmdW5jX2x0 d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgoJICBmdW5jX2x0 d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKCSAgZnVuY19zb3VyY2UgIiRm dW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKCSAgIyBUcmFuc2Zv cm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KCSAgZmlsZT0iJHByb2dkaXIvJHBy b2dyYW0iCglmaQoJOzsKICAgICAgZXNhYwogICAgICAjIFF1b3RlIGFyZ3Vt ZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgogICAg ICBmdW5jX2FwcGVuZF9xdW90ZWQgYXJncyAiJGZpbGUiCiAgICBkb25lCgog ICAgaWYgdGVzdCAiWCRvcHRfZHJ5X3J1biIgPSBYZmFsc2U7IHRoZW4KICAg ICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCgkjIEV4cG9y dCB0aGUgc2hsaWJwYXRoX3Zhci4KCWV2YWwgImV4cG9ydCAkc2hsaWJwYXRo X3ZhciIKICAgICAgZmkKCiAgICAgICMgUmVzdG9yZSBzYXZlZCBlbnZpcm9u bWVudCB2YXJpYWJsZXMKICAgICAgZm9yIGx0X3ZhciBpbiBMQU5HIExBTkdV QUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCiAg ICAgIGRvCglldmFsICJpZiB0ZXN0IFwiXCR7c2F2ZV8kbHRfdmFyK3NldH1c IiA9IHNldDsgdGhlbgogICAgICAgICAgICAgICAgJGx0X3Zhcj1cJHNhdmVf JGx0X3ZhcjsgZXhwb3J0ICRsdF92YXIKCSAgICAgIGVsc2UKCQkkbHRfdW5z ZXQgJGx0X3ZhcgoJICAgICAgZmkiCiAgICAgIGRvbmUKCiAgICAgICMgTm93 IHByZXBhcmUgdG8gYWN0dWFsbHkgZXhlYyB0aGUgY29tbWFuZC4KICAgICAg ZXhlY19jbWQ9IlwkY21kJGFyZ3MiCiAgICBlbHNlCiAgICAgICMgRGlzcGxh eSB3aGF0IHdvdWxkIGJlIGRvbmUuCiAgICAgIGlmIHRlc3QgLW4gIiRzaGxp YnBhdGhfdmFyIjsgdGhlbgoJZXZhbCAiXCRFQ0hPIFwiXCRzaGxpYnBhdGhf dmFyPVwkJHNobGlicGF0aF92YXJcIiIKCWVjaG8gImV4cG9ydCAkc2hsaWJw YXRoX3ZhciIKICAgICAgZmkKICAgICAgJEVDSE8gIiRjbWQkYXJncyIKICAg ICAgZXhpdCAkRVhJVF9TVUNDRVNTCiAgICBmaQp9Cgp0ZXN0ICIkb3B0X21v ZGUiID0gZXhlY3V0ZSAmJiBmdW5jX21vZGVfZXhlY3V0ZSAkezErIiRAIn0K CgojIGZ1bmNfbW9kZV9maW5pc2ggYXJnLi4uCmZ1bmNfbW9kZV9maW5pc2gg KCkKewogICAgJG9wdF9kZWJ1ZwogICAgbGlicz0KICAgIGxpYmRpcnM9CiAg ICBhZG1pbmNtZHM9CgogICAgZm9yIG9wdCBpbiAiJG5vbm9wdCIgJHsxKyIk QCJ9CiAgICBkbwogICAgICBpZiB0ZXN0IC1kICIkb3B0IjsgdGhlbgoJbGli ZGlycys9IiAkb3B0IgoKICAgICAgZWxpZiB0ZXN0IC1mICIkb3B0IjsgdGhl bgoJaWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJG9wdCI7IHRoZW4KCSAgbGli cys9IiAkb3B0IgoJZWxzZQoJICBmdW5jX3dhcm5pbmcgIlxgJG9wdCcgaXMg bm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgoJZmkKCiAgICAgIGVsc2UK CWZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgYXJndW1lbnQgXGAkb3B0JyIK ICAgICAgZmkKICAgIGRvbmUKCiAgICBpZiB0ZXN0IC1uICIkbGlicyI7IHRo ZW4KICAgICAgaWYgdGVzdCAtbiAiJGx0X3N5c3Jvb3QiOyB0aGVuCiAgICAg ICAgc3lzcm9vdF9yZWdleD1gJEVDSE8gIiRsdF9zeXNyb290IiB8ICRTRUQg IiRzZWRfbWFrZV9saXRlcmFsX3JlZ2V4ImAKICAgICAgICBzeXNyb290X2Nt ZD0icy9cKFsgJ11cKSRzeXNyb290X3JlZ2V4L1wxL2c7IgogICAgICBlbHNl CiAgICAgICAgc3lzcm9vdF9jbWQ9CiAgICAgIGZpCgogICAgICAjIFJlbW92 ZSBzeXNyb290IHJlZmVyZW5jZXMKICAgICAgaWYgJG9wdF9kcnlfcnVuOyB0 aGVuCiAgICAgICAgZm9yIGxpYiBpbiAkbGliczsgZG8KICAgICAgICAgIGVj aG8gInJlbW92aW5nIHJlZmVyZW5jZXMgdG8gJGx0X3N5c3Jvb3QgYW5kIFxg PScgcHJlZml4ZXMgZnJvbSAkbGliIgogICAgICAgIGRvbmUKICAgICAgZWxz ZQogICAgICAgIHRtcGRpcj1gZnVuY19ta3RlbXBkaXJgCiAgICAgICAgZm9y IGxpYiBpbiAkbGliczsgZG8KCSAgc2VkIC1lICIke3N5c3Jvb3RfY21kfSBz L1woWyAnXS1bTFJdXCk9L1wxL2c7IHMvXChbICddXCk9L1wxL2ciICRsaWIg XAoJICAgID4gJHRtcGRpci90bXAtbGEKCSAgbXYgLWYgJHRtcGRpci90bXAt bGEgJGxpYgoJZG9uZQogICAgICAgICR7Uk19ciAiJHRtcGRpciIKICAgICAg ZmkKICAgIGZpCgogICAgaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzJGZpbmlz aF9ldmFsIiAmJiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KICAgICAgZm9y IGxpYmRpciBpbiAkbGliZGlyczsgZG8KCWlmIHRlc3QgLW4gIiRmaW5pc2hf Y21kcyI7IHRoZW4KCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGZpbmlz aCBjb21tYW5kcy4KCSAgZnVuY19leGVjdXRlX2NtZHMgIiRmaW5pc2hfY21k cyIgJ2FkbWluY21kcz0iJGFkbWluY21kcwonIiRjbWQiJyInCglmaQoJaWYg dGVzdCAtbiAiJGZpbmlzaF9ldmFsIjsgdGhlbgoJICAjIERvIHRoZSBzaW5n bGUgZmluaXNoX2V2YWwuCgkgIGV2YWwgY21kcz1cIiRmaW5pc2hfZXZhbFwi CgkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kcyIgfHwgYWRtaW5jbWRz Kz0iCiAgICAgICAkY21kcyIKCWZpCiAgICAgIGRvbmUKICAgIGZpCgogICAg IyBFeGl0IGhlcmUgaWYgdGhleSB3YW50ZWQgc2lsZW50IG1vZGUuCiAgICAk b3B0X3NpbGVudCAmJiBleGl0ICRFWElUX1NVQ0NFU1MKCiAgICBpZiB0ZXN0 IC1uICIkZmluaXNoX2NtZHMkZmluaXNoX2V2YWwiICYmIHRlc3QgLW4gIiRs aWJkaXJzIjsgdGhlbgogICAgICBlY2hvICItLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIgogICAgICBlY2hvICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3Rh bGxlZCBpbjoiCiAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCgkk RUNITyAiICAgJGxpYmRpciIKICAgICAgZG9uZQogICAgICBlY2hvCiAgICAg IGVjaG8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdh aW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgogICAgICBlY2hvICJpbiBhIGdp dmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIgdXNlIGxp YnRvb2wsIGFuZCIKICAgICAgZWNobyAic3BlY2lmeSB0aGUgZnVsbCBwYXRo bmFtZSBvZiB0aGUgbGlicmFyeSwgb3IgdXNlIHRoZSBcYC1MTElCRElSJyIK ICAgICAgZWNobyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVh c3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgogICAgICBpZiB0ZXN0IC1uICIk c2hsaWJwYXRoX3ZhciI7IHRoZW4KCWVjaG8gIiAgIC0gYWRkIExJQkRJUiB0 byB0aGUgXGAkc2hsaWJwYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUi CgllY2hvICIgICAgIGR1cmluZyBleGVjdXRpb24iCiAgICAgIGZpCiAgICAg IGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KCWVjaG8gIiAgIC0g YWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmlyb25tZW50 IHZhcmlhYmxlIgoJZWNobyAiICAgICBkdXJpbmcgbGlua2luZyIKICAgICAg ZmkKICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMiOyB0aGVuCglsaWJkaXI9TElCRElSCglldmFsIGZsYWc9XCIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY1wiCgoJJEVDSE8gIiAgIC0gdXNlIHRoZSBc YCRmbGFnJyBsaW5rZXIgZmxhZyIKICAgICAgZmkKICAgICAgaWYgdGVzdCAt biAiJGFkbWluY21kcyI7IHRoZW4KCSRFQ0hPICIgICAtIGhhdmUgeW91ciBz eXN0ZW0gYWRtaW5pc3RyYXRvciBydW4gdGhlc2UgY29tbWFuZHM6JGFkbWlu Y21kcyIKICAgICAgZmkKICAgICAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNv bmY7IHRoZW4KCWVjaG8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlz dHJhdG9yIGFkZCBMSUJESVIgdG8gXGAvZXRjL2xkLnNvLmNvbmYnIgogICAg ICBmaQogICAgICBlY2hvCgogICAgICBlY2hvICJTZWUgYW55IG9wZXJhdGlu ZyBzeXN0ZW0gZG9jdW1lbnRhdGlvbiBhYm91dCBzaGFyZWQgbGlicmFyaWVz IGZvciIKICAgICAgY2FzZSAkaG9zdCBpbgoJc29sYXJpczIuWzY3ODldfHNv bGFyaXMyLjFbMC05XSkKCSAgZWNobyAibW9yZSBpbmZvcm1hdGlvbiwgc3Vj aCBhcyB0aGUgbGQoMSksIGNybGUoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCIK CSAgZWNobyAicGFnZXMuIgoJICA7OwoJKikKCSAgZWNobyAibW9yZSBpbmZv cm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVh bCBwYWdlcy4iCgkgIDs7CiAgICAgIGVzYWMKICAgICAgZWNobyAiLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSIKICAgIGZpCiAgICBleGl0ICRFWElUX1NV Q0NFU1MKfQoKdGVzdCAiJG9wdF9tb2RlIiA9IGZpbmlzaCAmJiBmdW5jX21v ZGVfZmluaXNoICR7MSsiJEAifQoKCiMgZnVuY19tb2RlX2luc3RhbGwgYXJn Li4uCmZ1bmNfbW9kZV9pbnN0YWxsICgpCnsKICAgICRvcHRfZGVidWcKICAg ICMgVGhlcmUgbWF5IGJlIGFuIG9wdGlvbmFsIHNoKDEpIGFyZ3VtZW50IGF0 IHRoZSBiZWdpbm5pbmcgb2YKICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lh bGx5IG9uIFdpbmRvd3MgTlQpLgogICAgaWYgdGVzdCAiJG5vbm9wdCIgPSAi JFNIRUxMIiB8fCB0ZXN0ICIkbm9ub3B0IiA9IC9iaW4vc2ggfHwKICAgICAg ICMgQWxsb3cgdGhlIHVzZSBvZiBHTlUgc2h0b29sJ3MgaW5zdGFsbCBjb21t YW5kLgogICAgICAgY2FzZSAkbm9ub3B0IGluICpzaHRvb2wqKSA6OzsgKikg ZmFsc2U7OyBlc2FjOyB0aGVuCiAgICAgICMgQWVzdGhldGljYWxseSBxdW90 ZSBpdC4KICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJG5vbm9wdCIKICAg ICAgaW5zdGFsbF9wcm9nPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQg IgogICAgICBhcmc9JDEKICAgICAgc2hpZnQKICAgIGVsc2UKICAgICAgaW5z dGFsbF9wcm9nPQogICAgICBhcmc9JG5vbm9wdAogICAgZmkKCiAgICAjIFRo ZSByZWFsIGZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0 aGUgaW5zdGFsbGF0aW9uIHByb2dyYW0uCiAgICAjIEFlc3RoZXRpY2FsbHkg cXVvdGUgaXQuCiAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgogICAg aW5zdGFsbF9wcm9nKz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Igog ICAgaW5zdGFsbF9zaGFyZWRfcHJvZz0kaW5zdGFsbF9wcm9nCiAgICBjYXNl ICIgJGluc3RhbGxfcHJvZyAiIGluCiAgICAgICpbXFxcIC9dY3BcICopIGlu c3RhbGxfY3A9OiA7OwogICAgICAqKSBpbnN0YWxsX2NwPWZhbHNlIDs7CiAg ICBlc2FjCgogICAgIyBXZSBuZWVkIHRvIGFjY2VwdCBhdCBsZWFzdCBhbGwg dGhlIEJTRCBpbnN0YWxsIGZsYWdzLgogICAgZGVzdD0KICAgIGZpbGVzPQog ICAgb3B0cz0KICAgIHByZXY9CiAgICBpbnN0YWxsX3R5cGU9CiAgICBpc2Rp cj1ubwogICAgc3RyaXBtZT0KICAgIG5vX21vZGU9OgogICAgZm9yIGFyZwog ICAgZG8KICAgICAgYXJnMj0KICAgICAgaWYgdGVzdCAtbiAiJGRlc3QiOyB0 aGVuCglmaWxlcys9IiAkZGVzdCIKCWRlc3Q9JGFyZwoJY29udGludWUKICAg ICAgZmkKCiAgICAgIGNhc2UgJGFyZyBpbgogICAgICAtZCkgaXNkaXI9eWVz IDs7CiAgICAgIC1mKQoJaWYgJGluc3RhbGxfY3A7IHRoZW4gOjsgZWxzZQoJ ICBwcmV2PSRhcmcKCWZpCgk7OwogICAgICAtZyB8IC1tIHwgLW8pCglwcmV2 PSRhcmcKCTs7CiAgICAgIC1zKQoJc3RyaXBtZT0iIC1zIgoJY29udGludWUK CTs7CiAgICAgIC0qKQoJOzsKICAgICAgKikKCSMgSWYgdGhlIHByZXZpb3Vz IG9wdGlvbiBuZWVkZWQgYW4gYXJndW1lbnQsIHRoZW4gc2tpcCBpdC4KCWlm IHRlc3QgLW4gIiRwcmV2IjsgdGhlbgoJICBpZiB0ZXN0ICJ4JHByZXYiID0g eC1tICYmIHRlc3QgLW4gIiRpbnN0YWxsX292ZXJyaWRlX21vZGUiOyB0aGVu CgkgICAgYXJnMj0kaW5zdGFsbF9vdmVycmlkZV9tb2RlCgkgICAgbm9fbW9k ZT1mYWxzZQoJICBmaQoJICBwcmV2PQoJZWxzZQoJICBkZXN0PSRhcmcKCSAg Y29udGludWUKCWZpCgk7OwogICAgICBlc2FjCgogICAgICAjIEFlc3RoZXRp Y2FsbHkgcXVvdGUgdGhlIGFyZ3VtZW50LgogICAgICBmdW5jX3F1b3RlX2Zv cl9ldmFsICIkYXJnIgogICAgICBpbnN0YWxsX3Byb2crPSIgJGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0IgogICAgICBpZiB0ZXN0IC1uICIkYXJnMiI7 IHRoZW4KCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmcyIgogICAgICBmaQog ICAgICBpbnN0YWxsX3NoYXJlZF9wcm9nKz0iICRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCIKICAgIGRvbmUKCiAgICB0ZXN0IC16ICIkaW5zdGFsbF9w cm9nIiAmJiBcCiAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3Bl Y2lmeSBhbiBpbnN0YWxsIHByb2dyYW0iCgogICAgdGVzdCAtbiAiJHByZXYi ICYmIFwKICAgICAgZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAkcHJldicgb3B0 aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgoKICAgIGlmIHRlc3QgLW4gIiRp bnN0YWxsX292ZXJyaWRlX21vZGUiICYmICRub19tb2RlOyB0aGVuCiAgICAg IGlmICRpbnN0YWxsX2NwOyB0aGVuIDo7IGVsc2UKCWZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRpbnN0YWxsX292ZXJyaWRlX21vZGUiCglpbnN0YWxsX3NoYXJl ZF9wcm9nKz0iIC1tICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKICAg ICAgZmkKICAgIGZpCgogICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgog ICAgICBpZiB0ZXN0IC16ICIkZGVzdCI7IHRoZW4KCWZ1bmNfZmF0YWxfaGVs cCAibm8gZmlsZSBvciBkZXN0aW5hdGlvbiBzcGVjaWZpZWQiCiAgICAgIGVs c2UKCWZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGRlc3Rp bmF0aW9uIgogICAgICBmaQogICAgZmkKCiAgICAjIFN0cmlwIGFueSB0cmFp bGluZyBzbGFzaCBmcm9tIHRoZSBkZXN0aW5hdGlvbi4KICAgIGZ1bmNfc3Ry aXBuYW1lICcnICcvJyAiJGRlc3QiCiAgICBkZXN0PSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQKCiAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBkZXN0aW5h dGlvbiBpcyBhIGRpcmVjdG9yeS4KICAgIHRlc3QgLWQgIiRkZXN0IiAmJiBp c2Rpcj15ZXMKICAgIGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7IHRoZW4KICAg ICAgZGVzdGRpcj0iJGRlc3QiCiAgICAgIGRlc3RuYW1lPQogICAgZWxzZQog ICAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkZGVzdCIgIiIgIi4i CiAgICAgIGRlc3RkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgogICAgICBk ZXN0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgoKICAgICAgIyBOb3Qg YSBkaXJlY3RvcnksIHNvIGNoZWNrIHRvIHNlZSB0aGF0IHRoZXJlIGlzIG9u bHkgb25lIGZpbGUgc3BlY2lmaWVkLgogICAgICBzZXQgZHVtbXkgJGZpbGVz OyBzaGlmdAogICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAoJZnVuY19mYXRh bF9oZWxwICJcYCRkZXN0JyBpcyBub3QgYSBkaXJlY3RvcnkiCiAgICBmaQog ICAgY2FzZSAkZGVzdGRpciBpbgogICAgW1xcL10qIHwgW0EtWmEtel06W1xc L10qKSA7OwogICAgKikKICAgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbwoJ Y2FzZSAkZmlsZSBpbgoJKi5sbykgOzsKCSopCgkgIGZ1bmNfZmF0YWxfaGVs cCAiXGAkZGVzdGRpcicgbXVzdCBiZSBhbiBhYnNvbHV0ZSBkaXJlY3Rvcnkg bmFtZSIKCSAgOzsKCWVzYWMKICAgICAgZG9uZQogICAgICA7OwogICAgZXNh YwoKICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMg anVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgogICAgIyB0aGFuIHJ1bm5p bmcgdGhlaXIgcHJvZ3JhbXMuCiAgICBsaWJ0b29sX2luc3RhbGxfbWFnaWM9 IiRtYWdpYyIKCiAgICBzdGF0aWNsaWJzPQogICAgZnV0dXJlX2xpYmRpcnM9 CiAgICBjdXJyZW50X2xpYmRpcnM9CiAgICBmb3IgZmlsZSBpbiAkZmlsZXM7 IGRvCgogICAgICAjIERvIGVhY2ggaW5zdGFsbGF0aW9uLgogICAgICBjYXNl ICRmaWxlIGluCiAgICAgICouJGxpYmV4dCkKCSMgRG8gdGhlIHN0YXRpYyBs aWJyYXJpZXMgbGF0ZXIuCglzdGF0aWNsaWJzKz0iICRmaWxlIgoJOzsKCiAg ICAgICoubGEpCglmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZpbGUiCglmaWxl PSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKCgkjIENoZWNrIHRvIHNl ZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgoJZnVu Y19sYWxpYl91bnNhZmVfcCAiJGZpbGUiIFwKCSAgfHwgZnVuY19mYXRhbF9o ZWxwICJcYCRmaWxlJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUi CgoJbGlicmFyeV9uYW1lcz0KCW9sZF9saWJyYXJ5PQoJcmVsaW5rX2NvbW1h bmQ9CglmdW5jX3NvdXJjZSAiJGZpbGUiCgoJIyBBZGQgdGhlIGxpYmRpciB0 byBjdXJyZW50X2xpYmRpcnMgaWYgaXQgaXMgdGhlIGRlc3RpbmF0aW9uLgoJ aWYgdGVzdCAiWCRkZXN0ZGlyIiA9ICJYJGxpYmRpciI7IHRoZW4KCSAgY2Fz ZSAiJGN1cnJlbnRfbGliZGlycyAiIGluCgkgICoiICRsaWJkaXIgIiopIDs7 CgkgICopIGN1cnJlbnRfbGliZGlycys9IiAkbGliZGlyIiA7OwoJICBlc2Fj CgllbHNlCgkgICMgTm90ZSB0aGUgbGliZGlyIGFzIGEgZnV0dXJlIGxpYmRp ci4KCSAgY2FzZSAiJGZ1dHVyZV9saWJkaXJzICIgaW4KCSAgKiIgJGxpYmRp ciAiKikgOzsKCSAgKikgZnV0dXJlX2xpYmRpcnMrPSIgJGxpYmRpciIgOzsK CSAgZXNhYwoJZmkKCglmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiLyIgIiIKCWRp cj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCglkaXIrPSIkb2JqZGlyIgoKCWlm IHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KCSAgIyBEZXRlcm1p bmUgdGhlIHByZWZpeCB0aGUgdXNlciBoYXMgYXBwbGllZCB0byBvdXIgZnV0 dXJlIGRpci4KCSAgaW5zdF9wcmVmaXhfZGlyPWAkRUNITyAiJGRlc3RkaXIi IHwgJFNFRCAtZSAicyUkbGliZGlyXCQlJSJgCgoJICAjIERvbid0IGFsbG93 IHRoZSB1c2VyIHRvIHBsYWNlIHVzIG91dHNpZGUgb2Ygb3VyIGV4cGVjdGVk CgkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBl bmRlbnQgbGlicmFyaWVzIHRoYXQKCSAgIyBhcmUgaW5zdGFsbGVkIHRvIHRo ZSBzYW1lIHByZWZpeC4KCSAgIyBBdCBwcmVzZW50LCB0aGlzIGNoZWNrIGRv ZXNuJ3QgYWZmZWN0IHdpbmRvd3MgLmRsbCdzIHRoYXQKCSAgIyBhcmUgaW5z dGFsbGVkIGludG8gJGxpYmRpci8uLi9iaW4gKGN1cnJlbnRseSwgdGhhdCB3 b3JrcyBmaW5lKQoJICAjIGJ1dCBpdCdzIHNvbWV0aGluZyB0byBrZWVwIGFu IGV5ZSBvbi4KCSAgdGVzdCAiJGluc3RfcHJlZml4X2RpciIgPSAiJGRlc3Rk aXIiICYmIFwKCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogY2Fubm90 IGluc3RhbGwgXGAkZmlsZScgdG8gYSBkaXJlY3Rvcnkgbm90IGVuZGluZyBp biAkbGliZGlyIgoKCSAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7 IHRoZW4KCSAgICAjIFN0aWNrIHRoZSBpbnN0X3ByZWZpeF9kaXIgZGF0YSBp bnRvIHRoZSBsaW5rIGNvbW1hbmQuCgkgICAgcmVsaW5rX2NvbW1hbmQ9YCRF Q0hPICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAicyVAaW5zdF9wcmVmaXhf ZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZpeF9kaXIlImAKCSAg ZWxzZQoJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiJHJlbGlua19jb21t YW5kIiB8ICRTRUQgInMlQGluc3RfcHJlZml4X2RpckAlJSJgCgkgIGZpCgoJ ICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRmaWxlJyIKCSAgZnVuY19z aG93X2V2YWwgIiRyZWxpbmtfY29tbWFuZCIgXAoJICAgICdmdW5jX2ZhdGFs X2Vycm9yICJlcnJvcjogcmVsaW5rIFxgJGZpbGUnXCcnIHdpdGggdGhlIGFi b3ZlIGNvbW1hbmQgYmVmb3JlIGluc3RhbGxpbmcgaXQiJwoJZmkKCgkjIFNl ZSB0aGUgbmFtZXMgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LgoJc2V0IGR1bW15 ICRsaWJyYXJ5X25hbWVzOyBzaGlmdAoJaWYgdGVzdCAtbiAiJDEiOyB0aGVu CgkgIHJlYWxuYW1lPSIkMSIKCSAgc2hpZnQKCgkgIHNyY25hbWU9IiRyZWFs bmFtZSIKCSAgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIiAmJiBzcmNuYW1l PSIkcmVhbG5hbWUiVAoKCSAgIyBJbnN0YWxsIHRoZSBzaGFyZWQgbGlicmFy eSBhbmQgYnVpbGQgdGhlIHN5bWxpbmtzLgoJICBmdW5jX3Nob3dfZXZhbCAi JGluc3RhbGxfc2hhcmVkX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8k cmVhbG5hbWUiIFwKCSAgICAgICdleGl0ICQ/JwoJICB0c3RyaXBtZT0iJHN0 cmlwbWUiCgkgIGNhc2UgJGhvc3Rfb3MgaW4KCSAgY3lnd2luKiB8IG1pbmd3 KiB8IHB3MzIqIHwgY2VnY2MqKQoJICAgIGNhc2UgJHJlYWxuYW1lIGluCgkg ICAgKi5kbGwuYSkKCSAgICAgIHRzdHJpcG1lPSIiCgkgICAgICA7OwoJICAg IGVzYWMKCSAgICA7OwoJICBlc2FjCgkgIGlmIHRlc3QgLW4gIiR0c3RyaXBt ZSIgJiYgdGVzdCAtbiAiJHN0cmlwbGliIjsgdGhlbgoJICAgIGZ1bmNfc2hv d19ldmFsICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1lIiAnZXhpdCAk PycKCSAgZmkKCgkgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgoJICAgICMg RGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUgbmV3IG9uZXMu CgkgICAgIyBUcnkgYGxuIC1zZicgZmlyc3QsIGJlY2F1c2UgdGhlIGBsbicg YmluYXJ5IG1pZ2h0IGRlcGVuZCBvbgoJICAgICMgdGhlIHN5bWxpbmsgd2Ug cmVwbGFjZSEgIFNvbGFyaXMgL2Jpbi9sbiBkb2VzIG5vdCB1bmRlcnN0YW5k IC1mLAoJICAgICMgc28gd2UgYWxzbyBuZWVkIHRvIHRyeSBybSAmJiBsbiAt cy4KCSAgICBmb3IgbGlua25hbWUKCSAgICBkbwoJICAgICAgdGVzdCAiJGxp bmtuYW1lIiAhPSAiJHJlYWxuYW1lIiBcCgkJJiYgZnVuY19zaG93X2V2YWwg IihjZCAkZGVzdGRpciAmJiB7ICRMTl9TIC1mICRyZWFsbmFtZSAkbGlua25h bWUgfHwgeyAkUk0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlu a25hbWU7IH07IH0pIgoJICAgIGRvbmUKCSAgZmkKCgkgICMgRG8gZWFjaCBj b21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KCSAgbGliPSIk ZGVzdGRpci8kcmVhbG5hbWUiCgkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9z dGluc3RhbGxfY21kcyIgJ2V4aXQgJD8nCglmaQoKCSMgSW5zdGFsbCB0aGUg cHNldWRvLWxpYnJhcnkgZm9yIGluZm9ybWF0aW9uIHB1cnBvc2VzLgoJZnVu Y19iYXNlbmFtZSAiJGZpbGUiCgluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1 bHQiCglpbnN0bmFtZT0iJGRpci8kbmFtZSJpCglmdW5jX3Nob3dfZXZhbCAi JGluc3RhbGxfcHJvZyAkaW5zdG5hbWUgJGRlc3RkaXIvJG5hbWUiICdleGl0 ICQ/JwoKCSMgTWF5YmUgaW5zdGFsbCB0aGUgc3RhdGljIGxpYnJhcnksIHRv by4KCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgc3RhdGljbGlicys9IiAk ZGlyLyRvbGRfbGlicmFyeSIKCTs7CgogICAgICAqLmxvKQoJIyBJbnN0YWxs IChpLmUuIGNvcHkpIGEgbGlidG9vbCBvYmplY3QuCgoJIyBGaWd1cmUgb3V0 IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0IGFscmVhZHkg c3BlY2lmaWVkLgoJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgoJICBk ZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgoJZWxzZQoJICBmdW5jX2Jh c2VuYW1lICIkZmlsZSIKCSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jl c3VsdCIKCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0ZmlsZSIKCWZpCgoJ IyBEZWR1Y2UgdGhlIG5hbWUgb2YgdGhlIGRlc3RpbmF0aW9uIG9sZC1zdHls ZSBvYmplY3QgZmlsZS4KCWNhc2UgJGRlc3RmaWxlIGluCgkqLmxvKQoJICBm dW5jX2xvMm8gIiRkZXN0ZmlsZSIKCSAgc3RhdGljZGVzdD0kZnVuY19sbzJv X3Jlc3VsdAoJICA7OwoJKi4kb2JqZXh0KQoJICBzdGF0aWNkZXN0PSIkZGVz dGZpbGUiCgkgIGRlc3RmaWxlPQoJICA7OwoJKikKCSAgZnVuY19mYXRhbF9o ZWxwICJjYW5ub3QgY29weSBhIGxpYnRvb2wgb2JqZWN0IHRvIFxgJGRlc3Rm aWxlJyIKCSAgOzsKCWVzYWMKCgkjIEluc3RhbGwgdGhlIGxpYnRvb2wgb2Jq ZWN0IGlmIHJlcXVlc3RlZC4KCXRlc3QgLW4gIiRkZXN0ZmlsZSIgJiYgXAoJ ICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZp bGUiICdleGl0ICQ/JwoKCSMgSW5zdGFsbCB0aGUgb2xkIG9iamVjdCBpZiBl bmFibGVkLgoJaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhl bgoJICAjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgb2xkLXN0eWxlIG9iamVj dCBmaWxlLgoJICBmdW5jX2xvMm8gIiRmaWxlIgoJICBzdGF0aWNvYmo9JGZ1 bmNfbG8yb19yZXN1bHQKCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3By b2cgXCRzdGF0aWNvYmogXCRzdGF0aWNkZXN0IiAnZXhpdCAkPycKCWZpCgll eGl0ICRFWElUX1NVQ0NFU1MKCTs7CgogICAgICAqKQoJIyBGaWd1cmUgb3V0 IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0IGFscmVhZHkg c3BlY2lmaWVkLgoJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgoJICBk ZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgoJZWxzZQoJICBmdW5jX2Jh c2VuYW1lICIkZmlsZSIKCSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jl c3VsdCIKCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0ZmlsZSIKCWZpCgoJ IyBJZiB0aGUgZmlsZSBpcyBtaXNzaW5nLCBhbmQgdGhlcmUgaXMgYSAuZXhl IG9uIHRoZSBlbmQsIHN0cmlwIGl0CgkjIGJlY2F1c2UgaXQgaXMgbW9zdCBs aWtlbHkgYSBsaWJ0b29sIHNjcmlwdCB3ZSBhY3R1YWxseSB3YW50IHRvCgkj IGluc3RhbGwKCXN0cmlwcGVkX2V4dD0iIgoJY2FzZSAkZmlsZSBpbgoJICAq LmV4ZSkKCSAgICBpZiB0ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgoJICAgICAg ZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIKCSAgICAgIGZpbGU9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJICAgICAgc3RyaXBwZWRfZXh0PSIu ZXhlIgoJICAgIGZpCgkgICAgOzsKCWVzYWMKCgkjIERvIGEgdGVzdCB0byBz ZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCgljYXNl ICRob3N0IGluCgkqY3lnd2luKiB8ICptaW5ndyopCgkgICAgaWYgZnVuY19s dHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KCSAgICAgIGZ1 bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgoJICAgICAgd3JhcHBl cj0kZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKCSAgICBlbHNl CgkgICAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxlIgoJICAg ICAgd3JhcHBlcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CgkgICAgZmkKCSAg ICA7OwoJKikKCSAgICB3cmFwcGVyPSRmaWxlCgkgICAgOzsKCWVzYWMKCWlm IGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkd3JhcHBlciI7IHRoZW4KCSAg bm90aW5zdF9kZXBsaWJzPQoJICByZWxpbmtfY29tbWFuZD0KCgkgIGZ1bmNf c291cmNlICIkd3JhcHBlciIKCgkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0 aGF0IHNob3VsZCBoYXZlIGJlZW4gc2V0LgoJICB0ZXN0IC16ICIkZ2VuZXJh dGVkX2J5X2xpYnRvb2xfdmVyc2lvbiIgJiYgXAoJICAgIGZ1bmNfZmF0YWxf ZXJyb3IgImludmFsaWQgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBcYCR3cmFw cGVyJyIKCgkgIGZpbmFsaXplPXllcwoJICBmb3IgbGliIGluICRub3RpbnN0 X2RlcGxpYnM7IGRvCgkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxp YnJhcnkgaXMgaW5zdGFsbGVkLgoJICAgIGxpYmRpcj0KCSAgICBpZiB0ZXN0 IC1mICIkbGliIjsgdGhlbgoJICAgICAgZnVuY19zb3VyY2UgIiRsaWIiCgkg ICAgZmkKCSAgICBsaWJmaWxlPSIkbGliZGlyLyJgJEVDSE8gIiRsaWIiIHwg JFNFRCAncyVeLiovJSVnJ2AgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQg cXVvdGluZyB0ZXN0CgkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIgJiYgdGVz dCAhIC1mICIkbGliZmlsZSI7IHRoZW4KCSAgICAgIGZ1bmNfd2FybmluZyAi XGAkbGliJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpcici CgkgICAgICBmaW5hbGl6ZT1ubwoJICAgIGZpCgkgIGRvbmUKCgkgIHJlbGlu a19jb21tYW5kPQoJICBmdW5jX3NvdXJjZSAiJHdyYXBwZXIiCgoJICBvdXRw dXRuYW1lPQoJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IG5vICYmIHRl c3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KCSAgICAkb3B0X2RyeV9y dW4gfHwgewoJICAgICAgaWYgdGVzdCAiJGZpbmFsaXplIiA9IHllczsgdGhl bgoJICAgICAgICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAoJCWZ1bmNfYmFz ZW5hbWUgIiRmaWxlJHN0cmlwcGVkX2V4dCIKCQlmaWxlPSIkZnVuY19iYXNl bmFtZV9yZXN1bHQiCgkgICAgICAgIG91dHB1dG5hbWU9IiR0bXBkaXIvJGZp bGUiCgkgICAgICAgICMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lm aWNhdGlvbi4KCSAgICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVs aW5rX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1l IiclZydgCgoJICAgICAgICAkb3B0X3NpbGVudCB8fCB7CgkgICAgICAgICAg ZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkcmVsaW5rX2NvbW1hbmQiCgkJICBl dmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQi CgkgICAgICAgIH0KCSAgICAgICAgaWYgZXZhbCAiJHJlbGlua19jb21tYW5k IjsgdGhlbiA6CgkgICAgICAgICAgZWxzZQoJCSAgZnVuY19lcnJvciAiZXJy b3I6IHJlbGluayBcYCRmaWxlJyB3aXRoIHRoZSBhYm92ZSBjb21tYW5kIGJl Zm9yZSBpbnN0YWxsaW5nIGl0IgoJCSAgJG9wdF9kcnlfcnVuIHx8ICR7Uk19 ciAiJHRtcGRpciIKCQkgIGNvbnRpbnVlCgkgICAgICAgIGZpCgkgICAgICAg IGZpbGU9IiRvdXRwdXRuYW1lIgoJICAgICAgZWxzZQoJICAgICAgICBmdW5j X3dhcm5pbmcgImNhbm5vdCByZWxpbmsgXGAkZmlsZSciCgkgICAgICBmaQoJ ICAgIH0KCSAgZWxzZQoJICAgICMgSW5zdGFsbCB0aGUgYmluYXJ5IHRoYXQg d2UgY29tcGlsZWQgZWFybGllci4KCSAgICBmaWxlPWAkRUNITyAiJGZpbGUk c3RyaXBwZWRfZXh0IiB8ICRTRUQgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wx JSJgCgkgIGZpCglmaQoKCSMgcmVtb3ZlIC5leGUgc2luY2UgY3lnd2luIC91 c3IvYmluL2luc3RhbGwgd2lsbCBhcHBlbmQgYW5vdGhlcgoJIyBvbmUgYW55 d2F5CgljYXNlICRpbnN0YWxsX3Byb2csJGhvc3QgaW4KCSovdXNyL2Jpbi9p bnN0YWxsKiwqY3lnd2luKikKCSAgY2FzZSAkZmlsZTokZGVzdGZpbGUgaW4K CSAgKi5leGU6Ki5leGUpCgkgICAgIyB0aGlzIGlzIG9rCgkgICAgOzsKCSAg Ki5leGU6KikKCSAgICBkZXN0ZmlsZT0kZGVzdGZpbGUuZXhlCgkgICAgOzsK CSAgKjoqLmV4ZSkKCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRk ZXN0ZmlsZSIKCSAgICBkZXN0ZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 CgkgICAgOzsKCSAgZXNhYwoJICA7OwoJZXNhYwoJZnVuY19zaG93X2V2YWwg IiRpbnN0YWxsX3Byb2dcJHN0cmlwbWUgXCRmaWxlIFwkZGVzdGZpbGUiICdl eGl0ICQ/JwoJJG9wdF9kcnlfcnVuIHx8IGlmIHRlc3QgLW4gIiRvdXRwdXRu YW1lIjsgdGhlbgoJICAke1JNfXIgIiR0bXBkaXIiCglmaQoJOzsKICAgICAg ZXNhYwogICAgZG9uZQoKICAgIGZvciBmaWxlIGluICRzdGF0aWNsaWJzOyBk bwogICAgICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKICAgICAgbmFtZT0iJGZ1 bmNfYmFzZW5hbWVfcmVzdWx0IgoKICAgICAgIyBTZXQgdXAgdGhlIHJhbmxp YiBwYXJhbWV0ZXJzLgogICAgICBvbGRsaWI9IiRkZXN0ZGlyLyRuYW1lIgoK ICAgICAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgXCRmaWxlIFwk b2xkbGliIiAnZXhpdCAkPycKCiAgICAgIGlmIHRlc3QgLW4gIiRzdHJpcG1l IiAmJiB0ZXN0IC1uICIkb2xkX3N0cmlwbGliIjsgdGhlbgoJZnVuY19zaG93 X2V2YWwgIiRvbGRfc3RyaXBsaWIgJG9sZGxpYiIgJ2V4aXQgJD8nCiAgICAg IGZpCgogICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3Rh bGwgY29tbWFuZHMuCiAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bv c3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/JwogICAgZG9uZQoKICAgIHRlc3Qg LW4gIiRmdXR1cmVfbGliZGlycyIgJiYgXAogICAgICBmdW5jX3dhcm5pbmcg InJlbWVtYmVyIHRvIHJ1biBcYCRwcm9nbmFtZSAtLWZpbmlzaCRmdXR1cmVf bGliZGlycyciCgogICAgaWYgdGVzdCAtbiAiJGN1cnJlbnRfbGliZGlycyI7 IHRoZW4KICAgICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KICAgICAg JG9wdF9kcnlfcnVuICYmIGN1cnJlbnRfbGliZGlycz0iIC1uJGN1cnJlbnRf bGliZGlycyIKICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHBy ZXNlcnZlX2FyZ3MgLS1maW5pc2gkY3VycmVudF9saWJkaXJzJwogICAgZWxz ZQogICAgICBleGl0ICRFWElUX1NVQ0NFU1MKICAgIGZpCn0KCnRlc3QgIiRv cHRfbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsi JEAifQoKCiMgZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmln aW5hdG9yIHBpY19wCiMgRXh0cmFjdCBzeW1ib2xzIGZyb20gZGxwcmVmaWxl cyBhbmQgY3JlYXRlICR7b3V0cHV0bmFtZX1TLm8gd2l0aAojIGEgZGxwcmVv cGVuIHN5bWJvbCB0YWJsZS4KZnVuY19nZW5lcmF0ZV9kbHN5bXMgKCkKewog ICAgJG9wdF9kZWJ1ZwogICAgbXlfb3V0cHV0bmFtZT0iJDEiCiAgICBteV9v cmlnaW5hdG9yPSIkMiIKICAgIG15X3BpY19wPSIkezMtbm99IgogICAgbXlf cHJlZml4PWAkRUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2VkICdzJVteYS16 QS1aMC05XSVfJWcnYAogICAgbXlfZGxzeW1zPQoKICAgIGlmIHRlc3QgLW4g IiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5v OyB0aGVuCiAgICAgIGlmIHRlc3QgLW4gIiROTSIgJiYgdGVzdCAtbiAiJGds b2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KCW15X2Rsc3ltcz0iJHtteV9vdXRw dXRuYW1lfVMuYyIKICAgICAgZWxzZQoJZnVuY19lcnJvciAibm90IGNvbmZp Z3VyZWQgdG8gZXh0cmFjdCBnbG9iYWwgc3ltYm9scyBmcm9tIGRscHJlb3Bl bmVkIGZpbGVzIgogICAgICBmaQogICAgZmkKCiAgICBpZiB0ZXN0IC1uICIk bXlfZGxzeW1zIjsgdGhlbgogICAgICBjYXNlICRteV9kbHN5bXMgaW4KICAg ICAgIiIpIDs7CiAgICAgICouYykKCSMgRGlzY292ZXIgdGhlIG5saXN0IG9m IGVhY2ggb2YgdGhlIGRsZmlsZXMuCglubGlzdD0iJG91dHB1dF9vYmpkaXIv JHtteV9vdXRwdXRuYW1lfS5ubSIKCglmdW5jX3Nob3dfZXZhbCAiJFJNICRu bGlzdCAke25saXN0fVMgJHtubGlzdH1UIgoKCSMgUGFyc2UgdGhlIG5hbWUg bGlzdCBpbnRvIGEgc291cmNlIGZpbGUuCglmdW5jX3ZlcmJvc2UgImNyZWF0 aW5nICRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCgoJJG9wdF9kcnlfcnVu IHx8ICRFQ0hPID4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi8q ICRteV9kbHN5bXMgLSBzeW1ib2wgcmVzb2x1dGlvbiB0YWJsZSBmb3IgXGAk bXlfb3V0cHV0bmFtZScgZGxzeW0gZW11bGF0aW9uLiAqLwovKiBHZW5lcmF0 ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJT SU9OICovCgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuIFwiQ1wiIHsKI2Vu ZGlmCgojaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0g NCkgJiYgKF9fR05VQ19NSU5PUl9fID49IDQpKSB8fCAoX19HTlVDX18gPiA0 KSkKI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkIFwiLVdzdHJpY3Qt cHJvdG90eXBlc1wiCiNlbmRpZgoKLyogS2VlcCB0aGlzIGNvZGUgaW4gc3lu YyBiZXR3ZWVuIGxpYnRvb2wubTQsIGx0bWFpbiwgbHRfc3lzdGVtLmgsIGFu ZCB0ZXN0cy4gICovCiNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChf X0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCi8qIERBVEEgaW1w b3J0cyBmcm9tIERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1 c2UgcnVudGltZQogICByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNl ZSBsZCdzIGRvY3VtZW50YXRpb24gb24gcHNldWRvLXJlbG9jcy4gICovCiMg ZGVmaW5lIExUX0RMU1lNX0NPTlNUCiNlbGlmIGRlZmluZWQoX19vc2ZfXykK LyogVGhpcyBzeXN0ZW0gZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggcmVsb2Nh dGlvbnMgaW4gY29uc3QgZGF0YS4gICovCiMgZGVmaW5lIExUX0RMU1lNX0NP TlNUCiNlbHNlCiMgZGVmaW5lIExUX0RMU1lNX0NPTlNUIGNvbnN0CiNlbmRp ZgoKLyogRXh0ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGNv bXBpbGVyLiAqL1wKIgoKCWlmIHRlc3QgIiRkbHNlbGYiID0geWVzOyB0aGVu CgkgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3Ig XGAkb3V0cHV0JyIKCgkgICRvcHRfZHJ5X3J1biB8fCBlY2hvICc6IEBQUk9H UkFNQCAnID4gIiRubGlzdCIKCgkgICMgQWRkIG91ciBvd24gcHJvZ3JhbSBv YmplY3RzIHRvIHRoZSBzeW1ib2wgbGlzdC4KCSAgcHJvZ2ZpbGVzPWAkRUNI TyAiJG9ianMkb2xkX2RlcGxpYnMiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8i IHwgJE5MMlNQYAoJICBmb3IgcHJvZ2ZpbGUgaW4gJHByb2dmaWxlczsgZG8K CSAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJHByb2dmaWxlIiBmdW5jX2NvbnZl cnRfZmlsZV9tc3lzX3RvX3czMgoJICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFj dGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkZnVuY190b190b29sX2Zp bGVfcmVzdWx0JyIKCSAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJE5NICRm dW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQgfCAkZ2xvYmFsX3N5bWJvbF9waXBl ID4+ICckbmxpc3QnIgoJICBkb25lCgoJICBpZiB0ZXN0IC1uICIkZXhjbHVk ZV9leHBzeW1zIjsgdGhlbgoJICAgICRvcHRfZHJ5X3J1biB8fCB7CgkgICAg ICBldmFsICckRUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAiJG5s aXN0IiA+ICIkbmxpc3QiVCcKCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQg IiRubGlzdCInCgkgICAgfQoJICBmaQoKCSAgaWYgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgoJICAgICRvcHRfZHJ5X3J1biB8fCB7 CgkgICAgICBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdl eCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCgkgICAgICBldmFsICckTVYgIiRu bGlzdCJUICIkbmxpc3QiJwoJICAgIH0KCSAgZmkKCgkgICMgUHJlcGFyZSB0 aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzCgkgIGlmIHRlc3QgLXogIiRl eHBvcnRfc3ltYm9scyI7IHRoZW4KCSAgICBleHBvcnRfc3ltYm9scz0iJG91 dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIgoJICAgICRvcHRfZHJ5X3J1 biB8fCB7CgkgICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCgkgICAgICBldmFs ICIke1NFRH0gLW4gLWUgJy9eOiBAUFJPR1JBTUAgJC9kJyAtZSAncy9eLiog XCguKlwpJC9cMS9wJyAiJzwgIiRubGlzdCIgPiAiJGV4cG9ydF9zeW1ib2xz IicKCSAgICAgIGNhc2UgJGhvc3QgaW4KCSAgICAgICpjeWd3aW4qIHwgKm1p bmd3KiB8ICpjZWdjYyogKQogICAgICAgICAgICAgICAgZXZhbCAiZWNobyBF WFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicK ICAgICAgICAgICAgICAgIGV2YWwgJ2NhdCAiJGV4cG9ydF9zeW1ib2xzIiA+ PiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKCSAgICAgICAg OzsKCSAgICAgIGVzYWMKCSAgICB9CgkgIGVsc2UKCSAgICAkb3B0X2RyeV9y dW4gfHwgewoJICAgICAgZXZhbCAiJHtTRUR9IC1lICdzL1woW10uWypeJF1c KS9cXFxcXDEvZycgLWUgJ3MvXi8gLycgLWUgJ3MvJC8kLyciJyA8ICIkZXhw b3J0X3N5bWJvbHMiID4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4 cCInCgkgICAgICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91 dHB1dG5hbWUuZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJUJwoJICAgICAg ZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0IicKCSAgICAgIGNhc2UgJGhv c3QgaW4KCSAgICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiAp CgkgICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9v YmpkaXIvJG91dHB1dG5hbWUuZGVmIicKCSAgICAgICAgICBldmFsICdjYXQg IiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiIn CgkgICAgICAgICAgOzsKCSAgICAgIGVzYWMKCSAgICB9CgkgIGZpCglmaQoK CWZvciBkbHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCgkgIGZ1bmNfdmVy Ym9zZSAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkZGxw cmVmaWxlJyIKCSAgZnVuY19iYXNlbmFtZSAiJGRscHJlZmlsZSIKCSAgbmFt ZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgogICAgICAgICAgY2FzZSAkaG9z dCBpbgoJICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQoJICAg ICAgIyBpZiBhbiBpbXBvcnQgbGlicmFyeSwgd2UgbmVlZCB0byBvYnRhaW4g ZGxuYW1lCgkgICAgICBpZiBmdW5jX3dpbjMyX2ltcG9ydF9saWJfcCAiJGRs cHJlZmlsZSI7IHRoZW4KCSAgICAgICAgZnVuY190cl9zaCAiJGRscHJlZmls ZSIKCSAgICAgICAgZXZhbCAiY3Vycl9sYWZpbGU9XCRsaWJmaWxlXyRmdW5j X3RyX3NoX3Jlc3VsdCIKCSAgICAgICAgZGxwcmVmaWxlX2RsYmFzZW5hbWU9 IiIKCSAgICAgICAgaWYgdGVzdCAtbiAiJGN1cnJfbGFmaWxlIiAmJiBmdW5j X2xhbGliX3AgIiRjdXJyX2xhZmlsZSI7IHRoZW4KCSAgICAgICAgICAjIFVz ZSBzdWJzaGVsbCwgdG8gYXZvaWQgY2xvYmJlcmluZyBjdXJyZW50IHZhcmlh YmxlIHZhbHVlcwoJICAgICAgICAgIGRscHJlZmlsZV9kbG5hbWU9YHNvdXJj ZSAiJGN1cnJfbGFmaWxlIiAmJiBlY2hvICIkZGxuYW1lImAKCSAgICAgICAg ICBpZiB0ZXN0IC1uICIkZGxwcmVmaWxlX2RsbmFtZSIgOyB0aGVuCgkgICAg ICAgICAgICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlX2RsbmFtZSIKCSAg ICAgICAgICAgIGRscHJlZmlsZV9kbGJhc2VuYW1lPSIkZnVuY19iYXNlbmFt ZV9yZXN1bHQiCgkgICAgICAgICAgZWxzZQoJICAgICAgICAgICAgIyBubyBs YWZpbGUuIHVzZXIgZXhwbGljaXRseSByZXF1ZXN0ZWQgLWRscHJlb3BlbiA8 aW1wb3J0IGxpYnJhcnk+LgoJICAgICAgICAgICAgJHNoYXJlZGxpYl9mcm9t X2xpbmtsaWJfY21kICIkZGxwcmVmaWxlIgoJICAgICAgICAgICAgZGxwcmVm aWxlX2RsYmFzZW5hbWU9JHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0 CgkgICAgICAgICAgZmkKCSAgICAgICAgZmkKCSAgICAgICAgJG9wdF9kcnlf cnVuIHx8IHsKCSAgICAgICAgICBpZiB0ZXN0IC1uICIkZGxwcmVmaWxlX2Rs YmFzZW5hbWUiIDsgdGhlbgoJICAgICAgICAgICAgZXZhbCAnJEVDSE8gIjog JGRscHJlZmlsZV9kbGJhc2VuYW1lIiA+PiAiJG5saXN0IicKCSAgICAgICAg ICBlbHNlCgkgICAgICAgICAgICBmdW5jX3dhcm5pbmcgIkNvdWxkIG5vdCBj b21wdXRlIERMTCBuYW1lIGZyb20gJG5hbWUiCgkgICAgICAgICAgICBldmFs ICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJwoJICAgICAgICAgIGZp CgkgICAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1 bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCgkgICAgICAgICAgZXZhbCAi JE5NIFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIDI+L2Rldi9udWxs IHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8CgkgICAgICAgICAgICAkU0VEIC1l ICcvSSBfX2ltcC9kJyAtZSAncy9JIF9fbm1fL0QgLztzL19ubV9fLy8nID4+ ICckbmxpc3QnIgoJICAgICAgICB9CgkgICAgICBlbHNlICMgbm90IGFuIGlt cG9ydCBsaWIKCSAgICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKCSAgICAgICAg ICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJwoJICAgICAg ICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkZGxwcmVmaWxlIiBmdW5jX2NvbnZl cnRfZmlsZV9tc3lzX3RvX3czMgoJICAgICAgICAgIGV2YWwgIiROTSBcIiRm dW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHRcIiAyPi9kZXYvbnVsbCB8ICRnbG9i YWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCgkgICAgICAgIH0KCSAgICAg IGZpCgkgICAgOzsKCSAgICAqKQoJICAgICAgJG9wdF9kcnlfcnVuIHx8IHsK CSAgICAgICAgZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicK CSAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNf Y29udmVydF9maWxlX21zeXNfdG9fdzMyCgkgICAgICAgIGV2YWwgIiROTSBc IiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHRcIiAyPi9kZXYvbnVsbCB8ICRn bG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCgkgICAgICB9CgkgICAg OzsKICAgICAgICAgIGVzYWMKCWRvbmUKCgkkb3B0X2RyeV9ydW4gfHwgewoJ ICAjIE1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0IGFuIGVtcHR5IGZpbGUu CgkgIHRlc3QgLWYgIiRubGlzdCIgfHwgOiA+ICIkbmxpc3QiCgoJICBpZiB0 ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgoJICAgICRFR1JFUCAt diAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJU CgkgICAgJE1WICIkbmxpc3QiVCAiJG5saXN0IgoJICBmaQoKCSAgIyBUcnkg c29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KCSAgaWYgJEdS RVAgLXYgIl46ICIgPCAiJG5saXN0IiB8CgkgICAgICBpZiBzb3J0IC1rIDMg PC9kZXYvbnVsbCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KCQlzb3J0IC1rIDMK CSAgICAgIGVsc2UKCQlzb3J0ICsyCgkgICAgICBmaSB8CgkgICAgICB1bmlx ID4gIiRubGlzdCJTOyB0aGVuCgkgICAgOgoJICBlbHNlCgkgICAgJEdSRVAg LXYgIl46ICIgPCAiJG5saXN0IiA+ICIkbmxpc3QiUwoJICBmaQoKCSAgaWYg dGVzdCAtZiAiJG5saXN0IlM7IHRoZW4KCSAgICBldmFsICIkZ2xvYmFsX3N5 bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRp ci8kbXlfZGxzeW1zIicKCSAgZWxzZQoJICAgIGVjaG8gJy8qIE5PTkUgKi8n ID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgoJICBmaQoKCSAgZWNo byA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKCi8qIFRoZSBt YXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8K dHlwZWRlZiBzdHJ1Y3QgewogIGNvbnN0IGNoYXIgKm5hbWU7CiAgdm9pZCAq YWRkcmVzczsKfSBsdF9kbHN5bWxpc3Q7CmV4dGVybiBMVF9ETFNZTV9DT05T VCBsdF9kbHN5bWxpc3QKbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRf c3ltYm9sc1tdOwpMVF9ETFNZTV9DT05TVCBsdF9kbHN5bWxpc3QKbHRfJHtt eV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdID0Ke1wKICB7IFwi JG15X29yaWdpbmF0b3JcIiwgKHZvaWQgKikgMCB9LCIKCgkgIGNhc2UgJG5l ZWRfbGliX3ByZWZpeCBpbgoJICBubykKCSAgICBldmFsICIkZ2xvYmFsX3N5 bWJvbF90b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1 dF9vYmpkaXIvJG15X2Rsc3ltcyIKCSAgICA7OwoJICAqKQoJICAgIGV2YWwg IiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgi IDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCgkg ICAgOzsKCSAgZXNhYwoJICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlf ZGxzeW1zIiAiXAogIHswLCAodm9pZCAqKSAwfQp9OwoKLyogVGhpcyB3b3Jr cyBhcm91bmQgYSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCiNpZmRl ZiBGUkVFQlNEX1dPUktBUk9VTkQKc3RhdGljIGNvbnN0IHZvaWQgKmx0X3By ZWxvYWRlZF9zZXR1cCgpIHsKICByZXR1cm4gbHRfJHtteV9wcmVmaXh9X0xU WF9wcmVsb2FkZWRfc3ltYm9sczsKfQojZW5kaWYKCiNpZmRlZiBfX2NwbHVz cGx1cwp9CiNlbmRpZlwKIgoJfSAjICEkb3B0X2RyeV9ydW4KCglwaWNfZmxh Z19mb3Jfc3ltdGFibGU9CgljYXNlICIkY29tcGlsZV9jb21tYW5kICIgaW4K CSoiIC1zdGF0aWMgIiopIDs7CgkqKQoJICBjYXNlICRob3N0IGluCgkgICMg Y29tcGlsaW5nIHRoZSBzeW1ib2wgdGFibGUgZmlsZSB3aXRoIHBpY19mbGFn IHdvcmtzIGFyb3VuZAoJICAjIGEgRnJlZUJTRCBidWcgdGhhdCBjYXVzZXMg cHJvZ3JhbXMgdG8gY3Jhc2ggd2hlbiAtbG0gaXMKCSAgIyBsaW5rZWQgYmVm b3JlIGFueSBvdGhlciBQSUMgb2JqZWN0LiAgQnV0IHdlIG11c3Qgbm90IHVz ZQoJICAjIHBpY19mbGFnIHdoZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBU aGUgcHJvYmxlbSBleGlzdHMgaW4KCSAgIyBGcmVlQlNEIDIuMi42IGFuZCBp cyBmaXhlZCBpbiBGcmVlQlNEIDMuMS4KCSAgKi0qLWZyZWVic2QyKnwqLSot ZnJlZWJzZDMuMCp8Ki0qLWZyZWVic2RlbGYzLjAqKQoJICAgIHBpY19mbGFn X2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyAtREZSRUVCU0RfV09SS0FST1VO RCIgOzsKCSAgKi0qLWhwdXgqKQoJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJs ZT0iICRwaWNfZmxhZyIgIDs7CgkgICopCgkgICAgaWYgdGVzdCAiWCRteV9w aWNfcCIgIT0gWG5vOyB0aGVuCgkgICAgICBwaWNfZmxhZ19mb3Jfc3ltdGFi bGU9IiAkcGljX2ZsYWciCgkgICAgZmkKCSAgICA7OwoJICBlc2FjCgkgIDs7 Cgllc2FjCglzeW10YWJfY2ZsYWdzPQoJZm9yIGFyZyBpbiAkTFRDRkxBR1M7 IGRvCgkgIGNhc2UgJGFyZyBpbgoJICAtcGllIHwgLWZwaWUgfCAtZlBJRSkg OzsKCSAgKikgc3ltdGFiX2NmbGFncys9IiAkYXJnIiA7OwoJICBlc2FjCglk b25lCgoJIyBOb3cgY29tcGlsZSB0aGUgZHluYW1pYyBzeW1ib2wgZmlsZS4K CWZ1bmNfc2hvd19ldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJExUQ0Mk c3ltdGFiX2NmbGFncyAtYyRub19idWlsdGluX2ZsYWckcGljX2ZsYWdfZm9y X3N5bXRhYmxlICIkbXlfZGxzeW1zIiknICdleGl0ICQ/JwoKCSMgQ2xlYW4g dXAgdGhlIGdlbmVyYXRlZCBmaWxlcy4KCWZ1bmNfc2hvd19ldmFsICckUk0g IiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICIkbmxpc3QiICIke25saXN0 fVMiICIke25saXN0fVQiJwoKCSMgVHJhbnNmb3JtIHRoZSBzeW1ib2wgZmls ZSBpbnRvIHRoZSBjb3JyZWN0IG5hbWUuCglzeW1maWxlb2JqPSIkb3V0cHV0 X29iamRpci8ke215X291dHB1dG5hbWV9Uy4kb2JqZXh0IgoJY2FzZSAkaG9z dCBpbgoJKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCgkgIGlmIHRl c3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiI7IHRo ZW4KCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21t YW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9v dXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAoJICAgIGZpbmFsaXplX2Nv bW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBT WU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5 bWZpbGVvYmolImAKCSAgZWxzZQoJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVD SE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJHN5 bWZpbGVvYmolImAKCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZp bmFsaXplX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJHN5bWZpbGVv YmolImAKCSAgZmkKCSAgOzsKCSopCgkgIGNvbXBpbGVfY29tbWFuZD1gJEVD SE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJHN5 bWZpbGVvYmolImAKCSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5h bGl6ZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2Jq JSJgCgkgIDs7Cgllc2FjCgk7OwogICAgICAqKQoJZnVuY19mYXRhbF9lcnJv ciAidW5rbm93biBzdWZmaXggZm9yIFxgJG15X2Rsc3ltcyciCgk7OwogICAg ICBlc2FjCiAgICBlbHNlCiAgICAgICMgV2Uga2VlcCBnb2luZyBqdXN0IGlu IGNhc2UgdGhlIHVzZXIgZGlkbid0IHJlZmVyIHRvCiAgICAgICMgbHRfcHJl bG9hZGVkX3N5bWJvbHMuICBUaGUgbGlua2VyIHdpbGwgZmFpbCBpZiBnbG9i YWxfc3ltYm9sX3BpcGUKICAgICAgIyByZWFsbHkgd2FzIHJlcXVpcmVkLgoK ICAgICAgIyBOdWxsaWZ5IHRoZSBzeW1ib2wgZmlsZS4KICAgICAgY29tcGls ZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VEICJz JSBAU1lNRklMRUAlJSJgCiAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hP ICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJSBAU1lNRklMRUAlJSJg CiAgICBmaQp9CgojIGZ1bmNfd2luMzJfbGliaWQgYXJnCiMgcmV0dXJuIHRo ZSBsaWJyYXJ5IHR5cGUgb2YgZmlsZSAnYXJnJwojCiMgTmVlZCBhIGxvdCBv ZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicwoj IEhhcyB0byBiZSBhIHNoZWxsIGZ1bmN0aW9uIGluIG9yZGVyIHRvICdlYXQn IHRoZSBhcmd1bWVudAojIHRoYXQgaXMgc3VwcGxpZWQgd2hlbiAkZmlsZV9t YWdpY19jb21tYW5kIGlzIGNhbGxlZC4KIyBEZXNwaXRlIHRoZSBuYW1lLCBh bHNvIGRlYWwgd2l0aCA2NCBiaXQgYmluYXJpZXMuCmZ1bmNfd2luMzJfbGli aWQgKCkKewogICRvcHRfZGVidWcKICB3aW4zMl9saWJpZF90eXBlPSJ1bmtu b3duIgogIHdpbjMyX2ZpbGVyZXM9YGZpbGUgLUwgJDEgMj4vZGV2L251bGxg CiAgY2FzZSAkd2luMzJfZmlsZXJlcyBpbgogICphclwgYXJjaGl2ZVwgaW1w b3J0XCBsaWJyYXJ5KikgIyBkZWZpbml0ZWx5IGltcG9ydAogICAgd2luMzJf bGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0IgogICAgOzsKICAqYXJc IGFyY2hpdmUqKSAjIGNvdWxkIGJlIGFuIGltcG9ydCwgb3Igc3RhdGljCiAg ICAjIEtlZXAgdGhlIGVncmVwIHBhdHRlcm4gaW4gc3luYyB3aXRoIHRoZSBv bmUgaW4gX0xUX0NIRUNLX01BR0lDX01FVEhPRC4KICAgIGlmIGV2YWwgJE9C SkRVTVAgLWYgJDEgfCAkU0VEIC1lICcxMHEnIDI+L2Rldi9udWxsIHwKICAg ICAgICRFR1JFUCAnZmlsZSBmb3JtYXQgKHBlaSotaTM4NiguKmFyY2hpdGVj dHVyZTogaTM4Nik/fHBlLWFybS13aW5jZXxwZS14ODYtNjQpJyA+L2Rldi9u dWxsOyB0aGVuCiAgICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkMSIgZnVuY19j b252ZXJ0X2ZpbGVfbXN5c190b193MzIKICAgICAgd2luMzJfbm1yZXM9YGV2 YWwgJE5NIC1mIHBvc2l4IC1BIFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3Vs dFwiIHwKCSRTRUQgLW4gLWUgJwoJICAgIDEsMTAwewoJCS8gSSAvewoJCSAg ICBzLC4qLGltcG9ydCwKCQkgICAgcAoJCSAgICBxCgkJfQoJICAgIH0nYAog ICAgICBjYXNlICR3aW4zMl9ubXJlcyBpbgogICAgICBpbXBvcnQqKSAgd2lu MzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7CiAgICAgICop ICAgICAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBzdGF0aWMi OzsKICAgICAgZXNhYwogICAgZmkKICAgIDs7CiAgKkRMTCopCiAgICB3aW4z Ml9saWJpZF90eXBlPSJ4ODYgRExMIgogICAgOzsKICAqZXhlY3V0YWJsZSop ICMgYnV0IHNoZWxsIHNjcmlwdHMgYXJlICJleGVjdXRhYmxlIiB0b28uLi4K ICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KICAgICpNU1wgV2luZG93c1wg UEVcIEludGVsKikKICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IERMTCIK ICAgICAgOzsKICAgIGVzYWMKICAgIDs7CiAgZXNhYwogICRFQ0hPICIkd2lu MzJfbGliaWRfdHlwZSIKfQoKIyBmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBs aWIgQVJHCiMKIyBQbGF0Zm9ybS1zcGVjaWZpYyBmdW5jdGlvbiB0byBleHRy YWN0IHRoZQojIG5hbWUgb2YgdGhlIERMTCBhc3NvY2lhdGVkIHdpdGggdGhl IHNwZWNpZmllZAojIGltcG9ydCBsaWJyYXJ5IEFSRy4KIyBJbnZva2VkIGJ5 IGV2YWwnaW5nIHRoZSBsaWJ0b29sIHZhcmlhYmxlCiMgICAgJHNoYXJlZGxp Yl9mcm9tX2xpbmtsaWJfY21kCiMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiB0 aGUgdmFyaWFibGUKIyAgICAkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1 bHQKZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliICgpCnsKICAkb3B0X2Rl YnVnCiAgc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQ9YCRETExUT09M IC0taWRlbnRpZnktc3RyaWN0IC0taWRlbnRpZnkgIiQxImAKfQoKIyBmdW5j X2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2tfY29yZSBTRUNUSU9O X05BTUUgTElCTkFNRXMKIwojIFRoZSBpcyB0aGUgY29yZSBvZiBhIGZhbGxi YWNrIGltcGxlbWVudGF0aW9uIG9mIGEKIyBwbGF0Zm9ybS1zcGVjaWZpYyBm dW5jdGlvbiB0byBleHRyYWN0IHRoZSBuYW1lIG9mIHRoZQojIERMTCBhc3Nv Y2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBpbXBvcnQgbGlicmFyeSBMSUJO QU1FLgojCiMgU0VDVElPTl9OQU1FIGlzIGVpdGhlciAuaWRhdGEkNiBvciAu aWRhdGEkNywgZGVwZW5kaW5nCiMgb24gdGhlIHBsYXRmb3JtIGFuZCBjb21w aWxlciB0aGF0IGNyZWF0ZWQgdGhlIGltcGxpYi4KIwojIEVjaG9zIHRoZSBu YW1lIG9mIHRoZSBETEwgYXNzb2NpYXRlZCB3aXRoIHRoZQojIHNwZWNpZmll ZCBpbXBvcnQgbGlicmFyeS4KZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGli X2ZhbGxiYWNrX2NvcmUgKCkKewogICRvcHRfZGVidWcKICBtYXRjaF9saXRl cmFsPWAkRUNITyAiJDEiIHwgJFNFRCAiJHNlZF9tYWtlX2xpdGVyYWxfcmVn ZXgiYAogICRPQkpEVU1QIC1zIC0tc2VjdGlvbiAiJDEiICIkMiIgMj4vZGV2 L251bGwgfAogICAgJFNFRCAnL15Db250ZW50cyBvZiBzZWN0aW9uICciJG1h dGNoX2xpdGVyYWwiJzovewogICAgICAjIFBsYWNlIG1hcmtlciBhdCBiZWdp bm5pbmcgb2YgYXJjaGl2ZSBtZW1iZXIgZGxsbmFtZSBzZWN0aW9uCiAgICAg IHMvLiovPT09PU1BUks9PT09LwogICAgICBwCiAgICAgIGQKICAgIH0KICAg ICMgVGhlc2UgbGluZXMgY2FuIHNvbWV0aW1lcyBiZSBsb25nZXIgdGhhbiA0 MyBjaGFyYWN0ZXJzLCBidXQKICAgICMgYXJlIGFsd2F5cyB1bmludGVyZXN0 aW5nCiAgICAvOlsJIF0qZmlsZSBmb3JtYXQgcGVbaV1ceywxXH0tL2QKICAg IC9eSW4gYXJjaGl2ZSBbXjpdKjovZAogICAgIyBFbnN1cmUgbWFya2VyIGlz IHByaW50ZWQKICAgIC9ePT09PU1BUks9PT09L3AKICAgICMgUmVtb3ZlIGFs bCBsaW5lcyB3aXRoIGxlc3MgdGhhbiA0MyBjaGFyYWN0ZXJzCiAgICAvXi5c ezQzXH0vIWQKICAgICMgRnJvbSByZW1haW5pbmcgbGluZXMsIHJlbW92ZSBm aXJzdCA0MyBjaGFyYWN0ZXJzCiAgICBzL14uXHs0M1x9Ly8nIHwKICAgICRT RUQgLW4gJwogICAgICAjIEpvaW4gbWFya2VyIGFuZCBhbGwgbGluZXMgdW50 aWwgbmV4dCBtYXJrZXIgaW50byBhIHNpbmdsZSBsaW5lCiAgICAgIC9ePT09 PU1BUks9PT09LyBiIHBhcmEKICAgICAgSAogICAgICAkIGIgcGFyYQogICAg ICBiCiAgICAgIDpwYXJhCiAgICAgIHgKICAgICAgcy9cbi8vZwogICAgICAj IFJlbW92ZSB0aGUgbWFya2VyCiAgICAgIHMvXj09PT1NQVJLPT09PS8vCiAg ICAgICMgUmVtb3ZlIHRyYWlsaW5nIGRvdHMgYW5kIHdoaXRlc3BhY2UKICAg ICAgcy9bXC4gXHRdKiQvLwogICAgICAjIFByaW50CiAgICAgIC8uL3AnIHwK ICAgICMgd2Ugbm93IGhhdmUgYSBsaXN0LCBvbmUgZW50cnkgcGVyIGxpbmUs IG9mIHRoZSBzdHJpbmdpZmllZAogICAgIyBjb250ZW50cyBvZiB0aGUgYXBw cm9wcmlhdGUgc2VjdGlvbiBvZiBhbGwgbWVtYmVycyBvZiB0aGUKICAgICMg YXJjaGl2ZSB3aGljaCBwb3NzZXNzIHRoYXQgc2VjdGlvbi4gSGV1cmlzdGlj OiBlbGltaW5hdGUKICAgICMgYWxsIHRob3NlIHdoaWNoIGhhdmUgYSBmaXJz dCBvciBzZWNvbmQgY2hhcmFjdGVyIHRoYXQgaXMKICAgICMgYSAnLicgKHRo YXQgaXMsIG9iamR1bXAncyByZXByZXNlbnRhdGlvbiBvZiBhbiB1bnByaW50 YWJsZQogICAgIyBjaGFyYWN0ZXIuKSBUaGlzIHNob3VsZCB3b3JrIGZvciBh bGwgYXJjaGl2ZXMgd2l0aCBsZXNzIHRoYW4KICAgICMgMHgzMDJmIGV4cG9y dHMgLS0gYnV0IHdpbGwgZmFpbCBmb3IgRExMcyB3aG9zZSBuYW1lIGFjdHVh bGx5CiAgICAjIGJlZ2lucyB3aXRoIGEgbGl0ZXJhbCAnLicgb3IgYSBzaW5n bGUgY2hhcmFjdGVyIGZvbGxvd2VkIGJ5CiAgICAjIGEgJy4nLgogICAgIwog ICAgIyBPZiB0aG9zZSB0aGF0IHJlbWFpbiwgcHJpbnQgdGhlIGZpcnN0IG9u ZS4KICAgICRTRUQgLWUgJy9eXC4vZDsvXi5cLi9kO3EnCn0KCiMgZnVuY19j eWdtaW5nX2dudV9pbXBsaWJfcCBBUkcKIyBUaGlzIHByZWRpY2F0ZSByZXR1 cm5zIHdpdGggemVybyBzdGF0dXMgKFRSVUUpIGlmCiMgQVJHIGlzIGEgR05V L2JpbnV0aWxzLXN0eWxlIGltcG9ydCBsaWJyYXJ5LiBSZXR1cm5zCiMgd2l0 aCBub256ZXJvIHN0YXR1cyAoRkFMU0UpIG90aGVyd2lzZS4KZnVuY19jeWdt aW5nX2dudV9pbXBsaWJfcCAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNfdG9f dG9vbF9maWxlICIkMSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIK ICBmdW5jX2N5Z21pbmdfZ251X2ltcGxpYl90bXA9YCROTSAiJGZ1bmNfdG9f dG9vbF9maWxlX3Jlc3VsdCIgfCBldmFsICIkZ2xvYmFsX3N5bWJvbF9waXBl IiB8ICRFR1JFUCAnIChfaGVhZF9bQS1aYS16MC05X10rX1thZF1sKnxbQS1a YS16MC05X10rX1thZF1sKl9pbmFtZSkkJ2AKICB0ZXN0IC1uICIkZnVuY19j eWdtaW5nX2dudV9pbXBsaWJfdG1wIgp9CgojIGZ1bmNfY3lnbWluZ19tc19p bXBsaWJfcCBBUkcKIyBUaGlzIHByZWRpY2F0ZSByZXR1cm5zIHdpdGggemVy byBzdGF0dXMgKFRSVUUpIGlmCiMgQVJHIGlzIGFuIE1TLXN0eWxlIGltcG9y dCBsaWJyYXJ5LiBSZXR1cm5zCiMgd2l0aCBub256ZXJvIHN0YXR1cyAoRkFM U0UpIG90aGVyd2lzZS4KZnVuY19jeWdtaW5nX21zX2ltcGxpYl9wICgpCnsK ICAkb3B0X2RlYnVnCiAgZnVuY190b190b29sX2ZpbGUgIiQxIiBmdW5jX2Nv bnZlcnRfZmlsZV9tc3lzX3RvX3czMgogIGZ1bmNfY3lnbWluZ19tc19pbXBs aWJfdG1wPWAkTk0gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiIHwgZXZh bCAiJGdsb2JhbF9zeW1ib2xfcGlwZSIgfCAkR1JFUCAnX05VTExfSU1QT1JU X0RFU0NSSVBUT1InYAogIHRlc3QgLW4gIiRmdW5jX2N5Z21pbmdfbXNfaW1w bGliX3RtcCIKfQoKIyBmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFs bGJhY2sgQVJHCiMgUGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdG8gZXh0 cmFjdCB0aGUKIyBuYW1lIG9mIHRoZSBETEwgYXNzb2NpYXRlZCB3aXRoIHRo ZSBzcGVjaWZpZWQKIyBpbXBvcnQgbGlicmFyeSBBUkcuCiMKIyBUaGlzIGZh bGxiYWNrIGltcGxlbWVudGF0aW9uIGlzIGZvciB1c2Ugd2hlbiAkRExMVE9P TAojIGRvZXMgbm90IHN1cHBvcnQgdGhlIC0taWRlbnRpZnktc3RyaWN0IG9w dGlvbi4KIyBJbnZva2VkIGJ5IGV2YWwnaW5nIHRoZSBsaWJ0b29sIHZhcmlh YmxlCiMgICAgJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kCiMgUmVzdWx0 IGlzIGF2YWlsYWJsZSBpbiB0aGUgdmFyaWFibGUKIyAgICAkc2hhcmVkbGli X2Zyb21fbGlua2xpYl9yZXN1bHQKZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1w bGliX2ZhbGxiYWNrICgpCnsKICAkb3B0X2RlYnVnCiAgaWYgZnVuY19jeWdt aW5nX2dudV9pbXBsaWJfcCAiJDEiIDsgdGhlbgogICAgIyBiaW51dGlscyBp bXBvcnQgbGlicmFyeQogICAgc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1 bHQ9YGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFja19jb3Jl ICcuaWRhdGEkNycgIiQxImAKICBlbGlmIGZ1bmNfY3lnbWluZ19tc19pbXBs aWJfcCAiJDEiIDsgdGhlbgogICAgIyBtcy1nZW5lcmF0ZWQgaW1wb3J0IGxp YnJhcnkKICAgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWBmdW5j X2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2tfY29yZSAnLmlkYXRh JDYnICIkMSJgCiAgZWxzZQogICAgIyB1bmtub3duCiAgICBzaGFyZWRsaWJf ZnJvbV9saW5rbGliX3Jlc3VsdD0iIgogIGZpCn0KCgojIGZ1bmNfZXh0cmFj dF9hbl9hcmNoaXZlIGRpciBvbGRsaWIKZnVuY19leHRyYWN0X2FuX2FyY2hp dmUgKCkKewogICAgJG9wdF9kZWJ1ZwogICAgZl9leF9hbl9hcl9kaXI9IiQx Ijsgc2hpZnQKICAgIGZfZXhfYW5fYXJfb2xkbGliPSIkMSIKICAgIGlmIHRl c3QgIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iID0geWVzOyB0aGVu CiAgICAgIGxvY2tmaWxlPSRmX2V4X2FuX2FyX29sZGxpYi5sb2NrCiAgICAg IHVudGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxvY2tm aWxlIiAyPi9kZXYvbnVsbDsgZG8KCWZ1bmNfZWNobyAiV2FpdGluZyBmb3Ig JGxvY2tmaWxlIHRvIGJlIHJlbW92ZWQiCglzbGVlcCAyCiAgICAgIGRvbmUK ICAgIGZpCiAgICBmdW5jX3Nob3dfZXZhbCAiKGNkIFwkZl9leF9hbl9hcl9k aXIgJiYgJEFSIHggXCJcJGZfZXhfYW5fYXJfb2xkbGliXCIpIiBcCgkJICAg J3N0YXQ9JD87IHJtIC1mICIkbG9ja2ZpbGUiOyBleGl0ICRzdGF0JwogICAg aWYgdGVzdCAiJGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbiIgPSB5ZXM7 IHRoZW4KICAgICAgJG9wdF9kcnlfcnVuIHx8IHJtIC1mICIkbG9ja2ZpbGUi CiAgICBmaQogICAgaWYgKCRBUiB0ICIkZl9leF9hbl9hcl9vbGRsaWIiIHwg c29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KICAgICA6 CiAgICBlbHNlCiAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9iamVjdCBuYW1l IGNvbmZsaWN0cyBpbiBhcmNoaXZlOiAkZl9leF9hbl9hcl9kaXIvJGZfZXhf YW5fYXJfb2xkbGliIgogICAgZmkKfQoKCiMgZnVuY19leHRyYWN0X2FyY2hp dmVzIGdlbnRvcCBvbGRsaWIgLi4uCmZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAo KQp7CiAgICAkb3B0X2RlYnVnCiAgICBteV9nZW50b3A9IiQxIjsgc2hpZnQK ICAgIG15X29sZGxpYnM9JHsxKyIkQCJ9CiAgICBteV9vbGRvYmpzPSIiCiAg ICBteV94bGliPSIiCiAgICBteV94YWJzPSIiCiAgICBteV94ZGlyPSIiCgog ICAgZm9yIG15X3hsaWIgaW4gJG15X29sZGxpYnM7IGRvCiAgICAgICMgRXh0 cmFjdCB0aGUgb2JqZWN0cy4KICAgICAgY2FzZSAkbXlfeGxpYiBpbgoJW1xc L10qIHwgW0EtWmEtel06W1xcL10qKSBteV94YWJzPSIkbXlfeGxpYiIgOzsK CSopIG15X3hhYnM9YHB3ZGAiLyRteV94bGliIiA7OwogICAgICBlc2FjCiAg ICAgIGZ1bmNfYmFzZW5hbWUgIiRteV94bGliIgogICAgICBteV94bGliPSIk ZnVuY19iYXNlbmFtZV9yZXN1bHQiCiAgICAgIG15X3hsaWJfdT0kbXlfeGxp YgogICAgICB3aGlsZSA6OyBkbwogICAgICAgIGNhc2UgIiAkZXh0cmFjdGVk X2FyY2hpdmVzICIgaW4KCSoiICRteV94bGliX3UgIiopCgkgIGZ1bmNfYXJp dGggJGV4dHJhY3RlZF9zZXJpYWwgKyAxCgkgIGV4dHJhY3RlZF9zZXJpYWw9 JGZ1bmNfYXJpdGhfcmVzdWx0CgkgIG15X3hsaWJfdT1sdCRleHRyYWN0ZWRf c2VyaWFsLSRteV94bGliIDs7CgkqKSBicmVhayA7OwoJZXNhYwogICAgICBk b25lCiAgICAgIGV4dHJhY3RlZF9hcmNoaXZlcz0iJGV4dHJhY3RlZF9hcmNo aXZlcyAkbXlfeGxpYl91IgogICAgICBteV94ZGlyPSIkbXlfZ2VudG9wLyRt eV94bGliX3UiCgogICAgICBmdW5jX21rZGlyX3AgIiRteV94ZGlyIgoKICAg ICAgY2FzZSAkaG9zdCBpbgogICAgICAqLWRhcndpbiopCglmdW5jX3ZlcmJv c2UgIkV4dHJhY3RpbmcgJG15X3hhYnMiCgkjIERvIG5vdCBib3RoZXIgZG9p bmcgYW55dGhpbmcgaWYganVzdCBhIGRyeSBydW4KCSRvcHRfZHJ5X3J1biB8 fCB7CgkgIGRhcndpbl9vcmlnX2Rpcj1gcHdkYAoJICBjZCAkbXlfeGRpciB8 fCBleGl0ICQ/CgkgIGRhcndpbl9hcmNoaXZlPSRteV94YWJzCgkgIGRhcndp bl9jdXJkaXI9YHB3ZGAKCSAgZGFyd2luX2Jhc2VfYXJjaGl2ZT1gYmFzZW5h bWUgIiRkYXJ3aW5fYXJjaGl2ZSJgCgkgIGRhcndpbl9hcmNoZXM9YCRMSVBP IC1pbmZvICIkZGFyd2luX2FyY2hpdmUiIDI+L2Rldi9udWxsIHwgJEdSRVAg QXJjaGl0ZWN0dXJlcyAyPi9kZXYvbnVsbCB8fCB0cnVlYAoJICBpZiB0ZXN0 IC1uICIkZGFyd2luX2FyY2hlcyI7IHRoZW4KCSAgICBkYXJ3aW5fYXJjaGVz PWAkRUNITyAiJGRhcndpbl9hcmNoZXMiIHwgJFNFRCAtZSAncy8uKmFyZTov LydgCgkgICAgZGFyd2luX2FyY2g9CgkgICAgZnVuY192ZXJib3NlICIkZGFy d2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAk ZGFyd2luX2FyY2hlcyIKCSAgICBmb3IgZGFyd2luX2FyY2ggaW4gICRkYXJ3 aW5fYXJjaGVzIDsgZG8KCSAgICAgIGZ1bmNfbWtkaXJfcCAidW5mYXQtJCQv JHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKCSAgICAg ICRMSVBPIC10aGluICRkYXJ3aW5fYXJjaCAtb3V0cHV0ICJ1bmZhdC0kJC8k e2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2lu X2Jhc2VfYXJjaGl2ZX0iICIke2Rhcndpbl9hcmNoaXZlfSIKCSAgICAgIGNk ICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2Fy Y2h9IgoJICAgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgImBwd2RgIiAi JHtkYXJ3aW5fYmFzZV9hcmNoaXZlfSIKCSAgICAgIGNkICIkZGFyd2luX2N1 cmRpciIKCSAgICAgICRSTSAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNo aXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgoJ ICAgIGRvbmUgIyAkZGFyd2luX2FyY2hlcwogICAgICAgICAgICAjIyBPa2F5 IG5vdyB3ZSd2ZSBhIGJ1bmNoIG9mIHRoaW4gb2JqZWN0cywgZ290dGEgZmF0 dGVuIHRoZW0gdXAgOikKCSAgICBkYXJ3aW5fZmlsZWxpc3Q9YGZpbmQgdW5m YXQtJCQgLXR5cGUgZiAtbmFtZSBcKi5vIC1wcmludCAtbyAtbmFtZSBcKi5s byAtcHJpbnQgfCAkU0VEIC1lICIkYmFzZW5hbWUiIHwgc29ydCAtdWAKCSAg ICBkYXJ3aW5fZmlsZT0KCSAgICBkYXJ3aW5fZmlsZXM9CgkgICAgZm9yIGRh cndpbl9maWxlIGluICRkYXJ3aW5fZmlsZWxpc3Q7IGRvCgkgICAgICBkYXJ3 aW5fZmlsZXM9YGZpbmQgdW5mYXQtJCQgLW5hbWUgJGRhcndpbl9maWxlIC1w cmludCB8IHNvcnQgfCAkTkwyU1BgCgkgICAgICAkTElQTyAtY3JlYXRlIC1v dXRwdXQgIiRkYXJ3aW5fZmlsZSIgJGRhcndpbl9maWxlcwoJICAgIGRvbmUg IyAkZGFyd2luX2ZpbGVsaXN0CgkgICAgJFJNIC1yZiB1bmZhdC0kJAoJICAg IGNkICIkZGFyd2luX29yaWdfZGlyIgoJICBlbHNlCgkgICAgY2QgJGRhcndp bl9vcmlnX2RpcgoJICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlf eGRpciIgIiRteV94YWJzIgoJICBmaSAjICRkYXJ3aW5fYXJjaGVzCgl9ICMg ISRvcHRfZHJ5X3J1bgoJOzsKICAgICAgKikKICAgICAgICBmdW5jX2V4dHJh Y3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKCTs7CiAgICAg IGVzYWMKICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRt eV94ZGlyIC1uYW1lIFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxv IC1wcmludCB8IHNvcnQgfCAkTkwyU1BgCiAgICBkb25lCgogICAgZnVuY19l eHRyYWN0X2FyY2hpdmVzX3Jlc3VsdD0iJG15X29sZG9ianMiCn0KCgojIGZ1 bmNfZW1pdF93cmFwcGVyIFthcmc9bm9dCiMKIyBFbWl0IGEgbGlidG9vbCB3 cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCiMgRG9uJ3QgZGlyZWN0bHkgb3Bl biBhIGZpbGUgYmVjYXVzZSB3ZSBtYXkgd2FudCB0bwojIGluY29ycG9yYXRl IHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3CiMg d3JhcHBlciBleGVjdXRhYmxlLiAgTXVzdCBPTkxZIGJlIGNhbGxlZCBmcm9t IHdpdGhpbgojIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UgaXQgZGVwZW5kcyBv biBhIG51bWJlciBvZiB2YXJpYWJsZXMKIyBzZXQgdGhlcmVpbi4KIwojIEFS RyBpcyB0aGUgdmFsdWUgdGhhdCB0aGUgV1JBUFBFUl9TQ1JJUFRfQkVMT05H U19JTl9PQkpESVIKIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAneWVzJywg dGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKIyB3aWxsIGFzc3VtZSB0aGF0IHRo ZSBkaXJlY3RvcnkgaW4gd2hpY2ggaXQgaXMgc3RvcmVkIGlzCiMgdGhlICRv YmpkaXIgZGlyZWN0b3J5LiAgVGhpcyBpcyBhIGN5Z3dpbi9taW5ndy1zcGVj aWZpYwojIGJlaGF2aW9yLgpmdW5jX2VtaXRfd3JhcHBlciAoKQp7CglmdW5j X2VtaXRfd3JhcHBlcl9hcmcxPSR7MS1ub30KCgkkRUNITyAiXAojISAkU0hF TEwKCiMgJG91dHB1dCAtIHRlbXBvcmFyeSB3cmFwcGVyIHNjcmlwdCBmb3Ig JG9iamRpci8kb3V0cHV0bmFtZQojIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAo R05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KIwojIFRoZSAkb3V0 cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVkIHVudGls IGFsbCB0aGUgbGlidG9vbAojIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMg b24gYXJlIGluc3RhbGxlZC4KIwojIFRoaXMgd3JhcHBlciBzY3JpcHQgc2hv dWxkIG5ldmVyIGJlIG1vdmVkIG91dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5 LgojIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4K CiMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBx dW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKIyBtZXRhY2hhcmFjdGVycyB0 aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3Ry aW5ncy4Kc2VkX3F1b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0JwoKIyBC ZSBCb3VybmUgY29tcGF0aWJsZQppZiB0ZXN0IC1uIFwiXCR7WlNIX1ZFUlNJ T04rc2V0fVwiICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KICBlbXVsYXRlIHNoCiAgTlVMTENNRD06CiAgIyBac2ggMy54IGFuZCA0 LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gXCR7MStcIlwkQFwifSwg d2hpY2gKICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUg dGhpcyBmZWF0dXJlLgogIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJc JEBcIicKICBzZXRvcHQgTk9fR0xPQl9TVUJTVAplbHNlCiAgY2FzZSBcYChz ZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4 OzsgZXNhYwpmaQpCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZvciBU cnU2NApEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNo CgojIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0 YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAojIGlmIENEUEFUSCBpcyBzZXQu Cih1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBB VEgKCnJlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKCiMgVGhp cyBlbnZpcm9ubWVudCB2YXJpYWJsZSBkZXRlcm1pbmVzIG91ciBvcGVyYXRp b24gbW9kZS4KaWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2ljXCIg PSBcIiRtYWdpY1wiOyB0aGVuCiAgIyBpbnN0YWxsIG1vZGUgbmVlZHMgdGhl IGZvbGxvd2luZyB2YXJpYWJsZXM6CiAgZ2VuZXJhdGVkX2J5X2xpYnRvb2xf dmVyc2lvbj0nJG1hY3JvX3ZlcnNpb24nCiAgbm90aW5zdF9kZXBsaWJzPSck bm90aW5zdF9kZXBsaWJzJwplbHNlCiAgIyBXaGVuIHdlIGFyZSBzb3VyY2Vk IGluIGV4ZWN1dGUgbW9kZSwgXCRmaWxlIGFuZCBcJEVDSE8gYXJlIGFscmVh ZHkgc2V0LgogIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wi ICE9IFwiJG1hZ2ljXCI7IHRoZW4KICAgIGZpbGU9XCJcJDBcIiIKCiAgICBx RUNITz1gJEVDSE8gIiRFQ0hPIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3Qi YAogICAgJEVDSE8gIlwKCiMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hl biB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KZnVuY19m YWxsYmFja19lY2hvICgpCnsKICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgpc JDEKX0xURUNIT19FT0YnCn0KICAgIEVDSE89XCIkcUVDSE9cIgogIGZpCgoj IFZlcnkgYmFzaWMgb3B0aW9uIHBhcnNpbmcuIFRoZXNlIG9wdGlvbnMgYXJl IChhKSBzcGVjaWZpYyB0bwojIHRoZSBsaWJ0b29sIHdyYXBwZXIsIChiKSBh cmUgaWRlbnRpY2FsIGJldHdlZW4gdGhlIHdyYXBwZXIKIyAvc2NyaXB0LyBh bmQgdGhlIHdyYXBwZXIgL2V4ZWN1dGFibGUvIHdoaWNoIGlzIHVzZWQgb25s eSBvbgojIHdpbmRvd3MgcGxhdGZvcm1zLCBhbmQgKGMpIGFsbCBiZWdpbiB3 aXRoIHRoZSBzdHJpbmcgIi0tbHQtIgojIChhcHBsaWNhdGlvbiBwcm9ncmFt cyBhcmUgdW5saWtlbHkgdG8gaGF2ZSBvcHRpb25zIHdoaWNoIG1hdGNoCiMg dGhpcyBwYXR0ZXJuKS4KIwojIFRoZXJlIGFyZSBvbmx5IHR3byBzdXBwb3J0 ZWQgb3B0aW9uczogLS1sdC1kZWJ1ZyBhbmQKIyAtLWx0LWR1bXAtc2NyaXB0 LiBUaGVyZSBpcywgZGVsaWJlcmF0ZWx5LCBubyAtLWx0LWhlbHAuCiMKIyBU aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhpcyBwYXJzaW5nIGZ1bmN0aW9uIHNo b3VsZCBiZSB0aGUKIyBzY3JpcHQncyAkMCB2YWx1ZSwgZm9sbG93ZWQgYnkg IiRAIi4KbHRfb3B0aW9uX2RlYnVnPQpmdW5jX3BhcnNlX2x0X29wdGlvbnMg KCkKewogIGx0X3NjcmlwdF9hcmcwPVwkMAogIHNoaWZ0CiAgZm9yIGx0X29w dAogIGRvCiAgICBjYXNlIFwiXCRsdF9vcHRcIiBpbgogICAgLS1sdC1kZWJ1 ZykgbHRfb3B0aW9uX2RlYnVnPTEgOzsKICAgIC0tbHQtZHVtcC1zY3JpcHQp CiAgICAgICAgbHRfZHVtcF9EPVxgXCRFQ0hPIFwiWFwkbHRfc2NyaXB0X2Fy ZzBcIiB8ICRTRUQgLWUgJ3MvXlgvLycgLWUgJ3MlL1teL10qJCUlJ1xgCiAg ICAgICAgdGVzdCBcIlhcJGx0X2R1bXBfRFwiID0gXCJYXCRsdF9zY3JpcHRf YXJnMFwiICYmIGx0X2R1bXBfRD0uCiAgICAgICAgbHRfZHVtcF9GPVxgXCRF Q0hPIFwiWFwkbHRfc2NyaXB0X2FyZzBcIiB8ICRTRUQgLWUgJ3MvXlgvLycg LWUgJ3MlXi4qLyUlJ1xgCiAgICAgICAgY2F0IFwiXCRsdF9kdW1wX0QvXCRs dF9kdW1wX0ZcIgogICAgICAgIGV4aXQgMAogICAgICA7OwogICAgLS1sdC0q KQogICAgICAgIFwkRUNITyBcIlVucmVjb2duaXplZCAtLWx0LSBvcHRpb246 ICdcJGx0X29wdCdcIiAxPiYyCiAgICAgICAgZXhpdCAxCiAgICAgIDs7CiAg ICBlc2FjCiAgZG9uZQoKICAjIFByaW50IHRoZSBkZWJ1ZyBiYW5uZXIgaW1t ZWRpYXRlbHk6CiAgaWYgdGVzdCAtbiBcIlwkbHRfb3B0aW9uX2RlYnVnXCI7 IHRoZW4KICAgIGVjaG8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtM SU5FTk99OiBsaWJ0b29sIHdyYXBwZXIgKEdOVSAkUEFDS0FHRSRUSU1FU1RB TVApICRWRVJTSU9OXCIgMT4mMgogIGZpCn0KCiMgVXNlZCB3aGVuIC0tbHQt ZGVidWcuIFByaW50cyBpdHMgYXJndW1lbnRzIHRvIHN0ZG91dAojIChyZWRp cmVjdGlvbiBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlcikK ZnVuY19sdF9kdW1wX2FyZ3MgKCkKewogIGx0X2R1bXBfYXJnc19OPTE7CiAg Zm9yIGx0X2FyZwogIGRvCiAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7 b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2W1wkbHRfZHVtcF9hcmdzX05d OiBcJGx0X2FyZ1wiCiAgICBsdF9kdW1wX2FyZ3NfTj1cYGV4cHIgXCRsdF9k dW1wX2FyZ3NfTiArIDFcYAogIGRvbmUKfQoKIyBDb3JlIGZ1bmN0aW9uIGZv ciBsYXVuY2hpbmcgdGhlIHRhcmdldCBhcHBsaWNhdGlvbgpmdW5jX2V4ZWNf cHJvZ3JhbV9jb3JlICgpCnsKIgogIGNhc2UgJGhvc3QgaW4KICAjIEJhY2tz bGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdpbmRvd3MK ICAqLSotbWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2MqKQogICAgJEVDSE8g IlwKICAgICAgaWYgdGVzdCAtbiBcIlwkbHRfb3B0aW9uX2RlYnVnXCI7IHRo ZW4KICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpc JHtMSU5FTk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXJcXFxcXCRwcm9ncmFt XCIgMT4mMgogICAgICAgIGZ1bmNfbHRfZHVtcF9hcmdzIFwkezErXCJcJEBc In0gMT4mMgogICAgICBmaQogICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwk cHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KIgogICAgOzsKCiAgKikKICAgICRF Q0hPICJcCiAgICAgIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wi OyB0aGVuCiAgICAgICAgXCRFQ0hPIFwiJHtvdXRwdXRuYW1lfToke291dHB1 dH06XCR7TElORU5PfTogbmV3YXJndlswXTogXCRwcm9nZGlyL1wkcHJvZ3Jh bVwiIDE+JjIKICAgICAgICBmdW5jX2x0X2R1bXBfYXJncyBcJHsxK1wiXCRA XCJ9IDE+JjIKICAgICAgZmkKICAgICAgZXhlYyBcIlwkcHJvZ2Rpci9cJHBy b2dyYW1cIiBcJHsxK1wiXCRAXCJ9CiIKICAgIDs7CiAgZXNhYwogICRFQ0hP ICJcCiAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9ncmFt IFwkKlwiIDE+JjIKICAgICAgZXhpdCAxCn0KCiMgQSBmdW5jdGlvbiB0byBl bmNhcHN1bGF0ZSBsYXVuY2hpbmcgdGhlIHRhcmdldCBhcHBsaWNhdGlvbgoj IFN0cmlwcyBvcHRpb25zIGluIHRoZSAtLWx0LSogbmFtZXNwYWNlIGZyb20g XCRAIGFuZAojIGxhdW5jaGVzIHRhcmdldCBhcHBsaWNhdGlvbiB3aXRoIHRo ZSByZW1haW5pbmcgYXJndW1lbnRzLgpmdW5jX2V4ZWNfcHJvZ3JhbSAoKQp7 CiAgZm9yIGx0X3dyX2FyZwogIGRvCiAgICBjYXNlIFwkbHRfd3JfYXJnIGlu CiAgICAtLWx0LSopIDs7CiAgICAqKSBzZXQgeCBcIlwkQFwiIFwiXCRsdF93 cl9hcmdcIjsgc2hpZnQ7OwogICAgZXNhYwogICAgc2hpZnQKICBkb25lCiAg ZnVuY19leGVjX3Byb2dyYW1fY29yZSBcJHsxK1wiXCRAXCJ9Cn0KCiAgIyBQ YXJzZSBvcHRpb25zCiAgZnVuY19wYXJzZV9sdF9vcHRpb25zIFwiXCQwXCIg XCR7MStcIlwkQFwifQoKICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0IHRo aXMgc2NyaXB0IGxpdmVzIGluLgogIHRoaXNkaXI9XGBcJEVDSE8gXCJcJGZp bGVcIiB8ICRTRUQgJ3MlL1teL10qJCUlJ1xgCiAgdGVzdCBcInhcJHRoaXNk aXJcIiA9IFwieFwkZmlsZVwiICYmIHRoaXNkaXI9LgoKICAjIEZvbGxvdyBz eW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rp ci4KICBmaWxlPVxgbHMgLWxkIFwiXCRmaWxlXCIgfCAkU0VEIC1uICdzLy4q LT4gLy9wJ1xgCiAgd2hpbGUgdGVzdCAtbiBcIlwkZmlsZVwiOyBkbwogICAg ZGVzdGRpcj1cYFwkRUNITyBcIlwkZmlsZVwiIHwgJFNFRCAncyUvW14vXSpc JCUlJ1xgCgogICAgIyBJZiB0aGVyZSB3YXMgYSBkaXJlY3RvcnkgY29tcG9u ZW50LCB0aGVuIGNoYW5nZSB0aGlzZGlyLgogICAgaWYgdGVzdCBcInhcJGRl c3RkaXJcIiAhPSBcInhcJGZpbGVcIjsgdGhlbgogICAgICBjYXNlIFwiXCRk ZXN0ZGlyXCIgaW4KICAgICAgW1xcXFwvXSogfCBbQS1aYS16XTpbXFxcXC9d KikgdGhpc2Rpcj1cIlwkZGVzdGRpclwiIDs7CiAgICAgICopIHRoaXNkaXI9 XCJcJHRoaXNkaXIvXCRkZXN0ZGlyXCIgOzsKICAgICAgZXNhYwogICAgZmkK CiAgICBmaWxlPVxgXCRFQ0hPIFwiXCRmaWxlXCIgfCAkU0VEICdzJV4uKi8l JSdcYAogICAgZmlsZT1cYGxzIC1sZCBcIlwkdGhpc2Rpci9cJGZpbGVcIiB8 ICRTRUQgLW4gJ3MvLiotPiAvL3AnXGAKICBkb25lCgogICMgVXN1YWxseSAn bm8nLCBleGNlcHQgb24gY3lnd2luL21pbmd3IHdoZW4gZW1iZWRkZWQgaW50 bwogICMgdGhlIGN3cmFwcGVyLgogIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1Nf SU5fT0JKRElSPSRmdW5jX2VtaXRfd3JhcHBlcl9hcmcxCiAgaWYgdGVzdCBc IlwkV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVJcIiA9IFwieWVz XCI7IHRoZW4KICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicKICAgIGlmIHRl c3QgXCJcJHRoaXNkaXJcIiA9IFwiLlwiOyB0aGVuCiAgICAgIHRoaXNkaXI9 XGBwd2RcYAogICAgZmkKICAgICMgcmVtb3ZlIC5saWJzIGZyb20gdGhpc2Rp cgogICAgY2FzZSBcIlwkdGhpc2RpclwiIGluCiAgICAqW1xcXFwvXSRvYmpk aXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwiXCR0aGlzZGlyXCIgfCAkU0VEICdz JVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsKICAgICRvYmpkaXIgKSAgIHRo aXNkaXI9LiA7OwogICAgZXNhYwogIGZpCgogICMgVHJ5IHRvIGdldCB0aGUg YWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUuCiAgYWJzZGlyPVxgY2QgXCJcJHRo aXNkaXJcIiAmJiBwd2RcYAogIHRlc3QgLW4gXCJcJGFic2RpclwiICYmIHRo aXNkaXI9XCJcJGFic2RpclwiCiIKCglpZiB0ZXN0ICIkZmFzdF9pbnN0YWxs IiA9IHllczsgdGhlbgoJICAkRUNITyAiXAogIHByb2dyYW09bHQtJyRvdXRw dXRuYW1lJyRleGVleHQKICBwcm9nZGlyPVwiXCR0aGlzZGlyLyRvYmpkaXJc IgoKICBpZiB0ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgfHwK ICAgICB7IGZpbGU9XGBscyAtMWR0IFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwi IFwiXCRwcm9nZGlyLy4uL1wkcHJvZ3JhbVwiIDI+L2Rldi9udWxsIHwgJHtT RUR9IDFxXGA7IFxcCiAgICAgICB0ZXN0IFwiWFwkZmlsZVwiICE9IFwiWFwk cHJvZ2Rpci9cJHByb2dyYW1cIjsgfTsgdGhlbgoKICAgIGZpbGU9XCJcJFwk LVwkcHJvZ3JhbVwiCgogICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGlyXCI7 IHRoZW4KICAgICAgJE1LRElSIFwiXCRwcm9nZGlyXCIKICAgIGVsc2UKICAg ICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCiAgICBmaSIKCgkgICRFQ0hP ICJcCgogICAgIyByZWxpbmsgZXhlY3V0YWJsZSBpZiBuZWNlc3NhcnkKICAg IGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21tYW5kXCI7IHRoZW4KICAgICAg aWYgcmVsaW5rX2NvbW1hbmRfb3V0cHV0PVxgZXZhbCBcJHJlbGlua19jb21t YW5kIDI+JjFcYDsgdGhlbiA6CiAgICAgIGVsc2UKCSRFQ0hPIFwiXCRyZWxp bmtfY29tbWFuZF9vdXRwdXRcIiA+JjIKCSRSTSBcIlwkcHJvZ2Rpci9cJGZp bGVcIgoJZXhpdCAxCiAgICAgIGZpCiAgICBmaQoKICAgICRNViBcIlwkcHJv Z2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAyPi9kZXYv bnVsbCB8fAogICAgeyAkUk0gXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7CiAg ICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHBy b2dyYW1cIjsgfQogICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCiAgZmki CgllbHNlCgkgICRFQ0hPICJcCiAgcHJvZ3JhbT0nJG91dHB1dG5hbWUnCiAg cHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKIgoJZmkKCgkkRUNITyAi XAoKICBpZiB0ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB0aGVu IgoKCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8u CgkjCgkjIEZpeCB0aGUgRExMIHNlYXJjaHBhdGggaWYgd2UgbmVlZCB0by4g IERvIHRoaXMgYmVmb3JlIHByZXBlbmRpbmcKCSMgdG8gc2hsaWJwYXRoLCBi ZWNhdXNlIG9uIFdpbmRvd3MsIGJvdGggYXJlIFBBVEggYW5kIHVuaW5zdGFs bGVkCgkjIGxpYnJhcmllcyBtdXN0IGNvbWUgZmlyc3QuCglpZiB0ZXN0IC1u ICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KCSAgJEVDSE8gIlwKICAgICMgQWRk IHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0 YWJsZSBQQVRICiAgICBQQVRIPSRkbGxzZWFyY2hwYXRoOlwkUEFUSAoiCglm aQoKCSMgRXhwb3J0IG91ciBzaGxpYnBhdGhfdmFyIGlmIHdlIGhhdmUgb25l LgoJaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5 ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0 ZW1wX3JwYXRoIjsgdGhlbgoJICAkRUNITyAiXAogICAgIyBBZGQgb3VyIG93 biBsaWJyYXJ5IHBhdGggdG8gJHNobGlicGF0aF92YXIKICAgICRzaGxpYnBh dGhfdmFyPVwiJHRlbXBfcnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIKCiAgICAj IFNvbWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1pbmF0 ZWQgJHNobGlicGF0aF92YXIKICAgICMgVGhlIHNlY29uZCBjb2xvbiBpcyBh IHdvcmthcm91bmQgZm9yIGEgYnVnIGluIEJlT1MgUjQgc2VkCiAgICAkc2hs aWJwYXRoX3Zhcj1cYFwkRUNITyBcIlwkJHNobGlicGF0aF92YXJcIiB8ICRT RUQgJ3MvOjoqXCQvLydcYAoKICAgIGV4cG9ydCAkc2hsaWJwYXRoX3Zhcgoi CglmaQoKCSRFQ0hPICJcCiAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1 dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCiAgICAgICMgUnVuIHRo ZSBhY3R1YWwgcHJvZ3JhbSB3aXRoIG91ciBhcmd1bWVudHMuCiAgICAgIGZ1 bmNfZXhlY19wcm9ncmFtIFwkezErXCJcJEBcIn0KICAgIGZpCiAgZWxzZQog ICAgIyBUaGUgcHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgogICAgXCRFQ0hPIFwi XCQwOiBlcnJvcjogXFxcYFwkcHJvZ2Rpci9cJHByb2dyYW0nIGRvZXMgbm90 IGV4aXN0XCIgMT4mMgogICAgXCRFQ0hPIFwiVGhpcyBzY3JpcHQgaXMganVz dCBhIHdyYXBwZXIgZm9yIFwkcHJvZ3JhbS5cIiAxPiYyCiAgICBcJEVDSE8g XCJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5m b3JtYXRpb24uXCIgMT4mMgogICAgZXhpdCAxCiAgZmkKZmlcCiIKfQoKCiMg ZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwojIGVtaXQgdGhlIHNvdXJjZSBj b2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBvbiBzdGRvdXQKIyBNdXN0 IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluIGZ1bmNfbW9kZV9saW5rIGJl Y2F1c2UKIyBpdCBkZXBlbmRzIG9uIGEgbnVtYmVyIG9mIHZhcmlhYmxlIHNl dCB0aGVyZWluLgpmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCnsKCWNh dCA8PEVPRgoKLyogJGN3cmFwcGVyc291cmNlIC0gdGVtcG9yYXJ5IHdyYXBw ZXIgZXhlY3V0YWJsZSBmb3IgJG9iamRpci8kb3V0cHV0bmFtZQogICBHZW5l cmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRW RVJTSU9OCgogICBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJl Y3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKICAgbGlicmFy aWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBhcmUgaW5zdGFsbGVkLgoKICAgVGhp cyB3cmFwcGVyIGV4ZWN1dGFibGUgc2hvdWxkIG5ldmVyIGJlIG1vdmVkIG91 dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgogICBJZiBpdCBpcywgaXQgd2ls bCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCiovCkVPRgoJICAgIGNhdCA8PCJF T0YiCiNpZmRlZiBfTVNDX1ZFUgojIGRlZmluZSBfQ1JUX1NFQ1VSRV9OT19E RVBSRUNBVEUgMQojZW5kaWYKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRl IDxzdGRsaWIuaD4KI2lmZGVmIF9NU0NfVkVSCiMgaW5jbHVkZSA8ZGlyZWN0 Lmg+CiMgaW5jbHVkZSA8cHJvY2Vzcy5oPgojIGluY2x1ZGUgPGlvLmg+CiNl bHNlCiMgaW5jbHVkZSA8dW5pc3RkLmg+CiMgaW5jbHVkZSA8c3RkaW50Lmg+ CiMgaWZkZWYgX19DWUdXSU5fXwojICBpbmNsdWRlIDxpby5oPgojIGVuZGlm CiNlbmRpZgojaW5jbHVkZSA8bWFsbG9jLmg+CiNpbmNsdWRlIDxzdGRhcmcu aD4KI2luY2x1ZGUgPGFzc2VydC5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNp bmNsdWRlIDxjdHlwZS5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUg PGZjbnRsLmg+CiNpbmNsdWRlIDxzeXMvc3RhdC5oPgoKLyogZGVjbGFyYXRp b25zIG9mIG5vbi1BTlNJIGZ1bmN0aW9ucyAqLwojaWYgZGVmaW5lZChfX01J TkdXMzJfXykKIyBpZmRlZiBfX1NUUklDVF9BTlNJX18KaW50IF9wdXRlbnYg KGNvbnN0IGNoYXIgKik7CiMgZW5kaWYKI2VsaWYgZGVmaW5lZChfX0NZR1dJ Tl9fKQojIGlmZGVmIF9fU1RSSUNUX0FOU0lfXwpjaGFyICpyZWFscGF0aCAo Y29uc3QgY2hhciAqLCBjaGFyICopOwppbnQgcHV0ZW52IChjaGFyICopOwpp bnQgc2V0ZW52IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsK IyBlbmRpZgovKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4u LiAqLwojZW5kaWYKCi8qIHBvcnRhYmlsaXR5IGRlZmluZXMsIGV4Y2x1ZGlu ZyBwYXRoIGhhbmRsaW5nIG1hY3JvcyAqLwojaWYgZGVmaW5lZChfTVNDX1ZF UikKIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQojIGRlZmluZSBzdGF0ICAg IF9zdGF0CiMgZGVmaW5lIGNobW9kICAgX2NobW9kCiMgZGVmaW5lIGdldGN3 ZCAgX2dldGN3ZAojIGRlZmluZSBwdXRlbnYgIF9wdXRlbnYKIyBkZWZpbmUg U19JWFVTUiBfU19JRVhFQwojIGlmbmRlZiBfSU5UUFRSX1RfREVGSU5FRAoj ICBkZWZpbmUgX0lOVFBUUl9UX0RFRklORUQKIyAgZGVmaW5lIGludHB0cl90 IGludAojIGVuZGlmCiNlbGlmIGRlZmluZWQoX19NSU5HVzMyX18pCiMgZGVm aW5lIHNldG1vZGUgX3NldG1vZGUKIyBkZWZpbmUgc3RhdCAgICBfc3RhdAoj IGRlZmluZSBjaG1vZCAgIF9jaG1vZAojIGRlZmluZSBnZXRjd2QgIF9nZXRj d2QKIyBkZWZpbmUgcHV0ZW52ICBfcHV0ZW52CiNlbGlmIGRlZmluZWQoX19D WUdXSU5fXykKIyBkZWZpbmUgSEFWRV9TRVRFTlYKIyBkZWZpbmUgRk9QRU5f V0IgIndiIgovKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4u LiAqLwojZW5kaWYKCiNpZiBkZWZpbmVkKFBBVEhfTUFYKQojIGRlZmluZSBM VF9QQVRITUFYIFBBVEhfTUFYCiNlbGlmIGRlZmluZWQoTUFYUEFUSExFTikK IyBkZWZpbmUgTFRfUEFUSE1BWCBNQVhQQVRITEVOCiNlbHNlCiMgZGVmaW5l IExUX1BBVEhNQVggMTAyNAojZW5kaWYKCiNpZm5kZWYgU19JWE9USAojIGRl ZmluZSBTX0lYT1RIIDAKI2VuZGlmCiNpZm5kZWYgU19JWEdSUAojIGRlZmlu ZSBTX0lYR1JQIDAKI2VuZGlmCgovKiBwYXRoIGhhbmRsaW5nIHBvcnRhYmls aXR5IG1hY3JvcyAqLwojaWZuZGVmIERJUl9TRVBBUkFUT1IKIyBkZWZpbmUg RElSX1NFUEFSQVRPUiAnLycKIyBkZWZpbmUgUEFUSF9TRVBBUkFUT1IgJzon CiNlbmRpZgoKI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19N U0RPU19fKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pIHx8IFwKICBkZWZpbmVk IChfX09TMl9fKQojIGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RF TQojIGRlZmluZSBGT1BFTl9XQiAid2IiCiMgaWZuZGVmIERJUl9TRVBBUkFU T1JfMgojICBkZWZpbmUgRElSX1NFUEFSQVRPUl8yICdcXCcKIyBlbmRpZgoj IGlmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCiMgIGRlZmluZSBQQVRIX1NFUEFS QVRPUl8yICc7JwojIGVuZGlmCiNlbmRpZgoKI2lmbmRlZiBESVJfU0VQQVJB VE9SXzIKIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkgKChjaCkgPT0g RElSX1NFUEFSQVRPUikKI2Vsc2UgLyogRElSX1NFUEFSQVRPUl8yICovCiMg ZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpIFwKCSgoKGNoKSA9PSBESVJf U0VQQVJBVE9SKSB8fCAoKGNoKSA9PSBESVJfU0VQQVJBVE9SXzIpKQojZW5k aWYgLyogRElSX1NFUEFSQVRPUl8yICovCgojaWZuZGVmIFBBVEhfU0VQQVJB VE9SXzIKIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09 IFBBVEhfU0VQQVJBVE9SKQojZWxzZSAvKiBQQVRIX1NFUEFSQVRPUl8yICov CiMgZGVmaW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQQVRI X1NFUEFSQVRPUl8yKQojZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLwoK I2lmbmRlZiBGT1BFTl9XQgojIGRlZmluZSBGT1BFTl9XQiAidyIKI2VuZGlm CiNpZm5kZWYgX09fQklOQVJZCiMgZGVmaW5lIF9PX0JJTkFSWSAwCiNlbmRp ZgoKI2RlZmluZSBYTUFMTE9DKHR5cGUsIG51bSkgICAgICAoKHR5cGUgKikg eG1hbGxvYyAoKG51bSkgKiBzaXplb2YodHlwZSkpKQojZGVmaW5lIFhGUkVF KHN0YWxlKSBkbyB7IFwKICBpZiAoc3RhbGUpIHsgZnJlZSAoKHZvaWQgKikg c3RhbGUpOyBzdGFsZSA9IDA7IH0gXAp9IHdoaWxlICgwKQoKI2lmIGRlZmlu ZWQoTFRfREVCVUdXUkFQUEVSKQpzdGF0aWMgaW50IGx0X2RlYnVnID0gMTsK I2Vsc2UKc3RhdGljIGludCBsdF9kZWJ1ZyA9IDA7CiNlbmRpZgoKY29uc3Qg Y2hhciAqcHJvZ3JhbV9uYW1lID0gImxpYnRvb2wtd3JhcHBlciI7IC8qIGlu IGNhc2UgeHN0cmR1cCBmYWlscyAqLwoKdm9pZCAqeG1hbGxvYyAoc2l6ZV90 IG51bSk7CmNoYXIgKnhzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZyk7CmNv bnN0IGNoYXIgKmJhc2VfbmFtZSAoY29uc3QgY2hhciAqbmFtZSk7CmNoYXIg KmZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcik7CmNoYXIg KmNoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYyk7CmludCBt YWtlX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOwppbnQgY2hlY2tf ZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7CmNoYXIgKnN0cmVuZHph cCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOwp2b2lkIGx0X2RlYnVn cHJpbnRmIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hh ciAqZm10LCAuLi4pOwp2b2lkIGx0X2ZhdGFsIChjb25zdCBjaGFyICpmaWxl LCBpbnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKTsKc3RhdGlj IGNvbnN0IGNoYXIgKm5vbm51bGwgKGNvbnN0IGNoYXIgKnMpOwpzdGF0aWMg Y29uc3QgY2hhciAqbm9uZW1wdHkgKGNvbnN0IGNoYXIgKnMpOwp2b2lkIGx0 X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUp OwpjaGFyICpsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVl LCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQpOwp2b2lkIGx0X3VwZGF0 ZV9leGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFs dWUpOwp2b2lkIGx0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFt ZSwgY29uc3QgY2hhciAqdmFsdWUpOwpjaGFyICoqcHJlcGFyZV9zcGF3biAo Y2hhciAqKmFyZ3YpOwp2b2lkIGx0X2R1bXBfc2NyaXB0IChGSUxFICpmKTsK RU9GCgoJICAgIGNhdCA8PEVPRgp2b2xhdGlsZSBjb25zdCBjaGFyICogTUFH SUNfRVhFID0gIiRtYWdpY19leGUiOwpjb25zdCBjaGFyICogTElCX1BBVEhf VkFSTkFNRSA9ICIkc2hsaWJwYXRoX3ZhciI7CkVPRgoKCSAgICBpZiB0ZXN0 ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyAmJiB0ZXN0 IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgi OyB0aGVuCiAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGggIiR0ZW1w X3JwYXRoIgoJICAgICAgY2F0IDw8RU9GCmNvbnN0IGNoYXIgKiBMSUJfUEFU SF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiOwpFT0YK CSAgICBlbHNlCgkgICAgICBjYXQgPDwiRU9GIgpjb25zdCBjaGFyICogTElC X1BBVEhfVkFMVUUgICA9ICIiOwpFT0YKCSAgICBmaQoKCSAgICBpZiB0ZXN0 IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KICAgICAgICAgICAgICBmdW5j X3RvX2hvc3RfcGF0aCAiJGRsbHNlYXJjaHBhdGg6IgoJICAgICAgY2F0IDw8 RU9GCmNvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIlBBVEgiOwpj b25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0 X3BhdGhfcmVzdWx0IjsKRU9GCgkgICAgZWxzZQoJICAgICAgY2F0IDw8IkVP RiIKY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBUk5BTUUgPSAiIjsKY29uc3Qg Y2hhciAqIEVYRV9QQVRIX1ZBTFVFICAgPSAiIjsKRU9GCgkgICAgZmkKCgkg ICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KCSAgICAg IGNhdCA8PEVPRgpjb25zdCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9 ICJsdC0kb3V0cHV0bmFtZSI7IC8qIGhvcGVmdWxseSwgbm8gLmV4ZSAqLwpF T0YKCSAgICBlbHNlCgkgICAgICBjYXQgPDxFT0YKY29uc3QgY2hhciAqIFRB UkdFVF9QUk9HUkFNX05BTUUgPSAiJG91dHB1dG5hbWUiOyAvKiBob3BlZnVs bHksIG5vIC5leGUgKi8KRU9GCgkgICAgZmkKCgoJICAgIGNhdCA8PCJFT0Yi CgojZGVmaW5lIExUV1JBUFBFUl9PUFRJT05fUFJFRklYICAgICAgICAgIi0t bHQtIgoKc3RhdGljIGNvbnN0IGNoYXIgKmx0d3JhcHBlcl9vcHRpb25fcHJl Zml4ID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVg7CnN0YXRpYyBjb25zdCBj aGFyICpkdW1wc2NyaXB0X29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05f UFJFRklYICJkdW1wLXNjcmlwdCI7CnN0YXRpYyBjb25zdCBjaGFyICpkZWJ1 Z19vcHQgICAgICAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJk ZWJ1ZyI7CgppbnQKbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewog IGNoYXIgKipuZXdhcmd6OwogIGludCAgbmV3YXJnYzsKICBjaGFyICp0bXBf cGF0aHNwZWM7CiAgY2hhciAqYWN0dWFsX2N3cmFwcGVyX3BhdGg7CiAgY2hh ciAqYWN0dWFsX2N3cmFwcGVyX25hbWU7CiAgY2hhciAqdGFyZ2V0X25hbWU7 CiAgY2hhciAqbHRfYXJndl96ZXJvOwogIGludHB0cl90IHJ2YWwgPSAxMjc7 CgogIGludCBpOwoKICBwcm9ncmFtX25hbWUgPSAoY2hhciAqKSB4c3RyZHVw IChiYXNlX25hbWUgKGFyZ3ZbMF0pKTsKICBuZXdhcmd6ID0gWE1BTExPQyAo Y2hhciAqLCBhcmdjICsgMSk7CgogIC8qIHZlcnkgc2ltcGxlIGFyZyBwYXJz aW5nOyBkb24ndCB3YW50IHRvIHJlbHkgb24gZ2V0b3B0CiAgICogYWxzbywg Y29weSBhbGwgbm9uIGN3cmFwcGVyIG9wdGlvbnMgdG8gbmV3YXJneiwgZXhj ZXB0CiAgICogYXJnelswXSwgd2hpY2ggaXMgaGFuZGxlZCBkaWZmZXJlbnRs eQogICAqLwogIG5ld2FyZ2M9MDsKICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsg aSsrKQogICAgewogICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBkdW1wc2Ny aXB0X29wdCkgPT0gMCkKCXsKRU9GCgkgICAgY2FzZSAiJGhvc3QiIGluCgkg ICAgICAqbWluZ3cqIHwgKmN5Z3dpbiogKQoJCSMgbWFrZSBzdGRvdXQgdXNl ICJ1bml4IiBsaW5lIGVuZGluZ3MKCQllY2hvICIgICAgICAgICAgc2V0bW9k ZSgxLF9PX0JJTkFSWSk7IgoJCTs7CgkgICAgICBlc2FjCgoJICAgIGNhdCA8 PCJFT0YiCgkgIGx0X2R1bXBfc2NyaXB0IChzdGRvdXQpOwoJICByZXR1cm4g MDsKCX0KICAgICAgaWYgKHN0cmNtcCAoYXJndltpXSwgZGVidWdfb3B0KSA9 PSAwKQoJewogICAgICAgICAgbHRfZGVidWcgPSAxOwogICAgICAgICAgY29u dGludWU7Cgl9CiAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGx0d3JhcHBl cl9vcHRpb25fcHJlZml4KSA9PSAwKQogICAgICAgIHsKICAgICAgICAgIC8q IGhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgTFRXUkFQ UEVSX09QVElPTl9QUkVGSVgKICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0 IGl0IGlzIG5vdCBvbmUgb2YgdGhlIG9uZXMgd2Uga25vdyBhYm91dCBhbmQK ICAgICAgICAgICAgIGhhdmUgYWxyZWFkeSBkZWFsdCB3aXRoLCBhYm92ZSAo aW5sdWRpbmcgZHVtcC1zY3JpcHQpLCB0aGVuCiAgICAgICAgICAgICByZXBv cnQgYW4gZXJyb3IuIE90aGVyd2lzZSwgdGFyZ2V0cyBtaWdodCBiZWdpbiB0 byBiZWxpZXZlCiAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVz ZSBvcHRpb25zIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAogICAg ICAgICAgICAgbmFtZXNwYWNlLiBUaGUgZmlyc3QgdGltZSBhbnkgdXNlciBj b21wbGFpbnMgYWJvdXQgdGhpcywgd2UnbGwKICAgICAgICAgICAgIG5lZWQg dG8gbWFrZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCBhIGNvbmZpZ3VyZS10 aW1lIG9wdGlvbgogICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0 dGFibGUgdmFsdWUuCiAgICAgICAgICAgKi8KICAgICAgICAgIGx0X2ZhdGFs IChfX0ZJTEVfXywgX19MSU5FX18sCgkJICAgICJ1bnJlY29nbml6ZWQgJXMg b3B0aW9uOiAnJXMnIiwKICAgICAgICAgICAgICAgICAgICBsdHdyYXBwZXJf b3B0aW9uX3ByZWZpeCwgYXJndltpXSk7CiAgICAgICAgfQogICAgICAvKiBv dGhlcndpc2UgLi4uICovCiAgICAgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IHhz dHJkdXAgKGFyZ3ZbaV0pOwogICAgfQogIG5ld2FyZ3pbKytuZXdhcmdjXSA9 IE5VTEw7CgpFT0YKCSAgICBjYXQgPDxFT0YKICAvKiBUaGUgR05VIGJhbm5l ciBtdXN0IGJlIHRoZSBmaXJzdCBub24tZXJyb3IgZGVidWcgbWVzc2FnZSAq LwogIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICJsaWJ0 b29sIHdyYXBwZXIgKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9O XG4iKTsKRU9GCgkgICAgY2F0IDw8IkVPRiIKICBsdF9kZWJ1Z3ByaW50ZiAo X19GSUxFX18sIF9fTElORV9fLCAiKG1haW4pIGFyZ3ZbMF06ICVzXG4iLCBh cmd2WzBdKTsKICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9f LCAiKG1haW4pIHByb2dyYW1fbmFtZTogJXNcbiIsIHByb2dyYW1fbmFtZSk7 CgogIHRtcF9wYXRoc3BlYyA9IGZpbmRfZXhlY3V0YWJsZSAoYXJndlswXSk7 CiAgaWYgKHRtcF9wYXRoc3BlYyA9PSBOVUxMKQogICAgbHRfZmF0YWwgKF9f RklMRV9fLCBfX0xJTkVfXywgImNvdWxkbid0IGZpbmQgJXMiLCBhcmd2WzBd KTsKICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAogICAg ICAgICAgICAgICAgICAiKG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxp bmsgY2hhc2UpIGF0OiAlc1xuIiwKCQkgIHRtcF9wYXRoc3BlYyk7CgogIGFj dHVhbF9jd3JhcHBlcl9wYXRoID0gY2hhc2Vfc3ltbGlua3MgKHRtcF9wYXRo c3BlYyk7CiAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywK ICAgICAgICAgICAgICAgICAgIihtYWluKSBmb3VuZCBleGUgKGFmdGVyIHN5 bWxpbmsgY2hhc2UpIGF0OiAlc1xuIiwKCQkgIGFjdHVhbF9jd3JhcHBlcl9w YXRoKTsKICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKCiAgYWN0dWFsX2N3cmFw cGVyX25hbWUgPSB4c3RyZHVwIChiYXNlX25hbWUgKGFjdHVhbF9jd3JhcHBl cl9wYXRoKSk7CiAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfcGF0aCwg YWN0dWFsX2N3cmFwcGVyX25hbWUpOwoKICAvKiB3cmFwcGVyIG5hbWUgdHJh bnNmb3JtcyAqLwogIHN0cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVyX25hbWUs ICIuZXhlIik7CiAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAoYWN0 dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIiwgMSk7CiAgWEZSRUUgKGFjdHVh bF9jd3JhcHBlcl9uYW1lKTsKICBhY3R1YWxfY3dyYXBwZXJfbmFtZSA9IHRt cF9wYXRoc3BlYzsKICB0bXBfcGF0aHNwZWMgPSAwOwoKICAvKiB0YXJnZXRf bmFtZSB0cmFuc2Zvcm1zIC0tIHVzZSBhY3R1YWwgdGFyZ2V0IHByb2dyYW0g bmFtZTsgbWlnaHQgaGF2ZSBsdC0gcHJlZml4ICovCiAgdGFyZ2V0X25hbWUg PSB4c3RyZHVwIChiYXNlX25hbWUgKFRBUkdFVF9QUk9HUkFNX05BTUUpKTsK ICBzdHJlbmR6YXAgKHRhcmdldF9uYW1lLCAiLmV4ZSIpOwogIHRtcF9wYXRo c3BlYyA9IGx0X2V4dGVuZF9zdHIgKHRhcmdldF9uYW1lLCAiLmV4ZSIsIDEp OwogIFhGUkVFICh0YXJnZXRfbmFtZSk7CiAgdGFyZ2V0X25hbWUgPSB0bXBf cGF0aHNwZWM7CiAgdG1wX3BhdGhzcGVjID0gMDsKCiAgbHRfZGVidWdwcmlu dGYgKF9fRklMRV9fLCBfX0xJTkVfXywKCQkgICIobWFpbikgbGlidG9vbCB0 YXJnZXQgbmFtZTogJXNcbiIsCgkJICB0YXJnZXRfbmFtZSk7CkVPRgoKCSAg ICBjYXQgPDxFT0YKICBuZXdhcmd6WzBdID0KICAgIFhNQUxMT0MgKGNoYXIs IChzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSArCgkJICAgIHN0cmxl biAoIiRvYmpkaXIiKSArIDEgKyBzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9u YW1lKSArIDEpKTsKICBzdHJjcHkgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3Jh cHBlcl9wYXRoKTsKICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIkb2JqZGlyIik7 CiAgc3RyY2F0IChuZXdhcmd6WzBdLCAiLyIpOwpFT0YKCgkgICAgY2F0IDw8 IkVPRiIKICAvKiBzdG9wIGhlcmUsIGFuZCBjb3B5IHNvIHdlIGRvbid0IGhh dmUgdG8gZG8gdGhpcyB0d2ljZSAqLwogIHRtcF9wYXRoc3BlYyA9IHhzdHJk dXAgKG5ld2FyZ3pbMF0pOwoKICAvKiBkbyBOT1Qgd2FudCB0aGUgbHQtIHBy ZWZpeCBoZXJlLCBzbyB1c2UgYWN0dWFsX2N3cmFwcGVyX25hbWUgKi8KICBz dHJjYXQgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKCiAg LyogRE8gd2FudCB0aGUgbHQtIHByZWZpeCBoZXJlIGlmIGl0IGV4aXN0cywg c28gdXNlIHRhcmdldF9uYW1lICovCiAgbHRfYXJndl96ZXJvID0gbHRfZXh0 ZW5kX3N0ciAodG1wX3BhdGhzcGVjLCB0YXJnZXRfbmFtZSwgMSk7CiAgWEZS RUUgKHRtcF9wYXRoc3BlYyk7CiAgdG1wX3BhdGhzcGVjID0gTlVMTDsKRU9G CgoJICAgIGNhc2UgJGhvc3Rfb3MgaW4KCSAgICAgIG1pbmd3KikKCSAgICBj YXQgPDwiRU9GIgogIHsKICAgIGNoYXIqIHA7CiAgICB3aGlsZSAoKHAgPSBz dHJjaHIgKG5ld2FyZ3pbMF0sICdcXCcpKSAhPSBOVUxMKQogICAgICB7Cgkq cCA9ICcvJzsKICAgICAgfQogICAgd2hpbGUgKChwID0gc3RyY2hyIChsdF9h cmd2X3plcm8sICdcXCcpKSAhPSBOVUxMKQogICAgICB7CgkqcCA9ICcvJzsK ICAgICAgfQogIH0KRU9GCgkgICAgOzsKCSAgICBlc2FjCgoJICAgIGNhdCA8 PCJFT0YiCiAgWEZSRUUgKHRhcmdldF9uYW1lKTsKICBYRlJFRSAoYWN0dWFs X2N3cmFwcGVyX3BhdGgpOwogIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFt ZSk7CgogIGx0X3NldGVudiAoIkJJTl9TSCIsICJ4cGc0Iik7IC8qIGZvciBU cnU2NCAqLwogIGx0X3NldGVudiAoIkRVQUxDQVNFIiwgIjEiKTsgIC8qIGZv ciBNU0sgc2ggKi8KICAvKiBVcGRhdGUgdGhlIERMTCBzZWFyY2hwYXRoLiAg RVhFX1BBVEhfVkFMVUUgKCRkbGxzZWFyY2hwYXRoKSBtdXN0CiAgICAgYmUg cHJlcGVuZGVkIGJlZm9yZSAodGhhdCBpcywgYXBwZWFyIGFmdGVyKSBMSUJf UEFUSF9WQUxVRSAoJHRlbXBfcnBhdGgpCiAgICAgYmVjYXVzZSBvbiBXaW5k b3dzLCBib3RoICpfVkFSTkFNRXMgYXJlIFBBVEggYnV0IHVuaW5zdGFsbGVk CiAgICAgbGlicmFyaWVzIG11c3QgY29tZSBmaXJzdC4gKi8KICBsdF91cGRh dGVfZXhlX3BhdGggKEVYRV9QQVRIX1ZBUk5BTUUsIEVYRV9QQVRIX1ZBTFVF KTsKICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJ Ql9QQVRIX1ZBTFVFKTsKCiAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBf X0xJTkVfXywgIihtYWluKSBsdF9hcmd2X3plcm86ICVzXG4iLAoJCSAgbm9u bnVsbCAobHRfYXJndl96ZXJvKSk7CiAgZm9yIChpID0gMDsgaSA8IG5ld2Fy Z2M7IGkrKykKICAgIHsKICAgICAgbHRfZGVidWdwcmludGYgKF9fRklMRV9f LCBfX0xJTkVfXywgIihtYWluKSBuZXdhcmd6WyVkXTogJXNcbiIsCgkJICAg ICAgaSwgbm9ubnVsbCAobmV3YXJneltpXSkpOwogICAgfQoKRU9GCgoJICAg IGNhc2UgJGhvc3Rfb3MgaW4KCSAgICAgIG1pbmd3KikKCQljYXQgPDwiRU9G IgogIC8qIGV4ZWN2IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBvbiBtaW5ndyBh cyBleHBlY3RlZCBvbiB1bml4ICovCiAgbmV3YXJneiA9IHByZXBhcmVfc3Bh d24gKG5ld2FyZ3opOwogIHJ2YWwgPSBfc3Bhd252IChfUF9XQUlULCBsdF9h cmd2X3plcm8sIChjb25zdCBjaGFyICogY29uc3QgKikgbmV3YXJneik7CiAg aWYgKHJ2YWwgPT0gLTEpCiAgICB7CiAgICAgIC8qIGZhaWxlZCB0byBzdGFy dCBwcm9jZXNzICovCiAgICAgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywg X19MSU5FX18sCgkJICAgICAgIihtYWluKSBmYWlsZWQgdG8gbGF1bmNoIHRh cmdldCBcIiVzXCI6ICVzXG4iLAoJCSAgICAgIGx0X2FyZ3ZfemVybywgbm9u bnVsbCAoc3RyZXJyb3IgKGVycm5vKSkpOwogICAgICByZXR1cm4gMTI3Owog ICAgfQogIHJldHVybiBydmFsOwpFT0YKCQk7OwoJICAgICAgKikKCQljYXQg PDwiRU9GIgogIGV4ZWN2IChsdF9hcmd2X3plcm8sIG5ld2FyZ3opOwogIHJl dHVybiBydmFsOyAvKiA9MTI3LCBidXQgYXZvaWRzIHVudXNlZCB2YXJpYWJs ZSB3YXJuaW5nICovCkVPRgoJCTs7CgkgICAgZXNhYwoKCSAgICBjYXQgPDwi RU9GIgp9Cgp2b2lkICoKeG1hbGxvYyAoc2l6ZV90IG51bSkKewogIHZvaWQg KnAgPSAodm9pZCAqKSBtYWxsb2MgKG51bSk7CiAgaWYgKCFwKQogICAgbHRf ZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgIm1lbW9yeSBleGhhdXN0ZWQi KTsKCiAgcmV0dXJuIHA7Cn0KCmNoYXIgKgp4c3RyZHVwIChjb25zdCBjaGFy ICpzdHJpbmcpCnsKICByZXR1cm4gc3RyaW5nID8gc3RyY3B5ICgoY2hhciAq KSB4bWFsbG9jIChzdHJsZW4gKHN0cmluZykgKyAxKSwKCQkJICBzdHJpbmcp IDogTlVMTDsKfQoKY29uc3QgY2hhciAqCmJhc2VfbmFtZSAoY29uc3QgY2hh ciAqbmFtZSkKewogIGNvbnN0IGNoYXIgKmJhc2U7CgojaWYgZGVmaW5lZCAo SEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCiAgLyogU2tpcCBvdmVyIHRo ZSBkaXNrIG5hbWUgaW4gTVNET1MgcGF0aG5hbWVzLiAqLwogIGlmIChpc2Fs cGhhICgodW5zaWduZWQgY2hhcikgbmFtZVswXSkgJiYgbmFtZVsxXSA9PSAn OicpCiAgICBuYW1lICs9IDI7CiNlbmRpZgoKICBmb3IgKGJhc2UgPSBuYW1l OyAqbmFtZTsgbmFtZSsrKQogICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKCpu YW1lKSkKICAgICAgYmFzZSA9IG5hbWUgKyAxOwogIHJldHVybiBiYXNlOwp9 CgppbnQKY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCkKewog IHN0cnVjdCBzdGF0IHN0OwoKICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18s IF9fTElORV9fLCAiKGNoZWNrX2V4ZWN1dGFibGUpOiAlc1xuIiwKICAgICAg ICAgICAgICAgICAgbm9uZW1wdHkgKHBhdGgpKTsKICBpZiAoKCFwYXRoKSB8 fCAoISpwYXRoKSkKICAgIHJldHVybiAwOwoKICBpZiAoKHN0YXQgKHBhdGgs ICZzdCkgPj0gMCkKICAgICAgJiYgKHN0LnN0X21vZGUgJiAoU19JWFVTUiB8 IFNfSVhHUlAgfCBTX0lYT1RIKSkpCiAgICByZXR1cm4gMTsKICBlbHNlCiAg ICByZXR1cm4gMDsKfQoKaW50Cm1ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hh ciAqcGF0aCkKewogIGludCBydmFsID0gMDsKICBzdHJ1Y3Qgc3RhdCBzdDsK CiAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWtl X2V4ZWN1dGFibGUpOiAlc1xuIiwKICAgICAgICAgICAgICAgICAgbm9uZW1w dHkgKHBhdGgpKTsKICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKICAgIHJl dHVybiAwOwoKICBpZiAoc3RhdCAocGF0aCwgJnN0KSA+PSAwKQogICAgewog ICAgICBydmFsID0gY2htb2QgKHBhdGgsIHN0LnN0X21vZGUgfCBTX0lYT1RI IHwgU19JWEdSUCB8IFNfSVhVU1IpOwogICAgfQogIHJldHVybiBydmFsOwp9 CgovKiBTZWFyY2hlcyBmb3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3JhcHBl ci4gIFJldHVybnMKICAgbmV3bHkgYWxsb2NhdGVkIGZ1bGwgcGF0aCBuYW1l IGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZQogICBEb2VzIG5vdCBjaGFzZSBz eW1saW5rcywgZXZlbiBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IHRoZW0u CiovCmNoYXIgKgpmaW5kX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKndyYXBw ZXIpCnsKICBpbnQgaGFzX3NsYXNoID0gMDsKICBjb25zdCBjaGFyICpwOwog IGNvbnN0IGNoYXIgKnBfbmV4dDsKICAvKiBzdGF0aWMgYnVmZmVyIGZvciBn ZXRjd2QgKi8KICBjaGFyIHRtcFtMVF9QQVRITUFYICsgMV07CiAgaW50IHRt cF9sZW47CiAgY2hhciAqY29uY2F0X25hbWU7CgogIGx0X2RlYnVncHJpbnRm IChfX0ZJTEVfXywgX19MSU5FX18sICIoZmluZF9leGVjdXRhYmxlKTogJXNc biIsCiAgICAgICAgICAgICAgICAgIG5vbmVtcHR5ICh3cmFwcGVyKSk7Cgog IGlmICgod3JhcHBlciA9PSBOVUxMKSB8fCAoKndyYXBwZXIgPT0gJ1wwJykp CiAgICByZXR1cm4gTlVMTDsKCiAgLyogQWJzb2x1dGUgcGF0aD8gKi8KI2lm IGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQogIGlmIChp c2FscGhhICgodW5zaWduZWQgY2hhcikgd3JhcHBlclswXSkgJiYgd3JhcHBl clsxXSA9PSAnOicpCiAgICB7CiAgICAgIGNvbmNhdF9uYW1lID0geHN0cmR1 cCAod3JhcHBlcik7CiAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25j YXRfbmFtZSkpCglyZXR1cm4gY29uY2F0X25hbWU7CiAgICAgIFhGUkVFIChj b25jYXRfbmFtZSk7CiAgICB9CiAgZWxzZQogICAgewojZW5kaWYKICAgICAg aWYgKElTX0RJUl9TRVBBUkFUT1IgKHdyYXBwZXJbMF0pKQoJewoJICBjb25j YXRfbmFtZSA9IHhzdHJkdXAgKHdyYXBwZXIpOwoJICBpZiAoY2hlY2tfZXhl Y3V0YWJsZSAoY29uY2F0X25hbWUpKQoJICAgIHJldHVybiBjb25jYXRfbmFt ZTsKCSAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKCX0KI2lmIGRlZmluZWQgKEhB VkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQogICAgfQojZW5kaWYKCiAgZm9y IChwID0gd3JhcHBlcjsgKnA7IHArKykKICAgIGlmICgqcCA9PSAnLycpCiAg ICAgIHsKCWhhc19zbGFzaCA9IDE7CglicmVhazsKICAgICAgfQogIGlmICgh aGFzX3NsYXNoKQogICAgewogICAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2gg UEFUSCAqLwogICAgICBjb25zdCBjaGFyICpwYXRoID0gZ2V0ZW52ICgiUEFU SCIpOwogICAgICBpZiAocGF0aCAhPSBOVUxMKQoJewoJICBmb3IgKHAgPSBw YXRoOyAqcDsgcCA9IHBfbmV4dCkKCSAgICB7CgkgICAgICBjb25zdCBjaGFy ICpxOwoJICAgICAgc2l6ZV90IHBfbGVuOwoJICAgICAgZm9yIChxID0gcDsg KnE7IHErKykKCQlpZiAoSVNfUEFUSF9TRVBBUkFUT1IgKCpxKSkKCQkgIGJy ZWFrOwoJICAgICAgcF9sZW4gPSBxIC0gcDsKCSAgICAgIHBfbmV4dCA9ICgq cSA9PSAnXDAnID8gcSA6IHEgKyAxKTsKCSAgICAgIGlmIChwX2xlbiA9PSAw KQoJCXsKCQkgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQgZGlyZWN0b3J5ICov CgkJICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCgkJ ICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sICJnZXRjd2QgZmFp bGVkOiAlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbm51 bGwgKHN0cmVycm9yIChlcnJubykpKTsKCQkgIHRtcF9sZW4gPSBzdHJsZW4g KHRtcCk7CgkJICBjb25jYXRfbmFtZSA9CgkJICAgIFhNQUxMT0MgKGNoYXIs IHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOwoJCSAgbWVt Y3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKCQkgIGNvbmNhdF9u YW1lW3RtcF9sZW5dID0gJy8nOwoJCSAgc3RyY3B5IChjb25jYXRfbmFtZSAr IHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKCQl9CgkgICAgICBlbHNlCgkJewoJ CSAgY29uY2F0X25hbWUgPQoJCSAgICBYTUFMTE9DIChjaGFyLCBwX2xlbiAr IDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CgkJICBtZW1jcHkgKGNvbmNh dF9uYW1lLCBwLCBwX2xlbik7CgkJICBjb25jYXRfbmFtZVtwX2xlbl0gPSAn Lyc7CgkJICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgcF9sZW4gKyAxLCB3cmFw cGVyKTsKCQl9CgkgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0 X25hbWUpKQoJCXJldHVybiBjb25jYXRfbmFtZTsKCSAgICAgIFhGUkVFIChj b25jYXRfbmFtZSk7CgkgICAgfQoJfQogICAgICAvKiBub3QgZm91bmQgaW4g UEFUSDsgYXNzdW1lIGN1cmRpciAqLwogICAgfQogIC8qIFJlbGF0aXZlIHBh dGggfCBub3QgZm91bmQgaW4gcGF0aDogcHJlcGVuZCBjd2QgKi8KICBpZiAo Z2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCiAgICBsdF9mYXRh bCAoX19GSUxFX18sIF9fTElORV9fLCAiZ2V0Y3dkIGZhaWxlZDogJXMiLAog ICAgICAgICAgICAgIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsKICB0 bXBfbGVuID0gc3RybGVuICh0bXApOwogIGNvbmNhdF9uYW1lID0gWE1BTExP QyAoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7 CiAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKICBjb25j YXRfbmFtZVt0bXBfbGVuXSA9ICcvJzsKICBzdHJjcHkgKGNvbmNhdF9uYW1l ICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOwoKICBpZiAoY2hlY2tfZXhlY3V0 YWJsZSAoY29uY2F0X25hbWUpKQogICAgcmV0dXJuIGNvbmNhdF9uYW1lOwog IFhGUkVFIChjb25jYXRfbmFtZSk7CiAgcmV0dXJuIE5VTEw7Cn0KCmNoYXIg KgpjaGFzZV9zeW1saW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMpCnsKI2lm bmRlZiBTX0lTTE5LCiAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKI2Vs c2UKICBjaGFyIGJ1ZltMVF9QQVRITUFYXTsKICBzdHJ1Y3Qgc3RhdCBzOwog IGNoYXIgKnRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKHBhdGhzcGVjKTsKICBj aGFyICpwOwogIGludCBoYXNfc3ltbGlua3MgPSAwOwogIHdoaWxlIChzdHJs ZW4gKHRtcF9wYXRoc3BlYykgJiYgIWhhc19zeW1saW5rcykKICAgIHsKICAg ICAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKCQkgICAg ICAiY2hlY2tpbmcgcGF0aCBjb21wb25lbnQgZm9yIHN5bWxpbmtzOiAlc1xu IiwKCQkgICAgICB0bXBfcGF0aHNwZWMpOwogICAgICBpZiAobHN0YXQgKHRt cF9wYXRoc3BlYywgJnMpID09IDApCgl7CgkgIGlmIChTX0lTTE5LIChzLnN0 X21vZGUpICE9IDApCgkgICAgewoJICAgICAgaGFzX3N5bWxpbmtzID0gMTsK CSAgICAgIGJyZWFrOwoJICAgIH0KCgkgIC8qIHNlYXJjaCBiYWNrd2FyZHMg Zm9yIGxhc3QgRElSX1NFUEFSQVRPUiAqLwoJICBwID0gdG1wX3BhdGhzcGVj ICsgc3RybGVuICh0bXBfcGF0aHNwZWMpIC0gMTsKCSAgd2hpbGUgKChwID4g dG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCgkg ICAgcC0tOwoJICBpZiAoKHAgPT0gdG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJ Ul9TRVBBUkFUT1IgKCpwKSkpCgkgICAgewoJICAgICAgLyogbm8gbW9yZSBE SVJfU0VQQVJBVE9SUyBsZWZ0ICovCgkgICAgICBicmVhazsKCSAgICB9Cgkg ICpwID0gJ1wwJzsKCX0KICAgICAgZWxzZQoJewoJICBsdF9mYXRhbCAoX19G SUxFX18sIF9fTElORV9fLAoJCSAgICAiZXJyb3IgYWNjZXNzaW5nIGZpbGUg XCIlc1wiOiAlcyIsCgkJICAgIHRtcF9wYXRoc3BlYywgbm9ubnVsbCAoc3Ry ZXJyb3IgKGVycm5vKSkpOwoJfQogICAgfQogIFhGUkVFICh0bXBfcGF0aHNw ZWMpOwoKICBpZiAoIWhhc19zeW1saW5rcykKICAgIHsKICAgICAgcmV0dXJu IHhzdHJkdXAgKHBhdGhzcGVjKTsKICAgIH0KCiAgdG1wX3BhdGhzcGVjID0g cmVhbHBhdGggKHBhdGhzcGVjLCBidWYpOwogIGlmICh0bXBfcGF0aHNwZWMg PT0gMCkKICAgIHsKICAgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVf XywKCQkiY291bGQgbm90IGZvbGxvdyBzeW1saW5rcyBmb3IgJXMiLCBwYXRo c3BlYyk7CiAgICB9CiAgcmV0dXJuIHhzdHJkdXAgKHRtcF9wYXRoc3BlYyk7 CiNlbmRpZgp9CgpjaGFyICoKc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0 IGNoYXIgKnBhdCkKewogIHNpemVfdCBsZW4sIHBhdGxlbjsKCiAgYXNzZXJ0 IChzdHIgIT0gTlVMTCk7CiAgYXNzZXJ0IChwYXQgIT0gTlVMTCk7CgogIGxl biA9IHN0cmxlbiAoc3RyKTsKICBwYXRsZW4gPSBzdHJsZW4gKHBhdCk7Cgog IGlmIChwYXRsZW4gPD0gbGVuKQogICAgewogICAgICBzdHIgKz0gbGVuIC0g cGF0bGVuOwogICAgICBpZiAoc3RyY21wIChzdHIsIHBhdCkgPT0gMCkKCSpz dHIgPSAnXDAnOwogICAgfQogIHJldHVybiBzdHI7Cn0KCnZvaWQKbHRfZGVi dWdwcmludGYgKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBjb25zdCBj aGFyICpmbXQsIC4uLikKewogIHZhX2xpc3QgYXJnczsKICBpZiAobHRfZGVi dWcpCiAgICB7CiAgICAgICh2b2lkKSBmcHJpbnRmIChzdGRlcnIsICIlczol czolZDogIiwgcHJvZ3JhbV9uYW1lLCBmaWxlLCBsaW5lKTsKICAgICAgdmFf c3RhcnQgKGFyZ3MsIGZtdCk7CiAgICAgICh2b2lkKSB2ZnByaW50ZiAoc3Rk ZXJyLCBmbXQsIGFyZ3MpOwogICAgICB2YV9lbmQgKGFyZ3MpOwogICAgfQp9 CgpzdGF0aWMgdm9pZApsdF9lcnJvcl9jb3JlIChpbnQgZXhpdF9zdGF0dXMs IGNvbnN0IGNoYXIgKmZpbGUsCgkgICAgICAgaW50IGxpbmUsIGNvbnN0IGNo YXIgKm1vZGUsCgkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSwgdmFfbGlz dCBhcCkKewogIGZwcmludGYgKHN0ZGVyciwgIiVzOiVzOiVkOiAlczogIiwg cHJvZ3JhbV9uYW1lLCBmaWxlLCBsaW5lLCBtb2RlKTsKICB2ZnByaW50ZiAo c3RkZXJyLCBtZXNzYWdlLCBhcCk7CiAgZnByaW50ZiAoc3RkZXJyLCAiLlxu Iik7CgogIGlmIChleGl0X3N0YXR1cyA+PSAwKQogICAgZXhpdCAoZXhpdF9z dGF0dXMpOwp9Cgp2b2lkCmx0X2ZhdGFsIChjb25zdCBjaGFyICpmaWxlLCBp bnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQp7CiAgdmFfbGlz dCBhcDsKICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwogIGx0X2Vycm9yX2Nv cmUgKEVYSVRfRkFJTFVSRSwgZmlsZSwgbGluZSwgIkZBVEFMIiwgbWVzc2Fn ZSwgYXApOwogIHZhX2VuZCAoYXApOwp9CgpzdGF0aWMgY29uc3QgY2hhciAq Cm5vbm51bGwgKGNvbnN0IGNoYXIgKnMpCnsKICByZXR1cm4gcyA/IHMgOiAi KG51bGwpIjsKfQoKc3RhdGljIGNvbnN0IGNoYXIgKgpub25lbXB0eSAoY29u c3QgY2hhciAqcykKewogIHJldHVybiAocyAmJiAhKnMpID8gIihlbXB0eSki IDogbm9ubnVsbCAocyk7Cn0KCnZvaWQKbHRfc2V0ZW52IChjb25zdCBjaGFy ICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKewogIGx0X2RlYnVncHJpbnRm IChfX0ZJTEVfXywgX19MSU5FX18sCgkJICAiKGx0X3NldGVudikgc2V0dGlu ZyAnJXMnIHRvICclcydcbiIsCiAgICAgICAgICAgICAgICAgIG5vbm51bGwg KG5hbWUpLCBub25udWxsICh2YWx1ZSkpOwogIHsKI2lmZGVmIEhBVkVfU0VU RU5WCiAgICAvKiBhbHdheXMgbWFrZSBhIGNvcHksIGZvciBjb25zaXN0ZW5j eSB3aXRoICFIQVZFX1NFVEVOViAqLwogICAgY2hhciAqc3RyID0geHN0cmR1 cCAodmFsdWUpOwogICAgc2V0ZW52IChuYW1lLCBzdHIsIDEpOwojZWxzZQog ICAgaW50IGxlbiA9IHN0cmxlbiAobmFtZSkgKyAxICsgc3RybGVuICh2YWx1 ZSkgKyAxOwogICAgY2hhciAqc3RyID0gWE1BTExPQyAoY2hhciwgbGVuKTsK ICAgIHNwcmludGYgKHN0ciwgIiVzPSVzIiwgbmFtZSwgdmFsdWUpOwogICAg aWYgKHB1dGVudiAoc3RyKSAhPSBFWElUX1NVQ0NFU1MpCiAgICAgIHsKICAg ICAgICBYRlJFRSAoc3RyKTsKICAgICAgfQojZW5kaWYKICB9Cn0KCmNoYXIg KgpsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25z dCBjaGFyICphZGQsIGludCB0b19lbmQpCnsKICBjaGFyICpuZXdfdmFsdWU7 CiAgaWYgKG9yaWdfdmFsdWUgJiYgKm9yaWdfdmFsdWUpCiAgICB7CiAgICAg IGludCBvcmlnX3ZhbHVlX2xlbiA9IHN0cmxlbiAob3JpZ192YWx1ZSk7CiAg ICAgIGludCBhZGRfbGVuID0gc3RybGVuIChhZGQpOwogICAgICBuZXdfdmFs dWUgPSBYTUFMTE9DIChjaGFyLCBhZGRfbGVuICsgb3JpZ192YWx1ZV9sZW4g KyAxKTsKICAgICAgaWYgKHRvX2VuZCkKICAgICAgICB7CiAgICAgICAgICBz dHJjcHkgKG5ld192YWx1ZSwgb3JpZ192YWx1ZSk7CiAgICAgICAgICBzdHJj cHkgKG5ld192YWx1ZSArIG9yaWdfdmFsdWVfbGVuLCBhZGQpOwogICAgICAg IH0KICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgIHN0cmNweSAobmV3 X3ZhbHVlLCBhZGQpOwogICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBh ZGRfbGVuLCBvcmlnX3ZhbHVlKTsKICAgICAgICB9CiAgICB9CiAgZWxzZQog ICAgewogICAgICBuZXdfdmFsdWUgPSB4c3RyZHVwIChhZGQpOwogICAgfQog IHJldHVybiBuZXdfdmFsdWU7Cn0KCnZvaWQKbHRfdXBkYXRlX2V4ZV9wYXRo IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKewogIGx0 X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCgkJICAiKGx0X3Vw ZGF0ZV9leGVfcGF0aCkgbW9kaWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAn JXMnXG4iLAogICAgICAgICAgICAgICAgICBub25udWxsIChuYW1lKSwgbm9u bnVsbCAodmFsdWUpKTsKCiAgaWYgKG5hbWUgJiYgKm5hbWUgJiYgdmFsdWUg JiYgKnZhbHVlKQogICAgewogICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9l eHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7CiAgICAgIC8q IHNvbWUgc3lzdGVtcyBjYW4ndCBjb3BlIHdpdGggYSAnOictdGVybWluYXRl ZCBwYXRoICMnICovCiAgICAgIGludCBsZW4gPSBzdHJsZW4gKG5ld192YWx1 ZSk7CiAgICAgIHdoaWxlICgoKGxlbiA9IHN0cmxlbiAobmV3X3ZhbHVlKSkg PiAwKSAmJiBJU19QQVRIX1NFUEFSQVRPUiAobmV3X3ZhbHVlW2xlbi0xXSkp CiAgICAgICAgewogICAgICAgICAgbmV3X3ZhbHVlW2xlbi0xXSA9ICdcMCc7 CiAgICAgICAgfQogICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7 CiAgICAgIFhGUkVFIChuZXdfdmFsdWUpOwogICAgfQp9Cgp2b2lkCmx0X3Vw ZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq dmFsdWUpCnsKICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9f LAoJCSAgIihsdF91cGRhdGVfbGliX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5 IHByZXBlbmRpbmcgJyVzJ1xuIiwKICAgICAgICAgICAgICAgICAgbm9ubnVs bCAobmFtZSksIG5vbm51bGwgKHZhbHVlKSk7CgogIGlmIChuYW1lICYmICpu YW1lICYmIHZhbHVlICYmICp2YWx1ZSkKICAgIHsKICAgICAgY2hhciAqbmV3 X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUs IDApOwogICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CiAgICAg IFhGUkVFIChuZXdfdmFsdWUpOwogICAgfQp9CgpFT0YKCSAgICBjYXNlICRo b3N0X29zIGluCgkgICAgICBtaW5ndyopCgkJY2F0IDw8IkVPRiIKCi8qIFBy ZXBhcmVzIGFuIGFyZ3VtZW50IHZlY3RvciBiZWZvcmUgY2FsbGluZyBzcGF3 bigpLgogICBOb3RlIHRoYXQgc3Bhd24oKSBkb2VzIG5vdCBieSBpdHNlbGYg Y2FsbCB0aGUgY29tbWFuZCBpbnRlcnByZXRlcgogICAgIChnZXRlbnYgKCJD T01TUEVDIikgIT0gTlVMTCA/IGdldGVudiAoIkNPTVNQRUMiKSA6CiAgICAg ICh7IE9TVkVSU0lPTklORk8gdjsgdi5kd09TVmVyc2lvbkluZm9TaXplID0g c2l6ZW9mKE9TVkVSU0lPTklORk8pOwogICAgICAgICBHZXRWZXJzaW9uRXgo JnYpOwogICAgICAgICB2LmR3UGxhdGZvcm1JZCA9PSBWRVJfUExBVEZPUk1f V0lOMzJfTlQ7CiAgICAgIH0pID8gImNtZC5leGUiIDogImNvbW1hbmQuY29t IikuCiAgIEluc3RlYWQgaXQgc2ltcGx5IGNvbmNhdGVuYXRlcyB0aGUgYXJn dW1lbnRzLCBzZXBhcmF0ZWQgYnkgJyAnLCBhbmQgY2FsbHMKICAgQ3JlYXRl UHJvY2VzcygpLiAgV2UgbXVzdCBxdW90ZSB0aGUgYXJndW1lbnRzIHNpbmNl IFdpbjMyIENyZWF0ZVByb2Nlc3MoKQogICBpbnRlcnByZXRzIGNoYXJhY3Rl cnMgbGlrZSAnICcsICdcdCcsICdcXCcsICciJyAoYnV0IG5vdCAnPCcgYW5k ICc+JykgaW4gYQogICBzcGVjaWFsIHdheToKICAgLSBTcGFjZSBhbmQgdGFi IGFyZSBpbnRlcnByZXRlZCBhcyBkZWxpbWl0ZXJzLiBUaGV5IGFyZSBub3Qg dHJlYXRlZCBhcwogICAgIGRlbGltaXRlcnMgaWYgdGhleSBhcmUgc3Vycm91 bmRlZCBieSBkb3VibGUgcXVvdGVzOiAiLi4uIi4KICAgLSBVbmVzY2FwZWQg ZG91YmxlIHF1b3RlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBpbnB1dC4gVGhl aXIgb25seSBlZmZlY3QgaXMKICAgICB0aGF0IHdpdGhpbiBkb3VibGUgcXVv dGVzLCBzcGFjZSBhbmQgdGFiIGFyZSB0cmVhdGVkIGxpa2Ugbm9ybWFsCiAg ICAgY2hhcmFjdGVycy4KICAgLSBCYWNrc2xhc2hlcyBub3QgZm9sbG93ZWQg YnkgZG91YmxlIHF1b3RlcyBhcmUgbm90IHNwZWNpYWwuCiAgIC0gQnV0IDIq bisxIGJhY2tzbGFzaGVzIGZvbGxvd2VkIGJ5IGEgZG91YmxlIHF1b3RlIGJl Y29tZQogICAgIG4gYmFja3NsYXNoZXMgZm9sbG93ZWQgYnkgYSBkb3VibGUg cXVvdGUgKG4gPj0gMCk6CiAgICAgICBcIiAtPiAiCiAgICAgICBcXFwiIC0+ IFwiCiAgICAgICBcXFxcXCIgLT4gXFwiCiAqLwojZGVmaW5lIFNIRUxMX1NQ RUNJQUxfQ0hBUlMgIlwiXFwgXDAwMVwwMDJcMDAzXDAwNFwwMDVcMDA2XDAw N1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIy XDAyM1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVc MDM2XDAzNyIKI2RlZmluZSBTSEVMTF9TUEFDRV9DSEFSUyAiIFwwMDFcMDAy XDAwM1wwMDRcMDA1XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVc MDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFww MzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzciCmNoYXIgKioKcHJlcGFyZV9z cGF3biAoY2hhciAqKmFyZ3YpCnsKICBzaXplX3QgYXJnYzsKICBjaGFyICoq bmV3X2FyZ3Y7CiAgc2l6ZV90IGk7CgogIC8qIENvdW50IG51bWJlciBvZiBh cmd1bWVudHMuICAqLwogIGZvciAoYXJnYyA9IDA7IGFyZ3ZbYXJnY10gIT0g TlVMTDsgYXJnYysrKQogICAgOwoKICAvKiBBbGxvY2F0ZSBuZXcgYXJndW1l bnQgdmVjdG9yLiAgKi8KICBuZXdfYXJndiA9IFhNQUxMT0MgKGNoYXIgKiwg YXJnYyArIDEpOwoKICAvKiBQdXQgcXVvdGVkIGFyZ3VtZW50cyBpbnRvIHRo ZSBuZXcgYXJndW1lbnQgdmVjdG9yLiAgKi8KICBmb3IgKGkgPSAwOyBpIDwg YXJnYzsgaSsrKQogICAgewogICAgICBjb25zdCBjaGFyICpzdHJpbmcgPSBh cmd2W2ldOwoKICAgICAgaWYgKHN0cmluZ1swXSA9PSAnXDAnKQoJbmV3X2Fy Z3ZbaV0gPSB4c3RyZHVwICgiXCJcIiIpOwogICAgICBlbHNlIGlmIChzdHJw YnJrIChzdHJpbmcsIFNIRUxMX1NQRUNJQUxfQ0hBUlMpICE9IE5VTEwpCgl7 CgkgIGludCBxdW90ZV9hcm91bmQgPSAoc3RycGJyayAoc3RyaW5nLCBTSEVM TF9TUEFDRV9DSEFSUykgIT0gTlVMTCk7CgkgIHNpemVfdCBsZW5ndGg7Cgkg IHVuc2lnbmVkIGludCBiYWNrc2xhc2hlczsKCSAgY29uc3QgY2hhciAqczsK CSAgY2hhciAqcXVvdGVkX3N0cmluZzsKCSAgY2hhciAqcDsKCgkgIGxlbmd0 aCA9IDA7CgkgIGJhY2tzbGFzaGVzID0gMDsKCSAgaWYgKHF1b3RlX2Fyb3Vu ZCkKCSAgICBsZW5ndGgrKzsKCSAgZm9yIChzID0gc3RyaW5nOyAqcyAhPSAn XDAnOyBzKyspCgkgICAgewoJICAgICAgY2hhciBjID0gKnM7CgkgICAgICBp ZiAoYyA9PSAnIicpCgkJbGVuZ3RoICs9IGJhY2tzbGFzaGVzICsgMTsKCSAg ICAgIGxlbmd0aCsrOwoJICAgICAgaWYgKGMgPT0gJ1xcJykKCQliYWNrc2xh c2hlcysrOwoJICAgICAgZWxzZQoJCWJhY2tzbGFzaGVzID0gMDsKCSAgICB9 CgkgIGlmIChxdW90ZV9hcm91bmQpCgkgICAgbGVuZ3RoICs9IGJhY2tzbGFz aGVzICsgMTsKCgkgIHF1b3RlZF9zdHJpbmcgPSBYTUFMTE9DIChjaGFyLCBs ZW5ndGggKyAxKTsKCgkgIHAgPSBxdW90ZWRfc3RyaW5nOwoJICBiYWNrc2xh c2hlcyA9IDA7CgkgIGlmIChxdW90ZV9hcm91bmQpCgkgICAgKnArKyA9ICci JzsKCSAgZm9yIChzID0gc3RyaW5nOyAqcyAhPSAnXDAnOyBzKyspCgkgICAg ewoJICAgICAgY2hhciBjID0gKnM7CgkgICAgICBpZiAoYyA9PSAnIicpCgkJ ewoJCSAgdW5zaWduZWQgaW50IGo7CgkJICBmb3IgKGogPSBiYWNrc2xhc2hl cyArIDE7IGogPiAwOyBqLS0pCgkJICAgICpwKysgPSAnXFwnOwoJCX0KCSAg ICAgICpwKysgPSBjOwoJICAgICAgaWYgKGMgPT0gJ1xcJykKCQliYWNrc2xh c2hlcysrOwoJICAgICAgZWxzZQoJCWJhY2tzbGFzaGVzID0gMDsKCSAgICB9 CgkgIGlmIChxdW90ZV9hcm91bmQpCgkgICAgewoJICAgICAgdW5zaWduZWQg aW50IGo7CgkgICAgICBmb3IgKGogPSBiYWNrc2xhc2hlczsgaiA+IDA7IGot LSkKCQkqcCsrID0gJ1xcJzsKCSAgICAgICpwKysgPSAnIic7CgkgICAgfQoJ ICAqcCA9ICdcMCc7CgoJICBuZXdfYXJndltpXSA9IHF1b3RlZF9zdHJpbmc7 Cgl9CiAgICAgIGVsc2UKCW5ld19hcmd2W2ldID0gKGNoYXIgKikgc3RyaW5n OwogICAgfQogIG5ld19hcmd2W2FyZ2NdID0gTlVMTDsKCiAgcmV0dXJuIG5l d19hcmd2Owp9CkVPRgoJCTs7CgkgICAgZXNhYwoKICAgICAgICAgICAgY2F0 IDw8IkVPRiIKdm9pZCBsdF9kdW1wX3NjcmlwdCAoRklMRSogZikKewpFT0YK CSAgICBmdW5jX2VtaXRfd3JhcHBlciB5ZXMgfAogICAgICAgICAgICAgICRT RUQgLWUgJ3MvXChbXFwiXVwpL1xcXDEvZycgXAoJICAgICAgICAgICAtZSAn cy9eLyAgZnB1dHMgKCIvJyAtZSAncy8kL1xcbiIsIGYpOy8nCgogICAgICAg ICAgICBjYXQgPDwiRU9GIgp9CkVPRgp9CiMgZW5kOiBmdW5jX2VtaXRfY3dy YXBwZXJleGVfc3JjCgojIGZ1bmNfZW1pdF9leGVfbWFuaWZlc3QKIyBlbWl0 IGEgV2luMzIgVUFDIG1hbmlmZXN0IGZvciBleGVjdXRhYmxlIG9uIHN0ZG91 dAojIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gZnVuY19tb2Rl X2xpbmsgYmVjYXVzZQojIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFy aWFibGUgc2V0IHRoZXJlaW4uCmZ1bmNfZW1pdF9leGVfbWFuaWZlc3QgKCkK ewogICAgY2F0IDw8RU9GCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9 IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4KPGFzc2VtYmx5IHhtbG5zPSJ1 cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOmFzbS52MSIgbWFuaWZlc3RWZXJz aW9uPSIxLjAiPgogIDxhc3NlbWJseUlkZW50aXR5IHZlcnNpb249IjEuMC4w LjAiCkVPRgoKICAgIGNhc2UgJGhvc3QgaW4KICAgIGk/ODYtKi0qICkgICBl Y2hvICcgICAgIHByb2Nlc3NvckFyY2hpdGVjdHVyZT0ieDg2IicgOzsKICAg IGlhNjQtKi0qICkgICBlY2hvICcgICAgIHByb2Nlc3NvckFyY2hpdGVjdHVy ZT0iaWE2NCInIDs7CiAgICB4ODZfNjQtKi0qICkgZWNobyAnICAgICBwcm9j ZXNzb3JBcmNoaXRlY3R1cmU9ImFtZDY0IicgOzsKICAgICopICAgICAgICAg ICBlY2hvICcgICAgIHByb2Nlc3NvckFyY2hpdGVjdHVyZT0iKiInIDs7CiAg ICBlc2FjCgogICAgY2F0IDw8RU9GCiAgICAgbmFtZT0iJGhvc3Rfb3MuJFBS T0dSQU0uJG91dHB1dG5hbWUiCiAgICAgdHlwZT0id2luMzIiLz4KCiAgPCEt LSBJZGVudGlmeSB0aGUgYXBwbGljYXRpb24gc2VjdXJpdHkgcmVxdWlyZW1l bnRzLiAtLT4KICA8dHJ1c3RJbmZvIHhtbG5zPSJ1cm46c2NoZW1hcy1taWNy b3NvZnQtY29tOmFzbS52MyI+CiAgICA8c2VjdXJpdHk+CiAgICAgIDxyZXF1 ZXN0ZWRQcml2aWxlZ2VzPgogICAgICAgIDxyZXF1ZXN0ZWRFeGVjdXRpb25M ZXZlbCBsZXZlbD0iYXNJbnZva2VyIiB1aUFjY2Vzcz0iZmFsc2UiLz4KICAg ICAgPC9yZXF1ZXN0ZWRQcml2aWxlZ2VzPgogICAgPC9zZWN1cml0eT4KICA8 L3RydXN0SW5mbz4KPC9hc3NlbWJseT4KRU9GCn0KCiMgZnVuY193aW4zMl9p bXBvcnRfbGliX3AgQVJHCiMgVHJ1ZSBpZiBBUkcgaXMgYW4gaW1wb3J0IGxp YiwgYXMgaW5kaWNhdGVkIGJ5ICRmaWxlX21hZ2ljX2NtZApmdW5jX3dpbjMy X2ltcG9ydF9saWJfcCAoKQp7CiAgICAkb3B0X2RlYnVnCiAgICBjYXNlIGBl dmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkMVwiIDI+L2Rldi9udWxsIHwgJFNF RCAtZSAxMHFgIGluCiAgICAqaW1wb3J0KikgOiA7OwogICAgKikgZmFsc2Ug OzsKICAgIGVzYWMKfQoKIyBmdW5jX21vZGVfbGluayBhcmcuLi4KZnVuY19t b2RlX2xpbmsgKCkKewogICAgJG9wdF9kZWJ1ZwogICAgY2FzZSAkaG9zdCBp bgogICAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwg Ki0qLW9zMiogfCAqLWNlZ2NjKikKICAgICAgIyBJdCBpcyBpbXBvc3NpYmxl IHRvIGxpbmsgYSBkbGwgd2l0aG91dCB0aGlzIHNldHRpbmcsIGFuZAogICAg ICAjIHdlIHNob3VsZG4ndCBmb3JjZSB0aGUgbWFrZWZpbGUgbWFpbnRhaW5l ciB0byBmaWd1cmUgb3V0CiAgICAgICMgd2hpY2ggc3lzdGVtIHdlIGFyZSBj b21waWxpbmcgZm9yIGluIG9yZGVyIHRvIHBhc3MgYW4gZXh0cmEKICAgICAg IyBmbGFnIGZvciBldmVyeSBsaWJ0b29sIGludm9jYXRpb24uCiAgICAgICMg YWxsb3dfdW5kZWZpbmVkPW5vCgogICAgICAjIEZJWE1FOiBVbmZvcnR1bmF0 ZWx5LCB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUgYWJvdmUgd2hlbiB0 cnlpbmcKICAgICAgIyB0byBtYWtlIGEgZGxsIHdoaWNoIGhhcyB1bmRlZmlu ZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QKICAgICAgIyBldmVuIGEg c3RhdGljIGxpYnJhcnkgaXMgYnVpbHQuICBGb3Igbm93LCB3ZSBuZWVkIHRv IHNwZWNpZnkKICAgICAgIyAtbm8tdW5kZWZpbmVkIG9uIHRoZSBsaWJ0b29s IGxpbmsgbGluZSB3aGVuIHdlIGNhbiBiZSBjZXJ0YWluCiAgICAgICMgdGhh dCBhbGwgc3ltYm9scyBhcmUgc2F0aXNmaWVkLCBvdGhlcndpc2Ugd2UgZ2V0 IGEgc3RhdGljIGxpYnJhcnkuCiAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMK ICAgICAgOzsKICAgICopCiAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMKICAg ICAgOzsKICAgIGVzYWMKICAgIGxpYnRvb2xfYXJncz0kbm9ub3B0CiAgICBi YXNlX2NvbXBpbGU9IiRub25vcHQgJEAiCiAgICBjb21waWxlX2NvbW1hbmQ9 JG5vbm9wdAogICAgZmluYWxpemVfY29tbWFuZD0kbm9ub3B0CgogICAgY29t cGlsZV9ycGF0aD0KICAgIGZpbmFsaXplX3JwYXRoPQogICAgY29tcGlsZV9z aGxpYnBhdGg9CiAgICBmaW5hbGl6ZV9zaGxpYnBhdGg9CiAgICBjb252ZW5p ZW5jZT0KICAgIG9sZF9jb252ZW5pZW5jZT0KICAgIGRlcGxpYnM9CiAgICBv bGRfZGVwbGlicz0KICAgIGNvbXBpbGVyX2ZsYWdzPQogICAgbGlua2VyX2Zs YWdzPQogICAgZGxsc2VhcmNocGF0aD0KICAgIGxpYl9zZWFyY2hfcGF0aD1g cHdkYAogICAgaW5zdF9wcmVmaXhfZGlyPQogICAgbmV3X2luaGVyaXRlZF9s aW5rZXJfZmxhZ3M9CgogICAgYXZvaWRfdmVyc2lvbj1ubwogICAgYmluZGly PQogICAgZGxmaWxlcz0KICAgIGRscHJlZmlsZXM9CiAgICBkbHNlbGY9bm8K ICAgIGV4cG9ydF9keW5hbWljPW5vCiAgICBleHBvcnRfc3ltYm9scz0KICAg IGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQogICAgZ2VuZXJhdGVkPQogICAgbGli b2Jqcz0KICAgIGx0bGlicz0KICAgIG1vZHVsZT1ubwogICAgbm9faW5zdGFs bD1ubwogICAgb2Jqcz0KICAgIG5vbl9waWNfb2JqZWN0cz0KICAgIHByZWNp b3VzX2ZpbGVzX3JlZ2V4PQogICAgcHJlZmVyX3N0YXRpY19saWJzPW5vCiAg ICBwcmVsb2FkPW5vCiAgICBwcmV2PQogICAgcHJldmFyZz0KICAgIHJlbGVh c2U9CiAgICBycGF0aD0KICAgIHhycGF0aD0KICAgIHBlcm1fcnBhdGg9CiAg ICB0ZW1wX3JwYXRoPQogICAgdGhyZWFkX3NhZmU9bm8KICAgIHZpbmZvPQog ICAgdmluZm9fbnVtYmVyPW5vCiAgICB3ZWFrX2xpYnM9CiAgICBzaW5nbGVf bW9kdWxlPSIke3dsfS1zaW5nbGVfbW9kdWxlIgogICAgZnVuY19pbmZlcl90 YWcgJGJhc2VfY29tcGlsZQoKICAgICMgV2UgbmVlZCB0byBrbm93IC1zdGF0 aWMsIHRvIGdldCB0aGUgcmlnaHQgb3V0cHV0IGZpbGVuYW1lcy4KICAgIGZv ciBhcmcKICAgIGRvCiAgICAgIGNhc2UgJGFyZyBpbgogICAgICAtc2hhcmVk KQoJdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKCSAg ZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hh cmVkIGxpYnJhcnkiCglidWlsZF9vbGRfbGlicz1ubwoJYnJlYWsKCTs7CiAg ICAgIC1hbGwtc3RhdGljIHwgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1s aWJzKQoJY2FzZSAkYXJnIGluCgktYWxsLXN0YXRpYykKCSAgaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAteiAiJGxpbmtf c3RhdGljX2ZsYWciOyB0aGVuCgkgICAgZnVuY193YXJuaW5nICJjb21wbGV0 ZSBzdGF0aWMgbGlua2luZyBpcyBpbXBvc3NpYmxlIGluIHRoaXMgY29uZmln dXJhdGlvbiIKCSAgZmkKCSAgaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2Zs YWciOyB0aGVuCgkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRp YwoJICBmaQoJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCgkgIDs7Cgktc3Rh dGljKQoJICBpZiB0ZXN0IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4gIiRs aW5rX3N0YXRpY19mbGFnIjsgdGhlbgoJICAgIGRsb3Blbl9zZWxmPSRkbG9w ZW5fc2VsZl9zdGF0aWMKCSAgZmkKCSAgcHJlZmVyX3N0YXRpY19saWJzPWJ1 aWx0CgkgIDs7Cgktc3RhdGljLWxpYnRvb2wtbGlicykKCSAgaWYgdGVzdCAt eiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7 IHRoZW4KCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCgkg IGZpCgkgIHByZWZlcl9zdGF0aWNfbGlicz15ZXMKCSAgOzsKCWVzYWMKCWJ1 aWxkX2xpYnRvb2xfbGlicz1ubwoJYnVpbGRfb2xkX2xpYnM9eWVzCglicmVh awoJOzsKICAgICAgZXNhYwogICAgZG9uZQoKICAgICMgU2VlIGlmIG91ciBz aGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KICAg IHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiBidWls ZF9vbGRfbGlicz15ZXMKCiAgICAjIEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50 cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdheS4KICAgIHdoaWxlIHRl c3QgIiQjIiAtZ3QgMDsgZG8KICAgICAgYXJnPSIkMSIKICAgICAgc2hpZnQK ICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKICAgICAgcWFyZz0k ZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQKICAgICAgbGli dG9vbF9hcmdzKz0iICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKCiAg ICAgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVu dCwgYXNzaWduIGl0LgogICAgICBpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4K CWNhc2UgJHByZXYgaW4KCW91dHB1dCkKCSAgY29tcGlsZV9jb21tYW5kKz0i IEBPVVRQVVRAIgoJICBmaW5hbGl6ZV9jb21tYW5kKz0iIEBPVVRQVVRAIgoJ ICA7OwoJZXNhYwoKCWNhc2UgJHByZXYgaW4KCWJpbmRpcikKCSAgYmluZGly PSIkYXJnIgoJICBwcmV2PQoJICBjb250aW51ZQoJICA7OwoJZGxmaWxlc3xk bHByZWZpbGVzKQoJICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSBubzsgdGhlbgoJ ICAgICMgQWRkIHRoZSBzeW1ib2wgb2JqZWN0IGludG8gdGhlIGxpbmtpbmcg Y29tbWFuZHMuCgkgICAgY29tcGlsZV9jb21tYW5kKz0iIEBTWU1GSUxFQCIK CSAgICBmaW5hbGl6ZV9jb21tYW5kKz0iIEBTWU1GSUxFQCIKCSAgICBwcmVs b2FkPXllcwoJICBmaQoJICBjYXNlICRhcmcgaW4KCSAgKi5sYSB8ICoubG8p IDs7ICAjIFdlIGhhbmRsZSB0aGVzZSBjYXNlcyBiZWxvdy4KCSAgZm9yY2Up CgkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgoJICAgICAgZGxz ZWxmPW5lZWRsZXNzCgkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKCSAgICBm aQoJICAgIHByZXY9CgkgICAgY29udGludWUKCSAgICA7OwoJICBzZWxmKQoJ ICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KCSAgICAg IGRsc2VsZj15ZXMKCSAgICBlbGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXMg JiYgdGVzdCAiJGRsb3Blbl9zZWxmIiAhPSB5ZXM7IHRoZW4KCSAgICAgIGRs c2VsZj15ZXMKCSAgICBlbHNlCgkgICAgICBkbHNlbGY9bmVlZGxlc3MKCSAg ICAgIGV4cG9ydF9keW5hbWljPXllcwoJICAgIGZpCgkgICAgcHJldj0KCSAg ICBjb250aW51ZQoJICAgIDs7CgkgICopCgkgICAgaWYgdGVzdCAiJHByZXYi ID0gZGxmaWxlczsgdGhlbgoJICAgICAgZGxmaWxlcys9IiAkYXJnIgoJICAg IGVsc2UKCSAgICAgIGRscHJlZmlsZXMrPSIgJGFyZyIKCSAgICBmaQoJICAg IHByZXY9CgkgICAgY29udGludWUKCSAgICA7OwoJICBlc2FjCgkgIDs7Cgll eHBzeW1zKQoJICBleHBvcnRfc3ltYm9scz0iJGFyZyIKCSAgdGVzdCAtZiAi JGFyZyIgXAoJICAgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgInN5bWJvbCBmaWxl IFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCgkgIHByZXY9CgkgIGNvbnRpbnVl CgkgIDs7CglleHBzeW1zX3JlZ2V4KQoJICBleHBvcnRfc3ltYm9sc19yZWdl eD0iJGFyZyIKCSAgcHJldj0KCSAgY29udGludWUKCSAgOzsKCWZyYW1ld29y aykKCSAgY2FzZSAkaG9zdCBpbgoJICAgICotKi1kYXJ3aW4qKQoJICAgICAg Y2FzZSAiJGRlcGxpYnMgIiBpbgoJCSoiICRxYXJnLmx0ZnJhbWV3b3JrICIq KSA7OwoJCSopIGRlcGxpYnMrPSIgJHFhcmcubHRmcmFtZXdvcmsiICMgdGhp cyBpcyBmaXhlZCBsYXRlcgoJCSAgIDs7CgkgICAgICBlc2FjCgkgICAgICA7 OwoJICBlc2FjCgkgIHByZXY9CgkgIGNvbnRpbnVlCgkgIDs7CglpbnN0X3By ZWZpeCkKCSAgaW5zdF9wcmVmaXhfZGlyPSIkYXJnIgoJICBwcmV2PQoJICBj b250aW51ZQoJICA7OwoJb2JqZWN0bGlzdCkKCSAgaWYgdGVzdCAtZiAiJGFy ZyI7IHRoZW4KCSAgICBzYXZlX2FyZz0kYXJnCgkgICAgbW9yZWFyZ3M9Cgkg ICAgZm9yIGZpbCBpbiBgY2F0ICIkc2F2ZV9hcmciYAoJICAgIGRvCiMJICAg ICAgbW9yZWFyZ3MrPSIgJGZpbCIKCSAgICAgIGFyZz0kZmlsCgkgICAgICAj IEEgbGlidG9vbC1jb250cm9sbGVkIG9iamVjdC4KCgkgICAgICAjIENoZWNr IHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3Qu CgkgICAgICBpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkYXJnIjsgdGhlbgoJ CXBpY19vYmplY3Q9CgkJbm9uX3BpY19vYmplY3Q9CgoJCSMgUmVhZCB0aGUg LmxvIGZpbGUKCQlmdW5jX3NvdXJjZSAiJGFyZyIKCgkJaWYgdGVzdCAteiAi JHBpY19vYmplY3QiIHx8CgkJICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0 IiB8fAoJCSAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYKCQkgICB0 ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgoJCSAgZnVuY19m YXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9yIFxg JGFyZyciCgkJZmkKCgkJIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRo ZSBhcmd1bWVudC4KCQlmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgoJCXhk aXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgoKCQlpZiB0ZXN0ICIkcGljX29i amVjdCIgIT0gbm9uZTsgdGhlbgoJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJl Y3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KCQkgIHBpY19vYmplY3Q9 IiR4ZGlyJHBpY19vYmplY3QiCgoJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxm aWxlczsgdGhlbgoJCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVu CgkJICAgICAgZGxmaWxlcys9IiAkcGljX29iamVjdCIKCQkgICAgICBwcmV2 PQoJCSAgICAgIGNvbnRpbnVlCgkJICAgIGVsc2UKCQkgICAgICAjIElmIGxp YnRvb2wgb2JqZWN0cyBhcmUgdW5zdXBwb3J0ZWQsIHRoZW4gd2UgbmVlZCB0 byBwcmVsb2FkLgoJCSAgICAgIHByZXY9ZGxwcmVmaWxlcwoJCSAgICBmaQoJ CSAgZmkKCgkJICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlz LiAgLU9zc2FtYQoJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsg dGhlbgoJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCgkJ ICAgIGRscHJlZmlsZXMrPSIgJHBpY19vYmplY3QiCgkJICAgIHByZXY9CgkJ ICBmaQoKCQkgICMgQSBQSUMgb2JqZWN0LgoJCSAgbGlib2Jqcys9IiAkcGlj X29iamVjdCIKCQkgIGFyZz0iJHBpY19vYmplY3QiCgkJZmkKCgkJIyBOb24t UElDIG9iamVjdC4KCQlpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5v bmU7IHRoZW4KCQkgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBv YmplY3QgaXMgZm91bmQgaW4uCgkJICBub25fcGljX29iamVjdD0iJHhkaXIk bm9uX3BpY19vYmplY3QiCgoJCSAgIyBBIHN0YW5kYXJkIG5vbi1QSUMgb2Jq ZWN0CgkJICBub25fcGljX29iamVjdHMrPSIgJG5vbl9waWNfb2JqZWN0IgoJ CSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNfb2Jq ZWN0IiA9IG5vbmUgOyB0aGVuCgkJICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0 IgoJCSAgZmkKCQllbHNlCgkJICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0 cywgdXNlIGl0IGluc3RlYWQuCgkJICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQg dG8gJHBpY19vYmplY3QgYWJvdmUuCgkJICBub25fcGljX29iamVjdD0iJHBp Y19vYmplY3QiCgkJICBub25fcGljX29iamVjdHMrPSIgJG5vbl9waWNfb2Jq ZWN0IgoJCWZpCgkgICAgICBlbHNlCgkJIyBPbmx5IGFuIGVycm9yIGlmIG5v dCBkb2luZyBhIGRyeS1ydW4uCgkJaWYgJG9wdF9kcnlfcnVuOyB0aGVuCgkJ ICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgoJ CSAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKCQkgIHhkaXI9IiRmdW5j X2Rpcm5hbWVfcmVzdWx0IgoKCQkgIGZ1bmNfbG8ybyAiJGFyZyIKCQkgIHBp Y19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CgkJICBu b25fcGljX29iamVjdD0keGRpciRmdW5jX2xvMm9fcmVzdWx0CgkJICBsaWJv YmpzKz0iICRwaWNfb2JqZWN0IgoJCSAgbm9uX3BpY19vYmplY3RzKz0iICRu b25fcGljX29iamVjdCIKCSAgICAgICAgZWxzZQoJCSAgZnVuY19mYXRhbF9l cnJvciAiXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIK CQlmaQoJICAgICAgZmkKCSAgICBkb25lCgkgIGVsc2UKCSAgICBmdW5jX2Zh dGFsX2Vycm9yICJsaW5rIGlucHV0IGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBl eGlzdCIKCSAgZmkKCSAgYXJnPSRzYXZlX2FyZwoJICBwcmV2PQoJICBjb250 aW51ZQoJICA7OwoJcHJlY2lvdXNfcmVnZXgpCgkgIHByZWNpb3VzX2ZpbGVz X3JlZ2V4PSIkYXJnIgoJICBwcmV2PQoJICBjb250aW51ZQoJICA7OwoJcmVs ZWFzZSkKCSAgcmVsZWFzZT0iLSRhcmciCgkgIHByZXY9CgkgIGNvbnRpbnVl CgkgIDs7CglycGF0aCB8IHhycGF0aCkKCSAgIyBXZSBuZWVkIGFuIGFic29s dXRlIHBhdGguCgkgIGNhc2UgJGFyZyBpbgoJICBbXFwvXSogfCBbQS1aYS16 XTpbXFwvXSopIDs7CgkgICopCgkgICAgZnVuY19mYXRhbF9lcnJvciAib25s eSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCgkgICAgOzsKCSAg ZXNhYwoJICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsgdGhlbgoJICAgIGNh c2UgIiRycGF0aCAiIGluCgkgICAgKiIgJGFyZyAiKikgOzsKCSAgICAqKSBy cGF0aCs9IiAkYXJnIiA7OwoJICAgIGVzYWMKCSAgZWxzZQoJICAgIGNhc2Ug IiR4cnBhdGggIiBpbgoJICAgICoiICRhcmcgIiopIDs7CgkgICAgKikgeHJw YXRoKz0iICRhcmciIDs7CgkgICAgZXNhYwoJICBmaQoJICBwcmV2PQoJICBj b250aW51ZQoJICA7OwoJc2hyZXh0KQoJICBzaHJleHRfY21kcz0iJGFyZyIK CSAgcHJldj0KCSAgY29udGludWUKCSAgOzsKCXdlYWspCgkgIHdlYWtfbGli cys9IiAkYXJnIgoJICBwcmV2PQoJICBjb250aW51ZQoJICA7OwoJeGNjbGlu a2VyKQoJICBsaW5rZXJfZmxhZ3MrPSIgJHFhcmciCgkgIGNvbXBpbGVyX2Zs YWdzKz0iICRxYXJnIgoJICBwcmV2PQoJICBjb21waWxlX2NvbW1hbmQrPSIg JHFhcmciCgkgIGZpbmFsaXplX2NvbW1hbmQrPSIgJHFhcmciCgkgIGNvbnRp bnVlCgkgIDs7Cgl4Y29tcGlsZXIpCgkgIGNvbXBpbGVyX2ZsYWdzKz0iICRx YXJnIgoJICBwcmV2PQoJICBjb21waWxlX2NvbW1hbmQrPSIgJHFhcmciCgkg IGZpbmFsaXplX2NvbW1hbmQrPSIgJHFhcmciCgkgIGNvbnRpbnVlCgkgIDs7 Cgl4bGlua2VyKQoJICBsaW5rZXJfZmxhZ3MrPSIgJHFhcmciCgkgIGNvbXBp bGVyX2ZsYWdzKz0iICR3bCRxYXJnIgoJICBwcmV2PQoJICBjb21waWxlX2Nv bW1hbmQrPSIgJHdsJHFhcmciCgkgIGZpbmFsaXplX2NvbW1hbmQrPSIgJHds JHFhcmciCgkgIGNvbnRpbnVlCgkgIDs7CgkqKQoJICBldmFsICIkcHJldj1c IlwkYXJnXCIiCgkgIHByZXY9CgkgIGNvbnRpbnVlCgkgIDs7Cgllc2FjCiAg ICAgIGZpICMgdGVzdCAtbiAiJHByZXYiCgogICAgICBwcmV2YXJnPSIkYXJn IgoKICAgICAgY2FzZSAkYXJnIGluCiAgICAgIC1hbGwtc3RhdGljKQoJaWYg dGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCgkgICMgU2VlIGNv bW1lbnQgZm9yIC1zdGF0aWMgZmxhZyBiZWxvdywgZm9yIG1vcmUgZGV0YWls cy4KCSAgY29tcGlsZV9jb21tYW5kKz0iICRsaW5rX3N0YXRpY19mbGFnIgoJ ICBmaW5hbGl6ZV9jb21tYW5kKz0iICRsaW5rX3N0YXRpY19mbGFnIgoJZmkK CWNvbnRpbnVlCgk7OwoKICAgICAgLWFsbG93LXVuZGVmaW5lZCkKCSMgRklY TUU6IHJlbW92ZSB0aGlzIGZsYWcgc29tZXRpbWUgaW4gdGhlIGZ1dHVyZS4K CWZ1bmNfZmF0YWxfZXJyb3IgIlxgLWFsbG93LXVuZGVmaW5lZCcgbXVzdCBu b3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IgoJOzsKCiAg ICAgIC1hdm9pZC12ZXJzaW9uKQoJYXZvaWRfdmVyc2lvbj15ZXMKCWNvbnRp bnVlCgk7OwoKICAgICAgLWJpbmRpcikKCXByZXY9YmluZGlyCgljb250aW51 ZQoJOzsKCiAgICAgIC1kbG9wZW4pCglwcmV2PWRsZmlsZXMKCWNvbnRpbnVl Cgk7OwoKICAgICAgLWRscHJlb3BlbikKCXByZXY9ZGxwcmVmaWxlcwoJY29u dGludWUKCTs7CgogICAgICAtZXhwb3J0LWR5bmFtaWMpCglleHBvcnRfZHlu YW1pYz15ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLWV4cG9ydC1zeW1ib2xz IHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQoJaWYgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgi OyB0aGVuCgkgIGZ1bmNfZmF0YWxfZXJyb3IgIm1vcmUgdGhhbiBvbmUgLWV4 cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCglmaQoJ aWYgdGVzdCAiWCRhcmciID0gIlgtZXhwb3J0LXN5bWJvbHMiOyB0aGVuCgkg IHByZXY9ZXhwc3ltcwoJZWxzZQoJICBwcmV2PWV4cHN5bXNfcmVnZXgKCWZp Cgljb250aW51ZQoJOzsKCiAgICAgIC1mcmFtZXdvcmspCglwcmV2PWZyYW1l d29yawoJY29udGludWUKCTs7CgogICAgICAtaW5zdC1wcmVmaXgtZGlyKQoJ cHJldj1pbnN0X3ByZWZpeAoJY29udGludWUKCTs7CgogICAgICAjIFRoZSBu YXRpdmUgSVJJWCBsaW5rZXIgdW5kZXJzdGFuZHMgLUxBTkc6KiwgLUxJU1Q6 KiBhbmQgLUxOTzoqCiAgICAgICMgc28sIGlmIHdlIHNlZSB0aGVzZSBmbGFn cyBiZSBjYXJlZnVsIG5vdCB0byB0cmVhdCB0aGVtIGxpa2UgLUwKICAgICAg LUxbQS1aXVtBLVpdKjoqKQoJY2FzZSAkd2l0aF9nY2MvJGhvc3QgaW4KCW5v LyotKi1pcml4KiB8IC8qLSotaXJpeCopCgkgIGNvbXBpbGVfY29tbWFuZCs9 IiAkYXJnIgoJICBmaW5hbGl6ZV9jb21tYW5kKz0iICRhcmciCgkgIDs7Cgll c2FjCgljb250aW51ZQoJOzsKCiAgICAgIC1MKikKCWZ1bmNfc3RyaXBuYW1l ICItTCIgJycgIiRhcmciCglpZiB0ZXN0IC16ICIkZnVuY19zdHJpcG5hbWVf cmVzdWx0IjsgdGhlbgoJICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KCSAg ICBmdW5jX2ZhdGFsX2Vycm9yICJyZXF1aXJlIG5vIHNwYWNlIGJldHdlZW4g XGAtTCcgYW5kIFxgJDEnIgoJICBlbHNlCgkgICAgZnVuY19mYXRhbF9lcnJv ciAibmVlZCBwYXRoIGZvciBcYC1MJyBvcHRpb24iCgkgIGZpCglmaQoJZnVu Y19yZXNvbHZlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCglk aXI9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAoJIyBXZSBuZWVkIGFu IGFic29sdXRlIHBhdGguCgljYXNlICRkaXIgaW4KCVtcXC9dKiB8IFtBLVph LXpdOltcXC9dKikgOzsKCSopCgkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3 ZGAKCSAgdGVzdCAteiAiJGFic2RpciIgJiYgXAoJICAgIGZ1bmNfZmF0YWxf ZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5h bWUgb2YgXGAkZGlyJyIKCSAgZGlyPSIkYWJzZGlyIgoJICA7OwoJZXNhYwoJ Y2FzZSAiJGRlcGxpYnMgIiBpbgoJKiIgLUwkZGlyICIqIHwgKiIgJGFyZyAi KikKCSAgIyBXaWxsIG9ubHkgaGFwcGVuIGZvciBhYnNvbHV0ZSBvciBzeXNy b290IGFyZ3VtZW50cwoJICA7OwoJKikKCSAgIyBQcmVzZXJ2ZSBzeXNyb290 LCBidXQgbmV2ZXIgaW5jbHVkZSByZWxhdGl2ZSBkaXJlY3RvcmllcwoJICBj YXNlICRkaXIgaW4KCSAgICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSogfCA9 KikgZGVwbGlicys9IiAkYXJnIiA7OwoJICAgICopIGRlcGxpYnMrPSIgLUwk ZGlyIiA7OwoJICBlc2FjCgkgIGxpYl9zZWFyY2hfcGF0aCs9IiAkZGlyIgoJ ICA7OwoJZXNhYwoJY2FzZSAkaG9zdCBpbgoJKi0qLWN5Z3dpbiogfCAqLSot bWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKCSAg dGVzdGJpbmRpcj1gJEVDSE8gIiRkaXIiIHwgJFNFRCAncyovbGliJCovYmlu KidgCgkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgoJICAqIjokZGlyOiIq KSA7OwoJICA6OikgZGxsc2VhcmNocGF0aD0kZGlyOzsKCSAgKikgZGxsc2Vh cmNocGF0aCs9IjokZGlyIjs7CgkgIGVzYWMKCSAgY2FzZSA6JGRsbHNlYXJj aHBhdGg6IGluCgkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OwoJICA6OikgZGxs c2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7CgkgICopIGRsbHNlYXJjaHBhdGgr PSI6JHRlc3RiaW5kaXIiOzsKCSAgZXNhYwoJICA7OwoJZXNhYwoJY29udGlu dWUKCTs7CgogICAgICAtbCopCglpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIg fHwgdGVzdCAiWCRhcmciID0gIlgtbG0iOyB0aGVuCgkgIGNhc2UgJGhvc3Qg aW4KCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwg Ki0qLWJlb3MqIHwgKi1jZWdjYyogfCAqLSotaGFpa3UqKQoJICAgICMgVGhl c2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgQyBvciBtYXRoIGxp YnJhcnkgKGFzIHN1Y2gpCgkgICAgY29udGludWUKCSAgICA7OwoJICAqLSot b3MyKikKCSAgICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2 ZSBhIEMgbGlicmFyeSAoYXMgc3VjaCkKCSAgICB0ZXN0ICJYJGFyZyIgPSAi WC1sYyIgJiYgY29udGludWUKCSAgICA7OwoJICAqLSotb3BlbmJzZCogfCAq LSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKCSAgICAjIERvIG5vdCBp bmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KCSAg ICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKCSAgICA7OwoJ ICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCgkgICAgIyBS aGFwc29keSBDIGFuZCBtYXRoIGxpYnJhcmllcyBhcmUgaW4gdGhlIFN5c3Rl bSBmcmFtZXdvcmsKCSAgICBkZXBsaWJzKz0iIFN5c3RlbS5sdGZyYW1ld29y ayIKCSAgICBjb250aW51ZQoJICAgIDs7CgkgICotKi1zY28zLjJ2NSogfCAq LSotc2NvNXY2KikKCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5 cGUKCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKCSAg ICA7OwoJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVu aXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCgkgICAgIyBDb21waWxlciBpbnNl cnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8g d29yawoJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQoJ ICAgIDs7CgkgIGVzYWMKCWVsaWYgdGVzdCAiWCRhcmciID0gIlgtbGNfciI7 IHRoZW4KCSBjYXNlICRob3N0IGluCgkgKi0qLW9wZW5ic2QqIHwgKi0qLWZy ZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCgkgICAjIERvIG5vdCBpbmNsdWRl IGxpYmNfciBkaXJlY3RseSwgdXNlIC1wdGhyZWFkIGZsYWcuCgkgICBjb250 aW51ZQoJICAgOzsKCSBlc2FjCglmaQoJZGVwbGlicys9IiAkYXJnIgoJY29u dGludWUKCTs7CgogICAgICAtbW9kdWxlKQoJbW9kdWxlPXllcwoJY29udGlu dWUKCTs7CgogICAgICAjIFRydTY0IFVOSVggdXNlcyAtbW9kZWwgW2FyZ10g dG8gZGV0ZXJtaW5lIHRoZSBsYXlvdXQgb2YgQysrCiAgICAgICMgY2xhc3Nl cywgbmFtZSBtYW5nbGluZywgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZy4KICAg ICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2ggZmxhZyB0byBkZXRlcm1pbmUg b3V0cHV0IGFyY2hpdGVjdHVyZS4KICAgICAgLW1vZGVsfC1hcmNofC1pc3lz cm9vdHwtLXN5c3Jvb3QpCgljb21waWxlcl9mbGFncys9IiAkYXJnIgoJY29t cGlsZV9jb21tYW5kKz0iICRhcmciCglmaW5hbGl6ZV9jb21tYW5kKz0iICRh cmciCglwcmV2PXhjb21waWxlcgoJY29udGludWUKCTs7CgogICAgICAtbXR8 LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFk c3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQoJY29tcGlsZXJfZmxhZ3MrPSIg JGFyZyIKCWNvbXBpbGVfY29tbWFuZCs9IiAkYXJnIgoJZmluYWxpemVfY29t bWFuZCs9IiAkYXJnIgoJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2Zs YWdzICIgaW4KCSAgICAqIiAkYXJnICIqKSA7OwoJICAgICogKSBuZXdfaW5o ZXJpdGVkX2xpbmtlcl9mbGFncys9IiAkYXJnIiA7OwoJZXNhYwoJY29udGlu dWUKCTs7CgogICAgICAtbXVsdGlfbW9kdWxlKQoJc2luZ2xlX21vZHVsZT0i JHt3bH0tbXVsdGlfbW9kdWxlIgoJY29udGludWUKCTs7CgogICAgICAtbm8t ZmFzdC1pbnN0YWxsKQoJZmFzdF9pbnN0YWxsPW5vCgljb250aW51ZQoJOzsK CiAgICAgIC1uby1pbnN0YWxsKQoJY2FzZSAkaG9zdCBpbgoJKi0qLWN5Z3dp biogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSot ZGFyd2luKiB8ICotY2VnY2MqKQoJICAjIFRoZSBQQVRIIGhhY2tlcnkgaW4g d3JhcHBlciBzY3JpcHRzIGlzIHJlcXVpcmVkIG9uIFdpbmRvd3MKCSAgIyBh bmQgRGFyd2luIGluIG9yZGVyIGZvciB0aGUgbG9hZGVyIHRvIGZpbmQgYW55 IGRsbHMgaXQgbmVlZHMuCgkgIGZ1bmNfd2FybmluZyAiXGAtbm8taW5zdGFs bCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiCgkgIGZ1bmNfd2FybmluZyAiYXNz dW1pbmcgXGAtbm8tZmFzdC1pbnN0YWxsJyBpbnN0ZWFkIgoJICBmYXN0X2lu c3RhbGw9bm8KCSAgOzsKCSopIG5vX2luc3RhbGw9eWVzIDs7Cgllc2FjCglj b250aW51ZQoJOzsKCiAgICAgIC1uby11bmRlZmluZWQpCglhbGxvd191bmRl ZmluZWQ9bm8KCWNvbnRpbnVlCgk7OwoKICAgICAgLW9iamVjdGxpc3QpCglw cmV2PW9iamVjdGxpc3QKCWNvbnRpbnVlCgk7OwoKICAgICAgLW8pIHByZXY9 b3V0cHV0IDs7CgogICAgICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgpCglwcmV2 PXByZWNpb3VzX3JlZ2V4Cgljb250aW51ZQoJOzsKCiAgICAgIC1yZWxlYXNl KQoJcHJldj1yZWxlYXNlCgljb250aW51ZQoJOzsKCiAgICAgIC1ycGF0aCkK CXByZXY9cnBhdGgKCWNvbnRpbnVlCgk7OwoKICAgICAgLVIpCglwcmV2PXhy cGF0aAoJY29udGludWUKCTs7CgogICAgICAtUiopCglmdW5jX3N0cmlwbmFt ZSAnLVInICcnICIkYXJnIgoJZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQK CSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgoJY2FzZSAkZGlyIGluCglb XFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7Cgk9KikKCSAgZnVuY19zdHJp cG5hbWUgJz0nICcnICIkZGlyIgoJICBkaXI9JGx0X3N5c3Jvb3QkZnVuY19z dHJpcG5hbWVfcmVzdWx0CgkgIDs7CgkqKQoJICBmdW5jX2ZhdGFsX2Vycm9y ICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIKCSAgOzsK CWVzYWMKCWNhc2UgIiR4cnBhdGggIiBpbgoJKiIgJGRpciAiKikgOzsKCSop IHhycGF0aCs9IiAkZGlyIiA7OwoJZXNhYwoJY29udGludWUKCTs7CgogICAg ICAtc2hhcmVkKQoJIyBUaGUgZWZmZWN0cyBvZiAtc2hhcmVkIGFyZSBkZWZp bmVkIGluIGEgcHJldmlvdXMgbG9vcC4KCWNvbnRpbnVlCgk7OwoKICAgICAg LXNocmV4dCkKCXByZXY9c2hyZXh0Cgljb250aW51ZQoJOzsKCiAgICAgIC1z dGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKCSMgVGhlIGVmZmVjdHMg b2YgLXN0YXRpYyBhcmUgZGVmaW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCgkj IFdlIHVzZWQgdG8gZG8gdGhlIHNhbWUgYXMgLWFsbC1zdGF0aWMgb24gcGxh dGZvcm1zIHRoYXQKCSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRo ZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGVmZmVjdHMKCSMgd291bGQgYmUgZXF1 aXZhbGVudCB3YXMgd3JvbmcuICBJdCB3b3VsZCBicmVhayBvbiBhdCBsZWFz dAoJIyBEaWdpdGFsIFVuaXggYW5kIEFJWC4KCWNvbnRpbnVlCgk7OwoKICAg ICAgLXRocmVhZC1zYWZlKQoJdGhyZWFkX3NhZmU9eWVzCgljb250aW51ZQoJ OzsKCiAgICAgIC12ZXJzaW9uLWluZm8pCglwcmV2PXZpbmZvCgljb250aW51 ZQoJOzsKCiAgICAgIC12ZXJzaW9uLW51bWJlcikKCXByZXY9dmluZm8KCXZp bmZvX251bWJlcj15ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLXdlYWspCiAg ICAgICAgcHJldj13ZWFrCgljb250aW51ZQoJOzsKCiAgICAgIC1XYywqKQoJ ZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgoJYXJncz0kZnVuY19z dHJpcG5hbWVfcmVzdWx0Cglhcmc9CglzYXZlX2lmcz0iJElGUyI7IElGUz0n LCcKCWZvciBmbGFnIGluICRhcmdzOyBkbwoJICBJRlM9IiRzYXZlX2lmcyIK ICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgoJICBhcmcr PSIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgoJICBjb21waWxlcl9m bGFncys9IiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCglkb25lCglJ RlM9IiRzYXZlX2lmcyIKCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIK CWFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Cgk7OwoKICAgICAgLVdsLCop CglmdW5jX3N0cmlwbmFtZSAnLVdsLCcgJycgIiRhcmciCglhcmdzPSRmdW5j X3N0cmlwbmFtZV9yZXN1bHQKCWFyZz0KCXNhdmVfaWZzPSIkSUZTIjsgSUZT PScsJwoJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCgkgIElGUz0iJHNhdmVfaWZz IgogICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZsYWciCgkgIGFy Zys9IiAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCgkgIGNvbXBp bGVyX2ZsYWdzKz0iICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIK CSAgbGlua2VyX2ZsYWdzKz0iICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKCWRvbmUKCUlGUz0iJHNhdmVfaWZzIgoJZnVuY19zdHJpcG5hbWUgJyAn ICcnICIkYXJnIgoJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKCTs7Cgog ICAgICAtWGNvbXBpbGVyKQoJcHJldj14Y29tcGlsZXIKCWNvbnRpbnVlCgk7 OwoKICAgICAgLVhsaW5rZXIpCglwcmV2PXhsaW5rZXIKCWNvbnRpbnVlCgk7 OwoKICAgICAgLVhDQ2xpbmtlcikKCXByZXY9eGNjbGlua2VyCgljb250aW51 ZQoJOzsKCiAgICAgICMgLW1zZ18qIGZvciBvc2YgY2MKICAgICAgLW1zZ18q KQoJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKCWFyZz0iJGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0IgoJOzsKCiAgICAgICMgRmxhZ3MgdG8gYmUg cGFzc2VkIHRocm91Z2ggdW5jaGFuZ2VkLCB3aXRoIHJhdGlvbmFsZToKICAg ICAgIyAtNjQsIC1taXBzWzAtOV0gICAgICBlbmFibGUgNjQtYml0IG1vZGUg Zm9yIHRoZSBTR0kgY29tcGlsZXIKICAgICAgIyAtclswLTldWzAtOV0qICAg ICAgICBzcGVjaWZ5IHByb2Nlc3NvciBmb3IgdGhlIFNHSSBjb21waWxlcgog ICAgICAjIC14YXJjaD0qLCAteHRhcmdldD0qIGVuYWJsZSA2NC1iaXQgbW9k ZSBmb3IgdGhlIFN1biBjb21waWxlcgogICAgICAjICtEQSosICtERCogICAg ICAgICAgIGVuYWJsZSA2NC1iaXQgbW9kZSBmb3IgdGhlIEhQIGNvbXBpbGVy CiAgICAgICMgLXEqICAgICAgICAgICAgICAgICAgY29tcGlsZXIgYXJncyBm b3IgdGhlIElCTSBjb21waWxlcgogICAgICAjIC1tKiwgLXRbNDVdKiwgLXR4 c2NhbGUqIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBmbGFncyBmb3IgR0NDCiAg ICAgICMgLUYvcGF0aCAgICAgICAgICAgICAgcGF0aCB0byB1bmluc3RhbGxl ZCBmcmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCiAgICAgICMgLXAsIC1wZywg LS1jb3ZlcmFnZSwgLWZwcm9maWxlLSogIHByb2ZpbGluZyBmbGFncyBmb3Ig R0NDCiAgICAgICMgQGZpbGUgICAgICAgICAgICAgICAgR0NDIHJlc3BvbnNl IGZpbGVzCiAgICAgICMgLXRwPSogICAgICAgICAgICAgICAgUG9ydGxhbmQg cGdjYyB0YXJnZXQgcHJvY2Vzc29yIHNlbGVjdGlvbgogICAgICAjIC0tc3lz cm9vdD0qICAgICAgICAgIGZvciBzeXNyb290IHN1cHBvcnQKICAgICAgIyAt TyosIC1mbHRvKiwgLWZ3aG9wciosIC1mdXNlLWxpbmtlci1wbHVnaW4gR0ND IGxpbmstdGltZSBvcHRpbWl6YXRpb24KICAgICAgIyAte3NoYXJlZCxzdGF0 aWN9LWxpYmdjYywgLXN0YXRpYy17bGliZ2ZvcnRyYW58bGlic3RkYysrfQog ICAgICAjICAgICAgICAgICAgICAgICAgICAgIGxpbmsgYWdhaW5zdCBzcGVj aWZpZWQgcnVudGltZSBsaWJyYXJ5CiAgICAgICMgLWZzdGFjay1wcm90ZWN0 b3IqICAgc3RhY2sgcHJvdGVjdG9yIGZsYWdzIGZvciBHQ0MKICAgICAgLTY0 fC1taXBzWzAtOV18LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRhcmdldD0q fCtEQSp8K0REKnwtcSp8LW0qfCBcCiAgICAgIC10WzQ1XSp8LXR4c2NhbGUq fC1wfC1wZ3wtLWNvdmVyYWdlfC1mcHJvZmlsZS0qfC1GKnxAKnwtdHA9Knwt LXN5c3Jvb3Q9KnwgXAogICAgICAtTyp8LWZsdG8qfC1md2hvcHIqfC1mdXNl LWxpbmtlci1wbHVnaW58IFwKICAgICAgLXNoYXJlZC1saWJnY2N8LXN0YXRp Yy1saWJnY2N8LXN0YXRpYy1saWJnZm9ydHJhbnwtc3RhdGljLWxpYnN0ZGMr K3wgXAogICAgICAtZnN0YWNrLXByb3RlY3RvciopCiAgICAgICAgZnVuY19x dW90ZV9mb3JfZXZhbCAiJGFyZyIKCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0IgogICAgICAgIGNvbXBpbGVfY29tbWFuZCs9IiAkYXJnIgog ICAgICAgIGZpbmFsaXplX2NvbW1hbmQrPSIgJGFyZyIKICAgICAgICBjb21w aWxlcl9mbGFncys9IiAkYXJnIgogICAgICAgIGNvbnRpbnVlCiAgICAgICAg OzsKCiAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgogICAgICAt KiB8ICsqKQogICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCglh cmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKCTs7CgogICAgICAq LiRvYmpleHQpCgkjIEEgc3RhbmRhcmQgb2JqZWN0LgoJb2Jqcys9IiAkYXJn IgoJOzsKCiAgICAgICoubG8pCgkjIEEgbGlidG9vbC1jb250cm9sbGVkIG9i amVjdC4KCgkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEg bGlidG9vbCBvYmplY3QuCglpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkYXJn IjsgdGhlbgoJICBwaWNfb2JqZWN0PQoJICBub25fcGljX29iamVjdD0KCgkg ICMgUmVhZCB0aGUgLmxvIGZpbGUKCSAgZnVuY19zb3VyY2UgIiRhcmciCgoJ ICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwKCSAgICAgdGVzdCAteiAi JG5vbl9waWNfb2JqZWN0IiB8fAoJICAgICB0ZXN0ICIkcGljX29iamVjdCIg PSBub25lICYmCgkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25l OyB0aGVuCgkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFt ZSBvZiBvYmplY3QgZm9yIFxgJGFyZyciCgkgIGZpCgoJICAjIEV4dHJhY3Qg c3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgoJICBmdW5jX2Rpcm5h bWUgIiRhcmciICIvIiAiIgoJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3Vs dCIKCgkgIGlmIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCgkg ICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBm b3VuZCBpbi4KCSAgICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgoK CSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCgkgICAgICBp ZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIk ZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCgkJZGxmaWxlcys9IiAkcGlj X29iamVjdCIKCQlwcmV2PQoJCWNvbnRpbnVlCgkgICAgICBlbHNlCgkJIyBJ ZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5l ZWQgdG8gcHJlbG9hZC4KCQlwcmV2PWRscHJlZmlsZXMKCSAgICAgIGZpCgkg ICAgZmkKCgkgICAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhp cy4gIC1Pc3NhbWEKCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVz OyB0aGVuCgkgICAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3Qu CgkgICAgICBkbHByZWZpbGVzKz0iICRwaWNfb2JqZWN0IgoJICAgICAgcHJl dj0KCSAgICBmaQoKCSAgICAjIEEgUElDIG9iamVjdC4KCSAgICBsaWJvYmpz Kz0iICRwaWNfb2JqZWN0IgoJICAgIGFyZz0iJHBpY19vYmplY3QiCgkgIGZp CgoJICAjIE5vbi1QSUMgb2JqZWN0LgoJICBpZiB0ZXN0ICIkbm9uX3BpY19v YmplY3QiICE9IG5vbmU7IHRoZW4KCSAgICAjIFByZXBlbmQgdGhlIHN1YmRp cmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgoJICAgIG5vbl9waWNf b2JqZWN0PSIkeGRpciRub25fcGljX29iamVjdCIKCgkgICAgIyBBIHN0YW5k YXJkIG5vbi1QSUMgb2JqZWN0CgkgICAgbm9uX3BpY19vYmplY3RzKz0iICRu b25fcGljX29iamVjdCIKCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIg fHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4KCSAgICAgIGFy Zz0iJG5vbl9waWNfb2JqZWN0IgoJICAgIGZpCgkgIGVsc2UKCSAgICAjIElm IHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCgkgICAg IyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3ZlLgoJ ICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKCSAgICBub25fcGlj X29iamVjdHMrPSIgJG5vbl9waWNfb2JqZWN0IgoJICBmaQoJZWxzZQoJICAj IE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KCSAgaWYg JG9wdF9kcnlfcnVuOyB0aGVuCgkgICAgIyBFeHRyYWN0IHN1YmRpcmVjdG9y eSBmcm9tIHRoZSBhcmd1bWVudC4KCSAgICBmdW5jX2Rpcm5hbWUgIiRhcmci ICIvIiAiIgoJICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgoKCSAg ICBmdW5jX2xvMm8gIiRhcmciCgkgICAgcGljX29iamVjdD0keGRpciRvYmpk aXIvJGZ1bmNfbG8yb19yZXN1bHQKCSAgICBub25fcGljX29iamVjdD0keGRp ciRmdW5jX2xvMm9fcmVzdWx0CgkgICAgbGlib2Jqcys9IiAkcGljX29iamVj dCIKCSAgICBub25fcGljX29iamVjdHMrPSIgJG5vbl9waWNfb2JqZWN0IgoJ ICBlbHNlCgkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3Qg YSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKCSAgZmkKCWZpCgk7OwoKICAgICAg Ki4kbGliZXh0KQoJIyBBbiBhcmNoaXZlLgoJZGVwbGlicys9IiAkYXJnIgoJ b2xkX2RlcGxpYnMrPSIgJGFyZyIKCWNvbnRpbnVlCgk7OwoKICAgICAgKi5s YSkKCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KCglmdW5jX3Jl c29sdmVfc3lzcm9vdCAiJGFyZyIKCWlmIHRlc3QgIiRwcmV2IiA9IGRsZmls ZXM7IHRoZW4KCSAgIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRo IC1kbG9wZW4uCgkgIGRsZmlsZXMrPSIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290 X3Jlc3VsdCIKCSAgcHJldj0KCWVsaWYgdGVzdCAiJHByZXYiID0gZGxwcmVm aWxlczsgdGhlbgoJICAjIFRoZSBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0 aCAtZGxwcmVvcGVuLgoJICBkbHByZWZpbGVzKz0iICRmdW5jX3Jlc29sdmVf c3lzcm9vdF9yZXN1bHQiCgkgIHByZXY9CgllbHNlCgkgIGRlcGxpYnMrPSIg JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKCWZpCgljb250aW51ZQoJ OzsKCiAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1bWVudC4KICAg ICAgKikKCSMgVW5rbm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6ZV9j b21tYW5kIGFuZCBjb21waWxlX2NvbW1hbmQgbmVlZAoJIyB0byBiZSBhZXN0 aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRl ci4KCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCglhcmc9IiRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKCTs7CiAgICAgIGVzYWMgIyBhcmcKCiAg ICAgICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGlu dG8gdGhlIGNvbW1hbmRzLgogICAgICBpZiB0ZXN0IC1uICIkYXJnIjsgdGhl bgoJY29tcGlsZV9jb21tYW5kKz0iICRhcmciCglmaW5hbGl6ZV9jb21tYW5k Kz0iICRhcmciCiAgICAgIGZpCiAgICBkb25lICMgYXJndW1lbnQgcGFyc2lu ZyBsb29wCgogICAgdGVzdCAtbiAiJHByZXYiICYmIFwKICAgICAgZnVuY19m YXRhbF9oZWxwICJ0aGUgXGAkcHJldmFyZycgb3B0aW9uIHJlcXVpcmVzIGFu IGFyZ3VtZW50IgoKICAgIGlmIHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5 ZXMgJiYgdGVzdCAtbiAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRo ZW4KICAgICAgZXZhbCBhcmc9XCIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj XCIKICAgICAgY29tcGlsZV9jb21tYW5kKz0iICRhcmciCiAgICAgIGZpbmFs aXplX2NvbW1hbmQrPSIgJGFyZyIKICAgIGZpCgogICAgb2xkbGlicz0KICAg ICMgY2FsY3VsYXRlIHRoZSBuYW1lIG9mIHRoZSBmaWxlLCB3aXRob3V0IGl0 cyBkaXJlY3RvcnkKICAgIGZ1bmNfYmFzZW5hbWUgIiRvdXRwdXQiCiAgICBv dXRwdXRuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCiAgICBsaWJvYmpz X3NhdmU9IiRsaWJvYmpzIgoKICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhf dmFyIjsgdGhlbgogICAgICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVk IGluICRzaGxpYnBhdGhfdmFyCiAgICAgIGV2YWwgc2hsaWJfc2VhcmNoX3Bh dGg9XGBcJEVDSE8gXCJcJHskc2hsaWJwYXRoX3Zhcn1cIiBcfCBcJFNFRCBc J3MvOi8gL2dcJ1xgCiAgICBlbHNlCiAgICAgIHNobGliX3NlYXJjaF9wYXRo PQogICAgZmkKICAgIGV2YWwgc3lzX2xpYl9zZWFyY2hfcGF0aD1cIiRzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWNcIgogICAgZXZhbCBzeXNfbGliX2Rsc2Vh cmNoX3BhdGg9XCIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgoKICAg IGZ1bmNfZGlybmFtZSAiJG91dHB1dCIgIi8iICIiCiAgICBvdXRwdXRfb2Jq ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCRvYmpkaXIiCiAgICBmdW5jX3Rv X3Rvb2xfZmlsZSAiJG91dHB1dF9vYmpkaXIvIgogICAgdG9vbF9vdXRwdXRf b2JqZGlyPSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKICAgICMgQ3JlYXRl IHRoZSBvYmplY3QgZGlyZWN0b3J5LgogICAgZnVuY19ta2Rpcl9wICIkb3V0 cHV0X29iamRpciIKCiAgICAjIERldGVybWluZSB0aGUgdHlwZSBvZiBvdXRw dXQKICAgIGNhc2UgJG91dHB1dCBpbgogICAgIiIpCiAgICAgIGZ1bmNfZmF0 YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSIKICAg ICAgOzsKICAgICouJGxpYmV4dCkgbGlua21vZGU9b2xkbGliIDs7CiAgICAq LmxvIHwgKi4kb2JqZXh0KSBsaW5rbW9kZT1vYmogOzsKICAgICoubGEpIGxp bmttb2RlPWxpYiA7OwogICAgKikgbGlua21vZGU9cHJvZyA7OyAjIEFueXRo aW5nIGVsc2Ugc2hvdWxkIGJlIGEgcHJvZ3JhbS4KICAgIGVzYWMKCiAgICBz cGVjaWFsZGVwbGlicz0KCiAgICBsaWJzPQogICAgIyBGaW5kIGFsbCBpbnRl cmRlcGVuZGVudCBkZXBsaWJzIGJ5IHNlYXJjaGluZyBmb3IgbGlicmFyaWVz CiAgICAjIHRoYXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5nLiAt bGEgLWxiIC1sYSkKICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCiAg ICAgIGlmICRvcHRfcHJlc2VydmVfZHVwX2RlcHMgOyB0aGVuCgljYXNlICIk bGlicyAiIGluCgkqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicys9IiAk ZGVwbGliIiA7OwoJZXNhYwogICAgICBmaQogICAgICBsaWJzKz0iICRkZXBs aWIiCiAgICBkb25lCgogICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsg dGhlbgogICAgICBsaWJzPSIkcHJlZGVwcyAkbGlicyAkY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoICRwb3N0ZGVwcyIKCiAgICAgICMgQ29tcHV0ZSBsaWJy YXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVk ZXBzCiAgICAgICMgJHBvc3RkZXBzIGFuZCBtYXJrIHRoZW0gYXMgc3BlY2lh bCAoaS5lLiwgd2hvc2UgZHVwbGljYXRlcyBhcmUKICAgICAgIyBub3QgdG8g YmUgZWxpbWluYXRlZCkuCiAgICAgIHByZV9wb3N0X2RlcHM9CiAgICAgIGlm ICRvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzOyB0aGVu Cglmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRwb3N0ZGVwczsgZG8K CSAgY2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgoJICAqIiAkcHJlX3Bvc3Rf ZGVwICIqKSBzcGVjaWFsZGVwbGlicys9IiAkcHJlX3Bvc3RfZGVwcyIgOzsK CSAgZXNhYwoJICBwcmVfcG9zdF9kZXBzKz0iICRwcmVfcG9zdF9kZXAiCglk b25lCiAgICAgIGZpCiAgICAgIHByZV9wb3N0X2RlcHM9CiAgICBmaQoKICAg IGRlcGxpYnM9CiAgICBuZXdkZXBlbmRlbmN5X2xpYnM9CiAgICBuZXdsaWJf c2VhcmNoX3BhdGg9CiAgICBuZWVkX3JlbGluaz1ubyAjIHdoZXRoZXIgd2Un cmUgbGlua2luZyBhbnkgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMK ICAgIG5vdGluc3RfZGVwbGlicz0gIyBub3QtaW5zdGFsbGVkIGxpYnRvb2wg bGlicmFyaWVzCiAgICBub3RpbnN0X3BhdGg9ICMgcGF0aHMgdGhhdCBjb250 YWluIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKCiAgICBjYXNl ICRsaW5rbW9kZSBpbgogICAgbGliKQoJcGFzc2VzPSJjb252IGRscHJlb3Bl biBsaW5rIgoJZm9yIGZpbGUgaW4gJGRsZmlsZXMgJGRscHJlZmlsZXM7IGRv CgkgIGNhc2UgJGZpbGUgaW4KCSAgKi5sYSkgOzsKCSAgKikKCSAgICBmdW5j X2ZhdGFsX2hlbHAgImxpYnJhcmllcyBjYW4gXGAtZGxvcGVuJyBvbmx5IGxp YnRvb2wgbGlicmFyaWVzOiAkZmlsZSIKCSAgICA7OwoJICBlc2FjCglkb25l Cgk7OwogICAgcHJvZykKCWNvbXBpbGVfZGVwbGlicz0KCWZpbmFsaXplX2Rl cGxpYnM9CglhbGxkZXBsaWJzPW5vCgluZXdkbGZpbGVzPQoJbmV3ZGxwcmVm aWxlcz0KCXBhc3Nlcz0iY29udiBzY2FuIGRsb3BlbiBkbHByZW9wZW4gbGlu ayIKCTs7CiAgICAqKSAgcGFzc2VzPSJjb252IgoJOzsKICAgIGVzYWMKCiAg ICBmb3IgcGFzcyBpbiAkcGFzc2VzOyBkbwogICAgICAjIFRoZSBwcmVvcGVu IHBhc3MgaW4gbGliIG1vZGUgcmV2ZXJzZXMgJGRlcGxpYnM7IHB1dCBpdCBi YWNrIGhlcmUKICAgICAgIyBzbyB0aGF0IC1MIGNvbWVzIGJlZm9yZSBsaWJz IHRoYXQgbmVlZCBpdCBmb3IgaW5zdGFuY2UuLi4KICAgICAgaWYgdGVzdCAi JGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayI7IHRoZW4KCSMjIEZJWE1F OiBGaW5kIHRoZSBwbGFjZSB3aGVyZSB0aGUgbGlzdCBpcyByZWJ1aWx0IGlu IHRoZSB3cm9uZwoJIyMgICAgICAgIG9yZGVyLCBhbmQgZml4IGl0IHRoZXJl IHByb3Blcmx5CiAgICAgICAgdG1wX2RlcGxpYnM9Cglmb3IgZGVwbGliIGlu ICRkZXBsaWJzOyBkbwoJICB0bXBfZGVwbGlicz0iJGRlcGxpYiAkdG1wX2Rl cGxpYnMiCglkb25lCglkZXBsaWJzPSIkdG1wX2RlcGxpYnMiCiAgICAgIGZp CgogICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5r IiB8fAoJIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIjsg dGhlbgoJbGlicz0iJGRlcGxpYnMiCglkZXBsaWJzPQogICAgICBmaQogICAg ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgoJY2FzZSAkcGFz cyBpbgoJZGxvcGVuKSBsaWJzPSIkZGxmaWxlcyIgOzsKCWRscHJlb3Blbikg bGlicz0iJGRscHJlZmlsZXMiIDs7CglsaW5rKSBsaWJzPSIkZGVwbGlicyAl REVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIgOzsKCWVzYWMKICAgICAgZmkK ICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsZGxwcmVv cGVuIjsgdGhlbgoJIyBDb2xsZWN0IGFuZCBmb3J3YXJkIGRlcGxpYnMgb2Yg cHJlb3BlbmVkIGxpYnRvb2wgbGlicwoJZm9yIGxpYiBpbiAkZGxwcmVmaWxl czsgZG8KCSAgIyBJZ25vcmUgbm9uLWxpYnRvb2wtbGlicwoJICBkZXBlbmRl bmN5X2xpYnM9CgkgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkbGliIgoJICBj YXNlICRsaWIgaW4KCSAgKi5sYSkJZnVuY19zb3VyY2UgIiRmdW5jX3Jlc29s dmVfc3lzcm9vdF9yZXN1bHQiIDs7CgkgIGVzYWMKCgkgICMgQ29sbGVjdCBw cmVvcGVuZWQgbGlidG9vbCBkZXBsaWJzLCBleGNlcHQgYW55IHRoaXMgbGli cmFyeQoJICAjIGhhcyBkZWNsYXJlZCBhcyB3ZWFrIGxpYnMKCSAgZm9yIGRl cGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwoJICAgIGZ1bmNfYmFzZW5h bWUgIiRkZXBsaWIiCiAgICAgICAgICAgIGRlcGxpYl9iYXNlPSRmdW5jX2Jh c2VuYW1lX3Jlc3VsdAoJICAgIGNhc2UgIiAkd2Vha19saWJzICIgaW4KCSAg ICAqIiAkZGVwbGliX2Jhc2UgIiopIDs7CgkgICAgKikgZGVwbGlicys9IiAk ZGVwbGliIiA7OwoJICAgIGVzYWMKCSAgZG9uZQoJZG9uZQoJbGlicz0iJGRs cHJlZmlsZXMiCiAgICAgIGZpCiAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRs b3BlbjsgdGhlbgoJIyBDb2xsZWN0IGRscHJlb3BlbmVkIGxpYnJhcmllcwoJ c2F2ZV9kZXBsaWJzPSIkZGVwbGlicyIKCWRlcGxpYnM9CiAgICAgIGZpCgog ICAgICBmb3IgZGVwbGliIGluICRsaWJzOyBkbwoJbGliPQoJZm91bmQ9bm8K CWNhc2UgJGRlcGxpYiBpbgoJLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3Ro cmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFk cykKCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsi OyB0aGVuCgkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxl X2RlcGxpYnMiCgkgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKCSAgZWxzZQoJICAgIGNvbXBpbGVyX2ZsYWdzKz0i ICRkZXBsaWIiCgkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRo ZW4KCQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgoJ CSAgICAqIiAkZGVwbGliICIqKSA7OwoJCSAgICAqICkgbmV3X2luaGVyaXRl ZF9saW5rZXJfZmxhZ3MrPSIgJGRlcGxpYiIgOzsKCQllc2FjCgkgICAgZmkK CSAgZmkKCSAgY29udGludWUKCSAgOzsKCS1sKikKCSAgaWYgdGVzdCAiJGxp bmttb2RlIiAhPSBsaWIgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nOyB0 aGVuCgkgICAgZnVuY193YXJuaW5nICJcYC1sJyBpcyBpZ25vcmVkIGZvciBh cmNoaXZlcy9vYmplY3RzIgoJICAgIGNvbnRpbnVlCgkgIGZpCgkgIGZ1bmNf c3RyaXBuYW1lICctbCcgJycgIiRkZXBsaWIiCgkgIG5hbWU9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdAoJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0 aGVuCgkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGli X3NlYXJjaF9wYXRoICRjb21waWxlcl9saWJfc2VhcmNoX2RpcnMgJHN5c19s aWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoIgoJICBlbHNlCgkg ICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJj aF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0 aCIKCSAgZmkKCSAgZm9yIHNlYXJjaGRpciBpbiAkc2VhcmNoZGlyczsgZG8K CSAgICBmb3Igc2VhcmNoX2V4dCBpbiAubGEgJHN0ZF9zaHJleHQgLnNvIC5h OyBkbwoJICAgICAgIyBTZWFyY2ggdGhlIGxpYnRvb2wgbGlicmFyeQoJICAg ICAgbGliPSIkc2VhcmNoZGlyL2xpYiR7bmFtZX0ke3NlYXJjaF9leHR9IgoJ ICAgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KCQlpZiB0ZXN0ICIkc2Vh cmNoX2V4dCIgPSAiLmxhIjsgdGhlbgoJCSAgZm91bmQ9eWVzCgkJZWxzZQoJ CSAgZm91bmQ9bm8KCQlmaQoJCWJyZWFrIDIKCSAgICAgIGZpCgkgICAgZG9u ZQoJICBkb25lCgkgIGlmIHRlc3QgIiRmb3VuZCIgIT0geWVzOyB0aGVuCgkg ICAgIyBkZXBsaWIgZG9lc24ndCBzZWVtIHRvIGJlIGEgbGlidG9vbCBsaWJy YXJ5CgkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxp bmsiOyB0aGVuCgkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNv bXBpbGVfZGVwbGlicyIKCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBs aWIgJGZpbmFsaXplX2RlcGxpYnMiCgkgICAgZWxzZQoJICAgICAgZGVwbGli cz0iJGRlcGxpYiAkZGVwbGlicyIKCSAgICAgIHRlc3QgIiRsaW5rbW9kZSIg PSBsaWIgJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBl bmRlbmN5X2xpYnMiCgkgICAgZmkKCSAgICBjb250aW51ZQoJICBlbHNlICMg ZGVwbGliIGlzIGEgbGlidG9vbCBsaWJyYXJ5CgkgICAgIyBJZiAkYWxsb3df bGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBsaWIg aXMgYSBzdGRsaWIsCgkgICAgIyBXZSBuZWVkIHRvIGRvIHNvbWUgc3BlY2lh bCB0aGluZ3MgaGVyZSwgYW5kIG5vdCBsYXRlci4KCSAgICBpZiB0ZXN0ICJY JGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAi WHllcyIgOyB0aGVuCgkgICAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBz ICIgaW4KCSAgICAgICoiICRkZXBsaWIgIiopCgkJaWYgZnVuY19sYWxpYl9w ICIkbGliIjsgdGhlbgoJCSAgbGlicmFyeV9uYW1lcz0KCQkgIG9sZF9saWJy YXJ5PQoJCSAgZnVuY19zb3VyY2UgIiRsaWIiCgkJICBmb3IgbCBpbiAkb2xk X2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCgkJICAgIGxsPSIkbCIKCQkg IGRvbmUKCQkgIGlmIHRlc3QgIlgkbGwiID0gIlgkb2xkX2xpYnJhcnkiIDsg dGhlbiAjIG9ubHkgc3RhdGljIHZlcnNpb24gYXZhaWxhYmxlCgkJICAgIGZv dW5kPW5vCgkJICAgIGZ1bmNfZGlybmFtZSAiJGxpYiIgIiIgIi4iCgkJICAg IGxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKCQkgICAgbGliPSRsYWRp ci8kb2xkX2xpYnJhcnkKCQkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNz IiA9ICJwcm9nLGxpbmsiOyB0aGVuCgkJICAgICAgY29tcGlsZV9kZXBsaWJz PSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCgkJICAgICAgZmluYWxpemVf ZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKCQkgICAgZWxz ZQoJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCgkJICAgICAg dGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9 IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKCQkgICAgZmkKCQkgICAg Y29udGludWUKCQkgIGZpCgkJZmkKCQk7OwoJICAgICAgKikgOzsKCSAgICAg IGVzYWMKCSAgICBmaQoJICBmaQoJICA7OyAjIC1sCgkqLmx0ZnJhbWV3b3Jr KQoJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7 IHRoZW4KCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVf ZGVwbGlicyIKCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5h bGl6ZV9kZXBsaWJzIgoJICBlbHNlCgkgICAgZGVwbGlicz0iJGRlcGxpYiAk ZGVwbGlicyIKCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhl bgoJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCgkJ ICAgICoiICRkZXBsaWIgIiopIDs7CgkJICAgICogKSBuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncys9IiAkZGVwbGliIiA7OwoJCWVzYWMKCSAgICBmaQoJ ICBmaQoJICBjb250aW51ZQoJICA7OwoJLUwqKQoJICBjYXNlICRsaW5rbW9k ZSBpbgoJICBsaWIpCgkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIK CSAgICB0ZXN0ICIkcGFzcyIgPSBjb252ICYmIGNvbnRpbnVlCgkgICAgbmV3 ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMi CgkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKCSAgICBm dW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIK CSAgICBuZXdsaWJfc2VhcmNoX3BhdGgrPSIgJGZ1bmNfcmVzb2x2ZV9zeXNy b290X3Jlc3VsdCIKCSAgICA7OwoJICBwcm9nKQoJICAgIGlmIHRlc3QgIiRw YXNzIiA9IGNvbnY7IHRoZW4KCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRl cGxpYnMiCgkgICAgICBjb250aW51ZQoJICAgIGZpCgkgICAgaWYgdGVzdCAi JHBhc3MiID0gc2NhbjsgdGhlbgoJICAgICAgZGVwbGlicz0iJGRlcGxpYiAk ZGVwbGlicyIKCSAgICBlbHNlCgkgICAgICBjb21waWxlX2RlcGxpYnM9IiRk ZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKCSAgICAgIGZpbmFsaXplX2RlcGxp YnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCgkgICAgZmkKCSAgICBm dW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgoJICAgIGZ1bmNfcmVz b2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgoJICAgIG5l d2xpYl9zZWFyY2hfcGF0aCs9IiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVz dWx0IgoJICAgIDs7CgkgICopCgkgICAgZnVuY193YXJuaW5nICJcYC1MJyBp cyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgoJICAgIDs7CgkgIGVz YWMgIyBsaW5rbW9kZQoJICBjb250aW51ZQoJICA7OyAjIC1MCgktUiopCgkg IGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KCSAgICBmdW5jX3N0cmlw bmFtZSAnLVInICcnICIkZGVwbGliIgoJICAgIGZ1bmNfcmVzb2x2ZV9zeXNy b290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgoJICAgIGRpcj0kZnVuY19y ZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CgkgICAgIyBNYWtlIHN1cmUgdGhlIHhy cGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KCSAgICBj YXNlICIkeHJwYXRoICIgaW4KCSAgICAqIiAkZGlyICIqKSA7OwoJICAgICop IHhycGF0aCs9IiAkZGlyIiA7OwoJICAgIGVzYWMKCSAgZmkKCSAgZGVwbGli cz0iJGRlcGxpYiAkZGVwbGlicyIKCSAgY29udGludWUKCSAgOzsKCSoubGEp CgkgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZGVwbGliIgoJICBsaWI9JGZ1 bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAoJICA7OwoJKi4kbGliZXh0KQoJ ICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCgkgICAgZGVwbGlicz0i JGRlcGxpYiAkZGVwbGlicyIKCSAgICBjb250aW51ZQoJICBmaQoJICBjYXNl ICRsaW5rbW9kZSBpbgoJICBsaWIpCgkgICAgIyBMaW5raW5nIGNvbnZlbmll bmNlIG1vZHVsZXMgaW50byBzaGFyZWQgbGlicmFyaWVzIGlzIGFsbG93ZWQs CgkgICAgIyBidXQgbGlua2luZyBvdGhlciBzdGF0aWMgbGlicmFyaWVzIGlz IG5vbi1wb3J0YWJsZS4KCSAgICBjYXNlICIgJGRscHJlY29udmVuaWVuY2Vs aWJzICIgaW4KCSAgICAqIiAkZGVwbGliICIqKSA7OwoJICAgICopCgkgICAg ICB2YWxpZF9hX2xpYj1ubwoJICAgICAgY2FzZSAkZGVwbGlic19jaGVja19t ZXRob2QgaW4KCQltYXRjaF9wYXR0ZXJuKikKCQkgIHNldCBkdW1teSAkZGVw bGlic19jaGVja19tZXRob2Q7IHNoaWZ0CgkJICBtYXRjaF9wYXR0ZXJuX3Jl Z2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipc KSJgCgkJICBpZiBldmFsICJcJEVDSE8gXCIkZGVwbGliXCIiIDI+L2Rldi9u dWxsIHwgJFNFRCAxMHEgXAoJCSAgICB8ICRFR1JFUCAiJG1hdGNoX3BhdHRl cm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCgkJICAgIHZhbGlkX2FfbGli PXllcwoJCSAgZmkKCQk7OwoJCXBhc3NfYWxsKQoJCSAgdmFsaWRfYV9saWI9 eWVzCgkJOzsKCSAgICAgIGVzYWMKCSAgICAgIGlmIHRlc3QgIiR2YWxpZF9h X2xpYiIgIT0geWVzOyB0aGVuCgkJZWNobwoJCSRFQ0hPICIqKiogV2Fybmlu ZzogVHJ5aW5nIHRvIGxpbmsgd2l0aCBzdGF0aWMgbGliIGFyY2hpdmUgJGRl cGxpYi4iCgkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBt YWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIK CQllY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkg Y2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgoJCWVjaG8gIioqKiBz aGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5v dCBhcHBlYXIgdG8gaGF2ZSIKCQllY2hvICIqKiogYmVjYXVzZSB0aGUgZmls ZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMg bWUgYmVsaWV2ZSIKCQllY2hvICIqKiogdGhhdCBpdCBpcyBqdXN0IGEgc3Rh dGljIGFyY2hpdmUgdGhhdCBJIHNob3VsZCBub3QgdXNlIGhlcmUuIgoJICAg ICAgZWxzZQoJCWVjaG8KCQkkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcg dGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUiCgkJJEVD SE8gIioqKiBzdGF0aWMgbGlicmFyeSAkZGVwbGliIGlzIG5vdCBwb3J0YWJs ZSEiCgkJZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKCSAgICAgIGZpCgkg ICAgICA7OwoJICAgIGVzYWMKCSAgICBjb250aW51ZQoJICAgIDs7CgkgIHBy b2cpCgkgICAgaWYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KCSAgICAg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCgkgICAgZWxzZQoJICAgICAg Y29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCgkg ICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBs aWJzIgoJICAgIGZpCgkgICAgY29udGludWUKCSAgICA7OwoJICBlc2FjICMg bGlua21vZGUKCSAgOzsgIyAqLiRsaWJleHQKCSoubG8gfCAqLiRvYmpleHQp CgkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KCSAgICBkZXBsaWJz PSIkZGVwbGliICRkZXBsaWJzIgoJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSIg PSBwcm9nOyB0aGVuCgkgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVu IHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRlc3QgIiRi dWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KCSAgICAgICMgSWYgdGhl cmUgaXMgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZyBzdGF0 aWNhbGx5LAoJICAgICAgIyB3ZSBuZWVkIHRvIHByZWxvYWQuCgkgICAgICBu ZXdkbHByZWZpbGVzKz0iICRkZXBsaWIiCgkgICAgICBjb21waWxlX2RlcGxp YnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKCSAgICAgIGZpbmFsaXpl X2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCgkgICAgZWxz ZQoJICAgICAgbmV3ZGxmaWxlcys9IiAkZGVwbGliIgoJICAgIGZpCgkgIGZp CgkgIGNvbnRpbnVlCgkgIDs7CgklREVQTElCUyUpCgkgIGFsbGRlcGxpYnM9 eWVzCgkgIGNvbnRpbnVlCgkgIDs7Cgllc2FjICMgY2FzZSAkZGVwbGliCgoJ aWYgdGVzdCAiJGZvdW5kIiA9IHllcyB8fCB0ZXN0IC1mICIkbGliIjsgdGhl biA6CgllbHNlCgkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIHRo ZSBsaWJyYXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRl cGxpYiciCglmaQoKCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkg aXMgYSBsaWJ0b29sIGFyY2hpdmUuCglmdW5jX2xhbGliX3Vuc2FmZV9wICIk bGliIiBcCgkgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90 IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgoKCWZ1bmNfZGlybmFtZSAiJGxp YiIgIiIgIi4iCglsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCgoJZGxu YW1lPQoJZGxvcGVuPQoJZGxwcmVvcGVuPQoJbGliZGlyPQoJbGlicmFyeV9u YW1lcz0KCW9sZF9saWJyYXJ5PQoJaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0K CSMgSWYgdGhlIGxpYnJhcnkgd2FzIGluc3RhbGxlZCB3aXRoIGFuIG9sZCBy ZWxlYXNlIG9mIGxpYnRvb2wsCgkjIGl0IHdpbGwgbm90IHJlZGVmaW5lIHZh cmlhYmxlcyBpbnN0YWxsZWQsIG9yIHNob3VsZG5vdGxpbmsKCWluc3RhbGxl ZD15ZXMKCXNob3VsZG5vdGxpbms9bm8KCWF2b2lkdGVtcHJwYXRoPQoKCgkj IFJlYWQgdGhlIC5sYSBmaWxlCglmdW5jX3NvdXJjZSAiJGxpYiIKCgkjIENv bnZlcnQgIi1mcmFtZXdvcmsgZm9vIiB0byAiZm9vLmx0ZnJhbWV3b3JrIgoJ aWYgdGVzdCAtbiAiJGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiOyB0aGVuCgkg IHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiJGluaGVyaXRl ZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncy8tZnJhbWV3b3JrIFwoW14gJF0q XCkvXDEubHRmcmFtZXdvcmsvZydgCgkgIGZvciB0bXBfaW5oZXJpdGVkX2xp bmtlcl9mbGFnIGluICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnczsgZG8K CSAgICBjYXNlICIgJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4K CSAgICAgICoiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnICIqKSA7OwoJ ICAgICAgKikgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MrPSIgJHRtcF9p bmhlcml0ZWRfbGlua2VyX2ZsYWciOzsKCSAgICBlc2FjCgkgIGRvbmUKCWZp CglkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICIgJGRlcGVuZGVuY3lfbGlicyIg fCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3Jr IFwxJWcnYAoJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGlu ayIgfHwKCSAgIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2Fu IiB8fAoJICAgeyB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAi JGxpbmttb2RlIiAhPSBsaWI7IH07IHRoZW4KCSAgdGVzdCAtbiAiJGRsb3Bl biIgJiYgZGxmaWxlcys9IiAkZGxvcGVuIgoJICB0ZXN0IC1uICIkZGxwcmVv cGVuIiAmJiBkbHByZWZpbGVzKz0iICRkbHByZW9wZW4iCglmaQoKCWlmIHRl c3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KCSAgIyBPbmx5IGNoZWNrIGZvciBj b252ZW5pZW5jZSBsaWJyYXJpZXMKCSAgZGVwbGlicz0iJGxpYiAkZGVwbGli cyIKCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KCSAgICBpZiB0ZXN0 IC16ICIkb2xkX2xpYnJhcnkiOyB0aGVuCgkgICAgICBmdW5jX2ZhdGFsX2Vy cm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAk bGliJyIKCSAgICBmaQoJICAgICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmll bmNlIGxpYnJhcnksIHNvIGFkZCBpbiBpdHMgb2JqZWN0cy4KCSAgICBjb252 ZW5pZW5jZSs9IiAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCgkgICAg b2xkX2NvbnZlbmllbmNlKz0iICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFy eSIKCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAi JGxpbmttb2RlIiAhPSBsaWI7IHRoZW4KCSAgICBmdW5jX2ZhdGFsX2Vycm9y ICJcYCRsaWInIGlzIG5vdCBhIGNvbnZlbmllbmNlIGxpYnJhcnkiCgkgIGZp CgkgIHRtcF9saWJzPQoJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xp YnM7IGRvCgkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKCSAgICBp ZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgoJICAgICAgY2FzZSAi JHRtcF9saWJzICIgaW4KCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxk ZXBsaWJzKz0iICRkZXBsaWIiIDs7CgkgICAgICBlc2FjCgkgICAgZmkKCSAg ICB0bXBfbGlicys9IiAkZGVwbGliIgoJICBkb25lCgkgIGNvbnRpbnVlCglm aSAjICRwYXNzID0gY29udgoKCgkjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGli cmFyeSB3ZSBsaW5rIGFnYWluc3QuCglsaW5rbGliPQoJaWYgdGVzdCAtbiAi JG9sZF9saWJyYXJ5IiAmJgoJICAgeyB0ZXN0ICIkcHJlZmVyX3N0YXRpY19s aWJzIiA9IHllcyB8fAoJICAgICB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJz LCRpbnN0YWxsZWQiID0gImJ1aWx0LG5vIjsgfTsgdGhlbgoJICBsaW5rbGli PSRvbGRfbGlicmFyeQoJZWxzZQoJICBmb3IgbCBpbiAkb2xkX2xpYnJhcnkg JGxpYnJhcnlfbmFtZXM7IGRvCgkgICAgbGlua2xpYj0iJGwiCgkgIGRvbmUK CWZpCglpZiB0ZXN0IC16ICIkbGlua2xpYiI7IHRoZW4KCSAgZnVuY19mYXRh bF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9y IFxgJGxpYiciCglmaQoKCSMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQg d2l0aCAtZGxvcGVuLgoJaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVu CgkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCgkgICAgZnVuY19mYXRh bF9lcnJvciAiY2Fubm90IC1kbG9wZW4gYSBjb252ZW5pZW5jZSBsaWJyYXJ5 OiBcYCRsaWInIgoJICBmaQoJICBpZiB0ZXN0IC16ICIkZGxuYW1lIiB8fAoJ ICAgICB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9IHllcyB8fAoJICAgICB0 ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCgkgICAgIyBJ ZiB0aGVyZSBpcyBubyBkbG5hbWUsIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdl J3JlIGxpbmtpbmcKCSAgICAjIHN0YXRpY2FsbHksIHdlIG5lZWQgdG8gcHJl bG9hZC4gIFdlIGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQoJICAgICMgZGVw ZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3MgZGVwbGliIHByZWxvYWRl ciBkb2Vzbid0CgkgICAgIyBib21iIG91dCBpbiB0aGUgbG9hZCBkZXBsaWJz IHBoYXNlLgoJICAgIGRscHJlZmlsZXMrPSIgJGxpYiAkZGVwZW5kZW5jeV9s aWJzIgoJICBlbHNlCgkgICAgbmV3ZGxmaWxlcys9IiAkbGliIgoJICBmaQoJ ICBjb250aW51ZQoJZmkgIyAkcGFzcyA9IGRsb3BlbgoKCSMgV2UgbmVlZCBh biBhYnNvbHV0ZSBwYXRoLgoJY2FzZSAkbGFkaXIgaW4KCVtcXC9dKiB8IFtB LVphLXpdOltcXC9dKikgYWJzX2xhZGlyPSIkbGFkaXIiIDs7CgkqKQoJICBh YnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKCSAgaWYgdGVzdCAteiAi JGFic19sYWRpciI7IHRoZW4KCSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBk ZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkbGFkaXIn IgoJICAgIGZ1bmNfd2FybmluZyAicGFzc2luZyBpdCBsaXRlcmFsbHkgdG8g dGhlIGxpbmtlciwgYWx0aG91Z2ggaXQgbWlnaHQgZmFpbCIKCSAgICBhYnNf bGFkaXI9IiRsYWRpciIKCSAgZmkKCSAgOzsKCWVzYWMKCWZ1bmNfYmFzZW5h bWUgIiRsaWIiCglsYW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKCgkj IEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5kIGxpYnJh cnkgbmFtZS4KCWlmIHRlc3QgIlgkaW5zdGFsbGVkIiA9IFh5ZXM7IHRoZW4K CSAgaWYgdGVzdCAhIC1mICIkbHRfc3lzcm9vdCRsaWJkaXIvJGxpbmtsaWIi ICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIiOyB0aGVuCgkgICAg ZnVuY193YXJuaW5nICJsaWJyYXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKCSAg ICBkaXI9IiRsYWRpciIKCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIiCgkgICAg bGliZGlyPSIkYWJzX2xhZGlyIgoJICBlbHNlCgkgICAgZGlyPSIkbHRfc3lz cm9vdCRsaWJkaXIiCgkgICAgYWJzZGlyPSIkbHRfc3lzcm9vdCRsaWJkaXIi CgkgIGZpCgkgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMg JiYgYXZvaWR0ZW1wcnBhdGg9eWVzCgllbHNlCgkgIGlmIHRlc3QgISAtZiAi JGxhZGlyLyRvYmpkaXIvJGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFk aXIvJGxpbmtsaWIiOyB0aGVuCgkgICAgZGlyPSIkbGFkaXIiCgkgICAgYWJz ZGlyPSIkYWJzX2xhZGlyIgoJICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNoIHBh dGggbGF0ZXIKCSAgICBub3RpbnN0X3BhdGgrPSIgJGFic19sYWRpciIKCSAg ZWxzZQoJICAgIGRpcj0iJGxhZGlyLyRvYmpkaXIiCgkgICAgYWJzZGlyPSIk YWJzX2xhZGlyLyRvYmpkaXIiCgkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2gg cGF0aCBsYXRlcgoJICAgIG5vdGluc3RfcGF0aCs9IiAkYWJzX2xhZGlyIgoJ ICBmaQoJZmkgIyAkaW5zdGFsbGVkID0geWVzCglmdW5jX3N0cmlwbmFtZSAn bGliJyAnLmxhJyAiJGxhbmFtZSIKCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdAoKCSMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxw cmVvcGVuLgoJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCgkg IGlmIHRlc3QgLXogIiRsaWJkaXIiICYmIHRlc3QgIiRsaW5rbW9kZSIgPSBw cm9nOyB0aGVuCgkgICAgZnVuY19mYXRhbF9lcnJvciAib25seSBsaWJyYXJp ZXMgbWF5IC1kbHByZW9wZW4gYSBjb252ZW5pZW5jZSBsaWJyYXJ5OiBcYCRs aWInIgoJICBmaQoJICBjYXNlICIkaG9zdCIgaW4KCSAgICAjIHNwZWNpYWwg aGFuZGxpbmcgZm9yIHBsYXRmb3JtcyB3aXRoIFBFLURMTHMuCgkgICAgKmN5 Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCgkgICAgICAjIExpbmtlciB3 aWxsIGF1dG9tYXRpY2FsbHkgbGluayBhZ2FpbnN0IHNoYXJlZCBsaWJyYXJ5 IGlmIGJvdGgKCSAgICAgICMgc3RhdGljIGFuZCBzaGFyZWQgYXJlIHByZXNl bnQuICBUaGVyZWZvcmUsIGVuc3VyZSB3ZSBleHRyYWN0CgkgICAgICAjIHN5 bWJvbHMgZnJvbSB0aGUgaW1wb3J0IGxpYnJhcnkgaWYgYSBzaGFyZWQgbGli cmFyeSBpcyBwcmVzZW50CgkgICAgICAjIChvdGhlcndpc2UsIHRoZSBkbG9w ZW4gbW9kdWxlIG5hbWUgd2lsbCBiZSBpbmNvcnJlY3QpLiAgV2UgZG8KCSAg ICAgICMgdGhpcyBieSBwdXR0aW5nIHRoZSBpbXBvcnQgbGlicmFyeSBuYW1l IGludG8gJG5ld2RscHJlZmlsZXMuCgkgICAgICAjIFdlIHJlY292ZXIgdGhl IGRsb3BlbiBtb2R1bGUgbmFtZSBieSAnc2F2aW5nJyB0aGUgbGEgZmlsZQoJ ICAgICAgIyBuYW1lIGluIGEgc3BlY2lhbCBwdXJwb3NlIHZhcmlhYmxlLCBh bmQgKGxhdGVyKSBleHRyYWN0aW5nIHRoZQoJICAgICAgIyBkbG5hbWUgZnJv bSB0aGUgbGEgZmlsZS4KCSAgICAgIGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0 aGVuCgkgICAgICAgIGZ1bmNfdHJfc2ggIiRkaXIvJGxpbmtsaWIiCgkgICAg ICAgIGV2YWwgImxpYmZpbGVfJGZ1bmNfdHJfc2hfcmVzdWx0PVwkYWJzX2xh ZGlyL1wkbGFuYW1lIgoJICAgICAgICBuZXdkbHByZWZpbGVzKz0iICRkaXIv JGxpbmtsaWIiCgkgICAgICBlbHNlCgkgICAgICAgIG5ld2RscHJlZmlsZXMr PSIgJGRpci8kb2xkX2xpYnJhcnkiCgkgICAgICAgICMgS2VlcCBhIGxpc3Qg b2YgcHJlb3BlbmVkIGNvbnZlbmllbmNlIGxpYnJhcmllcyB0byBjaGVjawoJ ICAgICAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkg aW4gdGhlIGxpbmsgcGFzcy4KCSAgICAgICAgdGVzdCAteiAiJGxpYmRpciIg JiYgXAoJICAgICAgICAgIGRscHJlY29udmVuaWVuY2VsaWJzKz0iICRkaXIv JG9sZF9saWJyYXJ5IgoJICAgICAgZmkKCSAgICA7OwoJICAgICogKQoJICAg ICAgIyBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbGlicmFyeSAoc28gdGhhdCBu byBzaWxseSBfRFlOQU1JQyBzeW1ib2xzCgkgICAgICAjIGFyZSByZXF1aXJl ZCB0byBsaW5rKS4KCSAgICAgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7 IHRoZW4KCSAgICAgICAgbmV3ZGxwcmVmaWxlcys9IiAkZGlyLyRvbGRfbGli cmFyeSIKCSAgICAgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29u dmVuaWVuY2UgbGlicmFyaWVzIHRvIGNoZWNrCgkgICAgICAgICMgdGhhdCB0 aGV5IGFyZSBiZWluZyB1c2VkIGNvcnJlY3RseSBpbiB0aGUgbGluayBwYXNz LgoJICAgICAgICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCgkgICAgICAgICAg ZGxwcmVjb252ZW5pZW5jZWxpYnMrPSIgJGRpci8kb2xkX2xpYnJhcnkiCgkg ICAgICAjIE90aGVyd2lzZSwgdXNlIHRoZSBkbG5hbWUsIHNvIHRoYXQgbHRf ZGxvcGVuIGZpbmRzIGl0LgoJICAgICAgZWxpZiB0ZXN0IC1uICIkZGxuYW1l IjsgdGhlbgoJICAgICAgICBuZXdkbHByZWZpbGVzKz0iICRkaXIvJGRsbmFt ZSIKCSAgICAgIGVsc2UKCSAgICAgICAgbmV3ZGxwcmVmaWxlcys9IiAkZGly LyRsaW5rbGliIgoJICAgICAgZmkKCSAgICA7OwoJICBlc2FjCglmaSAjICRw YXNzID0gZGxwcmVvcGVuCgoJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4K CSAgIyBMaW5rIHRoZSBjb252ZW5pZW5jZSBsaWJyYXJ5CgkgIGlmIHRlc3Qg IiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KCSAgICBkZXBsaWJzPSIkZGlyLyRv bGRfbGlicmFyeSAkZGVwbGlicyIKCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUs JHBhc3MiID0gInByb2csbGluayI7IHRoZW4KCSAgICBjb21waWxlX2RlcGxp YnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRjb21waWxlX2RlcGxpYnMiCgkgICAg ZmluYWxpemVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGZpbmFsaXpl X2RlcGxpYnMiCgkgIGVsc2UKCSAgICBkZXBsaWJzPSIkbGliICRkZXBsaWJz IiAjIHVzZWQgZm9yIHByb2csc2NhbiBwYXNzCgkgIGZpCgkgIGNvbnRpbnVl CglmaQoKCglpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyAmJiB0ZXN0ICIk cGFzcyIgIT0gbGluazsgdGhlbgoJICBuZXdsaWJfc2VhcmNoX3BhdGgrPSIg JGxhZGlyIgoJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgoKCSAgbGlua2Fs bGRlcGxpYnM9bm8KCSAgaWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9 IG5vIHx8IHRlc3QgLXogIiRsaWJyYXJ5X25hbWVzIiB8fAoJICAgICB0ZXN0 ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCgkgICAgbGlua2Fs bGRlcGxpYnM9eWVzCgkgIGZpCgoJICB0bXBfbGlicz0KCSAgZm9yIGRlcGxp YiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwoJICAgIGNhc2UgJGRlcGxpYiBp bgoJICAgIC1MKikgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIK CSAgICAgICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5h bWVfcmVzdWx0IgoJICAgICAgICAgbmV3bGliX3NlYXJjaF9wYXRoKz0iICRm dW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCgkJIDs7CgkgICAgZXNhYwoJ ICAgICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lfbGli cz8KCSAgICBpZiB0ZXN0ICIkbGlua2FsbGRlcGxpYnMiID0geWVzOyB0aGVu CgkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgoJICAgIGVsc2UK CSAgICAgICMgTmVlZCB0byBoYXJkY29kZSBzaGFyZWQgbGlicmFyeSBwYXRo cwoJICAgICAgIyBvci9hbmQgbGluayBhZ2FpbnN0IHN0YXRpYyBsaWJyYXJp ZXMKCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVw ZW5kZW5jeV9saWJzIgoJICAgIGZpCgkgICAgaWYgJG9wdF9wcmVzZXJ2ZV9k dXBfZGVwcyA7IHRoZW4KCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCgkg ICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicys9IiAkZGVwbGli IiA7OwoJICAgICAgZXNhYwoJICAgIGZpCgkgICAgdG1wX2xpYnMrPSIgJGRl cGxpYiIKCSAgZG9uZSAjIGZvciBkZXBsaWIKCSAgY29udGludWUKCWZpICMg JGxpbmttb2RlID0gcHJvZy4uLgoKCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFz cyIgPSAicHJvZyxsaW5rIjsgdGhlbgoJICBpZiB0ZXN0IC1uICIkbGlicmFy eV9uYW1lcyIgJiYKCSAgICAgeyB7IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xp YnMiID0gbm8gfHwKCSAgICAgICAgIHRlc3QgIiRwcmVmZXJfc3RhdGljX2xp YnMsJGluc3RhbGxlZCIgPSAiYnVpbHQseWVzIjsgfSB8fAoJICAgICAgIHRl c3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KCSAgICAjIFdlIG5lZWQg dG8gaGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aAoJICAgIGlmIHRlc3QgLW4g IiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC16ICIkYXZvaWR0ZW1wcnBhdGgi IDsgdGhlbgoJICAgICAgIyBNYWtlIHN1cmUgdGhlIHJwYXRoIGNvbnRhaW5z IG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgoJICAgICAgY2FzZSAiJHRlbXBf cnBhdGg6IiBpbgoJICAgICAgKiIkYWJzZGlyOiIqKSA7OwoJICAgICAgKikg dGVtcF9ycGF0aCs9IiRhYnNkaXI6IiA7OwoJICAgICAgZXNhYwoJICAgIGZp CgoJICAgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aC4KCSAgICAjIFNr aXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0 IHJ1bi10aW1lCgkgICAgIyBzZWFyY2ggcGF0aC4KCSAgICBjYXNlICIgJHN5 c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCgkgICAgKiIgJGFic2RpciAiKikg OzsKCSAgICAqKQoJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgoJ ICAgICAgKiIgJGFic2RpciAiKikgOzsKCSAgICAgICopIGNvbXBpbGVfcnBh dGgrPSIgJGFic2RpciIgOzsKCSAgICAgIGVzYWMKCSAgICAgIDs7CgkgICAg ZXNhYwoJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4K CSAgICAqIiAkbGliZGlyICIqKSA7OwoJICAgICopCgkgICAgICBjYXNlICIk ZmluYWxpemVfcnBhdGggIiBpbgoJICAgICAgKiIgJGxpYmRpciAiKikgOzsK CSAgICAgICopIGZpbmFsaXplX3JwYXRoKz0iICRsaWJkaXIiIDs7CgkgICAg ICBlc2FjCgkgICAgICA7OwoJICAgIGVzYWMKCSAgZmkgIyAkbGlua21vZGUs JHBhc3MgPSBwcm9nLGxpbmsuLi4KCgkgIGlmIHRlc3QgIiRhbGxkZXBsaWJz IiA9IHllcyAmJgoJICAgICB7IHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhv ZCIgPSBwYXNzX2FsbCB8fAoJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRv b2xfbGlicyIgPSB5ZXMgJiYKCQkgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMi OyB9OyB9OyB0aGVuCgkgICAgIyBXZSBvbmx5IG5lZWQgdG8gc2VhcmNoIGZv ciBzdGF0aWMgbGlicmFyaWVzCgkgICAgY29udGludWUKCSAgZmkKCWZpCgoJ bGlua19zdGF0aWM9bm8gIyBXaGV0aGVyIHRoZSBkZXBsaWIgd2lsbCBiZSBs aW5rZWQgc3RhdGljYWxseQoJdXNlX3N0YXRpY19saWJzPSRwcmVmZXJfc3Rh dGljX2xpYnMKCWlmIHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQg JiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KCSAgdXNlX3N0YXRp Y19saWJzPW5vCglmaQoJaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYm CgkgICB7IHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gbm8gfHwgdGVzdCAt eiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhlbgoJICBjYXNlICRob3N0IGluCgkg ICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyopCgkgICAgICAjIE5vIHBv aW50IGluIHJlbGlua2luZyBETExzIGJlY2F1c2UgcGF0aHMgYXJlIG5vdCBl bmNvZGVkCgkgICAgICBub3RpbnN0X2RlcGxpYnMrPSIgJGxpYiIKCSAgICAg IG5lZWRfcmVsaW5rPW5vCgkgICAgOzsKCSAgKikKCSAgICBpZiB0ZXN0ICIk aW5zdGFsbGVkIiA9IG5vOyB0aGVuCgkgICAgICBub3RpbnN0X2RlcGxpYnMr PSIgJGxpYiIKCSAgICAgIG5lZWRfcmVsaW5rPXllcwoJICAgIGZpCgkgICAg OzsKCSAgZXNhYwoJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFyeQoKCSAg IyBXYXJuIGFib3V0IHBvcnRhYmlsaXR5LCBjYW4ndCBsaW5rIGFnYWluc3Qg LW1vZHVsZSdzIG9uIHNvbWUKCSAgIyBzeXN0ZW1zIChkYXJ3aW4pLiAgRG9u J3QgYmxlYXQgYWJvdXQgZGxvcGVuZWQgbW9kdWxlcyB0aG91Z2ghCgkgIGRs b3Blbm1vZHVsZT0iIgoJICBmb3IgZGxwcmVtb2R1bGV0ZXN0IGluICRkbHBy ZWZpbGVzOyBkbwoJICAgIGlmIHRlc3QgIlgkZGxwcmVtb2R1bGV0ZXN0IiA9 ICJYJGxpYiI7IHRoZW4KCSAgICAgIGRsb3Blbm1vZHVsZT0iJGRscHJlbW9k dWxldGVzdCIKCSAgICAgIGJyZWFrCgkgICAgZmkKCSAgZG9uZQoJICBpZiB0 ZXN0IC16ICIkZGxvcGVubW9kdWxlIiAmJiB0ZXN0ICIkc2hvdWxkbm90bGlu ayIgPSB5ZXMgJiYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgoJICAgIGVj aG8KCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgoJICAg ICAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxl ICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgoJICAgIGVs c2UKCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hh cmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1 bGUiCgkgICAgZmkKCSAgICAkRUNITyAiKioqICRsaW5rbGliIGlzIG5vdCBw b3J0YWJsZSEiCgkgIGZpCgkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIg JiYKCSAgICAgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5ZXM7IHRo ZW4KCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCgkgICAgIyBT a2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVs dCBydW4tdGltZQoJICAgICMgc2VhcmNoIHBhdGguCgkgICAgY2FzZSAiICRz eXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgoJICAgICoiICRhYnNkaXIgIiop IDs7CgkgICAgKikKCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4K CSAgICAgICoiICRhYnNkaXIgIiopIDs7CgkgICAgICAqKSBjb21waWxlX3Jw YXRoKz0iICRhYnNkaXIiIDs7CgkgICAgICBlc2FjCgkgICAgICA7OwoJICAg IGVzYWMKCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGlu CgkgICAgKiIgJGxpYmRpciAiKikgOzsKCSAgICAqKQoJICAgICAgY2FzZSAi JGZpbmFsaXplX3JwYXRoICIgaW4KCSAgICAgICoiICRsaWJkaXIgIiopIDs7 CgkgICAgICAqKSBmaW5hbGl6ZV9ycGF0aCs9IiAkbGliZGlyIiA7OwoJICAg ICAgZXNhYwoJICAgICAgOzsKCSAgICBlc2FjCgkgIGZpCgoJICBpZiB0ZXN0 IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiOyB0aGVuCgkg ICAgIyBmaWd1cmUgb3V0IHRoZSBzb25hbWUKCSAgICBzZXQgZHVtbXkgJGxp YnJhcnlfbmFtZXMKCSAgICBzaGlmdAoJICAgIHJlYWxuYW1lPSIkMSIKCSAg ICBzaGlmdAoJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFt ZV9zcGVjXCIiYAoJICAgICMgdXNlIGRsbmFtZSBpZiB3ZSBnb3QgaXQuIGl0 J3MgcGVyZmVjdGx5IGdvb2QsIG5vPwoJICAgIGlmIHRlc3QgLW4gIiRkbG5h bWUiOyB0aGVuCgkgICAgICBzb25hbWU9IiRkbG5hbWUiCgkgICAgZWxpZiB0 ZXN0IC1uICIkc29uYW1lX3NwZWMiOyB0aGVuCgkgICAgICAjIGJsZWggd2lu ZG93cwoJICAgICAgY2FzZSAkaG9zdCBpbgoJICAgICAgKmN5Z3dpbiogfCBt aW5ndyogfCAqY2VnY2MqKQoJICAgICAgICBmdW5jX2FyaXRoICRjdXJyZW50 IC0gJGFnZQoJCW1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAoJCXZlcnN1ZmZp eD0iLSRtYWpvciIKCQk7OwoJICAgICAgZXNhYwoJICAgICAgZXZhbCBzb25h bWU9XCIkc29uYW1lX3NwZWNcIgoJICAgIGVsc2UKCSAgICAgIHNvbmFtZT0i JHJlYWxuYW1lIgoJICAgIGZpCgoJICAgICMgTWFrZSBhIG5ldyBuYW1lIGZv ciB0aGUgZXh0cmFjdF9leHBzeW1zX2NtZHMgdG8gdXNlCgkgICAgc29yb290 PSIkc29uYW1lIgoJICAgIGZ1bmNfYmFzZW5hbWUgIiRzb3Jvb3QiCgkgICAg c29uYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCgkgICAgZnVuY19zdHJp cG5hbWUgJ2xpYicgJy5kbGwnICIkc29uYW1lIgoJICAgIG5ld2xpYj1saWJp bXAtJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdC5hCgoJICAgICMgSWYgdGhlIGxp YnJhcnkgaGFzIG5vIGV4cG9ydCBsaXN0LCB0aGVuIGNyZWF0ZSBvbmUgbm93 CgkgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHNvbmFtZS1kZWYi OyB0aGVuIDoKCSAgICBlbHNlCgkgICAgICBmdW5jX3ZlcmJvc2UgImV4dHJh Y3RpbmcgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBcYCRzb25hbWUnIgoJ ICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRleHRyYWN0X2V4cHN5bXNfY21k cyIgJ2V4aXQgJD8nCgkgICAgZmkKCgkgICAgIyBDcmVhdGUgJG5ld2xpYgoJ ICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVu IDo7IGVsc2UKCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBpbXBv cnQgbGlicmFyeSBmb3IgXGAkc29uYW1lJyIKCSAgICAgIGZ1bmNfZXhlY3V0 ZV9jbWRzICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiICdleGl0 ICQ/JwoJICAgIGZpCgkgICAgIyBtYWtlIHN1cmUgdGhlIGxpYnJhcnkgdmFy aWFibGVzIGFyZSBwb2ludGluZyB0byB0aGUgbmV3IGxpYnJhcnkKCSAgICBk aXI9JG91dHB1dF9vYmpkaXIKCSAgICBsaW5rbGliPSRuZXdsaWIKCSAgZmkg IyB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiCgoJ ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkb3B0X21v ZGUiICE9IHJlbGluazsgdGhlbgoJICAgIGFkZF9zaGxpYnBhdGg9CgkgICAg YWRkX2Rpcj0KCSAgICBhZGQ9CgkgICAgbGliX2xpbmtlZD15ZXMKCSAgICBj YXNlICRoYXJkY29kZV9hY3Rpb24gaW4KCSAgICBpbW1lZGlhdGUgfCB1bnN1 cHBvcnRlZCkKCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0g bm87IHRoZW4KCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCgkJY2FzZSAkaG9zdCBp bgoJCSAgKi0qLXNjbzMuMnY1LjAuWzAyNF0qKSBhZGRfZGlyPSItTCRkaXIi IDs7CgkJICAqLSotc3lzdjQqdXcyKikgYWRkX2Rpcj0iLUwkZGlyIiA7OwoJ CSAgKi0qLXN5c3Y1T3BlblVOSVgqIHwgKi0qLXN5c3Y1VW5peFdhcmU3Llsw MV0uWzEwXSogfCBcCgkJICAgICotKi11bml4d2FyZTcqKSBhZGRfZGlyPSIt TCRkaXIiIDs7CgkJICAqLSotZGFyd2luKiApCgkJICAgICMgaWYgdGhlIGxp YiBpcyBhIChub24tZGxvcGVuZWQpIG1vZHVsZSB0aGVuIHdlIGNhbiBub3QK CQkgICAgIyBsaW5rIGFnYWluc3QgaXQsIHNvbWVvbmUgaXMgaWdub3Jpbmcg dGhlIGVhcmxpZXIgd2FybmluZ3MKCQkgICAgaWYgL3Vzci9iaW4vZmlsZSAt TCAkYWRkIDI+IC9kZXYvbnVsbCB8CgkJCSAkR1JFUCAiOiBbXjpdKiBidW5k bGUiID4vZGV2L251bGwgOyB0aGVuCgkJICAgICAgaWYgdGVzdCAiWCRkbG9w ZW5tb2R1bGUiICE9ICJYJGxpYiI7IHRoZW4KCQkJJEVDSE8gIioqKiBXYXJu aW5nOiBsaWIgJGxpbmtsaWIgaXMgYSBtb2R1bGUsIG5vdCBhIHNoYXJlZCBs aWJyYXJ5IgoJCQlpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgoJ CQkgIGVjaG8KCQkJICBlY2hvICIqKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2Vl bSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKCQkJICBlY2hv ICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKCQkJ ZWxzZQoJCQkgIGFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCgkJCWZpCgkJICAg ICAgZWxpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCgkJCWFkZD0i JGRpci8kb2xkX2xpYnJhcnkiCgkJICAgICAgZmkKCQkgICAgZmkKCQllc2Fj CgkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IG5vOyB0 aGVuCgkJY2FzZSAkaG9zdCBpbgoJCSotKi1zdW5vcyopIGFkZF9zaGxpYnBh dGg9IiRkaXIiIDs7CgkJZXNhYwoJCWFkZF9kaXI9Ii1MJGRpciIKCQlhZGQ9 Ii1sJG5hbWUiCgkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBh dGhfdmFyIiA9IG5vOyB0aGVuCgkJYWRkX3NobGlicGF0aD0iJGRpciIKCQlh ZGQ9Ii1sJG5hbWUiCgkgICAgICBlbHNlCgkJbGliX2xpbmtlZD1ubwoJICAg ICAgZmkKCSAgICAgIDs7CgkgICAgcmVsaW5rKQoJICAgICAgaWYgdGVzdCAi JGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKCSAgICAgICAgIHRlc3QgIiRo YXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KCQlhZGQ9IiRk aXIvJGxpbmtsaWIiCgkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51 c19MIiA9IHllczsgdGhlbgoJCWFkZF9kaXI9Ii1MJGRpciIKCQkjIFRyeSBs b29raW5nIGZpcnN0IGluIHRoZSBsb2NhdGlvbiB3ZSdyZSBiZWluZyBpbnN0 YWxsZWQgdG8uCgkJaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRo ZW4KCQkgIGNhc2UgJGxpYmRpciBpbgoJCSAgICBbXFwvXSopCgkJICAgICAg YWRkX2Rpcis9IiAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgoJCSAgICAg IDs7CgkJICBlc2FjCgkJZmkKCQlhZGQ9Ii1sJG5hbWUiCgkgICAgICBlbGlm IHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgoJ CWFkZF9zaGxpYnBhdGg9IiRkaXIiCgkJYWRkPSItbCRuYW1lIgoJICAgICAg ZWxzZQoJCWxpYl9saW5rZWQ9bm8KCSAgICAgIGZpCgkgICAgICA7OwoJICAg ICopIGxpYl9saW5rZWQ9bm8gOzsKCSAgICBlc2FjCgoJICAgIGlmIHRlc3Qg IiRsaWJfbGlua2VkIiAhPSB5ZXM7IHRoZW4KCSAgICAgIGZ1bmNfZmF0YWxf Y29uZmlndXJhdGlvbiAidW5zdXBwb3J0ZWQgaGFyZGNvZGUgcHJvcGVydGll cyIKCSAgICBmaQoKCSAgICBpZiB0ZXN0IC1uICIkYWRkX3NobGlicGF0aCI7 IHRoZW4KCSAgICAgIGNhc2UgOiRjb21waWxlX3NobGlicGF0aDogaW4KCSAg ICAgICoiOiRhZGRfc2hsaWJwYXRoOiIqKSA7OwoJICAgICAgKikgY29tcGls ZV9zaGxpYnBhdGgrPSIkYWRkX3NobGlicGF0aDoiIDs7CgkgICAgICBlc2Fj CgkgICAgZmkKCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhl bgoJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGNvbXBpbGVfZGVwbGli cz0iJGFkZF9kaXIgJGNvbXBpbGVfZGVwbGlicyIKCSAgICAgIHRlc3QgLW4g IiRhZGQiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZCAkY29tcGlsZV9kZXBs aWJzIgoJICAgIGVsc2UKCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBk ZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKCSAgICAgIHRlc3QgLW4gIiRh ZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCgkgICAgICBpZiB0ZXN0 ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB5ZXMgJiYKCQkgdGVzdCAiJGhhcmRj b2RlX21pbnVzX0wiICE9IHllcyAmJgoJCSB0ZXN0ICIkaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KCQljYXNlIDokZmluYWxpemVfc2hs aWJwYXRoOiBpbgoJCSoiOiRsaWJkaXI6IiopIDs7CgkJKikgZmluYWxpemVf c2hsaWJwYXRoKz0iJGxpYmRpcjoiIDs7CgkJZXNhYwoJICAgICAgZmkKCSAg ICBmaQoJICBmaQoKCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwg dGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgoJICAgIGFkZF9zaGxp YnBhdGg9CgkgICAgYWRkX2Rpcj0KCSAgICBhZGQ9CgkgICAgIyBGaW5hbGl6 ZSBjb21tYW5kIGZvciBib3RoIGlzIHNpbXBsZToganVzdCBoYXJkY29kZSBp dC4KCSAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllcyAmJgoJ ICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87 IHRoZW4KCSAgICAgIGFkZD0iJGxpYmRpci8kbGlua2xpYiIKCSAgICBlbGlm IHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgoJICAgICAg YWRkX2Rpcj0iLUwkbGliZGlyIgoJICAgICAgYWRkPSItbCRuYW1lIgoJICAg IGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0 aGVuCgkgICAgICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgoJICAg ICAgKiI6JGxpYmRpcjoiKikgOzsKCSAgICAgICopIGZpbmFsaXplX3NobGli cGF0aCs9IiRsaWJkaXI6IiA7OwoJICAgICAgZXNhYwoJICAgICAgYWRkPSIt bCRuYW1lIgoJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIg PSB5ZXM7IHRoZW4KCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9k aXIiICYmCgkJIHRlc3QgLWYgIiRpbnN0X3ByZWZpeF9kaXIkbGliZGlyLyRs aW5rbGliIiA7IHRoZW4KCQlhZGQ9IiRpbnN0X3ByZWZpeF9kaXIkbGliZGly LyRsaW5rbGliIgoJICAgICAgZWxzZQoJCWFkZD0iJGxpYmRpci8kbGlua2xp YiIKCSAgICAgIGZpCgkgICAgZWxzZQoJICAgICAgIyBXZSBjYW5ub3Qgc2Vl bSB0byBoYXJkY29kZSBpdCwgZ3Vlc3Mgd2UnbGwgZmFrZSBpdC4KCSAgICAg IGFkZF9kaXI9Ii1MJGxpYmRpciIKCSAgICAgICMgVHJ5IGxvb2tpbmcgZmly c3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4K CSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCgkJ Y2FzZSAkbGliZGlyIGluCgkJICBbXFwvXSopCgkJICAgIGFkZF9kaXIrPSIg LUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKCQkgICAgOzsKCQllc2FjCgkg ICAgICBmaQoJICAgICAgYWRkPSItbCRuYW1lIgoJICAgIGZpCgoJICAgIGlm IHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCgkgICAgICB0ZXN0IC1u ICIkYWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIgJGZp bmFsaXplX2RlcGxpYnMiCgkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBmaW5h bGl6ZV9kZXBsaWJzPSIkYWRkICRmaW5hbGl6ZV9kZXBsaWJzIgoJICAgIGVs c2UKCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRk X2RpciAkZGVwbGlicyIKCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxp YnM9IiRhZGQgJGRlcGxpYnMiCgkgICAgZmkKCSAgZmkKCWVsaWYgdGVzdCAi JGxpbmttb2RlIiA9IHByb2c7IHRoZW4KCSAgIyBIZXJlIHdlIGFzc3VtZSB0 aGF0IG9uZSBvZiBoYXJkY29kZV9kaXJlY3Qgb3IgaGFyZGNvZGVfbWludXNf TAoJICAjIGlzIG5vdCB1bnN1cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24g YWxsIGtub3duIHN0YXRpYyBhbmQKCSAgIyBzaGFyZWQgcGxhdGZvcm1zLgoJ ICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB1bnN1cHBvcnRlZDsg dGhlbgoJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgbGlua2xpYj0i JG9sZF9saWJyYXJ5IgoJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRpci8kbGlu a2xpYiAkY29tcGlsZV9kZXBsaWJzIgoJICAgIGZpbmFsaXplX2RlcGxpYnM9 IiRkaXIvJGxpbmtsaWIgJGZpbmFsaXplX2RlcGxpYnMiCgkgIGVsc2UKCSAg ICBjb21waWxlX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRjb21waWxlX2Rl cGxpYnMiCgkgICAgZmluYWxpemVfZGVwbGlicz0iLWwkbmFtZSAtTCRkaXIg JGZpbmFsaXplX2RlcGxpYnMiCgkgIGZpCgllbGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCgkgICMgTm90IGEgc2hhcmVkIGxp YnJhcnkKCSAgaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBw YXNzX2FsbDsgdGhlbgoJICAgICMgV2UncmUgdHJ5aW5nIGxpbmsgYSBzaGFy ZWQgbGlicmFyeSBhZ2FpbnN0IGEgc3RhdGljIG9uZQoJICAgICMgYnV0IHRo ZSBzeXN0ZW0gZG9lc24ndCBzdXBwb3J0IGl0LgoKCSAgICAjIEp1c3QgcHJp bnQgYSB3YXJuaW5nIGFuZCBhZGQgdGhlIGxpYnJhcnkgdG8gZGVwZW5kZW5j eV9saWJzIHNvCgkgICAgIyB0aGF0IHRoZSBwcm9ncmFtIGNhbiBiZSBsaW5r ZWQgYWdhaW5zdCB0aGUgc3RhdGljIGxpYnJhcnkuCgkgICAgZWNobwoJICAg ICRFQ0hPICIqKiogV2FybmluZzogVGhpcyBzeXN0ZW0gY2FuIG5vdCBsaW5r IHRvIHN0YXRpYyBsaWIgYXJjaGl2ZSAkbGliLiIKCSAgICBlY2hvICIqKiog SSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1 dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgoJICAgIGVjaG8gIioqKiB5b3Ug bGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlz IGlmIHlvdSBoYXZlIGEiCgkgICAgZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9u IG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBo YXZlLiIKCSAgICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgoJICAg ICAgZWNobyAiKioqIEJ1dCBhcyB5b3UgdHJ5IHRvIGJ1aWxkIGEgbW9kdWxl IGxpYnJhcnksIGxpYnRvb2wgd2lsbCBzdGlsbCBjcmVhdGUgIgoJICAgICAg ZWNobyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhhdCBzaG91bGQgd29yayBh cyBsb25nIGFzIHRoZSBkbG9wZW5pbmcgYXBwbGljYXRpb24iCgkgICAgICBl Y2hvICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZyB0byBy ZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4iCgkgICAgICBpZiB0ZXN0IC16 ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgoJCWVjaG8KCQllY2hvICIq KiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3 YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKCQllY2hvICIqKiogbGlzdHMg ZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1 dCBsaWJ0b29sIGNvdWxkIgoJCWVjaG8gIioqKiBub3QgZmluZCBzdWNoIGEg cHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNz LiIKCQllY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEg ZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKCSAgICAgIGZpCgkgICAgICBpZiB0 ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KCQlidWlsZF9saWJ0 b29sX2xpYnM9bW9kdWxlCgkJYnVpbGRfb2xkX2xpYnM9eWVzCgkgICAgICBl bHNlCgkJYnVpbGRfbGlidG9vbF9saWJzPW5vCgkgICAgICBmaQoJICAgIGZp CgkgIGVsc2UKCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVw bGlicyIKCSAgICBsaW5rX3N0YXRpYz15ZXMKCSAgZmkKCWZpICMgbGluayBz aGFyZWQvc3RhdGljIGxpYnJhcnk/CgoJaWYgdGVzdCAiJGxpbmttb2RlIiA9 IGxpYjsgdGhlbgoJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAm JgoJICAgICB7IHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8 fAoJICAgICAgIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXMgfHwKCSAg ICAgICB0ZXN0ICIkbGlua19zdGF0aWMiID0geWVzOyB9OyB0aGVuCgkgICAg IyBFeHRyYWN0IC1SIGZyb20gZGVwZW5kZW5jeV9saWJzCgkgICAgdGVtcF9k ZXBsaWJzPQoJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGliczsg ZG8KCSAgICAgIGNhc2UgJGxpYmRpciBpbgoJICAgICAgLVIqKSBmdW5jX3N0 cmlwbmFtZSAnLVInICcnICIkbGliZGlyIgoJICAgICAgICAgICB0ZW1wX3hy cGF0aD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CgkJICAgY2FzZSAiICR4cnBh dGggIiBpbgoJCSAgICoiICR0ZW1wX3hycGF0aCAiKikgOzsKCQkgICAqKSB4 cnBhdGgrPSIgJHRlbXBfeHJwYXRoIjs7CgkJICAgZXNhYzs7CgkgICAgICAq KSB0ZW1wX2RlcGxpYnMrPSIgJGxpYmRpciI7OwoJICAgICAgZXNhYwoJICAg IGRvbmUKCSAgICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX2RlcGxpYnMiCgkg IGZpCgoJICBuZXdsaWJfc2VhcmNoX3BhdGgrPSIgJGFic2RpciIKCSAgIyBM aW5rIGFnYWluc3QgdGhpcyBsaWJyYXJ5CgkgIHRlc3QgIiRsaW5rX3N0YXRp YyIgPSBubyAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRhYnNfbGFkaXIvJGxh bmFtZSAkbmV3ZGVwZW5kZW5jeV9saWJzIgoJICAjIC4uLiBhbmQgaXRzIGRl cGVuZGVuY3lfbGlicwoJICB0bXBfbGlicz0KCSAgZm9yIGRlcGxpYiBpbiAk ZGVwZW5kZW5jeV9saWJzOyBkbwoJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0i JGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgoJICAgIGNhc2UgJGRlcGxp YiBpbgogICAgICAgICAgICAgIC1MKikgZnVuY19zdHJpcG5hbWUgJy1MJyAn JyAiJGRlcGxpYiIKICAgICAgICAgICAgICAgICAgIGZ1bmNfcmVzb2x2ZV9z eXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0Ijs7CiAgICAgICAgICAg ICAgKikgZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRkZXBsaWIiIDs7CiAgICAg ICAgICAgIGVzYWMKCSAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsg dGhlbgoJICAgICAgY2FzZSAiJHRtcF9saWJzICIgaW4KCSAgICAgICoiICRm dW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQgIiopCiAgICAgICAgICAgICAg ICBzcGVjaWFsZGVwbGlicys9IiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVz dWx0IiA7OwoJICAgICAgZXNhYwoJICAgIGZpCgkgICAgdG1wX2xpYnMrPSIg JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKCSAgZG9uZQoKCSAgaWYg dGVzdCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vOyB0aGVuCgkgICAgIyBB ZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJp ZXMKCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCgkg ICAgICBwYXRoPQoJICAgICAgY2FzZSAkZGVwbGliIGluCgkgICAgICAtTCop IHBhdGg9IiRkZXBsaWIiIDs7CgkgICAgICAqLmxhKQoJICAgICAgICBmdW5j X3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIKCSAgICAgICAgZGVwbGliPSRm dW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKCSAgICAgICAgZnVuY19kaXJu YW1lICIkZGVwbGliIiAiIiAiLiIKCQlkaXI9JGZ1bmNfZGlybmFtZV9yZXN1 bHQKCQkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KCQljYXNlICRkaXIg aW4KCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rpcj0iJGRpciIg OzsKCQkqKQoJCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAoJCSAgaWYg dGVzdCAteiAiJGFic2RpciI7IHRoZW4KCQkgICAgZnVuY193YXJuaW5nICJj YW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxg JGRpciciCgkJICAgIGFic2Rpcj0iJGRpciIKCQkgIGZpCgkJICA7OwoJCWVz YWMKCQlpZiAkR1JFUCAiXmluc3RhbGxlZD1ubyIgJGRlcGxpYiA+IC9kZXYv bnVsbDsgdGhlbgoJCWNhc2UgJGhvc3QgaW4KCQkqLSotZGFyd2luKikKCQkg IGRlcGRlcGw9CgkJICBldmFsIGRlcGxpYnJhcnlfbmFtZXM9YCR7U0VEfSAt biAtZSAncy9ebGlicmFyeV9uYW1lcz1cKC4qXCkkL1wxL3AnICRkZXBsaWJg CgkJICBpZiB0ZXN0IC1uICIkZGVwbGlicmFyeV9uYW1lcyIgOyB0aGVuCgkJ ICAgIGZvciB0bXAgaW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbwoJCSAgICAg IGRlcGRlcGw9JHRtcAoJCSAgICBkb25lCgkJICAgIGlmIHRlc3QgLWYgIiRh YnNkaXIvJG9iamRpci8kZGVwZGVwbCIgOyB0aGVuCgkJICAgICAgZGVwZGVw bD0iJGFic2Rpci8kb2JqZGlyLyRkZXBkZXBsIgoJCSAgICAgIGRhcndpbl9p bnN0YWxsX25hbWU9YCR7T1RPT0x9IC1MICRkZXBkZXBsIHwgYXdrICd7aWYg KE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAogICAgICAgICAgICAgICAg ICAgICAgaWYgdGVzdCAteiAiJGRhcndpbl9pbnN0YWxsX25hbWUiOyB0aGVu CiAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyd2luX2luc3RhbGxfbmFt ZT1gJHtPVE9PTDY0fSAtTCAkZGVwZGVwbCAgfCBhd2sgJ3tpZiAoTlIgPT0g Mikge3ByaW50ICQxO2V4aXR9fSdgCiAgICAgICAgICAgICAgICAgICAgICBm aQoJCSAgICAgIGNvbXBpbGVyX2ZsYWdzKz0iICR7d2x9LWR5bGliX2ZpbGUg JHt3bH0ke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCgkJICAg ICAgbGlua2VyX2ZsYWdzKz0iIC1keWxpYl9maWxlICR7ZGFyd2luX2luc3Rh bGxfbmFtZX06JHtkZXBkZXBsfSIKCQkgICAgICBwYXRoPQoJCSAgICBmaQoJ CSAgZmkKCQkgIDs7CgkJKikKCQkgIHBhdGg9Ii1MJGFic2Rpci8kb2JqZGly IgoJCSAgOzsKCQllc2FjCgkJZWxzZQoJCSAgZXZhbCBsaWJkaXI9YCR7U0VE fSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKCQkg IHRlc3QgLXogIiRsaWJkaXIiICYmIFwKCQkgICAgZnVuY19mYXRhbF9lcnJv ciAiXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUi CgkJICB0ZXN0ICIkYWJzZGlyIiAhPSAiJGxpYmRpciIgJiYgXAoJCSAgICBm dW5jX3dhcm5pbmcgIlxgJGRlcGxpYicgc2VlbXMgdG8gYmUgbW92ZWQiCgoJ CSAgcGF0aD0iLUwkYWJzZGlyIgoJCWZpCgkJOzsKCSAgICAgIGVzYWMKCSAg ICAgIGNhc2UgIiAkZGVwbGlicyAiIGluCgkgICAgICAqIiAkcGF0aCAiKikg OzsKCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRkZXBsaWJzIiA7OwoJICAg ICAgZXNhYwoJICAgIGRvbmUKCSAgZmkgIyBsaW5rX2FsbF9kZXBsaWJzICE9 IG5vCglmaSAjIGxpbmttb2RlID0gbGliCiAgICAgIGRvbmUgIyBmb3IgZGVw bGliIGluICRsaWJzCiAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRo ZW4KCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSAicHJvZyI7IHRoZW4KCSAgY29t cGlsZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGNv bXBpbGVfZGVwbGlicyIKCSAgZmluYWxpemVfZGVwbGlicz0iJG5ld19pbmhl cml0ZWRfbGlua2VyX2ZsYWdzICRmaW5hbGl6ZV9kZXBsaWJzIgoJZWxzZQoJ ICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICJgJEVDSE8gIiAk bmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncyUgXChbXiAk XSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKCWZpCiAgICAg IGZpCiAgICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGli cyIKICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCgkj IExpbmsgdGhlIGRscHJlb3BlbmVkIGxpYnJhcmllcyBiZWZvcmUgb3RoZXIg bGlicmFyaWVzCglmb3IgZGVwbGliIGluICRzYXZlX2RlcGxpYnM7IGRvCgkg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCglkb25lCiAgICAgIGZpCiAg ICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBkbG9wZW47IHRoZW4KCWlmIHRlc3Qg IiRwYXNzIiAhPSBjb252OyB0aGVuCgkgICMgTWFrZSBzdXJlIGxpYl9zZWFy Y2hfcGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KCSAg bGliX3NlYXJjaF9wYXRoPQoJICBmb3IgZGlyIGluICRuZXdsaWJfc2VhcmNo X3BhdGg7IGRvCgkgICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0aCAiIGluCgkg ICAgKiIgJGRpciAiKikgOzsKCSAgICAqKSBsaWJfc2VhcmNoX3BhdGgrPSIg JGRpciIgOzsKCSAgICBlc2FjCgkgIGRvbmUKCSAgbmV3bGliX3NlYXJjaF9w YXRoPQoJZmkKCglpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiICE9ICJwcm9n LGxpbmsiOyB0aGVuCgkgIHZhcnM9ImRlcGxpYnMiCgllbHNlCgkgIHZhcnM9 ImNvbXBpbGVfZGVwbGlicyBmaW5hbGl6ZV9kZXBsaWJzIgoJZmkKCWZvciB2 YXIgaW4gJHZhcnMgZGVwZW5kZW5jeV9saWJzOyBkbwoJICAjIEFkZCBsaWJy YXJpZXMgdG8gJHZhciBpbiByZXZlcnNlIG9yZGVyCgkgIGV2YWwgdG1wX2xp YnM9XCJcJCR2YXJcIgoJICBuZXdfbGlicz0KCSAgZm9yIGRlcGxpYiBpbiAk dG1wX2xpYnM7IGRvCgkgICAgIyBGSVhNRTogUGVkYW50aWNhbGx5LCB0aGlz IGlzIHRoZSByaWdodCB0aGluZyB0byBkbywgc28KCSAgICAjICAgICAgICB0 aGF0IHNvbWUgbmFzdHkgZGVwZW5kZW5jeSBsb29wIGlzbid0IGFjY2lkZW50 YWxseQoJICAgICMgICAgICAgIGJyb2tlbjoKCSAgICAjbmV3X2xpYnM9IiRk ZXBsaWIgJG5ld19saWJzIgoJICAgICMgUHJhZ21hdGljYWxseSwgdGhpcyBz ZWVtcyB0byBjYXVzZSB2ZXJ5IGZldyBwcm9ibGVtcyBpbgoJICAgICMgcHJh Y3RpY2U6CgkgICAgY2FzZSAkZGVwbGliIGluCgkgICAgLUwqKSBuZXdfbGli cz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7CgkgICAgLVIqKSA7OwoJICAgICop CgkgICAgICAjIEFuZCBoZXJlIGlzIHRoZSByZWFzb246IHdoZW4gYSBsaWJy YXJ5IGFwcGVhcnMgbW9yZQoJICAgICAgIyB0aGFuIG9uY2UgYXMgYW4gZXhw bGljaXQgZGVwZW5kZW5jZSBvZiBhIGxpYnJhcnksIG9yCgkgICAgICAjIGlz IGltcGxpY2l0bHkgbGlua2VkIGluIG1vcmUgdGhhbiBvbmNlIGJ5IHRoZQoJ ICAgICAgIyBjb21waWxlciwgaXQgaXMgY29uc2lkZXJlZCBzcGVjaWFsLCBh bmQgbXVsdGlwbGUKCSAgICAgICMgb2NjdXJyZW5jZXMgdGhlcmVvZiBhcmUg bm90IHJlbW92ZWQuICBDb21wYXJlIHRoaXMKCSAgICAgICMgd2l0aCBoYXZp bmcgdGhlIHNhbWUgbGlicmFyeSBiZWluZyBsaXN0ZWQgYXMgYQoJICAgICAg IyBkZXBlbmRlbmN5IG9mIG11bHRpcGxlIG90aGVyIGxpYnJhcmllczogaW4g dGhpcyBjYXNlLAoJICAgICAgIyB3ZSBrbm93IChwZWRhbnRpY2FsbHksIHdl IGFzc3VtZSkgdGhlIGxpYnJhcnkgZG9lcyBub3QKCSAgICAgICMgbmVlZCB0 byBiZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UsIHNvIHdlIGtlZXAgb25seSB0 aGUKCSAgICAgICMgbGFzdCBjb3B5LiAgVGhpcyBpcyBub3QgYWx3YXlzIHJp Z2h0LCBidXQgaXQgaXMgcmFyZQoJICAgICAgIyBlbm91Z2ggdGhhdCB3ZSBy ZXF1aXJlIHVzZXJzIHRoYXQgcmVhbGx5IG1lYW4gdG8gcGxheQoJICAgICAg IyBzdWNoIHVucG9ydGFibGUgbGlua2luZyB0cmlja3MgdG8gbGluayB0aGUg bGlicmFyeQoJICAgICAgIyB1c2luZyAtV2wsLWxuYW1lLCBzbyB0aGF0IGxp YnRvb2wgZG9lcyBub3QgY29uc2lkZXIgaXQKCSAgICAgICMgZm9yIGR1cGxp Y2F0ZSByZW1vdmFsLgoJICAgICAgY2FzZSAiICRzcGVjaWFsZGVwbGlicyAi IGluCgkgICAgICAqIiAkZGVwbGliICIqKSBuZXdfbGlicz0iJGRlcGxpYiAk bmV3X2xpYnMiIDs7CgkgICAgICAqKQoJCWNhc2UgIiAkbmV3X2xpYnMgIiBp bgoJCSoiICRkZXBsaWIgIiopIDs7CgkJKikgbmV3X2xpYnM9IiRkZXBsaWIg JG5ld19saWJzIiA7OwoJCWVzYWMKCQk7OwoJICAgICAgZXNhYwoJICAgICAg OzsKCSAgICBlc2FjCgkgIGRvbmUKCSAgdG1wX2xpYnM9CgkgIGZvciBkZXBs aWIgaW4gJG5ld19saWJzOyBkbwoJICAgIGNhc2UgJGRlcGxpYiBpbgoJICAg IC1MKikKCSAgICAgIGNhc2UgIiAkdG1wX2xpYnMgIiBpbgoJICAgICAgKiIg JGRlcGxpYiAiKikgOzsKCSAgICAgICopIHRtcF9saWJzKz0iICRkZXBsaWIi IDs7CgkgICAgICBlc2FjCgkgICAgICA7OwoJICAgICopIHRtcF9saWJzKz0i ICRkZXBsaWIiIDs7CgkgICAgZXNhYwoJICBkb25lCgkgIGV2YWwgJHZhcj1c IiR0bXBfbGlic1wiCglkb25lICMgZm9yIHZhcgogICAgICBmaQogICAgICAj IExhc3Qgc3RlcDogcmVtb3ZlIHJ1bnRpbWUgbGlicyBmcm9tIGRlcGVuZGVu Y3lfbGlicwogICAgICAjICh0aGV5IHN0YXkgaW4gZGVwbGlicykKICAgICAg dG1wX2xpYnM9CiAgICAgIGZvciBpIGluICRkZXBlbmRlbmN5X2xpYnMgOyBk bwoJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAkY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoICIgaW4KCSoiICRpICIqKQoJICBpPSIiCgkgIDs7Cgllc2Fj CglpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCgkgIHRtcF9saWJzKz0iICRpIgoJ ZmkKICAgICAgZG9uZQogICAgICBkZXBlbmRlbmN5X2xpYnM9JHRtcF9saWJz CiAgICBkb25lICMgZm9yIHBhc3MKICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIg PSBwcm9nOyB0aGVuCiAgICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgogICAg ZmkKICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRs aW5rbW9kZSIgPSBsaWI7IHRoZW4KICAgICAgZGxwcmVmaWxlcz0iJG5ld2Rs cHJlZmlsZXMiCiAgICBmaQoKICAgIGNhc2UgJGxpbmttb2RlIGluCiAgICBv bGRsaWIpCiAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMi IHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCglmdW5jX3dhcm5pbmcg IlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCiAgICAgIGZp CgogICAgICBjYXNlICIgJGRlcGxpYnMiIGluCiAgICAgICpcIC1sKiB8ICpc IC1MKikKCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25v cmVkIGZvciBhcmNoaXZlcyIgOzsKICAgICAgZXNhYwoKICAgICAgdGVzdCAt biAiJHJwYXRoIiAmJiBcCglmdW5jX3dhcm5pbmcgIlxgLXJwYXRoJyBpcyBp Z25vcmVkIGZvciBhcmNoaXZlcyIKCiAgICAgIHRlc3QgLW4gIiR4cnBhdGgi ICYmIFwKCWZ1bmNfd2FybmluZyAiXGAtUicgaXMgaWdub3JlZCBmb3IgYXJj aGl2ZXMiCgogICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKCWZ1bmNfd2Fy bmluZyAiXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdu b3JlZCBmb3IgYXJjaGl2ZXMiCgogICAgICB0ZXN0IC1uICIkcmVsZWFzZSIg JiYgXAoJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZv ciBhcmNoaXZlcyIKCiAgICAgIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyRl eHBvcnRfc3ltYm9sc19yZWdleCIgJiYgXAoJZnVuY193YXJuaW5nICJcYC1l eHBvcnQtc3ltYm9scycgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCgogICAg ICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxp YnJhcmllcy4KICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCiAgICAgIG9s ZGxpYnM9IiRvdXRwdXQiCiAgICAgIG9ianMrPSIkb2xkX2RlcGxpYnMiCiAg ICAgIDs7CgogICAgbGliKQogICAgICAjIE1ha2Ugc3VyZSB3ZSBvbmx5IGdl bmVyYXRlIGxpYnJhcmllcyBvZiB0aGUgZm9ybSBgbGliTkFNRS5sYScuCiAg ICAgIGNhc2UgJG91dHB1dG5hbWUgaW4KICAgICAgbGliKikKCWZ1bmNfc3Ry aXBuYW1lICdsaWInICcubGEnICIkb3V0cHV0bmFtZSIKCW5hbWU9JGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdAoJZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9j bWRzXCIKCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgoJOzsKICAg ICAgKikKCXRlc3QgIiRtb2R1bGUiID0gbm8gJiYgXAoJICBmdW5jX2ZhdGFs X2hlbHAgImxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIG11c3QgYmVnaW4g d2l0aCBcYGxpYiciCgoJaWYgdGVzdCAiJG5lZWRfbGliX3ByZWZpeCIgIT0g bm87IHRoZW4KCSAgIyBBZGQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxl cyBpZiByZXF1aXJlZAoJICBmdW5jX3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91 dHB1dG5hbWUiCgkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJICBl dmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgoJICBldmFsIGxpYm5h bWU9XCIkbGlibmFtZV9zcGVjXCIKCWVsc2UKCSAgZnVuY19zdHJpcG5hbWUg JycgJy5sYScgIiRvdXRwdXRuYW1lIgoJICBsaWJuYW1lPSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQKCWZpCgk7OwogICAgICBlc2FjCgogICAgICBpZiB0ZXN0 IC1uICIkb2JqcyI7IHRoZW4KCWlmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21l dGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KCSAgZnVuY19mYXRhbF9lcnJvciAi Y2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20g bm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiCgllbHNl CgkgIGVjaG8KCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBz aGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29s IgoJICAkRUNITyAiKioqIG9iamVjdHMgJG9ianMgaXMgbm90IHBvcnRhYmxl ISIKCSAgbGlib2Jqcys9IiAkb2JqcyIKCWZpCiAgICAgIGZpCgogICAgICB0 ZXN0ICIkZGxzZWxmIiAhPSBubyAmJiBcCglmdW5jX3dhcm5pbmcgIlxgLWRs b3BlbiBzZWxmJyBpcyBpZ25vcmVkIGZvciBsaWJ0b29sIGxpYnJhcmllcyIK CiAgICAgIHNldCBkdW1teSAkcnBhdGgKICAgICAgc2hpZnQKICAgICAgdGVz dCAiJCMiIC1ndCAxICYmIFwKCWZ1bmNfd2FybmluZyAiaWdub3JpbmcgbXVs dGlwbGUgXGAtcnBhdGgncyBmb3IgYSBsaWJ0b29sIGxpYnJhcnkiCgogICAg ICBpbnN0YWxsX2xpYmRpcj0iJDEiCgogICAgICBvbGRsaWJzPQogICAgICBp ZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVuCglpZiB0ZXN0ICIkYnVpbGRfbGli dG9vbF9saWJzIiA9IHllczsgdGhlbgoJICAjIEJ1aWxkaW5nIGEgbGlidG9v bCBjb252ZW5pZW5jZSBsaWJyYXJ5LgoJICAjIFNvbWUgY29tcGlsZXJzIGhh dmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lvbiBzbwoJICAjIGNv bnZlbmllbmNlIGxpYnJhcmllcyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBleHRl bnNpb24gYW4KCSAgIyBhcmNoaXZlIG5vcm1hbGx5IHdvdWxkLgoJICBvbGRs aWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJz IgoJICBidWlsZF9saWJ0b29sX2xpYnM9Y29udmVuaWVuY2UKCSAgYnVpbGRf b2xkX2xpYnM9eWVzCglmaQoKCXRlc3QgLW4gIiR2aW5mbyIgJiYgXAoJICBm dW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXIn IGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKCgl0ZXN0 IC1uICIkcmVsZWFzZSIgJiYgXAoJICBmdW5jX3dhcm5pbmcgIlxgLXJlbGVh c2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKICAg ICAgZWxzZQoKCSMgUGFyc2UgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gYXJn dW1lbnQuCglzYXZlX2lmcz0iJElGUyI7IElGUz0nOicKCXNldCBkdW1teSAk dmluZm8gMCAwIDAKCXNoaWZ0CglJRlM9IiRzYXZlX2lmcyIKCgl0ZXN0IC1u ICIkNyIgJiYgXAoJICBmdW5jX2ZhdGFsX2hlbHAgInRvbyBtYW55IHBhcmFt ZXRlcnMgdG8gXGAtdmVyc2lvbi1pbmZvJyIKCgkjIGNvbnZlcnQgYWJzb2x1 dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcwoJIyB0aGlzIHJl dGFpbnMgY29tcGF0aWJpbGl0eSB3aXRoIC5sYSBmaWxlcyBhbmQgYXR0ZW1w dHMKCSMgdG8gbWFrZSB0aGUgY29kZSBiZWxvdyBhIGJpdCBtb3JlIGNvbXBy ZWhlbnNpYmxlCgoJY2FzZSAkdmluZm9fbnVtYmVyIGluCgl5ZXMpCgkgIG51 bWJlcl9tYWpvcj0iJDEiCgkgIG51bWJlcl9taW5vcj0iJDIiCgkgIG51bWJl cl9yZXZpc2lvbj0iJDMiCgkgICMKCSAgIyBUaGVyZSBhcmUgcmVhbGx5IG9u bHkgdHdvIGtpbmRzIC0tIHRob3NlIHRoYXQKCSAgIyB1c2UgdGhlIGN1cnJl bnQgcmV2aXNpb24gYXMgdGhlIG1ham9yIHZlcnNpb24KCSAgIyBhbmQgdGhv c2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKCSAgIyBhIG1p bm9yIHZlcnNpb24uICBCdXQsIHRoZW4gdGhlcmUgaXMgaXJpeAoJICAjIHdo aWNoIGhhcyBhbiBleHRyYSAxIGFkZGVkIGp1c3QgZm9yIGZ1bgoJICAjCgkg IGNhc2UgJHZlcnNpb25fdHlwZSBpbgoJICBkYXJ3aW58bGludXh8b3NmfHdp bmRvd3N8bm9uZSkKCSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAk bnVtYmVyX21pbm9yCgkgICAgY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQK CSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCgkgICAgcmV2aXNpb249IiRudW1i ZXJfcmV2aXNpb24iCgkgICAgOzsKCSAgZnJlZWJzZC1hb3V0fGZyZWVic2Qt ZWxmfHFueHxzdW5vcykKCSAgICBjdXJyZW50PSIkbnVtYmVyX21ham9yIgoJ ICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgoJICAgIGFnZT0iMCIKCSAg ICA7OwoJICBpcml4fG5vbnN0b3B1eCkKCSAgICBmdW5jX2FyaXRoICRudW1i ZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCgkgICAgY3VycmVudD0kZnVuY19h cml0aF9yZXN1bHQKCSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCgkgICAgcmV2 aXNpb249IiRudW1iZXJfbWlub3IiCgkgICAgbHRfaXJpeF9pbmNyZW1lbnQ9 bm8KCSAgICA7OwoJICBlc2FjCgkgIDs7CglubykKCSAgY3VycmVudD0iJDEi CgkgIHJldmlzaW9uPSIkMiIKCSAgYWdlPSIkMyIKCSAgOzsKCWVzYWMKCgkj IENoZWNrIHRoYXQgZWFjaCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1i ZXJzLgoJY2FzZSAkY3VycmVudCBpbgoJMHxbMS05XXxbMS05XVswLTldfFsx LTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTld WzAtOV1bMC05XVswLTldKSA7OwoJKikKCSAgZnVuY19lcnJvciAiQ1VSUkVO VCBcYCRjdXJyZW50JyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIK CSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2 ZXJzaW9uIGluZm9ybWF0aW9uIgoJICA7OwoJZXNhYwoKCWNhc2UgJHJldmlz aW9uIGluCgkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsx LTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0p IDs7CgkqKQoJICBmdW5jX2Vycm9yICJSRVZJU0lPTiBcYCRyZXZpc2lvbicg bXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCgkgIGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1h dGlvbiIKCSAgOzsKCWVzYWMKCgljYXNlICRhZ2UgaW4KCTB8WzEtOV18WzEt OV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18 WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKCSopCgkgIGZ1bmNfZXJy b3IgIkFHRSBcYCRhZ2UnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2Vy IgoJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlk IHZlcnNpb24gaW5mb3JtYXRpb24iCgkgIDs7Cgllc2FjCgoJaWYgdGVzdCAi JGFnZSIgLWd0ICIkY3VycmVudCI7IHRoZW4KCSAgZnVuY19lcnJvciAiQUdF IFxgJGFnZScgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGludGVyZmFj ZSBudW1iZXIgXGAkY3VycmVudCciCgkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxg JHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKCWZp CgoJIyBDYWxjdWxhdGUgdGhlIHZlcnNpb24gdmFyaWFibGVzLgoJbWFqb3I9 Cgl2ZXJzdWZmaXg9Cgl2ZXJzdHJpbmc9CgljYXNlICR2ZXJzaW9uX3R5cGUg aW4KCW5vbmUpIDs7CgoJZGFyd2luKQoJICAjIExpa2UgTGludXgsIGJ1dCB3 aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gYXZhaWxhYmxlIGluCgkgICMgdmVy c3RyaW5nIGZvciBjb2RpbmcgaXQgaW50byB0aGUgbGlicmFyeSBoZWFkZXIK CSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKCSAgbWFqb3I9LiRmdW5j X2FyaXRoX3Jlc3VsdAoJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZp c2lvbiIKCSAgIyBEYXJ3aW4gbGQgZG9lc24ndCBsaWtlIDAgZm9yIHRoZXNl IG9wdGlvbnMuLi4KCSAgZnVuY19hcml0aCAkY3VycmVudCArIDEKCSAgbWlu b3JfY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQKCSAgeGxjdmVyc3RyaW5n PSIke3dsfS1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJHt3bH0kbWlub3JfY3Vy cmVudCAke3dsfS1jdXJyZW50X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVu dC4kcmV2aXNpb24iCgkgIHZlcnN0cmluZz0iLWNvbXBhdGliaWxpdHlfdmVy c2lvbiAkbWlub3JfY3VycmVudCAtY3VycmVudF92ZXJzaW9uICRtaW5vcl9j dXJyZW50LiRyZXZpc2lvbiIKCSAgOzsKCglmcmVlYnNkLWFvdXQpCgkgIG1h am9yPSIuJGN1cnJlbnQiCgkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRyZXZp c2lvbiI7CgkgIDs7CgoJZnJlZWJzZC1lbGYpCgkgIG1ham9yPSIuJGN1cnJl bnQiCgkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50IgoJICA7OwoKCWlyaXggfCBu b25zdG9wdXgpCgkgIGlmIHRlc3QgIlgkbHRfaXJpeF9pbmNyZW1lbnQiID0g IlhubyI7IHRoZW4KCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQoJ ICBlbHNlCgkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UgKyAxCgkg IGZpCgkgIG1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAoKCSAgY2FzZSAkdmVy c2lvbl90eXBlIGluCgkgICAgbm9uc3RvcHV4KSB2ZXJzdHJpbmdfcHJlZml4 PW5vbnN0b3B1eCA7OwoJICAgICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZp eD1zZ2kgOzsKCSAgZXNhYwoJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJl Zml4JG1ham9yLiRyZXZpc2lvbiIKCgkgICMgQWRkIGluIGFsbCB0aGUgaW50 ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCgkgIGxvb3A9 JHJldmlzaW9uCgkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KCSAg ICBmdW5jX2FyaXRoICRyZXZpc2lvbiAtICRsb29wCgkgICAgaWZhY2U9JGZ1 bmNfYXJpdGhfcmVzdWx0CgkgICAgZnVuY19hcml0aCAkbG9vcCAtIDEKCSAg ICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAoJICAgIHZlcnN0cmluZz0iJHZl cnN0cmluZ19wcmVmaXgkbWFqb3IuJGlmYWNlOiR2ZXJzdHJpbmciCgkgIGRv bmUKCgkgICMgQmVmb3JlIHRoaXMgcG9pbnQsICRtYWpvciBtdXN0IG5vdCBj b250YWluIGAuJy4KCSAgbWFqb3I9LiRtYWpvcgoJICB2ZXJzdWZmaXg9IiRt YWpvci4kcmV2aXNpb24iCgkgIDs7CgoJbGludXgpCgkgIGZ1bmNfYXJpdGgg JGN1cnJlbnQgLSAkYWdlCgkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQK CSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24iCgkgIDs7CgoJ b3NmKQoJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQoJICBtYWpvcj0u JGZ1bmNfYXJpdGhfcmVzdWx0CgkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRh Z2UuJHJldmlzaW9uIgoJICB2ZXJzdHJpbmc9IiRjdXJyZW50LiRhZ2UuJHJl dmlzaW9uIgoKCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQg d2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KCSAgbG9vcD0kYWdlCgkgIHdoaWxl IHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KCSAgICBmdW5jX2FyaXRoICRjdXJy ZW50IC0gJGxvb3AKCSAgICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKCSAg ICBmdW5jX2FyaXRoICRsb29wIC0gMQoJICAgIGxvb3A9JGZ1bmNfYXJpdGhf cmVzdWx0CgkgICAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nOiR7aWZhY2V9LjAi CgkgIGRvbmUKCgkgICMgTWFrZSBleGVjdXRhYmxlcyBkZXBlbmQgb24gb3Vy IGN1cnJlbnQgdmVyc2lvbi4KCSAgdmVyc3RyaW5nKz0iOiR7Y3VycmVudH0u MCIKCSAgOzsKCglxbngpCgkgIG1ham9yPSIuJGN1cnJlbnQiCgkgIHZlcnN1 ZmZpeD0iLiRjdXJyZW50IgoJICA7OwoKCXN1bm9zKQoJICBtYWpvcj0iLiRj dXJyZW50IgoJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCgkg IDs7CgoJd2luZG93cykKCSAgIyBVc2UgJy0nIHJhdGhlciB0aGFuICcuJywg c2luY2Ugd2Ugb25seSB3YW50IG9uZQoJICAjIGV4dGVuc2lvbiBvbiBET1Mg OC4zIGZpbGVzeXN0ZW1zLgoJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFn ZQoJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKCSAgdmVyc3VmZml4PSIt JG1ham9yIgoJICA7OwoKCSopCgkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlv biAidW5rbm93biBsaWJyYXJ5IHZlcnNpb24gdHlwZSBcYCR2ZXJzaW9uX3R5 cGUnIgoJICA7OwoJZXNhYwoKCSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBp ZiB3ZSBkZWZhdWx0ZWQsIGFuZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVhc2Uu CglpZiB0ZXN0IC16ICIkdmluZm8iICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsg dGhlbgoJICBtYWpvcj0KCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCgkgIGRh cndpbikKCSAgICAjIHdlIGNhbid0IGNoZWNrIGZvciAiMC4wIiBpbiBhcmNo aXZlX2NtZHMgZHVlIHRvIHF1b3RpbmcKCSAgICAjIHByb2JsZW1zLCBzbyB3 ZSByZXNldCBpdCBjb21wbGV0ZWx5CgkgICAgdmVyc3RyaW5nPQoJICAgIDs7 CgkgICopCgkgICAgdmVyc3RyaW5nPSIwLjAiCgkgICAgOzsKCSAgZXNhYwoJ ICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCgkgICAgdmVy c3VmZml4PQoJICBlbHNlCgkgICAgdmVyc3VmZml4PSIuMC4wIgoJICBmaQoJ ZmkKCgkjIFJlbW92ZSB2ZXJzaW9uIGluZm8gZnJvbSBuYW1lIGlmIHZlcnNp b25pbmcgc2hvdWxkIGJlIGF2b2lkZWQKCWlmIHRlc3QgIiRhdm9pZF92ZXJz aW9uIiA9IHllcyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVu CgkgIG1ham9yPQoJICB2ZXJzdWZmaXg9CgkgIHZlcnN0cmluZz0iIgoJZmkK CgkjIENoZWNrIHRvIHNlZSBpZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5k ZWZpbmVkIHN5bWJvbHMuCglpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9 IHllczsgdGhlbgoJICBpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWci ID0gdW5zdXBwb3J0ZWQ7IHRoZW4KCSAgICBmdW5jX3dhcm5pbmcgInVuZGVm aW5lZCBzeW1ib2xzIG5vdCBhbGxvd2VkIGluICRob3N0IHNoYXJlZCBsaWJy YXJpZXMiCgkgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCgkgICAgYnVpbGRf b2xkX2xpYnM9eWVzCgkgIGZpCgllbHNlCgkgICMgRG9uJ3QgYWxsb3cgdW5k ZWZpbmVkIHN5bWJvbHMuCgkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkbm9f dW5kZWZpbmVkX2ZsYWciCglmaQoKICAgICAgZmkKCiAgICAgIGZ1bmNfZ2Vu ZXJhdGVfZGxzeW1zICIkbGlibmFtZSIgIiRsaWJuYW1lIiAieWVzIgogICAg ICBsaWJvYmpzKz0iICRzeW1maWxlb2JqIgogICAgICB0ZXN0ICJYJGxpYm9i anMiID0gIlggIiAmJiBsaWJvYmpzPQoKICAgICAgaWYgdGVzdCAiJG9wdF9t b2RlIiAhPSByZWxpbms7IHRoZW4KCSMgUmVtb3ZlIG91ciBvdXRwdXRzLCBi dXQgZG9uJ3QgcmVtb3ZlIG9iamVjdCBmaWxlcyBzaW5jZSB0aGV5CgkjIG1h eSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0 cy4KCXJlbW92ZWxpc3Q9Cgl0ZW1wcmVtb3ZlbGlzdD1gJEVDSE8gIiRvdXRw dXRfb2JqZGlyLyoiYAoJZm9yIHAgaW4gJHRlbXByZW1vdmVsaXN0OyBkbwoJ ICBjYXNlICRwIGluCgkgICAgKi4kb2JqZXh0IHwgKi5nY25vKQoJICAgICAg IDs7CgkgICAgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgfCAkb3V0cHV0 X29iamRpci8kbGlibmFtZS4qIHwgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1l fSR7cmVsZWFzZX0uKikKCSAgICAgICBpZiB0ZXN0ICJYJHByZWNpb3VzX2Zp bGVzX3JlZ2V4IiAhPSAiWCI7IHRoZW4KCQkgaWYgJEVDSE8gIiRwIiB8ICRF R1JFUCAtZSAiJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiA+L2Rldi9udWxsIDI+ JjEKCQkgdGhlbgoJCSAgIGNvbnRpbnVlCgkJIGZpCgkgICAgICAgZmkKCSAg ICAgICByZW1vdmVsaXN0Kz0iICRwIgoJICAgICAgIDs7CgkgICAgKikgOzsK CSAgZXNhYwoJZG9uZQoJdGVzdCAtbiAiJHJlbW92ZWxpc3QiICYmIFwKCSAg ZnVuY19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCiAgICAgIGZp CgogICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcg b2xkIGxpYnJhcmllcy4KICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJz IiA9IHllcyAmJiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSBjb252 ZW5pZW5jZSA7IHRoZW4KCW9sZGxpYnMrPSIgJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuJGxpYmV4dCIKCgkjIFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8g ZmlsZXMuCglvbGRvYmpzPSIkb2JqcyAiYCRFQ0hPICIkbGlib2JqcyIgfCAk U1AyTkwgfCAkU0VEICIvXC4ke2xpYmV4dH0kL2Q7ICRsbzJvIiB8ICROTDJT UGAKICAgICAgZmkKCiAgICAgICMgRWxpbWluYXRlIGFsbCB0ZW1wb3Jhcnkg ZGlyZWN0b3JpZXMuCiAgICAgICNmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRo OyBkbwogICAgICAjCWxpYl9zZWFyY2hfcGF0aD1gJEVDSE8gIiRsaWJfc2Vh cmNoX3BhdGggIiB8ICRTRUQgInMlICRwYXRoICUgJWciYAogICAgICAjCWRl cGxpYnM9YCRFQ0hPICIkZGVwbGlicyAiIHwgJFNFRCAicyUgLUwkcGF0aCAl ICVnImAKICAgICAgIwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICIkZGVwZW5k ZW5jeV9saWJzICIgfCAkU0VEICJzJSAtTCRwYXRoICUgJWciYAogICAgICAj ZG9uZQoKICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRoZW4KCSMgSWYg dGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQg dGhlbS4KCXRlbXBfeHJwYXRoPQoJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBk bwoJICBmdW5jX3JlcGxhY2Vfc3lzcm9vdCAiJGxpYmRpciIKCSAgdGVtcF94 cnBhdGgrPSIgLVIkZnVuY19yZXBsYWNlX3N5c3Jvb3RfcmVzdWx0IgoJICBj YXNlICIkZmluYWxpemVfcnBhdGggIiBpbgoJICAqIiAkbGliZGlyICIqKSA7 OwoJICAqKSBmaW5hbGl6ZV9ycGF0aCs9IiAkbGliZGlyIiA7OwoJICBlc2Fj Cglkb25lCglpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMg fHwgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgoJICBkZXBl bmRlbmN5X2xpYnM9IiR0ZW1wX3hycGF0aCAkZGVwZW5kZW5jeV9saWJzIgoJ ZmkKICAgICAgZmkKCiAgICAgICMgTWFrZSBzdXJlIGRsZmlsZXMgY29udGFp bnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5l ZAogICAgICBvbGRfZGxmaWxlcz0iJGRsZmlsZXMiCiAgICAgIGRsZmlsZXM9 CiAgICAgIGZvciBsaWIgaW4gJG9sZF9kbGZpbGVzOyBkbwoJY2FzZSAiICRk bHByZWZpbGVzICRkbGZpbGVzICIgaW4KCSoiICRsaWIgIiopIDs7CgkqKSBk bGZpbGVzKz0iICRsaWIiIDs7Cgllc2FjCiAgICAgIGRvbmUKCiAgICAgICMg TWFrZSBzdXJlIGRscHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmls ZXMKICAgICAgb2xkX2RscHJlZmlsZXM9IiRkbHByZWZpbGVzIgogICAgICBk bHByZWZpbGVzPQogICAgICBmb3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsg ZG8KCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KCSoiICRsaWIgIiopIDs7Cgkq KSBkbHByZWZpbGVzKz0iICRsaWIiIDs7Cgllc2FjCiAgICAgIGRvbmUKCiAg ICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVu CglpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCgkgIGNhc2UgJGhvc3QgaW4K CSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0q LW9zMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKiB8ICotKi1oYWlrdSopCgkg ICAgIyB0aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjIGxp YnJhcnkgKGFzIHN1Y2gpIQoJICAgIDs7CgkgICotKi1yaGFwc29keSogfCAq LSotZGFyd2luMS5bMDEyXSkKCSAgICAjIFJoYXBzb2R5IEMgbGlicmFyeSBp cyBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawoJICAgIGRlcGxpYnMrPSIgU3lz dGVtLmx0ZnJhbWV3b3JrIgoJICAgIDs7CgkgICotKi1uZXRic2QqKQoJICAg ICMgRG9uJ3QgbGluayB3aXRoIGxpYmMgdW50aWwgdGhlIGEub3V0IGxkLnNv IGlzIGZpeGVkLgoJICAgIDs7CgkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVl YnNkKiB8ICotKi1kcmFnb25mbHkqKQoJICAgICMgRG8gbm90IGluY2x1ZGUg bGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgoJICAgIDs7Cgkg ICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKCSAgICAjIENhdXNlcyBw cm9ibGVtcyB3aXRoIF9fY3R5cGUKCSAgICA7OwoJICAqLSotc3lzdjQuMnV3 MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5J WCopCgkgICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJl Y3QgcGxhY2UgZm9yIHRocmVhZHMgdG8gd29yawoJICAgIDs7CgkgICopCgkg ICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0ZW1z IGlmIG5lY2Vzc2FyeS4KCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9u ZWVkX2xjIiA9ICJ5ZXMiOyB0aGVuCgkgICAgICBkZXBsaWJzKz0iIC1sYyIK CSAgICBmaQoJICAgIDs7CgkgIGVzYWMKCWZpCgoJIyBUcmFuc2Zvcm0gZGVw bGlicyBpbnRvIG9ubHkgZGVwbGlicyB0aGF0IGNhbiBiZSBsaW5rZWQgaW4g c2hhcmVkLgoJbmFtZV9zYXZlPSRuYW1lCglsaWJuYW1lX3NhdmU9JGxpYm5h bWUKCXJlbGVhc2Vfc2F2ZT0kcmVsZWFzZQoJdmVyc3VmZml4X3NhdmU9JHZl cnN1ZmZpeAoJbWFqb3Jfc2F2ZT0kbWFqb3IKCSMgSSdtIG5vdCBzdXJlIGlm IEknbSB0cmVhdGluZyB0aGUgcmVsZWFzZSBjb3JyZWN0bHkuICBJIHRoaW5r CgkjIHJlbGVhc2Ugc2hvdWxkIHNob3cgdXAgaW4gdGhlIC1sIChpZSAtbGdt cDUpIHNvIHdlIGRvbid0IHdhbnQgdG8KCSMgYWRkIGl0IGluIHR3aWNlLiAg SXMgdGhhdCBjb3JyZWN0PwoJcmVsZWFzZT0iIgoJdmVyc3VmZml4PSIiCglt YWpvcj0iIgoJbmV3ZGVwbGlicz0KCWRyb3BwZWRkZXBzPW5vCgljYXNlICRk ZXBsaWJzX2NoZWNrX21ldGhvZCBpbgoJcGFzc19hbGwpCgkgICMgRG9uJ3Qg Y2hlY2sgZm9yIHNoYXJlZC9zdGF0aWMuICBFdmVyeXRoaW5nIHdvcmtzLgoJ ICAjIFRoaXMgbWlnaHQgYmUgYSBsaXR0bGUgbmFpdmUuICBXZSBtaWdodCB3 YW50IHRvIGNoZWNrCgkgICMgd2hldGhlciB0aGUgbGlicmFyeSBleGlzdHMg b3Igbm90LiAgQnV0IHRoaXMgaXMgb24KCSAgIyBvc2YzICYgb3NmNCBhbmQg SSdtIG5vdCByZWFsbHkgc3VyZS4uLiBKdXN0CgkgICMgaW1wbGVtZW50aW5n IHdoYXQgd2FzIGFscmVhZHkgdGhlIGJlaGF2aW9yLgoJICBuZXdkZXBsaWJz PSRkZXBsaWJzCgkgIDs7Cgl0ZXN0X2NvbXBpbGUpCgkgICMgVGhpcyBjb2Rl IHN0cmVzc2VzIHRoZSAibGlicmFyaWVzIGFyZSBwcm9ncmFtcyIgcGFyYWRp Z20gdG8gaXRzCgkgICMgbGltaXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4g IFdlIGNvbXBpbGUgYSBwcm9ncmFtLCBsaW5raW5nIGl0CgkgICMgYWdhaW5z dCB0aGUgZGVwbGlicyBhcyBhIHByb3h5IGZvciB0aGUgbGlicmFyeS4gIFRo ZW4gd2UgY2FuIGNoZWNrCgkgICMgd2hldGhlciB0aGV5IGxpbmtlZCBpbiBz dGF0aWNhbGx5IG9yIGR5bmFtaWNhbGx5IHdpdGggbGRkLgoJICAkb3B0X2Ry eV9ydW4gfHwgJFJNIGNvbmZ0ZXN0LmMKCSAgY2F0ID4gY29uZnRlc3QuYyA8 PEVPRgoJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0KRU9GCgkgICRvcHRf ZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QKCSAgaWYgJExUQ0MgJExUQ0ZMQUdT IC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGRlcGxpYnM7IHRoZW4KCSAgICBs ZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCgkgICAgZm9yIGkgaW4gJGRlcGxp YnM7IGRvCgkgICAgICBjYXNlICRpIGluCgkgICAgICAtbCopCgkJZnVuY19z dHJpcG5hbWUgLWwgJycgIiRpIgoJCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdAoJCWlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3Rh dGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KCQkgIGNhc2UgIiAkcHJl ZGVwcyAkcG9zdGRlcHMgIiBpbgoJCSAgKiIgJGkgIiopCgkJICAgIG5ld2Rl cGxpYnMrPSIgJGkiCgkJICAgIGk9IiIKCQkgICAgOzsKCQkgIGVzYWMKCQlm aQoJCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KCQkgIGxpYm5hbWU9YGV2YWwg IlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAoJCSAgZGVwbGliX21hdGNo ZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAoJ CSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0Y2hlczsgc2hpZnQKCQkgIGRlcGxp Yl9tYXRjaD0kMQoJCSAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDog Ii4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgoJCSAgICBuZXdkZXBs aWJzKz0iICRpIgoJCSAgZWxzZQoJCSAgICBkcm9wcGVkZGVwcz15ZXMKCQkg ICAgZWNobwoJCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlu a2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAkaS4iCgkJICAg IGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0 IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCgkJICAgIGVj aG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4g b25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCgkJICAgIGVjaG8gIioqKiBz aGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZl IHlvdSBkbyBub3QgaGF2ZSIKCQkgICAgZWNobyAiKioqIGJlY2F1c2UgYSB0 ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5v dCB1c2UgaXQgZm9yIgoJCSAgICBlY2hvICIqKiogaXRzIGR5bmFtaWMgZGVw ZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGgg YXQgcnVudGltZS4iCgkJICBmaQoJCWZpCgkJOzsKCSAgICAgICopCgkJbmV3 ZGVwbGlicys9IiAkaSIKCQk7OwoJICAgICAgZXNhYwoJICAgIGRvbmUKCSAg ZWxzZQoJICAgICMgRXJyb3Igb2NjdXJyZWQgaW4gdGhlIGZpcnN0IGNvbXBp bGUuICBMZXQncyB0cnkgdG8gc2FsdmFnZQoJICAgICMgdGhlIHNpdHVhdGlv bjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0gZm9yIGVhY2ggbGlicmFy eS4KCSAgICBmb3IgaSBpbiAkZGVwbGliczsgZG8KCSAgICAgIGNhc2UgJGkg aW4KCSAgICAgIC1sKikKCQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCgkJ bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CgkJJG9wdF9kcnlfcnVuIHx8 ICRSTSBjb25mdGVzdAoJCWlmICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVz dCBjb25mdGVzdC5jICRpOyB0aGVuCgkJICBsZGRfb3V0cHV0PWBsZGQgY29u ZnRlc3RgCgkJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRo X3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCgkJICAgIGNhc2Ug IiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgoJCSAgICAqIiAkaSAiKikKCQkg ICAgICBuZXdkZXBsaWJzKz0iICRpIgoJCSAgICAgIGk9IiIKCQkgICAgICA7 OwoJCSAgICBlc2FjCgkJICBmaQoJCSAgaWYgdGVzdCAtbiAiJGkiIDsgdGhl bgoJCSAgICBsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3Bl Y1wiImAKCQkgICAgZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIk bGlicmFyeV9uYW1lc19zcGVjXCIiYAoJCSAgICBzZXQgZHVtbXkgJGRlcGxp Yl9tYXRjaGVzOyBzaGlmdAoJCSAgICBkZXBsaWJfbWF0Y2g9JDEKCQkgICAg aWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRj aCJgIC1uZSAwIDsgdGhlbgoJCSAgICAgIG5ld2RlcGxpYnMrPSIgJGkiCgkJ ICAgIGVsc2UKCQkgICAgICBkcm9wcGVkZGVwcz15ZXMKCQkgICAgICBlY2hv CgkJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBk b2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgoJCSAgICAgIGVj aG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxp YnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCgkJICAgICAgZWNo byAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBv bmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKCQkgICAgICBlY2hvICIqKiog c2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBu b3QgYXBwZWFyIHRvIGhhdmUiCgkJICAgICAgZWNobyAiKioqIGJlY2F1c2Ug YSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlk IG5vdCB1c2UgdGhpcyBvbmUiCgkJICAgICAgZWNobyAiKioqIGFzIGEgZHlu YW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZl ZCB3aXRoIGF0IHJ1bnRpbWUuIgoJCSAgICBmaQoJCSAgZmkKCQllbHNlCgkJ ICBkcm9wcGVkZGVwcz15ZXMKCQkgIGVjaG8KCQkgICRFQ0hPICIqKiogV2Fy bmluZyEgIExpYnJhcnkgJGkgaXMgbmVlZGVkIGJ5IHRoaXMgbGlicmFyeSBi dXQgSSB3YXMgbm90IGFibGUgdG8iCgkJICBlY2hvICIqKiogbWFrZSBpdCBs aW5rIGluISAgWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBpbnN0YWxsIGl0 IG9yIHNvbWUiCgkJICBlY2hvICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVu ZHMgb24gYmVmb3JlIHRoaXMgbGlicmFyeSB3aWxsIGJlIGZ1bGx5IgoJCSAg ZWNobyAiKioqIGZ1bmN0aW9uYWwuICBJbnN0YWxsaW5nIGl0IGJlZm9yZSBj b250aW51aW5nIHdvdWxkIGJlIGV2ZW4gYmV0dGVyLiIKCQlmaQoJCTs7Cgkg ICAgICAqKQoJCW5ld2RlcGxpYnMrPSIgJGkiCgkJOzsKCSAgICAgIGVzYWMK CSAgICBkb25lCgkgIGZpCgkgIDs7CglmaWxlX21hZ2ljKikKCSAgc2V0IGR1 bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKCSAgZmlsZV9tYWdp Y19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBc KC4qXCkiYAoJICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCgkgICAg Y2FzZSAkYV9kZXBsaWIgaW4KCSAgICAtbCopCgkgICAgICBmdW5jX3N0cmlw bmFtZSAtbCAnJyAiJGFfZGVwbGliIgoJICAgICAgbmFtZT0kZnVuY19zdHJp cG5hbWVfcmVzdWx0CgkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xf bGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCgkJ Y2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCgkJKiIgJGFfZGVwbGli ICIqKQoJCSAgbmV3ZGVwbGlicys9IiAkYV9kZXBsaWIiCgkJICBhX2RlcGxp Yj0iIgoJCSAgOzsKCQllc2FjCgkgICAgICBmaQoJICAgICAgaWYgdGVzdCAt biAiJGFfZGVwbGliIiA7IHRoZW4KCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hP IFwiJGxpYm5hbWVfc3BlY1wiImAKCQlpZiB0ZXN0IC1uICIkZmlsZV9tYWdp Y19nbG9iIjsgdGhlbgoJCSAgbGlibmFtZWdsb2I9YGZ1bmNfZWNob19hbGwg IiRsaWJuYW1lIiB8ICRTRUQgLWUgJGZpbGVfbWFnaWNfZ2xvYmAKCQllbHNl CgkJICBsaWJuYW1lZ2xvYj0kbGlibmFtZQoJCWZpCgkJdGVzdCAiJHdhbnRf bm9jYXNlZ2xvYiIgPSB5ZXMgJiYgbm9jYXNlZ2xvYj1gc2hvcHQgLXAgbm9j YXNlZ2xvYmAKCQlmb3IgaSBpbiAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGli X3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsgZG8KCQkgIGlmIHRl c3QgIiR3YW50X25vY2FzZWdsb2IiID0geWVzOyB0aGVuCgkJICAgIHNob3B0 IC1zIG5vY2FzZWdsb2IKCQkgICAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRs aWJuYW1lZ2xvYlsuLV0qIDI+L2Rldi9udWxsYAoJCSAgICAkbm9jYXNlZ2xv YgoJCSAgZWxzZQoJCSAgICBwb3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5h bWVnbG9iWy4tXSogMj4vZGV2L251bGxgCgkJICBmaQoJCSAgZm9yIHBvdGVu dF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbwoJCSAgICAgICMgRm9sbG93 IHNvZnQgbGlua3MuCgkJICAgICAgaWYgbHMgLWxMZCAiJHBvdGVudF9saWIi IDI+L2Rldi9udWxsIHwKCQkJICRHUkVQICIgLT4gIiA+L2Rldi9udWxsOyB0 aGVuCgkJCWNvbnRpbnVlCgkJICAgICAgZmkKCQkgICAgICAjIFRoZSBzdGF0 ZW1lbnQgYWJvdmUgdHJpZXMgdG8gYXZvaWQgZW50ZXJpbmcgYW4KCQkgICAg ICAjIGVuZGxlc3MgbG9vcCBiZWxvdywgaW4gY2FzZSBvZiBjeWNsaWMgbGlu a3MuCgkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNz IGxvb3AsIHNpbmNlIGEgbGluawoJCSAgICAgICMgbG9vcCBjYW4gYmUgY2xv c2VkIHdoaWxlIHdlIGZvbGxvdyBsaW5rcywKCQkgICAgICAjIGJ1dCBzbyB3 aGF0PwoJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCgkJICAgICAgd2hp bGUgdGVzdCAtaCAiJHBvdGxpYiIgMj4vZGV2L251bGw7IGRvCgkJCXBvdGxp Ymxpbms9YGxzIC1sZCAkcG90bGliIHwgJHtTRUR9ICdzLy4qIC0+IC8vJ2AK CQkJY2FzZSAkcG90bGlibGluayBpbgoJCQlbXFwvXSogfCBbQS1aYS16XTpb XFwvXSopIHBvdGxpYj0iJHBvdGxpYmxpbmsiOzsKCQkJKikgcG90bGliPWAk RUNITyAiJHBvdGxpYiIgfCAkU0VEICdzLFteL10qJCwsJ2AiJHBvdGxpYmxp bmsiOzsKCQkJZXNhYwoJCSAgICAgIGRvbmUKCQkgICAgICBpZiBldmFsICRm aWxlX21hZ2ljX2NtZCBcIlwkcG90bGliXCIgMj4vZGV2L251bGwgfAoJCQkg JFNFRCAtZSAxMHEgfAoJCQkgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIg PiAvZGV2L251bGw7IHRoZW4KCQkJbmV3ZGVwbGlicys9IiAkYV9kZXBsaWIi CgkJCWFfZGVwbGliPSIiCgkJCWJyZWFrIDIKCQkgICAgICBmaQoJCSAgZG9u ZQoJCWRvbmUKCSAgICAgIGZpCgkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBs aWIiIDsgdGhlbgoJCWRyb3BwZWRkZXBzPXllcwoJCWVjaG8KCQkkRUNITyAi KioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBm aWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxpYi4iCgkJZWNobyAiKioqIEkgaGF2 ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0 aWNhbGx5IGxpbmsgaW4gd2hlbiIKCQllY2hvICIqKiogeW91IGxpbmsgdG8g dGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3Ug aGF2ZSBhIgoJCWVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGli cmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKCQllY2hv ICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9v a2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgoJCWlmIHRlc3QgLXogIiRwb3Rs aWIiIDsgdGhlbgoJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBu byBjYW5kaWRhdGVzIHdlcmUgZm91bmQuICguLi5mb3IgZmlsZSBtYWdpYyB0 ZXN0KSIKCQllbHNlCgkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5k IG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQg dGVzdCIKCQkgICRFQ0hPICIqKiogdXNpbmcgYSBmaWxlIG1hZ2ljLiBMYXN0 IGZpbGUgY2hlY2tlZDogJHBvdGxpYiIKCQlmaQoJICAgICAgZmkKCSAgICAg IDs7CgkgICAgKikKCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCgkgICAg ICBuZXdkZXBsaWJzKz0iICRhX2RlcGxpYiIKCSAgICAgIDs7CgkgICAgZXNh YwoJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgoJICA7OwoJ bWF0Y2hfcGF0dGVybiopCgkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19t ZXRob2Q7IHNoaWZ0CgkgIG1hdGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRk ZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKCSAgZm9yIGFf ZGVwbGliIGluICRkZXBsaWJzOyBkbwoJICAgIGNhc2UgJGFfZGVwbGliIGlu CgkgICAgLWwqKQoJICAgICAgZnVuY19zdHJpcG5hbWUgLWwgJycgIiRhX2Rl cGxpYiIKCSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJICAg ICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNf cnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgoJCWNhc2UgIiAkcHJlZGVwcyAk cG9zdGRlcHMgIiBpbgoJCSoiICRhX2RlcGxpYiAiKikKCQkgIG5ld2RlcGxp YnMrPSIgJGFfZGVwbGliIgoJCSAgYV9kZXBsaWI9IiIKCQkgIDs7CgkJZXNh YwoJICAgICAgZmkKCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0 aGVuCgkJbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNc IiJgCgkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFy Y2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCgkJICBwb3RlbnRpYWxf bGlicz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKCQkgIGZv ciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KCQkgICAgcG90 bGliPSIkcG90ZW50X2xpYiIgIyBzZWUgc3ltbGluay1jaGVjayBhYm92ZSBp biBmaWxlX21hZ2ljIHRlc3QKCQkgICAgaWYgZXZhbCAiXCRFQ0hPIFwiJHBv dGVudF9saWJcIiIgMj4vZGV2L251bGwgfCAkU0VEIDEwcSB8IFwKCQkgICAg ICAgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7 IHRoZW4KCQkgICAgICBuZXdkZXBsaWJzKz0iICRhX2RlcGxpYiIKCQkgICAg ICBhX2RlcGxpYj0iIgoJCSAgICAgIGJyZWFrIDIKCQkgICAgZmkKCQkgIGRv bmUKCQlkb25lCgkgICAgICBmaQoJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVw bGliIiA7IHRoZW4KCQlkcm9wcGVkZGVwcz15ZXMKCQllY2hvCgkJJEVDSE8g IioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwg ZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgoJCWVjaG8gIioqKiBJIGhh dmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21h dGljYWxseSBsaW5rIGluIHdoZW4iCgkJZWNobyAiKioqIHlvdSBsaW5rIHRv IHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91 IGhhdmUgYSIKCQllY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxp YnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCgkJZWNo byAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxv b2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKCQlpZiB0ZXN0IC16ICIkcG90 bGliIiA7IHRoZW4KCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQg bm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIHJlZ2V4IHBhdHRl cm4gdGVzdCkiCgkJZWxzZQoJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1l IGFuZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9y bWF0IHRlc3QiCgkJICAkRUNITyAiKioqIHVzaW5nIGEgcmVnZXggcGF0dGVy bi4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCgkJZmkKCSAgICAgIGZp CgkgICAgICA7OwoJICAgICopCgkgICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50 LgoJICAgICAgbmV3ZGVwbGlicys9IiAkYV9kZXBsaWIiCgkgICAgICA7OwoJ ICAgIGVzYWMKCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4K CSAgOzsKCW5vbmUgfCB1bmtub3duIHwgKikKCSAgbmV3ZGVwbGlicz0iIgoJ ICB0bXBfZGVwbGlicz1gJEVDSE8gIiAkZGVwbGlicyIgfCAkU0VEICdzLyAt bGMkLy87IHMvIC1bTFJdW14gXSovL2cnYAoJICBpZiB0ZXN0ICJYJGFsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIg OyB0aGVuCgkgICAgZm9yIGkgaW4gJHByZWRlcHMgJHBvc3RkZXBzIDsgZG8K CSAgICAgICMgY2FuJ3QgdXNlIFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWln aHQgY29udGFpbiAnLycKCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiICR0 bXBfZGVwbGlicyIgfCAkU0VEICJzLCRpLCwiYAoJICAgIGRvbmUKCSAgZmkK CSAgY2FzZSAkdG1wX2RlcGxpYnMgaW4KCSAgKlshXAlcIF0qKQoJICAgIGVj aG8KCSAgICBpZiB0ZXN0ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9ICJY bm9uZSI7IHRoZW4KCSAgICAgIGVjaG8gIioqKiBXYXJuaW5nOiBpbnRlci1s aWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlz IHBsYXRmb3JtLiIKCSAgICBlbHNlCgkgICAgICBlY2hvICIqKiogV2Fybmlu ZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0 byBiZSBzdXBwb3J0ZWQuIgoJICAgIGZpCgkgICAgZWNobyAiKioqIEFsbCBk ZWNsYXJlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcg ZHJvcHBlZC4iCgkgICAgZHJvcHBlZGRlcHM9eWVzCgkgICAgOzsKCSAgZXNh YwoJICA7OwoJZXNhYwoJdmVyc3VmZml4PSR2ZXJzdWZmaXhfc2F2ZQoJbWFq b3I9JG1ham9yX3NhdmUKCXJlbGVhc2U9JHJlbGVhc2Vfc2F2ZQoJbGlibmFt ZT0kbGlibmFtZV9zYXZlCgluYW1lPSRuYW1lX3NhdmUKCgljYXNlICRob3N0 IGluCgkqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCgkgICMg T24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IHdpdGggdGhlIFN5 c3RlbSBmcmFtZXdvcmsKCSAgbmV3ZGVwbGlicz1gJEVDSE8gIiAkbmV3ZGVw bGlicyIgfCAkU0VEICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydg CgkgIDs7Cgllc2FjCgoJaWYgdGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsg dGhlbgoJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgoJICAgIGVj aG8KCSAgICBlY2hvICIqKiogV2FybmluZzogbGlidG9vbCBjb3VsZCBub3Qg c2F0aXNmeSBhbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSIKCSAgICAkRUNI TyAiKioqIGRlcGVuZGVuY2llcyBvZiBtb2R1bGUgJGxpYm5hbWUuICBUaGVy ZWZvcmUsIGxpYnRvb2wgd2lsbCBjcmVhdGUiCgkgICAgZWNobyAiKioqIGEg c3RhdGljIG1vZHVsZSwgdGhhdCBzaG91bGQgd29yayBhcyBsb25nIGFzIHRo ZSBkbG9wZW5pbmciCgkgICAgZWNobyAiKioqIGFwcGxpY2F0aW9uIGlzIGxp bmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgoJICAgIGlmIHRlc3QgLXog IiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCgkgICAgICBlY2hvCgkgICAg ICBlY2hvICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYg bGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKCSAgICAgIGVj aG8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3Ig ZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCgkgICAgICBlY2hvICIq Kiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUg aXMgcHJvYmFibHkgdXNlbGVzcy4iCgkgICAgICBlY2hvICIqKiogXGBubScg ZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxw LiIKCSAgICBmaQoJICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBu bzsgdGhlbgoJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuJGxpYmV4dCIKCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUK CSAgICAgIGJ1aWxkX29sZF9saWJzPXllcwoJICAgIGVsc2UKCSAgICAgIGJ1 aWxkX2xpYnRvb2xfbGlicz1ubwoJICAgIGZpCgkgIGVsc2UKCSAgICBlY2hv ICIqKiogVGhlIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2 ZSBiZWVuIGRyb3BwZWQgaGVyZSB3aWxsIGJlIgoJICAgIGVjaG8gIioqKiBh dXRvbWF0aWNhbGx5IGFkZGVkIHdoZW5ldmVyIGEgcHJvZ3JhbSBpcyBsaW5r ZWQgd2l0aCB0aGlzIGxpYnJhcnkiCgkgICAgZWNobyAiKioqIG9yIGlzIGRl Y2xhcmVkIHRvIC1kbG9wZW4gaXQuIgoKCSAgICBpZiB0ZXN0ICIkYWxsb3df dW5kZWZpbmVkIiA9IG5vOyB0aGVuCgkgICAgICBlY2hvCgkgICAgICBlY2hv ICIqKiogU2luY2UgdGhpcyBsaWJyYXJ5IG11c3Qgbm90IGNvbnRhaW4gdW5k ZWZpbmVkIHN5bWJvbHMsIgoJICAgICAgZWNobyAiKioqIGJlY2F1c2UgZWl0 aGVyIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gb3IiCgkg ICAgICBlY2hvICIqKiogaXQgd2FzIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHdp dGggLW5vLXVuZGVmaW5lZCwiCgkgICAgICBlY2hvICIqKiogbGlidG9vbCB3 aWxsIG9ubHkgY3JlYXRlIGEgc3RhdGljIHZlcnNpb24gb2YgaXQuIgoJICAg ICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCgkJb2xk bGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKCQlidWls ZF9saWJ0b29sX2xpYnM9bW9kdWxlCgkJYnVpbGRfb2xkX2xpYnM9eWVzCgkg ICAgICBlbHNlCgkJYnVpbGRfbGlidG9vbF9saWJzPW5vCgkgICAgICBmaQoJ ICAgIGZpCgkgIGZpCglmaQoJIyBEb25lIGNoZWNraW5nIGRlcGxpYnMhCglk ZXBsaWJzPSRuZXdkZXBsaWJzCiAgICAgIGZpCiAgICAgICMgVGltZSB0byBj aGFuZ2UgYWxsIG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRv ICItZnJhbWV3b3JrIGZvbyIKICAgICAgY2FzZSAkaG9zdCBpbgoJKi0qLWRh cndpbiopCgkgIG5ld2RlcGxpYnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwg JFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBc MSVnJ2AKCSAgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICIg JG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRTRUQgJ3MlIFwoW14g JF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCgkgIGRlcGxp YnM9YCRFQ0hPICIgJGRlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5s dGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKCSAgOzsKICAgICAgZXNh YwoKICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29p bmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0CiAgICAgICMgaW5zdGFsbGVk IGxpYnJhcmllcyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaWJyYXJ5IHNl YXJjaCBsaXN0CiAgICAgIG5ld19saWJzPQogICAgICBmb3IgcGF0aCBpbiAk bm90aW5zdF9wYXRoOyBkbwoJY2FzZSAiICRuZXdfbGlicyAiIGluCgkqIiAt TCRwYXRoLyRvYmpkaXIgIiopIDs7CgkqKQoJICBjYXNlICIgJGRlcGxpYnMg IiBpbgoJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCgkgICAgbmV3X2xpYnMr PSIgLUwkcGF0aC8kb2JqZGlyIiA7OwoJICBlc2FjCgkgIDs7Cgllc2FjCiAg ICAgIGRvbmUKICAgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KCWNh c2UgJGRlcGxpYiBpbgoJLUwqKQoJICBjYXNlICIgJG5ld19saWJzICIgaW4K CSAgKiIgJGRlcGxpYiAiKikgOzsKCSAgKikgbmV3X2xpYnMrPSIgJGRlcGxp YiIgOzsKCSAgZXNhYwoJICA7OwoJKikgbmV3X2xpYnMrPSIgJGRlcGxpYiIg OzsKCWVzYWMKICAgICAgZG9uZQogICAgICBkZXBsaWJzPSIkbmV3X2xpYnMi CgogICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMg KGluc3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCiAgICAgIGxpYnJhcnlf bmFtZXM9CiAgICAgIG9sZF9saWJyYXJ5PQogICAgICBkbG5hbWU9CgogICAg ICAjIFRlc3QgYWdhaW4sIHdlIG1heSBoYXZlIGRlY2lkZWQgbm90IHRvIGJ1 aWxkIGl0IGFueSBtb3JlCiAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29s X2xpYnMiID0geWVzOyB0aGVuCglpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19s aWJzIiA9IHllczsgdGhlbgoJICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBh dGhzCgkgIGhhcmRjb2RlX2xpYmRpcnM9CgkgIGRlcF9ycGF0aD0KCSAgcnBh dGg9IiRmaW5hbGl6ZV9ycGF0aCIKCSAgdGVzdCAiJG9wdF9tb2RlIiAhPSBy ZWxpbmsgJiYgcnBhdGg9IiRjb21waWxlX3JwYXRoJHJwYXRoIgoJICBmb3Ig bGliZGlyIGluICRycGF0aDsgZG8KCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KCSAgICAgIGlmIHRlc3QgLW4g IiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgoJCWZ1bmNfcmVw bGFjZV9zeXNyb290ICIkbGliZGlyIgoJCWxpYmRpcj0kZnVuY19yZXBsYWNl X3N5c3Jvb3RfcmVzdWx0CgkJaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRp cnMiOyB0aGVuCgkJICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgoJCWVs c2UKCQkgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4K CQkgIGNhc2UgJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkaGFyZGNvZGVf bGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGluCgkJICAqIiRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIiopCgkJICAgIDs7CgkJICAqKQoJCSAgICBoYXJkY29k ZV9saWJkaXJzKz0iJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGly IgoJCSAgICA7OwoJCSAgZXNhYwoJCWZpCgkgICAgICBlbHNlCgkJZXZhbCBm bGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgoJCWRlcF9ycGF0 aCs9IiAkZmxhZyIKCSAgICAgIGZpCgkgICAgZWxpZiB0ZXN0IC1uICIkcnVu cGF0aF92YXIiOyB0aGVuCgkgICAgICBjYXNlICIkcGVybV9ycGF0aCAiIGlu CgkgICAgICAqIiAkbGliZGlyICIqKSA7OwoJICAgICAgKikgZnVuY19hcHBl ZCBwZXJtX3JwYXRoICIgJGxpYmRpciIgOzsKCSAgICAgIGVzYWMKCSAgICBm aQoJICBkb25lCgkgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRp cnMgaW50byB0aGUgcnBhdGguCgkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yIiAmJgoJICAgICB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlycyI7IHRoZW4KCSAgICBsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJz IgoJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkIjsgdGhlbgoJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZFwiCgkgICAgZWxzZQoJICAgICAgZXZhbCBk ZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCgkgICAg ZmkKCSAgZmkKCSAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiAmJiB0ZXN0 IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KCSAgICAjIFdlIHNob3VsZCBzZXQg dGhlIHJ1bnBhdGhfdmFyLgoJICAgIHJwYXRoPQoJICAgIGZvciBkaXIgaW4g JHBlcm1fcnBhdGg7IGRvCgkgICAgICBycGF0aCs9IiRkaXI6IgoJICAgIGRv bmUKCSAgICBldmFsICIkcnVucGF0aF92YXI9JyRycGF0aFwkJHJ1bnBhdGhf dmFyJzsgZXhwb3J0ICRydW5wYXRoX3ZhciIKCSAgZmkKCSAgdGVzdCAtbiAi JGRlcF9ycGF0aCIgJiYgZGVwbGlicz0iJGRlcF9ycGF0aCAkZGVwbGlicyIK CWZpCgoJc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoIgoJdGVzdCAi JG9wdF9tb2RlIiAhPSByZWxpbmsgJiYgc2hsaWJwYXRoPSIkY29tcGlsZV9z aGxpYnBhdGgkc2hsaWJwYXRoIgoJaWYgdGVzdCAtbiAiJHNobGlicGF0aCI7 IHRoZW4KCSAgZXZhbCAiJHNobGlicGF0aF92YXI9JyRzaGxpYnBhdGhcJCRz aGxpYnBhdGhfdmFyJzsgZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgoJZmkKCgkj IEdldCB0aGUgcmVhbCBhbmQgbGluayBuYW1lcyBvZiB0aGUgbGlicmFyeS4K CWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCglldmFsIGxpYnJh cnlfbmFtZXM9XCIkbGlicmFyeV9uYW1lc19zcGVjXCIKCXNldCBkdW1teSAk bGlicmFyeV9uYW1lcwoJc2hpZnQKCXJlYWxuYW1lPSIkMSIKCXNoaWZ0CgoJ aWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgoJICBldmFsIHNvbmFt ZT1cIiRzb25hbWVfc3BlY1wiCgllbHNlCgkgIHNvbmFtZT0iJHJlYWxuYW1l IgoJZmkKCWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCgkgIGRsbmFtZT0k c29uYW1lCglmaQoKCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgoJ bGlua25hbWVzPQoJZm9yIGxpbmsKCWRvCgkgIGxpbmtuYW1lcys9IiAkbGlu ayIKCWRvbmUKCgkjIFVzZSBzdGFuZGFyZCBvYmplY3RzIGlmIHRoZXkgYXJl IHBpYwoJdGVzdCAteiAiJHBpY19mbGFnIiAmJiBsaWJvYmpzPWAkRUNITyAi JGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAoJ dGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KCglkZWxmaWxl cz0KCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAi JGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KCSAgJG9wdF9kcnlfcnVuIHx8IGNw ICIkZXhwb3J0X3N5bWJvbHMiICIkb3V0cHV0X29iamRpci8kbGlibmFtZS51 ZXhwIgoJICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUudWV4cCIKCSAgZGVsZmlsZXMrPSIgJGV4cG9ydF9zeW1ib2xzIgoJZmkK CglvcmlnX2V4cG9ydF9zeW1ib2xzPQoJY2FzZSAkaG9zdF9vcyBpbgoJY3ln d2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKCSAgaWYgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzIiAmJiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgi OyB0aGVuCgkgICAgIyBleHBvcnRpbmcgdXNpbmcgdXNlciBzdXBwbGllZCBz eW1maWxlCgkgICAgaWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9s c2AiICE9IHhFWFBPUlRTOyB0aGVuCgkgICAgICAjIGFuZCBpdCdzIE5PVCBh bHJlYWR5IGEgLmRlZiBmaWxlLiBNdXN0IGZpZ3VyZSBvdXQKCSAgICAgICMg d2hpY2ggb2YgdGhlIGdpdmVuIHN5bWJvbHMgYXJlIGRhdGEgc3ltYm9scyBh bmQgdGFnCgkgICAgICAjIHRoZW0gYXMgc3VjaC4gU28sIHRyaWdnZXIgdXNl IG9mIGV4cG9ydF9zeW1ib2xzX2NtZHMuCgkgICAgICAjIGV4cG9ydF9zeW1i b2xzIGdldHMgcmVhc3NpZ25lZCBpbnNpZGUgdGhlICJwcmVwYXJlCgkgICAg ICAjIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMiIGlmIHN0YXRlbWVu dCwgc28gdGhlCgkgICAgICAjIGluY2x1ZGVfZXhwc3ltcyBsb2dpYyBzdGls bCB3b3Jrcy4KCSAgICAgIG9yaWdfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRf c3ltYm9scyIKCSAgICAgIGV4cG9ydF9zeW1ib2xzPQoJICAgICAgYWx3YXlz X2V4cG9ydF9zeW1ib2xzPXllcwoJICAgIGZpCgkgIGZpCgkgIDs7Cgllc2Fj CgoJIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKCWlm IHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KCSAgaWYgdGVzdCAi JGFsd2F5c19leHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwgdGVzdCAtbiAiJGV4 cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgoJICAgIGZ1bmNfdmVyYm9zZSAi Z2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCgkg ICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4 cCIKCSAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRleHBvcnRfc3ltYm9scwoJ ICAgIGNtZHM9JGV4cG9ydF9zeW1ib2xzX2NtZHMKCSAgICBzYXZlX2lmcz0i JElGUyI7IElGUz0nficKCSAgICBmb3IgY21kMSBpbiAkY21kczsgZG8KCSAg ICAgIElGUz0iJHNhdmVfaWZzIgoJICAgICAgIyBUYWtlIHRoZSBub3JtYWwg YnJhbmNoIGlmIHRoZSBubV9maWxlX2xpc3Rfc3BlYyBicmFuY2gKCSAgICAg ICMgZG9lc24ndCB3b3JrIG9yIGlmIHRvb2wgY29udmVyc2lvbiBpcyBub3Qg bmVlZGVkLgoJICAgICAgY2FzZSAkbm1fZmlsZV9saXN0X3NwZWN+JHRvX3Rv b2xfZmlsZV9jbWQgaW4KCQkqfmZ1bmNfY29udmVydF9maWxlX25vb3AgfCAq fmZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyIHwgfiopCgkJICB0cnlf bm9ybWFsX2JyYW5jaD15ZXMKCQkgIGV2YWwgY21kPVwiJGNtZDFcIgoJCSAg ZnVuY19sZW4gIiAkY21kIgoJCSAgbGVuPSRmdW5jX2xlbl9yZXN1bHQKCQkg IDs7CgkJKikKCQkgIHRyeV9ub3JtYWxfYnJhbmNoPW5vCgkJICA7OwoJICAg ICAgZXNhYwoJICAgICAgaWYgdGVzdCAiJHRyeV9ub3JtYWxfYnJhbmNoIiA9 IHllcyBcCgkJICYmIHsgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4i IFwKCQkgICAgICB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgfQoJ ICAgICAgdGhlbgoJCWZ1bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycK CQlza2lwcGVkX2V4cG9ydD1mYWxzZQoJICAgICAgZWxpZiB0ZXN0IC1uICIk bm1fZmlsZV9saXN0X3NwZWMiOyB0aGVuCgkJZnVuY19iYXNlbmFtZSAiJG91 dHB1dCIKCQlvdXRwdXRfbGE9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0CgkJc2F2 ZV9saWJvYmpzPSRsaWJvYmpzCgkJc2F2ZV9vdXRwdXQ9JG91dHB1dAoJCW91 dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5ubQoJCWZ1bmNf dG9fdG9vbF9maWxlICIkb3V0cHV0IgoJCWxpYm9ianM9JG5tX2ZpbGVfbGlz dF9zcGVjJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdAoJCWRlbGZpbGVzKz0i ICRvdXRwdXQiCgkJZnVuY192ZXJib3NlICJjcmVhdGluZyAkTk0gaW5wdXQg ZmlsZSBsaXN0OiAkb3V0cHV0IgoJCWZvciBvYmogaW4gJHNhdmVfbGlib2Jq czsgZG8KCQkgIGZ1bmNfdG9fdG9vbF9maWxlICIkb2JqIgoJCSAgJEVDSE8g IiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiCgkJZG9uZSA+ICIkb3V0cHV0 IgoJCWV2YWwgY21kPVwiJGNtZDFcIgoJCWZ1bmNfc2hvd19ldmFsICIkY21k IiAnZXhpdCAkPycKCQlvdXRwdXQ9JHNhdmVfb3V0cHV0CgkJbGlib2Jqcz0k c2F2ZV9saWJvYmpzCgkJc2tpcHBlZF9leHBvcnQ9ZmFsc2UKCSAgICAgIGVs c2UKCQkjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gZXhlY3V0 ZSBpbiBvbmUgc3RlcC4KCQlmdW5jX3ZlcmJvc2UgInVzaW5nIHJlbG9hZGFi bGUgb2JqZWN0IGZpbGUgZm9yIGV4cG9ydCBsaXN0Li4uIgoJCXNraXBwZWRf ZXhwb3J0PToKCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNraXBw ZWRfZXhwb3J0IG1heSBiZQoJCSMgc2V0IHRvIGZhbHNlIGJ5IGEgbGF0ZXIg YnV0IHNob3J0ZXIgY21kLgoJCWJyZWFrCgkgICAgICBmaQoJICAgIGRvbmUK CSAgICBJRlM9IiRzYXZlX2lmcyIKCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0 X3N5bWJvbHNfcmVnZXgiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9 ICJYOiI7IHRoZW4KCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUg IiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAi JHtleHBvcnRfc3ltYm9sc31UIicKCSAgICAgIGZ1bmNfc2hvd19ldmFsICck TVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9scyInCgkg ICAgZmkKCSAgZmkKCWZpCgoJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xz IiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgoJICB0bXBf ZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKCSAgdGVzdCAtbiAi JG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0i JG9yaWdfZXhwb3J0X3N5bWJvbHMiCgkgICRvcHRfZHJ5X3J1biB8fCBldmFs ICckRUNITyAiJGluY2x1ZGVfZXhwc3ltcyIgfCAkU1AyTkwgPj4gIiR0bXBf ZXhwb3J0X3N5bWJvbHMiJwoJZmkKCglpZiB0ZXN0ICJYJHNraXBwZWRfZXhw b3J0IiAhPSAiWDoiICYmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xz IjsgdGhlbgoJICAjIFRoZSBnaXZlbiBleHBvcnRzX3N5bWJvbHMgZmlsZSBo YXMgdG8gYmUgZmlsdGVyZWQsIHNvIGZpbHRlciBpdC4KCSAgZnVuY192ZXJi b3NlICJmaWx0ZXIgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRv IHRhZyBEQVRBIGV4cG9ydHMiCgkgICMgRklYTUU6ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlucyBsb3RzIG9m CgkgICMgJ3MnIGNvbW1hbmRzIHdoaWNoIG5vdCBhbGwgc2VkcyBjYW4gaGFu ZGxlLiBHTlUgc2VkIHNob3VsZCBiZSBmaW5lCgkgICMgdGhvdWdoLiBBbHNv LCB0aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51 bWJlciBvZgoJICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpvaW4oMSkgd291bGQg YmUgbmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQoJICAjIGlzbid0IGEg Ymxlc3NlZCB0b29sLgoJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sg LF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEkfFwxXDJ8LCcg PCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5m aWx0ZXIKCSAgZGVsZmlsZXMrPSIgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKCSAgZXhwb3J0X3N5bWJvbHM9JG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCgkgICRvcHRfZHJ5X3J1biB8fCAk U0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmln X2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCglmaQoKCXRtcF9k ZXBsaWJzPQoJZm9yIHRlc3RfZGVwbGliIGluICRkZXBsaWJzOyBkbwoJICBj YXNlICIgJGNvbnZlbmllbmNlICIgaW4KCSAgKiIgJHRlc3RfZGVwbGliICIq KSA7OwoJICAqKQoJICAgIHRtcF9kZXBsaWJzKz0iICR0ZXN0X2RlcGxpYiIK CSAgICA7OwoJICBlc2FjCglkb25lCglkZXBsaWJzPSIkdG1wX2RlcGxpYnMi CgoJaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgoJICBpZiB0ZXN0 IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiICYmCgkgICAgdGVzdCAi JGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXMgJiYKCSAgICB0ZXN0IC16 ICIkbGlib2JqcyI7IHRoZW4KCSAgICAjIGV4dHJhY3QgdGhlIGFyY2hpdmVz LCBzbyB3ZSBoYXZlIG9iamVjdHMgdG8gbGlzdC4KCSAgICAjIFRPRE86IGNv dWxkIG9wdGltaXplIHRoaXMgdG8ganVzdCBleHRyYWN0IG9uZSBhcmNoaXZl LgoJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQoJICBmaQoJICBpZiB0 ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCgkgICAg c2F2ZV9saWJvYmpzPSRsaWJvYmpzCgkgICAgZXZhbCBsaWJvYmpzPVwiXCRs aWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCgkgICAgdGVzdCAi WCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KCSAgZWxzZQoJICAgIGdl bnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCgkgICAgZ2Vu ZXJhdGVkKz0iICRnZW50b3AiCgoJICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZl cyAkZ2VudG9wICRjb252ZW5pZW5jZQoJICAgIGxpYm9ianMrPSIgJGZ1bmNf ZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCgkgICAgdGVzdCAiWCRsaWJvYmpz IiA9ICJYICIgJiYgbGlib2Jqcz0KCSAgZmkKCWZpCgoJaWYgdGVzdCAiJHRo cmVhZF9zYWZlIiA9IHllcyAmJiB0ZXN0IC1uICIkdGhyZWFkX3NhZmVfZmxh Z19zcGVjIjsgdGhlbgoJICBldmFsIGZsYWc9XCIkdGhyZWFkX3NhZmVfZmxh Z19zcGVjXCIKCSAgbGlua2VyX2ZsYWdzKz0iICRmbGFnIgoJZmkKCgkjIE1h a2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hlbiBy ZWxpbmtpbmcKCWlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4K CSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAm JiAkUk0gJHtyZWFsbmFtZX1VICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFt ZX1VKScgfHwgZXhpdCAkPwoJZmkKCgkjIERvIGVhY2ggb2YgdGhlIGFyY2hp dmUgY29tbWFuZHMuCglpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0 IC1uICIkbW9kdWxlX2NtZHMiIDsgdGhlbgoJICBpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMi OyB0aGVuCgkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2V4cHN5bV9j bWRzXCIKCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMKCSAgZWxzZQoJ ICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9jbWRzXCIKCSAgICBjbWRz PSRtb2R1bGVfY21kcwoJICBmaQoJZWxzZQoJICBpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRz IjsgdGhlbgoJICAgIGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hpdmVfZXhwc3lt X2NtZHNcIgoJICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKCSAgZWxz ZQoJICAgIGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hpdmVfY21kc1wiCgkgICAg Y21kcz0kYXJjaGl2ZV9jbWRzCgkgIGZpCglmaQoKCWlmIHRlc3QgIlgkc2tp cHBlZF9leHBvcnQiICE9ICJYOiIgJiYKCSAgIGZ1bmNfbGVuICIgJHRlc3Rf Y21kcyIgJiYKCSAgIGxlbj0kZnVuY19sZW5fcmVzdWx0ICYmCgkgICB0ZXN0 ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRf bGVuIiAtbGUgLTE7IHRoZW4KCSAgOgoJZWxzZQoJICAjIFRoZSBjb21tYW5k IGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBw aWVjZXdpc2UKCSAgIyBvciwgaWYgdXNpbmcgR05VIGxkIGFuZCBza2lwcGVk X2V4cG9ydCBpcyBub3QgOiwgdXNlIGEgbGlua2VyCgkgICMgc2NyaXB0LgoK CSAgIyBTYXZlIHRoZSB2YWx1ZSBvZiAkb3V0cHV0IGFuZCAkbGlib2JqcyBi ZWNhdXNlIHdlIHdhbnQgdG8KCSAgIyB1c2UgdGhlbSBsYXRlci4gIElmIHdl IGhhdmUgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsIHdlCgkgICMgd2FudCB0 byB1c2Ugc2F2ZV9saWJvYmpzIGFzIGl0IHdhcyBiZWZvcmUKCSAgIyB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYyB3YXMgZXhwYW5kZWQsIGJlY2F1c2Ugd2Ug Y2FuJ3QKCSAgIyBhc3N1bWUgdGhlIGxpbmtlciB1bmRlcnN0YW5kcyB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYy4KCSAgIyBUaGlzIG1heSBoYXZlIHRvIGJl IHJldmlzaXRlZCwgaW4gY2FzZSB0b28gbWFueQoJICAjIGNvbnZlbmllbmNl IGxpYnJhcmllcyBnZXQgbGlua2VkIGluIGFuZCBlbmQgdXAgZXhjZWVkaW5n CgkgICMgdGhlIHNwZWMuCgkgIGlmIHRlc3QgLXogIiRjb252ZW5pZW5jZSIg fHwgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgoJ ICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcwoJICBmaQoJICBzYXZlX291dHB1 dD0kb3V0cHV0CgkgIGZ1bmNfYmFzZW5hbWUgIiRvdXRwdXQiCgkgIG91dHB1 dF9sYT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKCgkgICMgQ2xlYXIgdGhlIHJl bG9hZGFibGUgb2JqZWN0IGNyZWF0aW9uIGNvbW1hbmQgcXVldWUgYW5kCgkg ICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KCSAgdGVzdF9jbWRzPQoJICBjb25j YXRfY21kcz0KCSAgb2JqbGlzdD0KCSAgbGFzdF9yb2JqPQoJICBrPTEKCgkg IGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBl ZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHll czsgdGhlbgoJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0 X2xhfS5sbmtzY3JpcHQKCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIEdO VSBsZCBzY3JpcHQ6ICRvdXRwdXQiCgkgICAgZWNobyAnSU5QVVQgKCcgPiAk b3V0cHV0CgkgICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCgkgICAgZG8K CSAgICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb2JqIgoJICAgICAgJEVDSE8g IiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiID4+ICRvdXRwdXQKCSAgICBk b25lCgkgICAgZWNobyAnKScgPj4gJG91dHB1dAoJICAgIGRlbGZpbGVzKz0i ICRvdXRwdXQiCgkgICAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCgkg ICAgb3V0cHV0PSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKCSAgZWxpZiB0 ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhw b3J0IiAhPSAiWDoiICYmIHRlc3QgIlgkZmlsZV9saXN0X3NwZWMiICE9IFg7 IHRoZW4KCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291dHB1dF9s YX0ubG5rCgkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBsaW5rZXIgaW5w dXQgZmlsZSBsaXN0OiAkb3V0cHV0IgoJICAgIDogPiAkb3V0cHV0CgkgICAg c2V0IHggJHNhdmVfbGlib2JqcwoJICAgIHNoaWZ0CgkgICAgZmlyc3RvYmo9 CgkgICAgaWYgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXM7 IHRoZW4KCSAgICAgIGZpcnN0b2JqPSIkMSAiCgkgICAgICBzaGlmdAoJICAg IGZpCgkgICAgZm9yIG9iagoJICAgIGRvCgkgICAgICBmdW5jX3RvX3Rvb2xf ZmlsZSAiJG9iaiIKCSAgICAgICRFQ0hPICIkZnVuY190b190b29sX2ZpbGVf cmVzdWx0IiA+PiAkb3V0cHV0CgkgICAgZG9uZQoJICAgIGRlbGZpbGVzKz0i ICRvdXRwdXQiCgkgICAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCgkg ICAgb3V0cHV0PSRmaXJzdG9ialwiJGZpbGVfbGlzdF9zcGVjJGZ1bmNfdG9f dG9vbF9maWxlX3Jlc3VsdFwiCgkgIGVsc2UKCSAgICBpZiB0ZXN0IC1uICIk c2F2ZV9saWJvYmpzIjsgdGhlbgoJICAgICAgZnVuY192ZXJib3NlICJjcmVh dGluZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4uLiIKCSAgICAgIG91dHB1 dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAoJICAg ICAgZXZhbCB0ZXN0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgoJICAgICAgZnVu Y19sZW4gIiAkdGVzdF9jbWRzIgoJICAgICAgbGVuMD0kZnVuY19sZW5fcmVz dWx0CgkgICAgICBsZW49JGxlbjAKCgkgICAgICAjIExvb3Agb3ZlciB0aGUg bGlzdCBvZiBvYmplY3RzIHRvIGJlIGxpbmtlZC4KCSAgICAgIGZvciBvYmog aW4gJHNhdmVfbGlib2JqcwoJICAgICAgZG8KCQlmdW5jX2xlbiAiICRvYmoi CgkJZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jlc3VsdAoJCWxlbj0k ZnVuY19hcml0aF9yZXN1bHQKCQlpZiB0ZXN0ICJYJG9iamxpc3QiID0gWCB8 fAoJCSAgIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgoJ CSAgb2JqbGlzdCs9IiAkb2JqIgoJCWVsc2UKCQkgICMgVGhlIGNvbW1hbmQg JHRlc3RfY21kcyBpcyBhbG1vc3QgdG9vIGxvbmcsIGFkZCBhCgkJICAjIGNv bW1hbmQgdG8gdGhlIHF1ZXVlLgoJCSAgaWYgdGVzdCAiJGsiIC1lcSAxIDsg dGhlbgoJCSAgICAjIFRoZSBmaXJzdCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHBy ZXZpb3VzIGNvbW1hbmQgdG8gYWRkLgoJCSAgICByZWxvYWRfb2Jqcz0kb2Jq bGlzdAoJCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiJHJlbG9hZF9jbWRzXCIK CQkgIGVsc2UKCQkgICAgIyBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9i amVjdCBmaWxlcyB3aWxsIGxpbmsgaW4KCQkgICAgIyB0aGUgbGFzdCBvbmUg Y3JlYXRlZC4KCQkgICAgcmVsb2FkX29ianM9IiRvYmpsaXN0ICRsYXN0X3Jv YmoiCgkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzfiRy ZWxvYWRfY21kc35cJFJNICRsYXN0X3JvYmpcIgoJCSAgZmkKCQkgIGxhc3Rf cm9iaj0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAoJ CSAgZnVuY19hcml0aCAkayArIDEKCQkgIGs9JGZ1bmNfYXJpdGhfcmVzdWx0 CgkJICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRv YmpleHQKCQkgIG9iamxpc3Q9IiAkb2JqIgoJCSAgZnVuY19sZW4gIiAkbGFz dF9yb2JqIgoJCSAgZnVuY19hcml0aCAkbGVuMCArICRmdW5jX2xlbl9yZXN1 bHQKCQkgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKCQlmaQoJICAgICAgZG9u ZQoJICAgICAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5IGNy ZWF0aW5nIG9uZSBsYXN0CgkgICAgICAjIHJlbG9hZGFibGUgb2JqZWN0IGZp bGUuICBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVjdAoJICAgICAg IyBmaWxlcyB3aWxsIGxpbmsgaW4gdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCgkg ICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRj b25jYXRfY21kc34KCSAgICAgIHJlbG9hZF9vYmpzPSIkb2JqbGlzdCAkbGFz dF9yb2JqIgoJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9j bWRzfSRyZWxvYWRfY21kc1wiCgkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9y b2JqIjsgdGhlbgoJICAgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29u Y2F0X2NtZHN9flwkUk0gJGxhc3Rfcm9ialwiCgkgICAgICBmaQoJICAgICAg ZGVsZmlsZXMrPSIgJG91dHB1dCIKCgkgICAgZWxzZQoJICAgICAgb3V0cHV0 PQoJICAgIGZpCgoJICAgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0 aGVuCgkgICAgICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxp c3QgZm9yIFxgJGxpYm5hbWUubGEnIgoJICAgICAgZXhwb3J0X3N5bWJvbHM9 IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIKCSAgICAgICRvcHRfZHJ5 X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xzCgkgICAgICBsaWJvYmpzPSRv dXRwdXQKCSAgICAgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0ZSB0 aGUgZXhwb3J0IGZpbGUuCgkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMi IHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KCSAgICAgIGV2YWwgY29u Y2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzJGV4cG9ydF9zeW1ib2xzX2NtZHNc IgoJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KCQlldmFs IGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc35cJFJNICRsYXN0X3JvYmpc IgoJICAgICAgZmkKCSAgICBmaQoKCSAgICB0ZXN0IC1uICIkc2F2ZV9saWJv YmpzIiAmJgoJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBhIHRlbXBv cmFyeSByZWxvYWRhYmxlIG9iamVjdCBmaWxlOiAkb3V0cHV0IgoKCSAgICAj IExvb3AgdGhyb3VnaCB0aGUgY29tbWFuZHMgZ2VuZXJhdGVkIGFib3ZlIGFu ZCBleGVjdXRlIHRoZW0uCgkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34n CgkgICAgZm9yIGNtZCBpbiAkY29uY2F0X2NtZHM7IGRvCgkgICAgICBJRlM9 IiRzYXZlX2lmcyIKCSAgICAgICRvcHRfc2lsZW50IHx8IHsKCQkgIGZ1bmNf cXVvdGVfZm9yX2V4cGFuZCAiJGNtZCIKCQkgIGV2YWwgImZ1bmNfZWNobyAk ZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKCSAgICAgIH0KCSAgICAg ICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7CgkJbHRfZXhpdD0k PwoKCQkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4 aXQKCQlpZiB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB0aGVuCgkJICAo IGNkICIkb3V0cHV0X29iamRpciIgJiYgXAoJCSAgICAkUk0gIiR7cmVhbG5h bWV9VCIgJiYgXAoJCSAgICAkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFt ZSIgKQoJCWZpCgoJCWV4aXQgJGx0X2V4aXQKCSAgICAgIH0KCSAgICBkb25l CgkgICAgSUZTPSIkc2F2ZV9pZnMiCgoJICAgIGlmIHRlc3QgLW4gIiRleHBv cnRfc3ltYm9sc19yZWdleCIgJiYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07 IHRoZW4KCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUgIiRleHBv cnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBv cnRfc3ltYm9sc31UIicKCSAgICAgIGZ1bmNfc2hvd19ldmFsICckTVYgIiR7 ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9scyInCgkgICAgZmkK CSAgZmkKCiAgICAgICAgICBpZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsg dGhlbgoJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVz dCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KCSAgICAgIHRtcF9leHBv cnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgoJICAgICAgdGVzdCAtbiAi JG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0i JG9yaWdfZXhwb3J0X3N5bWJvbHMiCgkgICAgICAkb3B0X2RyeV9ydW4gfHwg ZXZhbCAnJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5MID4+ICIk dG1wX2V4cG9ydF9zeW1ib2xzIicKCSAgICBmaQoKCSAgICBpZiB0ZXN0IC1u ICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KCSAgICAgICMgVGhlIGdp dmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwg c28gZmlsdGVyIGl0LgoJICAgICAgZnVuY192ZXJib3NlICJmaWx0ZXIgc3lt Ym9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRvIHRhZyBEQVRBIGV4cG9y dHMiCgkgICAgICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5m aWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90cyBvZgoJICAgICAgIyAn cycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdO VSBzZWQgc2hvdWxkIGJlIGZpbmUKCSAgICAgICMgdGhvdWdoLiBBbHNvLCB0 aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJl ciBvZgoJICAgICAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxk IGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKCSAgICAgICMgaXNu J3QgYSBibGVzc2VkIHRvb2wuCgkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFNF RCAtZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEk fFwxXDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5maWx0ZXIKCSAgICAgIGRlbGZpbGVzKz0iICRleHBvcnRfc3lt Ym9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCgkgICAgICBl eHBvcnRfc3ltYm9scz0kb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYKCSAg ICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9y dF9zeW1ib2xzCgkgICAgZmkKCSAgZmkKCgkgIGxpYm9ianM9JG91dHB1dAoJ ICAjIFJlc3RvcmUgdGhlIHZhbHVlIG9mIG91dHB1dC4KCSAgb3V0cHV0PSRz YXZlX291dHB1dAoKCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIiAmJiB0 ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCgkgICAg ZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY1wiCgkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jq cz0KCSAgZmkKCSAgIyBFeHBhbmQgdGhlIGxpYnJhcnkgbGlua2luZyBjb21t YW5kcyBhZ2FpbiB0byByZXNldCB0aGUKCSAgIyB2YWx1ZSBvZiAkbGlib2Jq cyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCgoJICAjIERvIGVhY2ggb2YgdGhl IGFyY2hpdmUgY29tbWFuZHMuCgkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVz ICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCgkgICAgaWYgdGVz dCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkbW9kdWxlX2V4 cHN5bV9jbWRzIjsgdGhlbgoJICAgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9j bWRzCgkgICAgZWxzZQoJICAgICAgY21kcz0kbW9kdWxlX2NtZHMKCSAgICBm aQoJICBlbHNlCgkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAm JiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KCSAgICAg IGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKCSAgICBlbHNlCgkgICAgICBj bWRzPSRhcmNoaXZlX2NtZHMKCSAgICBmaQoJICBmaQoJZmkKCglpZiB0ZXN0 IC1uICIkZGVsZmlsZXMiOyB0aGVuCgkgICMgQXBwZW5kIHRoZSBjb21tYW5k IHRvIHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMgdG8gJGNtZHMuCgkgIGV2YWwg Y21kcz1cIlwkY21kc35cJFJNICRkZWxmaWxlc1wiCglmaQoKCSMgQWRkIGFu eSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmll cwoJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCgkgIGdlbnRvcD0i JG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCgkgIGdlbmVyYXRlZCs9 IiAkZ2VudG9wIgoKCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3Ag JGRscHJlZmlsZXMKCSAgbGlib2Jqcys9IiAkZnVuY19leHRyYWN0X2FyY2hp dmVzX3Jlc3VsdCIKCSAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGli b2Jqcz0KCWZpCgoJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCglmb3IgY21k IGluICRjbWRzOyBkbwoJICBJRlM9IiRzYXZlX2lmcyIKCSAgZXZhbCBjbWQ9 XCIkY21kXCIKCSAgJG9wdF9zaWxlbnQgfHwgewoJICAgIGZ1bmNfcXVvdGVf Zm9yX2V4cGFuZCAiJGNtZCIKCSAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNf cXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCgkgIH0KCSAgJG9wdF9kcnlfcnVu IHx8IGV2YWwgIiRjbWQiIHx8IHsKCSAgICBsdF9leGl0PSQ/CgoJICAgICMg UmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAoJICAg IGlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KCSAgICAgICgg Y2QgIiRvdXRwdXRfb2JqZGlyIiAmJiBcCgkgICAgICAgICRSTSAiJHtyZWFs bmFtZX1UIiAmJiBcCgkJJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUi ICkKCSAgICBmaQoKCSAgICBleGl0ICRsdF9leGl0CgkgIH0KCWRvbmUKCUlG Uz0iJHNhdmVfaWZzIgoKCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGli cmFyeSBhbmQgZXhpdAoJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsg dGhlbgoJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2Jq ZGlyICYmICRSTSAke3JlYWxuYW1lfVQgJiYgJE1WICRyZWFsbmFtZSAke3Jl YWxuYW1lfVQgJiYgJE1WICR7cmVhbG5hbWV9VSAkcmVhbG5hbWUpJyB8fCBl eGl0ICQ/CgoJICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCgkg ICAgaWYgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhl bgoJICAgICAgZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCgkg ICAgZmkKCSAgZmkKCgkgIGV4aXQgJEVYSVRfU1VDQ0VTUwoJZmkKCgkjIENy ZWF0ZSBsaW5rcyB0byB0aGUgcmVhbCBsaWJyYXJ5LgoJZm9yIGxpbmtuYW1l IGluICRsaW5rbmFtZXM7IGRvCgkgIGlmIHRlc3QgIiRyZWFsbmFtZSIgIT0g IiRsaW5rbmFtZSI7IHRoZW4KCSAgICBmdW5jX3Nob3dfZXZhbCAnKGNkICIk b3V0cHV0X29iamRpciIgJiYgJFJNICIkbGlua25hbWUiICYmICRMTl9TICIk cmVhbG5hbWUiICIkbGlua25hbWUiKScgJ2V4aXQgJD8nCgkgIGZpCglkb25l CgoJIyBJZiAtbW9kdWxlIG9yIC1leHBvcnQtZHluYW1pYyB3YXMgc3BlY2lm aWVkLCBzZXQgdGhlIGRsbmFtZS4KCWlmIHRlc3QgIiRtb2R1bGUiID0geWVz IHx8IHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5ZXM7IHRoZW4KCSAgIyBP biBhbGwga25vd24gb3BlcmF0aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBpZGVu dGljYWwuCgkgIGRsbmFtZT0iJHNvbmFtZSIKCWZpCiAgICAgIGZpCiAgICAg IDs7CgogICAgb2JqKQogICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHBy ZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgoJZnVuY193 YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCiAg ICAgIGZpCgogICAgICBjYXNlICIgJGRlcGxpYnMiIGluCiAgICAgICpcIC1s KiB8ICpcIC1MKikKCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFy ZSBpZ25vcmVkIGZvciBvYmplY3RzIiA7OwogICAgICBlc2FjCgogICAgICB0 ZXN0IC1uICIkcnBhdGgiICYmIFwKCWZ1bmNfd2FybmluZyAiXGAtcnBhdGgn IGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCgogICAgICB0ZXN0IC1uICIkeHJw YXRoIiAmJiBcCglmdW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9y IG9iamVjdHMiCgogICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKCWZ1bmNf d2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBvYmpl Y3RzIgoKICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKCWZ1bmNfd2Fy bmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKCiAg ICAgIGNhc2UgJG91dHB1dCBpbgogICAgICAqLmxvKQoJdGVzdCAtbiAiJG9i anMkb2xkX2RlcGxpYnMiICYmIFwKCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fu bm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1dCcgZnJvbSBub24t bGlidG9vbCBvYmplY3RzIgoKCWxpYm9iaj0kb3V0cHV0CglmdW5jX2xvMm8g IiRsaWJvYmoiCglvYmo9JGZ1bmNfbG8yb19yZXN1bHQKCTs7CiAgICAgICop CglsaWJvYmo9CglvYmo9IiRvdXRwdXQiCgk7OwogICAgICBlc2FjCgogICAg ICAjIERlbGV0ZSB0aGUgb2xkIG9iamVjdHMuCiAgICAgICRvcHRfZHJ5X3J1 biB8fCAkUk0gJG9iaiAkbGlib2JqCgogICAgICAjIE9iamVjdHMgZnJvbSBj b252ZW5pZW5jZSBsaWJyYXJpZXMuICBUaGlzIGFzc3VtZXMKICAgICAgIyBz aW5nbGUtdmVyc2lvbiBjb252ZW5pZW5jZSBsaWJyYXJpZXMuICBXaGVuZXZl ciB3ZSBjcmVhdGUKICAgICAgIyBkaWZmZXJlbnQgb25lcyBmb3IgUElDL25v bi1QSUMsIHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKICAgICAgIyB0 aGUgZXh0cmFjdGlvbi4KICAgICAgcmVsb2FkX2NvbnZfb2Jqcz0KICAgICAg Z2VudG9wPQogICAgICAjIHJlbG9hZF9jbWRzIHJ1bnMgJExEIGRpcmVjdGx5 LCBzbyBsZXQgdXMgZ2V0IHJpZCBvZgogICAgICAjIC1XbCBmcm9tIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjIGFuZCBob3BlIHdlIGNhbiBnZXQgYnkgd2l0 aAogICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCiAgICAgIHds PQoKICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgoJaWYg dGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgoJICBl dmFsIHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzPVwiJHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjXCIKCSAgcmVsb2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNc IGAkRUNITyAiJHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzIiB8ICRTRUQgJ3N8 LHwgfGcnYAoJZWxzZQoJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b2Jq fXgiCgkgIGdlbmVyYXRlZCs9IiAkZ2VudG9wIgoKCSAgZnVuY19leHRyYWN0 X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCgkgIHJlbG9hZF9jb252 X29ianM9IiRyZWxvYWRfb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jl c3VsdCIKCWZpCiAgICAgIGZpCgogICAgICAjIElmIHdlJ3JlIG5vdCBidWls ZGluZyBzaGFyZWQsIHdlIG5lZWQgdG8gdXNlIG5vbl9waWNfb2JqcwogICAg ICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgbGlib2Jq cz0iJG5vbl9waWNfb2JqZWN0cyIKCiAgICAgICMgQ3JlYXRlIHRoZSBvbGQt c3R5bGUgb2JqZWN0LgogICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2Rl cGxpYnMgImAkRUNITyAiJGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiL1wu JHtsaWJleHR9JC9kOyAvXC5saWIkL2Q7ICRsbzJvIiB8ICROTDJTUGAiICRy ZWxvYWRfY29udl9vYmpzIiAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBx dW90aW5nIHRlc3QKCiAgICAgIG91dHB1dD0iJG9iaiIKICAgICAgZnVuY19l eGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCgogICAgICAj IEV4aXQgaWYgd2UgYXJlbid0IGRvaW5nIGEgbGlicmFyeSBvYmplY3QgZmls ZS4KICAgICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KCWlmIHRlc3Qg LW4gIiRnZW50b3AiOyB0aGVuCgkgIGZ1bmNfc2hvd19ldmFsICcke1JNfXIg IiRnZW50b3AiJwoJZmkKCglleGl0ICRFWElUX1NVQ0NFU1MKICAgICAgZmkK CiAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsg dGhlbgoJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KCSAgZnVuY19zaG93 X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCglmaQoKCSMgQ3JlYXRlIGFuIGlu dmFsaWQgbGlidG9vbCBvYmplY3QgaWYgbm8gUElDLCBzbyB0aGF0IHdlIGRv bid0CgkjIGFjY2lkZW50YWxseSBsaW5rIGl0IGludG8gYSBwcm9ncmFtLgoJ IyAkc2hvdyAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIgoJIyAkb3B0X2Ry eV9ydW4gfHwgZXZhbCAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIiB8fCBl eGl0ICQ/CglleGl0ICRFWElUX1NVQ0NFU1MKICAgICAgZmkKCiAgICAgIGlm IHRlc3QgLW4gIiRwaWNfZmxhZyIgfHwgdGVzdCAiJHBpY19tb2RlIiAhPSBk ZWZhdWx0OyB0aGVuCgkjIE9ubHkgZG8gY29tbWFuZHMgaWYgd2UgcmVhbGx5 IGhhdmUgZGlmZmVyZW50IFBJQyBvYmplY3RzLgoJcmVsb2FkX29ianM9IiRs aWJvYmpzICRyZWxvYWRfY29udl9vYmpzIgoJb3V0cHV0PSIkbGlib2JqIgoJ ZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCiAg ICAgIGZpCgogICAgICBpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgoJZnVu Y19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCiAgICAgIGZpCgogICAg ICBleGl0ICRFWElUX1NVQ0NFU1MKICAgICAgOzsKCiAgICBwcm9nKQogICAg ICBjYXNlICRob3N0IGluCgkqY3lnd2luKikgZnVuY19zdHJpcG5hbWUgJycg Jy5leGUnICIkb3V0cHV0IgoJICAgICAgICAgIG91dHB1dD0kZnVuY19zdHJp cG5hbWVfcmVzdWx0LmV4ZTs7CiAgICAgIGVzYWMKICAgICAgdGVzdCAtbiAi JHZpbmZvIiAmJiBcCglmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mbycg aXMgaWdub3JlZCBmb3IgcHJvZ3JhbXMiCgogICAgICB0ZXN0IC1uICIkcmVs ZWFzZSIgJiYgXAoJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25v cmVkIGZvciBwcm9ncmFtcyIKCiAgICAgIHRlc3QgIiRwcmVsb2FkIiA9IHll cyBcCiAgICAgICAgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHVua25v d24gXAoJJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiA9IHVua25vd24gXAoJJiYg dGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duICYmIFwKCSAg ZnVuY193YXJuaW5nICJcYExUX0lOSVQoW2Rsb3Blbl0pJyBub3QgdXNlZC4g QXNzdW1pbmcgbm8gZGxvcGVuIHN1cHBvcnQuIgoKICAgICAgY2FzZSAkaG9z dCBpbgogICAgICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0p CgkjIE9uIFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSBpcyB0aGUg U3lzdGVtIGZyYW1ld29yawoJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiICRj b21waWxlX2RlcGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJh bWV3b3JrIC8nYAoJZmluYWxpemVfZGVwbGlicz1gJEVDSE8gIiAkZmluYWxp emVfZGVwbGlicyIgfCAkU0VEICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdv cmsgLydgCgk7OwogICAgICBlc2FjCgogICAgICBjYXNlICRob3N0IGluCiAg ICAgICotKi1kYXJ3aW4qKQoJIyBEb24ndCBhbGxvdyBsYXp5IGxpbmtpbmcs IGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycwoJIyBCdXQgaXMg c3VwcG9zZWRseSBmaXhlZCBvbiAxMC40IG9yIGxhdGVyICh5YXkhKS4KCWlm IHRlc3QgIiR0YWduYW1lIiA9IENYWCA7IHRoZW4KCSAgY2FzZSAke01BQ09T WF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSBpbgoJICAgIDEwLlswMTIzXSkK CSAgICAgIGNvbXBpbGVfY29tbWFuZCs9IiAke3dsfS1iaW5kX2F0X2xvYWQi CgkgICAgICBmaW5hbGl6ZV9jb21tYW5kKz0iICR7d2x9LWJpbmRfYXRfbG9h ZCIKCSAgICA7OwoJICBlc2FjCglmaQoJIyBUaW1lIHRvIGNoYW5nZSBhbGwg b3VyICJmb28ubHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdv cmsgZm9vIgoJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiICRjb21waWxlX2Rl cGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZy YW1ld29yayBcMSVnJ2AKCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICIgJGZp bmFsaXplX2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1l d29yayUgLWZyYW1ld29yayBcMSVnJ2AKCTs7CiAgICAgIGVzYWMKCgogICAg ICAjIG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3 aXRoIHBhdGhzIHRvIG5vdCB5ZXQKICAgICAgIyBpbnN0YWxsZWQgbGlicmFy aWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxp c3QKICAgICAgbmV3X2xpYnM9CiAgICAgIGZvciBwYXRoIGluICRub3RpbnN0 X3BhdGg7IGRvCgljYXNlICIgJG5ld19saWJzICIgaW4KCSoiIC1MJHBhdGgv JG9iamRpciAiKikgOzsKCSopCgkgIGNhc2UgIiAkY29tcGlsZV9kZXBsaWJz ICIgaW4KCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQoJICAgIG5ld19saWJz Kz0iIC1MJHBhdGgvJG9iamRpciIgOzsKCSAgZXNhYwoJICA7OwoJZXNhYwog ICAgICBkb25lCiAgICAgIGZvciBkZXBsaWIgaW4gJGNvbXBpbGVfZGVwbGli czsgZG8KCWNhc2UgJGRlcGxpYiBpbgoJLUwqKQoJICBjYXNlICIgJG5ld19s aWJzICIgaW4KCSAgKiIgJGRlcGxpYiAiKikgOzsKCSAgKikgbmV3X2xpYnMr PSIgJGRlcGxpYiIgOzsKCSAgZXNhYwoJICA7OwoJKikgbmV3X2xpYnMrPSIg JGRlcGxpYiIgOzsKCWVzYWMKICAgICAgZG9uZQogICAgICBjb21waWxlX2Rl cGxpYnM9IiRuZXdfbGlicyIKCgogICAgICBjb21waWxlX2NvbW1hbmQrPSIg JGNvbXBpbGVfZGVwbGlicyIKICAgICAgZmluYWxpemVfY29tbWFuZCs9IiAk ZmluYWxpemVfZGVwbGlicyIKCiAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4 cnBhdGgiOyB0aGVuCgkjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBh dGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCglmb3IgbGliZGlyIGluICRycGF0 aCAkeHJwYXRoOyBkbwoJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAt cnBhdGguCgkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCgkgICoiICRs aWJkaXIgIiopIDs7CgkgICopIGZpbmFsaXplX3JwYXRoKz0iICRsaWJkaXIi IDs7CgkgIGVzYWMKCWRvbmUKICAgICAgZmkKCiAgICAgICMgTm93IGhhcmRj b2RlIHRoZSBsaWJyYXJ5IHBhdGhzCiAgICAgIHJwYXRoPQogICAgICBoYXJk Y29kZV9saWJkaXJzPQogICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3Jw YXRoICRmaW5hbGl6ZV9ycGF0aDsgZG8KCWlmIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgoJICBpZiB0ZXN0IC1uICIkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KCSAgICBpZiB0ZXN0IC16 ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KCSAgICAgIGhhcmRjb2RlX2xp YmRpcnM9IiRsaWJkaXIiCgkgICAgZWxzZQoJICAgICAgIyBKdXN0IGFjY3Vt dWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgoJICAgICAgY2FzZSAkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IgaW4KCSAgICAgICoiJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Ii KikKCQk7OwoJICAgICAgKikKCQloYXJkY29kZV9saWJkaXJzKz0iJGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgoJCTs7CgkgICAgICBlc2Fj CgkgICAgZmkKCSAgZWxzZQoJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjXCIKCSAgICBycGF0aCs9IiAkZmxhZyIKCSAgZmkK CWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgoJICBjYXNlICIk cGVybV9ycGF0aCAiIGluCgkgICoiICRsaWJkaXIgIiopIDs7CgkgICopIHBl cm1fcnBhdGgrPSIgJGxpYmRpciIgOzsKCSAgZXNhYwoJZmkKCWNhc2UgJGhv c3QgaW4KCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8 ICotKi1vczIqIHwgKi1jZWdjYyopCgkgIHRlc3RiaW5kaXI9YCR7RUNIT30g IiRsaWJkaXIiIHwgJHtTRUR9IC1lICdzKi9saWIkKi9iaW4qJ2AKCSAgY2Fz ZSA6JGRsbHNlYXJjaHBhdGg6IGluCgkgICoiOiRsaWJkaXI6IiopIDs7Cgkg IDo6KSBkbGxzZWFyY2hwYXRoPSRsaWJkaXI7OwoJICAqKSBkbGxzZWFyY2hw YXRoKz0iOiRsaWJkaXIiOzsKCSAgZXNhYwoJICBjYXNlIDokZGxsc2VhcmNo cGF0aDogaW4KCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CgkgIDo6KSBkbGxz ZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKCSAgKikgZGxsc2VhcmNocGF0aCs9 IjokdGVzdGJpbmRpciI7OwoJICBlc2FjCgkgIDs7Cgllc2FjCiAgICAgIGRv bmUKICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBp bnRvIHRoZSBycGF0aC4KICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IiICYmCgkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRp cnMiOyB0aGVuCglsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgoJZXZhbCBy cGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCiAgICAgIGZp CiAgICAgIGNvbXBpbGVfcnBhdGg9IiRycGF0aCIKCiAgICAgIHJwYXRoPQog ICAgICBoYXJkY29kZV9saWJkaXJzPQogICAgICBmb3IgbGliZGlyIGluICRm aW5hbGl6ZV9ycGF0aDsgZG8KCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjIjsgdGhlbgoJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciI7IHRoZW4KCSAgICBpZiB0ZXN0IC16ICIkaGFy ZGNvZGVfbGliZGlycyI7IHRoZW4KCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9 IiRsaWJkaXIiCgkgICAgZWxzZQoJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUg dGhlIHVuaXF1ZSBsaWJkaXJzLgoJICAgICAgY2FzZSAkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IgaW4KCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKCQk7 OwoJICAgICAgKikKCQloYXJkY29kZV9saWJkaXJzKz0iJGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IkbGliZGlyIgoJCTs7CgkgICAgICBlc2FjCgkgICAg ZmkKCSAgZWxzZQoJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjXCIKCSAgICBycGF0aCs9IiAkZmxhZyIKCSAgZmkKCWVsaWYg dGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgoJICBjYXNlICIkZmluYWxp emVfcGVybV9ycGF0aCAiIGluCgkgICoiICRsaWJkaXIgIiopIDs7CgkgICop IGZpbmFsaXplX3Blcm1fcnBhdGgrPSIgJGxpYmRpciIgOzsKCSAgZXNhYwoJ ZmkKICAgICAgZG9uZQogICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2Rl ZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgogICAgICBpZiB0ZXN0IC1uICIk aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYKCSB0ZXN0IC1uICIkaGFy ZGNvZGVfbGliZGlycyI7IHRoZW4KCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRp cnMiCglldmFsIHJwYXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj XCIKICAgICAgZmkKICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0aCIKCiAg ICAgIGlmIHRlc3QgLW4gIiRsaWJvYmpzIiAmJiB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0geWVzOyB0aGVuCgkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJh cnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9iamVjdHMuCgljb21waWxlX2Nv bW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRT RUQgIiRsbzJvIiB8ICROTDJTUGAKCWZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hP ICIkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkU0VEICIkbG8ybyIg fCAkTkwyU1BgCiAgICAgIGZpCgogICAgICBmdW5jX2dlbmVyYXRlX2Rsc3lt cyAiJG91dHB1dG5hbWUiICJAUFJPR1JBTUAiICJubyIKCiAgICAgICMgdGVt cGxhdGUgcHJlbGlua2luZyBzdGVwCiAgICAgIGlmIHRlc3QgLW4gIiRwcmVs aW5rX2NtZHMiOyB0aGVuCglmdW5jX2V4ZWN1dGVfY21kcyAiJHByZWxpbmtf Y21kcyIgJ2V4aXQgJD8nCiAgICAgIGZpCgogICAgICB3cmFwcGVyc19yZXF1 aXJlZD15ZXMKICAgICAgY2FzZSAkaG9zdCBpbgogICAgICAqY2VnY2MqIHwg Km1pbmd3MzJjZSopCiAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBj ZWdjYyBhbmQgbWluZ3czMmNlIGhvc3RzLCB3ZSBhcmUgY3Jvc3MgY29tcGls aW5nIGFueXdheS4KICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubwogICAg ICAgIDs7CiAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCiAgICAgICAgaWYg dGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCiAgICAg ICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubwogICAgICAgIGZpCiAgICAgICAg OzsKICAgICAgKikKICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0g bm8gfHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVu CiAgICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubwogICAgICAgIGZpCiAg ICAgICAgOzsKICAgICAgZXNhYwogICAgICBpZiB0ZXN0ICIkd3JhcHBlcnNf cmVxdWlyZWQiID0gbm87IHRoZW4KCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZp bGUgc3BlY2lmaWNhdGlvbi4KCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRj b21waWxlX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXQi JyVnJ2AKCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCRjb21waWxl X3JwYXRoIgoKCSMgV2UgaGF2ZSBubyB1bmluc3RhbGxlZCBsaWJyYXJ5IGRl cGVuZGVuY2llcywgc28gZmluYWxpemUgcmlnaHQgbm93LgoJZXhpdF9zdGF0 dXM9MAoJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0X3N0 YXR1cz0kPycKCglpZiB0ZXN0IC1uICIkcG9zdGxpbmtfY21kcyI7IHRoZW4K CSAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCgkgIHBvc3RsaW5rX2Nt ZHM9YGZ1bmNfZWNob19hbGwgIiRwb3N0bGlua19jbWRzIiB8ICRTRUQgLWUg J3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZycgLWUgJ3MlQFRPT0xfT1VUUFVU QCUnIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiJyVnJ2AKCSAgZnVuY19l eGVjdXRlX2NtZHMgIiRwb3N0bGlua19jbWRzIiAnZXhpdCAkPycKCWZpCgoJ IyBEZWxldGUgdGhlIGdlbmVyYXRlZCBmaWxlcy4KCWlmIHRlc3QgLWYgIiRv dXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSI7IHRoZW4K CSAgZnVuY19zaG93X2V2YWwgJyRSTSAiJG91dHB1dF9vYmpkaXIvJHtvdXRw dXRuYW1lfVMuJHtvYmpleHR9IicKCWZpCgoJZXhpdCAkZXhpdF9zdGF0dXMK ICAgICAgZmkKCiAgICAgIGlmIHRlc3QgLW4gIiRjb21waWxlX3NobGlicGF0 aCRmaW5hbGl6ZV9zaGxpYnBhdGgiOyB0aGVuCgljb21waWxlX2NvbW1hbmQ9 IiRzaGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXpl X3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5k IgogICAgICBmaQogICAgICBpZiB0ZXN0IC1uICIkZmluYWxpemVfc2hsaWJw YXRoIjsgdGhlbgoJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9 XCIkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5h bGl6ZV9jb21tYW5kIgogICAgICBmaQoKICAgICAgY29tcGlsZV92YXI9CiAg ICAgIGZpbmFsaXplX3Zhcj0KICAgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhf dmFyIjsgdGhlbgoJaWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCgkg ICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCgkgIHJwYXRoPQoJ ICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbwoJICAgIHJwYXRoKz0iJGRp cjoiCgkgIGRvbmUKCSAgY29tcGlsZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRy cGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgoJZmkKCWlmIHRlc3QgLW4gIiRmaW5h bGl6ZV9wZXJtX3JwYXRoIjsgdGhlbgoJICAjIFdlIHNob3VsZCBzZXQgdGhl IHJ1bnBhdGhfdmFyLgoJICBycGF0aD0KCSAgZm9yIGRpciBpbiAkZmluYWxp emVfcGVybV9ycGF0aDsgZG8KCSAgICBycGF0aCs9IiRkaXI6IgoJICBkb25l CgkgIGZpbmFsaXplX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVu cGF0aF92YXJcIiAiCglmaQogICAgICBmaQoKICAgICAgaWYgdGVzdCAiJG5v X2luc3RhbGwiID0geWVzOyB0aGVuCgkjIFdlIGRvbid0IG5lZWQgdG8gY3Jl YXRlIGEgd3JhcHBlciBzY3JpcHQuCglsaW5rX2NvbW1hbmQ9IiRjb21waWxl X3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKCSMgUmVwbGFj ZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KCWxpbmtfY29tbWFu ZD1gJEVDSE8gIiRsaW5rX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVUQCUn IiRvdXRwdXQiJyVnJ2AKCSMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGUu Cgkkb3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQKCSMgTGluayB0aGUgZXhl Y3V0YWJsZSBhbmQgZXhpdAoJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1h bmQiICdleGl0ICQ/JwoKCWlmIHRlc3QgLW4gIiRwb3N0bGlua19jbWRzIjsg dGhlbgoJICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKCSAgcG9zdGxp bmtfY21kcz1gZnVuY19lY2hvX2FsbCAiJHBvc3RsaW5rX2NtZHMiIHwgJFNF RCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJyAtZSAncyVAVE9PTF9P VVRQVVRAJSciJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCInJWcnYAoJICBm dW5jX2V4ZWN1dGVfY21kcyAiJHBvc3RsaW5rX2NtZHMiICdleGl0ICQ/JwoJ ZmkKCglleGl0ICRFWElUX1NVQ0NFU1MKICAgICAgZmkKCiAgICAgIGlmIHRl c3QgIiRoYXJkY29kZV9hY3Rpb24iID0gcmVsaW5rOyB0aGVuCgkjIEZhc3Qg aW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKCWxpbmtfY29tbWFuZD0i JGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgoJ cmVsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkZmluYWxpemVfY29tbWFu ZCRmaW5hbGl6ZV9ycGF0aCIKCglmdW5jX3dhcm5pbmcgInRoaXMgcGxhdGZv cm0gZG9lcyBub3QgbGlrZSB1bmluc3RhbGxlZCBzaGFyZWQgbGlicmFyaWVz IgoJZnVuY193YXJuaW5nICJcYCRvdXRwdXQnIHdpbGwgYmUgcmVsaW5rZWQg ZHVyaW5nIGluc3RhbGxhdGlvbiIKICAgICAgZWxzZQoJaWYgdGVzdCAiJGZh c3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KCSAgbGlua19jb21tYW5kPSIkZmlu YWxpemVfdmFyJGNvbXBpbGVfY29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKCSAg aWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KCSAgICByZWxp bmtfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1h bmQkY29tcGlsZV9ycGF0aCIgfCAkU0VEICdzJUBPVVRQVVRAJVwkcHJvZ2Rp ci9cJGZpbGUlZydgCgkgIGVsc2UKCSAgICAjIGZhc3RfaW5zdGFsbCBpcyBz ZXQgdG8gbmVlZGxlc3MKCSAgICByZWxpbmtfY29tbWFuZD0KCSAgZmkKCWVs c2UKCSAgbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21t YW5kJGNvbXBpbGVfcnBhdGgiCgkgIHJlbGlua19jb21tYW5kPSIkZmluYWxp emVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCglmaQog ICAgICBmaQoKICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVj aWZpY2F0aW9uLgogICAgICBsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkbGlua19j b21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZSInJWcnYAoKICAgICAgIyBEZWxldGUgdGhlIG9sZCBvdXRw dXQgZmlsZXMuCiAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dCAk b3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSAkb3V0cHV0X29iamRpci9sdC0k b3V0cHV0bmFtZQoKICAgICAgZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1h bmQiICdleGl0ICQ/JwoKICAgICAgaWYgdGVzdCAtbiAiJHBvc3RsaW5rX2Nt ZHMiOyB0aGVuCglmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dF9vYmpkaXIv JG91dHB1dG5hbWUiCglwb3N0bGlua19jbWRzPWBmdW5jX2VjaG9fYWxsICIk cG9zdGxpbmtfY21kcyIgfCAkU0VEIC1lICdzJUBPVVRQVVRAJSciJG91dHB1 dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJyAtZSAncyVAVE9PTF9PVVRQVVRA JSciJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCInJWcnYAoJZnVuY19leGVj dXRlX2NtZHMgIiRwb3N0bGlua19jbWRzIiAnZXhpdCAkPycKICAgICAgZmkK CiAgICAgICMgTm93IGNyZWF0ZSB0aGUgd3JhcHBlciBzY3JpcHQuCiAgICAg IGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKCiAgICAgICMgUXVv dGUgdGhlIHJlbGluayBjb21tYW5kIGZvciBzaGlwcGluZy4KICAgICAgaWYg dGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgoJIyBQcmVzZXJ2ZSBh bnkgdmFyaWFibGVzIHRoYXQgbWF5IGFmZmVjdCBjb21waWxlciBiZWhhdmlv cgoJZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRv CgkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCgkg ICAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwi IHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAkdmFyOyB9 OyB9OyAkcmVsaW5rX2NvbW1hbmQiCgkgIGVsaWYgZXZhbCB2YXJfdmFsdWU9 XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgoJICAgIHJlbGlu a19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFu ZCIKCSAgZWxzZQoJICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR2YXJfdmFs dWUiCgkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9y X2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgoJ ICBmaQoJZG9uZQoJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlu a19jb21tYW5kKSIKCXJlbGlua19jb21tYW5kPWAkRUNITyAiJHJlbGlua19j b21tYW5kIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYAogICAgICBmaQoK ICAgICAgIyBPbmx5IGFjdHVhbGx5IGRvIHRoaW5ncyBpZiBub3QgaW4gZHJ5 IHJ1biBtb2RlLgogICAgICAkb3B0X2RyeV9ydW4gfHwgewoJIyB3aW4zMiB3 aWxsIHRoaW5rIHRoZSBzY3JpcHQgaXMgYSBiaW5hcnkgaWYgaXQgaGFzCgkj IGEgLmV4ZSBzdWZmaXgsIHNvIHdlIHN0cmlwIGl0IG9mZiBoZXJlLgoJY2Fz ZSAkb3V0cHV0IGluCgkgICouZXhlKSBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4 ZScgIiRvdXRwdXQiCgkgICAgICAgICBvdXRwdXQ9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdCA7OwoJZXNhYwoJIyB0ZXN0IGZvciBjeWd3aW4gYmVjYXVzZSBt diBmYWlscyB3L28gLmV4ZSBleHRlbnNpb25zCgljYXNlICRob3N0IGluCgkg ICpjeWd3aW4qKQoJICAgIGV4ZWV4dD0uZXhlCgkgICAgZnVuY19zdHJpcG5h bWUgJycgJy5leGUnICIkb3V0cHV0bmFtZSIKCSAgICBvdXRwdXRuYW1lPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKCSAgKikgZXhlZXh0PSA7OwoJZXNh YwoJY2FzZSAkaG9zdCBpbgoJICAqY3lnd2luKiB8ICptaW5ndyogKQoJICAg IGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRvdXRwdXQiICIiICIuIgoJ ICAgIG91dHB1dF9uYW1lPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAoJICAgIG91 dHB1dF9wYXRoPSRmdW5jX2Rpcm5hbWVfcmVzdWx0CgkgICAgY3dyYXBwZXJz b3VyY2U9IiRvdXRwdXRfcGF0aC8kb2JqZGlyL2x0LSRvdXRwdXRfbmFtZS5j IgoJICAgIGN3cmFwcGVyPSIkb3V0cHV0X3BhdGgvJG91dHB1dF9uYW1lLmV4 ZSIKCSAgICAkUk0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcgoJICAgIHRy YXAgIiRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVyICRjd3JhcHBlci5t YW5pZmVzdDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKCgkgICAgZnVu Y19lbWl0X2N3cmFwcGVyZXhlX3NyYyA+ICRjd3JhcHBlcnNvdXJjZQoKCSAg ICAjIFRoZSB3cmFwcGVyIGV4ZWN1dGFibGUgaXMgYnVpbHQgdXNpbmcgdGhl ICRob3N0IGNvbXBpbGVyLAoJICAgICMgYmVjYXVzZSBpdCBjb250YWlucyAk aG9zdCBwYXRocyBhbmQgZmlsZXMuIElmIGNyb3NzLQoJICAgICMgY29tcGls aW5nLCBpdCwgbGlrZSB0aGUgdGFyZ2V0IGV4ZWN1dGFibGUsIG11c3QgYmUK CSAgICAjIGV4ZWN1dGVkIG9uIHRoZSAkaG9zdCBvciB1bmRlciBhbiBlbXVs YXRpb24gZW52aXJvbm1lbnQuCgkgICAgJG9wdF9kcnlfcnVuIHx8IHsKCSAg ICAgICRMVENDICRMVENGTEFHUyAtbyAkY3dyYXBwZXIgJGN3cmFwcGVyc291 cmNlCgkgICAgICAkU1RSSVAgJGN3cmFwcGVyCgkgICAgfQoKCSAgICAjIE5v dywgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdCBmb3IgZnVuY19zb3VyY2Ug dXNlOgoJICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgJGN3cmFwcGVy CgkgICAgJFJNICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAoJ ICAgIHRyYXAgIiRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1 bHQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1CgkgICAgJG9wdF9kcnlf cnVuIHx8IHsKCSAgICAgICMgbm90ZTogdGhpcyBzY3JpcHQgd2lsbCBub3Qg YmUgZXhlY3V0ZWQsIHNvIGRvIG5vdCBjaG1vZC4KCSAgICAgIGlmIHRlc3Qg IngkYnVpbGQiID0gIngkaG9zdCIgOyB0aGVuCgkJIyBDcmVhdGUgdGhlIFVB QyBtYW5pZmVzdHMgZmlyc3QgaWYgbmVjZXNzYXJ5IChidXQgdGhlCgkJIyBt YW5pZmVzdCBmaWxlcyBtdXN0IGhhdmUgZXhlY3V0YWJsZSBwZXJtaXNzaW9u IHJlZ2FyZGxlc3MpLgoJCWNhc2UgJG91dHB1dF9uYW1lIGluCgkJICAqaW5z dGFsKnwqcGF0Y2gqfCpzZXR1cCp8KnVwZGF0ZSopCgkJICAgIGZ1bmNfZW1p dF9leGVfbWFuaWZlc3QgPiAkY3dyYXBwZXIubWFuaWZlc3QKCQkgICAgZnVu Y19lbWl0X2V4ZV9tYW5pZmVzdCA+ICRvdXRwdXRfcGF0aC8kb2JqZGlyLyRv dXRwdXRfbmFtZS5leGUubWFuaWZlc3QKCQkgICAgY2htb2QgK3ggJGN3cmFw cGVyLm1hbmlmZXN0CgkJICAgIGNobW9kICt4ICRvdXRwdXRfcGF0aC8kb2Jq ZGlyLyRvdXRwdXRfbmFtZS5leGUubWFuaWZlc3QKCQkgIDs7CgkJZXNhYwoJ CSRjd3JhcHBlciAtLWx0LWR1bXAtc2NyaXB0ID4gJGZ1bmNfbHR3cmFwcGVy X3NjcmlwdG5hbWVfcmVzdWx0CgkgICAgICBlbHNlCgkJZnVuY19lbWl0X3dy YXBwZXIgbm8gPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQK CSAgICAgIGZpCgkgICAgfQoJICA7OwoJICAqICkKCSAgICAkUk0gJG91dHB1 dAoJICAgIHRyYXAgIiRSTSAkb3V0cHV0OyBleGl0ICRFWElUX0ZBSUxVUkUi IDEgMiAxNQoKCSAgICBmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRvdXRwdXQK CSAgICBjaG1vZCAreCAkb3V0cHV0CgkgIDs7Cgllc2FjCiAgICAgIH0KICAg ICAgZXhpdCAkRVhJVF9TVUNDRVNTCiAgICAgIDs7CiAgICBlc2FjCgogICAg IyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFy Y2hpdmUuCiAgICBmb3Igb2xkbGliIGluICRvbGRsaWJzOyBkbwoKICAgICAg aWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsg dGhlbgoJb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSAkc3ltZmlsZW9iaiIKCWFk ZGxpYnM9IiRjb252ZW5pZW5jZSIKCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwog ICAgICBlbHNlCglpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG1v ZHVsZTsgdGhlbgoJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgoJICBidWls ZF9saWJ0b29sX2xpYnM9bm8KCWVsc2UKCSAgb2xkb2Jqcz0iJG9sZF9kZXBs aWJzICRub25fcGljX29iamVjdHMiCgkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9 IHllcyAmJiB0ZXN0IC1mICIkc3ltZmlsZW9iaiI7IHRoZW4KCSAgICBvbGRv YmpzKz0iICRzeW1maWxlb2JqIgoJICBmaQoJZmkKCWFkZGxpYnM9IiRvbGRf Y29udmVuaWVuY2UiCiAgICAgIGZpCgogICAgICBpZiB0ZXN0IC1uICIkYWRk bGlicyI7IHRoZW4KCWdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRu YW1lfXgiCglnZW5lcmF0ZWQrPSIgJGdlbnRvcCIKCglmdW5jX2V4dHJhY3Rf YXJjaGl2ZXMgJGdlbnRvcCAkYWRkbGlicwoJb2xkb2Jqcys9IiAkZnVuY19l eHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKICAgICAgZmkKCiAgICAgICMgRG8g ZWFjaCBjb21tYW5kIGluIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgogICAgICBp ZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KCWNtZHM9JG9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKICAgICAgZWxzZQoKCSMgQWRkIGFu eSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmll cwoJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCgkgIGdlbnRvcD0i JG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCgkgIGdlbmVyYXRlZCs9 IiAkZ2VudG9wIgoKCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3Ag JGRscHJlZmlsZXMKCSAgb2xkb2Jqcys9IiAkZnVuY19leHRyYWN0X2FyY2hp dmVzX3Jlc3VsdCIKCWZpCgoJIyBQT1NJWCBkZW1hbmRzIG5vIHBhdGhzIHRv IGJlIGVuY29kZWQgaW4gYXJjaGl2ZXMuICBXZSBoYXZlCgkjIHRvIGF2b2lk IGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2VuYW1lcyBp ZiB3ZQoJIyBtaWdodCBoYXZlIHRvIGV4dHJhY3QgdGhlbSBhZnRlcndhcmRz LCBlLmcuLCB3aGVuIGNyZWF0aW5nIGEKCSMgc3RhdGljIGFyY2hpdmUgb3V0 IG9mIGEgY29udmVuaWVuY2UgbGlicmFyeSwgb3Igd2hlbiBsaW5raW5nCgkj IHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRvIGFub3Ro ZXIgKGN1cnJlbnRseQoJIyBub3Qgc3VwcG9ydGVkIGJ5IGxpYnRvb2wpLgoJ aWYgKGZvciBvYmogaW4gJG9sZG9ianMKCSAgICBkbwoJICAgICAgZnVuY19i YXNlbmFtZSAiJG9iaiIKCSAgICAgICRFQ0hPICIkZnVuY19iYXNlbmFtZV9y ZXN1bHQiCgkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxs IDI+JjEpOyB0aGVuCgkgIDoKCWVsc2UKCSAgZWNobyAiY29weWluZyBzZWxl Y3RlZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxpY3Rz Li4uIgoJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14 IgoJICBnZW5lcmF0ZWQrPSIgJGdlbnRvcCIKCSAgZnVuY19ta2Rpcl9wICIk Z2VudG9wIgoJICBzYXZlX29sZG9ianM9JG9sZG9ianMKCSAgb2xkb2Jqcz0K CSAgY291bnRlcj0xCgkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcwoJICBk bwoJICAgIGZ1bmNfYmFzZW5hbWUgIiRvYmoiCgkgICAgb2JqYmFzZT0iJGZ1 bmNfYmFzZW5hbWVfcmVzdWx0IgoJICAgIGNhc2UgIiAkb2xkb2JqcyAiIGlu CgkgICAgIiAiKSBvbGRvYmpzPSRvYmogOzsKCSAgICAqW1wgL10iJG9iamJh c2UgIiopCgkgICAgICB3aGlsZSA6OyBkbwoJCSMgTWFrZSBzdXJlIHdlIGRv bid0IHBpY2sgYW4gYWx0ZXJuYXRlIG5hbWUgdGhhdCBhbHNvCgkJIyBvdmVy bGFwcy4KCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFzZQoJCWZ1bmNfYXJp dGggJGNvdW50ZXIgKyAxCgkJY291bnRlcj0kZnVuY19hcml0aF9yZXN1bHQK CQljYXNlICIgJG9sZG9ianMgIiBpbgoJCSpbXCAvXSIkbmV3b2JqICIqKSA7 OwoJCSopIGlmIHRlc3QgISAtZiAiJGdlbnRvcC8kbmV3b2JqIjsgdGhlbiBi cmVhazsgZmkgOzsKCQllc2FjCgkgICAgICBkb25lCgkgICAgICBmdW5jX3No b3dfZXZhbCAibG4gJG9iaiAkZ2VudG9wLyRuZXdvYmogfHwgY3AgJG9iaiAk Z2VudG9wLyRuZXdvYmoiCgkgICAgICBvbGRvYmpzKz0iICRnZW50b3AvJG5l d29iaiIKCSAgICAgIDs7CgkgICAgKikgb2xkb2Jqcys9IiAkb2JqIiA7OwoJ ICAgIGVzYWMKCSAgZG9uZQoJZmkKCWV2YWwgY21kcz1cIiRvbGRfYXJjaGl2 ZV9jbWRzXCIKCglmdW5jX2xlbiAiICRjbWRzIgoJbGVuPSRmdW5jX2xlbl9y ZXN1bHQKCWlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0 ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgoJICBjbWRzPSRvbGRf YXJjaGl2ZV9jbWRzCgllbGlmIHRlc3QgLW4gIiRhcmNoaXZlcl9saXN0X3Nw ZWMiOyB0aGVuCgkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgY29tbWFuZCBmaWxl IGFyY2hpdmUgbGlua2luZy4uLiIKCSAgZm9yIG9iaiBpbiAkb2xkb2JqcwoJ ICBkbwoJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb2JqIgoJICAgICRFQ0hP ICIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IgoJICBkb25lID4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUubGliY21kCgkgIGZ1bmNfdG9fdG9vbF9maWxl ICIkb3V0cHV0X29iamRpci8kbGlibmFtZS5saWJjbWQiCgkgIG9sZG9ianM9 IiAkYXJjaGl2ZXJfbGlzdF9zcGVjJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3Vs dCIKCSAgY21kcz0kb2xkX2FyY2hpdmVfY21kcwoJZWxzZQoJICAjIHRoZSBj b21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwg bGluayBpbiBwYXJ0cwoJICBmdW5jX3ZlcmJvc2UgInVzaW5nIHBpZWNld2lz ZSBhcmNoaXZlIGxpbmtpbmcuLi4iCgkgIHNhdmVfUkFOTElCPSRSQU5MSUIK CSAgUkFOTElCPToKCSAgb2JqbGlzdD0KCSAgY29uY2F0X2NtZHM9CgkgIHNh dmVfb2xkb2Jqcz0kb2xkb2JqcwoJICBvbGRvYmpzPQoJICAjIElzIHRoZXJl IGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0 aGUgbGlzdD8KCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCgkgIGRvCgkg ICAgbGFzdF9vbGRvYmo9JG9iagoJICBkb25lCgkgIGV2YWwgdGVzdF9jbWRz PVwiJG9sZF9hcmNoaXZlX2NtZHNcIgoJICBmdW5jX2xlbiAiICR0ZXN0X2Nt ZHMiCgkgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAoJICBsZW49JGxlbjAKCSAg Zm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCgkgIGRvCgkgICAgZnVuY19sZW4g IiAkb2JqIgoJICAgIGZ1bmNfYXJpdGggJGxlbiArICRmdW5jX2xlbl9yZXN1 bHQKCSAgICBsZW49JGZ1bmNfYXJpdGhfcmVzdWx0CgkgICAgb2JqbGlzdCs9 IiAkb2JqIgoJICAgIGlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVu IjsgdGhlbgoJICAgICAgOgoJICAgIGVsc2UKCSAgICAgICMgdGhlIGFib3Zl IGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIGl0IGdldHMgdG9vIGxv bmcKCSAgICAgIG9sZG9ianM9JG9iamxpc3QKCSAgICAgIGlmIHRlc3QgIiRv YmoiID0gIiRsYXN0X29sZG9iaiIgOyB0aGVuCgkJUkFOTElCPSRzYXZlX1JB TkxJQgoJICAgICAgZmkKCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIg fHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgoJICAgICAgZXZhbCBjb25j YXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRvbGRfYXJjaGl2ZV9jbWRzXCIK CSAgICAgIG9iamxpc3Q9CgkgICAgICBsZW49JGxlbjAKCSAgICBmaQoJICBk b25lCgkgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKCSAgb2xkb2Jqcz0kb2JqbGlz dAoJICBpZiB0ZXN0ICJYJG9sZG9ianMiID0gIlgiIDsgdGhlbgoJICAgIGV2 YWwgY21kcz1cIlwkY29uY2F0X2NtZHNcIgoJICBlbHNlCgkgICAgZXZhbCBj bWRzPVwiXCRjb25jYXRfY21kc35cJG9sZF9hcmNoaXZlX2NtZHNcIgoJICBm aQoJZmkKICAgICAgZmkKICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRjbWRz IiAnZXhpdCAkPycKICAgIGRvbmUKCiAgICB0ZXN0IC1uICIkZ2VuZXJhdGVk IiAmJiBcCiAgICAgIGZ1bmNfc2hvd19ldmFsICIke1JNfXIkZ2VuZXJhdGVk IgoKICAgICMgTm93IGNyZWF0ZSB0aGUgbGlidG9vbCBhcmNoaXZlLgogICAg Y2FzZSAkb3V0cHV0IGluCiAgICAqLmxhKQogICAgICBvbGRfbGlicmFyeT0K ICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiBvbGRfbGli cmFyeT0iJGxpYm5hbWUuJGxpYmV4dCIKICAgICAgZnVuY192ZXJib3NlICJj cmVhdGluZyAkb3V0cHV0IgoKICAgICAgIyBQcmVzZXJ2ZSBhbnkgdmFyaWFi bGVzIHRoYXQgbWF5IGFmZmVjdCBjb21waWxlciBiZWhhdmlvcgogICAgICBm b3IgdmFyIGluICR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluazsgZG8KCWlm IGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCgkgIHJlbGlu a19jb21tYW5kPSJ7IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8fCAkbHRf dW5zZXQgJHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJl bGlua19jb21tYW5kIgoJZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRl c3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCgkgIHJlbGlua19jb21tYW5kPSIk dmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKCWVsc2UKCSAg ZnVuY19xdW90ZV9mb3JfZXZhbCAiJHZhcl92YWx1ZSIKCSAgcmVsaW5rX2Nv bW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBv cnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgoJZmkKICAgICAgZG9uZQogICAg ICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgogICAg ICByZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAkU0hFTEwgJHByb2dwYXRo ICRwcmVzZXJ2ZV9hcmdzIC0tbW9kZT1yZWxpbmsgJGxpYnRvb2xfYXJncyBA aW5zdF9wcmVmaXhfZGlyQCkiCiAgICAgIHJlbGlua19jb21tYW5kPWAkRUNI TyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3Qi YAogICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllcyA7 IHRoZW4KCXJlbGlua19jb21tYW5kPQogICAgICBmaQoKICAgICAgIyBPbmx5 IGNyZWF0ZSB0aGUgb3V0cHV0IGlmIG5vdCBhIGRyeSBydW4uCiAgICAgICRv cHRfZHJ5X3J1biB8fCB7Cglmb3IgaW5zdGFsbGVkIGluIG5vIHllczsgZG8K CSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KCSAgICBpZiB0 ZXN0IC16ICIkaW5zdGFsbF9saWJkaXIiOyB0aGVuCgkgICAgICBicmVhawoJ ICAgIGZpCgkgICAgb3V0cHV0PSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFt ZSJpCgkgICAgIyBSZXBsYWNlIGFsbCB1bmluc3RhbGxlZCBsaWJ0b29sIGxp YnJhcmllcyB3aXRoIHRoZSBpbnN0YWxsZWQgb25lcwoJICAgIG5ld2RlcGVu ZGVuY3lfbGlicz0KCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xp YnM7IGRvCgkgICAgICBjYXNlICRkZXBsaWIgaW4KCSAgICAgICoubGEpCgkJ ZnVuY19iYXNlbmFtZSAiJGRlcGxpYiIKCQluYW1lPSIkZnVuY19iYXNlbmFt ZV9yZXN1bHQiCgkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGli ZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKCQl0ZXN0IC16ICIkbGliZGly IiAmJiBcCgkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5v dCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKCQluZXdkZXBlbmRlbmN5X2xp YnMrPSIgJHtsdF9zeXNyb290Ois9fSRsaWJkaXIvJG5hbWUiCgkJOzsKCSAg ICAgIC1MKikKCQlmdW5jX3N0cmlwbmFtZSAtTCAnJyAiJGRlcGxpYiIKCQlm dW5jX3JlcGxhY2Vfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIK CQluZXdkZXBlbmRlbmN5X2xpYnMrPSIgLUwkZnVuY19yZXBsYWNlX3N5c3Jv b3RfcmVzdWx0IgoJCTs7CgkgICAgICAtUiopCgkJZnVuY19zdHJpcG5hbWUg LVIgJycgIiRkZXBsaWIiCgkJZnVuY19yZXBsYWNlX3N5c3Jvb3QgIiRmdW5j X3N0cmlwbmFtZV9yZXN1bHQiCgkJbmV3ZGVwZW5kZW5jeV9saWJzKz0iIC1S JGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdCIKCQk7OwoJICAgICAgKikg bmV3ZGVwZW5kZW5jeV9saWJzKz0iICRkZXBsaWIiIDs7CgkgICAgICBlc2Fj CgkgICAgZG9uZQoJICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVu Y3lfbGlicyIKCSAgICBuZXdkbGZpbGVzPQoKCSAgICBmb3IgbGliIGluICRk bGZpbGVzOyBkbwoJICAgICAgY2FzZSAkbGliIGluCgkgICAgICAqLmxhKQoJ ICAgICAgICBmdW5jX2Jhc2VuYW1lICIkbGliIgoJCW5hbWU9IiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdz L15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAoJCXRlc3QgLXogIiRsaWJk aXIiICYmIFwKCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90 IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgoJCW5ld2RsZmlsZXMrPSIgJHts dF9zeXNyb290Ois9fSRsaWJkaXIvJG5hbWUiCgkJOzsKCSAgICAgICopIG5l d2RsZmlsZXMrPSIgJGxpYiIgOzsKCSAgICAgIGVzYWMKCSAgICBkb25lCgkg ICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCgkgICAgbmV3ZGxwcmVmaWxlcz0K CSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbwoJICAgICAgY2FzZSAk bGliIGluCgkgICAgICAqLmxhKQoJCSMgT25seSBwYXNzIHByZW9wZW5lZCBm aWxlcyB0byB0aGUgcHNldWRvLWFyY2hpdmUgKGZvcgoJCSMgZXZlbnR1YWwg bGlua2luZyB3aXRoIHRoZSBhcHAuIHRoYXQgbGlua3MgaXQpIGlmIHdlCgkJ IyBkaWRuJ3QgYWxyZWFkeSBsaW5rIHRoZSBwcmVvcGVuZWQgb2JqZWN0cyBk aXJlY3RseSBpbnRvCgkJIyB0aGUgbGlicmFyeToKCQlmdW5jX2Jhc2VuYW1l ICIkbGliIgoJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKCQlldmFs IGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9w JyAkbGliYAoJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKCQkgIGZ1bmNfZmF0 YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNo aXZlIgoJCW5ld2RscHJlZmlsZXMrPSIgJHtsdF9zeXNyb290Ois9fSRsaWJk aXIvJG5hbWUiCgkJOzsKCSAgICAgIGVzYWMKCSAgICBkb25lCgkgICAgZGxw cmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCgkgIGVsc2UKCSAgICBuZXdkbGZp bGVzPQoJICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCgkgICAgICBjYXNl ICRsaWIgaW4KCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxp YiIgOzsKCQkqKSBhYnM9YHB3ZGAiLyRsaWIiIDs7CgkgICAgICBlc2FjCgkg ICAgICBuZXdkbGZpbGVzKz0iICRhYnMiCgkgICAgZG9uZQoJICAgIGRsZmls ZXM9IiRuZXdkbGZpbGVzIgoJICAgIG5ld2RscHJlZmlsZXM9CgkgICAgZm9y IGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KCSAgICAgIGNhc2UgJGxpYiBpbgoJ CVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OwoJCSop IGFicz1gcHdkYCIvJGxpYiIgOzsKCSAgICAgIGVzYWMKCSAgICAgIG5ld2Rs cHJlZmlsZXMrPSIgJGFicyIKCSAgICBkb25lCgkgICAgZGxwcmVmaWxlcz0i JG5ld2RscHJlZmlsZXMiCgkgIGZpCgkgICRSTSAkb3V0cHV0CgkgICMgcGxh Y2UgZGxuYW1lIGluIGNvcnJlY3QgcG9zaXRpb24gZm9yIGN5Z3dpbgoJICAj IEluIGZhY3QsIGl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgdXNlIHRo aXMgY29kZSBmb3IgYWxsIHRhcmdldAoJICAjIHN5c3RlbXMgdGhhdCBjYW4n dCBoYXJkLWNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHRoZWlyIGV4ZWN1dGFi bGVzCgkgICMgYW5kIHRoYXQgaGF2ZSBubyBzaGFyZWQgbGlicmFyeSBwYXRo IHZhcmlhYmxlIGluZGVwZW5kZW50IG9mIFBBVEgsCgkgICMgYnV0IGl0IHR1 cm5zIG91dCB3ZSBjYW4ndCBlYXNpbHkgZGV0ZXJtaW5lIHRoYXQgZnJvbSBp bnNwZWN0aW5nCgkgICMgbGlidG9vbCB2YXJpYWJsZXMsIHNvIHdlIGhhdmUg dG8gaGFyZC1jb2RlIHRoZSBPU3MgdG8gd2hpY2ggaXQKCSAgIyBhcHBsaWVz IGhlcmU7IGF0IHRoZSBtb21lbnQsIHRoYXQgbWVhbnMgcGxhdGZvcm1zIHRo YXQgdXNlIHRoZSBQRQoJICAjIG9iamVjdCBmb3JtYXQgd2l0aCBETEwgZmls ZXMuICBTZWUgdGhlIGxvbmcgY29tbWVudCBhdCB0aGUgdG9wIG9mCgkgICMg dGVzdHMvYmluZGlyLmF0IGZvciBmdWxsIGRldGFpbHMuCgkgIHRkbG5hbWU9 JGRsbmFtZQoJICBjYXNlICRob3N0LCRvdXRwdXQsJGluc3RhbGxlZCwkbW9k dWxlLCRkbG5hbWUgaW4KCSAgICAqY3lnd2luKiwqbGFpLHllcyxubywqLmRs bCB8ICptaW5ndyosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqY2VnY2MqLCpsYWks eWVzLG5vLCouZGxsKQoJICAgICAgIyBJZiBhIC1iaW5kaXIgYXJndW1lbnQg d2FzIHN1cHBsaWVkLCBwbGFjZSB0aGUgZGxsIHRoZXJlLgoJICAgICAgaWYg dGVzdCAieCRiaW5kaXIiICE9IHggOwoJICAgICAgdGhlbgoJCWZ1bmNfcmVs YXRpdmVfcGF0aCAiJGluc3RhbGxfbGliZGlyIiAiJGJpbmRpciIKCQl0ZGxu YW1lPSRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0JGRsbmFtZQoJICAgICAg ZWxzZQoJCSMgT3RoZXJ3aXNlIGZhbGwgYmFjayBvbiBoZXVyaXN0aWMuCgkJ dGRsbmFtZT0uLi9iaW4vJGRsbmFtZQoJICAgICAgZmkKCSAgICAgIDs7Cgkg IGVzYWMKCSAgJEVDSE8gPiAkb3V0cHV0ICJcCiMgJG91dHB1dG5hbWUgLSBh IGxpYnRvb2wgbGlicmFyeSBmaWxlCiMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFN IChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgojCiMgUGxlYXNl IERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQojIEl0IGlzIG5lY2Vzc2FyeSBm b3IgbGlua2luZyB0aGUgbGlicmFyeS4KCiMgVGhlIG5hbWUgdGhhdCB3ZSBj YW4gZGxvcGVuKDMpLgpkbG5hbWU9JyR0ZGxuYW1lJwoKIyBOYW1lcyBvZiB0 aGlzIGxpYnJhcnkuCmxpYnJhcnlfbmFtZXM9JyRsaWJyYXJ5X25hbWVzJwoK IyBUaGUgbmFtZSBvZiB0aGUgc3RhdGljIGFyY2hpdmUuCm9sZF9saWJyYXJ5 PSckb2xkX2xpYnJhcnknCgojIExpbmtlciBmbGFncyB0aGF0IGNhbiBub3Qg Z28gaW4gZGVwZW5kZW5jeV9saWJzLgppbmhlcml0ZWRfbGlua2VyX2ZsYWdz PSckbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MnCgojIExpYnJhcmllcyB0 aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KZGVwZW5kZW5jeV9saWJzPSck ZGVwZW5kZW5jeV9saWJzJwoKIyBOYW1lcyBvZiBhZGRpdGlvbmFsIHdlYWsg bGlicmFyaWVzIHByb3ZpZGVkIGJ5IHRoaXMgbGlicmFyeQp3ZWFrX2xpYnJh cnlfbmFtZXM9JyR3ZWFrX2xpYnMnCgojIFZlcnNpb24gaW5mb3JtYXRpb24g Zm9yICRsaWJuYW1lLgpjdXJyZW50PSRjdXJyZW50CmFnZT0kYWdlCnJldmlz aW9uPSRyZXZpc2lvbgoKIyBJcyB0aGlzIGFuIGFscmVhZHkgaW5zdGFsbGVk IGxpYnJhcnk/Cmluc3RhbGxlZD0kaW5zdGFsbGVkCgojIFNob3VsZCB3ZSB3 YXJuIGFib3V0IHBvcnRhYmlsaXR5IHdoZW4gbGlua2luZyBhZ2FpbnN0IC1t b2R1bGVzPwpzaG91bGRub3RsaW5rPSRtb2R1bGUKCiMgRmlsZXMgdG8gZGxv cGVuL2RscHJlb3BlbgpkbG9wZW49JyRkbGZpbGVzJwpkbHByZW9wZW49JyRk bHByZWZpbGVzJwoKIyBEaXJlY3RvcnkgdGhhdCB0aGlzIGxpYnJhcnkgbmVl ZHMgdG8gYmUgaW5zdGFsbGVkIGluOgpsaWJkaXI9JyRpbnN0YWxsX2xpYmRp ciciCgkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm8gJiYgdGVzdCAiJG5l ZWRfcmVsaW5rIiA9IHllczsgdGhlbgoJICAgICRFQ0hPID4+ICRvdXRwdXQg IlwKcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKCSAgZmkK CWRvbmUKICAgICAgfQoKICAgICAgIyBEbyBhIHN5bWJvbGljIGxpbmsgc28g dGhhdCB0aGUgbGlidG9vbCBhcmNoaXZlIGNhbiBiZSBmb3VuZCBpbgogICAg ICAjIExEX0xJQlJBUllfUEFUSCBiZWZvcmUgdGhlIHByb2dyYW0gaXMgaW5z dGFsbGVkLgogICAgICBmdW5jX3Nob3dfZXZhbCAnKCBjZCAiJG91dHB1dF9v YmpkaXIiICYmICRSTSAiJG91dHB1dG5hbWUiICYmICRMTl9TICIuLi8kb3V0 cHV0bmFtZSIgIiRvdXRwdXRuYW1lIiApJyAnZXhpdCAkPycKICAgICAgOzsK ICAgIGVzYWMKICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwp9Cgp7IHRlc3QgIiRv cHRfbW9kZSIgPSBsaW5rIHx8IHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7 IH0gJiYKICAgIGZ1bmNfbW9kZV9saW5rICR7MSsiJEAifQoKCiMgZnVuY19t b2RlX3VuaW5zdGFsbCBhcmcuLi4KZnVuY19tb2RlX3VuaW5zdGFsbCAoKQp7 CiAgICAkb3B0X2RlYnVnCiAgICBSTT0iJG5vbm9wdCIKICAgIGZpbGVzPQog ICAgcm1mb3JjZT0KICAgIGV4aXRfc3RhdHVzPTAKCiAgICAjIFRoaXMgdmFy aWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlh YmxlcyByYXRoZXIKICAgICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1z LgogICAgbGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCgogICAgZm9y IGFyZwogICAgZG8KICAgICAgY2FzZSAkYXJnIGluCiAgICAgIC1mKSBSTSs9 IiAkYXJnIjsgcm1mb3JjZT15ZXMgOzsKICAgICAgLSopIFJNKz0iICRhcmci IDs7CiAgICAgICopIGZpbGVzKz0iICRhcmciIDs7CiAgICAgIGVzYWMKICAg IGRvbmUKCiAgICB0ZXN0IC16ICIkUk0iICYmIFwKICAgICAgZnVuY19mYXRh bF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHByb2dyYW0iCgogICAg cm1kaXJzPQoKICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KICAgICAgZnVu Y19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCiAgICAgIGRpcj0iJGZ1bmNfZGly bmFtZV9yZXN1bHQiCiAgICAgIGlmIHRlc3QgIlgkZGlyIiA9IFguOyB0aGVu CglvZGlyPSIkb2JqZGlyIgogICAgICBlbHNlCglvZGlyPSIkZGlyLyRvYmpk aXIiCiAgICAgIGZpCiAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgogICAg ICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCiAgICAgIHRlc3QgIiRv cHRfbW9kZSIgPSB1bmluc3RhbGwgJiYgb2Rpcj0iJGRpciIKCiAgICAgICMg UmVtZW1iZXIgb2RpciBmb3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1 bCB0byBhdm9pZCBkdXBsaWNhdGVzCiAgICAgIGlmIHRlc3QgIiRvcHRfbW9k ZSIgPSBjbGVhbjsgdGhlbgoJY2FzZSAiICRybWRpcnMgIiBpbgoJICAqIiAk b2RpciAiKikgOzsKCSAgKikgcm1kaXJzKz0iICRvZGlyIiA7OwoJZXNhYwog ICAgICBmaQoKICAgICAgIyBEb24ndCBlcnJvciBpZiB0aGUgZmlsZSBkb2Vz bid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNlZC4KICAgICAgaWYgeyB0ZXN0 IC1MICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8CgkgeyB0ZXN0IC1o ICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8CgkgdGVzdCAtZiAiJGZp bGUiOyB0aGVuCgk6CiAgICAgIGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVu CglleGl0X3N0YXR1cz0xCgljb250aW51ZQogICAgICBlbGlmIHRlc3QgIiRy bWZvcmNlIiA9IHllczsgdGhlbgoJY29udGludWUKICAgICAgZmkKCiAgICAg IHJtZmlsZXM9IiRmaWxlIgoKICAgICAgY2FzZSAkbmFtZSBpbgogICAgICAq LmxhKQoJIyBQb3NzaWJseSBhIGxpYnRvb2wgYXJjaGl2ZSwgc28gdmVyaWZ5 IGl0LgoJaWYgZnVuY19sYWxpYl9wICIkZmlsZSI7IHRoZW4KCSAgZnVuY19z b3VyY2UgJGRpci8kbmFtZQoKCSAgIyBEZWxldGUgdGhlIGxpYnRvb2wgbGli cmFyaWVzIGFuZCBzeW1saW5rcy4KCSAgZm9yIG4gaW4gJGxpYnJhcnlfbmFt ZXM7IGRvCgkgICAgcm1maWxlcys9IiAkb2Rpci8kbiIKCSAgZG9uZQoJICB0 ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHJtZmlsZXMrPSIgJG9kaXIvJG9s ZF9saWJyYXJ5IgoKCSAgY2FzZSAiJG9wdF9tb2RlIiBpbgoJICBjbGVhbikK CSAgICBjYXNlICIgJGxpYnJhcnlfbmFtZXMgIiBpbgoJICAgICoiICRkbG5h bWUgIiopIDs7CgkgICAgKikgdGVzdCAtbiAiJGRsbmFtZSIgJiYgcm1maWxl cys9IiAkb2Rpci8kZGxuYW1lIiA7OwoJICAgIGVzYWMKCSAgICB0ZXN0IC1u ICIkbGliZGlyIiAmJiBybWZpbGVzKz0iICRvZGlyLyRuYW1lICRvZGlyLyR7 bmFtZX1pIgoJICAgIDs7CgkgIHVuaW5zdGFsbCkKCSAgICBpZiB0ZXN0IC1u ICIkbGlicmFyeV9uYW1lcyI7IHRoZW4KCSAgICAgICMgRG8gZWFjaCBjb21t YW5kIGluIHRoZSBwb3N0dW5pbnN0YWxsIGNvbW1hbmRzLgoJICAgICAgZnVu Y19leGVjdXRlX2NtZHMgIiRwb3N0dW5pbnN0YWxsX2NtZHMiICd0ZXN0ICIk cm1mb3JjZSIgPSB5ZXMgfHwgZXhpdF9zdGF0dXM9MScKCSAgICBmaQoKCSAg ICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCgkgICAgICAjIERv IGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFu ZHMuCgkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9wb3N0dW5pbnN0 YWxsX2NtZHMiICd0ZXN0ICIkcm1mb3JjZSIgPSB5ZXMgfHwgZXhpdF9zdGF0 dXM9MScKCSAgICBmaQoJICAgICMgRklYTUU6IHNob3VsZCByZWluc3RhbGwg dGhlIGJlc3QgcmVtYWluaW5nIHNoYXJlZCBsaWJyYXJ5LgoJICAgIDs7Cgkg IGVzYWMKCWZpCgk7OwoKICAgICAgKi5sbykKCSMgUG9zc2libHkgYSBsaWJ0 b29sIG9iamVjdCwgc28gdmVyaWZ5IGl0LgoJaWYgZnVuY19sYWxpYl9wICIk ZmlsZSI7IHRoZW4KCgkgICMgUmVhZCB0aGUgLmxvIGZpbGUKCSAgZnVuY19z b3VyY2UgJGRpci8kbmFtZQoKCSAgIyBBZGQgUElDIG9iamVjdCB0byB0aGUg bGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCgkgIGlmIHRlc3QgLW4gIiRwaWNf b2JqZWN0IiAmJgoJICAgICB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsg dGhlbgoJICAgIHJtZmlsZXMrPSIgJGRpci8kcGljX29iamVjdCIKCSAgZmkK CgkgICMgQWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVz IHRvIHJlbW92ZS4KCSAgaWYgdGVzdCAtbiAiJG5vbl9waWNfb2JqZWN0IiAm JgoJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4K CSAgICBybWZpbGVzKz0iICRkaXIvJG5vbl9waWNfb2JqZWN0IgoJICBmaQoJ ZmkKCTs7CgogICAgICAqKQoJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IGNsZWFu IDsgdGhlbgoJICBub2V4ZW5hbWU9JG5hbWUKCSAgY2FzZSAkZmlsZSBpbgoJ ICAqLmV4ZSkKCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxl IgoJICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJICAgIGZ1bmNf c3RyaXBuYW1lICcnICcuZXhlJyAiJG5hbWUiCgkgICAgbm9leGVuYW1lPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKCSAgICAjICRmaWxlIHdpdGggLmV4ZSBo YXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHJtZmlsZXMsCgkgICAgIyBhZGQg JGZpbGUgd2l0aG91dCAuZXhlCgkgICAgcm1maWxlcys9IiAkZmlsZSIKCSAg ICA7OwoJICBlc2FjCgkgICMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlz IGEgbGlidG9vbCBwcm9ncmFtLgoJICBpZiBmdW5jX2x0d3JhcHBlcl9wICIk ZmlsZSI7IHRoZW4KCSAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxl X3AgIiRmaWxlIjsgdGhlbgoJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZSAiJGZpbGUiCgkgICAgICByZWxpbmtfY29tbWFuZD0KCSAgICAgIGZ1 bmNfc291cmNlICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAoJ ICAgICAgcm1maWxlcys9IiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9y ZXN1bHQiCgkgICAgZWxzZQoJICAgICAgcmVsaW5rX2NvbW1hbmQ9CgkgICAg ICBmdW5jX3NvdXJjZSAkZGlyLyRub2V4ZW5hbWUKCSAgICBmaQoKCSAgICAj IG5vdGUgJG5hbWUgc3RpbGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3YXMgaW4g JGZpbGUgb3JpZ2luYWxseQoJICAgICMgYXMgZG9lcyB0aGUgdmVyc2lvbiBv ZiAkZmlsZSB0aGF0IHdhcyBhZGRlZCBpbnRvICRybWZpbGVzCgkgICAgcm1m aWxlcys9IiAkb2Rpci8kbmFtZSAkb2Rpci8ke25hbWV9Uy4ke29iamV4dH0i CgkgICAgcm1maWxlcys9IiAke25hbWV9Lm1hbmlmZXN0ICRvYmpkaXIvJHtu YW1lfS5tYW5pZmVzdCIKCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9 IHllcyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCgkgICAg ICBybWZpbGVzKz0iICRvZGlyL2x0LSRuYW1lICRvYmpkaXIvbHQtJHtuYW1l fS5tYW5pZmVzdCIKCSAgICBmaQoJICAgIGlmIHRlc3QgIlgkbm9leGVuYW1l IiAhPSAiWCRuYW1lIiA7IHRoZW4KCSAgICAgIHJtZmlsZXMrPSIgJG9kaXIv bHQtJHtub2V4ZW5hbWV9LmMiCgkgICAgZmkKCSAgZmkKCWZpCgk7OwogICAg ICBlc2FjCiAgICAgIGZ1bmNfc2hvd19ldmFsICIkUk0gJHJtZmlsZXMiICdl eGl0X3N0YXR1cz0xJwogICAgZG9uZQoKICAgICMgVHJ5IHRvIHJlbW92ZSB0 aGUgJHtvYmpkaXJ9cyBpbiB0aGUgZGlyZWN0b3JpZXMgd2hlcmUgd2UgZGVs ZXRlZCBmaWxlcwogICAgZm9yIGRpciBpbiAkcm1kaXJzOyBkbwogICAgICBp ZiB0ZXN0IC1kICIkZGlyIjsgdGhlbgoJZnVuY19zaG93X2V2YWwgInJtZGly ICRkaXIgPi9kZXYvbnVsbCAyPiYxIgogICAgICBmaQogICAgZG9uZQoKICAg IGV4aXQgJGV4aXRfc3RhdHVzCn0KCnsgdGVzdCAiJG9wdF9tb2RlIiA9IHVu aW5zdGFsbCB8fCB0ZXN0ICIkb3B0X21vZGUiID0gY2xlYW47IH0gJiYKICAg IGZ1bmNfbW9kZV91bmluc3RhbGwgJHsxKyIkQCJ9Cgp0ZXN0IC16ICIkb3B0 X21vZGUiICYmIHsKICBoZWxwPSIkZ2VuZXJpY19oZWxwIgogIGZ1bmNfZmF0 YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIE1PREUiCn0KCnRlc3QgLXog IiRleGVjX2NtZCIgJiYgXAogIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBv cGVyYXRpb24gbW9kZSBcYCRvcHRfbW9kZSciCgppZiB0ZXN0IC1uICIkZXhl Y19jbWQiOyB0aGVuCiAgZXZhbCBleGVjICIkZXhlY19jbWQiCiAgZXhpdCAk RVhJVF9GQUlMVVJFCmZpCgpleGl0ICRleGl0X3N0YXR1cwoKCiMgVGhlIFRB R3MgYmVsb3cgYXJlIGRlZmluZWQgc3VjaCB0aGF0IHdlIG5ldmVyIGdldCBp bnRvIGEgc2l0dWF0aW9uCiMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtp bmRzIG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCiMgY2hvaWNl cywgd2UgZ28gZm9yIGEgc3RhdGljIGxpYnJhcnksIHRoYXQgaXMgdGhlIG1v c3QgcG9ydGFibGUsCiMgc2luY2Ugd2UgY2FuJ3QgdGVsbCB3aGV0aGVyIHNo YXJlZCBsaWJyYXJpZXMgd2VyZSBkaXNhYmxlZCBiZWNhdXNlCiMgdGhlIHVz ZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0gZG9l c24ndCBzdXBwb3J0CiMgdGhlbS4gIFRoaXMgaXMgcGFydGljdWxhcmx5IGlt cG9ydGFudCBvbiBBSVgsIGJlY2F1c2Ugd2UgZG9uJ3QKIyBzdXBwb3J0IGhh dmluZyBib3RoIHN0YXRpYyBhbmQgc2hhcmVkIGxpYnJhcmllcyBlbmFibGVk IGF0IHRoZSBzYW1lCiMgdGltZSBvbiB0aGF0IHBsYXRmb3JtLCBzbyB3ZSBk ZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4KIyBJZiBh IGRpc2FibGUtc2hhcmVkIHRhZyBpcyBnaXZlbiwgd2UnbGwgZmFsbGJhY2sg dG8gYSBzdGF0aWMtb25seQojIGNvbmZpZ3VyYXRpb24uICBCdXQgd2UnbGwg bmV2ZXIgZ28gZnJvbSBzdGF0aWMtb25seSB0byBzaGFyZWQtb25seS4KCiMg IyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQK YnVpbGRfbGlidG9vbF9saWJzPW5vCmJ1aWxkX29sZF9saWJzPXllcwojICMj IyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAoKIyAj IyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYwpi dWlsZF9vbGRfbGlicz1gY2FzZSAkYnVpbGRfbGlidG9vbF9saWJzIGluIHll cykgZWNobyBubzs7ICopIGVjaG8geWVzOzsgZXNhY2AKIyAjIyMgRU5EIExJ QlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKCiMgTG9jYWwgVmFy aWFibGVzOgojIG1vZGU6c2hlbGwtc2NyaXB0CiMgc2gtaW5kZW50YXRpb246 MgojIEVuZDoKIyB2aTpzdz0yCgoKIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcg Q09ORklHOiBDWFgKCiMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJh cmllcy4KTEQ9ImM6L21pbmd3L21pbmd3MzIvYmluL2xkLmV4ZSIKCiMgSG93 IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KcmVsb2FkX2Zs YWc9IiAtciIKcmVsb2FkX2NtZHM9IlwkTERcJHJlbG9hZF9mbGFnIC1vIFwk b3V0cHV0XCRyZWxvYWRfb2JqcyIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWls ZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfY21kcz0iXCRB UiBcJEFSX0ZMQUdTIFwkb2xkbGliXCRvbGRvYmpzflwkUkFOTElCIFwkb2xk bGliIgoKIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgpDQz0iZysr IgoKIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9n Y2M9eWVzCgojIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBm dW5jdGlvbnMuCm5vX2J1aWx0aW5fZmxhZz0iIC1mbm8tYnVpbHRpbiIKCiMg QWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFy eSBvYmplY3RzLgpwaWNfZmxhZz0iIC1ERExMX0VYUE9SVCAtRFBJQyIKCiMg SG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxl ci4Kd2w9Ii1XbCwiCgojIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5h bWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9Ii1zdGF0aWMiCgojIERv ZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8g b3B0aW9ucz8KY29tcGlsZXJfY19vPSJ5ZXMiCgojIFdoZXRoZXIgb3Igbm90 IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCmJ1 aWxkX2xpYnRvb2xfbmVlZF9sYz1ubwoKIyBXaGV0aGVyIG9yIG5vdCB0byBk aXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3Rh dGljLgphbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9 eWVzCgojIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3Bl bnMuCmV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0iXCR7d2x9LS1leHBvcnQt YWxsLXN5bWJvbHMiCgojIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hh cmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4Kd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWM9Ilwke3dsfS0td2hvbGUtYXJjaGl2ZVwkY29udmVu aWVuY2UgXCR7d2x9LS1uby13aG9sZS1hcmNoaXZlIgoKIyBXaGV0aGVyIHRo ZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJl Y3RseS4KY29tcGlsZXJfbmVlZHNfb2JqZWN0PSJubyIKCiMgQ3JlYXRlIGFu IG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4Kb2xk X2FyY2hpdmVfZnJvbV9uZXdfY21kcz0iIgoKIyBDcmVhdGUgYSB0ZW1wb3Jh cnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hh cmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSIi CgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4K YXJjaGl2ZV9jbWRzPSJcJENDIC1zaGFyZWQgLW5vc3RkbGliIFwkcHJlZGVw X29iamVjdHMgXCRsaWJvYmpzIFwkZGVwbGlicyBcJHBvc3RkZXBfb2JqZWN0 cyBcJGNvbXBpbGVyX2ZsYWdzIC1vIFwkb3V0cHV0X29iamRpci9cJHNvbmFt ZSBcJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1v dXQtaW1wbGliIC1YbGlua2VyIFwkbGliIgphcmNoaXZlX2V4cHN5bV9jbWRz PSJpZiB0ZXN0IFxcXCJ4XFxcYFwkU0VEIDFxIFwkZXhwb3J0X3N5bWJvbHNc XFxgXFxcIiA9IHhFWFBPUlRTOyB0aGVuCgkgICAgICBjcCBcJGV4cG9ydF9z eW1ib2xzIFwkb3V0cHV0X29iamRpci9cJHNvbmFtZS5kZWY7CgkgICAgZWxz ZQoJICAgICAgZWNobyBFWFBPUlRTID4gXCRvdXRwdXRfb2JqZGlyL1wkc29u YW1lLmRlZjsKCSAgICAgIGNhdCBcJGV4cG9ydF9zeW1ib2xzID4+IFwkb3V0 cHV0X29iamRpci9cJHNvbmFtZS5kZWY7CgkgICAgZml+CgkgICAgXCRDQyAt c2hhcmVkIC1ub3N0ZGxpYiBcJG91dHB1dF9vYmpkaXIvXCRzb25hbWUuZGVm IFwkcHJlZGVwX29iamVjdHMgXCRsaWJvYmpzIFwkZGVwbGlicyBcJHBvc3Rk ZXBfb2JqZWN0cyBcJGNvbXBpbGVyX2ZsYWdzIC1vIFwkb3V0cHV0X29iamRp ci9cJHNvbmFtZSBcJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhs aW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyIFwkbGliIgoKIyBDb21tYW5k cyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVu dCBmcm9tIGJ1aWxkaW5nCiMgYSBzaGFyZWQgYXJjaGl2ZS4KbW9kdWxlX2Nt ZHM9IiIKbW9kdWxlX2V4cHN5bV9jbWRzPSIiCgojIFdoZXRoZXIgd2UgYXJl IGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdC4Kd2l0aF9nbnVfbGQ9Inll cyIKCiMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGgg dW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCmFsbG93X3VuZGVmaW5l ZF9mbGFnPSJ1bnN1cHBvcnRlZCIKCiMgRmxhZyB0aGF0IGVuZm9yY2VzIG5v IHVuZGVmaW5lZCBzeW1ib2xzLgpub191bmRlZmluZWRfZmxhZz0iIgoKIyBG bGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcg bGlua2luZy4KIyBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9l cyBub3QgZXhpc3QKaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0iLUxcJGxp YmRpciIKCiMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8g aGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5CiMgZHVyaW5nIGxpbmtp bmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3Qg ZXhpc3QuCmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9IiIKCiMgV2hl dGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0aCBhIHNl cGFyYXRlZCBhcmd1bWVudC4KaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0i IgoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJl ZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwojIERJUiBpbnRvIHRo ZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9kaXJlY3Q9bm8KCiMgU2V0 IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVu Y3kgaXMKIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBi eSBzZXR0aW5nICR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCiMgbGlicmFyeSBp cyByZWxvY2F0ZWQuCmhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT1ubwoKIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxp bmtpbmcgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBiaW5h cnkuCmhhcmRjb2RlX21pbnVzX0w9bm8KCiMgU2V0IHRvICJ5ZXMiIGlmIHVz aW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2Rl cyBESVIKIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9z aGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVkCgojIFNldCB0byAieWVzIiBpZiBi dWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNv ZGVzIERJUgojIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50 IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCiMgYWdhaW5zdCBp dC4KaGFyZGNvZGVfYXV0b21hdGljPW5vCgojIFNldCB0byB5ZXMgaWYgbGlu a2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVz CiMgdG8gcnVudGltZSBwYXRoIGxpc3QuCmluaGVyaXRfcnBhdGg9bm8KCiMg V2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBh bGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgpsaW5rX2FsbF9kZXBsaWJz PXVua25vd24KCiMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMg YXJlIHJlcXVpcmVkLgphbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KCiMgVGhl IGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KZXhwb3J0X3N5 bWJvbHNfY21kcz0iXCROTSBcJGxpYm9ianMgXCRjb252ZW5pZW5jZSB8IFwk Z2xvYmFsX3N5bWJvbF9waXBlIHwgXCRTRUQgLWUgJy9eW0JDREdSU11bIF0v cy8uKlsgXVxcXFwoW14gXSpcXFxcKS9cXFxcMSBEQVRBLztzL14uKlsgXV9f bm1fX1xcXFwoW14gXSpcXFxcKVsgXVteIF0qL1xcXFwxIERBVEEvOy9eSVsg XS9kOy9eW0FJVFddWyBdL3MvLiogLy8nIHwgc29ydCB8IHVuaXEgPiBcJGV4 cG9ydF9zeW1ib2xzIgoKIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBs aXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgpleGNsdWRlX2V4cHN5 bXM9IltfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFMX19bRklE XV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16MC05X10r X2RsbF9pbmFtZSIKCiMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4 cG9ydGVkLgppbmNsdWRlX2V4cHN5bXM9IiIKCiMgQ29tbWFuZHMgbmVjZXNz YXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykg d2l0aCB0ZW1wbGF0ZXMuCnByZWxpbmtfY21kcz0iIgoKIyBDb21tYW5kcyBu ZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5nIHByb2dyYW1zLgpwb3N0 bGlua19jbWRzPSIiCgojIFNwZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBp bnB1dCBmaWxlcy4KZmlsZV9saXN0X3NwZWM9IiIKCiMgSG93IHRvIGhhcmRj b2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUu CmhhcmRjb2RlX2FjdGlvbj1pbW1lZGlhdGUKCiMgVGhlIGRpcmVjdG9yaWVz IHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNo YXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9ImM6L21p bmd3L2Jpbi8uLi9saWIvZ2NjL21pbmd3MzIvNC44LjEgYzovbWluZ3cvYmlu Ly4uL2xpYi9nY2MgYzovbWluZ3cvYmluLy4uL2xpYi9nY2MvbWluZ3czMi80 LjguMS8uLi8uLi8uLi8uLi9taW5ndzMyL2xpYiBjOi9taW5ndy9iaW4vLi4v bGliL2djYy9taW5ndzMyLzQuOC4xLy4uLy4uLy4uIC9taW5ndy9saWIiCgoj IERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBv YmplY3RzIGJlaW5nIGxpbmtlZCB0bwojIGNyZWF0ZSBhIHNoYXJlZCBsaWJy YXJ5LgpwcmVkZXBfb2JqZWN0cz0iYzovbWluZ3cvYmluLy4uL2xpYi9nY2Mv bWluZ3czMi80LjguMS8uLi8uLi8uLi9kbGxjcnQyLm8gYzovbWluZ3cvYmlu Ly4uL2xpYi9nY2MvbWluZ3czMi80LjguMS9jcnRiZWdpbi5vIgpwb3N0ZGVw X29iamVjdHM9ImM6L21pbmd3L2Jpbi8uLi9saWIvZ2NjL21pbmd3MzIvNC44 LjEvY3J0ZW5kLm8iCnByZWRlcHM9IiIKcG9zdGRlcHM9Ii1sc3RkYysrIC1s bWluZ3czMiAtbGdjY19zIC1sZ2NjIC1sbW9sZG5hbWUgLWxtaW5nd2V4IC1s bXN2Y3J0IC1sdXNlcjMyIC1sa2VybmVsMzIgLWxhZHZhcGkzMiAtbHNoZWxs MzIgLWxtaW5ndzMyIC1sZ2NjX3MgLWxnY2MgLWxtb2xkbmFtZSAtbG1pbmd3 ZXggLWxtc3ZjcnQiCgojIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQg aW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCiMgYSBz aGFyZWQgbGlicmFyeS4KY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSItTGM6 L21pbmd3L2Jpbi8uLi9saWIvZ2NjL21pbmd3MzIvNC44LjEgLUxjOi9taW5n dy9iaW4vLi4vbGliL2djYyAtTGM6L21pbmd3L2Jpbi8uLi9saWIvZ2NjL21p bmd3MzIvNC44LjEvLi4vLi4vLi4vLi4vbWluZ3czMi9saWIgLUxjOi9taW5n dy9iaW4vLi4vbGliL2djYy9taW5ndzMyLzQuOC4xLy4uLy4uLy4uIC1ML21p bmd3L2xpYiIKCiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IENYWAoK IyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBGNzcKCiMgVGhlIGxp bmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KTEQ9IiIKCiMgSG93IHRv IGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9 IiAtciIKcmVsb2FkX2NtZHM9IlwkTERcJHJlbG9hZF9mbGFnIC1vIFwkb3V0 cHV0XCRyZWxvYWRfb2JqcyIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBh biBvbGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfY21kcz0iXCRBUiBc JEFSX0ZMQUdTIFwkb2xkbGliXCRvbGRvYmpzflwkUkFOTElCIFwkb2xkbGli IgoKIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgpDQz0iIgoKIyBJ cyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9nY2M9Cgoj IENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMu Cm5vX2J1aWx0aW5fZmxhZz0iIgoKIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZs YWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCnBpY19mbGFnPSIi CgojIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29t cGlsZXIuCndsPSIiCgojIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5h bWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9IiIKCiMgRG9lcyBjb21w aWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25z Pwpjb21waWxlcl9jX289IiIKCiMgV2hldGhlciBvciBub3QgdG8gYWRkIC1s YyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KYnVpbGRfbGlidG9v bF9uZWVkX2xjPW5vCgojIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNo YXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz1ubwoKIyBDb21w aWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9IiIKCiMgQ29tcGlsZXIgZmxhZyB0byBnZW5l cmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgp3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0iIgoKIyBXaGV0aGVyIHRoZSBjb21w aWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4K Y29tcGlsZXJfbmVlZHNfb2JqZWN0PSIiCgojIENyZWF0ZSBhbiBvbGQtc3R5 bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHM9IiIKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1z dHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNo aXZlLgpvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0iIgoKIyBDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVf Y21kcz0iIgphcmNoaXZlX2V4cHN5bV9jbWRzPSIiCgojIENvbW1hbmRzIHVz ZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZy b20gYnVpbGRpbmcKIyBhIHNoYXJlZCBhcmNoaXZlLgptb2R1bGVfY21kcz0i Igptb2R1bGVfZXhwc3ltX2NtZHM9IiIKCiMgV2hldGhlciB3ZSBhcmUgYnVp bGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90Lgp3aXRoX2dudV9sZD0iIgoKIyBG bGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmlu ZWQgc3ltYm9scyB0byBiZSBidWlsdC4KYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 IiIKCiMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xz Lgpub191bmRlZmluZWRfZmxhZz0iIgoKIyBGbGFnIHRvIGhhcmRjb2RlICRs aWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KIyBUaGlzIG11 c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3QKaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0iIgoKIyBJZiBsZCBpcyB1c2VkIHdoZW4g bGlua2luZywgZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5h cnkKIyBkdXJpbmcgbGlua2luZy4gIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYg JGxpYmRpciBkb2VzIG5vdCBleGlzdC4KaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZD0iIgoKIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0 aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgpoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yPSIiCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBE SVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2Rl X2RpcmVjdD1ubwoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5B TUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwojIERJ UiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5n IGxpYnJhcnkgZGVwZW5kZW5jeSBpcwojICJhYnNvbHV0ZSIsaS5lIGltcG9z c2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhfdmFyfSBp ZiB0aGUKIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KaGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlPW5vCgojIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxE SVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0 aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfbWludXNfTD1ubwoKIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5n IGxpbmtpbmcgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBi aW5hcnkuCmhhcmRjb2RlX3NobGlicGF0aF92YXI9CgojIFNldCB0byAieWVz IiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkg aGFyZGNvZGVzIERJUgojIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJz ZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCiMgYWdh aW5zdCBpdC4KaGFyZGNvZGVfYXV0b21hdGljPW5vCgojIFNldCB0byB5ZXMg aWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGli cmFyaWVzCiMgdG8gcnVudGltZSBwYXRoIGxpc3QuCmluaGVyaXRfcnBhdGg9 bm8KCiMgV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdh aW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgpsaW5rX2FsbF9k ZXBsaWJzPXVua25vd24KCiMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5 bWJvbHMgYXJlIHJlcXVpcmVkLgphbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8K CiMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KZXhw b3J0X3N5bWJvbHNfY21kcz0iIgoKIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5v dCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgpleGNsdWRl X2V4cHN5bXM9IiIKCiMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4 cG9ydGVkLgppbmNsdWRlX2V4cHN5bXM9IiIKCiMgQ29tbWFuZHMgbmVjZXNz YXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykg d2l0aCB0ZW1wbGF0ZXMuCnByZWxpbmtfY21kcz0iIgoKIyBDb21tYW5kcyBu ZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5nIHByb2dyYW1zLgpwb3N0 bGlua19jbWRzPSIiCgojIFNwZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBp bnB1dCBmaWxlcy4KZmlsZV9saXN0X3NwZWM9IiIKCiMgSG93IHRvIGhhcmRj b2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUu CmhhcmRjb2RlX2FjdGlvbj0KCiMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVk IGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJy YXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9IiIKCiMgRGVwZW5kZW5j aWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVp bmcgbGlua2VkIHRvCiMgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkuCnByZWRl cF9vYmplY3RzPSIiCnBvc3RkZXBfb2JqZWN0cz0iIgpwcmVkZXBzPSIiCnBv c3RkZXBzPSIiCgojIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50 ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCiMgYSBzaGFy ZWQgbGlicmFyeS4KY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSIiCgojICMj IyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBGNzcKCiMgIyMjIEJFR0lOIExJ QlRPT0wgVEFHIENPTkZJRzogRkMKCiMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1 aWxkIGxpYnJhcmllcy4KTEQ9IiIKCiMgSG93IHRvIGNyZWF0ZSByZWxvYWRh YmxlIG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9IiAtciIKcmVsb2FkX2Nt ZHM9IlwkTERcJHJlbG9hZF9mbGFnIC1vIFwkb3V0cHV0XCRyZWxvYWRfb2Jq cyIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJj aGl2ZS4Kb2xkX2FyY2hpdmVfY21kcz0iXCRBUiBcJEFSX0ZMQUdTIFwkb2xk bGliXCRvbGRvYmpzflwkUkFOTElCIFwkb2xkbGliIgoKIyBBIGxhbmd1YWdl IHNwZWNpZmljIGNvbXBpbGVyLgpDQz0iIgoKIyBJcyB0aGUgY29tcGlsZXIg dGhlIEdOVSBjb21waWxlcj8Kd2l0aF9nY2M9CgojIENvbXBpbGVyIGZsYWcg dG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCm5vX2J1aWx0aW5fZmxh Zz0iIgoKIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGlu ZyBsaWJyYXJ5IG9iamVjdHMuCnBpY19mbGFnPSIiCgojIEhvdyB0byBwYXNz IGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCndsPSIiCgoj IENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCmxp bmtfc3RhdGljX2ZsYWc9IiIKCiMgRG9lcyBjb21waWxlciBzaW11bHRhbmVv dXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwpjb21waWxlcl9jX289 IiIKCiMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcg c2hhcmVkIGxpYnJhcmllcy4KYnVpbGRfbGlidG9vbF9uZWVkX2xjPW5vCgoj IFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4g cnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93X2xpYnRvb2xfbGlic193 aXRoX3N0YXRpY19ydW50aW1lcz1ubwoKIyBDb21waWxlciBmbGFnIHRvIGFs bG93IHJlZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWM9IiIKCiMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2Jq ZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgp3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0iIgoKIyBXaGV0aGVyIHRoZSBjb21waWxlciBjb3BlcyB3aXRo IHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KY29tcGlsZXJfbmVlZHNf b2JqZWN0PSIiCgojIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9t IGEgc2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9 IiIKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRv IGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgpvbGRfYXJjaGl2 ZV9mcm9tX2V4cHN5bXNfY21kcz0iIgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1 aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0iIgphcmNoaXZl X2V4cHN5bV9jbWRzPSIiCgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBs b2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKIyBh IHNoYXJlZCBhcmNoaXZlLgptb2R1bGVfY21kcz0iIgptb2R1bGVfZXhwc3lt X2NtZHM9IiIKCiMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUg bGQgb3Igbm90Lgp3aXRoX2dudV9sZD0iIgoKIyBGbGFnIHRoYXQgYWxsb3dz IHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBi ZSBidWlsdC4KYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiIKCiMgRmxhZyB0aGF0 IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgpub191bmRlZmluZWRf ZmxhZz0iIgoKIyBGbGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJp bmFyeSBkdXJpbmcgbGlua2luZy4KIyBUaGlzIG11c3Qgd29yayBldmVuIGlm ICRsaWJkaXIgZG9lcyBub3QgZXhpc3QKaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0iIgoKIyBJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0 byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkKIyBkdXJpbmcgbGlu a2luZy4gIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5v dCBleGlzdC4KaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0iIgoKIyBX aGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEg c2VwYXJhdGVkIGFyZ3VtZW50LgpoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PSIiCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hh cmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCiMgRElSIGludG8g dGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX2RpcmVjdD1ubwoKIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9 IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwojIERJUiBpbnRvIHRoZSByZXN1 bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5k ZW5jeSBpcwojICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdl IGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhfdmFyfSBpZiB0aGUKIyBsaWJyYXJ5 IGlzIHJlbG9jYXRlZC4KaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPW5vCgoj IFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVzdWx0aW5nIGJp bmFyeS4KaGFyZGNvZGVfbWludXNfTD1ubwoKIyBTZXQgdG8gInllcyIgaWYg dXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2Rl X3NobGlicGF0aF92YXI9CgojIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBh IHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgoj IGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmll cyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCiMgYWdhaW5zdCBpdC4KaGFyZGNv ZGVfYXV0b21hdGljPW5vCgojIFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMg cnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCiMgdG8gcnVu dGltZSBwYXRoIGxpc3QuCmluaGVyaXRfcnBhdGg9bm8KCiMgV2hldGhlciBs aWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRl cGVuZGVuY3kgbGlicmFyaWVzLgpsaW5rX2FsbF9kZXBsaWJzPXVua25vd24K CiMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVp cmVkLgphbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KCiMgVGhlIGNvbW1hbmRz IHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KZXhwb3J0X3N5bWJvbHNfY21k cz0iIgoKIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4g dGhlIHByZWxvYWRlZCBzeW1ib2xzLgpleGNsdWRlX2V4cHN5bXM9IiIKCiMg U3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgppbmNsdWRl X2V4cHN5bXM9IiIKCiMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5n IHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMu CnByZWxpbmtfY21kcz0iIgoKIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGZp bmlzaGluZyBsaW5raW5nIHByb2dyYW1zLgpwb3N0bGlua19jbWRzPSIiCgoj IFNwZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcy4KZmls ZV9saXN0X3NwZWM9IiIKCiMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxp YnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCmhhcmRjb2RlX2FjdGlv bj0KCiMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGls ZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9s aWJfc2VhcmNoX2RpcnM9IiIKCiMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJl Zm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCiMg Y3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkuCnByZWRlcF9vYmplY3RzPSIiCnBv c3RkZXBfb2JqZWN0cz0iIgpwcmVkZXBzPSIiCnBvc3RkZXBzPSIiCgojIFRo ZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUg Y29tcGlsZXIgd2hlbiBsaW5raW5nCiMgYSBzaGFyZWQgbGlicmFyeS4KY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoPSIiCgojICMjIyBFTkQgTElCVE9PTCBU QUcgQ09ORklHOiBGQwoKIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklH OiBHQ0oKCiMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4K TEQ9ImM6L21pbmd3L21pbmd3MzIvYmluL2xkLmV4ZSIKCiMgSG93IHRvIGNy ZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9IiAt ciIKcmVsb2FkX2NtZHM9IlwkTERcJHJlbG9hZF9mbGFnIC1vIFwkb3V0cHV0 XCRyZWxvYWRfb2JqcyIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBv bGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfY21kcz0iXCRBUiBcJEFS X0ZMQUdTIFwkb2xkbGliXCRvbGRvYmpzflwkUkFOTElCIFwkb2xkbGliIgoK IyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgpDQz0iIgoKIyBJcyB0 aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9nY2M9CgojIENv bXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCm5v X2J1aWx0aW5fZmxhZz0iIgoKIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdz IGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCnBpY19mbGFnPSIiCgoj IEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGls ZXIuCndsPSIiCgojIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWlj IGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9IiIKCiMgRG9lcyBjb21waWxl ciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwpj b21waWxlcl9jX289IiIKCiMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBm b3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KYnVpbGRfbGlidG9vbF9u ZWVkX2xjPW5vCgojIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJl ZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93X2xp YnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0KCiMgQ29tcGlsZXIg ZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjPSIiCgojIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUg c2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4Kd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9IiIKCiMgV2hldGhlciB0aGUgY29tcGlsZXIg Y29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCmNvbXBp bGVyX25lZWRzX29iamVjdD0iIgoKIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFy Y2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9mcm9t X25ld19jbWRzPSIiCgojIENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUg YXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZS4K b2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9IiIKCiMgQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgphcmNoaXZlX2NtZHM9 IiIKYXJjaGl2ZV9leHBzeW1fY21kcz0iIgoKIyBDb21tYW5kcyB1c2VkIHRv IGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1 aWxkaW5nCiMgYSBzaGFyZWQgYXJjaGl2ZS4KbW9kdWxlX2NtZHM9IiIKbW9k dWxlX2V4cHN5bV9jbWRzPSIiCgojIFdoZXRoZXIgd2UgYXJlIGJ1aWxkaW5n IHdpdGggR05VIGxkIG9yIG5vdC4Kd2l0aF9nbnVfbGQ9IiIKCiMgRmxhZyB0 aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5 bWJvbHMgdG8gYmUgYnVpbHQuCmFsbG93X3VuZGVmaW5lZF9mbGFnPSIiCgoj IEZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4Kbm9f dW5kZWZpbmVkX2ZsYWc9IiIKCiMgRmxhZyB0byBoYXJkY29kZSAkbGliZGly IGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCiMgVGhpcyBtdXN0IHdv cmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0CmhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9IiIKCiMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtp bmcsIGZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5CiMg ZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJk aXIgZG9lcyBub3QgZXhpc3QuCmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGQ9IiIKCiMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZs YWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcj0iIgoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xp Yk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2Rlcwoj IERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9kaXJl Y3Q9CgojIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hh cmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCiMgRElSIGludG8g dGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFy eSBkZXBlbmRlbmN5IGlzCiMgImFic29sdXRlIixpLmUgaW1wb3NzaWJsZSB0 byBjaGFuZ2UgYnkgc2V0dGluZyAke3NobGlicGF0aF92YXJ9IGlmIHRoZQoj IGxpYnJhcnkgaXMgcmVsb2NhdGVkLgpoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGU9CgojIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeS4KaGFyZGNvZGVfbWludXNfTD0KCiMgU2V0IHRvICJ5ZXMi IGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhh cmRjb2RlcyBESVIKIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPQoKIyBTZXQgdG8gInllcyIgaWYgYnVpbGRp bmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBE SVIKIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJy YXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAojIGFnYWluc3QgaXQuCmhh cmRjb2RlX2F1dG9tYXRpYz0KCiMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRk cyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKIyB0byBy dW50aW1lIHBhdGggbGlzdC4KaW5oZXJpdF9ycGF0aD0KCiMgV2hldGhlciBs aWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRl cGVuZGVuY3kgbGlicmFyaWVzLgpsaW5rX2FsbF9kZXBsaWJzPQoKIyBTZXQg dG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCmFs d2F5c19leHBvcnRfc3ltYm9scz0KCiMgVGhlIGNvbW1hbmRzIHRvIGxpc3Qg ZXhwb3J0ZWQgc3ltYm9scy4KZXhwb3J0X3N5bWJvbHNfY21kcz0iIgoKIyBT eW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxv YWRlZCBzeW1ib2xzLgpleGNsdWRlX2V4cHN5bXM9IiIKCiMgU3ltYm9scyB0 aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgppbmNsdWRlX2V4cHN5bXM9 IiIKCiMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1z IChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMuCnByZWxpbmtf Y21kcz0iIgoKIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBs aW5raW5nIHByb2dyYW1zLgpwb3N0bGlua19jbWRzPSIiCgojIFNwZWNpZnkg ZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcy4KZmlsZV9saXN0X3Nw ZWM9IiIKCiMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0 aCBpbnRvIGFuIGV4ZWN1dGFibGUuCmhhcmRjb2RlX2FjdGlvbj0KCiMgVGhl IGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBj cmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNo X2RpcnM9IiIKCiMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQg YWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCiMgY3JlYXRlIGEg c2hhcmVkIGxpYnJhcnkuCnByZWRlcF9vYmplY3RzPSIiCnBvc3RkZXBfb2Jq ZWN0cz0iIgpwcmVkZXBzPSIiCnBvc3RkZXBzPSIiCgojIFRoZSBsaWJyYXJ5 IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIg d2hlbiBsaW5raW5nCiMgYSBzaGFyZWQgbGlicmFyeS4KY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoPSIiCgojICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklH OiBHQ0oKCiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogUkMKCiMg VGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KTEQ9IiIKCiMg SG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KcmVsb2Fk X2ZsYWc9IiIKcmVsb2FkX2NtZHM9IiIKCiMgQ29tbWFuZHMgdXNlZCB0byBi dWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfY21kcz0i IgoKIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgpDQz0id2luZHJl cyIKCiMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/CndpdGhf Z2NjPQoKIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVu Y3Rpb25zLgpub19idWlsdGluX2ZsYWc9IiIKCiMgQWRkaXRpb25hbCBjb21w aWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgpwaWNf ZmxhZz0iIgoKIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2gg dGhlIGNvbXBpbGVyLgp3bD0iIgoKIyBDb21waWxlciBmbGFnIHRvIHByZXZl bnQgZHluYW1pYyBsaW5raW5nLgpsaW5rX3N0YXRpY19mbGFnPSIiCgojIERv ZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8g b3B0aW9ucz8KY29tcGlsZXJfY19vPSJ5ZXMiCgojIFdoZXRoZXIgb3Igbm90 IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCmJ1 aWxkX2xpYnRvb2xfbmVlZF9sYz0KCiMgV2hldGhlciBvciBub3QgdG8gZGlz YWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRp Yy4KYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPQoK IyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgpl eHBvcnRfZHluYW1pY19mbGFnX3NwZWM9IiIKCiMgQ29tcGlsZXIgZmxhZyB0 byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hp dmVzLgp3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0iIgoKIyBXaGV0aGVyIHRo ZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJl Y3RseS4KY29tcGlsZXJfbmVlZHNfb2JqZWN0PSIiCgojIENyZWF0ZSBhbiBv bGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCm9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHM9IiIKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5 IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJl ZCBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0iIgoK IyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFy Y2hpdmVfY21kcz0iIgphcmNoaXZlX2V4cHN5bV9jbWRzPSIiCgojIENvbW1h bmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVy ZW50IGZyb20gYnVpbGRpbmcKIyBhIHNoYXJlZCBhcmNoaXZlLgptb2R1bGVf Y21kcz0iIgptb2R1bGVfZXhwc3ltX2NtZHM9IiIKCiMgV2hldGhlciB3ZSBh cmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90Lgp3aXRoX2dudV9sZD0i IgoKIyBGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1 bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWlsdC4KYWxsb3dfdW5kZWZpbmVk X2ZsYWc9IiIKCiMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBz eW1ib2xzLgpub191bmRlZmluZWRfZmxhZz0iIgoKIyBGbGFnIHRvIGhhcmRj b2RlICRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KIyBU aGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3QK aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0iIgoKIyBJZiBsZCBpcyB1c2Vk IHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8g YSBiaW5hcnkKIyBkdXJpbmcgbGlua2luZy4gIFRoaXMgbXVzdCB3b3JrIGV2 ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZD0iIgoKIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUg Ii1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgpoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yPSIiCgojIFNldCB0byAieWVzIiBpZiB1 c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcg aGFyZGNvZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhh cmRjb2RlX2RpcmVjdD0KCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9s aWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMK IyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3Vs dGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKIyAiYWJzb2x1dGUiLGkuZSBp bXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nICR7c2hsaWJwYXRoX3Zh cn0gaWYgdGhlCiMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCmhhcmRjb2RlX2Rp cmVjdF9hYnNvbHV0ZT0KCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAt TERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKIyBpbnRv IHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9taW51c19MPQoKIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5n IGxpbmtpbmcgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBi aW5hcnkuCmhhcmRjb2RlX3NobGlicGF0aF92YXI9CgojIFNldCB0byAieWVz IiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkg aGFyZGNvZGVzIERJUgojIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJz ZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCiMgYWdh aW5zdCBpdC4KaGFyZGNvZGVfYXV0b21hdGljPQoKIyBTZXQgdG8geWVzIGlm IGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJh cmllcwojIHRvIHJ1bnRpbWUgcGF0aCBsaXN0Lgppbmhlcml0X3JwYXRoPQoK IyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0 IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCmxpbmtfYWxsX2RlcGxp YnM9CgojIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSBy ZXF1aXJlZC4KYWx3YXlzX2V4cG9ydF9zeW1ib2xzPQoKIyBUaGUgY29tbWFu ZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgpleHBvcnRfc3ltYm9sc19j bWRzPSIiCgojIFN5bWJvbHMgdGhhdCBzaG91bGQgbm90IGJlIGxpc3RlZCBp biB0aGUgcHJlbG9hZGVkIHN5bWJvbHMuCmV4Y2x1ZGVfZXhwc3ltcz0iIgoK IyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCmluY2x1 ZGVfZXhwc3ltcz0iIgoKIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtp bmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRl cy4KcHJlbGlua19jbWRzPSIiCgojIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3Ig ZmluaXNoaW5nIGxpbmtpbmcgcHJvZ3JhbXMuCnBvc3RsaW5rX2NtZHM9IiIK CiMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzLgpm aWxlX2xpc3Rfc3BlYz0iIgoKIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQg bGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KaGFyZGNvZGVfYWN0 aW9uPQoKIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21w aWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCmNvbXBpbGVy X2xpYl9zZWFyY2hfZGlycz0iIgoKIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2Ug YmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8K IyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KcHJlZGVwX29iamVjdHM9IiIK cG9zdGRlcF9vYmplY3RzPSIiCnByZWRlcHM9IiIKcG9zdGRlcHM9IiIKCiMg VGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRo ZSBjb21waWxlciB3aGVuIGxpbmtpbmcKIyBhIHNoYXJlZCBsaWJyYXJ5Lgpj b21waWxlcl9saWJfc2VhcmNoX3BhdGg9IiIKCiMgIyMjIEVORCBMSUJUT09M IFRBRyBDT05GSUc6IFJDCg== --_----------=_13840355941782731 Content-Disposition: attachment; filename="libtool" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="libtool" IyEgL2Jpbi9zaAoKIyBsaWJ0b29sIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBs aWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCiMgR2VuZXJhdGVk IGF1dG9tYXRpY2FsbHkgYnkgY29uZmlnLnN0YXR1cyAobGlidG9vbCkgMi40 LjIKIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgdGlsbDoKIyBO T1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUgbG9zdDog bG9vayBhdCBsdG1haW4uc2guCiMKIyAgIENvcHlyaWdodCAoQykgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAw NSwKIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwg MjAxMCwgMjAxMSBGcmVlIFNvZnR3YXJlCiMgICAgICAgICAgICAgICAgIEZv dW5kYXRpb24sIEluYy4KIyAgIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tl aXQsIDE5OTYKIwojICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRv b2wuCiMKIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKIyBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwoj IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mCiMgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBBcyBhIHNwZWNpYWwg ZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwK IyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHBy b2dyYW0gb3IgbGlicmFyeSB0aGF0CiMgaXMgYnVpbHQgdXNpbmcgR05VIExp YnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCiMg c2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUg cmVzdCBvZiB0aGF0IHByb2dyYW0uCiMKIyBHTlUgTGlidG9vbCBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAoj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMKIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggR05VIExpYnRvb2w7 IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKIyBjYW4g YmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy9ncGwuaHRtbCwgb3IKIyBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCiMgNTEgRnJhbmtsaW4g U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV U0EuCgoKIyBUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9u cyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQuCmF2YWlsYWJsZV90YWdzPSJD WFggRjc3IEZDIEdPIEdDSiBSQyAiCgojICMjIyBCRUdJTiBMSUJUT09MIENP TkZJRwoKIyBXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/ Cm1hY3JvX3ZlcnNpb249Mi40LjIKbWFjcm9fcmV2aXNpb249MS4zMzM3Cgoj IEFzc2VtYmxlciBwcm9ncmFtLgpBUz0iYXMiCgojIERMTCBjcmVhdGlvbiBw cm9ncmFtLgpETExUT09MPSJkbGx0b29sIgoKIyBPYmplY3QgZHVtcGVyIHBy b2dyYW0uCk9CSkRVTVA9Im9iamR1bXAiCgojIFdoZXRoZXIgb3Igbm90IHRv IGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCmJ1aWxkX2xpYnRvb2xfbGlicz15 ZXMKCiMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmll cy4KYnVpbGRfb2xkX2xpYnM9eWVzCgojIFdoYXQgdHlwZSBvZiBvYmplY3Rz IHRvIGJ1aWxkLgpwaWNfbW9kZT1kZWZhdWx0CgojIFdoZXRoZXIgb3Igbm90 IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbi4KZmFzdF9pbnN0 YWxsPW5lZWRsZXNzCgojIFNoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNo ZWxsIHNjcmlwdHMuClNIRUxMPSIvYmluL3NoIgoKIyBBbiBlY2hvIHByb2dy YW0gdGhhdCBwcm90ZWN0cyBiYWNrc2xhc2hlcy4KRUNITz0icHJpbnRmICVz XFxuIgoKIyBUaGUgUEFUSCBzZXBhcmF0b3IgZm9yIHRoZSBidWlsZCBzeXN0 ZW0uClBBVEhfU0VQQVJBVE9SPSI6IgoKIyBUaGUgaG9zdCBzeXN0ZW0uCmhv c3RfYWxpYXM9Cmhvc3Q9aTY4Ni1wYy1taW5ndzMyCmhvc3Rfb3M9bWluZ3cz MgoKIyBUaGUgYnVpbGQgc3lzdGVtLgpidWlsZF9hbGlhcz0KYnVpbGQ9aTY4 Ni1wYy1taW5ndzMyCmJ1aWxkX29zPW1pbmd3MzIKCiMgQSBzZWQgcHJvZ3Jh bSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4KU0VEPSIvYmluL3Nl ZCIKCiMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRy aWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uClhzZWQ9IiRTRUQg LWUgMXMvXlgvLyIKCiMgQSBncmVwIHByb2dyYW0gdGhhdCBoYW5kbGVzIGxv bmcgbGluZXMuCkdSRVA9Ii9iaW4vZ3JlcCIKCiMgQW4gRVJFIG1hdGNoZXIu CkVHUkVQPSIvYmluL2dyZXAgLUUiCgojIEEgbGl0ZXJhbCBzdHJpbmcgbWF0 Y2hlci4KRkdSRVA9Ii9iaW4vZ3JlcCAtRiIKCiMgQSBCU0QtIG9yIE1TLWNv bXBhdGlibGUgbmFtZSBsaXN0ZXIuCk5NPSIvYmluL25tIC1CIgoKIyBXaGV0 aGVyIHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzLgpMTl9TPSJjcCAtcCIK CiMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kPwpt YXhfY21kX2xlbj04MTkyCgojIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFs bHkgIm8iKS4Kb2JqZXh0PW8KCiMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAo bm9ybWFsbHkgIiIpLgpleGVleHQ9CgojIHdoZXRoZXIgdGhlIHNoZWxsIHVu ZGVyc3RhbmRzICJ1bnNldCIuCmx0X3Vuc2V0PXVuc2V0CgojIHR1cm4gc3Bh Y2VzIGludG8gbmV3bGluZXMuClNQMk5MPSJ0ciBcXDA0MCBcXDAxMiIKCiMg dHVybiBuZXdsaW5lcyBpbnRvIHNwYWNlcy4KTkwyU1A9InRyIFxcMDE1XFww MTIgXFwwNDBcXDA0MCIKCiMgY29udmVydCAkYnVpbGQgZmlsZSBuYW1lcyB0 byAkaG9zdCBmb3JtYXQuCnRvX2hvc3RfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0 X2ZpbGVfbXN5c190b193MzIKCiMgY29udmVydCAkYnVpbGQgZmlsZXMgdG8g dG9vbGNoYWluIGZvcm1hdC4KdG9fdG9vbF9maWxlX2NtZD1mdW5jX2NvbnZl cnRfZmlsZV9tc3lzX3RvX3czMgoKIyBNZXRob2QgdG8gY2hlY2sgd2hldGhl ciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KZGVw bGlic19jaGVja19tZXRob2Q9ImZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGlt cG9ydHxeeDg2IERMTCIKCiMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJz X2NoZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIi4KZmlsZV9tYWdpY19jbWQ9 ImZ1bmNfd2luMzJfbGliaWQiCgojIEhvdyB0byBmaW5kIHBvdGVudGlhbCBm aWxlcyB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMi LgpmaWxlX21hZ2ljX2dsb2I9IiIKCiMgRmluZCBwb3RlbnRpYWwgZmlsZXMg dXNpbmcgbm9jYXNlZ2xvYiB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0g ImZpbGVfbWFnaWMiLgp3YW50X25vY2FzZWdsb2I9InllcyIKCiMgQ29tbWFu ZCB0byBhc3NvY2lhdGUgc2hhcmVkIGFuZCBsaW5rIGxpYnJhcmllcy4Kc2hh cmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9ImZ1bmNfY3lnbWluZ19kbGxfZm9y X2ltcGxpYiIKCiMgVGhlIGFyY2hpdmVyLgpBUj0iYXIiCgojIEZsYWdzIHRv IGNyZWF0ZSBhbiBhcmNoaXZlLgpBUl9GTEFHUz0iY3J1IgoKIyBIb3cgdG8g ZmVlZCBhIGZpbGUgbGlzdGluZyB0byB0aGUgYXJjaGl2ZXIuCmFyY2hpdmVy X2xpc3Rfc3BlYz0iQCIKCiMgQSBzeW1ib2wgc3RyaXBwaW5nIHByb2dyYW0u ClNUUklQPSJzdHJpcCIKCiMgQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFu IG9sZC1zdHlsZSBhcmNoaXZlLgpSQU5MSUI9InJhbmxpYiIKb2xkX3Bvc3Rp bnN0YWxsX2NtZHM9ImNobW9kIDY0NCBcJG9sZGxpYn5cJFJBTkxJQiBcJHRv b2xfb2xkbGliIgpvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPSIiCgojIFdoZXRo ZXIgdG8gdXNlIGEgbG9jayBmb3Igb2xkIGFyY2hpdmUgZXh0cmFjdGlvbi4K bG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPW5vCgojIEEgQyBjb21waWxl ci4KTFRDQz0iZ2NjIgoKIyBMVENDIGNvbXBpbGVyIGZsYWdzLgpMVENGTEFH Uz0iLWcgLU8yIgoKIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1 Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgpnbG9i YWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbCSBdXFwoW0FCQ0RH SVJTVFddW0FCQ0RHSVJTVFddKlxcKVsJIF1bCSBdKl9cXChbX0EtWmEtel1b X0EtWmEtejAtOV0qXFwpXFx7MCwxXFx9XCQvXFwxIF9cXDIgXFwyL3AnIHwg c2VkICcvIF9fZ251X2x0by9kJyIKCiMgVHJhbnNmb3JtIHRoZSBvdXRwdXQg b2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KZ2xvYmFsX3N5bWJv bF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFxcKC4qXFwpXCQvZXh0 ZXJuIGludCBcXDEoKTsvcCcgLWUgJ3MvXltBQkNER0lSU1RXXSogLiogXFwo LipcXClcJC9leHRlcm4gY2hhciBcXDE7L3AnIgoKIyBUcmFuc2Zvcm0gdGhl IG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIuCmdsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBc XChbXiBdKlxcKVsgXSpcJC8gIHtcXFwiXFwxXFxcIiwgKHZvaWQgKikgMH0s L3AnIC1lICdzL15bQUJDREdJUlNUV10qIFxcKFteIF0qXFwpIFxcKFteIF0q XFwpXCQvICB7XCJcXDJcIiwgKHZvaWQgKikgXFwmXFwyfSwvcCciCgojIFRy YW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3Mg cGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkLgpnbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9e OiBcXChbXiBdKlxcKVsgXSpcJC8gIHtcXFwiXFwxXFxcIiwgKHZvaWQgKikg MH0sL3AnIC1lICdzL15bQUJDREdJUlNUV10qIFxcKFteIF0qXFwpIFxcKGxp YlteIF0qXFwpXCQvICB7XCJcXDJcIiwgKHZvaWQgKikgXFwmXFwyfSwvcCcg LWUgJ3MvXltBQkNER0lSU1RXXSogXFwoW14gXSpcXCkgXFwoW14gXSpcXClc JC8gIHtcImxpYlxcMlwiLCAodm9pZCAqKSBcXCZcXDJ9LC9wJyIKCiMgU3Bl Y2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzIGZvciAkTk0u Cm5tX2ZpbGVfbGlzdF9zcGVjPSJAIgoKIyBUaGUgcm9vdCB3aGVyZSB0byBz ZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJyYXJpZXMsYW5kIGluIHdoaWNoIG91 ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4KbHRfc3lzcm9vdD0K CiMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRl bXBvcmFyeSBsaWJ0b29sIGZpbGVzLgpvYmpkaXI9LmxpYnMKCiMgVXNlZCB0 byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lu cyB3aXRoICJmaWxlIi4KTUFHSUNfQ01EPWZpbGUKCiMgTXVzdCB3ZSBsb2Nr IGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/Cm5lZWRfbG9ja3M9Im5v IgoKIyBNYW5pZmVzdCB0b29sLgpNQU5JRkVTVF9UT09MPSI6IgoKIyBUb29s IHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9sIGZp bGVzIG9uIE1hYyBPUyBYLgpEU1lNVVRJTD0iIgoKIyBUb29sIHRvIGNoYW5n ZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWC4KTk1FRElU PSIiCgojIFRvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJj aGl2ZXMgb24gTWFjIE9TIFguCkxJUE89IiIKCiMgbGRkL3JlYWRlbGYgbGlr ZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFguCk9UT09M PSIiCgojIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gt TyBiaW5hcmllcyBvbiBNYWMgT1MgWCAxMC40LgpPVE9PTDY0PSIiCgojIE9s ZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKS4KbGliZXh0PWEKCiMg U2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNvIikuCnNocmV4 dF9jbWRzPSIuZGxsIgoKIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUg ZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgpl eHRyYWN0X2V4cHN5bXNfY21kcz0iIgoKIyBWYXJpYWJsZXMgd2hvc2UgdmFs dWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0 cyBhbmQKIyByZXN0b3JlZCBhdCBsaW5rIHRpbWUuCnZhcmlhYmxlc19zYXZl ZF9mb3JfcmVsaW5rPSJQQVRIIFBBVEggTERfUlVOX1BBVEggR0NDX0VYRUNf UFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgoKIyBEbyB3ZSBu ZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/Cm5lZWRfbGliX3By ZWZpeD1ubwoKIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVz PwpuZWVkX3ZlcnNpb249bm8KCiMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUu CnZlcnNpb25fdHlwZT13aW5kb3dzCgojIFNoYXJlZCBsaWJyYXJ5IHJ1bnRp bWUgcGF0aCB2YXJpYWJsZS4KcnVucGF0aF92YXI9TERfUlVOX1BBVEgKCiMg U2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4Kc2hsaWJwYXRoX3Zhcj1Q QVRICgojIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQt Y29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8Kc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcwoKIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZp eC4KbGlibmFtZV9zcGVjPSJsaWJcJG5hbWUiCgojIExpc3Qgb2YgYXJjaGl2 ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVz dCBhcmUgbGlua3MuCiMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQg dGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRQpsaWJyYXJ5X25hbWVzX3Nw ZWM9IlwkbGlibmFtZS5kbGwuYSIKCiMgVGhlIGNvZGVkIG5hbWUgb2YgdGhl IGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCnNv bmFtZV9zcGVjPSJcJHtsaWJuYW1lfVxgZWNobyBcJHtyZWxlYXNlfSB8IFwk U0VEIC1lIHMvWy5dLy0vZ1xgXCR7dmVyc3VmZml4fVwke3NoYXJlZF9leHR9 IgoKIyBQZXJtaXNzaW9uIG1vZGUgb3ZlcnJpZGUgZm9yIGluc3RhbGxhdGlv biBvZiBzaGFyZWQgbGlicmFyaWVzLgppbnN0YWxsX292ZXJyaWRlX21vZGU9 IiIKCiMgQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEg c2hhcmVkIGFyY2hpdmUuCnBvc3RpbnN0YWxsX2NtZHM9ImJhc2VfZmlsZT1c XFxgYmFzZW5hbWUgXFxcJHtmaWxlfVxcXGB+CiAgICAgIGRscGF0aD1cXFxg XCRTSEVMTCAyPiYxIC1jICcuIFwkZGlyLydcXFwke2Jhc2VfZmlsZX0naTsg ZWNobyBcXFwkZGxuYW1lJ1xcXGB+CiAgICAgIGRsZGlyPVwkZGVzdGRpci9c XFxgZGlybmFtZSBcXFwkZGxwYXRoXFxcYH4KICAgICAgdGVzdCAtZCBcXFwk ZGxkaXIgfHwgbWtkaXIgLXAgXFxcJGRsZGlyfgogICAgICBcJGluc3RhbGxf cHJvZyBcJGRpci9cJGRsbmFtZSBcXFwkZGxkaXIvXCRkbG5hbWV+CiAgICAg IGNobW9kIGEreCBcXFwkZGxkaXIvXCRkbG5hbWV+CiAgICAgIGlmIHRlc3Qg LW4gJ1wkc3RyaXBtZScgJiYgdGVzdCAtbiAnXCRzdHJpcGxpYic7IHRoZW4K ICAgICAgICBldmFsICdcJHN0cmlwbGliIFxcXCRkbGRpci9cJGRsbmFtZScg fHwgZXhpdCBcXFwkPzsKICAgICAgZmkiCgojIENvbW1hbmQgdG8gdXNlIGFm dGVyIHVuaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUuCnBvc3R1 bmluc3RhbGxfY21kcz0iZGxkbGw9XFxcYFwkU0hFTEwgMj4mMSAtYyAnLiBc JGZpbGU7IGVjaG8gXFxcJGRsbmFtZSdcXFxgfgogICAgICBkbHBhdGg9XCRk aXIvXFxcJGRsZGxsfgogICAgICAgXCRSTSBcXFwkZGxwYXRoIgoKIyBDb21t YW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBpbnN0YWxs YXRpb24gaW4gYSBkaXJlY3RvcnkuCmZpbmlzaF9jbWRzPSIiCgojIEFzICJm aW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQg dG8gYmUgZXZhbGVkIGJ1dAojIG5vdCBzaG93bi4KZmluaXNoX2V2YWw9IiIK CiMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBp bnRvIGxpYnJhcmllcy4KaGFyZGNvZGVfaW50b19saWJzPW5vCgojIENvbXBp bGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcy4Kc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSJjOi90aW5ndy9saWIvZ2NjL21pbmd3 MzIvNC44LjEgYzovdGluZ3cvbGliL2djYyBjOi90aW5ndy9taW5ndzMyL2xp YiBjOi90aW5ndy9saWIgIgoKIyBSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBh dGggZm9yIGxpYnJhcmllcy4Kc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9 Ii9saWIgL3Vzci9saWIiCgojIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRl ZC4KZGxvcGVuX3N1cHBvcnQ9eWVzCgojIFdoZXRoZXIgZGxvcGVuIG9mIHBy b2dyYW1zIGlzIHN1cHBvcnRlZC4KZGxvcGVuX3NlbGY9dW5rbm93bgoKIyBX aGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBp cyBzdXBwb3J0ZWQuCmRsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCgojIENv bW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4Kb2xkX3N0cmlwbGliPSJzdHJp cCAtLXN0cmlwLWRlYnVnIgpzdHJpcGxpYj0ic3RyaXAgLS1zdHJpcC11bm5l ZWRlZCIKCgojIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMu CkxEPSJjOi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUiCgojIEhvdyB0byBj cmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuCnJlbG9hZF9mbGFnPSIg LXIiCnJlbG9hZF9jbWRzPSJcJExEXCRyZWxvYWRfZmxhZyAtbyBcJG91dHB1 dFwkcmVsb2FkX29ianMiCgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4g b2xkLXN0eWxlIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2NtZHM9IlwkQVIgXCRB Ul9GTEFHUyBcJG9sZGxpYlwkb2xkb2Jqc35cJFJBTkxJQiBcJHRvb2xfb2xk bGliIgoKIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgpDQz0iZ2Nj IgoKIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9n Y2M9eWVzCgojIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBm dW5jdGlvbnMuCm5vX2J1aWx0aW5fZmxhZz0iIC1mbm8tYnVpbHRpbiIKCiMg QWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFy eSBvYmplY3RzLgpwaWNfZmxhZz0iIC1ERExMX0VYUE9SVCAtRFBJQyIKCiMg SG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxl ci4Kd2w9Ii1XbCwiCgojIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5h bWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9Ii1zdGF0aWMiCgojIERv ZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8g b3B0aW9ucz8KY29tcGlsZXJfY19vPSJ5ZXMiCgojIFdoZXRoZXIgb3Igbm90 IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCmJ1 aWxkX2xpYnRvb2xfbmVlZF9sYz15ZXMKCiMgV2hldGhlciBvciBub3QgdG8g ZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0 YXRpYy4KYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVz PXllcwoKIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9w ZW5zLgpleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9Ilwke3dsfS0tZXhwb3J0 LWFsbC1zeW1ib2xzIgoKIyBDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNo YXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJjaGl2ZXMuCndob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjPSJcJHt3bH0tLXdob2xlLWFyY2hpdmVcJGNvbnZl bmllbmNlIFwke3dsfS0tbm8td2hvbGUtYXJjaGl2ZSIKCiMgV2hldGhlciB0 aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGly ZWN0bHkuCmNvbXBpbGVyX25lZWRzX29iamVjdD0ibm8iCgojIENyZWF0ZSBh biBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCm9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9IiIKCiMgQ3JlYXRlIGEgdGVtcG9y YXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNo YXJlZCBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0i IgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUu CmFyY2hpdmVfY21kcz0iXCRDQyAtc2hhcmVkIFwkbGlib2JqcyBcJGRlcGxp YnMgXCRjb21waWxlcl9mbGFncyAtbyBcJG91dHB1dF9vYmpkaXIvXCRzb25h bWUgXCR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0t b3V0LWltcGxpYiAtWGxpbmtlciBcJGxpYiIKYXJjaGl2ZV9leHBzeW1fY21k cz0iaWYgdGVzdCBcXFwieFxcXGBcJFNFRCAxcSBcJGV4cG9ydF9zeW1ib2xz XFxcYFxcXCIgPSB4RVhQT1JUUzsgdGhlbgoJICBjcCBcJGV4cG9ydF9zeW1i b2xzIFwkb3V0cHV0X29iamRpci9cJHNvbmFtZS5kZWY7CgllbHNlCgkgIGVj aG8gRVhQT1JUUyA+IFwkb3V0cHV0X29iamRpci9cJHNvbmFtZS5kZWY7Cgkg IGNhdCBcJGV4cG9ydF9zeW1ib2xzID4+IFwkb3V0cHV0X29iamRpci9cJHNv bmFtZS5kZWY7CglmaX4KCVwkQ0MgLXNoYXJlZCBcJG91dHB1dF9vYmpkaXIv XCRzb25hbWUuZGVmIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyAtbyBcJG91dHB1dF9vYmpkaXIvXCRzb25hbWUgXCR7d2x9LS1lbmFi bGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxp bmtlciBcJGxpYiIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRh YmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZwojIGEgc2hh cmVkIGFyY2hpdmUuCm1vZHVsZV9jbWRzPSIiCm1vZHVsZV9leHBzeW1fY21k cz0iIgoKIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBv ciBub3QuCndpdGhfZ251X2xkPSJ5ZXMiCgojIEZsYWcgdGhhdCBhbGxvd3Mg c2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJl IGJ1aWx0LgphbGxvd191bmRlZmluZWRfZmxhZz0idW5zdXBwb3J0ZWQiCgoj IEZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4Kbm9f dW5kZWZpbmVkX2ZsYWc9IiIKCiMgRmxhZyB0byBoYXJkY29kZSAkbGliZGly IGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCiMgVGhpcyBtdXN0IHdv cmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0CmhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9Ii1MXCRsaWJkaXIiCgojIFdoZXRoZXIgd2UgbmVl ZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJn dW1lbnQuCmhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9IiIKCiMgU2V0IHRv ICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJp bmcgbGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUgcmVzdWx0aW5n IGJpbmFyeS4KaGFyZGNvZGVfZGlyZWN0PW5vCgojIFNldCB0byAieWVzIiBp ZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkg YW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCiMgImFi c29sdXRlIixpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyAk e3NobGlicGF0aF92YXJ9IGlmIHRoZQojIGxpYnJhcnkgaXMgcmVsb2NhdGVk LgpoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9bm8KCiMgU2V0IHRvICJ5ZXMi IGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRj b2RlcyBESVIKIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29k ZV9taW51c19MPW5vCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBB VEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj11bnN1cHBvcnRlZAoKIyBTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBz aGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKIyBp bnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMg YW5kIGV4ZWN1dGFibGVzIGxpbmtlZAojIGFnYWluc3QgaXQuCmhhcmRjb2Rl X2F1dG9tYXRpYz1ubwoKIyBTZXQgdG8geWVzIGlmIGxpbmtlciBhZGRzIHJ1 bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwojIHRvIHJ1bnRp bWUgcGF0aCBsaXN0Lgppbmhlcml0X3JwYXRoPW5vCgojIFdoZXRoZXIgbGli dG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBl bmRlbmN5IGxpYnJhcmllcy4KbGlua19hbGxfZGVwbGlicz11bmtub3duCgoj IFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJl ZC4KYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCgojIFRoZSBjb21tYW5kcyB0 byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCmV4cG9ydF9zeW1ib2xzX2NtZHM9 IlwkTk0gXCRsaWJvYmpzIFwkY29udmVuaWVuY2UgfCBcJGdsb2JhbF9zeW1i b2xfcGlwZSB8IFwkU0VEIC1lICcvXltCQ0RHUlNdWyBdL3MvLipbIF1cXFxc KFteIF0qXFxcXCkvXFxcXDEgREFUQS87cy9eLipbIF1fX25tX19cXFxcKFte IF0qXFxcXClbIF1bXiBdKi9cXFxcMSBEQVRBLzsvXklbIF0vZDsvXltBSVRX XVsgXS9zLy4qIC8vJyB8IHNvcnQgfCB1bmlxID4gXCRleHBvcnRfc3ltYm9s cyIKCiMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRo ZSBwcmVsb2FkZWQgc3ltYm9scy4KZXhjbHVkZV9leHBzeW1zPSJbX10rR0xP QkFMX09GRlNFVF9UQUJMRV98W19dK0dMT0JBTF9fW0ZJRF1fLip8W19dK2hl YWRfW0EtWmEtejAtOV9dK19kbGx8W0EtWmEtejAtOV9dK19kbGxfaW5hbWUi CgojIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4KaW5j bHVkZV9leHBzeW1zPSIiCgojIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlu a2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxh dGVzLgpwcmVsaW5rX2NtZHM9IiIKCiMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZv ciBmaW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4KcG9zdGxpbmtfY21kcz0i IgoKIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMu CmZpbGVfbGlzdF9zcGVjPSIiCgojIEhvdyB0byBoYXJkY29kZSBhIHNoYXJl ZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgpoYXJkY29kZV9h Y3Rpb249aW1tZWRpYXRlCgojIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBi eSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGlicmFy eS4KY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSIiCgojIERlcGVuZGVuY2ll cyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5n IGxpbmtlZCB0bwojIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgpwcmVkZXBf b2JqZWN0cz0iIgpwb3N0ZGVwX29iamVjdHM9IiIKcHJlZGVwcz0iIgpwb3N0 ZGVwcz0iIgoKIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVy bmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZwojIGEgc2hhcmVk IGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0iIgoKIyAjIyMg RU5EIExJQlRPT0wgQ09ORklHCgoKIyBsaWJ0b29sIChHTlUgbGlidG9vbCkg Mi40LjIKIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3JkQGdu dS5haS5taXQuZWR1PiwgMTk5NgoKIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsCiMgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGlzIGZyZWUgc29mdHdh cmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBU aGVyZSBpcyBOTwojIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoK IyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBBcyBhIHNwZWNpYWwgZXhjZXB0 aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKIyBpZiB5 b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0g b3IgbGlicmFyeSB0aGF0CiMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2ws IHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCiMgc2FtZSBk aXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBv ZiB0aGF0IHByb2dyYW0uCiMKIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKIyBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKIyBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMKIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0 aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKIyBjYW4gYmUgZG93 bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwu aHRtbCwKIyBvciBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCiMgNTEgRnJhbmtsaW4gU3RyZWV0 LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCgoj IFVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gW01PREUtQVJHXS4uLgoj CiMgUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBv cnQgc2VydmljZXMuCiMKIyAgICAgICAtLWNvbmZpZyAgICAgICAgICAgICBz aG93IGFsbCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcwojICAgICAgIC0tZGVi dWcgICAgICAgICAgICAgIGVuYWJsZSB2ZXJib3NlIHNoZWxsIHRyYWNpbmcK IyAgIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICBkaXNwbGF5IGNvbW1hbmRz IHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcwojICAgICAgIC0tZmVhdHVy ZXMgICAgICAgICAgIGRpc3BsYXkgYmFzaWMgY29uZmlndXJhdGlvbiBpbmZv cm1hdGlvbiBhbmQgZXhpdAojICAgICAgIC0tbW9kZT1NT0RFICAgICAgICAg IHVzZSBvcGVyYXRpb24gbW9kZSBNT0RFCiMgICAgICAgLS1wcmVzZXJ2ZS1k dXAtZGVwcyAgZG9uJ3QgcmVtb3ZlIGR1cGxpY2F0ZSBkZXBlbmRlbmN5IGxp YnJhcmllcwojICAgICAgIC0tcXVpZXQsIC0tc2lsZW50ICAgIGRvbid0IHBy aW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMKIyAgICAgICAtLW5vLXF1aWV0 LCAtLW5vLXNpbGVudAojICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy aW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQpCiMgICAgICAg LS1uby13YXJuICAgICAgICAgICAgZG9uJ3QgZGlzcGxheSB3YXJuaW5nIG1l c3NhZ2VzCiMgICAgICAgLS10YWc9VEFHICAgICAgICAgICAgdXNlIGNvbmZp Z3VyYXRpb24gdmFyaWFibGVzIGZyb20gdGFnIFRBRwojICAgLXYsIC0tdmVy Ym9zZSAgICAgICAgICAgIHByaW50IG1vcmUgaW5mb3JtYXRpb25hbCBtZXNz YWdlcyB0aGFuIGRlZmF1bHQKIyAgICAgICAtLW5vLXZlcmJvc2UgICAgICAg ICBkb24ndCBwcmludCB0aGUgZXh0cmEgaW5mb3JtYXRpb25hbCBtZXNzYWdl cwojICAgICAgIC0tdmVyc2lvbiAgICAgICAgICAgIHByaW50IHZlcnNpb24g aW5mb3JtYXRpb24KIyAgIC1oLCAtLWhlbHAsIC0taGVscC1hbGwgICBwcmlu dCBzaG9ydCwgbG9uZywgb3IgZGV0YWlsZWQgaGVscCBtZXNzYWdlCiMKIyBN T0RFIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CiMKIyAgICAgICAg IGNsZWFuICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVp bGQgZGlyZWN0b3J5CiMgICAgICAgICBjb21waWxlICAgICAgICAgICAgY29t cGlsZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIG9iamVjdAojICAg ICAgICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IGxp YnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCiMgICAgICAgICBmaW5p c2ggICAgICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBs aWJ0b29sIGxpYnJhcmllcwojICAgICAgICAgaW5zdGFsbCAgICAgICAgICAg IGluc3RhbGwgbGlicmFyaWVzIG9yIGV4ZWN1dGFibGVzCiMgICAgICAgICBs aW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVj dXRhYmxlCiMgICAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxp YnJhcmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKIwojIE1PREUt QVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgTU9ERS4gIFdoZW4gcGFzc2Vk IGFzIGZpcnN0IG9wdGlvbiwKIyBgLS1tb2RlPU1PREUnIG1heSBiZSBhYmJy ZXZpYXRlZCBhcyBgTU9ERScgb3IgYSB1bmlxdWUgYWJicmV2aWF0aW9uIG9m IHRoYXQuCiMgVHJ5IGAkcHJvZ25hbWUgLS1oZWxwIC0tbW9kZT1NT0RFJyBm b3IgYSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIE1PREUuCiMKIyBX aGVuIHJlcG9ydGluZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVzdCBj YXNlIHRvIHJlcHJvZHVjZSBpdCBhbmQKIyBpbmNsdWRlIHRoZSBmb2xsb3dp bmcgaW5mb3JtYXRpb246CiMKIyAgICAgICAgIGhvc3QtdHJpcGxldDoJJGhv c3QKIyAgICAgICAgIHNoZWxsOgkJJFNIRUxMCiMgICAgICAgICBjb21waWxl cjoJCSRMVENDCiMgICAgICAgICBjb21waWxlciBmbGFnczoJCSRMVENGTEFH UwojICAgICAgICAgbGlua2VyOgkJJExEIChnbnU/ICR3aXRoX2dudV9sZCkK IyAgICAgICAgICRwcm9nbmFtZToJKEdOVSBsaWJ0b29sKSAyLjQuMgojICAg ICAgICAgYXV0b21ha2U6CSRhdXRvbWFrZV92ZXJzaW9uCiMgICAgICAgICBh dXRvY29uZjoJJGF1dG9jb25mX3ZlcnNpb24KIwojIFJlcG9ydCBidWdzIHRv IDxidWctbGlidG9vbEBnbnUub3JnPi4KIyBHTlUgbGlidG9vbCBob21lIHBh Z2U6IDxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8+Lgoj IEdlbmVyYWwgaGVscCB1c2luZyBHTlUgc29mdHdhcmU6IDxodHRwOi8vd3d3 LmdudS5vcmcvZ2V0aGVscC8+LgoKUFJPR1JBTT1saWJ0b29sClBBQ0tBR0U9 bGlidG9vbApWRVJTSU9OPTIuNC4yClRJTUVTVEFNUD0iIgpwYWNrYWdlX3Jl dmlzaW9uPTEuMzMzNwoKIyBCZSBCb3VybmUgY29tcGF0aWJsZQppZiB0ZXN0 IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4KICBlbXVsYXRlIHNoCiAgTlVMTENNRD06CiAg IyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24g JHsxKyIkQCJ9LCB3aGljaAogICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdl LiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCiAgYWxpYXMgLWcgJyR7MSsiJEAi fSc9JyIkQCInCiAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKZWxzZQogIGNhc2Ug YChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAqcG9zaXgqKSBzZXQgLW8gcG9z aXg7OyBlc2FjCmZpCkJJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9y IFRydTY0CkRVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mg c2gKCiMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBu byBwcmludCBidWlsdGluIG9yIHByaW50Zi4KZnVuY19mYWxsYmFja19lY2hv ICgpCnsKICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgokMQpfTFRFQ0hPX0VP RicKfQoKIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRoZSBvbGQgdmFsdWVz IHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KbHRfdXNlcl9sb2Nh bGU9Cmx0X3NhZmVfbG9jYWxlPQpmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VB R0UgTENfQUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FHRVMKZG8K ICBldmFsICJpZiB0ZXN0IFwiXCR7JGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRo ZW4KICAgICAgICAgIHNhdmVfJGx0X3Zhcj1cJCRsdF92YXIKICAgICAgICAg ICRsdF92YXI9QwoJICBleHBvcnQgJGx0X3ZhcgoJICBsdF91c2VyX2xvY2Fs ZT1cIiRsdF92YXI9XFxcJHNhdmVfXCRsdF92YXI7IFwkbHRfdXNlcl9sb2Nh bGVcIgoJICBsdF9zYWZlX2xvY2FsZT1cIiRsdF92YXI9QzsgXCRsdF9zYWZl X2xvY2FsZVwiCglmaSIKZG9uZQpMQ19BTEw9QwpMQU5HVUFHRT1DCmV4cG9y dCBMQU5HVUFHRSBMQ19BTEwKCiRsdF91bnNldCBDRFBBVEgKCgojIFdvcmsg YXJvdW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXNzdWUgb24gSVJJWCA2 LjUuIE9uIElSSVggNi40Kywgc2gKIyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNo ZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUg b2YKIyB0aGUgX1hQRyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QgZXF1 YWwgdG8gMSAob25lKSwgdGhlIHNwZWNpYWwKIyBwb3NpdGlvbmFsIHBhcmFt ZXRlciAkMCwgd2l0aGluIGEgZnVuY3Rpb24gY2FsbCwgaXMgdGhlIG5hbWUg b2YgdGhlCiMgZnVuY3Rpb24uCnByb2dwYXRoPSIkMCIKCgoKOiAke0NQPSJj cCAtZiJ9CnRlc3QgIiR7RUNITytzZXR9IiA9IHNldCB8fCBFQ0hPPSR7YXNf ZWNoby0ncHJpbnRmICVzXG4nfQo6ICR7TUFLRT0ibWFrZSJ9CjogJHtNS0RJ Uj0ibWtkaXIifQo6ICR7TVY9Im12IC1mIn0KOiAke1JNPSJybSAtZiJ9Cjog JHtTSEVMTD0iJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0ifQo6ICR7WHNlZD0i JFNFRCAtZSAxcy9eWC8vIn0KCiMgR2xvYmFsIHZhcmlhYmxlczoKRVhJVF9T VUNDRVNTPTAKRVhJVF9GQUlMVVJFPTEKRVhJVF9NSVNNQVRDSD02MyAgIyAk PyA9IDYzIGlzIHVzZWQgdG8gaW5kaWNhdGUgdmVyc2lvbiBtaXNtYXRjaCB0 byBtaXNzaW5nLgpFWElUX1NLSVA9NzcJICAjICQ/ID0gNzcgaXMgdXNlZCB0 byBpbmRpY2F0ZSBhIHNraXBwZWQgdGVzdCB0byBhdXRvbWFrZS4KCmV4aXRf c3RhdHVzPSRFWElUX1NVQ0NFU1MKCiMgTWFrZSBzdXJlIElGUyBoYXMgYSBz ZW5zaWJsZSBkZWZhdWx0Cmx0X25sPScKJwpJRlM9IiAJJGx0X25sIgoKZGly bmFtZT0icywvW14vXSokLCwiCmJhc2VuYW1lPSJzLF4uKi8sLCIKCiMgZnVu Y19kaXJuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAojIENv bXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQg QVBQRU5EIHRvIHRoZSByZXN1bHQsCiMgb3RoZXJ3aXNlIHNldCByZXN1bHQg dG8gTk9ORElSX1JFUExBQ0VNRU5ULgpmdW5jX2Rpcm5hbWUgKCkKewogICAg Y2FzZSAkezF9IGluCiAgICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0i JHsxJS8qfSR7Mn0iIDs7CiAgICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3Vs dD0iJHszfSIgOzsKICAgIGVzYWMKfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNf ZGlybmFtZSBpbXBsZW1lbnRhdGlvbgoKCiMgZnVuY19iYXNlbmFtZSBmaWxl CmZ1bmNfYmFzZW5hbWUgKCkKewogICAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9 IiR7MSMjKi99Igp9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19iYXNlbmFtZSBp bXBsZW1lbnRhdGlvbgoKCiMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBm aWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKIyBwZXJmb3JtIGZ1bmNf YmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlv bgojIGNhbGw6CiMgICBkaXJuYW1lOiAgQ29tcHV0ZSB0aGUgZGlybmFtZSBv ZiBGSUxFLiAgSWYgbm9uZW1wdHksCiMgICAgICAgICAgICAgYWRkIEFQUEVO RCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAojICAgICAg ICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KIyAgICAgICAgICAgICB2 YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfZGlybmFtZV9yZXN1bHQiCiMgICBi YXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgojICAgICAgICAg ICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIK IyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQgc3luY2hyb25pemVkIHdp dGggZnVuY19kaXJuYW1lCiMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZp Y2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KIyB0aG9zZSBmdW5jdGlv bnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhl cmUuCmZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkKewogICAgY2FzZSAk ezF9IGluCiAgICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8q fSR7Mn0iIDs7CiAgICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsz fSIgOzsKICAgIGVzYWMKICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEj IyovfSIKfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfZGlybmFtZV9hbmRfYmFz ZW5hbWUgaW1wbGVtZW50YXRpb24KCgojIGZ1bmNfc3RyaXBuYW1lIHByZWZp eCBzdWZmaXggbmFtZQojIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBv ZiBOQU1FLgojIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4g Z2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAojIGNoYXJhY3RlcnMsIGhhc2hl cywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxl YWRpbmcKIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkg YSBkb3QpLgojIGZ1bmNfc3RyaXBfc3VmZml4IHByZWZpeCBuYW1lCmZ1bmNf c3RyaXBuYW1lICgpCnsKICAgICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRv ICR7WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmUKICAgICMg cG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGlu YXJ5IHBhcmFtZXRlciBmaXJzdC4KICAgIGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dD0kezN9CiAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlw bmFtZV9yZXN1bHQjIiR7MX0ifQogICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0 PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In0KfSAjIEV4dGVuZGVk LXNoZWxsIGZ1bmNfc3RyaXBuYW1lIGltcGxlbWVudGF0aW9uCgoKIyBUaGVz ZSBTRUQgc2NyaXB0cyBwcmVzdXBwb3NlIGFuIGFic29sdXRlIHBhdGggd2l0 aCBhIHRyYWlsaW5nIHNsYXNoLgpwYXRoY2FyPSdzLF4vXChbXi9dKlwpLiok LFwxLCcKcGF0aGNkcj0ncyxeL1teL10qLCwnCnJlbW92ZWRvdHBhcnRzPSc6 ZG90c2wKCQlzQC9cLi9AL0BnCgkJdCBkb3RzbAoJCXMsL1wuJCwvLCcKY29s bGFwc2VzbGFzaGVzPSdzQC9cezEsXH1AL0BnJwpmaW5hbHNsYXNoPSdzLC8q JCwvLCcKCiMgZnVuY19ub3JtYWxfYWJzcGF0aCBQQVRICiMgUmVtb3ZlIGRv dWJsZWQtdXAgYW5kIHRyYWlsaW5nIHNsYXNoZXMsICIuIiBwYXRoIGNvbXBv bmVudHMsCiMgYW5kIGNhbmNlbCBvdXQgYW55ICIuLiIgcGF0aCBjb21wb25l bnRzIGluIFBBVEggYWZ0ZXIgbWFraW5nCiMgaXQgYW4gYWJzb2x1dGUgcGF0 aC4KIyAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfbm9y bWFsX2Fic3BhdGhfcmVzdWx0IgpmdW5jX25vcm1hbF9hYnNwYXRoICgpCnsK ICAjIFN0YXJ0IGZyb20gcm9vdCBkaXIgYW5kIHJlYXNzZW1ibGUgdGhlIHBh dGguCiAgZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9CiAgZnVuY19ub3Jt YWxfYWJzcGF0aF90cGF0aD0kMQogIGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0 bmFtZXNwYWNlPQogIGNhc2UgJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgg aW4KICAgICIiKQogICAgICAjIEVtcHR5IHBhdGgsIHRoYXQganVzdCBtZWFu cyAkY3dkLgogICAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgImBwd2RgIgog ICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5h bWVfcmVzdWx0CiAgICAgIHJldHVybgogICAgOzsKICAgICMgVGhlIG5leHQg dGhyZWUgZW50cmllcyBhcmUgdXNlZCB0byBzcG90IGEgcnVuIG9mIHByZWNp c2VseQogICAgIyB0d28gbGVhZGluZyBzbGFzaGVzIHdpdGhvdXQgdXNpbmcg bmVnYXRlZCBjaGFyYWN0ZXIgY2xhc3NlczsKICAgICMgd2UgdGFrZSBhZHZh bnRhZ2Ugb2YgY2FzZSdzIGZpcnN0LW1hdGNoIGJlaGF2aW91ci4KICAgIC8v LyopCiAgICAgICMgVW51c3VhbCBmb3JtIG9mIGFic29sdXRlIHBhdGgsIGRv IG5vdGhpbmcuCiAgICA7OwogICAgLy8qKQogICAgICAjIE5vdCBuZWNlc3Nh cmlseSBhbiBvcmRpbmFyeSBwYXRoOyBQT1NJWCByZXNlcnZlcyBsZWFkaW5n ICcvLycKICAgICAgIyBhbmQgZm9yIGV4YW1wbGUgQ3lnd2luIHVzZXMgaXQg dG8gYWNjZXNzIHJlbW90ZSBmaWxlIHNoYXJlcwogICAgICAjIG92ZXIgQ0lG Uy9TTUIsIHNvIHdlIGNvbnNlcnZlIGEgbGVhZGluZyBkb3VibGUgc2xhc2gg aWYgZm91bmQuCiAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNw YWNlPS8KICAgIDs7CiAgICAvKikKICAgICAgIyBBYnNvbHV0ZSBwYXRoLCBk byBub3RoaW5nLgogICAgOzsKICAgICopCiAgICAgICMgUmVsYXRpdmUgcGF0 aCwgcHJlcGVuZCAkY3dkLgogICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Rw YXRoPWBwd2RgLyRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoCiAgICA7Owog IGVzYWMKICAjIENhbmNlbCBvdXQgYWxsIHRoZSBzaW1wbGUgc3R1ZmYgdG8g c2F2ZSBpdGVyYXRpb25zLiAgV2UgYWxzbyB3YW50CiAgIyB0aGUgcGF0aCB0 byBlbmQgd2l0aCBhIHNsYXNoIGZvciBlYXNlIG9mIHBhcnNpbmcsIHNvIG1h a2Ugc3VyZQogICMgdGhlcmUgaXMgb25lIChhbmQgb25seSBvbmUpIGhlcmUu CiAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD1gJEVDSE8gIiRmdW5jX25v cm1hbF9hYnNwYXRoX3RwYXRoIiB8ICRTRUQgXAogICAgICAgIC1lICIkcmVt b3ZlZG90cGFydHMiIC1lICIkY29sbGFwc2VzbGFzaGVzIiAtZSAiJGZpbmFs c2xhc2giYAogIHdoaWxlIDo7IGRvCiAgICAjIFByb2Nlc3NlZCBpdCBhbGwg eWV0PwogICAgaWYgdGVzdCAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgi ID0gLyA7IHRoZW4KICAgICAgIyBJZiB3ZSBhc2NlbmRlZCB0byB0aGUgcm9v dCB1c2luZyAiLi4iIHRoZSByZXN1bHQgbWF5IGJlIGVtcHR5IG5vdy4KICAg ICAgaWYgdGVzdCAteiAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0IiA7 IHRoZW4KICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0vCiAg ICAgIGZpCiAgICAgIGJyZWFrCiAgICBmaQogICAgZnVuY19ub3JtYWxfYWJz cGF0aF90Y29tcG9uZW50PWAkRUNITyAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhf dHBhdGgiIHwgJFNFRCBcCiAgICAgICAgLWUgIiRwYXRoY2FyImAKICAgIGZ1 bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxf YWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKICAgICAgICAtZSAiJHBhdGhjZHIi YAogICAgIyBGaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBpdAogICAgY2Fz ZSAkZnVuY19ub3JtYWxfYWJzcGF0aF90Y29tcG9uZW50IGluCiAgICAgICIi KQogICAgICAgICMgVHJhaWxpbmcgZW1wdHkgcGF0aCBjb21wb25lbnQsIGln bm9yZSBpdC4KICAgICAgOzsKICAgICAgLi4pCiAgICAgICAgIyBQYXJlbnQg ZGlyOyBzdHJpcCBsYXN0IGFzc2VtYmxlZCBjb21wb25lbnQgZnJvbSByZXN1 bHQuCiAgICAgICAgZnVuY19kaXJuYW1lICIkZnVuY19ub3JtYWxfYWJzcGF0 aF9yZXN1bHQiCiAgICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9 JGZ1bmNfZGlybmFtZV9yZXN1bHQKICAgICAgOzsKICAgICAgKikKICAgICAg ICAjIEFjdHVhbCBwYXRoIGNvbXBvbmVudCwgYXBwZW5kIGl0LgogICAgICAg IGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PSRmdW5jX25vcm1hbF9hYnNw YXRoX3Jlc3VsdC8kZnVuY19ub3JtYWxfYWJzcGF0aF90Y29tcG9uZW50CiAg ICAgIDs7CiAgICBlc2FjCiAgZG9uZQogICMgUmVzdG9yZSBsZWFkaW5nIGRv dWJsZS1zbGFzaCBpZiBvbmUgd2FzIGZvdW5kIG9uIGVudHJ5LgogIGZ1bmNf bm9ybWFsX2Fic3BhdGhfcmVzdWx0PSRmdW5jX25vcm1hbF9hYnNwYXRoX2Fs dG5hbWVzcGFjZSRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdAp9CgojIGZ1 bmNfcmVsYXRpdmVfcGF0aCBTUkNESVIgRFNURElSCiMgZ2VuZXJhdGVzIGEg cmVsYXRpdmUgcGF0aCBmcm9tIFNSQ0RJUiB0byBEU1RESVIsIHdpdGggYSB0 cmFpbGluZwojIHNsYXNoIGlmIG5vbi1lbXB0eSwgc3VpdGFibGUgZm9yIGlt bWVkaWF0ZWx5IGFwcGVuZGluZyBhIGZpbGVuYW1lCiMgd2l0aG91dCBuZWVk aW5nIHRvIGFwcGVuZCBhIHNlcGFyYXRvci4KIyAgICAgICAgICAgICB2YWx1 ZSByZXR1cm5lZCBpbiAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQiCmZ1 bmNfcmVsYXRpdmVfcGF0aCAoKQp7CiAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jl c3VsdD0KICBmdW5jX25vcm1hbF9hYnNwYXRoICIkMSIKICBmdW5jX3JlbGF0 aXZlX3BhdGhfdGxpYmRpcj0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQK ICBmdW5jX25vcm1hbF9hYnNwYXRoICIkMiIKICBmdW5jX3JlbGF0aXZlX3Bh dGhfdGJpbmRpcj0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKCiAgIyBB c2NlbmQgdGhlIHRyZWUgc3RhcnRpbmcgZnJvbSBsaWJkaXIKICB3aGlsZSA6 OyBkbwogICAgIyBjaGVjayBpZiB3ZSBoYXZlIGZvdW5kIGEgcHJlZml4IG9m IGJpbmRpcgogICAgY2FzZSAkZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXIg aW4KICAgICAgJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyKQogICAgICAg ICMgZm91bmQgYW4gZXhhY3QgbWF0Y2gKICAgICAgICBmdW5jX3JlbGF0aXZl X3BhdGhfdGNhbmNlbGxlZD0KICAgICAgICBicmVhawogICAgICAgIDs7CiAg ICAgICRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpciopCiAgICAgICAgIyBm b3VuZCBhIG1hdGNoaW5nIHByZWZpeAogICAgICAgIGZ1bmNfc3RyaXBuYW1l ICIkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIiICcnICIkZnVuY19yZWxh dGl2ZV9wYXRoX3RiaW5kaXIiCiAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRo X3RjYW5jZWxsZWQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAogICAgICAgIGlm IHRlc3QgLXogIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IjsgdGhlbgog ICAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0uCiAgICAgICAg ZmkKICAgICAgICBicmVhawogICAgICAgIDs7CiAgICAgICopCiAgICAgICAg ZnVuY19kaXJuYW1lICRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcgogICAg ICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyPSR7ZnVuY19kaXJuYW1l X3Jlc3VsdH0KICAgICAgICBpZiB0ZXN0ICJ4JGZ1bmNfcmVsYXRpdmVfcGF0 aF90bGliZGlyIiA9IHggOyB0aGVuCiAgICAgICAgICAjIEhhdmUgdG8gZGVz Y2VuZCBhbGwgdGhlIHdheSB0byB0aGUgcm9vdCEKICAgICAgICAgIGZ1bmNf cmVsYXRpdmVfcGF0aF9yZXN1bHQ9Li4vJGZ1bmNfcmVsYXRpdmVfcGF0aF9y ZXN1bHQKICAgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2FuY2VsbGVk PSRmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpcgogICAgICAgICAgYnJlYWsK ICAgICAgICBmaQogICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9 Li4vJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQKICAgICAgICA7OwogICAg ZXNhYwogIGRvbmUKCiAgIyBOb3cgY2FsY3VsYXRlIHBhdGg7IHRha2UgY2Fy ZSB0byBhdm9pZCBkb3VibGluZy11cCBzbGFzaGVzLgogIGZ1bmNfc3RyaXBu YW1lICcnICcvJyAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQiCiAgZnVu Y19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 CiAgZnVuY19zdHJpcG5hbWUgJy8nICcvJyAiJGZ1bmNfcmVsYXRpdmVfcGF0 aF90Y2FuY2VsbGVkIgogIGlmIHRlc3QgIngkZnVuY19zdHJpcG5hbWVfcmVz dWx0IiAhPSB4IDsgdGhlbgogICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3Vs dD0ke2Z1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHR9LyR7ZnVuY19zdHJpcG5h bWVfcmVzdWx0fQogIGZpCgogICMgTm9ybWFsaXNhdGlvbi4gSWYgYmluZGly IGlzIGxpYmRpciwgcmV0dXJuIGVtcHR5IHN0cmluZywKICAjIGVsc2UgcmVs YXRpdmUgcGF0aCBlbmRpbmcgd2l0aCBhIHNsYXNoOyBlaXRoZXIgd2F5LCB0 YXJnZXQKICAjIGZpbGUgbmFtZSBjYW4gYmUgZGlyZWN0bHkgYXBwZW5kZWQu CiAgaWYgdGVzdCAhIC16ICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCI7 IHRoZW4KICAgIGZ1bmNfc3RyaXBuYW1lICcuLycgJycgIiRmdW5jX3JlbGF0 aXZlX3BhdGhfcmVzdWx0LyIKICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1 bHQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAogIGZpCn0KCiMgVGhlIG5hbWUg b2YgdGhpcyBwcm9ncmFtOgpmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIk cHJvZ3BhdGgiCnByb2duYW1lPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAoKIyBN YWtlIHN1cmUgd2UgaGF2ZSBhbiBhYnNvbHV0ZSBwYXRoIGZvciByZWV4ZWN1 dGlvbjoKY2FzZSAkcHJvZ3BhdGggaW4KICBbXFwvXSp8W0EtWmEtel06XFwq KSA7OwogICpbXFwvXSopCiAgICAgcHJvZ2Rpcj0kZnVuY19kaXJuYW1lX3Jl c3VsdAogICAgIHByb2dkaXI9YGNkICIkcHJvZ2RpciIgJiYgcHdkYAogICAg IHByb2dwYXRoPSIkcHJvZ2Rpci8kcHJvZ25hbWUiCiAgICAgOzsKICAqKQog ICAgIHNhdmVfSUZTPSIkSUZTIgogICAgIElGUz0ke1BBVEhfU0VQQVJBVE9S LTp9CiAgICAgZm9yIHByb2dkaXIgaW4gJFBBVEg7IGRvCiAgICAgICBJRlM9 IiRzYXZlX0lGUyIKICAgICAgIHRlc3QgLXggIiRwcm9nZGlyLyRwcm9nbmFt ZSIgJiYgYnJlYWsKICAgICBkb25lCiAgICAgSUZTPSIkc2F2ZV9JRlMiCiAg ICAgdGVzdCAtbiAiJHByb2dkaXIiIHx8IHByb2dkaXI9YHB3ZGAKICAgICBw cm9ncGF0aD0iJHByb2dkaXIvJHByb2duYW1lIgogICAgIDs7CmVzYWMKCiMg U2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90 aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKIyBtZXRhY2hhcmFjdGVycyB0aGF0 IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5n cy4KWHNlZD0iJHtTRUR9IicgLWUgMXMvXlgvLycKc2VkX3F1b3RlX3N1YnN0 PSdzL1woW2AiJFxcXVwpL1xcXDEvZycKCiMgU2FtZSBhcyBhYm92ZSwgYnV0 IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgpkb3VibGVfcXVv dGVfc3Vic3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCgojIFNlZCBzdWJzdGl0 dXRpb24gdGhhdCB0dXJucyBhIHN0cmluZyBpbnRvIGEgcmVnZXggbWF0Y2hp bmcgZm9yIHRoZQojIHN0cmluZyBsaXRlcmFsbHkuCnNlZF9tYWtlX2xpdGVy YWxfcmVnZXg9J3MsW10uW14kXFwqXC9dLFxcJixnJwoKIyBTZWQgc3Vic3Rp dHV0aW9uIHRoYXQgY29udmVydHMgYSB3MzIgZmlsZSBuYW1lIG9yIHBhdGgK IyB3aGljaCBjb250YWlucyBmb3J3YXJkIHNsYXNoZXMsIGludG8gb25lIHRo YXQgY29udGFpbnMKIyAoZXNjYXBlZCkgYmFja3NsYXNoZXMuICBBIHZlcnkg bmFpdmUgaW1wbGVtZW50YXRpb24uCmx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hp Znk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKCiMgUmUt YFwnIHBhcmFtZXRlciBleHBhbnNpb25zIGluIG91dHB1dCBvZiBkb3VibGVf cXVvdGVfc3Vic3QgdGhhdCB3ZXJlCiMgYFwnLWVkIGluIGlucHV0IHRvIHRo ZSBzYW1lLiAgSWYgYW4gb2RkIG51bWJlciBvZiBgXCcgcHJlY2VkZWQgYSAn JCcKIyBpbiBpbnB1dCB0byBkb3VibGVfcXVvdGVfc3Vic3QsIHRoYXQgJyQn IHdhcyBwcm90ZWN0ZWQgZnJvbSBleHBhbnNpb24uCiMgU2luY2UgZWFjaCBp bnB1dCBgXCcgaXMgbm93IHR3byBgXCdzLCBsb29rIGZvciBhbnkgbnVtYmVy IG9mIHJ1bnMgb2YKIyBmb3VyIGBcJ3MgZm9sbG93ZWQgYnkgdHdvIGBcJ3Mg YW5kIHRoZW4gYSAnJCcuICBgXCcgdGhhdCAnJCcuCmJzPSdcXCcKYnMyPSdc XFxcJwpiczQ9J1xcXFxcXFxcJwpkb2xsYXI9J1wkJwpzZWRfZG91YmxlX2Jh Y2tzbGFzaD0iXAogIHMvJGJzNC8mXFwKL2cKICBzL14kYnMyJGRvbGxhci8k YnMmLwogIHMvXFwoW14kYnNdXFwpJGJzMiRkb2xsYXIvXFwxJGJzMiRicyRk b2xsYXIvZwogIHMvXG4vL2ciCgojIFN0YW5kYXJkIG9wdGlvbnM6Cm9wdF9k cnlfcnVuPWZhbHNlCm9wdF9oZWxwPWZhbHNlCm9wdF9xdWlldD1mYWxzZQpv cHRfdmVyYm9zZT1mYWxzZQpvcHRfd2FybmluZz06CgojIGZ1bmNfZWNobyBh cmcuLi4KIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlLCBh bG9uZyB3aXRoIHRoZSBjdXJyZW50IG1vZGUKIyBuYW1lIGlmIGl0IGhhcyBi ZWVuIHNldCB5ZXQuCmZ1bmNfZWNobyAoKQp7CiAgICAkRUNITyAiJHByb2du YW1lOiAke29wdF9tb2RlKyRvcHRfbW9kZTogfSQqIgp9CgojIGZ1bmNfdmVy Ym9zZSBhcmcuLi4KIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNz YWdlIGluIHZlcmJvc2UgbW9kZSBvbmx5LgpmdW5jX3ZlcmJvc2UgKCkKewog ICAgJG9wdF92ZXJib3NlICYmIGZ1bmNfZWNobyAkezErIiRAIn0KCiAgICAj IEEgYnVnIGluIGJhc2ggaGFsdHMgdGhlIHNjcmlwdCBpZiB0aGUgbGFzdCBs aW5lIG9mIGEgZnVuY3Rpb24KICAgICMgZmFpbHMgd2hlbiBzZXQgLWUgaXMg aW4gZm9yY2UsIHNvIHdlIG5lZWQgYW5vdGhlciBjb21tYW5kIHRvCiAgICAj IHdvcmsgYXJvdW5kIHRoYXQ6CiAgICA6Cn0KCiMgZnVuY19lY2hvX2FsbCBh cmcuLi4KIyBJbnZva2UgJEVDSE8gd2l0aCBhbGwgYXJncywgc3BhY2Utc2Vw YXJhdGVkLgpmdW5jX2VjaG9fYWxsICgpCnsKICAgICRFQ0hPICIkKiIKfQoK IyBmdW5jX2Vycm9yIGFyZy4uLgojIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZp eGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCmZ1bmNfZXJyb3IgKCkK ewogICAgJEVDSE8gIiRwcm9nbmFtZTogJHtvcHRfbW9kZSskb3B0X21vZGU6 IH0iJHsxKyIkQCJ9IDE+JjIKfQoKIyBmdW5jX3dhcm5pbmcgYXJnLi4uCiMg RWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgd2FybmluZyBtZXNzYWdlIHRv IHN0YW5kYXJkIGVycm9yLgpmdW5jX3dhcm5pbmcgKCkKewogICAgJG9wdF93 YXJuaW5nICYmICRFQ0hPICIkcHJvZ25hbWU6ICR7b3B0X21vZGUrJG9wdF9t b2RlOiB9d2FybmluZzogIiR7MSsiJEAifSAxPiYyCgogICAgIyBiYXNoIGJ1 ZyBhZ2FpbjoKICAgIDoKfQoKIyBmdW5jX2ZhdGFsX2Vycm9yIGFyZy4uLgoj IEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRh cmQgZXJyb3IsIGFuZCBleGl0LgpmdW5jX2ZhdGFsX2Vycm9yICgpCnsKICAg IGZ1bmNfZXJyb3IgJHsxKyIkQCJ9CiAgICBleGl0ICRFWElUX0ZBSUxVUkUK fQoKIyBmdW5jX2ZhdGFsX2hlbHAgYXJnLi4uCiMgRWNobyBwcm9ncmFtIG5h bWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93 ZWQgYnkKIyBhIGhlbHAgaGludCwgYW5kIGV4aXQuCmZ1bmNfZmF0YWxfaGVs cCAoKQp7CiAgICBmdW5jX2Vycm9yICR7MSsiJEAifQogICAgZnVuY19mYXRh bF9lcnJvciAiJGhlbHAiCn0KaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVs cCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAgIyMgZGVmYXVsdAoKCiMgZnVu Y19ncmVwIGV4cHJlc3Npb24gZmlsZW5hbWUKIyBDaGVjayB3aGV0aGVyIEVY UFJFU1NJT04gbWF0Y2hlcyBhbnkgbGluZSBvZiBGSUxFTkFNRSwgd2l0aG91 dCBvdXRwdXQuCmZ1bmNfZ3JlcCAoKQp7CiAgICAkR1JFUCAiJDEiICIkMiIg Pi9kZXYvbnVsbCAyPiYxCn0KCgojIGZ1bmNfbWtkaXJfcCBkaXJlY3Rvcnkt cGF0aAojIE1ha2Ugc3VyZSB0aGUgZW50aXJlIHBhdGggdG8gRElSRUNUT1JZ LVBBVEggaXMgYXZhaWxhYmxlLgpmdW5jX21rZGlyX3AgKCkKewogICAgbXlf ZGlyZWN0b3J5X3BhdGg9IiQxIgogICAgbXlfZGlyX2xpc3Q9CgogICAgaWYg dGVzdCAtbiAiJG15X2RpcmVjdG9yeV9wYXRoIiAmJiB0ZXN0ICIkb3B0X2Ry eV9ydW4iICE9ICI6IjsgdGhlbgoKICAgICAgIyBQcm90ZWN0IGRpcmVjdG9y eSBuYW1lcyBzdGFydGluZyB3aXRoIGAtJwogICAgICBjYXNlICRteV9kaXJl Y3RvcnlfcGF0aCBpbgogICAgICAgIC0qKSBteV9kaXJlY3RvcnlfcGF0aD0i Li8kbXlfZGlyZWN0b3J5X3BhdGgiIDs7CiAgICAgIGVzYWMKCiAgICAgICMg V2hpbGUgc29tZSBwb3J0aW9uIG9mIERJUiBkb2VzIG5vdCB5ZXQgZXhpc3Qu Li4KICAgICAgd2hpbGUgdGVzdCAhIC1kICIkbXlfZGlyZWN0b3J5X3BhdGgi OyBkbwogICAgICAgICMgLi4ubWFrZSBhIGxpc3QgaW4gdG9wbW9zdCBmaXJz dCBvcmRlci4gIFVzZSBhIGNvbG9uIGRlbGltaXRlZAoJIyBsaXN0IGluY2Fz ZSBzb21lIHBvcnRpb24gb2YgcGF0aCBjb250YWlucyB3aGl0ZXNwYWNlLgog ICAgICAgIG15X2Rpcl9saXN0PSIkbXlfZGlyZWN0b3J5X3BhdGg6JG15X2Rp cl9saXN0IgoKICAgICAgICAjIElmIHRoZSBsYXN0IHBvcnRpb24gYWRkZWQg aGFzIG5vIHNsYXNoIGluIGl0LCB0aGUgbGlzdCBpcyBkb25lCiAgICAgICAg Y2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4gKi8qKSA7OyAqKSBicmVhayA7 OyBlc2FjCgogICAgICAgICMgLi4ub3RoZXJ3aXNlIHRocm93IGF3YXkgdGhl IGNoaWxkIGRpcmVjdG9yeSBhbmQgbG9vcAogICAgICAgIG15X2RpcmVjdG9y eV9wYXRoPWAkRUNITyAiJG15X2RpcmVjdG9yeV9wYXRoIiB8ICRTRUQgLWUg IiRkaXJuYW1lImAKICAgICAgZG9uZQogICAgICBteV9kaXJfbGlzdD1gJEVD SE8gIiRteV9kaXJfbGlzdCIgfCAkU0VEICdzLDoqJCwsJ2AKCiAgICAgIHNh dmVfbWtkaXJfcF9JRlM9IiRJRlMiOyBJRlM9JzonCiAgICAgIGZvciBteV9k aXIgaW4gJG15X2Rpcl9saXN0OyBkbwoJSUZTPSIkc2F2ZV9ta2Rpcl9wX0lG UyIKICAgICAgICAjIG1rZGlyIGNhbiBmYWlsIHdpdGggYSBgRmlsZSBleGlz dCcgZXJyb3IgaWYgdHdvIHByb2Nlc3NlcwogICAgICAgICMgdHJ5IHRvIGNy ZWF0ZSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzIGNvbmN1cnJlbnRseS4gIERv bid0CiAgICAgICAgIyBzdG9wIGluIHRoYXQgY2FzZSEKICAgICAgICAkTUtE SVIgIiRteV9kaXIiIDI+L2Rldi9udWxsIHx8IDoKICAgICAgZG9uZQogICAg ICBJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgoKICAgICAgIyBCYWlsIG91dCBp ZiB3ZSAob3Igc29tZSBvdGhlciBwcm9jZXNzKSBmYWlsZWQgdG8gY3JlYXRl IGEgZGlyZWN0b3J5LgogICAgICB0ZXN0IC1kICIkbXlfZGlyZWN0b3J5X3Bh dGgiIHx8IFwKICAgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJGYWlsZWQgdG8g Y3JlYXRlIFxgJDEnIgogICAgZmkKfQoKCiMgZnVuY19ta3RlbXBkaXIgW3N0 cmluZ10KIyBNYWtlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0aGF0IHdvbid0 IGNsYXNoIHdpdGggb3RoZXIgcnVubmluZwojIGxpYnRvb2wgcHJvY2Vzc2Vz LCBhbmQgYXZvaWRzIHJhY2UgY29uZGl0aW9ucyBpZiBwb3NzaWJsZS4gIElm CiMgZ2l2ZW4sIFNUUklORyBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGly ZWN0b3J5LgpmdW5jX21rdGVtcGRpciAoKQp7CiAgICBteV90ZW1wbGF0ZT0i JHtUTVBESVItL3RtcH0vJHsxLSRwcm9nbmFtZX0iCgogICAgaWYgdGVzdCAi JG9wdF9kcnlfcnVuIiA9ICI6IjsgdGhlbgogICAgICAjIFJldHVybiBhIGRp cmVjdG9yeSBuYW1lLCBidXQgZG9uJ3QgY3JlYXRlIGl0IGluIGRyeS1ydW4g bW9kZQogICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSQkIgogICAg ZWxzZQoKICAgICAgIyBJZiBta3RlbXAgd29ya3MsIHVzZSB0aGF0IGZpcnN0 IGFuZCBmb3JlbW9zdAogICAgICBteV90bXBkaXI9YG1rdGVtcCAtZCAiJHtt eV90ZW1wbGF0ZX0tWFhYWFhYWFgiIDI+L2Rldi9udWxsYAoKICAgICAgaWYg dGVzdCAhIC1kICIkbXlfdG1wZGlyIjsgdGhlbgogICAgICAgICMgRmFpbGlu ZyB0aGF0LCBhdCBsZWFzdCB0cnkgYW5kIHVzZSAkUkFORE9NIHRvIGF2b2lk IGEgcmFjZQogICAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJHtS QU5ET00tMH0kJCIKCiAgICAgICAgc2F2ZV9ta3RlbXBkaXJfdW1hc2s9YHVt YXNrYAogICAgICAgIHVtYXNrIDAwNzcKICAgICAgICAkTUtESVIgIiRteV90 bXBkaXIiCiAgICAgICAgdW1hc2sgJHNhdmVfbWt0ZW1wZGlyX3VtYXNrCiAg ICAgIGZpCgogICAgICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVuIG1vZGUs IGJvbWIgb3V0IG9uIGZhaWx1cmUKICAgICAgdGVzdCAtZCAiJG15X3RtcGRp ciIgfHwgXAogICAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBjcmVh dGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBcYCRteV90bXBkaXInIgogICAgZmkK CiAgICAkRUNITyAiJG15X3RtcGRpciIKfQoKCiMgZnVuY19xdW90ZV9mb3Jf ZXZhbCBhcmcKIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFs ZWQgbGF0ZXIuCiMgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHR3byB2YWx1ZXM6 IEZVTkNfUVVPVEVfRk9SX0VWQUxfUkVTVUxUCiMgaXMgZG91YmxlLXF1b3Rl ZCwgc3VpdGFibGUgZm9yIGEgc3Vic2VxdWVudCBldmFsLCB3aGVyZWFzCiMg RlVOQ19RVU9URV9GT1JfRVZBTF9VTlFVT1RFRF9SRVNVTFQgaGFzIG1lcmVs eSBhbGwgY2hhcmFjdGVycwojIHdoaWNoIGFyZSBzdGlsbCBhY3RpdmUgd2l0 aGluIGRvdWJsZSBxdW90ZXMgYmFja3NsYXNoaWZpZWQuCmZ1bmNfcXVvdGVf Zm9yX2V2YWwgKCkKewogICAgY2FzZSAkMSBpbgogICAgICAqW1xcXGBcIlwk XSopCglmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD1gJEVD SE8gIiQxIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYCA7OwogICAgICAq KQogICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0 PSIkMSIgOzsKICAgIGVzYWMKCiAgICBjYXNlICRmdW5jX3F1b3RlX2Zvcl9l dmFsX3VucXVvdGVkX3Jlc3VsdCBpbgogICAgICAjIERvdWJsZS1xdW90ZSBh cmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkK ICAgICAgIyB3b3JkIHNwbGl0dGluZywgY29tbWFuZCBzdWJzdGl0dXRpb24g YW5kIGFuZCB2YXJpYWJsZQogICAgICAjIGV4cGFuc2lvbiBmb3IgYSBzdWJz ZXF1ZW50IGV2YWwuCiAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5v dCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5CiAgICAgICMgaW4g c2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCiAgICAg ICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0q fCIiKQogICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSJcIiRm dW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdFwiIgogICAgICAg IDs7CiAgICAgICopCiAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQ9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdCIKICAg IGVzYWMKfQoKCiMgZnVuY19xdW90ZV9mb3JfZXhwYW5kIGFyZwojIEFlc3Ro ZXRpY2FsbHkgcXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRlcjsgc2FtZSBh cyBhYm92ZSwKIyBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5j ZXMuCmZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAoKQp7CiAgICBjYXNlICQxIGlu CiAgICAgICpbXFxcYFwiXSopCglteV9hcmc9YCRFQ0hPICIkMSIgfCAkU0VE IFwKCSAgICAtZSAiJGRvdWJsZV9xdW90ZV9zdWJzdCIgLWUgIiRzZWRfZG91 YmxlX2JhY2tzbGFzaCJgIDs7CiAgICAgICopCiAgICAgICAgbXlfYXJnPSIk MSIgOzsKICAgIGVzYWMKCiAgICBjYXNlICRteV9hcmcgaW4KICAgICAgIyBE b3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0 ZXJzIHRvIGRlbGF5CiAgICAgICMgd29yZCBzcGxpdHRpbmcgYW5kIGNvbW1h bmQgc3Vic3RpdHV0aW9uIGZvciBhIHN1YnNlcXVlbnQgZXZhbC4KICAgICAg IyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFj a2V0cyBjb3JyZWN0bHkKICAgICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNw ZWNpZnkgaXQgc2VwYXJhdGVseS4KICAgICAgKltcW1x+XCNcXlwmXCpcKFwp XHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCiAgICAgICAgbXlfYXJn PSJcIiRteV9hcmdcIiIKICAgICAgICA7OwogICAgZXNhYwoKICAgIGZ1bmNf cXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQ9IiRteV9hcmciCn0KCgojIGZ1bmNf c2hvd19ldmFsIGNtZCBbZmFpbF9leHBdCiMgVW5sZXNzIG9wdF9zaWxlbnQg aXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1 biBpcwojIG5vdCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVh dGlvbiBvZiBDTUQgZmFpbHMsIGFuZCBGQUlMX0VYUAojIGlzIGdpdmVuLCB0 aGVuIGV2YWx1YXRlIGl0LgpmdW5jX3Nob3dfZXZhbCAoKQp7CiAgICBteV9j bWQ9IiQxIgogICAgbXlfZmFpbF9leHA9IiR7Mi06fSIKCiAgICAke29wdF9z aWxlbnQtZmFsc2V9IHx8IHsKICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5k ICIkbXlfY21kIgogICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVf Zm9yX2V4cGFuZF9yZXN1bHQiCiAgICB9CgogICAgaWYgJHtvcHRfZHJ5X3J1 bi1mYWxzZX07IHRoZW4gOjsgZWxzZQogICAgICBldmFsICIkbXlfY21kIgog ICAgICBteV9zdGF0dXM9JD8KICAgICAgaWYgdGVzdCAiJG15X3N0YXR1cyIg LWVxIDA7IHRoZW4gOjsgZWxzZQoJZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7 ICRteV9mYWlsX2V4cCIKICAgICAgZmkKICAgIGZpCn0KCgojIGZ1bmNfc2hv d19ldmFsX2xvY2FsZSBjbWQgW2ZhaWxfZXhwXQojIFVubGVzcyBvcHRfc2ls ZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9k cnlydW4gaXMKIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhlIGV2 YWx1YXRpb24gb2YgQ01EIGZhaWxzLCBhbmQgRkFJTF9FWFAKIyBpcyBnaXZl biwgdGhlbiBldmFsdWF0ZSBpdC4gIFVzZSB0aGUgc2F2ZWQgbG9jYWxlIGZv ciBldmFsdWF0aW9uLgpmdW5jX3Nob3dfZXZhbF9sb2NhbGUgKCkKewogICAg bXlfY21kPSIkMSIKICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCgogICAgJHtv cHRfc2lsZW50LWZhbHNlfSB8fCB7CiAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4 cGFuZCAiJG15X2NtZCIKICAgICAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1 b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgogICAgfQoKICAgIGlmICR7b3B0X2Ry eV9ydW4tZmFsc2V9OyB0aGVuIDo7IGVsc2UKICAgICAgZXZhbCAiJGx0X3Vz ZXJfbG9jYWxlCgkgICAgJG15X2NtZCIKICAgICAgbXlfc3RhdHVzPSQ/CiAg ICAgIGV2YWwgIiRsdF9zYWZlX2xvY2FsZSIKICAgICAgaWYgdGVzdCAiJG15 X3N0YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQoJZXZhbCAiKGV4aXQgJG15 X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIKICAgICAgZmkKICAgIGZpCn0KCiMg ZnVuY190cl9zaAojIFR1cm4gJDEgaW50byBhIHN0cmluZyBzdWl0YWJsZSBm b3IgYSBzaGVsbCB2YXJpYWJsZSBuYW1lLgojIFJlc3VsdCBpcyBzdG9yZWQg aW4gJGZ1bmNfdHJfc2hfcmVzdWx0LiAgQWxsIGNoYXJhY3RlcnMKIyBub3Qg aW4gdGhlIHNldCBhLXpBLVowLTlfIGFyZSByZXBsYWNlZCB3aXRoICdfJy4g RnVydGhlciwKIyBpZiAkMSBiZWdpbnMgd2l0aCBhIGRpZ2l0LCBhICdfJyBp cyBwcmVwZW5kZWQgYXMgd2VsbC4KZnVuY190cl9zaCAoKQp7CiAgY2FzZSAk MSBpbgogIFswLTldKiB8ICpbIWEtekEtWjAtOV9dKikKICAgIGZ1bmNfdHJf c2hfcmVzdWx0PWAkRUNITyAiJDEiIHwgJFNFRCAncy9eXChbMC05XVwpL19c MS87IHMvW15hLXpBLVowLTlfXS9fL2cnYAogICAgOzsKICAqICkKICAgIGZ1 bmNfdHJfc2hfcmVzdWx0PSQxCiAgICA7OwogIGVzYWMKfQoKCiMgZnVuY192 ZXJzaW9uCiMgRWNobyB2ZXJzaW9uIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0 cHV0IGFuZCBleGl0LgpmdW5jX3ZlcnNpb24gKCkKewogICAgJG9wdF9kZWJ1 ZwoKICAgICRTRUQgLW4gJy8oQykvIWIgZ28KCTptb3JlCgkvXC4vIXsKCSAg TgoJICBzL1xuIyAvIC8KCSAgYiBtb3JlCgl9Cgk6Z28KCS9eIyAnJFBST0dS QU0nIChHTlUgLywvIyB3YXJyYW50eTsgLyB7CiAgICAgICAgcy9eIyAvLwoJ cy9eIyAqJC8vCiAgICAgICAgcy9cKChDKVwpWyAwLTksLV0qXCggWzEtOV1b MC05XSpcKS9cMVwyLwogICAgICAgIHAKICAgICB9JyA8ICIkcHJvZ3BhdGgi CiAgICAgZXhpdCAkPwp9CgojIGZ1bmNfdXNhZ2UKIyBFY2hvIHNob3J0IGhl bHAgbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCmZ1bmNf dXNhZ2UgKCkKewogICAgJG9wdF9kZWJ1ZwoKICAgICRTRUQgLW4gJy9eIyBV c2FnZTovLC9eIyAgKi4qLS1oZWxwLyB7CiAgICAgICAgcy9eIyAvLwoJcy9e IyAqJC8vCglzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCglwCiAgICB9JyA8 ICIkcHJvZ3BhdGgiCiAgICBlY2hvCiAgICAkRUNITyAicnVuIFxgJHByb2du YW1lIC0taGVscCB8IG1vcmUnIGZvciBmdWxsIHVzYWdlIgogICAgZXhpdCAk Pwp9CgojIGZ1bmNfaGVscCBbTk9FWElUXQojIEVjaG8gbG9uZyBoZWxwIG1l c3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LAojIHVubGVzcyAn bm9leGl0JyBpcyBwYXNzZWQgYXMgYXJndW1lbnQuCmZ1bmNfaGVscCAoKQp7 CiAgICAkb3B0X2RlYnVnCgogICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMg UmVwb3J0IGJ1Z3MgdG8vIHsKCTpwcmludAogICAgICAgIHMvXiMgLy8KCXMv XiMgKiQvLwoJcypcJHByb2duYW1lKickcHJvZ25hbWUnKgoJcypcJGhvc3Qq JyIkaG9zdCInKgoJcypcJFNIRUxMKiciJFNIRUxMIicqCglzKlwkTFRDQyon IiRMVENDIicqCglzKlwkTFRDRkxBR1MqJyIkTFRDRkxBR1MiJyoKCXMqXCRM RConIiRMRCInKgoJcy9cJHdpdGhfZ251X2xkLyciJHdpdGhfZ251X2xkIicv CglzL1wkYXV0b21ha2VfdmVyc2lvbi8nImAoJHtBVVRPTUFLRS1hdXRvbWFr ZX0gLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KCXMvXCRh dXRvY29uZl92ZXJzaW9uLyciYCgke0FVVE9DT05GLWF1dG9jb25mfSAtLXZl cnNpb24pIDI+L2Rldi9udWxsIHwkU0VEIDFxYCInLwoJcAoJZAogICAgIH0K ICAgICAvXiMgLiogaG9tZSBwYWdlOi9iIHByaW50CiAgICAgL14jIEdlbmVy YWwgaGVscCB1c2luZy9iIHByaW50CiAgICAgJyA8ICIkcHJvZ3BhdGgiCiAg ICByZXQ9JD8KICAgIGlmIHRlc3QgLXogIiQxIjsgdGhlbgogICAgICBleGl0 ICRyZXQKICAgIGZpCn0KCiMgZnVuY19taXNzaW5nX2FyZyBhcmduYW1lCiMg RWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFy ZCBlcnJvciBhbmQgc2V0IGdsb2JhbAojIGV4aXRfY21kLgpmdW5jX21pc3Np bmdfYXJnICgpCnsKICAgICRvcHRfZGVidWcKCiAgICBmdW5jX2Vycm9yICJt aXNzaW5nIGFyZ3VtZW50IGZvciAkMS4iCiAgICBleGl0X2NtZD1leGl0Cn0K CgojIGZ1bmNfc3BsaXRfc2hvcnRfb3B0IHNob3J0b3B0CiMgU2V0IGZ1bmNf c3BsaXRfc2hvcnRfb3B0X25hbWUgYW5kIGZ1bmNfc3BsaXRfc2hvcnRfb3B0 X2FyZyBzaGVsbAojIHZhcmlhYmxlcyBhZnRlciBzcGxpdHRpbmcgU0hPUlRP UFQgYWZ0ZXIgdGhlIDJuZCBjaGFyYWN0ZXIuCmZ1bmNfc3BsaXRfc2hvcnRf b3B0ICgpCnsKICAgIGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZz0kezEjPz99 CiAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lPSR7MSUiJGZ1bmNfc3Bs aXRfc2hvcnRfb3B0X2FyZyJ9Cn0gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX3Nw bGl0X3Nob3J0X29wdCBpbXBsZW1lbnRhdGlvbgoKCiMgZnVuY19zcGxpdF9s b25nX29wdCBsb25nb3B0CiMgU2V0IGZ1bmNfc3BsaXRfbG9uZ19vcHRfbmFt ZSBhbmQgZnVuY19zcGxpdF9sb25nX29wdF9hcmcgc2hlbGwKIyB2YXJpYWJs ZXMgYWZ0ZXIgc3BsaXR0aW5nIExPTkdPUFQgYXQgdGhlIGA9JyBzaWduLgpm dW5jX3NwbGl0X2xvbmdfb3B0ICgpCnsKICAgIGZ1bmNfc3BsaXRfbG9uZ19v cHRfbmFtZT0kezElJT0qfQogICAgZnVuY19zcGxpdF9sb25nX29wdF9hcmc9 JHsxIyo9fQp9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19zcGxpdF9sb25nX29w dCBpbXBsZW1lbnRhdGlvbgoKZXhpdF9jbWQ9OgoKCgoKCm1hZ2ljPSIlJSVN QUdJQyB2YXJpYWJsZSUlJSIKbWFnaWNfZXhlPSIlJSVNQUdJQyBFWEUgdmFy aWFibGUlJSUiCgojIEdsb2JhbCB2YXJpYWJsZXMuCm5vbm9wdD0KcHJlc2Vy dmVfYXJncz0KbG8ybz0icy9cXC5sb1wkLy4ke29iamV4dH0vIgpvMmxvPSJz L1xcLiR7b2JqZXh0fVwkLy5sby8iCmV4dHJhY3RlZF9hcmNoaXZlcz0KZXh0 cmFjdGVkX3NlcmlhbD0wCgojIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0IGlu IGFueSBvZiB0aGUgYWN0aW9ucywgdGhlIGNvbW1hbmQgaW4gaXQKIyB3aWxs IGJlIGV4ZWNlZCBhdCB0aGUgZW5kLiAgVGhpcyBwcmV2ZW50cyBoZXJlLWRv Y3VtZW50cyBmcm9tIGJlaW5nCiMgbGVmdCBvdmVyIGJ5IHNoZWxscy4KZXhl Y19jbWQ9CgojIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQojIEFwcGVuZCBWQUxV RSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KZnVuY19hcHBl bmQgKCkKewogICAgZXZhbCAiJHsxfSs9XCR7Mn0iCn0gIyBFeHRlbmRlZC1z aGVsbCBmdW5jX2FwcGVuZCBpbXBsZW1lbnRhdGlvbgoKIyBmdW5jX2FwcGVu ZF9xdW90ZWQgdmFyIHZhbHVlCiMgUXVvdGUgVkFMVUUgYW5kIGFwcGVuZCB0 byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUiwgc2VwYXJhdGVkCiMg YnkgYSBzcGFjZS4KZnVuY19hcHBlbmRfcXVvdGVkICgpCnsKICAgIGZ1bmNf cXVvdGVfZm9yX2V2YWwgIiR7Mn0iCiAgICBldmFsICIkezF9Kz1cXCBcJGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Igp9ICMgRXh0ZW5kZWQtc2hlbGwg ZnVuY19hcHBlbmRfcXVvdGVkIGltcGxlbWVudGF0aW9uCgoKIyBmdW5jX2Fy aXRoIGFyaXRobWV0aWMtdGVybS4uLgpmdW5jX2FyaXRoICgpCnsKICAgIGZ1 bmNfYXJpdGhfcmVzdWx0PSQoKCAkKiApKQp9ICMgRXh0ZW5kZWQtc2hlbGwg ZnVuY19hcml0aCBpbXBsZW1lbnRhdGlvbgoKCiMgZnVuY19sZW4gc3RyaW5n CiMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KZnVuY19s ZW4gKCkKewogICAgZnVuY19sZW5fcmVzdWx0PSR7IzF9Cn0gIyBFeHRlbmRl ZC1zaGVsbCBmdW5jX2xlbiBpbXBsZW1lbnRhdGlvbgoKCiMgZnVuY19sbzJv IG9iamVjdApmdW5jX2xvMm8gKCkKewogICAgY2FzZSAkezF9IGluCiAgICAg ICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtvYmpleHR9IDs7 CiAgICAgICopICAgIGZ1bmNfbG8yb19yZXN1bHQ9JHsxfSA7OwogICAgZXNh Ywp9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19sbzJvIGltcGxlbWVudGF0aW9u CgoKIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKZnVuY194Zm9ybSAo KQp7CiAgICBmdW5jX3hmb3JtX3Jlc3VsdD0kezElLip9LmxvCn0gIyBFeHRl bmRlZC1zaGVsbCBmdW5jX3hmb3JtIGltcGxlbWVudGF0aW9uCgoKIyBmdW5j X2ZhdGFsX2NvbmZpZ3VyYXRpb24gYXJnLi4uCiMgRWNobyBwcm9ncmFtIG5h bWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93 ZWQgYnkKIyBhIGNvbmZpZ3VyYXRpb24gZmFpbHVyZSBoaW50LCBhbmQgZXhp dC4KZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICgpCnsKICAgIGZ1bmNfZXJy b3IgJHsxKyIkQCJ9CiAgICBmdW5jX2Vycm9yICJTZWUgdGhlICRQQUNLQUdF IGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uIgogICAgZnVu Y19mYXRhbF9lcnJvciAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4iCn0K CgojIGZ1bmNfY29uZmlnCiMgRGlzcGxheSB0aGUgY29uZmlndXJhdGlvbiBm b3IgYWxsIHRoZSB0YWdzIGluIHRoaXMgc2NyaXB0LgpmdW5jX2NvbmZpZyAo KQp7CiAgICByZV9iZWdpbmNmPSdeIyAjIyMgQkVHSU4gTElCVE9PTCcKICAg IHJlX2VuZGNmPSdeIyAjIyMgRU5EIExJQlRPT0wnCgogICAgIyBEZWZhdWx0 IGNvbmZpZ3VyYXRpb24uCiAgICAkU0VEICIxLC8kcmVfYmVnaW5jZiBDT05G SUcvZDsvJHJlX2VuZGNmIENPTkZJRy8sXCRkIiA8ICIkcHJvZ3BhdGgiCgog ICAgIyBOb3cgcHJpbnQgdGhlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgdGFn cy4KICAgIGZvciB0YWduYW1lIGluICR0YWdsaXN0OyBkbwogICAgICAkU0VE IC1uICIvJHJlX2JlZ2luY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC8sLyRy ZV9lbmRjZiBUQUcgQ09ORklHOiAkdGFnbmFtZVwkL3AiIDwgIiRwcm9ncGF0 aCIKICAgIGRvbmUKCiAgICBleGl0ICQ/Cn0KCiMgZnVuY19mZWF0dXJlcwoj IERpc3BsYXkgdGhlIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlw dC4KZnVuY19mZWF0dXJlcyAoKQp7CiAgICBlY2hvICJob3N0OiAkaG9zdCIK ICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVu CiAgICAgIGVjaG8gImVuYWJsZSBzaGFyZWQgbGlicmFyaWVzIgogICAgZWxz ZQogICAgICBlY2hvICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCiAgICBm aQogICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgog ICAgICBlY2hvICJlbmFibGUgc3RhdGljIGxpYnJhcmllcyIKICAgIGVsc2UK ICAgICAgZWNobyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgogICAgZmkK CiAgICBleGl0ICQ/Cn0KCiMgZnVuY19lbmFibGVfdGFnIHRhZ25hbWUKIyBW ZXJpZnkgdGhhdCBUQUdOQU1FIGlzIHZhbGlkLCBhbmQgZWl0aGVyIGZsYWcg YW4gZXJyb3IgYW5kIGV4aXQsIG9yCiMgZW5hYmxlIHRoZSBUQUdOQU1FIHRh Zy4gIFdlIGFsc28gYWRkIFRBR05BTUUgdG8gdGhlIGdsb2JhbCAkdGFnbGlz dAojIHZhcmlhYmxlIGhlcmUuCmZ1bmNfZW5hYmxlX3RhZyAoKQp7CiAgIyBH bG9iYWwgdmFyaWFibGU6CiAgdGFnbmFtZT0iJDEiCgogIHJlX2JlZ2luY2Y9 Il4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQi CiAgcmVfZW5kY2Y9Il4jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAk dGFnbmFtZVwkIgogIHNlZF9leHRyYWN0Y2Y9Ii8kcmVfYmVnaW5jZi8sLyRy ZV9lbmRjZi9wIgoKICAjIFZhbGlkYXRlIHRhZ25hbWUuCiAgY2FzZSAkdGFn bmFtZSBpbgogICAgKlshLV9BLVphLXowLTksL10qKQogICAgICBmdW5jX2Zh dGFsX2Vycm9yICJpbnZhbGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIKICAgICAg OzsKICBlc2FjCgogICMgRG9uJ3QgdGVzdCBmb3IgdGhlICJkZWZhdWx0IiBD IHRhZywgYXMgd2Uga25vdyBpdCdzCiAgIyB0aGVyZSBidXQgbm90IHNwZWNp YWxseSBtYXJrZWQuCiAgY2FzZSAkdGFnbmFtZSBpbgogICAgQ0MpIDs7CiAg ICAqKQogICAgICBpZiAkR1JFUCAiJHJlX2JlZ2luY2YiICIkcHJvZ3BhdGgi ID4vZGV2L251bGwgMj4mMTsgdGhlbgoJdGFnbGlzdD0iJHRhZ2xpc3QgJHRh Z25hbWUiCgoJIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4gIEJlIGNh cmVmdWwgdG8gcXVvdGUgdGhlIHBhdGgKCSMgYW5kIHRoZSBzZWQgc2NyaXB0 LCB0byBhdm9pZCBzcGxpdHRpbmcgb24gd2hpdGVzcGFjZSwgYnV0CgkjIGFs c28gZG9uJ3QgdXNlIG5vbi1wb3J0YWJsZSBxdW90ZXMgd2l0aGluIGJhY2tx dW90ZXMgd2l0aGluCgkjIHF1b3RlcyB3ZSBoYXZlIHRvIGRvIGl0IGluIDIg c3RlcHM6CglleHRyYWN0ZWRjZj1gJFNFRCAtbiAtZSAiJHNlZF9leHRyYWN0 Y2YiIDwgIiRwcm9ncGF0aCJgCglldmFsICIkZXh0cmFjdGVkY2YiCiAgICAg IGVsc2UKCWZ1bmNfZXJyb3IgImlnbm9yaW5nIHVua25vd24gdGFnICR0YWdu YW1lIgogICAgICBmaQogICAgICA7OwogIGVzYWMKfQoKIyBmdW5jX2NoZWNr X3ZlcnNpb25fbWF0Y2gKIyBFbnN1cmUgdGhhdCB3ZSBhcmUgdXNpbmcgbTQg bWFjcm9zLCBhbmQgbGlidG9vbCBzY3JpcHQgZnJvbSB0aGUgc2FtZQojIHJl bGVhc2Ugb2YgbGlidG9vbC4KZnVuY19jaGVja192ZXJzaW9uX21hdGNoICgp CnsKICBpZiB0ZXN0ICIkcGFja2FnZV9yZXZpc2lvbiIgIT0gIiRtYWNyb19y ZXZpc2lvbiI7IHRoZW4KICAgIGlmIHRlc3QgIiRWRVJTSU9OIiAhPSAiJG1h Y3JvX3ZlcnNpb24iOyB0aGVuCiAgICAgIGlmIHRlc3QgLXogIiRtYWNyb192 ZXJzaW9uIjsgdGhlbgogICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCiRwcm9n bmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJvci4gIFRoaXMgaXMgJFBBQ0tB R0UgJFZFUlNJT04sIGJ1dCB0aGUKJHByb2duYW1lOiBkZWZpbml0aW9uIG9m IHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIGFuIG9sZGVyIHJlbGVhc2UuCiRw cm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGgg bWFjcm9zIGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KJHByb2duYW1lOiBhbmQg cnVuIGF1dG9jb25mIGFnYWluLgpfTFRfRU9GCiAgICAgIGVsc2UKICAgICAg ICBjYXQgPiYyIDw8X0xUX0VPRgokcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0 Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQgdGhl CiRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMg ZnJvbSAkUEFDS0FHRSAkbWFjcm9fdmVyc2lvbi4KJHByb2duYW1lOiBZb3Ug c2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSAk UEFDS0FHRSAkVkVSU0lPTgokcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYg YWdhaW4uCl9MVF9FT0YKICAgICAgZmkKICAgIGVsc2UKICAgICAgY2F0ID4m MiA8PF9MVF9FT0YKJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9y LiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgcmV2aXNpb24gJHBhY2th Z2VfcmV2aXNpb24sCiRwcm9nbmFtZTogYnV0IHRoZSBkZWZpbml0aW9uIG9m IHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIHJldmlzaW9uICRtYWNyb19yZXZp c2lvbi4KJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwu bTQgd2l0aCBtYWNyb3MgZnJvbSByZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lv bgokcHJvZ25hbWU6IG9mICRQQUNLQUdFICRWRVJTSU9OIGFuZCBydW4gYXV0 b2NvbmYgYWdhaW4uCl9MVF9FT0YKICAgIGZpCgogICAgZXhpdCAkRVhJVF9N SVNNQVRDSAogIGZpCn0KCgojIFNob3J0aGFuZCBmb3IgLS1tb2RlPWZvbywg b25seSB2YWxpZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQKY2FzZSAkMSBpbgpj bGVhbnxjbGVhfGNsZXxjbCkKICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBj bGVhbiAkezErIiRAIn07IHNoaWZ0CiAgOzsKY29tcGlsZXxjb21waWx8Y29t cGl8Y29tcHxjb218Y298YykKICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBj b21waWxlICR7MSsiJEAifTsgc2hpZnQKICA7OwpleGVjdXRlfGV4ZWN1dHxl eGVjdXxleGVjfGV4ZXxleHxlKQogIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2Rl IGV4ZWN1dGUgJHsxKyIkQCJ9OyBzaGlmdAogIDs7CmZpbmlzaHxmaW5pc3xm aW5pfGZpbnxmaXxmKQogIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGZpbmlz aCAkezErIiRAIn07IHNoaWZ0CiAgOzsKaW5zdGFsbHxpbnN0YWx8aW5zdGF8 aW5zdHxpbnN8aW58aSkKICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBpbnN0 YWxsICR7MSsiJEAifTsgc2hpZnQKICA7OwpsaW5rfGxpbnxsaXxsKQogIHNo aWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGxpbmsgJHsxKyIkQCJ9OyBzaGlmdAog IDs7CnVuaW5zdGFsbHx1bmluc3RhbHx1bmluc3RhfHVuaW5zdHx1bmluc3x1 bmlufHVuaXx1bnx1KQogIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIHVuaW5z dGFsbCAkezErIiRAIn07IHNoaWZ0CiAgOzsKZXNhYwoKCgojIE9wdGlvbiBk ZWZhdWx0czoKb3B0X2RlYnVnPToKb3B0X2RyeV9ydW49ZmFsc2UKb3B0X2Nv bmZpZz1mYWxzZQpvcHRfcHJlc2VydmVfZHVwX2RlcHM9ZmFsc2UKb3B0X2Zl YXR1cmVzPWZhbHNlCm9wdF9maW5pc2g9ZmFsc2UKb3B0X2hlbHA9ZmFsc2UK b3B0X2hlbHBfYWxsPWZhbHNlCm9wdF9zaWxlbnQ9OgpvcHRfd2FybmluZz06 Cm9wdF92ZXJib3NlPToKb3B0X3NpbGVudD1mYWxzZQpvcHRfdmVyYm9zZT1m YWxzZQoKCiMgUGFyc2Ugb3B0aW9ucyBvbmNlLCB0aG9yb3VnaGx5LiAgVGhp cyBjb21lcyBhcyBzb29uIGFzIHBvc3NpYmxlIGluIHRoZQojIHNjcmlwdCB0 byBtYWtlIHRoaW5ncyBsaWtlIGAtLXZlcnNpb24nIGhhcHBlbiBhcyBxdWlj a2x5IGFzIHdlIGNhbi4KewogICMgdGhpcyBqdXN0IGVhc2VzIGV4aXQgaGFu ZGxpbmcKICB3aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbwogICAgb3B0PSIkMSIK ICAgIHNoaWZ0CiAgICBjYXNlICRvcHQgaW4KICAgICAgLS1kZWJ1Z3wteCkJ b3B0X2RlYnVnPSdzZXQgLXgnCgkJCWZ1bmNfZWNobyAiZW5hYmxpbmcgc2hl bGwgdHJhY2UgbW9kZSIKCQkJJG9wdF9kZWJ1ZwoJCQk7OwogICAgICAtLWRy eS1ydW58LS1kcnlydW58LW4pCgkJCW9wdF9kcnlfcnVuPToKCQkJOzsKICAg ICAgLS1jb25maWcpCgkJCW9wdF9jb25maWc9OgpmdW5jX2NvbmZpZwoJCQk7 OwogICAgICAtLWRsb3BlbnwtZGxvcGVuKQoJCQlvcHRhcmc9IiQxIgoJCQlv cHRfZGxvcGVuPSIke29wdF9kbG9wZW4rJG9wdF9kbG9wZW4KfSRvcHRhcmci CgkJCXNoaWZ0CgkJCTs7CiAgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMpCgkJ CW9wdF9wcmVzZXJ2ZV9kdXBfZGVwcz06CgkJCTs7CiAgICAgIC0tZmVhdHVy ZXMpCgkJCW9wdF9mZWF0dXJlcz06CmZ1bmNfZmVhdHVyZXMKCQkJOzsKICAg ICAgLS1maW5pc2gpCgkJCW9wdF9maW5pc2g9OgpzZXQgZHVtbXkgLS1tb2Rl IGZpbmlzaCAkezErIiRAIn07IHNoaWZ0CgkJCTs7CiAgICAgIC0taGVscCkK CQkJb3B0X2hlbHA9OgoJCQk7OwogICAgICAtLWhlbHAtYWxsKQoJCQlvcHRf aGVscF9hbGw9OgpvcHRfaGVscD0nOiBoZWxwLWFsbCcKCQkJOzsKICAgICAg LS1tb2RlKQoJCQl0ZXN0ICQjID0gMCAmJiBmdW5jX21pc3NpbmdfYXJnICRv cHQgJiYgYnJlYWsKCQkJb3B0YXJnPSIkMSIKCQkJb3B0X21vZGU9IiRvcHRh cmciCmNhc2UgJG9wdGFyZyBpbgogICMgVmFsaWQgbW9kZSBhcmd1bWVudHM6 CiAgY2xlYW58Y29tcGlsZXxleGVjdXRlfGZpbmlzaHxpbnN0YWxsfGxpbmt8 cmVsaW5rfHVuaW5zdGFsbCkgOzsKCiAgIyBDYXRjaCBhbnl0aGluZyBlbHNl IGFzIGFuIGVycm9yCiAgKikgZnVuY19lcnJvciAiaW52YWxpZCBhcmd1bWVu dCBmb3IgJG9wdCIKICAgICBleGl0X2NtZD1leGl0CiAgICAgYnJlYWsKICAg ICA7Owplc2FjCgkJCXNoaWZ0CgkJCTs7CiAgICAgIC0tbm8tc2lsZW50fC0t bm8tcXVpZXQpCgkJCW9wdF9zaWxlbnQ9ZmFsc2UKcHJlc2VydmVfYXJncys9 IiAkb3B0IgoJCQk7OwogICAgICAtLW5vLXdhcm5pbmd8LS1uby13YXJuKQoJ CQlvcHRfd2FybmluZz1mYWxzZQpwcmVzZXJ2ZV9hcmdzKz0iICRvcHQiCgkJ CTs7CiAgICAgIC0tbm8tdmVyYm9zZSkKCQkJb3B0X3ZlcmJvc2U9ZmFsc2UK cHJlc2VydmVfYXJncys9IiAkb3B0IgoJCQk7OwogICAgICAtLXNpbGVudHwt LXF1aWV0KQoJCQlvcHRfc2lsZW50PToKcHJlc2VydmVfYXJncys9IiAkb3B0 IgogICAgICAgIG9wdF92ZXJib3NlPWZhbHNlCgkJCTs7CiAgICAgIC0tdmVy Ym9zZXwtdikKCQkJb3B0X3ZlcmJvc2U9OgpwcmVzZXJ2ZV9hcmdzKz0iICRv cHQiCm9wdF9zaWxlbnQ9ZmFsc2UKCQkJOzsKICAgICAgLS10YWcpCgkJCXRl c3QgJCMgPSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgJG9wdCAmJiBicmVhawoJ CQlvcHRhcmc9IiQxIgoJCQlvcHRfdGFnPSIkb3B0YXJnIgpwcmVzZXJ2ZV9h cmdzKz0iICRvcHQgJG9wdGFyZyIKZnVuY19lbmFibGVfdGFnICIkb3B0YXJn IgoJCQlzaGlmdAoJCQk7OwoKICAgICAgLVw/fC1oKQkJZnVuY191c2FnZQkJ CQk7OwogICAgICAtLWhlbHApCQlmdW5jX2hlbHAJCQkJOzsKICAgICAgLS12 ZXJzaW9uKQlmdW5jX3ZlcnNpb24JCQkJOzsKCiAgICAgICMgU2VwYXJhdGUg b3B0YXJncyB0byBsb25nIG9wdGlvbnM6CiAgICAgIC0tKj0qKQoJCQlmdW5j X3NwbGl0X2xvbmdfb3B0ICIkb3B0IgoJCQlzZXQgZHVtbXkgIiRmdW5jX3Nw bGl0X2xvbmdfb3B0X25hbWUiICIkZnVuY19zcGxpdF9sb25nX29wdF9hcmci ICR7MSsiJEAifQoJCQlzaGlmdAoJCQk7OwoKICAgICAgIyBTZXBhcmF0ZSBu b24tYXJndW1lbnQgc2hvcnQgb3B0aW9uczoKICAgICAgLVw/KnwtaCp8LW4q fC12KikKCQkJZnVuY19zcGxpdF9zaG9ydF9vcHQgIiRvcHQiCgkJCXNldCBk dW1teSAiJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWUiICItJGZ1bmNfc3Bs aXRfc2hvcnRfb3B0X2FyZyIgJHsxKyIkQCJ9CgkJCXNoaWZ0CgkJCTs7Cgog ICAgICAtLSkJCWJyZWFrCQkJCQk7OwogICAgICAtKikJCWZ1bmNfZmF0YWxf aGVscCAidW5yZWNvZ25pemVkIG9wdGlvbiBcYCRvcHQnIiA7OwogICAgICAq KQkJc2V0IGR1bW15ICIkb3B0IiAkezErIiRAIn07CXNoaWZ0OyBicmVhayAg OzsKICAgIGVzYWMKICBkb25lCgogICMgVmFsaWRhdGUgb3B0aW9uczoKCiAg IyBzYXZlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQKICBpZiB0ZXN0ICIk IyIgLWd0IDA7IHRoZW4KICAgIG5vbm9wdD0iJG9wdCIKICAgIHNoaWZ0CiAg ZmkKCiAgIyBwcmVzZXJ2ZSAtLWRlYnVnCiAgdGVzdCAiJG9wdF9kZWJ1ZyIg PSA6IHx8IHByZXNlcnZlX2FyZ3MrPSIgLS1kZWJ1ZyIKCiAgY2FzZSAkaG9z dCBpbgogICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2Nj KikKICAgICAgIyBkb24ndCBlbGltaW5hdGUgZHVwbGljYXRpb25zIGluICRw b3N0ZGVwcyBhbmQgJHByZWRlcHMKICAgICAgb3B0X2R1cGxpY2F0ZV9jb21w aWxlcl9nZW5lcmF0ZWRfZGVwcz06CiAgICAgIDs7CiAgICAqKQogICAgICBv cHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPSRvcHRfcHJl c2VydmVfZHVwX2RlcHMKICAgICAgOzsKICBlc2FjCgogICRvcHRfaGVscCB8 fCB7CiAgICAjIFNhbml0eSBjaGVja3MgZmlyc3Q6CiAgICBmdW5jX2NoZWNr X3ZlcnNpb25fbWF0Y2gKCiAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9s aWJzIiAhPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiAhPSB5ZXM7 IHRoZW4KICAgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJub3QgY29u ZmlndXJlZCB0byBidWlsZCBhbnkga2luZCBvZiBsaWJyYXJ5IgogICAgZmkK CiAgICAjIERhcndpbiBzdWNrcwogICAgZXZhbCBzdGRfc2hyZXh0PVwiJHNo cmV4dF9jbWRzXCIKCiAgICAjIE9ubHkgZXhlY3V0ZSBtb2RlIGlzIGFsbG93 ZWQgdG8gaGF2ZSAtZGxvcGVuIGZsYWdzLgogICAgaWYgdGVzdCAtbiAiJG9w dF9kbG9wZW4iICYmIHRlc3QgIiRvcHRfbW9kZSIgIT0gZXhlY3V0ZTsgdGhl bgogICAgICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRs b3BlbiciCiAgICAgICRFQ0hPICIkaGVscCIgMT4mMgogICAgICBleGl0ICRF WElUX0ZBSUxVUkUKICAgIGZpCgogICAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVz c2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgogICAgZ2VuZXJpY19oZWxw PSIkaGVscCIKICAgIGhlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAgLS1t b2RlPSRvcHRfbW9kZScgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgogIH0KCgog ICMgQmFpbCBpZiB0aGUgb3B0aW9ucyB3ZXJlIHNjcmV3ZWQKICAkZXhpdF9j bWQgJEVYSVRfRkFJTFVSRQp9CgoKCgojIyAtLS0tLS0tLS0tLSAjIwojIyAg ICBNYWluLiAgICAjIwojIyAtLS0tLS0tLS0tLSAjIwoKIyBmdW5jX2xhbGli X3AgZmlsZQojIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEnIGxp YnJhcnkgb3IgYC5sbycgb2JqZWN0IGZpbGUuCiMgVGhpcyBmdW5jdGlvbiBp cyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBm bHVzaCBvdXQKIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KZnVuY19sYWxpYl9w ICgpCnsKICAgIHRlc3QgLWYgIiQxIiAmJgogICAgICAkU0VEIC1lIDRxICIk MSIgMj4vZGV2L251bGwgXAogICAgICAgIHwgJEdSRVAgIl4jIEdlbmVyYXRl ZCBieSAuKiRQQUNLQUdFIiA+IC9kZXYvbnVsbCAyPiYxCn0KCiMgZnVuY19s YWxpYl91bnNhZmVfcCBmaWxlCiMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRv b2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KIyBUaGlz IGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIHNhbWUgY2hlY2sgYXMgZnVuY19s YWxpYl9wIHdpdGhvdXQKIyByZXNvcnRpbmcgdG8gZXh0ZXJuYWwgcHJvZ3Jh bXMuICBUbyB0aGlzIGVuZCwgaXQgcmVkaXJlY3RzIHN0ZGluIGFuZAojIGNs b3NlcyBpdCBhZnRlcndhcmRzLCB3aXRob3V0IHNhdmluZyB0aGUgb3JpZ2lu YWwgZmlsZSBkZXNjcmlwdG9yLgojIEFzIGEgc2FmZXR5IG1lYXN1cmUsIHVz ZSBpdCBvbmx5IHdoZXJlIGEgbmVnYXRpdmUgcmVzdWx0IHdvdWxkIGJlCiMg ZmF0YWwgYW55d2F5LiAgV29ya3MgaWYgYGZpbGUnIGRvZXMgbm90IGV4aXN0 LgpmdW5jX2xhbGliX3Vuc2FmZV9wICgpCnsKICAgIGxhbGliX3A9bm8KICAg IGlmIHRlc3QgLWYgIiQxIiAmJiB0ZXN0IC1yICIkMSIgJiYgZXhlYyA1PCYw IDwiJDEiOyB0aGVuCglmb3IgbGFsaWJfcF9sIGluIDEgMiAzIDQKCWRvCgkg ICAgcmVhZCBsYWxpYl9wX2xpbmUKCSAgICBjYXNlICIkbGFsaWJfcF9saW5l IiBpbgoJCVwjXCBHZW5lcmF0ZWRcIGJ5XCAqJFBBQ0tBR0UqICkgbGFsaWJf cD15ZXM7IGJyZWFrOzsKCSAgICBlc2FjCglkb25lCglleGVjIDA8JjUgNTwm LQogICAgZmkKICAgIHRlc3QgIiRsYWxpYl9wIiA9IHllcwp9CgojIGZ1bmNf bHR3cmFwcGVyX3NjcmlwdF9wIGZpbGUKIyBUcnVlIGlmZiBGSUxFIGlzIGEg bGlidG9vbCB3cmFwcGVyIHNjcmlwdAojIFRoaXMgZnVuY3Rpb24gaXMgb25s eSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2gg b3V0CiMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCmZ1bmNfbHR3cmFwcGVyX3Nj cmlwdF9wICgpCnsKICAgIGZ1bmNfbGFsaWJfcCAiJDEiCn0KCiMgZnVuY19s dHdyYXBwZXJfZXhlY3V0YWJsZV9wIGZpbGUKIyBUcnVlIGlmZiBGSUxFIGlz IGEgbGlidG9vbCB3cmFwcGVyIGV4ZWN1dGFibGUKIyBUaGlzIGZ1bmN0aW9u IGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5 IGZsdXNoIG91dAojIGRldGVybWluZWQgaW1wb3N0ZXJzLgpmdW5jX2x0d3Jh cHBlcl9leGVjdXRhYmxlX3AgKCkKewogICAgZnVuY19sdHdyYXBwZXJfZXhl Y19zdWZmaXg9CiAgICBjYXNlICQxIGluCiAgICAqLmV4ZSkgOzsKICAgICop IGZ1bmNfbHR3cmFwcGVyX2V4ZWNfc3VmZml4PS5leGUgOzsKICAgIGVzYWMK ICAgICRHUkVQICIkbWFnaWNfZXhlIiAiJDEkZnVuY19sdHdyYXBwZXJfZXhl Y19zdWZmaXgiID4vZGV2L251bGwgMj4mMQp9CgojIGZ1bmNfbHR3cmFwcGVy X3NjcmlwdG5hbWUgZmlsZQojIEFzc3VtZXMgZmlsZSBpcyBhbiBsdHdyYXBw ZXJfZXhlY3V0YWJsZQojIHVzZXMgJGZpbGUgdG8gZGV0ZXJtaW5lIHRoZSBh cHByb3ByaWF0ZSBmaWxlbmFtZSBmb3IgYQojIHRlbXBvcmFyeSBsdHdyYXBw ZXJfc2NyaXB0LgpmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICgpCnsKICAg IGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIKICAgIGZ1 bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0 IgogICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiRmdW5j X2Rpcm5hbWVfcmVzdWx0LyRvYmpkaXIvJHtmdW5jX3N0cmlwbmFtZV9yZXN1 bHR9X2x0c2h3cmFwcGVyIgp9CgojIGZ1bmNfbHR3cmFwcGVyX3AgZmlsZQoj IFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9y IHdyYXBwZXIgZXhlY3V0YWJsZQojIFRoaXMgZnVuY3Rpb24gaXMgb25seSBh IGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0 CiMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCmZ1bmNfbHR3cmFwcGVyX3AgKCkK ewogICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiQxIiB8fCBmdW5jX2x0 d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIgp9CgoKIyBmdW5jX2V4ZWN1dGVf Y21kcyBjb21tYW5kcyBmYWlsX2NtZAojIEV4ZWN1dGUgdGlsZGUtZGVsaW1p dGVkIENPTU1BTkRTLgojIElmIEZBSUxfQ01EIGlzIGdpdmVuLCBldmFsIHRo YXQgdXBvbiBmYWlsdXJlLgojIEZBSUxfQ01EIG1heSByZWFkLWFjY2VzcyB0 aGUgY3VycmVudCBjb21tYW5kIGluIHZhcmlhYmxlIENNRCEKZnVuY19leGVj dXRlX2NtZHMgKCkKewogICAgJG9wdF9kZWJ1ZwogICAgc2F2ZV9pZnM9JElG UzsgSUZTPSd+JwogICAgZm9yIGNtZCBpbiAkMTsgZG8KICAgICAgSUZTPSRz YXZlX2lmcwogICAgICBldmFsIGNtZD1cIiRjbWRcIgogICAgICBmdW5jX3No b3dfZXZhbCAiJGNtZCIgIiR7Mi06fSIKICAgIGRvbmUKICAgIElGUz0kc2F2 ZV9pZnMKfQoKCiMgZnVuY19zb3VyY2UgZmlsZQojIFNvdXJjZSBGSUxFLCBh ZGRpbmcgZGlyZWN0b3J5IGNvbXBvbmVudCBpZiBuZWNlc3NhcnkuCiMgTm90 ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRv IGFwcGVuZCBhIGRvdCB0bwojIEZJTEUgZXZlbiBpZiBib3RoIEZJTEUgYW5k IEZJTEUuZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBwZW5kLS5leGUKIyBiZWhh dmlvciBoYXBwZW5zIG9ubHkgZm9yIGV4ZWMoMyksIG5vdCBmb3Igb3Blbigy KSEgIEFsc28sIHNvdXJjaW5nCiMgYEZJTEUuJyBkb2VzIG5vdCB3b3JrIG9u IGN5Z3dpbiBtYW5hZ2VkIG1vdW50cy4KZnVuY19zb3VyY2UgKCkKewogICAg JG9wdF9kZWJ1ZwogICAgY2FzZSAkMSBpbgogICAgKi8qIHwgKlxcKikJLiAi JDEiIDs7CiAgICAqKQkJLiAiLi8kMSIgOzsKICAgIGVzYWMKfQoKCiMgZnVu Y19yZXNvbHZlX3N5c3Jvb3QgUEFUSAojIFJlcGxhY2UgYSBsZWFkaW5nID0g aW4gUEFUSCB3aXRoIGEgc3lzcm9vdC4gIFN0b3JlIHRoZSByZXN1bHQgaW50 bwojIGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdApmdW5jX3Jlc29sdmVf c3lzcm9vdCAoKQp7CiAgZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0PSQx CiAgY2FzZSAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IGluCiAgPSop CiAgICBmdW5jX3N0cmlwbmFtZSAnPScgJycgIiRmdW5jX3Jlc29sdmVfc3lz cm9vdF9yZXN1bHQiCiAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQ9 JGx0X3N5c3Jvb3QkZnVuY19zdHJpcG5hbWVfcmVzdWx0CiAgICA7OwogIGVz YWMKfQoKIyBmdW5jX3JlcGxhY2Vfc3lzcm9vdCBQQVRICiMgSWYgUEFUSCBi ZWdpbnMgd2l0aCB0aGUgc3lzcm9vdCwgcmVwbGFjZSBpdCB3aXRoID0gYW5k CiMgc3RvcmUgdGhlIHJlc3VsdCBpbnRvIGZ1bmNfcmVwbGFjZV9zeXNyb290 X3Jlc3VsdC4KZnVuY19yZXBsYWNlX3N5c3Jvb3QgKCkKewogIGNhc2UgIiRs dF9zeXNyb290OiQxIiBpbgogID8qOiIkbHRfc3lzcm9vdCIqKQogICAgZnVu Y19zdHJpcG5hbWUgIiRsdF9zeXNyb290IiAnJyAiJDEiCiAgICBmdW5jX3Jl cGxhY2Vfc3lzcm9vdF9yZXN1bHQ9Ij0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 IgogICAgOzsKICAqKQogICAgIyBJbmNsdWRpbmcgbm8gc3lzcm9vdC4KICAg IGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdD0kMQogICAgOzsKICBlc2Fj Cn0KCiMgZnVuY19pbmZlcl90YWcgYXJnCiMgSW5mZXIgdGFnZ2VkIGNvbmZp Z3VyYXRpb24gdG8gdXNlIGlmIGFueSBhcmUgYXZhaWxhYmxlIGFuZAojIGlm IG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFnIiBjb21tYW5kIGxp bmUgb3B0aW9uLgojIE9ubHkgYXR0ZW1wdCB0aGlzIGlmIHRoZSBjb21waWxl ciBpbiB0aGUgYmFzZSBjb21waWxlCiMgY29tbWFuZCBkb2Vzbid0IG1hdGNo IHRoZSBkZWZhdWx0IGNvbXBpbGVyLgojIGFyZyBpcyB1c3VhbGx5IG9mIHRo ZSBmb3JtICdnY2MgLi4uJwpmdW5jX2luZmVyX3RhZyAoKQp7CiAgICAkb3B0 X2RlYnVnCiAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRl c3QgLXogIiR0YWduYW1lIjsgdGhlbgogICAgICBDQ19xdW90ZWQ9CiAgICAg IGZvciBhcmcgaW4gJENDOyBkbwoJZnVuY19hcHBlbmRfcXVvdGVkIENDX3F1 b3RlZCAiJGFyZyIKICAgICAgZG9uZQogICAgICBDQ19leHBhbmRlZD1gZnVu Y19lY2hvX2FsbCAkQ0NgCiAgICAgIENDX3F1b3RlZF9leHBhbmRlZD1gZnVu Y19lY2hvX2FsbCAkQ0NfcXVvdGVkYAogICAgICBjYXNlICRAIGluCiAgICAg ICMgQmxhbmtzIGluIHRoZSBjb21tYW5kIG1heSBoYXZlIGJlZW4gc3RyaXBw ZWQgYnkgdGhlIGNhbGxpbmcgc2hlbGwsCiAgICAgICMgYnV0IG5vdCBmcm9t IHRoZSBDQyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3VyZSB3 YXMgcnVuLgogICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiICRDQ19leHBh bmRlZCAiKiB8ICIkQ0NfZXhwYW5kZWQgIiogfCBcCiAgICAgICIgJENDX3F1 b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiICRDQ19xdW90ZWRfZXhwYW5k ZWQgIiogfCAiJENDX3F1b3RlZF9leHBhbmRlZCAiKikgOzsKICAgICAgIyBC bGFua3MgYXQgdGhlIHN0YXJ0IG9mICRiYXNlX2NvbXBpbGUgd2lsbCBjYXVz ZSB0aGlzIHRvIGZhaWwKICAgICAgIyBpZiB3ZSBkb24ndCBjaGVjayBmb3Ig dGhlbSBhcyB3ZWxsLgogICAgICAqKQoJZm9yIHogaW4gJGF2YWlsYWJsZV90 YWdzOyBkbwoJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFH IENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVu CgkgICAgIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4KCSAgICBldmFs ICJgJHtTRUR9IC1uIC1lICcvXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENP TkZJRzogJyR6JyQvLC9eIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzog JyR6JyQvcCcgPCAkcHJvZ3BhdGhgIgoJICAgIENDX3F1b3RlZD0KCSAgICBm b3IgYXJnIGluICRDQzsgZG8KCSAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3Mg Y29udGFpbmluZyBvdGhlciBzaGVsbCBtZXRhY2hhcmFjdGVycy4KCSAgICAg IGZ1bmNfYXBwZW5kX3F1b3RlZCBDQ19xdW90ZWQgIiRhcmciCgkgICAgZG9u ZQoJICAgIENDX2V4cGFuZGVkPWBmdW5jX2VjaG9fYWxsICRDQ2AKCSAgICBD Q19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAK CSAgICBjYXNlICIkQCAiIGluCgkgICAgIiAkQ0MgIiogfCAiJENDICIqIHwg IiAkQ0NfZXhwYW5kZWQgIiogfCAiJENDX2V4cGFuZGVkICIqIHwgXAoJICAg ICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiICRDQ19xdW90 ZWRfZXhwYW5kZWQgIiogfCAiJENDX3F1b3RlZF9leHBhbmRlZCAiKikKCSAg ICAgICMgVGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUgY29tbWFu ZCBtYXRjaGVzCgkgICAgICAjIHRoZSBvbmUgaW4gdGhlIHRhZ2dlZCBjb25m aWd1cmF0aW9uLgoJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2Vk IGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KCSAgICAgIHRhZ25hbWU9JHoKCSAg ICAgIGJyZWFrCgkgICAgICA7OwoJICAgIGVzYWMKCSAgZmkKCWRvbmUKCSMg SWYgJHRhZ25hbWUgc3RpbGwgaXNuJ3Qgc2V0LCB0aGVuIG5vIHRhZ2dlZCBj b25maWd1cmF0aW9uCgkjIHdhcyBmb3VuZCBhbmQgbGV0IHRoZSB1c2VyIGtu b3cgdGhhdCB0aGUgIi0tdGFnIiBjb21tYW5kCgkjIGxpbmUgb3B0aW9uIG11 c3QgYmUgdXNlZC4KCWlmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgoJICBm dW5jX2VjaG8gInVuYWJsZSB0byBpbmZlciB0YWdnZWQgY29uZmlndXJhdGlv biIKCSAgZnVuY19mYXRhbF9lcnJvciAic3BlY2lmeSBhIHRhZyB3aXRoIFxg LS10YWcnIgojCWVsc2UKIwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgJHRhZ25h bWUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCglmaQoJOzsKICAgICAgZXNhYwog ICAgZmkKfQoKCgojIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qgb3V0cHV0 X25hbWUgcGljX25hbWUgbm9ucGljX25hbWUKIyBDcmVhdGUgYSBsaWJ0b29s IG9iamVjdCBmaWxlIChhbmFsb2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKIyBi dXQgZG9uJ3QgY3JlYXRlIGl0IGlmIHdlJ3JlIGRvaW5nIGEgZHJ5IHJ1bi4K ZnVuY193cml0ZV9saWJ0b29sX29iamVjdCAoKQp7CiAgICB3cml0ZV9saWJv Ymo9JHsxfQogICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5 ZXM7IHRoZW4KICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJwogICAgZWxzZQog ICAgICB3cml0ZV9sb2JqPW5vbmUKICAgIGZpCgogICAgaWYgdGVzdCAiJGJ1 aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgogICAgICB3cml0ZV9vbGRvYmo9 XCckezN9XCcKICAgIGVsc2UKICAgICAgd3JpdGVfb2xkb2JqPW5vbmUKICAg IGZpCgogICAgJG9wdF9kcnlfcnVuIHx8IHsKICAgICAgY2F0ID4ke3dyaXRl X2xpYm9ian1UIDw8RU9GCiMgJHdyaXRlX2xpYm9iaiAtIGEgbGlidG9vbCBv YmplY3QgZmlsZQojIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNL QUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KIwojIFBsZWFzZSBETyBOT1QgZGVs ZXRlIHRoaXMgZmlsZSEKIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcg dGhlIGxpYnJhcnkuCgojIE5hbWUgb2YgdGhlIFBJQyBvYmplY3QuCnBpY19v YmplY3Q9JHdyaXRlX2xvYmoKCiMgTmFtZSBvZiB0aGUgbm9uLVBJQyBvYmpl Y3QKbm9uX3BpY19vYmplY3Q9JHdyaXRlX29sZG9iagoKRU9GCiAgICAgICRN ViAiJHt3cml0ZV9saWJvYmp9VCIgIiR7d3JpdGVfbGlib2JqfSIKICAgIH0K fQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiMgRklMRSBOQU1FIEFORCBQQVRIIENPTlZFUlNJT04gSEVM UEVSIEZVTkNUSU9OUyAjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIGZ1bmNfY29udmVydF9jb3JlX2Zp bGVfd2luZV90b193MzIgQVJHCiMgSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkg ZmlsZSBuYW1lIGNvbnZlcnNpb24gZnVuY3Rpb25zIHdoZW4gJGJ1aWxkIGlz ICpuaXgsCiMgYW5kICRob3N0IGlzIG1pbmd3LCBjeWd3aW4sIG9yIHNvbWUg b3RoZXIgdzMyIGVudmlyb25tZW50LiBSZWxpZXMgb24gYQojIGNvcnJlY3Rs eSBjb25maWd1cmVkIHdpbmUgZW52aXJvbm1lbnQgYXZhaWxhYmxlLCB3aXRo IHRoZSB3aW5lcGF0aCBwcm9ncmFtCiMgaW4gJGJ1aWxkJ3MgJFBBVEguCiMK IyBBUkcgaXMgdGhlICRidWlsZCBmaWxlIG5hbWUgdG8gYmUgY29udmVydGVk IHRvIHczMiBmb3JtYXQuCiMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiAkZnVu Y19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQsIGFuZCB3 aWxsCiMgYmUgZW1wdHkgb24gZXJyb3IgKG9yIHdoZW4gQVJHIGlzIGVtcHR5 KQpmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyICgpCnsKICAk b3B0X2RlYnVnCiAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3cz Ml9yZXN1bHQ9IiQxIgogIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgogICAgIyBV bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2VzIG5vdCBleGl0IHdpdGggYSBu b24temVybyBlcnJvciBjb2RlLCBzbyB3ZQogICAgIyBhcmUgZm9yY2VkIHRv IGNoZWNrIHRoZSBjb250ZW50cyBvZiBzdGRvdXQuIE9uIHRoZSBvdGhlciBo YW5kLCBpZiB0aGUKICAgICMgY29tbWFuZCBpcyBub3QgZm91bmQsIHRoZSBz aGVsbCB3aWxsIHNldCBhbiBleGl0IGNvZGUgb2YgMTI3IGFuZCBwcmludAog ICAgIyAqYW4gZXJyb3IgbWVzc2FnZSogdG8gc3Rkb3V0LiBTbyB3ZSBtdXN0 IGNoZWNrIGZvciBib3RoIGVycm9yIGNvZGUgb2YKICAgICMgemVybyBBTkQg bm9uLWVtcHR5IHN0ZG91dCwgd2hpY2ggZXhwbGFpbnMgdGhlIG9kZCBjb25z dHJ1Y3Rpb246CiAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9f dzMyX3RtcD1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVsbGAKICAgIGlm IHRlc3QgIiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfY29udmVydF9j b3JlX2ZpbGVfd2luZV90b193MzJfdG1wfSI7IHRoZW4KICAgICAgZnVuY19j b252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQ9YCRFQ0hPICIk ZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl90bXAiIHwKICAg ICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCiAg ICBlbHNlCiAgICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193 MzJfcmVzdWx0PQogICAgZmkKICBmaQp9CiMgZW5kOiBmdW5jX2NvbnZlcnRf Y29yZV9maWxlX3dpbmVfdG9fdzMyCgoKIyBmdW5jX2NvbnZlcnRfY29yZV9w YXRoX3dpbmVfdG9fdzMyIEFSRwojIEhlbHBlciBmdW5jdGlvbiB1c2VkIGJ5 IHBhdGggY29udmVyc2lvbiBmdW5jdGlvbnMgd2hlbiAkYnVpbGQgaXMgKm5p eCwgYW5kCiMgJGhvc3QgaXMgbWluZ3csIGN5Z3dpbiwgb3Igc29tZSBvdGhl ciB3MzIgZW52aXJvbm1lbnQuIFJlbGllcyBvbiBhIGNvcnJlY3RseQojIGNv bmZpZ3VyZWQgd2luZSBlbnZpcm9ubWVudCBhdmFpbGFibGUsIHdpdGggdGhl IHdpbmVwYXRoIHByb2dyYW0gaW4gJGJ1aWxkJ3MKIyAkUEFUSC4gQXNzdW1l cyBBUkcgaGFzIG5vIGxlYWRpbmcgb3IgdHJhaWxpbmcgcGF0aCBzZXBhcmF0 b3IgY2hhcmFjdGVycy4KIwojIEFSRyBpcyBwYXRoIHRvIGJlIGNvbnZlcnRl ZCBmcm9tICRidWlsZCBmb3JtYXQgdG8gd2luMzIuCiMgUmVzdWx0IGlzIGF2 YWlsYWJsZSBpbiAkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3cz Ml9yZXN1bHQuCiMgVW5jb252ZXJ0aWJsZSBmaWxlIChkaXJlY3RvcnkpIG5h bWVzIGluIEFSRyBhcmUgc2tpcHBlZDsgaWYgbm8gZGlyZWN0b3J5IG5hbWVz CiMgYXJlIGNvbnZlcnRpYmxlLCB0aGVuIHRoZSByZXN1bHQgbWF5IGJlIGVt cHR5LgpmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyICgpCnsK ICAkb3B0X2RlYnVnCiAgIyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vz bid0IGNvbnZlcnQgcGF0aHMsIG9ubHkgZmlsZSBuYW1lcwogIGZ1bmNfY29u dmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0PSIiCiAgaWYgdGVz dCAtbiAiJDEiOyB0aGVuCiAgICBvbGRJRlM9JElGUwogICAgSUZTPToKICAg IGZvciBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX2YgaW4g JDE7IGRvCiAgICAgIElGUz0kb2xkSUZTCiAgICAgIGZ1bmNfY29udmVydF9j b3JlX2ZpbGVfd2luZV90b193MzIgIiRmdW5jX2NvbnZlcnRfY29yZV9wYXRo X3dpbmVfdG9fdzMyX2YiCiAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX2NvbnZl cnRfY29yZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdCIgOyB0aGVuCiAgICAg ICAgaWYgdGVzdCAteiAiJGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90 b193MzJfcmVzdWx0IjsgdGhlbgogICAgICAgICAgZnVuY19jb252ZXJ0X2Nv cmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29y ZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdCIKICAgICAgICBlbHNlCiAgICAg ICAgICBmdW5jX2FwcGVuZCBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVf dG9fdzMyX3Jlc3VsdCAiOyRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVf dG9fdzMyX3Jlc3VsdCIKICAgICAgICBmaQogICAgICBmaQogICAgZG9uZQog ICAgSUZTPSRvbGRJRlMKICBmaQp9CiMgZW5kOiBmdW5jX2NvbnZlcnRfY29y ZV9wYXRoX3dpbmVfdG9fdzMyCgoKIyBmdW5jX2N5Z3BhdGggQVJHUy4uLgoj IFdyYXBwZXIgYXJvdW5kIGNhbGxpbmcgdGhlIGN5Z3BhdGggcHJvZ3JhbSB2 aWEgTFRfQ1lHUEFUSC4gVGhpcyBpcyB1c2VkIHdoZW4KIyB3aGVuICgxKSAk YnVpbGQgaXMgKm5peCBhbmQgQ3lnd2luIGlzIGhvc3RlZCB2aWEgYSB3aW5l IGVudmlyb25tZW50OyBvciAoMikKIyAkYnVpbGQgaXMgTVNZUyBhbmQgJGhv c3QgaXMgQ3lnd2luLCBvciAoMykgJGJ1aWxkIGlzIEN5Z3dpbi4gSW4gY2Fz ZSAoMSkgb3IKIyAoMiksIHJldHVybnMgdGhlIEN5Z3dpbiBmaWxlIG5hbWUg b3IgcGF0aCBpbiBmdW5jX2N5Z3BhdGhfcmVzdWx0IChpbnB1dAojIGZpbGUg bmFtZSBvciBwYXRoIGlzIGFzc3VtZWQgdG8gYmUgaW4gdzMyIGZvcm1hdCwg YXMgcHJldmlvdXNseSBjb252ZXJ0ZWQKIyBmcm9tICRidWlsZCdzICpuaXgg b3IgTVNZUyBmb3JtYXQpLiBJbiBjYXNlICgzKSwgcmV0dXJucyB0aGUgdzMy IGZpbGUgbmFtZQojIG9yIHBhdGggaW4gZnVuY19jeWdwYXRoX3Jlc3VsdCAo aW5wdXQgZmlsZSBuYW1lIG9yIHBhdGggaXMgYXNzdW1lZCB0byBiZSBpbgoj IEN5Z3dpbiBmb3JtYXQpLiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBvbiBl cnJvci4KIwojIEFSR1MgYXJlIHBhc3NlZCB0byBjeWdwYXRoLCB3aXRoIHRo ZSBsYXN0IG9uZSBiZWluZyB0aGUgZmlsZSBuYW1lIG9yIHBhdGggdG8KIyBi ZSBjb252ZXJ0ZWQuCiMKIyBTcGVjaWZ5IHRoZSBhYnNvbHV0ZSAqbml4IChv ciB3MzIpIG5hbWUgdG8gY3lncGF0aCBpbiB0aGUgTFRfQ1lHUEFUSAojIGVu dmlyb25tZW50IHZhcmlhYmxlOyBkbyBub3QgcHV0IGl0IGluICRQQVRILgpm dW5jX2N5Z3BhdGggKCkKewogICRvcHRfZGVidWcKICBpZiB0ZXN0IC1uICIk TFRfQ1lHUEFUSCIgJiYgdGVzdCAtZiAiJExUX0NZR1BBVEgiOyB0aGVuCiAg ICBmdW5jX2N5Z3BhdGhfcmVzdWx0PWAkTFRfQ1lHUEFUSCAiJEAiIDI+L2Rl di9udWxsYAogICAgaWYgdGVzdCAiJD8iIC1uZSAwOyB0aGVuCiAgICAgICMg b24gZmFpbHVyZSwgZW5zdXJlIHJlc3VsdCBpcyBlbXB0eQogICAgICBmdW5j X2N5Z3BhdGhfcmVzdWx0PQogICAgZmkKICBlbHNlCiAgICBmdW5jX2N5Z3Bh dGhfcmVzdWx0PQogICAgZnVuY19lcnJvciAiTFRfQ1lHUEFUSCBpcyBlbXB0 eSBvciBzcGVjaWZpZXMgbm9uLWV4aXN0ZW50IGZpbGU6IFxgJExUX0NZR1BB VEgnIgogIGZpCn0KI2VuZDogZnVuY19jeWdwYXRoCgoKIyBmdW5jX2NvbnZl cnRfY29yZV9tc3lzX3RvX3czMiBBUkcKIyBDb252ZXJ0IGZpbGUgbmFtZSBv ciBwYXRoIEFSRyBmcm9tIE1TWVMgZm9ybWF0IHRvIHczMiBmb3JtYXQuICBS ZXR1cm4KIyByZXN1bHQgaW4gZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193 MzJfcmVzdWx0LgpmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiAoKQp7 CiAgJG9wdF9kZWJ1ZwogICMgYXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2Vz IHRvIHJlc3VsdAogIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jl c3VsdD1gKCBjbWQgLy9jIGVjaG8gIiQxIiApIDI+L2Rldi9udWxsIHwKICAg ICRTRUQgLWUgJ3MvWyBdKiQvLycgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3Ns YXNoaWZ5ImAKfQojZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3cz MgoKCiMgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgQVJHMSBBUkcyCiMgVmVy aWZ5IHRoYXQgQVJHMSAoYSBmaWxlIG5hbWUgaW4gJGJ1aWxkIGZvcm1hdCkg d2FzIGNvbnZlcnRlZCB0byAkaG9zdAojIGZvcm1hdCBpbiBBUkcyLiBPdGhl cndpc2UsIGVtaXQgYW4gZXJyb3IgbWVzc2FnZSwgYnV0IGNvbnRpbnVlIChy ZXNldHRpbmcKIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQgdG8gQVJHMSku CmZ1bmNfY29udmVydF9maWxlX2NoZWNrICgpCnsKICAkb3B0X2RlYnVnCiAg aWYgdGVzdCAteiAiJDIiICYmIHRlc3QgLW4gIiQxIiA7IHRoZW4KICAgIGZ1 bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBmaWxlIG5hbWUg Y29ycmVzcG9uZGluZyB0byIKICAgIGZ1bmNfZXJyb3IgIiAgXGAkMSciCiAg ICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhl Y3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKICAgICMgRmFsbGJhY2s6CiAgICBm dW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgogIGZpCn0KIyBlbmQgZnVu Y19jb252ZXJ0X2ZpbGVfY2hlY2sKCgojIGZ1bmNfY29udmVydF9wYXRoX2No ZWNrIEZST01fUEFUSFNFUCBUT19QQVRIU0VQIEZST01fUEFUSCBUT19QQVRI CiMgVmVyaWZ5IHRoYXQgRlJPTV9QQVRIIChhIHBhdGggaW4gJGJ1aWxkIGZv cm1hdCkgd2FzIGNvbnZlcnRlZCB0byAkaG9zdAojIGZvcm1hdCBpbiBUT19Q QVRILiBPdGhlcndpc2UsIGVtaXQgYW4gZXJyb3IgbWVzc2FnZSwgYnV0IGNv bnRpbnVlLCByZXNldHRpbmcKIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQg dG8gYSBzaW1wbGlzdGljIGZhbGxiYWNrIHZhbHVlIChzZWUgYmVsb3cpLgpm dW5jX2NvbnZlcnRfcGF0aF9jaGVjayAoKQp7CiAgJG9wdF9kZWJ1ZwogIGlm IHRlc3QgLXogIiQ0IiAmJiB0ZXN0IC1uICIkMyI7IHRoZW4KICAgIGZ1bmNf ZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGhvc3QgcGF0aCBjb3Jy ZXNwb25kaW5nIHRvIgogICAgZnVuY19lcnJvciAiICBcYCQzJyIKICAgIGZ1 bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRh YmxlcyBtYXkgbm90IHdvcmsuIgogICAgIyBGYWxsYmFjay4gIFRoaXMgaXMg YSBkZWxpYmVyYXRlbHkgc2ltcGxpc3RpYyAiY29udmVyc2lvbiIgYW5kCiAg ICAjIHNob3VsZCBub3QgYmUgImltcHJvdmVkIi4gIFNlZSBsaWJ0b29sLmlu Zm8uCiAgICBpZiB0ZXN0ICJ4JDEiICE9ICJ4JDIiOyB0aGVuCiAgICAgIGx0 X3JlcGxhY2VfcGF0aHNlcF9jaGFycz0ic3wkMXwkMnxnIgogICAgICBmdW5j X3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiQzIiB8CiAgICAgICAgJFNF RCAtZSAiJGx0X3JlcGxhY2VfcGF0aHNlcF9jaGFycyJgCiAgICBlbHNlCiAg ICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDMiCiAgICBmaQogIGZp Cn0KIyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sKCgojIGZ1bmNfY29u dmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCBGUk9OVFBBVCBCQUNLUEFU IFJFUEwgT1JJRwojIE1vZGlmaWVzIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3Vs dCBieSBwcmVwZW5kaW5nIFJFUEwgaWYgT1JJRyBtYXRjaGVzIEZST05UUEFU CiMgYW5kIGFwcGVuZGluZyBSRVBMIGlmIE9SSUcgbWF0Y2hlcyBCQUNLUEFU LgpmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgKCkKewog ICRvcHRfZGVidWcKICBjYXNlICQ0IGluCiAgJDEgKSBmdW5jX3RvX2hvc3Rf cGF0aF9yZXN1bHQ9IiQzJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKICAg IDs7CiAgZXNhYwogIGNhc2UgJDQgaW4KICAkMiApIGZ1bmNfdG9faG9zdF9w YXRoX3Jlc3VsdCs9IiQzIgogICAgOzsKICBlc2FjCn0KIyBlbmQgZnVuY19j b252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwCgoKIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAkYnVp bGQgdG8gJGhvc3QgRklMRSBOQU1FIENPTlZFUlNJT04gRlVOQ1RJT05TICMK IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKIyBpbnZva2VkIHZpYSBgJHRvX2hvc3RfZmlsZV9jbWQgQVJHJwoj CiMgSW4gZWFjaCBjYXNlLCBBUkcgaXMgdGhlIHBhdGggdG8gYmUgY29udmVy dGVkIGZyb20gJGJ1aWxkIHRvICRob3N0IGZvcm1hdC4KIyBSZXN1bHQgd2ls bCBiZSBhdmFpbGFibGUgaW4gJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4K CgojIGZ1bmNfdG9faG9zdF9maWxlIEFSRwojIENvbnZlcnRzIHRoZSBmaWxl IG5hbWUgQVJHIGZyb20gJGJ1aWxkIGZvcm1hdCB0byAkaG9zdCBmb3JtYXQu IFJldHVybiByZXN1bHQKIyBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQu CmZ1bmNfdG9faG9zdF9maWxlICgpCnsKICAkb3B0X2RlYnVnCiAgJHRvX2hv c3RfZmlsZV9jbWQgIiQxIgp9CiMgZW5kIGZ1bmNfdG9faG9zdF9maWxlCgoK IyBmdW5jX3RvX3Rvb2xfZmlsZSBBUkcgTEFaWQojIGNvbnZlcnRzIHRoZSBm aWxlIG5hbWUgQVJHIGZyb20gJGJ1aWxkIGZvcm1hdCB0byB0b29sY2hhaW4g Zm9ybWF0LiBSZXR1cm4KIyByZXN1bHQgaW4gZnVuY190b190b29sX2ZpbGVf cmVzdWx0LiAgSWYgdGhlIGNvbnZlcnNpb24gaW4gdXNlIGlzIGxpc3RlZAoj IGluICh0aGUgY29tbWEgc2VwYXJhdGVkKSBMQVpZLCBubyBjb252ZXJzaW9u IHRha2VzIHBsYWNlLgpmdW5jX3RvX3Rvb2xfZmlsZSAoKQp7CiAgJG9wdF9k ZWJ1ZwogIGNhc2UgLCQyLCBpbgogICAgKiwiJHRvX3Rvb2xfZmlsZV9jbWQi LCopCiAgICAgIGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdD0kMQogICAgICA7 OwogICAgKikKICAgICAgJHRvX3Rvb2xfZmlsZV9jbWQgIiQxIgogICAgICBm dW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQ9JGZ1bmNfdG9faG9zdF9maWxlX3Jl c3VsdAogICAgICA7OwogIGVzYWMKfQojIGVuZCBmdW5jX3RvX3Rvb2xfZmls ZQoKCiMgZnVuY19jb252ZXJ0X2ZpbGVfbm9vcCBBUkcKIyBDb3B5IEFSRyB0 byBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCmZ1bmNfY29udmVydF9maWxl X25vb3AgKCkKewogIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCn0K IyBlbmQgZnVuY19jb252ZXJ0X2ZpbGVfbm9vcAoKCiMgZnVuY19jb252ZXJ0 X2ZpbGVfbXN5c190b193MzIgQVJHCiMgQ29udmVydCBmaWxlIG5hbWUgQVJH IGZyb20gKG1pbmd3KSBNU1lTIHRvIChtaW5ndykgdzMyIGZvcm1hdDsgYXV0 b21hdGljCiMgY29udmVyc2lvbiB0byB3MzIgaXMgbm90IGF2YWlsYWJsZSBp bnNpZGUgdGhlIGN3cmFwcGVyLiAgUmV0dXJucyByZXN1bHQgaW4KIyBmdW5j X3RvX2hvc3RfZmlsZV9yZXN1bHQuCmZ1bmNfY29udmVydF9maWxlX21zeXNf dG9fdzMyICgpCnsKICAkb3B0X2RlYnVnCiAgZnVuY190b19ob3N0X2ZpbGVf cmVzdWx0PSIkMSIKICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KICAgIGZ1bmNf Y29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkMSIKICAgIGZ1bmNfdG9faG9z dF9maWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMy X3Jlc3VsdCIKICBmaQogIGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIg IiRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQiCn0KIyBlbmQgZnVuY19jb252 ZXJ0X2ZpbGVfbXN5c190b193MzIKCgojIGZ1bmNfY29udmVydF9maWxlX2N5 Z3dpbl90b193MzIgQVJHCiMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20g Q3lnd2luIHRvIHczMiBmb3JtYXQuICBSZXR1cm5zIHJlc3VsdCBpbgojIGZ1 bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KZnVuY19jb252ZXJ0X2ZpbGVfY3ln d2luX3RvX3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNfdG9faG9zdF9m aWxlX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCiAgICAj IGJlY2F1c2UgJGJ1aWxkIGlzIGN5Z3dpbiwgd2UgY2FsbCAidGhlIiBjeWdw YXRoIGluICRQQVRIOyBubyBuZWVkIHRvIHVzZQogICAgIyBMVF9DWUdQQVRI IGluIHRoaXMgY2FzZS4KICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD1g Y3lncGF0aCAtbSAiJDEiYAogIGZpCiAgZnVuY19jb252ZXJ0X2ZpbGVfY2hl Y2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKfQojIGVuZCBm dW5jX2NvbnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMyCgoKIyBmdW5jX2NvbnZl cnRfZmlsZV9uaXhfdG9fdzMyIEFSRwojIENvbnZlcnQgZmlsZSBuYW1lIEFS RyBmcm9tICpuaXggdG8gdzMyIGZvcm1hdC4gIFJlcXVpcmVzIGEgd2luZSBl bnZpcm9ubWVudAojIGFuZCBhIHdvcmtpbmcgd2luZXBhdGguIFJldHVybnMg cmVzdWx0IGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KZnVuY19jb252 ZXJ0X2ZpbGVfbml4X3RvX3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1bmNf dG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEiOyB0 aGVuCiAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyICIk MSIKICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVy dF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgogIGZpCiAgZnVuY19j b252ZXJ0X2ZpbGVfY2hlY2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jl c3VsdCIKfQojIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyCgoK IyBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbiBBUkcKIyBDb252 ZXJ0IGZpbGUgbmFtZSBBUkcgZnJvbSBNU1lTIHRvIEN5Z3dpbiBmb3JtYXQu ICBSZXF1aXJlcyBMVF9DWUdQQVRIIHNldC4KIyBSZXR1cm5zIHJlc3VsdCBp biBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCmZ1bmNfY29udmVydF9maWxl X21zeXNfdG9fY3lnd2luICgpCnsKICAkb3B0X2RlYnVnCiAgZnVuY190b19o b3N0X2ZpbGVfcmVzdWx0PSIkMSIKICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4K ICAgIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkMSIKICAgIGZ1 bmNfY3lncGF0aCAtdSAiJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMy X3Jlc3VsdCIKICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNf Y3lncGF0aF9yZXN1bHQiCiAgZmkKICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVj ayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0Igp9CiMgZW5kIGZ1 bmNfY29udmVydF9maWxlX21zeXNfdG9fY3lnd2luCgoKIyBmdW5jX2NvbnZl cnRfZmlsZV9uaXhfdG9fY3lnd2luIEFSRwojIENvbnZlcnQgZmlsZSBuYW1l IEFSRyBmcm9tICpuaXggdG8gQ3lnd2luIGZvcm1hdC4gIFJlcXVpcmVzIEN5 Z3dpbiBpbnN0YWxsZWQKIyBpbiBhIHdpbmUgZW52aXJvbm1lbnQsIHdvcmtp bmcgd2luZXBhdGgsIGFuZCBMVF9DWUdQQVRIIHNldC4gIFJldHVybnMgcmVz dWx0CiMgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgpmdW5jX2NvbnZl cnRfZmlsZV9uaXhfdG9fY3lnd2luICgpCnsKICAkb3B0X2RlYnVnCiAgZnVu Y190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKICBpZiB0ZXN0IC1uICIkMSI7 IHRoZW4KICAgICMgY29udmVydCBmcm9tICpuaXggdG8gdzMyLCB0aGVuIHVz ZSBjeWdwYXRoIHRvIGNvbnZlcnQgZnJvbSB3MzIgdG8gY3lnd2luLgogICAg ZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMiAiJDEiCiAgICBm dW5jX2N5Z3BhdGggLXUgIiRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVf dG9fdzMyX3Jlc3VsdCIKICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0i JGZ1bmNfY3lncGF0aF9yZXN1bHQiCiAgZmkKICBmdW5jX2NvbnZlcnRfZmls ZV9jaGVjayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0Igp9CiMg ZW5kIGZ1bmNfY29udmVydF9maWxlX25peF90b19jeWd3aW4KCgojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAkYnVp bGQgdG8gJGhvc3QgUEFUSCBDT05WRVJTSU9OIEZVTkNUSU9OUyAjCiMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIGlu dm9rZWQgdmlhIGAkdG9faG9zdF9wYXRoX2NtZCBBUkcnCiMKIyBJbiBlYWNo IGNhc2UsIEFSRyBpcyB0aGUgcGF0aCB0byBiZSBjb252ZXJ0ZWQgZnJvbSAk YnVpbGQgdG8gJGhvc3QgZm9ybWF0LgojIFRoZSByZXN1bHQgd2lsbCBiZSBh dmFpbGFibGUgaW4gJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KIwojIFBh dGggc2VwYXJhdG9ycyBhcmUgYWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQg Zm9ybWF0IHRvICRob3N0IGZvcm1hdC4gIElmCiMgQVJHIGJlZ2lucyBvciBl bmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXIsIGl0IGlzIHBy ZXNlcnZlZCAoYnV0CiMgY29udmVydGVkIHRvICRob3N0IGZvcm1hdCkgb24g b3V0cHV0LgojCiMgQWxsIHBhdGggY29udmVyc2lvbiBmdW5jdGlvbnMgYXJl IG5hbWVkIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbjoKIyAgIGZp bGUgbmFtZSBjb252ZXJzaW9uIGZ1bmN0aW9uICAgIDogZnVuY19jb252ZXJ0 X2ZpbGVfWF90b19ZICgpCiMgICBwYXRoIGNvbnZlcnNpb24gZnVuY3Rpb24g ICAgICAgICA6IGZ1bmNfY29udmVydF9wYXRoX1hfdG9fWSAoKQojIHdoZXJl LCBmb3IgYW55IGdpdmVuICRidWlsZC8kaG9zdCBjb21iaW5hdGlvbiB0aGUg J1hfdG9fWScgdmFsdWUgaXMgdGhlCiMgc2FtZS4gIElmIGNvbnZlcnNpb24g ZnVuY3Rpb25zIGFyZSBhZGRlZCBmb3IgbmV3ICRidWlsZC8kaG9zdCBjb21i aW5hdGlvbnMsCiMgdGhlIHR3byBuZXcgZnVuY3Rpb25zIG11c3QgZm9sbG93 IHRoaXMgcGF0dGVybiwgb3IgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQK IyB3aWxsIGJyZWFrLgoKCiMgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQK IyBFbnN1cmVzIHRoYXQgZnVuY3Rpb24gInBvaW50ZXIiIHZhcmlhYmxlICR0 b19ob3N0X3BhdGhfY21kIGlzIHNldCB0byB0aGUKIyBhcHByb3ByaWF0ZSB2 YWx1ZSwgYmFzZWQgb24gdGhlIHZhbHVlIG9mICR0b19ob3N0X2ZpbGVfY21k Lgp0b19ob3N0X3BhdGhfY21kPQpmdW5jX2luaXRfdG9faG9zdF9wYXRoX2Nt ZCAoKQp7CiAgJG9wdF9kZWJ1ZwogIGlmIHRlc3QgLXogIiR0b19ob3N0X3Bh dGhfY21kIjsgdGhlbgogICAgZnVuY19zdHJpcG5hbWUgJ2Z1bmNfY29udmVy dF9maWxlXycgJycgIiR0b19ob3N0X2ZpbGVfY21kIgogICAgdG9faG9zdF9w YXRoX2NtZD0iZnVuY19jb252ZXJ0X3BhdGhfJHtmdW5jX3N0cmlwbmFtZV9y ZXN1bHR9IgogIGZpCn0KCgojIGZ1bmNfdG9faG9zdF9wYXRoIEFSRwojIENv bnZlcnRzIHRoZSBwYXRoIEFSRyBmcm9tICRidWlsZCBmb3JtYXQgdG8gJGhv c3QgZm9ybWF0LiBSZXR1cm4gcmVzdWx0CiMgaW4gZnVuY190b19ob3N0X3Bh dGhfcmVzdWx0LgpmdW5jX3RvX2hvc3RfcGF0aCAoKQp7CiAgJG9wdF9kZWJ1 ZwogIGZ1bmNfaW5pdF90b19ob3N0X3BhdGhfY21kCiAgJHRvX2hvc3RfcGF0 aF9jbWQgIiQxIgp9CiMgZW5kIGZ1bmNfdG9faG9zdF9wYXRoCgoKIyBmdW5j X2NvbnZlcnRfcGF0aF9ub29wIEFSRwojIENvcHkgQVJHIHRvIGZ1bmNfdG9f aG9zdF9wYXRoX3Jlc3VsdC4KZnVuY19jb252ZXJ0X3BhdGhfbm9vcCAoKQp7 CiAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKfQojIGVuZCBmdW5j X2NvbnZlcnRfcGF0aF9ub29wCgoKIyBmdW5jX2NvbnZlcnRfcGF0aF9tc3lz X3RvX3czMiBBUkcKIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gKG1pbmd3KSBN U1lTIHRvIChtaW5ndykgdzMyIGZvcm1hdDsgYXV0b21hdGljCiMgY29udmVy c2lvbiB0byB3MzIgaXMgbm90IGF2YWlsYWJsZSBpbnNpZGUgdGhlIGN3cmFw cGVyLiAgUmV0dXJucyByZXN1bHQgaW4KIyBmdW5jX3RvX2hvc3RfcGF0aF9y ZXN1bHQuCmZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyICgpCnsKICAk b3B0X2RlYnVnCiAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKICBp ZiB0ZXN0IC1uICIkMSI7IHRoZW4KICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5k IHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbSBBUkcu ICBNU1lTCiAgICAjIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlOyBj eWdwYXRoIHR1cm5zIHRoZW0gaW50byAnLjsnIGFuZCAnOy4nOwogICAgIyBh bmQgd2luZXBhdGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHkuCiAgICBmdW5j X3N0cmlwbmFtZSA6IDogIiQxIgogICAgZnVuY190b19ob3N0X3BhdGhfdG1w MT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CiAgICBmdW5jX2NvbnZlcnRfY29y ZV9tc3lzX3RvX3czMiAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiCiAgICBm dW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29yZV9t c3lzX3RvX3czMl9yZXN1bHQiCiAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVj ayA6ICI7IiBcCiAgICAgICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgIiRm dW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCiAgICBmdW5jX2NvbnZlcnRfcGF0 aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoiICI7IiAiJDEiCiAgZmkK fQojIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMgoKCiMgZnVu Y19jb252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiBBUkcKIyBDb252ZXJ0IHBh dGggQVJHIGZyb20gQ3lnd2luIHRvIHczMiBmb3JtYXQuICBSZXR1cm5zIHJl c3VsdCBpbgojIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KZnVuY19jb252 ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEi OyB0aGVuCiAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3cz MjoKICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3RvX2hv c3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1bmNf dG9faG9zdF9wYXRoX3Jlc3VsdD1gY3lncGF0aCAtbSAtcCAiJGZ1bmNfdG9f aG9zdF9wYXRoX3RtcDEiYAogICAgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sg OiAiOyIgXAogICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiICIkZnVu Y190b19ob3N0X3BhdGhfcmVzdWx0IgogICAgZnVuY19jb252ZXJ0X3BhdGhf ZnJvbnRfYmFja19wYXRoc2VwICI6KiIgIio6IiAiOyIgIiQxIgogIGZpCn0K IyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMgoKCiMgZnVu Y19jb252ZXJ0X3BhdGhfbml4X3RvX3czMiBBUkcKIyBDb252ZXJ0IHBhdGgg QVJHIGZyb20gKm5peCB0byB3MzIgZm9ybWF0LiAgUmVxdWlyZXMgYSB3aW5l IGVudmlyb25tZW50IGFuZAojIGEgd29ya2luZyB3aW5lcGF0aC4gIFJldHVy bnMgcmVzdWx0IGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KZnVuY19j b252ZXJ0X3BhdGhfbml4X3RvX3czMiAoKQp7CiAgJG9wdF9kZWJ1ZwogIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAiJDEi OyB0aGVuCiAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3cz MjoKICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3RvX2hv c3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1bmNf Y29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzIgIiRmdW5jX3RvX2hvc3Rf cGF0aF90bXAxIgogICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkZnVu Y19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQiCiAgICBm dW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6ICI7IiBcCiAgICAgICIkZnVuY190 b19ob3N0X3BhdGhfdG1wMSIgIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQi CiAgICBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoq IiAiKjoiICI7IiAiJDEiCiAgZmkKfQojIGVuZCBmdW5jX2NvbnZlcnRfcGF0 aF9uaXhfdG9fdzMyCgoKIyBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX2N5 Z3dpbiBBUkcKIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gTVNZUyB0byBDeWd3 aW4gZm9ybWF0LiAgUmVxdWlyZXMgTFRfQ1lHUEFUSCBzZXQuCiMgUmV0dXJu cyByZXN1bHQgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgpmdW5jX2Nv bnZlcnRfcGF0aF9tc3lzX3RvX2N5Z3dpbiAoKQp7CiAgJG9wdF9kZWJ1Zwog IGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCiAgaWYgdGVzdCAtbiAi JDEiOyB0aGVuCiAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3Rv X3czMjoKICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3Rv X2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1 bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkZnVuY190b19ob3N0X3Bh dGhfdG1wMSIKICAgIGZ1bmNfY3lncGF0aCAtdSAtcCAiJGZ1bmNfY29udmVy dF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdCIKICAgIGZ1bmNfdG9faG9zdF9w YXRoX3Jlc3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCiAgICBmdW5jX2Nv bnZlcnRfcGF0aF9jaGVjayA6IDogXAogICAgICAiJGZ1bmNfdG9faG9zdF9w YXRoX3RtcDEiICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgogICAgZnVu Y19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICI6KiIgIio6IiA6 ICIkMSIKICBmaQp9CiMgZW5kIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9f Y3lnd2luCgoKIyBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luIEFS RwojIENvbnZlcnQgcGF0aCBBUkcgZnJvbSAqbml4IHRvIEN5Z3dpbiBmb3Jt YXQuICBSZXF1aXJlcyBDeWd3aW4gaW5zdGFsbGVkIGluIGEKIyBhIHdpbmUg ZW52aXJvbm1lbnQsIHdvcmtpbmcgd2luZXBhdGgsIGFuZCBMVF9DWUdQQVRI IHNldC4gIFJldHVybnMgcmVzdWx0IGluCiMgZnVuY190b19ob3N0X2ZpbGVf cmVzdWx0LgpmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luICgpCnsK ICAkb3B0X2RlYnVnCiAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIK ICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KICAgICMgUmVtb3ZlIGxlYWRpbmcg YW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbQog ICAgIyBBUkcuIG1zeXMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmUs IGN5Z3BhdGggdHVybnMgdGhlbQogICAgIyBpbnRvICcuOycgYW5kICc7Lics IGFuZCB3aW5lcGF0aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KICAgIGZ1 bmNfc3RyaXBuYW1lIDogOiAiJDEiCiAgICBmdW5jX3RvX2hvc3RfcGF0aF90 bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKICAgIGZ1bmNfY29udmVydF9j b3JlX3BhdGhfd2luZV90b193MzIgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAx IgogICAgZnVuY19jeWdwYXRoIC11IC1wICIkZnVuY19jb252ZXJ0X2NvcmVf cGF0aF93aW5lX3RvX3czMl9yZXN1bHQiCiAgICBmdW5jX3RvX2hvc3RfcGF0 aF9yZXN1bHQ9IiRmdW5jX2N5Z3BhdGhfcmVzdWx0IgogICAgZnVuY19jb252 ZXJ0X3BhdGhfY2hlY2sgOiA6IFwKICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0 aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKICAgIGZ1bmNf Y29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAiOioiICIqOiIgOiAi JDEiCiAgZmkKfQojIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3ln d2luCgoKIyBmdW5jX21vZGVfY29tcGlsZSBhcmcuLi4KZnVuY19tb2RlX2Nv bXBpbGUgKCkKewogICAgJG9wdF9kZWJ1ZwogICAgIyBHZXQgdGhlIGNvbXBp bGF0aW9uIGNvbW1hbmQgYW5kIHRoZSBzb3VyY2UgZmlsZS4KICAgIGJhc2Vf Y29tcGlsZT0KICAgIHNyY2ZpbGU9IiRub25vcHQiICAjICBhbHdheXMga2Vl cCBhIG5vbi1lbXB0eSB2YWx1ZSBpbiAic3JjZmlsZSIKICAgIHN1cHByZXNz X29wdD15ZXMKICAgIHN1cHByZXNzX291dHB1dD0KICAgIGFyZ19tb2RlPW5v cm1hbAogICAgbGlib2JqPQogICAgbGF0ZXI9CiAgICBwaWVfZmxhZz0KCiAg ICBmb3IgYXJnCiAgICBkbwogICAgICBjYXNlICRhcmdfbW9kZSBpbgogICAg ICBhcmcgICkKCSMgZG8gbm90ICJjb250aW51ZSIuICBJbnN0ZWFkLCBhZGQg dGhpcyB0byBiYXNlX2NvbXBpbGUKCWxhc3Rhcmc9IiRhcmciCglhcmdfbW9k ZT1ub3JtYWwKCTs7CgogICAgICB0YXJnZXQgKQoJbGlib2JqPSIkYXJnIgoJ YXJnX21vZGU9bm9ybWFsCgljb250aW51ZQoJOzsKCiAgICAgIG5vcm1hbCAp CgkjIEFjY2VwdCBhbnkgY29tbWFuZC1saW5lIG9wdGlvbnMuCgljYXNlICRh cmcgaW4KCS1vKQoJICB0ZXN0IC1uICIkbGlib2JqIiAmJiBcCgkgICAgZnVu Y19mYXRhbF9lcnJvciAieW91IGNhbm5vdCBzcGVjaWZ5IFxgLW8nIG1vcmUg dGhhbiBvbmNlIgoJICBhcmdfbW9kZT10YXJnZXQKCSAgY29udGludWUKCSAg OzsKCgktcGllIHwgLWZwaWUgfCAtZlBJRSkKICAgICAgICAgIHBpZV9mbGFn Kz0iICRhcmciCgkgIGNvbnRpbnVlCgkgIDs7CgoJLXNoYXJlZCB8IC1zdGF0 aWMgfCAtcHJlZmVyLXBpYyB8IC1wcmVmZXItbm9uLXBpYykKCSAgbGF0ZXIr PSIgJGFyZyIKCSAgY29udGludWUKCSAgOzsKCgktbm8tc3VwcHJlc3MpCgkg IHN1cHByZXNzX29wdD1ubwoJICBjb250aW51ZQoJICA7OwoKCS1YY29tcGls ZXIpCgkgIGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25lIGdvZXMgaW50 byB0aGUgImJhc2VfY29tcGlsZSIgYXJnIGxpc3QKCSAgY29udGludWUgICAg ICAjICBUaGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUgcmV0 YWluZWQgb3IKCSAgOzsgICAgICAgICAgICAjICByZXBsYWNlZCBsYXRlci4g IEkgd291bGQgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIGJ1Zy4KCgktV2MsKikK CSAgZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgoJICBhcmdzPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKCSAgbGFzdGFyZz0KCSAgc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9JywnCgkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCgkgICAg SUZTPSIkc2F2ZV9pZnMiCgkgICAgZnVuY19hcHBlbmRfcXVvdGVkIGxhc3Rh cmcgIiRhcmciCgkgIGRvbmUKCSAgSUZTPSIkc2F2ZV9pZnMiCgkgIGZ1bmNf c3RyaXBuYW1lICcgJyAnJyAiJGxhc3RhcmciCgkgIGxhc3Rhcmc9JGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdAoKCSAgIyBBZGQgdGhlIGFyZ3VtZW50cyB0byBi YXNlX2NvbXBpbGUuCgkgIGJhc2VfY29tcGlsZSs9IiAkbGFzdGFyZyIKCSAg Y29udGludWUKCSAgOzsKCgkqKQoJICAjIEFjY2VwdCB0aGUgY3VycmVudCBh cmd1bWVudCBhcyB0aGUgc291cmNlIGZpbGUuCgkgICMgVGhlIHByZXZpb3Vz ICJzcmNmaWxlIiBiZWNvbWVzIHRoZSBjdXJyZW50IGFyZ3VtZW50LgoJICAj CgkgIGxhc3Rhcmc9IiRzcmNmaWxlIgoJICBzcmNmaWxlPSIkYXJnIgoJICA7 OwoJZXNhYyAgIyAgY2FzZSAkYXJnCgk7OwogICAgICBlc2FjICAgICMgIGNh c2UgJGFyZ19tb2RlCgogICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhl IHByZXZpb3VzIGFyZ3VtZW50LgogICAgICBmdW5jX2FwcGVuZF9xdW90ZWQg YmFzZV9jb21waWxlICIkbGFzdGFyZyIKICAgIGRvbmUgIyBmb3IgYXJnCgog ICAgY2FzZSAkYXJnX21vZGUgaW4KICAgIGFyZykKICAgICAgZnVuY19mYXRh bF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBhbiBhcmd1bWVudCBmb3IgLVhj b21waWxlIgogICAgICA7OwogICAgdGFyZ2V0KQogICAgICBmdW5jX2ZhdGFs X2Vycm9yICJ5b3UgbXVzdCBzcGVjaWZ5IGEgdGFyZ2V0IHdpdGggXGAtbyci CiAgICAgIDs7CiAgICAqKQogICAgICAjIEdldCB0aGUgbmFtZSBvZiB0aGUg bGlicmFyeSBvYmplY3QuCiAgICAgIHRlc3QgLXogIiRsaWJvYmoiICYmIHsK CWZ1bmNfYmFzZW5hbWUgIiRzcmNmaWxlIgoJbGlib2JqPSIkZnVuY19iYXNl bmFtZV9yZXN1bHQiCiAgICAgIH0KICAgICAgOzsKICAgIGVzYWMKCiAgICAj IFJlY29nbml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgog ICAgIyBJZiB0aGUgdXNlciBzcGVjaWZpZXMgLW8gZmlsZS5vLCBpdCBpcyBy ZXBsYWNlZCB3aXRoIGZpbGUubG8KICAgIGNhc2UgJGxpYm9iaiBpbgogICAg Ki5bY0NGU2lmbXNvXSB8IFwKICAgICouYWRhIHwgKi5hZGIgfCAqLmFkcyB8 ICouYXNtIHwgXAogICAgKi5jKysgfCAqLmNjIHwgKi5paSB8ICouY2xhc3Mg fCAqLmNwcCB8ICouY3h4IHwgXAogICAgKi5bZkZdWzA5XT8gfCAqLmZvciB8 ICouamF2YSB8ICouZ28gfCAqLm9iaiB8ICouc3ggfCAqLmN1IHwgKi5jdXAp CiAgICAgIGZ1bmNfeGZvcm0gIiRsaWJvYmoiCiAgICAgIGxpYm9iaj0kZnVu Y194Zm9ybV9yZXN1bHQKICAgICAgOzsKICAgIGVzYWMKCiAgICBjYXNlICRs aWJvYmogaW4KICAgICoubG8pIGZ1bmNfbG8ybyAiJGxpYm9iaiI7IG9iaj0k ZnVuY19sbzJvX3Jlc3VsdCA7OwogICAgKikKICAgICAgZnVuY19mYXRhbF9l cnJvciAiY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkgb2JqZWN0 IGZyb20gXGAkbGlib2JqJyIKICAgICAgOzsKICAgIGVzYWMKCiAgICBmdW5j X2luZmVyX3RhZyAkYmFzZV9jb21waWxlCgogICAgZm9yIGFyZyBpbiAkbGF0 ZXI7IGRvCiAgICAgIGNhc2UgJGFyZyBpbgogICAgICAtc2hhcmVkKQoJdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKCSAgZnVuY19m YXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxp YnJhcnkiCglidWlsZF9vbGRfbGlicz1ubwoJY29udGludWUKCTs7CgogICAg ICAtc3RhdGljKQoJYnVpbGRfbGlidG9vbF9saWJzPW5vCglidWlsZF9vbGRf bGlicz15ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLXByZWZlci1waWMpCglw aWNfbW9kZT15ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLXByZWZlci1ub24t cGljKQoJcGljX21vZGU9bm8KCWNvbnRpbnVlCgk7OwogICAgICBlc2FjCiAg ICBkb25lCgogICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGxpYm9iaiIKICAg IHRlc3QgIlgkbGlib2JqIiAhPSAiWCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jl c3VsdCIgXAogICAgICAmJiAkRUNITyAiWCRsaWJvYmoiIHwgJEdSRVAgJ1td fiNeKnt9Ozw+PyInIiciJwkgJigpfGAkW10nIFwKICAgICAgJiYgZnVuY193 YXJuaW5nICJsaWJvYmogbmFtZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFp biBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgogICAgZnVuY19kaXJuYW1l X2FuZF9iYXNlbmFtZSAiJG9iaiIgIi8iICIiCiAgICBvYmpuYW1lPSIkZnVu Y19iYXNlbmFtZV9yZXN1bHQiCiAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jl c3VsdCIKICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5hbWUKCiAgICB0 ZXN0IC16ICIkYmFzZV9jb21waWxlIiAmJiBcCiAgICAgIGZ1bmNfZmF0YWxf aGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGNvbXBpbGF0aW9uIGNvbW1hbmQi CgogICAgIyBEZWxldGUgYW55IGxlZnRvdmVyIGxpYnJhcnkgb2JqZWN0cy4K ICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KICAg ICAgcmVtb3ZlbGlzdD0iJG9iaiAkbG9iaiAkbGlib2JqICR7bGlib2JqfVQi CiAgICBlbHNlCiAgICAgIHJlbW92ZWxpc3Q9IiRsb2JqICRsaWJvYmogJHts aWJvYmp9VCIKICAgIGZpCgogICAgIyBPbiBDeWd3aW4gdGhlcmUncyBubyAi cmVhbCIgUElDIGZsYWcgc28gd2UgbXVzdCBidWlsZCBib3RoIG9iamVjdCB0 eXBlcwogICAgY2FzZSAkaG9zdF9vcyBpbgogICAgY3lnd2luKiB8IG1pbmd3 KiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKICAgICAgcGljX21vZGU9ZGVm YXVsdAogICAgICA7OwogICAgZXNhYwogICAgaWYgdGVzdCAiJHBpY19tb2Rl IiA9IG5vICYmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFz c19hbGw7IHRoZW4KICAgICAgIyBub24tUElDIGNvZGUgaW4gc2hhcmVkIGxp YnJhcmllcyBpcyBub3Qgc3VwcG9ydGVkCiAgICAgIHBpY19tb2RlPWRlZmF1 bHQKICAgIGZpCgogICAgIyBDYWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRo ZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKICAgICMgbm90IHN1 cHBvcnQgLW8gd2l0aCAtYwogICAgaWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIg PSBubzsgdGhlbgogICAgICBvdXRwdXRfb2JqPWAkRUNITyAiJHNyY2ZpbGUi IHwgJFNFRCAncyVeLiovJSU7IHMlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQog ICAgICBsb2NrZmlsZT0iJG91dHB1dF9vYmoubG9jayIKICAgIGVsc2UKICAg ICAgb3V0cHV0X29iaj0KICAgICAgbmVlZF9sb2Nrcz1ubwogICAgICBsb2Nr ZmlsZT0KICAgIGZpCgogICAgIyBMb2NrIHRoaXMgY3JpdGljYWwgc2VjdGlv biBpZiBpdCBpcyBuZWVkZWQKICAgICMgV2UgdXNlIHRoaXMgc2NyaXB0IGZp bGUgdG8gbWFrZSB0aGUgbGluaywgaXQgYXZvaWRzIGNyZWF0aW5nIGEgbmV3 IGZpbGUKICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHllczsgdGhlbgog ICAgICB1bnRpbCAkb3B0X2RyeV9ydW4gfHwgbG4gIiRwcm9ncGF0aCIgIiRs b2NrZmlsZSIgMj4vZGV2L251bGw7IGRvCglmdW5jX2VjaG8gIldhaXRpbmcg Zm9yICRsb2NrZmlsZSB0byBiZSByZW1vdmVkIgoJc2xlZXAgMgogICAgICBk b25lCiAgICBlbGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm47IHRoZW4K ICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhlbgoJJEVDSE8gIlwK KioqIEVSUk9SLCAkbG9ja2ZpbGUgZXhpc3RzIGFuZCBjb250YWluczoKYGNh dCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCgpUaGlzIGluZGljYXRlcyB0aGF0 IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCnRl bXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdv cmsgYXJvdW5kIGl0IGJlY2F1c2UKeW91ciBjb21waWxlciBkb2VzIG5vdCBz dXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQpyZXBl YXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5j ZSwgYnV0IHlvdSBoYWQgYmV0dGVyCmF2b2lkIHBhcmFsbGVsIGJ1aWxkcyAo bWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCmNv bXBpbGVyLiIKCgkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0Cgll eGl0ICRFWElUX0ZBSUxVUkUKICAgICAgZmkKICAgICAgcmVtb3ZlbGlzdCs9 IiAkb3V0cHV0X29iaiIKICAgICAgJEVDSE8gIiRzcmNmaWxlIiA+ICIkbG9j a2ZpbGUiCiAgICBmaQoKICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92 ZWxpc3QKICAgIHJlbW92ZWxpc3QrPSIgJGxvY2tmaWxlIgogICAgdHJhcCAn JG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9G QUlMVVJFJyAxIDIgMTUKCiAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJHNyY2Zp bGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCiAgICBzcmNmaWxl PSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRzcmNmaWxlIgogICAgcXNyY2ZpbGU9JGZ1bmNfcXVvdGVfZm9y X2V2YWxfcmVzdWx0CgogICAgIyBPbmx5IGJ1aWxkIGEgUElDIG9iamVjdCBp ZiB3ZSBhcmUgYnVpbGRpbmcgbGlidG9vbCBsaWJyYXJpZXMuCiAgICBpZiB0 ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgogICAgICAj IFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNlX2NvbXBpbGUgZ2V0cyBl bXB0aWVkLgogICAgICBmYnNkX2hpZGVvdXNfc2hfYnVnPSRiYXNlX2NvbXBp bGUKCiAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KCWNv bW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKICAg ICAgZWxzZQoJIyBEb24ndCBidWlsZCBQSUMgY29kZQoJY29tbWFuZD0iJGJh c2VfY29tcGlsZSAkcXNyY2ZpbGUiCiAgICAgIGZpCgogICAgICBmdW5jX21r ZGlyX3AgIiR4ZGlyJG9iamRpciIKCiAgICAgIGlmIHRlc3QgLXogIiRvdXRw dXRfb2JqIjsgdGhlbgoJIyBQbGFjZSBQSUMgb2JqZWN0cyBpbiAkb2JqZGly Cgljb21tYW5kKz0iIC1vICRsb2JqIgogICAgICBmaQoKICAgICAgZnVuY19z aG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIJXAogICAgICAgICAgJ3Rlc3Qg LW4gIiRvdXRwdXRfb2JqIiAmJiAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVY SVRfRkFJTFVSRScKCiAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdh cm4gJiYKCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAh PSAiWCRzcmNmaWxlIjsgdGhlbgoJJEVDSE8gIlwKKioqIEVSUk9SLCAkbG9j a2ZpbGUgY29udGFpbnM6CmBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAoK YnV0IGl0IHNob3VsZCBjb250YWluOgokc3JjZmlsZQoKVGhpcyBpbmRpY2F0 ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUg c2FtZQp0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxk IG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCnlvdXIgY29tcGlsZXIgZG9l cyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5 b3UKcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBi eSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgphdm9pZCBwYXJhbGxlbCBi dWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJl dHRlcgpjb21waWxlci4iCgoJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3Zl bGlzdAoJZXhpdCAkRVhJVF9GQUlMVVJFCiAgICAgIGZpCgogICAgICAjIEp1 c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZCwgdGhlbiBnbyBvbiB0byBj b21waWxlIHRoZSBuZXh0IG9uZQogICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0 X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRsb2JqIjsgdGhl bgoJZnVuY19zaG93X2V2YWwgJyRNViAiJG91dHB1dF9vYmoiICIkbG9iaiIn IFwKCSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVs aXN0OyBleGl0ICRlcnJvcicKICAgICAgZmkKCiAgICAgICMgQWxsb3cgZXJy b3IgbWVzc2FnZXMgb25seSBmcm9tIHRoZSBmaXJzdCBjb21waWxhdGlvbi4K ICAgICAgaWYgdGVzdCAiJHN1cHByZXNzX29wdCIgPSB5ZXM7IHRoZW4KCXN1 cHByZXNzX291dHB1dD0nID4vZGV2L251bGwgMj4mMScKICAgICAgZmkKICAg IGZpCgogICAgIyBPbmx5IGJ1aWxkIGEgcG9zaXRpb24tZGVwZW5kZW50IG9i amVjdCBpZiB3ZSBidWlsZCBvbGQgbGlicmFyaWVzLgogICAgaWYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgogICAgICBpZiB0ZXN0ICIk cGljX21vZGUiICE9IHllczsgdGhlbgoJIyBEb24ndCBidWlsZCBQSUMgY29k ZQoJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUkcGllX2ZsYWci CiAgICAgIGVsc2UKCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxl ICRwaWNfZmxhZyIKICAgICAgZmkKICAgICAgaWYgdGVzdCAiJGNvbXBpbGVy X2NfbyIgPSB5ZXM7IHRoZW4KCWNvbW1hbmQrPSIgLW8gJG9iaiIKICAgICAg ZmkKCiAgICAgICMgU3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGlmIHdlIGFs cmVhZHkgZGlkIGEgUElDIGNvbXBpbGF0aW9uLgogICAgICBjb21tYW5kKz0i JHN1cHByZXNzX291dHB1dCIKICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxl ICIkY29tbWFuZCIgXAogICAgICAgICckb3B0X2RyeV9ydW4gfHwgJFJNICRy ZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnCgogICAgICBpZiB0ZXN0 ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCgkgdGVzdCAiWGBjYXQgJGxvY2tm aWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KCSRFQ0hP ICJcCioqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgpgY2F0ICRsb2Nr ZmlsZSAyPi9kZXYvbnVsbGAKCmJ1dCBpdCBzaG91bGQgY29udGFpbjoKJHNy Y2ZpbGUKClRoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlz IHRyeWluZyB0byB1c2UgdGhlIHNhbWUKdGVtcG9yYXJ5IG9iamVjdCBmaWxl LCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVz ZQp5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxg LW8nIHRvZ2V0aGVyLiAgSWYgeW91CnJlcGVhdCB0aGlzIGNvbXBpbGF0aW9u LCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0 ZXIKYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBs YXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKY29tcGlsZXIuIgoKCSRvcHRfZHJ5 X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKCWV4aXQgJEVYSVRfRkFJTFVSRQog ICAgICBmaQoKICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVk ZWQKICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgk b3V0cHV0X29iaiIgIT0gIlgkb2JqIjsgdGhlbgoJZnVuY19zaG93X2V2YWwg JyRNViAiJG91dHB1dF9vYmoiICIkb2JqIicgXAoJICAnZXJyb3I9JD87ICRv cHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVycm9yJwog ICAgICBmaQogICAgZmkKCiAgICAkb3B0X2RyeV9ydW4gfHwgewogICAgICBm dW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0ICIkbGlib2JqIiAiJG9iamRpci8k b2JqbmFtZSIgIiRvYmpuYW1lIgoKICAgICAgIyBVbmxvY2sgdGhlIGNyaXRp Y2FsIHNlY3Rpb24gaWYgaXQgd2FzIGxvY2tlZAogICAgICBpZiB0ZXN0ICIk bmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KCXJlbW92ZWxpc3Q9JGxvY2tmaWxl CiAgICAgICAgJFJNICIkbG9ja2ZpbGUiCiAgICAgIGZpCiAgICB9CgogICAg ZXhpdCAkRVhJVF9TVUNDRVNTCn0KCiRvcHRfaGVscCB8fCB7CiAgdGVzdCAi JG9wdF9tb2RlIiA9IGNvbXBpbGUgJiYgZnVuY19tb2RlX2NvbXBpbGUgJHsx KyIkQCJ9Cn0KCmZ1bmNfbW9kZV9oZWxwICgpCnsKICAgICMgV2UgbmVlZCB0 byBkaXNwbGF5IGhlbHAgZm9yIGVhY2ggb2YgdGhlIG1vZGVzLgogICAgY2Fz ZSAkb3B0X21vZGUgaW4KICAgICAgIiIpCiAgICAgICAgIyBHZW5lcmljIGhl bHAgaXMgZXh0cmFjdGVkIGZyb20gdGhlIHVzYWdlIGNvbW1lbnRzCiAgICAg ICAgIyBhdCB0aGUgc3RhcnQgb2YgdGhpcyBmaWxlLgogICAgICAgIGZ1bmNf aGVscAogICAgICAgIDs7CgogICAgICBjbGVhbikKICAgICAgICAkRUNITyBc CiJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1jbGVhbiBS TSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4uCgpSZW1vdmUgZmlsZXMgZnJvbSB0 aGUgYnVpbGQgZGlyZWN0b3J5LgoKUk0gaXMgdGhlIG5hbWUgb2YgdGhlIHBy b2dyYW0gdG8gdXNlIHRvIGRlbGV0ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGgg ZWFjaCBGSUxFCih0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05T IGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKdG8g Uk0uCgpJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3Ig cHJvZ3JhbSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVkCndpdGggaXQgYXJl IGRlbGV0ZWQuIE90aGVyd2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxl dGVkIHVzaW5nIFJNLiIKICAgICAgICA7OwoKICAgICAgY29tcGlsZSkKICAg ICAgJEVDSE8gXAoiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1v ZGU9Y29tcGlsZSBDT01QSUxFLUNPTU1BTkQuLi4gU09VUkNFRklMRQoKQ29t cGlsZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIGxpYnJhcnkgb2Jq ZWN0LgoKVGhpcyBtb2RlIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhZGRpdGlv bmFsIG9wdGlvbnM6CgogIC1vIE9VVFBVVC1GSUxFICAgIHNldCB0aGUgb3V0 cHV0IGZpbGUgbmFtZSB0byBPVVRQVVQtRklMRQogIC1uby1zdXBwcmVzcyAg ICAgIGRvIG5vdCBzdXBwcmVzcyBjb21waWxlciBvdXRwdXQgZm9yIG11bHRp cGxlIHBhc3NlcwogIC1wcmVmZXItcGljICAgICAgIHRyeSB0byBidWlsZCBQ SUMgb2JqZWN0cyBvbmx5CiAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1 aWxkIG5vbi1QSUMgb2JqZWN0cyBvbmx5CiAgLXNoYXJlZCAgICAgICAgICAg ZG8gbm90IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGlj IGxpbmtpbmcKICAtc3RhdGljICAgICAgICAgICBvbmx5IGJ1aWxkIGEgXGAu bycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtpbmcKICAtV2MsRkxB RyAgICAgICAgICBwYXNzIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGNvbXBpbGVy CgpDT01QSUxFLUNPTU1BTkQgaXMgYSBjb21tYW5kIHRvIGJlIHVzZWQgaW4g Y3JlYXRpbmcgYSBcYHN0YW5kYXJkJyBvYmplY3QgZmlsZQpmcm9tIHRoZSBn aXZlbiBTT1VSQ0VGSUxFLgoKVGhlIG91dHB1dCBmaWxlIG5hbWUgaXMgZGV0 ZXJtaW5lZCBieSByZW1vdmluZyB0aGUgZGlyZWN0b3J5IGNvbXBvbmVudCBm cm9tClNPVVJDRUZJTEUsIHRoZW4gc3Vic3RpdHV0aW5nIHRoZSBDIHNvdXJj ZSBjb2RlIHN1ZmZpeCBcYC5jJyB3aXRoIHRoZQpsaWJyYXJ5IG9iamVjdCBz dWZmaXgsIFxgLmxvJy4iCiAgICAgICAgOzsKCiAgICAgIGV4ZWN1dGUpCiAg ICAgICAgJEVDSE8gXAoiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAt LW1vZGU9ZXhlY3V0ZSBDT01NQU5EIFtBUkdTXS4uLgoKQXV0b21hdGljYWxs eSBzZXQgbGlicmFyeSBwYXRoLCB0aGVuIHJ1biBhIHByb2dyYW0uCgpUaGlz IG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9u czoKCiAgLWRsb3BlbiBGSUxFICAgICAgYWRkIHRoZSBkaXJlY3RvcnkgY29u dGFpbmluZyBGSUxFIHRvIHRoZSBsaWJyYXJ5IHBhdGgKClRoaXMgbW9kZSBz ZXRzIHRoZSBsaWJyYXJ5IHBhdGggZW52aXJvbm1lbnQgdmFyaWFibGUgYWNj b3JkaW5nIHRvIFxgLWRsb3BlbicKZmxhZ3MuCgpJZiBhbnkgb2YgdGhlIEFS R1MgYXJlIGxpYnRvb2wgZXhlY3V0YWJsZSB3cmFwcGVycywgdGhlbiB0aGV5 IGFyZSB0cmFuc2xhdGVkCmludG8gdGhlaXIgY29ycmVzcG9uZGluZyB1bmlu c3RhbGxlZCBiaW5hcnksIGFuZCBhbnkgb2YgdGhlaXIgcmVxdWlyZWQgbGli cmFyeQpkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0 aC4KClRoZW4sIENPTU1BTkQgaXMgZXhlY3V0ZWQsIHdpdGggQVJHUyBhcyBh cmd1bWVudHMuIgogICAgICAgIDs7CgogICAgICBmaW5pc2gpCiAgICAgICAg JEVDSE8gXAoiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9 ZmluaXNoIFtMSUJESVJdLi4uCgpDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9u IG9mIGxpYnRvb2wgbGlicmFyaWVzLgoKRWFjaCBMSUJESVIgaXMgYSBkaXJl Y3RvcnkgdGhhdCBjb250YWlucyBsaWJ0b29sIGxpYnJhcmllcy4KClRoZSBj b21tYW5kcyB0aGF0IHRoaXMgbW9kZSBleGVjdXRlcyBtYXkgcmVxdWlyZSBz dXBlcnVzZXIgcHJpdmlsZWdlcy4gIFVzZQp0aGUgXGAtLWRyeS1ydW4nIG9w dGlvbiBpZiB5b3UganVzdCB3YW50IHRvIHNlZSB3aGF0IHdvdWxkIGJlIGV4 ZWN1dGVkLiIKICAgICAgICA7OwoKICAgICAgaW5zdGFsbCkKICAgICAgICAk RUNITyBcCiJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1p bnN0YWxsIElOU1RBTEwtQ09NTUFORC4uLgoKSW5zdGFsbCBleGVjdXRhYmxl cyBvciBsaWJyYXJpZXMuCgpJTlNUQUxMLUNPTU1BTkQgaXMgdGhlIGluc3Rh bGxhdGlvbiBjb21tYW5kLiAgVGhlIGZpcnN0IGNvbXBvbmVudCBzaG91bGQg YmUKZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCgpU aGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2YgSU5TVEFMTC1DT01NQU5EIGFy ZSB0cmVhdGVkIHNwZWNpYWxseToKCiAgLWluc3QtcHJlZml4LWRpciBQUkVG SVgtRElSICBVc2UgUFJFRklYLURJUiBhcyBhIHN0YWdpbmcgYXJlYSBmb3Ig aW5zdGFsbGF0aW9uCgpUaGUgcmVzdCBvZiB0aGUgY29tcG9uZW50cyBhcmUg aW50ZXJwcmV0ZWQgYXMgYXJndW1lbnRzIHRvIHRoYXQgY29tbWFuZCAob25s eQpCU0QtY29tcGF0aWJsZSBpbnN0YWxsIG9wdGlvbnMgYXJlIHJlY29nbml6 ZWQpLiIKICAgICAgICA7OwoKICAgICAgbGluaykKICAgICAgICAkRUNITyBc CiJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1saW5rIExJ TkstQ09NTUFORC4uLgoKTGluayBvYmplY3QgZmlsZXMgb3IgbGlicmFyaWVz IHRvZ2V0aGVyIHRvIGZvcm0gYW5vdGhlciBsaWJyYXJ5LCBvciB0bwpjcmVh dGUgYW4gZXhlY3V0YWJsZSBwcm9ncmFtLgoKTElOSy1DT01NQU5EIGlzIGEg Y29tbWFuZCB1c2luZyB0aGUgQyBjb21waWxlciB0aGF0IHlvdSB3b3VsZCB1 c2UgdG8gY3JlYXRlCmEgcHJvZ3JhbSBmcm9tIHNldmVyYWwgb2JqZWN0IGZp bGVzLgoKVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIExJTkstQ09NTUFO RCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CgogIC1hbGwtc3RhdGljICAgICAg IGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIGF0IGFsbAogIC1hdm9p ZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQgYSB2ZXJzaW9uIHN1ZmZpeCBpZiBw b3NzaWJsZQogIC1iaW5kaXIgQklORElSICAgIHNwZWNpZnkgcGF0aCB0byBi aW5hcmllcyBkaXJlY3RvcnkgKGZvciBzeXN0ZW1zIHdoZXJlCiAgICAgICAg ICAgICAgICAgICAgbGlicmFyaWVzIG11c3QgYmUgZm91bmQgaW4gdGhlIFBB VEggc2V0dGluZyBhdCBydW50aW1lKQogIC1kbG9wZW4gRklMRSAgICAgIFxg LWRscHJlb3BlbicgRklMRSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQgYXQg cnVudGltZQogIC1kbHByZW9wZW4gRklMRSAgIGxpbmsgaW4gRklMRSBhbmQg YWRkIGl0cyBzeW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9zeW1ib2xzCiAgLWV4 cG9ydC1keW5hbWljICAgYWxsb3cgc3ltYm9scyBmcm9tIE9VVFBVVC1GSUxF IHRvIGJlIHJlc29sdmVkIHdpdGggZGxzeW0oMykKICAtZXhwb3J0LXN5bWJv bHMgU1lNRklMRQogICAgICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQg b25seSB0aGUgc3ltYm9scyBsaXN0ZWQgaW4gU1lNRklMRQogIC1leHBvcnQt c3ltYm9scy1yZWdleCBSRUdFWAogICAgICAgICAgICAgICAgICAgIHRyeSB0 byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBtYXRjaGluZyBSRUdFWAogIC1M TElCRElSICAgICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJlcXVpcmVkIGlu c3RhbGxlZCBsaWJyYXJpZXMKICAtbE5BTUUgICAgICAgICAgICBPVVRQVVQt RklMRSByZXF1aXJlcyB0aGUgaW5zdGFsbGVkIGxpYnJhcnkgbGliTkFNRQog IC1tb2R1bGUgICAgICAgICAgIGJ1aWxkIGEgbGlicmFyeSB0aGF0IGNhbiBk bG9wZW5lZAogIC1uby1mYXN0LWluc3RhbGwgIGRpc2FibGUgdGhlIGZhc3Qt aW5zdGFsbCBtb2RlCiAgLW5vLWluc3RhbGwgICAgICAgbGluayBhIG5vdC1p bnN0YWxsYWJsZSBleGVjdXRhYmxlCiAgLW5vLXVuZGVmaW5lZCAgICAgZGVj bGFyZSB0aGF0IGEgbGlicmFyeSBkb2VzIG5vdCByZWZlciB0byBleHRlcm5h bCBzeW1ib2xzCiAgLW8gT1VUUFVULUZJTEUgICAgY3JlYXRlIE9VVFBVVC1G SUxFIGZyb20gdGhlIHNwZWNpZmllZCBvYmplY3RzCiAgLW9iamVjdGxpc3Qg RklMRSAgVXNlIGEgbGlzdCBvZiBvYmplY3QgZmlsZXMgZm91bmQgaW4gRklM RSB0byBzcGVjaWZ5IG9iamVjdHMKICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgg UkVHRVgKICAgICAgICAgICAgICAgICAgICBkb24ndCByZW1vdmUgb3V0cHV0 IGZpbGVzIG1hdGNoaW5nIFJFR0VYCiAgLXJlbGVhc2UgUkVMRUFTRSAgc3Bl Y2lmeSBwYWNrYWdlIHJlbGVhc2UgaW5mb3JtYXRpb24KICAtcnBhdGggTElC RElSICAgICB0aGUgY3JlYXRlZCBsaWJyYXJ5IHdpbGwgZXZlbnR1YWxseSBi ZSBpbnN0YWxsZWQgaW4gTElCRElSCiAgLVJbIF1MSUJESVIgICAgICAgYWRk IExJQkRJUiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBs aWJyYXJpZXMKICAtc2hhcmVkICAgICAgICAgICBvbmx5IGRvIGR5bmFtaWMg bGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcwogIC1zaHJleHQgU1VGRklY ICAgIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBzaGFyZWQgbGlicmFyeSBmaWxl IGV4dGVuc2lvbgogIC1zdGF0aWMgICAgICAgICAgIGRvIG5vdCBkbyBhbnkg ZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFy aWVzCiAgLXN0YXRpYy1saWJ0b29sLWxpYnMKICAgICAgICAgICAgICAgICAg ICBkbyBub3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxp YnJhcmllcwogIC12ZXJzaW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFH RV1dCiAgICAgICAgICAgICAgICAgICAgc3BlY2lmeSBsaWJyYXJ5IHZlcnNp b24gaW5mbyBbZWFjaCB2YXJpYWJsZSBkZWZhdWx0cyB0byAwXQogIC13ZWFr IExJQk5BTUUgICAgIGRlY2xhcmUgdGhhdCB0aGUgdGFyZ2V0IHByb3ZpZGVz IHRoZSBMSUJOQU1FIGludGVyZmFjZQogIC1XYyxGTEFHCiAgLVhjb21waWxl ciBGTEFHICAgcGFzcyBsaW5rZXItc3BlY2lmaWMgRkxBRyBkaXJlY3RseSB0 byB0aGUgY29tcGlsZXIKICAtV2wsRkxBRwogIC1YbGlua2VyIEZMQUcgICAg IHBhc3MgbGlua2VyLXNwZWNpZmljIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGxp bmtlcgogIC1YQ0NsaW5rZXIgRkxBRyAgIHBhc3MgbGluay1zcGVjaWZpYyBG TEFHIHRvIHRoZSBjb21waWxlciBkcml2ZXIgKENDKQoKQWxsIG90aGVyIG9w dGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdu b3JlZC4KCkV2ZXJ5IG90aGVyIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBm aWxlbmFtZS4gIEZpbGVzIGVuZGluZyBpbiBcYC5sYScgYXJlCnRyZWF0ZWQg YXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVz IGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5Cm9iamVjdCBmaWxlcy4KCklmIHRo ZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wg bGlicmFyeSBpcyBjcmVhdGVkLApvbmx5IGxpYnJhcnkgb2JqZWN0cyAoXGAu bG8nIGZpbGVzKSBtYXkgYmUgc3BlY2lmaWVkLCBhbmQgXGAtcnBhdGgnIGlz CnJlcXVpcmVkLCBleGNlcHQgd2hlbiBjcmVhdGluZyBhIGNvbnZlbmllbmNl IGxpYnJhcnkuCgpJZiBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmEnIG9yIFxg LmxpYicsIHRoZW4gYSBzdGFuZGFyZCBsaWJyYXJ5IGlzIGNyZWF0ZWQKdXNp bmcgXGBhcicgYW5kIFxgcmFubGliJywgb3Igb24gV2luZG93cyB1c2luZyBc YGxpYicuCgpJZiBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxvJyBvciBcYC4k e29iamV4dH0nLCB0aGVuIGEgcmVsb2FkYWJsZSBvYmplY3QgZmlsZQppcyBj cmVhdGVkLCBvdGhlcndpc2UgYW4gZXhlY3V0YWJsZSBwcm9ncmFtIGlzIGNy ZWF0ZWQuIgogICAgICAgIDs7CgogICAgICB1bmluc3RhbGwpCiAgICAgICAg JEVDSE8gXAoiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9 dW5pbnN0YWxsIFJNIFtSTS1PUFRJT05dLi4uIEZJTEUuLi4KClJlbW92ZSBs aWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgoKUk0g aXMgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0ZSBm aWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxFCih0eXBpY2FsbHkgXGAv YmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxg LWYnKSB0byBiZSBwYXNzZWQKdG8gUk0uCgpJZiBGSUxFIGlzIGEgbGlidG9v bCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBh cmUgZGVsZXRlZC4KT3RoZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRl bGV0ZWQgdXNpbmcgUk0uIgogICAgICAgIDs7CgogICAgICAqKQogICAgICAg IGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRv cHRfbW9kZSciCiAgICAgICAgOzsKICAgIGVzYWMKCiAgICBlY2hvCiAgICAk RUNITyAiVHJ5IFxgJHByb2duYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3Jt YXRpb24gYWJvdXQgb3RoZXIgbW9kZXMuIgp9CgojIE5vdyB0aGF0IHdlJ3Zl IGNvbGxlY3RlZCBhIHBvc3NpYmxlIC0tbW9kZSBhcmcsIHNob3cgaGVscCBp ZiBuZWNlc3NhcnkKaWYgJG9wdF9oZWxwOyB0aGVuCiAgaWYgdGVzdCAiJG9w dF9oZWxwIiA9IDo7IHRoZW4KICAgIGZ1bmNfbW9kZV9oZWxwCiAgZWxzZQog ICAgewogICAgICBmdW5jX2hlbHAgbm9leGl0CiAgICAgIGZvciBvcHRfbW9k ZSBpbiBjb21waWxlIGxpbmsgZXhlY3V0ZSBpbnN0YWxsIGZpbmlzaCB1bmlu c3RhbGwgY2xlYW47IGRvCglmdW5jX21vZGVfaGVscAogICAgICBkb25lCiAg ICB9IHwgc2VkIC1uICcxcDsgMiwkcy9eVXNhZ2U6LyAgb3I6IC9wJwogICAg ewogICAgICBmdW5jX2hlbHAgbm9leGl0CiAgICAgIGZvciBvcHRfbW9kZSBp biBjb21waWxlIGxpbmsgZXhlY3V0ZSBpbnN0YWxsIGZpbmlzaCB1bmluc3Rh bGwgY2xlYW47IGRvCgllY2hvCglmdW5jX21vZGVfaGVscAogICAgICBkb25l CiAgICB9IHwKICAgIHNlZCAnMWQKICAgICAgL15XaGVuIHJlcG9ydGluZy8s L15SZXBvcnQvewoJSAoJZAogICAgICB9CiAgICAgICR4CiAgICAgIC9pbmZv cm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy9kCiAgICAgIC9tb3JlIGRldGFp bGVkIC4qTU9ERS9kCiAgICAgIHMvXlVzYWdlOi4qLS1tb2RlPVwoW14gXSpc KSAuKi9EZXNjcmlwdGlvbiBvZiBcMSBtb2RlOi8nCiAgZmkKICBleGl0ICQ/ CmZpCgoKIyBmdW5jX21vZGVfZXhlY3V0ZSBhcmcuLi4KZnVuY19tb2RlX2V4 ZWN1dGUgKCkKewogICAgJG9wdF9kZWJ1ZwogICAgIyBUaGUgZmlyc3QgYXJn dW1lbnQgaXMgdGhlIGNvbW1hbmQgbmFtZS4KICAgIGNtZD0iJG5vbm9wdCIK ICAgIHRlc3QgLXogIiRjbWQiICYmIFwKICAgICAgZnVuY19mYXRhbF9oZWxw ICJ5b3UgbXVzdCBzcGVjaWZ5IGEgQ09NTUFORCIKCiAgICAjIEhhbmRsZSAt ZGxvcGVuIGZsYWdzIGltbWVkaWF0ZWx5LgogICAgZm9yIGZpbGUgaW4gJG9w dF9kbG9wZW47IGRvCiAgICAgIHRlc3QgLWYgIiRmaWxlIiBcCgl8fCBmdW5j X2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIGZpbGUiCgogICAgICBk aXI9CiAgICAgIGNhc2UgJGZpbGUgaW4KICAgICAgKi5sYSkKCWZ1bmNfcmVz b2x2ZV9zeXNyb290ICIkZmlsZSIKCWZpbGU9JGZ1bmNfcmVzb2x2ZV9zeXNy b290X3Jlc3VsdAoKCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkg aXMgYSBsaWJ0b29sIGFyY2hpdmUuCglmdW5jX2xhbGliX3Vuc2FmZV9wICIk ZmlsZSIgXAoJICB8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGxpYicgaXMgbm90 IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgoKCSMgUmVhZCB0aGUgbGlidG9v bCBsaWJyYXJ5LgoJZGxuYW1lPQoJbGlicmFyeV9uYW1lcz0KCWZ1bmNfc291 cmNlICIkZmlsZSIKCgkjIFNraXAgdGhpcyBsaWJyYXJ5IGlmIGl0IGNhbm5v dCBiZSBkbG9wZW5lZC4KCWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCgkg ICMgV2FybiBpZiBpdCB3YXMgYSBzaGFyZWQgbGlicmFyeS4KCSAgdGVzdCAt biAiJGxpYnJhcnlfbmFtZXMiICYmIFwKCSAgICBmdW5jX3dhcm5pbmcgIlxg JGZpbGUnIHdhcyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFtaWMn IgoJICBjb250aW51ZQoJZmkKCglmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAi LiIKCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCgoJaWYgdGVzdCAtZiAi JGRpci8kb2JqZGlyLyRkbG5hbWUiOyB0aGVuCgkgIGRpcis9Ii8kb2JqZGly IgoJZWxzZQoJICBpZiB0ZXN0ICEgLWYgIiRkaXIvJGRsbmFtZSI7IHRoZW4K CSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBcYCRkbG5hbWUn IGluIFxgJGRpcicgb3IgXGAkZGlyLyRvYmpkaXInIgoJICBmaQoJZmkKCTs7 CgogICAgICAqLmxvKQoJIyBKdXN0IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRh aW5pbmcgdGhlIC5sbyBmaWxlLgoJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIg Ii4iCglkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgoJOzsKCiAgICAgICop CglmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3Igbm9u LWxpYnRvb2wgbGlicmFyaWVzIGFuZCBvYmplY3RzIgoJY29udGludWUKCTs7 CiAgICAgIGVzYWMKCiAgICAgICMgR2V0IHRoZSBhYnNvbHV0ZSBwYXRobmFt ZS4KICAgICAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAogICAgICB0ZXN0 IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCgogICAgICAjIE5vdyBh ZGQgdGhlIGRpcmVjdG9yeSB0byBzaGxpYnBhdGhfdmFyLgogICAgICBpZiBl dmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsgdGhlbgoJZXZh bCAiJHNobGlicGF0aF92YXI9XCJcJGRpclwiIgogICAgICBlbHNlCglldmFs ICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIK ICAgICAgZmkKICAgIGRvbmUKCiAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMg d3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHNobGlicGF0aF92YXIKICAg ICMgcmF0aGVyIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KICAgIGxp YnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgoKICAgICMgQ2hlY2sgaWYg YW55IG9mIHRoZSBhcmd1bWVudHMgaXMgYSB3cmFwcGVyIHNjcmlwdC4KICAg IGFyZ3M9CiAgICBmb3IgZmlsZQogICAgZG8KICAgICAgY2FzZSAkZmlsZSBp bgogICAgICAtKiB8ICoubGEgfCAqLmxvICkgOzsKICAgICAgKikKCSMgRG8g YSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJv Z3JhbS4KCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkZmlsZSI7IHRo ZW4KCSAgZnVuY19zb3VyY2UgIiRmaWxlIgoJICAjIFRyYW5zZm9ybSBhcmcg dG8gd3JhcHBlZCBuYW1lLgoJICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIK CWVsaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRo ZW4KCSAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCgkgIGZ1 bmNfc291cmNlICIkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQi CgkgICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5hbWUuCgkgIGZpbGU9 IiRwcm9nZGlyLyRwcm9ncmFtIgoJZmkKCTs7CiAgICAgIGVzYWMKICAgICAg IyBRdW90ZSBhcmd1bWVudHMgKHRvIHByZXNlcnZlIHNoZWxsIG1ldGFjaGFy YWN0ZXJzKS4KICAgICAgZnVuY19hcHBlbmRfcXVvdGVkIGFyZ3MgIiRmaWxl IgogICAgZG9uZQoKICAgIGlmIHRlc3QgIlgkb3B0X2RyeV9ydW4iID0gWGZh bHNlOyB0aGVuCiAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsg dGhlbgoJIyBFeHBvcnQgdGhlIHNobGlicGF0aF92YXIuCglldmFsICJleHBv cnQgJHNobGlicGF0aF92YXIiCiAgICAgIGZpCgogICAgICAjIFJlc3RvcmUg c2F2ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgICAgIGZvciBsdF92YXIg aW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBM Q19NRVNTQUdFUwogICAgICBkbwoJZXZhbCAiaWYgdGVzdCBcIlwke3NhdmVf JGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KICAgICAgICAgICAgICAgICRs dF92YXI9XCRzYXZlXyRsdF92YXI7IGV4cG9ydCAkbHRfdmFyCgkgICAgICBl bHNlCgkJJGx0X3Vuc2V0ICRsdF92YXIKCSAgICAgIGZpIgogICAgICBkb25l CgogICAgICAjIE5vdyBwcmVwYXJlIHRvIGFjdHVhbGx5IGV4ZWMgdGhlIGNv bW1hbmQuCiAgICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgogICAgZWxzZQog ICAgICAjIERpc3BsYXkgd2hhdCB3b3VsZCBiZSBkb25lLgogICAgICBpZiB0 ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KCWV2YWwgIlwkRUNITyBc Ilwkc2hsaWJwYXRoX3Zhcj1cJCRzaGxpYnBhdGhfdmFyXCIiCgllY2hvICJl eHBvcnQgJHNobGlicGF0aF92YXIiCiAgICAgIGZpCiAgICAgICRFQ0hPICIk Y21kJGFyZ3MiCiAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwogICAgZmkKfQoK dGVzdCAiJG9wdF9tb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4ZWN1 dGUgJHsxKyIkQCJ9CgoKIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgpmdW5j X21vZGVfZmluaXNoICgpCnsKICAgICRvcHRfZGVidWcKICAgIGxpYnM9CiAg ICBsaWJkaXJzPQogICAgYWRtaW5jbWRzPQoKICAgIGZvciBvcHQgaW4gIiRu b25vcHQiICR7MSsiJEAifQogICAgZG8KICAgICAgaWYgdGVzdCAtZCAiJG9w dCI7IHRoZW4KCWxpYmRpcnMrPSIgJG9wdCIKCiAgICAgIGVsaWYgdGVzdCAt ZiAiJG9wdCI7IHRoZW4KCWlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRvcHQi OyB0aGVuCgkgIGxpYnMrPSIgJG9wdCIKCWVsc2UKCSAgZnVuY193YXJuaW5n ICJcYCRvcHQnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKCWZp CgogICAgICBlbHNlCglmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIGFyZ3Vt ZW50IFxgJG9wdCciCiAgICAgIGZpCiAgICBkb25lCgogICAgaWYgdGVzdCAt biAiJGxpYnMiOyB0aGVuCiAgICAgIGlmIHRlc3QgLW4gIiRsdF9zeXNyb290 IjsgdGhlbgogICAgICAgIHN5c3Jvb3RfcmVnZXg9YCRFQ0hPICIkbHRfc3lz cm9vdCIgfCAkU0VEICIkc2VkX21ha2VfbGl0ZXJhbF9yZWdleCJgCiAgICAg ICAgc3lzcm9vdF9jbWQ9InMvXChbICddXCkkc3lzcm9vdF9yZWdleC9cMS9n OyIKICAgICAgZWxzZQogICAgICAgIHN5c3Jvb3RfY21kPQogICAgICBmaQoK ICAgICAgIyBSZW1vdmUgc3lzcm9vdCByZWZlcmVuY2VzCiAgICAgIGlmICRv cHRfZHJ5X3J1bjsgdGhlbgogICAgICAgIGZvciBsaWIgaW4gJGxpYnM7IGRv CiAgICAgICAgICBlY2hvICJyZW1vdmluZyByZWZlcmVuY2VzIHRvICRsdF9z eXNyb290IGFuZCBcYD0nIHByZWZpeGVzIGZyb20gJGxpYiIKICAgICAgICBk b25lCiAgICAgIGVsc2UKICAgICAgICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGly YAogICAgICAgIGZvciBsaWIgaW4gJGxpYnM7IGRvCgkgIHNlZCAtZSAiJHtz eXNyb290X2NtZH0gcy9cKFsgJ10tW0xSXVwpPS9cMS9nOyBzL1woWyAnXVwp PS9cMS9nIiAkbGliIFwKCSAgICA+ICR0bXBkaXIvdG1wLWxhCgkgIG12IC1m ICR0bXBkaXIvdG1wLWxhICRsaWIKCWRvbmUKICAgICAgICAke1JNfXIgIiR0 bXBkaXIiCiAgICAgIGZpCiAgICBmaQoKICAgIGlmIHRlc3QgLW4gIiRmaW5p c2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0 aGVuCiAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCglpZiB0ZXN0 IC1uICIkZmluaXNoX2NtZHMiOyB0aGVuCgkgICMgRG8gZWFjaCBjb21tYW5k IGluIHRoZSBmaW5pc2ggY29tbWFuZHMuCgkgIGZ1bmNfZXhlY3V0ZV9jbWRz ICIkZmluaXNoX2NtZHMiICdhZG1pbmNtZHM9IiRhZG1pbmNtZHMKJyIkY21k IiciJwoJZmkKCWlmIHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KCSAg IyBEbyB0aGUgc2luZ2xlIGZpbmlzaF9ldmFsLgoJICBldmFsIGNtZHM9XCIk ZmluaXNoX2V2YWxcIgoJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZHMi IHx8IGFkbWluY21kcys9IgogICAgICAgJGNtZHMiCglmaQogICAgICBkb25l CiAgICBmaQoKICAgICMgRXhpdCBoZXJlIGlmIHRoZXkgd2FudGVkIHNpbGVu dCBtb2RlLgogICAgJG9wdF9zaWxlbnQgJiYgZXhpdCAkRVhJVF9TVUNDRVNT CgogICAgaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzJGZpbmlzaF9ldmFsIiAm JiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KICAgICAgZWNobyAiLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSIKICAgICAgZWNobyAiTGlicmFyaWVzIGhh dmUgYmVlbiBpbnN0YWxsZWQgaW46IgogICAgICBmb3IgbGliZGlyIGluICRs aWJkaXJzOyBkbwoJJEVDSE8gIiAgICRsaWJkaXIiCiAgICAgIGRvbmUKICAg ICAgZWNobwogICAgICBlY2hvICJJZiB5b3UgZXZlciBoYXBwZW4gdG8gd2Fu dCB0byBsaW5rIGFnYWluc3QgaW5zdGFsbGVkIGxpYnJhcmllcyIKICAgICAg ZWNobyAiaW4gYSBnaXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3Qg ZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQiCiAgICAgIGVjaG8gInNwZWNpZnkg dGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIGxpYnJhcnksIG9yIHVzZSB0aGUg XGAtTExJQkRJUiciCiAgICAgIGVjaG8gImZsYWcgZHVyaW5nIGxpbmtpbmcg YW5kIGRvIGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKICAgICAg aWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCgllY2hvICIgICAt IGFkZCBMSUJESVIgdG8gdGhlIFxgJHNobGlicGF0aF92YXInIGVudmlyb25t ZW50IHZhcmlhYmxlIgoJZWNobyAiICAgICBkdXJpbmcgZXhlY3V0aW9uIgog ICAgICBmaQogICAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVu CgllY2hvICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHJ1bnBhdGhfdmFy JyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKCWVjaG8gIiAgICAgZHVyaW5nIGxp bmtpbmciCiAgICAgIGZpCiAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjIjsgdGhlbgoJbGliZGlyPUxJQkRJUgoJZXZhbCBm bGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgoKCSRFQ0hPICIg ICAtIHVzZSB0aGUgXGAkZmxhZycgbGlua2VyIGZsYWciCiAgICAgIGZpCiAg ICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCgkkRUNITyAiICAg LSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgcnVuIHRoZXNlIGNv bW1hbmRzOiRhZG1pbmNtZHMiCiAgICAgIGZpCiAgICAgIGlmIHRlc3QgLWYg L2V0Yy9sZC5zby5jb25mOyB0aGVuCgllY2hvICIgICAtIGhhdmUgeW91ciBz eXN0ZW0gYWRtaW5pc3RyYXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5z by5jb25mJyIKICAgICAgZmkKICAgICAgZWNobwoKICAgICAgZWNobyAiU2Vl IGFueSBvcGVyYXRpbmcgc3lzdGVtIGRvY3VtZW50YXRpb24gYWJvdXQgc2hh cmVkIGxpYnJhcmllcyBmb3IiCiAgICAgIGNhc2UgJGhvc3QgaW4KCXNvbGFy aXMyLls2Nzg5XXxzb2xhcmlzMi4xWzAtOV0pCgkgIGVjaG8gIm1vcmUgaW5m b3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpLCBjcmxlKDEpIGFuZCBsZC5z byg4KSBtYW51YWwiCgkgIGVjaG8gInBhZ2VzLiIKCSAgOzsKCSopCgkgIGVj aG8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpIGFuZCBs ZC5zbyg4KSBtYW51YWwgcGFnZXMuIgoJICA7OwogICAgICBlc2FjCiAgICAg IGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCiAgICBmaQogICAg ZXhpdCAkRVhJVF9TVUNDRVNTCn0KCnRlc3QgIiRvcHRfbW9kZSIgPSBmaW5p c2ggJiYgZnVuY19tb2RlX2ZpbmlzaCAkezErIiRAIn0KCgojIGZ1bmNfbW9k ZV9pbnN0YWxsIGFyZy4uLgpmdW5jX21vZGVfaW5zdGFsbCAoKQp7CiAgICAk b3B0X2RlYnVnCiAgICAjIFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgx KSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCiAgICAjIGluc3RhbGxf cHJvZyAoZXNwZWNpYWxseSBvbiBXaW5kb3dzIE5UKS4KICAgIGlmIHRlc3Qg IiRub25vcHQiID0gIiRTSEVMTCIgfHwgdGVzdCAiJG5vbm9wdCIgPSAvYmlu L3NoIHx8CiAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdz IGluc3RhbGwgY29tbWFuZC4KICAgICAgIGNhc2UgJG5vbm9wdCBpbiAqc2h0 b29sKikgOjs7ICopIGZhbHNlOzsgZXNhYzsgdGhlbgogICAgICAjIEFlc3Ro ZXRpY2FsbHkgcXVvdGUgaXQuCiAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwg IiRub25vcHQiCiAgICAgIGluc3RhbGxfcHJvZz0iJGZ1bmNfcXVvdGVfZm9y X2V2YWxfcmVzdWx0ICIKICAgICAgYXJnPSQxCiAgICAgIHNoaWZ0CiAgICBl bHNlCiAgICAgIGluc3RhbGxfcHJvZz0KICAgICAgYXJnPSRub25vcHQKICAg IGZpCgogICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUg dGhlIG5hbWUgb2YgdGhlIGluc3RhbGxhdGlvbiBwcm9ncmFtLgogICAgIyBB ZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgogICAgZnVuY19xdW90ZV9mb3JfZXZh bCAiJGFyZyIKICAgIGluc3RhbGxfcHJvZys9IiRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCIKICAgIGluc3RhbGxfc2hhcmVkX3Byb2c9JGluc3RhbGxf cHJvZwogICAgY2FzZSAiICRpbnN0YWxsX3Byb2cgIiBpbgogICAgICAqW1xc XCAvXWNwXCAqKSBpbnN0YWxsX2NwPTogOzsKICAgICAgKikgaW5zdGFsbF9j cD1mYWxzZSA7OwogICAgZXNhYwoKICAgICMgV2UgbmVlZCB0byBhY2NlcHQg YXQgbGVhc3QgYWxsIHRoZSBCU0QgaW5zdGFsbCBmbGFncy4KICAgIGRlc3Q9 CiAgICBmaWxlcz0KICAgIG9wdHM9CiAgICBwcmV2PQogICAgaW5zdGFsbF90 eXBlPQogICAgaXNkaXI9bm8KICAgIHN0cmlwbWU9CiAgICBub19tb2RlPToK ICAgIGZvciBhcmcKICAgIGRvCiAgICAgIGFyZzI9CiAgICAgIGlmIHRlc3Qg LW4gIiRkZXN0IjsgdGhlbgoJZmlsZXMrPSIgJGRlc3QiCglkZXN0PSRhcmcK CWNvbnRpbnVlCiAgICAgIGZpCgogICAgICBjYXNlICRhcmcgaW4KICAgICAg LWQpIGlzZGlyPXllcyA7OwogICAgICAtZikKCWlmICRpbnN0YWxsX2NwOyB0 aGVuIDo7IGVsc2UKCSAgcHJldj0kYXJnCglmaQoJOzsKICAgICAgLWcgfCAt bSB8IC1vKQoJcHJldj0kYXJnCgk7OwogICAgICAtcykKCXN0cmlwbWU9IiAt cyIKCWNvbnRpbnVlCgk7OwogICAgICAtKikKCTs7CiAgICAgICopCgkjIElm IHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZGVkIGFuIGFyZ3VtZW50LCB0aGVu IHNraXAgaXQuCglpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KCSAgaWYgdGVz dCAieCRwcmV2IiA9IHgtbSAmJiB0ZXN0IC1uICIkaW5zdGFsbF9vdmVycmlk ZV9tb2RlIjsgdGhlbgoJICAgIGFyZzI9JGluc3RhbGxfb3ZlcnJpZGVfbW9k ZQoJICAgIG5vX21vZGU9ZmFsc2UKCSAgZmkKCSAgcHJldj0KCWVsc2UKCSAg ZGVzdD0kYXJnCgkgIGNvbnRpbnVlCglmaQoJOzsKICAgICAgZXNhYwoKICAg ICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBhcmd1bWVudC4KICAgICAg ZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKICAgICAgaW5zdGFsbF9wcm9n Kz0iICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKICAgICAgaWYgdGVz dCAtbiAiJGFyZzIiOyB0aGVuCglmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJn MiIKICAgICAgZmkKICAgICAgaW5zdGFsbF9zaGFyZWRfcHJvZys9IiAkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCiAgICBkb25lCgogICAgdGVzdCAt eiAiJGluc3RhbGxfcHJvZyIgJiYgXAogICAgICBmdW5jX2ZhdGFsX2hlbHAg InlvdSBtdXN0IHNwZWNpZnkgYW4gaW5zdGFsbCBwcm9ncmFtIgoKICAgIHRl c3QgLW4gIiRwcmV2IiAmJiBcCiAgICAgIGZ1bmNfZmF0YWxfaGVscCAidGhl IFxgJHByZXYnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIKCiAgICBp ZiB0ZXN0IC1uICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIiAmJiAkbm9fbW9k ZTsgdGhlbgogICAgICBpZiAkaW5zdGFsbF9jcDsgdGhlbiA6OyBlbHNlCglm dW5jX3F1b3RlX2Zvcl9ldmFsICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIgoJ aW5zdGFsbF9zaGFyZWRfcHJvZys9IiAtbSAkZnVuY19xdW90ZV9mb3JfZXZh bF9yZXN1bHQiCiAgICAgIGZpCiAgICBmaQoKICAgIGlmIHRlc3QgLXogIiRm aWxlcyI7IHRoZW4KICAgICAgaWYgdGVzdCAteiAiJGRlc3QiOyB0aGVuCglm dW5jX2ZhdGFsX2hlbHAgIm5vIGZpbGUgb3IgZGVzdGluYXRpb24gc3BlY2lm aWVkIgogICAgICBlbHNlCglmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNw ZWNpZnkgYSBkZXN0aW5hdGlvbiIKICAgICAgZmkKICAgIGZpCgogICAgIyBT dHJpcCBhbnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgZGVzdGluYXRpb24u CiAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRkZXN0IgogICAgZGVzdD0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0CgogICAgIyBDaGVjayB0byBzZWUgdGhh dCB0aGUgZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnkuCiAgICB0ZXN0IC1k ICIkZGVzdCIgJiYgaXNkaXI9eWVzCiAgICBpZiB0ZXN0ICIkaXNkaXIiID0g eWVzOyB0aGVuCiAgICAgIGRlc3RkaXI9IiRkZXN0IgogICAgICBkZXN0bmFt ZT0KICAgIGVsc2UKICAgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAi JGRlc3QiICIiICIuIgogICAgICBkZXN0ZGlyPSIkZnVuY19kaXJuYW1lX3Jl c3VsdCIKICAgICAgZGVzdG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIK CiAgICAgICMgTm90IGEgZGlyZWN0b3J5LCBzbyBjaGVjayB0byBzZWUgdGhh dCB0aGVyZSBpcyBvbmx5IG9uZSBmaWxlIHNwZWNpZmllZC4KICAgICAgc2V0 IGR1bW15ICRmaWxlczsgc2hpZnQKICAgICAgdGVzdCAiJCMiIC1ndCAxICYm IFwKCWZ1bmNfZmF0YWxfaGVscCAiXGAkZGVzdCcgaXMgbm90IGEgZGlyZWN0 b3J5IgogICAgZmkKICAgIGNhc2UgJGRlc3RkaXIgaW4KICAgIFtcXC9dKiB8 IFtBLVphLXpdOltcXC9dKikgOzsKICAgICopCiAgICAgIGZvciBmaWxlIGlu ICRmaWxlczsgZG8KCWNhc2UgJGZpbGUgaW4KCSoubG8pIDs7CgkqKQoJICBm dW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3RkaXInIG11c3QgYmUgYW4gYWJzb2x1 dGUgZGlyZWN0b3J5IG5hbWUiCgkgIDs7Cgllc2FjCiAgICAgIGRvbmUKICAg ICAgOzsKICAgIGVzYWMKCiAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3Jh cHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKICAg ICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgogICAgbGlidG9vbF9p bnN0YWxsX21hZ2ljPSIkbWFnaWMiCgogICAgc3RhdGljbGlicz0KICAgIGZ1 dHVyZV9saWJkaXJzPQogICAgY3VycmVudF9saWJkaXJzPQogICAgZm9yIGZp bGUgaW4gJGZpbGVzOyBkbwoKICAgICAgIyBEbyBlYWNoIGluc3RhbGxhdGlv bi4KICAgICAgY2FzZSAkZmlsZSBpbgogICAgICAqLiRsaWJleHQpCgkjIERv IHRoZSBzdGF0aWMgbGlicmFyaWVzIGxhdGVyLgoJc3RhdGljbGlicys9IiAk ZmlsZSIKCTs7CgogICAgICAqLmxhKQoJZnVuY19yZXNvbHZlX3N5c3Jvb3Qg IiRmaWxlIgoJZmlsZT0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CgoJ IyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wg YXJjaGl2ZS4KCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCgkgIHx8 IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGli dG9vbCBhcmNoaXZlIgoKCWxpYnJhcnlfbmFtZXM9CglvbGRfbGlicmFyeT0K CXJlbGlua19jb21tYW5kPQoJZnVuY19zb3VyY2UgIiRmaWxlIgoKCSMgQWRk IHRoZSBsaWJkaXIgdG8gY3VycmVudF9saWJkaXJzIGlmIGl0IGlzIHRoZSBk ZXN0aW5hdGlvbi4KCWlmIHRlc3QgIlgkZGVzdGRpciIgPSAiWCRsaWJkaXIi OyB0aGVuCgkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgoJICAqIiAk bGliZGlyICIqKSA7OwoJICAqKSBjdXJyZW50X2xpYmRpcnMrPSIgJGxpYmRp ciIgOzsKCSAgZXNhYwoJZWxzZQoJICAjIE5vdGUgdGhlIGxpYmRpciBhcyBh IGZ1dHVyZSBsaWJkaXIuCgkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGlu CgkgICoiICRsaWJkaXIgIiopIDs7CgkgICopIGZ1dHVyZV9saWJkaXJzKz0i ICRsaWJkaXIiIDs7CgkgIGVzYWMKCWZpCgoJZnVuY19kaXJuYW1lICIkZmls ZSIgIi8iICIiCglkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgoJZGlyKz0i JG9iamRpciIKCglpZiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVu CgkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhlIHVzZXIgaGFzIGFwcGxp ZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCgkgIGluc3RfcHJlZml4X2Rpcj1gJEVD SE8gIiRkZXN0ZGlyIiB8ICRTRUQgLWUgInMlJGxpYmRpclwkJSUiYAoKCSAg IyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9m IG91ciBleHBlY3RlZAoJICAjIGxvY2F0aW9uIGIvYyB0aGlzIHByZXZlbnRz IGZpbmRpbmcgZGVwZW5kZW50IGxpYnJhcmllcyB0aGF0CgkgICMgYXJlIGlu c3RhbGxlZCB0byB0aGUgc2FtZSBwcmVmaXguCgkgICMgQXQgcHJlc2VudCwg dGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5kbGwncyB0aGF0 CgkgICMgYXJlIGluc3RhbGxlZCBpbnRvICRsaWJkaXIvLi4vYmluIChjdXJy ZW50bHksIHRoYXQgd29ya3MgZmluZSkKCSAgIyBidXQgaXQncyBzb21ldGhp bmcgdG8ga2VlcCBhbiBleWUgb24uCgkgIHRlc3QgIiRpbnN0X3ByZWZpeF9k aXIiID0gIiRkZXN0ZGlyIiAmJiBcCgkgICAgZnVuY19mYXRhbF9lcnJvciAi ZXJyb3I6IGNhbm5vdCBpbnN0YWxsIFxgJGZpbGUnIHRvIGEgZGlyZWN0b3J5 IG5vdCBlbmRpbmcgaW4gJGxpYmRpciIKCgkgIGlmIHRlc3QgLW4gIiRpbnN0 X3ByZWZpeF9kaXIiOyB0aGVuCgkgICAgIyBTdGljayB0aGUgaW5zdF9wcmVm aXhfZGlyIGRhdGEgaW50byB0aGUgbGluayBjb21tYW5kLgoJICAgIHJlbGlu a19jb21tYW5kPWAkRUNITyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgInMl QGluc3RfcHJlZml4X2RpckAlLWluc3QtcHJlZml4LWRpciAkaW5zdF9wcmVm aXhfZGlyJSJgCgkgIGVsc2UKCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8g IiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJA JSUiYAoJICBmaQoKCSAgZnVuY193YXJuaW5nICJyZWxpbmtpbmcgXGAkZmls ZSciCgkgIGZ1bmNfc2hvd19ldmFsICIkcmVsaW5rX2NvbW1hbmQiIFwKCSAg ICAnZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJ1wn JyB3aXRoIHRoZSBhYm92ZSBjb21tYW5kIGJlZm9yZSBpbnN0YWxsaW5nIGl0 IicKCWZpCgoJIyBTZWUgdGhlIG5hbWVzIG9mIHRoZSBzaGFyZWQgbGlicmFy eS4KCXNldCBkdW1teSAkbGlicmFyeV9uYW1lczsgc2hpZnQKCWlmIHRlc3Qg LW4gIiQxIjsgdGhlbgoJICByZWFsbmFtZT0iJDEiCgkgIHNoaWZ0CgoJICBz cmNuYW1lPSIkcmVhbG5hbWUiCgkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFu ZCIgJiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKCgkgICMgSW5zdGFsbCB0aGUg c2hhcmVkIGxpYnJhcnkgYW5kIGJ1aWxkIHRoZSBzeW1saW5rcy4KCSAgZnVu Y19zaG93X2V2YWwgIiRpbnN0YWxsX3NoYXJlZF9wcm9nICRkaXIvJHNyY25h bWUgJGRlc3RkaXIvJHJlYWxuYW1lIiBcCgkgICAgICAnZXhpdCAkPycKCSAg dHN0cmlwbWU9IiRzdHJpcG1lIgoJICBjYXNlICRob3N0X29zIGluCgkgIGN5 Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKCSAgICBjYXNlICRy ZWFsbmFtZSBpbgoJICAgICouZGxsLmEpCgkgICAgICB0c3RyaXBtZT0iIgoJ ICAgICAgOzsKCSAgICBlc2FjCgkgICAgOzsKCSAgZXNhYwoJICBpZiB0ZXN0 IC1uICIkdHN0cmlwbWUiICYmIHRlc3QgLW4gIiRzdHJpcGxpYiI7IHRoZW4K CSAgICBmdW5jX3Nob3dfZXZhbCAiJHN0cmlwbGliICRkZXN0ZGlyLyRyZWFs bmFtZSIgJ2V4aXQgJD8nCgkgIGZpCgoJICBpZiB0ZXN0ICIkIyIgLWd0IDA7 IHRoZW4KCSAgICAjIERlbGV0ZSB0aGUgb2xkIHN5bWxpbmtzLCBhbmQgY3Jl YXRlIG5ldyBvbmVzLgoJICAgICMgVHJ5IGBsbiAtc2YnIGZpcnN0LCBiZWNh dXNlIHRoZSBgbG4nIGJpbmFyeSBtaWdodCBkZXBlbmQgb24KCSAgICAjIHRo ZSBzeW1saW5rIHdlIHJlcGxhY2UhICBTb2xhcmlzIC9iaW4vbG4gZG9lcyBu b3QgdW5kZXJzdGFuZCAtZiwKCSAgICAjIHNvIHdlIGFsc28gbmVlZCB0byB0 cnkgcm0gJiYgbG4gLXMuCgkgICAgZm9yIGxpbmtuYW1lCgkgICAgZG8KCSAg ICAgIHRlc3QgIiRsaW5rbmFtZSIgIT0gIiRyZWFsbmFtZSIgXAoJCSYmIGZ1 bmNfc2hvd19ldmFsICIoY2QgJGRlc3RkaXIgJiYgeyAkTE5fUyAtZiAkcmVh bG5hbWUgJGxpbmtuYW1lIHx8IHsgJFJNICRsaW5rbmFtZSAmJiAkTE5fUyAk cmVhbG5hbWUgJGxpbmtuYW1lOyB9OyB9KSIKCSAgICBkb25lCgkgIGZpCgoJ ICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFu ZHMuCgkgIGxpYj0iJGRlc3RkaXIvJHJlYWxuYW1lIgoJICBmdW5jX2V4ZWN1 dGVfY21kcyAiJHBvc3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/JwoJZmkKCgkj IEluc3RhbGwgdGhlIHBzZXVkby1saWJyYXJ5IGZvciBpbmZvcm1hdGlvbiBw dXJwb3Nlcy4KCWZ1bmNfYmFzZW5hbWUgIiRmaWxlIgoJbmFtZT0iJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgoJaW5zdG5hbWU9IiRkaXIvJG5hbWUiaQoJZnVu Y19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGluc3RuYW1lICRkZXN0ZGly LyRuYW1lIiAnZXhpdCAkPycKCgkjIE1heWJlIGluc3RhbGwgdGhlIHN0YXRp YyBsaWJyYXJ5LCB0b28uCgl0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHN0 YXRpY2xpYnMrPSIgJGRpci8kb2xkX2xpYnJhcnkiCgk7OwoKICAgICAgKi5s bykKCSMgSW5zdGFsbCAoaS5lLiBjb3B5KSBhIGxpYnRvb2wgb2JqZWN0LgoK CSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdh c24ndCBhbHJlYWR5IHNwZWNpZmllZC4KCWlmIHRlc3QgLW4gIiRkZXN0bmFt ZSI7IHRoZW4KCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKCWVs c2UKCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCgkgIGRlc3RmaWxlPSIkZnVu Y19iYXNlbmFtZV9yZXN1bHQiCgkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVz dGZpbGUiCglmaQoKCSMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBkZXN0aW5h dGlvbiBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCgljYXNlICRkZXN0ZmlsZSBp bgoJKi5sbykKCSAgZnVuY19sbzJvICIkZGVzdGZpbGUiCgkgIHN0YXRpY2Rl c3Q9JGZ1bmNfbG8yb19yZXN1bHQKCSAgOzsKCSouJG9iamV4dCkKCSAgc3Rh dGljZGVzdD0iJGRlc3RmaWxlIgoJICBkZXN0ZmlsZT0KCSAgOzsKCSopCgkg IGZ1bmNfZmF0YWxfaGVscCAiY2Fubm90IGNvcHkgYSBsaWJ0b29sIG9iamVj dCB0byBcYCRkZXN0ZmlsZSciCgkgIDs7Cgllc2FjCgoJIyBJbnN0YWxsIHRo ZSBsaWJ0b29sIG9iamVjdCBpZiByZXF1ZXN0ZWQuCgl0ZXN0IC1uICIkZGVz dGZpbGUiICYmIFwKCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cg JGZpbGUgJGRlc3RmaWxlIiAnZXhpdCAkPycKCgkjIEluc3RhbGwgdGhlIG9s ZCBvYmplY3QgaWYgZW5hYmxlZC4KCWlmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSB5ZXM7IHRoZW4KCSAgIyBEZWR1Y2UgdGhlIG5hbWUgb2YgdGhlIG9s ZC1zdHlsZSBvYmplY3QgZmlsZS4KCSAgZnVuY19sbzJvICIkZmlsZSIKCSAg c3RhdGljb2JqPSRmdW5jX2xvMm9fcmVzdWx0CgkgIGZ1bmNfc2hvd19ldmFs ICIkaW5zdGFsbF9wcm9nIFwkc3RhdGljb2JqIFwkc3RhdGljZGVzdCIgJ2V4 aXQgJD8nCglmaQoJZXhpdCAkRVhJVF9TVUNDRVNTCgk7OwoKICAgICAgKikK CSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdh c24ndCBhbHJlYWR5IHNwZWNpZmllZC4KCWlmIHRlc3QgLW4gIiRkZXN0bmFt ZSI7IHRoZW4KCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKCWVs c2UKCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCgkgIGRlc3RmaWxlPSIkZnVu Y19iYXNlbmFtZV9yZXN1bHQiCgkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVz dGZpbGUiCglmaQoKCSMgSWYgdGhlIGZpbGUgaXMgbWlzc2luZywgYW5kIHRo ZXJlIGlzIGEgLmV4ZSBvbiB0aGUgZW5kLCBzdHJpcCBpdAoJIyBiZWNhdXNl IGl0IGlzIG1vc3QgbGlrZWx5IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFs bHkgd2FudCB0bwoJIyBpbnN0YWxsCglzdHJpcHBlZF9leHQ9IiIKCWNhc2Ug JGZpbGUgaW4KCSAgKi5leGUpCgkgICAgaWYgdGVzdCAhIC1mICIkZmlsZSI7 IHRoZW4KCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUi CgkgICAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKCSAgICAgIHN0 cmlwcGVkX2V4dD0iLmV4ZSIKCSAgICBmaQoJICAgIDs7Cgllc2FjCgoJIyBE byBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBw cm9ncmFtLgoJY2FzZSAkaG9zdCBpbgoJKmN5Z3dpbiogfCAqbWluZ3cqKQoJ ICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0 aGVuCgkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIK CSAgICAgIHdyYXBwZXI9JGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVz dWx0CgkgICAgZWxzZQoJICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUn ICIkZmlsZSIKCSAgICAgIHdyYXBwZXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dAoJICAgIGZpCgkgICAgOzsKCSopCgkgICAgd3JhcHBlcj0kZmlsZQoJICAg IDs7Cgllc2FjCglpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJHdyYXBw ZXIiOyB0aGVuCgkgIG5vdGluc3RfZGVwbGlicz0KCSAgcmVsaW5rX2NvbW1h bmQ9CgoJICBmdW5jX3NvdXJjZSAiJHdyYXBwZXIiCgoJICAjIENoZWNrIHRo ZSB2YXJpYWJsZXMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHNldC4KCSAgdGVz dCAteiAiJGdlbmVyYXRlZF9ieV9saWJ0b29sX3ZlcnNpb24iICYmIFwKCSAg ICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBz Y3JpcHQgXGAkd3JhcHBlciciCgoJICBmaW5hbGl6ZT15ZXMKCSAgZm9yIGxp YiBpbiAkbm90aW5zdF9kZXBsaWJzOyBkbwoJICAgICMgQ2hlY2sgdG8gc2Vl IHRoYXQgZWFjaCBsaWJyYXJ5IGlzIGluc3RhbGxlZC4KCSAgICBsaWJkaXI9 CgkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KCSAgICAgIGZ1bmNfc291 cmNlICIkbGliIgoJICAgIGZpCgkgICAgbGliZmlsZT0iJGxpYmRpci8iYCRF Q0hPICIkbGliIiB8ICRTRUQgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6 IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAoJICAgIGlmIHRlc3QgLW4gIiRs aWJkaXIiICYmIHRlc3QgISAtZiAiJGxpYmZpbGUiOyB0aGVuCgkgICAgICBm dW5jX3dhcm5pbmcgIlxgJGxpYicgaGFzIG5vdCBiZWVuIGluc3RhbGxlZCBp biBcYCRsaWJkaXInIgoJICAgICAgZmluYWxpemU9bm8KCSAgICBmaQoJICBk b25lCgoJICByZWxpbmtfY29tbWFuZD0KCSAgZnVuY19zb3VyY2UgIiR3cmFw cGVyIgoKCSAgb3V0cHV0bmFtZT0KCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFs bCIgPSBubyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCgkg ICAgJG9wdF9kcnlfcnVuIHx8IHsKCSAgICAgIGlmIHRlc3QgIiRmaW5hbGl6 ZSIgPSB5ZXM7IHRoZW4KCSAgICAgICAgdG1wZGlyPWBmdW5jX21rdGVtcGRp cmAKCQlmdW5jX2Jhc2VuYW1lICIkZmlsZSRzdHJpcHBlZF9leHQiCgkJZmls ZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgoJICAgICAgICBvdXRwdXRuYW1l PSIkdG1wZGlyLyRmaWxlIgoJICAgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1 dCBmaWxlIHNwZWNpZmljYXRpb24uCgkgICAgICAgIHJlbGlua19jb21tYW5k PWAkRUNITyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAl JyIkb3V0cHV0bmFtZSInJWcnYAoKCSAgICAgICAgJG9wdF9zaWxlbnQgfHwg ewoJICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJHJlbGlua19j b21tYW5kIgoJCSAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9l eHBhbmRfcmVzdWx0IgoJICAgICAgICB9CgkgICAgICAgIGlmIGV2YWwgIiRy ZWxpbmtfY29tbWFuZCI7IHRoZW4gOgoJICAgICAgICAgIGVsc2UKCQkgIGZ1 bmNfZXJyb3IgImVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJv dmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIKCQkgICRvcHRfZHJ5 X3J1biB8fCAke1JNfXIgIiR0bXBkaXIiCgkJICBjb250aW51ZQoJICAgICAg ICBmaQoJICAgICAgICBmaWxlPSIkb3V0cHV0bmFtZSIKCSAgICAgIGVsc2UK CSAgICAgICAgZnVuY193YXJuaW5nICJjYW5ub3QgcmVsaW5rIFxgJGZpbGUn IgoJICAgICAgZmkKCSAgICB9CgkgIGVsc2UKCSAgICAjIEluc3RhbGwgdGhl IGJpbmFyeSB0aGF0IHdlIGNvbXBpbGVkIGVhcmxpZXIuCgkgICAgZmlsZT1g JEVDSE8gIiRmaWxlJHN0cmlwcGVkX2V4dCIgfCAkU0VEICJzJVwoW14vXSpc KSQlJG9iamRpci9cMSUiYAoJICBmaQoJZmkKCgkjIHJlbW92ZSAuZXhlIHNp bmNlIGN5Z3dpbiAvdXNyL2Jpbi9pbnN0YWxsIHdpbGwgYXBwZW5kIGFub3Ro ZXIKCSMgb25lIGFueXdheQoJY2FzZSAkaW5zdGFsbF9wcm9nLCRob3N0IGlu CgkqL3Vzci9iaW4vaW5zdGFsbCosKmN5Z3dpbiopCgkgIGNhc2UgJGZpbGU6 JGRlc3RmaWxlIGluCgkgICouZXhlOiouZXhlKQoJICAgICMgdGhpcyBpcyBv awoJICAgIDs7CgkgICouZXhlOiopCgkgICAgZGVzdGZpbGU9JGRlc3RmaWxl LmV4ZQoJICAgIDs7CgkgICo6Ki5leGUpCgkgICAgZnVuY19zdHJpcG5hbWUg JycgJy5leGUnICIkZGVzdGZpbGUiCgkgICAgZGVzdGZpbGU9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdAoJICAgIDs7CgkgIGVzYWMKCSAgOzsKCWVzYWMKCWZ1 bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBc JGRlc3RmaWxlIiAnZXhpdCAkPycKCSRvcHRfZHJ5X3J1biB8fCBpZiB0ZXN0 IC1uICIkb3V0cHV0bmFtZSI7IHRoZW4KCSAgJHtSTX1yICIkdG1wZGlyIgoJ ZmkKCTs7CiAgICAgIGVzYWMKICAgIGRvbmUKCiAgICBmb3IgZmlsZSBpbiAk c3RhdGljbGliczsgZG8KICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCiAg ICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKCiAgICAgICMgU2V0 IHVwIHRoZSByYW5saWIgcGFyYW1ldGVycy4KICAgICAgb2xkbGliPSIkZGVz dGRpci8kbmFtZSIKICAgICAgZnVuY190b190b29sX2ZpbGUgIiRvbGRsaWIi IGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCiAgICAgIHRvb2xfb2xk bGliPSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKCiAgICAgIGZ1bmNfc2hv d19ldmFsICIkaW5zdGFsbF9wcm9nIFwkZmlsZSBcJG9sZGxpYiIgJ2V4aXQg JD8nCgogICAgICBpZiB0ZXN0IC1uICIkc3RyaXBtZSIgJiYgdGVzdCAtbiAi JG9sZF9zdHJpcGxpYiI7IHRoZW4KCWZ1bmNfc2hvd19ldmFsICIkb2xkX3N0 cmlwbGliICR0b29sX29sZGxpYiIgJ2V4aXQgJD8nCiAgICAgIGZpCgogICAg ICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFu ZHMuCiAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3RpbnN0YWxs X2NtZHMiICdleGl0ICQ/JwogICAgZG9uZQoKICAgIHRlc3QgLW4gIiRmdXR1 cmVfbGliZGlycyIgJiYgXAogICAgICBmdW5jX3dhcm5pbmcgInJlbWVtYmVy IHRvIHJ1biBcYCRwcm9nbmFtZSAtLWZpbmlzaCRmdXR1cmVfbGliZGlycyci CgogICAgaWYgdGVzdCAtbiAiJGN1cnJlbnRfbGliZGlycyI7IHRoZW4KICAg ICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KICAgICAgJG9wdF9kcnlf cnVuICYmIGN1cnJlbnRfbGliZGlycz0iIC1uJGN1cnJlbnRfbGliZGlycyIK ICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2Fy Z3MgLS1maW5pc2gkY3VycmVudF9saWJkaXJzJwogICAgZWxzZQogICAgICBl eGl0ICRFWElUX1NVQ0NFU1MKICAgIGZpCn0KCnRlc3QgIiRvcHRfbW9kZSIg PSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQoKCiMg ZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmlnaW5hdG9yIHBp Y19wCiMgRXh0cmFjdCBzeW1ib2xzIGZyb20gZGxwcmVmaWxlcyBhbmQgY3Jl YXRlICR7b3V0cHV0bmFtZX1TLm8gd2l0aAojIGEgZGxwcmVvcGVuIHN5bWJv bCB0YWJsZS4KZnVuY19nZW5lcmF0ZV9kbHN5bXMgKCkKewogICAgJG9wdF9k ZWJ1ZwogICAgbXlfb3V0cHV0bmFtZT0iJDEiCiAgICBteV9vcmlnaW5hdG9y PSIkMiIKICAgIG15X3BpY19wPSIkezMtbm99IgogICAgbXlfcHJlZml4PWAk RUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2VkICdzJVteYS16QS1aMC05XSVf JWcnYAogICAgbXlfZGxzeW1zPQoKICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVz JGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCiAg ICAgIGlmIHRlc3QgLW4gIiROTSIgJiYgdGVzdCAtbiAiJGdsb2JhbF9zeW1i b2xfcGlwZSI7IHRoZW4KCW15X2Rsc3ltcz0iJHtteV9vdXRwdXRuYW1lfVMu YyIKICAgICAgZWxzZQoJZnVuY19lcnJvciAibm90IGNvbmZpZ3VyZWQgdG8g ZXh0cmFjdCBnbG9iYWwgc3ltYm9scyBmcm9tIGRscHJlb3BlbmVkIGZpbGVz IgogICAgICBmaQogICAgZmkKCiAgICBpZiB0ZXN0IC1uICIkbXlfZGxzeW1z IjsgdGhlbgogICAgICBjYXNlICRteV9kbHN5bXMgaW4KICAgICAgIiIpIDs7 CiAgICAgICouYykKCSMgRGlzY292ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2Yg dGhlIGRsZmlsZXMuCglubGlzdD0iJG91dHB1dF9vYmpkaXIvJHtteV9vdXRw dXRuYW1lfS5ubSIKCglmdW5jX3Nob3dfZXZhbCAiJFJNICRubGlzdCAke25s aXN0fVMgJHtubGlzdH1UIgoKCSMgUGFyc2UgdGhlIG5hbWUgbGlzdCBpbnRv IGEgc291cmNlIGZpbGUuCglmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRw dXRfb2JqZGlyLyRteV9kbHN5bXMiCgoJJG9wdF9kcnlfcnVuIHx8ICRFQ0hP ID4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi8qICRteV9kbHN5 bXMgLSBzeW1ib2wgcmVzb2x1dGlvbiB0YWJsZSBmb3IgXGAkbXlfb3V0cHV0 bmFtZScgZGxzeW0gZW11bGF0aW9uLiAqLwovKiBHZW5lcmF0ZWQgYnkgJFBS T0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OICovCgoj aWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuIFwiQ1wiIHsKI2VuZGlmCgojaWYg ZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gNCkgJiYgKF9f R05VQ19NSU5PUl9fID49IDQpKSB8fCAoX19HTlVDX18gPiA0KSkKI3ByYWdt YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkIFwiLVdzdHJpY3QtcHJvdG90eXBl c1wiCiNlbmRpZgoKLyogS2VlcCB0aGlzIGNvZGUgaW4gc3luYyBiZXR3ZWVu IGxpYnRvb2wubTQsIGx0bWFpbiwgbHRfc3lzdGVtLmgsIGFuZCB0ZXN0cy4g ICovCiNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9f KSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCi8qIERBVEEgaW1wb3J0cyBmcm9t IERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UgcnVudGlt ZQogICByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRv Y3VtZW50YXRpb24gb24gcHNldWRvLXJlbG9jcy4gICovCiMgZGVmaW5lIExU X0RMU1lNX0NPTlNUCiNlbGlmIGRlZmluZWQoX19vc2ZfXykKLyogVGhpcyBz eXN0ZW0gZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggcmVsb2NhdGlvbnMgaW4g Y29uc3QgZGF0YS4gICovCiMgZGVmaW5lIExUX0RMU1lNX0NPTlNUCiNlbHNl CiMgZGVmaW5lIExUX0RMU1lNX0NPTlNUIGNvbnN0CiNlbmRpZgoKLyogRXh0 ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGNvbXBpbGVyLiAq L1wKIgoKCWlmIHRlc3QgIiRkbHNlbGYiID0geWVzOyB0aGVuCgkgIGZ1bmNf dmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkb3V0cHV0 JyIKCgkgICRvcHRfZHJ5X3J1biB8fCBlY2hvICc6IEBQUk9HUkFNQCAnID4g IiRubGlzdCIKCgkgICMgQWRkIG91ciBvd24gcHJvZ3JhbSBvYmplY3RzIHRv IHRoZSBzeW1ib2wgbGlzdC4KCSAgcHJvZ2ZpbGVzPWAkRUNITyAiJG9ianMk b2xkX2RlcGxpYnMiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQ YAoJICBmb3IgcHJvZ2ZpbGUgaW4gJHByb2dmaWxlczsgZG8KCSAgICBmdW5j X3RvX3Rvb2xfZmlsZSAiJHByb2dmaWxlIiBmdW5jX2NvbnZlcnRfZmlsZV9t c3lzX3RvX3czMgoJICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBnbG9i YWwgQyBzeW1ib2xzIGZyb20gXGAkZnVuY190b190b29sX2ZpbGVfcmVzdWx0 JyIKCSAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJE5NICRmdW5jX3RvX3Rv b2xfZmlsZV9yZXN1bHQgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxp c3QnIgoJICBkb25lCgoJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1z IjsgdGhlbgoJICAgICRvcHRfZHJ5X3J1biB8fCB7CgkgICAgICBldmFsICck RUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIk bmxpc3QiVCcKCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCIn CgkgICAgfQoJICBmaQoKCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xz X3JlZ2V4IjsgdGhlbgoJICAgICRvcHRfZHJ5X3J1biB8fCB7CgkgICAgICBl dmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRubGlz dCIgPiAiJG5saXN0IlQnCgkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIk bmxpc3QiJwoJICAgIH0KCSAgZmkKCgkgICMgUHJlcGFyZSB0aGUgbGlzdCBv ZiBleHBvcnRlZCBzeW1ib2xzCgkgIGlmIHRlc3QgLXogIiRleHBvcnRfc3lt Ym9scyI7IHRoZW4KCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpk aXIvJG91dHB1dG5hbWUuZXhwIgoJICAgICRvcHRfZHJ5X3J1biB8fCB7Cgkg ICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCgkgICAgICBldmFsICIke1NFRH0g LW4gLWUgJy9eOiBAUFJPR1JBTUAgJC9kJyAtZSAncy9eLiogXCguKlwpJC9c MS9wJyAiJzwgIiRubGlzdCIgPiAiJGV4cG9ydF9zeW1ib2xzIicKCSAgICAg IGNhc2UgJGhvc3QgaW4KCSAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpj ZWdjYyogKQogICAgICAgICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICIn PiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKICAgICAgICAg ICAgICAgIGV2YWwgJ2NhdCAiJGV4cG9ydF9zeW1ib2xzIiA+PiAiJG91dHB1 dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKCSAgICAgICAgOzsKCSAgICAg IGVzYWMKCSAgICB9CgkgIGVsc2UKCSAgICAkb3B0X2RyeV9ydW4gfHwgewoJ ICAgICAgZXZhbCAiJHtTRUR9IC1lICdzL1woW10uWypeJF1cKS9cXFxcXDEv ZycgLWUgJ3MvXi8gLycgLWUgJ3MvJC8kLyciJyA8ICIkZXhwb3J0X3N5bWJv bHMiID4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCInCgkgICAg ICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUu ZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJUJwoJICAgICAgZXZhbCAnJE1W ICIkbmxpc3QiVCAiJG5saXN0IicKCSAgICAgIGNhc2UgJGhvc3QgaW4KCSAg ICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCgkgICAgICAg ICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91 dHB1dG5hbWUuZGVmIicKCSAgICAgICAgICBldmFsICdjYXQgIiRubGlzdCIg Pj4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCgkgICAgICAg ICAgOzsKCSAgICAgIGVzYWMKCSAgICB9CgkgIGZpCglmaQoKCWZvciBkbHBy ZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCgkgIGZ1bmNfdmVyYm9zZSAiZXh0 cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkZGxwcmVmaWxlJyIK CSAgZnVuY19iYXNlbmFtZSAiJGRscHJlZmlsZSIKCSAgbmFtZT0iJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgogICAgICAgICAgY2FzZSAkaG9zdCBpbgoJICAg ICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQoJICAgICAgIyBpZiBh biBpbXBvcnQgbGlicmFyeSwgd2UgbmVlZCB0byBvYnRhaW4gZGxuYW1lCgkg ICAgICBpZiBmdW5jX3dpbjMyX2ltcG9ydF9saWJfcCAiJGRscHJlZmlsZSI7 IHRoZW4KCSAgICAgICAgZnVuY190cl9zaCAiJGRscHJlZmlsZSIKCSAgICAg ICAgZXZhbCAiY3Vycl9sYWZpbGU9XCRsaWJmaWxlXyRmdW5jX3RyX3NoX3Jl c3VsdCIKCSAgICAgICAgZGxwcmVmaWxlX2RsYmFzZW5hbWU9IiIKCSAgICAg ICAgaWYgdGVzdCAtbiAiJGN1cnJfbGFmaWxlIiAmJiBmdW5jX2xhbGliX3Ag IiRjdXJyX2xhZmlsZSI7IHRoZW4KCSAgICAgICAgICAjIFVzZSBzdWJzaGVs bCwgdG8gYXZvaWQgY2xvYmJlcmluZyBjdXJyZW50IHZhcmlhYmxlIHZhbHVl cwoJICAgICAgICAgIGRscHJlZmlsZV9kbG5hbWU9YHNvdXJjZSAiJGN1cnJf bGFmaWxlIiAmJiBlY2hvICIkZGxuYW1lImAKCSAgICAgICAgICBpZiB0ZXN0 IC1uICIkZGxwcmVmaWxlX2RsbmFtZSIgOyB0aGVuCgkgICAgICAgICAgICBm dW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlX2RsbmFtZSIKCSAgICAgICAgICAg IGRscHJlZmlsZV9kbGJhc2VuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQi CgkgICAgICAgICAgZWxzZQoJICAgICAgICAgICAgIyBubyBsYWZpbGUuIHVz ZXIgZXhwbGljaXRseSByZXF1ZXN0ZWQgLWRscHJlb3BlbiA8aW1wb3J0IGxp YnJhcnk+LgoJICAgICAgICAgICAgJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJf Y21kICIkZGxwcmVmaWxlIgoJICAgICAgICAgICAgZGxwcmVmaWxlX2RsYmFz ZW5hbWU9JHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0CgkgICAgICAg ICAgZmkKCSAgICAgICAgZmkKCSAgICAgICAgJG9wdF9kcnlfcnVuIHx8IHsK CSAgICAgICAgICBpZiB0ZXN0IC1uICIkZGxwcmVmaWxlX2RsYmFzZW5hbWUi IDsgdGhlbgoJICAgICAgICAgICAgZXZhbCAnJEVDSE8gIjogJGRscHJlZmls ZV9kbGJhc2VuYW1lIiA+PiAiJG5saXN0IicKCSAgICAgICAgICBlbHNlCgkg ICAgICAgICAgICBmdW5jX3dhcm5pbmcgIkNvdWxkIG5vdCBjb21wdXRlIERM TCBuYW1lIGZyb20gJG5hbWUiCgkgICAgICAgICAgICBldmFsICckRUNITyAi OiAkbmFtZSAiID4+ICIkbmxpc3QiJwoJICAgICAgICAgIGZpCgkgICAgICAg ICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVy dF9maWxlX21zeXNfdG9fdzMyCgkgICAgICAgICAgZXZhbCAiJE5NIFwiJGZ1 bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIDI+L2Rldi9udWxsIHwgJGdsb2Jh bF9zeW1ib2xfcGlwZSB8CgkgICAgICAgICAgICAkU0VEIC1lICcvSSBfX2lt cC9kJyAtZSAncy9JIF9fbm1fL0QgLztzL19ubV9fLy8nID4+ICckbmxpc3Qn IgoJICAgICAgICB9CgkgICAgICBlbHNlICMgbm90IGFuIGltcG9ydCBsaWIK CSAgICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKCSAgICAgICAgICBldmFsICck RUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJwoJICAgICAgICAgIGZ1bmNf dG9fdG9vbF9maWxlICIkZGxwcmVmaWxlIiBmdW5jX2NvbnZlcnRfZmlsZV9t c3lzX3RvX3czMgoJICAgICAgICAgIGV2YWwgIiROTSBcIiRmdW5jX3RvX3Rv b2xfZmlsZV9yZXN1bHRcIiAyPi9kZXYvbnVsbCB8ICRnbG9iYWxfc3ltYm9s X3BpcGUgPj4gJyRubGlzdCciCgkgICAgICAgIH0KCSAgICAgIGZpCgkgICAg OzsKCSAgICAqKQoJICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKCSAgICAgICAg ZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicKCSAgICAgICAg ZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVydF9m aWxlX21zeXNfdG9fdzMyCgkgICAgICAgIGV2YWwgIiROTSBcIiRmdW5jX3Rv X3Rvb2xfZmlsZV9yZXN1bHRcIiAyPi9kZXYvbnVsbCB8ICRnbG9iYWxfc3lt Ym9sX3BpcGUgPj4gJyRubGlzdCciCgkgICAgICB9CgkgICAgOzsKICAgICAg ICAgIGVzYWMKCWRvbmUKCgkkb3B0X2RyeV9ydW4gfHwgewoJICAjIE1ha2Ug c3VyZSB3ZSBoYXZlIGF0IGxlYXN0IGFuIGVtcHR5IGZpbGUuCgkgIHRlc3Qg LWYgIiRubGlzdCIgfHwgOiA+ICIkbmxpc3QiCgoJICBpZiB0ZXN0IC1uICIk ZXhjbHVkZV9leHBzeW1zIjsgdGhlbgoJICAgICRFR1JFUCAtdiAiICgkZXhj bHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUCgkgICAgJE1W ICIkbmxpc3QiVCAiJG5saXN0IgoJICBmaQoKCSAgIyBUcnkgc29ydGluZyBh bmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KCSAgaWYgJEdSRVAgLXYgIl46 ICIgPCAiJG5saXN0IiB8CgkgICAgICBpZiBzb3J0IC1rIDMgPC9kZXYvbnVs bCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KCQlzb3J0IC1rIDMKCSAgICAgIGVs c2UKCQlzb3J0ICsyCgkgICAgICBmaSB8CgkgICAgICB1bmlxID4gIiRubGlz dCJTOyB0aGVuCgkgICAgOgoJICBlbHNlCgkgICAgJEdSRVAgLXYgIl46ICIg PCAiJG5saXN0IiA+ICIkbmxpc3QiUwoJICBmaQoKCSAgaWYgdGVzdCAtZiAi JG5saXN0IlM7IHRoZW4KCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19j ZGVjbCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxz eW1zIicKCSAgZWxzZQoJICAgIGVjaG8gJy8qIE5PTkUgKi8nID4+ICIkb3V0 cHV0X29iamRpci8kbXlfZGxzeW1zIgoJICBmaQoKCSAgZWNobyA+PiAiJG91 dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKCi8qIFRoZSBtYXBwaW5nIGJl dHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KdHlwZWRlZiBz dHJ1Y3QgewogIGNvbnN0IGNoYXIgKm5hbWU7CiAgdm9pZCAqYWRkcmVzczsK fSBsdF9kbHN5bWxpc3Q7CmV4dGVybiBMVF9ETFNZTV9DT05TVCBsdF9kbHN5 bWxpc3QKbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1td OwpMVF9ETFNZTV9DT05TVCBsdF9kbHN5bWxpc3QKbHRfJHtteV9wcmVmaXh9 X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdID0Ke1wKICB7IFwiJG15X29yaWdp bmF0b3JcIiwgKHZvaWQgKikgMCB9LCIKCgkgIGNhc2UgJG5lZWRfbGliX3By ZWZpeCBpbgoJICBubykKCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIv JG15X2Rsc3ltcyIKCSAgICA7OwoJICAqKQoJICAgIGV2YWwgIiRnbG9iYWxf c3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIDwgIiRubGlz dCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCgkgICAgOzsKCSAg ZXNhYwoJICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAi XAogIHswLCAodm9pZCAqKSAwfQp9OwoKLyogVGhpcyB3b3JrcyBhcm91bmQg YSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCiNpZmRlZiBGUkVFQlNE X1dPUktBUk9VTkQKc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9z ZXR1cCgpIHsKICByZXR1cm4gbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2Fk ZWRfc3ltYm9sczsKfQojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNl bmRpZlwKIgoJfSAjICEkb3B0X2RyeV9ydW4KCglwaWNfZmxhZ19mb3Jfc3lt dGFibGU9CgljYXNlICIkY29tcGlsZV9jb21tYW5kICIgaW4KCSoiIC1zdGF0 aWMgIiopIDs7CgkqKQoJICBjYXNlICRob3N0IGluCgkgICMgY29tcGlsaW5n IHRoZSBzeW1ib2wgdGFibGUgZmlsZSB3aXRoIHBpY19mbGFnIHdvcmtzIGFy b3VuZAoJICAjIGEgRnJlZUJTRCBidWcgdGhhdCBjYXVzZXMgcHJvZ3JhbXMg dG8gY3Jhc2ggd2hlbiAtbG0gaXMKCSAgIyBsaW5rZWQgYmVmb3JlIGFueSBv dGhlciBQSUMgb2JqZWN0LiAgQnV0IHdlIG11c3Qgbm90IHVzZQoJICAjIHBp Y19mbGFnIHdoZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBUaGUgcHJvYmxl bSBleGlzdHMgaW4KCSAgIyBGcmVlQlNEIDIuMi42IGFuZCBpcyBmaXhlZCBp biBGcmVlQlNEIDMuMS4KCSAgKi0qLWZyZWVic2QyLip8Ki0qLWZyZWVic2Qz LjAqfCotKi1mcmVlYnNkZWxmMy4wKikKCSAgICBwaWNfZmxhZ19mb3Jfc3lt dGFibGU9IiAkcGljX2ZsYWcgLURGUkVFQlNEX1dPUktBUk9VTkQiIDs7Cgkg ICotKi1ocHV4KikKCSAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGlj X2ZsYWciICA7OwoJICAqKQoJICAgIGlmIHRlc3QgIlgkbXlfcGljX3AiICE9 IFhubzsgdGhlbgoJICAgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBp Y19mbGFnIgoJICAgIGZpCgkgICAgOzsKCSAgZXNhYwoJICA7OwoJZXNhYwoJ c3ltdGFiX2NmbGFncz0KCWZvciBhcmcgaW4gJExUQ0ZMQUdTOyBkbwoJICBj YXNlICRhcmcgaW4KCSAgLXBpZSB8IC1mcGllIHwgLWZQSUUpIDs7CgkgICop IHN5bXRhYl9jZmxhZ3MrPSIgJGFyZyIgOzsKCSAgZXNhYwoJZG9uZQoKCSMg Tm93IGNvbXBpbGUgdGhlIGR5bmFtaWMgc3ltYm9sIGZpbGUuCglmdW5jX3No b3dfZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRMVENDJHN5bXRhYl9j ZmxhZ3MgLWMkbm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zvcl9zeW10YWJs ZSAiJG15X2Rsc3ltcyIpJyAnZXhpdCAkPycKCgkjIENsZWFuIHVwIHRoZSBn ZW5lcmF0ZWQgZmlsZXMuCglmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0 X29iamRpci8kbXlfZGxzeW1zIiAiJG5saXN0IiAiJHtubGlzdH1TIiAiJHtu bGlzdH1UIicKCgkjIFRyYW5zZm9ybSB0aGUgc3ltYm9sIGZpbGUgaW50byB0 aGUgY29ycmVjdCBuYW1lLgoJc3ltZmlsZW9iaj0iJG91dHB1dF9vYmpkaXIv JHtteV9vdXRwdXRuYW1lfVMuJG9iamV4dCIKCWNhc2UgJGhvc3QgaW4KCSpj eWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQoJICBpZiB0ZXN0IC1mICIk b3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYiOyB0aGVuCgkgICAg Y29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAk U0VEICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFt ZS5kZWYgJHN5bWZpbGVvYmolImAKCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAk RUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAl JG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2Jq JSJgCgkgIGVsc2UKCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29t cGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2Jq JSJgCgkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9j b21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCgkg IGZpCgkgIDs7CgkqKQoJICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29t cGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2Jq JSJgCgkgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29t bWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAoJICA7 OwoJZXNhYwoJOzsKICAgICAgKikKCWZ1bmNfZmF0YWxfZXJyb3IgInVua25v d24gc3VmZml4IGZvciBcYCRteV9kbHN5bXMnIgoJOzsKICAgICAgZXNhYwog ICAgZWxzZQogICAgICAjIFdlIGtlZXAgZ29pbmcganVzdCBpbiBjYXNlIHRo ZSB1c2VyIGRpZG4ndCByZWZlciB0bwogICAgICAjIGx0X3ByZWxvYWRlZF9z eW1ib2xzLiAgVGhlIGxpbmtlciB3aWxsIGZhaWwgaWYgZ2xvYmFsX3N5bWJv bF9waXBlCiAgICAgICMgcmVhbGx5IHdhcyByZXF1aXJlZC4KCiAgICAgICMg TnVsbGlmeSB0aGUgc3ltYm9sIGZpbGUuCiAgICAgIGNvbXBpbGVfY29tbWFu ZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNFRCAicyUgQFNZTUZJ TEVAJSUiYAogICAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFs aXplX2NvbW1hbmQiIHwgJFNFRCAicyUgQFNZTUZJTEVAJSUiYAogICAgZmkK fQoKIyBmdW5jX3dpbjMyX2xpYmlkIGFyZwojIHJldHVybiB0aGUgbGlicmFy eSB0eXBlIG9mIGZpbGUgJ2FyZycKIwojIE5lZWQgYSBsb3Qgb2YgZ29vIHRv IGhhbmRsZSAqYm90aCogRExMcyBhbmQgaW1wb3J0IGxpYnMKIyBIYXMgdG8g YmUgYSBzaGVsbCBmdW5jdGlvbiBpbiBvcmRlciB0byAnZWF0JyB0aGUgYXJn dW1lbnQKIyB0aGF0IGlzIHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29t bWFuZCBpcyBjYWxsZWQuCiMgRGVzcGl0ZSB0aGUgbmFtZSwgYWxzbyBkZWFs IHdpdGggNjQgYml0IGJpbmFyaWVzLgpmdW5jX3dpbjMyX2xpYmlkICgpCnsK ICAkb3B0X2RlYnVnCiAgd2luMzJfbGliaWRfdHlwZT0idW5rbm93biIKICB3 aW4zMl9maWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAogIGNhc2Ug JHdpbjMyX2ZpbGVyZXMgaW4KICAqYXJcIGFyY2hpdmVcIGltcG9ydFwgbGli cmFyeSopICMgZGVmaW5pdGVseSBpbXBvcnQKICAgIHdpbjMyX2xpYmlkX3R5 cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKICAgIDs7CiAgKmFyXCBhcmNoaXZl KikgIyBjb3VsZCBiZSBhbiBpbXBvcnQsIG9yIHN0YXRpYwogICAgIyBLZWVw IHRoZSBlZ3JlcCBwYXR0ZXJuIGluIHN5bmMgd2l0aCB0aGUgb25lIGluIF9M VF9DSEVDS19NQUdJQ19NRVRIT0QuCiAgICBpZiBldmFsICRPQkpEVU1QIC1m ICQxIHwgJFNFRCAtZSAnMTBxJyAyPi9kZXYvbnVsbCB8CiAgICAgICAkRUdS RVAgJ2ZpbGUgZm9ybWF0IChwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkz ODYpP3xwZS1hcm0td2luY2V8cGUteDg2LTY0KScgPi9kZXYvbnVsbDsgdGhl bgogICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJDEiIGZ1bmNfY29udmVydF9m aWxlX21zeXNfdG9fdzMyCiAgICAgIHdpbjMyX25tcmVzPWBldmFsICROTSAt ZiBwb3NpeCAtQSBcIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHRcIiB8Cgkk U0VEIC1uIC1lICcKCSAgICAxLDEwMHsKCQkvIEkgL3sKCQkgICAgcywuKixp bXBvcnQsCgkJICAgIHAKCQkgICAgcQoJCX0KCSAgICB9J2AKICAgICAgY2Fz ZSAkd2luMzJfbm1yZXMgaW4KICAgICAgaW1wb3J0KikgIHdpbjMyX2xpYmlk X3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCI7OwogICAgICAqKSAgICAgICAg d2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgc3RhdGljIjs7CiAgICAg IGVzYWMKICAgIGZpCiAgICA7OwogICpETEwqKQogICAgd2luMzJfbGliaWRf dHlwZT0ieDg2IERMTCIKICAgIDs7CiAgKmV4ZWN1dGFibGUqKSAjIGJ1dCBz aGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCiAgICBjYXNl ICR3aW4zMl9maWxlcmVzIGluCiAgICAqTVNcIFdpbmRvd3NcIFBFXCBJbnRl bCopCiAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCiAgICAgIDs7 CiAgICBlc2FjCiAgICA7OwogIGVzYWMKICAkRUNITyAiJHdpbjMyX2xpYmlk X3R5cGUiCn0KCiMgZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliIEFSRwoj CiMgUGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUK IyBuYW1lIG9mIHRoZSBETEwgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZp ZWQKIyBpbXBvcnQgbGlicmFyeSBBUkcuCiMgSW52b2tlZCBieSBldmFsJ2lu ZyB0aGUgbGlidG9vbCB2YXJpYWJsZQojICAgICRzaGFyZWRsaWJfZnJvbV9s aW5rbGliX2NtZAojIFJlc3VsdCBpcyBhdmFpbGFibGUgaW4gdGhlIHZhcmlh YmxlCiMgICAgJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0CmZ1bmNf Y3lnbWluZ19kbGxfZm9yX2ltcGxpYiAoKQp7CiAgJG9wdF9kZWJ1ZwogIHNo YXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWAkRExMVE9PTCAtLWlkZW50 aWZ5LXN0cmljdCAtLWlkZW50aWZ5ICIkMSJgCn0KCiMgZnVuY19jeWdtaW5n X2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrX2NvcmUgU0VDVElPTl9OQU1FIExJ Qk5BTUVzCiMKIyBUaGUgaXMgdGhlIGNvcmUgb2YgYSBmYWxsYmFjayBpbXBs ZW1lbnRhdGlvbiBvZiBhCiMgcGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24g dG8gZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUKIyBETEwgYXNzb2NpYXRlZCB3 aXRoIHRoZSBzcGVjaWZpZWQgaW1wb3J0IGxpYnJhcnkgTElCTkFNRS4KIwoj IFNFQ1RJT05fTkFNRSBpcyBlaXRoZXIgLmlkYXRhJDYgb3IgLmlkYXRhJDcs IGRlcGVuZGluZwojIG9uIHRoZSBwbGF0Zm9ybSBhbmQgY29tcGlsZXIgdGhh dCBjcmVhdGVkIHRoZSBpbXBsaWIuCiMKIyBFY2hvcyB0aGUgbmFtZSBvZiB0 aGUgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUKIyBzcGVjaWZpZWQgaW1wb3J0 IGxpYnJhcnkuCmZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFj a19jb3JlICgpCnsKICAkb3B0X2RlYnVnCiAgbWF0Y2hfbGl0ZXJhbD1gJEVD SE8gIiQxIiB8ICRTRUQgIiRzZWRfbWFrZV9saXRlcmFsX3JlZ2V4ImAKICAk T0JKRFVNUCAtcyAtLXNlY3Rpb24gIiQxIiAiJDIiIDI+L2Rldi9udWxsIHwK ICAgICRTRUQgJy9eQ29udGVudHMgb2Ygc2VjdGlvbiAnIiRtYXRjaF9saXRl cmFsIic6L3sKICAgICAgIyBQbGFjZSBtYXJrZXIgYXQgYmVnaW5uaW5nIG9m IGFyY2hpdmUgbWVtYmVyIGRsbG5hbWUgc2VjdGlvbgogICAgICBzLy4qLz09 PT1NQVJLPT09PS8KICAgICAgcAogICAgICBkCiAgICB9CiAgICAjIFRoZXNl IGxpbmVzIGNhbiBzb21ldGltZXMgYmUgbG9uZ2VyIHRoYW4gNDMgY2hhcmFj dGVycywgYnV0CiAgICAjIGFyZSBhbHdheXMgdW5pbnRlcmVzdGluZwogICAg LzpbCSBdKmZpbGUgZm9ybWF0IHBlW2ldXHssMVx9LS9kCiAgICAvXkluIGFy Y2hpdmUgW146XSo6L2QKICAgICMgRW5zdXJlIG1hcmtlciBpcyBwcmludGVk CiAgICAvXj09PT1NQVJLPT09PS9wCiAgICAjIFJlbW92ZSBhbGwgbGluZXMg d2l0aCBsZXNzIHRoYW4gNDMgY2hhcmFjdGVycwogICAgL14uXHs0M1x9LyFk CiAgICAjIEZyb20gcmVtYWluaW5nIGxpbmVzLCByZW1vdmUgZmlyc3QgNDMg Y2hhcmFjdGVycwogICAgcy9eLlx7NDNcfS8vJyB8CiAgICAkU0VEIC1uICcK ICAgICAgIyBKb2luIG1hcmtlciBhbmQgYWxsIGxpbmVzIHVudGlsIG5leHQg bWFya2VyIGludG8gYSBzaW5nbGUgbGluZQogICAgICAvXj09PT1NQVJLPT09 PS8gYiBwYXJhCiAgICAgIEgKICAgICAgJCBiIHBhcmEKICAgICAgYgogICAg ICA6cGFyYQogICAgICB4CiAgICAgIHMvXG4vL2cKICAgICAgIyBSZW1vdmUg dGhlIG1hcmtlcgogICAgICBzL149PT09TUFSSz09PT0vLwogICAgICAjIFJl bW92ZSB0cmFpbGluZyBkb3RzIGFuZCB3aGl0ZXNwYWNlCiAgICAgIHMvW1wu IFx0XSokLy8KICAgICAgIyBQcmludAogICAgICAvLi9wJyB8CiAgICAjIHdl IG5vdyBoYXZlIGEgbGlzdCwgb25lIGVudHJ5IHBlciBsaW5lLCBvZiB0aGUg c3RyaW5naWZpZWQKICAgICMgY29udGVudHMgb2YgdGhlIGFwcHJvcHJpYXRl IHNlY3Rpb24gb2YgYWxsIG1lbWJlcnMgb2YgdGhlCiAgICAjIGFyY2hpdmUg d2hpY2ggcG9zc2VzcyB0aGF0IHNlY3Rpb24uIEhldXJpc3RpYzogZWxpbWlu YXRlCiAgICAjIGFsbCB0aG9zZSB3aGljaCBoYXZlIGEgZmlyc3Qgb3Igc2Vj b25kIGNoYXJhY3RlciB0aGF0IGlzCiAgICAjIGEgJy4nICh0aGF0IGlzLCBv YmpkdW1wJ3MgcmVwcmVzZW50YXRpb24gb2YgYW4gdW5wcmludGFibGUKICAg ICMgY2hhcmFjdGVyLikgVGhpcyBzaG91bGQgd29yayBmb3IgYWxsIGFyY2hp dmVzIHdpdGggbGVzcyB0aGFuCiAgICAjIDB4MzAyZiBleHBvcnRzIC0tIGJ1 dCB3aWxsIGZhaWwgZm9yIERMTHMgd2hvc2UgbmFtZSBhY3R1YWxseQogICAg IyBiZWdpbnMgd2l0aCBhIGxpdGVyYWwgJy4nIG9yIGEgc2luZ2xlIGNoYXJh Y3RlciBmb2xsb3dlZCBieQogICAgIyBhICcuJy4KICAgICMKICAgICMgT2Yg dGhvc2UgdGhhdCByZW1haW4sIHByaW50IHRoZSBmaXJzdCBvbmUuCiAgICAk U0VEIC1lICcvXlwuL2Q7L14uXC4vZDtxJwp9CgojIGZ1bmNfY3lnbWluZ19n bnVfaW1wbGliX3AgQVJHCiMgVGhpcyBwcmVkaWNhdGUgcmV0dXJucyB3aXRo IHplcm8gc3RhdHVzIChUUlVFKSBpZgojIEFSRyBpcyBhIEdOVS9iaW51dGls cy1zdHlsZSBpbXBvcnQgbGlicmFyeS4gUmV0dXJucwojIHdpdGggbm9uemVy byBzdGF0dXMgKEZBTFNFKSBvdGhlcndpc2UuCmZ1bmNfY3lnbWluZ19nbnVf aW1wbGliX3AgKCkKewogICRvcHRfZGVidWcKICBmdW5jX3RvX3Rvb2xfZmls ZSAiJDEiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCiAgZnVuY19j eWdtaW5nX2dudV9pbXBsaWJfdG1wPWAkTk0gIiRmdW5jX3RvX3Rvb2xfZmls ZV9yZXN1bHQiIHwgZXZhbCAiJGdsb2JhbF9zeW1ib2xfcGlwZSIgfCAkRUdS RVAgJyAoX2hlYWRfW0EtWmEtejAtOV9dK19bYWRdbCp8W0EtWmEtejAtOV9d K19bYWRdbCpfaW5hbWUpJCdgCiAgdGVzdCAtbiAiJGZ1bmNfY3lnbWluZ19n bnVfaW1wbGliX3RtcCIKfQoKIyBmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3Ag QVJHCiMgVGhpcyBwcmVkaWNhdGUgcmV0dXJucyB3aXRoIHplcm8gc3RhdHVz IChUUlVFKSBpZgojIEFSRyBpcyBhbiBNUy1zdHlsZSBpbXBvcnQgbGlicmFy eS4gUmV0dXJucwojIHdpdGggbm9uemVybyBzdGF0dXMgKEZBTFNFKSBvdGhl cndpc2UuCmZ1bmNfY3lnbWluZ19tc19pbXBsaWJfcCAoKQp7CiAgJG9wdF9k ZWJ1ZwogIGZ1bmNfdG9fdG9vbF9maWxlICIkMSIgZnVuY19jb252ZXJ0X2Zp bGVfbXN5c190b193MzIKICBmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3RtcD1g JE5NICIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiB8IGV2YWwgIiRnbG9i YWxfc3ltYm9sX3BpcGUiIHwgJEdSRVAgJ19OVUxMX0lNUE9SVF9ERVNDUklQ VE9SJ2AKICB0ZXN0IC1uICIkZnVuY19jeWdtaW5nX21zX2ltcGxpYl90bXAi Cn0KCiMgZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrIEFS RwojIFBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhl CiMgbmFtZSBvZiB0aGUgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lm aWVkCiMgaW1wb3J0IGxpYnJhcnkgQVJHLgojCiMgVGhpcyBmYWxsYmFjayBp bXBsZW1lbnRhdGlvbiBpcyBmb3IgdXNlIHdoZW4gJERMTFRPT0wKIyBkb2Vz IG5vdCBzdXBwb3J0IHRoZSAtLWlkZW50aWZ5LXN0cmljdCBvcHRpb24uCiMg SW52b2tlZCBieSBldmFsJ2luZyB0aGUgbGlidG9vbCB2YXJpYWJsZQojICAg ICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZAojIFJlc3VsdCBpcyBhdmFp bGFibGUgaW4gdGhlIHZhcmlhYmxlCiMgICAgJHNoYXJlZGxpYl9mcm9tX2xp bmtsaWJfcmVzdWx0CmZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxs YmFjayAoKQp7CiAgJG9wdF9kZWJ1ZwogIGlmIGZ1bmNfY3lnbWluZ19nbnVf aW1wbGliX3AgIiQxIiA7IHRoZW4KICAgICMgYmludXRpbHMgaW1wb3J0IGxp YnJhcnkKICAgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWBmdW5j X2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2tfY29yZSAnLmlkYXRh JDcnICIkMSJgCiAgZWxpZiBmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3AgIiQx IiA7IHRoZW4KICAgICMgbXMtZ2VuZXJhdGVkIGltcG9ydCBsaWJyYXJ5CiAg ICBzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdD1gZnVuY19jeWdtaW5n X2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrX2NvcmUgJy5pZGF0YSQ2JyAiJDEi YAogIGVsc2UKICAgICMgdW5rbm93bgogICAgc2hhcmVkbGliX2Zyb21fbGlu a2xpYl9yZXN1bHQ9IiIKICBmaQp9CgoKIyBmdW5jX2V4dHJhY3RfYW5fYXJj aGl2ZSBkaXIgb2xkbGliCmZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICgpCnsK ICAgICRvcHRfZGVidWcKICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0 CiAgICBmX2V4X2FuX2FyX29sZGxpYj0iJDEiCiAgICBpZiB0ZXN0ICIkbG9j a19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uIiA9IHllczsgdGhlbgogICAgICBs b2NrZmlsZT0kZl9leF9hbl9hcl9vbGRsaWIubG9jawogICAgICB1bnRpbCAk b3B0X2RyeV9ydW4gfHwgbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4v ZGV2L251bGw7IGRvCglmdW5jX2VjaG8gIldhaXRpbmcgZm9yICRsb2NrZmls ZSB0byBiZSByZW1vdmVkIgoJc2xlZXAgMgogICAgICBkb25lCiAgICBmaQog ICAgZnVuY19zaG93X2V2YWwgIihjZCBcJGZfZXhfYW5fYXJfZGlyICYmICRB UiB4IFwiXCRmX2V4X2FuX2FyX29sZGxpYlwiKSIgXAoJCSAgICdzdGF0PSQ/ OyBybSAtZiAiJGxvY2tmaWxlIjsgZXhpdCAkc3RhdCcKICAgIGlmIHRlc3Qg IiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iID0geWVzOyB0aGVuCiAg ICAgICRvcHRfZHJ5X3J1biB8fCBybSAtZiAiJGxvY2tmaWxlIgogICAgZmkK ICAgIGlmICgkQVIgdCAiJGZfZXhfYW5fYXJfb2xkbGliIiB8IHNvcnQgfCBz b3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCiAgICAgOgogICAgZWxz ZQogICAgICBmdW5jX2ZhdGFsX2Vycm9yICJvYmplY3QgbmFtZSBjb25mbGlj dHMgaW4gYXJjaGl2ZTogJGZfZXhfYW5fYXJfZGlyLyRmX2V4X2FuX2FyX29s ZGxpYiIKICAgIGZpCn0KCgojIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50 b3Agb2xkbGliIC4uLgpmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgKCkKewogICAg JG9wdF9kZWJ1ZwogICAgbXlfZ2VudG9wPSIkMSI7IHNoaWZ0CiAgICBteV9v bGRsaWJzPSR7MSsiJEAifQogICAgbXlfb2xkb2Jqcz0iIgogICAgbXlfeGxp Yj0iIgogICAgbXlfeGFicz0iIgogICAgbXlfeGRpcj0iIgoKICAgIGZvciBt eV94bGliIGluICRteV9vbGRsaWJzOyBkbwogICAgICAjIEV4dHJhY3QgdGhl IG9iamVjdHMuCiAgICAgIGNhc2UgJG15X3hsaWIgaW4KCVtcXC9dKiB8IFtB LVphLXpdOltcXC9dKikgbXlfeGFicz0iJG15X3hsaWIiIDs7CgkqKSBteV94 YWJzPWBwd2RgIi8kbXlfeGxpYiIgOzsKICAgICAgZXNhYwogICAgICBmdW5j X2Jhc2VuYW1lICIkbXlfeGxpYiIKICAgICAgbXlfeGxpYj0iJGZ1bmNfYmFz ZW5hbWVfcmVzdWx0IgogICAgICBteV94bGliX3U9JG15X3hsaWIKICAgICAg d2hpbGUgOjsgZG8KICAgICAgICBjYXNlICIgJGV4dHJhY3RlZF9hcmNoaXZl cyAiIGluCgkqIiAkbXlfeGxpYl91ICIqKQoJICBmdW5jX2FyaXRoICRleHRy YWN0ZWRfc2VyaWFsICsgMQoJICBleHRyYWN0ZWRfc2VyaWFsPSRmdW5jX2Fy aXRoX3Jlc3VsdAoJICBteV94bGliX3U9bHQkZXh0cmFjdGVkX3NlcmlhbC0k bXlfeGxpYiA7OwoJKikgYnJlYWsgOzsKCWVzYWMKICAgICAgZG9uZQogICAg ICBleHRyYWN0ZWRfYXJjaGl2ZXM9IiRleHRyYWN0ZWRfYXJjaGl2ZXMgJG15 X3hsaWJfdSIKICAgICAgbXlfeGRpcj0iJG15X2dlbnRvcC8kbXlfeGxpYl91 IgoKICAgICAgZnVuY19ta2Rpcl9wICIkbXlfeGRpciIKCiAgICAgIGNhc2Ug JGhvc3QgaW4KICAgICAgKi1kYXJ3aW4qKQoJZnVuY192ZXJib3NlICJFeHRy YWN0aW5nICRteV94YWJzIgoJIyBEbyBub3QgYm90aGVyIGRvaW5nIGFueXRo aW5nIGlmIGp1c3QgYSBkcnkgcnVuCgkkb3B0X2RyeV9ydW4gfHwgewoJICBk YXJ3aW5fb3JpZ19kaXI9YHB3ZGAKCSAgY2QgJG15X3hkaXIgfHwgZXhpdCAk PwoJICBkYXJ3aW5fYXJjaGl2ZT0kbXlfeGFicwoJICBkYXJ3aW5fY3VyZGly PWBwd2RgCgkgIGRhcndpbl9iYXNlX2FyY2hpdmU9YGJhc2VuYW1lICIkZGFy d2luX2FyY2hpdmUiYAoJICBkYXJ3aW5fYXJjaGVzPWAkTElQTyAtaW5mbyAi JGRhcndpbl9hcmNoaXZlIiAyPi9kZXYvbnVsbCB8ICRHUkVQIEFyY2hpdGVj dHVyZXMgMj4vZGV2L251bGwgfHwgdHJ1ZWAKCSAgaWYgdGVzdCAtbiAiJGRh cndpbl9hcmNoZXMiOyB0aGVuCgkgICAgZGFyd2luX2FyY2hlcz1gJEVDSE8g IiRkYXJ3aW5fYXJjaGVzIiB8ICRTRUQgLWUgJ3MvLiphcmU6Ly8nYAoJICAg IGRhcndpbl9hcmNoPQoJICAgIGZ1bmNfdmVyYm9zZSAiJGRhcndpbl9iYXNl X2FyY2hpdmUgaGFzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgJGRhcndpbl9h cmNoZXMiCgkgICAgZm9yIGRhcndpbl9hcmNoIGluICAkZGFyd2luX2FyY2hl cyA7IGRvCgkgICAgICBmdW5jX21rZGlyX3AgInVuZmF0LSQkLyR7ZGFyd2lu X2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCgkgICAgICAkTElQTyAt dGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5f YmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2Fy Y2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCgkgICAgICBjZCAidW5mYXQt JCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKCSAg ICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICJgcHdkYCIgIiR7ZGFyd2lu X2Jhc2VfYXJjaGl2ZX0iCgkgICAgICBjZCAiJGRhcndpbl9jdXJkaXIiCgkg ICAgICAkUk0gInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtk YXJ3aW5fYXJjaH0vJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfSIKCSAgICBkb25l ICMgJGRhcndpbl9hcmNoZXMKICAgICAgICAgICAgIyMgT2theSBub3cgd2Un dmUgYSBidW5jaCBvZiB0aGluIG9iamVjdHMsIGdvdHRhIGZhdHRlbiB0aGVt IHVwIDopCgkgICAgZGFyd2luX2ZpbGVsaXN0PWBmaW5kIHVuZmF0LSQkIC10 eXBlIGYgLW5hbWUgXCoubyAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50 IHwgJFNFRCAtZSAiJGJhc2VuYW1lIiB8IHNvcnQgLXVgCgkgICAgZGFyd2lu X2ZpbGU9CgkgICAgZGFyd2luX2ZpbGVzPQoJICAgIGZvciBkYXJ3aW5fZmls ZSBpbiAkZGFyd2luX2ZpbGVsaXN0OyBkbwoJICAgICAgZGFyd2luX2ZpbGVz PWBmaW5kIHVuZmF0LSQkIC1uYW1lICRkYXJ3aW5fZmlsZSAtcHJpbnQgfCBz b3J0IHwgJE5MMlNQYAoJICAgICAgJExJUE8gLWNyZWF0ZSAtb3V0cHV0ICIk ZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKCSAgICBkb25lICMgJGRhcndp bl9maWxlbGlzdAoJICAgICRSTSAtcmYgdW5mYXQtJCQKCSAgICBjZCAiJGRh cndpbl9vcmlnX2RpciIKCSAgZWxzZQoJICAgIGNkICRkYXJ3aW5fb3JpZ19k aXIKCSAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIk bXlfeGFicyIKCSAgZmkgIyAkZGFyd2luX2FyY2hlcwoJfSAjICEkb3B0X2Ry eV9ydW4KCTs7CiAgICAgICopCiAgICAgICAgZnVuY19leHRyYWN0X2FuX2Fy Y2hpdmUgIiRteV94ZGlyIiAiJG15X3hhYnMiCgk7OwogICAgICBlc2FjCiAg ICAgIG15X29sZG9ianM9IiRteV9vbGRvYmpzICJgZmluZCAkbXlfeGRpciAt bmFtZSBcKi4kb2JqZXh0IC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQg fCBzb3J0IHwgJE5MMlNQYAogICAgZG9uZQoKICAgIGZ1bmNfZXh0cmFjdF9h cmNoaXZlc19yZXN1bHQ9IiRteV9vbGRvYmpzIgp9CgoKIyBmdW5jX2VtaXRf d3JhcHBlciBbYXJnPW5vXQojCiMgRW1pdCBhIGxpYnRvb2wgd3JhcHBlciBz Y3JpcHQgb24gc3Rkb3V0LgojIERvbid0IGRpcmVjdGx5IG9wZW4gYSBmaWxl IGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8KIyBpbmNvcnBvcmF0ZSB0aGUgc2Ny aXB0IGNvbnRlbnRzIHdpdGhpbiBhIGN5Z3dpbi9taW5ndwojIHdyYXBwZXIg ZXhlY3V0YWJsZS4gIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4K IyBmdW5jX21vZGVfbGluayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBudW1i ZXIgb2YgdmFyaWFibGVzCiMgc2V0IHRoZXJlaW4uCiMKIyBBUkcgaXMgdGhl IHZhbHVlIHRoYXQgdGhlIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JK RElSCiMgdmFyaWFibGUgd2lsbCB0YWtlLiAgSWYgJ3llcycsIHRoZW4gdGhl IGVtaXR0ZWQgc2NyaXB0CiMgd2lsbCBhc3N1bWUgdGhhdCB0aGUgZGlyZWN0 b3J5IGluIHdoaWNoIGl0IGlzIHN0b3JlZCBpcwojIHRoZSAkb2JqZGlyIGRp cmVjdG9yeS4gIFRoaXMgaXMgYSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKIyBi ZWhhdmlvci4KZnVuY19lbWl0X3dyYXBwZXIgKCkKewoJZnVuY19lbWl0X3dy YXBwZXJfYXJnMT0kezEtbm99CgoJJEVDSE8gIlwKIyEgJFNIRUxMCgojICRv dXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIv JG91dHB1dG5hbWUKIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFD S0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCiMKIyBUaGUgJG91dHB1dCBwcm9n cmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhl IGxpYnRvb2wKIyBsaWJyYXJpZXMgdGhhdCBpdCBkZXBlbmRzIG9uIGFyZSBp bnN0YWxsZWQuCiMKIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZl ciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KIyBJZiBp dCBpcywgaXQgd2lsbCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCgojIFNlZCBz dWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4g IEl0IGJhY2tzbGFzaGlmaWVzCiMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUg c3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCnNl ZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKCiMgQmUgQm91cm5l IGNvbXBhdGlibGUKaWYgdGVzdCAtbiBcIlwke1pTSF9WRVJTSU9OK3NldH1c IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgZW11 bGF0ZSBzaAogIE5VTExDTUQ9OgogICMgWnNoIDMueCBhbmQgNC54IHBlcmZv cm1zIHdvcmQgc3BsaXR0aW5nIG9uIFwkezErXCJcJEBcIn0sIHdoaWNoCiAg IyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVh dHVyZS4KICBhbGlhcyAtZyAnXCR7MStcIlwkQFwifSc9J1wiXCRAXCInCiAg c2V0b3B0IE5PX0dMT0JfU1VCU1QKZWxzZQogIGNhc2UgXGAoc2V0IC1vKSAy Pi9kZXYvbnVsbFxgIGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMK ZmkKQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKRFVB TENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAoKIyBUaGUg SFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRp cmVjdG9yeSB0byBzdGRvdXQKIyBpZiBDRFBBVEggaXMgc2V0LgoodW5zZXQg Q0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICgpyZWxp bmtfY29tbWFuZD1cIiRyZWxpbmtfY29tbWFuZFwiCgojIFRoaXMgZW52aXJv bm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUu CmlmIHRlc3QgXCJcJGxpYnRvb2xfaW5zdGFsbF9tYWdpY1wiID0gXCIkbWFn aWNcIjsgdGhlbgogICMgaW5zdGFsbCBtb2RlIG5lZWRzIHRoZSBmb2xsb3dp bmcgdmFyaWFibGVzOgogIGdlbmVyYXRlZF9ieV9saWJ0b29sX3ZlcnNpb249 JyRtYWNyb192ZXJzaW9uJwogIG5vdGluc3RfZGVwbGlicz0nJG5vdGluc3Rf ZGVwbGlicycKZWxzZQogICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVj dXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5IHNldC4K ICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRt YWdpY1wiOyB0aGVuCiAgICBmaWxlPVwiXCQwXCIiCgogICAgcUVDSE89YCRF Q0hPICIkRUNITyIgfCAkU0VEICIkc2VkX3F1b3RlX3N1YnN0ImAKICAgICRF Q0hPICJcCgojIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUg aXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCmZ1bmNfZmFsbGJhY2tf ZWNobyAoKQp7CiAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKXCQxCl9MVEVD SE9fRU9GJwp9CiAgICBFQ0hPPVwiJHFFQ0hPXCIKICBmaQoKIyBWZXJ5IGJh c2ljIG9wdGlvbiBwYXJzaW5nLiBUaGVzZSBvcHRpb25zIGFyZSAoYSkgc3Bl Y2lmaWMgdG8KIyB0aGUgbGlidG9vbCB3cmFwcGVyLCAoYikgYXJlIGlkZW50 aWNhbCBiZXR3ZWVuIHRoZSB3cmFwcGVyCiMgL3NjcmlwdC8gYW5kIHRoZSB3 cmFwcGVyIC9leGVjdXRhYmxlLyB3aGljaCBpcyB1c2VkIG9ubHkgb24KIyB3 aW5kb3dzIHBsYXRmb3JtcywgYW5kIChjKSBhbGwgYmVnaW4gd2l0aCB0aGUg c3RyaW5nICItLWx0LSIKIyAoYXBwbGljYXRpb24gcHJvZ3JhbXMgYXJlIHVu bGlrZWx5IHRvIGhhdmUgb3B0aW9ucyB3aGljaCBtYXRjaAojIHRoaXMgcGF0 dGVybikuCiMKIyBUaGVyZSBhcmUgb25seSB0d28gc3VwcG9ydGVkIG9wdGlv bnM6IC0tbHQtZGVidWcgYW5kCiMgLS1sdC1kdW1wLXNjcmlwdC4gVGhlcmUg aXMsIGRlbGliZXJhdGVseSwgbm8gLS1sdC1oZWxwLgojCiMgVGhlIGZpcnN0 IGFyZ3VtZW50IHRvIHRoaXMgcGFyc2luZyBmdW5jdGlvbiBzaG91bGQgYmUg dGhlCiMgc2NyaXB0J3MgJDAgdmFsdWUsIGZvbGxvd2VkIGJ5ICIkQCIuCmx0 X29wdGlvbl9kZWJ1Zz0KZnVuY19wYXJzZV9sdF9vcHRpb25zICgpCnsKICBs dF9zY3JpcHRfYXJnMD1cJDAKICBzaGlmdAogIGZvciBsdF9vcHQKICBkbwog ICAgY2FzZSBcIlwkbHRfb3B0XCIgaW4KICAgIC0tbHQtZGVidWcpIGx0X29w dGlvbl9kZWJ1Zz0xIDs7CiAgICAtLWx0LWR1bXAtc2NyaXB0KQogICAgICAg IGx0X2R1bXBfRD1cYFwkRUNITyBcIlhcJGx0X3NjcmlwdF9hcmcwXCIgfCAk U0VEIC1lICdzL15YLy8nIC1lICdzJS9bXi9dKiQlJSdcYAogICAgICAgIHRl c3QgXCJYXCRsdF9kdW1wX0RcIiA9IFwiWFwkbHRfc2NyaXB0X2FyZzBcIiAm JiBsdF9kdW1wX0Q9LgogICAgICAgIGx0X2R1bXBfRj1cYFwkRUNITyBcIlhc JGx0X3NjcmlwdF9hcmcwXCIgfCAkU0VEIC1lICdzL15YLy8nIC1lICdzJV4u Ki8lJSdcYAogICAgICAgIGNhdCBcIlwkbHRfZHVtcF9EL1wkbHRfZHVtcF9G XCIKICAgICAgICBleGl0IDAKICAgICAgOzsKICAgIC0tbHQtKikKICAgICAg ICBcJEVDSE8gXCJVbnJlY29nbml6ZWQgLS1sdC0gb3B0aW9uOiAnXCRsdF9v cHQnXCIgMT4mMgogICAgICAgIGV4aXQgMQogICAgICA7OwogICAgZXNhYwog IGRvbmUKCiAgIyBQcmludCB0aGUgZGVidWcgYmFubmVyIGltbWVkaWF0ZWx5 OgogIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCiAg ICBlY2hvIFwiJHtvdXRwdXRuYW1lfToke291dHB1dH06XCR7TElORU5PfTog bGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVS U0lPTlwiIDE+JjIKICBmaQp9CgojIFVzZWQgd2hlbiAtLWx0LWRlYnVnLiBQ cmludHMgaXRzIGFyZ3VtZW50cyB0byBzdGRvdXQKIyAocmVkaXJlY3Rpb24g aXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXIpCmZ1bmNfbHRf ZHVtcF9hcmdzICgpCnsKICBsdF9kdW1wX2FyZ3NfTj0xOwogIGZvciBsdF9h cmcKICBkbwogICAgXCRFQ0hPIFwiJHtvdXRwdXRuYW1lfToke291dHB1dH06 XCR7TElORU5PfTogbmV3YXJndltcJGx0X2R1bXBfYXJnc19OXTogXCRsdF9h cmdcIgogICAgbHRfZHVtcF9hcmdzX049XGBleHByIFwkbHRfZHVtcF9hcmdz X04gKyAxXGAKICBkb25lCn0KCiMgQ29yZSBmdW5jdGlvbiBmb3IgbGF1bmNo aW5nIHRoZSB0YXJnZXQgYXBwbGljYXRpb24KZnVuY19leGVjX3Byb2dyYW1f Y29yZSAoKQp7CiIKICBjYXNlICRob3N0IGluCiAgIyBCYWNrc2xhc2hlcyBz ZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBwbGFpbiB3aW5kb3dzCiAgKi0qLW1p bmd3IHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKICAgICRFQ0hPICJcCiAgICAg IGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCiAgICAg ICAgXCRFQ0hPIFwiJHtvdXRwdXRuYW1lfToke291dHB1dH06XCR7TElORU5P fTogbmV3YXJndlswXTogXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIDE+JjIK ICAgICAgICBmdW5jX2x0X2R1bXBfYXJncyBcJHsxK1wiXCRAXCJ9IDE+JjIK ICAgICAgZmkKICAgICAgZXhlYyBcIlwkcHJvZ2RpclxcXFxcJHByb2dyYW1c IiBcJHsxK1wiXCRAXCJ9CiIKICAgIDs7CgogICopCiAgICAkRUNITyAiXAog ICAgICBpZiB0ZXN0IC1uIFwiXCRsdF9vcHRpb25fZGVidWdcIjsgdGhlbgog ICAgICAgIFwkRUNITyBcIiR7b3V0cHV0bmFtZX06JHtvdXRwdXR9Olwke0xJ TkVOT306IG5ld2FyZ3ZbMF06IFwkcHJvZ2Rpci9cJHByb2dyYW1cIiAxPiYy CiAgICAgICAgZnVuY19sdF9kdW1wX2FyZ3MgXCR7MStcIlwkQFwifSAxPiYy CiAgICAgIGZpCiAgICAgIGV4ZWMgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIg XCR7MStcIlwkQFwifQoiCiAgICA7OwogIGVzYWMKICAkRUNITyAiXAogICAg ICBcJEVDSE8gXCJcJDA6IGNhbm5vdCBleGVjIFwkcHJvZ3JhbSBcJCpcIiAx PiYyCiAgICAgIGV4aXQgMQp9CgojIEEgZnVuY3Rpb24gdG8gZW5jYXBzdWxh dGUgbGF1bmNoaW5nIHRoZSB0YXJnZXQgYXBwbGljYXRpb24KIyBTdHJpcHMg b3B0aW9ucyBpbiB0aGUgLS1sdC0qIG5hbWVzcGFjZSBmcm9tIFwkQCBhbmQK IyBsYXVuY2hlcyB0YXJnZXQgYXBwbGljYXRpb24gd2l0aCB0aGUgcmVtYWlu aW5nIGFyZ3VtZW50cy4KZnVuY19leGVjX3Byb2dyYW0gKCkKewogIGNhc2Ug XCIgXCQqIFwiIGluCiAgKlxcIC0tbHQtKikKICAgIGZvciBsdF93cl9hcmcK ICAgIGRvCiAgICAgIGNhc2UgXCRsdF93cl9hcmcgaW4KICAgICAgLS1sdC0q KSA7OwogICAgICAqKSBzZXQgeCBcIlwkQFwiIFwiXCRsdF93cl9hcmdcIjsg c2hpZnQ7OwogICAgICBlc2FjCiAgICAgIHNoaWZ0CiAgICBkb25lIDs7CiAg ZXNhYwogIGZ1bmNfZXhlY19wcm9ncmFtX2NvcmUgXCR7MStcIlwkQFwifQp9 CgogICMgUGFyc2Ugb3B0aW9ucwogIGZ1bmNfcGFyc2VfbHRfb3B0aW9ucyBc IlwkMFwiIFwkezErXCJcJEBcIn0KCiAgIyBGaW5kIHRoZSBkaXJlY3Rvcnkg dGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBpbi4KICB0aGlzZGlyPVxgXCRFQ0hP IFwiXCRmaWxlXCIgfCAkU0VEICdzJS9bXi9dKiQlJSdcYAogIHRlc3QgXCJ4 XCR0aGlzZGlyXCIgPSBcInhcJGZpbGVcIiAmJiB0aGlzZGlyPS4KCiAgIyBG b2xsb3cgc3ltYm9saWMgbGlua3MgdW50aWwgd2UgZ2V0IHRvIHRoZSByZWFs IHRoaXNkaXIuCiAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwiIHwgJFNFRCAt biAncy8uKi0+IC8vcCdcYAogIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsg ZG8KICAgIGRlc3RkaXI9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3Ml L1teL10qXCQlJSdcYAoKICAgICMgSWYgdGhlcmUgd2FzIGEgZGlyZWN0b3J5 IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhpc2Rpci4KICAgIGlmIHRlc3Qg XCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRoZW4KICAgICAgY2Fz ZSBcIlwkZGVzdGRpclwiIGluCiAgICAgIFtcXFxcL10qIHwgW0EtWmEtel06 W1xcXFwvXSopIHRoaXNkaXI9XCJcJGRlc3RkaXJcIiA7OwogICAgICAqKSB0 aGlzZGlyPVwiXCR0aGlzZGlyL1wkZGVzdGRpclwiIDs7CiAgICAgIGVzYWMK ICAgIGZpCgogICAgZmlsZT1cYFwkRUNITyBcIlwkZmlsZVwiIHwgJFNFRCAn cyVeLiovJSUnXGAKICAgIGZpbGU9XGBscyAtbGQgXCJcJHRoaXNkaXIvXCRm aWxlXCIgfCAkU0VEIC1uICdzLy4qLT4gLy9wJ1xgCiAgZG9uZQoKICAjIFVz dWFsbHkgJ25vJywgZXhjZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVuIGVtYmVk ZGVkIGludG8KICAjIHRoZSBjd3JhcHBlci4KICBXUkFQUEVSX1NDUklQVF9C RUxPTkdTX0lOX09CSkRJUj0kZnVuY19lbWl0X3dyYXBwZXJfYXJnMQogIGlm IHRlc3QgXCJcJFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSXCIg PSBcInllc1wiOyB0aGVuCiAgICAjIHNwZWNpYWwgY2FzZSBmb3IgJy4nCiAg ICBpZiB0ZXN0IFwiXCR0aGlzZGlyXCIgPSBcIi5cIjsgdGhlbgogICAgICB0 aGlzZGlyPVxgcHdkXGAKICAgIGZpCiAgICAjIHJlbW92ZSAubGlicyBmcm9t IHRoaXNkaXIKICAgIGNhc2UgXCJcJHRoaXNkaXJcIiBpbgogICAgKltcXFxc L10kb2JqZGlyICkgdGhpc2Rpcj1cYFwkRUNITyBcIlwkdGhpc2RpclwiIHwg JFNFRCAncyVbXFxcXC9dW15cXFxcL10qJCUlJ1xgIDs7CiAgICAkb2JqZGly ICkgICB0aGlzZGlyPS4gOzsKICAgIGVzYWMKICBmaQoKICAjIFRyeSB0byBn ZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lLgogIGFic2Rpcj1cYGNk IFwiXCR0aGlzZGlyXCIgJiYgcHdkXGAKICB0ZXN0IC1uIFwiXCRhYnNkaXJc IiAmJiB0aGlzZGlyPVwiXCRhYnNkaXJcIgoiCgoJaWYgdGVzdCAiJGZhc3Rf aW5zdGFsbCIgPSB5ZXM7IHRoZW4KCSAgJEVDSE8gIlwKICBwcm9ncmFtPWx0 LSckb3V0cHV0bmFtZSckZXhlZXh0CiAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8k b2JqZGlyXCIKCiAgaWYgdGVzdCAhIC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3Jh bVwiIHx8CiAgICAgeyBmaWxlPVxgbHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHBy b2dyYW1cIiBcIlwkcHJvZ2Rpci8uLi9cJHByb2dyYW1cIiAyPi9kZXYvbnVs bCB8ICR7U0VEfSAxcVxgOyBcXAogICAgICAgdGVzdCBcIlhcJGZpbGVcIiAh PSBcIlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH07IHRoZW4KCiAgICBmaWxl PVwiXCRcJC1cJHByb2dyYW1cIgoKICAgIGlmIHRlc3QgISAtZCBcIlwkcHJv Z2RpclwiOyB0aGVuCiAgICAgICRNS0RJUiBcIlwkcHJvZ2RpclwiCiAgICBl bHNlCiAgICAgICRSTSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgogICAgZmkiCgoJ ICAkRUNITyAiXAoKICAgICMgcmVsaW5rIGV4ZWN1dGFibGUgaWYgbmVjZXNz YXJ5CiAgICBpZiB0ZXN0IC1uIFwiXCRyZWxpbmtfY29tbWFuZFwiOyB0aGVu CiAgICAgIGlmIHJlbGlua19jb21tYW5kX291dHB1dD1cYGV2YWwgXCRyZWxp bmtfY29tbWFuZCAyPiYxXGA7IHRoZW4gOgogICAgICBlbHNlCgkkRUNITyBc IlwkcmVsaW5rX2NvbW1hbmRfb3V0cHV0XCIgPiYyCgkkUk0gXCJcJHByb2dk aXIvXCRmaWxlXCIKCWV4aXQgMQogICAgICBmaQogICAgZmkKCiAgICAkTVYg XCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIg Mj4vZGV2L251bGwgfHwKICAgIHsgJFJNIFwiXCRwcm9nZGlyL1wkcHJvZ3Jh bVwiOwogICAgICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dk aXIvXCRwcm9ncmFtXCI7IH0KICAgICRSTSBcIlwkcHJvZ2Rpci9cJGZpbGVc IgogIGZpIgoJZWxzZQoJICAkRUNITyAiXAogIHByb2dyYW09JyRvdXRwdXRu YW1lJwogIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCiIKCWZpCgoJ JEVDSE8gIlwKCiAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1c IjsgdGhlbiIKCgkjIGZpeHVwIHRoZSBkbGwgc2VhcmNocGF0aCBpZiB3ZSBu ZWVkIHRvLgoJIwoJIyBGaXggdGhlIERMTCBzZWFyY2hwYXRoIGlmIHdlIG5l ZWQgdG8uICBEbyB0aGlzIGJlZm9yZSBwcmVwZW5kaW5nCgkjIHRvIHNobGli cGF0aCwgYmVjYXVzZSBvbiBXaW5kb3dzLCBib3RoIGFyZSBQQVRIIGFuZCB1 bmluc3RhbGxlZAoJIyBsaWJyYXJpZXMgbXVzdCBjb21lIGZpcnN0LgoJaWYg dGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0aGVuCgkgICRFQ0hPICJcCiAg ICAjIEFkZCB0aGUgZGxsIHNlYXJjaCBwYXRoIGNvbXBvbmVudHMgdG8gdGhl IGV4ZWN1dGFibGUgUEFUSAogICAgUEFUSD0kZGxsc2VhcmNocGF0aDpcJFBB VEgKIgoJZmkKCgkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBo YXZlIG9uZS4KCWlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0 IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KCSAgJEVDSE8gIlwKICAgICMgQWRk IG91ciBvd24gbGlicmFyeSBwYXRoIHRvICRzaGxpYnBhdGhfdmFyCiAgICAk c2hsaWJwYXRoX3Zhcj1cIiR0ZW1wX3JwYXRoXCQkc2hsaWJwYXRoX3Zhclwi CgogICAgIyBTb21lIHN5c3RlbXMgY2Fubm90IGNvcGUgd2l0aCBjb2xvbi10 ZXJtaW5hdGVkICRzaGxpYnBhdGhfdmFyCiAgICAjIFRoZSBzZWNvbmQgY29s b24gaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0IHNlZAog ICAgJHNobGlicGF0aF92YXI9XGBcJEVDSE8gXCJcJCRzaGxpYnBhdGhfdmFy XCIgfCAkU0VEICdzLzo6KlwkLy8nXGAKCiAgICBleHBvcnQgJHNobGlicGF0 aF92YXIKIgoJZmkKCgkkRUNITyAiXAogICAgaWYgdGVzdCBcIlwkbGlidG9v bF9leGVjdXRlX21hZ2ljXCIgIT0gXCIkbWFnaWNcIjsgdGhlbgogICAgICAj IFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgog ICAgICBmdW5jX2V4ZWNfcHJvZ3JhbSBcJHsxK1wiXCRAXCJ9CiAgICBmaQog IGVsc2UKICAgICMgVGhlIHByb2dyYW0gZG9lc24ndCBleGlzdC4KICAgIFwk RUNITyBcIlwkMDogZXJyb3I6IFxcXGBcJHByb2dkaXIvXCRwcm9ncmFtJyBk b2VzIG5vdCBleGlzdFwiIDE+JjIKICAgIFwkRUNITyBcIlRoaXMgc2NyaXB0 IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dyYW0uXCIgMT4mMgogICAg XCRFQ0hPIFwiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBt b3JlIGluZm9ybWF0aW9uLlwiIDE+JjIKICAgIGV4aXQgMQogIGZpCmZpXAoi Cn0KCgojIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKIyBlbWl0IHRoZSBz b3VyY2UgY29kZSBmb3IgYSB3cmFwcGVyIGV4ZWN1dGFibGUgb24gc3Rkb3V0 CiMgTXVzdCBPTkxZIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBmdW5jX21vZGVf bGluayBiZWNhdXNlCiMgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJp YWJsZSBzZXQgdGhlcmVpbi4KZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYyAo KQp7CgljYXQgPDxFT0YKCi8qICRjd3JhcHBlcnNvdXJjZSAtIHRlbXBvcmFy eSB3cmFwcGVyIGV4ZWN1dGFibGUgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUK ICAgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNU QU1QKSAkVkVSU0lPTgoKICAgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3Qg YmUgZGlyZWN0bHkgZXhlY3V0ZWQgdW50aWwgYWxsIHRoZSBsaWJ0b29sCiAg IGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4K CiAgIFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZlciBiZSBt b3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KICAgSWYgaXQgaXMs IGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgoqLwpFT0YKCSAgICBj YXQgPDwiRU9GIgojaWZkZWYgX01TQ19WRVIKIyBkZWZpbmUgX0NSVF9TRUNV UkVfTk9fREVQUkVDQVRFIDEKI2VuZGlmCiNpbmNsdWRlIDxzdGRpby5oPgoj aW5jbHVkZSA8c3RkbGliLmg+CiNpZmRlZiBfTVNDX1ZFUgojIGluY2x1ZGUg PGRpcmVjdC5oPgojIGluY2x1ZGUgPHByb2Nlc3MuaD4KIyBpbmNsdWRlIDxp by5oPgojZWxzZQojIGluY2x1ZGUgPHVuaXN0ZC5oPgojIGluY2x1ZGUgPHN0 ZGludC5oPgojIGlmZGVmIF9fQ1lHV0lOX18KIyAgaW5jbHVkZSA8aW8uaD4K IyBlbmRpZgojZW5kaWYKI2luY2x1ZGUgPG1hbGxvYy5oPgojaW5jbHVkZSA8 c3RkYXJnLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KI2luY2x1ZGUgPHN0cmlu Zy5oPgojaW5jbHVkZSA8Y3R5cGUuaD4KI2luY2x1ZGUgPGVycm5vLmg+CiNp bmNsdWRlIDxmY250bC5oPgojaW5jbHVkZSA8c3lzL3N0YXQuaD4KCi8qIGRl Y2xhcmF0aW9ucyBvZiBub24tQU5TSSBmdW5jdGlvbnMgKi8KI2lmIGRlZmlu ZWQoX19NSU5HVzMyX18pCiMgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCmludCBf cHV0ZW52IChjb25zdCBjaGFyICopOwojIGVuZGlmCiNlbGlmIGRlZmluZWQo X19DWUdXSU5fXykKIyBpZmRlZiBfX1NUUklDVF9BTlNJX18KY2hhciAqcmVh bHBhdGggKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKaW50IHB1dGVudiAoY2hh ciAqKTsKaW50IHNldGVudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICos IGludCk7CiMgZW5kaWYKLyogI2VsaWYgZGVmaW5lZCAob3RoZXIgcGxhdGZv cm1zKSAuLi4gKi8KI2VuZGlmCgovKiBwb3J0YWJpbGl0eSBkZWZpbmVzLCBl eGNsdWRpbmcgcGF0aCBoYW5kbGluZyBtYWNyb3MgKi8KI2lmIGRlZmluZWQo X01TQ19WRVIpCiMgZGVmaW5lIHNldG1vZGUgX3NldG1vZGUKIyBkZWZpbmUg c3RhdCAgICBfc3RhdAojIGRlZmluZSBjaG1vZCAgIF9jaG1vZAojIGRlZmlu ZSBnZXRjd2QgIF9nZXRjd2QKIyBkZWZpbmUgcHV0ZW52ICBfcHV0ZW52CiMg ZGVmaW5lIFNfSVhVU1IgX1NfSUVYRUMKIyBpZm5kZWYgX0lOVFBUUl9UX0RF RklORUQKIyAgZGVmaW5lIF9JTlRQVFJfVF9ERUZJTkVECiMgIGRlZmluZSBp bnRwdHJfdCBpbnQKIyBlbmRpZgojZWxpZiBkZWZpbmVkKF9fTUlOR1czMl9f KQojIGRlZmluZSBzZXRtb2RlIF9zZXRtb2RlCiMgZGVmaW5lIHN0YXQgICAg X3N0YXQKIyBkZWZpbmUgY2htb2QgICBfY2htb2QKIyBkZWZpbmUgZ2V0Y3dk ICBfZ2V0Y3dkCiMgZGVmaW5lIHB1dGVudiAgX3B1dGVudgojZWxpZiBkZWZp bmVkKF9fQ1lHV0lOX18pCiMgZGVmaW5lIEhBVkVfU0VURU5WCiMgZGVmaW5l IEZPUEVOX1dCICJ3YiIKLyogI2VsaWYgZGVmaW5lZCAob3RoZXIgcGxhdGZv cm1zKSAuLi4gKi8KI2VuZGlmCgojaWYgZGVmaW5lZChQQVRIX01BWCkKIyBk ZWZpbmUgTFRfUEFUSE1BWCBQQVRIX01BWAojZWxpZiBkZWZpbmVkKE1BWFBB VEhMRU4pCiMgZGVmaW5lIExUX1BBVEhNQVggTUFYUEFUSExFTgojZWxzZQoj IGRlZmluZSBMVF9QQVRITUFYIDEwMjQKI2VuZGlmCgojaWZuZGVmIFNfSVhP VEgKIyBkZWZpbmUgU19JWE9USCAwCiNlbmRpZgojaWZuZGVmIFNfSVhHUlAK IyBkZWZpbmUgU19JWEdSUCAwCiNlbmRpZgoKLyogcGF0aCBoYW5kbGluZyBw b3J0YWJpbGl0eSBtYWNyb3MgKi8KI2lmbmRlZiBESVJfU0VQQVJBVE9SCiMg ZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8nCiMgZGVmaW5lIFBBVEhfU0VQQVJB VE9SICc6JwojZW5kaWYKCiNpZiBkZWZpbmVkIChfV0lOMzIpIHx8IGRlZmlu ZWQgKF9fTVNET1NfXykgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSB8fCBcCiAg ZGVmaW5lZCAoX19PUzJfXykKIyBkZWZpbmUgSEFWRV9ET1NfQkFTRURfRklM RV9TWVNURU0KIyBkZWZpbmUgRk9QRU5fV0IgIndiIgojIGlmbmRlZiBESVJf U0VQQVJBVE9SXzIKIyAgZGVmaW5lIERJUl9TRVBBUkFUT1JfMiAnXFwnCiMg ZW5kaWYKIyBpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgojICBkZWZpbmUgUEFU SF9TRVBBUkFUT1JfMiAnOycKIyBlbmRpZgojZW5kaWYKCiNpZm5kZWYgRElS X1NFUEFSQVRPUl8yCiMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpICgo Y2gpID09IERJUl9TRVBBUkFUT1IpCiNlbHNlIC8qIERJUl9TRVBBUkFUT1Jf MiAqLwojIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSBcCgkoKChjaCkg PT0gRElSX1NFUEFSQVRPUikgfHwgKChjaCkgPT0gRElSX1NFUEFSQVRPUl8y KSkKI2VuZGlmIC8qIERJUl9TRVBBUkFUT1JfMiAqLwoKI2lmbmRlZiBQQVRI X1NFUEFSQVRPUl8yCiMgZGVmaW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAo KGNoKSA9PSBQQVRIX1NFUEFSQVRPUikKI2Vsc2UgLyogUEFUSF9TRVBBUkFU T1JfMiAqLwojIGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkg PT0gUEFUSF9TRVBBUkFUT1JfMikKI2VuZGlmIC8qIFBBVEhfU0VQQVJBVE9S XzIgKi8KCiNpZm5kZWYgRk9QRU5fV0IKIyBkZWZpbmUgRk9QRU5fV0IgInci CiNlbmRpZgojaWZuZGVmIF9PX0JJTkFSWQojIGRlZmluZSBfT19CSU5BUlkg MAojZW5kaWYKCiNkZWZpbmUgWE1BTExPQyh0eXBlLCBudW0pICAgICAgKCh0 eXBlICopIHhtYWxsb2MgKChudW0pICogc2l6ZW9mKHR5cGUpKSkKI2RlZmlu ZSBYRlJFRShzdGFsZSkgZG8geyBcCiAgaWYgKHN0YWxlKSB7IGZyZWUgKCh2 b2lkICopIHN0YWxlKTsgc3RhbGUgPSAwOyB9IFwKfSB3aGlsZSAoMCkKCiNp ZiBkZWZpbmVkKExUX0RFQlVHV1JBUFBFUikKc3RhdGljIGludCBsdF9kZWJ1 ZyA9IDE7CiNlbHNlCnN0YXRpYyBpbnQgbHRfZGVidWcgPSAwOwojZW5kaWYK CmNvbnN0IGNoYXIgKnByb2dyYW1fbmFtZSA9ICJsaWJ0b29sLXdyYXBwZXIi OyAvKiBpbiBjYXNlIHhzdHJkdXAgZmFpbHMgKi8KCnZvaWQgKnhtYWxsb2Mg KHNpemVfdCBudW0pOwpjaGFyICp4c3RyZHVwIChjb25zdCBjaGFyICpzdHJp bmcpOwpjb25zdCBjaGFyICpiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUp OwpjaGFyICpmaW5kX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKndyYXBwZXIp OwpjaGFyICpjaGFzZV9zeW1saW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMp OwppbnQgbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsKaW50 IGNoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOwpjaGFyICpz dHJlbmR6YXAgKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0KTsKdm9pZCBs dF9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNv bnN0IGNoYXIgKmZtdCwgLi4uKTsKdm9pZCBsdF9mYXRhbCAoY29uc3QgY2hh ciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7 CnN0YXRpYyBjb25zdCBjaGFyICpub25udWxsIChjb25zdCBjaGFyICpzKTsK c3RhdGljIGNvbnN0IGNoYXIgKm5vbmVtcHR5IChjb25zdCBjaGFyICpzKTsK dm9pZCBsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIg KnZhbHVlKTsKY2hhciAqbHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAqb3Jp Z192YWx1ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5kKTsKdm9pZCBs dF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNo YXIgKnZhbHVlKTsKdm9pZCBsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKY2hhciAqKnByZXBhcmVf c3Bhd24gKGNoYXIgKiphcmd2KTsKdm9pZCBsdF9kdW1wX3NjcmlwdCAoRklM RSAqZik7CkVPRgoKCSAgICBjYXQgPDxFT0YKdm9sYXRpbGUgY29uc3QgY2hh ciAqIE1BR0lDX0VYRSA9ICIkbWFnaWNfZXhlIjsKY29uc3QgY2hhciAqIExJ Ql9QQVRIX1ZBUk5BTUUgPSAiJHNobGlicGF0aF92YXIiOwpFT0YKCgkgICAg aWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMg JiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1w X3JwYXRoIjsgdGhlbgogICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRo ICIkdGVtcF9ycGF0aCIKCSAgICAgIGNhdCA8PEVPRgpjb25zdCBjaGFyICog TElCX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0 IjsKRU9GCgkgICAgZWxzZQoJICAgICAgY2F0IDw8IkVPRiIKY29uc3QgY2hh ciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiIjsKRU9GCgkgICAgZmkKCgkgICAg aWYgdGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0aGVuCiAgICAgICAgICAg ICAgZnVuY190b19ob3N0X3BhdGggIiRkbGxzZWFyY2hwYXRoOiIKCSAgICAg IGNhdCA8PEVPRgpjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICJQ QVRIIjsKY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNf dG9faG9zdF9wYXRoX3Jlc3VsdCI7CkVPRgoJICAgIGVsc2UKCSAgICAgIGNh dCA8PCJFT0YiCmNvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIiI7 CmNvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiI7CkVPRgoJICAg IGZpCgoJICAgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVu CgkgICAgICBjYXQgPDxFT0YKY29uc3QgY2hhciAqIFRBUkdFVF9QUk9HUkFN X05BTUUgPSAibHQtJG91dHB1dG5hbWUiOyAvKiBob3BlZnVsbHksIG5vIC5l eGUgKi8KRU9GCgkgICAgZWxzZQoJICAgICAgY2F0IDw8RU9GCmNvbnN0IGNo YXIgKiBUQVJHRVRfUFJPR1JBTV9OQU1FID0gIiRvdXRwdXRuYW1lIjsgLyog aG9wZWZ1bGx5LCBubyAuZXhlICovCkVPRgoJICAgIGZpCgoKCSAgICBjYXQg PDwiRU9GIgoKI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAgICAg ICAgICItLWx0LSIKCnN0YXRpYyBjb25zdCBjaGFyICpsdHdyYXBwZXJfb3B0 aW9uX3ByZWZpeCA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYOwpzdGF0aWMg Y29uc3QgY2hhciAqZHVtcHNjcmlwdF9vcHQgICAgICAgPSBMVFdSQVBQRVJf T1BUSU9OX1BSRUZJWCAiZHVtcC1zY3JpcHQiOwpzdGF0aWMgY29uc3QgY2hh ciAqZGVidWdfb3B0ICAgICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BS RUZJWCAiZGVidWciOwoKaW50Cm1haW4gKGludCBhcmdjLCBjaGFyICphcmd2 W10pCnsKICBjaGFyICoqbmV3YXJnejsKICBpbnQgIG5ld2FyZ2M7CiAgY2hh ciAqdG1wX3BhdGhzcGVjOwogIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9wYXRo OwogIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9uYW1lOwogIGNoYXIgKnRhcmdl dF9uYW1lOwogIGNoYXIgKmx0X2FyZ3ZfemVybzsKICBpbnRwdHJfdCBydmFs ID0gMTI3OwoKICBpbnQgaTsKCiAgcHJvZ3JhbV9uYW1lID0gKGNoYXIgKikg eHN0cmR1cCAoYmFzZV9uYW1lIChhcmd2WzBdKSk7CiAgbmV3YXJneiA9IFhN QUxMT0MgKGNoYXIgKiwgYXJnYyArIDEpOwoKICAvKiB2ZXJ5IHNpbXBsZSBh cmcgcGFyc2luZzsgZG9uJ3Qgd2FudCB0byByZWx5IG9uIGdldG9wdAogICAq IGFsc28sIGNvcHkgYWxsIG5vbiBjd3JhcHBlciBvcHRpb25zIHRvIG5ld2Fy Z3osIGV4Y2VwdAogICAqIGFyZ3pbMF0sIHdoaWNoIGlzIGhhbmRsZWQgZGlm ZmVyZW50bHkKICAgKi8KICBuZXdhcmdjPTA7CiAgZm9yIChpID0gMTsgaSA8 IGFyZ2M7IGkrKykKICAgIHsKICAgICAgaWYgKHN0cmNtcCAoYXJndltpXSwg ZHVtcHNjcmlwdF9vcHQpID09IDApCgl7CkVPRgoJICAgIGNhc2UgIiRob3N0 IiBpbgoJICAgICAgKm1pbmd3KiB8ICpjeWd3aW4qICkKCQkjIG1ha2Ugc3Rk b3V0IHVzZSAidW5peCIgbGluZSBlbmRpbmdzCgkJZWNobyAiICAgICAgICAg IHNldG1vZGUoMSxfT19CSU5BUlkpOyIKCQk7OwoJICAgICAgZXNhYwoKCSAg ICBjYXQgPDwiRU9GIgoJICBsdF9kdW1wX3NjcmlwdCAoc3Rkb3V0KTsKCSAg cmV0dXJuIDA7Cgl9CiAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGRlYnVn X29wdCkgPT0gMCkKCXsKICAgICAgICAgIGx0X2RlYnVnID0gMTsKICAgICAg ICAgIGNvbnRpbnVlOwoJfQogICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBs dHdyYXBwZXJfb3B0aW9uX3ByZWZpeCkgPT0gMCkKICAgICAgICB7CiAgICAg ICAgICAvKiBob3dldmVyLCBpZiB0aGVyZSBpcyBhbiBvcHRpb24gaW4gdGhl IExUV1JBUFBFUl9PUFRJT05fUFJFRklYCiAgICAgICAgICAgICBuYW1lc3Bh Y2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJv dXQgYW5kCiAgICAgICAgICAgICBoYXZlIGFscmVhZHkgZGVhbHQgd2l0aCwg YWJvdmUgKGlubHVkaW5nIGR1bXAtc2NyaXB0KSwgdGhlbgogICAgICAgICAg ICAgcmVwb3J0IGFuIGVycm9yLiBPdGhlcndpc2UsIHRhcmdldHMgbWlnaHQg YmVnaW4gdG8gYmVsaWV2ZQogICAgICAgICAgICAgdGhleSBhcmUgYWxsb3dl ZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVG SVgKICAgICAgICAgICAgIG5hbWVzcGFjZS4gVGhlIGZpcnN0IHRpbWUgYW55 IHVzZXIgY29tcGxhaW5zIGFib3V0IHRoaXMsIHdlJ2xsCiAgICAgICAgICAg ICBuZWVkIHRvIG1ha2UgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggYSBjb25m aWd1cmUtdGltZSBvcHRpb24KICAgICAgICAgICAgIG9yIGEgY29uZmlndXJl LmFjLXNldHRhYmxlIHZhbHVlLgogICAgICAgICAgICovCiAgICAgICAgICBs dF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLAoJCSAgICAidW5yZWNvZ25p emVkICVzIG9wdGlvbjogJyVzJyIsCiAgICAgICAgICAgICAgICAgICAgbHR3 cmFwcGVyX29wdGlvbl9wcmVmaXgsIGFyZ3ZbaV0pOwogICAgICAgIH0KICAg ICAgLyogb3RoZXJ3aXNlIC4uLiAqLwogICAgICBuZXdhcmd6WysrbmV3YXJn Y10gPSB4c3RyZHVwIChhcmd2W2ldKTsKICAgIH0KICBuZXdhcmd6WysrbmV3 YXJnY10gPSBOVUxMOwoKRU9GCgkgICAgY2F0IDw8RU9GCiAgLyogVGhlIEdO VSBiYW5uZXIgbXVzdCBiZSB0aGUgZmlyc3Qgbm9uLWVycm9yIGRlYnVnIG1l c3NhZ2UgKi8KICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9f LCAibGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAk VkVSU0lPTlxuIik7CkVPRgoJICAgIGNhdCA8PCJFT0YiCiAgbHRfZGVidWdw cmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBhcmd2WzBdOiAl c1xuIiwgYXJndlswXSk7CiAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBf X0xJTkVfXywgIihtYWluKSBwcm9ncmFtX25hbWU6ICVzXG4iLCBwcm9ncmFt X25hbWUpOwoKICB0bXBfcGF0aHNwZWMgPSBmaW5kX2V4ZWN1dGFibGUgKGFy Z3ZbMF0pOwogIGlmICh0bXBfcGF0aHNwZWMgPT0gTlVMTCkKICAgIGx0X2Zh dGFsIChfX0ZJTEVfXywgX19MSU5FX18sICJjb3VsZG4ndCBmaW5kICVzIiwg YXJndlswXSk7CiAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVf XywKICAgICAgICAgICAgICAgICAgIihtYWluKSBmb3VuZCBleGUgKGJlZm9y ZSBzeW1saW5rIGNoYXNlKSBhdDogJXNcbiIsCgkJICB0bXBfcGF0aHNwZWMp OwoKICBhY3R1YWxfY3dyYXBwZXJfcGF0aCA9IGNoYXNlX3N5bWxpbmtzICh0 bXBfcGF0aHNwZWMpOwogIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19M SU5FX18sCiAgICAgICAgICAgICAgICAgICIobWFpbikgZm91bmQgZXhlIChh ZnRlciBzeW1saW5rIGNoYXNlKSBhdDogJXNcbiIsCgkJICBhY3R1YWxfY3dy YXBwZXJfcGF0aCk7CiAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CgogIGFjdHVh bF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1lIChhY3R1YWxf Y3dyYXBwZXJfcGF0aCkpOwogIHN0cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVy X3BhdGgsIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKCiAgLyogd3JhcHBlciBu YW1lIHRyYW5zZm9ybXMgKi8KICBzdHJlbmR6YXAgKGFjdHVhbF9jd3JhcHBl cl9uYW1lLCAiLmV4ZSIpOwogIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9z dHIgKGFjdHVhbF9jd3JhcHBlcl9uYW1lLCAiLmV4ZSIsIDEpOwogIFhGUkVF IChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7CiAgYWN0dWFsX2N3cmFwcGVyX25h bWUgPSB0bXBfcGF0aHNwZWM7CiAgdG1wX3BhdGhzcGVjID0gMDsKCiAgLyog dGFyZ2V0X25hbWUgdHJhbnNmb3JtcyAtLSB1c2UgYWN0dWFsIHRhcmdldCBw cm9ncmFtIG5hbWU7IG1pZ2h0IGhhdmUgbHQtIHByZWZpeCAqLwogIHRhcmdl dF9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1lIChUQVJHRVRfUFJPR1JBTV9O QU1FKSk7CiAgc3RyZW5kemFwICh0YXJnZXRfbmFtZSwgIi5leGUiKTsKICB0 bXBfcGF0aHNwZWMgPSBsdF9leHRlbmRfc3RyICh0YXJnZXRfbmFtZSwgIi5l eGUiLCAxKTsKICBYRlJFRSAodGFyZ2V0X25hbWUpOwogIHRhcmdldF9uYW1l ID0gdG1wX3BhdGhzcGVjOwogIHRtcF9wYXRoc3BlYyA9IDA7CgogIGx0X2Rl YnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCgkJICAiKG1haW4pIGxp YnRvb2wgdGFyZ2V0IG5hbWU6ICVzXG4iLAoJCSAgdGFyZ2V0X25hbWUpOwpF T0YKCgkgICAgY2F0IDw8RU9GCiAgbmV3YXJnelswXSA9CiAgICBYTUFMTE9D IChjaGFyLCAoc3RybGVuIChhY3R1YWxfY3dyYXBwZXJfcGF0aCkgKwoJCSAg ICBzdHJsZW4gKCIkb2JqZGlyIikgKyAxICsgc3RybGVuIChhY3R1YWxfY3dy YXBwZXJfbmFtZSkgKyAxKSk7CiAgc3RyY3B5IChuZXdhcmd6WzBdLCBhY3R1 YWxfY3dyYXBwZXJfcGF0aCk7CiAgc3RyY2F0IChuZXdhcmd6WzBdLCAiJG9i amRpciIpOwogIHN0cmNhdCAobmV3YXJnelswXSwgIi8iKTsKRU9GCgoJICAg IGNhdCA8PCJFT0YiCiAgLyogc3RvcCBoZXJlLCBhbmQgY29weSBzbyB3ZSBk b24ndCBoYXZlIHRvIGRvIHRoaXMgdHdpY2UgKi8KICB0bXBfcGF0aHNwZWMg PSB4c3RyZHVwIChuZXdhcmd6WzBdKTsKCiAgLyogZG8gTk9UIHdhbnQgdGhl IGx0LSBwcmVmaXggaGVyZSwgc28gdXNlIGFjdHVhbF9jd3JhcHBlcl9uYW1l ICovCiAgc3RyY2F0IChuZXdhcmd6WzBdLCBhY3R1YWxfY3dyYXBwZXJfbmFt ZSk7CgogIC8qIERPIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSBpZiBpdCBl eGlzdHMsIHNvIHVzZSB0YXJnZXRfbmFtZSAqLwogIGx0X2FyZ3ZfemVybyA9 IGx0X2V4dGVuZF9zdHIgKHRtcF9wYXRoc3BlYywgdGFyZ2V0X25hbWUsIDEp OwogIFhGUkVFICh0bXBfcGF0aHNwZWMpOwogIHRtcF9wYXRoc3BlYyA9IE5V TEw7CkVPRgoKCSAgICBjYXNlICRob3N0X29zIGluCgkgICAgICBtaW5ndyop CgkgICAgY2F0IDw8IkVPRiIKICB7CiAgICBjaGFyKiBwOwogICAgd2hpbGUg KChwID0gc3RyY2hyIChuZXdhcmd6WzBdLCAnXFwnKSkgIT0gTlVMTCkKICAg ICAgewoJKnAgPSAnLyc7CiAgICAgIH0KICAgIHdoaWxlICgocCA9IHN0cmNo ciAobHRfYXJndl96ZXJvLCAnXFwnKSkgIT0gTlVMTCkKICAgICAgewoJKnAg PSAnLyc7CiAgICAgIH0KICB9CkVPRgoJICAgIDs7CgkgICAgZXNhYwoKCSAg ICBjYXQgPDwiRU9GIgogIFhGUkVFICh0YXJnZXRfbmFtZSk7CiAgWEZSRUUg KGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKICBYRlJFRSAoYWN0dWFsX2N3cmFw cGVyX25hbWUpOwoKICBsdF9zZXRlbnYgKCJCSU5fU0giLCAieHBnNCIpOyAv KiBmb3IgVHJ1NjQgKi8KICBsdF9zZXRlbnYgKCJEVUFMQ0FTRSIsICIxIik7 ICAvKiBmb3IgTVNLIHNoICovCiAgLyogVXBkYXRlIHRoZSBETEwgc2VhcmNo cGF0aC4gIEVYRV9QQVRIX1ZBTFVFICgkZGxsc2VhcmNocGF0aCkgbXVzdAog ICAgIGJlIHByZXBlbmRlZCBiZWZvcmUgKHRoYXQgaXMsIGFwcGVhciBhZnRl cikgTElCX1BBVEhfVkFMVUUgKCR0ZW1wX3JwYXRoKQogICAgIGJlY2F1c2Ug b24gV2luZG93cywgYm90aCAqX1ZBUk5BTUVzIGFyZSBQQVRIIGJ1dCB1bmlu c3RhbGxlZAogICAgIGxpYnJhcmllcyBtdXN0IGNvbWUgZmlyc3QuICovCiAg bHRfdXBkYXRlX2V4ZV9wYXRoIChFWEVfUEFUSF9WQVJOQU1FLCBFWEVfUEFU SF9WQUxVRSk7CiAgbHRfdXBkYXRlX2xpYl9wYXRoIChMSUJfUEFUSF9WQVJO QU1FLCBMSUJfUEFUSF9WQUxVRSk7CgogIGx0X2RlYnVncHJpbnRmIChfX0ZJ TEVfXywgX19MSU5FX18sICIobWFpbikgbHRfYXJndl96ZXJvOiAlc1xuIiwK CQkgIG5vbm51bGwgKGx0X2FyZ3ZfemVybykpOwogIGZvciAoaSA9IDA7IGkg PCBuZXdhcmdjOyBpKyspCiAgICB7CiAgICAgIGx0X2RlYnVncHJpbnRmIChf X0ZJTEVfXywgX19MSU5FX18sICIobWFpbikgbmV3YXJnelslZF06ICVzXG4i LAoJCSAgICAgIGksIG5vbm51bGwgKG5ld2FyZ3pbaV0pKTsKICAgIH0KCkVP RgoKCSAgICBjYXNlICRob3N0X29zIGluCgkgICAgICBtaW5ndyopCgkJY2F0 IDw8IkVPRiIKICAvKiBleGVjdiBkb2Vzbid0IGFjdHVhbGx5IHdvcmsgb24g bWluZ3cgYXMgZXhwZWN0ZWQgb24gdW5peCAqLwogIG5ld2FyZ3ogPSBwcmVw YXJlX3NwYXduIChuZXdhcmd6KTsKICBydmFsID0gX3NwYXdudiAoX1BfV0FJ VCwgbHRfYXJndl96ZXJvLCAoY29uc3QgY2hhciAqIGNvbnN0ICopIG5ld2Fy Z3opOwogIGlmIChydmFsID09IC0xKQogICAgewogICAgICAvKiBmYWlsZWQg dG8gc3RhcnQgcHJvY2VzcyAqLwogICAgICBsdF9kZWJ1Z3ByaW50ZiAoX19G SUxFX18sIF9fTElORV9fLAoJCSAgICAgICIobWFpbikgZmFpbGVkIHRvIGxh dW5jaCB0YXJnZXQgXCIlc1wiOiAlc1xuIiwKCQkgICAgICBsdF9hcmd2X3pl cm8sIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsKICAgICAgcmV0dXJu IDEyNzsKICAgIH0KICByZXR1cm4gcnZhbDsKRU9GCgkJOzsKCSAgICAgICop CgkJY2F0IDw8IkVPRiIKICBleGVjdiAobHRfYXJndl96ZXJvLCBuZXdhcmd6 KTsKICByZXR1cm4gcnZhbDsgLyogPTEyNywgYnV0IGF2b2lkcyB1bnVzZWQg dmFyaWFibGUgd2FybmluZyAqLwpFT0YKCQk7OwoJICAgIGVzYWMKCgkgICAg Y2F0IDw8IkVPRiIKfQoKdm9pZCAqCnhtYWxsb2MgKHNpemVfdCBudW0pCnsK ICB2b2lkICpwID0gKHZvaWQgKikgbWFsbG9jIChudW0pOwogIGlmICghcCkK ICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sICJtZW1vcnkgZXho YXVzdGVkIik7CgogIHJldHVybiBwOwp9CgpjaGFyICoKeHN0cmR1cCAoY29u c3QgY2hhciAqc3RyaW5nKQp7CiAgcmV0dXJuIHN0cmluZyA/IHN0cmNweSAo KGNoYXIgKikgeG1hbGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksCgkJCSAg c3RyaW5nKSA6IE5VTEw7Cn0KCmNvbnN0IGNoYXIgKgpiYXNlX25hbWUgKGNv bnN0IGNoYXIgKm5hbWUpCnsKICBjb25zdCBjaGFyICpiYXNlOwoKI2lmIGRl ZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQogIC8qIFNraXAg b3ZlciB0aGUgZGlzayBuYW1lIGluIE1TRE9TIHBhdGhuYW1lcy4gKi8KICBp ZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIG5hbWVbMF0pICYmIG5hbWVb MV0gPT0gJzonKQogICAgbmFtZSArPSAyOwojZW5kaWYKCiAgZm9yIChiYXNl ID0gbmFtZTsgKm5hbWU7IG5hbWUrKykKICAgIGlmIChJU19ESVJfU0VQQVJB VE9SICgqbmFtZSkpCiAgICAgIGJhc2UgPSBuYW1lICsgMTsKICByZXR1cm4g YmFzZTsKfQoKaW50CmNoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBh dGgpCnsKICBzdHJ1Y3Qgc3RhdCBzdDsKCiAgbHRfZGVidWdwcmludGYgKF9f RklMRV9fLCBfX0xJTkVfXywgIihjaGVja19leGVjdXRhYmxlKTogJXNcbiIs CiAgICAgICAgICAgICAgICAgIG5vbmVtcHR5IChwYXRoKSk7CiAgaWYgKCgh cGF0aCkgfHwgKCEqcGF0aCkpCiAgICByZXR1cm4gMDsKCiAgaWYgKChzdGF0 IChwYXRoLCAmc3QpID49IDApCiAgICAgICYmIChzdC5zdF9tb2RlICYgKFNf SVhVU1IgfCBTX0lYR1JQIHwgU19JWE9USCkpKQogICAgcmV0dXJuIDE7CiAg ZWxzZQogICAgcmV0dXJuIDA7Cn0KCmludAptYWtlX2V4ZWN1dGFibGUgKGNv bnN0IGNoYXIgKnBhdGgpCnsKICBpbnQgcnZhbCA9IDA7CiAgc3RydWN0IHN0 YXQgc3Q7CgogIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18s ICIobWFrZV9leGVjdXRhYmxlKTogJXNcbiIsCiAgICAgICAgICAgICAgICAg IG5vbmVtcHR5IChwYXRoKSk7CiAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkp CiAgICByZXR1cm4gMDsKCiAgaWYgKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkK ICAgIHsKICAgICAgcnZhbCA9IGNobW9kIChwYXRoLCBzdC5zdF9tb2RlIHwg U19JWE9USCB8IFNfSVhHUlAgfCBTX0lYVVNSKTsKICAgIH0KICByZXR1cm4g cnZhbDsKfQoKLyogU2VhcmNoZXMgZm9yIHRoZSBmdWxsIHBhdGggb2YgdGhl IHdyYXBwZXIuICBSZXR1cm5zCiAgIG5ld2x5IGFsbG9jYXRlZCBmdWxsIHBh dGggbmFtZSBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UKICAgRG9lcyBub3Qg Y2hhc2Ugc3ltbGlua3MsIGV2ZW4gb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9y dCB0aGVtLgoqLwpjaGFyICoKZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFy ICp3cmFwcGVyKQp7CiAgaW50IGhhc19zbGFzaCA9IDA7CiAgY29uc3QgY2hh ciAqcDsKICBjb25zdCBjaGFyICpwX25leHQ7CiAgLyogc3RhdGljIGJ1ZmZl ciBmb3IgZ2V0Y3dkICovCiAgY2hhciB0bXBbTFRfUEFUSE1BWCArIDFdOwog IGludCB0bXBfbGVuOwogIGNoYXIgKmNvbmNhdF9uYW1lOwoKICBsdF9kZWJ1 Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKGZpbmRfZXhlY3V0YWJs ZSk6ICVzXG4iLAogICAgICAgICAgICAgICAgICBub25lbXB0eSAod3JhcHBl cikpOwoKICBpZiAoKHdyYXBwZXIgPT0gTlVMTCkgfHwgKCp3cmFwcGVyID09 ICdcMCcpKQogICAgcmV0dXJuIE5VTEw7CgogIC8qIEFic29sdXRlIHBhdGg/ ICovCiNpZiBkZWZpbmVkIChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkK ICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIHdyYXBwZXJbMF0pICYm IHdyYXBwZXJbMV0gPT0gJzonKQogICAgewogICAgICBjb25jYXRfbmFtZSA9 IHhzdHJkdXAgKHdyYXBwZXIpOwogICAgICBpZiAoY2hlY2tfZXhlY3V0YWJs ZSAoY29uY2F0X25hbWUpKQoJcmV0dXJuIGNvbmNhdF9uYW1lOwogICAgICBY RlJFRSAoY29uY2F0X25hbWUpOwogICAgfQogIGVsc2UKICAgIHsKI2VuZGlm CiAgICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICh3cmFwcGVyWzBdKSkKCXsK CSAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKCSAgaWYgKGNo ZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKCSAgICByZXR1cm4gY29u Y2F0X25hbWU7CgkgIFhGUkVFIChjb25jYXRfbmFtZSk7Cgl9CiNpZiBkZWZp bmVkIChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkKICAgIH0KI2VuZGlm CgogIGZvciAocCA9IHdyYXBwZXI7ICpwOyBwKyspCiAgICBpZiAoKnAgPT0g Jy8nKQogICAgICB7CgloYXNfc2xhc2ggPSAxOwoJYnJlYWs7CiAgICAgIH0K ICBpZiAoIWhhc19zbGFzaCkKICAgIHsKICAgICAgLyogbm8gc2xhc2hlczsg c2VhcmNoIFBBVEggKi8KICAgICAgY29uc3QgY2hhciAqcGF0aCA9IGdldGVu diAoIlBBVEgiKTsKICAgICAgaWYgKHBhdGggIT0gTlVMTCkKCXsKCSAgZm9y IChwID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCgkgICAgewoJICAgICAgY29u c3QgY2hhciAqcTsKCSAgICAgIHNpemVfdCBwX2xlbjsKCSAgICAgIGZvciAo cSA9IHA7ICpxOyBxKyspCgkJaWYgKElTX1BBVEhfU0VQQVJBVE9SICgqcSkp CgkJICBicmVhazsKCSAgICAgIHBfbGVuID0gcSAtIHA7CgkgICAgICBwX25l eHQgPSAoKnEgPT0gJ1wwJyA/IHEgOiBxICsgMSk7CgkgICAgICBpZiAocF9s ZW4gPT0gMCkKCQl7CgkJICAvKiBlbXB0eSBwYXRoOiBjdXJyZW50IGRpcmVj dG9yeSAqLwoJCSAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBO VUxMKQoJCSAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAiZ2V0 Y3dkIGZhaWxlZDogJXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBub25udWxsIChzdHJlcnJvciAoZXJybm8pKSk7CgkJICB0bXBfbGVuID0g c3RybGVuICh0bXApOwoJCSAgY29uY2F0X25hbWUgPQoJCSAgICBYTUFMTE9D IChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsK CQkgIG1lbWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CgkJICBj b25jYXRfbmFtZVt0bXBfbGVuXSA9ICcvJzsKCQkgIHN0cmNweSAoY29uY2F0 X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7CgkJfQoJICAgICAgZWxz ZQoJCXsKCQkgIGNvbmNhdF9uYW1lID0KCQkgICAgWE1BTExPQyAoY2hhciwg cF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOwoJCSAgbWVtY3B5 IChjb25jYXRfbmFtZSwgcCwgcF9sZW4pOwoJCSAgY29uY2F0X25hbWVbcF9s ZW5dID0gJy8nOwoJCSAgc3RyY3B5IChjb25jYXRfbmFtZSArIHBfbGVuICsg MSwgd3JhcHBlcik7CgkJfQoJICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUg KGNvbmNhdF9uYW1lKSkKCQlyZXR1cm4gY29uY2F0X25hbWU7CgkgICAgICBY RlJFRSAoY29uY2F0X25hbWUpOwoJICAgIH0KCX0KICAgICAgLyogbm90IGZv dW5kIGluIFBBVEg7IGFzc3VtZSBjdXJkaXIgKi8KICAgIH0KICAvKiBSZWxh dGl2ZSBwYXRoIHwgbm90IGZvdW5kIGluIHBhdGg6IHByZXBlbmQgY3dkICov CiAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQogICAg bHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgImdldGN3ZCBmYWlsZWQ6 ICVzIiwKICAgICAgICAgICAgICBub25udWxsIChzdHJlcnJvciAoZXJybm8p KSk7CiAgdG1wX2xlbiA9IHN0cmxlbiAodG1wKTsKICBjb25jYXRfbmFtZSA9 IFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVy KSArIDEpOwogIG1lbWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7 CiAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7CiAgc3RyY3B5IChjb25j YXRfbmFtZSArIHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKCiAgaWYgKGNoZWNr X2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKICAgIHJldHVybiBjb25jYXRf bmFtZTsKICBYRlJFRSAoY29uY2F0X25hbWUpOwogIHJldHVybiBOVUxMOwp9 CgpjaGFyICoKY2hhc2Vfc3ltbGlua3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVj KQp7CiNpZm5kZWYgU19JU0xOSwogIHJldHVybiB4c3RyZHVwIChwYXRoc3Bl Yyk7CiNlbHNlCiAgY2hhciBidWZbTFRfUEFUSE1BWF07CiAgc3RydWN0IHN0 YXQgczsKICBjaGFyICp0bXBfcGF0aHNwZWMgPSB4c3RyZHVwIChwYXRoc3Bl Yyk7CiAgY2hhciAqcDsKICBpbnQgaGFzX3N5bWxpbmtzID0gMDsKICB3aGls ZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFoYXNfc3ltbGlua3MpCiAg ICB7CiAgICAgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18s CgkJICAgICAgImNoZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5r czogJXNcbiIsCgkJICAgICAgdG1wX3BhdGhzcGVjKTsKICAgICAgaWYgKGxz dGF0ICh0bXBfcGF0aHNwZWMsICZzKSA9PSAwKQoJewoJICBpZiAoU19JU0xO SyAocy5zdF9tb2RlKSAhPSAwKQoJICAgIHsKCSAgICAgIGhhc19zeW1saW5r cyA9IDE7CgkgICAgICBicmVhazsKCSAgICB9CgoJICAvKiBzZWFyY2ggYmFj a3dhcmRzIGZvciBsYXN0IERJUl9TRVBBUkFUT1IgKi8KCSAgcCA9IHRtcF9w YXRoc3BlYyArIHN0cmxlbiAodG1wX3BhdGhzcGVjKSAtIDE7CgkgIHdoaWxl ICgocCA+IHRtcF9wYXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJBVE9SICgq cCkpKQoJICAgIHAtLTsKCSAgaWYgKChwID09IHRtcF9wYXRoc3BlYykgJiYg KCFJU19ESVJfU0VQQVJBVE9SICgqcCkpKQoJICAgIHsKCSAgICAgIC8qIG5v IG1vcmUgRElSX1NFUEFSQVRPUlMgbGVmdCAqLwoJICAgICAgYnJlYWs7Cgkg ICAgfQoJICAqcCA9ICdcMCc7Cgl9CiAgICAgIGVsc2UKCXsKCSAgbHRfZmF0 YWwgKF9fRklMRV9fLCBfX0xJTkVfXywKCQkgICAgImVycm9yIGFjY2Vzc2lu ZyBmaWxlIFwiJXNcIjogJXMiLAoJCSAgICB0bXBfcGF0aHNwZWMsIG5vbm51 bGwgKHN0cmVycm9yIChlcnJubykpKTsKCX0KICAgIH0KICBYRlJFRSAodG1w X3BhdGhzcGVjKTsKCiAgaWYgKCFoYXNfc3ltbGlua3MpCiAgICB7CiAgICAg IHJldHVybiB4c3RyZHVwIChwYXRoc3BlYyk7CiAgICB9CgogIHRtcF9wYXRo c3BlYyA9IHJlYWxwYXRoIChwYXRoc3BlYywgYnVmKTsKICBpZiAodG1wX3Bh dGhzcGVjID09IDApCiAgICB7CiAgICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywg X19MSU5FX18sCgkJImNvdWxkIG5vdCBmb2xsb3cgc3ltbGlua3MgZm9yICVz IiwgcGF0aHNwZWMpOwogICAgfQogIHJldHVybiB4c3RyZHVwICh0bXBfcGF0 aHNwZWMpOwojZW5kaWYKfQoKY2hhciAqCnN0cmVuZHphcCAoY2hhciAqc3Ry LCBjb25zdCBjaGFyICpwYXQpCnsKICBzaXplX3QgbGVuLCBwYXRsZW47Cgog IGFzc2VydCAoc3RyICE9IE5VTEwpOwogIGFzc2VydCAocGF0ICE9IE5VTEwp OwoKICBsZW4gPSBzdHJsZW4gKHN0cik7CiAgcGF0bGVuID0gc3RybGVuIChw YXQpOwoKICBpZiAocGF0bGVuIDw9IGxlbikKICAgIHsKICAgICAgc3RyICs9 IGxlbiAtIHBhdGxlbjsKICAgICAgaWYgKHN0cmNtcCAoc3RyLCBwYXQpID09 IDApCgkqc3RyID0gJ1wwJzsKICAgIH0KICByZXR1cm4gc3RyOwp9Cgp2b2lk Cmx0X2RlYnVncHJpbnRmIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwg Y29uc3QgY2hhciAqZm10LCAuLi4pCnsKICB2YV9saXN0IGFyZ3M7CiAgaWYg KGx0X2RlYnVnKQogICAgewogICAgICAodm9pZCkgZnByaW50ZiAoc3RkZXJy LCAiJXM6JXM6JWQ6ICIsIHByb2dyYW1fbmFtZSwgZmlsZSwgbGluZSk7CiAg ICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOwogICAgICAodm9pZCkgdmZwcmlu dGYgKHN0ZGVyciwgZm10LCBhcmdzKTsKICAgICAgdmFfZW5kIChhcmdzKTsK ICAgIH0KfQoKc3RhdGljIHZvaWQKbHRfZXJyb3JfY29yZSAoaW50IGV4aXRf c3RhdHVzLCBjb25zdCBjaGFyICpmaWxlLAoJICAgICAgIGludCBsaW5lLCBj b25zdCBjaGFyICptb2RlLAoJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IHZhX2xpc3QgYXApCnsKICBmcHJpbnRmIChzdGRlcnIsICIlczolczolZDog JXM6ICIsIHByb2dyYW1fbmFtZSwgZmlsZSwgbGluZSwgbW9kZSk7CiAgdmZw cmludGYgKHN0ZGVyciwgbWVzc2FnZSwgYXApOwogIGZwcmludGYgKHN0ZGVy ciwgIi5cbiIpOwoKICBpZiAoZXhpdF9zdGF0dXMgPj0gMCkKICAgIGV4aXQg KGV4aXRfc3RhdHVzKTsKfQoKdm9pZApsdF9mYXRhbCAoY29uc3QgY2hhciAq ZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLikKewog IHZhX2xpc3QgYXA7CiAgdmFfc3RhcnQgKGFwLCBtZXNzYWdlKTsKICBsdF9l cnJvcl9jb3JlIChFWElUX0ZBSUxVUkUsIGZpbGUsIGxpbmUsICJGQVRBTCIs IG1lc3NhZ2UsIGFwKTsKICB2YV9lbmQgKGFwKTsKfQoKc3RhdGljIGNvbnN0 IGNoYXIgKgpub25udWxsIChjb25zdCBjaGFyICpzKQp7CiAgcmV0dXJuIHMg PyBzIDogIihudWxsKSI7Cn0KCnN0YXRpYyBjb25zdCBjaGFyICoKbm9uZW1w dHkgKGNvbnN0IGNoYXIgKnMpCnsKICByZXR1cm4gKHMgJiYgISpzKSA/ICIo ZW1wdHkpIiA6IG5vbm51bGwgKHMpOwp9Cgp2b2lkCmx0X3NldGVudiAoY29u c3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCnsKICBsdF9kZWJ1 Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAoJCSAgIihsdF9zZXRlbnYp IHNldHRpbmcgJyVzJyB0byAnJXMnXG4iLAogICAgICAgICAgICAgICAgICBu b25udWxsIChuYW1lKSwgbm9ubnVsbCAodmFsdWUpKTsKICB7CiNpZmRlZiBI QVZFX1NFVEVOVgogICAgLyogYWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29u c2lzdGVuY3kgd2l0aCAhSEFWRV9TRVRFTlYgKi8KICAgIGNoYXIgKnN0ciA9 IHhzdHJkdXAgKHZhbHVlKTsKICAgIHNldGVudiAobmFtZSwgc3RyLCAxKTsK I2Vsc2UKICAgIGludCBsZW4gPSBzdHJsZW4gKG5hbWUpICsgMSArIHN0cmxl biAodmFsdWUpICsgMTsKICAgIGNoYXIgKnN0ciA9IFhNQUxMT0MgKGNoYXIs IGxlbik7CiAgICBzcHJpbnRmIChzdHIsICIlcz0lcyIsIG5hbWUsIHZhbHVl KTsKICAgIGlmIChwdXRlbnYgKHN0cikgIT0gRVhJVF9TVUNDRVNTKQogICAg ICB7CiAgICAgICAgWEZSRUUgKHN0cik7CiAgICAgIH0KI2VuZGlmCiAgfQp9 CgpjaGFyICoKbHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAqb3JpZ192YWx1 ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5kKQp7CiAgY2hhciAqbmV3 X3ZhbHVlOwogIGlmIChvcmlnX3ZhbHVlICYmICpvcmlnX3ZhbHVlKQogICAg ewogICAgICBpbnQgb3JpZ192YWx1ZV9sZW4gPSBzdHJsZW4gKG9yaWdfdmFs dWUpOwogICAgICBpbnQgYWRkX2xlbiA9IHN0cmxlbiAoYWRkKTsKICAgICAg bmV3X3ZhbHVlID0gWE1BTExPQyAoY2hhciwgYWRkX2xlbiArIG9yaWdfdmFs dWVfbGVuICsgMSk7CiAgICAgIGlmICh0b19lbmQpCiAgICAgICAgewogICAg ICAgICAgc3RyY3B5IChuZXdfdmFsdWUsIG9yaWdfdmFsdWUpOwogICAgICAg ICAgc3RyY3B5IChuZXdfdmFsdWUgKyBvcmlnX3ZhbHVlX2xlbiwgYWRkKTsK ICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICBzdHJj cHkgKG5ld192YWx1ZSwgYWRkKTsKICAgICAgICAgIHN0cmNweSAobmV3X3Zh bHVlICsgYWRkX2xlbiwgb3JpZ192YWx1ZSk7CiAgICAgICAgfQogICAgfQog IGVsc2UKICAgIHsKICAgICAgbmV3X3ZhbHVlID0geHN0cmR1cCAoYWRkKTsK ICAgIH0KICByZXR1cm4gbmV3X3ZhbHVlOwp9Cgp2b2lkCmx0X3VwZGF0ZV9l eGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUp CnsKICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAoJCSAg IihsdF91cGRhdGVfZXhlX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBl bmRpbmcgJyVzJ1xuIiwKICAgICAgICAgICAgICAgICAgbm9ubnVsbCAobmFt ZSksIG5vbm51bGwgKHZhbHVlKSk7CgogIGlmIChuYW1lICYmICpuYW1lICYm IHZhbHVlICYmICp2YWx1ZSkKICAgIHsKICAgICAgY2hhciAqbmV3X3ZhbHVl ID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOwog ICAgICAvKiBzb21lIHN5c3RlbXMgY2FuJ3QgY29wZSB3aXRoIGEgJzonLXRl cm1pbmF0ZWQgcGF0aCAjJyAqLwogICAgICBpbnQgbGVuID0gc3RybGVuIChu ZXdfdmFsdWUpOwogICAgICB3aGlsZSAoKChsZW4gPSBzdHJsZW4gKG5ld192 YWx1ZSkpID4gMCkgJiYgSVNfUEFUSF9TRVBBUkFUT1IgKG5ld192YWx1ZVts ZW4tMV0pKQogICAgICAgIHsKICAgICAgICAgIG5ld192YWx1ZVtsZW4tMV0g PSAnXDAnOwogICAgICAgIH0KICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdf dmFsdWUpOwogICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKICAgIH0KfQoKdm9p ZApsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKnZhbHVlKQp7CiAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBf X0xJTkVfXywKCQkgICIobHRfdXBkYXRlX2xpYl9wYXRoKSBtb2RpZnlpbmcg JyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCiAgICAgICAgICAgICAgICAg IG5vbm51bGwgKG5hbWUpLCBub25udWxsICh2YWx1ZSkpOwoKICBpZiAobmFt ZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCiAgICB7CiAgICAgIGNo YXIgKm5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSks IHZhbHVlLCAwKTsKICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUp OwogICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKICAgIH0KfQoKRU9GCgkgICAg Y2FzZSAkaG9zdF9vcyBpbgoJICAgICAgbWluZ3cqKQoJCWNhdCA8PCJFT0Yi CgovKiBQcmVwYXJlcyBhbiBhcmd1bWVudCB2ZWN0b3IgYmVmb3JlIGNhbGxp bmcgc3Bhd24oKS4KICAgTm90ZSB0aGF0IHNwYXduKCkgZG9lcyBub3QgYnkg aXRzZWxmIGNhbGwgdGhlIGNvbW1hbmQgaW50ZXJwcmV0ZXIKICAgICAoZ2V0 ZW52ICgiQ09NU1BFQyIpICE9IE5VTEwgPyBnZXRlbnYgKCJDT01TUEVDIikg OgogICAgICAoeyBPU1ZFUlNJT05JTkZPIHY7IHYuZHdPU1ZlcnNpb25JbmZv U2l6ZSA9IHNpemVvZihPU1ZFUlNJT05JTkZPKTsKICAgICAgICAgR2V0VmVy c2lvbkV4KCZ2KTsKICAgICAgICAgdi5kd1BsYXRmb3JtSWQgPT0gVkVSX1BM QVRGT1JNX1dJTjMyX05UOwogICAgICB9KSA/ICJjbWQuZXhlIiA6ICJjb21t YW5kLmNvbSIpLgogICBJbnN0ZWFkIGl0IHNpbXBseSBjb25jYXRlbmF0ZXMg dGhlIGFyZ3VtZW50cywgc2VwYXJhdGVkIGJ5ICcgJywgYW5kIGNhbGxzCiAg IENyZWF0ZVByb2Nlc3MoKS4gIFdlIG11c3QgcXVvdGUgdGhlIGFyZ3VtZW50 cyBzaW5jZSBXaW4zMiBDcmVhdGVQcm9jZXNzKCkKICAgaW50ZXJwcmV0cyBj aGFyYWN0ZXJzIGxpa2UgJyAnLCAnXHQnLCAnXFwnLCAnIicgKGJ1dCBub3Qg JzwnIGFuZCAnPicpIGluIGEKICAgc3BlY2lhbCB3YXk6CiAgIC0gU3BhY2Ug YW5kIHRhYiBhcmUgaW50ZXJwcmV0ZWQgYXMgZGVsaW1pdGVycy4gVGhleSBh cmUgbm90IHRyZWF0ZWQgYXMKICAgICBkZWxpbWl0ZXJzIGlmIHRoZXkgYXJl IHN1cnJvdW5kZWQgYnkgZG91YmxlIHF1b3RlczogIi4uLiIuCiAgIC0gVW5l c2NhcGVkIGRvdWJsZSBxdW90ZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgaW5w dXQuIFRoZWlyIG9ubHkgZWZmZWN0IGlzCiAgICAgdGhhdCB3aXRoaW4gZG91 YmxlIHF1b3Rlcywgc3BhY2UgYW5kIHRhYiBhcmUgdHJlYXRlZCBsaWtlIG5v cm1hbAogICAgIGNoYXJhY3RlcnMuCiAgIC0gQmFja3NsYXNoZXMgbm90IGZv bGxvd2VkIGJ5IGRvdWJsZSBxdW90ZXMgYXJlIG5vdCBzcGVjaWFsLgogICAt IEJ1dCAyKm4rMSBiYWNrc2xhc2hlcyBmb2xsb3dlZCBieSBhIGRvdWJsZSBx dW90ZSBiZWNvbWUKICAgICBuIGJhY2tzbGFzaGVzIGZvbGxvd2VkIGJ5IGEg ZG91YmxlIHF1b3RlIChuID49IDApOgogICAgICAgXCIgLT4gIgogICAgICAg XFxcIiAtPiBcIgogICAgICAgXFxcXFwiIC0+IFxcIgogKi8KI2RlZmluZSBT SEVMTF9TUEVDSUFMX0NIQVJTICJcIlxcIFwwMDFcMDAyXDAwM1wwMDRcMDA1 XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBc MDIxXDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFwwMzFcMDMyXDAzM1ww MzRcMDM1XDAzNlwwMzciCiNkZWZpbmUgU0hFTExfU1BBQ0VfQ0hBUlMgIiBc MDAxXDAwMlwwMDNcMDA0XDAwNVwwMDZcMDA3XDAxMFwwMTFcMDEyXDAxM1ww MTRcMDE1XDAxNlwwMTdcMDIwXDAyMVwwMjJcMDIzXDAyNFwwMjVcMDI2XDAy N1wwMzBcMDMxXDAzMlwwMzNcMDM0XDAzNVwwMzZcMDM3IgpjaGFyICoqCnBy ZXBhcmVfc3Bhd24gKGNoYXIgKiphcmd2KQp7CiAgc2l6ZV90IGFyZ2M7CiAg Y2hhciAqKm5ld19hcmd2OwogIHNpemVfdCBpOwoKICAvKiBDb3VudCBudW1i ZXIgb2YgYXJndW1lbnRzLiAgKi8KICBmb3IgKGFyZ2MgPSAwOyBhcmd2W2Fy Z2NdICE9IE5VTEw7IGFyZ2MrKykKICAgIDsKCiAgLyogQWxsb2NhdGUgbmV3 IGFyZ3VtZW50IHZlY3Rvci4gICovCiAgbmV3X2FyZ3YgPSBYTUFMTE9DIChj aGFyICosIGFyZ2MgKyAxKTsKCiAgLyogUHV0IHF1b3RlZCBhcmd1bWVudHMg aW50byB0aGUgbmV3IGFyZ3VtZW50IHZlY3Rvci4gICovCiAgZm9yIChpID0g MDsgaSA8IGFyZ2M7IGkrKykKICAgIHsKICAgICAgY29uc3QgY2hhciAqc3Ry aW5nID0gYXJndltpXTsKCiAgICAgIGlmIChzdHJpbmdbMF0gPT0gJ1wwJykK CW5ld19hcmd2W2ldID0geHN0cmR1cCAoIlwiXCIiKTsKICAgICAgZWxzZSBp ZiAoc3RycGJyayAoc3RyaW5nLCBTSEVMTF9TUEVDSUFMX0NIQVJTKSAhPSBO VUxMKQoJewoJICBpbnQgcXVvdGVfYXJvdW5kID0gKHN0cnBicmsgKHN0cmlu ZywgU0hFTExfU1BBQ0VfQ0hBUlMpICE9IE5VTEwpOwoJICBzaXplX3QgbGVu Z3RoOwoJICB1bnNpZ25lZCBpbnQgYmFja3NsYXNoZXM7CgkgIGNvbnN0IGNo YXIgKnM7CgkgIGNoYXIgKnF1b3RlZF9zdHJpbmc7CgkgIGNoYXIgKnA7CgoJ ICBsZW5ndGggPSAwOwoJICBiYWNrc2xhc2hlcyA9IDA7CgkgIGlmIChxdW90 ZV9hcm91bmQpCgkgICAgbGVuZ3RoKys7CgkgIGZvciAocyA9IHN0cmluZzsg KnMgIT0gJ1wwJzsgcysrKQoJICAgIHsKCSAgICAgIGNoYXIgYyA9ICpzOwoJ ICAgICAgaWYgKGMgPT0gJyInKQoJCWxlbmd0aCArPSBiYWNrc2xhc2hlcyAr IDE7CgkgICAgICBsZW5ndGgrKzsKCSAgICAgIGlmIChjID09ICdcXCcpCgkJ YmFja3NsYXNoZXMrKzsKCSAgICAgIGVsc2UKCQliYWNrc2xhc2hlcyA9IDA7 CgkgICAgfQoJICBpZiAocXVvdGVfYXJvdW5kKQoJICAgIGxlbmd0aCArPSBi YWNrc2xhc2hlcyArIDE7CgoJICBxdW90ZWRfc3RyaW5nID0gWE1BTExPQyAo Y2hhciwgbGVuZ3RoICsgMSk7CgoJICBwID0gcXVvdGVkX3N0cmluZzsKCSAg YmFja3NsYXNoZXMgPSAwOwoJICBpZiAocXVvdGVfYXJvdW5kKQoJICAgICpw KysgPSAnIic7CgkgIGZvciAocyA9IHN0cmluZzsgKnMgIT0gJ1wwJzsgcysr KQoJICAgIHsKCSAgICAgIGNoYXIgYyA9ICpzOwoJICAgICAgaWYgKGMgPT0g JyInKQoJCXsKCQkgIHVuc2lnbmVkIGludCBqOwoJCSAgZm9yIChqID0gYmFj a3NsYXNoZXMgKyAxOyBqID4gMDsgai0tKQoJCSAgICAqcCsrID0gJ1xcJzsK CQl9CgkgICAgICAqcCsrID0gYzsKCSAgICAgIGlmIChjID09ICdcXCcpCgkJ YmFja3NsYXNoZXMrKzsKCSAgICAgIGVsc2UKCQliYWNrc2xhc2hlcyA9IDA7 CgkgICAgfQoJICBpZiAocXVvdGVfYXJvdW5kKQoJICAgIHsKCSAgICAgIHVu c2lnbmVkIGludCBqOwoJICAgICAgZm9yIChqID0gYmFja3NsYXNoZXM7IGog PiAwOyBqLS0pCgkJKnArKyA9ICdcXCc7CgkgICAgICAqcCsrID0gJyInOwoJ ICAgIH0KCSAgKnAgPSAnXDAnOwoKCSAgbmV3X2FyZ3ZbaV0gPSBxdW90ZWRf c3RyaW5nOwoJfQogICAgICBlbHNlCgluZXdfYXJndltpXSA9IChjaGFyICop IHN0cmluZzsKICAgIH0KICBuZXdfYXJndlthcmdjXSA9IE5VTEw7CgogIHJl dHVybiBuZXdfYXJndjsKfQpFT0YKCQk7OwoJICAgIGVzYWMKCiAgICAgICAg ICAgIGNhdCA8PCJFT0YiCnZvaWQgbHRfZHVtcF9zY3JpcHQgKEZJTEUqIGYp CnsKRU9GCgkgICAgZnVuY19lbWl0X3dyYXBwZXIgeWVzIHwKCSAgICAgICRT RUQgLW4gLWUgJwpzL15cKC5cezc5XH1cKVwoLi4qXCkvXDFcClwyLwpoCnMv XChbXFwiXVwpL1xcXDEvZwpzLyQvXFxuLwpzL1woW15cbl0qXCkuKi8gIGZw dXRzICgiXDEiLCBmKTsvcApnCkQnCiAgICAgICAgICAgIGNhdCA8PCJFT0Yi Cn0KRU9GCn0KIyBlbmQ6IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKCiMg ZnVuY193aW4zMl9pbXBvcnRfbGliX3AgQVJHCiMgVHJ1ZSBpZiBBUkcgaXMg YW4gaW1wb3J0IGxpYiwgYXMgaW5kaWNhdGVkIGJ5ICRmaWxlX21hZ2ljX2Nt ZApmdW5jX3dpbjMyX2ltcG9ydF9saWJfcCAoKQp7CiAgICAkb3B0X2RlYnVn CiAgICBjYXNlIGBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkMVwiIDI+L2Rl di9udWxsIHwgJFNFRCAtZSAxMHFgIGluCiAgICAqaW1wb3J0KikgOiA7Owog ICAgKikgZmFsc2UgOzsKICAgIGVzYWMKfQoKIyBmdW5jX21vZGVfbGluayBh cmcuLi4KZnVuY19tb2RlX2xpbmsgKCkKewogICAgJG9wdF9kZWJ1ZwogICAg Y2FzZSAkaG9zdCBpbgogICAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwg Ki0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKICAgICAgIyBJdCBp cyBpbXBvc3NpYmxlIHRvIGxpbmsgYSBkbGwgd2l0aG91dCB0aGlzIHNldHRp bmcsIGFuZAogICAgICAjIHdlIHNob3VsZG4ndCBmb3JjZSB0aGUgbWFrZWZp bGUgbWFpbnRhaW5lciB0byBmaWd1cmUgb3V0CiAgICAgICMgd2hpY2ggc3lz dGVtIHdlIGFyZSBjb21waWxpbmcgZm9yIGluIG9yZGVyIHRvIHBhc3MgYW4g ZXh0cmEKICAgICAgIyBmbGFnIGZvciBldmVyeSBsaWJ0b29sIGludm9jYXRp b24uCiAgICAgICMgYWxsb3dfdW5kZWZpbmVkPW5vCgogICAgICAjIEZJWE1F OiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUg YWJvdmUgd2hlbiB0cnlpbmcKICAgICAgIyB0byBtYWtlIGEgZGxsIHdoaWNo IGhhcyB1bmRlZmluZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QKICAg ICAgIyBldmVuIGEgc3RhdGljIGxpYnJhcnkgaXMgYnVpbHQuICBGb3Igbm93 LCB3ZSBuZWVkIHRvIHNwZWNpZnkKICAgICAgIyAtbm8tdW5kZWZpbmVkIG9u IHRoZSBsaWJ0b29sIGxpbmsgbGluZSB3aGVuIHdlIGNhbiBiZSBjZXJ0YWlu CiAgICAgICMgdGhhdCBhbGwgc3ltYm9scyBhcmUgc2F0aXNmaWVkLCBvdGhl cndpc2Ugd2UgZ2V0IGEgc3RhdGljIGxpYnJhcnkuCiAgICAgIGFsbG93X3Vu ZGVmaW5lZD15ZXMKICAgICAgOzsKICAgICopCiAgICAgIGFsbG93X3VuZGVm aW5lZD15ZXMKICAgICAgOzsKICAgIGVzYWMKICAgIGxpYnRvb2xfYXJncz0k bm9ub3B0CiAgICBiYXNlX2NvbXBpbGU9IiRub25vcHQgJEAiCiAgICBjb21w aWxlX2NvbW1hbmQ9JG5vbm9wdAogICAgZmluYWxpemVfY29tbWFuZD0kbm9u b3B0CgogICAgY29tcGlsZV9ycGF0aD0KICAgIGZpbmFsaXplX3JwYXRoPQog ICAgY29tcGlsZV9zaGxpYnBhdGg9CiAgICBmaW5hbGl6ZV9zaGxpYnBhdGg9 CiAgICBjb252ZW5pZW5jZT0KICAgIG9sZF9jb252ZW5pZW5jZT0KICAgIGRl cGxpYnM9CiAgICBvbGRfZGVwbGlicz0KICAgIGNvbXBpbGVyX2ZsYWdzPQog ICAgbGlua2VyX2ZsYWdzPQogICAgZGxsc2VhcmNocGF0aD0KICAgIGxpYl9z ZWFyY2hfcGF0aD1gcHdkYAogICAgaW5zdF9wcmVmaXhfZGlyPQogICAgbmV3 X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9CgogICAgYXZvaWRfdmVyc2lvbj1u bwogICAgYmluZGlyPQogICAgZGxmaWxlcz0KICAgIGRscHJlZmlsZXM9CiAg ICBkbHNlbGY9bm8KICAgIGV4cG9ydF9keW5hbWljPW5vCiAgICBleHBvcnRf c3ltYm9scz0KICAgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQogICAgZ2VuZXJh dGVkPQogICAgbGlib2Jqcz0KICAgIGx0bGlicz0KICAgIG1vZHVsZT1ubwog ICAgbm9faW5zdGFsbD1ubwogICAgb2Jqcz0KICAgIG5vbl9waWNfb2JqZWN0 cz0KICAgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PQogICAgcHJlZmVyX3N0YXRp Y19saWJzPW5vCiAgICBwcmVsb2FkPW5vCiAgICBwcmV2PQogICAgcHJldmFy Zz0KICAgIHJlbGVhc2U9CiAgICBycGF0aD0KICAgIHhycGF0aD0KICAgIHBl cm1fcnBhdGg9CiAgICB0ZW1wX3JwYXRoPQogICAgdGhyZWFkX3NhZmU9bm8K ICAgIHZpbmZvPQogICAgdmluZm9fbnVtYmVyPW5vCiAgICB3ZWFrX2xpYnM9 CiAgICBzaW5nbGVfbW9kdWxlPSIke3dsfS1zaW5nbGVfbW9kdWxlIgogICAg ZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQoKICAgICMgV2UgbmVlZCB0 byBrbm93IC1zdGF0aWMsIHRvIGdldCB0aGUgcmlnaHQgb3V0cHV0IGZpbGVu YW1lcy4KICAgIGZvciBhcmcKICAgIGRvCiAgICAgIGNhc2UgJGFyZyBpbgog ICAgICAtc2hhcmVkKQoJdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0g eWVzICYmIFwKCSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90 IGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkiCglidWlsZF9vbGRfbGlicz1ubwoJ YnJlYWsKCTs7CiAgICAgIC1hbGwtc3RhdGljIHwgLXN0YXRpYyB8IC1zdGF0 aWMtbGlidG9vbC1saWJzKQoJY2FzZSAkYXJnIGluCgktYWxsLXN0YXRpYykK CSAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVz dCAteiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCgkgICAgZnVuY193YXJu aW5nICJjb21wbGV0ZSBzdGF0aWMgbGlua2luZyBpcyBpbXBvc3NpYmxlIGlu IHRoaXMgY29uZmlndXJhdGlvbiIKCSAgZmkKCSAgaWYgdGVzdCAtbiAiJGxp bmtfc3RhdGljX2ZsYWciOyB0aGVuCgkgICAgZGxvcGVuX3NlbGY9JGRsb3Bl bl9zZWxmX3N0YXRpYwoJICBmaQoJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVz CgkgIDs7Cgktc3RhdGljKQoJICBpZiB0ZXN0IC16ICIkcGljX2ZsYWciICYm IHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgoJICAgIGRsb3Bl bl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKCSAgZmkKCSAgcHJlZmVyX3N0 YXRpY19saWJzPWJ1aWx0CgkgIDs7Cgktc3RhdGljLWxpYnRvb2wtbGlicykK CSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlua19z dGF0aWNfZmxhZyI7IHRoZW4KCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3Nl bGZfc3RhdGljCgkgIGZpCgkgIHByZWZlcl9zdGF0aWNfbGlicz15ZXMKCSAg OzsKCWVzYWMKCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwoJYnVpbGRfb2xkX2xp YnM9eWVzCglicmVhawoJOzsKICAgICAgZXNhYwogICAgZG9uZQoKICAgICMg U2VlIGlmIG91ciBzaGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBh cmNoaXZlcy4KICAgIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19j bWRzIiAmJiBidWlsZF9vbGRfbGlicz15ZXMKCiAgICAjIEdvIHRocm91Z2gg dGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdheS4K ICAgIHdoaWxlIHRlc3QgIiQjIiAtZ3QgMDsgZG8KICAgICAgYXJnPSIkMSIK ICAgICAgc2hpZnQKICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIK ICAgICAgcWFyZz0kZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1 bHQKICAgICAgbGlidG9vbF9hcmdzKz0iICRmdW5jX3F1b3RlX2Zvcl9ldmFs X3Jlc3VsdCIKCiAgICAgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVk cyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgogICAgICBpZiB0ZXN0IC1uICIk cHJldiI7IHRoZW4KCWNhc2UgJHByZXYgaW4KCW91dHB1dCkKCSAgY29tcGls ZV9jb21tYW5kKz0iIEBPVVRQVVRAIgoJICBmaW5hbGl6ZV9jb21tYW5kKz0i IEBPVVRQVVRAIgoJICA7OwoJZXNhYwoKCWNhc2UgJHByZXYgaW4KCWJpbmRp cikKCSAgYmluZGlyPSIkYXJnIgoJICBwcmV2PQoJICBjb250aW51ZQoJICA7 OwoJZGxmaWxlc3xkbHByZWZpbGVzKQoJICBpZiB0ZXN0ICIkcHJlbG9hZCIg PSBubzsgdGhlbgoJICAgICMgQWRkIHRoZSBzeW1ib2wgb2JqZWN0IGludG8g dGhlIGxpbmtpbmcgY29tbWFuZHMuCgkgICAgY29tcGlsZV9jb21tYW5kKz0i IEBTWU1GSUxFQCIKCSAgICBmaW5hbGl6ZV9jb21tYW5kKz0iIEBTWU1GSUxF QCIKCSAgICBwcmVsb2FkPXllcwoJICBmaQoJICBjYXNlICRhcmcgaW4KCSAg Ki5sYSB8ICoubG8pIDs7ICAjIFdlIGhhbmRsZSB0aGVzZSBjYXNlcyBiZWxv dy4KCSAgZm9yY2UpCgkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhl bgoJICAgICAgZGxzZWxmPW5lZWRsZXNzCgkgICAgICBleHBvcnRfZHluYW1p Yz15ZXMKCSAgICBmaQoJICAgIHByZXY9CgkgICAgY29udGludWUKCSAgICA7 OwoJICBzZWxmKQoJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7 IHRoZW4KCSAgICAgIGRsc2VsZj15ZXMKCSAgICBlbGlmIHRlc3QgIiRwcmV2 IiA9IGRsZmlsZXMgJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiAhPSB5ZXM7IHRo ZW4KCSAgICAgIGRsc2VsZj15ZXMKCSAgICBlbHNlCgkgICAgICBkbHNlbGY9 bmVlZGxlc3MKCSAgICAgIGV4cG9ydF9keW5hbWljPXllcwoJICAgIGZpCgkg ICAgcHJldj0KCSAgICBjb250aW51ZQoJICAgIDs7CgkgICopCgkgICAgaWYg dGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgoJICAgICAgZGxmaWxlcys9 IiAkYXJnIgoJICAgIGVsc2UKCSAgICAgIGRscHJlZmlsZXMrPSIgJGFyZyIK CSAgICBmaQoJICAgIHByZXY9CgkgICAgY29udGludWUKCSAgICA7OwoJICBl c2FjCgkgIDs7CglleHBzeW1zKQoJICBleHBvcnRfc3ltYm9scz0iJGFyZyIK CSAgdGVzdCAtZiAiJGFyZyIgXAoJICAgIHx8IGZ1bmNfZmF0YWxfZXJyb3Ig InN5bWJvbCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCgkgIHByZXY9 CgkgIGNvbnRpbnVlCgkgIDs7CglleHBzeW1zX3JlZ2V4KQoJICBleHBvcnRf c3ltYm9sc19yZWdleD0iJGFyZyIKCSAgcHJldj0KCSAgY29udGludWUKCSAg OzsKCWZyYW1ld29yaykKCSAgY2FzZSAkaG9zdCBpbgoJICAgICotKi1kYXJ3 aW4qKQoJICAgICAgY2FzZSAiJGRlcGxpYnMgIiBpbgoJCSoiICRxYXJnLmx0 ZnJhbWV3b3JrICIqKSA7OwoJCSopIGRlcGxpYnMrPSIgJHFhcmcubHRmcmFt ZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgoJCSAgIDs7CgkgICAgICBl c2FjCgkgICAgICA7OwoJICBlc2FjCgkgIHByZXY9CgkgIGNvbnRpbnVlCgkg IDs7CglpbnN0X3ByZWZpeCkKCSAgaW5zdF9wcmVmaXhfZGlyPSIkYXJnIgoJ ICBwcmV2PQoJICBjb250aW51ZQoJICA7OwoJb2JqZWN0bGlzdCkKCSAgaWYg dGVzdCAtZiAiJGFyZyI7IHRoZW4KCSAgICBzYXZlX2FyZz0kYXJnCgkgICAg bW9yZWFyZ3M9CgkgICAgZm9yIGZpbCBpbiBgY2F0ICIkc2F2ZV9hcmciYAoJ ICAgIGRvCiMJICAgICAgbW9yZWFyZ3MrPSIgJGZpbCIKCSAgICAgIGFyZz0k ZmlsCgkgICAgICAjIEEgbGlidG9vbC1jb250cm9sbGVkIG9iamVjdC4KCgkg ICAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGli dG9vbCBvYmplY3QuCgkgICAgICBpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIk YXJnIjsgdGhlbgoJCXBpY19vYmplY3Q9CgkJbm9uX3BpY19vYmplY3Q9CgoJ CSMgUmVhZCB0aGUgLmxvIGZpbGUKCQlmdW5jX3NvdXJjZSAiJGFyZyIKCgkJ aWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8CgkJICAgdGVzdCAteiAiJG5v bl9waWNfb2JqZWN0IiB8fAoJCSAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5v bmUgJiYKCQkgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhl bgoJCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBv YmplY3QgZm9yIFxgJGFyZyciCgkJZmkKCgkJIyBFeHRyYWN0IHN1YmRpcmVj dG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KCQlmdW5jX2Rpcm5hbWUgIiRhcmci ICIvIiAiIgoJCXhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgoKCQlpZiB0 ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgoJCSAgIyBQcmVwZW5k IHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KCQkg IHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCgoJCSAgaWYgdGVzdCAi JHByZXYiID0gZGxmaWxlczsgdGhlbgoJCSAgICBpZiB0ZXN0ICIkYnVpbGRf bGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQi ID0geWVzOyB0aGVuCgkJICAgICAgZGxmaWxlcys9IiAkcGljX29iamVjdCIK CQkgICAgICBwcmV2PQoJCSAgICAgIGNvbnRpbnVlCgkJICAgIGVsc2UKCQkg ICAgICAjIElmIGxpYnRvb2wgb2JqZWN0cyBhcmUgdW5zdXBwb3J0ZWQsIHRo ZW4gd2UgbmVlZCB0byBwcmVsb2FkLgoJCSAgICAgIHByZXY9ZGxwcmVmaWxl cwoJCSAgICBmaQoJCSAgZmkKCgkJICAjIENIRUNLIE1FOiAgSSB0aGluayBJ IGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQoJCSAgaWYgdGVzdCAiJHByZXYiID0g ZGxwcmVmaWxlczsgdGhlbgoJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHls ZSBvYmplY3QuCgkJICAgIGRscHJlZmlsZXMrPSIgJHBpY19vYmplY3QiCgkJ ICAgIHByZXY9CgkJICBmaQoKCQkgICMgQSBQSUMgb2JqZWN0LgoJCSAgbGli b2Jqcys9IiAkcGljX29iamVjdCIKCQkgIGFyZz0iJHBpY19vYmplY3QiCgkJ ZmkKCgkJIyBOb24tUElDIG9iamVjdC4KCQlpZiB0ZXN0ICIkbm9uX3BpY19v YmplY3QiICE9IG5vbmU7IHRoZW4KCQkgICMgUHJlcGVuZCB0aGUgc3ViZGly ZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCgkJICBub25fcGljX29i amVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCgoJCSAgIyBBIHN0YW5kYXJk IG5vbi1QSUMgb2JqZWN0CgkJICBub25fcGljX29iamVjdHMrPSIgJG5vbl9w aWNfb2JqZWN0IgoJCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRl c3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCgkJICAgIGFyZz0iJG5v bl9waWNfb2JqZWN0IgoJCSAgZmkKCQllbHNlCgkJICAjIElmIHRoZSBQSUMg b2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCgkJICAjICR4ZGlyIHdh cyBwcmVwZW5kZWQgdG8gJHBpY19vYmplY3QgYWJvdmUuCgkJICBub25fcGlj X29iamVjdD0iJHBpY19vYmplY3QiCgkJICBub25fcGljX29iamVjdHMrPSIg JG5vbl9waWNfb2JqZWN0IgoJCWZpCgkgICAgICBlbHNlCgkJIyBPbmx5IGFu IGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4uCgkJaWYgJG9wdF9kcnlf cnVuOyB0aGVuCgkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhl IGFyZ3VtZW50LgoJCSAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKCQkg IHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgoKCQkgIGZ1bmNfbG8ybyAi JGFyZyIKCQkgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9f cmVzdWx0CgkJICBub25fcGljX29iamVjdD0keGRpciRmdW5jX2xvMm9fcmVz dWx0CgkJICBsaWJvYmpzKz0iICRwaWNfb2JqZWN0IgoJCSAgbm9uX3BpY19v YmplY3RzKz0iICRub25fcGljX29iamVjdCIKCSAgICAgICAgZWxzZQoJCSAg ZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0 b29sIG9iamVjdCIKCQlmaQoJICAgICAgZmkKCSAgICBkb25lCgkgIGVsc2UK CSAgICBmdW5jX2ZhdGFsX2Vycm9yICJsaW5rIGlucHV0IGZpbGUgXGAkYXJn JyBkb2VzIG5vdCBleGlzdCIKCSAgZmkKCSAgYXJnPSRzYXZlX2FyZwoJICBw cmV2PQoJICBjb250aW51ZQoJICA7OwoJcHJlY2lvdXNfcmVnZXgpCgkgIHBy ZWNpb3VzX2ZpbGVzX3JlZ2V4PSIkYXJnIgoJICBwcmV2PQoJICBjb250aW51 ZQoJICA7OwoJcmVsZWFzZSkKCSAgcmVsZWFzZT0iLSRhcmciCgkgIHByZXY9 CgkgIGNvbnRpbnVlCgkgIDs7CglycGF0aCB8IHhycGF0aCkKCSAgIyBXZSBu ZWVkIGFuIGFic29sdXRlIHBhdGguCgkgIGNhc2UgJGFyZyBpbgoJICBbXFwv XSogfCBbQS1aYS16XTpbXFwvXSopIDs7CgkgICopCgkgICAgZnVuY19mYXRh bF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQi CgkgICAgOzsKCSAgZXNhYwoJICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsg dGhlbgoJICAgIGNhc2UgIiRycGF0aCAiIGluCgkgICAgKiIgJGFyZyAiKikg OzsKCSAgICAqKSBycGF0aCs9IiAkYXJnIiA7OwoJICAgIGVzYWMKCSAgZWxz ZQoJICAgIGNhc2UgIiR4cnBhdGggIiBpbgoJICAgICoiICRhcmcgIiopIDs7 CgkgICAgKikgeHJwYXRoKz0iICRhcmciIDs7CgkgICAgZXNhYwoJICBmaQoJ ICBwcmV2PQoJICBjb250aW51ZQoJICA7OwoJc2hyZXh0KQoJICBzaHJleHRf Y21kcz0iJGFyZyIKCSAgcHJldj0KCSAgY29udGludWUKCSAgOzsKCXdlYWsp CgkgIHdlYWtfbGlicys9IiAkYXJnIgoJICBwcmV2PQoJICBjb250aW51ZQoJ ICA7OwoJeGNjbGlua2VyKQoJICBsaW5rZXJfZmxhZ3MrPSIgJHFhcmciCgkg IGNvbXBpbGVyX2ZsYWdzKz0iICRxYXJnIgoJICBwcmV2PQoJICBjb21waWxl X2NvbW1hbmQrPSIgJHFhcmciCgkgIGZpbmFsaXplX2NvbW1hbmQrPSIgJHFh cmciCgkgIGNvbnRpbnVlCgkgIDs7Cgl4Y29tcGlsZXIpCgkgIGNvbXBpbGVy X2ZsYWdzKz0iICRxYXJnIgoJICBwcmV2PQoJICBjb21waWxlX2NvbW1hbmQr PSIgJHFhcmciCgkgIGZpbmFsaXplX2NvbW1hbmQrPSIgJHFhcmciCgkgIGNv bnRpbnVlCgkgIDs7Cgl4bGlua2VyKQoJICBsaW5rZXJfZmxhZ3MrPSIgJHFh cmciCgkgIGNvbXBpbGVyX2ZsYWdzKz0iICR3bCRxYXJnIgoJICBwcmV2PQoJ ICBjb21waWxlX2NvbW1hbmQrPSIgJHdsJHFhcmciCgkgIGZpbmFsaXplX2Nv bW1hbmQrPSIgJHdsJHFhcmciCgkgIGNvbnRpbnVlCgkgIDs7CgkqKQoJICBl dmFsICIkcHJldj1cIlwkYXJnXCIiCgkgIHByZXY9CgkgIGNvbnRpbnVlCgkg IDs7Cgllc2FjCiAgICAgIGZpICMgdGVzdCAtbiAiJHByZXYiCgogICAgICBw cmV2YXJnPSIkYXJnIgoKICAgICAgY2FzZSAkYXJnIGluCiAgICAgIC1hbGwt c3RhdGljKQoJaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVu CgkgICMgU2VlIGNvbW1lbnQgZm9yIC1zdGF0aWMgZmxhZyBiZWxvdywgZm9y IG1vcmUgZGV0YWlscy4KCSAgY29tcGlsZV9jb21tYW5kKz0iICRsaW5rX3N0 YXRpY19mbGFnIgoJICBmaW5hbGl6ZV9jb21tYW5kKz0iICRsaW5rX3N0YXRp Y19mbGFnIgoJZmkKCWNvbnRpbnVlCgk7OwoKICAgICAgLWFsbG93LXVuZGVm aW5lZCkKCSMgRklYTUU6IHJlbW92ZSB0aGlzIGZsYWcgc29tZXRpbWUgaW4g dGhlIGZ1dHVyZS4KCWZ1bmNfZmF0YWxfZXJyb3IgIlxgLWFsbG93LXVuZGVm aW5lZCcgbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZh dWx0IgoJOzsKCiAgICAgIC1hdm9pZC12ZXJzaW9uKQoJYXZvaWRfdmVyc2lv bj15ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLWJpbmRpcikKCXByZXY9Ymlu ZGlyCgljb250aW51ZQoJOzsKCiAgICAgIC1kbG9wZW4pCglwcmV2PWRsZmls ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLWRscHJlb3BlbikKCXByZXY9ZGxw cmVmaWxlcwoJY29udGludWUKCTs7CgogICAgICAtZXhwb3J0LWR5bmFtaWMp CglleHBvcnRfZHluYW1pYz15ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLWV4 cG9ydC1zeW1ib2xzIHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQoJaWYgdGVz dCAtbiAiJGV4cG9ydF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5 bWJvbHNfcmVnZXgiOyB0aGVuCgkgIGZ1bmNfZmF0YWxfZXJyb3IgIm1vcmUg dGhhbiBvbmUgLWV4cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFs bG93ZWQiCglmaQoJaWYgdGVzdCAiWCRhcmciID0gIlgtZXhwb3J0LXN5bWJv bHMiOyB0aGVuCgkgIHByZXY9ZXhwc3ltcwoJZWxzZQoJICBwcmV2PWV4cHN5 bXNfcmVnZXgKCWZpCgljb250aW51ZQoJOzsKCiAgICAgIC1mcmFtZXdvcmsp CglwcmV2PWZyYW1ld29yawoJY29udGludWUKCTs7CgogICAgICAtaW5zdC1w cmVmaXgtZGlyKQoJcHJldj1pbnN0X3ByZWZpeAoJY29udGludWUKCTs7Cgog ICAgICAjIFRoZSBuYXRpdmUgSVJJWCBsaW5rZXIgdW5kZXJzdGFuZHMgLUxB Tkc6KiwgLUxJU1Q6KiBhbmQgLUxOTzoqCiAgICAgICMgc28sIGlmIHdlIHNl ZSB0aGVzZSBmbGFncyBiZSBjYXJlZnVsIG5vdCB0byB0cmVhdCB0aGVtIGxp a2UgLUwKICAgICAgLUxbQS1aXVtBLVpdKjoqKQoJY2FzZSAkd2l0aF9nY2Mv JGhvc3QgaW4KCW5vLyotKi1pcml4KiB8IC8qLSotaXJpeCopCgkgIGNvbXBp bGVfY29tbWFuZCs9IiAkYXJnIgoJICBmaW5hbGl6ZV9jb21tYW5kKz0iICRh cmciCgkgIDs7Cgllc2FjCgljb250aW51ZQoJOzsKCiAgICAgIC1MKikKCWZ1 bmNfc3RyaXBuYW1lICItTCIgJycgIiRhcmciCglpZiB0ZXN0IC16ICIkZnVu Y19zdHJpcG5hbWVfcmVzdWx0IjsgdGhlbgoJICBpZiB0ZXN0ICIkIyIgLWd0 IDA7IHRoZW4KCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJyZXF1aXJlIG5vIHNw YWNlIGJldHdlZW4gXGAtTCcgYW5kIFxgJDEnIgoJICBlbHNlCgkgICAgZnVu Y19mYXRhbF9lcnJvciAibmVlZCBwYXRoIGZvciBcYC1MJyBvcHRpb24iCgkg IGZpCglmaQoJZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQiCglkaXI9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAoJ IyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCgljYXNlICRkaXIgaW4KCVtc XC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKCSopCgkgIGFic2Rpcj1gY2Qg IiRkaXIiICYmIHB3ZGAKCSAgdGVzdCAteiAiJGFic2RpciIgJiYgXAoJICAg IGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUg ZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKCSAgZGlyPSIkYWJzZGlyIgoJ ICA7OwoJZXNhYwoJY2FzZSAiJGRlcGxpYnMgIiBpbgoJKiIgLUwkZGlyICIq IHwgKiIgJGFyZyAiKikKCSAgIyBXaWxsIG9ubHkgaGFwcGVuIGZvciBhYnNv bHV0ZSBvciBzeXNyb290IGFyZ3VtZW50cwoJICA7OwoJKikKCSAgIyBQcmVz ZXJ2ZSBzeXNyb290LCBidXQgbmV2ZXIgaW5jbHVkZSByZWxhdGl2ZSBkaXJl Y3RvcmllcwoJICBjYXNlICRkaXIgaW4KCSAgICBbXFwvXSogfCBbQS1aYS16 XTpbXFwvXSogfCA9KikgZGVwbGlicys9IiAkYXJnIiA7OwoJICAgICopIGRl cGxpYnMrPSIgLUwkZGlyIiA7OwoJICBlc2FjCgkgIGxpYl9zZWFyY2hfcGF0 aCs9IiAkZGlyIgoJICA7OwoJZXNhYwoJY2FzZSAkaG9zdCBpbgoJKi0qLWN5 Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAq LWNlZ2NjKikKCSAgdGVzdGJpbmRpcj1gJEVDSE8gIiRkaXIiIHwgJFNFRCAn cyovbGliJCovYmluKidgCgkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgoJ ICAqIjokZGlyOiIqKSA7OwoJICA6OikgZGxsc2VhcmNocGF0aD0kZGlyOzsK CSAgKikgZGxsc2VhcmNocGF0aCs9IjokZGlyIjs7CgkgIGVzYWMKCSAgY2Fz ZSA6JGRsbHNlYXJjaHBhdGg6IGluCgkgICoiOiR0ZXN0YmluZGlyOiIqKSA7 OwoJICA6OikgZGxsc2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7CgkgICopIGRs bHNlYXJjaHBhdGgrPSI6JHRlc3RiaW5kaXIiOzsKCSAgZXNhYwoJICA7OwoJ ZXNhYwoJY29udGludWUKCTs7CgogICAgICAtbCopCglpZiB0ZXN0ICJYJGFy ZyIgPSAiWC1sYyIgfHwgdGVzdCAiWCRhcmciID0gIlgtbG0iOyB0aGVuCgkg IGNhc2UgJGhvc3QgaW4KCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwg Ki0qLXB3MzIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyogfCAqLSotaGFpa3Uq KQoJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEg QyBvciBtYXRoIGxpYnJhcnkgKGFzIHN1Y2gpCgkgICAgY29udGludWUKCSAg ICA7OwoJICAqLSotb3MyKikKCSAgICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3Qg YWN0dWFsbHkgaGF2ZSBhIEMgbGlicmFyeSAoYXMgc3VjaCkKCSAgICB0ZXN0 ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKCSAgICA7OwoJICAqLSot b3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKCSAg ICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJj L2xpYmNfci4KCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGlu dWUKCSAgICA7OwoJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAx Ml0pCgkgICAgIyBSaGFwc29keSBDIGFuZCBtYXRoIGxpYnJhcmllcyBhcmUg aW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKCSAgICBkZXBsaWJzKz0iIFN5c3Rl bS5sdGZyYW1ld29yayIKCSAgICBjb250aW51ZQoJICAgIDs7CgkgICotKi1z Y28zLjJ2NSogfCAqLSotc2NvNXY2KikKCSAgICAjIENhdXNlcyBwcm9ibGVt cyB3aXRoIF9fY3R5cGUKCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYg Y29udGludWUKCSAgICA7OwoJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lz djUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCgkgICAgIyBD b21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9y IHRocmVhZHMgdG8gd29yawoJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAm JiBjb250aW51ZQoJICAgIDs7CgkgIGVzYWMKCWVsaWYgdGVzdCAiWCRhcmci ID0gIlgtbGNfciI7IHRoZW4KCSBjYXNlICRob3N0IGluCgkgKi0qLW9wZW5i c2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCgkgICAjIERv IG5vdCBpbmNsdWRlIGxpYmNfciBkaXJlY3RseSwgdXNlIC1wdGhyZWFkIGZs YWcuCgkgICBjb250aW51ZQoJICAgOzsKCSBlc2FjCglmaQoJZGVwbGlicys9 IiAkYXJnIgoJY29udGludWUKCTs7CgogICAgICAtbW9kdWxlKQoJbW9kdWxl PXllcwoJY29udGludWUKCTs7CgogICAgICAjIFRydTY0IFVOSVggdXNlcyAt bW9kZWwgW2FyZ10gdG8gZGV0ZXJtaW5lIHRoZSBsYXlvdXQgb2YgQysrCiAg ICAgICMgY2xhc3NlcywgbmFtZSBtYW5nbGluZywgYW5kIGV4Y2VwdGlvbiBo YW5kbGluZy4KICAgICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2ggZmxhZyB0 byBkZXRlcm1pbmUgb3V0cHV0IGFyY2hpdGVjdHVyZS4KICAgICAgLW1vZGVs fC1hcmNofC1pc3lzcm9vdHwtLXN5c3Jvb3QpCgljb21waWxlcl9mbGFncys9 IiAkYXJnIgoJY29tcGlsZV9jb21tYW5kKz0iICRhcmciCglmaW5hbGl6ZV9j b21tYW5kKz0iICRhcmciCglwcmV2PXhjb21waWxlcgoJY29udGludWUKCTs7 CgogICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhy ZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlIFwKICAgICAgfC10aHJlYWRz fC1mb3Blbm1wfC1vcGVubXB8LW1wfC14b3Blbm1wfC1vbXB8LXFzbXA9KikK CWNvbXBpbGVyX2ZsYWdzKz0iICRhcmciCgljb21waWxlX2NvbW1hbmQrPSIg JGFyZyIKCWZpbmFsaXplX2NvbW1hbmQrPSIgJGFyZyIKCWNhc2UgIiRuZXdf aW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCgkgICAgKiIgJGFyZyAiKikg OzsKCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MrPSIgJGFy ZyIgOzsKCWVzYWMKCWNvbnRpbnVlCgk7OwoKICAgICAgLW11bHRpX21vZHVs ZSkKCXNpbmdsZV9tb2R1bGU9IiR7d2x9LW11bHRpX21vZHVsZSIKCWNvbnRp bnVlCgk7OwoKICAgICAgLW5vLWZhc3QtaW5zdGFsbCkKCWZhc3RfaW5zdGFs bD1ubwoJY29udGludWUKCTs7CgogICAgICAtbm8taW5zdGFsbCkKCWNhc2Ug JGhvc3QgaW4KCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMy KiB8ICotKi1vczIqIHwgKi0qLWRhcndpbiogfCAqLWNlZ2NjKikKCSAgIyBU aGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0cyBpcyByZXF1aXJl ZCBvbiBXaW5kb3dzCgkgICMgYW5kIERhcndpbiBpbiBvcmRlciBmb3IgdGhl IGxvYWRlciB0byBmaW5kIGFueSBkbGxzIGl0IG5lZWRzLgoJICBmdW5jX3dh cm5pbmcgIlxgLW5vLWluc3RhbGwnIGlzIGlnbm9yZWQgZm9yICRob3N0IgoJ ICBmdW5jX3dhcm5pbmcgImFzc3VtaW5nIFxgLW5vLWZhc3QtaW5zdGFsbCcg aW5zdGVhZCIKCSAgZmFzdF9pbnN0YWxsPW5vCgkgIDs7CgkqKSBub19pbnN0 YWxsPXllcyA7OwoJZXNhYwoJY29udGludWUKCTs7CgogICAgICAtbm8tdW5k ZWZpbmVkKQoJYWxsb3dfdW5kZWZpbmVkPW5vCgljb250aW51ZQoJOzsKCiAg ICAgIC1vYmplY3RsaXN0KQoJcHJldj1vYmplY3RsaXN0Cgljb250aW51ZQoJ OzsKCiAgICAgIC1vKSBwcmV2PW91dHB1dCA7OwoKICAgICAgLXByZWNpb3Vz LWZpbGVzLXJlZ2V4KQoJcHJldj1wcmVjaW91c19yZWdleAoJY29udGludWUK CTs7CgogICAgICAtcmVsZWFzZSkKCXByZXY9cmVsZWFzZQoJY29udGludWUK CTs7CgogICAgICAtcnBhdGgpCglwcmV2PXJwYXRoCgljb250aW51ZQoJOzsK CiAgICAgIC1SKQoJcHJldj14cnBhdGgKCWNvbnRpbnVlCgk7OwoKICAgICAg LVIqKQoJZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGFyZyIKCWRpcj0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0CgkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0 aC4KCWNhc2UgJGRpciBpbgoJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7 OwoJPSopCgkgIGZ1bmNfc3RyaXBuYW1lICc9JyAnJyAiJGRpciIKCSAgZGly PSRsdF9zeXNyb290JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJICA7OwoJKikK CSAgZnVuY19mYXRhbF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4tcGF0aHMg YXJlIGFsbG93ZWQiCgkgIDs7Cgllc2FjCgljYXNlICIkeHJwYXRoICIgaW4K CSoiICRkaXIgIiopIDs7CgkqKSB4cnBhdGgrPSIgJGRpciIgOzsKCWVzYWMK CWNvbnRpbnVlCgk7OwoKICAgICAgLXNoYXJlZCkKCSMgVGhlIGVmZmVjdHMg b2YgLXNoYXJlZCBhcmUgZGVmaW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCglj b250aW51ZQoJOzsKCiAgICAgIC1zaHJleHQpCglwcmV2PXNocmV4dAoJY29u dGludWUKCTs7CgogICAgICAtc3RhdGljIHwgLXN0YXRpYy1saWJ0b29sLWxp YnMpCgkjIFRoZSBlZmZlY3RzIG9mIC1zdGF0aWMgYXJlIGRlZmluZWQgaW4g YSBwcmV2aW91cyBsb29wLgoJIyBXZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFz IC1hbGwtc3RhdGljIG9uIHBsYXRmb3JtcyB0aGF0CgkjIGRpZG4ndCBoYXZl IGEgUElDIGZsYWcsIGJ1dCB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBlZmZl Y3RzCgkjIHdvdWxkIGJlIGVxdWl2YWxlbnQgd2FzIHdyb25nLiAgSXQgd291 bGQgYnJlYWsgb24gYXQgbGVhc3QKCSMgRGlnaXRhbCBVbml4IGFuZCBBSVgu Cgljb250aW51ZQoJOzsKCiAgICAgIC10aHJlYWQtc2FmZSkKCXRocmVhZF9z YWZlPXllcwoJY29udGludWUKCTs7CgogICAgICAtdmVyc2lvbi1pbmZvKQoJ cHJldj12aW5mbwoJY29udGludWUKCTs7CgogICAgICAtdmVyc2lvbi1udW1i ZXIpCglwcmV2PXZpbmZvCgl2aW5mb19udW1iZXI9eWVzCgljb250aW51ZQoJ OzsKCiAgICAgIC13ZWFrKQogICAgICAgIHByZXY9d2VhawoJY29udGludWUK CTs7CgogICAgICAtV2MsKikKCWZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAi JGFyZyIKCWFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJYXJnPQoJc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9JywnCglmb3IgZmxhZyBpbiAkYXJnczsgZG8K CSAgSUZTPSIkc2F2ZV9pZnMiCiAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9l dmFsICIkZmxhZyIKCSAgYXJnKz0iICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jl c3VsdCIKCSAgY29tcGlsZXJfZmxhZ3MrPSIgJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0IgoJZG9uZQoJSUZTPSIkc2F2ZV9pZnMiCglmdW5jX3N0cmlw bmFtZSAnICcgJycgIiRhcmciCglhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dAoJOzsKCiAgICAgIC1XbCwqKQoJZnVuY19zdHJpcG5hbWUgJy1XbCwnICcn ICIkYXJnIgoJYXJncz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Cglhcmc9Cglz YXZlX2lmcz0iJElGUyI7IElGUz0nLCcKCWZvciBmbGFnIGluICRhcmdzOyBk bwoJICBJRlM9IiRzYXZlX2lmcyIKICAgICAgICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRmbGFnIgoJICBhcmcrPSIgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0IgoJICBjb21waWxlcl9mbGFncys9IiAkd2wkZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQiCgkgIGxpbmtlcl9mbGFncys9IiAkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQiCglkb25lCglJRlM9IiRzYXZlX2lmcyIK CWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKCWFyZz0kZnVuY19zdHJp cG5hbWVfcmVzdWx0Cgk7OwoKICAgICAgLVhjb21waWxlcikKCXByZXY9eGNv bXBpbGVyCgljb250aW51ZQoJOzsKCiAgICAgIC1YbGlua2VyKQoJcHJldj14 bGlua2VyCgljb250aW51ZQoJOzsKCiAgICAgIC1YQ0NsaW5rZXIpCglwcmV2 PXhjY2xpbmtlcgoJY29udGludWUKCTs7CgogICAgICAjIC1tc2dfKiBmb3Ig b3NmIGNjCiAgICAgIC1tc2dfKikKCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRh cmciCglhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKCTs7Cgog ICAgICAjIEZsYWdzIHRvIGJlIHBhc3NlZCB0aHJvdWdoIHVuY2hhbmdlZCwg d2l0aCByYXRpb25hbGU6CiAgICAgICMgLTY0LCAtbWlwc1swLTldICAgICAg ZW5hYmxlIDY0LWJpdCBtb2RlIGZvciB0aGUgU0dJIGNvbXBpbGVyCiAgICAg ICMgLXJbMC05XVswLTldKiAgICAgICAgc3BlY2lmeSBwcm9jZXNzb3IgZm9y IHRoZSBTR0kgY29tcGlsZXIKICAgICAgIyAteGFyY2g9KiwgLXh0YXJnZXQ9 KiBlbmFibGUgNjQtYml0IG1vZGUgZm9yIHRoZSBTdW4gY29tcGlsZXIKICAg ICAgIyArREEqLCArREQqICAgICAgICAgICBlbmFibGUgNjQtYml0IG1vZGUg Zm9yIHRoZSBIUCBjb21waWxlcgogICAgICAjIC1xKiAgICAgICAgICAgICAg ICAgIGNvbXBpbGVyIGFyZ3MgZm9yIHRoZSBJQk0gY29tcGlsZXIKICAgICAg IyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBhcmNoaXRlY3R1cmUtc3BlY2lm aWMgZmxhZ3MgZm9yIEdDQwogICAgICAjIC1GL3BhdGggICAgICAgICAgICAg IHBhdGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndp bgogICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qICBw cm9maWxpbmcgZmxhZ3MgZm9yIEdDQwogICAgICAjIEBmaWxlICAgICAgICAg ICAgICAgIEdDQyByZXNwb25zZSBmaWxlcwogICAgICAjIC10cD0qICAgICAg ICAgICAgICAgIFBvcnRsYW5kIHBnY2MgdGFyZ2V0IHByb2Nlc3NvciBzZWxl Y3Rpb24KICAgICAgIyAtLXN5c3Jvb3Q9KiAgICAgICAgICBmb3Igc3lzcm9v dCBzdXBwb3J0CiAgICAgICMgLU8qLCAtZmx0byosIC1md2hvcHIqLCAtZnVz ZS1saW5rZXItcGx1Z2luIEdDQyBsaW5rLXRpbWUgb3B0aW1pemF0aW9uCiAg ICAgIC02NHwtbWlwc1swLTldfC1yWzAtOV1bMC05XSp8LXhhcmNoPSp8LXh0 YXJnZXQ9KnwrREEqfCtERCp8LXEqfC1tKnwgXAogICAgICAtdFs0NV0qfC10 eHNjYWxlKnwtcHwtcGd8LS1jb3ZlcmFnZXwtZnByb2ZpbGUtKnwtRip8QCp8 LXRwPSp8LS1zeXNyb290PSp8IFwKICAgICAgLU8qfC1mbHRvKnwtZndob3By KnwtZnVzZS1saW5rZXItcGx1Z2luKQogICAgICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRhcmciCglhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKICAgICAgICBjb21waWxlX2NvbW1hbmQrPSIgJGFyZyIKICAgICAgICBm aW5hbGl6ZV9jb21tYW5kKz0iICRhcmciCiAgICAgICAgY29tcGlsZXJfZmxh Z3MrPSIgJGFyZyIKICAgICAgICBjb250aW51ZQogICAgICAgIDs7CgogICAg ICAjIFNvbWUgb3RoZXIgY29tcGlsZXIgZmxhZy4KICAgICAgLSogfCArKikK ICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgoJYXJnPSIkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCgk7OwoKICAgICAgKi4kb2JqZXh0 KQoJIyBBIHN0YW5kYXJkIG9iamVjdC4KCW9ianMrPSIgJGFyZyIKCTs7Cgog ICAgICAqLmxvKQoJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCgoJ IyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wg b2JqZWN0LgoJaWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJGFyZyI7IHRoZW4K CSAgcGljX29iamVjdD0KCSAgbm9uX3BpY19vYmplY3Q9CgoJICAjIFJlYWQg dGhlIC5sbyBmaWxlCgkgIGZ1bmNfc291cmNlICIkYXJnIgoKCSAgaWYgdGVz dCAteiAiJHBpY19vYmplY3QiIHx8CgkgICAgIHRlc3QgLXogIiRub25fcGlj X29iamVjdCIgfHwKCSAgICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAm JgoJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgoJ ICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2Ygb2Jq ZWN0IGZvciBcYCRhcmcnIgoJICBmaQoKCSAgIyBFeHRyYWN0IHN1YmRpcmVj dG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KCSAgZnVuY19kaXJuYW1lICIkYXJn IiAiLyIgIiIKCSAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCgoJICBp ZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgoJICAgICMgUHJl cGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4u CgkgICAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKCgkgICAgaWYg dGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgoJICAgICAgaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9z dXBwb3J0IiA9IHllczsgdGhlbgoJCWRsZmlsZXMrPSIgJHBpY19vYmplY3Qi CgkJcHJldj0KCQljb250aW51ZQoJICAgICAgZWxzZQoJCSMgSWYgbGlidG9v bCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHBy ZWxvYWQuCgkJcHJldj1kbHByZWZpbGVzCgkgICAgICBmaQoJICAgIGZpCgoJ ICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3Nz YW1hCgkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgoJ ICAgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgoJICAgICAg ZGxwcmVmaWxlcys9IiAkcGljX29iamVjdCIKCSAgICAgIHByZXY9CgkgICAg ZmkKCgkgICAgIyBBIFBJQyBvYmplY3QuCgkgICAgbGlib2Jqcys9IiAkcGlj X29iamVjdCIKCSAgICBhcmc9IiRwaWNfb2JqZWN0IgoJICBmaQoKCSAgIyBO b24tUElDIG9iamVjdC4KCSAgaWYgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAh PSBub25lOyB0aGVuCgkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3Rvcnkg dGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KCSAgICBub25fcGljX29iamVjdD0i JHhkaXIkbm9uX3BpY19vYmplY3QiCgoJICAgICMgQSBzdGFuZGFyZCBub24t UElDIG9iamVjdAoJICAgIG5vbl9waWNfb2JqZWN0cys9IiAkbm9uX3BpY19v YmplY3QiCgkgICAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3Qg IiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCgkgICAgICBhcmc9IiRub25f cGljX29iamVjdCIKCSAgICBmaQoJICBlbHNlCgkgICAgIyBJZiB0aGUgUElD IG9iamVjdCBleGlzdHMsIHVzZSBpdCBpbnN0ZWFkLgoJICAgICMgJHhkaXIg d2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4KCSAgICBub25f cGljX29iamVjdD0iJHBpY19vYmplY3QiCgkgICAgbm9uX3BpY19vYmplY3Rz Kz0iICRub25fcGljX29iamVjdCIKCSAgZmkKCWVsc2UKCSAgIyBPbmx5IGFu IGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4uCgkgIGlmICRvcHRfZHJ5 X3J1bjsgdGhlbgoJICAgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0 aGUgYXJndW1lbnQuCgkgICAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIK CSAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKCgkgICAgZnVuY19s bzJvICIkYXJnIgoJICAgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5j X2xvMm9fcmVzdWx0CgkgICAgbm9uX3BpY19vYmplY3Q9JHhkaXIkZnVuY19s bzJvX3Jlc3VsdAoJICAgIGxpYm9ianMrPSIgJHBpY19vYmplY3QiCgkgICAg bm9uX3BpY19vYmplY3RzKz0iICRub25fcGljX29iamVjdCIKCSAgZWxzZQoJ ICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGFyZycgaXMgbm90IGEgdmFsaWQg bGlidG9vbCBvYmplY3QiCgkgIGZpCglmaQoJOzsKCiAgICAgICouJGxpYmV4 dCkKCSMgQW4gYXJjaGl2ZS4KCWRlcGxpYnMrPSIgJGFyZyIKCW9sZF9kZXBs aWJzKz0iICRhcmciCgljb250aW51ZQoJOzsKCiAgICAgICoubGEpCgkjIEEg bGlidG9vbC1jb250cm9sbGVkIGxpYnJhcnkuCgoJZnVuY19yZXNvbHZlX3N5 c3Jvb3QgIiRhcmciCglpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVu CgkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVu LgoJICBkbGZpbGVzKz0iICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQi CgkgIHByZXY9CgllbGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRo ZW4KCSAgIyBUaGUgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJl b3Blbi4KCSAgZGxwcmVmaWxlcys9IiAkZnVuY19yZXNvbHZlX3N5c3Jvb3Rf cmVzdWx0IgoJICBwcmV2PQoJZWxzZQoJICBkZXBsaWJzKz0iICRmdW5jX3Jl c29sdmVfc3lzcm9vdF9yZXN1bHQiCglmaQoJY29udGludWUKCTs7CgogICAg ICAjIFNvbWUgb3RoZXIgY29tcGlsZXIgYXJndW1lbnQuCiAgICAgICopCgkj IFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBh bmQgY29tcGlsZV9jb21tYW5kIG5lZWQKCSMgdG8gYmUgYWVzdGhldGljYWxs eSBxdW90ZWQgYmVjYXVzZSB0aGV5IGFyZSBldmFsZWQgbGF0ZXIuCglmdW5j X3F1b3RlX2Zvcl9ldmFsICIkYXJnIgoJYXJnPSIkZnVuY19xdW90ZV9mb3Jf ZXZhbF9yZXN1bHQiCgk7OwogICAgICBlc2FjICMgYXJnCgogICAgICAjIE5v dyBhY3R1YWxseSBzdWJzdGl0dXRlIHRoZSBhcmd1bWVudCBpbnRvIHRoZSBj b21tYW5kcy4KICAgICAgaWYgdGVzdCAtbiAiJGFyZyI7IHRoZW4KCWNvbXBp bGVfY29tbWFuZCs9IiAkYXJnIgoJZmluYWxpemVfY29tbWFuZCs9IiAkYXJn IgogICAgICBmaQogICAgZG9uZSAjIGFyZ3VtZW50IHBhcnNpbmcgbG9vcAoK ICAgIHRlc3QgLW4gIiRwcmV2IiAmJiBcCiAgICAgIGZ1bmNfZmF0YWxfaGVs cCAidGhlIFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVu dCIKCiAgICBpZiB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzICYmIHRl c3QgLW4gIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWMiOyB0aGVuCiAgICAg IGV2YWwgYXJnPVwiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCiAgICAg IGNvbXBpbGVfY29tbWFuZCs9IiAkYXJnIgogICAgICBmaW5hbGl6ZV9jb21t YW5kKz0iICRhcmciCiAgICBmaQoKICAgIG9sZGxpYnM9CiAgICAjIGNhbGN1 bGF0ZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgd2l0aG91dCBpdHMgZGlyZWN0 b3J5CiAgICBmdW5jX2Jhc2VuYW1lICIkb3V0cHV0IgogICAgb3V0cHV0bmFt ZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgogICAgbGlib2Jqc19zYXZlPSIk bGlib2JqcyIKCiAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRo ZW4KICAgICAgIyBnZXQgdGhlIGRpcmVjdG9yaWVzIGxpc3RlZCBpbiAkc2hs aWJwYXRoX3ZhcgogICAgICBldmFsIHNobGliX3NlYXJjaF9wYXRoPVxgXCRF Q0hPIFwiXCR7JHNobGlicGF0aF92YXJ9XCIgXHwgXCRTRUQgXCdzLzovIC9n XCdcYAogICAgZWxzZQogICAgICBzaGxpYl9zZWFyY2hfcGF0aD0KICAgIGZp CiAgICBldmFsIHN5c19saWJfc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjXCIKICAgIGV2YWwgc3lzX2xpYl9kbHNlYXJjaF9wYXRo PVwiJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXCIKCiAgICBmdW5jX2Rp cm5hbWUgIiRvdXRwdXQiICIvIiAiIgogICAgb3V0cHV0X29iamRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQkb2JqZGlyIgogICAgZnVuY190b190b29sX2Zp bGUgIiRvdXRwdXRfb2JqZGlyLyIKICAgIHRvb2xfb3V0cHV0X29iamRpcj0k ZnVuY190b190b29sX2ZpbGVfcmVzdWx0CiAgICAjIENyZWF0ZSB0aGUgb2Jq ZWN0IGRpcmVjdG9yeS4KICAgIGZ1bmNfbWtkaXJfcCAiJG91dHB1dF9vYmpk aXIiCgogICAgIyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygb3V0cHV0CiAgICBj YXNlICRvdXRwdXQgaW4KICAgICIiKQogICAgICBmdW5jX2ZhdGFsX2hlbHAg InlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUiCiAgICAgIDs7CiAg ICAqLiRsaWJleHQpIGxpbmttb2RlPW9sZGxpYiA7OwogICAgKi5sbyB8ICou JG9iamV4dCkgbGlua21vZGU9b2JqIDs7CiAgICAqLmxhKSBsaW5rbW9kZT1s aWIgOzsKICAgICopIGxpbmttb2RlPXByb2cgOzsgIyBBbnl0aGluZyBlbHNl IHNob3VsZCBiZSBhIHByb2dyYW0uCiAgICBlc2FjCgogICAgc3BlY2lhbGRl cGxpYnM9CgogICAgbGlicz0KICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRl bnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcwogICAgIyB0 aGF0IGFyZSBsaW5rZWQgbW9yZSB0aGFuIG9uY2UgKGUuZy4gLWxhIC1sYiAt bGEpCiAgICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbwogICAgICBpZiAk b3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgoJY2FzZSAiJGxpYnMgIiBp bgoJKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnMrPSIgJGRlcGxpYiIg OzsKCWVzYWMKICAgICAgZmkKICAgICAgbGlicys9IiAkZGVwbGliIgogICAg ZG9uZQoKICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KICAg ICAgbGlicz0iJHByZWRlcHMgJGxpYnMgJGNvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aCAkcG9zdGRlcHMiCgogICAgICAjIENvbXB1dGUgbGlicmFyaWVzIHRo YXQgYXJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZSBpbiAkcHJlZGVwcwogICAg ICAjICRwb3N0ZGVwcyBhbmQgbWFyayB0aGVtIGFzIHNwZWNpYWwgKGkuZS4s IHdob3NlIGR1cGxpY2F0ZXMgYXJlCiAgICAgICMgbm90IHRvIGJlIGVsaW1p bmF0ZWQpLgogICAgICBwcmVfcG9zdF9kZXBzPQogICAgICBpZiAkb3B0X2R1 cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwczsgdGhlbgoJZm9yIHBy ZV9wb3N0X2RlcCBpbiAkcHJlZGVwcyAkcG9zdGRlcHM7IGRvCgkgIGNhc2Ug IiRwcmVfcG9zdF9kZXBzICIgaW4KCSAgKiIgJHByZV9wb3N0X2RlcCAiKikg c3BlY2lhbGRlcGxpYnMrPSIgJHByZV9wb3N0X2RlcHMiIDs7CgkgIGVzYWMK CSAgcHJlX3Bvc3RfZGVwcys9IiAkcHJlX3Bvc3RfZGVwIgoJZG9uZQogICAg ICBmaQogICAgICBwcmVfcG9zdF9kZXBzPQogICAgZmkKCiAgICBkZXBsaWJz PQogICAgbmV3ZGVwZW5kZW5jeV9saWJzPQogICAgbmV3bGliX3NlYXJjaF9w YXRoPQogICAgbmVlZF9yZWxpbms9bm8gIyB3aGV0aGVyIHdlJ3JlIGxpbmtp bmcgYW55IHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCiAgICBub3Rp bnN0X2RlcGxpYnM9ICMgbm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmll cwogICAgbm90aW5zdF9wYXRoPSAjIHBhdGhzIHRoYXQgY29udGFpbiBub3Qt aW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCgogICAgY2FzZSAkbGlua21v ZGUgaW4KICAgIGxpYikKCXBhc3Nlcz0iY29udiBkbHByZW9wZW4gbGluayIK CWZvciBmaWxlIGluICRkbGZpbGVzICRkbHByZWZpbGVzOyBkbwoJICBjYXNl ICRmaWxlIGluCgkgICoubGEpIDs7CgkgICopCgkgICAgZnVuY19mYXRhbF9o ZWxwICJsaWJyYXJpZXMgY2FuIFxgLWRsb3Blbicgb25seSBsaWJ0b29sIGxp YnJhcmllczogJGZpbGUiCgkgICAgOzsKCSAgZXNhYwoJZG9uZQoJOzsKICAg IHByb2cpCgljb21waWxlX2RlcGxpYnM9CglmaW5hbGl6ZV9kZXBsaWJzPQoJ YWxsZGVwbGlicz1ubwoJbmV3ZGxmaWxlcz0KCW5ld2RscHJlZmlsZXM9Cglw YXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxpbmsiCgk7Owog ICAgKikgIHBhc3Nlcz0iY29udiIKCTs7CiAgICBlc2FjCgogICAgZm9yIHBh c3MgaW4gJHBhc3NlczsgZG8KICAgICAgIyBUaGUgcHJlb3BlbiBwYXNzIGlu IGxpYiBtb2RlIHJldmVyc2VzICRkZXBsaWJzOyBwdXQgaXQgYmFjayBoZXJl CiAgICAgICMgc28gdGhhdCAtTCBjb21lcyBiZWZvcmUgbGlicyB0aGF0IG5l ZWQgaXQgZm9yIGluc3RhbmNlLi4uCiAgICAgIGlmIHRlc3QgIiRsaW5rbW9k ZSwkcGFzcyIgPSAibGliLGxpbmsiOyB0aGVuCgkjIyBGSVhNRTogRmluZCB0 aGUgcGxhY2Ugd2hlcmUgdGhlIGxpc3QgaXMgcmVidWlsdCBpbiB0aGUgd3Jv bmcKCSMjICAgICAgICBvcmRlciwgYW5kIGZpeCBpdCB0aGVyZSBwcm9wZXJs eQogICAgICAgIHRtcF9kZXBsaWJzPQoJZm9yIGRlcGxpYiBpbiAkZGVwbGli czsgZG8KCSAgdG1wX2RlcGxpYnM9IiRkZXBsaWIgJHRtcF9kZXBsaWJzIgoJ ZG9uZQoJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgogICAgICBmaQoKICAgICAg aWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKCSB0 ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiI7IHRoZW4KCWxp YnM9IiRkZXBsaWJzIgoJZGVwbGlicz0KICAgICAgZmkKICAgICAgaWYgdGVz dCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KCWNhc2UgJHBhc3MgaW4KCWRs b3BlbikgbGlicz0iJGRsZmlsZXMiIDs7CglkbHByZW9wZW4pIGxpYnM9IiRk bHByZWZpbGVzIiA7OwoJbGluaykgbGlicz0iJGRlcGxpYnMgJURFUExJQlMl ICRkZXBlbmRlbmN5X2xpYnMiIDs7Cgllc2FjCiAgICAgIGZpCiAgICAgIGlm IHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGRscHJlb3BlbiI7IHRo ZW4KCSMgQ29sbGVjdCBhbmQgZm9yd2FyZCBkZXBsaWJzIG9mIHByZW9wZW5l ZCBsaWJ0b29sIGxpYnMKCWZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCgkg ICMgSWdub3JlIG5vbi1saWJ0b29sLWxpYnMKCSAgZGVwZW5kZW5jeV9saWJz PQoJICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGxpYiIKCSAgY2FzZSAkbGli IGluCgkgICoubGEpCWZ1bmNfc291cmNlICIkZnVuY19yZXNvbHZlX3N5c3Jv b3RfcmVzdWx0IiA7OwoJICBlc2FjCgoJICAjIENvbGxlY3QgcHJlb3BlbmVk IGxpYnRvb2wgZGVwbGlicywgZXhjZXB0IGFueSB0aGlzIGxpYnJhcnkKCSAg IyBoYXMgZGVjbGFyZWQgYXMgd2VhayBsaWJzCgkgIGZvciBkZXBsaWIgaW4g JGRlcGVuZGVuY3lfbGliczsgZG8KCSAgICBmdW5jX2Jhc2VuYW1lICIkZGVw bGliIgogICAgICAgICAgICBkZXBsaWJfYmFzZT0kZnVuY19iYXNlbmFtZV9y ZXN1bHQKCSAgICBjYXNlICIgJHdlYWtfbGlicyAiIGluCgkgICAgKiIgJGRl cGxpYl9iYXNlICIqKSA7OwoJICAgICopIGRlcGxpYnMrPSIgJGRlcGxpYiIg OzsKCSAgICBlc2FjCgkgIGRvbmUKCWRvbmUKCWxpYnM9IiRkbHByZWZpbGVz IgogICAgICBmaQogICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbG9wZW47IHRo ZW4KCSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKCXNhdmVfZGVw bGlicz0iJGRlcGxpYnMiCglkZXBsaWJzPQogICAgICBmaQoKICAgICAgZm9y IGRlcGxpYiBpbiAkbGliczsgZG8KCWxpYj0KCWZvdW5kPW5vCgljYXNlICRk ZXBsaWIgaW4KCS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0 aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmUgXAogICAgICAgIHwtdGhy ZWFkc3wtZm9wZW5tcHwtb3Blbm1wfC1tcHwteG9wZW5tcHwtb21wfC1xc21w PSopCgkgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5r IjsgdGhlbgoJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGls ZV9kZXBsaWJzIgoJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZp bmFsaXplX2RlcGxpYnMiCgkgIGVsc2UKCSAgICBjb21waWxlcl9mbGFncys9 IiAkZGVwbGliIgoJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgOyB0 aGVuCgkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4K CQkgICAgKiIgJGRlcGxpYiAiKikgOzsKCQkgICAgKiApIG5ld19pbmhlcml0 ZWRfbGlua2VyX2ZsYWdzKz0iICRkZXBsaWIiIDs7CgkJZXNhYwoJICAgIGZp CgkgIGZpCgkgIGNvbnRpbnVlCgkgIDs7CgktbCopCgkgIGlmIHRlc3QgIiRs aW5rbW9kZSIgIT0gbGliICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZzsg dGhlbgoJICAgIGZ1bmNfd2FybmluZyAiXGAtbCcgaXMgaWdub3JlZCBmb3Ig YXJjaGl2ZXMvb2JqZWN0cyIKCSAgICBjb250aW51ZQoJICBmaQoJICBmdW5j X3N0cmlwbmFtZSAnLWwnICcnICIkZGVwbGliIgoJICBuYW1lPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsg dGhlbgoJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxp Yl9zZWFyY2hfcGF0aCAkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzICRzeXNf bGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKCSAgZWxzZQoJ ICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxpYl9zZWFy Y2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3Bh dGgiCgkgIGZpCgkgIGZvciBzZWFyY2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRv CgkgICAgZm9yIHNlYXJjaF9leHQgaW4gLmxhICRzdGRfc2hyZXh0IC5zbyAu YTsgZG8KCSAgICAgICMgU2VhcmNoIHRoZSBsaWJ0b29sIGxpYnJhcnkKCSAg ICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtzZWFyY2hfZXh0fSIK CSAgICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCgkJaWYgdGVzdCAiJHNl YXJjaF9leHQiID0gIi5sYSI7IHRoZW4KCQkgIGZvdW5kPXllcwoJCWVsc2UK CQkgIGZvdW5kPW5vCgkJZmkKCQlicmVhayAyCgkgICAgICBmaQoJICAgIGRv bmUKCSAgZG9uZQoJICBpZiB0ZXN0ICIkZm91bmQiICE9IHllczsgdGhlbgoJ ICAgICMgZGVwbGliIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGxpYnRvb2wgbGli cmFyeQoJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxs aW5rIjsgdGhlbgoJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRj b21waWxlX2RlcGxpYnMiCgkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVw bGliICRmaW5hbGl6ZV9kZXBsaWJzIgoJICAgIGVsc2UKCSAgICAgIGRlcGxp YnM9IiRkZXBsaWIgJGRlcGxpYnMiCgkgICAgICB0ZXN0ICIkbGlua21vZGUi ID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVw ZW5kZW5jeV9saWJzIgoJICAgIGZpCgkgICAgY29udGludWUKCSAgZWxzZSAj IGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQoJICAgICMgSWYgJGFsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyAmJiAkZGVwbGli IGlzIGEgc3RkbGliLAoJICAgICMgV2UgbmVlZCB0byBkbyBzb21lIHNwZWNp YWwgdGhpbmdzIGhlcmUsIGFuZCBub3QgbGF0ZXIuCgkgICAgaWYgdGVzdCAi WCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0g Ilh5ZXMiIDsgdGhlbgoJICAgICAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVw cyAiIGluCgkgICAgICAqIiAkZGVwbGliICIqKQoJCWlmIGZ1bmNfbGFsaWJf cCAiJGxpYiI7IHRoZW4KCQkgIGxpYnJhcnlfbmFtZXM9CgkJICBvbGRfbGli cmFyeT0KCQkgIGZ1bmNfc291cmNlICIkbGliIgoJCSAgZm9yIGwgaW4gJG9s ZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbwoJCSAgICBsbD0iJGwiCgkJ ICBkb25lCgkJICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7 IHRoZW4gIyBvbmx5IHN0YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQoJCSAgICBm b3VuZD1ubwoJCSAgICBmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgoJCSAg ICBsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCgkJICAgIGxpYj0kbGFk aXIvJG9sZF9saWJyYXJ5CgkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFz cyIgPSAicHJvZyxsaW5rIjsgdGhlbgoJCSAgICAgIGNvbXBpbGVfZGVwbGli cz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgoJCSAgICAgIGZpbmFsaXpl X2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCgkJICAgIGVs c2UKCQkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgoJCSAgICAg IHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYgbmV3ZGVwZW5kZW5jeV9saWJz PSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCgkJICAgIGZpCgkJICAg IGNvbnRpbnVlCgkJICBmaQoJCWZpCgkJOzsKCSAgICAgICopIDs7CgkgICAg ICBlc2FjCgkgICAgZmkKCSAgZmkKCSAgOzsgIyAtbAoJKi5sdGZyYW1ld29y aykKCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsi OyB0aGVuCgkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxl X2RlcGxpYnMiCgkgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKCSAgZWxzZQoJICAgIGRlcGxpYnM9IiRkZXBsaWIg JGRlcGxpYnMiCgkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRo ZW4KCQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgoJ CSAgICAqIiAkZGVwbGliICIqKSA7OwoJCSAgICAqICkgbmV3X2luaGVyaXRl ZF9saW5rZXJfZmxhZ3MrPSIgJGRlcGxpYiIgOzsKCQllc2FjCgkgICAgZmkK CSAgZmkKCSAgY29udGludWUKCSAgOzsKCS1MKikKCSAgY2FzZSAkbGlua21v ZGUgaW4KCSAgbGliKQoJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi CgkgICAgdGVzdCAiJHBhc3MiID0gY29udiAmJiBjb250aW51ZQoJICAgIG5l d2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJz IgoJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCgkgICAg ZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQi CgkgICAgbmV3bGliX3NlYXJjaF9wYXRoKz0iICRmdW5jX3Jlc29sdmVfc3lz cm9vdF9yZXN1bHQiCgkgICAgOzsKCSAgcHJvZykKCSAgICBpZiB0ZXN0ICIk cGFzcyIgPSBjb252OyB0aGVuCgkgICAgICBkZXBsaWJzPSIkZGVwbGliICRk ZXBsaWJzIgoJICAgICAgY29udGludWUKCSAgICBmaQoJICAgIGlmIHRlc3Qg IiRwYXNzIiA9IHNjYW47IHRoZW4KCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIg JGRlcGxpYnMiCgkgICAgZWxzZQoJICAgICAgY29tcGlsZV9kZXBsaWJzPSIk ZGVwbGliICRjb21waWxlX2RlcGxpYnMiCgkgICAgICBmaW5hbGl6ZV9kZXBs aWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgoJICAgIGZpCgkgICAg ZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKCSAgICBmdW5jX3Jl c29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKCSAgICBu ZXdsaWJfc2VhcmNoX3BhdGgrPSIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jl c3VsdCIKCSAgICA7OwoJICAqKQoJICAgIGZ1bmNfd2FybmluZyAiXGAtTCcg aXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMvb2JqZWN0cyIKCSAgICA7OwoJICBl c2FjICMgbGlua21vZGUKCSAgY29udGludWUKCSAgOzsgIyAtTAoJLVIqKQoJ ICBpZiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCgkgICAgZnVuY19zdHJp cG5hbWUgJy1SJyAnJyAiJGRlcGxpYiIKCSAgICBmdW5jX3Jlc29sdmVfc3lz cm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKCSAgICBkaXI9JGZ1bmNf cmVzb2x2ZV9zeXNyb290X3Jlc3VsdAoJICAgICMgTWFrZSBzdXJlIHRoZSB4 cnBhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCgkgICAg Y2FzZSAiJHhycGF0aCAiIGluCgkgICAgKiIgJGRpciAiKikgOzsKCSAgICAq KSB4cnBhdGgrPSIgJGRpciIgOzsKCSAgICBlc2FjCgkgIGZpCgkgIGRlcGxp YnM9IiRkZXBsaWIgJGRlcGxpYnMiCgkgIGNvbnRpbnVlCgkgIDs7CgkqLmxh KQoJICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIKCSAgbGliPSRm dW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKCSAgOzsKCSouJGxpYmV4dCkK CSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgoJICAgIGRlcGxpYnM9 IiRkZXBsaWIgJGRlcGxpYnMiCgkgICAgY29udGludWUKCSAgZmkKCSAgY2Fz ZSAkbGlua21vZGUgaW4KCSAgbGliKQoJICAgICMgTGlua2luZyBjb252ZW5p ZW5jZSBtb2R1bGVzIGludG8gc2hhcmVkIGxpYnJhcmllcyBpcyBhbGxvd2Vk LAoJICAgICMgYnV0IGxpbmtpbmcgb3RoZXIgc3RhdGljIGxpYnJhcmllcyBp cyBub24tcG9ydGFibGUuCgkgICAgY2FzZSAiICRkbHByZWNvbnZlbmllbmNl bGlicyAiIGluCgkgICAgKiIgJGRlcGxpYiAiKikgOzsKCSAgICAqKQoJICAg ICAgdmFsaWRfYV9saWI9bm8KCSAgICAgIGNhc2UgJGRlcGxpYnNfY2hlY2tf bWV0aG9kIGluCgkJbWF0Y2hfcGF0dGVybiopCgkJICBzZXQgZHVtbXkgJGRl cGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAoJCSAgbWF0Y2hfcGF0dGVybl9y ZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4q XCkiYAoJCSAgaWYgZXZhbCAiXCRFQ0hPIFwiJGRlcGxpYlwiIiAyPi9kZXYv bnVsbCB8ICRTRUQgMTBxIFwKCQkgICAgfCAkRUdSRVAgIiRtYXRjaF9wYXR0 ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgoJCSAgICB2YWxpZF9hX2xp Yj15ZXMKCQkgIGZpCgkJOzsKCQlwYXNzX2FsbCkKCQkgIHZhbGlkX2FfbGli PXllcwoJCTs7CgkgICAgICBlc2FjCgkgICAgICBpZiB0ZXN0ICIkdmFsaWRf YV9saWIiICE9IHllczsgdGhlbgoJCWVjaG8KCQkkRUNITyAiKioqIFdhcm5p bmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRk ZXBsaWIuIgoJCWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8g bWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4i CgkJZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJ IGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKCQllY2hvICIqKiog c2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBu b3QgYXBwZWFyIHRvIGhhdmUiCgkJZWNobyAiKioqIGJlY2F1c2UgdGhlIGZp bGUgZXh0ZW5zaW9ucyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2Vz IG1lIGJlbGlldmUiCgkJZWNobyAiKioqIHRoYXQgaXQgaXMganVzdCBhIHN0 YXRpYyBhcmNoaXZlIHRoYXQgSSBzaG91bGQgbm90IHVzZSBoZXJlLiIKCSAg ICAgIGVsc2UKCQllY2hvCgkJJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5n IHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIgoJCSRF Q0hPICIqKiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3QgcG9ydGFi bGUhIgoJCWRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCgkgICAgICBmaQoJ ICAgICAgOzsKCSAgICBlc2FjCgkgICAgY29udGludWUKCSAgICA7OwoJICBw cm9nKQoJICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCgkgICAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgoJICAgIGVsc2UKCSAgICAg IGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgoJ ICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVw bGlicyIKCSAgICBmaQoJICAgIGNvbnRpbnVlCgkgICAgOzsKCSAgZXNhYyAj IGxpbmttb2RlCgkgIDs7ICMgKi4kbGliZXh0CgkqLmxvIHwgKi4kb2JqZXh0 KQoJICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCgkgICAgZGVwbGli cz0iJGRlcGxpYiAkZGVwbGlicyIKCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUi ID0gcHJvZzsgdGhlbgoJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3Bl biB8fCB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9IHllcyB8fCB0ZXN0ICIk YnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCgkgICAgICAjIElmIHRo ZXJlIGlzIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdlJ3JlIGxpbmtpbmcgc3Rh dGljYWxseSwKCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgoJICAgICAg bmV3ZGxwcmVmaWxlcys9IiAkZGVwbGliIgoJICAgICAgY29tcGlsZV9kZXBs aWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCgkgICAgICBmaW5hbGl6 ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgoJICAgIGVs c2UKCSAgICAgIG5ld2RsZmlsZXMrPSIgJGRlcGxpYiIKCSAgICBmaQoJICBm aQoJICBjb250aW51ZQoJICA7OwoJJURFUExJQlMlKQoJICBhbGxkZXBsaWJz PXllcwoJICBjb250aW51ZQoJICA7OwoJZXNhYyAjIGNhc2UgJGRlcGxpYgoK CWlmIHRlc3QgIiRmb3VuZCIgPSB5ZXMgfHwgdGVzdCAtZiAiJGxpYiI7IHRo ZW4gOgoJZWxzZQoJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCB0 aGUgbGlicmFyeSBcYCRsaWInIG9yIHVuaGFuZGxlZCBhcmd1bWVudCBcYCRk ZXBsaWInIgoJZmkKCgkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5 IGlzIGEgbGlidG9vbCBhcmNoaXZlLgoJZnVuY19sYWxpYl91bnNhZmVfcCAi JGxpYiIgXAoJICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5v dCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKCglmdW5jX2Rpcm5hbWUgIiRs aWIiICIiICIuIgoJbGFkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgoKCWRs bmFtZT0KCWRsb3Blbj0KCWRscHJlb3Blbj0KCWxpYmRpcj0KCWxpYnJhcnlf bmFtZXM9CglvbGRfbGlicmFyeT0KCWluaGVyaXRlZF9saW5rZXJfZmxhZ3M9 CgkjIElmIHRoZSBsaWJyYXJ5IHdhcyBpbnN0YWxsZWQgd2l0aCBhbiBvbGQg cmVsZWFzZSBvZiBsaWJ0b29sLAoJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2 YXJpYWJsZXMgaW5zdGFsbGVkLCBvciBzaG91bGRub3RsaW5rCglpbnN0YWxs ZWQ9eWVzCglzaG91bGRub3RsaW5rPW5vCglhdm9pZHRlbXBycGF0aD0KCgoJ IyBSZWFkIHRoZSAubGEgZmlsZQoJZnVuY19zb3VyY2UgIiRsaWIiCgoJIyBD b252ZXJ0ICItZnJhbWV3b3JrIGZvbyIgdG8gImZvby5sdGZyYW1ld29yayIK CWlmIHRlc3QgLW4gIiRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIjsgdGhlbgoJ ICB0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz1gJEVDSE8gIiRpbmhlcml0 ZWRfbGlua2VyX2ZsYWdzIiB8ICRTRUQgJ3MvLWZyYW1ld29yayBcKFteICRd KlwpL1wxLmx0ZnJhbWV3b3JrL2cnYAoJICBmb3IgdG1wX2luaGVyaXRlZF9s aW5rZXJfZmxhZyBpbiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M7IGRv CgkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGlu CgkgICAgICAqIiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyAiKikgOzsK CSAgICAgICopIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzKz0iICR0bXBf aW5oZXJpdGVkX2xpbmtlcl9mbGFnIjs7CgkgICAgZXNhYwoJICBkb25lCglm aQoJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiICRkZXBlbmRlbmN5X2xpYnMi IHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29y ayBcMSVnJ2AKCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxp bmsiIHx8CgkgICB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2Nh biIgfHwKCSAgIHsgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3Qg IiRsaW5rbW9kZSIgIT0gbGliOyB9OyB0aGVuCgkgIHRlc3QgLW4gIiRkbG9w ZW4iICYmIGRsZmlsZXMrPSIgJGRsb3BlbiIKCSAgdGVzdCAtbiAiJGRscHJl b3BlbiIgJiYgZGxwcmVmaWxlcys9IiAkZGxwcmVvcGVuIgoJZmkKCglpZiB0 ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCgkgICMgT25seSBjaGVjayBmb3Ig Y29udmVuaWVuY2UgbGlicmFyaWVzCgkgIGRlcGxpYnM9IiRsaWIgJGRlcGxp YnMiCgkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCgkgICAgaWYgdGVz dCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgoJICAgICAgZnVuY19mYXRhbF9l cnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxg JGxpYiciCgkgICAgZmkKCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5p ZW5jZSBsaWJyYXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCgkgICAgY29u dmVuaWVuY2UrPSIgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgoJICAg IG9sZF9jb252ZW5pZW5jZSs9IiAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJh cnkiCgkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3Qg IiRsaW5rbW9kZSIgIT0gbGliOyB0aGVuCgkgICAgZnVuY19mYXRhbF9lcnJv ciAiXGAkbGliJyBpcyBub3QgYSBjb252ZW5pZW5jZSBsaWJyYXJ5IgoJICBm aQoJICB0bXBfbGlicz0KCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9s aWJzOyBkbwoJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCgkgICAg aWYgJG9wdF9wcmVzZXJ2ZV9kdXBfZGVwcyA7IHRoZW4KCSAgICAgIGNhc2Ug IiR0bXBfbGlicyAiIGluCgkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFs ZGVwbGlicys9IiAkZGVwbGliIiA7OwoJICAgICAgZXNhYwoJICAgIGZpCgkg ICAgdG1wX2xpYnMrPSIgJGRlcGxpYiIKCSAgZG9uZQoJICBjb250aW51ZQoJ ZmkgIyAkcGFzcyA9IGNvbnYKCgoJIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxp YnJhcnkgd2UgbGluayBhZ2FpbnN0LgoJbGlua2xpYj0KCWlmIHRlc3QgLW4g IiRvbGRfbGlicmFyeSIgJiYKCSAgIHsgdGVzdCAiJHByZWZlcl9zdGF0aWNf bGlicyIgPSB5ZXMgfHwKCSAgICAgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGli cywkaW5zdGFsbGVkIiA9ICJidWlsdCxubyI7IH07IHRoZW4KCSAgbGlua2xp Yj0kb2xkX2xpYnJhcnkKCWVsc2UKCSAgZm9yIGwgaW4gJG9sZF9saWJyYXJ5 ICRsaWJyYXJ5X25hbWVzOyBkbwoJICAgIGxpbmtsaWI9IiRsIgoJICBkb25l CglmaQoJaWYgdGVzdCAteiAiJGxpbmtsaWIiOyB0aGVuCgkgIGZ1bmNfZmF0 YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZv ciBcYCRsaWInIgoJZmkKCgkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVk IHdpdGggLWRsb3Blbi4KCWlmIHRlc3QgIiRwYXNzIiA9IGRsb3BlbjsgdGhl bgoJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgoJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgImNhbm5vdCAtZGxvcGVuIGEgY29udmVuaWVuY2UgbGlicmFy eTogXGAkbGliJyIKCSAgZmkKCSAgaWYgdGVzdCAteiAiJGRsbmFtZSIgfHwK CSAgICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwKCSAgICAg dGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgoJICAgICMg SWYgdGhlcmUgaXMgbm8gZGxuYW1lLCBubyBkbG9wZW4gc3VwcG9ydCBvciB3 ZSdyZSBsaW5raW5nCgkgICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHBy ZWxvYWQuICBXZSBhbHNvIG5lZWQgdG8gcHJlbG9hZCBhbnkKCSAgICAjIGRl cGVuZGVudCBsaWJyYXJpZXMgc28gbGlibHRkbCdzIGRlcGxpYiBwcmVsb2Fk ZXIgZG9lc24ndAoJICAgICMgYm9tYiBvdXQgaW4gdGhlIGxvYWQgZGVwbGli cyBwaGFzZS4KCSAgICBkbHByZWZpbGVzKz0iICRsaWIgJGRlcGVuZGVuY3lf bGlicyIKCSAgZWxzZQoJICAgIG5ld2RsZmlsZXMrPSIgJGxpYiIKCSAgZmkK CSAgY29udGludWUKCWZpICMgJHBhc3MgPSBkbG9wZW4KCgkjIFdlIG5lZWQg YW4gYWJzb2x1dGUgcGF0aC4KCWNhc2UgJGxhZGlyIGluCglbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIGFic19sYWRpcj0iJGxhZGlyIiA7OwoJKikKCSAg YWJzX2xhZGlyPWBjZCAiJGxhZGlyIiAmJiBwd2RgCgkgIGlmIHRlc3QgLXog IiRhYnNfbGFkaXIiOyB0aGVuCgkgICAgZnVuY193YXJuaW5nICJjYW5ub3Qg ZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGxhZGly JyIKCSAgICBmdW5jX3dhcm5pbmcgInBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRv IHRoZSBsaW5rZXIsIGFsdGhvdWdoIGl0IG1pZ2h0IGZhaWwiCgkgICAgYWJz X2xhZGlyPSIkbGFkaXIiCgkgIGZpCgkgIDs7Cgllc2FjCglmdW5jX2Jhc2Vu YW1lICIkbGliIgoJbGFuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCgoJ IyBGaW5kIHRoZSByZWxldmFudCBvYmplY3QgZGlyZWN0b3J5IGFuZCBsaWJy YXJ5IG5hbWUuCglpZiB0ZXN0ICJYJGluc3RhbGxlZCIgPSBYeWVzOyB0aGVu CgkgIGlmIHRlc3QgISAtZiAiJGx0X3N5c3Jvb3QkbGliZGlyLyRsaW5rbGli IiAmJiB0ZXN0IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgoJICAg IGZ1bmNfd2FybmluZyAibGlicmFyeSBcYCRsaWInIHdhcyBtb3ZlZC4iCgkg ICAgZGlyPSIkbGFkaXIiCgkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgoJICAg IGxpYmRpcj0iJGFic19sYWRpciIKCSAgZWxzZQoJICAgIGRpcj0iJGx0X3N5 c3Jvb3QkbGliZGlyIgoJICAgIGFic2Rpcj0iJGx0X3N5c3Jvb3QkbGliZGly IgoJICBmaQoJICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSBYeWVz ICYmIGF2b2lkdGVtcHJwYXRoPXllcwoJZWxzZQoJICBpZiB0ZXN0ICEgLWYg IiRsYWRpci8kb2JqZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xh ZGlyLyRsaW5rbGliIjsgdGhlbgoJICAgIGRpcj0iJGxhZGlyIgoJICAgIGFi c2Rpcj0iJGFic19sYWRpciIKCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBw YXRoIGxhdGVyCgkgICAgbm90aW5zdF9wYXRoKz0iICRhYnNfbGFkaXIiCgkg IGVsc2UKCSAgICBkaXI9IiRsYWRpci8kb2JqZGlyIgoJICAgIGFic2Rpcj0i JGFic19sYWRpci8kb2JqZGlyIgoJICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNo IHBhdGggbGF0ZXIKCSAgICBub3RpbnN0X3BhdGgrPSIgJGFic19sYWRpciIK CSAgZmkKCWZpICMgJGluc3RhbGxlZCA9IHllcwoJZnVuY19zdHJpcG5hbWUg J2xpYicgJy5sYScgIiRsYW5hbWUiCgluYW1lPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKCgkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRs cHJlb3Blbi4KCWlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbjsgdGhlbgoJ ICBpZiB0ZXN0IC16ICIkbGliZGlyIiAmJiB0ZXN0ICIkbGlua21vZGUiID0g cHJvZzsgdGhlbgoJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgbGlicmFy aWVzIG1heSAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAk bGliJyIKCSAgZmkKCSAgY2FzZSAiJGhvc3QiIGluCgkgICAgIyBzcGVjaWFs IGhhbmRsaW5nIGZvciBwbGF0Zm9ybXMgd2l0aCBQRS1ETExzLgoJICAgICpj eWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQoJICAgICAgIyBMaW5rZXIg d2lsbCBhdXRvbWF0aWNhbGx5IGxpbmsgYWdhaW5zdCBzaGFyZWQgbGlicmFy eSBpZiBib3RoCgkgICAgICAjIHN0YXRpYyBhbmQgc2hhcmVkIGFyZSBwcmVz ZW50LiAgVGhlcmVmb3JlLCBlbnN1cmUgd2UgZXh0cmFjdAoJICAgICAgIyBz eW1ib2xzIGZyb20gdGhlIGltcG9ydCBsaWJyYXJ5IGlmIGEgc2hhcmVkIGxp YnJhcnkgaXMgcHJlc2VudAoJICAgICAgIyAob3RoZXJ3aXNlLCB0aGUgZGxv cGVuIG1vZHVsZSBuYW1lIHdpbGwgYmUgaW5jb3JyZWN0KS4gIFdlIGRvCgkg ICAgICAjIHRoaXMgYnkgcHV0dGluZyB0aGUgaW1wb3J0IGxpYnJhcnkgbmFt ZSBpbnRvICRuZXdkbHByZWZpbGVzLgoJICAgICAgIyBXZSByZWNvdmVyIHRo ZSBkbG9wZW4gbW9kdWxlIG5hbWUgYnkgJ3NhdmluZycgdGhlIGxhIGZpbGUK CSAgICAgICMgbmFtZSBpbiBhIHNwZWNpYWwgcHVycG9zZSB2YXJpYWJsZSwg YW5kIChsYXRlcikgZXh0cmFjdGluZyB0aGUKCSAgICAgICMgZGxuYW1lIGZy b20gdGhlIGxhIGZpbGUuCgkgICAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsg dGhlbgoJICAgICAgICBmdW5jX3RyX3NoICIkZGlyLyRsaW5rbGliIgoJICAg ICAgICBldmFsICJsaWJmaWxlXyRmdW5jX3RyX3NoX3Jlc3VsdD1cJGFic19s YWRpci9cJGxhbmFtZSIKCSAgICAgICAgbmV3ZGxwcmVmaWxlcys9IiAkZGly LyRsaW5rbGliIgoJICAgICAgZWxzZQoJICAgICAgICBuZXdkbHByZWZpbGVz Kz0iICRkaXIvJG9sZF9saWJyYXJ5IgoJICAgICAgICAjIEtlZXAgYSBsaXN0 IG9mIHByZW9wZW5lZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8gY2hlY2sK CSAgICAgICAgIyB0aGF0IHRoZXkgYXJlIGJlaW5nIHVzZWQgY29ycmVjdGx5 IGluIHRoZSBsaW5rIHBhc3MuCgkgICAgICAgIHRlc3QgLXogIiRsaWJkaXIi ICYmIFwKCSAgICAgICAgICBkbHByZWNvbnZlbmllbmNlbGlicys9IiAkZGly LyRvbGRfbGlicmFyeSIKCSAgICAgIGZpCgkgICAgOzsKCSAgICAqICkKCSAg ICAgICMgUHJlZmVyIHVzaW5nIGEgc3RhdGljIGxpYnJhcnkgKHNvIHRoYXQg bm8gc2lsbHkgX0RZTkFNSUMgc3ltYm9scwoJICAgICAgIyBhcmUgcmVxdWly ZWQgdG8gbGluaykuCgkgICAgICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnki OyB0aGVuCgkgICAgICAgIG5ld2RscHJlZmlsZXMrPSIgJGRpci8kb2xkX2xp YnJhcnkiCgkgICAgICAgICMgS2VlcCBhIGxpc3Qgb2YgcHJlb3BlbmVkIGNv bnZlbmllbmNlIGxpYnJhcmllcyB0byBjaGVjawoJICAgICAgICAjIHRoYXQg dGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFz cy4KCSAgICAgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAoJICAgICAgICAg IGRscHJlY29udmVuaWVuY2VsaWJzKz0iICRkaXIvJG9sZF9saWJyYXJ5IgoJ ICAgICAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0 X2Rsb3BlbiBmaW5kcyBpdC4KCSAgICAgIGVsaWYgdGVzdCAtbiAiJGRsbmFt ZSI7IHRoZW4KCSAgICAgICAgbmV3ZGxwcmVmaWxlcys9IiAkZGlyLyRkbG5h bWUiCgkgICAgICBlbHNlCgkgICAgICAgIG5ld2RscHJlZmlsZXMrPSIgJGRp ci8kbGlua2xpYiIKCSAgICAgIGZpCgkgICAgOzsKCSAgZXNhYwoJZmkgIyAk cGFzcyA9IGRscHJlb3BlbgoKCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVu CgkgICMgTGluayB0aGUgY29udmVuaWVuY2UgbGlicmFyeQoJICBpZiB0ZXN0 ICIkbGlua21vZGUiID0gbGliOyB0aGVuCgkgICAgZGVwbGlicz0iJGRpci8k b2xkX2xpYnJhcnkgJGRlcGxpYnMiCgkgIGVsaWYgdGVzdCAiJGxpbmttb2Rl LCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCgkgICAgY29tcGlsZV9kZXBs aWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkY29tcGlsZV9kZXBsaWJzIgoJICAg IGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6 ZV9kZXBsaWJzIgoJICBlbHNlCgkgICAgZGVwbGlicz0iJGxpYiAkZGVwbGli cyIgIyB1c2VkIGZvciBwcm9nLHNjYW4gcGFzcwoJICBmaQoJICBjb250aW51 ZQoJZmkKCgoJaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgJiYgdGVzdCAi JHBhc3MiICE9IGxpbms7IHRoZW4KCSAgbmV3bGliX3NlYXJjaF9wYXRoKz0i ICRsYWRpciIKCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKCgkgIGxpbmth bGxkZXBsaWJzPW5vCgkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAh PSBubyB8fCB0ZXN0IC16ICIkbGlicmFyeV9uYW1lcyIgfHwKCSAgICAgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgoJICAgIGxpbmth bGxkZXBsaWJzPXllcwoJICBmaQoKCSAgdG1wX2xpYnM9CgkgIGZvciBkZXBs aWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KCSAgICBjYXNlICRkZXBsaWIg aW4KCSAgICAtTCopIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIi CgkgICAgICAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdCIKCSAgICAgICAgIG5ld2xpYl9zZWFyY2hfcGF0aCs9IiAk ZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IgoJCSA7OwoJICAgIGVzYWMK CSAgICAjIE5lZWQgdG8gbGluayBhZ2FpbnN0IGFsbCBkZXBlbmRlbmN5X2xp YnM/CgkgICAgaWYgdGVzdCAiJGxpbmthbGxkZXBsaWJzIiA9IHllczsgdGhl bgoJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKCSAgICBlbHNl CgkgICAgICAjIE5lZWQgdG8gaGFyZGNvZGUgc2hhcmVkIGxpYnJhcnkgcGF0 aHMKCSAgICAgICMgb3IvYW5kIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGlicmFy aWVzCgkgICAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2Rl cGVuZGVuY3lfbGlicyIKCSAgICBmaQoJICAgIGlmICRvcHRfcHJlc2VydmVf ZHVwX2RlcHMgOyB0aGVuCgkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgoJ ICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnMrPSIgJGRlcGxp YiIgOzsKCSAgICAgIGVzYWMKCSAgICBmaQoJICAgIHRtcF9saWJzKz0iICRk ZXBsaWIiCgkgIGRvbmUgIyBmb3IgZGVwbGliCgkgIGNvbnRpbnVlCglmaSAj ICRsaW5rbW9kZSA9IHByb2cuLi4KCglpZiB0ZXN0ICIkbGlua21vZGUsJHBh c3MiID0gInByb2csbGluayI7IHRoZW4KCSAgaWYgdGVzdCAtbiAiJGxpYnJh cnlfbmFtZXMiICYmCgkgICAgIHsgeyB0ZXN0ICIkcHJlZmVyX3N0YXRpY19s aWJzIiA9IG5vIHx8CgkgICAgICAgICB0ZXN0ICIkcHJlZmVyX3N0YXRpY19s aWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0LHllcyI7IH0gfHwKCSAgICAgICB0 ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCgkgICAgIyBXZSBuZWVk IHRvIGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGgKCSAgICBpZiB0ZXN0IC1u ICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAteiAiJGF2b2lkdGVtcHJwYXRo IiA7IHRoZW4KCSAgICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250YWlu cyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KCSAgICAgIGNhc2UgIiR0ZW1w X3JwYXRoOiIgaW4KCSAgICAgICoiJGFic2RpcjoiKikgOzsKCSAgICAgICop IHRlbXBfcnBhdGgrPSIkYWJzZGlyOiIgOzsKCSAgICAgIGVzYWMKCSAgICBm aQoKCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCgkgICAgIyBT a2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVs dCBydW4tdGltZQoJICAgICMgc2VhcmNoIHBhdGguCgkgICAgY2FzZSAiICRz eXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgoJICAgICoiICRhYnNkaXIgIiop IDs7CgkgICAgKikKCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4K CSAgICAgICoiICRhYnNkaXIgIiopIDs7CgkgICAgICAqKSBjb21waWxlX3Jw YXRoKz0iICRhYnNkaXIiIDs7CgkgICAgICBlc2FjCgkgICAgICA7OwoJICAg IGVzYWMKCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGlu CgkgICAgKiIgJGxpYmRpciAiKikgOzsKCSAgICAqKQoJICAgICAgY2FzZSAi JGZpbmFsaXplX3JwYXRoICIgaW4KCSAgICAgICoiICRsaWJkaXIgIiopIDs7 CgkgICAgICAqKSBmaW5hbGl6ZV9ycGF0aCs9IiAkbGliZGlyIiA7OwoJICAg ICAgZXNhYwoJICAgICAgOzsKCSAgICBlc2FjCgkgIGZpICMgJGxpbmttb2Rl LCRwYXNzID0gcHJvZyxsaW5rLi4uCgoJICBpZiB0ZXN0ICIkYWxsZGVwbGli cyIgPSB5ZXMgJiYKCSAgICAgeyB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRo b2QiID0gcGFzc19hbGwgfHwKCSAgICAgICB7IHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0geWVzICYmCgkJIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVz IjsgfTsgfTsgdGhlbgoJICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJjaCBm b3Igc3RhdGljIGxpYnJhcmllcwoJICAgIGNvbnRpbnVlCgkgIGZpCglmaQoK CWxpbmtfc3RhdGljPW5vICMgV2hldGhlciB0aGUgZGVwbGliIHdpbGwgYmUg bGlua2VkIHN0YXRpY2FsbHkKCXVzZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0 YXRpY19saWJzCglpZiB0ZXN0ICIkdXNlX3N0YXRpY19saWJzIiA9IGJ1aWx0 ICYmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCgkgIHVzZV9zdGF0 aWNfbGlicz1ubwoJZmkKCWlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAm JgoJICAgeyB0ZXN0ICIkdXNlX3N0YXRpY19saWJzIiA9IG5vIHx8IHRlc3Qg LXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KCSAgY2FzZSAkaG9zdCBpbgoJ ICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqKQoJICAgICAgIyBObyBw b2ludCBpbiByZWxpbmtpbmcgRExMcyBiZWNhdXNlIHBhdGhzIGFyZSBub3Qg ZW5jb2RlZAoJICAgICAgbm90aW5zdF9kZXBsaWJzKz0iICRsaWIiCgkgICAg ICBuZWVkX3JlbGluaz1ubwoJICAgIDs7CgkgICopCgkgICAgaWYgdGVzdCAi JGluc3RhbGxlZCIgPSBubzsgdGhlbgoJICAgICAgbm90aW5zdF9kZXBsaWJz Kz0iICRsaWIiCgkgICAgICBuZWVkX3JlbGluaz15ZXMKCSAgICBmaQoJICAg IDs7CgkgIGVzYWMKCSAgIyBUaGlzIGlzIGEgc2hhcmVkIGxpYnJhcnkKCgkg ICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0 IC1tb2R1bGUncyBvbiBzb21lCgkgICMgc3lzdGVtcyAoZGFyd2luKS4gIERv bid0IGJsZWF0IGFib3V0IGRsb3BlbmVkIG1vZHVsZXMgdGhvdWdoIQoJICBk bG9wZW5tb2R1bGU9IiIKCSAgZm9yIGRscHJlbW9kdWxldGVzdCBpbiAkZGxw cmVmaWxlczsgZG8KCSAgICBpZiB0ZXN0ICJYJGRscHJlbW9kdWxldGVzdCIg PSAiWCRsaWIiOyB0aGVuCgkgICAgICBkbG9wZW5tb2R1bGU9IiRkbHByZW1v ZHVsZXRlc3QiCgkgICAgICBicmVhawoJICAgIGZpCgkgIGRvbmUKCSAgaWYg dGVzdCAteiAiJGRsb3Blbm1vZHVsZSIgJiYgdGVzdCAiJHNob3VsZG5vdGxp bmsiID0geWVzICYmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KCSAgICBl Y2hvCgkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KCSAg ICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgZXhlY3V0YWJs ZSAkb3V0cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKCSAgICBl bHNlCgkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNo YXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9k dWxlIgoJICAgIGZpCgkgICAgJEVDSE8gIioqKiAkbGlua2xpYiBpcyBub3Qg cG9ydGFibGUhIgoJICBmaQoJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGli ICYmCgkgICAgIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0 aGVuCgkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgoJICAgICMg U2tpcCBkaXJlY3RvcmllcyB0aGF0IGFyZSBpbiB0aGUgc3lzdGVtIGRlZmF1 bHQgcnVuLXRpbWUKCSAgICAjIHNlYXJjaCBwYXRoLgoJICAgIGNhc2UgIiAk c3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KCSAgICAqIiAkYWJzZGlyICIq KSA7OwoJICAgICopCgkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0aCAiIGlu CgkgICAgICAqIiAkYWJzZGlyICIqKSA7OwoJICAgICAgKikgY29tcGlsZV9y cGF0aCs9IiAkYWJzZGlyIiA7OwoJICAgICAgZXNhYwoJICAgICAgOzsKCSAg ICBlc2FjCgkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBp bgoJICAgICoiICRsaWJkaXIgIiopIDs7CgkgICAgKikKCSAgICAgIGNhc2Ug IiRmaW5hbGl6ZV9ycGF0aCAiIGluCgkgICAgICAqIiAkbGliZGlyICIqKSA7 OwoJICAgICAgKikgZmluYWxpemVfcnBhdGgrPSIgJGxpYmRpciIgOzsKCSAg ICAgIGVzYWMKCSAgICAgIDs7CgkgICAgZXNhYwoJICBmaQoKCSAgaWYgdGVz dCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIjsgdGhlbgoJ ICAgICMgZmlndXJlIG91dCB0aGUgc29uYW1lCgkgICAgc2V0IGR1bW15ICRs aWJyYXJ5X25hbWVzCgkgICAgc2hpZnQKCSAgICByZWFsbmFtZT0iJDEiCgkg ICAgc2hpZnQKCSAgICBsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5h bWVfc3BlY1wiImAKCSAgICAjIHVzZSBkbG5hbWUgaWYgd2UgZ290IGl0LiBp dCdzIHBlcmZlY3RseSBnb29kLCBubz8KCSAgICBpZiB0ZXN0IC1uICIkZGxu YW1lIjsgdGhlbgoJICAgICAgc29uYW1lPSIkZGxuYW1lIgoJICAgIGVsaWYg dGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgoJICAgICAgIyBibGVoIHdp bmRvd3MKCSAgICAgIGNhc2UgJGhvc3QgaW4KCSAgICAgICpjeWd3aW4qIHwg bWluZ3cqIHwgKmNlZ2NjKikKCSAgICAgICAgZnVuY19hcml0aCAkY3VycmVu dCAtICRhZ2UKCQltYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKCQl2ZXJzdWZm aXg9Ii0kbWFqb3IiCgkJOzsKCSAgICAgIGVzYWMKCSAgICAgIGV2YWwgc29u YW1lPVwiJHNvbmFtZV9zcGVjXCIKCSAgICBlbHNlCgkgICAgICBzb25hbWU9 IiRyZWFsbmFtZSIKCSAgICBmaQoKCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBm b3IgdGhlIGV4dHJhY3RfZXhwc3ltc19jbWRzIHRvIHVzZQoJICAgIHNvcm9v dD0iJHNvbmFtZSIKCSAgICBmdW5jX2Jhc2VuYW1lICIkc29yb290IgoJICAg IHNvbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgoJICAgIGZ1bmNfc3Ry aXBuYW1lICdsaWInICcuZGxsJyAiJHNvbmFtZSIKCSAgICBuZXdsaWI9bGli aW1wLSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuYQoKCSAgICAjIElmIHRoZSBs aWJyYXJ5IGhhcyBubyBleHBvcnQgbGlzdCwgdGhlbiBjcmVhdGUgb25lIG5v dwoJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVm IjsgdGhlbiA6CgkgICAgZWxzZQoJICAgICAgZnVuY192ZXJib3NlICJleHRy YWN0aW5nIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gXGAkc29uYW1lJyIK CSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZXh0cmFjdF9leHBzeW1zX2Nt ZHMiICdleGl0ICQ/JwoJICAgIGZpCgoJICAgICMgQ3JlYXRlICRuZXdsaWIK CSAgICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbmV3bGliIjsgdGhl biA6OyBlbHNlCgkgICAgICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgaW1w b3J0IGxpYnJhcnkgZm9yIFxgJHNvbmFtZSciCgkgICAgICBmdW5jX2V4ZWN1 dGVfY21kcyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiAnZXhp dCAkPycKCSAgICBmaQoJICAgICMgbWFrZSBzdXJlIHRoZSBsaWJyYXJ5IHZh cmlhYmxlcyBhcmUgcG9pbnRpbmcgdG8gdGhlIG5ldyBsaWJyYXJ5CgkgICAg ZGlyPSRvdXRwdXRfb2JqZGlyCgkgICAgbGlua2xpYj0kbmV3bGliCgkgIGZp ICMgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIgoK CSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG9wdF9t b2RlIiAhPSByZWxpbms7IHRoZW4KCSAgICBhZGRfc2hsaWJwYXRoPQoJICAg IGFkZF9kaXI9CgkgICAgYWRkPQoJICAgIGxpYl9saW5rZWQ9eWVzCgkgICAg Y2FzZSAkaGFyZGNvZGVfYWN0aW9uIGluCgkgICAgaW1tZWRpYXRlIHwgdW5z dXBwb3J0ZWQpCgkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9 IG5vOyB0aGVuCgkJYWRkPSIkZGlyLyRsaW5rbGliIgoJCWNhc2UgJGhvc3Qg aW4KCQkgICotKi1zY28zLjJ2NS4wLlswMjRdKikgYWRkX2Rpcj0iLUwkZGly IiA7OwoJCSAgKi0qLXN5c3Y0KnV3MiopIGFkZF9kaXI9Ii1MJGRpciIgOzsK CQkgICotKi1zeXN2NU9wZW5VTklYKiB8ICotKi1zeXN2NVVuaXhXYXJlNy5b MDFdLlsxMF0qIHwgXAoJCSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0i LUwkZGlyIiA7OwoJCSAgKi0qLWRhcndpbiogKQoJCSAgICAjIGlmIHRoZSBs aWIgaXMgYSAobm9uLWRsb3BlbmVkKSBtb2R1bGUgdGhlbiB3ZSBjYW4gbm90 CgkJICAgICMgbGluayBhZ2FpbnN0IGl0LCBzb21lb25lIGlzIGlnbm9yaW5n IHRoZSBlYXJsaWVyIHdhcm5pbmdzCgkJICAgIGlmIC91c3IvYmluL2ZpbGUg LUwgJGFkZCAyPiAvZGV2L251bGwgfAoJCQkgJEdSRVAgIjogW146XSogYnVu ZGxlIiA+L2Rldi9udWxsIDsgdGhlbgoJCSAgICAgIGlmIHRlc3QgIlgkZGxv cGVubW9kdWxlIiAhPSAiWCRsaWIiOyB0aGVuCgkJCSRFQ0hPICIqKiogV2Fy bmluZzogbGliICRsaW5rbGliIGlzIGEgbW9kdWxlLCBub3QgYSBzaGFyZWQg bGlicmFyeSIKCQkJaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IiA7IHRoZW4K CQkJICBlY2hvCgkJCSAgZWNobyAiKioqIEFuZCB0aGVyZSBkb2Vzbid0IHNl ZW0gdG8gYmUgYSBzdGF0aWMgYXJjaGl2ZSBhdmFpbGFibGUiCgkJCSAgZWNo byAiKioqIFRoZSBsaW5rIHdpbGwgcHJvYmFibHkgZmFpbCwgc29ycnkiCgkJ CWVsc2UKCQkJICBhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgoJCQlmaQoJCSAg ICAgIGVsaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgoJCQlhZGQ9 IiRkaXIvJG9sZF9saWJyYXJ5IgoJCSAgICAgIGZpCgkJICAgIGZpCgkJZXNh YwoJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSBubzsg dGhlbgoJCWNhc2UgJGhvc3QgaW4KCQkqLSotc3Vub3MqKSBhZGRfc2hsaWJw YXRoPSIkZGlyIiA7OwoJCWVzYWMKCQlhZGRfZGlyPSItTCRkaXIiCgkJYWRk PSItbCRuYW1lIgoJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciIgPSBubzsgdGhlbgoJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCgkJ YWRkPSItbCRuYW1lIgoJICAgICAgZWxzZQoJCWxpYl9saW5rZWQ9bm8KCSAg ICAgIGZpCgkgICAgICA7OwoJICAgIHJlbGluaykKCSAgICAgIGlmIHRlc3Qg IiRoYXJkY29kZV9kaXJlY3QiID0geWVzICYmCgkgICAgICAgICB0ZXN0ICIk aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiA9IG5vOyB0aGVuCgkJYWRkPSIk ZGlyLyRsaW5rbGliIgoJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWlu dXNfTCIgPSB5ZXM7IHRoZW4KCQlhZGRfZGlyPSItTCRhYnNkaXIiCgkJIyBU cnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcg aW5zdGFsbGVkIHRvLgoJCWlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIi OyB0aGVuCgkJICBjYXNlICRsaWJkaXIgaW4KCQkgICAgW1xcL10qKQoJCSAg ICAgIGFkZF9kaXIrPSIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKCQkg ICAgICA7OwoJCSAgZXNhYwoJCWZpCgkJYWRkPSItbCRuYW1lIgoJICAgICAg ZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRo ZW4KCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgoJCWFkZD0iLWwkbmFtZSIKCSAg ICAgIGVsc2UKCQlsaWJfbGlua2VkPW5vCgkgICAgICBmaQoJICAgICAgOzsK CSAgICAqKSBsaWJfbGlua2VkPW5vIDs7CgkgICAgZXNhYwoKCSAgICBpZiB0 ZXN0ICIkbGliX2xpbmtlZCIgIT0geWVzOyB0aGVuCgkgICAgICBmdW5jX2Zh dGFsX2NvbmZpZ3VyYXRpb24gInVuc3VwcG9ydGVkIGhhcmRjb2RlIHByb3Bl cnRpZXMiCgkgICAgZmkKCgkgICAgaWYgdGVzdCAtbiAiJGFkZF9zaGxpYnBh dGgiOyB0aGVuCgkgICAgICBjYXNlIDokY29tcGlsZV9zaGxpYnBhdGg6IGlu CgkgICAgICAqIjokYWRkX3NobGlicGF0aDoiKikgOzsKCSAgICAgICopIGNv bXBpbGVfc2hsaWJwYXRoKz0iJGFkZF9zaGxpYnBhdGg6IiA7OwoJICAgICAg ZXNhYwoJICAgIGZpCgkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7 IHRoZW4KCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBjb21waWxlX2Rl cGxpYnM9IiRhZGRfZGlyICRjb21waWxlX2RlcGxpYnMiCgkgICAgICB0ZXN0 IC1uICIkYWRkIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGQgJGNvbXBpbGVf ZGVwbGlicyIKCSAgICBlbHNlCgkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIg JiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCgkgICAgICB0ZXN0IC1u ICIkYWRkIiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgoJICAgICAgaWYg dGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0geWVzICYmCgkJIHRlc3QgIiRo YXJkY29kZV9taW51c19MIiAhPSB5ZXMgJiYKCQkgdGVzdCAiJGhhcmRjb2Rl X3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCgkJY2FzZSA6JGZpbmFsaXpl X3NobGlicGF0aDogaW4KCQkqIjokbGliZGlyOiIqKSA7OwoJCSopIGZpbmFs aXplX3NobGlicGF0aCs9IiRsaWJkaXI6IiA7OwoJCWVzYWMKCSAgICAgIGZp CgkgICAgZmkKCSAgZmkKCgkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9n IHx8IHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KCSAgICBhZGRf c2hsaWJwYXRoPQoJICAgIGFkZF9kaXI9CgkgICAgYWRkPQoJICAgICMgRmlu YWxpemUgY29tbWFuZCBmb3IgYm90aCBpcyBzaW1wbGU6IGp1c3QgaGFyZGNv ZGUgaXQuCgkgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMg JiYKCSAgICAgICB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiA9 IG5vOyB0aGVuCgkgICAgICBhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCgkgICAg ZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KCSAg ICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKCSAgICAgIGFkZD0iLWwkbmFtZSIK CSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHll czsgdGhlbgoJICAgICAgY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4K CSAgICAgICoiOiRsaWJkaXI6IiopIDs7CgkgICAgICAqKSBmaW5hbGl6ZV9z aGxpYnBhdGgrPSIkbGliZGlyOiIgOzsKCSAgICAgIGVzYWMKCSAgICAgIGFk ZD0iLWwkbmFtZSIKCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0 aWMiID0geWVzOyB0aGVuCgkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVm aXhfZGlyIiAmJgoJCSB0ZXN0IC1mICIkaW5zdF9wcmVmaXhfZGlyJGxpYmRp ci8kbGlua2xpYiIgOyB0aGVuCgkJYWRkPSIkaW5zdF9wcmVmaXhfZGlyJGxp YmRpci8kbGlua2xpYiIKCSAgICAgIGVsc2UKCQlhZGQ9IiRsaWJkaXIvJGxp bmtsaWIiCgkgICAgICBmaQoJICAgIGVsc2UKCSAgICAgICMgV2UgY2Fubm90 IHNlZW0gdG8gaGFyZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZha2UgaXQuCgkg ICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCgkgICAgICAjIFRyeSBsb29raW5n IGZpcnN0IGluIHRoZSBsb2NhdGlvbiB3ZSdyZSBiZWluZyBpbnN0YWxsZWQg dG8uCgkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhl bgoJCWNhc2UgJGxpYmRpciBpbgoJCSAgW1xcL10qKQoJCSAgICBhZGRfZGly Kz0iIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCgkJICAgIDs7CgkJZXNh YwoJICAgICAgZmkKCSAgICAgIGFkZD0iLWwkbmFtZSIKCSAgICBmaQoKCSAg ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgoJICAgICAgdGVz dCAtbiAiJGFkZF9kaXIiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRhZGRfZGly ICRmaW5hbGl6ZV9kZXBsaWJzIgoJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYg ZmluYWxpemVfZGVwbGlicz0iJGFkZCAkZmluYWxpemVfZGVwbGlicyIKCSAg ICBlbHNlCgkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0i JGFkZF9kaXIgJGRlcGxpYnMiCgkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBk ZXBsaWJzPSIkYWRkICRkZXBsaWJzIgoJICAgIGZpCgkgIGZpCgllbGlmIHRl c3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCgkgICMgSGVyZSB3ZSBhc3N1 bWUgdGhhdCBvbmUgb2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21p bnVzX0wKCSAgIyBpcyBub3QgdW5zdXBwb3J0ZWQuICBUaGlzIGlzIHZhbGlk IG9uIGFsbCBrbm93biBzdGF0aWMgYW5kCgkgICMgc2hhcmVkIHBsYXRmb3Jt cy4KCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5zdXBwb3J0 ZWQ7IHRoZW4KCSAgICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIGxpbmts aWI9IiRvbGRfbGlicmFyeSIKCSAgICBjb21waWxlX2RlcGxpYnM9IiRkaXIv JGxpbmtsaWIgJGNvbXBpbGVfZGVwbGlicyIKCSAgICBmaW5hbGl6ZV9kZXBs aWJzPSIkZGlyLyRsaW5rbGliICRmaW5hbGl6ZV9kZXBsaWJzIgoJICBlbHNl CgkgICAgY29tcGlsZV9kZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkY29tcGls ZV9kZXBsaWJzIgoJICAgIGZpbmFsaXplX2RlcGxpYnM9Ii1sJG5hbWUgLUwk ZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgoJICBmaQoJZWxpZiB0ZXN0ICIkYnVp bGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgoJICAjIE5vdCBhIHNoYXJl ZCBsaWJyYXJ5CgkgIGlmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIg IT0gcGFzc19hbGw7IHRoZW4KCSAgICAjIFdlJ3JlIHRyeWluZyBsaW5rIGEg c2hhcmVkIGxpYnJhcnkgYWdhaW5zdCBhIHN0YXRpYyBvbmUKCSAgICAjIGJ1 dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KCgkgICAgIyBKdXN0 IHByaW50IGEgd2FybmluZyBhbmQgYWRkIHRoZSBsaWJyYXJ5IHRvIGRlcGVu ZGVuY3lfbGlicyBzbwoJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUg bGlua2VkIGFnYWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5LgoJICAgIGVjaG8K CSAgICAkRUNITyAiKioqIFdhcm5pbmc6IFRoaXMgc3lzdGVtIGNhbiBub3Qg bGluayB0byBzdGF0aWMgbGliIGFyY2hpdmUgJGxpYi4iCgkgICAgZWNobyAi KioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFy eSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKCSAgICBlY2hvICIqKiog eW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8g dGhpcyBpZiB5b3UgaGF2ZSBhIgoJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVy c2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIg dG8gaGF2ZS4iCgkgICAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXM7IHRoZW4K CSAgICAgIGVjaG8gIioqKiBCdXQgYXMgeW91IHRyeSB0byBidWlsZCBhIG1v ZHVsZSBsaWJyYXJ5LCBsaWJ0b29sIHdpbGwgc3RpbGwgY3JlYXRlICIKCSAg ICAgIGVjaG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdv cmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIGFwcGxpY2F0aW9uIgoJICAg ICAgZWNobyAiKioqIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcg dG8gcmVzb2x2ZSBzeW1ib2xzIGF0IHJ1bnRpbWUuIgoJICAgICAgaWYgdGVz dCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KCQllY2hvCgkJZWNo byAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRv b2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCgkJZWNobyAiKioqIGxp c3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50 LCBidXQgbGlidG9vbCBjb3VsZCIKCQllY2hvICIqKiogbm90IGZpbmQgc3Vj aCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNl bGVzcy4iCgkJZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFu ZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCgkgICAgICBmaQoJICAgICAg aWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCgkJYnVpbGRf bGlidG9vbF9saWJzPW1vZHVsZQoJCWJ1aWxkX29sZF9saWJzPXllcwoJICAg ICAgZWxzZQoJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwoJICAgICAgZmkKCSAg ICBmaQoJICBlbHNlCgkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkg JGRlcGxpYnMiCgkgICAgbGlua19zdGF0aWM9eWVzCgkgIGZpCglmaSAjIGxp bmsgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5PwoKCWlmIHRlc3QgIiRsaW5rbW9k ZSIgPSBsaWI7IHRoZW4KCSAgaWYgdGVzdCAtbiAiJGRlcGVuZGVuY3lfbGli cyIgJiYKCSAgICAgeyB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5 ZXMgfHwKCSAgICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzIHx8 CgkgICAgICAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IHllczsgfTsgdGhlbgoJ ICAgICMgRXh0cmFjdCAtUiBmcm9tIGRlcGVuZGVuY3lfbGlicwoJICAgIHRl bXBfZGVwbGlicz0KCSAgICBmb3IgbGliZGlyIGluICRkZXBlbmRlbmN5X2xp YnM7IGRvCgkgICAgICBjYXNlICRsaWJkaXIgaW4KCSAgICAgIC1SKikgZnVu Y19zdHJpcG5hbWUgJy1SJyAnJyAiJGxpYmRpciIKCSAgICAgICAgICAgdGVt cF94cnBhdGg9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJCSAgIGNhc2UgIiAk eHJwYXRoICIgaW4KCQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7CgkJICAg KikgeHJwYXRoKz0iICR0ZW1wX3hycGF0aCI7OwoJCSAgIGVzYWM7OwoJICAg ICAgKikgdGVtcF9kZXBsaWJzKz0iICRsaWJkaXIiOzsKCSAgICAgIGVzYWMK CSAgICBkb25lCgkgICAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJz IgoJICBmaQoKCSAgbmV3bGliX3NlYXJjaF9wYXRoKz0iICRhYnNkaXIiCgkg ICMgTGluayBhZ2FpbnN0IHRoaXMgbGlicmFyeQoJICB0ZXN0ICIkbGlua19z dGF0aWMiID0gbm8gJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkYWJzX2xhZGly LyRsYW5hbWUgJG5ld2RlcGVuZGVuY3lfbGlicyIKCSAgIyAuLi4gYW5kIGl0 cyBkZXBlbmRlbmN5X2xpYnMKCSAgdG1wX2xpYnM9CgkgIGZvciBkZXBsaWIg aW4gJGRlcGVuZGVuY3lfbGliczsgZG8KCSAgICBuZXdkZXBlbmRlbmN5X2xp YnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKCSAgICBjYXNlICRk ZXBsaWIgaW4KICAgICAgICAgICAgICAtTCopIGZ1bmNfc3RyaXBuYW1lICct TCcgJycgIiRkZXBsaWIiCiAgICAgICAgICAgICAgICAgICBmdW5jX3Jlc29s dmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCI7OwogICAgICAg ICAgICAgICopIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZGVwbGliIiA7Owog ICAgICAgICAgICBlc2FjCgkgICAgaWYgJG9wdF9wcmVzZXJ2ZV9kdXBfZGVw cyA7IHRoZW4KCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCgkgICAgICAq IiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0ICIqKQogICAgICAgICAg ICAgICAgc3BlY2lhbGRlcGxpYnMrPSIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290 X3Jlc3VsdCIgOzsKCSAgICAgIGVzYWMKCSAgICBmaQoJICAgIHRtcF9saWJz Kz0iICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCgkgIGRvbmUKCgkg IGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgoJICAg ICMgQWRkIHRoZSBzZWFyY2ggcGF0aHMgb2YgYWxsIGRlcGVuZGVuY3kgbGli cmFyaWVzCgkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBk bwoJICAgICAgcGF0aD0KCSAgICAgIGNhc2UgJGRlcGxpYiBpbgoJICAgICAg LUwqKSBwYXRoPSIkZGVwbGliIiA7OwoJICAgICAgKi5sYSkKCSAgICAgICAg ZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRkZXBsaWIiCgkgICAgICAgIGRlcGxp Yj0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CgkgICAgICAgIGZ1bmNf ZGlybmFtZSAiJGRlcGxpYiIgIiIgIi4iCgkJZGlyPSRmdW5jX2Rpcm5hbWVf cmVzdWx0CgkJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCgkJY2FzZSAk ZGlyIGluCgkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNkaXI9IiRk aXIiIDs7CgkJKikKCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKCQkg IGlmIHRlc3QgLXogIiRhYnNkaXIiOyB0aGVuCgkJICAgIGZ1bmNfd2Fybmlu ZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBv ZiBcYCRkaXInIgoJCSAgICBhYnNkaXI9IiRkaXIiCgkJICBmaQoJCSAgOzsK CQllc2FjCgkJaWYgJEdSRVAgIl5pbnN0YWxsZWQ9bm8iICRkZXBsaWIgPiAv ZGV2L251bGw7IHRoZW4KCQljYXNlICRob3N0IGluCgkJKi0qLWRhcndpbiop CgkJICBkZXBkZXBsPQoJCSAgZXZhbCBkZXBsaWJyYXJ5X25hbWVzPWAke1NF RH0gLW4gLWUgJ3MvXmxpYnJhcnlfbmFtZXM9XCguKlwpJC9cMS9wJyAkZGVw bGliYAoJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhl bgoJCSAgICBmb3IgdG1wIGluICRkZXBsaWJyYXJ5X25hbWVzIDsgZG8KCQkg ICAgICBkZXBkZXBsPSR0bXAKCQkgICAgZG9uZQoJCSAgICBpZiB0ZXN0IC1m ICIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiIDsgdGhlbgoJCSAgICAgIGRl cGRlcGw9IiRhYnNkaXIvJG9iamRpci8kZGVwZGVwbCIKCQkgICAgICBkYXJ3 aW5faW5zdGFsbF9uYW1lPWAke09UT09MfSAtTCAkZGVwZGVwbCB8IGF3ayAn e2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKICAgICAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgLXogIiRkYXJ3aW5faW5zdGFsbF9uYW1lIjsg dGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgIGRhcndpbl9pbnN0YWxs X25hbWU9YCR7T1RPT0w2NH0gLUwgJGRlcGRlcGwgIHwgYXdrICd7aWYgKE5S ID09IDIpIHtwcmludCAkMTtleGl0fX0nYAogICAgICAgICAgICAgICAgICAg ICAgZmkKCQkgICAgICBjb21waWxlcl9mbGFncys9IiAke3dsfS1keWxpYl9m aWxlICR7d2x9JHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgoJ CSAgICAgIGxpbmtlcl9mbGFncys9IiAtZHlsaWJfZmlsZSAke2Rhcndpbl9p bnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCgkJICAgICAgcGF0aD0KCQkgICAg ZmkKCQkgIGZpCgkJICA7OwoJCSopCgkJICBwYXRoPSItTCRhYnNkaXIvJG9i amRpciIKCQkgIDs7CgkJZXNhYwoJCWVsc2UKCQkgIGV2YWwgbGliZGlyPWAk e1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRkZXBsaWJg CgkJICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCgkJICAgIGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNo aXZlIgoJCSAgdGVzdCAiJGFic2RpciIgIT0gIiRsaWJkaXIiICYmIFwKCQkg ICAgZnVuY193YXJuaW5nICJcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVk IgoKCQkgIHBhdGg9Ii1MJGFic2RpciIKCQlmaQoJCTs7CgkgICAgICBlc2Fj CgkgICAgICBjYXNlICIgJGRlcGxpYnMgIiBpbgoJICAgICAgKiIgJHBhdGgg IiopIDs7CgkgICAgICAqKSBkZXBsaWJzPSIkcGF0aCAkZGVwbGlicyIgOzsK CSAgICAgIGVzYWMKCSAgICBkb25lCgkgIGZpICMgbGlua19hbGxfZGVwbGli cyAhPSBubwoJZmkgIyBsaW5rbW9kZSA9IGxpYgogICAgICBkb25lICMgZm9y IGRlcGxpYiBpbiAkbGlicwogICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBsaW5r OyB0aGVuCglpZiB0ZXN0ICIkbGlua21vZGUiID0gInByb2ciOyB0aGVuCgkg IGNvbXBpbGVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdz ICRjb21waWxlX2RlcGxpYnMiCgkgIGZpbmFsaXplX2RlcGxpYnM9IiRuZXdf aW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZmluYWxpemVfZGVwbGlicyIKCWVs c2UKCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAiYCRFQ0hP ICIgJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRTRUQgJ3MlIFwo W14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCglmaQog ICAgICBmaQogICAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5 X2xpYnMiCiAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbjsgdGhl bgoJIyBMaW5rIHRoZSBkbHByZW9wZW5lZCBsaWJyYXJpZXMgYmVmb3JlIG90 aGVyIGxpYnJhcmllcwoJZm9yIGRlcGxpYiBpbiAkc2F2ZV9kZXBsaWJzOyBk bwoJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgoJZG9uZQogICAgICBm aQogICAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gZGxvcGVuOyB0aGVuCglpZiB0 ZXN0ICIkcGFzcyIgIT0gY29udjsgdGhlbgoJICAjIE1ha2Ugc3VyZSBsaWJf c2VhcmNoX3BhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMu CgkgIGxpYl9zZWFyY2hfcGF0aD0KCSAgZm9yIGRpciBpbiAkbmV3bGliX3Nl YXJjaF9wYXRoOyBkbwoJICAgIGNhc2UgIiRsaWJfc2VhcmNoX3BhdGggIiBp bgoJICAgICoiICRkaXIgIiopIDs7CgkgICAgKikgbGliX3NlYXJjaF9wYXRo Kz0iICRkaXIiIDs7CgkgICAgZXNhYwoJICBkb25lCgkgIG5ld2xpYl9zZWFy Y2hfcGF0aD0KCWZpCgoJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiAhPSAi cHJvZyxsaW5rIjsgdGhlbgoJICB2YXJzPSJkZXBsaWJzIgoJZWxzZQoJICB2 YXJzPSJjb21waWxlX2RlcGxpYnMgZmluYWxpemVfZGVwbGlicyIKCWZpCglm b3IgdmFyIGluICR2YXJzIGRlcGVuZGVuY3lfbGliczsgZG8KCSAgIyBBZGQg bGlicmFyaWVzIHRvICR2YXIgaW4gcmV2ZXJzZSBvcmRlcgoJICBldmFsIHRt cF9saWJzPVwiXCQkdmFyXCIKCSAgbmV3X2xpYnM9CgkgIGZvciBkZXBsaWIg aW4gJHRtcF9saWJzOyBkbwoJICAgICMgRklYTUU6IFBlZGFudGljYWxseSwg dGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIHNvCgkgICAgIyAgICAg ICAgdGhhdCBzb21lIG5hc3R5IGRlcGVuZGVuY3kgbG9vcCBpc24ndCBhY2Np ZGVudGFsbHkKCSAgICAjICAgICAgICBicm9rZW46CgkgICAgI25ld19saWJz PSIkZGVwbGliICRuZXdfbGlicyIKCSAgICAjIFByYWdtYXRpY2FsbHksIHRo aXMgc2VlbXMgdG8gY2F1c2UgdmVyeSBmZXcgcHJvYmxlbXMgaW4KCSAgICAj IHByYWN0aWNlOgoJICAgIGNhc2UgJGRlcGxpYiBpbgoJICAgIC1MKikgbmV3 X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwoJICAgIC1SKikgOzsKCSAg ICAqKQoJICAgICAgIyBBbmQgaGVyZSBpcyB0aGUgcmVhc29uOiB3aGVuIGEg bGlicmFyeSBhcHBlYXJzIG1vcmUKCSAgICAgICMgdGhhbiBvbmNlIGFzIGFu IGV4cGxpY2l0IGRlcGVuZGVuY2Ugb2YgYSBsaWJyYXJ5LCBvcgoJICAgICAg IyBpcyBpbXBsaWNpdGx5IGxpbmtlZCBpbiBtb3JlIHRoYW4gb25jZSBieSB0 aGUKCSAgICAgICMgY29tcGlsZXIsIGl0IGlzIGNvbnNpZGVyZWQgc3BlY2lh bCwgYW5kIG11bHRpcGxlCgkgICAgICAjIG9jY3VycmVuY2VzIHRoZXJlb2Yg YXJlIG5vdCByZW1vdmVkLiAgQ29tcGFyZSB0aGlzCgkgICAgICAjIHdpdGgg aGF2aW5nIHRoZSBzYW1lIGxpYnJhcnkgYmVpbmcgbGlzdGVkIGFzIGEKCSAg ICAgICMgZGVwZW5kZW5jeSBvZiBtdWx0aXBsZSBvdGhlciBsaWJyYXJpZXM6 IGluIHRoaXMgY2FzZSwKCSAgICAgICMgd2Uga25vdyAocGVkYW50aWNhbGx5 LCB3ZSBhc3N1bWUpIHRoZSBsaWJyYXJ5IGRvZXMgbm90CgkgICAgICAjIG5l ZWQgdG8gYmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlLCBzbyB3ZSBrZWVwIG9u bHkgdGhlCgkgICAgICAjIGxhc3QgY29weS4gIFRoaXMgaXMgbm90IGFsd2F5 cyByaWdodCwgYnV0IGl0IGlzIHJhcmUKCSAgICAgICMgZW5vdWdoIHRoYXQg d2UgcmVxdWlyZSB1c2VycyB0aGF0IHJlYWxseSBtZWFuIHRvIHBsYXkKCSAg ICAgICMgc3VjaCB1bnBvcnRhYmxlIGxpbmtpbmcgdHJpY2tzIHRvIGxpbmsg dGhlIGxpYnJhcnkKCSAgICAgICMgdXNpbmcgLVdsLC1sbmFtZSwgc28gdGhh dCBsaWJ0b29sIGRvZXMgbm90IGNvbnNpZGVyIGl0CgkgICAgICAjIGZvciBk dXBsaWNhdGUgcmVtb3ZhbC4KCSAgICAgIGNhc2UgIiAkc3BlY2lhbGRlcGxp YnMgIiBpbgoJICAgICAgKiIgJGRlcGxpYiAiKikgbmV3X2xpYnM9IiRkZXBs aWIgJG5ld19saWJzIiA7OwoJICAgICAgKikKCQljYXNlICIgJG5ld19saWJz ICIgaW4KCQkqIiAkZGVwbGliICIqKSA7OwoJCSopIG5ld19saWJzPSIkZGVw bGliICRuZXdfbGlicyIgOzsKCQllc2FjCgkJOzsKCSAgICAgIGVzYWMKCSAg ICAgIDs7CgkgICAgZXNhYwoJICBkb25lCgkgIHRtcF9saWJzPQoJICBmb3Ig ZGVwbGliIGluICRuZXdfbGliczsgZG8KCSAgICBjYXNlICRkZXBsaWIgaW4K CSAgICAtTCopCgkgICAgICBjYXNlICIgJHRtcF9saWJzICIgaW4KCSAgICAg ICoiICRkZXBsaWIgIiopIDs7CgkgICAgICAqKSB0bXBfbGlicys9IiAkZGVw bGliIiA7OwoJICAgICAgZXNhYwoJICAgICAgOzsKCSAgICAqKSB0bXBfbGli cys9IiAkZGVwbGliIiA7OwoJICAgIGVzYWMKCSAgZG9uZQoJICBldmFsICR2 YXI9XCIkdG1wX2xpYnNcIgoJZG9uZSAjIGZvciB2YXIKICAgICAgZmkKICAg ICAgIyBMYXN0IHN0ZXA6IHJlbW92ZSBydW50aW1lIGxpYnMgZnJvbSBkZXBl bmRlbmN5X2xpYnMKICAgICAgIyAodGhleSBzdGF5IGluIGRlcGxpYnMpCiAg ICAgIHRtcF9saWJzPQogICAgICBmb3IgaSBpbiAkZGVwZW5kZW5jeV9saWJz IDsgZG8KCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgJGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCAiIGluCgkqIiAkaSAiKikKCSAgaT0iIgoJICA7OwoJ ZXNhYwoJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgoJICB0bXBfbGlicys9IiAk aSIKCWZpCiAgICAgIGRvbmUKICAgICAgZGVwZW5kZW5jeV9saWJzPSR0bXBf bGlicwogICAgZG9uZSAjIGZvciBwYXNzCiAgICBpZiB0ZXN0ICIkbGlua21v ZGUiID0gcHJvZzsgdGhlbgogICAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIK ICAgIGZpCiAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0 ICIkbGlua21vZGUiID0gbGliOyB0aGVuCiAgICAgIGRscHJlZmlsZXM9IiRu ZXdkbHByZWZpbGVzIgogICAgZmkKCiAgICBjYXNlICRsaW5rbW9kZSBpbgog ICAgb2xkbGliKQogICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZp bGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgoJZnVuY193YXJu aW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgogICAg ICBmaQoKICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgogICAgICAqXCAtbCog fCAqXCAtTCopCglmdW5jX3dhcm5pbmcgIlxgLWwnIGFuZCBcYC1MJyBhcmUg aWdub3JlZCBmb3IgYXJjaGl2ZXMiIDs7CiAgICAgIGVzYWMKCiAgICAgIHRl c3QgLW4gIiRycGF0aCIgJiYgXAoJZnVuY193YXJuaW5nICJcYC1ycGF0aCcg aXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCgogICAgICB0ZXN0IC1uICIkeHJw YXRoIiAmJiBcCglmdW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9y IGFyY2hpdmVzIgoKICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCglmdW5j X3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlz IGlnbm9yZWQgZm9yIGFyY2hpdmVzIgoKICAgICAgdGVzdCAtbiAiJHJlbGVh c2UiICYmIFwKCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3Jl ZCBmb3IgYXJjaGl2ZXMiCgogICAgICB0ZXN0IC1uICIkZXhwb3J0X3N5bWJv bHMkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmIFwKCWZ1bmNfd2FybmluZyAi XGAtZXhwb3J0LXN5bWJvbHMnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgoK ICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9s ZCBsaWJyYXJpZXMuCiAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwogICAg ICBvbGRsaWJzPSIkb3V0cHV0IgogICAgICBvYmpzKz0iJG9sZF9kZXBsaWJz IgogICAgICA7OwoKICAgIGxpYikKICAgICAgIyBNYWtlIHN1cmUgd2Ugb25s eSBnZW5lcmF0ZSBsaWJyYXJpZXMgb2YgdGhlIGZvcm0gYGxpYk5BTUUubGEn LgogICAgICBjYXNlICRvdXRwdXRuYW1lIGluCiAgICAgIGxpYiopCglmdW5j X3N0cmlwbmFtZSAnbGliJyAnLmxhJyAiJG91dHB1dG5hbWUiCgluYW1lPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJl eHRfY21kc1wiCglldmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVjXCIKCTs7 CiAgICAgICopCgl0ZXN0ICIkbW9kdWxlIiA9IG5vICYmIFwKCSAgZnVuY19m YXRhbF9oZWxwICJsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBtdXN0IGJl Z2luIHdpdGggXGBsaWInIgoKCWlmIHRlc3QgIiRuZWVkX2xpYl9wcmVmaXgi ICE9IG5vOyB0aGVuCgkgICMgQWRkIHRoZSAibGliIiBwcmVmaXggZm9yIG1v ZHVsZXMgaWYgcmVxdWlyZWQKCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScg IiRvdXRwdXRuYW1lIgoJICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQK CSAgZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKCSAgZXZhbCBs aWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCgllbHNlCgkgIGZ1bmNfc3RyaXBu YW1lICcnICcubGEnICIkb3V0cHV0bmFtZSIKCSAgbGlibmFtZT0kZnVuY19z dHJpcG5hbWVfcmVzdWx0CglmaQoJOzsKICAgICAgZXNhYwoKICAgICAgaWYg dGVzdCAtbiAiJG9ianMiOyB0aGVuCglpZiB0ZXN0ICIkZGVwbGlic19jaGVj a19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCgkgIGZ1bmNfZmF0YWxfZXJy b3IgImNhbm5vdCBidWlsZCBsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBm cm9tIG5vbi1saWJ0b29sIG9iamVjdHMgb24gdGhpcyBob3N0OiRvYmpzIgoJ ZWxzZQoJICBlY2hvCgkgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0 aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBub24tbGli dG9vbCIKCSAgJEVDSE8gIioqKiBvYmplY3RzICRvYmpzIGlzIG5vdCBwb3J0 YWJsZSEiCgkgIGxpYm9ianMrPSIgJG9ianMiCglmaQogICAgICBmaQoKICAg ICAgdGVzdCAiJGRsc2VsZiIgIT0gbm8gJiYgXAoJZnVuY193YXJuaW5nICJc YC1kbG9wZW4gc2VsZicgaXMgaWdub3JlZCBmb3IgbGlidG9vbCBsaWJyYXJp ZXMiCgogICAgICBzZXQgZHVtbXkgJHJwYXRoCiAgICAgIHNoaWZ0CiAgICAg IHRlc3QgIiQjIiAtZ3QgMSAmJiBcCglmdW5jX3dhcm5pbmcgImlnbm9yaW5n IG11bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IgoK ICAgICAgaW5zdGFsbF9saWJkaXI9IiQxIgoKICAgICAgb2xkbGlicz0KICAg ICAgaWYgdGVzdCAteiAiJHJwYXRoIjsgdGhlbgoJaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KCSAgIyBCdWlsZGluZyBhIGxp YnRvb2wgY29udmVuaWVuY2UgbGlicmFyeS4KCSAgIyBTb21lIGNvbXBpbGVy cyBoYXZlIHByb2JsZW1zIHdpdGggYSBgLmFsJyBleHRlbnNpb24gc28KCSAg IyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUg ZXh0ZW5zaW9uIGFuCgkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3VsZC4KCSAg b2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCAkb2xk bGlicyIKCSAgYnVpbGRfbGlidG9vbF9saWJzPWNvbnZlbmllbmNlCgkgIGJ1 aWxkX29sZF9saWJzPXllcwoJZmkKCgl0ZXN0IC1uICIkdmluZm8iICYmIFwK CSAgZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVt YmVyJyBpcyBpZ25vcmVkIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMiCgoJ dGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKCSAgZnVuY193YXJuaW5nICJcYC1y ZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMi CiAgICAgIGVsc2UKCgkjIFBhcnNlIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9u IGFyZ3VtZW50LgoJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JzonCglzZXQgZHVt bXkgJHZpbmZvIDAgMCAwCglzaGlmdAoJSUZTPSIkc2F2ZV9pZnMiCgoJdGVz dCAtbiAiJDciICYmIFwKCSAgZnVuY19mYXRhbF9oZWxwICJ0b28gbWFueSBw YXJhbWV0ZXJzIHRvIFxgLXZlcnNpb24taW5mbyciCgoJIyBjb252ZXJ0IGFi c29sdXRlIHZlcnNpb24gbnVtYmVycyB0byBsaWJ0b29sIGFnZXMKCSMgdGhp cyByZXRhaW5zIGNvbXBhdGliaWxpdHkgd2l0aCAubGEgZmlsZXMgYW5kIGF0 dGVtcHRzCgkjIHRvIG1ha2UgdGhlIGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBj b21wcmVoZW5zaWJsZQoKCWNhc2UgJHZpbmZvX251bWJlciBpbgoJeWVzKQoJ ICBudW1iZXJfbWFqb3I9IiQxIgoJICBudW1iZXJfbWlub3I9IiQyIgoJICBu dW1iZXJfcmV2aXNpb249IiQzIgoJICAjCgkgICMgVGhlcmUgYXJlIHJlYWxs eSBvbmx5IHR3byBraW5kcyAtLSB0aG9zZSB0aGF0CgkgICMgdXNlIHRoZSBj dXJyZW50IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCgkgICMgYW5k IHRob3NlIHRoYXQgc3VidHJhY3QgYWdlIGFuZCB1c2UgYWdlIGFzCgkgICMg YSBtaW5vciB2ZXJzaW9uLiAgQnV0LCB0aGVuIHRoZXJlIGlzIGlyaXgKCSAg IyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KCSAg IwoJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KCSAgIyBjb3JyZWN0IGxpbnV4 IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCgkg IGRhcndpbnxsaW51eHxvc2Z8d2luZG93c3xub25lKQoJICAgIGZ1bmNfYXJp dGggJG51bWJlcl9tYWpvciArICRudW1iZXJfbWlub3IKCSAgICBjdXJyZW50 PSRmdW5jX2FyaXRoX3Jlc3VsdAoJICAgIGFnZT0iJG51bWJlcl9taW5vciIK CSAgICByZXZpc2lvbj0iJG51bWJlcl9yZXZpc2lvbiIKCSAgICA7OwoJICBm cmVlYnNkLWFvdXR8ZnJlZWJzZC1lbGZ8cW54fHN1bm9zKQoJICAgIGN1cnJl bnQ9IiRudW1iZXJfbWFqb3IiCgkgICAgcmV2aXNpb249IiRudW1iZXJfbWlu b3IiCgkgICAgYWdlPSIwIgoJICAgIDs7CgkgIGlyaXh8bm9uc3RvcHV4KQoJ ICAgIGZ1bmNfYXJpdGggJG51bWJlcl9tYWpvciArICRudW1iZXJfbWlub3IK CSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAoJICAgIGFnZT0iJG51 bWJlcl9taW5vciIKCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIKCSAg ICBsdF9pcml4X2luY3JlbWVudD1ubwoJICAgIDs7CgkgIGVzYWMKCSAgOzsK CW5vKQoJICBjdXJyZW50PSIkMSIKCSAgcmV2aXNpb249IiQyIgoJICBhZ2U9 IiQzIgoJICA7OwoJZXNhYwoKCSMgQ2hlY2sgdGhhdCBlYWNoIG9mIHRoZSB0 aGluZ3MgYXJlIHZhbGlkIG51bWJlcnMuCgljYXNlICRjdXJyZW50IGluCgkw fFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1b MC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7CgkqKQoJ ICBmdW5jX2Vycm9yICJDVVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBu b25uZWdhdGl2ZSBpbnRlZ2VyIgoJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2 aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCgkgIDs7 Cgllc2FjCgoJY2FzZSAkcmV2aXNpb24gaW4KCTB8WzEtOV18WzEtOV1bMC05 XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1b MC05XVswLTldWzAtOV1bMC05XSkgOzsKCSopCgkgIGZ1bmNfZXJyb3IgIlJF VklTSU9OIFxgJHJldmlzaW9uJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50 ZWdlciIKCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2 YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgoJICA7OwoJZXNhYwoKCWNhc2Ug JGFnZSBpbgoJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxb MS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTld KSA7OwoJKikKCSAgZnVuY19lcnJvciAiQUdFIFxgJGFnZScgbXVzdCBiZSBh IG5vbm5lZ2F0aXZlIGludGVnZXIiCgkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxg JHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKCSAg OzsKCWVzYWMKCglpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50IjsgdGhl bgoJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdlJyBpcyBncmVhdGVyIHRoYW4g dGhlIGN1cnJlbnQgaW50ZXJmYWNlIG51bWJlciBcYCRjdXJyZW50JyIKCSAg ZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJz aW9uIGluZm9ybWF0aW9uIgoJZmkKCgkjIENhbGN1bGF0ZSB0aGUgdmVyc2lv biB2YXJpYWJsZXMuCgltYWpvcj0KCXZlcnN1ZmZpeD0KCXZlcnN0cmluZz0K CWNhc2UgJHZlcnNpb25fdHlwZSBpbgoJbm9uZSkgOzsKCglkYXJ3aW4pCgkg ICMgTGlrZSBMaW51eCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBh dmFpbGFibGUgaW4KCSAgIyB2ZXJzdHJpbmcgZm9yIGNvZGluZyBpdCBpbnRv IHRoZSBsaWJyYXJ5IGhlYWRlcgoJICBmdW5jX2FyaXRoICRjdXJyZW50IC0g JGFnZQoJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVzdWx0CgkgIHZlcnN1ZmZp eD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgoJICAjIERhcndpbiBsZCBkb2Vz bid0IGxpa2UgMCBmb3IgdGhlc2Ugb3B0aW9ucy4uLgoJICBmdW5jX2FyaXRo ICRjdXJyZW50ICsgMQoJICBtaW5vcl9jdXJyZW50PSRmdW5jX2FyaXRoX3Jl c3VsdAoJICB4bGN2ZXJzdHJpbmc9IiR7d2x9LWNvbXBhdGliaWxpdHlfdmVy c2lvbiAke3dsfSRtaW5vcl9jdXJyZW50ICR7d2x9LWN1cnJlbnRfdmVyc2lv biAke3dsfSRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKCSAgdmVyc3RyaW5n PSItY29tcGF0aWJpbGl0eV92ZXJzaW9uICRtaW5vcl9jdXJyZW50IC1jdXJy ZW50X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgoJICA7OwoK CWZyZWVic2QtYW91dCkKCSAgbWFqb3I9Ii4kY3VycmVudCIKCSAgdmVyc3Vm Zml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIjsKCSAgOzsKCglmcmVlYnNkLWVs ZikKCSAgbWFqb3I9Ii4kY3VycmVudCIKCSAgdmVyc3VmZml4PSIuJGN1cnJl bnQiCgkgIDs7CgoJaXJpeCB8IG5vbnN0b3B1eCkKCSAgaWYgdGVzdCAiWCRs dF9pcml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgoJICAgIGZ1bmNfYXJp dGggJGN1cnJlbnQgLSAkYWdlCgkgIGVsc2UKCSAgICBmdW5jX2FyaXRoICRj dXJyZW50IC0gJGFnZSArIDEKCSAgZmkKCSAgbWFqb3I9JGZ1bmNfYXJpdGhf cmVzdWx0CgoJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KCSAgICBub25zdG9w dXgpIHZlcnN0cmluZ19wcmVmaXg9bm9uc3RvcHV4IDs7CgkgICAgKikgICAg ICAgICB2ZXJzdHJpbmdfcHJlZml4PXNnaSA7OwoJICBlc2FjCgkgIHZlcnN0 cmluZz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJHJldmlzaW9uIgoKCSAg IyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBh dGlibGUgd2l0aC4KCSAgbG9vcD0kcmV2aXNpb24KCSAgd2hpbGUgdGVzdCAi JGxvb3AiIC1uZSAwOyBkbwoJICAgIGZ1bmNfYXJpdGggJHJldmlzaW9uIC0g JGxvb3AKCSAgICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKCSAgICBmdW5j X2FyaXRoICRsb29wIC0gMQoJICAgIGxvb3A9JGZ1bmNfYXJpdGhfcmVzdWx0 CgkgICAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kaWZh Y2U6JHZlcnN0cmluZyIKCSAgZG9uZQoKCSAgIyBCZWZvcmUgdGhpcyBwb2lu dCwgJG1ham9yIG11c3Qgbm90IGNvbnRhaW4gYC4nLgoJICBtYWpvcj0uJG1h am9yCgkgIHZlcnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lvbiIKCSAgOzsKCgls aW51eCkgIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQg YmlnIHJlZmFjdG9yCgkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCgkg IG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKCSAgdmVyc3VmZml4PSIkbWFq b3IuJGFnZS4kcmV2aXNpb24iCgkgIDs7CgoJb3NmKQoJICBmdW5jX2FyaXRo ICRjdXJyZW50IC0gJGFnZQoJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVzdWx0 CgkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgoJICB2 ZXJzdHJpbmc9IiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgoKCSAgIyBBZGQg aW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUg d2l0aC4KCSAgbG9vcD0kYWdlCgkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUg MDsgZG8KCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGxvb3AKCSAgICBp ZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKCSAgICBmdW5jX2FyaXRoICRsb29w IC0gMQoJICAgIGxvb3A9JGZ1bmNfYXJpdGhfcmVzdWx0CgkgICAgdmVyc3Ry aW5nPSIkdmVyc3RyaW5nOiR7aWZhY2V9LjAiCgkgIGRvbmUKCgkgICMgTWFr ZSBleGVjdXRhYmxlcyBkZXBlbmQgb24gb3VyIGN1cnJlbnQgdmVyc2lvbi4K CSAgdmVyc3RyaW5nKz0iOiR7Y3VycmVudH0uMCIKCSAgOzsKCglxbngpCgkg IG1ham9yPSIuJGN1cnJlbnQiCgkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50IgoJ ICA7OwoKCXN1bm9zKQoJICBtYWpvcj0iLiRjdXJyZW50IgoJICB2ZXJzdWZm aXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCgkgIDs7CgoJd2luZG93cykKCSAg IyBVc2UgJy0nIHJhdGhlciB0aGFuICcuJywgc2luY2Ugd2Ugb25seSB3YW50 IG9uZQoJICAjIGV4dGVuc2lvbiBvbiBET1MgOC4zIGZpbGVzeXN0ZW1zLgoJ ICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQoJICBtYWpvcj0kZnVuY19h cml0aF9yZXN1bHQKCSAgdmVyc3VmZml4PSItJG1ham9yIgoJICA7OwoKCSop CgkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAidW5rbm93biBsaWJyYXJ5 IHZlcnNpb24gdHlwZSBcYCR2ZXJzaW9uX3R5cGUnIgoJICA7OwoJZXNhYwoK CSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBpZiB3ZSBkZWZhdWx0ZWQsIGFu ZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVhc2UuCglpZiB0ZXN0IC16ICIkdmlu Zm8iICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgoJICBtYWpvcj0KCSAg Y2FzZSAkdmVyc2lvbl90eXBlIGluCgkgIGRhcndpbikKCSAgICAjIHdlIGNh bid0IGNoZWNrIGZvciAiMC4wIiBpbiBhcmNoaXZlX2NtZHMgZHVlIHRvIHF1 b3RpbmcKCSAgICAjIHByb2JsZW1zLCBzbyB3ZSByZXNldCBpdCBjb21wbGV0 ZWx5CgkgICAgdmVyc3RyaW5nPQoJICAgIDs7CgkgICopCgkgICAgdmVyc3Ry aW5nPSIwLjAiCgkgICAgOzsKCSAgZXNhYwoJICBpZiB0ZXN0ICIkbmVlZF92 ZXJzaW9uIiA9IG5vOyB0aGVuCgkgICAgdmVyc3VmZml4PQoJICBlbHNlCgkg ICAgdmVyc3VmZml4PSIuMC4wIgoJICBmaQoJZmkKCgkjIFJlbW92ZSB2ZXJz aW9uIGluZm8gZnJvbSBuYW1lIGlmIHZlcnNpb25pbmcgc2hvdWxkIGJlIGF2 b2lkZWQKCWlmIHRlc3QgIiRhdm9pZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0 ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCgkgIG1ham9yPQoJICB2ZXJz dWZmaXg9CgkgIHZlcnN0cmluZz0iIgoJZmkKCgkjIENoZWNrIHRvIHNlZSBp ZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5kZWZpbmVkIHN5bWJvbHMuCglp ZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IHllczsgdGhlbgoJICBpZiB0 ZXN0ICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWciID0gdW5zdXBwb3J0ZWQ7IHRo ZW4KCSAgICBmdW5jX3dhcm5pbmcgInVuZGVmaW5lZCBzeW1ib2xzIG5vdCBh bGxvd2VkIGluICRob3N0IHNoYXJlZCBsaWJyYXJpZXMiCgkgICAgYnVpbGRf bGlidG9vbF9saWJzPW5vCgkgICAgYnVpbGRfb2xkX2xpYnM9eWVzCgkgIGZp CgllbHNlCgkgICMgRG9uJ3QgYWxsb3cgdW5kZWZpbmVkIHN5bWJvbHMuCgkg IGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVkX2ZsYWciCglm aQoKICAgICAgZmkKCiAgICAgIGZ1bmNfZ2VuZXJhdGVfZGxzeW1zICIkbGli bmFtZSIgIiRsaWJuYW1lIiAieWVzIgogICAgICBsaWJvYmpzKz0iICRzeW1m aWxlb2JqIgogICAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJv YmpzPQoKICAgICAgaWYgdGVzdCAiJG9wdF9tb2RlIiAhPSByZWxpbms7IHRo ZW4KCSMgUmVtb3ZlIG91ciBvdXRwdXRzLCBidXQgZG9uJ3QgcmVtb3ZlIG9i amVjdCBmaWxlcyBzaW5jZSB0aGV5CgkjIG1heSBoYXZlIGJlZW4gY3JlYXRl ZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KCXJlbW92ZWxpc3Q9Cgl0 ZW1wcmVtb3ZlbGlzdD1gJEVDSE8gIiRvdXRwdXRfb2JqZGlyLyoiYAoJZm9y IHAgaW4gJHRlbXByZW1vdmVsaXN0OyBkbwoJICBjYXNlICRwIGluCgkgICAg Ki4kb2JqZXh0IHwgKi5nY25vKQoJICAgICAgIDs7CgkgICAgJG91dHB1dF9v YmpkaXIvJG91dHB1dG5hbWUgfCAkb3V0cHV0X29iamRpci8kbGlibmFtZS4q IHwgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfSR7cmVsZWFzZX0uKikKCSAg ICAgICBpZiB0ZXN0ICJYJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiAhPSAiWCI7 IHRoZW4KCQkgaWYgJEVDSE8gIiRwIiB8ICRFR1JFUCAtZSAiJHByZWNpb3Vz X2ZpbGVzX3JlZ2V4IiA+L2Rldi9udWxsIDI+JjEKCQkgdGhlbgoJCSAgIGNv bnRpbnVlCgkJIGZpCgkgICAgICAgZmkKCSAgICAgICByZW1vdmVsaXN0Kz0i ICRwIgoJICAgICAgIDs7CgkgICAgKikgOzsKCSAgZXNhYwoJZG9uZQoJdGVz dCAtbiAiJHJlbW92ZWxpc3QiICYmIFwKCSAgZnVuY19zaG93X2V2YWwgIiR7 Uk19ciBcJHJlbW92ZWxpc3QiCiAgICAgIGZpCgogICAgICAjIE5vdyBzZXQg dGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KICAg ICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiB0ZXN0ICIk YnVpbGRfbGlidG9vbF9saWJzIiAhPSBjb252ZW5pZW5jZSA7IHRoZW4KCW9s ZGxpYnMrPSIgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKCgkj IFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCglvbGRvYmpzPSIk b2JqcyAiYCRFQ0hPICIkbGlib2JqcyIgfCAkU1AyTkwgfCAkU0VEICIvXC4k e2xpYmV4dH0kL2Q7ICRsbzJvIiB8ICROTDJTUGAKICAgICAgZmkKCiAgICAg ICMgRWxpbWluYXRlIGFsbCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMuCiAgICAg ICNmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbwogICAgICAjCWxpYl9z ZWFyY2hfcGF0aD1gJEVDSE8gIiRsaWJfc2VhcmNoX3BhdGggIiB8ICRTRUQg InMlICRwYXRoICUgJWciYAogICAgICAjCWRlcGxpYnM9YCRFQ0hPICIkZGVw bGlicyAiIHwgJFNFRCAicyUgLUwkcGF0aCAlICVnImAKICAgICAgIwlkZXBl bmRlbmN5X2xpYnM9YCRFQ0hPICIkZGVwZW5kZW5jeV9saWJzICIgfCAkU0VE ICJzJSAtTCRwYXRoICUgJWciYAogICAgICAjZG9uZQoKICAgICAgaWYgdGVz dCAtbiAiJHhycGF0aCI7IHRoZW4KCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVk IGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KCXRlbXBfeHJwYXRo PQoJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBkbwoJICBmdW5jX3JlcGxhY2Vf c3lzcm9vdCAiJGxpYmRpciIKCSAgdGVtcF94cnBhdGgrPSIgLVIkZnVuY19y ZXBsYWNlX3N5c3Jvb3RfcmVzdWx0IgoJICBjYXNlICIkZmluYWxpemVfcnBh dGggIiBpbgoJICAqIiAkbGliZGlyICIqKSA7OwoJICAqKSBmaW5hbGl6ZV9y cGF0aCs9IiAkbGliZGlyIiA7OwoJICBlc2FjCglkb25lCglpZiB0ZXN0ICIk aGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMgfHwgdGVzdCAiJGJ1aWxkX29s ZF9saWJzIiA9IHllczsgdGhlbgoJICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1w X3hycGF0aCAkZGVwZW5kZW5jeV9saWJzIgoJZmkKICAgICAgZmkKCiAgICAg ICMgTWFrZSBzdXJlIGRsZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmls ZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5lZAogICAgICBvbGRfZGxmaWxl cz0iJGRsZmlsZXMiCiAgICAgIGRsZmlsZXM9CiAgICAgIGZvciBsaWIgaW4g JG9sZF9kbGZpbGVzOyBkbwoJY2FzZSAiICRkbHByZWZpbGVzICRkbGZpbGVz ICIgaW4KCSoiICRsaWIgIiopIDs7CgkqKSBkbGZpbGVzKz0iICRsaWIiIDs7 Cgllc2FjCiAgICAgIGRvbmUKCiAgICAgICMgTWFrZSBzdXJlIGRscHJlZmls ZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKICAgICAgb2xkX2RscHJl ZmlsZXM9IiRkbHByZWZpbGVzIgogICAgICBkbHByZWZpbGVzPQogICAgICBm b3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsgZG8KCWNhc2UgIiRkbHByZWZp bGVzICIgaW4KCSoiICRsaWIgIiopIDs7CgkqKSBkbHByZWZpbGVzKz0iICRs aWIiIDs7Cgllc2FjCiAgICAgIGRvbmUKCiAgICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCglpZiB0ZXN0IC1uICIkcnBh dGgiOyB0aGVuCgkgIGNhc2UgJGhvc3QgaW4KCSAgKi0qLWN5Z3dpbiogfCAq LSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotYmVvcyog fCAqLWNlZ2NjKiB8ICotKi1oYWlrdSopCgkgICAgIyB0aGVzZSBzeXN0ZW1z IGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQoJ ICAgIDs7CgkgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkK CSAgICAjIFJoYXBzb2R5IEMgbGlicmFyeSBpcyBpbiB0aGUgU3lzdGVtIGZy YW1ld29yawoJICAgIGRlcGxpYnMrPSIgU3lzdGVtLmx0ZnJhbWV3b3JrIgoJ ICAgIDs7CgkgICotKi1uZXRic2QqKQoJICAgICMgRG9uJ3QgbGluayB3aXRo IGxpYmMgdW50aWwgdGhlIGEub3V0IGxkLnNvIGlzIGZpeGVkLgoJICAgIDs7 CgkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25m bHkqKQoJICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2 aW5nIGxpYmMvbGliY19yLgoJICAgIDs7CgkgICotKi1zY28zLjJ2NSogfCAq LSotc2NvNXY2KikKCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5 cGUKCSAgICA7OwoJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwg Ki0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCgkgICAgIyBDb21waWxl ciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVh ZHMgdG8gd29yawoJICAgIDs7CgkgICopCgkgICAgIyBBZGQgbGliYyB0byBk ZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0ZW1zIGlmIG5lY2Vzc2FyeS4KCSAg ICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9uZWVkX2xjIiA9ICJ5ZXMiOyB0 aGVuCgkgICAgICBkZXBsaWJzKz0iIC1sYyIKCSAgICBmaQoJICAgIDs7Cgkg IGVzYWMKCWZpCgoJIyBUcmFuc2Zvcm0gZGVwbGlicyBpbnRvIG9ubHkgZGVw bGlicyB0aGF0IGNhbiBiZSBsaW5rZWQgaW4gc2hhcmVkLgoJbmFtZV9zYXZl PSRuYW1lCglsaWJuYW1lX3NhdmU9JGxpYm5hbWUKCXJlbGVhc2Vfc2F2ZT0k cmVsZWFzZQoJdmVyc3VmZml4X3NhdmU9JHZlcnN1ZmZpeAoJbWFqb3Jfc2F2 ZT0kbWFqb3IKCSMgSSdtIG5vdCBzdXJlIGlmIEknbSB0cmVhdGluZyB0aGUg cmVsZWFzZSBjb3JyZWN0bHkuICBJIHRoaW5rCgkjIHJlbGVhc2Ugc2hvdWxk IHNob3cgdXAgaW4gdGhlIC1sIChpZSAtbGdtcDUpIHNvIHdlIGRvbid0IHdh bnQgdG8KCSMgYWRkIGl0IGluIHR3aWNlLiAgSXMgdGhhdCBjb3JyZWN0PwoJ cmVsZWFzZT0iIgoJdmVyc3VmZml4PSIiCgltYWpvcj0iIgoJbmV3ZGVwbGli cz0KCWRyb3BwZWRkZXBzPW5vCgljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhv ZCBpbgoJcGFzc19hbGwpCgkgICMgRG9uJ3QgY2hlY2sgZm9yIHNoYXJlZC9z dGF0aWMuICBFdmVyeXRoaW5nIHdvcmtzLgoJICAjIFRoaXMgbWlnaHQgYmUg YSBsaXR0bGUgbmFpdmUuICBXZSBtaWdodCB3YW50IHRvIGNoZWNrCgkgICMg d2hldGhlciB0aGUgbGlicmFyeSBleGlzdHMgb3Igbm90LiAgQnV0IHRoaXMg aXMgb24KCSAgIyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFsbHkgc3Vy ZS4uLiBKdXN0CgkgICMgaW1wbGVtZW50aW5nIHdoYXQgd2FzIGFscmVhZHkg dGhlIGJlaGF2aW9yLgoJICBuZXdkZXBsaWJzPSRkZXBsaWJzCgkgIDs7Cgl0 ZXN0X2NvbXBpbGUpCgkgICMgVGhpcyBjb2RlIHN0cmVzc2VzIHRoZSAibGli cmFyaWVzIGFyZSBwcm9ncmFtcyIgcGFyYWRpZ20gdG8gaXRzCgkgICMgbGlt aXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBpbGUgYSBwcm9n cmFtLCBsaW5raW5nIGl0CgkgICMgYWdhaW5zdCB0aGUgZGVwbGlicyBhcyBh IHByb3h5IGZvciB0aGUgbGlicmFyeS4gIFRoZW4gd2UgY2FuIGNoZWNrCgkg ICMgd2hldGhlciB0aGV5IGxpbmtlZCBpbiBzdGF0aWNhbGx5IG9yIGR5bmFt aWNhbGx5IHdpdGggbGRkLgoJICAkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0 ZXN0LmMKCSAgY2F0ID4gY29uZnRlc3QuYyA8PEVPRgoJICBpbnQgbWFpbigp IHsgcmV0dXJuIDA7IH0KRU9GCgkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29u ZnRlc3QKCSAgaWYgJExUQ0MgJExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0 ZXN0LmMgJGRlcGxpYnM7IHRoZW4KCSAgICBsZGRfb3V0cHV0PWBsZGQgY29u ZnRlc3RgCgkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCgkgICAgICBjYXNl ICRpIGluCgkgICAgICAtbCopCgkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRp IgoJCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJCWlmIHRlc3QgIlgk YWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJY eWVzIiA7IHRoZW4KCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBp bgoJCSAgKiIgJGkgIiopCgkJICAgIG5ld2RlcGxpYnMrPSIgJGkiCgkJICAg IGk9IiIKCQkgICAgOzsKCQkgIGVzYWMKCQlmaQoJCWlmIHRlc3QgLW4gIiRp IiA7IHRoZW4KCQkgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFt ZV9zcGVjXCIiYAoJCSAgZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8g XCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAoJCSAgc2V0IGR1bW15ICRkZXBs aWJfbWF0Y2hlczsgc2hpZnQKCQkgIGRlcGxpYl9tYXRjaD0kMQoJCSAgaWYg dGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJg IC1uZSAwIDsgdGhlbgoJCSAgICBuZXdkZXBsaWJzKz0iICRpIgoJCSAgZWxz ZQoJCSAgICBkcm9wcGVkZGVwcz15ZXMKCQkgICAgZWNobwoJCSAgICAkRUNI TyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2Vw dCBuZWVkZWQgbGlicmFyeSAkaS4iCgkJICAgIGVjaG8gIioqKiBJIGhhdmUg dGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGlj YWxseSBsaW5rIGluIHdoZW4iCgkJICAgIGVjaG8gIioqKiB5b3UgbGluayB0 byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlv dSBoYXZlIGEiCgkJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0 aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2ZSIK CQkgICAgZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJl dmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgaXQgZm9yIgoJCSAg ICBlY2hvICIqKiogaXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQg cHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCgkJICBm aQoJCWZpCgkJOzsKCSAgICAgICopCgkJbmV3ZGVwbGlicys9IiAkaSIKCQk7 OwoJICAgICAgZXNhYwoJICAgIGRvbmUKCSAgZWxzZQoJICAgICMgRXJyb3Ig b2NjdXJyZWQgaW4gdGhlIGZpcnN0IGNvbXBpbGUuICBMZXQncyB0cnkgdG8g c2FsdmFnZQoJICAgICMgdGhlIHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFy YXRlIHByb2dyYW0gZm9yIGVhY2ggbGlicmFyeS4KCSAgICBmb3IgaSBpbiAk ZGVwbGliczsgZG8KCSAgICAgIGNhc2UgJGkgaW4KCSAgICAgIC1sKikKCQlm dW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCgkJbmFtZT0kZnVuY19zdHJpcG5h bWVfcmVzdWx0CgkJJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdAoJCWlm ICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jICRpOyB0 aGVuCgkJICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCgkJICBpZiB0ZXN0 ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIg PSAiWHllcyIgOyB0aGVuCgkJICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRl cHMgIiBpbgoJCSAgICAqIiAkaSAiKikKCQkgICAgICBuZXdkZXBsaWJzKz0i ICRpIgoJCSAgICAgIGk9IiIKCQkgICAgICA7OwoJCSAgICBlc2FjCgkJICBm aQoJCSAgaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgoJCSAgICBsaWJuYW1lPWBl dmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKCQkgICAgZGVwbGli X21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVj XCIiYAoJCSAgICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBzaGlmdAoJ CSAgICBkZXBsaWJfbWF0Y2g9JDEKCQkgICAgaWYgdGVzdCBgZXhwciAiJGxk ZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgoJ CSAgICAgIG5ld2RlcGxpYnMrPSIgJGkiCgkJICAgIGVsc2UKCQkgICAgICBk cm9wcGVkZGVwcz15ZXMKCQkgICAgICBlY2hvCgkJICAgICAgJEVDSE8gIioq KiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVl ZGVkIGxpYnJhcnkgJGkuIgoJCSAgICAgIGVjaG8gIioqKiBJIGhhdmUgdGhl IGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxs eSBsaW5rIGluIHdoZW4iCgkJICAgICAgZWNobyAiKioqIHlvdSBsaW5rIHRv IHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91 IGhhdmUgYSIKCQkgICAgICBlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUi CgkJICAgICAgZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlk IHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgdGhpcyBvbmUi CgkJICAgICAgZWNobyAiKioqIGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5IHRo YXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUu IgoJCSAgICBmaQoJCSAgZmkKCQllbHNlCgkJICBkcm9wcGVkZGVwcz15ZXMK CQkgIGVjaG8KCQkgICRFQ0hPICIqKiogV2FybmluZyEgIExpYnJhcnkgJGkg aXMgbmVlZGVkIGJ5IHRoaXMgbGlicmFyeSBidXQgSSB3YXMgbm90IGFibGUg dG8iCgkJICBlY2hvICIqKiogbWFrZSBpdCBsaW5rIGluISAgWW91IHdpbGwg cHJvYmFibHkgbmVlZCB0byBpbnN0YWxsIGl0IG9yIHNvbWUiCgkJICBlY2hv ICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24gYmVmb3JlIHRoaXMg bGlicmFyeSB3aWxsIGJlIGZ1bGx5IgoJCSAgZWNobyAiKioqIGZ1bmN0aW9u YWwuICBJbnN0YWxsaW5nIGl0IGJlZm9yZSBjb250aW51aW5nIHdvdWxkIGJl IGV2ZW4gYmV0dGVyLiIKCQlmaQoJCTs7CgkgICAgICAqKQoJCW5ld2RlcGxp YnMrPSIgJGkiCgkJOzsKCSAgICAgIGVzYWMKCSAgICBkb25lCgkgIGZpCgkg IDs7CglmaWxlX21hZ2ljKikKCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNr X21ldGhvZDsgc2hpZnQKCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRl cGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAoJICBmb3IgYV9k ZXBsaWIgaW4gJGRlcGxpYnM7IGRvCgkgICAgY2FzZSAkYV9kZXBsaWIgaW4K CSAgICAtbCopCgkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVw bGliIgoJICAgICAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CgkgICAg ICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19y dW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCgkJY2FzZSAiICRwcmVkZXBzICRw b3N0ZGVwcyAiIGluCgkJKiIgJGFfZGVwbGliICIqKQoJCSAgbmV3ZGVwbGli cys9IiAkYV9kZXBsaWIiCgkJICBhX2RlcGxpYj0iIgoJCSAgOzsKCQllc2Fj CgkgICAgICBmaQoJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRo ZW4KCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wi ImAKCQlpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY19nbG9iIjsgdGhlbgoJCSAg bGlibmFtZWdsb2I9YGZ1bmNfZWNob19hbGwgIiRsaWJuYW1lIiB8ICRTRUQg LWUgJGZpbGVfbWFnaWNfZ2xvYmAKCQllbHNlCgkJICBsaWJuYW1lZ2xvYj0k bGlibmFtZQoJCWZpCgkJdGVzdCAiJHdhbnRfbm9jYXNlZ2xvYiIgPSB5ZXMg JiYgbm9jYXNlZ2xvYj1gc2hvcHQgLXAgbm9jYXNlZ2xvYmAKCQlmb3IgaSBp biAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxp Yl9zZWFyY2hfcGF0aDsgZG8KCQkgIGlmIHRlc3QgIiR3YW50X25vY2FzZWds b2IiID0geWVzOyB0aGVuCgkJICAgIHNob3B0IC1zIG5vY2FzZWdsb2IKCQkg ICAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lZ2xvYlsuLV0qIDI+ L2Rldi9udWxsYAoJCSAgICAkbm9jYXNlZ2xvYgoJCSAgZWxzZQoJCSAgICBw b3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVnbG9iWy4tXSogMj4vZGV2 L251bGxgCgkJICBmaQoJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlh bF9saWJzOyBkbwoJCSAgICAgICMgRm9sbG93IHNvZnQgbGlua3MuCgkJICAg ICAgaWYgbHMgLWxMZCAiJHBvdGVudF9saWIiIDI+L2Rldi9udWxsIHwKCQkJ ICRHUkVQICIgLT4gIiA+L2Rldi9udWxsOyB0aGVuCgkJCWNvbnRpbnVlCgkJ ICAgICAgZmkKCQkgICAgICAjIFRoZSBzdGF0ZW1lbnQgYWJvdmUgdHJpZXMg dG8gYXZvaWQgZW50ZXJpbmcgYW4KCQkgICAgICAjIGVuZGxlc3MgbG9vcCBi ZWxvdywgaW4gY2FzZSBvZiBjeWNsaWMgbGlua3MuCgkJICAgICAgIyBXZSBt aWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGlu awoJCSAgICAgICMgbG9vcCBjYW4gYmUgY2xvc2VkIHdoaWxlIHdlIGZvbGxv dyBsaW5rcywKCQkgICAgICAjIGJ1dCBzbyB3aGF0PwoJCSAgICAgIHBvdGxp Yj0iJHBvdGVudF9saWIiCgkJICAgICAgd2hpbGUgdGVzdCAtaCAiJHBvdGxp YiIgMj4vZGV2L251bGw7IGRvCgkJCXBvdGxpYmxpbms9YGxzIC1sZCAkcG90 bGliIHwgJHtTRUR9ICdzLy4qIC0+IC8vJ2AKCQkJY2FzZSAkcG90bGlibGlu ayBpbgoJCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHBvdGxpYj0iJHBv dGxpYmxpbmsiOzsKCQkJKikgcG90bGliPWAkRUNITyAiJHBvdGxpYiIgfCAk U0VEICdzLFteL10qJCwsJ2AiJHBvdGxpYmxpbmsiOzsKCQkJZXNhYwoJCSAg ICAgIGRvbmUKCQkgICAgICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwk cG90bGliXCIgMj4vZGV2L251bGwgfAoJCQkgJFNFRCAtZSAxMHEgfAoJCQkg JEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4K CQkJbmV3ZGVwbGlicys9IiAkYV9kZXBsaWIiCgkJCWFfZGVwbGliPSIiCgkJ CWJyZWFrIDIKCQkgICAgICBmaQoJCSAgZG9uZQoJCWRvbmUKCSAgICAgIGZp CgkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgoJCWRyb3Bw ZWRkZXBzPXllcwoJCWVjaG8KCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpbmtl ciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZvciBsaWJyYXJ5ICRh X2RlcGxpYi4iCgkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0 byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hl biIKCQllY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0 IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgoJCWVjaG8gIioq KiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRv IG5vdCBhcHBlYXIgdG8gaGF2ZSIKCQllY2hvICIqKiogYmVjYXVzZSBJIGRp ZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0 YXJ0aW5nIgoJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgoJCSAgJEVD SE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRhdGVzIHdlcmUg Zm91bmQuICguLi5mb3IgZmlsZSBtYWdpYyB0ZXN0KSIKCQllbHNlCgkJICAk RUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRp ZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKCQkgICRFQ0hPICIq KiogdXNpbmcgYSBmaWxlIG1hZ2ljLiBMYXN0IGZpbGUgY2hlY2tlZDogJHBv dGxpYiIKCQlmaQoJICAgICAgZmkKCSAgICAgIDs7CgkgICAgKikKCSAgICAg ICMgQWRkIGEgLUwgYXJndW1lbnQuCgkgICAgICBuZXdkZXBsaWJzKz0iICRh X2RlcGxpYiIKCSAgICAgIDs7CgkgICAgZXNhYwoJICBkb25lICMgR29uZSB0 aHJvdWdoIGFsbCBkZXBsaWJzLgoJICA7OwoJbWF0Y2hfcGF0dGVybiopCgkg IHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CgkgIG1h dGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhv ZCIgOiAiJDEgXCguKlwpImAKCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJz OyBkbwoJICAgIGNhc2UgJGFfZGVwbGliIGluCgkgICAgLWwqKQoJICAgICAg ZnVuY19zdHJpcG5hbWUgLWwgJycgIiRhX2RlcGxpYiIKCSAgICAgIG5hbWU9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJICAgICAgaWYgdGVzdCAiWCRhbGxv d19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMi IDsgdGhlbgoJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgoJCSoi ICRhX2RlcGxpYiAiKikKCQkgIG5ld2RlcGxpYnMrPSIgJGFfZGVwbGliIgoJ CSAgYV9kZXBsaWI9IiIKCQkgIDs7CgkJZXNhYwoJICAgICAgZmkKCSAgICAg IGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCgkJbGlibmFtZT1gZXZh bCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCgkJZm9yIGkgaW4gJGxp Yl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2Vh cmNoX3BhdGg7IGRvCgkJICBwb3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5h bWVbLi1dKiAyPi9kZXYvbnVsbGAKCQkgIGZvciBwb3RlbnRfbGliIGluICRw b3RlbnRpYWxfbGliczsgZG8KCQkgICAgcG90bGliPSIkcG90ZW50X2xpYiIg IyBzZWUgc3ltbGluay1jaGVjayBhYm92ZSBpbiBmaWxlX21hZ2ljIHRlc3QK CQkgICAgaWYgZXZhbCAiXCRFQ0hPIFwiJHBvdGVudF9saWJcIiIgMj4vZGV2 L251bGwgfCAkU0VEIDEwcSB8IFwKCQkgICAgICAgJEVHUkVQICIkbWF0Y2hf cGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KCQkgICAgICBuZXdk ZXBsaWJzKz0iICRhX2RlcGxpYiIKCQkgICAgICBhX2RlcGxpYj0iIgoJCSAg ICAgIGJyZWFrIDIKCQkgICAgZmkKCQkgIGRvbmUKCQlkb25lCgkgICAgICBm aQoJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KCQlkcm9w cGVkZGVwcz15ZXMKCQllY2hvCgkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5r ZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAk YV9kZXBsaWIuIgoJCWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkg dG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdo ZW4iCgkJZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1 dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKCQllY2hvICIq Kiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBk byBub3QgYXBwZWFyIHRvIGhhdmUiCgkJZWNobyAiKioqIGJlY2F1c2UgSSBk aWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBz dGFydGluZyIKCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KCQkgICRF Q0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJl IGZvdW5kLiAoLi4uZm9yIHJlZ2V4IHBhdHRlcm4gdGVzdCkiCgkJZWxzZQoJ CSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGFuZCBub25lIG9mIHRoZSBj YW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9ybWF0IHRlc3QiCgkJICAkRUNI TyAiKioqIHVzaW5nIGEgcmVnZXggcGF0dGVybi4gTGFzdCBmaWxlIGNoZWNr ZWQ6ICRwb3RsaWIiCgkJZmkKCSAgICAgIGZpCgkgICAgICA7OwoJICAgICop CgkgICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50LgoJICAgICAgbmV3ZGVwbGli cys9IiAkYV9kZXBsaWIiCgkgICAgICA7OwoJICAgIGVzYWMKCSAgZG9uZSAj IEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KCSAgOzsKCW5vbmUgfCB1bmtu b3duIHwgKikKCSAgbmV3ZGVwbGlicz0iIgoJICB0bXBfZGVwbGlicz1gJEVD SE8gIiAkZGVwbGlicyIgfCAkU0VEICdzLyAtbGMkLy87IHMvIC1bTFJdW14g XSovL2cnYAoJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRo X3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCgkgICAgZm9yIGkg aW4gJHByZWRlcHMgJHBvc3RkZXBzIDsgZG8KCSAgICAgICMgY2FuJ3QgdXNl IFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWlnaHQgY29udGFpbiAnLycKCSAg ICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiICR0bXBfZGVwbGlicyIgfCAkU0VE ICJzLCRpLCwiYAoJICAgIGRvbmUKCSAgZmkKCSAgY2FzZSAkdG1wX2RlcGxp YnMgaW4KCSAgKlshXAlcIF0qKQoJICAgIGVjaG8KCSAgICBpZiB0ZXN0ICJY JGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9ICJYbm9uZSI7IHRoZW4KCSAgICAg IGVjaG8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2ll cyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIHBsYXRmb3JtLiIKCSAgICBl bHNlCgkgICAgICBlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBk ZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgoJ ICAgIGZpCgkgICAgZWNobyAiKioqIEFsbCBkZWNsYXJlZCBpbnRlci1saWJy YXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4iCgkgICAgZHJv cHBlZGRlcHM9eWVzCgkgICAgOzsKCSAgZXNhYwoJICA7OwoJZXNhYwoJdmVy c3VmZml4PSR2ZXJzdWZmaXhfc2F2ZQoJbWFqb3I9JG1ham9yX3NhdmUKCXJl bGVhc2U9JHJlbGVhc2Vfc2F2ZQoJbGlibmFtZT0kbGlibmFtZV9zYXZlCglu YW1lPSRuYW1lX3NhdmUKCgljYXNlICRob3N0IGluCgkqLSotcmhhcHNvZHkq IHwgKi0qLWRhcndpbjEuWzAxMl0pCgkgICMgT24gUmhhcHNvZHkgcmVwbGFj ZSB0aGUgQyBsaWJyYXJ5IHdpdGggdGhlIFN5c3RlbSBmcmFtZXdvcmsKCSAg bmV3ZGVwbGlicz1gJEVDSE8gIiAkbmV3ZGVwbGlicyIgfCAkU0VEICdzLyAt bGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCgkgIDs7Cgllc2FjCgoJaWYg dGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsgdGhlbgoJICBpZiB0ZXN0ICIk bW9kdWxlIiA9IHllczsgdGhlbgoJICAgIGVjaG8KCSAgICBlY2hvICIqKiog V2FybmluZzogbGlidG9vbCBjb3VsZCBub3Qgc2F0aXNmeSBhbGwgZGVjbGFy ZWQgaW50ZXItbGlicmFyeSIKCSAgICAkRUNITyAiKioqIGRlcGVuZGVuY2ll cyBvZiBtb2R1bGUgJGxpYm5hbWUuICBUaGVyZWZvcmUsIGxpYnRvb2wgd2ls bCBjcmVhdGUiCgkgICAgZWNobyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhh dCBzaG91bGQgd29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmciCgkgICAg ZWNobyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxv cGVuIGZsYWcuIgoJICAgIGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3Bp cGUiOyB0aGVuCgkgICAgICBlY2hvCgkgICAgICBlY2hvICIqKiogSG93ZXZl ciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0 byBleHRyYWN0IHN5bWJvbCIKCSAgICAgIGVjaG8gIioqKiBsaXN0cyBmcm9t IGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxp YnRvb2wgY291bGQiCgkgICAgICBlY2hvICIqKiogbm90IGZpbmQgc3VjaCBh IHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVz cy4iCgkgICAgICBlY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMg YW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKCSAgICBmaQoJICAgIGlm IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgoJICAgICAgb2xk bGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKCSAgICAg IGJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKCSAgICAgIGJ1aWxkX29sZF9s aWJzPXllcwoJICAgIGVsc2UKCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1u bwoJICAgIGZpCgkgIGVsc2UKCSAgICBlY2hvICIqKiogVGhlIGludGVyLWxp YnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIGRyb3BwZWQgaGVy ZSB3aWxsIGJlIgoJICAgIGVjaG8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVk IHdoZW5ldmVyIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxpYnJh cnkiCgkgICAgZWNobyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4g aXQuIgoKCSAgICBpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IG5vOyB0 aGVuCgkgICAgICBlY2hvCgkgICAgICBlY2hvICIqKiogU2luY2UgdGhpcyBs aWJyYXJ5IG11c3Qgbm90IGNvbnRhaW4gdW5kZWZpbmVkIHN5bWJvbHMsIgoJ ICAgICAgZWNobyAiKioqIGJlY2F1c2UgZWl0aGVyIHRoZSBwbGF0Zm9ybSBk b2VzIG5vdCBzdXBwb3J0IHRoZW0gb3IiCgkgICAgICBlY2hvICIqKiogaXQg d2FzIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwi CgkgICAgICBlY2hvICIqKiogbGlidG9vbCB3aWxsIG9ubHkgY3JlYXRlIGEg c3RhdGljIHZlcnNpb24gb2YgaXQuIgoJICAgICAgaWYgdGVzdCAiJGJ1aWxk X29sZF9saWJzIiA9IG5vOyB0aGVuCgkJb2xkbGlicz0iJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuJGxpYmV4dCIKCQlidWlsZF9saWJ0b29sX2xpYnM9bW9k dWxlCgkJYnVpbGRfb2xkX2xpYnM9eWVzCgkgICAgICBlbHNlCgkJYnVpbGRf bGlidG9vbF9saWJzPW5vCgkgICAgICBmaQoJICAgIGZpCgkgIGZpCglmaQoJ IyBEb25lIGNoZWNraW5nIGRlcGxpYnMhCglkZXBsaWJzPSRuZXdkZXBsaWJz CiAgICAgIGZpCiAgICAgICMgVGltZSB0byBjaGFuZ2UgYWxsIG91ciAiZm9v Lmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJhbWV3b3JrIGZvbyIK ICAgICAgY2FzZSAkaG9zdCBpbgoJKi0qLWRhcndpbiopCgkgIG5ld2RlcGxp YnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpc KS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKCSAgbmV3X2luaGVy aXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICIgJG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmsl IC1mcmFtZXdvcmsgXDElZydgCgkgIGRlcGxpYnM9YCRFQ0hPICIgJGRlcGxp YnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1l d29yayBcMSVnJ2AKCSAgOzsKICAgICAgZXNhYwoKICAgICAgIyBtb3ZlIGxp YnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0 byBub3QgeWV0CiAgICAgICMgaW5zdGFsbGVkIGxpYnJhcmllcyB0byB0aGUg YmVnaW5uaW5nIG9mIHRoZSBsaWJyYXJ5IHNlYXJjaCBsaXN0CiAgICAgIG5l d19saWJzPQogICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbwoJ Y2FzZSAiICRuZXdfbGlicyAiIGluCgkqIiAtTCRwYXRoLyRvYmpkaXIgIiop IDs7CgkqKQoJICBjYXNlICIgJGRlcGxpYnMgIiBpbgoJICAqIiAtTCRwYXRo LyRvYmpkaXIgIiopCgkgICAgbmV3X2xpYnMrPSIgLUwkcGF0aC8kb2JqZGly IiA7OwoJICBlc2FjCgkgIDs7Cgllc2FjCiAgICAgIGRvbmUKICAgICAgZm9y IGRlcGxpYiBpbiAkZGVwbGliczsgZG8KCWNhc2UgJGRlcGxpYiBpbgoJLUwq KQoJICBjYXNlICIgJG5ld19saWJzICIgaW4KCSAgKiIgJGRlcGxpYiAiKikg OzsKCSAgKikgbmV3X2xpYnMrPSIgJGRlcGxpYiIgOzsKCSAgZXNhYwoJICA7 OwoJKikgbmV3X2xpYnMrPSIgJGRlcGxpYiIgOzsKCWVzYWMKICAgICAgZG9u ZQogICAgICBkZXBsaWJzPSIkbmV3X2xpYnMiCgogICAgICAjIEFsbCB0aGUg bGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMgKGluc3RhbGxfbGliZGlyIGlz IHNldCBhYm92ZSkuCiAgICAgIGxpYnJhcnlfbmFtZXM9CiAgICAgIG9sZF9s aWJyYXJ5PQogICAgICBkbG5hbWU9CgogICAgICAjIFRlc3QgYWdhaW4sIHdl IG1heSBoYXZlIGRlY2lkZWQgbm90IHRvIGJ1aWxkIGl0IGFueSBtb3JlCiAg ICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVu CgkjIFJlbW92ZSAke3dsfSBpbnN0YW5jZXMgd2hlbiBsaW5raW5nIHdpdGgg bGQuCgkjIEZJWE1FOiBzaG91bGQgdGVzdCB0aGUgcmlnaHQgX2NtZHMgdmFy aWFibGUuCgljYXNlICRhcmNoaXZlX2NtZHMgaW4KCSAgKlwkTERcICopIHds PSA7OwogICAgICAgIGVzYWMKCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xp YnMiID0geWVzOyB0aGVuCgkgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0 aHMKCSAgaGFyZGNvZGVfbGliZGlycz0KCSAgZGVwX3JwYXRoPQoJICBycGF0 aD0iJGZpbmFsaXplX3JwYXRoIgoJICB0ZXN0ICIkb3B0X21vZGUiICE9IHJl bGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCgkgIGZvciBs aWJkaXIgaW4gJHJwYXRoOyBkbwoJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgoJICAgICAgaWYgdGVzdCAtbiAi JGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCgkJZnVuY19yZXBs YWNlX3N5c3Jvb3QgIiRsaWJkaXIiCgkJbGliZGlyPSRmdW5jX3JlcGxhY2Vf c3lzcm9vdF9yZXN1bHQKCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGly cyI7IHRoZW4KCQkgIGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCgkJZWxz ZQoJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgoJ CSAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9s aWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KCQkgICoiJGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IiKikKCQkgICAgOzsKCQkgICopCgkJICAgIGhhcmRjb2Rl X2xpYmRpcnMrPSIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIi CgkJICAgIDs7CgkJICBlc2FjCgkJZmkKCSAgICAgIGVsc2UKCQlldmFsIGZs YWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCgkJZGVwX3JwYXRo Kz0iICRmbGFnIgoJICAgICAgZmkKCSAgICBlbGlmIHRlc3QgLW4gIiRydW5w YXRoX3ZhciI7IHRoZW4KCSAgICAgIGNhc2UgIiRwZXJtX3JwYXRoICIgaW4K CSAgICAgICoiICRsaWJkaXIgIiopIDs7CgkgICAgICAqKSBwZXJtX3JwYXRo Kz0iICRsaWJkaXIiIDs7CgkgICAgICBlc2FjCgkgICAgZmkKCSAgZG9uZQoJ ICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhl IHJwYXRoLgoJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciIgJiYKCSAgICAgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0 aGVuCgkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKCSAgICBldmFs ICJkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiIgoJ ICBmaQoJICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiICYmIHRlc3QgLW4g IiRwZXJtX3JwYXRoIjsgdGhlbgoJICAgICMgV2Ugc2hvdWxkIHNldCB0aGUg cnVucGF0aF92YXIuCgkgICAgcnBhdGg9CgkgICAgZm9yIGRpciBpbiAkcGVy bV9ycGF0aDsgZG8KCSAgICAgIHJwYXRoKz0iJGRpcjoiCgkgICAgZG9uZQoJ ICAgIGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92YXIn OyBleHBvcnQgJHJ1bnBhdGhfdmFyIgoJICBmaQoJICB0ZXN0IC1uICIkZGVw X3JwYXRoIiAmJiBkZXBsaWJzPSIkZGVwX3JwYXRoICRkZXBsaWJzIgoJZmkK CglzaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCgl0ZXN0ICIkb3B0 X21vZGUiICE9IHJlbGluayAmJiBzaGxpYnBhdGg9IiRjb21waWxlX3NobGli cGF0aCRzaGxpYnBhdGgiCglpZiB0ZXN0IC1uICIkc2hsaWJwYXRoIjsgdGhl bgoJICBldmFsICIkc2hsaWJwYXRoX3Zhcj0nJHNobGlicGF0aFwkJHNobGli cGF0aF92YXInOyBleHBvcnQgJHNobGlicGF0aF92YXIiCglmaQoKCSMgR2V0 IHRoZSByZWFsIGFuZCBsaW5rIG5hbWVzIG9mIHRoZSBsaWJyYXJ5LgoJZXZh bCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKCWV2YWwgbGlicmFyeV9u YW1lcz1cIiRsaWJyYXJ5X25hbWVzX3NwZWNcIgoJc2V0IGR1bW15ICRsaWJy YXJ5X25hbWVzCglzaGlmdAoJcmVhbG5hbWU9IiQxIgoJc2hpZnQKCglpZiB0 ZXN0IC1uICIkc29uYW1lX3NwZWMiOyB0aGVuCgkgIGV2YWwgc29uYW1lPVwi JHNvbmFtZV9zcGVjXCIKCWVsc2UKCSAgc29uYW1lPSIkcmVhbG5hbWUiCglm aQoJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KCSAgZGxuYW1lPSRzb25h bWUKCWZpCgoJbGliPSIkb3V0cHV0X29iamRpci8kcmVhbG5hbWUiCglsaW5r bmFtZXM9Cglmb3IgbGluawoJZG8KCSAgbGlua25hbWVzKz0iICRsaW5rIgoJ ZG9uZQoKCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGlj Cgl0ZXN0IC16ICIkcGljX2ZsYWciICYmIGxpYm9ianM9YCRFQ0hPICIkbGli b2JqcyIgfCAkU1AyTkwgfCAkU0VEICIkbG8ybyIgfCAkTkwyU1BgCgl0ZXN0 ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQoKCWRlbGZpbGVzPQoJ aWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5j bHVkZV9leHBzeW1zIjsgdGhlbgoJICAkb3B0X2RyeV9ydW4gfHwgY3AgIiRl eHBvcnRfc3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAi CgkgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS51 ZXhwIgoJICBkZWxmaWxlcys9IiAkZXhwb3J0X3N5bWJvbHMiCglmaQoKCW9y aWdfZXhwb3J0X3N5bWJvbHM9CgljYXNlICRob3N0X29zIGluCgljeWd3aW4q IHwgbWluZ3cqIHwgY2VnY2MqKQoJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5 bWJvbHMiICYmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRo ZW4KCSAgICAjIGV4cG9ydGluZyB1c2luZyB1c2VyIHN1cHBsaWVkIHN5bWZp bGUKCSAgICBpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIg IT0geEVYUE9SVFM7IHRoZW4KCSAgICAgICMgYW5kIGl0J3MgTk9UIGFscmVh ZHkgYSAuZGVmIGZpbGUuIE11c3QgZmlndXJlIG91dAoJICAgICAgIyB3aGlj aCBvZiB0aGUgZ2l2ZW4gc3ltYm9scyBhcmUgZGF0YSBzeW1ib2xzIGFuZCB0 YWcKCSAgICAgICMgdGhlbSBhcyBzdWNoLiBTbywgdHJpZ2dlciB1c2Ugb2Yg ZXhwb3J0X3N5bWJvbHNfY21kcy4KCSAgICAgICMgZXhwb3J0X3N5bWJvbHMg Z2V0cyByZWFzc2lnbmVkIGluc2lkZSB0aGUgInByZXBhcmUKCSAgICAgICMg dGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scyIgaWYgc3RhdGVtZW50LCBz byB0aGUKCSAgICAgICMgaW5jbHVkZV9leHBzeW1zIGxvZ2ljIHN0aWxsIHdv cmtzLgoJICAgICAgb3JpZ19leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1i b2xzIgoJICAgICAgZXhwb3J0X3N5bWJvbHM9CgkgICAgICBhbHdheXNfZXhw b3J0X3N5bWJvbHM9eWVzCgkgICAgZmkKCSAgZmkKCSAgOzsKCWVzYWMKCgkj IFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scwoJaWYgdGVz dCAteiAiJGV4cG9ydF9zeW1ib2xzIjsgdGhlbgoJICBpZiB0ZXN0ICIkYWx3 YXlzX2V4cG9ydF9zeW1ib2xzIiA9IHllcyB8fCB0ZXN0IC1uICIkZXhwb3J0 X3N5bWJvbHNfcmVnZXgiOyB0aGVuCgkgICAgZnVuY192ZXJib3NlICJnZW5l cmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKCSAgICBl eHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgoJ ICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xzCgkgICAg Y21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcwoJICAgIHNhdmVfaWZzPSIkSUZT IjsgSUZTPSd+JwoJICAgIGZvciBjbWQxIGluICRjbWRzOyBkbwoJICAgICAg SUZTPSIkc2F2ZV9pZnMiCgkgICAgICAjIFRha2UgdGhlIG5vcm1hbCBicmFu Y2ggaWYgdGhlIG5tX2ZpbGVfbGlzdF9zcGVjIGJyYW5jaAoJICAgICAgIyBk b2Vzbid0IHdvcmsgb3IgaWYgdG9vbCBjb252ZXJzaW9uIGlzIG5vdCBuZWVk ZWQuCgkgICAgICBjYXNlICRubV9maWxlX2xpc3Rfc3BlY34kdG9fdG9vbF9m aWxlX2NtZCBpbgoJCSp+ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcCB8ICp+ZnVu Y19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIgfCB+KikKCQkgIHRyeV9ub3Jt YWxfYnJhbmNoPXllcwoJCSAgZXZhbCBjbWQ9XCIkY21kMVwiCgkJICBmdW5j X2xlbiAiICRjbWQiCgkJICBsZW49JGZ1bmNfbGVuX3Jlc3VsdAoJCSAgOzsK CQkqKQoJCSAgdHJ5X25vcm1hbF9icmFuY2g9bm8KCQkgIDs7CgkgICAgICBl c2FjCgkgICAgICBpZiB0ZXN0ICIkdHJ5X25vcm1hbF9icmFuY2giID0geWVz IFwKCQkgJiYgeyB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgXAoJ CSAgICAgIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB9CgkgICAg ICB0aGVuCgkJZnVuY19zaG93X2V2YWwgIiRjbWQiICdleGl0ICQ/JwoJCXNr aXBwZWRfZXhwb3J0PWZhbHNlCgkgICAgICBlbGlmIHRlc3QgLW4gIiRubV9m aWxlX2xpc3Rfc3BlYyI7IHRoZW4KCQlmdW5jX2Jhc2VuYW1lICIkb3V0cHV0 IgoJCW91dHB1dF9sYT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKCQlzYXZlX2xp Ym9ianM9JGxpYm9ianMKCQlzYXZlX291dHB1dD0kb3V0cHV0CgkJb3V0cHV0 PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9Lm5tCgkJZnVuY190b190 b29sX2ZpbGUgIiRvdXRwdXQiCgkJbGlib2Jqcz0kbm1fZmlsZV9saXN0X3Nw ZWMkZnVuY190b190b29sX2ZpbGVfcmVzdWx0CgkJZGVsZmlsZXMrPSIgJG91 dHB1dCIKCQlmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICROTSBpbnB1dCBmaWxl IGxpc3Q6ICRvdXRwdXQiCgkJZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzOyBk bwoJCSAgZnVuY190b190b29sX2ZpbGUgIiRvYmoiCgkJICAkRUNITyAiJGZ1 bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIKCQlkb25lID4gIiRvdXRwdXQiCgkJ ZXZhbCBjbWQ9XCIkY21kMVwiCgkJZnVuY19zaG93X2V2YWwgIiRjbWQiICdl eGl0ICQ/JwoJCW91dHB1dD0kc2F2ZV9vdXRwdXQKCQlsaWJvYmpzPSRzYXZl X2xpYm9ianMKCQlza2lwcGVkX2V4cG9ydD1mYWxzZQoJICAgICAgZWxzZQoJ CSMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBleGVjdXRlIGlu IG9uZSBzdGVwLgoJCWZ1bmNfdmVyYm9zZSAidXNpbmcgcmVsb2FkYWJsZSBv YmplY3QgZmlsZSBmb3IgZXhwb3J0IGxpc3QuLi4iCgkJc2tpcHBlZF9leHBv cnQ9OgoJCSMgQnJlYWsgb3V0IGVhcmx5LCBvdGhlcndpc2Ugc2tpcHBlZF9l eHBvcnQgbWF5IGJlCgkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQg c2hvcnRlciBjbWQuCgkJYnJlYWsKCSAgICAgIGZpCgkgICAgZG9uZQoJICAg IElGUz0iJHNhdmVfaWZzIgoJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3lt Ym9sc19yZWdleCIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6 IjsgdGhlbgoJICAgICAgZnVuY19zaG93X2V2YWwgJyRFR1JFUCAtZSAiJGV4 cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIke2V4 cG9ydF9zeW1ib2xzfVQiJwoJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAi JHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKCSAgICBm aQoJICBmaQoJZmkKCglpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYm IHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCgkgIHRtcF9leHBv cnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgoJICB0ZXN0IC1uICIkb3Jp Z19leHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3Jp Z19leHBvcnRfc3ltYm9scyIKCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRF Q0hPICIkaW5jbHVkZV9leHBzeW1zIiB8ICRTUDJOTCA+PiAiJHRtcF9leHBv cnRfc3ltYm9scyInCglmaQoKCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQi ICE9ICJYOiIgJiYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0 aGVuCgkgICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0 byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0LgoJICBmdW5jX3ZlcmJvc2Ug ImZpbHRlciBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYScgdG8gdGFn IERBVEEgZXhwb3J0cyIKCSAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKCSAg IyAncycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUu IEdOVSBzZWQgc2hvdWxkIGJlIGZpbmUKCSAgIyB0aG91Z2guIEFsc28sIHRo ZSBmaWx0ZXIgc2NhbGVzIHN1cGVybGluZWFybHkgd2l0aCB0aGUgbnVtYmVy IG9mCgkgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBu aWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CgkgICMgaXNuJ3QgYSBibGVz c2VkIHRvb2wuCgkgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAsXURB VEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnwsJyA8ICRl eHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRl cgoJICBkZWxmaWxlcys9IiAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuZmlsdGVyIgoJICBleHBvcnRfc3ltYm9scz0kb3V0cHV0 X29iamRpci8kbGlibmFtZS5kZWYKCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQg LWYgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdfZXhw b3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMKCWZpCgoJdG1wX2RlcGxp YnM9Cglmb3IgdGVzdF9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCgkgIGNhc2Ug IiAkY29udmVuaWVuY2UgIiBpbgoJICAqIiAkdGVzdF9kZXBsaWIgIiopIDs7 CgkgICopCgkgICAgdG1wX2RlcGxpYnMrPSIgJHRlc3RfZGVwbGliIgoJICAg IDs7CgkgIGVzYWMKCWRvbmUKCWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKCglp ZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCgkgIGlmIHRlc3QgLW4g IiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgJiYKCSAgICB0ZXN0ICIkY29t cGlsZXJfbmVlZHNfb2JqZWN0IiA9IHllcyAmJgoJICAgIHRlc3QgLXogIiRs aWJvYmpzIjsgdGhlbgoJICAgICMgZXh0cmFjdCB0aGUgYXJjaGl2ZXMsIHNv IHdlIGhhdmUgb2JqZWN0cyB0byBsaXN0LgoJICAgICMgVE9ETzogY291bGQg b3B0aW1pemUgdGhpcyB0byBqdXN0IGV4dHJhY3Qgb25lIGFyY2hpdmUuCgkg ICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9CgkgIGZpCgkgIGlmIHRlc3Qg LW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KCSAgICBzYXZl X2xpYm9ianM9JGxpYm9ianMKCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9i anMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKCSAgICB0ZXN0ICJYJGxp Ym9ianMiID0gIlggIiAmJiBsaWJvYmpzPQoJICBlbHNlCgkgICAgZ2VudG9w PSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKCSAgICBnZW5lcmF0 ZWQrPSIgJGdlbnRvcCIKCgkgICAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRn ZW50b3AgJGNvbnZlbmllbmNlCgkgICAgbGlib2Jqcys9IiAkZnVuY19leHRy YWN0X2FyY2hpdmVzX3Jlc3VsdCIKCSAgICB0ZXN0ICJYJGxpYm9ianMiID0g IlggIiAmJiBsaWJvYmpzPQoJICBmaQoJZmkKCglpZiB0ZXN0ICIkdGhyZWFk X3NhZmUiID0geWVzICYmIHRlc3QgLW4gIiR0aHJlYWRfc2FmZV9mbGFnX3Nw ZWMiOyB0aGVuCgkgIGV2YWwgZmxhZz1cIiR0aHJlYWRfc2FmZV9mbGFnX3Nw ZWNcIgoJICBsaW5rZXJfZmxhZ3MrPSIgJGZsYWciCglmaQoKCSMgTWFrZSBh IGJhY2t1cCBvZiB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSB3aGVuIHJlbGlu a2luZwoJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgoJICAk b3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRS TSAke3JlYWxuYW1lfVUgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVUp JyB8fCBleGl0ICQ/CglmaQoKCSMgRG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBj b21tYW5kcy4KCWlmIHRlc3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3QgLW4g IiRtb2R1bGVfY21kcyIgOyB0aGVuCgkgIGlmIHRlc3QgLW4gIiRleHBvcnRf c3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRo ZW4KCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfZXhwc3ltX2NtZHNc IgoJICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcwoJICBlbHNlCgkgICAg ZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2NtZHNcIgoJICAgIGNtZHM9JG1v ZHVsZV9jbWRzCgkgIGZpCgllbHNlCgkgIGlmIHRlc3QgLW4gIiRleHBvcnRf c3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0 aGVuCgkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9leHBzeW1fY21k c1wiCgkgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcwoJICBlbHNlCgkg ICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9jbWRzXCIKCSAgICBjbWRz PSRhcmNoaXZlX2NtZHMKCSAgZmkKCWZpCgoJaWYgdGVzdCAiWCRza2lwcGVk X2V4cG9ydCIgIT0gIlg6IiAmJgoJICAgZnVuY19sZW4gIiAkdGVzdF9jbWRz IiAmJgoJICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQgJiYKCSAgIHRlc3QgIiRs ZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4i IC1sZSAtMTsgdGhlbgoJICA6CgllbHNlCgkgICMgVGhlIGNvbW1hbmQgbGlu ZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIHBpZWNl d2lzZQoJICAjIG9yLCBpZiB1c2luZyBHTlUgbGQgYW5kIHNraXBwZWRfZXhw b3J0IGlzIG5vdCA6LCB1c2UgYSBsaW5rZXIKCSAgIyBzY3JpcHQuCgoJICAj IFNhdmUgdGhlIHZhbHVlIG9mICRvdXRwdXQgYW5kICRsaWJvYmpzIGJlY2F1 c2Ugd2Ugd2FudCB0bwoJICAjIHVzZSB0aGVtIGxhdGVyLiAgSWYgd2UgaGF2 ZSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgd2UKCSAgIyB3YW50IHRvIHVz ZSBzYXZlX2xpYm9ianMgYXMgaXQgd2FzIGJlZm9yZQoJICAjIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjIHdhcyBleHBhbmRlZCwgYmVjYXVzZSB3ZSBjYW4n dAoJICAjIGFzc3VtZSB0aGUgbGlua2VyIHVuZGVyc3RhbmRzIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjLgoJICAjIFRoaXMgbWF5IGhhdmUgdG8gYmUgcmV2 aXNpdGVkLCBpbiBjYXNlIHRvbyBtYW55CgkgICMgY29udmVuaWVuY2UgbGli cmFyaWVzIGdldCBsaW5rZWQgaW4gYW5kIGVuZCB1cCBleGNlZWRpbmcKCSAg IyB0aGUgc3BlYy4KCSAgaWYgdGVzdCAteiAiJGNvbnZlbmllbmNlIiB8fCB0 ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCgkgICAg c2F2ZV9saWJvYmpzPSRsaWJvYmpzCgkgIGZpCgkgIHNhdmVfb3V0cHV0PSRv dXRwdXQKCSAgZnVuY19iYXNlbmFtZSAiJG91dHB1dCIKCSAgb3V0cHV0X2xh PSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAoKCSAgIyBDbGVhciB0aGUgcmVsb2Fk YWJsZSBvYmplY3QgY3JlYXRpb24gY29tbWFuZCBxdWV1ZSBhbmQKCSAgIyBp bml0aWFsaXplIGsgdG8gb25lLgoJICB0ZXN0X2NtZHM9CgkgIGNvbmNhdF9j bWRzPQoJICBvYmpsaXN0PQoJICBsYXN0X3JvYmo9CgkgIGs9MQoKCSAgaWYg dGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4 cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0 aGVuCgkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9 Lmxua3NjcmlwdAoJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgR05VIGxk IHNjcmlwdDogJG91dHB1dCIKCSAgICBlY2hvICdJTlBVVCAoJyA+ICRvdXRw dXQKCSAgICBmb3Igb2JqIGluICRzYXZlX2xpYm9ianMKCSAgICBkbwoJICAg ICAgZnVuY190b190b29sX2ZpbGUgIiRvYmoiCgkgICAgICAkRUNITyAiJGZ1 bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIgPj4gJG91dHB1dAoJICAgIGRvbmUK CSAgICBlY2hvICcpJyA+PiAkb3V0cHV0CgkgICAgZGVsZmlsZXMrPSIgJG91 dHB1dCIKCSAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKCSAgICBv dXRwdXQ9JGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdAoJICBlbGlmIHRlc3Qg LW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQi ICE9ICJYOiIgJiYgdGVzdCAiWCRmaWxlX2xpc3Rfc3BlYyIgIT0gWDsgdGhl bgoJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5s bmsKCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGxpbmtlciBpbnB1dCBm aWxlIGxpc3Q6ICRvdXRwdXQiCgkgICAgOiA+ICRvdXRwdXQKCSAgICBzZXQg eCAkc2F2ZV9saWJvYmpzCgkgICAgc2hpZnQKCSAgICBmaXJzdG9iaj0KCSAg ICBpZiB0ZXN0ICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiA9IHllczsgdGhl bgoJICAgICAgZmlyc3RvYmo9IiQxICIKCSAgICAgIHNoaWZ0CgkgICAgZmkK CSAgICBmb3Igb2JqCgkgICAgZG8KCSAgICAgIGZ1bmNfdG9fdG9vbF9maWxl ICIkb2JqIgoJICAgICAgJEVDSE8gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1 bHQiID4+ICRvdXRwdXQKCSAgICBkb25lCgkgICAgZGVsZmlsZXMrPSIgJG91 dHB1dCIKCSAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKCSAgICBv dXRwdXQ9JGZpcnN0b2JqXCIkZmlsZV9saXN0X3NwZWMkZnVuY190b190b29s X2ZpbGVfcmVzdWx0XCIKCSAgZWxzZQoJICAgIGlmIHRlc3QgLW4gIiRzYXZl X2xpYm9ianMiOyB0aGVuCgkgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5n IHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLi4uIgoJICAgICAgb3V0cHV0PSRv dXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CgkgICAgICBl dmFsIHRlc3RfY21kcz1cIiRyZWxvYWRfY21kc1wiCgkgICAgICBmdW5jX2xl biAiICR0ZXN0X2NtZHMiCgkgICAgICBsZW4wPSRmdW5jX2xlbl9yZXN1bHQK CSAgICAgIGxlbj0kbGVuMAoKCSAgICAgICMgTG9vcCBvdmVyIHRoZSBsaXN0 IG9mIG9iamVjdHMgdG8gYmUgbGlua2VkLgoJICAgICAgZm9yIG9iaiBpbiAk c2F2ZV9saWJvYmpzCgkgICAgICBkbwoJCWZ1bmNfbGVuICIgJG9iaiIKCQlm dW5jX2FyaXRoICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0CgkJbGVuPSRmdW5j X2FyaXRoX3Jlc3VsdAoJCWlmIHRlc3QgIlgkb2JqbGlzdCIgPSBYIHx8CgkJ ICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCgkJICBv YmpsaXN0Kz0iICRvYmoiCgkJZWxzZQoJCSAgIyBUaGUgY29tbWFuZCAkdGVz dF9jbWRzIGlzIGFsbW9zdCB0b28gbG9uZywgYWRkIGEKCQkgICMgY29tbWFu ZCB0byB0aGUgcXVldWUuCgkJICBpZiB0ZXN0ICIkayIgLWVxIDEgOyB0aGVu CgkJICAgICMgVGhlIGZpcnN0IGZpbGUgZG9lc24ndCBoYXZlIGEgcHJldmlv dXMgY29tbWFuZCB0byBhZGQuCgkJICAgIHJlbG9hZF9vYmpzPSRvYmpsaXN0 CgkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgoJCSAg ZWxzZQoJCSAgICAjIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0 IGZpbGVzIHdpbGwgbGluayBpbgoJCSAgICAjIHRoZSBsYXN0IG9uZSBjcmVh dGVkLgoJCSAgICByZWxvYWRfb2Jqcz0iJG9iamxpc3QgJGxhc3Rfcm9iaiIK CQkgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+JHJlbG9h ZF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCgkJICBmaQoJCSAgbGFzdF9yb2Jq PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CgkJICBm dW5jX2FyaXRoICRrICsgMQoJCSAgaz0kZnVuY19hcml0aF9yZXN1bHQKCQkg IG91dHB1dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4 dAoJCSAgb2JqbGlzdD0iICRvYmoiCgkJICBmdW5jX2xlbiAiICRsYXN0X3Jv YmoiCgkJICBmdW5jX2FyaXRoICRsZW4wICsgJGZ1bmNfbGVuX3Jlc3VsdAoJ CSAgbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAoJCWZpCgkgICAgICBkb25lCgkg ICAgICAjIEhhbmRsZSB0aGUgcmVtYWluaW5nIG9iamVjdHMgYnkgY3JlYXRp bmcgb25lIGxhc3QKCSAgICAgICMgcmVsb2FkYWJsZSBvYmplY3QgZmlsZS4g IEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0CgkgICAgICAjIGZp bGVzIHdpbGwgbGluayBpbiB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KCSAgICAg IHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNh dF9jbWRzfgoJICAgICAgcmVsb2FkX29ianM9IiRvYmpsaXN0ICRsYXN0X3Jv YmoiCgkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9 JHJlbG9hZF9jbWRzXCIKCSAgICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoi OyB0aGVuCgkgICAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRf Y21kc31+XCRSTSAkbGFzdF9yb2JqXCIKCSAgICAgIGZpCgkgICAgICBkZWxm aWxlcys9IiAkb3V0cHV0IgoKCSAgICBlbHNlCgkgICAgICBvdXRwdXQ9Cgkg ICAgZmkKCgkgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4K CSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBm b3IgXGAkbGlibmFtZS5sYSciCgkgICAgICBleHBvcnRfc3ltYm9scz0iJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgoJICAgICAgJG9wdF9kcnlfcnVu IHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKCSAgICAgIGxpYm9ianM9JG91dHB1 dAoJICAgICAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gY3JlYXRlIHRoZSBl eHBvcnQgZmlsZS4KCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwg Y29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgoJICAgICAgZXZhbCBjb25jYXRf Y21kcz1cIlwkY29uY2F0X2NtZHMkZXhwb3J0X3N5bWJvbHNfY21kc1wiCgkg ICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsgdGhlbgoJCWV2YWwgY29u Y2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCgkg ICAgICBmaQoJICAgIGZpCgoJICAgIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMi ICYmCgkgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGEgdGVtcG9yYXJ5 IHJlbG9hZGFibGUgb2JqZWN0IGZpbGU6ICRvdXRwdXQiCgoJICAgICMgTG9v cCB0aHJvdWdoIHRoZSBjb21tYW5kcyBnZW5lcmF0ZWQgYWJvdmUgYW5kIGV4 ZWN1dGUgdGhlbS4KCSAgICBzYXZlX2lmcz0iJElGUyI7IElGUz0nficKCSAg ICBmb3IgY21kIGluICRjb25jYXRfY21kczsgZG8KCSAgICAgIElGUz0iJHNh dmVfaWZzIgoJICAgICAgJG9wdF9zaWxlbnQgfHwgewoJCSAgZnVuY19xdW90 ZV9mb3JfZXhwYW5kICIkY21kIgoJCSAgZXZhbCAiZnVuY19lY2hvICRmdW5j X3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgoJICAgICAgfQoJICAgICAgJG9w dF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8IHsKCQlsdF9leGl0PSQ/CgoJ CSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAoJ CWlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KCQkgICggY2Qg IiRvdXRwdXRfb2JqZGlyIiAmJiBcCgkJICAgICRSTSAiJHtyZWFsbmFtZX1U IiAmJiBcCgkJICAgICRNViAiJHtyZWFsbmFtZX1VIiAiJHJlYWxuYW1lIiAp CgkJZmkKCgkJZXhpdCAkbHRfZXhpdAoJICAgICAgfQoJICAgIGRvbmUKCSAg ICBJRlM9IiRzYXZlX2lmcyIKCgkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IiAmJiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhl bgoJICAgICAgZnVuY19zaG93X2V2YWwgJyRFR1JFUCAtZSAiJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIke2V4cG9ydF9z eW1ib2xzfVQiJwoJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBv cnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKCSAgICBmaQoJICBm aQoKICAgICAgICAgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVu CgkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1u ICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgoJICAgICAgdG1wX2V4cG9ydF9z eW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCgkgICAgICB0ZXN0IC1uICIkb3Jp Z19leHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3Jp Z19leHBvcnRfc3ltYm9scyIKCSAgICAgICRvcHRfZHJ5X3J1biB8fCBldmFs ICckRUNITyAiJGluY2x1ZGVfZXhwc3ltcyIgfCAkU1AyTkwgPj4gIiR0bXBf ZXhwb3J0X3N5bWJvbHMiJwoJICAgIGZpCgoJICAgIGlmIHRlc3QgLW4gIiRv cmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhlbgoJICAgICAgIyBUaGUgZ2l2ZW4g ZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBm aWx0ZXIgaXQuCgkgICAgICBmdW5jX3ZlcmJvc2UgImZpbHRlciBzeW1ib2wg bGlzdCBmb3IgXGAkbGlibmFtZS5sYScgdG8gdGFnIERBVEEgZXhwb3J0cyIK CSAgICAgICMgRklYTUU6ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRl ciBwb3RlbnRpYWxseSBjb250YWlucyBsb3RzIG9mCgkgICAgICAjICdzJyBj b21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4gR05VIHNl ZCBzaG91bGQgYmUgZmluZQoJICAgICAgIyB0aG91Z2guIEFsc28sIHRoZSBm aWx0ZXIgc2NhbGVzIHN1cGVybGluZWFybHkgd2l0aCB0aGUgbnVtYmVyIG9m CgkgICAgICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpvaW4oMSkgd291bGQgYmUg bmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQoJICAgICAgIyBpc24ndCBh IGJsZXNzZWQgdG9vbC4KCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1l ICcvWyAsXURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFc MnwsJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLmZpbHRlcgoJICAgICAgZGVsZmlsZXMrPSIgJGV4cG9ydF9zeW1ib2xz ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKCSAgICAgIGV4cG9y dF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgoJICAgICAg JG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5 bWJvbHMKCSAgICBmaQoJICBmaQoKCSAgbGlib2Jqcz0kb3V0cHV0CgkgICMg UmVzdG9yZSB0aGUgdmFsdWUgb2Ygb3V0cHV0LgoJICBvdXRwdXQ9JHNhdmVf b3V0cHV0CgoJICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiICYmIHRlc3Qg LW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KCSAgICBldmFs IGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj XCIKCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQoJ ICBmaQoJICAjIEV4cGFuZCB0aGUgbGlicmFyeSBsaW5raW5nIGNvbW1hbmRz IGFnYWluIHRvIHJlc2V0IHRoZQoJICAjIHZhbHVlIG9mICRsaWJvYmpzIGZv ciBwaWVjZXdpc2UgbGlua2luZy4KCgkgICMgRG8gZWFjaCBvZiB0aGUgYXJj aGl2ZSBjb21tYW5kcy4KCSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgJiYg dGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KCSAgICBpZiB0ZXN0IC1u ICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3lt X2NtZHMiOyB0aGVuCgkgICAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMK CSAgICBlbHNlCgkgICAgICBjbWRzPSRtb2R1bGVfY21kcwoJICAgIGZpCgkg IGVsc2UKCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRl c3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgoJICAgICAgY21k cz0kYXJjaGl2ZV9leHBzeW1fY21kcwoJICAgIGVsc2UKCSAgICAgIGNtZHM9 JGFyY2hpdmVfY21kcwoJICAgIGZpCgkgIGZpCglmaQoKCWlmIHRlc3QgLW4g IiRkZWxmaWxlcyI7IHRoZW4KCSAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8g cmVtb3ZlIHRlbXBvcmFyeSBmaWxlcyB0byAkY21kcy4KCSAgZXZhbCBjbWRz PVwiXCRjbWRzflwkUk0gJGRlbGZpbGVzXCIKCWZpCgoJIyBBZGQgYW55IG9i amVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCglp ZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KCSAgZ2VudG9wPSIkb3V0 cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKCSAgZ2VuZXJhdGVkKz0iICRn ZW50b3AiCgoJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxw cmVmaWxlcwoJICBsaWJvYmpzKz0iICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNf cmVzdWx0IgoJICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpz PQoJZmkKCglzYXZlX2lmcz0iJElGUyI7IElGUz0nficKCWZvciBjbWQgaW4g JGNtZHM7IGRvCgkgIElGUz0iJHNhdmVfaWZzIgoJICBldmFsIGNtZD1cIiRj bWRcIgoJICAkb3B0X3NpbGVudCB8fCB7CgkgICAgZnVuY19xdW90ZV9mb3Jf ZXhwYW5kICIkY21kIgoJICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90 ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKCSAgfQoJICAkb3B0X2RyeV9ydW4gfHwg ZXZhbCAiJGNtZCIgfHwgewoJICAgIGx0X2V4aXQ9JD8KCgkgICAgIyBSZXN0 b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0CgkgICAgaWYg dGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgoJICAgICAgKCBjZCAi JG91dHB1dF9vYmpkaXIiICYmIFwKCSAgICAgICAgJFJNICIke3JlYWxuYW1l fVQiICYmIFwKCQkkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQoJ ICAgIGZpCgoJICAgIGV4aXQgJGx0X2V4aXQKCSAgfQoJZG9uZQoJSUZTPSIk c2F2ZV9pZnMiCgoJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5 IGFuZCBleGl0CglpZiB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB0aGVu CgkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIg JiYgJFJNICR7cmVhbG5hbWV9VCAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5h bWV9VCAmJiAkTVYgJHtyZWFsbmFtZX1VICRyZWFsbmFtZSknIHx8IGV4aXQg JD8KCgkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KCSAgICBp ZiB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCgkg ICAgICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKCSAgICBm aQoJICBmaQoKCSAgZXhpdCAkRVhJVF9TVUNDRVNTCglmaQoKCSMgQ3JlYXRl IGxpbmtzIHRvIHRoZSByZWFsIGxpYnJhcnkuCglmb3IgbGlua25hbWUgaW4g JGxpbmtuYW1lczsgZG8KCSAgaWYgdGVzdCAiJHJlYWxuYW1lIiAhPSAiJGxp bmtuYW1lIjsgdGhlbgoJICAgIGZ1bmNfc2hvd19ldmFsICcoY2QgIiRvdXRw dXRfb2JqZGlyIiAmJiAkUk0gIiRsaW5rbmFtZSIgJiYgJExOX1MgIiRyZWFs bmFtZSIgIiRsaW5rbmFtZSIpJyAnZXhpdCAkPycKCSAgZmkKCWRvbmUKCgkj IElmIC1tb2R1bGUgb3IgLWV4cG9ydC1keW5hbWljIHdhcyBzcGVjaWZpZWQs IHNldCB0aGUgZGxuYW1lLgoJaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgfHwg dGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllczsgdGhlbgoJICAjIE9uIGFs bCBrbm93biBvcGVyYXRpbmcgc3lzdGVtcywgdGhlc2UgYXJlIGlkZW50aWNh bC4KCSAgZGxuYW1lPSIkc29uYW1lIgoJZmkKICAgICAgZmkKICAgICAgOzsK CiAgICBvYmopCiAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmls ZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCglmdW5jX3dhcm5p bmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKICAgICAg ZmkKCiAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KICAgICAgKlwgLWwqIHwg KlwgLUwqKQoJZnVuY193YXJuaW5nICJcYC1sJyBhbmQgXGAtTCcgYXJlIGln bm9yZWQgZm9yIG9iamVjdHMiIDs7CiAgICAgIGVzYWMKCiAgICAgIHRlc3Qg LW4gIiRycGF0aCIgJiYgXAoJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMg aWdub3JlZCBmb3Igb2JqZWN0cyIKCiAgICAgIHRlc3QgLW4gIiR4cnBhdGgi ICYmIFwKCWZ1bmNfd2FybmluZyAiXGAtUicgaXMgaWdub3JlZCBmb3Igb2Jq ZWN0cyIKCiAgICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYgXAoJZnVuY193YXJu aW5nICJcYC12ZXJzaW9uLWluZm8nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMi CgogICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAoJZnVuY193YXJuaW5n ICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgoKICAgICAg Y2FzZSAkb3V0cHV0IGluCiAgICAgICoubG8pCgl0ZXN0IC1uICIkb2JqcyRv bGRfZGVwbGlicyIgJiYgXAoJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3Qg YnVpbGQgbGlicmFyeSBvYmplY3QgXGAkb3V0cHV0JyBmcm9tIG5vbi1saWJ0 b29sIG9iamVjdHMiCgoJbGlib2JqPSRvdXRwdXQKCWZ1bmNfbG8ybyAiJGxp Ym9iaiIKCW9iaj0kZnVuY19sbzJvX3Jlc3VsdAoJOzsKICAgICAgKikKCWxp Ym9iaj0KCW9iaj0iJG91dHB1dCIKCTs7CiAgICAgIGVzYWMKCiAgICAgICMg RGVsZXRlIHRoZSBvbGQgb2JqZWN0cy4KICAgICAgJG9wdF9kcnlfcnVuIHx8 ICRSTSAkb2JqICRsaWJvYmoKCiAgICAgICMgT2JqZWN0cyBmcm9tIGNvbnZl bmllbmNlIGxpYnJhcmllcy4gIFRoaXMgYXNzdW1lcwogICAgICAjIHNpbmds ZS12ZXJzaW9uIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFdoZW5ldmVyIHdl IGNyZWF0ZQogICAgICAjIGRpZmZlcmVudCBvbmVzIGZvciBQSUMvbm9uLVBJ QywgdGhpcyB3ZSdsbCBoYXZlIHRvIGR1cGxpY2F0ZQogICAgICAjIHRoZSBl eHRyYWN0aW9uLgogICAgICByZWxvYWRfY29udl9vYmpzPQogICAgICBnZW50 b3A9CiAgICAgICMgcmVsb2FkX2NtZHMgcnVucyAkTEQgZGlyZWN0bHksIHNv IGxldCB1cyBnZXQgcmlkIG9mCiAgICAgICMgLVdsIGZyb20gd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMgYW5kIGhvcGUgd2UgY2FuIGdldCBieSB3aXRoCiAg ICAgICMgdHVybmluZyBjb21tYSBpbnRvIHNwYWNlLi4KICAgICAgd2w9Cgog ICAgICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCglpZiB0ZXN0 IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCgkgIGV2YWwg dG1wX3dob2xlX2FyY2hpdmVfZmxhZ3M9XCIkd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNcIgoJICByZWxvYWRfY29udl9vYmpzPSRyZWxvYWRfb2Jqc1wgYCRF Q0hPICIkdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3MiIHwgJFNFRCAnc3wsfCB8 ZydgCgllbHNlCgkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvYmp9eCIK CSAgZ2VuZXJhdGVkKz0iICRnZW50b3AiCgoJICBmdW5jX2V4dHJhY3RfYXJj aGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKCSAgcmVsb2FkX2NvbnZfb2Jq cz0iJHJlbG9hZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0 IgoJZmkKICAgICAgZmkKCiAgICAgICMgSWYgd2UncmUgbm90IGJ1aWxkaW5n IHNoYXJlZCwgd2UgbmVlZCB0byB1c2Ugbm9uX3BpY19vYmpzCiAgICAgIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBsaWJvYmpzPSIk bm9uX3BpY19vYmplY3RzIgoKICAgICAgIyBDcmVhdGUgdGhlIG9sZC1zdHls ZSBvYmplY3QuCiAgICAgIHJlbG9hZF9vYmpzPSIkb2JqcyRvbGRfZGVwbGli cyAiYCRFQ0hPICIkbGlib2JqcyIgfCAkU1AyTkwgfCAkU0VEICIvXC4ke2xp YmV4dH0kL2Q7IC9cLmxpYiQvZDsgJGxvMm8iIHwgJE5MMlNQYCIgJHJlbG9h ZF9jb252X29ianMiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3Rp bmcgdGVzdAoKICAgICAgb3V0cHV0PSIkb2JqIgogICAgICBmdW5jX2V4ZWN1 dGVfY21kcyAiJHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKCiAgICAgICMgRXhp dCBpZiB3ZSBhcmVuJ3QgZG9pbmcgYSBsaWJyYXJ5IG9iamVjdCBmaWxlLgog ICAgICBpZiB0ZXN0IC16ICIkbGlib2JqIjsgdGhlbgoJaWYgdGVzdCAtbiAi JGdlbnRvcCI7IHRoZW4KCSAgZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdl bnRvcCInCglmaQoKCWV4aXQgJEVYSVRfU1VDQ0VTUwogICAgICBmaQoKICAg ICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVu CglpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgoJICBmdW5jX3Nob3dfZXZh bCAnJHtSTX1yICIkZ2VudG9wIicKCWZpCgoJIyBDcmVhdGUgYW4gaW52YWxp ZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9uJ3QK CSMgYWNjaWRlbnRhbGx5IGxpbmsgaXQgaW50byBhIHByb2dyYW0uCgkjICRz aG93ICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiCgkjICRvcHRfZHJ5X3J1 biB8fCBldmFsICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiIHx8IGV4aXQg JD8KCWV4aXQgJEVYSVRfU1VDQ0VTUwogICAgICBmaQoKICAgICAgaWYgdGVz dCAtbiAiJHBpY19mbGFnIiB8fCB0ZXN0ICIkcGljX21vZGUiICE9IGRlZmF1 bHQ7IHRoZW4KCSMgT25seSBkbyBjb21tYW5kcyBpZiB3ZSByZWFsbHkgaGF2 ZSBkaWZmZXJlbnQgUElDIG9iamVjdHMuCglyZWxvYWRfb2Jqcz0iJGxpYm9i anMgJHJlbG9hZF9jb252X29ianMiCglvdXRwdXQ9IiRsaWJvYmoiCglmdW5j X2V4ZWN1dGVfY21kcyAiJHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKICAgICAg ZmkKCiAgICAgIGlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCglmdW5jX3No b3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKICAgICAgZmkKCiAgICAgIGV4 aXQgJEVYSVRfU1VDQ0VTUwogICAgICA7OwoKICAgIHByb2cpCiAgICAgIGNh c2UgJGhvc3QgaW4KCSpjeWd3aW4qKSBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4 ZScgIiRvdXRwdXQiCgkgICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQuZXhlOzsKICAgICAgZXNhYwogICAgICB0ZXN0IC1uICIkdmlu Zm8iICYmIFwKCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBp Z25vcmVkIGZvciBwcm9ncmFtcyIKCiAgICAgIHRlc3QgLW4gIiRyZWxlYXNl IiAmJiBcCglmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQg Zm9yIHByb2dyYW1zIgoKICAgICAgdGVzdCAiJHByZWxvYWQiID0geWVzIFwK ICAgICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93biBc CgkmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiID0gdW5rbm93biBcCgkmJiB0ZXN0 ICIkZGxvcGVuX3NlbGZfc3RhdGljIiA9IHVua25vd24gJiYgXAoJICBmdW5j X3dhcm5pbmcgIlxgTFRfSU5JVChbZGxvcGVuXSknIG5vdCB1c2VkLiBBc3N1 bWluZyBubyBkbG9wZW4gc3VwcG9ydC4iCgogICAgICBjYXNlICRob3N0IGlu CiAgICAgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKCSMg T24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0 ZW0gZnJhbWV3b3JrCgljb21waWxlX2RlcGxpYnM9YCRFQ0hPICIgJGNvbXBp bGVfZGVwbGlicyIgfCAkU0VEICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdv cmsgLydgCglmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiICRmaW5hbGl6ZV9k ZXBsaWJzIiB8ICRTRUQgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAv J2AKCTs7CiAgICAgIGVzYWMKCiAgICAgIGNhc2UgJGhvc3QgaW4KICAgICAg Ki0qLWRhcndpbiopCgkjIERvbid0IGFsbG93IGxhenkgbGlua2luZywgaXQg YnJlYWtzIEMrKyBnbG9iYWwgY29uc3RydWN0b3JzCgkjIEJ1dCBpcyBzdXBw b3NlZGx5IGZpeGVkIG9uIDEwLjQgb3IgbGF0ZXIgKHlheSEpLgoJaWYgdGVz dCAiJHRhZ25hbWUiID0gQ1hYIDsgdGhlbgoJICBjYXNlICR7TUFDT1NYX0RF UExPWU1FTlRfVEFSR0VULTEwLjB9IGluCgkgICAgMTAuWzAxMjNdKQoJICAg ICAgY29tcGlsZV9jb21tYW5kKz0iICR7d2x9LWJpbmRfYXRfbG9hZCIKCSAg ICAgIGZpbmFsaXplX2NvbW1hbmQrPSIgJHt3bH0tYmluZF9hdF9sb2FkIgoJ ICAgIDs7CgkgIGVzYWMKCWZpCgkjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIg ImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBm b28iCgljb21waWxlX2RlcGxpYnM9YCRFQ0hPICIgJGNvbXBpbGVfZGVwbGli cyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3 b3JrIFwxJWcnYAoJZmluYWxpemVfZGVwbGlicz1gJEVDSE8gIiAkZmluYWxp emVfZGVwbGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3Jr JSAtZnJhbWV3b3JrIFwxJWcnYAoJOzsKICAgICAgZXNhYwoKCiAgICAgICMg bW92ZSBsaWJyYXJ5IHNlYXJjaCBwYXRocyB0aGF0IGNvaW5jaWRlIHdpdGgg cGF0aHMgdG8gbm90IHlldAogICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMg dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlzdAog ICAgICBuZXdfbGlicz0KICAgICAgZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0 aDsgZG8KCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgoJKiIgLUwkcGF0aC8kb2Jq ZGlyICIqKSA7OwoJKikKCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBp bgoJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCgkgICAgbmV3X2xpYnMrPSIg LUwkcGF0aC8kb2JqZGlyIiA7OwoJICBlc2FjCgkgIDs7Cgllc2FjCiAgICAg IGRvbmUKICAgICAgZm9yIGRlcGxpYiBpbiAkY29tcGlsZV9kZXBsaWJzOyBk bwoJY2FzZSAkZGVwbGliIGluCgktTCopCgkgIGNhc2UgIiAkbmV3X2xpYnMg IiBpbgoJICAqIiAkZGVwbGliICIqKSA7OwoJICAqKSBuZXdfbGlicys9IiAk ZGVwbGliIiA7OwoJICBlc2FjCgkgIDs7CgkqKSBuZXdfbGlicys9IiAkZGVw bGliIiA7OwoJZXNhYwogICAgICBkb25lCiAgICAgIGNvbXBpbGVfZGVwbGli cz0iJG5ld19saWJzIgoKCiAgICAgIGNvbXBpbGVfY29tbWFuZCs9IiAkY29t cGlsZV9kZXBsaWJzIgogICAgICBmaW5hbGl6ZV9jb21tYW5kKz0iICRmaW5h bGl6ZV9kZXBsaWJzIgoKICAgICAgaWYgdGVzdCAtbiAiJHJwYXRoJHhycGF0 aCI7IHRoZW4KCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBm bGFncywgdGhlbiBhZGQgdGhlbS4KCWZvciBsaWJkaXIgaW4gJHJwYXRoICR4 cnBhdGg7IGRvCgkgICMgVGhpcyBpcyB0aGUgbWFnaWMgdG8gdXNlIC1ycGF0 aC4KCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KCSAgKiIgJGxpYmRp ciAiKikgOzsKCSAgKikgZmluYWxpemVfcnBhdGgrPSIgJGxpYmRpciIgOzsK CSAgZXNhYwoJZG9uZQogICAgICBmaQoKICAgICAgIyBOb3cgaGFyZGNvZGUg dGhlIGxpYnJhcnkgcGF0aHMKICAgICAgcnBhdGg9CiAgICAgIGhhcmRjb2Rl X2xpYmRpcnM9CiAgICAgIGZvciBsaWJkaXIgaW4gJGNvbXBpbGVfcnBhdGgg JGZpbmFsaXplX3JwYXRoOyBkbwoJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMiOyB0aGVuCgkgIGlmIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgoJICAgIGlmIHRlc3QgLXogIiRo YXJkY29kZV9saWJkaXJzIjsgdGhlbgoJICAgICAgaGFyZGNvZGVfbGliZGly cz0iJGxpYmRpciIKCSAgICBlbHNlCgkgICAgICAjIEp1c3QgYWNjdW11bGF0 ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCgkgICAgICBjYXNlICRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciBpbgoJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQoJ CTs7CgkgICAgICAqKQoJCWhhcmRjb2RlX2xpYmRpcnMrPSIkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCgkJOzsKCSAgICAgIGVzYWMKCSAg ICBmaQoJICBlbHNlCgkgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNcIgoJICAgIHJwYXRoKz0iICRmbGFnIgoJICBmaQoJZWxp ZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCgkgIGNhc2UgIiRwZXJt X3JwYXRoICIgaW4KCSAgKiIgJGxpYmRpciAiKikgOzsKCSAgKikgcGVybV9y cGF0aCs9IiAkbGliZGlyIiA7OwoJICBlc2FjCglmaQoJY2FzZSAkaG9zdCBp bgoJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0q LW9zMiogfCAqLWNlZ2NjKikKCSAgdGVzdGJpbmRpcj1gJHtFQ0hPfSAiJGxp YmRpciIgfCAke1NFRH0gLWUgJ3MqL2xpYiQqL2JpbionYAoJICBjYXNlIDok ZGxsc2VhcmNocGF0aDogaW4KCSAgKiI6JGxpYmRpcjoiKikgOzsKCSAgOjop IGRsbHNlYXJjaHBhdGg9JGxpYmRpcjs7CgkgICopIGRsbHNlYXJjaHBhdGgr PSI6JGxpYmRpciI7OwoJICBlc2FjCgkgIGNhc2UgOiRkbGxzZWFyY2hwYXRo OiBpbgoJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKCSAgOjopIGRsbHNlYXJj aHBhdGg9JHRlc3RiaW5kaXI7OwoJICAqKSBkbGxzZWFyY2hwYXRoKz0iOiR0 ZXN0YmluZGlyIjs7CgkgIGVzYWMKCSAgOzsKCWVzYWMKICAgICAgZG9uZQog ICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8g dGhlIHJwYXRoLgogICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciIgJiYKCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7 IHRoZW4KCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCglldmFsIHJwYXRo PVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKICAgICAgZmkKICAg ICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgoKICAgICAgcnBhdGg9CiAgICAg IGhhcmRjb2RlX2xpYmRpcnM9CiAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFs aXplX3JwYXRoOyBkbwoJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMiOyB0aGVuCgkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIjsgdGhlbgoJICAgIGlmIHRlc3QgLXogIiRoYXJkY29k ZV9saWJkaXJzIjsgdGhlbgoJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxp YmRpciIKCSAgICBlbHNlCgkgICAgICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUg dW5pcXVlIGxpYmRpcnMuCgkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciBpbgoJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQoJCTs7Cgkg ICAgICAqKQoJCWhhcmRjb2RlX2xpYmRpcnMrPSIkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciRsaWJkaXIiCgkJOzsKCSAgICAgIGVzYWMKCSAgICBmaQoJ ICBlbHNlCgkgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNcIgoJICAgIHJwYXRoKz0iICRmbGFnIgoJICBmaQoJZWxpZiB0ZXN0 IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCgkgIGNhc2UgIiRmaW5hbGl6ZV9w ZXJtX3JwYXRoICIgaW4KCSAgKiIgJGxpYmRpciAiKikgOzsKCSAgKikgZmlu YWxpemVfcGVybV9ycGF0aCs9IiAkbGliZGlyIiA7OwoJICBlc2FjCglmaQog ICAgICBkb25lCiAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxp YmRpcnMgaW50byB0aGUgcnBhdGguCiAgICAgIGlmIHRlc3QgLW4gIiRoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgoJIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJzIjsgdGhlbgoJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIK CWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgog ICAgICBmaQogICAgICBmaW5hbGl6ZV9ycGF0aD0iJHJwYXRoIgoKICAgICAg aWYgdGVzdCAtbiAiJGxpYm9ianMiICYmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSB5ZXM7IHRoZW4KCSMgVHJhbnNmb3JtIGFsbCB0aGUgbGlicmFyeSBv YmplY3RzIGludG8gc3RhbmRhcmQgb2JqZWN0cy4KCWNvbXBpbGVfY29tbWFu ZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAi JGxvMm8iIHwgJE5MMlNQYAoJZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRm aW5hbGl6ZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICRO TDJTUGAKICAgICAgZmkKCiAgICAgIGZ1bmNfZ2VuZXJhdGVfZGxzeW1zICIk b3V0cHV0bmFtZSIgIkBQUk9HUkFNQCIgIm5vIgoKICAgICAgIyB0ZW1wbGF0 ZSBwcmVsaW5raW5nIHN0ZXAKICAgICAgaWYgdGVzdCAtbiAiJHByZWxpbmtf Y21kcyI7IHRoZW4KCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcHJlbGlua19jbWRz IiAnZXhpdCAkPycKICAgICAgZmkKCiAgICAgIHdyYXBwZXJzX3JlcXVpcmVk PXllcwogICAgICBjYXNlICRob3N0IGluCiAgICAgICpjZWdjYyogfCAqbWlu Z3czMmNlKikKICAgICAgICAjIERpc2FibGUgd3JhcHBlcnMgZm9yIGNlZ2Nj IGFuZCBtaW5ndzMyY2UgaG9zdHMsIHdlIGFyZSBjcm9zcyBjb21waWxpbmcg YW55d2F5LgogICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCiAgICAgICAg OzsKICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkKICAgICAgICBpZiB0ZXN0 ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KICAgICAgICAg IHdyYXBwZXJzX3JlcXVpcmVkPW5vCiAgICAgICAgZmkKICAgICAgICA7Owog ICAgICAqKQogICAgICAgIGlmIHRlc3QgIiRuZWVkX3JlbGluayIgPSBubyB8 fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KICAg ICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCiAgICAgICAgZmkKICAgICAg ICA7OwogICAgICBlc2FjCiAgICAgIGlmIHRlc3QgIiR3cmFwcGVyc19yZXF1 aXJlZCIgPSBubzsgdGhlbgoJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBz cGVjaWZpY2F0aW9uLgoJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBp bGVfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcn YAoJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBh dGgiCgoJIyBXZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5k ZW5jaWVzLCBzbyBmaW5hbGl6ZSByaWdodCBub3cuCglleGl0X3N0YXR1cz0w CglmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXRfc3RhdHVz PSQ/JwoKCWlmIHRlc3QgLW4gIiRwb3N0bGlua19jbWRzIjsgdGhlbgoJICBm dW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKCSAgcG9zdGxpbmtfY21kcz1g ZnVuY19lY2hvX2FsbCAiJHBvc3RsaW5rX2NtZHMiIHwgJFNFRCAtZSAncyVA T1VUUFVUQCUnIiRvdXRwdXQiJyVnJyAtZSAncyVAVE9PTF9PVVRQVVRAJSci JGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCInJWcnYAoJICBmdW5jX2V4ZWN1 dGVfY21kcyAiJHBvc3RsaW5rX2NtZHMiICdleGl0ICQ/JwoJZmkKCgkjIERl bGV0ZSB0aGUgZ2VuZXJhdGVkIGZpbGVzLgoJaWYgdGVzdCAtZiAiJG91dHB1 dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IjsgdGhlbgoJICBm dW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8ke291dHB1dG5h bWV9Uy4ke29iamV4dH0iJwoJZmkKCglleGl0ICRleGl0X3N0YXR1cwogICAg ICBmaQoKICAgICAgaWYgdGVzdCAtbiAiJGNvbXBpbGVfc2hsaWJwYXRoJGZp bmFsaXplX3NobGlicGF0aCI7IHRoZW4KCWNvbXBpbGVfY29tbWFuZD0iJHNo bGlicGF0aF92YXI9XCIkY29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hs aWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRjb21waWxlX2NvbW1hbmQiCiAg ICAgIGZpCiAgICAgIGlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9zaGxpYnBhdGgi OyB0aGVuCglmaW5hbGl6ZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRm aW5hbGl6ZV9zaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIgJGZpbmFsaXpl X2NvbW1hbmQiCiAgICAgIGZpCgogICAgICBjb21waWxlX3Zhcj0KICAgICAg ZmluYWxpemVfdmFyPQogICAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIi OyB0aGVuCglpZiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KCSAgIyBX ZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KCSAgcnBhdGg9CgkgIGZv ciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCgkgICAgcnBhdGgrPSIkZGlyOiIK CSAgZG9uZQoJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRo XCQkcnVucGF0aF92YXJcIiAiCglmaQoJaWYgdGVzdCAtbiAiJGZpbmFsaXpl X3Blcm1fcnBhdGgiOyB0aGVuCgkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVu cGF0aF92YXIuCgkgIHJwYXRoPQoJICBmb3IgZGlyIGluICRmaW5hbGl6ZV9w ZXJtX3JwYXRoOyBkbwoJICAgIHJwYXRoKz0iJGRpcjoiCgkgIGRvbmUKCSAg ZmluYWxpemVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRydW5wYXRo X3ZhclwiICIKCWZpCiAgICAgIGZpCgogICAgICBpZiB0ZXN0ICIkbm9faW5z dGFsbCIgPSB5ZXM7IHRoZW4KCSMgV2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUg YSB3cmFwcGVyIHNjcmlwdC4KCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFy JGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgoJIyBSZXBsYWNlIHRo ZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgoJbGlua19jb21tYW5kPWAk RUNITyAiJGxpbmtfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91 dHB1dCInJWcnYAoJIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZS4KCSRv cHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dAoJIyBMaW5rIHRoZSBleGVjdXRh YmxlIGFuZCBleGl0CglmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIg J2V4aXQgJD8nCgoJaWYgdGVzdCAtbiAiJHBvc3RsaW5rX2NtZHMiOyB0aGVu CgkgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0IgoJICBwb3N0bGlua19j bWRzPWBmdW5jX2VjaG9fYWxsICIkcG9zdGxpbmtfY21kcyIgfCAkU0VEIC1l ICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnIC1lICdzJUBUT09MX09VVFBV VEAlJyIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiclZydgCgkgIGZ1bmNf ZXhlY3V0ZV9jbWRzICIkcG9zdGxpbmtfY21kcyIgJ2V4aXQgJD8nCglmaQoK CWV4aXQgJEVYSVRfU1VDQ0VTUwogICAgICBmaQoKICAgICAgaWYgdGVzdCAi JGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KCSMgRmFzdCBpbnN0 YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAoJbGlua19jb21tYW5kPSIkY29t cGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCglyZWxp bmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZp bmFsaXplX3JwYXRoIgoKCWZ1bmNfd2FybmluZyAidGhpcyBwbGF0Zm9ybSBk b2VzIG5vdCBsaWtlIHVuaW5zdGFsbGVkIHNoYXJlZCBsaWJyYXJpZXMiCglm dW5jX3dhcm5pbmcgIlxgJG91dHB1dCcgd2lsbCBiZSByZWxpbmtlZCBkdXJp bmcgaW5zdGFsbGF0aW9uIgogICAgICBlbHNlCglpZiB0ZXN0ICIkZmFzdF9p bnN0YWxsIiAhPSBubzsgdGhlbgoJICBsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6 ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgoJICBpZiB0 ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgoJICAgIHJlbGlua19j b21tYW5kPWAkRUNITyAiJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRj b21waWxlX3JwYXRoIiB8ICRTRUQgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wk ZmlsZSVnJ2AKCSAgZWxzZQoJICAgICMgZmFzdF9pbnN0YWxsIGlzIHNldCB0 byBuZWVkbGVzcwoJICAgIHJlbGlua19jb21tYW5kPQoJICBmaQoJZWxzZQoJ ICBsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQk Y29tcGlsZV9ycGF0aCIKCSAgcmVsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92 YXIkZmluYWxpemVfY29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKCWZpCiAgICAg IGZpCgogICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmlj YXRpb24uCiAgICAgIGxpbmtfY29tbWFuZD1gJEVDSE8gIiRsaW5rX2NvbW1h bmQiIHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXRfb2JqZGlyLyRvdXRw dXRuYW1lIiclZydgCgogICAgICAjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBm aWxlcy4KICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0ICRvdXRw dXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0LSRvdXRw dXRuYW1lCgogICAgICBmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIg J2V4aXQgJD8nCgogICAgICBpZiB0ZXN0IC1uICIkcG9zdGxpbmtfY21kcyI7 IHRoZW4KCWZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0X29iamRpci8kb3V0 cHV0bmFtZSIKCXBvc3RsaW5rX2NtZHM9YGZ1bmNfZWNob19hbGwgIiRwb3N0 bGlua19jbWRzIiB8ICRTRUQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29i amRpci8kb3V0cHV0bmFtZSInJWcnIC1lICdzJUBUT09MX09VVFBVVEAlJyIk ZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiclZydgCglmdW5jX2V4ZWN1dGVf Y21kcyAiJHBvc3RsaW5rX2NtZHMiICdleGl0ICQ/JwogICAgICBmaQoKICAg ICAgIyBOb3cgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdC4KICAgICAgZnVu Y192ZXJib3NlICJjcmVhdGluZyAkb3V0cHV0IgoKICAgICAgIyBRdW90ZSB0 aGUgcmVsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgogICAgICBpZiB0ZXN0 IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCgkjIFByZXNlcnZlIGFueSB2 YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCglm b3IgdmFyIGluICR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluazsgZG8KCSAg aWYgZXZhbCB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCI7IHRoZW4KCSAgICBy ZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwg JGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07 ICRyZWxpbmtfY29tbWFuZCIKCSAgZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2 YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCgkgICAgcmVsaW5rX2Nv bW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgoJ ICBlbHNlCgkgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHZhcl92YWx1ZSIK CSAgICByZWxpbmtfY29tbWFuZD0iJHZhcj0kZnVuY19xdW90ZV9mb3JfZXZh bF9yZXN1bHQ7IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCgkgIGZp Cglkb25lCglyZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAkcmVsaW5rX2Nv bW1hbmQpIgoJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1h bmQiIHwgJFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCiAgICAgIGZpCgogICAg ICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVu IG1vZGUuCiAgICAgICRvcHRfZHJ5X3J1biB8fCB7CgkjIHdpbjMyIHdpbGwg dGhpbmsgdGhlIHNjcmlwdCBpcyBhIGJpbmFyeSBpZiBpdCBoYXMKCSMgYSAu ZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2ZmIGhlcmUuCgljYXNlICRv dXRwdXQgaW4KCSAgKi5leGUpIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAi JG91dHB1dCIKCSAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVz dWx0IDs7Cgllc2FjCgkjIHRlc3QgZm9yIGN5Z3dpbiBiZWNhdXNlIG12IGZh aWxzIHcvbyAuZXhlIGV4dGVuc2lvbnMKCWNhc2UgJGhvc3QgaW4KCSAgKmN5 Z3dpbiopCgkgICAgZXhlZXh0PS5leGUKCSAgICBmdW5jX3N0cmlwbmFtZSAn JyAnLmV4ZScgIiRvdXRwdXRuYW1lIgoJICAgIG91dHB1dG5hbWU9JGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdCA7OwoJICAqKSBleGVleHQ9IDs7Cgllc2FjCglj YXNlICRob3N0IGluCgkgICpjeWd3aW4qIHwgKm1pbmd3KiApCgkgICAgZnVu Y19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG91dHB1dCIgIiIgIi4iCgkgICAg b3V0cHV0X25hbWU9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0CgkgICAgb3V0cHV0 X3BhdGg9JGZ1bmNfZGlybmFtZV9yZXN1bHQKCSAgICBjd3JhcHBlcnNvdXJj ZT0iJG91dHB1dF9wYXRoLyRvYmpkaXIvbHQtJG91dHB1dF9uYW1lLmMiCgkg ICAgY3dyYXBwZXI9IiRvdXRwdXRfcGF0aC8kb3V0cHV0X25hbWUuZXhlIgoJ ICAgICRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVyCgkgICAgdHJhcCAi JFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXI7IGV4aXQgJEVYSVRfRkFJ TFVSRSIgMSAyIDE1CgoJICAgIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMg PiAkY3dyYXBwZXJzb3VyY2UKCgkgICAgIyBUaGUgd3JhcHBlciBleGVjdXRh YmxlIGlzIGJ1aWx0IHVzaW5nIHRoZSAkaG9zdCBjb21waWxlciwKCSAgICAj IGJlY2F1c2UgaXQgY29udGFpbnMgJGhvc3QgcGF0aHMgYW5kIGZpbGVzLiBJ ZiBjcm9zcy0KCSAgICAjIGNvbXBpbGluZywgaXQsIGxpa2UgdGhlIHRhcmdl dCBleGVjdXRhYmxlLCBtdXN0IGJlCgkgICAgIyBleGVjdXRlZCBvbiB0aGUg JGhvc3Qgb3IgdW5kZXIgYW4gZW11bGF0aW9uIGVudmlyb25tZW50LgoJICAg ICRvcHRfZHJ5X3J1biB8fCB7CgkgICAgICAkTFRDQyAkTFRDRkxBR1MgLW8g JGN3cmFwcGVyICRjd3JhcHBlcnNvdXJjZQoJICAgICAgJFNUUklQICRjd3Jh cHBlcgoJICAgIH0KCgkgICAgIyBOb3csIGNyZWF0ZSB0aGUgd3JhcHBlciBz Y3JpcHQgZm9yIGZ1bmNfc291cmNlIHVzZToKCSAgICBmdW5jX2x0d3JhcHBl cl9zY3JpcHRuYW1lICRjd3JhcHBlcgoJICAgICRSTSAkZnVuY19sdHdyYXBw ZXJfc2NyaXB0bmFtZV9yZXN1bHQKCSAgICB0cmFwICIkUk0gJGZ1bmNfbHR3 cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0OyBleGl0ICRFWElUX0ZBSUxVUkUi IDEgMiAxNQoJICAgICRvcHRfZHJ5X3J1biB8fCB7CgkgICAgICAjIG5vdGU6 IHRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLCBzbyBkbyBub3Qg Y2htb2QuCgkgICAgICBpZiB0ZXN0ICJ4JGJ1aWxkIiA9ICJ4JGhvc3QiIDsg dGhlbgoJCSRjd3JhcHBlciAtLWx0LWR1bXAtc2NyaXB0ID4gJGZ1bmNfbHR3 cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0CgkgICAgICBlbHNlCgkJZnVuY19l bWl0X3dyYXBwZXIgbm8gPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9y ZXN1bHQKCSAgICAgIGZpCgkgICAgfQoJICA7OwoJICAqICkKCSAgICAkUk0g JG91dHB1dAoJICAgIHRyYXAgIiRSTSAkb3V0cHV0OyBleGl0ICRFWElUX0ZB SUxVUkUiIDEgMiAxNQoKCSAgICBmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRv dXRwdXQKCSAgICBjaG1vZCAreCAkb3V0cHV0CgkgIDs7Cgllc2FjCiAgICAg IH0KICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCiAgICAgIDs7CiAgICBlc2Fj CgogICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlv bmVkIGFyY2hpdmUuCiAgICBmb3Igb2xkbGliIGluICRvbGRsaWJzOyBkbwoK ICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBjb252ZW5p ZW5jZTsgdGhlbgoJb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSAkc3ltZmlsZW9i aiIKCWFkZGxpYnM9IiRjb252ZW5pZW5jZSIKCWJ1aWxkX2xpYnRvb2xfbGli cz1ubwogICAgICBlbHNlCglpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiA9IG1vZHVsZTsgdGhlbgoJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgoJ ICBidWlsZF9saWJ0b29sX2xpYnM9bm8KCWVsc2UKCSAgb2xkb2Jqcz0iJG9s ZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCgkgIGlmIHRlc3QgIiRwcmVs b2FkIiA9IHllcyAmJiB0ZXN0IC1mICIkc3ltZmlsZW9iaiI7IHRoZW4KCSAg ICBvbGRvYmpzKz0iICRzeW1maWxlb2JqIgoJICBmaQoJZmkKCWFkZGxpYnM9 IiRvbGRfY29udmVuaWVuY2UiCiAgICAgIGZpCgogICAgICBpZiB0ZXN0IC1u ICIkYWRkbGlicyI7IHRoZW4KCWdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtv dXRwdXRuYW1lfXgiCglnZW5lcmF0ZWQrPSIgJGdlbnRvcCIKCglmdW5jX2V4 dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkYWRkbGlicwoJb2xkb2Jqcys9IiAk ZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKICAgICAgZmkKCiAgICAg ICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgog ICAgICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIg JiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KCWNt ZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKICAgICAgZWxzZQoKCSMg QWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxp YnJhcmllcwoJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCgkgIGdl bnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCgkgIGdlbmVy YXRlZCs9IiAkZ2VudG9wIgoKCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRn ZW50b3AgJGRscHJlZmlsZXMKCSAgb2xkb2Jqcys9IiAkZnVuY19leHRyYWN0 X2FyY2hpdmVzX3Jlc3VsdCIKCWZpCgoJIyBQT1NJWCBkZW1hbmRzIG5vIHBh dGhzIHRvIGJlIGVuY29kZWQgaW4gYXJjaGl2ZXMuICBXZSBoYXZlCgkjIHRv IGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2Vu YW1lcyBpZiB3ZQoJIyBtaWdodCBoYXZlIHRvIGV4dHJhY3QgdGhlbSBhZnRl cndhcmRzLCBlLmcuLCB3aGVuIGNyZWF0aW5nIGEKCSMgc3RhdGljIGFyY2hp dmUgb3V0IG9mIGEgY29udmVuaWVuY2UgbGlicmFyeSwgb3Igd2hlbiBsaW5r aW5nCgkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRv IGFub3RoZXIgKGN1cnJlbnRseQoJIyBub3Qgc3VwcG9ydGVkIGJ5IGxpYnRv b2wpLgoJaWYgKGZvciBvYmogaW4gJG9sZG9ianMKCSAgICBkbwoJICAgICAg ZnVuY19iYXNlbmFtZSAiJG9iaiIKCSAgICAgICRFQ0hPICIkZnVuY19iYXNl bmFtZV9yZXN1bHQiCgkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rl di9udWxsIDI+JjEpOyB0aGVuCgkgIDoKCWVsc2UKCSAgZWNobyAiY29weWlu ZyBzZWxlY3RlZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29u ZmxpY3RzLi4uIgoJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0 bmFtZX14IgoJICBnZW5lcmF0ZWQrPSIgJGdlbnRvcCIKCSAgZnVuY19ta2Rp cl9wICIkZ2VudG9wIgoJICBzYXZlX29sZG9ianM9JG9sZG9ianMKCSAgb2xk b2Jqcz0KCSAgY291bnRlcj0xCgkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2Jq cwoJICBkbwoJICAgIGZ1bmNfYmFzZW5hbWUgIiRvYmoiCgkgICAgb2JqYmFz ZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgoJICAgIGNhc2UgIiAkb2xkb2Jq cyAiIGluCgkgICAgIiAiKSBvbGRvYmpzPSRvYmogOzsKCSAgICAqW1wgL10i JG9iamJhc2UgIiopCgkgICAgICB3aGlsZSA6OyBkbwoJCSMgTWFrZSBzdXJl IHdlIGRvbid0IHBpY2sgYW4gYWx0ZXJuYXRlIG5hbWUgdGhhdCBhbHNvCgkJ IyBvdmVybGFwcy4KCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFzZQoJCWZ1 bmNfYXJpdGggJGNvdW50ZXIgKyAxCgkJY291bnRlcj0kZnVuY19hcml0aF9y ZXN1bHQKCQljYXNlICIgJG9sZG9ianMgIiBpbgoJCSpbXCAvXSIkbmV3b2Jq ICIqKSA7OwoJCSopIGlmIHRlc3QgISAtZiAiJGdlbnRvcC8kbmV3b2JqIjsg dGhlbiBicmVhazsgZmkgOzsKCQllc2FjCgkgICAgICBkb25lCgkgICAgICBm dW5jX3Nob3dfZXZhbCAibG4gJG9iaiAkZ2VudG9wLyRuZXdvYmogfHwgY3Ag JG9iaiAkZ2VudG9wLyRuZXdvYmoiCgkgICAgICBvbGRvYmpzKz0iICRnZW50 b3AvJG5ld29iaiIKCSAgICAgIDs7CgkgICAgKikgb2xkb2Jqcys9IiAkb2Jq IiA7OwoJICAgIGVzYWMKCSAgZG9uZQoJZmkKCWZ1bmNfdG9fdG9vbF9maWxl ICIkb2xkbGliIiBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgoJdG9v bF9vbGRsaWI9JGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdAoJZXZhbCBjbWRz PVwiJG9sZF9hcmNoaXZlX2NtZHNcIgoKCWZ1bmNfbGVuICIgJGNtZHMiCgls ZW49JGZ1bmNfbGVuX3Jlc3VsdAoJaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4 X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVu CgkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKCWVsaWYgdGVzdCAtbiAiJGFy Y2hpdmVyX2xpc3Rfc3BlYyI7IHRoZW4KCSAgZnVuY192ZXJib3NlICJ1c2lu ZyBjb21tYW5kIGZpbGUgYXJjaGl2ZSBsaW5raW5nLi4uIgoJICBmb3Igb2Jq IGluICRvbGRvYmpzCgkgIGRvCgkgICAgZnVuY190b190b29sX2ZpbGUgIiRv YmoiCgkgICAgJEVDSE8gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiCgkg IGRvbmUgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5saWJjbWQKCSAgZnVu Y190b190b29sX2ZpbGUgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmxpYmNt ZCIKCSAgb2xkb2Jqcz0iICRhcmNoaXZlcl9saXN0X3NwZWMkZnVuY190b190 b29sX2ZpbGVfcmVzdWx0IgoJICBjbWRzPSRvbGRfYXJjaGl2ZV9jbWRzCgll bHNlCgkgICMgdGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5r IGluIG9uZSBzdGVwLCBsaW5rIGluIHBhcnRzCgkgIGZ1bmNfdmVyYm9zZSAi dXNpbmcgcGllY2V3aXNlIGFyY2hpdmUgbGlua2luZy4uLiIKCSAgc2F2ZV9S QU5MSUI9JFJBTkxJQgoJICBSQU5MSUI9OgoJICBvYmpsaXN0PQoJICBjb25j YXRfY21kcz0KCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCgkgIG9sZG9ianM9 CgkgICMgSXMgdGhlcmUgYSBiZXR0ZXIgd2F5IG9mIGZpbmRpbmcgdGhlIGxh c3Qgb2JqZWN0IGluIHRoZSBsaXN0PwoJICBmb3Igb2JqIGluICRzYXZlX29s ZG9ianMKCSAgZG8KCSAgICBsYXN0X29sZG9iaj0kb2JqCgkgIGRvbmUKCSAg ZXZhbCB0ZXN0X2NtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCgkgIGZ1bmNf bGVuICIgJHRlc3RfY21kcyIKCSAgbGVuMD0kZnVuY19sZW5fcmVzdWx0Cgkg IGxlbj0kbGVuMAoJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKCSAgZG8K CSAgICBmdW5jX2xlbiAiICRvYmoiCgkgICAgZnVuY19hcml0aCAkbGVuICsg JGZ1bmNfbGVuX3Jlc3VsdAoJICAgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQK CSAgICBvYmpsaXN0Kz0iICRvYmoiCgkgICAgaWYgdGVzdCAiJGxlbiIgLWx0 ICIkbWF4X2NtZF9sZW4iOyB0aGVuCgkgICAgICA6CgkgICAgZWxzZQoJICAg ICAgIyB0aGUgYWJvdmUgY29tbWFuZCBzaG91bGQgYmUgdXNlZCBiZWZvcmUg aXQgZ2V0cyB0b28gbG9uZwoJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAoJICAg ICAgaWYgdGVzdCAiJG9iaiIgPSAiJGxhc3Rfb2xkb2JqIiA7IHRoZW4KCQlS QU5MSUI9JHNhdmVfUkFOTElCCgkgICAgICBmaQoJICAgICAgdGVzdCAteiAi JGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+Cgkg ICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JG9sZF9h cmNoaXZlX2NtZHNcIgoJICAgICAgb2JqbGlzdD0KCSAgICAgIGxlbj0kbGVu MAoJICAgIGZpCgkgIGRvbmUKCSAgUkFOTElCPSRzYXZlX1JBTkxJQgoJICBv bGRvYmpzPSRvYmpsaXN0CgkgIGlmIHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIg OyB0aGVuCgkgICAgZXZhbCBjbWRzPVwiXCRjb25jYXRfY21kc1wiCgkgIGVs c2UKCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzflwkb2xkX2FyY2hp dmVfY21kc1wiCgkgIGZpCglmaQogICAgICBmaQogICAgICBmdW5jX2V4ZWN1 dGVfY21kcyAiJGNtZHMiICdleGl0ICQ/JwogICAgZG9uZQoKICAgIHRlc3Qg LW4gIiRnZW5lcmF0ZWQiICYmIFwKICAgICAgZnVuY19zaG93X2V2YWwgIiR7 Uk19ciRnZW5lcmF0ZWQiCgogICAgIyBOb3cgY3JlYXRlIHRoZSBsaWJ0b29s IGFyY2hpdmUuCiAgICBjYXNlICRvdXRwdXQgaW4KICAgICoubGEpCiAgICAg IG9sZF9saWJyYXJ5PQogICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0g eWVzICYmIG9sZF9saWJyYXJ5PSIkbGlibmFtZS4kbGliZXh0IgogICAgICBm dW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXQiCgogICAgICAjIFByZXNl cnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJl aGF2aW9yCiAgICAgIGZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3Jf cmVsaW5rOyBkbwoJaWYgZXZhbCB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCI7 IHRoZW4KCSAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIr c2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAk dmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCgllbGlmIGV2YWwgdmFyX3Zh bHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KCSAgcmVs aW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21t YW5kIgoJZWxzZQoJICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVl IgoJICByZWxpbmtfY29tbWFuZD0iJHZhcj0kZnVuY19xdW90ZV9mb3JfZXZh bF9yZXN1bHQ7IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCglmaQog ICAgICBkb25lCiAgICAgICMgUXVvdGUgdGhlIGxpbmsgY29tbWFuZCBmb3Ig c2hpcHBpbmcuCiAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRT SEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAk bGlidG9vbF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJAKSIKICAgICAgcmVsaW5r X2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAiJHNl ZF9xdW90ZV9zdWJzdCJgCiAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9hdXRv bWF0aWMiID0geWVzIDsgdGhlbgoJcmVsaW5rX2NvbW1hbmQ9CiAgICAgIGZp CgogICAgICAjIE9ubHkgY3JlYXRlIHRoZSBvdXRwdXQgaWYgbm90IGEgZHJ5 IHJ1bi4KICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKCWZvciBpbnN0YWxsZWQg aW4gbm8geWVzOyBkbwoJICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IHllczsg dGhlbgoJICAgIGlmIHRlc3QgLXogIiRpbnN0YWxsX2xpYmRpciI7IHRoZW4K CSAgICAgIGJyZWFrCgkgICAgZmkKCSAgICBvdXRwdXQ9IiRvdXRwdXRfb2Jq ZGlyLyRvdXRwdXRuYW1lImkKCSAgICAjIFJlcGxhY2UgYWxsIHVuaW5zdGFs bGVkIGxpYnRvb2wgbGlicmFyaWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVz CgkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQoJICAgIGZvciBkZXBsaWIgaW4g JGRlcGVuZGVuY3lfbGliczsgZG8KCSAgICAgIGNhc2UgJGRlcGxpYiBpbgoJ ICAgICAgKi5sYSkKCQlmdW5jX2Jhc2VuYW1lICIkZGVwbGliIgoJCW5hbWU9 IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKCQlmdW5jX3Jlc29sdmVfc3lzcm9v dCAiJGRlcGxpYiIKCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15s aWJkaXI9XCguKlwpJC9cMS9wJyAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVz dWx0YAoJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKCQkgIGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNo aXZlIgoJCW5ld2RlcGVuZGVuY3lfbGlicys9IiAke2x0X3N5c3Jvb3Q6Kz19 JGxpYmRpci8kbmFtZSIKCQk7OwoJICAgICAgLUwqKQoJCWZ1bmNfc3RyaXBu YW1lIC1MICcnICIkZGVwbGliIgoJCWZ1bmNfcmVwbGFjZV9zeXNyb290ICIk ZnVuY19zdHJpcG5hbWVfcmVzdWx0IgoJCW5ld2RlcGVuZGVuY3lfbGlicys9 IiAtTCRmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQiCgkJOzsKCSAgICAg IC1SKikKCQlmdW5jX3N0cmlwbmFtZSAtUiAnJyAiJGRlcGxpYiIKCQlmdW5j X3JlcGxhY2Vfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKCQlu ZXdkZXBlbmRlbmN5X2xpYnMrPSIgLVIkZnVuY19yZXBsYWNlX3N5c3Jvb3Rf cmVzdWx0IgoJCTs7CgkgICAgICAqKSBuZXdkZXBlbmRlbmN5X2xpYnMrPSIg JGRlcGxpYiIgOzsKCSAgICAgIGVzYWMKCSAgICBkb25lCgkgICAgZGVwZW5k ZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzIgoJICAgIG5ld2RsZmls ZXM9CgoJICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCgkgICAgICBjYXNl ICRsaWIgaW4KCSAgICAgICoubGEpCgkgICAgICAgIGZ1bmNfYmFzZW5hbWUg IiRsaWIiCgkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgoJCWV2YWwg bGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3An ICRsaWJgCgkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAoJCSAgZnVuY19mYXRh bF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hp dmUiCgkJbmV3ZGxmaWxlcys9IiAke2x0X3N5c3Jvb3Q6Kz19JGxpYmRpci8k bmFtZSIKCQk7OwoJICAgICAgKikgbmV3ZGxmaWxlcys9IiAkbGliIiA7OwoJ ICAgICAgZXNhYwoJICAgIGRvbmUKCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxl cyIKCSAgICBuZXdkbHByZWZpbGVzPQoJICAgIGZvciBsaWIgaW4gJGRscHJl ZmlsZXM7IGRvCgkgICAgICBjYXNlICRsaWIgaW4KCSAgICAgICoubGEpCgkJ IyBPbmx5IHBhc3MgcHJlb3BlbmVkIGZpbGVzIHRvIHRoZSBwc2V1ZG8tYXJj aGl2ZSAoZm9yCgkJIyBldmVudHVhbCBsaW5raW5nIHdpdGggdGhlIGFwcC4g dGhhdCBsaW5rcyBpdCkgaWYgd2UKCQkjIGRpZG4ndCBhbHJlYWR5IGxpbmsg dGhlIHByZW9wZW5lZCBvYmplY3RzIGRpcmVjdGx5IGludG8KCQkjIHRoZSBs aWJyYXJ5OgoJCWZ1bmNfYmFzZW5hbWUgIiRsaWIiCgkJbmFtZT0iJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgoJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUg J3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCgkJdGVzdCAteiAiJGxp YmRpciIgJiYgXAoJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBu b3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCgkJbmV3ZGxwcmVmaWxlcys9 IiAke2x0X3N5c3Jvb3Q6Kz19JGxpYmRpci8kbmFtZSIKCQk7OwoJICAgICAg ZXNhYwoJICAgIGRvbmUKCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxl cyIKCSAgZWxzZQoJICAgIG5ld2RsZmlsZXM9CgkgICAgZm9yIGxpYiBpbiAk ZGxmaWxlczsgZG8KCSAgICAgIGNhc2UgJGxpYiBpbgoJCVtcXC9dKiB8IFtB LVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OwoJCSopIGFicz1gcHdkYCIv JGxpYiIgOzsKCSAgICAgIGVzYWMKCSAgICAgIG5ld2RsZmlsZXMrPSIgJGFi cyIKCSAgICBkb25lCgkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCgkgICAg bmV3ZGxwcmVmaWxlcz0KCSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBk bwoJICAgICAgY2FzZSAkbGliIGluCgkJW1xcL10qIHwgW0EtWmEtel06W1xc L10qKSBhYnM9IiRsaWIiIDs7CgkJKikgYWJzPWBwd2RgIi8kbGliIiA7OwoJ ICAgICAgZXNhYwoJICAgICAgbmV3ZGxwcmVmaWxlcys9IiAkYWJzIgoJICAg IGRvbmUKCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKCSAgZmkK CSAgJFJNICRvdXRwdXQKCSAgIyBwbGFjZSBkbG5hbWUgaW4gY29ycmVjdCBw b3NpdGlvbiBmb3IgY3lnd2luCgkgICMgSW4gZmFjdCwgaXQgd291bGQgYmUg bmljZSBpZiB3ZSBjb3VsZCB1c2UgdGhpcyBjb2RlIGZvciBhbGwgdGFyZ2V0 CgkgICMgc3lzdGVtcyB0aGF0IGNhbid0IGhhcmQtY29kZSBsaWJyYXJ5IHBh dGhzIGludG8gdGhlaXIgZXhlY3V0YWJsZXMKCSAgIyBhbmQgdGhhdCBoYXZl IG5vIHNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUgaW5kZXBlbmRlbnQg b2YgUEFUSCwKCSAgIyBidXQgaXQgdHVybnMgb3V0IHdlIGNhbid0IGVhc2ls eSBkZXRlcm1pbmUgdGhhdCBmcm9tIGluc3BlY3RpbmcKCSAgIyBsaWJ0b29s IHZhcmlhYmxlcywgc28gd2UgaGF2ZSB0byBoYXJkLWNvZGUgdGhlIE9TcyB0 byB3aGljaCBpdAoJICAjIGFwcGxpZXMgaGVyZTsgYXQgdGhlIG1vbWVudCwg dGhhdCBtZWFucyBwbGF0Zm9ybXMgdGhhdCB1c2UgdGhlIFBFCgkgICMgb2Jq ZWN0IGZvcm1hdCB3aXRoIERMTCBmaWxlcy4gIFNlZSB0aGUgbG9uZyBjb21t ZW50IGF0IHRoZSB0b3Agb2YKCSAgIyB0ZXN0cy9iaW5kaXIuYXQgZm9yIGZ1 bGwgZGV0YWlscy4KCSAgdGRsbmFtZT0kZGxuYW1lCgkgIGNhc2UgJGhvc3Qs JG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgoJICAgICpj eWd3aW4qLCpsYWkseWVzLG5vLCouZGxsIHwgKm1pbmd3KiwqbGFpLHllcyxu bywqLmRsbCB8ICpjZWdjYyosKmxhaSx5ZXMsbm8sKi5kbGwpCgkgICAgICAj IElmIGEgLWJpbmRpciBhcmd1bWVudCB3YXMgc3VwcGxpZWQsIHBsYWNlIHRo ZSBkbGwgdGhlcmUuCgkgICAgICBpZiB0ZXN0ICJ4JGJpbmRpciIgIT0geCA7 CgkgICAgICB0aGVuCgkJZnVuY19yZWxhdGl2ZV9wYXRoICIkaW5zdGFsbF9s aWJkaXIiICIkYmluZGlyIgoJCXRkbG5hbWU9JGZ1bmNfcmVsYXRpdmVfcGF0 aF9yZXN1bHQkZGxuYW1lCgkgICAgICBlbHNlCgkJIyBPdGhlcndpc2UgZmFs bCBiYWNrIG9uIGhldXJpc3RpYy4KCQl0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1l CgkgICAgICBmaQoJICAgICAgOzsKCSAgZXNhYwoJICAkRUNITyA+ICRvdXRw dXQgIlwKIyAkb3V0cHV0bmFtZSAtIGEgbGlidG9vbCBsaWJyYXJ5IGZpbGUK IyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RB TVApICRWRVJTSU9OCiMKIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZp bGUhCiMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5 LgoKIyBUaGUgbmFtZSB0aGF0IHdlIGNhbiBkbG9wZW4oMykuCmRsbmFtZT0n JHRkbG5hbWUnCgojIE5hbWVzIG9mIHRoaXMgbGlicmFyeS4KbGlicmFyeV9u YW1lcz0nJGxpYnJhcnlfbmFtZXMnCgojIFRoZSBuYW1lIG9mIHRoZSBzdGF0 aWMgYXJjaGl2ZS4Kb2xkX2xpYnJhcnk9JyRvbGRfbGlicmFyeScKCiMgTGlu a2VyIGZsYWdzIHRoYXQgY2FuIG5vdCBnbyBpbiBkZXBlbmRlbmN5X2xpYnMu CmluaGVyaXRlZF9saW5rZXJfZmxhZ3M9JyRuZXdfaW5oZXJpdGVkX2xpbmtl cl9mbGFncycKCiMgTGlicmFyaWVzIHRoYXQgdGhpcyBvbmUgZGVwZW5kcyB1 cG9uLgpkZXBlbmRlbmN5X2xpYnM9JyRkZXBlbmRlbmN5X2xpYnMnCgojIE5h bWVzIG9mIGFkZGl0aW9uYWwgd2VhayBsaWJyYXJpZXMgcHJvdmlkZWQgYnkg dGhpcyBsaWJyYXJ5CndlYWtfbGlicmFyeV9uYW1lcz0nJHdlYWtfbGlicycK CiMgVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgJGxpYm5hbWUuCmN1cnJlbnQ9 JGN1cnJlbnQKYWdlPSRhZ2UKcmV2aXNpb249JHJldmlzaW9uCgojIElzIHRo aXMgYW4gYWxyZWFkeSBpbnN0YWxsZWQgbGlicmFyeT8KaW5zdGFsbGVkPSRp bnN0YWxsZWQKCiMgU2hvdWxkIHdlIHdhcm4gYWJvdXQgcG9ydGFiaWxpdHkg d2hlbiBsaW5raW5nIGFnYWluc3QgLW1vZHVsZXM/CnNob3VsZG5vdGxpbms9 JG1vZHVsZQoKIyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCmRsb3Blbj0n JGRsZmlsZXMnCmRscHJlb3Blbj0nJGRscHJlZmlsZXMnCgojIERpcmVjdG9y eSB0aGF0IHRoaXMgbGlicmFyeSBuZWVkcyB0byBiZSBpbnN0YWxsZWQgaW46 CmxpYmRpcj0nJGluc3RhbGxfbGliZGlyJyIKCSAgaWYgdGVzdCAiJGluc3Rh bGxlZCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0geWVzOyB0aGVu CgkgICAgJEVDSE8gPj4gJG91dHB1dCAiXApyZWxpbmtfY29tbWFuZD1cIiRy ZWxpbmtfY29tbWFuZFwiIgoJICBmaQoJZG9uZQogICAgICB9CgogICAgICAj IERvIGEgc3ltYm9saWMgbGluayBzbyB0aGF0IHRoZSBsaWJ0b29sIGFyY2hp dmUgY2FuIGJlIGZvdW5kIGluCiAgICAgICMgTERfTElCUkFSWV9QQVRIIGJl Zm9yZSB0aGUgcHJvZ3JhbSBpcyBpbnN0YWxsZWQuCiAgICAgIGZ1bmNfc2hv d19ldmFsICcoIGNkICIkb3V0cHV0X29iamRpciIgJiYgJFJNICIkb3V0cHV0 bmFtZSIgJiYgJExOX1MgIi4uLyRvdXRwdXRuYW1lIiAiJG91dHB1dG5hbWUi ICknICdleGl0ICQ/JwogICAgICA7OwogICAgZXNhYwogICAgZXhpdCAkRVhJ VF9TVUNDRVNTCn0KCnsgdGVzdCAiJG9wdF9tb2RlIiA9IGxpbmsgfHwgdGVz dCAiJG9wdF9tb2RlIiA9IHJlbGluazsgfSAmJgogICAgZnVuY19tb2RlX2xp bmsgJHsxKyIkQCJ9CgoKIyBmdW5jX21vZGVfdW5pbnN0YWxsIGFyZy4uLgpm dW5jX21vZGVfdW5pbnN0YWxsICgpCnsKICAgICRvcHRfZGVidWcKICAgIFJN PSIkbm9ub3B0IgogICAgZmlsZXM9CiAgICBybWZvcmNlPQogICAgZXhpdF9z dGF0dXM9MAoKICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNj cmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgogICAgIyB0aGFu IHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCiAgICBsaWJ0b29sX2luc3RhbGxf bWFnaWM9IiRtYWdpYyIKCiAgICBmb3IgYXJnCiAgICBkbwogICAgICBjYXNl ICRhcmcgaW4KICAgICAgLWYpIFJNKz0iICRhcmciOyBybWZvcmNlPXllcyA7 OwogICAgICAtKikgUk0rPSIgJGFyZyIgOzsKICAgICAgKikgZmlsZXMrPSIg JGFyZyIgOzsKICAgICAgZXNhYwogICAgZG9uZQoKICAgIHRlc3QgLXogIiRS TSIgJiYgXAogICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNp ZnkgYW4gUk0gcHJvZ3JhbSIKCiAgICBybWRpcnM9CgogICAgZm9yIGZpbGUg aW4gJGZpbGVzOyBkbwogICAgICBmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAi LiIKICAgICAgZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKICAgICAgaWYg dGVzdCAiWCRkaXIiID0gWC47IHRoZW4KCW9kaXI9IiRvYmpkaXIiCiAgICAg IGVsc2UKCW9kaXI9IiRkaXIvJG9iamRpciIKICAgICAgZmkKICAgICAgZnVu Y19iYXNlbmFtZSAiJGZpbGUiCiAgICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKICAgICAgdGVzdCAiJG9wdF9tb2RlIiA9IHVuaW5zdGFsbCAm JiBvZGlyPSIkZGlyIgoKICAgICAgIyBSZW1lbWJlciBvZGlyIGZvciByZW1v dmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0ZXMK ICAgICAgaWYgdGVzdCAiJG9wdF9tb2RlIiA9IGNsZWFuOyB0aGVuCgljYXNl ICIgJHJtZGlycyAiIGluCgkgICoiICRvZGlyICIqKSA7OwoJICAqKSBybWRp cnMrPSIgJG9kaXIiIDs7Cgllc2FjCiAgICAgIGZpCgogICAgICAjIERvbid0 IGVycm9yIGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QgYW5kIHJtIC1mIHdh cyB1c2VkLgogICAgICBpZiB7IHRlc3QgLUwgIiRmaWxlIjsgfSA+L2Rldi9u dWxsIDI+JjEgfHwKCSB7IHRlc3QgLWggIiRmaWxlIjsgfSA+L2Rldi9udWxs IDI+JjEgfHwKCSB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KCToKICAgICAgZWxp ZiB0ZXN0IC1kICIkZmlsZSI7IHRoZW4KCWV4aXRfc3RhdHVzPTEKCWNvbnRp bnVlCiAgICAgIGVsaWYgdGVzdCAiJHJtZm9yY2UiID0geWVzOyB0aGVuCglj b250aW51ZQogICAgICBmaQoKICAgICAgcm1maWxlcz0iJGZpbGUiCgogICAg ICBjYXNlICRuYW1lIGluCiAgICAgICoubGEpCgkjIFBvc3NpYmx5IGEgbGli dG9vbCBhcmNoaXZlLCBzbyB2ZXJpZnkgaXQuCglpZiBmdW5jX2xhbGliX3Ag IiRmaWxlIjsgdGhlbgoJICBmdW5jX3NvdXJjZSAkZGlyLyRuYW1lCgoJICAj IERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgoJ ICBmb3IgbiBpbiAkbGlicmFyeV9uYW1lczsgZG8KCSAgICBybWZpbGVzKz0i ICRvZGlyLyRuIgoJICBkb25lCgkgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIg JiYgcm1maWxlcys9IiAkb2Rpci8kb2xkX2xpYnJhcnkiCgoJICBjYXNlICIk b3B0X21vZGUiIGluCgkgIGNsZWFuKQoJICAgIGNhc2UgIiAkbGlicmFyeV9u YW1lcyAiIGluCgkgICAgKiIgJGRsbmFtZSAiKikgOzsKCSAgICAqKSB0ZXN0 IC1uICIkZGxuYW1lIiAmJiBybWZpbGVzKz0iICRvZGlyLyRkbG5hbWUiIDs7 CgkgICAgZXNhYwoJICAgIHRlc3QgLW4gIiRsaWJkaXIiICYmIHJtZmlsZXMr PSIgJG9kaXIvJG5hbWUgJG9kaXIvJHtuYW1lfWkiCgkgICAgOzsKCSAgdW5p bnN0YWxsKQoJICAgIGlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIjsgdGhl bgoJICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3R1bmluc3Rh bGwgY29tbWFuZHMuCgkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3R1 bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0 X3N0YXR1cz0xJwoJICAgIGZpCgoJICAgIGlmIHRlc3QgLW4gIiRvbGRfbGli cmFyeSI7IHRoZW4KCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBv bGRfcG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KCSAgICAgIGZ1bmNfZXhlY3V0 ZV9jbWRzICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZv cmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJwoJICAgIGZpCgkgICAgIyBG SVhNRTogc2hvdWxkIHJlaW5zdGFsbCB0aGUgYmVzdCByZW1haW5pbmcgc2hh cmVkIGxpYnJhcnkuCgkgICAgOzsKCSAgZXNhYwoJZmkKCTs7CgogICAgICAq LmxvKQoJIyBQb3NzaWJseSBhIGxpYnRvb2wgb2JqZWN0LCBzbyB2ZXJpZnkg aXQuCglpZiBmdW5jX2xhbGliX3AgIiRmaWxlIjsgdGhlbgoKCSAgIyBSZWFk IHRoZSAubG8gZmlsZQoJICBmdW5jX3NvdXJjZSAkZGlyLyRuYW1lCgoJICAj IEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92 ZS4KCSAgaWYgdGVzdCAtbiAiJHBpY19vYmplY3QiICYmCgkgICAgIHRlc3Qg IiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCgkgICAgcm1maWxlcys9IiAk ZGlyLyRwaWNfb2JqZWN0IgoJICBmaQoKCSAgIyBBZGQgbm9uLVBJQyBvYmpl Y3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgoJICBpZiB0ZXN0 IC1uICIkbm9uX3BpY19vYmplY3QiICYmCgkgICAgIHRlc3QgIiRub25fcGlj X29iamVjdCIgIT0gbm9uZTsgdGhlbgoJICAgIHJtZmlsZXMrPSIgJGRpci8k bm9uX3BpY19vYmplY3QiCgkgIGZpCglmaQoJOzsKCiAgICAgICopCglpZiB0 ZXN0ICIkb3B0X21vZGUiID0gY2xlYW4gOyB0aGVuCgkgIG5vZXhlbmFtZT0k bmFtZQoJICBjYXNlICRmaWxlIGluCgkgICouZXhlKQoJICAgIGZ1bmNfc3Ry aXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCgkgICAgZmlsZT0kZnVuY19zdHJp cG5hbWVfcmVzdWx0CgkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIk bmFtZSIKCSAgICBub2V4ZW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAoJ ICAgICMgJGZpbGUgd2l0aCAuZXhlIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQg dG8gcm1maWxlcywKCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKCSAg ICBybWZpbGVzKz0iICRmaWxlIgoJICAgIDs7CgkgIGVzYWMKCSAgIyBEbyBh IHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCgkg IGlmIGZ1bmNfbHR3cmFwcGVyX3AgIiRmaWxlIjsgdGhlbgoJICAgIGlmIGZ1 bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCgkgICAg ICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKCSAgICAgIHJl bGlua19jb21tYW5kPQoJICAgICAgZnVuY19zb3VyY2UgJGZ1bmNfbHR3cmFw cGVyX3NjcmlwdG5hbWVfcmVzdWx0CgkgICAgICBybWZpbGVzKz0iICRmdW5j X2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKCSAgICBlbHNlCgkgICAg ICByZWxpbmtfY29tbWFuZD0KCSAgICAgIGZ1bmNfc291cmNlICRkaXIvJG5v ZXhlbmFtZQoJICAgIGZpCgoJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250 YWlucyAuZXhlIGlmIGl0IHdhcyBpbiAkZmlsZSBvcmlnaW5hbGx5CgkgICAg IyBhcyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRmaWxlIHRoYXQgd2FzIGFkZGVk IGludG8gJHJtZmlsZXMKCSAgICBybWZpbGVzKz0iICRvZGlyLyRuYW1lICRv ZGlyLyR7bmFtZX1TLiR7b2JqZXh0fSIKCSAgICBpZiB0ZXN0ICIkZmFzdF9p bnN0YWxsIiA9IHllcyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0 aGVuCgkgICAgICBybWZpbGVzKz0iICRvZGlyL2x0LSRuYW1lIgoJICAgIGZp CgkgICAgaWYgdGVzdCAiWCRub2V4ZW5hbWUiICE9ICJYJG5hbWUiIDsgdGhl bgoJICAgICAgcm1maWxlcys9IiAkb2Rpci9sdC0ke25vZXhlbmFtZX0uYyIK CSAgICBmaQoJICBmaQoJZmkKCTs7CiAgICAgIGVzYWMKICAgICAgZnVuY19z aG93X2V2YWwgIiRSTSAkcm1maWxlcyIgJ2V4aXRfc3RhdHVzPTEnCiAgICBk b25lCgogICAgIyBUcnkgdG8gcmVtb3ZlIHRoZSAke29iamRpcn1zIGluIHRo ZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCiAgICBmb3Ig ZGlyIGluICRybWRpcnM7IGRvCiAgICAgIGlmIHRlc3QgLWQgIiRkaXIiOyB0 aGVuCglmdW5jX3Nob3dfZXZhbCAicm1kaXIgJGRpciA+L2Rldi9udWxsIDI+ JjEiCiAgICAgIGZpCiAgICBkb25lCgogICAgZXhpdCAkZXhpdF9zdGF0dXMK fQoKeyB0ZXN0ICIkb3B0X21vZGUiID0gdW5pbnN0YWxsIHx8IHRlc3QgIiRv cHRfbW9kZSIgPSBjbGVhbjsgfSAmJgogICAgZnVuY19tb2RlX3VuaW5zdGFs bCAkezErIiRAIn0KCnRlc3QgLXogIiRvcHRfbW9kZSIgJiYgewogIGhlbHA9 IiRnZW5lcmljX2hlbHAiCiAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBz cGVjaWZ5IGEgTU9ERSIKfQoKdGVzdCAteiAiJGV4ZWNfY21kIiAmJiBcCiAg ZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG9w dF9tb2RlJyIKCmlmIHRlc3QgLW4gIiRleGVjX2NtZCI7IHRoZW4KICBldmFs IGV4ZWMgIiRleGVjX2NtZCIKICBleGl0ICRFWElUX0ZBSUxVUkUKZmkKCmV4 aXQgJGV4aXRfc3RhdHVzCgoKIyBUaGUgVEFHcyBiZWxvdyBhcmUgZGVmaW5l ZCBzdWNoIHRoYXQgd2UgbmV2ZXIgZ2V0IGludG8gYSBzaXR1YXRpb24KIyBp biB3aGljaCB3ZSBkaXNhYmxlIGJvdGgga2luZHMgb2YgbGlicmFyaWVzLiAg R2l2ZW4gY29uZmxpY3RpbmcKIyBjaG9pY2VzLCB3ZSBnbyBmb3IgYSBzdGF0 aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKIyBzaW5j ZSB3ZSBjYW4ndCB0ZWxsIHdoZXRoZXIgc2hhcmVkIGxpYnJhcmllcyB3ZXJl IGRpc2FibGVkIGJlY2F1c2UKIyB0aGUgdXNlciBhc2tlZCBmb3IgdGhhdCBv ciBiZWNhdXNlIHRoZSBwbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQKIyB0aGVt LiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IG9uIEFJWCwgYmVj YXVzZSB3ZSBkb24ndAojIHN1cHBvcnQgaGF2aW5nIGJvdGggc3RhdGljIGFu ZCBzaGFyZWQgbGlicmFyaWVzIGVuYWJsZWQgYXQgdGhlIHNhbWUKIyB0aW1l IG9uIHRoYXQgcGxhdGZvcm0sIHNvIHdlIGRlZmF1bHQgdG8gYSBzaGFyZWQt b25seSBjb25maWd1cmF0aW9uLgojIElmIGEgZGlzYWJsZS1zaGFyZWQgdGFn IGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBhIHN0YXRpYy1vbmx5CiMg Y29uZmlndXJhdGlvbi4gIEJ1dCB3ZSdsbCBuZXZlciBnbyBmcm9tIHN0YXRp Yy1vbmx5IHRvIHNoYXJlZC1vbmx5LgoKIyAjIyMgQkVHSU4gTElCVE9PTCBU QUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZApidWlsZF9saWJ0b29sX2xpYnM9 bm8KYnVpbGRfb2xkX2xpYnM9eWVzCiMgIyMjIEVORCBMSUJUT09MIFRBRyBD T05GSUc6IGRpc2FibGUtc2hhcmVkCgojICMjIyBCRUdJTiBMSUJUT09MIFRB RyBDT05GSUc6IGRpc2FibGUtc3RhdGljCmJ1aWxkX29sZF9saWJzPWBjYXNl ICRidWlsZF9saWJ0b29sX2xpYnMgaW4geWVzKSBlY2hvIG5vOzsgKikgZWNo byB5ZXM7OyBlc2FjYAojICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBk aXNhYmxlLXN0YXRpYwoKIyBMb2NhbCBWYXJpYWJsZXM6CiMgbW9kZTpzaGVs bC1zY3JpcHQKIyBzaC1pbmRlbnRhdGlvbjoyCiMgRW5kOgojIHZpOnN3PTIK CgojICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IENYWAoKIyBUaGUg bGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgpMRD0iYzovdGluZ3cv bWluZ3czMi9iaW4vbGQuZXhlIgoKIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFi bGUgb2JqZWN0IGZpbGVzLgpyZWxvYWRfZmxhZz0iIC1yIgpyZWxvYWRfY21k cz0iXCRMRFwkcmVsb2FkX2ZsYWcgLW8gXCRvdXRwdXRcJHJlbG9hZF9vYmpz IgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNo aXZlLgpvbGRfYXJjaGl2ZV9jbWRzPSJcJEFSIFwkQVJfRkxBR1MgXCRvbGRs aWJcJG9sZG9ianN+XCRSQU5MSUIgXCR0b29sX29sZGxpYiIKCiMgQSBsYW5n dWFnZSBzcGVjaWZpYyBjb21waWxlci4KQ0M9ImcrKyIKCiMgSXMgdGhlIGNv bXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/CndpdGhfZ2NjPXllcwoKIyBDb21w aWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgpub19i dWlsdGluX2ZsYWc9IiAtZm5vLWJ1aWx0aW4iCgojIEFkZGl0aW9uYWwgY29t cGlsZXIgZmxhZ3MgZm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0cy4KcGlj X2ZsYWc9IiAtRERMTF9FWFBPUlQgLURQSUMiCgojIEhvdyB0byBwYXNzIGEg bGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCndsPSItV2wsIgoK IyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgps aW5rX3N0YXRpY19mbGFnPSItc3RhdGljIgoKIyBEb2VzIGNvbXBpbGVyIHNp bXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CmNvbXBp bGVyX2Nfbz0ieWVzIgoKIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZv ciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgpidWlsZF9saWJ0b29sX25l ZWRfbGM9bm8KCiMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVk IGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KYWxsb3dfbGli dG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwoKIyBDb21waWxl ciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9Ilwke3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzIgoK IyBDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRp cmVjdGx5IGZyb20gYXJjaGl2ZXMuCndob2xlX2FyY2hpdmVfZmxhZ19zcGVj PSJcJHt3bH0tLXdob2xlLWFyY2hpdmVcJGNvbnZlbmllbmNlIFwke3dsfS0t bm8td2hvbGUtYXJjaGl2ZSIKCiMgV2hldGhlciB0aGUgY29tcGlsZXIgY29w ZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCmNvbXBpbGVy X25lZWRzX29iamVjdD0ibm8iCgojIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJj aGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHM9IiIKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBh cmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgpv bGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0iIgoKIyBDb21tYW5kcyB1 c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0i XCRDQyAtc2hhcmVkIC1ub3N0ZGxpYiBcJHByZWRlcF9vYmplY3RzIFwkbGli b2JqcyBcJGRlcGxpYnMgXCRwb3N0ZGVwX29iamVjdHMgXCRjb21waWxlcl9m bGFncyAtbyBcJG91dHB1dF9vYmpkaXIvXCRzb25hbWUgXCR7d2x9LS1lbmFi bGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxp bmtlciBcJGxpYiIKYXJjaGl2ZV9leHBzeW1fY21kcz0iaWYgdGVzdCBcXFwi eFxcXGBcJFNFRCAxcSBcJGV4cG9ydF9zeW1ib2xzXFxcYFxcXCIgPSB4RVhQ T1JUUzsgdGhlbgoJICAgICAgY3AgXCRleHBvcnRfc3ltYm9scyBcJG91dHB1 dF9vYmpkaXIvXCRzb25hbWUuZGVmOwoJICAgIGVsc2UKCSAgICAgIGVjaG8g RVhQT1JUUyA+IFwkb3V0cHV0X29iamRpci9cJHNvbmFtZS5kZWY7CgkgICAg ICBjYXQgXCRleHBvcnRfc3ltYm9scyA+PiBcJG91dHB1dF9vYmpkaXIvXCRz b25hbWUuZGVmOwoJICAgIGZpfgoJICAgIFwkQ0MgLXNoYXJlZCAtbm9zdGRs aWIgXCRvdXRwdXRfb2JqZGlyL1wkc29uYW1lLmRlZiBcJHByZWRlcF9vYmpl Y3RzIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRwb3N0ZGVwX29iamVjdHMgXCRj b21waWxlcl9mbGFncyAtbyBcJG91dHB1dF9vYmpkaXIvXCRzb25hbWUgXCR7 d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWlt cGxpYiAtWGxpbmtlciBcJGxpYiIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWls ZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGlu ZwojIGEgc2hhcmVkIGFyY2hpdmUuCm1vZHVsZV9jbWRzPSIiCm1vZHVsZV9l eHBzeW1fY21kcz0iIgoKIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRo IEdOVSBsZCBvciBub3QuCndpdGhfZ251X2xkPSJ5ZXMiCgojIEZsYWcgdGhh dCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1i b2xzIHRvIGJlIGJ1aWx0LgphbGxvd191bmRlZmluZWRfZmxhZz0idW5zdXBw b3J0ZWQiCgojIEZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3lt Ym9scy4Kbm9fdW5kZWZpbmVkX2ZsYWc9IiIKCiMgRmxhZyB0byBoYXJkY29k ZSAkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCiMgVGhp cyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0Cmhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ii1MXCRsaWJkaXIiCgojIFdoZXRo ZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBh cmF0ZWQgYXJndW1lbnQuCmhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9IiIK CiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRf ZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUg cmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfZGlyZWN0PW5vCgojIFNldCB0 byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVy aW5nIGxpbmtpbmcgaGFyZGNvZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGlu ZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5 IGlzCiMgImFic29sdXRlIixpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkg c2V0dGluZyAke3NobGlicGF0aF92YXJ9IGlmIHRoZQojIGxpYnJhcnkgaXMg cmVsb2NhdGVkLgpoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9bm8KCiMgU2V0 IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5r aW5nIGhhcmRjb2RlcyBESVIKIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5 LgpoYXJkY29kZV9taW51c19MPW5vCgojIFNldCB0byAieWVzIiBpZiB1c2lu ZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMg RElSCiMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj11bnN1cHBvcnRlZAoKIyBTZXQgdG8gInllcyIgaWYgYnVp bGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2Rl cyBESVIKIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBs aWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAojIGFnYWluc3QgaXQu CmhhcmRjb2RlX2F1dG9tYXRpYz1ubwoKIyBTZXQgdG8geWVzIGlmIGxpbmtl ciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwoj IHRvIHJ1bnRpbWUgcGF0aCBsaXN0Lgppbmhlcml0X3JwYXRoPW5vCgojIFdo ZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxs IGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KbGlua19hbGxfZGVwbGlicz11 bmtub3duCgojIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFy ZSByZXF1aXJlZC4KYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCgojIFRoZSBj b21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCmV4cG9ydF9zeW1i b2xzX2NtZHM9IlwkTk0gXCRsaWJvYmpzIFwkY29udmVuaWVuY2UgfCBcJGds b2JhbF9zeW1ib2xfcGlwZSB8IFwkU0VEIC1lICcvXltCQ0RHUlNdWyBdL3Mv LipbIF1cXFxcKFteIF0qXFxcXCkvXFxcXDEgREFUQS87cy9eLipbIF1fX25t X19cXFxcKFteIF0qXFxcXClbIF1bXiBdKi9cXFxcMSBEQVRBLzsvXklbIF0v ZDsvXltBSVRXXVsgXS9zLy4qIC8vJyB8IHNvcnQgfCB1bmlxID4gXCRleHBv cnRfc3ltYm9scyIKCiMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlz dGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KZXhjbHVkZV9leHBzeW1z PSJbX10rR0xPQkFMX09GRlNFVF9UQUJMRV98W19dK0dMT0JBTF9fW0ZJRF1f Lip8W19dK2hlYWRfW0EtWmEtejAtOV9dK19kbGx8W0EtWmEtejAtOV9dK19k bGxfaW5hbWUiCgojIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBv cnRlZC4KaW5jbHVkZV9leHBzeW1zPSIiCgojIENvbW1hbmRzIG5lY2Vzc2Fy eSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdp dGggdGVtcGxhdGVzLgpwcmVsaW5rX2NtZHM9IiIKCiMgQ29tbWFuZHMgbmVj ZXNzYXJ5IGZvciBmaW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4KcG9zdGxp bmtfY21kcz0iIgoKIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5w dXQgZmlsZXMuCmZpbGVfbGlzdF9zcGVjPSIiCgojIEhvdyB0byBoYXJkY29k ZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgpo YXJkY29kZV9hY3Rpb249aW1tZWRpYXRlCgojIFRoZSBkaXJlY3RvcmllcyBz ZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFy ZWQgbGlicmFyeS4KY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSJjOi90aW5n dy9iaW4vLi4vbGliL2djYy9taW5ndzMyLzQuOC4xIGM6L3Rpbmd3L2Jpbi8u Li9saWIvZ2NjIGM6L3Rpbmd3L2Jpbi8uLi9saWIvZ2NjL21pbmd3MzIvNC44 LjEvLi4vLi4vLi4vLi4vbWluZ3czMi9saWIgYzovdGluZ3cvYmluLy4uL2xp Yi9nY2MvbWluZ3czMi80LjguMS8uLi8uLi8uLiIKCiMgRGVwZW5kZW5jaWVz IHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcg bGlua2VkIHRvCiMgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkuCnByZWRlcF9v YmplY3RzPSJjOi90aW5ndy9iaW4vLi4vbGliL2djYy9taW5ndzMyLzQuOC4x Ly4uLy4uLy4uLy4uL21pbmd3MzIvbGliL2RsbGNydDIubyBjOi90aW5ndy9i aW4vLi4vbGliL2djYy9taW5ndzMyLzQuOC4xL2NydGJlZ2luLm8iCnBvc3Rk ZXBfb2JqZWN0cz0iYzovdGluZ3cvYmluLy4uL2xpYi9nY2MvbWluZ3czMi80 LjguMS9jcnRlbmQubyIKcHJlZGVwcz0iIgpwb3N0ZGVwcz0iLWxzdGRjKysg LWxtaW5ndzMyIC1sZ2NjX3MgLWxnY2MgLWxtb2xkbmFtZSAtbG1pbmd3ZXgg LWxtc3ZjcnQgLWxhZHZhcGkzMiAtbHNoZWxsMzIgLWx1c2VyMzIgLWxrZXJu ZWwzMiAtbG1pbmd3MzIgLWxnY2NfcyAtbGdjYyAtbG1vbGRuYW1lIC1sbWlu Z3dleCAtbG1zdmNydCIKCiMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNl ZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKIyBh IHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9Ii1M YzovdGluZ3cvYmluLy4uL2xpYi9nY2MvbWluZ3czMi80LjguMSAtTGM6L3Rp bmd3L2Jpbi8uLi9saWIvZ2NjIC1MYzovdGluZ3cvYmluLy4uL2xpYi9nY2Mv bWluZ3czMi80LjguMS8uLi8uLi8uLi8uLi9taW5ndzMyL2xpYiAtTGM6L3Rp bmd3L2Jpbi8uLi9saWIvZ2NjL21pbmd3MzIvNC44LjEvLi4vLi4vLi4iCgoj ICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBDWFgKCiMgIyMjIEJFR0lO IExJQlRPT0wgVEFHIENPTkZJRzogRjc3CgojIFRoZSBsaW5rZXIgdXNlZCB0 byBidWlsZCBsaWJyYXJpZXMuCkxEPSIiCgojIEhvdyB0byBjcmVhdGUgcmVs b2FkYWJsZSBvYmplY3QgZmlsZXMuCnJlbG9hZF9mbGFnPSIgLXIiCnJlbG9h ZF9jbWRzPSJcJExEXCRyZWxvYWRfZmxhZyAtbyBcJG91dHB1dFwkcmVsb2Fk X29ianMiCgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxl IGFyY2hpdmUuCm9sZF9hcmNoaXZlX2NtZHM9IlwkQVIgXCRBUl9GTEFHUyBc JG9sZGxpYlwkb2xkb2Jqc35cJFJBTkxJQiBcJHRvb2xfb2xkbGliIgoKIyBB IGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgpDQz0iIgoKIyBJcyB0aGUg Y29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0aF9nY2M9CgojIENvbXBp bGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCm5vX2J1 aWx0aW5fZmxhZz0iIgoKIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZv ciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCnBpY19mbGFnPSIiCgojIEhv dyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIu CndsPSIiCgojIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxp bmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9IiIKCiMgRG9lcyBjb21waWxlciBz aW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwpjb21w aWxlcl9jX289IiIKCiMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3Ig YnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KYnVpbGRfbGlidG9vbF9uZWVk X2xjPW5vCgojIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBs aWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93X2xpYnRv b2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz1ubwoKIyBDb21waWxlciBm bGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9IiIKCiMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBz aGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgp3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYz0iIgoKIyBXaGV0aGVyIHRoZSBjb21waWxlciBj b3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KY29tcGls ZXJfbmVlZHNfb2JqZWN0PSIiCgojIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJj aGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHM9IiIKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBh cmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgpv bGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0iIgoKIyBDb21tYW5kcyB1 c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0i IgphcmNoaXZlX2V4cHN5bV9jbWRzPSIiCgojIENvbW1hbmRzIHVzZWQgdG8g YnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVp bGRpbmcKIyBhIHNoYXJlZCBhcmNoaXZlLgptb2R1bGVfY21kcz0iIgptb2R1 bGVfZXhwc3ltX2NtZHM9IiIKCiMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcg d2l0aCBHTlUgbGQgb3Igbm90Lgp3aXRoX2dudV9sZD0iIgoKIyBGbGFnIHRo YXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3lt Ym9scyB0byBiZSBidWlsdC4KYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiIKCiMg RmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgpub191 bmRlZmluZWRfZmxhZz0iIgoKIyBGbGFnIHRvIGhhcmRjb2RlICRsaWJkaXIg aW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KIyBUaGlzIG11c3Qgd29y ayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3QKaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0iIgoKIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUg Ii1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgpoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yPSIiCgojIFNldCB0byAieWVzIiBpZiB1 c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcg aGFyZGNvZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhh cmRjb2RlX2RpcmVjdD1ubwoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElS L2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2Rl cwojIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVz dWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcwojICJhYnNvbHV0ZSIsaS5l IGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhf dmFyfSBpZiB0aGUKIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlPW5vCgojIFNldCB0byAieWVzIiBpZiB1c2luZyB0 aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMg aW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfbWludXNfTD1u bwoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIg ZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIHJlc3Vs dGluZyBiaW5hcnkuCmhhcmRjb2RlX3NobGlicGF0aF92YXI9CgojIFNldCB0 byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRp Y2FsbHkgaGFyZGNvZGVzIERJUgojIGludG8gdGhlIGxpYnJhcnkgYW5kIGFs bCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2Vk CiMgYWdhaW5zdCBpdC4KaGFyZGNvZGVfYXV0b21hdGljPW5vCgojIFNldCB0 byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRl bnQgbGlicmFyaWVzCiMgdG8gcnVudGltZSBwYXRoIGxpc3QuCmluaGVyaXRf cnBhdGg9bm8KCiMgV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dy YW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgpsaW5r X2FsbF9kZXBsaWJzPXVua25vd24KCiMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9y dGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgphbHdheXNfZXhwb3J0X3N5bWJv bHM9bm8KCiMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9s cy4KZXhwb3J0X3N5bWJvbHNfY21kcz0iIgoKIyBTeW1ib2xzIHRoYXQgc2hv dWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgpl eGNsdWRlX2V4cHN5bXM9IiIKCiMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlz IGJlIGV4cG9ydGVkLgppbmNsdWRlX2V4cHN5bXM9IiIKCiMgQ29tbWFuZHMg bmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJh cmllcykgd2l0aCB0ZW1wbGF0ZXMuCnByZWxpbmtfY21kcz0iIgoKIyBDb21t YW5kcyBuZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5nIHByb2dyYW1z Lgpwb3N0bGlua19jbWRzPSIiCgojIFNwZWNpZnkgZmlsZW5hbWUgY29udGFp bmluZyBpbnB1dCBmaWxlcy4KZmlsZV9saXN0X3NwZWM9IiIKCiMgSG93IHRv IGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1 dGFibGUuCmhhcmRjb2RlX2FjdGlvbj0KCiMgVGhlIGRpcmVjdG9yaWVzIHNl YXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJl ZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9IiIKCiMgRGVw ZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVj dHMgYmVpbmcgbGlua2VkIHRvCiMgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnku CnByZWRlcF9vYmplY3RzPSIiCnBvc3RkZXBfb2JqZWN0cz0iIgpwcmVkZXBz PSIiCnBvc3RkZXBzPSIiCgojIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVz ZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCiMg YSBzaGFyZWQgbGlicmFyeS4KY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSIi CgojICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBGNzcKCiMgIyMjIEJF R0lOIExJQlRPT0wgVEFHIENPTkZJRzogRkMKCiMgVGhlIGxpbmtlciB1c2Vk IHRvIGJ1aWxkIGxpYnJhcmllcy4KTEQ9IiIKCiMgSG93IHRvIGNyZWF0ZSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9IiAtciIKcmVs b2FkX2NtZHM9IlwkTERcJHJlbG9hZF9mbGFnIC1vIFwkb3V0cHV0XCRyZWxv YWRfb2JqcyIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5 bGUgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfY21kcz0iXCRBUiBcJEFSX0ZMQUdT IFwkb2xkbGliXCRvbGRvYmpzflwkUkFOTElCIFwkdG9vbF9vbGRsaWIiCgoj IEEgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCkNDPSIiCgojIElzIHRo ZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVyPwp3aXRoX2djYz0KCiMgQ29t cGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4Kbm9f YnVpbHRpbl9mbGFnPSIiCgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3Mg Zm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0cy4KcGljX2ZsYWc9IiIKCiMg SG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxl ci4Kd2w9IiIKCiMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMg bGlua2luZy4KbGlua19zdGF0aWNfZmxhZz0iIgoKIyBEb2VzIGNvbXBpbGVy IHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CmNv bXBpbGVyX2Nfbz0iIgoKIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZv ciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgpidWlsZF9saWJ0b29sX25l ZWRfbGM9bm8KCiMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVk IGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KYWxsb3dfbGli dG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPW5vCgojIENvbXBpbGVy IGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCmV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0iIgoKIyBDb21waWxlciBmbGFnIHRvIGdlbmVyYXRl IHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJjaGl2ZXMuCndob2xl X2FyY2hpdmVfZmxhZ19zcGVjPSIiCgojIFdoZXRoZXIgdGhlIGNvbXBpbGVy IGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5Lgpjb21w aWxlcl9uZWVkc19vYmplY3Q9IiIKCiMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBh cmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kcz0iIgoKIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxl IGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUu Cm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSIiCgojIENvbW1hbmRz IHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4KYXJjaGl2ZV9jbWRz PSIiCmFyY2hpdmVfZXhwc3ltX2NtZHM9IiIKCiMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBi dWlsZGluZwojIGEgc2hhcmVkIGFyY2hpdmUuCm1vZHVsZV9jbWRzPSIiCm1v ZHVsZV9leHBzeW1fY21kcz0iIgoKIyBXaGV0aGVyIHdlIGFyZSBidWlsZGlu ZyB3aXRoIEdOVSBsZCBvciBub3QuCndpdGhfZ251X2xkPSIiCgojIEZsYWcg dGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBz eW1ib2xzIHRvIGJlIGJ1aWx0LgphbGxvd191bmRlZmluZWRfZmxhZz0iIgoK IyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCm5v X3VuZGVmaW5lZF9mbGFnPSIiCgojIEZsYWcgdG8gaGFyZGNvZGUgJGxpYmRp ciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgojIFRoaXMgbXVzdCB3 b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdApoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSIiCgojIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmds ZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCmhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9IiIKCiMgU2V0IHRvICJ5ZXMiIGlm IHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2lu ZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4K aGFyZGNvZGVfZGlyZWN0PW5vCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBE SVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzCiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSBy ZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCiMgImFic29sdXRlIixp LmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyAke3NobGlicGF0 aF92YXJ9IGlmIHRoZQojIGxpYnJhcnkgaXMgcmVsb2NhdGVkLgpoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGU9bm8KCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIK IyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9taW51c19M PW5vCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJ UiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVz dWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0KCiMgU2V0 IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21h dGljYWxseSBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgbGlicmFyeSBhbmQg YWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5r ZWQKIyBhZ2FpbnN0IGl0LgpoYXJkY29kZV9hdXRvbWF0aWM9bm8KCiMgU2V0 IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVu ZGVudCBsaWJyYXJpZXMKIyB0byBydW50aW1lIHBhdGggbGlzdC4KaW5oZXJp dF9ycGF0aD1ubwoKIyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJv Z3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCmxp bmtfYWxsX2RlcGxpYnM9dW5rbm93bgoKIyBTZXQgdG8gInllcyIgaWYgZXhw b3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCmFsd2F5c19leHBvcnRfc3lt Ym9scz1ubwoKIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1i b2xzLgpleHBvcnRfc3ltYm9sc19jbWRzPSIiCgojIFN5bWJvbHMgdGhhdCBz aG91bGQgbm90IGJlIGxpc3RlZCBpbiB0aGUgcHJlbG9hZGVkIHN5bWJvbHMu CmV4Y2x1ZGVfZXhwc3ltcz0iIgoKIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdh eXMgYmUgZXhwb3J0ZWQuCmluY2x1ZGVfZXhwc3ltcz0iIgoKIyBDb21tYW5k cyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGli cmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KcHJlbGlua19jbWRzPSIiCgojIENv bW1hbmRzIG5lY2Vzc2FyeSBmb3IgZmluaXNoaW5nIGxpbmtpbmcgcHJvZ3Jh bXMuCnBvc3RsaW5rX2NtZHM9IiIKCiMgU3BlY2lmeSBmaWxlbmFtZSBjb250 YWluaW5nIGlucHV0IGZpbGVzLgpmaWxlX2xpc3Rfc3BlYz0iIgoKIyBIb3cg dG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhl Y3V0YWJsZS4KaGFyZGNvZGVfYWN0aW9uPQoKIyBUaGUgZGlyZWN0b3JpZXMg c2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hh cmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0iIgoKIyBE ZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2Jq ZWN0cyBiZWluZyBsaW5rZWQgdG8KIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFy eS4KcHJlZGVwX29iamVjdHM9IiIKcG9zdGRlcF9vYmplY3RzPSIiCnByZWRl cHM9IiIKcG9zdGRlcHM9IiIKCiMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGgg dXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcK IyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9 IiIKCiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IEZDCgojICMjIyBC RUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IEdPCgojIFRoZSBsaW5rZXIgdXNl ZCB0byBidWlsZCBsaWJyYXJpZXMuCkxEPSJjOi90aW5ndy9taW5ndzMyL2Jp bi9sZC5leGUiCgojIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZXMuCnJlbG9hZF9mbGFnPSIgLXIiCnJlbG9hZF9jbWRzPSJcJExEXCRy ZWxvYWRfZmxhZyAtbyBcJG91dHB1dFwkcmVsb2FkX29ianMiCgojIENvbW1h bmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCm9sZF9h cmNoaXZlX2NtZHM9IlwkQVIgXCRBUl9GTEFHUyBcJG9sZGxpYlwkb2xkb2Jq c35cJFJBTkxJQiBcJHRvb2xfb2xkbGliIgoKIyBBIGxhbmd1YWdlIHNwZWNp ZmljIGNvbXBpbGVyLgpDQz0iIgoKIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdO VSBjb21waWxlcj8Kd2l0aF9nY2M9CgojIENvbXBpbGVyIGZsYWcgdG8gdHVy biBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCm5vX2J1aWx0aW5fZmxhZz0iIgoK IyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJy YXJ5IG9iamVjdHMuCnBpY19mbGFnPSIiCgojIEhvdyB0byBwYXNzIGEgbGlu a2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCndsPSIiCgojIENvbXBp bGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCmxpbmtfc3Rh dGljX2ZsYWc9IiIKCiMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBz dXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwpjb21waWxlcl9jX289IiIKCiMg V2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVk IGxpYnJhcmllcy4KYnVpbGRfbGlidG9vbF9uZWVkX2xjPW5vCgojIFdoZXRo ZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGlt ZSBsaWJzIGFyZSBzdGF0aWMuCmFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0 YXRpY19ydW50aW1lcz0KCiMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZs ZXhpdmUgZGxvcGVucy4KZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSIiCgoj IENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGly ZWN0bHkgZnJvbSBhcmNoaXZlcy4Kd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9 IiIKCiMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5n IG5vIG9iamVjdHMgZGlyZWN0bHkuCmNvbXBpbGVyX25lZWRzX29iamVjdD0i IgoKIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJl ZCBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSIiCgojIENy ZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGlu c3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHM9IiIKCiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNo YXJlZCBhcmNoaXZlLgphcmNoaXZlX2NtZHM9IiIKYXJjaGl2ZV9leHBzeW1f Y21kcz0iIgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUg bW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5nCiMgYSBzaGFyZWQg YXJjaGl2ZS4KbW9kdWxlX2NtZHM9IiIKbW9kdWxlX2V4cHN5bV9jbWRzPSIi CgojIFdoZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5v dC4Kd2l0aF9nbnVfbGQ9IiIKCiMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQg bGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQu CmFsbG93X3VuZGVmaW5lZF9mbGFnPSIiCgojIEZsYWcgdGhhdCBlbmZvcmNl cyBubyB1bmRlZmluZWQgc3ltYm9scy4Kbm9fdW5kZWZpbmVkX2ZsYWc9IiIK CiMgRmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkgZHVy aW5nIGxpbmtpbmcuCiMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGly IGRvZXMgbm90IGV4aXN0CmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9IiIK CiMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0 aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcj0iIgoKIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUk e3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwojIERJUiBp bnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9kaXJlY3Q9Cgoj IFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4 dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCiMgRElSIGludG8gdGhlIHJl c3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBl bmRlbmN5IGlzCiMgImFic29sdXRlIixpLmUgaW1wb3NzaWJsZSB0byBjaGFu Z2UgYnkgc2V0dGluZyAke3NobGlicGF0aF92YXJ9IGlmIHRoZQojIGxpYnJh cnkgaXMgcmVsb2NhdGVkLgpoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9Cgoj IFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgcmVzdWx0aW5nIGJp bmFyeS4KaGFyZGNvZGVfbWludXNfTD0KCiMgU2V0IHRvICJ5ZXMiIGlmIHVz aW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2Rl cyBESVIKIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9z aGxpYnBhdGhfdmFyPQoKIyBTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBz aGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKIyBp bnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMg YW5kIGV4ZWN1dGFibGVzIGxpbmtlZAojIGFnYWluc3QgaXQuCmhhcmRjb2Rl X2F1dG9tYXRpYz0KCiMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50 aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKIyB0byBydW50aW1l IHBhdGggbGlzdC4KaW5oZXJpdF9ycGF0aD0KCiMgV2hldGhlciBsaWJ0b29s IG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVu Y3kgbGlicmFyaWVzLgpsaW5rX2FsbF9kZXBsaWJzPQoKIyBTZXQgdG8gInll cyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCmFsd2F5c19l eHBvcnRfc3ltYm9scz0KCiMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0 ZWQgc3ltYm9scy4KZXhwb3J0X3N5bWJvbHNfY21kcz0iIgoKIyBTeW1ib2xz IHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBz eW1ib2xzLgpleGNsdWRlX2V4cHN5bXM9IiIKCiMgU3ltYm9scyB0aGF0IG11 c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgppbmNsdWRlX2V4cHN5bXM9IiIKCiMg Q29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2Fp bnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMuCnByZWxpbmtfY21kcz0i IgoKIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5n IHByb2dyYW1zLgpwb3N0bGlua19jbWRzPSIiCgojIFNwZWNpZnkgZmlsZW5h bWUgY29udGFpbmluZyBpbnB1dCBmaWxlcy4KZmlsZV9saXN0X3NwZWM9IiIK CiMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRv IGFuIGV4ZWN1dGFibGUuCmhhcmRjb2RlX2FjdGlvbj0KCiMgVGhlIGRpcmVj dG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGlu ZyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9 IiIKCiMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIg dGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCiMgY3JlYXRlIGEgc2hhcmVk IGxpYnJhcnkuCnByZWRlcF9vYmplY3RzPSIiCnBvc3RkZXBfb2JqZWN0cz0i IgpwcmVkZXBzPSIiCnBvc3RkZXBzPSIiCgojIFRoZSBsaWJyYXJ5IHNlYXJj aCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBs aW5raW5nCiMgYSBzaGFyZWQgbGlicmFyeS4KY29tcGlsZXJfbGliX3NlYXJj aF9wYXRoPSIiCgojICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBHTwoK IyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBHQ0oKCiMgVGhlIGxp bmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KTEQ9ImM6L3Rpbmd3L21p bmd3MzIvYmluL2xkLmV4ZSIKCiMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxl IG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9IiAtciIKcmVsb2FkX2NtZHM9 IlwkTERcJHJlbG9hZF9mbGFnIC1vIFwkb3V0cHV0XCRyZWxvYWRfb2JqcyIK CiMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2 ZS4Kb2xkX2FyY2hpdmVfY21kcz0iXCRBUiBcJEFSX0ZMQUdTIFwkb2xkbGli XCRvbGRvYmpzflwkUkFOTElCIFwkdG9vbF9vbGRsaWIiCgojIEEgbGFuZ3Vh Z2Ugc3BlY2lmaWMgY29tcGlsZXIuCkNDPSIiCgojIElzIHRoZSBjb21waWxl ciB0aGUgR05VIGNvbXBpbGVyPwp3aXRoX2djYz0KCiMgQ29tcGlsZXIgZmxh ZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4Kbm9fYnVpbHRpbl9m bGFnPSIiCgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MgZm9yIGJ1aWxk aW5nIGxpYnJhcnkgb2JqZWN0cy4KcGljX2ZsYWc9IiIKCiMgSG93IHRvIHBh c3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4Kd2w9IiIK CiMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4K bGlua19zdGF0aWNfZmxhZz0iIgoKIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFu ZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CmNvbXBpbGVyX2Nf bz0iIgoKIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGlu ZyBzaGFyZWQgbGlicmFyaWVzLgpidWlsZF9saWJ0b29sX25lZWRfbGM9bm8K CiMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hl biBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KYWxsb3dfbGlidG9vbF9saWJz X3dpdGhfc3RhdGljX3J1bnRpbWVzPQoKIyBDb21waWxlciBmbGFnIHRvIGFs bG93IHJlZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWM9IiIKCiMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2Jq ZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgp3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0iIgoKIyBXaGV0aGVyIHRoZSBjb21waWxlciBjb3BlcyB3aXRo IHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KY29tcGlsZXJfbmVlZHNf b2JqZWN0PSIiCgojIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9t IGEgc2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9 IiIKCiMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRv IGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgpvbGRfYXJjaGl2 ZV9mcm9tX2V4cHN5bXNfY21kcz0iIgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1 aWxkIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0iIgphcmNoaXZl X2V4cHN5bV9jbWRzPSIiCgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBs b2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKIyBh IHNoYXJlZCBhcmNoaXZlLgptb2R1bGVfY21kcz0iIgptb2R1bGVfZXhwc3lt X2NtZHM9IiIKCiMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUg bGQgb3Igbm90Lgp3aXRoX2dudV9sZD0iIgoKIyBGbGFnIHRoYXQgYWxsb3dz IHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBi ZSBidWlsdC4KYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiIKCiMgRmxhZyB0aGF0 IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgpub191bmRlZmluZWRf ZmxhZz0iIgoKIyBGbGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJp bmFyeSBkdXJpbmcgbGlua2luZy4KIyBUaGlzIG11c3Qgd29yayBldmVuIGlm ICRsaWJkaXIgZG9lcyBub3QgZXhpc3QKaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0iIgoKIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIg ZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgpoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yPSIiCgojIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIv bGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVz CiMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX2Rp cmVjdD0KCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtz aGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJy YXJ5IGRlcGVuZGVuY3kgaXMKIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxl IHRvIGNoYW5nZSBieSBzZXR0aW5nICR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhl CiMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCmhhcmRjb2RlX2RpcmVjdF9hYnNv bHV0ZT0KCiMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFn IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKIyBpbnRvIHRoZSByZXN1 bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9taW51c19MPQoKIyBTZXQgdG8gInll cyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcg aGFyZGNvZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhh cmRjb2RlX3NobGlicGF0aF92YXI9CgojIFNldCB0byAieWVzIiBpZiBidWls ZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVz IERJUgojIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxp YnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCiMgYWdhaW5zdCBpdC4K aGFyZGNvZGVfYXV0b21hdGljPQoKIyBTZXQgdG8geWVzIGlmIGxpbmtlciBh ZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwojIHRv IHJ1bnRpbWUgcGF0aCBsaXN0Lgppbmhlcml0X3JwYXRoPQoKIyBXaGV0aGVy IGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMg ZGVwZW5kZW5jeSBsaWJyYXJpZXMuCmxpbmtfYWxsX2RlcGxpYnM9CgojIFNl dCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4K YWx3YXlzX2V4cG9ydF9zeW1ib2xzPQoKIyBUaGUgY29tbWFuZHMgdG8gbGlz dCBleHBvcnRlZCBzeW1ib2xzLgpleHBvcnRfc3ltYm9sc19jbWRzPSIiCgoj IFN5bWJvbHMgdGhhdCBzaG91bGQgbm90IGJlIGxpc3RlZCBpbiB0aGUgcHJl bG9hZGVkIHN5bWJvbHMuCmV4Y2x1ZGVfZXhwc3ltcz0iIgoKIyBTeW1ib2xz IHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCmluY2x1ZGVfZXhwc3lt cz0iIgoKIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3Jh bXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KcHJlbGlu a19jbWRzPSIiCgojIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgZmluaXNoaW5n IGxpbmtpbmcgcHJvZ3JhbXMuCnBvc3RsaW5rX2NtZHM9IiIKCiMgU3BlY2lm eSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzLgpmaWxlX2xpc3Rf c3BlYz0iIgoKIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBw YXRoIGludG8gYW4gZXhlY3V0YWJsZS4KaGFyZGNvZGVfYWN0aW9uPQoKIyBU aGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVu IGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFy Y2hfZGlycz0iIgoKIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFu ZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KIyBjcmVhdGUg YSBzaGFyZWQgbGlicmFyeS4KcHJlZGVwX29iamVjdHM9IiIKcG9zdGRlcF9v YmplY3RzPSIiCnByZWRlcHM9IiIKcG9zdGRlcHM9IiIKCiMgVGhlIGxpYnJh cnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxl ciB3aGVuIGxpbmtpbmcKIyBhIHNoYXJlZCBsaWJyYXJ5Lgpjb21waWxlcl9s aWJfc2VhcmNoX3BhdGg9IiIKCiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05G SUc6IEdDSgoKIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBSQwoK IyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgpMRD0iIgoK IyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgpyZWxv YWRfZmxhZz0iIgpyZWxvYWRfY21kcz0iIgoKIyBDb21tYW5kcyB1c2VkIHRv IGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgpvbGRfYXJjaGl2ZV9jbWRz PSIiCgojIEEgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCkNDPSJ3aW5k cmVzIgoKIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8Kd2l0 aF9nY2M9CgojIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBm dW5jdGlvbnMuCm5vX2J1aWx0aW5fZmxhZz0iIgoKIyBBZGRpdGlvbmFsIGNv bXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCnBp Y19mbGFnPSIiCgojIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3Vn aCB0aGUgY29tcGlsZXIuCndsPSIiCgojIENvbXBpbGVyIGZsYWcgdG8gcHJl dmVudCBkeW5hbWljIGxpbmtpbmcuCmxpbmtfc3RhdGljX2ZsYWc9IiIKCiMg RG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAt byBvcHRpb25zPwpjb21waWxlcl9jX289InllcyIKCiMgV2hldGhlciBvciBu b3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4K YnVpbGRfbGlidG9vbF9uZWVkX2xjPQoKIyBXaGV0aGVyIG9yIG5vdCB0byBk aXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3Rh dGljLgphbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9 CgojIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMu CmV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0iIgoKIyBDb21waWxlciBmbGFn IHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJj aGl2ZXMuCndob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSIiCgojIFdoZXRoZXIg dGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRp cmVjdGx5Lgpjb21waWxlcl9uZWVkc19vYmplY3Q9IiIKCiMgQ3JlYXRlIGFu IG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4Kb2xk X2FyY2hpdmVfZnJvbV9uZXdfY21kcz0iIgoKIyBDcmVhdGUgYSB0ZW1wb3Jh cnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hh cmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSIi CgojIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4K YXJjaGl2ZV9jbWRzPSIiCmFyY2hpdmVfZXhwc3ltX2NtZHM9IiIKCiMgQ29t bWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZm ZXJlbnQgZnJvbSBidWlsZGluZwojIGEgc2hhcmVkIGFyY2hpdmUuCm1vZHVs ZV9jbWRzPSIiCm1vZHVsZV9leHBzeW1fY21kcz0iIgoKIyBXaGV0aGVyIHdl IGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBvciBub3QuCndpdGhfZ251X2xk PSIiCgojIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRo IHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgphbGxvd191bmRlZmlu ZWRfZmxhZz0iIgoKIyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVk IHN5bWJvbHMuCm5vX3VuZGVmaW5lZF9mbGFnPSIiCgojIEZsYWcgdG8gaGFy ZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgoj IFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlz dApoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSIiCgojIFdoZXRoZXIgd2Ug bmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQg YXJndW1lbnQuCmhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9IiIKCiMgU2V0 IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMKIyBESVIgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeS4KaGFyZGNvZGVfZGlyZWN0PQoKIyBTZXQgdG8gInllcyIg aWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5r aW5nIGhhcmRjb2RlcwojIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5 IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcwojICJh YnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcg JHtzaGxpYnBhdGhfdmFyfSBpZiB0aGUKIyBsaWJyYXJ5IGlzIHJlbG9jYXRl ZC4KaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPQoKIyBTZXQgdG8gInllcyIg aWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzIERJUgojIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2Rl X21pbnVzX0w9CgojIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhf VkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCiMgaW50byB0 aGUgcmVzdWx0aW5nIGJpbmFyeS4KaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0K CiMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkg YXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCiMgaW50byB0aGUgbGlicmFy eSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxl cyBsaW5rZWQKIyBhZ2FpbnN0IGl0LgpoYXJkY29kZV9hdXRvbWF0aWM9Cgoj IFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBk ZXBlbmRlbnQgbGlicmFyaWVzCiMgdG8gcnVudGltZSBwYXRoIGxpc3QuCmlu aGVyaXRfcnBhdGg9CgojIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBw cm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4K bGlua19hbGxfZGVwbGlicz0KCiMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVk IHN5bWJvbHMgYXJlIHJlcXVpcmVkLgphbHdheXNfZXhwb3J0X3N5bWJvbHM9 CgojIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCmV4 cG9ydF9zeW1ib2xzX2NtZHM9IiIKCiMgU3ltYm9scyB0aGF0IHNob3VsZCBu b3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KZXhjbHVk ZV9leHBzeW1zPSIiCgojIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBl eHBvcnRlZC4KaW5jbHVkZV9leHBzeW1zPSIiCgojIENvbW1hbmRzIG5lY2Vz c2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMp IHdpdGggdGVtcGxhdGVzLgpwcmVsaW5rX2NtZHM9IiIKCiMgQ29tbWFuZHMg bmVjZXNzYXJ5IGZvciBmaW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4KcG9z dGxpbmtfY21kcz0iIgoKIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcg aW5wdXQgZmlsZXMuCmZpbGVfbGlzdF9zcGVjPSIiCgojIEhvdyB0byBoYXJk Y29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxl LgpoYXJkY29kZV9hY3Rpb249CgojIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hl ZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGli cmFyeS4KY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSIiCgojIERlcGVuZGVu Y2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJl aW5nIGxpbmtlZCB0bwojIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgpwcmVk ZXBfb2JqZWN0cz0iIgpwb3N0ZGVwX29iamVjdHM9IiIKcHJlZGVwcz0iIgpw b3N0ZGVwcz0iIgoKIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGlu dGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZwojIGEgc2hh cmVkIGxpYnJhcnkuCmNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0iIgoKIyAj IyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogUkMK --_----------=_13840355941782731 Content-Disposition: attachment; filename="testsuite.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="testsuite.log" IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIGNvbXBpbGF0aW9u IC0qLQo5Ny4gbm9ucmVjdXJzaXZlLmF0OjEyNjogdGVzdGluZyBpbnN0YWxs YWJsZSBsaWJsdGRsIC4uLgpsaWJ0b29saXplOiBwdXR0aW5nIGF1eGlsaWFy eSBmaWxlcyBpbiBBQ19DT05GSUdfQVVYX0RJUiwgYGx0ZGwvY29uZmlnJy4K bGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2NvbmZpZy9sdG1haW4u c2gnCmxpYnRvb2xpemU6IHB1dHRpbmcgbWFjcm9zIGluIEFDX0NPTkZJR19N QUNST19ESVIsIGBsdGRsL200Jy4KbGlidG9vbGl6ZTogY29weWluZyBmaWxl IGBsdGRsL200L2FyZ3oubTQnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBg bHRkbC9tNC9saWJ0b29sLm00JwpsaWJ0b29saXplOiBjb3B5aW5nIGZpbGUg YGx0ZGwvbTQvbHRkbC5tNCcKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBs dGRsL200L2x0b3B0aW9ucy5tNCcKbGlidG9vbGl6ZTogY29weWluZyBmaWxl IGBsdGRsL200L2x0c3VnYXIubTQnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmls ZSBgbHRkbC9tNC9sdHZlcnNpb24ubTQnCmxpYnRvb2xpemU6IGNvcHlpbmcg ZmlsZSBgbHRkbC9tNC9sdH5vYnNvbGV0ZS5tNCcKbGlidG9vbGl6ZTogcHV0 dGluZyBsaWJsdGRsIGZpbGVzIGluIExUX0NPTkZJR19MVERMX0RJUiwgYGx0 ZGwnLgpsaWJ0b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvQ09QWUlORy5M SUInCmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9SRUFETUUnCmxp YnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9hcmd6Xy5oJwpsaWJ0b29s aXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvYXJnei5jJwpsaWJ0b29saXplOiBj b3B5aW5nIGZpbGUgYGx0ZGwvbG9hZGVycy9kbGRfbGluay5jJwpsaWJ0b29s aXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbG9hZGVycy9kbG9wZW4uYycKbGli dG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2xvYWRlcnMvZHlsZC5jJwps aWJ0b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbG9hZGVycy9sb2FkX2Fk ZF9vbi5jJwpsaWJ0b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbG9hZGVy cy9sb2FkbGlicmFyeS5jJwpsaWJ0b29saXplOiBjb3B5aW5nIGZpbGUgYGx0 ZGwvbG9hZGVycy9zaGxfbG9hZC5jJwpsaWJ0b29saXplOiBjb3B5aW5nIGZp bGUgYGx0ZGwvbHRfX2RpcmVudC5jJwpsaWJ0b29saXplOiBjb3B5aW5nIGZp bGUgYGx0ZGwvbHRfX3N0cmwuYycKbGlidG9vbGl6ZTogY29weWluZyBmaWxl IGBsdGRsL2xpYmx0ZGwvbHRfX2FsbG9jLmgnCmxpYnRvb2xpemU6IGNvcHlp bmcgZmlsZSBgbHRkbC9saWJsdGRsL2x0X19kaXJlbnQuaCcKbGlidG9vbGl6 ZTogY29weWluZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRfX2dsaWJjLmgnCmxp YnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9saWJsdGRsL2x0X19wcml2 YXRlLmgnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9saWJsdGRs L2x0X19zdHJsLmgnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9s aWJsdGRsL2x0X2RsbG9hZGVyLmgnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmls ZSBgbHRkbC9saWJsdGRsL2x0X2Vycm9yLmgnCmxpYnRvb2xpemU6IGNvcHlp bmcgZmlsZSBgbHRkbC9saWJsdGRsL2x0X3N5c3RlbS5oJwpsaWJ0b29saXpl OiBjb3B5aW5nIGZpbGUgYGx0ZGwvbGlibHRkbC9zbGlzdC5oJwpsaWJ0b29s aXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbG9hZGVycy9wcmVvcGVuLmMnCmxp YnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sdF9fYWxsb2MuYycKbGli dG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2x0X2RsbG9hZGVyLmMnCmxp YnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sdF9lcnJvci5jJwpsaWJ0 b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbHRkbC5jJwpsaWJ0b29saXpl OiBjb3B5aW5nIGZpbGUgYGx0ZGwvbHRkbC5oJwpsaWJ0b29saXplOiBjb3B5 aW5nIGZpbGUgYGx0ZGwvc2xpc3QuYycKbGlidG9vbGl6ZTogY3JlYXRpbmcg ZmlsZSBgbHRkbC9NYWtlZmlsZS5pbmMnCi9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvbm9ucmVjdXJzaXZlLmF0OjEz MzogaWYgdGVzdCAtZiBsdGRsL2NvbmZpZ3VyZS5hYzsgdGhlbiBmYWxzZTsg ZmkKL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90 ZXN0cy9ub25yZWN1cnNpdmUuYXQ6MTQwOiAkQUNMT0NBTCAtSSBsdGRsL200 CnN0ZGVycjoKc3Rkb3V0OgovTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9s aWJ0b29sLTIuNC4yL3Rlc3RzL25vbnJlY3Vyc2l2ZS5hdDoxNDA6ICRBVVRP SEVBREVSIApzdGRlcnI6CnN0ZG91dDoKL01pbkdXL3NoYXJlL2F1dG9tYWtl LTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9ub25yZWN1cnNpdmUuYXQ6MTQw OiAkQVVUT01BS0UgLS1hZGQtbWlzc2luZyAtLWNvcHkKc3RkZXJyOgpjb25m aWd1cmUuYWM6OTogaW5zdGFsbGluZyBgbHRkbC9jb25maWcvY29tcGlsZScK Y29uZmlndXJlLmFjOjEwOiBpbnN0YWxsaW5nIGBsdGRsL2NvbmZpZy9jb25m aWcuZ3Vlc3MnCmNvbmZpZ3VyZS5hYzoxMDogaW5zdGFsbGluZyBgbHRkbC9j b25maWcvY29uZmlnLnN1YicKY29uZmlndXJlLmFjOjc6IGluc3RhbGxpbmcg YGx0ZGwvY29uZmlnL2luc3RhbGwtc2gnCmNvbmZpZ3VyZS5hYzo3OiBpbnN0 YWxsaW5nIGBsdGRsL2NvbmZpZy9taXNzaW5nJwpNYWtlZmlsZS5hbTogaW5z dGFsbGluZyBgbHRkbC9jb25maWcvZGVwY29tcCcKc3Rkb3V0OgovTWluR1cv c2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL25vbnJl Y3Vyc2l2ZS5hdDoxNDA6ICRBVVRPQ09ORiAKc3RkZXJyOgpzdGRvdXQ6Ci9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMv bm9ucmVjdXJzaXZlLmF0OjE0MDogOiAke0NPTkZJR19TSEVMTD0vYmluL3No fTsgZXhwb3J0IENPTkZJR19TSEVMTDsgCSAgJENPTkZJR19TSEVMTCAuL2Nv bmZpZ3VyZSAkY29uZmlndXJlX29wdGlvbnMgLS1lbmFibGUtbHRkbC1pbnN0 YWxsIC0tcHJlZml4PSRwcmVmaXgKc3RkZXJyOgpzdGRvdXQ6CmNoZWNraW5n IGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL2Jpbi9pbnN0YWxs IC1jCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2Fu ZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAu Li4gL2Jpbi9ta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBnYXdrCmNo ZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNr aW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29t cGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRl ZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLmV4ZQpjaGVja2luZyBmb3Ig c3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIC5leGUKY2hlY2tpbmcgd2hldGhl ciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBz dWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB3 ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uIHllcwpjaGVja2lu ZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2luZyBmb3Ig Z2NjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OS4uLiBub25lIG5lZWRlZApj aGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5IG1ha2UuLi4g R05VCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjLi4uIGdjYzMK Y2hlY2tpbmcgd2hldGhlciBnY2MgYW5kIGNjIHVuZGVyc3RhbmQgLWMgYW5k IC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlw ZS4uLiBpNjg2LXBjLW1pbmd3MzIKY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlw ZS4uLiBpNjg2LXBjLW1pbmd3MzIKY2hlY2tpbmcgaG93IHRvIHByaW50IHN0 cmluZ3MuLi4gcHJpbnRmCmNoZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMg bm90IHRydW5jYXRlIG91dHB1dC4uLiAvYmluL3NlZApjaGVja2luZyBmb3Ig Z3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUuLi4gL2Jpbi9n cmVwCmNoZWNraW5nIGZvciBlZ3JlcC4uLiAvYmluL2dyZXAgLUUKY2hlY2tp bmcgZm9yIGZncmVwLi4uIC9iaW4vZ3JlcCAtRgpjaGVja2luZyBmb3IgbGQg dXNlZCBieSBnY2MuLi4gYzovdGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlCmNo ZWNraW5nIGlmIHRoZSBsaW5rZXIgKGM6L3Rpbmd3L21pbmd3MzIvYmluL2xk LmV4ZSkgaXMgR05VIGxkLi4uIHllcwpjaGVja2luZyBmb3IgQlNELSBvciBN Uy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSkuLi4gL2Jpbi9ubSAtQgpj aGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKC9iaW4vbm0gLUIpIGludGVyZmFj ZS4uLiBCU0Qgbm0KY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiBu bywgdXNpbmcgY3AgLXAKY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9m IGNvbW1hbmQgbGluZSBhcmd1bWVudHMuLi4gODE5MgpjaGVja2luZyB3aGV0 aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3Rz Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5k cyAiKz0iLi4uIHllcwpjaGVja2luZyBob3cgdG8gY29udmVydCBpNjg2LXBj LW1pbmd3MzIgZmlsZSBuYW1lcyB0byBpNjg2LXBjLW1pbmd3MzIgZm9ybWF0 Li4uIChjYWNoZWQpIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCmNo ZWNraW5nIGhvdyB0byBjb252ZXJ0IGk2ODYtcGMtbWluZ3czMiBmaWxlIG5h bWVzIHRvIHRvb2xjaGFpbiBmb3JtYXQuLi4gKGNhY2hlZCkgZnVuY19jb252 ZXJ0X2ZpbGVfbXN5c190b193MzIKY2hlY2tpbmcgZm9yIGM6L3Rpbmd3L21p bmd3MzIvYmluL2xkLmV4ZSBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxl cy4uLiAtcgpjaGVja2luZyBmb3Igb2JqZHVtcC4uLiBvYmpkdW1wCmNoZWNr aW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllcy4uLiBm aWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwKY2hlY2tp bmcgZm9yIGRsbHRvb2wuLi4gZGxsdG9vbApjaGVja2luZyBob3cgdG8gYXNz b2NpYXRlIHJ1bnRpbWUgYW5kIGxpbmsgbGlicmFyaWVzLi4uIGZ1bmNfY3ln bWluZ19kbGxfZm9yX2ltcGxpYgpjaGVja2luZyBmb3IgYXJjaGl2ZXIgQEZJ TEUgc3VwcG9ydC4uLiBACmNoZWNraW5nIGZvciBzdHJpcC4uLiBzdHJpcApj aGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyBjb21tYW5k IHRvIHBhcnNlIC9iaW4vbm0gLUIgb3V0cHV0IGZyb20gZ2NjIG9iamVjdC4u LiBvawpjaGVja2luZyBmb3Igc3lzcm9vdC4uLiBubwpjaGVja2luZyBmb3Ig bXQuLi4gOgpjaGVja2luZyBpZiA6IGlzIGEgbWFuaWZlc3QgdG9vbC4uLiBu bwpjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvci4uLiBn Y2MgLUUKY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4geWVz CmNoZWNraW5nIGZvciBzeXMvdHlwZXMuaC4uLiB5ZXMKY2hlY2tpbmcgZm9y IHN5cy9zdGF0LmguLi4geWVzCmNoZWNraW5nIGZvciBzdGRsaWIuaC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIHN0cmluZy5oLi4uIHllcwpjaGVja2luZyBmb3Ig bWVtb3J5LmguLi4geWVzCmNoZWNraW5nIGZvciBzdHJpbmdzLmguLi4geWVz CmNoZWNraW5nIGZvciBpbnR0eXBlcy5oLi4uIHllcwpjaGVja2luZyBmb3Ig c3RkaW50LmguLi4geWVzCmNoZWNraW5nIGZvciB1bmlzdGQuaC4uLiB5ZXMK Y2hlY2tpbmcgZm9yIGRsZmNuLmguLi4gbm8KY2hlY2tpbmcgZm9yIG9iamRp ci4uLiAubGlicwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWZuby1ydHRp IC1mbm8tZXhjZXB0aW9ucy4uLiBubwpjaGVja2luZyBmb3IgZ2NjIG9wdGlv biB0byBwcm9kdWNlIFBJQy4uLiAtRERMTF9FWFBPUlQgLURQSUMKY2hlY2tp bmcgaWYgZ2NjIFBJQyBmbGFnIC1ERExMX0VYUE9SVCAtRFBJQyB3b3Jrcy4u LiB5ZXMKY2hlY2tpbmcgaWYgZ2NjIHN0YXRpYyBmbGFnIC1zdGF0aWMgd29y a3MuLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0cyAtYyAtbyBmaWxl Lm8uLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0cyAtYyAtbyBmaWxl Lm8uLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIHdoZXRoZXIgdGhlIGdjYyBs aW5rZXIgKGM6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZSkgc3VwcG9ydHMg c2hhcmVkIGxpYnJhcmllcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciAtbGMg c2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4uIHllcwpjaGVja2lu ZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gV2luMzIgbGQu ZXhlCmNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGlu dG8gcHJvZ3JhbXMuLi4gaW1tZWRpYXRlCmNoZWNraW5nIHdoZXRoZXIgc3Ry aXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZS4uLiB5ZXMKY2hlY2tpbmcg aWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uIHllcwpj aGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuLi4g eWVzCmNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmll cy4uLiB5ZXMKY2hlY2tpbmcgd2hpY2ggZXh0ZW5zaW9uIGlzIHVzZWQgZm9y IHJ1bnRpbWUgbG9hZGFibGUgbW9kdWxlcy4uLiAuZGxsCmNoZWNraW5nIHdo aWNoIHZhcmlhYmxlIHNwZWNpZmllcyBydW4tdGltZSBtb2R1bGUgc2VhcmNo IHBhdGguLi4gUEFUSApjaGVja2luZyBmb3IgdGhlIGRlZmF1bHQgbGlicmFy eSBzZWFyY2ggcGF0aC4uLiAvbGliIC91c3IvbGliCmNoZWNraW5nIGZvciBs aWJyYXJ5IGNvbnRhaW5pbmcgZGxvcGVuLi4uIG5vCmNoZWNraW5nIGZvciBk bG9wZW4gaW4gLWxzdmxkLi4uIG5vCmNoZWNraW5nIGZvciBzaGxfbG9hZC4u LiBubwpjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQuLi4gbm8KY2hl Y2tpbmcgd2hldGhlciBjeWd3aW5fY29udl9wYXRoIGlzIGRlY2xhcmVkLi4u IG5vCmNoZWNraW5nIGZvciBkbGRfbGluayBpbiAtbGRsZC4uLiBubwpjaGVj a2luZyBmb3IgXyBwcmVmaXggaW4gY29tcGlsZWQgc3ltYm9scy4uLiB5ZXMK Y2hlY2tpbmcgd2hldGhlciBkZXBsaWJzIGFyZSBsb2FkZWQgYnkgZGxvcGVu Li4uIHVua25vd24KY2hlY2tpbmcgZm9yIGFyZ3ouaC4uLiBubwpjaGVja2lu ZyBmb3IgZXJyb3JfdC4uLiBubwpjaGVja2luZyBmb3IgYXJnel9hZGQuLi4g bm8KY2hlY2tpbmcgZm9yIGFyZ3pfYXBwZW5kLi4uIG5vCmNoZWNraW5nIGZv ciBhcmd6X2NvdW50Li4uIG5vCmNoZWNraW5nIGZvciBhcmd6X2NyZWF0ZV9z ZXAuLi4gbm8KY2hlY2tpbmcgZm9yIGFyZ3pfaW5zZXJ0Li4uIG5vCmNoZWNr aW5nIGZvciBhcmd6X25leHQuLi4gbm8KY2hlY2tpbmcgZm9yIGFyZ3pfc3Ry aW5naWZ5Li4uIG5vCmNoZWNraW5nIHdoZXRoZXIgbGlidG9vbCBzdXBwb3J0 cyAtZGxvcGVuLy1kbHByZW9wZW4uLi4geWVzCmNoZWNraW5nIGZvciBsdGRs LmguLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbHRfZGxpbnRlcmZhY2VfcmVn aXN0ZXIgaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5nIGZvciBsdF9kbGFk dmlzZV9wcmVsb2FkIGluIC1sbHRkbC4uLiB5ZXMKY2hlY2tpbmcgd2hlcmUg dG8gZmluZCBsaWJsdGRsIGhlYWRlcnMuLi4gCmNoZWNraW5nIHdoZXJlIHRv IGZpbmQgbGlibHRkbCBsaWJyYXJ5Li4uIC1sbHRkbApjaGVja2luZyBmb3Ig dW5pc3RkLmguLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBkbC5oLi4u IG5vCmNoZWNraW5nIGZvciBzeXMvZGwuaC4uLiBubwpjaGVja2luZyBmb3Ig ZGxkLmguLi4gbm8KY2hlY2tpbmcgZm9yIG1hY2gtby9keWxkLmguLi4gbm8K Y2hlY2tpbmcgZm9yIGRpcmVudC5oLi4uIHllcwpjaGVja2luZyBmb3IgY2xv c2VkaXIuLi4geWVzCmNoZWNraW5nIGZvciBvcGVuZGlyLi4uIHllcwpjaGVj a2luZyBmb3IgcmVhZGRpci4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cmxjYXQu Li4gbm8KY2hlY2tpbmcgZm9yIHN0cmxjcHkuLi4gbm8KY29uZmlndXJlOiBj cmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRp bmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgY29uZmlnLmgK Y29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCmNv bmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBsaWJ0b29sIGNvbW1hbmRzCi9NaW5H Vy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvbm9u cmVjdXJzaXZlLmF0OjE0MDogJHVuc2V0IExJQlRPT0wgTElCVE9PTElaRTsg JE1BS0UgJHRhcmdldCAKc3RkZXJyOgpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Li9sdGRsL2xpYmx0ZGwvbHRfX2dsaWJjLmg6NjE6MCwNCiAgICAgICAgICAg ICAgICAgZnJvbSAuL2x0ZGwvbGlibHRkbC9sdF9fcHJpdmF0ZS5oOjU0LA0K ICAgICAgICAgICAgICAgICBmcm9tIGx0ZGwvbG9hZGVycy9wcmVvcGVuLmM6 MzI6DQpsdGRsL2FyZ3ouaDo0MzowOiB3YXJuaW5nOiAiTFRfU0NPUEUiIHJl ZGVmaW5lZCBbZW5hYmxlZCBieSBkZWZhdWx0XQ0KICMgIGRlZmluZSBMVF9T Q09QRQ0KIF4NCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2x0ZGwvbGlibHRk bC9sdF9fYWxsb2MuaDozNDowLA0KICAgICAgICAgICAgICAgICBmcm9tIC4v bHRkbC9saWJsdGRsL2x0X19wcml2YXRlLmg6NTEsDQogICAgICAgICAgICAg ICAgIGZyb20gbHRkbC9sb2FkZXJzL3ByZW9wZW4uYzozMjoNCi4vbHRkbC9s aWJsdGRsL2x0X3N5c3RlbS5oOjExNjowOiBub3RlOiB0aGlzIGlzIHRoZSBs b2NhdGlvbiBvZiB0aGUgcHJldmlvdXMgZGVmaW5pdGlvbg0KICMgICAgICBk ZWZpbmUgTFRfU0NPUEUgZXh0ZXJuIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQ0K IF4NCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBsdGRsL2x0ZGwuaDozNzowLA0K ICAgICAgICAgICAgICAgICBmcm9tIC4vbHRkbC9saWJsdGRsL2x0X19wcml2 YXRlLmg6NTcsDQogICAgICAgICAgICAgICAgIGZyb20gbHRkbC9sb2FkZXJz L3ByZW9wZW4uYzozMjoNCmx0ZGwvbGlibHRkbC9sdF9lcnJvci5oOjc5OjEw OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19f YXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCBsdF9k bGFkZGVycm9yIChjb25zdCBjaGFyICpkaWFnbm9zdGljKTsNCiAgICAgICAg ICBeDQpsdGRsL2xpYmx0ZGwvbHRfZXJyb3IuaDo4MDoxMDogZXJyb3I6IGV4 cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9f JyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgbHRfZGxzZXRlcnJvciAo aW50IGVycm9yY29kZSk7DQogICAgICAgICAgXg0KSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIGx0ZGwvbHRkbC5oOjM4OjAsDQogICAgICAgICAgICAgICAgIGZy b20gLi9sdGRsL2xpYmx0ZGwvbHRfX3ByaXZhdGUuaDo1NywNCiAgICAgICAg ICAgICAgICAgZnJvbSBsdGRsL2xvYWRlcnMvcHJlb3Blbi5jOjMyOg0KbHRk bC9saWJsdGRsL2x0X2RsbG9hZGVyLmg6NzM6MTA6IGVycm9yOiBleHBlY3Rl ZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVm b3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICBsdF9kbGxvYWRlcl9hZGQgICAg KGNvbnN0IGx0X2RsdnRhYmxlICp2dGFibGUpOw0KICAgICAgICAgIF4NCmx0 ZGwvbGlibHRkbC9sdF9kbGxvYWRlci5oOjc0OjE6IGVycm9yOiB1bmtub3du IHR5cGUgbmFtZSAnTFRfU0NPUEUnDQogTFRfU0NPUEUgbHRfZGxsb2FkZXIg bHRfZGxsb2FkZXJfbmV4dCAgIChjb25zdCBsdF9kbGxvYWRlciBsb2FkZXIp Ow0KIF4NCmx0ZGwvbGlibHRkbC9sdF9kbGxvYWRlci5oOjc0OjIyOiBlcnJv cjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmli dXRlX18nIGJlZm9yZSAnbHRfZGxsb2FkZXJfbmV4dCcNCiBMVF9TQ09QRSBs dF9kbGxvYWRlciBsdF9kbGxvYWRlcl9uZXh0ICAgKGNvbnN0IGx0X2RsbG9h ZGVyIGxvYWRlcik7DQogICAgICAgICAgICAgICAgICAgICAgXg0KbHRkbC9s aWJsdGRsL2x0X2RsbG9hZGVyLmg6NzY6MTogZXJyb3I6IHVua25vd24gdHlw ZSBuYW1lICdMVF9TQ09QRScNCiBMVF9TQ09QRSBsdF9kbHZ0YWJsZSAqIGx0 X2RsbG9hZGVyX3JlbW92ZSAoY29uc3QgY2hhciAqbmFtZSk7DQogXg0KbHRk bC9saWJsdGRsL2x0X2RsbG9hZGVyLmg6NzY6MjI6IGVycm9yOiBleHBlY3Rl ZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVm b3JlICcqJyB0b2tlbg0KIExUX1NDT1BFIGx0X2RsdnRhYmxlICogbHRfZGxs b2FkZXJfcmVtb3ZlIChjb25zdCBjaGFyICpuYW1lKTsNCiAgICAgICAgICAg ICAgICAgICAgICBeDQpsdGRsL2xpYmx0ZGwvbHRfZGxsb2FkZXIuaDo3Nzox MDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdf X2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BFIGNvbnN0 IGx0X2RsdnRhYmxlICpsdF9kbGxvYWRlcl9maW5kIChjb25zdCBjaGFyICpu YW1lKTsNCiAgICAgICAgICBeDQpsdGRsL2xpYmx0ZGwvbHRfZGxsb2FkZXIu aDo3ODoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20n IG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BF IGNvbnN0IGx0X2RsdnRhYmxlICpsdF9kbGxvYWRlcl9nZXQgKGx0X2RsbG9h ZGVyIGxvYWRlcik7DQogICAgICAgICAgXg0KSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC4vbHRkbC9saWJsdGRsL2x0X19wcml2YXRlLmg6NTc6MCwNCiAgICAg ICAgICAgICAgICAgZnJvbSBsdGRsL2xvYWRlcnMvcHJlb3Blbi5jOjMyOg0K bHRkbC9sdGRsLmg6NTM6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywg JzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQog TFRfU0NPUEUgaW50ICAgICBsdF9kbGluaXQgICh2b2lkKTsNCiAgICAgICAg ICBeDQpsdGRsL2x0ZGwuaDo1NDoxMDogZXJyb3I6IGV4cGVjdGVkICc9Jywg JywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2lu dCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0X2RsZXhpdCAgKHZvaWQpOw0KICAg ICAgICAgIF4NCmx0ZGwvbHRkbC5oOjU3OjEwOiBlcnJvcjogZXhwZWN0ZWQg Jz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9y ZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxhZGRzZWFyY2hkaXIg IChjb25zdCBjaGFyICpzZWFyY2hfZGlyKTsNCiAgICAgICAgICBeDQpsdGRs L2x0ZGwuaDo1ODoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycs ICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9T Q09QRSBpbnQgICAgIGx0X2RsaW5zZXJ0c2VhcmNoZGlyIChjb25zdCBjaGFy ICpiZWZvcmUsDQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6NjA6MTA6IGVy cm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRy aWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICAgICAgbHRf ZGxzZXRzZWFyY2hwYXRoICAoY29uc3QgY2hhciAqc2VhcmNoX3BhdGgpOw0K ICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjYxOjEwOiBlcnJvcjogZXhwZWN0 ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJl Zm9yZSAnY29uc3QnDQogTFRfU0NPUEUgY29uc3QgY2hhciAqbHRfZGxnZXRz ZWFyY2hwYXRoICAodm9pZCk7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6 NjI6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBv ciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50 ICAgICBsdF9kbGZvcmVhY2hmaWxlICAoDQogICAgICAgICAgXg0KbHRkbC9s dGRsLmg6Njg6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAn YXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NP UEUgaW50ICAgICBsdF9kbGFkdmlzZV9pbml0ICAobHRfZGxhZHZpc2UgKmFk dmlzZSk7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6Njk6MTA6IGVycm9y OiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1 dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICAgICBsdF9kbGFk dmlzZV9kZXN0cm95ICAobHRfZGxhZHZpc2UgKmFkdmlzZSk7DQogICAgICAg ICAgXg0KbHRkbC9sdGRsLmg6NzA6MTA6IGVycm9yOiBleHBlY3RlZCAnPScs ICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdp bnQnDQogTFRfU0NPUEUgaW50ICAgICBsdF9kbGFkdmlzZV9leHQgIChsdF9k bGFkdmlzZSAqYWR2aXNlKTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo3 MToxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9y ICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQg ICAgIGx0X2RsYWR2aXNlX3Jlc2lkZW50IChsdF9kbGFkdmlzZSAqYWR2aXNl KTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo3MjoxMDogZXJyb3I6IGV4 cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9f JyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0X2RsYWR2aXNl X2xvY2FsICAobHRfZGxhZHZpc2UgKmFkdmlzZSk7DQogICAgICAgICAgXg0K bHRkbC9sdGRsLmg6NzM6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywg JzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQog TFRfU0NPUEUgaW50ICAgICBsdF9kbGFkdmlzZV9nbG9iYWwgICAobHRfZGxh ZHZpc2UgKmFkdmlzZSk7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6NzQ6 MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAn X19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICAg ICBsdF9kbGFkdmlzZV9wcmVsb2FkICAobHRfZGxhZHZpc2UgKmFkdmlzZSk7 DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6Nzc6MTogZXJyb3I6IHVua25v d24gdHlwZSBuYW1lICdMVF9TQ09QRScNCiBMVF9TQ09QRSBsdF9kbGhhbmRs ZSBsdF9kbG9wZW4gIChjb25zdCBjaGFyICpmaWxlbmFtZSk7DQogXg0KbHRk bC9sdGRsLmg6Nzc6MjI6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsn LCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdsdF9kbG9wZW4n DQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxvcGVuICAoY29uc3QgY2hh ciAqZmlsZW5hbWUpOw0KICAgICAgICAgICAgICAgICAgICAgIF4NCmx0ZGwv bHRkbC5oOjc4OjE6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnTFRfU0NP UEUnDQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxvcGVuZXh0IChjb25z dCBjaGFyICpmaWxlbmFtZSk7DQogXg0KbHRkbC9sdGRsLmg6Nzg6MjI6IGVy cm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRy aWJ1dGVfXycgYmVmb3JlICdsdF9kbG9wZW5leHQnDQogTFRfU0NPUEUgbHRf ZGxoYW5kbGUgbHRfZGxvcGVuZXh0IChjb25zdCBjaGFyICpmaWxlbmFtZSk7 DQogICAgICAgICAgICAgICAgICAgICAgXg0KbHRkbC9sdGRsLmg6Nzk6MTog ZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdMVF9TQ09QRScNCiBMVF9TQ09Q RSBsdF9kbGhhbmRsZSBsdF9kbG9wZW5hZHZpc2UgKGNvbnN0IGNoYXIgKmZp bGVuYW1lLA0KIF4NCmx0ZGwvbHRkbC5oOjc5OjIyOiBlcnJvcjogZXhwZWN0 ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJl Zm9yZSAnbHRfZGxvcGVuYWR2aXNlJw0KIExUX1NDT1BFIGx0X2RsaGFuZGxl IGx0X2Rsb3BlbmFkdmlzZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsDQogICAg ICAgICAgICAgICAgICAgICAgXg0KbHRkbC9sdGRsLmg6ODE6MTA6IGVycm9y OiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1 dGVfXycgYmVmb3JlICd2b2lkJw0KIExUX1NDT1BFIHZvaWQgKiAgICAgbHRf ZGxzeW0gIChsdF9kbGhhbmRsZSBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUp Ow0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjgyOjEwOiBlcnJvcjogZXhw ZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18n IGJlZm9yZSAnY29uc3QnDQogTFRfU0NPUEUgY29uc3QgY2hhciAqbHRfZGxl cnJvciAgKHZvaWQpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjgzOjEw OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19f YXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAg bHRfZGxjbG9zZSAgKGx0X2RsaGFuZGxlIGhhbmRsZSk7DQogICAgICAgICAg Xg0KbHRkbC9sdGRsLmg6OTk6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcs JywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQn DQogTFRfU0NPUEUgaW50IGx0X2RscHJlbG9hZCAgICAgIChjb25zdCBsdF9k bHN5bWxpc3QgKnByZWxvYWRlZCk7DQogICAgICAgICAgXg0KbHRkbC9sdGRs Lmg6MTAwOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2Fz bScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BF IGludCBsdF9kbHByZWxvYWRfZGVmYXVsdCAoY29uc3QgbHRfZGxzeW1saXN0 ICpwcmVsb2FkZWQpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjEwMTox MDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdf X2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgbHRf ZGxwcmVsb2FkX29wZW4gICAgKGNvbnN0IGNoYXIgKm9yaWdpbmF0b3IsDQog ICAgICAgICAgXg0KbHRkbC9sdGRsLmg6MTIxOjE6IGVycm9yOiB1bmtub3du IHR5cGUgbmFtZSAnTFRfU0NPUEUnDQogTFRfU0NPUEUgbHRfZGxpbnRlcmZh Y2VfaWQgbHRfZGxpbnRlcmZhY2VfcmVnaXN0ZXIgKGNvbnN0IGNoYXIgKmlk X3N0cmluZywNCiBeDQpsdGRsL2x0ZGwuaDoxMjE6Mjg6IGVycm9yOiBleHBl Y3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycg YmVmb3JlICdsdF9kbGludGVyZmFjZV9yZWdpc3RlcicNCiBMVF9TQ09QRSBs dF9kbGludGVyZmFjZV9pZCBsdF9kbGludGVyZmFjZV9yZWdpc3RlciAoY29u c3QgY2hhciAqaWRfc3RyaW5nLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4NCmx0ZGwvbHRkbC5oOjEyMzoxMDogZXJyb3I6IGV4cGVjdGVkICc9 JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUg J3ZvaWQnDQogTFRfU0NPUEUgdm9pZCBsdF9kbGludGVyZmFjZV9mcmVlIChs dF9kbGludGVyZmFjZV9pZCBrZXkpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRk bC5oOjEyNDoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdh c20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ3ZvaWQnDQogTFRfU0NP UEUgdm9pZCAqIGx0X2RsY2FsbGVyX3NldF9kYXRhICAobHRfZGxpbnRlcmZh Y2VfaWQga2V5LA0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjEyNjoxMDog ZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0 dHJpYnV0ZV9fJyBiZWZvcmUgJ3ZvaWQnDQogTFRfU0NPUEUgdm9pZCAqIGx0 X2RsY2FsbGVyX2dldF9kYXRhICAobHRfZGxpbnRlcmZhY2VfaWQga2V5LA0K ICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjE0MzoxMDogZXJyb3I6IGV4cGVj dGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBi ZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BFIGNvbnN0IGx0X2RsaW5mbyAqbHRf ZGxnZXRpbmZvICAgICAobHRfZGxoYW5kbGUgaGFuZGxlKTsNCiAgICAgICAg ICBeDQpsdGRsL2x0ZGwuaDoxNDU6MTogZXJyb3I6IHVua25vd24gdHlwZSBu YW1lICdMVF9TQ09QRScNCiBMVF9TQ09QRSBsdF9kbGhhbmRsZSBsdF9kbGhh bmRsZV9pdGVyYXRlIChsdF9kbGludGVyZmFjZV9pZCBpZmFjZSwNCiBeDQps dGRsL2x0ZGwuaDoxNDU6MjI6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywg JzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdsdF9kbGhh bmRsZV9pdGVyYXRlJw0KIExUX1NDT1BFIGx0X2RsaGFuZGxlIGx0X2RsaGFu ZGxlX2l0ZXJhdGUgKGx0X2RsaW50ZXJmYWNlX2lkIGlmYWNlLA0KICAgICAg ICAgICAgICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjE0NzoxOiBlcnJvcjog dW5rbm93biB0eXBlIG5hbWUgJ0xUX1NDT1BFJw0KIExUX1NDT1BFIGx0X2Rs aGFuZGxlIGx0X2RsaGFuZGxlX2ZldGNoICAgKGx0X2RsaW50ZXJmYWNlX2lk IGlmYWNlLA0KIF4NCmx0ZGwvbHRkbC5oOjE0NzoyMjogZXJyb3I6IGV4cGVj dGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBi ZWZvcmUgJ2x0X2RsaGFuZGxlX2ZldGNoJw0KIExUX1NDT1BFIGx0X2RsaGFu ZGxlIGx0X2RsaGFuZGxlX2ZldGNoICAgKGx0X2RsaW50ZXJmYWNlX2lkIGlm YWNlLA0KICAgICAgICAgICAgICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjE0 OToxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9y ICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQg IGx0X2RsaGFuZGxlX21hcCAgICAgKGx0X2RsaW50ZXJmYWNlX2lkIGlmYWNl LA0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjE1NjoxMDogZXJyb3I6IGV4 cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9f JyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0X2RsbWFrZXJl c2lkZW50IChsdF9kbGhhbmRsZSBoYW5kbGUpOw0KICAgICAgICAgIF4NCmx0 ZGwvbHRkbC5oOjE1NzoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAn OycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBM VF9TQ09QRSBpbnQgICAgIGx0X2RsaXNyZXNpZGVudCAobHRfZGxoYW5kbGUg aGFuZGxlKTsNCiAgICAgICAgICBeDQpJbiBmaWxlIGluY2x1ZGVkIGZyb20g bHRkbC9sb2FkZXJzL3ByZW9wZW4uYzozMjowOg0KLi9sdGRsL2xpYmx0ZGwv bHRfX3ByaXZhdGUuaDo5MzoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywn LCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ3ZvaWQn DQogTFRfU0NPUEUgdm9pZCBsdF9fYWxsb2NfZGllX2NhbGxiYWNrICh2b2lk KTsNCiAgICAgICAgICBeDQouL2x0ZGwvbGlibHRkbC9sdF9fcHJpdmF0ZS5o OjE0MzoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20n IG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BF IGNvbnN0IGNoYXIgKmx0X19lcnJvcl9zdHJpbmcgKGludCBlcnJvcmNvZGUp Ow0KICAgICAgICAgIF4NCi4vbHRkbC9saWJsdGRsL2x0X19wcml2YXRlLmg6 MTQ0OjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScg b3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnY29uc3QnDQogTFRfU0NPUEUg Y29uc3QgY2hhciAqbHRfX2dldF9sYXN0X2Vycm9yICh2b2lkKTsNCiAgICAg ICAgICBeDQouL2x0ZGwvbGlibHRkbC9sdF9fcHJpdmF0ZS5oOjE0NToxMDog ZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0 dHJpYnV0ZV9fJyBiZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BFIGNvbnN0IGNo YXIgKmx0X19zZXRfbGFzdF9lcnJvciAoY29uc3QgY2hhciAqZXJyb3Jtc2cp Ow0KICAgICAgICAgIF4NCmx0ZGwvbG9hZGVycy9wcmVvcGVuLmM6NDI6MTog ZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdMVF9TQ09QRScNCiBMVF9TQ09Q RSBsdF9kbHZ0YWJsZSAqZ2V0X3Z0YWJsZSAobHRfdXNlcl9kYXRhIGxvYWRl cl9kYXRhKTsNCiBeDQpsdGRsL2xvYWRlcnMvcHJlb3Blbi5jOjQyOjIyOiBl cnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0 cmlidXRlX18nIGJlZm9yZSAnKicgdG9rZW4NCiBMVF9TQ09QRSBsdF9kbHZ0 YWJsZSAqZ2V0X3Z0YWJsZSAobHRfdXNlcl9kYXRhIGxvYWRlcl9kYXRhKTsN CiAgICAgICAgICAgICAgICAgICAgICBeDQpsdGRsL2xvYWRlcnMvcHJlb3Bl bi5jOiBJbiBmdW5jdGlvbiAnbHRfZGxwcmVsb2FkX29wZW4nOg0KbHRkbC9s b2FkZXJzL3ByZW9wZW4uYzozNTQ6MjY6IHdhcm5pbmc6IGluaXRpYWxpemF0 aW9uIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0 IFtlbmFibGVkIGJ5IGRlZmF1bHRdDQogICAgIGx0X2RsaGFuZGxlIGhhbmRs ZSA9IGx0X2Rsb3BlbiAoc3ltYm9sLT5uYW1lKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgXg0KbWFrZVsxXTogKioqIFtsdGRsL2xvYWRlcnMvbHRk bF9saWJsdGRsX2xhLXByZW9wZW4ubG9dIEVycm9yIDEKbWFrZTogKioqIFth bGxdIEVycm9yIDIKc3Rkb3V0OgovYmluL3NoIC9taW5ndy9saWJ0b29sLWJ1 aWxkLWR1ZS10by1HTlUvdGVzdHMvdGVzdHN1aXRlLmRpci8wOTcvbHRkbC9j b25maWcvaW5zdGFsbC1zaCAtZCAuIGx0ZGwvCmNwIC4vbHRkbC9hcmd6Xy5o IGx0ZGwvYXJnei5oLXQKbXYgbHRkbC9hcmd6LmgtdCBsdGRsL2FyZ3ouaApt YWtlICBhbGwtYW0KbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvbWlu Z3cvbGlidG9vbC1idWlsZC1kdWUtdG8tR05VL3Rlc3RzL3Rlc3RzdWl0ZS5k aXIvMDk3JwpkZXBiYXNlPWBlY2hvIGZvby5sbyB8IHNlZCAnc3xbXi9dKiR8 LmRlcHMvJnw7c3xcLmxvJHx8J2A7XAoJL2Jpbi9zaCAuL2xpYnRvb2wgLS10 YWc9Q0MgICAtLW1vZGU9Y29tcGlsZSBnY2MgLURIQVZFX0NPTkZJR19IIC1J LiAgLURMVF9DT05GSUdfSD0nPGNvbmZpZy5oPicgLURMVERMIC1JLiAtSS4g LUlsdGRsIC1JLi9sdGRsIC1JLi9sdGRsL2xpYmx0ZGwgICAtZyAtTzIgLU1U IGZvby5sbyAtTUQgLU1QIC1NRiAkZGVwYmFzZS5UcG8gLWMgLW8gZm9vLmxv IGZvby5jICYmXAoJbXYgLWYgJGRlcGJhc2UuVHBvICRkZXBiYXNlLlBsbwps aWJ0b29sOiBjb21waWxlOiAgZ2NjIC1ESEFWRV9DT05GSUdfSCAtSS4gIi1E TFRfQ09ORklHX0g9PGNvbmZpZy5oPiIgLURMVERMIC1JLiAtSS4gLUlsdGRs IC1JLi9sdGRsIC1JLi9sdGRsL2xpYmx0ZGwgLWcgLU8yIC1NVCBmb28ubG8g LU1EIC1NUCAtTUYgLmRlcHMvZm9vLlRwbyAtYyBmb28uYyAgLURETExfRVhQ T1JUIC1EUElDIC1vIC5saWJzL2Zvby5vCmxpYnRvb2w6IGNvbXBpbGU6ICBn Y2MgLURIQVZFX0NPTkZJR19IIC1JLiAiLURMVF9DT05GSUdfSD08Y29uZmln Lmg+IiAtRExUREwgLUkuIC1JLiAtSWx0ZGwgLUkuL2x0ZGwgLUkuL2x0ZGwv bGlibHRkbCAtZyAtTzIgLU1UIGZvby5sbyAtTUQgLU1QIC1NRiAuZGVwcy9m b28uVHBvIC1jIGZvby5jIC1vIGZvby5vID4vZGV2L251bGwgMj4mMQovYmlu L3NoIC4vbGlidG9vbCAtLXRhZz1DQyAgIC0tbW9kZT1saW5rIGdjYyAgLWcg LU8yIC1tb2R1bGUgLWF2b2lkLXZlcnNpb24gLW5vLXVuZGVmaW5lZCAgLW8g Zm9vLmxhIC1ycGF0aCAvbWluZ3cvbGlidG9vbC1idWlsZC1kdWUtdG8tR05V L3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvMDk3L19pbnN0L2xpYiBmb28ubG8gIAps aWJ0b29sOiBsaW5rOiBnY2MgLXNoYXJlZCAgLmxpYnMvZm9vLm8gICAgLU8y ICAgLW8gLmxpYnMvZm9vLmRsbCAtV2wsLS1lbmFibGUtYXV0by1pbWFnZS1i YXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAubGlicy9mb28u ZGxsLmEKbGlidG9vbDogbGluazogYXIgY3J1IC5saWJzL2Zvby5hICBmb28u bwpsaWJ0b29sOiBsaW5rOiByYW5saWIgLmxpYnMvZm9vLmEKbGlidG9vbDog bGluazogKCBjZCAiLmxpYnMiICYmIHJtIC1mICJmb28ubGEiICYmIGNwIC1w ICIuLi9mb28ubGEiICJmb28ubGEiICkKL2Jpbi9zaCAuL2xpYnRvb2wgIC0t dGFnPUNDICAgLS1tb2RlPWNvbXBpbGUgZ2NjIC1ESEFWRV9DT05GSUdfSCAt SS4gIC1ETFRETE9QRU49bGlibHRkbCAtRExUX0NPTkZJR19IPSc8Y29uZmln Lmg+JyAtRExUREwgLUkuIC1JLiAtSWx0ZGwgLUkuL2x0ZGwgLUkuL2x0ZGwv bGlibHRkbCAgIC1nIC1PMiAtTVQgbHRkbC9sb2FkZXJzL2x0ZGxfbGlibHRk bF9sYS1wcmVvcGVuLmxvIC1NRCAtTVAgLU1GIGx0ZGwvbG9hZGVycy8uZGVw cy9sdGRsX2xpYmx0ZGxfbGEtcHJlb3Blbi5UcG8gLWMgLW8gbHRkbC9sb2Fk ZXJzL2x0ZGxfbGlibHRkbF9sYS1wcmVvcGVuLmxvIGB0ZXN0IC1mICdsdGRs L2xvYWRlcnMvcHJlb3Blbi5jJyB8fCBlY2hvICcuLydgbHRkbC9sb2FkZXJz L3ByZW9wZW4uYwpsaWJ0b29sOiBjb21waWxlOiAgZ2NjIC1ESEFWRV9DT05G SUdfSCAtSS4gLURMVERMT1BFTj1saWJsdGRsICItRExUX0NPTkZJR19IPTxj b25maWcuaD4iIC1ETFRETCAtSS4gLUkuIC1JbHRkbCAtSS4vbHRkbCAtSS4v bHRkbC9saWJsdGRsIC1nIC1PMiAtTVQgbHRkbC9sb2FkZXJzL2x0ZGxfbGli bHRkbF9sYS1wcmVvcGVuLmxvIC1NRCAtTVAgLU1GIGx0ZGwvbG9hZGVycy8u ZGVwcy9sdGRsX2xpYmx0ZGxfbGEtcHJlb3Blbi5UcG8gLWMgbHRkbC9sb2Fk ZXJzL3ByZW9wZW4uYyAgLURETExfRVhQT1JUIC1EUElDIC1vIGx0ZGwvbG9h ZGVycy8ubGlicy9sdGRsX2xpYmx0ZGxfbGEtcHJlb3Blbi5vCm1ha2VbMV06 IExlYXZpbmcgZGlyZWN0b3J5IGAvbWluZ3cvbGlidG9vbC1idWlsZC1kdWUt dG8tR05VL3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvMDk3JwovTWluR1cvc2hhcmUv YXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL25vbnJlY3Vyc2l2 ZS5hdDoxNDA6IGV4aXQgY29kZSB3YXMgMiwgZXhwZWN0ZWQgMAo5Ny4gbm9u cmVjdXJzaXZlLmF0OjEyNjogOTcuIGluc3RhbGxhYmxlIGxpYmx0ZGwgKG5v bnJlY3Vyc2l2ZS5hdDoxMjYpOiBGQUlMRUQgKG5vbnJlY3Vyc2l2ZS5hdDox NDApCg== --_----------=_13840355941782731 Content-Disposition: attachment; filename="testsuite.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="testsuite.log" IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIGNvbXBpbGF0aW9u IC0qLQo5Ni4gbm9ucmVjdXJzaXZlLmF0OjEwMjogdGVzdGluZyBjb21waWxp bmcgY29waWVkIGxpYmx0ZGwgLi4uCmxpYnRvb2xpemU6IHB1dHRpbmcgYXV4 aWxpYXJ5IGZpbGVzIGluIEFDX0NPTkZJR19BVVhfRElSLCBgbHRkbC9jb25m aWcnLgpsaWJ0b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvY29uZmlnL2x0 bWFpbi5zaCcKbGlidG9vbGl6ZTogcHV0dGluZyBtYWNyb3MgaW4gQUNfQ09O RklHX01BQ1JPX0RJUiwgYGx0ZGwvbTQnLgpsaWJ0b29saXplOiBjb3B5aW5n IGZpbGUgYGx0ZGwvbTQvYXJnei5tNCcKbGlidG9vbGl6ZTogY29weWluZyBm aWxlIGBsdGRsL200L2xpYnRvb2wubTQnCmxpYnRvb2xpemU6IGNvcHlpbmcg ZmlsZSBgbHRkbC9tNC9sdGRsLm00JwpsaWJ0b29saXplOiBjb3B5aW5nIGZp bGUgYGx0ZGwvbTQvbHRvcHRpb25zLm00JwpsaWJ0b29saXplOiBjb3B5aW5n IGZpbGUgYGx0ZGwvbTQvbHRzdWdhci5tNCcKbGlidG9vbGl6ZTogY29weWlu ZyBmaWxlIGBsdGRsL200L2x0dmVyc2lvbi5tNCcKbGlidG9vbGl6ZTogY29w eWluZyBmaWxlIGBsdGRsL200L2x0fm9ic29sZXRlLm00JwpsaWJ0b29saXpl OiBwdXR0aW5nIGxpYmx0ZGwgZmlsZXMgaW4gTFRfQ09ORklHX0xURExfRElS LCBgbHRkbCcuCmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9DT1BZ SU5HLkxJQicKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL1JFQURN RScKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2FyZ3pfLmgnCmxp YnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9hcmd6LmMnCmxpYnRvb2xp emU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sb2FkZXJzL2RsZF9saW5rLmMnCmxp YnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sb2FkZXJzL2Rsb3Blbi5j JwpsaWJ0b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbG9hZGVycy9keWxk LmMnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sb2FkZXJzL2xv YWRfYWRkX29uLmMnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9s b2FkZXJzL2xvYWRsaWJyYXJ5LmMnCmxpYnRvb2xpemU6IGNvcHlpbmcgZmls ZSBgbHRkbC9sb2FkZXJzL3NobF9sb2FkLmMnCmxpYnRvb2xpemU6IGNvcHlp bmcgZmlsZSBgbHRkbC9sdF9fZGlyZW50LmMnCmxpYnRvb2xpemU6IGNvcHlp bmcgZmlsZSBgbHRkbC9sdF9fc3RybC5jJwpsaWJ0b29saXplOiBjb3B5aW5n IGZpbGUgYGx0ZGwvbGlibHRkbC9sdF9fYWxsb2MuaCcKbGlidG9vbGl6ZTog Y29weWluZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRfX2RpcmVudC5oJwpsaWJ0 b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbGlibHRkbC9sdF9fZ2xpYmMu aCcKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRf X3ByaXZhdGUuaCcKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2xp Ymx0ZGwvbHRfX3N0cmwuaCcKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBs dGRsL2xpYmx0ZGwvbHRfZGxsb2FkZXIuaCcKbGlidG9vbGl6ZTogY29weWlu ZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRfZXJyb3IuaCcKbGlidG9vbGl6ZTog Y29weWluZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRfc3lzdGVtLmgnCmxpYnRv b2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9saWJsdGRsL3NsaXN0LmgnCmxp YnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sb2FkZXJzL3ByZW9wZW4u YycKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2x0X19hbGxvYy5j JwpsaWJ0b29saXplOiBjb3B5aW5nIGZpbGUgYGx0ZGwvbHRfZGxsb2FkZXIu YycKbGlidG9vbGl6ZTogY29weWluZyBmaWxlIGBsdGRsL2x0X2Vycm9yLmMn CmxpYnRvb2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sdGRsLmMnCmxpYnRv b2xpemU6IGNvcHlpbmcgZmlsZSBgbHRkbC9sdGRsLmgnCmxpYnRvb2xpemU6 IGNvcHlpbmcgZmlsZSBgbHRkbC9zbGlzdC5jJwpsaWJ0b29saXplOiBjcmVh dGluZyBmaWxlIGBsdGRsL01ha2VmaWxlLmluYycKL01pbkdXL3NoYXJlL2F1 dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9ub25yZWN1cnNpdmUu YXQ6MTA3OiBpZiB0ZXN0IC1mIGx0ZGwvY29uZmlndXJlLmFjOyB0aGVuIGZh bHNlOyBmaQovTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIu NC4yL3Rlc3RzL25vbnJlY3Vyc2l2ZS5hdDoxMTQ6ICRBQ0xPQ0FMIC1JIGx0 ZGwvbTQKc3RkZXJyOgpzdGRvdXQ6Ci9NaW5HVy9zaGFyZS9hdXRvbWFrZS0x LjExL2xpYnRvb2wtMi40LjIvdGVzdHMvbm9ucmVjdXJzaXZlLmF0OjExNDog JEFVVE9IRUFERVIgCnN0ZGVycjoKc3Rkb3V0OgovTWluR1cvc2hhcmUvYXV0 b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL25vbnJlY3Vyc2l2ZS5h dDoxMTQ6ICRBVVRPTUFLRSAtLWFkZC1taXNzaW5nIC0tY29weQpzdGRlcnI6 CmNvbmZpZ3VyZS5hYzo5OiBpbnN0YWxsaW5nIGBsdGRsL2NvbmZpZy9jb21w aWxlJwpjb25maWd1cmUuYWM6MTA6IGluc3RhbGxpbmcgYGx0ZGwvY29uZmln L2NvbmZpZy5ndWVzcycKY29uZmlndXJlLmFjOjEwOiBpbnN0YWxsaW5nIGBs dGRsL2NvbmZpZy9jb25maWcuc3ViJwpjb25maWd1cmUuYWM6NzogaW5zdGFs bGluZyBgbHRkbC9jb25maWcvaW5zdGFsbC1zaCcKY29uZmlndXJlLmFjOjc6 IGluc3RhbGxpbmcgYGx0ZGwvY29uZmlnL21pc3NpbmcnCk1ha2VmaWxlLmFt OiBpbnN0YWxsaW5nIGBsdGRsL2NvbmZpZy9kZXBjb21wJwpzdGRvdXQ6Ci9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMv bm9ucmVjdXJzaXZlLmF0OjExNDogJEFVVE9DT05GIApzdGRlcnI6CnN0ZG91 dDoKL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90 ZXN0cy9ub25yZWN1cnNpdmUuYXQ6MTE0OiA6ICR7Q09ORklHX1NIRUxMPS9i aW4vc2h9OyBleHBvcnQgQ09ORklHX1NIRUxMOyAJICAkQ09ORklHX1NIRUxM IC4vY29uZmlndXJlICRjb25maWd1cmVfb3B0aW9ucyAKc3RkZXJyOgpzdGRv dXQ6CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4g L2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJv bm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNh ZmUgbWtkaXIgLXAuLi4gL2Jpbi9ta2RpciAtcApjaGVja2luZyBmb3IgZ2F3 ay4uLiBnYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSku Li4geWVzCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRo ZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBD IGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLmV4ZQpj aGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIC5leGUKY2hl Y2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNo ZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tp bmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4u IHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpj aGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OS4uLiBu b25lIG5lZWRlZApjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2Vk IGJ5IG1ha2UuLi4gR05VCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2Yg Z2NjLi4uIGdjYzMKY2hlY2tpbmcgd2hldGhlciBnY2MgYW5kIGNjIHVuZGVy c3RhbmQgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyBidWls ZCBzeXN0ZW0gdHlwZS4uLiBpNjg2LXBjLW1pbmd3MzIKY2hlY2tpbmcgaG9z dCBzeXN0ZW0gdHlwZS4uLiBpNjg2LXBjLW1pbmd3MzIKY2hlY2tpbmcgaG93 IHRvIHByaW50IHN0cmluZ3MuLi4gcHJpbnRmCmNoZWNraW5nIGZvciBhIHNl ZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4uLiAvYmluL3NlZApj aGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQg LWUuLi4gL2Jpbi9ncmVwCmNoZWNraW5nIGZvciBlZ3JlcC4uLiAvYmluL2dy ZXAgLUUKY2hlY2tpbmcgZm9yIGZncmVwLi4uIC9iaW4vZ3JlcCAtRgpjaGVj a2luZyBmb3IgbGQgdXNlZCBieSBnY2MuLi4gYzovdGluZ3cvbWluZ3czMi9i aW4vbGQuZXhlCmNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKGM6L3Rpbmd3L21p bmd3MzIvYmluL2xkLmV4ZSkgaXMgR05VIGxkLi4uIHllcwpjaGVja2luZyBm b3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSkuLi4g L2Jpbi9ubSAtQgpjaGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKC9iaW4vbm0g LUIpIGludGVyZmFjZS4uLiBCU0Qgbm0KY2hlY2tpbmcgd2hldGhlciBsbiAt cyB3b3Jrcy4uLiBubywgdXNpbmcgY3AgLXAKY2hlY2tpbmcgdGhlIG1heGlt dW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuLi4gODE5Mgpj aGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhT SSBjb25zdHJ1Y3RzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVs bCB1bmRlcnN0YW5kcyAiKz0iLi4uIHllcwpjaGVja2luZyBob3cgdG8gY29u dmVydCBpNjg2LXBjLW1pbmd3MzIgZmlsZSBuYW1lcyB0byBpNjg2LXBjLW1p bmd3MzIgZm9ybWF0Li4uIChjYWNoZWQpIGZ1bmNfY29udmVydF9maWxlX21z eXNfdG9fdzMyCmNoZWNraW5nIGhvdyB0byBjb252ZXJ0IGk2ODYtcGMtbWlu Z3czMiBmaWxlIG5hbWVzIHRvIHRvb2xjaGFpbiBmb3JtYXQuLi4gKGNhY2hl ZCkgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKY2hlY2tpbmcgZm9y IGM6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZSBvcHRpb24gdG8gcmVsb2Fk IG9iamVjdCBmaWxlcy4uLiAtcgpjaGVja2luZyBmb3Igb2JqZHVtcC4uLiBv YmpkdW1wCmNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxp YnJhcmllcy4uLiBmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4 NiBETEwKY2hlY2tpbmcgZm9yIGRsbHRvb2wuLi4gZGxsdG9vbApjaGVja2lu ZyBob3cgdG8gYXNzb2NpYXRlIHJ1bnRpbWUgYW5kIGxpbmsgbGlicmFyaWVz Li4uIGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYgpjaGVja2luZyBmb3Ig YXJjaGl2ZXIgQEZJTEUgc3VwcG9ydC4uLiBACmNoZWNraW5nIGZvciBzdHJp cC4uLiBzdHJpcApjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVj a2luZyBjb21tYW5kIHRvIHBhcnNlIC9iaW4vbm0gLUIgb3V0cHV0IGZyb20g Z2NjIG9iamVjdC4uLiBvawpjaGVja2luZyBmb3Igc3lzcm9vdC4uLiBubwpj aGVja2luZyBmb3IgbXQuLi4gOgpjaGVja2luZyBpZiA6IGlzIGEgbWFuaWZl c3QgdG9vbC4uLiBubwpjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXBy b2Nlc3Nvci4uLiBnY2MgLUUKY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIg ZmlsZXMuLi4geWVzCmNoZWNraW5nIGZvciBzeXMvdHlwZXMuaC4uLiB5ZXMK Y2hlY2tpbmcgZm9yIHN5cy9zdGF0LmguLi4geWVzCmNoZWNraW5nIGZvciBz dGRsaWIuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cmluZy5oLi4uIHllcwpj aGVja2luZyBmb3IgbWVtb3J5LmguLi4geWVzCmNoZWNraW5nIGZvciBzdHJp bmdzLmguLi4geWVzCmNoZWNraW5nIGZvciBpbnR0eXBlcy5oLi4uIHllcwpj aGVja2luZyBmb3Igc3RkaW50LmguLi4geWVzCmNoZWNraW5nIGZvciB1bmlz dGQuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGRsZmNuLmguLi4gbm8KY2hlY2tp bmcgZm9yIG9iamRpci4uLiAubGlicwpjaGVja2luZyBpZiBnY2Mgc3VwcG9y dHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucy4uLiBubwpjaGVja2luZyBm b3IgZ2NjIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAtRERMTF9FWFBPUlQg LURQSUMKY2hlY2tpbmcgaWYgZ2NjIFBJQyBmbGFnIC1ERExMX0VYUE9SVCAt RFBJQyB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgaWYgZ2NjIHN0YXRpYyBmbGFn IC1zdGF0aWMgd29ya3MuLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0 cyAtYyAtbyBmaWxlLm8uLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0 cyAtYyAtbyBmaWxlLm8uLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIHdoZXRo ZXIgdGhlIGdjYyBsaW5rZXIgKGM6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4 ZSkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4u IHllcwpjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3Mu Li4gV2luMzIgbGQuZXhlCmNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJy YXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gaW1tZWRpYXRlCmNoZWNraW5n IHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZS4uLiB5 ZXMKY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFy aWVzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBs aWJyYXJpZXMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3Rh dGljIGxpYnJhcmllcy4uLiB5ZXMKY2hlY2tpbmcgd2hpY2ggZXh0ZW5zaW9u IGlzIHVzZWQgZm9yIHJ1bnRpbWUgbG9hZGFibGUgbW9kdWxlcy4uLiAuZGxs CmNoZWNraW5nIHdoaWNoIHZhcmlhYmxlIHNwZWNpZmllcyBydW4tdGltZSBt b2R1bGUgc2VhcmNoIHBhdGguLi4gUEFUSApjaGVja2luZyBmb3IgdGhlIGRl ZmF1bHQgbGlicmFyeSBzZWFyY2ggcGF0aC4uLiAvbGliIC91c3IvbGliCmNo ZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgZGxvcGVuLi4uIG5vCmNo ZWNraW5nIGZvciBkbG9wZW4gaW4gLWxzdmxkLi4uIG5vCmNoZWNraW5nIGZv ciBzaGxfbG9hZC4uLiBubwpjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxk bGQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBjeWd3aW5fY29udl9wYXRoIGlz IGRlY2xhcmVkLi4uIG5vCmNoZWNraW5nIGZvciBkbGRfbGluayBpbiAtbGRs ZC4uLiBubwpjaGVja2luZyBmb3IgXyBwcmVmaXggaW4gY29tcGlsZWQgc3lt Ym9scy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBkZXBsaWJzIGFyZSBsb2Fk ZWQgYnkgZGxvcGVuLi4uIHVua25vd24KY2hlY2tpbmcgZm9yIGFyZ3ouaC4u LiBubwpjaGVja2luZyBmb3IgZXJyb3JfdC4uLiBubwpjaGVja2luZyBmb3Ig YXJnel9hZGQuLi4gbm8KY2hlY2tpbmcgZm9yIGFyZ3pfYXBwZW5kLi4uIG5v CmNoZWNraW5nIGZvciBhcmd6X2NvdW50Li4uIG5vCmNoZWNraW5nIGZvciBh cmd6X2NyZWF0ZV9zZXAuLi4gbm8KY2hlY2tpbmcgZm9yIGFyZ3pfaW5zZXJ0 Li4uIG5vCmNoZWNraW5nIGZvciBhcmd6X25leHQuLi4gbm8KY2hlY2tpbmcg Zm9yIGFyZ3pfc3RyaW5naWZ5Li4uIG5vCmNoZWNraW5nIHdoZXRoZXIgbGli dG9vbCBzdXBwb3J0cyAtZGxvcGVuLy1kbHByZW9wZW4uLi4geWVzCmNoZWNr aW5nIGZvciBsdGRsLmguLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbHRfZGxp bnRlcmZhY2VfcmVnaXN0ZXIgaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5n IGZvciBsdF9kbGFkdmlzZV9wcmVsb2FkIGluIC1sbHRkbC4uLiB5ZXMKY2hl Y2tpbmcgd2hlcmUgdG8gZmluZCBsaWJsdGRsIGhlYWRlcnMuLi4gCmNoZWNr aW5nIHdoZXJlIHRvIGZpbmQgbGlibHRkbCBsaWJyYXJ5Li4uIC1sbHRkbApj aGVja2luZyBmb3IgdW5pc3RkLmguLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5n IGZvciBkbC5oLi4uIG5vCmNoZWNraW5nIGZvciBzeXMvZGwuaC4uLiBubwpj aGVja2luZyBmb3IgZGxkLmguLi4gbm8KY2hlY2tpbmcgZm9yIG1hY2gtby9k eWxkLmguLi4gbm8KY2hlY2tpbmcgZm9yIGRpcmVudC5oLi4uIHllcwpjaGVj a2luZyBmb3IgY2xvc2VkaXIuLi4geWVzCmNoZWNraW5nIGZvciBvcGVuZGly Li4uIHllcwpjaGVja2luZyBmb3IgcmVhZGRpci4uLiB5ZXMKY2hlY2tpbmcg Zm9yIHN0cmxjYXQuLi4gbm8KY2hlY2tpbmcgZm9yIHN0cmxjcHkuLi4gbm8K Y29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0 YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRp bmcgY29uZmlnLmgKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVz IGNvbW1hbmRzCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBsaWJ0b29sIGNv bW1hbmRzCi9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40 LjIvdGVzdHMvbm9ucmVjdXJzaXZlLmF0OjExNDogJHVuc2V0IExJQlRPT0wg TElCVE9PTElaRTsgJE1BS0UgJHRhcmdldCAKc3RkZXJyOgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gLi9sdGRsL2xpYmx0ZGwvbHRfX2dsaWJjLmg6NjE6MCwN CiAgICAgICAgICAgICAgICAgZnJvbSAuL2x0ZGwvbGlibHRkbC9sdF9fcHJp dmF0ZS5oOjU0LA0KICAgICAgICAgICAgICAgICBmcm9tIGx0ZGwvbG9hZGVy cy9sb2FkbGlicmFyeS5jOjMyOg0KbHRkbC9hcmd6Lmg6NDM6MDogd2Fybmlu ZzogIkxUX1NDT1BFIiByZWRlZmluZWQgW2VuYWJsZWQgYnkgZGVmYXVsdF0N CiAjICBkZWZpbmUgTFRfU0NPUEUNCiBeDQpJbiBmaWxlIGluY2x1ZGVkIGZy b20gLi9sdGRsL2xpYmx0ZGwvbHRfX2FsbG9jLmg6MzQ6MCwNCiAgICAgICAg ICAgICAgICAgZnJvbSAuL2x0ZGwvbGlibHRkbC9sdF9fcHJpdmF0ZS5oOjUx LA0KICAgICAgICAgICAgICAgICBmcm9tIGx0ZGwvbG9hZGVycy9sb2FkbGli cmFyeS5jOjMyOg0KLi9sdGRsL2xpYmx0ZGwvbHRfc3lzdGVtLmg6MTE2OjA6 IG5vdGU6IHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBwcmV2aW91cyBk ZWZpbml0aW9uDQogIyAgICAgIGRlZmluZSBMVF9TQ09QRSBleHRlcm4gX19k ZWNsc3BlYyhkbGxleHBvcnQpDQogXg0KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IGx0ZGwvbHRkbC5oOjM3OjAsDQogICAgICAgICAgICAgICAgIGZyb20gLi9s dGRsL2xpYmx0ZGwvbHRfX3ByaXZhdGUuaDo1NywNCiAgICAgICAgICAgICAg ICAgZnJvbSBsdGRsL2xvYWRlcnMvbG9hZGxpYnJhcnkuYzozMjoNCmx0ZGwv bGlibHRkbC9sdF9lcnJvci5oOjc5OjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0n LCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAn aW50Jw0KIExUX1NDT1BFIGludCBsdF9kbGFkZGVycm9yIChjb25zdCBjaGFy ICpkaWFnbm9zdGljKTsNCiAgICAgICAgICBeDQpsdGRsL2xpYmx0ZGwvbHRf ZXJyb3IuaDo4MDoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycs ICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9T Q09QRSBpbnQgbHRfZGxzZXRlcnJvciAoaW50IGVycm9yY29kZSk7DQogICAg ICAgICAgXg0KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGx0ZGwvbHRkbC5oOjM4 OjAsDQogICAgICAgICAgICAgICAgIGZyb20gLi9sdGRsL2xpYmx0ZGwvbHRf X3ByaXZhdGUuaDo1NywNCiAgICAgICAgICAgICAgICAgZnJvbSBsdGRsL2xv YWRlcnMvbG9hZGxpYnJhcnkuYzozMjoNCmx0ZGwvbGlibHRkbC9sdF9kbGxv YWRlci5oOjczOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7Jywg J2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1ND T1BFIGludCAgbHRfZGxsb2FkZXJfYWRkICAgIChjb25zdCBsdF9kbHZ0YWJs ZSAqdnRhYmxlKTsNCiAgICAgICAgICBeDQpsdGRsL2xpYmx0ZGwvbHRfZGxs b2FkZXIuaDo3NDoxOiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ0xUX1ND T1BFJw0KIExUX1NDT1BFIGx0X2RsbG9hZGVyIGx0X2RsbG9hZGVyX25leHQg ICAoY29uc3QgbHRfZGxsb2FkZXIgbG9hZGVyKTsNCiBeDQpsdGRsL2xpYmx0 ZGwvbHRfZGxsb2FkZXIuaDo3NDoyMjogZXJyb3I6IGV4cGVjdGVkICc9Jywg JywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2x0 X2RsbG9hZGVyX25leHQnDQogTFRfU0NPUEUgbHRfZGxsb2FkZXIgbHRfZGxs b2FkZXJfbmV4dCAgIChjb25zdCBsdF9kbGxvYWRlciBsb2FkZXIpOw0KICAg ICAgICAgICAgICAgICAgICAgIF4NCmx0ZGwvbGlibHRkbC9sdF9kbGxvYWRl ci5oOjc2OjE6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnTFRfU0NPUEUn DQogTFRfU0NPUEUgbHRfZGx2dGFibGUgKiBsdF9kbGxvYWRlcl9yZW1vdmUg KGNvbnN0IGNoYXIgKm5hbWUpOw0KIF4NCmx0ZGwvbGlibHRkbC9sdF9kbGxv YWRlci5oOjc2OjIyOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7Jywg J2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnKicgdG9rZW4NCiBM VF9TQ09QRSBsdF9kbHZ0YWJsZSAqIGx0X2RsbG9hZGVyX3JlbW92ZSAoY29u c3QgY2hhciAqbmFtZSk7DQogICAgICAgICAgICAgICAgICAgICAgXg0KbHRk bC9saWJsdGRsL2x0X2RsbG9hZGVyLmg6Nzc6MTA6IGVycm9yOiBleHBlY3Rl ZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVm b3JlICdjb25zdCcNCiBMVF9TQ09QRSBjb25zdCBsdF9kbHZ0YWJsZSAqbHRf ZGxsb2FkZXJfZmluZCAoY29uc3QgY2hhciAqbmFtZSk7DQogICAgICAgICAg Xg0KbHRkbC9saWJsdGRsL2x0X2RsbG9hZGVyLmg6Nzg6MTA6IGVycm9yOiBl eHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVf XycgYmVmb3JlICdjb25zdCcNCiBMVF9TQ09QRSBjb25zdCBsdF9kbHZ0YWJs ZSAqbHRfZGxsb2FkZXJfZ2V0IChsdF9kbGxvYWRlciBsb2FkZXIpOw0KICAg ICAgICAgIF4NCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2x0ZGwvbGlibHRk bC9sdF9fcHJpdmF0ZS5oOjU3OjAsDQogICAgICAgICAgICAgICAgIGZyb20g bHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmM6MzI6DQpsdGRsL2x0ZGwuaDo1 MzoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9y ICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQg ICAgIGx0X2RsaW5pdCAgKHZvaWQpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRk bC5oOjU0OjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2Fz bScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BF IGludCAgICAgbHRfZGxleGl0ICAodm9pZCk7DQogICAgICAgICAgXg0KbHRk bC9sdGRsLmg6NTc6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsn LCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRf U0NPUEUgaW50ICAgICBsdF9kbGFkZHNlYXJjaGRpciAgKGNvbnN0IGNoYXIg KnNlYXJjaF9kaXIpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjU4OjEw OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19f YXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAg bHRfZGxpbnNlcnRzZWFyY2hkaXIgKGNvbnN0IGNoYXIgKmJlZm9yZSwNCiAg ICAgICAgICBeDQpsdGRsL2x0ZGwuaDo2MDoxMDogZXJyb3I6IGV4cGVjdGVk ICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZv cmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgICAgICBsdF9kbHNldHNlYXJjaHBh dGggIChjb25zdCBjaGFyICpzZWFyY2hfcGF0aCk7DQogICAgICAgICAgXg0K bHRkbC9sdGRsLmg6NjE6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywg JzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdjb25zdCcN CiBMVF9TQ09QRSBjb25zdCBjaGFyICpsdF9kbGdldHNlYXJjaHBhdGggICh2 b2lkKTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo2MjoxMDogZXJyb3I6 IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0 ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0X2RsZm9y ZWFjaGZpbGUgICgNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo2ODoxMDog ZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0 dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0 X2RsYWR2aXNlX2luaXQgIChsdF9kbGFkdmlzZSAqYWR2aXNlKTsNCiAgICAg ICAgICBeDQpsdGRsL2x0ZGwuaDo2OToxMDogZXJyb3I6IGV4cGVjdGVkICc9 JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUg J2ludCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0X2RsYWR2aXNlX2Rlc3Ryb3kg IChsdF9kbGFkdmlzZSAqYWR2aXNlKTsNCiAgICAgICAgICBeDQpsdGRsL2x0 ZGwuaDo3MDoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdh c20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09Q RSBpbnQgICAgIGx0X2RsYWR2aXNlX2V4dCAgKGx0X2RsYWR2aXNlICphZHZp c2UpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjcxOjEwOiBlcnJvcjog ZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRl X18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxhZHZp c2VfcmVzaWRlbnQgKGx0X2RsYWR2aXNlICphZHZpc2UpOw0KICAgICAgICAg IF4NCmx0ZGwvbHRkbC5oOjcyOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAn LCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50 Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxhZHZpc2VfbG9jYWwgIChsdF9k bGFkdmlzZSAqYWR2aXNlKTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo3 MzoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9y ICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQg ICAgIGx0X2RsYWR2aXNlX2dsb2JhbCAgIChsdF9kbGFkdmlzZSAqYWR2aXNl KTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo3NDoxMDogZXJyb3I6IGV4 cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9f JyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0X2RsYWR2aXNl X3ByZWxvYWQgIChsdF9kbGFkdmlzZSAqYWR2aXNlKTsNCiAgICAgICAgICBe DQpsdGRsL2x0ZGwuaDo3NzoxOiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUg J0xUX1NDT1BFJw0KIExUX1NDT1BFIGx0X2RsaGFuZGxlIGx0X2Rsb3BlbiAg KGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsNCiBeDQpsdGRsL2x0ZGwuaDo3Nzoy MjogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdf X2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2x0X2Rsb3BlbicNCiBMVF9TQ09QRSBs dF9kbGhhbmRsZSBsdF9kbG9wZW4gIChjb25zdCBjaGFyICpmaWxlbmFtZSk7 DQogICAgICAgICAgICAgICAgICAgICAgXg0KbHRkbC9sdGRsLmg6Nzg6MTog ZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdMVF9TQ09QRScNCiBMVF9TQ09Q RSBsdF9kbGhhbmRsZSBsdF9kbG9wZW5leHQgKGNvbnN0IGNoYXIgKmZpbGVu YW1lKTsNCiBeDQpsdGRsL2x0ZGwuaDo3ODoyMjogZXJyb3I6IGV4cGVjdGVk ICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZv cmUgJ2x0X2Rsb3BlbmV4dCcNCiBMVF9TQ09QRSBsdF9kbGhhbmRsZSBsdF9k bG9wZW5leHQgKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsNCiAgICAgICAgICAg ICAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo3OToxOiBlcnJvcjogdW5rbm93 biB0eXBlIG5hbWUgJ0xUX1NDT1BFJw0KIExUX1NDT1BFIGx0X2RsaGFuZGxl IGx0X2Rsb3BlbmFkdmlzZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsDQogXg0K bHRkbC9sdGRsLmg6Nzk6MjI6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywg JzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdsdF9kbG9w ZW5hZHZpc2UnDQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxvcGVuYWR2 aXNlIChjb25zdCBjaGFyICpmaWxlbmFtZSwNCiAgICAgICAgICAgICAgICAg ICAgICBeDQpsdGRsL2x0ZGwuaDo4MToxMDogZXJyb3I6IGV4cGVjdGVkICc9 JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUg J3ZvaWQnDQogTFRfU0NPUEUgdm9pZCAqICAgICBsdF9kbHN5bSAgKGx0X2Rs aGFuZGxlIGhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSk7DQogICAgICAgICAg Xg0KbHRkbC9sdGRsLmg6ODI6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcs JywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdjb25z dCcNCiBMVF9TQ09QRSBjb25zdCBjaGFyICpsdF9kbGVycm9yICAodm9pZCk7 DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6ODM6MTA6IGVycm9yOiBleHBl Y3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycg YmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICAgICBsdF9kbGNsb3NlICAo bHRfZGxoYW5kbGUgaGFuZGxlKTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwu aDo5OToxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20n IG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBp bnQgbHRfZGxwcmVsb2FkICAgICAgKGNvbnN0IGx0X2Rsc3ltbGlzdCAqcHJl bG9hZGVkKTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDoxMDA6MTA6IGVy cm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRy aWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50IGx0X2RscHJl bG9hZF9kZWZhdWx0IChjb25zdCBsdF9kbHN5bWxpc3QgKnByZWxvYWRlZCk7 DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6MTAxOjEwOiBlcnJvcjogZXhw ZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18n IGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCBsdF9kbHByZWxvYWRfb3Bl biAgICAoY29uc3QgY2hhciAqb3JpZ2luYXRvciwNCiAgICAgICAgICBeDQps dGRsL2x0ZGwuaDoxMjE6MTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdM VF9TQ09QRScNCiBMVF9TQ09QRSBsdF9kbGludGVyZmFjZV9pZCBsdF9kbGlu dGVyZmFjZV9yZWdpc3RlciAoY29uc3QgY2hhciAqaWRfc3RyaW5nLA0KIF4N Cmx0ZGwvbHRkbC5oOjEyMToyODogZXJyb3I6IGV4cGVjdGVkICc9JywgJywn LCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2x0X2Rs aW50ZXJmYWNlX3JlZ2lzdGVyJw0KIExUX1NDT1BFIGx0X2RsaW50ZXJmYWNl X2lkIGx0X2RsaW50ZXJmYWNlX3JlZ2lzdGVyIChjb25zdCBjaGFyICppZF9z dHJpbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KbHRkbC9s dGRsLmg6MTIzOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7Jywg J2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAndm9pZCcNCiBMVF9T Q09QRSB2b2lkIGx0X2RsaW50ZXJmYWNlX2ZyZWUgKGx0X2RsaW50ZXJmYWNl X2lkIGtleSk7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6MTI0OjEwOiBl cnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0 cmlidXRlX18nIGJlZm9yZSAndm9pZCcNCiBMVF9TQ09QRSB2b2lkICogbHRf ZGxjYWxsZXJfc2V0X2RhdGEgIChsdF9kbGludGVyZmFjZV9pZCBrZXksDQog ICAgICAgICAgXg0KbHRkbC9sdGRsLmg6MTI2OjEwOiBlcnJvcjogZXhwZWN0 ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJl Zm9yZSAndm9pZCcNCiBMVF9TQ09QRSB2b2lkICogbHRfZGxjYWxsZXJfZ2V0 X2RhdGEgIChsdF9kbGludGVyZmFjZV9pZCBrZXksDQogICAgICAgICAgXg0K bHRkbC9sdGRsLmg6MTQzOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcs ICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnY29uc3Qn DQogTFRfU0NPUEUgY29uc3QgbHRfZGxpbmZvICpsdF9kbGdldGluZm8gICAg IChsdF9kbGhhbmRsZSBoYW5kbGUpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRk bC5oOjE0NToxOiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ0xUX1NDT1BF Jw0KIExUX1NDT1BFIGx0X2RsaGFuZGxlIGx0X2RsaGFuZGxlX2l0ZXJhdGUg KGx0X2RsaW50ZXJmYWNlX2lkIGlmYWNlLA0KIF4NCmx0ZGwvbHRkbC5oOjE0 NToyMjogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9y ICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2x0X2RsaGFuZGxlX2l0ZXJhdGUn DQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxoYW5kbGVfaXRlcmF0ZSAo bHRfZGxpbnRlcmZhY2VfaWQgaWZhY2UsDQogICAgICAgICAgICAgICAgICAg ICAgXg0KbHRkbC9sdGRsLmg6MTQ3OjE6IGVycm9yOiB1bmtub3duIHR5cGUg bmFtZSAnTFRfU0NPUEUnDQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxo YW5kbGVfZmV0Y2ggICAobHRfZGxpbnRlcmZhY2VfaWQgaWZhY2UsDQogXg0K bHRkbC9sdGRsLmg6MTQ3OjIyOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcs ICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnbHRfZGxo YW5kbGVfZmV0Y2gnDQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxoYW5k bGVfZmV0Y2ggICAobHRfZGxpbnRlcmZhY2VfaWQgaWZhY2UsDQogICAgICAg ICAgICAgICAgICAgICAgXg0KbHRkbC9sdGRsLmg6MTQ5OjEwOiBlcnJvcjog ZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRl X18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgbHRfZGxoYW5kbGVf bWFwICAgICAobHRfZGxpbnRlcmZhY2VfaWQgaWZhY2UsDQogICAgICAgICAg Xg0KbHRkbC9sdGRsLmg6MTU2OjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAn LCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50 Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxtYWtlcmVzaWRlbnQgKGx0X2Rs aGFuZGxlIGhhbmRsZSk7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6MTU3 OjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3Ig J19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAg ICAgbHRfZGxpc3Jlc2lkZW50IChsdF9kbGhhbmRsZSBoYW5kbGUpOw0KICAg ICAgICAgIF4NCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBsdGRsL2xvYWRlcnMv bG9hZGxpYnJhcnkuYzozMjowOg0KLi9sdGRsL2xpYmx0ZGwvbHRfX3ByaXZh dGUuaDo5MzoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdh c20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ3ZvaWQnDQogTFRfU0NP UEUgdm9pZCBsdF9fYWxsb2NfZGllX2NhbGxiYWNrICh2b2lkKTsNCiAgICAg ICAgICBeDQouL2x0ZGwvbGlibHRkbC9sdF9fcHJpdmF0ZS5oOjE0MzoxMDog ZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0 dHJpYnV0ZV9fJyBiZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BFIGNvbnN0IGNo YXIgKmx0X19lcnJvcl9zdHJpbmcgKGludCBlcnJvcmNvZGUpOw0KICAgICAg ICAgIF4NCi4vbHRkbC9saWJsdGRsL2x0X19wcml2YXRlLmg6MTQ0OjEwOiBl cnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0 cmlidXRlX18nIGJlZm9yZSAnY29uc3QnDQogTFRfU0NPUEUgY29uc3QgY2hh ciAqbHRfX2dldF9sYXN0X2Vycm9yICh2b2lkKTsNCiAgICAgICAgICBeDQou L2x0ZGwvbGlibHRkbC9sdF9fcHJpdmF0ZS5oOjE0NToxMDogZXJyb3I6IGV4 cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9f JyBiZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BFIGNvbnN0IGNoYXIgKmx0X19z ZXRfbGFzdF9lcnJvciAoY29uc3QgY2hhciAqZXJyb3Jtc2cpOw0KICAgICAg ICAgIF4NCmx0ZGwvbG9hZGVycy9sb2FkbGlicmFyeS5jOjQ2OjE6IGVycm9y OiB1bmtub3duIHR5cGUgbmFtZSAnTFRfU0NPUEUnDQogTFRfU0NPUEUgbHRf ZGx2dGFibGUgKmdldF92dGFibGUgKGx0X3VzZXJfZGF0YSBsb2FkZXJfZGF0 YSk7DQogXg0KbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmM6NDY6MjI6IGVy cm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRy aWJ1dGVfXycgYmVmb3JlICcqJyB0b2tlbg0KIExUX1NDT1BFIGx0X2RsdnRh YmxlICpnZXRfdnRhYmxlIChsdF91c2VyX2RhdGEgbG9hZGVyX2RhdGEpOw0K ICAgICAgICAgICAgICAgICAgICAgIF4NCmx0ZGwvbG9hZGVycy9sb2FkbGli cmFyeS5jOiBJbiBmdW5jdGlvbiAnbG9hZGxpYnJhcnlfTFRYX2dldF92dGFi bGUnOg0KbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmM6NzE6MTY6IHdhcm5p bmc6IGFzc2lnbm1lbnQgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0 aG91dCBhIGNhc3QgW2VuYWJsZWQgYnkgZGVmYXVsdF0NCiAgICAgICBpZmFj ZV9pZCA9IGx0X2RsaW50ZXJmYWNlX3JlZ2lzdGVyICgibHRkbCBsb2FkbGli cmFyeSIsIE5VTEwpOw0KICAgICAgICAgICAgICAgIF4NCmx0ZGwvbG9hZGVy cy9sb2FkbGlicmFyeS5jOiBJbiBmdW5jdGlvbiAndm1fb3Blbic6DQpsdGRs L2xvYWRlcnMvbG9hZGxpYnJhcnkuYzoyMTg6MTc6IHdhcm5pbmc6IGFzc2ln bm1lbnQgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNh c3QgW2VuYWJsZWQgYnkgZGVmYXVsdF0NCiAgICAgd2hpbGUgKChjdXIgPSBs dF9kbGhhbmRsZV9pdGVyYXRlIChpZmFjZV9pZCwgY3VyKSkpDQogICAgICAg ICAgICAgICAgIF4NCmx0ZGwvbG9hZGVycy9sb2FkbGlicmFyeS5jOjIzMzo3 OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2xvYWRsaWJyYXJ5 ZXJyb3InIG1ha2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBj YXN0IFtlbmFibGVkIGJ5IGRlZmF1bHRdDQogICAgICAgTE9BRExJQl9TRVRF UlJPUiAoQ0FOTk9UX09QRU4pOw0KICAgICAgIF4NCmx0ZGwvbG9hZGVycy9s b2FkbGlicmFyeS5jOjEwNjoyMDogbm90ZTogZXhwZWN0ZWQgJ2NvbnN0IGNo YXIgKicgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUgJ2ludCcNCiBzdGF0aWMg Y29uc3QgY2hhciAqbG9hZGxpYnJhcnllcnJvciAoY29uc3QgY2hhciAqZGVm YXVsdF9lcnJtc2cpOw0KICAgICAgICAgICAgICAgICAgICBeDQpsdGRsL2xv YWRlcnMvbG9hZGxpYnJhcnkuYzogSW4gZnVuY3Rpb24gJ3ZtX2Nsb3NlJzoN Cmx0ZGwvbG9hZGVycy9sb2FkbGlicmFyeS5jOjI1NDo3OiB3YXJuaW5nOiBw YXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2xvYWRsaWJyYXJ5ZXJyb3InIG1ha2Vz IHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0IFtlbmFibGVk IGJ5IGRlZmF1bHRdDQogICAgICAgTE9BRExJQl9TRVRFUlJPUiAoQ0FOTk9U X0NMT1NFKTsNCiAgICAgICBeDQpsdGRsL2xvYWRlcnMvbG9hZGxpYnJhcnku YzoxMDY6MjA6IG5vdGU6IGV4cGVjdGVkICdjb25zdCBjaGFyIConIGJ1dCBh cmd1bWVudCBpcyBvZiB0eXBlICdpbnQnDQogc3RhdGljIGNvbnN0IGNoYXIg KmxvYWRsaWJyYXJ5ZXJyb3IgKGNvbnN0IGNoYXIgKmRlZmF1bHRfZXJybXNn KTsNCiAgICAgICAgICAgICAgICAgICAgXg0KbHRkbC9sb2FkZXJzL2xvYWRs aWJyYXJ5LmM6IEluIGZ1bmN0aW9uICd2bV9zeW0nOg0KbHRkbC9sb2FkZXJz L2xvYWRsaWJyYXJ5LmM6MjcxOjc6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1l bnQgMSBvZiAnbG9hZGxpYnJhcnllcnJvcicgbWFrZXMgcG9pbnRlciBmcm9t IGludGVnZXIgd2l0aG91dCBhIGNhc3QgW2VuYWJsZWQgYnkgZGVmYXVsdF0N CiAgICAgICBMT0FETElCX1NFVEVSUk9SIChTWU1CT0xfTk9UX0ZPVU5EKTsN CiAgICAgICBeDQpsdGRsL2xvYWRlcnMvbG9hZGxpYnJhcnkuYzoxMDY6MjA6 IG5vdGU6IGV4cGVjdGVkICdjb25zdCBjaGFyIConIGJ1dCBhcmd1bWVudCBp cyBvZiB0eXBlICdpbnQnDQogc3RhdGljIGNvbnN0IGNoYXIgKmxvYWRsaWJy YXJ5ZXJyb3IgKGNvbnN0IGNoYXIgKmRlZmF1bHRfZXJybXNnKTsNCiAgICAg ICAgICAgICAgICAgICAgXg0KbWFrZVsxXTogKioqIFtsdGRsL2xvYWRlcnMv bG9hZGxpYnJhcnkubG9dIEVycm9yIDEKbWFrZTogKioqIFthbGxdIEVycm9y IDIKc3Rkb3V0OgovYmluL3NoIC9taW5ndy9saWJ0b29sLWJ1aWxkLWR1ZS10 by1HTlUvdGVzdHMvdGVzdHN1aXRlLmRpci8wOTYvbHRkbC9jb25maWcvaW5z dGFsbC1zaCAtZCAuIGx0ZGwvCmNwIC4vbHRkbC9hcmd6Xy5oIGx0ZGwvYXJn ei5oLXQKbXYgbHRkbC9hcmd6LmgtdCBsdGRsL2FyZ3ouaAptYWtlICBhbGwt YW0KbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvbWluZ3cvbGlidG9v bC1idWlsZC1kdWUtdG8tR05VL3Rlc3RzL3Rlc3RzdWl0ZS5kaXIvMDk2Jwpk ZXBiYXNlPWBlY2hvIGZvby5sbyB8IHNlZCAnc3xbXi9dKiR8LmRlcHMvJnw7 c3xcLmxvJHx8J2A7XAoJL2Jpbi9zaCAuL2xpYnRvb2wgLS10YWc9Q0MgICAt LW1vZGU9Y29tcGlsZSBnY2MgLURIQVZFX0NPTkZJR19IIC1JLiAgLURMVF9D T05GSUdfSD0nPGNvbmZpZy5oPicgLURMVERMIC1JLiAtSS4gLUlsdGRsIC1J Li9sdGRsIC1JLi9sdGRsL2xpYmx0ZGwgICAtZyAtTzIgLU1UIGZvby5sbyAt TUQgLU1QIC1NRiAkZGVwYmFzZS5UcG8gLWMgLW8gZm9vLmxvIGZvby5jICYm XAoJbXYgLWYgJGRlcGJhc2UuVHBvICRkZXBiYXNlLlBsbwpsaWJ0b29sOiBj b21waWxlOiAgZ2NjIC1ESEFWRV9DT05GSUdfSCAtSS4gIi1ETFRfQ09ORklH X0g9PGNvbmZpZy5oPiIgLURMVERMIC1JLiAtSS4gLUlsdGRsIC1JLi9sdGRs IC1JLi9sdGRsL2xpYmx0ZGwgLWcgLU8yIC1NVCBmb28ubG8gLU1EIC1NUCAt TUYgLmRlcHMvZm9vLlRwbyAtYyBmb28uYyAgLURETExfRVhQT1JUIC1EUElD IC1vIC5saWJzL2Zvby5vCmxpYnRvb2w6IGNvbXBpbGU6ICBnY2MgLURIQVZF X0NPTkZJR19IIC1JLiAiLURMVF9DT05GSUdfSD08Y29uZmlnLmg+IiAtRExU REwgLUkuIC1JLiAtSWx0ZGwgLUkuL2x0ZGwgLUkuL2x0ZGwvbGlibHRkbCAt ZyAtTzIgLU1UIGZvby5sbyAtTUQgLU1QIC1NRiAuZGVwcy9mb28uVHBvIC1j IGZvby5jIC1vIGZvby5vID4vZGV2L251bGwgMj4mMQovYmluL3NoIC4vbGli dG9vbCAtLXRhZz1DQyAgIC0tbW9kZT1saW5rIGdjYyAgLWcgLU8yIC1tb2R1 bGUgLWF2b2lkLXZlcnNpb24gLW5vLXVuZGVmaW5lZCAgLW8gZm9vLmxhIC1y cGF0aCAvbm9uZXhpc3RlbnQvbGliIGZvby5sbyAgCmxpYnRvb2w6IGxpbms6 IGdjYyAtc2hhcmVkICAubGlicy9mb28ubyAgICAtTzIgICAtbyAubGlicy9m b28uZGxsIC1XbCwtLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIg LS1vdXQtaW1wbGliIC1YbGlua2VyIC5saWJzL2Zvby5kbGwuYQpsaWJ0b29s OiBsaW5rOiBhciBjcnUgLmxpYnMvZm9vLmEgIGZvby5vCmxpYnRvb2w6IGxp bms6IHJhbmxpYiAubGlicy9mb28uYQpsaWJ0b29sOiBsaW5rOiAoIGNkICIu bGlicyIgJiYgcm0gLWYgImZvby5sYSIgJiYgY3AgLXAgIi4uL2Zvby5sYSIg ImZvby5sYSIgKQpkZXBiYXNlPWBlY2hvIGx0ZGwvbG9hZGVycy9sb2FkbGli cmFyeS5sbyB8IHNlZCAnc3xbXi9dKiR8LmRlcHMvJnw7c3xcLmxvJHx8J2A7 XAoJL2Jpbi9zaCAuL2xpYnRvb2wgLS10YWc9Q0MgICAtLW1vZGU9Y29tcGls ZSBnY2MgLURIQVZFX0NPTkZJR19IIC1JLiAgLURMVF9DT05GSUdfSD0nPGNv bmZpZy5oPicgLURMVERMIC1JLiAtSS4gLUlsdGRsIC1JLi9sdGRsIC1JLi9s dGRsL2xpYmx0ZGwgICAtZyAtTzIgLU1UIGx0ZGwvbG9hZGVycy9sb2FkbGli cmFyeS5sbyAtTUQgLU1QIC1NRiAkZGVwYmFzZS5UcG8gLWMgLW8gbHRkbC9s b2FkZXJzL2xvYWRsaWJyYXJ5LmxvIGx0ZGwvbG9hZGVycy9sb2FkbGlicmFy eS5jICYmXAoJbXYgLWYgJGRlcGJhc2UuVHBvICRkZXBiYXNlLlBsbwpsaWJ0 b29sOiBjb21waWxlOiAgZ2NjIC1ESEFWRV9DT05GSUdfSCAtSS4gIi1ETFRf Q09ORklHX0g9PGNvbmZpZy5oPiIgLURMVERMIC1JLiAtSS4gLUlsdGRsIC1J Li9sdGRsIC1JLi9sdGRsL2xpYmx0ZGwgLWcgLU8yIC1NVCBsdGRsL2xvYWRl cnMvbG9hZGxpYnJhcnkubG8gLU1EIC1NUCAtTUYgbHRkbC9sb2FkZXJzLy5k ZXBzL2xvYWRsaWJyYXJ5LlRwbyAtYyBsdGRsL2xvYWRlcnMvbG9hZGxpYnJh cnkuYyAgLURETExfRVhQT1JUIC1EUElDIC1vIGx0ZGwvbG9hZGVycy8ubGli cy9sb2FkbGlicmFyeS5vCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAv bWluZ3cvbGlidG9vbC1idWlsZC1kdWUtdG8tR05VL3Rlc3RzL3Rlc3RzdWl0 ZS5kaXIvMDk2JwovTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29s LTIuNC4yL3Rlc3RzL25vbnJlY3Vyc2l2ZS5hdDoxMTQ6IGV4aXQgY29kZSB3 YXMgMiwgZXhwZWN0ZWQgMAo5Ni4gbm9ucmVjdXJzaXZlLmF0OjEwMjogOTYu IGNvbXBpbGluZyBjb3BpZWQgbGlibHRkbCAobm9ucmVjdXJzaXZlLmF0OjEw Mik6IEZBSUxFRCAobm9ucmVjdXJzaXZlLmF0OjExNCkK --_----------=_13840355941782731 Content-Disposition: attachment; filename="testsuite.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="testsuite.log" IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIGNvbXBpbGF0aW9u IC0qLQo5NS4gbm9ucmVjdXJzaXZlLmF0Ojc4OiB0ZXN0aW5nIGNvbXBpbGlu ZyBzb2Z0bGlua2VkIGxpYmx0ZGwgLi4uCmxpYnRvb2xpemU6IHB1dHRpbmcg YXV4aWxpYXJ5IGZpbGVzIGluIEFDX0NPTkZJR19BVVhfRElSLCBgbHRkbC9j b25maWcnLgpsaWJ0b29saXplOiBsaW5raW5nIGZpbGUgYGx0ZGwvY29uZmln L2x0bWFpbi5zaCcKbGlidG9vbGl6ZTogcHV0dGluZyBtYWNyb3MgaW4gQUNf Q09ORklHX01BQ1JPX0RJUiwgYGx0ZGwvbTQnLgpsaWJ0b29saXplOiBsaW5r aW5nIGZpbGUgYGx0ZGwvbTQvYXJnei5tNCcKbGlidG9vbGl6ZTogbGlua2lu ZyBmaWxlIGBsdGRsL200L2xpYnRvb2wubTQnCmxpYnRvb2xpemU6IGxpbmtp bmcgZmlsZSBgbHRkbC9tNC9sdGRsLm00JwpsaWJ0b29saXplOiBsaW5raW5n IGZpbGUgYGx0ZGwvbTQvbHRvcHRpb25zLm00JwpsaWJ0b29saXplOiBsaW5r aW5nIGZpbGUgYGx0ZGwvbTQvbHRzdWdhci5tNCcKbGlidG9vbGl6ZTogbGlu a2luZyBmaWxlIGBsdGRsL200L2x0dmVyc2lvbi5tNCcKbGlidG9vbGl6ZTog bGlua2luZyBmaWxlIGBsdGRsL200L2x0fm9ic29sZXRlLm00JwpsaWJ0b29s aXplOiBwdXR0aW5nIGxpYmx0ZGwgZmlsZXMgaW4gTFRfQ09ORklHX0xURExf RElSLCBgbHRkbCcuCmxpYnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9D T1BZSU5HLkxJQicKbGlidG9vbGl6ZTogbGlua2luZyBmaWxlIGBsdGRsL1JF QURNRScKbGlidG9vbGl6ZTogbGlua2luZyBmaWxlIGBsdGRsL2FyZ3pfLmgn CmxpYnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9hcmd6LmMnCmxpYnRv b2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9sb2FkZXJzL2RsZF9saW5rLmMn CmxpYnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9sb2FkZXJzL2Rsb3Bl bi5jJwpsaWJ0b29saXplOiBsaW5raW5nIGZpbGUgYGx0ZGwvbG9hZGVycy9k eWxkLmMnCmxpYnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9sb2FkZXJz L2xvYWRfYWRkX29uLmMnCmxpYnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRk bC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmMnCmxpYnRvb2xpemU6IGxpbmtpbmcg ZmlsZSBgbHRkbC9sb2FkZXJzL3NobF9sb2FkLmMnCmxpYnRvb2xpemU6IGxp bmtpbmcgZmlsZSBgbHRkbC9sdF9fZGlyZW50LmMnCmxpYnRvb2xpemU6IGxp bmtpbmcgZmlsZSBgbHRkbC9sdF9fc3RybC5jJwpsaWJ0b29saXplOiBsaW5r aW5nIGZpbGUgYGx0ZGwvbGlibHRkbC9sdF9fYWxsb2MuaCcKbGlidG9vbGl6 ZTogbGlua2luZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRfX2RpcmVudC5oJwps aWJ0b29saXplOiBsaW5raW5nIGZpbGUgYGx0ZGwvbGlibHRkbC9sdF9fZ2xp YmMuaCcKbGlidG9vbGl6ZTogbGlua2luZyBmaWxlIGBsdGRsL2xpYmx0ZGwv bHRfX3ByaXZhdGUuaCcKbGlidG9vbGl6ZTogbGlua2luZyBmaWxlIGBsdGRs L2xpYmx0ZGwvbHRfX3N0cmwuaCcKbGlidG9vbGl6ZTogbGlua2luZyBmaWxl IGBsdGRsL2xpYmx0ZGwvbHRfZGxsb2FkZXIuaCcKbGlidG9vbGl6ZTogbGlu a2luZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRfZXJyb3IuaCcKbGlidG9vbGl6 ZTogbGlua2luZyBmaWxlIGBsdGRsL2xpYmx0ZGwvbHRfc3lzdGVtLmgnCmxp YnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9saWJsdGRsL3NsaXN0Lmgn CmxpYnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9sb2FkZXJzL3ByZW9w ZW4uYycKbGlidG9vbGl6ZTogbGlua2luZyBmaWxlIGBsdGRsL2x0X19hbGxv Yy5jJwpsaWJ0b29saXplOiBsaW5raW5nIGZpbGUgYGx0ZGwvbHRfZGxsb2Fk ZXIuYycKbGlidG9vbGl6ZTogbGlua2luZyBmaWxlIGBsdGRsL2x0X2Vycm9y LmMnCmxpYnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9sdGRsLmMnCmxp YnRvb2xpemU6IGxpbmtpbmcgZmlsZSBgbHRkbC9sdGRsLmgnCmxpYnRvb2xp emU6IGxpbmtpbmcgZmlsZSBgbHRkbC9zbGlzdC5jJwpsaWJ0b29saXplOiBj cmVhdGluZyBmaWxlIGBsdGRsL01ha2VmaWxlLmluYycKL01pbkdXL3NoYXJl L2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9ub25yZWN1cnNp dmUuYXQ6ODM6IGlmIHRlc3QgLWYgbHRkbC9jb25maWd1cmUuYWM7IHRoZW4g ZmFsc2U7IGZpCi9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wt Mi40LjIvdGVzdHMvbm9ucmVjdXJzaXZlLmF0OjkwOiAkQUNMT0NBTCAtSSBs dGRsL200CnN0ZGVycjoKc3Rkb3V0OgovTWluR1cvc2hhcmUvYXV0b21ha2Ut MS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL25vbnJlY3Vyc2l2ZS5hdDo5MDog JEFVVE9IRUFERVIgCnN0ZGVycjoKc3Rkb3V0OgovTWluR1cvc2hhcmUvYXV0 b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL25vbnJlY3Vyc2l2ZS5h dDo5MDogJEFVVE9NQUtFIC0tYWRkLW1pc3NpbmcgLS1jb3B5CnN0ZGVycjoK Y29uZmlndXJlLmFjOjk6IGluc3RhbGxpbmcgYGx0ZGwvY29uZmlnL2NvbXBp bGUnCmNvbmZpZ3VyZS5hYzoxMDogaW5zdGFsbGluZyBgbHRkbC9jb25maWcv Y29uZmlnLmd1ZXNzJwpjb25maWd1cmUuYWM6MTA6IGluc3RhbGxpbmcgYGx0 ZGwvY29uZmlnL2NvbmZpZy5zdWInCmNvbmZpZ3VyZS5hYzo3OiBpbnN0YWxs aW5nIGBsdGRsL2NvbmZpZy9pbnN0YWxsLXNoJwpjb25maWd1cmUuYWM6Nzog aW5zdGFsbGluZyBgbHRkbC9jb25maWcvbWlzc2luZycKTWFrZWZpbGUuYW06 IGluc3RhbGxpbmcgYGx0ZGwvY29uZmlnL2RlcGNvbXAnCnN0ZG91dDoKL01p bkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9u b25yZWN1cnNpdmUuYXQ6OTA6ICRBVVRPQ09ORiAKc3RkZXJyOgpzdGRvdXQ6 Ci9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVz dHMvbm9ucmVjdXJzaXZlLmF0OjkwOiA6ICR7Q09ORklHX1NIRUxMPS9iaW4v c2h9OyBleHBvcnQgQ09ORklHX1NIRUxMOyAJICAkQ09ORklHX1NIRUxMIC4v Y29uZmlndXJlICRjb25maWd1cmVfb3B0aW9ucyAKc3RkZXJyOgpzdGRvdXQ6 CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL2Jp bi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1l bnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUg bWtkaXIgLXAuLi4gL2Jpbi9ta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4u LiBnYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4g eWVzCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIg dGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNv bXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLmV4ZQpjaGVj a2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIC5leGUKY2hlY2tp bmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNr aW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcg d2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uIHll cwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVj a2luZyBmb3IgZ2NjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OS4uLiBub25l IG5lZWRlZApjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5 IG1ha2UuLi4gR05VCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2Nj Li4uIGdjYzMKY2hlY2tpbmcgd2hldGhlciBnY2MgYW5kIGNjIHVuZGVyc3Rh bmQgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyBidWlsZCBz eXN0ZW0gdHlwZS4uLiBpNjg2LXBjLW1pbmd3MzIKY2hlY2tpbmcgaG9zdCBz eXN0ZW0gdHlwZS4uLiBpNjg2LXBjLW1pbmd3MzIKY2hlY2tpbmcgaG93IHRv IHByaW50IHN0cmluZ3MuLi4gcHJpbnRmCmNoZWNraW5nIGZvciBhIHNlZCB0 aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4uLiAvYmluL3NlZApjaGVj a2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUu Li4gL2Jpbi9ncmVwCmNoZWNraW5nIGZvciBlZ3JlcC4uLiAvYmluL2dyZXAg LUUKY2hlY2tpbmcgZm9yIGZncmVwLi4uIC9iaW4vZ3JlcCAtRgpjaGVja2lu ZyBmb3IgbGQgdXNlZCBieSBnY2MuLi4gYzovdGluZ3cvbWluZ3czMi9iaW4v bGQuZXhlCmNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKGM6L3Rpbmd3L21pbmd3 MzIvYmluL2xkLmV4ZSkgaXMgR05VIGxkLi4uIHllcwpjaGVja2luZyBmb3Ig QlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSkuLi4gL2Jp bi9ubSAtQgpjaGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKC9iaW4vbm0gLUIp IGludGVyZmFjZS4uLiBCU0Qgbm0KY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3 b3Jrcy4uLiBubywgdXNpbmcgY3AgLXAKY2hlY2tpbmcgdGhlIG1heGltdW0g bGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuLi4gODE5MgpjaGVj a2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBj b25zdHJ1Y3RzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1 bmRlcnN0YW5kcyAiKz0iLi4uIHllcwpjaGVja2luZyBob3cgdG8gY29udmVy dCBpNjg2LXBjLW1pbmd3MzIgZmlsZSBuYW1lcyB0byBpNjg2LXBjLW1pbmd3 MzIgZm9ybWF0Li4uIChjYWNoZWQpIGZ1bmNfY29udmVydF9maWxlX21zeXNf dG9fdzMyCmNoZWNraW5nIGhvdyB0byBjb252ZXJ0IGk2ODYtcGMtbWluZ3cz MiBmaWxlIG5hbWVzIHRvIHRvb2xjaGFpbiBmb3JtYXQuLi4gKGNhY2hlZCkg ZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKY2hlY2tpbmcgZm9yIGM6 L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZSBvcHRpb24gdG8gcmVsb2FkIG9i amVjdCBmaWxlcy4uLiAtcgpjaGVja2luZyBmb3Igb2JqZHVtcC4uLiBvYmpk dW1wCmNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJh cmllcy4uLiBmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBE TEwKY2hlY2tpbmcgZm9yIGRsbHRvb2wuLi4gZGxsdG9vbApjaGVja2luZyBo b3cgdG8gYXNzb2NpYXRlIHJ1bnRpbWUgYW5kIGxpbmsgbGlicmFyaWVzLi4u IGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYgpjaGVja2luZyBmb3IgYXJj aGl2ZXIgQEZJTEUgc3VwcG9ydC4uLiBACmNoZWNraW5nIGZvciBzdHJpcC4u LiBzdHJpcApjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2lu ZyBjb21tYW5kIHRvIHBhcnNlIC9iaW4vbm0gLUIgb3V0cHV0IGZyb20gZ2Nj IG9iamVjdC4uLiBvawpjaGVja2luZyBmb3Igc3lzcm9vdC4uLiBubwpjaGVj a2luZyBmb3IgbXQuLi4gOgpjaGVja2luZyBpZiA6IGlzIGEgbWFuaWZlc3Qg dG9vbC4uLiBubwpjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nl c3Nvci4uLiBnY2MgLUUKY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmls ZXMuLi4geWVzCmNoZWNraW5nIGZvciBzeXMvdHlwZXMuaC4uLiB5ZXMKY2hl Y2tpbmcgZm9yIHN5cy9zdGF0LmguLi4geWVzCmNoZWNraW5nIGZvciBzdGRs aWIuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cmluZy5oLi4uIHllcwpjaGVj a2luZyBmb3IgbWVtb3J5LmguLi4geWVzCmNoZWNraW5nIGZvciBzdHJpbmdz LmguLi4geWVzCmNoZWNraW5nIGZvciBpbnR0eXBlcy5oLi4uIHllcwpjaGVj a2luZyBmb3Igc3RkaW50LmguLi4geWVzCmNoZWNraW5nIGZvciB1bmlzdGQu aC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGRsZmNuLmguLi4gbm8KY2hlY2tpbmcg Zm9yIG9iamRpci4uLiAubGlicwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMg LWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucy4uLiBubwpjaGVja2luZyBmb3Ig Z2NjIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAtRERMTF9FWFBPUlQgLURQ SUMKY2hlY2tpbmcgaWYgZ2NjIFBJQyBmbGFnIC1ERExMX0VYUE9SVCAtRFBJ QyB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgaWYgZ2NjIHN0YXRpYyBmbGFnIC1z dGF0aWMgd29ya3MuLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0cyAt YyAtbyBmaWxlLm8uLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdXBwb3J0cyAt YyAtbyBmaWxlLm8uLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIHdoZXRoZXIg dGhlIGdjYyBsaW5rZXIgKGM6L3Rpbmd3L21pbmd3MzIvYmluL2xkLmV4ZSkg c3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4uIHll cwpjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4g V2luMzIgbGQuZXhlCmNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5 IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gaW1tZWRpYXRlCmNoZWNraW5nIHdo ZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZS4uLiB5ZXMK Y2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJy YXJpZXMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGlj IGxpYnJhcmllcy4uLiB5ZXMKY2hlY2tpbmcgd2hpY2ggZXh0ZW5zaW9uIGlz IHVzZWQgZm9yIHJ1bnRpbWUgbG9hZGFibGUgbW9kdWxlcy4uLiAuZGxsCmNo ZWNraW5nIHdoaWNoIHZhcmlhYmxlIHNwZWNpZmllcyBydW4tdGltZSBtb2R1 bGUgc2VhcmNoIHBhdGguLi4gUEFUSApjaGVja2luZyBmb3IgdGhlIGRlZmF1 bHQgbGlicmFyeSBzZWFyY2ggcGF0aC4uLiAvbGliIC91c3IvbGliCmNoZWNr aW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgZGxvcGVuLi4uIG5vCmNoZWNr aW5nIGZvciBkbG9wZW4gaW4gLWxzdmxkLi4uIG5vCmNoZWNraW5nIGZvciBz aGxfbG9hZC4uLiBubwpjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQu Li4gbm8KY2hlY2tpbmcgd2hldGhlciBjeWd3aW5fY29udl9wYXRoIGlzIGRl Y2xhcmVkLi4uIG5vCmNoZWNraW5nIGZvciBkbGRfbGluayBpbiAtbGRsZC4u LiBubwpjaGVja2luZyBmb3IgXyBwcmVmaXggaW4gY29tcGlsZWQgc3ltYm9s cy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBkZXBsaWJzIGFyZSBsb2FkZWQg YnkgZGxvcGVuLi4uIHVua25vd24KY2hlY2tpbmcgZm9yIGFyZ3ouaC4uLiBu bwpjaGVja2luZyBmb3IgZXJyb3JfdC4uLiBubwpjaGVja2luZyBmb3IgYXJn el9hZGQuLi4gbm8KY2hlY2tpbmcgZm9yIGFyZ3pfYXBwZW5kLi4uIG5vCmNo ZWNraW5nIGZvciBhcmd6X2NvdW50Li4uIG5vCmNoZWNraW5nIGZvciBhcmd6 X2NyZWF0ZV9zZXAuLi4gbm8KY2hlY2tpbmcgZm9yIGFyZ3pfaW5zZXJ0Li4u IG5vCmNoZWNraW5nIGZvciBhcmd6X25leHQuLi4gbm8KY2hlY2tpbmcgZm9y IGFyZ3pfc3RyaW5naWZ5Li4uIG5vCmNoZWNraW5nIHdoZXRoZXIgbGlidG9v bCBzdXBwb3J0cyAtZGxvcGVuLy1kbHByZW9wZW4uLi4geWVzCmNoZWNraW5n IGZvciBsdGRsLmguLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbHRfZGxpbnRl cmZhY2VfcmVnaXN0ZXIgaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5nIGZv ciBsdF9kbGFkdmlzZV9wcmVsb2FkIGluIC1sbHRkbC4uLiB5ZXMKY2hlY2tp bmcgd2hlcmUgdG8gZmluZCBsaWJsdGRsIGhlYWRlcnMuLi4gCmNoZWNraW5n IHdoZXJlIHRvIGZpbmQgbGlibHRkbCBsaWJyYXJ5Li4uIC1sbHRkbApjaGVj a2luZyBmb3IgdW5pc3RkLmguLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZv ciBkbC5oLi4uIG5vCmNoZWNraW5nIGZvciBzeXMvZGwuaC4uLiBubwpjaGVj a2luZyBmb3IgZGxkLmguLi4gbm8KY2hlY2tpbmcgZm9yIG1hY2gtby9keWxk LmguLi4gbm8KY2hlY2tpbmcgZm9yIGRpcmVudC5oLi4uIHllcwpjaGVja2lu ZyBmb3IgY2xvc2VkaXIuLi4geWVzCmNoZWNraW5nIGZvciBvcGVuZGlyLi4u IHllcwpjaGVja2luZyBmb3IgcmVhZGRpci4uLiB5ZXMKY2hlY2tpbmcgZm9y IHN0cmxjYXQuLi4gbm8KY2hlY2tpbmcgZm9yIHN0cmxjcHkuLi4gbm8KY29u ZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1 czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcg Y29uZmlnLmgKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNv bW1hbmRzCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBsaWJ0b29sIGNvbW1h bmRzCi9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIv dGVzdHMvbm9ucmVjdXJzaXZlLmF0OjkwOiAkdW5zZXQgTElCVE9PTCBMSUJU T09MSVpFOyAkTUFLRSAkdGFyZ2V0IApzdGRlcnI6CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSAuL2x0ZGwvbGlibHRkbC9sdF9fZ2xpYmMuaDo2MTowLA0KICAg ICAgICAgICAgICAgICBmcm9tIC4vbHRkbC9saWJsdGRsL2x0X19wcml2YXRl Lmg6NTQsDQogICAgICAgICAgICAgICAgIGZyb20gbHRkbC9sb2FkZXJzL2xv YWRsaWJyYXJ5LmM6MzI6DQpsdGRsL2FyZ3ouaDo0MzowOiB3YXJuaW5nOiAi TFRfU0NPUEUiIHJlZGVmaW5lZCBbZW5hYmxlZCBieSBkZWZhdWx0XQ0KICMg IGRlZmluZSBMVF9TQ09QRQ0KIF4NCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAu L2x0ZGwvbGlibHRkbC9sdF9fYWxsb2MuaDozNDowLA0KICAgICAgICAgICAg ICAgICBmcm9tIC4vbHRkbC9saWJsdGRsL2x0X19wcml2YXRlLmg6NTEsDQog ICAgICAgICAgICAgICAgIGZyb20gbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5 LmM6MzI6DQouL2x0ZGwvbGlibHRkbC9sdF9zeXN0ZW0uaDoxMTY6MDogbm90 ZTogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmlu aXRpb24NCiAjICAgICAgZGVmaW5lIExUX1NDT1BFIGV4dGVybiBfX2RlY2xz cGVjKGRsbGV4cG9ydCkNCiBeDQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gbHRk bC9sdGRsLmg6Mzc6MCwNCiAgICAgICAgICAgICAgICAgZnJvbSAuL2x0ZGwv bGlibHRkbC9sdF9fcHJpdmF0ZS5oOjU3LA0KICAgICAgICAgICAgICAgICBm cm9tIGx0ZGwvbG9hZGVycy9sb2FkbGlicmFyeS5jOjMyOg0KbHRkbC9saWJs dGRsL2x0X2Vycm9yLmg6Nzk6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcs JywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQn DQogTFRfU0NPUEUgaW50IGx0X2RsYWRkZXJyb3IgKGNvbnN0IGNoYXIgKmRp YWdub3N0aWMpOw0KICAgICAgICAgIF4NCmx0ZGwvbGlibHRkbC9sdF9lcnJv ci5oOjgwOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2Fz bScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BF IGludCBsdF9kbHNldGVycm9yIChpbnQgZXJyb3Jjb2RlKTsNCiAgICAgICAg ICBeDQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gbHRkbC9sdGRsLmg6Mzg6MCwN CiAgICAgICAgICAgICAgICAgZnJvbSAuL2x0ZGwvbGlibHRkbC9sdF9fcHJp dmF0ZS5oOjU3LA0KICAgICAgICAgICAgICAgICBmcm9tIGx0ZGwvbG9hZGVy cy9sb2FkbGlicmFyeS5jOjMyOg0KbHRkbC9saWJsdGRsL2x0X2RsbG9hZGVy Lmg6NzM6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNt JyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUg aW50ICBsdF9kbGxvYWRlcl9hZGQgICAgKGNvbnN0IGx0X2RsdnRhYmxlICp2 dGFibGUpOw0KICAgICAgICAgIF4NCmx0ZGwvbGlibHRkbC9sdF9kbGxvYWRl ci5oOjc0OjE6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnTFRfU0NPUEUn DQogTFRfU0NPUEUgbHRfZGxsb2FkZXIgbHRfZGxsb2FkZXJfbmV4dCAgIChj b25zdCBsdF9kbGxvYWRlciBsb2FkZXIpOw0KIF4NCmx0ZGwvbGlibHRkbC9s dF9kbGxvYWRlci5oOjc0OjIyOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcs ICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnbHRfZGxs b2FkZXJfbmV4dCcNCiBMVF9TQ09QRSBsdF9kbGxvYWRlciBsdF9kbGxvYWRl cl9uZXh0ICAgKGNvbnN0IGx0X2RsbG9hZGVyIGxvYWRlcik7DQogICAgICAg ICAgICAgICAgICAgICAgXg0KbHRkbC9saWJsdGRsL2x0X2RsbG9hZGVyLmg6 NzY6MTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdMVF9TQ09QRScNCiBM VF9TQ09QRSBsdF9kbHZ0YWJsZSAqIGx0X2RsbG9hZGVyX3JlbW92ZSAoY29u c3QgY2hhciAqbmFtZSk7DQogXg0KbHRkbC9saWJsdGRsL2x0X2RsbG9hZGVy Lmg6NzY6MjI6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNt JyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICcqJyB0b2tlbg0KIExUX1ND T1BFIGx0X2RsdnRhYmxlICogbHRfZGxsb2FkZXJfcmVtb3ZlIChjb25zdCBj aGFyICpuYW1lKTsNCiAgICAgICAgICAgICAgICAgICAgICBeDQpsdGRsL2xp Ymx0ZGwvbHRfZGxsb2FkZXIuaDo3NzoxMDogZXJyb3I6IGV4cGVjdGVkICc9 JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUg J2NvbnN0Jw0KIExUX1NDT1BFIGNvbnN0IGx0X2RsdnRhYmxlICpsdF9kbGxv YWRlcl9maW5kIChjb25zdCBjaGFyICpuYW1lKTsNCiAgICAgICAgICBeDQps dGRsL2xpYmx0ZGwvbHRfZGxsb2FkZXIuaDo3ODoxMDogZXJyb3I6IGV4cGVj dGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBi ZWZvcmUgJ2NvbnN0Jw0KIExUX1NDT1BFIGNvbnN0IGx0X2RsdnRhYmxlICps dF9kbGxvYWRlcl9nZXQgKGx0X2RsbG9hZGVyIGxvYWRlcik7DQogICAgICAg ICAgXg0KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vbHRkbC9saWJsdGRsL2x0 X19wcml2YXRlLmg6NTc6MCwNCiAgICAgICAgICAgICAgICAgZnJvbSBsdGRs L2xvYWRlcnMvbG9hZGxpYnJhcnkuYzozMjoNCmx0ZGwvbHRkbC5oOjUzOjEw OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19f YXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAg bHRfZGxpbml0ICAodm9pZCk7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6 NTQ6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBv ciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50 ICAgICBsdF9kbGV4aXQgICh2b2lkKTsNCiAgICAgICAgICBeDQpsdGRsL2x0 ZGwuaDo1NzoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdh c20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09Q RSBpbnQgICAgIGx0X2RsYWRkc2VhcmNoZGlyICAoY29uc3QgY2hhciAqc2Vh cmNoX2Rpcik7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6NTg6MTA6IGVy cm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRy aWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICAgICBsdF9k bGluc2VydHNlYXJjaGRpciAoY29uc3QgY2hhciAqYmVmb3JlLA0KICAgICAg ICAgIF4NCmx0ZGwvbHRkbC5oOjYwOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0n LCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAn aW50Jw0KIExUX1NDT1BFIGludCAgICAgIGx0X2Rsc2V0c2VhcmNocGF0aCAg KGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoKTsNCiAgICAgICAgICBeDQpsdGRs L2x0ZGwuaDo2MToxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycs ICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2NvbnN0Jw0KIExU X1NDT1BFIGNvbnN0IGNoYXIgKmx0X2RsZ2V0c2VhcmNocGF0aCAgKHZvaWQp Ow0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjYyOjEwOiBlcnJvcjogZXhw ZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18n IGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxmb3JlYWNo ZmlsZSAgKA0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjY4OjEwOiBlcnJv cjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmli dXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxh ZHZpc2VfaW5pdCAgKGx0X2RsYWR2aXNlICphZHZpc2UpOw0KICAgICAgICAg IF4NCmx0ZGwvbHRkbC5oOjY5OjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAn LCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50 Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxhZHZpc2VfZGVzdHJveSAgKGx0 X2RsYWR2aXNlICphZHZpc2UpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5o OjcwOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScg b3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGlu dCAgICAgbHRfZGxhZHZpc2VfZXh0ICAobHRfZGxhZHZpc2UgKmFkdmlzZSk7 DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6NzE6MTA6IGVycm9yOiBleHBl Y3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycg YmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICAgICBsdF9kbGFkdmlzZV9y ZXNpZGVudCAobHRfZGxhZHZpc2UgKmFkdmlzZSk7DQogICAgICAgICAgXg0K bHRkbC9sdGRsLmg6NzI6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywg JzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQog TFRfU0NPUEUgaW50ICAgICBsdF9kbGFkdmlzZV9sb2NhbCAgKGx0X2RsYWR2 aXNlICphZHZpc2UpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjczOjEw OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19f YXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAg bHRfZGxhZHZpc2VfZ2xvYmFsICAgKGx0X2RsYWR2aXNlICphZHZpc2UpOw0K ICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjc0OjEwOiBlcnJvcjogZXhwZWN0 ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJl Zm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCAgICAgbHRfZGxhZHZpc2VfcHJl bG9hZCAgKGx0X2RsYWR2aXNlICphZHZpc2UpOw0KICAgICAgICAgIF4NCmx0 ZGwvbHRkbC5oOjc3OjE6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnTFRf U0NPUEUnDQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxvcGVuICAoY29u c3QgY2hhciAqZmlsZW5hbWUpOw0KIF4NCmx0ZGwvbHRkbC5oOjc3OjIyOiBl cnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0 cmlidXRlX18nIGJlZm9yZSAnbHRfZGxvcGVuJw0KIExUX1NDT1BFIGx0X2Rs aGFuZGxlIGx0X2Rsb3BlbiAgKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsNCiAg ICAgICAgICAgICAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDo3ODoxOiBlcnJv cjogdW5rbm93biB0eXBlIG5hbWUgJ0xUX1NDT1BFJw0KIExUX1NDT1BFIGx0 X2RsaGFuZGxlIGx0X2Rsb3BlbmV4dCAoY29uc3QgY2hhciAqZmlsZW5hbWUp Ow0KIF4NCmx0ZGwvbHRkbC5oOjc4OjIyOiBlcnJvcjogZXhwZWN0ZWQgJz0n LCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAn bHRfZGxvcGVuZXh0Jw0KIExUX1NDT1BFIGx0X2RsaGFuZGxlIGx0X2Rsb3Bl bmV4dCAoY29uc3QgY2hhciAqZmlsZW5hbWUpOw0KICAgICAgICAgICAgICAg ICAgICAgIF4NCmx0ZGwvbHRkbC5oOjc5OjE6IGVycm9yOiB1bmtub3duIHR5 cGUgbmFtZSAnTFRfU0NPUEUnDQogTFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRf ZGxvcGVuYWR2aXNlIChjb25zdCBjaGFyICpmaWxlbmFtZSwNCiBeDQpsdGRs L2x0ZGwuaDo3OToyMjogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAnOycs ICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2x0X2Rsb3BlbmFk dmlzZScNCiBMVF9TQ09QRSBsdF9kbGhhbmRsZSBsdF9kbG9wZW5hZHZpc2Ug KGNvbnN0IGNoYXIgKmZpbGVuYW1lLA0KICAgICAgICAgICAgICAgICAgICAg IF4NCmx0ZGwvbHRkbC5oOjgxOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAn LCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAndm9p ZCcNCiBMVF9TQ09QRSB2b2lkICogICAgIGx0X2Rsc3ltICAobHRfZGxoYW5k bGUgaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKTsNCiAgICAgICAgICBeDQps dGRsL2x0ZGwuaDo4MjoxMDogZXJyb3I6IGV4cGVjdGVkICc9JywgJywnLCAn OycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ2NvbnN0Jw0K IExUX1NDT1BFIGNvbnN0IGNoYXIgKmx0X2RsZXJyb3IgICh2b2lkKTsNCiAg ICAgICAgICBeDQpsdGRsL2x0ZGwuaDo4MzoxMDogZXJyb3I6IGV4cGVjdGVk ICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZv cmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgICAgIGx0X2RsY2xvc2UgIChsdF9k bGhhbmRsZSBoYW5kbGUpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjk5 OjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3Ig J19fYXR0cmlidXRlX18nIGJlZm9yZSAnaW50Jw0KIExUX1NDT1BFIGludCBs dF9kbHByZWxvYWQgICAgICAoY29uc3QgbHRfZGxzeW1saXN0ICpwcmVsb2Fk ZWQpOw0KICAgICAgICAgIF4NCmx0ZGwvbHRkbC5oOjEwMDoxMDogZXJyb3I6 IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0 ZV9fJyBiZWZvcmUgJ2ludCcNCiBMVF9TQ09QRSBpbnQgbHRfZGxwcmVsb2Fk X2RlZmF1bHQgKGNvbnN0IGx0X2Rsc3ltbGlzdCAqcHJlbG9hZGVkKTsNCiAg ICAgICAgICBeDQpsdGRsL2x0ZGwuaDoxMDE6MTA6IGVycm9yOiBleHBlY3Rl ZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVm b3JlICdpbnQnDQogTFRfU0NPUEUgaW50IGx0X2RscHJlbG9hZF9vcGVuICAg IChjb25zdCBjaGFyICpvcmlnaW5hdG9yLA0KICAgICAgICAgIF4NCmx0ZGwv bHRkbC5oOjEyMToxOiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ0xUX1ND T1BFJw0KIExUX1NDT1BFIGx0X2RsaW50ZXJmYWNlX2lkIGx0X2RsaW50ZXJm YWNlX3JlZ2lzdGVyIChjb25zdCBjaGFyICppZF9zdHJpbmcsDQogXg0KbHRk bC9sdGRsLmg6MTIxOjI4OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7 JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAnbHRfZGxpbnRl cmZhY2VfcmVnaXN0ZXInDQogTFRfU0NPUEUgbHRfZGxpbnRlcmZhY2VfaWQg bHRfZGxpbnRlcmZhY2VfcmVnaXN0ZXIgKGNvbnN0IGNoYXIgKmlkX3N0cmlu ZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQpsdGRsL2x0ZGwu aDoxMjM6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNt JyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICd2b2lkJw0KIExUX1NDT1BF IHZvaWQgbHRfZGxpbnRlcmZhY2VfZnJlZSAobHRfZGxpbnRlcmZhY2VfaWQg a2V5KTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDoxMjQ6MTA6IGVycm9y OiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1 dGVfXycgYmVmb3JlICd2b2lkJw0KIExUX1NDT1BFIHZvaWQgKiBsdF9kbGNh bGxlcl9zZXRfZGF0YSAgKGx0X2RsaW50ZXJmYWNlX2lkIGtleSwNCiAgICAg ICAgICBeDQpsdGRsL2x0ZGwuaDoxMjY6MTA6IGVycm9yOiBleHBlY3RlZCAn PScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3Jl ICd2b2lkJw0KIExUX1NDT1BFIHZvaWQgKiBsdF9kbGNhbGxlcl9nZXRfZGF0 YSAgKGx0X2RsaW50ZXJmYWNlX2lkIGtleSwNCiAgICAgICAgICBeDQpsdGRs L2x0ZGwuaDoxNDM6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsn LCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdjb25zdCcNCiBM VF9TQ09QRSBjb25zdCBsdF9kbGluZm8gKmx0X2RsZ2V0aW5mbyAgICAgKGx0 X2RsaGFuZGxlIGhhbmRsZSk7DQogICAgICAgICAgXg0KbHRkbC9sdGRsLmg6 MTQ1OjE6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnTFRfU0NPUEUnDQog TFRfU0NPUEUgbHRfZGxoYW5kbGUgbHRfZGxoYW5kbGVfaXRlcmF0ZSAobHRf ZGxpbnRlcmZhY2VfaWQgaWZhY2UsDQogXg0KbHRkbC9sdGRsLmg6MTQ1OjIy OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19f YXR0cmlidXRlX18nIGJlZm9yZSAnbHRfZGxoYW5kbGVfaXRlcmF0ZScNCiBM VF9TQ09QRSBsdF9kbGhhbmRsZSBsdF9kbGhhbmRsZV9pdGVyYXRlIChsdF9k bGludGVyZmFjZV9pZCBpZmFjZSwNCiAgICAgICAgICAgICAgICAgICAgICBe DQpsdGRsL2x0ZGwuaDoxNDc6MTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1l ICdMVF9TQ09QRScNCiBMVF9TQ09QRSBsdF9kbGhhbmRsZSBsdF9kbGhhbmRs ZV9mZXRjaCAgIChsdF9kbGludGVyZmFjZV9pZCBpZmFjZSwNCiBeDQpsdGRs L2x0ZGwuaDoxNDc6MjI6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsn LCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdsdF9kbGhhbmRs ZV9mZXRjaCcNCiBMVF9TQ09QRSBsdF9kbGhhbmRsZSBsdF9kbGhhbmRsZV9m ZXRjaCAgIChsdF9kbGludGVyZmFjZV9pZCBpZmFjZSwNCiAgICAgICAgICAg ICAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDoxNDk6MTA6IGVycm9yOiBleHBl Y3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycg YmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICBsdF9kbGhhbmRsZV9tYXAg ICAgIChsdF9kbGludGVyZmFjZV9pZCBpZmFjZSwNCiAgICAgICAgICBeDQps dGRsL2x0ZGwuaDoxNTY6MTA6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywg JzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQog TFRfU0NPUEUgaW50ICAgICBsdF9kbG1ha2VyZXNpZGVudCAobHRfZGxoYW5k bGUgaGFuZGxlKTsNCiAgICAgICAgICBeDQpsdGRsL2x0ZGwuaDoxNTc6MTA6 IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19h dHRyaWJ1dGVfXycgYmVmb3JlICdpbnQnDQogTFRfU0NPUEUgaW50ICAgICBs dF9kbGlzcmVzaWRlbnQgKGx0X2RsaGFuZGxlIGhhbmRsZSk7DQogICAgICAg ICAgXg0KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGx0ZGwvbG9hZGVycy9sb2Fk bGlicmFyeS5jOjMyOjA6DQouL2x0ZGwvbGlibHRkbC9sdF9fcHJpdmF0ZS5o OjkzOjEwOiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScg b3IgJ19fYXR0cmlidXRlX18nIGJlZm9yZSAndm9pZCcNCiBMVF9TQ09QRSB2 b2lkIGx0X19hbGxvY19kaWVfY2FsbGJhY2sgKHZvaWQpOw0KICAgICAgICAg IF4NCi4vbHRkbC9saWJsdGRsL2x0X19wcml2YXRlLmg6MTQzOjEwOiBlcnJv cjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmli dXRlX18nIGJlZm9yZSAnY29uc3QnDQogTFRfU0NPUEUgY29uc3QgY2hhciAq bHRfX2Vycm9yX3N0cmluZyAoaW50IGVycm9yY29kZSk7DQogICAgICAgICAg Xg0KLi9sdGRsL2xpYmx0ZGwvbHRfX3ByaXZhdGUuaDoxNDQ6MTA6IGVycm9y OiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1 dGVfXycgYmVmb3JlICdjb25zdCcNCiBMVF9TQ09QRSBjb25zdCBjaGFyICps dF9fZ2V0X2xhc3RfZXJyb3IgKHZvaWQpOw0KICAgICAgICAgIF4NCi4vbHRk bC9saWJsdGRsL2x0X19wcml2YXRlLmg6MTQ1OjEwOiBlcnJvcjogZXhwZWN0 ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJl Zm9yZSAnY29uc3QnDQogTFRfU0NPUEUgY29uc3QgY2hhciAqbHRfX3NldF9s YXN0X2Vycm9yIChjb25zdCBjaGFyICplcnJvcm1zZyk7DQogICAgICAgICAg Xg0KbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmM6NDY6MTogZXJyb3I6IHVu a25vd24gdHlwZSBuYW1lICdMVF9TQ09QRScNCiBMVF9TQ09QRSBsdF9kbHZ0 YWJsZSAqZ2V0X3Z0YWJsZSAobHRfdXNlcl9kYXRhIGxvYWRlcl9kYXRhKTsN CiBeDQpsdGRsL2xvYWRlcnMvbG9hZGxpYnJhcnkuYzo0NjoyMjogZXJyb3I6 IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0 ZV9fJyBiZWZvcmUgJyonIHRva2VuDQogTFRfU0NPUEUgbHRfZGx2dGFibGUg KmdldF92dGFibGUgKGx0X3VzZXJfZGF0YSBsb2FkZXJfZGF0YSk7DQogICAg ICAgICAgICAgICAgICAgICAgXg0KbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5 LmM6IEluIGZ1bmN0aW9uICdsb2FkbGlicmFyeV9MVFhfZ2V0X3Z0YWJsZSc6 DQpsdGRsL2xvYWRlcnMvbG9hZGxpYnJhcnkuYzo3MToxNjogd2FybmluZzog YXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0 IGEgY2FzdCBbZW5hYmxlZCBieSBkZWZhdWx0XQ0KICAgICAgIGlmYWNlX2lk ID0gbHRfZGxpbnRlcmZhY2VfcmVnaXN0ZXIgKCJsdGRsIGxvYWRsaWJyYXJ5 IiwgTlVMTCk7DQogICAgICAgICAgICAgICAgXg0KbHRkbC9sb2FkZXJzL2xv YWRsaWJyYXJ5LmM6IEluIGZ1bmN0aW9uICd2bV9vcGVuJzoNCmx0ZGwvbG9h ZGVycy9sb2FkbGlicmFyeS5jOjIxODoxNzogd2FybmluZzogYXNzaWdubWVu dCBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdCBb ZW5hYmxlZCBieSBkZWZhdWx0XQ0KICAgICB3aGlsZSAoKGN1ciA9IGx0X2Rs aGFuZGxlX2l0ZXJhdGUgKGlmYWNlX2lkLCBjdXIpKSkNCiAgICAgICAgICAg ICAgICAgXg0KbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmM6MjMzOjc6IHdh cm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnbG9hZGxpYnJhcnllcnJv cicgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3Qg W2VuYWJsZWQgYnkgZGVmYXVsdF0NCiAgICAgICBMT0FETElCX1NFVEVSUk9S IChDQU5OT1RfT1BFTik7DQogICAgICAgXg0KbHRkbC9sb2FkZXJzL2xvYWRs aWJyYXJ5LmM6MTA2OjIwOiBub3RlOiBleHBlY3RlZCAnY29uc3QgY2hhciAq JyBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSAnaW50Jw0KIHN0YXRpYyBjb25z dCBjaGFyICpsb2FkbGlicmFyeWVycm9yIChjb25zdCBjaGFyICpkZWZhdWx0 X2Vycm1zZyk7DQogICAgICAgICAgICAgICAgICAgIF4NCmx0ZGwvbG9hZGVy cy9sb2FkbGlicmFyeS5jOiBJbiBmdW5jdGlvbiAndm1fY2xvc2UnOg0KbHRk bC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmM6MjU0Ojc6IHdhcm5pbmc6IHBhc3Np bmcgYXJndW1lbnQgMSBvZiAnbG9hZGxpYnJhcnllcnJvcicgbWFrZXMgcG9p bnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QgW2VuYWJsZWQgYnkg ZGVmYXVsdF0NCiAgICAgICBMT0FETElCX1NFVEVSUk9SIChDQU5OT1RfQ0xP U0UpOw0KICAgICAgIF4NCmx0ZGwvbG9hZGVycy9sb2FkbGlicmFyeS5jOjEw NjoyMDogbm90ZTogZXhwZWN0ZWQgJ2NvbnN0IGNoYXIgKicgYnV0IGFyZ3Vt ZW50IGlzIG9mIHR5cGUgJ2ludCcNCiBzdGF0aWMgY29uc3QgY2hhciAqbG9h ZGxpYnJhcnllcnJvciAoY29uc3QgY2hhciAqZGVmYXVsdF9lcnJtc2cpOw0K ICAgICAgICAgICAgICAgICAgICBeDQpsdGRsL2xvYWRlcnMvbG9hZGxpYnJh cnkuYzogSW4gZnVuY3Rpb24gJ3ZtX3N5bSc6DQpsdGRsL2xvYWRlcnMvbG9h ZGxpYnJhcnkuYzoyNzE6Nzogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAx IG9mICdsb2FkbGlicmFyeWVycm9yJyBtYWtlcyBwb2ludGVyIGZyb20gaW50 ZWdlciB3aXRob3V0IGEgY2FzdCBbZW5hYmxlZCBieSBkZWZhdWx0XQ0KICAg ICAgIExPQURMSUJfU0VURVJST1IgKFNZTUJPTF9OT1RfRk9VTkQpOw0KICAg ICAgIF4NCmx0ZGwvbG9hZGVycy9sb2FkbGlicmFyeS5jOjEwNjoyMDogbm90 ZTogZXhwZWN0ZWQgJ2NvbnN0IGNoYXIgKicgYnV0IGFyZ3VtZW50IGlzIG9m IHR5cGUgJ2ludCcNCiBzdGF0aWMgY29uc3QgY2hhciAqbG9hZGxpYnJhcnll cnJvciAoY29uc3QgY2hhciAqZGVmYXVsdF9lcnJtc2cpOw0KICAgICAgICAg ICAgICAgICAgICBeDQptYWtlWzFdOiAqKiogW2x0ZGwvbG9hZGVycy9sb2Fk bGlicmFyeS5sb10gRXJyb3IgMQptYWtlOiAqKiogW2FsbF0gRXJyb3IgMgpz dGRvdXQ6Ci9iaW4vc2ggL21pbmd3L2xpYnRvb2wtYnVpbGQtZHVlLXRvLUdO VS90ZXN0cy90ZXN0c3VpdGUuZGlyLzA5NS9sdGRsL2NvbmZpZy9pbnN0YWxs LXNoIC1kIC4gbHRkbC8KY3AgLi9sdGRsL2FyZ3pfLmggbHRkbC9hcmd6Lmgt dAptdiBsdGRsL2FyZ3ouaC10IGx0ZGwvYXJnei5oCm1ha2UgIGFsbC1hbQpt YWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9taW5ndy9saWJ0b29sLWJ1 aWxkLWR1ZS10by1HTlUvdGVzdHMvdGVzdHN1aXRlLmRpci8wOTUnCmRlcGJh c2U9YGVjaG8gZm9vLmxvIHwgc2VkICdzfFteL10qJHwuZGVwcy8mfDtzfFwu bG8kfHwnYDtcCgkvYmluL3NoIC4vbGlidG9vbCAtLXRhZz1DQyAgIC0tbW9k ZT1jb21waWxlIGdjYyAtREhBVkVfQ09ORklHX0ggLUkuICAtRExUX0NPTkZJ R19IPSc8Y29uZmlnLmg+JyAtRExUREwgLUkuIC1JLiAtSWx0ZGwgLUkuL2x0 ZGwgLUkuL2x0ZGwvbGlibHRkbCAgIC1nIC1PMiAtTVQgZm9vLmxvIC1NRCAt TVAgLU1GICRkZXBiYXNlLlRwbyAtYyAtbyBmb28ubG8gZm9vLmMgJiZcCglt diAtZiAkZGVwYmFzZS5UcG8gJGRlcGJhc2UuUGxvCmxpYnRvb2w6IGNvbXBp bGU6ICBnY2MgLURIQVZFX0NPTkZJR19IIC1JLiAiLURMVF9DT05GSUdfSD08 Y29uZmlnLmg+IiAtRExUREwgLUkuIC1JLiAtSWx0ZGwgLUkuL2x0ZGwgLUku L2x0ZGwvbGlibHRkbCAtZyAtTzIgLU1UIGZvby5sbyAtTUQgLU1QIC1NRiAu ZGVwcy9mb28uVHBvIC1jIGZvby5jICAtRERMTF9FWFBPUlQgLURQSUMgLW8g LmxpYnMvZm9vLm8KbGlidG9vbDogY29tcGlsZTogIGdjYyAtREhBVkVfQ09O RklHX0ggLUkuICItRExUX0NPTkZJR19IPTxjb25maWcuaD4iIC1ETFRETCAt SS4gLUkuIC1JbHRkbCAtSS4vbHRkbCAtSS4vbHRkbC9saWJsdGRsIC1nIC1P MiAtTVQgZm9vLmxvIC1NRCAtTVAgLU1GIC5kZXBzL2Zvby5UcG8gLWMgZm9v LmMgLW8gZm9vLm8gPi9kZXYvbnVsbCAyPiYxCi9iaW4vc2ggLi9saWJ0b29s IC0tdGFnPUNDICAgLS1tb2RlPWxpbmsgZ2NjICAtZyAtTzIgLW1vZHVsZSAt YXZvaWQtdmVyc2lvbiAtbm8tdW5kZWZpbmVkICAtbyBmb28ubGEgLXJwYXRo IC9ub25leGlzdGVudC9saWIgZm9vLmxvICAKbGlidG9vbDogbGluazogZ2Nj IC1zaGFyZWQgIC5saWJzL2Zvby5vICAgIC1PMiAgIC1vIC5saWJzL2Zvby5k bGwgLVdsLC0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91 dC1pbXBsaWIgLVhsaW5rZXIgLmxpYnMvZm9vLmRsbC5hCmxpYnRvb2w6IGxp bms6IGFyIGNydSAubGlicy9mb28uYSAgZm9vLm8KbGlidG9vbDogbGluazog cmFubGliIC5saWJzL2Zvby5hCmxpYnRvb2w6IGxpbms6ICggY2QgIi5saWJz IiAmJiBybSAtZiAiZm9vLmxhIiAmJiBjcCAtcCAiLi4vZm9vLmxhIiAiZm9v LmxhIiApCmRlcGJhc2U9YGVjaG8gbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5 LmxvIHwgc2VkICdzfFteL10qJHwuZGVwcy8mfDtzfFwubG8kfHwnYDtcCgkv YmluL3NoIC4vbGlidG9vbCAtLXRhZz1DQyAgIC0tbW9kZT1jb21waWxlIGdj YyAtREhBVkVfQ09ORklHX0ggLUkuICAtRExUX0NPTkZJR19IPSc8Y29uZmln Lmg+JyAtRExUREwgLUkuIC1JLiAtSWx0ZGwgLUkuL2x0ZGwgLUkuL2x0ZGwv bGlibHRkbCAgIC1nIC1PMiAtTVQgbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5 LmxvIC1NRCAtTVAgLU1GICRkZXBiYXNlLlRwbyAtYyAtbyBsdGRsL2xvYWRl cnMvbG9hZGxpYnJhcnkubG8gbHRkbC9sb2FkZXJzL2xvYWRsaWJyYXJ5LmMg JiZcCgltdiAtZiAkZGVwYmFzZS5UcG8gJGRlcGJhc2UuUGxvCmxpYnRvb2w6 IGNvbXBpbGU6ICBnY2MgLURIQVZFX0NPTkZJR19IIC1JLiAiLURMVF9DT05G SUdfSD08Y29uZmlnLmg+IiAtRExUREwgLUkuIC1JLiAtSWx0ZGwgLUkuL2x0 ZGwgLUkuL2x0ZGwvbGlibHRkbCAtZyAtTzIgLU1UIGx0ZGwvbG9hZGVycy9s b2FkbGlicmFyeS5sbyAtTUQgLU1QIC1NRiBsdGRsL2xvYWRlcnMvLmRlcHMv bG9hZGxpYnJhcnkuVHBvIC1jIGx0ZGwvbG9hZGVycy9sb2FkbGlicmFyeS5j ICAtRERMTF9FWFBPUlQgLURQSUMgLW8gbHRkbC9sb2FkZXJzLy5saWJzL2xv YWRsaWJyYXJ5Lm8KbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgYC9taW5n dy9saWJ0b29sLWJ1aWxkLWR1ZS10by1HTlUvdGVzdHMvdGVzdHN1aXRlLmRp ci8wOTUnCi9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40 LjIvdGVzdHMvbm9ucmVjdXJzaXZlLmF0OjkwOiBleGl0IGNvZGUgd2FzIDIs IGV4cGVjdGVkIDAKOTUuIG5vbnJlY3Vyc2l2ZS5hdDo3ODogOTUuIGNvbXBp bGluZyBzb2Z0bGlua2VkIGxpYmx0ZGwgKG5vbnJlY3Vyc2l2ZS5hdDo3OCk6 IEZBSUxFRCAobm9ucmVjdXJzaXZlLmF0OjkwKQo= --_----------=_13840355941782731 Content-Disposition: attachment; filename="testsuite.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="testsuite.log" IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIGNvbXBpbGF0aW9u IC0qLQo1NS4gY3dyYXBwZXIuYXQ6MjU6IHRlc3RpbmcgY3dyYXBwZXIgZm9y IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIC4uLgovTWluR1cvc2hhcmUvYXV0 b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2N3cmFwcGVyLmF0OjI5 OiAkTElCVE9PTCAtLWZlYXR1cmVzIHwgZ3JlcCAnZGlzYWJsZSBzaGFyZWQg bGlicmFyaWVzJyAmJiBleGl0IDc3CnN0ZG91dDoKbGlidG9vbDogY29tcGls ZTogIGdjYyAtZyAtTzIgLVdhbGwgLVdlcnJvciB0cml2aWFsLmMgIC1ERExM X0VYUE9SVCAtRFBJQyAtbyAubGlicy90cml2aWFsLm8KbGlidG9vbDogY29t cGlsZTogIGdjYyAtZyAtTzIgLVdhbGwgLVdlcnJvciB0cml2aWFsLmMgLW8g dHJpdmlhbC5vID4vZGV2L251bGwgMj4mMQovTWluR1cvc2hhcmUvYXV0b21h a2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2N3cmFwcGVyLmF0OjY5OiAk TElCVE9PTCAtLW1vZGU9Y29tcGlsZSAkQ0MgJENQUEZMQUdTICRDRkxBR1Mg LWMgbGliYS5jCnN0ZGVycjoKc3Rkb3V0OgpsaWJ0b29sOiBjb21waWxlOiAg Z2NjIC1nIC1PMiAtV2FsbCAtV2Vycm9yIC1jIGxpYmEuYyAgLURETExfRVhQ T1JUIC1EUElDIC1vIC5saWJzL2xpYmEubwpsaWJ0b29sOiBjb21waWxlOiAg Z2NjIC1nIC1PMiAtV2FsbCAtV2Vycm9yIC1jIGxpYmEuYyAtbyBsaWJhLm8g Pi9kZXYvbnVsbCAyPiYxCi9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xp YnRvb2wtMi40LjIvdGVzdHMvY3dyYXBwZXIuYXQ6NzE6ICRMSUJUT09MIC0t bW9kZT1saW5rICRDQyAkQ0ZMQUdTICRMREZMQUdTIC12ZXJzaW9uLWluZm89 MC4wLjAgLW5vLXVuZGVmaW5lZCAtbyBsaWJhLmxhIC1ycGF0aCAvZm9vIGxp YmEubG8Kc3RkZXJyOgpzdGRvdXQ6CmxpYnRvb2w6IGxpbms6IGdjYyAtc2hh cmVkICAubGlicy9saWJhLm8gICAgLU8yICAgLW8gLmxpYnMvbGliYS0wLmRs bCAtV2wsLS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciAubGlicy9saWJhLmRsbC5hCmxpYnRvb2w6IGxp bms6IGFyIGNydSAubGlicy9saWJhLmEgIGxpYmEubwpsaWJ0b29sOiBsaW5r OiByYW5saWIgLmxpYnMvbGliYS5hCmxpYnRvb2w6IGxpbms6ICggY2QgIi5s aWJzIiAmJiBybSAtZiAibGliYS5sYSIgJiYgY3AgLXAgIi4uL2xpYmEubGEi ICJsaWJhLmxhIiApCi9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRv b2wtMi40LjIvdGVzdHMvY3dyYXBwZXIuYXQ6NzM6IHRlc3QgLWYgbGliYS5s YQovTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rl c3RzL2N3cmFwcGVyLmF0Ojc1OiAkQ0MgJENQUEZMQUdTICRDRkxBR1MgLWMg dXNlYS5jCnN0ZGVycjoKc3Rkb3V0OgovTWluR1cvc2hhcmUvYXV0b21ha2Ut MS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2N3cmFwcGVyLmF0Ojc3OiAkTElC VE9PTCAtLW1vZGU9bGluayAkQ0MgJENGTEFHUyAkTERGTEFHUyAtbyB1c2Vh JEVYRUVYVCB1c2VhLiRPQkpFWFQgbGliYS5sYQpzdGRlcnI6CnN0ZG91dDoK bGlidG9vbDogbGluazogZ2NjIC1nIC1PMiAtV2FsbCAtV2Vycm9yIC1vIC5s aWJzL3VzZWEuZXhlIHVzZWEubyAgLi8ubGlicy9saWJhLmRsbC5hIC1ML2Zv bwovTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rl c3RzL2N3cmFwcGVyLmF0Ojc5OiBpZiAiJGx0X2V4ZSIgOyB0aGVuIDo7IGVs c2UgbHRfc3RhdHVzPSQ/OyAJICAgdGVzdCAkbHRfc3RhdHVzICE9IDAgJiYg CSAgIHRlc3QgIlgkaG9zdCIgIT0gIlgkYnVpbGQiICYmIHRlc3QgLXggIiRs dF9leGUiICYmIGV4aXQgNzc7IAkgICBleGl0ICRsdF9zdGF0dXM7IGZpCnN0 ZGVycjoKc3Rkb3V0OgpsaWJ0b29sOiBjb21waWxlOiAgZ2NjIC1nIC1PMiAt c3RkPWM4OSAtV2FsbCAtV2Vycm9yIHRyaXZpYWwuYyAgLURETExfRVhQT1JU IC1EUElDIC1vIC5saWJzL3RyaXZpYWwubwpsaWJ0b29sOiBjb21waWxlOiAg Z2NjIC1nIC1PMiAtc3RkPWM4OSAtV2FsbCAtV2Vycm9yIHRyaXZpYWwuYyAt byB0cml2aWFsLm8gPi9kZXYvbnVsbCAyPiYxCi9NaW5HVy9zaGFyZS9hdXRv bWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvY3dyYXBwZXIuYXQ6Njk6 ICRMSUJUT09MIC0tbW9kZT1jb21waWxlICRDQyAkQ1BQRkxBR1MgJENGTEFH UyAtYyBsaWJhLmMKc3RkZXJyOgpzdGRvdXQ6CmxpYnRvb2w6IGNvbXBpbGU6 ICBnY2MgLWcgLU8yIC1zdGQ9Yzg5IC1XYWxsIC1XZXJyb3IgLWMgbGliYS5j ICAtRERMTF9FWFBPUlQgLURQSUMgLW8gLmxpYnMvbGliYS5vCmxpYnRvb2w6 IGNvbXBpbGU6ICBnY2MgLWcgLU8yIC1zdGQ9Yzg5IC1XYWxsIC1XZXJyb3Ig LWMgbGliYS5jIC1vIGxpYmEubyA+L2Rldi9udWxsIDI+JjEKL01pbkdXL3No YXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9jd3JhcHBl ci5hdDo3MTogJExJQlRPT0wgLS1tb2RlPWxpbmsgJENDICRDRkxBR1MgJExE RkxBR1MgLXZlcnNpb24taW5mbz0wLjAuMCAtbm8tdW5kZWZpbmVkIC1vIGxp YmEubGEgLXJwYXRoIC9mb28gbGliYS5sbwpzdGRlcnI6CnN0ZG91dDoKbGli dG9vbDogbGluazogcm0gLWZyICAubGlicy9saWJhLmEgLmxpYnMvbGliYS5k bGwuYSAubGlicy9saWJhLmxhIC5saWJzL2xpYmEubGFpCmxpYnRvb2w6IGxp bms6IGdjYyAtc2hhcmVkICAubGlicy9saWJhLm8gICAgLU8yICAgLW8gLmxp YnMvbGliYS0wLmRsbCAtV2wsLS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1Y bGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAubGlicy9saWJhLmRsbC5h CmxpYnRvb2w6IGxpbms6IGFyIGNydSAubGlicy9saWJhLmEgIGxpYmEubwps aWJ0b29sOiBsaW5rOiByYW5saWIgLmxpYnMvbGliYS5hCmxpYnRvb2w6IGxp bms6ICggY2QgIi5saWJzIiAmJiBybSAtZiAibGliYS5sYSIgJiYgY3AgLXAg Ii4uL2xpYmEubGEiICJsaWJhLmxhIiApCi9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvY3dyYXBwZXIuYXQ6NzM6IHRl c3QgLWYgbGliYS5sYQovTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0 b29sLTIuNC4yL3Rlc3RzL2N3cmFwcGVyLmF0Ojc1OiAkQ0MgJENQUEZMQUdT ICRDRkxBR1MgLWMgdXNlYS5jCnN0ZGVycjoKc3Rkb3V0OgovTWluR1cvc2hh cmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2N3cmFwcGVy LmF0Ojc3OiAkTElCVE9PTCAtLW1vZGU9bGluayAkQ0MgJENGTEFHUyAkTERG TEFHUyAtbyB1c2VhJEVYRUVYVCB1c2VhLiRPQkpFWFQgbGliYS5sYQpzdGRl cnI6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjOlx0aW5nd1xpbmNsdWRlXHVu aXN0ZC5oOjM2OjAsDQogICAgICAgICAgICAgICAgIGZyb20gLi8ubGlicy9s dC11c2VhLmM6MjE6DQpjOlx0aW5nd1xpbmNsdWRlXGlvLmg6MzAxOjE6IGVy cm9yOiB1bmtub3duIHR5cGUgbmFtZSAnb2ZmNjRfdCcNCiBfX0NSVF9JTkxJ TkUgb2ZmNjRfdCBsc2VlazY0IChpbnQsIG9mZjY0X3QsIGludCk7DQogXg0K YzpcdGluZ3dcaW5jbHVkZVxpby5oOjMwMTozNjogZXJyb3I6IHVua25vd24g dHlwZSBuYW1lICdvZmY2NF90Jw0KIF9fQ1JUX0lOTElORSBvZmY2NF90IGxz ZWVrNjQgKGludCwgb2ZmNjRfdCwgaW50KTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4NCmM6XHRpbmd3XGluY2x1ZGVcaW8uaDoz MDI6MTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdvZmY2NF90Jw0KIF9f Q1JUX0lOTElORSBvZmY2NF90IGxzZWVrNjQgKGludCBmZCwgb2ZmNjRfdCBv ZmZzZXQsIGludCB3aGVuY2UpIHsNCiBeDQpjOlx0aW5nd1xpbmNsdWRlXGlv Lmg6MzAyOjM5OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ29mZjY0X3Qn DQogX19DUlRfSU5MSU5FIG9mZjY0X3QgbHNlZWs2NCAoaW50IGZkLCBvZmY2 NF90IG9mZnNldCwgaW50IHdoZW5jZSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXg0KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC4vLmxpYnMvbHQtdXNlYS5jOjIxOjA6DQpjOlx0aW5nd1xpbmNsdWRlXHVu aXN0ZC5oOjY1OjIwOiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ29mZl90 Jw0KIGludCBmdHJ1bmNhdGUoaW50LCBvZmZfdCk7DQogICAgICAgICAgICAg ICAgICAgIF4NCmM6XHRpbmd3XGluY2x1ZGVcdW5pc3RkLmg6Njc6Mzg6IGVy cm9yOiB1bmtub3duIHR5cGUgbmFtZSAnb2ZmX3QnDQogX19DUlRfSU5MSU5F IGludCBmdHJ1bmNhdGUoaW50IF9fZmQsIG9mZl90IF9fbGVuZ3RoKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQpjOlxUaW5H V1xiaW5cc3RyaXAuZXhlOiAnLi91c2VhLmV4ZSc6IE5vIHN1Y2ggZmlsZQ0K Li9saWJ0b29sOiBsaW5lIDk1MTc6IC4vdXNlYS5leGU6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKc3Rkb3V0OgpsaWJ0b29sOiBsaW5rOiBnY2MgLWcg LU8yIC1zdGQ9Yzg5IC1XYWxsIC1XZXJyb3IgLW8gLmxpYnMvdXNlYS5leGUg dXNlYS5vICAuLy5saWJzL2xpYmEuZGxsLmEgLUwvZm9vCi9NaW5HVy9zaGFy ZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvY3dyYXBwZXIu YXQ6Nzk6IGlmICIkbHRfZXhlIiA7IHRoZW4gOjsgZWxzZSBsdF9zdGF0dXM9 JD87IAkgICB0ZXN0ICRsdF9zdGF0dXMgIT0gMCAmJiAJICAgdGVzdCAiWCRo b3N0IiAhPSAiWCRidWlsZCIgJiYgdGVzdCAteCAiJGx0X2V4ZSIgJiYgZXhp dCA3NzsgCSAgIGV4aXQgJGx0X3N0YXR1czsgZmkKc3RkZXJyOgovbWluZ3cv bGlidG9vbC1idWlsZC1kdWUtdG8tR05VL3Rlc3RzL3Rlc3RzdWl0ZS5kaXIv YXQtZ3JvdXBzLzU1L3Rlc3Qtc291cmNlOiBsaW5lIDEzNTogLi91c2VhOiBO byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CnN0ZG91dDoKL01pbkdXL3NoYXJl L2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9jd3JhcHBlci5h dDo3OTogZXhpdCBjb2RlIHdhcyAxMjcsIGV4cGVjdGVkIDAKNTUuIGN3cmFw cGVyLmF0OjI1OiA1NS4gY3dyYXBwZXIgZm9yIHVuaW5zdGFsbGVkIGV4ZWN1 dGFibGVzIChjd3JhcHBlci5hdDoyNSk6IEZBSUxFRCAoY3dyYXBwZXIuYXQ6 NzkpCg== --_----------=_13840355941782731 Content-Disposition: attachment; filename="testsuite.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="testsuite.log" IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIGNvbXBpbGF0aW9u IC0qLQoxMDcuIHdpdGgtcGljLmF0OjI0OiB0ZXN0aW5nIHRlc3QgLS13aXRo LXBpYyAuLi4KL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0y LjQuMi90ZXN0cy93aXRoLXBpYy5hdDoyNzogdGVzdCAieiRwaWNfZmxhZyIg IT0gInoiIHx8IGV4aXQgNzcKL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEv bGlidG9vbC0yLjQuMi90ZXN0cy93aXRoLXBpYy5hdDoyODogdGVzdCAiJGF0 X3NyY2RpciIgIT0gLiB8fCBleGl0IDc3Ci9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvd2l0aC1waWMuYXQ6MzM6IDog JHtDT05GSUdfU0hFTEw9L2Jpbi9zaH07IGV4cG9ydCBDT05GSUdfU0hFTEw7 IAkgICRDT05GSUdfU0hFTEwgJENPTkZJR1VSRSAkY29uZmlndXJlX29wdGlv bnMgLS1kaXNhYmxlLXNoYXJlZCAtLXdpdGgtcGljPW5vCnN0ZGVycjoKc3Rk b3V0OgpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4u IC9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmly b25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHRocmVhZC1z YWZlIG1rZGlyIC1wLi4uIC9iaW4vbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdh d2suLi4gZ2F3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0Up Li4uIHllcwpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0 aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3Ig QyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5leGUK Y2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAuZXhlCmNo ZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpj aGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4u LiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMK Y2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkuLi4g bm9uZSBuZWVkZWQKY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNl ZCBieSBtYWtlLi4uIEdOVQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9m IGdjYy4uLiBnY2MzCmNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uIGk2 ODYtcGMtbWluZ3czMgpjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uIGk2 ODYtcGMtbWluZ3czMgpjaGVja2luZyBob3cgdG8gcHJpbnQgc3RyaW5ncy4u LiBwcmludGYKY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1 bmNhdGUgb3V0cHV0Li4uIC9iaW4vc2VkCmNoZWNraW5nIGZvciBncmVwIHRo YXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4uLiAvYmluL2dyZXAKY2hl Y2tpbmcgZm9yIGVncmVwLi4uIC9iaW4vZ3JlcCAtRQpjaGVja2luZyBmb3Ig ZmdyZXAuLi4gL2Jpbi9ncmVwIC1GCmNoZWNraW5nIGZvciBsZCB1c2VkIGJ5 IGdjYy4uLiBjOi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUKY2hlY2tpbmcg aWYgdGhlIGxpbmtlciAoYzovdGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlKSBp cyBHTlUgbGQuLi4geWVzCmNoZWNraW5nIGZvciBCU0QtIG9yIE1TLWNvbXBh dGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAvYmluL25tIC1CCmNoZWNraW5n IHRoZSBuYW1lIGxpc3RlciAoL2Jpbi9ubSAtQikgaW50ZXJmYWNlLi4uIEJT RCBubQpjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzLi4uIG5vLCB1c2lu ZyBjcCAtcApjaGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFu ZCBsaW5lIGFyZ3VtZW50cy4uLiA4MTkyCmNoZWNraW5nIHdoZXRoZXIgdGhl IHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMuLi4geWVz CmNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICIrPSIu Li4geWVzCmNoZWNraW5nIGhvdyB0byBjb252ZXJ0IGk2ODYtcGMtbWluZ3cz MiBmaWxlIG5hbWVzIHRvIGk2ODYtcGMtbWluZ3czMiBmb3JtYXQuLi4gKGNh Y2hlZCkgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKY2hlY2tpbmcg aG93IHRvIGNvbnZlcnQgaTY4Ni1wYy1taW5ndzMyIGZpbGUgbmFtZXMgdG8g dG9vbGNoYWluIGZvcm1hdC4uLiAoY2FjaGVkKSBmdW5jX2NvbnZlcnRfZmls ZV9tc3lzX3RvX3czMgpjaGVja2luZyBmb3IgYzovdGluZ3cvbWluZ3czMi9i aW4vbGQuZXhlIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzLi4uIC1y CmNoZWNraW5nIGZvciBvYmpkdW1wLi4uIG9iamR1bXAKY2hlY2tpbmcgaG93 IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzLi4uIGZpbGVfbWFn aWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTApjaGVja2luZyBmb3Ig ZGxsdG9vbC4uLiBkbGx0b29sCmNoZWNraW5nIGhvdyB0byBhc3NvY2lhdGUg cnVudGltZSBhbmQgbGluayBsaWJyYXJpZXMuLi4gZnVuY19jeWdtaW5nX2Rs bF9mb3JfaW1wbGliCmNoZWNraW5nIGZvciBhcmNoaXZlciBARklMRSBzdXBw b3J0Li4uIEAKY2hlY2tpbmcgZm9yIHN0cmlwLi4uIHN0cmlwCmNoZWNraW5n IGZvciByYW5saWIuLi4gcmFubGliCmNoZWNraW5nIGNvbW1hbmQgdG8gcGFy c2UgL2Jpbi9ubSAtQiBvdXRwdXQgZnJvbSBnY2Mgb2JqZWN0Li4uIG9rCmNo ZWNraW5nIGZvciBzeXNyb290Li4uIG5vCmNoZWNraW5nIGZvciBtdC4uLiA6 CmNoZWNraW5nIGlmIDogaXMgYSBtYW5pZmVzdCB0b29sLi4uIG5vCmNoZWNr aW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uIGdjYyAtRQpj aGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiB5ZXMKY2hlY2tp bmcgZm9yIHN5cy90eXBlcy5oLi4uIHllcwpjaGVja2luZyBmb3Igc3lzL3N0 YXQuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0ZGxpYi5oLi4uIHllcwpjaGVj a2luZyBmb3Igc3RyaW5nLmguLi4geWVzCmNoZWNraW5nIGZvciBtZW1vcnku aC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cmluZ3MuaC4uLiB5ZXMKY2hlY2tp bmcgZm9yIGludHR5cGVzLmguLi4geWVzCmNoZWNraW5nIGZvciBzdGRpbnQu aC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHVuaXN0ZC5oLi4uIHllcwpjaGVja2lu ZyBmb3IgZGxmY24uaC4uLiBubwpjaGVja2luZyBmb3IgYXMuLi4gYXMKY2hl Y2tpbmcgZm9yIGRsbHRvb2wuLi4gKGNhY2hlZCkgZGxsdG9vbApjaGVja2lu ZyBmb3Igb2JqZHVtcC4uLiAoY2FjaGVkKSBvYmpkdW1wCmNoZWNraW5nIGZv ciBvYmpkaXIuLi4gLmxpYnMKY2hlY2tpbmcgaWYgZ2NjIHN1cHBvcnRzIC1m bm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gbm8KY2hlY2tpbmcgZm9yIGdj YyBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gLURETExfRVhQT1JUIC1EUElD CmNoZWNraW5nIGlmIGdjYyBQSUMgZmxhZyAtRERMTF9FWFBPUlQgLURQSUMg d29ya3MuLi4geWVzCmNoZWNraW5nIGlmIGdjYyBzdGF0aWMgZmxhZyAtc3Rh dGljIHdvcmtzLi4uIHllcwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMg LW8gZmlsZS5vLi4uIHllcwpjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWMg LW8gZmlsZS5vLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyB3aGV0aGVyIHRo ZSBnY2MgbGlua2VyIChjOi90aW5ndy9taW5ndzMyL2Jpbi9sZC5leGUpIHN1 cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4geWVzCmNoZWNraW5nIGR5bmFt aWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcy4uLiBXaW4zMiBsZC5leGUKY2hl Y2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9n cmFtcy4uLiBpbW1lZGlhdGUKY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcg bGlicmFyaWVzIGlzIHBvc3NpYmxlLi4uIHllcwpjaGVja2luZyBpZiBsaWJ0 b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcy4uLiBubwpjaGVj a2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuLi4geWVz CmNoZWNraW5nIGZvciBjb3MgaW4gLWxtLi4uIHllcwpjb25maWd1cmU6IGNy ZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGlu ZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMg Y29tbWFuZHMKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGxpYnRvb2wgY29t bWFuZHMKL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQu Mi90ZXN0cy93aXRoLXBpYy5hdDozNDogJE1BS0UKc3RkZXJyOgpzdGRvdXQ6 Ci9iaW4vc2ggLi9saWJ0b29sIC0tdGFnPUNDICAgLS1tb2RlPWNvbXBpbGUg Z2NjIC1EUEFDS0FHRV9OQU1FPVwiZGVtb1wiIC1EUEFDS0FHRV9UQVJOQU1F PVwiZGVtb1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgLURQQUNLQUdF X1NUUklORz1cImRlbW9cIDEuMFwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJi dWctbGlidG9vbEBnbnUub3JnXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFD S0FHRT1cImRlbW9cIiAtRFZFUlNJT049XCIxLjBcIiAtRFNURENfSEVBREVS Uz0xIC1ESEFWRV9TWVNfVFlQRVNfSD0xIC1ESEFWRV9TWVNfU1RBVF9IPTEg LURIQVZFX1NURExJQl9IPTEgLURIQVZFX1NUUklOR19IPTEgLURIQVZFX01F TU9SWV9IPTEgLURIQVZFX1NUUklOR1NfSD0xIC1ESEFWRV9JTlRUWVBFU19I PTEgLURIQVZFX1NURElOVF9IPTEgLURIQVZFX1VOSVNURF9IPTEgLURMVF9P QkpESVI9XCIubGlicy9cIiAtSS4gLUkvTWluR1cvc2hhcmUvYXV0b21ha2Ut MS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8gIC1JL01pbkdXL3NoYXJl L2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9kZW1vLy4uLy4u ICAgLWcgLU8yIC1jIC1vIGhlbGxvLmxvIC9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtby9oZWxsby5jCmxpYnRv b2w6IGNvbXBpbGU6ICBnY2MgLURQQUNLQUdFX05BTUU9XCJkZW1vXCIgLURQ QUNLQUdFX1RBUk5BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1ZFUlNJT049XCIx LjBcIiAiLURQQUNLQUdFX1NUUklORz1cImRlbW8gMS4wXCIiIC1EUEFDS0FH RV9CVUdSRVBPUlQ9XCJidWctbGlidG9vbEBnbnUub3JnXCIgLURQQUNLQUdF X1VSTD1cIlwiIC1EUEFDS0FHRT1cImRlbW9cIiAtRFZFUlNJT049XCIxLjBc IiAtRFNURENfSEVBREVSUz0xIC1ESEFWRV9TWVNfVFlQRVNfSD0xIC1ESEFW RV9TWVNfU1RBVF9IPTEgLURIQVZFX1NURExJQl9IPTEgLURIQVZFX1NUUklO R19IPTEgLURIQVZFX01FTU9SWV9IPTEgLURIQVZFX1NUUklOR1NfSD0xIC1E SEFWRV9JTlRUWVBFU19IPTEgLURIQVZFX1NURElOVF9IPTEgLURIQVZFX1VO SVNURF9IPTEgLURMVF9PQkpESVI9XCIubGlicy9cIiAtSS4gLUkvTWluR1cv c2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8g LUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rl c3RzL2RlbW8vLi4vLi4gLWcgLU8yIC1jIC9NaW5HVy9zaGFyZS9hdXRvbWFr ZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtby9oZWxsby5jIC1vIGhl bGxvLm8KL2Jpbi9zaCAuL2xpYnRvb2wgLS10YWc9Q0MgICAtLW1vZGU9Y29t cGlsZSBnY2MgLURQQUNLQUdFX05BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1RB Uk5BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBB Q0tBR0VfU1RSSU5HPVwiZGVtb1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9S VD1cImJ1Zy1saWJ0b29sQGdudS5vcmdcIiAtRFBBQ0tBR0VfVVJMPVwiXCIg LURQQUNLQUdFPVwiZGVtb1wiIC1EVkVSU0lPTj1cIjEuMFwiIC1EU1REQ19I RUFERVJTPTEgLURIQVZFX1NZU19UWVBFU19IPTEgLURIQVZFX1NZU19TVEFU X0g9MSAtREhBVkVfU1RETElCX0g9MSAtREhBVkVfU1RSSU5HX0g9MSAtREhB VkVfTUVNT1JZX0g9MSAtREhBVkVfU1RSSU5HU19IPTEgLURIQVZFX0lOVFRZ UEVTX0g9MSAtREhBVkVfU1RESU5UX0g9MSAtREhBVkVfVU5JU1REX0g9MSAt RExUX09CSkRJUj1cIi5saWJzL1wiIC1JLiAtSS9NaW5HVy9zaGFyZS9hdXRv bWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtbyAgLUkvTWluR1cv c2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8v Li4vLi4gICAtZyAtTzIgLWMgLW8gZm9vLmxvIC9NaW5HVy9zaGFyZS9hdXRv bWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtby9mb28uYwpsaWJ0 b29sOiBjb21waWxlOiAgZ2NjIC1EUEFDS0FHRV9OQU1FPVwiZGVtb1wiIC1E UEFDS0FHRV9UQVJOQU1FPVwiZGVtb1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwi MS4wXCIgIi1EUEFDS0FHRV9TVFJJTkc9XCJkZW1vIDEuMFwiIiAtRFBBQ0tB R0VfQlVHUkVQT1JUPVwiYnVnLWxpYnRvb2xAZ251Lm9yZ1wiIC1EUEFDS0FH RV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJkZW1vXCIgLURWRVJTSU9OPVwiMS4w XCIgLURTVERDX0hFQURFUlM9MSAtREhBVkVfU1lTX1RZUEVTX0g9MSAtREhB VkVfU1lTX1NUQVRfSD0xIC1ESEFWRV9TVERMSUJfSD0xIC1ESEFWRV9TVFJJ TkdfSD0xIC1ESEFWRV9NRU1PUllfSD0xIC1ESEFWRV9TVFJJTkdTX0g9MSAt REhBVkVfSU5UVFlQRVNfSD0xIC1ESEFWRV9TVERJTlRfSD0xIC1ESEFWRV9V TklTVERfSD0xIC1ETFRfT0JKRElSPVwiLmxpYnMvXCIgLUkuIC1JL01pbkdX L3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9kZW1v IC1JL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90 ZXN0cy9kZW1vLy4uLy4uIC1nIC1PMiAtYyAvTWluR1cvc2hhcmUvYXV0b21h a2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8vZm9vLmMgLW8gZm9v Lm8KL2Jpbi9zaCAuL2xpYnRvb2wgLS10YWc9Q0MgICAtLW1vZGU9bGluayBn Y2MgIC1nIC1PMiAtbm8tdW5kZWZpbmVkIC12ZXJzaW9uLWluZm8gMzoxMjox ICAtbyBsaWJoZWxsby5sYSAtcnBhdGggL25vbmV4aXN0ZW50L2xpYiBoZWxs by5sbyBmb28ubG8gLWxtIApsaWJ0b29sOiBsaW5rOiBhciBjcnUgLmxpYnMv bGliaGVsbG8uYSAgaGVsbG8ubyBmb28ubwpsaWJ0b29sOiBsaW5rOiByYW5s aWIgLmxpYnMvbGliaGVsbG8uYQpsaWJ0b29sOiBsaW5rOiAoIGNkICIubGli cyIgJiYgcm0gLWYgImxpYmhlbGxvLmxhIiAmJiBjcCAtcCAiLi4vbGliaGVs bG8ubGEiICJsaWJoZWxsby5sYSIgKQpnY2MgLURQQUNLQUdFX05BTUU9XCJk ZW1vXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1ZF UlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiZGVtb1wgMS4wXCIg LURQQUNLQUdFX0JVR1JFUE9SVD1cImJ1Zy1saWJ0b29sQGdudS5vcmdcIiAt RFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiZGVtb1wiIC1EVkVSU0lP Tj1cIjEuMFwiIC1EU1REQ19IRUFERVJTPTEgLURIQVZFX1NZU19UWVBFU19I PTEgLURIQVZFX1NZU19TVEFUX0g9MSAtREhBVkVfU1RETElCX0g9MSAtREhB VkVfU1RSSU5HX0g9MSAtREhBVkVfTUVNT1JZX0g9MSAtREhBVkVfU1RSSU5H U19IPTEgLURIQVZFX0lOVFRZUEVTX0g9MSAtREhBVkVfU1RESU5UX0g9MSAt REhBVkVfVU5JU1REX0g9MSAtRExUX09CSkRJUj1cIi5saWJzL1wiIC1JLiAt SS9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVz dHMvZGVtbyAgLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29s LTIuNC4yL3Rlc3RzL2RlbW8vLi4vLi4gICAtZyAtTzIgLWMgL01pbkdXL3No YXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9kZW1vL21h aW4uYwovYmluL3NoIC4vbGlidG9vbCAtLXRhZz1DQyAgIC0tbW9kZT1saW5r IGdjYyAgLWcgLU8yICAgLW8gaGVsbC5leGUgbWFpbi5vIGxpYmhlbGxvLmxh IApsaWJ0b29sOiBsaW5rOiBnY2MgLWcgLU8yIC1vIGhlbGwuZXhlIG1haW4u byAgLi8ubGlicy9saWJoZWxsby5hCi9iaW4vc2ggLi9saWJ0b29sIC0tdGFn PUNDICAgLS1tb2RlPWxpbmsgZ2NjICAtZyAtTzIgLXN0YXRpYyAgLW8gaGVs bF9zdGF0aWMuZXhlIG1haW4ubyBsaWJoZWxsby5sYSAKbGlidG9vbDogbGlu azogZ2NjIC1nIC1PMiAtbyBoZWxsX3N0YXRpYy5leGUgbWFpbi5vICAuLy5s aWJzL2xpYmhlbGxvLmEKZ2NjIC1EUEFDS0FHRV9OQU1FPVwiZGVtb1wiIC1E UEFDS0FHRV9UQVJOQU1FPVwiZGVtb1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwi MS4wXCIgLURQQUNLQUdFX1NUUklORz1cImRlbW9cIDEuMFwiIC1EUEFDS0FH RV9CVUdSRVBPUlQ9XCJidWctbGlidG9vbEBnbnUub3JnXCIgLURQQUNLQUdF X1VSTD1cIlwiIC1EUEFDS0FHRT1cImRlbW9cIiAtRFZFUlNJT049XCIxLjBc IiAtRFNURENfSEVBREVSUz0xIC1ESEFWRV9TWVNfVFlQRVNfSD0xIC1ESEFW RV9TWVNfU1RBVF9IPTEgLURIQVZFX1NURExJQl9IPTEgLURIQVZFX1NUUklO R19IPTEgLURIQVZFX01FTU9SWV9IPTEgLURIQVZFX1NUUklOR1NfSD0xIC1E SEFWRV9JTlRUWVBFU19IPTEgLURIQVZFX1NURElOVF9IPTEgLURIQVZFX1VO SVNURF9IPTEgLURMVF9PQkpESVI9XCIubGlicy9cIiAtSS4gLUkvTWluR1cv c2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8g IC1JL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90 ZXN0cy9kZW1vLy4uLy4uICAgLWcgLU8yIC1jIC9NaW5HVy9zaGFyZS9hdXRv bWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtby9kbG1haW4uYwov YmluL3NoIC4vbGlidG9vbCAtLXRhZz1DQyAgIC0tbW9kZT1saW5rIGdjYyAg LWcgLU8yIC1leHBvcnQtZHluYW1pYyAtZGxwcmVvcGVuIGxpYmhlbGxvLmxh ICAtbyBoZWxsZGwuZXhlIGRsbWFpbi5vICAKbGlidG9vbDogbGluazogcm0g LWYgLmxpYnMvaGVsbGRsLmV4ZS5ubSAubGlicy9oZWxsZGwuZXhlLm5tUyAu bGlicy9oZWxsZGwuZXhlLm5tVApsaWJ0b29sOiBsaW5rOiAoY2QgLmxpYnMg JiYgZ2NjIC1nIC1PMiAtYyAtZm5vLWJ1aWx0aW4gImhlbGxkbC5leGVTLmMi KQpsaWJ0b29sOiBsaW5rOiBybSAtZiAiLmxpYnMvaGVsbGRsLmV4ZVMuYyIg Ii5saWJzL2hlbGxkbC5leGUubm0iICIubGlicy9oZWxsZGwuZXhlLm5tUyIg Ii5saWJzL2hlbGxkbC5leGUubm1UIgpsaWJ0b29sOiBsaW5rOiBnY2MgLWcg LU8yIC5saWJzL2hlbGxkbC5leGVTLm8gLW8gaGVsbGRsLmV4ZSBkbG1haW4u byAtV2wsLS1leHBvcnQtYWxsLXN5bWJvbHMgIC4vLmxpYnMvbGliaGVsbG8u YQpsaWJ0b29sOiBsaW5rOiBybSAtZiAiLmxpYnMvaGVsbGRsLmV4ZVMubyIK L01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0 cy93aXRoLXBpYy5hdDozNTogJEZHUkVQIC12ICIkcGljX2ZsYWciIHN0ZG91 dApzdGRlcnI6CnN0ZG91dDoKL2Jpbi9zaCAuL2xpYnRvb2wgLS10YWc9Q0Mg ICAtLW1vZGU9Y29tcGlsZSBnY2MgLURQQUNLQUdFX05BTUU9XCJkZW1vXCIg LURQQUNLQUdFX1RBUk5BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1ZFUlNJT049 XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiZGVtb1wgMS4wXCIgLURQQUNL QUdFX0JVR1JFUE9SVD1cImJ1Zy1saWJ0b29sQGdudS5vcmdcIiAtRFBBQ0tB R0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiZGVtb1wiIC1EVkVSU0lPTj1cIjEu MFwiIC1EU1REQ19IRUFERVJTPTEgLURIQVZFX1NZU19UWVBFU19IPTEgLURI QVZFX1NZU19TVEFUX0g9MSAtREhBVkVfU1RETElCX0g9MSAtREhBVkVfU1RS SU5HX0g9MSAtREhBVkVfTUVNT1JZX0g9MSAtREhBVkVfU1RSSU5HU19IPTEg LURIQVZFX0lOVFRZUEVTX0g9MSAtREhBVkVfU1RESU5UX0g9MSAtREhBVkVf VU5JU1REX0g9MSAtRExUX09CSkRJUj1cIi5saWJzL1wiIC1JLiAtSS9NaW5H Vy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvZGVt byAgLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4y L3Rlc3RzL2RlbW8vLi4vLi4gICAtZyAtTzIgLWMgLW8gaGVsbG8ubG8gL01p bkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9k ZW1vL2hlbGxvLmMKbGlidG9vbDogY29tcGlsZTogIGdjYyAtRFBBQ0tBR0Vf TkFNRT1cImRlbW9cIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImRlbW9cIiAtRFBB Q0tBR0VfVkVSU0lPTj1cIjEuMFwiICItRFBBQ0tBR0VfU1RSSU5HPVwiZGVt byAxLjBcIiIgLURQQUNLQUdFX0JVR1JFUE9SVD1cImJ1Zy1saWJ0b29sQGdu dS5vcmdcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiZGVtb1wi IC1EVkVSU0lPTj1cIjEuMFwiIC1EU1REQ19IRUFERVJTPTEgLURIQVZFX1NZ U19UWVBFU19IPTEgLURIQVZFX1NZU19TVEFUX0g9MSAtREhBVkVfU1RETElC X0g9MSAtREhBVkVfU1RSSU5HX0g9MSAtREhBVkVfTUVNT1JZX0g9MSAtREhB VkVfU1RSSU5HU19IPTEgLURIQVZFX0lOVFRZUEVTX0g9MSAtREhBVkVfU1RE SU5UX0g9MSAtREhBVkVfVU5JU1REX0g9MSAtRExUX09CSkRJUj1cIi5saWJz L1wiIC1JLiAtSS9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wt Mi40LjIvdGVzdHMvZGVtbyAtSS9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjEx L2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtby8uLi8uLiAtZyAtTzIgLWMgL01p bkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy9k ZW1vL2hlbGxvLmMgLW8gaGVsbG8ubwovYmluL3NoIC4vbGlidG9vbCAtLXRh Zz1DQyAgIC0tbW9kZT1jb21waWxlIGdjYyAtRFBBQ0tBR0VfTkFNRT1cImRl bW9cIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImRlbW9cIiAtRFBBQ0tBR0VfVkVS U0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJkZW1vXCAxLjBcIiAt RFBBQ0tBR0VfQlVHUkVQT1JUPVwiYnVnLWxpYnRvb2xAZ251Lm9yZ1wiIC1E UEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJkZW1vXCIgLURWRVJTSU9O PVwiMS4wXCIgLURTVERDX0hFQURFUlM9MSAtREhBVkVfU1lTX1RZUEVTX0g9 MSAtREhBVkVfU1lTX1NUQVRfSD0xIC1ESEFWRV9TVERMSUJfSD0xIC1ESEFW RV9TVFJJTkdfSD0xIC1ESEFWRV9NRU1PUllfSD0xIC1ESEFWRV9TVFJJTkdT X0g9MSAtREhBVkVfSU5UVFlQRVNfSD0xIC1ESEFWRV9TVERJTlRfSD0xIC1E SEFWRV9VTklTVERfSD0xIC1ETFRfT0JKRElSPVwiLmxpYnMvXCIgLUkuIC1J L01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0 cy9kZW1vICAtSS9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wt Mi40LjIvdGVzdHMvZGVtby8uLi8uLiAgIC1nIC1PMiAtYyAtbyBmb28ubG8g L01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0 cy9kZW1vL2Zvby5jCmxpYnRvb2w6IGNvbXBpbGU6ICBnY2MgLURQQUNLQUdF X05BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJkZW1vXCIgLURQ QUNLQUdFX1ZFUlNJT049XCIxLjBcIiAiLURQQUNLQUdFX1NUUklORz1cImRl bW8gMS4wXCIiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJidWctbGlidG9vbEBn bnUub3JnXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImRlbW9c IiAtRFZFUlNJT049XCIxLjBcIiAtRFNURENfSEVBREVSUz0xIC1ESEFWRV9T WVNfVFlQRVNfSD0xIC1ESEFWRV9TWVNfU1RBVF9IPTEgLURIQVZFX1NURExJ Ql9IPTEgLURIQVZFX1NUUklOR19IPTEgLURIQVZFX01FTU9SWV9IPTEgLURI QVZFX1NUUklOR1NfSD0xIC1ESEFWRV9JTlRUWVBFU19IPTEgLURIQVZFX1NU RElOVF9IPTEgLURIQVZFX1VOSVNURF9IPTEgLURMVF9PQkpESVI9XCIubGli cy9cIiAtSS4gLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29s LTIuNC4yL3Rlc3RzL2RlbW8gLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4x MS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8vLi4vLi4gLWcgLU8yIC1jIC9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMv ZGVtby9mb28uYyAtbyBmb28ubwovYmluL3NoIC4vbGlidG9vbCAtLXRhZz1D QyAgIC0tbW9kZT1saW5rIGdjYyAgLWcgLU8yIC1uby11bmRlZmluZWQgLXZl cnNpb24taW5mbyAzOjEyOjEgIC1vIGxpYmhlbGxvLmxhIC1ycGF0aCAvbm9u ZXhpc3RlbnQvbGliIGhlbGxvLmxvIGZvby5sbyAtbG0gCmxpYnRvb2w6IGxp bms6IGFyIGNydSAubGlicy9saWJoZWxsby5hICBoZWxsby5vIGZvby5vCmxp YnRvb2w6IGxpbms6IHJhbmxpYiAubGlicy9saWJoZWxsby5hCmxpYnRvb2w6 IGxpbms6ICggY2QgIi5saWJzIiAmJiBybSAtZiAibGliaGVsbG8ubGEiICYm IGNwIC1wICIuLi9saWJoZWxsby5sYSIgImxpYmhlbGxvLmxhIiApCmdjYyAt RFBBQ0tBR0VfTkFNRT1cImRlbW9cIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImRl bW9cIiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJ Tkc9XCJkZW1vXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiYnVnLWxp YnRvb2xAZ251Lm9yZ1wiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9 XCJkZW1vXCIgLURWRVJTSU9OPVwiMS4wXCIgLURTVERDX0hFQURFUlM9MSAt REhBVkVfU1lTX1RZUEVTX0g9MSAtREhBVkVfU1lTX1NUQVRfSD0xIC1ESEFW RV9TVERMSUJfSD0xIC1ESEFWRV9TVFJJTkdfSD0xIC1ESEFWRV9NRU1PUllf SD0xIC1ESEFWRV9TVFJJTkdTX0g9MSAtREhBVkVfSU5UVFlQRVNfSD0xIC1E SEFWRV9TVERJTlRfSD0xIC1ESEFWRV9VTklTVERfSD0xIC1ETFRfT0JKRElS PVwiLmxpYnMvXCIgLUkuIC1JL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEv bGlidG9vbC0yLjQuMi90ZXN0cy9kZW1vICAtSS9NaW5HVy9zaGFyZS9hdXRv bWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtby8uLi8uLiAgIC1n IC1PMiAtYyAvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIu NC4yL3Rlc3RzL2RlbW8vbWFpbi5jCi9iaW4vc2ggLi9saWJ0b29sIC0tdGFn PUNDICAgLS1tb2RlPWxpbmsgZ2NjICAtZyAtTzIgICAtbyBoZWxsLmV4ZSBt YWluLm8gbGliaGVsbG8ubGEgCmxpYnRvb2w6IGxpbms6IGdjYyAtZyAtTzIg LW8gaGVsbC5leGUgbWFpbi5vICAuLy5saWJzL2xpYmhlbGxvLmEKL2Jpbi9z aCAuL2xpYnRvb2wgLS10YWc9Q0MgICAtLW1vZGU9bGluayBnY2MgIC1nIC1P MiAtc3RhdGljICAtbyBoZWxsX3N0YXRpYy5leGUgbWFpbi5vIGxpYmhlbGxv LmxhIApsaWJ0b29sOiBsaW5rOiBnY2MgLWcgLU8yIC1vIGhlbGxfc3RhdGlj LmV4ZSBtYWluLm8gIC4vLmxpYnMvbGliaGVsbG8uYQpnY2MgLURQQUNLQUdF X05BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJkZW1vXCIgLURQ QUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiZGVt b1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cImJ1Zy1saWJ0b29sQGdu dS5vcmdcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiZGVtb1wi IC1EVkVSU0lPTj1cIjEuMFwiIC1EU1REQ19IRUFERVJTPTEgLURIQVZFX1NZ U19UWVBFU19IPTEgLURIQVZFX1NZU19TVEFUX0g9MSAtREhBVkVfU1RETElC X0g9MSAtREhBVkVfU1RSSU5HX0g9MSAtREhBVkVfTUVNT1JZX0g9MSAtREhB VkVfU1RSSU5HU19IPTEgLURIQVZFX0lOVFRZUEVTX0g9MSAtREhBVkVfU1RE SU5UX0g9MSAtREhBVkVfVU5JU1REX0g9MSAtRExUX09CSkRJUj1cIi5saWJz L1wiIC1JLiAtSS9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wt Mi40LjIvdGVzdHMvZGVtbyAgLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4x MS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8vLi4vLi4gICAtZyAtTzIgLWMg L01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0 cy9kZW1vL2RsbWFpbi5jCi9iaW4vc2ggLi9saWJ0b29sIC0tdGFnPUNDICAg LS1tb2RlPWxpbmsgZ2NjICAtZyAtTzIgLWV4cG9ydC1keW5hbWljIC1kbHBy ZW9wZW4gbGliaGVsbG8ubGEgIC1vIGhlbGxkbC5leGUgZGxtYWluLm8gIAps aWJ0b29sOiBsaW5rOiBybSAtZiAubGlicy9oZWxsZGwuZXhlLm5tIC5saWJz L2hlbGxkbC5leGUubm1TIC5saWJzL2hlbGxkbC5leGUubm1UCmxpYnRvb2w6 IGxpbms6IChjZCAubGlicyAmJiBnY2MgLWcgLU8yIC1jIC1mbm8tYnVpbHRp biAiaGVsbGRsLmV4ZVMuYyIpCmxpYnRvb2w6IGxpbms6IHJtIC1mICIubGli cy9oZWxsZGwuZXhlUy5jIiAiLmxpYnMvaGVsbGRsLmV4ZS5ubSIgIi5saWJz L2hlbGxkbC5leGUubm1TIiAiLmxpYnMvaGVsbGRsLmV4ZS5ubVQiCmxpYnRv b2w6IGxpbms6IGdjYyAtZyAtTzIgLmxpYnMvaGVsbGRsLmV4ZVMubyAtbyBo ZWxsZGwuZXhlIGRsbWFpbi5vIC1XbCwtLWV4cG9ydC1hbGwtc3ltYm9scyAg Li8ubGlicy9saWJoZWxsby5hCmxpYnRvb2w6IGxpbms6IHJtIC1mICIubGli cy9oZWxsZGwuZXhlUy5vIgogcm0gLWYgaGVsbC5leGUgaGVsbF9zdGF0aWMu ZXhlIGhlbGxkbC5leGUKIHJtIC1mIGhlbGwgaGVsbF9zdGF0aWMgaGVsbGRs CnRlc3QgLXogImhjLWRpcmVjdCBoYy1saWJmbGFnIGhjLWxpYnBhdGggaGMt bWludXNMIGxpYmhlbGwwLmEgbGliaGVsbDEubGEgbGliaGVsbDIubGEgaGVs bDAuZXhlIGhlbGwwIiB8fCBybSAtZiBoYy1kaXJlY3QgaGMtbGliZmxhZyBo Yy1saWJwYXRoIGhjLW1pbnVzTCBsaWJoZWxsMC5hIGxpYmhlbGwxLmxhIGxp YmhlbGwyLmxhIGhlbGwwLmV4ZSBoZWxsMAp0ZXN0IC16ICJsaWJoZWxsby5s YSIgfHwgcm0gLWYgbGliaGVsbG8ubGEKcm0gLWYgIi4vc29fbG9jYXRpb25z IgpybSAtcmYgLmxpYnMgX2xpYnMKcm0gLWYgKi5vCnJtIC1mICoubG8KL01p bkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy93 aXRoLXBpYy5hdDozODogOiAke0NPTkZJR19TSEVMTD0vYmluL3NofTsgZXhw b3J0IENPTkZJR19TSEVMTDsgCSAgJENPTkZJR19TSEVMTCAkQ09ORklHVVJF ICRjb25maWd1cmVfb3B0aW9ucyAtLWRpc2FibGUtc2hhcmVkIC0td2l0aC1w aWM9eWVzCnN0ZGVycjoKc3Rkb3V0OgpjaGVja2luZyBmb3IgYSBCU0QtY29t cGF0aWJsZSBpbnN0YWxsLi4uIC9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3 aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNr aW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wLi4uIC9iaW4vbWtkaXIg LXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gZ2F3awpjaGVja2luZyB3aGV0aGVy IG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyBmb3IgZ2NjLi4u IGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4u IHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBm aWxlIG5hbWUuLi4gYS5leGUKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVj dXRhYmxlcy4uLiAuZXhlCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3Nz IGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVj dCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRo ZSBHTlUgQyBjb21waWxlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2Mg YWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8g YWNjZXB0IElTTyBDODkuLi4gbm9uZSBuZWVkZWQKY2hlY2tpbmcgZm9yIHN0 eWxlIG9mIGluY2x1ZGUgdXNlZCBieSBtYWtlLi4uIEdOVQpjaGVja2luZyBk ZXBlbmRlbmN5IHN0eWxlIG9mIGdjYy4uLiBnY2MzCmNoZWNraW5nIGJ1aWxk IHN5c3RlbSB0eXBlLi4uIGk2ODYtcGMtbWluZ3czMgpjaGVja2luZyBob3N0 IHN5c3RlbSB0eXBlLi4uIGk2ODYtcGMtbWluZ3czMgpjaGVja2luZyBob3cg dG8gcHJpbnQgc3RyaW5ncy4uLiBwcmludGYKY2hlY2tpbmcgZm9yIGEgc2Vk IHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0Li4uIC9iaW4vc2VkCmNo ZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAt ZS4uLiAvYmluL2dyZXAKY2hlY2tpbmcgZm9yIGVncmVwLi4uIC9iaW4vZ3Jl cCAtRQpjaGVja2luZyBmb3IgZmdyZXAuLi4gL2Jpbi9ncmVwIC1GCmNoZWNr aW5nIGZvciBsZCB1c2VkIGJ5IGdjYy4uLiBjOi90aW5ndy9taW5ndzMyL2Jp bi9sZC5leGUKY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoYzovdGluZ3cvbWlu Z3czMi9iaW4vbGQuZXhlKSBpcyBHTlUgbGQuLi4geWVzCmNoZWNraW5nIGZv ciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAv YmluL25tIC1CCmNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoL2Jpbi9ubSAt QikgaW50ZXJmYWNlLi4uIEJTRCBubQpjaGVja2luZyB3aGV0aGVyIGxuIC1z IHdvcmtzLi4uIG5vLCB1c2luZyBjcCAtcApjaGVja2luZyB0aGUgbWF4aW11 bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4uLiA4MTkyCmNo ZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJ IGNvbnN0cnVjdHMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxs IHVuZGVyc3RhbmRzICIrPSIuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjb252 ZXJ0IGk2ODYtcGMtbWluZ3czMiBmaWxlIG5hbWVzIHRvIGk2ODYtcGMtbWlu Z3czMiBmb3JtYXQuLi4gKGNhY2hlZCkgZnVuY19jb252ZXJ0X2ZpbGVfbXN5 c190b193MzIKY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgaTY4Ni1wYy1taW5n dzMyIGZpbGUgbmFtZXMgdG8gdG9vbGNoYWluIGZvcm1hdC4uLiAoY2FjaGVk KSBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgpjaGVja2luZyBmb3Ig YzovdGluZ3cvbWluZ3czMi9iaW4vbGQuZXhlIG9wdGlvbiB0byByZWxvYWQg b2JqZWN0IGZpbGVzLi4uIC1yCmNoZWNraW5nIGZvciBvYmpkdW1wLi4uIG9i amR1bXAKY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGli cmFyaWVzLi4uIGZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2 IERMTApjaGVja2luZyBmb3IgZGxsdG9vbC4uLiBkbGx0b29sCmNoZWNraW5n IGhvdyB0byBhc3NvY2lhdGUgcnVudGltZSBhbmQgbGluayBsaWJyYXJpZXMu Li4gZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliCmNoZWNraW5nIGZvciBh cmNoaXZlciBARklMRSBzdXBwb3J0Li4uIEAKY2hlY2tpbmcgZm9yIHN0cmlw Li4uIHN0cmlwCmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGliCmNoZWNr aW5nIGNvbW1hbmQgdG8gcGFyc2UgL2Jpbi9ubSAtQiBvdXRwdXQgZnJvbSBn Y2Mgb2JqZWN0Li4uIG9rCmNoZWNraW5nIGZvciBzeXNyb290Li4uIG5vCmNo ZWNraW5nIGZvciBtdC4uLiA6CmNoZWNraW5nIGlmIDogaXMgYSBtYW5pZmVz dCB0b29sLi4uIG5vCmNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJv Y2Vzc29yLi4uIGdjYyAtRQpjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBm aWxlcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN5cy90eXBlcy5oLi4uIHllcwpj aGVja2luZyBmb3Igc3lzL3N0YXQuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0 ZGxpYi5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RyaW5nLmguLi4geWVzCmNo ZWNraW5nIGZvciBtZW1vcnkuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cmlu Z3MuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGludHR5cGVzLmguLi4geWVzCmNo ZWNraW5nIGZvciBzdGRpbnQuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHVuaXN0 ZC5oLi4uIHllcwpjaGVja2luZyBmb3IgZGxmY24uaC4uLiBubwpjaGVja2lu ZyBmb3IgYXMuLi4gYXMKY2hlY2tpbmcgZm9yIGRsbHRvb2wuLi4gKGNhY2hl ZCkgZGxsdG9vbApjaGVja2luZyBmb3Igb2JqZHVtcC4uLiAoY2FjaGVkKSBv YmpkdW1wCmNoZWNraW5nIGZvciBvYmpkaXIuLi4gLmxpYnMKY2hlY2tpbmcg aWYgZ2NjIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4g bm8KY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4g LURETExfRVhQT1JUIC1EUElDCmNoZWNraW5nIGlmIGdjYyBQSUMgZmxhZyAt RERMTF9FWFBPUlQgLURQSUMgd29ya3MuLi4geWVzCmNoZWNraW5nIGlmIGdj YyBzdGF0aWMgZmxhZyAtc3RhdGljIHdvcmtzLi4uIHllcwpjaGVja2luZyBp ZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vLi4uIHllcwpjaGVja2luZyBp ZiBnY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vLi4uIChjYWNoZWQpIHllcwpj aGVja2luZyB3aGV0aGVyIHRoZSBnY2MgbGlua2VyIChjOi90aW5ndy9taW5n dzMyL2Jpbi9sZC5leGUpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4g eWVzCmNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcy4u LiBXaW4zMiBsZC5leGUKY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJh cnkgcGF0aHMgaW50byBwcm9ncmFtcy4uLiBpbW1lZGlhdGUKY2hlY2tpbmcg d2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlLi4uIHll cwpjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxp YnJhcmllcy4uLiBubwpjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRp YyBsaWJyYXJpZXMuLi4geWVzCmNoZWNraW5nIGZvciBjb3MgaW4gLWxtLi4u IHllcwpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25m aWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBl eGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKY29uZmlnLnN0YXR1czogZXhl Y3V0aW5nIGxpYnRvb2wgY29tbWFuZHMKL01pbkdXL3NoYXJlL2F1dG9tYWtl LTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy93aXRoLXBpYy5hdDozOTogJE1B S0UKc3RkZXJyOgpzdGRvdXQ6Ci9iaW4vc2ggLi9saWJ0b29sIC0tdGFnPUND ICAgLS1tb2RlPWNvbXBpbGUgZ2NjIC1EUEFDS0FHRV9OQU1FPVwiZGVtb1wi IC1EUEFDS0FHRV9UQVJOQU1FPVwiZGVtb1wiIC1EUEFDS0FHRV9WRVJTSU9O PVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImRlbW9cIDEuMFwiIC1EUEFD S0FHRV9CVUdSRVBPUlQ9XCJidWctbGlidG9vbEBnbnUub3JnXCIgLURQQUNL QUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImRlbW9cIiAtRFZFUlNJT049XCIx LjBcIiAtRFNURENfSEVBREVSUz0xIC1ESEFWRV9TWVNfVFlQRVNfSD0xIC1E SEFWRV9TWVNfU1RBVF9IPTEgLURIQVZFX1NURExJQl9IPTEgLURIQVZFX1NU UklOR19IPTEgLURIQVZFX01FTU9SWV9IPTEgLURIQVZFX1NUUklOR1NfSD0x IC1ESEFWRV9JTlRUWVBFU19IPTEgLURIQVZFX1NURElOVF9IPTEgLURIQVZF X1VOSVNURF9IPTEgLURMVF9PQkpESVI9XCIubGlicy9cIiAtSS4gLUkvTWlu R1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2Rl bW8gIC1JL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQu Mi90ZXN0cy9kZW1vLy4uLy4uICAgLWcgLU8yIC1jIC1vIGhlbGxvLmxvIC9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMv ZGVtby9oZWxsby5jCmxpYnRvb2w6IGNvbXBpbGU6ICBnY2MgLURQQUNLQUdF X05BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJkZW1vXCIgLURQ QUNLQUdFX1ZFUlNJT049XCIxLjBcIiAiLURQQUNLQUdFX1NUUklORz1cImRl bW8gMS4wXCIiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJidWctbGlidG9vbEBn bnUub3JnXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImRlbW9c IiAtRFZFUlNJT049XCIxLjBcIiAtRFNURENfSEVBREVSUz0xIC1ESEFWRV9T WVNfVFlQRVNfSD0xIC1ESEFWRV9TWVNfU1RBVF9IPTEgLURIQVZFX1NURExJ Ql9IPTEgLURIQVZFX1NUUklOR19IPTEgLURIQVZFX01FTU9SWV9IPTEgLURI QVZFX1NUUklOR1NfSD0xIC1ESEFWRV9JTlRUWVBFU19IPTEgLURIQVZFX1NU RElOVF9IPTEgLURIQVZFX1VOSVNURF9IPTEgLURMVF9PQkpESVI9XCIubGli cy9cIiAtSS4gLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29s LTIuNC4yL3Rlc3RzL2RlbW8gLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4x MS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8vLi4vLi4gLWcgLU8yIC1jIC9N aW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMv ZGVtby9oZWxsby5jIC1vIGhlbGxvLm8KL2Jpbi9zaCAuL2xpYnRvb2wgLS10 YWc9Q0MgICAtLW1vZGU9Y29tcGlsZSBnY2MgLURQQUNLQUdFX05BTUU9XCJk ZW1vXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1ZF UlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiZGVtb1wgMS4wXCIg LURQQUNLQUdFX0JVR1JFUE9SVD1cImJ1Zy1saWJ0b29sQGdudS5vcmdcIiAt RFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiZGVtb1wiIC1EVkVSU0lP Tj1cIjEuMFwiIC1EU1REQ19IRUFERVJTPTEgLURIQVZFX1NZU19UWVBFU19I PTEgLURIQVZFX1NZU19TVEFUX0g9MSAtREhBVkVfU1RETElCX0g9MSAtREhB VkVfU1RSSU5HX0g9MSAtREhBVkVfTUVNT1JZX0g9MSAtREhBVkVfU1RSSU5H U19IPTEgLURIQVZFX0lOVFRZUEVTX0g9MSAtREhBVkVfU1RESU5UX0g9MSAt REhBVkVfVU5JU1REX0g9MSAtRExUX09CSkRJUj1cIi5saWJzL1wiIC1JLiAt SS9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVz dHMvZGVtbyAgLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29s LTIuNC4yL3Rlc3RzL2RlbW8vLi4vLi4gICAtZyAtTzIgLWMgLW8gZm9vLmxv IC9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVz dHMvZGVtby9mb28uYwpsaWJ0b29sOiBjb21waWxlOiAgZ2NjIC1EUEFDS0FH RV9OQU1FPVwiZGVtb1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiZGVtb1wiIC1E UEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgIi1EUEFDS0FHRV9TVFJJTkc9XCJk ZW1vIDEuMFwiIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiYnVnLWxpYnRvb2xA Z251Lm9yZ1wiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJkZW1v XCIgLURWRVJTSU9OPVwiMS4wXCIgLURTVERDX0hFQURFUlM9MSAtREhBVkVf U1lTX1RZUEVTX0g9MSAtREhBVkVfU1lTX1NUQVRfSD0xIC1ESEFWRV9TVERM SUJfSD0xIC1ESEFWRV9TVFJJTkdfSD0xIC1ESEFWRV9NRU1PUllfSD0xIC1E SEFWRV9TVFJJTkdTX0g9MSAtREhBVkVfSU5UVFlQRVNfSD0xIC1ESEFWRV9T VERJTlRfSD0xIC1ESEFWRV9VTklTVERfSD0xIC1ETFRfT0JKRElSPVwiLmxp YnMvXCIgLUkuIC1JL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9v bC0yLjQuMi90ZXN0cy9kZW1vIC1JL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEu MTEvbGlidG9vbC0yLjQuMi90ZXN0cy9kZW1vLy4uLy4uIC1nIC1PMiAtYyAv TWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3Rz L2RlbW8vZm9vLmMgLW8gZm9vLm8KL2Jpbi9zaCAuL2xpYnRvb2wgLS10YWc9 Q0MgICAtLW1vZGU9bGluayBnY2MgIC1nIC1PMiAtbm8tdW5kZWZpbmVkIC12 ZXJzaW9uLWluZm8gMzoxMjoxICAtbyBsaWJoZWxsby5sYSAtcnBhdGggL25v bmV4aXN0ZW50L2xpYiBoZWxsby5sbyBmb28ubG8gLWxtIApsaWJ0b29sOiBs aW5rOiBhciBjcnUgLmxpYnMvbGliaGVsbG8uYSAgaGVsbG8ubyBmb28ubwps aWJ0b29sOiBsaW5rOiByYW5saWIgLmxpYnMvbGliaGVsbG8uYQpsaWJ0b29s OiBsaW5rOiAoIGNkICIubGlicyIgJiYgcm0gLWYgImxpYmhlbGxvLmxhIiAm JiBjcCAtcCAiLi4vbGliaGVsbG8ubGEiICJsaWJoZWxsby5sYSIgKQpnY2Mg LURQQUNLQUdFX05BTUU9XCJkZW1vXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJk ZW1vXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RS SU5HPVwiZGVtb1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cImJ1Zy1s aWJ0b29sQGdudS5vcmdcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdF PVwiZGVtb1wiIC1EVkVSU0lPTj1cIjEuMFwiIC1EU1REQ19IRUFERVJTPTEg LURIQVZFX1NZU19UWVBFU19IPTEgLURIQVZFX1NZU19TVEFUX0g9MSAtREhB VkVfU1RETElCX0g9MSAtREhBVkVfU1RSSU5HX0g9MSAtREhBVkVfTUVNT1JZ X0g9MSAtREhBVkVfU1RSSU5HU19IPTEgLURIQVZFX0lOVFRZUEVTX0g9MSAt REhBVkVfU1RESU5UX0g9MSAtREhBVkVfVU5JU1REX0g9MSAtRExUX09CSkRJ Uj1cIi5saWJzL1wiIC1JLiAtSS9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjEx L2xpYnRvb2wtMi40LjIvdGVzdHMvZGVtbyAgLUkvTWluR1cvc2hhcmUvYXV0 b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yL3Rlc3RzL2RlbW8vLi4vLi4gICAt ZyAtTzIgLWMgL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0y LjQuMi90ZXN0cy9kZW1vL21haW4uYwovYmluL3NoIC4vbGlidG9vbCAtLXRh Zz1DQyAgIC0tbW9kZT1saW5rIGdjYyAgLWcgLU8yICAgLW8gaGVsbC5leGUg bWFpbi5vIGxpYmhlbGxvLmxhIApsaWJ0b29sOiBsaW5rOiBnY2MgLWcgLU8y IC1vIGhlbGwuZXhlIG1haW4ubyAgLi8ubGlicy9saWJoZWxsby5hCi9iaW4v c2ggLi9saWJ0b29sIC0tdGFnPUNDICAgLS1tb2RlPWxpbmsgZ2NjICAtZyAt TzIgLXN0YXRpYyAgLW8gaGVsbF9zdGF0aWMuZXhlIG1haW4ubyBsaWJoZWxs by5sYSAKbGlidG9vbDogbGluazogZ2NjIC1nIC1PMiAtbyBoZWxsX3N0YXRp Yy5leGUgbWFpbi5vICAuLy5saWJzL2xpYmhlbGxvLmEKZ2NjIC1EUEFDS0FH RV9OQU1FPVwiZGVtb1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiZGVtb1wiIC1E UEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImRl bW9cIDEuMFwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJidWctbGlidG9vbEBn bnUub3JnXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImRlbW9c IiAtRFZFUlNJT049XCIxLjBcIiAtRFNURENfSEVBREVSUz0xIC1ESEFWRV9T WVNfVFlQRVNfSD0xIC1ESEFWRV9TWVNfU1RBVF9IPTEgLURIQVZFX1NURExJ Ql9IPTEgLURIQVZFX1NUUklOR19IPTEgLURIQVZFX01FTU9SWV9IPTEgLURI QVZFX1NUUklOR1NfSD0xIC1ESEFWRV9JTlRUWVBFU19IPTEgLURIQVZFX1NU RElOVF9IPTEgLURIQVZFX1VOSVNURF9IPTEgLURMVF9PQkpESVI9XCIubGli cy9cIiAtSS4gLUkvTWluR1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29s LTIuNC4yL3Rlc3RzL2RlbW8gIC1JL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEu MTEvbGlidG9vbC0yLjQuMi90ZXN0cy9kZW1vLy4uLy4uICAgLWcgLU8yIC1j IC9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVz dHMvZGVtby9kbG1haW4uYwovYmluL3NoIC4vbGlidG9vbCAtLXRhZz1DQyAg IC0tbW9kZT1saW5rIGdjYyAgLWcgLU8yIC1leHBvcnQtZHluYW1pYyAtZGxw cmVvcGVuIGxpYmhlbGxvLmxhICAtbyBoZWxsZGwuZXhlIGRsbWFpbi5vICAK bGlidG9vbDogbGluazogcm0gLWYgLmxpYnMvaGVsbGRsLmV4ZS5ubSAubGli cy9oZWxsZGwuZXhlLm5tUyAubGlicy9oZWxsZGwuZXhlLm5tVApsaWJ0b29s OiBsaW5rOiAoY2QgLmxpYnMgJiYgZ2NjIC1nIC1PMiAtYyAtZm5vLWJ1aWx0 aW4gImhlbGxkbC5leGVTLmMiKQpsaWJ0b29sOiBsaW5rOiBybSAtZiAiLmxp YnMvaGVsbGRsLmV4ZVMuYyIgIi5saWJzL2hlbGxkbC5leGUubm0iICIubGli cy9oZWxsZGwuZXhlLm5tUyIgIi5saWJzL2hlbGxkbC5leGUubm1UIgpsaWJ0 b29sOiBsaW5rOiBnY2MgLWcgLU8yIC5saWJzL2hlbGxkbC5leGVTLm8gLW8g aGVsbGRsLmV4ZSBkbG1haW4ubyAtV2wsLS1leHBvcnQtYWxsLXN5bWJvbHMg IC4vLmxpYnMvbGliaGVsbG8uYQpsaWJ0b29sOiBsaW5rOiBybSAtZiAiLmxp YnMvaGVsbGRsLmV4ZVMubyIKL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEv bGlidG9vbC0yLjQuMi90ZXN0cy93aXRoLXBpYy5hdDo0MDogJEZHUkVQICIk cGljX2ZsYWciIHN0ZG91dApzdGRlcnI6CnN0ZG91dDoKL01pbkdXL3NoYXJl L2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90ZXN0cy93aXRoLXBpYy5h dDo0MDogZXhpdCBjb2RlIHdhcyAxLCBleHBlY3RlZCAwCjEwNy4gd2l0aC1w aWMuYXQ6MjQ6IDEwNy4gdGVzdCAtLXdpdGgtcGljICh3aXRoLXBpYy5hdDoy NCk6IEZBSUxFRCAod2l0aC1waWMuYXQ6NDApCg== --_----------=_13840355941782731 Content-Disposition: attachment; filename="testsuite.log" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="testsuite.log" IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIGNvbXBpbGF0aW9u IC0qLQoxMTUuIGNtZGxpbmVfd3JhcC5hdDoyODogdGVzdGluZyBSdW4gdGVz dHMgd2l0aCBsb3cgbWF4X2NtZF9sZW4gLi4uCi9NaW5HVy9zaGFyZS9hdXRv bWFrZS0xLjExL2xpYnRvb2wtMi40LjIvdGVzdHMvY21kbGluZV93cmFwLmF0 OjQzOiAkQ09ORklHX1NIRUxMICRhYnNfc3JjZGlyL3Rlc3RzdWl0ZSAtayBs aWJ0b29sJElOTkVSX1RFU1RTVUlURUZMQUdTCnN0ZGVycjoKRVJST1I6IDQw IHRlc3RzIHdlcmUgcnVuLAo1IGZhaWxlZCAoNCBleHBlY3RlZCBmYWlsdXJl cykuCjE1IHRlc3RzIHdlcmUgc2tpcHBlZC4Kc3Rkb3V0OgojIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBHTlUgTGlidG9vbCAyLjQu MiB0ZXN0IHN1aXRlLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjIwoKVGVzdGluZyBsaWJ0b29sIGZ1bmN0aW9ucy4KCiAyMTogc3Rh bmRhcmQgY29tbWFuZCBsaW5lIG9wdGlvbnMgICAgICAgICAgICAgICAgICAg b2sKIDI0OiBkdXBsaWNhdGUgbWVtYmVycyBpbiBhcmNoaXZlIHRlc3RzICAg ICAgICAgICAgICBvawogMjU6IGR1cGxpY2F0ZSBjb252ZW5pZW5jZSBhcmNo aXZlIG5hbWVzICAgICAgICAgICAgIG9rCiAyNjogcHJlc2VydmUgZHVwbGlj YXRlIGNvbnZlbmllbmNlIGRlcHMgICAgICAgICAgICAgZXhwZWN0ZWQgZmFp bHVyZSAoZHVwbGljYXRlX2RlcHMuYXQ6NzIpCiAyNzogcGFzc2luZyBDQyBm bGFncyB0aHJvdWdoIGxpYnRvb2wgICAgICAgICAgICAgICAgb2sKIDI4OiBw YXNzaW5nIENYWCBmbGFncyB0aHJvdWdoIGxpYnRvb2wgICAgICAgICAgICAg ICBvawogMjk6IHBhc3NpbmcgRjc3IGZsYWdzIHRocm91Z2ggbGlidG9vbCAg ICAgICAgICAgICAgIHNraXBwZWQgKGZsYWdzLmF0OjI0KQogMzA6IHBhc3Np bmcgRkMgZmxhZ3MgdGhyb3VnaCBsaWJ0b29sICAgICAgICAgICAgICAgIHNr aXBwZWQgKGZsYWdzLmF0OjI0KQogMzE6IHBhc3NpbmcgR0NKIGZsYWdzIHRo cm91Z2ggbGlidG9vbCAgICAgICAgICAgICAgIHNraXBwZWQgKGZsYWdzLmF0 OjI0KQogMzI6IGluaGVyaXRlZF9saW5rZXJfZmxhZ3MgICAgICAgICAgICAg ICAgICAgICAgICAgIG9rCiAzMzogQyBjb252ZW5pZW5jZSBhcmNoaXZlcyAg ICAgICAgICAgICAgICAgICAgICAgICAgb2sKIDM0OiBDKysgY29udmVuaWVu Y2UgYXJjaGl2ZXMgICAgICAgICAgICAgICAgICAgICAgICBvawogMzU6IEY3 NyBjb252ZW5pZW5jZSBhcmNoaXZlcyAgICAgICAgICAgICAgICAgICAgICAg IHNraXBwZWQgKGNvbnZlbmllbmNlLmF0OjExMSkKIDM2OiBGQyBjb252ZW5p ZW5jZSBhcmNoaXZlcyAgICAgICAgICAgICAgICAgICAgICAgICBza2lwcGVk IChjb252ZW5pZW5jZS5hdDoxNzEpCiAzNzogSmF2YSBjb252ZW5pZW5jZSBh cmNoaXZlcyAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBlZCAoY29udmVu aWVuY2UuYXQ6MjMxKQogMzg6IExpbmsgb3JkZXIgdGVzdCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9rCiAzOTogTGluayBvcmRlciBvZiBk ZXBsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgb2sKIDQwOiBGYWls dXJlIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv awogNDE6IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCAgICAgICAgICAg ICAgICAgICAgIHNraXBwZWQgKHNobGlicGF0aC5hdDo1NCkKIDQyOiBSdW5w YXRoIGluIGxpYnRvb2wgbGlicmFyeSBmaWxlcyAgICAgICAgICAgICAgICBv awogNDM6IHN0YXRpYyBsaW5raW5nIGZsYWdzIGZvciBwcm9ncmFtcyAgICAg ICAgICAgICAgIG9rCiA0NTogRXhwb3J0IHRlc3QgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2sKIDQ2OiBzeXNfbGliX3NlYXJjaF9w YXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwcGVkIChzZWFy Y2gtcGF0aC5hdDo1NikKIDQ3OiBzeXNfbGliX3NlYXJjaF9wYXRoIG9uIHcz MiAgICAgICAgICAgICAgICAgICAgICBvawogNDg6IGluZGlyZWN0IGNvbnZl bmllbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rCiA0OTogaW5k aXJlY3QgdW5pbnN0YWxsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2sKIDUwOiBzdGF0aWMgbGlicmFyeSBjb250YWlucyBzdGF0aWMgbGlicmFy eSAgICAgICAgICBleHBlY3RlZCBmYWlsdXJlIChhcmNoaXZlLWluLWFyY2hp dmUuYXQ6NTYpCiA1MTogYm90aCBvZiAtbyBwcm9nIGFuZCAtbyBwcm9nJEVY RUVYVCB3b3JrICAgICAgICAgb2sKIDUyOiBleGVjdXRlIG1vZGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvawogNTU6IGN3cmFwcGVy IGZvciB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyAgICAgICAgICAgIEZBSUxF RCAoY3dyYXBwZXIuYXQ6NzkpCiA1NzogY3dyYXBwZXIgYW5kIGluc3RhbGxl ZCBzaGFyZWQgbGlicmFyaWVzICAgICAgICAgb2sKIDU4OiBkZXBsaWIgaW4g c3ViZGlyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvawogNTk6 IGluZmVycmVkIHRhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9rCiA2MDogQ1hYIGluZmVycmVkIHRhZyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2sKIDYxOiBGNzcgaW5mZXJyZWQgdGFnICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwcGVkIChpbmZlci10YWcu YXQ6NTYpCiA2MjogRkMgaW5mZXJyZWQgdGFnICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2tpcHBlZCAoaW5mZXItdGFnLmF0OjcwKQogNjM6 IEdDSiBpbmZlcnJlZCB0YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNraXBwZWQgKGluZmVyLXRhZy5hdDo4NCkKIDY0OiBsb2NhbGl6ZWQg Y29tcGlsZXIgbWVzc2FnZXMgICAgICAgICAgICAgICAgICAgICBvawogNjU6 IG5vY2FzZSBsaWJyYXJ5IHNlYXJjaCAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9rCiA2NjogSW5zdGFsbCB0ZXN0cyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2sKIDY3OiB2ZXJzaW9uaW5nICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvawoKREVTVERJUiB0ZXN0cwoK IDY4OiBTaW1wbGUgREVTVERJUiBpbnN0YWxsICAgICAgICAgICAgICAgICAg ICAgICAgICBvawogNjk6IERFU1RESVIgd2l0aCBpbi1wYWNrYWdlIGRlcGxp YnMgICAgICAgICAgICAgICAgIG9rCgpMaWJsdGRsIGZ1bmN0aW9uYWxpdHku CgogODM6IHN5bnRheCBvZiAubGEgZmlsZXMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGV4cGVjdGVkIGZhaWx1cmUgKGxhbGliLXN5bnRheC5hdDox MzMpCiA4NjogZW5mb3JjZWQgbGliIHByZWZpeCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2sKCkMrKyB0ZW1wbGF0ZSB0ZXN0cy4KCjEwMTogc2lt cGxlIHRlbXBsYXRlIHRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2sKMTAyOiB0ZW1wbGF0ZSB0ZXN0IHdpdGggc3ViZGlycyAgICAgICAgICAg ICAgICAgICAgICBvawoKQ29uc3RydWN0b3JzLgoKMTAzOiBDKysgc3RhdGlj IGNvbnN0cnVjdG9ycyAgICAgICAgICAgICAgICAgICAgICAgICBvawoxMDQ6 IEMrKyBleGNlcHRpb24gaGFuZGxpbmcgICAgICAgICAgICAgICAgICAgICAg ICAgIG9rCgpEZXRlY3RpbmcgaWRlbnRpY2FsIGRlcGxpYnMuCgoxMDk6IGJ1 aWxkIHRyZWUgcmVscGF0aHMgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGV4cGVjdGVkIGZhaWx1cmUgKGRlcGxpYnMtaWRlbnQuYXQ6NjgpCgpMaWJ0 b29sIHN0cmVzcyB0ZXN0LgoKMTE0OiBMaW5rIG9wdGlvbiB0aG9yb3VnaCBz ZWFyY2ggdGVzdCAgICAgICAgICAgICAgICBvawoKV2luZG93cyB0ZXN0cy4K CjEyMzogZGVwbGlicyB3aXRob3V0IGZpbGUgY29tbWFuZCAgICAgICAgICAg ICAgICAgICAgc2tpcHBlZCAoZGVwbGlicy1taW5ndy5hdDo3OSkKCnN5c3Jv b3QgdGVzdHMKCjEyNDogLUw9Li4uL2xpYiAtbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2tpcHBlZCAoc3lzcm9vdC5hdDoyMDMpCjEy NTogLUwgU1lTUk9PVC8uLi4vbGliIC1sICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2tpcHBlZCAoc3lzcm9vdC5hdDoyMDQpCjEyNjogU1lTUk9PVC8u Li4vKi5sYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBl ZCAoc3lzcm9vdC5hdDoyMDUpCgojIyAtLS0tLS0tLS0tLS0tICMjCiMjIFRl c3QgcmVzdWx0cy4gIyMKIyMgLS0tLS0tLS0tLS0tLSAjIwoKIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgdGVzdHN1aXRlLmxvZyB3YXMg Y3JlYXRlZC4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK ClBsZWFzZSBzZW5kIGB0ZXN0c3VpdGUubG9nJyBhbmQgYWxsIGluZm9ybWF0 aW9uIHlvdSB0aGluayBtaWdodCBoZWxwOgoKICAgVG86IDxidWctbGlidG9v bEBnbnUub3JnPgogICBTdWJqZWN0OiBbR05VIExpYnRvb2wgMi40LjJdIHRl c3RzdWl0ZTogNTUgZmFpbGVkCgpZb3UgbWF5IGludmVzdGlnYXRlIGFueSBw cm9ibGVtIGlmIHlvdSBmZWVsIGFibGUgdG8gZG8gc28sIGluIHdoaWNoCmNh c2UgdGhlIHRlc3Qgc3VpdGUgcHJvdmlkZXMgYSBnb29kIHN0YXJ0aW5nIHBv aW50LiAgSXRzIG91dHB1dCBtYXkKYmUgZm91bmQgYmVsb3cgYHRlc3RzdWl0 ZS5kaXInLgoKL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0y LjQuMi90ZXN0cy9jbWRsaW5lX3dyYXAuYXQ6NDM6IGV4aXQgY29kZSB3YXMg MSwgZXhwZWN0ZWQgMAp0ZXN0c3VpdGUubG9nOgo+ICMjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMjCj4gIyMgR05VIExpYnRvb2wgMi40LjIg dGVzdCBzdWl0ZS4gIyMKPiAjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjIwo+IAo+IHRlc3RzdWl0ZTogY29tbWFuZCBsaW5lIHdhczoKPiAg ICQgL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGlidG9vbC0yLjQuMi90 ZXN0cy90ZXN0c3VpdGUgLWsgbGlidG9vbCBhYnNfdG9wX3NyY2Rpcj0vTWlu R1cvc2hhcmUvYXV0b21ha2UtMS4xMS9saWJ0b29sLTIuNC4yIGFic19idWls ZGRpcj0vbWluZ3cvbGlidG9vbC1idWlsZC1kdWUtdG8tR05VL3Rlc3RzCj4g Cj4gIyMgLS0tLS0tLS0tICMjCj4gIyMgUGxhdGZvcm0uICMjCj4gIyMgLS0t LS0tLS0tICMjCj4gCj4gaG9zdG5hbWUgPSB0aWxsCj4gdW5hbWUgLW0gPSBp Njg2Cj4gdW5hbWUgLXIgPSAxLjAuMTgoMC40OC8zLzIpCj4gdW5hbWUgLXMg PSBNSU5HVzMyX05ULTYuMQo+IHVuYW1lIC12ID0gMjAxMi0xMS0yMSAyMjoz NAo+IAo+IC91c3IvYmluL3VuYW1lIC1wID0gdW5rbm93bgo+IC9iaW4vdW5h bWUgLVggICAgID0gdW5rbm93bgo+IAo+IC9iaW4vYXJjaCAgICAgICAgICAg ICAgPSB1bmtub3duCj4gL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IHVua25v d24KPiAvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgo+IC91c3Iv YmluL2hvc3RpbmZvICAgICAgPSB1bmtub3duCj4gL2Jpbi9tYWNoaW5lICAg ICAgICAgICA9IHVua25vd24KPiAvdXNyL2Jpbi9vc2xldmVsICAgICAgID0g dW5rbm93bgo+IC9iaW4vdW5pdmVyc2UgICAgICAgICAgPSB1bmtub3duCj4g Cj4gUEFUSDogL21pbmd3L2xpYnRvb2wtYnVpbGQtZHVlLXRvLUdOVS90ZXN0 cwo+IFBBVEg6IC9NaW5HVy9zaGFyZS9hdXRvbWFrZS0xLjExL2xpYnRvb2wt Mi40LjIvdGVzdHMKPiBQQVRIOiAvbWluZ3cvbGlidG9vbC1idWlsZC1kdWUt dG8tR05VCj4gUEFUSDogL01pbkdXL3NoYXJlL2F1dG9tYWtlLTEuMTEvbGli dG9vbC0yLjQuMi8uCj4gUEFUSDogL21pbmd3L2Jpbgo+IFBBVEg6IC9iaW4K PiBQQVRIOiAvYy9XaW5kb3dzL3N5c3RlbTMyCj4gUEFUSDogL2MvV2luZG93 cwo+IFBBVEg6IC9jL1dpbmRvd3MvU3lzdGVtMzIvV2JlbQo+IFBBVEg6IC9j L1dpbmRvd3MvU3lzdGVtMzIvV2luZG93c1Bvd2VyU2hlbGwvdjEuMC8KPiBQ QVRIOiAvYy9Qcm9ncmFtIEZpbGVzICh4ODYpL01pY3Jvc29mdCBTUUwgU2Vy dmVyLzEwMC9Ub29scy9CaW5uLwo+IFBBVEg6IC9jL1Byb2dyYW0gRmlsZXMv TWljcm9zb2Z0IFNRTCBTZXJ2ZXIvMTAwL1Rvb2xzL0Jpbm4vCj4gUEFUSDog L2MvUHJvZ3JhbSBGaWxlcy9NaWNyb3NvZnQgU1FMIFNlcnZlci8xMDAvRFRT L0Jpbm4vCj4gUEFUSDogL2MvQkM1L0JJTgo+IAo+ICMjIC0tLS0tLS0tLS0t LS0tLS0gIyMKPiAjIyBUZXN0ZWQgcHJvZ3JhbXMuICMjCj4gIyMgLS0tLS0t LS0tLS0tLS0tLSAjIwo+IAo+ICMjIC0tLS0tLS0tLS0tLS0tLS0tLSAjIwo+ ICMjIFJ1bm5pbmcgdGhlIHRlc3RzLiAjIwo+ICMjIC0tLS0tLS0tLS0tLS0t LS0tLSAjIwo+IHRlc3RzdWl0ZTogc3RhcnRpbmcgYXQ6IFNhdCBOb3YgIDkg MjA6NTM6MTMgICAgIDIwMTMKPiAyMS4gc3RhbmRhcmQgY29tbWFuZCBsaW5l IG9wdGlvbnMgKGhlbHAuYXQ6MjYpOiBvayAgICAgKDBtNS4zMDFzIDBtMTQu NTEycykKPiAyNC4gZHVwbGljYXRlIG1lbWJlcnMgaW4gYXJjaGl2ZSB0ZXN0 cyAoZHVwbGljYXRlX21lbWJlcnMuYXQ6MjUpOiBvayAgICAgKDBtOS43Mzlz IDBtMzkuNDEwcykKPiAyNS4gZHVwbGljYXRlIGNvbnZlbmllbmNlIGFyY2hp dmUgbmFtZXMgKGR1cGxpY2F0ZV9jb252LmF0OjI1KTogb2sgICAgICgwbTIw LjI3NHMgMW0yMS45NzFzKQo+IDI3LiBwYXNzaW5nIENDIGZsYWdzIHRocm91 Z2ggbGlidG9vbCAoZmxhZ3MuYXQ6MjQpOiBvayAgICAgKDBtMTYuOTkzcyAx bTkuMTQ4cykKPiAyOC4gcGFzc2luZyBDWFggZmxhZ3MgdGhyb3VnaCBsaWJ0 b29sIChmbGFncy5hdDoyNCk6IG9rICAgICAoMG0xOS44NDdzIDFtMTQuNTgy cykKPiAyOS4gcGFzc2luZyBGNzcgZmxhZ3MgdGhyb3VnaCBsaWJ0b29sIChm bGFncy5hdDoyNCk6IHNraXBwZWQgKGZsYWdzLmF0OjI0KQo+IDMwLiBwYXNz aW5nIEZDIGZsYWdzIHRocm91Z2ggbGlidG9vbCAoZmxhZ3MuYXQ6MjQpOiBz a2lwcGVkIChmbGFncy5hdDoyNCkKPiAzMS4gcGFzc2luZyBHQ0ogZmxhZ3Mg dGhyb3VnaCBsaWJ0b29sIChmbGFncy5hdDoyNCk6IHNraXBwZWQgKGZsYWdz LmF0OjI0KQo+IDMyLiBpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIChpbmhlcml0 ZWRfZmxhZ3MuYXQ6MjYpOiBvayAgICAgKDBtMTQuNTg3cyAwbTU4Ljc3MnMp Cj4gMzMuIEMgY29udmVuaWVuY2UgYXJjaGl2ZXMgKGNvbnZlbmllbmNlLmF0 OjMxKTogb2sgICAgICgwbTE4LjUwNXMgMW0xMy45MDdzKQo+IDM0LiBDKysg Y29udmVuaWVuY2UgYXJjaGl2ZXMgKGNvbnZlbmllbmNlLmF0OjcwKTogb2sg ICAgICgwbTIwLjI3NXMgMW0xNy43NTlzKQo+IDM1LiBGNzcgY29udmVuaWVu Y2UgYXJjaGl2ZXMgKGNvbnZlbmllbmNlLmF0OjExMCk6IHNraXBwZWQgKGNv bnZlbmllbmNlLmF0OjExMSkKPiAzNi4gRkMgY29udmVuaWVuY2UgYXJjaGl2 ZXMgKGNvbnZlbmllbmNlLmF0OjE3MCk6IHNraXBwZWQgKGNvbnZlbmllbmNl LmF0OjE3MSkKPiAzNy4gSmF2YSBjb252ZW5pZW5jZSBhcmNoaXZlcyAoY29u dmVuaWVuY2UuYXQ6MjMwKTogc2tpcHBlZCAoY29udmVuaWVuY2UuYXQ6MjMx KQo+IDM4LiBMaW5rIG9yZGVyIHRlc3QgKGxpbmstb3JkZXIuYXQ6MjYpOiBv ayAgICAgKDBtMjIuNjQ4cyAxbTMzLjE4M3MpCj4gMzkuIExpbmsgb3JkZXIg b2YgZGVwbGlicyAobGluay1vcmRlcjIuYXQ6NDYpOiBvayAgICAgKDBtNDUu MTMycyAzbTExLjAzOXMpCj4gNDAuIEZhaWx1cmUgdGVzdHMgKGZhaWwuYXQ6 MjcpOiBvayAgICAgKDBtNi41MDhzIDBtMjguMjM1cykKPiA0MS4gc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoIChzaGxpYnBhdGguYXQ6MjUpOiBza2lw cGVkIChzaGxpYnBhdGguYXQ6NTQpCj4gNDIuIFJ1bnBhdGggaW4gbGlidG9v bCBsaWJyYXJ5IGZpbGVzIChydW5wYXRoLWluLWxhbGliLmF0OjI1KTogb2sg ICAgICgwbTcuMjI5cyAwbTMyLjM5N3MpCj4gNDMuIHN0YXRpYyBsaW5raW5n IGZsYWdzIGZvciBwcm9ncmFtcyAoc3RhdGljLmF0OjY4KTogb2sgICAgICgx bTI0LjU2NHMgNW0yNy44NTdzKQo+IDQ1LiBFeHBvcnQgdGVzdCAoZXhwb3J0 LmF0OjI1KTogb2sgICAgICgwbTMxLjE3NXMgMm00LjM0OXMpCj4gNDYuIHN5 c19saWJfc2VhcmNoX3BhdGggKHNlYXJjaC1wYXRoLmF0OjI0KTogc2tpcHBl ZCAoc2VhcmNoLXBhdGguYXQ6NTYpCj4gNDcuIHN5c19saWJfc2VhcmNoX3Bh dGggb24gdzMyIChzZWFyY2gtcGF0aC5hdDo2Mik6IG9rICAgICAoMG0yLjUz MnMgMG0xMC4yNTZzKQo+IDQ4LiBpbmRpcmVjdCBjb252ZW5pZW5jZSAoaW5k aXJlY3RfZGVwcy5hdDoyNSk6IG9rICAgICAoMG0xNi4yNzJzIDFtNS41OTRz KQo+IDQ5LiBpbmRpcmVjdCB1bmluc3RhbGxlZCAoaW5kaXJlY3RfZGVwcy5h dDo3MSk6IG9rICAgICAoMG0yMi40MjdzIDFtMjUuMzE4cykKPiA1MS4gYm90 aCBvZiAtbyBwcm9nIGFuZCAtbyBwcm9nJEVYRUVYVCB3b3JrIChleGVleHQu YXQ6MjYpOiBvayAgICAgKDBtNC45MjBzIDBtMTkuODQ3cykKPiA1Mi4gZXhl Y3V0ZSBtb2RlIChleGVjdXRlLW1vZGUuYXQ6MjUpOiBvayAgICAgKDFtOS40 NjFzIDVtNi4yNTRzKQo+IDU3LiBjd3JhcHBlciBhbmQgaW5zdGFsbGVkIHNo YXJlZCBsaWJyYXJpZXMgKGN3cmFwcGVyLmF0OjIwMSk6IG9rICAgICAoMG0x MS4zMDBzIDBtNDQuNjUycykKPiA1OC4gZGVwbGliIGluIHN1YmRpciAoZGVw bGliLWluLXN1YmRpci5hdDozNCk6IG9rICAgICAoMG0zOS4wMzNzIDJtMzQu MzUxcykKPiA1OS4gaW5mZXJyZWQgdGFnIChpbmZlci10YWcuYXQ6MzApOiBv ayAgICAgKDBtMC41MDdzIDBtMi4xMTBzKQo+IDYwLiBDWFggaW5mZXJyZWQg dGFnIChpbmZlci10YWcuYXQ6NDIpOiBvayAgICAgKDBtMC41OTdzIDBtMi40 MThzKQo+IDYxLiBGNzcgaW5mZXJyZWQgdGFnIChpbmZlci10YWcuYXQ6NTUp OiBza2lwcGVkIChpbmZlci10YWcuYXQ6NTYpCj4gNjIuIEZDIGluZmVycmVk IHRhZyAoaW5mZXItdGFnLmF0OjY5KTogc2tpcHBlZCAoaW5mZXItdGFnLmF0 OjcwKQo+IDYzLiBHQ0ogaW5mZXJyZWQgdGFnIChpbmZlci10YWcuYXQ6ODMp OiBza2lwcGVkIChpbmZlci10YWcuYXQ6ODQpCj4gNjQuIGxvY2FsaXplZCBj b21waWxlciBtZXNzYWdlcyAobG9jYWxpemF0aW9uLmF0OjI0KTogb2sgICAg ICgwbTEuNTQ3cyAwbTUuMTQxcykKPiA2NS4gbm9jYXNlIGxpYnJhcnkgc2Vh cmNoIChub2Nhc2UuYXQ6MjYpOiBvayAgICAgKDBtMTIuNjY2cyAwbTUxLjk5 NXMpCj4gNjYuIEluc3RhbGwgdGVzdHMgKGluc3RhbGwuYXQ6MjUpOiBvayAg ICAgKDBtNi40NjNzIDBtMjUuMDkzcykKPiA2Ny4gdmVyc2lvbmluZyAodmVy c2lvbmluZy5hdDoyNCk6IG9rICAgICAoMG01Ny4zODVzIDNtNTguMTAxcykK PiA2OC4gU2ltcGxlIERFU1RESVIgaW5zdGFsbCAoZGVzdGRpci5hdDo0OCk6 IG9rICAgICAoMG04LjU3NnMgMG0zNC45NjRzKQo+IDY5LiBERVNURElSIHdp dGggaW4tcGFja2FnZSBkZXBsaWJzIChkZXN0ZGlyLmF0Ojc1KTogb2sgICAg ICgwbTI4LjIxNHMgMW01MC4zOTNzKQo+IDg2LiBlbmZvcmNlZCBsaWIgcHJl Zml4IChuZWVkX2xpYl9wcmVmaXguYXQ6MjUpOiBvayAgICAgKDBtMTIuNDQ0 cyAwbTQ4LjIwOXMpCj4gMTAxLiBzaW1wbGUgdGVtcGxhdGUgdGVzdCAodGVt cGxhdGUuYXQ6MjcpOiBvayAgICAgKDBtOC4yODFzIDBtMjguNzczcykKPiAx MDIuIHRlbXBsYXRlIHRlc3Qgd2l0aCBzdWJkaXJzICh0ZW1wbGF0ZS5hdDox MjYpOiBvayAgICAgKDBtMzMuODk3cyAybTguOTA1cykKPiAxMDMuIEMrKyBz dGF0aWMgY29uc3RydWN0b3JzIChjdG9yLmF0OjI3KTogb2sgICAgICgwbTUu NzQ0cyAwbTE5Ljg1MnMpCj4gMTA0LiBDKysgZXhjZXB0aW9uIGhhbmRsaW5n IChleGNlcHRpb25zLmF0OjI0KTogb2sgICAgICgwbTE3LjcwNHMgMW04LjYy MXMpCj4gMTE0LiBMaW5rIG9wdGlvbiB0aG9yb3VnaCBzZWFyY2ggdGVzdCAo c3RyZXNzdGVzdC5hdDozMSk6IG9rICAgICAoNm0zLjQwN3MgMjNtMzMuODAw cykKPiAxMjMuIGRlcGxpYnMgd2l0aG91dCBmaWxlIGNvbW1hbmQgKGRlcGxp YnMtbWluZ3cuYXQ6MjcpOiBza2lwcGVkIChkZXBsaWJzLW1pbmd3LmF0Ojc5 KQo+IDEyNC4gLUw9Li4uL2xpYiAtbCAoc3lzcm9vdC5hdDoyMDMpOiBza2lw cGVkIChzeXNyb290LmF0OjIwMykKPiAxMjUuIC1MIFNZU1JPT1QvLi4uL2xp YiAtbCAoc3lzcm9vdC5hdDoyMDQpOiBza2lwcGVkIChzeXNyb290LmF0OjIw NCkKPiAxMjYuIFNZU1JPT1QvLi4uLyoubGEgKHN5c3Jvb3QuYXQ6MjA1KTog c2tpcHBlZCAoc3lzcm9vdC5hdDoyMDUpCj4gdGVzdHN1aXRlOiBlbmRpbmcg YXQ6IFN1biBOb3YgMTAgMDA6MjY6MDAgICAgIDIwMTMKPiB0ZXN0c3VpdGU6 IHRlc3Qgc3VpdGUgZHVyYXRpb246IDNoIDMybSA0N3MKPiAKPiAjIyAtLS0t LS0tLS0tLS0tICMjCj4gIyMgVGVzdCByZXN1bHRzLiAjIwo+ICMjIC0tLS0t LS0tLS0tLS0gIyMKPiAKPiBFUlJPUjogNDAgdGVzdHMgd2VyZSBydW4sCj4g NSBmYWlsZWQgKDQgZXhwZWN0ZWQgZmFpbHVyZXMpLgo+IDE1IHRlc3RzIHdl cmUgc2tpcHBlZC4KPiAKPiAjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKPiAjIyBTdW1tYXJ5IG9mIHRoZSBmYWlsdXJlcy4gIyMKPiAjIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKPiBGYWlsZWQgdGVzdHM6Cj4gR05V IExpYnRvb2wgMi40LjIgdGVzdCBzdWl0ZSB0ZXN0IGdyb3VwczoKPiAKPiAg TlVNOiBGSUxFLU5BTUU6TElORSAgICAgVEVTVC1HUk9VUC1OQU1FCj4gICAg ICAgS0VZV09SRFMKPiAKPiAgIDU1OiBjd3JhcHBlci5hdDoyNSAgICAgY3dy YXBwZXIgZm9yIHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzCj4gICAgICAgbGli dG9vbAo+IAo+IFNraXBwZWQgdGVzdHM6Cj4gR05VIExpYnRvb2wgMi40LjIg dGVzdCBzdWl0ZSB0ZXN0IGdyb3VwczoKPiAKPiAgTlVNOiBGSUxFLU5BTUU6 TElORSAgICAgVEVTVC1HUk9VUC1OQU1FCj4gICAgICAgS0VZV09SRFMKPiAK PiAgIDI5OiBmbGFncy5hdDoyNCAgICAgICAgcGFzc2luZyBGNzcgZmxhZ3Mg dGhyb3VnaCBsaWJ0b29sCj4gICAgICAgbGlidG9vbCBmNzcKPiAgIDMwOiBm bGFncy5hdDoyNCAgICAgICAgcGFzc2luZyBGQyBmbGFncyB0aHJvdWdoIGxp YnRvb2wKPiAgICAgICBsaWJ0b29sIGZjCj4gICAzMTogZmxhZ3MuYXQ6MjQg ICAgICAgIHBhc3NpbmcgR0NKIGZsYWdzIHRocm91Z2ggbGlidG9vbAo+ICAg ICAgIGxpYnRvb2wgZ2NqCj4gICAzNTogY29udmVuaWVuY2UuYXQ6MTEwIEY3 NyBjb252ZW5pZW5jZSBhcmNoaXZlcwo+ICAgICAgIGY3NyBsaWJ0b29sCj4g ICAzNjogY29udmVuaWVuY2UuYXQ6MTcwIEZDIGNvbnZlbmllbmNlIGFyY2hp dmVzCj4gICAgICAgZmMgbGlidG9vbAo+ICAgMzc6IGNvbnZlbmllbmNlLmF0 OjIzMCBKYXZhIGNvbnZlbmllbmNlIGFyY2hpdmVzCj4gICAgICAgZ2NqIGxp YnRvb2wKPiAgIDQxOiBzaGxpYnBhdGguYXQ6MjUgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoCj4gICAgICAgbGlidG9vbAo+ICAgNDY6IHNlYXJj aC1wYXRoLmF0OjI0ICBzeXNfbGliX3NlYXJjaF9wYXRoCj4gICAgICAgbGli dG9vbAo+ICAgNjE6IGluZmVyLXRhZy5hdDo1NSAgICBGNzcgaW5mZXJyZWQg dGFnCj4gICAgICAgZjc3IGxpYnRvb2wKPiAgIDYyOiBpbmZlci10YWcuYXQ6 NjkgICAgRkMgaW5mZXJyZWQgdGFnCj4gICAgICAgZmMgbGlidG9vbAo+ICAg NjM6IGluZmVyLXRhZy5hdDo4MyAgICBHQ0ogaW5mZXJyZWQgdGFnCj4gICAg ICAgZ2NqIGxpYnRvb2wKPiAgMTIzOiBkZXBsaWJzLW1pbmd3LmF0OjI3IGRl cGxpYnMgd2l0aG91dCBmaWxlIGNvbW1hbmQKPiAgICAgICBsaWJ0b29sCj4g IDEyNDogc3lzcm9vdC5hdDoyMDMgICAgIC1MPS4uLi9saWIgLWwKPiAgICAg ICBsaWJ0b29sIHN5c3Jvb3QgbGlidG9vbGl6ZSBhdXRvbWFrZSBhdXRvY29u Zgo+ICAxMjU6IHN5c3Jvb3QuYXQ6MjA0ICAgICAtTCBTWVNST09ULy4uLi9s aWIgLWwKPiAgICAgICBsaWJ0b29sIHN5c3Jvb3QgbGlidG9vbGl6ZSBhdXRv bWFrZSBhdXRvY29uZgo+ICAxMjY6IHN5c3Jvb3QuYXQ6MjA1ICAgICBTWVNS T09ULy4uLi8qLmxhCj4gICAgICAgbGlidG9vbCBzeXNyb290IGxpYnRvb2xp emUgYXV0b21ha2UgYXV0b2NvbmYKPiAKPiAjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMjCj4gIyMgRGV0YWlsZWQgZmFpbGVkIHRlc3RzLiAjIwo+ICMj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKPiAKPiAjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtKi0gY29tcGlsYXRpb24gLSotCj4gNTUuIGN3 cmFwcGVyLmF0OjI1OiB0ZXN0aW5nIGN3cmFwcGVyIGZvciB1bmluc3RhbGxl ZCBleGVjdXRhYmxlcyAuLi4KPiAvY3dyYXBwZXIuYXQ6Mjk6ICRMSUJUT09M IC0tZmVhdHVyZXMgfCBncmVwICdkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMn ICYmIGV4aXQgNzcKPiBzdGRvdXQ6Cj4gbGlidG9vbDogY29tcGlsZTogIGdj YyAtZyAtTzIgLVdhbGwgLVdlcnJvciB0cml2aWFsLmMgIC1ERExMX0VYUE9S VCAtRFBJQyAtbyAubGlicy90cml2aWFsLm8KPiBsaWJ0b29sOiBjb21waWxl OiAgZ2NjIC1nIC1PMiAtV2FsbCAtV2Vycm9yIHRyaXZpYWwuYyAtbyB0cml2 aWFsLm8gPi9kZXYvbnVsbCAyPiYxCj4gL2N3cmFwcGVyLmF0OjY5OiAkTElC VE9PTCAtLW1vZGU9Y29tcGlsZSAkQ0MgJENQUEZMQUdTICRDRkxBR1MgLWMg bGliYS5jCj4gc3RkZXJyOgo+IHN0ZG91dDoKPiBsaWJ0b29sOiBjb21waWxl OiAgZ2NjIC1nIC1PMiAtV2FsbCAtV2Vycm9yIC1jIGxpYmEuYyAgLURETExf RVhQT1JUIC1EUElDIC1vIC5saWJzL2xpYmEubwo+IGxpYnRvb2w6IGNvbXBp bGU6ICBnY2MgLWcgLU8yIC1XYWxsIC1XZXJyb3IgLWMgbGliYS5jIC1vIGxp YmEubyA+L2Rldi9udWxsIDI+JjEKPiAvY3dyYXBwZXIuYXQ6NzE6ICRMSUJU T09MIC0tbW9kZT1saW5rICRDQyAkQ0ZMQUdTICRMREZMQUdTIC12ZXJzaW9u LWluZm89MC4wLjAgLW5vLXVuZGVmaW5lZCAtbyBsaWJhLmxhIC1ycGF0aCAv Zm9vIGxpYmEubG8KPiBzdGRlcnI6Cj4gc3Rkb3V0Ogo+IGxpYnRvb2w6IGxp bms6IGdjYyAtc2hhcmVkIC5saWJzXFxsaWJhLmxhLmxua3NjcmlwdCAgIC1P MiAgIC1vIC5saWJzL2xpYmEtMC5kbGwgLVdsLC0tZW5hYmxlLWF1dG8taW1h Z2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgLmxpYnMv bGliYS5kbGwuYQo+IGxpYnRvb2w6IGxpbms6IHJtIC1mIC5saWJzL2xpYmEu bGEubG5rc2NyaXB0Cj4gbGlidG9vbDogbGluazogYXIgY3J1IC5saWJzL2xp YmEuYSBALmxpYnNcXGxpYmEubGliY21kCj4gbGlidG9vbDogbGluazogcmFu bGliIC5saWJzL2xpYmEuYQo+IGxpYnRvb2w6IGxpbms6ICggY2QgIi5saWJz IiAmJiBybSAtZiAibGliYS5sYSIgJiYgY3AgLXAgIi4uL2xpYmEubGEiICJs aWJhLmxhIiApCj4gL2N3cmFwcGVyLmF0OjczOiB0ZXN0IC1mIGxpYmEubGEK PiAvY3dyYXBwZXIuYXQ6NzU6ICRDQyAkQ1BQRkxBR1MgJENGTEFHUyAtYyB1 c2VhLmMKPiBzdGRlcnI6Cj4gc3Rkb3V0Ogo+IC9jd3JhcHBlci5hdDo3Nzog JExJQlRPT0wgLS1tb2RlPWxpbmsgJENDICRDRkxBR1MgJExERkxBR1MgLW8g dXNlYSRFWEVFWFQgdXNlYS4kT0JKRVhUIGxpYmEubGEKPiBzdGRlcnI6Cj4g c3Rkb3V0Ogo+IGxpYnRvb2w6IGxpbms6IGdjYyAtZyAtTzIgLVdhbGwgLVdl cnJvciAtbyAubGlicy91c2VhLmV4ZSB1c2VhLm8gIC4vLmxpYnMvbGliYS5k bGwuYSAtTC9mb28KPiAvY3dyYXBwZXIuYXQ6Nzk6IGlmICIkbHRfZXhlIiA7 IHRoZW4gOjsgZWxzZSBsdF9zdGF0dXM9JD87IAkgICB0ZXN0ICRsdF9zdGF0 dXMgIT0gMCAmJiAJICAgdGVzdCAiWCRob3N0IiAhPSAiWCRidWlsZCIgJiYg dGVzdCAteCAiJGx0X2V4ZSIgJiYgZXhpdCA3NzsgCSAgIGV4aXQgJGx0X3N0 YXR1czsgZmkKPiBzdGRlcnI6Cj4gc3Rkb3V0Ogo+IGxpYnRvb2w6IGNvbXBp bGU6ICBnY2MgLWcgLU8yIC1zdGQ9Yzg5IC1XYWxsIC1XZXJyb3IgdHJpdmlh bC5jICAtRERMTF9FWFBPUlQgLURQSUMgLW8gLmxpYnMvdHJpdmlhbC5vCj4g bGlidG9vbDogY29tcGlsZTogIGdjYyAtZyAtTzIgLXN0ZD1jODkgLVdhbGwg LVdlcnJvciB0cml2aWFsLmMgLW8gdHJpdmlhbC5vID4vZGV2L251bGwgMj4m MQo+IC9jd3JhcHBlci5hdDo2OTogJExJQlRPT0wgLS1tb2RlPWNvbXBpbGUg JENDICRDUFBGTEFHUyAkQ0ZMQUdTIC1jIGxpYmEuYwo+IHN0ZGVycjoKPiBz dGRvdXQ6Cj4gbGlidG9vbDogY29tcGlsZTogIGdjYyAtZyAtTzIgLXN0ZD1j ODkgLVdhbGwgLVdlcnJvciAtYyBsaWJhLmMgIC1ERExMX0VYUE9SVCAtRFBJ QyAtbyAubGlicy9saWJhLm8KPiBsaWJ0b29sOiBjb21waWxlOiAgZ2NjIC1n IC1PMiAtc3RkPWM4OSAtV2FsbCAtV2Vycm9yIC1jIGxpYmEuYyAtbyBsaWJh Lm8gPi9kZXYvbnVsbCAyPiYxCj4gL2N3cmFwcGVyLmF0OjcxOiAkTElCVE9P TCAtLW1vZGU9bGluayAkQ0MgJENGTEFHUyAkTERGTEFHUyAtdmVyc2lvbi1p bmZvPTAuMC4wIC1uby11bmRlZmluZWQgLW8gbGliYS5sYSAtcnBhdGggL2Zv byBsaWJhLmxvCj4gc3RkZXJyOgo+IHN0ZG91dDoKPiBsaWJ0b29sOiBsaW5r OiBybSAtZnIgIC5saWJzL2xpYmEuYSAubGlicy9saWJhLmRsbC5hIC5saWJz L2xpYmEubGEgLmxpYnMvbGliYS5sYWkgLmxpYnMvbGliYS5saWJjbWQKPiBs aWJ0b29sOiBsaW5rOiBnY2MgLXNoYXJlZCAubGlic1xcbGliYS5sYS5sbmtz Y3JpcHQgICAtTzIgICAtbyAubGlicy9saWJhLTAuZGxsIC1XbCwtLWVuYWJs ZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlu a2VyIC5saWJzL2xpYmEuZGxsLmEKPiBsaWJ0b29sOiBsaW5rOiBybSAtZiAu bGlicy9saWJhLmxhLmxua3NjcmlwdAo+IGxpYnRvb2w6IGxpbms6IGFyIGNy dSAubGlicy9saWJhLmEgQC5saWJzXFxsaWJhLmxpYmNtZAo+IGxpYnRvb2w6 IGxpbms6IHJhbmxpYiAubGlicy9saWJhLmEKPiBsaWJ0b29sOiBsaW5rOiAo IGNkICIubGlicyIgJiYgcm0gLWYgImxpYmEubGEiICYmIGNwIC1wICIuLi9s aWJhLmxhIiAibGliYS5sYSIgKQo+IC9jd3JhcHBlci5hdDo3MzogdGVzdCAt ZiBsaWJhLmxhCj4gL2N3cmFwcGVyLmF0Ojc1OiAkQ0MgJENQUEZMQUdTICRD RkxBR1MgLWMgdXNlYS5jCj4gc3RkZXJyOgo+IHN0ZG91dDoKPiAvY3dyYXBw ZXIuYXQ6Nzc6ICRMSUJUT09MIC0tbW9kZT1saW5rICRDQyAkQ0ZMQUdTICRM REZMQUdTIC1vIHVzZWEkRVhFRVhUIHVzZWEuJE9CSkVYVCBsaWJhLmxhCj4g c3RkZXJyOgo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSBjOlx0aW5nd1xpbmNs dWRlXHVuaXN0ZC5oOjM2OjAsCj4gICAgICAgICAgICAgICAgICBmcm9tIC4v LmxpYnMvbHQtdXNlYS5jOjIxOgo+IGM6XHRpbmd3XGluY2x1ZGVcaW8uaDoz MDE6MTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdvZmY2NF90Jwo+ICBf X0NSVF9JTkxJTkUgb2ZmNjRfdCBsc2VlazY0IChpbnQsIG9mZjY0X3QsIGlu dCk7Cj4gIF4KPiBjOlx0aW5nd1xpbmNsdWRlXGlvLmg6MzAxOjM2OiBlcnJv cjogdW5rbm93biB0eXBlIG5hbWUgJ29mZjY0X3QnCj4gIF9fQ1JUX0lOTElO RSBvZmY2NF90IGxzZWVrNjQgKGludCwgb2ZmNjRfdCwgaW50KTsKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4gYzpcdGluZ3dc aW5jbHVkZVxpby5oOjMwMjoxOiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUg J29mZjY0X3QnCj4gIF9fQ1JUX0lOTElORSBvZmY2NF90IGxzZWVrNjQgKGlu dCBmZCwgb2ZmNjRfdCBvZmZzZXQsIGludCB3aGVuY2UpIHsKPiAgXgo+IGM6 XHRpbmd3XGluY2x1ZGVcaW8uaDozMDI6Mzk6IGVycm9yOiB1bmtub3duIHR5 cGUgbmFtZSAnb2ZmNjRfdCcKPiAgX19DUlRfSU5MSU5FIG9mZjY0X3QgbHNl ZWs2NCAoaW50IGZkLCBvZmY2NF90IG9mZnNldCwgaW50IHdoZW5jZSkgewo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiBJ biBmaWxlIGluY2x1ZGVkIGZyb20gLi8ubGlicy9sdC11c2VhLmM6MjE6MDoK PiBjOlx0aW5nd1xpbmNsdWRlXHVuaXN0ZC5oOjY1OjIwOiBlcnJvcjogdW5r bm93biB0eXBlIG5hbWUgJ29mZl90Jwo+ICBpbnQgZnRydW5jYXRlKGludCwg b2ZmX3QpOwo+ICAgICAgICAgICAgICAgICAgICAgXgo+IGM6XHRpbmd3XGlu Y2x1ZGVcdW5pc3RkLmg6Njc6Mzg6IGVycm9yOiB1bmtub3duIHR5cGUgbmFt ZSAnb2ZmX3QnCj4gIF9fQ1JUX0lOTElORSBpbnQgZnRydW5jYXRlKGludCBf X2ZkLCBvZmZfdCBfX2xlbmd0aCkKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KPiBjOlxUaW5HV1xiaW5cc3RyaXAuZXhlOiAn Li91c2VhLmV4ZSc6IE5vIHN1Y2ggZmlsZQo+IC4vbGlidG9vbDogbGluZSA5 NTE3OiAuL3VzZWEuZXhlOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4g c3Rkb3V0Ogo+IGxpYnRvb2w6IGxpbms6IGdjYyAtZyAtTzIgLXN0ZD1jODkg LVdhbGwgLVdlcnJvciAtbyAubGlicy91c2VhLmV4ZSB1c2VhLm8gIC4vLmxp YnMvbGliYS5kbGwuYSAtTC9mb28KPiAvY3dyYXBwZXIuYXQ6Nzk6IGlmICIk bHRfZXhlIiA7IHRoZW4gOjsgZWxzZSBsdF9zdGF0dXM9JD87IAkgICB0ZXN0 ICRsdF9zdGF0dXMgIT0gMCAmJiAJICAgdGVzdCAiWCRob3N0IiAhPSAiWCRi dWlsZCIgJiYgdGVzdCAteCAiJGx0X2V4ZSIgJiYgZXhpdCA3NzsgCSAgIGV4 aXQgJGx0X3N0YXR1czsgZmkKPiBzdGRlcnI6Cj4gL21pbmd3L2xpYnRvb2wt YnVpbGQtZHVlLXRvLUdOVS90ZXN0cy90ZXN0c3VpdGUuZGlyLzExNS90ZXN0 cy90ZXN0c3VpdGUuZGlyL2F0LWdyb3Vwcy81NS90ZXN0LXNvdXJjZTogbGlu ZSAxMzU6IC4vdXNlYTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQo+IHN0 ZG91dDoKPiAvY3dyYXBwZXIuYXQ6Nzk6IGV4aXQgY29kZSB3YXMgMTI3LCBl eHBlY3RlZCAwCj4gNTUuIGN3cmFwcGVyLmF0OjI1OiA1NS4gY3dyYXBwZXIg Zm9yIHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIChjd3JhcHBlci5hdDoyNSk6 IEZBSUxFRCAoY3dyYXBwZXIuYXQ6NzkpCj4gCj4gCjExNS4gY21kbGluZV93 cmFwLmF0OjI4OiAxMTUuIFJ1biB0ZXN0cyB3aXRoIGxvdyBtYXhfY21kX2xl biAoY21kbGluZV93cmFwLmF0OjI4KTogRkFJTEVEIChjbWRsaW5lX3dyYXAu YXQ6NDMpCg== --_----------=_13840355941782731--
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: =?UTF-8?Q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9_?= =?UTF-8?Q?=D0=9D=D0=BE=D0=B2=D0=B8=D0=BA=D0=BE=D0=B2?= <stalkien@HIDDEN> Subject: bug#15845: Acknowledgement ([GNU Libtool 2.4.2] testsuite: 55 95 96 97 107 115 failed) Message-ID: <handler.15845.B.138403906124764.ack <at> debbugs.gnu.org> References: <1384035594.169109.17827.11989@HIDDEN> X-Gnu-PR-Message: ack 15845 X-Gnu-PR-Package: libtool Reply-To: 15845 <at> debbugs.gnu.org Date: Sat, 09 Nov 2013 23:18:03 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-libtool@HIDDEN If you wish to submit further information on this problem, please send it to 15845 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 15845: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D15845 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.