From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.17289.1684833286169732921 for ; Tue, 23 May 2023 02:14:46 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=eYr9/raj; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: dun.tan@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684833286; x=1716369286; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=x6jV6iuDfqt1AeBjB7fjD4QL2xLLJnVoJUoWcDeYlTM=; b=eYr9/rajliI5fMn+RrkypndnrT7G2FneOjD3KmpzvPzh0OO1/GYq4xfN T5vI6fO0uzwTDnkHJto58uqw+7e7l3Jxi4ZUgOCmmYoO3IPXzB7MYXnH+ i2Mwb1nxAphFUOGUMl9Hin80dOEu9uFuesPViGtodHRXX8rB4z/fcS/Qe sfMn4ZuyTNCp13wWVsI94Fdv1PS3qweGpgM3fQd3Otd7HMbyIxoe9xQth xIW9E82T1SA6T+MeZSbiF1se+xu3cotSmB4hBI1t/4QHNbseQaf6yTUck TMWMc78m0ZDlYgaxHlCLl8ZKGZbEIpJhzqs/d45yztItI1OkZN5fBjsxK A==; X-IronPort-AV: E=McAfee;i="6600,9927,10718"; a="352031816" X-IronPort-AV: E=Sophos;i="6.00,185,1681196400"; d="scan'208";a="352031816" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 May 2023 02:14:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10718"; a="703864775" X-IronPort-AV: E=Sophos;i="6.00,185,1681196400"; d="scan'208";a="703864775" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 23 May 2023 02:14:44 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.23; Tue, 23 May 2023 02:14:44 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 23 May 2023 02:14:44 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) 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.2507.23; Tue, 23 May 2023 02:14:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n8lI3gpeHqSuMFdwmiebUolwRDXQ8Md3g9d24VMN1gAcXBU82mxRESf3n5LKt5u9OCYbtoASLKeqAOjdUW8i4pZNKU+3RzMupM5pCbdOKANzGg7y7N4XTQeFvsVn1GVgWvu9pqQZReADW3j6IYGCyzi4iEvmNE5RpiSLbAYHG2JitB/higX+KBALnWrh+8GQSQ8bWo5voDgA2HTaImmignqxz3bfnO0dG5kW70IbHpS98Y1ZRHCv1FH4p7LhZRWRmQCHcB3PnMvVKV8WXYgms1rsv9XCW8meDSDWfhW1knzq+1H6p71T8VVBomYhLQmJSz8SwUtTlMZDbpXHvdS7xg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=x6jV6iuDfqt1AeBjB7fjD4QL2xLLJnVoJUoWcDeYlTM=; b=G6l8+LX0UGzK1PL+9sRagHKjqsD5XZC96x4gIAaAuK6ZXvmZFHfXNcpOP2MTmNeesdz8F8d6S7tygEEEbhXTZDUbTixNz0QECnmmP2CA2QHaXm3il1c+8mZ85Ydk88OtzLwOOZKt7tFQIURRs35fiNNKXv8O3XBxptfSAio0XOeZSBMjg5DQNUi+gf/ioRHfXVARk4vI7/E6w6bGZJ+tENUKqQol+CC00Na49hR7Nz5o+gD/+HqXUUaRfceW0o5gGu7N7iOFKHOcICRxYIM+zqygQrzbqbJLI3rqWbqQAJrk1MtSlbTlgqbj3hZBDGtzuP6uE2JzlN9lC8Dbf+Q2RA== 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 Received: from BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by SA1PR11MB7109.namprd11.prod.outlook.com (2603:10b6:806:2ba::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Tue, 23 May 2023 09:14:41 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a%5]) with mapi id 15.20.6411.028; Tue, 23 May 2023 09:14:41 +0000 From: "duntan" To: Kun Qin , "devel@edk2.groups.io" CC: "Dong, Eric" , "Ni, Ray" , "Kumar, Rahul R" , Gerd Hoffmann Subject: Re: [edk2-devel] [Patch V4 07/15] UefiCpuPkg/PiSmmCpuDxeSmm: Add 2 function to disable/enable CR0.WP Thread-Topic: [edk2-devel] [Patch V4 07/15] UefiCpuPkg/PiSmmCpuDxeSmm: Add 2 function to disable/enable CR0.WP Thread-Index: AQHZir7MdvWxbsGcPUyuy9LoDGom8a9nh+NA Date: Tue, 23 May 2023 09:14:40 +0000 Message-ID: References: <20230516095932.1525-1-dun.tan@intel.com> <20230516095932.1525-8-dun.tan@intel.com> <88ebdba4-c595-2b4e-885e-a0fef4beea2f@gmail.com> In-Reply-To: <88ebdba4-c595-2b4e-885e-a0fef4beea2f@gmail.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5483:EE_|SA1PR11MB7109:EE_ x-ms-office365-filtering-correlation-id: 6b71b65f-0442-42b8-f50a-08db5b6e23ef x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: x/T5ngZgZbAAmeCjUB4MJu6olbDQYM92So7WxXW9R/n5I0GLdtj2aPtF8nWW51y7bMN7sDNWpa5bfe57tY8fOpyoho/6K2my1oPoPaycAXCk+XVlhx4j4uYmSDk63zNxlH+a7PWU8b3XIvskfSLsr5HN99MWXcXSuwXRz59blYWEYGle3o3hp2mbFfd6xFyaBBvjFjq3qf9Si6xjxa98QLcRXZiRcx64Dl9FUX3LRgj6XNbxHAGA88U5RGSvY3WJTH80KMY9cQasCX/3u4uZoOzrbwWQq4ex62D+n/a4WLDSjGdpZ+twnl/5c5PNhfbnh20TSF2jQlEplQSwdrb39rGjwl6KGptKfSaKGvuFpmJ5kIVWTFmPFM9wGOUOXaJn/sZ1tOAzkYTfQ32/3vKoxSC1Sl6rSzP02GXxx5zMTzVyJ/vy/bzTrQGQhKj1pEX2B5aTmWlrT930dfoVWdKf4OQ8cpxwIhn7PYZDCEBl44jlndds3hlgs3G0LximQHsLcdzsjApnREG7u4QPKY0ps08QKKJJdaMBfq71z4rqkbbZbXYmtBGj8NqTYWFh06uzISvVDLX8ijvGsjTcgdg/JINm/6Ejg2Y1DGw7XFFw5eZGFN+Csf3uncB/Ey22WFII x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(6029001)(396003)(366004)(39860400002)(376002)(136003)(346002)(451199021)(8936002)(8676002)(52536014)(5660300002)(186003)(83380400001)(6506007)(9686003)(122000001)(53546011)(86362001)(38100700002)(38070700005)(82960400001)(71200400001)(41300700001)(7696005)(33656002)(55016003)(64756008)(66446008)(66556008)(66946007)(66476007)(76116006)(316002)(4326008)(478600001)(110136005)(54906003)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?c21lWjQ5eG5aL1pMa2l6TlNlUjVXT2NJYUp3Zmo4WU85Qk9rVW5PZkFvQSty?= =?utf-8?B?UmVoaUVBQ1RFcUVmUE5DcExpVDQzazlXczJSSlJHbGpSLzZrTnV0T0R4K0dP?= =?utf-8?B?M1NqQmNxMlMrTzZCQ1N3UDFZWmNZVzFKOXNrTjBBYjIyTU1RVU5aekZwS3c0?= =?utf-8?B?L3dqTytYMUwxZ2pEVmtNN2dBamlrT3p6RnYxQzhtMkZXQ28yQnUzeDRVM3dP?= =?utf-8?B?cVk3YlJCUGlqY1ZEdVpkOTZ5S3plMFZUcGwrT2JSRWtFU0VZNkFXRm9YSnY1?= =?utf-8?B?cTA5VFlPT0JPZCtoQmlnWVdCQklMeVlnWlJsS3J6NFdrdC9YdWFueVU4QnZy?= =?utf-8?B?QUJVNWRUUVMrUU5pUi9LNVlSdHVCYmd6OWlYNmNJOExhdTJaaUdwVVM2SlNr?= =?utf-8?B?T2tSN1JvZ2dQUFZ2anNJRGZNSlRPekFHQ3BDN0hjV29oK3lBZXR4SG01d2dM?= =?utf-8?B?bHREN2xwa0YrT00xTEdCaENsMzJWbUlFZHRuNFo2LzhSUStWS1RIL0hqMlRC?= =?utf-8?B?UWhsWHJ0UmxXOHpCanFWWVQ4TlVJOW94R3JuQUJzNHBpZFJ1WVVydldyVVBK?= =?utf-8?B?VjJFYnE3R1AyUUU3YmZqR2NsVThJcmNwdDQ2TlJCbXN6TGphM3RZTmQvczB2?= =?utf-8?B?Z1RyQmh1SU1kLzhRSTRZWGxpRXFXYUNHQ0tGWDdYL09oM282bmtsL3duTnVL?= =?utf-8?B?a0VOSzJ3cTk1MkE5MDhLYW1UOU5BT090KzBCazAxdkkySHBZd1NVRW4vWVJB?= =?utf-8?B?NWtKRGNtS0lmL0orUjVWVFh6bm5VQXRoWEUxKzNwNCs1UkxFaUFxYkJORVdl?= =?utf-8?B?cGQ4R0lXK25XWUdNeVdJWnpwY0M4MGtyTEE1b3FxNTZNeDFod1JidEthYnA3?= =?utf-8?B?WDRUMzBHaHgyWHlBMDUybm4rY3dMd21LR2JKalV3dUYxaklPeHZteUgzVDlO?= =?utf-8?B?dGNmYmd0bEp4c2dOVEdjRkgrM1hvSjJQYk4xeUV1US9VNkVpZm5nVnk2YXZn?= =?utf-8?B?bVhUL3hZN0RWcnJlSVEwVnU1bGIxMHNmeGdDMjZHclBBMUN4cDd3Q3dSSTBB?= =?utf-8?B?R0luczNwYmVoZUwwWXY1R2RQZkVzUUF0Sms2anhnTWNxRlUxTWVaSnRNSWpS?= =?utf-8?B?OWdlSkhBOG9NcWl5L1pBVm5oeFNIeDJUZVdFUDBJUkxXcFVUSGoxTitpZDVM?= =?utf-8?B?MjRPVWQ5N1ltRitScThUR0tOOHlhaFcxY1ZQcjNqN3p0ZWZDNm9NMU1ER0ND?= =?utf-8?B?UVhzMWMvcFFJc21ZS0x4Ykg4Sy9JWHZpTnQrVlA4TjdFbDBDQWxxZE8wb0xl?= =?utf-8?B?VHRmNjVsNlh2V3NnMGtGbm45anVIT00zMWxtM2ZBTDBKN2Y5Zi9QcEl6bmhi?= =?utf-8?B?cHZOeEVKZGM0NDJPaCtzbWZONlpUMzU1TFFYbEIvQ0FjYWZvdlJoNEdNbXhB?= =?utf-8?B?c0FKdS9lTHl4MG10NDk1MWdlUUVtWW9qdzBleDZhaFcrUm53SWhrLzBaRUYx?= =?utf-8?B?VTl1MlV2dFllTVV3ODNBVGdYVFEwNHpmaXZobWc1SEErQ2kvVDZKR1BneWNE?= =?utf-8?B?Y29KaS9KdUVqNnFyWjFGd1JFZ0dCWHJKU2kvVnFKWHRrVnpsZStKcTRjdGRl?= =?utf-8?B?dGdaQ3lYQlUyUlZlb095dHVNWERVcVozRGtkNTQrbzZ4ZGVqdjBIazhIWHA2?= =?utf-8?B?R1BXL2liQUdGM05FSG5VMmQ1U0dkcG8zdUZHMmxJVm5vdERYV0wzSjZUVWxU?= =?utf-8?B?QjRqZHBXYitZempPMUpOSEI3N1VaWFN5RVBoaU5ONVRoZWVmZ0hWcWJKeHhp?= =?utf-8?B?SitDQzN0ZU50ZGxmdjBMWHNQZG5ONFdkT3BDSWZyVDhzL2lGSC9lR0crYnd0?= =?utf-8?B?aWtMemcxcno4Q293VHAwRTFBMTFWNi82WU0wZDEvRy9NZmxEdm9TNWF4OVo3?= =?utf-8?B?TzR4aEdBUnBkU281V2VqV001ZEJvNStGd1doVVNDNWN0eU1UZnZmam5COENF?= =?utf-8?B?c3Mrb2JrMVRGSFhQOUQ3UW9DQ2t1eXhpZHF0OHRWZTJINUF2NC9rSkhqN2Vp?= =?utf-8?B?SmxXaEh0TWFteHFtUnBGeXU1KzI5blhsUGNuUT09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b71b65f-0442-42b8-f50a-08db5b6e23ef X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2023 09:14:40.9970 (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: 24isx81rs/62FLBspiga74E+BBWzwzXaVayqqWe8NEixHFeyQroRPXtzzV7IgLLjYS1RaAOA1ncmoDfBO5JXrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7109 Return-Path: dun.tan@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgS3VuLA0KDQpJJ3ZlIHVwZGF0ZWQgbXkgYW5zd2VycyBpbiB5b3VyIG9yaWdpbmFsIG1haWwu DQoNClRoYW5rcywNCkR1bg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogS3Vu IFFpbiA8a3VxaW4xMkBnbWFpbC5jb20+IA0KU2VudDogU2F0dXJkYXksIE1heSAyMCwgMjAyMyAx MDowMCBBTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBUYW4sIER1biA8ZHVuLnRhbkBpbnRl bC5jb20+DQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5pLCBSYXkgPHJh eS5uaUBpbnRlbC5jb20+OyBLdW1hciwgUmFodWwgUiA8cmFodWwuci5rdW1hckBpbnRlbC5jb20+ OyBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW1BhdGNoIFY0IDA3LzE1XSBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tOiBBZGQgMiBm dW5jdGlvbiB0byBkaXNhYmxlL2VuYWJsZSBDUjAuV1ANCg0KSGkgRHVuLA0KDQpUaGFua3MgZm9y IHRoZSBub3RpY2Ugb24gdGhlIG90aGVyIHRocmVhZCAodjQgMDQvMTUpLg0KDQpJIGhhdmUgYSBm ZXcgbW9yZSBxdWVzdGlvbnMgb24gdGhpcyBzcGVjaWZpYyBwYXRjaCAoYW5kIGEgZmV3IGFzc29j aWF0ZWQgY29tbWl0cyByZWxhdGVkIHRvIGl0KToNCg0KV2h5IHdvdWxkIHdlIGFsbG93IHBhZ2Ug dGFibGUgbWFuaXB1bGF0aW9uIGFmdGVyIGBtSXNSZWFkT25seVBhZ2VUYWJsZWAgaXMgZXZhbHVh dGVkIHRvIFRSVUU/DQpEdW46IGBtSXNSZWFkT25seVBhZ2VUYWJsZWAgaXMgYSBmbGFnIHRvIGlu ZGljYXRlIHRoYXQgY3VycmVudCBwYWdlIHRhYmxlIGhhcyBiZWVuIG1hcmtlZCBhcyBSTyBhbmQg dGhlIG5ldyBhbGxvY2F0ZWQgcG9vbCBzaG91bGQgYWxzbyBiZSBSTy4gV2Ugb25seSBuZWVkIHRv IGNsZWFyIENyMC5XUCBiZWZvcmUgbW9kaWZ5IHBhZ2UgdGFibGUuDQoNCg0KQXMgZmFyIGFzIEkg Y2FuIHRlbGwsIGBtSXNSZWFkT25seVBhZ2VUYWJsZWAgaXMgc2V0IHRvIFRSVUUgaW5zaWRlIGBT ZXRQYWdlVGFibGVBdHRyaWJ1dGVzYCBmdW5jdGlvbiwgYnV0IHRoZW4gd2UgYWxzbyBoYXZlIGNv ZGUgaW4gYEluaXRpYWxpemVQYWdlVGFibGVQb29sYCB0byBleHBlY3QgbW9yZSBwYWdlIHRhYmxl cyB0byBiZSBhbGxvY2F0ZWQuDQpDb3VsZCB5b3UgcGxlYXNlIGxldCBtZSB3aGVuIHRoaXMgd291 bGQgaGFwcGVuPw0KRHVuOiBBZnRlciBgU2V0UGFnZVRhYmxlQXR0cmlidXRlc2AsIGluICdTbW1D cHVGZWF0dXJlc0NvbXBsZXRlU21tUmVhZHlUb0xvY2soKScgQVBJIG9mIGRpZmZlcmVudCBwbGF0 Zm9ybSBTbW1DcHVGZWF0dXJlc0xpYiwgRURLSUlfU01NX01FTU9SWV9BVFRSSUJVVEVfUFJPVE9D T0wgbWF5IGJlIHVzZWQgdG8gY29udmVydCBtZW1vcnkgYXR0cmlidXRlLiBBbHNvLCBpbiBTTUkg aGFuZGxlciBhZnRlciBSZWFkeVRvTG9jaywgRURLSUlfU01NX01FTU9SWV9BVFRSSUJVVEVfUFJP VE9DT0wgc3RpbGwgbWF5IGJlIHVzZWQgdG8gY29udmVydCBtZW1vcnkgYXR0cmlidXRlLiBEdXJp bmcgdGhpcyBwcm9jZXNzLCBpZiBwYWdlIHNwbGl0IGhhcHBlbnMsIG5ldyBwYWdlIHRhYmxlIHBv b2wgbWF5IGJlIGFsbG9jYXRlZC4NCg0KDQpJIHRob3VnaHQgdGhlcmUgd291bGQgbm90IGJlIGFu eSBuZXcgcGFnZSB0YWJsZSBtZW1vcnkgKGkuZS4gbWVtb3J5IGF0dHJpYnV0ZSB1cGRhdGUpIGFm dGVyIHJlYWR5IHRvIGxvY2sgd2l0aCByZXN0cmljdGVkIG1lbW9yeSBhY2Nlc3Mgb3B0aW9uPyAg V2l0aCB0aGVzZSBjaGFuZ2UsIGl0IHNlZW1zIHRvIGJlIGRvYWJsZSB0aHJvdWdoIEVES0lJX1NN TV9NRU1PUllfQVRUUklCVVRFX1BST1RPQ09MIG5vdywgaXMgdGhhdCBjb3JyZWN0PyBJZiBzbywg d291bGQgeW91IG1pbmQgc2hlZGRpbmcgc29tZSBsaWdodCBvbiB3aGF0IG90aGVyIGJlaGF2aW9y IGNoYW5nZXMgdGhlcmUgbWlnaHQgYmU/DQpEdW46IERvIHlvdSBtZWFuIHRoYXQgd2Ugc2hvdWxk IGNoZWNrIGlmIFJlYWR5VG9Mb2NrIGluIEVES0lJX1NNTV9NRU1PUllfQVRUUklCVVRFX1BST1RP Q09MIGltcGxlbWVudGF0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IHBhZ2UgdGFibGUgd29uJ3QgYmUg bW9kaWZpZWQgYWZ0ZXIgUmVhZHlUb0xvY2s/DQpJZiBpcywgYXMgSSBtZW50aW9uZWQgYWJvdmUs IHBhZ2UgdGFibGUgc3RpbGwgbWF5IGJlIG1vZGlmaWVkIGFmdGVyIFJlYWR5VG9Mb2NrLg0KDQoN CkluIGFkZGl0aW9uLCBJIG1pZ2h0IG1pc3MgaXQgaW4gdGhlIHBhdGNoIHNlcmllcy4gSWYgdGhl IG5ld2x5IGFsbG9jYXRlZCBwYWdlIG1lbW9yeSBpcyBtYXJrZWQgYXMgcmVhZCBvbmx5IGFmdGVy IHRoZSBhYm92ZSBmbGFnIGlzIHNldCB0byBUUlVFLCBob3cgd291bGQgdGhlIGNhbGxlcnMgYWJs ZSB0byB1c2UgdGhlbT8NCkR1bjogQ2FsbGVyIGNhbiBjbGVhciB0aGUgQ3IwLldQIGJlZm9yZSBt b2RpZnlpbmcgdGhlIHBhZ2UgdGFibGUuIA0KDQoNClRoYW5rcyBpbiBhZHZhbmNlLg0KDQpSZWdh cmRzLA0KS3VuDQoNCk9uIDUvMTYvMjAyMyAyOjU5IEFNLCBkdW50YW4gd3JvdGU6DQo+IEFkZCB0 d28gZnVuY3Rpb25zIHRvIGRpc2FibGUvZW5hYmxlIENSMC5XUC4gVGhlc2UgdHdvIHVuY3Rpb25z IHdpbGwgDQo+IGFsc28gYmUgdXNlZCBpbiBsYXRlciBjb21taXRzLiBUaGlzIGNvbW1pdCBkb2Vz bid0IGNoYW5nZSBhbnkgDQo+IGZ1bmN0aW9uYWxpdHkuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IER1 biBUYW4gPGR1bi50YW5AaW50ZWwuY29tPg0KPiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50 ZWwuY29tPg0KPiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiBDYzogUmFodWwgS3Vt YXIgPHJhaHVsMS5rdW1hckBpbnRlbC5jb20+DQo+IENjOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxA cmVkaGF0LmNvbT4NCj4gLS0tDQo+ICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNw dUR4ZVNtbS5oICAgICAgICAgfCAgMjQgKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAgVWVm aUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMgfCAxMTUgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiAgIDIgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pDQo+ DQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21t LmggDQo+IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oDQo+IGlu ZGV4IGJhMzQxY2FkYzYuLmUwYzRjYTc2ZGMgMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KPiArKysgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1 RHhlU21tL1BpU21tQ3B1RHhlU21tLmgNCj4gQEAgLTE1NjUsNCArMTU2NSwyOCBAQCBTbW1XYWl0 Rm9yQXBBcnJpdmFsICgNCj4gICAgIFZPSUQNCj4gICAgICk7DQo+ICAgDQo+ICsvKioNCj4gKyAg RGlzYWJsZSBXcml0ZSBQcm90ZWN0IG9uIHBhZ2VzIG1hcmtlZCBhcyByZWFkLW9ubHkgaWYgQ3Iw LkJpdHMuV1AgaXMgMS4NCj4gKw0KPiArICBAcGFyYW1bb3V0XSAgV3BFbmFibGVkICAgICAgSWYg Q3IwLldQIGlzIGVuYWJsZWQuDQo+ICsgIEBwYXJhbVtvdXRdICBDZXRFbmFibGVkICAgICBJZiBD RVQgaXMgZW5hYmxlZC4NCj4gKyoqLw0KPiArVk9JRA0KPiArRGlzYWJsZVJlYWRPbmx5UGFnZVdy aXRlUHJvdGVjdCAoDQo+ICsgIE9VVCBCT09MRUFOICAqV3BFbmFibGVkLA0KPiArICBPVVQgQk9P TEVBTiAgKkNldEVuYWJsZWQNCj4gKyAgKTsNCj4gKw0KPiArLyoqDQo+ICsgIEVuYWJsZSBXcml0 ZSBQcm90ZWN0IG9uIHBhZ2VzIG1hcmtlZCBhcyByZWFkLW9ubHkuDQo+ICsNCj4gKyAgQHBhcmFt W291dF0gIFdwRW5hYmxlZCAgICAgIElmIENyMC5XUCBzaG91bGQgYmUgZW5hYmxlZC4NCj4gKyAg QHBhcmFtW291dF0gIENldEVuYWJsZWQgICAgIElmIENFVCBzaG91bGQgYmUgZW5hYmxlZC4NCj4g KyoqLw0KPiArVk9JRA0KPiArRW5hYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgNCj4gKyAg Qk9PTEVBTiAgV3BFbmFibGVkLA0KPiArICBCT09MRUFOICBDZXRFbmFibGVkDQo+ICsgICk7DQo+ ICsNCj4gICAjZW5kaWYNCj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v U21tQ3B1TWVtb3J5TWFuYWdlbWVudC5jIA0KPiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v U21tQ3B1TWVtb3J5TWFuYWdlbWVudC5jDQo+IGluZGV4IDJmYWVlOGY4NTkuLjRiNTEyZWRmNjgg MTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21tQ3B1TWVtb3J5TWFu YWdlbWVudC5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21tQ3B1TWVtb3J5 TWFuYWdlbWVudC5jDQo+IEBAIC00MCw2ICs0MCw2NCBAQCBQQUdFX1RBQkxFX1BPT0wgICptUGFn ZVRhYmxlUG9vbCA9IE5VTEw7DQo+ICAgLy8NCj4gICBCT09MRUFOICBtSXNSZWFkT25seVBhZ2VU YWJsZSA9IEZBTFNFOw0KPiAgIA0KPiArLyoqDQo+ICsgIERpc2FibGUgV3JpdGUgUHJvdGVjdCBv biBwYWdlcyBtYXJrZWQgYXMgcmVhZC1vbmx5IGlmIENyMC5CaXRzLldQIGlzIDEuDQo+ICsNCj4g KyAgQHBhcmFtW291dF0gIFdwRW5hYmxlZCAgICAgIElmIENyMC5XUCBpcyBlbmFibGVkLg0KPiAr ICBAcGFyYW1bb3V0XSAgQ2V0RW5hYmxlZCAgICAgSWYgQ0VUIGlzIGVuYWJsZWQuDQo+ICsqKi8N Cj4gK1ZPSUQNCj4gK0Rpc2FibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKA0KPiArICBPVVQg Qk9PTEVBTiAgKldwRW5hYmxlZCwNCj4gKyAgT1VUIEJPT0xFQU4gICpDZXRFbmFibGVkDQo+ICsg ICkNCj4gK3sNCj4gKyAgSUEzMl9DUjAgIENyMDsNCj4gKw0KPiArICAqQ2V0RW5hYmxlZCA9ICgo QXNtUmVhZENyNCAoKSAmIENSNF9DRVRfRU5BQkxFKSAhPSAwKSA/IFRSVUUgOiBGQUxTRTsNCj4g KyAgQ3IwLlVpbnROICAgPSBBc21SZWFkQ3IwICgpOw0KPiArICAqV3BFbmFibGVkICA9IChDcjAu Qml0cy5XUCAhPSAwKSA/IFRSVUUgOiBGQUxTRTsgIGlmICgqV3BFbmFibGVkKSB7DQo+ICsgICAg aWYgKCpDZXRFbmFibGVkKSB7DQo+ICsgICAgICAvLw0KPiArICAgICAgLy8gQ0VUIG11c3QgYmUg ZGlzYWJsZWQgaWYgV1AgaXMgZGlzYWJsZWQuIERpc2FibGUgQ0VUIGJlZm9yZSBjbGVhcmluZyBD UjAuV1AuDQo+ICsgICAgICAvLw0KPiArICAgICAgRGlzYWJsZUNldCAoKTsNCj4gKyAgICB9DQo+ ICsNCj4gKyAgICBDcjAuQml0cy5XUCA9IDA7DQo+ICsgICAgQXNtV3JpdGVDcjAgKENyMC5VaW50 Tik7DQo+ICsgIH0NCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIEVuYWJsZSBXcml0ZSBQcm90ZWN0 IG9uIHBhZ2VzIG1hcmtlZCBhcyByZWFkLW9ubHkuDQo+ICsNCj4gKyAgQHBhcmFtW291dF0gIFdw RW5hYmxlZCAgICAgIElmIENyMC5XUCBzaG91bGQgYmUgZW5hYmxlZC4NCj4gKyAgQHBhcmFtW291 dF0gIENldEVuYWJsZWQgICAgIElmIENFVCBzaG91bGQgYmUgZW5hYmxlZC4NCj4gKyoqLw0KPiAr Vk9JRA0KPiArRW5hYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgNCj4gKyAgQk9PTEVBTiAg V3BFbmFibGVkLA0KPiArICBCT09MRUFOICBDZXRFbmFibGVkDQo+ICsgICkNCj4gK3sNCj4gKyAg SUEzMl9DUjAgIENyMDsNCj4gKw0KPiArICBpZiAoV3BFbmFibGVkKSB7DQo+ICsgICAgQ3IwLlVp bnROICAgPSBBc21SZWFkQ3IwICgpOw0KPiArICAgIENyMC5CaXRzLldQID0gMTsNCj4gKyAgICBB c21Xcml0ZUNyMCAoQ3IwLlVpbnROKTsNCj4gKw0KPiArICAgIGlmIChDZXRFbmFibGVkKSB7DQo+ ICsgICAgICAvLw0KPiArICAgICAgLy8gcmUtZW5hYmxlIENFVC4NCj4gKyAgICAgIC8vDQo+ICsg ICAgICBFbmFibGVDZXQgKCk7DQo+ICsgICAgfQ0KPiArICB9DQo+ICt9DQo+ICsNCj4gICAvKioN Cj4gICAgIEluaXRpYWxpemUgYSBidWZmZXIgcG9vbCBmb3IgcGFnZSB0YWJsZSB1c2Ugb25seS4N Cj4gICANCj4gQEAgLTYyLDEwICsxMjAsOSBAQCBJbml0aWFsaXplUGFnZVRhYmxlUG9vbCAoDQo+ ICAgICBJTiBVSU5UTiAgUG9vbFBhZ2VzDQo+ICAgICApDQo+ICAgew0KPiAtICBWT0lEICAgICAg KkJ1ZmZlcjsNCj4gLSAgQk9PTEVBTiAgIENldEVuYWJsZWQ7DQo+IC0gIEJPT0xFQU4gICBXcEVu YWJsZWQ7DQo+IC0gIElBMzJfQ1IwICBDcjA7DQo+ICsgIFZPSUQgICAgICpCdWZmZXI7DQo+ICsg IEJPT0xFQU4gIFdwRW5hYmxlZDsNCj4gKyAgQk9PTEVBTiAgQ2V0RW5hYmxlZDsNCj4gICANCj4g ICAgIC8vDQo+ICAgICAvLyBBbHdheXMgcmVzZXJ2ZSBhdCBsZWFzdCBQQUdFX1RBQkxFX1BPT0xf VU5JVF9QQUdFUywgaW5jbHVkaW5nIA0KPiBvbmUgcGFnZSBmb3IgQEAgLTEwMiwzNCArMTU5LDkg QEAgSW5pdGlhbGl6ZVBhZ2VUYWJsZVBvb2wgKA0KPiAgICAgLy8gSWYgcGFnZSB0YWJsZSBtZW1v cnkgaGFzIGJlZW4gbWFya2VkIGFzIFJPLCBtYXJrIHRoZSBuZXcgcG9vbCBwYWdlcyBhcyByZWFk LW9ubHkuDQo+ICAgICAvLw0KPiAgICAgaWYgKG1Jc1JlYWRPbmx5UGFnZVRhYmxlKSB7DQo+IC0g ICAgQ2V0RW5hYmxlZCA9ICgoQXNtUmVhZENyNCAoKSAmIENSNF9DRVRfRU5BQkxFKSAhPSAwKSA/ IFRSVUUgOiBGQUxTRTsNCj4gLSAgICBDcjAuVWludE4gID0gQXNtUmVhZENyMCAoKTsNCj4gLSAg ICBXcEVuYWJsZWQgID0gKENyMC5CaXRzLldQICE9IDApID8gVFJVRSA6IEZBTFNFOw0KPiAtICAg IGlmIChXcEVuYWJsZWQpIHsNCj4gLSAgICAgIGlmIChDZXRFbmFibGVkKSB7DQo+IC0gICAgICAg IC8vDQo+IC0gICAgICAgIC8vIENFVCBtdXN0IGJlIGRpc2FibGVkIGlmIFdQIGlzIGRpc2FibGVk LiBEaXNhYmxlIENFVCBiZWZvcmUgY2xlYXJpbmcgQ1IwLldQLg0KPiAtICAgICAgICAvLw0KPiAt ICAgICAgICBEaXNhYmxlQ2V0ICgpOw0KPiAtICAgICAgfQ0KPiAtDQo+IC0gICAgICBDcjAuQml0 cy5XUCA9IDA7DQo+IC0gICAgICBBc21Xcml0ZUNyMCAoQ3IwLlVpbnROKTsNCj4gLSAgICB9DQo+ IC0NCj4gKyAgICBEaXNhYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkLCAm Q2V0RW5hYmxlZCk7DQo+ICAgICAgIFNtbVNldE1lbW9yeUF0dHJpYnV0ZXMgKChFRklfUEhZU0lD QUxfQUREUkVTUykoVUlOVE4pQnVmZmVyLCBFRklfUEFHRVNfVE9fU0laRSAoUG9vbFBhZ2VzKSwg RUZJX01FTU9SWV9STyk7DQo+IC0gICAgaWYgKFdwRW5hYmxlZCkgew0KPiAtICAgICAgQ3IwLlVp bnROICAgPSBBc21SZWFkQ3IwICgpOw0KPiAtICAgICAgQ3IwLkJpdHMuV1AgPSAxOw0KPiAtICAg ICAgQXNtV3JpdGVDcjAgKENyMC5VaW50Tik7DQo+IC0NCj4gLSAgICAgIGlmIChDZXRFbmFibGVk KSB7DQo+IC0gICAgICAgIC8vDQo+IC0gICAgICAgIC8vIHJlLWVuYWJsZSBDRVQuDQo+IC0gICAg ICAgIC8vDQo+IC0gICAgICAgIEVuYWJsZUNldCAoKTsNCj4gLSAgICAgIH0NCj4gLSAgICB9DQo+ ICsgICAgRW5hYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0IChXcEVuYWJsZWQsIENldEVuYWJs ZWQpOw0KPiAgICAgfQ0KPiAgIA0KPiAgICAgcmV0dXJuIFRSVUU7DQo+IEBAIC0xNzgyLDYgKzE4 MTQsNyBAQCBTZXRQYWdlVGFibGVBdHRyaWJ1dGVzICgNCj4gICAgIFZPSUQNCj4gICAgICkNCj4g ICB7DQo+ICsgIEJPT0xFQU4gIFdwRW5hYmxlZDsNCj4gICAgIEJPT0xFQU4gIENldEVuYWJsZWQ7 DQo+ICAgDQo+ICAgICBpZiAoIUlmUmVhZE9ubHlQYWdlVGFibGVOZWVkZWQgKCkpIHsgQEAgLTE3 OTQsMTUgKzE4MjcsNyBAQCANCj4gU2V0UGFnZVRhYmxlQXR0cmlidXRlcyAoDQo+ICAgICAvLyBE aXNhYmxlIHdyaXRlIHByb3RlY3Rpb24sIGJlY2F1c2Ugd2UgbmVlZCBtYXJrIHBhZ2UgdGFibGUg dG8gYmUgd3JpdGUgcHJvdGVjdGVkLg0KPiAgICAgLy8gV2UgbmVlZCAqd3JpdGUqIHBhZ2UgdGFi bGUgbWVtb3J5LCB0byBtYXJrIGl0c2VsZiB0byBiZSAqcmVhZCBvbmx5Ki4NCj4gICAgIC8vDQo+ IC0gIENldEVuYWJsZWQgPSAoKEFzbVJlYWRDcjQgKCkgJiBDUjRfQ0VUX0VOQUJMRSkgIT0gMCkg PyBUUlVFIDogDQo+IEZBTFNFOw0KPiAtICBpZiAoQ2V0RW5hYmxlZCkgew0KPiAtICAgIC8vDQo+ IC0gICAgLy8gQ0VUIG11c3QgYmUgZGlzYWJsZWQgaWYgV1AgaXMgZGlzYWJsZWQuDQo+IC0gICAg Ly8NCj4gLSAgICBEaXNhYmxlQ2V0ICgpOw0KPiAtICB9DQo+IC0NCj4gLSAgQXNtV3JpdGVDcjAg KEFzbVJlYWRDcjAgKCkgJiB+Q1IwX1dQKTsNCj4gKyAgRGlzYWJsZVJlYWRPbmx5UGFnZVdyaXRl UHJvdGVjdCAoJldwRW5hYmxlZCwgJkNldEVuYWJsZWQpOw0KPiAgIA0KPiAgICAgLy8gU2V0IG1l bW9yeSB1c2VkIGJ5IHBhZ2UgdGFibGUgYXMgUmVhZCBPbmx5Lg0KPiAgICAgREVCVUcgKChERUJV R19JTkZPLCAiU3RhcnQuLi5cbiIpKTsgQEAgLTE4MTEsMjAgKzE4MzYsMTIgQEAgDQo+IFNldFBh Z2VUYWJsZUF0dHJpYnV0ZXMgKA0KPiAgICAgLy8NCj4gICAgIC8vIEVuYWJsZSB3cml0ZSBwcm90 ZWN0aW9uLCBhZnRlciBwYWdlIHRhYmxlIGF0dHJpYnV0ZSB1cGRhdGVkLg0KPiAgICAgLy8NCj4g LSAgQXNtV3JpdGVDcjAgKEFzbVJlYWRDcjAgKCkgfCBDUjBfV1ApOw0KPiArICBFbmFibGVSZWFk T25seVBhZ2VXcml0ZVByb3RlY3QgKFRSVUUsIENldEVuYWJsZWQpOw0KPiAgICAgbUlzUmVhZE9u bHlQYWdlVGFibGUgPSBUUlVFOw0KPiAgIA0KPiAgICAgLy8NCj4gICAgIC8vIEZsdXNoIFRMQiBh ZnRlciBtYXJrIGFsbCBwYWdlIHRhYmxlIHBvb2wgYXMgcmVhZCBvbmx5Lg0KPiAgICAgLy8NCj4g ICAgIEZsdXNoVGxiRm9yQWxsICgpOw0KPiAtDQo+IC0gIGlmIChDZXRFbmFibGVkKSB7DQo+IC0g ICAgLy8NCj4gLSAgICAvLyByZS1lbmFibGUgQ0VULg0KPiAtICAgIC8vDQo+IC0gICAgRW5hYmxl Q2V0ICgpOw0KPiAtICB9DQo+IC0NCj4gICAgIHJldHVybjsNCj4gICB9DQo=