From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web12.16613.1628730734060435191 for ; Wed, 11 Aug 2021 18:12:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=GCUw2gOF; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: min.m.xu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10073"; a="214986369" X-IronPort-AV: E=Sophos;i="5.84,314,1620716400"; d="scan'208";a="214986369" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2021 18:12:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,314,1620716400"; d="scan'208";a="439889986" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga002.jf.intel.com with ESMTP; 11 Aug 2021 18:12:12 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) 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.2242.10; Wed, 11 Aug 2021 18:12:12 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Wed, 11 Aug 2021 18:12:12 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.173) 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.10; Wed, 11 Aug 2021 18:12:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fgvGPrL3IkaBIHAa4JYF2TAc/7qQH5zgMO2B9JfT7Hfz73OgOsD6C3KLYmxYryrXcqC4uDET96hOLYlQgqQ2lgx1FniSTi66ClEAlfdUkkca2kvEt3Odzuk43UlGWIteiuwnS0dF+gyOIYQztIcg/GePVZ0CftFdbaXHR9dOhMtCQbEX6mfLNwab2vJ6pVpAKMgpxP4F6ZWVM0U7YnvXz22JExsMDsxWgpHQsGbggyHzaFD8V7sRlyuT+ty/b7SnQcgkBZEk+qN2uFrg4LjgQZLBeXud3FjZPJ2vW/k7AlSX+c88OfK1onfroGCn11ZQyl7T37xd9ncg8ueVc+8J+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nb1iX1lib1hPV68Giw80lieutIVzTnIwQLDdf6+g50Q=; b=NqICj6qmxZkdHpD0pkHNYBHonhVXN+PZV0oCpYaYtD3UbKHJ842wzqaJf1Awa2ev8ZKRivKSS+PSFBahrN+H9FFh9dzRTztRn1RYhaKgXbwpUL31JOx0kNTRfzxRH8hCs1Pc+QANGIBzT+t8ZCORUBgKWTmiszu/7P1/XQK3IEEJdEra2qoEQ7aRcwnG2zfwC5bE951q4b3Q80oiGlkX7BcuH79oNZEJP6zLAoLtPnAXiijhrsh2Cl/s/n+2A4ADo/t1OIko/BwCdZGxYLABhrKYyEZ6XMlaPoU6JoUXr1gRZvN/bhNFaWNpO4mJqYzfYFeZbCopsYWxE7CW4dHRBA== 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=nb1iX1lib1hPV68Giw80lieutIVzTnIwQLDdf6+g50Q=; b=GCUw2gOFd+a1YB6BC6RFXAVnLzGeqYV4zzw2hp73ciDwVbaaDxM2cza5RColgtRIfacikUqmxg7NBK2RNYR2FCAmkc8eM/nBxpAKRYREukbLijvj+myxiElHGRHQ60gOC2vCBGuOuos7+pfi5LiaYM/Egn6fQPLMW6aYGkHBPao= Received: from PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by PH0PR11MB5096.namprd11.prod.outlook.com (2603:10b6:510:3c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.15; Thu, 12 Aug 2021 01:12:11 +0000 Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::c93:200e:5aeb:e11b]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::c93:200e:5aeb:e11b%3]) with mapi id 15.20.4415.014; Thu, 12 Aug 2021 01:12:11 +0000 From: "Min Xu" To: "devel@edk2.groups.io" , "mhaeuser@posteo.de" CC: "Yao, Jiewen" , "Wang, Jian J" , Vitaly Cheptsov Subject: Re: [edk2-devel] [PATCH v2 2/2] SecurityPkg/SecureBootConfigDxe: Fix certificate lookup algorithm Thread-Topic: [edk2-devel] [PATCH v2 2/2] SecurityPkg/SecureBootConfigDxe: Fix certificate lookup algorithm Thread-Index: AQHXjQRCfkNdXl7LSEC4yeeMOAaz4KtvE9/g Date: Thu, 12 Aug 2021 01:12:11 +0000 Message-ID: References: <7cedc9b336ec5410d833b4ecac53f5b366a636a5.1628501623.git.mhaeuser@posteo.de> In-Reply-To: <7cedc9b336ec5410d833b4ecac53f5b366a636a5.1628501623.git.mhaeuser@posteo.de> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 018fd3dc-95a0-40ed-72eb-08d95d2e368e x-ms-traffictypediagnostic: PH0PR11MB5096: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KH6KQuvJwpeF5Vng7ZqH43J2JXe/GulDZ9/jY4tdz7cZlBKhNJ52Ystof8hhxrekIXA1+WFWYtUUmiC0bKcpQWYft0zvrnV1GhZcdtXRpHJ22MkoXu9izuRaXWR2M1qzd3dn0K/3DPFeYWcJqUv+LqyztmUOENv+eQXzy+Gg29syNXcCHalluy5mDAM3dmfNyS8cHQu+OlP9FFoX8WWLXV5Jbvtw4yK5bCYdhaBq9Jclh1IbqF8va5pPcQz1QdvZhn7PHczyWNqt0eyWhPAb3yq4uPqL6/uxb/OVIawYHaPHy0I+aV32pcP+mXTySJYWLd9bE226AYS8BfcEOOBKaTIbqas9q4Netfznhx3BTmZqYK/7Jl+oT0A5qeBUkvn+XOMRrT/cb2Ks7m1TVzWSSOpIV0b4Rk1jYRHSktrsxcxzvf/IF+lwjgEin++Byx+oGBjl/BRieiSHGxraklJbvudyw5w5CJvZ3ZUthDS1xKktZl+r2OqnXPH/3LH9SgwHEx4fiJKjB6SIXoC/Cae6Lb62gGXrZiehNY6ByWVNfUexby1mOZVs/eez4wnC1E5OBcBuwqflIIgUShib5WTC1OazBU/r3+uYE7q6SfPEN/Gw/nliliLEHRWbKBJohkDb0p7vJkPAFGeXLupTJGTtPICxtr1kSmM1R14kW0Lmi4z7di/V/uKgltAcGmodLOs9tkv6g7EOYIqd3dGcsABQDQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52536014)(8676002)(76116006)(2906002)(122000001)(5660300002)(38100700002)(186003)(55016002)(8936002)(26005)(9686003)(38070700005)(71200400001)(6506007)(4326008)(7696005)(83380400001)(86362001)(54906003)(316002)(110136005)(33656002)(66946007)(508600001)(64756008)(66556008)(66476007)(15650500001)(66446008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L0dEdFovaUxPR1YxS3ZrQXpidHVGUE01QzJWb2hQMFlSQngyVzBmeWRyKzY1?= =?utf-8?B?VGM3Mnc5a3B0MERMdVhsNitZRVBSRkdYYzhSNytGNmtjVzRGMTZTQXdhQmxk?= =?utf-8?B?R1ZJaWNHK3VWSkorWllQYjNYdGRTU1JLRGxCRk50cklJSFNQdCtiNTN4MTJp?= =?utf-8?B?NS9xY2FtSjVrQll2TzlraDRWMTRnY28zYVpIZ0ZmaDJ6dk5jenNxbTNuK1Ir?= =?utf-8?B?ZFMrV0dHckVvVUtaTVd2VjR5ZHlqcXF6VGVxTmlEQ1NFV1FCN0d0Qm93WGhW?= =?utf-8?B?bnBKMWxxYm8zTytjOVpVT1ZNQTZvaFcremxPalVUSzg4Mk9OcmZFc2YyMEUr?= =?utf-8?B?L2FFZ1p6cDQ4ZXh0QU1oc3l4MkZRSkFHdVY3cXpuZ01QdzY4UGpPVEZUSlk0?= =?utf-8?B?T3pSYkRNYmhpdmw5NGZmMTNsaDVuVVpnaUM5bGlhWlNsRHFoSnZNUE5GUnRm?= =?utf-8?B?YUtZV0NPdllmMmpqeFlGM1I0Yi8rT1VKVUVwZ2pWTUVhRUxVZzhvNWNhOTNF?= =?utf-8?B?RmNoVXdUWjFYVlNDQVdudk5DR2JhS2FOWmNrZ2FVQzNNaGdZNmIvZ0tieW1V?= =?utf-8?B?cFZjc3BOclJ3b0phVGQzUUFiMVpWbUltcTI5WW9CbDhYUEg2U01mZnJkWGhO?= =?utf-8?B?cStlZFhDTjhGM0JVQjNJWGd5SUxXVjNQY0F1MHFJVXIweG1CY25xQUVucE02?= =?utf-8?B?YUNHNHJKZ0Rqek5Fd2ZOTENod3A3RFhkK1JHc21nUUVkTXhoN2pESUpQTU50?= =?utf-8?B?UkZ1a3VIVVVmaHNaTWpaZWFHa0R0VU9wckxJOERUZ003OW5reUttN0dJeEg2?= =?utf-8?B?OVVCWnNsUElrWk5wbVl1QytVUWNyUURlS1dTU0N1dFpRSHc5dDAvK3hSM0ZS?= =?utf-8?B?SVRSamJvVkpzVjNaTlRPVmt0ckMyQ2hvN25mRmtyQUFySlhJd1JpNTg2V0tF?= =?utf-8?B?NGRiTmdPRC9FOUVXVWJTY1FOenM5eS95K1l5ek91SUxRVXYrK2JWQzRWanZ5?= =?utf-8?B?dHozeDhiUXo4UVJhUndDVTNKQ1FPUXpSajVyNEVmTE1ObjlrV3ZGdFNEVjZ2?= =?utf-8?B?ZTVsWHdOK2IxOTVpbmpJTkFhSUpLbWVTYWU0cThXaGNQcmozRncvRVluTmM2?= =?utf-8?B?UHBEZVQzMHc0TWZRWnVlZmV2VTczcytJK1ArRFJ6cnRrdjlRWDB6cmVTdTBN?= =?utf-8?B?a1JDTHVkK2JmZndZSkd3S0oyaHlzR0tTK2owT1dKaDVEZXp0Vm5waEtQYVMw?= =?utf-8?B?YWtZLzhmKy9CU2c0azZ3Z3U4QXN5RmhHRjlURm00TmpPODRxYlhnMWl5bmR4?= =?utf-8?B?NlhuU2VoOFp4RndFUmhQdm9KUmN0Y2RiQ3diZW5UbnJpazNHRVJ5QkV3SDF3?= =?utf-8?B?QWVUbW10VVlQblhuVXRuVWdGMzBxeStzTmV2ck1QbGQ3MVBoNEJhaU1aTXhO?= =?utf-8?B?MTJWQnhZaUt0NlV5U0JnZXRTUlFxait2OFJEdnB0cnREb21qdk1LZFl3L2RF?= =?utf-8?B?dnNRczlmcDM4K1Z1NGEvU0MzeG5xL3FvYmhXUS9WdDVQT0g0WHVNZmlJTWVE?= =?utf-8?B?eThJMTNpUU9Dek92WnVCSnhlWUxGQS9GYzRPU3ZrLzRFQTJ3d0s5YVBVQS9L?= =?utf-8?B?VVVRSldNdUNtcnE0Mjk1MjdlYk5tMHpvVWJPRGZKWUZPamcrZGsyanVNL3la?= =?utf-8?B?N1ZCOHRwWFRxVEpHeXp3NmpiTUVEMjNydkN4cEYvVjcvaGpDZVZkLzViV2kw?= =?utf-8?Q?1tmFAvGfgi1TXOeehTOlai6/Q057L/Chk66vGGb?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 018fd3dc-95a0-40ed-72eb-08d95d2e368e X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2021 01:12:11.4083 (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: /yRxoKSUtqwvJIMPx3bTBXp0RfBRGxJ0M8fTGWpvEKjQnC2HLBGdK9oNVJoScWv+/Vh4ijCuO7N8HvNqRV4Zsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5096 Return-Path: min.m.xu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gQXVndXN0IDksIDIwMjEgNTo1MSBQTSwgTWFydmluIEjDpHVzZXIgd3JvdGU6DQo+IFRoZSBj dXJyZW50IGNlcnRpZmljYXRlIGxvb2t1cCBjb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBib3VuZHMg b2YgdGhlDQo+IGF1dGhlbnRpY2F0aW9uIGRhdGEgYmVmb3JlIGFjY2Vzc2luZyBpdC4gQWJvcnQg aWYgdGhlIGhlYWRlciBjYW5ub3QgZml0LCBhbmQNCj4gcHJvY2VlZCB0byB0aGUgbmV4dCBoYXNo aW5nIGFsZ29ydGlobSBpZiB0aGUgT0lEIG9mIHRoZSBjdXJyZW50IG9uZSBleGNlZWRzIHRoZQ0K PiBhdXRoZW50aWNhdGlvbiBkYXRhIGJvdW5kcy4NCj4gDQo+IEFkZGl0aW9uYWxseSBtb3ZlIHRo ZSB0d28tYnl0ZSBlbmNvZGluZyBjaGVjayBvdXQgb2YgdGhlIGxvb3AgYXMgdGhlIGRhdGEgaXMN Cj4gaW52YXJpYW50Lg0KPiANCj4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29t Pg0KPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gQ2M6IE1pbiBY dSA8bWluLm0ueHVAaW50ZWwuY29tPg0KPiBDYzogVml0YWx5IENoZXB0c292IDx2aXQ5Njk2QHBy b3Rvbm1haWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBNYXJ2aW4gSMOkdXNlciA8bWhhZXVzZXJA cG9zdGVvLmRlPg0KPiAtLS0NCj4gDQo+IFNlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRl ZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJbQ0KPiBwbC5jIHwgNDUgKysr KysrKysrKysrLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAx NyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQNCj4gYS9TZWN1cml0eVBrZy9WYXJpYWJs ZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uZmlnSQ0KPiBt cGwuYw0KPiBiL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29u ZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJDQo+IG1wbC5jDQo+IGluZGV4IDY1YTgxODhkNmQwMy4u ZmQ3NjI5ZjYxODYyIDEwMDY0NA0KPiAtLS0NCj4gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhl bnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uZmlnSQ0KPiBtcGwuYw0K PiArKysgYi9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZp Z0R4ZS9TZWN1cmVCb290Q28NCj4gKysrIG5maWdJbXBsLmMNCj4gQEAgLTE5NjksMzAgKzE5Njks NDEgQEAgSGFzaFBlSW1hZ2VCeVR5cGUgKCAgew0KPiANCj4gICAgVUlOVDggICAgICAgICAgICAg ICAgICAgICBJbmRleDsNCj4gDQo+ICAgIFdJTl9DRVJUSUZJQ0FURV9FRklfUEtDUyAgKlBrY3ND ZXJ0RGF0YTsNCj4gDQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgQXV0aERhdGFTaXpl Ow0KPiANCj4gDQo+IA0KPiAgICBQa2NzQ2VydERhdGEgPSAoV0lOX0NFUlRJRklDQVRFX0VGSV9Q S0NTICopIChtSW1hZ2VCYXNlICsgbVNlY0RhdGFEaXItDQo+ID5PZmZzZXQpOw0KPiANCj4gKyAg aWYgKFBrY3NDZXJ0RGF0YS0+SGRyLmR3TGVuZ3RoIDw9IHNpemVvZiAoUGtjc0NlcnREYXRhLT5I ZHIpKSB7DQo+IA0KPiArICAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQo+IA0KPiArICB9DQo+ IA0KPiArDQo+IA0KPiArICBBdXRoRGF0YVNpemUgPSBQa2NzQ2VydERhdGEtPkhkci5kd0xlbmd0 aCAtIHNpemVvZg0KPiArIChQa2NzQ2VydERhdGEtPkhkcik7DQo+IA0KPiArICBpZiAoQXV0aERh dGFTaXplIDwgMzIpIHsNCj4gDQo+ICsgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gDQo+ ICsgIH0NCj4gDQo+ICsgIC8vDQo+IA0KPiArICAvLyBDaGVjayB0aGUgSGFzaCBhbGdvcml0aG0g aW4gUEUvQ09GRiBBdXRoZW50aWNvZGUuDQo+IA0KPiArICAvLyAgICBBY2NvcmRpbmcgdG8gUEtD UyM3IERlZmluaXRpb246DQo+IA0KPiArICAvLyAgICAgICAgU2lnbmVkRGF0YSA6Oj0gU0VRVUVO Q0Ugew0KPiANCj4gKyAgLy8gICAgICAgICAgICB2ZXJzaW9uIFZlcnNpb24sDQo+IA0KPiArICAv LyAgICAgICAgICAgIGRpZ2VzdEFsZ29yaXRobXMgRGlnZXN0QWxnb3JpdGhtSWRlbnRpZmllcnMs DQo+IA0KPiArICAvLyAgICAgICAgICAgIGNvbnRlbnRJbmZvIENvbnRlbnRJbmZvLA0KPiANCj4g KyAgLy8gICAgICAgICAgICAuLi4uIH0NCj4gDQo+ICsgIC8vICAgIFRoZSBEaWdlc3RBbGdvcml0 aG1JZGVudGlmaWVycyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGhhc2gNCj4gYWxnb3Jp dGhtIGluIFBFL0NPRkYgaGFzaGluZw0KPiANCj4gKyAgLy8gICAgVGhpcyBmaWVsZCBoYXMgdGhl IGZpeGVkIG9mZnNldCAoKzMyKSBpbiBmaW5hbCBBdXRoZW50aWNvZGUgQVNOLjEgZGF0YS4NCj4g DQo+ICsgIC8vICAgIEZpeGVkIG9mZnNldCAoKzMyKSBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHR3 byBieXRlcyBvZiBsZW5ndGggZW5jb2RpbmcuDQo+IA0KPiArICAvLw0KPiANCj4gKyAgaWYgKCgq KFBrY3NDZXJ0RGF0YS0+Q2VydERhdGEgKyAxKSAmIFRXT19CWVRFX0VOQ09ERSkgIT0NCj4gKyBU V09fQllURV9FTkNPREUpIHsNCj4gDQo+ICsgICAgLy8NCj4gDQo+ICsgICAgLy8gT25seSBzdXBw b3J0IHR3byBieXRlcyBvZiBMb25nIEZvcm0gb2YgTGVuZ3RoIEVuY29kaW5nLg0KPiANCj4gKyAg ICAvLw0KPiANCj4gKyAgICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KPiANCj4gKyAgfQ0KPiAN Cj4gDQo+IA0KPiAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBIQVNIQUxHX01BWDsgSW5kZXgr Kykgew0KPiANCj4gLSAgICAvLw0KPiANCj4gLSAgICAvLyBDaGVjayB0aGUgSGFzaCBhbGdvcml0 aG0gaW4gUEUvQ09GRiBBdXRoZW50aWNvZGUuDQo+IA0KPiAtICAgIC8vICAgIEFjY29yZGluZyB0 byBQS0NTIzcgRGVmaW5pdGlvbjoNCj4gDQo+IC0gICAgLy8gICAgICAgIFNpZ25lZERhdGEgOjo9 IFNFUVVFTkNFIHsNCj4gDQo+IC0gICAgLy8gICAgICAgICAgICB2ZXJzaW9uIFZlcnNpb24sDQo+ IA0KPiAtICAgIC8vICAgICAgICAgICAgZGlnZXN0QWxnb3JpdGhtcyBEaWdlc3RBbGdvcml0aG1J ZGVudGlmaWVycywNCj4gDQo+IC0gICAgLy8gICAgICAgICAgICBjb250ZW50SW5mbyBDb250ZW50 SW5mbywNCj4gDQo+IC0gICAgLy8gICAgICAgICAgICAuLi4uIH0NCj4gDQo+IC0gICAgLy8gICAg VGhlIERpZ2VzdEFsZ29yaXRobUlkZW50aWZpZXJzIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB0 aGUgaGFzaA0KPiBhbGdvcml0aG0gaW4gUEUvQ09GRiBoYXNoaW5nDQo+IA0KPiAtICAgIC8vICAg IFRoaXMgZmllbGQgaGFzIHRoZSBmaXhlZCBvZmZzZXQgKCszMikgaW4gZmluYWwgQXV0aGVudGlj b2RlIEFTTi4xIGRhdGEuDQo+IA0KPiAtICAgIC8vICAgIEZpeGVkIG9mZnNldCAoKzMyKSBpcyBj YWxjdWxhdGVkIGJhc2VkIG9uIHR3byBieXRlcyBvZiBsZW5ndGggZW5jb2RpbmcuDQo+IA0KPiAt ICAgICAvLw0KPiANCj4gLSAgICBpZiAoKCooUGtjc0NlcnREYXRhLT5DZXJ0RGF0YSArIDEpICYg VFdPX0JZVEVfRU5DT0RFKSAhPQ0KPiBUV09fQllURV9FTkNPREUpIHsNCj4gDQo+IC0gICAgICAv Lw0KPiANCj4gLSAgICAgIC8vIE9ubHkgc3VwcG9ydCB0d28gYnl0ZXMgb2YgTG9uZyBGb3JtIG9m IExlbmd0aCBFbmNvZGluZy4NCj4gDQo+IC0gICAgICAvLw0KPiANCj4gKyAgICBpZiAoQXV0aERh dGFTaXplIC0gMzIgPCBtSGFzaFtJbmRleF0uT2lkTGVuZ3RoKSB7DQo+IA0KPiAgICAgICAgY29u dGludWU7DQo+IA0KPiAgICAgIH0NCj4gDQo+IA0KPiANCj4gLSAgICAvLw0KPiANCj4gICAgICBp ZiAoQ29tcGFyZU1lbSAoUGtjc0NlcnREYXRhLT5DZXJ0RGF0YSArIDMyLCBtSGFzaFtJbmRleF0u T2lkVmFsdWUsDQo+IG1IYXNoW0luZGV4XS5PaWRMZW5ndGgpID09IDApIHsNCj4gDQo+ICAgICAg ICBicmVhazsNCj4gDQo+ICAgICAgfQ0KPiANCj4gLS0NCj4gMi4zMS4xDQoNClJldmlld2VkLWJ5 OiBNaW4gWHUgPG1pbi5tLnh1QGludGVsLmNvbT4NCg0KVGhhbmtzIQ0KWHUsIE1pbg0K