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 C6C24780091 for ; Thu, 7 Dec 2023 13:24:37 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=taBpnFbr+38643LLzRVDvDPDUX0NJYX2NLPyqyUD+S8=; 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=1701955476; v=1; b=h6E4UheMP0NWiGIuGpsL4SZ8aj43Gcbc/mV3j5AQRugcyFL3/FviCRcN5vFApcwLDsn/BXPv a9DHfELxyy3EU8sHm+gdt3CDVfYKQbMNYmuK1Afqc0ml6EQTHwRatcBLyV2JGToQLwfkryj4lzZ xnIpr+jwxurnkDQ7OEoi7Q6M= X-Received: by 127.0.0.2 with SMTP id iRPAYY7687511xLxiGpLAazn; Thu, 07 Dec 2023 05:24:36 -0800 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.44]) by mx.groups.io with SMTP id smtpd.web11.83460.1701955475568223839 for ; Thu, 07 Dec 2023 05:24:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MvCjsWfDNmjkR+FOjORl/q1T/GqDN28m7ahCm4EW+0uPkAnQPsHU8vkIISJlfZLRS16qMag7ArpnfqIkDfJGXxZtc+23+WRDxh0aq6n7tK374ukGZGEKpMOi0btPhvui6M9mR1KPIorIUPzfBPQ1kIyKGxhcBLDT7PF2bkN2jHRLrWsBP0n4dHs5IcuW2mX9INzew0U8ziYkR9pOVqDZhPJWHWNqFbYSHYca9ukNYly39yB5MvR/HjmaCpaEvVEyzFxAZOFhU0+0b4jdY0Y7eRwzzyFz65/v2WyIl564vraWdQGqFCGy4MO7B1WQr4RtMvmEucHcOo33QXJ0QvD+NQ== 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=ac0JNcfddZ+qzmh6YS7TeR2ORm8+RuVF/BM8E/BF0ds=; b=R3bmt+fxcd5phbqi3UmyZ1juNRV48+NFOvK9dwearI7dkP2rvvShQOf4rBsArZqJa9X1oVC077tkNsQQDL/tsHr5mH8PcC3mcPlMy/IpA2EG2BznFrnpHXNvoTatUdwyA6F2o+lu589m3GvZatk1ynLsP+ctBF4UY1G12WHOSfeHeKbonDu9YQqUJqbnCIVJg+lD/pMFBsN3Tt6nAZ+/Vxuc6tIKLVnFsRJtwQwkw1BzaA0wl+0238OC5jTPbkLNWW/xeFaLrE3VF8WXJy8q0JesuGtsyM4h5pgHXpXyB7rUSnn02YXVFZBEdeoeUuh7+oeCFN49P6blSiLOrNEYOg== 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 SN7PR12MB7249.namprd12.prod.outlook.com (2603:10b6:806:2a9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Thu, 7 Dec 2023 13:24:32 +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.027; Thu, 7 Dec 2023 13:24:32 +0000 From: "Chang, Abner via groups.io" To: Igor Kulchytskyy , "devel@edk2.groups.io" CC: Nickle Wang , Mike Maslenkin Subject: Re: [edk2-devel] [PATCH] RedfishPkg/RedfishDicovery: Remedy Redfish service discovery flow Thread-Topic: [EXTERNAL] [PATCH] RedfishPkg/RedfishDicovery: Remedy Redfish service discovery flow Thread-Index: AQHaKFXBTEghezXChkC/OapiKPP31bCdz6twgAAA98A= Date: Thu, 7 Dec 2023 13:24:32 +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=9cbef746-d34a-4a88-8d0b-487cca31411f;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-07T13:24:05Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|SN7PR12MB7249:EE_ x-ms-office365-filtering-correlation-id: 63a81b89-5ec2-4447-a698-08dbf727d950 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: IABvZi2DixWKR9EaHzaJEoQL8aKa/r8+S5QaKhPckGwjRWADxi3DnHSfMbASUpfANimFxCrNonq7rCZSahZa49By/cN6u1nTqP/on6d2n7UHfQf/M/3bWthfRZD1CRlq4IThBiSODsVNm19RWvCryhBaGPgGyx73pkK0KwPEdSK8xxOQ583r62g0Sf2rVj6toFuLKMPItVCHzT0ZYjQx8smbKc05OYXZK0xbzJTwWsCO90wT9xjAn84N4A27E35VMynLsB/xNQRYacBOOXrKm4D7fL8auWQfnFwH4egiyRJVdoMelA70dShjPWzN5JEexZ2WzCH6+XyyS2iTNw8aDN9XLWPB4UXtRZT8PBZSUjHreJa5z+52Alv6fn9r7ddi66bSTfvuSq2EVR2Ev9x49OvVcgBYdXF1Fn0PKY/x2zOEY09viX9is9+wVVzgDTAHLlLWj/ZpBKagAC25yKtWCbios0SCS1/rfr8M2LpASW3CokgmDMNrVo9vKTY3madqNAIb4hvXMf3si1AupmS5ZKquBsupC0jqYmpWI/u7Yh0U391/LbTP/9ZaSeuaZ4381dCMyriZURQ2rqSla8yLXgnrHEhKGiVC1CGCZttQ7YaBFPQIW7F3exLRUDcxYmPeigN8zJpe0I3fmzwguTDgG5jEaaca8uPwaASdszSSWNQ= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZUlrbHplUUlSa3NHSzBtdm1EU2NXYjg0RnNXbnZBekpYdlJLTU1MZnQrcDhU?= =?utf-8?B?dk53T1M5RU40WG51RGwxRUo5UExJVUdlaWU2MTc1cFJQcGdzOWJHUVBaczRS?= =?utf-8?B?V1Q1Q3FWVnVzMENJNkRmU2Zrb1ZyRGxqQ0pUMkhZbTRyTVRmTjhicWtVRTFT?= =?utf-8?B?dkxaQk02RXhjZ1cyYk1iWDIvSHpib1hsOTJIWlEwVm1hanAyU2RSb2FWUmpk?= =?utf-8?B?MVBKOWloak9uVEcvQ0l4Q0FUSmRhNXNSU3hvQnJ2dE83dG5HU0dtOWtuTW1t?= =?utf-8?B?T1h3bDJOendHcUFwWnU4VTVYNDN2eUpobWRqS2JrNmtXWlpxcWNqMUVLcmJ1?= =?utf-8?B?L0RqYURLbUQ4TkxybmcrSXJ2ZXQ3WjhMbEV6RlpMTDlTNC9DNHYvUXZMWllt?= =?utf-8?B?RGxsSUMzZDQyVmU2cGZlbWZZK1luZ3p6dlV4R0cxblZnVUVib25veGNsYUlY?= =?utf-8?B?dEFub21uYVpWT3dVck84QnNxYjBMMGs4K1dDUEIyRktDMS9UNFRLSlA3UGdL?= =?utf-8?B?ZGJMSXhFZzhZV2QrOUNVb2ZyWlZTaUY5V2FzcnRFMkpVV05YMXR6amplNlZj?= =?utf-8?B?UWdsYm82aWdQWUR6bEo0WEdNY01sZEIzWm0zdXdJbUhzUmZkYUc1VXpiUi9U?= =?utf-8?B?dDV5Z3VWa0E0YzM3aTNSSXNQUnQwbXpjWTVrQnRmZDFtWktxcElPdmduZE54?= =?utf-8?B?dG5NcXNoakozejI0ODZJWUh5TnF6ZnJ5anRDa1VXdnhGZzlZclhmUGJvMlNX?= =?utf-8?B?eTArVDYreHR3NzZkbHVqMmxaR0dmSVZCRHpLYytLR3N3UjFOeE0yRmo0ck5F?= =?utf-8?B?TUQ3Nk1CY3FpUWQwaUNPczE2a1hEbzdQQlo0WFlRcnQreUErdkV5ZHpnSW1o?= =?utf-8?B?c0NEVXQ1a3lyRVplK2hUVjJzSzY0VG1yS1h1aEUxbElkZllWS0NYenVGN3BT?= =?utf-8?B?R0JVNUNTaFU5aGlqWndGb1BSdUF2U0lUaUx4WmN4MHBWOERHQ3RuQlQyUnhw?= =?utf-8?B?Ukxtc2lUVjJtYnViNGV3N01BZG8vRy84aUVmL0lnQUFEZnhoYXoyR1JnMSs1?= =?utf-8?B?Mm5tL1p2a2J0L1B0a3FjZCthcEd5MC9BdjlNY04zOWl3NGJBNHpnQnUzMWpJ?= =?utf-8?B?UkFqVjJNaHVFUjBlM3duQUJqdVNSbTFrNE5mSUVZWXplNHBQeTdSelFYQ1dC?= =?utf-8?B?RFg2dUFmRE5NRGpqMGM3eXRiQVlvakV1eFpCRFplckpVcEwyNmMybDNtd1hD?= =?utf-8?B?Ymk0TzZRT1dXenNTdFhUeUlNZ2M0dm1mejBGUWNiU0JvZnVsVlZyK0F1SDRz?= =?utf-8?B?c2Iyc25HRFZZN2VQQ0paaURqUzEyb3VpQXdpOVFoNFNuY3k0WEtGeVJ3MkF3?= =?utf-8?B?dnNFYnJCdVN0bWthY3FSd0FRSXY5VUxTVk45ZjdPbmZGWXNhMWQrTFk1UXBK?= =?utf-8?B?NnlPaTc4YXVYYlJNQUF4THI4N1NsMExvVDBZNzBvUjd6Snl2YktLenMrSDN6?= =?utf-8?B?VHNNVmpmazEyNUd3ZXQySE1jTWRia1Zvd0lOendDNEh5NFU2RXVrU1pZMld3?= =?utf-8?B?cjNwa2pqRC9xZkM5YStrL3FTTjA0OUVNOUtIVUpnZ0x3OU8wMlpIUFl0SkxQ?= =?utf-8?B?bGIvUFFmMHBMd3ZMVmFHSkMxNm9xRTV6clM3aTVDWTV6N1hDZ2JkVjJ3U3ZE?= =?utf-8?B?V3N1U29Ga1l4OUZsbTRxdkdOTHYzbVErUWtrUjVNaVZQazRreURBVXJCYUI1?= =?utf-8?B?R1RML0oxaVJNY0Y4VDgyeHZNTE02VzdxTkNheGVoYjEvOVV5dFljVy9PaXBK?= =?utf-8?B?V0tFTXNObWx3WnZxN2FHbkRHQlZQRytwNmlhRHZjdmRXNmRTaVhmTVpmM1Ft?= =?utf-8?B?RGdaL3psN1lNd1MxZTE4SVV0cmVqbjRJWU1WalpKb1IzT3BqVFNpcldlUE5j?= =?utf-8?B?M05jbmVRMGlDVnFidEtZb1lRSE1OK0tpZDEraXl4dldyUzQvRkNRdTdBUHBU?= =?utf-8?B?Ymtvd05NRGExV2s1dkdHcXlVaGZZVkVqZWo1TE1XMSs4SWhIMXF1RUxSOW1C?= =?utf-8?B?c25MR0JkSUxkNVBWK25pZ3grcG1iY0IrZ090Yk40dlZ2MktTcU52SVo4Q212?= =?utf-8?Q?M81gfEMhQYGNKwdPDJh0eQKDu?= 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: 63a81b89-5ec2-4447-a698-08dbf727d950 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Dec 2023 13:24:32.4492 (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: mG+LBjYaHN1RjyPT1D1e7hbP/K59qo9v0sjhC6wV6jl3AM3utsR6ubpvmKxcdeaaTE4B3V7r2MkoWdHR11aocQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7249 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: FazJcRy9Wb6yDmfLZm1WdP0Fx7686176AA= 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=h6E4UheM; 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 W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCkhpIElnb3IsIHRoYW5rcyBmb3Ig dGVzdGluZyB0aGlzIGF0IHlvdXIgZW5kLg0KDQpBYm5lcg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IElnb3IgS3VsY2h5dHNreXkgPGlnb3JrQGFtaS5jb20+DQo+IFNl bnQ6IFRodXJzZGF5LCBEZWNlbWJlciA3LCAyMDIzIDk6MjMgUE0NCj4gVG86IENoYW5nLCBBYm5l ciA8QWJuZXIuQ2hhbmdAYW1kLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBOaWNr bGUgV2FuZyA8bmlja2xld0BudmlkaWEuY29tPjsgTWlrZSBNYXNsZW5raW4NCj4gPG1pa2UubWFz bGVua2luQGdtYWlsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtFWFRFUk5BTF0gW1BBVENIXSBSZWRm aXNoUGtnL1JlZGZpc2hEaWNvdmVyeTogUmVtZWR5DQo+IFJlZGZpc2ggc2VydmljZSBkaXNjb3Zl cnkgZmxvdw0KPg0KPiBDYXV0aW9uOiBUaGlzIG1lc3NhZ2Ugb3JpZ2luYXRlZCBmcm9tIGFuIEV4 dGVybmFsIFNvdXJjZS4gVXNlIHByb3BlciBjYXV0aW9uDQo+IHdoZW4gb3BlbmluZyBhdHRhY2ht ZW50cywgY2xpY2tpbmcgbGlua3MsIG9yIHJlc3BvbmRpbmcuDQo+DQo+DQo+IFJldmlld2VkLWJ5 OiBJZ29yIEt1bGNoeXRza3l5IDxpZ29ya0BhbWkuY29tPg0KPiBSZWdhcmRzLA0KPiBJZ29yDQo+ DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGFibmVyLmNoYW5nQGFtZC5j b20gPGFibmVyLmNoYW5nQGFtZC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRGVjZW1iZXIgNiwg MjAyMyAxMDowNSBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IE5pY2tsZSBX YW5nIDxuaWNrbGV3QG52aWRpYS5jb20+OyBJZ29yIEt1bGNoeXRza3l5IDxpZ29ya0BhbWkuY29t PjsNCj4gTWlrZSBNYXNsZW5raW4gPG1pa2UubWFzbGVua2luQGdtYWlsLmNvbT4NCj4gU3ViamVj dDogW0VYVEVSTkFMXSBbUEFUQ0hdIFJlZGZpc2hQa2cvUmVkZmlzaERpY292ZXJ5OiBSZW1lZHkg UmVkZmlzaA0KPiBzZXJ2aWNlIGRpc2NvdmVyeSBmbG93DQo+DQo+DQo+ICoqQ0FVVElPTjogVGhl IGUtbWFpbCBiZWxvdyBpcyBmcm9tIGFuIGV4dGVybmFsIHNvdXJjZS4gUGxlYXNlIGV4ZXJjaXNl DQo+IGNhdXRpb24gYmVmb3JlIG9wZW5pbmcgYXR0YWNobWVudHMsIGNsaWNraW5nIGxpbmtzLCBv ciBmb2xsb3dpbmcgZ3VpZGFuY2UuKioNCj4NCj4gRnJvbTogQWJuZXIgQ2hhbmcgPGFibmVyLmNo YW5nQGFtZC5jb20+DQo+DQo+IFJlbWVkeSBSZWRmaXNoIHNlcnZpY2UgZGlzY292ZXJ5IGZsb3cg Y2hhbmdlcyBtYWRlDQo+IGluIGNvbW1pdCA4NzM2YjhmZC4NCj4NCj4gVGhlIGFib3ZlIGZpeCBj cmVhdGVzIHRoZSBkZXBlbmRlbmN5IHdpdGggU01CSU9TIDQyaCByZWNvcmQsDQo+IHdoaWNoIGhh cyBhIHByb2JsZW0gYXMgU01CSU9TIDQyaCBtYXkgbm90IGJlIGNyZWF0ZWQgd2hlbg0KPiBSZWRm aXNoRGlzY292ZXJ5LlN1cHBvcnRlZCgpIGlzIGludm9rZWQgZXZlbiBhbGwgb2YgdGhlDQo+IHJl cXVpcmVkIHByb3RvY29scyBhcmUgcmVhZHkgb24gdGhlIENvbnRyb2xsZXJIYW5kbGUuIFdlIGNh buKAmXQNCj4gZ3VhcmFudGVlIFNNQklPUyA0MiBzdHJ1Y3R1cmUgd2lsbCBiZSBhbHdheXMgY3Jl YXRlZCBiZWZvcmUNCj4gQ29ubmVjdENvbnRyb2xsZXIoKS4gVVNCIE5JQyBtYXliZSBkZXRlY3Rl ZCBsYXRlIGFuZCBpdCBtZWFucw0KPiBQbGF0Zm9ybUhvc3RJbnRlcmZhY2VCbWNVc2JOaWNMaWIg Y2FuIHBvcHVsYXRlIFNNQklPUyA0MmgNCj4gaW5mb3JtYXRpb24gbGF0ZSBhcyB3ZWxsLiBDYWxs aW5nIHRvDQo+IFJlZGZpc2hTZXJ2aWNlR2V0TmV0d29ya0ludGVyZmFjZSB3aXRoIHRoZSBwcmV2 aW91cyBmaXggbWF5DQo+IHJlc3VsdCBpbiBubyBuZXR3b3JrIGludGVyZmFjZSBmb3IgQk1DLWV4 cG9zZWQgTklDIGFzIFNNQklPUw0KPiA0MmggaXMgbm90IHJlYWR5IHlldC5UaGlzIGlzIHRoZSBm aXJzdCBpc3N1ZS4NCj4NCj4gU2Vjb25kLCB0byBza2lwIHRoZSBuZXR3b3JrIGludGVyZmFjZSB3 aGVuDQo+IE5ldHdvcmtJbnRlcmZhY2VHZXRTdWJuZXRJbmZvKCkgcmV0dXJucyBhIGZhaWx1cmUg YWxzbyBoYXMNCj4gcHJvYmxlbSwgYXMgdGhlIE5JQyBtYXkgYmUgY29uZmlndXJlZCB2aWEgUmVz dEV4LT5Db25maWd1cmUoKS4NCj4gVGhpcyBoYXBwZW5zIGFmdGVyIHRoZSBIb3N0IGludGVyZmFj ZSBpcyBkaXNjb3ZlcmVkLCBhcyBhdCB0aGlzDQo+IG1vbWVudCB3ZSBoYXZlIHRoZSBzdWZmaWNp ZW50IG5ldHdvcmsgaW5mb3JtYXRpb24gdG8gY29uZmlndXJlDQo+IEJNQy1leHBvc2VkIE5JQy4N Cj4NCj4gQmFzZSBvbiBSZWRmaXNoIHNwZWMgaW4gMzEuMS41LjIsIOKAnEVGSSBSZWRmaXNoIENs aWVudCBtYXkgcHJvdmlkZQ0KPiBzZWxlY3Rpb24gVUkgb2YgbmV0d29yayBpbnRlcmZhY2VzIGZv ciBSZWRmaXNoIHNlcnZpY2UgZGlzY292ZXJ5LiIsDQo+IFRoaXMgbWVhbnMgZWRrMiBSZWRmaXNo IGNsaWVudCBnZXRzIGFsbCBuZXR3b3JrIGludGVyZmFjZXMNCj4gdGhyb3VnaCBSZWRmaXNoU2Vy dmljZUdldE5ldHdvcmtJbnRlcmZhY2UgYW5kIGNob29zZSB0aGUgZGVzaXJlZA0KPiBuZXR3b3Jr IGludGVyZmFjZSBhdCBpdHMgZGlzY3JldGlvbiBmb3IgUmVkZmlzaCBzZXJ2aWNlLg0KPg0KPiBT byB0aGUgZml4IGhlcmUgaXM6DQo+IDEuIEluIEJ1aWxkTmV0d29ya0ludGVyZmFjZSgpLCB3ZSBk b27igJl0IHNraXAgYW55IG5ldHdvcmsNCj4gICAgaW50ZXJmYWNlLiBJbiBSZWRmaXNoU2Vydmlj ZUdldE5ldHdvcmtJbnRlcmZhY2UsIHdlIGRvbuKAmXQNCj4gICAgc2tpcCBhbnkgbmV0d29yayBp bnRlcmZhY2UgZXZlbiB0aGUgc3VibmV0IGluZm9ybWF0aW9uIGlzIG5vdA0KPiAgICByZXRyaWV2 ZWQuIFdlIHdpbGwgc3RpbGwgcmV0dXJuIGFsbCBvZiBuZXR3b3JrIGludGVyZmFjZXMgdG8NCj4g ICAgY2xpZW50Lg0KPiAyLiBJbiBSZWRmaXNoU2VydmljZUFjcXVpcmVTZXJ2aWNlIGZvcg0KPiAg ICBFRklfUkVERklTSF9SSVNDT1ZFUl9IT1NUX0lOVEVSRkFDRSBjYXNlLCB3ZSBkb27igJl0IHNr aXAgYW55DQo+ICAgIG5ldHdvcmsgaW50ZXJmYWNlIGV2ZW4gdGhlIHN1Ym5ldCBpbmZvcm1hdGlv biBpcyBub3QNCj4gICAgcmV0cmlldmVkLg0KPg0KPiAzLiBBZGRlZCBzb21lIG1vcmUgZGVidWcg aW5mb3JtYXRpb24uDQo+DQo+IE5vdGU6IFRoZSBzdWJuZXQgaW5mb3JtYXRpb24gaXMgdXNlZCBm b3IgdGhlIHNjZW5hcmlvIHRoZSBzeXN0ZW0NCj4gaXMgbWFuYWdlZCBieSBhIGNlbnRyYWxpemVk IFJlZGZpc2ggc2VydmljZSAobm90IG9uIEJNQyksIHNheXMNCj4gdGhlIG11bHRpcGxlIFJlZGZp c2ggY29tcHV0ZXIgc3lzdGVtIGluc3RhbmNlcy4gQXMgaXQgbWVudGlvbnMNCj4gaW4gMzEuMS41 LjIsIFJlZGZpc2ggY2xpZW50IHRoZXkgbWF5IGhhdmUgdG8ga25vdyB0aGUgc3VibmV0DQo+IGlu Zm9ybWF0aW9uIHNvIHRoZXkgY2FuIGtub3cgdGhlIG5ldHdvcmsgZG9tYWluIHRoZSBOSUMgaXMN Cj4gY29ubmVjdGVkLiBUaGVyZSBtYXkgaGF2ZSBtdWx0aXBsZSBzdWJuZXRzIGluIHRoZSBjb3Jw b3JhdGlvbg0KPiBuZXR3b3JrIGVudmlyb25tZW50LiBTbyB0aGUgc3VibmV0IGluZm9ybWF0aW9u IHByb3ZpZGVzIGNsaWVudA0KPiBhbiBpZGVhIHdoZW4gdGhleSBjaG9vc2UgdGhlIG5ldHdvcmsg aW50ZXJmYWNlLCBzbyBkb2VzIFZMQU4gSUQuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IEFibmVyIENo YW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPiBDYzogTmlja2xlIFdhbmcgPG5pY2tsZXdAbnZp ZGlhLmNvbT4NCj4gQ2M6IElnb3IgS3VsY2h5dHNreXkgPGlnb3JrQGFtaS5jb20+DQo+IENjOiBN aWtlIE1hc2xlbmtpbiA8bWlrZS5tYXNsZW5raW5AZ21haWwuY29tPg0KPiAtLS0NCj4gIC4uLi9S ZWRmaXNoRGlzY292ZXJEeGUvUmVkZmlzaERpc2NvdmVyRHhlLmMgICB8IDEwNSArKysrKystLS0t LS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlv bnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvUmVkZmlzaERpc2NvdmVyRHhlL1Jl ZGZpc2hEaXNjb3ZlckR4ZS5jDQo+IGIvUmVkZmlzaFBrZy9SZWRmaXNoRGlzY292ZXJEeGUvUmVk ZmlzaERpc2NvdmVyRHhlLmMNCj4gaW5kZXggODMzYWUyYjk2OWYuLjFjZmNiY2RjNzk0IDEwMDY0 NA0KPiAtLS0gYS9SZWRmaXNoUGtnL1JlZGZpc2hEaXNjb3ZlckR4ZS9SZWRmaXNoRGlzY292ZXJE eGUuYw0KPiArKysgYi9SZWRmaXNoUGtnL1JlZGZpc2hEaXNjb3ZlckR4ZS9SZWRmaXNoRGlzY292 ZXJEeGUuYw0KPiBAQCAtNDg3LDQzICs0ODcsNiBAQCBDaGVja0lzSXBWZXJzaW9uNiAoDQo+ICAg IHJldHVybiBGQUxTRTsNCj4gIH0NCj4NCj4gLS8qKg0KPiAtICBUaGlzIGZ1bmN0aW9uIHJldHVy bnMgdGhlICBJUCB0eXBlIHN1cHBvcnRlZCBieSB0aGUgSG9zdCBJbnRlcmZhY2UuDQo+IC0NCj4g LSAgQHJldHZhbCAwMGggaXMgVW5rbm93bg0KPiAtICAgICAgICAgIDAxaCBpcyBJcHY0DQo+IC0g ICAgICAgICAgMDJoIGlzIElwdjYNCj4gLQ0KPiAtKiovDQo+IC1TVEFUSUMNCj4gLVVJTlQ4DQo+ IC1HZXRIaUlwUHJvdG9jb2xUeXBlICgNCj4gLSAgVk9JRA0KPiAtICApDQo+IC17DQo+IC0gIEVG SV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+IC0gIFJFREZJU0hfT1ZFUl9J UF9QUk9UT0NPTF9EQVRBICAqRGF0YTsNCj4gLSAgUkVERklTSF9JTlRFUkZBQ0VfREFUQSAgICAg ICAgICpEZXZpY2VEZXNjcmlwdG9yOw0KPiAtDQo+IC0gIERhdGEgICAgICAgICAgICAgPSBOVUxM Ow0KPiAtICBEZXZpY2VEZXNjcmlwdG9yID0gTlVMTDsNCj4gLSAgaWYgKG1TbWJpb3MgPT0gTlVM TCkgew0KPiAtICAgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZpU21iaW9zUHJv dG9jb2xHdWlkLCBOVUxMLCAoVk9JRA0KPiAqKikmbVNtYmlvcyk7DQo+IC0gICAgaWYgKEVGSV9F UlJPUiAoU3RhdHVzKSkgew0KPiAtICAgICAgcmV0dXJuDQo+IFJFREZJU0hfSE9TVF9JTlRFUkZB Q0VfSE9TVF9JUF9BRERSRVNTX0ZPUk1BVF9VTktOT1dOOw0KPiAtICAgIH0NCj4gLSAgfQ0KPiAt DQo+IC0gIFN0YXR1cyA9IFJlZGZpc2hHZXRIb3N0SW50ZXJmYWNlUHJvdG9jb2xEYXRhIChtU21i aW9zLA0KPiAmRGV2aWNlRGVzY3JpcHRvciwgJkRhdGEpOyAvLyBTZWFyY2ggZm9yIFNNQklPUyB0 eXBlIDQyaA0KPiAtICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSAmJiAoRGF0YSAhPSBOVUxMKSAm Jg0KPiAtICAgICAgKERhdGEtPkhvc3RJcEFzc2lnbm1lbnRUeXBlID09IFJlZGZpc2hIb3N0SXBB c3NpZ25tZW50U3RhdGljKSkNCj4gLSAgew0KPiAtICAgIHJldHVybiBEYXRhLT5Ib3N0SXBBZGRy ZXNzRm9ybWF0Ow0KPiAtICB9DQo+IC0NCj4gLSAgcmV0dXJuDQo+IFJFREZJU0hfSE9TVF9JTlRF UkZBQ0VfSE9TVF9JUF9BRERSRVNTX0ZPUk1BVF9VTktOT1dOOw0KPiAtfQ0KPiAtDQo+ICAvKioN Cj4gICAgQ2hlY2sgaWYgTmV0d29yayBQcm90b2NvbCBUeXBlIG1hdGNoZXMgd2l0aCBTTUJJT1Mg VHlwZSA0MiBJUCBBZGRyZXNzDQo+IFR5cGUuDQo+DQo+IEBAIC01ODMsNyArNTQ2LDEwIEBAIERp c2NvdmVyUmVkZmlzaEhvc3RJbnRlcmZhY2UgKA0KPiAgICB9DQo+DQo+ICAgIFN0YXR1cyA9IFJl ZGZpc2hHZXRIb3N0SW50ZXJmYWNlUHJvdG9jb2xEYXRhIChtU21iaW9zLA0KPiAmRGV2aWNlRGVz Y3JpcHRvciwgJkRhdGEpOyAvLyBTZWFyY2ggZm9yIFNNQklPUyB0eXBlIDQyaA0KPiAtICBpZiAo IUVGSV9FUlJPUiAoU3RhdHVzKSAmJiAoRGF0YSAhPSBOVUxMKSAmJiAoRGV2aWNlRGVzY3JpcHRv ciAhPSBOVUxMKSkgew0KPiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpIHx8IChEYXRhID09IE5V TEwpIHx8IChEZXZpY2VEZXNjcmlwdG9yID09IE5VTEwpKSB7DQo+ICsgICAgREVCVUcgKChERUJV R19FUlJPUiwgIiVhOiBSZWRmaXNoR2V0SG9zdEludGVyZmFjZVByb3RvY29sRGF0YSBpcw0KPiBm YWlsZWQuXG4iLCBfX2Z1bmNfXykpOw0KPiArICAgIHJldHVybiBTdGF0dXM7DQo+ICsgIH0gZWxz ZSB7DQo+ICAgICAgLy8gQ2hlY2sgSVAgVHlwZSBhbmQgc2tpcCBhbiB1bm5lY2Vzc2FyeSBuZXR3 b3JrIHByb3RvY29sIGlmIGRvZXMgbm90DQo+IG1hdGNoDQo+ICAgICAgaWYgKEZpbHRlclByb3Rv Y29sIChJbnN0YW5jZS0+TmV0d29ya0ludGVyZmFjZS0+TmV0d29ya1Byb3RvY29sVHlwZSwNCj4g RGF0YS0+SG9zdElwQWRkcmVzc0Zvcm1hdCkpIHsNCj4gICAgICAgIHJldHVybiBFRklfVU5TVVBQ T1JURUQ7DQo+IEBAIC03MzcsMTAgKzcwMyw3IEBAIERpc2NvdmVyUmVkZmlzaEhvc3RJbnRlcmZh Y2UgKA0KPiAgICAgICAgICAgICAgICAgICBJc0h0dHBzDQo+ICAgICAgICAgICAgICAgICAgICk7 DQo+ICAgICAgfQ0KPiAtICB9IGVsc2Ugew0KPiAtICAgIERFQlVHICgoREVCVUdfRVJST1IsICIl YTogUmVkZmlzaEdldEhvc3RJbnRlcmZhY2VQcm90b2NvbERhdGEgaXMNCj4gZmFpbGVkLlxuIiwg X19mdW5jX18pKTsNCj4gICAgfQ0KPiAtDQo+ICAgIHJldHVybiBTdGF0dXM7DQo+ICB9DQo+DQo+ IEBAIC04OTEsNiArODU0LDEyIEBAIEFkZEFuZFNpZ25hbE5ld1JlZGZpc2hTZXJ2aWNlICgNCj4g ICAgICAgIERFQlVHICgoREVCVUdfTUFOQUdFQUJJTElUWSwgIlJlZGZpc2ggc2VydmljZSBsb2Nh dGlvbjogJXMuXG4iLA0KPiBEaXNjb3ZlcmVkSW5zdGFuY2UtPkluZm9ybWF0aW9uLkxvY2F0aW9u KSk7DQo+ICAgICAgfQ0KPg0KPiArICAgIGlmIChVc2VIdHRwcykgew0KPiArICAgICAgREVCVUcg KChERUJVR19NQU5BR0VBQklMSVRZLCAiUmVkZmlzaCBzZXJ2aWNlIHBvcnQ6IDQ0M1xuIikpOw0K PiArICAgIH0gZWxzZSB7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX01BTkFHRUFCSUxJVFksICJS ZWRmaXNoIHNlcnZpY2UgcG9ydDogODBcbiIpKTsNCj4gKyAgICB9DQo+ICsNCj4gICAgICBpZiAo VXVpZCAhPSBOVUxMKSB7DQo+ICAgICAgICBEaXNjb3ZlcmVkSW5zdGFuY2UtPkluZm9ybWF0aW9u LlV1aWQgPSAoQ0hBUjE2ICopQWxsb2NhdGVQb29sDQo+IChBc2NpaVN0clNpemUgKChjb25zdCBD SEFSOCAqKVV1aWQpICogc2l6ZW9mIChDSEFSMTYpKTsNCj4gICAgICAgIEFzY2lpU3RyVG9Vbmlj b2RlU3RyUyAoKGNvbnN0IENIQVI4ICopVXVpZCwgRGlzY292ZXJlZEluc3RhbmNlLQ0KPiA+SW5m b3JtYXRpb24uVXVpZCwgQXNjaWlTdHJTaXplICgoY29uc3QgQ0hBUjggKilVdWlkKSAqIHNpemVv ZiAoQ0hBUjE2KSk7DQo+IEBAIC0xMDE1LDkgKzk4NCwxMSBAQCBBZGRBbmRTaWduYWxOZXdSZWRm aXNoU2VydmljZSAoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgKEVGSV9SRVNUX0VYX0NP TkZJR19EQVRBKShVSU5UOCAqKVJlc3RFeEh0dHBDb25maWdEYXRhDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgKTsNCj4gICAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gLSAg ICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJFU1QgRVggY29uZmlndXJlZC4uXG4iLCBf X2Z1bmNfXykpOw0KPiArICAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IFJFU1QgRVgg aXMgbm90IGNvbmZpZ3VyZWQuLlxuIiwNCj4gX19mdW5jX18pKTsNCj4gICAgICAgICAgRGVsZXRl UmVzdEV4ID0gVFJVRTsNCj4gICAgICAgICAgZ290byBFWElUX0ZSRUVfQUxMOw0KPiArICAgICAg fSBlbHNlIHsNCj4gKyAgICAgICAgREVCVUcgKChERUJVR19NQU5BR0VBQklMSVRZLCAiJWE6IFJF U1QgRVggaXMgY29uZmlndXJlZC4uXG4iLA0KPiBfX2Z1bmNfXykpOw0KPiAgICAgICAgfQ0KPg0K PiAgICAgICAgLy8NCj4gQEAgLTEyMDcsNiArMTE3OCw4IEBAIFJlZGZpc2hTZXJ2aWNlR2V0TmV0 d29ya0ludGVyZmFjZSAoDQo+ICAgIEVGSV9SRURGSVNIX0RJU0NPVkVSX05FVFdPUktfSU5URVJG QUNFDQo+ICpUaGlzTmV0d29ya0ludGVyZmFjZTsNCj4gICAgRUZJX1JFREZJU0hfRElTQ09WRVJf UkVTVF9FWF9JTlNUQU5DRV9JTlRFUk5BTCAgICpSZXN0RXhJbnN0YW5jZTsNCj4NCj4gKyAgREVC VUcgKChERUJVR19NQU5BR0VBQklMSVRZLCAiJWE6IEVudHJ5LlxuIiwgX19mdW5jX18pKTsNCj4g Kw0KPiAgICBpZiAoKFRoaXMgPT0gTlVMTCkgfHwgKE5ldHdvcmtJbnRmSW5zdGFuY2VzID09IE5V TEwpIHx8DQo+IChOdW1iZXJPZk5ldHdvcmtJbnRmcyA9PSBOVUxMKSB8fA0KPiAgICAgICAgKElt YWdlSGFuZGxlID09IE5VTEwpKQ0KPiAgICB7DQo+IEBAIC0xMjQ0LDI5ICsxMjE3LDIzIEBAIFJl ZGZpc2hTZXJ2aWNlR2V0TmV0d29ya0ludGVyZmFjZSAoDQo+ICAgIHdoaWxlIChUUlVFKSB7DQo+ ICAgICAgLy8gSWYgR2V0IFN1Ym5ldCBJbmZvIGZhaWxlZCB0aGVuIHNraXAgdGhpcyBpbnRlcmZh Y2UNCj4gICAgICBTdGF0dXMgPSBOZXR3b3JrSW50ZXJmYWNlR2V0U3VibmV0SW5mbyAoVGhpc05l dHdvcmtJbnRlcmZhY2VJbnRuLA0KPiBJbWFnZUhhbmRsZSk7IC8vIEdldCBzdWJuZXQgaW5mbw0K PiAtICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gLSAgICAgIGlmIChJc05vZGVBdEVu ZCAoJm1FZmlSZWRmaXNoRGlzY292ZXJOZXR3b3JrSW50ZXJmYWNlLA0KPiAmVGhpc05ldHdvcmtJ bnRlcmZhY2VJbnRuLT5FbnRyeSkpIHsNCj4gLSAgICAgICAgYnJlYWs7DQo+ICsgICAgaWYgKCFF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICAgIGlmICghVGhpc05ldHdvcmtJbnRlcmZhY2Ut PklzSXB2Nikgew0KPiArICAgICAgICBJUDRfQ09QWV9BRERSRVNTICgmVGhpc05ldHdvcmtJbnRl cmZhY2UtPlN1Ym5ldElkLnY0LA0KPiAmVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLT5TdWJuZXRB ZGRyLnY0KTsgLy8gSVB2NCBzdWJuZXQgaW5mb3JtYXRpb24uDQo+ICsgICAgICB9IGVsc2Ugew0K PiArICAgICAgICBJUDZfQ09QWV9BRERSRVNTICgmVGhpc05ldHdvcmtJbnRlcmZhY2UtPlN1Ym5l dElkLnY2LA0KPiAmVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLT5TdWJuZXRBZGRyLnY2KTsgLy8g SVB2NiBzdWJuZXQgaW5mb3JtYXRpb24gaW4NCj4gSVB2NiBhZGRyZXNzIGluZm9ybWF0aW9uLg0K PiAgICAgICAgfQ0KPg0KPiAtICAgICAgVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuID0NCj4gKEVG SV9SRURGSVNIX0RJU0NPVkVSX05FVFdPUktfSU5URVJGQUNFX0lOVEVSTkFMICopR2V0TmV4dE5v ZGUNCj4gKCZtRWZpUmVkZmlzaERpc2NvdmVyTmV0d29ya0ludGVyZmFjZSwgJlRoaXNOZXR3b3Jr SW50ZXJmYWNlSW50bi0+RW50cnkpOw0KPiAtICAgICAgY29udGludWU7DQo+ICsgICAgICBUaGlz TmV0d29ya0ludGVyZmFjZS0+U3VibmV0UHJlZml4TGVuZ3RoID0gVGhpc05ldHdvcmtJbnRlcmZh Y2VJbnRuLQ0KPiA+U3VibmV0UHJlZml4TGVuZ3RoOw0KPiAgICAgIH0NCj4NCj4gKyAgICBDb3B5 TWVtICgoVk9JRCAqKSZUaGlzTmV0d29ya0ludGVyZmFjZS0+TWFjQWRkcmVzcywNCj4gJlRoaXNO ZXR3b3JrSW50ZXJmYWNlSW50bi0+TWFjQWRkcmVzcywgVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRu LQ0KPiA+SHdBZGRyZXNzU2l6ZSk7DQo+ICAgICAgVGhpc05ldHdvcmtJbnRlcmZhY2UtPklzSXB2 NiA9IEZBTFNFOw0KPiAgICAgIGlmIChDaGVja0lzSXBWZXJzaW9uNiAoVGhpc05ldHdvcmtJbnRl cmZhY2VJbnRuKSkgew0KPiAgICAgICAgVGhpc05ldHdvcmtJbnRlcmZhY2UtPklzSXB2NiA9IFRS VUU7DQo+ICAgICAgfQ0KPg0KPiAtICAgIENvcHlNZW0gKChWT0lEICopJlRoaXNOZXR3b3JrSW50 ZXJmYWNlLT5NYWNBZGRyZXNzLA0KPiAmVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLT5NYWNBZGRy ZXNzLCBUaGlzTmV0d29ya0ludGVyZmFjZUludG4tDQo+ID5Id0FkZHJlc3NTaXplKTsNCj4gLSAg ICBpZiAoIVRoaXNOZXR3b3JrSW50ZXJmYWNlLT5Jc0lwdjYpIHsNCj4gLSAgICAgIElQNF9DT1BZ X0FERFJFU1MgKCZUaGlzTmV0d29ya0ludGVyZmFjZS0+U3VibmV0SWQudjQsDQo+ICZUaGlzTmV0 d29ya0ludGVyZmFjZUludG4tPlN1Ym5ldEFkZHIudjQpOyAvLyBJUHY0IHN1Ym5ldCBpbmZvcm1h dGlvbi4NCj4gLSAgICB9IGVsc2Ugew0KPiAtICAgICAgSVA2X0NPUFlfQUREUkVTUyAoJlRoaXNO ZXR3b3JrSW50ZXJmYWNlLT5TdWJuZXRJZC52NiwNCj4gJlRoaXNOZXR3b3JrSW50ZXJmYWNlSW50 bi0+U3VibmV0QWRkci52Nik7IC8vIElQdjYgc3VibmV0IGluZm9ybWF0aW9uIGluDQo+IElQdjYg YWRkcmVzcyBpbmZvcm1hdGlvbi4NCj4gLSAgICB9DQo+IC0NCj4gLSAgICBUaGlzTmV0d29ya0lu dGVyZmFjZS0+U3VibmV0UHJlZml4TGVuZ3RoID0gVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRuLQ0K PiA+U3VibmV0UHJlZml4TGVuZ3RoOw0KPiAtICAgIFRoaXNOZXR3b3JrSW50ZXJmYWNlLT5WbGFu SWQgICAgICAgICAgICAgPSBUaGlzTmV0d29ya0ludGVyZmFjZUludG4tPlZsYW5JZDsNCj4gKyAg ICBUaGlzTmV0d29ya0ludGVyZmFjZS0+VmxhbklkID0gVGhpc05ldHdvcmtJbnRlcmZhY2VJbnRu LT5WbGFuSWQ7DQo+ICAgICAgUmVzdEV4SW5zdGFuY2UtPk51bWJlck9mTmV0d29ya0ludGVyZmFj ZXMrKzsNCj4gICAgICBpZiAoSXNOb2RlQXRFbmQgKCZtRWZpUmVkZmlzaERpc2NvdmVyTmV0d29y a0ludGVyZmFjZSwNCj4gJlRoaXNOZXR3b3JrSW50ZXJmYWNlSW50bi0+RW50cnkpKSB7DQo+ICAg ICAgICBicmVhazsNCj4gQEAgLTEzNzgsOSArMTM0NSwxNiBAQCBSZWRmaXNoU2VydmljZUFjcXVp cmVTZXJ2aWNlICgNCj4gICAgICAgIC8vDQo+ICAgICAgICBTdGF0dXMxID0gTmV0d29ya0ludGVy ZmFjZUdldFN1Ym5ldEluZm8NCj4gKFRhcmdldE5ldHdvcmtJbnRlcmZhY2VJbnRlcm5hbCwgSW1h Z2VIYW5kbGUpOw0KPiAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzMSkpIHsNCj4gLSAgICAg ICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBHZXQgc3VibmV0IGluZm9ybWF0aW9uIGZhaWwu XG4iLA0KPiBfX2Z1bmNfXykpOw0KPiAtICAgICAgICBGcmVlUG9vbCAoSW5zdGFuY2UpOw0KPiAt ICAgICAgICBjb250aW51ZTsNCj4gKyAgICAgICAgLy8NCj4gKyAgICAgICAgLy8gR2V0IHN1Ym5l dCBpbmZvcm1hdGlvbiBjb3VsZCBiZSBmYWlsZWQgZm9yDQo+IEVGSV9SRURGSVNIX0RJU0NPVkVS X0hPU1RfSU5URVJGQUNFIGNhc2UuDQo+ICsgICAgICAgIC8vIFdlIHdpbGwgY29uZmlndXJlIG5l dHdvcmsgaW4gQWRkQW5kU2lnbmFsTmV3UmVkZmlzaFNlcnZpY2UuIFNvDQo+IGRvbid0IHNraXAg dGhpcw0KPiArICAgICAgICAvLyB0YXJnZXQgbmV0d29yayBpbnRlcmZhY2UuDQo+ICsgICAgICAg IC8vDQo+ICsgICAgICAgIGlmICgoRmxhZ3MgJiBFRklfUkVERklTSF9ESVNDT1ZFUl9IT1NUX0lO VEVSRkFDRSkgPT0gMCkgew0KPiArICAgICAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTog R2V0IHN1Ym5ldCBpbmZvcm1hdGlvbiBmYWlsLlxuIiwNCj4gX19mdW5jX18pKTsNCj4gKyAgICAg ICAgICBGcmVlUG9vbCAoSW5zdGFuY2UpOw0KPiArICAgICAgICAgIGNvbnRpbnVlOw0KPiArICAg ICAgICB9DQo+ICAgICAgICB9DQo+DQo+ICAgICAgICBOZXdJbnN0YW5jZSA9IFRSVUU7DQo+IEBA IC0xNDQ4LDYgKzE0MjIsNyBAQCBSZWRmaXNoU2VydmljZUFib3J0QWNxdWlyZSAoDQo+ICAgIElO IEVGSV9SRURGSVNIX0RJU0NPVkVSX05FVFdPUktfSU5URVJGQUNFICAqVGFyZ2V0TmV0d29ya0lu dGVyZmFjZQ0KPiBPUFRJT05BTA0KPiAgICApDQo+ICB7DQo+ICsgIERFQlVHICgoREVCVUdfTUFO QUdFQUJJTElUWSwgIiVhOiBFbnRyeS5cbiIsIF9fZnVuY19fKSk7DQo+ICAgIC8vIFRoaXMgZnVu Y3Rpb24gaXMgdXNlZCB0byBhYm9ydCBSZWRmaXNoIHNlcnZpY2UgZGlzY292ZXJ5IHRocm91Z2gg U1NEUA0KPiAgICAvLyBvbiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFNTRFAgaXMgb3B0aW9uYWxs eSBzdXBwb3RlZCBieQ0KPiBFRklfUkVERklTSF9ESVNDT1ZFUl9QUk9UT0NPTCwNCj4gICAgLy8g d2UgZG9udCBoYXZlIGltcGxlbWVudGF0aW9uIGZvciBTU0RQIG5vdy4NCj4gQEAgLTE0NzcsNiAr MTQ1Miw4IEBAIFJlZGZpc2hTZXJ2aWNlUmVsZWFzZVNlcnZpY2UgKA0KPiAgICBFRklfUkVERklT SF9ESVNDT1ZFUkVEX0lOU1RBTkNFICAgICAgICpUaGlzUmVkZmlzaEluc3RhbmNlOw0KPiAgICBF RklfUkVERklTSF9ESVNDT1ZFUkVEX0lOVEVSTkFMX0xJU1QgICpEaXNjb3ZlcmVkUmVkZmlzaElu c3RhbmNlOw0KPg0KPiArICBERUJVRyAoKERFQlVHX01BTkFHRUFCSUxJVFksICIlYTogRW50cnku XG4iLCBfX2Z1bmNfXykpOw0KPiArDQo+ICAgIGlmIChJc0xpc3RFbXB0eSAoJm1SZWRmaXNoSW5z dGFuY2VMaXN0KSkgew0KPiAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpObyBhbnkgZGlz Y292ZXJlZCBSZWRmaXNoIHNlcnZpY2UuXG4iLA0KPiBfX2Z1bmNfXykpOw0KPiAgICAgIHJldHVy biBFRklfTk9UX0ZPVU5EOw0KPiBAQCAtMTcyMywyMiArMTcwMCwxMyBAQCBCdWlsZHVwTmV0d29y a0ludGVyZmFjZSAoDQo+ICAgIEVGSV9SRURGSVNIX0RJU0NPVkVSX1JFU1RfRVhfSU5TVEFOQ0Vf SU5URVJOQUwgICAqUmVzdEV4SW5zdGFuY2U7DQo+ICAgIEVGSV9UUEwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbGRUcGw7DQo+ICAgIEJPT0xFQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXdOZXR3b3JrSW50ZXJmYWNlSW5zdGFs bGVkOw0KPiAtICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSXBUeXBlOw0KPiAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdENvdW50Ow0KPg0KPiAgICBMaXN0Q291bnQgICAgICAgICAgICAgICAgICAg ID0gKHNpemVvZiAobVJlcXVpcmVkUHJvdG9jb2wpIC8gc2l6ZW9mDQo+IChSRURGSVNIX0RJU0NP VkVSX1JFUVVJUkVEX1BST1RPQ09MKSk7DQo+ICAgIE5ld05ldHdvcmtJbnRlcmZhY2VJbnN0YWxs ZWQgPSBGQUxTRTsNCj4gICAgSW5kZXggICAgICAgICAgICAgICAgICAgICAgICA9IDA7DQo+DQo+ IC0gIC8vIEdldCBJUCBUeXBlIHRvIGZpbHRlciBvdXQgdW5uZWNlc3NhcnkgbmV0d29yayBwcm90 b2NvbCBpZiBwb3NzaWJsZQ0KPiAtICBJcFR5cGUgPSBHZXRIaUlwUHJvdG9jb2xUeXBlICgpOw0K PiAtDQo+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IExpc3RDb3VudDsgSW5kZXgrKykgew0K PiAtICAgIC8vIENoZWNrIElQIFR5cGUgYW5kIHNraXAgYW4gdW5uZWNlc3NhcnkgbmV0d29yayBw cm90b2NvbCBpZiBkb2VzIG5vdA0KPiBtYXRjaA0KPiAtICAgIGlmIChGaWx0ZXJQcm90b2NvbCAo bVJlcXVpcmVkUHJvdG9jb2xbSW5kZXhdLlByb3RvY29sVHlwZSwgSXBUeXBlKSkgew0KPiAtICAg ICAgY29udGludWU7DQo+IC0gICAgfQ0KPiAtDQo+ICAgICAgU3RhdHVzID0gZ0JTLT5PcGVuUHJv dG9jb2wgKA0KPiAgICAgICAgICAgICAgICAgICAgICAvLyBBbHJlYWR5IGluIGxpc3Q/DQo+ICAg ICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUsDQo+IEBAIC0yMTY0LDYgKzIxMzIs NyBAQCBSZWRmaXNoRGlzY292ZXJEcml2ZXJCaW5kaW5nU3RhcnQgKA0KPiAgICBJTiBFRklfREVW SUNFX1BBVEhfUFJPVE9DT0wgICAgICpSZW1haW5pbmdEZXZpY2VQYXRoIE9QVElPTkFMDQo+ICAg ICkNCj4gIHsNCj4gKyAgREVCVUcgKChERUJVR19NQU5BR0VBQklMSVRZLCAiJWE6RW50cnkuXG4i LCBfX2Z1bmNfXykpOw0KPiAgICByZXR1cm4gQnVpbGR1cE5ldHdvcmtJbnRlcmZhY2UgKFRoaXMs IENvbnRyb2xsZXJIYW5kbGUpOw0KPiAgfQ0KPg0KPiAtLQ0KPiAyLjM3LjEud2luZG93cy4xDQo+ DQo+IC1UaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgbWVzc2FnZSBtYXkgYmUgY29u ZmlkZW50aWFsIGFuZA0KPiBwcm9wcmlldGFyeSB0byBBbWVyaWNhbiBNZWdhdHJlbmRzIChBTUkp LiBUaGlzIGNvbW11bmljYXRpb24gaXMgaW50ZW5kZWQNCj4gdG8gYmUgcmVhZCBvbmx5IGJ5IHRo ZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0IGlzIGFkZHJlc3NlZCBvciBieSB0aGVp cg0KPiBkZXNpZ25lZS4gSWYgdGhlIHJlYWRlciBvZiB0aGlzIG1lc3NhZ2UgaXMgbm90IHRoZSBp bnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUNCj4gb24gbm90aWNlIHRoYXQgYW55IGRpc3RyaWJ1 dGlvbiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFueSBmb3JtLCBpcyBzdHJpY3RseQ0KPiBwcm9oaWJp dGVkLiBQbGVhc2UgcHJvbXB0bHkgbm90aWZ5IHRoZSBzZW5kZXIgYnkgcmVwbHkgZS1tYWlsIG9y IGJ5IHRlbGVwaG9uZQ0KPiBhdCA3NzAtMjQ2LTg2MDAsIGFuZCB0aGVuIGRlbGV0ZSBvciBkZXN0 cm95IGFsbCBjb3BpZXMgb2YgdGhlIHRyYW5zbWlzc2lvbi4NCg0KCi09LT0tPS09LT0tPS09LT0t PS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8g dGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMTIxOTApOiBodHRwczovL2VkazIuZ3Jv dXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTIxOTAKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dy b3Vwcy5pby9tdC8xMDMwMTQyMzAvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRr Mi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91 bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==