From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web12.16118.1637695254078059660 for ; Tue, 23 Nov 2021 11:20:55 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=jNKherF9; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10177"; a="234931924" X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="234931924" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2021 11:20:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,258,1631602800"; d="scan'208";a="571170879" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga004.fm.intel.com with ESMTP; 23 Nov 2021 11:20:52 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 23 Nov 2021 11:20:51 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 23 Nov 2021 11:20:51 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 23 Nov 2021 11:20:51 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.40) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 23 Nov 2021 11:20:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DIRAtGzz1rRLWUyQtE3nIvDHX8bp/hiMuFg8CBnUyO3GSuNjAFELiabtyvqoMw4nyGJjtLVFDaC1SasHQ2XxC1qa7PIDz3S8K8Zj4JIHKmfYVxuFDa9QR0CRTXjrlTeflpO5bsFPj7Ef0H7X44ri8x6p0C//yhvpKixKiSJek0EPtD7HsYIkHQFmWoBfsmTkulAG76M9ocTWKAigZV5BMq9xqYNLRyiwHZtKQ7FEwDJ2He6ppHPtoEWQqwqhF6NxoHirWWqUiWXJWWL7iAW7MPxws3Kky0R1cgODVc3+lycnOfCFH5m2Nsky3PUEmeEmvTdOD0osdypdkJGI+jL4Zg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DNe8197WvDBW45+PIIa+tpQXfvbfXaICVCX80sxgrmg=; b=N9vMD5xjwXxmc3LaJQduG00Bl/8wBXCAfm5+G2JkQU0MT5aHQshGXx/Gj2awqNhJeP5NnQUdzMOFUbTmPIUXG0M08PsI/OU6O2suxI2hdrhqtSAvSlKvgZruP0lygbD6vHLZ1m4LHdiIflRoT+K2+ta0w+Cb2Xh0t796EIdKCDkvkDBjb8o9ACIuuwafJkMwULthEM1pfyUgjir4noAPuESd0JN1RiJnms/ag3VTQas4n3Mct2Xt4wvSknTurPJ6yr3eYbOHt+u1y1/cBNYUd3mUq7dhoO8RhaTeF/VtFqG9Qs5oNzTI4esE54UC80+y1gnlguojm/jV6HXeZ+173g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DNe8197WvDBW45+PIIa+tpQXfvbfXaICVCX80sxgrmg=; b=jNKherF9RQDjUaoj6wF6lE08euSZb5on7jXX54DkSCJorSi5vrzD1WIM/B/mMEejYwQQcsrW3H8CUDyrj+gi8zcAKG3vnOhZ8diRazGZ3W6LggUmrdae+I1TARi9Qy23IKy0WTfE0mMqYRRLBEW+Ko3JrhXvgo6m1kNZbCyaVJ4= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CO1PR11MB5090.namprd11.prod.outlook.com (2603:10b6:303:96::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24; Tue, 23 Nov 2021 19:20:48 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%6]) with mapi id 15.20.4713.025; Tue, 23 Nov 2021 19:20:48 +0000 From: "Michael D Kinney" To: "mikuback@linux.microsoft.com" , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Liming Gao , Sean Brogan , Bret Barkelew Subject: Re: [PATCH v1 1/1] .pytool/Plugin/Uncrustify: Add Uncrustify plugin Thread-Topic: [PATCH v1 1/1] .pytool/Plugin/Uncrustify: Add Uncrustify plugin Thread-Index: AQHX4IrNh5Jkx7pxZ0SyWQSHR0ZF8qwReqdg Date: Tue, 23 Nov 2021 19:20:48 +0000 Message-ID: References: <20211123165352.2001-1-mikuback@linux.microsoft.com> In-Reply-To: <20211123165352.2001-1-mikuback@linux.microsoft.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2946c3aa-1875-41b9-4d74-08d9aeb65b30 x-ms-traffictypediagnostic: CO1PR11MB5090: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F4jEqBZXmC0EoafZ1PzeohULlZGi1BWiMvq5lLYnNpMiA4GqPQ10woBIMWv1e3q4srzN9o9f6fcsCib5l1rUoRK/eOUOQVpIHi4tSblKpEkF8q30LUWMMSiUEKAuIIxMzJAsw6qf/byYqlx/V7Xe1wMHSG5o8ORUt9RKUEEXJVpmUTmyYPNtNcwzOej/jBNxPK3eraCB62qQZDFJu2giIMEtpJWys8yi6RDwgxIu4CdkB/cXIUgZnRVtHpTcFObn2CyGrf+/WzN7R7MkJ4rIJZX1X5YiIdb7rVsmE9BlfbS9upogVhx5IIbZLYffo3mv/BlSpBjV4WPcVH5MX79i8GLSt6bzU3Pwlp7l0fOrpcKbjZ+zcQhlN7d12YwKeRh/JjdU7RwHe/9IGjTF2DZdfBGUQ9EjwlOrknF9Z6D30YFnIP/5gloUKXYXtoGhZ3tYOqOGSOy2SoR6onpmaRp+U73ZaxmmzGX3HUNk/d6xPYbhruMEOJi3uMS7/vVCnWNI8uB8DRHkRvcIxjmq2TIX/P9VK2VY4lX97K/S81hUQwRwg7hd7MMUVqaKYsei72XjsQTpMneQ+HpMI6WashjIf9t+54yJnZcOe7A7IZbSEPYia4ANHoPpFeURean+mOVz/v3Qsa0s6NVgLIWTN9LnTgsknOoUmN6cZn0wxBTzVxx16qFgyxdQ9qNLG5Y9lGMV11j8mLNYfQiifQmBAiHhC5aViP1LoaoeQjCIeMskOPyAhtFggTuQuH8Ug0DEgTxjSXu1mhJnLlCZpNz+lO594iAL6TTCAz/Mi4h79etE6LsaVb9kFMi6EmfnghRNXAUXQYExJbMzlokxhFeTalv1Sg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(45080400002)(66556008)(82960400001)(64756008)(52536014)(66476007)(66446008)(83380400001)(55016003)(4326008)(71200400001)(8676002)(86362001)(122000001)(6506007)(26005)(5660300002)(30864003)(76116006)(966005)(2906002)(38070700005)(110136005)(9686003)(316002)(8936002)(66946007)(54906003)(508600001)(33656002)(7696005)(19627235002)(186003)(38100700002)(53546011)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S1diZmxLai9xK29WdWhDUFlDbDdEL2dTdUJkVE1jeWlTdlpBWlhrNGxSd3NJ?= =?utf-8?B?ZG9XR3VCdFJWbFFDMklhVEZVZkF4YlYzMFhtMWdVRWFMbnErWVZWaFkvM2pX?= =?utf-8?B?WWRPQ2xNOHpNemw3cUVGdmZrK2U5QnlDaVRwK0N2RTRacndjODg0MUJLOGxF?= =?utf-8?B?b0VnODJDMjdqeDFSVU5BTnNYSW5aZGhXTW5hV0dtM3lrRldLcWhyeWprSy8r?= =?utf-8?B?VTJYbnFlSXZaeFJPYjYrdUtZbUNVZGNOdGc0VFJzVEhHbUNUamtCelJFdmtw?= =?utf-8?B?NFNsdWdkZVZha1BBaHBISWlQS1BSakdySmVDZnkwRS9xNG50aVRVRnhubjBG?= =?utf-8?B?WjU3WkpYTE15NHloR1BxdjJlM2VTR3pzWnY3ZXNCeWJLL05VYnRyb1lSV2Fv?= =?utf-8?B?dkNuOEdETyttaGpCakRtR2dWWi84RnZMb3U2STd4SnIxZnRJV3FLTXZaSndv?= =?utf-8?B?R3dTZ055N2p2V0tldVlMWnVRYTdFenVGZzVORi8zRzU2cHJ0aG9abTZjbEVK?= =?utf-8?B?VFo5VWlZQ2Uxa3pTYjBUM0JQQmZUc01hZnVheHlDUnFKRFpCT3NObkx4RHF4?= =?utf-8?B?cjRnTzI3ZEI5V0lSaDQ3Z0RFdk9CNzhyMFc0bklDL1dtR3dIVDNTNDQ5dkFM?= =?utf-8?B?VDNFb3B0MXM4a0dDeVNEWWM0bHJ3Q2d6dExDbk9GTXlPY0xoaFRDaVpObE14?= =?utf-8?B?Z1VzVlpzRzJhNENxeVBmL1N5dmZZNWxHemhKQkhrODBKeWFWY1VlK0ludzE3?= =?utf-8?B?dkxiUkpYaWNyVmdSU0RacmwrcWdIamZ3S0FUM0p3bTc3MHFvRTRUc1pmRTJv?= =?utf-8?B?MUNCUEhYK3hHa0p0Vm0rRmpDUFlzdTd1bTdGcUtaZW5qeVdaVmNEcVIxeWNS?= =?utf-8?B?aHFJVVcxdGUxSnRteFZWSzJJZ3oyVDFMVHJ4UUxLd0FiUDkrMGxzRVZWV2hP?= =?utf-8?B?SjFhU1hSYVgyeTBJTENydytUTjdHeWFPZ3B4bldrUVgvL3JrNGIwRVRJZi9r?= =?utf-8?B?Lyt3ZGh6aTkyNmcrcFc4dEF6SlVmaHJtRFgxOVdab2xnbzZ2M3BidG55TzlZ?= =?utf-8?B?VUF3VGdqZVhRL1IyMUdlRFpTeVhrU3E2Wi82MmhiUDE3TmRxbld4aDVnZGRr?= =?utf-8?B?SFhma0FSNnBXWGxHU3U2Z0RydGt0c0FlTytxVGxURWZiYURVa2szWHBoZ3pN?= =?utf-8?B?TzJkL3JoU1ViWXFsOVNLT3pkeGtWV0lGOFFsMWdFeGgvOUZtdDByWkZ1Vk5K?= =?utf-8?B?T0pveWVKNFdJdnZ3MktMUE5HWk5FRWhTWGZLNmUrbFBNQ2JkbDRqTzVuanp3?= =?utf-8?B?dnQ4Vzd2TDlhQ1p4VnZBZmdrR3IwUXR5ODk1cjV1UVdYQlBua2F4Nk1WSUNo?= =?utf-8?B?Yk5aWjZMNmNSbU5BMEpOUWtNT085QVFPNkdMS2FBU3JLbnlxell5R0p3WjBw?= =?utf-8?B?QWNQeTBDRlNxUWhEVFdadlc5T0dTWWtlaUZkS2JsMW5FQUh3Z2d4M3hOdGZT?= =?utf-8?B?MHJuTXh6bjU1RHBRQWRMMXlUTGpsazBNOUhSenhKdUFDeFprU0Z3V1ZmbFRD?= =?utf-8?B?K0pqOER4a3RhQUg4bWQ3RU9KQkRSdDdNRzllbnN5MTZQb0Nubk1OYUM5bnlt?= =?utf-8?B?UHlUUDNhdEFmWUpmMy9XcXhIWENJdUV6RVBDbHMxYnNqdUxpWlZ3YjVUOE5i?= =?utf-8?B?N2NTM2hCTlF2VkVsLytORXE5VnFMczI5dFpjZWxHcUNxczhqQ3ZGcStVU2lO?= =?utf-8?B?eHdsUzZjbXRWYUQraUZLQkVJYzhNQmtkNlU4bWtYbjd5VXBjNmowcnZBS0hS?= =?utf-8?B?R0grazlXenJ2OEJ1U0xiTUJrRi9KN01uL1JUa3NKWStncWZYS1l0Nkt0Yit3?= =?utf-8?B?ZXZxQ0FiR0M0Zm0yYU4rZzMvbFhhN1NVRCtMKytFQUFCdEFOSnJGYkUxTkNu?= =?utf-8?B?cDRlM0o2SVVBTjRRWXFLMitiN1VHVWc5bENNdmRLVDhZQk0xaG5Vb0pLa3Ew?= =?utf-8?B?SnpCY0U0eUlYZmJkVDBHamNDV2ZqYk5KMFAwMFdNQ3RXcFlRNm11dUdJMWtB?= =?utf-8?B?bUpJSk5WQzI1N3ZicUpYSnYrZWVFclI3UFhER2wyekNneG1HMDdTdzM5L1Fk?= =?utf-8?B?NElhb1YwdFI4QmFHQmpjTWNRbXk5ZDk5QjVPQzlQUW5saXErRkh3LzZmanY4?= =?utf-8?B?SGZ1ZWZyNnR5NmhlQkgvK2dlNmFrZjAxOE9NRTBDaHp5emgwaGRDNG9hOWlO?= =?utf-8?B?eHZxcTF4R09UT0ppZ0src3c5VTZ3PT0=?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2946c3aa-1875-41b9-4d74-08d9aeb65b30 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2021 19:20:48.4937 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: rrMhiqokhbFEoUECrdMVAGBojO3SrKeOJnpPfDaSh4dIOUUQx058Wg9YjxviDLgi2JuCfeY/Ny/vEQf2k83GgSkzWnycfn3L0bbeI6dPRzw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5090 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWljaGFlbCwNCg0KSGF2ZSB5b3Ugb3BlbmVkIGEgQlogZm9yIHRoaXMgZmVhdHVyZT8gIENh biB5b3UgZG8gdGhhdCBhbmQgYWRkIFJFRjogdG8gdGhlIGNvbW1pdCBtZXNzYWdlPw0KDQpBbHNv LCB0aGUgdGVtcGxhdGUgZmlsZXMgZm9yIHVuY3J1c3RpZnkgbmVlZCB0byBiZSB1cGRhdGVkIHRv IG1hdGNoIHRoZSBjb250ZW50cw0KZnJvbSB0aGUgRURLIElJIEMgQ29kaW5nIFN0YW5kYXJkLiAg UGVhc2Ugc2VlIHRoZSBmaWxlIGFuZCBmdW5jdGlvbiBoZWFkZXIgdGVtcGxhdGVzDQppbiB0aGlz IGxvY2F0aW9uOg0KDQogICAgaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvdHJlZS9C dWdfMzczN19BcHBseVVuY3J1c3RpZnlDaGFuZ2VzX1Y0Ly51bmNydXN0aWZ5DQoNCkkgYWxzbyBz ZWUgeW91IHVzZSBhIHRlbXAgZGlyZWN0b3J5IGluIEJ1aWxkIG91dHB1dDoNCg0KPiArICAgICAg ICBzZWxmLl93b3JraW5nX2RpciA9IG9zLnBhdGguam9pbigNCj4gKyAgICAgICAgICAgIHNlbGYu X2Fic193b3Jrc3BhY2VfcGF0aCwgIkJ1aWxkIiwgc2VsZi5fcGFja2FnZV9uYW1lLCAiVW5jcnVz dGlmeVBsdWdpbiIpDQoNCkluIHRoZSBFY2NDaGVjayBhbmQgTGljZW5zZUNoZWNrIHBhdGNoZXMg SSBzZW50IGVhcmxpZXIgdG9kYXksIEkgZGVjaWRlZCB0byBwdXQgYWxsDQp0ZW1wIGRpcmVjdG9y aWVzIGFzc29jaWF0ZWQgd2l0aCBweXRvb2xzIFBsdWdpbnMgaW4gdGhlIHBhdGg6DQoNCiAgICBC dWlsZC8ucHl0b29sL1BsdWdpbi88UGx1Z2luTmFtZT4NCg0KVGhpcyBwcm92aWRlIGEgdW5pcXVl IHBhdGggZm9yIHRlbXAgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIFBsdWdpbnMgdGhhdCBtYXRjaGVz DQp0aGUgc291cmNlIHBhdGggdG8gdGhlIFBsdWdpbiBzbyBwbHVnaW5zIHdpbGwgbmV2ZXIgdXNl IHRoZSBzYW1lIHRlbXAgZGlyIHBhdGgNCmFuZCBlYWNoIHBsdWdpbiBjYW4gc2FmZWx5IGNsZWFu IHVwIGl0cyBvd24gdGVtcCBkaXJlY3RvcnkuDQoNClRoYW5rcywNCg0KTWlrZQ0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5j b20gPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVt YmVyIDIzLCAyMDIxIDg6NTQgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBL aW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBMaW1pbmcgR2Fv IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBTZWFuIEJyb2dhbg0KPiA8c2Vhbi5icm9nYW5A bWljcm9zb2Z0LmNvbT47IEJyZXQgQmFya2VsZXcgPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNv bT4NCj4gU3ViamVjdDogW1BBVENIIHYxIDEvMV0gLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeTog QWRkIFVuY3J1c3RpZnkgcGx1Z2luDQo+IA0KPiBGcm9tOiBNaWNoYWVsIEt1YmFja2kgPG1pY2hh ZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiANCj4gQWRkcyBhIG5ldyBDSSBwbHVnaW4gZm9y IFVuY3J1c3RpZnkuIFRoaXMgaXMgdXNlZCB0byBjaGVjaw0KPiBjb2Rpbmcgc3RhbmRhcmQgY29t cGxpYW5jZSBvZiBzb3VyY2UgY29kZSB0byB0aGUgRURLIElJIEMgQ29kaW5nDQo+IFN0YW5kYXJk cyBTcGVjaWZpY2F0aW9uLg0KPiANCj4gQW4gZXh0ZXJuYWwgZGVwZW5kZW5jeSBpcyBhZGRlZCBp biB0aGUgcGx1Z2luIGRpcmVjdG9yeSB0byByZXRyaWV2ZQ0KPiB0aGUgVW5jcnVzdGlmeSBleGVj dXRhYmxlLiBDdXJyZW50bHksIHRoZSBleGVjdXRhYmxlIGlzIGZyb20gYW4gZWRrMg0KPiBmb3Jr IG9mIHRoZSBhcHBsaWNhdGlvbi4NCj4gDQo+IFRoZSBkZWZhdWx0IFVuY3J1c3RpZnkgY29uZmln dXJhdGlvbiBmaWxlcyBhcmUgYWRkZWQgaW4gdGhlIHBsdWdpbg0KPiBkaXJlY3RvcnkuIEFkZGl0 aW9uYWwgZGV0YWlscyBhcmUgaW4gdGhlIFJlYWRtZS5tZCBmaWxlIGFkZGVkIGluDQo+IHRoZSBV bmNydXN0aWZ5IHBsdWdpbiBkaXJlY3RvcnkuDQo+IA0KPiBOb3RlOiBBIFYyIGlzIHBsYW5uZWQg dGhhdCB3aWxsIGZhaWwgdGhlIFVuY3J1c3RpZnkgcGx1Z2luIHJlc3VsdHMNCj4gaWYgYSBmaWxl IG9yIGZ1bmN0aW9uIHRlbXBsYXRlIGhlYWRlciBpcyBmb3VuZCBpbiBhIGZvcm1hdHRlZCBmaWxl Lg0KPiBUaGlzIHdpbGwgYmUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGFkZGVkIGluIHRoZSBw bHVnaW4gYW5kIHdpbGwNCj4gbm90IGNoYW5nZSB0aGUgd2F5IFVuY3J1c3RpZnkgaXMgaW52b2tl ZC4NCj4gDQo+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IFNl YW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiBDYzogQnJldCBCYXJrZWxl dyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVs IEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiAtLS0NCj4gIC5weXRv b2wvUGx1Z2luL1VuY3J1c3RpZnkvUmVhZG1lLm1kICAgICAgICAgICAgICAgICAgIHwgMTE2ICsr KysNCj4gIC5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlmeS5weSAgICAgICAgICAg ICAgIHwgNTU2ICsrKysrKysrKysrKysrKysrKysrDQo+ICAucHl0b29sL1BsdWdpbi9VbmNydXN0 aWZ5L2RlZmF1bHRfZmlsZV9oZWFkZXIudHh0ICAgICB8ICAgOSArDQo+ICAucHl0b29sL1BsdWdp bi9VbmNydXN0aWZ5L2RlZmF1bHRfZnVuY3Rpb25faGVhZGVyLnR4dCB8ICAxNSArDQo+ICAucHl0 b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnkuY2ZnICAgICAgICAgICAgICB8IDQ2NiAr KysrKysrKysrKysrKysrDQo+ICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnlf ZXh0X2RlcC55YW1sICAgICB8ICAxNiArDQo+ICAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L3Vu Y3J1c3RpZnlfcGx1Z19pbi55YW1sICAgICB8ICAxMiArDQo+ICAucHl0b29sL1JlYWRtZS5tZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArDQo+ICA4IGZpbGVzIGNo YW5nZWQsIDExOTQgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhLy5weXRvb2wvUGx1 Z2luL1VuY3J1c3RpZnkvUmVhZG1lLm1kIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS9SZWFk bWUubWQNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi40NjU4 NmQ4MWM2OGMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0 aWZ5L1JlYWRtZS5tZA0KPiBAQCAtMCwwICsxLDExNiBAQA0KPiArIyBVbmNydXN0aWZ5IFBsdWdp bg0KPiArDQo+ICtUaGlzIENpQnVpbGRQbHVnaW4gc2NhbnMgYWxsIHRoZSBmaWxlcyBpbiBhIGdp dmVuIHBhY2thZ2UgYW5kIGNoZWNrcyBmb3IgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaXNz dWVzLg0KPiArDQo+ICtUaGlzIHBsdWdpbiByZXF1aXJlcyB0aGUgZGlyZWN0b3J5IGNvbnRhaW5p bmcgdGhlIFVuY3J1c3RpZnkgZXhlY3V0YWJsZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGlz IHBsdWdpbiB0bw0KPiArYmUgc3BlY2lmaWVkIGluIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5h bWVkIGBVTkNSVVNUSUZZX0NJX1BBVEhgLiBUaGlzIHVuaXF1ZSB2YXJpYWJsZSBuYW1lIGlzIHVz ZWQgdG8gYXZvaWQgY29uZnVzaW9uDQo+ICt3aXRoIG90aGVyIHBhdGhzIHRvIFVuY3J1c3RpZnkg d2hpY2ggbWlnaHQgbm90IGJlIHRoZSBleHBlY3RlZCBidWlsZCBmb3IgdXNlIGJ5IHRoaXMgcGx1 Z2luLg0KPiArDQo+ICtCeSBkZWZhdWx0LCBhbiBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmls ZSBuYW1lZCAidW5jcnVzdGlmeS5jZmciIGxvY2F0ZWQgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFz IHRoZSBwbHVnaW4gaXMNCj4gK3VzZWQuIFRoZSB2YWx1ZSBjYW4gYmUgb3ZlcnJpZGRlbiB0byBh IHBhY2thZ2Utc3BlY2lmaWMgcGF0aCB3aXRoIHRoZSBgQ29uZmlnRmlsZVBhdGhgIGNvbmZpZ3Vy YXRpb24gZmlsZSBvcHRpb24uDQo+ICsNCj4gKyogVW5jcnVzdGlmeSBzb3VyY2UgY29kZSBhbmQg ZG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9naXRodWIuY29tL3VuY3J1c3RpZnkvdW5jcnVzdGlmeQ0K PiArKiBQcm9qZWN0IE11IFVuY3J1c3RpZnkgZm9yayBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRh dGlvbjogaHR0cHM6Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5DQo+ICsNCj4g KyMjIEZpbGVzIENoZWNrZWQgaW4gYSBQYWNrYWdlDQo+ICsNCj4gK0J5IGRlZmF1bHQsIHRoaXMg cGx1Z2luIHdpbGwgZGlzY292ZXIgYWxsIGZpbGVzIGluIHRoZSBwYWNrYWdlIHdpdGggdGhlIGZv bGxvd2luZyBkZWZhdWx0IHBhdGhzOg0KPiArDQo+ICtgYGBweXRob24NCj4gK1sNCj4gKyMgQyBz b3VyY2UNCj4gKyIqLmMiLA0KPiArIiouaCINCj4gK10NCj4gK2BgYA0KPiArDQo+ICtGcm9tIHRo aXMgbGlzdCBvZiBmaWxlcywgYW55IGZpbGVzIGlnbm9yZWQgYnkgR2l0IG9yIHJlc2lkaW5nIGlu IGEgR2l0IHN1Ym1vZHVsZSB3aWxsIGJlIHJlbW92ZWQuIElmIEdpdCBpcyBub3QNCj4gK2ZvdW5k LCBzdWJtb2R1bGVzIGFyZSBub3QgZm91bmQsIG9yIGlnbm9yZWQgZmlsZXMgYXJlIG5vdCBmb3Vu ZCBubyBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBsaXN0IG9mIGRpc2NvdmVyZWQgZmlsZXMuDQo+ ICsNCj4gK1RvIGNvbnRyb2wgdGhlIHBhdGhzIGNoZWNrZWQgaW4gYSBnaXZlbiBwYWNrYWdlLCBy ZXZpZXcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBkZXNjcmliZWQgaW4gdGhpcyBmaWxlLg0K PiArDQo+ICsjIyBDb25maWd1cmF0aW9uDQo+ICsNCj4gK1RoZSBwbHVnaW4gY2FuIGJlIGNvbmZp Z3VyZWQgd2l0aCBhIGZldyBvcHRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuDQo+ICsNCj4g K2BgYCB5YW1sDQo+ICsgICJVbmNydXN0aWZ5Ijogew0KPiArICAgICAgIkF1ZGl0T25seSI6IEZh bHNlLCAgICAgICAgICAgIyBEb24ndCBmYWlsIHRoZSBidWlsZCBpZiB0aGVyZSBhcmUgZXJyb3Jz LiBKdXN0IGxvZyB0aGVtLg0KPiArICAgICAgIk91dHB1dEZpbGVEaWZmcyI6IEZhbHNlICAgICAg IyBPdXRwdXQgY2h1bmtzIG9mIGZvcm1hdHRpbmcgZGlmZnMgaW4gdGhlIHRlc3QgY2FzZSBsb2cu DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgY2FuIHNpZ25p ZmljYW50bHkgc2xvdyBkb3duIHRoZSBwbHVnaW4gb24gdmVyeSBsYXJnZSBwYWNrYWdlcy4NCj4g KyAgICAgICJDb25maWdGaWxlUGF0aCI6ICIiLCAgICAgICAgICMgQ3VzdG9tIHBhdGggdG8gYW4g VW5jcnVzdGlmeSBjb25maWcgZmlsZS4gUGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgcGFja2FnZS4N Cj4gKyAgICAgICJJZ25vcmVTdGFuZGFyZFBhdGhzIjogW10sICAgICMgU3RhbmRhcmQgUGx1Z2lu IGRlZmluZWQgcGF0aHMgdGhhdCBzaG91bGQgYmUgaWdub3JlZC4NCj4gKyAgICAgICJBZGRpdGlv bmFsSW5jbHVkZVBhdGhzIjogW10gICMgQWRkaXRpb25hbCBwYXRocyB0byBjaGVjayBmb3JtYXR0 aW5nICh3aWxkY2FyZHMgc3VwcG9ydGVkKS4NCj4gKyAgfQ0KPiArYGBgDQo+ICsNCj4gKyMjIyBg QWRkaXRpb25hbEluY2x1ZGVQYXRoc2ANCj4gKw0KPiArQSBwYWNrYWdlIGNvbmZpZ3VyYXRpb24g ZmlsZSBjYW4gc3BlY2lmeSBhbnkgYWRkaXRpb25hbCBwYXRocyB0byBiZSBpbmNsdWRlZCB3aXRo IHRoaXMgb3B0aW9uLg0KPiArDQo+ICtBdCB0aGlzIHRpbWUsIGl0IGlzIHJlY29tbWVuZGVkIGFs bCBmaWxlcyBydW4gYWdhaW5zdCB0aGUgcGx1Z2luIGJlIHdyaXR0ZW4gaW4gdGhlIEMgb3IgQysr IGxhbmd1YWdlLg0KPiArDQo+ICsjIyMgYEF1ZGl0T25seWANCj4gKw0KPiArYEJvb2xlYW5gIC0g RGVmYXVsdCBpcyBgRmFsc2VgLg0KPiArDQo+ICtJZiBgVHJ1ZWAsIHJ1biB0aGUgdGVzdCBpbiBh biAiYXVkaXQgb25seSBtb2RlIiB3aGljaCB3aWxsIGxvZyBhbGwgZXJyb3JzIGJ1dCBpbnN0ZWFk IG9mIGZhaWxpbmcgdGhlIGJ1aWxkLCBpdCB3aWxsIHNldA0KPiArdGhlIHRlc3QgYXMgc2tpcHBl ZC4gVGhpcyBhbGxvd3MgdmlzaWJpbGl0eSBpbnRvIHRoZSBmYWlsdXJlcyB3aXRob3V0IGJyZWFr aW5nIHRoZSBidWlsZC4NCj4gKw0KPiArIyMjIGBDb25maWdGaWxlUGF0aGANCj4gKw0KPiArYFN0 cmluZ2AgLSBEZWZhdWx0IGlzIGAidW5jcnVzdGlmeS5jZmciYA0KPiArDQo+ICtXaGVuIHNwZWNp ZmllZCBpbiB0aGUgY29uZmlnIGZpbGUsIHRoaXMgaXMgYSBwYWNrYWdlIHJlbGF0aXZlIHBhdGgg dG8gdGhlIFVuY3J1c3RpZnkgY29uZmlndXJhdGlvbiBmaWxlLg0KPiArDQo+ICsjIyMgYElnbm9y ZVN0YW5kYXJkUGF0aHNgDQo+ICsNCj4gK1RoaXMgcGx1Z2luIGJ5IGRlZmF1bHQgd2lsbCBjaGVj ayB0aGUgYmVsb3cgc3RhbmRhcmQgcGF0aHMuIEEgcGFja2FnZSBjb25maWd1cmF0aW9uIGZpbGUg Y2FuIHNwZWNpZnkgYW55IG9mIHRoZXNlIHBhdGhzDQo+ICt0byBiZSBpZ25vcmVkLg0KPiArDQo+ ICtgYGBweXRob24NCj4gK1sNCj4gKyMgQyBzb3VyY2UNCj4gKyIqLmMiLA0KPiArIiouaCINCj4g K10NCj4gK2BgYA0KPiArDQo+ICsjIyMgYE91dHB1dEZpbGVEaWZmc2ANCj4gKw0KPiArYEJvb2xl YW5gIC0gRGVmYXVsdCBpcyBgRmFsc2VgLg0KPiArDQo+ICtJZiBgVHJ1ZWAsIG91dHB1dCBkaWZm cyBvZiBmb3JtYXR0aW5nIGNoYW5nZXMgaW50byB0aGUgdGVzdCBjYXNlIGxvZy4gVGhpcyBpcyBo ZWxwZnVsIHRvIGV4YWN0bHkgdW5kZXJzdGFuZCB3aGF0IGNoYW5nZXMNCj4gK25lZWQgdG8gYmUg bWFkZSB0byB0aGUgc291cmNlIGNvZGUgaW4gb3JkZXIgdG8gZml4IGEgY29kaW5nIHN0YW5kYXJk IGNvbXBsaWFuY2UgaXNzdWUuDQo+ICsNCj4gK05vdGUgdGhhdCBjYWxjdWxhdGluZyB0aGUgZmls ZSBkaWZmcyBvbiBhIHZlcnkgbGFyZ2Ugc2V0IG9mIG9mIHJlc3VsdHMgKGUuZy4gPjEwMCBmaWxl cykgY2FuIHNpZ25pZmljYW50bHkgc2xvdyBkb3duDQo+ICtwbHVnaW4gZXhlY3V0aW9uLg0KPiAr DQo+ICsjIyMgYFNraXBHaXRFeGNsdXNpb25zYA0KPiArDQo+ICtgQm9vbGVhbmAgLSBEZWZhdWx0 IGlzIGBGYWxzZWAuDQo+ICsNCj4gK0J5IGRlZmF1bHQsIGZpbGVzIGluIHBhdGhzIG1hdGNoZWQg aW4gYSAuZ2l0aWdub3JlIGZpbGUgb3IgYSByZWNvZ25pemVkIGdpdCBzdWJtb2R1bGUgYXJlIGV4 Y2x1ZGVkLiBJZiB0aGlzIG9wdGlvbg0KPiAraXMgYFRydWVgLCB0aGUgcGx1Z2luIHdpbGwgbm90 IGF0dGVtcHQgdG8gcmVjb2duaXplIHRoZXNlIGZpbGVzIGFuZCBleGNsdWRlIHRoZW0uDQo+ICsN Cj4gKyMjIEhpZ2gtTGV2ZWwgUGx1Z2luIE9wZXJhdGlvbg0KPiArDQo+ICtUaGlzIHBsdWdpbiBn ZW5lcmF0ZXMgdHdvIG1haW4gc2V0cyBvZiB0ZW1wb3JhcnkgZmlsZXM6DQo+ICsNCj4gKyAgMS4g QSB3b3JraW5nIGRpcmVjdG9yeSBpbiB0aGUgZGlyZWN0b3J5IGBCdWlsZC97cGFja2FnZV9uYW1l fWANCj4gKyAgMi4gRm9yIGVhY2ggc291cmNlIGZpbGUgd2l0aCBmb3JtYXR0aW5nIGVycm9ycywg YSBzaWJsaW5nIGZpbGUgd2l0aCB0aGUgYC51bmNydXN0aWZ5X3BsdWdpbmAgZXh0ZW5zaW9uDQo+ ICsNCj4gK1RoZSB3b3JraW5nIGRpcmVjdG9yeSBjb250YWlucyB0ZW1wb3JhcnkgZmlsZXMgdW5p cXVlIHRvIG9wZXJhdGlvbiBvZiB0aGUgcGx1Z2luLiBBbGwgb2YgdGhlc2UgZmlsZXMgYXJlIHJl bW92ZWQgb24NCj4gK2V4aXQgb2YgdGhlIHBsdWdpbiBpbmNsdWRpbmcgc3VjY2Vzc2Z1bCBvciB1 bnN1Y2Nlc3NmdWwgZXhlY3V0aW9uIChzdWNoIGFzIGEgUHl0aG9uIGV4Y2VwdGlvbiBvY2N1cnJp bmcpLiBJZiBmb3IgYW55DQo+ICtyZWFzb24sIGFueSBmaWxlcyBpbiB0aGUgcGFja2FnZSBleGlz dCBwcmlvciB0byBydW5uaW5nIHRoZSBwbHVnaW4gd2l0aCB0aGUgYC51bmNydXN0aWZ5X3BsdWdp bmAgZXh0ZW5zaW9uLCB0aGUgcGx1Z2luDQo+ICt3aWxsIGluZm9ybSB0aGUgdXNlciB0byByZW1v dmUgdGhlc2UgZmlsZXMgYW5kIGV4aXQgYmVmb3JlIHJ1bm5pbmcgVW5jcnVzdGlmeS4gVGhpcyBp cyB0byBlbnN1cmUgdGhlIGFjY3VyYWN5IG9mIHRoZQ0KPiArcmVzdWx0cyByZXBvcnRlZCBmcm9t IGVhY2ggZXhlY3V0aW9uIGluc3RhbmNlIG9mIHRoZSBwbHVnaW4uDQo+ICsNCj4gK1RoZSBwbHVn aW4gZGV0ZXJtaW5lcyB0aGUgbGlzdCBvZiByZWxldmFudCBmaWxlcyB0byBjaGVjayB3aXRoIFVu Y3J1c3RpZnkgYW5kIHRoZW4gaW52b2tlcyBVbmNydXN0aWZ5IHdpdGggdGhhdCBmaWxlDQo+ICts aXN0LiBGb3IgYW55IGZpbGVzIG5vdCBjb21wbGlhbnQgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZmls ZSBwcm92aWRlZCwgVW5jcnVzdGlmeSB3aWxsIGdlbmVyYXRlIGEgY29ycmVzcG9uZGluZyBmaWxl DQo+ICt3aXRoIHRoZSBgLnVuY3J1c3RpZnlfcGx1Z2luYCBleHRlbnNpb24uIFRoZSBwbHVnaW4g ZGlzY292ZXJzIGFsbCBvZiB0aGVzZSBmaWxlcy4gSWYgYW55IHN1Y2ggZmlsZXMgYXJlIHByZXNl bnQsIHRoaXMNCj4gK2luZGljYXRlcyBhIGZvcm1hdHRpbmcgaXNzdWUgd2FzIGZvdW5kIGFuZCB0 aGUgdGVzdCBpcyBtYXJrZWQgZmFpbGVkICh1bmxlc3MgYEF1ZGl0T25seWAgbW9kZSBpcyBlbmFi bGVkKS4NCj4gKw0KPiArVGhlIHRlc3QgY2FzZSBsb2cgd2lsbCBjb250YWluIGEgcmVwb3J0IG9m IHdoaWNoIGZpbGVzIGZhaWxlZCB0byBmb3JtYXQgcHJvcGVybHksIGFsbG93aW5nIHRoZSB1c2Vy IHRvIHJ1biBVbmNydXN0aWZ5DQo+ICthZ2FpbnN0IHRoZSBmaWxlIGxvY2FsbHkgdG8gZml4IHRo ZSBpc3N1ZS4gSWYgdGhlIGBPdXRwdXRGaWxlRGlmZnNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlz IHNldCB0byBgVHJ1ZWAsIHRoZSBwbHVnaW4NCj4gK3dpbGwgb3V0cHV0IGRpZmYgY2h1bmtzIGZv ciBhbGwgY29kZSBmb3JtYXR0aW5nIGlzc3VlcyBpbiB0aGUgdGVzdCBjYXNlIGxvZy4NCj4gZGlm ZiAtLWdpdCBhLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlmeS5weSBiLy5weXRv b2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlmeS5weQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLmIyMDdiMWRmNGNiMQ0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvVW5jcnVzdGlmeS5weQ0KPiBAQCAtMCww ICsxLDU1NiBAQA0KPiArIyBAZmlsZSBVbmNydXN0aWZ5LnB5DQo+ICsjDQo+ICsjIEFuIGVkazIt cHl0b29sIGJhc2VkIHBsdWdpbiB3cmFwcGVyIGZvciBVbmNydXN0aWZ5DQo+ICsjDQo+ICsjIENv cHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiArIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyMNCj4gK2ltcG9ydCBkaWZmbGliDQo+ ICtpbXBvcnQgZXJybm8NCj4gK2ltcG9ydCBsb2dnaW5nDQo+ICtpbXBvcnQgb3MNCj4gK2ltcG9y dCBwYXRobGliDQo+ICtpbXBvcnQgc2h1dGlsDQo+ICtpbXBvcnQgdGltZWl0DQo+ICtmcm9tIGVk azJ0b29sZXh0LmVudmlyb25tZW50IGltcG9ydCB2ZXJzaW9uX2FnZ3JlZ2F0b3INCj4gK2Zyb20g ZWRrMnRvb2xleHQuZW52aXJvbm1lbnQucGx1Z2luX21hbmFnZXIgaW1wb3J0IFBsdWdpbk1hbmFn ZXINCj4gK2Zyb20gZWRrMnRvb2xleHQuZW52aXJvbm1lbnQucGx1Z2ludHlwZXMuY2lfYnVpbGRf cGx1Z2luIGltcG9ydCBJQ2lCdWlsZFBsdWdpbg0KPiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9u bWVudC5wbHVnaW50eXBlcy51ZWZpX2hlbHBlcl9wbHVnaW4gaW1wb3J0IEhlbHBlckZ1bmN0aW9u cw0KPiArZnJvbSBlZGsydG9vbGV4dC5lbnZpcm9ubWVudC52YXJfZGljdCBpbXBvcnQgVmFyRGlj dA0KPiArZnJvbSBlZGsydG9vbGxpYi5sb2cuanVuaXRfcmVwb3J0X2Zvcm1hdCBpbXBvcnQgSnVu aXRSZXBvcnRUZXN0Q2FzZQ0KPiArZnJvbSBlZGsydG9vbGxpYi51ZWZpLmVkazIucGF0aF91dGls aXRpZXMgaW1wb3J0IEVkazJQYXRoDQo+ICtmcm9tIGVkazJ0b29sbGliLnV0aWxpdHlfZnVuY3Rp b25zIGltcG9ydCAgUnVuQ21kDQo+ICtmcm9tIGlvIGltcG9ydCBTdHJpbmdJTw0KPiArZnJvbSB0 eXBpbmcgaW1wb3J0IEFueSwgRGljdCwgTGlzdCwgVHVwbGUNCj4gKw0KPiArIw0KPiArIyBQcm92 aWRlIG1vcmUgdXNlciBmcmllbmRseSBtZXNzYWdlcyBmb3IgY2VydGFpbiBzY2VuYXJpb3MNCj4g KyMNCj4gK2NsYXNzIFVuY3J1c3RpZnlFeGNlcHRpb24oRXhjZXB0aW9uKToNCj4gKyAgICBkZWYg X19pbml0X18oc2VsZiwgbWVzc2FnZSwgZXhpdF9jb2RlKToNCj4gKyAgICAgICAgc3VwZXIoKS5f X2luaXRfXyhtZXNzYWdlKQ0KPiArICAgICAgICBzZWxmLmV4aXRfY29kZSA9IGV4aXRfY29kZQ0K PiArDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3RpZnlBcHBFbnZWYXJOb3RGb3VuZEV4Y2VwdGlvbihV bmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6 DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEwMSkNCj4gKw0KPiArDQo+ ICtjbGFzcyBVbmNydXN0aWZ5QXBwVmVyc2lvbkVycm9yRXhjZXB0aW9uKFVuY3J1c3RpZnlFeGNl cHRpb24pOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToNCj4gKyAgICAgICAg c3VwZXIoKS5fX2luaXRfXyhtZXNzYWdlLCAtMTAyKQ0KPiArDQo+ICsNCj4gK2NsYXNzIFVuY3J1 c3RpZnlBcHBFeGVjdXRpb25FeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAg ZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9f KG1lc3NhZ2UsIC0xMDMpDQo+ICsNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeVN0YWxlUGx1Z2lu Rm9ybWF0dGVkRmlsZXNFeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVm IF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1l c3NhZ2UsIC0xMjApDQo+ICsNCj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeUlucHV0RmlsZUNyZWF0 aW9uRXJyb3JFeGNlcHRpb24oVW5jcnVzdGlmeUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5p dF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2Us IC0xMjEpDQo+ICsNCj4gK2NsYXNzIFVuY3J1c3RpZnlJbnZhbGlkSWdub3JlU3RhbmRhcmRQYXRo c0V4Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4gKyAgICBkZWYgX19pbml0X18oc2Vs ZiwgbWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSwgLTEyMikN Cj4gKw0KPiArY2xhc3MgVW5jcnVzdGlmeUdpdElnbm9yZUZpbGVFeGNlcHRpb24oVW5jcnVzdGlm eUV4Y2VwdGlvbik6DQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOg0KPiArICAg ICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UsIC0xNDApDQo+ICsNCj4gKw0KPiArY2xhc3Mg VW5jcnVzdGlmeUdpdFN1Ym1vZHVsZUV4Y2VwdGlvbihVbmNydXN0aWZ5RXhjZXB0aW9uKToNCj4g KyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19p bml0X18obWVzc2FnZSwgLTE0MSkNCj4gKw0KPiArDQo+ICtjbGFzcyBVbmNydXN0aWZ5KElDaUJ1 aWxkUGx1Z2luKToNCj4gKyAgICAiIiINCj4gKyAgICBBIENpQnVpbGRQbHVnaW4gdGhhdCB1c2Vz IFVuY3J1c3RpZnkgdG8gZm9ybWF0IHRoZSBzb3VyY2UgZmlsZXMgaW4gdGhlDQo+ICsgICAgcGFj a2FnZSBiZWluZyB0ZXN0ZWQgZm9yIGNvZGluZyBzdGFuZGFyZCBpc3N1ZXMuDQo+ICsNCj4gKyAg ICBCeSBkZWZhdWx0LCB0aGUgcGx1Z2luIHJ1bnMgYWdhaW5zdCBzdGFuZGFyZCBDIHNvdXJjZSBm aWxlIGV4dGVuc2lvbnMgYnV0DQo+ICsgICAgaXRzIGNvbmZpZ3VyYXRpb24gY2FuIGJlIG1vZGlm aWVkIHRocm91Z2ggaXRzIGNvbmZpZ3VyYXRpb24gZmlsZS4NCj4gKw0KPiArICAgIENvbmZpZ3Vy YXRpb24gb3B0aW9uczoNCj4gKyAgICAiVW5jcnVzdGlmeSI6IHsNCj4gKyAgICAgICAgIkFkZGl0 aW9uYWxJbmNsdWRlUGF0aHMiOiBbXSwgIyBBZGRpdGlvbmFsIHBhdGhzIHRvIGNoZWNrIGZvcm1h dHRpbmcgKHdpbGRjYXJkcyBzdXBwb3J0ZWQpLg0KPiArICAgICAgICAiQXVkaXRPbmx5IjogRmFs c2UsICAgICAgICAgICAjIERvbid0IGZhaWwgdGhlIGJ1aWxkIGlmIHRoZXJlIGFyZSBlcnJvcnMu ICBKdXN0IGxvZyB0aGVtLg0KPiArICAgICAgICAiQ29uZmlnRmlsZVBhdGgiOiAiIiwgICAgICAg ICAjIEN1c3RvbSBwYXRoIHRvIGFuIFVuY3J1c3RpZnkgY29uZmlnIGZpbGUuDQo+ICsgICAgICAg ICJJZ25vcmVTdGFuZGFyZFBhdGhzIjogW10sICAgICMgU3RhbmRhcmQgUGx1Z2luIGRlZmluZWQg cGF0aHMgdGhhdCBzaG91bGQgYmUgaWdub3JlZC4NCj4gKyAgICAgICAgIk91dHB1dEZpbGVEaWZm cyI6IEZhbHNlLCAgICAgIyBPdXRwdXQgY2h1bmtzIG9mIGZvcm1hdHRpbmcgZGlmZnMgaW4gdGhl IHRlc3QgY2FzZSBsb2cuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgVGhpcyBjYW4gc2lnbmlmaWNhbnRseSBzbG93IGRvd24gdGhlIHBsdWdpbiBvbiB2ZXJ5IGxh cmdlIHBhY2thZ2VzLg0KPiArICAgICAgICAiU2tpcEdpdEV4Y2x1c2lvbnMiOiBGYWxzZSAgICAj IERvbid0IGV4Y2x1ZGUgZ2l0IGlnbm9yZWQgZmlsZXMgYW5kIGZpbGVzIGluIGdpdCBzdWJtb2R1 bGVzLg0KPiArICAgIH0NCj4gKyAgICAiIiINCj4gKw0KPiArICAgICMNCj4gKyAgICAjIEJ5IGRl ZmF1bHQsIHVzZSBhbiAidW5jcnVzdGlmeS5jZmciIGNvbmZpZyBmaWxlIGluIHRoZSBwbHVnaW4g ZGlyZWN0b3J5DQo+ICsgICAgIyBBIHBhY2thZ2UgY2FuIG92ZXJyaWRlIHRoaXMgcGF0aCB2aWEg IkNvbmZpZ0ZpbGVQYXRoIg0KPiArICAgICMNCj4gKyAgICAjIE5vdGU6IFZhbHVlcyBzcGVjaWZp ZWQgdmlhICJDb25maWdGaWxlUGF0aCIgYXJlIHJlbGF0aXZlIHRvIHRoZSBwYWNrYWdlDQo+ICsg ICAgIw0KPiArICAgIERFRkFVTFRfQ09ORklHX0ZJTEVfUEFUSCA9IG9zLnBhdGguam9pbigNCj4g KyAgICAgICAgcGF0aGxpYi5QYXRoKF9fZmlsZV9fKS5wYXJlbnQucmVzb2x2ZSgpLCAidW5jcnVz dGlmeS5jZmciKQ0KPiArDQo+ICsgICAgIw0KPiArICAgICMgVGhlIGV4dGVuc2lvbiB1c2VkIGZv ciBmb3JtYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkgdGhpcyBwbHVnaW4NCj4gKyAgICAjDQo+ICsg ICAgRk9STUFUVEVEX0ZJTEVfRVhURU5TSU9OID0gIi51bmNydXN0aWZ5X3BsdWdpbiINCj4gKw0K PiArICAgICMNCj4gKyAgICAjIEEgcGFja2FnZSBjYW4gYWRkIGFueSBhZGRpdGlvbmFsIHBhdGhz IHdpdGggIkFkZGl0aW9uYWxJbmNsdWRlUGF0aHMiDQo+ICsgICAgIyBBIHBhY2thZ2UgY2FuIHJl bW92ZSBhbnkgb2YgdGhlc2UgcGF0aHMgd2l0aCAiSWdub3JlU3RhbmRhcmRQYXRocyINCj4gKyAg ICAjDQo+ICsgICAgU1RBTkRBUkRfUExVR0lOX0RFRklORURfUEFUSFMgPSAoIiouYyIsICIqLmgi KQ0KPiArDQo+ICsgICAgIw0KPiArICAgICMgVGhlIFVuY3J1c3RpZnkgYXBwbGljYXRpb24gcGF0 aCBzaG91bGQgc2V0IGluIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUNCj4gKyAgICAjDQo+ICsg ICAgVU5DUlVTVElGWV9QQVRIX0VOVl9LRVkgPSAiVU5DUlVTVElGWV9DSV9QQVRIIg0KPiArDQo+ ICsgICAgZGVmIEdldFRlc3ROYW1lKHNlbGYsIHBhY2thZ2VuYW1lOiBzdHIsIGVudmlyb25tZW50 OiBWYXJEaWN0KSAtPiBUdXBsZToNCj4gKyAgICAgICAgIiIiIFByb3ZpZGUgdGhlIHRlc3RjYXNl IG5hbWUgYW5kIGNsYXNzbmFtZSBmb3IgdXNlIGluIHJlcG9ydGluZw0KPiArDQo+ICsgICAgICAg ICAgICBBcmdzOg0KPiArICAgICAgICAgICAgICBwYWNrYWdlbmFtZTogc3RyaW5nIGNvbnRhaW5p bmcgbmFtZSBvZiBwYWNrYWdlIHRvIGJ1aWxkDQo+ICsgICAgICAgICAgICAgIGVudmlyb25tZW50 OiBUaGUgVmFyRGljdCBmb3IgdGhlIHRlc3QgdG8gcnVuIGluDQo+ICsgICAgICAgICAgICBSZXR1 cm5zOg0KPiArICAgICAgICAgICAgICAgIEEgdHVwbGUgY29udGFpbmluZyB0aGUgdGVzdGNhc2Ug bmFtZSBhbmQgdGhlIGNsYXNzbmFtZQ0KPiArICAgICAgICAgICAgICAgICh0ZXN0Y2FzZW5hbWUs IGNsYXNzbmFtZSkNCj4gKyAgICAgICAgICAgICAgICB0ZXN0Y2xhc3NuYW1lOiBhIGRlc2NyaXB0 aXZlIHN0cmluZyBmb3IgdGhlIHRlc3RjYXNlIGNhbiBpbmNsdWRlIHdoaXRlc3BhY2UNCj4gKyAg ICAgICAgICAgICAgICBjbGFzc25hbWU6IHNob3VsZCBiZSBwYXR0ZXJuZWQgPHBhY2thZ2VuYW1l Pi48cGx1Z2luPi48b3B0aW9uYWxseSBhbnkgdW5pcXVlIGNvbmRpdGlvbj4NCj4gKyAgICAgICAg IiIiDQo+ICsgICAgICAgIHJldHVybiAoIkNoZWNrIGZpbGUgY29kaW5nIHN0YW5kYXJkIGNvbXBs aWFuY2UgaW4gIiArIHBhY2thZ2VuYW1lLCBwYWNrYWdlbmFtZSArICIuVW5jcnVzdGlmeSIpDQo+ ICsNCj4gKyAgICBkZWYgUnVuQnVpbGRQbHVnaW4oc2VsZiwgcGFja2FnZV9yZWxfcGF0aDogc3Ry LCBlZGsyX3BhdGg6IEVkazJQYXRoLCBwYWNrYWdlX2NvbmZpZzogRGljdFtzdHIsIExpc3Rbc3Ry XV0sDQo+IGVudmlyb25tZW50X2NvbmZpZzogQW55LCBwbHVnaW5fbWFuYWdlcjogUGx1Z2luTWFu YWdlciwgcGx1Z2luX21hbmFnZXJfaGVscGVyOiBIZWxwZXJGdW5jdGlvbnMsIHRjOiBKdW5pdFJl cG9ydFRlc3RDYXNlLA0KPiBvdXRwdXRfc3RyZWFtPU5vbmUpIC0+IGludDoNCj4gKyAgICAgICAg IiIiDQo+ICsgICAgICAgIEV4dGVybmFsIGZ1bmN0aW9uIG9mIHBsdWdpbi4gVGhpcyBmdW5jdGlv biBpcyB1c2VkIHRvIHBlcmZvcm0gdGhlIHRhc2sgb2YgdGhlIENpQnVpbGQgUGx1Z2luLg0KPiAr DQo+ICsgICAgICAgIEFyZ3M6DQo+ICsgICAgICAgICAgLSBwYWNrYWdlX3JlbF9wYXRoOiBlZGsy IHdvcmtzcGFjZSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBwYWNrYWdlDQo+ICsgICAgICAgICAgLSBl ZGsyX3BhdGg6IEVkazJQYXRoIG9iamVjdCB3aXRoIHdvcmtzcGFjZSBhbmQgcGFja2FnZXMgcGF0 aHMNCj4gKyAgICAgICAgICAtIHBhY2thZ2VfY29uZmlnOiBEaWN0aW9uYXJ5IHdpdGggdGhlIHBh Y2thZ2UgY29uZmlndXJhdGlvbg0KPiArICAgICAgICAgIC0gZW52aXJvbm1lbnRfY29uZmlnOiBF bnZpcm9ubWVudCBjb25maWd1cmF0aW9uDQo+ICsgICAgICAgICAgLSBwbHVnaW5fbWFuYWdlcjog UGx1Z2luIE1hbmFnZXIgSW5zdGFuY2UNCj4gKyAgICAgICAgICAtIHBsdWdpbl9tYW5hZ2VyX2hl bHBlcjogUGx1Z2luIE1hbmFnZXIgSGVscGVyIEluc3RhbmNlDQo+ICsgICAgICAgICAgLSB0Yzog SlVuaXQgdGVzdCBjYXNlDQo+ICsgICAgICAgICAgLSBvdXRwdXRfc3RyZWFtOiBUaGUgU3RyaW5n SU8gb3V0cHV0IHN0cmVhbSBmcm9tIHRoaXMgcGx1Z2luIChsb2dnaW5nKQ0KPiArDQo+ICsgICAg ICAgIFJldHVybnMNCj4gKyAgICAgICAgICA+MCA6IE51bWJlciBvZiBlcnJvcnMgZm91bmQNCj4g KyAgICAgICAgICAwICA6IFBhc3NlZCBzdWNjZXNzZnVsbHkNCj4gKyAgICAgICAgICAtMSA6IFNr aXBwZWQgZm9yIG1pc3NpbmcgcHJlcmVxDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICB0cnk6 DQo+ICsgICAgICAgICAgICAjIEluaXRpYWxpemUgcGx1Z2luIGFuZCBjaGVjayBwcmUtcmVxdWlz aXRlcy4NCj4gKyAgICAgICAgICAgIHNlbGYuX2luaXRpYWxpemVfZW52aXJvbm1lbnRfaW5mbygN Cj4gKyAgICAgICAgICAgICAgICBwYWNrYWdlX3JlbF9wYXRoLCBlZGsyX3BhdGgsIHBhY2thZ2Vf Y29uZmlnLCB0YykNCj4gKyAgICAgICAgICAgIHNlbGYuX2luaXRpYWxpemVfY29uZmlndXJhdGlv bigpDQo+ICsgICAgICAgICAgICBzZWxmLl9jaGVja19mb3JfcHJlZXhpc3RpbmdfZm9ybWF0dGVk X2ZpbGVzKCkNCj4gKw0KPiArICAgICAgICAgICAgIyBMb2cgaW1wb3J0YW50IGNvbnRleHQgaW5m b3JtYXRpb24uDQo+ICsgICAgICAgICAgICBzZWxmLl9sb2dfdW5jcnVzdGlmeV9hcHBfaW5mbygp DQo+ICsNCj4gKyAgICAgICAgICAgICMgQ3JlYXRlIG1ldGEgaW5wdXQgZmlsZXMgJiBkaXJlY3Rv cmllcw0KPiArICAgICAgICAgICAgc2VsZi5fY3JlYXRlX3RlbXBfd29ya2luZ19kaXJlY3Rvcnko KQ0KPiArICAgICAgICAgICAgc2VsZi5fY3JlYXRlX3VuY3J1c3RpZnlfZmlsZV9saXN0X2ZpbGUo KQ0KPiArDQo+ICsgICAgICAgICAgICBzZWxmLl9ydW5fdW5jcnVzdGlmeSgpDQo+ICsNCj4gKyAg ICAgICAgICAgICMgUG9zdC1leGVjdXRpb24gYWN0aW9ucy4NCj4gKyAgICAgICAgICAgIHNlbGYu X3Byb2Nlc3NfdW5jcnVzdGlmeV9yZXN1bHRzKCkNCj4gKw0KPiArICAgICAgICBleGNlcHQgVW5j cnVzdGlmeUV4Y2VwdGlvbiBhcyBlOg0KPiArICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJy b3IoDQo+ICsgICAgICAgICAgICAgICAgZiJVbmNydXN0aWZ5IGVycm9yIHtlLmV4aXRfY29kZX0u IERldGFpbHM6XG5cbntzdHIoZSl9IikNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygN Cj4gKyAgICAgICAgICAgICAgICBmIlVuY3J1c3RpZnkgZXJyb3Ige2UuZXhpdF9jb2RlfS4gRGV0 YWlsczpcblxue3N0cihlKX0iKQ0KPiArICAgICAgICAgICAgcmV0dXJuIC0xDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLl9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3Vu dCA+IDA6DQo+ICsgICAgICAgICAgICAgICAgaWYgc2VsZi5fYXVkaXRfb25seV9tb2RlOg0KPiAr ICAgICAgICAgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAiU2V0dGluZyB0ZXN0IGFzIHNraXBwZWQgc2luY2UgQXVkaXRPbmx5IGlzIGVuYWJsZWQi KQ0KPiArICAgICAgICAgICAgICAgICAgICBzZWxmLl90Yy5TZXRTa2lwcGVkKCkNCj4gKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC0xDQo+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAg ICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuU2V0RmFpbGVkKA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgZiJVbmNydXN0aWZ5IGNoZWNrcyBmYWlsZWQgZHVlIHRvIHtzZWxmLl9mb3JtYXR0 ZWRfZmlsZV9lcnJvcl9jb3VudH0gaW5jb3JyZWN0bHkgZm9ybWF0dGVkDQo+IGZpbGVzLiIsICJD SEVDS19GQUlMRUQiKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBz ZWxmLl90Yy5TZXRTdWNjZXNzKCkNCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9mb3JtYXR0 ZWRfZmlsZV9lcnJvcl9jb3VudA0KPiArICAgICAgICBmaW5hbGx5Og0KPiArICAgICAgICAgICAg c2VsZi5fY2xlYW51cF90ZW1wb3JhcnlfZm9ybWF0dGVkX2ZpbGVzKCkNCj4gKyAgICAgICAgICAg IHNlbGYuX2NsZWFudXBfdGVtcG9yYXJ5X2RpcmVjdG9yeSgpDQo+ICsNCj4gKyAgICBkZWYgX2lu aXRpYWxpemVfY29uZmlndXJhdGlvbihzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4g KyAgICAgICAgSW5pdGlhbGl6ZXMgcGx1Z2luIGNvbmZpZ3VyYXRpb24uDQo+ICsgICAgICAgICIi Ig0KPiArICAgICAgICBzZWxmLl9pbml0aWFsaXplX2FwcF9pbmZvKCkNCj4gKyAgICAgICAgc2Vs Zi5faW5pdGlhbGl6ZV9jb25maWdfZmlsZV9pbmZvKCkNCj4gKyAgICAgICAgc2VsZi5faW5pdGlh bGl6ZV9maWxlX3RvX2Zvcm1hdF9pbmZvKCkNCj4gKyAgICAgICAgc2VsZi5faW5pdGlhbGl6ZV90 ZXN0X2Nhc2Vfb3V0cHV0X29wdGlvbnMoKQ0KPiArDQo+ICsgICAgZGVmIF9jaGVja19mb3JfcHJl ZXhpc3RpbmdfZm9ybWF0dGVkX2ZpbGVzKHNlbGYpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0K PiArICAgICAgICBDaGVja3MgaWYgYW55IGZvcm1hdHRlZCBmaWxlcyBmcm9tIHByaW9yIGV4ZWN1 dGlvbiBhcmUgcHJlc2VudC4NCj4gKw0KPiArICAgICAgICBFeGlzdGVuY2Ugb2Ygc3VjaCBmaWxl cyBpcyBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbi4gVGhpcyBtaWdodCByZXN1bHQNCj4gKyAgICAg ICAgZnJvbSBhbiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyBhIHByZXZpb3VzIHJ1biBvciBh IHByZW1hdHVyZSBleGl0IGZyb20gYSBkZWJ1ZyBzY2VuYXJpby4gSW4gYW55IGNhc2UsIHRoZQ0K PiBwYWNrYWdlIHNob3VsZCBiZSBjbGVhbiBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgcnVuLg0KPiAr ICAgICAgICAiIiINCj4gKyAgICAgICAgcHJlX2V4aXN0aW5nX2Zvcm1hdHRlZF9maWxlX2NvdW50 ID0gbGVuKA0KPiArICAgICAgICAgICAgW3N0cihwYXRoLnJlc29sdmUoKSkgZm9yIHBhdGggaW4N Cj4gcGF0aGxpYi5QYXRoKHNlbGYuX2Fic19wYWNrYWdlX3BhdGgpLnJnbG9iKGYnKntVbmNydXN0 aWZ5LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0nKV0pDQo+ICsNCj4gKyAgICAgICAgaWYgcHJl X2V4aXN0aW5nX2Zvcm1hdHRlZF9maWxlX2NvdW50ID4gMDoNCj4gKyAgICAgICAgICAgIHJhaXNl IFVuY3J1c3RpZnlTdGFsZVBsdWdpbkZvcm1hdHRlZEZpbGVzRXhjZXB0aW9uKA0KPiArICAgICAg ICAgICAgICAgIGYie3ByZV9leGlzdGluZ19mb3JtYXR0ZWRfZmlsZV9jb3VudH0gZm9ybWF0dGVk IGZpbGVzIGFscmVhZHkgZXhpc3QuIFRvIHByZXZlbnQgb3ZlcndyaXRpbmcgdGhlc2UgZmlsZXMs DQo+IHBsZWFzZSByZW1vdmUgdGhlbSBiZWZvcmUgcnVubmluZyB0aGlzIHBsdWdpbi4iKQ0KPiAr DQo+ICsgICAgZGVmIF9jbGVhbnVwX3RlbXBvcmFyeV9kaXJlY3Rvcnkoc2VsZikgLT4gTm9uZToN Cj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENsZWFucyB1cCB0aGUgdGVtcG9yYXJ5IGRpcmVj dG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1dGlvbiBpbnN0YW5jZS4NCj4gKw0KPiArICAgICAgICBU aGlzIHJlbW92ZXMgdGhlIGRpcmVjdG9yeSBhbmQgYWxsIGZpbGVzIGNyZWF0ZWQgZHVyaW5nIHRo aXMgaW5zdGFuY2UuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBoYXNhdHRyKHNlbGYs ICdfd29ya2luZ19kaXInKToNCj4gKyAgICAgICAgICAgIHNlbGYuX3JlbW92ZV90cmVlKHNlbGYu X3dvcmtpbmdfZGlyKQ0KPiArDQo+ICsgICAgZGVmIF9jbGVhbnVwX3RlbXBvcmFyeV9mb3JtYXR0 ZWRfZmlsZXMoc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENsZWFu cyB1cCB0aGUgdGVtcG9yYXJ5IGZvcm1tYXR0ZWQgZmlsZXMgcHJvZHVjZWQgYnkgVW5jcnVzdGlm eS4NCj4gKw0KPiArICAgICAgICBUaGlzIHdpbGwgcmVjdXJzaXZlbHkgcmVtb3ZlIGFsbCBmb3Jt YXR0ZWQgZmlsZXMgZ2VuZXJhdGVkIGJ5IFVuY3J1c3RpZnkNCj4gKyAgICAgICAgZHVyaW5nIHRo aXMgZXhlY3V0aW9uIGluc3RhbmNlLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgaWYgaGFz YXR0cihzZWxmLCAnX2Fic19wYWNrYWdlX3BhdGgnKToNCj4gKyAgICAgICAgICAgIGZvcm1hdHRl ZF9maWxlcyA9IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZvciBwYXRoIGluIHBhdGhsaWIuUGF0aCgN Cj4gKyAgICAgICAgICAgICAgICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoKS5yZ2xvYihmJyp7VW5j cnVzdGlmeS5GT1JNQVRURURfRklMRV9FWFRFTlNJT059JyldDQo+ICsNCj4gKyAgICAgICAgICAg IGZvciBmb3JtYXR0ZWRfZmlsZSBpbiBmb3JtYXR0ZWRfZmlsZXM6DQo+ICsgICAgICAgICAgICAg ICAgb3MucmVtb3ZlKGZvcm1hdHRlZF9maWxlKQ0KPiArDQo+ICsgICAgZGVmIF9jcmVhdGVfdGVt cF93b3JraW5nX2RpcmVjdG9yeShzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgQ3JlYXRlcyB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB1c2VkIGZvciB0aGlzIGV4ZWN1 dGlvbiBpbnN0YW5jZS4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHNlbGYuX3dvcmtpbmdf ZGlyID0gb3MucGF0aC5qb2luKA0KPiArICAgICAgICAgICAgc2VsZi5fYWJzX3dvcmtzcGFjZV9w YXRoLCAiQnVpbGQiLCBzZWxmLl9wYWNrYWdlX25hbWUsICJVbmNydXN0aWZ5UGx1Z2luIikNCj4g Kw0KPiArICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICBwYXRobGliLlBhdGgoc2VsZi5fd29y a2luZ19kaXIpLm1rZGlyKHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1ZSkNCj4gKyAgICAgICAg ZXhjZXB0IE9TRXJyb3IgYXMgZToNCj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlJbnB1 dEZpbGVDcmVhdGlvbkVycm9yRXhjZXB0aW9uKA0KPiArICAgICAgICAgICAgICAgIGYiRXJyb3Ig Y3JlYXRpbmcgcGx1Z2luIGRpcmVjdG9yeSB7c2VsZi5fd29ya2luZ19kaXJ9LlxuXG57cmVwcihl KX0uIikNCj4gKw0KPiArICAgIGRlZiBfY3JlYXRlX3VuY3J1c3RpZnlfZmlsZV9saXN0X2ZpbGUo c2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENyZWF0ZXMgdGhlIGZp bGUgd2l0aCB0aGUgbGlzdCBvZiBzb3VyY2UgZmlsZXMgZm9yIFVuY3J1c3RpZnkgdG8gcHJvY2Vz cy4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHNlbGYuX2FwcF9pbnB1dF9maWxlX3BhdGgg PSBvcy5wYXRoLmpvaW4oDQo+ICsgICAgICAgICAgICBzZWxmLl93b3JraW5nX2RpciwgInVuY3J1 c3RpZnlfZmlsZV9saXN0LnR4dCIpDQo+ICsNCj4gKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuX2Fw cF9pbnB1dF9maWxlX3BhdGgsICd3JywgZW5jb2Rpbmc9J3V0ZjgnKSBhcyBmOg0KPiArICAgICAg ICAgICAgZi53cml0ZWxpbmVzKGYiXG4iLmpvaW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9y bWF0KSkNCj4gKw0KPiArICAgIGRlZiBfZXhlY3V0ZV91bmNydXN0aWZ5KHNlbGYpIC0+IE5vbmU6 DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBFeGVjdXRlcyBVbmNydXN0aWZ5IHdpdGggdGhl IGluaXRpYWxpemVkIGNvbmZpZ3VyYXRpb24uDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBv dXRwdXQgPSBTdHJpbmdJTygpDQo+ICsgICAgICAgIHNlbGYuX2FwcF9leGl0X2NvZGUgPSBSdW5D bWQoDQo+ICsgICAgICAgICAgICBzZWxmLl9hcHBfcGF0aCwNCj4gKyAgICAgICAgICAgIGYiLWMg e3NlbGYuX2FwcF9jb25maWdfZmlsZX0gLUYge3NlbGYuX2FwcF9pbnB1dF9maWxlX3BhdGh9IC0t aWYtY2hhbmdlZCAtLXN1ZmZpeA0KPiB7VW5jcnVzdGlmeS5GT1JNQVRURURfRklMRV9FWFRFTlNJ T059Iiwgb3V0c3RyZWFtPW91dHB1dCkNCj4gKyAgICAgICAgc2VsZi5fYXBwX291dHB1dCA9IG91 dHB1dC5nZXR2YWx1ZSgpLnN0cmlwKCkuc3BsaXRsaW5lcygpDQo+ICsNCj4gKyAgICBkZWYgX2dl dF9naXRfaWdub3JlZF9wYXRocyhzZWxmKSAtPiBMaXN0W3N0cl06DQo+ICsgICAgICAgICIiIiIN Cj4gKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZmlsZSBhYnNvbHV0ZSBwYXRoIHN0cmluZ3Mg dG8gYWxsIGZpbGVzIGlnbm9yZWQgaW4gdGhpcyBnaXQgcmVwb3NpdG9yeS4NCj4gKw0KPiArICAg ICAgICBJZiBnaXQgaXMgbm90IGZvdW5kLCBhbiBlbXB0eSBsaXN0IHdpbGwgYmUgcmV0dXJuZWQu DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBub3Qgc2h1dGlsLndoaWNoKCJnaXQiKToN Cj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigNCj4gKyAgICAgICAgICAgICAgICAiR2l0IGlz IG5vdCBmb3VuZCBvbiB0aGlzIHN5c3RlbS4gR2l0IHN1Ym1vZHVsZSBwYXRocyB3aWxsIG5vdCBi ZSBjb25zaWRlcmVkLiIpDQo+ICsgICAgICAgICAgICByZXR1cm4gW10NCj4gKw0KPiArICAgICAg ICBvdXRzdHJlYW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICBleGl0X2NvZGUgPSBS dW5DbWQoImdpdCIsICJscy1maWxlcyAtLW90aGVyIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdvcmtpbmdkaXI9c2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLCBvdXRzdHJlYW09b3V0 c3RyZWFtX2J1ZmZlciwgbG9nZ2luZ19sZXZlbD1sb2dnaW5nLk5PVFNFVCkNCj4gKyAgICAgICAg aWYgKGV4aXRfY29kZSAhPSAwKToNCj4gKyAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlHaXRJ Z25vcmVGaWxlRXhjZXB0aW9uKA0KPiArICAgICAgICAgICAgICAgIGYiQW4gZXJyb3Igb2NjdXJy ZWQgcmVhZGluZyBnaXQgaWdub3JlIHNldHRpbmdzLiBUaGlzIHdpbGwgcHJldmVudCBVbmNydXN0 aWZ5IGZyb20gcnVubmluZyBhZ2FpbnN0IHRoZQ0KPiBleHBlY3RlZCBzZXQgb2YgZmlsZXMuIikN Cj4gKw0KPiArICAgICAgICAjIE5vdGU6IFRoaXMgd2lsbCBwb3RlbnRpYWxseSBiZSBhIGxhcmdl IGxpc3QsIGJ1dCBhdCBsZWFzdCBzb3J0ZWQNCj4gKyAgICAgICAgcmV0dXJuIG91dHN0cmVhbV9i dWZmZXIuZ2V0dmFsdWUoKS5zdHJpcCgpLnNwbGl0bGluZXMoKQ0KPiArDQo+ICsgICAgZGVmIF9n ZXRfZ2l0X3N1Ym1vZHVsZV9wYXRocyhzZWxmKSAtPiBMaXN0W3N0cl06DQo+ICsgICAgICAgICIi Ig0KPiArICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBkaXJlY3RvcnkgYWJzb2x1dGUgcGF0aCBz dHJpbmdzIHRvIHRoZSByb290IG9mIGVhY2ggc3VibW9kdWxlIGluIHRoZSB3b3Jrc3BhY2UgcmVw b3NpdG9yeS4NCj4gKw0KPiArICAgICAgICBJZiBnaXQgaXMgbm90IGZvdW5kLCBhbiBlbXB0eSBs aXN0IHdpbGwgYmUgcmV0dXJuZWQuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBub3Qg c2h1dGlsLndoaWNoKCJnaXQiKToNCj4gKyAgICAgICAgICAgIGxvZ2dpbmcud2FybigNCj4gKyAg ICAgICAgICAgICAgICAiR2l0IGlzIG5vdCBmb3VuZCBvbiB0aGlzIHN5c3RlbS4gR2l0IHN1Ym1v ZHVsZSBwYXRocyB3aWxsIG5vdCBiZSBjb25zaWRlcmVkLiIpDQo+ICsgICAgICAgICAgICByZXR1 cm4gW10NCj4gKw0KPiArICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oc2Vs Zi5fYWJzX3dvcmtzcGFjZV9wYXRoLCAiLmdpdG1vZHVsZXMiKSk6DQo+ICsgICAgICAgICAgICBs b2dnaW5nLmluZm8oDQo+ICsgICAgICAgICAgICAgICAgZiIuZ2l0bW9kdWxlcyBmaWxlIGZvdW5k LiBFeGNsdWRpbmcgc3VibW9kdWxlcyBpbiB7c2VsZi5fcGFja2FnZV9uYW1lfS4iKQ0KPiArDQo+ ICsgICAgICAgICAgICBvdXRzdHJlYW1fYnVmZmVyID0gU3RyaW5nSU8oKQ0KPiArICAgICAgICAg ICAgZXhpdF9jb2RlID0gUnVuQ21kKCJnaXQiLCAiY29uZmlnIC0tZmlsZSAuZ2l0bW9kdWxlcyAt LWdldC1yZWdleHAgcGF0aCIsIHdvcmtpbmdkaXI9c2VsZi5fYWJzX3dvcmtzcGFjZV9wYXRoLA0K PiBvdXRzdHJlYW09b3V0c3RyZWFtX2J1ZmZlciwgbG9nZ2luZ19sZXZlbD1sb2dnaW5nLk5PVFNF VCkNCj4gKyAgICAgICAgICAgIGlmIChleGl0X2NvZGUgIT0gMCk6DQo+ICsgICAgICAgICAgICAg ICAgcmFpc2UgVW5jcnVzdGlmeUdpdFN1Ym1vZHVsZUV4Y2VwdGlvbigNCj4gKyAgICAgICAgICAg ICAgICAgICAgZiIuZ2l0bW9kdWxlIGZpbGUgZGV0ZWN0ZWQgYnV0IGFuIGVycm9yIG9jY3VycmVk IHJlYWRpbmcgdGhlIGZpbGUuIENhbm5vdCBwcm9jZWVkIHdpdGggdW5rbm93bg0KPiBzdWJtb2R1 bGUgcGF0aHMuIikNCj4gKw0KPiArICAgICAgICAgICAgc3VibW9kdWxlX3BhdGhzID0gW10NCj4g KyAgICAgICAgICAgIGZvciBsaW5lIGluIG91dHN0cmVhbV9idWZmZXIuZ2V0dmFsdWUoKS5zdHJp cCgpLnNwbGl0bGluZXMoKToNCj4gKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVfcGF0aHMuYXBw ZW5kKA0KPiArICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9p bihzZWxmLl9hYnNfd29ya3NwYWNlX3BhdGgsIGxpbmUuc3BsaXQoKVsxXSkpKQ0KPiArDQo+ICsg ICAgICAgICAgICByZXR1cm4gc3VibW9kdWxlX3BhdGhzDQo+ICsgICAgICAgIGVsc2U6DQo+ICsg ICAgICAgICAgICByZXR1cm4gW10NCj4gKw0KPiArICAgIGRlZiBfaW5pdGlhbGl6ZV9hcHBfaW5m byhzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgSW5pdGlhbGl6ZSBV bmNydXN0aWZ5IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uLg0KPiArDQo+ICsgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCBkZXRlcm1pbmUgdGhlIGFwcGxpY2F0aW9uIHBhdGggYW5kIHZlcnNpb24u DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICAjIFZlcmlmeSBVbmNydXN0aWZ5IGlzIHNwZWNp ZmllZCBpbiB0aGUgZW52aXJvbm1lbnQuDQo+ICsgICAgICAgIGlmIFVuY3J1c3RpZnkuVU5DUlVT VElGWV9QQVRIX0VOVl9LRVkgbm90IGluIG9zLmVudmlyb246DQo+ICsgICAgICAgICAgICByYWlz ZSBVbmNydXN0aWZ5QXBwRW52VmFyTm90Rm91bmRFeGNlcHRpb24oDQo+ICsgICAgICAgICAgICAg ICAgZiJVbmNydXN0aWZ5IGVudmlyb25tZW50IHZhcmlhYmxlIHtVbmNydXN0aWZ5LlVOQ1JVU1RJ RllfUEFUSF9FTlZfS0VZfSBpcyBub3QgcHJlc2VudC4iKQ0KPiArDQo+ICsgICAgICAgIHNlbGYu X2FwcF9wYXRoID0gc2h1dGlsLndoaWNoKCd1bmNydXN0aWZ5JywgcGF0aD1vcy5lbnZpcm9uW1Vu Y3J1c3RpZnkuVU5DUlVTVElGWV9QQVRIX0VOVl9LRVldKQ0KPiArDQo+ICsgICAgICAgIGlmIHNl bGYuX2FwcF9wYXRoIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByYWlzZSBGaWxlTm90Rm91bmRF cnJvcigNCj4gKyAgICAgICAgICAgICAgICBlcnJuby5FTk9FTlQsIG9zLnN0cmVycm9yKGVycm5v LkVOT0VOVCksIHNlbGYuX2FwcF9wYXRoKQ0KPiArDQo+ICsgICAgICAgIHNlbGYuX2FwcF9wYXRo ID0gb3MucGF0aC5ub3JtY2FzZShvcy5wYXRoLm5vcm1wYXRoKHNlbGYuX2FwcF9wYXRoKSkNCj4g Kw0KPiArICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2VsZi5fYXBwX3BhdGgpOg0KPiAr ICAgICAgICAgICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoDQo+ICsgICAgICAgICAgICAgICAg ZXJybm8uRU5PRU5ULCBvcy5zdHJlcnJvcihlcnJuby5FTk9FTlQpLCBzZWxmLl9hcHBfcGF0aCkN Cj4gKw0KPiArICAgICAgICAjIFZlcmlmeSBVbmNydXN0aWZ5IGlzIHByZXNlbnQgYXQgdGhlIGV4 cGVjdGVkIHBhdGguDQo+ICsgICAgICAgIHJldHVybl9idWZmZXIgPSBTdHJpbmdJTygpDQo+ICsg ICAgICAgIHJldCA9IFJ1bkNtZChzZWxmLl9hcHBfcGF0aCwgIi0tdmVyc2lvbiIsIG91dHN0cmVh bT1yZXR1cm5fYnVmZmVyKQ0KPiArICAgICAgICBpZiAocmV0ICE9IDApOg0KPiArICAgICAgICAg ICAgcmFpc2UgVW5jcnVzdGlmeUFwcFZlcnNpb25FcnJvckV4Y2VwdGlvbigNCj4gKyAgICAgICAg ICAgICAgICBmIkVycm9yIG9jY3VycmVkIGV4ZWN1dGluZyAtLXZlcnNpb246IHtyZXR9LiIpDQo+ ICsNCj4gKyAgICAgICAgIyBMb2cgVW5jcnVzdGlmeSB2ZXJzaW9uIGluZm9ybWF0aW9uLg0KPiAr ICAgICAgICBzZWxmLl9hcHBfdmVyc2lvbiA9IHJldHVybl9idWZmZXIuZ2V0dmFsdWUoKS5zdHJp cCgpDQo+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIlVuY3J1c3RpZnkgdmVyc2lvbjog e3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ICsgICAgICAgIHZlcnNpb25fYWdncmVnYXRvci5HZXRW ZXJzaW9uQWdncmVnYXRvcigpLlJlcG9ydFZlcnNpb24oDQo+ICsgICAgICAgICAgICAiVW5jcnVz dGlmeSIsIHNlbGYuX2FwcF92ZXJzaW9uLCB2ZXJzaW9uX2FnZ3JlZ2F0b3IuVmVyc2lvblR5cGVz LklORk8pDQo+ICsNCj4gKyAgICBkZWYgX2luaXRpYWxpemVfY29uZmlnX2ZpbGVfaW5mbyhzZWxm KSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgSW5pdGlhbGl6ZSBVbmNydXN0 aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBpbmZvLg0KPiArDQo+ICsgICAgICAgIFRoZSBjb25maWcg ZmlsZSBwYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBwYWNrYWdlIHJvb3QuDQo+ICsgICAgICAgICIi Ig0KPiArICAgICAgICBzZWxmLl9hcHBfY29uZmlnX2ZpbGUgPSBVbmNydXN0aWZ5LkRFRkFVTFRf Q09ORklHX0ZJTEVfUEFUSA0KPiArICAgICAgICBpZiAiQ29uZmlnRmlsZVBhdGgiIGluIHNlbGYu X3BhY2thZ2VfY29uZmlnOg0KPiArICAgICAgICAgICAgc2VsZi5fYXBwX2NvbmZpZ19maWxlID0g c2VsZi5fcGFja2FnZV9jb25maWdbIkNvbmZpZ0ZpbGVQYXRoIl0uc3RyaXAoKQ0KPiArDQo+ICsg ICAgICAgICAgICBzZWxmLl9hcHBfY29uZmlnX2ZpbGUgPSBvcy5wYXRoLm5vcm1wYXRoKA0KPiAr ICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihzZWxmLl9hYnNfcGFja2FnZV9wYXRoLCBzZWxm Ll9hcHBfY29uZmlnX2ZpbGUpKQ0KPiArDQo+ICsgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmls ZShzZWxmLl9hcHBfY29uZmlnX2ZpbGUpOg0KPiArICAgICAgICAgICAgcmFpc2UgRmlsZU5vdEZv dW5kRXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgZXJybm8uRU5PRU5ULCBvcy5zdHJlcnJvcihl cnJuby5FTk9FTlQpLCBzZWxmLl9hcHBfY29uZmlnX2ZpbGUpDQo+ICsNCj4gKyAgICBkZWYgX2lu aXRpYWxpemVfZW52aXJvbm1lbnRfaW5mbyhzZWxmLCBwYWNrYWdlX3JlbF9wYXRoOiBzdHIsIGVk azJfcGF0aDogRWRrMlBhdGgsIHBhY2thZ2VfY29uZmlnOiBEaWN0W3N0ciwNCj4gTGlzdFtzdHJd XSwgdGM6IEp1bml0UmVwb3J0VGVzdENhc2UpIC0+IE5vbmU6DQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBJbml0aWFsaXplcyBwbHVnaW4gZW52aXJvbm1lbnQgaW5mb3JtYXRpb24uDQo+ICsg ICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLl9hYnNfcGFja2FnZV9wYXRoID0gZWRrMl9wYXRo LkdldEFic29sdXRlUGF0aE9uVGhpc1N5dGVtRnJvbUVkazJSZWxhdGl2ZVBhdGgoDQo+ICsgICAg ICAgICAgICBwYWNrYWdlX3JlbF9wYXRoKQ0KPiArICAgICAgICBzZWxmLl9hYnNfd29ya3NwYWNl X3BhdGggPSBlZGsyX3BhdGguV29ya3NwYWNlUGF0aA0KPiArICAgICAgICBzZWxmLl9wYWNrYWdl X2NvbmZpZyA9IHBhY2thZ2VfY29uZmlnDQo+ICsgICAgICAgIHNlbGYuX3BhY2thZ2VfbmFtZSA9 IG9zLnBhdGguYmFzZW5hbWUoDQo+ICsgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKHBhY2th Z2VfcmVsX3BhdGgpKQ0KPiArICAgICAgICBzZWxmLl9yZWxfcGFja2FnZV9wYXRoID0gcGFja2Fn ZV9yZWxfcGF0aA0KPiArICAgICAgICBzZWxmLl90YyA9IHRjDQo+ICsNCj4gKyAgICBkZWYgX2lu aXRpYWxpemVfZmlsZV90b19mb3JtYXRfaW5mbyhzZWxmKSAtPiBOb25lOg0KPiArICAgICAgICAi IiINCj4gKyAgICAgICAgRm9ybXMgdGhlIGxpc3Qgb2Ygc291cmNlIGZpbGVzIGZvciBVbmNydXN0 aWZ5IHRvIHByb2Nlc3MuDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICAjIENyZWF0ZSBhIGxp c3Qgb2YgYWxsIHRoZSBwYWNrYWdlIHJlbGF0aXZlIGZpbGUgcGF0aHMgaW4gdGhlIHBhY2thZ2Ug dG8gcnVuIGFnYWluc3QgVW5jcnVzdGlmeS4NCj4gKyAgICAgICAgcmVsX2ZpbGVfcGF0aHNfdG9f Zm9ybWF0ID0gbGlzdCgNCj4gKyAgICAgICAgICAgIFVuY3J1c3RpZnkuU1RBTkRBUkRfUExVR0lO X0RFRklORURfUEFUSFMpDQo+ICsNCj4gKyAgICAgICAgIyBBbGxvdyB0aGUgY2kueWFtbCB0byBy ZW1vdmUgYW55IG9mIHRoZSBwcmUtZGVmaW5lZCBzdGFuZGFyZCBwYXRocw0KPiArICAgICAgICBp ZiAiSWdub3JlU3RhbmRhcmRQYXRocyIgaW4gc2VsZi5fcGFja2FnZV9jb25maWc6DQo+ICsgICAg ICAgICAgICBmb3IgYSBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZ1siSWdub3JlU3RhbmRhcmRQYXRo cyJdOg0KPiArICAgICAgICAgICAgICAgIGlmIGEuc3RyaXAoKSBpbiByZWxfZmlsZV9wYXRoc190 b19mb3JtYXQ6DQo+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dCgNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGYiSWdub3Jpbmcgc3RhbmRhcmQgcGF0aCBkdWUgdG8g Y2kueWFtbCBpZ25vcmU6IHthfSIpDQo+ICsgICAgICAgICAgICAgICAgICAgIHJlbF9maWxlX3Bh dGhzX3RvX2Zvcm1hdC5yZW1vdmUoYS5zdHJpcCgpKQ0KPiArICAgICAgICAgICAgICAgIGVsc2U6 DQo+ICsgICAgICAgICAgICAgICAgICAgIHJhaXNlIFVuY3J1c3RpZnlJbnZhbGlkSWdub3JlU3Rh bmRhcmRQYXRoc0V4Y2VwdGlvbihmIkludmFsaWQgSWdub3JlU3RhbmRhcmRQYXRocyB2YWx1ZTog e2F9IikNCj4gKw0KPiArICAgICAgICAjIEFsbG93IHRoZSBjaS55YW1sIHRvIHNwZWNpZnkgYWRk aXRpb25hbCBpbmNsdWRlIHBhdGhzIGZvciB0aGlzIHBhY2thZ2UNCj4gKyAgICAgICAgaWYgIkFk ZGl0aW9uYWxJbmNsdWRlUGF0aHMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnOg0KPiArICAgICAg ICAgICAgcmVsX2ZpbGVfcGF0aHNfdG9fZm9ybWF0LmV4dGVuZCgNCj4gKyAgICAgICAgICAgICAg ICBzZWxmLl9wYWNrYWdlX2NvbmZpZ1siQWRkaXRpb25hbEluY2x1ZGVQYXRocyJdKQ0KPiArDQo+ ICsgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdCA9IFtdDQo+ICsgICAgICAg IGZvciBwYXRoIGluIHJlbF9maWxlX3BhdGhzX3RvX2Zvcm1hdDoNCj4gKyAgICAgICAgICAgIHNl bGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdC5leHRlbmQoDQo+ICsgICAgICAgICAgICAgICAg W3N0cihwYXRoLnJlc29sdmUoKSkgZm9yIHBhdGggaW4gcGF0aGxpYi5QYXRoKHNlbGYuX2Fic19w YWNrYWdlX3BhdGgpLnJnbG9iKHBhdGgpXSkNCj4gKw0KPiArICAgICAgICBpZiBub3QgIlNraXBH aXRFeGNsdXNpb25zIiBpbiBzZWxmLl9wYWNrYWdlX2NvbmZpZyBvciBub3Qgc2VsZi5fcGFja2Fn ZV9jb25maWdbIlNraXBHaXRFeGNsdXNpb25zIl06DQo+ICsgICAgICAgICAgICAjIFJlbW92ZSBm aWxlcyBpZ25vcmVkIGJ5IGdpdA0KPiArICAgICAgICAgICAgbG9nZ2luZy5pbmZvKA0KPiArICAg ICAgICAgICAgICAgIGYie3NlbGYuX3BhY2thZ2VfbmFtZX0gZmlsZSBjb3VudCBiZWZvcmUgZ2l0 IGlnbm9yZSBmaWxlIGV4Y2x1c2lvbjoNCj4ge2xlbihzZWxmLl9hYnNfZmlsZV9wYXRoc190b19m b3JtYXQpfSIpDQo+ICsNCj4gKyAgICAgICAgICAgIGlnbm9yZWRfcGF0aHMgPSBzZWxmLl9nZXRf Z2l0X2lnbm9yZWRfcGF0aHMoKQ0KPiArICAgICAgICAgICAgc2VsZi5fYWJzX2ZpbGVfcGF0aHNf dG9fZm9ybWF0ID0gbGlzdCgNCj4gKyAgICAgICAgICAgICAgICBzZXQoc2VsZi5fYWJzX2ZpbGVf cGF0aHNfdG9fZm9ybWF0KS5kaWZmZXJlbmNlKGlnbm9yZWRfcGF0aHMpKQ0KPiArDQo+ICsgICAg ICAgICAgICBsb2dnaW5nLmluZm8oDQo+ICsgICAgICAgICAgICAgICAgZiJ7c2VsZi5fcGFja2Fn ZV9uYW1lfSBmaWxlIGNvdW50IGFmdGVyIGdpdCBpZ25vcmUgZmlsZSBleGNsdXNpb246DQo+IHts ZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiArDQo+ICsgICAgICAgICAg ICAjIFJlbW92ZSBmaWxlcyBpbiBzdWJtb2R1bGVzDQo+ICsgICAgICAgICAgICBsb2dnaW5nLmlu Zm8oDQo+ICsgICAgICAgICAgICAgICAgZiJ7c2VsZi5fcGFja2FnZV9uYW1lfSBmaWxlIGNvdW50 IGJlZm9yZSBzdWJtb2R1bGUgZXhjbHVzaW9uOiB7bGVuKHNlbGYuX2Fic19maWxlX3BhdGhzX3Rv X2Zvcm1hdCl9IikNCj4gKw0KPiArICAgICAgICAgICAgc3VibW9kdWxlX3BhdGhzID0gdHVwbGUo c2VsZi5fZ2V0X2dpdF9zdWJtb2R1bGVfcGF0aHMoKSkNCj4gKyAgICAgICAgICAgIGZvciBwYXRo IGluIHN1Ym1vZHVsZV9wYXRoczoNCj4gKyAgICAgICAgICAgICAgICBsb2dnaW5nLmluZm8oZiIg IHN1Ym1vZHVsZSBwYXRoOiB7cGF0aH0iKQ0KPiArDQo+ICsgICAgICAgICAgICBzZWxmLl9hYnNf ZmlsZV9wYXRoc190b19mb3JtYXQgPSBbDQo+ICsgICAgICAgICAgICAgICAgZiBmb3IgZiBpbiBz ZWxmLl9hYnNfZmlsZV9wYXRoc190b19mb3JtYXQgaWYgbm90IGYuc3RhcnRzd2l0aChzdWJtb2R1 bGVfcGF0aHMpXQ0KPiArDQo+ICsgICAgICAgICAgICBsb2dnaW5nLmluZm8oDQo+ICsgICAgICAg ICAgICAgICAgZiJ7c2VsZi5fcGFja2FnZV9uYW1lfSBmaWxlIGNvdW50IGFmdGVyIHN1Ym1vZHVs ZSBleGNsdXNpb246IHtsZW4oc2VsZi5fYWJzX2ZpbGVfcGF0aHNfdG9fZm9ybWF0KX0iKQ0KPiAr DQo+ICsgICAgICAgICMgU29ydCB0aGUgZmlsZXMgZm9yIG1vcmUgY29uc2lzdGVudCByZXN1bHRz DQo+ICsgICAgICAgIHNlbGYuX2Fic19maWxlX3BhdGhzX3RvX2Zvcm1hdC5zb3J0KCkNCj4gKw0K PiArICAgIGRlZiBfaW5pdGlhbGl6ZV90ZXN0X2Nhc2Vfb3V0cHV0X29wdGlvbnMoc2VsZikgLT4g Tm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIEluaXRpYWxpemVzIG9wdGlvbnMgdGhh dCBpbmZsdWVuY2UgdGVzdCBjYXNlIG91dHB1dC4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IHNlbGYuX2F1ZGl0X29ubHlfbW9kZSA9IEZhbHNlDQo+ICsgICAgICAgIHNlbGYuX291dHB1dF9m aWxlX2RpZmZzID0gRmFsc2UNCj4gKw0KPiArICAgICAgICBpZiAiQXVkaXRPbmx5IiBpbiBzZWxm Ll9wYWNrYWdlX2NvbmZpZyBhbmQgc2VsZi5fcGFja2FnZV9jb25maWdbIkF1ZGl0T25seSJdOg0K PiArICAgICAgICAgICAgc2VsZi5fYXVkaXRfb25seV9tb2RlID0gVHJ1ZQ0KPiArDQo+ICsgICAg ICAgIGlmICJPdXRwdXRGaWxlRGlmZnMiIGluIHNlbGYuX3BhY2thZ2VfY29uZmlnIGFuZCBzZWxm Ll9wYWNrYWdlX2NvbmZpZ1siT3V0cHV0RmlsZURpZmZzIl06DQo+ICsgICAgICAgICAgICBzZWxm Ll9vdXRwdXRfZmlsZV9kaWZmcyA9IFRydWUNCj4gKw0KPiArICAgIGRlZiBfbG9nX3VuY3J1c3Rp ZnlfYXBwX2luZm8oc2VsZikgLT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIExv Z3MgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbi4NCj4gKyAgICAgICAgIiIiDQo+ ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIkZvdW5kIFVuY3J1c3RpZnkgYXQge3NlbGYu X2FwcF9wYXRofSIpDQo+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZE91dChmIlVuY3J1c3RpZnkg dmVyc2lvbjoge3NlbGYuX2FwcF92ZXJzaW9ufSIpDQo+ICsgICAgICAgIHNlbGYuX3RjLkxvZ1N0 ZE91dCgnXG4nKQ0KPiArICAgICAgICBsb2dnaW5nLmluZm8oZiJGb3VuZCBVbmNydXN0aWZ5IGF0 IHtzZWxmLl9hcHBfcGF0aH0iKQ0KPiArICAgICAgICBsb2dnaW5nLmluZm8oZiJVbmNydXN0aWZ5 IHZlcnNpb246IHtzZWxmLl9hcHBfdmVyc2lvbn0iKQ0KPiArICAgICAgICBsb2dnaW5nLmluZm8o J1xuJykNCj4gKw0KPiArICAgIGRlZiBfcHJvY2Vzc191bmNydXN0aWZ5X3Jlc3VsdHMoc2VsZikg LT4gTm9uZToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIFByb2Nlc3MgdGhlIHJlc3VsdHMg ZnJvbSBVbmNydXN0aWZ5Lg0KPiArDQo+ICsgICAgICAgIERldGVybWluZXMgd2hldGhlciBmb3Jt YXR0aW5nIGVycm9ycyBhcmUgcHJlc2VudCBhbmQgbG9ncyBmYWlsdXJlcy4NCj4gKyAgICAgICAg IiIiDQo+ICsgICAgICAgIGZvcm1hdHRlZF9maWxlcyA9IFtzdHIocGF0aC5yZXNvbHZlKCkpIGZv ciBwYXRoIGluIHBhdGhsaWIuUGF0aCgNCj4gKyAgICAgICAgICAgIHNlbGYuX2Fic19wYWNrYWdl X3BhdGgpLnJnbG9iKGYnKntVbmNydXN0aWZ5LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTn0nKV0N Cj4gKw0KPiArICAgICAgICBzZWxmLl9mb3JtYXR0ZWRfZmlsZV9lcnJvcl9jb3VudCA9IGxlbihm b3JtYXR0ZWRfZmlsZXMpDQo+ICsNCj4gKyAgICAgICAgaWYgc2VsZi5fZm9ybWF0dGVkX2ZpbGVf ZXJyb3JfY291bnQgPiAwOg0KPiArICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJyb3IoIkZp bGVzIHdpdGggZm9ybWF0dGluZyBlcnJvcnM6XG4iKQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBz ZWxmLl9vdXRwdXRfZmlsZV9kaWZmczoNCj4gKyAgICAgICAgICAgICAgICBsb2dnaW5nLmluZm8o IkNhbGN1bGF0aW5nIGZpbGUgZGlmZnMuIFRoaXMgbWlnaHQgdGFrZSBhIHdoaWxlLi4uIikNCj4g Kw0KPiArICAgICAgICBmb3IgZm9ybWF0dGVkX2ZpbGUgaW4gZm9ybWF0dGVkX2ZpbGVzOg0KPiAr ICAgICAgICAgICAgcHJlX2Zvcm1hdHRlZF9maWxlID0gZm9ybWF0dGVkX2ZpbGVbOi0NCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihVbmNydXN0 aWZ5LkZPUk1BVFRFRF9GSUxFX0VYVEVOU0lPTildDQo+ICsNCj4gKyAgICAgICAgICAgIGlmIHNl bGYuX291dHB1dF9maWxlX2RpZmZzOg0KPiArICAgICAgICAgICAgICAgIHdpdGggb3BlbihwcmVf Zm9ybWF0dGVkX2ZpbGUpIGFzIHBmLCBvcGVuKGZvcm1hdHRlZF9maWxlKSBhcyBmZjoNCj4gKyAg ICAgICAgICAgICAgICAgICAgc2VsZi5fdGMuTG9nU3RkRXJyb3IoDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBmIkZvcm1hdHRpbmcgZXJyb3JzIGluIHtvcy5wYXRoLnJlbHBhdGgocHJlX2Zv cm1hdHRlZF9maWxlLCBzZWxmLl9hYnNfcGFja2FnZV9wYXRoKX06XG4iKQ0KPiArDQo+ICsgICAg ICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGRpZmZsaWIudW5pZmllZF9kaWZmKHBmLnJlYWRs aW5lcygpLCBmZi5yZWFkbGluZXMoKSwgZnJvbWZpbGU9cHJlX2Zvcm1hdHRlZF9maWxlLA0KPiB0 b2ZpbGU9Zm9ybWF0dGVkX2ZpbGUsIG49Myk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl90Yy5Mb2dTdGRFcnJvcihsaW5lKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgIHNl bGYuX3RjLkxvZ1N0ZEVycm9yKCdcbicpDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAg ICAgICAgICAgIHNlbGYuX3RjLkxvZ1N0ZEVycm9yKHByZV9mb3JtYXR0ZWRfZmlsZSkNCj4gKw0K PiArICAgIGRlZiBfcmVtb3ZlX3RyZWUoc2VsZiwgZGlyX3BhdGg6IHN0ciwgaWdub3JlX2Vycm9y czogYm9vbCA9IEZhbHNlKSAtPiBOb25lOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgSGVs cGVyIGZvciByZW1vdmluZyBhIGRpcmVjdG9yeS4gT3ZlciB0aW1lIHRoZXJlIGhhdmUgYmVlbg0K PiArICAgICAgICBtYW55IHByaXZhdGUgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMgZHVlIHRvIHJl bGlhYmlsaXR5IGlzc3VlcyBpbiB0aGUNCj4gKyAgICAgICAgc2h1dGlsIGltcGxlbWVudGF0aW9u cy4gVG8gY29uc29saWRhdGUgb24gYSBzaW5nbGUgZnVuY3Rpb24gdGhpcyBoZWxwZXIgaXMgYWRk ZWQuDQo+ICsNCj4gKyAgICAgICAgT24gZXJyb3IgdHJ5IHRvIGNoYW5nZSBmaWxlIGF0dHJpYnV0 ZXMuIEFsc28gYWRkIHJldHJ5IGxvZ2ljLg0KPiArDQo+ICsgICAgICAgIFRoaXMgZnVuY3Rpb24g aXMgdGVtcG9yYXJpbHkgYm9ycm93ZWQgZnJvbSBlZGsydG9vbGxpYi51dGlsaXR5X2Z1bmN0aW9u cw0KPiArICAgICAgICBzaW5jZSB0aGUgdmVyc2lvbiB1c2VkIGluIGVkazIgaXMgbm90IHJlY2Vu dCBlbm91Z2ggdG8gaW5jbHVkZSB0aGUNCj4gKyAgICAgICAgZnVuY3Rpb24uDQo+ICsNCj4gKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcmVwbGFjZWQgYnkgIlJlbW92ZVRyZWUiIHdo ZW4gaXQgaXMgYXZhaWxhYmxlLg0KPiArDQo+ICsgICAgICAgIEFyZ3M6DQo+ICsgICAgICAgICAg LSBkaXJfcGF0aDogUGF0aCB0byBkaXJlY3RvcnkgdG8gcmVtb3ZlLg0KPiArICAgICAgICAgIC0g aWdub3JlX2Vycm9yczogV2hldGhlciB0byBpZ25vcmUgZXJyb3JzIGR1cmluZyByZW1vdmFsDQo+ ICsgICAgICAgICIiIg0KPiArDQo+ICsgICAgICAgIGRlZiBfcmVtb3ZlX3JlYWRvbmx5KGZ1bmMs IHBhdGgsIF8pOg0KPiArICAgICAgICAgICAgIiIiDQo+ICsgICAgICAgICAgICBQcml2YXRlIGZ1 bmN0aW9uIHRvIGF0dGVtcHQgdG8gY2hhbmdlIHBlcm1pc3Npb25zIG9uIGZpbGUvZm9sZGVyIGJl aW5nIGRlbGV0ZWQuDQo+ICsgICAgICAgICAgICAiIiINCj4gKyAgICAgICAgICAgIG9zLmNobW9k KHBhdGgsIG9zLnN0YXQuU19JV1JJVEUpDQo+ICsgICAgICAgICAgICBmdW5jKHBhdGgpDQo+ICsN Cj4gKyAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMyk6ICAjIHJldHJ5IHVwIHRvIDMgdGltZXMNCj4g KyAgICAgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAgICAgICBwcmludChkaXJfcGF0aCkNCj4g KyAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcl9wYXRoLCBpZ25vcmVfZXJyb3JzPWln bm9yZV9lcnJvcnMsIG9uZXJyb3I9X3JlbW92ZV9yZWFkb25seSkNCj4gKyAgICAgICAgICAgIGV4 Y2VwdCBPU0Vycm9yIGFzIGVycjoNCj4gKyAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmco ZiJGYWlsZWQgdG8gZnVsbHkgcmVtb3ZlIHtkaXJfcGF0aH06IHtlcnJ9IikNCj4gKyAgICAgICAg ICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgYnJlYWsNCj4gKyAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihmIkZhaWxlZCB0byByZW1vdmUge2Rpcl9w YXRofSIpDQo+ICsNCj4gKyAgICBkZWYgX3J1bl91bmNydXN0aWZ5KHNlbGYpIC0+IE5vbmU6DQo+ ICsgICAgICAgICIiIg0KPiArICAgICAgICBSdW5zIFVuY3J1c3RpZnkgZm9yIHRoaXMgaW5zdGFu Y2Ugb2YgcGx1Z2luIGV4ZWN1dGlvbi4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIGxvZ2dp bmcuaW5mbygiRXhlY3V0aW5nIFVuY3J1c3RpZnkuIFRoaXMgbWlnaHQgdGFrZSBhIHdoaWxlLi4u IikNCj4gKyAgICAgICAgc3RhcnRfdGltZSA9IHRpbWVpdC5kZWZhdWx0X3RpbWVyKCkNCj4gKyAg ICAgICAgc2VsZi5fZXhlY3V0ZV91bmNydXN0aWZ5KCkNCj4gKyAgICAgICAgZW5kX3RpbWUgPSB0 aW1laXQuZGVmYXVsdF90aW1lcigpIC0gc3RhcnRfdGltZQ0KPiArDQo+ICsgICAgICAgIGV4ZWN1 dGlvbl9zdW1tYXJ5ID0gZiJVbmNydXN0aWZ5IGV4ZWN1dGVkIGFnYWluc3Qge2xlbihzZWxmLl9h YnNfZmlsZV9wYXRoc190b19mb3JtYXQpfSBmaWxlcyBpbg0KPiB7c2VsZi5fcGFja2FnZV9uYW1l fSBpbiB7ZW5kX3RpbWU6LjJmfSBzZWNvbmRzLlxuIg0KPiArDQo+ICsgICAgICAgIHNlbGYuX3Rj LkxvZ1N0ZE91dChleGVjdXRpb25fc3VtbWFyeSkNCj4gKyAgICAgICAgbG9nZ2luZy5pbmZvKGV4 ZWN1dGlvbl9zdW1tYXJ5KQ0KPiArDQo+ICsgICAgICAgIGlmIHNlbGYuX2FwcF9leGl0X2NvZGUg IT0gMCBhbmQgc2VsZi5fYXBwX2V4aXRfY29kZSAhPSAxOg0KPiArICAgICAgICAgICAgcmFpc2Ug VW5jcnVzdGlmeUFwcEV4ZWN1dGlvbkV4Y2VwdGlvbigNCj4gKyAgICAgICAgICAgICAgICBmIkVy cm9yIHtzdHIoc2VsZi5fYXBwX2V4aXRfY29kZSl9IHJldHVybmVkIGZyb20gVW5jcnVzdGlmeTpc blxue3N0cihzZWxmLl9hcHBfb3V0cHV0KX0iKQ0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVn aW4vVW5jcnVzdGlmeS9kZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dCBiLy5weXRvb2wvUGx1Z2luL1Vu Y3J1c3RpZnkvZGVmYXVsdF9maWxlX2hlYWRlci50eHQNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yOTU1YTczNGRmZTENCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5L2RlZmF1bHRfZmlsZV9oZWFkZXIudHh0DQo+ IEBAIC0wLDAgKzEsOSBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIEJyaWVmIGRlc2NyaXB0aW9uIG9m IHRoZSBmaWxlJ3MgcHVycG9zZS4NCj4gKw0KPiArICBEZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0 aGUgZmlsZSdzIGNvbnRlbnRzIGFuZCBvdGhlciB1c2VmdWwNCj4gKyAgaW5mb3JtYXRpb24gZm9y IGEgcGVyc29uIHZpZXdpbmcgdGhlIGZpbGUgZm9yIHRoZSBmaXJzdCB0aW1lLg0KPiArDQo+ICsg IDw8Q29weXJpZ2h0Pj4NCj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gKyoqLw0KPiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlm eS9kZWZhdWx0X2Z1bmN0aW9uX2hlYWRlci50eHQgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5 L2RlZmF1bHRfZnVuY3Rpb25faGVhZGVyLnR4dA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwMDAuLjY2ZWRjNzJlNjczMQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi Ly5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ IEBAIC0wLDAgKzEsMTUgQEANCj4gKy8qKg0KPiArICBCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGlz IGZ1bmN0aW9uJ3MgcHVycG9zZS4NCj4gKw0KPiArICBGb2xsb3cgaXQgaW1tZWRpYXRlbHkgd2l0 aCB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24uDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgICAgIEFy ZzEgIERlc2NyaXB0aW9uIG9mIEFyZzEuDQo+ICsgIEBwYXJhbVtpbl0gICAgICBBcmcyICBEZXNj cmlwdGlvbiBvZiBBcmcyIFRoaXMgaXMgY29tcGxpY2F0ZWQgYW5kIHJlcXVpcmVzDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSBsaW5lcyB0byBkZXNjcmliZS4NCj4gKyAgQHBh cmFtW291dF0gICAgIEFyZzMgIERlc2NyaXB0aW9uIG9mIEFyZzMuDQo+ICsgIEBwYXJhbVtpbiwg b3V0XSBBcmc0ICBEZXNjcmlwdGlvbiBvZiBBcmc0Lg0KPiArDQo+ICsgIEByZXR2YWwgVkFMX09O RSAgRGVzY3JpcHRpb24gb2Ygd2hhdCBWQUxfT05FIHNpZ25pZmllcy4NCj4gKyAgQHJldHZhbCBP VEhFUiAgICBUaGlzIGlzIHRoZSBvbmx5IG90aGVyIHJldHVybiB2YWx1ZS4gSWYgdGhlcmUgd2Vy ZSBvdGhlcg0KPiArICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXMsIHRoZXkgd291bGQg YmUgbGlzdGVkLg0KPiArKiovDQo+IGRpZmYgLS1naXQgYS8ucHl0b29sL1BsdWdpbi9VbmNydXN0 aWZ5L3VuY3J1c3RpZnkuY2ZnIGIvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5 LmNmZw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLmQ2ZTk4 ZGZhOWMwMQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3Rp ZnkvdW5jcnVzdGlmeS5jZmcNCj4gQEAgLTAsMCArMSw0NjYgQEANCj4gKyMjIEBmaWxlDQo+ICsj IFVuY3J1c3RpZnkgQ29uZmlndXJhdGlvbiBGaWxlIGZvciBFREsgSUkgQyBDb2RlDQo+ICsjDQo+ ICsjIENvZGluZyBTdGFuZGFyZDogaHR0cHM6Ly9lZGsyLWRvY3MuZ2l0Ym9vay5pby9lZGstaWkt Yy1jb2Rpbmctc3RhbmRhcmRzLXNwZWNpZmljYXRpb24vDQo+ICsjDQo+ICsjIFRoaXMgY29uZmln dXJhdGlvbiBmaWxlIGlzIG1lYW50IHRvIGJlIGEgImJlc3QgYXR0ZW1wdCIgdG8gYWxpZ24gd2l0 aCB0aGUNCj4gKyMgZGVmaW5pdGlvbnMgaW4gdGhlIEVESyBJSSBDIENvZGluZyBTdGFuZGFyZHMg U3BlY2lmaWNhdGlvbi4NCj4gKyMNCj4gKyMgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9y YXRpb24uDQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+ICsjIw0KPiArDQo+ICsjIEZvcmNlIFVURi04IGVuY29kaW5nIChubyBVVEYtMTYpDQo+ICtl bmFibGVfZGlncmFwaHMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK3V0ZjhfYnl0ZSAgICAg ICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArdXRmOF9mb3JjZSAgICAgICAgICAgICAgICAg ICAgICA9IHRydWUNCj4gKw0KPiArIyBDb2RlIHdpZHRoIC8gbGluZSBzcGxpdHRpbmcNCj4gKyNj b2RlX3dpZHRoICAgICAgICAgICAgICAgICAgICAgID0xMjAgICAgICMgVE9ETzogVGhpcyBjYXVz ZXMgbm9uLWRldGVybWluaXN0aWMgYmVoYXZpb3VyIGluIHNvbWUgY2FzZXMgd2hlbiBjb2RlIHdy YXBzDQo+ICtsc19jb2RlX3dpZHRoICAgICAgICAgICAgICAgICAgID1mYWxzZQ0KPiArbHNfZm9y X3NwbGl0X2Z1bGwgICAgICAgICAgICAgICA9dHJ1ZQ0KPiArbHNfZnVuY19zcGxpdF9mdWxsICAg ICAgICAgICAgICA9dHJ1ZQ0KPiArcG9zX2NvbW1hICAgICAgICAgICAgICAgICAgICAgICA9dHJh aWwNCj4gKw0KPiArIyA1LjEuNyAgQWxsIGZpbGVzIG11c3QgZW5kIHdpdGggQ1JMRg0KPiArbmV3 bGluZXMgICAgICAgICAgICAgICAgICAgICAgICA9IGNybGYNCj4gKw0KPiArIyA1LjEuMiBEbyBu b3QgdXNlIHRhYiBjaGFyYWN0ZXJzDQo+ICsNCj4gK2NtdF9jb252ZXJ0X3RhYl90b19zcGFjZXMg ICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGNvbnZlcnQgYWxsIHRhYnMgdG8gc3BhY2Vz IGluIGNvbW1lbnRzLiBJZiBmYWxzZSwgdGFicyBpbg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIGNvbW1lbnRzIGFyZSBsZWZ0IGFsb25lLCB1bmxlc3Mg dXNlZCBmb3IgaW5kZW50aW5nLg0KPiAraW5kZW50X2NvbHVtbnMgICAgICAgICAgICAgICAgICA9 IDIgICAgICAgICAjIE51bWJlciBvZiBzcGFjZXMgZm9yIGluZGVudGF0aW9uDQo+ICtpbmRlbnRf d2l0aF90YWJzICAgICAgICAgICAgICAgID0gMCAgICAgICAgICMgRG8gbm90IHVzZSBUQUIgY2hh cmFjdGVycw0KPiArc3RyaW5nX3JlcGxhY2VfdGFiX2NoYXJzICAgICAgICA9IHRydWUgICAgICAj IFJlcGxhY2UgVEFCIHdpdGggU1BBQ0UNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBOb3RlOiBUaGlzIHdpbGwgYnJlYWsgLnJvYm90IGZpbGVzIGJ1dCBp cyBuZWVkZWQgZm9yIGVkazIgc3R5bGUNCj4gKw0KPiArIyA1LjIuMS4xIFRoZXJlIHNoYWxsIGJl IG9ubHkgb25lIHN0YXRlbWVudCBvbiBhIGxpbmUgKHN0YXRlbWVudCBlbmRzIHdpdGggOykNCj4g K25sX211bHRpX2xpbmVfY29uZCAgICAgICAgICAgICAgPSB0cnVlICAgICAgIyBBZGQgYSBuZXds aW5lIGJldHdlZW4gJyknIGFuZCAneycgaWYgdGhlICcpJyBpcyBvbiBhIGRpZmZlcmVudCBsaW5l IHRoYW4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0 aGUgaWYvZm9yL2V0Yy4NCj4gK25sX2FmdGVyX3NlbWljb2xvbiAgICAgICAgICAgICAgPSB0cnVl ICAgICAgIyBXaGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUgYWZ0ZXIgc2VtaWNvbG9ucywgZXhjZXB0 IGluICdmb3InIHN0YXRlbWVudHMuDQo+ICsNCj4gKyMgNS4yLjEuMyBBbiBvcGVuIGJyYWNlICd7 JyBnb2VzIG9uIHRoZSBzYW1lIGxpbmUgYXMgdGhlIGNsb3NpbmcgcGFyZW50aGVzaXMgJyknIG9m IHNpbXBsZSBwcmVkaWNhdGUgZXhwcmVzc2lvbnMNCj4gK21vZF9mdWxsX2JyYWNlX2RvICAgICAg ICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1s aW5lICdkbycgc3RhdGVtZW50Lg0KPiArbW9kX2Z1bGxfYnJhY2VfZm9yICAgICAgICAgICAgICA9 IGFkZA0KPiArbW9kX2Z1bGxfYnJhY2VfZnVuY3Rpb24gICAgICAgICA9IGFkZCAgICAgICAjIEFk ZCBvciByZW1vdmUgYnJhY2VzIG9uIGEgc2luZ2xlLWxpbmUgZnVuY3Rpb24gZGVmaW5pdGlvbi4N Cj4gK21vZF9mdWxsX2JyYWNlX2lmICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3Ig cmVtb3ZlIGJyYWNlcyBvbiBhIHNpbmdsZS1saW5lICdpZicgc3RhdGVtZW50LiBCcmFjZXMgd2ls bCBub3QgYmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyByZW1vdmVkIGlmIHRoZSBicmFjZWQgc3RhdGVtZW50IGNvbnRhaW5zIGFuICdlbHNlJy4NCj4g K21vZF9mdWxsX2JyYWNlX2lmX2NoYWluICAgICAgICAgPSBmYWxzZQ0KPiArbW9kX2Z1bGxfYnJh Y2Vfd2hpbGUgICAgICAgICAgICA9IGFkZA0KPiArDQo+ICsjIDUuMi4xLjQgQSBjbG9zZSBicmFj ZSAnfScgYWx3YXlzIGdvZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGFzdCBsaW5lIG9mIHRo ZSBib2R5DQo+ICtlYXRfYmxhbmtzX2FmdGVyX29wZW5fYnJhY2UgICAgID0gdHJ1ZQ0KPiArZWF0 X2JsYW5rc19iZWZvcmVfY2xvc2VfYnJhY2UgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gcmVt b3ZlIGJsYW5rIGxpbmVzIGJlZm9yZSAnfScuDQo+ICsNCj4gKyMgNS4yLjIuMiBBbHdheXMgcHV0 IHNwYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgYmluYXJ5IG9wZXJhdG9ycy4NCj4gK3NwX2Fzc2lnbiAg ICAgICAgICAgICAgICAgICAgICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFy b3VuZCBhc3NpZ25tZW50IG9wZXJhdG9yICc9JywgJys9JywgZXRjLg0KPiArc3BfYXNzaWduX2Rl ZmF1bHQgICAgICAgICAgICAgICA9IGFkZA0KPiArc3BfYm9vbCAgICAgICAgICAgICAgICAgICAg ICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYXJvdW5kIGJvb2xlYW4gb3Bl cmF0b3JzICcmJicgYW5kICd8fCcuDQo+ICtzcF9jb21wYXJlICAgICAgICAgICAgICAgICAgICAg ID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgY29tcGFyZSBvcGVyYXRv ciAnPCcsICc+JywgJz09JywgZXRjLg0KPiArDQo+ICsjIDUuMi4yLjMgRG8gbm90IHB1dCBzcGFj ZSBiZXR3ZWVuIHVuYXJ5IG9wZXJhdG9ycyBhbmQgdGhlaXIgb2JqZWN0DQo+ICtzcF9hZGRyICAg ICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQSBvciByZW1vdmUgc3BhY2UgYWZ0 ZXIgdGhlICcmJyAoYWRkcmVzcy1vZikgdW5hcnkgb3BlcmF0b3IuDQo+ICtzcF9pbmNkZWMgICAg ICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3 ZWVuICcrKycgYW5kICctLScgdGhlIHdvcmQgdG8gd2hpY2ggaXQgaXMgYmVpbmcNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcHBsaWVkLCBhcyBpbiAn KC0teCknIG9yICd5Kys7Jy4NCj4gK3NwX2ludiAgICAgICAgICAgICAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSAnficgKGludmVydCkgdW5h cnkgb3BlcmF0b3IuDQo+ICtzcF9ub3QgICAgICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhZnRlciB0aGUgJyEnIChub3QpIHVuYXJ5IG9wZXJh dG9yLg0KPiArc3Bfc2lnbiAgICAgICAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFk ZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgJysnIG9yICctJywgYXMgaW4gJ3ggPSAtNScgb3IgJ3kg PSArNycuDQo+ICsNCj4gKyMgNS4yLjIuNCBTdWJzZXF1ZW50IGxpbmVzIG9mIG11bHRpLWxpbmUg ZnVuY3Rpb24gY2FsbHMgc2hvdWxkIGxpbmUgdXAgdHdvIHNwYWNlcyBmcm9tIHRoZSBiZWdpbm5p bmcgb2YgdGhlIGZ1bmN0aW9uDQo+ICsjICAgICAgICAgbmFtZQ0KPiArbmxfZnVuY19jYWxsX2Fy Z3NfbXVsdGlfbGluZSAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBh ZnRlciBlYWNoICcsJyBpbiBhIGZ1bmN0aW9uIGNhbGwgaWYgJygnIGFuZCAnKScNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcmUgaW4gZGlmZmVyZW50 IGxpbmVzLg0KPiArbmxfZnVuY19jYWxsX2FyZ3NfbXVsdGlfbGluZV9pZ25vcmVfY2xvc3VyZXMg PSBmYWxzZQ0KPiArbmxfZnVuY19jYWxsX3N0YXJ0X211bHRpX2xpbmUgICA9IHRydWUgICAgICAj IFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBhZnRlciAnKCcgaW4gYSBmdW5jdGlvbiBjYWxsIGlm ICcoJyBhbmQgJyknIGFyZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIGluIGRpZmZlcmVudCBsaW5lcy4NCj4gKw0KPiArIyAtIEluZGVudCBlYWNoIGFy Z3VtZW50IDIgc3BhY2VzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBuYW1lLiBJZiBh DQo+ICsjICAgZnVuY3Rpb24gaXMgY2FsbGVkIHRocm91Z2ggYSBzdHJ1Y3R1cmUgb3IgdW5pb24g bWVtYmVyLCBvZiB0eXBlDQo+ICsjICAgcG9pbnRlci10by1mdW5jdGlvbiwgdGhlbiBpbmRlbnQg ZWFjaCBhcmd1bWVudCAyIHNwYWNlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUNCj4gKyMgICBtZW1i ZXIgbmFtZS4NCj4gK2luZGVudF9mdW5jX2NhbGxfZWRrMl9zdHlsZSAgICAgPSB0cnVlICAgICAg IyBVc2UgRURLMiBpbmRlbnRhdGlvbiBzdHlsZSBmb3IgZnVuY3Rpb24gY2FsbHMgICgqKkNVU1RP TSBTRVRUSU5HKiopDQo+ICtpbmRlbnRfcGFyZW5fYWZ0ZXJfZnVuY19jYWxsICAgID0gdHJ1ZSAg ICAgICMgV2hldGhlciB0byBpbmRlbnQgdGhlIG9wZW4gcGFyZW50aGVzaXMgb2YgYSBmdW5jdGlv biBjYWxsLCBpZiB0aGUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBwYXJlbnRoZXNpcyBpcyBvbiBpdHMgb3duIGxpbmUuDQo+ICsNCj4gKyMgLSBBbGln biB0aGUgY2xvc2UgcGFyZW50aGVzaXMgd2l0aCB0aGUgc3RhcnQgb2YgdGhlIGxhc3QgYXJndW1l bnQNCj4gK2luZGVudF9wYXJlbl9jbG9zZSAgICAgICAgICAgICAgPSAwICAgICAgICAgIyBIb3cg dG8gaW5kZW50IGEgY2xvc2UgcGFyZW50aGVzaXMgYWZ0ZXIgYSBuZXdsaW5lLg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICgwOiBCb2R5LCAxOiBPcGVu cGFyZW50aGVzaXMsIDI6IEJyYWNlIGxldmVsKQ0KPiArDQo+ICsNCj4gKyMgNS4yLjIuNSBBbHdh eXMgcHV0IHNwYWNlIGFmdGVyIGNvbW1hcyBvciBzZW1pY29sb25zIHRoYXQgc2VwYXJhdGUgaXRl bXMNCj4gK3NwX2FmdGVyX2NvbW1hICAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQg b3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcsJywgaS5lLiAnYSxiJyB2cy4gJ2EsIGInLg0KPiArc3Bf YmVmb3JlX2NvbW1hICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUg c3BhY2UgYmVmb3JlICcsJy4NCj4gKw0KPiArIyA1LjIuMi42IEFsd2F5cyBwdXQgc3BhY2UgYmVm b3JlIGFuIG9wZW4gcGFyZW50aGVzaXMNCj4gK3NwX2FmdGVyX3NwYXJlbiAgICAgICAgICAgICAg ICAgPSBhZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyICcpJyBvZiBjb250cm9s IHN0YXRlbWVudHMuDQo+ICtzcF9hdHRyaWJ1dGVfcGFyZW4gICAgICAgICAgICAgID0gYWRkICAg ICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdfX2F0dHJpYnV0ZV9fJyBhbmQgJygn Lg0KPiArc3BfYmVmb3JlX3NwYXJlbiAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYmVmb3JlICcoJyBvZiBjb250cm9sIHN0YXRlbWVudHMNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoJ2lmJywgJ2ZvcicsICdz d2l0Y2gnLCAnd2hpbGUnLCBldGMuKS4NCj4gK3NwX2RlZmluZWRfcGFyZW4gICAgICAgICAgICAg ICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gJ2RlZmluZWQnIGFu ZCAnKCcgaW4gJyNpZiBkZWZpbmVkIChGT08pJy4NCj4gK3NwX2Z1bmNfY2FsbF9wYXJlbiAgICAg ICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gZnVuY3Rp b24gbmFtZSBhbmQgJygnIG9uIGZ1bmN0aW9uIGNhbGxzLg0KPiArc3BfZnVuY19jYWxsX3BhcmVu X2VtcHR5ICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBm dW5jdGlvbiBuYW1lIGFuZCAnKCknIG9uIGZ1bmN0aW9uIGNhbGxzDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2l0aG91dCBwYXJhbWV0ZXJzLiBJZiBz ZXQgdG8gaWdub3JlICh0aGUgZGVmYXVsdCksIHNwX2Z1bmNfY2FsbF9wYXJlbiBpcw0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHVzZWQuDQo+ICtzcF9m dW5jX2RlZl9wYXJlbiAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBz cGFjZSBiZXR3ZWVuIGFsaWFzIG5hbWUgYW5kICcoJyBvZiBhIG5vbi1wb2ludGVyIGZ1bmN0aW9u DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdHlwZSB0 eXBlZGVmLg0KPiArc3BfZnVuY19wcm90b19wYXJlbiAgICAgICAgICAgICA9IGFkZCAgICAgICAj IEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCAnKCknIG9uIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uDQo+ICtzcF9zaXplb2ZfcGFyZW4gICAgICAgICAgICAgICAgID0g Zm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICdzaXplb2YnIGFuZCAnKCcu DQo+ICtzcF90eXBlX2Z1bmMgICAgICAgICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9y IHJlbW92ZSBzcGFjZSBiZXR3ZWVuIHJldHVybiB0eXBlIGFuZCBmdW5jdGlvbiBuYW1lLiBBIG1p bmltdW0gb2YgMQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIGlzIGZvcmNlZCBleGNlcHQgZm9yIHBvaW50ZXIgcmV0dXJuIHR5cGVzLg0KPiArDQo+ICsj IE5vdCBzcGVjaWZpZWQsIGJ1dCBhbHNvIGdvb2Qgc3R5bGUgdG8gcmVtb3ZlIHNwYWNlcyBpbnNp ZGUgcGFyZW50aGVzZXMgKE9wdGlvbmFsKQ0KPiArc3BfY3BhcmVuX29wYXJlbiAgICAgICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiBiYWNrLXRvLWJh Y2sgcGFyZW50aGVzZXMsIGkuZS4gJykoJyB2cy4gJykgKCcuDQo+ICtzcF9pbnNpZGVfZnBhcmVu ICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUg ZnVuY3Rpb24gJygnIGFuZCAnKScuDQo+ICtzcF9pbnNpZGVfZnBhcmVucyAgICAgICAgICAgICAg ID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBpbnNpZGUgZW1wdHkgZnVuY3Rpb24g JygpJy4NCj4gK3NwX2luc2lkZV9wYXJlbiAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBB ZGQgb3IgcmVtb3ZlIHNwYWNlIGluc2lkZSAnKCcgYW5kICcpJy4NCj4gK3NwX2luc2lkZV9wYXJl bl9jYXN0ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlcyBpbnNp ZGUgY2FzdCBwYXJlbnRoZXNlcy4gJyhpbnQpeCcNCj4gK3NwX2luc2lkZV9zcXVhcmUgICAgICAg ICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGluc2lkZSBhIG5vbi1l bXB0eSAnWycgYW5kICddJy4NCj4gK3NwX3BhcmVuX3BhcmVuICAgICAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gbmVzdGVkIHBhcmVudGhlc2Vz LCBpLmUuICcoKCcgdnMuICcpICknLg0KPiArc3Bfc3F1YXJlX2ZwYXJlbiAgICAgICAgICAgICAg ICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnXScgYW5kICcoJyB3 aGVuIHBhcnQgb2YgYSBmdW5jdGlvbiBjYWxsLg0KPiArDQo+ICsjIDUuMi4yLjcgUHV0IGEgc3Bh Y2UgYmVmb3JlIGFuIG9wZW4gYnJhY2UgaWYgaXQgaXMgbm90IG9uIGl0cyBvd24gbGluZQ0KPiAr c3BfZG9fYnJhY2Vfb3BlbiAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1v dmUgc3BhY2UgYmV0d2VlbiAnZG8nIGFuZCAneycuDQo+ICtzcF9wYXJlbl9icmFjZSAgICAgICAg ICAgICAgICAgID0gZm9yY2UgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZXR3ZWVuICcpJyBh bmQgJ3snLg0KPiArc3Bfc3BhcmVuX2JyYWNlICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAj IEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnKScgYW5kICd7JyBvZiBvZiBjb250cm9sIHN0 YXRlbWVudHMuDQo+ICsNCj4gKyMgNS4yLjIuOCBEbyBub3QgcHV0IHNwYWNlcyBhcm91bmQgc3Ry dWN0dXJlIG1lbWJlciBhbmQgcG9pbnRlciBvcGVyYXRvcnMNCj4gK3NwX2FmdGVyX2J5cmVmICAg ICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHJl ZmVyZW5jZSBzaWduICcmJywgaWYgZm9sbG93ZWQgYnkgYSB3b3JkLg0KPiArc3BfYmVmb3JlX2J5 cmVmICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmVm b3JlIGEgcmVmZXJlbmNlIHNpZ24gJyYnLg0KPiArc3BfZGVyZWYgICAgICAgICAgICAgICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYWZ0ZXIgdGhlICcqJyAoZGVy ZWZlcmVuY2UpIHVuYXJ5IG9wZXJhdG9yLiBUaGlzIGRvZXMNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBub3QgYWZmZWN0IHRoZSBzcGFjaW5nIGFmdGVy IGEgJyonIHRoYXQgaXMgcGFydCBvZiBhIHR5cGUuDQo+ICtzcF9tZW1iZXIgICAgICAgICAgICAg ICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBhcm91bmQgdGhlICcu JyBvciAnLT4nIG9wZXJhdG9ycy4NCj4gKw0KPiArIyA1LjIuMi45IERvIG5vdCBwdXQgc3BhY2Vz IGJlZm9yZSBvcGVuIGJyYWNrZXRzIG9mIGFycmF5IHN1YnNjcmlwdHMNCj4gK3NwX2JlZm9yZV9z cXVhcmUgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJl Zm9yZSAnWycgKGV4Y2VwdCAnW10nKS4NCj4gK3NwX2JlZm9yZV9zcXVhcmVzICAgICAgICAgICAg ICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnW10nLg0KPiArc3Bf YmVmb3JlX3ZhcmRlZl9zcXVhcmUgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUg c3BhY2UgYmVmb3JlICdbJyBmb3IgYSB2YXJpYWJsZSBkZWZpbml0aW9uLg0KPiArDQo+ICsjIDUu Mi4yLjEwIFVzZSBleHRyYSBwYXJlbnRoZXNlcyByYXRoZXIgdGhhbiBkZXBlbmRpbmcgb24gaW4t ZGVwdGgga25vd2xlZGdlIG9mIHRoZSBvcmRlciBvZiBwcmVjZWRlbmNlIG9mIEMNCj4gK21vZF9m dWxsX3BhcmVuX2lmX2Jvb2wgICAgICAgICAgPSB0cnVlICAgICAgIyBXaGV0aGVyIHRvIGZ1bGx5 IHBhcmVudGhlc2l6ZSBCb29sZWFuIGV4cHJlc3Npb25zIGluICd3aGlsZScgYW5kICdpZicNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzdGF0ZW1lbnQs IGFzIGluICdpZiAoYSAmJiBiID4gYyknID0+ICdpZiAoYSAmJiAoYiA+IGMpKScuDQo+ICsNCj4g KyMgNS4yLjIuMTEgQWxpZ24gYSBjb250aW51YXRpb24gbGluZSB3aXRoIHRoZSBwYXJ0IG9mIHRo ZSBsaW5lIHRoYXQgaXQgY29udGludWVzLg0KPiArdXNlX2luZGVudF9jb250aW51ZV9vbmx5X29u Y2UgICA9IHRydWUNCj4gKw0KPiArIyBBZGRpdGlvbmFsICd7fScgYnJhY2luZyBydWxlcyAoT3B0 aW9uYWwpDQo+ICsjIE5PVEUgLSBUaGUgc3R5bGUgZ3VpZGUgc3BlY2lmaWVzIHR3byBkaWZmZXJl bnQgc3R5bGVzIGZvciBicmFjZXMsDQo+ICsjIHNvIHRoZXNlIGFyZSBpZ25vcmVkIGZvciBub3cg dG8gYWxsb3cgZGV2ZWxvcGVycyBzb21lIGZsZXhpYmlsaXR5Lg0KPiArbmxfYWZ0ZXJfYnJhY2Vf Y2xvc2UgICAgICAgICAgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGluZSBh ZnRlciAnfScuIERvZXMgbm90IGFwcGx5IGlmIGZvbGxvd2VkIGJ5IGENCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWNlc3NhcnkgJzsnLg0KPiArbmxf YnJhY2VfZWxzZSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUg bmV3bGluZSBiZXR3ZWVuICd9JyBhbmQgJ2Vsc2UnLg0KPiArbmxfYnJhY2Vfd2hpbGUgICAgICAg ICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICd9 JyBhbmQgJ3doaWxlJyBvZiAnZG8nIHN0YXRlbWVudC4NCj4gK25sX2RvX2JyYWNlICAgICAgICAg ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAn ZG8nIGFuZCAneycuDQo+ICtubF9lbHNlX2JyYWNlICAgICAgICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2Vsc2UnIGFuZCAneycuDQo+ICtu bF9lbHNlX2lmICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRkIG9yIHJlbW92 ZSBuZXdsaW5lIGJldHdlZW4gJ2Vsc2UnIGFuZCAnaWYnLg0KPiArbmxfZWxzZWlmX2JyYWNlICAg ICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVu ICdlbHNlIGlmJyBhbmQgJ3snLg0KPiArbmxfZW51bV9icmFjZSAgICAgICAgICAgICAgICAgICA9 IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdlbnVtJyBhbmQgJ3sn Lg0KPiArbmxfZmNhbGxfYnJhY2UgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuIGEgZnVuY3Rpb24gY2FsbCdzICcpJyBhbmQgJ3snLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFzIGluICds aXN0X2Zvcl9lYWNoKGl0ZW0sICZsaXN0KSB7IH0nLg0KPiArbmxfZm9yX2JyYWNlICAgICAgICAg ICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICdm b3InIGFuZCAneycuDQo+ICtubF9pZl9icmFjZSAgICAgICAgICAgICAgICAgICAgID0gcmVtb3Zl ICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gJ2lmJyBhbmQgJ3snLg0KPiArbmxf c3RydWN0X2JyYWNlICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUg bmV3bGluZSBiZXR3ZWVuICdzdHJ1Y3QgYW5kICd7Jy4NCj4gK25sX3N3aXRjaF9icmFjZSAgICAg ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAn c3dpdGNoJyBhbmQgJ3snLg0KPiArbmxfdW5pb25fYnJhY2UgICAgICAgICAgICAgICAgICA9IHJl bW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuICd1bmlvbicgYW5kICd7Jy4N Cj4gK25sX3doaWxlX2JyYWNlICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3Ig cmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnd2hpbGUnIGFuZCAneycuDQo+ICsNCj4gKyMgQWRkaXRp b25hbCB3aGl0ZXNwYWNlIHJ1bGVzIChPcHRpb25hbCkNCj4gK3NwX2FmdGVyX3B0cl9zdGFyICAg ICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHBvaW50 ZXIgc3RhciAnKicsIGlmIGZvbGxvd2VkIGJ5IGEgd29yZC4NCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVc2VmdWwgd2hlbiBwYWlyZWQgd2l0aCBhbGln bl92YXJfZGVmX3N0YXJfc3R5bGU9PTINCj4gK3NwX2FmdGVyX3B0cl9zdGFyX2Z1bmMgICAgICAg ICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIGEgcG9pbnRlciBzdGFy ICcqJywgaWYgZm9sbG93ZWQgYnkgYSBmdW5jdGlvbg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIHByb3RvdHlwZSBvciBmdW5jdGlvbiBkZWZpbml0aW9u Lg0KPiArc3BfYWZ0ZXJfc2VtaSAgICAgICAgICAgICAgICAgICA9IHJlbW92ZSAgICAjIEFkZCBv ciByZW1vdmUgc3BhY2UgYWZ0ZXIgJzsnLCBleGNlcHQgd2hlbiBmb2xsb3dlZCBieSBhIGNvbW1l bnQuDQo+ICtzcF9iZWZvcmVfY2FzZV9jb2xvbiAgICAgICAgICAgID0gcmVtb3ZlICAgICMgQWRk IG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgY2FzZSAnOicuDQo+ICtzcF9iZWZvcmVfcHRyX3N0YXIg ICAgICAgICAgICAgID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgcG9p bnRlciBzdGFyICcqJy4NCj4gK3NwX2JlZm9yZV9wdHJfc3Rhcl9mdW5jICAgICAgICAgPSBhZGQg ICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSBhIHBvaW50ZXIgc3RhciAnKicsIGlm IGZvbGxvd2VkIGJ5IGEgZnVuY3Rpb24NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBwcm90b3R5cGUgb3IgZnVuY3Rpb24gZGVmaW5pdGlvbi4NCj4gK3Nw X2JlZm9yZV9zZW1pICAgICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3Zl IHNwYWNlIGJlZm9yZSAnOycNCj4gK3NwX2JlZm9yZV9zZW1pX2ZvciAgICAgICAgICAgICAgPSBy ZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJlZm9yZSAnOycgaW4gbm9uLWVtcHR5ICdm b3InIHN0YXRlbWVudHMuDQo+ICtzcF9iZWZvcmVfc2VtaV9mb3JfZW1wdHkgICAgICAgID0gYWRk ICAgICAgICMgQWRkIG9yIHJlbW92ZSBzcGFjZSBiZWZvcmUgYSBzZW1pY29sb24gb2YgYW4gZW1w dHkgcGFydCBvZiBhIGZvciBzdGF0ZW1lbnQNCj4gK3NwX2JldHdlZW5fcHRyX3N0YXIgICAgICAg ICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGJldHdlZW4gcG9pbnRlciBz dGFycyAnKicuIChpZSwgJ1ZPSUQgKionKQ0KPiArc3BfYnJhY2VfY2xvc2Vfd2hpbGUgICAgICAg ICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUgc3BhY2UgYmV0d2VlbiAnfScgYW5kICd3 aGlsZScuDQo+ICsNCj4gK3NwX2FmdGVyX2Nhc3QgICAgICAgICAgICAgICAgICAgPSByZW1vdmUN Cj4gK3NwX2FmdGVyX3R5cGUgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK3NwX2JhbGFuY2Vf bmVzdGVkX3BhcmVucyAgICAgICAgPSBmYWxzZQ0KPiArc3BfYmVmb3JlX25sX2NvbnQgICAgICAg ICAgICAgICA9IGFkZA0KPiArc3BfYmVmb3JlX3NxdWFyZV9hc21fYmxvY2sgICAgICA9IGlnbm9y ZQ0KPiArc3BfYmVmb3JlX3VubmFtZWRfYnlyZWYgICAgICAgICA9IGFkZA0KPiArc3BfYnJhY2Vf YnJhY2UgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiArc3BfYnJhY2VfZWxzZSAgICAgICAg ICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9icmFjZV90eXBlZGVmICAgICAgICAgICAgICAgID0g YWRkDQo+ICtzcF9jYXNlX2xhYmVsICAgICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gK3NwX2Nt dF9jcHBfZG94eWdlbiAgICAgICAgICAgICAgPSB0cnVlDQo+ICtzcF9jb25kX2NvbG9uICAgICAg ICAgICAgICAgICAgID0gYWRkDQo+ICtzcF9jb25kX3F1ZXN0aW9uICAgICAgICAgICAgICAgID0g YWRkDQo+ICtzcF9jcHBfY2FzdF9wYXJlbiAgICAgICAgICAgICAgID0gZm9yY2UNCj4gK3NwX2Vs c2VfYnJhY2UgICAgICAgICAgICAgICAgICAgPSBmb3JjZQ0KPiArc3BfZW5kaWZfY210ICAgICAg ICAgICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9lbnVtX2Fzc2lnbiAgICAgICAgICAgICAgICAg ID0gYWRkDQo+ICtzcF9pbnNpZGVfYnJhY2VzICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gK3Nw X2luc2lkZV9icmFjZXNfZW1wdHkgICAgICAgICAgPSBmb3JjZQ0KPiArc3BfaW5zaWRlX2JyYWNl c19lbnVtICAgICAgICAgICA9IGZvcmNlDQo+ICtzcF9pbnNpZGVfYnJhY2VzX3N0cnVjdCAgICAg ICAgID0gZm9yY2UNCj4gK3NwX3BwX2NvbmNhdCAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4g K3NwX3BwX3N0cmluZ2lmeSAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK3NwX3JldHVybl9wYXJl biAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK3NwX3NwZWNpYWxfc2VtaSAgICAgICAgICAgICAg ICAgPSBmb3JjZQ0KPiArc3Bfd2hpbGVfcGFyZW5fb3BlbiAgICAgICAgICAgICA9IGZvcmNlDQo+ ICsNCj4gKyMgQWRkaXRpb25hbCBJbmRlbnRhdGlvbiBSdWxlcw0KPiAraW5kZW50X2FjY2Vzc19z cGVjICAgICAgICAgICAgICA9IDENCj4gK2luZGVudF9hY2Nlc3Nfc3BlY19ib2R5ICAgICAgICAg PSBmYWxzZQ0KPiAraW5kZW50X2FsaWduX2Fzc2lnbiAgICAgICAgICAgICA9IHRydWUNCj4gK2lu ZGVudF9hbGlnbl9zdHJpbmcgICAgICAgICAgICAgPSB0cnVlDQo+ICtpbmRlbnRfYm9vbF9wYXJl biAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X2JyYWNlX3BhcmVudCAgICAgICAgICAg ICA9IGZhbHNlDQo+ICtpbmRlbnRfYnJhY2VzICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4g K2luZGVudF9icmFjZXNfbm9fY2xhc3MgICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2JyYWNl c19ub19mdW5jICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF9icmFjZXNfbm9fc3RydWN0ICAg ICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X2NsYXNzICAgICAgICAgICAgICAgICAgICA9IGZhbHNl DQo+ICtpbmRlbnRfY2xhc3NfY29sb24gICAgICAgICAgICAgID0gZmFsc2UNCj4gK2luZGVudF9j bXRfd2l0aF90YWJzICAgICAgICAgICAgPSBmYWxzZSAgICAgICAgICMgV2hldGhlciB0byBpbmRl bnQgY29tbWVudHMgdGhhdCBhcmUgbm90IGF0IGEgYnJhY2UgbGV2ZWwgd2l0aCB0YWJzIG9uDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGEgdGFi c3RvcC4gUmVxdWlyZXMgaW5kZW50X3dpdGhfdGFicz0yLiBJZiBmYWxzZSwgd2lsbCB1c2Ugc3Bh Y2VzLg0KPiAraW5kZW50X2NvbDFfY29tbWVudCAgICAgICAgICAgICA9IHRydWUNCj4gK2luZGVu dF9jb2wxX211bHRpX3N0cmluZ19saXRlcmFsPSB0cnVlDQo+ICtpbmRlbnRfY29tbWFfcGFyZW4g ICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X2Vsc2VfaWYgICAgICAgICAgICAgICAgICA9 IHRydWUNCj4gK2luZGVudF9leHRlcm4gICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5k ZW50X2ZpcnN0X2Jvb2xfZXhwciAgICAgICAgICA9IHRydWUNCj4gKw0KPiAraW5kZW50X2Z1bmNf ZGVmX3BhcmFtX3BhcmVuX3Bvc190aHJlc2hvbGQgPSAwDQo+ICtpbmRlbnRfZnVuY19wYXJhbV9k b3VibGUgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfZnVuY19wcm90b19wYXJh bSAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2luZGVudF9pZ25vcmVfYXNtX2Jsb2NrICAg ICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X2xhYmVsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSAxDQo+ICtpbmRlbnRfbWVtYmVyICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDINCj4gK2luZGVudF9uYW1lc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgID0g ZmFsc2UNCj4gK2luZGVudF9wYXJhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMg0K PiAraW5kZW50X3BhcmVuX25sICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAr aW5kZW50X3BhcmVuX29wZW5fYnJhY2UgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5k ZW50X3ByZXNlcnZlX3NxbCAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiAraW5kZW50 X3JlbGF0aXZlX3NpbmdsZV9saW5lX2NvbW1lbnRzICAgICAgPSBmYWxzZQ0KPiAraW5kZW50X3Np bmdfbGluZV9jb21tZW50cyAgICAgICAgICAgICAgICAgPSAwDQo+ICtpbmRlbnRfc2luZ2xlX25l d2xpbmVzICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfc3F1YXJlX25sICAg ICAgICAgICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtpbmRlbnRfc3dpdGNoX2Nhc2UgICAg ICAgICAgICAgICAgICAgICAgICA9IDINCj4gK2luZGVudF90ZW1wbGF0ZV9wYXJhbSAgICAgICAg ICAgICAgICAgICAgID0gdHJ1ZQ0KPiAraW5kZW50X3Zhcl9kZWZfYmxrICAgICAgICAgICAgICAg ICAgICAgICAgPSAwDQo+ICtpbmRlbnRfdmFyX2RlZl9jb250ICAgICAgICAgICAgICAgICAgICAg ICA9IGZhbHNlDQo+ICsNCj4gKyMgVGlkeS11cCBydWxlcyAoT3B0aW9uYWwpDQo+ICttb2RfbW92 ZV9jYXNlX2JyZWFrICAgICAgICAgICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBtb3ZlIGEg J2JyZWFrJyB0aGF0IGFwcGVhcnMgYWZ0ZXIgYSBmdWxseSBicmFjZWQgJ2Nhc2UnDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYmVmb3JlIHRoZSBjbG9z ZSBicmFjZSwgYXMgaW4gJ2Nhc2UgWDogeyAuLi4gfSBicmVhazsnID0+DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ2Nhc2UgWDogeyAuLi4gYnJlYWs7 IH0nLg0KPiArbW9kX3Bhd25fc2VtaWNvbG9uICAgICAgICAgICAgICA9IGZhbHNlDQo+ICttb2Rf cmVtb3ZlX2VtcHR5X3JldHVybiAgICAgICAgID0gZmFsc2UgICAgICMgV2hldGhlciB0byByZW1v dmUgYSB2b2lkICdyZXR1cm47JyB0aGF0IGFwcGVhcnMgYXMgdGhlIGxhc3Qgc3RhdGVtZW50DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gYSBmdW5j dGlvbi4NCj4gK21vZF9yZW1vdmVfZXh0cmFfc2VtaWNvbG9uICAgICAgPSB0cnVlDQo+ICttb2Rf c29ydF9pbXBvcnQgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK21vZF9zb3J0X2luY2x1ZGUg ICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbW9kX3NvcnRfdXNpbmcgICAgICAgICAgICAgICAg ICA9IGZhbHNlDQo+ICtubF9hZnRlcl9jYXNlICAgICAgICAgICAgICAgICAgID0gZmFsc2UgICAg ICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGFmdGVyIGEgJ2Nhc2UnIHN0YXRlbWVudC4NCj4g K25sX2VuZF9vZl9maWxlICAgICAgICAgICAgICAgICAgPSBmb3JjZSAgICAgIyBBZGQgb3IgcmVt b3ZlIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4NCj4gK25sX2VuZF9vZl9maWxlX21p biAgICAgICAgICAgICAgPSAxICAgICAgICAgIyBUaGUgbWluaW11bSBudW1iZXIgb2YgbmV3bGlu ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZQ0KPiArbmxfbWF4ICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDIgICAgICAgICAjIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zZWN1dGl2ZSBuZXds aW5lcyAoMyA9IDIgYmxhbmsgbGluZXMpLg0KPiArbmxfc3RhcnRfb2ZfZmlsZSAgICAgICAgICAg ICAgICA9IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9m IHRoZSBmaWxlLg0KPiArDQo+ICsjIENvZGUgYWxpZ25tZW50IHJ1bGVzIChPcHRpb25hbCkNCj4g K2FsaWduX2FzbV9jb2xvbiAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxpZ25fYXNzaWdu X3NwYW4gICAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBv biAnPScgaW4gYXNzaWdubWVudHMuDQo+ICthbGlnbl9hc3NpZ25fdGhyZXNoICAgICAgICAgICAg ID0gNA0KPiArYWxpZ25fZWRrMl9zdHlsZSAgICAgICAgICAgICAgICA9IHRydWUgICAgICAjIFdo ZXRoZXIgdG8gYXBwbHkgZWRrMi1zcGVjaWZpYyBhbGlnbm1lbnQgZm9ybWF0dGluZw0KPiArYWxp Z25fZW51bV9lcXVfc3BhbiAgICAgICAgICAgICA9IDEgICAgICAgICAjIFRoZSBzcGFuIGZvciBh bGlnbmluZyBvbiAnPScgaW4gZW51bXMuDQo+ICthbGlnbl9mdW5jX3BhcmFtcyAgICAgICAgICAg ICAgID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhbGlnbiB2YXJpYWJsZSBkZWZpbml0aW9ucyBp biBwcm90b3R5cGVzIGFuZCBmdW5jdGlvbnMuDQo+ICthbGlnbl9mdW5jX3BhcmFtc19nYXAgICAg ICAgICAgID0gMg0KPiArYWxpZ25fZnVuY19wYXJhbXNfc3BhbiAgICAgICAgICA9IDIgICAgICAg ICAjIFRoZSBzcGFuIGZvciBhbGlnbmluZyBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMgaW4gZnVuY3Rp b24gb24gcGFyYW1ldGVyIG5hbWUuDQo+ICthbGlnbl9mdW5jX3BhcmFtc190aHJlc2ggICAgICAg ID0gMA0KPiArYWxpZ25fZnVuY19wcm90b19zcGFuICAgICAgICAgICA9IDANCj4gK2FsaWduX2tl ZXBfdGFicyAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxpZ25fbGVmdF9zaGlmdCAgICAg ICAgICAgICAgICA9IGZhbHNlDQo+ICthbGlnbl9taXhfdmFyX3Byb3RvICAgICAgICAgICAgID0g ZmFsc2UNCj4gK2FsaWduX25sX2NvbnQgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArYWxp Z25fb2NfZGVjbF9jb2xvbiAgICAgICAgICAgICA9IGZhbHNlDQo+ICthbGlnbl9vbl9vcGVyYXRv ciAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK2FsaWduX29uX3RhYnN0b3AgICAgICAgICAgICAg ICAgPSBmYWxzZQ0KPiArYWxpZ25fcHBfZGVmaW5lX2dhcCAgICAgICAgICAgICA9IDINCj4gK2Fs aWduX3BwX2RlZmluZV9zcGFuICAgICAgICAgICAgPSAxDQo+ICthbGlnbl9yaWdodF9jbXRfYXRf Y29sICAgICAgICAgID0gMCAgICAgICAgICMgQWxpZ24gdHJhaWxpbmcgY29tbWVudCBhdCBvciBi ZXlvbmQgY29sdW1uIE47ICdwdWxscyBpbicgY29tbWVudHMgYXMNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhIGJvbnVzIHNpZGUgZWZmZWN0ICgwPWln bm9yZSkNCj4gK2FsaWduX3JpZ2h0X2NtdF9nYXAgICAgICAgICAgICAgPSAwICAgICAgICAgIyBJ ZiBhIHRyYWlsaW5nIGNvbW1lbnQgaXMgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIGNvbHVtbnMg YXdheSBmcm9tIHRoZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIHRleHQgaXQgZm9sbG93cywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBpdCB3aWxsIHF1YWxpZnkgZm9yIGJlaW5nIGFsaWduZWQuIFRoaXMg aGFzIHRvIGJlID4gMCB0byBkbyBhbnl0aGluZy4NCj4gK2FsaWduX3JpZ2h0X2NtdF9taXggICAg ICAgICAgICAgPSBmYWxzZSAgICAgIyBJZiBhbGlnbmluZyBjb21tZW50cywgbWl4IHdpdGggY29t bWVudHMgYWZ0ZXIgJ30nIGFuZCAjZW5kaWYgd2l0aCBsZXNzDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhhbiAzIHNwYWNlcyBiZWZvcmUgdGhlIGNv bW1lbnQNCj4gK2FsaWduX3JpZ2h0X2NtdF9zYW1lX2xldmVsICAgICAgPSB0cnVlICAgICAgIyBX aGV0aGVyIHRvIG9ubHkgYWxpZ24gdHJhaWxpbmcgY29tbWVudHMgdGhhdCBhcmUgYXQgdGhlIHNh bWUgYnJhY2UgbGV2ZWwuDQo+ICthbGlnbl9yaWdodF9jbXRfc3BhbiAgICAgICAgICAgID0gMiAg ICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIGNvbW1lbnRzIHRoYXQgZW5kIGxpbmVzLg0K PiArYWxpZ25fc2FtZV9mdW5jX2NhbGxfcGFyYW1zICAgICA9IGZhbHNlDQo+ICthbGlnbl9zaW5n bGVfbGluZV9icmFjZSAgICAgICAgID0gdHJ1ZQ0KPiArYWxpZ25fc2luZ2xlX2xpbmVfZnVuYyAg ICAgICAgICA9IHRydWUNCj4gK2FsaWduX3N0cnVjdF9pbml0X3NwYW4gICAgICAgICAgPSAxICAg ICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgc3RydWN0IGluaXRpYWxpemVyIHZhbHVlcy4N Cj4gK2FsaWduX3R5cGVkZWZfYW1wX3N0eWxlICAgICAgICAgPSAxDQo+ICthbGlnbl90eXBlZGVm X2Z1bmMgICAgICAgICAgICAgID0gMSAgICAgICAgICMgSG93IHRvIGFsaWduIHR5cGVkZWYnZCBm dW5jdGlvbnMgd2l0aCBvdGhlciB0eXBlZGVmcy4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyAoMDogTm8gYWxpZ24sIDE6IEFsaWduIG9wZW4gcGFyYW50 aGVzaXMsIDI6IEFsaWduIGZ1bmN0aW9uIHR5cGUgbmFtZSkNCj4gK2FsaWduX3R5cGVkZWZfZ2Fw ICAgICAgICAgICAgICAgPSAyDQo+ICthbGlnbl90eXBlZGVmX3NwYW4gICAgICAgICAgICAgID0g MSAgICAgICAgICMgVGhlIHNwYW4gZm9yIGFsaWduaW5nIHNpbmdsZS1saW5lIHR5cGVkZWZzLg0K PiArYWxpZ25fdHlwZWRlZl9zdGFyX3N0eWxlICAgICAgICA9IDENCj4gK2FsaWduX3Zhcl9kZWZf YW1wX3N0eWxlICAgICAgICAgPSAxDQo+ICthbGlnbl92YXJfZGVmX2F0dHJpYnV0ZSAgICAgICAg ID0gdHJ1ZQ0KPiArYWxpZ25fdmFyX2RlZl9jb2xvbiAgICAgICAgICAgICA9IHRydWUgICAgICAj IFdoZXRoZXIgdG8gYWxpZ24gdGhlIGNvbG9uIGluIHN0cnVjdCBiaXQgZmllbGRzLg0KPiArYWxp Z25fdmFyX2RlZl9nYXAgICAgICAgICAgICAgICA9IDIgICAgICAgICAjIFRoZSBnYXAgKG1pbmlt dW0gc3BhY2luZyBmb3IgYWxpZ25lZCBpdGVtcykgZm9yIHZhcmlhYmxlIGRlZmluaXRpb25zLg0K PiArYWxpZ25fdmFyX2RlZl9pbmxpbmUgICAgICAgICAgICA9IGZhbHNlDQo+ICthbGlnbl92YXJf ZGVmX3NwYW4gICAgICAgICAgICAgID0gMSAgICAgICAgICMgVGhlIHNwYW4gKGxpbmVzIG5lZWRl ZCB0byBhbGlnbikgZm9yIGFsaWduaW5nIHZhcmlhYmxlIGRlZmluaXRpb25zLg0KPiArYWxpZ25f dmFyX2RlZl9zdGFyX3N0eWxlICAgICAgICA9IDEgICAgICAgICAjIEhvdyB0byBjb25zaWRlciAo b3IgdHJlYXQpIHRoZSAnKicgaW4gdGhlIGFsaWdubWVudCBvZiB2YXJpYWJsZQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRlZmluaXRpb25zLg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIDA6IFBhcnQgb2Yg dGhlIHR5cGUgICAgICd2b2lkICogICBmb287JyAoZGVmYXVsdCkNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAxOiBQYXJ0IG9mIHRoZSB2YXJpYWJsZSAn dm9pZCAgICAgKmZvbzsnDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgMjogRGFuZ2xpbmcgICAgICAgICAgICAgJ3ZvaWQgICAgKmZvbzsnDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKE5vdGUgLSBzaG91bGQg YWxzbyBzZXQgc3BfYWZ0ZXJfcHRyX3N0YXI9cmVtb3ZlKQ0KPiArYWxpZ25fdmFyX3N0cnVjdF9n YXAgICAgICAgICAgICA9IDQNCj4gK2FsaWduX3Zhcl9zdHJ1Y3Rfc3BhbiAgICAgICAgICAgPSA4 ICAgICAgICAgIyBUaGUgc3BhbiBmb3IgYWxpZ25pbmcgc3RydWN0L3VuaW9uIG1lbWJlciBkZWZp bml0aW9ucy4NCj4gK2FsaWduX3Zhcl9zdHJ1Y3RfdGhyZXNoICAgICAgICAgPSAwDQo+ICthbGln bl93aXRoX3RhYnMgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gKw0KPiArIyBDb21tZW50IGZv cm1hdHRpbmcNCj4gK2NtdF9hbGlnbl9kb3h5Z2VuX2phdmFkb2NfdGFncyAgPSB0cnVlICAgICAg IyBXaGV0aGVyIHRvIGFsaWduIGRveHlnZW4gamF2YWRvYy1zdHlsZSB0YWdzICgnQHBhcmFtJywg J0ByZXR1cm4nLCBldGMuKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIFRPRE86IEVhdHMgJ1snIGluICdbaW5dJw0KPiArY210X2NfZ3JvdXAgICAgICAg ICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtjbXRfY19ubF9lbmQgICAgICAgICAgICAgICAgICAg ID0gdHJ1ZSAgICAgICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGJlZm9yZSB0aGUgY2xvc2lu ZyAnKi8nIG9mIHRoZSBjb21iaW5lZCBjLWNvbW1lbnQuDQo+ICtjbXRfY19ubF9zdGFydCAgICAg ICAgICAgICAgICAgID0gdHJ1ZQ0KPiArY210X2NwcF9ncm91cCAgICAgICAgICAgICAgICAgICA9 IGZhbHNlDQo+ICtjbXRfY3BwX25sX2VuZCAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiArY210 X2NwcF9ubF9zdGFydCAgICAgICAgICAgICAgICA9IHRydWUNCj4gK2NtdF9jcHBfdG9fYyAgICAg ICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArY210X2luZGVudF9tdWx0aSAgICAgICAgICAgICAg ICA9IGZhbHNlICAgICAjIFdoZXRoZXIgdG8gYXBwbHkgY2hhbmdlcyB0byBtdWx0aS1saW5lIGNv bW1lbnRzLCBpbmNsdWRpbmcgY210X3dpZHRoLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIGtleXdvcmQgc3Vic3RpdHV0aW9uIGFuZCBsZWFkaW5nIGNo YXJzLg0KPiArY210X2luc2VydF9iZWZvcmVfcHJlcHJvYyAgICAgICA9IGZhbHNlDQo+ICsjY210 X2luc2VydF9maWxlX2hlYWRlciAgICAgICAgICA9IGRlZmF1bHRfZmlsZV9oZWFkZXIudHh0DQo+ ICsjY210X2luc2VydF9mdW5jX2hlYWRlciAgICAgICAgICA9IGRlZmF1bHRfZnVuY3Rpb25faGVh ZGVyLnR4dA0KPiArY210X211bHRpX2NoZWNrX2xhc3QgICAgICAgICAgICA9IGZhbHNlDQo+ICtj bXRfbXVsdGlfZmlyc3RfbGVuX21pbmltdW0gICAgID0gMg0KPiArY210X3JlZmxvd19tb2RlICAg ICAgICAgICAgICAgICA9IDEgICAgICAgICAjIEhvdyB0byByZWZsb3cgY29tbWVudHMuDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKDA6Tm8gcmVmbG93 LCAxOk5vIHRvdWNoaW5nIGF0IGFsbCwgMjogRnVsbCByZWZsb3cpDQo+ICtjbXRfc3BfYWZ0ZXJf c3Rhcl9jb250ICAgICAgICAgID0gMCAgICAgICAgICMgVGhlIG51bWJlciBvZiBzcGFjZXMgdG8g aW5zZXJ0IGFmdGVyIHRoZSBzdGFyIG9uIHN1YnNlcXVlbnQgY29tbWVudCBsaW5lcy4NCj4gK2Nt dF9zcF9iZWZvcmVfc3Rhcl9jb250ICAgICAgICAgPSAwICAgICAgICAgIyBUaGUgbnVtYmVyIG9m IHNwYWNlcyB0byBpbnNlcnQgYXQgdGhlIHN0YXJ0IG9mIHN1YnNlcXVlbnQgY29tbWVudCBsaW5l cy4NCj4gK2NtdF9zdGFyX2NvbnQgICAgICAgICAgICAgICAgICAgPSBmYWxzZSAgICAgIyBXaGV0 aGVyIHRvIHB1dCBhIHN0YXIgb24gc3Vic2VxdWVudCBjb21tZW50IGxpbmVzLg0KPiArY210X3dp ZHRoICAgICAgICAgICAgICAgICAgICAgICA9IDEyMCAgICAgICAjIFRyeSB0byB3cmFwIGNvbW1l bnRzIGF0IE4gY29sdW1ucy4NCj4gK3NwX2NtdF9jcHBfc3RhcnQgICAgICAgICAgICAgICAgPSBh ZGQgICAgICAgIyBBZGQgb3IgcmVtb3ZlIHNwYWNlIGFmdGVyIHRoZSBvcGVuaW5nIG9mIGEgQysr IGNvbW1lbnQsIGFzIGluDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgJy8vIDxoZXJlPiBBJy4gIE5PVEU6IEJyZWFrcyBpbmRlbnRhdGlvbiB3aXRoaW4g Y29tbWVudHMuDQo+ICsNCj4gKyMgRnVuY3Rpb24gZGVmaW5pdGlvbnMgLyBkZWNsYXJhdGlvbnMN Cj4gK2luZGVudF9mdW5jX2NhbGxfcGFyYW0gICAgICAgICAgPSBmYWxzZSAgICAgIyBXaGV0aGVy IHRvIGluZGVudCBjb250aW51ZWQgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXJzIG9uZSBpbmRlbnQg bGV2ZWwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg cmF0aGVyIHRoYW4gYWxpZ25pbmcgcGFyYW1ldGVycyB1bmRlciB0aGUgb3BlbiBwYXJlbnRoZXNp cy4NCj4gK2luZGVudF9mdW5jX2NsYXNzX3BhcmFtICAgICAgICAgPSBmYWxzZSAgICAgIyBXaGV0 aGVyIHRvIGluZGVudCBjb250aW51ZWQgZnVuY3Rpb24gY2FsbCBkZWNsYXJhdGlvbiBvbmUgaW5k ZW50IGxldmVsLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMgdW5kZXIgdGhlIG9wZW4gcGFyZW50 aGVzaXMuDQo+ICtpbmRlbnRfZnVuY19jdG9yX3Zhcl9wYXJhbSAgICAgID0gZmFsc2UgICAgICMg V2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGNsYXNzIHZhcmlhYmxlIGNvbnN0cnVjdG9ycyBv bmUgaW5kZW50IGxldmVsLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMgdW5kZXIgdGhlIG9wZW4g cGFyZW50aGVzaXMuDQo+ICtpbmRlbnRfZnVuY19kZWZfcGFyYW0gICAgICAgICAgID0gdHJ1ZSAg ICAgICMgV2hldGhlciB0byBpbmRlbnQgY29udGludWVkIGZ1bmN0aW9uIGRlZmluaXRpb24gcGFy YW1ldGVycyBvbmUgaW5kZW50DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgbGV2ZWwsIHJhdGhlciB0aGFuIGFsaWduaW5nIHBhcmFtZXRlcnMgdW5kZXIg dGhlIG9wZW4gcGFyZW50aGVzaXMuDQo+ICtubF9mZGVmX2JyYWNlICAgICAgICAgICAgICAgICAg ID0gYWRkICAgICAgICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGJldHdlZW4gZnVuY3Rpb24gc2ln bmF0dXJlIGFuZCAneycuDQo+ICtubF9mdW5jX2NhbGxfZW5kX211bHRpX2xpbmUgICAgID0gdHJ1 ZSAgICAgICMgV2hldGhlciB0byBhZGQgYSBuZXdsaW5lIGJlZm9yZSAnKScgaW4gYSBmdW5jdGlv biBjYWxsIGlmICcoJyBhbmQgJyknIGFyZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIGluIGRpZmZlcmVudCBsaW5lcy4NCj4gK25sX2Z1bmNfY2FsbF9w YXJlbiAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0 d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBvcGVuaW5nICcoJyBpbiB0aGUNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjYWxsLg0KPiArbmxfZnVu Y19jYWxsX3N0YXJ0X211bHRpX2xpbmUgICA9IHRydWUgICAgICAjIFdoZXRoZXIgdG8gYWRkIGEg bmV3bGluZSBhZnRlciAnKCcgaW4gYSBmdW5jdGlvbiBjYWxsIGlmICcoJyBhbmQgJyknIGFyZQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGRpZmZl cmVudCBsaW5lcy4NCj4gK25sX2Z1bmNfZGVjbF9hcmdzICAgICAgICAgICAgICAgPSBmb3JjZSAg ICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYWZ0ZXIgZWFjaCAnLCcgaW4gYSBmdW5jdGlvbiBk ZWNsYXJhdGlvbi4NCj4gK25sX2Z1bmNfZGVjbF9lbXB0eSAgICAgICAgICAgICAgPSBhZGQgICAg ICAgIyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnKCknIGluIGEgZnVuY3Rpb24gZGVj bGFyYXRpb24uDQo+ICtubF9mdW5jX2RlZl9hcmdzICAgICAgICAgICAgICAgID0gZm9yY2UgICAg ICMgQWRkIG9yIHJlbW92ZSBuZXdsaW5lIGFmdGVyIGVhY2ggJywnIGluIGEgZnVuY3Rpb24gZGVm aW5pdGlvbi4NCj4gK25sX2Z1bmNfZGVmX2VtcHR5ICAgICAgICAgICAgICAgPSBhZGQgICAgICAg IyBBZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiAnKCknIGluIGEgZnVuY3Rpb24gZGVmaW5p dGlvbi4NCj4gK25sX2Z1bmNfZGVmX3BhcmVuICAgICAgICAgICAgICAgPSByZW1vdmUgICAgIyBB ZGQgb3IgcmVtb3ZlIG5ld2xpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBvcGVu aW5nICcoJw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IGluIHRoZSBkZWZpbml0aW9uLg0KPiArbmxfZnVuY19wYXJlbiAgICAgICAgICAgICAgICAgICA9 IHJlbW92ZSAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVuIGEgZnVuY3Rpb24gbmFt ZSBhbmQgdGhlIG9wZW5pbmcgJygnIGluDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgdGhlIGRlY2xhcmF0aW9uLg0KPiArbmxfZnVuY190eXBlX25hbWUg ICAgICAgICAgICAgICA9IGFkZCAgICAgICAjIEFkZCBvciByZW1vdmUgbmV3bGluZSBiZXR3ZWVu IHJldHVybiB0eXBlIGFuZCBmdW5jdGlvbiBuYW1lIGluIGEgZnVuY3Rpb24NCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWZpbml0aW9uLg0KPiArc3Bf ZnBhcmVuX2JyYWNlICAgICAgICAgICAgICAgICA9IGZvcmNlICAgICAjIEFkZCBvciByZW1vdmUg c3BhY2UgYmV0d2VlbiAnKScgYW5kICd7JyBvZiBmdW5jdGlvbi4NCj4gK3VzZV9pbmRlbnRfZnVu Y19jYWxsX3BhcmFtICAgICAgPSB0cnVlICAgICAgIyBpbmRlbnRfZnVuY19jYWxsX3BhcmFtIHdp bGwgYmUgdXNlZA0KPiArDQo+ICsjIEFkZGl0aW9uYWwgTmV3bGluZSBSdWxlcw0KPiArbmxfYWZ0 ZXJfYnJhY2Vfb3BlbiAgICAgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlICAgICAjIFdoZXRo ZXIgdG8gYWRkIGEgbmV3bGluZSBhZnRlciAneycuIFRoaXMgYWxzbyBhZGRzIGEgbmV3bGluZQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIGJlZm9yZSB0aGUgbWF0Y2hpbmcgJ30nLg0KPiArbmxfYWZ0ZXJfYnJhY2Vfb3Blbl9jbXQg ICAgICAgICAgICAgICAgICAgICAgPSB0cnVlICAgICAjIFdoZXRoZXIgdG8gYWRkIGEgbmV3bGlu ZSBiZXR3ZWVuIHRoZSBvcGVuIGJyYWNlIGFuZCBhDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdHJhaWxpbmcgc2luZ2xlLWxpbmUg Y29tbWVudC4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBSZXF1aXJlcyBubF9hZnRlcl9icmFjZV9vcGVuID0gdHJ1ZS4NCj4gK25s X2FmdGVyX2RvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkICAgICAgIyBB ZGQgb3IgcmVtb3ZlIGJsYW5rIGxpbmUgYWZ0ZXIgJ2RvL3doaWxlJyBzdGF0ZW1lbnQuDQo+ICtu bF9hZnRlcl9mb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZCAgICAgICMg QWRkIG9yIHJlbW92ZSBibGFuayBsaW5lIGFmdGVyICdmb3InIHN0YXRlbWVudC4NCj4gK25sX2Fm dGVyX2Z1bmNfYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiAgICAgICAgIyBUaGUg bnVtYmVyIG9mIG5ld2xpbmVzIGFmdGVyICd9JyBvZiBhIG11bHRpLWxpbmUgZnVuY3Rpb24gYm9k eQ0KPiArbmxfYWZ0ZXJfZnVuY19ib2R5X29uZV9saW5lciAgICAgICAgICAgICAgICAgPSAyDQo+ ICtubF9hZnRlcl9mdW5jX3Byb3RvICAgICAgICAgICAgICAgICAgICAgICAgICA9IDINCj4gK25s X2FmdGVyX2Z1bmNfcHJvdG9fZ3JvdXAgICAgICAgICAgICAgICAgICAgID0gMg0KPiArbmxfYWZ0 ZXJfaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK25sX2FmdGVy X211bHRpbGluZV9jb21tZW50ICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2FmdGVy X3JldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2FmdGVy X3N0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMg0KPiArbmxfYWZ0ZXJfc3dp dGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGQNCj4gK25sX2FmdGVyX3ZicmFj ZV9jbG9zZSAgICAgICAgICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiArbmxfYWZ0ZXJfdmJyYWNl X29wZW4gICAgICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQo+ICtubF9hZnRlcl92YnJhY2Vf b3Blbl9lbXB0eSAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2FmdGVyX3doaWxlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWRkDQo+ICtubF9hc3NpZ25fbGVhdmVfb25l X2xpbmVycyAgICAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2JlZm9yZV9ibG9ja19jb21t ZW50ICAgICAgICAgICAgICAgICAgICAgID0gMg0KPiArbmxfYmVmb3JlX2Nhc2UgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfYmVmb3JlX2RvICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gK25sX2JlZm9yZV9mb3IgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ICtubF9iZWZvcmVfaWYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IGlnbm9yZQ0KPiArbmxfYmVmb3JlX3N3aXRjaCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSBpZ25vcmUNCj4gK25sX2JlZm9yZV93aGlsZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gaWdub3JlDQo+ICtubF9iZWZvcmVfd2hvbGVfZmls ZV9pZmRlZiAgICAgICAgICAgICAgICAgICA9IDINCj4gK25sX2JyYWNlX2JyYWNlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gZm9yY2UNCj4gK25sX2JyYWNlX3N0cnVjdF92YXIgICAg ICAgICAgICAgICAgICAgICAgICAgID0gcmVtb3ZlDQo+ICtubF9jYXNlX2NvbG9uX2JyYWNlICAg ICAgICAgICAgICAgICAgICAgICAgICA9IGFkZA0KPiArbmxfY2xhc3NfbGVhdmVfb25lX2xpbmVy cyAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfY29sbGFwc2VfZW1wdHlfYm9keSAg ICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZQ0KPiArbmxfY29tbWVudF9mdW5jX2RlZiAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAxDQo+ICtubF9jcmVhdGVfZm9yX29uZV9saW5lciAgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9jcmVhdGVfaWZfb25lX2xpbmVyICAgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9jcmVhdGVfd2hpbGVfb25lX2xpbmVyICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9kZWZpbmVfbWFjcm8gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IGZhbHNlDQo+ICtubF9kc19zdHJ1Y3RfZW51bV9jbG9zZV9icmFj ZSAgICAgICAgICAgICAgICA9IHRydWUNCj4gK25sX2RzX3N0cnVjdF9lbnVtX2NtdCAgICAgICAg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2VudW1fbGVhdmVfb25lX2xpbmVycyAgICAg ICAgICAgICAgICAgICAgID0gZmFsc2UNCj4gK25sX2Z1bmNfY2FsbF9hcmdzX211bHRpX2xpbmUg ICAgICAgICAgICAgICAgID0gdHJ1ZQ0KPiArbmxfZnVuY19jYWxsX2FyZ3NfbXVsdGlfbGluZV9p Z25vcmVfY2xvc3VyZXMgPSBmYWxzZQ0KPiArbmxfZnVuY19kZWNsX2VuZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSBhZGQNCj4gK25sX2Z1bmNfZGVjbF9zdGFydCAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gYWRkDQo+ICtubF9mdW5jX2RlZl9lbmQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IGFkZA0KPiArbmxfZnVuY19kZWZfc3RhcnQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSBhZGQNCj4gK25sX2Z1bmNfbGVhdmVfb25lX2xpbmVycyAgICAgICAgICAgICAg ICAgICAgID0gZmFsc2UNCj4gK25sX2Z1bmNfcHJvdG9fdHlwZV9uYW1lICAgICAgICAgICAgICAg ICAgICAgID0gYWRkDQo+ICtubF9mdW5jX3Zhcl9kZWZfYmxrICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDENCj4gK25sX2dldHNldF9sZWF2ZV9vbmVfbGluZXJzICAgICAgICAgICAgICAgICAg ID0gZmFsc2UNCj4gK25sX2lmX2xlYXZlX29uZV9saW5lcnMgICAgICAgICAgICAgICAgICAgICAg ID0gZmFsc2UNCj4gK25sX211bHRpX2xpbmVfZGVmaW5lICAgICAgICAgICAgICAgICAgICAgICAg ID0gZmFsc2UNCj4gK25sX3NxdWVlemVfaWZkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gZmFsc2UNCj4gK25sX3Zhcl9kZWZfYmxrX2VuZCAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gMA0KPiArbmxfdmFyX2RlZl9ibGtfc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgPSAw DQo+ICsNCj4gKyMgUHJlcHJvY2Vzc29yIFJ1bGVzDQo+ICtwcF9kZWZpbmVfYXRfbGV2ZWwgICAg ICA9IHRydWUNCj4gK3BwX2lmX2luZGVudF9jb2RlICAgICAgID0gZmFsc2UNCj4gK3BwX2luZGVu dF9mdW5jX2RlZiAgICAgID0gZmFsc2UNCj4gK3BwX2luZGVudF9leHRlcm4gICAgICAgID0gZmFs c2UNCj4gK3BwX2lnbm9yZV9kZWZpbmVfYm9keSAgID0gdHJ1ZSAgICAgICAgICAgICAgICAjIFdv cmthcm91bmQ6IFR1cm4gb2ZmIHByb2Nlc3NpbmcgZm9yICNkZWZpbmUgYm9keQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKGN1cnJlbnQgcnVsZXMg ZG8gbm90IHdvcmsgZm9yIHNvbWUgZGVmaW5lcykNCj4gK3BwX2luZGVudCAgICAgICAgICAgICAg ID0gYWRkDQo+ICtwcF9pbmRlbnRfYXRfbGV2ZWwgICAgICA9IHRydWUNCj4gK3BwX2luZGVudF9j b3VudCAgICAgICAgID0gMg0KPiArcHBfaW5kZW50X2lmICAgICAgICAgICAgPSAyDQo+ICtwcF9p bmRlbnRfcmVnaW9uICAgICAgICA9IDINCj4gK3BwX3JlZ2lvbl9pbmRlbnRfY29kZSAgID0gZmFs c2UNCj4gK3BwX3NwYWNlICAgICAgICAgICAgICAgID0gcmVtb3ZlDQo+ICsNCj4gKyMNCj4gKyMg VGhlIHRva2VucyBiZWxvdyBhcmUgYXNzaWduZWQgc3BlY2lmaWMgdHlwZXMgc28gdGhleSBhcmUg YWx3YXlzIHJlY29nbml6ZWQgcHJvcGVybHkuDQo+ICsjDQo+ICsNCj4gKyMgRXhwbGljaXRseSBk ZWZpbmUgRURLIElJIHF1YWxpZmllcnMNCj4gK3NldCBRVUFMSUZJRVIgQ09OU1QNCj4gK3NldCBR VUFMSUZJRVIgRUZJQVBJDQo+ICtzZXQgUVVBTElGSUVSIElODQo+ICtzZXQgUVVBTElGSUVSIE9Q VElPTkFMDQo+ICtzZXQgUVVBTElGSUVSIE9VVA0KPiArDQo+ICsjIEV4cGxpY2l0bHkgZGVmaW5l IEVESyBJSSB0eXBlcw0KPiArc2V0IFRZUEUgRUZJX1NUQVRVUw0KPiArc2V0IFRZUEUgVk9JRA0K PiBkaWZmIC0tZ2l0IGEvLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeS91bmNydXN0aWZ5X2V4dF9k ZXAueWFtbCBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeV9leHRfZGVwLnlh bWwNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5kOGMyMjQw M2I0YjENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi8ucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5 L3VuY3J1c3RpZnlfZXh0X2RlcC55YW1sDQo+IEBAIC0wLDAgKzEsMTYgQEANCj4gKyMjIEBmaWxl DQo+ICsjIERvd25sb2FkcyB0aGUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiBmcm9tIGEgUHJvamVj dCBNdSBOdUdldCBwYWNrYWdlLg0KPiArIw0KPiArIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBD b3Jwb3JhdGlvbi4NCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gKyMjDQo+ICt7DQo+ICsgICJpZCI6ICJ1bmNydXN0aWZ5LWNpLTEiLA0KPiArICAi c2NvcGUiOiAiY2lidWlsZCIsDQo+ICsgICJ0eXBlIjogIm51Z2V0IiwNCj4gKyAgIm5hbWUiOiAi bXUtdW5jcnVzdGlmeS1yZWxlYXNlIiwNCj4gKyAgInNvdXJjZSI6ICJodHRwczovL3BrZ3MuZGV2 LmF6dXJlLmNvbS9wcm9qZWN0bXUvVW5jcnVzdGlmeS9fcGFja2FnaW5nL211X3VuY3J1c3RpZnkv bnVnZXQvdjMvaW5kZXguanNvbiIsDQo+ICsgICJ2ZXJzaW9uIjogIjczLjAuMyIsDQo+ICsgICJm bGFncyI6IFsic2V0X3NoZWxsX3ZhciIsICJob3N0X3NwZWNpZmljIl0sDQo+ICsgICJ2YXJfbmFt ZSI6ICJVTkNSVVNUSUZZX0NJX1BBVEgiDQo+ICt9DQo+IGRpZmYgLS1naXQgYS8ucHl0b29sL1Bs dWdpbi9VbmNydXN0aWZ5L3VuY3J1c3RpZnlfcGx1Z19pbi55YW1sIGIvLnB5dG9vbC9QbHVnaW4v VW5jcnVzdGlmeS91bmNydXN0aWZ5X3BsdWdfaW4ueWFtbA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjI1ZDlhOGQzN2EzMA0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiLy5weXRvb2wvUGx1Z2luL1VuY3J1c3RpZnkvdW5jcnVzdGlmeV9wbHVnX2luLnlhbWwN Cj4gQEAgLTAsMCArMSwxMiBAQA0KPiArIyMgQGZpbGUNCj4gKyMgQ2lCdWlsZFBsdWdpbiB1c2Vk IHRvIGNoZWNrIGNvZGluZyBzdGFuZGFyZCBjb21wbGlhbmNlIG9mIEVESyBJSSBzdHlsZSBDIHNv dXJjZSBjb2RlDQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9u Lg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAr IyMNCj4gK3sNCj4gKyAgInNjb3BlIjogImNpYnVpbGQiLA0KPiArICAibmFtZSI6ICJVbmNydXN0 aWZ5IENvZGluZyBTdGFuZGFyZCBUZXN0IiwNCj4gKyAgIm1vZHVsZSI6ICJVbmNydXN0aWZ5Ig0K PiArfQ0KPiArDQo+IGRpZmYgLS1naXQgYS8ucHl0b29sL1JlYWRtZS5tZCBiLy5weXRvb2wvUmVh ZG1lLm1kDQo+IGluZGV4IGY2NTA1NTA3OTY2YS4uNDZkNzI0OGY3ZGEzIDEwMDY0NA0KPiAtLS0g YS8ucHl0b29sL1JlYWRtZS5tZA0KPiArKysgYi8ucHl0b29sL1JlYWRtZS5tZA0KPiBAQCAtMjY0 LDYgKzI2NCwxMCBAQCBCU0QtMi1DbGF1c2UtUGF0ZW50Lg0KPiAgUnVuIHRoZSBFY2MgdG9vbCBv biB0aGUgcGFja2FnZS4gVGhlIEVjYyB0b29sIGlzIGF2YWlsYWJsZSBpbiB0aGUgQmFzZVRvb2xz DQo+ICBwYWNrYWdlLiBJdCBjaGVja3MgdGhhdCB0aGUgY29kZSBjb21wbGllcyB0byB0aGUgRURL SUkgY29kaW5nIHN0YW5kYXJkLg0KPiANCj4gKyMjIyBDb2RpbmcgU3RhbmRhcmQgQ29tcGxpYW5j ZSAtIFVuY3J1c3RpZnkNCj4gKw0KPiArUnVucyB0aGUgVW5jcnVzdGlmeSBhcHBsaWNhdGlvbiB0 byBjaGVjayBmb3IgY29kaW5nIHN0YW5kYXJkIGNvbXBsaWFuY2UgaXNzdWVzLg0KPiArDQo+ICAj IyBQeVRvb2wgU2NvcGVzDQo+IA0KPiAgU2NvcGVzIGFyZSBob3cgdGhlIFB5VG9vbCBleHRfZGVw LCBwYXRoX2VudiwgYW5kIHBsdWdpbnMgYXJlIGFjdGl2YXRlZC4gIE1lYW5pbmcNCj4gLS0NCj4g Mi4yOC4wLndpbmRvd3MuMQ0KDQo=