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 5F01478042A for ; Mon, 7 Aug 2023 12:45:34 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=vd3v6yYDNtUk7Dvn0Q179DNLaBGyF7KpRFR+cpc8vD0=; 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:nodisclaimer: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=1691412333; v=1; b=lwm/kKwxbk4Zq1z8wlO31NAtRj4yQqBf2zRVhxNdUxCZpYPCg9K4tlbe9n0sAkSNJs4JPRFt KV02dd1n2BiNU6S3y24gBHABgz7Mmh0YREQyVx96J8k6ZZgrCgfSIIm7YoxnhqqsFhLv7oNvD33 kXcQG91R65ky5L7OrWefwzg8= X-Received: by 127.0.0.2 with SMTP id 915HYY7687511xnG4ijsMJ2K; Mon, 07 Aug 2023 05:45:33 -0700 X-Received: from EUR04-DB3-obe.outbound.protection.outlook.com (EUR04-DB3-obe.outbound.protection.outlook.com [40.107.6.65]) by mx.groups.io with SMTP id smtpd.web11.33353.1691412331735922454 for ; Mon, 07 Aug 2023 05:45:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T3OShQkEYpJQvuS2ZwNs+Y2tLcUzgf1+mYbKt8dFKH1QoTkrZuRIobt3H07juEXRlvrSomm8Fa3YDDS6FRuFlSDY86A/hMEZKPILa0JxOlnd7Zv4/w1OKGjyUKbHLUsMG0UONaUL5lJcKowqBmznyhNmQXVQ/6TMtqMiLjRF3LiNOpuVq2f/V5CXTsnSmC6fo5CrBXc/8+XBILWqdEhf71b3RITo3GoOrQsgsdPuopaAePJH43ZOUEGmvUhy6UNVunTOro0XhTlkZwoRdyy9qAtrAI5Acqphz5jsQ8qJhh9DUh6ZtG8ercu1SEsdSJfuILg+eSL1lPJpBH9w9tctQg== 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=DYVUdHwA+Ai1vBVSH/5s2xywdTohSUG+ihGWIv7VaLM=; b=m7x9KXi31XmgN+efzUwsNIEIJPFSptHqJx8K9iqhMHO5xZqttSH62mHrvJ4GoQva8dLgsXbzxj0AabkcKlyhwG5K+lwjlRVuiGiwoMLJWlIOscvdE8ZDmpHnQOVbhcE5XIxYEsnLdelwLtLquxjToGypNmTdj/yRMl8B8OfUtUaNL9/NJBSQ4Nh78pxfGw6h7oUyt8LID+OyYHBI9E6NXifSYusIkZbeJS1+OAnvd5gNIXXNOlGM9ileE3i5Opo1oSkd7dnsnMysZel1Uujs69VmutlHmajOv67hTRFekRrtdX4LAG9nhAOZZf0fp/U0WWgOrLl1lSBtrtnr7wpSyQ== 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 DB8PR08MB5386.eurprd08.prod.outlook.com (2603:10a6:10:f9::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.26; Mon, 7 Aug 2023 12:45:27 +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%4]) with mapi id 15.20.6652.026; Mon, 7 Aug 2023 12:45:27 +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/IrSIggABWMACAAAgi4IABfY0AgAnNwiCABb5GgIAEzh6Q Date: Mon, 7 Aug 2023 12:45:26 +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: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: AFED07A07B4BFE4EA4A00A92B95CE900.0 x-checkrecipientchecked: true x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM6PR08MB3783:EE_|DB8PR08MB5386:EE_ x-ms-office365-filtering-correlation-id: b7dfc0e4-7a63-48b3-7b53-08db97442cd3 nodisclaimer: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: iNeVX7nB+8xwrOOzvdYRy+ItuTLEzz99rQVPnaslzDvzDDCRys6zRvHvvpC4TJSyWeSowVcySIu6xB+nEvVmr+r1/H9uNstKlmQBaxRqKT2Uyn2ENwyI6cv4Ys7IxI34py+FkA/GQI+SLAKDfgTzfzQXrIHlC/dYWu+0IRFbOYyKgxOjgJ4k4ESMGH5BHLmz3vE5kwNwgR2KX9WOvrPLnZh9jQX/9adE7iLZYE0q0bV8+aRXxAWL8l91pB+4u/exuIRxNUoCR8b0daxy0rFfkVjgltaE60dM+JtYvW2JCaAZo5X5+UoXxrqM9GRJ3W4rQvkRYsHuAisyJ0zoa7P/moGCYdo358JBBr5XyK7edF2gOCf0VvWA1UkSvjTT2DLisr5Joas516jU7bPaR6crksYJwYzmlJ2D2xzQIKSb7FYu6UvBoR1hiLDQlk+efTrNgdQCYg6QwFW4f0d32MwHWcjw8RVybbGJvbFOEixLJ3P9RLzXTCBuq/4Dc0QzE6uiNwbYJdMG2Us/nu7rauul4GDZx8MHDGpfNrLF37fyPLFcEZe2Nc/2ifHJHjIVfIn/eefnzI9vyyo6Zf1uTYzBp4e042anNPMluOIW4T0tF6AJjKksymnsq78Laxd3rGQk x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VHZ1NmxVNzJhTFpzK3RwSEhoZnByZ3lSaUZ3Yk00RkVFaTNmMjFMVFc0Z3d6?= =?utf-8?B?dzB1a281UW5lR2RtazJQR0V5WU5GeC93VDBHSGVSVFgwTHR6WENmVHFpRkJs?= =?utf-8?B?ZHdPZFlMNldmVmwxcEM0YkVsRDNKMWx0Skc4UmxBS0VJY3VrK3F6VHJDaE9t?= =?utf-8?B?QmJ1S1lnSGNBMDFVTmVaY2h1Rk1iNXhOSVczQTVvSCt5QlFBWU1wNHIvY3FN?= =?utf-8?B?U3M5Z0k0bklOZTEzb2FuS0JIRWNUZmJVUk13TDdJRnFiSm44VGxXNm5mMTN6?= =?utf-8?B?emJXV2hBWUpzcHV5RzFEd0tKdzlNcGQ5QjJHZzNCNVNFek5BL2syNVZjWVZC?= =?utf-8?B?NHRvY0pkNG9TcFQrU1lxUFgySXRjdWJxRGxWUi81ZVpMdkZ2SnhzaldselRJ?= =?utf-8?B?ZjRYQ2podmlWUm1NRU1DTlBHeUJwUGFhMjR4Unc2WWozVjVpN1d1b1NhSHhG?= =?utf-8?B?ZTdlaDZ1YW5lYU5lcTQ2R1J3UGpsVkxnZ2hvM0RwT3pSZkJvUGNPSnJQd25s?= =?utf-8?B?cUJobTVweTRicmFsWFdKcWRVMHlmS05TbnF6eENzeU54YS9mMjUwY1lmV3B3?= =?utf-8?B?VGVQWGVOVXdueVU3UVRBZzI5aTVVcVdkeEhTa1FOQVJGRHFFdVdPd2p4cDlG?= =?utf-8?B?Q2tCQWtMM21hOFZYWS9NcU42U0I1eW5CeTdIb2xNME03OU5pckkveVMzNmF3?= =?utf-8?B?dXVpR3gzQlphU3FCcUZHcnBxM1Z2UEZVK0lmOVEydWNOQ25STVpocDNXRzIy?= =?utf-8?B?ODB1Vng3VUdQNGRyeXUyMC9wWEhEMllhbDRad1pRT0Q1OS9uTFg0ZVBsY1ZU?= =?utf-8?B?VXJySEJkaUN4cVlzdEpXZ2gyN1hJcWVBV0FuSzY0TTNUWWhKQmhsUlpJRmE1?= =?utf-8?B?eWRSWm9FNUtQYjNaVmVIL3dwSk9UNW52c0hpNHE1cE05RFk4bldoNkhDMys3?= =?utf-8?B?MGlKRmd2d1pBd3k2ZStBQS94anBWbHloT0psSmt4M2lTZytZVklxdm5nV0Iy?= =?utf-8?B?ZkIvYnI5VzI1N2txRUhjVXZROG9PSGozN0V2eElmVmN2ZmtncTVnYXdpUkhv?= =?utf-8?B?cS9xZmltWGxHb0xIVUs3dGRIdVQrbW1LbFJWZ0ZaTEtqUmRqSE5FcFNzcUVC?= =?utf-8?B?QjJmM0hVTk1mNWVwYW5CM1ZoS0h5ZnZuRHBwVnFnZHpxeVVUU1JjV0JoRzRQ?= =?utf-8?B?OVRRRlhPOW8rdUFKbHNRZFp6TWpWVEFPSWQ3SVVpU2hvZTdNbUlvUWJDcDNh?= =?utf-8?B?TzF4LzF2T2dVRkp6djVPZnJLa0dHMjRkNXZQWG1jYy80UjNxL004dzcyREla?= =?utf-8?B?Q1NnSkNWWnlhUE5tM0xGMHMrZG9OYlREQkhoRXlpOU5MV25XTE5YNE5ycmFu?= =?utf-8?B?LzV4NzlhMzUzVDlTVWRvd2I3VGFzblptcjlINHJ5Q1d0WS80VlYvd1J0dExL?= =?utf-8?B?YzBkT3N2eXA1K25STHJEbm01OUE2Q0UzS09JeVN6bk81bUg0czZoOVlzU0gy?= =?utf-8?B?dGhab2JOK243S09wMU5TdFdBRklibnJTNDdsL2hLQnlvUkVzZ2lKaWI0V2tP?= =?utf-8?B?VE9JTlhUcFY2V3NHM2xCOFVGNHJid0hQT1ROb0UwWlgrbmw4ZmZ3NFBvOXgr?= =?utf-8?B?OUpGVUduWTlHemd0SGVsMytrQ3NBaVZxUnIrRUxCamdySlhvZ2hOT1QwbzU1?= =?utf-8?B?aEZIMTUvV2Z2UzRMTllqMEkyUjFxUUtlRXVZYjkwT1phd291VTBqTzZZNTBI?= =?utf-8?B?ZTQvaHhvMENua2J2NDRxMU5pWUNWWU8rYkZJd2wvOERBdFllWU5yMHJZUFFi?= =?utf-8?B?SXBTZk9jMlhHVHhRNlJTMEd0RWx6WjhzN1lJdEV1NGIxcE44ckpKNkxGMXlv?= =?utf-8?B?OEh3WFlWVi9jaVo0YlFSVnZqQUdQY2NJWlNSaC9jWkJraUFxOSt4K0kxWlgz?= =?utf-8?B?NEI1YzVvc3hzazhFSUwrVzNsNmw1Y0M2Mmx1cDdrMjNsdkxGaTBubU9SQWE2?= =?utf-8?B?Vkozb01SOWdGaFR4djZ0NHRmdEpweGFxQ3g5c1YyOFkvN2hUZjByV3AxNENC?= =?utf-8?B?Y3hMd1RhakNOcWx2SC8xMFpYdjhtd0dWZWdKNEJ1bTlPWHkxMVFHcDVkdVhL?= =?utf-8?Q?1cl4=3D?= MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM6PR08MB3783.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7dfc0e4-7a63-48b3-7b53-08db97442cd3 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2023 12:45:26.8479 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: FvnxIawJoMcG9o/ApTn0v7IvGonv4XH4oWqVq3uqhVc7Zsge03dygK/nROLTlKsXsvrVpUTn98dHX+LeWJ9JVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5386 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: aQ6Eg0jAydXc85GEoX7DywrPx7686176AA= 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="lwm/kKwx"; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); 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 SGkgUGllcnJlLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFBpZXJy ZSBHb25kb2lzIDxwaWVycmUuZ29uZG9pc0Bhcm0uY29tPg0KPiBTZW50OiBGcmlkYXksIEF1Z3Vz dCA0LCAyMDIzIDEyOjIwIFBNDQo+IFRvOiBSb2hpdCBNYXRoZXcgPFJvaGl0Lk1hdGhld0Bhcm0u Y29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IFRob21hcyBBYnJhaGFtIDx0aG9tYXMu YWJyYWhhbUBhcm0uY29tPjsgU2FtaSBNdWphd2FyDQo+IDxTYW1pLk11amF3YXJAYXJtLmNvbT47 IEphbWVzIE1vcnNlIDxKYW1lcy5Nb3JzZUBhcm0uY29tPjsgUmF5IE5pDQo+IDxyYXkubmlAaW50 ZWwuY29tPjsgWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IG5kDQo+IDxuZEBh cm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBWMyAzLzNdIFNoZWxs UGtnL0FjcGlWaWV3OiBBZGQgTVBBTQ0KPiBQYXJzZXINCj4gDQo+IEhlbGxvIFJvaGl0LA0KPiAN Cj4gT24gNy8zMS8yMyAyMjoxNCwgUm9oaXQgTWF0aGV3IHdyb3RlOg0KPiA+IEhpIFBpZXJyZSwN Cj4gPg0KPiA+IEFwb2xvZ2llcyBmb3IgdGhlIGRlbGF5IGluIHJlc3BvbnNlLg0KPiA+DQo+ID4g fn4NCj4gPg0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArLyoqDQo+ID4+Pj4+Pj4gKyAgVGhpcyBm dW5jdGlvbiBwYXJzZXMgdGhlIGxvY2F0b3IgZmllbGQgd2l0aGluIHRoZSByZXNvdXJjZQ0KPiA+ Pj4+Pj4+ICtub2RlIGZvcg0KPiA+PiBBQ1BJDQo+ID4+Pj4+PiBNUEFNDQo+ID4+Pj4+Pj4gKyAg dGFibGUuIFRoZSBwYXJzaW5nIGlzIGJhc2VkIG9uIHRoZSBsb2NhdG9yIHR5cGUgZmllbGQuDQo+ ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsgIFRoaXMgZnVuY3Rpb24gYWxzbyBwZXJmb3JtcyB2YWxp ZGF0aW9uIG9mIHRoZSBsb2NhdG9yIGZpZWxkLg0KPiA+Pj4+Pj4+ICsgKiovDQo+ID4+Pj4+Pj4g K1NUQVRJQw0KPiA+Pj4+Pj4+ICtWT0lEDQo+ID4+Pj4+Pj4gK0VGSUFQSQ0KPiA+Pj4+Pj4+ICtQ YXJzZUxvY2F0b3IgKA0KPiA+Pj4+Pj4+ICsgIFZPSUQNCj4gPj4+Pj4+PiArICApDQo+ID4+Pj4+ Pj4gK3sNCj4gPj4+Pj4+PiArICBVSU5UOCAgKkxvY2F0b3JQdHI7DQo+ID4+Pj4+Pj4gKw0KPiA+ Pj4+Pj4+ICsgIExvY2F0b3JQdHIgPSBMb2NhdG9yOw0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiAr ICBzd2l0Y2ggKCpMb2NhdG9yVHlwZSkgew0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgdGhpbmsgaXQg d291bGQgYmUgc2ltcGxlciB0byBkZWZpbmUgbmFtZXMgYXM6DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g U1RBVElDIENPTlNUIENIQVIxNiAgKk1wYW1Mb2NhdGlvbk5hbWVzW10gPSB7DQo+ID4+Pj4+PiAg ICAgICBMIlByb2Nlc3NvciBjYWNoZSIsDQo+ID4+Pj4+PiAgICAgICBMIk1lbW9yeSIsDQo+ID4+ Pj4+PiAgICAgICAuLi4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBhbmQgYWxzbyB0byBkZWZpbmUgQUNQ SV9QQVJTRVIgdGFibGVzIGZvciB0aGUgbG9jYXRvciBkZXNjcmlwdG9ycw0KPiA+Pj4+Pj4gaW5z dGVhZCBvZiB1c2luZyBQcmludEdlbmVyaWNMb2NhdG9yRGVzY3JpcHRvcigpLg0KPiA+Pj4+Pj4g RWc6DQo+ID4+Pj4+PiBTVEFUSUMgQ09OU1QgQUNQSV9QQVJTRVIgIFNtbXVMb2NhdG9yRGVzY3Jp cHRvclBhcnNlcltdID0gew0KPiA+Pj4+Pj4gICAgICAgeyBMIlNNTVUgaW50ZXJmYWNlIiwgOCwg MCwgTCIlbHUiLCAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwNCj4gPj4+Pj4+ICAgICAgIHsg TCJSZXNlcnZlZCBJRCIsIDQsIDgsIEwiJXUiLCBOVUxMLCBOVUxMLA0KPiA+Pj4+Pj4gVmFsaWRh dGVSZXNlcnZlZEdlbmVyaWMsDQo+ID4+Pj4gKFZPSUQNCj4gPj4+Pj4+ICopMiB9LA0KPiA+Pj4+ Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gW1JvaGl0XSBUaGUgb25seSByZWFzb24gSSBkaWQgbm90IHdh bnQgdG8gZG8gdGhpcyB3YXMgdG8gYXZvaWQNCj4gPj4+Pj4gbWFudWFsbHkNCj4gPj4+PiBtb3Zp bmcgdGhlIG9mZnNldCBiYWNrIGJ5IHggYnl0ZXMgdG8gcmVwYXJzZSB0aGUgbG9jYXRvci4gV2Ug cGFyc2UNCj4gPj4+PiB0aGUNCj4gPj4gbG9jYXRvcg0KPiA+Pj4+IHVzaW5nIE1wYW1Nc2NSZXNv dXJjZUxvY2F0b3JQYXJzZXIuIElmIHdlIHdvdWxkIG5lZWQgdG8gdXNlDQo+ID4+Pj4gQUNQSV9Q QVJTRVIsIHdlIHdvdWxkIG5lZWQgdG8gc3RlcCBiYWNrIGJ5IDEyIGJ5dGVzIChhc3N1bWluZw0K PiA+Pj4+IG9mZnNldCBpcyB1c2VkIHJpZ2h0IGFmdGVyIHdlIHBhcnNlIHRoZSBsb2NhdG9yKSBh bmQgcmVwYXJzZSB0aGUNCj4gPj4+PiBsb2NhdG9yIHVuZGVyIHRoZSByZXNwZWN0aXZlIHN3aXRj aCBjYXNlLiBXZSBtaWdodCBub3QgYmUgYWJsZSB0bw0KPiA+Pj4+IHNraXAgTXBhbU1zY1Jlc291 cmNlTG9jYXRvclBhcnNlciBhcw0KPiA+Pj4+IEVGSV9BQ1BJX01QQU1fTE9DQVRJT05fTUVNT1JZ X0NBQ0hFIGNhbid0IGJlIHBhcnNlZCBieQ0KPiBBQ1BJX1BBUlNFUi4NCj4gPj4+PiBXb3VsZCB0 aGlzIGJlIGNsZWFuZXIsIHdoYXQgYXJlIHlvdXIgdGhvdWdodHM/DQo+ID4+Pj4NCj4gPj4+PiBP ayByaWdodCwgSSBtaXNyZWFkIHRoZSBzdHJ1Y3R1cmUgdGhlIGZpcnN0IHRpbWUuDQo+ID4+Pj4g SW4gdGhhdCBjYXNlLCB3b3VsZCBpdCBiZSBwb3NzaWJsZSB0byB1c2UgUGFyc2VMb2NhdG9yKCkg KG9yIGENCj4gPj4+PiByZW1ha2Ugb2YgdGhlDQo+ID4+Pj4gZnVuY3Rpb24pDQo+ID4+Pj4gYXMg YSBBQ1BJX1BBUlNFUidzIFByaW50Rm9ybWF0dGVyKCkgY2FsbGJhY2sgPw0KPiA+Pj4+DQo+ID4+ Pj4gQ2YuIHRoZSBjb21tZW50IGJlbG93LCBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIHBvc3NpYmxl IHRvIHBhcnNlIGENCj4gPj4+PiBFRklfQUNQSV9NUEFNX0xPQ0FUSU9OX01FTU9SWV9DQUNIRQ0K PiA+Pj4+IHN0cnVjdCB1c2luZyBhIEFDUElfUEFSU0VSIHN0cnVjdHVyZS4NCj4gPj4+Pg0KPiA+ Pj4NCj4gPj4+IFtSb2hpdF0gUHJpbnRGb21hdHRlciB3b3VsZCBvbmx5IGJlIGNhbGxlZCBmb3Ig YSBjYWxsIHdpdGggVHJhY2UgPQ0KPiA+Pj4gVFJVRS4gV2hpbGUNCj4gPj4gcGFyc2luZyBNcGFt TXNjUmVzb3VyY2VMb2NhdG9yUGFyc2VyLCBUcmFjZSBpcyBzZXQgdG8gRkFMU0UuDQo+ID4+Pg0K PiA+Pj4gLy8gU25pcHBldA0KPiA+Pj4gICAgICAgaWYgKFRyYWNlKSB7DQo+ID4+PiAgICAgICAg IC8vIGlmIHRoZXJlIGlzIGEgRm9ybWF0dGVyIGZ1bmN0aW9uIGxldCB0aGUgZnVuY3Rpb24gaGFu ZGxlDQo+ID4+PiAgICAgICAgIC8vIHRoZSBwcmludGluZyBlbHNlIGlmIGEgRm9ybWF0IGlzIHNw ZWNpZmllZCBpbiB0aGUgdGFibGUgdXNlDQo+ID4+PiAgICAgICAgIC8vIHRoZSBGb3JtYXQgZm9y IHByaW50aW5nDQo+ID4+PiAgICAgICAgIFByaW50RmllbGROYW1lICgyLCBQYXJzZXJbSW5kZXhd Lk5hbWVTdHIpOw0KPiA+Pj4gICAgICAgICBpZiAoUGFyc2VyW0luZGV4XS5QcmludEZvcm1hdHRl ciAhPSBOVUxMKSB7DQo+ID4+PiAgICAgICAgICAgUGFyc2VyW0luZGV4XS5QcmludEZvcm1hdHRl ciAoUGFyc2VyW0luZGV4XS5Gb3JtYXQsIFB0cik7DQo+ID4+Pg0KPiA+Pg0KPiA+PiBJSVVDLCBU cmFjZSA9IEZhbHNlIGZvciB0aGUgTXBhbU1zY1Jlc291cmNlTG9jYXRvclBhcnNlciBzdHJ1Y3QN Cj4gPj4gYmVjYXVzZSB3ZSBqdXN0IHdhbnQgdG8gcG9wdWxhdGUgdGhlICdMb2NhdG9yJywgYW5k IGxldA0KPiA+PiBQYXJzZUxvY2F0b3IoKSBwcmludC9wYXJzZSB0aGUgZmllbGRzLg0KPiA+Pg0K PiA+PiBJZiBhIFByaW50Rm9tYXR0ZXIoKSBjYWxsYmFjayBpcyBpbXBsZW1lbnRlZCwgdGhlICdM b2NhdG9yJyBvZmZzZXQNCj4gPj4gd291bGRuJ3QgbmVlZCB0byBiZSBwb3B1bGF0ZWQgYW55bW9y ZSwgdGhlIHByaW50aW5nL3BhcnNpbmcgd291bGQNCj4gPj4gZGlyZWN0bHkgaGFwcGVuIGluIHRo ZSBQcmludEZvbWF0dGVyKCkuIERvIHlvdSB0aGluayBpdCBjb3VsZCB3b3JrID8NCj4gPg0KPiA+ IFtSb2hpdF0gVGhlIGZvcm1hdCBmb3IgUHJpbnRGb21hdHRlciBpcyBhcyBmb2xsb3dzIC0gU1RB VElDIFZPSUQNCj4gPiAoKkZOKShDT05TVCBDSEFSMTYgKkZvcm1hdCwgVUlOVDggKlB0cikuDQo+ ID4NCj4gPiBUaGlzIHdvdWxkIG1lYW4gdGhhdCB3ZSBoYXZlIGFjY2VzcyB0byBQdHIgdG8gd2hh dGV2ZXIgZmllbGQgd2UgaW1wbGVtZW50DQo+IHRoaXMgY2FsbGJhY2sgZm9yLCBidXQgbm90IHRo ZSBPZmZzZXQgYW5kIEFjcGlUYWJsZUxlbmd0aC4gQSB3YXkgYXJvdW5kIHRoaXMNCj4gd291bGQg YmUgdG8gaGF2ZSBPZmZzZXQgYW5kIEFjcGlUYWJsZUxlbmd0aCBhcyBnbG9iYWxzLCBidXQgdGhp cyBzZWVtcyBsZXNzDQo+IGNsZWFuIGluIG15IG9waW5pb24uDQo+IA0KPiBZZXMgcmlnaHQsIHRo aXMgd291bGQgYmUgYW4gaXNzdWUgd2hlbiBwYXJzaW5nIHRoZSBpbnRlcmNvbm5lY3QgbG9jYXRv ci4NCj4gDQo+IERvaW5nIHRoZSBwYXJzaW5nIGluc2lkZSBQcmludEZyb21hdHRlciBjYWxsYmFj a3MgbWlnaHQgZWZmZWN0aXZlbHkgYmUgYSBiaXQNCj4gZG9kZ3kuIE1heWJlIGFub3RoZXIgd2F5 IHRvIHBhcnNlIHRoZSBsb2NhdG9ycyB3b3VsZCBiZSBhcyB0aGUNCj4gJ0dpY0lUU1BhcnNlcicN Cj4gc3RydWN0IGlzIHBhcnNlZCBpbiB0aGUgTWFkdFBhcnNlciwgdGhlIExvY2F0b3IgdHlwZSBh bGxvd2luZyB0byBkZWNpZGUgaG93IHRvDQo+IHBhcnNlIHRoZSBMb2NhdG9yIGRlc2NyaXB0b3Iu DQo+IA0KPiBJIHRoaW5rIG15IHBvaW50IGlzIHRoYXQgdGhlIGxvY2F0b3Igc3RydWN0dXJlcyBj b3VsZCBiZSByZXByZXNlbnRlZCBhcw0KPiBBQ1BJX1BBUlNFUiBzdHJ1Y3R1cmVzLCBhbGxvd2lu ZyB0byBlYXNpbHkgc2VlIGEgY29ycmVsYXRpb24gYmV0d2VlbiB0aGUgc3BlYw0KPiBhbmQgdGhl IGNvZGUuIFRoaXMgd291bGQgYWxsb3dzIHRvIHJlbW92ZSBQcmludEdlbmVyaWNMb2NhdG9yRGVz Y3JpcHRvcigpLg0KPiANCj4gDQoNCltSb2hpdF0gQWdyZWVkLCBwYXJzaW5nIHdpdGggQUNQSV9Q QVJTRVIgdXNpbmcgZGlmZmVyZW50IGNhc2VzIGZvciBMb2NhdG9yVHlwZSB3b3VsZCBiZSBjbGVh bmVyLiBJIHdpbGwgcG9zdCBWNCB3aXRoIHRoaXMgYW5kIG90aGVyIGNvbW1lbnRzIGFkZHJlc3Nl ZC4NCg0KPiA+DQo+ID4+DQo+ID4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiArICAg IGNhc2UgRUZJX0FDUElfTVBBTV9MT0NBVElPTl9QUk9DRVNTT1JfQ0FDSEU6DQo+ID4+Pj4+Pj4g KyAgICAgIFByaW50R2VuZXJpY0xvY2F0b3JEZXNjcmlwdG9yICgNCj4gPj4+Pj4+PiArICAgICAg ICA0LA0KPiA+Pj4+Pj4+ICsgICAgICAgIEwiUHJvY2Vzc29yIGNhY2hlIiwNCj4gPj4+Pj4+PiAr ICAgICAgICBMIiogQ2FjaGUgcmVmZXJlbmNlIiwNCj4gPj4+Pj4+PiArICAgICAgICBMIiogUmVz ZXJ2ZWQiLA0KPiA+Pj4+Pj4+ICsgICAgICAgIExvY2F0b3JQdHIsDQo+ID4+Pj4+Pj4gKyAgICAg ICAgVFJVRQ0KPiA+Pj4+Pj4+ICsgICAgICAgICk7DQo+ID4+Pj4+Pj4gKyAgICAgIGJyZWFrOw0K PiA+Pj4+Pj4+ICsgICAgY2FzZSBFRklfQUNQSV9NUEFNX0xPQ0FUSU9OX01FTU9SWToNCj4gPj4+ Pj4+PiArICAgICAgUHJpbnRHZW5lcmljTG9jYXRvckRlc2NyaXB0b3IgKA0KPiA+Pj4+Pj4+ICsg ICAgICAgIDQsDQo+ID4+Pj4+Pj4gKyAgICAgICAgTCJNZW1vcnkiLA0KPiA+Pj4+Pj4+ICsgICAg ICAgIEwiKiBQcm94aW1pdHkgZG9tYWluIiwNCj4gPj4+Pj4+PiArICAgICAgICBMIiogUmVzZXJ2 ZWQiLA0KPiA+Pj4+Pj4+ICsgICAgICAgIExvY2F0b3JQdHIsDQo+ID4+Pj4+Pj4gKyAgICAgICAg VFJVRQ0KPiA+Pj4+Pj4+ICsgICAgICAgICk7DQo+ID4+Pj4+Pj4gKyAgICAgIGJyZWFrOw0KPiA+ Pj4+Pj4+ICsgICAgY2FzZSBFRklfQUNQSV9NUEFNX0xPQ0FUSU9OX1NNTVU6DQo+ID4+Pj4+Pj4g KyAgICAgIFByaW50R2VuZXJpY0xvY2F0b3JEZXNjcmlwdG9yICgNCj4gPj4+Pj4+PiArICAgICAg ICA0LA0KPiA+Pj4+Pj4+ICsgICAgICAgIEwiU01NVSIsDQo+ID4+Pj4+Pj4gKyAgICAgICAgTCIq IFNNTVUgaW50ZXJmYWNlIiwNCj4gPj4+Pj4+PiArICAgICAgICBMIiogUmVzZXJ2ZWQiLA0KPiA+ Pj4+Pj4+ICsgICAgICAgIExvY2F0b3JQdHIsDQo+ID4+Pj4+Pj4gKyAgICAgICAgVFJVRQ0KPiA+ Pj4+Pj4+ICsgICAgICAgICk7DQo+ID4+Pj4+Pj4gKyAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+ICsg ICAgY2FzZSBFRklfQUNQSV9NUEFNX0xPQ0FUSU9OX01FTU9SWV9DQUNIRToNCj4gPj4+Pj4+DQo+ ID4+Pj4+PiBUaGUgY29kZSB3b3VsZCBiZSBtb3JlIGdlbmVyaWMgd2l0aCBBQ1BJX1BBUlNFUiBz dHJ1Y3R1cmVzIEkNCj4gPj4+Pj4+IHRoaW5rDQo+ID4+Pj4+DQo+ID4+Pj4+IFtSb2hpdF0gSSBi ZWxpZXZlIEFDUElfUEFSU0VSIHdvbid0IHBhcnNlIE1lbW9yeS1zaWRlIGNhY2hlDQo+ID4+Pj4+ IGxvY2F0b3INCj4gPj4+PiBkZXNjcmlwdG9yIGR1ZSB0byBpdHMgb2RkIGZpZWxkIGxlbmd0aC4N Cj4gPj4+Pg0KPiA+Pj4+IEkgdGhpbmsgdGhlcmUgaXMgYSBzaW1pbGFyIGNhc2UgZm9yIHRoZSBS ZXNlcnZlZCBmaWVsZCBvZiB0aGUgJ0dUDQo+ID4+Pj4gQmxvY2sgVGltZXIgU3RydWN0dXJlJywg Q2YgQUNQSSA2LjUsIFRhYmxlIDUuMTIxOiBHVCBCbG9jayBUaW1lcg0KPiA+Pj4+IFN0cnVjdHVy ZSBGb3JtYXQgYW5kIGluIHRoZSBHdGR0UGFyc2VyIGZvciB0aGUgR3RCbG9ja1RpbWVyUGFyc2Vy DQo+ID4+Pj4gc3RydWN0dXJlLg0KPiA+Pj4+DQo+ID4+Pj4gQSBEdW1wN0NoYXJzIGZ1bmN0aW9u IHdvdWxkIG5lZWQgdG8gYmUgYWRkZWQgZm9yIG91ciBjYXNlIEkgYmVsZWl2ZS4NCj4gPj4+Pg0K PiA+Pj4NCj4gPj4+IFtSb2hpdF0gSWYgd2UgYXJlIHRvIGdvIHdpdGggdGhlIEFDUElfUEFSU0VS UywgSSBjYW4gYWRkIHRoaXMuIEkgZG8NCj4gPj4+IGhhdmUgYQ0KPiA+PiBjb25jZXJuIG9uIHVz aW5nIEFDUElfUEFSU0VSIHdoaWNoIEkgaGF2ZSBhZGRlZCBhYm92ZS4NCj4gPj4+DQo+ID4+Pj4+ DQo+ID4+Pj4+IC8vIHNuaXBwZXQgZnJvbSBBQ1BJX1BBUlNFUidzIGNvZGUNCj4gPj4+Pj4NCj4g Pj4+Pj4gICAgICAgICAgIHN3aXRjaCAoUGFyc2VyW0luZGV4XS5MZW5ndGgpIHsNCj4gPj4+Pj4g ICAgICAgICAgICAgIGNhc2UgMToNCj4gPj4+Pj4gICAgICAgICAgICAgICAgRHVtcFVpbnQ4IChQ YXJzZXJbSW5kZXhdLkZvcm1hdCwgUHRyKTsNCj4gPj4+Pj4gICAgICAgICAgICAgICAgYnJlYWs7 DQo+ID4+Pj4+ICAgICAgICAgICAgICBjYXNlIDI6DQo+ID4+Pj4+ICAgICAgICAgICAgICAgIER1 bXBVaW50MTYgKFBhcnNlcltJbmRleF0uRm9ybWF0LCBQdHIpOw0KPiA+Pj4+PiAgICAgICAgICAg ICAgICBicmVhazsNCj4gPj4+Pj4gICAgICAgICAgICAgIGNhc2UgNDoNCj4gPj4+Pj4gICAgICAg ICAgICAgICAgRHVtcFVpbnQzMiAoUGFyc2VyW0luZGV4XS5Gb3JtYXQsIFB0cik7DQo+ID4+Pj4+ ICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+Pj4+PiAgICAgICAgICAgICAgY2FzZSA4Og0KPiA+ Pj4+PiAgICAgICAgICAgICAgICBEdW1wVWludDY0IChQYXJzZXJbSW5kZXhdLkZvcm1hdCwgUHRy KTsNCj4gPj4+Pj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+Pj4+ICAgICAgICAgICAgICBk ZWZhdWx0Og0KPiA+Pj4+PiAgICAgICAgICAgICAgICBQcmludCAoDQo+ID4+Pj4+ICAgICAgICAg ICAgICAgICAgTCJcbkVSUk9SOiAlYTogQ0FOTk9UIFBBUlNFIFRISVMgRklFTEQsIEZpZWxkIExl bmd0aCA9DQo+ICVkXG4iLA0KPiA+Pj4+PiAgICAgICAgICAgICAgICAgIEFzY2lpTmFtZSwNCj4g Pj4+Pj4gICAgICAgICAgICAgICAgICBQYXJzZXJbSW5kZXhdLkxlbmd0aA0KPiA+Pj4+PiAgICAg ICAgICAgICAgICAgICk7DQo+ID4+Pj4+ICAgICAgICAgICAgfSAvLyBzd2l0Y2gNCj4gPj4+Pj4N Cj4gPj4+Pj4gSSBoYXZlIG5vdCB0ZXN0ZWQgdGhpcyAtIGJ1dCBJIGRvIHJlbWVtYmVyIHNlZWlu ZyBzdWNoIGEgYmVoYXZpb3INCj4gPj4+Pj4gZm9yDQo+ID4+Pj4gSW50ZXJjb25uZWN0IGRlc2Ny aXB0b3IncyByZXNlcnZlZCBmaWVsZC4NCj4gPj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4gKyAg ICAgIC8vIFByaW50R2VuZXJpY0xvY2F0b3JEZXNjcmlwdG9yIGNhbid0IGJlIHVzZWQgaGVyZSBh cyB0aGUgZmllbGRzDQo+ID4+Pj4+Pj4gKyAgICAgIC8vIEZvciBhIG1lbW9yeSBjYWNoZSBsb2Nh dG9yIGRlc2NyaXB0b3IgZG9uJ3QgZmFsbCBpbg0KPiA+Pj4+Pj4+ICsgdGhlIDY0Yml0LTMyDQo+ ID4+IGJpdA0KPiA+Pj4+Pj4+ICsgICAgICAvLyBmaWVsZCBsZW5ndGggZGl2aXNpb24uIFBhcnNl IHRoZXNlIGZpZWxkcyBtYW51YWxseS4NCj4gPj4+Pj4+PiArICAgICAgUHJpbnRMb2NhdG9yVGl0 bGUgKDQsIEwiTWVtb3J5IGNhY2hlIik7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsgICAgICAv LyBQYXJzZSBmaWVsZCAxDQo+ID4+Pj4+Pj4gKyAgICAgIFByaW50TG9jYXRvckRlc2NyaXB0b3I2 NCAoDQo+ID4+Pj4+Pj4gKyAgICAgICAgNCwNCj4gPj4+Pj4+PiArICAgICAgICBMIiogUmVzZXJ2 ZWQiLA0KPiA+Pj4+Pj4+ICsgICAgICAgIE1QQU1fTUVNT1JZX0xPQ0FUT1JfRVhUUkFDVF9SRVNF UlZFRF9GSUVMRCAoDQo+ID4+Pj4+Pj4gKyAgICAgICAgICAqKChVSU5UNjQgKikoTG9jYXRvclB0 cikpDQo+ID4+Pj4+Pj4gKyAgICAgICAgICApLA0KPiA+Pj4+Pj4+ICsgICAgICAgIFRSVUUNCj4g Pj4+Pj4+PiArICAgICAgICApOw0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArICAgICAgLy8gUGFy c2UgZmllbGQgMg0KPiA+Pj4+Pj4+ICsgICAgICBQcmludExvY2F0b3JEZXNjcmlwdG9yNjQgKA0K PiA+Pj4+Pj4+ICsgICAgICAgIDQsDQo+ID4+Pj4+Pj4gKyAgICAgICAgTCIqIExldmVsIiwNCj4g Pj4+Pj4+PiArICAgICAgICBNUEFNX01FTU9SWV9MT0NBVE9SX0VYVFJBQ1RfTEVWRUxfRklFTEQg KA0KPiA+Pj4+Pj4+ICsgICAgICAgICAgKigoVUlOVDY0ICopKExvY2F0b3JQdHIpKQ0KPiA+Pj4+ Pj4+ICsgICAgICAgICAgKSwNCj4gPj4+Pj4+PiArICAgICAgICBGQUxTRQ0KPiA+Pj4+Pj4+ICsg ICAgICAgICk7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsgICAgICBMb2NhdG9yUHRyICs9IHNp emVvZiAoVUlOVDY0KTsNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKyAgICAgIC8vIFBhcnNlIGZp ZWxkIDMNCj4gPj4+Pj4+PiArICAgICAgUHJpbnRMb2NhdG9yRGVzY3JpcHRvcjMyICgNCj4gPj4+ Pj4+PiArICAgICAgICA0LA0KPiA+Pj4+Pj4+ICsgICAgICAgIEwiKiBSZWZlcmVuY2UiLA0KPiA+ Pj4+Pj4+ICsgICAgICAgICooKFVJTlQzMiAqKShMb2NhdG9yUHRyKSksDQo+ID4+Pj4+Pj4gKyAg ICAgICAgRkFMU0UNCj4gPj4+Pj4+PiArICAgICAgICApOw0KPiA+Pj4+Pj4+ICsgICAgICBicmVh azsNCj4gPj4+Pj4+PiArICAgIGNhc2UgRUZJX0FDUElfTVBBTV9MT0NBVElPTl9BQ1BJX0RFVklD RToNCj4gPj4+Pj4+PiArICAgICAgLy8gQUNQSSBoYXJkd2FyZSBJRCB3b3VsZCBoYXZlIHRvIHBy aW50ZWQgdmlhIER1bXA4Q2hhcnMuDQo+ID4+Pj4+Pj4gKyAgICAgIFByaW50TG9jYXRvclRpdGxl ICg0LCBMIkFDUEkgZGV2aWNlIik7DQo+ID4+Pj4+Pj4gKyAgICAgIFByaW50RmllbGROYW1lICg0 LCBMIiogQUNQSSBoYXJkd2FyZSBJRCIpOw0KPiA+Pj4+Pj4+ICsgICAgICBEdW1wOENoYXJzIChO VUxMLCBMb2NhdG9yUHRyKTsNCj4gPj4+Pj4+PiArICAgICAgUHJpbnQgKEwiXG4iKTsNCj4gPj4+ Pj4+PiArDQo+ID4+Pj4+Pj4gKyAgICAgIExvY2F0b3JQdHIgKz0gc2l6ZW9mIChVSU5UNjQpOw0K PiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArICAgICAgLy8gUGFyc2UgZmllbGQgMg0KPiA+Pj4+Pj4+ ICsgICAgICBQcmludExvY2F0b3JEZXNjcmlwdG9yMzIgKA0KPiA+Pj4+Pj4+ICsgICAgICAgIDQs DQo+ID4+Pj4+Pj4gKyAgICAgICAgTCIqIEFDUEkgdW5pcXVlIElEIiwNCj4gPj4+Pj4+PiArICAg ICAgICAqKChVSU5UMzIgKikoTG9jYXRvclB0cikpLA0KPiA+Pj4+Pj4+ICsgICAgICAgIEZBTFNF DQo+ID4+Pj4+Pj4gKyAgICAgICAgKTsNCj4gPj4+Pj4+PiArICAgICAgYnJlYWs7DQo+ID4+Pj4+ Pj4gKyAgICBjYXNlIEVGSV9BQ1BJX01QQU1fTE9DQVRJT05fSU5URVJDT05ORUNUOg0KPiA+Pj4+ Pj4NCj4gPj4+Pj4+IEkgbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgd2h5IFBhcnNlSW50ZXJjb25u ZWN0RGVzY3JpcHRvclRhYmxlICgpDQo+ID4+Pj4+PiBpcyBub3QgY2FsbGVkIGZyb20gaGVyZSBh cyB0aGUgcG9pbnRlciB0byB0aGUgc3RydWN0IGlzIGF2YWlsYWJsZSBoZXJlLg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4NCj4gPj4+Pj4gW1JvaGl0XSBBbGwgb2YgdGhlIGxvY2F0b3JzIGV4Y2VwdCBpbnRl cmNvbm5lY3QgbG9jYXRvciBoYXZlIHZlcnkNCj4gPj4+Pj4gc2ltcGxlDQo+ID4+Pj4gcGFyc2lu ZyBmb3IgdGhlaXIgZmllbGRzLiBUaGlzIHdvdWxkIG1lYW4ga2VlcGluZyB0aGUgcHJvdG90eXBl IGZvcg0KPiA+Pj4+IFBhcnNlTG9jYXRvciBzaW1wbGUgd2l0aG91dCBhbnkgcGFyYW1zIHJlbGF0 ZWQgdG8gQUNQSSBwYXJzZXINCj4gPj4+PiBwb2ludGVyLA0KPiA+PiBvZmZzZXQNCj4gPj4+PiBl dGMgcHJvdmlkZWQgd2Ugb2ZmbG9hZCB0aGUgaW50ZXJjb25uZWN0IGRlc2NyaXB0b3IncyBpbnRl cm5hbA0KPiA+Pj4+IHBhcnNpbmcgdG8gYSBzY29wZSB3aGVyZSB3ZSBoYXZlIHRoZXNlIGZpZWxk cyBhdmFpbGFibGUuIFdlIGNvdWxkDQo+ID4+Pj4gdmVyeSB3ZWxsIGRvIHRoZQ0KPiA+PiBwYXJz aW5nDQo+ID4+Pj4gaW50ZXJuYWxseSAtIGhvd2V2ZXIgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5n IHRoZSBwcm90b3R5cGUganVzdA0KPiA+Pj4+IGZvciBpbnRlcmNvbm5lY3QgZGVzY3JpcHRvciBs b2NhdG9yLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgcHJvdG90eXBlIGNoYW5nZSBpcyB0d29mb2xk IChyZXR1cm4gYW5kIHBhcmFtcykuIFdpdGhvdXQNCj4gPj4+PiBQYXJzZUludGVyY29ubmVjdERl c2NyaXB0b3JUYWJsZSwgd2UgY291bGQgZ2V0IGF3YXkgd2l0aG91dA0KPiA+Pj4+IHJldHVybmlu ZyBhbnl0aGluZy4gSG93ZXZlciwgaWYgd2UgaGF2ZQ0KPiA+Pj4+IFBhcnNlSW50ZXJjb25uZWN0 RGVzY3JpcHRvclRhYmxlIGhhbmRsZWQgd2l0aGluIFBhcnNlTG9jYXRvciwgd2UNCj4gPj4+PiB3 b3VsZCBuZWVkIHRvIGhhbmRsZSB0aGUgcmV0dXJuIGFzIHdlbGwuIFNpbmNlIGludGVyY29ubmVj dCBsb2NhdG9yDQo+ID4+Pj4gaXMgYW4gZXhjZXB0aW9uIHdpdGggcmVzcGVjdCB0byBhbGwgb3Ro ZXIgbG9jYXRvcnMsIGl0IGlzIGhhbmRsZWQNCj4gPj4+PiBhcyBhbiBleGNlcHRpb24gb3V0c2lk ZSBvZiBQYXJzZUxvY2F0b3IuIElmIHdlIGhhZCBxdWl0ZSBhIGxvdCBvZg0KPiA+Pj4+IGxvY2F0 b3JzIHdpdGggZGV0YWlsZWQgaW50ZXJuYWwgcGFyc2luZywgd2Ugc2hvdWxkIGhhdmUgaGFuZGxl ZA0KPiA+Pj4+IHRoaXMNCj4gPj4gaW50ZXJuYWxseS4NCj4gPj4+Pg0KPiA+Pj4+IE1heWJlIHRo ZXJlJ3Mgc29tZXRoaW5nIEkgZG9uJ3QgdW5kZXJzdGFuZCBjb3JyZWN0bHksIGJ1dCBJIHRoaW5r IEkNCj4gPj4+PiBtDQo+ID4+IHJlYWRpbmcNCj4gPj4+PiB0aGUgY29kZSB3aGlsZSBpbiB0aGUg b3B0aWMgb2YgaGF2aW5nIGEgQUNQSV9QQVJTRVIgc3RydWN0dXJlIChhbmQNCj4gPj4+PiBhIFBy aW50Rm9ybWF0dGVyKSBmb3IgZWFjaCBsb2NhdG9yLiBJbiB0aGlzIGNhc2UsIGZyb20gd2l0aGlu DQo+ID4+IHRoZQ0KPiA+Pj4+IGludGVyY29ubmVjdCBsb2NhdG9yIHBhcnNlciwgdGhlIG9mZnNl dCBvZiB0aGUgSW50ZXJjb25uZWN0DQo+ID4+Pj4gZGVzY3JpcHRvciBpcyBhdmFpbGFibGUgYW5k IGNvdWxkIGJlIHBhcnNlZCB1c2luZyBhbm90aGVyDQo+ID4+Pj4gQUNQSV9QQVJTRVIgc3RydWN0 dXJlLg0KPiA+Pj4+IEkgbSBub3Qgc3VyZSB3aGF0IEkgc2F5IGlzIHJlYWxseSBjbGVhciwgcGxl YXNlIHBpbmcgbWUgaW4gY2FzZSBpdCdzIG5vdC4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IFtSb2hp dF0gSSBtaXNzZWQgYW5vdGhlciBhc3BlY3QgZm9yIG1vdmluZyB0aGlzIG91dC4gV2Ugd291bGQg bmVlZA0KPiA+Pj4gdGhlDQo+ID4+IGZ1bmN0aW9uYWwgZGVwZW5kZW5jaWVzIHBhcnNlZCBhbmQg cHJpbnRlZCBiZWZvcmUgaGF2aW5nIGludGVyY29ubmVjdA0KPiA+PiBkZXNjcmlwdG9ycyBwYXJz ZWQuIFRoZSByZWFzb24gYmVpbmcgTVBBTSBNc2MgYm9keSBpcyBmb2xsb3dlZCBieQ0KPiA+PiBN UEFNIE1TQyByZXNvdXJjZS4gTVBBTSBNU0MgcmVzb3VyY2UgaXMgZm9sbG93ZWQgYnkgTVBBTSBy ZXNvdXJjZQ0KPiA+PiBmdW5jdGlvbmFsIGRlcGVuZGVuY3kgbGlzdCAoZnJvbSB0aGUgc3BlYyku IFRoZSBpbnRlcmNvbm5lY3QNCj4gPj4gZGVzY3JpcHRvcnMgYXJlIG9ubHkgcGxhY2VkIGFmdGVy IHRoZSBmdW5jdGlvbmFsIGRlcGVuZGVuY3kgbGlzdC4NCj4gPj4NCj4gPj4gWWVzIHJpZ2h0LCBJ IGFzc3VtZSB0aGlzIGlzIG9rIGFzIHRoZSBvZmZzZXQgb2YgdGhlIEludGVyY29ubmVjdA0KPiA+ PiBkZXNjcmlwdG9yIGlzIGF2YWlsYWJsZSBpbiB0aGUgaW50ZXJjb25uZWN0IGxvY2F0b3Igc3Ry dWN0Lg0KPiA+PiBBIGNhbGwgdG8gUGFyc2VBY3BpKCkgZnJvbSB0aGUgaW50ZXJjb25uZWN0IGxv Y2F0b3IncyBQcmludEZvcm1hdHRlcg0KPiA+PiBjYWxsYmFjayBzaG91bGQgYmUgcG9zc2libGUs IHVubGVzcyBJIG1pc3NlZCBzb21ldGhpbmcgPw0KPiA+Pg0KPiA+DQo+ID4gW1JvaGl0XSBUaGlz IGlzIHBvc3NpYmxlLiBIb3dldmVyLCB0aGUgd2F5IHRoZSB0YWJsZSBpcyBwbGFjZWQgaW4gbWVt b3J5DQo+IHdvbid0IGJlIGFsaWduZWQgdG8gaG93IHdlIGRpc3BsYXkgaXQuDQo+ID4gVGhpcyB3 YXMgYSBzdGVwIHRvIGFsaWduIHRoZSBwYXJzZXIncyB2aWV3IHdpdGggaG93IHRoZSB0YWJsZSBp cyBkZWZpbmVkIGluIHRoZQ0KPiBzcGVjLg0KPiANCj4gT2sgaW5kZWVkLiBJIGFzc3VtZSB1c2lu ZyBBQ1BJX1BBUlNFUiBzdHJ1Y3R1cmVzIGZvciBsb2NhdG9ycyBzaG91bGRuJ3QNCj4gaW1wYWN0 IHRoaXMgdGhlbi4gSS5lLiB3aGVuIHBhcnNpbmcgYW4gaW50ZXJjb25uZWN0IGRlc2NyaXB0b3Is IHRoZQ0KPiBJbnRlcmNvbm5lY3RPZmZzZXRQdHIgY291bGQgYmUgcG9wdWxhdGVkIGp1c3QgYXMg dGhlIGNvZGUgZG9lcyByaWdodCBub3cuDQo+IA0KPiA+DQo+ID4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+ Pj4+ICsgICAgICBQcmludEdlbmVyaWNMb2NhdG9yRGVzY3JpcHRvciAoDQo+ID4+Pj4+Pj4gKyAg ICAgICAgNCwNCj4gPj4+Pj4+PiArICAgICAgICBMIkludGVyY29ubmVjdCIsDQo+ID4+Pj4+Pj4g KyAgICAgICAgTCIqIEludGVyY29ubmVjdCBkZXNjIHRibCBvZmZzZXQiLA0KPiA+Pj4+Pj4+ICsg ICAgICAgIEwiKiBSZXNlcnZlZCIsDQo+ID4+Pj4+Pj4gKyAgICAgICAgTG9jYXRvclB0ciwNCj4g Pj4+Pj4+PiArICAgICAgICBUUlVFDQo+ID4+Pj4+Pj4gKyAgICAgICAgKTsNCj4gPj4+Pj4+PiAr ICAgICAgYnJlYWs7DQo+ID4+Pj4+Pj4gKyAgICBjYXNlIEVGSV9BQ1BJX01QQU1fTE9DQVRJT05f VU5LTk9XTjoNCj4gPj4+Pj4+PiArICAgICAgUHJpbnRHZW5lcmljTG9jYXRvckRlc2NyaXB0b3Ig KA0KPiA+Pj4+Pj4+ICsgICAgICAgIDQsDQo+ID4+Pj4+Pj4gKyAgICAgICAgTCJVbmtub3duIiwN Cj4gPj4+Pj4+PiArICAgICAgICBMIiogRGVzY3JpcHRvcjEiLA0KPiA+Pj4+Pj4+ICsgICAgICAg IEwiKiBEZXNjcmlwdG9yMiIsDQo+ID4+Pj4+Pj4gKyAgICAgICAgTG9jYXRvclB0ciwNCj4gPj4+ Pj4+PiArICAgICAgICBGQUxTRQ0KPiA+Pj4+Pj4+ICsgICAgICAgICk7DQo+ID4+Pj4+Pj4gKyAg ICAgIGJyZWFrOw0KPiA+Pj4+Pj4+ICsgICAgZGVmYXVsdDoNCj4gPj4+Pj4+PiArICAgICAgUHJp bnQgKEwiXG5XQVJOSU5HIDogUmVzZXJ2ZWQgbG9jYXRvciB0eXBlXG4iKTsNCj4gPj4+Pj4+PiAr DQo+ID4+Pj4+Pj4gKyAgICAgIEluY3JlbWVudFdhcm5pbmdDb3VudCAoKTsNCj4gPj4+Pj4+PiAr ICAgICAgYnJlYWs7DQo+ID4+Pj4+Pj4gKyAgfSAvLyBzd2l0Y2gNCj4gPj4+Pj4+PiArfQ0KPiA+ Pj4+Pj4+ICsNCj4gPg0KPiA+IH5+DQo+ID4NCj4gPiBSZWdhcmQsDQo+ID4gUm9oaXQNCg0KCi09 LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1l c3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMDc2MTkpOiBo dHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMDc2MTkKTXV0ZSBUaGlzIFRv cGljOiBodHRwczovL2dyb3Vwcy5pby9tdC85OTA2NjE4OC83Njg2MTc2Ckdyb3VwIE93bmVyOiBk ZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbwpVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vw cy5pby9nL2RldmVsL3Vuc3ViIFtyZWJlY2NhQG9wZW5mdy5pb10KLT0tPS09LT0tPS09LT0tPS09 LT0tPS0KCg0K