From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id T8PsIn3V5V90VQAAWB0awg (envelope-from ) for ; Fri, 25 Dec 2020 07:05:17 -0500 Received: by simark.ca (Postfix, from userid 112) id 706E21F0AA; Fri, 25 Dec 2020 07:05:17 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: * X-Spam-Status: No, score=1.9 required=5.0 tests=FORGED_MUA_MOZILLA, FREEMAIL_FROM,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,RDNS_NONE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 56B9C1E590 for ; Fri, 25 Dec 2020 07:05:13 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 891BB3858026; Fri, 25 Dec 2020 12:05:12 +0000 (GMT) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073087.outbound.protection.outlook.com [40.92.73.87]) by sourceware.org (Postfix) with ESMTPS id B7C723858026 for ; Fri, 25 Dec 2020 12:05:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B7C723858026 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=hotmail.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=bernd.edlinger@hotmail.de ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TK/MX4uM6HBFe5++Vrl73yw+hL2bi8xF0YWxv8jIn/4cDGFfdUSTjGKow+D3uVCCwkCcPmGKIQf+wAjctgXMrcha+gJE4LVgp/dtzDoUxrMBoNPEgFGel9I/kMsfXMLOgBJ6qudT4b2duMxTxEY/eZc8xGtlIgVDUKXKXrkFaKOu/OyZ9OTRZc6qMrF28cXqajtdn6Xhj3Gx+B9riuSaW4VZpvL8qtootgMO0UaZGECqFZbJTHuc8rMqMnQtM97FB9wtljQdynDyqa0Snha/3rzAiEJI790ajhmUg3iDPgdq18Zv7U9kKVEeXVefUFqecG2vEhxCk/w+kCwIZyqRSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IfjnvbiJFZVkT2WqcYC+pdTzWjDpdbJDSvd1carllbE=; b=RpaG909lD/LcQodiiY38Al3V9VolFQVqh+iS7CEB7bIgrH0G2EMraJKcS7WyqzRJ1rwcRk+eZAJgOUk5eNRkiIOFkzdWlu4bttCmy3Fyhj7mIISfCYLh+r8G5EkogJOYx1pABe8jz6iUzxCafyClaAvLkA0NSs7Sho8TYzO5l5RBnbHQ9T2R9u7gbkUmgo5s82J8ZQDW2ffxehKMG1mgFjG8SGhwuD5/eTtCWLSKN5GnKp51abFedBCXYITflN6nmcF9ndeVbcpugpcREnkUvOmA63n3Dvkrfp2cfbATgigCOew16epf0WMF1mWvisddr7YqCGVE4/T8q6qZ0AGGgA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from VI1EUR04FT059.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::50) by VI1EUR04HT128.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::313) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27; Fri, 25 Dec 2020 12:05:03 +0000 Received: from AM0PR0602MB3410.eurprd06.prod.outlook.com (2a01:111:e400:7e0e::41) by VI1EUR04FT059.mail.protection.outlook.com (2a01:111:e400:7e0e::117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27 via Frontend Transport; Fri, 25 Dec 2020 12:05:03 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:41A1A083E95A86047D69B0AC236A3809AFEFF98B15EDB4E64D392C5634D15F69; UpperCasedChecksum:0B334B64BEF772615350F00E28089A0F63DE3A289F5291CCAC2CDD5AEC9B55D3; SizeAsReceived:8741; Count:47 Received: from AM0PR0602MB3410.eurprd06.prod.outlook.com ([fe80::60c8:86c2:bdaa:f0d2]) by AM0PR0602MB3410.eurprd06.prod.outlook.com ([fe80::60c8:86c2:bdaa:f0d2%3]) with mapi id 15.20.3676.034; Fri, 25 Dec 2020 12:05:03 +0000 Subject: Re: [PATCH v2] Enable GDB build with in-tree GMP and MPFR From: Bernd Edlinger To: Joel Brobecker , Simon Marchi References: <71f5437f-c4f5-b58d-06f7-67a4d0b31007@simark.ca> <214e9564-5dfd-65a2-c2d8-6e8398ebc913@simark.ca> <87o8iw9ilx.fsf@tromey.com> <20201215023315.GK3461@adacore.com> <4ea7575a-b727-d9b7-e510-5c8b942f77f9@polymtl.ca> <20201216073333.GA934694@adacore.com> Message-ID: Date: Fri, 25 Dec 2020 13:05:01 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 In-Reply-To: Content-Type: multipart/mixed; boundary="------------804C753256BE51E38A92F861" Content-Language: en-US X-TMN: [KxdAOAA9hOz6S8NSNK6DCAiWd6FTniAe] X-ClientProxiedBy: AM8P190CA0027.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:219::32) To AM0PR0602MB3410.eurprd06.prod.outlook.com (2603:10a6:208:21::24) X-Microsoft-Original-Message-ID: <019bd3bf-c819-9186-fd00-8a54225d84f4@hotmail.de> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.101] (88.68.3.2) by AM8P190CA0027.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:219::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27 via Frontend Transport; Fri, 25 Dec 2020 12:05:01 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 47 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 8fbd0dee-2b93-49eb-8346-08d8a8cd5021 X-MS-TrafficTypeDiagnostic: VI1EUR04HT128: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oFdpqXdFsRM8EMsD3Gp74Yik83WbJfbDobKdk1YmrcxLA3qyeX3hO+HreDtB9oE0aAIWANso5MJcF7OXMkL7u0vUCmzDxleGziPYiFR/QPxOHBJrwJWfn+N5VvJMPJtAoRqxJizSdMMJkUf0GqSr2JfXU00wgIoh61IIeRuZGYgcavgrNc+rlmt45cuJafFodYMp7NomFxTvZKXQ9qffMYMRiyn5UZ4tD0wRAqx49RCcAI3IEMbfDv1sQD1XIEKJ X-MS-Exchange-AntiSpam-MessageData: 2r2ko6wun2DTTjdjuW3HAvR4kZuLNw3E8cfWDdoTztxN4MTAZeh1dyu0NshMaNHux/YUGDWQah7ERLH8LrrsCWXSC1tOVSKdI/SFjzMvfO2JwSTgM11hyO4PHVh9es56BQNtwP8g2ZSYPRKQCfj0lQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Dec 2020 12:05:03.7901 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-Network-Message-Id: 8fbd0dee-2b93-49eb-8346-08d8a8cd5021 X-MS-Exchange-CrossTenant-AuthSource: VI1EUR04FT059.eop-eur04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1EUR04HT128 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Pedro Alves , Tom Tromey , "gdb-patches@sourceware.org" Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" --------------804C753256BE51E38A92F861 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Hi everybody, I have now two possible ways to go forward with the configure options for gmp and mpfr. See the attached patches: Variant 1: implements traditional configure options --with-gmp-include=DIR, --with-gmp-lib=DIR, --with-gmp=DIR, --with-mpfr-include=DIR, --with-mpfr-lib=DIR, --with-mpfr=DIR but does additionally understand --with-libmpfr-prefix=DIR and --with-mpfr=auto/yes/no. Variant 2: (I already posted that one) keeps all configure options as they are now, and just uses the presence of a ../gmp and ../mpfr directory to override the gmp and mpfr configure flags. I would be interested in what you think, and which variant you would prefer. Thanks Bernd. --------------804C753256BE51E38A92F861 Content-Type: text/x-patch; name="0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR-v1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR-v1.patch" RnJvbSBjNGRmYWE1N2JjMmJmZDM0ZDRlYTRmNGRlOTE0ODg4N2IxMDE1MGI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdlciA8YmVybmQuZWRsaW5nZXJAaG90bWFp bC5kZT4KRGF0ZTogU3VuLCAxNSBOb3YgMjAyMCAxNTozNzoyMiArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIEVuYWJsZSBHREIgYnVpbGQgd2l0aCBpbi10cmVlIEdNUCBhbmQgTVBGUgoKV2l0aCB0aGlz IHBhdGNoIEdEQiBjYW4gYmUgYnVpbHQgd2l0aCBpbi10cmVlIEdNUCBhbmQvb3IKTVBGUi4gIFRo aXMgd29ya3MgYWxzbyBmb3IgY3Jvc3MtYnVpbGRzLgoKQWxsIHRoYXQgaXMgbmVlZGVkLCBpcyBh IHN5bS1saW5rIGluIHRoZSBzb3VyY2UgdHJlZSwKbGlrZSB0aGlzOgoKZ21wIC0+IC4uL2dtcC02 LjEuMAptcGZyIC0+IC4uL21wZnItMy4xLjQKCjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8 YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KCgkqIE1ha2VmaWxlLmRlZjogUHJlcGFyZSBmb3Ig R0RCIGJ1aWxkIHdpdGggaW50cmVlIEdNUC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgpn ZGI6CjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5k ZT4KCgkqIGNvbmZpZ3VyZS5hYzogQWRkIC0td2l0aC1nbXA9RElSLCAtLXdpdGgtZ21wLWluY2x1 ZGU9RElSCglhbmQgLS13aXRoLWdtcC1saWI9RElSCglhcyB3ZWxsIGFzIC0td2l0aC1tcGZyLWlu Y2x1ZGU9RElSIGFuZCAtLXdpdGgtbXBmci1saWI9RElSCglmb3IgY29tcGF0aWJpbGl0eSB3aXRo IHRvcCBsZXZlbCBjb25maWd1cmUgc2NyaXB0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkq IFJFQURNRTogTWVudGlvbiAuL2NvbnRyaWIvZG93bmxvYWRfcHJlcmVxdWlzaXRlcy4KCmNvbnRy aWI6CjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5k ZT4KCgkqIGRvd25sb2FkX3ByZXJlcXVpc2l0ZXM6IE5ldyBoZWxwZXIgc2NyaXB0LgoJKiBwcmVy ZXF1aXNpdGVzLm1kNTogY2hlY2tzdW1zLgoJKiBwcmVyZXF1aXNpdGVzLnNoYTUxMjogY2hlY2tz dW1zLgotLS0KIE1ha2VmaWxlLmRlZiAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIE1ha2Vm aWxlLmluICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIGNvbnRyaWIvZG93bmxvYWRfcHJl cmVxdWlzaXRlcyB8ICAyNjMgKysrKysrKysrKwogY29udHJpYi9wcmVyZXF1aXNpdGVzLm1kNSAg ICAgIHwgICAgMiArCiBjb250cmliL3ByZXJlcXVpc2l0ZXMuc2hhNTEyICAgfCAgICAyICsKIGdk Yi9SRUFETUUgICAgICAgICAgICAgICAgICAgICB8ICAgMjMgKy0KIGdkYi9jb25maWd1cmUgICAg ICAgICAgICAgICAgICB8IDExMjYgKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogZ2RiL2NvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgIHwgICA4OCArKystCiA4IGZpbGVz IGNoYW5nZWQsIDUyMiBpbnNlcnRpb25zKCspLCA5OTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA3NTUgY29udHJpYi9kb3dubG9hZF9wcmVyZXF1aXNpdGVzCiBjcmVhdGUgbW9kZSAxMDA2 NDQgY29udHJpYi9wcmVyZXF1aXNpdGVzLm1kNQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIv cHJlcmVxdWlzaXRlcy5zaGE1MTIKCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5kZWYgYi9NYWtlZmls ZS5kZWYKaW5kZXggMDg5ZTcwYS4uMWI5OWI0MiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuZGVmCisr KyBiL01ha2VmaWxlLmRlZgpAQCAtMTE1LDcgKzExNSw4IEBAIGhvc3RfbW9kdWxlcz0geyBtb2R1 bGU9IHpsaWI7IG5vX2luc3RhbGw9dHJ1ZTsgbm9fY2hlY2s9dHJ1ZTsKIGhvc3RfbW9kdWxlcz0g eyBtb2R1bGU9IGdudWxpYjsgfTsKIGhvc3RfbW9kdWxlcz0geyBtb2R1bGU9IGdkYnN1cHBvcnQ7 IH07CiBob3N0X21vZHVsZXM9IHsgbW9kdWxlPSBnZGJzZXJ2ZXI7IH07Ci1ob3N0X21vZHVsZXM9 IHsgbW9kdWxlPSBnZGI7IH07Citob3N0X21vZHVsZXM9IHsgbW9kdWxlPSBnZGI7CisJCWV4dHJh X2NvbmZpZ3VyZV9mbGFncz0nQGV4dHJhX21wZnJfY29uZmlndXJlX2ZsYWdzQCBAZXh0cmFfbXBj X21wZnJfY29uZmlndXJlX2ZsYWdzQCc7fTsKIGhvc3RfbW9kdWxlcz0geyBtb2R1bGU9IGV4cGVj dDsgfTsKIGhvc3RfbW9kdWxlcz0geyBtb2R1bGU9IGd1aWxlOyB9OwogaG9zdF9tb2R1bGVzPSB7 IG1vZHVsZT0gdGs7IH07CkBAIC0zOTEsNiArMzkyLDggQEAgZGVwZW5kZW5jaWVzID0geyBtb2R1 bGU9YWxsLWludGw7IG9uPWFsbC1saWJpY29udjsgfTsKIAogLy8gSG9zdCBtb2R1bGVzIHNwZWNp ZmljIHRvIGdkYi4KIGRlcGVuZGVuY2llcyA9IHsgbW9kdWxlPWNvbmZpZ3VyZS1nZGI7IG9uPWFs bC1pbnRsOyB9OworZGVwZW5kZW5jaWVzID0geyBtb2R1bGU9Y29uZmlndXJlLWdkYjsgb249YWxs LWdtcDsgfTsKK2RlcGVuZGVuY2llcyA9IHsgbW9kdWxlPWNvbmZpZ3VyZS1nZGI7IG9uPWFsbC1t cGZyOyB9OwogZGVwZW5kZW5jaWVzID0geyBtb2R1bGU9Y29uZmlndXJlLWdkYjsgb249Y29uZmln dXJlLXNpbTsgfTsKIGRlcGVuZGVuY2llcyA9IHsgbW9kdWxlPWNvbmZpZ3VyZS1nZGI7IG9uPWFs bC1iZmQ7IH07CiBkZXBlbmRlbmNpZXMgPSB7IG1vZHVsZT1jb25maWd1cmUtZ2RiOyBvbj1hbGwt Z251bGliOyB9OwpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgppbmRleCBm ZTM0MTMyLi43MzhmZDMyIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5pbgorKysgYi9NYWtlZmlsZS5p bgpAQCAtMjk0OTEsNyArMjk0OTEsNyBAQCBjb25maWd1cmUtZ2RiOgogCSAgJCRzLyQkbW9kdWxl X3NyY2Rpci9jb25maWd1cmUgXAogCSAgLS1zcmNkaXI9JCR7dG9wZGlyfS8kJG1vZHVsZV9zcmNk aXIgXAogCSAgJChIT1NUX0NPTkZJR0FSR1MpIC0tYnVpbGQ9JHtidWlsZF9hbGlhc30gLS1ob3N0 PSR7aG9zdF9hbGlhc30gXAotCSAgLS10YXJnZXQ9JHt0YXJnZXRfYWxpYXN9ICBcCisJICAtLXRh cmdldD0ke3RhcmdldF9hbGlhc30gQGV4dHJhX21wZnJfY29uZmlndXJlX2ZsYWdzQCBAZXh0cmFf bXBjX21wZnJfY29uZmlndXJlX2ZsYWdzQCBcCiAJICB8fCBleGl0IDEKIEBlbmRpZiBnZGIKIApA QCAtNTI0NDksNiArNTI0NDksOCBAQCBjb25maWd1cmUtbGliY2MxOiBtYXliZS1jb25maWd1cmUt Z2NjCiBhbGwtbGliY2MxOiBtYXliZS1hbGwtZ2NjCiBhbGwtdXRpbHM6IG1heWJlLWFsbC1saWJp YmVydHkKIGNvbmZpZ3VyZS1nZGI6IG1heWJlLWFsbC1pbnRsCitjb25maWd1cmUtZ2RiOiBtYXli ZS1hbGwtZ21wCitjb25maWd1cmUtZ2RiOiBtYXliZS1hbGwtbXBmcgogY29uZmlndXJlLWdkYjog bWF5YmUtYWxsLWJmZAogY29uZmlndXJlLWdkYjogbWF5YmUtYWxsLWxpYmljb252CiBhbGwtZ2Ri OiBtYXliZS1hbGwtbGliaWJlcnR5CmRpZmYgLS1naXQgYS9jb250cmliL2Rvd25sb2FkX3ByZXJl cXVpc2l0ZXMgYi9jb250cmliL2Rvd25sb2FkX3ByZXJlcXVpc2l0ZXMKbmV3IGZpbGUgbW9kZSAx MDA3NTUKaW5kZXggMDAwMDAwMC4uMGQwNDAzMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIv ZG93bmxvYWRfcHJlcmVxdWlzaXRlcwpAQCAtMCwwICsxLDI2MyBAQAorIyEgL2Jpbi9zaAorIyEg LSotIGNvZGluZzp1dGYtODsgbW9kZTpzaGVsbC1zY3JpcHQ7IC0qLQorCisjIERvd25sb2FkIHNv bWUgcHJlcmVxdWlzaXRlcyBuZWVkZWQgYnkgR0RCLgorIyBSdW4gdGhpcyBmcm9tIHRoZSB0b3Ag bGV2ZWwgb2YgdGhlIEdEQiBzb3VyY2UgdHJlZSBhbmQgdGhlIEdEQiBidWlsZCB3aWxsIGRvCisj IHRoZSByaWdodCB0aGluZy4gIFJ1biBpdCB3aXRoIHRoZSBgLS1oZWxwYCBvcHRpb24gZm9yIG1v cmUgaW5mb3JtYXRpb24uCisjCisjIChDKSAyMDEwLTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0 aGUgR05VCisjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8uCisKK3Byb2dyYW09J2Rvd25sb2FkX3ByZXJlcXVpc2l0ZXMn Cit2ZXJzaW9uPScodW52ZXJzaW9uZWQpJworCisjIE1BSU5UQUlORVJTOiBJZiB5b3UgdXBkYXRl IHRoZSBwYWNrYWdlIHZlcnNpb25zIGJlbG93LCBwbGVhc2UKKyMgcmVtZW1iZXIgdG8gYWxzbyB1 cGRhdGUgdGhlIGZpbGVzIGBjb250cmliL3ByZXJlcXVpc2l0ZXMuc2hhNTEyYCBhbmQKKyMgYGNv bnRyaWIvcHJlcmVxdWlzaXRlcy5tZDVgIHdpdGggdGhlIG5ldyBjaGVja3N1bXMuCisKK2dtcD0n Z21wLTYuMS4wLnRhci5iejInCittcGZyPSdtcGZyLTMuMS40LnRhci5iejInCisKK2Jhc2VfdXJs PSdodHRwOi8vZ2NjLmdudS5vcmcvcHViL2djYy9pbmZyYXN0cnVjdHVyZS8nCisKK2VjaG9fYXJj aGl2ZXMoKSB7CisgICAgZWNobyAiJHtnbXB9IgorICAgIGVjaG8gIiR7bXBmcn0iCit9CisKK3Zl cmlmeT0xCitmb3JjZT0wCitPUz0kKHVuYW1lKQorCitjYXNlICRPUyBpbgorICAiRGFyd2luInwi RnJlZUJTRCJ8IkRyYWdvbkZseSJ8IkFJWCIpCisgICAgY2hrc3VtPSdzaGFzdW0gLWEgNTEyIC0t Y2hlY2snCisgIDs7CisgICJPcGVuQlNEIikKKyAgICBjaGtzdW09J3NoYTUxMiAtYycKKyAgOzsK KyAgKikKKyAgICBjaGtzdW09J3NoYTUxMnN1bSAtYycKKyAgOzsKK2VzYWMKKworaWYgdHlwZSB3 Z2V0ID4gL2Rldi9udWxsIDsgdGhlbgorICBmZXRjaD0nd2dldCcKK2Vsc2UKKyAgZmV0Y2g9J2N1 cmwgLUxPJworZmkKK2Noa3N1bV9leHRlbnNpb249J3NoYTUxMicKK2RpcmVjdG9yeT0nLicKKwor aGVscHRleHQ9InVzYWdlOiAke3Byb2dyYW19IFtPUFRJT04uLi5dCisKK0Rvd25sb2FkcyBzb21l IHByZXJlcXVpc2l0ZXMgbmVlZGVkIGJ5IEdEQi4gIFJ1biB0aGlzIGZyb20gdGhlIHRvcCBsZXZl bCBvZiB0aGUKK0dEQiBzb3VyY2UgdHJlZSBhbmQgdGhlIEdEQiBidWlsZCB3aWxsIGRvIHRoZSBy aWdodCB0aGluZy4KKworVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBhdmFpbGFibGU6CisKKyAt LWRpcmVjdG9yeT1ESVIgIGRvd25sb2FkIGFuZCB1bnBhY2sgcGFja2FnZXMgaW50byBESVIgaW5z dGVhZCBvZiAnLicKKyAtLWZvcmNlICAgICAgICAgIGRvd25sb2FkIGFnYWluIG92ZXJ3cml0aW5n IGV4aXN0aW5nIHBhY2thZ2VzCisgLS1uby1mb3JjZSAgICAgICBkbyBub3QgZG93bmxvYWQgZXhp c3RpbmcgcGFja2FnZXMgYWdhaW4gKGRlZmF1bHQpCisgLS12ZXJpZnkgICAgICAgICB2ZXJpZnkg cGFja2FnZSBpbnRlZ3JpdHkgYWZ0ZXIgZG93bmxvYWQgKGRlZmF1bHQpCisgLS1uby12ZXJpZnkg ICAgICBkb24ndCB2ZXJpZnkgcGFja2FnZSBpbnRlZ3JpdHkKKyAtLXNoYTUxMiAgICAgICAgIHVz ZSBTSEE1MTIgY2hlY2tzdW0gdG8gdmVyaWZ5IHBhY2thZ2UgaW50ZWdyaXR5IChkZWZhdWx0KQor IC0tbWQ1ICAgICAgICAgICAgdXNlIE1ENSBjaGVja3N1bSB0byB2ZXJpZnkgcGFja2FnZSBpbnRl Z3JpdHkKKyAtLWhlbHAgICAgICAgICAgIHNob3cgdGhpcyB0ZXh0IGFuZCBleGl0CisgLS12ZXJz aW9uICAgICAgICBzaG93IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKyIKKwordmVyc2lv bnRleHQ9IiR7cHJvZ3JhbX0gJHt2ZXJzaW9ufQorQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNv dXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KK3dhcnJhbnR5OyBub3Qg ZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiIKKworZGllKCkgeworICAgIGVjaG8gImVycm9yOiAkQCIgPiYyCisgICAgZXhpdCAxCit9 CisKK2ZvciBhcmcgaW4gIiRAIgorZG8KKyAgICBjYXNlICIke2FyZ30iIGluCisgICAgICAgIC0t aGVscCkKKyAgICAgICAgICAgIGVjaG8gIiR7aGVscHRleHR9IgorICAgICAgICAgICAgZXhpdAor ICAgICAgICAgICAgOzsKKyAgICAgICAgLS12ZXJzaW9uKQorICAgICAgICAgICAgZWNobyAiJHt2 ZXJzaW9udGV4dH0iCisgICAgICAgICAgICBleGl0CisgICAgICAgICAgICA7OworICAgIGVzYWMK K2RvbmUKK3Vuc2V0IGFyZworCisjIEVtdWxhdGUgTGludXgncyAnbWQ1IC0tY2hlY2snIG9uIG1h Y09TCittZDVfY2hlY2soKSB7CisgICMgU3RvcmUgdGhlIHN0YW5kYXJkIGlucHV0OiBhIGxpbmUg ZnJvbSBjb250cmliL3ByZXJlcXVpc2l0ZXMubWQ1OgorICBtZDVfY2hlY2tzdW1fbGluZT0kKGNh dCAtKQorICAjIEdyYWIgdGhlIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBzcGFjZQorICBtZDVfY2hl Y2tzdW1fZXhwZWN0ZWQ9IiR7bWQ1X2NoZWNrc3VtX2xpbmUlJSAqfSIKKyAgIyBHcmFiIHRoZSB0 ZXh0IGFmdGVyIHRoZSBmaXJzdCBzcGFjZQorICBmaWxlX3RvX2NoZWNrPSIke21kNV9jaGVja3N1 bV9saW5lIyMqIH0iCisgICMgQ2FsY3VsYXRlIHRoZSBtZDUgY2hlY2tzdW0gZm9yIHRoZSBkb3du bG9hZGVkIGZpbGUKKyAgbWQ1X2NoZWNrc3VtX291dHB1dD0kKG1kNSAtciAiJHtmaWxlX3RvX2No ZWNrfSIpCisgICMgR3JhYiB0aGUgdGV4dCBiZWZvcmUgdGhlIGZpcnN0IHNwYWNlCisgIG1kNV9j aGVja3N1bV9kZXRlY3RlZD0iJHttZDVfY2hlY2tzdW1fb3V0cHV0JSUgKn0iCisgIFsgIiR7bWQ1 X2NoZWNrc3VtX2V4cGVjdGVkfSIgPT0gIiR7bWQ1X2NoZWNrc3VtX2RldGVjdGVkfSIgXSBcCisg ICAgfHwgZGllICJDYW5ub3QgdmVyaWZ5IGludGVncml0eSBvZiBwb3NzaWJseSBjb3JydXB0ZWQg ZmlsZSAke2ZpbGVfdG9fY2hlY2t9IgorICBlY2hvICIke2ZpbGVfdG9fY2hlY2t9OiBPSyIKK30K KworCithcmduZXh0PQorZm9yIGFyZyBpbiAiJEAiCitkbworICAgIGlmIFsgIngke2FyZ25leHR9 IiA9IHggXQorICAgIHRoZW4KKyAgICAgICAgY2FzZSAiJHthcmd9IiBpbgorICAgICAgICAgICAg LS1kaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgYXJnbmV4dD0nZGlyZWN0b3J5JworICAgICAg ICAgICAgICAgIDs7CisgICAgICAgICAgICAtLWRpcmVjdG9yeT0qKQorICAgICAgICAgICAgICAg IGRpcmVjdG9yeT0iJHthcmcjLS1kaXJlY3Rvcnk9fSIKKyAgICAgICAgICAgICAgICA7OworICAg ICAgICAgICAgLS1mb3JjZSkKKyAgICAgICAgICAgICAgICBmb3JjZT0xCisgICAgICAgICAgICAg ICAgOzsKKyAgICAgICAgICAgIC0tbm8tZm9yY2UpCisgICAgICAgICAgICAgICAgZm9yY2U9MAor ICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAtLXZlcmlmeSkKKyAgICAgICAgICAgICAg ICB2ZXJpZnk9MQorICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAtLW5vLXZlcmlmeSkK KyAgICAgICAgICAgICAgICB2ZXJpZnk9MAorICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAg ICAtLXNoYTUxMikKKyAgICAgICAgICAgICAgICBjYXNlICRPUyBpbgorICAgICAgICAgICAgICAg ICAgIkRhcndpbiIpCisgICAgICAgICAgICAgICAgICAgIGNoa3N1bT0nc2hhc3VtIC1hIDUxMiAt LWNoZWNrJworICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgICopCisgICAg ICAgICAgICAgICAgICAgIGNoa3N1bT0nc2hhNTEyc3VtIC0tY2hlY2snCisgICAgICAgICAgICAg ICAgICA7OworICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgICBjaGtzdW1fZXh0 ZW5zaW9uPSdzaGE1MTInCisgICAgICAgICAgICAgICAgdmVyaWZ5PTEKKyAgICAgICAgICAgICAg ICA7OworICAgICAgICAgICAgLS1tZDUpCisgICAgICAgICAgICAgICAgY2FzZSAkT1MgaW4KKyAg ICAgICAgICAgICAgICAgICJEYXJ3aW4iKQorICAgICAgICAgICAgICAgICAgICBjaGtzdW09J21k NV9jaGVjaycKKyAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAqKQorICAg ICAgICAgICAgICAgICAgICBjaGtzdW09J21kNSAtLWNoZWNrJworICAgICAgICAgICAgICAgICAg OzsKKyAgICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgICAgY2hrc3VtX2V4dGVuc2lv bj0nbWQ1JworICAgICAgICAgICAgICAgIHZlcmlmeT0xCisgICAgICAgICAgICAgICAgOzsKKyAg ICAgICAgICAgIC0qKQorICAgICAgICAgICAgICAgIGRpZSAidW5rbm93biBvcHRpb246ICR7YXJn fSIKKyAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgKikKKyAgICAgICAgICAgICAgICBk aWUgInRvbyBtYW55IGFyZ3VtZW50cyIKKyAgICAgICAgICAgICAgICA7OworICAgICAgICBlc2Fj CisgICAgZWxzZQorICAgICAgICBjYXNlICIke2FyZ30iIGluCisgICAgICAgICAgICAtKikKKyAg ICAgICAgICAgICAgICBkaWUgIk1pc3NpbmcgYXJndW1lbnQgZm9yIG9wdGlvbiAtLSR7YXJnbmV4 dH0iCisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICBjYXNlICIke2Fy Z25leHR9IiBpbgorICAgICAgICAgICAgZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIGRpcmVj dG9yeT0iJHthcmd9IgorICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAqKQorICAgICAg ICAgICAgICAgIGRpZSAiVGhlIGltcG9zc2libGUgaGFzIGhhcHBlbmVkIgorICAgICAgICAgICAg ICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgYXJnbmV4dD0KKyAgICBmaQorZG9uZQorWyAi eCR7YXJnbmV4dH0iID0geCBdIHx8IGRpZSAiTWlzc2luZyBhcmd1bWVudCBmb3Igb3B0aW9uIC0t JHthcmduZXh0fSIKK3Vuc2V0IGFyZyBhcmduZXh0CisKK1sgLWUgLi9nZGIvdmVyc2lvbi5pbiBd ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICB8fCBkaWUgIllvdSBtdXN0IHJ1biB0aGlzIHNjcmlwdCBpbiB0aGUgdG9wLWxldmVsIEdE QiBzb3VyY2UgZGlyZWN0b3J5IgorCitbIC1kICIke2RpcmVjdG9yeX0iIF0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfHwgZGll ICJObyBzdWNoIGRpcmVjdG9yeTogJHtkaXJlY3Rvcnl9IgorCitmb3IgYXIgaW4gJChlY2hvX2Fy Y2hpdmVzKQorZG8KKyAgICBpZiBbICR7Zm9yY2V9IC1ndCAwIF07IHRoZW4gcm0gLWYgIiR7ZGly ZWN0b3J5fS8ke2FyfSI7IGZpCisgICAgWyAtZSAiJHtkaXJlY3Rvcnl9LyR7YXJ9IiBdICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHx8ICgg Y2QgIiR7ZGlyZWN0b3J5fSIgJiYgJHtmZXRjaH0gLS1uby12ZXJib3NlICIke2Jhc2VfdXJsfSR7 YXJ9IiApICBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IGRvd25sb2FkICR7YXJ9IGZyb20gJHti YXNlX3VybH0iCitkb25lCit1bnNldCBhcgorCitpZiBbICR7dmVyaWZ5fSAtZ3QgMCBdCit0aGVu CisgICAgY2hrc3VtZmlsZT0iY29udHJpYi9wcmVyZXF1aXNpdGVzLiR7Y2hrc3VtX2V4dGVuc2lv bn0iCisgICAgWyAtciAiJHtjaGtzdW1maWxlfSIgXSB8fCBkaWUgIk5vIGNoZWNrc3VtcyBhdmFp bGFibGUiCisgICAgZm9yIGFyIGluICQoZWNob19hcmNoaXZlcykKKyAgICBkbworICAgICAgICBn cmVwICIke2FyfSIgIiR7Y2hrc3VtZmlsZX0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICAgICAgfCAoIGNkICIke2RpcmVjdG9yeX0iICYmICR7Y2hr c3VtfSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgfHwgZGll ICJDYW5ub3QgdmVyaWZ5IGludGVncml0eSBvZiBwb3NzaWJseSBjb3JydXB0ZWQgZmlsZSAke2Fy fSIKKyAgICBkb25lCisgICAgdW5zZXQgY2hrc3VtZmlsZQorZmkKK3Vuc2V0IGFyCisKK2ZvciBh ciBpbiAkKGVjaG9fYXJjaGl2ZXMpCitkbworICAgIHBhY2thZ2U9IiR7YXIlLnRhcip9IgorICAg IGlmIFsgJHtmb3JjZX0gLWd0IDAgXTsgdGhlbiBybSAtcmYgIiR7ZGlyZWN0b3J5fS8ke3BhY2th Z2V9IjsgZmkKKyAgICBjYXNlICRhciBpbgorICAgICouZ3opCisJdW5jb21wcmVzcz0nZ3ppcCAt ZCcKKwk7OworICAgICouYnoyKQorCXVuY29tcHJlc3M9J2J6aXAyIC1kJworCTs7CisgICAgKikK Kwl1bmNvbXByZXNzPSdjYXQnCisJOzsKKyAgICBlc2FjCisgICAgWyAtZSAiJHtkaXJlY3Rvcnl9 LyR7cGFja2FnZX0iIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgIHx8ICggY2QgIiR7ZGlyZWN0b3J5fSIgJiYgJHVuY29tcHJlc3MgPCIke2FyfSIg fCB0YXIgLXhmIC0gKSAgICAgICAgICBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IGV4dHJhY3Qg cGFja2FnZSBmcm9tICR7YXJ9IgorICAgIHVuc2V0IHBhY2thZ2UKK2RvbmUKK3Vuc2V0IGFyCisK K2ZvciBhciBpbiAkKGVjaG9fYXJjaGl2ZXMpCitkbworICAgIHRhcmdldD0iJHtkaXJlY3Rvcnl9 LyR7YXIlLnRhcip9LyIKKyAgICBsaW5rbmFtZT0iJHthciUtKn0iCisgICAgaWYgWyAke2ZvcmNl fSAtZ3QgMCBdOyB0aGVuIHJtIC1mICIke2xpbmtuYW1lfSI7IGZpCisgICAgWyAtZSAiJHtsaW5r bmFtZX0iIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgIHx8IGxuIC1zICIke3RhcmdldH0iICIke2xpbmtuYW1lfSIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IGNy ZWF0ZSBzeW1ib2xpYyBsaW5rICR7bGlua25hbWV9IC0tPiAke3RhcmdldH0iCisgICAgdW5zZXQg dGFyZ2V0IGxpbmtuYW1lCitkb25lCit1bnNldCBhcgorCitlY2hvICJBbGwgcHJlcmVxdWlzaXRl cyBkb3dubG9hZGVkIHN1Y2Nlc3NmdWxseS4iCmRpZmYgLS1naXQgYS9jb250cmliL3ByZXJlcXVp c2l0ZXMubWQ1IGIvY29udHJpYi9wcmVyZXF1aXNpdGVzLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jZjdiZTBkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wcmVy ZXF1aXNpdGVzLm1kNQpAQCAtMCwwICsxLDIgQEAKKzg2ZWU2ZTU0ZWJmYzRhOTBiNjQzYTY1ZTQw MmM0MDQ4ICBnbXAtNi4xLjAudGFyLmJ6MgorYjhhMmY2YjBlNjhiZWY0NmU1M2RhMmFjNDM5ZTFj ZjQgIG1wZnItMy4xLjQudGFyLmJ6MgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wcmVyZXF1aXNpdGVz LnNoYTUxMiBiL2NvbnRyaWIvcHJlcmVxdWlzaXRlcy5zaGE1MTIKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uOGYwNWFmZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcHJl cmVxdWlzaXRlcy5zaGE1MTIKQEAgLTAsMCArMSwyIEBACiszYzgyYWVhYjljMTU5NmQ0ZGE4YWZh YzJlZWMzOGU0MjllODRmMzIxMWUxYTU3MmNmOGZkMmI1NDY0OTNjNDRjMDM5YjkyMmExMTMzZWFh YTQ4YmQ3ZjNlMTFkYmU3OTVhMzg0ZTIxZWQ5NWNiZTNlY2M1OGQ3YWMwMjI0NjExNyAgZ21wLTYu MS4wLnRhci5iejIKKzUxMDY2MDY2ZmYyYzEyZWQyMTk4NjA1ZWNmNjg4NDZiMGM5NmI1NDhhZGFm YTViODBlMGM3ODZkMGRmNDg4NDExYTVlODk3MzM1OGZjZTcxOTJkYzk3N2FkNGU2ODQxNGNmMTQ1 MDBlM2MzOTc0NmRlNjI0NjVlYjE0NWJiODE5ICBtcGZyLTMuMS40LnRhci5iejIKZGlmZiAtLWdp dCBhL2dkYi9SRUFETUUgYi9nZGIvUkVBRE1FCmluZGV4IGU2NWM1ZWEuLjIxNDZkODAgMTAwNjQ0 Ci0tLSBhL2dkYi9SRUFETUUKKysrIGIvZ2RiL1JFQURNRQpAQCAtNDg0LDIxICs0ODQsMzIgQEAg bW9yZSBvYnNjdXJlIEdEQiBgY29uZmlndXJlJyBvcHRpb25zIGFyZSBub3QgbGlzdGVkIGhlcmUu CiAgICAgIG5vdCBoYXZlIGxpYmx6bWEgaW5zdGFsbGVkLCB5b3UgY2FuIGdldCB0aGUgbGF0ZXN0 IHZlcnNpb24gZnJvbQogICAgICBgaHR0cHM6Ly90dWthYW5pLm9yZy94ei8nLgogCi1gLS13aXRo LWxpYmdtcC1wcmVmaXg9RElSJworYC0td2l0aC1nbXA9RElSJwogICAgICBCdWlsZCBHREIgdXNp bmcgdGhlIEdNUCBsaWJyYXJ5IGluc3RhbGxlZCBhdCB0aGUgZGlyZWN0b3J5IERJUi4KICAgICAg SWYgeW91ciBob3N0IGRvZXMgbm90IGhhdmUgR01QIGluc3RhbGxlZCwgeW91IGNhbiBnZXQgdGhl IGxhdGVzdAogICAgICB2ZXJzaW9uIGF0IGBodHRwczovL2dtcGxpYi5vcmcvJy4KLQotYC0td2l0 aC1tcGZyJwotICAgICBCdWlsZCBHREIgd2l0aCBHTlUgTVBGUiwgYSBsaWJyYXJ5IGZvciBtdWx0 aXBsZS1wcmVjaXNpb24KLSAgICAgZmxvYXRpbmctcG9pbnQgY29tcHV0YXRpb24gd2l0aCBjb3Jy ZWN0IHJvdW5kaW5nLiAgKERvbmUgYnkKLSAgICAgZGVmYXVsdCBpZiBHTlUgTVBGUiBpcyBpbnN0 YWxsZWQgYW5kIGZvdW5kIGF0IGNvbmZpZ3VyZSB0aW1lLikKKyAgICAgWW91IGNhbiBhbHNvIGJ1 aWxkIEdNUCBpbi10cmVlIHdoZW4geW91IHVzZSB0aGUgc2NyaXB0CisgICAgIC4vY29udHJpYi9k b3dubG9hZF9wcmVyZXF1aXNpdGVzLgorICAgICBUaGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgY29u ZmlndXJlLiAgTm8gLS13aXRoLWdtcCBvcHRpb25zIG11c3QKKyAgICAgYmUgdXNlZCB3aGVuIGlu dm9raW5nIGNvbmZpZ3VyZSBpbiB0aGlzIGNhc2UuCisgICAgIE5vdGUgaG93ZXZlciwgdGhhdCB0 aGlzIGRvZXMgb25seSB3b3JrIHdpdGggYSBzZXBhcmF0ZSBidWlsZAorICAgICBkaXJlY3Rvcnku CisKK2AtLXdpdGgtbXBmcj1ESVIgKG9yIGF1dG8veWVzL25vKScKKyAgICAgQnVpbGQgR0RCIHdp dGggR05VIE1QRlIgaW5zdGFsbGVkIGF0IHRoZSBkaXJlY3RvcnkgRElSLgorICAgICBGb3IgYmFj a3dhcmQgY29tcGF0aWJpbGl0eSBhbHNvIERJUj1hdXRvL3llcy9ubyBtYXkgYmUgdXNlZC4KICAg ICAgVGhpcyBsaWJyYXJ5IGlzIHVzZWQgdG8gZW11bGF0ZSB0YXJnZXQgZmxvYXRpbmctcG9pbnQg YXJpdGhtZXRpYwogICAgICBkdXJpbmcgZXhwcmVzc2lvbiBldmFsdWF0aW9uIHdoZW4gdGhlIHRh cmdldCB1c2VzIGRpZmZlcmVudAogICAgICBmbG9hdGluZy1wb2ludCBmb3JtYXRzIHRoYW4gdGhl IGhvc3QuICBJZiBHTlUgTVBGUiBpcyBub3QKICAgICAgYXZhaWxhYmxlLCBHREIgd2lsbCBmYWxs IGJhY2sgdG8gdXNpbmcgaG9zdCBmbG9hdGluZy1wb2ludAogICAgICBhcml0aG1ldGljLiAgSWYg eW91ciBob3N0IGRvZXMgbm90IGhhdmUgR05VIE1QRlIgaW5zdGFsbGVkLCB5b3UKICAgICAgY2Fu IGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSBgaHR0cHM6Ly93d3cubXBmci5vcmcvJy4KKyAg ICAgWW91IGNhbiBhbHNvIGJ1aWxkIE1QRlIgaW4tdHJlZSB3aGVuIHlvdSB1c2UgdGhlIHNjcmlw dAorICAgICAuL2NvbnRyaWIvZG93bmxvYWRfcHJlcmVxdWlzaXRlcy4KKyAgICAgVGhpcyBtdXN0 IGJlIGRvbmUgYmVmb3JlIGNvbmZpZ3VyZS4gIE5vIC0td2l0aC1tcGZyIG9wdGlvbnMgbXVzdAor ICAgICBiZSB1c2VkIHdoZW4gaW52b2tpbmcgY29uZmlndXJlIGluIHRoaXMgY2FzZS4KKyAgICAg Tm90ZSBob3dldmVyLCB0aGF0IHRoaXMgZG9lcyBvbmx5IHdvcmsgd2l0aCBhIHNlcGFyYXRlIGJ1 aWxkCisgICAgIGRpcmVjdG9yeS4KIAogYC0td2l0aC1weXRob25bPVBZVEhPTl0nCiAgICAgIEJ1 aWxkIEdEQiB3aXRoIFB5dGhvbiBzY3JpcHRpbmcgc3VwcG9ydC4gIChEb25lIGJ5IGRlZmF1bHQg aWYKZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCmluZGV4IDUxYjRk MTkuLjkyZTRiNGQgMTAwNzU1Ci0tLSBhL2dkYi9jb25maWd1cmUKKysrIGIvZ2RiL2NvbmZpZ3Vy ZQpAQCAtNzI5LDEyICs3MjksOCBAQCBQWVRIT05fTElCUwogUFlUSE9OX0NQUEZMQUdTCiBQWVRI T05fQ0ZMQUdTCiBweXRob25fcHJvZ19wYXRoCi1MVExJQk1QRlIKIExJQk1QRlIKLUhBVkVfTElC TVBGUgotTFRMSUJHTVAKIExJQkdNUAotSEFWRV9MSUJHTVAKIExUTElCRVhQQVQKIExJQkVYUEFU CiBIQVZFX0xJQkVYUEFUCkBAIC04OTksMTEgKzg5NSwxMyBAQCB3aXRoX2ppdF9yZWFkZXJfZGly CiB3aXRoX2V4cGF0CiB3aXRoX2xpYmV4cGF0X3ByZWZpeAogd2l0aF9saWJleHBhdF90eXBlCi13 aXRoX2xpYmdtcF9wcmVmaXgKLXdpdGhfbGliZ21wX3R5cGUKLXdpdGhfbXBmcgord2l0aF9nbXBf aW5jbHVkZQord2l0aF9nbXBfbGliCit3aXRoX2dtcAogd2l0aF9saWJtcGZyX3ByZWZpeAotd2l0 aF9saWJtcGZyX3R5cGUKK3dpdGhfbXBmcl9pbmNsdWRlCit3aXRoX21wZnJfbGliCit3aXRoX21w ZnIKIHdpdGhfcHl0aG9uCiB3aXRoX3B5dGhvbl9saWJkaXIKIHdpdGhfZ3VpbGUKQEAgLTE2NDQs MTMgKzE2NDIsMTQgQEAgT3B0aW9uYWwgUGFja2FnZXM6CiAgIC0td2l0aC1saWJleHBhdC1wcmVm aXhbPURJUl0gIHNlYXJjaCBmb3IgbGliZXhwYXQgaW4gRElSL2luY2x1ZGUgYW5kIERJUi9saWIK ICAgLS13aXRob3V0LWxpYmV4cGF0LXByZWZpeCAgICAgZG9uJ3Qgc2VhcmNoIGZvciBsaWJleHBh dCBpbiBpbmNsdWRlZGlyIGFuZCBsaWJkaXIKICAgLS13aXRoLWxpYmV4cGF0LXR5cGU9VFlQRSAg ICAgdHlwZSBvZiBsaWJyYXJ5IHRvIHNlYXJjaCBmb3IgKGF1dG8vc3RhdGljL3NoYXJlZCkKLSAg LS13aXRoLWxpYmdtcC1wcmVmaXhbPURJUl0gIHNlYXJjaCBmb3IgbGliZ21wIGluIERJUi9pbmNs dWRlIGFuZCBESVIvbGliCi0gIC0td2l0aG91dC1saWJnbXAtcHJlZml4ICAgICBkb24ndCBzZWFy Y2ggZm9yIGxpYmdtcCBpbiBpbmNsdWRlZGlyIGFuZCBsaWJkaXIKLSAgLS13aXRoLWxpYmdtcC10 eXBlPVRZUEUgICAgIHR5cGUgb2YgbGlicmFyeSB0byBzZWFyY2ggZm9yIChhdXRvL3N0YXRpYy9z aGFyZWQpCi0gIC0td2l0aC1tcGZyICAgICAgICAgICAgIGluY2x1ZGUgTVBGUiBzdXBwb3J0IChh dXRvL3llcy9ubykKLSAgLS13aXRoLWxpYm1wZnItcHJlZml4Wz1ESVJdICBzZWFyY2ggZm9yIGxp Ym1wZnIgaW4gRElSL2luY2x1ZGUgYW5kIERJUi9saWIKLSAgLS13aXRob3V0LWxpYm1wZnItcHJl Zml4ICAgICBkb24ndCBzZWFyY2ggZm9yIGxpYm1wZnIgaW4gaW5jbHVkZWRpciBhbmQgbGliZGly Ci0gIC0td2l0aC1saWJtcGZyLXR5cGU9VFlQRSAgICAgdHlwZSBvZiBsaWJyYXJ5IHRvIHNlYXJj aCBmb3IgKGF1dG8vc3RhdGljL3NoYXJlZCkKKyAgLS13aXRoLWdtcC1pbmNsdWRlPURJUiAgR01Q IGluY2x1ZGUgZGlyZWN0b3J5CisgIC0td2l0aC1nbXAtbGliPURJUiAgICAgIEdNUCBsaWIgZGly ZWN0b3J5CisgIC0td2l0aC1nbXA9RElSICAgICAgICAgIEdNUCBpbnN0YWxsIGRpcmVjdG9yeQor ICAtLXdpdGgtbGlibXBmci1wcmVmaXg9RElSCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRo aXMgb3B0aW9uIGhhcyBiZWVuIERFUFJFQ0FURUQKKyAgLS13aXRoLW1wZnItaW5jbHVkZT1ESVIg TVBGUiBpbmNsdWRlIGRpcmVjdG9yeQorICAtLXdpdGgtbXBmci1saWI9RElSICAgICBNUEZSIGxp YiBkaXJlY3RvcnkKKyAgLS13aXRoLW1wZnI9RElSICAgICAgICAgTUZQUiBpbnN0YWxsIGRpcmVj dG9yeSAob3IgYXV0by95ZXMvbm8pCiAgIC0td2l0aC1weXRob25bPVBZVEhPTl0gIGluY2x1ZGUg cHl0aG9uIHN1cHBvcnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGF1dG8veWVzL25vLzxw eXRob24tcHJvZ3JhbT4pCiAgIC0td2l0aC1weXRob24tbGliZGlyWz1ESVJdCkBAIC05OTkwLDk5 NCArOTk4OSwxNzUgQEAgZG9uZQogICBmaQogZmkKIAotIyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEg dXNhYmxlIEdNUCBsaWJyYXJ5LgogCisjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdtcF9pbmNsdWRl IHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7d2l0aF9nbXBfaW5jbHVkZStzZXR9IiA9IHNldDsgdGhl biA6CisgIHdpdGh2YWw9JHdpdGhfZ21wX2luY2x1ZGU7IENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkk d2l0aHZhbCIKK2ZpCiAKIAorIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbXBfbGliIHdhcyBnaXZl bi4KK2lmIHRlc3QgIiR7d2l0aF9nbXBfbGliK3NldH0iID0gc2V0OyB0aGVuIDoKKyAgd2l0aHZh bD0kd2l0aF9nbXBfbGliOyBMSUJHTVA9Ii1MJHdpdGh2YWwiCitmaQogCiAKKyMgQ2hlY2sgd2hl dGhlciAtLXdpdGgtZ21wIHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7d2l0aF9nbXArc2V0fSIgPSBz ZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2dtcDsKKyAgaWYgdGVzdCAteiAiJHdpdGhfZ21w X2xpYiIgJiYgdGVzdCAteiAiJHdpdGhfZ21wX2luY2x1ZGUiIDsgdGhlbgorICAgIENQUEZMQUdT PSIkQ1BQRkxBR1MgLUkkd2l0aHZhbC9pbmNsdWRlIgorICAgIExJQkdNUD0iLUwkd2l0aHZhbC9s aWIiCisgIGVsc2UKKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiYyO30KK2FzX2ZuX2Vycm9yICQ/ICJEbyBub3QgdXNlIC0td2l0aC1n bXAgYW5kIC0td2l0aC1nbXAtaW5jbHVkZS8tLXdpdGgtZ21wLWxpYiBvcHRpb25zIHNpbXVsdGFu ZW91c2x5LgorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7 IH0KKyAgZmkKIAorZmkKIAogCi0gICAgdXNlX2FkZGl0aW9uYWw9eWVzCit7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBHTVAiID4mNQorJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIEdNUC4uLiAiID4mNjsgfQorIyBWZXJpZnkgdGhhdCB3ZSBoYXZl IGEgdXNhYmxlIEdNUCBsaWJyYXJ5Lgorc2F2ZV9MSUJTPSRMSUJTCitMSUJTPSIkTElCUyAkTElC R01QIC1sZ21wIgorY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor LyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPGdtcC5oPgoraW50CittYWluICgpCit7 CittcHpfdCBuOworCSAgICAgbXB6X2luaXQgKG4pOworICA7CisgIHJldHVybiAwOworfQorX0FD RU9GCitpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisgIEhBVkVfTElCR01Q PXllcworZWxzZQorICBIQVZFX0xJQkdNUD1ubworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0CitMSUJTPSRzYXZlX0xJQlMKK2lmIHRlc3QgIiRIQVZFX0xJQkdNUCIgIT0geWVzOyB0 aGVuCisgIGFzX2ZuX2Vycm9yICQ/ICJHTVAgaXMgbWlzc2luZyBvciB1bnVzYWJsZSIgIiRMSU5F Tk8iIDUKK2ZpCitMSUJHTVA9IiRMSUJHTVAgLWxnbXAiCiAKLSAgYWNsX3NhdmVfcHJlZml4PSIk cHJlZml4IgotICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgotICBhY2xfc2F2ZV9leGVjX3By ZWZpeD0iJGV4ZWNfcHJlZml4IgotICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZp eCIKIAotICAgIGV2YWwgYWRkaXRpb25hbF9pbmNsdWRlZGlyPVwiJGluY2x1ZGVkaXJcIgotICAg IGV2YWwgYWRkaXRpb25hbF9saWJkaXI9XCIkbGliZGlyXCIKKyRhc19lY2hvICIjZGVmaW5lIEhB VkVfTElCR01QIDEiID4+Y29uZmRlZnMuaAogCi0gIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhl Y19wcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkSEFWRV9MSUJHTVAiID4mNQorJGFzX2Vj aG8gIiRIQVZFX0xJQkdNUCIgPiY2OyB9CiAKIAotIyBDaGVjayB3aGV0aGVyIC0td2l0aC1saWJn bXAtcHJlZml4IHdhcyBnaXZlbi4KLWlmIHRlc3QgIiR7d2l0aF9saWJnbXBfcHJlZml4K3NldH0i ID0gc2V0OyB0aGVuIDoKLSAgd2l0aHZhbD0kd2l0aF9saWJnbXBfcHJlZml4OwotICAgIGlmIHRl c3QgIlgkd2l0aHZhbCIgPSAiWG5vIjsgdGhlbgotICAgICAgdXNlX2FkZGl0aW9uYWw9bm8KLSAg ICBlbHNlCi0gICAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlgiOyB0aGVuCisjIENoZWNrIHdo ZXRoZXIgLS13aXRoLWxpYm1wZnJfcHJlZml4IHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7d2l0aF9s aWJtcGZyX3ByZWZpeCtzZXR9IiA9IHNldDsgdGhlbiA6CisgIHdpdGh2YWw9JHdpdGhfbGlibXBm cl9wcmVmaXg7CisgIGlmIHRlc3QgLXogIiR3aXRoX21wZnIiIDsgdGhlbgorICAgIHdpdGhfbXBm cj0iYXV0byIKKyAgZmkKKyAgaWYgdGVzdCB4IiR3aXRoX21wZnIiICE9IHhhdXRvICYmIHRlc3Qg eCIkd2l0aF9tcGZyIiAhPSB4eWVzICYmIHRlc3QgeCIkd2l0aF9tcGZyIiAhPSB4bm8gOyB0aGVu CisgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiY1CiskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdk JzoiID4mMjt9Cithc19mbl9lcnJvciAkPyAiRG8gbm90IHVzZSAtLXdpdGgtbXBmcj1ESVIgYW5k IC0td2l0aC1saWJtcGZyLXByZWZpeD1ESVIgb3B0aW9ucyBzaW11bHRhbmVvdXNseS4KK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9CisgIGZpCiAKLSAg YWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgotICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4Igot ICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgotICBleGVjX3ByZWZpeD0iJGFj bF9maW5hbF9leGVjX3ByZWZpeCIKK2ZpCiAKLSAgICAgICAgICBldmFsIGFkZGl0aW9uYWxfaW5j bHVkZWRpcj1cIiRpbmNsdWRlZGlyXCIKLSAgICAgICAgICBldmFsIGFkZGl0aW9uYWxfbGliZGly PVwiJGxpYmRpclwiCitzYXZlX0NQUEZMQUdTPSRDUFBGTEFHUwogCi0gIGV4ZWNfcHJlZml4PSIk YWNsX3NhdmVfZXhlY19wcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtbXBmcl9pbmNsdWRlIHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7d2l0 aF9tcGZyX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX21wZnJf aW5jbHVkZTsgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSR3aXRodmFsIgorZmkKIAotICAgICAgZWxz ZQotICAgICAgICBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9IiR3aXRodmFsL2luY2x1ZGUiCi0gICAg ICAgIGFkZGl0aW9uYWxfbGliZGlyPSIkd2l0aHZhbC9saWIiCisKKyMgQ2hlY2sgd2hldGhlciAt LXdpdGgtbXBmcl9saWIgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHt3aXRoX21wZnJfbGliK3NldH0i ID0gc2V0OyB0aGVuIDoKKyAgd2l0aHZhbD0kd2l0aF9tcGZyX2xpYjsgTElCTVBGUj0iLUwkd2l0 aHZhbCIKK2ZpCisKKworIyBDaGVjayB3aGV0aGVyIC0td2l0aC1tcGZyIHdhcyBnaXZlbi4KK2lm IHRlc3QgIiR7d2l0aF9tcGZyK3NldH0iID0gc2V0OyB0aGVuIDoKKyAgd2l0aHZhbD0kd2l0aF9t cGZyOworICBpZiB0ZXN0IC1uICIkd2l0aF9saWJtcGZyX3ByZWZpeCIgOyB0aGVuCisgICAgd2l0 aHZhbD0kd2l0aF9saWJtcGZyX3ByZWZpeAorICBmaQorICBpZiB0ZXN0IC16ICIkd2l0aF9tcGZy X2xpYiIgJiYgdGVzdCAteiAiJHdpdGhfbXBmcl9pbmNsdWRlIiA7IHRoZW4KKyAgICBpZiB0ZXN0 IHgiJHdpdGh2YWwiICE9IHhhdXRvICYmIHRlc3QgeCIkd2l0aHZhbCIgIT0geHllcyAmJiB0ZXN0 IHgiJHdpdGh2YWwiICE9IHhubyA7IHRoZW4KKyAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkk d2l0aHZhbC9pbmNsdWRlIgorICAgICAgTElCTVBGUj0iLUwkd2l0aHZhbC9saWIiCisgICAgICBp ZiB0ZXN0IC16ICIkd2l0aF9saWJtcGZyX3ByZWZpeCIgOyB0aGVuCisJd2l0aF9tcGZyPXllcwog ICAgICAgZmkKICAgICBmaQorICBlbHNlCisgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CiskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Cithc19mbl9lcnJvciAkPyAiRG8gbm90 IHVzZSAtLXdpdGgtbXBmciBhbmQgLS13aXRoLW1wZnItaW5jbHVkZS8tLXdpdGgtbXBmci1saWIg b3B0aW9ucyBzaW11bHRhbmVvdXNseS4KK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFp bHMiICIkTElORU5PIiA1OyB9CisgIGZpCiAKIGZpCiAKIAotIyBDaGVjayB3aGV0aGVyIC0td2l0 aC1saWJnbXAtdHlwZSB3YXMgZ2l2ZW4uCi1pZiB0ZXN0ICIke3dpdGhfbGliZ21wX3R5cGUrc2V0 fSIgPSBzZXQ7IHRoZW4gOgotICB3aXRodmFsPSR3aXRoX2xpYmdtcF90eXBlOyAgd2l0aF9saWJn bXBfdHlwZT0kd2l0aHZhbAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBNUEZSIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgdG8gdXNlIE1QRlIuLi4gIiA+JjY7IH0KK2lmIHRlc3QgIiR7d2l0aF9tcGZyfSIg PSBubzsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdB Uk5JTkc6IE1QRlIgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFp bGFibGUuIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE1QRlIgc3VwcG9ydCBkaXNh YmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjI7fQorICBIQVZFX0xJ Qk1QRlI9bm8KKyAgTElCTVBGUj0KKyAgQ1BQRkxBR1M9JHNhdmVfQ1BQRkxBR1MKK2Vsc2UKKyAg c2F2ZV9MSUJTPSRMSUJTCisgIExJQlM9IiRMSUJTICRMSUJNUEZSIC1sbXBmciAkTElCR01QIgor ICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29u ZmRlZnMuaC4gICovCisjaW5jbHVkZSA8bXBmci5oPgoraW50CittYWluICgpCit7CittcGZyX2V4 cF90IGV4cDsgbXBmcl90IHg7CisJICAgICAgIG1wZnJfZnJleHAgKCZleHAsIHgsIHgsIE1QRlJf Uk5ETik7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2xpbmsg IiRMSU5FTk8iOyB0aGVuIDoKKyAgSEFWRV9MSUJNUEZSPXllcwogZWxzZQotICAgd2l0aF9saWJn bXBfdHlwZT1hdXRvCisgIEhBVkVfTElCTVBGUj1ubwogZmkKK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfZXh0CisgIExJQlM9JHNhdmVfTElCUworICBpZiB0ZXN0ICIkSEFWRV9MSUJNUEZSIiAh PSB5ZXM7IHRoZW4KKyAgICBpZiB0ZXN0ICIkd2l0aF9tcGZyIiA9IHllczsgdGhlbgorICAgICAg YXNfZm5fZXJyb3IgJD8gIk1QRlIgaXMgbWlzc2luZyBvciB1bnVzYWJsZSIgIiRMSU5FTk8iIDUK KyAgICBlbHNlCisgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFdBUk5JTkc6IE1QRlIgaXMgbWlzc2luZyBvciB1bnVzYWJsZTsgc29tZSBmZWF0dXJlcyBtYXkg YmUgdW5hdmFpbGFibGUuIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE1QRlIgaXMg bWlzc2luZyBvciB1bnVzYWJsZTsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+ JjI7fQorICAgIGZpCisgICAgTElCTVBGUj0KKyAgICBDUFBGTEFHUz0kc2F2ZV9DUFBGTEFHUwor ICBlbHNlCisgICAgTElCTVBGUj0iJExJQk1QRlIgLWxtcGZyIgogCi0gIGxpYl90eXBlPWBldmFs IGVjaG8gXCR3aXRoX2xpYmdtcF90eXBlYAotCi0gICAgICBMSUJHTVA9Ci0gIExUTElCR01QPQot ICBJTkNHTVA9Ci0gIHJwYXRoZGlycz0KLSAgbHRycGF0aGRpcnM9Ci0gIG5hbWVzX2FscmVhZHlf aGFuZGxlZD0KLSAgbmFtZXNfbmV4dF9yb3VuZD0nZ21wICcKLSAgd2hpbGUgdGVzdCAtbiAiJG5h bWVzX25leHRfcm91bmQiOyBkbwotICAgIG5hbWVzX3RoaXNfcm91bmQ9IiRuYW1lc19uZXh0X3Jv dW5kIgotICAgIG5hbWVzX25leHRfcm91bmQ9Ci0gICAgZm9yIG5hbWUgaW4gJG5hbWVzX3RoaXNf cm91bmQ7IGRvCi0gICAgICBhbHJlYWR5X2hhbmRsZWQ9Ci0gICAgICBmb3IgbiBpbiAkbmFtZXNf YWxyZWFkeV9oYW5kbGVkOyBkbwotICAgICAgICBpZiB0ZXN0ICIkbiIgPSAiJG5hbWUiOyB0aGVu Ci0gICAgICAgICAgYWxyZWFkeV9oYW5kbGVkPXllcwotICAgICAgICAgIGJyZWFrCi0gICAgICAg IGZpCi0gICAgICBkb25lCi0gICAgICBpZiB0ZXN0IC16ICIkYWxyZWFkeV9oYW5kbGVkIjsgdGhl bgotICAgICAgICBuYW1lc19hbHJlYWR5X2hhbmRsZWQ9IiRuYW1lc19hbHJlYWR5X2hhbmRsZWQg JG5hbWUiCi0gICAgICAgICAgICAgICAgICAgICAgICB1cHBlcm5hbWU9YGVjaG8gIiRuYW1lIiB8 IHNlZCAtZSAneXxhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei4vLXxBQkNERUZHSElKS0xNTk9Q UVJTVFVWV1hZWl9fX3wnYAotICAgICAgICBldmFsIHZhbHVlPVwiXCRIQVZFX0xJQiR1cHBlcm5h bWVcIgotICAgICAgICBpZiB0ZXN0IC1uICIkdmFsdWUiOyB0aGVuCi0gICAgICAgICAgaWYgdGVz dCAiJHZhbHVlIiA9IHllczsgdGhlbgotICAgICAgICAgICAgZXZhbCB2YWx1ZT1cIlwkTElCJHVw cGVybmFtZVwiCi0gICAgICAgICAgICB0ZXN0IC16ICIkdmFsdWUiIHx8IExJQkdNUD0iJHtMSUJH TVB9JHtMSUJHTVA6KyB9JHZhbHVlIgotICAgICAgICAgICAgZXZhbCB2YWx1ZT1cIlwkTFRMSUIk dXBwZXJuYW1lXCIKLSAgICAgICAgICAgIHRlc3QgLXogIiR2YWx1ZSIgfHwgTFRMSUJHTVA9IiR7 TFRMSUJHTVB9JHtMVExJQkdNUDorIH0kdmFsdWUiCi0gICAgICAgICAgZWxzZQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOgotICAgICAgICAgIGZpCi0gICAgICAgIGVsc2UK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2Rpcj0KLSAgICAgICAgICBmb3Vu ZF9sYT0KLSAgICAgICAgICBmb3VuZF9zbz0KLSAgICAgICAgICBmb3VuZF9hPQotICAgICAgICAg IGlmIHRlc3QgJHVzZV9hZGRpdGlvbmFsID0geWVzOyB0aGVuCi0gICAgICAgICAgICBpZiB0ZXN0 IC1uICIkc2hsaWJleHQiICYmIHRlc3QgLWYgIiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS4k c2hsaWJleHQiICYmIHRlc3QgeCRsaWJfdHlwZSAhPSB4c3RhdGljOyB0aGVuCi0gICAgICAgICAg ICAgIGZvdW5kX2Rpcj0iJGFkZGl0aW9uYWxfbGliZGlyIgotICAgICAgICAgICAgICBmb3VuZF9z bz0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRzaGxpYmV4dCIKLSAgICAgICAgICAgICAg aWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgotICAgICAg ICAgICAgICAgIGZvdW5kX2xhPSIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUubGEiCi0gICAg ICAgICAgICAgIGZpCi0gICAgICAgICAgICBlbGlmIHRlc3QgeCRsaWJfdHlwZSAhPSB4c2hhcmVk OyB0aGVuCi0gICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRhZGRpdGlvbmFsX2xpYmRpci9saWIk bmFtZS4kbGliZXh0IjsgdGhlbgotICAgICAgICAgICAgICAgIGZvdW5kX2Rpcj0iJGFkZGl0aW9u YWxfbGliZGlyIgotICAgICAgICAgICAgICAgIGZvdW5kX2E9IiRhZGRpdGlvbmFsX2xpYmRpci9s aWIkbmFtZS4kbGliZXh0IgotICAgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRhZGRpdGlvbmFs X2xpYmRpci9saWIkbmFtZS5sYSI7IHRoZW4KLSAgICAgICAgICAgICAgICAgIGZvdW5kX2xhPSIk YWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUubGEiCi0gICAgICAgICAgICAgICAgZmkKLSAgICAg ICAgICAgICAgZmkKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAgZmkKLSAgICAgICAgICBpZiB0 ZXN0ICJYJGZvdW5kX2RpciIgPSAiWCI7IHRoZW4KLSAgICAgICAgICAgIGZvciB4IGluICRMREZM QUdTICRMVExJQkdNUDsgZG8KLQotICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCi0gIHByZWZp eD0iJGFjbF9maW5hbF9wcmVmaXgiCi0gIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVm aXgiCi0gIGV4ZWNfcHJlZml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgotICBldmFsIHg9XCIk eFwiCi0gIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCi0gIHByZWZpeD0iJGFj bF9zYXZlX3ByZWZpeCIKLQotICAgICAgICAgICAgICBjYXNlICIkeCIgaW4KLSAgICAgICAgICAg ICAgICAtTCopCi0gICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3Mv XlgtTC8vJ2AKLSAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYmV4dCIgJiYgdGVz dCAtZiAiJGRpci9saWIkbmFtZS4kc2hsaWJleHQiICYmIHRlc3QgeCRsaWJfdHlwZSAhPSB4c3Rh dGljOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIGZvdW5kX2Rpcj0iJGRpciIKLSAgICAgICAg ICAgICAgICAgICAgZm91bmRfc289IiRkaXIvbGliJG5hbWUuJHNobGliZXh0IgotICAgICAgICAg ICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgotICAgICAgICAg ICAgICAgICAgICAgIGZvdW5kX2xhPSIkZGlyL2xpYiRuYW1lLmxhIgotICAgICAgICAgICAgICAg ICAgICBmaQotICAgICAgICAgICAgICAgICAgZWxpZiB0ZXN0IHgkbGliX3R5cGUgIT0geHNoYXJl ZDsgdGhlbgotICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLiRs aWJleHQiOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkZGlyIgotICAg ICAgICAgICAgICAgICAgICAgIGZvdW5kX2E9IiRkaXIvbGliJG5hbWUuJGxpYmV4dCIKLSAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgotICAg ICAgICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEiCi0gICAgICAg ICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAg ICAgIGZpCi0gICAgICAgICAgICAgICAgICA7OwotICAgICAgICAgICAgICBlc2FjCi0gICAgICAg ICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiAhPSAiWCI7IHRoZW4KLSAgICAgICAgICAgICAg ICBicmVhawotICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgZG9uZQotICAgICAgICAgIGZp Ci0gICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiICE9ICJYIjsgdGhlbgotICAgICAgICAg ICAgICAgICAgICAgICAgTFRMSUJHTVA9IiR7TFRMSUJHTVB9JHtMVExJQkdNUDorIH0tTCRmb3Vu ZF9kaXIgLWwkbmFtZSIKLSAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfc28iICE9ICJYIjsg dGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiB0ZXN0ICIkZW5hYmxlX3JwYXRoIiA9IG5vIHx8IHRlc3QgIlgkZm91bmRfZGlyIiA9 ICJYL3Vzci9saWIiOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQkdN UD0iJHtMSUJHTVB9JHtMSUJHTVA6KyB9JGZvdW5kX3NvIgotICAgICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KLSAgICAgICAgICAgICAgICBmb3IgeCBpbiAk bHRycGF0aGRpcnM7IGRvCi0gICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91 bmRfZGlyIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCi0gICAgICAgICAg ICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgIGRv bmUKLSAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgotICAgICAgICAg ICAgICAgICAgbHRycGF0aGRpcnM9IiRsdHJwYXRoZGlycyAkZm91bmRfZGlyIgotICAgICAgICAg ICAgICAgIGZpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJk Y29kZV9kaXJlY3QiID0geWVzOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMSUJHTVA9IiR7TElCR01QfSR7TElCR01QOisgfSRmb3Vu ZF9zbyIKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1u ICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgJiYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wi ID0gbm87IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExJQkdNUD0iJHtMSUJHTVB9JHtMSUJHTVA6KyB9JGZvdW5kX3NvIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaGF2ZWl0PQotICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkcnBhdGhkaXJzOyBkbwot ICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRmb3VuZF9kaXIiOyB0aGVu Ci0gICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCi0gICAgICAgICAgICAgICAgICAg ICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgICAg IGRvbmUKLSAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgICBycGF0aGRpcnM9IiRycGF0aGRpcnMgJGZvdW5kX2RpciIKLSAg ICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGF2ZWl0PQotICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFH UyAkTElCR01QOyBkbwogCi0gIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKLSAgcHJlZml4PSIk YWNsX2ZpbmFsX3ByZWZpeCIKLSAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIK LSAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCi0gIGV2YWwgeD1cIiR4XCIK LSAgZXhlY19wcmVmaXg9IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKLSAgcHJlZml4PSIkYWNsX3Nh dmVfcHJlZml4IgorJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJNUEZSIDEiID4+Y29uZmRlZnMu aAogCi0gICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkZm91bmRfZGly IjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcwotICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAg ICAgICAgICBkb25lCi0gICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0 aGVuCi0gICAgICAgICAgICAgICAgICAgICAgTElCR01QPSIke0xJQkdNUH0ke0xJQkdNUDorIH0t TCRmb3VuZF9kaXIiCi0gICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgICAg IGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsgdGhlbgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExJQkdNUD0iJHtMSUJHTVB9JHtMSUJHTVA6KyB9JGZvdW5kX3NvIgot ICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQkdNUD0iJHtMSUJHTVB9JHtMSUJHTVA6 KyB9LWwkbmFtZSIKLSAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgIGZp Ci0gICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGVsc2UK LSAgICAgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9hIiAhPSAiWCI7IHRoZW4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTElCR01QPSIke0xJQkdNUH0ke0xJQkdNUDorIH0kZm91 bmRfYSIKLSAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTElCR01QPSIke0xJQkdNUH0ke0xJQkdNUDorIH0tTCRmb3VuZF9k aXIgLWwkbmFtZSIKLSAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAg ICAgICAgICAgICAgICBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9Ci0gICAgICAgICAgICBjYXNlICIk Zm91bmRfZGlyIiBpbgotICAgICAgICAgICAgICAqL2xpYiB8ICovbGliLykKLSAgICAgICAgICAg ICAgICBiYXNlZGlyPWBlY2hvICJYJGZvdW5kX2RpciIgfCBzZWQgLWUgJ3MsXlgsLCcgLWUgJ3Ms L2xpYi8qJCwsJ2AKLSAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9IiRiYXNl ZGlyL2luY2x1ZGUiCi0gICAgICAgICAgICAgICAgOzsKLSAgICAgICAgICAgIGVzYWMKLSAgICAg ICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9pbmNsdWRlZGlyIiAhPSAiWCI7IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0 ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgIT0gIlgvdXNyL2luY2x1ZGUiOyB0aGVuCi0g ICAgICAgICAgICAgICAgaGF2ZWl0PQotICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkYWRkaXRp b25hbF9pbmNsdWRlZGlyIiA9ICJYL3Vzci9sb2NhbC9pbmNsdWRlIjsgdGhlbgotICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgY2Fz ZSAkaG9zdF9vcyBpbgotICAgICAgICAgICAgICAgICAgICAgIGxpbnV4KikgaGF2ZWl0PXllczs7 Ci0gICAgICAgICAgICAgICAgICAgIGVzYWMKLSAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgot ICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJENQUEZMQUdTICRJTkNHTVA7IGRvCi0KLSAgYWNs X3NhdmVfcHJlZml4PSIkcHJlZml4IgotICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgotICBh Y2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgotICBleGVjX3ByZWZpeD0iJGFjbF9m aW5hbF9leGVjX3ByZWZpeCIKLSAgZXZhbCB4PVwiJHhcIgotICBleGVjX3ByZWZpeD0iJGFjbF9z YXZlX2V4ZWNfcHJlZml4IgotICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCi0KLSAgICAgICAg ICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUkkYWRkaXRpb25hbF9pbmNsdWRlZGlyIjsg dGhlbgotICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKLSAgICAgICAgICAgICAgICAg ICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAgZG9u ZQotICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KLSAgICAgICAg ICAgICAgICAgICAgaWYgdGVzdCAtZCAiJGFkZGl0aW9uYWxfaW5jbHVkZWRpciI7IHRoZW4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5DR01QPSIke0lOQ0dN UH0ke0lOQ0dNUDorIH0tSSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiCi0gICAgICAgICAgICAgICAg ICAgIGZpCi0gICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICAgIGZpCi0gICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVz dCAtbiAiJGZvdW5kX2xhIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzYXZlX2xpYmRpcj0iJGxpYmRpciIKLSAgICAgICAgICAg ICAgY2FzZSAiJGZvdW5kX2xhIiBpbgotICAgICAgICAgICAgICAgICovKiB8ICpcXCopIC4gIiRm b3VuZF9sYSIgOzsKLSAgICAgICAgICAgICAgICAqKSAuICIuLyRmb3VuZF9sYSIgOzsKLSAgICAg ICAgICAgICAgZXNhYwotICAgICAgICAgICAgICBsaWJkaXI9IiRzYXZlX2xpYmRpciIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgZGVwIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0g ICAgICAgICAgICAgICAgY2FzZSAiJGRlcCIgaW4KLSAgICAgICAgICAgICAgICAgIC1MKikKLSAg ICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9saWJkaXI9YGVjaG8gIlgkZGVwIiB8IHNlZCAt ZSAncy9eWC1MLy8nYAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9saWJkaXIiICE9ICJYL3Vzci9saWIiOyB0aGVuCi0g ICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQotICAgICAgICAgICAgICAgICAgICAgIGlmIHRl c3QgIlgkYWRkaXRpb25hbF9saWJkaXIiID0gIlgvdXNyL2xvY2FsL2xpYiI7IHRoZW4KLSAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRHQ0MiOyB0aGVuCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaW51eCopIGhhdmVpdD15ZXM7OwotICAgICAgICAgICAgICAgICAgICAgICAgICBlc2FjCi0g ICAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAg ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KLSAgICAgICAgICAg ICAgICAgICAgICAgIGhhdmVpdD0KLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRM REZMQUdTICRMSUJHTVA7IGRvCi0KLSAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgotICBwcmVm aXg9IiRhY2xfZmluYWxfcHJlZml4IgotICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJl Zml4IgotICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKLSAgZXZhbCB4PVwi JHhcIgotICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgotICBwcmVmaXg9IiRh Y2xfc2F2ZV9wcmVmaXgiCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4 IiA9ICJYLUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGF2ZWl0PXllcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgICAgICAgICBkb25lCi0g ICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgotICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVu Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExJQkdNUD0iJHtMSUJHTVB9JHtMSUJHTVA6KyB9LUwkYWRkaXRpb25hbF9saWJkaXIiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgICAgICAgICBmaQotICAg ICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQotICAgICAgICAgICAgICAgICAgICAgICAgZm9y IHggaW4gJExERkxBR1MgJExUTElCR01QOyBkbwotCi0gIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZp eCIKLSAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKLSAgYWNsX3NhdmVfZXhlY19wcmVmaXg9 IiRleGVjX3ByZWZpeCIKLSAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCi0g IGV2YWwgeD1cIiR4XCIKLSAgZXhlY19wcmVmaXg9IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKLSAg cHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgotCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGlm IHRlc3QgIlgkeCIgPSAiWC1MJGFkZGl0aW9uYWxfbGliZGlyIjsgdGhlbgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhawotICAgICAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAgICAg ICAgZG9uZQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRo ZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJGFkZGl0aW9uYWxfbGli ZGlyIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMVExJQkdNUD0iJHtMVExJQkdNUH0ke0xUTElCR01QOisgfS1MJGFkZGl0aW9u YWxfbGliZGlyIgotICAgICAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAg ICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAg ICBmaQotICAgICAgICAgICAgICAgICAgICA7OwotICAgICAgICAgICAgICAgICAgLVIqKQotICAg ICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncy9eWC1SLy8nYAot ICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkZW5hYmxlX3JwYXRoIiAhPSBubzsgdGhlbgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGF2ZWl0PQotICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRycGF0aGRp cnM7IGRvCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZGlyIjsg dGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAg ICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2 ZWl0IjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgcnBhdGhkaXJzPSIkcnBhdGhkaXJz ICRkaXIiCi0gICAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KLSAgICAg ICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkbHRycGF0aGRpcnM7IGRvCi0gICAgICAgICAgICAg ICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZGlyIjsgdGhlbgotICAgICAgICAgICAgICAg ICAgICAgICAgICBoYXZlaXQ9eWVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0g ICAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAgICAgIGRvbmUKLSAg ICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgotICAgICAgICAg ICAgICAgICAgICAgICAgbHRycGF0aGRpcnM9IiRsdHJwYXRoZGlycyAkZGlyIgotICAgICAgICAg ICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAg ICAgIDs7Ci0gICAgICAgICAgICAgICAgICAtbCopCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZXNfbmV4dF9yb3VuZD0iJG5hbWVzX25leHRfcm91bmQgImBlY2hv ICJYJGRlcCIgfCBzZWQgLWUgJ3MvXlgtbC8vJ2AKLSAgICAgICAgICAgICAgICAgICAgOzsKLSAg ICAgICAgICAgICAgICAgICoubGEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX25leHRf cm91bmQ9IiRuYW1lc19uZXh0X3JvdW5kICJgZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzLF5YLiov LCwnIC1lICdzLF5saWIsLCcgLWUgJ3MsXC5sYSQsLCdgCi0gICAgICAgICAgICAgICAgICAgIDs7 Ci0gICAgICAgICAgICAgICAgICAqKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExJQkdNUD0iJHtMSUJHTVB9JHtMSUJHTVA6KyB9JGRlcCIKLSAgICAgICAgICAgICAg ICAgICAgTFRMSUJHTVA9IiR7TFRMSUJHTVB9JHtMVExJQkdNUDorIH0kZGVwIgotICAgICAgICAg ICAgICAgICAgICA7OwotICAgICAgICAgICAgICAgIGVzYWMKLSAgICAgICAgICAgICAgZG9uZQot ICAgICAgICAgICAgZmkKLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGxpYl90eXBlIiA9 ICJ4YXV0byIgfHwgdGVzdCAieCRsaWJfdHlwZSIgPSAieHNoYXJlZCI7IHRoZW4KLSAgICAgICAg ICAgICAgTElCR01QPSIke0xJQkdNUH0ke0xJQkdNUDorIH0tbCRuYW1lIgotICAgICAgICAgICAg ICBMVExJQkdNUD0iJHtMVExJQkdNUH0ke0xUTElCR01QOisgfS1sJG5hbWUiCi0gICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgIExJQkdNUD0iJHtMSUJHTVB9JHtMSUJHTVA6KyB9LWw6bGli JG5hbWUuJGxpYmV4dCIKLSAgICAgICAgICAgICAgTFRMSUJHTVA9IiR7TFRMSUJHTVB9JHtMVExJ QkdNUDorIH0tbDpsaWIkbmFtZS4kbGliZXh0IgotICAgICAgICAgICAgZmkKLSAgICAgICAgICBm aQotICAgICAgICBmaQotICAgICAgZmkKLSAgICBkb25lCi0gIGRvbmUKLSAgaWYgdGVzdCAiWCRy cGF0aGRpcnMiICE9ICJYIjsgdGhlbgotICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgYWxsZGlycz0KLSAgICAg IGZvciBmb3VuZF9kaXIgaW4gJHJwYXRoZGlyczsgZG8KLSAgICAgICAgYWxsZGlycz0iJHthbGxk aXJzfSR7YWxsZGlyczorJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3J9JGZvdW5kX2RpciIKLSAg ICAgIGRvbmUKLSAgICAgICAgICAgIGFjbF9zYXZlX2xpYmRpcj0iJGxpYmRpciIKLSAgICAgIGxp YmRpcj0iJGFsbGRpcnMiCi0gICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY1wiCi0gICAgICBsaWJkaXI9IiRhY2xfc2F2ZV9saWJkaXIiCi0gICAgICBMSUJHTVA9IiR7 TElCR01QfSR7TElCR01QOisgfSRmbGFnIgotICAgIGVsc2UKLSAgICAgICAgICAgIGZvciBmb3Vu ZF9kaXIgaW4gJHJwYXRoZGlyczsgZG8KLSAgICAgICAgYWNsX3NhdmVfbGliZGlyPSIkbGliZGly IgotICAgICAgICBsaWJkaXI9IiRmb3VuZF9kaXIiCi0gICAgICAgIGV2YWwgZmxhZz1cIiRoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSAgICAgICAgbGliZGlyPSIkYWNsX3NhdmVfbGliZGly IgotICAgICAgICBMSUJHTVA9IiR7TElCR01QfSR7TElCR01QOisgfSRmbGFnIgotICAgICAgZG9u ZQotICAgIGZpCi0gIGZpCi0gIGlmIHRlc3QgIlgkbHRycGF0aGRpcnMiICE9ICJYIjsgdGhlbgot ICAgICAgICAgICAgZm9yIGZvdW5kX2RpciBpbiAkbHRycGF0aGRpcnM7IGRvCi0gICAgICBMVExJ QkdNUD0iJHtMVExJQkdNUH0ke0xUTElCR01QOisgfS1SJGZvdW5kX2RpciIKLSAgICBkb25lCi0g IGZpCi0KLQotICAgICAgICBhY19zYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0KLSAgZm9yIGVs ZW1lbnQgaW4gJElOQ0dNUDsgZG8KLSAgICBoYXZlaXQ9Ci0gICAgZm9yIHggaW4gJENQUEZMQUdT OyBkbwotCi0gIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKLSAgcHJlZml4PSIkYWNsX2ZpbmFs X3ByZWZpeCIKLSAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIKLSAgZXhlY19w cmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCi0gIGV2YWwgeD1cIiR4XCIKLSAgZXhlY19w cmVmaXg9IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKLSAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4 IgotCi0gICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZWxlbWVudCI7IHRoZW4KLSAgICAgICAgaGF2 ZWl0PXllcwotICAgICAgICBicmVhawotICAgICAgZmkKLSAgICBkb25lCi0gICAgaWYgdGVzdCAt eiAiJGhhdmVpdCI7IHRoZW4KLSAgICAgIENQUEZMQUdTPSIke0NQUEZMQUdTfSR7Q1BQRkxBR1M6 KyB9JGVsZW1lbnQiCi0gICAgZmkKLSAgZG9uZQotCi0KLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbGliZ21wIiA+JjUKLSRhc19lY2hvX24g ImNoZWNraW5nIGZvciBsaWJnbXAuLi4gIiA+JjY7IH0KLWlmICR7YWNfY3ZfbGliZ21wKzp9IGZh bHNlOyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLWVsc2UKLQotICAgIGFj X3NhdmVfTElCUz0iJExJQlMiCi0gICAgTElCUz0iJExJQlMgJExJQkdNUCIKLSAgICBjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4g ICovCi0jaW5jbHVkZSA8Z21wLmg+Ci1pbnQKLW1haW4gKCkKLXsKLW1wel90IG47Ci0gICAgICAg ICAgICAgICAgICAgICAgIG1wel9pbml0IChuKTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VP RgotaWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotICBhY19jdl9saWJnbXA9 eWVzCi1lbHNlCi0gIGFjX2N2X2xpYmdtcD1ubwotZmkKLXJtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0gICAgTElCUz0iJGFjX3NhdmVfTElCUyIKLQotZmkKLXsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliZ21wIiA+JjUKLSRhc19l Y2hvICIkYWNfY3ZfbGliZ21wIiA+JjY7IH0KLSAgaWYgdGVzdCAiJGFjX2N2X2xpYmdtcCIgPSB5 ZXM7IHRoZW4KLSAgICBIQVZFX0xJQkdNUD15ZXMKLQotJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9M SUJHTVAgMSIgPj5jb25mZGVmcy5oCi0KLSAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0byBsaW5rIHdpdGggbGliZ21wIiA+JjUKLSRhc19l Y2hvX24gImNoZWNraW5nIGhvdyB0byBsaW5rIHdpdGggbGliZ21wLi4uICIgPiY2OyB9Ci0gICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRMSUJHTVAi ID4mNQotJGFzX2VjaG8gIiRMSUJHTVAiID4mNjsgfQotICBlbHNlCi0gICAgSEFWRV9MSUJHTVA9 bm8KLSAgICAgICAgICAgIENQUEZMQUdTPSIkYWNfc2F2ZV9DUFBGTEFHUyIKLSAgICBMSUJHTVA9 Ci0gICAgTFRMSUJHTVA9Ci0gIGZpCi0KLQotCi0KLQotCi1pZiB0ZXN0ICIkSEFWRV9MSUJHTVAi ICE9IHllczsgdGhlbgotICBhc19mbl9lcnJvciAkPyAiR01QIGlzIG1pc3Npbmcgb3IgdW51c2Fi bGUiICIkTElORU5PIiA1Ci1maQotCi0KLSMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXBmciB3YXMg Z2l2ZW4uCi1pZiB0ZXN0ICIke3dpdGhfbXBmcitzZXR9IiA9IHNldDsgdGhlbiA6Ci0gIHdpdGh2 YWw9JHdpdGhfbXBmcjsKLWVsc2UKLSAgd2l0aF9tcGZyPWF1dG8KLWZpCi0KLXsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0byB1c2UgTVBG UiIgPiY1Ci0kYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBNUEZSLi4uICIgPiY2 OyB9Ci17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdp dGhfbXBmciIgPiY1Ci0kYXNfZWNobyAiJHdpdGhfbXBmciIgPiY2OyB9Ci0KLWlmIHRlc3QgIiR7 d2l0aF9tcGZyfSIgPSBubzsgdGhlbgotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFdBUk5JTkc6IE1QRlIgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBt YXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKLSRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE1QRlIg c3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjI7 fQotICBIQVZFX0xJQk1QRlI9bm8KLWVsc2UKLQotCi0KLQotCi0KLQotCi0gICAgdXNlX2FkZGl0 aW9uYWw9eWVzCi0KLSAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgotICBwcmVmaXg9IiRhY2xf ZmluYWxfcHJlZml4IgotICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgotICBl eGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKLQotICAgIGV2YWwgYWRkaXRpb25h bF9pbmNsdWRlZGlyPVwiJGluY2x1ZGVkaXJcIgotICAgIGV2YWwgYWRkaXRpb25hbF9saWJkaXI9 XCIkbGliZGlyXCIKLQotICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgotICBw cmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCi0KLQotIyBDaGVjayB3aGV0aGVyIC0td2l0aC1saWJt cGZyLXByZWZpeCB3YXMgZ2l2ZW4uCi1pZiB0ZXN0ICIke3dpdGhfbGlibXBmcl9wcmVmaXgrc2V0 fSIgPSBzZXQ7IHRoZW4gOgotICB3aXRodmFsPSR3aXRoX2xpYm1wZnJfcHJlZml4OwotICAgIGlm IHRlc3QgIlgkd2l0aHZhbCIgPSAiWG5vIjsgdGhlbgotICAgICAgdXNlX2FkZGl0aW9uYWw9bm8K LSAgICBlbHNlCi0gICAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlgiOyB0aGVuCi0KLSAgYWNs X3NhdmVfcHJlZml4PSIkcHJlZml4IgotICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgotICBh Y2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgotICBleGVjX3ByZWZpeD0iJGFjbF9m aW5hbF9leGVjX3ByZWZpeCIKLQotICAgICAgICAgIGV2YWwgYWRkaXRpb25hbF9pbmNsdWRlZGly PVwiJGluY2x1ZGVkaXJcIgotICAgICAgICAgIGV2YWwgYWRkaXRpb25hbF9saWJkaXI9XCIkbGli ZGlyXCIKLQotICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgotICBwcmVmaXg9 IiRhY2xfc2F2ZV9wcmVmaXgiCi0KLSAgICAgIGVsc2UKLSAgICAgICAgYWRkaXRpb25hbF9pbmNs dWRlZGlyPSIkd2l0aHZhbC9pbmNsdWRlIgotICAgICAgICBhZGRpdGlvbmFsX2xpYmRpcj0iJHdp dGh2YWwvbGliIgotICAgICAgZmkKLSAgICBmaQotCi1maQotCi0KLSMgQ2hlY2sgd2hldGhlciAt LXdpdGgtbGlibXBmci10eXBlIHdhcyBnaXZlbi4KLWlmIHRlc3QgIiR7d2l0aF9saWJtcGZyX3R5 cGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgotICB3aXRodmFsPSR3aXRoX2xpYm1wZnJfdHlwZTsgIHdp dGhfbGlibXBmcl90eXBlPSR3aXRodmFsCi1lbHNlCi0gICB3aXRoX2xpYm1wZnJfdHlwZT1hdXRv Ci1maQotCi0gIGxpYl90eXBlPWBldmFsIGVjaG8gXCR3aXRoX2xpYm1wZnJfdHlwZWAKLQotICAg ICAgTElCTVBGUj0KLSAgTFRMSUJNUEZSPQotICBJTkNNUEZSPQotICBycGF0aGRpcnM9Ci0gIGx0 cnBhdGhkaXJzPQotICBuYW1lc19hbHJlYWR5X2hhbmRsZWQ9Ci0gIG5hbWVzX25leHRfcm91bmQ9 J21wZnIgZ21wJwotICB3aGlsZSB0ZXN0IC1uICIkbmFtZXNfbmV4dF9yb3VuZCI7IGRvCi0gICAg bmFtZXNfdGhpc19yb3VuZD0iJG5hbWVzX25leHRfcm91bmQiCi0gICAgbmFtZXNfbmV4dF9yb3Vu ZD0KLSAgICBmb3IgbmFtZSBpbiAkbmFtZXNfdGhpc19yb3VuZDsgZG8KLSAgICAgIGFscmVhZHlf aGFuZGxlZD0KLSAgICAgIGZvciBuIGluICRuYW1lc19hbHJlYWR5X2hhbmRsZWQ7IGRvCi0gICAg ICAgIGlmIHRlc3QgIiRuIiA9ICIkbmFtZSI7IHRoZW4KLSAgICAgICAgICBhbHJlYWR5X2hhbmRs ZWQ9eWVzCi0gICAgICAgICAgYnJlYWsKLSAgICAgICAgZmkKLSAgICAgIGRvbmUKLSAgICAgIGlm IHRlc3QgLXogIiRhbHJlYWR5X2hhbmRsZWQiOyB0aGVuCi0gICAgICAgIG5hbWVzX2FscmVhZHlf aGFuZGxlZD0iJG5hbWVzX2FscmVhZHlfaGFuZGxlZCAkbmFtZSIKLSAgICAgICAgICAgICAgICAg ICAgICAgIHVwcGVybmFtZT1gZWNobyAiJG5hbWUiIHwgc2VkIC1lICd5fGFiY2RlZmdoaWprbG1u b3BxcnN0dXZ3eHl6Li8tfEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaX19ffCdgCi0gICAgICAg IGV2YWwgdmFsdWU9XCJcJEhBVkVfTElCJHVwcGVybmFtZVwiCi0gICAgICAgIGlmIHRlc3QgLW4g IiR2YWx1ZSI7IHRoZW4KLSAgICAgICAgICBpZiB0ZXN0ICIkdmFsdWUiID0geWVzOyB0aGVuCi0g ICAgICAgICAgICBldmFsIHZhbHVlPVwiXCRMSUIkdXBwZXJuYW1lXCIKLSAgICAgICAgICAgIHRl c3QgLXogIiR2YWx1ZSIgfHwgTElCTVBGUj0iJHtMSUJNUEZSfSR7TElCTVBGUjorIH0kdmFsdWUi Ci0gICAgICAgICAgICBldmFsIHZhbHVlPVwiXCRMVExJQiR1cHBlcm5hbWVcIgotICAgICAgICAg ICAgdGVzdCAteiAiJHZhbHVlIiB8fCBMVExJQk1QRlI9IiR7TFRMSUJNUEZSfSR7TFRMSUJNUEZS OisgfSR2YWx1ZSIKLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6Ci0gICAgICAgICAgZmkKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm91bmRfZGlyPQotICAgICAgICAgIGZvdW5kX2xhPQotICAgICAgICAgIGZv dW5kX3NvPQotICAgICAgICAgIGZvdW5kX2E9Ci0gICAgICAgICAgaWYgdGVzdCAkdXNlX2FkZGl0 aW9uYWwgPSB5ZXM7IHRoZW4KLSAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYmV4dCIgJiYg dGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRzaGxpYmV4dCIgJiYgdGVzdCB4 JGxpYl90eXBlICE9IHhzdGF0aWM7IHRoZW4KLSAgICAgICAgICAgICAgZm91bmRfZGlyPSIkYWRk aXRpb25hbF9saWJkaXIiCi0gICAgICAgICAgICAgIGZvdW5kX3NvPSIkYWRkaXRpb25hbF9saWJk aXIvbGliJG5hbWUuJHNobGliZXh0IgotICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRp b25hbF9saWJkaXIvbGliJG5hbWUubGEiOyB0aGVuCi0gICAgICAgICAgICAgICAgZm91bmRfbGE9 IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSIKLSAgICAgICAgICAgICAgZmkKLSAgICAg ICAgICAgIGVsaWYgdGVzdCB4JGxpYl90eXBlICE9IHhzaGFyZWQ7IHRoZW4KLSAgICAgICAgICAg ICAgaWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRsaWJleHQiOyB0aGVu Ci0gICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkYWRkaXRpb25hbF9saWJkaXIiCi0gICAgICAg ICAgICAgICAgZm91bmRfYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRsaWJleHQiCi0g ICAgICAgICAgICAgICAgaWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxh IjsgdGhlbgotICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRhZGRpdGlvbmFsX2xpYmRpci9s aWIkbmFtZS5sYSIKLSAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICBmaQotICAgICAg ICAgICAgZmkKLSAgICAgICAgICBmaQotICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiA9 ICJYIjsgdGhlbgotICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCTVBGUjsgZG8K LQotICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9maW5hbF9wcmVm aXgiCi0gIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCi0gIGV4ZWNfcHJlZml4 PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgotICBldmFsIHg9XCIkeFwiCi0gIGV4ZWNfcHJlZml4 PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKLQot ICAgICAgICAgICAgICBjYXNlICIkeCIgaW4KLSAgICAgICAgICAgICAgICAtTCopCi0gICAgICAg ICAgICAgICAgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKLSAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYmV4dCIgJiYgdGVzdCAtZiAiJGRpci9saWIkbmFt ZS4kc2hsaWJleHQiICYmIHRlc3QgeCRsaWJfdHlwZSAhPSB4c3RhdGljOyB0aGVuCi0gICAgICAg ICAgICAgICAgICAgIGZvdW5kX2Rpcj0iJGRpciIKLSAgICAgICAgICAgICAgICAgICAgZm91bmRf c289IiRkaXIvbGliJG5hbWUuJHNobGliZXh0IgotICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0 IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgIGZvdW5k X2xhPSIkZGlyL2xpYiRuYW1lLmxhIgotICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAg ICAgICAgICAgZWxpZiB0ZXN0IHgkbGliX3R5cGUgIT0geHNoYXJlZDsgdGhlbgotICAgICAgICAg ICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLiRsaWJleHQiOyB0aGVuCi0gICAg ICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkZGlyIgotICAgICAgICAgICAgICAgICAgICAg IGZvdW5kX2E9IiRkaXIvbGliJG5hbWUuJGxpYmV4dCIKLSAgICAgICAgICAgICAgICAgICAgICBp ZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAg ICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEiCi0gICAgICAgICAgICAgICAgICAgICAgZmkK LSAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAg ICAgICAgICA7OwotICAgICAgICAgICAgICBlc2FjCi0gICAgICAgICAgICAgIGlmIHRlc3QgIlgk Zm91bmRfZGlyIiAhPSAiWCI7IHRoZW4KLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAg ICAgICBmaQotICAgICAgICAgICAgZG9uZQotICAgICAgICAgIGZpCi0gICAgICAgICAgaWYgdGVz dCAiWCRmb3VuZF9kaXIiICE9ICJYIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgTFRM SUJNUEZSPSIke0xUTElCTVBGUn0ke0xUTElCTVBGUjorIH0tTCRmb3VuZF9kaXIgLWwkbmFtZSIK LSAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfc28iICE9ICJYIjsgdGhlbgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICIk ZW5hYmxlX3JwYXRoIiA9IG5vIHx8IHRlc3QgIlgkZm91bmRfZGlyIiA9ICJYL3Vzci9saWIiOyB0 aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQk1QRlI9IiR7TElCTVBGUn0k e0xJQk1QRlI6KyB9JGZvdW5kX3NvIgotICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGhhdmVpdD0KLSAgICAgICAgICAgICAgICBmb3IgeCBpbiAkbHRycGF0aGRpcnM7 IGRvCi0gICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91bmRfZGlyIjsgdGhl bgotICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCi0gICAgICAgICAgICAgICAgICAgIGJy ZWFrCi0gICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgIGRvbmUKLSAgICAgICAg ICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgotICAgICAgICAgICAgICAgICAgbHRy cGF0aGRpcnM9IiRsdHJwYXRoZGlycyAkZm91bmRfZGlyIgotICAgICAgICAgICAgICAgIGZpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3Qi ID0geWVzOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMSUJNUEZSPSIke0xJQk1QRlJ9JHtMSUJNUEZSOisgfSRmb3VuZF9zbyIKLSAg ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYyIgJiYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRo ZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExJQk1QRlI9IiR7TElCTVBGUn0ke0xJQk1QRlI6KyB9JGZvdW5kX3NvIgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2 ZWl0PQotICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkcnBhdGhkaXJzOyBkbwotICAgICAg ICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRmb3VuZF9kaXIiOyB0aGVuCi0gICAg ICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCi0gICAgICAgICAgICAgICAgICAgICAgICBi cmVhawotICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgICAgIGRvbmUK LSAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KLSAgICAgICAg ICAgICAgICAgICAgICBycGF0aGRpcnM9IiRycGF0aGRpcnMgJGZvdW5kX2RpciIKLSAgICAgICAg ICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGF2ZWl0PQotICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTElC TVBGUjsgZG8KLQotICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9m aW5hbF9wcmVmaXgiCi0gIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCi0gIGV4 ZWNfcHJlZml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgotICBldmFsIHg9XCIkeFwiCi0gIGV4 ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9zYXZlX3By ZWZpeCIKLQotICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWC1MJGZvdW5k X2RpciI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKLSAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAg ICAgICAgICAgICAgZG9uZQotICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0 IjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgIExJQk1QRlI9IiR7TElCTVBGUn0ke0xJQk1Q RlI6KyB9LUwkZm91bmRfZGlyIgotICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAg ICAgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMSUJNUEZSPSIke0xJQk1QRlJ9JHtMSUJNUEZSOisgfSRm b3VuZF9zbyIKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJNUEZSPSIke0xJQk1Q RlJ9JHtMSUJNUEZSOisgfS1sJG5hbWUiCi0gICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgIGZpCi0gICAg ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfYSIgIT0gIlgiOyB0 aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQk1QRlI9IiR7TElCTVBGUn0k e0xJQk1QRlI6KyB9JGZvdW5kX2EiCi0gICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQk1QRlI9IiR7TElCTVBGUn0ke0xJ Qk1QRlI6KyB9LUwkZm91bmRfZGlyIC1sJG5hbWUiCi0gICAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICBmaQotICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pbmNsdWRlZGlyPQot ICAgICAgICAgICAgY2FzZSAiJGZvdW5kX2RpciIgaW4KLSAgICAgICAgICAgICAgKi9saWIgfCAq L2xpYi8pCi0gICAgICAgICAgICAgICAgYmFzZWRpcj1gZWNobyAiWCRmb3VuZF9kaXIiIHwgc2Vk IC1lICdzLF5YLCwnIC1lICdzLC9saWIvKiQsLCdgCi0gICAgICAgICAgICAgICAgYWRkaXRpb25h bF9pbmNsdWRlZGlyPSIkYmFzZWRpci9pbmNsdWRlIgotICAgICAgICAgICAgICAgIDs7Ci0gICAg ICAgICAgICBlc2FjCi0gICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRp ciIgIT0gIlgiOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiICE9ICJYL3Vz ci9pbmNsdWRlIjsgdGhlbgotICAgICAgICAgICAgICAgIGhhdmVpdD0KLSAgICAgICAgICAgICAg ICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgPSAiWC91c3IvbG9jYWwvaW5jbHVk ZSI7IHRoZW4KLSAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRHQ0MiOyB0aGVuCi0gICAg ICAgICAgICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSAgICAgICAgICAgICAgICAgICAgICBs aW51eCopIGhhdmVpdD15ZXM7OwotICAgICAgICAgICAgICAgICAgICBlc2FjCi0gICAgICAgICAg ICAgICAgICBmaQotICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgaWYgdGVzdCAt eiAiJGhhdmVpdCI7IHRoZW4KLSAgICAgICAgICAgICAgICAgIGZvciB4IGluICRDUFBGTEFHUyAk SU5DTVBGUjsgZG8KLQotICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCi0gIHByZWZpeD0iJGFj bF9maW5hbF9wcmVmaXgiCi0gIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCi0g IGV4ZWNfcHJlZml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgotICBldmFsIHg9XCIkeFwiCi0g IGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9zYXZl X3ByZWZpeCIKLQotICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtSSRhZGRp dGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXll cwotICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgIGZpCi0g ICAgICAgICAgICAgICAgICBkb25lCi0gICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2 ZWl0IjsgdGhlbgotICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9p bmNsdWRlZGlyIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJTkNNUEZSPSIke0lOQ01QRlJ9JHtJTkNNUEZSOisgfS1JJGFkZGl0aW9uYWxfaW5jbHVk ZWRpciIKLSAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgIGZpCi0gICAg ICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZm91bmRfbGEiOyB0aGVuCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVfbGliZGly PSIkbGliZGlyIgotICAgICAgICAgICAgICBjYXNlICIkZm91bmRfbGEiIGluCi0gICAgICAgICAg ICAgICAgKi8qIHwgKlxcKikgLiAiJGZvdW5kX2xhIiA7OwotICAgICAgICAgICAgICAgICopIC4g Ii4vJGZvdW5kX2xhIiA7OwotICAgICAgICAgICAgICBlc2FjCi0gICAgICAgICAgICAgIGxpYmRp cj0iJHNhdmVfbGliZGlyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBkZXAgaW4g JGRlcGVuZGVuY3lfbGliczsgZG8KLSAgICAgICAgICAgICAgICBjYXNlICIkZGVwIiBpbgotICAg ICAgICAgICAgICAgICAgLUwqKQotICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2xpYmRp cj1gZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzL15YLUwvLydgCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIg IT0gIlgvdXNyL2xpYiI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9Ci0gICAg ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgPSAiWC91c3Iv bG9jYWwvbGliIjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJEdD QyI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbnV4KikgaGF2ZWl0PXllczs7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgIGVzYWMKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2 ZWl0IjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQotICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExJQk1QRlI7IGRvCi0KLSAgYWNsX3NhdmVf cHJlZml4PSIkcHJlZml4IgotICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgotICBhY2xfc2F2 ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgotICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9l eGVjX3ByZWZpeCIKLSAgZXZhbCB4PVwiJHhcIgotICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4 ZWNfcHJlZml4IgotICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCi0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVu Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAg ICAgICAgICAgICAgICAgICBkb25lCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16 ICIkaGF2ZWl0IjsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIk YWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExJQk1QRlI9IiR7TElCTVBGUn0ke0xJQk1QRlI6KyB9 LUwkYWRkaXRpb25hbF9saWJkaXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAg ICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQot ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCTVBGUjsgZG8K LQotICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9maW5hbF9wcmVm aXgiCi0gIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCi0gIGV4ZWNfcHJlZml4 PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgotICBldmFsIHg9XCIkeFwiCi0gIGV4ZWNfcHJlZml4 PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCi0gIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKLQot ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtTCRhZGRpdGlvbmFs X2xpYmRpciI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgZmkKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgICAgICAgICAg ICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAg IGlmIHRlc3QgLWQgIiRhZGRpdGlvbmFsX2xpYmRpciI7IHRoZW4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRMSUJNUEZSPSIke0xUTElC TVBGUn0ke0xUTElCTVBGUjorIH0tTCRhZGRpdGlvbmFsX2xpYmRpciIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAg ICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAg OzsKLSAgICAgICAgICAgICAgICAgIC1SKikKLSAgICAgICAgICAgICAgICAgICAgZGlyPWBlY2hv ICJYJGRlcCIgfCBzZWQgLWUgJ3MvXlgtUi8vJ2AKLSAgICAgICAgICAgICAgICAgICAgaWYgdGVz dCAiJGVuYWJsZV9ycGF0aCIgIT0gbm87IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KLSAgICAgICAg ICAgICAgICAgICAgICBmb3IgeCBpbiAkcnBhdGhkaXJzOyBkbwotICAgICAgICAgICAgICAgICAg ICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYJGRpciI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgaGF2ZWl0PXllcwotICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAg ICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAgICBkb25lCi0gICAgICAg ICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KLSAgICAgICAgICAgICAg ICAgICAgICAgIHJwYXRoZGlycz0iJHJwYXRoZGlycyAkZGlyIgotICAgICAgICAgICAgICAgICAg ICAgIGZpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBoYXZlaXQ9Ci0gICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4g JGx0cnBhdGhkaXJzOyBkbwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9 ICJYJGRpciI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcwotICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAgICAgZmkK LSAgICAgICAgICAgICAgICAgICAgICBkb25lCi0gICAgICAgICAgICAgICAgICAgICAgaWYgdGVz dCAteiAiJGhhdmVpdCI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgIGx0cnBhdGhkaXJz PSIkbHRycGF0aGRpcnMgJGRpciIKLSAgICAgICAgICAgICAgICAgICAgICBmaQotICAgICAgICAg ICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICAgICA7OwotICAgICAgICAgICAgICAgICAg LWwqKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX25leHRf cm91bmQ9IiRuYW1lc19uZXh0X3JvdW5kICJgZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzL15YLWwv LydgCi0gICAgICAgICAgICAgICAgICAgIDs7Ci0gICAgICAgICAgICAgICAgICAqLmxhKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lc19uZXh0X3JvdW5kPSIkbmFtZXNfbmV4dF9yb3VuZCAi YGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncyxeWC4qLywsJyAtZSAncyxebGliLCwnIC1lICdzLFwu bGEkLCwnYAotICAgICAgICAgICAgICAgICAgICA7OwotICAgICAgICAgICAgICAgICAgKikKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJNUEZSPSIke0xJQk1QRlJ9 JHtMSUJNUEZSOisgfSRkZXAiCi0gICAgICAgICAgICAgICAgICAgIExUTElCTVBGUj0iJHtMVExJ Qk1QRlJ9JHtMVExJQk1QRlI6KyB9JGRlcCIKLSAgICAgICAgICAgICAgICAgICAgOzsKLSAgICAg ICAgICAgICAgICBlc2FjCi0gICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgIGZpCi0gICAg ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgdGVzdCAieCRsaWJfdHlwZSIgPSAieGF1dG8iIHx8IHRlc3QgIngk bGliX3R5cGUiID0gInhzaGFyZWQiOyB0aGVuCi0gICAgICAgICAgICAgIExJQk1QRlI9IiR7TElC TVBGUn0ke0xJQk1QRlI6KyB9LWwkbmFtZSIKLSAgICAgICAgICAgICAgTFRMSUJNUEZSPSIke0xU TElCTVBGUn0ke0xUTElCTVBGUjorIH0tbCRuYW1lIgotICAgICAgICAgICAgZWxzZQotICAgICAg ICAgICAgICBMSUJNUEZSPSIke0xJQk1QRlJ9JHtMSUJNUEZSOisgfS1sOmxpYiRuYW1lLiRsaWJl eHQiCi0gICAgICAgICAgICAgIExUTElCTVBGUj0iJHtMVExJQk1QRlJ9JHtMVExJQk1QRlI6KyB9 LWw6bGliJG5hbWUuJGxpYmV4dCIKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAgZmkKLSAgICAg ICAgZmkKLSAgICAgIGZpCi0gICAgZG9uZQotICBkb25lCi0gIGlmIHRlc3QgIlgkcnBhdGhkaXJz IiAhPSAiWCI7IHRoZW4KLSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciI7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgIGFsbGRpcnM9Ci0gICAgICBmb3IgZm91 bmRfZGlyIGluICRycGF0aGRpcnM7IGRvCi0gICAgICAgIGFsbGRpcnM9IiR7YWxsZGlyc30ke2Fs bGRpcnM6KyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yfSRmb3VuZF9kaXIiCi0gICAgICBkb25l Ci0gICAgICAgICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCi0gICAgICBsaWJkaXI9IiRh bGxkaXJzIgotICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgot ICAgICAgbGliZGlyPSIkYWNsX3NhdmVfbGliZGlyIgotICAgICAgTElCTVBGUj0iJHtMSUJNUEZS fSR7TElCTVBGUjorIH0kZmxhZyIKLSAgICBlbHNlCi0gICAgICAgICAgICBmb3IgZm91bmRfZGly IGluICRycGF0aGRpcnM7IGRvCi0gICAgICAgIGFjbF9zYXZlX2xpYmRpcj0iJGxpYmRpciIKLSAg ICAgICAgbGliZGlyPSIkZm91bmRfZGlyIgotICAgICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY1wiCi0gICAgICAgIGxpYmRpcj0iJGFjbF9zYXZlX2xpYmRpciIKLSAg ICAgICAgTElCTVBGUj0iJHtMSUJNUEZSfSR7TElCTVBGUjorIH0kZmxhZyIKLSAgICAgIGRvbmUK LSAgICBmaQotICBmaQotICBpZiB0ZXN0ICJYJGx0cnBhdGhkaXJzIiAhPSAiWCI7IHRoZW4KLSAg ICAgICAgICAgIGZvciBmb3VuZF9kaXIgaW4gJGx0cnBhdGhkaXJzOyBkbwotICAgICAgTFRMSUJN UEZSPSIke0xUTElCTVBGUn0ke0xUTElCTVBGUjorIH0tUiRmb3VuZF9kaXIiCi0gICAgZG9uZQot ICBmaQotCi0KLSAgICAgICAgYWNfc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgotCi0gIGZvciBl bGVtZW50IGluICRJTkNNUEZSOyBkbwotICAgIGhhdmVpdD0KLSAgICBmb3IgeCBpbiAkQ1BQRkxB R1M7IGRvCi0KLSAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgotICBwcmVmaXg9IiRhY2xfZmlu YWxfcHJlZml4IgotICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgotICBleGVj X3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKLSAgZXZhbCB4PVwiJHhcIgotICBleGVj X3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgotICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVm aXgiCi0KLSAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRlbGVtZW50IjsgdGhlbgotICAgICAgICBo YXZlaXQ9eWVzCi0gICAgICAgIGJyZWFrCi0gICAgICBmaQotICAgIGRvbmUKLSAgICBpZiB0ZXN0 IC16ICIkaGF2ZWl0IjsgdGhlbgotICAgICAgQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9JHtDUFBGTEFH UzorIH0kZWxlbWVudCIKLSAgICBmaQotICBkb25lCi0KLQotICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBsaWJtcGZyIiA+JjUKLSRhc19lY2hv X24gImNoZWNraW5nIGZvciBsaWJtcGZyLi4uICIgPiY2OyB9Ci1pZiAke2FjX2N2X2xpYm1wZnIr On0gZmFsc2U7IHRoZW4gOgotICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotZWxzZQotCi0g ICAgYWNfc2F2ZV9MSUJTPSIkTElCUyIKLSAgICBMSUJTPSIkTElCUyAkTElCTVBGUiIKLSAgICBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRl ZnMuaC4gICovCi0jaW5jbHVkZSA8bXBmci5oPgotaW50Ci1tYWluICgpCi17Ci1tcGZyX2V4cF90 IGV4cDsgbXBmcl90IHg7Ci0JCQkgbXBmcl9mcmV4cCAoJmV4cCwgeCwgeCwgTVBGUl9STkROKTsK LSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotaWYgYWNfZm5fY190cnlfbGluayAiJExJTkVO TyI7IHRoZW4gOgotICBhY19jdl9saWJtcGZyPXllcwotZWxzZQotICBhY19jdl9saWJtcGZyPW5v Ci1maQotcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0gICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSAgICBMSUJTPSIkYWNfc2F2ZV9M SUJTIgotCi1maQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRhY19jdl9saWJtcGZyIiA+JjUKLSRhc19lY2hvICIkYWNfY3ZfbGlibXBmciIgPiY2OyB9 Ci0gIGlmIHRlc3QgIiRhY19jdl9saWJtcGZyIiA9IHllczsgdGhlbgotICAgIEhBVkVfTElCTVBG Uj15ZXMKLQotJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJNUEZSIDEiID4+Y29uZmRlZnMuaAot Ci0gICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBo b3cgdG8gbGluayB3aXRoIGxpYm1wZnIiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRv IGxpbmsgd2l0aCBsaWJtcGZyLi4uICIgPiY2OyB9Ci0gICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRMSUJNUEZSIiA+JjUKLSRhc19lY2hvICIkTElC TVBGUiIgPiY2OyB9Ci0gIGVsc2UKLSAgICBIQVZFX0xJQk1QRlI9bm8KLSAgICAgICAgICAgIENQ UEZMQUdTPSIkYWNfc2F2ZV9DUFBGTEFHUyIKLSAgICBMSUJNUEZSPQotICAgIExUTElCTVBGUj0K LSAgZmkKLQotCi0KLQotCi0KLSAgaWYgdGVzdCAiJEhBVkVfTElCTVBGUiIgIT0geWVzOyB0aGVu Ci0gICAgaWYgdGVzdCAiJHdpdGhfbXBmciIgPSB5ZXM7IHRoZW4KLSAgICAgIGFzX2ZuX2Vycm9y ICQ/ICJNUEZSIGlzIG1pc3Npbmcgb3IgdW51c2FibGUiICIkTElORU5PIiA1Ci0gICAgZWxzZQot ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBN UEZSIGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxh YmxlLiIgPiY1Ci0kYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBNUEZSIGlzIG1pc3Npbmcgb3Ig dW51c2FibGU7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KLSAgICBm aQogICBmaQogZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkSEFWRV9MSUJNUEZSIiA+JjUKKyRhc19lY2hvICIkSEFWRV9MSUJNUEZSIiA+JjY7IH0K IAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogIyBDaGVjayBmb3IgbGlicHl0aG9uLiAgIwpk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKaW5kZXggMjg3 MDNkNy4uNjVlNDRkOSAxMDA2NDQKLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYworKysgYi9nZGIvY29u ZmlndXJlLmFjCkBAIC02ODMsMzUgKzY4MywxMDMgQEAgZWxzZQogICBmaQogZmkKIAorQUNfQVJH X1dJVEgoZ21wX2luY2x1ZGUsCisgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ21wLWluY2x1ZGU9 RElSXSwgW0dNUCBpbmNsdWRlIGRpcmVjdG9yeV0pLAorICBbQ1BQRkxBR1M9IiRDUFBGTEFHUyAt SSR3aXRodmFsIl0pCitBQ19BUkdfV0lUSChnbXBfbGliLAorICBBU19IRUxQX1NUUklORyhbLS13 aXRoLWdtcC1saWI9RElSXSwgW0dNUCBsaWIgZGlyZWN0b3J5XSksCisgIFtMSUJHTVA9Ii1MJHdp dGh2YWwiXSkKK0FDX0FSR19XSVRIKGdtcCwKKyAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1nbXA9 RElSXSwgW0dNUCBpbnN0YWxsIGRpcmVjdG9yeV0pLCBbCisgIGlmIHRlc3QgLXogIiR3aXRoX2dt cF9saWIiICYmIHRlc3QgLXogIiR3aXRoX2dtcF9pbmNsdWRlIiA7IHRoZW4KKyAgICBDUFBGTEFH Uz0iJENQUEZMQUdTIC1JJHdpdGh2YWwvaW5jbHVkZSIKKyAgICBMSUJHTVA9Ii1MJHdpdGh2YWwv bGliIgorICBlbHNlCisgICAgQUNfTVNHX0ZBSUxVUkUoW0RvIG5vdCB1c2UgLS13aXRoLWdtcCBh bmQgLS13aXRoLWdtcC1pbmNsdWRlLy0td2l0aC1nbXAtbGliIG9wdGlvbnMgc2ltdWx0YW5lb3Vz bHkuXSkKKyAgZmkKK10pCisKK0FDX01TR19DSEVDS0lORyhbZm9yIEdNUF0pCiAjIFZlcmlmeSB0 aGF0IHdlIGhhdmUgYSB1c2FibGUgR01QIGxpYnJhcnkuCi1BQ19MSUJfSEFWRV9MSU5LRkxBR1Mo W2dtcF0sIFtdLCBbI2luY2x1ZGUgPGdtcC5oPl0sCi0gICAgICAgICAgICAgICAgICAgICAgW21w el90IG47Ci0gICAgICAgICAgICAgICAgICAgICAgIG1wel9pbml0IChuKTtdKQorc2F2ZV9MSUJT PSRMSUJTCitMSUJTPSIkTElCUyAkTElCR01QIC1sZ21wIgorQUNfVFJZX0xJTksoWyNpbmNsdWRl IDxnbXAuaD5dLAorCSAgICBbbXB6X3QgbjsKKwkgICAgIG1wel9pbml0IChuKTtdLAorCSAgICBb SEFWRV9MSUJHTVA9eWVzXSwgW0hBVkVfTElCR01QPW5vXSkKK0xJQlM9JHNhdmVfTElCUwogaWYg dGVzdCAiJEhBVkVfTElCR01QIiAhPSB5ZXM7IHRoZW4KICAgQUNfTVNHX0VSUk9SKFtHTVAgaXMg bWlzc2luZyBvciB1bnVzYWJsZV0pCiBmaQorTElCR01QPSIkTElCR01QIC1sZ21wIgorQUNfU1VC U1QoTElCR01QKQorQUNfREVGSU5FKEhBVkVfTElCR01QLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZl IHRoZSBHTVAgbGlicmFyeS5dKQorQUNfTVNHX1JFU1VMVChbJEhBVkVfTElCR01QXSkKIAorQUNf QVJHX1dJVEgobGlibXBmcl9wcmVmaXgsCisgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtbGlibXBm ci1wcmVmaXg9RElSXSwgW3RoaXMgb3B0aW9uIGhhcyBiZWVuIERFUFJFQ0FURURdKSwgWworICBp ZiB0ZXN0IC16ICIkd2l0aF9tcGZyIiA7IHRoZW4KKyAgICB3aXRoX21wZnI9ImF1dG8iCisgIGZp CisgIGlmIHRlc3QgeCIkd2l0aF9tcGZyIiAhPSB4YXV0byAmJiB0ZXN0IHgiJHdpdGhfbXBmciIg IT0geHllcyAmJiB0ZXN0IHgiJHdpdGhfbXBmciIgIT0geG5vIDsgdGhlbgorICAgIEFDX01TR19G QUlMVVJFKFtEbyBub3QgdXNlIC0td2l0aC1tcGZyPURJUiBhbmQgLS13aXRoLWxpYm1wZnItcHJl Zml4PURJUiBvcHRpb25zIHNpbXVsdGFuZW91c2x5Ll0pCisgIGZpCitdKQorc2F2ZV9DUFBGTEFH Uz0kQ1BQRkxBR1MKK0FDX0FSR19XSVRIKG1wZnJfaW5jbHVkZSwKKyAgQVNfSEVMUF9TVFJJTkco Wy0td2l0aC1tcGZyLWluY2x1ZGU9RElSXSwgW01QRlIgaW5jbHVkZSBkaXJlY3RvcnldKSwKKyAg W0NQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkd2l0aHZhbCJdKQorQUNfQVJHX1dJVEgobXBmcl9saWIs CisgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtbXBmci1saWI9RElSXSwgW01QRlIgbGliIGRpcmVj dG9yeV0pLAorICBbTElCTVBGUj0iLUwkd2l0aHZhbCJdKQogQUNfQVJHX1dJVEgobXBmciwKLSAg QVNfSEVMUF9TVFJJTkcoWy0td2l0aC1tcGZyXSwgW2luY2x1ZGUgTVBGUiBzdXBwb3J0IChhdXRv L3llcy9ubyldKSwKLSAgW10sIFt3aXRoX21wZnI9YXV0b10pCi1BQ19NU0dfQ0hFQ0tJTkcoW3do ZXRoZXIgdG8gdXNlIE1QRlJdKQotQUNfTVNHX1JFU1VMVChbJHdpdGhfbXBmcl0pCisgIEFTX0hF TFBfU1RSSU5HKFstLXdpdGgtbXBmcj1ESVJdLAorCQkgW01GUFIgaW5zdGFsbCBkaXJlY3Rvcnkg KG9yIGF1dG8veWVzL25vKV0pLCBbCisgIGlmIHRlc3QgLW4gIiR3aXRoX2xpYm1wZnJfcHJlZml4 IiA7IHRoZW4KKyAgICB3aXRodmFsPSR3aXRoX2xpYm1wZnJfcHJlZml4CisgIGZpCisgIGlmIHRl c3QgLXogIiR3aXRoX21wZnJfbGliIiAmJiB0ZXN0IC16ICIkd2l0aF9tcGZyX2luY2x1ZGUiIDsg dGhlbgorICAgIGlmIHRlc3QgeCIkd2l0aHZhbCIgIT0geGF1dG8gJiYgdGVzdCB4IiR3aXRodmFs IiAhPSB4eWVzICYmIHRlc3QgeCIkd2l0aHZhbCIgIT0geG5vIDsgdGhlbgorICAgICAgQ1BQRkxB R1M9IiRDUFBGTEFHUyAtSSR3aXRodmFsL2luY2x1ZGUiCisgICAgICBMSUJNUEZSPSItTCR3aXRo dmFsL2xpYiIKKyAgICAgIGlmIHRlc3QgLXogIiR3aXRoX2xpYm1wZnJfcHJlZml4IiA7IHRoZW4K Kwl3aXRoX21wZnI9eWVzCisgICAgICBmaQorICAgIGZpCisgIGVsc2UKKyAgICBBQ19NU0dfRkFJ TFVSRShbRG8gbm90IHVzZSAtLXdpdGgtbXBmciBhbmQgLS13aXRoLW1wZnItaW5jbHVkZS8tLXdp dGgtbXBmci1saWIgb3B0aW9ucyBzaW11bHRhbmVvdXNseS5dKQorICBmaQorXSkKIAorQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIHRvIHVzZSBNUEZSXSkKIGlmIHRlc3QgIiR7d2l0aF9tcGZyfSIg PSBubzsgdGhlbgogICBBQ19NU0dfV0FSTihbTVBGUiBzdXBwb3J0IGRpc2FibGVkOyBzb21lIGZl YXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS5dKQogICBIQVZFX0xJQk1QRlI9bm8KKyAgTElCTVBG Uj0KKyAgQ1BQRkxBR1M9JHNhdmVfQ1BQRkxBR1MKIGVsc2UKLSAgQUNfTElCX0hBVkVfTElOS0ZM QUdTKFttcGZyXSwgW2dtcF0sIFsjaW5jbHVkZSA8bXBmci5oPl0sCi0JCQlbbXBmcl9leHBfdCBl eHA7IG1wZnJfdCB4OwotCQkJIG1wZnJfZnJleHAgKCZleHAsIHgsIHgsIE1QRlJfUk5ETik7XSkK KyAgc2F2ZV9MSUJTPSRMSUJTCisgIExJQlM9IiRMSUJTICRMSUJNUEZSIC1sbXBmciAkTElCR01Q IgorICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPG1wZnIuaD5dLAorCSAgICAgIFttcGZyX2V4cF90 IGV4cDsgbXBmcl90IHg7CisJICAgICAgIG1wZnJfZnJleHAgKCZleHAsIHgsIHgsIE1QRlJfUk5E Tik7XSwKKwkgICAgICBbSEFWRV9MSUJNUEZSPXllc10sIFtIQVZFX0xJQk1QRlI9bm9dKQorICBM SUJTPSRzYXZlX0xJQlMKICAgaWYgdGVzdCAiJEhBVkVfTElCTVBGUiIgIT0geWVzOyB0aGVuCiAg ICAgaWYgdGVzdCAiJHdpdGhfbXBmciIgPSB5ZXM7IHRoZW4KICAgICAgIEFDX01TR19FUlJPUihb TVBGUiBpcyBtaXNzaW5nIG9yIHVudXNhYmxlXSkKICAgICBlbHNlCiAgICAgICBBQ19NU0dfV0FS TihbTVBGUiBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2 YWlsYWJsZS5dKQogICAgIGZpCisgICAgTElCTVBGUj0KKyAgICBDUFBGTEFHUz0kc2F2ZV9DUFBG TEFHUworICBlbHNlCisgICAgTElCTVBGUj0iJExJQk1QRlIgLWxtcGZyIgorICAgIEFDX1NVQlNU KExJQk1QRlIpCisgICAgQUNfREVGSU5FKEhBVkVfTElCTVBGUiwgMSwgW0RlZmluZSBpZiB5b3Ug aGF2ZSB0aGUgTVBGUiBsaWJyYXJ5Ll0pCiAgIGZpCiBmaQorQUNfTVNHX1JFU1VMVChbJEhBVkVf TElCTVBGUl0pCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICMgQ2hlY2sgZm9yIGxpYnB5 dGhvbi4gICMKLS0gCjEuOS4xCgo= --------------804C753256BE51E38A92F861 Content-Type: text/x-patch; name="0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR-v2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR-v2.patch" RnJvbSBiN2NkMmViYjFmNTU1Mzk3ODg1Mjc5YTJhY2U2YmQ0NmNhNGY1NjQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdlciA8YmVybmQuZWRsaW5nZXJAaG90bWFp bC5kZT4KRGF0ZTogU3VuLCAxNSBOb3YgMjAyMCAxNTozNzoyMiArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIEVuYWJsZSBHREIgYnVpbGQgd2l0aCBpbi10cmVlIEdNUCBhbmQgTVBGUgoKV2l0aCB0aGlz IHBhdGNoIEdEQiBjYW4gYmUgYnVpbHQgd2l0aCBpbi10cmVlIEdNUCBhbmQvb3IKTVBGUi4gIFRo aXMgd29ya3MgYWxzbyBmb3IgY3Jvc3MtYnVpbGRzLgoKQWxsIHRoYXQgaXMgbmVlZGVkLCBpcyBh IHN5bS1saW5rIGluIHRoZSBzb3VyY2UgdHJlZSwKbGlrZSB0aGlzOgoKZ21wIC0+IC4uL2dtcC02 LjEuMAptcGZyIC0+IC4uL21wZnItMy4xLjQKCjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8 YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KCgkqIE1ha2VmaWxlLmRlZjogUHJlcGFyZSBmb3Ig R0RCIGJ1aWxkIHdpdGggaW50cmVlIEdNUC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgpn ZGI6CjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5k ZT4KCgkqIGNvbmZpZ3VyZS5hYzogRGV0ZWN0IGluLXRyZWUgR01QIGFuZCBNUEZSLgoJKiBjb25m aWd1cmU6IFJlZ2VuZXJhdGUuCgkqIFJFQURNRTogTWVudGlvbiAuL2NvbnRyaWIvZG93bmxvYWRf cHJlcmVxdWlzaXRlcy4KCmNvbnRyaWI6CjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8YmVy bmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KCgkqIGRvd25sb2FkX3ByZXJlcXVpc2l0ZXM6IE5ldyBo ZWxwZXIgc2NyaXB0LgoJKiBwcmVyZXF1aXNpdGVzLm1kNTogY2hlY2tzdW1zLgoJKiBwcmVyZXF1 aXNpdGVzLnNoYTUxMjogY2hlY2tzdW1zLgotLS0KIE1ha2VmaWxlLmRlZiAgICAgICAgICAgICAg ICAgICB8ICAgMiArCiBNYWtlZmlsZS5pbiAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogY29u dHJpYi9kb3dubG9hZF9wcmVyZXF1aXNpdGVzIHwgMjYzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBjb250cmliL3ByZXJlcXVpc2l0ZXMubWQ1ICAgICAgfCAgIDIg KwogY29udHJpYi9wcmVyZXF1aXNpdGVzLnNoYTUxMiAgIHwgICAyICsKIGdkYi9SRUFETUUgICAg ICAgICAgICAgICAgICAgICB8ICAxMiArKwogZ2RiL2NvbmZpZ3VyZSAgICAgICAgICAgICAgICAg IHwgIDIwICsrKy0KIGdkYi9jb25maWd1cmUuYWMgICAgICAgICAgICAgICB8ICAyMCArKystCiA4 IGZpbGVzIGNoYW5nZWQsIDMxNSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNzU1IGNvbnRyaWIvZG93bmxvYWRfcHJlcmVxdWlzaXRlcwogY3JlYXRlIG1vZGUg MTAwNjQ0IGNvbnRyaWIvcHJlcmVxdWlzaXRlcy5tZDUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250 cmliL3ByZXJlcXVpc2l0ZXMuc2hhNTEyCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuZGVmIGIvTWFr ZWZpbGUuZGVmCmluZGV4IDA4OWU3MGEuLmI2ODcyYzkgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmRl ZgorKysgYi9NYWtlZmlsZS5kZWYKQEAgLTM5MSw2ICszOTEsOCBAQCBkZXBlbmRlbmNpZXMgPSB7 IG1vZHVsZT1hbGwtaW50bDsgb249YWxsLWxpYmljb252OyB9OwogCiAvLyBIb3N0IG1vZHVsZXMg c3BlY2lmaWMgdG8gZ2RiLgogZGVwZW5kZW5jaWVzID0geyBtb2R1bGU9Y29uZmlndXJlLWdkYjsg b249YWxsLWludGw7IH07CitkZXBlbmRlbmNpZXMgPSB7IG1vZHVsZT1jb25maWd1cmUtZ2RiOyBv bj1hbGwtZ21wOyB9OworZGVwZW5kZW5jaWVzID0geyBtb2R1bGU9Y29uZmlndXJlLWdkYjsgb249 YWxsLW1wZnI7IH07CiBkZXBlbmRlbmNpZXMgPSB7IG1vZHVsZT1jb25maWd1cmUtZ2RiOyBvbj1j b25maWd1cmUtc2ltOyB9OwogZGVwZW5kZW5jaWVzID0geyBtb2R1bGU9Y29uZmlndXJlLWdkYjsg b249YWxsLWJmZDsgfTsKIGRlcGVuZGVuY2llcyA9IHsgbW9kdWxlPWNvbmZpZ3VyZS1nZGI7IG9u PWFsbC1nbnVsaWI7IH07CmRpZmYgLS1naXQgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCmlu ZGV4IGZlMzQxMzIuLmVhZDk0MzAgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmluCisrKyBiL01ha2Vm aWxlLmluCkBAIC01MjQ0OSw2ICs1MjQ0OSw4IEBAIGNvbmZpZ3VyZS1saWJjYzE6IG1heWJlLWNv bmZpZ3VyZS1nY2MKIGFsbC1saWJjYzE6IG1heWJlLWFsbC1nY2MKIGFsbC11dGlsczogbWF5YmUt YWxsLWxpYmliZXJ0eQogY29uZmlndXJlLWdkYjogbWF5YmUtYWxsLWludGwKK2NvbmZpZ3VyZS1n ZGI6IG1heWJlLWFsbC1nbXAKK2NvbmZpZ3VyZS1nZGI6IG1heWJlLWFsbC1tcGZyCiBjb25maWd1 cmUtZ2RiOiBtYXliZS1hbGwtYmZkCiBjb25maWd1cmUtZ2RiOiBtYXliZS1hbGwtbGliaWNvbnYK IGFsbC1nZGI6IG1heWJlLWFsbC1saWJpYmVydHkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZG93bmxv YWRfcHJlcmVxdWlzaXRlcyBiL2NvbnRyaWIvZG93bmxvYWRfcHJlcmVxdWlzaXRlcwpuZXcgZmls ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDA0MDMwCi0tLSAvZGV2L251bGwKKysrIGIv Y29udHJpYi9kb3dubG9hZF9wcmVyZXF1aXNpdGVzCkBAIC0wLDAgKzEsMjYzIEBACisjISAvYmlu L3NoCisjISAtKi0gY29kaW5nOnV0Zi04OyBtb2RlOnNoZWxsLXNjcmlwdDsgLSotCisKKyMgRG93 bmxvYWQgc29tZSBwcmVyZXF1aXNpdGVzIG5lZWRlZCBieSBHREIuCisjIFJ1biB0aGlzIGZyb20g dGhlIHRvcCBsZXZlbCBvZiB0aGUgR0RCIHNvdXJjZSB0cmVlIGFuZCB0aGUgR0RCIGJ1aWxkIHdp bGwgZG8KKyMgdGhlIHJpZ2h0IHRoaW5nLiAgUnVuIGl0IHdpdGggdGhlIGAtLWhlbHBgIG9wdGlv biBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyMKKyMgKEMpIDIwMTAtMjAyMCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAor IyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gU2VlIHRoZSBHTlUKKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUg aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy4KKworcHJvZ3JhbT0nZG93bmxvYWRfcHJlcmVx dWlzaXRlcycKK3ZlcnNpb249Jyh1bnZlcnNpb25lZCknCisKKyMgTUFJTlRBSU5FUlM6IElmIHlv dSB1cGRhdGUgdGhlIHBhY2thZ2UgdmVyc2lvbnMgYmVsb3csIHBsZWFzZQorIyByZW1lbWJlciB0 byBhbHNvIHVwZGF0ZSB0aGUgZmlsZXMgYGNvbnRyaWIvcHJlcmVxdWlzaXRlcy5zaGE1MTJgIGFu ZAorIyBgY29udHJpYi9wcmVyZXF1aXNpdGVzLm1kNWAgd2l0aCB0aGUgbmV3IGNoZWNrc3Vtcy4K KworZ21wPSdnbXAtNi4xLjAudGFyLmJ6MicKK21wZnI9J21wZnItMy4xLjQudGFyLmJ6MicKKwor YmFzZV91cmw9J2h0dHA6Ly9nY2MuZ251Lm9yZy9wdWIvZ2NjL2luZnJhc3RydWN0dXJlLycKKwor ZWNob19hcmNoaXZlcygpIHsKKyAgICBlY2hvICIke2dtcH0iCisgICAgZWNobyAiJHttcGZyfSIK K30KKwordmVyaWZ5PTEKK2ZvcmNlPTAKK09TPSQodW5hbWUpCisKK2Nhc2UgJE9TIGluCisgICJE YXJ3aW4ifCJGcmVlQlNEInwiRHJhZ29uRmx5InwiQUlYIikKKyAgICBjaGtzdW09J3NoYXN1bSAt YSA1MTIgLS1jaGVjaycKKyAgOzsKKyAgIk9wZW5CU0QiKQorICAgIGNoa3N1bT0nc2hhNTEyIC1j JworICA7OworICAqKQorICAgIGNoa3N1bT0nc2hhNTEyc3VtIC1jJworICA7OworZXNhYworCitp ZiB0eXBlIHdnZXQgPiAvZGV2L251bGwgOyB0aGVuCisgIGZldGNoPSd3Z2V0JworZWxzZQorICBm ZXRjaD0nY3VybCAtTE8nCitmaQorY2hrc3VtX2V4dGVuc2lvbj0nc2hhNTEyJworZGlyZWN0b3J5 PScuJworCitoZWxwdGV4dD0idXNhZ2U6ICR7cHJvZ3JhbX0gW09QVElPTi4uLl0KKworRG93bmxv YWRzIHNvbWUgcHJlcmVxdWlzaXRlcyBuZWVkZWQgYnkgR0RCLiAgUnVuIHRoaXMgZnJvbSB0aGUg dG9wIGxldmVsIG9mIHRoZQorR0RCIHNvdXJjZSB0cmVlIGFuZCB0aGUgR0RCIGJ1aWxkIHdpbGwg ZG8gdGhlIHJpZ2h0IHRoaW5nLgorCitUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGF2YWlsYWJs ZToKKworIC0tZGlyZWN0b3J5PURJUiAgZG93bmxvYWQgYW5kIHVucGFjayBwYWNrYWdlcyBpbnRv IERJUiBpbnN0ZWFkIG9mICcuJworIC0tZm9yY2UgICAgICAgICAgZG93bmxvYWQgYWdhaW4gb3Zl cndyaXRpbmcgZXhpc3RpbmcgcGFja2FnZXMKKyAtLW5vLWZvcmNlICAgICAgIGRvIG5vdCBkb3du bG9hZCBleGlzdGluZyBwYWNrYWdlcyBhZ2FpbiAoZGVmYXVsdCkKKyAtLXZlcmlmeSAgICAgICAg IHZlcmlmeSBwYWNrYWdlIGludGVncml0eSBhZnRlciBkb3dubG9hZCAoZGVmYXVsdCkKKyAtLW5v LXZlcmlmeSAgICAgIGRvbid0IHZlcmlmeSBwYWNrYWdlIGludGVncml0eQorIC0tc2hhNTEyICAg ICAgICAgdXNlIFNIQTUxMiBjaGVja3N1bSB0byB2ZXJpZnkgcGFja2FnZSBpbnRlZ3JpdHkgKGRl ZmF1bHQpCisgLS1tZDUgICAgICAgICAgICB1c2UgTUQ1IGNoZWNrc3VtIHRvIHZlcmlmeSBwYWNr YWdlIGludGVncml0eQorIC0taGVscCAgICAgICAgICAgc2hvdyB0aGlzIHRleHQgYW5kIGV4aXQK KyAtLXZlcnNpb24gICAgICAgIHNob3cgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorIgor Cit2ZXJzaW9udGV4dD0iJHtwcm9ncmFtfSAke3ZlcnNpb259CitDb3B5cmlnaHQgKEMpIDIwMjAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNl ZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTword2FycmFu dHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuIgorCitkaWUoKSB7CisgICAgZWNobyAiZXJyb3I6ICRAIiA+JjIKKyAgICBl eGl0IDEKK30KKworZm9yIGFyZyBpbiAiJEAiCitkbworICAgIGNhc2UgIiR7YXJnfSIgaW4KKyAg ICAgICAgLS1oZWxwKQorICAgICAgICAgICAgZWNobyAiJHtoZWxwdGV4dH0iCisgICAgICAgICAg ICBleGl0CisgICAgICAgICAgICA7OworICAgICAgICAtLXZlcnNpb24pCisgICAgICAgICAgICBl Y2hvICIke3ZlcnNpb250ZXh0fSIKKyAgICAgICAgICAgIGV4aXQKKyAgICAgICAgICAgIDs7Cisg ICAgZXNhYworZG9uZQordW5zZXQgYXJnCisKKyMgRW11bGF0ZSBMaW51eCdzICdtZDUgLS1jaGVj aycgb24gbWFjT1MKK21kNV9jaGVjaygpIHsKKyAgIyBTdG9yZSB0aGUgc3RhbmRhcmQgaW5wdXQ6 IGEgbGluZSBmcm9tIGNvbnRyaWIvcHJlcmVxdWlzaXRlcy5tZDU6CisgIG1kNV9jaGVja3N1bV9s aW5lPSQoY2F0IC0pCisgICMgR3JhYiB0aGUgdGV4dCBiZWZvcmUgdGhlIGZpcnN0IHNwYWNlCisg IG1kNV9jaGVja3N1bV9leHBlY3RlZD0iJHttZDVfY2hlY2tzdW1fbGluZSUlICp9IgorICAjIEdy YWIgdGhlIHRleHQgYWZ0ZXIgdGhlIGZpcnN0IHNwYWNlCisgIGZpbGVfdG9fY2hlY2s9IiR7bWQ1 X2NoZWNrc3VtX2xpbmUjIyogfSIKKyAgIyBDYWxjdWxhdGUgdGhlIG1kNSBjaGVja3N1bSBmb3Ig dGhlIGRvd25sb2FkZWQgZmlsZQorICBtZDVfY2hlY2tzdW1fb3V0cHV0PSQobWQ1IC1yICIke2Zp bGVfdG9fY2hlY2t9IikKKyAgIyBHcmFiIHRoZSB0ZXh0IGJlZm9yZSB0aGUgZmlyc3Qgc3BhY2UK KyAgbWQ1X2NoZWNrc3VtX2RldGVjdGVkPSIke21kNV9jaGVja3N1bV9vdXRwdXQlJSAqfSIKKyAg WyAiJHttZDVfY2hlY2tzdW1fZXhwZWN0ZWR9IiA9PSAiJHttZDVfY2hlY2tzdW1fZGV0ZWN0ZWR9 IiBdIFwKKyAgICB8fCBkaWUgIkNhbm5vdCB2ZXJpZnkgaW50ZWdyaXR5IG9mIHBvc3NpYmx5IGNv cnJ1cHRlZCBmaWxlICR7ZmlsZV90b19jaGVja30iCisgIGVjaG8gIiR7ZmlsZV90b19jaGVja306 IE9LIgorfQorCisKK2FyZ25leHQ9Citmb3IgYXJnIGluICIkQCIKK2RvCisgICAgaWYgWyAieCR7 YXJnbmV4dH0iID0geCBdCisgICAgdGhlbgorICAgICAgICBjYXNlICIke2FyZ30iIGluCisgICAg ICAgICAgICAtLWRpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICBhcmduZXh0PSdkaXJlY3Rvcnkn CisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgIC0tZGlyZWN0b3J5PSopCisgICAgICAg ICAgICAgICAgZGlyZWN0b3J5PSIke2FyZyMtLWRpcmVjdG9yeT19IgorICAgICAgICAgICAgICAg IDs7CisgICAgICAgICAgICAtLWZvcmNlKQorICAgICAgICAgICAgICAgIGZvcmNlPTEKKyAgICAg ICAgICAgICAgICA7OworICAgICAgICAgICAgLS1uby1mb3JjZSkKKyAgICAgICAgICAgICAgICBm b3JjZT0wCisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgIC0tdmVyaWZ5KQorICAgICAg ICAgICAgICAgIHZlcmlmeT0xCisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgIC0tbm8t dmVyaWZ5KQorICAgICAgICAgICAgICAgIHZlcmlmeT0wCisgICAgICAgICAgICAgICAgOzsKKyAg ICAgICAgICAgIC0tc2hhNTEyKQorICAgICAgICAgICAgICAgIGNhc2UgJE9TIGluCisgICAgICAg ICAgICAgICAgICAiRGFyd2luIikKKyAgICAgICAgICAgICAgICAgICAgY2hrc3VtPSdzaGFzdW0g LWEgNTEyIC0tY2hlY2snCisgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICAgICAg KikKKyAgICAgICAgICAgICAgICAgICAgY2hrc3VtPSdzaGE1MTJzdW0gLS1jaGVjaycKKyAgICAg ICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICAgIGNo a3N1bV9leHRlbnNpb249J3NoYTUxMicKKyAgICAgICAgICAgICAgICB2ZXJpZnk9MQorICAgICAg ICAgICAgICAgIDs7CisgICAgICAgICAgICAtLW1kNSkKKyAgICAgICAgICAgICAgICBjYXNlICRP UyBpbgorICAgICAgICAgICAgICAgICAgIkRhcndpbiIpCisgICAgICAgICAgICAgICAgICAgIGNo a3N1bT0nbWQ1X2NoZWNrJworICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAg ICopCisgICAgICAgICAgICAgICAgICAgIGNoa3N1bT0nbWQ1IC0tY2hlY2snCisgICAgICAgICAg ICAgICAgICA7OworICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgICBjaGtzdW1f ZXh0ZW5zaW9uPSdtZDUnCisgICAgICAgICAgICAgICAgdmVyaWZ5PTEKKyAgICAgICAgICAgICAg ICA7OworICAgICAgICAgICAgLSopCisgICAgICAgICAgICAgICAgZGllICJ1bmtub3duIG9wdGlv bjogJHthcmd9IgorICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAqKQorICAgICAgICAg ICAgICAgIGRpZSAidG9vIG1hbnkgYXJndW1lbnRzIgorICAgICAgICAgICAgICAgIDs7CisgICAg ICAgIGVzYWMKKyAgICBlbHNlCisgICAgICAgIGNhc2UgIiR7YXJnfSIgaW4KKyAgICAgICAgICAg IC0qKQorICAgICAgICAgICAgICAgIGRpZSAiTWlzc2luZyBhcmd1bWVudCBmb3Igb3B0aW9uIC0t JHthcmduZXh0fSIKKyAgICAgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIGNh c2UgIiR7YXJnbmV4dH0iIGluCisgICAgICAgICAgICBkaXJlY3RvcnkpCisgICAgICAgICAgICAg ICAgZGlyZWN0b3J5PSIke2FyZ30iCisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICop CisgICAgICAgICAgICAgICAgZGllICJUaGUgaW1wb3NzaWJsZSBoYXMgaGFwcGVuZWQiCisgICAg ICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICBhcmduZXh0PQorICAgIGZpCitk b25lCitbICJ4JHthcmduZXh0fSIgPSB4IF0gfHwgZGllICJNaXNzaW5nIGFyZ3VtZW50IGZvciBv cHRpb24gLS0ke2FyZ25leHR9IgordW5zZXQgYXJnIGFyZ25leHQKKworWyAtZSAuL2dkYi92ZXJz aW9uLmluIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgIHx8IGRpZSAiWW91IG11c3QgcnVuIHRoaXMgc2NyaXB0IGluIHRoZSB0b3At bGV2ZWwgR0RCIHNvdXJjZSBkaXJlY3RvcnkiCisKK1sgLWQgIiR7ZGlyZWN0b3J5fSIgXSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICB8fCBkaWUgIk5vIHN1Y2ggZGlyZWN0b3J5OiAke2RpcmVjdG9yeX0iCisKK2ZvciBhciBpbiAk KGVjaG9fYXJjaGl2ZXMpCitkbworICAgIGlmIFsgJHtmb3JjZX0gLWd0IDAgXTsgdGhlbiBybSAt ZiAiJHtkaXJlY3Rvcnl9LyR7YXJ9IjsgZmkKKyAgICBbIC1lICIke2RpcmVjdG9yeX0vJHthcn0i IF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgfHwgKCBjZCAiJHtkaXJlY3Rvcnl9IiAmJiAke2ZldGNofSAtLW5vLXZlcmJvc2UgIiR7YmFz ZV91cmx9JHthcn0iICkgIFwKKyAgICAgICAgfHwgZGllICJDYW5ub3QgZG93bmxvYWQgJHthcn0g ZnJvbSAke2Jhc2VfdXJsfSIKK2RvbmUKK3Vuc2V0IGFyCisKK2lmIFsgJHt2ZXJpZnl9IC1ndCAw IF0KK3RoZW4KKyAgICBjaGtzdW1maWxlPSJjb250cmliL3ByZXJlcXVpc2l0ZXMuJHtjaGtzdW1f ZXh0ZW5zaW9ufSIKKyAgICBbIC1yICIke2Noa3N1bWZpbGV9IiBdIHx8IGRpZSAiTm8gY2hlY2tz dW1zIGF2YWlsYWJsZSIKKyAgICBmb3IgYXIgaW4gJChlY2hvX2FyY2hpdmVzKQorICAgIGRvCisg ICAgICAgIGdyZXAgIiR7YXJ9IiAiJHtjaGtzdW1maWxlfSIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB8ICggY2QgIiR7ZGlyZWN0b3J5fSIg JiYgJHtjaGtzdW19ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICB8fCBkaWUgIkNhbm5vdCB2ZXJpZnkgaW50ZWdyaXR5IG9mIHBvc3NpYmx5IGNvcnJ1cHRlZCBm aWxlICR7YXJ9IgorICAgIGRvbmUKKyAgICB1bnNldCBjaGtzdW1maWxlCitmaQordW5zZXQgYXIK KworZm9yIGFyIGluICQoZWNob19hcmNoaXZlcykKK2RvCisgICAgcGFja2FnZT0iJHthciUudGFy Kn0iCisgICAgaWYgWyAke2ZvcmNlfSAtZ3QgMCBdOyB0aGVuIHJtIC1yZiAiJHtkaXJlY3Rvcnl9 LyR7cGFja2FnZX0iOyBmaQorICAgIGNhc2UgJGFyIGluCisgICAgKi5neikKKwl1bmNvbXByZXNz PSdnemlwIC1kJworCTs7CisgICAgKi5iejIpCisJdW5jb21wcmVzcz0nYnppcDIgLWQnCisJOzsK KyAgICAqKQorCXVuY29tcHJlc3M9J2NhdCcKKwk7OworICAgIGVzYWMKKyAgICBbIC1lICIke2Rp cmVjdG9yeX0vJHtwYWNrYWdlfSIgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgfHwgKCBjZCAiJHtkaXJlY3Rvcnl9IiAmJiAkdW5jb21wcmVzcyA8 IiR7YXJ9IiB8IHRhciAteGYgLSApICAgICAgICAgIFwKKyAgICAgICAgfHwgZGllICJDYW5ub3Qg ZXh0cmFjdCBwYWNrYWdlIGZyb20gJHthcn0iCisgICAgdW5zZXQgcGFja2FnZQorZG9uZQordW5z ZXQgYXIKKworZm9yIGFyIGluICQoZWNob19hcmNoaXZlcykKK2RvCisgICAgdGFyZ2V0PSIke2Rp cmVjdG9yeX0vJHthciUudGFyKn0vIgorICAgIGxpbmtuYW1lPSIke2FyJS0qfSIKKyAgICBpZiBb ICR7Zm9yY2V9IC1ndCAwIF07IHRoZW4gcm0gLWYgIiR7bGlua25hbWV9IjsgZmkKKyAgICBbIC1l ICIke2xpbmtuYW1lfSIgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgfHwgbG4gLXMgIiR7dGFyZ2V0fSIgIiR7bGlua25hbWV9 IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfHwgZGllICJD YW5ub3QgY3JlYXRlIHN5bWJvbGljIGxpbmsgJHtsaW5rbmFtZX0gLS0+ICR7dGFyZ2V0fSIKKyAg ICB1bnNldCB0YXJnZXQgbGlua25hbWUKK2RvbmUKK3Vuc2V0IGFyCisKK2VjaG8gIkFsbCBwcmVy ZXF1aXNpdGVzIGRvd25sb2FkZWQgc3VjY2Vzc2Z1bGx5LiIKZGlmZiAtLWdpdCBhL2NvbnRyaWIv cHJlcmVxdWlzaXRlcy5tZDUgYi9jb250cmliL3ByZXJlcXVpc2l0ZXMubWQ1Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmN2JlMGQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250 cmliL3ByZXJlcXVpc2l0ZXMubWQ1CkBAIC0wLDAgKzEsMiBAQAorODZlZTZlNTRlYmZjNGE5MGI2 NDNhNjVlNDAyYzQwNDggIGdtcC02LjEuMC50YXIuYnoyCitiOGEyZjZiMGU2OGJlZjQ2ZTUzZGEy YWM0MzllMWNmNCAgbXBmci0zLjEuNC50YXIuYnoyCmRpZmYgLS1naXQgYS9jb250cmliL3ByZXJl cXVpc2l0ZXMuc2hhNTEyIGIvY29udHJpYi9wcmVyZXF1aXNpdGVzLnNoYTUxMgpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjA1YWZmCi0tLSAvZGV2L251bGwKKysrIGIvY29u dHJpYi9wcmVyZXF1aXNpdGVzLnNoYTUxMgpAQCAtMCwwICsxLDIgQEAKKzNjODJhZWFiOWMxNTk2 ZDRkYThhZmFjMmVlYzM4ZTQyOWU4NGYzMjExZTFhNTcyY2Y4ZmQyYjU0NjQ5M2M0NGMwMzliOTIy YTExMzNlYWFhNDhiZDdmM2UxMWRiZTc5NWEzODRlMjFlZDk1Y2JlM2VjYzU4ZDdhYzAyMjQ2MTE3 ICBnbXAtNi4xLjAudGFyLmJ6MgorNTEwNjYwNjZmZjJjMTJlZDIxOTg2MDVlY2Y2ODg0NmIwYzk2 YjU0OGFkYWZhNWI4MGUwYzc4NmQwZGY0ODg0MTFhNWU4OTczMzU4ZmNlNzE5MmRjOTc3YWQ0ZTY4 NDE0Y2YxNDUwMGUzYzM5NzQ2ZGU2MjQ2NWViMTQ1YmI4MTkgIG1wZnItMy4xLjQudGFyLmJ6Mgpk aWZmIC0tZ2l0IGEvZ2RiL1JFQURNRSBiL2dkYi9SRUFETUUKaW5kZXggZTY1YzVlYS4uMmI5YzM4 MiAxMDA2NDQKLS0tIGEvZ2RiL1JFQURNRQorKysgYi9nZGIvUkVBRE1FCkBAIC00ODgsNiArNDg4 LDEyIEBAIG1vcmUgb2JzY3VyZSBHREIgYGNvbmZpZ3VyZScgb3B0aW9ucyBhcmUgbm90IGxpc3Rl ZCBoZXJlLgogICAgICBCdWlsZCBHREIgdXNpbmcgdGhlIEdNUCBsaWJyYXJ5IGluc3RhbGxlZCBh dCB0aGUgZGlyZWN0b3J5IERJUi4KICAgICAgSWYgeW91ciBob3N0IGRvZXMgbm90IGhhdmUgR01Q IGluc3RhbGxlZCwgeW91IGNhbiBnZXQgdGhlIGxhdGVzdAogICAgICB2ZXJzaW9uIGF0IGBodHRw czovL2dtcGxpYi5vcmcvJy4KKyAgICAgWW91IGNhbiBhbHNvIGJ1aWxkIEdNUCBpbi10cmVlIHdo ZW4geW91IHVzZSB0aGUgc2NyaXB0CisgICAgIC4vY29udHJpYi9kb3dubG9hZF9wcmVyZXF1aXNp dGVzLgorICAgICBUaGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgY29uZmlndXJlLiAgTm8gLS13aXRo LWdtcCBvcHRpb25zIG11c3QKKyAgICAgYmUgdXNlZCB3aGVuIGludm9raW5nIGNvbmZpZ3VyZSBp biB0aGlzIGNhc2UuCisgICAgIE5vdGUgaG93ZXZlciwgdGhhdCB0aGlzIGRvZXMgb25seSB3b3Jr IHdpdGggYSBzZXBhcmF0ZSBidWlsZAorICAgICBkaXJlY3RvcnkuCiAKIGAtLXdpdGgtbXBmcicK ICAgICAgQnVpbGQgR0RCIHdpdGggR05VIE1QRlIsIGEgbGlicmFyeSBmb3IgbXVsdGlwbGUtcHJl Y2lzaW9uCkBAIC00OTksNiArNTA1LDEyIEBAIG1vcmUgb2JzY3VyZSBHREIgYGNvbmZpZ3VyZScg b3B0aW9ucyBhcmUgbm90IGxpc3RlZCBoZXJlLgogICAgICBhdmFpbGFibGUsIEdEQiB3aWxsIGZh bGwgYmFjayB0byB1c2luZyBob3N0IGZsb2F0aW5nLXBvaW50CiAgICAgIGFyaXRobWV0aWMuICBJ ZiB5b3VyIGhvc3QgZG9lcyBub3QgaGF2ZSBHTlUgTVBGUiBpbnN0YWxsZWQsIHlvdQogICAgICBj YW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tIGBodHRwczovL3d3dy5tcGZyLm9yZy8nLgor ICAgICBZb3UgY2FuIGFsc28gYnVpbGQgTVBGUiBpbi10cmVlIHdoZW4geW91IHVzZSB0aGUgc2Ny aXB0CisgICAgIC4vY29udHJpYi9kb3dubG9hZF9wcmVyZXF1aXNpdGVzLgorICAgICBUaGlzIG11 c3QgYmUgZG9uZSBiZWZvcmUgY29uZmlndXJlLiAgTm8gLS13aXRoLW1wZnIgb3B0aW9ucyBtdXN0 CisgICAgIGJlIHVzZWQgd2hlbiBpbnZva2luZyBjb25maWd1cmUgaW4gdGhpcyBjYXNlLgorICAg ICBOb3RlIGhvd2V2ZXIsIHRoYXQgdGhpcyBkb2VzIG9ubHkgd29yayB3aXRoIGEgc2VwYXJhdGUg YnVpbGQKKyAgICAgZGlyZWN0b3J5LgogCiBgLS13aXRoLXB5dGhvbls9UFlUSE9OXScKICAgICAg QnVpbGQgR0RCIHdpdGggUHl0aG9uIHNjcmlwdGluZyBzdXBwb3J0LiAgKERvbmUgYnkgZGVmYXVs dCBpZgpkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKaW5kZXggNTFi NGQxOS4uNTgxOTAwMiAxMDA3NTUKLS0tIGEvZ2RiL2NvbmZpZ3VyZQorKysgYi9nZGIvY29uZmln dXJlCkBAIC05OTkxLDYgKzk5OTEsMTMgQEAgZG9uZQogZmkKIAogIyBWZXJpZnkgdGhhdCB3ZSBo YXZlIGEgdXNhYmxlIEdNUCBsaWJyYXJ5LgoraWYgdGVzdCAtZCAiLi4vZ21wIjsgdGhlbgorICBD UFBGTEFHUz0iJENQUEZMQUdTIC1JLi4vZ21wIgorICBMSUJHTVA9Ii4uL2dtcC8ubGlicy9saWJn bXAuYSIKKworJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJHTVAgMSIgPj5jb25mZGVmcy5oCisK K2Vsc2UKIAogCiAKQEAgLTEwNDMxLDcgKzEwNDM4LDcgQEAgaW50CiBtYWluICgpCiB7CiBtcHpf dCBuOwotICAgICAgICAgICAgICAgICAgICAgICBtcHpfaW5pdCAobik7CisgICAgICAgICAgICAg ICAgICAgICAgICAgbXB6X2luaXQgKG4pOwogICA7CiAgIHJldHVybiAwOwogfQpAQCAtMTA0Njks OCArMTA0NzYsOSBAQCAkYXNfZWNobyAiJExJQkdNUCIgPiY2OyB9CiAKIAogCi1pZiB0ZXN0ICIk SEFWRV9MSUJHTVAiICE9IHllczsgdGhlbgotICBhc19mbl9lcnJvciAkPyAiR01QIGlzIG1pc3Np bmcgb3IgdW51c2FibGUiICIkTElORU5PIiA1CisgIGlmIHRlc3QgIiRIQVZFX0xJQkdNUCIgIT0g eWVzOyB0aGVuCisgICAgYXNfZm5fZXJyb3IgJD8gIkdNUCBpcyBtaXNzaW5nIG9yIHVudXNhYmxl IiAiJExJTkVOTyIgNQorICBmaQogZmkKIAogCkBAIC0xMDQ5MCw2ICsxMDQ5OCwxMiBAQCBpZiB0 ZXN0ICIke3dpdGhfbXBmcn0iID0gbm87IHRoZW4KICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBNUEZSIHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUgZmVh dHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiY1CiAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiBNUEZSIHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxl LiIgPiYyO30KICAgSEFWRV9MSUJNUEZSPW5vCitlbGlmIHRlc3QgLWQgIi4uL21wZnIiOyB0aGVu CisgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkke3NyY2Rpcn0vLi4vbXBmci9zcmMiCisgIExJQk1Q RlI9Ii4uL21wZnIvc3JjLy5saWJzL2xpYm1wZnIuYSIKKworJGFzX2VjaG8gIiNkZWZpbmUgSEFW RV9MSUJNUEZSIDEiID4+Y29uZmRlZnMuaAorCiBlbHNlCiAKIApkaWZmIC0tZ2l0IGEvZ2RiL2Nv bmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKaW5kZXggMjg3MDNkNy4uZjFjMjMzYyAxMDA2 NDQKLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYworKysgYi9nZGIvY29uZmlndXJlLmFjCkBAIC02ODQs MTEgKzY4NCwxNyBAQCBlbHNlCiBmaQogCiAjIFZlcmlmeSB0aGF0IHdlIGhhdmUgYSB1c2FibGUg R01QIGxpYnJhcnkuCi1BQ19MSUJfSEFWRV9MSU5LRkxBR1MoW2dtcF0sIFtdLCBbI2luY2x1ZGUg PGdtcC5oPl0sCi0gICAgICAgICAgICAgICAgICAgICAgW21wel90IG47Ci0gICAgICAgICAgICAg ICAgICAgICAgIG1wel9pbml0IChuKTtdKQotaWYgdGVzdCAiJEhBVkVfTElCR01QIiAhPSB5ZXM7 IHRoZW4KLSAgQUNfTVNHX0VSUk9SKFtHTVAgaXMgbWlzc2luZyBvciB1bnVzYWJsZV0pCitpZiB0 ZXN0IC1kICIuLi9nbXAiOyB0aGVuCisgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkuLi9nbXAiCisg IExJQkdNUD0iLi4vZ21wLy5saWJzL2xpYmdtcC5hIgorICBBQ19ERUZJTkUoSEFWRV9MSUJHTVAs IDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIEdNUCBsaWJyYXJ5Ll0pCitlbHNlCisgIEFDX0xJ Ql9IQVZFX0xJTktGTEFHUyhbZ21wXSwgW10sIFsjaW5jbHVkZSA8Z21wLmg+XSwKKyAgICAgICAg ICAgICAgICAgICAgICAgIFttcHpfdCBuOworICAgICAgICAgICAgICAgICAgICAgICAgIG1wel9p bml0IChuKTtdKQorICBpZiB0ZXN0ICIkSEFWRV9MSUJHTVAiICE9IHllczsgdGhlbgorICAgIEFD X01TR19FUlJPUihbR01QIGlzIG1pc3Npbmcgb3IgdW51c2FibGVdKQorICBmaQogZmkKIAogQUNf QVJHX1dJVEgobXBmciwKQEAgLTcwMCw2ICs3MDYsMTAgQEAgQUNfTVNHX1JFU1VMVChbJHdpdGhf bXBmcl0pCiBpZiB0ZXN0ICIke3dpdGhfbXBmcn0iID0gbm87IHRoZW4KICAgQUNfTVNHX1dBUk4o W01QRlIgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUu XSkKICAgSEFWRV9MSUJNUEZSPW5vCitlbGlmIHRlc3QgLWQgIi4uL21wZnIiOyB0aGVuCisgIENQ UEZMQUdTPSIkQ1BQRkxBR1MgLUkke3NyY2Rpcn0vLi4vbXBmci9zcmMiCisgIExJQk1QRlI9Ii4u L21wZnIvc3JjLy5saWJzL2xpYm1wZnIuYSIKKyAgQUNfREVGSU5FKEhBVkVfTElCTVBGUiwgMSwg W0RlZmluZSBpZiB5b3UgaGF2ZSB0aGUgTVBGUiBsaWJyYXJ5Ll0pCiBlbHNlCiAgIEFDX0xJQl9I QVZFX0xJTktGTEFHUyhbbXBmcl0sIFtnbXBdLCBbI2luY2x1ZGUgPG1wZnIuaD5dLAogCQkJW21w ZnJfZXhwX3QgZXhwOyBtcGZyX3QgeDsKLS0gCjEuOS4xCgo= --------------804C753256BE51E38A92F861--