From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web09.3828.1612417475809375567 for ; Wed, 03 Feb 2021 21:44:35 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=e7zXBUVQ; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: ray.ni@intel.com) IronPort-SDR: GLms6qFxyc8DhaPWAA6jZ3zXMBlMy3nM2GMJx8irPYAVjd4Ij6jIJIk+1rpE0lozPmqvyD/ARs cQRdM+lwyTvA== X-IronPort-AV: E=McAfee;i="6000,8403,9884"; a="181249233" X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="181249233" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2021 21:44:34 -0800 IronPort-SDR: ybvKSYUHsluecCrUGPQtHqtyRZg2gqaqnhTN4MgLjCgGt5CqYZmzECdOI5Y3maZn/uAAOSIxzD fWXF52fi6pOA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="481622828" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 03 Feb 2021 21:44:34 -0800 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 3 Feb 2021 21:44:33 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) 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.2106.2; Wed, 3 Feb 2021 21:44:33 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 3 Feb 2021 21:44:33 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 3 Feb 2021 21:44:32 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HLZ+TekHG4qaRg/MmxGFQKByIR+A9NoNtXjVWJCpgkL6vBUW2UFF+PORZlN8BtarNqVhv3E1k/gec8lHZiq8AnQNJXdfuoIy+XClsNHsRwIDobWhAVsv4S6WBbDh10UrY/xNp0CTQqQ7/lWQkg5sYssRP3NnnGehNUFzCJIVzEJkMyvGixm9VtQQsLpChZwUoDfyqZNq5X7f+36pZy7/MKh3yc/C23eJzx9/yS/jaothsUaGGemDtSX/5YlK1lhFj3cQitpvnMUw3d2TgL1iDcMrX9S5Wy6yaaOhVVNb6xfsJUE858DgewyyMphmhb7ExjLYaHLcHSQ6Dbrf8rKodQ== 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=nEje14doi9U3JItjTZlueWyrFdC+YqiJ4R1JHfQ797o=; b=fJSpU1v3JTlrXFptPNjKAqKu6017mqh00uVAzpL5rG+jYczacFAnTbLWvPZFcrGas9TxzVA26I6DtLNdWL6Fvh69qa0kzhgJ9JxEECD3e03i9J7mzoBfbegCbWnUxt4tek1YIsjof1+AA80dgfHj0hjxqhID3ZJZS2AAH2KFHN0OFC5+rnQoW/YdF6bLIabUEQs2W6oHGf0Sl4PZ0/b/9iTH/VOB1TVxNmCCchxG+2OoOngRw1pIxQmvH8kKT8qx0ECch7Q3w0XB1hMaJ7haOXDwR8fj70TxB1QMFal9O8ZQp2jvyQFGe25MtfJwCdACuI0vTnL1Ya3oxIjwLgq77A== 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=nEje14doi9U3JItjTZlueWyrFdC+YqiJ4R1JHfQ797o=; b=e7zXBUVQagXAo5AAvshu40b9pwnPzVY/Ar2y8sYs1CmOdfWXAXTdBDAygHrj9iGyB/bCIooug0cFYC71y2N5RY9rK0gCv8i6hM0+T5vDrgLPvoSWGbcUw1pOlwh2P8VT6o4QC0Q5V1VLfpIg6ATHDifFKc97JuyFVQOuSyN7xp0= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MW3PR11MB4585.namprd11.prod.outlook.com (2603:10b6:303:52::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.20; Thu, 4 Feb 2021 05:44:30 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95%6]) with mapi id 15.20.3805.028; Thu, 4 Feb 2021 05:44:29 +0000 From: "Ni, Ray" To: "Fu, Siyuan" , "Li, Aaron" , "devel@edk2.groups.io" CC: "Chaganty, Rangasai V" Subject: Re: [PATCH v1 1/1] IntelSiliconPkg/ShadowMicrocodePei: Add microcode header verification. Thread-Topic: [PATCH v1 1/1] IntelSiliconPkg/ShadowMicrocodePei: Add microcode header verification. Thread-Index: AQHW+fsM+AI8ypuFtEaGVMIULas9oKpHfHSAgAABIHA= Date: Thu, 4 Feb 2021 05:44:29 +0000 Message-ID: References: <20210203070554.1981-1-aaron.li@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0ccb0a7d-88d3-4e16-f6cb-08d8c8cff0e9 x-ms-traffictypediagnostic: MW3PR11MB4585: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3r+52RBNI8yzT/3TzsnVq6ZNn6BQ+rFZf+huDQI+yojtayWgykFm3Oaf1I6GJDJDNvXpr6FtN6Ec6uvjVtK/UIlTuqaPWQXVZhnVchl1GLits/pTiiJ6goRzRy1cjh4Fk1vO94dSwhb9jj2eigTmAlyOGYuNZAZURsfb4sgAiAcGRy2O4grxAoLxR3BLt5Tgkbkv8Kpl8oCdms0HbR5+vQB4Pacl9CrXAoKIjWFqfkiuI/6ElmePvn97U+/MlEsBvvufkM+n0fY09KrrifBgQT3dSmxeZHCuGpuc1Bc1Y4qDHdEA6YeB01D0f3NW/2Oropjgeq1KjZG+f3W00SJUym8+T1/Qjlz3zjXL9QcLaRTmTGk0w3/oUMQkycJizc/pbohTDkJG+EBfOCs+xgmx9pTzq4scTrIDPYbGEK5OsG6dcWrXjncM3SojdCGh49mQ3/rbpqPVSlNSAFiOZIjNvocQLm6eqizdIhMnoL/kAMbdIx+5OSm177WhLPWo1kEXCV2COm1fWCREBCPgHlCrFSvni+eXyXDovf9uh0/rn8bppw2ONe48ZdrSywVWVIzWlKTSvXdhPaE3smVNdvaERg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(366004)(376002)(136003)(39860400002)(346002)(2906002)(4326008)(6506007)(9686003)(478600001)(33656002)(76116006)(66946007)(86362001)(66476007)(107886003)(8936002)(71200400001)(66446008)(7696005)(8676002)(15650500001)(110136005)(186003)(316002)(55016002)(26005)(5660300002)(52536014)(64756008)(83380400001)(966005)(53546011)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?KzZ3a0liNDNVNW1zRGpqNjZkR25LekExOGdYMVQyeU92VmhySHRybCtNTy9K?= =?gb2312?B?ek94a2lzMWg2aWhHZzVUcHRCdXlINWZWMTE5VGxYd1RPbC9DQmV6QnlacUpq?= =?gb2312?B?T3dWemtYUmdKLzRCSnlUMm56NEZsaWpFWFd6b09aTkVrTmx1R21sY0p5VjRO?= =?gb2312?B?alpobWNoendKYnlWOE4vbmFLL1ovSWU4MnRqRDJhWDhzRmV2bkVjRDRaOTJ3?= =?gb2312?B?UENseFA3WXdwT1pnak9NOHBPdDh0cWxaOElGOCtSeEdYQnRVdVljTzRMZHU5?= =?gb2312?B?Qmtjd2Q0dWwxMWdNUnppSGN6NTFCdVd3bDV6c3hxbi9qTHVOcXVWMGwzMVp2?= =?gb2312?B?d2xvUmVSWXZUdFBQVG9ocWVGTnZKVFgvcE0vKzVRdFJKcWRYanRoazM3UnlG?= =?gb2312?B?WS9JOUd0Q1BlRFVDMmp3MTErTDJiSWFJME9ZNmVkRjh2R25GMEs1TjRVMkNk?= =?gb2312?B?ckdSTE85RTY3M1RFdFFiQVVWb200TkYvY0dOZkJQSHY5dE9HTGlLejNkNmJN?= =?gb2312?B?eWtoa3VCSERaby9KS2xzWmtTMDBuOGRRaWZ1RTNWYWlCL0JFU2hZVldRdFdn?= =?gb2312?B?aWZ0dDVGZEt6bGVOdjJ0MTExVjgzVDM3L2w3K3hqdWQzam5Mc2NSd1QvS3I1?= =?gb2312?B?b3h1Y0VNT2U4SytPRkkzRDJXMmxjbUozZWVZTy9uS2YxV2N1bUNBL1FoS0l4?= =?gb2312?B?akgvOHdqb3d6Q3JYcHc3TktCRjk0YmF0TmNwMjdBMWpONkpvMlZqS3FnQzR5?= =?gb2312?B?Q3dIbWo3clN2RTFhVFNzTjhYU2lKWnBtSk1UQ3JDWDJSOUxSbjVIVlhhcFky?= =?gb2312?B?Q3dHN2JwQzNnd0h3UGVBYmFERjNUR2ttQU85TndHNE0yYWhOTG42eVJBOEt4?= =?gb2312?B?OHIvci9JZW1leHNTWXRVTjBjOEZIUzlMTTJ5bzJ3UXJ5aTVwcld1bGwwNnc4?= =?gb2312?B?aVRZWlZpV0V5OTBmWGFrbmxpMFFNYVFXS20wMTlWdllVcGtqVEdwYW85QlYv?= =?gb2312?B?MGhhTmNRejY3ZldMMmgzN3RTL3JvdHJPNmZQZjlQNHNNNXc0UXFtSHNlQVdw?= =?gb2312?B?aEJEVXRiREYwL0hYc3l1TG9jaTdIUnlOc1lwSVFUUjNQOHZEZEJ3eStRVVNm?= =?gb2312?B?enVOU1VtSTlrSnNHR2hrZUs4Rmczd3Z6Tmh3NTYxRTdmS0xVdEI3eUJRRkxy?= =?gb2312?B?K2tjZ25pOEVtOXVEcitVamlRUTJZNEZxbysxQ21pOUxlcEVqWDFQLzdDanRy?= =?gb2312?B?cHVOK2N1bUdXMi9SYmdKcmE5UFdETVZZTEdHWTBKRWlQVGZLYUQyc3hqY0g0?= =?gb2312?B?a2h0WmRMRk11SWtwbGY0dXEvREVITUZuTFpoYzQycDhDQi8wcnZmZkhneEhV?= =?gb2312?B?RVMwSXRnQmxjdWE3SFBGcjRIYjlJRk1UbzRjcERWM3BBcUNDMEFNRmdhbHZT?= =?gb2312?Q?Ft41z+s1?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ccb0a7d-88d3-4e16-f6cb-08d8c8cff0e9 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2021 05:44:29.6783 (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: xiw7cZ+wgpJwulRJYcfzlIDjCdTZMO5z1ueKwSSy16AVuZ6QLEm6clLlS7QHH3hcdwrPKaL20bNKVmn+TibYHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4585 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBGdSwgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPg0K PiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgNCwgMjAyMSAxOjQwIFBNDQo+IFRvOiBMaSwgQWFy b24gPGFhcm9uLmxpQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBOaSwg UmF5IDxyYXkubmlAaW50ZWwuY29tPjsgQ2hhZ2FudHksIFJhbmdhc2FpIFYNCj4gPHJhbmdhc2Fp LnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIHYxIDEvMV0gSW50 ZWxTaWxpY29uUGtnL1NoYWRvd01pY3JvY29kZVBlaTogQWRkDQo+IG1pY3JvY29kZSBoZWFkZXIg dmVyaWZpY2F0aW9uLg0KPiANCj4gUmV2aWV3ZWQtYnk6IFNpeXVhbiBGdSA8c2l5dWFuLmZ1QGlu dGVsLmNvbT4NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBM aSwgQWFyb24gPGFhcm9uLmxpQGludGVsLmNvbT4NCj4gPiBTZW50OiAyMDIxxOoy1MIzyNUgMTU6 MDYNCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogTmksIFJheSA8cmF5Lm5p QGludGVsLmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBWDQo+ID4gPHJhbmdhc2FpLnYuY2hhZ2Fu dHlAaW50ZWwuY29tPjsgRnUsIFNpeXVhbiA8c2l5dWFuLmZ1QGludGVsLmNvbT4NCj4gPiBTdWJq ZWN0OiBbUEFUQ0ggdjEgMS8xXSBJbnRlbFNpbGljb25Qa2cvU2hhZG93TWljcm9jb2RlUGVpOiBB ZGQNCj4gbWljcm9jb2RlDQo+ID4gaGVhZGVyIHZlcmlmaWNhdGlvbi4NCj4gPg0KPiA+IEJaOiBo dHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTMxOTYNCj4gPg0K PiA+IE1pY3JvY29kZSBoZWFkZXIgc2hvdWxkIGJlIGNoZWNrZWQgYmVmb3JlIGNhbGxpbmcNCj4g PiBJc01pY3JvY29kZVBhdGNoTmVlZExvYWQoKS4gVGhpcyBpcyB0byBtYWtlIHN1cmUgZ2FyYmFn ZSB2YWx1ZSBhZnRlcg0KPiA+IHJlbW92ZSBtaWNyb2NvZGUgZnJvbSBGViB3b3VsZCBub3QgY2F1 c2Ugc3RhY2sgb3ZlcmZsb3cgaW4NCj4gPiBJc01pY3JvY29kZVBhdGNoTmVlZExvYWQoKS4NCj4g Pg0KPiA+IFNpZ25lZC1vZmYtYnk6IEFhcm9uIExpIDxhYXJvbi5saUBpbnRlbC5jb20+DQo+ID4g Q2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiBDYzogUmFuZ2FzYWkgViBDaGFnYW50 eSA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+DQo+ID4gQ2M6IFNpeXVhbiBGdSA8c2l5 dWFuLmZ1QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPg0KPiA+DQo+IFNpbGljb24vSW50ZWwvSW50 ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93TWljcm9jb2RlL1NoYWRvd01pY3JvY29kZVANCj4g ZWkuYw0KPiA+IHwgMzAgKysrKysrKysrKysrKysrKysrKy0NCj4gPiAgMSBmaWxlIGNoYW5nZWQs IDI5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4g Pg0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93TWljcm9j b2RlL1NoYWRvd01pY3JvY29kDQo+IGVQZQ0KPiA+IGkuYw0KPiA+DQo+IGIvU2lsaWNvbi9JbnRl bC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9TaGFkb3dNaWNyb2NvZGUvU2hhZG93TWljcm9jb2QN Cj4gZVBlDQo+ID4gaS5jDQo+ID4gaW5kZXggMTQ5NDM5N2E4ZTM2Li45OGE3YWVkNjk3NTcgMTAw NjQ0DQo+ID4gLS0tDQo+ID4NCj4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL1NoYWRvd01pY3JvY29kZS9TaGFkb3dNaWNyb2NvZA0KPiBlUGUNCj4gPiBpLmMNCj4gPiAr KysNCj4gPg0KPiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93 TWljcm9jb2RlL1NoYWRvd01pY3JvY29kDQo+IGVQZQ0KPiA+IGkuYw0KPiA+IEBAIC00MDIsNiAr NDAyLDcgQEAgU2hhZG93TWljcm9jb2RlICgNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWF4UGF0Y2hOdW1iZXI7DQo+ID4NCj4gPiAgICBDUFVfTUlDUk9DT0RFX0hF QURFUiAgICAgICAgICAgICAgKk1pY3JvY29kZUVudHJ5UG9pbnQ7DQo+ID4NCj4gPiAgICBVSU5U TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGF0Y2hDb3VudDsNCj4gPg0KPiA+ICsgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhU2l6ZTsNCj4gPg0KPiA+ICAgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbFNpemU7DQo+ID4NCj4gPiAgICBV SU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG90YWxMb2FkU2l6ZTsNCj4gPg0KPiA+ DQo+ID4NCj4gPiBAQCAtNDQ2LDcgKzQ0NywzNCBAQCBTaGFkb3dNaWNyb2NvZGUgKA0KPiA+ICAg IGZvciAoSW5kZXggPSAwOyBJbmRleCA8IEVudHJ5TnVtOyBJbmRleCsrKSB7DQo+ID4NCj4gPiAg ICAgIGlmIChGaXRFbnRyeVtJbmRleF0uVHlwZSA9PSBGSVRfVFlQRV8wMV9NSUNST0NPREUpIHsN Cj4gPg0KPiA+ICAgICAgICBNaWNyb2NvZGVFbnRyeVBvaW50ID0gKENQVV9NSUNST0NPREVfSEVB REVSICopIChVSU5UTikNCj4gPiBGaXRFbnRyeVtJbmRleF0uQWRkcmVzczsNCj4gPg0KPiA+IC0g ICAgICBUb3RhbFNpemUgPSAoTWljcm9jb2RlRW50cnlQb2ludC0+RGF0YVNpemUgPT0gMCkgPyAy MDQ4IDoNCj4gPiBNaWNyb2NvZGVFbnRyeVBvaW50LT5Ub3RhbFNpemU7DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAgICAgaWYgKCooVUlOVDMyICopIE1pY3JvY29kZUVudHJ5UG9pbnQgPT0gMHhG RkZGRkZGRikgew0KPiA+DQo+ID4gKyAgICAgICAgLy8NCj4gPg0KPiA+ICsgICAgICAgIC8vIEFu IGVtcHR5IHNsb3QgZm9yIHJlc2VydmVkIG1pY3JvY29kZSB1cGRhdGUsIHNraXAgdG8gY2hlY2sg bmV4dA0KPiBlbnRyeS4NCj4gPg0KPiA+ICsgICAgICAgIC8vDQo+ID4NCj4gPiArICAgICAgICBj b250aW51ZTsNCj4gPg0KPiA+ICsgICAgICB9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAg aWYgKE1pY3JvY29kZUVudHJ5UG9pbnQtPkhlYWRlclZlcnNpb24gIT0gMHgxKSB7DQo+ID4NCj4g PiArICAgICAgICAvLw0KPiA+DQo+ID4gKyAgICAgICAgLy8gTm90IGEgdmFsaWQgbWljcm9jb2Rl IGhlYWRlciwgc2tpcCB0byBjaGVjayBuZXh0IGVudHJ5Lg0KPiA+DQo+ID4gKyAgICAgICAgLy8N Cj4gPg0KPiA+ICsgICAgICAgIGNvbnRpbnVlOw0KPiA+DQo+ID4gKyAgICAgIH0NCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgICBEYXRhU2l6ZSAgPSBNaWNyb2NvZGVFbnRyeVBvaW50LT5EYXRh U2l6ZTsNCj4gPg0KPiA+ICsgICAgICBUb3RhbFNpemUgPSAoRGF0YVNpemUgPT0gMCkgPyAyMDQ4 IDogTWljcm9jb2RlRW50cnlQb2ludC0+VG90YWxTaXplOw0KPiA+DQo+ID4gKyAgICAgIGlmICgg KFVJTlROKU1pY3JvY29kZUVudHJ5UG9pbnQgPiAoTUFYX0FERFJFU1MgLSBUb3RhbFNpemUpIHx8 DQo+ID4NCj4gPiArICAgICAgICAgICAoRGF0YVNpemUgJiAweDMpICE9IDAgfHwNCj4gPg0KPiA+ ICsgICAgICAgICAgIChUb3RhbFNpemUgJiAoU0laRV8xS0IgLSAxKSkgIT0gMCB8fA0KPiA+DQo+ ID4gKyAgICAgICAgICAgVG90YWxTaXplIDwgRGF0YVNpemUNCj4gPg0KPiA+ICsgICAgICAgICkg ew0KPiA+DQo+ID4gKyAgICAgICAgLy8NCj4gPg0KPiA+ICsgICAgICAgIC8vIE5vdCBhIHZhbGlk IG1pY3JvY29kZSBoZWFkZXIsIHNraXAgdG8gY2hlY2sgbmV4dCBlbnRyeS4NCj4gPg0KPiA+ICsg ICAgICAgIC8vDQo+ID4NCj4gPiArICAgICAgICBjb250aW51ZTsNCj4gPg0KPiA+ICsgICAgICB9 DQo+ID4NCj4gPiArDQo+ID4NCj4gPiAgICAgICAgaWYgKElzTWljcm9jb2RlUGF0Y2hOZWVkTG9h ZCAoQ3B1SWRDb3VudCwgTWljcm9jb2RlQ3B1SWQsDQo+ID4gTWljcm9jb2RlRW50cnlQb2ludCkp IHsNCj4gPg0KPiA+ICAgICAgICAgIFBhdGNoSW5mb0J1ZmZlcltQYXRjaENvdW50XS5BZGRyZXNz ICAgICA9IChVSU5UTikNCj4gTWljcm9jb2RlRW50cnlQb2ludDsNCj4gPg0KPiA+ICAgICAgICAg IFBhdGNoSW5mb0J1ZmZlcltQYXRjaENvdW50XS5TaXplICAgICAgICA9IFRvdGFsU2l6ZTsNCj4g Pg0KPiA+IC0tDQo+ID4gMi4yOS4yLndpbmRvd3MuMg0KDQo=