From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E7372A0521; Tue, 3 Nov 2020 11:54:18 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C81E1C926; Tue, 3 Nov 2020 11:54:17 +0100 (CET) Received: from mailgw02.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by dpdk.org (Postfix) with ESMTP id 11DBEC918 for ; Tue, 3 Nov 2020 11:54:15 +0100 (CET) Received: from mailgw02.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw02.pantheon.sk (Proxmox) with ESMTP id BADCB183734; Tue, 3 Nov 2020 11:54:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=p/Ib35Mxxk704rqE6f0d 0vDvBRNcYeth+znLQ35FIQI=; b=bWX1oKBkk9iNH4MmJg+lvL6pN9v25v+ZdsEj wG7ibq6HhEnZ7pNK4gjbXgEv2xLXY8nU57BdOmkl31qTXcOV2DO7oYCJHjJtQpjM nyGDl6O8CPJaNL0g/HOKsRbM4j20LI7Ctv3UCD2Sq/3SrQjL9BOIfQXVmhAYrCri ckVZMilWbcEUM8ltA2uuGc1Lg36UduJ2jVlB4WyjJfgFum5mAXIyZLBdcP3XKGIH 6IOqUi4fMLGKtTBVRqB7W7BQhsLqsx7zvz0byOCMFI7a6MeYzvIiNBPJngnliCbh w6M5s2CFtGa6MndrC6dKebzH3jq92tCdsVhOT1UxewPNoJF6/w== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: Honnappa Nagarahalli , "bruce.richardson@intel.com" , Ruifeng Wang , Phil Yang , "vcchunga@amazon.com" , Dharmik Thakkar , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" CC: "dev@dpdk.org" , nd , nd Thread-Topic: [PATCH v4 2/6] build: refactor Arm build Thread-Index: AQHWqUuKFo5iH2etR0SB+T0fGtDV/qmtM/GAgAEGs2CAAM1KgIAA66ZQgAVGy4CAAQj9kA== Date: Tue, 3 Nov 2020 10:54:13 +0000 Message-ID: References: <1603280261-20206-1-git-send-email-juraj.linkes@pantheon.tech> <1603464488-25493-1-git-send-email-juraj.linkes@pantheon.tech> <1603464488-25493-3-git-send-email-juraj.linkes@pantheon.tech> <57446a00a9a948c1836b2732eb921945@pantheon.tech> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 2/6] build: refactor Arm build X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSG9ubmFwcGEgTmFnYXJh aGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgTm92 ZW1iZXIgMiwgMjAyMCA4OjMyIFBNDQo+IFRvOiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNA cGFudGhlb24udGVjaD47IGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tOw0KPiBSdWlmZW5nIFdh bmcgPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgUGhpbCBZYW5nIDxQaGlsLllhbmdAYXJtLmNvbT47 DQo+IHZjY2h1bmdhQGFtYXpvbi5jb207IERoYXJtaWsgVGhha2thciA8RGhhcm1pay5UaGFra2Fy QGFybS5jb20+Ow0KPiBqZXJpbmphY29ia0BnbWFpbC5jb207IGhlbWFudC5hZ3Jhd2FsQG54cC5j b20NCj4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBIb25uYXBwYSBOYWdhcmFo YWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPg0K PiBTdWJqZWN0OiBSRTogW1BBVENIIHY0IDIvNl0gYnVpbGQ6IHJlZmFjdG9yIEFybSBidWlsZA0K PiANCj4gPHNuaXA+DQo+IA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvY29u ZmlnL2FybS9tZXNvbi5idWlsZCBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQNCj4gPiA+ID4gPiA+ IGluZGV4DQo+ID4gPiA+ID4gPiA0OTE4NDJjYWQuLjZjMzFhYjE2NyAxMDA2NDQNCj4gPiA+ID4g PiA+IC0tLSBhL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQNCj4gPiA+ID4gPiA+ICsrKyBiL2NvbmZp Zy9hcm0vbWVzb24uYnVpbGQNCj4gPiA+ID4gPiA+IEBAIC0zLDEyICszLDEyIEBADQo+ID4gPiA+ ID4gPiAgIyBDb3B5cmlnaHQoYykgMjAxNyBDYXZpdW0sIEluYyAgIyBDb3B5cmlnaHQoYykgMjAy MA0KPiA+ID4gPiA+ID4gUEFOVEhFT04udGVjaCBzLnIuby4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiAtIyBmb3IgY2hlY2tpbmcgZGVmaW5lcyB3ZSBuZWVkIHRvIHVzZSB0aGUgY29ycmVjdCBj b21waWxlcg0KPiA+ID4gPiA+ID4gZmxhZ3MgLW1hcmNoX29wdCA9ICctbWFyY2g9QDBAJy5mb3Jt YXQobWFjaGluZSkNCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+ICsjIHNldCBhcm1fZm9yY2Vf bmF0aXZlX21hcmNoIGlmIHlvdSB3YW50IHRvIHVzZSBtYWNoaW5lIGFyZ3MNCj4gPiA+ID4gPiA+ ICtiZWxvdyAjIGluc3RlYWQgb2YgZGlzY292ZXJlZCB2YWx1ZXM7IG9ubHkgd29ya3Mgd2hlbiBk b2luZw0KPiA+ID4gPiA+ID4gK2FuIGFjdHVhbCBuYXRpdmUgYnVpbGQNCj4gPiA+ID4gPiA+ICBh cm1fZm9yY2VfbmF0aXZlX21hcmNoID0gZmFsc2UgLWFybV9mb3JjZV9nZW5lcmljX21hcmNoID0N Cj4gPiA+ID4gPiA+IChtYWNoaW5lID09ICdnZW5lcmljJykNCj4gPiA+ID4gPiA+ICtuYXRpdmVf bWFjaGluZV9hcmdzID0gWyctbWFyY2g9bmF0aXZlJywgJy1tdHVuZT1uYXRpdmUnXQ0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFsuLi5dDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IC0NCj4gPiA+ID4gPiA+IC1tYWNoaW5lX2FyZ3NfZGVmYXVsdCA9IFsNCj4gPiA+ID4gPiA+IC0J WydkZWZhdWx0JywgWyctbWFyY2g9YXJtdjgtYStjcmMnLCAnLW1vdXRsaW5lLWF0b21pY3MnXV0s DQo+ID4gPiA+ID4gPiAtCVsnbmF0aXZlJywgWyctbWFyY2g9bmF0aXZlJ11dLA0KPiA+ID4gPiA+ ID4gLQlbJzB4ZDAzJywgWyctbWNwdT1jb3J0ZXgtYTUzJ11dLA0KPiA+ID4gPiA+ID4gLQlbJzB4 ZDA0JywgWyctbWNwdT1jb3J0ZXgtYTM1J11dLA0KPiA+ID4gPiA+ID4gLQlbJzB4ZDA3JywgWyct bWNwdT1jb3J0ZXgtYTU3J11dLA0KPiA+ID4gPiA+ID4gLQlbJzB4ZDA4JywgWyctbWNwdT1jb3J0 ZXgtYTcyJ11dLA0KPiA+ID4gPiA+ID4gLQlbJzB4ZDA5JywgWyctbWNwdT1jb3J0ZXgtYTczJ11d LA0KPiA+ID4gPiA+ID4gLQlbJzB4ZDBhJywgWyctbWNwdT1jb3J0ZXgtYTc1J11dLA0KPiA+ID4g PiA+ID4gLQlbJzB4ZDBiJywgWyctbWNwdT1jb3J0ZXgtYTc2J11dLA0KPiA+ID4gPiA+ID4gLQlb JzB4ZDBjJywgWyctbWFyY2g9YXJtdjguMi1hK2NyYytjcnlwdG8nLCAnLW1jcHU9bmVvdmVyc2Ut DQo+ID4gbjEnXSwNCj4gPiA+ID4gPiA+IGZsYWdzX24xc2RwX2V4dHJhXV0NCj4gPiA+ID4gPiA+ IC0NCj4gPiA+ID4gPiA+IC1tYWNoaW5lX2FyZ3NfY2F2aXVtID0gWw0KPiA+ID4gPiA+ID4gLQlb J2RlZmF1bHQnLCBbJy1tYXJjaD1hcm12OC1hK2NyYytjcnlwdG8nLCctbWNwdT10aHVuZGVyeCdd XSwNCj4gPiA+ID4gPiA+IC0JWyduYXRpdmUnLCBbJy1tYXJjaD1uYXRpdmUnXV0sDQo+ID4gPiA+ ID4gPiAtCVsnMHhhMScsIFsnLW1jcHU9dGh1bmRlcnh0ODgnXSwgZmxhZ3NfdGh1bmRlcnhfZXh0 cmFdLA0KPiA+ID4gPiA+ID4gLQlbJzB4YTInLCBbJy1tY3B1PXRodW5kZXJ4dDgxJ10sIGZsYWdz X3RodW5kZXJ4X2V4dHJhXSwNCj4gPiA+ID4gPiA+IC0JWycweGEzJywgWyctbWNwdT10aHVuZGVy eHQ4MyddLCBmbGFnc190aHVuZGVyeF9leHRyYV0sDQo+ID4gPiA+ID4gPiAtCVsnMHhhZicsIFsn LW1hcmNoPWFybXY4LjEtYStjcmMrY3J5cHRvJywnLQ0KPiA+IG1jcHU9dGh1bmRlcngydDk5J10s DQo+ID4gPiA+ID4gPiBmbGFnc190aHVuZGVyeDJfZXh0cmFdLA0KPiA+ID4gPiA+ID4gLQlbJzB4 YjInLCBbJy1tYXJjaD1hcm12OC4yLWErY3JjK2NyeXB0bytsc2UnLCctDQo+ID4gbWNwdT1vY3Rl b250eDInXSwNCj4gPiA+ID4gPiA+IGZsYWdzX29jdGVvbnR4Ml9leHRyYV1dDQo+ID4gPiA+ID4g PiAtDQo+ID4gPiA+ID4gPiAtbWFjaGluZV9hcmdzX2VtYWcgPSBbDQo+ID4gPiA+ID4gPiAtCVsn ZGVmYXVsdCcsIFsnLW1hcmNoPWFybXY4LWErY3JjK2NyeXB0bycsICctbXR1bmU9ZW1hZyddXSwN Cj4gPiA+ID4gPiA+IC0JWyduYXRpdmUnLCBbJy1tYXJjaD1uYXRpdmUnXV1dDQo+ID4gPiA+ID4g PiArCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0gXSAjIGFybSBjb25maWcNCj4gPiAo aW1wbGVtZW50ZXINCj4gPiA+ID4gPiA+ICsweDQxKSBpcyB0aGUgZGVmYXVsdCBjb25maWcgcG5f Y29uZmlnX2RlZmF1bHQNCj4gPiA+ID4gPiBXaGF0IGRvZXMgaXQgbWVhbiBieSAnZGVmYXVsdCcg aGVyZT8gSSBhbSBzb21ld2hhdCBjb25mdXNlZA0KPiA+ID4gPiA+IGJldHdlZW4NCj4gPiA+ID4g J2RlZmF1bHQnDQo+ID4gPiA+ID4gYW5kICdnZW5lcmljJy4gV2Ugc2hvdWxkIGxvb2sgdG8gcmVt b3ZlICdkZWZhdWx0JyBhcyBtdWNoIGFzDQo+ID4gPiA+ID4gcG9zc2libGUgYW5kIHN0aWNrIHdp dGggJ2dlbmVyaWMnLg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgZGVmYXVsdCBt ZWFucyB3aGF0IGRlZmF1bHQgbWVhbnMsIG5vIHNwZWNpYWwgbWVhbmluZywgdGhhdCBpcw0KPiA+ ID4gPiBpZiB0aGVyZSBpc24ndCBhIG1vcmUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiwgZGVmYXVs dCB0byB0aGlzIG9uZS4NCj4gPiA+ID4gSXQncyBwb3NzaWJsZSB0aGF0IGdlbmVyaWMgaXMgYmV0 dGVyLCBidXQgbm93IHRoYXQgSSB0aGluayBhYm91dA0KPiA+ID4gPiBpdCwgdXNpbmcgc29tZXRo aW5nIGVsc2UgdGhhbiBkZWZhdWx0IG9yIGdlbmVyaWMgbWlnaHQgYmUgdGhlIGJlc3QNCj4gPiA+ ID4gdG8gYXZvaWQgY29uZnVzaW9uLiBQb3NzaWJseSBqdXN0IHBhcnRfbnVtYmVyX2FybSwgd2hp Y2ggd2lsbCBtYWtlDQo+ID4gPiA+IGl0IGluIGxpbmUgd2l0aCB0aGUNCj4gPiA+IG90aGVyIHZh ciBuYW1lcy4NCj4gPiA+IEFncmVlLCBiZXR0ZXIgdG8gY2FsbCBpdCAncGFydF9udW1iZXJfYXJt Jy4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiArPSB7DQo+ID4gPiA+ID4gPiArCSdnZW5l cmljJzogW1snLW1hcmNoPWFybXY4LWErY3JjJywgJy1tb3V0bGluZS1hdG9taWNzJ11dLA0KPiA+ ID4gPiA+IEkgbGlrZSB0aGF0IHdlIGhhdmUgdGFrZW4gb3V0ICduYXRpdmUnIGZyb20gdGhpcyBs aXN0LiBXb3VsZCBpdA0KPiA+ID4gPiA+IGJlIHBvc3NpYmxlIHRvIHRha2Ugb3V0ICdnZW5lcmlj JyBmcm9tIHRoaXMgYW5kIG90aGVycyBiZWxvdy4NCj4gPiA+ID4gPiBUaGlzIGlzIGJlY2F1c2Ug dGhlIGJpbmFyeSBidWlsdCB3aXRoICdnZW5lcmljJyBidWlsZCBzaG91bGQgcnVuDQo+ID4gPiA+ ID4gb24gYW55IEFybSBwbGF0Zm9ybS4gVGhlcmUgaXMgbm8gZGVwZW5kZW5jeSBvbiBhbnkgdW5k ZXJseWluZw0KPiBwbGF0Zm9ybS4NCj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGlzIGFj dHVhbGx5IG1lYW5zIGdlbmVyaWMgcGFydCBmb3IgdGhlIGltcGxlbWVudGVyLCBub3QgZ2VuZXJp Yw0KPiA+ID4gPiBmb3IgZXZlcnl0aGluZy4gSSB1bmRlcnN0YW5kIHRoaXMgaXMgaGVyZSB0byBw cm9kdWNlIGJpbmFyaWVzIHRoYXQNCj4gPiA+ID4gd291bGQgcnVuIG9uIGV2ZXJ5dGhpbmcgZnJv bSB0aGF0IGltcGVsZW1ldGVyIChpbiBsaW5lIG9mIHdoYXQgeW91DQo+ID4gPiA+IG1lbnRpb24g YmVsb3csIHRoaXMgd291bGQgYmUgaW1wbGVtZW50ZXItZ2VuZXJpYyBjb25maWd1cmF0aW9uLCBh DQo+ID4gPiA+IGZvdXJ0aCBjYXRlZ29yeSkuIEluIG15IHBhdGNoc2V0LCBpdCdzIGFsc28gYSBm YWxsYmFjayB3aGVuDQo+ID4gPiA+IGJ1aWxkaW5nIGZvciBhbiB1bmtub3duIHBhcnQgbnVtYmVy IGZyb20gdGhlIGltcGxlbWVudGVyLg0KPiA+ID4gV2UgZG8gbm90IG5lZWQgaW1wbGVtZW50ZXIt Z2VuZXJpYyBiaW5hcmllcy9idWlsZC4gSG93ZXZlciwgd2Ugd2lsbA0KPiA+ID4gaGF2ZSBzb21l IHBhcmFtZXRlcnMgdGhhdCBhcmUgY29tbW9uIGFjcm9zcyBhbGwgdGhlIHBhcnQgbnVtYmVycw0K PiA+ID4gZnJvbSB0aGF0IGltcGxlbWVudGVyIChwcm9iYWJseSB3ZSBzaG91bGQgbm90IGNhbGwg aXQgYXMNCj4gPiA+ICdpbXBsZW1lbnRlci1nZW5lcmljJyB0byBhdm9pZCBjb25mdXNpb24uIE1h eSBiZQ0KPiA+ID4gJ2ltcGxlbWVudGVyLWNvbW1vbi0NCj4gPiBmbGFncycgb3IgJ2ltcGxlbWVu dGVyLWZsYWdzLWV4dHJhJykuDQo+ID4gPiBUaG9zZSBwYXJhbWV0ZXJzIGNhbiBiZSB1c2VkIGZv ciBldmVyeSBwYXJ0IG51bWJlci4NCj4gPg0KPiA+IFRoZXNlIGFyZSBjdXJyZW50bHkgbmFtZWQg ZmxhZ3NfPGltcGxlbWVudGVyPiBzdWNoIGFzIGZsYWdzX2FybSBhbmQNCj4gPiBmbGFnc19jYXZp dW0uIFdlIGNvdWxkIHJlbmFtZSB0aGVtIHRvIGltcGxlbWVudGVyX2ZsYWdzXzxpbXBsZW1lbnRl cj4uDQo+IE9rDQo+IA0KPiA+DQo+ID4gPg0KPiA+ID4gSWYgd2Uga25vdyB0aGUgaW1wbGVtZW50 ZXIsIHdlIHdpbGwgaGF2ZSB0aGUgcGFydCBudW1iZXIgYXMgd2VsbCAodGhpcw0KPiA+ID4gaXMg cGFydCBvZiB0aGUgQXJtIGFyY2hpdGVjdHVyZSBkZWZpbml0aW9uKS4gVW5rbm93biBwYXJ0IG51 bWJlcg0KPiA+ID4gc2hvdWxkIHJlc3VsdCBpbiBhbiBlcnJvciBtZXNzYWdlLg0KPiA+ID4NCj4g Pg0KPiA+IFllcywgd2UnbGwgYWx3YXlzIGhhdmUgYm90aC4gQnV0IHRoZXJlIGFyZSBzdGlsbCBh IGNvdXBsZSBvZiBjb3JuZXIgY2FzZXMgd2l0aA0KPiA+IG5hdGl2ZSBidWlsZHMsIHdoaWNoIHNo b3VsZCBhbHdheXMgd29yazoNCj4gSSBkbyBub3QgdGhpbmsgdGhlc2UgYXJlIGNvcm5lciBjYXNl cy4gVGhlc2UgYXJlIGJhc2ljYWxseSBjYXNlcyB3aGVyZSB0aGUNCj4gc3VwcG9ydCBpcyBub3Qg YWRkZWQgeWV0IGluIHRoZSBidWlsZCBzeXN0ZW0uIFdlIGRvIG5vdCBuZWVkIHRvIGhhbmRsZSB0 aGVzZQ0KPiBzcGVjaWZpY2FsbHkuDQo+IEkgYWxzbyBkbyBub3QgdGhpbmsgdGhlIG5vdGlvbiB0 aGF0IHRoZSAnbmF0aXZlJyBidWlsZCBzaG91bGQgYWx3YXlzIHdvcmsgaXMgY29ycmVjdA0KPiAo YXQgbGVhc3Qgb24gQXJtIHBsYXRmb3JtcykuIFRoZSByZWFzb24gSSBzYXkgdGhhdCBpcyBiZWNh dXNlICduYXRpdmUnLCBJTU8sIG5vdA0KPiBvbmx5IGRlZmluZXMgdGhlIElTQSwgYnV0IG90aGVy IHBhcmFtZXRlcnMgYXMgd2VsbCBpbiBEUERLLg0KPiANCg0KU28gb3VyIHN0YW5jZSB3b3VsZCBi YXNpY2FsbHkgYmUgdGhlIG5hdGl2ZSBidWlsZCBkb2Vzbid0IHdvcmsgZm9yIHVuc3VwcG9ydGVk IGltcGxlbWVudGVycy9wYXJ0IG51bWJlcnMgYW5kIHRoZW4gZGlyZWN0IHRoZSB1c2VyIHRvIGdl bmVyaWMgYnVpbGQuIFRoYXQgc2VlbXMgcmVhc29uYWJsZS4NCg0KPiA+IDEuIFdlIGRvbid0IHN1 cHBvcnQgdGhlIGltcGxlbWVudGVyIChpLmUuIHRoZXJlJ3Mgbm8gdmFyaWFibGUgd2l0aCBuYW1l DQo+ID4gaW1wbGVtZW50ZXJfPGltcGxlbWVudGVyX2lkPikuIEluIHRoaXMgY2FzZSwgd2hhdCBk byBkZWZhdWx0IHRvPyBUaGUNCj4gPiBnZW5lcmljIGJ1aWxkLCB3aGljaCBpcyB0aGUgY3VycmVu dCBiZWhhdmlvcj8NCj4gVGhpcyBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yLiBUaGUgaW1wbGVt ZW50ZXIgc2hvdWxkIGFkZCBzdXBwb3J0IGluDQo+IG1lc29uLmJ1aWxkDQo+IA0KDQpPaywgdGhl biB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLiBUaGUgaW1wbGVt ZW50ZXJzIHdlcmUgYWRkZWQgaW4gYnVsayB3aXRoIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24sIHNv IHRoYXQgY2FuJ3QgcmVhbGx5IGJlIGNvbnNpZGVyZWQgc3VwcG9ydGluZyB0aGVtIGluIHRoaXMg d2F5LiBJIHRoaW5rIHdlIHNob3VsZCBrZWVwIGltcGxlbWVudGVycyB3aGljaCBoYXZlIHNwZWNp ZmljIGltcGxlbWVudGVyIGZsYWdzIG9yIG1hY2hpbmUgY29uZmlndXJhdGlvbiBkZWZpbmVkIGZv ciB0aGVtIGFuZCByZW1vdmUgdGhlIHJlc3QuIFRoYXQgd291bGQgbGVhdmUgdXMgd2l0aDoNCmlt cGxlbWVudGVyX2dlbmVyaWMgPSBbJ0dlbmVyaWMgYXJtdjgnLCBmbGFnc19pbXBsZW1lbnRlcl9n ZW5lcmljLCBwYXJ0X251bWJlcl9jb25maWdfYXJtXQ0KaW1wbGVtZW50ZXJfMHg0MSA9IFsnQXJt JywgZmxhZ3NfaW1wbGVtZW50ZXJfYXJtLCBwYXJ0X251bWJlcl9jb25maWdfYXJtXQ0KaW1wbGVt ZW50ZXJfMHg0MyA9IFsnQ2F2aXVtJywgZmxhZ3NfaW1wbGVtZW50ZXJfY2F2aXVtLCBwYXJ0X251 bWJlcl9jb25maWdfY2F2aXVtXQ0KaW1wbGVtZW50ZXJfMHg1MCA9IFsnQW1wZXJlIENvbXB1dGlu ZycsIGZsYWdzX2ltcGxlbWVudGVyX2VtYWcsIHBhcnRfbnVtYmVyX2NvbmZpZ19lbWFnXQ0KaW1w bGVtZW50ZXJfMHg1NiA9IFsnTWFydmVsbCBBUk1BREEnLCBmbGFnc19pbXBsZW1lbnRlcl9hcm1h ZGEsIHBhcnRfbnVtYmVyX2NvbmZpZ19hcm1dDQppbXBsZW1lbnRlcl9kcGFhID0gWydOWFAgRFBB QScsIGZsYWdzX2ltcGxlbWVudGVyX2RwYWEsIHBhcnRfbnVtYmVyX2NvbmZpZ19hcm1dDQoNCkFu ZCB3ZSB3b3VsZCByZW1vdmUgdGhlc2UgKGV2ZXJ5dGhpbmcgd2l0aCB0aGUgc2FtZSBmbGFncy9w YXJ0IG51bWJlciBjb25maWcgYXMgdGhlIGdlbmVyaWMgYnVpbGQpOg0KaW1wbGVtZW50ZXJfMHg0 MiA9IFsnQnJvYWRjb20nLCBmbGFnc19pbXBsZW1lbnRlcl9nZW5lcmljLCBwYXJ0X251bWJlcl9j b25maWdfYXJtXQ0KaW1wbGVtZW50ZXJfMHg0NCA9IFsnREVDJywgZmxhZ3NfaW1wbGVtZW50ZXJf Z2VuZXJpYywgcGFydF9udW1iZXJfY29uZmlnX2FybV0NCmltcGxlbWVudGVyXzB4NDkgPSBbJ0lu ZmluZW9uJywgZmxhZ3NfaW1wbGVtZW50ZXJfZ2VuZXJpYywgcGFydF9udW1iZXJfY29uZmlnX2Fy bV0NCmltcGxlbWVudGVyXzB4NGQgPSBbJ01vdG9yb2xhJywgZmxhZ3NfaW1wbGVtZW50ZXJfZ2Vu ZXJpYywgcGFydF9udW1iZXJfY29uZmlnX2FybV0NCmltcGxlbWVudGVyXzB4NGUgPSBbJ05WSURJ QScsIGZsYWdzX2ltcGxlbWVudGVyX2dlbmVyaWMsIHBhcnRfbnVtYmVyX2NvbmZpZ19hcm1dDQpp bXBsZW1lbnRlcl8weDUxID0gWydRdWFsY29tbScsIGZsYWdzX2ltcGxlbWVudGVyX2dlbmVyaWMs IHBhcnRfbnVtYmVyX2NvbmZpZ19hcm1dDQppbXBsZW1lbnRlcl8weDUzID0gWydTYW1zdW5nJywg ZmxhZ3NfaW1wbGVtZW50ZXJfZ2VuZXJpYywgcGFydF9udW1iZXJfY29uZmlnX2FybV0NCmltcGxl bWVudGVyXzB4NjkgPSBbJ0ludGVsJywgZmxhZ3NfaW1wbGVtZW50ZXJfZ2VuZXJpYywgcGFydF9u dW1iZXJfY29uZmlnX2FybV0NCg0KPiA+IDIuIFdlIHN1cHBvcnQgdGhlIGltcGxlbWVudGVyLCBi dXQgd2UgZG9uJ3Qgc3VwcG9ydCB0aGUgcGFydCBudW1iZXIuIEluDQo+ID4gdGhpcyBjYXNlLCB3 ZSBjYW4ganVzdCB1c2UgbmF0aXZlIG1hY2hpbmUgYXJncyAoLW1hcmNoPW5hdGl2ZSkgYW5kIHVz ZSBvbmx5DQo+ID4gaW1wbGVtZW50ZXIgc3BlY2lmaWMgZmxhZ3MuDQo+IFNhbWUgdGhpbmcsIHNo b3VsZCByZXN1bHQgaW4gZXJyb3IuIFRoZSBpbXBsZW1lbnRlciBzaG91bGQgYWRkIHN1cHBvcnQg aW4NCj4gbWVzb24uYnVpbGQuDQo+IA0KDQpUaGVyZSBhcmUgdHdvIGRpZmZlcmVudCBzY2VuYXJp b3MsIG5hdGl2ZSBhbmQgc29jLXNwZWNpZmljL2Nyb3NzIGJ1aWxkcy4NCkZvciBuYXRpdmUgYnVp bGRzLCB3ZSBjb3VsZCBqdXN0IHVzZSB0aGUgaW1wbGVtZW50ZXIgZmxhZ3Mgd2l0aCBuYXRpdmUg bWFjaGluZSBhcmdzLiBUaGlzIGNvdWxkIGJlIHN0aWxsIHZpZXdlZCBhcyBpbXBsZW1lbnRlciBp bnRlbmRpbmcgdG8gc3VwcG9ydCBpdCBmb3IgbmF0aXZlIGJ1aWxkIC0gYnkgb21pdHRpbmcgaXQs IHRoZXknZCBiYXNpY2FsbHkgYmUgc2F5aW5nIHRoZXJlIGFyZW4ndCBhbnkgZXh0cmEgZmxhZ3Mg Zm9yIHRoZSBwYXJ0IG51bWJlci4gVGhlcmUgYXJlIGhpZGRlbiBhc3N1bXB0aW9ucyBoZXJlIGFu ZCBpdCByZXN1bHRzIGluIGRhdGEgdGhhdCdzIG5vdCBjbGVhciwgc28gSXQncyBwcm9iYWJseSBi ZXN0IHRvIGVuZm9yY2UgZXZlbiBmb3IgbmF0aXZlIGJ1aWxkcywgYXMgdGhhdCB3ZSByZW1vdmUg YW55IGFtYmlndWl0eS4NCkZvciBzb2Mtc3BlY2lmaWMvY3Jvc3MgYnVpbGRzLCB3ZSBkb24ndCBr bm93IHdoaWNoIG1hY2hpbmUgYXJncyB0byB1c2UsIHNvIHRoYXQncyBhbiBlcnJvci4NCg0KSSds bCBtYWtlIHRoZSBjaGFuZ2VzIHNvIHRoYXQgYW4gdW5rbm93biBpbXBsZW1lbnRlci9wYXJ0IG51 bWJlciByZXN1bHRzIGluIGFuIGVycm9yIGZvciBhbGwgYnVpbGRzLg0KDQo+ID4NCj4gPiBGb3Ig Z2VuZXJpYywgc29jLXNwZWNpZmMgYW5kIGNyb3NzIGJ1aWxkcyBpdCBtYWtlcyBzZW5zZSB0byBl cnJvciB3aXRoIHVrbm93bg0KPiA+IGltcGxlbWVudGVyL3BhcnQgbnVtYmVyLCBzaW5jZSB3ZSB3 b3VsZG4ndCBrbm93IHdoYXQgdG8gYnVpbGQgb3RoZXJ3aXNlLg0KPiA+DQo+ID4gPiA+DQo+ID4g PiA+IFNpbmNlIHRoaXMgaXMgbm90IGdlbmVyaWMgZm9yIGV2ZXJ5dGhpbmcsIG9ubHkgZm9yIHRo ZSBpbXBsZW1lbnRlciwNCj4gPiA+ID4gd2UncmUgbGFja2luZyB0aGUgdHJ1ZSBjb21tb24gZGVm YXVsdCBtYWNoaW5lIGFyZ3MgZm9yIGV2ZXJ5dGhpbmcuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAr CScweGQwMyc6IFtbJy1tY3B1PWNvcnRleC1hNTMnXV0sDQo+ID4gPiA+ID4gPiArCScweGQwNCc6 IFtbJy1tY3B1PWNvcnRleC1hMzUnXV0sDQo+ID4gPiA+ID4gPiArCScweGQwNyc6IFtbJy1tY3B1 PWNvcnRleC1hNTcnXV0sDQo+ID4gPiA+ID4gPiArCScweGQwOCc6IFtbJy1tY3B1PWNvcnRleC1h NzInXV0sDQo+ID4gPiA+ID4gPiArCScweGQwOSc6IFtbJy1tY3B1PWNvcnRleC1hNzMnXV0sDQo+ ID4gPiA+ID4gPiArCScweGQwYSc6IFtbJy1tY3B1PWNvcnRleC1hNzUnXV0sDQo+ID4gPiA+ID4g PiArCScweGQwYic6IFtbJy1tY3B1PWNvcnRleC1hNzYnXV0sDQo+ID4gPiA+ID4gPiArCScweGQw Yyc6IFtbJy1tYXJjaD1hcm12OC4yLWErY3JjK2NyeXB0bycsDQo+ID4gPiA+ID4gPiArJy1tY3B1 PW5lb3ZlcnNlLW4xJ10sIGZsYWdzX24xc2RwX2V4dHJhXQ0KPiA+ID4gPiA+ICdmbGFnc19uMXNk cF9leHRyYScgZG9lcyBub3QgZml0IGhlcmUuIEZvciB0aGUgcGFydCBudW1iZXIgJzB4ZDBjJw0K PiA+ID4gPiA+IHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIFNvQ3MgKE4xU0RQIGlzIG9uZSBvZiB0 aGVtKS4gU28sIGlmIHRoZQ0KPiA+ID4gPiA+IFNvQyBpcyBub3Qga25vd24sIGJ1dCBpZiB3ZSBr bm93IHRoYXQgdGhlIENQVSBpcyBOMSwgdGhlbiB3ZQ0KPiA+ID4gPiA+IHNob3VsZCBidWlsZCBh IE4xLQ0KPiA+ID4gPiBHZW5lcmljIGJ1aWxkLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGlzIHNob3Vs ZCBiZSBjb3JlLWdlbmVyaWMgY29uZmlndXJhdGlvbiwgSSBjYW4gcmVuYW1lIGl0IHRvDQo+ID4g PiA+IGZsYWdzX24xZ2VuZXJpY19leHRyYS4NCj4gPiA+IEFncmVlLg0KPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4gPiBTbywgZnJvbSBteSBwZXJzcGVjdGl2ZSwgdGhlcmUgYXJlIDMga2luZHMgb2Yg YmluYXJpZXM6DQo+ID4gPiA+ID4gMSkgZ2VuZXJpYyAtIGJlc3QgcG9ydGFiaWxpdHkgLSAgKHBv c3NpYmx5KSBsZWFzdCBvcHRpbWl6ZWQgZm9yIGENCj4gPiA+ID4gPiBnaXZlbiBwbGF0Zm9ybQ0K PiA+ID4gPiA+IDIpIENvcmUtR2VuZXJpYyAoZm9yIGV4OiBOMS1nZW5lcmljKSAtIFBvcnRhYmxl IG9uIGFsbCBOMSBiYXNlZA0KPiA+ID4gPiA+IFNvQ3Mgb25seSAtIE9wdGltaXplZCBmb3IgTjEg Y29yZXMNCj4gPiA+ID4gPiAzKSBTb0Mgc3BlY2lmaWMgLSAocG9zc2libHkpIE5vdCBwb3J0YWJs ZSAtIE1vc3Qgb3B0aW1pemVkIGZvciB0aGUNCj4gPiA+ID4gPiBTb0MNCj4gPiA+ID4gPg0KPiA+ ID4gPg0KPiA+ID4gPiBUaGUgZm91cnRoIGNhdGVnb3J5IEkgbWVudGlvbmVkIGFib3ZlLCBpbXBs ZW1lbnRlci1nZW5lcmljLCBpcyB1c2VkDQo+ID4gPiA+IGluIGhvdw0KPiA+ID4gV2Ugc2hvdWxk IG5vdCBoYXZlIHRoaXMgY2F0ZWdvcnkuDQo+ID4gPg0KPiA+ID4gPiB0aGUgYXJtIGNvbmZpZ3Vy YXRpb24gaXMgY3VycmVudGx5IHByb2Nlc3NlZDoNCj4gPiA+ID4gMSkgZGVmYXVsdCBjb25maWd1 cmF0aW9uDQo+ID4gPiA+IEFkZGVkIHRvL292ZXJ3cml0dGVuIGJ5DQo+ID4gPiA+IDIpIGltcGxl bWVudGVyIGNvbmZpZ3VyYXRpb24gKG9uZSBvZiB3aGljaCBpcyB0aGUgY29uZmlndXJhdGlvbiBm b3INCj4gPiA+ID4gZ2VuZXJpYw0KPiA+ID4gPiBidWlsZCkgQWRkZWQgdG8vb3ZlcndyaXR0ZW4g YnkNCj4gPiA+IFRoaXMgc2hvdWxkIGJlIGp1c3QgcGFyYW1ldGVycyB0aGF0IGFyZSBjb21tb24g YWNyb3NzIGFsbCB0aGUgcGFydA0KPiA+ID4gbnVtYmVycyBvZiB0aGF0IGltcGxlbWVudGVyIChm b3IgZXg6IFJURV9DQUNIRV9MSU5FX1NJWkUgPSAxMjgpLCBub3QgYQ0KPiA+IGJ1aWxkLg0KPiA+ ID4NCj4gPg0KPiA+IEl0J3Mgbm90IGEgYnVpbGQsIGp1c3QgaG93IHRoZSBjb25maWdhdGlvbiBp cyBvcmdhbml6ZWQgYW5kIHByb2Nlc3NlZCwgYXMgaW4gd2UNCj4gPiBhcHBseSB0aGUgY29tbW9u IGRlZmF1bHQgZmxhZ3MsIHRoZW4gaW1wbGVtZW50ZXIgZmxhZ3MsIHRoZW4gcGFydCBudW1iZXIN Cj4gPiBmbGFncyBhbmQgdGhlbiBzb2MgZmxhZ3MsIG92ZXJ3cml0aW5nIGZsYWdzIGluIGFsbCBv ZiB0aGUgc3RlcHMuDQo+IE9rDQo+IA0KPiA+DQo+ID4gPiA+IDMpIHBhcnQgbnVtYmVyIChvciBj b3JlLWdlbmVyaWMpIGNvbmZpZ3VyYXRpb24gQWRkZWQgdG8vb3ZlcndyaXR0ZW4NCj4gPiA+ID4g YnkNCj4gPiA+ID4gNCkgU29DIGNvbmZpZ3VyYXRpb24gKHdoYXQgd2UncmUgYWRkaW5nIG5vdykN Cj4gPiA+ID4NCj4gPiA+ID4gSXQncyBub3Qgb3JnYW5pemVkIGFzIGNsZWFubHkgLSB0aGUgbWFj aGluZSBhcmdzIGNvbnRhaW4gYm90aCAyKSBhbmQgMykuDQo+ID4gPiA+IERlcGVuZGluZyBvbiB3 aGF0IHdlIHdhbnQgdG8gZG8gd2l0aCB0aGUgJ2dlbmVyaWMnIHBhcnQgbnVtYmVyIEknbGwNCj4g PiA+ID4gYWRqdXN0IHRoZSBjb25maWcgb3JnYW5pemF0aW9uLg0KPiA+ID4gPg0KPiA+ID4gPiA+ ICB9IHBuX2NvbmZpZ19jYXZpdW0gPSB7DQo+ID4gPiA+ID4gPiArCSdnZW5lcmljJzogW1snLW1h cmNoPWFybXY4LWErY3JjK2NyeXB0bycsICctDQo+ID4gbWNwdT10aHVuZGVyeCddXSwNCj4gPiA+ ID4gPiAnZ2VuZXJpYycgZG9lcyBub3QgbWFrZSBzZW5zZSBoZXJlLg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiArCScweGExJzogW1snLW1jcHU9dGh1bmRlcnh0ODgnXSwgZmxhZ3NfdGh1bmRlcnhf ZXh0cmFdLA0KPiA+ID4gPiA+ID4gKwknMHhhMic6IFtbJy1tY3B1PXRodW5kZXJ4dDgxJ10sIGZs YWdzX3RodW5kZXJ4X2V4dHJhXSwNCj4gPiA+ID4gPiA+ICsJJzB4YTMnOiBbWyctbWNwdT10aHVu ZGVyeHQ4MyddLCBmbGFnc190aHVuZGVyeF9leHRyYV0sDQo+ID4gPiA+ID4gPiArCScweGFmJzog W1snLW1hcmNoPWFybXY4LjEtYStjcmMrY3J5cHRvJywnLQ0KPiA+IG1jcHU9dGh1bmRlcngydDk5 J10sDQo+ID4gPiA+ID4gPiBmbGFnc190aHVuZGVyeDJfZXh0cmFdLA0KPiA+ID4gPiA+ID4gKwkn MHhiMic6DQo+ID4gPiA+ID4gPiArW1snLW1hcmNoPWFybXY4LjItYStjcmMrY3J5cHRvK2xzZScs Jy1tY3B1PW9jdGVvbnR4MiddLA0KPiA+ID4gPiA+ID4gK2ZsYWdzX29jdGVvbnR4Ml9leHRyYV0s IH0gcG5fY29uZmlnX2VtYWcgPSB7DQo+ID4gPiA+ID4gPiArCSdnZW5lcmljJzogW1snLW1hcmNo PWFybXY4LWErY3JjK2NyeXB0bycsICctbXR1bmU9ZW1hZyddXSB9DQo+ID4gPiA+ID4gU2FtZSBo ZXJlLg0KPiA+ID4gPiA+IEkgdW5kZXJzdGFuZCB0aGF0IHRoaXMgaXMgY29taW5nIGZyb20gdGhl IGV4aXN0aW5nIGNvZGUuIEJ1dCwgSQ0KPiA+ID4gPiA+IHRoaW5rIHdlIHNob3VsZCB0cnkgdG8g c2V0IGl0IHJpZ2h0Lg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBnZW5lcmljIGNv bmZpZyBmb3IgdGhlc2UgbWFrZXMgc2Vuc2UgaWYgYSBmb3VydGggY2F0ZWdvcnksDQo+ID4gPiA+ IGltcGxlbWVudGVyLSBnZW5lcmljIG1ha2VzIHNlbnNlLg0KPiA+ID4gPiBGb3IgZXhhbXBsZSwg Zm9yIHBhcnRfbnVtYmVyX2NvbmZpZ19lbWFnIHRoaXMgbWVhbnM6IGZvcg0KPiA+IGltcGxlbWVu dGVyDQo+ID4gPiA+IF8weDUwIChBbXBlcmUgQ29tcHV0aW5nKSB1c2UgdGhlIGdlbmVyaWMgbWFj aGluZSBhcmdzIGlmIHRoZXJlJ3MNCj4gPiA+ID4gbm90aGluZyBtb3JlIHNwZWNpZmljICh3aGlj aCB0aGVyZSBpc24ndCAtIG5vIG90aGVyIHBhcnQgbnVtYmVyKS4NCj4gPiA+IFRoZXJlIHNob3Vs ZCBiZSBhIHBhcnQgbnVtYmVyIGZvciB0aGlzLiBOb3Qgc3VyZSB3aHkgaXQgaXMgbm90IHByZXNl bnQNCj4gPiA+IGhlcmUuIEkgd2lsbCBmaW5kIG91dCB0aGUgaW5mby4NCj4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICMjIEFybSBpbXBsZW1lbnRlciBJRCAoQVJNIERE SSAwNDg3Qy5hLCBTZWN0aW9uIEc3LjIuMTA2LCBQYWdlDQo+ID4gPiA+ID4gPiBHNy01MzIxKQ0K PiA+ID4gPiA+IE5pdCwgV291bGQgYmUgZ29vZCB0byByZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0 aGUgZG9jDQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gSXMgdGhhdCBiZWNhdXNlIHRoZSBk b2NzIG1lbnRpb25lZCBoZXJlIG1heSBub3QgYmUgdGhlIG1vc3QgcmVjZW50Pw0KPiA+ID4gPiBJ dCB3YXMgdXNlZnVsIHRvIG1lIGluIHVuZGVyc3RhbmRpbmcgd2hlcmUgdGhlIGltcGxlbWVudGVy L3BhcnQNCj4gPiA+ID4gbnVtYmVyIHZhbHVlcyBjb21lIGZyb20uDQo+ID4gPiBZZXMsIG1haW5s eSBiZWNhdXNlIHRoZSBzcGVjIGdldHMgdXBkYXRlZC4gSW5zdGVhZCB5b3UgY291bGQgc2F5DQo+ ID4gPiAiUmVmZXIgdG8gTUlEUiBpbiBBcm0gQXJjaGl0ZWN0dXJlIFJlZmVyZW5jZSBNYW51YWwi KQ0KPiA+ID4NCj4gPg0KPiA+IE9rLCBJJ2xsIG1ha2UgdGhpcyBjaGFuZ2UuDQo+ID4NCj4gPiA+ ID4NCj4gPiA+ID4gPiA+IC1pbXBsX2dlbmVyaWMgPSBbJ0dlbmVyaWMgYXJtdjgnLCBmbGFnc19n ZW5lcmljLA0KPiA+ID4gPiA+ID4gbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiA+ID4gPiAt aW1wbF8weDQxID0gWydBcm0nLCBmbGFnc19hcm0sIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ ID4gPiA+ID4gLWltcGxfMHg0MiA9IFsnQnJvYWRjb20nLCBmbGFnc19nZW5lcmljLCBtYWNoaW5l X2FyZ3NfZGVmYXVsdF0NCj4gPiA+ID4gPiA+IC1pbXBsXzB4NDMgPSBbJ0Nhdml1bScsIGZsYWdz X2Nhdml1bSwgbWFjaGluZV9hcmdzX2Nhdml1bV0NCj4gPiA+ID4gPiA+IC1pbXBsXzB4NDQgPSBb J0RFQycsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gPiA+ID4g LWltcGxfMHg0OSA9IFsnSW5maW5lb24nLCBmbGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVm YXVsdF0NCj4gPiA+ID4gPiA+IC1pbXBsXzB4NGQgPSBbJ01vdG9yb2xhJywgZmxhZ3NfZ2VuZXJp YywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiA+ID4gPiAtaW1wbF8weDRlID0gWydOVklE SUEnLCBmbGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+ID4gPiA+IC1p bXBsXzB4NTAgPSBbJ0FtcGVyZSBDb21wdXRpbmcnLCBmbGFnc19lbWFnLA0KPiA+IG1hY2hpbmVf YXJnc19lbWFnXQ0KPiA+ID4gPiA+ID4gLWltcGxfMHg1MSA9IFsnUXVhbGNvbW0nLCBmbGFnc19n ZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+ID4gPiA+IC1pbXBsXzB4NTMgPSBb J1NhbXN1bmcnLCBmbGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+ID4g PiA+IC1pbXBsXzB4NTYgPSBbJ01hcnZlbGwgQVJNQURBJywgZmxhZ3NfYXJtYWRhLA0KPiA+ID4g PiA+ID4gbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiA+ID4gPiAtaW1wbF8weDY5ID0gWydJ bnRlbCcsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gPiA+ID4g LWltcGxfZHBhYSA9IFsnTlhQIERQQUEnLCBmbGFnc19kcGFhLCBtYWNoaW5lX2FyZ3NfZGVmYXVs dF0NCj4gPiA+ID4gPiA+ICtpbXBsX2dlbmVyaWMgPSBbJ0dlbmVyaWMgYXJtdjgnLCBmbGFnc19n ZW5lcmljLA0KPiA+ID4gPiA+ID4gK3BuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gPiA+ID4gK2lt cGxfMHg0MSA9IFsnQXJtJywgZmxhZ3NfYXJtLCBwbl9jb25maWdfZGVmYXVsdF0NCj4gPiA+ID4g PiA+ICtpbXBsXzB4NDIgPSBbJ0Jyb2FkY29tJywgZmxhZ3NfZ2VuZXJpYywgcG5fY29uZmlnX2Rl ZmF1bHRdDQo+ID4gPiA+ID4gPiAraW1wbF8weDQzID0gWydDYXZpdW0nLCBmbGFnc19jYXZpdW0s IHBuX2NvbmZpZ19jYXZpdW1dDQo+ID4gPiA+ID4gPiAraW1wbF8weDQ0ID0gWydERUMnLCBmbGFn c19nZW5lcmljLCBwbl9jb25maWdfZGVmYXVsdF0NCj4gPiA+ID4gPiA+ICtpbXBsXzB4NDkgPSBb J0luZmluZW9uJywgZmxhZ3NfZ2VuZXJpYywgcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiA+ID4g PiAraW1wbF8weDRkID0gWydNb3Rvcm9sYScsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZh dWx0XQ0KPiA+ID4gPiA+ID4gK2ltcGxfMHg0ZSA9IFsnTlZJRElBJywgZmxhZ3NfZ2VuZXJpYywg cG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiA+ID4gPiAraW1wbF8weDUwID0gWydBbXBlcmUgQ29t cHV0aW5nJywgZmxhZ3NfZW1hZywgcG5fY29uZmlnX2VtYWddDQo+ID4gPiA+ID4gPiAraW1wbF8w eDUxID0gWydRdWFsY29tbScsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ ID4gPiA+ID4gK2ltcGxfMHg1MyA9IFsnU2Ftc3VuZycsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZp Z19kZWZhdWx0XQ0KPiA+ID4gPiA+ID4gK2ltcGxfMHg1NiA9IFsnTWFydmVsbCBBUk1BREEnLCBm bGFnc19hcm1hZGEsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gPiA+ID4gK2ltcGxfMHg2OSA9 IFsnSW50ZWwnLCBmbGFnc19nZW5lcmljLCBwbl9jb25maWdfZGVmYXVsdF0NCj4gPiA+ID4gPiA+ ICtpbXBsX2RwYWEgPSBbJ05YUCBEUEFBJywgZmxhZ3NfZHBhYSwgcG5fY29uZmlnX2RlZmF1bHRd DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIGRwZGtfY29uZi5zZXQoJ1JURV9BUkNIX0FSTScs IDEpDQo+ID4gPiA+ID4gPiBkcGRrX2NvbmYuc2V0KCdSVEVfRk9SQ0VfSU5UUklOU0lDUycsIDEp DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIGlmIGRwZGtfY29uZi5nZXQoJ1JURV9BUkNIXzMy JykNCj4gPiA+ID4gPiA+ICsJIyBhcm12NyBidWlsZA0KPiA+ID4gPiA+ID4gIAlkcGRrX2NvbmYu c2V0KCdSVEVfQ0FDSEVfTElORV9TSVpFJywgNjQpDQo+ID4gPiA+ID4gPiAgCWRwZGtfY29uZi5z ZXQoJ1JURV9BUkNIX0FSTXY3JywgMSkNCj4gPiA+ID4gPiA+ICAJIyB0aGUgbWluaW11bSBhcmNo aXRlY3R1cmUgc3VwcG9ydGVkLCBhcm12Ny1hLCBuZWVkcyB0aGUNCj4gPiBmb2xsb3dpbmcsDQo+ ID4gPiA+ID4gPiAgCSMgbWsvbWFjaGluZS9hcm12N2EvcnRlLnZhcnMubWsgc2V0cyBpdCB0b28N Cj4gPiA+ID4gPiA+ICAJbWFjaGluZV9hcmdzICs9ICctbWZwdT1uZW9uJw0KPiA+ID4gPiA+ID4g IGVsc2UNCj4gPiA+ID4gPiA+IC0JZHBka19jb25mLnNldCgnUlRFX0NBQ0hFX0xJTkVfU0laRScs IDEyOCkNCj4gPiA+ID4gPiA+IC0JZHBka19jb25mLnNldCgnUlRFX0FSQ0hfQVJNNjQnLCAxKQ0K PiA+ID4gPiA+ID4gKwkjIGFhcmNoNjQgYnVpbGQNCj4gPiA+ID4gPiA+ICsJaWYgbm90IG1lc29u LmlzX2Nyb3NzX2J1aWxkKCkNCj4gPiA+ID4gPiA+ICsJCWlmIG1hY2hpbmUgPT0gJ2dlbmVyaWMn DQo+ID4gPiA+ID4gPiArCQkJIyBkZWZhdWx0IGJ1aWxkDQo+ID4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eIEdlbmVyaWMgYnVp bGQ/DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gQWxyZWFkeSBhZGRyZXNzZWQgaW4gdGhl IG5leHQgdmVyc2lvbi4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICsJCQlpbXBsX2NvbmZpZyA9IGlt cGxfZ2VuZXJpYw0KPiA+ID4gPiA+ID4gKwkJCXBhcnRfbnVtYmVyID0gJ2dlbmVyaWMnDQo+ID4g PiA+ID4gPiArCQllbHNlDQo+ID4gPiA+ID4gPiArCQkJIyBuYXRpdmUgYnVpbGQNCj4gPiA+ID4g PiA+ICsJCQkjIFRoZSBzY3JpcHQgcmV0dXJucyBbJ0ltcGxlbWVudGVyJywgJ1ZhcmlhbnQnLA0K PiA+ID4gPiA+ID4gJ0FyY2hpdGVjdHVyZScsDQo+ID4gPiA+ID4gPiArCQkJIyAnUHJpbWFyeSBQ YXJ0IG51bWJlcicsICdSZXZpc2lvbiddDQo+ID4gPiA+ID4gPiArCQkJZGV0ZWN0X3ZlbmRvciA9 IGZpbmRfcHJvZ3JhbShqb2luX3BhdGhzKA0KPiA+ID4gPiA+ID4gKwkJCQkJbWVzb24uY3VycmVu dF9zb3VyY2VfZGlyKCksDQo+ID4gPiA+ID4gPiAnYXJtdjhfbWFjaGluZS5weScpKQ0KPiA+ID4g PiA+ID4gKwkJCWNtZCA9IHJ1bl9jb21tYW5kKGRldGVjdF92ZW5kb3IucGF0aCgpKQ0KPiA+ID4g PiA+ID4gKwkJCWlmIGNtZC5yZXR1cm5jb2RlKCkgPT0gMA0KPiA+ID4gPiA+ID4gKwkJCQljbWRf b3V0cHV0ID0NCj4gPiA+ID4gPiA+IGNtZC5zdGRvdXQoKS50b19sb3dlcigpLnN0cmlwKCkuc3Bs aXQoJyAnKQ0KPiA+ID4gPiA+ID4gKwkJCWVuZGlmDQo+ID4gPiA+ID4gPiArCQkJaWYgYXJtX2Zv cmNlX25hdGl2ZV9tYXJjaCA9PSB0cnVlDQo+ID4gPiA+ID4gPiArCQkJCXBhcnRfbnVtYmVyID0g J25hdGl2ZScNCj4gPiA+ID4gPiA+ICsJCQllbHNlDQo+ID4gPiA+ID4gPiArCQkJCXBhcnRfbnVt YmVyID0gY21kX291dHB1dFszXQ0KPiA+ID4gPiA+ID4gKwkJCWVuZGlmDQo+ID4gPiA+ID4gPiAr CQkJIyBTZXQgdG8gZ2VuZXJpYyBpbXBsZW1lbnRlciBpZiBpbXBsZW1lbnRlcg0KPiA+IGlzIG5v dA0KPiA+ID4gPiA+ID4gZm91bmQNCj4gPiA+ID4gPiA+ICsJCQlpbXBsX2NvbmZpZyA9IGdldF92 YXJpYWJsZSgnaW1wbF8nICsNCj4gPiBjbWRfb3V0cHV0WzBdLA0KPiA+ID4gPiA+ID4gJ2ltcGxf Z2VuZXJpYycpDQo+ID4gPiA+ID4gPiArCQllbmRpZg0KPiA+ID4gPiA+ID4gKwllbHNlDQo+ID4g PiA+ID4gPiArCQkjIGNyb3NzIGJ1aWxkDQo+ID4gPiA+ID4gPiArCQlpbXBsX2lkID0NCj4gPiBt ZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHkoJ2ltcGxlbWVudGVyX2lkJywNCj4gPiA+ID4gPiA+ICdn ZW5lcmljJykNCj4gPiA+ID4gPiA+ICsJCXBhcnRfbnVtYmVyID0NCj4gPiBtZXNvbi5nZXRfY3Jv c3NfcHJvcGVydHkoJ3BhcnRfbnVtYmVyJywNCj4gPiA+ID4gPiA+ICdnZW5lcmljJykNCj4gPiA+ ID4gPiA+ICsJCWltcGxfY29uZmlnID0gZ2V0X3ZhcmlhYmxlKCdpbXBsXycgKyBpbXBsX2lkKQ0K PiA+ID4gPiA+ID4gKwllbmRpZg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0JbWFjaGluZSA9 IFtdDQo+ID4gPiA+ID4gPiAtCWNtZF9nZW5lcmljID0gWydnZW5lcmljJywgJycsICcnLCAnZGVm YXVsdCcsICcnXQ0KPiA+ID4gPiA+ID4gLQljbWRfb3V0cHV0ID0gY21kX2dlbmVyaWMgIyBTZXQg Z2VuZXJpYyBieSBkZWZhdWx0DQo+ID4gPiA+ID4gPiAtCW1hY2hpbmVfYXJncyA9IFtdICMgQ2xl YXIgcHJldmlvdXMgbWFjaGluZSBhcmdzDQo+ID4gPiA+ID4gPiAtCWlmIGFybV9mb3JjZV9nZW5l cmljX21hcmNoIGFuZCBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKQ0KPiA+ID4gPiA+ID4gLQkJ bWFjaGluZSA9IGltcGxfZ2VuZXJpYw0KPiA+ID4gPiA+ID4gLQkJaW1wbF9wbiA9ICdkZWZhdWx0 Jw0KPiA+ID4gPiA+ID4gKwltZXNzYWdlKCdBcm0gaW1wbGVtZW50ZXI6ICcgKyBpbXBsX2NvbmZp Z1swXSkNCj4gPiA+ID4gPiA+ICsJbWVzc2FnZSgnQXJtIHBhcnQgbnVtYmVyOiAnICsgcGFydF9u dW1iZXIpDQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCWltcGxlbWVudGVyX2ZsYWdzID0g aW1wbF9jb25maWdbMV0NCj4gPiA+ID4gPiA+ICsJcGFydF9udW1iZXJfY29uZmlnID0gaW1wbF9j b25maWdbMl0NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgcGFydF9udW1iZXJfY29u ZmlnLmhhc19rZXkocGFydF9udW1iZXIpDQo+ID4gPiA+ID4gPiArCQkjIHVzZSB0aGUgc3BlY2lm aWVkIHBhcnRfbnVtYmVyIG1hY2hpbmUgYXJncyBpZg0KPiA+IGZvdW5kDQo+ID4gPiA+ID4gPiAr CQlwYXJ0X251bWJlcl9jb25maWcgPQ0KPiA+IHBhcnRfbnVtYmVyX2NvbmZpZ1twYXJ0X251bWJl cl0NCj4gPiA+ID4gPiA+ICsJZWxpZiBwYXJ0X251bWJlciA9PSAnbmF0aXZlJw0KPiA+ID4gPiA+ ID4gKwkJIyB1c2UgbmF0aXZlIG1hY2hpbmUgYXJncw0KPiA+ID4gPiA+ID4gKwkJcGFydF9udW1i ZXJfY29uZmlnID0gW1tuYXRpdmVfbWFjaGluZV9hcmdzXV0NCj4gPiA+ID4gPiA+ICAJZWxpZiBu b3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKQ0KPiA+ID4gPiA+ID4gLQkJIyBUaGUgc2NyaXB0IHJl dHVybnMgWydJbXBsZW1lbnRlcicsICdWYXJpYW50JywNCj4gPiAnQXJjaGl0ZWN0dXJlJywNCj4g PiA+ID4gPiA+IC0JCSMgJ1ByaW1hcnkgUGFydCBudW1iZXInLCAnUmV2aXNpb24nXQ0KPiA+ID4g PiA+ID4gLQkJZGV0ZWN0X3ZlbmRvciA9IGZpbmRfcHJvZ3JhbShqb2luX3BhdGhzKA0KPiA+ID4g PiA+ID4gLQkJCQltZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwNCj4gPiA+ID4gPiA+ICdhcm12 OF9tYWNoaW5lLnB5JykpDQo+ID4gPiA+ID4gPiAtCQljbWQgPSBydW5fY29tbWFuZChkZXRlY3Rf dmVuZG9yLnBhdGgoKSkNCj4gPiA+ID4gPiA+IC0JCWlmIGNtZC5yZXR1cm5jb2RlKCkgPT0gMA0K PiA+ID4gPiA+ID4gLQkJCWNtZF9vdXRwdXQgPQ0KPiA+IGNtZC5zdGRvdXQoKS50b19sb3dlcigp LnN0cmlwKCkuc3BsaXQoJw0KPiA+ID4gPiA+ID4gJykNCj4gPiA+ID4gPiA+IC0JCWVuZGlmDQo+ ID4gPiA+ID4gPiAtCQkjIFNldCB0byBnZW5lcmljIGlmIHZhcmlhYmxlIGlzIG5vdCBmb3VuZA0K PiA+ID4gPiA+ID4gLQkJbWFjaGluZSA9IGdldF92YXJpYWJsZSgnaW1wbF8nICsgY21kX291dHB1 dFswXSwNCj4gPiBbJ2dlbmVyaWMnXSkNCj4gPiA+ID4gPiA+IC0JCWlmIG1hY2hpbmVbMF0gPT0g J2dlbmVyaWMnDQo+ID4gPiA+ID4gPiAtCQkJbWFjaGluZSA9IGltcGxfZ2VuZXJpYw0KPiA+ID4g PiA+ID4gLQkJCWNtZF9vdXRwdXQgPSBjbWRfZ2VuZXJpYw0KPiA+ID4gPiA+ID4gLQkJZW5kaWYN Cj4gPiA+ID4gPiA+IC0JCWltcGxfcG4gPSBjbWRfb3V0cHV0WzNdDQo+ID4gPiA+ID4gPiAtCQlp ZiBhcm1fZm9yY2VfbmF0aXZlX21hcmNoID09IHRydWUNCj4gPiA+ID4gPiA+IC0JCQlpbXBsX3Bu ID0gJ25hdGl2ZScNCj4gPiA+ID4gPiA+IC0JCWVuZGlmDQo+ID4gPiA+ID4gPiArCQkjIGRlZmF1 bHQgdG8gZ2VuZXJpYyBtYWNoaW5lIGFyZ3MgaWYgcGFydF9udW1iZXIgaXMNCj4gPiBub3QgZm91 bmQNCj4gPiA+ID4gPiA+ICsJCSMgYW5kIG5vdCBmb3JjaW5nIG5hdGl2ZSBtYWNoaW5lIGFyZ3MN Cj4gPiA+ID4gPiA+ICsJCSMgYnV0IGRvbid0IGRlZmF1bHQgaW4gY3Jvc3MtYnVpbGRzOyBpZiBw YXJ0X251bWJlciBpcw0KPiA+IHNwZWNpZmllZA0KPiA+ID4gPiA+ID4gKwkJIyBpbmNvcnJlY3Rs eSBpbiBhIGNyb3NzLWZpbGUsIGl0IG5lZWRzIHRvIGJlIGZpeGVkIHRoZXJlDQo+ID4gPiA+ID4g PiArCQlwYXJ0X251bWJlcl9jb25maWcgPQ0KPiA+IHBhcnRfbnVtYmVyX2NvbmZpZ1snZ2VuZXJp YyddDQo+ID4gPiA+ID4gPiAgCWVsc2UNCj4gPiA+ID4gPiA+IC0JCWltcGxfaWQgPQ0KPiA+IG1l c29uLmdldF9jcm9zc19wcm9wZXJ0eSgnaW1wbGVtZW50b3JfaWQnLA0KPiA+ID4gPiA+ID4gJ2dl bmVyaWMnKQ0KPiA+ID4gPiA+ID4gLQkJaW1wbF9wbiA9DQo+ID4gbWVzb24uZ2V0X2Nyb3NzX3By b3BlcnR5KCdpbXBsZW1lbnRvcl9wbicsDQo+ID4gPiA+ID4gPiAnZGVmYXVsdCcpDQo+ID4gPiA+ ID4gPiAtCQltYWNoaW5lID0gZ2V0X3ZhcmlhYmxlKCdpbXBsXycgKyBpbXBsX2lkKQ0KPiA+ID4g PiA+ID4gKwkJIyBjcm9zcyBidWlsZCBhbmQgcGFydCBudW1iZXIgaXMgbm90IGluDQo+ID4gcGFy dF9udW1iZXJfY29uZmlnDQo+ID4gPiA+ID4gPiArCQllcnJvcignQ3Jvc3MgYnVpbGQgcGFydCBu dW1iZXIgMEAwIG5vdA0KPiA+ID4gPiA+ID4gZm91bmQuJy5mb3JtYXQocGFydF9udW1iZXIpKQ0K PiA+ID4gPiA+ID4gIAllbmRpZg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0JIyBBcHBseSBD b21tb24gRGVmYXVsdHMuIFRoZXNlIHNldHRpbmdzIG1heSBiZQ0KPiA+IG92ZXJ3cml0dGVuIGJ5 DQo+ID4gPiA+ID4gPiBtYWNoaW5lDQo+ID4gPiA+ID4gPiAtCSMgc2V0dGluZ3MgbGF0ZXIuDQo+ ID4gPiA+ID4gPiAtCWZvcmVhY2ggZmxhZzogZmxhZ3NfY29tbW9uX2RlZmF1bHQNCj4gPiA+ID4g PiA+IC0JCWlmIGZsYWcubGVuZ3RoKCkgPiAwDQo+ID4gPiA+ID4gPiAtCQkJZHBka19jb25mLnNl dChmbGFnWzBdLCBmbGFnWzFdKQ0KPiA+ID4gPiA+ID4gKwlkcGRrX2ZsYWdzID0gZmxhZ3NfY29t bW9uX2RlZmF1bHQgKyBpbXBsZW1lbnRlcl9mbGFncw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gKwlpZiBwYXJ0X251bWJlcl9jb25maWcubGVuZ3RoKCkgPiAxDQo+ID4gPiA+ID4gPiArCQlk cGRrX2ZsYWdzICs9IHBhcnRfbnVtYmVyX2NvbmZpZ1sxXQ0KPiA+ID4gPiA+ID4gKwllbmRpZg0K PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwltYWNoaW5lX2FyZ3MgPSBbXSAjIENsZWFyIHBy ZXZpb3VzIG1hY2hpbmUgYXJncw0KPiA+ID4gPiA+ID4gKwlmb3JlYWNoIGZsYWc6IHBhcnRfbnVt YmVyX2NvbmZpZ1swXQ0KPiA+ID4gPiA+ID4gKwkJaWYgY2MuaGFzX2FyZ3VtZW50KGZsYWcpDQo+ ID4gPiA+ID4gPiArCQkJbWFjaGluZV9hcmdzICs9IGZsYWcNCj4gPiA+ID4gPiA+ICAJCWVuZGlm DQo+ID4gPiA+ID4gPiAgCWVuZGZvcmVhY2gNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtCW1l c3NhZ2UoJ0ltcGxlbWVudGVyIDogJyArIG1hY2hpbmVbMF0pDQo+ID4gPiA+ID4gPiAtCWZvcmVh Y2ggZmxhZzogbWFjaGluZVsxXQ0KPiA+ID4gPiA+ID4gKwlmb3JlYWNoIGZsYWc6IGRwZGtfZmxh Z3MNCj4gPiA+ID4gPiA+ICAJCWlmIGZsYWcubGVuZ3RoKCkgPiAwDQo+ID4gPiA+ID4gPiAgCQkJ ZHBka19jb25mLnNldChmbGFnWzBdLCBmbGFnWzFdKQ0KPiA+ID4gPiA+ID4gIAkJZW5kaWYNCj4g PiA+ID4gPiA+ICAJZW5kZm9yZWFjaA0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLQlmb3Jl YWNoIG1hcmc6IG1hY2hpbmVbMl0NCj4gPiA+ID4gPiA+IC0JCWlmIG1hcmdbMF0gPT0gaW1wbF9w bg0KPiA+ID4gPiA+ID4gLQkJCWZvcmVhY2ggZmxhZzogbWFyZ1sxXQ0KPiA+ID4gPiA+ID4gLQkJ CQlpZiBjYy5oYXNfYXJndW1lbnQoZmxhZykNCj4gPiA+ID4gPiA+IC0JCQkJCW1hY2hpbmVfYXJn cyArPSBmbGFnDQo+ID4gPiA+ID4gPiAtCQkJCWVuZGlmDQo+ID4gPiA+ID4gPiAtCQkJZW5kZm9y ZWFjaA0KPiA+ID4gPiA+ID4gLQkJCSMgQXBwbHkgYW55IGV4dHJhIG1hY2hpbmUgc3BlY2lmaWMg ZmxhZ3MuDQo+ID4gPiA+ID4gPiAtCQkJZm9yZWFjaCBmbGFnOiBtYXJnLmdldCgyLCBmbGFnc19k ZWZhdWx0X2V4dHJhKQ0KPiA+ID4gPiA+ID4gLQkJCQlpZiBmbGFnLmxlbmd0aCgpID4gMA0KPiA+ ID4gPiA+ID4gLQkJCQkJZHBka19jb25mLnNldChmbGFnWzBdLA0KPiA+IGZsYWdbMV0pDQo+ID4g PiA+ID4gPiAtCQkJCWVuZGlmDQo+ID4gPiA+ID4gPiAtCQkJZW5kZm9yZWFjaA0KPiA+ID4gPiA+ ID4gLQkJZW5kaWYNCj4gPiA+ID4gPiA+IC0JZW5kZm9yZWFjaA0KPiA+ID4gPiA+ID4gIGVuZGlm DQo+ID4gPiA+ID4gPiAtbWVzc2FnZShtYWNoaW5lX2FyZ3MpDQo+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiArbWVzc2FnZSgnVXNpbmcgbWFjaGluZSBhcmdzOiBAMEAnLmZvcm1hdChtYWNoaW5l X2FyZ3MpKQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICBpZiAoY2MuZ2V0X2RlZmluZSgnX19B Uk1fTkVPTicsIGFyZ3M6IG1hY2hpbmVfYXJncykgIT0gJycgb3INCj4gPiA+ID4gPiA+ICAgICAg Y2MuZ2V0X2RlZmluZSgnX19hYXJjaDY0X18nLCBhcmdzOiBtYWNoaW5lX2FyZ3MpICE9ICcnKQ0K PiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+IDIuMjAuMQ0KDQo=