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 1B9E67803CE for ; Tue, 10 Oct 2023 14:57:36 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=PvxAs0kfZW22Qd15MrRxDQ9VirNvbFUZkZPX1OBuNWM=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1696949855; v=1; b=FlWh78RJUCITQsZJiE4x87dB+G+h5SqbY8fJTHCFwQzigYSkv+MTKkOtxGfHs11gCzsPq1aa 2Iby9EmUaQdMlO/jwxfCa8lIl70S86TOt+SbgmpjBAUF1FB9bzGTyvqvrsxArE/Li9iNHKr3bmU mRBWt5EoVOEjW5SCRmyfIxwA= X-Received: by 127.0.0.2 with SMTP id MFUbYY7687511xqj6fTku7yp; Tue, 10 Oct 2023 07:57:35 -0700 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.73]) by mx.groups.io with SMTP id smtpd.web11.93506.1696949855044860821 for ; Tue, 10 Oct 2023 07:57:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kK0VJJf/EPs082lhxxvJu9nGbkBtG9CVITcgVPdLGbwbl26TMqVdCnIuhquhdMn95OnjA8OpmA3MjYFBKclzl1T/CQtalnEDtAYiBqKHFSgmNux2SZxccuJdjbOob73TB00t9bkp+jBpj8HQ7FR4flV52tG7lLzghc02+f9Jm37GN0fK3C1bdmMAUbolvDpojRCbhgUqIYd70xSSrDnMPEil4edqzri3PtVb8MWsp1kNk3jOyZGuz5v5UT4nNNFCQ5YyYagJy68KLjFc0380LOmnxeqG+omk8bghFwWQf/MYV5GHFynd+7nZ4AAzhkeAlX/S4kVSwAm5vTHIxFaZtQ== 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=4yI7QFUtkH3erWMxgDSFiqJx/kgBLSIwmc7Z242pueY=; b=Fpo1wJDQXM+dj0zQPDyvuYXfAys3t+HTJR/V5qxsPCFQvrWU40PXCgz2LjVNm+YVQx6iujpzOMQ6A8953dkVEnxPIGCHfaUXW/Bxj96CSvbB62K8eJijV8oOK68FTWJKZTGwwEDxY5nr88uI8Ng4LEvwNlwE4+Wb8OXnS8iMxVTlQpixhJy4DQomy/z9Csv2nYU0q4z/AKUwL6lpN7NUNTB/xqQ9T2kHAFVeurw9Xtoqh8K1AJ8obaspIal92uqeRZ2RoPWo/uoFaUkGv55DomAxiTbLdByRENpM4qKb3nnVoEUsYjBlyITt0R6rOGcy7ZHS+MkYKc2ltl+H1yqdzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none X-Received: from DM6PR12MB3371.namprd12.prod.outlook.com (2603:10b6:5:116::27) by PH7PR12MB6834.namprd12.prod.outlook.com (2603:10b6:510:1b4::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6863.36; Tue, 10 Oct 2023 14:57:32 +0000 X-Received: from DM6PR12MB3371.namprd12.prod.outlook.com ([fe80::ed2:99a4:2e77:89bc]) by DM6PR12MB3371.namprd12.prod.outlook.com ([fe80::ed2:99a4:2e77:89bc%5]) with mapi id 15.20.6768.029; Tue, 10 Oct 2023 14:57:31 +0000 From: "Jeshua Smith via groups.io" To: Pierre Gondois , "devel@edk2.groups.io" CC: "Sami.Mujawar@arm.com" Subject: Re: [edk2-devel] [PATCH 1/2] DynamicTablesPkg/TableHelperLib: Fix and improve text handling Thread-Topic: [PATCH 1/2] DynamicTablesPkg/TableHelperLib: Fix and improve text handling Thread-Index: AQHZ+2J7pAbOJKa+R0m2NSmKTdZhA7BDHA7Q Date: Tue, 10 Oct 2023 14:57:31 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR12MB3371:EE_|PH7PR12MB6834:EE_ x-ms-office365-filtering-correlation-id: 4a29fcce-21c9-4a5d-6d96-08dbc9a13af3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: aY0SpPIllAhf2KQdw8+K+/xoK9JR4+ZtomUg1WP4C0Yngb45CNxKt2lxGW9HIco8qSpHYyLS8VGE+Kxafk1ao22E5L5EACZ17mYzGO2TEk+xb6YqpG4V3CHfYKwmqYo4RyLc32O/xX84lbl1qpCtuhujKeuFGGFEwR8XO74Gi4RfRZCRgyi4POl9UOjpLs4hVYO/AXgF1vzqk5l/upG81JNCgbZmtiItLP5tbVHASodx4TudYMahcTy1gkF+lQYJ112IS59Agu7GhCTK5fMMngoFlAhNv5PZ/1pj3Q/VGzEVNDGpw/gO4t4F9jZoVhRd6hiqKOQrjdO4SEsTKb4/z+9z2ZhP1/gAYvmaWfvexj3WMU/gGHUcQqw2JvD67YoAElsGn8E//tXQ7VdaoBldIO2eijWOgp7FrVvKmu4BpstBN2x7RK3LPwClhOtc/5Tqm2eOTl/5GFXJY3ICPQzG/+7pvRGhRcQMpoyQliHJeVSQLbNPSoDTgCINWitWMMETpNv/FscN06w/9A40LTWALChhwz6lfUDHoMNxr33lq3qmpqH3HAsxMBgji7Ni1Y2pv43mqZsfKmY/dSHLPsEiYjmbZdD59z8b7n7lP1rWhMrikO1zpqVKFTfN6tFNvNvV x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?czN0ZG5WaGl1cHlWWUlZQzFReUxXd0F1VldqZDc5dDd1Mnl5K3c2a1U2WWt5?= =?utf-8?B?SmVyV1I5UFo5MVZxWGdjRlB5aGNkUXA1ZFd5eklTM1FibTBVN3hpZUgycFNi?= =?utf-8?B?WmRXcnN5R3crbTZNek5TSFU0VGd0RDl4c0dvamJMNWdOUGpMZmthMHQvQlhJ?= =?utf-8?B?OEd2bm1DdlF6VFFGbWYyZC95UG5nL0xSVXUxN3VXbnNmQ2dvNno5UXRjN0l4?= =?utf-8?B?bXlkYlNaTC9hdWRURDBGQ2JGRVRmcy9FS0VMeThac3FwbVBheTR5NzBRaEds?= =?utf-8?B?S0RvTVNSajJKcVE1RFJ2S2hBUk8rSC9sVFZYay9oQ0I3a3VTa0hiWm1JZmlS?= =?utf-8?B?MkU2QW9mcEU0TW00enVjRmJ5dWRLdFlNaFZzQ3dJdVY3QldUMXVPaEpwMXpX?= =?utf-8?B?RFhXemxvZi9PTlNSYjVzY3JJUmpIN1R6ZkREUE5wRklQY3ZrK0ZiMklHRUVK?= =?utf-8?B?RzVGUWRnTE1xYTdYRnExZ0tqZ2FVNGV0enZ3bE5ITDNwQmZ2b1JuYkxFanJZ?= =?utf-8?B?UE9CQmp5MUduODZDT1hZU0ZTdGwwbmdOVzZsN2xibjNXVS9ZRTBRdXhBMWFm?= =?utf-8?B?by9vL3phZjJVUEQ5Y0lsMXR1NW5WNnFsWnJZRE1SRFlQRTdQNGU2REw4cWRl?= =?utf-8?B?aTEreldkcTlLV01TdEVpb3ZTUW5NUHl1bDBxRU5sdXJiYnUzU0VaQUFIM2hN?= =?utf-8?B?OWlETlhXOTRaMkdpcHZaTmIxU2tOUlNEZXZWdU1VYXhuSS9ZRjc2VHpmblZU?= =?utf-8?B?K0crRE9CUDdKT1paMWIxakNjWWhYSGRCM1ppejExMEhjcTVVQW1GUVM4VFI1?= =?utf-8?B?VnVZb0l2UDZ4aHJDOGdJRmtEa2pFYTBGS3RSb0k0WmUrTlp4SlViWmNqbThW?= =?utf-8?B?Um1Db3FHRWI1cWFaWFdyMHJiOG0yN3AvUnVBRTFxOTQzN1BSdHZ5SVpNamky?= =?utf-8?B?WXVXbUYvTWJ3MzdBby90Ukc5M2FSZERsMDJBZTVzdHhlZE9iQUlieXI4SjF1?= =?utf-8?B?a2xMQ21ZVVUybytjYi9mQjRVMkNZSytxRlIrV1VwVlU2dmdLR043KzczdCtR?= =?utf-8?B?d1Q2dUdSMFN2MzJsR1VNb0JQaXF3QTM5a2tzQmtIYXZtOVR0cUl4Nk9GZ1JB?= =?utf-8?B?MEhvcGwwUzl3RnFpckUwQUFBazRHOWJPcTQweGloR2xQME5QRjZ5VkZRSURD?= =?utf-8?B?TWF1U1RTTFVvS1R4YisxemtCTUkxWGJKbkgwNmRCMy9ocVJYODI4ZDhXYm5C?= =?utf-8?B?TWRtcUV1TmwvM3hJQS9tbWFwQkd0dml1UE5RRlBkUUpuMlloM3l6MmNRQkZZ?= =?utf-8?B?RlNKUEcvZjduemhrR2lIWDNINllmY2dJZVFoditYc1BXWkV4bG5tSzh6dFdh?= =?utf-8?B?UmdUdld1YkhUYlhLZ0h4VjBGTWI3WWF3a2JpQ2l6NnppcDlveHFzQWI1R2JL?= =?utf-8?B?UzBBYTVPckY2Q2NON2FPR0Iyc1dxcTJnR0Q0QnRoeG1BOHQ0MkZmRlVnZUZu?= =?utf-8?B?SSs0SnZKS1MraXgyb1RLSUR3T203c2N5K1RkVkNBK2FpWkJtdnR5bjE3QWts?= =?utf-8?B?MDBuQlZJUG1DUklTWEF3WnYzcXlqazhCVjFoTWhUTGpZNUVDTTNlMFhYeHFN?= =?utf-8?B?V2NXM1dlZkJYUGpLMHJxWldaUGlFWFZVUkJyZHpxbkhHMWFKN1pGWU81TVow?= =?utf-8?B?U3piN3R1TVhJQTE4ZzJ3bWtpQTExUlFRRW1EVG94R1Y0cGV2RFZZZUh5ZTll?= =?utf-8?B?RzhHNXdBNUoyTHNUY1Zzc09waWt0anZ2Rll2OFJ4b2U1OTZtRlJRZGpscy9B?= =?utf-8?B?UkMyeGhhMEROdlFyRlBkdWU3c0lEQm1XMDQxdGZuc29ydVdodGlTYTdValll?= =?utf-8?B?MDhHdGpkYzhodTZhRnRza0ZvZXhRRmxnM0NQNEFBRHZabjhTWDJSamNoSlVl?= =?utf-8?B?YlF2L3VOWklKVFBHTmszRHVza1BmZ0w4d1NjenNKV0VSNW1HTVN5dUJxbTVq?= =?utf-8?B?aGRYRUl2TzNVdkxnOCs5SFJxbFRCQmsrTjAxZHAxZ1BBQ2pQOGNpWDg1K0pT?= =?utf-8?B?Wkdhdjh6VUZDOVFXM2ZEbHhSMjhtL0FjajQ5N0lpUnJxYjBKUXhzWjZWZ3BS?= =?utf-8?B?SXVUV0R5dkZoSTZXTHRqdXFjTGVia0k3WVVWQWpmTisrdDRxQ2ZXbldvQitV?= =?utf-8?Q?BdCU+OIcFo+Qyt0Fxs5T7dPVJ0mSoCGtgiD+Wps6TiQh?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3371.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a29fcce-21c9-4a5d-6d96-08dbc9a13af3 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2023 14:57:31.8639 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oJQWEG1twbR5kxlDO16PrzJf14Ei3+BeCm9y5AieyWaUyr0F0/D0Tu+FS0xaFCHglsD0JQIDqOIFeUIEu+SY5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6834 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,jeshuas@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: ENYjGlfW9KhvjmxxhA3YVCnux7686176AA= 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=FlWh78RJ; 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 VGhhbmtzIGZvciB0aGUgcmV2aWV3LiBSZXBseSBpbmxpbmUuDQoNCi0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQpGcm9tOiBQaWVycmUgR29uZG9pcyA8cGllcnJlLmdvbmRvaXNAYXJtLmNvbT4g DQpTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDEwLCAyMDIzIDQ6MTQgQU0NClRvOiBKZXNodWEgU21p dGggPGplc2h1YXNAbnZpZGlhLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogU2FtaS5N dWphd2FyQGFybS5jb20NClN1YmplY3Q6IFJlOiBbUEFUQ0ggMS8yXSBEeW5hbWljVGFibGVzUGtn L1RhYmxlSGVscGVyTGliOiBGaXggYW5kIGltcHJvdmUgdGV4dCBoYW5kbGluZw0KDQpFeHRlcm5h bCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KDQoNCkhl bGxvIEplc2h1YSwNCkp1c3QgYSBzbWFsbCByZW1hcmssIGJ1dCB0aGlzIHNob3VsZCBiZSBlcXVp dmFsZW50LCBzbzoNCg0KUmV2aWV3ZWQtYnk6IFBpZXJyZSBHb25kb2lzIDxwaWVycmUuZ29uZG9p c0Bhcm0uY29tPg0KDQpPbiAxMC82LzIzIDE4OjI4LCBKZXNodWEgU21pdGggd3JvdGU6DQo+IFRo aXMgZml4ZXMgdHdvIGJ1Z3MgYW5kIGFkZHMgc29tZSBlbmhhbmNlbWVudHMgdG8gdGhlIGhhbmRs aW5nIG9mIA0KPiBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzIGluIG9iamVjdHMgYmVpbmcgcHJpbnRl ZCBieSB0aGUgQ00gT2JqZWN0UGFyc2VyLg0KPg0KPiBCdWcgZml4ZXM6DQo+IDEuIFByaW50T2Vt SUQoKSBjdXJyZW50bHkgYXR0ZW1wdHMgdG8gcHJpbnQgY2hhcmFjdGVycyB3aXRoICIlQyIsDQo+ ICAgICBidXQgdGhlIGNvcnJlY3Qgc3ludGF4IGlzIChsb3dlcmNhc2UpICIlYyIuIFRoaXMgYnVn IHJlc3VsdHMgaW4NCj4gICAgICJDQ0NDQ0MiIGJlaW5nIHByaW50ZWQgaW5zdGVhZCBvZiB0aGUg YWN0dWFsIEFTQ0lJIGNoYXJhY3RlcnMuDQo+IDIuIFByaW50U3RyaW5nKCkgaXMgYmVpbmcgcGFz c2VkIGEgcG9pbnRlciB0byBkYXRhIGluIG9iamVjdHMsIGJ1dCBpbg0KPiAgICAgc29tZSBjYXNl cyB0aGlzIGRhdGEgaXMgdGhlIGFjdHVhbCBzdHJpbmcgdG8gcHJpbnQgYW5kIG90aGVyIGNhc2Vz DQo+ICAgICBpdCBpcyBhIHBvaW50ZXIgdG8gdGhlIHN0cmluZyB0byBwcmludC4gVGhpcyBhZGRz IGEgUHJpbnRTdHJpbmdQdHINCj4gICAgIGZ1bmN0aW9uIGFuZCB1c2VzIHRoZSBjb3JyZWN0IGZ1 bmN0aW9ucyBkZXBlbmRpbmcgb24gdGhlIHNpdHVhdGlvbi4NCj4NCj4gRW5oYW5jZW1lbnRzOg0K PiAxLiBTb21lIG9iamVjdHMgY29udGFpbiBBU0NJSSBjaGFyYWN0ZXJzLCB3aGljaCBhcmUgY3Vy cmVudGx5IHByaW50ZWQNCj4gICAgIGFzIHRoZWlyIGhleCB2YWx1ZXMuIFRoaXMgYWRkcyBmdW5j dGlvbnMgdG8gcHJpbnQgb3V0IEFTQ0lJDQo+ICAgICBjaGFyYWN0ZXIgZmllbGRzIGFzIHRleHQg cmF0aGVyIHRoYW4gaGV4LCBhbmQgdXNlcyB0aG9zZSBmdW5jdGlvbnMgaW4NCj4gICAgIHNldmVy YWwgY2FzZXMgd2hlcmUgdGhlIG9iamVjdCBkYXRhIGlzIGRlZmluZWQgdG8gYmUgQVNDSUkuDQo+ IDIuIFRoZSBQcmludE9lbUlEKCkgZnVuY3Rpb24gaXMgcmVwbGFjZWQgd2l0aCB0aGUgbmV3IGlk ZW50aWNhbCBidXQgbW9yZQ0KPiAgICAgZ2VuZXJlY2ljYWxseS1uYW1lZCBQcmludENoYXI2KCkg ZnVuY3Rpb24uDQo+DQo+IFNpZ25lZC1vZmYtYnk6IEplc2h1YSBTbWl0aCA8amVzaHVhc0Budmlk aWEuY29tPg0KPiAtLS0NCj4gICAuLi4vQ29uZmlndXJhdGlvbk1hbmFnZXJPYmplY3RQYXJzZXIu YyAgICAgICAgfCAxNzYgKysrKysrKysrKysrKystLS0tDQo+ICAgMSBmaWxlIGNoYW5nZWQsIDE0 MyBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCANCj4gYS9E eW5hbWljVGFibGVzUGtnL0xpYnJhcnkvQ29tbW9uL1RhYmxlSGVscGVyTGliL0NvbmZpZ3VyYXRp b25NYW5hZ2VyTw0KPiBiamVjdFBhcnNlci5jIA0KPiBiL0R5bmFtaWNUYWJsZXNQa2cvTGlicmFy eS9Db21tb24vVGFibGVIZWxwZXJMaWIvQ29uZmlndXJhdGlvbk1hbmFnZXJPDQo+IGJqZWN0UGFy c2VyLmMNCj4gaW5kZXggOTlkNjAzMjUxMC4uOTJkZjFlZmVlOCAxMDA2NDQNCj4gLS0tIA0KPiBh L0R5bmFtaWNUYWJsZXNQa2cvTGlicmFyeS9Db21tb24vVGFibGVIZWxwZXJMaWIvQ29uZmlndXJh dGlvbk1hbmFnZXJPDQo+IGJqZWN0UGFyc2VyLmMNCj4gKysrIGIvRHluYW1pY1RhYmxlc1BrZy9M aWJyYXJ5L0NvbW1vbi9UYWJsZUhlbHBlckxpYi9Db25maWd1cmF0aW9uTWFuYQ0KPiArKysgZ2Vy T2JqZWN0UGFyc2VyLmMNCj4gQEAgLTE0LDcgKzE0LDcgQEANCj4gICBTVEFUSUMNCj4gICBWT0lE DQo+ICAgRUZJQVBJDQo+IC1QcmludE9lbUlkICgNCj4gK1ByaW50U3RyaW5nICgNCj4gICAgIENP TlNUIENIQVI4ICAqRm9ybWF0LA0KPiAgICAgVUlOVDggICAgICAgICpQdHINCj4gICAgICk7DQo+ IEBAIC0yMiw3ICsyMiwzMSBAQCBQcmludE9lbUlkICgNCj4gICBTVEFUSUMNCj4gICBWT0lEDQo+ ICAgRUZJQVBJDQo+IC1QcmludFN0cmluZyAoDQo+ICtQcmludFN0cmluZ1B0ciAoDQo+ICsgIENP TlNUIENIQVI4ICAqRm9ybWF0LA0KPiArICBVSU5UOCAgICAgICAgKlB0cg0KPiArICApOw0KPiAr DQo+ICtTVEFUSUMNCj4gK1ZPSUQNCj4gK0VGSUFQSQ0KPiArUHJpbnRDaGFyNCAoDQo+ICsgIENP TlNUIENIQVI4ICAqRm9ybWF0LA0KPiArICBVSU5UOCAgICAgICAgKlB0cg0KPiArICApOw0KPiAr DQo+ICtTVEFUSUMNCj4gK1ZPSUQNCj4gK0VGSUFQSQ0KPiArUHJpbnRDaGFyNiAoDQo+ICsgIENP TlNUIENIQVI4ICAqRm9ybWF0LA0KPiArICBVSU5UOCAgICAgICAgKlB0cg0KPiArICApOw0KPiAr DQo+ICtTVEFUSUMNCj4gK1ZPSUQNCj4gK0VGSUFQSQ0KPiArUHJpbnRDaGFyOCAoDQo+ICAgICBD T05TVCBDSEFSOCAgKkZvcm1hdCwNCj4gICAgIFVJTlQ4ICAgICAgICAqUHRyDQo+ICAgICApOw0K PiBAQCAtMTkwLDE2ICsyMTQsMTYgQEAgU1RBVElDIENPTlNUIENNX09CSl9QQVJTRVIgIENtQXJt SXRzR3JvdXBOb2RlUGFyc2VyW10gPSB7DQo+ICAgLyoqIEEgcGFyc2VyIGZvciBFQXJtT2JqTmFt ZWRDb21wb25lbnQuDQo+ICAgKi8NCj4gICBTVEFUSUMgQ09OU1QgQ01fT0JKX1BBUlNFUiAgQ21B cm1OYW1lZENvbXBvbmVudE5vZGVQYXJzZXJbXSA9IHsNCj4gLSAgeyAiVG9rZW4iLCAgICAgICAg ICAgICBzaXplb2YgKENNX09CSkVDVF9UT0tFTiksICIweCVwIiwgTlVMTCAgICAgICAgfSwNCj4g LSAgeyAiSWRNYXBwaW5nQ291bnQiLCAgICA0LCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4 IiwgTlVMTCAgICAgICAgfSwNCj4gLSAgeyAiSWRNYXBwaW5nVG9rZW4iLCAgICBzaXplb2YgKENN X09CSkVDVF9UT0tFTiksICIweCVwIiwgTlVMTCAgICAgICAgfSwNCj4gLSAgeyAiRmxhZ3MiLCAg ICAgICAgICAgICA0LCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4IiwgTlVMTCAgICAgICAg fSwNCj4gLSAgeyAiQ2FjaGVDb2hlcmVudCIsICAgICA0LCAgICAgICAgICAgICAgICAgICAgICAg ICIweCV4IiwgTlVMTCAgICAgICAgfSwNCj4gLSAgeyAiQWxsb2NhdGlvbkhpbnRzIiwgICAxLCAg ICAgICAgICAgICAgICAgICAgICAgICIweCV4IiwgTlVMTCAgICAgICAgfSwNCj4gLSAgeyAiTWVt b3J5QWNjZXNzRmxhZ3MiLCAxLCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4IiwgTlVMTCAg ICAgICAgfSwNCj4gLSAgeyAiQWRkcmVzc1NpemVMaW1pdCIsICAxLCAgICAgICAgICAgICAgICAg ICAgICAgICIweCV4IiwgTlVMTCAgICAgICAgfSwNCj4gLSAgeyAiT2JqZWN0TmFtZSIsICAgICAg ICBzaXplb2YgKENIQVI4ICopLCAgICAgICAgIE5VTEwsICAgUHJpbnRTdHJpbmcgfSwNCj4gLSAg eyAiSWRlbnRpZmllciIsICAgICAgICA0LCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4Iiwg TlVMTCAgICAgICAgfSwNCj4gKyAgeyAiVG9rZW4iLCAgICAgICAgICAgICBzaXplb2YgKENNX09C SkVDVF9UT0tFTiksICIweCVwIiwgTlVMTCAgICAgICAgICAgfSwNCj4gKyAgeyAiSWRNYXBwaW5n Q291bnQiLCAgICA0LCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4IiwgTlVMTCAgICAgICAg ICAgfSwNCj4gKyAgeyAiSWRNYXBwaW5nVG9rZW4iLCAgICBzaXplb2YgKENNX09CSkVDVF9UT0tF TiksICIweCVwIiwgTlVMTCAgICAgICAgICAgfSwNCj4gKyAgeyAiRmxhZ3MiLCAgICAgICAgICAg ICA0LCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4IiwgTlVMTCAgICAgICAgICAgfSwNCj4g KyAgeyAiQ2FjaGVDb2hlcmVudCIsICAgICA0LCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4 IiwgTlVMTCAgICAgICAgICAgfSwNCj4gKyAgeyAiQWxsb2NhdGlvbkhpbnRzIiwgICAxLCAgICAg ICAgICAgICAgICAgICAgICAgICIweCV4IiwgTlVMTCAgICAgICAgICAgfSwNCj4gKyAgeyAiTWVt b3J5QWNjZXNzRmxhZ3MiLCAxLCAgICAgICAgICAgICAgICAgICAgICAgICIweCV4IiwgTlVMTCAg ICAgICAgICAgfSwNCj4gKyAgeyAiQWRkcmVzc1NpemVMaW1pdCIsICAxLCAgICAgICAgICAgICAg ICAgICAgICAgICIweCV4IiwgTlVMTCAgICAgICAgICAgfSwNCj4gKyAgeyAiT2JqZWN0TmFtZSIs ICAgICAgICBzaXplb2YgKENIQVI4ICopLCAgICAgICAgIE5VTEwsICAgUHJpbnRTdHJpbmdQdHIg fSwNCj4gKyAgeyAiSWRlbnRpZmllciIsICAgICAgICA0LCAgICAgICAgICAgICAgICAgICAgICAg ICIweCV4IiwgTlVMTCAgICAgICAgICAgfSwNCj4gICB9Ow0KPg0KPiAgIC8qKiBBIHBhcnNlciBm b3IgRUFybU9ialJvb3RDb21wbGV4Lg0KPiBAQCAtNzQwLDE5ICs3NjQsMTkgQEAgU1RBVElDIENP TlNUIENNX09CSl9QQVJTRVJfQVJSQVkgIEFybU5hbWVzcGFjZU9iamVjdFBhcnNlcltdID0gew0K PiAgICovDQo+ICAgU1RBVElDIENPTlNUIENNX09CSl9QQVJTRVIgIFN0ZE9iakNmZ01nckluZm9Q YXJzZXJbXSA9IHsNCj4gICAgIHsgIlJldmlzaW9uIiwgNCwgIjB4JXgiLCAgICAgICAgIE5VTEwg ICAgICAgfSwNCj4gLSAgeyAiT2VtSWRbNl0iLCA2LCAiJUMlQyVDJUMlQyVDIiwgUHJpbnRPZW1J ZCB9DQo+ICsgIHsgIk9lbUlkWzZdIiwgNiwgIiVjJWMlYyVjJWMlYyIsIFByaW50Q2hhcjYgfQ0K DQpOSVQ6DQpJcyBpdCBuZWNlc3NhcnksIHNpbmNlICIlYyVjJWMlYyVjJWMiIGlzIHRoZSBkZWZh dWx0IGZvcm1hdCBvZiBQcmludENoYXI2KCkgPw0KDQpbSkRTXTogSSBjb25zaWRlcmVkIGNoYW5n aW5nIGl0IGFzIHVubmVjZXNzYXJ5LCBidXQgaW4gdGhlIGVuZCBsZWZ0IGl0IGFzIGlzIHNpbmNl IHRoZSBvcmlnaW5hbCBjb2RlIHVzZWQgdGhlIHNhbWUgcGF0dGVybiAoaS5lLiBwYXNzaW5nIGlu IGEgZm9ybWF0IHRoYXQgd2FzIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0IGZvcm1hdCkuDQoNCj4g ICB9Ow0KPg0KPiAgIC8qKiBBIHBhcnNlciBmb3IgRVN0ZE9iakFjcGlUYWJsZUxpc3QuDQo+ICAg Ki8NCj4gICBTVEFUSUMgQ09OU1QgQ01fT0JKX1BBUlNFUiAgU3RkT2JqQWNwaVRhYmxlSW5mb1Bh cnNlcltdID0gew0KPiAtICB7ICJBY3BpVGFibGVTaWduYXR1cmUiLCA0LCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIjB4JXgiLCAgIE5VTEwgfSwNCj4gLSAgeyAiQWNwaVRh YmxlUmV2aXNpb24iLCAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIl ZCIsICAgICBOVUxMIH0sDQo+IC0gIHsgIlRhYmxlR2VuZXJhdG9ySWQiLCAgIHNpemVvZiAoQUNQ SV9UQUJMRV9HRU5FUkFUT1JfSUQpLCAgICAgICAiMHgleCIsICAgTlVMTCB9LA0KPiAtICB7ICJB Y3BpVGFibGVEYXRhIiwgICAgICBzaXplb2YgKEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAq KSwgIjB4JXAiLCAgIE5VTEwgfSwNCj4gLSAgeyAiT2VtVGFibGVJZCIsICAgICAgICAgOCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIweCVMTFgiLCBOVUxMIH0sDQo+IC0g IHsgIk9lbVJldmlzaW9uIiwgICAgICAgIDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiMHgleCIsICAgTlVMTCB9LA0KPiAtICB7ICJNaW5vclJldmlzaW9uIiwgICAgICAx LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjB4JXgiLCAgIE5VTEwgfSwN Cj4gKyAgeyAiQWNwaVRhYmxlU2lnbmF0dXJlIiwgNCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIlYyVjJWMlYyIsICAgICAgICAgUHJpbnRDaGFyNCB9LA0KPiArICB7ICJB Y3BpVGFibGVSZXZpc2lvbiIsICAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiVkIiwgICAgICAgICAgICAgICBOVUxMICAgICAgIH0sDQo+ICsgIHsgIlRhYmxlR2VuZXJh dG9ySWQiLCAgIHNpemVvZiAoQUNQSV9UQUJMRV9HRU5FUkFUT1JfSUQpLCAgICAgICAiMHgleCIs ICAgICAgICAgICAgIE5VTEwgICAgICAgfSwNCj4gKyAgeyAiQWNwaVRhYmxlRGF0YSIsICAgICAg c2l6ZW9mIChFRklfQUNQSV9ERVNDUklQVElPTl9IRUFERVIgKiksICIweCVwIiwgICAgICAgICAg ICAgTlVMTCAgICAgICB9LA0KPiArICB7ICJPZW1UYWJsZUlkIiwgICAgICAgICA4LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVjJWMlYyVjJWMlYyVjJWMiLCBQcmludENo YXI4IH0sDQo+ICsgIHsgIk9lbVJldmlzaW9uIiwgICAgICAgIDQsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiMHgleCIsICAgICAgICAgICAgIE5VTEwgICAgICAgfSwNCj4g KyAgeyAiTWlub3JSZXZpc2lvbiIsICAgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIweCV4IiwgICAgICAgICAgICAgTlVMTCAgICAgICB9LA0KPiAgIH07DQo+DQo+ ICAgLyoqIEEgcGFyc2VyIGZvciBFU3RkT2JqU21iaW9zVGFibGVMaXN0Lg0KPiBAQCAtNzczLDIy ICs3OTcsOTkgQEAgU1RBVElDIENPTlNUIENNX09CSl9QQVJTRVJfQVJSQVkgIFN0ZE5hbWVzcGFj ZU9iamVjdFBhcnNlcltdID0gew0KPiAgICAgICBBUlJBWV9TSVpFIChTdGRPYmpTbWJpb3NUYWJs ZUluZm9QYXJzZXIpIH0sDQo+ICAgfTsNCj4NCj4gLS8qKiBQcmludCBPRU0gSWQuDQo+ICsvKiog UHJpbnQgc3RyaW5nIGRhdGEuDQo+ICsNCj4gKyAgVGhlIHN0cmluZyBtdXN0IGJlIE5VTEwgdGVy bWluYXRlZC4NCj4gKw0KPiArICBAcGFyYW0gW2luXSAgRm9ybWF0ICBGb3JtYXQgdG8gcHJpbnQg dGhlIFB0ci4NCj4gKyAgQHBhcmFtIFtpbl0gIFB0ciAgICAgUG9pbnRlciB0byB0aGUgc3RyaW5n Lg0KPiArKiovDQo+ICtTVEFUSUMNCj4gK1ZPSUQNCj4gK0VGSUFQSQ0KPiArUHJpbnRTdHJpbmcg KA0KPiArICBJTiBDT05TVCBDSEFSOCAgKkZvcm1hdCwNCj4gKyAgSU4gVUlOVDggICAgICAgICpQ dHINCj4gKyAgKQ0KPiArew0KPiArICBpZiAoUHRyID09IE5VTEwpIHsNCj4gKyAgICBBU1NFUlQg KDApOw0KPiArICAgIHJldHVybjsNCj4gKyAgfQ0KPiArDQo+ICsgIERFQlVHICgoREVCVUdfRVJS T1IsICIlYSIsIFB0cikpOw0KPiArfQ0KPiArDQo+ICsvKiogUHJpbnQgc3RyaW5nIGZyb20gcG9p bnRlci4NCj4gKw0KPiArICBUaGUgc3RyaW5nIG11c3QgYmUgTlVMTCB0ZXJtaW5hdGVkLg0KPiAr DQo+ICsgIEBwYXJhbSBbaW5dICBGb3JtYXQgICAgICBGb3JtYXQgdG8gcHJpbnQgdGhlIHN0cmlu Zy4NCj4gKyAgQHBhcmFtIFtpbl0gIFB0ciAgICAgICAgIFBvaW50ZXIgdG8gdGhlIHN0cmluZyBw b2ludGVyLg0KPiArKiovDQo+ICtTVEFUSUMNCj4gK1ZPSUQNCj4gK0VGSUFQSQ0KPiArUHJpbnRT dHJpbmdQdHIgKA0KPiArICBJTiBDT05TVCBDSEFSOCAgKkZvcm1hdCwNCj4gKyAgSU4gVUlOVDgg ICAgICAgICpQdHINCj4gKyAgKQ0KPiArew0KPiArICBVSU5UOCAgKlN0cmluZzsNCj4gKw0KPiAr ICBpZiAoUHRyID09IE5VTEwpIHsNCj4gKyAgICBBU1NFUlQgKDApOw0KPiArICAgIHJldHVybjsN Cj4gKyAgfQ0KPiArDQo+ICsgIFN0cmluZyA9ICooVUlOVDggKiopUHRyOw0KPiArDQo+ICsgIGlm IChTdHJpbmcgPT0gTlVMTCkgew0KPiArICAgIFN0cmluZyA9IChVSU5UOCAqKSIoTlVMTFBUUiki Ow0KPiArICB9DQo+ICsNCj4gKyAgUHJpbnRTdHJpbmcgKEZvcm1hdCwgU3RyaW5nKTsNCj4gK30N Cj4gKw0KPiArLyoqIFByaW50IDQgY2hhcmFjdGVycy4NCj4NCj4gICAgIEBwYXJhbSBbaW5dICBG b3JtYXQgIEZvcm1hdCB0byBwcmludCB0aGUgUHRyLg0KPiAtICBAcGFyYW0gW2luXSAgUHRyICAg ICBQb2ludGVyIHRvIHRoZSBPRU0gSWQuDQo+ICsgIEBwYXJhbSBbaW5dICBQdHIgICAgIFBvaW50 ZXIgdG8gdGhlIGNoYXJhY3RlcnMuDQo+ICAgKiovDQo+ICAgU1RBVElDDQo+ICAgVk9JRA0KPiAg IEVGSUFQSQ0KPiAtUHJpbnRPZW1JZCAoDQo+ICtQcmludENoYXI0ICgNCj4gICAgIElOICBDT05T VCBDSEFSOCAgKkZvcm1hdCwNCj4gICAgIElOICBVSU5UOCAgICAgICAgKlB0cg0KPiAgICAgKQ0K PiAgIHsNCj4gICAgIERFQlVHICgoDQo+IC0gICAgREVCVUdfSU5GTywNCj4gLSAgICAoRm9ybWF0 ICE9IE5VTEwpID8gRm9ybWF0IDogIiVDJUMlQyVDJUMlQyIsDQo+ICsgICAgREVCVUdfRVJST1Is DQo+ICsgICAgKEZvcm1hdCAhPSBOVUxMKSA/IEZvcm1hdCA6ICIlYyVjJWMlYyIsDQo+ICsgICAg UHRyWzBdLA0KPiArICAgIFB0clsxXSwNCj4gKyAgICBQdHJbMl0sDQo+ICsgICAgUHRyWzNdDQo+ ICsgICAgKSk7DQo+ICt9DQo+ICsNCj4gKy8qKiBQcmludCA2IGNoYXJhY3RlcnMuDQo+ICsNCj4g KyAgQHBhcmFtIFtpbl0gIEZvcm1hdCAgRm9ybWF0IHRvIHByaW50IHRoZSBQdHIuDQo+ICsgIEBw YXJhbSBbaW5dICBQdHIgICAgIFBvaW50ZXIgdG8gdGhlIGNoYXJhY3RlcnMuDQo+ICsqKi8NCj4g K1NUQVRJQw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtQcmludENoYXI2ICgNCj4gKyAgSU4gIENP TlNUIENIQVI4ICAqRm9ybWF0LA0KPiArICBJTiAgVUlOVDggICAgICAgICpQdHINCj4gKyAgKQ0K PiArew0KPiArICBERUJVRyAoKA0KPiArICAgIERFQlVHX0VSUk9SLA0KPiArICAgIChGb3JtYXQg IT0gTlVMTCkgPyBGb3JtYXQgOiAiJWMlYyVjJWMlYyVjIiwNCj4gICAgICAgUHRyWzBdLA0KPiAg ICAgICBQdHJbMV0sDQo+ICAgICAgIFB0clsyXSwNCj4gQEAgLTc5OCwyMiArODk5LDMxIEBAIFBy aW50T2VtSWQgKA0KPiAgICAgICApKTsNCj4gICB9DQo+DQo+IC0vKiogUHJpbnQgc3RyaW5nLg0K PiAtDQo+IC0gIFRoZSBzdHJpbmcgbXVzdCBiZSBOVUxMIHRlcm1pbmF0ZWQuDQo+ICsvKiogUHJp bnQgOCBjaGFyYWN0ZXJzLg0KPg0KPiAgICAgQHBhcmFtIFtpbl0gIEZvcm1hdCAgRm9ybWF0IHRv IHByaW50IHRoZSBQdHIuDQo+IC0gIEBwYXJhbSBbaW5dICBQdHIgICAgIFBvaW50ZXIgdG8gdGhl IHN0cmluZy4NCj4gKyAgQHBhcmFtIFtpbl0gIFB0ciAgICAgUG9pbnRlciB0byB0aGUgY2hhcmFj dGVycy4NCj4gICAqKi8NCj4gICBTVEFUSUMNCj4gICBWT0lEDQo+ICAgRUZJQVBJDQo+IC1Qcmlu dFN0cmluZyAoDQo+IC0gIENPTlNUIENIQVI4ICAqRm9ybWF0LA0KPiAtICBVSU5UOCAgICAgICAg KlB0cg0KPiArUHJpbnRDaGFyOCAoDQo+ICsgIElOICBDT05TVCBDSEFSOCAgKkZvcm1hdCwNCj4g KyAgSU4gIFVJTlQ4ICAgICAgICAqUHRyDQo+ICAgICApDQo+ICAgew0KPiAtICBERUJVRyAoKERF QlVHX0VSUk9SLCAiJWEiLCBQdHIpKTsNCj4gKyAgREVCVUcgKCgNCj4gKyAgICBERUJVR19FUlJP UiwNCj4gKyAgICAoRm9ybWF0ICE9IE5VTEwpID8gRm9ybWF0IDogIiVjJWMlYyVjJWMlYyVjJWMi LA0KPiArICAgIFB0clswXSwNCj4gKyAgICBQdHJbMV0sDQo+ICsgICAgUHRyWzJdLA0KPiArICAg IFB0clszXSwNCj4gKyAgICBQdHJbNF0sDQo+ICsgICAgUHRyWzVdLA0KPiArICAgIFB0cls2XSwN Cj4gKyAgICBQdHJbN10NCj4gKyAgICApKTsNCj4gICB9DQo+DQo+ICAgLyoqIFByaW50IGZpZWxk cyBvZiB0aGUgb2JqZWN0cy4NCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBM aW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9S ZXBseSBPbmxpbmUgKCMxMDk0OTUpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVz c2FnZS8xMDk0OTUKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDE4MDEz OTAvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJz Y3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVu ZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==