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 C61069418BC for ; Mon, 31 Jul 2023 20:15:07 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=4XGKJ+iUKOPhK24B1oWwtMFHXgQRoBZf2c7auKC82pg=; c=relaxed/simple; d=groups.io; h=X-Received:X-Received:X-Received:X-Received:X-MS-Exchange-Authentication-Results:Received-SPF:X-Received:X-Received:X-CheckRecipientChecked:X-CR-MTA-CID:X-CR-MTA-TID:X-Received:X-Received:ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:X-Received:X-Received:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:X-MS-Has-Attach:X-MS-TNEF-Correlator:x-ts-tracking-id:Authentication-Results-Original:x-ms-traffictypediagnostic:X-MS-Office365-Filtering-Correlation-Id:x-checkrecipientrouted:nodisclaimer:X-MS-Exchange-SenderADCheck:X-MS-Exchange-AntiSpam-Relay:X-Microsoft-Antispam-Untrusted:X-Microsoft-Antispam-Message-Info-Original:X-Forefront-Antispam-Report-Untrusted:MIME-Version:X-MS-Exchange-Transport-CrossTenantHeadersStamped:Original-Authentication-Results:X-EOPAttributedMessage:X-MS-Exchange-Transport-CrossTenantHeadersStripped:X-MS-PublicTrafficType:X-MS-Office365-Filtering-Correlation-Id-Prvs:X-Microsoft-Antispam-Message-Inf o:X-OriginatorOrg:X-MS-Exchange-CrossTenant-OriginalArrivalTime:X-MS-Exchange-CrossTenant-Network-Message-Id:X-MS-Exchange-CrossTenant-Id:X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp:X-MS-Exchange-CrossTenant-AuthSource:X-MS-Exchange-CrossTenant-AuthAs:X-MS-Exchange-CrossTenant-FromEntityHeader:X-MS-Exchange-Transport-CrossTenantHeadersStamped:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:X-Gm-Message-State:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1690834506; v=1; b=eUEjWEvv/wUORWzb/U3q6lyl5uqaKkgh3/dJSEke4zFTa5GX3wicA1UrCRt/F9Lf7cHBeE8R PDefqzTIS0SKgs1x7v63Xkqi7BejdVCgZMjXuEXM2cXqVT90TetPF5waiqIzNMmlJFYCAynsh1E VxK1dkMK3AVq4NB4ombDDbJI= X-Received: by 127.0.0.2 with SMTP id zlZAYY7687511xdMHFhU4qgJ; Mon, 31 Jul 2023 13:15:06 -0700 X-Received: from EUR02-VI1-obe.outbound.protection.outlook.com (EUR02-VI1-obe.outbound.protection.outlook.com [40.107.241.48]) by mx.groups.io with SMTP id smtpd.web11.2600.1690834504502665948 for ; Mon, 31 Jul 2023 13:15:05 -0700 X-Received: from DB8PR09CA0034.eurprd09.prod.outlook.com (2603:10a6:10:a0::47) by GV1PR08MB8450.eurprd08.prod.outlook.com (2603:10a6:150:82::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31; Mon, 31 Jul 2023 20:14:51 +0000 X-Received: from DBAEUR03FT049.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:a0:cafe::cd) by DB8PR09CA0034.outlook.office365.com (2603:10a6:10:a0::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.43 via Frontend Transport; Mon, 31 Jul 2023 20:14:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C X-Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT049.mail.protection.outlook.com (100.127.142.192) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.44 via Frontend Transport; Mon, 31 Jul 2023 20:14:50 +0000 X-Received: ("Tessian outbound f5de790fcf89:v145"); Mon, 31 Jul 2023 20:14:50 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: a14db4eac74faef1 X-CR-MTA-TID: 64aa7808 X-Received: from 16b3fd2650e2.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 36BBAFE9-5320-4A87-A4B1-0B7E7582C308.1; Mon, 31 Jul 2023 20:14:38 +0000 X-Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 16b3fd2650e2.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 31 Jul 2023 20:14:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XjrTsdXbiDtOMrJiJdjcJGF5zJdkUNMVknvHttOrHHAX3G5Xk1zenaomdCUlkF8O6zcHV/CLmEV1MQjwT0Ef0MB5J7ainSZP7c63mvZXuXBYiejuaeJ88kjjKWAb+BI2CooAC4cOrj7jHMviTQLXEYYUMFnwyQUGfxzhI8wOuZ1f5le4fPFDCH8xAe0c5rTf66JyVRw+5Gp4ktRSzaciN8Q7AkmsxqeEFDDo8NmknwkwRSttFUXeNmyckaRWpvTiNPBy26AH0iiYraAeJRJIOELo6yBTfuLxozG4TJ+N0PHbZgeO+DmftN4lHg00vJGJ5gr3G/ZXQtm1Y2epxlGG0g== 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=FzWUSBH1A5BkUqErJBvuQRvGNr5gvpqjGE0iMdCEsjw=; b=FRO58576feFwStxt8LhfiB5WBjO78xyBNAIl+JMc7BQJb+zWUipAMGH2y0dtSOl7eKxaT9cs/0iquw3rsIO+eLrDhpAVoMuF0GHP7VHvF901mnMoWi1qJo2rUveIh5o5Ut4hqzHGi8Mas7NcyCncQKJ5iqhph0Iz8hiP8SFIPhFTk+ic+yMRxsBtzPb8oOj72e6XHnQ1q/73sRVSZwH3L823zkinwC8WLQMjvnWxT879Hj5ORP2HnbuGi2XjFGZAqZRXbbJvGrmQC/veeDm79r14FQV550uRxUzS9N0/vxUEsxjkfV5el4ARl2rC92sMFqvyE/Uo17cSNXva3Yfx2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none X-Received: from AM6PR08MB3783.eurprd08.prod.outlook.com (2603:10a6:20b:8a::13) by PAWPR08MB8792.eurprd08.prod.outlook.com (2603:10a6:102:335::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.42; Mon, 31 Jul 2023 20:14:35 +0000 X-Received: from AM6PR08MB3783.eurprd08.prod.outlook.com ([fe80::d8fc:fefa:d63b:74f5]) by AM6PR08MB3783.eurprd08.prod.outlook.com ([fe80::d8fc:fefa:d63b:74f5%5]) with mapi id 15.20.6631.043; Mon, 31 Jul 2023 20:14:35 +0000 From: "Rohit Mathew" To: Pierre Gondois , "devel@edk2.groups.io" CC: Thomas Abraham , Sami Mujawar , James Morse , Ray Ni , Zhichao Gao , nd Subject: Re: [edk2-devel] [PATCH V3 3/3] ShellPkg/AcpiView: Add MPAM Parser Thread-Topic: [edk2-devel] [PATCH V3 3/3] ShellPkg/AcpiView: Add MPAM Parser Thread-Index: AQHZux5eoG2wGh4yBkiE9zmUG6eNZ6/IrSIggABWMACAAAgi4IABfY0AgAnNwiA= Date: Mon, 31 Jul 2023 20:14:33 +0000 Message-ID: References: <20230522144506.2799121-1-Rohit.Mathew@arm.com> <3bf3780a-b064-1d60-78ed-0e323726adc7@arm.com> <19e06d50-aa28-48e9-ace3-63b8640a1156@arm.com> In-Reply-To: <19e06d50-aa28-48e9-ace3-63b8640a1156@arm.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 39DE18A3B9BB6346911405E100BD25DE.0 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AM6PR08MB3783:EE_|PAWPR08MB8792:EE_|DBAEUR03FT049:EE_|GV1PR08MB8450:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e38a002-36e2-4534-d71d-08db9202cbbd x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: +ZvRy34XXqIWrLqh6Xbyx6XJrdP+28Lvf9rm9pjJTZBSxBTgG4IIJJCsNbDDQKX1Qdyrmrdz/oKDzDE6hrPxbqzYQ/3IjsUQ0kAoqdZslow8h9kh1FdBbcO6jhnrmw1URIAPqoIygZl0hquSFmJlNB/amM3FOpAMjm/h1WfOA8v00hOiYvBb8Db+69r70LlmtIhA4uN13cIQtS/B6+q7PEJJIaHtqktegWP8zM0qDCeOFFrANMB7yGeaHStLFIobxZxvMmnfob5npgK5Rd/9NYVVYM8j8dvvxyCXNoFiStQxfSX6UCfMlIv6JRfUOB8b9xo0UWqufGls4uH45XyE80f1bGgRtmYarAhbqOuChF4QtNu3Be4PHexq+Sc6G07MrZ/JcyRvJIEma6f3s4/6MPxi26fvWipv8eFANeDvTdP++JoX2fGXlSrPBt361+vWqCBcnsq7hwX9IhGPAoVkoUWbGz/r2PffomI1pH83XxWSBY7I71xaehZJcWOnAcQdt1rLDjoUewsmgWYGI7HdgmWxrsEBR9O4dmXAO+4AZAFRsZJtoFXW3qPFLOqa8QBK/0J7MAATJC0dkEI4y/COuNKhtPmhW5QMqtMX+Z8pJlGCBJ2/qQass9z+y1itJoLK X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3783.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(346002)(396003)(376002)(366004)(136003)(451199021)(478600001)(38100700002)(122000001)(55016003)(86362001)(33656002)(38070700005)(9686003)(71200400001)(7696005)(186003)(26005)(8676002)(8936002)(6506007)(5660300002)(52536014)(76116006)(4326008)(2906002)(66946007)(66446008)(66556008)(66476007)(64756008)(54906003)(19627235002)(41300700001)(110136005)(316002)(30864003)(83380400001);DIR:OUT;SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8792 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b3cf70fe-3849-416e-a413-08db9202c180 X-Microsoft-Antispam-Message-Info: xeX9JlrKeUENrY0b22P8wb4nzz14BVeyTCg+LQUe1QkbjdxV6RWLh9G2Why0fHpHpjQq894G2gA7ufoYH+AUTvouxSwPZAz4A2B55OsqqhvIjXcjNUIqps32Ex5sa9bZmE+NuKBJwlHBCJVo29pd3LNs+TOlfJ72uqvxTyOhp6t5f5C53UN8bbdM09w7nfxEuidnfTl2uVvflcb3eDXjox2bTNhVbOnmGY11mGfiwsgTO3yMQhQFsuuREjZz7LqMQdBjYMDDzsSbwiqZizo0DN75HgQPBUiZJWGogMpQMBA5uvz9j1auwloWxJmKKkqsIALiLmkdwHXz0SdK6jt28eI14F9zQitzcL20RRRtMGNHqC6RWSBhwcbhuwn/k+uKQUTesLabE9LdOe5RvjaMsbmD28u7pyvOpZI2UYFvL+lV4Z04gRlsXKCaTcVfbB22nhKh/gxcd7RyVSgoOK2DFrF9ggTIMvDsH9B3Nq8NVC8Lit/LzoM0vP23M7AIO4koihdKnb6rgg64Dn2aaUDg3ZJyoy+a1kc1UnQQlGmO//bLUA3ZZkk1EEgRWR5rVJaRqOWI+W2m1gIRpX6pOsWh+oS6+NNtSMDU2cf21u3jxXFpPtKrGwMhejLeHzkfs/5d9cou+i2D3IG8ifHebEr8/lnyrfGutqv4MO8BryLnRa2oPopPtoBZ/YecjnDZJTwHwAK3ky3+oDB+O3UQ6qmrLPbcNlTHQ/4h30Y3YZPNXAS1TwyGe2fsbNWxdaewA79P X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2023 20:14:50.8707 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5e38a002-36e2-4534-d71d-08db9202cbbd X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8450 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,rohit.mathew@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: worzNCdCEhQUDowT3BmoO2tTx7686176AA= 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=eUEjWEvv; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=arm.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io SGkgUGllcnJlLA0KDQpBcG9sb2dpZXMgZm9yIHRoZSBkZWxheSBpbiByZXNwb25zZS4NCg0Kfn4N Cg0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsvKioNCj4gPj4+Pj4gKyAgVGhpcyBmdW5jdGlvbiBwYXJz ZXMgdGhlIGxvY2F0b3IgZmllbGQgd2l0aGluIHRoZSByZXNvdXJjZSBub2RlIGZvcg0KPiBBQ1BJ DQo+ID4+Pj4gTVBBTQ0KPiA+Pj4+PiArICB0YWJsZS4gVGhlIHBhcnNpbmcgaXMgYmFzZWQgb24g dGhlIGxvY2F0b3IgdHlwZSBmaWVsZC4NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICBUaGlzIGZ1bmN0 aW9uIGFsc28gcGVyZm9ybXMgdmFsaWRhdGlvbiBvZiB0aGUgbG9jYXRvciBmaWVsZC4NCj4gPj4+ Pj4gKyAqKi8NCj4gPj4+Pj4gK1NUQVRJQw0KPiA+Pj4+PiArVk9JRA0KPiA+Pj4+PiArRUZJQVBJ DQo+ID4+Pj4+ICtQYXJzZUxvY2F0b3IgKA0KPiA+Pj4+PiArICBWT0lEDQo+ID4+Pj4+ICsgICkN Cj4gPj4+Pj4gK3sNCj4gPj4+Pj4gKyAgVUlOVDggICpMb2NhdG9yUHRyOw0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICsgIExvY2F0b3JQdHIgPSBMb2NhdG9yOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgIHN3 aXRjaCAoKkxvY2F0b3JUeXBlKSB7DQo+ID4+Pj4NCj4gPj4+PiBJIHRoaW5rIGl0IHdvdWxkIGJl IHNpbXBsZXIgdG8gZGVmaW5lIG5hbWVzIGFzOg0KPiA+Pj4+DQo+ID4+Pj4gU1RBVElDIENPTlNU IENIQVIxNiAgKk1wYW1Mb2NhdGlvbk5hbWVzW10gPSB7DQo+ID4+Pj4gICAgICBMIlByb2Nlc3Nv ciBjYWNoZSIsDQo+ID4+Pj4gICAgICBMIk1lbW9yeSIsDQo+ID4+Pj4gICAgICAuLi4NCj4gPj4+ Pg0KPiA+Pj4+IGFuZCBhbHNvIHRvIGRlZmluZSBBQ1BJX1BBUlNFUiB0YWJsZXMgZm9yIHRoZSBs b2NhdG9yIGRlc2NyaXB0b3JzDQo+ID4+Pj4gaW5zdGVhZCBvZiB1c2luZyBQcmludEdlbmVyaWNM b2NhdG9yRGVzY3JpcHRvcigpLg0KPiA+Pj4+IEVnOg0KPiA+Pj4+IFNUQVRJQyBDT05TVCBBQ1BJ X1BBUlNFUiAgU21tdUxvY2F0b3JEZXNjcmlwdG9yUGFyc2VyW10gPSB7DQo+ID4+Pj4gICAgICB7 IEwiU01NVSBpbnRlcmZhY2UiLCA4LCAwLCBMIiVsdSIsICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVM TCB9LA0KPiA+Pj4+ICAgICAgeyBMIlJlc2VydmVkIElEIiwgNCwgOCwgTCIldSIsIE5VTEwsIE5V TEwsIFZhbGlkYXRlUmVzZXJ2ZWRHZW5lcmljLA0KPiA+PiAoVk9JRA0KPiA+Pj4+ICopMiB9LA0K PiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gW1JvaGl0XSBUaGUgb25seSByZWFzb24gSSBkaWQgbm90IHdh bnQgdG8gZG8gdGhpcyB3YXMgdG8gYXZvaWQgbWFudWFsbHkNCj4gPj4gbW92aW5nIHRoZSBvZmZz ZXQgYmFjayBieSB4IGJ5dGVzIHRvIHJlcGFyc2UgdGhlIGxvY2F0b3IuIFdlIHBhcnNlIHRoZQ0K PiBsb2NhdG9yDQo+ID4+IHVzaW5nIE1wYW1Nc2NSZXNvdXJjZUxvY2F0b3JQYXJzZXIuIElmIHdl IHdvdWxkIG5lZWQgdG8gdXNlDQo+ID4+IEFDUElfUEFSU0VSLCB3ZSB3b3VsZCBuZWVkIHRvIHN0 ZXAgYmFjayBieSAxMiBieXRlcyAoYXNzdW1pbmcgb2Zmc2V0IGlzDQo+ID4+IHVzZWQgcmlnaHQg YWZ0ZXIgd2UgcGFyc2UgdGhlIGxvY2F0b3IpIGFuZCByZXBhcnNlIHRoZSBsb2NhdG9yIHVuZGVy IHRoZQ0KPiA+PiByZXNwZWN0aXZlIHN3aXRjaCBjYXNlLiBXZSBtaWdodCBub3QgYmUgYWJsZSB0 byBza2lwDQo+ID4+IE1wYW1Nc2NSZXNvdXJjZUxvY2F0b3JQYXJzZXIgYXMNCj4gPj4gRUZJX0FD UElfTVBBTV9MT0NBVElPTl9NRU1PUllfQ0FDSEUgY2FuJ3QgYmUgcGFyc2VkIGJ5DQo+ID4+IEFD UElfUEFSU0VSLiBXb3VsZCB0aGlzIGJlIGNsZWFuZXIsIHdoYXQgYXJlIHlvdXIgdGhvdWdodHM/ DQo+ID4+DQo+ID4+IE9rIHJpZ2h0LCBJIG1pc3JlYWQgdGhlIHN0cnVjdHVyZSB0aGUgZmlyc3Qg dGltZS4NCj4gPj4gSW4gdGhhdCBjYXNlLCB3b3VsZCBpdCBiZSBwb3NzaWJsZSB0byB1c2UgUGFy c2VMb2NhdG9yKCkgKG9yIGEgcmVtYWtlIG9mIHRoZQ0KPiA+PiBmdW5jdGlvbikNCj4gPj4gYXMg YSBBQ1BJX1BBUlNFUidzIFByaW50Rm9ybWF0dGVyKCkgY2FsbGJhY2sgPw0KPiA+Pg0KPiA+PiBD Zi4gdGhlIGNvbW1lbnQgYmVsb3csIEkgdGhpbmsgdGhpcyBzaG91bGQgYmUgcG9zc2libGUgdG8g cGFyc2UgYQ0KPiA+PiBFRklfQUNQSV9NUEFNX0xPQ0FUSU9OX01FTU9SWV9DQUNIRQ0KPiA+PiBz dHJ1Y3QgdXNpbmcgYSBBQ1BJX1BBUlNFUiBzdHJ1Y3R1cmUuDQo+ID4+DQo+ID4NCj4gPiBbUm9o aXRdIFByaW50Rm9tYXR0ZXIgd291bGQgb25seSBiZSBjYWxsZWQgZm9yIGEgY2FsbCB3aXRoIFRy YWNlID0gVFJVRS4gV2hpbGUNCj4gcGFyc2luZyBNcGFtTXNjUmVzb3VyY2VMb2NhdG9yUGFyc2Vy LCBUcmFjZSBpcyBzZXQgdG8gRkFMU0UuDQo+ID4NCj4gPiAvLyBTbmlwcGV0DQo+ID4gICAgICBp ZiAoVHJhY2UpIHsNCj4gPiAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBGb3JtYXR0ZXIgZnVuY3Rp b24gbGV0IHRoZSBmdW5jdGlvbiBoYW5kbGUNCj4gPiAgICAgICAgLy8gdGhlIHByaW50aW5nIGVs c2UgaWYgYSBGb3JtYXQgaXMgc3BlY2lmaWVkIGluIHRoZSB0YWJsZSB1c2UNCj4gPiAgICAgICAg Ly8gdGhlIEZvcm1hdCBmb3IgcHJpbnRpbmcNCj4gPiAgICAgICAgUHJpbnRGaWVsZE5hbWUgKDIs IFBhcnNlcltJbmRleF0uTmFtZVN0cik7DQo+ID4gICAgICAgIGlmIChQYXJzZXJbSW5kZXhdLlBy aW50Rm9ybWF0dGVyICE9IE5VTEwpIHsNCj4gPiAgICAgICAgICBQYXJzZXJbSW5kZXhdLlByaW50 Rm9ybWF0dGVyIChQYXJzZXJbSW5kZXhdLkZvcm1hdCwgUHRyKTsNCj4gPg0KPiANCj4gSUlVQywg VHJhY2UgPSBGYWxzZSBmb3IgdGhlIE1wYW1Nc2NSZXNvdXJjZUxvY2F0b3JQYXJzZXIgc3RydWN0 IGJlY2F1c2Ugd2UNCj4ganVzdA0KPiB3YW50IHRvIHBvcHVsYXRlIHRoZSAnTG9jYXRvcicsIGFu ZCBsZXQgUGFyc2VMb2NhdG9yKCkgcHJpbnQvcGFyc2UgdGhlIGZpZWxkcy4NCj4gDQo+IElmIGEg UHJpbnRGb21hdHRlcigpIGNhbGxiYWNrIGlzIGltcGxlbWVudGVkLCB0aGUgJ0xvY2F0b3InIG9m ZnNldCB3b3VsZG4ndA0KPiBuZWVkIHRvIGJlIHBvcHVsYXRlZCBhbnltb3JlLCB0aGUgcHJpbnRp bmcvcGFyc2luZyB3b3VsZCBkaXJlY3RseSBoYXBwZW4NCj4gaW4gdGhlIFByaW50Rm9tYXR0ZXIo KS4gRG8geW91IHRoaW5rIGl0IGNvdWxkIHdvcmsgPw0KDQpbUm9oaXRdIFRoZSBmb3JtYXQgZm9y IFByaW50Rm9tYXR0ZXIgaXMgYXMgZm9sbG93cyAtIA0KU1RBVElDIFZPSUQgKCpGTikoQ09OU1Qg Q0hBUjE2ICpGb3JtYXQsIFVJTlQ4ICpQdHIpLg0KDQpUaGlzIHdvdWxkIG1lYW4gdGhhdCB3ZSBo YXZlIGFjY2VzcyB0byBQdHIgdG8gd2hhdGV2ZXIgZmllbGQgd2UgaW1wbGVtZW50IHRoaXMgY2Fs bGJhY2sgZm9yLCBidXQgbm90IHRoZSBPZmZzZXQgYW5kIEFjcGlUYWJsZUxlbmd0aC4gQSB3YXkg YXJvdW5kIHRoaXMgd291bGQgYmUgdG8gaGF2ZSBPZmZzZXQgYW5kIEFjcGlUYWJsZUxlbmd0aCBh cyBnbG9iYWxzLCBidXQgdGhpcyBzZWVtcyBsZXNzIGNsZWFuIGluIG15IG9waW5pb24uDQoNCj4g DQo+ID4NCj4gPj4+DQo+ID4+Pj4NCj4gPj4+Pj4gKyAgICBjYXNlIEVGSV9BQ1BJX01QQU1fTE9D QVRJT05fUFJPQ0VTU09SX0NBQ0hFOg0KPiA+Pj4+PiArICAgICAgUHJpbnRHZW5lcmljTG9jYXRv ckRlc2NyaXB0b3IgKA0KPiA+Pj4+PiArICAgICAgICA0LA0KPiA+Pj4+PiArICAgICAgICBMIlBy b2Nlc3NvciBjYWNoZSIsDQo+ID4+Pj4+ICsgICAgICAgIEwiKiBDYWNoZSByZWZlcmVuY2UiLA0K PiA+Pj4+PiArICAgICAgICBMIiogUmVzZXJ2ZWQiLA0KPiA+Pj4+PiArICAgICAgICBMb2NhdG9y UHRyLA0KPiA+Pj4+PiArICAgICAgICBUUlVFDQo+ID4+Pj4+ICsgICAgICAgICk7DQo+ID4+Pj4+ ICsgICAgICBicmVhazsNCj4gPj4+Pj4gKyAgICBjYXNlIEVGSV9BQ1BJX01QQU1fTE9DQVRJT05f TUVNT1JZOg0KPiA+Pj4+PiArICAgICAgUHJpbnRHZW5lcmljTG9jYXRvckRlc2NyaXB0b3IgKA0K PiA+Pj4+PiArICAgICAgICA0LA0KPiA+Pj4+PiArICAgICAgICBMIk1lbW9yeSIsDQo+ID4+Pj4+ ICsgICAgICAgIEwiKiBQcm94aW1pdHkgZG9tYWluIiwNCj4gPj4+Pj4gKyAgICAgICAgTCIqIFJl c2VydmVkIiwNCj4gPj4+Pj4gKyAgICAgICAgTG9jYXRvclB0ciwNCj4gPj4+Pj4gKyAgICAgICAg VFJVRQ0KPiA+Pj4+PiArICAgICAgICApOw0KPiA+Pj4+PiArICAgICAgYnJlYWs7DQo+ID4+Pj4+ ICsgICAgY2FzZSBFRklfQUNQSV9NUEFNX0xPQ0FUSU9OX1NNTVU6DQo+ID4+Pj4+ICsgICAgICBQ cmludEdlbmVyaWNMb2NhdG9yRGVzY3JpcHRvciAoDQo+ID4+Pj4+ICsgICAgICAgIDQsDQo+ID4+ Pj4+ICsgICAgICAgIEwiU01NVSIsDQo+ID4+Pj4+ICsgICAgICAgIEwiKiBTTU1VIGludGVyZmFj ZSIsDQo+ID4+Pj4+ICsgICAgICAgIEwiKiBSZXNlcnZlZCIsDQo+ID4+Pj4+ICsgICAgICAgIExv Y2F0b3JQdHIsDQo+ID4+Pj4+ICsgICAgICAgIFRSVUUNCj4gPj4+Pj4gKyAgICAgICAgKTsNCj4g Pj4+Pj4gKyAgICAgIGJyZWFrOw0KPiA+Pj4+PiArICAgIGNhc2UgRUZJX0FDUElfTVBBTV9MT0NB VElPTl9NRU1PUllfQ0FDSEU6DQo+ID4+Pj4NCj4gPj4+PiBUaGUgY29kZSB3b3VsZCBiZSBtb3Jl IGdlbmVyaWMgd2l0aCBBQ1BJX1BBUlNFUiBzdHJ1Y3R1cmVzIEkgdGhpbmsNCj4gPj4+DQo+ID4+ PiBbUm9oaXRdIEkgYmVsaWV2ZSBBQ1BJX1BBUlNFUiB3b24ndCBwYXJzZSBNZW1vcnktc2lkZSBj YWNoZSBsb2NhdG9yDQo+ID4+IGRlc2NyaXB0b3IgZHVlIHRvIGl0cyBvZGQgZmllbGQgbGVuZ3Ro Lg0KPiA+Pg0KPiA+PiBJIHRoaW5rIHRoZXJlIGlzIGEgc2ltaWxhciBjYXNlIGZvciB0aGUgUmVz ZXJ2ZWQgZmllbGQgb2YgdGhlICdHVCBCbG9jayBUaW1lcg0KPiA+PiBTdHJ1Y3R1cmUnLA0KPiA+ PiBDZiBBQ1BJIDYuNSwgVGFibGUgNS4xMjE6IEdUIEJsb2NrIFRpbWVyIFN0cnVjdHVyZSBGb3Jt YXQNCj4gPj4gYW5kIGluIHRoZSBHdGR0UGFyc2VyIGZvciB0aGUgR3RCbG9ja1RpbWVyUGFyc2Vy IHN0cnVjdHVyZS4NCj4gPj4NCj4gPj4gQSBEdW1wN0NoYXJzIGZ1bmN0aW9uIHdvdWxkIG5lZWQg dG8gYmUgYWRkZWQgZm9yIG91ciBjYXNlIEkgYmVsZWl2ZS4NCj4gPj4NCj4gPg0KPiA+IFtSb2hp dF0gSWYgd2UgYXJlIHRvIGdvIHdpdGggdGhlIEFDUElfUEFSU0VSUywgSSBjYW4gYWRkIHRoaXMu IEkgZG8gaGF2ZSBhDQo+IGNvbmNlcm4gb24gdXNpbmcgQUNQSV9QQVJTRVIgd2hpY2ggSSBoYXZl IGFkZGVkIGFib3ZlLg0KPiA+DQo+ID4+Pg0KPiA+Pj4gLy8gc25pcHBldCBmcm9tIEFDUElfUEFS U0VSJ3MgY29kZQ0KPiA+Pj4NCj4gPj4+ICAgICAgICAgIHN3aXRjaCAoUGFyc2VyW0luZGV4XS5M ZW5ndGgpIHsNCj4gPj4+ICAgICAgICAgICAgIGNhc2UgMToNCj4gPj4+ICAgICAgICAgICAgICAg RHVtcFVpbnQ4IChQYXJzZXJbSW5kZXhdLkZvcm1hdCwgUHRyKTsNCj4gPj4+ICAgICAgICAgICAg ICAgYnJlYWs7DQo+ID4+PiAgICAgICAgICAgICBjYXNlIDI6DQo+ID4+PiAgICAgICAgICAgICAg IER1bXBVaW50MTYgKFBhcnNlcltJbmRleF0uRm9ybWF0LCBQdHIpOw0KPiA+Pj4gICAgICAgICAg ICAgICBicmVhazsNCj4gPj4+ICAgICAgICAgICAgIGNhc2UgNDoNCj4gPj4+ICAgICAgICAgICAg ICAgRHVtcFVpbnQzMiAoUGFyc2VyW0luZGV4XS5Gb3JtYXQsIFB0cik7DQo+ID4+PiAgICAgICAg ICAgICAgIGJyZWFrOw0KPiA+Pj4gICAgICAgICAgICAgY2FzZSA4Og0KPiA+Pj4gICAgICAgICAg ICAgICBEdW1wVWludDY0IChQYXJzZXJbSW5kZXhdLkZvcm1hdCwgUHRyKTsNCj4gPj4+ICAgICAg ICAgICAgICAgYnJlYWs7DQo+ID4+PiAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+Pj4gICAgICAg ICAgICAgICBQcmludCAoDQo+ID4+PiAgICAgICAgICAgICAgICAgTCJcbkVSUk9SOiAlYTogQ0FO Tk9UIFBBUlNFIFRISVMgRklFTEQsIEZpZWxkIExlbmd0aCA9ICVkXG4iLA0KPiA+Pj4gICAgICAg ICAgICAgICAgIEFzY2lpTmFtZSwNCj4gPj4+ICAgICAgICAgICAgICAgICBQYXJzZXJbSW5kZXhd Lkxlbmd0aA0KPiA+Pj4gICAgICAgICAgICAgICAgICk7DQo+ID4+PiAgICAgICAgICAgfSAvLyBz d2l0Y2gNCj4gPj4+DQo+ID4+PiBJIGhhdmUgbm90IHRlc3RlZCB0aGlzIC0gYnV0IEkgZG8gcmVt ZW1iZXIgc2VlaW5nIHN1Y2ggYSBiZWhhdmlvciBmb3INCj4gPj4gSW50ZXJjb25uZWN0IGRlc2Ny aXB0b3IncyByZXNlcnZlZCBmaWVsZC4NCj4gPj4+DQo+ID4+Pj4NCj4gPj4+Pj4gKyAgICAgIC8v IFByaW50R2VuZXJpY0xvY2F0b3JEZXNjcmlwdG9yIGNhbid0IGJlIHVzZWQgaGVyZSBhcyB0aGUg ZmllbGRzDQo+ID4+Pj4+ICsgICAgICAvLyBGb3IgYSBtZW1vcnkgY2FjaGUgbG9jYXRvciBkZXNj cmlwdG9yIGRvbid0IGZhbGwgaW4gdGhlIDY0Yml0LTMyDQo+IGJpdA0KPiA+Pj4+PiArICAgICAg Ly8gZmllbGQgbGVuZ3RoIGRpdmlzaW9uLiBQYXJzZSB0aGVzZSBmaWVsZHMgbWFudWFsbHkuDQo+ ID4+Pj4+ICsgICAgICBQcmludExvY2F0b3JUaXRsZSAoNCwgTCJNZW1vcnkgY2FjaGUiKTsNCj4g Pj4+Pj4gKw0KPiA+Pj4+PiArICAgICAgLy8gUGFyc2UgZmllbGQgMQ0KPiA+Pj4+PiArICAgICAg UHJpbnRMb2NhdG9yRGVzY3JpcHRvcjY0ICgNCj4gPj4+Pj4gKyAgICAgICAgNCwNCj4gPj4+Pj4g KyAgICAgICAgTCIqIFJlc2VydmVkIiwNCj4gPj4+Pj4gKyAgICAgICAgTVBBTV9NRU1PUllfTE9D QVRPUl9FWFRSQUNUX1JFU0VSVkVEX0ZJRUxEICgNCj4gPj4+Pj4gKyAgICAgICAgICAqKChVSU5U NjQgKikoTG9jYXRvclB0cikpDQo+ID4+Pj4+ICsgICAgICAgICAgKSwNCj4gPj4+Pj4gKyAgICAg ICAgVFJVRQ0KPiA+Pj4+PiArICAgICAgICApOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgICAv LyBQYXJzZSBmaWVsZCAyDQo+ID4+Pj4+ICsgICAgICBQcmludExvY2F0b3JEZXNjcmlwdG9yNjQg KA0KPiA+Pj4+PiArICAgICAgICA0LA0KPiA+Pj4+PiArICAgICAgICBMIiogTGV2ZWwiLA0KPiA+ Pj4+PiArICAgICAgICBNUEFNX01FTU9SWV9MT0NBVE9SX0VYVFJBQ1RfTEVWRUxfRklFTEQgKA0K PiA+Pj4+PiArICAgICAgICAgICooKFVJTlQ2NCAqKShMb2NhdG9yUHRyKSkNCj4gPj4+Pj4gKyAg ICAgICAgICApLA0KPiA+Pj4+PiArICAgICAgICBGQUxTRQ0KPiA+Pj4+PiArICAgICAgICApOw0K PiA+Pj4+PiArDQo+ID4+Pj4+ICsgICAgICBMb2NhdG9yUHRyICs9IHNpemVvZiAoVUlOVDY0KTsN Cj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICAgLy8gUGFyc2UgZmllbGQgMw0KPiA+Pj4+PiArICAg ICAgUHJpbnRMb2NhdG9yRGVzY3JpcHRvcjMyICgNCj4gPj4+Pj4gKyAgICAgICAgNCwNCj4gPj4+ Pj4gKyAgICAgICAgTCIqIFJlZmVyZW5jZSIsDQo+ID4+Pj4+ICsgICAgICAgICooKFVJTlQzMiAq KShMb2NhdG9yUHRyKSksDQo+ID4+Pj4+ICsgICAgICAgIEZBTFNFDQo+ID4+Pj4+ICsgICAgICAg ICk7DQo+ID4+Pj4+ICsgICAgICBicmVhazsNCj4gPj4+Pj4gKyAgICBjYXNlIEVGSV9BQ1BJX01Q QU1fTE9DQVRJT05fQUNQSV9ERVZJQ0U6DQo+ID4+Pj4+ICsgICAgICAvLyBBQ1BJIGhhcmR3YXJl IElEIHdvdWxkIGhhdmUgdG8gcHJpbnRlZCB2aWEgRHVtcDhDaGFycy4NCj4gPj4+Pj4gKyAgICAg IFByaW50TG9jYXRvclRpdGxlICg0LCBMIkFDUEkgZGV2aWNlIik7DQo+ID4+Pj4+ICsgICAgICBQ cmludEZpZWxkTmFtZSAoNCwgTCIqIEFDUEkgaGFyZHdhcmUgSUQiKTsNCj4gPj4+Pj4gKyAgICAg IER1bXA4Q2hhcnMgKE5VTEwsIExvY2F0b3JQdHIpOw0KPiA+Pj4+PiArICAgICAgUHJpbnQgKEwi XG4iKTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArICAgICAgTG9jYXRvclB0ciArPSBzaXplb2YgKFVJ TlQ2NCk7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAgIC8vIFBhcnNlIGZpZWxkIDINCj4gPj4+ Pj4gKyAgICAgIFByaW50TG9jYXRvckRlc2NyaXB0b3IzMiAoDQo+ID4+Pj4+ICsgICAgICAgIDQs DQo+ID4+Pj4+ICsgICAgICAgIEwiKiBBQ1BJIHVuaXF1ZSBJRCIsDQo+ID4+Pj4+ICsgICAgICAg ICooKFVJTlQzMiAqKShMb2NhdG9yUHRyKSksDQo+ID4+Pj4+ICsgICAgICAgIEZBTFNFDQo+ID4+ Pj4+ICsgICAgICAgICk7DQo+ID4+Pj4+ICsgICAgICBicmVhazsNCj4gPj4+Pj4gKyAgICBjYXNl IEVGSV9BQ1BJX01QQU1fTE9DQVRJT05fSU5URVJDT05ORUNUOg0KPiA+Pj4+DQo+ID4+Pj4gSSBt IG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB3aHkgUGFyc2VJbnRlcmNvbm5lY3REZXNjcmlwdG9yVGFi bGUgKCkNCj4gPj4+PiBpcyBub3QgY2FsbGVkIGZyb20gaGVyZSBhcyB0aGUgcG9pbnRlciB0byB0 aGUgc3RydWN0IGlzIGF2YWlsYWJsZSBoZXJlLg0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gW1JvaGl0 XSBBbGwgb2YgdGhlIGxvY2F0b3JzIGV4Y2VwdCBpbnRlcmNvbm5lY3QgbG9jYXRvciBoYXZlIHZl cnkgc2ltcGxlDQo+ID4+IHBhcnNpbmcgZm9yIHRoZWlyIGZpZWxkcy4gVGhpcyB3b3VsZCBtZWFu IGtlZXBpbmcgdGhlIHByb3RvdHlwZSBmb3INCj4gPj4gUGFyc2VMb2NhdG9yIHNpbXBsZSB3aXRo b3V0IGFueSBwYXJhbXMgcmVsYXRlZCB0byBBQ1BJIHBhcnNlciBwb2ludGVyLA0KPiBvZmZzZXQN Cj4gPj4gZXRjIHByb3ZpZGVkIHdlIG9mZmxvYWQgdGhlIGludGVyY29ubmVjdCBkZXNjcmlwdG9y J3MgaW50ZXJuYWwgcGFyc2luZyB0byBhDQo+ID4+IHNjb3BlIHdoZXJlIHdlIGhhdmUgdGhlc2Ug ZmllbGRzIGF2YWlsYWJsZS4gV2UgY291bGQgdmVyeSB3ZWxsIGRvIHRoZQ0KPiBwYXJzaW5nDQo+ ID4+IGludGVybmFsbHkgLSBob3dldmVyIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyB0aGUgcHJv dG90eXBlIGp1c3QgZm9yDQo+ID4+IGludGVyY29ubmVjdCBkZXNjcmlwdG9yIGxvY2F0b3IuDQo+ ID4+Pg0KPiA+Pj4gVGhlIHByb3RvdHlwZSBjaGFuZ2UgaXMgdHdvZm9sZCAocmV0dXJuIGFuZCBw YXJhbXMpLiBXaXRob3V0DQo+ID4+IFBhcnNlSW50ZXJjb25uZWN0RGVzY3JpcHRvclRhYmxlLCB3 ZSBjb3VsZCBnZXQgYXdheSB3aXRob3V0IHJldHVybmluZw0KPiA+PiBhbnl0aGluZy4gSG93ZXZl ciwgaWYgd2UgaGF2ZSBQYXJzZUludGVyY29ubmVjdERlc2NyaXB0b3JUYWJsZSBoYW5kbGVkDQo+ ID4+IHdpdGhpbiBQYXJzZUxvY2F0b3IsIHdlIHdvdWxkIG5lZWQgdG8gaGFuZGxlIHRoZSByZXR1 cm4gYXMgd2VsbC4gU2luY2UNCj4gPj4gaW50ZXJjb25uZWN0IGxvY2F0b3IgaXMgYW4gZXhjZXB0 aW9uIHdpdGggcmVzcGVjdCB0byBhbGwgb3RoZXIgbG9jYXRvcnMsIGl0IGlzDQo+ID4+IGhhbmRs ZWQgYXMgYW4gZXhjZXB0aW9uIG91dHNpZGUgb2YgUGFyc2VMb2NhdG9yLiBJZiB3ZSBoYWQgcXVp dGUgYSBsb3Qgb2YNCj4gPj4gbG9jYXRvcnMgd2l0aCBkZXRhaWxlZCBpbnRlcm5hbCBwYXJzaW5n LCB3ZSBzaG91bGQgaGF2ZSBoYW5kbGVkIHRoaXMNCj4gaW50ZXJuYWxseS4NCj4gPj4NCj4gPj4g TWF5YmUgdGhlcmUncyBzb21ldGhpbmcgSSBkb24ndCB1bmRlcnN0YW5kIGNvcnJlY3RseSwgYnV0 IEkgdGhpbmsgSSBtDQo+IHJlYWRpbmcNCj4gPj4gdGhlIGNvZGUgd2hpbGUgaW4gdGhlIG9wdGlj IG9mIGhhdmluZyBhIEFDUElfUEFSU0VSDQo+ID4+IHN0cnVjdHVyZSAoYW5kIGEgUHJpbnRGb3Jt YXR0ZXIpIGZvciBlYWNoIGxvY2F0b3IuIEluIHRoaXMgY2FzZSwgZnJvbSB3aXRoaW4NCj4gdGhl DQo+ID4+IGludGVyY29ubmVjdCBsb2NhdG9yIHBhcnNlciwgdGhlIG9mZnNldCBvZiB0aGUNCj4g Pj4gSW50ZXJjb25uZWN0IGRlc2NyaXB0b3IgaXMgYXZhaWxhYmxlIGFuZCBjb3VsZCBiZSBwYXJz ZWQgdXNpbmcgYW5vdGhlcg0KPiA+PiBBQ1BJX1BBUlNFUiBzdHJ1Y3R1cmUuDQo+ID4+IEkgbSBu b3Qgc3VyZSB3aGF0IEkgc2F5IGlzIHJlYWxseSBjbGVhciwgcGxlYXNlIHBpbmcgbWUgaW4gY2Fz ZSBpdCdzIG5vdC4NCj4gPj4NCj4gPg0KPiA+IFtSb2hpdF0gSSBtaXNzZWQgYW5vdGhlciBhc3Bl Y3QgZm9yIG1vdmluZyB0aGlzIG91dC4gV2Ugd291bGQgbmVlZCB0aGUNCj4gZnVuY3Rpb25hbCBk ZXBlbmRlbmNpZXMgcGFyc2VkIGFuZCBwcmludGVkIGJlZm9yZSBoYXZpbmcgaW50ZXJjb25uZWN0 DQo+IGRlc2NyaXB0b3JzIHBhcnNlZC4gVGhlIHJlYXNvbiBiZWluZyBNUEFNIE1zYyBib2R5IGlz IGZvbGxvd2VkIGJ5IE1QQU0NCj4gTVNDIHJlc291cmNlLiBNUEFNIE1TQyByZXNvdXJjZSBpcyBm b2xsb3dlZCBieSBNUEFNIHJlc291cmNlIGZ1bmN0aW9uYWwNCj4gZGVwZW5kZW5jeSBsaXN0IChm cm9tIHRoZSBzcGVjKS4gVGhlIGludGVyY29ubmVjdCBkZXNjcmlwdG9ycyBhcmUgb25seSBwbGFj ZWQNCj4gYWZ0ZXIgdGhlIGZ1bmN0aW9uYWwgZGVwZW5kZW5jeSBsaXN0Lg0KPiANCj4gWWVzIHJp Z2h0LCBJIGFzc3VtZSB0aGlzIGlzIG9rIGFzIHRoZSBvZmZzZXQgb2YgdGhlIEludGVyY29ubmVj dCBkZXNjcmlwdG9yIGlzDQo+IGF2YWlsYWJsZSBpbiB0aGUgaW50ZXJjb25uZWN0IGxvY2F0b3Ig c3RydWN0Lg0KPiBBIGNhbGwgdG8gUGFyc2VBY3BpKCkgZnJvbSB0aGUgaW50ZXJjb25uZWN0IGxv Y2F0b3IncyBQcmludEZvcm1hdHRlciBjYWxsYmFjaw0KPiBzaG91bGQgYmUgcG9zc2libGUsDQo+ IHVubGVzcyBJIG1pc3NlZCBzb21ldGhpbmcgPw0KPiANCg0KW1JvaGl0XSBUaGlzIGlzIHBvc3Np YmxlLiBIb3dldmVyLCB0aGUgd2F5IHRoZSB0YWJsZSBpcyBwbGFjZWQgaW4gbWVtb3J5IHdvbid0 IGJlIGFsaWduZWQgdG8gaG93IHdlIGRpc3BsYXkgaXQuDQpUaGlzIHdhcyBhIHN0ZXAgdG8gYWxp Z24gdGhlIHBhcnNlcidzIHZpZXcgd2l0aCBob3cgdGhlIHRhYmxlIGlzIGRlZmluZWQgaW4gdGhl IHNwZWMuDQoNCj4gPg0KPiA+Pj4NCj4gPj4+Pj4gKyAgICAgIFByaW50R2VuZXJpY0xvY2F0b3JE ZXNjcmlwdG9yICgNCj4gPj4+Pj4gKyAgICAgICAgNCwNCj4gPj4+Pj4gKyAgICAgICAgTCJJbnRl cmNvbm5lY3QiLA0KPiA+Pj4+PiArICAgICAgICBMIiogSW50ZXJjb25uZWN0IGRlc2MgdGJsIG9m ZnNldCIsDQo+ID4+Pj4+ICsgICAgICAgIEwiKiBSZXNlcnZlZCIsDQo+ID4+Pj4+ICsgICAgICAg IExvY2F0b3JQdHIsDQo+ID4+Pj4+ICsgICAgICAgIFRSVUUNCj4gPj4+Pj4gKyAgICAgICAgKTsN Cj4gPj4+Pj4gKyAgICAgIGJyZWFrOw0KPiA+Pj4+PiArICAgIGNhc2UgRUZJX0FDUElfTVBBTV9M T0NBVElPTl9VTktOT1dOOg0KPiA+Pj4+PiArICAgICAgUHJpbnRHZW5lcmljTG9jYXRvckRlc2Ny aXB0b3IgKA0KPiA+Pj4+PiArICAgICAgICA0LA0KPiA+Pj4+PiArICAgICAgICBMIlVua25vd24i LA0KPiA+Pj4+PiArICAgICAgICBMIiogRGVzY3JpcHRvcjEiLA0KPiA+Pj4+PiArICAgICAgICBM IiogRGVzY3JpcHRvcjIiLA0KPiA+Pj4+PiArICAgICAgICBMb2NhdG9yUHRyLA0KPiA+Pj4+PiAr ICAgICAgICBGQUxTRQ0KPiA+Pj4+PiArICAgICAgICApOw0KPiA+Pj4+PiArICAgICAgYnJlYWs7 DQo+ID4+Pj4+ICsgICAgZGVmYXVsdDoNCj4gPj4+Pj4gKyAgICAgIFByaW50IChMIlxuV0FSTklO RyA6IFJlc2VydmVkIGxvY2F0b3IgdHlwZVxuIik7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAgICAg IEluY3JlbWVudFdhcm5pbmdDb3VudCAoKTsNCj4gPj4+Pj4gKyAgICAgIGJyZWFrOw0KPiA+Pj4+ PiArICB9IC8vIHN3aXRjaA0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQoNCn5+DQoNClJlZ2FyZCwN ClJvaGl0DQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSBy ZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcvUmVwbHkgT25saW5l ICgjMTA3NDA4KTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTA3NDA4 Ck11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvOTkwNjYxODgvNzY4NjE3NgpH cm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBz Oi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09LT0t PS09LT0tPS09LT0tPS09LT0tCgoNCg==