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 154A69418C3 for ; Fri, 3 Nov 2023 18:38:55 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=9xUCklPwkFoMbmzoONkbU8XhxBe7J4FpfLkfTTkRpx0=; 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=1699036734; v=1; b=YeXBOcl3seS15r3V96srf9vBb9yY6VlEUhSTg+LStVwlNTkETuRWN5Hf/v5lFVq0flhdLkwK nTnhgOPtxghUgr5/uZC5/YP7xHpMBh5kD5MxfHb0Hw6Bgs3zmObWxVv6HqKH2w/pETSR1GtLxLG BH0mNa02248vwVK+JH/I9+6E= X-Received: by 127.0.0.2 with SMTP id R8jRYY7687511xxy8vG0umWq; Fri, 03 Nov 2023 11:38:54 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web11.61182.1699036734038263568 for ; Fri, 03 Nov 2023 11:38:54 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10883"; a="386171941" X-IronPort-AV: E=Sophos;i="6.03,273,1694761200"; d="scan'208";a="386171941" X-Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Nov 2023 11:38:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10883"; a="796705115" X-IronPort-AV: E=Sophos;i="6.03,273,1694761200"; d="scan'208";a="796705115" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 03 Nov 2023 11:38:52 -0700 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 3 Nov 2023 11:38:52 -0700 X-Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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.2507.34; Fri, 3 Nov 2023 11:38:51 -0700 X-Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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.2507.34 via Frontend Transport; Fri, 3 Nov 2023 11:38:51 -0700 X-Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.40) 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.2507.34; Fri, 3 Nov 2023 11:38:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oRhIHwwUhe7jvpv9u5avK0+PpE/+SFKIVQvIn0SSgJEzvuKi4Vw/J3XcmZeIMqDt1/ynObj+hY3MN71JeIYz2f7kPUGxwo61Kuyfdt825ICdj88LFlFPX1GQ6UEpWgvRUXC82PI3EmpIaJBFv6BMpY+bfOmrrvA/P10Ogjc5pQbyRhjca/cRQCgy6S5K+0Q8MDGI2rgsZ5WVR0gnF0jbSkbkkYMVAunUmMBU1aGNrHX7yUj+fK1+UmDgugMNuj8CasSSp1M36JM0QCeG48RbABoVFLTNGr8K4ofcSX5z63eJVJH1QQMz0497+gmFEgcee3+nWmaDeogc8Bq/Cw66cg== 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=vjJhkAbTe5pUya8E6KbN4H/eB+totJp8IyaBpC5SeBk=; b=eMLwl1UW6n1TRzA0q9jCeZogtnvfBazRc0l5BkG9HWedlfOomREV0qqEBV8mQL+/BwhoVrngDeS5gRjlmVYGYfOqwLtDZAhQGBLK1z8gzXv75I3FbFhv5RgNvsorqqQQ0Xijs/Impr7rGS/O5/zZ9WDUrhqbTAVwSto7RN4YIe19FTNg9YPX/aOEgt0hyM4EGm9vKOEtfkaTHTWnmXGpYU5YMaBe+iORsjtHNtOnf5k3b+6B5IJ7PpHQifGZBOxoYTZ4bCdak+vfMKkDjnLDhwv3j+WLVKpNIS+pIxDgkLSsq93Lz2L65TIwUCEZkvQ0cs+X9NPqSf+TccAEC56TPQ== 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 MN0PR11MB6158.namprd11.prod.outlook.com (2603:10b6:208:3ca::18) by MW4PR11MB5936.namprd11.prod.outlook.com (2603:10b6:303:16b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.21; Fri, 3 Nov 2023 18:38:48 +0000 X-Received: from MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::6e7f:8903:fdc6:9833]) by MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::6e7f:8903:fdc6:9833%7]) with mapi id 15.20.6954.021; Fri, 3 Nov 2023 18:38:48 +0000 From: "Wu, Jiaxin" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Dong, Eric" , "Ni, Ray" , "Zeng, Star" , Gerd Hoffmann , "Kumar, Rahul R" Subject: Re: [edk2-devel] [PATCH v1] UefiCpuPkg/PiSmmCpuDxeSmm: Fix CP Exception when CET enable Thread-Topic: [edk2-devel] [PATCH v1] UefiCpuPkg/PiSmmCpuDxeSmm: Fix CP Exception when CET enable Thread-Index: AQHaDmIzVAqH9Qd1D0CZTqV4PvGOyrBowXxw Date: Fri, 3 Nov 2023 18:38:48 +0000 Message-ID: References: <20231103121405.3356-1-jiaxin.wu@intel.com> <8f942ffe-3467-80f7-38ae-c4bd7aabf7ec@redhat.com> In-Reply-To: <8f942ffe-3467-80f7-38ae-c4bd7aabf7ec@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN0PR11MB6158:EE_|MW4PR11MB5936:EE_ x-ms-office365-filtering-correlation-id: cf31ad23-9c4c-4eae-6c26-08dbdc9c1e28 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: LD5tDSY1tOC6rjwJNne+vYbLX2YiMPWi6q1rRoopB6wOcbZ9anLvR9ufKorkqWaiI6uEbLZ1RwmbQTgKDQxXQ2XwNrv3Y0C4KrTG8DBwiyuqTMkFQvoviWHpPywvS+d9VtRjxWSXsXiPaBQLd7BULqo4W/p6FlUTMpusAaOuDk4OlYqKU/YzbXHhrcHEJ/ULQHfGQ1KR2jhvWxR9JnTav0I23qWKV26qqbB784bj4f+AwyKw/vR6aam2x3fr8yAmK3RkoTqMDyKsoLcV5t3tqs3Kiyao3a8MusjQBGYQjCi2wUJemqJmxFpWgmeICdGimQcXuxjRww4jjJilNoAG9t6xpkEK7/Lo8B37JbVUSzr6auHl7IZoYqFxOWkm7dGuKkSV4p5jKjzxrg5Bq9p6OBahIJgVPsvKNkbI5hzfT2H/mBui6H38K1oyol5ptubATm3yrmZSJ0MM/o56ozHLDPyXfg6lb0DLoqvWYKFKwDg3wTzDbNUmbF1qCPqEJdAv++qdPKFb5tqR9WJUI5BpFnasBmYAImtYPXYZieQHW1K3aXkuvPMV3vQF3ikU2LD0Xf3WbKafUa6nxCWjwNtXe825sJdxXQzWRcedCyogoD8r6fPPKnxnQaoHHJFshEWh x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WU9QdG1vSFdOd3pDcW9NbkoxcmF3dkEvUG1TcUJRNHBtM3hkVlNXN0xIUkta?= =?utf-8?B?TkxGOXpZZ1g4OEZPVGw0eVgvbkdwUVdrbkhhbmZGSnpac0YzRTZhY1VOdmJm?= =?utf-8?B?TTJlUUQzRWNtNGU5cnpFRU9JSDJNanF1VEdPTTBEZ1MzTTdzNVl1cHVDVGhV?= =?utf-8?B?Zy80U2w2TmEzOFVoSUk3UFoyeStKa0NGS2FwM056TVNScFU3ZnVIZ3VDYm1k?= =?utf-8?B?Sk5TcklramRGSkUxL2haM3M3MHljSjAzc3pnVDNlV05TblBaekJBalNDVXpz?= =?utf-8?B?UzNuVDkrT25SK3MyNmVsTXMvcmhpY21YRWZyYUdnRGp1ekR3Y2pUVzluNHpX?= =?utf-8?B?UWd6TXBNREZxb0ZZazhodUFsVm9qWjdIR3ozSFZtNHR2VkUxcG9jRXB1dXhZ?= =?utf-8?B?aHcvUzRXOTlqaCszYmZYQVYxRWczZDc0RGZtWUw3ajZtSE42RmR6d2Z1ZThK?= =?utf-8?B?NW56cHRucmpIcjJWdm1GQTJoLzRaSjVta1YzMEZZOFJhQXBtenVWc3dZRzBq?= =?utf-8?B?WG9odlNaMWN6NS9QTHpQRXVyQ1V4MnltQ2N1WFNPdWlyaU9naWV5THRiQ0p3?= =?utf-8?B?RzBjL0hHcDhCc0FPSnpPaDFIZ3JCVWpFVWlRa24xWTdjUUtrMEhtK2VSRUI0?= =?utf-8?B?cHdWRXlieXlRYnY2SXlUalFjb3BBRVZUSkUrZVV4d0tiZUZUdUFWUXM1cURa?= =?utf-8?B?cWZlSkJIeDFITDdZTmlmMTB5a0VNNGtqa2o4Nkpqb293YXBMWDhycVBNMEky?= =?utf-8?B?ektieWJzWmRibU1qUW9Mby9HS29TVEhWLy9rV202cWdaSmNGN3NpTmlDNUk2?= =?utf-8?B?OW83a2ZKdkdGc2RYRE9WY1Z3N2JQRCsvaGJYWHhEdzVxWFdReG5DbmNsOENN?= =?utf-8?B?WVR5NWVBelRheVNrZFljZ0c5TmVpSTZkQVU4RzlWU1V0R1RJNWxOeXFaMi9D?= =?utf-8?B?alNlRkVKck9NL1hjb3FDYUVzTS9hZUNubHA4MVI1am84SmpCMm9Xa25ra1VS?= =?utf-8?B?b040YzFwU2E4OGdGdVV3cGxoUnphR3YwMjRvQkIzeWlkMEwrdWZLRUZuSW5K?= =?utf-8?B?TnBaTVlPdXNiQWNobGFzQWg3WHdiOUdYelZNcGlTS2psd0VVbHl6WldhN1Fj?= =?utf-8?B?Z2cyM09nQmpsengxL0Nwa1paTDIwV3g1cVVwV1VGZjYvWGc1RG81ejM5Nmkr?= =?utf-8?B?ZDdDdk5PMERtUWJYSytPMGJVMEswWmRpbnVKaHNPN3JJYnUzMFh3b0luU2FV?= =?utf-8?B?cnJzYVpHWmp4TnFHc2JzVHRLMkMvWE5MTEdqeTFZSnhLOElMSHM2Y3VyaUUr?= =?utf-8?B?djZ0ZlJKSWhYWlh4b3hsZnhtWGpjcWo3REF1RThhd0VVbTdVcXdRb1lxYURQ?= =?utf-8?B?NHBWUHQzeWVFdjdkOWFkZVVTb3ZLdVRyRUtvRnpkbjBNc1h1cDAyb1pRRTZK?= =?utf-8?B?REtKTmo4QzkvM01uVFpNdnA3UGZNcjMyNUNhWm5xN201R2NBNDd2V1dLdUsv?= =?utf-8?B?eUgvekVmZE81YWxlNEYwb3plSUt1dWhOL1VzZ1pMOFp3WXRuUk5OcDQ0d2pM?= =?utf-8?B?NXJ3cVEvVm83RnVNVGZLbU1RN0J0dzNndVNzM1NRaStRbDJiYmZBb0ZlcTVa?= =?utf-8?B?NkFtdzJjNTNLUW52Rmprb1BnM2xqNTRkUUhVeU9xN29kTk02REZ5Zyt6ZUt3?= =?utf-8?B?SGtkWVV3a0M0UGxUeG5tdGNza1I0cTJWdVVCWWdUUXo2NVdDUm90QWFiWDRY?= =?utf-8?B?cnJ6NlcwZXN1OWVpMEtMWm5YVnRQVjRONm03VHpKVm9SYUY3Y2pvY3hOWjZC?= =?utf-8?B?VzFreUJNK1lybmVnWUhKUG1HbDk0VzduWVNXaGNvd2NjemFYcnBPWGtTWFBQ?= =?utf-8?B?N0RXeHY1YnBFVm01Y0E3anNVdTByam1OT1hQaFZVWE42REdJYTZMaDAyQXI0?= =?utf-8?B?eGplMEZKdmdET0huSG91RTlnLzRIQUJEb1B4ODA0bGlxemhSUExIR2hGMkhv?= =?utf-8?B?UDAwQ3oyWXJtNjFOZFM1NzNoY2JoSWM4OVVyelZDQkJYQ3RadGp5Qk82N2Fw?= =?utf-8?B?UVA2M3ExTDFDeXpQV2hwZ0VMOStlN1NUYUs5bHVrWHVaYlY1UWlPR2pzT3Az?= =?utf-8?Q?+UH2o8iLYqK4YmtQ5RQ67AZox?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN0PR11MB6158.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf31ad23-9c4c-4eae-6c26-08dbdc9c1e28 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2023 18:38:48.1965 (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: d+6xP9BdPtxSUkVWgc9doiVaDdUn1vR5MfLU4HrHjT5h1z3eIJR5n1dODcCdwHZzbz5Bel4lk1MMZzBziqtf5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB5936 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,jiaxin.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: mPdUtXltmIe4ul0ouRZdcFohx7686176AA= 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=YeXBOcl3; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io SGkgTGFzemxvLCANCg0KVGhhbmtzIGNvbW1lbnRzLg0KDQo+IA0KPiBJIGhhdmUgdHdvIGNvbW1l bnRzOg0KPiANCj4gDQo+ICgxKSBib3RoIHRoZSBwcmUtcGF0Y2ggY29kZSBhbmQgdGhlIHBvc3Qt cGF0Y2ggY29kZSBoYXZlIHNldmVyYWwNCj4gaW5zdGFuY2VzIG9mIHRoZSBmb2xsb3dpbmcgcGF0 dGVybjoNCj4gDQo+ICAgQm9vbGVhbiA9IChFeHByZXNzaW9uICE9IDApID8gVFJVRSA6IEZBTFNF Ow0KPiANCj4gVGhpcyBpcyBhbiBhbnRpLXBhdHRlcm4uIEl0IHNob3VsZCBvbmx5IGJlOg0KPiAN Cj4gICBCb29sZWFuID0gRXhwcmVzc2lvbiAhPSAwOw0KPiANCj4gb3IgaWYgeW91IHByZWZlciB0 aGUgcGFyZW50aGVzZXMsIHRoZW4NCj4gDQo+ICAgQm9vbGVhbiA9IChFeHByZXNzaW9uICE9IDAp Ow0KPiANCj4gSSByZWNvbW1lbmQgY2xlYW5pbmcgdXAgYWxsIGluc3RhbmNlcyBvZiB0aGlzLCBp bmRlcGVuZGVudGx5IG9mIHRoZQ0KPiBhY3R1YWwgaXNzdWUuDQo+IA0KDQpBZ3JlZSwgSSB3aWxs IGNsZWFuIGl0IGluIG5leHQgdmVyc2lvbi4NCg0KDQo+IA0KPiAoMikgVGhlIGNyaXRpY2FsIGlu Zm9ybWF0aW9uIGlzIGluIHRoZSBsYXN0IHBhcmFncmFwaCBvZiB0aGUgY29tbWl0DQo+IG1lc3Nh Z2UgKCJDRVQgZmVhdHVyZSBlbmFibGUgJiBkaXNhYmxlIG11c3QgYmUgaW4gdGhlIHNhbWUgZnVu Y3Rpb24gdG8NCj4gYXZvaWQgc3RhY2sgbWlzbWF0Y2giKTsgaG93ZXZlciwgdGhhdCBjcml0aWNh bCBpbmZvcm1hdGlvbiBpcyBub3QNCj4gdmlzaWJsZSBhbnl3aGVyZSBpbiB0aGUgbmV3IGNvZGUu IFBlb3BsZSB3aWxsIG5vdCB1bmRlcnN0YW5kIHdoeSB0aGUNCj4gY29kZSBpcyBsaXR0ZXJlZCB3 aXRoIEVuYWJsZUNldCAvIERpc2FibGVDZXQgY2FsbHMuDQo+IA0KPiBJbiBmYWN0LCBJIG9ubHkg cmVhbGl6ZWQgdGhlIHdlaWdodCBvZiB0aGUgY29tbWl0IG1lc3NhZ2UgYWZ0ZXIgSSBmaXJzdA0K PiBsb29rZWQgYXQgdGhlIHBhdGNoLCBhbmQgZGVkdWNlZCB0aGF0IHRoZSBwYXRjaCBkaWQsIGZ1 bmN0aW9uYWxseQ0KPiBzcGVha2luZywgbm90aGluZyBhdCBhbGwhDQo+IA0KPiBTbyBoZXJlJ3Mg d2hhdCBJIHJlY29tbWVuZDogcGxlYXNlIHJlcGxhY2UgdGhlIGZ1bmN0aW9ucw0KPiANCj4gLSBF bmFibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QoKQ0KPiAtIERpc2FibGVSZWFkT25seVBhZ2VX cml0ZVByb3RlY3QoKQ0KPiANCj4gd2l0aCAqbWFjcm9zKg0KPiANCj4gLSBXUklURV9QUk9URUNU X1JPX1BBR0VTKCkNCj4gLSBXUklURV9VTlBST1RFQ1RfUk9fUEFHRVMoKQ0KPiANCg0Kb2ssIGFn cmVlLCBJIHdpbGwgcmVmaW5lIHRoZSBwYXRjaCB3aXRoIHRob3NlIG1hY3JvcyBkZWZpbml0aW9u Lg0KDQoNCj4gVGhlc2UgbWFjcm9zIHNob3VsZCBjb250aW51ZSB0YWtpbmcgdHdvIHBhcmFtZXRl cnMgKFdwIGFuZCBDZXQpLiBUaGUgV1ANCj4gbWFuaXB1bGF0aW9uIGNhbiBiZSBmYWN0b3JlZCBv dXQgdG8gaGVscGVyIGZ1bmN0aW9ucyBpZiBuZWNlc3NhcnksIGJ1dA0KPiB0aGUgQ0VUIG1hbmlw dWxhdGlvbiBuZWVkcyB0byBiZSBleHBhbmRlZCBpbmxpbmUuDQo+IA0KPiAoSSd2ZSBhbHNvIHJl bmFtZWQgdGhlIEFQSXMgYmVjYXVzZSB0aGUgY3VycmVudCBBUEkgbmFtZXMgYXJlIGF3a3dhcmQu DQo+ICJFbmFibGUgV3JpdGUgUHJvdGVjdGlvbiIgaXMganVzdCBiZXR0ZXIgZXhwcmVzc2VkIGFz ICJXcml0ZSBQcm90ZWN0IiwNCj4gYW5kICJEaXNhYmxlIFdyaXRlIFByb3RlY3Rpb24iIGlzIGp1 c3QgYmV0dGVyIGV4cHJlc3NlZCBhcyAiV3JpdGUNCj4gVW5wcm90ZWN0IiwgaW4gbXkgb3Bpbmlv bi4pDQo+IA0KDQp5ZXMuIEkgd2lsbCByZW5hbWUgYnkgZm9sbG93aW5nIHRoZSBzdWdnZXN0aW9u LiANCg0KPiBBbmQgdGhlbiwgY29tbWVudHMgb24gdGhlIG1hY3JvIGRlZmluaXRpb25zIHNob3Vs ZCBleHBsYWluIHRoYXQgdGhlc2UNCj4gcGllY2VzIG9mIGxvZ2ljIGFyZSBkZWZpbmVkIGFzIG1h Y3JvcyBhbmQgbm90IGZ1bmN0aW9ucyBiZWNhdXNlICJDRVQNCj4gZmVhdHVyZSBlbmFibGUgJiBk aXNhYmxlIG11c3QgYmUgaW4gdGhlIHNhbWUgZnVuY3Rpb24gdG8gYXZvaWQgc3RhY2sNCj4gbWlz bWF0Y2giLg0KPiANCg0KPiBUaGFua3MhDQo+IExhc3psbw0KPiANCj4gPg0KPiA+IGRpZmYgLS1n aXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgNCj4gYi9VZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgNCj4gPiBpbmRleCA2NTQ5MzVk Yzc2Li5kYWE4NDNiMDU3IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVT bW0vUGlTbW1DcHVEeGVTbW0uaA0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v UGlTbW1DcHVEeGVTbW0uaA0KPiA+IEBAIC0xNTU0LDI2ICsxNTU0LDI0IEBAIFNtbVdhaXRGb3JB cEFycml2YWwgKA0KPiA+DQo+ID4gIC8qKg0KPiA+ICAgIERpc2FibGUgV3JpdGUgUHJvdGVjdCBv biBwYWdlcyBtYXJrZWQgYXMgcmVhZC1vbmx5IGlmIENyMC5CaXRzLldQIGlzIDEuDQo+ID4NCj4g PiAgICBAcGFyYW1bb3V0XSAgV3BFbmFibGVkICAgICAgSWYgQ3IwLldQIGlzIGVuYWJsZWQuDQo+ ID4gLSAgQHBhcmFtW291dF0gIENldEVuYWJsZWQgICAgIElmIENFVCBpcyBlbmFibGVkLg0KPiA+ ICsNCj4gPiAgKiovDQo+ID4gIFZPSUQNCj4gPiAgRGlzYWJsZVJlYWRPbmx5UGFnZVdyaXRlUHJv dGVjdCAoDQo+ID4gLSAgT1VUIEJPT0xFQU4gICpXcEVuYWJsZWQsDQo+ID4gLSAgT1VUIEJPT0xF QU4gICpDZXRFbmFibGVkDQo+ID4gKyAgT1VUIEJPT0xFQU4gICpXcEVuYWJsZWQNCj4gPiAgICAp Ow0KPiA+DQo+ID4gIC8qKg0KPiA+ICAgIEVuYWJsZSBXcml0ZSBQcm90ZWN0IG9uIHBhZ2VzIG1h cmtlZCBhcyByZWFkLW9ubHkuDQo+ID4NCj4gPiAgICBAcGFyYW1bb3V0XSAgV3BFbmFibGVkICAg ICAgSWYgQ3IwLldQIHNob3VsZCBiZSBlbmFibGVkLg0KPiA+IC0gIEBwYXJhbVtvdXRdICBDZXRF bmFibGVkICAgICBJZiBDRVQgc2hvdWxkIGJlIGVuYWJsZWQuDQo+ID4gKw0KPiA+ICAqKi8NCj4g PiAgVk9JRA0KPiA+ICBFbmFibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKA0KPiA+IC0gIEJP T0xFQU4gIFdwRW5hYmxlZCwNCj4gPiAtICBCT09MRUFOICBDZXRFbmFibGVkDQo+ID4gKyAgQk9P TEVBTiAgV3BFbmFibGVkDQo+ID4gICAgKTsNCj4gPg0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0t Z2l0DQo+IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50 LmMNCj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbUNwdU1lbW9yeU1hbmFnZW1lbnQu Yw0KPiA+IGluZGV4IDZmNDk4NjY2MTUuLjJjMTk4YTE2MWEgMTAwNjQ0DQo+ID4gLS0tIGEvVWVm aUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMNCj4gPiArKysg Yi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbUNwdU1lbW9yeU1hbmFnZW1lbnQuYw0KPiA+ IEBAIC00Miw2MSArNDIsNDQgQEAgQk9PTEVBTiAgbUlzUmVhZE9ubHlQYWdlVGFibGUgPSBGQUxT RTsNCj4gPg0KPiA+ICAvKioNCj4gPiAgICBEaXNhYmxlIFdyaXRlIFByb3RlY3Qgb24gcGFnZXMg bWFya2VkIGFzIHJlYWQtb25seSBpZiBDcjAuQml0cy5XUCBpcyAxLg0KPiA+DQo+ID4gICAgQHBh cmFtW291dF0gIFdwRW5hYmxlZCAgICAgIElmIENyMC5XUCBpcyBlbmFibGVkLg0KPiA+IC0gIEBw YXJhbVtvdXRdICBDZXRFbmFibGVkICAgICBJZiBDRVQgaXMgZW5hYmxlZC4NCj4gPiArDQo+ID4g ICoqLw0KPiA+ICBWT0lEDQo+ID4gIERpc2FibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKA0K PiA+IC0gIE9VVCBCT09MRUFOICAqV3BFbmFibGVkLA0KPiA+IC0gIE9VVCBCT09MRUFOICAqQ2V0 RW5hYmxlZA0KPiA+ICsgIE9VVCBCT09MRUFOICAqV3BFbmFibGVkDQo+ID4gICAgKQ0KPiA+ICB7 DQo+ID4gICAgSUEzMl9DUjAgIENyMDsNCj4gPg0KPiA+IC0gICpDZXRFbmFibGVkID0gKChBc21S ZWFkQ3I0ICgpICYgQ1I0X0NFVF9FTkFCTEUpICE9IDApID8gVFJVRSA6IEZBTFNFOw0KPiA+IC0g IENyMC5VaW50TiAgID0gQXNtUmVhZENyMCAoKTsNCj4gPiAtICAqV3BFbmFibGVkICA9IChDcjAu Qml0cy5XUCAhPSAwKSA/IFRSVUUgOiBGQUxTRTsNCj4gPiArICBDcjAuVWludE4gID0gQXNtUmVh ZENyMCAoKTsNCj4gPiArICAqV3BFbmFibGVkID0gKENyMC5CaXRzLldQICE9IDApID8gVFJVRSA6 IEZBTFNFOw0KPiA+ICAgIGlmICgqV3BFbmFibGVkKSB7DQo+ID4gLSAgICBpZiAoKkNldEVuYWJs ZWQpIHsNCj4gPiAtICAgICAgLy8NCj4gPiAtICAgICAgLy8gQ0VUIG11c3QgYmUgZGlzYWJsZWQg aWYgV1AgaXMgZGlzYWJsZWQuIERpc2FibGUgQ0VUIGJlZm9yZSBjbGVhcmluZw0KPiBDUjAuV1Au DQo+ID4gLSAgICAgIC8vDQo+ID4gLSAgICAgIERpc2FibGVDZXQgKCk7DQo+ID4gLSAgICB9DQo+ ID4gLQ0KPiA+ICAgICAgQ3IwLkJpdHMuV1AgPSAwOw0KPiA+ICAgICAgQXNtV3JpdGVDcjAgKENy MC5VaW50Tik7DQo+ID4gICAgfQ0KPiA+ICB9DQo+ID4NCj4gPiAgLyoqDQo+ID4gICAgRW5hYmxl IFdyaXRlIFByb3RlY3Qgb24gcGFnZXMgbWFya2VkIGFzIHJlYWQtb25seS4NCj4gPg0KPiA+ICAg IEBwYXJhbVtvdXRdICBXcEVuYWJsZWQgICAgICBJZiBDcjAuV1Agc2hvdWxkIGJlIGVuYWJsZWQu DQo+ID4gLSAgQHBhcmFtW291dF0gIENldEVuYWJsZWQgICAgIElmIENFVCBzaG91bGQgYmUgZW5h YmxlZC4NCj4gPiArDQo+ID4gICoqLw0KPiA+ICBWT0lEDQo+ID4gIEVuYWJsZVJlYWRPbmx5UGFn ZVdyaXRlUHJvdGVjdCAoDQo+ID4gLSAgQk9PTEVBTiAgV3BFbmFibGVkLA0KPiA+IC0gIEJPT0xF QU4gIENldEVuYWJsZWQNCj4gPiArICBCT09MRUFOICBXcEVuYWJsZWQNCj4gPiAgICApDQo+ID4g IHsNCj4gPiAgICBJQTMyX0NSMCAgQ3IwOw0KPiA+DQo+ID4gICAgaWYgKFdwRW5hYmxlZCkgew0K PiA+ICAgICAgQ3IwLlVpbnROICAgPSBBc21SZWFkQ3IwICgpOw0KPiA+ICAgICAgQ3IwLkJpdHMu V1AgPSAxOw0KPiA+ICAgICAgQXNtV3JpdGVDcjAgKENyMC5VaW50Tik7DQo+ID4gLQ0KPiA+IC0g ICAgaWYgKENldEVuYWJsZWQpIHsNCj4gPiAtICAgICAgLy8NCj4gPiAtICAgICAgLy8gcmUtZW5h YmxlIENFVC4NCj4gPiAtICAgICAgLy8NCj4gPiAtICAgICAgRW5hYmxlQ2V0ICgpOw0KPiA+IC0g ICAgfQ0KPiA+ICAgIH0NCj4gPiAgfQ0KPiA+DQo+ID4gIC8qKg0KPiA+ICAgIEluaXRpYWxpemUg YSBidWZmZXIgcG9vbCBmb3IgcGFnZSB0YWJsZSB1c2Ugb25seS4NCj4gPiBAQCAtMTU3LDEzICsx NDAsMjkgQEAgSW5pdGlhbGl6ZVBhZ2VUYWJsZVBvb2wgKA0KPiA+DQo+ID4gICAgLy8NCj4gPiAg ICAvLyBJZiBwYWdlIHRhYmxlIG1lbW9yeSBoYXMgYmVlbiBtYXJrZWQgYXMgUk8sIG1hcmsgdGhl IG5ldyBwb29sIHBhZ2VzDQo+IGFzIHJlYWQtb25seS4NCj4gPiAgICAvLw0KPiA+ICAgIGlmICht SXNSZWFkT25seVBhZ2VUYWJsZSkgew0KPiA+IC0gICAgRGlzYWJsZVJlYWRPbmx5UGFnZVdyaXRl UHJvdGVjdCAoJldwRW5hYmxlZCwgJkNldEVuYWJsZWQpOw0KPiA+ICsgICAgLy8NCj4gPiArICAg IC8vIENFVCBtdXN0IGJlIGRpc2FibGVkIGlmIFdQIGlzIGRpc2FibGVkLg0KPiA+ICsgICAgLy8N Cj4gPiArICAgIENldEVuYWJsZWQgPSAoKEFzbVJlYWRDcjQgKCkgJiBDUjRfQ0VUX0VOQUJMRSkg IT0gMCkgPyBUUlVFIDogRkFMU0U7DQo+ID4gKyAgICBpZiAoQ2V0RW5hYmxlZCkgew0KPiA+ICsg ICAgICBEaXNhYmxlQ2V0ICgpOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIERpc2FibGVS ZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKCZXcEVuYWJsZWQpOw0KPiA+ICsNCj4gPiAgICAgIFNt bVNldE1lbW9yeUF0dHJpYnV0ZXMgKChFRklfUEhZU0lDQUxfQUREUkVTUykoVUlOVE4pQnVmZmVy LA0KPiBFRklfUEFHRVNfVE9fU0laRSAoUG9vbFBhZ2VzKSwgRUZJX01FTU9SWV9STyk7DQo+ID4g LSAgICBFbmFibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKFdwRW5hYmxlZCwgQ2V0RW5hYmxl ZCk7DQo+ID4gKw0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIEVuYWJsZSB0aGUgV1AgYW5kIHJl c3RvcmUgQ0VUIHRvIGVuYWJsZQ0KPiA+ICsgICAgLy8NCj4gPiArICAgIEVuYWJsZVJlYWRPbmx5 UGFnZVdyaXRlUHJvdGVjdCAoV3BFbmFibGVkKTsNCj4gPiArICAgIGlmIChDZXRFbmFibGVkKSB7 DQo+ID4gKyAgICAgIEVuYWJsZUNldCAoKTsNCj4gPiArICAgIH0NCj4gPiAgICB9DQo+ID4NCj4g PiAgICByZXR1cm4gVFJVRTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTEwNTUsMTEgKzEwNTQsMTkg QEAgU2V0TWVtTWFwQXR0cmlidXRlcyAoDQo+ID4gICAgICBTdGF0dXMgPSBQYWdlVGFibGVQYXJz ZSAoUGFnZVRhYmxlLCBtUGFnaW5nTW9kZSwgTWFwLCAmQ291bnQpOw0KPiA+ICAgIH0NCj4gPg0K PiA+ICAgIEFTU0VSVF9SRVRVUk5fRVJST1IgKFN0YXR1cyk7DQo+ID4NCj4gPiAtICBEaXNhYmxl UmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkLCAmQ2V0RW5hYmxlZCk7DQo+ID4g KyAgLy8NCj4gPiArICAvLyBDRVQgbXVzdCBiZSBkaXNhYmxlZCBpZiBXUCBpcyBkaXNhYmxlZC4N Cj4gPiArICAvLw0KPiA+ICsgIENldEVuYWJsZWQgPSAoKEFzbVJlYWRDcjQgKCkgJiBDUjRfQ0VU X0VOQUJMRSkgIT0gMCkgPyBUUlVFIDogRkFMU0U7DQo+ID4gKyAgaWYgKENldEVuYWJsZWQpIHsN Cj4gPiArICAgIERpc2FibGVDZXQgKCk7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBEaXNhYmxl UmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkKTsNCj4gPg0KPiA+ICAgIE1lbW9y eU1hcCA9IE1lbW9yeU1hcFN0YXJ0Ow0KPiA+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE1l bW9yeU1hcEVudHJ5Q291bnQ7IEluZGV4KyspIHsNCj4gPiAgICAgIERFQlVHICgoREVCVUdfVkVS Qk9TRSwgIlNldEF0dHJpYnV0ZTogTWVtb3J5IEVudHJ5IC0gMHglbHgsDQo+IDB4JXhcbiIsIE1l bW9yeU1hcC0+UGh5c2ljYWxTdGFydCwgTWVtb3J5TWFwLT5OdW1iZXJPZlBhZ2VzKSk7DQo+ID4g ICAgICBpZiAoTWVtb3J5TWFwLT5UeXBlID09IEVmaVJ1bnRpbWVTZXJ2aWNlc0NvZGUpIHsNCj4g PiBAQCAtMTA4NSwxMSArMTA5MiwxOCBAQCBTZXRNZW1NYXBBdHRyaWJ1dGVzICgNCj4gPiAgICAg ICAgKTsNCj4gPg0KPiA+ICAgICAgTWVtb3J5TWFwID0gTkVYVF9NRU1PUllfREVTQ1JJUFRPUiAo TWVtb3J5TWFwLA0KPiBEZXNjcmlwdG9yU2l6ZSk7DQo+ID4gICAgfQ0KPiA+DQo+ID4gLSAgRW5h YmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0IChXcEVuYWJsZWQsIENldEVuYWJsZWQpOw0KPiA+ ICsgIC8vDQo+ID4gKyAgLy8gRW5hYmxlIHRoZSBXUCBhbmQgcmVzdG9yZSBDRVQgdG8gZW5hYmxl DQo+ID4gKyAgLy8NCj4gPiArICBFbmFibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKFdwRW5h YmxlZCk7DQo+ID4gKyAgaWYgKENldEVuYWJsZWQpIHsNCj4gPiArICAgIEVuYWJsZUNldCAoKTsN Cj4gPiArICB9DQo+ID4gKw0KPiA+ICAgIEZyZWVQb29sIChNYXApOw0KPiA+DQo+ID4gICAgUGF0 Y2hTbW1TYXZlU3RhdGVNYXAgKCk7DQo+ID4gICAgUGF0Y2hHZHRJZHRNYXAgKCk7DQo+ID4NCj4g PiBAQCAtMTM5OSwxMSArMTQxMywxOSBAQCBTZXRVZWZpTWVtTWFwQXR0cmlidXRlcyAoDQo+ID4N Cj4gPiAgICBQRVJGX0ZVTkNUSU9OX0JFR0lOICgpOw0KPiA+DQo+ID4gICAgREVCVUcgKChERUJV R19JTkZPLCAiU2V0VWVmaU1lbU1hcEF0dHJpYnV0ZXNcbiIpKTsNCj4gPg0KPiA+IC0gIERpc2Fi bGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKCZXcEVuYWJsZWQsICZDZXRFbmFibGVkKTsNCj4g PiArICAvLw0KPiA+ICsgIC8vIENFVCBtdXN0IGJlIGRpc2FibGVkIGlmIFdQIGlzIGRpc2FibGVk Lg0KPiA+ICsgIC8vDQo+ID4gKyAgQ2V0RW5hYmxlZCA9ICgoQXNtUmVhZENyNCAoKSAmIENSNF9D RVRfRU5BQkxFKSAhPSAwKSA/IFRSVUUgOiBGQUxTRTsNCj4gPiArICBpZiAoQ2V0RW5hYmxlZCkg ew0KPiA+ICsgICAgRGlzYWJsZUNldCAoKTsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIERpc2Fi bGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKCZXcEVuYWJsZWQpOw0KPiA+DQo+ID4gICAgaWYg KG1VZWZpTWVtb3J5TWFwICE9IE5VTEwpIHsNCj4gPiAgICAgIE1lbW9yeU1hcEVudHJ5Q291bnQg PSBtVWVmaU1lbW9yeU1hcFNpemUvbVVlZmlEZXNjcmlwdG9yU2l6ZTsNCj4gPiAgICAgIE1lbW9y eU1hcCAgICAgICAgICAgPSBtVWVmaU1lbW9yeU1hcDsNCj4gPiAgICAgIGZvciAoSW5kZXggPSAw OyBJbmRleCA8IE1lbW9yeU1hcEVudHJ5Q291bnQ7IEluZGV4KyspIHsNCj4gPiBAQCAtMTQ3OSwx MSArMTUwMSwxNyBAQCBTZXRVZWZpTWVtTWFwQXR0cmlidXRlcyAoDQo+ID4NCj4gPiAgICAgICAg RW50cnkgPSBORVhUX01FTU9SWV9ERVNDUklQVE9SIChFbnRyeSwNCj4gbVVlZmlNZW1vcnlBdHRy aWJ1dGVzVGFibGUtPkRlc2NyaXB0b3JTaXplKTsNCj4gPiAgICAgIH0NCj4gPiAgICB9DQo+ID4N Cj4gPiAtICBFbmFibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKFdwRW5hYmxlZCwgQ2V0RW5h YmxlZCk7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBFbmFibGUgdGhlIFdQIGFuZCByZXN0b3JlIENF VCB0byBlbmFibGUNCj4gPiArICAvLw0KPiA+ICsgIEVuYWJsZVJlYWRPbmx5UGFnZVdyaXRlUHJv dGVjdCAoV3BFbmFibGVkKTsNCj4gPiArICBpZiAoQ2V0RW5hYmxlZCkgew0KPiA+ICsgICAgRW5h YmxlQ2V0ICgpOw0KPiA+ICsgIH0NCj4gPg0KPiA+ICAgIC8vDQo+ID4gICAgLy8gRG8gbm90IGZy ZWUgbVVlZmlNZW1vcnlBdHRyaWJ1dGVzVGFibGUsIGl0IHdpbGwgYmUgY2hlY2tlZCBpbg0KPiBJ c1NtbUNvbW1CdWZmZXJGb3JiaWRkZW5BZGRyZXNzKCkuDQo+ID4gICAgLy8NCj4gPg0KPiA+IEBA IC0xODgxLDIzICsxOTA5LDMxIEBAIFNldFBhZ2VUYWJsZUF0dHJpYnV0ZXMgKA0KPiA+DQo+ID4g ICAgUEVSRl9GVU5DVElPTl9CRUdJTiAoKTsNCj4gPiAgICBERUJVRyAoKERFQlVHX0lORk8sICJT ZXRQYWdlVGFibGVBdHRyaWJ1dGVzXG4iKSk7DQo+ID4NCj4gPiAgICAvLw0KPiA+IC0gIC8vIERp c2FibGUgd3JpdGUgcHJvdGVjdGlvbiwgYmVjYXVzZSB3ZSBuZWVkIG1hcmsgcGFnZSB0YWJsZSB0 byBiZSB3cml0ZQ0KPiBwcm90ZWN0ZWQuDQo+ID4gLSAgLy8gV2UgbmVlZCAqd3JpdGUqIHBhZ2Ug dGFibGUgbWVtb3J5LCB0byBtYXJrIGl0c2VsZiB0byBiZSAqcmVhZCBvbmx5Ki4NCj4gPiArICAv LyBDRVQgbXVzdCBiZSBkaXNhYmxlZCBpZiBXUCBpcyBkaXNhYmxlZC4NCj4gPiAgICAvLw0KPiA+ IC0gIERpc2FibGVSZWFkT25seVBhZ2VXcml0ZVByb3RlY3QgKCZXcEVuYWJsZWQsICZDZXRFbmFi bGVkKTsNCj4gPiArICBDZXRFbmFibGVkID0gKChBc21SZWFkQ3I0ICgpICYgQ1I0X0NFVF9FTkFC TEUpICE9IDApID8gVFJVRSA6IEZBTFNFOw0KPiA+ICsgIGlmIChDZXRFbmFibGVkKSB7DQo+ID4g KyAgICBEaXNhYmxlQ2V0ICgpOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgRGlzYWJsZVJlYWRP bmx5UGFnZVdyaXRlUHJvdGVjdCAoJldwRW5hYmxlZCk7DQo+ID4NCj4gPiAgICAvLyBTZXQgbWVt b3J5IHVzZWQgYnkgcGFnZSB0YWJsZSBhcyBSZWFkIE9ubHkuDQo+ID4gICAgREVCVUcgKChERUJV R19JTkZPLCAiU3RhcnQuLi5cbiIpKTsNCj4gPiAgICBFbmFibGVQYWdlVGFibGVQcm90ZWN0aW9u ICgpOw0KPiA+DQo+ID4gICAgLy8NCj4gPiAtICAvLyBFbmFibGUgd3JpdGUgcHJvdGVjdGlvbiwg YWZ0ZXIgcGFnZSB0YWJsZSBhdHRyaWJ1dGUgdXBkYXRlZC4NCj4gPiArICAvLyBFbmFibGUgdGhl IFdQIGFuZCByZXN0b3JlIENFVCB0byBlbmFibGUNCj4gPiAgICAvLw0KPiA+IC0gIEVuYWJsZVJl YWRPbmx5UGFnZVdyaXRlUHJvdGVjdCAoVFJVRSwgQ2V0RW5hYmxlZCk7DQo+ID4gKyAgRW5hYmxl UmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0IChXcEVuYWJsZWQpOw0KPiA+ICsgIGlmIChDZXRFbmFi bGVkKSB7DQo+ID4gKyAgICBFbmFibGVDZXQgKCk7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiAgICBt SXNSZWFkT25seVBhZ2VUYWJsZSA9IFRSVUU7DQo+ID4NCj4gPiAgICAvLw0KPiA+ICAgIC8vIEZs dXNoIFRMQiBhZnRlciBtYXJrIGFsbCBwYWdlIHRhYmxlIHBvb2wgYXMgcmVhZCBvbmx5Lg0KPiA+ ICAgIC8vDQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21tUHJv ZmlsZS5jDQo+IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1Qcm9maWxlLmMNCj4gPiBp bmRleCA3YWMzYzY2ZjkxLi43MWZkZjVmMzRhIDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vU21tUHJvZmlsZS5jDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9TbW1Qcm9maWxlLmMNCj4gPiBAQCAtNjA0LDExICs2MDQsMjAgQEAgSW5pdFBhZ2lu ZyAoDQo+ID4gICAgICBMaW1pdCA9IEJBU0VfNEdCOw0KPiA+ICAgIH0gZWxzZSB7DQo+ID4gICAg ICBMaW1pdCA9IChJc1Jlc3RyaWN0ZWRNZW1vcnlBY2Nlc3MgKCkpID8gTFNoaWZ0VTY0ICgxLA0K PiBtUGh5c2ljYWxBZGRyZXNzQml0cykgOiBCQVNFXzRHQjsNCj4gPiAgICB9DQo+ID4NCj4gPiAt ICBEaXNhYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkLCAmQ2V0RW5hYmxl ZCk7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBDRVQgbXVzdCBiZSBkaXNhYmxlZCBpZiBXUCBpcyBk aXNhYmxlZC4NCj4gPiArICAvLw0KPiA+ICsgIENldEVuYWJsZWQgPSAoKEFzbVJlYWRDcjQgKCkg JiBDUjRfQ0VUX0VOQUJMRSkgIT0gMCkgPyBUUlVFIDogRkFMU0U7DQo+ID4gKyAgaWYgKENldEVu YWJsZWQpIHsNCj4gPiArICAgIERpc2FibGVDZXQgKCk7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiAr ICBEaXNhYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkKTsNCj4gPiArDQo+ ID4gICAgLy8NCj4gPiAgICAvLyBbMCwgNGtdIG1heSBiZSBub24tcHJlc2VudC4NCj4gPiAgICAv Lw0KPiA+ICAgIFByZXZpb3VzQWRkcmVzcyA9ICgoUGNkR2V0OCAoUGNkTnVsbFBvaW50ZXJEZXRl Y3Rpb25Qcm9wZXJ0eU1hc2spICYNCj4gQklUMSkgIT0gMCkgPyBCQVNFXzRLQiA6IDA7DQo+ID4N Cj4gPiBAQCAtNjcwLDExICs2NzksMTcgQEAgSW5pdFBhZ2luZyAoDQo+ID4gICAgICAvLw0KPiA+ ICAgICAgU3RhdHVzID0gQ29udmVydE1lbW9yeVBhZ2VBdHRyaWJ1dGVzIChQYWdlVGFibGUsIG1Q YWdpbmdNb2RlLA0KPiBQcmV2aW91c0FkZHJlc3MsIExpbWl0IC0gUHJldmlvdXNBZGRyZXNzLCBN ZW1vcnlBdHRyTWFzaywgVFJVRSwgTlVMTCk7DQo+ID4gICAgICBBU1NFUlRfUkVUVVJOX0VSUk9S IChTdGF0dXMpOw0KPiA+ICAgIH0NCj4gPg0KPiA+IC0gIEVuYWJsZVJlYWRPbmx5UGFnZVdyaXRl UHJvdGVjdCAoV3BFbmFibGVkLCBDZXRFbmFibGVkKTsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEVu YWJsZSB0aGUgV1AgYW5kIHJlc3RvcmUgQ0VUIHRvIGVuYWJsZQ0KPiA+ICsgIC8vDQo+ID4gKyAg RW5hYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0IChXcEVuYWJsZWQpOw0KPiA+ICsgIGlmIChD ZXRFbmFibGVkKSB7DQo+ID4gKyAgICBFbmFibGVDZXQgKCk7DQo+ID4gKyAgfQ0KPiA+DQo+ID4g ICAgLy8NCj4gPiAgICAvLyBGbHVzaCBUTEINCj4gPiAgICAvLw0KPiA+ICAgIENwdUZsdXNoVGxi ICgpOw0KDQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSBy ZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcvUmVwbHkgT25saW5l ICgjMTEwNjY1KTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTEwNjY1 Ck11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvMTAyMzYyMzAwLzc2ODYxNzYK R3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvClVuc3Vic2NyaWJlOiBodHRw czovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWIgW3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09 LT0tPS09LT0tPS09LT0tPS09LQoKDQo=