From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 1B5F8D8042C for ; Wed, 14 Feb 2024 03:43:40 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=wbebjd7lWnoeoZmd2LgO1/K+kUvrEiOG053prKVhyNg=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1707882219; v=1; b=mGZ4BPPnsjqGlkkI8hkV4ylZp+czG1RnaATO+v/TNFlyVPVv/tx9jOEAU5Tug4TXAkqQF5D3 7tjCtBTZ82wuO02EvHF08HH7tcqGS2xO3lo8nMD8bqYWsZjgpcQB0eNirVMREkeYawkMLTAjime f4YvE70uSGDTE//3vKX5AfyE= X-Received: by 127.0.0.2 with SMTP id XKmDYY7687511xDV9pqANsSp; Tue, 13 Feb 2024 19:43:39 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) by mx.groups.io with SMTP id smtpd.web10.34087.1707882218969277770 for ; Tue, 13 Feb 2024 19:43:39 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10982"; a="5749963" X-IronPort-AV: E=Sophos;i="6.06,158,1705392000"; d="scan'208";a="5749963" X-Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Feb 2024 19:43:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,158,1705392000"; d="scan'208";a="7720784" X-Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmviesa005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Feb 2024 19:43:38 -0800 X-Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) 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.35; Tue, 13 Feb 2024 19:43:37 -0800 X-Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.35 via Frontend Transport; Tue, 13 Feb 2024 19:43:37 -0800 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) 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.35; Tue, 13 Feb 2024 19:43:36 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ceFZMxa3mL6zwPXicfXexqmPHnrgs9p88fTMrtYTD1WJnmD7Dh/cCK2XqtmhGX0rQz/1DyNKpYjrh5QRQkeiPsa+vY0UhaAeDIF/oHftFMAhlsbr/p+yuNS6C5/Lp88yLjLWQzOv9TsKgr7OZgx8GHQeG0IkGlBk9aeJuL1VorHBEOZnmUqe+ML5Ujlil21orZPgW2ShKulL2VtnaGAOqC0JyD0ZImKJeAlNenKlCa+JD7BJst2iKfxTjheF6ShdEymU1slL13E5sKLmPgYzkX2Dxwr6bHQy/zY6CLUT5jxOt7m2q+r/Li0tebvAzsssRVWU2jb/O5foEOVR78o5Gw== 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=e2B4iqM9EHtBqHt+HPBi95hh18rE4VVwyopP8sZSdtk=; b=iB9jzLMxleSiw27zSYCtoY1RUjfCwtg4ZCwiOl8mJTXkqtp8lTmyYVKRiMu5/j9RhntCIfBQHxsa6z670tZN78GbWreQSQlEkQ42rq5EPkA/dme23jLpsencoBAUUp+6/1XXuY4NVBlc6IXriY9dgCsTN7DTclo9A5ikiK29V0rw51lyeEqdtFEgfaYHCzBitP4utKoacluDkvDFt+F3gNnAGpgBmZwqmqqlLJZ0vzc/PhIDQoUA5vsRk9//rt1brDbm6LJa11iSyxS/SkP4ZLNOk4/WQhHlpr8hVfdW13QCIHsdNn6Dl9N125kOmvLYsObjv+8bY9Aly1d24tsoUg== 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 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by PH7PR11MB6474.namprd11.prod.outlook.com (2603:10b6:510:1f2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.38; Wed, 14 Feb 2024 03:43:29 +0000 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00%6]) with mapi id 15.20.7292.026; Wed, 14 Feb 2024 03:43:29 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "lersek@redhat.com" , Leif Lindholm , "Andrew Fish (afish@apple.com)" , "Gao, Liming" CC: "Tan, Dun" , Gerd Hoffmann , "Kumar, Rahul R" , "Ni, Ray" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-stable202402 PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: distinguish GetSmBase() failure modes Thread-Topic: [edk2-devel] [edk2-stable202402 PATCH 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: distinguish GetSmBase() failure modes Thread-Index: AQHaXsEDW6xfWbbVbkmFkNYEajHo+bEIy7iAgABd+BA= Date: Wed, 14 Feb 2024 03:43:29 +0000 Message-ID: References: <20240213210918.16372-1-lersek@redhat.com> <20240213210918.16372-2-lersek@redhat.com> <5f807038-3e4b-0d82-6fee-37b81fd8e9f6@redhat.com> In-Reply-To: <5f807038-3e4b-0d82-6fee-37b81fd8e9f6@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|PH7PR11MB6474:EE_ x-ms-office365-filtering-correlation-id: 646879ba-83ae-4515-3b6f-08dc2d0f1be7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: i+lWLpZ8jPnTaeY9N54IBL3BXIhrAoMmTiDQOTk3gtLI/TmfzCgPnKxHySUdyGr2TkNUBkKUwICClIKaV9g0gRxJzaWMKbXiqURG0N+OvJeqcEEAn9N1AO9e+MBHsO4fjs3PQ5fQphj0iq6uywJVq6UPN6UkGaDAyZMVhuyEZ/QTJdq8+20byL0sJskPlfib+rTvadrlaLiAx3XXJV6uLtx7KQPyJaHCEjtx9j1Vs5sRVF6/u79bTLWeHA6KxXJ/Yti6/K91wE1RhsAzQ/nu4lvXCbKJ30RxqEI/fTm1dMIMJFZX78ivYbs8HqrOyAEjoRgMO393WDDXJwxXRWqVgdnXfuXhWW/B3vzRDXx2++7aihoUzIBs5zAh9qRjQMJxl63tmvj7k+TklSWIiGfYJZhK18Pv/snRisBibU5D8vwSKvNoh7ErdXv5XjwFjSm3jqml72f4wUFeGuGq8D54I15i2BFyiN2wHXechKUmBjjkn1Rlsce7b8IAn+dr4KznwIhUf1bl3V1cwsyNwvG6kR7XEjBCmTTFAHjVreWpV7HzYtCWJNHCqNUKhx0wNAyuqWPBQPug04xd8nYnj4X487mtRAe1Ck3BBNpM2JeVuOH7jVibe4FL4iVFz/+7G2Ns7oWHQjsXO4uHeEO25+0rSA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bFNTTHJGYTlhV3FGQmplMkNBRlR5OE45S1Z3K3lROWc3ek9IRisycVlWaGQz?= =?utf-8?B?S0piSjVHR1BUME50Z2dWVlB5MUtQZW9VdnJqdStzYUJPTzFObGsrNFg4QmJD?= =?utf-8?B?eThENTNUL1NJNUQ5dnM2YjdwTDgwRVhFQkYvZTRIa2lnNzZHbHNvQU55TS9s?= =?utf-8?B?OGZEU1N6MHlIRzJ5WlZtZlZZcGt4VmY3aUpHK3FnSm1tWGF2bFk4Z09kMi96?= =?utf-8?B?STYvQThPSkFMaVZvRE43d1VlZFJwNkt3ZVJ6eFoyYUUrbzloS2FnOEQwMS9X?= =?utf-8?B?Q2hZMmFIZ01yN3Y3K3lHaDNmU3ZUSTNtV0NyOXBRSk9xL1M1c0VGOFdndHZU?= =?utf-8?B?bW1XRzg1UW1OYkxTK1lwNkNKWjFuRUJtZmE1WDN3QVo1UXNmWERncTdRcVcv?= =?utf-8?B?RThxdmkxL096MGN4aFZGYzFhUzJyWWg5MEJzdkZuYUVCYzBtc29qRHVMd2Jl?= =?utf-8?B?N0FWMmVWOWdSSUtjNk5sRzlxS0V5cHNIVjFDOFhweGcyM2pBMVpsSnZ4TmI2?= =?utf-8?B?UkdCMVFUK1JQU0ZmdVRMZy9ESEtXMWE1Y1BqVStDSEZzbEFPT2tBa2FET1pu?= =?utf-8?B?K3ZZUVpOdk4yVGhmWlRKQjluNE9pNG16OFdndnVVaHowd0xmOG9CNk4xckxK?= =?utf-8?B?Mi8yMUdUU0FGamxBOXpLREZsclBUcVVrZnlWdjQ3cktyb0lJWWtOc0dHWllM?= =?utf-8?B?a3N3aFBOUEJHcVMvSlBRYWp1dHRCOUsrKzlmYTEvalFiblBSaDU3ZFpxS1F0?= =?utf-8?B?STVudzBtSWwzZjJOcmV2NDdqTTNkck5oTEtnK1h0L1VDc0poQnRnRmRxMlZ5?= =?utf-8?B?bTlPMUQvOVNFaWVZVVFrekxQMEJvRkpWMWhKcVN4dHhVZkFaOEhHQ2FBNENi?= =?utf-8?B?dndKdlI3c0RyeW55UGxxSlE2czBmdHlTNFlKS1gyeW9YZGd0bG5mTlpDTjlt?= =?utf-8?B?NUo2bXdiUDVSTC9ZU0JHb1V3Sy9Sb001TVpCK3BBMFExaW5pL2FXU1VYK3Fy?= =?utf-8?B?NTBsOGQ2OUowUy8rK1A1R2w0YmRLQ1RaTEhOREQxRmh3NmVxcCtHcVptdUVE?= =?utf-8?B?THVhako0U2VvcldlWUdvSnQvelpiMkhDUUNlMlNmVUdCZnAxVGpuT05HWDVU?= =?utf-8?B?MzgvaGNCdjRSYXNXN1hOczhkZ0N0aEkxYjRldHEydzV3bWpMb3g3YXlxSTRC?= =?utf-8?B?ZFlabUNCT0lOK2hLMjRMdWJUNnBPYSs4OWluMjY1TFp6YXZ3TGNWc1d4QzBS?= =?utf-8?B?NVpEV2hkZHluRk9PdXFIS0pxQTQrRGFtNFZPMk1JRmMwREI5dnRhNDk5b1Zi?= =?utf-8?B?M285QWxITm81bXRPRDJUemhnVnNNN2NybVExTVdpZUJzVC9yZXZLbEl2MzZv?= =?utf-8?B?TUpxeGF0S2lYWlA1VXloelFaQytVeUV1bFYvZWkxZE9MeUFOTlI1Y0llbWZJ?= =?utf-8?B?aTZtV09nMEVPSWVUZVdCOURpZTVrUGdma3FHSHFJWE1EeFhMVzBDTVJnSVc0?= =?utf-8?B?VmJFQ2l4WDJUbHoxU0NGT2JDdXZNakZMNzR0V08yaFZoKzBzQk5oYlpkK1Zs?= =?utf-8?B?QjJ3SHVVb05Ma0ppYkNFMmhINHFwU0IxQVZCY1dOUDI2bU9rYm9sQ2RUc01K?= =?utf-8?B?ZnZTUkhLVVl0Z0dBdWErZ3ZtbXFtRGc4T1g4d0wzU01CeWJkdjFxelJzYzBs?= =?utf-8?B?RldUSGl0cGZFMEgranRLa3BWekt5bEJlNHk1b1M3SDdNcHUwL1pyZlNVTnRV?= =?utf-8?B?aG5XdmtZazhDdE4vZmVCLytZck9wWlM5YmV5QUFuWmNvUXJ4d1lYc0tCYk11?= =?utf-8?B?MUFxVFg5aXA1ZVhTTFNuZ085UU95T3doaSs2bHo4L1JsS0YzYTIrMkRZMk9y?= =?utf-8?B?dUcxbHJWTmdPSGZNSTV4RFh0QjloSmZ6MkVyaUtCb2xSMVhGTm9kVm5DRFpJ?= =?utf-8?B?Z1hndDh3ekU1cUJZdjErOVY0UTJYNU9yMmlRYmpCZzNLRDNHOTNWUWZ5dXJO?= =?utf-8?B?S29BdmN6MFpjSk9lM2tIdm1UYnlsb3lrYzViQlA4b0R2WXVURUhNb2E1cVhl?= =?utf-8?B?eGI4Q3RkOEtDaHBJTS9ZamtPcERDVUl2dStPaEhzZUVWaVd3ejBFL2o5OXJr?= =?utf-8?B?bHhvTG9LajVOL0NnY0ErdVpMbko5a1paWnMwcHU2VU9XRWZ0Z2plRCtmZmp2?= =?utf-8?B?aXc9PQ==?= 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: 646879ba-83ae-4515-3b6f-08dc2d0f1be7 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2024 03:43:29.5349 (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: KXgGl1UTsNoi+LJhHEbPc+Td283WqWiqOV+YcdNsskqclNp+OtIXo6d3+UZy/oby9RXsQJjXdKUVFf4ta0N40FzGZbZL4IXiZ1aCtaJdNwk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6474 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: UVlMS1MbV2GTAl1q4HK5iLOxx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=mGZ4BPPn; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SGkgTGFzemxvLA0KDQpUaGFuayB5b3UgZm9yIHRoZSBxdWljayBmaXguDQoNCkkgaGF2ZSByZXZp ZXdlZCB0aGUgY2hhbmdlcy4gIEkgYWdyZWUgdGhleSBmaXggdGhlIGlzc3VlIGF0IGhhbmQuDQoN ClJldmlld2VkLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCg0KSSBoYXZlIGFkanVzdGVkIHRoZSBjb21taXQgbWVzc2FnZSB3aXRoIHlvdXIgc3VnZ2Vz dGVkIGNoYW5nZXMgaW4NCnRoZSBQUiBJIGhhdmUgcHJlcGFyZWQ6DQoNCmh0dHBzOi8vZ2l0aHVi LmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzUzNzMNCg0KVGhlcmUgbWF5IGJlIGJldHRlciB3YXlz IHRvIG9yZ2FuaXplIHRoaXMgY29kZSBpbiBnZW5lcmFsIHRvIG1ha2UNCml0IGVhc2llciB0byB1 bmRlcnN0YW5kIGFuZCBtYWludGFpbiBpbiB0aGUgZnV0dXJlLCBidXQgd2UgY2FuDQpsZXQgUmF5 IHJldmlldyB0aGF0IHdoZW4gaGUgcmV0dXJucy4gIFRoYXQgd2lsbCBhbHNvIGxpa2VseSBiZSBh IA0KbXVjaCBidWdnZXIgY2hhbmdlIHRoYXQgY2FuIGJlIGFjY2VwdGVkIGp1c3QgYmVmb3JlIGEg cmVsZWFzZS4NCg0KSSBhbHNvIGFwcHJvdmUgdGhpcyBhcyBhIGNyaXRpY2FsIGZpeCBmb3IgZWRr Mi1zdGFibGUyMDI0MDINCg0KSSB3aWxsIHdhaXQgdGlsbCB0b21vcnJvdyBtb3JuaW5nIG15IHRp bWUgdG8gc2VlIGlmIEdlcmQgYW5kIA0KUmFodWwgYW5kIExlaWYgY2FuIGFsc28gcHJvdmlkZSB0 aGVpciByZXZpZXdzL2FwcHJvdmFscyBhbmQNCnRvIGdpdmUgbWUgc29tZSB0aW1lIHRvIHJ1biBz b21lIHRlc3RzLg0KDQpJIGRvIG5vdCBleHBlY3QgUmF5IE5pIG9yIER1biBUYW4gdG8gYmUgYXZh aWxhYmxlIHRoaXMgd2Vlay4NCg0KQmVzdCByZWdhcmRzLA0KDQpNaWtlDQoNCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVk azIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTGFzemxvDQo+IEVyc2VrDQo+IFNlbnQ6IFR1ZXNk YXksIEZlYnJ1YXJ5IDEzLCAyMDI0IDE6MzYgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+IENjOiBUYW4sIER1biA8ZHVuLnRhbkBpbnRlbC5jb20+OyBHZXJkIEhvZmZtYW5uIDxrcmF4 ZWxAcmVkaGF0LmNvbT47DQo+IEt1bWFyLCBSYWh1bCBSIDxyYWh1bC5yLmt1bWFyQGludGVsLmNv bT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW2VkazItc3RhYmxlMjAyNDAyIFBBVENIIDEvMl0NCj4gVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbTogZGlzdGluZ3Vpc2ggR2V0U21CYXNlKCkgZmFpbHVyZSBtb2Rlcw0KPiANCj4gT24gMi8x My8yNCAyMjowOSwgTGFzemxvIEVyc2VrIHdyb3RlOg0KPiA+IENvbW1pdCA3MjVhY2QwYjljYzAg KCJVZWZpQ3B1UGtnOiBBdm9pZCBhc3N1bWluZyBvbmx5IG9uZQ0KPiBzbW1iYXNlaG9iIiwNCj4g PiAyMDIzLTEyLTEyKSBpbnRyb2R1Y2VkIGEgaGVscGVyIGZ1bmN0aW9uIGNhbGxlZCBHZXRTbUJh c2UoKSwNCj4gcmVwbGFjaW5nIHRoZQ0KPiA+IGxvb2t1cCBvZiB0aGUgZmlyc3QgYW5kIG9ubHkg ImdTbW1CYXNlSG9iR3VpZCIgR1VJRCBIT0IsIHdpdGgNCj4gaXRlcmF0ZWQNCj4gPiBsb29rdXBz IHBsdXMgbWVtb3J5IGFsbG9jYXRpb24uDQo+ID4NCj4gPiBUaGlzIGludHJvZHVjZWQgYSBuZXcg ZmFpbHVyZSBtb2RlIGZvciBzZXR0aW5nDQo+ICJtQ3B1SG90UGx1Z0RhdGEuU21CYXNlIi4NCj4g PiBOYW1lbHksIGJlZm9yZSBjb21taXQgNzI1YWNkMGI5Y2MwLCAibUNwdUhvdFBsdWdEYXRhLlNt QmFzZSIgd291bGQgYmUNCj4gc2V0DQo+ID4gdG8gTlVMTCBpZiBhbmQgb25seSBpZiB0aGUgR1VJ RCBIT0Igd2FzIGFic2VudC4gQWZ0ZXIgdGhlIGNvbW1pdCwgYQ0KPiBOVUxMDQo+ID4gYXNzaWdu bWVudCB3b3VsZCBiZSBwb3NzaWJsZSBpZiB0aGUgR1VJRCBIT0Igd2FzIGFic2VudCwgKm9yKiBv bmUgb2YNCj4gdGhlDQo+ID4gbWVtb3J5IGFsbG9jYXRpb25zIGluc2lkZSBHZXRTbUJhc2UoKSBm YWlsZWQuDQo+IA0KPiBTb3JyeSwgdGhlc2UgdHdvIHBhcmFncmFwaHMgYXJlIG5vdCBwcmVjaXNl LiBBIGJldHRlciB2ZXJzaW9uOg0KPiANCj4gLS0tLS0tLS0tLQ0KPiBDb21taXQgNzI1YWNkMGI5 Y2MwICgiVWVmaUNwdVBrZzogQXZvaWQgYXNzdW1pbmcgb25seSBvbmUgc21tYmFzZWhvYiIsDQo+ IDIwMjMtMTItMTIpIGludHJvZHVjZWQgYSBoZWxwZXIgZnVuY3Rpb24gY2FsbGVkIEdldFNtQmFz ZSgpLCByZXBsYWNpbmcNCj4gdGhlIGxvb2t1cCBvZiB0aGUgZmlyc3QgYW5kIG9ubHkgImdTbW1C YXNlSG9iR3VpZCIgR1VJRCBIT0IgYW5kDQo+IHVuY29uZGl0aW9uYWwgIm1DcHVIb3RQbHVnRGF0 YS5TbUJhc2UiIGFsbG9jYXRpb24sIHdpdGggaXRlcmF0ZWQNCj4gbG9va3Vwcw0KPiBwbHVzIGNv bmRpdGlvbmFsIG1lbW9yeSBhbGxvY2F0aW9uLg0KPiANCj4gVGhpcyBpbnRyb2R1Y2VkIGEgbmV3 IGZhaWx1cmUgbW9kZSBmb3Igc2V0dGluZw0KPiAibUNwdUhvdFBsdWdEYXRhLlNtQmFzZSIuDQo+ IE5hbWVseSwgYmVmb3JlIGNvbW1pdCA3MjVhY2QwYjljYzAsICJtQ3B1SG90UGx1Z0RhdGEuU21C YXNlIiB3b3VsZCBiZQ0KPiBhbGxvY2F0ZWQgcmVnYXJkbGVzcyBvZiB0aGUgR1VJRCBIT0IgYmVp bmcgYWJzZW50LiBBZnRlciB0aGUgY29tbWl0LA0KPiAibUNwdUhvdFBsdWdEYXRhLlNtQmFzZSIg Y291bGQgcmVtYWluIE5VTEwgaWYgdGhlIEdVSUQgSE9CIHdhcyBhYnNlbnQsDQo+ICpvciogb25l IG9mIHRoZSBtZW1vcnkgYWxsb2NhdGlvbnMgaW5zaWRlIEdldFNtQmFzZSgpIGZhaWxlZDsgYW5k IGluDQo+IHRoZQ0KPiBmb3JtZXIgY2FzZSwgd2UnZCBldmVuIHByb2NlZWQgdG8gdGhlIHJlc3Qg b2YgUGlDcHVTbW1FbnRyeSgpLg0KPiAtLS0tLS0tLS0tDQo+IA0KPiBTb3JyeSwgaXQncyBsYXRl Lg0KPiANCj4gSWYgdGhpcyBwYXRjaCBzZXQgaXMgYWNjZXB0ZWQgb3RoZXJ3aXNlLCB0aGVuIE1p a2Ugb3IgTGltaW5nLCBjYW4geW91DQo+IHBsZWFzZSB1cGRhdGUgdGhlIGZpcnN0IHR3byBwYXJh Z3JhcGhzIG9mIHRoZSBjb21taXQgbWVzc2FnZSB1cG9uDQo+IG1lcmdlPw0KPiANCj4gVGhhbmtz DQo+IExhc3psbw0KPiANCj4gPg0KPiA+IEluIHJlbGF0aW9uIHRvIHRoaXMgY29uZmxhdGlvbiBv ZiBkaXN0aW5jdCBmYWlsdXJlIG1vZGVzLCBjb21taXQNCj4gPiA3MjVhY2QwYjljYzAgYWN0dWFs bHkgaW50cm9kdWNlZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZS4gTmFtZWx5LA0KPiBhDQo+ ID4gTlVMTCAibUNwdUhvdFBsdWdEYXRhLlNtQmFzZSIgaXMgbm90IGhhbmRsZWQgcHJvcGVybHkg YXQgYWxsIG5vdy4NCj4gV2UncmUNCj4gPiBnb2luZyB0byBmaXggdGhhdCBOVUxMIHBvaW50ZXIg ZGVyZWZlcmVuY2UgaW4gYSBzdWJzZXF1ZW50IHBhdGNoOw0KPiBob3dldmVyLA0KPiA+IGFzIGEg cHJlLXJlcXVpc2l0ZSBmb3IgdGhhdCB3ZSBuZWVkIHRvIHRlbGwgYXBhcnQgdGhlIGZhaWx1cmUg bW9kZXMNCj4gb2YNCj4gPiBHZXRTbUJhc2UoKS4NCj4gPg0KPiA+IEZvciBtZW1vcnkgYWxsb2Nh dGlvbiBmYWlsdXJlcywgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTLiBNb3ZlIHRoZQ0KPiA+ ICJhc3NlcnRpb24iIHRoYXQgU01SQU0gY2Fubm90IGJlIGV4aGF1c3RlZCBoYXBwZW4gb3V0IHRv IHRoZSBjYWxsZXINCj4gPiAoUGlDcHVTbW1FbnRyeSgpKS4gU3RyZW5ndGhlbiB0aGUgYXNzZXJ0 aW9uIGJ5IGFkZGluZyBhbiBleHBsaWNpdA0KPiA+IENwdURlYWRMb29wKCkgY2FsbC4gKE5vdGU6 IEdldFNtQmFzZSgpICphbHJlYWR5KiBjYWxscyBDcHVEZWFkTG9vcCgpDQo+IGlmDQo+ID4gKE51 bWJlck9mUHJvY2Vzc29ycyAhPSBNYXhOdW1iZXJPZkNwdXMpLikNCj4gPg0KPiA+IEZvciB0aGUg YWJzZW5jZSBvZiB0aGUgR1VJRCBIT0IsIHJldHVybiBFRklfTk9UX0ZPVU5ELg0KPiA+DQo+ID4g Rm9yIGdvb2QgbWVhc3VyZSwgbWFrZSBHZXRTbUJhc2UoKSBTVEFUSUMgKGl0IHNob3VsZCBoYXZl IGJlZW4gU1RBVElDDQo+IGZyb20NCj4gPiB0aGUgc3RhcnQpLg0KPiA+DQo+ID4gVGhpcyBpcyBq dXN0IGEgcmVmYWN0b3JpbmcsIG5vIGJlaGF2aW9yYWwgZGlmZmVyZW5jZSBpcyBpbnRlbmRlZA0K PiAoYmV5b25kDQo+ID4gdGhlIGV4cGxpY2l0IENwdURlYWRMb29wKCkgdXBvbiBTTVJBTSBleGhh dXN0aW9uKS4NCj4gPg0KPiA+IENjOiBEdW4gVGFuIDxkdW4udGFuQGludGVsLmNvbT4NCj4gPiBD YzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+DQo+ID4gQ2M6IFJhaHVsIEt1bWFy IDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPg0KPiA+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5j b20+DQo+ID4gUmVmOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dp P2lkPTQ2ODINCj4gPiBTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQu Y29tPg0KPiA+IC0tLQ0KPiA+DQo+ID4gTm90ZXM6DQo+ID4gICAgIGNvbnRleHQ6LVU0DQo+ID4N Cj4gPiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5jIHwgNDAgKysr KysrKysrKysrKystLS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyks IDEyIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1D cHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uYw0KPiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v UGlTbW1DcHVEeGVTbW0uYw0KPiA+IGluZGV4IGNkMzk0ODI2ZmZjZi4uMDkzODI5NDVkZGI0IDEw MDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0u Yw0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uYw0K PiA+IEBAIC02MTksMTYgKzYxOSwyMyBAQCBTbUJhc2VIb2JDb21wYXJlICgNCj4gPg0KPiA+ICAv KioNCj4gPiAgICBFeHRyYWN0IFNtQmFzZSBmb3IgYWxsIENQVSBmcm9tIFNtbUJhc2UgSE9CLg0K PiA+DQo+ID4gLSAgQHBhcmFtW2luXSAgTWF4TnVtYmVyT2ZDcHVzICAgTWF4IE51bWJlck9mQ3B1 cy4NCj4gPiArICBAcGFyYW1baW5dICBNYXhOdW1iZXJPZkNwdXMgICAgICAgIE1heCBOdW1iZXJP ZkNwdXMuDQo+ID4NCj4gPiAtICBAcmV0dmFsIFNtQmFzZUJ1ZmZlciAgICAgICAgICBQb2ludGVy IHRvIFNtQmFzZSBCdWZmZXIuDQo+ID4gLSAgQHJldHZhbCBOVUxMICAgICAgICAgICAgICAgICAg Z1NtbUJhc2VIb2JHdWlkIHdhcyBub3QgYmVlbg0KPiBjcmVhdGVkLg0KPiA+ICsgIEBwYXJhbVtv dXRdIEFsbG9jYXRlZFNtQmFzZUJ1ZmZlciAgUG9pbnRlciB0byBTbUJhc2UgQnVmZmVyDQo+IGFs bG9jYXRlZA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgdGhp cyBmdW5jdGlvbi4gT25seSBzZXQgaWYNCj4gdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmdW5jdGlvbiByZXR1cm5zIEVGSV9TVUNDRVNTLg0KPiA+ICsNCj4g PiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBTbUJhc2UgQnVmZmVyIG91dHB1dCBz dWNjZXNzZnVsbHkuDQo+ID4gKyAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgTWVtb3J5 IGFsbG9jYXRpb24gZmFpbGVkLg0KPiA+ICsgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAg IGdTbW1CYXNlSG9iR3VpZCB3YXMgbmV2ZXIgY3JlYXRlZC4NCj4gPiAgKiovDQo+ID4gLVVJTlRO ICoNCj4gPiArU1RBVElDDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiAgR2V0U21CYXNlICgNCj4gPiAt ICBJTiAgVUlOVE4gIE1heE51bWJlck9mQ3B1cw0KPiA+ICsgIElOICBVSU5UTiAgTWF4TnVtYmVy T2ZDcHVzLA0KPiA+ICsgIE9VVCBVSU5UTiAgKipBbGxvY2F0ZWRTbUJhc2VCdWZmZXINCj4gPiAg ICApDQo+ID4gIHsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgSG9iQ291bnQ7DQo+ID4gICAg RUZJX0hPQl9HVUlEX1RZUEUgICpHdWlkSG9iOw0KPiA+IEBAIC02NDksOSArNjU2LDkgQEAgR2V0 U21CYXNlICgNCj4gPiAgICBOdW1iZXJPZlByb2Nlc3NvcnMgPSAwOw0KPiA+DQo+ID4gICAgRmly c3RTbW1CYXNlR3VpZEhvYiA9IEdldEZpcnN0R3VpZEhvYiAoJmdTbW1CYXNlSG9iR3VpZCk7DQo+ ID4gICAgaWYgKEZpcnN0U21tQmFzZUd1aWRIb2IgPT0gTlVMTCkgew0KPiA+IC0gICAgcmV0dXJu IE5VTEw7DQo+ID4gKyAgICByZXR1cm4gRUZJX05PVF9GT1VORDsNCj4gPiAgICB9DQo+ID4NCj4g PiAgICBHdWlkSG9iID0gRmlyc3RTbW1CYXNlR3VpZEhvYjsNCj4gPiAgICB3aGlsZSAoR3VpZEhv YiAhPSBOVUxMKSB7DQo+ID4gQEAgLTY3MSwxMSArNjc4LDEwIEBAIEdldFNtQmFzZSAoDQo+ID4g ICAgICBDcHVEZWFkTG9vcCAoKTsNCj4gPiAgICB9DQo+ID4NCj4gPiAgICBTbUJhc2VIb2JzID0g QWxsb2NhdGVQb29sIChzaXplb2YgKFNNTV9CQVNFX0hPQl9EQVRBICopICoNCj4gSG9iQ291bnQp Ow0KPiA+IC0gIEFTU0VSVCAoU21CYXNlSG9icyAhPSBOVUxMKTsNCj4gPiAgICBpZiAoU21CYXNl SG9icyA9PSBOVUxMKSB7DQo+ID4gLSAgICByZXR1cm4gTlVMTDsNCj4gPiArICAgIHJldHVybiBF RklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiAgICB9DQo+ID4NCj4gPiAgICAvLw0KPiA+ICAgIC8v IFJlY29yZCBlYWNoIFNtbUJhc2VIb2IgcG9pbnRlciBpbiB0aGUgU21CYXNlSG9icy4NCj4gPiBA QCAtNjkxLDkgKzY5Nyw5IEBAIEdldFNtQmFzZSAoDQo+ID4gICAgU21CYXNlQnVmZmVyID0gKFVJ TlROICopQWxsb2NhdGVQb29sIChzaXplb2YgKFVJTlROKSAqDQo+IChNYXhOdW1iZXJPZkNwdXMp KTsNCj4gPiAgICBBU1NFUlQgKFNtQmFzZUJ1ZmZlciAhPSBOVUxMKTsNCj4gPiAgICBpZiAoU21C YXNlQnVmZmVyID09IE5VTEwpIHsNCj4gPiAgICAgIEZyZWVQb29sIChTbUJhc2VIb2JzKTsNCj4g PiAtICAgIHJldHVybiBOVUxMOw0KPiA+ICsgICAgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT Ow0KPiA+ICAgIH0NCj4gPg0KPiA+ICAgIFF1aWNrU29ydCAoU21CYXNlSG9icywgSG9iQ291bnQs IHNpemVvZiAoU01NX0JBU0VfSE9CX0RBVEEgKiksDQo+IChCQVNFX1NPUlRfQ09NUEFSRSlTbUJh c2VIb2JDb21wYXJlLCAmU29ydEJ1ZmZlcik7DQo+ID4gICAgUHJldlByb2Nlc3NvckluZGV4ID0g MDsNCj4gPiBAQCAtNzEzLDkgKzcxOSwxMCBAQCBHZXRTbUJhc2UgKA0KPiA+ICAgICAgUHJldlBy b2Nlc3NvckluZGV4ICs9IFNtQmFzZUhvYnNbSG9iSW5kZXhdLT5OdW1iZXJPZlByb2Nlc3NvcnM7 DQo+ID4gICAgfQ0KPiA+DQo+ID4gICAgRnJlZVBvb2wgKFNtQmFzZUhvYnMpOw0KPiA+IC0gIHJl dHVybiBTbUJhc2VCdWZmZXI7DQo+ID4gKyAgKkFsbG9jYXRlZFNtQmFzZUJ1ZmZlciA9IFNtQmFz ZUJ1ZmZlcjsNCj4gPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gIH0NCj4gPg0KPiA+ICAv KioNCj4gPiAgICBGdW5jdGlvbiB0byBjb21wYXJlIDIgTVBfSU5GT1JNQVRJT04yX0hPQl9EQVRB IHBvaW50ZXIgYmFzZWQgb24NCj4gUHJvY2Vzc29ySW5kZXguDQo+ID4gQEAgLTExMTAsMTAgKzEx MTcsMTcgQEAgUGlDcHVTbW1FbnRyeSAoDQo+ID4gICAgLy8NCj4gPiAgICAvLyBSZXRyaXZlIHRo ZSBhbGxvY2F0ZWQgU21tQmFzZSBmcm9tIGdTbW1CYXNlSG9iR3VpZC4gSWYgZm91bmQsDQo+ID4g ICAgLy8gbWVhbnMgdGhlIFNtQmFzZSByZWxvY2F0aW9uIGhhcyBiZWVuIGRvbmUuDQo+ID4gICAg Ly8NCj4gPiAtICBtQ3B1SG90UGx1Z0RhdGEuU21CYXNlID0gR2V0U21CYXNlIChtTWF4TnVtYmVy T2ZDcHVzKTsNCj4gPiAtICBpZiAobUNwdUhvdFBsdWdEYXRhLlNtQmFzZSAhPSBOVUxMKSB7DQo+ ID4gKyAgbUNwdUhvdFBsdWdEYXRhLlNtQmFzZSA9IE5VTEw7DQo+ID4gKyAgU3RhdHVzICAgICAg ICAgICAgICAgICA9IEdldFNtQmFzZSAobU1heE51bWJlck9mQ3B1cywNCj4gJm1DcHVIb3RQbHVn RGF0YS5TbUJhc2UpOw0KPiA+ICsgIGlmIChTdGF0dXMgPT0gRUZJX09VVF9PRl9SRVNPVVJDRVMp IHsNCj4gPiArICAgIEFTU0VSVCAoU3RhdHVzICE9IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTKTsNCj4g PiArICAgIENwdURlYWRMb29wICgpOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgaWYgKCFFRklf RVJST1IgKFN0YXR1cykpIHsNCj4gPiArICAgIEFTU0VSVCAobUNwdUhvdFBsdWdEYXRhLlNtQmFz ZSAhPSBOVUxMKTsNCj4gPiAgICAgIC8vDQo+ID4gICAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBS ZXF1aXJlZCBUaWxlU2l6ZSBpcyBlbm91Z2guDQo+ID4gICAgICAvLw0KPiA+ICAgICAgaWYgKFRp bGVTaXplID4gU0laRV84S0IpIHsNCj4gPiBAQCAtMTEyNSw4ICsxMTM5LDEwIEBAIFBpQ3B1U21t RW50cnkgKA0KPiA+ICAgICAgfQ0KPiA+DQo+ID4gICAgICBtU21tUmVsb2NhdGVkID0gVFJVRTsN Cj4gPiAgICB9IGVsc2Ugew0KPiA+ICsgICAgQVNTRVJUIChTdGF0dXMgPT0gRUZJX05PVF9GT1VO RCk7DQo+ID4gKyAgICBBU1NFUlQgKG1DcHVIb3RQbHVnRGF0YS5TbUJhc2UgPT0gTlVMTCk7DQo+ ID4gICAgICAvLw0KPiA+ICAgICAgLy8gV2hlbiB0aGUgSE9CIGRvZXNuJ3QgZXhpc3QsIGFsbG9j YXRlIG5ldyBTTUJBU0UgaXRzZWxmLg0KPiA+ICAgICAgLy8NCj4gPiAgICAgIERFQlVHICgoREVC VUdfSU5GTywgIlBpQ3B1U21tRW50cnk6IGdTbW1CYXNlSG9iR3VpZCBub3QNCj4gZm91bmQhXG4i KSk7DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCj4gDQo+IA0KPiANCg0K DQoKLT0tPS09LT0tPS09LT0tPS09LT0tPS0KR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBh bGwgbWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLgpWaWV3L1JlcGx5IE9ubGluZSAoIzExNTQy Nyk6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzExNTQyNwpNdXRlIFRo aXMgVG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210LzEwNDM0MTM0Mi83Njg2MTc2Ckdyb3VwIE93 bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbwpVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsy Lmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViIFtyZWJlY2NhQG9wZW5mdy5pb10KLT0tPS09LT0tPS09 LT0tPS09LT0tPS0KCg0K