Received: (at submit) by debbugs.gnu.org; 9 Nov 2013 23:17:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 09 18:17:40 2013 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: =?koi8-r?B?4c7E0sXKIO7P18nLz9c=?= <stalkien@HIDDEN> To: kristos84@HIDDEN, bug-libtool@HIDDEN Subject: [GNU Libtool 2.4.2] testsuite: 55 95 96 97 107 115 failed 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-Debbugs-Envelope-To: submit 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 Reply-To: =?koi8-r?B?4c7E0sXKIO7P18nLz9c=?= <stalkien@HIDDEN> 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--
Андрей Новиков <stalkien@HIDDEN>
:bug-libtool@HIDDEN
.
Full text available.bug-libtool@HIDDEN
:bug#15845
; Package libtool
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.