From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web12.6581.1610016461436667591 for ; Thu, 07 Jan 2021 02:47:41 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=SB3SSapQ; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: star.zeng@intel.com) IronPort-SDR: ghHvL6kH7X9WsMeumIH/nZ9KSYOG4LV47kMPpv3HYiETqezryfBJLIJ1fkc5VCe4q2g5wW3CRF hKJCwzH0K8Gw== X-IronPort-AV: E=McAfee;i="6000,8403,9856"; a="177559967" X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="177559967" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2021 02:47:41 -0800 IronPort-SDR: NmHDwesvmBl0NTpYSb+n6NOkTeZlpFbLpaCTW+zbYQKHG9zWmkXuK1ZGk5DwkAZ3tyJWwTTh5R UcHAZqGuAGdw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="398571886" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga002.fm.intel.com with ESMTP; 07 Jan 2021 02:47:40 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) 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.1713.5; Thu, 7 Jan 2021 02:47:40 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 7 Jan 2021 02:47:40 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 7 Jan 2021 02:47:40 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.107) 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.1713.5; Thu, 7 Jan 2021 02:47:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kuR/jLxhtR4YxdKmFeaP6oYzY9j17MtGl8tFmPGLrZlybtHH++fRqQV66ZIgzDsbmClAwLwdk4C3lx2VoNzxScMSJEF/Zx1dJAIC/XidaSae+5eSCaBWGVFYKsqOkhxxYqdVtIWtEi2DMjnbxKPCYQ1vCtRvaEjRRee3FCoxEK0dqyCBDxWqExZ5lD2Y9zW+zWHYu8AFyZ/Ft6/OeGWHGVHkJ+xCZ2OAS13QNTAlZPzD35RN8Tlk62I2emDd6NZvB1mdR4qIej2kU47s/knVq1IhUIY2auyLs4T4ozWI0yjhkcsqZakMlVanr4YERB1ZVMYrzi21hEXuAnh0Pgk5bQ== 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=UMwV1aGuhp9oYuG7MzjkUARUWC3EwKK6Z8cVlgl9kKM=; b=LJuFxAHfS1rweUYDH0+A2iXKtmFwth55x2v3UqtpGG5bJBoUTOk7QvvK0zAUB1r7zxhRc9T8L5ABr1AXVNYRn4MZfgJR/TVTSfBFzS0bGt50n7gZoEtMn1cLmky90lDQVrVMzb3Hbtq4IlKmMv5USSQtSRu693neg63RvQTfoLdbs/4xGuclCGaZusoRrXhsWmy0EyCdA6AMiKRNJI0iuC+ugEwoVovkkRrPH7K+gbsgoGE+O0kqOlCKcHjF1tiKvqS+J4ug1ZyvDlCCgeym2v/fT2X9loMZA7z4Tj8s+cPUUixjaKPgH2J/A3RU3hd8dM5CCJkq8UDrx6xgFr8oQw== 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=UMwV1aGuhp9oYuG7MzjkUARUWC3EwKK6Z8cVlgl9kKM=; b=SB3SSapQR3sGkxvUJ8z4/1FWEjYZoLhfqi3oLfqJc4PZD9pckSnvcphyeIBhBqTER2xZUYkUDnp74ZIro/zpr8nFLJAQjvxocDNqFXQeJ16EnPA200C9yWmzfEPEIOVfTxzRVRc86NmSvoGmAku9NvpTs9wO7nUfw0L7tw3b1V8= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM5PR11MB2027.namprd11.prod.outlook.com (2603:10b6:3:a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20; Thu, 7 Jan 2021 10:47:11 +0000 Received: from DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::880f:c15b:574a:a9eb]) by DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::880f:c15b:574a:a9eb%6]) with mapi id 15.20.3742.006; Thu, 7 Jan 2021 10:47:11 +0000 From: "Zeng, Star" To: Laszlo Ersek , "Ni, Ray" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Zeng, Star" Subject: Re: [edk2-devel] [PATCH V2] UefiCpuPkg PiSmmCpuDxeSmm: Reduce SMRAM consumption in CpuS3.c Thread-Topic: [edk2-devel] [PATCH V2] UefiCpuPkg PiSmmCpuDxeSmm: Reduce SMRAM consumption in CpuS3.c Thread-Index: AQHW4/fz2TMHO/zVkEKsZEjn8hdPUaoa4qeAgAC/6YCAAE/vgIAACOsQ Date: Thu, 7 Jan 2021 10:47:11 +0000 Message-ID: References: <20210106064825.18984-1-star.zeng@intel.com> <37d2bda3-5173-34d1-5338-92023b0fb2c5@redhat.com> In-Reply-To: <37d2bda3-5173-34d1-5338-92023b0fb2c5@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.46] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4841e942-e192-4da4-55fd-08d8b2f996af x-ms-traffictypediagnostic: DM5PR11MB2027: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SbmW7Me5vSE7FqLIyEM31pZp08sFjC/NV6hB8tRbQ16GC8uj3FnJtUkYodItfiVYN5ZRv8YF2GbPHjoWZe7wnCoUhQPAP2XrUuH6XniTMCxPk5AR/RDa25My6zLmf3cui124K1eLN2OdIVHmta5z3t2cS5pAJThcG0ugPa8bY0NL102AVJ0Vced6dYeV0yrWQBxbzgFe8ExHbBsrnPKLMiYyoWs0G0wDXNPQoa/aWkgqch0QgE1T+JV1UgRFyf/6wxpKo/mQ724OQ6sYRIvnXrObnvHYbCyfMKae11CfYUD6bMmGDL3pabY1F0gPjdnuC5jK/4OGPWITbvMoeStzTCEnrzdV23Ubse3ZJBNMur6vqEiUe2+nwke6L4udQJogCb1A6S4x6mAoxk7JoX/jZg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4058.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(4636009)(136003)(376002)(346002)(366004)(39860400002)(396003)(107886003)(76116006)(7696005)(5660300002)(55016002)(64756008)(19627235002)(26005)(83380400001)(66556008)(66946007)(4326008)(66476007)(186003)(6506007)(71200400001)(33656002)(66446008)(316002)(86362001)(8676002)(8936002)(9686003)(53546011)(110136005)(478600001)(52536014)(54906003)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?U0pWbXordmxxNXVCVjJYUDF2cStIWnBNelpFc3YwWnFqOGkvNnBicWlVQWIv?= =?utf-8?B?MFRhQndpQU9OZ0hjcVlUWEwyRm01S1lyQ3hWUUZwRVRnTVFKNU5DRFRtdnNm?= =?utf-8?B?OEFXS2RDVVcrSzBYZzlMdVN2RXRsUTl4MTVVc2duanN4VFR3OUhRbTRBY0ZX?= =?utf-8?B?WGxwRWYxZGd0ajJGL0gyRVVHT3dvcm1DTisyWW1CMGxhS0RvcDRIbFVubTRR?= =?utf-8?B?WnVnem5ZM2tHeXJXVzFxZkozL0VxdHFyUklEaHh0ZWEzYmFPNGRubCsrc0VO?= =?utf-8?B?SXVWZ04rWjlOZHZKSVVGc0JQMzJyWlVVbjNWbVhNcWVlSkNJanFjYXFBZmNa?= =?utf-8?B?WFFlY1k1bHFKYTZUcEhmaExSODZ1ZDc1VnNURDVZS2luVHZkOC9YdzVJRHll?= =?utf-8?B?Kzh6SWp1QmlOSHJ1blQ2bStBN2tncDBrSnU5V0lmTzF5NzE4a3kwaGR4blpk?= =?utf-8?B?ZjU5azBTb2VhVTBlZEVqbmhzM21NK1V0VEFyejNUYjUwNDMrM29nU01WUlVm?= =?utf-8?B?QkhNU3l0ellWaUdDTnNPQ3orVU5ESXFzcmZ1VzdJMkFYRlVlL2hyZkdlVURs?= =?utf-8?B?UzREaGpleTBMVGxKWjFUSjgwZ1pMUDYrNG01UHFKNHdPcDdnL3Q3dkJKMDBJ?= =?utf-8?B?ZFB2b2MzWFBJamw0U2EyV3U2d0pMMlo5bVIxY2RML2FkQ0NGWXN4RFpBNnFy?= =?utf-8?B?QjMwV3R5UkFsSTI4OUlhZzRGWEcrT2UyNk5IaFlBdFpUUVY1cTZjZlliMmJ0?= =?utf-8?B?RkJpQk1CdHQva25qN2RwM2lDc1MwanJROTZDQThqM0dRRFVFMDgvTUlaUDI4?= =?utf-8?B?bjM1by83N3kzbGtLa0dkd0RFQkkya3YvbDFTVC9LOC9qcDcrNmhGTW94MGRx?= =?utf-8?B?V0dEOU5GcTJEb1k3dFBnN3hSZjQ3UHNDNW1OWGZmVjExQlF0KzhsNGZpNThp?= =?utf-8?B?eTAzdDA1a1pWeTBWaTVLVVBxbDRkTWYreWdjVDVkOTNiSXRpS2trWjhodmZv?= =?utf-8?B?eTkyUDU1OGt6c0pCTFhqY01nZ2hQWWxPcVZjempUaG0vb01qTGRBVDR4czl2?= =?utf-8?B?UXlrMkV0NW93ZmpoOWY2Z3BvT1BYTWVGYmdiUVpaaTYzbFpDakdNQ2xYV0hO?= =?utf-8?B?ZVJXTlZLd2x5VXRXZzZtdUIwN0w0TEcxMVlBdVA4Vnh3bzFzR3owMEtnQ3dP?= =?utf-8?B?TUs3TUxUcjQ3UDFucThETWkxay9zaHlWSVlyZGZlbThnblR3U3Y1bGQ2Q0Qw?= =?utf-8?B?SnpidEY2NEJFclp3M0Q0S3ZZRkQwU2x2NWNYZWE5VkR1bGhYbmVYRTF2UEI0?= =?utf-8?Q?b0x4LN24+/TCg=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4841e942-e192-4da4-55fd-08d8b2f996af X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2021 10:47:11.6529 (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: iRHQMGAFpN16O2jk/+2VuDBr2ZbWBLWa15bXZCTeiZbmXHn8viu25wmA1ykReu+xzi/RB6s0ttuJWD4hPSknNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB2027 Return-Path: star.zeng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSA3LCAyMDIxIDY6MTAgUE0N Cj4gVG86IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg WmVuZywgU3Rhcg0KPiA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gQ2M6IERvbmcsIEVyaWMgPGVy aWMuZG9uZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIFYy XSBVZWZpQ3B1UGtnIFBpU21tQ3B1RHhlU21tOg0KPiBSZWR1Y2UgU01SQU0gY29uc3VtcHRpb24g aW4gQ3B1UzMuYw0KPiANCj4gT24gMDEvMDcvMjEgMDY6MjMsIE5pLCBSYXkgd3JvdGU6DQo+ID4+ IFRoaXMgcGF0Y2ggaXMgYSBzdGVwIGluIHRoZSByaWdodCBkaXJlY3Rpb24sIGJ1dCwgSU1PLCBp dCBjYW4gYmUgaW1wcm92ZWQuDQo+ID4+DQo+ID4+IFRoZSBJc1JlZ2lzdGVyVGFibGVFbXB0eSgp IGZ1bmN0aW9uIHNob3VsZCBhbHNvIGhhbmRsZSB0aGUgY2FzZSB3aGVuDQo+ID4+IHRoZSAiUmVn aXN0ZXJUYWJsZSIgcGFyYW1ldGVyIGlzIE5VTEwuIFRoZSBmdW5jdGlvbiBzaG91bGQgdGhlbiBh bHNvDQo+ID4+IHJldHVybiBUUlVFLg0KPiA+Pg0KPiA+PiBBbmQgdGhlbiwgdHdvIG1vcmUgcGF0 Y2hlcyB3b3VsZCBiZSBuaWNlOg0KPiA+Pg0KPiA+Pg0KPiA+PiAoMikgVGhlIHJlZ2lzdGVyIHRh YmxlIGFsbG9jYXRpb24gaW4NCj4gPj4gIlVlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0 YS5jIiBzaG91bGQgYmUgcmVtb3ZlZC4NCj4gPj4NCj4gPj4gUmlnaHQgbm93LCB0aGUgY29kZSB0 aGVyZSBhbGxvY2F0ZXMgbWVtb3J5IGp1c3Qgc28gaXQgY2FuIHNldCB0aGUNCj4gPj4gIlRhYmxl TGVuZ3RoIiBhbmQgIkFsbG9jYXRlZFNpemUiIGZpZWxkcyB0byB6ZXJvLCBmb3IgZWFjaCAiSW5p dGlhbEFwaWNJZCIuDQo+ID4+DQo+ID4+IEl0J3MgYSB3YXN0ZSAtLSB0aGUgbWVtb3J5IGlzIGFs bG9jYXRlZCBvbmx5IGZvciBlbnN1cmluZyB0aGF0DQo+ID4+IFBpU21tQ3B1RHhlU21tIGRvZXMg bm90IHByb2dyYW0gYW55IENQVSByZWdpc3RlcnMgZHVyaW5nIFMzIHJlc3VtZS4NCj4gPj4NCj4g Pj4gU2V0dGluZyAiQWNwaUNwdURhdGEtPlJlZ2lzdGVyVGFibGUiIGFuZA0KPiA+PiAiQWNwaUNw dURhdGEtPlByZVNtbUluaXRSZWdpc3RlclRhYmxlIiBzaG91bGQgaGF2ZSB0aGUgc2FtZSBlZmZl Y3QuDQo+ID4NCj4gPiBMYXN6bG8sDQo+ID4gSXQncyBhIGdvb2Qgc3VnZ2VzdGlvbi4NCj4gPiBX ZSBhbHNvIG5lZWQgdG8gY2hhbmdlIENwdVMzLmM6U2V0UmVnaXN0ZXIoKSB0byBkaXJlY3RseSBy ZXR1cm4gd2hlbg0KPiA+IG1BY3BpQ3B1RGF0YS5bUHJlU21tSW5pdF1SZWdpc3RlclRhYmxlIGlz IE5VTEwuDQo+IA0KPiBUaGUgY3VycmVudCAodjIpIHBhdGNoIGFscmVhZHkgY29udGFpbnMgdGhh dCBzaG9ydGN1dDsgcGxlYXNlIHNlZToNCj4gDQo+ID4gQEAgLTQ4Nyw2ICs0ODcsOSBAQCBTZXRS ZWdpc3RlciAoDQo+ID4gICAgfSBlbHNlIHsNCj4gPiAgICAgIFJlZ2lzdGVyVGFibGVzID0gKENQ VV9SRUdJU1RFUl9UQUJMRQ0KPiAqKShVSU5UTiltQWNwaUNwdURhdGEuUmVnaXN0ZXJUYWJsZTsN Cj4gPiAgICB9DQo+ID4gKyAgaWYgKFJlZ2lzdGVyVGFibGVzID09IE5VTEwpIHsNCj4gPiArICAg IHJldHVybjsNCj4gPiArICB9DQo+ID4NCj4gPiAgICBJbml0QXBpY0lkID0gR2V0SW5pdGlhbEFw aWNJZCAoKTsNCj4gPiAgICBSZWdpc3RlclRhYmxlID0gTlVMTDsNCj4gDQo+IFNvIHRoYXQncyBm aW5lLCBJTU8uDQo+IA0KPiBUaGUgZGF0YSBmbG93IGlzIHRoZSBmb2xsb3dpbmc6DQo+IA0KPiAo MSkgR2V0QWNwaUNwdURhdGEoKSBkZXRlcm1pbmVzIHdoZXRoZXIgZWFjaCBvbmUgb2YgdGhlIHR3 byByZWdpc3Rlcg0KPiB0YWJsZXMgKm91c2lkZSBvZiBTTVJBTSogaXMgZW1wdHkgb3Igbm90Ow0K PiANCj4gKDIpIGZvciBlYWNoIG9uZSB0aGF0IGlzIGVtcHR5IChvdXRzaWRlIG9mIFNNUkFNKSwg dGhlIHBvaW50ZXIgdG8gdGhlICpjb3B5DQo+IGluIFNNUkFNKiBpcyBzZXQgdG8gTlVMTCwNCj4g DQo+ICgzKSBmb3IgZWFjaCBvbmUgdGhhdCBpcyBub3QgZW1wdHkgKG91dHNpZGUgb2YgU01SQU0p LCBhbiBTTVJBTSBjb3B5IGlzDQo+IG1hZGUsDQo+IA0KPiAoNCkgU2V0UmVnaXN0ZXIoKSBjb3Jy ZWN0bHkgZGVhbHMgLS0gYWxyZWFkeSBpbiB0aGlzIHYyIHBhdGNoIC0tIHdpdGggdGhlIHRoZQ0K PiBwb2ludGVyIGludG8gU01SQU0gYmVpbmcgTlVMTC4NCj4gDQo+IA0KPiBNeSB1cGRhdGUgcmVx dWVzdCByZWZlcnMgdG8gc3RlcCAoMSkuIE5hbWVseSwgd2hlbiB3ZSBkZXRlcm1pbmUgd2hldGhl cg0KPiBlYWNoIHJlZ2lzdGVyIHRhYmxlICpvdXNpZGUgb2YgU01SQU0qIGlzIGVtcHR5IG9yIG5v dCwgd2Ugc2hvdWxkIGFsc28NCj4gcmVjb2duaXplIHdoZW4gdGhlIHRhYmxlIChvdXRzaWRlIG9m IFNNUkFNKSBkb2Vzbid0IGV2ZW4gKmV4aXN0Ki4NCj4gDQo+IEJhc2ljYWxseSBJJ20gYXNraW5n IHRoYXQgU3RhciBwbGVhc2UgcG9zdCBhIHYzIHdpdGggdGhlIGZvbGxvd2luZyB1cGRhdGUNCj4g c3F1YXNoZWQgaW50byB0aGUgcGF0Y2g6DQo+IA0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtn L1BpU21tQ3B1RHhlU21tL0NwdVMzLmMNCj4gPiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v Q3B1UzMuYw0KPiA+IGluZGV4IDliMWY5NTJjOGE3NC4uMGU3YTRiYTUzNjlkIDEwMDY0NA0KPiA+ IC0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1UzMuYw0KPiA+ICsrKyBiL1VlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1UzMuYw0KPiA+IEBAIC05OTgsNiArOTk4LDEwIEBAIElz UmVnaXN0ZXJUYWJsZUVtcHR5ICggIHsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAg IEluZGV4Ow0KPiA+DQo+ID4gKyAgaWYgKFJlZ2lzdGVyVGFibGUgPT0gTlVMTCkgew0KPiA+ICsg ICAgcmV0dXJuIFRSVUU7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiAgICBmb3IgKEluZGV4ID0gMDsg SW5kZXggPCBOdW1iZXJPZkNwdXM7IEluZGV4KyspIHsNCj4gPiAgICAgIGlmIChSZWdpc3RlclRh YmxlW0luZGV4XS5UYWJsZUxlbmd0aCAhPSAwKSB7DQo+ID4gICAgICAgIHJldHVybiBGQUxTRTsN Cj4gDQo+IEJhY2sgdG8geW91ciBlbWFpbDoNCj4gDQo+IE9uIDAxLzA3LzIxIDA2OjIzLCBOaSwg UmF5IHdyb3RlOg0KPiA+DQo+ID4gQ29uc2lkZXJpbmcgdGhlIHVyZ2VuY3kgb2YgdGhpcyBwYXRj aCAoZml4IGEgc3lzdGVtIGhhbmcgY2F1c2VkIGJ5DQo+ID4gc21yYW0gc2hvcnRhZ2UpLCBkbyB5 b3UgYWdyZWUgdGhhdCB3ZSBjYW4gZmlyc3QgbGV0IHRoaXMgcGF0Y2ggaW4/DQo+IA0KPiBJIGFn cmVlIHRoYXQgdGhlIENwdVMzRGF0YUR4ZSBjaGFuZ2VzIGNhbiBiZSBkb25lIHNlcGFyYXRlbHks IGxhdGVyLg0KPiANCj4gSG93ZXZlciwgSSdkIGxpa2UgdGhlIGFib3ZlIHNtYWxsIGh1bmsgLS0g aW4gSXNSZWdpc3RlclRhYmxlRW1wdHkoKSAtLSB0byBiZQ0KPiBzcXVhc2hlZCBpbnRvIHRoZSBj dXJyZW50IHBhdGNoLCBiZWZvcmUgY29tbWl0dGluZyBpdC4NCj4gDQo+IElmIHlvdSB0aGluayB3 ZSBzaG91bGQgZG8gdGhpcyBzbWFsbCB1cGRhdGUgb24gY29tbWl0LCByYXRoZXIgdGhhbiBwb3N0 aW5nIGENCj4gdjMsIHRoYXQncyBmaW5lIHdpdGggbWUgYXMgd2VsbC4gSnVzdCBwbGVhc2UgZG9u J3QgbWVyZ2UgdGhlDQo+IHYyIHBhdGNoIHdpdGhvdXQgdGhlIElzUmVnaXN0ZXJUYWJsZUVtcHR5 KCkgZXh0ZW5zaW9uIHRoYXQgSSdtIGFza2luZyBmb3IsDQo+IGFib3ZlLg0KPiANCj4gV2l0aCB0 aGUgSXNSZWdpc3RlclRhYmxlRW1wdHkoKSB1cGRhdGUsIGV2ZW4gd2l0aG91dCBhIHYzIHBvc3Rp bmc6DQo+IA0KPiBSZXZpZXdlZC1ieTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4N Cg0KVGhhbmtzIExhc3psbyBhbmQgUmF5DQoNClRoaXMgcGF0Y2ggaXMgbWFqb3JseSB0byByZWR1 Y2UgU01SQU0gY29uc3VtcHRpb24gaW4gKmNvbnN1bWVyKiBzaWRlIG9mICJSZWdpc3RlclRhYmxl Ii4NCkkgd2FzIHByZXBhcmluZyBQQVRDSCBWMyBiZWZvcmUgeW91IHNlbnQgdGhpcyByZXBseS4g 8J+Yig0KDQpBYm91dCB0aGUgY2hhbmdlIHRvICpwcm9kdWNlciogc2lkZSBvZiAiUmVnaXN0ZXJU YWJsZSIsIFVlZmlDcHVQa2dcTGlicmFyeVxSZWdpc3RlckNwdUZlYXR1cmVzTGliIGRlcGVuZGVk IG9uIENwdVMzRGF0YUR4ZSBiZWZvcmUsIHRoZSBkZXBlbmRlbmN5IHNlZW1zIGhhdmUgYmVlbiBy ZW1vdmVkIGJ5IGE2ZGFhYjFmNmNiODM2ZTQxNDczMjRiYjg1ZmMxNzkzMGJlMTRlODcuIFdlIG1h eSBjYW4gZG8gdGhlIGNoYW5nZSBhZnRlciBkb2luZyBtb3JlIGNvbmZpcm1hdGlvbi4NCg0KSSBq dXN0IHNlbnQgUEFUQ0ggVjMgd2l0aCB5b3VyIGJvdGggUkIgKHN1cHBvc2UgeW91IGJvdGggYWdy ZWUg8J+Yiikgd2l0aCBhIHZlcnkgdmVyeSBsaXR0bGUgZGlmZmVyZW5jZSB0byB5b3VyIHByb3Bv c2FsLg0KDQpUaGFua3MsDQpTdGFyDQoNCj4gDQo+IFRoYW5rcw0KPiBMYXN6bG8NCg0K