From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (NAM02-SN1-obe.outbound.protection.outlook.com [40.107.96.77]) by mx.groups.io with SMTP id smtpd.web11.11024.1676390791997146844 for ; Tue, 14 Feb 2023 08:06:32 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=Jb9tDtbd; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.96.77, mailfrom: jeshuas@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CYzpD5kEemIGPvuIQLEV7Fn5UqD5viljymT3c+Nc+fDySX+PQ3tlX6KrBTV30bY0KY99AgwXAfyHVqXL5ypPpk+fTaFYIMJXUd1MIrauB2Y2vLXIZxgJWqdf+lQS+YM6LXnMtGbGA6noGPd7pk1RPNSOawPbdItD7wJCdXXBFCANn2IZ0G5Si5X4Hf8FvRpg8rNaFSC6nGEbrnIiRpwfHHv19xIA1fkMaGeWg1k8Q/5HFKaXu3S3CDg+i+y/1nJNW9kBrkqVNYy0qu55RBGQvQQOznyikGUMAKVw7meNuGTvELr4sg8wPpKgdxlOImSuN8JcpX0v+nIEAsVO5S1NAw== 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=0YkjuprONpcF1pQFDz2Vh0NOpoK6BDdL/OLPsWPJvcM=; b=bg5cnjY1yM81VtjBTOfmPxJ+74/L9MYFRaLl2Qo3+VROmNF9IX1QHONVANAYgnaOxmUHGuYWxYanvzuZsEBA+KgWEkDwGBqCxgMcpXpRBwd+3EHaJznKcNoaOWcSlLr+nT5G4zwpJha6hxbXCnpLeA1qiZbKH1NiDW0zPbm3QgdVoWRcOLMd3lop21N3rSU+zawl23KSqO6Y5FpyVa90xMl3F/DGUBVG6z5Ex9ad5y2GzD7jhxA5vKFSwoBwn6Ae5zYdyUxUk1QqkNEEerKY5F8Sp+xQzA5bCJW7zz5X47+6tCbHnzoTQ3ABGW81ZH/Un/yROIlQ8vC3+0viXaFmQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0YkjuprONpcF1pQFDz2Vh0NOpoK6BDdL/OLPsWPJvcM=; b=Jb9tDtbdy/ZpHtQSL10pK3nWxOfhe0PGM2YsBQNhIyr3LaD2d7Md3qVdZcota6j9V2smUMUEvKc56Y+tagiaWU5UcPX6L+7m1xkMwZOcJBEfquNhRh8fd1lwOCw+cvfehM+oTVuAwMaQ+WSp9GLNMLkeqJ1jS7xR8nqBhdE4CIBSnj/c8zRmJbCQXPN/VscDNsRTNwuAPtN/fTAhVovAbJaBFIHoWfsoTfGyb6n10blJSZJwJGWAKf626RKI+a3iuWVWfK5NLvw3DudpYiEAHCzqOfx8f95D1iHqJ+VgmenKkFHZJaIRAKdGWr1puKXQZdmSW+c+A42ce5LKq3s6cw== Received: from DM6PR12MB3371.namprd12.prod.outlook.com (2603:10b6:5:116::27) by DS7PR12MB8324.namprd12.prod.outlook.com (2603:10b6:8:ec::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.24; Tue, 14 Feb 2023 16:06:29 +0000 Received: from DM6PR12MB3371.namprd12.prod.outlook.com ([fe80::16b4:6123:2a9a:8355]) by DM6PR12MB3371.namprd12.prod.outlook.com ([fe80::16b4:6123:2a9a:8355%7]) with mapi id 15.20.6086.024; Tue, 14 Feb 2023 16:06:29 +0000 From: "Jeshua Smith" To: "Kinney, Michael D" , "Ni, Ray" , "devel@edk2.groups.io" , "Demeter, Miki" , "Wang, Jian J" , "Gao, Liming" , "Gao, Zhichao" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg: allow PlatformBootManagerLib to use BootNext Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg: allow PlatformBootManagerLib to use BootNext Thread-Index: AQHZLCyFFUH/0EdIn0Kgv2hFwtSKLq7HAM6AgACredCAAB95wIAFq2fggAAiG5CAASBycA== Date: Tue, 14 Feb 2023 16:06:28 +0000 Message-ID: References: <173BC657AC8EE47A.24231@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR12MB3371:EE_|DS7PR12MB8324:EE_ x-ms-office365-filtering-correlation-id: 8801b0e7-cb0b-4731-57a4-08db0ea56e93 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iiLRCAshg8oP/M0nqKJXWRJmC2QBik9roPMv5okEYtrwiolGfXPOCajlekPlN+l0QkaUt2F8mBR8IVW+FViI/MsR+OQgPKJMf9O57sE6ls498Vf/ew11mQvMnE9OXZDFvCoMAoGzwN6/WP865aHt1gmOx2Hqu9T/h16y9IN4FLoG6S+00xWg/itfyQF2goEBcUnh0+9gc7GXYL5UvY1PCFRHBBAZ3Jyvxfg+QSmDquutDDeW/ohG8qiKVwdikMzSt+G0u3uesxlYNsImlxMijadKf2oHVJo+qF2zCxkU+CMWhuVFAsO5qt0tqcj/eRq0YadfKjZUXAwq9Lpyl5igc2i9kCKz2sZawp9tqLgf3w3NesfnLvBcZiJSi00tMGeovmfMqX6vPdMM4NeNTEVZJhi2Hw+u8aLfU0vFxcBqrUgvo6z7E8Ay5byjNz+6WfkHBHDEpdc084sy4iodVEe+s2m5RdgUcxw4nk9+Nkjgi3X++29dIKeRutJsFnZepfEAXBw2yHxSMeh8dMm0i95gd+KEY00wInIswS3BX3gtnomItoSefEUL13PUJYEDbs5rCDy8Qm3rCcqKWsUMDz+5HK6KG3SxmYtMYM/4zrauCNb3gIxKZkhM9/aVOmk8UANEaK7LgtXekO9eqlqlMqEu3/Ka+YCJ0+2wrNwc/zUWqLGbA8gX0jkDlzTir9MljIxZLo9+MuPr6CAROQdHWrst/g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3371.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(136003)(396003)(376002)(346002)(366004)(451199018)(52536014)(33656002)(41300700001)(6506007)(2906002)(122000001)(9686003)(186003)(53546011)(83380400001)(26005)(316002)(30864003)(19627235002)(110136005)(7696005)(71200400001)(86362001)(8676002)(66476007)(76116006)(66556008)(66946007)(66446008)(64756008)(5660300002)(38100700002)(55016003)(966005)(478600001)(921005)(38070700005)(8936002)(66899018)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SHd6bjQrWXpwTnZVdFFRRDQ3M21EcStseVE0TmhnekNkZ1cxbnVyQU9FQzdq?= =?utf-8?B?ZFlaNlRXT0REckVKbTFra092em1YM05XaG1oMEphaDFFR1BBMUJ3UG4vTlVH?= =?utf-8?B?QjN0LzJITmFrN09QbFpieTk5QWRKaDRDaSthV2JSUEpwU2VTTDkrUEpVWDRZ?= =?utf-8?B?L3NGOGE1cG5VSjNqL3ZsZStOQ1NteWdMM1ZNMEU4NWJranZEKzMvUG92eXV2?= =?utf-8?B?dUtsb3JXLzY3bWQ0MnY0dWNZTlZBMDVtYVBhaVJ1ZElUZ3ZRUk5ic1dhQ2ZJ?= =?utf-8?B?aTJtR0V3b3k1ekZyczV5RktpMWdZMGRZUFZOZ2hnR2xJTUhLK0RsQkdWeDFI?= =?utf-8?B?d3lNOXlCVjVaSTkrblVBai9leWR5UWRmQzRPU0pMTDBoZGswdGcyei9QOGh6?= =?utf-8?B?Rk9qcU5pa2lOa0NUMzN2T2ZieGxkZEhxay9kZVpURGNhbXZrQXQzQ2lURGxN?= =?utf-8?B?Nnl2Qm8xNlpUZllhdkFsbG55VEFHbWUzaUhscFAyTFZTQjFNQmcwNTh4R0Nk?= =?utf-8?B?c2RWWUVSSTJrU0dhWlFOZEpBR2wzSmZ6Z1JMcDErb3I0MlpkNS9Qc1BiaXlw?= =?utf-8?B?QldEUElFay9mcXdiWXBUQWJablRIaGVMaXY2b3JpMUpTa21uOGlWQlN2UWIv?= =?utf-8?B?QnNCWC9xREFJYklhdGt1Yk5QMytIdUtYR3gwNG5ldjRZbndsNm9KVTNyYU9I?= =?utf-8?B?bkxML2tQQ1o3Sy81MWNHVFN2b3BwR3BFNTNqY0UrRkFGTWw3RVROZ2JRSjMw?= =?utf-8?B?cS9oSDNRNnRlSW9sNUtlVmo2NHFzWWgvWDJrMWE2RWI3RjZ4blRpUnZOYTZL?= =?utf-8?B?UHdwVjA3NFhGQlhhSnhNV0dmRmJvK0lYdHVjN0ZZNEpuV2M5VE9YUE1HRWZ2?= =?utf-8?B?VU5uTkpFd0JuMGRrbzAvWkNsRTU0TW5kbjFzd2JVQVhRczNVR2toN1RpOHlD?= =?utf-8?B?Vlk5cG1hTzZOOXVPL2FSVCtqRjQxNlEwR1FOV1dZYkZYTS90Mk93ZkZvQTlL?= =?utf-8?B?TXlOV005Vi8yUWRSdVFLZW81bFFVSmdPV3NzVU9YMzVQWU15M0tVeUhYeXNs?= =?utf-8?B?WE8vM1JuUVR1VFhXbnJCUDdhYU5oZVpEUzc3ZXl2SVh1eHVKa1FYZlJWVHhS?= =?utf-8?B?M1hKcmV2Z1YySk4zcFhKNExHbWxQNUI0c0NhVUNMeFRkUlpDVThldSsyaDZy?= =?utf-8?B?MnVjb3BnTStveVZpekh3REk2cWtjNXJTbWZKTlpBWXJCSFFRbm5MbElzK1FO?= =?utf-8?B?Rk5Nc1YvanFsUUpLNGlJdnNBUitnMnJSYUJ5YXI2TmU4Rk4rWUI0OWlxQ0NB?= =?utf-8?B?VGRSd2o4MnhsRkw2NUY0SWV0TFFVVXY3cVRaSExGT1lVUjFqSWFTN2Y2U3FP?= =?utf-8?B?blFZZiswS0VyZktSemNRZnZzN3BCZVUxd3crSk1hcGM2NForQzlWWE5ncUNE?= =?utf-8?B?VlRWcGlqdXU3NFcySnM5NXlNSkljbStwdnk1aG9uV1UxTUhFSUFYRUliZDUr?= =?utf-8?B?NGFycXJFUFVBYXFvcndDUUFUaDBxYitLSjEvTk91U1BDYklSQjA0RUtScS9M?= =?utf-8?B?LzZxSTZmc3dlT2FFWkxzNFJ5T2Q4L2hjS1Zhc0hkNmQ3b1NIRVByQmxBY3hu?= =?utf-8?B?OTlOQ3B6R20vcDI0dm8vTEF6dEpyRy8wV3RqQlBvcFI3Mm5zVU01QjFsQkt4?= =?utf-8?B?KzJaVUx1VWVNbnkxcWpNR2N4aEphM3RZYjkxZzVQb0lhbllCT0l0enpuQjl5?= =?utf-8?B?UDRBKzQxL2NYMHE2RWlLd0RhVHplVjZrSlVWVUZKUndFYVQwbzJ6SmVpcU5i?= =?utf-8?B?Wm9zYmxOdzJabUNXOSsrVGd4bk1aY1htaDg3RVJweDZVQkZtczVnbHNaNnJF?= =?utf-8?B?YTZFUE1EaXBSVDZzRGdUdWY3UmJBTzBWSzZYeW9CSFFocmdvamNTWEVmVmph?= =?utf-8?B?M0ptelVuYkNqdTZrL0pyS0ErSlRqRXdUVUFmeDJpU1VGbDZzSG1mTGVnWXJo?= =?utf-8?B?Y3dybm8vb2dCYUdOL2U5VnpUTVRWdmNNNzJyem1CcTBXZ3hRL2E4QWtzQ213?= =?utf-8?B?STRtMUpPSmoxbVZQYTNGSjdQb0MzMC9HNFBGdXcrQ3FyWWdNdFFYenIydmt3?= =?utf-8?Q?W3emkeNsIogK45hR8RY74novi?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3371.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8801b0e7-cb0b-4731-57a4-08db0ea56e93 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2023 16:06:29.0287 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dzwjq4OZM+DkvSDGJX5wPZwTZyof8wMOzu19+NETcx/kPnPz992zFGE60u59m0/v9CFmqIPGRN9EWKt+Xls4aA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8324 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciB0aGUgcmVwbHkuDQoNClRoZSBpc3N1ZSAoYW5kIGFzc29jaWF0ZWQgcGF0Y2gp IGlzIGFjdHVhbGx5IGluIEJkc0VudHJ5LmMsIG5vdCBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliLiBU aGUgQmRzRW50cnkuYyBjb2RlIGlzIHByZXZlbnRpbmcgb3VyIG93biBQbGF0Zm9ybUJvb3RNYW5h Z2VyTGliIGltcGxlbWVudGF0aW9uIGZyb20gZG9pbmcgd2hhdCBpdCBuZWVkcyB0byBkby4gV2Ug aGF2ZSBjb3BpZWQgYW5kIG1vZGlmaWVkIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgZm9yIG91ciBw bGF0Zm9ybSBhcyB5b3Ugc3VnZ2VzdCwgYnV0IGJlY2F1c2UgQmRzRW50cnkuYyBpcyBleHBsaWNp dGx5IHRha2luZyBjb250cm9sIG9mIEJvb3ROZXh0IGF3YXkgZnJvbSBpdCwgd2UncmUgdW5hYmxl IHRvIGRvIHNvbWV0aGluZyB3ZSBuZWVkIHRvIGRvIG9uIG91ciBwbGF0Zm9ybSAoaW4gdGhpcyBj YXNlIHJlc3BvbmRpbmcgdG8gQk1DJ3MgcmVxdWVzdCB2aWEgSVBNSSB0byB0ZW1wb3JhcmlseSBt b2RpZnkgdGhlIGJvb3Qgb3JkZXIgb2YgdGhlIHVwY29taW5nIGJvb3QgZGV2aWNlIHNlbGVjdGlv biwgc2ltaWxhciB0byBob3cgdGhlIE9TIHVzZXMgQm9vdE5leHQgdG8gcmVxdWVzdCB0byB0ZW1w b3JhcmlseSBtb2RpZnkgdGhlIGJvb3Qgb3JkZXIgb2YgdGhlIHVwY29taW5nIGJvb3QgZGV2aWNl IHNlbGVjdGlvbikuIE15IHBhdGNoIGlzIGFkZGluZyBhIFBDRCB0byBnaXZlIHRoYXQgY29udHJv bCBiYWNrIHRvIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgaWYgdGhlIHBsYXRmb3JtIG5lZWRzIGl0 LCB3aGlsZSBzdGlsbCBkZWZhdWx0aW5nIHRvIGtlZXBpbmcgdGhlIHJlc3RyaWN0aW9uIGluIHBs YWNlIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24ndCB3YW50IHRvIGFsbG93IHRoZWlyIFBsYXRmb3Jt Qm9vdE1hbmFnZXJMaWIgdG8gYmUgYWJsZSB0byB1c2UgQm9vdE5leHQuIFRvIG1lIGl0IHNlZW1z IGxpa2UgdGhlIEJkc0VudHJ5LmMgY29kZSBpcyBpbnRlbnRpb25hbGx5IHByb2hpYml0aW5nIHNv bWV0aGluZyB1c2VmdWwgd2l0aCBubyBjbGVhciBiZW5lZml0LiBJIHVuZGVyc3RhbmQgdGhhdCBp ZiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIGlzIGFsbG93ZWQgdG8gbW9kaWZ5IEJvb3ROZXh0IGl0 IGNvdWxkIHBvdGVudGlhbGx5IG92ZXJyaWRlIGEgQm9vdE5leHQgdmFsdWUgdGhhdCB0aGUgT1Mg aGFkIHByZXZpb3VzbHkgc2V0LCBidXQgaXQgc2VlbXMgdG8gbWUgdGhhdCBpZiBhIHBsYXRmb3Jt IGlzIGNyZWF0aW5nIHRoZWlyIG93biBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIGFuZCBpcyB3cml0 aW5nIEJvb3ROZXh0IGluIGl0LCB0aGVuIGl0IGlzIHRoZSBwbGF0Zm9ybSdzIHJlc3BvbnNpYmls aXR5IHRvIHRha2UgdGhhdCBzY2VuYXJpbyBpbnRvIGFjY291bnQgYW5kIGhhbmRsZSBpdCBpbiB0 aGUgYmVzdCB3YXkgZm9yIHRoZSBwbGF0Zm9ybS4NCg0KV2UgY291bGQgZm9yayBCZHNFbnRyeS5j IHRvIGFwcGx5IG91ciBwYXRjaCwgYnV0IGl0IHNlZW1zIGxpa2UgdGhlIHdob2xlIHB1cnBvc2Ug b2YgUGxhdGZvcm1Cb290TWFuYWdlckxpYiBpcyB0byBhbGxvdyB0aGUgcGxhdGZvcm0gdG8gZG8g dGhlIGN1c3RvbWl6YXRpb25zIGl0IG5lZWRzIGluIHRoZSBsaWJyYXJ5IGluc3RlYWQgb2YgbmVl ZGluZyB0byBmb3JrIEJkc0VudHJ5LmMuDQoNCkRvZXMgdGhhdCBtYWtlIHNlbnNlPw0KDQotLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPiANClNlbnQ6IE1vbmRheSwgRmVicnVhcnkgMTMsIDIwMjMgMzo0 MyBQTQ0KVG86IEplc2h1YSBTbWl0aCA8amVzaHVhc0BudmlkaWEuY29tPjsgTmksIFJheSA8cmF5 Lm5pQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBEZW1ldGVyLCBNaWtpIDxtaWtp LmRlbWV0ZXJAaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ OyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgR2FvLCBaaGljaGFvIDx6 aGljaGFvLmdhb0BpbnRlbC5jb20+DQpDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1v ZHVsZVBrZzogYWxsb3cgUGxhdGZvcm1Cb290TWFuYWdlckxpYiB0byB1c2UgQm9vdE5leHQNCg0K RXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMN Cg0KDQpIaSBKZXNodWEsDQoNClNvbWUgY29tbWVudHMgb24gdGhlIGludGVycHJldGF0aW9uIG9m ICduZXh0JyBpbiBCb290TmV4dC4NCg0KVGhlIFVFRkkgU3BlY2lmaWNhdGlvbidzIG1haW4gb2Jq ZWN0aXZlIGlzIGFuIGludGVyZmFjZSBiZXR3ZWVuIHRoZSBwbGF0Zm9ybSBmaXJtd2FyZSBhbmQg YW4gb3BlcmF0aW5nIHN5c3RlbS4NCg0KVGhpcyBpcyBhIDItd2F5IGNvbW11bmljYXRpb25zIHBh dGguICBUaGUgZmlybXdhcmUgcGFzc2VzIGNyaXRpY2FsIGluZm9ybWF0aW9uIHRvIHRoZSBPUyBy ZXF1aXJlZCBmb3IgdGhlIE9TIHRvIHRha2Ugb3ZlciBjb250cm9sIG9mIHRoZSBwbGF0Zm9ybSBm cm9tIGZpcm13YXJlIGFuZCBtYW5hZ2UgdGhlIHBsYXRmb3JtIGZyb20gdGhhdCBwb2ludCBmb3J3 YXJkLiAgVGhlIFVFRkkgU3BlY2lmaWNhdGlvbiBhbHNvIHByb3ZpZGVzIGludGVyZmFjZXMgZm9y IHRoZSBPUyB0byBwYXNzIGluZm9ybWF0aW9uIGJhY2sgdG8gdGhlIGZpcm13YXJlLiAgU29tZSBv ZiB0aGVzZSBhcmUgd2hpbGUgdGhlIE9TIGlzIHJ1bm5pbmcgc3VjaCBhcyBVRUZJIFJ1bnRpbWUg U2VydmljZXMgYW5kIEFDUEkgbWV0aG9kcy4gIFNvbWUgb3RoZXIgT1MtPkZXIGNvbW11bmljYXRp b24gbWVjaGFuaXNtcyBhcmUgdGhyb3VnaCB0aGUgc3RhdGUgb2YgVUVGSSBWYXJpYWJsZXMgYW5k IHBhc3NpbmcgVUVGSSBDYXBzdWxlcyBhY3Jvc3MgcmVzZXQvcmVib290Lg0KDQpCb290TmV4dCBp cyBhbiBleGFtcGxlIG9mIGFuIE9TLT5GVyBjb21tdW5pY2F0aW9uIHBhdGggZm9yIHRoZSBPUyB0 byBzZXQgdGhlIEJvb3ROZXh0IHBvbGljeSBmb3IgdGhlIE9TIHRvIHBlcmZvcm0gc29tZSBzcGVj aWZpYyBhY3Rpb24gYnkgcmVxdWVzdGluZyB0aGUgRlcgdG8gcGVyZm9ybSBhIG9uZS10aW1lIGFs dGVybmF0ZSBib290IHBhdGggYWZ0ZXIgdGhlIG5leHQgc3lzdGVtIHJlc2V0L3JlYm9vdC4gIFRo aXMgaXMgdGhlIGludGVuZGVkIHVzZSBvZiBCb290TmV4dCB3aXRoaW4gdGhlIFVFRkkgU3BlY2lm aWNhdGlvbiBjb250ZXh0Lg0KDQpUaGUgdXNlIG9mIEJvb3ROZXh0IHRvIHNlbGVjdCBhbiBhbHRl cm5hdGUgYm9vdCBvcHRpb24gYmV0d2VlbiBkaWZmZXJlbnQgRlcgY29tcG9uZW50cyB3aXRoaW4g dGhlIHBsYXRmb3JtIGZpcm13YXJlIGluIHRoZSBjdXJyZW50IEZXIGJvb3QgaXMgbm90IGRlZmlu ZWQgYnkgdGhlIFVFRkkgU3BlY2lmaWNhdGlvbi4gIEFueSBjb252ZW50aW9ucyBpbiB0aGF0IGFy ZWEgYXJlIHJlYWxseSBhbmQgYXR0cmlidXRlIG9mIHRoZSBmaXJtd2FyZSBkZXNpZ24vaW1wbGVt ZW50YXRpb24uICBJbiBmYWN0LCBmaXJtd2FyZSBoYXMgdG8gYmUgdmVyeSBjYXJlZnVsIGlmIGl0 IG1vZGlmaWVzIHRoZSB2YWx1ZSBvZiBCb290TmV4dCBiZWNhdXNlIHRoZSBjdXJyZW50IHZhbHVl IGNvdWxkIGhhdmUgYmVlbiBzZXQgYnkgdGhlIE9TIGFuZCB0aGUgZmlybXdhcmUgbXVzdCBob25v ciB0aGUgT1MgcmVxdWVzdCBmb3IgQm9vdE5leHQuDQoNClRoZSBvdGhlciBlbGVtZW50IHRvIGJl IGF3YXJlIG9mIGlzIHRoZSBmaXJzdCBib290IHNjZW5hcmlvIHdoZXJlIHRoZSBwbGF0Zm9ybSBm aXJtd2FyZSBpcyBib290aW5nIGZvciB0aGUgdmVyeSBmaXJzdCB0aW1lIGFuZCBubyBVRUZJIHZh cmlhYmxlcyBleGlzdC4gIFRoaXMgaXMgYSBjYXNlIHdoZXJlIHRoZSBkZWZhdWx0IHNldCBvZiBi b290IG9wdGlvbnMgYXJlIGVzdGFibGlzaGVkIGJlZm9yZSBhZGRpdGlvbmFsIG9uZXMgYXJlIHNl dCBieSBPUyBpbnN0YWxsYXRpb24gb3IgYnkgZW5kIHVzZXJzLiAgVGhlIGZpcm13YXJlIGNhbiBz ZXQgQm9vdE9yZGVyIGFuZC9vciBCb290TmV4dCB0byBhbnkgdmFsdWVzIGl0IHdhbnRzIGJlY2F1 c2UgdGhlcmUgaXMgbm8gT1MtPkZXIGNvbW11bmljYXRpb25zIGluIHRoaXMgZmlyc3QgYm9vdCBz Y2VuYXJpby4NCg0KQW5vdGhlciBjYXNlIHRvIGNvbnNpZGVyIGlzIHdoZW4gYSBVRUZJIFBsYXRm b3JtIGlzIHVzZWQgYXMgYW4gYXBwbGlhbmNlIHdoZXJlIHRoZXJlIGFyZSBhIGZpeGVkIHNldCBv ZiBib290IG9wdGlvbnMgdGhhdCBjYW4gbmV2ZXIgYmUgbW9kaWZpZWQsIGFuZCB0aGUgcGxhdGZv cm0gd2lsbCBhbHdheXMgZm9yY2UgdGhlIHNhbWUgb3B0aW9ucyB3aXRoIHRoZSBzYW1lIHByaW9y aXR5IGV2ZXJ5IGJvb3QuDQoNClRoZSBjaGFsbGVuZ2UgZm9yIGVkazIgaXMgdGhhdCB0aGVzZSB2 YXJpb3VzIHVzZXMgY2FzZXMgKGFuZCB0aGVyZSBhcmUgbWFueSBtb3JlKSBhcmUgZGlmZmljdWx0 IHRvIHN1cHBvcnQgaW4gYSBzaW5nbGUgb3Blbi1zb3VyY2UgaW1wbGVtZW50YXRpb24uICBQbGF0 Zm9ybUJvb3RNYW5hZ2VyTGliIGlzIGFuIGltcGxlbWVudGF0aW9uIHRoYXQgdHJpZXMgdG8gY292 ZXIgY29tbW9uIHVzZSBjYXNlcywgYnV0IHRoaXMgbGlicmFyeSBpcyBpbnRlbmRlZCB0byBiZSBj b3BpZWQgYW5kIG1vZGlmaWVkIGlmIG5lZWRlZCBpZiBhIHBsYXRmb3JtIHJlcXVpcmVzIGJlaGF2 aW9yIHRoYXQgaXMgbm90IGNvdmVyZWQgYnkgdGhlIGNvbW1vbiB1c2UgY2FzZXMuDQoNCk1pa2UN Cg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEplc2h1YSBTbWl0aCA8 amVzaHVhc0BudmlkaWEuY29tPg0KPiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5IDEzLCAyMDIzIDI6 MTIgUE0NCj4gVG86IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwg RCANCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87 IERlbWV0ZXIsIE1pa2kgDQo+IDxtaWtpLmRlbWV0ZXJAaW50ZWwuY29tPjsgV2FuZywgSmlhbiBK IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBHYW8sIA0KPiBMaW1pbmcgPGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbj47IEdhbywgWmhpY2hhbyANCj4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4g U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZzogYWxsb3cgDQo+ IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdG8gdXNlIEJvb3ROZXh0DQo+DQo+IFRMO0RSIC0gVGhl IHNwZWMgaW5kaWNhdGVzIEJvb3ROZXh0IGFuZCBCb290T3JkZXIgYXJlIHRvIGJlIHByb2Nlc3Nl ZCANCj4gdG9nZXRoZXIgYXQgdGhlIHBvaW50IGluIHRpbWUgd2hlcmUgdGhlIGNob2ljZSBhYm91 dCBib290IGRldmljZSBpcyANCj4gYmVpbmcgbWFkZS4gVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRp b24gYWxsb3dzIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgDQo+IHRvIGZyZWVseSBjb250cm9sIEJv b3RPcmRlciwgYnV0IGV4cGxpY2l0bHkgdGFrZXMgY29udHJvbCBvZiBCb290TmV4dCBhd2F5IGZy b20gUGxhdGZvcm1Cb290TWFuYWdlckxpYi4gVGhpcyBzZWVtcyBjb3VudGVyIHRvIHRoZSBpbnRl bnQgb2YgdGhlbSBiZWluZyBwcm9jZXNzZWQgYW5kIHVzZWQgdG9nZXRoZXIuDQo+DQo+IERldGFp bHM6DQo+IFRoZSBzcGVjIHNheXMgIlRoZSBCb290TmV4dCB2YXJpYWJsZSBpcyBhIHNpbmdsZSBV SU5UMTYgdGhhdCBkZWZpbmVzIA0KPiB0aGUgQm9vdCMjIyMgb3B0aW9uIHRoYXQgaXMgdG8gYmUg dHJpZWQgZmlyc3Qgb24gdGhlIG5leHQgYm9vdC4gQWZ0ZXIgDQo+IHRoZSBCb290TmV4dCBib290 IG9wdGlvbiBpcyB0cmllZCB0aGUgbm9ybWFsIEJvb3RPcmRlciBsaXN0IGlzIHVzZWQuIiANCj4g YW5kICJUaGUgQm9vdEN1cnJlbnQgdmFyaWFibGUgaXMgYSBzaW5nbGUNCj4gVUlOVDE2IHRoYXQg ZGVmaW5lcyB0aGUgQm9vdCMjIyMgb3B0aW9uIHRoYXQgd2FzIHNlbGVjdGVkIG9uIHRoZSANCj4g Y3VycmVudCBib290LiBUaGUgcGxhdGZvcm0gc2V0cyB0aGlzIHZhcmlhYmxlIGJlZm9yZSBzaWdu YWxpbmcgRUZJX0VWRU5UX0dST1VQX1JFQURZX1RPX0JPT1QuIg0KPg0KPiBJdCBzZWVtcyBsaWtl IHRoZSBzcGVjIGVmZmVjdGl2ZWx5IHNheXMgdGhpcyBwcm9jZXNzIGlzIGZvbGxvd2VkOg0KPiAx LiBTZWxlY3QgYSBkZXZpY2UgZm9yIHRoZSB1cGNvbWluZyBib290LCBwcmVmZXJyaW5nIEJvb3RO ZXh0IGFuZCB0aGVuIA0KPiB0aGUgZGV2aWNlcyBpbiBCb290T3JkZXIncyBvcmRlciAyLiBTZXQg Qm9vdEN1cnJlbnQgdG8gdGhlIHNlbGVjdGVkIA0KPiBkZXZpY2UgMy4gU2lnbmFsIEVGSV9FVkVO VF9HUk9VUF9SRUFEWV9UT19CT09UIDQuIEF0dGVtcHQgdG8gYm9vdCBmcm9tIA0KPiB0aGUgZGV2 aWNlIHNwZWNpZmllZCBieSBCb290Q3VycmVudA0KPg0KPiBVbmZvcnR1bmF0ZWx5LCBpbiBFbmds aXNoICJuZXh0IiBoYXMgYSBuZWJ1bG91cyBtZWFuaW5nLiBJZiBJIHNheSB0dXJuIA0KPiBhdCB0 aGUgIm5leHQiIHN0b3BsaWdodCwgbW9zdCBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IEkgbWVhbiB0 aGUgbGlnaHQgDQo+IEknbSBhcHByb2FjaGluZyByaWdodCBub3cgcmF0aGVyIHRoYW4gbWVhbmlu ZyBza2lwcGluZyAidGhpcyIgb25lIGFuZCANCj4gZ29pbmcgdG8gdGhlIG9uZSBhZnRlci4gQW5k IGlmIEkgc2F5IEknbSBnb2luZyB0byBkbyBzb21ldGhpbmcgIm5leHQiIA0KPiBTYXR1cmRheSwg bW9zdCBwZW9wbGUgY29uc2lkZXIgdGhhdCB0byBtZWFuIHRoZSB1cGNvbWluZyAoYWthICJ0aGlz IikgDQo+IFNhdHVyZGF5LCByYXRoZXIgdGhhbiB0aGUgb25lIGFmdGVyIDcgb3IgbW9yZSBkYXlz IGhhdmUgcGFzc2VkLiANCj4gU2ltaWxhcmx5LCBmb3IgdGhlIFBsYXRmb3JtQm9vdE1hbmFnZXJM aWIgY29kZSB0aGF0IGlzIHJ1bm5pbmcgYmVmb3JlIHRoZSBib290IGRldmljZSBpcyBzZWxlY3Rl ZCAoZWZmZWN0aXZlbHkgU3RlcCAwIGluIHRoZSBsaXN0IEkgd3JvdGUgYWJvdmUpLCBJIHdvdWxk IGV4cGVjdCB0aGUgIm5leHQiIGJvb3QgdG8gYmUgdGhlIHVwY29taW5nIGF0dGVtcHQgdG8gYm9v dCBhIGRldmljZSAoc3RlcCA0KSwgcmF0aGVyIHRoYW4gbWVhbmluZyBza2lwIHRoZSB1cGNvbWlu ZyBib290IGF0dGVtcHQgKHN0ZXAgNCkgYW5kIGFwcGx5IGl0IHRvIHRoZSBzdWJzZXF1ZW50IG9u ZSAoaS5lLiBzb21ldGltZSBhZnRlciBzdGVwIDQgd2hlbiB5b3UncmUgc3RhcnRpbmcgdGhlIHN0 ZXBzIG92ZXIpLg0KPg0KPiBOb3RlOiBUaGUgY3VycmVudCBjb2RlIHdyYXBzIHN0ZXBzIDItNCB1 cCBpbnRvIHRoZSBFZmlCb290TWFuYWdlckJvb3QoJHNlbGVjdGVkX2RldmljZSkgY2FsbC4NCj4N Cj4gVGhlIGN1cnJlbnQgQmRzRW50cnkgaW1wbGVtZW50YXRpb24gbGltaXRzIHRoZSBhYmlsaXR5 IGZvciBjb2RlIHRoYXQgDQo+IHJ1bnMgYmVmb3JlIHN0ZXAgMSB0byBjb250cm9sIHRoZSBib290 IGRldmljZSBzZWxlY3Rpb24gcHJvY2VzcyAoc3RlcCAxKSBpbiB0aGVzZSB3YXlzOg0KPiAtIEl0 IGFsbG93cyBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIHRvIHJlYXJyYW5nZSB0aGUgQm9vdE9yZGVy IGxpc3QgdG8gDQo+IHdoYXRldmVyIGl0IHdhbnRzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgdXBj b21pbmcgYm9vdCBhdHRlbXB0IChzdGVwIA0KPiA0KSwgYnV0IGF0IHRoZSBzYW1lIHRpbWUgdGhl IGltcGxlbWVudGF0aW9uIGlzIGFsc28gc3BlY2lmaWNhbGx5IA0KPiBibG9ja2luZyB0aGF0IHNh bWUgY29kZSBmcm9tIHRlbXBvcmFyaWx5IHNldHRpbmcgYSBCb290TmV4dCB0byBiZSB1c2VkIA0K PiB3aXRoIHRoYXQgcmUtYXJyYW5nZWQgbGlzdC4gSW4gb3RoZXIgd29yZHMsIHRoZSBjaGFuZ2Vz IHRvIHRoZSBub3JtYWwgDQo+IEJvb3RPcmRlciBsaXN0IGFmZmVjdCB0aGUgdXBjb21pbmcgdXNl IG9mIHRoZSBCb290T3JkZXIgbGlzdCAoc3RlcCAxKSwgDQo+IGJ1dCB0aGUgY2hhbmdlcyB0byBC b290TmV4dCBhcmUgYmVpbmcgZGVsYXllZCB1bnRpbCB0aGUgdXNlIGFmdGVyIHRoYXQgdXBjb21p bmcgdXNlIChzdGVwIHNvbWV0aW1lLWluLXRoZS1mdXR1cmUpLiBUaGlzIHNlZW1zIGluY29uc2lz dGVudCBzaW5jZSBJIHdvdWxkIGV4cGVjdCBjaGFuZ2VzIHRoYXQgYXJlIG1hZGUgYXQgdGhlIHNh bWUgdGltZSBieSB0aGUgc2FtZSBjb2RlIHRvIHRoZXNlIHBhaXJlZCB2YXJpYWJsZXMgdG8gYmUg YXBwbGllZCBhdCB0aGUgc2FtZSBwb2ludCBpbiB0aW1lIChpLmUuIHN0ZXAgMSksIG5vdCBzcGxp dCBhY3Jvc3Mgc2VwYXJhdGUgdXNlcyBvZiB0aGUgQm9vdE9yZGVyIGxpc3QuDQo+IC0gSWYgdGhl cmUgaGFwcGVucyB0byBiZSBhbiBleGlzdGluZyAoY2FjaGVkKSBCb290TmV4dCB2YWx1ZSB3aGVu IA0KPiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIGlzIGNhbGxlZCAoc3RlcCAwKSwgdGhlIGNoYW5n ZXMgDQo+IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgbWFrZXMgdG8gQm9vdE9yZGVyIHdpbGwgYmUg aG9ub3JlZCBpbiBzdGVwIDQsIGJ1dCB0aGUgY2hhbmdlcyBpdCBtYWtlcyB0byBCb290TmV4dCB3 aWxsIGJlIHNpbGVudGx5IGRlbGV0ZWQuDQo+DQo+DQo+IEFzIGZvciB0aGUgdHdvIG9wdGlvbnMg UmF5IHN1Z2dlc3RzOg0KPiAtIENoYW5naW5nIEJvb3RPcmRlciBpcyAicGVybWFuZW50Ii4gSXQg c2VlbXMgbGlrZWx5IHRoYXQgQm9vdE5leHQgd2FzIA0KPiBjcmVhdGVkIHNwZWNpZmljYWxseSB0 byBhdm9pZCBuZWVkaW5nIHRvIGNoYW5nZSBCb290T3JkZXIgd2hlbiB5b3UgDQo+IHNpbXBseSBu ZWVkIGEgdGVtcG9yYXJ5IGNoYW5nZS4gSXQncyBub3QgY2xlYXIgdG8gbWUgd2hhdCBwdXJwb3Nl IGlzIHNlcnZlZCBieSBkZWxheWluZyBCb290TmV4dCdzIGVmZmVjdCB0byBhIGJvb3QgYWZ0ZXIg dGhlIHVwY29taW5nIG9uZSBvciBieSBzaWxlbnRseSBkZWxldGluZyBpdCBpbnN0ZWFkIG9mIGhv bm9yaW5nIGl0IHdoZW4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiBtYWtlcyB0aGUgcmVxdWVzdC4N Cj4gLSBDYWxsaW5nIEVmaUJvb3RNYW5hZ2VyQm9vdCgpIGRpcmVjdGx5IChlZmZlY3RpdmVseSBz dGVwcyAyLTQpIGZyb20gDQo+IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgKGVmZmVjdGl2ZWx5IHN0 ZXAgMCkgcmVzdWx0cyBpbiBza2lwcGluZyB0aGUgZm9sbG93aW5nIHN0ZXBzIHRoYXQgQmRzRW50 cnkgZG9lcyBiZXR3ZWVuIFBsYXRmb3JtQm9vdE1hbmFnZXJCZWZvcmVDb25zb2xlKCkgYW5kIHRo ZSBjYWxsIHRvIEVmaUJvb3RNYW5hZ2VyQm9vdCgpLg0KPiBJdCBzZWVtcyB1bmRlc2lyYWJsZSB0 byBza2lwIHRoZW0gb3IgZHVwbGljYXRlIHRoZW0gaW4gUGxhdGZvcm1Cb290TWFuYWdlckxpYjoN Cj4gICAgICAgLSBTdGFydGluZyBIb3RrZXkgU2VydmljZQ0KPiAgICAgICAtIFByb2Nlc3Npbmcg TG9hZCBPcHRpb25zDQo+ICAgICAgIC0gQ29ubmVjdGluZyBDb25zb2xlcw0KPiAgICAgICAtIFBs YXRmb3JtQm9vdE1hbmFnZXJBZnRlckNvbnNvbGUoKQ0KPiAgICAgICAtIEV2YWx1YXRpbmcgUGNk VGVzdEtleVVzZWQNCj4gICAgICAgLSBEdW1waW5nIExvYWRPcHRpb25zDQo+ICAgICAgIC0gTGF1 bmNoaW5nIEJvb3QgTWFuYWdlciBNZW51IGJhc2VkIG9uIE9zSW5kaWNhdGlvbnMNCj4gICAgICAg LSBMYXVuY2hpbmcgUGxhdGZvcm1SZWNvdmVyeSBiYXNlZCBvbiBPc0luZGljYXRpb25zDQo+ICAg ICAgIC0gQ2xlYXJpbmcgT3NJbmRpY2F0aW9ucyBmb3IgdGhlIHR3byBhYm92ZSB1c2VzDQo+ICAg ICAgIC0gUHJvY2Vzc2luZyBob3RrZXlzDQo+DQo+DQo+IEFzIGZvciBNaWtlJ3MgcXVlc3Rpb24s IFllcyBJIHRoaW5rIHRoZSBUUlVFIGJlaGF2aW9yIGlzIHRoZSBjb3JyZWN0IA0KPiBiZWhhdmlv ciBhbmQgSSB3b3VsZCBiZSBoYXBweSB0byBoYXZlIGl0IGJlIHRoYXQgd2F5IGFsd2F5cyB3aXRo b3V0IGEgDQo+IFBDRCAoc2VlIG15IGRpc2N1c3Npb24gYWJvdmUpLCBidXQgc2luY2UgaXQncyBw b3NzaWJsZSB0aGF0IHNvbWVvbmUgDQo+IHNvbWV3aGVyZSB3YXMgcmVseWluZyBvbiB0aGUgZXhp c3RpbmcgYmVoYXZpb3IgSSBkaWRuJ3Qgd2FudCB0byBicmVhayB0aGVtLiBJIGNhbid0IHRoaW5r IG9mIGFueSBhZHZhbnRhZ2UgdGhlIGV4aXN0aW5nIChGQUxTRSkgYmVoYXZpb3IgaGFzLCBidXQg dGhhdCBiZWhhdmlvciBkb2VzIHNlZW0gdG8gYmUgaW50ZW50aW9uYWwgYmFzZWQgb24gUmF5J3Mg cmVzcG9uc2UuDQo+DQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5p LCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSA5LCAy MDIzIDEwOjQyIFBNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyANCj4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IEplc2h1YSBTbWl0aCA8amVzaHVh c0BudmlkaWEuY29tPjsgRGVtZXRlciwgTWlraSANCj4gPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+ OyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEdhbywgDQo+IExpbWluZyA8 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgR2FvLCBaaGljaGFvIA0KPiA8emhpY2hhby5nYW9A aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxl UGtnOiBhbGxvdyANCj4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiB0byB1c2UgQm9vdE5leHQNCj4N Cj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVu dHMNCj4NCj4NCj4gSXQncyB0aGUgaW50ZW50aW9uIHRvIGNhY2hlIEJvb3ROZXh0IHRvIGF2b2lk IEJvb3ROZXh0IGNoYW5nZSBmcm9tIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdGFraW5nIGFmZmVj dCBpbiB0aGlzIGJvb3QuDQo+IFBlciBzcGVjLCBCb290TmV4dCBzZWxlY3RzIHRoZSBib290IG9w dGlvbiBvZiBuZXh0IGJvb3QuDQo+IElmIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgd2FudHMgdG8g Y2hhbmdlIHRoZSBib290IG9wdGlvbiBmb3IgdGhpcyANCj4gYm9vdCwgZWl0aGVyIGl0IGNhbiBj aGFuZ2UgdGhlIEJvb3RPcmRlciwgb3IgaXQgY2FuIHVzZQ0KPiBFZmlCb290TWFuYWdlckJvb3Qo KSBBUEkgdG8gYm9vdCBkaXJlY3RseS4NCj4NCj4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gPiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDEwLCAyMDIzIDExOjUwIEFNDQo+ID4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBqZXNodWFzQG52aWRpYS5jb207IERlbWV0ZXIsIE1p a2kgDQo+ID4gPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwu Y29tPjsgV2FuZywgSmlhbiBKIA0KPiA+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBHYW8sIExp bWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgDQo+ID4gR2FvLCBaaGljaGFvIDx6aGlj aGFvLmdhb0BpbnRlbC5jb20+DQo+ID4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0g TWRlTW9kdWxlUGtnOiBhbGxvdyANCj4gPiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIHRvIHVzZSBC b290TmV4dA0KPiA+DQo+ID4gSGkgSmVzaHVhLA0KPiA+DQo+ID4gSSBwcmVmZXIgdG8gbm90IGFk ZCBtb3JlIFBDRHMgaWYgaXQgY2FuIGJlIGF2b2lkZWQuDQo+ID4NCj4gPiBEbyB5b3UgdGhpbmsg dGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgYSBidWcvZ2FwIGFuZCB0aGF0IHRoZSBwcm9wb3NlZCAN Cj4gPiBuZXcgYmVoYXZpb3Igd2hlbiB0aGUgUENEIGlzIFRSVUUgaXMgdGhlIGNvcnJlY3QgYmVo YXZpb3I/DQo+ID4NCj4gPiBXaGF0IHdvdWxkIGJlIHRoZSBpbXBhY3Qgb2Ygbm90IGFkZGluZyB0 aGUgUENEIGFuZCBqdXN0IGltcGxlbWVudGluZyANCj4gPiB0aGUgbmV3IGJlaGF2aW9yPw0KPiA+ DQo+ID4gTWlrZQ0KPiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9u IEJlaGFsZiBPZg0KPiA+IEplc2h1YSBTbWl0aCB2aWEgZ3JvdXBzLmlvDQo+ID4gPiBTZW50OiBU aHVyc2RheSwgRmVicnVhcnkgOSwgMjAyMyAxMjowMSBQTQ0KPiA+ID4gVG86IERlbWV0ZXIsIE1p a2kgPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+DQo+ID4gPiBDYzogZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPiA+IFN1YmplY3Q6IEZXOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2c6 IGFsbG93DQo+ID4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiB0byB1c2UgQm9vdE5leHQNCj4gPiA+ DQo+ID4gPiBNaWtpLCB0aGlzIHBhdGNoLCBhcyB3ZWxsIGFzIG15IHF1ZXJpZXMgb24gdGhlIG1h aWxpbmcgbGlzdCBhYm91dCANCj4gPiA+IHRoaXMgdG9waWMNCj4gPiBwcmlvciB0byB0aGUgcGF0 Y2gsIGhhc24ndCByZWNlaXZlZCBhbnkgcmVzcG9uc2Ugb24NCj4gPiA+IHRoZSBtYWlsaW5nIGxp c3QuIE9uZSBraW5kIHBlcnNvbiBkaWQgcmVzcG9uZCBwcml2YXRlbHkgd2l0aCBzb21lDQo+ID4g aW5mb3JtYXRpb24gYWJvdXQgbXkgcXVlc3Rpb25zLg0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+IEplc2h1YSBTbWl0aCB2aWEgZ3JvdXBz LmlvDQo+ID4gPiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSAxOSwgMjAyMyAxMDozNiBBTQ0KPiA+ ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogamlhbi5qLndhbmdAaW50ZWwu Y29tOyBnYW9saW1pbmdAYnlvc29mdC5jb20uY247DQo+ID4gemhpY2hhby5nYW9AaW50ZWwuY29t OyByYXkubmlAaW50ZWwuY29tOyBKZXNodWEgU21pdGggDQo+ID4gPGplc2h1YXNAbnZpZGlhLmNv bT4NCj4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZzogYWxs b3cNCj4gPiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIHRvIHVzZSBCb290TmV4dA0KPiA+ID4NCj4g PiA+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1l bnRzDQo+ID4gPg0KPiA+ID4NCj4gPiA+IEN1cnJlbnRseSBCZHNFbnRyeSBjYWNoZXMgQm9vdE5l eHQgYmVmb3JlIGNhbGxpbmcNCj4gPiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIEFQSXMsIHdpdGgg dGhlIHJlc3VsdCB0aGF0Og0KPiA+ID4gLSBJZiBCb290TmV4dCBpcyBhbHJlYWR5IHNldCwgYSBC b290TmV4dCB2YWx1ZSB3cml0dGVuIGJ5IHRoZSBBUElzIA0KPiA+ID4gd2lsbCBiZQ0KPiA+IGln bm9yZWQgYW5kIGRlbGV0ZWQsIGFuZCB0aGUgY3VycmVudCBib290IHdpbGwgdXNlDQo+ID4gPiB0 aGUgY2FjaGVkIEJvb3ROZXh0IHZhbHVlLg0KPiA+ID4gLSBJZiBCb290TmV4dCBpcyBub3QgcHJl c2VudCwgYSBCb290TmV4dCB2YWx1ZSB3cml0dGVuIGJ5IHRoZSBBUElzIA0KPiA+ID4gd2lsbCBo YXZlDQo+ID4gbm8gZWZmZWN0IG9uIHRoZSBjdXJyZW50IGJvb3QsIGJ1dCB3aWxsIGJlIHVzZWQg YnkNCj4gPiA+IHRoZSBuZXh0IGJvb3QuDQo+ID4gPg0KPiA+ID4gVGhpcyBwYXRjaCBhZGRzIFBj ZEFsbG93Qm9vdE5leHRGcm9tUGxhdGZvcm1Cb290TWFuYWdlckxpYiBzbyB0aGF0IA0KPiA+ID4g YQ0KPiA+IHBsYXRmb3JtIGNhbiBlbmFibGUgUGxhdGZvcm1Cb290TWFuYWdlckxpYiBBUEkgY2Fs bHMgdG8gc2V0DQo+ID4gPiBCb290TmV4dCB0byBjb250cm9sIHRoZSBjdXJyZW50IGJvb3QuDQo+ ID4gPiAtIElmIHRoZSBQQ0QgaXMgRkFMU0UgKGRlZmF1bHQpLCB0aGVyZSBpcyBubyBjaGFuZ2Uu DQo+ID4gPiAtIElmIHRoZSBQQ0QgaXMgVFJVRSwgdGhlbiBhIEJvb3ROZXh0IHZhbHVlIHdyaXR0 ZW4gYnkgdGhlDQo+ID4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiBBUElzIHdpbGwgYWZmZWN0IHRo ZSBjdXJyZW50IGJvb3QuDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogSmVzaHVhIFNtaXRo IDxqZXNodWFzQG52aWRpYS5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBNZGVNb2R1bGVQa2cvTWRl TW9kdWxlUGtnLmRlYyAgICAgICAgICAgIHwgIDcgKysrKysNCj4gPiA+ICBNZGVNb2R1bGVQa2cv VW5pdmVyc2FsL0Jkc0R4ZS9CZHNEeGUuaW5mIHwgMjcgKysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0VudHJ5LmMgfCAzNA0KPiA+ID4gKysr KysrKysrKysrKysrKysrLS0tLS0tDQo+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRp b25zKCspLCAyMSBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9k dWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPiBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cu ZGVjIGluZGV4IDk2MDVjNjE3YjcuLjBlNzQxMzE3MTINCj4gPiAxMDA2NDQNCj4gPiA+IC0tLSBh L01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cv TWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gQEAgLTEwOTMsNiArMTA5MywxMyBAQA0KPiA+ID4gICAg IyBAUHJvbXB0IEVuYWJsZSBVRUZJIFN0YWNrIEd1YXJkLg0KPiA+ID4NCj4gPiBnRWZpTWRlTW9k dWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U3RhY2tHdWFyZHxGQUxTRXxCT09MRUFOfDANCj4g PiB4MzAwMDEwNTUNCj4gPiA+DQo+ID4gPiArICAjIyBJbmRpY2F0ZXMgd2hldGhlciBQbGF0Zm9y bUJvb3RNYW5hZ2VyTGliIGNvZGUgY2FuIHNldCANCj4gPiA+ICsgQm9vdE5leHQNCj4gPiBmb3Ig dGhlIGN1cnJlbnQgYm9vdC4NCj4gPiA+ICsgICMgIElmIGVuYWJsZWQsIHNldHRpbmcgQm9vdE5l eHQgaW4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiANCj4gPiA+ICsgY29udHJvbHMgdGhlDQo+ID4g Y3VycmVudCBib290LjxCUj48QlI+DQo+ID4gPiArICAjICAgVFJVRSAgLSBCb290TmV4dCB2YWx1 ZSBmcm9tIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgd2lsbCBhZmZlY3QgdGhlDQo+ID4gY3VycmVu dCBib290LjxCUj4NCj4gPiA+ICsgICMgICBGQUxTRSAtIEJvb3ROZXh0IHZhbHVlIGZyb20gUGxh dGZvcm1Cb290TWFuYWdlckxpYiB3aWxsIGFmZmVjdCB0aGUNCj4gPiBzdWJzZXF1ZW50IGJvb3Qg KG9yIGJlIGlnbm9yZWQgaWYgYWxyZWFkeSBzZXQpLjxCUj4NCj4gPiA+ICsgICMgQFByb21wdCBB bGxvdyBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIHRvIHNldCBCb290TmV4dCBmb3IgdGhlDQo+ID4g Y3VycmVudCBib290Lg0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+IGdFZmlNZGVNb2R1bGVQa2dUb2tl blNwYWNlR3VpZC5QY2RBbGxvd0Jvb3ROZXh0RnJvbVBsYXRmb3JtQm9vdE0NCj4gPiBhbmFnZXIN Cj4gPiA+ICsgTGlifEZBTFNFfEJPT0xFQU58MHgzMDAwMTA1Ng0KPiA+ID4gKw0KPiA+ID4gIFtQ Y2RzRml4ZWRBdEJ1aWxkLCBQY2RzUGF0Y2hhYmxlSW5Nb2R1bGVdDQo+ID4gPiAgICAjIyBEeW5h bWljIHR5cGUgUENEIGNhbiBiZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQY2Qg DQo+ID4gPiBzZXR0aW5nDQo+ID4gYWN0aW9uLg0KPiA+ID4gICAgIyAgUGNkTWF4UGVpUGNkQ2Fs bEJhY2tOdW1iZXJQZXJQY2RFbnRyeSBpbmRpY2F0ZXMgdGhlIG1heGltdW0NCj4gPiBudW1iZXIg b2YgY2FsbGJhY2sgZnVuY3Rpb24gZGlmZiAtLWdpdA0KPiA+ID4gYS9NZGVNb2R1bGVQa2cvVW5p dmVyc2FsL0Jkc0R4ZS9CZHNEeGUuaW5mDQo+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jk c0R4ZS9CZHNEeGUuaW5mDQo+ID4gPiBpbmRleCA1YmFjNjM1ZGVmLi5iN2EzNTYwZjVmIDEwMDY0 NA0KPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUvQmRzRHhlLmluZg0K PiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUvQmRzRHhlLmluZg0KPiA+ ID4gQEAgLTg1LDE5ICs4NSwyMCBAQA0KPiA+ID4gICAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlk LlBjZFVlZmlWYXJpYWJsZURlZmF1bHRMYW5nRGVwcmVjYXRlICAgICMjDQo+ID4gQ09OU1VNRVMN Cj4gPiA+DQo+ID4gPiAgW1BjZF0NCj4gPiA+IC0gIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RVZWZpVmFyaWFibGVEZWZhdWx0TGFuZ0NvZGVzICAgICAgICAgICAgIyMNCj4gPiBDT05TVU1F Uw0KPiA+ID4gLSAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFVlZmlWYXJpYWJsZURlZmF1 bHRMYW5nICAgICAgICAgICAgICAgICAjIw0KPiA+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+ID4g LSAgDQo+ID4gPiBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVWVmaVZhcmlhYmxlRGVmYXVs dFBsYXRmb3JtTGFuZ0NvZGVzDQo+ID4gIyMgQ09OU1VNRVMNCj4gPiA+IC0gIGdFZmlNZGVQa2dU b2tlblNwYWNlR3VpZC5QY2RVZWZpVmFyaWFibGVEZWZhdWx0UGxhdGZvcm1MYW5nICAgICAgICAg IyMNCj4gPiBDT05TVU1FUw0KPiA+ID4gLSAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEhh cmR3YXJlRXJyb3JSZWNvcmRMZXZlbCAgICAgICAgICAgICAgICAjIw0KPiA+IENPTlNVTUVTDQo+ ID4gPiAtICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkUGxhdGZvcm1Cb290VGltZU91dCAg ICAgICAgICAgICAgICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4gPiA+IC0gIGdFZmlNZGVNb2R1 bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RGaXJtd2FyZVZlbmRvciAgICAgICAgICAgICAgICAgICAg IyMNCj4gPiBDT05TVU1FUw0KPiA+ID4gLSAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlk LlBjZEZpcm13YXJlUmV2aXNpb24gICAgICAgICAgICAgICAgICAjIw0KPiA+IENPTlNVTUVTDQo+ ID4gPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ29uSW5Db25uZWN0T25E ZW1hbmQNCj4gPiAjIyBDT05TVU1FUw0KPiA+ID4gLSAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEVycm9yQ29kZVNldFZhcmlhYmxlICAgICAgICAgICAgICAjIw0KPiA+IFNPTUVU SU1FU19DT05TVU1FUw0KPiA+ID4gLSAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFRlc3RLZXlVc2VkICAgICAgICAgICAgICAgICAgICAgICAjIw0KPiA+IENPTlNVTUVTDQo+ID4g PiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ2Fwc3VsZU9uRGlza1N1cHBv cnQgICAgICAgICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4gPiA+IC0gIGdFZmlNZGVNb2R1bGVQ a2dUb2tlblNwYWNlR3VpZC5QY2RQbGF0Zm9ybVJlY292ZXJ5U3VwcG9ydA0KPiA+ICMjIENPTlNV TUVTDQo+ID4gPiArICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVWVmaVZhcmlhYmxlRGVm YXVsdExhbmdDb2Rlcw0KPiA+ICMjIENPTlNVTUVTDQo+ID4gPiArICBnRWZpTWRlUGtnVG9rZW5T cGFjZUd1aWQuUGNkVWVmaVZhcmlhYmxlRGVmYXVsdExhbmcgICAgICAgICAgICAgICAgICAgICAg ICMjDQo+ID4gU09NRVRJTUVTX0NPTlNVTUVTDQo+ID4gPiArICANCj4gPiA+ICsgZ0VmaU1kZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZFVlZmlWYXJpYWJsZURlZmF1bHRQbGF0Zm9ybUxhbmdDb2Rlcw0K PiA+ICMjIENPTlNVTUVTDQo+ID4gPiArICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVWVm aVZhcmlhYmxlRGVmYXVsdFBsYXRmb3JtTGFuZw0KPiA+ICMjIENPTlNVTUVTDQo+ID4gPiArICBn RWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkSGFyZHdhcmVFcnJvclJlY29yZExldmVsDQo+ID4g IyMgQ09OU1VNRVMNCj4gPiA+ICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RQbGF0Zm9y bUJvb3RUaW1lT3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMNCj4gPiBDT05TVU1FUw0K PiA+ID4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZpcm13YXJlVmVuZG9y DQo+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RGaXJtd2FyZVJldmlzaW9uDQo+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ICsgIGdFZmlNZGVN b2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RDb25JbkNvbm5lY3RPbkRlbWFuZA0KPiA+ICMjIENP TlNVTUVTDQo+ID4gPiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRXJyb3JD b2RlU2V0VmFyaWFibGUNCj4gPiAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4gPiA+ICsgIGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RUZXN0S2V5VXNlZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyMNCj4gPiBDT05TVU1FUw0KPiA+ID4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZENhcHN1bGVPbkRpc2tTdXBwb3J0DQo+ID4gIyMgQ09OU1VNRVMNCj4g PiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RQbGF0Zm9ybVJlY292ZXJ5 U3VwcG9ydA0KPiA+ICMjIENPTlNVTUVTDQo+ID4gPiArDQo+ID4gPiArDQo+ID4gZ0VmaU1kZU1v ZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEFsbG93Qm9vdE5leHRGcm9tUGxhdGZvcm1Cb290TQ0K PiA+IGFuYWdlcg0KPiA+ID4gKyBMaWIgIyMgQ09OU1VNRVMNCj4gPiA+DQo+ID4gPiAgW0RlcGV4 XQ0KPiA+ID4gICAgVFJVRQ0KPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvQmRzRHhlL0Jkc0VudHJ5LmMNCj4gPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhl L0Jkc0VudHJ5LmMNCj4gPiA+IGluZGV4IDc2NmRkZTNhYWUuLjY0NTA0MDZjY2UgMTAwNjQ0DQo+ ID4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jDQo+ID4g PiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jDQo+ID4gPiBA QCAtNzg3LDE1ICs3ODcsMTkgQEAgQmRzRW50cnkgKA0KPiA+ID4NCj4gPiA+ICAgIC8vDQo+ID4g PiAgICAvLyBDYWNoZSB0aGUgIkJvb3ROZXh0IiBOViB2YXJpYWJsZSBiZWZvcmUgY2FsbGluZyBh bnkNCj4gPiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIEFQSXMNCj4gPiA+IC0gIC8vIFRoaXMgY291 bGQgYXZvaWQgdGhlICJCb290TmV4dCIgc2V0IGJ5IA0KPiA+ID4gUGxhdGZvcm1Cb290TWFuYWdl ckxpYiBiZQ0KPiA+IGNvbnN1bWVkIGluIHRoaXMgYm9vdC4NCj4gPiA+IC0gIC8vDQo+ID4gPiAt ICBHZXRFZmlHbG9iYWxWYXJpYWJsZTIgKEVGSV9CT09UX05FWFRfVkFSSUFCTEVfTkFNRSwgKFZP SUQNCj4gPiAqKikmQm9vdE5leHQsICZEYXRhU2l6ZSk7DQo+ID4gPiAtICBpZiAoRGF0YVNpemUg IT0gc2l6ZW9mIChVSU5UMTYpKSB7DQo+ID4gPiAtICAgIGlmIChCb290TmV4dCAhPSBOVUxMKSB7 DQo+ID4gPiAtICAgICAgRnJlZVBvb2wgKEJvb3ROZXh0KTsNCj4gPiA+IC0gICAgfQ0KPiA+ID4g KyAgLy8gaWYgdGhlIFBsYXRmb3JtIGlzbid0IGFsbG93ZWQgdG8gb3ZlcnJpZGUgQm9vdE5leHQu DQo+ID4gPiArICAvLyBJZiAiQm9vdE5leHQiIHdhcyBhbHJlYWR5IHNldCwgYSAiQm9vdE5leHQi IHZhbHVlIHNldCBpbiANCj4gPiA+ICsgUGxhdGZvcm1Cb290TWFuYWdlckxpYiBBUElzICAvLyB3 aWxsIGJlIGlnbm9yZWQ7IG90aGVyd2lzZSBpdCANCj4gPiA+ICsgd2lsbCBub3QNCj4gPiB0YWtl IGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBib290Lg0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIGlmICgh UGNkR2V0Qm9vbCAoUGNkQWxsb3dCb290TmV4dEZyb21QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliKSkg ew0KPiA+ID4gKyAgICBHZXRFZmlHbG9iYWxWYXJpYWJsZTIgKEVGSV9CT09UX05FWFRfVkFSSUFC TEVfTkFNRSwgKFZPSUQNCj4gPiAqKikmQm9vdE5leHQsICZEYXRhU2l6ZSk7DQo+ID4gPiArICAg IGlmIChEYXRhU2l6ZSAhPSBzaXplb2YgKFVJTlQxNikpIHsNCj4gPiA+ICsgICAgICBpZiAoQm9v dE5leHQgIT0gTlVMTCkgew0KPiA+ID4gKyAgICAgICAgRnJlZVBvb2wgKEJvb3ROZXh0KTsNCj4g PiA+ICsgICAgICB9DQo+ID4gPg0KPiA+ID4gLSAgICBCb290TmV4dCA9IE5VTEw7DQo+ID4gPiAr ICAgICAgQm9vdE5leHQgPSBOVUxMOw0KPiA+ID4gKyAgICB9DQo+ID4gPiAgICB9DQo+ID4gPg0K PiA+ID4gICAgLy8NCj4gPiA+IEBAIC0xMDQ4LDYgKzEwNTIsMjAgQEAgQmRzRW50cnkgKA0KPiA+ ID4NCj4gPiA+ICAgICAgRWZpQm9vdE1hbmFnZXJIb3RrZXlCb290ICgpOw0KPiA+ID4NCj4gPiA+ ICsgICAgLy8NCj4gPiA+ICsgICAgLy8gSWYgUGxhdGZvcm1Cb290TWFuYWdlckxpYiBBUElzIGFy ZSBhbGxvd2VkIHRvIG92ZXJyaWRlIA0KPiA+ID4gKyBCb290TmV4dCwNCj4gPiByZWFkIGl0IGp1 c3QgYmVmb3JlIHVzZQ0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICBpZiAoUGNkR2V0Qm9vbCAo UGNkQWxsb3dCb290TmV4dEZyb21QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliKSkgew0KPiA+ID4gKyAg ICAgIEdldEVmaUdsb2JhbFZhcmlhYmxlMiAoRUZJX0JPT1RfTkVYVF9WQVJJQUJMRV9OQU1FLCAo Vk9JRA0KPiA+ICoqKSZCb290TmV4dCwgJkRhdGFTaXplKTsNCj4gPiA+ICsgICAgICBpZiAoRGF0 YVNpemUgIT0gc2l6ZW9mIChVSU5UMTYpKSB7DQo+ID4gPiArICAgICAgICBpZiAoQm9vdE5leHQg IT0gTlVMTCkgew0KPiA+ID4gKyAgICAgICAgICBGcmVlUG9vbCAoQm9vdE5leHQpOw0KPiA+ID4g KyAgICAgICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgQm9vdE5leHQgPSBOVUxMOw0KPiA+ ID4gKyAgICAgIH0NCj4gPiA+ICsgICAgfQ0KPiA+ID4gKw0KPiA+ID4gICAgICBpZiAoQm9vdE5l eHQgIT0gTlVMTCkgew0KPiA+ID4gICAgICAgIC8vDQo+ID4gPiAgICAgICAgLy8gRGVsZXRlICJC b290TmV4dCIgTlYgdmFyaWFibGUgYmVmb3JlIHRyYW5zZmVycmluZyANCj4gPiA+IGNvbnRyb2wg dG8gaXQgdG8NCj4gPiBwcmV2ZW50IGxvb3BzLg0KPiA+ID4gLS0NCj4gPiA+IDIuMTcuMQ0KPiA+ ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4g PiANCj4gPiA+DQoNCg==