From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web08.5669.1649893083092027367 for ; Wed, 13 Apr 2022 16:38:04 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=KAtyriM7; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649893083; x=1681429083; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=MLtD9m3tPuqUo8TSRJlhZKqDIi6FBVwzgUE9w40Ei3E=; b=KAtyriM75t9vRdTkUirBSWwiflblpRLX8NrhhxMJyr9ogm58OwkKYQp5 NtvViIWMAoSpZStu61lxD0fMyFSmV577+Sc06ZLOK3Qqm1gj8KKQwoKPc gAYbYJXkWkLW/cSIk7X4Lp4tnw0ReQ33gcNNFhv/egAOHTtgxWV9a5J9u qtbqBBGHAehhxnW4Ol+SJ5MwcvdcMXTAXoU+8iStlHO9JC6VMkrhk3EpN VRfI1DJu3r0UfmDv/rN8nvoYqdNXvKidnyP5m1mkksE4KnNRvA9q1gBZd ESY7Gd7t3awGh8VYKdF/BaZ0gU4pOK0VkOl3war7/mRfyT4eF+DoGUTCP g==; X-IronPort-AV: E=McAfee;i="6400,9594,10316"; a="323247974" X-IronPort-AV: E=Sophos;i="5.90,258,1643702400"; d="scan'208";a="323247974" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2022 16:38:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,258,1643702400"; d="scan'208";a="559948644" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga007.fm.intel.com with ESMTP; 13 Apr 2022 16:38:02 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 13 Apr 2022 16:38:01 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 13 Apr 2022 16:38:01 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 13 Apr 2022 16:38:01 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.44) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 13 Apr 2022 16:38:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h2Xzhb0fcsrMHOyb0hO5NNxRjLjkrrqCwLVa5i6CxhQMW5oZHiBShtM1W5C1PClvLrjUNIRbs5/G5q9lIatuYgE4VS4O1fpRmHeaLBCpw2ZS9Hi/iDBY7FcE2XCKW/uxLZloZS1hPKmYEqGU0hkgMLT0jXKuhQ9x/xg35q2ykE/wZqeYJIX4H4oS1HzsbCO5w2qBaLFa+JJZAcFS516gC1t4PVDlBhs30bKj9ieNaWuAbqyCWRXxd5+5sem7960HeHvcU2OuJlBUM+tyTUJcoZBrDIe5O5dZKPYzabRdwbUOzUQMdV4zNuQLpT+qAZuNijffVlQweYGk3doTT+EKWA== 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=MLtD9m3tPuqUo8TSRJlhZKqDIi6FBVwzgUE9w40Ei3E=; b=ZT3pVGntYL4K9JqRxEXbcYk7Ilc2Mi1xIRGaVEHfYjXB7S1UPbRpMuE5+JczpZeFkV2FeqHT+FjmUahydfith9bjXDP6PnoNkw3iNeqM8ZU9sYHwFYIsXJ7qGAJDJzja2gHRBIKrWp74JwjnDkGHsBnGjdt6tSc8NM0UIE8Pdvy3JmhgpSs3juq/4ELQlGrNoLpT46Ff0PKPMy+v0pHppPqwlpYKhX61DGIhSZKWH2IKIHvu4hh96aUOUs8rygW8DLCFiyKTP3b+yDDHptTIfsxj7WY/UndXJ56GYhoR72tatitwQ+sn/NU5Yx4DYJur4sMaWQ4j8OahNsCM7S5mjQ== 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 Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by DM6PR11MB4060.namprd11.prod.outlook.com (2603:10b6:5:196::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18; Wed, 13 Apr 2022 23:37:59 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ace8:eeb9:74b1:cf53]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ace8:eeb9:74b1:cf53%6]) with mapi id 15.20.5164.018; Wed, 13 Apr 2022 23:37:59 +0000 From: "Michael D Kinney" To: "Frinzell, Aaron" , "Jayaprakash, N" , "devel@edk2.groups.io" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-libc Patch 1/1] AppPkg\Applications\Python\Python-3.6.8\Lib: uuid.py module port for UEFI environment Thread-Topic: [edk2-devel] [edk2-libc Patch 1/1] AppPkg\Applications\Python\Python-3.6.8\Lib: uuid.py module port for UEFI environment Thread-Index: AQHYSz8/1F4DNYuihEG9Zde3b4fFR6zmL7KwgAAS6OCAAAthgIAIB28AgAAy+NA= Date: Wed, 13 Apr 2022 23:37:59 +0000 Message-ID: References: <20220408115209.2002-1-n.jayaprakash@intel.com> <20220408115209.2002-2-n.jayaprakash@intel.com> <16E3F967D40E1D33.6238@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 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: 82556ce0-393b-40e5-d1d4-08da1da6a4c7 x-ms-traffictypediagnostic: DM6PR11MB4060:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XDrwZ2Cntgi8yqE+BvXY01/J514hNqfdDBZFuRisohVm1gbMJyT44Pk0bKOMnShx1FxthDodlIzXy9mxl8fhl2p8u5j3jkb/FkoJD6u9SIecTDaI6+gEFmcYLjdjnbeMOrI58JBjr0cguvQvkJ5LnDgS6nzUUJ+SClA3hFYm0yMxa0OthWIsl44ckqWj5KhBUYN1WH4sSFRKICAa9dvQ5/feqf2D1mOG9z0sHjnZTam6BJpNqN2miv2alrGBL6Sv9oEIq5kBhgMi4KYV07XV2RmL0lyel+yDCZWx3y1Z18sNmOwicWZQTwsaPFrzQ5Th+BvQc4QfRBWlp9T8NezR2I3NzlM2Wf512c4jeK1tWWuL5XYwCANbkV7ys33xDp5aOhUAF/8Gv6wwBpJ9+9+crjgeqPQ+FhfzHVspM76XVQXiFCvr0wXYy4xZwtLFFFIBQdei19Mg+iz5YIdVWqp1I+KapNjm0pboqT9EyWS5G3RkVeeoSaUILLRJPNxAUgQ0ro0fIMgJExlKFHJB4hCzK+WK03QB9yzhj+okrOLxKNkkdwmvVCvXWNIVTekDb3qDvlUROxJCaWNVGO0J4FraP3egNFk0UxWbQbGySeXrvlZ7vmWw5WR/g3DF+7g/zTnbYhVPfRDEOmasW3/xRAmU5TRWerTe7qz9s6OYbi0yTvzmOvTCwbP7c8Y4Dz4Yr2ZiiWPoSmM8Qeb2B0U2e0DX/+r0PAhyKbUFGPSUK2tLwXH1VzJv+LNr/ftgV7vNiAU2nf3fYKOBRDkuMV48ilrqm85DJ3+IxIBKZEgbUQyi3jtXSLa8Ya4LbqAITtXwuR3WBHlDtkEn1s4Ib4+gIBaHc4niH85QI9LH6tx4JDz0mCg= 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:(13230001)(366004)(5660300002)(86362001)(82960400001)(8936002)(122000001)(53546011)(38070700005)(26005)(9686003)(38100700002)(7696005)(186003)(71200400001)(55016003)(110136005)(52536014)(966005)(6506007)(508600001)(19627235002)(83380400001)(8676002)(64756008)(76116006)(66476007)(66446008)(66556008)(2906002)(66946007)(33656002)(316002)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K2kwNXVvcVRpZGVuNGtWMlRDM2IxVkR3MGpJV3ZiSDFjMmg3TWc3emIrRURR?= =?utf-8?B?MDBjNWNtYTgyc3RTVGF5NS9LdkIwZTFsT3lWektlck9qYThsQmlBM2lKdkkr?= =?utf-8?B?YWFScjNnQzJsbzlGQW9Ra3YwL1V2RE81U3N5MW5vTGxmVW5ybjhXNk5rcC9S?= =?utf-8?B?aVhDVFJ4TGZxZHlTMHdqZC9UTWFqOFdNemlkcnNHcGF3bFNMWmV1cDBZZnNa?= =?utf-8?B?WUhtbktRWWk2aTJTUGQ5blUxcTlNZmd5ckVKNFIyZExmMEdkVCt0M1VlU0R0?= =?utf-8?B?cVN1Z2UwdW9OSWJacWJQaGhXQ2RmeWk5cEhtTGdCMWtWcnVxRTEyMDVDSFRm?= =?utf-8?B?bVBlTVRtN1lpQVVnb055RzNMbEZ4SDRpejdUZmp0Mnk4T2ZrcFdwMjBmcU5M?= =?utf-8?B?dTE2aGZ2R0ZWYVJKWjlHV3dyWjhzeElNZkQ4VC9aSkhJZjNzR05qN0pDMEVH?= =?utf-8?B?SHMyT1R6Qm1zQnExeGdFT0JsVE11MnhIZm9NT2p3VUFvRllMZDJzUVNDRXBn?= =?utf-8?B?dHp5YXd1WUU2Z0dTejh0MGNWYmVjcXhBaWlBUjgrNjA5QmM4b1cyYkZlVGpG?= =?utf-8?B?MkJRdGxsdGVJTEovWkJLTGVzYnZpMXEwbHVqTng2SGFVSlJxSXR1c1k5ZDBG?= =?utf-8?B?SEkvazlqSDEyR0VNcU1sejBzcnZVaEJPQVQ4dUd2cTJmUlp2WlNwamhZTVN1?= =?utf-8?B?bnhsUElCTXRzZDdqYWgxdmw1eWo2d3UvZTRWNnVUM1JmU1NyZm1NNlE0VDdX?= =?utf-8?B?eW01MXpNc09VelN0UGZOU1BodUYyQTlEWFk3OUx0YjM4cG5ReEkzZ3dIOGdx?= =?utf-8?B?Vlk2Wngrd2dQa3pnYzNJRzBBSWhKUW44aGk5bXA3bjcvSHI2UUIvT0gyVDh2?= =?utf-8?B?R1ZmVzFPb3l4Sm95c3lSSHU1NnpIMHZCOGNaNFBPbVJQV3gyZkF3RldZVktC?= =?utf-8?B?b0xqYkNkZW5ITklsUC8xT1RHcEwveDN4R0ZDaFJrQnlSZ0hnUGFxSjRiV3pW?= =?utf-8?B?OWV1anZMTVZITWo3K29jcmxWWkNJTlJCSC9MaVBOMld5UjZudWkvaFBZcWtv?= =?utf-8?B?Ly9QSGhVR21ndTB1Nml5aFpJYi80aFBLL0NYdVppeDAyemdOL2pkK2taOGhX?= =?utf-8?B?a2tmV09WT01QUFRMOGVkejQ4dUdCbWVFWWQ4bWwveFF1b3dmYjNrWEhaek1k?= =?utf-8?B?UnFuZmFvelRyMEtrdExkNFZFMSsvSGpNMmVBL3M5M3N6UjY4WUtiTlBkb0Zr?= =?utf-8?B?Y1BHei9zdE1NaGtDTWx4Sk5MdUF2TmEybWdJVFpPMlZnMUJJakkrdUUvaGU5?= =?utf-8?B?d1JVaE8vbm04V0I2dmlTODl0cTJCZm5BcjhRdnBpWkdPai9yYnRxckRLMzNj?= =?utf-8?B?a3RYcUNEc0xOVTVOTU1xQjRCUWR0N0dETzN2SE1TQjF4SjdRaDAxUUs0cFBo?= =?utf-8?B?UTU2RDg3Q2c1WXI4VlduNEZHZDdURkhuVWZtMGprbDhSL3pJZHdwVXBBWk02?= =?utf-8?B?NUpyaS9VVEVoVGlqNTZNNGMvUnBpaVRocWoyTVlWV1N0ZGVTZHlUS2N0YmlJ?= =?utf-8?B?L2VHOGpMT1R6SzR4ZHZNVHFFeTVOYkpaYldCU2wzZ05saldvUERwUTgxQnVO?= =?utf-8?B?d1p4c0plMTVrMEtDVmkvKytyalB1NncvVUcvT1NWZW1VblVHWGljTndkbG5s?= =?utf-8?B?OEozd1pSYmo2djd3RDFoY01aQ3JkWGVxbFVraGwzSG55aGNCTStJekszTnNQ?= =?utf-8?B?MXgyMTFJQlo0TDBoQW9HYm02WlIvelZNNXkyT09RM2d1YlZETTVnVW1WeW1U?= =?utf-8?B?eEt4WUhkb0FRYnBSRzBtZUV6d1JHNU5kZWsrd3ZyUjNVclJGa3VuOEFrTXh1?= =?utf-8?B?OUE5M2NSV3ZpWEpWTGEvMjBGSmxid0c1RnM0N2NhOFZnVGNUT2R4M2Q0dWdS?= =?utf-8?B?TFJSamRzQ1ZXeXpwT1ZKZG5kMTJJSVhKaUx4WVlQRU0xeWZuSE16cjlMRnZ1?= =?utf-8?B?djZTMWZ4bG1JcmtVR1NlSTJMM29tcHBrd0dOK0tXelBUYllLbzFBL1BqQUlK?= =?utf-8?B?b2NleG83UnpPdXJMUnNxalF6T3M2bjBoL2JyY0FiTmk0YXJkbFRiMUprd1I2?= =?utf-8?B?dHk5VXVPUGlacHZLcTVpc1pnVUMyYjBxRlA0U3pEN05lZld2NFJQK2JCZnRD?= =?utf-8?B?SlEzUFdLVTdBdnl2by9mVkt5V2VaY2JaK2ErNjlISVhTVmxpaTdzUmVraHRp?= =?utf-8?B?ZUxyM080MGhhdmRLbndiRnFFRFF1Rmc2dTBodXV3bVF2VHp6TzBqQWdVbUhJ?= =?utf-8?B?L2NZdkR3ZCsxZnVweXd3eGh2T29kU2NmQ3ZJcUtCWUZPcG1DNE41SUxBK2Jw?= =?utf-8?Q?tquAqU/rTZWLkxHg=3D?= 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: 82556ce0-393b-40e5-d1d4-08da1da6a4c7 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2022 23:37:59.1900 (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: YzfkieL/FriEvdisn6XGJ4QlHcXBkoJiW1FD+j6zGwQbrwmTlYfuySIzMBG+bJhdAvcXFI4TBVS8GZ02eOX2JSdd2UzQtNLPU4AoNpREF9o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4060 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 UHVzaGVkIGFzIDBmZGZlMjE3Li5jMzIyMjJmZS4NCg0KTWlrZQ0KDQoNCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRnJpbnplbGwsIEFhcm9uIDxhYXJvbi5mcmluemVsbEBp bnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMTMsIDIwMjIgMTozNSBQTQ0KPiBU bzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgSmF5YXBy YWthc2gsIE4gPG4uamF5YXByYWthc2hAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbZWRrMi1saWJjIFBhdGNoIDEvMV0gQXBwUGtn XEFwcGxpY2F0aW9uc1xQeXRob25cUHl0aG9uLTMuNi44XExpYjogdXVpZC5weSBtb2R1bGUgcG9y dCBmb3IgVUVGSQ0KPiBlbnZpcm9ubWVudA0KPiANCj4gVGhpcyBpcyBncmVhdCENCj4gDQo+IFRo YW5rcyBKUCBmb3IgdGhlIHBhdGNoLg0KPiANCj4gDQo+IE1pa2UsDQo+IA0KPiAJQW55IEVUQSB3 aGVuIHRoaXMgd2lsbCBnZXQgbWVyZ2VkPw0KPiANCj4gVGhhbmtzIQ0KPiANCj4gQWFyb24NCj4g DQo+IA0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTZW50OiBGcmlkYXksIEFw cmlsIDgsIDIwMjIgMTowMCBQTQ0KPiBUbzogSmF5YXByYWthc2gsIE4gPG4uamF5YXByYWthc2hA aW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IEZyaW56ZWxsLCBBYXJvbiA8YWFyb24uZnJp bnplbGxAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtlZGsyLWxpYmMg UGF0Y2ggMS8xXSBBcHBQa2dcQXBwbGljYXRpb25zXFB5dGhvblxQeXRob24tMy42LjhcTGliOiB1 dWlkLnB5IG1vZHVsZSBwb3J0IGZvciBVRUZJDQo+IGVudmlyb25tZW50DQo+IA0KPiBUaGFua3Mg SlAuDQo+IA0KPiBUaGF0IG1ha2VzIHNlbnNlLiAgQnlwYXNzIGFsbCB0aGUgT1Mgc3BlY2lmaWMg c2VydmljZXMgaW4gVUVGSSBlbnZpcm9ubWVudCBhbmQgZ2VuZXJhdGUgVVVJRCB1c2luZyB0aW1l IGFuZCByYW5kb20gbnVtYmVyLg0KPiANCj4gUmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiANCj4gTWlrZQ0KPiANCj4gDQo+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBKYXlhcHJha2FzaCwgTiA8bi5qYXlh cHJha2FzaEBpbnRlbC5jb20+DQo+ID4gU2VudDogRnJpZGF5LCBBcHJpbCA4LCAyMDIyIDEwOjE5 IEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBKYXlhcHJha2FzaCwgTiA8bi5qYXlh cHJha2FzaEBpbnRlbC5jb20+Ow0KPiA+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4NCj4gPiBDYzogRnJpbnplbGwsIEFhcm9uIDxhYXJvbi5mcmluemVsbEBp bnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbZWRrMi1saWJjIFBhdGNo IDEvMV0NCj4gPiBBcHBQa2dcQXBwbGljYXRpb25zXFB5dGhvblxQeXRob24tMy42LjhcTGliOiB1 dWlkLnB5IG1vZHVsZSBwb3J0IGZvcg0KPiA+IFVFRkkgZW52aXJvbm1lbnQNCj4gPg0KPiA+ICsg QWFyb24NCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ID4gSlANCj4gPg0KPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIu Z3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiBKYXlhcHJha2FzaCwgTg0KPiA+IFNlbnQ6IDA4 IEFwcmlsIDIwMjIgMjI6MTINCj4gPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsNCj4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+IFN1YmplY3Q6 IFJlOiBbZWRrMi1kZXZlbF0gW2VkazItbGliYyBQYXRjaCAxLzFdDQo+ID4gQXBwUGtnXEFwcGxp Y2F0aW9uc1xQeXRob25cUHl0aG9uLTMuNi44XExpYjogdXVpZC5weSBtb2R1bGUgcG9ydCBmb3IN Cj4gPiBVRUZJIGVudmlyb25tZW50DQo+ID4NCj4gPiBUaGUgVVVJRCBnZW5lcmF0aW9uIGlzIGRv bmUgdGhyb3VnaCB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uICYNCj4gPiB0aW1lIHVuaXgg dGltZSBzdGFtcCBmZWF0dXJlcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgYnVpbHQtaW4gcHl0aG9u IG1vZHVsZXMgJ3JhbmRvbScgYW5kICd0aW1lJyByZXNwZWN0aXZlbHkuDQo+ID4gVGhlIHJhbmRv bSBudW1iZXIgJiB0aW1lICh1bml4IHRpbWUgc3RhbXAgb3IgZXBvY2gpIGJhc2VkIG1ldGhvZCBv Zg0KPiA+IGdlbmVyYXRpbmcgdGhlIFVVSUQgaXMgYWxyZWFkeSB0aGVyZSBpbiB1dWlkLnB5IG1v ZHVsZSwgd2l0aCB0aGlzIHBhdGNoIHJlcXVlc3QgZW5hYmxlZCB0aGlzIHBhdGggdG8gdGFrZSBl ZmZlY3QgZm9yIFVFRkkNCj4gaW52b2NhdGlvbiBvZiB0aGlzIG1vZHVsZS4NCj4gPg0KPiA+IFRo ZXJlIGFyZSBzb21lIE9TIHNwZWNpZmljIHdheXMgdG8gZ2VuZXJhdGUgdGhlIFVVSUQncyBzdWNo IGFzIGJ5DQo+ID4gdXNpbmcgdGhlIGxpYnV1aWQgb24gTGludXgga2luZCBvZiBPUywgd2luZGxs LnJwY3J0NCBsaWJyYXJ5IG9uIHdpbmRvd3MuDQo+ID4gVGhlc2Ugd2lsbCBub3Qgd29yayBmb3Ig VUVGSSBhbmQgaGVuY2UgYWRkZWQgYXBwcm9wcmlhdGUgcGxhdGZvcm0NCj4gPiBjaGVjayB0byBl bnN1cmUgdGhhdCB0aGlzIHBhdGggaXMgbm90IHRha2VuIGZvciBVRUZJIGludm9jYXRpb24uDQo+ ID4NCj4gPiBCZXNpZGVzIHRoaXMgdGhlcmUgYXJlIE1BQyBhZGRyZXNzIGJhc2VkIGFsZ29yaXRo bXMgYXZhaWxhYmxlIGluIHV1aWQucHkgbW9kdWxlLg0KPiA+IFRoZXNlIGFsZ29yaXNtIGFyZSBi YXNlZCBvbiByZWFkaW5nIE1BQyBhZGRyZXNzIHRocm91Z2ggdmFyaW91cyBPUw0KPiA+IHN1cHBv cnRlZCBtZXRob2RzIHN1Y2ggYXMgaXBjb25maWcgY29tbWFuZCBwcm9jZXNzaW5nLCBOZXRCSU9T IGNhbGxzDQo+ID4gb24gV2luZG93cywgdXNpbmcgbmV0c3RhdCBjb21tYW5kIGluIExpbnV4LCBs YW5zY2FuIGluIFVuaXgsIGZyb20gYXJwIC0gYWRkcmVzcyByZXNvbHV0aW9uIHByb3RvY29sIGlu IExpbnV4LCBOZXRCU0QgYW5kDQo+IG90aGVyIGZsYXZvdXJzIG9mIExpbnV4Lg0KPiA+IFRoZXNl IGFyZSBjdXJyZW50bHkgbm90IGVuYWJsZWQgZm9yIFVFRkkgaW52b2NhdGlvbiBvZiB0aGUgdXVp ZA0KPiA+IG1vZHVsZS4gVGhpcyBoYXMgYmVlbiBkb25lIHRocm91Z2ggcGxhdGZvcm0gY2hlY2sg YWRkZWQgYXQgYXBwcm9wcmlhdGUgcGxhY2UgaW4gdGhlIHV1aWQucHkgbW9kdWxlIGNvZGUuDQo+ ID4NCj4gPiBSZWdhcmRzLA0KPiA+IEpQDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+ID4gU2VudDogMDggQXByaWwgMjAyMiAyMToxNA0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsgSmF5YXByYWthc2gsIE4gPG4uamF5YXByYWthc2hAaW50ZWwuY29tPjsNCj4gPiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDog UkU6IFtlZGsyLWRldmVsXSBbZWRrMi1saWJjIFBhdGNoIDEvMV0NCj4gPiBBcHBQa2dcQXBwbGlj YXRpb25zXFB5dGhvblxQeXRob24tMy42LjhcTGliOiB1dWlkLnB5IG1vZHVsZSBwb3J0IGZvcg0K PiA+IFVFRkkgZW52aXJvbm1lbnQNCj4gPg0KPiA+IEhvdyBpcyBhIFVVSUQgZ2VuZXJhdGVkIGlu IFVFRkkgZW52PyAgSXMgdGhlcmUgYSBkZXBlbmRlbmN5IG9uIE1BQyBhZGRyZXNzIG9yIHJhbmRv bSBudW1iZXIgZ2VuZXJhdG9yPw0KPiA+DQo+ID4gQ2FuIHlvdSBhZGQgYSBkZXNjcmlwdGlvbiBv ZiB0aGUgdGVjaG5pcXVlIHRvIHRoZSBCWiBhbmQgdGhlIGNvbW1pdCBtZXNzYWdlPw0KPiA+DQo+ ID4gVGhhbmtzLA0KPiA+DQo+ID4gTWlrZQ0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiA+IEpheWFwcmFrYXNoLCBODQo+ID4gPiBTZW50OiBG cmlkYXksIEFwcmlsIDgsIDIwMjIgNDo1MiBBTQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBz LmlvDQo+ID4gPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW2VkazItbGliYyBQYXRjaCAxLzFdDQo+ ID4gPiBBcHBQa2dcQXBwbGljYXRpb25zXFB5dGhvblxQeXRob24tMy42LjhcTGliOiB1dWlkLnB5 IG1vZHVsZSBwb3J0IGZvcg0KPiA+ID4gVUVGSSBlbnZpcm9ubWVudA0KPiA+ID4NCj4gPiA+ICBS RUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5OQ0K PiA+ID4NCj4gPiA+ICBUaGlzIGlzIGNvbW1pdCBjb250YWlucyB0aGUgVUVGSSBwb3J0IG9mIHV1 aWQucHkgbW9kdWxlLiBNYWRlDQo+ID4gPiBuZWNlc3NhcnkgIGNoYW5nZXMgcmVxdWlyZWQgdG8g dXVpZC5weSBtb2R1bGUgdG8gc3VwcG9ydCBVRUZJIGVudmlyb25tZW50Lg0KPiA+ID4gIFBvcnRp bmcgb2YgdGhpcyBtb2R1bGUgdG8gVUVGSSBpcyByZXF1aXJlZCBmb3Igb3BlbiBzb3VyY2UgdG9v bHMNCj4gPiA+IHN1Y2ggYXMgQ2hpcHNlYyB0byBmdW5jdGlvbiBwcm9wZXJseS4NCj4gPiA+DQo+ ID4gPiAgQ2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBudXZpYWluYy5jb20+DQo+ID4gPiAgQ2M6 IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gIFNp Z25lZC1vZmYtYnk6IEpheWFwcmFrYXNoIE4gPG4uamF5YXByYWthc2hAaW50ZWwuY29tPg0KPiA+ ID4gLS0tDQo+ID4gPiAgLi4uL1B5dGhvbi9QeXRob24tMy42LjgvTGliL3V1aWQucHkgICAgICAg ICAgIHwgOTQgKysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA1MCBp bnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEv QXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L0xpYi91dWlkLnB5DQo+ID4g PiBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9MaWIvdXVpZC5weQ0K PiA+ID4gaW5kZXggZGI4YjJlZi4uODRlZDBiOCAxMDA2NDQNCj4gPiA+IC0tLSBhL0FwcFBrZy9B cHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9MaWIvdXVpZC5weQ0KPiA+ID4gKysrIGIv QXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L0xpYi91dWlkLnB5DQo+ID4g PiBAQCAtNDcxLDU3ICs0NzEsNjEgQEAgZGVmIF9uZXRiaW9zX2dldG5vZGUoKToNCj4gPiA+ICAg ICAgICAgICAgICBjb250aW51ZQ0KPiA+ID4gICAgICAgICAgcmV0dXJuIGludC5mcm9tX2J5dGVz KGJ5dGVzLCAnYmlnJykNCj4gPiA+DQo+ID4gPiArDQo+ID4gPiAgIyBUaGFua3MgdG8gVGhvbWFz IEhlbGxlciBmb3IgY3R5cGVzIGFuZCBmb3IgaGlzIGhlbHAgd2l0aCBpdHMgdXNlIGhlcmUuDQo+ ID4gPg0KPiA+ID4gICMgSWYgY3R5cGVzIGlzIGF2YWlsYWJsZSwgdXNlIGl0IHRvIGZpbmQgc3lz dGVtIHJvdXRpbmVzIGZvciBVVUlEIGdlbmVyYXRpb24uDQo+ID4gPiAgIyBYWFggVGhpcyBtYWtl cyB0aGUgbW9kdWxlIG5vbi10aHJlYWQtc2FmZSENCj4gPiA+ICBfdXVpZF9nZW5lcmF0ZV90aW1l ID0gX1V1aWRDcmVhdGUgPSBOb25lDQo+ID4gPiAtdHJ5Og0KPiA+ID4gLSAgICBpbXBvcnQgY3R5 cGVzLCBjdHlwZXMudXRpbA0KPiA+ID4gLSAgICBpbXBvcnQgc3lzDQo+ID4gPiAtDQo+ID4gPiAt ICAgICMgVGhlIHV1aWRfZ2VuZXJhdGVfKiByb3V0aW5lcyBhcmUgcHJvdmlkZWQgYnkgbGlidXVp ZCBvbiBhdCBsZWFzdA0KPiA+ID4gLSAgICAjIExpbnV4IGFuZCBGcmVlQlNELCBhbmQgcHJvdmlk ZWQgYnkgbGliYyBvbiBNYWMgT1MgWC4NCj4gPiA+IC0gICAgX2xpYm5hbWVzID0gWyd1dWlkJ10N Cj4gPiA+IC0gICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKToNCj4gPiA+ IC0gICAgICAgIF9saWJuYW1lcy5hcHBlbmQoJ2MnKQ0KPiA+ID4gLSAgICBmb3IgbGlibmFtZSBp biBfbGlibmFtZXM6DQo+ID4gPiAtICAgICAgICB0cnk6DQo+ID4gPiAtICAgICAgICAgICAgbGli ID0gY3R5cGVzLkNETEwoY3R5cGVzLnV0aWwuZmluZF9saWJyYXJ5KGxpYm5hbWUpKQ0KPiA+ID4g LSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoNCj4gPiA+IC0gICAgICAgICAgICBjb250aW51ZQ0K PiA+ID4gLSAgICAgICAgaWYgaGFzYXR0cihsaWIsICd1dWlkX2dlbmVyYXRlX3RpbWUnKToNCj4g PiA+IC0gICAgICAgICAgICBfdXVpZF9nZW5lcmF0ZV90aW1lID0gbGliLnV1aWRfZ2VuZXJhdGVf dGltZQ0KPiA+ID4gLSAgICAgICAgICAgIGJyZWFrDQo+ID4gPiAtICAgIGRlbCBfbGlibmFtZXMN Cj4gPiA+IC0NCj4gPiA+IC0gICAgIyBUaGUgdXVpZF9nZW5lcmF0ZV8qIGZ1bmN0aW9ucyBhcmUg YnJva2VuIG9uIE1hY09TIFggMTAuNSwgYXMgbm90ZWQNCj4gPiA+IC0gICAgIyBpbiBpc3N1ZSAj ODYyMSB0aGUgZnVuY3Rpb24gZ2VuZXJhdGVzIHRoZSBzYW1lIHNlcXVlbmNlIG9mIHZhbHVlcw0K PiA+ID4gLSAgICAjIGluIHRoZSBwYXJlbnQgcHJvY2VzcyBhbmQgYWxsIGNoaWxkcmVuIGNyZWF0 ZWQgdXNpbmcgZm9yayAodW5sZXNzDQo+ID4gPiAtICAgICMgdGhvc2UgY2hpbGRyZW4gdXNlIGV4 ZWMgYXMgd2VsbCkuDQo+ID4gPiAtICAgICMNCj4gPiA+IC0gICAgIyBBc3N1bWUgdGhhdCB0aGUg dXVpZF9nZW5lcmF0ZSBmdW5jdGlvbnMgYXJlIGJyb2tlbiBmcm9tIDEwLjUgb253YXJkLA0KPiA+ ID4gLSAgICAjIHRoZSB0ZXN0IGNhbiBiZSBhZGp1c3RlZCB3aGVuIGEgbGF0ZXIgdmVyc2lvbiBp cyBmaXhlZC4NCj4gPiA+IC0gICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOg0KPiA+ID4g LSAgICAgICAgaWYgaW50KG9zLnVuYW1lKCkucmVsZWFzZS5zcGxpdCgnLicpWzBdKSA+PSA5Og0K PiA+ID4gLSAgICAgICAgICAgIF91dWlkX2dlbmVyYXRlX3RpbWUgPSBOb25lDQo+ID4gPiAtDQo+ ID4gPiAtICAgICMgT24gV2luZG93cyBwcmlvciB0byAyMDAwLCBVdWlkQ3JlYXRlIGdpdmVzIGEg VVVJRCBjb250YWluaW5nIHRoZQ0KPiA+ID4gLSAgICAjIGhhcmR3YXJlIGFkZHJlc3MuICBPbiBX aW5kb3dzIDIwMDAgYW5kIGxhdGVyLCBVdWlkQ3JlYXRlIG1ha2VzIGENCj4gPiA+IC0gICAgIyBy YW5kb20gVVVJRCBhbmQgVXVpZENyZWF0ZVNlcXVlbnRpYWwgZ2l2ZXMgYSBVVUlEIGNvbnRhaW5p bmcgdGhlDQo+ID4gPiAtICAgICMgaGFyZHdhcmUgYWRkcmVzcy4gIFRoZXNlIHJvdXRpbmVzIGFy ZSBwcm92aWRlZCBieSB0aGUgUlBDIHJ1bnRpbWUuDQo+ID4gPiAtICAgICMgTk9URTogIGF0IGxl YXN0IG9uIFRpbSdzIFdpblhQIFBybyBTUDIgZGVza3RvcCBib3gsIHdoaWxlIHRoZSBsYXN0DQo+ ID4gPiAtICAgICMgNiBieXRlcyByZXR1cm5lZCBieSBVdWlkQ3JlYXRlU2VxdWVudGlhbCBhcmUg Zml4ZWQsIHRoZXkgZG9uJ3QgYXBwZWFyDQo+ID4gPiAtICAgICMgdG8gYmVhciBhbnkgcmVsYXRp b25zaGlwIHRvIHRoZSBNQUMgYWRkcmVzcyBvZiBhbnkgbmV0d29yayBkZXZpY2UNCj4gPiA+IC0g ICAgIyBvbiB0aGUgYm94Lg0KPiA+ID4gK2lmIG9zLm5hbWUgIT0gJ2VkazInOg0KPiA+ID4gKyAg ICAjIFRoaXMgY29kZSBpcyBub3QgbWVhbnQgdG8gcnVuIG9uIFVFRkkgZW52aXJvbm1lbnQNCj4g PiA+ICAgICAgdHJ5Og0KPiA+ID4gLSAgICAgICAgbGliID0gY3R5cGVzLndpbmRsbC5ycGNydDQN Cj4gPiA+ICsgICAgICAgIGltcG9ydCBjdHlwZXMsIGN0eXBlcy51dGlsDQo+ID4gPiArICAgICAg ICBpbXBvcnQgc3lzDQo+ID4gPiArDQo+ID4gPiArICAgICAgICAjIFRoZSB1dWlkX2dlbmVyYXRl Xyogcm91dGluZXMgYXJlIHByb3ZpZGVkIGJ5IGxpYnV1aWQgb24gYXQgbGVhc3QNCj4gPiA+ICsg ICAgICAgICMgTGludXggYW5kIEZyZWVCU0QsIGFuZCBwcm92aWRlZCBieSBsaWJjIG9uIE1hYyBP UyBYLg0KPiA+ID4gKyAgICAgICAgX2xpYm5hbWVzID0gWyd1dWlkJ10NCj4gPiA+ICsgICAgICAg IGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyk6DQo+ID4gPiArICAgICAgICAg ICAgX2xpYm5hbWVzLmFwcGVuZCgnYycpDQo+ID4gPiArICAgICAgICBmb3IgbGlibmFtZSBpbiBf bGlibmFtZXM6DQo+ID4gPiArICAgICAgICAgICAgdHJ5Og0KPiA+ID4gKyAgICAgICAgICAgICAg ICBsaWIgPSBjdHlwZXMuQ0RMTChjdHlwZXMudXRpbC5maW5kX2xpYnJhcnkobGlibmFtZSkpDQo+ ID4gPiArICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoNCj4gPiA+ICsgICAgICAgICAgICAg ICAgY29udGludWUNCj4gPiA+ICsgICAgICAgICAgICBpZiBoYXNhdHRyKGxpYiwgJ3V1aWRfZ2Vu ZXJhdGVfdGltZScpOg0KPiA+ID4gKyAgICAgICAgICAgICAgICBfdXVpZF9nZW5lcmF0ZV90aW1l ID0gbGliLnV1aWRfZ2VuZXJhdGVfdGltZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICBicmVhaw0K PiA+ID4gKyAgICAgICAgZGVsIF9saWJuYW1lcw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgIyBU aGUgdXVpZF9nZW5lcmF0ZV8qIGZ1bmN0aW9ucyBhcmUgYnJva2VuIG9uIE1hY09TIFggMTAuNSwg YXMgbm90ZWQNCj4gPiA+ICsgICAgICAgICMgaW4gaXNzdWUgIzg2MjEgdGhlIGZ1bmN0aW9uIGdl bmVyYXRlcyB0aGUgc2FtZSBzZXF1ZW5jZSBvZiB2YWx1ZXMNCj4gPiA+ICsgICAgICAgICMgaW4g dGhlIHBhcmVudCBwcm9jZXNzIGFuZCBhbGwgY2hpbGRyZW4gY3JlYXRlZCB1c2luZyBmb3JrICh1 bmxlc3MNCj4gPiA+ICsgICAgICAgICMgdGhvc2UgY2hpbGRyZW4gdXNlIGV4ZWMgYXMgd2VsbCku DQo+ID4gPiArICAgICAgICAjDQo+ID4gPiArICAgICAgICAjIEFzc3VtZSB0aGF0IHRoZSB1dWlk X2dlbmVyYXRlIGZ1bmN0aW9ucyBhcmUgYnJva2VuIGZyb20gMTAuNSBvbndhcmQsDQo+ID4gPiAr ICAgICAgICAjIHRoZSB0ZXN0IGNhbiBiZSBhZGp1c3RlZCB3aGVuIGEgbGF0ZXIgdmVyc2lvbiBp cyBmaXhlZC4NCj4gPiA+ICsgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoNCj4g PiA+ICsgICAgICAgICAgICBpZiBpbnQob3MudW5hbWUoKS5yZWxlYXNlLnNwbGl0KCcuJylbMF0p ID49IDk6DQo+ID4gPiArICAgICAgICAgICAgICAgIF91dWlkX2dlbmVyYXRlX3RpbWUgPSBOb25l DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAjIE9uIFdpbmRvd3MgcHJpb3IgdG8gMjAwMCwgVXVp ZENyZWF0ZSBnaXZlcyBhIFVVSUQgY29udGFpbmluZyB0aGUNCj4gPiA+ICsgICAgICAgICMgaGFy ZHdhcmUgYWRkcmVzcy4gIE9uIFdpbmRvd3MgMjAwMCBhbmQgbGF0ZXIsIFV1aWRDcmVhdGUgbWFr ZXMgYQ0KPiA+ID4gKyAgICAgICAgIyByYW5kb20gVVVJRCBhbmQgVXVpZENyZWF0ZVNlcXVlbnRp YWwgZ2l2ZXMgYSBVVUlEIGNvbnRhaW5pbmcgdGhlDQo+ID4gPiArICAgICAgICAjIGhhcmR3YXJl IGFkZHJlc3MuICBUaGVzZSByb3V0aW5lcyBhcmUgcHJvdmlkZWQgYnkgdGhlIFJQQyBydW50aW1l Lg0KPiA+ID4gKyAgICAgICAgIyBOT1RFOiAgYXQgbGVhc3Qgb24gVGltJ3MgV2luWFAgUHJvIFNQ MiBkZXNrdG9wIGJveCwgd2hpbGUgdGhlIGxhc3QNCj4gPiA+ICsgICAgICAgICMgNiBieXRlcyBy ZXR1cm5lZCBieSBVdWlkQ3JlYXRlU2VxdWVudGlhbCBhcmUgZml4ZWQsIHRoZXkgZG9uJ3QgYXBw ZWFyDQo+ID4gPiArICAgICAgICAjIHRvIGJlYXIgYW55IHJlbGF0aW9uc2hpcCB0byB0aGUgTUFD IGFkZHJlc3Mgb2YgYW55IG5ldHdvcmsgZGV2aWNlDQo+ID4gPiArICAgICAgICAjIG9uIHRoZSBi b3guDQo+ID4gPiArICAgICAgICB0cnk6DQo+ID4gPiArICAgICAgICAgICAgbGliID0gY3R5cGVz LndpbmRsbC5ycGNydDQNCj4gPiA+ICsgICAgICAgIGV4Y2VwdDoNCj4gPiA+ICsgICAgICAgICAg ICBsaWIgPSBOb25lDQo+ID4gPiArICAgICAgICBfVXVpZENyZWF0ZSA9IGdldGF0dHIobGliLCAn VXVpZENyZWF0ZVNlcXVlbnRpYWwnLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdldGF0dHIobGliLCAnVXVpZENyZWF0ZScsIE5vbmUpKQ0KPiA+ID4gICAgICBleGNlcHQ6 DQo+ID4gPiAtICAgICAgICBsaWIgPSBOb25lDQo+ID4gPiAtICAgIF9VdWlkQ3JlYXRlID0gZ2V0 YXR0cihsaWIsICdVdWlkQ3JlYXRlU2VxdWVudGlhbCcsDQo+ID4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICBnZXRhdHRyKGxpYiwgJ1V1aWRDcmVhdGUnLCBOb25lKSkNCj4gPiA+IC1leGNl cHQ6DQo+ID4gPiAtICAgIHBhc3MNCj4gPiA+ICsgICAgICAgIHBhc3MNCj4gPiA+ICsNCj4gPiA+ DQo+ID4gPiAgZGVmIF91bml4ZGxsX2dldG5vZGUoKToNCj4gPiA+ICAgICAgIiIiR2V0IHRoZSBo YXJkd2FyZSBhZGRyZXNzIG9uIFVuaXggdXNpbmcgY3R5cGVzLiIiIg0KPiA+ID4gQEAgLTU2Myw2 ICs1NjcsOCBAQCBkZWYgZ2V0bm9kZSgpOg0KPiA+ID4gICAgICBpbXBvcnQgc3lzDQo+ID4gPiAg ICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOg0KPiA+ID4gICAgICAgICAgZ2V0dGVycyA9 IF9OT0RFX0dFVFRFUlNfV0lOMzINCj4gPiA+ICsgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ3Vl ZmknOg0KPiA+ID4gKyAgICAgICAgZ2V0dGVycyA9IFtdDQo+ID4gPiAgICAgIGVsc2U6DQo+ID4g PiAgICAgICAgICBnZXR0ZXJzID0gX05PREVfR0VUVEVSU19VTklYDQo+ID4gPg0KPiA+ID4gLS0N Cj4gPiA+IDIuMzIuMC53aW5kb3dzLjINCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4g Pg0KPiA+DQo+ID4NCj4gPg0KPiA+IA0KPiA+DQoNCg==