From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web09.6239.1631188551190584274 for ; Thu, 09 Sep 2021 04:55:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=W8oTX8XP; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10101"; a="207996518" X-IronPort-AV: E=Sophos;i="5.85,280,1624345200"; d="scan'208";a="207996518" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Sep 2021 04:55:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,280,1624345200"; d="scan'208";a="694084800" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga006.fm.intel.com with ESMTP; 09 Sep 2021 04:55:49 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 9 Sep 2021 04:55:49 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 9 Sep 2021 04:55:49 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.44) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 9 Sep 2021 04:55:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FVeAQ5WwmD585lvrbE2JGUvYCrYXnM3a/fng/KwzNZx06Bat9+t8wKSLl6Igfu2bMsOYQp2tviE3wGemJ5zwAD+bgK/tUfQTN2rPIMuWDq3QNnaVpVV5uslg45s6h1IrlQyaBO2JUoluywX8khKFQ51Qw+fKps0KRLGLb8oU/xmt+T3D9zYl6P746a0m2j6cnEeWcV1Lr1VvkCg5njvvl0wfZxptCOoPKH+6U/5+eMe1SLC/ojBmRDP4CwuMiLSFGGw6WBTLdys4MCicn37uibAc3tS7jUAZ01G4iZ4ObizoMWYvNew4HXgXQy5iqltRhjunSq4xhu21TTngeG8V4Q== 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; bh=UQDiPiZxTbgZq4/u5heYBCWcsm0yy6TOQjGoFS+L790=; b=Vb1eePArLjCLNxRAyM2RVjZZp+S7gp5lD0N5Jd3DGI5teN2A3yYNAqOHBoTB9c1XBFYFZ71CJcsvoz8c6Vg1nGrmjmu+8KlKXB1N3CIxY4RlfNMzR46bmXlCC3Ezym7O6jMpcHP0A2RlLLp+u1gQpgIRWcIzxHlTsJc1j/VjzWwlIWlLj61fTq5D97u3oY+fUgASALzDDB2JdkUIlW5ehDubGs50QzDrRxkXYkWZb3qSQl2BG+LUGQLfOBl8bzGEFA3j2Dhv2pGq6wx8Hsd894Pv4J1/gKYwRhfkKxGGgMw7Opdgi4X7Pd+XtjzhgURaASsUTV1KUyxBrf2Nqm599Q== 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=UQDiPiZxTbgZq4/u5heYBCWcsm0yy6TOQjGoFS+L790=; b=W8oTX8XPBNaFywiRmEVv+Yhmtc2gIwKBXt1+PQWFLqdWbj5RA5eEQJvnrP50eGJFtSKAnKSJuf8F8NssylmKacPouCgTPEHbqFf/S4hZyCUJw0UG7vu63TGeKJ3jYimm5UKll79SFUeom9eRwMIwazcRiNk45ugMqMAEb9k1t/4= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB5175.namprd11.prod.outlook.com (2603:10b6:510:3d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.21; Thu, 9 Sep 2021 11:55:48 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::754e:42e9:16cd:1306]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::754e:42e9:16cd:1306%7]) with mapi id 15.20.4500.017; Thu, 9 Sep 2021 11:55:48 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "brijesh.singh@amd.com" , "Xu, Min M" CC: James Bottomley , Tom Lendacky , "Justen, Jordan L" , Ard Biesheuvel , Erdem Aktas , Michael Roth , Gerd Hoffmann Subject: Re: [edk2-devel] [PATCH v6 00/29] Add AMD Secure Nested Paging (SEV-SNP) support Thread-Topic: [edk2-devel] [PATCH v6 00/29] Add AMD Secure Nested Paging (SEV-SNP) support Thread-Index: AQHXn00B059wRY98pU27Y2OZJ6b/8KuXyo8AgALLHYCAAE+tgIAArT0AgAARfsA= Date: Thu, 9 Sep 2021 11:55:47 +0000 Message-ID: References: <20210901161646.24763-1-brijesh.singh@amd.com> <4da448de-5e1c-85cf-9471-bf2d77281ac9@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action 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: 505b093f-3113-4c3c-b587-08d97388c363 x-ms-traffictypediagnostic: PH0PR11MB5175: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr 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: +6rcePAhfWW0i3T9RZEQhl7O7GWY5lnQYdIzGxBsg5pYWooLQBZAntK5VQG99Ry3FlvE52rGmJR1bfnerevTB5unRTBJRqFix2oC28fNUHvLzvW5p8d3zrd4Mpkcg376EWdGlw+My33OT9ThykiaEWRJWm40dxHhzCkLPeaFhmPsr3eyEKfjXED1nnGv93RM1dYka02IHyeWexWqpByOMHePZm5Zb6vmHG5F+39FZxJYzgizn3qCCMjbcw+FX2T+3cai/1kBJeIIpgtRsFSrTwuxsofktWYBz6JOQCwxDFBpEeWE5Ep99MRUIGMop9tt8YIydpJCnB+D/yDitmE1PMiQfIhSLb+p5SKGD5GZYY/ZCHDJ9bAvaHOtidEubmYtna3a/MH6VlWj4b+Ow4YZgzXMwcIiLh3w2Aisbx1vzEcNm9BVFfgpqa0b1K/I/hp5qqOzkuWuXCrZD7VjhuKLElDRyz9pJTe4qsM1Ep84DK+fmTJuXkOrSma/tW1cDN/brMmT03/V+gTD+sifIBocr8wBf8/ku0yeGbzlv7PiJ9zQKKo1dYV2t3VpQg54ik7KBC5QIOhQ7V2lfwlDf/ZdrtAyJU/gVUtlcqxZAhWHEsA2npKMwWQItvnuO/bPF2Ih1vmFvqfKD4w2HVleWykklDvXPvZ3qBDcXyS1lxNsfQknVQChfXziourPOZg70y9NDRx+3erBW48xAu7zs8Xi55GsKnMjhkHBsS2b36PNYnGIyGrteXlMi09QXYC92Jgt7A/o3vjumSJsANYQLeSWz22VByw/B+zHBaChez8tCbfwbc/8guTyUa/I2/P85WWy4GP+8JLMNxcrdcF0zHMzGw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6636002)(38070700005)(966005)(52536014)(76116006)(122000001)(33656002)(186003)(508600001)(66476007)(66556008)(26005)(66946007)(5660300002)(86362001)(110136005)(64756008)(54906003)(66446008)(83380400001)(316002)(71200400001)(9686003)(4326008)(2906002)(55016002)(6506007)(53546011)(38100700002)(8676002)(7696005)(8936002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eXFjUWQxTjIrQ0RUTis4a1JvellBcThrWmkyaWtwd1MvV1diTngzSldxd3Zq?= =?utf-8?B?REJ4V2dvb3JiV090SHlkSFZxYkRsaGsranlFV0oySlNXVTZJa2ExYXFRaGFx?= =?utf-8?B?OEttaWdDVFZBdThOT1lzQlBCd0ZFMmc3SjNIUEJkT1FaQ1VRY0x4TWFIQ0tH?= =?utf-8?B?MkEvRTM4bVUyVDRkeHNQNEpVaEpjcktwOEZLcFh0Wi9JMzhQeWJDL2FZKzg1?= =?utf-8?B?QmZOK042Zi80MXFJZ1ZjaHl6aDFqeWg1OFA3d1E2UVVFVTNzcTh4UjkxQkpj?= =?utf-8?B?RTN0UEovRjE4ZVByT2Z6Sk14WXFNL0d1aEprbUcrSkYzdGJNczZtZVhacm84?= =?utf-8?B?K3NjSzVzTzJZanJpcm9PMU5xZ0RaRkZNYVYzTTJNWExWcGVwN1NURHVqY2E1?= =?utf-8?B?V1NWa0U3OTZZUDhrMWZ5b1dxV3VaNHArNGdhSU9xV0pNS2dvN2kxL1Z6aG1w?= =?utf-8?B?dlFldGxROXh3SER3eVFsRndLdkRLUjloeDAwa3g0c2N0bHZVdGwrVlpTZTk4?= =?utf-8?B?a1FyTkZqVUZxWjRzT1VTaGxiNzBJd3JyaVd1U0JBeWp0SzJaZ3U3QXM4bXVy?= =?utf-8?B?QTMzUm5OQlBNdWxxU2VwczEzbDRzR3dEVHVSQStYa2RVdEtCYkNzOTk3QVg3?= =?utf-8?B?V0VodytjRmttRHZpbjVXL2ExbkVjYmZSSDhuSER0Nm0zZGxweUVRRkYwWkxN?= =?utf-8?B?U0JBK0tmVjBFbTFwTGt1c2IvdUlVMEphWmJwYnpvb2JBMS9KaTI2dHFYUnVF?= =?utf-8?B?RnV0aXYxSkU0Y1QxZzl4VmJyT1A1N3BIK3ZQek5sZ0ZZVVFSbEI1YmpHWUF3?= =?utf-8?B?aWtmYWRDMDRHQlU2eHozM1ZLbjlKMjhXaExvc0RFYkxlQkNPM0dkSWo2QjhM?= =?utf-8?B?WE9FWngwMnppRFoxWXYrMjFhbmdha01pY3NSd0JycWF1dUh1MkVsV0JrR0JG?= =?utf-8?B?OGFSZFRrQmRIcVZMV25ISmo1ei9udXg5VGNHRndreW9qVTBaVnN3QmRCWFlK?= =?utf-8?B?eU0xV1I5S09Md1NTTnYrK21YYU9IVlNkWmVMRHVvQ1VwWVdaR0t5K0NuZmVG?= =?utf-8?B?U3RGUXY3TEZocTFNVDc3WFI5MWZ0bkEwaFZkd1RncURVTnh1ZkEzY2JLTmdt?= =?utf-8?B?L0ZKSG5EVDkraFJpeUdaZ0ZRKzU2Y3BhZ21VQUd3T3FZbEJ0RHZpMWoveCtw?= =?utf-8?B?VnRBNkRMUHFSdkVEVGQ3NERpc1VjaEtMQTlOYW5HM09kR00rRFhuL0hCenFn?= =?utf-8?B?RzlSamNwWHNGVEN4OFFZbTVrRkRSazVrVHFGZUtHelhtcEJxNXR1V1NMTno5?= =?utf-8?B?WGt0NnNaUXJReHBEci9hZ045Yjlybk9sSEpBUDZuYmpNaXpWZVZpSEZ3YzNZ?= =?utf-8?B?SzQ4TDNyUjV1Q3pTYVZ5bVJqaTJ4ei9iUGprU0d6U3ltV291c1liMHYrVDhp?= =?utf-8?B?cFFZdXJML3JjV1dkRDZKQXF6My9xUnNwS3VheFc1VVZRbE9WY1Z5eGRpR3dp?= =?utf-8?B?L0xTekxDYUk1MGEzc1RneStpSEV6SmpwT0ova0ZyUWlqT28wdFRJTmM5Y1BI?= =?utf-8?B?KzJQRkFZWDFzMUwrUEQrMGNBbHdkWFFScTZ2M044UDlXNVUxN2RIRmZxQXZy?= =?utf-8?B?RUhucmJFR2tja1pXUVZ3V0s3T1NvZVloMHBiMlkvU2FZaTJ0RFBqRDR6TFhE?= =?utf-8?B?NTdEcFluNUJmRUxFb1prN013dENITmxGc1J1aEpLeFBGVU5vaFdhcG9RekVR?= =?utf-8?Q?m0WCJ6/Bvrx3LMrQTgEBQWxtq53JqK1xGGVnn48?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 505b093f-3113-4c3c-b587-08d97388c363 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Sep 2021 11:55:47.9209 (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: cqCSvlAHu2Bp3pVp7y/uy8YVE3BF98pk0rq1muwFFxLQ/X2vZ0SanSLAJctFzH4WcB/zXHdbDVixzWSCcuCBMw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5175 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBkbyBub3Qgc2VlIGFueSBjb25mbGljdCBoZXJlLg0KDQpZb3UgY2FuIHVzZSBiZWxvdyBkZWZp bml0aW9uDQogZW51bSB7DQogICBDQ19BVFRSX0FNRF9TRVYgPSAweDAwMDEsDQogICBDQ19BVFRS X0FNRF9TRVZfRVMgPSAgMHgwMTAxLA0KICAgQ0NfQVRUUl9BTURfU0VWX1NOUCA9ICAweDAyMDEs DQogICBDQ19BVFRSX0lOVEVMX1REWCA9ICAweDAwMDIsDQogfSBDb25maWRlbnRpYWxDb21wdXRp bmdBdHRyOw0KDQpCVFc6IFBsZWFzZSByZW1vdmUgU0dYLCB3ZSBkb27igJl0IG5lZWQgaXQgaGVy ZS4NCg0KVGhhbmsgeW91DQpZYW8gSmlld2VuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBP biBCZWhhbGYgT2YgQnJpamVzaA0KPiBTaW5naCB2aWEgZ3JvdXBzLmlvDQo+IFNlbnQ6IFRodXJz ZGF5LCBTZXB0ZW1iZXIgOSwgMjAyMSA2OjUxIFBNDQo+IFRvOiBYdSwgTWluIE0gPG1pbi5tLnh1 QGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47DQo+IGRldmVs QGVkazIuZ3JvdXBzLmlvDQo+IENjOiBKYW1lcyBCb3R0b21sZXkgPGplamJAbGludXguaWJtLmNv bT47IFRvbSBMZW5kYWNreQ0KPiA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+OyBKdXN0ZW4sIEpv cmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsNCj4gQXJkIEJpZXNoZXV2ZWwgPGFy ZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+OyBFcmRlbSBBa3Rhcw0KPiA8ZXJkZW1ha3Rhc0Bnb29n bGUuY29tPjsgTWljaGFlbCBSb3RoIDxNaWNoYWVsLlJvdGhAYW1kLmNvbT47IEdlcmQNCj4gSG9m Zm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQ QVRDSCB2NiAwMC8yOV0gQWRkIEFNRCBTZWN1cmUgTmVzdGVkIFBhZ2luZw0KPiAoU0VWLVNOUCkg c3VwcG9ydA0KPiANCj4gSGkgTWluLA0KPiANCj4gT24gOS84LzIxIDc6MzEgUE0sIFh1LCBNaW4g TSB3cm90ZToNCj4gPiBPbiBTZXB0ZW1iZXIgOSwgMjAyMSAzOjQ2IEFNLCBCcmlqZXNoIFNpbmdo IHdyb3RlOg0KPiA+PiBUaGFuayB5b3Ugc28gbXVjaCBZYW8gZm9yIHJldmlld2luZyB0aGUgcGF0 Y2hlcy4gQmFzZWQgb24gc29tZSBjb21tZW50cw0KPiA+PiBmcm9tIEdlcmQgSSBtYXkgdXBkYXRl IGNvZGUgYXJvdW5kIHRoZSByZXNldCB2ZWN0b3IgYXJlYSAobWFpbmx5IHVzZSB0aGUNCj4gPj4g bWV0YWRhdGEgZm9ybWF0IGV0YykuIEZvciB5b3VyIGNvbW1lbnRzIHJlZ2FyZGluZyB0aGUgaW50 cm9kdWNpbmcgYSBuZXcNCj4gPj4gUGNkQ29uZmlkZW50aWFsQ29tcHV0aW5nQ2F0ZWdvcnkgSSB3 aWxsIGxvb2sgdG8gc2VlIHdoYXQgSSBjYW4gY29tZSB1cA0KPiB3aXRoDQo+ID4+IGFuZCBpbiBV ZWZpQ3B1UGtnIEkgd2lsbCB0cnkgdG8gbW92ZSBhbGwgdGhlIFNFViBzcGVjaWZpYyBmdW5jdGlv bnMgaW4gbmV3IGZpbGVzDQo+ID4+ICh3aGVyZSBhcHBsaWNhYmxlKS4NCj4gPj4NCj4gPiBIaSwg QnJpamVzaA0KPiA+IGlmIHlvdSBhcmUgY29uc2lkZXJpbmcgdG8gaW50cm9kdWNlIGEgbmV3IFBj ZENvbmZpZGVudGlhbENvbXB1dGluZ0NhdGVnb3J5DQo+ID4gYXMgSmlld2VuIHN1Z2dlc3RlZCBi ZWxvdzoNCj4gPj4+IDAwMDgtVWVmaUNwdVBrZy1EZWZpbmUtdGhlLVNFVi1TTlAtc3BlY2lmaWMt ZHluYW1pYy1QQ0RzDQo+ID4+PiBJIHJlYWxseSBkb24ndCBsaWtlIHRoZSBpZGVhIHRvIHVzZSBC T09MIFBjZFNldkVzSXNFbmFibGVkIGFuZA0KPiA+PiBQY2RTZXZTbnBJc0VuYWJsZWQuDQo+ID4+ PiBDYW4gd2UgZGVmaW5lICpvbmUqIFBDRCAtIHN1Y2ggYXMgUGNkQ29uZmlkZW50aWFsQ29tcHV0 aW5nQ2F0ZWdvcnk/DQo+ID4+PiBXZSBjYW4gYXNzaWduIHJhbmdlIDB4MDAwMH4weEZGRkYgdG8g QU1EIFNFViwgMHgxMDAwMH4weDFGRkZGIHRvIEludGVsDQo+ID4+IFREWC4NCj4gPj4+IFRoZW4g U0VWPTB4MDAwMCwgU0VWLUVTPTB4MDAwMSwgU0VWLVNOUD0weDAwMDIsIGFuZCBURFg9MHgxMDAw MA0KPiA+PiBsYXRlci4NCj4gPj4+IEkgcmVhbGx5IGRvbid0IHdhbnQgdG8ga2VlcCBhZGRpbmcg UENEIGVuZGxlc3NseSBpbiB0aGUgZnV0dXJlLCBsaWtlDQo+ID4+IFBjZFNldlhYWElzRW5hYmxl ZCwgUGNkU2V2WVlZSXNFbmFibGVkLCBQY2RUZHhJc0VuYWJsZWQsDQo+ID4+IFBjZFRkeDIwRW5h YmxlZCwgUGNkVGR4MzBFbmFibGVkLCAuLi4uLi4NCj4gPiBJIGFsc28gaGF2ZSBzb21lIHN1Z2dl c3Rpb25zLg0KPiA+DQo+ID4gQXMgd2UgaGF2ZSBiZWxvdyBkZWZpbml0aW9uIGluIFdvcmtBcmVh LmgNCj4gPiAgIHR5cGVkZWYgc3RydWN0IF9DT05GSURFTlRJQUxfQ09NUFVUSU5HX1dPUktfQVJF QV9IRUFERVIgew0KPiA+ICAgICBVSU5UOCAgICAgICAgICAgICAgICAgICBHdWVzdFR5cGU7DQo+ ID4gICAgIFVJTlQ4ICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMVszXTsNCj4gPiAgIH0gQ09O RklERU5USUFMX0NPTVBVVElOR19XT1JLX0FSRUFfSEVBREVSOw0KPiA+DQo+ID4gQ2FuIHdlIHVw ZGF0ZSBhYm92ZSBDT05GSURFTlRJQUxfQ09NUFVUSU5HX1dPUktfQVJFQV9IRUFERVIgdG8NCj4g YmVsb3c6DQo+ID4gICB0eXBlZGVmIHN0cnVjdCBfQ09ORklERU5USUFMX0NPTVBVVElOR19XT1JL X0FSRUFfSEVBREVSIHsNCj4gPiAgICAgVUlOVDggICAgICAgICAgICAgICAgICAgR3Vlc3RUeXBl Ow0KPiA+ICAgICBVSU5UOCAgICAgICAgICAgICAgICAgICBTdWJUeXBlOyAgICAgICAgICAgICAg IC8vIHN1YnR5cGUgd2hpY2ggaW5kaWNhdGVzIFNFVi1FUywgU0VWLU5QLA0KPiBvciBURFggMS4w LCBURFggMi4wIGV0Yy4NCj4gPiAgICAgVUlOVDggICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQx WzJdOw0KPiA+ICAgfSBDT05GSURFTlRJQUxfQ09NUFVUSU5HX1dPUktfQVJFQV9IRUFERVI7DQo+ ID4NCj4gPiBUaGUgUGNkQ29uZmlkZW50aWFsQ29tcHV0aW5nQ2F0ZWdvcnkgY2FuIGJlIGRlZmlu ZWQgYXMgVUlOVDMyLCBsaWtlIGJlbG93Og0KPiA+ICAgIyMgVGhpcyBkeW5hbWljIFBDRCBpbmRp Y2F0ZXMgdGhlIENvbmZpZGVudGlhbCBDb21wdXRpbmcgQ2F0ZWdvcnkNCj4gPiAgICMgIFs3OjBd ICAgQ29uZmlkZW50aWFsIENvbXB1dGluZyBDYXRlZ29yeSAgKDAgLSBOb24tQ2MsIDEgLSBBbWRT ZXYsIDIgLQ0KPiBJbnRlbFRkeCkNCj4gPiAgICMgIFsxNTo4XSAgU3ViLUNhdGVnb3J5IChkZWZp bmVkIGJ5IGVhY2ggdmVuZG9yLCBTRVYtRVMsIFNFVi1TTlAsIG9yIFREWC0xLjAsDQo+IFREWC0y LjAsIGV0YykNCj4gPiAgICMgIFszMToxNl0gUmVzZXJ2ZWQNCj4gPiAgICMgQFByb21wdCBDb25m aWRlbnRpYWwgQ29tcHV0aW5nIENhdGVnb3J5DQo+ID4NCj4gZ1VlZmlDcHVQa2dUb2tlblNwYWNl R3VpZC5QY2RDb25maWRlbnRpYWxDb21wdXRpbmdDYXRlZ29yeXwwfFVJTlQzMnwweA0KPiA2MDAw MDAxOA0KPiA+DQo+ID4gU28gdGhhdCB3ZSBzaW1wbHkgY29weSB0aGUNCj4gQ09ORklERU5USUFM X0NPTVBVVElOR19XT1JLX0FSRUFfSEVBREVSIHRvDQo+IFBjZENvbmZpZGVudGlhbENvbXB1dGlu Z0NhdGVnb3J5Lg0KPiA+IFdoYXQncyB5b3VyIHRob3VnaHQ/DQo+IA0KPiBJIGFtIG5vdCBzdXJl IGlmIGl0cyBhIGdvb2QgaWRlYSB0byBwYWNrIGEgaGVhZGVyIGxpa2UgYWJvdmUgaW4gYSAzMi1i aXQNCj4gUENELiBUaGUgY2FsbGVyIG5lZWQgdG8gdW5wYWNrIHRoZSAzMi1iaXQgbnVtYmVyIGFu ZCBwZXJmb3JtIGEgYml0c2hpdA0KPiBldGMuIEFkZGl0aW9uYWxseSB3ZSBhbHNvIG5lZWQgdG8g Y2hlY2sgZm9yIHJlc2VydmVkIGJpdHMgYmVpbmcgc2V0IHRvDQo+IHplcm8gZXRjLiBJIGFtIG1v cmUgaW5jbGluZWQgdG93YXJkIHNvbWV0aGluZyBsaWtlIHRoaXM6DQo+IA0KPiBlbnVtIHsNCj4g DQo+IMKgwqAgLyogVGhlIGd1ZXN0IGlzIHJ1bm5pbmcgd2l0aCBtZW1vcnkgZW5jcnlwdGlvbiBk aXNhYmxlZC4gKi8NCj4gDQo+IMKgwqDCoCBDQ19BVFRSX1VOREVGLA0KPiANCj4gwqAgLyogVGhl IGd1ZXN0IGlzIHJ1bm5pbmcgd2l0aCBhY3RpdmUgQU1EIFNFViBtZW1vcnkgZW5jcnlwdGlvbi4g Ki8NCj4gDQo+IMKgwqAgQ0NfQVRUUl9BTURfU0VWLA0KPiANCj4gwqAgLyogVGhlIGd1ZXN0IGlz IHJ1bm5pbmcgd2l0aCBhY3RpdmUgQU1EIFNFVi1FUyBtZW1vcnkgZW5jcnlwdGlvbi4gKi8NCj4g DQo+IMKgIENDX0FUVFJfQU1EX1NFVl9FUywNCj4gDQo+IMKgIC8qIFRoZSBndWVzdCBpcyBydW5u aW5nIHdpdGggYWN0aXZlIEFNRCBTRVYtU05QIG1lbW9yeSBlbmNyeXB0aW9uLiAqLw0KPiANCj4g wqAgQ0NfQVRUUl9BTURfU0VWX1NOUCwNCj4gDQo+IMKgLyogVGhlIGd1ZXN0IGlzIHJ1bm5pbmcg d2l0aCBhY3RpdmUgSW50ZWwgVERYIG1lbW9yeSBlbmNyeXB0aW9uLiAqLw0KPiANCj4gwqBDQ19B VFRSX0lOVEVMX1REWCwNCj4gDQo+IMKgLyogVGhlIGd1ZXN0IGlzIHJ1bm5pbmcgd2l0aCBhY3Rp dmUgSW50ZWwgU0dYIG1lbW9yeSBlbmNyeXB0aW9uLiAqLw0KPiANCj4gwqBDQ19BVFRSX0lOVEVM X1NHWCwNCj4gDQo+IH0gQ29uZmlkZW50aWFsQ29tcHV0aW5nQXR0cjsNCj4gDQo+IFRoZSBQY2RD b25maWRlbnRpYWxDb21wdXRpbmdBdHRyIHdpbGwgYmUgc2V0IHRvIHplcm8uIFRoZSBPVk1GIHdp bGwgc2V0DQo+IHRoaXMgZHluYW1pYyBQQ0QgaW4gUEVJIHBoYXNlLiBUaGUgVWVmaUNwdVBrZyB3 aWxsIHByb3ZpZGUgYSBuZXcNCj4gZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBieSBhbnlvbmUg dG8gY2hlY2sgdGhlIENDIGd1ZXN0IHR5cGUuDQo+IA0KPiBCT09MRUFODQo+IA0KPiBDY1BsYXRm b3JtSGFzKGVudW0gQ29uZmlkZW50aWFsQ29tcHV0aW5nQXR0ciBhdHRyKQ0KPiANCj4gew0KPiAN Cj4gwqDCoMKgIFVJTlQzMiBWYWw7DQo+IA0KPiDCoMKgwqAgVmFsID0gUGNkR2V0MzIgKFBjZENv bmZpZGVudGlhbENvbXB1dGluZ0F0dHIpOw0KPiANCj4gwqDCoMKgIHJldHVybiB2YWwgPT0gYXR0 cjsNCj4gDQo+IH0NCj4gDQo+IA0KPiA+IFRoYW5rcyENCj4gPiBNaW4NCj4gDQo+IA0KPiANCj4g DQoNCg==