From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web08.13499.1644337908240908681 for ; Tue, 08 Feb 2022 08:31:48 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Snou8BAJ; spf=pass (domain: intel.com, ip: 134.134.136.24, 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=1644337908; x=1675873908; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=0V/n4Lb3p++0Kp8VZZxS6z0CmiymiWT/e5LSFEx215I=; b=Snou8BAJpDH1jFFPYkqP8bwDrNkre3jucxGlHX0lfV/hd834WSe1oyZi WCqo4PK9xjzjPDnNTLyKSsH+pIA8TkFK9UblVcXWBBeHKLKFjXgtQrC9P SSlGxc2BjtJdjL8q1Foy5/u9b370A+qrxFVbOSXR5UkBULXz5GDK0cIom QMpj/XcfIp2g2UH163rp2ySnwX5TSbLf5yRqoHYwTzeU9y1aQTFX+iyYD hcANNKTjqZOXnQP73BofD6NbzjrOmQdz1pIi4kSnx33mQNHDSsH1iKYgM hCkkSaWII8XjQ0j+NzzQe2d+r5nlCAHKHsJlzI2alv68jWtDavJVfDK// g==; X-IronPort-AV: E=McAfee;i="6200,9189,10252"; a="248749545" X-IronPort-AV: E=Sophos;i="5.88,353,1635231600"; d="scan'208";a="248749545" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Feb 2022 08:31:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,353,1635231600"; d="scan'208";a="621955085" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by FMSMGA003.fm.intel.com with ESMTP; 08 Feb 2022 08:31:24 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 8 Feb 2022 08:31:24 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) 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.2308.20; Tue, 8 Feb 2022 08:31:23 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 8 Feb 2022 08:31:23 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.108) 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.2308.20; Tue, 8 Feb 2022 08:31:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YTMNDJlIwJ5AVZFncvwQM3zo8gBnluCy5qUDpdXPpDRrENlcxFshNfJN2DAfUJvFwfI1WvI4CkUNZfu8KehwSN5l8wnDiadOwJdMIE6Biu4A/GwvaQ+HtchziV2tFbMWWrcRW/6Acvqw1qx8hcGt36G1d/42xHRAs+Sto5th31oKtlEqFYyz4f4rZa27Oq26kdS5CE2pXkRJFT5dBftbcI3Qb1n+PGfH/ynlnqVMEU6IjPxwqkF9+ncyF3NWXSqYBhWfZVwEAqtxu02QQ9cdmTEVpg1+4sBH00FJU2jx27TFOK6KUPaf/maR3phwS7lGe5QuNO0gy5a8wOXzfBFCfA== 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=0V/n4Lb3p++0Kp8VZZxS6z0CmiymiWT/e5LSFEx215I=; b=I0N2q2NXYDtyym9Rs9E9u3Nj3/zJqtckCHoDtUrKU/IKG48g7iVbJRxhtM+uBPrjskf6WzeC9rfsLg3MX7AZ9Afj4wYYuE3MNSzJoVyJTNzln6hAE++/VnVNya0oLl8dnDwyIuRnRRfS5b3a0Bdj9S0ryDJp/Qi+DA5FHLf52cFfc4cJuiey9tXT9sgWe+cv4XH2eQoXy/YumX+p+GL6rcvx4sVMl/82lvppe71c9f3hXXzEEaUbYV9Bn+42USGCWZP8/Y9uzvV8xn2N+AVwN/8ZqfQuZqd6Nm21y7oq/N+1/QDNkEet2dF6mR93MxtWtkaPjra8dUd3ul5Q9houpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CH0PR11MB5266.namprd11.prod.outlook.com (2603:10b6:610:e1::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Tue, 8 Feb 2022 16:31:13 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::f5df:efd0:d43f:8e1e]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::f5df:efd0:d43f:8e1e%3]) with mapi id 15.20.4975.011; Tue, 8 Feb 2022 16:31:13 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "Li, Zhihao" , "Kinney, Michael D" CC: "Dong, Eric" , "Ni, Ray" , "Kumar, Rahul1" Subject: Re: [edk2-devel] [PATCH v1 1/2] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Topic: [edk2-devel] [PATCH v1 1/2] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Index: AQHYHK3dg5FJeHwND064Rca6uCXyZayJ1d9w Date: Tue, 8 Feb 2022 16:31:13 +0000 Message-ID: References: <20220208053556.844-1-zhihao.li@intel.com> In-Reply-To: <20220208053556.844-1-zhihao.li@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f72ca311-fa6d-405e-ff58-08d9eb206bfd x-ms-traffictypediagnostic: CH0PR11MB5266:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rP6YHFguwNxzIt7etANNMv+toZlOfK6eG9pjuE2k4pqSsRxPwA2FMgkqCP1PnMIAwdCBcbklV9ltwJkL7w+uT2AaAbugCjS/0fIR2kr4Rd0Ex92CWvpb8QRJcv9s5baUHqyAlAJe22od9/az5NqQrRm6nW9Os/Dd9rqGkFZhq+sStTaa0ipjzdSfJ2fWDENa9g8rfGbZwFrFiLoc0kQ75LXIC4NzyKDoBxmuuEiYP3uGLZpFWrMKCVX8fOdq1nXtmDiorqAtdOVgDz5kn47sVZzhy4LuRYlUnphIR2ZtsfBWxl5zkBBBplaYrKrwbHwUxPw38oqEhDv0f88wLgjaBG8qb9MWsO9WB1fJk2/ycIh4QGu2pNomOmGHojGSgYllrAZYidj7Oh/5LSd7krNozkkHWvEwa2pwgUW0Qjm/HDNzRrquvXoFjprN/G0ciqNwlzW1+u64AhbW5GQV+2vmbZka2Q7FE+kwMmJoTVWTwB/CSKsb0IjqG1otW76w6YKNDVv5474fNftdUt6O2PPXM7a9dpPLuK8hS2fH9ML0f1meZIQ3KanuJgHfqYYbb3Sz8TxjO04l2QAsSL9bZZvFrgdQCzcE9/99ou4QbpWIIuSirHHsmtxzYZajwS5bS6gWDyftvhnmZue+uWEnSV3mN8T4AYZpXN/OCO5ie/hTqEZKNGKsBKTkikH8Cm119iU0v8ZmLJ6wP0QqEyuBYDflJhmfFsnDI+ddLmbmMyOOgfb79NpTca3l6ODkbrg9aPAD8QUUXk/3c2erv1II56UupBz1XawOftluPuqdHy3U0Uw1Th53P2TFRqP8OnmGrAEzMPltLv1GZEINHyrwqjLAaw== 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:(13230001)(366004)(76116006)(107886003)(55016003)(64756008)(8936002)(8676002)(30864003)(66446008)(66946007)(66556008)(316002)(122000001)(508600001)(38100700002)(26005)(38070700005)(186003)(966005)(110136005)(2906002)(83380400001)(53546011)(54906003)(33656002)(6506007)(7696005)(9686003)(19627235002)(66476007)(5660300002)(52536014)(4326008)(86362001)(82960400001)(71200400001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VHdrZHc2dUZRR1ZqWG96RVRBSy9FbEtjVFB1ajNLV2RQT01vSHRjS290U1pt?= =?utf-8?B?UDRMbkFHdWZ5Q0E4eTBKVlJncEZ2a3J6UENGOEV0K1RTa081MTkwVDVSczY0?= =?utf-8?B?QXp4MGxrNFVadUI4ZEFkb3ptYUV4eFQzM3d5TCtwdUlOdWNRWGpqKzA4cEc5?= =?utf-8?B?MWU5RGN3OEZGVUpCMkpncEowbi9BaVd6RDBIMVlWODVPN0hmN0lPZ1VuMmYr?= =?utf-8?B?Ujlhc0p3SlRlNnkxbGdqS3piaVhZZWZVZzhkZHZJTTd0cTRTdlRYazM1YTZr?= =?utf-8?B?bzczQ2FzUEhXbjc5dVV1alZHTXhPdUpvT0RXbWVjNklsZVlUY2QvVzB2ZDhq?= =?utf-8?B?R1M4a2lIV0hQZERmL1crMWNsc0lBOU9POUNhSER1bWx5MGovbkhrUDVLTmU1?= =?utf-8?B?VDhwNGwvczBYcDJmUmExb2djclRNYUFweG5jaXFWU3NqNWpnZVA4UEdCSUt6?= =?utf-8?B?cUM4WkZtemVBeHkrN3c4SDB4Z0NjUlorTmJ0MXF6N2JiZjBPblkvRklNRFhE?= =?utf-8?B?cVZnTmdUOWErbU5MZFYvTW1sMzJiZ1FHa3VJWVJxTmIrQUtsVXpONVJDNEFR?= =?utf-8?B?SlRHdjF0MWNzWDRzTldWVy9zc0xHSUg1V1hwZ0ZYY0l4Ryt2MVdkTC8rQmFj?= =?utf-8?B?K1BlME9GRHlLVmlhalAwVUxCd284ZnFwSExxSDBsU3hnUTU1WkNFeGlENzlQ?= =?utf-8?B?VlFScWRxZW1JeWZZbmZXakN5RWhEYkVUWUZvZTdtYkhDZDF1L0hEeXViaFlD?= =?utf-8?B?TnhrZ2ExeU8xcWtZbTJHSW5CSkR3V2phZUFKQU5sRVA2NXBXbnYvZVpTVXRB?= =?utf-8?B?KysxRFNmdlphUHJ2cVdxVEdEd2Q5WUxwZzFNdE41ZGVFWE15UEVTa3Vqajd3?= =?utf-8?B?UXdtU0wvcitaS2tWNUZEOE1yWDFybC9Cc0VpZUpJMnRjOFBURlJyQU9DOXZO?= =?utf-8?B?aGJmYSswMVhUMGJHT0pTd1p3OUJtWEVSQ293clkxRkt0bWR3VDJGcEIyek5G?= =?utf-8?B?U0txeUMrRjlTb1VqSjFxdDRLQXJ6RkJFWTRkSFd5NGJZdkFBcVNFRENMcjda?= =?utf-8?B?SDFHZytSRjUxcDltcndKekt3VU9zS1dOSE9WM1JEdmtUNldNSDVuNXZaZFlS?= =?utf-8?B?WGY2ZjlENHNlNWhjaWhKVytKRXRCY2dGOGpKVlE2R2FGcmtrKzdVQmN5aWVT?= =?utf-8?B?eXBKdlc2bHIxNG9Rck9xU1U3Qkdrc0VXS0dMcnN5WWJtbWxxdmg5cXc0S0dT?= =?utf-8?B?SHhlclhVWXVaRWFlKy9UMG9MWFBtVnRtVElXdUMvc3hoU09jbisxZkU3NTI0?= =?utf-8?B?cVg0LzhBcnp5NmREdDhQUFRWVCtsU0srYUNCemw1R0VZYWR1eDdnT3djK29w?= =?utf-8?B?NURsQzBRcmhPWVExOU1vRWFJMjJoSFQxdlEyczB0K0xmQ29ITmJ0REdEaWda?= =?utf-8?B?cGZ6d0NYR2R2d255NVJTWGxTdkt6ZXlxeDlTenJ2RlkxRHRCRmhzNW9mWUNN?= =?utf-8?B?Wlp0S2FDRzVHMVFoSVJyTEdoT2VGUDB1YzFHR1oyNFFQUkRZWHBHT1BaWUVu?= =?utf-8?B?MTZYRUd6WWxwcUI5cWxKZ1pjekRpYndleFkvQVVlVDZyVlhSRDFMQS9IVzk2?= =?utf-8?B?a2Y0QVRlRm8rL1FZQUFXT0kyL1FZTzBWbUVDOUFjS0s5ZGNoTlFZVGFZSzkz?= =?utf-8?B?K2p4NkhieDZrR0Z6cDlJTDEvL0J6UzZDbHlXNjd1UGVZdjVYUW4xbTNpME1s?= =?utf-8?B?TDlwUGhJRnZqbjZBYkhmcmpQdndpODlMNmhCMXF3Yk5mMnJlTWdsY0c2Vmtw?= =?utf-8?B?QThOT1p4V0grK3ZDQXFram15VUN3Nm0vcklkejQ3ZXg0RUV1WmRXQkh2VmU3?= =?utf-8?B?RFp0d2p5NVBrVEhOcWUxM2FRbUUwS3g3anFlcVBwZlFCVlhUcjJwWmE4TTdr?= =?utf-8?B?ZS9VQVhVbkxCOVhzRzBCS0hjc1pmZXRpNFBzZVhKUmROS0RNZHdCeGg2MzBE?= =?utf-8?B?MEpvcGk4cjZGQk9ua1NNeEl6MDcyUTUxUXkvL1dmOUQvY3BsSlJVR3NkeVFF?= =?utf-8?B?OXF1Q2dyM0RQMkFpaDRBU3NJa0ZqNnJXNkk1L0JlbzdhMmZYMlB5UGJZdGk5?= =?utf-8?B?c0tRUFB2WmJNOThRd0RyTUp5YmNNTm0vVjZkaTJLM2tGZ2NYM0RzcHcyODdR?= =?utf-8?B?cnlVK29QOFhSTDZuM0hBeFNrS3Z3ZTRzZE9ueVVUVGUwMVc0UkNoeUQyM2JS?= =?utf-8?B?QlhMTEpycGFZc1ZaNTdQb2pkYzdnPT0=?= 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: f72ca311-fa6d-405e-ff58-08d9eb206bfd X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Feb 2022 16:31:13.1674 (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: i+tFGTWjhF8ENKUqsCbycgVsJMyFeaVrN2f3Vz2TaUNIchQCCdnjDNC5fh7Qs+wUDDFP/ZetMc9uDuHuu+cTrvvGMVjvnpJ9Z2iODdM9+no= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5266 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 SGkgWmhpaGFvLA0KDQpnRWZpU21tQ3B1U2VydmljZVByb3RvY29sR3VpZCBpcyBkZWZpbmVkIGlu IHRoZSBVZWZpQ3B1UGtnIGFuZCBpcyBhbHJlYWR5IGFuDQpFREsgSUkgc3BlY2lmaWMgZmVhdHVy ZSBwcm90b2NvbC4gIEFkZGluZyBhbiBFZGtpaSBuYW1lcyB2ZXJzaW9uIG9mIHRoZSANCnByb3Rv Y29sIGRvZXMgbm90IG1ha2UgaXQgY2xlYXIgdGhhdCB0aGVyZSBpcyBhIHJlbGF0aW9uc2hpcCBi ZXR3ZWVuIHRoZSANCnR3byB2ZXJzaW9ucyBvZiB0aGlzIHByb3RvY29sLiAgWW91IGhhdmUgYWRk ZWQgb25lIG5ldyBzZXJ2aWNlIHRvIHRoZQ0KZXhpc3RpbmcgcHJvdG9jb2wuICBUaGUgZXhpc3Rp bmcgcHJvdG9jb2wgZG9lcyBub3QgaGF2ZSBhIFJldmlzaW9uIGZpZWxkDQpzbyB3ZSBkbyBoYXZl IHRvIGNyZWF0ZSBhIG5ldyBQcm90b2NvbCBOYW1lL1Byb3RvY29sIEdVSUQuICBCYXNlZCBvbg0K cHJldmlvdXMgdXNlIGNhc2VzLCB3ZSBoYXZlIGEgZmV3IG9wdGlvbnM6DQoNCjEpIElmIFJldmlz aW9uIGZpZWxkIGlzIHByZXNlbnQsIGFkZCB0byBlbmQgYW5kIGluY3JlYXNlIFJldmlzaW9uIHZh bHVlDQoyKSBJZiBSZXZpc2lvbiBmaWVsZCBub3QgcHJlc2VudA0KICBhKSBEZWZpbmUgYW4gXzIg b3IgX0V4IHZlcnNpb24gb2YgdGhlIHByb3RvY29sIHdpdGggbmV3IHNlcnZpY2UocykgYWRkZWQN CiAgICAgdG8gZW5kIG9mIHN0cnVjdHVyZSBhbmQgaW1wbGVtZW50IG9yaWdpbmFsIHZlcnNpb24g b2YgdGhlIHByb3RvY29sIG9uDQogICAgIHRvcCBvZiB0aGUgXzIgdmVyc2lvbiBvZiB0aGUgcHJv dG9jb2wuDQogIGIpIERlZmluZSBhIG5ldyBQcm90b2NvbCB3aXRoIGp1c3QgdGhlIG5ldyBzZXJ2 aWNlcy4gKGUuZy4gZ0Vka2lpU21tQ3B1UmVkZXp2b3VzUHJvdG9jb2xHdWlkKQ0KDQpUaGUgcGF0 Y2ggYWxzbyBjaGFuZ2VzIHRoZSBERUMgZGVmYXVsdCB2YWx1ZSBvZiBnVWVmaUNwdVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZENwdVNtbVN5bmNNb2RlDQpmcm9tIDB4MDAgdG8gMHgwMS4gIENoYW5naW5n IHRoZSBkZWZhdWx0IHZhbHVlIG9mIGEgUENEIGluIGEgREVDIGZpbGUgaXMgYSBub24NCmJhY2t3 YXJkcyBjb21wYXRpYmxlIGNoYW5nZS4gIFRoaXMgc2hvdWxkIG5vdCBiZSBkb25lLiAgSW5zdGVh ZCwgcGxhdGZvcm1zIHRoYXQgbmVlZA0KdGhlIGRpZmZlcmVudCBzeW5jIG1vZGUgc2hvdWxkIHNl dCB0aGF0IFBDRCBpbiB0aGVpciBEU0MgZmlsZS4NCg0KSXMgYSBuZXcgbGliIGNsYXNzIHJlYWxs eSByZXF1aXJlZCBhdCB0aGlzIHRpbWUuICBUaGUgcmVhc29uIHRvIGFkZCBhIG5ldyBsaWINCmNs YXNzIGlzIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjb25zdW1lcnMuDQoNCkkgc2VlIHRoZSBsaWIg aW5zdGFuY2UgdXNlcyBhIFJlZ2lzdGVyUHJvdG9jb2xOb3RpZnkgaW4gaXRzIGNvbnN0cnVjdG9y LiAgSXMgaXQNCnBvc3NpYmxlIHRvIHVzZSBhIERlcGV4IGluc3RlYWQgYW5kIGVsaW1pbmF0ZSB0 aGUgYWRkaXRpb25hbCBjb21wbGV4aXR5IG9mIGENCmNvbnN0cnVjdG9yIGFuZCBSZWdpc3RlclBy b3RvY29sTm90aWZ5Pw0KDQpCZXN0IHJlZ2FyZHMsDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5n cm91cHMuaW8+IE9uIEJlaGFsZiBPZiBMaSwgWmhpaGFvDQo+IFNlbnQ6IE1vbmRheSwgRmVicnVh cnkgNywgMjAyMiA5OjM2IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogRG9u ZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+ OyBLdW1hciwgUmFodWwxIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZWRr Mi1kZXZlbF0gW1BBVENIIHYxIDEvMl0gVWVmaUNwdVBrZzogRXh0ZW5kIFNNTSBDUFUgU2Vydmlj ZSB3aXRoIHJlbmRlenZvdXMgc3VwcG9ydC4NCj4gDQo+IEZyb206IFpoaWhhbyBMaSA8emhpaGFv LmxpQGludGVsLmNvbT4NCj4gDQo+IFJFRu+8miBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5v cmcvc2hvd19idWcuY2dpP2lkPTM4MTUNCj4gDQo+IFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgU01N IENQVSBTZXJ2aWNlIHByb3RvY29sIHdpdGggbmV3IGludGVyZmFjZQ0KPiBTbW1XYWl0Rm9yQWxs UHJvY2Vzc29yKCksIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IFNNSSBoYW5kbGVyIHRvIG9wdGlvbmFs bHkNCj4gd2FpdCBmb3Igb3RoZXIgQVBzIHRvIGNvbXBsZXRlIFNNTSByZW5kZXp2b3VzIGluIHJl bGF4ZWQgQVAgbW9kZS4NCj4gDQo+IEEgbmV3IGxpYnJhcnkgU21tQ3B1UmVuZGV6dm91c0xpYiBp cyBwcm92aWRlZCB0byBhYnN0cmFjdCB0aGUgc2VydmljZQ0KPiBpbnRvIGxpYnJhcnkgQVBJIHRv IHNpbXBsZSBTTUkgaGFuZGxlciBjb2RlLg0KPiANCj4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25n QGludGVsLmNvbT4NCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gQ2M6IFJhaHVs IEt1bWFyIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPg0KPiANCj4gU2lnbmVkLW9mZi1ieTogWmhp aGFvIExpIDx6aGloYW8ubGlAaW50ZWwuY29tPg0KPiAtLS0NCj4gIFVlZmlDcHVQa2cvTGlicmFy eS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlenZvdXNMaWIuYyAgIHwgMTA5ICsrKysr KysrKysrKysrKysrKysrDQo+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVNlcnZpY2Uu YyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2NSArKysrKysrKysrKysNCj4gIFVlZmlDcHVQ a2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDE0ICsrLQ0KPiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TeW5jVGltZXIuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4gIFVlZmlDcHVQa2cvSW5jbHVkZS9MaWJyYXJ5 L1NtbUNwdVJlbmRlenZvdXNMaWIuaCAgICAgICAgICAgICAgIHwgIDI3ICsrKysrDQo+ICBVZWZp Q3B1UGtnL0luY2x1ZGUvUHJvdG9jb2wvU21tQ3B1U2VydmljZS5oICAgICAgICAgICAgICAgICAg ICB8ICA0MCArKysrKysrDQo+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xp Yi9TbW1DcHVSZW5kZXp2b3VzTGliLmluZiB8ICAzMiArKysrKysNCj4gIFVlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaCAgICAgICAgICAgICAgICAgICAgIHwgIDI4ICsr KysrDQo+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmluZiAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQ0KPiAgVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0NCj4gIDEwIGZpbGVzIGNo YW5nZWQsIDMxOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdp dCBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlenZv dXNMaWIuYw0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNw dVJlbmRlenZvdXNMaWIuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw MDAwLi4zYzVjZDUxZDBjDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvVWVmaUNwdVBrZy9MaWJy YXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5jDQo+IEBAIC0wLDAg KzEsMTA5IEBADQo+ICsvKiogQGZpbGUNCj4gDQo+ICtTTU0gQ1BVIFJlbmRlenZvdXMgbGlicmFy eSBoZWFkZXIgZmlsZS4NCj4gDQo+ICsNCj4gDQo+ICtDb3B5cmlnaHQgKGMpIDIwMjEsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICtTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKw0KPiANCj4gKyoqLw0K PiANCj4gKw0KPiANCj4gKw0KPiANCj4gKyNpbmNsdWRlIDxCYXNlLmg+DQo+IA0KPiArI2luY2x1 ZGUgPFVlZmkuaD4NCj4gDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+IA0KPiAr I2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9Q Y2RMaWIuaD4NCj4gDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9TbW1TZXJ2aWNlc1RhYmxlTGliLmg+ DQo+IA0KPiArI2luY2x1ZGUgPFByb3RvY29sL1NtbUNwdVNlcnZpY2UuaD4NCj4gDQo+ICsjaW5j bHVkZSA8TGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliLmg+DQo+IA0KPiArDQo+IA0KPiArU1RB VElDIEVES0lJX1NNTV9DUFVfU0VSVklDRV9QUk9UT0NPTCAgKm1TbW1DcHVTZXJ2aWNlID0gTlVM TDsNCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFRoaXMgcm91dGluZSB3YWl0IGZvciBh bGwgQVAgcHJvY2Vzc29ycyB0byBhcnJpdmUgaW4gU01NLg0KPiANCj4gKw0KPiANCj4gKyAgQHBh cmFtICBCbG9ja2luZ01vZGUgIEJsb2NraW5nIG1vZGUgb3Igbm9uLWJsb2NraW5nIG1vZGUuDQo+ IA0KPiArDQo+IA0KPiArICBAcmV0dmFsIFRSVUUgICBBbGwgcHJvY2Vzc29ycyBjaGVja2VkIGlu IHRvIFNNTQ0KPiANCj4gKyAgQHJldHZhbCBGQUxTRSAgU29tZSBwcm9jZXNzb3Igbm90IGNoZWNr ZWQgaW4gdG8gU01NDQo+IA0KPiArDQo+IA0KPiArKiovDQo+IA0KPiArRUZJX1NUQVRVUw0KPiAN Cj4gK0VGSUFQSQ0KPiANCj4gK1NtbVdhaXRGb3JBbGxQcm9jZXNzb3IgKA0KPiANCj4gKyAgSU4g IEJPT0xFQU4gIEJsb2NraW5nTW9kZQ0KPiANCj4gKyAgKQ0KPiANCj4gK3sNCj4gDQo+ICsgIEVG SV9TVEFUVVMgU3RhdHVzOw0KPiANCj4gKw0KPiANCj4gKyAgaWYgKG1TbW1DcHVTZXJ2aWNlID09 IE5VTEwpIHsNCj4gDQo+ICsgICAgcmV0dXJuIFRSVUU7DQo+IA0KPiArICB9DQo+IA0KPiArDQo+ IA0KPiArICBTdGF0dXMgPSBtU21tQ3B1U2VydmljZS0+V2FpdEZvckFsbFByb2Nlc3NvciAoDQo+ IA0KPiArICAgICAgICAgICAgICBtU21tQ3B1U2VydmljZSwNCj4gDQo+ICsgICAgICAgICAgICAg IEJsb2NraW5nTW9kZQ0KPiANCj4gKyAgICAgICAgICAgICAgKTsNCj4gDQo+ICsgIHJldHVybiBF RklfRVJST1IoU3RhdHVzKSA/IEZBTFNFIDogVFJVRTsNCj4gDQo+ICt9DQo+IA0KPiArDQo+IA0K PiArLyoqDQo+IA0KPiArICBSZWdpc3RlciBzdGF0dXMgY29kZSBjYWxsYmFjayBmdW5jdGlvbiBv bmx5IHdoZW4gUmVwb3J0IFN0YXR1cyBDb2RlIHByb3RvY29sDQo+IA0KPiArICBpcyBpbnN0YWxs ZWQuDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW0gUHJvdG9jb2wgICAgICAgUG9pbnRzIHRvIHRo ZSBwcm90b2NvbCdzIHVuaXF1ZSBpZGVudGlmaWVyLg0KPiANCj4gKyAgQHBhcmFtIEludGVyZmFj ZSAgICAgIFBvaW50cyB0byB0aGUgaW50ZXJmYWNlIGluc3RhbmNlLg0KPiANCj4gKyAgQHBhcmFt IEhhbmRsZSAgICAgICAgIFRoZSBoYW5kbGUgb24gd2hpY2ggdGhlIGludGVyZmFjZSB3YXMgaW5z dGFsbGVkLg0KPiANCj4gKw0KPiANCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgIE5vdGlmaWNh dGlvbiBydW5zIHN1Y2Nlc3NmdWxseS4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtFRklf U1RBVFVTDQo+IA0KPiArRUZJQVBJDQo+IA0KPiArU21tQ3B1U2VydmljZVByb3RvY29sTm90aWZ5 ICgNCj4gDQo+ICsgIElOIENPTlNUIEVGSV9HVUlEICAgICAgICAqUHJvdG9jb2wsDQo+IA0KPiAr ICBJTiBWT0lEICAgICAgICAgICAgICAgICAgKkludGVyZmFjZSwNCj4gDQo+ICsgIElOIEVGSV9I QU5ETEUgICAgICAgICAgICBIYW5kbGUNCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBF RklfU1RBVFVTICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gDQo+ICsNCj4gDQo+ICsgIFN0 YXR1cyA9IGdTbXN0LT5TbW1Mb2NhdGVQcm90b2NvbCAoDQo+IA0KPiArICAgICAgICAgICAgICAg ICAgICAmZ0Vka2lpU21tQ3B1U2VydmljZVByb3RvY29sR3VpZCwNCj4gDQo+ICsgICAgICAgICAg ICAgICAgICAgIE5VTEwsDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAoVk9JRCAqKikgJm1T bW1DcHVTZXJ2aWNlDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICApOw0KPiANCj4gKyAgQVNT RVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gDQo+ICsNCj4gDQo+ICsgIHJldHVybiBFRklfU1VD Q0VTUzsNCj4gDQo+ICt9DQo+IA0KPiArDQo+IA0KPiArLyoqDQo+IA0KPiArICBUaGUgY29uc3Ry dWN0b3IgZnVuY3Rpb24NCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbVtpbl0gIEltYWdlSGFuZGxl ICBUaGUgZmlybXdhcmUgYWxsb2NhdGVkIGhhbmRsZSBmb3IgdGhlIEVGSSBpbWFnZS4NCj4gDQo+ ICsgIEBwYXJhbVtpbl0gIFN5c3RlbVRhYmxlICBBIHBvaW50ZXIgdG8gdGhlIEVGSSBTeXN0ZW0g VGFibGUuDQo+IA0KPiArDQo+IA0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgVGhlIGNv bnN0cnVjdG9yIGFsd2F5cyByZXR1cm5zIEVGSV9TVUNDRVNTLg0KPiANCj4gKw0KPiANCj4gKyoq Lw0KPiANCj4gK0VGSV9TVEFUVVMNCj4gDQo+ICtFRklBUEkNCj4gDQo+ICtTbW1DcHVSZW5kZXp2 b3VzTGliQ29uc3RydWN0b3IgKA0KPiANCj4gKyAgSU4gRUZJX0hBTkRMRSAgICAgICAgSW1hZ2VI YW5kbGUsDQo+IA0KPiArICBJTiBFRklfU1lTVEVNX1RBQkxFICAqU3lzdGVtVGFibGUNCj4gDQo+ ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBFRklfU1RBVFVTICBTdGF0dXM7DQo+IA0KPiArICBW T0lEICAgICAgICAqUmVnaXN0cmF0aW9uOw0KPiANCj4gKw0KPiANCj4gKyAgU3RhdHVzID0gZ1Nt c3QtPlNtbUxvY2F0ZVByb3RvY29sICgmZ0Vka2lpU21tQ3B1U2VydmljZVByb3RvY29sR3VpZCwg TlVMTCwgKFZPSUQgKiopICZtU21tQ3B1U2VydmljZSk7DQo+IA0KPiArICBpZiAoRUZJX0VSUk9S IChTdGF0dXMpKSB7DQo+IA0KPiArICAgIFN0YXR1cyA9IGdTbXN0LT5TbW1SZWdpc3RlclByb3Rv Y29sTm90aWZ5ICgNCj4gDQo+ICsgICAgICAgICAgICAgICAgJmdFZGtpaVNtbUNwdVNlcnZpY2VQ cm90b2NvbEd1aWQsDQo+IA0KPiArICAgICAgICAgICAgICAgIFNtbUNwdVNlcnZpY2VQcm90b2Nv bE5vdGlmeSwNCj4gDQo+ICsgICAgICAgICAgICAgICAgJlJlZ2lzdHJhdGlvbg0KPiANCj4gKyAg ICAgICAgICAgICAgICApOw0KPiANCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0K PiANCj4gKyAgfQ0KPiANCj4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiANCj4gK30NCj4gXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL0NwdVNlcnZpY2UuYyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1U2Vy dmljZS5jDQo+IGluZGV4IDVkNjI0ZjhlOWUuLjM0MDE5YzI0ZmYgMTAwNjQ0DQo+IC0tLSBhL1Vl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1U2VydmljZS5jDQo+ICsrKyBiL1VlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vQ3B1U2VydmljZS5jDQo+IEBAIC0yMCw2ICsyMCwxOSBAQCBFRklfU01N X0NQVV9TRVJWSUNFX1BST1RPQ09MICBtU21tQ3B1U2VydmljZSA9IHsNCj4gICAgU21tUmVnaXN0 ZXJFeGNlcHRpb25IYW5kbGVyDQo+IA0KPiAgfTsNCj4gDQo+IA0KPiANCj4gKy8vDQo+IA0KPiAr Ly8gRURLSUkgU01NIENQVSBTZXJ2aWNlIFByb3RvY29sIGluc3RhbmNlDQo+IA0KPiArLy8NCj4g DQo+ICtFREtJSV9TTU1fQ1BVX1NFUlZJQ0VfUFJPVE9DT0wgIG1FZGtpaVNtbUNwdVNlcnZpY2Ug PSB7DQo+IA0KPiArICBTbW1HZXRQcm9jZXNzb3JJbmZvLA0KPiANCj4gKyAgU21tU3dpdGNoQnNw LA0KPiANCj4gKyAgU21tQWRkUHJvY2Vzc29yLA0KPiANCj4gKyAgU21tUmVtb3ZlUHJvY2Vzc29y LA0KPiANCj4gKyAgU21tV2hvQW1JLA0KPiANCj4gKyAgU21tUmVnaXN0ZXJFeGNlcHRpb25IYW5k bGVyLA0KPiANCj4gKyAgU21tV2FpdEZvckFsbFByb2Nlc3Nvcg0KPiANCj4gK307DQo+IA0KPiAr DQo+IA0KPiAgLyoqDQo+IA0KPiAgICBHZXRzIHByb2Nlc3NvciBpbmZvcm1hdGlvbiBvbiB0aGUg cmVxdWVzdGVkIHByb2Nlc3NvciBhdCB0aGUgaW5zdGFudCB0aGlzIGNhbGwgaXMgbWFkZS4NCj4g DQo+IA0KPiANCj4gQEAgLTM2NSw1ICszNzgsNTcgQEAgSW5pdGlhbGl6ZVNtbUNwdVNlcnZpY2Vz ICgNCj4gICAgICAgICAgICAgICAgICAgICAgJm1TbW1DcHVTZXJ2aWNlDQo+IA0KPiAgICAgICAg ICAgICAgICAgICAgICApOw0KPiANCj4gICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4g DQo+ICsNCj4gDQo+ICsgIFN0YXR1cyA9IGdTbXN0LT5TbW1JbnN0YWxsUHJvdG9jb2xJbnRlcmZh Y2UgKA0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgJkhhbmRsZSwNCj4gDQo+ICsgICAgICAg ICAgICAgICAgICAgICZnRWRraWlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xHdWlkLA0KPiANCj4gKyAg ICAgICAgICAgICAgICAgICAgRUZJX05BVElWRV9JTlRFUkZBQ0UsDQo+IA0KPiArICAgICAgICAg ICAgICAgICAgICAmbUVka2lpU21tQ3B1U2VydmljZQ0KPiANCj4gKyAgICAgICAgICAgICAgICAg ICAgKTsNCj4gDQo+ICsgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+IA0KPiArICByZXR1 cm4gU3RhdHVzOw0KPiANCj4gK30NCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsgIFdhaXQg Zm9yIGFsbCBwcm9jZXNzb3JzIGVudGVycmluZyBTTU0gdW50aWwgYWxsIENQVXMgYXJlIGFscmVh ZHkgc3luY2hyb25pemVkIG9yIG5vdC4NCj4gDQo+ICsNCj4gDQo+ICsgIEBwYXJhbSAgVGhpcyAg ICAgICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhlIEVES0lJX1NNTV9DUFVfU0VSVklDRV9Q Uk9UT0NPTCBpbnN0YW5jZS4NCj4gDQo+ICsgIEBwYXJhbSAgQmxvY2tpbmdNb2RlICAgICAgICAg ICBCbG9ja2luZyBtb2RlIG9yIG5vbi1ibG9ja2luZyBtb2RlLg0KPiANCj4gKw0KPiANCj4gKyAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICBBbGwgYXZhaWFibGUgQVBzIGFycml2ZWQuDQo+IA0KPiAr ICBAcmV0dmFsIEVGSV9USU1FT1VUICAgIFdhaXQgZm9yIGFsbCBBUHMgdW50aWwgdGltZW91dC4N Cj4gDQo+ICsqKi8NCj4gDQo+ICtFRklfU1RBVFVTDQo+IA0KPiArRUZJQVBJDQo+IA0KPiArU21t V2FpdEZvckFsbFByb2Nlc3NvciAoDQo+IA0KPiArICBJTiAgRURLSUlfU01NX0NQVV9TRVJWSUNF X1BST1RPQ09MICAqVGhpcywNCj4gDQo+ICsgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICAg ICAgICAgICBCbG9ja2luZ01vZGUNCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBFRklf U1RBVFVTICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gDQo+ICsNCj4gDQo+ICsgIC8vDQo+IA0K PiArICAvLyBSZXR1cm4gc3VjY2VzcyBpbW1lZGlhdGVseSBpZiBhbGwgQ1BVcyBhcmUgYWxyZWFk eSBzeW5jaHJvbml6ZWQuDQo+IA0KPiArICAvLw0KPiANCj4gKyAgaWYgKG1TbW1NcFN5bmNEYXRh LT5BbGxBcEFycml2ZWRXaXRoRXhjZXB0aW9uKSB7DQo+IA0KPiArICAgIFN0YXR1cyA9IEVGSV9T VUNDRVNTOw0KPiANCj4gKyAgICBnb3RvIE9OX0VYSVQ7DQo+IA0KPiArICB9DQo+IA0KPiArDQo+ IA0KPiArICBpZiAoIUJsb2NraW5nTW9kZSkgew0KPiANCj4gKyAgICBTdGF0dXMgPSBFRklfVElN RU9VVDsNCj4gDQo+ICsgICAgZ290byBPTl9FWElUOw0KPiANCj4gKyAgfQ0KPiANCj4gKw0KPiAN Cj4gKyAgLy8NCj4gDQo+ICsgIC8vIFRoZXJlIGFyZSBzb21lIEFQcyBvdXRzaWRlIFNNTSwgV2Fp dCBmb3IgYWxsIGF2YWlhYmxlIEFQcyB0byBhcnJpdmUuDQo+IA0KPiArICAvLw0KPiANCj4gKyAg U21tV2FpdEZvckFwQXJyaXZhbCAoQmxvY2tpbmdNb2RlKTsNCj4gDQo+ICsgIFN0YXR1cyA9IG1T bW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRXaXRoRXhjZXB0aW9uID8gRUZJX1NVQ0NFU1MgOiBF RklfVElNRU9VVDsNCj4gDQo+ICsNCj4gDQo+ICtPTl9FWElUOg0KPiANCj4gKyAgaWYgKCFtU21t TXBTeW5jRGF0YS0+QWxsQXBBcnJpdmVkV2l0aEV4Y2VwdGlvbil7DQo+IA0KPiArICAgIERFQlVH ICgoRUZJX0RfSU5GTywgIkVka2lpU21tV2FpdEZvckFsbEFwQXJyaXZhbDogVGltZW91dCB0byB3 YWl0IGFsbCBBUHMgYXJyaXZhbFxuIikpOw0KPiANCj4gKyAgfQ0KPiANCj4gICAgcmV0dXJuIFN0 YXR1czsNCj4gDQo+ICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9NcFNlcnZpY2UuYyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMN Cj4gaW5kZXggODgyZGVlNGZlMi4uOWM3YjE2NzI4YSAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBr Zy9QaVNtbUNwdUR4ZVNtbS9NcFNlcnZpY2UuYw0KPiArKysgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1 RHhlU21tL01wU2VydmljZS5jDQo+IEBAIC0yNjEsNyArMjYxLDcgQEAgSXNMbWNlU2lnbmFsZWQg KA0KPiAgKiovDQo+IA0KPiAgVk9JRA0KPiANCj4gIFNtbVdhaXRGb3JBcEFycml2YWwgKA0KPiAN Cj4gLSAgVk9JRA0KPiANCj4gKyAgSU4gIEJPT0xFQU4gIEJsb2NraW5nTW9kZQ0KPiANCj4gICAg KQ0KPiANCj4gIHsNCj4gDQo+ICAgIFVJTlQ2NCAgIFRpbWVyOw0KPiANCj4gQEAgLTI3MCw3ICsy NzAsMTQgQEAgU21tV2FpdEZvckFwQXJyaXZhbCAoDQo+ICAgIEJPT0xFQU4gIExtY2VTaWduYWw7 DQo+IA0KPiANCj4gDQo+ICAgIEFTU0VSVCAoKm1TbW1NcFN5bmNEYXRhLT5Db3VudGVyIDw9IG1O dW1iZXJPZkNwdXMpOw0KPiANCj4gLQ0KPiANCj4gKw0KPiANCj4gKyAgLy8NCj4gDQo+ICsgIC8v IGlmIGJsb2NrIGlzIEZhbHNlLCBkbyBub3Qgd2FpdCBhbmQgcmV0dXJuIGltbWVkaWF0ZWx5Lg0K PiANCj4gKyAgLy8NCj4gDQo+ICsgIGlmICghQmxvY2tpbmdNb2RlKXsNCj4gDQo+ICsgICAgcmV0 dXJuOw0KPiANCj4gKyAgfQ0KPiANCj4gKw0KPiANCj4gICAgTG1jZUVuICAgICA9IEZBTFNFOw0K PiANCj4gICAgTG1jZVNpZ25hbCA9IEZBTFNFOw0KPiANCj4gICAgaWYgKG1NYWNoaW5lQ2hlY2tT dXBwb3J0ZWQpIHsNCj4gDQo+IEBAIC01MTEsNyArNTE4LDcgQEAgQlNQSGFuZGxlciAoDQo+ICAg ICAgLy8NCj4gDQo+ICAgICAgLy8gV2FpdCBmb3IgQVBzIHRvIGFycml2ZQ0KPiANCj4gICAgICAv Lw0KPiANCj4gLSAgICBTbW1XYWl0Rm9yQXBBcnJpdmFsICgpOw0KPiANCj4gKyAgICBTbW1XYWl0 Rm9yQXBBcnJpdmFsKFRSVUUpOw0KPiANCj4gDQo+IA0KPiAgICAgIC8vDQo+IA0KPiAgICAgIC8v IExvY2sgdGhlIGNvdW50ZXIgZG93biBhbmQgcmV0cmlldmUgdGhlIG51bWJlciBvZiBBUHMNCj4g DQo+IEBAIC0xODg2LDYgKzE4OTMsNyBAQCBJbml0aWFsaXplTXBTeW5jRGF0YSAoDQo+ICAgICAg Km1TbW1NcFN5bmNEYXRhLT5Db3VudGVyICAgICAgID0gMDsNCj4gDQo+ICAgICAgKm1TbW1NcFN5 bmNEYXRhLT5JbnNpZGVTbW0gICAgID0gRkFMU0U7DQo+IA0KPiAgICAgICptU21tTXBTeW5jRGF0 YS0+QWxsQ3B1c0luU3luYyA9IEZBTFNFOw0KPiANCj4gKyAgICBtU21tTXBTeW5jRGF0YS0+QWxs QXBBcnJpdmVkV2l0aEV4Y2VwdGlvbiA9IEZBTFNFOw0KPiANCj4gDQo+IA0KPiAgICAgIGZvciAo Q3B1SW5kZXggPSAwOyBDcHVJbmRleCA8IGdTbW1DcHVQcml2YXRlLT5TbW1Db3JlRW50cnlDb250 ZXh0Lk51bWJlck9mQ3B1czsgQ3B1SW5kZXgrKykgew0KPiANCj4gICAgICAgIG1TbW1NcFN5bmNE YXRhLT5DcHVEYXRhW0NwdUluZGV4XS5CdXN5ID0NCj4gDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1 UGtnL1BpU21tQ3B1RHhlU21tL1N5bmNUaW1lci5jIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNt bS9TeW5jVGltZXIuYw0KPiBpbmRleCAwYzA3MGM1NzM2Li44NDQyNjNmODg5IDEwMDY0NA0KPiAt LS0gYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1N5bmNUaW1lci5jDQo+ICsrKyBiL1VlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vU3luY1RpbWVyLmMNCj4gQEAgLTgsNyArOCw3IEBAIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiANCj4gICNpbmNs dWRlICJQaVNtbUNwdUR4ZVNtbS5oIg0KPiANCj4gDQo+IA0KPiAtVUlOVDY0ICBtVGltZW91dFRp Y2tlciA9IDA7DQo+IA0KPiArVUlOVDY0ICAgbVRpbWVvdXRUaWNrZXIgPSAwOw0KPiANCj4gIC8v DQo+IA0KPiAgLy8gIE51bWJlciBvZiBjb3VudHMgaW4gYSByb2xsLW92ZXIgY3ljbGUgb2YgdGhl IHBlcmZvcm1hbmNlIGNvdW50ZXIuDQo+IA0KPiAgLy8NCj4gDQo+IGRpZmYgLS1naXQgYS9VZWZp Q3B1UGtnL0luY2x1ZGUvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliLmggYi9VZWZpQ3B1UGtn L0luY2x1ZGUvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliLmgNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZjI0NWMzYTFjOQ0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiL1VlZmlDcHVQa2cvSW5jbHVkZS9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIuaA0K PiBAQCAtMCwwICsxLDI3IEBADQo+ICsvKiogQGZpbGUNCj4gDQo+ICtTTU0gQ1BVIFJlbmRlenZv dXMgbGlicmFyeSBoZWFkZXIgZmlsZS4NCj4gDQo+ICsNCj4gDQo+ICtDb3B5cmlnaHQgKGMpIDIw MjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICtT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKw0KPiAN Cj4gKyoqLw0KPiANCj4gKw0KPiANCj4gKyNpZm5kZWYgX1NNTV9DUFVfUkVOREVaVk9VU19IXw0K PiANCj4gKyNkZWZpbmUgX1NNTV9DUFVfUkVOREVaVk9VU19IXw0KPiANCj4gKw0KPiANCj4gKy8q Kg0KPiANCj4gKyAgVGhpcyByb3V0aW5lIHdhaXQgZm9yIGFsbCBBUCBwcm9jZXNzb3JzIHRvIGFy cml2ZSBpbiBTTU0uDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW0gIEJsb2NraW5nTW9kZSAgQmxv Y2tpbmcgbW9kZSBvciBub24tYmxvY2tpbmcgbW9kZS4NCj4gDQo+ICsNCj4gDQo+ICsgIEByZXR2 YWwgVFJVRSAgIEFsbCBwcm9jZXNzb3JzIGNoZWNrZWQgaW4gdG8gU01NDQo+IA0KPiArICBAcmV0 dmFsIEZBTFNFICBTb21lIHByb2Nlc3NvciBub3QgY2hlY2tlZCBpbiB0byBTTU0NCj4gDQo+ICsN Cj4gDQo+ICsqKi8NCj4gDQo+ICtFRklfU1RBVFVTDQo+IA0KPiArRUZJQVBJDQo+IA0KPiArU21t V2FpdEZvckFsbFByb2Nlc3NvciAoDQo+IA0KPiArICBJTiAgQk9PTEVBTiBCbG9ja2luZ01vZGUN Cj4gDQo+ICsgICk7DQo+IA0KPiArDQo+IA0KPiArI2VuZGlmDQo+IA0KPiBkaWZmIC0tZ2l0IGEv VWVmaUNwdVBrZy9JbmNsdWRlL1Byb3RvY29sL1NtbUNwdVNlcnZpY2UuaCBiL1VlZmlDcHVQa2cv SW5jbHVkZS9Qcm90b2NvbC9TbW1DcHVTZXJ2aWNlLmgNCj4gaW5kZXggOTUyNzY3YWZjZS4uMGFj ZTUzNTZhOSAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9JbmNsdWRlL1Byb3RvY29sL1NtbUNw dVNlcnZpY2UuaA0KPiArKysgYi9VZWZpQ3B1UGtnL0luY2x1ZGUvUHJvdG9jb2wvU21tQ3B1U2Vy dmljZS5oDQo+IEBAIC0yMDAsNCArMjAwLDQ0IEBAIHN0cnVjdCBfRUZJX1NNTV9DUFVfU0VSVklD RV9QUk9UT0NPTCB7DQo+IA0KPiANCj4gIGV4dGVybiBFRklfR1VJRCAgZ0VmaVNtbUNwdVNlcnZp Y2VQcm90b2NvbEd1aWQ7DQo+IA0KPiANCj4gDQo+ICsvLw0KPiANCj4gKy8vICBFREtJSV9TTU1f Q1BVX1NFUlZJQ0VfUFJPVE9DT0wgZXh0ZW5kcyB0aGUgRUZJX1NNTV9DUFVfU0VSVklDRV9QUk9U T0NPTA0KPiANCj4gKy8vICB3aXRoIHJlbmRlenZvdXMgc2VydmljZSBzdXBwb3J0Lg0KPiANCj4g Ky8vDQo+IA0KPiArI2RlZmluZSBFREtJSV9TTU1fQ1BVX1NFUlZJQ0VfUFJPVE9DT0xfR1VJRCBc DQo+IA0KPiArICB7IFwNCj4gDQo+ICsgICAgMHhhYTAwZDUwYiwgMHg0OTExLCAweDQyOGYsIHsw eGI5LCAweDFhLCAweGE1LCAweDlkLCAweGRiLCAweDEzLCAweGUyLCAweDRjfSBcDQo+IA0KPiAr ICB9DQo+IA0KPiArDQo+IA0KPiArdHlwZWRlZiBzdHJ1Y3QgX0VES0lJX1NNTV9DUFVfU0VSVklD RV9QUk9UT0NPTCBFREtJSV9TTU1fQ1BVX1NFUlZJQ0VfUFJPVE9DT0w7DQo+IA0KPiArDQo+IA0K PiArLyoqDQo+IA0KPiArICBXYWl0IGZvciBhbGwgQVBzIHRvIGFycml2ZSBTTU0gbW9kZSBpbiBn aXZlbiB0aW1lb3V0IGNvbnN0cmFpbnQuDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW0gIFRoaXMg ICAgICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhlIFNNTV9DUFVfU0VSVklDRV9QUk9UT0NP TCBpbnN0YW5jZS4NCj4gDQo+ICsgIEBwYXJhbSAgQmxvY2tpbmdNb2RlICAgICAgICAgIEJsb2Nr IG9yIG5vbi1ibG9jayBtb2RlLg0KPiANCj4gKw0KPiANCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VT UyAgICAgICAgICAgQWxsIEFQcyBoYXZlIGFycml2ZWQgU01NIG1vZGUgZXhjZXB0IFNNSSBkaXNh YmxlZCBBUHMuDQo+IA0KPiArICBAcmV0dmFsIEVGSV9USU1FT1VUICAgICAgICAgICBUaGVyZSBh cmUgQVBzIG5vdCBpbiBTTU0gbW9kZSBpbiBnaXZlbiB0aW1lb3V0IGNvbnN0cmFpbnQuDQo+IA0K PiArDQo+IA0KPiArKiovDQo+IA0KPiArdHlwZWRlZg0KPiANCj4gK0VGSV9TVEFUVVMNCj4gDQo+ ICsoRUZJQVBJICpFREtJSV9XQUlUX0ZPUl9BTExfUFJPQ0VTU09SKSAoDQo+IA0KPiArICBJTiAg RURLSUlfU01NX0NQVV9TRVJWSUNFX1BST1RPQ09MICAqVGhpcywNCj4gDQo+ICsgIElOICBCT09M RUFOICAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NraW5nTW9kZQ0KPiANCj4gKyAgKTsNCj4g DQo+ICsNCj4gDQo+ICtzdHJ1Y3QgX0VES0lJX1NNTV9DUFVfU0VSVklDRV9QUk9UT0NPTCB7DQo+ IA0KPiArICBFRklfU01NX0dFVF9QUk9DRVNTT1JfSU5GTyAgICAgICAgICBHZXRQcm9jZXNzb3JJ bmZvOw0KPiANCj4gKyAgRUZJX1NNTV9TV0lUQ0hfQlNQICAgICAgICAgICAgICAgICAgU3dpdGNo QnNwOw0KPiANCj4gKyAgRUZJX1NNTV9BRERfUFJPQ0VTU09SICAgICAgICAgICAgICAgQWRkUHJv Y2Vzc29yOw0KPiANCj4gKyAgRUZJX1NNTV9SRU1PVkVfUFJPQ0VTU09SICAgICAgICAgICAgUmVt b3ZlUHJvY2Vzc29yOw0KPiANCj4gKyAgRUZJX1NNTV9XSE9BTUkgICAgICAgICAgICAgICAgICAg ICAgV2hvQW1JOw0KPiANCj4gKyAgRUZJX1NNTV9SRUdJU1RFUl9FWENFUFRJT05fSEFORExFUiAg UmVnaXN0ZXJFeGNlcHRpb25IYW5kbGVyOw0KPiANCj4gKyAgRURLSUlfV0FJVF9GT1JfQUxMX1BS T0NFU1NPUiAgICAgICAgV2FpdEZvckFsbFByb2Nlc3NvcjsNCj4gDQo+ICt9Ow0KPiANCj4gKw0K PiANCj4gK2V4dGVybiBFRklfR1VJRCBnRWRraWlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xHdWlkOw0K PiANCj4gKw0KPiANCj4gICNlbmRpZg0KPiANCj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGli cmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlenZvdXNMaWIuaW5mDQo+IGIvVWVm aUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5p bmYNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uYWZmNzdjNWEx OA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVSZW5k ZXp2b3VzTGliL1NtbUNwdVJlbmRlenZvdXNMaWIuaW5mDQo+IEBAIC0wLDAgKzEsMzIgQEANCj4g KyMjIEBmaWxlDQo+IA0KPiArIyBDb21wb25lbnQgZGVzY3JpcHRpb24gZmlsZSBmb3IgQ1BVIFNN TSBSZW5kZXp2b3VzIGNoZWNrIGxpYnJhcnkNCj4gDQo+ICsjIw0KPiANCj4gKw0KPiANCj4gK1tE ZWZpbmVzXQ0KPiANCj4gKyAgSU5GX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgID0gMHgwMDAx MDAwNQ0KPiANCj4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gU21tQ3B1UmVu ZGV6dm91c0xpYg0KPiANCj4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gMTUw OUJiMzYtOUJhNC00MzhCLUIxOTUtQWM1OTE0RGIxNEUyDQo+IA0KPiArICBNT0RVTEVfVFlQRSAg ICAgICAgICAgICAgICAgICAgPSBEWEVfU01NX0RSSVZFUg0KPiANCj4gKyAgVkVSU0lPTl9TVFJJ TkcgICAgICAgICAgICAgICAgID0gMS4wDQo+IA0KPiArICBMSUJSQVJZX0NMQVNTICAgICAgICAg ICAgICAgICAgPSBTbW1DcHVSZW5kZXp2b3VzTGliDQo+IA0KPiArICBDT05TVFJVQ1RPUiAgICAg ICAgICAgICAgICAgICAgPSBTbW1DcHVSZW5kZXp2b3VzTGliQ29uc3RydWN0b3INCj4gDQo+ICsN Cj4gDQo+ICtbU291cmNlc10NCj4gDQo+ICsgIFNtbUNwdVJlbmRlenZvdXNMaWIuYw0KPiANCj4g Kw0KPiANCj4gK1tQYWNrYWdlc10NCj4gDQo+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+IA0KPiAr ICBVZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjDQo+IA0KPiArDQo+IA0KPiArW0xpYnJhcnlDbGFz c2VzXQ0KPiANCj4gKyAgQmFzZUxpYg0KPiANCj4gKyAgRGVidWdMaWINCj4gDQo+ICsgIFBjZExp Yg0KPiANCj4gKyAgU21tU2VydmljZXNUYWJsZUxpYg0KPiANCj4gKw0KPiANCj4gK1tQY2RdDQo+ IA0KPiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbUFwU3luY1RpbWVvdXQg ICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+IA0KPiArDQo+IA0KPiArW1Byb3RvY29sc10N Cj4gDQo+ICsgIGdFZGtpaVNtbUNwdVNlcnZpY2VQcm90b2NvbEd1aWQNCj4gDQo+ICsNCj4gDQo+ IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgg Yi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgNCj4gaW5kZXggMjZk MDdjNWI1ZS4uYzZmMzFhY2U3NyAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oDQo+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v UGlTbW1DcHVEeGVTbW0uaA0KPiBAQCAtNDI4LDYgKzQyOCw3IEBAIHR5cGVkZWYgc3RydWN0IHsN Cj4gICAgdm9sYXRpbGUgU01NX0NQVV9TWU5DX01PREUgICAgRWZmZWN0aXZlU3luY01vZGU7DQo+ IA0KPiAgICB2b2xhdGlsZSBCT09MRUFOICAgICAgICAgICAgICBTd2l0Y2hCc3A7DQo+IA0KPiAg ICB2b2xhdGlsZSBCT09MRUFOICAgICAgICAgICAgICAqQ2FuZGlkYXRlQnNwOw0KPiANCj4gKyAg dm9sYXRpbGUgQk9PTEVBTiAgICAgICAgICAgICAgQWxsQXBBcnJpdmVkV2l0aEV4Y2VwdGlvbjsN Cj4gDQo+ICAgIEVGSV9BUF9QUk9DRURVUkUgICAgICAgICAgICAgIFN0YXJ0dXBQcm9jZWR1cmU7 DQo+IA0KPiAgICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAqU3RhcnR1cFByb2NBcmdz Ow0KPiANCj4gIH0gU01NX0RJU1BBVENIRVJfTVBfU1lOQ19EQVRBOw0KPiANCj4gQEAgLTE0ODgs NCArMTQ4OSwzMSBAQCBJc1Jlc3RyaWN0ZWRNZW1vcnlBY2Nlc3MgKA0KPiAgICBWT0lEDQo+IA0K PiAgICApOw0KPiANCj4gDQo+IA0KPiArLyoqDQo+IA0KPiArICBDaG9vc2UgYmxvY2tpbmcgb3Ig bm9uLWJsb2NraW5nIG1vZGUgdG8gV2FpdCBmb3IgYWxsIEFQcw0KPiANCj4gKw0KPiANCj4gKyAg QHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBTTU1fQ1BVX1NF UlZJQ0VfUFJPVE9DT0wgaW5zdGFuY2UuDQo+IA0KPiArICBAcGFyYW0gIEJsb2NraW5nTW9kZSAg ICAgICAgICBCbG9ja2luZyBvciBub24tYmxvY2tpbmcgbW9kZQ0KPiANCj4gKw0KPiANCj4gKyAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgQWxsIEFQcyBoYXZlIGFycml2ZWQgU01NIG1v ZGUgZXhjZXB0IFNNSSBkaXNhYmxlZCBBUHMuDQo+IA0KPiArICBAcmV0dmFsIEVGSV9USU1FT1VU ICAgICAgICAgICBUaGVyZSBhcmUgQVBzIG5vdCBpbiBTTU0gbW9kZSBpbiBnaXZlbiB0aW1lb3V0 IGNvbnN0cmFpbnQuDQo+IA0KPiArDQo+IA0KPiArKiovDQo+IA0KPiArRUZJX1NUQVRVUw0KPiAN Cj4gK0VGSUFQSQ0KPiANCj4gK1NtbVdhaXRGb3JBbGxQcm9jZXNzb3IgKA0KPiANCj4gKyAgSU4g IEVES0lJX1NNTV9DUFVfU0VSVklDRV9QUk9UT0NPTCAgKlRoaXMsDQo+IA0KPiArICBJTiAgQk9P TEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2tpbmdNb2RlDQo+IA0KPiArICApOw0K PiANCj4gKw0KPiANCj4gKy8qKg0KPiANCj4gKyAgQ2hvb3NlIGJsb2NraW5nIG9yIG5vbi1ibG9j a2luZyBtb2RlIHRvIHdhaXQgZm9yIGFsbCBBUHMuIFRydWUgZm9yIEJsb2NraW5nIGFuZCBmYWxz ZSBmb3Igbm90Lg0KPiANCj4gKyAgSW5zdXJlIHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zLCBu byBBUCB3aWxsIGV4ZWN1dGUgbm9ybWFsIG1vZGUgY29kZSBiZWZvcmUgZW50ZXJpbmcgU01NLCBl eGNlcHQgU01JIGRpc2FibGVkIEFQcy4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtWT0lE DQo+IA0KPiArU21tV2FpdEZvckFwQXJyaXZhbCAoDQo+IA0KPiArICBJTiAgQk9PTEVBTiAgQmxv Y2tpbmdNb2RlDQo+IA0KPiArICApOw0KPiANCj4gKw0KPiANCj4gICNlbmRpZg0KPiANCj4gZGlm ZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mIGIv VWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmYNCj4gaW5kZXggMGU4 ODA3MWM3MC4uMWFmNzI4MGQxOCAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmYNCj4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNt bS9QaVNtbUNwdUR4ZVNtbS5pbmYNCj4gQEAgLTEwNyw3ICsxMDcsOCBAQA0KPiAgICBnRWZpU21t UmVhZHlUb0xvY2tQcm90b2NvbEd1aWQgICAgICAgICAgICMjIE5PVElGWQ0KPiANCj4gICAgZ0Vm aVNtbUNwdVNlcnZpY2VQcm90b2NvbEd1aWQgICAgICAgICAgICAjIyBQUk9EVUNFUw0KPiANCj4g ICAgZ0Vka2lpU21tTWVtb3J5QXR0cmlidXRlUHJvdG9jb2xHdWlkICAgICAjIyBQUk9EVUNFUw0K PiANCj4gLSAgZ0VmaU1tTXBQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICMjIFBST0RV Q0VTDQo+IA0KPiArICBnRWZpTW1NcFByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgICMj IFBST0RVQ0VTDQo+IA0KPiArICBnRWRraWlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xHdWlkICAgICAg ICAgICMjIFBST0RVQ0VTDQo+IA0KPiANCj4gDQo+ICBbR3VpZHNdDQo+IA0KPiAgICBnRWZpQWNw aVZhcmlhYmxlR3VpZCAgICAgICAgICAgICAgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAj IyBIT0IgIyBpdCBpcyB1c2VkIGZvciBTMyBib290Lg0KPiANCj4gZGlmZiAtLWdpdCBhL1VlZmlD cHVQa2cvVWVmaUNwdVBrZy5kZWMgYi9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjDQo+IGluZGV4 IDdkZTY2ZmRlNjcuLmMxNzBlN2Q3NWQgMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvVWVmaUNw dVBrZy5kZWMNCj4gKysrIGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYw0KPiBAQCAtNzcsNyAr NzcsOCBAQA0KPiANCj4gDQo+ICBbUHJvdG9jb2xzXQ0KPiANCj4gICAgIyMgSW5jbHVkZS9Qcm90 b2NvbC9TbW1DcHVTZXJ2aWNlLmgNCj4gDQo+IC0gIGdFZmlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xH dWlkICA9IHsgMHgxZDIwMmNhYiwgMHhjOGFiLCAweDRkNWMsIHsgMHg5NCwgMHhmNywgMHgzYywg MHhmYywgMHhjMCwgMHhkMywgMHhkMywgMHgzNSB9fQ0KPiANCj4gKyAgZ0VmaVNtbUNwdVNlcnZp Y2VQcm90b2NvbEd1aWQgICA9IHsgMHgxZDIwMmNhYiwgMHhjOGFiLCAweDRkNWMsIHsgMHg5NCwg MHhmNywgMHgzYywgMHhmYywgMHhjMCwgMHhkMywgMHhkMywgMHgzNSB9fQ0KPiANCj4gKyAgZ0Vk a2lpU21tQ3B1U2VydmljZVByb3RvY29sR3VpZCA9IHsgMHhhYTAwZDUwYiwgMHg0OTExLCAweDQy OGYsIHsgMHhiOSwgMHgxYSwgMHhhNSwgMHg5ZCwgMHhkYiwgMHgxMywgMHhlMiwgMHg0YyB9fQ0K PiANCj4gDQo+IA0KPiAgICAjIyBJbmNsdWRlL1Byb3RvY29sL1NtTW9uaXRvckluaXQuaA0KPiAN Cj4gICAgZ0VmaVNtTW9uaXRvckluaXRQcm90b2NvbEd1aWQgID0geyAweDIyOGYzNDRkLCAweGIz ZGUsIDB4NDNiYiwgeyAweGE0LCAweGQ3LCAweGVhLCAweDIwLCAweGIsIDB4MWIsIDB4MTQsIDB4 ODIgfX0NCj4gDQo+IEBAIC0zMDQsNyArMzA1LDcgQEANCj4gICAgIyAgIDB4MDAgIC0gVHJhZGl0 aW9uYWwgQ1BVIHN5bmNocm9uaXphdGlvbiBtZXRob2QuPEJSPg0KPiANCj4gICAgIyAgIDB4MDEg IC0gUmVsYXhlZCBDUFUgc3luY2hyb25pemF0aW9uIG1ldGhvZC48QlI+DQo+IA0KPiAgICAjIEBQ cm9tcHQgU01NIENQVSBTeW5jaHJvbml6YXRpb24gTWV0aG9kLg0KPiANCj4gLSAgZ1VlZmlDcHVQ a2dUb2tlblNwYWNlR3VpZC5QY2RDcHVTbW1TeW5jTW9kZXwweDAwfFVJTlQ4fDB4NjAwMDAwMTQN Cj4gDQo+ICsgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U21tU3luY01vZGV8MHgw MXxVSU5UOHwweDYwMDAwMDE0DQo+IA0KPiANCj4gDQo+ICAgICMjIFNwZWNpZmllcyB0aGUgT24t ZGVtYW5kIGNsb2NrIG1vZHVsYXRpb24gZHV0eSBjeWNsZSB3aGVuIEFDUEkgZmVhdHVyZSBpcyBl bmFibGVkLg0KPiANCj4gICAgIyBAUHJvbXB0IFRoZSBlbmNvZGVkIHZhbHVlcyBmb3IgdGFyZ2V0 IGR1dHkgY3ljbGUgbW9kdWxhdGlvbi4NCj4gDQo+IC0tDQo+IDIuMjYuMi53aW5kb3dzLjENCj4g DQo+IA0KPiANCj4gDQo+IA0KDQo=