From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.11441.1680128580445120139 for ; Wed, 29 Mar 2023 15:23:00 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=XgCrIYBz; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680128580; x=1711664580; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=YZYoHzUbfqutW+u/8G3MdtzGVv7tP903X9kCA+U50a8=; b=XgCrIYBzF0pOsGwELjQq3+hMqEFmQXM+HcsRnxJ37c1sKeME36AtJZrV bnyxW6OUEskwLXkCe9knVTYpfx5yEOREX3Gm8N3jgPaR1L7TeQSoD/r+T Q5ml593hnx1oiX88l6lApa8I0QymiCv6WpmsIGAbhnpgaTLYhY1hSCyIb pFaxNMWbfpR3hZs6hTYcCKiyJqfDH3uwWVGL0e2ifhPF7ZVCcl5iJyLPf IhPxmFTveh+g1cxRcRp8s/A8tTPsJqiGEsQuSFf2u2kQaQE648GeW3OQj wSN2ce/PPOVa7Ab541QlwRugGeq4oJP96r8IFYMhBvXJ5kEwF1KM/cMfb w==; X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="427286968" X-IronPort-AV: E=Sophos;i="5.98,301,1673942400"; d="scan'208";a="427286968" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2023 15:23:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="773754664" X-IronPort-AV: E=Sophos;i="5.98,301,1673942400"; d="scan'208";a="773754664" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by FMSMGA003.fm.intel.com with ESMTP; 29 Mar 2023 15:22:59 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 15:22:59 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Wed, 29 Mar 2023 15:22:59 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.104) 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.2507.21; Wed, 29 Mar 2023 15:22:57 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fwCuMvdSmd+6jwvrrK5hYAbkxD0iRilX4gCq9GcwFFYVsCZ1jN8gFLSFVcxvTE6ByMP0dbqyTIQFkGgc4WNrRFr9PGRsUeh0nrBymMEWUToJMXXkPMINSw8pIT6DrOTo0xY0kYAfZ8HAH1WsyxlxMwBgAXrMwjRqT98zz7tOSpJ7oKR69E7AZjPlaBx0BDKMDhL8JLHbILx9UljXhdIlRbWpnYgbOdLb/yJulTEX0WNVqkysnf1VM/KSGrXcxZff7HVGefDjiTtl9uSm3VWv9OxOvvzmB+srk/qLZMTahjgNDcF50mmRAIVQC1JgxzHntYCLKMI2R6eXjYenm0c0xw== 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=YZYoHzUbfqutW+u/8G3MdtzGVv7tP903X9kCA+U50a8=; b=QkmL9Lvg1dB9Aqgayd76ws7ZwOcTKpmer4molRjYmZUpAx77JY7JpqsRI5c61qgiqPTblAgw38rV16dzepQRH4+LoM0OZG1E4LsOrQviu9aomUqD0N3djJcZDND4J3zMz1lcDxZiiZXVrH+cmjvfHhNs5sAFMX2aqBog4Tcr89OwEAotnoEjN4jsmBvzBZq22lmvJ/WnjZVN+tuaHaZoupadVAp8L7Zy1LpSvRGiQ9NgVzjVdkeyIF/UtH5yq9++G9+PmOckE6KYv77+hIy3fVzJsWcQS/ywDWDwTz2D13r7JCys5wjTdjRV+b3CFPvdM9hVJ8EkeI3YgdykwDQOgw== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by PH0PR11MB5112.namprd11.prod.outlook.com (2603:10b6:510:3b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.35; Wed, 29 Mar 2023 22:22:55 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%7]) with mapi id 15.20.6222.033; Wed, 29 Mar 2023 22:22:55 +0000 From: "Michael D Kinney" To: "Ni, Ray" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Kumar, Rahul R" , Gerd Hoffmann , "Anadani, Ahmad" , "Kinney, Michael D" Subject: Re: [PATCH 4/6] UefiCpuPkg/CpuDxe: Refactor to use CPUID definitions Thread-Topic: [PATCH 4/6] UefiCpuPkg/CpuDxe: Refactor to use CPUID definitions Thread-Index: AQHZXFDZIMF7ZrSxKE2wXdhCLrR3668SYV2w Date: Wed, 29 Mar 2023 22:22:55 +0000 Message-ID: References: <20230321235650.675-1-ray.ni@intel.com> <20230321235650.675-5-ray.ni@intel.com> In-Reply-To: <20230321235650.675-5-ray.ni@intel.com> Accept-Language: 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: CO1PR11MB4929:EE_|PH0PR11MB5112:EE_ x-ms-office365-filtering-correlation-id: e50592af-82ab-49dc-2c51-08db30a42507 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VCCGNfIjF/d9C06jgHTB6Ehed5wuLMqCFkD38tS6Cvjo4WcwIvQSps3alcWtAarg1TsUfil4grTXmTSC1wCdYy+KqBHFl8TZ/vTq6NZF08fuBM8qmDfmYl3LioADTsckBHCTIi15QDh4ttF2ITghO/yvEcKZQITirpmT1Hte0/dWYyWvYZGWB0VtqhUcAFpiJnmCeHdOK1LoFM9pFhjeffgW9WIaRQKWFrTfWJIA/+U2YeDq//zbzSUbWcMH+mYpsVp9kvRTJnm385GitNi2BqAILm25Ap8UvN3JRoEG/kajBpvQPIwoQ8ZCe8ZMfKQBRs6tgBRzeDPJ9m5HMKEya/bUkbGzcBsDd3Aij7i4O7W5fNY91V+Daf5uCuOjOpFau9WLTY5jQh5OSnucHQeVNHQfLoWEYTnVH+L5IaacIJPoguQfZQ2ibIA8iA2DdVXjHF8xA0BADKrksvW/cC7m5JCL+AqIWkiIwm2wuDKn7rkTtwUPr9NY2ueOW3nddczQ5Grr/MkuRNHNabjwCCggRCrJDDlXsZgMehAQl0FW3YPJye3lDB1OogHgbSgtOAIkytqGN67E1NdmQS+Ob/c+DxlWlnILkcGivgs4hQXcPjuE9GkxHYA3pHFG8GUWu/SP x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(39860400002)(366004)(136003)(346002)(396003)(451199021)(122000001)(82960400001)(107886003)(66476007)(53546011)(26005)(9686003)(38100700002)(5660300002)(33656002)(186003)(2906002)(8936002)(71200400001)(54906003)(316002)(7696005)(6506007)(478600001)(38070700005)(110136005)(55016003)(4326008)(41300700001)(86362001)(66446008)(76116006)(64756008)(8676002)(66556008)(52536014)(66946007)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UkJRUmV0Sk1JYXY1dllEMGFRQ0hONldjV0JwNkpGclpOd1pVS0RzZE5tUktF?= =?utf-8?B?ZU9LQjFMQjBSMW5MUW9TOVlpY0EvT1dvNk4zNGNuWlkzZW9zczF3eG8rSjJl?= =?utf-8?B?eXh1NFBvZHlIWHFsUjdDN1dzQ21nekFkUG9QRVBITWlGSXZhYld5cWlWY21S?= =?utf-8?B?K0x2RWpZdmZMZTJzUWw0Tkg0UkpuUUtoRkloSHJGbW5DVGZFMGdTb1dhR3Fm?= =?utf-8?B?Q3Vpb01oTWhVSkdvalJTcnVlTzNEdmdoTEF5OWc3R1VQYTRBVm9wSVVuelpH?= =?utf-8?B?b1pjbDYvSVBKMmtkMkhjNCs5N25WTFZJSmZaWlFWZ2IyMmtHbG8vYi9MdHVO?= =?utf-8?B?cXZsYS9EUmZudTNwU2dHQXBjNmxyenBjVExpenBONll2ZWQ5WGhyd2tNYnd0?= =?utf-8?B?dEtjYTdHNFI1NWY4UTM3ZDk3SEZ3Mm9xYVFpWE5Qdlpma1dYb0RRZHoyb1dD?= =?utf-8?B?WDBidXF1OVlLRTJ5bzNFM2MxRkZ0UlNYM25BM0EwaWZoOFp5dWZtTitDWUlG?= =?utf-8?B?OGJaazhaMHR6eEI0WTlRRk02OVA2MlI4T05SZGYyV3hvcjkvd2JyUUVUQTAr?= =?utf-8?B?Y29jSDBMaWluQTVLWWt2cmlOTUVRR0JTV0ZWeXpSVGhRQjNYNXN2bGtncE1E?= =?utf-8?B?a01FUm0ybzBqNWhWUTJlamFGZ253bFlxdUZMMlVqZGh0aFJzMmNiMmhiWGY5?= =?utf-8?B?Ui96dkhJU1UrYThsVUtuTStpS083Umw5UlJEOWtaRFpkUGxpNzNwR1dtWE1z?= =?utf-8?B?ekpqa1lMSElpbHlnOFhCTytTQkEvdy9xTStZWGQ0Zk5LakltQmpHcGU2RnRl?= =?utf-8?B?aGtaZDYzY2o1KzM5UUpieU91aFVCT1BCeVNBd2toblEyZGZPZEZYc1VBd3pV?= =?utf-8?B?d1pKenp6NjBSd25scEhweDVvVnAyc1JSM0pUVEJiWm9zek80UGhodnV2TnRy?= =?utf-8?B?MFhaVDcwS0FyKzdidEI3NnVITnZiK2IxM1B2aFhhTkVoQjNhL0ZqY1l3YXU1?= =?utf-8?B?alFvOXVKNzBJckNzalJmYUkrQ1BjR2t2MXpselJGMDUyOHd1MENiZU9wUklO?= =?utf-8?B?NytZZEg2aVhBaUFOSFE2aVhRaUVkaXpmQlAwdWFMajdCWTdmOGpnZEJYTFdv?= =?utf-8?B?dEFnakRHbTllcjgzc2NDRjc3VERkMHovYVFVZ21CVnAxbENJMjR1UGRJZ0Vz?= =?utf-8?B?L0ltUHR1dkswc2JMaGcrRGZQQ3A0cFBENWsxWVl3NDh3OUpWNjBPOWpBblo1?= =?utf-8?B?SkJtU0QvVDR0WlR2cFBqcXA5QjJ6Yjg5aE9iKzUvNWJuanU1bHpRbGZGdzVS?= =?utf-8?B?Vi9USXp6Z2xsQWV3d2JaZ014T253K24zblZDZGw0T3BwOGhRL0FEMHFJcGhR?= =?utf-8?B?dFRkak4wTEQrWnlwV0hBWTJiTDdyNmtBRHNPbCtBVkloMEh5N2h3SjJodEhv?= =?utf-8?B?RHp4aVZ5Q2dkVm5yWHZvU2RWb3FiTjAzTzlzb3M5a0prOXZVMDJ0VXNwWWVr?= =?utf-8?B?aS9FR1JoaTRSZDN6ckNTR0hpb0E3Q1JGQWNkVzJVMCtUM2FWU3EyRzlaQXJ4?= =?utf-8?B?bHVtR2VVc3o5MlkrZUJkUitycnBTenltUUl3R09CRHkwWHJwWXNObURFckxm?= =?utf-8?B?d0JiVWpwSDhmczhBRzlaY21OZ2VDb0FpeVBIcWU3MmhRMkRZMTVFTVk2L1Fm?= =?utf-8?B?Z2N1VHlpdGtTR0c4b2QvQTczY2xHSk51ZzdiZWJCS3RGUWdpWmU4bVN2MG1k?= =?utf-8?B?UEYwMm1FYkJrNXB6VW5wVjloZFFhekZhczJrS09jK2VMQlFXTnRQQnBGTmxX?= =?utf-8?B?Syt0U2txb3hEMnNVblBkT1hSZ1g1djFtTVdBOVhMdzc4aldWaDEwNHAzZ1Vj?= =?utf-8?B?Vms2cnR4K1RQRkVFZS8zdGxqMmpTTzRBSFh3QlV3QStLeDcxK3diTjM5NGda?= =?utf-8?B?S0NobUJrODZhT1g5RmpZTlQ1aU1FTTBWWWdLU0p4NVpDQlpQeVB1SkJaOHJs?= =?utf-8?B?OTM2MVBETnNXRTFHaVlpeG1tUGFNZ3JhVGhuMGRPbWFDdHg2TnhhMldkMmhv?= =?utf-8?B?R3ZWNC9lVlYvbmlRKzdtR1M2RkpEQ1VpOGhBc0RSV3pmamhEYndyU2taOWJE?= =?utf-8?B?R2NKYVVXeXpRTG5kTW0vc1Jud09Rek5DdWtsOXZwUjZlZ0MxQ3ZpbnhWNXBV?= =?utf-8?B?OUE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e50592af-82ab-49dc-2c51-08db30a42507 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2023 22:22:55.6978 (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: axUTcCWvZdEzdbMGcJaNl3dEsAccg0QwrndJjN/+vlUxYqwT0VyI2pecQXey7hhYR11R7LqrakSLv7Hrr7GonmxTAlO6Gz7DeIbVDT1/s1Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5112 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5pLCBSYXkgPHJheS5u aUBpbnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDIxLCAyMDIzIDQ6NTcgUE0NCj4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50 ZWwuY29tPjsgS3VtYXIsIFJhaHVsIFIgPHJhaHVsLnIua3VtYXJAaW50ZWwuY29tPjsgR2VyZCBI b2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBLaW5uZXksDQo+IE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+OyBBbmFkYW5pLCBBaG1hZCA8YWhtYWQuYW5hZGFuaUBpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCA0LzZdIFVlZmlDcHVQa2cvQ3B1RHhlOiBSZWZhY3Rv ciB0byB1c2UgQ1BVSUQgZGVmaW5pdGlvbnMNCj4gDQo+IFRoZSBwYXRjaCBkb2VzIG5vdCBjaGFu Z2UgYW55IGNvZGUgYmVoYXZpb3IgYnV0IG9ubHkgcmVmYWN0b3JzIGJ5Og0KPiAqIHJlcGxhY2Vz IHRoZSBoYXJkY29kZSAweDgwMDAwMDAwIHdpdGggQ1BVSURfRVhURU5ERURfRlVOQ1RJT04NCj4g KiByZXBsYWNlcyB0aGUgaGFyZGNvZGUgMHg4MDAwMDAwOCB3aXRoIENQVUlEX1ZJUl9QSFlfQURE UkVTU19TSVpFDQo+ICogcmVwbGFjZSAiVUlOVDMyIEVheCIgd2l0aA0KPiAgICAiQ1BVSURfVklS X1BIWV9BRERSRVNTX1NJWkVfRUFYICBWaXJQaHlBZGRyZXNzU2l6ZSINCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5k b25nQGludGVsLmNvbT4NCj4gQ2M6IFJhaHVsIEt1bWFyIDxyYWh1bDEua3VtYXJAaW50ZWwuY29t Pg0KPiBDYzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+DQo+IENjOiBNaWNoYWVs IEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IEFobWFkIEFuYWRh bmkgPGFobWFkLmFuYWRhbmlAaW50ZWwuY29tPg0KPiAtLS0NCj4gIFVlZmlDcHVQa2cvQ3B1RHhl L0NwdUR4ZS5jIHwgMTggKysrKysrKystLS0tLS0tLS0tDQo+ICBVZWZpQ3B1UGtnL0NwdUR4ZS9D cHVEeGUuaCB8ICAzICsrLQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAx MSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVE eGUuYyBiL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdUR4ZS5jDQo+IGluZGV4IGE2YTkxNTA3ZjYuLjky MDk3NmM1NzYgMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdUR4ZS5jDQo+ICsr KyBiL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdUR4ZS5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgLyoq IEBmaWxlDQo+IA0KPiAgICBDUFUgRFhFIE1vZHVsZSB0byBwcm9kdWNlIENQVSBBUkNIIFByb3Rv Y29sLg0KPiANCj4gDQo+IA0KPiAtICBDb3B5cmlnaHQgKGMpIDIwMDggLSAyMDIyLCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiArICBDb3B5cmlnaHQg KGMpIDIwMDggLSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+IA0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiANCj4gDQo+IA0KPiAgKiovDQo+IA0KPiBAQCAtNTA1LDIwICs1MDUsMTggQEAgSW5pdGlh bGl6ZU10cnJNYXNrICgNCj4gICAgVk9JRA0KPiANCj4gICAgKQ0KPiANCj4gIHsNCj4gDQo+IC0g IFVJTlQzMiAgUmVnRWF4Ow0KPiANCj4gLSAgVUlOVDggICBQaHlzaWNhbEFkZHJlc3NCaXRzOw0K PiANCj4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhFeHRlbmRlZEZ1bmN0 aW9uOw0KPiANCj4gKyAgQ1BVSURfVklSX1BIWV9BRERSRVNTX1NJWkVfRUFYICBWaXJQaHlBZGRy ZXNzU2l6ZTsNCj4gDQo+IA0KPiANCj4gLSAgQXNtQ3B1aWQgKDB4ODAwMDAwMDAsICZSZWdFYXgs IE5VTEwsIE5VTEwsIE5VTEwpOw0KPiANCj4gKyAgQXNtQ3B1aWQgKENQVUlEX0VYVEVOREVEX0ZV TkNUSU9OLCAmTWF4RXh0ZW5kZWRGdW5jdGlvbiwgTlVMTCwgTlVMTCwgTlVMTCk7DQo+IA0KPiAN Cj4gDQo+IC0gIGlmIChSZWdFYXggPj0gMHg4MDAwMDAwOCkgew0KPiANCj4gLSAgICBBc21DcHVp ZCAoMHg4MDAwMDAwOCwgJlJlZ0VheCwgTlVMTCwgTlVMTCwgTlVMTCk7DQo+IA0KPiAtDQo+IA0K PiAtICAgIFBoeXNpY2FsQWRkcmVzc0JpdHMgPSAoVUlOVDgpUmVnRWF4Ow0KPiANCj4gKyAgaWYg KE1heEV4dGVuZGVkRnVuY3Rpb24gPj0gQ1BVSURfVklSX1BIWV9BRERSRVNTX1NJWkUpIHsNCj4g DQo+ICsgICAgQXNtQ3B1aWQgKENQVUlEX1ZJUl9QSFlfQUREUkVTU19TSVpFLCAmVmlyUGh5QWRk cmVzc1NpemUuVWludDMyLCBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gDQo+ICAgIH0gZWxzZSB7DQo+ IA0KPiAtICAgIFBoeXNpY2FsQWRkcmVzc0JpdHMgPSAzNjsNCj4gDQo+ICsgICAgVmlyUGh5QWRk cmVzc1NpemUuQml0cy5QaHlzaWNhbEFkZHJlc3NCaXRzID0gMzY7DQo+IA0KPiAgICB9DQo+IA0K PiANCj4gDQo+IC0gIG1WYWxpZE10cnJCaXRzTWFzayAgICA9IExTaGlmdFU2NCAoMSwgUGh5c2lj YWxBZGRyZXNzQml0cykgLSAxOw0KPiANCj4gKyAgbVZhbGlkTXRyckJpdHNNYXNrICAgID0gTFNo aWZ0VTY0ICgxLCBWaXJQaHlBZGRyZXNzU2l6ZS5CaXRzLlBoeXNpY2FsQWRkcmVzc0JpdHMpIC0g MTsNCj4gDQo+ICAgIG1WYWxpZE10cnJBZGRyZXNzTWFzayA9IG1WYWxpZE10cnJCaXRzTWFzayAm IDB4ZmZmZmZmZmZmZmZmZjAwMFVMTDsNCj4gDQo+ICB9DQo+IA0KPiANCj4gDQo+IGRpZmYgLS1n aXQgYS9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVEeGUuaCBiL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdUR4 ZS5oDQo+IGluZGV4IDQ5YTM5MGI0YzQuLjBlN2Q4OGRkMzUgMTAwNjQ0DQo+IC0tLSBhL1VlZmlD cHVQa2cvQ3B1RHhlL0NwdUR4ZS5oDQo+ICsrKyBiL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdUR4ZS5o DQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAgICBDUFUgRFhFIE1vZHVs ZSB0byBwcm9kdWNlIENQVSBBUkNIIFByb3RvY29sIGFuZCBDUFUgTVAgUHJvdG9jb2wuDQo+IA0K PiANCj4gDQo+IC0gIENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTksIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICsgIENvcHlyaWdodCAoYykgMjAwOCAt IDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiAN Cj4gDQo+ICAqKi8NCj4gDQo+IEBAIC0xMyw2ICsxMyw3IEBADQo+IA0KPiANCj4gICNpbmNsdWRl IDxQcm90b2NvbC9DcHUuaD4NCj4gDQo+ICAjaW5jbHVkZSA8UHJvdG9jb2wvTXBTZXJ2aWNlLmg+ DQo+IA0KPiArI2luY2x1ZGUgPFJlZ2lzdGVyL0ludGVsL0NwdWlkLmg+DQo+IA0KPiAgI2luY2x1 ZGUgPFJlZ2lzdGVyL0ludGVsL01zci5oPg0KPiANCj4gDQo+IA0KPiAgI2luY2x1ZGUgPFBwaS9T ZWNQbGF0Zm9ybUluZm9ybWF0aW9uLmg+DQo+IA0KPiAtLQ0KPiAyLjM5LjEud2luZG93cy4xDQoN Cg==