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 E7D48A04DD; Wed, 28 Oct 2020 17:59:27 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1FBBF4F9C; Wed, 28 Oct 2020 17:59:26 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60047.outbound.protection.outlook.com [40.107.6.47]) by dpdk.org (Postfix) with ESMTP id E0E774F90 for ; Wed, 28 Oct 2020 17:59:24 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xHq3pEO58z3p94EN4CIZD23NT+x9Na+xoy0EKpkoOa4=; b=sdwr5KoYH/ANKDs5RhwHNat0FK+Brt8PWbSC/w+faDWdZSd1webvOBymyF0qj92gFvWVT+ygpsLpyPihF8z8WQlvq5cCXNDKpx8YZxmm3hKwKYIaDWDlF6kxxi/3zjszECWkJDrm+wQeHNPxmiH/qgsuzUADvX3BsN4qd0bSRsY= Received: from AM6PR08CA0007.eurprd08.prod.outlook.com (2603:10a6:20b:b2::19) by AM0PR08MB4433.eurprd08.prod.outlook.com (2603:10a6:208:13b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21; Wed, 28 Oct 2020 16:59:22 +0000 Received: from AM5EUR03FT007.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:b2:cafe::e0) by AM6PR08CA0007.outlook.office365.com (2603:10a6:20b:b2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18 via Frontend Transport; Wed, 28 Oct 2020 16:59:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT007.mail.protection.outlook.com (10.152.16.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3520.15 via Frontend Transport; Wed, 28 Oct 2020 16:59:22 +0000 Received: ("Tessian outbound a64c3afb6fc9:v64"); Wed, 28 Oct 2020 16:59:22 +0000 X-CR-MTA-TID: 64aa7808 Received: from 2060a74386d0.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D931781E-EF16-4DFB-82C3-B6F33BA8AC5D.1; Wed, 28 Oct 2020 16:59:17 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2060a74386d0.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 28 Oct 2020 16:59:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nGM6XfaZJp6hz9Prbi3tDYCmRkh/V7Bf5VUA4vy0FPzdJm2AF1ic2mFzpUkZ4P1Mb4JKI/9ZkVzBVMKfzM08Nx8GnX6CQ6YAsmuv3YSYgaU+VzYZL4jjfnYH3IK/H0s7goFdjo2DPiO29IxdT0/YZ4wFhWdKjjjnOSjLpEy6eyrzm0eTJ3NCEmQLtVkFTcqHVsQ4W3ai+rFWwGZzulbNwb4ot+f8a11ydwVq5tgdXnl0kOJzR3AO+WSV0EaN01JG083l5A1nHxwKGfb3t4CBZJkUn2AyEmLDGgINxJJ9H4ctx7pN5iL4O7RhkxkYstsUHowyzzsJAGpM7CXVTCQXSw== 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=xHq3pEO58z3p94EN4CIZD23NT+x9Na+xoy0EKpkoOa4=; b=TUy0HdHhoWV7bXw23PaxRcci1Ebv3XIG4JpswvZZLkwSBLJn2Sj3a4Z8e1qI+ULT3ulpK7GnZZFpqunj5I/6d0b7Okfb6bzxhzG9GolNG7Zmr2SWVynNGGBTvWYsZ6gdoi7tjDBmDg8JcdyPGt/iLgiMB2GYYksDKjxB6KH45+w9mTU6t59l5wUQlmylH1OF19KnQs2rFSdD6URlneh2/4hxVGG6/ih9WtRl4uGuqYw91zIx8f4/CIBmmnwo3h1WzQkzTvJfGw4c5uGiQD4baW4M2I/XbT3pReGtIMfBDsaP09d/3+GpM3bZuxNXxJrmMpfHeFbpWmSsybZn8os+mQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xHq3pEO58z3p94EN4CIZD23NT+x9Na+xoy0EKpkoOa4=; b=sdwr5KoYH/ANKDs5RhwHNat0FK+Brt8PWbSC/w+faDWdZSd1webvOBymyF0qj92gFvWVT+ygpsLpyPihF8z8WQlvq5cCXNDKpx8YZxmm3hKwKYIaDWDlF6kxxi/3zjszECWkJDrm+wQeHNPxmiH/qgsuzUADvX3BsN4qd0bSRsY= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DBBPR08MB6268.eurprd08.prod.outlook.com (2603:10a6:10:202::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.19; Wed, 28 Oct 2020 16:59:14 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d%4]) with mapi id 15.20.3499.018; Wed, 28 Oct 2020 16:59:07 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= , "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 , Honnappa Nagarahalli , nd Thread-Topic: [PATCH v4 2/6] build: refactor Arm build Thread-Index: AQHWq9bPhcaoO33KoUuGpt+rWvzyyqmsHFuw Date: Wed, 28 Oct 2020 16:59:07 +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> In-Reply-To: <1603464488-25493-3-git-send-email-juraj.linkes@pantheon.tech> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: FDCE090B45CF0340BBF872361967E8FC.0 x-checkrecipientchecked: true Authentication-Results-Original: pantheon.tech; dkim=none (message not signed) header.d=none; pantheon.tech; dmarc=none action=none header.from=arm.com; x-originating-ip: [107.77.220.197] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7bb5ec10-fbf1-49bc-4dbb-08d87b62d191 x-ms-traffictypediagnostic: DBBPR08MB6268:|AM0PR08MB4433: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: i9CIxyZ0vkPgFwwheP8cLFGygIFUabJO2NJElRjUs0AJf8FnXImDUVDr83sW/8SfLBicXT26PvG1O0gftefdon1r2I9IWQGJb7FqxkOAQI46O5CQpgmPIovoCRFaMLFdVBonOQMPtHBnCszGDbi6f0tm4Iv7NeUbs3HuoUiT18QUVq9zseSf6mnYbM3QyDdgx/p6F5l+2mgT3hGgFdgTVgMDuGZ7k5S1ye0gGDR0JELEFVVGMcO9z/rnTExMsHJhHnNCV4CdIL80Jg3M9/I+BnQVTYSIwHdvnzpkA4CoIztrwhrz1OyfyQRe42gQibGBR6zz0w/AP1nwkF6AMEaSiw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(39860400002)(376002)(396003)(136003)(66446008)(66556008)(66476007)(4326008)(64756008)(52536014)(5660300002)(33656002)(86362001)(8676002)(83380400001)(316002)(6506007)(7696005)(110136005)(26005)(186003)(76116006)(71200400001)(30864003)(8936002)(2906002)(55016002)(66946007)(54906003)(478600001)(9686003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: w5dt/l4/F+LvllHzRVub0+/pcCl8KXm9BLdo1Z3hWJNyBOwpKHQYSDcTc04D0IXXzqkoLBy76/ANWYIVydbjvxsX1EGak8nhXzex962AU4oskcf/OiNXjKDVWy1Nm5oJiw+qKUfbxQByJGc4BIYIh1iLWfm7TtITm1wHTAXj7Xqh1vswyT8idZXTr8V/kq1PItT56pq6fM3J+ZHR5U7qZ9fMUBiLd3jbw8uXPf+6zYGz0sOagQtfEmFYFBYG+H2tdZNrHvi/WAQMXxV++oATNsN/anM96HG/4TXkzt5Ml56+jdwYxK4F02+eBn63FoSq0iBaZ7SG46jX8exRyvGYWZJn/3ArXbwER2XgVyiW0a8X8DM5k+J1EDIzQBzeatXthw7O+nQRle4z2uvyOPtBxVK59V+JieZblahbtIHMo447sXMNBksRjDNhe8kc4masSfFAsggyRafq4fPr1PvWIthW323pSUa7JDPNML2iIAk3GBsSuZO63UmBTYp1TryaEnfWnkc2kDBktGH6twEBQSicLd0T80xaCDqC9+UbzceWLneoBVMdG4iVEDcjtYWcmhLQsx2eG/xIg3r0YOCAzsysRbyqOtB6OHiyY3wePfzlvYk+7LYio9mF3lrwWzgm2bUKumWJ6UX7YE53TD/iDA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6268 Original-Authentication-Results: pantheon.tech; dkim=none (message not signed) header.d=none; pantheon.tech; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 8eb06b22-08f8-4e7c-1cbb-08d87b62c8bb X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: e4cdAvzN59ivcuwAveaavM/h5G3O1oKD9/wAM4lTuDMP6JmI3WxoO+AuG02aLEWyIWjxddvQDnIllmBR78KKcp/z6NcPF4yKxtfxjkinWs+SRHrgdZ81xhIbu/i2+XOnBKqIji6kZqFugnfmlyv0AN/UQpEBeGtgR4lugyISfwrklgqC99e3VxOpu2itd+RjJinGwnIKBTxT+Qpa1YcuJQthlQsWidwelCw5iYPrcHw3VEDSNQkTLJxEdXkzEacqeuSDLqG78ZptC5ZrJj/Cm+BKtAZNVZR5HSQNpK1DeXdQ6ReCs8fMAh8tErNmc/7QRwQ74MVyAUPoHuH6wY05e9ye1czCwt7NR9/+DK1FxtRe+xUzI1AiCIs8/FrCkI1Bh2Dr4SbKymvPm2GaKCkeJg== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(39860400002)(136003)(346002)(376002)(396003)(46966005)(478600001)(2906002)(186003)(336012)(9686003)(55016002)(47076004)(110136005)(52536014)(8676002)(8936002)(30864003)(316002)(54906003)(5660300002)(86362001)(7696005)(70586007)(26005)(82740400003)(6506007)(36906005)(33656002)(4326008)(81166007)(83380400001)(82310400003)(70206006)(356005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2020 16:59:22.5133 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7bb5ec10-fbf1-49bc-4dbb-08d87b62d191 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4433 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" PHNuaXA+DQoNCj4gDQo+ICogUmVuYW1lIHZhcmlhYmxlcyB0byBoYXZlIG5hbWVzIHRoYXQgYmV0 dGVyIGRlc2NyaWJlIHdoYXQgdGhlIHZhcmlhYmxlcw0KPiBzdG9yZQ0KPiAqIFJlbW92ZSB1bnVz ZWQgb3Igc3VwZXJmbHVvdXMgdmFyaWFibGVzDQo+ICogQ2hhbmdlIGEgbGlzdCB0byBkaWN0aW9u YXJ5IHdoZXJlIGtleSBsb29rdXAgaXMgbmVlZGVkDQo+ICogQWRkIGluZm9ybWF0b3J5IGNvbW1l bnRzIGluIHRoZSBjb2RlDQo+ICogTWlub3IgY29kZSByZXN0cnVjdHVyZSBhbmQgcmVmb3JtYXR0 aW5nDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNAcGFu dGhlb24udGVjaD4NCj4gLS0tDQo+ICBjb25maWcvYXJtL2FybTY0X2FybWFkYV9saW51eF9nY2Mg ICAgfCAgIDIgKy0NCj4gIGNvbmZpZy9hcm0vYXJtNjRfYXJtdjhfbGludXhfZ2NjICAgICB8ICAg OCArLQ0KPiAgY29uZmlnL2FybS9hcm02NF9ibHVlZmllbGRfbGludXhfZ2NjIHwgICA0ICstDQo+ ICBjb25maWcvYXJtL2FybTY0X2RwYWFfbGludXhfZ2NjICAgICAgfCAgIDIgKy0NCj4gIGNvbmZp Zy9hcm0vYXJtNjRfZW1hZ19saW51eF9nY2MgICAgICB8ICAgMiArLQ0KPiAgY29uZmlnL2FybS9h cm02NF9uMXNkcF9saW51eF9nY2MgICAgIHwgICA0ICstDQo+ICBjb25maWcvYXJtL2FybTY0X29j dGVvbnR4Ml9saW51eF9nY2MgfCAgIDQgKy0NCj4gIGNvbmZpZy9hcm0vYXJtNjRfc3RpbmdyYXlf bGludXhfZ2NjICB8ICAgNCArLQ0KPiAgY29uZmlnL2FybS9hcm02NF90aHVuZGVyeDJfbGludXhf Z2NjIHwgICA0ICstDQo+ICBjb25maWcvYXJtL2FybTY0X3RodW5kZXJ4X2xpbnV4X2djYyAgfCAg IDIgKy0NCj4gIGNvbmZpZy9hcm0vbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8IDI0NyArKysr KysrKysrKysrKystLS0tLS0tLS0tLS0NCj4gIDExIGZpbGVzIGNoYW5nZWQsIDE1MyBpbnNlcnRp b25zKCspLCAxMzAgZGVsZXRpb25zKC0pDQo+IA0KDQo8c25pcD4NCg0KPiBkaWZmIC0tZ2l0IGEv Y29uZmlnL2FybS9tZXNvbi5idWlsZCBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQgaW5kZXgNCj4g NDkxODQyY2FkLi42YzMxYWIxNjcgMTAwNjQ0DQo+IC0tLSBhL2NvbmZpZy9hcm0vbWVzb24uYnVp bGQNCj4gKysrIGIvY29uZmlnL2FybS9tZXNvbi5idWlsZA0KPiBAQCAtMywxMiArMywxMiBAQA0K PiAgIyBDb3B5cmlnaHQoYykgMjAxNyBDYXZpdW0sIEluYw0KPiAgIyBDb3B5cmlnaHQoYykgMjAy MCBQQU5USEVPTi50ZWNoIHMuci5vLg0KPiANCj4gLSMgZm9yIGNoZWNraW5nIGRlZmluZXMgd2Ug bmVlZCB0byB1c2UgdGhlIGNvcnJlY3QgY29tcGlsZXIgZmxhZ3MgLW1hcmNoX29wdA0KPiA9ICct bWFyY2g9QDBAJy5mb3JtYXQobWFjaGluZSkNCj4gLQ0KPiArIyBzZXQgYXJtX2ZvcmNlX25hdGl2 ZV9tYXJjaCBpZiB5b3Ugd2FudCB0byB1c2UgbWFjaGluZSBhcmdzIGJlbG93ICMNCj4gK2luc3Rl YWQgb2YgZGlzY292ZXJlZCB2YWx1ZXM7IG9ubHkgd29ya3Mgd2hlbiBkb2luZyBhbiBhY3R1YWwg bmF0aXZlDQo+ICtidWlsZA0KPiAgYXJtX2ZvcmNlX25hdGl2ZV9tYXJjaCA9IGZhbHNlDQo+IC1h cm1fZm9yY2VfZ2VuZXJpY19tYXJjaCA9IChtYWNoaW5lID09ICdnZW5lcmljJykNCj4gK25hdGl2 ZV9tYWNoaW5lX2FyZ3MgPSBbJy1tYXJjaD1uYXRpdmUnLCAnLW10dW5lPW5hdGl2ZSddDQo+IA0K DQpbLi4uXQ0KDQo+IC0NCj4gLW1hY2hpbmVfYXJnc19kZWZhdWx0ID0gWw0KPiAtCVsnZGVmYXVs dCcsIFsnLW1hcmNoPWFybXY4LWErY3JjJywgJy1tb3V0bGluZS1hdG9taWNzJ11dLA0KPiAtCVsn bmF0aXZlJywgWyctbWFyY2g9bmF0aXZlJ11dLA0KPiAtCVsnMHhkMDMnLCBbJy1tY3B1PWNvcnRl eC1hNTMnXV0sDQo+IC0JWycweGQwNCcsIFsnLW1jcHU9Y29ydGV4LWEzNSddXSwNCj4gLQlbJzB4 ZDA3JywgWyctbWNwdT1jb3J0ZXgtYTU3J11dLA0KPiAtCVsnMHhkMDgnLCBbJy1tY3B1PWNvcnRl eC1hNzInXV0sDQo+IC0JWycweGQwOScsIFsnLW1jcHU9Y29ydGV4LWE3MyddXSwNCj4gLQlbJzB4 ZDBhJywgWyctbWNwdT1jb3J0ZXgtYTc1J11dLA0KPiAtCVsnMHhkMGInLCBbJy1tY3B1PWNvcnRl eC1hNzYnXV0sDQo+IC0JWycweGQwYycsIFsnLW1hcmNoPWFybXY4LjItYStjcmMrY3J5cHRvJywg Jy1tY3B1PW5lb3ZlcnNlLW4xJ10sDQo+IGZsYWdzX24xc2RwX2V4dHJhXV0NCj4gLQ0KPiAtbWFj aGluZV9hcmdzX2Nhdml1bSA9IFsNCj4gLQlbJ2RlZmF1bHQnLCBbJy1tYXJjaD1hcm12OC1hK2Ny YytjcnlwdG8nLCctbWNwdT10aHVuZGVyeCddXSwNCj4gLQlbJ25hdGl2ZScsIFsnLW1hcmNoPW5h dGl2ZSddXSwNCj4gLQlbJzB4YTEnLCBbJy1tY3B1PXRodW5kZXJ4dDg4J10sIGZsYWdzX3RodW5k ZXJ4X2V4dHJhXSwNCj4gLQlbJzB4YTInLCBbJy1tY3B1PXRodW5kZXJ4dDgxJ10sIGZsYWdzX3Ro dW5kZXJ4X2V4dHJhXSwNCj4gLQlbJzB4YTMnLCBbJy1tY3B1PXRodW5kZXJ4dDgzJ10sIGZsYWdz X3RodW5kZXJ4X2V4dHJhXSwNCj4gLQlbJzB4YWYnLCBbJy1tYXJjaD1hcm12OC4xLWErY3JjK2Ny eXB0bycsJy1tY3B1PXRodW5kZXJ4MnQ5OSddLA0KPiBmbGFnc190aHVuZGVyeDJfZXh0cmFdLA0K PiAtCVsnMHhiMicsIFsnLW1hcmNoPWFybXY4LjItYStjcmMrY3J5cHRvK2xzZScsJy1tY3B1PW9j dGVvbnR4MiddLA0KPiBmbGFnc19vY3Rlb250eDJfZXh0cmFdXQ0KPiAtDQo+IC1tYWNoaW5lX2Fy Z3NfZW1hZyA9IFsNCj4gLQlbJ2RlZmF1bHQnLCBbJy1tYXJjaD1hcm12OC1hK2NyYytjcnlwdG8n LCAnLW10dW5lPWVtYWcnXV0sDQo+IC0JWyduYXRpdmUnLCBbJy1tYXJjaD1uYXRpdmUnXV1dDQo+ ICsJWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXQ0KPiArXQ0KPiArIyBhcm0gY29uZmln IChpbXBsZW1lbnRlciAweDQxKSBpcyB0aGUgZGVmYXVsdCBjb25maWcgcG5fY29uZmlnX2RlZmF1 bHQNCldoYXQgZG9lcyBpdCBtZWFuIGJ5ICdkZWZhdWx0JyBoZXJlPyBJIGFtIHNvbWV3aGF0IGNv bmZ1c2VkIGJldHdlZW4gJ2RlZmF1bHQnIGFuZCAnZ2VuZXJpYycuIFdlIHNob3VsZCBsb29rIHRv IHJlbW92ZSAnZGVmYXVsdCcgYXMgbXVjaCBhcyBwb3NzaWJsZSBhbmQgc3RpY2sgd2l0aCAnZ2Vu ZXJpYycuDQoNCj4gKz0gew0KPiArCSdnZW5lcmljJzogW1snLW1hcmNoPWFybXY4LWErY3JjJywg Jy1tb3V0bGluZS1hdG9taWNzJ11dLA0KSSBsaWtlIHRoYXQgd2UgaGF2ZSB0YWtlbiBvdXQgJ25h dGl2ZScgZnJvbSB0aGlzIGxpc3QuIFdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIHRha2Ugb3V0ICdn ZW5lcmljJyBmcm9tIHRoaXMgYW5kIG90aGVycyBiZWxvdy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBi aW5hcnkgYnVpbHQgd2l0aCAnZ2VuZXJpYycgYnVpbGQgc2hvdWxkIHJ1biBvbiBhbnkgQXJtIHBs YXRmb3JtLiBUaGVyZSBpcyBubyBkZXBlbmRlbmN5IG9uIGFueSB1bmRlcmx5aW5nIHBsYXRmb3Jt Lg0KDQo+ICsJJzB4ZDAzJzogW1snLW1jcHU9Y29ydGV4LWE1MyddXSwNCj4gKwknMHhkMDQnOiBb WyctbWNwdT1jb3J0ZXgtYTM1J11dLA0KPiArCScweGQwNyc6IFtbJy1tY3B1PWNvcnRleC1hNTcn XV0sDQo+ICsJJzB4ZDA4JzogW1snLW1jcHU9Y29ydGV4LWE3MiddXSwNCj4gKwknMHhkMDknOiBb WyctbWNwdT1jb3J0ZXgtYTczJ11dLA0KPiArCScweGQwYSc6IFtbJy1tY3B1PWNvcnRleC1hNzUn XV0sDQo+ICsJJzB4ZDBiJzogW1snLW1jcHU9Y29ydGV4LWE3NiddXSwNCj4gKwknMHhkMGMnOiBb WyctbWFyY2g9YXJtdjguMi1hK2NyYytjcnlwdG8nLCAnLW1jcHU9bmVvdmVyc2UtbjEnXSwNCj4g K2ZsYWdzX24xc2RwX2V4dHJhXQ0KJ2ZsYWdzX24xc2RwX2V4dHJhJyBkb2VzIG5vdCBmaXQgaGVy ZS4gRm9yIHRoZSBwYXJ0IG51bWJlciAnMHhkMGMnIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIFNv Q3MgKE4xU0RQIGlzIG9uZSBvZiB0aGVtKS4gU28sIGlmIHRoZSBTb0MgaXMgbm90IGtub3duLCBi dXQgaWYgd2Uga25vdyB0aGF0IHRoZSBDUFUgaXMgTjEsIHRoZW4gd2Ugc2hvdWxkIGJ1aWxkIGEg TjEtR2VuZXJpYyBidWlsZC4NClNvLCBmcm9tIG15IHBlcnNwZWN0aXZlLCB0aGVyZSBhcmUgMyBr aW5kcyBvZiBiaW5hcmllczoNCjEpIGdlbmVyaWMgLSBiZXN0IHBvcnRhYmlsaXR5IC0gIChwb3Nz aWJseSkgbGVhc3Qgb3B0aW1pemVkIGZvciBhIGdpdmVuIHBsYXRmb3JtDQoyKSBDb3JlLUdlbmVy aWMgKGZvciBleDogTjEtZ2VuZXJpYykgLSBQb3J0YWJsZSBvbiBhbGwgTjEgYmFzZWQgU29DcyBv bmx5IC0gT3B0aW1pemVkIGZvciBOMSBjb3Jlcw0KMykgU29DIHNwZWNpZmljIC0gKHBvc3NpYmx5 KSBOb3QgcG9ydGFibGUgLSBNb3N0IG9wdGltaXplZCBmb3IgdGhlIFNvQw0KDQogfSBwbl9jb25m aWdfY2F2aXVtID0gew0KPiArCSdnZW5lcmljJzogW1snLW1hcmNoPWFybXY4LWErY3JjK2NyeXB0 bycsICctbWNwdT10aHVuZGVyeCddXSwNCidnZW5lcmljJyBkb2VzIG5vdCBtYWtlIHNlbnNlIGhl cmUuDQoNCj4gKwknMHhhMSc6IFtbJy1tY3B1PXRodW5kZXJ4dDg4J10sIGZsYWdzX3RodW5kZXJ4 X2V4dHJhXSwNCj4gKwknMHhhMic6IFtbJy1tY3B1PXRodW5kZXJ4dDgxJ10sIGZsYWdzX3RodW5k ZXJ4X2V4dHJhXSwNCj4gKwknMHhhMyc6IFtbJy1tY3B1PXRodW5kZXJ4dDgzJ10sIGZsYWdzX3Ro dW5kZXJ4X2V4dHJhXSwNCj4gKwknMHhhZic6IFtbJy1tYXJjaD1hcm12OC4xLWErY3JjK2NyeXB0 bycsJy1tY3B1PXRodW5kZXJ4MnQ5OSddLA0KPiBmbGFnc190aHVuZGVyeDJfZXh0cmFdLA0KPiAr CScweGIyJzogW1snLW1hcmNoPWFybXY4LjItYStjcmMrY3J5cHRvK2xzZScsJy1tY3B1PW9jdGVv bnR4MiddLA0KPiArZmxhZ3Nfb2N0ZW9udHgyX2V4dHJhXSwgfSBwbl9jb25maWdfZW1hZyA9IHsN Cj4gKwknZ2VuZXJpYyc6IFtbJy1tYXJjaD1hcm12OC1hK2NyYytjcnlwdG8nLCAnLW10dW5lPWVt YWcnXV0gfQ0KU2FtZSBoZXJlLg0KSSB1bmRlcnN0YW5kIHRoYXQgdGhpcyBpcyBjb21pbmcgZnJv bSB0aGUgZXhpc3RpbmcgY29kZS4gQnV0LCBJIHRoaW5rIHdlIHNob3VsZCB0cnkgdG8gc2V0IGl0 IHJpZ2h0Lg0KDQo+IA0KPiAgIyMgQXJtIGltcGxlbWVudGVyIElEIChBUk0gRERJIDA0ODdDLmEs IFNlY3Rpb24gRzcuMi4xMDYsIFBhZ2UgRzctNTMyMSkNCk5pdCwgV291bGQgYmUgZ29vZCB0byBy ZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0aGUgZG9jDQoNCj4gLWltcGxfZ2VuZXJpYyA9IFsnR2Vu ZXJpYyBhcm12OCcsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiAtaW1w bF8weDQxID0gWydBcm0nLCBmbGFnc19hcm0sIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiAtaW1w bF8weDQyID0gWydCcm9hZGNvbScsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0 XQ0KPiAtaW1wbF8weDQzID0gWydDYXZpdW0nLCBmbGFnc19jYXZpdW0sIG1hY2hpbmVfYXJnc19j YXZpdW1dDQo+IC1pbXBsXzB4NDQgPSBbJ0RFQycsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJn c19kZWZhdWx0XQ0KPiAtaW1wbF8weDQ5ID0gWydJbmZpbmVvbicsIGZsYWdzX2dlbmVyaWMsIG1h Y2hpbmVfYXJnc19kZWZhdWx0XSAtaW1wbF8weDRkID0NCj4gWydNb3Rvcm9sYScsIGZsYWdzX2dl bmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XSAtaW1wbF8weDRlID0gWydOVklESUEnLA0KPiBm bGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gLWltcGxfMHg1MCA9IFsnQW1w ZXJlIENvbXB1dGluZycsIGZsYWdzX2VtYWcsIG1hY2hpbmVfYXJnc19lbWFnXQ0KPiAtaW1wbF8w eDUxID0gWydRdWFsY29tbScsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0K PiAtaW1wbF8weDUzID0gWydTYW1zdW5nJywgZmxhZ3NfZ2VuZXJpYywgbWFjaGluZV9hcmdzX2Rl ZmF1bHRdDQo+IC1pbXBsXzB4NTYgPSBbJ01hcnZlbGwgQVJNQURBJywgZmxhZ3NfYXJtYWRhLCBt YWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gLWltcGxfMHg2OSA9IFsnSW50ZWwnLCBmbGFnc19nZW5l cmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0gLWltcGxfZHBhYSA9DQo+IFsnTlhQIERQQUEnLCBm bGFnc19kcGFhLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gK2ltcGxfZ2VuZXJpYyA9IFsnR2Vu ZXJpYyBhcm12OCcsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiAraW1wbF8w eDQxID0gWydBcm0nLCBmbGFnc19hcm0sIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiAraW1wbF8weDQy ID0gWydCcm9hZGNvbScsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiAraW1w bF8weDQzID0gWydDYXZpdW0nLCBmbGFnc19jYXZpdW0sIHBuX2NvbmZpZ19jYXZpdW1dDQo+ICtp bXBsXzB4NDQgPSBbJ0RFQycsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiAr aW1wbF8weDQ5ID0gWydJbmZpbmVvbicsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0 XSBpbXBsXzB4NGQgPQ0KPiArWydNb3Rvcm9sYScsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19k ZWZhdWx0XSBpbXBsXzB4NGUgPSBbJ05WSURJQScsDQo+ICtmbGFnc19nZW5lcmljLCBwbl9jb25m aWdfZGVmYXVsdF0NCj4gK2ltcGxfMHg1MCA9IFsnQW1wZXJlIENvbXB1dGluZycsIGZsYWdzX2Vt YWcsIHBuX2NvbmZpZ19lbWFnXQ0KPiAraW1wbF8weDUxID0gWydRdWFsY29tbScsIGZsYWdzX2dl bmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiAraW1wbF8weDUzID0gWydTYW1zdW5nJywgZmxh Z3NfZ2VuZXJpYywgcG5fY29uZmlnX2RlZmF1bHRdDQo+ICtpbXBsXzB4NTYgPSBbJ01hcnZlbGwg QVJNQURBJywgZmxhZ3NfYXJtYWRhLCBwbl9jb25maWdfZGVmYXVsdF0NCj4gK2ltcGxfMHg2OSA9 IFsnSW50ZWwnLCBmbGFnc19nZW5lcmljLCBwbl9jb25maWdfZGVmYXVsdF0gaW1wbF9kcGFhID0N Cj4gK1snTlhQIERQQUEnLCBmbGFnc19kcGFhLCBwbl9jb25maWdfZGVmYXVsdF0NCj4gDQo+ICBk cGRrX2NvbmYuc2V0KCdSVEVfQVJDSF9BUk0nLCAxKQ0KPiAgZHBka19jb25mLnNldCgnUlRFX0ZP UkNFX0lOVFJJTlNJQ1MnLCAxKQ0KPiANCj4gIGlmIGRwZGtfY29uZi5nZXQoJ1JURV9BUkNIXzMy JykNCj4gKwkjIGFybXY3IGJ1aWxkDQo+ICAJZHBka19jb25mLnNldCgnUlRFX0NBQ0hFX0xJTkVf U0laRScsIDY0KQ0KPiAgCWRwZGtfY29uZi5zZXQoJ1JURV9BUkNIX0FSTXY3JywgMSkNCj4gIAkj IHRoZSBtaW5pbXVtIGFyY2hpdGVjdHVyZSBzdXBwb3J0ZWQsIGFybXY3LWEsIG5lZWRzIHRoZQ0K PiBmb2xsb3dpbmcsDQo+ICAJIyBtay9tYWNoaW5lL2FybXY3YS9ydGUudmFycy5tayBzZXRzIGl0 IHRvbw0KPiAgCW1hY2hpbmVfYXJncyArPSAnLW1mcHU9bmVvbicNCj4gIGVsc2UNCj4gLQlkcGRr X2NvbmYuc2V0KCdSVEVfQ0FDSEVfTElORV9TSVpFJywgMTI4KQ0KPiAtCWRwZGtfY29uZi5zZXQo J1JURV9BUkNIX0FSTTY0JywgMSkNCj4gKwkjIGFhcmNoNjQgYnVpbGQNCj4gKwlpZiBub3QgbWVz b24uaXNfY3Jvc3NfYnVpbGQoKQ0KPiArCQlpZiBtYWNoaW5lID09ICdnZW5lcmljJw0KPiArCQkJ IyBkZWZhdWx0IGJ1aWxkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXl5eXl5eXl5eXl4gR2VuZXJpYyBidWlsZD8NCg0KPiArCQkJaW1wbF9jb25maWcgPSBp bXBsX2dlbmVyaWMNCj4gKwkJCXBhcnRfbnVtYmVyID0gJ2dlbmVyaWMnDQo+ICsJCWVsc2UNCj4g KwkJCSMgbmF0aXZlIGJ1aWxkDQo+ICsJCQkjIFRoZSBzY3JpcHQgcmV0dXJucyBbJ0ltcGxlbWVu dGVyJywgJ1ZhcmlhbnQnLA0KPiAnQXJjaGl0ZWN0dXJlJywNCj4gKwkJCSMgJ1ByaW1hcnkgUGFy dCBudW1iZXInLCAnUmV2aXNpb24nXQ0KPiArCQkJZGV0ZWN0X3ZlbmRvciA9IGZpbmRfcHJvZ3Jh bShqb2luX3BhdGhzKA0KPiArCQkJCQltZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwNCj4gJ2Fy bXY4X21hY2hpbmUucHknKSkNCj4gKwkJCWNtZCA9IHJ1bl9jb21tYW5kKGRldGVjdF92ZW5kb3Iu cGF0aCgpKQ0KPiArCQkJaWYgY21kLnJldHVybmNvZGUoKSA9PSAwDQo+ICsJCQkJY21kX291dHB1 dCA9DQo+IGNtZC5zdGRvdXQoKS50b19sb3dlcigpLnN0cmlwKCkuc3BsaXQoJyAnKQ0KPiArCQkJ ZW5kaWYNCj4gKwkJCWlmIGFybV9mb3JjZV9uYXRpdmVfbWFyY2ggPT0gdHJ1ZQ0KPiArCQkJCXBh cnRfbnVtYmVyID0gJ25hdGl2ZScNCj4gKwkJCWVsc2UNCj4gKwkJCQlwYXJ0X251bWJlciA9IGNt ZF9vdXRwdXRbM10NCj4gKwkJCWVuZGlmDQo+ICsJCQkjIFNldCB0byBnZW5lcmljIGltcGxlbWVu dGVyIGlmIGltcGxlbWVudGVyIGlzIG5vdA0KPiBmb3VuZA0KPiArCQkJaW1wbF9jb25maWcgPSBn ZXRfdmFyaWFibGUoJ2ltcGxfJyArIGNtZF9vdXRwdXRbMF0sDQo+ICdpbXBsX2dlbmVyaWMnKQ0K PiArCQllbmRpZg0KPiArCWVsc2UNCj4gKwkJIyBjcm9zcyBidWlsZA0KPiArCQlpbXBsX2lkID0g bWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdpbXBsZW1lbnRlcl9pZCcsDQo+ICdnZW5lcmljJykN Cj4gKwkJcGFydF9udW1iZXIgPSBtZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHkoJ3BhcnRfbnVtYmVy JywNCj4gJ2dlbmVyaWMnKQ0KPiArCQlpbXBsX2NvbmZpZyA9IGdldF92YXJpYWJsZSgnaW1wbF8n ICsgaW1wbF9pZCkNCj4gKwllbmRpZg0KPiANCj4gLQltYWNoaW5lID0gW10NCj4gLQljbWRfZ2Vu ZXJpYyA9IFsnZ2VuZXJpYycsICcnLCAnJywgJ2RlZmF1bHQnLCAnJ10NCj4gLQljbWRfb3V0cHV0 ID0gY21kX2dlbmVyaWMgIyBTZXQgZ2VuZXJpYyBieSBkZWZhdWx0DQo+IC0JbWFjaGluZV9hcmdz ID0gW10gIyBDbGVhciBwcmV2aW91cyBtYWNoaW5lIGFyZ3MNCj4gLQlpZiBhcm1fZm9yY2VfZ2Vu ZXJpY19tYXJjaCBhbmQgbm90IG1lc29uLmlzX2Nyb3NzX2J1aWxkKCkNCj4gLQkJbWFjaGluZSA9 IGltcGxfZ2VuZXJpYw0KPiAtCQlpbXBsX3BuID0gJ2RlZmF1bHQnDQo+ICsJbWVzc2FnZSgnQXJt IGltcGxlbWVudGVyOiAnICsgaW1wbF9jb25maWdbMF0pDQo+ICsJbWVzc2FnZSgnQXJtIHBhcnQg bnVtYmVyOiAnICsgcGFydF9udW1iZXIpDQo+ICsNCj4gKwlpbXBsZW1lbnRlcl9mbGFncyA9IGlt cGxfY29uZmlnWzFdDQo+ICsJcGFydF9udW1iZXJfY29uZmlnID0gaW1wbF9jb25maWdbMl0NCj4g Kw0KPiArCWlmIHBhcnRfbnVtYmVyX2NvbmZpZy5oYXNfa2V5KHBhcnRfbnVtYmVyKQ0KPiArCQkj IHVzZSB0aGUgc3BlY2lmaWVkIHBhcnRfbnVtYmVyIG1hY2hpbmUgYXJncyBpZiBmb3VuZA0KPiAr CQlwYXJ0X251bWJlcl9jb25maWcgPSBwYXJ0X251bWJlcl9jb25maWdbcGFydF9udW1iZXJdDQo+ ICsJZWxpZiBwYXJ0X251bWJlciA9PSAnbmF0aXZlJw0KPiArCQkjIHVzZSBuYXRpdmUgbWFjaGlu ZSBhcmdzDQo+ICsJCXBhcnRfbnVtYmVyX2NvbmZpZyA9IFtbbmF0aXZlX21hY2hpbmVfYXJnc11d DQo+ICAJZWxpZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKQ0KPiAtCQkjIFRoZSBzY3JpcHQg cmV0dXJucyBbJ0ltcGxlbWVudGVyJywgJ1ZhcmlhbnQnLCAnQXJjaGl0ZWN0dXJlJywNCj4gLQkJ IyAnUHJpbWFyeSBQYXJ0IG51bWJlcicsICdSZXZpc2lvbiddDQo+IC0JCWRldGVjdF92ZW5kb3Ig PSBmaW5kX3Byb2dyYW0oam9pbl9wYXRocygNCj4gLQkJCQltZXNvbi5jdXJyZW50X3NvdXJjZV9k aXIoKSwNCj4gJ2FybXY4X21hY2hpbmUucHknKSkNCj4gLQkJY21kID0gcnVuX2NvbW1hbmQoZGV0 ZWN0X3ZlbmRvci5wYXRoKCkpDQo+IC0JCWlmIGNtZC5yZXR1cm5jb2RlKCkgPT0gMA0KPiAtCQkJ Y21kX291dHB1dCA9IGNtZC5zdGRvdXQoKS50b19sb3dlcigpLnN0cmlwKCkuc3BsaXQoJw0KPiAn KQ0KPiAtCQllbmRpZg0KPiAtCQkjIFNldCB0byBnZW5lcmljIGlmIHZhcmlhYmxlIGlzIG5vdCBm b3VuZA0KPiAtCQltYWNoaW5lID0gZ2V0X3ZhcmlhYmxlKCdpbXBsXycgKyBjbWRfb3V0cHV0WzBd LCBbJ2dlbmVyaWMnXSkNCj4gLQkJaWYgbWFjaGluZVswXSA9PSAnZ2VuZXJpYycNCj4gLQkJCW1h Y2hpbmUgPSBpbXBsX2dlbmVyaWMNCj4gLQkJCWNtZF9vdXRwdXQgPSBjbWRfZ2VuZXJpYw0KPiAt CQllbmRpZg0KPiAtCQlpbXBsX3BuID0gY21kX291dHB1dFszXQ0KPiAtCQlpZiBhcm1fZm9yY2Vf bmF0aXZlX21hcmNoID09IHRydWUNCj4gLQkJCWltcGxfcG4gPSAnbmF0aXZlJw0KPiAtCQllbmRp Zg0KPiArCQkjIGRlZmF1bHQgdG8gZ2VuZXJpYyBtYWNoaW5lIGFyZ3MgaWYgcGFydF9udW1iZXIg aXMgbm90IGZvdW5kDQo+ICsJCSMgYW5kIG5vdCBmb3JjaW5nIG5hdGl2ZSBtYWNoaW5lIGFyZ3MN Cj4gKwkJIyBidXQgZG9uJ3QgZGVmYXVsdCBpbiBjcm9zcy1idWlsZHM7IGlmIHBhcnRfbnVtYmVy IGlzIHNwZWNpZmllZA0KPiArCQkjIGluY29ycmVjdGx5IGluIGEgY3Jvc3MtZmlsZSwgaXQgbmVl ZHMgdG8gYmUgZml4ZWQgdGhlcmUNCj4gKwkJcGFydF9udW1iZXJfY29uZmlnID0gcGFydF9udW1i ZXJfY29uZmlnWydnZW5lcmljJ10NCj4gIAllbHNlDQo+IC0JCWltcGxfaWQgPSBtZXNvbi5nZXRf Y3Jvc3NfcHJvcGVydHkoJ2ltcGxlbWVudG9yX2lkJywNCj4gJ2dlbmVyaWMnKQ0KPiAtCQlpbXBs X3BuID0gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdpbXBsZW1lbnRvcl9wbicsDQo+ICdkZWZh dWx0JykNCj4gLQkJbWFjaGluZSA9IGdldF92YXJpYWJsZSgnaW1wbF8nICsgaW1wbF9pZCkNCj4g KwkJIyBjcm9zcyBidWlsZCBhbmQgcGFydCBudW1iZXIgaXMgbm90IGluIHBhcnRfbnVtYmVyX2Nv bmZpZw0KPiArCQllcnJvcignQ3Jvc3MgYnVpbGQgcGFydCBudW1iZXIgMEAwIG5vdA0KPiBmb3Vu ZC4nLmZvcm1hdChwYXJ0X251bWJlcikpDQo+ICAJZW5kaWYNCj4gDQo+IC0JIyBBcHBseSBDb21t b24gRGVmYXVsdHMuIFRoZXNlIHNldHRpbmdzIG1heSBiZSBvdmVyd3JpdHRlbiBieQ0KPiBtYWNo aW5lDQo+IC0JIyBzZXR0aW5ncyBsYXRlci4NCj4gLQlmb3JlYWNoIGZsYWc6IGZsYWdzX2NvbW1v bl9kZWZhdWx0DQo+IC0JCWlmIGZsYWcubGVuZ3RoKCkgPiAwDQo+IC0JCQlkcGRrX2NvbmYuc2V0 KGZsYWdbMF0sIGZsYWdbMV0pDQo+ICsJZHBka19mbGFncyA9IGZsYWdzX2NvbW1vbl9kZWZhdWx0 ICsgaW1wbGVtZW50ZXJfZmxhZ3MNCj4gKw0KPiArCWlmIHBhcnRfbnVtYmVyX2NvbmZpZy5sZW5n dGgoKSA+IDENCj4gKwkJZHBka19mbGFncyArPSBwYXJ0X251bWJlcl9jb25maWdbMV0NCj4gKwll bmRpZg0KPiArDQo+ICsJbWFjaGluZV9hcmdzID0gW10gIyBDbGVhciBwcmV2aW91cyBtYWNoaW5l IGFyZ3MNCj4gKwlmb3JlYWNoIGZsYWc6IHBhcnRfbnVtYmVyX2NvbmZpZ1swXQ0KPiArCQlpZiBj Yy5oYXNfYXJndW1lbnQoZmxhZykNCj4gKwkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ICAJCWVu ZGlmDQo+ICAJZW5kZm9yZWFjaA0KPiANCj4gLQltZXNzYWdlKCdJbXBsZW1lbnRlciA6ICcgKyBt YWNoaW5lWzBdKQ0KPiAtCWZvcmVhY2ggZmxhZzogbWFjaGluZVsxXQ0KPiArCWZvcmVhY2ggZmxh ZzogZHBka19mbGFncw0KPiAgCQlpZiBmbGFnLmxlbmd0aCgpID4gMA0KPiAgCQkJZHBka19jb25m LnNldChmbGFnWzBdLCBmbGFnWzFdKQ0KPiAgCQllbmRpZg0KPiAgCWVuZGZvcmVhY2gNCj4gLQ0K PiAtCWZvcmVhY2ggbWFyZzogbWFjaGluZVsyXQ0KPiAtCQlpZiBtYXJnWzBdID09IGltcGxfcG4N Cj4gLQkJCWZvcmVhY2ggZmxhZzogbWFyZ1sxXQ0KPiAtCQkJCWlmIGNjLmhhc19hcmd1bWVudChm bGFnKQ0KPiAtCQkJCQltYWNoaW5lX2FyZ3MgKz0gZmxhZw0KPiAtCQkJCWVuZGlmDQo+IC0JCQll bmRmb3JlYWNoDQo+IC0JCQkjIEFwcGx5IGFueSBleHRyYSBtYWNoaW5lIHNwZWNpZmljIGZsYWdz Lg0KPiAtCQkJZm9yZWFjaCBmbGFnOiBtYXJnLmdldCgyLCBmbGFnc19kZWZhdWx0X2V4dHJhKQ0K PiAtCQkJCWlmIGZsYWcubGVuZ3RoKCkgPiAwDQo+IC0JCQkJCWRwZGtfY29uZi5zZXQoZmxhZ1sw XSwgZmxhZ1sxXSkNCj4gLQkJCQllbmRpZg0KPiAtCQkJZW5kZm9yZWFjaA0KPiAtCQllbmRpZg0K PiAtCWVuZGZvcmVhY2gNCj4gIGVuZGlmDQo+IC1tZXNzYWdlKG1hY2hpbmVfYXJncykNCj4gKw0K PiArbWVzc2FnZSgnVXNpbmcgbWFjaGluZSBhcmdzOiBAMEAnLmZvcm1hdChtYWNoaW5lX2FyZ3Mp KQ0KPiANCj4gIGlmIChjYy5nZXRfZGVmaW5lKCdfX0FSTV9ORU9OJywgYXJnczogbWFjaGluZV9h cmdzKSAhPSAnJyBvcg0KPiAgICAgIGNjLmdldF9kZWZpbmUoJ19fYWFyY2g2NF9fJywgYXJnczog bWFjaGluZV9hcmdzKSAhPSAnJykNCj4gLS0NCj4gMi4yMC4xDQoNCg==