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 86A1DAC0BA7 for ; Fri, 8 Dec 2023 06:03:07 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=LY/g1tp3KHfRAwxNvzJ5TcMxe5Wdz66HxSSdEyzkWHk=; 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:msip_labels: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=1702015386; v=1; b=IqzPmJLt6MWi2hRezD7QIk9c3pSpsjdVOZRtFGS1AiGePWr8s9r2DZy8rr1EPUrT+rBmc+1w g9T+G0GAjYU1Xqqn5LVNGXfhFWoTs0YUWskTKh2i3EnSNsF/R4hU9OfsBtJfHOLxJbNTTykfK8H 0R+y8OarjYlnNb/dS0SyibDA= X-Received: by 127.0.0.2 with SMTP id wXiqYY7687511x9vtPIrvySS; Thu, 07 Dec 2023 22:03:06 -0800 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.42]) by mx.groups.io with SMTP id smtpd.web11.14362.1702015385468010678 for ; Thu, 07 Dec 2023 22:03:05 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JmJUDOM7RkGrCxKPUDhn73JuzDR5dy7fAMq7AsAf0z8TQiH57RTt38Ra5IeP5dbSJeEAW1XSzyqi34jln4jitrN65ifvMYjxpi55H+BBofN4aG6JnCe4fe6x+iRljgofhK3IXW0OF7EdMWPSw9iXsvjrPB8kROKQ9vmvMqwDCvWWseBnh7fMs+/PENjJaltRJRhnGfnpRDDtyPiiXWiCfvuv1190NaCvGB4cTsR7sXOq8vOYHDgfNKQvbWBBv9Uk1nMcIpLlJRP2qyC09qEbjHvz9g3BPGqDGoLsx247D7nDAa/vYheFOX1zDaqcKqVNLYpOHH/V8x9tBy6CZnQpLA== 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=ZlsIfpuZZBdnGZbPafKNaJsU8xp3pOnBOYQevEylP1U=; b=OTOJ2rNwMJ3iJwF1qAejtIPe8/YLT91Ap7TgtAPqoTTS7HBceb5NsqbsgZs3fMWBEidDASuJ1K6qomo5NOZoSNclHHKO4leEHKEd8GD2e4JvamJrnaMNM13oykdfy03H3KtJkoa4qVmPi2pydRsczjbjZg4De+onM+b2/40A4BiOcT4RwR6lLuDslpWkMgZuzfkd1Uk8uztm6me5Dox+1hpmMohzL1U0edZzI0D7c8emtD9oTmam/eqEQ9Of+hdmFmAZPHL+1sGqEKE75tpv1/p8yxbX+lqEKUZusd0/OaGsoU+rr/YPFAk6BeQUqw2gdiWraUOpGZGzFya2jxLDXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by PH8PR12MB6939.namprd12.prod.outlook.com (2603:10b6:510:1be::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec 2023 06:03:00 +0000 X-Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::91d9:e679:32a3:dd05]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::91d9:e679:32a3:dd05%5]) with mapi id 15.20.7068.028; Fri, 8 Dec 2023 06:03:00 +0000 From: "Chang, Abner via groups.io" To: Mike Maslenkin CC: "devel@edk2.groups.io" , Nickle Wang , Igor Kulchytskyy Subject: Re: [edk2-devel] [PATCH] RedfishPkg/RedfishDicovery: Remedy Redfish service discovery flow Thread-Topic: [PATCH] RedfishPkg/RedfishDicovery: Remedy Redfish service discovery flow Thread-Index: AQHaKRKXb+juHaRJB0SZXtfjMZJwgbCe40Hw Date: Fri, 8 Dec 2023 06:02:59 +0000 Message-ID: References: <20231206150513.1429-1-abner.chang@amd.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=1760cfc7-4f8c-4dc1-8563-ec0db22a4a6f;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-12-08T05:52:17Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|PH8PR12MB6939:EE_ x-ms-office365-filtering-correlation-id: 5d1a17bc-8aff-4e94-9b73-08dbf7b354eb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: 5mfHdcbGkcmFgzvuf3liZRAcIGW4yY6L2mEaPPmoDdFnwTjS6YY2JBmrq7D3nhBKBaIfgfCbVQSMuTR7gxyF2mKQnvhU4bChnjZ9v4tJ4ZS/innQ1HS5wKjhCrcvnVchDVN+79ec2rqc9Le7qWC1/TVtx47XtW14m4jxYtP7SRCCCJgp4CFsP310WtiLkP0p6s2vkb+ikm+iIZBoV3K1M6YrAIamj8cXX+JvufBFYA2HVrsKZjs15MrsAKw9OC1QIsTUcednKfQwYCWjMuIOvidT1Zx0bLgEXV/s6vp825ZsawwVrrBiPAR00ZowyWPQW3rIxASCMwP3lqstSQIj1a0Bqp/Np1miQ1PIefpCQ2FJnIfagxVjeQ+M323K3jgRPV5Z332v/3lTpuvi7sp2yQM7rnYkcsAa3AGUX6WMafCdfkSNC/17m6o5Prrcpb2oqNC+puCyRdulzD2FNkjLQt4gHgDujRg476L3KkLx8bjthw8mwBzMPUmf0LYqpH1nSxFcxTM67gTyEWgxc9R7Q8CbxXi34lk+C5DpmCvN7d5R4aJKV4Mu1fgzVR9s0VOQvpD9taRRcVKXXq2bGXcSx6ZZMivgc5Ku8pmQfDgzzVmrzbKj0US439tqsA4hCmBvxIGOTDV3z40E3VZ82S7+5Ux6WWYMAwuqFiPRfqxQN3A= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eDhLYU1FYldra2FIZ0w0ZWJyQ2J2RVY0VDFvczRsVWF4dS9meFU0ODBYY0NJ?= =?utf-8?B?cjVkemFaOFUzZHBQWlJOVmZTN01XRk4vUnY4b1RjTEpOMnBNcUljdlVJcFZN?= =?utf-8?B?SVRzVEUxUWUxd1h2cTQ4SnhzSWJIVmprdnI1S2QwZTd4R2w3c2RvemY1RGk3?= =?utf-8?B?aUJHaUZnY2VrVlgrcldZVGt5U0xDK00wSVJlWEw3YTBIZVdHZEJ1dHg0WEl0?= =?utf-8?B?bU5DaGFkNnNyVFNOYm5aMXJLT1BYT3NUL1JRdUZsN0pRK1dJSklwTHlxM2sz?= =?utf-8?B?bGVEdTlqcTdSV0J4L0JlZWhYc3dXTXRBTW9Ed0xuL2FuQW1JdHNkNVFWcDNO?= =?utf-8?B?M20vOGtQMEtsVWs2Qi9jdVBXdHZiSEZUVEZzUEZrcVQ0bzNoT2hBNWZGUk52?= =?utf-8?B?V002WW9lbE5Hd0FLWjF1emVKOEJkZldqd3dvZ1dmc3FzUXk0MWtpNklPdXhK?= =?utf-8?B?Z0tsZFBTWCs1UnI0MEdnL3pHbWs4c0pybTVCa3U3bjhNY1ZqblJIeVNUR3ds?= =?utf-8?B?SzdrTVAvT3dzVDNMTFAzSzJ1OW5rMzJYaDNHUDYvMFRHKzV1V1dLWHFXN3cv?= =?utf-8?B?bkkxYmlyZ3dDbWcvbmNpMmlPaHJjZUtBVHNTQVZvZ2hqRlYxRWxiUzRQeDJZ?= =?utf-8?B?dHd1aFdrOVpUYUtwanZaUEd1cmlDNzJycU1MR2ZyR1hMWkkyZzhmWWR0dGZD?= =?utf-8?B?NWpVM3c2RjNEZGxkS0N0eDdtNy9YTjBHeFo2ZUpERlFTWmJGRllIc21ScHBC?= =?utf-8?B?MHMxbWFNcVNYWjZmK01URzNjQjJya01LMVVac0JTdHFXTnA1ZHJVdFJXRmpO?= =?utf-8?B?clBiV1orSHVrYXovdEZjNGd3azNjYnduN1grdlhMVTNkNU5FK1ZFWGZRN0dB?= =?utf-8?B?N2tTZkNsM09tcWs2bXVoMzR5b1d2N2hHdmx1eDRvUWRRaGhwOTRUOWJiRG5K?= =?utf-8?B?eExTRmczZlZGL1BvNk5JUmYveUJWYW1Db21NTWQ0c09rYXVFdXYzbVhBbzFo?= =?utf-8?B?enErTzN4T1NpUGNIMjFuS3FrSE5SRllIUm11cnBHbmpDWDhEN0V1cERqRmRx?= =?utf-8?B?V1JVczJweEh2bTMva0l5dWJYNmUyTFR2V1dONytlY1QrajN4cmwzaHRFaWo5?= =?utf-8?B?Qk9OZC9pRzQ0YnNyb1BqUHl4MlgrRlc2WExGNjNwZWJsdGI0ZEs4TC9NcFZz?= =?utf-8?B?V1plakpHZ21NNU55dmg1UmZmYzRsSUoxWEVUUGRxdjcyTU9Pb1VlT2picmRT?= =?utf-8?B?Y0h1QTVUbEY5L3Q1YVo5aGd3dkJIOUZ6T0lDVnRicm9VTDBXaFNXN2Rtbis1?= =?utf-8?B?VVJoOHhIeFMzMVFKZDU5bUJtOVpMNllwWndXNllqclJzdjVPOWJLZmxFVzhy?= =?utf-8?B?QllXVVcvZW0rM3dERnNCak1BM1JuczBkcWF0cGFXQkNXTUhlVThrMVp1a3hC?= =?utf-8?B?N2FkRkFYdUxoZnU4OVFxSjVGQjlkQjZVUjR3cm1rK1hsSG5CTXZScytNNE1Z?= =?utf-8?B?VVBYTWh2S0FxQmhwVVNDSVl0ZkR6ZWN6MUc2WEdnVGV1R0JaQjNTZWlGRlFM?= =?utf-8?B?SUdEV0hMdThxNnNPMXJJRnptK2xLZWVkMlA1M01aM3ZkUmJvb1ZRVXE1WThp?= =?utf-8?B?aXZLSXM0Ly8rQXZwczNYd1F6bEp0TnVrbUpNUlViRU9jOExRRGNzN3FXaFQw?= =?utf-8?B?MFlqUHJvRkJRQVBiRHZaNUdoV05XQXpoNWpFM1JPaW0yS21kTFNucFBvbzMv?= =?utf-8?B?T2V3VjBRZEUrdkpySEowWVJqYWU0TWIzOWk2VjMrSWxQdmVkK0NiSzlFa2RK?= =?utf-8?B?ZUJ2U1hhMmxQWFRPRDdNdi9nNWhhMnBSOEJvZlFoYXlKelZVZ2RrNzdyeGFy?= =?utf-8?B?U3hRS2psdXZYQUV3NVRwY1daMm9pZ21aa0FYVGdvelVmKzF2Z3FTVlp0bHYx?= =?utf-8?B?REFXRXNGelRFOEx2Y042OUl2bjJUK09sVGJCN2o3L0ZJc1ZzQUxyd2N4a2Jh?= =?utf-8?B?ZUxKcmdwYTNoSUNjRGZ6Sjg3Q1pJbUx3MGoyQ2kra2E3Z2xNZndxbGpFQnBP?= =?utf-8?B?N1hpZEc1VXl3bWZNMDQ4elBnQU5PN295M3BHUzVTaTlNT3pYdzYzVGd1Z1Nl?= =?utf-8?Q?9Pvc=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d1a17bc-8aff-4e94-9b73-08dbf7b354eb X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2023 06:02:59.7903 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wpR/xOcDNkOofRijIvsRpAI9eRHdnz3LBPDwCv2t6WsVXOBwxCYJ8ljeA6ELpaa2qtpOWvCd5BNLVn1Eynh/Ng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6939 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,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: k0pFgtXx4oJ4zpSWwQE2mr67x7686176AA= 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=IqzPmJLt; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=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 W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCkhpIE1pa2UsIGJlbG93IGlzIG15 IGFuc3dlciwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNaWtlIE1h c2xlbmtpbiA8bWlrZS5tYXNsZW5raW5AZ21haWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgRGVj ZW1iZXIgNywgMjAyMyA5OjM3IFBNDQo+IFRvOiBDaGFuZywgQWJuZXIgPEFibmVyLkNoYW5nQGFt ZC5jb20+DQo+IENjOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTmlja2xlIFdhbmcgPG5pY2tsZXdA bnZpZGlhLmNvbT47IElnb3INCj4gS3VsY2h5dHNreXkgPGlnb3JrQGFtaS5jb20+DQo+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0hdIFJlZGZpc2hQa2cvUmVkZmlzaERpY292ZXJ5OiBSZW1lZHkgUmVkZmlz aCBzZXJ2aWNlDQo+IGRpc2NvdmVyeSBmbG93DQo+DQo+IENhdXRpb246IFRoaXMgbWVzc2FnZSBv cmlnaW5hdGVkIGZyb20gYW4gRXh0ZXJuYWwgU291cmNlLiBVc2UgcHJvcGVyIGNhdXRpb24NCj4g d2hlbiBvcGVuaW5nIGF0dGFjaG1lbnRzLCBjbGlja2luZyBsaW5rcywgb3IgcmVzcG9uZGluZy4N Cj4NCj4NCj4gSGkgQWJuZXIsDQo+DQo+IHBsZWFzZSBzZWUgbXkgY29tbWVudHMgYmVsb3cNCj4N Cj4gT24gV2VkLCBEZWMgNiwgMjAyMyBhdCA2OjA24oCvUE0gPGFibmVyLmNoYW5nQGFtZC5jb20+ IHdyb3RlOg0KPiA+DQo+ID4gRnJvbTogQWJuZXIgQ2hhbmcgPGFibmVyLmNoYW5nQGFtZC5jb20+ DQo+ID4NCj4gPiBSZW1lZHkgUmVkZmlzaCBzZXJ2aWNlIGRpc2NvdmVyeSBmbG93IGNoYW5nZXMg bWFkZQ0KPiA+IGluIGNvbW1pdCA4NzM2YjhmZC4NCj4gPg0KPiA+IFRoZSBhYm92ZSBmaXggY3Jl YXRlcyB0aGUgZGVwZW5kZW5jeSB3aXRoIFNNQklPUyA0MmggcmVjb3JkLA0KPiA+IHdoaWNoIGhh cyBhIHByb2JsZW0gYXMgU01CSU9TIDQyaCBtYXkgbm90IGJlIGNyZWF0ZWQgd2hlbg0KPiA+IFJl ZGZpc2hEaXNjb3ZlcnkuU3VwcG9ydGVkKCkgaXMgaW52b2tlZCBldmVuIGFsbCBvZiB0aGUNCj4g PiByZXF1aXJlZCBwcm90b2NvbHMgYXJlIHJlYWR5IG9uIHRoZSBDb250cm9sbGVySGFuZGxlLiBX ZSBjYW7igJl0DQo+ID4gZ3VhcmFudGVlIFNNQklPUyA0MiBzdHJ1Y3R1cmUgd2lsbCBiZSBhbHdh eXMgY3JlYXRlZCBiZWZvcmUNCj4gPiBDb25uZWN0Q29udHJvbGxlcigpLiBVU0IgTklDIG1heWJl IGRldGVjdGVkIGxhdGUgYW5kIGl0IG1lYW5zDQo+ID4gUGxhdGZvcm1Ib3N0SW50ZXJmYWNlQm1j VXNiTmljTGliIGNhbiBwb3B1bGF0ZSBTTUJJT1MgNDJoDQo+ID4gaW5mb3JtYXRpb24gbGF0ZSBh cyB3ZWxsLiBDYWxsaW5nIHRvDQo+ID4gUmVkZmlzaFNlcnZpY2VHZXROZXR3b3JrSW50ZXJmYWNl IHdpdGggdGhlIHByZXZpb3VzIGZpeCBtYXkNCj4gPiByZXN1bHQgaW4gbm8gbmV0d29yayBpbnRl cmZhY2UgZm9yIEJNQy1leHBvc2VkIE5JQyBhcyBTTUJJT1MNCj4gPiA0MmggaXMgbm90IHJlYWR5 IHlldC5UaGlzIGlzIHRoZSBmaXJzdCBpc3N1ZS4NCj4gPg0KPiA+IFNlY29uZCwgdG8gc2tpcCB0 aGUgbmV0d29yayBpbnRlcmZhY2Ugd2hlbg0KPiA+IE5ldHdvcmtJbnRlcmZhY2VHZXRTdWJuZXRJ bmZvKCkgcmV0dXJucyBhIGZhaWx1cmUgYWxzbyBoYXMNCj4gPiBwcm9ibGVtLCBhcyB0aGUgTklD IG1heSBiZSBjb25maWd1cmVkIHZpYSBSZXN0RXgtPkNvbmZpZ3VyZSgpLg0KPiA+IFRoaXMgaGFw cGVucyBhZnRlciB0aGUgSG9zdCBpbnRlcmZhY2UgaXMgZGlzY292ZXJlZCwgYXMgYXQgdGhpcw0K PiA+IG1vbWVudCB3ZSBoYXZlIHRoZSBzdWZmaWNpZW50IG5ldHdvcmsgaW5mb3JtYXRpb24gdG8g Y29uZmlndXJlDQo+ID4gQk1DLWV4cG9zZWQgTklDLg0KPiA+DQo+ID4gQmFzZSBvbiBSZWRmaXNo IHNwZWMgaW4gMzEuMS41LjIsIOKAnEVGSSBSZWRmaXNoIENsaWVudCBtYXkgcHJvdmlkZQ0KPiA+ IHNlbGVjdGlvbiBVSSBvZiBuZXR3b3JrIGludGVyZmFjZXMgZm9yIFJlZGZpc2ggc2VydmljZSBk aXNjb3ZlcnkuIiwNCj4gPiBUaGlzIG1lYW5zIGVkazIgUmVkZmlzaCBjbGllbnQgZ2V0cyBhbGwg bmV0d29yayBpbnRlcmZhY2VzDQo+ID4gdGhyb3VnaCBSZWRmaXNoU2VydmljZUdldE5ldHdvcmtJ bnRlcmZhY2UgYW5kIGNob29zZSB0aGUgZGVzaXJlZA0KPiA+IG5ldHdvcmsgaW50ZXJmYWNlIGF0 IGl0cyBkaXNjcmV0aW9uIGZvciBSZWRmaXNoIHNlcnZpY2UuDQo+ID4NCj4gPiBTbyB0aGUgZml4 IGhlcmUgaXM6DQo+ID4gMS4gSW4gQnVpbGROZXR3b3JrSW50ZXJmYWNlKCksIHdlIGRvbuKAmXQg c2tpcCBhbnkgbmV0d29yaw0KPiA+ICAgIGludGVyZmFjZS4gSW4gUmVkZmlzaFNlcnZpY2VHZXRO ZXR3b3JrSW50ZXJmYWNlLCB3ZSBkb27igJl0DQo+ID4gICAgc2tpcCBhbnkgbmV0d29yayBpbnRl cmZhY2UgZXZlbiB0aGUgc3VibmV0IGluZm9ybWF0aW9uIGlzIG5vdA0KPiA+ICAgIHJldHJpZXZl ZC4gV2Ugd2lsbCBzdGlsbCByZXR1cm4gYWxsIG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB0bw0KPiA+ ICAgIGNsaWVudC4NCj4gPiAyLiBJbiBSZWRmaXNoU2VydmljZUFjcXVpcmVTZXJ2aWNlIGZvcg0K PiA+ICAgIEVGSV9SRURGSVNIX1JJU0NPVkVSX0hPU1RfSU5URVJGQUNFIGNhc2UsIHdlIGRvbuKA mXQgc2tpcCBhbnkNCj4gPiAgICBuZXR3b3JrIGludGVyZmFjZSBldmVuIHRoZSBzdWJuZXQgaW5m b3JtYXRpb24gaXMgbm90DQo+ID4gICAgcmV0cmlldmVkLg0KPiA+DQo+ID4gMy4gQWRkZWQgc29t ZSBtb3JlIGRlYnVnIGluZm9ybWF0aW9uLg0KPiA+DQo+ID4gTm90ZTogVGhlIHN1Ym5ldCBpbmZv cm1hdGlvbiBpcyB1c2VkIGZvciB0aGUgc2NlbmFyaW8gdGhlIHN5c3RlbQ0KPiA+IGlzIG1hbmFn ZWQgYnkgYSBjZW50cmFsaXplZCBSZWRmaXNoIHNlcnZpY2UgKG5vdCBvbiBCTUMpLCBzYXlzDQo+ ID4gdGhlIG11bHRpcGxlIFJlZGZpc2ggY29tcHV0ZXIgc3lzdGVtIGluc3RhbmNlcy4gQXMgaXQg bWVudGlvbnMNCj4gPiBpbiAzMS4xLjUuMiwgUmVkZmlzaCBjbGllbnQgdGhleSBtYXkgaGF2ZSB0 byBrbm93IHRoZSBzdWJuZXQNCj4gPiBpbmZvcm1hdGlvbiBzbyB0aGV5IGNhbiBrbm93IHRoZSBu ZXR3b3JrIGRvbWFpbiB0aGUgTklDIGlzDQo+ID4gY29ubmVjdGVkLiBUaGVyZSBtYXkgaGF2ZSBt dWx0aXBsZSBzdWJuZXRzIGluIHRoZSBjb3Jwb3JhdGlvbg0KPiA+IG5ldHdvcmsgZW52aXJvbm1l bnQuIFNvIHRoZSBzdWJuZXQgaW5mb3JtYXRpb24gcHJvdmlkZXMgY2xpZW50DQo+ID4gYW4gaWRl YSB3aGVuIHRoZXkgY2hvb3NlIHRoZSBuZXR3b3JrIGludGVyZmFjZSwgc28gZG9lcyBWTEFOIElE Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQWJuZXIgQ2hhbmcgPGFibmVyLmNoYW5nQGFtZC5j b20+DQo+ID4gQ2M6IE5pY2tsZSBXYW5nIDxuaWNrbGV3QG52aWRpYS5jb20+DQo+ID4gQ2M6IEln b3IgS3VsY2h5dHNreXkgPGlnb3JrQGFtaS5jb20+DQo+ID4gQ2M6IE1pa2UgTWFzbGVua2luIDxt aWtlLm1hc2xlbmtpbkBnbWFpbC5jb20+DQo+ID4gLS0tDQo+ID4gIC4uLi9SZWRmaXNoRGlzY292 ZXJEeGUvUmVkZmlzaERpc2NvdmVyRHhlLmMgICB8IDEwNSArKysrKystLS0tLS0tLS0tLS0NCj4g PiAgMSBmaWxlIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygtKQ0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvUmVkZmlzaERpc2NvdmVyRHhlL1JlZGZpc2hE aXNjb3ZlckR4ZS5jDQo+IGIvUmVkZmlzaFBrZy9SZWRmaXNoRGlzY292ZXJEeGUvUmVkZmlzaERp c2NvdmVyRHhlLmMNCj4gPiBpbmRleCA4MzNhZTJiOTY5Zi4uMWNmY2JjZGM3OTQgMTAwNjQ0DQo+ ID4gLS0tIGEvUmVkZmlzaFBrZy9SZWRmaXNoRGlzY292ZXJEeGUvUmVkZmlzaERpc2NvdmVyRHhl LmMNCj4gPiArKysgYi9SZWRmaXNoUGtnL1JlZGZpc2hEaXNjb3ZlckR4ZS9SZWRmaXNoRGlzY292 ZXJEeGUuYw0KPiA+IEBAIC00ODcsNDMgKzQ4Nyw2IEBAIENoZWNrSXNJcFZlcnNpb242ICgNCj4g PiAgICByZXR1cm4gRkFMU0U7DQo+ID4gIH0NCj4gPg0KPiA+IC0vKioNCj4gPiAtICBUaGlzIGZ1 bmN0aW9uIHJldHVybnMgdGhlICBJUCB0eXBlIHN1cHBvcnRlZCBieSB0aGUgSG9zdCBJbnRlcmZh Y2UuDQo+ID4gLQ0KPiA+IC0gIEByZXR2YWwgMDBoIGlzIFVua25vd24NCj4gPiAtICAgICAgICAg IDAxaCBpcyBJcHY0DQo+ID4gLSAgICAgICAgICAwMmggaXMgSXB2Ng0KPiA+IC0NCj4gPiAtKiov DQo+ID4gLVNUQVRJQw0KPiA+IC1VSU5UOA0KPiA+IC1HZXRIaUlwUHJvdG9jb2xUeXBlICgNCj4g PiAtICBWT0lEDQo+ID4gLSAgKQ0KPiA+IC17DQo+ID4gLSAgRUZJX1NUQVRVUyAgICAgICAgICAg ICAgICAgICAgIFN0YXR1czsNCj4gPiAtICBSRURGSVNIX09WRVJfSVBfUFJPVE9DT0xfREFUQSAg KkRhdGE7DQo+ID4gLSAgUkVERklTSF9JTlRFUkZBQ0VfREFUQSAgICAgICAgICpEZXZpY2VEZXNj cmlwdG9yOw0KPiA+IC0NCj4gPiAtICBEYXRhICAgICAgICAgICAgID0gTlVMTDsNCj4gPiAtICBE ZXZpY2VEZXNjcmlwdG9yID0gTlVMTDsNCj4gPiAtICBpZiAobVNtYmlvcyA9PSBOVUxMKSB7DQo+ ID4gLSAgICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVNtYmlvc1Byb3RvY29s R3VpZCwgTlVMTCwgKFZPSUQNCj4gKiopJm1TbWJpb3MpOw0KPiA+IC0gICAgaWYgKEVGSV9FUlJP UiAoU3RhdHVzKSkgew0KPiA+IC0gICAgICByZXR1cm4NCj4gUkVERklTSF9IT1NUX0lOVEVSRkFD RV9IT1NUX0lQX0FERFJFU1NfRk9STUFUX1VOS05PV047DQo+ID4gLSAgICB9DQo+ID4gLSAgfQ0K PiA+IC0NCj4gPiAtICBTdGF0dXMgPSBSZWRmaXNoR2V0SG9zdEludGVyZmFjZVByb3RvY29sRGF0 YSAobVNtYmlvcywNCj4gJkRldmljZURlc2NyaXB0b3IsICZEYXRhKTsgLy8gU2VhcmNoIGZvciBT TUJJT1MgdHlwZSA0MmgNCj4gPiAtICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSAmJiAoRGF0YSAh PSBOVUxMKSAmJg0KPiA+IC0gICAgICAoRGF0YS0+SG9zdElwQXNzaWdubWVudFR5cGUgPT0gUmVk ZmlzaEhvc3RJcEFzc2lnbm1lbnRTdGF0aWMpKQ0KPiA+IC0gIHsNCj4gPiAtICAgIHJldHVybiBE YXRhLT5Ib3N0SXBBZGRyZXNzRm9ybWF0Ow0KPiA+IC0gIH0NCj4gPiAtDQo+ID4gLSAgcmV0dXJu DQo+IFJFREZJU0hfSE9TVF9JTlRFUkZBQ0VfSE9TVF9JUF9BRERSRVNTX0ZPUk1BVF9VTktOT1dO Ow0KPiA+IC19DQo+ID4gLQ0KPiA+ICAvKioNCj4gPiAgICBDaGVjayBpZiBOZXR3b3JrIFByb3Rv Y29sIFR5cGUgbWF0Y2hlcyB3aXRoIFNNQklPUyBUeXBlIDQyIElQIEFkZHJlc3MNCj4gVHlwZS4N Cj4gPg0KPiA+IEBAIC01ODMsNyArNTQ2LDEwIEBAIERpc2NvdmVyUmVkZmlzaEhvc3RJbnRlcmZh Y2UgKA0KPiA+ICAgIH0NCj4gPg0KPiA+ICAgIFN0YXR1cyA9IFJlZGZpc2hHZXRIb3N0SW50ZXJm YWNlUHJvdG9jb2xEYXRhIChtU21iaW9zLA0KPiAmRGV2aWNlRGVzY3JpcHRvciwgJkRhdGEpOyAv LyBTZWFyY2ggZm9yIFNNQklPUyB0eXBlIDQyaA0KPiA+IC0gIGlmICghRUZJX0VSUk9SIChTdGF0 dXMpICYmIChEYXRhICE9IE5VTEwpICYmIChEZXZpY2VEZXNjcmlwdG9yICE9IE5VTEwpKQ0KPiB7 DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fCAoRGF0YSA9PSBOVUxMKSB8fCAoRGV2 aWNlRGVzY3JpcHRvciA9PSBOVUxMKSkgew0KPiA+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwg IiVhOiBSZWRmaXNoR2V0SG9zdEludGVyZmFjZVByb3RvY29sRGF0YSBpcw0KPiBmYWlsZWQuXG4i LCBfX2Z1bmNfXykpOw0KPiA+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gPiArICB9IGVsc2Ugew0K PiA+ICAgICAgLy8gQ2hlY2sgSVAgVHlwZSBhbmQgc2tpcCBhbiB1bm5lY2Vzc2FyeSBuZXR3b3Jr IHByb3RvY29sIGlmIGRvZXMgbm90DQo+IG1hdGNoDQo+ID4gICAgICBpZiAoRmlsdGVyUHJvdG9j b2wgKEluc3RhbmNlLT5OZXR3b3JrSW50ZXJmYWNlLT5OZXR3b3JrUHJvdG9jb2xUeXBlLA0KPiBE YXRhLT5Ib3N0SXBBZGRyZXNzRm9ybWF0KSkgew0KPiA+ICAgICAgICByZXR1cm4gRUZJX1VOU1VQ UE9SVEVEOw0KPiA+IEBAIC03MzcsMTAgKzcwMyw3IEBAIERpc2NvdmVyUmVkZmlzaEhvc3RJbnRl cmZhY2UgKA0KPiA+ICAgICAgICAgICAgICAgICAgIElzSHR0cHMNCj4gPiAgICAgICAgICAgICAg ICAgICApOw0KPiA+ICAgICAgfQ0KPiA+IC0gIH0gZWxzZSB7DQo+ID4gLSAgICBERUJVRyAoKERF QlVHX0VSUk9SLCAiJWE6IFJlZGZpc2hHZXRIb3N0SW50ZXJmYWNlUHJvdG9jb2xEYXRhIGlzDQo+ IGZhaWxlZC5cbiIsIF9fZnVuY19fKSk7DQo+ID4gICAgfQ0KPiA+IC0NCj4gPiAgICByZXR1cm4g U3RhdHVzOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtODkxLDYgKzg1NCwxMiBAQCBBZGRBbmRTaWdu YWxOZXdSZWRmaXNoU2VydmljZSAoDQo+ID4gICAgICAgIERFQlVHICgoREVCVUdfTUFOQUdFQUJJ TElUWSwgIlJlZGZpc2ggc2VydmljZSBsb2NhdGlvbjogJXMuXG4iLA0KPiBEaXNjb3ZlcmVkSW5z dGFuY2UtPkluZm9ybWF0aW9uLkxvY2F0aW9uKSk7DQo+ID4gICAgICB9DQo+ID4NCj4gPiArICAg IGlmIChVc2VIdHRwcykgew0KPiA+ICsgICAgICBERUJVRyAoKERFQlVHX01BTkFHRUFCSUxJVFks ICJSZWRmaXNoIHNlcnZpY2UgcG9ydDogNDQzXG4iKSk7DQo+ID4gKyAgICB9IGVsc2Ugew0KPiA+ ICsgICAgICBERUJVRyAoKERFQlVHX01BTkFHRUFCSUxJVFksICJSZWRmaXNoIHNlcnZpY2UgcG9y dDogODBcbiIpKTsNCj4gPiArICAgIH0NCj4gPiArDQo+DQo+IERvIHdlIHJlYWxseSBuZWVkIHN1 Y2ggdHJhY2U/DQo+IEl0IGNvdWxkIGJlIGEgYml0IG1pc2xlYWRpbmcsIGJlY2F1c2UgUGNkUmVk ZmlzaFNlcnZpY2VQb3J0ICB3YXMNCj4gaW50cm9kdWNlZCBwcmV2aW91c2x5Lg0KPiBNYXkgYmUg d2UgY291bGQgbW92ZSB0aGlzIHRvIHRoZSBjYWxsZXIgZnVuY3Rpb24NCj4gRGlzY292ZXJSZWRm aXNoSG9zdEludGVyZmFjZSgpIHdoZXJlIElzSHR0cHMgd2FzIGluaXRpYWxpemVkPw0KWWVzLCBt b3ZlIHRoaXMgdG8gRGlzY292ZXJSZWRmaXNoSG9zdEludGVyZmFjZSBtYWtlcyBtb3JlIHNlbnNl IHRvIG1lIGFzIHdlbGwuDQoNCj4NCj4NCj4gPiAgICAgIGlmIChVdWlkICE9IE5VTEwpIHsNCj4g PiAgICAgICAgRGlzY292ZXJlZEluc3RhbmNlLT5JbmZvcm1hdGlvbi5VdWlkID0gKENIQVIxNiAq KUFsbG9jYXRlUG9vbA0KPiAoQXNjaWlTdHJTaXplICgoY29uc3QgQ0hBUjggKilVdWlkKSAqIHNp emVvZiAoQ0hBUjE2KSk7DQo+ID4gICAgICAgIEFzY2lpU3RyVG9Vbmljb2RlU3RyUyAoKGNvbnN0 IENIQVI4ICopVXVpZCwgRGlzY292ZXJlZEluc3RhbmNlLQ0KPiA+SW5mb3JtYXRpb24uVXVpZCwg QXNjaWlTdHJTaXplICgoY29uc3QgQ0hBUjggKilVdWlkKSAqIHNpemVvZiAoQ0hBUjE2KSk7DQo+ ID4gQEAgLTEwMTUsOSArOTg0LDExIEBAIEFkZEFuZFNpZ25hbE5ld1JlZGZpc2hTZXJ2aWNlICgN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgIChFRklfUkVTVF9FWF9DT05GSUdfREFUQSko VUlOVDggKilSZXN0RXhIdHRwQ29uZmlnRGF0YQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsNCj4gPiAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+IC0gICAgICAg IERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSRVNUIEVYIGNvbmZpZ3VyZWQuLlxuIiwgX19mdW5j X18pKTsNCj4gPiArICAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IFJFU1QgRVggaXMg bm90IGNvbmZpZ3VyZWQuLlxuIiwNCj4gX19mdW5jX18pKTsNCj4gPiAgICAgICAgICBEZWxldGVS ZXN0RXggPSBUUlVFOw0KPiA+ICAgICAgICAgIGdvdG8gRVhJVF9GUkVFX0FMTDsNCj4gPiArICAg ICAgfSBlbHNlIHsNCj4gPiArICAgICAgICBERUJVRyAoKERFQlVHX01BTkFHRUFCSUxJVFksICIl YTogUkVTVCBFWCBpcyBjb25maWd1cmVkLi5cbiIsDQo+IF9fZnVuY19fKSk7DQo+ID4gICAgICAg IH0NCj4gPg0KPiA+ICAgICAgICAvLw0KPiA+IEBAIC0xMjA3LDYgKzExNzgsOCBAQCBSZWRmaXNo U2VydmljZUdldE5ldHdvcmtJbnRlcmZhY2UgKA0KPiA+ICAgIEVGSV9SRURGSVNIX0RJU0NPVkVS X05FVFdPUktfSU5URVJGQUNFDQo+ICpUaGlzTmV0d29ya0ludGVyZmFjZTsNCj4gPiAgICBFRklf UkVERklTSF9ESVNDT1ZFUl9SRVNUX0VYX0lOU1RBTkNFX0lOVEVSTkFMICAgKlJlc3RFeEluc3Rh bmNlOw0KPiA+DQo+ID4gKyAgREVCVUcgKChERUJVR19NQU5BR0VBQklMSVRZLCAiJWE6IEVudHJ5 LlxuIiwgX19mdW5jX18pKTsNCj4gPiArDQo+ID4gICAgaWYgKChUaGlzID09IE5VTEwpIHx8IChO ZXR3b3JrSW50Zkluc3RhbmNlcyA9PSBOVUxMKSB8fA0KPiAoTnVtYmVyT2ZOZXR3b3JrSW50ZnMg PT0gTlVMTCkgfHwNCj4gPiAgICAgICAgKEltYWdlSGFuZGxlID09IE5VTEwpKQ0KPiA+ICAgIHsN Cj4gPiBAQCAtMTI0NCwyOSArMTIxNywyMyBAQCBSZWRmaXNoU2VydmljZUdldE5ldHdvcmtJbnRl cmZhY2UgKA0KPiA+ICAgIHdoaWxlIChUUlVFKSB7DQo+ID4gICAgICAvLyBJZiBHZXQgU3VibmV0 IEluZm8gZmFpbGVkIHRoZW4gc2tpcCB0aGlzIGludGVyZmFjZQ0KPiA+ICAgICAgU3RhdHVzID0g TmV0d29ya0ludGVyZmFjZUdldFN1Ym5ldEluZm8gKFRoaXNOZXR3b3JrSW50ZXJmYWNlSW50biwN Cj4gSW1hZ2VIYW5kbGUpOyAvLyBHZXQgc3VibmV0IGluZm8NCj4gPiAtICAgIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCj4gPiAtICAgICAgaWYgKElzTm9kZUF0RW5kICgmbUVmaVJlZGZpc2hE aXNjb3Zlck5ldHdvcmtJbnRlcmZhY2UsDQo+ICZUaGlzTmV0d29ya0ludGVyZmFjZUludG4tPkVu dHJ5KSkgew0KPiA+IC0gICAgICAgIGJyZWFrOw0KPiA+ICsgICAgaWYgKCFFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gPiArICAgICAgaWYgKCFUaGlzTmV0d29ya0ludGVyZmFjZS0+SXNJcHY2KSB7 DQo+ID4gKyAgICAgICAgSVA0X0NPUFlfQUREUkVTUyAoJlRoaXNOZXR3b3JrSW50ZXJmYWNlLT5T dWJuZXRJZC52NCwNCj4gJlRoaXNOZXR3b3JrSW50ZXJmYWNlSW50bi0+U3VibmV0QWRkci52NCk7 IC8vIElQdjQgc3VibmV0IGluZm9ybWF0aW9uLg0KPiA+ICsgICAgICB9IGVsc2Ugew0KPiA+ICsg ICAgICAgIElQNl9DT1BZX0FERFJFU1MgKCZUaGlzTmV0d29ya0ludGVyZmFjZS0+U3VibmV0SWQu djYsDQo+ICZUaGlzTmV0d29ya0ludGVyZmFjZUludG4tPlN1Ym5ldEFkZHIudjYpOyAvLyBJUHY2 IHN1Ym5ldCBpbmZvcm1hdGlvbiBpbg0KPiBJUHY2IGFkZHJlc3MgaW5mb3JtYXRpb24uDQo+ID4g ICAgICAgIH0NCj4gPg0KPiA+IC0gICAgICBUaGlzTmV0d29ya0ludGVyZmFjZUludG4gPQ0KPiAo RUZJX1JFREZJU0hfRElTQ09WRVJfTkVUV09SS19JTlRFUkZBQ0VfSU5URVJOQUwgKilHZXROZXh0 Tm9kZQ0KPiAoJm1FZmlSZWRmaXNoRGlzY292ZXJOZXR3b3JrSW50ZXJmYWNlLCAmVGhpc05ldHdv cmtJbnRlcmZhY2VJbnRuLT5FbnRyeSk7DQo+ID4gLSAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAg ICBUaGlzTmV0d29ya0ludGVyZmFjZS0+U3VibmV0UHJlZml4TGVuZ3RoID0gVGhpc05ldHdvcmtJ bnRlcmZhY2VJbnRuLQ0KPiA+U3VibmV0UHJlZml4TGVuZ3RoOw0KPiA+ICAgICAgfQ0KPiA+DQo+ ID4gKyAgICBDb3B5TWVtICgoVk9JRCAqKSZUaGlzTmV0d29ya0ludGVyZmFjZS0+TWFjQWRkcmVz cywNCj4gJlRoaXNOZXR3b3JrSW50ZXJmYWNlSW50bi0+TWFjQWRkcmVzcywgVGhpc05ldHdvcmtJ bnRlcmZhY2VJbnRuLQ0KPiA+SHdBZGRyZXNzU2l6ZSk7DQo+ID4gICAgICBUaGlzTmV0d29ya0lu dGVyZmFjZS0+SXNJcHY2ID0gRkFMU0U7DQo+ID4gICAgICBpZiAoQ2hlY2tJc0lwVmVyc2lvbjYg KFRoaXNOZXR3b3JrSW50ZXJmYWNlSW50bikpIHsNCj4gPiAgICAgICAgVGhpc05ldHdvcmtJbnRl cmZhY2UtPklzSXB2NiA9IFRSVUU7DQo+ID4gICAgICB9DQo+ID4NCj4gPiAtICAgIENvcHlNZW0g KChWT0lEICopJlRoaXNOZXR3b3JrSW50ZXJmYWNlLT5NYWNBZGRyZXNzLA0KPiAmVGhpc05ldHdv cmtJbnRlcmZhY2VJbnRuLT5NYWNBZGRyZXNzLCBUaGlzTmV0d29ya0ludGVyZmFjZUludG4tDQo+ ID5Id0FkZHJlc3NTaXplKTsNCj4gPiAtICAgIGlmICghVGhpc05ldHdvcmtJbnRlcmZhY2UtPklz SXB2Nikgew0KPiA+IC0gICAgICBJUDRfQ09QWV9BRERSRVNTICgmVGhpc05ldHdvcmtJbnRlcmZh Y2UtPlN1Ym5ldElkLnY0LA0KPiAmVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLT5TdWJuZXRBZGRy LnY0KTsgLy8gSVB2NCBzdWJuZXQgaW5mb3JtYXRpb24uDQo+ID4gLSAgICB9IGVsc2Ugew0KPiA+ IC0gICAgICBJUDZfQ09QWV9BRERSRVNTICgmVGhpc05ldHdvcmtJbnRlcmZhY2UtPlN1Ym5ldElk LnY2LA0KPiAmVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLT5TdWJuZXRBZGRyLnY2KTsgLy8gSVB2 NiBzdWJuZXQgaW5mb3JtYXRpb24gaW4NCj4gSVB2NiBhZGRyZXNzIGluZm9ybWF0aW9uLg0KPiA+ IC0gICAgfQ0KPiA+IC0NCj4gPiAtICAgIFRoaXNOZXR3b3JrSW50ZXJmYWNlLT5TdWJuZXRQcmVm aXhMZW5ndGggPSBUaGlzTmV0d29ya0ludGVyZmFjZUludG4tDQo+ID5TdWJuZXRQcmVmaXhMZW5n dGg7DQo+ID4gLSAgICBUaGlzTmV0d29ya0ludGVyZmFjZS0+VmxhbklkICAgICAgICAgICAgID0g VGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLT5WbGFuSWQ7DQo+ID4gKyAgICBUaGlzTmV0d29ya0lu dGVyZmFjZS0+VmxhbklkID0gVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLT5WbGFuSWQ7DQo+ID4g ICAgICBSZXN0RXhJbnN0YW5jZS0+TnVtYmVyT2ZOZXR3b3JrSW50ZXJmYWNlcysrOw0KPiA+ICAg ICAgaWYgKElzTm9kZUF0RW5kICgmbUVmaVJlZGZpc2hEaXNjb3Zlck5ldHdvcmtJbnRlcmZhY2Us DQo+ICZUaGlzTmV0d29ya0ludGVyZmFjZUludG4tPkVudHJ5KSkgew0KPiA+ICAgICAgICBicmVh azsNCj4NCj4gQXMgY2FuIGJlIG9ic2VydmVkIGZyb20gdGhpcyBodW5rIHRoZSBjaGVjayAiIGlm DQo+ICghVGhpc05ldHdvcmtJbnRlcmZhY2UtPklzSXB2NikgIiB3YXMgbW92ZWQgYmVmb3JlIHRo ZQ0KPiBUaGlzTmV0d29ya0ludGVyZmFjZS0+SXNJcHY2IGluaXRpYWxpemF0aW9uLiBBbHNvIEkg d291bGQgY29uc2lkZXINCj4gcmVtb3ZpbmcgSXNJcHY2IGF0IGFsbC4NCj4gVGhpc05ldHdvcmtJ bnRlcmZhY2UtPklzSXB2NiAgZGVwZW5kcyBvbiBDaGVja0lzSXBWZXJzaW9uNigpIHRoYXQgaXMN Cj4gKFRoaXNOZXR3b3JrSW50ZXJmYWNlLT5OZXR3b3JrUHJvdG9jb2xUeXBlID09IFByb3RvY29s VHlwZVRjcDYpLA0KPiBzbyB3aHkgZG8gd2UgbmVlZCBhbiBhZGRpdGlvbmFsIHZhcmlhYmxlIHdp dGggIHRoZSBzYW1lIG1lYW5pbmc/DQo+IFRoaXNOZXR3b3JrSW50ZXJmYWNlLT5OZXR3b3JrUHJv dG9jb2xUeXBlIGlzIGluaXRpYWxpemVkIGVhcmx5IG9uDQo+IFJlZGZpc2hEaXNjb3ZlckRyaXZl ckJpbmRpbmdTdGFydCgpLT5CdWlsZHVwTmV0d29ya0ludGVyZmFjZSgpIHBhdGgsDQo+IHNvIGl0 IGFsd2F5cyBoYXMgdGhlIGNvcnJlY3QgdmFsdWUuDQpUaGlzIGlzIGEgbWlzdGFrZSB3aGVuIEkg bW92ZSBhcm91bmQgdGhlIGNvZGUsIHdlIHNob3VsZCBzZXQgVGhpc05ldHdvcmtJbnRlcmZhY2Ut PklzSXB2NiBiZWZvcmUgY29weWluZyBzdWJuZXQgSUQuIFdlIGRvbuKAmXQgZW5jb3VudGVyIHRo ZSBwcm9ibGVtIGJlY2F1c2UgVGhpc05ldHdvcmtJbnRlcmZhY2UtPklzSXB2NiBpcyBpbml0aWF0 ZWQgYXMgMCB3aGVuIEFsbG9jYXRlWmVyb1Bvb2wgYW5kIHdlIGRvbuKAmXQgaGF2ZSB0aGUgUmVk ZmlzaCBzZXJ2aWNlIGluIElQdjYgY2FzZSwgSSBndWVzcy4NClJlZ2FyZGluZyB0aGUgdHdvIHZh cmlhYmxlcyB3aXRoIHNhbWUgbWVhbmluZywgb25lIGlzIGZvciB0aGUgb3V0cHV0IGRhdGEgYWNj b3JkaW5nIHRvIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiBzcGVjIChFRklfUkVERklTSF9ESVND T1ZFUl9ORVRXT1JLX0lOVEVSRkFDRSApIGFuZCBhbm90aGVyIG9uZSBpcyB0aGUgaW50ZXJuYWwg cmVjb3JkIG9mIG5ldHdvcmsgaW50ZXJmYWNlLg0KSSB3aWxsIHN1Ym1pdCB0aGUgbmV4dCB2ZXJz aW9uIGlmIHRoaXMgbWFrZXMgc2Vuc2UgdG8geW91Lg0KDQpUaGFua3MNCkFibmVyDQo+DQo+DQo+ ID4gQEAgLTEzNzgsOSArMTM0NSwxNiBAQCBSZWRmaXNoU2VydmljZUFjcXVpcmVTZXJ2aWNlICgN Cj4gPiAgICAgICAgLy8NCj4gPiAgICAgICAgU3RhdHVzMSA9IE5ldHdvcmtJbnRlcmZhY2VHZXRT dWJuZXRJbmZvDQo+IChUYXJnZXROZXR3b3JrSW50ZXJmYWNlSW50ZXJuYWwsIEltYWdlSGFuZGxl KTsNCj4gPiAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzMSkpIHsNCj4gPiAtICAgICAgICBE RUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IEdldCBzdWJuZXQgaW5mb3JtYXRpb24gZmFpbC5cbiIs DQo+IF9fZnVuY19fKSk7DQo+ID4gLSAgICAgICAgRnJlZVBvb2wgKEluc3RhbmNlKTsNCj4gPiAt ICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAgICAvLw0KPiA+ICsgICAgICAgIC8vIEdldCBz dWJuZXQgaW5mb3JtYXRpb24gY291bGQgYmUgZmFpbGVkIGZvcg0KPiBFRklfUkVERklTSF9ESVND T1ZFUl9IT1NUX0lOVEVSRkFDRSBjYXNlLg0KPiA+ICsgICAgICAgIC8vIFdlIHdpbGwgY29uZmln dXJlIG5ldHdvcmsgaW4gQWRkQW5kU2lnbmFsTmV3UmVkZmlzaFNlcnZpY2UuIFNvDQo+IGRvbid0 IHNraXAgdGhpcw0KPiA+ICsgICAgICAgIC8vIHRhcmdldCBuZXR3b3JrIGludGVyZmFjZS4NCj4g PiArICAgICAgICAvLw0KPiA+ICsgICAgICAgIGlmICgoRmxhZ3MgJiBFRklfUkVERklTSF9ESVND T1ZFUl9IT1NUX0lOVEVSRkFDRSkgPT0gMCkgew0KPiA+ICsgICAgICAgICAgREVCVUcgKChERUJV R19FUlJPUiwgIiVhOiBHZXQgc3VibmV0IGluZm9ybWF0aW9uIGZhaWwuXG4iLA0KPiBfX2Z1bmNf XykpOw0KPiA+ICsgICAgICAgICAgRnJlZVBvb2wgKEluc3RhbmNlKTsNCj4gPiArICAgICAgICAg IGNvbnRpbnVlOw0KPiA+ICsgICAgICAgIH0NCj4gPiAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAg IE5ld0luc3RhbmNlID0gVFJVRTsNCj4gPiBAQCAtMTQ0OCw2ICsxNDIyLDcgQEAgUmVkZmlzaFNl cnZpY2VBYm9ydEFjcXVpcmUgKA0KPiA+ICAgIElOIEVGSV9SRURGSVNIX0RJU0NPVkVSX05FVFdP UktfSU5URVJGQUNFDQo+ICpUYXJnZXROZXR3b3JrSW50ZXJmYWNlIE9QVElPTkFMDQo+ID4gICAg KQ0KPiA+ICB7DQo+ID4gKyAgREVCVUcgKChERUJVR19NQU5BR0VBQklMSVRZLCAiJWE6IEVudHJ5 LlxuIiwgX19mdW5jX18pKTsNCj4gPiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gYWJv cnQgUmVkZmlzaCBzZXJ2aWNlIGRpc2NvdmVyeSB0aHJvdWdoIFNTRFANCj4gPiAgICAvLyBvbiB0 aGUgbmV0d29yayBpbnRlcmZhY2UuIFNTRFAgaXMgb3B0aW9uYWxseSBzdXBwb3RlZCBieQ0KPiBF RklfUkVERklTSF9ESVNDT1ZFUl9QUk9UT0NPTCwNCj4gPiAgICAvLyB3ZSBkb250IGhhdmUgaW1w bGVtZW50YXRpb24gZm9yIFNTRFAgbm93Lg0KPiA+IEBAIC0xNDc3LDYgKzE0NTIsOCBAQCBSZWRm aXNoU2VydmljZVJlbGVhc2VTZXJ2aWNlICgNCj4gPiAgICBFRklfUkVERklTSF9ESVNDT1ZFUkVE X0lOU1RBTkNFICAgICAgICpUaGlzUmVkZmlzaEluc3RhbmNlOw0KPiA+ICAgIEVGSV9SRURGSVNI X0RJU0NPVkVSRURfSU5URVJOQUxfTElTVCAgKkRpc2NvdmVyZWRSZWRmaXNoSW5zdGFuY2U7DQo+ ID4NCj4gPiArICBERUJVRyAoKERFQlVHX01BTkFHRUFCSUxJVFksICIlYTogRW50cnkuXG4iLCBf X2Z1bmNfXykpOw0KPiA+ICsNCj4gPiAgICBpZiAoSXNMaXN0RW1wdHkgKCZtUmVkZmlzaEluc3Rh bmNlTGlzdCkpIHsNCj4gPiAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpObyBhbnkgZGlz Y292ZXJlZCBSZWRmaXNoIHNlcnZpY2UuXG4iLA0KPiBfX2Z1bmNfXykpOw0KPiA+ICAgICAgcmV0 dXJuIEVGSV9OT1RfRk9VTkQ7DQo+ID4gQEAgLTE3MjMsMjIgKzE3MDAsMTMgQEAgQnVpbGR1cE5l dHdvcmtJbnRlcmZhY2UgKA0KPiA+ICAgIEVGSV9SRURGSVNIX0RJU0NPVkVSX1JFU1RfRVhfSU5T VEFOQ0VfSU5URVJOQUwgICAqUmVzdEV4SW5zdGFuY2U7DQo+ID4gICAgRUZJX1RQTCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9sZFRwbDsNCj4gPiAgICBCT09MRUFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3TmV0d29ya0ludGVy ZmFjZUluc3RhbGxlZDsNCj4gPiAtICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSXBUeXBlOw0KPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0Q291bnQ7DQo+ID4NCj4gPiAgICBMaXN0Q291bnQg ICAgICAgICAgICAgICAgICAgID0gKHNpemVvZiAobVJlcXVpcmVkUHJvdG9jb2wpIC8gc2l6ZW9m DQo+IChSRURGSVNIX0RJU0NPVkVSX1JFUVVJUkVEX1BST1RPQ09MKSk7DQo+ID4gICAgTmV3TmV0 d29ya0ludGVyZmFjZUluc3RhbGxlZCA9IEZBTFNFOw0KPiA+ICAgIEluZGV4ICAgICAgICAgICAg ICAgICAgICAgICAgPSAwOw0KPiA+DQo+ID4gLSAgLy8gR2V0IElQIFR5cGUgdG8gZmlsdGVyIG91 dCB1bm5lY2Vzc2FyeSBuZXR3b3JrIHByb3RvY29sIGlmIHBvc3NpYmxlDQo+ID4gLSAgSXBUeXBl ID0gR2V0SGlJcFByb3RvY29sVHlwZSAoKTsNCj4gPiAtDQo+ID4gICAgZm9yIChJbmRleCA9IDA7 IEluZGV4IDwgTGlzdENvdW50OyBJbmRleCsrKSB7DQo+ID4gLSAgICAvLyBDaGVjayBJUCBUeXBl IGFuZCBza2lwIGFuIHVubmVjZXNzYXJ5IG5ldHdvcmsgcHJvdG9jb2wgaWYgZG9lcyBub3QNCj4g bWF0Y2gNCj4gPiAtICAgIGlmIChGaWx0ZXJQcm90b2NvbCAobVJlcXVpcmVkUHJvdG9jb2xbSW5k ZXhdLlByb3RvY29sVHlwZSwgSXBUeXBlKSkgew0KPiA+IC0gICAgICBjb250aW51ZTsNCj4gPiAt ICAgIH0NCj4gPiAtDQo+ID4gICAgICBTdGF0dXMgPSBnQlMtPk9wZW5Qcm90b2NvbCAoDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgLy8gQWxyZWFkeSBpbiBsaXN0Pw0KPiA+ICAgICAgICAgICAg ICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUsDQo+ID4gQEAgLTIxNjQsNiArMjEzMiw3IEBAIFJl ZGZpc2hEaXNjb3ZlckRyaXZlckJpbmRpbmdTdGFydCAoDQo+ID4gICAgSU4gRUZJX0RFVklDRV9Q QVRIX1BST1RPQ09MICAgICAqUmVtYWluaW5nRGV2aWNlUGF0aCBPUFRJT05BTA0KPiA+ICAgICkN Cj4gPiAgew0KPiA+ICsgIERFQlVHICgoREVCVUdfTUFOQUdFQUJJTElUWSwgIiVhOkVudHJ5Llxu IiwgX19mdW5jX18pKTsNCj4gPiAgICByZXR1cm4gQnVpbGR1cE5ldHdvcmtJbnRlcmZhY2UgKFRo aXMsIENvbnRyb2xsZXJIYW5kbGUpOw0KPiA+ICB9DQo+ID4NCj4gPiAtLQ0KPiA+IDIuMzcuMS53 aW5kb3dzLjENCj4gPg0KPg0KPiBJJ3ZlIHRlc3RlZCB0aGlzIHBhdGNoIGFuZCBpdCB3b3JrcyBm b3IgbWUuDQo+DQo+IFJlZ2FyZHMsDQo+IE1pa2UuDQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09 LQpHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMg Z3JvdXAuClZpZXcvUmVwbHkgT25saW5lICgjMTEyMjEyKTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5p by9nL2RldmVsL21lc3NhZ2UvMTEyMjEyCk11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMu aW8vbXQvMTAzMDE0MjMwLzc2ODYxNzYKR3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3Jv dXBzLmlvClVuc3Vic2NyaWJlOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWIg W3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09LT0tPS09LT0tPS09LT0tPS09LQoKDQo=