From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.3681.1649882130615250132 for ; Wed, 13 Apr 2022 13:35:31 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=hQ1HTFVG; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: aaron.frinzell@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649882130; x=1681418130; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=rD6SFskI+Im+GFlXEltgNmk11zdocERpSCTfqIfiypA=; b=hQ1HTFVGDSJTktqggIkUNXPkzzNxZ0AoVVhljatK3u1aTRiLZD2cb3h3 xzLEg4TZh6mB1WOzNHucssi53rImUG7Z6fmoRlXM18E/lAqqznPfjpiuB EZ1uko55pOUfUweT75NbUEgCmrRw/k27Qc3b2Uh01fBVDvGoKHUs4RAeR wtYODRlkv37ZHnmrZOi2Ez4q0uXlIrB/6XtztylyjlfSbMC9UZR5o7sc9 kiWF7bcu/wmTTVJnAAGr3N79Pq92HNGU4hzcltSIxhtOQcPTicHl3uOlt R00XDCkMrbiwfkKfDFWTUb23pzm8v3t7WLLjLZ+cxAy76dLWQc8fOT0NQ w==; X-IronPort-AV: E=McAfee;i="6400,9594,10316"; a="287799022" X-IronPort-AV: E=Sophos;i="5.90,257,1643702400"; d="scan'208";a="287799022" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2022 13:35:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,257,1643702400"; d="scan'208";a="527087827" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga006.jf.intel.com with ESMTP; 13 Apr 2022 13:35:08 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX605.amr.corp.intel.com (10.22.229.18) 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 13:35:08 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) 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 13:35:08 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.105) by edgegateway.intel.com (134.134.137.102) 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 13:35:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dlxi16aEd3LqNgVYxPK++o+we4DEys0Y+wClf/kfO67Hf2GuhDy5FrDv1GCzKq74szbZizlXUFm/gYJsCVEFZ6XeGYteDK7j1QfdM/Qlg3gTMeLkaBrp8MSNq/2UinlpTAhONaH9xK8bPzp6Y5HLlK8/bu4C/oVAjW778eZ08nTrApb6I+/O09J1rSHxmjooVjnmg8qDijnY6bdAQpgzVZwtEkxjY6LlqFJUPxNG/hZdqS0Zciv0mdIGIx3n2fgkZeenPLQHZ4o8UI++jo5SjDQmgJoFRafNpEGtVY39dJquKTs5B/tQVRfVZGhY+nvFFk2M+gFemQ+AoRQyL8PLFw== 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=rD6SFskI+Im+GFlXEltgNmk11zdocERpSCTfqIfiypA=; b=OxM9Y/7mXzqIeF+9Tod+s6KmdDDli6bwsF8kUUnpX2YUlY0006XIz6+gXAsHBN9JrkPYCf74O6GCO4q1ji86l+M8m+9Bm8/8+sF0kdGaz9R4leraOvwD/KieekBRhSsN2we/ZaMtn5SrjysOXgXBTYQoI34WktcMt/EZOjBqeb1HG1fwfPCtGSK5sHXlLiIVNCXFnqasVAIwVHtncTi8X/xObWO3f42yGGZFaKaiYKHxQrpTT3ZBxa/1pGw9QTzd+sg749xtwMm+2XVR9ZetF0W36pmow11yNfvulyoFkr/rNGMel54DwespKmdcq+xcXYNn4ubi7jB7IAGdn9s18w== 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 SN6PR11MB3535.namprd11.prod.outlook.com (2603:10b6:805:ce::21) by CO1PR11MB4772.namprd11.prod.outlook.com (2603:10b6:303:97::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Wed, 13 Apr 2022 20:35:05 +0000 Received: from SN6PR11MB3535.namprd11.prod.outlook.com ([fe80::145d:67b4:8b31:1b3a]) by SN6PR11MB3535.namprd11.prod.outlook.com ([fe80::145d:67b4:8b31:1b3a%7]) with mapi id 15.20.5144.029; Wed, 13 Apr 2022 20:35:05 +0000 From: "Frinzell, Aaron" To: "Kinney, Michael D" , "Jayaprakash, N" , "devel@edk2.groups.io" 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: AQHYS19s/m6Ue0mhfUqIbpVjtOWHSazmL7KwgAAS6OCAAAupgIAIBpQQ Date: Wed, 13 Apr 2022 20:35:04 +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-reaction: no-action dlp-version: 11.6.401.20 dlp-product: dlpe-windows 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: e9aa9a4d-bd9a-49d0-324f-08da1d8d17b3 x-ms-traffictypediagnostic: CO1PR11MB4772: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: 1sKvLGzBeEE3LYpovGqRNakxQz8QSaPZewkGRHDGUnUfM6zat4s9TtaMpKNqsBzSrFQzRcLhCPg/10i3Y1SXBfjf0TG2aH/6CTda10i0lubM3kP6VSMnqZGD+WTfSMivtXzR9ejhw52rNXoV5j6bt7STiLxzRyNYZ2IK8NBDY4vLNhyKBHJw8nsHgOqifc17dWwWIWj8RzmsSLiXQx78UBVxzNVFx1MpYoN5ssQNJPQqM6xPfRzQJfLX4QT4gUjYeZWAoJptTSnF5qWZ4UzFOSwxpqvDO9OPZemXhkBU9KnvrTEGQMM6AlKYj3uMw2uPlWEebycJHG3pye5zablEpX0Tnd37WGgwNgYlpZaZpZRAl2aaMEdeul26I7vzLtLpvGwZ3vaj2jzO7K8VP/dRnlUt6WK2XQLf1ZXmkOM5zWaNiZVejMjPV9PU2j7FhHtEQk2O155dYoJGxfarnNQWuBRJMxfJ9c8wXDgraV+pdizeEFrhS9lTxsH4ev9X/bR+sdo3PFz+BGqteLmS2LIYO/S1Dx/muqhcn4xar2u3gV3AEAaDpCIl5Rvt1rRoSumyYZ9Y+y9obkvOTKrzlwkLrCVoi4QnDu16KODmqYn4EHIMqXbgt2BvbjrT+Bv4pnsLSsaja51xDvPDCu0YxTgYq/J1Vbsk2F9TPoX9Pdt2FWeqKin0v5k/Pne0kqXq4qcebfRZCpu4uf3uD6sbarx0OUNYxHGZD6p+ThAS/IHpJBN63tYVeFfsAbcdDOAVWG1EwLbHAaDTKrGHXaEvFEHfVe5oPwIIHCKHtN6o49xSpzV0uTf6AQr8hg4z5QuTokQK3IMxkJKAUm/7HHhxnPZ41oTWNMP8LPOLpfkWzmg1ZKA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB3535.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2906002)(66476007)(110136005)(316002)(55016003)(7696005)(66556008)(8676002)(53546011)(122000001)(66946007)(76116006)(38070700005)(19627235002)(33656002)(8936002)(64756008)(966005)(38100700002)(82960400001)(66446008)(83380400001)(5660300002)(71200400001)(52536014)(26005)(9686003)(186003)(6506007)(86362001)(508600001)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MjJJa1gzM0prUTBwN2F0Nk1JUzJMUFFRUlhXQW5KenJBNDNEbS9TaTU4WFJ0?= =?utf-8?B?cnZtdUlzaElTZGdhQUdKMnpWb0ZGK2RWZW5obFVyWkNxV0pUV01CSkFLbmV3?= =?utf-8?B?Q1ppY1BzdzJkbmE3dkVvaWFhZjVvZE9yZGdqYmVpbUJ1aDMyV0JjblB4ZWcy?= =?utf-8?B?TFpObHdOR1FMMHZ6bTVqWTZ5UXo3TVUzT2hvYUxYeFR0c1lLNFdQZ1h3aVNt?= =?utf-8?B?NmZGcVNCQ1FZbTM2YlNLOWdQMUxNTlU5UEoweVZWL1FrYS9ibjNjSCtHUnhl?= =?utf-8?B?SFNtaXpxbGM3b1AvVVQyREwzcEJQOEhuZTcxcEw3WG5SWXQxZERYSHpIL2Ny?= =?utf-8?B?cmRUaDUxRXBVMUdVL1JzYXB3MnhiZTFacVNDY2FrMHQzd0N0cXRiQ2hISEJL?= =?utf-8?B?N3U2K2tFRFpuS0s0aVIyTWxBZUxNdFhHZXgwY0treFJTcVZzbHBjSVZyVDAw?= =?utf-8?B?ZEoyRDFxYmErVktlYkxYZzdURSswcXZKZFJGTmpEbHJSZ0JwQkdTWXNmS0pH?= =?utf-8?B?MWx1UTJqS25SMytWSGF0UXBoK01QeFdNVjgrZ2VXWEdBVkYyM3NQc0c5N0Fo?= =?utf-8?B?dllwTEEvZ1FBMVQ5TmZjTzJpUk1LYUlXdnpGSEpzbVM2OXpxV3QxbEtaSFhP?= =?utf-8?B?aStBMUViU0l5TW12anlueTlUNkJPRlVrRnE4UitTZnZaMWFKUWw3K3NHTE0v?= =?utf-8?B?MUdQSVE2bWkxM2hsbmtwUEZxYVhhUlRORWpMcU5FcnVJVlYxeTBQamJFSnho?= =?utf-8?B?bkQrNUxadHZvbVJpV25CY3FVNkVINE1CNTltT1NNN2xOdkNkZC9aUUhDM3ZP?= =?utf-8?B?L21PUmJ3eGk2NGVMUmd6dmdQeGFyN3lIajYxVytnU3ZVQUsrdE9JZmtzOG45?= =?utf-8?B?NEJNaTFoaFY2eDZ3L0NTcDhocGFWMGVzZ1lqQ1hrZU1VaGdheURNUVpWbE1t?= =?utf-8?B?RGg1U0Y4WlkzcEVXb3pMWE1hWHQ4VCtZbFU4RDNZblFZekFmRXo0a2lsK0dq?= =?utf-8?B?bFIwT3UvekJTNTcreWcwSmdWSWJJRGp5ZnJCUlZyOGt3dEpQNW9QS1pSOXpl?= =?utf-8?B?Qnp5UkVMWUJkcVJwWW0wVUtDV0NIVHJsRG56YlNESHNrUXNpbWlBRnpnOTB6?= =?utf-8?B?RGtDZmxEUGtKeHVmVWc5dy9RM2thcUc4bHFwUTFNWmVnS2dNUlhlSGd2VHVl?= =?utf-8?B?Yk1xcndrRlBuRFpQUjQxME1JdWsvR1RIRWRqRFRYVjJaQ1ZOdy9SUmNITWFF?= =?utf-8?B?WUFrZUdPMlVMZ1ZEVFphbjNoV3ZCY3VocE51Z0loUGg5cXpUNkkyR09uWnJL?= =?utf-8?B?ODNOUno5My9SeTNWVWtsREhxejI1eTJzNFY1YVhFNHMzVld4ZDR5dGoyRnZ0?= =?utf-8?B?UENaSnk4bWdRV29Va2phMTNmTDFxNk5mUjVOYkI5aXdHaGVVV3BDT1ZxaHpN?= =?utf-8?B?OGZrV2NSbExTVXkyNEpFTTVRMUpjYUpBanN4YTF4T3pRY2RBc0ZaZDNzTHZy?= =?utf-8?B?MXdwdC9JRlV3QmkwOTZUMFZpc2lON2xvZjYrTzBLS054YXhKWDd0am94WGtm?= =?utf-8?B?OFJPa2pMQytFbHp6Y3pDWlc1N2RackVTZjMxdG5yNU5od2doaHordXVEZXc5?= =?utf-8?B?aldMSnY4M0QxcXBUMXVNd24vTkZVU1lMU2Z4SFU5K2xvV2hoNkZpRCtCR1BM?= =?utf-8?B?QkcxU2c3UkhjT3A3ekl5V2t6SWQ4eUJ2eER3Tm1zRVNnczRFbGNSd0xKS25B?= =?utf-8?B?SnAvcXd0T2YwbEpiNnowblB1NUpRNVhiYzRuaHp1WUF4eVFLU0R6T1krM2Nt?= =?utf-8?B?V1V3NFM3WVh3bDlhZjNOL0crdVpZU2dKdjZCcGpmVnMyQnlVSU1hdUZvWm1B?= =?utf-8?B?aHdtSHJaR21qU0xtNDNkWkhRM1hKblgwbkVoSjZYbGdGaTB2bVJrSGlUakJn?= =?utf-8?B?NmtPOXNpbStqZkpNM09DSEZ3Qm5lZnhvVGhiME5hVW43ZlpmZzd1V1pZQWtk?= =?utf-8?B?elNpOG1taFVReFM3ckgrNWRkcFVDdE55TFBmSEdlRFVybENuM3pCdGFCOEEw?= =?utf-8?B?TVF0aDJ5RkQ2MU1hTzVOZUZocGhnVmpuL0pxT2hsdkFaNDJ1R0ZNdGRFZkY2?= =?utf-8?B?ZEhwb0d5WnVlUEI0Q2t2UnNTSU10c0djN3pneU1LbXpKbVJWb24vT1VDdm4z?= =?utf-8?B?OUFpSGZlWGZXUE1BY1dVWWJXTk1mSmdVTXUyY1Zsb21ScFFpajlHaWNVL3Vw?= =?utf-8?B?Y29XY3FmMklEL0hnOVI0b0ZETFYxTWZlb2dzV1NpN2liSUhWK1AxS01JeHNW?= =?utf-8?B?SlZLZXRLU3g1clR6RGNOVVJjRlFOK2llSTloZm0wK0lqZTJZL1FnZz09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3535.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9aa9a4d-bd9a-49d0-324f-08da1d8d17b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2022 20:35:05.0310 (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: zAJMvrpS54J3eisDmi+/tOjOWfjoDTuDyYq9oYodcx11MuNx7l4GabqhTIzhbVL3dhj0KRW+ljI41WG7sEQHbYn5rmCPg0DRG0yc7sjQLx8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4772 Return-Path: aaron.frinzell@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhpcyBpcyBncmVhdCENCg0KVGhhbmtzIEpQIGZvciB0aGUgcGF0Y2guDQoNCg0KTWlrZSwNCg0K CUFueSBFVEEgd2hlbiB0aGlzIHdpbGwgZ2V0IG1lcmdlZD8NCg0KVGhhbmtzIQ0KDQpBYXJvbg0K DQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4gDQpTZW50OiBGcmlkYXksIEFwcmlsIDgsIDIw MjIgMTowMCBQTQ0KVG86IEpheWFwcmFrYXNoLCBOIDxuLmpheWFwcmFrYXNoQGludGVsLmNvbT47 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQpDYzogRnJpbnplbGwsIEFhcm9uIDxhYXJvbi5mcmluemVsbEBpbnRlbC5j b20+DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtlZGsyLWxpYmMgUGF0Y2ggMS8xXSBBcHBQ a2dcQXBwbGljYXRpb25zXFB5dGhvblxQeXRob24tMy42LjhcTGliOiB1dWlkLnB5IG1vZHVsZSBw b3J0IGZvciBVRUZJIGVudmlyb25tZW50DQoNClRoYW5rcyBKUC4NCg0KVGhhdCBtYWtlcyBzZW5z ZS4gIEJ5cGFzcyBhbGwgdGhlIE9TIHNwZWNpZmljIHNlcnZpY2VzIGluIFVFRkkgZW52aXJvbm1l bnQgYW5kIGdlbmVyYXRlIFVVSUQgdXNpbmcgdGltZSBhbmQgcmFuZG9tIG51bWJlci4NCg0KUmV2 aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K DQpNaWtlDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYXlhcHJh a2FzaCwgTiA8bi5qYXlhcHJha2FzaEBpbnRlbC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgQXByaWwg OCwgMjAyMiAxMDoxOSBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEpheWFwcmFrYXNo LCBOIDxuLmpheWFwcmFrYXNoQGludGVsLmNvbT47IA0KPiBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENjOiBGcmluemVsbCwgQWFyb24gPGFhcm9uLmZy aW56ZWxsQGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbZWRrMi1saWJj IFBhdGNoIDEvMV0gDQo+IEFwcFBrZ1xBcHBsaWNhdGlvbnNcUHl0aG9uXFB5dGhvbi0zLjYuOFxM aWI6IHV1aWQucHkgbW9kdWxlIHBvcnQgZm9yIA0KPiBVRUZJIGVudmlyb25tZW50DQo+IA0KPiAr IEFhcm9uDQo+IA0KPiBSZWdhcmRzLA0KPiBKUA0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlv PiBPbiBCZWhhbGYgT2YgDQo+IEpheWFwcmFrYXNoLCBODQo+IFNlbnQ6IDA4IEFwcmlsIDIwMjIg MjI6MTINCj4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IA0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxd IFtlZGsyLWxpYmMgUGF0Y2ggMS8xXSANCj4gQXBwUGtnXEFwcGxpY2F0aW9uc1xQeXRob25cUHl0 aG9uLTMuNi44XExpYjogdXVpZC5weSBtb2R1bGUgcG9ydCBmb3IgDQo+IFVFRkkgZW52aXJvbm1l bnQNCj4gDQo+IFRoZSBVVUlEIGdlbmVyYXRpb24gaXMgZG9uZSB0aHJvdWdoIHRoZSByYW5kb20g bnVtYmVyIGdlbmVyYXRpb24gJiANCj4gdGltZSB1bml4IHRpbWUgc3RhbXAgZmVhdHVyZXMgYXZh aWxhYmxlIHRocm91Z2ggdGhlIGJ1aWx0LWluIHB5dGhvbiBtb2R1bGVzICdyYW5kb20nIGFuZCAn dGltZScgcmVzcGVjdGl2ZWx5Lg0KPiBUaGUgcmFuZG9tIG51bWJlciAmIHRpbWUgKHVuaXggdGlt ZSBzdGFtcCBvciBlcG9jaCkgYmFzZWQgbWV0aG9kIG9mIA0KPiBnZW5lcmF0aW5nIHRoZSBVVUlE IGlzIGFscmVhZHkgdGhlcmUgaW4gdXVpZC5weSBtb2R1bGUsIHdpdGggdGhpcyBwYXRjaCByZXF1 ZXN0IGVuYWJsZWQgdGhpcyBwYXRoIHRvIHRha2UgZWZmZWN0IGZvciBVRUZJIGludm9jYXRpb24g b2YgdGhpcyBtb2R1bGUuDQo+IA0KPiBUaGVyZSBhcmUgc29tZSBPUyBzcGVjaWZpYyB3YXlzIHRv IGdlbmVyYXRlIHRoZSBVVUlEJ3Mgc3VjaCBhcyBieSANCj4gdXNpbmcgdGhlIGxpYnV1aWQgb24g TGludXgga2luZCBvZiBPUywgd2luZGxsLnJwY3J0NCBsaWJyYXJ5IG9uIHdpbmRvd3MuDQo+IFRo ZXNlIHdpbGwgbm90IHdvcmsgZm9yIFVFRkkgYW5kIGhlbmNlIGFkZGVkIGFwcHJvcHJpYXRlIHBs YXRmb3JtIA0KPiBjaGVjayB0byBlbnN1cmUgdGhhdCB0aGlzIHBhdGggaXMgbm90IHRha2VuIGZv ciBVRUZJIGludm9jYXRpb24uDQo+IA0KPiBCZXNpZGVzIHRoaXMgdGhlcmUgYXJlIE1BQyBhZGRy ZXNzIGJhc2VkIGFsZ29yaXRobXMgYXZhaWxhYmxlIGluIHV1aWQucHkgbW9kdWxlLg0KPiBUaGVz ZSBhbGdvcmlzbSBhcmUgYmFzZWQgb24gcmVhZGluZyBNQUMgYWRkcmVzcyB0aHJvdWdoIHZhcmlv dXMgT1MgDQo+IHN1cHBvcnRlZCBtZXRob2RzIHN1Y2ggYXMgaXBjb25maWcgY29tbWFuZCBwcm9j ZXNzaW5nLCBOZXRCSU9TIGNhbGxzIA0KPiBvbiBXaW5kb3dzLCB1c2luZyBuZXRzdGF0IGNvbW1h bmQgaW4gTGludXgsIGxhbnNjYW4gaW4gVW5peCwgZnJvbSBhcnAgLSBhZGRyZXNzIHJlc29sdXRp b24gcHJvdG9jb2wgaW4gTGludXgsIE5ldEJTRCBhbmQgb3RoZXIgZmxhdm91cnMgb2YgTGludXgu DQo+IFRoZXNlIGFyZSBjdXJyZW50bHkgbm90IGVuYWJsZWQgZm9yIFVFRkkgaW52b2NhdGlvbiBv ZiB0aGUgdXVpZCANCj4gbW9kdWxlLiBUaGlzIGhhcyBiZWVuIGRvbmUgdGhyb3VnaCBwbGF0Zm9y bSBjaGVjayBhZGRlZCBhdCBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGUgdXVpZC5weSBtb2R1bGUg Y29kZS4NCj4gDQo+IFJlZ2FyZHMsDQo+IEpQDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4N Cj4gU2VudDogMDggQXByaWwgMjAyMiAyMToxNA0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87 IEpheWFwcmFrYXNoLCBOIDxuLmpheWFwcmFrYXNoQGludGVsLmNvbT47IA0KPiBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRr Mi1kZXZlbF0gW2VkazItbGliYyBQYXRjaCAxLzFdIA0KPiBBcHBQa2dcQXBwbGljYXRpb25zXFB5 dGhvblxQeXRob24tMy42LjhcTGliOiB1dWlkLnB5IG1vZHVsZSBwb3J0IGZvciANCj4gVUVGSSBl bnZpcm9ubWVudA0KPiANCj4gSG93IGlzIGEgVVVJRCBnZW5lcmF0ZWQgaW4gVUVGSSBlbnY/ICBJ cyB0aGVyZSBhIGRlcGVuZGVuY3kgb24gTUFDIGFkZHJlc3Mgb3IgcmFuZG9tIG51bWJlciBnZW5l cmF0b3I/DQo+IA0KPiBDYW4geW91IGFkZCBhIGRlc2NyaXB0aW9uIG9mIHRoZSB0ZWNobmlxdWUg dG8gdGhlIEJaIGFuZCB0aGUgY29tbWl0IG1lc3NhZ2U/DQo+IA0KPiBUaGFua3MsDQo+IA0KPiBN aWtlDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+ID4g SmF5YXByYWthc2gsIE4NCj4gPiBTZW50OiBGcmlkYXksIEFwcmlsIDgsIDIwMjIgNDo1MiBBTQ0K PiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBb ZWRrMi1saWJjIFBhdGNoIDEvMV0NCj4gPiBBcHBQa2dcQXBwbGljYXRpb25zXFB5dGhvblxQeXRo b24tMy42LjhcTGliOiB1dWlkLnB5IG1vZHVsZSBwb3J0IGZvciANCj4gPiBVRUZJIGVudmlyb25t ZW50DQo+ID4NCj4gPiAgUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTM4OTkNCj4gPg0KPiA+ICBUaGlzIGlzIGNvbW1pdCBjb250YWlucyB0aGUgVUVG SSBwb3J0IG9mIHV1aWQucHkgbW9kdWxlLiBNYWRlIA0KPiA+IG5lY2Vzc2FyeSAgY2hhbmdlcyBy ZXF1aXJlZCB0byB1dWlkLnB5IG1vZHVsZSB0byBzdXBwb3J0IFVFRkkgZW52aXJvbm1lbnQuDQo+ ID4gIFBvcnRpbmcgb2YgdGhpcyBtb2R1bGUgdG8gVUVGSSBpcyByZXF1aXJlZCBmb3Igb3BlbiBz b3VyY2UgdG9vbHMgDQo+ID4gc3VjaCBhcyBDaGlwc2VjIHRvIGZ1bmN0aW9uIHByb3Blcmx5Lg0K PiA+DQo+ID4gIENjOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAbnV2aWFpbmMuY29tPg0KPiA+ICBD YzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gIFNp Z25lZC1vZmYtYnk6IEpheWFwcmFrYXNoIE4gPG4uamF5YXByYWthc2hAaW50ZWwuY29tPg0KPiA+ IC0tLQ0KPiA+ICAuLi4vUHl0aG9uL1B5dGhvbi0zLjYuOC9MaWIvdXVpZC5weSAgICAgICAgICAg fCA5NCArKysrKysrKysrLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA1MCBpbnNlcnRp b25zKCspLCA0NCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBw bGljYXRpb25zL1B5dGhvbi9QeXRob24tMy42LjgvTGliL3V1aWQucHkNCj4gPiBiL0FwcFBrZy9B cHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9MaWIvdXVpZC5weQ0KPiA+IGluZGV4IGRi OGIyZWYuLjg0ZWQwYjggMTAwNjQ0DQo+ID4gLS0tIGEvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRo b24vUHl0aG9uLTMuNi44L0xpYi91dWlkLnB5DQo+ID4gKysrIGIvQXBwUGtnL0FwcGxpY2F0aW9u cy9QeXRob24vUHl0aG9uLTMuNi44L0xpYi91dWlkLnB5DQo+ID4gQEAgLTQ3MSw1NyArNDcxLDYx IEBAIGRlZiBfbmV0Ymlvc19nZXRub2RlKCk6DQo+ID4gICAgICAgICAgICAgIGNvbnRpbnVlDQo+ ID4gICAgICAgICAgcmV0dXJuIGludC5mcm9tX2J5dGVzKGJ5dGVzLCAnYmlnJykNCj4gPg0KPiA+ ICsNCj4gPiAgIyBUaGFua3MgdG8gVGhvbWFzIEhlbGxlciBmb3IgY3R5cGVzIGFuZCBmb3IgaGlz IGhlbHAgd2l0aCBpdHMgdXNlIGhlcmUuDQo+ID4NCj4gPiAgIyBJZiBjdHlwZXMgaXMgYXZhaWxh YmxlLCB1c2UgaXQgdG8gZmluZCBzeXN0ZW0gcm91dGluZXMgZm9yIFVVSUQgZ2VuZXJhdGlvbi4N Cj4gPiAgIyBYWFggVGhpcyBtYWtlcyB0aGUgbW9kdWxlIG5vbi10aHJlYWQtc2FmZSENCj4gPiAg X3V1aWRfZ2VuZXJhdGVfdGltZSA9IF9VdWlkQ3JlYXRlID0gTm9uZQ0KPiA+IC10cnk6DQo+ID4g LSAgICBpbXBvcnQgY3R5cGVzLCBjdHlwZXMudXRpbA0KPiA+IC0gICAgaW1wb3J0IHN5cw0KPiA+ IC0NCj4gPiAtICAgICMgVGhlIHV1aWRfZ2VuZXJhdGVfKiByb3V0aW5lcyBhcmUgcHJvdmlkZWQg YnkgbGlidXVpZCBvbiBhdCBsZWFzdA0KPiA+IC0gICAgIyBMaW51eCBhbmQgRnJlZUJTRCwgYW5k IHByb3ZpZGVkIGJ5IGxpYmMgb24gTWFjIE9TIFguDQo+ID4gLSAgICBfbGlibmFtZXMgPSBbJ3V1 aWQnXQ0KPiA+IC0gICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKToNCj4g PiAtICAgICAgICBfbGlibmFtZXMuYXBwZW5kKCdjJykNCj4gPiAtICAgIGZvciBsaWJuYW1lIGlu IF9saWJuYW1lczoNCj4gPiAtICAgICAgICB0cnk6DQo+ID4gLSAgICAgICAgICAgIGxpYiA9IGN0 eXBlcy5DRExMKGN0eXBlcy51dGlsLmZpbmRfbGlicmFyeShsaWJuYW1lKSkNCj4gPiAtICAgICAg ICBleGNlcHQgRXhjZXB0aW9uOg0KPiA+IC0gICAgICAgICAgICBjb250aW51ZQ0KPiA+IC0gICAg ICAgIGlmIGhhc2F0dHIobGliLCAndXVpZF9nZW5lcmF0ZV90aW1lJyk6DQo+ID4gLSAgICAgICAg ICAgIF91dWlkX2dlbmVyYXRlX3RpbWUgPSBsaWIudXVpZF9nZW5lcmF0ZV90aW1lDQo+ID4gLSAg ICAgICAgICAgIGJyZWFrDQo+ID4gLSAgICBkZWwgX2xpYm5hbWVzDQo+ID4gLQ0KPiA+IC0gICAg IyBUaGUgdXVpZF9nZW5lcmF0ZV8qIGZ1bmN0aW9ucyBhcmUgYnJva2VuIG9uIE1hY09TIFggMTAu NSwgYXMgbm90ZWQNCj4gPiAtICAgICMgaW4gaXNzdWUgIzg2MjEgdGhlIGZ1bmN0aW9uIGdlbmVy YXRlcyB0aGUgc2FtZSBzZXF1ZW5jZSBvZiB2YWx1ZXMNCj4gPiAtICAgICMgaW4gdGhlIHBhcmVu dCBwcm9jZXNzIGFuZCBhbGwgY2hpbGRyZW4gY3JlYXRlZCB1c2luZyBmb3JrICh1bmxlc3MNCj4g PiAtICAgICMgdGhvc2UgY2hpbGRyZW4gdXNlIGV4ZWMgYXMgd2VsbCkuDQo+ID4gLSAgICAjDQo+ ID4gLSAgICAjIEFzc3VtZSB0aGF0IHRoZSB1dWlkX2dlbmVyYXRlIGZ1bmN0aW9ucyBhcmUgYnJv a2VuIGZyb20gMTAuNSBvbndhcmQsDQo+ID4gLSAgICAjIHRoZSB0ZXN0IGNhbiBiZSBhZGp1c3Rl ZCB3aGVuIGEgbGF0ZXIgdmVyc2lvbiBpcyBmaXhlZC4NCj4gPiAtICAgIGlmIHN5cy5wbGF0Zm9y bSA9PSAnZGFyd2luJzoNCj4gPiAtICAgICAgICBpZiBpbnQob3MudW5hbWUoKS5yZWxlYXNlLnNw bGl0KCcuJylbMF0pID49IDk6DQo+ID4gLSAgICAgICAgICAgIF91dWlkX2dlbmVyYXRlX3RpbWUg PSBOb25lDQo+ID4gLQ0KPiA+IC0gICAgIyBPbiBXaW5kb3dzIHByaW9yIHRvIDIwMDAsIFV1aWRD cmVhdGUgZ2l2ZXMgYSBVVUlEIGNvbnRhaW5pbmcgdGhlDQo+ID4gLSAgICAjIGhhcmR3YXJlIGFk ZHJlc3MuICBPbiBXaW5kb3dzIDIwMDAgYW5kIGxhdGVyLCBVdWlkQ3JlYXRlIG1ha2VzIGENCj4g PiAtICAgICMgcmFuZG9tIFVVSUQgYW5kIFV1aWRDcmVhdGVTZXF1ZW50aWFsIGdpdmVzIGEgVVVJ RCBjb250YWluaW5nIHRoZQ0KPiA+IC0gICAgIyBoYXJkd2FyZSBhZGRyZXNzLiAgVGhlc2Ugcm91 dGluZXMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBSUEMgcnVudGltZS4NCj4gPiAtICAgICMgTk9URTog IGF0IGxlYXN0IG9uIFRpbSdzIFdpblhQIFBybyBTUDIgZGVza3RvcCBib3gsIHdoaWxlIHRoZSBs YXN0DQo+ID4gLSAgICAjIDYgYnl0ZXMgcmV0dXJuZWQgYnkgVXVpZENyZWF0ZVNlcXVlbnRpYWwg YXJlIGZpeGVkLCB0aGV5IGRvbid0IGFwcGVhcg0KPiA+IC0gICAgIyB0byBiZWFyIGFueSByZWxh dGlvbnNoaXAgdG8gdGhlIE1BQyBhZGRyZXNzIG9mIGFueSBuZXR3b3JrIGRldmljZQ0KPiA+IC0g ICAgIyBvbiB0aGUgYm94Lg0KPiA+ICtpZiBvcy5uYW1lICE9ICdlZGsyJzoNCj4gPiArICAgICMg VGhpcyBjb2RlIGlzIG5vdCBtZWFudCB0byBydW4gb24gVUVGSSBlbnZpcm9ubWVudA0KPiA+ICAg ICAgdHJ5Og0KPiA+IC0gICAgICAgIGxpYiA9IGN0eXBlcy53aW5kbGwucnBjcnQ0DQo+ID4gKyAg ICAgICAgaW1wb3J0IGN0eXBlcywgY3R5cGVzLnV0aWwNCj4gPiArICAgICAgICBpbXBvcnQgc3lz DQo+ID4gKw0KPiA+ICsgICAgICAgICMgVGhlIHV1aWRfZ2VuZXJhdGVfKiByb3V0aW5lcyBhcmUg cHJvdmlkZWQgYnkgbGlidXVpZCBvbiBhdCBsZWFzdA0KPiA+ICsgICAgICAgICMgTGludXggYW5k IEZyZWVCU0QsIGFuZCBwcm92aWRlZCBieSBsaWJjIG9uIE1hYyBPUyBYLg0KPiA+ICsgICAgICAg IF9saWJuYW1lcyA9IFsndXVpZCddDQo+ID4gKyAgICAgICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5z dGFydHN3aXRoKCd3aW4nKToNCj4gPiArICAgICAgICAgICAgX2xpYm5hbWVzLmFwcGVuZCgnYycp DQo+ID4gKyAgICAgICAgZm9yIGxpYm5hbWUgaW4gX2xpYm5hbWVzOg0KPiA+ICsgICAgICAgICAg ICB0cnk6DQo+ID4gKyAgICAgICAgICAgICAgICBsaWIgPSBjdHlwZXMuQ0RMTChjdHlwZXMudXRp bC5maW5kX2xpYnJhcnkobGlibmFtZSkpDQo+ID4gKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRp b246DQo+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiA+ICsgICAgICAgICAgICBpZiBo YXNhdHRyKGxpYiwgJ3V1aWRfZ2VuZXJhdGVfdGltZScpOg0KPiA+ICsgICAgICAgICAgICAgICAg X3V1aWRfZ2VuZXJhdGVfdGltZSA9IGxpYi51dWlkX2dlbmVyYXRlX3RpbWUNCj4gPiArICAgICAg ICAgICAgICAgIGJyZWFrDQo+ID4gKyAgICAgICAgZGVsIF9saWJuYW1lcw0KPiA+ICsNCj4gPiAr ICAgICAgICAjIFRoZSB1dWlkX2dlbmVyYXRlXyogZnVuY3Rpb25zIGFyZSBicm9rZW4gb24gTWFj T1MgWCAxMC41LCBhcyBub3RlZA0KPiA+ICsgICAgICAgICMgaW4gaXNzdWUgIzg2MjEgdGhlIGZ1 bmN0aW9uIGdlbmVyYXRlcyB0aGUgc2FtZSBzZXF1ZW5jZSBvZiB2YWx1ZXMNCj4gPiArICAgICAg ICAjIGluIHRoZSBwYXJlbnQgcHJvY2VzcyBhbmQgYWxsIGNoaWxkcmVuIGNyZWF0ZWQgdXNpbmcg Zm9yayAodW5sZXNzDQo+ID4gKyAgICAgICAgIyB0aG9zZSBjaGlsZHJlbiB1c2UgZXhlYyBhcyB3 ZWxsKS4NCj4gPiArICAgICAgICAjDQo+ID4gKyAgICAgICAgIyBBc3N1bWUgdGhhdCB0aGUgdXVp ZF9nZW5lcmF0ZSBmdW5jdGlvbnMgYXJlIGJyb2tlbiBmcm9tIDEwLjUgb253YXJkLA0KPiA+ICsg ICAgICAgICMgdGhlIHRlc3QgY2FuIGJlIGFkanVzdGVkIHdoZW4gYSBsYXRlciB2ZXJzaW9uIGlz IGZpeGVkLg0KPiA+ICsgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoNCj4gPiAr ICAgICAgICAgICAgaWYgaW50KG9zLnVuYW1lKCkucmVsZWFzZS5zcGxpdCgnLicpWzBdKSA+PSA5 Og0KPiA+ICsgICAgICAgICAgICAgICAgX3V1aWRfZ2VuZXJhdGVfdGltZSA9IE5vbmUNCj4gPiAr DQo+ID4gKyAgICAgICAgIyBPbiBXaW5kb3dzIHByaW9yIHRvIDIwMDAsIFV1aWRDcmVhdGUgZ2l2 ZXMgYSBVVUlEIGNvbnRhaW5pbmcgdGhlDQo+ID4gKyAgICAgICAgIyBoYXJkd2FyZSBhZGRyZXNz LiAgT24gV2luZG93cyAyMDAwIGFuZCBsYXRlciwgVXVpZENyZWF0ZSBtYWtlcyBhDQo+ID4gKyAg ICAgICAgIyByYW5kb20gVVVJRCBhbmQgVXVpZENyZWF0ZVNlcXVlbnRpYWwgZ2l2ZXMgYSBVVUlE IGNvbnRhaW5pbmcgdGhlDQo+ID4gKyAgICAgICAgIyBoYXJkd2FyZSBhZGRyZXNzLiAgVGhlc2Ug cm91dGluZXMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBSUEMgcnVudGltZS4NCj4gPiArICAgICAgICAj IE5PVEU6ICBhdCBsZWFzdCBvbiBUaW0ncyBXaW5YUCBQcm8gU1AyIGRlc2t0b3AgYm94LCB3aGls ZSB0aGUgbGFzdA0KPiA+ICsgICAgICAgICMgNiBieXRlcyByZXR1cm5lZCBieSBVdWlkQ3JlYXRl U2VxdWVudGlhbCBhcmUgZml4ZWQsIHRoZXkgZG9uJ3QgYXBwZWFyDQo+ID4gKyAgICAgICAgIyB0 byBiZWFyIGFueSByZWxhdGlvbnNoaXAgdG8gdGhlIE1BQyBhZGRyZXNzIG9mIGFueSBuZXR3b3Jr IGRldmljZQ0KPiA+ICsgICAgICAgICMgb24gdGhlIGJveC4NCj4gPiArICAgICAgICB0cnk6DQo+ ID4gKyAgICAgICAgICAgIGxpYiA9IGN0eXBlcy53aW5kbGwucnBjcnQ0DQo+ID4gKyAgICAgICAg ZXhjZXB0Og0KPiA+ICsgICAgICAgICAgICBsaWIgPSBOb25lDQo+ID4gKyAgICAgICAgX1V1aWRD cmVhdGUgPSBnZXRhdHRyKGxpYiwgJ1V1aWRDcmVhdGVTZXF1ZW50aWFsJywNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihsaWIsICdVdWlkQ3JlYXRlJywgTm9uZSkp DQo+ID4gICAgICBleGNlcHQ6DQo+ID4gLSAgICAgICAgbGliID0gTm9uZQ0KPiA+IC0gICAgX1V1 aWRDcmVhdGUgPSBnZXRhdHRyKGxpYiwgJ1V1aWRDcmVhdGVTZXF1ZW50aWFsJywNCj4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKGxpYiwgJ1V1aWRDcmVhdGUnLCBOb25lKSkN Cj4gPiAtZXhjZXB0Og0KPiA+IC0gICAgcGFzcw0KPiA+ICsgICAgICAgIHBhc3MNCj4gPiArDQo+ ID4NCj4gPiAgZGVmIF91bml4ZGxsX2dldG5vZGUoKToNCj4gPiAgICAgICIiIkdldCB0aGUgaGFy ZHdhcmUgYWRkcmVzcyBvbiBVbml4IHVzaW5nIGN0eXBlcy4iIiINCj4gPiBAQCAtNTYzLDYgKzU2 Nyw4IEBAIGRlZiBnZXRub2RlKCk6DQo+ID4gICAgICBpbXBvcnQgc3lzDQo+ID4gICAgICBpZiBz eXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoNCj4gPiAgICAgICAgICBnZXR0ZXJzID0gX05PREVfR0VU VEVSU19XSU4zMg0KPiA+ICsgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ3VlZmknOg0KPiA+ICsg ICAgICAgIGdldHRlcnMgPSBbXQ0KPiA+ICAgICAgZWxzZToNCj4gPiAgICAgICAgICBnZXR0ZXJz ID0gX05PREVfR0VUVEVSU19VTklYDQo+ID4NCj4gPiAtLQ0KPiA+IDIuMzIuMC53aW5kb3dzLjIN Cj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCj4gDQo+IA0KPiANCg0K