From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.9294.1668665198196783437 for ; Wed, 16 Nov 2022 22:06:38 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=DTXr1YWu; spf=pass (domain: intel.com, ip: 192.55.52.151, 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=1668665198; x=1700201198; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=aOpdvRYwtTt3sDuw1hZ/gphkbge9KpC/53nr+Nsgh7k=; b=DTXr1YWuW50ByniEnuGzJUJ/g9cOvfdg6uabbIUot58WDUBywLGaPJso B0TBJZYayAGU3ynJfhaHFuFNL5hU0UY9avEE1RsvNAknPT0kvB67NIUDP zcYql3JrrzvPBvldJE4i9iew3/7yD0LKE9KtTHbokFXRCKnWrSZmevzbl h5aY+B7hPlQC8nlE++EAmkw3hVeTsAXnjaKsQSvkUWZg2+UCtvOLFcMP6 rRx45vvFCkww0GRivWXG/ewyteF7TY1SuSMCldTPuyF7CbsCvD8seyEag 4q1RR4rOP+5cQYt75dNMsa4Xi+eIqEorMlGFud3J/XYImqjjaCqfrmEcI A==; X-IronPort-AV: E=McAfee;i="6500,9779,10533"; a="293163253" X-IronPort-AV: E=Sophos;i="5.96,169,1665471600"; d="scan'208";a="293163253" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2022 22:06:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10533"; a="728692598" X-IronPort-AV: E=Sophos;i="5.96,169,1665471600"; d="scan'208";a="728692598" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by FMSMGA003.fm.intel.com with ESMTP; 16 Nov 2022 22:06:37 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 16 Nov 2022 22:06:37 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 16 Nov 2022 22:06:37 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 16 Nov 2022 22:06:37 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 16 Nov 2022 22:06:37 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TfjU9rB+cGugovhZUcIlcrmySZ5NXKrEk+NrZzkbO4ib2ITRAhkmlUpFQVFk0NjS5hGKqhdiACzyAPRu4sk0to4NMh+WgpEW9AaFyj4alxHme4l7A7eBjRMP7hNEsUelwM42TW4Tn0SdMfMGfU6uHILG0AwL9nneGpQ3AM2r8fj/XSoew+LwPV7jv4cC2dKXKq1Bb/0ivN/ULXwlh8+mN1emaU6d1VAknls14WUvoHItcdBBKIi4jY8ENfhMFuhED9A9yK5/AxTvF2bA6NoZf0bSwBMzhO7dfGhfpHtTyfjbtLEyJF/NUsEtxC/aqpTFqAISkhNQpZtp4n1QtaCW5g== 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=aOpdvRYwtTt3sDuw1hZ/gphkbge9KpC/53nr+Nsgh7k=; b=B6Q8AqAwB4gKVEzv1ipwqh+oEbpP4ONCemNxyN0XqVfvjBF6tbbbnSaTC0+drOEIuVOARhV4V1XKkci5NC9/Sp5giPsjOIYazxnOpIKF6nX62rF7VOXnvNduul9jwzGbVUffM1KQHWxxjRQ+EC2mlrYbHvv0M0yUyBuxirvxyXs4UsUGEB/zAm4j/v+v5mZfzE7eQRf7yxvXRqSt0Vr8Sedb9AvoTYCd13bDoZIS5gNZ9F6o0DuQVXk6wI5eSqejrFP8h78EsSQbEMjXl+DQOkOD+eZ/cpGqZrSMSEvcQkZzGFd/hU+2DFxcCJ2E2pQotJeftOwi5j4hEwuTpTme+g== 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 DM4PR11MB6334.namprd11.prod.outlook.com (2603:10b6:8:b5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.20; Thu, 17 Nov 2022 06:06:29 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::d936:6054:442a:9dde]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::d936:6054:442a:9dde%5]) with mapi id 15.20.5813.019; Thu, 17 Nov 2022 06:06:29 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "Lin, JackX" , "Kinney, Michael D" CC: "Chiu, Chasel" , "Desimone, Nathaniel L" , "Oram, Isaac W" , "Gao, Liming" , "Dong, Eric" , "Kuo, Donald" , "Kumar, Chandana C" Subject: Re: [edk2-devel] [edk2-platforms: PATCH] BIOS needs to present cores in order of relative performance in MADT Thread-Topic: [edk2-devel] [edk2-platforms: PATCH] BIOS needs to present cores in order of relative performance in MADT Thread-Index: AQHY+kqFoRyu/y4htUK3i7GH4cg2Wq5CoMMA Date: Thu, 17 Nov 2022 06:06:29 +0000 Message-ID: References: <20221117060123.209-1-jackx.lin@intel.com> In-Reply-To: <20221117060123.209-1-jackx.lin@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_|DM4PR11MB6334:EE_ x-ms-office365-filtering-correlation-id: 30453e11-a3f5-45c7-351e-08dac861de69 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OPboc2YfOkc3VrWN29iu5TjekoZ6HGsIGYewBP5+EASZjgfpg7nz6BYZquYo+USkfSao/uov5YYC692Ie2im9mIXCoke3k6wpcsxS2KIlo6XuMSOCq9IKIQAV1/q1bRiiv8vm7G3rpnDItazqbvIimwofcA3yKB/HU0hhZOCS6wz0iZ9qIkH5dv69MPfLL9KSb7k4htNccO4SEKIkQFBf8V+G5RlE6yrNqS4W3UKreNOUAjqtuoTVbCZpnTtWmK9Vk1wicv2Z8sqP8Ue5oFjO2kYRkgU/hsKstqOiWRuuP4gcBa8KRQHFrytD9uQ5zXEn0kymAyUJXMw58I6/Xr5nmSpSS3vgH3jSb7IMarf53uHjHIVhOQRDrQ+v0kI0FbbXLH49l1pJlfzzIQjRciw+iiMhO933FtGZwoYMejECCRduaCZCr3SkmjrEsB4FDSuSPGEVl6taRtEVyHClg9UPYUdu0DXwi38h8g/FYyyOVVrB769d2v3S2nuyqFCPW/QBipZEHByMM4BoWLEgtH6U0Ub/bYmGdRRj4KxNd9V5gBdVBCSNSbncgjAN3AohKCl2hhYuu2o43ORteQQtw9u0ZqBhX+nNopXKdGrzHO0zKmsv9MIKET4O7n9hM0Z1iS/Z9tH5/LFSvTrlvLvmlVHv0bZd7AtlfKhtluTTpDVjw/793CgiT3SnQ/HPnItrSTOaKXuKHjLMl1hCGsygcOdeeDeNnrUyXe3ckZZRkO9etRHTbEBQpiG6QdvNT6WaGOG382z9bLa7JpGmRgJh+cR9A== 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:(13230022)(136003)(346002)(39860400002)(376002)(396003)(366004)(451199015)(86362001)(33656002)(55016003)(41300700001)(66946007)(76116006)(66476007)(66556008)(4326008)(8676002)(64756008)(66446008)(186003)(8936002)(52536014)(5660300002)(71200400001)(107886003)(478600001)(966005)(316002)(9686003)(26005)(7696005)(6506007)(54906003)(110136005)(53546011)(38100700002)(82960400001)(122000001)(38070700005)(83380400001)(2906002)(66899015);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K1N5M0tIeVhVUkNaRGVHcE9vRkVLRzB0N1Q3emVQQk03UGZPSGpNMjBZeEh2?= =?utf-8?B?ZWcwUEVjNUl4QVRtaDNCS01BR1prWUc5K2NRK05TOXRDQ1c1bFdUbWUrUXNv?= =?utf-8?B?ZG5lRGw1bDY3a3d4cytsS0V6MlBObk12emtHVDZtNGtLNTVJVkVXbzVVWTVW?= =?utf-8?B?SkRwbTI5UkJQK05UZWVWR2ZhQXhkOHNkY2R1ekViaWNhYzJLZUpNeXFTVHh3?= =?utf-8?B?N3VYUXFzNllxeHFRdkRCakI2dStYZWEwTmcvTVY1STFBOTJZcWFQSEJnZmdB?= =?utf-8?B?TlNwVmpEdXk5R2UvSThnSDRvUHNmZDhKbHEraE9WL2Z5clZ4cVhxTFdNWHBo?= =?utf-8?B?bEtzRER5dFRQRm9kZHJMQ0phaVZXS1NHbE5XRURDWG1Ma01RVS95OEZiZmJP?= =?utf-8?B?bXkyRkh4bm1wOXdNeXJaSEMreThPbC96T3VKWXdwbTY5UlJ0M05KcXJLU2o2?= =?utf-8?B?N0ZRRk1mbG9TVVpQQkJ5bWJGMWlWOS9SbHdpVUFJcnNSeGVENzMxVVhadHFr?= =?utf-8?B?VTM1d0tuVmNTSWIvbGlva3c4M0piY1lnNUxMZkFadWlnNktESG5rTTNTNWpE?= =?utf-8?B?aGRmalFIekFxVEJMUlVQaU91bzAwTHJPZk13ZWlqa0tzUmNuWkhNRFBHd3d6?= =?utf-8?B?TU5MOUllaUQ2WDJNdFB3ZlIyek5TZCtTUklWMEMvK0JsMVV0TFFTZTBlV0xs?= =?utf-8?B?T1FJR24rT1F4ZGFCa1hSTWVJVW9rYUZPbC9PNUd6WEZWOEt6Njk2dVNHamNI?= =?utf-8?B?YTU0SGpwNUY0YnhXR1dHbjNaQVAvbXYxbHBHa2xrRmRYVjBkbUJVL1FtajN0?= =?utf-8?B?dUpubVoxZ3lTenJoczZwVHppbzFHeWdJRlpkYlhWUk9kS28vZ3BrenhxYXhM?= =?utf-8?B?ZFYweUk4bm9HakZvL1NWcnpGYThzT2hpUWhTSGNTaVh5YXVPd2lpZHZWWmF2?= =?utf-8?B?bk1wb2ZzbVFsWHVpRU91OWpHMXdBUDd2c3ByMHBXM0Z6RG5tTUNUYnYzLy9q?= =?utf-8?B?S3pMQUJGemxTVnY3MHJnZ1UwdFNHZU5jQ3pXcHRSa0d2aVJxbHVOMmZJTm9N?= =?utf-8?B?ZkQwL1pDaTN0a3FzQ05BUnJicFBIcUFGSTZWWTJiQnBScWduVmVQV2ZxcHhz?= =?utf-8?B?REtiNEtSMGt5UGlwTFA4YkFwaHE3VU8zM0NwVmhlTzJwS0REcDdLYitmQzYv?= =?utf-8?B?MWZpYWhKbVBxMmZaNk9lOE82R1U3NzQ2UWcxaVZVOHRNSm10UmYzaDI0dkZS?= =?utf-8?B?OEtYeS8rejZxY0NKMEJkczBkV3NnOWhWdks0YjZvOVl1M0RtOGhZbWo0Ny85?= =?utf-8?B?VU45MTczMVlyQkp6TWM4cHBVdlQveDhuQ0Nuc2hhU1JYbnJBQU5nOFZOb0dE?= =?utf-8?B?eUtFTlVDZHI2Y1F5eUlGbW9xVG0xTDEwd0YvYUdvUzJ3eUVPTFV4Z0JTWVoy?= =?utf-8?B?aFRjLy9KdnZhd2JxZ0M2WDNCNURsNy81ZzRkUHR4a1pWaHJOd2pjZVFYVm4y?= =?utf-8?B?dm1rR0ZSMEdNblBWalZVVmdZOEc5U1VKUXNvYmREMlUvb2tZbWlDakJBV0lu?= =?utf-8?B?ekU1K2ZQb3RFVHROKzN4NjBBZ2x2QytvbFFub0pMUnZxY0pPMCsrVWcrVGJt?= =?utf-8?B?Z2YvTTB3Y2tYREkyc3Vxam16cnYrZ3NuTitVMXhvaWd2UEowRUZIcUxoTjAw?= =?utf-8?B?SjFyYXUwNU1XWGNqTy8yekxEck1wTzlkQ29MMktZTjQ2NTVNY1Znc3RUTjJQ?= =?utf-8?B?QTAybUxlTnZDejlnejZ0LytBNk5WbzI3NFBtTW5RQkV5UmlmMnA5b1J0bE45?= =?utf-8?B?YzAyRGRVZUdHY3lmdExQR0dyVHVZRUw4TkJqZ2VWYkJacGV1NzRiWG5Eekpj?= =?utf-8?B?MjhwSUowd000b05tT0dXV2gvYjJYSGxlL1dxYWZ2OUgyUkwrLzh2R2x1WmpM?= =?utf-8?B?YnBSaHE2TFlJWWpvTE9tYzJJSWhla1RKYVc5dnE4Nk4zZHJwTFBERlNLTmZU?= =?utf-8?B?dEZIRjlZRnJGS2ltR2F2Tnoxd1h0QUhvRUNkcHQ5RXJKSkFlSmJHc3lHb056?= =?utf-8?B?SmZHOUpNVEpiUytiRW1ySGRwaDMyQk5BK1I4OEhMN2szcTVzOW1LZm80ZWxQ?= =?utf-8?B?QmFZZWpHOW9HdXRuMjJMbjZmYW8wcjI3eGo5NWVsMmwrOWVXQ3NxdHVsUG9a?= =?utf-8?B?ZVE9PQ==?= 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: 30453e11-a3f5-45c7-351e-08dac861de69 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2022 06:06:29.4853 (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: i6U8McAzRzcMufzhVxeH+OwMpRkqCjpSR/R6mOlU5K+Bk3D1elqzjxdAWQDu7XlGEtmGZd3k5mYmDHsIlrv9esQ7wzqvWyXRHw9p0wc0uDk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6334 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 Pg0KDQpNaWtlDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBKYWNr WCBMaW4NCj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAxNiwgMjAyMiAxMDowMSBQTQ0KPiBU bzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IExpbiwgSmFja1ggPGphY2t4LmxpbkBpbnRl bC5jb20+OyBMaW4sIEphY2tYIDxqYWNreC5saW5AaW50ZWwuY29tPjsgQ2hpdSwgQ2hhc2VsIDxj aGFzZWwuY2hpdUBpbnRlbC5jb20+OyBEZXNpbW9uZSwNCj4gTmF0aGFuaWVsIEwgPG5hdGhhbmll bC5sLmRlc2ltb25lQGludGVsLmNvbT47IE9yYW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRl bC5jb20+OyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsNCj4gRG9uZywg RXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IEt1bywgRG9uYWxkIDxkb25hbGQua3VvQGludGVs LmNvbT47IEt1bWFyLCBDaGFuZGFuYSBDIDxjaGFuZGFuYS5jLmt1bWFyQGludGVsLmNvbT4NCj4g U3ViamVjdDogW2VkazItZGV2ZWxdIFtlZGsyLXBsYXRmb3JtczogUEFUQ0hdIEJJT1MgbmVlZHMg dG8gcHJlc2VudCBjb3JlcyBpbiBvcmRlciBvZiByZWxhdGl2ZSBwZXJmb3JtYW5jZSBpbiBNQURU DQo+IA0KPiBCSU9TIHNob3VsZCBrZWVwIE1BRFQgb3JkZXJpbmcgYnkgYmlnIGNvcmUgZmlyc3Qg dGhlbiBzbWFsbCBjb3JlDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKYWNrWCBMaW4gPEphY2tYLkxp bkBpbnRlbC5jb20+DQo+IENjOiBDaGFzZWwgQ2hpdSA8Y2hhc2VsLmNoaXVAaW50ZWwuY29tPg0K PiBDYzogTmF0ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KPiBD YzogSXNhYWMgT3JhbSA8aXNhYWMudy5vcmFtQGludGVsLmNvbT4NCj4gQ2M6IExpbWluZyBHYW8g PGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGlu dGVsLmNvbT4NCj4gQ2M6IERvbmFsZCBLdW8gPERvbmFsZC5LdW9AaW50ZWwuY29tPg0KPiBDYzog Q2hhbmRhbmEgQyBLdW1hciA8Y2hhbmRhbmEuYy5rdW1hckBpbnRlbC5jb20+DQo+IENjOiBKYWNr WCBMaW4gPEphY2tYLkxpbkBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgUGxhdGZvcm0vSW50ZWwvTWlu UGxhdGZvcm1Qa2cvQWNwaS9BY3BpVGFibGVzL0FjcGlQbGF0Zm9ybS5jIHwgMTExDQo+ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPiAgMSBm aWxlIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlm ZiAtLWdpdCBhL1BsYXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0FjcGkvQWNwaVRhYmxlcy9B Y3BpUGxhdGZvcm0uYw0KPiBiL1BsYXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0FjcGkvQWNw aVRhYmxlcy9BY3BpUGxhdGZvcm0uYw0KPiBpbmRleCA2ZTU3YjYzOGUwLi44OTQ3OTBmMjQ2IDEw MDY0NA0KPiAtLS0gYS9QbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9BY3BpL0FjcGlUYWJs ZXMvQWNwaVBsYXRmb3JtLmMNCj4gKysrIGIvUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cv QWNwaS9BY3BpVGFibGVzL0FjcGlQbGF0Zm9ybS5jDQo+IEBAIC0xOCw2ICsxOCw3IEBAIHR5cGVk ZWYgc3RydWN0IHsNCj4gICAgVUlOVDMyICAgRmxhZ3M7DQo+ICAgIFVJTlQzMiAgIFNvY2tldE51 bTsNCj4gICAgVUlOVDMyICAgVGhyZWFkOw0KPiArICBVSU5UOCAgICBDcHVDb3JlVHlwZTsNCj4g IH0gRUZJX0NQVV9JRF9PUkRFUl9NQVA7DQo+IA0KPiAgLy8NCj4gQEAgLTEzMSw2ICsxMzIsNDkg QEAgQXBwZW5kQ3B1TWFwVGFibGVFbnRyeSAoDQo+IA0KPiAgfQ0KPiANCj4gKy8qKg0KPiArICBG dW5jdGlvbiB3aWxsIGdvIHRocm91Z2ggYWxsIHByb2Nlc3NvcnMgdG8gaWRlbnRpZnkgQ29yZSBv ciBBdG9tDQo+ICsgIGJ5IGNoZWNraW5nIENvcmUgVHlwZSBhbmQgdXBkYXRlIGluIElzQmlnQ29y ZS4NCj4gKw0KPiArICBAcGFyYW1baW5dIENwdUFwaWNJZE9yZGVyVGFibGUgICAgICAgICBQb2lu dCB0byBhIGJ1ZmZlciB3aGljaCB3aWxsIGJlIGZpbGxlZCBpbiBDb3JlIHR5cGUgaW5mb3JtYXRp b24uDQo+ICsqKi8NCj4gK1ZPSUQNCj4gK1NUQVRJQw0KPiArRUZJQVBJDQo+ICtDb2xsZWN0Q3B1 Q29yZVR5cGUgKA0KPiArICBJTiBFRklfQ1BVX0lEX09SREVSX01BUCAgICAgICAgKkNwdUFwaWNJ ZE9yZGVyVGFibGUNCj4gKyAgKQ0KPiArew0KPiArICBDUFVJRF9TVFJVQ1RVUkVEX0VYVEVOREVE X0ZFQVRVUkVfRkxBR1NfRURYICAgICBFZHg7DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVheDsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBOdW1iZXI7DQo+ICsgIEVGSV9TVEFUVVMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gKyAgVUlOVDggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZVR5cGU7DQo+ICsNCj4g KyAgU3RhdHVzID0gbU1wU2VydmljZS0+V2hvQW1JICgNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICBtTXBTZXJ2aWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICZBcE51bWJlcg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICk7DQo+ICsgIEFTU0VSVF9FRklfRVJST1IgKFN0 YXR1cyk7DQo+ICsNCj4gKyAgLy8vDQo+ICsgIC8vLyBDaGVjayBIZXRlcm8gZmVhdHVyZSBpcyBz dXBwb3J0ZWQNCj4gKyAgLy8vIHdpdGggQ1BVSUQuKEVBWD03LEVDWD0wKTpFRFhbMTVdPTENCj4g KyAgLy8vDQo+ICsgIEFzbUNwdWlkRXggKENQVUlEX1NUUlVDVFVSRURfRVhURU5ERURfRkVBVFVS RV9GTEFHUywgMCwgTlVMTCwgTlVMTCwgTlVMTCwgJkVkeC5VaW50MzIpOw0KPiArICBpZiAoRWR4 LkJpdHMuSHlicmlkID09IDEpIHsNCj4gKyAgICAvLw0KPiArICAgIC8vIENoZWNrIHdoaWNoIGlz IHRoZSBydW5uaW5nIGNvcmUgYnkgcmVhZGluZyBDUFVJRC4oRUFYPTFBSCwgRUNYPTAwSCk6RUFY DQo+ICsgICAgLy8NCj4gKyAgICBBc21DcHVpZCAoQ1BVSURfSFlCUklEX0lORk9STUFUSU9OLCAm RWF4LCBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gKyAgICBDb3JlVHlwZSA9IChVSU5UOCkgKChFYXgg JiAweEZGMDAwMDAwKSA+PiAyNCk7DQo+ICsgIH0gZWxzZSB7DQo+ICsgICAgQ29yZVR5cGUgPSBD UFVJRF9DT1JFX1RZUEVfSU5URUxfQ09SRTsNCj4gKyAgfQ0KPiArDQo+ICsgIENwdUFwaWNJZE9y ZGVyVGFibGVbQXBOdW1iZXJdLkNwdUNvcmVUeXBlID0gQ29yZVR5cGU7DQo+ICt9DQo+ICsNCj4g IC8qKg0KPiAgICBDb2xsZWN0IGFsbCBwcm9jZXNzb3JzIGluZm9ybWF0aW9uIGFuZCBjcmVhdGUg YSBDcHUgQXBpYyBJZCB0YWJsZS4NCj4gDQo+IEBAIC0xMzgsNyArMTgyLDcgQEAgQXBwZW5kQ3B1 TWFwVGFibGVFbnRyeSAoDQo+ICAqKi8NCj4gIEVGSV9TVEFUVVMNCj4gIENyZWF0ZUNwdUxvY2Fs QXBpY0luVGFibGUgKA0KPiAtICBJTiBFRklfQ1BVX0lEX09SREVSX01BUCAqQ3B1QXBpY0lkT3Jk ZXJUYWJsZQ0KPiArICBJTiBFRklfQ1BVX0lEX09SREVSX01BUCAgICAgICAgICAgICAgICAgICAq Q3B1QXBpY0lkT3JkZXJUYWJsZQ0KPiAgICApDQo+ICB7DQo+ICAgIEVGSV9TVEFUVVMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gQEAgLTE0Niw5ICsxOTAsMjQgQEAg Q3JlYXRlQ3B1TG9jYWxBcGljSW5UYWJsZSAoDQo+ICAgIFVJTlQzMiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDdXJyUHJvY2Vzc29yOw0KPiAgICBFRklfQ1BVX0lEX09SREVSX01B UCAgICAgICAgICAgICAgICAgICAgICAqQ3B1SWRNYXBQdHI7DQo+ICsgIEVGSV9DUFVfSURfT1JE RVJfTUFQICAgICAgICAgICAgICAgICAgICAgICpUZW1wQ3B1QXBpY0lkT3JkZXJUYWJsZTsNCj4g ICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ja2V0Ow0KPiAN Cj4gLSAgU3RhdHVzICAgICA9IEVGSV9TVUNDRVNTOw0KPiArICBUZW1wQ3B1QXBpY0lkT3JkZXJU YWJsZSA9IEFsbG9jYXRlWmVyb1Bvb2wgKG1OdW1iZXJPZkNwdXMgKiBzaXplb2YgKEVGSV9DUFVf SURfT1JERVJfTUFQKSk7DQo+ICsgIGlmIChUZW1wQ3B1QXBpY0lkT3JkZXJUYWJsZSA9PSBOVUxM KSB7DQo+ICsgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gKyAgfQ0KPiArDQo+ICsgIENv bGxlY3RDcHVDb3JlVHlwZSAoVGVtcENwdUFwaWNJZE9yZGVyVGFibGUpOw0KPiArICBtTXBTZXJ2 aWNlLT5TdGFydHVwQWxsQVBzICgNCj4gKyAgICAgICAgICAgICAgICBtTXBTZXJ2aWNlLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzDQo+ICsgICAgICAgICAgICAgICAgKEVG SV9BUF9QUk9DRURVUkUpIENvbGxlY3RDcHVDb3JlVHlwZSwgICAgLy8gUHJvY2VkdXJlDQo+ICsg ICAgICAgICAgICAgICAgVFJVRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2luZ2xlVGhyZWFkDQo+ICsgICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gV2FpdEV2ZW50DQo+ICsgICAgICAgICAgICAgICAgMCwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGltZW91dEluTWljcm9z ZWNzb25kDQo+ICsgICAgICAgICAgICAgICAgVGVtcENwdUFwaWNJZE9yZGVyVGFibGUsICAgICAg ICAgICAgICAgICAgLy8gUHJvY2VkdXJlQXJndW1lbnQNCj4gKyAgICAgICAgICAgICAgICBOVUxM ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWlsZWRDcHVMaXN0DQo+ ICsgICAgICAgICAgICAgICAgKTsNCj4gDQo+ICAgIGZvciAoQ3VyclByb2Nlc3NvciA9IDAsIElu ZGV4ID0gMDsgQ3VyclByb2Nlc3NvciA8IG1OdW1iZXJPZkNwdXM7IEN1cnJQcm9jZXNzb3IrKywg SW5kZXgrKykgew0KPiAgICAgIFN0YXR1cyA9IG1NcFNlcnZpY2UtPkdldFByb2Nlc3NvckluZm8g KA0KPiBAQCAtMTU3LDkgKzIxNiw5IEBAIENyZWF0ZUNwdUxvY2FsQXBpY0luVGFibGUgKA0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJlByb2Nlc3NvckluZm9CdWZmZXINCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICk7DQo+IA0KPiAtICAgIENwdUlkTWFwUHRyID0gKEVGSV9D UFVfSURfT1JERVJfTUFQICopICZDcHVBcGljSWRPcmRlclRhYmxlW0luZGV4XTsNCj4gKyAgICBD cHVJZE1hcFB0ciA9IChFRklfQ1BVX0lEX09SREVSX01BUCAqKSAmVGVtcENwdUFwaWNJZE9yZGVy VGFibGVbSW5kZXhdOw0KPiAgICAgIGlmICgoUHJvY2Vzc29ySW5mb0J1ZmZlci5TdGF0dXNGbGFn ICYgUFJPQ0VTU09SX0VOQUJMRURfQklUKSAhPSAwKSB7DQo+IC0gICAgICBDcHVJZE1hcFB0ci0+ QXBpY0lkICA9IChVSU5UMzIpUHJvY2Vzc29ySW5mb0J1ZmZlci5Qcm9jZXNzb3JJZDsNCj4gKyAg ICAgIENwdUlkTWFwUHRyLT5BcGljSWQgID0gKFVJTlQzMikgUHJvY2Vzc29ySW5mb0J1ZmZlci5Q cm9jZXNzb3JJZDsNCj4gICAgICAgIENwdUlkTWFwUHRyLT5UaHJlYWQgID0gUHJvY2Vzc29ySW5m b0J1ZmZlci5Mb2NhdGlvbi5UaHJlYWQ7DQo+ICAgICAgICBDcHVJZE1hcFB0ci0+RmxhZ3MgICA9 ICgoUHJvY2Vzc29ySW5mb0J1ZmZlci5TdGF0dXNGbGFnICYgUFJPQ0VTU09SX0VOQUJMRURfQklU KSAhPSAwKTsNCj4gICAgICAgIENwdUlkTWFwUHRyLT5Tb2NrZXROdW0gPSBQcm9jZXNzb3JJbmZv QnVmZmVyLkxvY2F0aW9uLlBhY2thZ2U7DQo+IEBAIC0xODQsMjIgKzI0Myw2MCBAQCBDcmVhdGVD cHVMb2NhbEFwaWNJblRhYmxlICgNCj4gICAgLy8NCj4gICAgREVCVUcgKChERUJVR19JTkZPLCAi QnNwQXBpY0lkIC0gMHgleFxuIiwgR2V0QXBpY0lkICgpKSk7DQo+IA0KPiAtDQo+ICAgIC8vDQo+ ICAgIC8vIEZpbGwgaW4gQWNwaVByb2Nlc3NvclVpZC4NCj4gICAgLy8NCj4gICAgZm9yIChTb2Nr ZXQgPSAwOyBTb2NrZXQgPCBGaXhlZFBjZEdldDMyIChQY2RNYXhDcHVTb2NrZXRDb3VudCk7IFNv Y2tldCsrKSB7DQo+ICAgICAgZm9yIChDdXJyUHJvY2Vzc29yID0gMCwgSW5kZXggPSAwOyBDdXJy UHJvY2Vzc29yIDwgbU51bWJlck9mQ3B1czsgQ3VyclByb2Nlc3NvcisrKSB7DQo+IC0gICAgICBp ZiAoQ3B1QXBpY0lkT3JkZXJUYWJsZVtDdXJyUHJvY2Vzc29yXS5GbGFncyAmJiAoQ3B1QXBpY0lk T3JkZXJUYWJsZVtDdXJyUHJvY2Vzc29yXS5Tb2NrZXROdW0gPT0gU29ja2V0KSkgew0KPiAtICAg ICAgICBDcHVBcGljSWRPcmRlclRhYmxlW0N1cnJQcm9jZXNzb3JdLkFjcGlQcm9jZXNzb3JVaWQg PSAoQ3B1QXBpY0lkT3JkZXJUYWJsZVtDdXJyUHJvY2Vzc29yXS5Tb2NrZXROdW0gPDwNCj4gbU51 bU9mQml0U2hpZnQpICsgSW5kZXg7DQo+ICsgICAgICBpZiAoVGVtcENwdUFwaWNJZE9yZGVyVGFi bGVbQ3VyclByb2Nlc3Nvcl0uRmxhZ3MgJiYgKFRlbXBDcHVBcGljSWRPcmRlclRhYmxlW0N1cnJQ cm9jZXNzb3JdLlNvY2tldE51bSA9PSBTb2NrZXQpKSB7DQo+ICsgICAgICAgIFRlbXBDcHVBcGlj SWRPcmRlclRhYmxlW0N1cnJQcm9jZXNzb3JdLkFjcGlQcm9jZXNzb3JVaWQgPSAoVGVtcENwdUFw aWNJZE9yZGVyVGFibGVbQ3VyclByb2Nlc3Nvcl0uU29ja2V0TnVtIDw8DQo+IG1OdW1PZkJpdFNo aWZ0KSArIEluZGV4Ow0KPiAgICAgICAgICBJbmRleCsrOw0KPiAgICAgICAgfQ0KPiAgICAgIH0N Cj4gICAgfQ0KPiANCj4gKyAgLy8NCj4gKyAgLy8gUmUtb3JkZXJpbmcgQ3B1IGNvcmVzIGluZm9y bWF0aW9uIHRvIENwdUFwaWNJZE9yZGVyVGFibGUNCj4gKyAgLy8gYnkgYmlnIGNvcmUgZmlyc3Qs IHRoZW4gc21hbGwgY29yZS4NCj4gKyAgLy8NCj4gKyAgZm9yIChJbmRleCA9IDAsIEN1cnJQcm9j ZXNzb3IgPSAwOyBJbmRleCA8IG1OdW1iZXJPZkNwdXM7IEluZGV4KyspIHsNCj4gKyAgICBpZiAo VGVtcENwdUFwaWNJZE9yZGVyVGFibGVbSW5kZXhdLkNwdUNvcmVUeXBlID09IENQVUlEX0NPUkVf VFlQRV9JTlRFTF9DT1JFKSB7DQo+ICsgICAgICBDb3B5TWVtICgmQ3B1QXBpY0lkT3JkZXJUYWJs ZVtDdXJyUHJvY2Vzc29yXSwgJlRlbXBDcHVBcGljSWRPcmRlclRhYmxlW0luZGV4XSwgc2l6ZW9m IChFRklfQ1BVX0lEX09SREVSX01BUCkpOw0KPiArICAgICAgQ3VyclByb2Nlc3NvcisrOw0KPiAr ICAgIH0NCj4gKyAgfQ0KPiArDQo+ICsgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IG1OdW1iZXJP ZkNwdXM7IEluZGV4KyspIHsNCj4gKyAgICBpZiAoVGVtcENwdUFwaWNJZE9yZGVyVGFibGVbSW5k ZXhdLkNwdUNvcmVUeXBlID09IENQVUlEX0NPUkVfVFlQRV9JTlRFTF9BVE9NKSB7DQo+ICsgICAg ICBDb3B5TWVtICgmQ3B1QXBpY0lkT3JkZXJUYWJsZVtDdXJyUHJvY2Vzc29yXSwgJlRlbXBDcHVB cGljSWRPcmRlclRhYmxlW0luZGV4XSwgc2l6ZW9mIChFRklfQ1BVX0lEX09SREVSX01BUCkpOw0K PiArICAgICAgQ3VyclByb2Nlc3NvcisrOw0KPiArICAgIH0NCj4gKyAgfQ0KPiArDQo+ICsgIC8v DQo+ICsgIC8vIEFkZCB1bmtub3duIGNwdSBjb3JlIHR5cGVzIHRvIHRoZSBib3R0b20gb2YgdGhl IHRhYmxlDQo+ICsgIC8vDQo+ICsgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IG1OdW1iZXJPZkNw dXM7IEluZGV4KyspIHsNCj4gKyAgICBpZiAoKFRlbXBDcHVBcGljSWRPcmRlclRhYmxlW0luZGV4 XS5DcHVDb3JlVHlwZSAhPSBDUFVJRF9DT1JFX1RZUEVfSU5URUxfQ09SRSkgJiYNCj4gKFRlbXBD cHVBcGljSWRPcmRlclRhYmxlW0luZGV4XS5DcHVDb3JlVHlwZSAhPSBDUFVJRF9DT1JFX1RZUEVf SU5URUxfQVRPTSkpIHsNCj4gKyAgICAgIERFQlVHICgoDQo+ICsgICAgICAgIERFQlVHX0lORk8s DQo+ICsgICAgICAgICJVbmtub3duIENwdSBDb3JlIHR5cGUgZm91bmQ6IEFwaWMgPSAweCV4LCBD b3JlVHlwZSA9IDB4JXhcbiIsDQo+ICsgICAgICAgIFRlbXBDcHVBcGljSWRPcmRlclRhYmxlW0lu ZGV4XS5BcGljSWQsDQo+ICsgICAgICAgIFRlbXBDcHVBcGljSWRPcmRlclRhYmxlW0luZGV4XS5D cHVDb3JlVHlwZQ0KPiArICAgICAgICApKTsNCj4gKw0KPiArICAgICAgQ29weU1lbSAoJkNwdUFw aWNJZE9yZGVyVGFibGVbQ3VyclByb2Nlc3Nvcl0sICZUZW1wQ3B1QXBpY0lkT3JkZXJUYWJsZVtJ bmRleF0sIHNpemVvZiAoRUZJX0NQVV9JRF9PUkRFUl9NQVApKTsNCj4gKyAgICAgIEN1cnJQcm9j ZXNzb3IrKzsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKw0KPiAgICBERUJVRyAoKERFQlVHX0lORk8s ICI6OkFDUEk6OiAgQVBJQyBJRCBPcmRlciBUYWJsZSBJbml0LiAgIG1OdW1PZkJpdFNoaWZ0ID0g JXhcbiIsIG1OdW1PZkJpdFNoaWZ0KSk7DQo+ICAgIERlYnVnRGlzcGxheVJlT3JkZXJUYWJsZSAo Q3B1QXBpY0lkT3JkZXJUYWJsZSk7DQo+IA0KPiArICBpZiAoVGVtcENwdUFwaWNJZE9yZGVyVGFi bGUgIT0gTlVMTCkgew0KPiArICAgIEZyZWVQb29sIChUZW1wQ3B1QXBpY0lkT3JkZXJUYWJsZSk7 DQo+ICsgIH0NCj4gKw0KPiAgICByZXR1cm4gU3RhdHVzOw0KPiAgfQ0KPiANCj4gLS0NCj4gMi4z Mi4wLndpbmRvd3MuMg0KPiANCj4gDQo+IA0KPiANCj4gDQoNCg==