From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web08.80202.1629436071750766558 for ; Thu, 19 Aug 2021 22:07:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=QsOPYnY5; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: hao.a.wu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10081"; a="213589418" X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="213589418" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Aug 2021 22:07:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="595148204" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga001.fm.intel.com with ESMTP; 19 Aug 2021 22:07:50 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 19 Aug 2021 22:07:50 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) 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; Thu, 19 Aug 2021 22:07:49 -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.2242.10 via Frontend Transport; Thu, 19 Aug 2021 22:07:49 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.106) 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.2242.10; Thu, 19 Aug 2021 22:07:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SKFUzqxAbFeFLEfI5uIM45h4I5D1H9SUB39rd86Wjxmi5cbqs3gZzkk86ubintyMztF8Yxao9uuO+VfmRmuU6YQKprPsnEXXwGlFLo/NLBaahT8dsqkqlNX6h2u5CghAjqjyh4mhgN+LULEMNgzFWyA2D5Xmvxg1HJBGygi5ZBcPc7cCWGoaDkWnemt5qNfZvxIBuCVZcI5G8xnEKwmZcnoZyIMOlT0OJwge5dLubwdlQq+kTgKSFv8TN8uDUAZ8QQgbxwAOCd6BPEbjR4mP7FnQLaiRGv468CtbwSzIH5j5+GUiFOlDGl/B1iykr5mWncrgbqjFWQiR/lgfgsZmuw== 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=+dKcpu/puTXmuy+CrVwxhHIUzoLZYexPsyD/0whiIFU=; b=RldhRTCBtkxgfgsj9yK4almSheCTbTNyfhvTDdjXXfcW72tFn6FrhY2GLIhnXdEWEMARtHqfzBAet8gtK456T9d16f2qpu4nvrXkKkVOmda2RCm+0SAOv7hF8RBVaT/kLjKB7sLeweTutOcXrutjSFEpiHdpROpVWPLBZUJ7amHcq8SBIlfaIcWJc9Dv7BC1vA4gumEdXY/bYf1+gmnsu8duoopeKLfJsPxAhXTyf5XuTKvPnH/nMz9JGJrv2BPsSLk/BiACxVV1cZSz6Ealn6W+Vl57nGws2aPJvjrqJDOiq7H27yPFhQJVWW4d1KleUsvmxioRhSErE3nqCJMfQw== 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=+dKcpu/puTXmuy+CrVwxhHIUzoLZYexPsyD/0whiIFU=; b=QsOPYnY54v//e5zHqObbaa/NK+i7QrWzcDA3k7G4GytzGPqqd43voQJWdqNHw2UL6HrJ67Tev+SzWG3dfiLLExUb9r6mNw73ewo2S+5POb7I/ioRsOSvsDTTVPhJPd34n/S9ZDDPXxNIDcW1saHjs44bvN86P9RDtmDGsv2cZUU= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (2603:10b6:408:8c::19) by BN6PR11MB2035.namprd11.prod.outlook.com (2603:10b6:404:3c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Fri, 20 Aug 2021 05:07:47 +0000 Received: from BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::1d8:daf8:84de:1666]) by BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::1d8:daf8:84de:1666%3]) with mapi id 15.20.4436.019; Fri, 20 Aug 2021 05:07:47 +0000 From: "Wu, Hao A" To: Michael Kubacki , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Bi, Dandan" , Liming Gao , "De, Debkumar" , "Han, Harry" , "West, Catharine" , =?utf-8?B?TWFydmluIEjDpHVzZXI=?= Subject: Re: [PATCH v1 1/1] MdeModulePkg/PeiCore: Remove MigrateSecModulesInFv() Thread-Topic: [PATCH v1 1/1] MdeModulePkg/PeiCore: Remove MigrateSecModulesInFv() Thread-Index: AQHXkH4R6inETqrlmEG45CBYxW6ag6t74XiA Date: Fri, 20 Aug 2021 05:07:47 +0000 Message-ID: References: <20210813200132.1778-1-michael.kubacki@microsoft.com> In-Reply-To: <20210813200132.1778-1-michael.kubacki@microsoft.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: microsoft.com; dkim=none (message not signed) header.d=none;microsoft.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 13dd2792-a6dd-4909-064b-08d963987389 x-ms-traffictypediagnostic: BN6PR11MB2035: 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: YfTk2M2uo58T8P33djkGoJqm8DKyk45Nq01D9xG+Zya+BKSVrvLUx3Q+u1GWvs6FC8D7bJgt6e7dqsjf5/kLaTiaF2CmZ7zkwcHVlKxvdoc43iRx0z2OqLDLTh3+8rSak4hLX+Rh4exB0S5fsyKV1nTnztAHNgm1pXWAA0QvYc4S71kAm0zjjjm2W5BCopTTH1tESBEsU0zE7pZ0NC+SRmW+qFcOOCFRVmveriV0PajZEBmbbYM7Oi5dDnWYjA43clx9lvIkHGTbBggxYeVkHX+e4z0BHiTSw0eiK+JIFPjMr5MUEqWgR3Carx7TkQ6j6oqpGKxjpih1zpbNZjFuukzDxFY0m7Ug/5hF1c/HDP6cL8jeCJFrb/J6BhmkBvjaBaWJF8qY8ppzE83Dam4CPl3Vb8h+37ao1N0vHUqcNNZ63kOPDklb4kmlufVYu70ZpLxFOKoNTg5Yfvm8xUISxFMktC4AXuTh8Gt84Zx06ZcYVdGeMop28rN/CT5Jvfpy6qIJuNFjviHMd4uCE1WjhIt+5s80Lq8F8A/BPmusgCiVD53F8GxyR3SZrX1W9R6IRlPlzc93zDcFcEMWZCdmdQZ2/TEVRWapwr8dkNB3BELqjODeezuoLkc/n8rNmFk1tQ5rbBjV4ix5f9RM+ppULsSrS75QsRU975VrbEPd1gw8mDJFueAwScEUeypePwx4M0iSFSKxa68KXnfymey6XMLth+6FMrr0DeYnBnH/1OikuN/ECXcmMe8SPhQ/vgrAgm+ZlWXlbAS2MwE5/70UWqeUrc+y84Iy82FNC+TG4l0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR11MB3666.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(4636009)(376002)(39860400002)(366004)(346002)(136003)(396003)(66946007)(66446008)(66476007)(64756008)(86362001)(66556008)(122000001)(4326008)(38100700002)(76116006)(54906003)(186003)(110136005)(316002)(66574015)(53546011)(26005)(478600001)(6506007)(7696005)(9686003)(8936002)(55016002)(38070700005)(33656002)(52536014)(2906002)(71200400001)(5660300002)(83380400001)(8676002)(19627235002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NnJFMUNxMW5ZSzJvVXQ3VHY4akhxZndseEZBUXpzRjlZUkZRbCtrY0NXdTQ2?= =?utf-8?B?T3BnN3h1MVVtU1hJSk1pbkhrL1JoREFIbzhJajE3R2FqTFJsbWVpV055ZWFE?= =?utf-8?B?WHV6UWtCb0NoemFKamxIcjc3dkhYWnRuZzNOaU9VRnQ5M1M3aEhybzNCeGYv?= =?utf-8?B?UThWcXJnZUZmT3ZIc001dGsrNlVTa3pzU3dpRThNcThoZ0FNaDBkVUsxM1dz?= =?utf-8?B?Z2lSMWNWQi8wVnpXekNXUDVKYklUOTBiU01UY3hiajJvOEZiSlRDcVB6YXZu?= =?utf-8?B?VnZ4bGtrWjZYd0FSZzNyL292dzl4Unp3UnRTYi9UN2E5ZTVTdXZjRTU2azAy?= =?utf-8?B?M3I5L0FnRmJuZ0VmQVZQdkNoU0pJRm50RjM3TWFta1JZTGM2c0psUENGVUhE?= =?utf-8?B?cEFWNTA0OTZDbGprNkJJVVcwcFEzMVRtaEFuTGxid1NkOVVWMURicnFXeFN5?= =?utf-8?B?Y0ZtZDg4U0tqRmlldVhCNHYyenZjVFVLOTlTWW1IbHpYeXFqVm1UU0lXYW4z?= =?utf-8?B?WlFUZ0Q4VVd0YmxseWQ2Tm5NNEhIeUVnTURXOENYSGdGUGxmOWdvZ1A5WjV4?= =?utf-8?B?dHBUWVh1MGFCY3BBcGJDMVkwemNYLzNBdVV2QmpadlkxMmlMaE5SSDdwQ1k2?= =?utf-8?B?ZXpTSFAwMTRod3kwOEZZSFpKNU9WcWt1cU1DSHl6N0h6WUpXZHBMUTlHaXYx?= =?utf-8?B?R0ZjblhrRlRuNkhDZWJRYmZGWDJOTEJFeEdxRFVpTjBpTDhnMnQvY1hESXRo?= =?utf-8?B?S2FnOVE3ZUlPZWNmay9pamxscnZLdlE2TTdVS3pGcGh5V29iZ3lhS1JMT1dK?= =?utf-8?B?NnUzckFsS2F1NjBpdHkrVW9WQU5naGRaUWY0bFlFVUZOaEUxVk9TQ2VsZmxN?= =?utf-8?B?SXV5OXF5dzFaVWRmaVZLaGF4bG94NTRrelgxbTFBWEFwU2VkNkpwQmlVSUxx?= =?utf-8?B?cWY5UlpGMmNqSUIrbWlMcWR2cGpoYUZrZ0ZUWlpDT2lvLythNFRQMlAzaFp5?= =?utf-8?B?dTZYam9Ed3hkQ0VBZEZFb00yaW9BcW56c0wyOHNoVFd1V3hGaWt6YVFvMktN?= =?utf-8?B?QmdOTnhWVGtmNmJ4cmp3cXZ2amw3SDhQalplNnBibFBmaVNxV0xvZTRvbm5t?= =?utf-8?B?ZWpnd2RaSkk0UHc4RVd4V0VHZ0QrRGlrUzVUdXduZlVHSmNQcUoySmptaUha?= =?utf-8?B?aHdESUR4aW11cmRSNzhIbSt1ekw5NE5YUzJRYWswV1NuRldHV1BMaEtjbkFr?= =?utf-8?B?MXQ2RENFbkRyS1JYcDVWYlBBTVc5MnZtUXIzemJKcUVwdyt2VGJVVFRiNWlZ?= =?utf-8?B?NDBBRGtYKzA2azhiVld6Zm9RaHNxb1IwTWdDd0xuTisycm9JUmVheHZ5aFV6?= =?utf-8?B?dmJpYlZnKzhVdEttbWhqZjNmVW5NS2Y1ZVRaQVlZdTFPZEFYSkVFcUx4VkVG?= =?utf-8?B?by8wYkRBOHRiMElaNndmM2FIdHVLblFaQk9MVERjclRONEVnUWJ0MHBhWGJk?= =?utf-8?B?eVpJYy9OTUM5cThXZ1pOakRneG1BVXVIU25vZjRsQWZ5SGZ1MWplVzJNdXhH?= =?utf-8?B?SDcrWFU0UWZaQ1dZV3hvblRuVkQxMHMrNWFXTFh6Q2lCcXZhZW95emZxanVQ?= =?utf-8?B?dFRJZkxhSU1VbDR2WWNqSWR2N2gyQ2YzZWsvM3RxZFh6eE1wVFlibHNBUDlp?= =?utf-8?B?QmhxbTNDR1VsVU5ZRVpCUHl1QStFMjQybnI1cmU4Q2M0MlcrcC9qWVMwWlN6?= =?utf-8?Q?wmWtelRnW5zKg+8MoItbP1cllbKI11b7nfNxlET?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3666.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13dd2792-a6dd-4909-064b-08d963987389 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2021 05:07:47.3644 (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: JOtXxXw4yYm7x/riMlODDSsYLmAVvkznNR31IfBAcuiNH6fEmcmsbgZ2MdGuEJTNJL4TKp7wz5yt4cDurvXMYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB2035 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNaWNoYWVsIEt1YmFja2kgPG1p Y2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiBTZW50OiBTYXR1cmRheSwgQXVndXN0IDE0 LCAyMDIxIDQ6MDIgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBXYW5nLCBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwu Y29tPjsNCj4gQmksIERhbmRhbiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IExpbWluZyBHYW8NCj4g PGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IERlLCBEZWJrdW1hciA8ZGVia3VtYXIuZGVAaW50 ZWwuY29tPjsNCj4gSGFuLCBIYXJyeSA8aGFycnkuaGFuQGludGVsLmNvbT47IFdlc3QsIENhdGhh cmluZQ0KPiA8Y2F0aGFyaW5lLndlc3RAaW50ZWwuY29tPjsgTWFydmluIEjDpHVzZXIgPG1oYWV1 c2VyQHBvc3Rlby5kZT4NCj4gU3ViamVjdDogW1BBVENIIHYxIDEvMV0gTWRlTW9kdWxlUGtnL1Bl aUNvcmU6IFJlbW92ZQ0KPiBNaWdyYXRlU2VjTW9kdWxlc0luRnYoKQ0KPiANCj4gUkVGOmh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU2NA0KPiANCj4gVGhp cyBmdW5jdGlvbiBoYXMgbm90IGJlZW4gY2FsbGVkIHNpbmNlIGl0IHdhcyBhZGRlZCBpbiBjb21t aXQgOWJlZGFlYy4gSWYNCj4gdGhlIGZ1bmN0aW9uIHdlcmUgdG8gcmVtYWluLCBpdCB3b3VsZCBu ZWVkIHRvIGJlIHJlLWV2YWx1YXRlZCBhbmQgdGVzdGVkLg0KPiBUaGlzIGNoYW5nZSByZW1vdmVz IHRoZSBmdW5jdGlvbiBzaW5jZSBpdCBpcyBub3QgYmVpbmcgdXNlZC4NCg0KDQpSZXZpZXdlZC1i eTogSGFvIEEgV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCldpbGwgbWVyZ2UgYWZ0ZXIgdGhlIHVw Y29taW5nIHN0YWJsZSB0YWcuDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQoNCj4gDQo+IENj OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBDYzogSGFvIEEgV3UgPGhh by5hLnd1QGludGVsLmNvbT4NCj4gQ2M6IERhbmRhbiBCaSA8ZGFuZGFuLmJpQGludGVsLmNvbT4N Cj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IERlYmt1 bWFyIERlIDxkZWJrdW1hci5kZUBpbnRlbC5jb20+DQo+IENjOiBIYXJyeSBIYW4gPGhhcnJ5Lmhh bkBpbnRlbC5jb20+DQo+IENjOiBDYXRoYXJpbmUgV2VzdCA8Y2F0aGFyaW5lLndlc3RAaW50ZWwu Y29tPg0KPiBDYzogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gU2lnbmVk LW9mZi1ieTogTWljaGFlbCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNvbT4N Cj4gLS0tDQo+ICBNZGVNb2R1bGVQa2cvQ29yZS9QZWkvRGlzcGF0Y2hlci9EaXNwYXRjaGVyLmMg fCA5NiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDk2IGRlbGV0aW9u cygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL1BlaS9EaXNwYXRjaGVy L0Rpc3BhdGNoZXIuYw0KPiBiL01kZU1vZHVsZVBrZy9Db3JlL1BlaS9EaXNwYXRjaGVyL0Rpc3Bh dGNoZXIuYw0KPiBpbmRleCAzMzY5NTg1YmNjZTguLjYxZDRiNjdjNjRiOSAxMDA2NDQNCj4gLS0t IGEvTWRlTW9kdWxlUGtnL0NvcmUvUGVpL0Rpc3BhdGNoZXIvRGlzcGF0Y2hlci5jDQo+ICsrKyBi L01kZU1vZHVsZVBrZy9Db3JlL1BlaS9EaXNwYXRjaGVyL0Rpc3BhdGNoZXIuYw0KPiBAQCAtMTA1 NywxMDIgKzEwNTcsNiBAQCBDb252ZXJ0U3RhdHVzQ29kZUNhbGxiYWNrcyAoDQo+ICAgIH0NCj4g IH0NCj4gDQo+IC0vKioNCj4gLSAgTWlncmF0ZXMgU0VDIG1vZHVsZXMgaW4gdGhlIGdpdmVuIGZp cm13YXJlIHZvbHVtZS4NCj4gLQ0KPiAtICBNaWdyYXRpbmcgU0VDVVJJVFlfQ09SRSBmaWxlcyBy ZXF1aXJlcyBzcGVjaWFsIHRyZWF0bWVudCBzaW5jZSB0aGV5IGFyZQ0KPiBub3QgdHJhY2tlZCBm b3IgUEVJIGRpc3BhdGNoLg0KPiAtDQo+IC0gIFRoaXMgZnVuY3Rpb3VuIHNob3VsZCBiZSBjYWxs ZWQgYWZ0ZXIgdGhlIEZWIGhhcyBiZWVuIGNvcGllZCB0byBpdHMgcG9zdC0NCj4gbWVtb3J5IGxv Y2F0aW9uIGFuZCB0aGUgUEVJIENvcmUgRlYgbGlzdCBoYXMNCj4gLSAgYmVlbiB1cGRhdGVkLg0K PiAtDQo+IC0gIEBwYXJhbSBQcml2YXRlICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFBlaUNvcmUn cyBwcml2YXRlIGRhdGEgc3RydWN0dXJlLg0KPiAtICBAcGFyYW0gRnZJbmRleCAgICAgICAgICBU aGUgZmlybXdhcmUgdm9sdW1lIGluZGV4IHRvIG1pZ3JhdGUuDQo+IC0gIEBwYXJhbSBPcmdGdkhh bmRsZSAgICAgIFRoZSBoYW5kbGUgdG8gdGhlIGZpcm13YXJlIHZvbHVtZSBpbiB0ZW1wb3JhcnkN Cj4gbWVtb3J5Lg0KPiAtDQo+IC0gIEByZXR2YWwgICBFRklfU1VDQ0VTUyAgICAgICAgICAgU0VD IG1vZHVsZXMgd2VyZSBtaWdyYXRlZCBzdWNjZXNzZnVsbHkNCj4gLSAgQHJldHZhbCAgIEVGSV9J TlZBTElEX1BBUkFNRVRFUiBUaGUgUHJpdmF0ZSBwb2ludGVyIGlzIE5VTEwgb3IgRnZDb3VudA0K PiBpcyBpbnZhbGlkLg0KPiAtICBAcmV0dmFsICAgRUZJX05PVF9GT1VORCAgICAgICAgIENhbid0 IGZpbmQgdmFsaWQgRkZTIGhlYWRlci4NCj4gLQ0KPiAtKiovDQo+IC1FRklfU1RBVFVTDQo+IC1F RklBUEkNCj4gLU1pZ3JhdGVTZWNNb2R1bGVzSW5GdiAoDQo+IC0gIElOIFBFSV9DT1JFX0lOU1RB TkNFICAgICpQcml2YXRlLA0KPiAtICBJTiAgVUlOVE4gICAgICAgICAgICAgICBGdkluZGV4LA0K PiAtICBJTiAgVUlOVE4gICAgICAgICAgICAgICBPcmdGdkhhbmRsZQ0KPiAtICApDQo+IC17DQo+ IC0gIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+IC0gIEVGSV9TVEFUVVMg ICAgICAgICAgICAgICAgICBGaW5kRmlsZVN0YXR1czsNCj4gLSAgRUZJX1BFSV9GSUxFX0hBTkRM RSAgICAgICAgIE1pZ3JhdGVkRmlsZUhhbmRsZTsNCj4gLSAgRUZJX1BFSV9GSUxFX0hBTkRMRSAg ICAgICAgIEZpbGVIYW5kbGU7DQo+IC0gIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBTZWN0 aW9uQXV0aGVudGljYXRpb25TdGF0dXM7DQo+IC0gIFVJTlQzMiAgICAgICAgICAgICAgICAgICAg ICBGaWxlU2l6ZTsNCj4gLSAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICpPcmdQZTMyU2Vj dGlvbkRhdGE7DQo+IC0gIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAqUGUzMlNlY3Rpb25E YXRhOw0KPiAtICBFRklfRkZTX0ZJTEVfSEVBREVSICAgICAgICAgKkZmc0ZpbGVIZWFkZXI7DQo+ IC0gIEVGSV9DT01NT05fU0VDVElPTl9IRUFERVIgICAqU2VjdGlvbjsNCj4gLSAgQk9PTEVBTiAg ICAgICAgICAgICAgICAgICAgIElzRmZzM0Z2Ow0KPiAtICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgICAgU2VjdGlvbkluc3RhbmNlOw0KPiAtDQo+IC0gIGlmIChQcml2YXRlID09IE5VTEwgfHwg RnZJbmRleCA+PSBQcml2YXRlLT5GdkNvdW50KSB7DQo+IC0gICAgcmV0dXJuIEVGSV9JTlZBTElE X1BBUkFNRVRFUjsNCj4gLSAgfQ0KPiAtDQo+IC0gIGRvIHsNCj4gLSAgICBGaW5kRmlsZVN0YXR1 cyA9ICBQZWlGZnNGaW5kTmV4dEZpbGUgKA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgR2V0 UGVpU2VydmljZXNUYWJsZVBvaW50ZXIgKCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBF RklfRlZfRklMRVRZUEVfU0VDVVJJVFlfQ09SRSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg IFByaXZhdGUtPkZ2W0Z2SW5kZXhdLkZ2SGFuZGxlLA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgJk1pZ3JhdGVkRmlsZUhhbmRsZQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4g LSAgICBpZiAoIUVGSV9FUlJPUiAoRmluZEZpbGVTdGF0dXMgKSAmJiBNaWdyYXRlZEZpbGVIYW5k bGUgIT0gTlVMTCkgew0KPiAtICAgICAgRmlsZUhhbmRsZSA9IChFRklfUEVJX0ZJTEVfSEFORExF KSAoKFVJTlROKSBNaWdyYXRlZEZpbGVIYW5kbGUgLQ0KPiAoVUlOVE4pIFByaXZhdGUtPkZ2W0Z2 SW5kZXhdLkZ2SGFuZGxlICsgT3JnRnZIYW5kbGUpOw0KPiAtICAgICAgRmZzRmlsZUhlYWRlciA9 IChFRklfRkZTX0ZJTEVfSEVBREVSICopIE1pZ3JhdGVkRmlsZUhhbmRsZTsNCj4gLQ0KPiAtICAg ICAgREVCVUcgKChERUJVR19WRVJCT1NFLCAiICAgIE1pZ3JhdGluZyBTRUNfQ09SRSBNaWdyYXRl ZEZpbGVIYW5kbGUNCj4gYXQgMHgleC5cbiIsIChVSU5UTikgTWlncmF0ZWRGaWxlSGFuZGxlKSk7 DQo+IC0gICAgICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICIgICAgICAgICAgICAgICAgICAgICAg IEZpbGVIYW5kbGUgYXQgMHgleC5cbiIsIChVSU5UTikNCj4gRmlsZUhhbmRsZSkpOw0KPiAtDQo+ IC0gICAgICBJc0ZmczNGdiA9IENvbXBhcmVHdWlkICgmUHJpdmF0ZS0+RnZbRnZJbmRleF0uRnZI ZWFkZXItDQo+ID5GaWxlU3lzdGVtR3VpZCwgJmdFZmlGaXJtd2FyZUZpbGVTeXN0ZW0zR3VpZCk7 DQo+IC0gICAgICBpZiAoSVNfRkZTX0ZJTEUyIChGZnNGaWxlSGVhZGVyKSkgew0KPiAtICAgICAg ICBBU1NFUlQgKEZGU19GSUxFMl9TSVpFIChGZnNGaWxlSGVhZGVyKSA+IDB4MDBGRkZGRkYpOw0K PiAtICAgICAgICBpZiAoIUlzRmZzM0Z2KSB7DQo+IC0gICAgICAgICAgREVCVUcgKChERUJVR19F UlJPUiwgIkl0IGlzIGEgRkZTMyBmb3JtYXR0ZWQgZmlsZTogJWcgaW4gYSBub24tRkZTMw0KPiBm b3JtYXR0ZWQgRlYuXG4iLCAmRmZzRmlsZUhlYWRlci0+TmFtZSkpOw0KPiAtICAgICAgICAgIHJl dHVybiBFRklfTk9UX0ZPVU5EOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIFNlY3Rpb24gPSAo RUZJX0NPTU1PTl9TRUNUSU9OX0hFQURFUiAqKSAoKFVJTlQ4ICopDQo+IEZmc0ZpbGVIZWFkZXIg KyBzaXplb2YgKEVGSV9GRlNfRklMRV9IRUFERVIyKSk7DQo+IC0gICAgICAgIEZpbGVTaXplID0g RkZTX0ZJTEUyX1NJWkUgKEZmc0ZpbGVIZWFkZXIpIC0gc2l6ZW9mDQo+IChFRklfRkZTX0ZJTEVf SEVBREVSMik7DQo+IC0gICAgICB9IGVsc2Ugew0KPiAtICAgICAgICBTZWN0aW9uID0gKEVGSV9D T01NT05fU0VDVElPTl9IRUFERVIgKikgKChVSU5UOCAqKQ0KPiBGZnNGaWxlSGVhZGVyICsgc2l6 ZW9mIChFRklfRkZTX0ZJTEVfSEVBREVSKSk7DQo+IC0gICAgICAgIEZpbGVTaXplID0gRkZTX0ZJ TEVfU0laRSAoRmZzRmlsZUhlYWRlcikgLSBzaXplb2YgKEVGSV9GRlNfRklMRV9IRUFERVIpOw0K PiAtICAgICAgfQ0KPiAtDQo+IC0gICAgICBTZWN0aW9uSW5zdGFuY2UgPSAxOw0KPiAtICAgICAg U2VjdGlvbkF1dGhlbnRpY2F0aW9uU3RhdHVzID0gMDsNCj4gLSAgICAgIFN0YXR1cyA9IFByb2Nl c3NTZWN0aW9uICgNCj4gLSAgICAgICAgICAgICAgICBHZXRQZWlTZXJ2aWNlc1RhYmxlUG9pbnRl ciAoKSwNCj4gLSAgICAgICAgICAgICAgICBFRklfU0VDVElPTl9QRTMyLA0KPiAtICAgICAgICAg ICAgICAgICZTZWN0aW9uSW5zdGFuY2UsDQo+IC0gICAgICAgICAgICAgICAgU2VjdGlvbiwNCj4g LSAgICAgICAgICAgICAgICBGaWxlU2l6ZSwNCj4gLSAgICAgICAgICAgICAgICAmUGUzMlNlY3Rp b25EYXRhLA0KPiAtICAgICAgICAgICAgICAgICZTZWN0aW9uQXV0aGVudGljYXRpb25TdGF0dXMs DQo+IC0gICAgICAgICAgICAgICAgSXNGZnMzRnYNCj4gLSAgICAgICAgICAgICAgICApOw0KPiAt DQo+IC0gICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiAtICAgICAgICBPcmdQZTMy U2VjdGlvbkRhdGEgPSAoVk9JRCAqKSAoKFVJTlROKSBQZTMyU2VjdGlvbkRhdGEgLSAoVUlOVE4p DQo+IE1pZ3JhdGVkRmlsZUhhbmRsZSArIChVSU5UTikgRmlsZUhhbmRsZSk7DQo+IC0gICAgICAg IERFQlVHICgoREVCVUdfVkVSQk9TRSwgIiAgICAgIFBFMzIgc2VjdGlvbiBpbiBtaWdyYXRlZCBm aWxlIGF0IDB4JXguXG4iLA0KPiAoVUlOVE4pIFBlMzJTZWN0aW9uRGF0YSkpOw0KPiAtICAgICAg ICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICIgICAgICBQRTMyIHNlY3Rpb24gaW4gb3JpZ2luYWwg ZmlsZSBhdCAweCV4LlxuIiwNCj4gKFVJTlROKSBPcmdQZTMyU2VjdGlvbkRhdGEpKTsNCj4gLSAg ICAgICAgU3RhdHVzID0gTG9hZEFuZFJlbG9jYXRlUGVDb2ZmSW1hZ2VJblBsYWNlIChPcmdQZTMy U2VjdGlvbkRhdGEsDQo+IFBlMzJTZWN0aW9uRGF0YSk7DQo+IC0gICAgICAgIEFTU0VSVF9FRklf RVJST1IgKFN0YXR1cyk7DQo+IC0gICAgICB9DQo+IC0gICAgfQ0KPiAtICB9IHdoaWxlICghRUZJ X0VSUk9SIChGaW5kRmlsZVN0YXR1cykpOw0KPiAtDQo+IC0gIHJldHVybiBFRklfU1VDQ0VTUzsN Cj4gLX0NCj4gLQ0KPiAgLyoqDQo+ICAgIE1pZ3JhdGVzIFBFSU1zIGluIHRoZSBnaXZlbiBmaXJt d2FyZSB2b2x1bWUuDQo+IA0KPiAtLQ0KPiAyLjI5LjIud2luZG93cy4yDQoNCg==