From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.5296.1632406770369636782 for ; Thu, 23 Sep 2021 07:19:30 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=fxSM5Wjw; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10115"; a="204007810" X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="204007810" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2021 07:19:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="513988868" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga008.fm.intel.com with ESMTP; 23 Sep 2021 07:19:19 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 23 Sep 2021 07:19:19 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 23 Sep 2021 07:19:19 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 23 Sep 2021 07:19:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GGaIGEo+nNgSSOoaLfHgMJVxgPXtm1F/m33ufvmOGUyzW8LyagcJpoRz45WJ8UQRLPmfOE3BcPamHW+r9Z9eVAvlmGENPJKR7M+G/LVd8SspDiiybkRXNk1ECSh6GxToOWc29eEcIdElSIi+gr3kFrnzrvu7SVbWb6bTyN5vd574zrW0ht71S3kVsfvm6ttoYOaGSu+3ztDEV276htgOJClY0iNtRZlKbGSnXQu4UvMWfjS+kzOVgXZCAbVnfUMnVlYdk/JoEg0JJpHDUNGS4QfkWK9hEKE8U6DlALNmQt34DMa7Y9VonJTAV/gbA1QS3jx6MZ01RGMKRt+49wmhdA== 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; bh=3FiqwRfAhpMRzDqzFqfdDmJFT6IUmv5nwDPankx9gh8=; b=dsUxYN5jTmOnfcJqjzpZPmkuCp8z4/yX1y+7vIIq4O7XWTjrLAluj2zmIwZz+cPccvftXz+rlVEgwLlGhczPeEGoYQAnRG8vB0zWD6FZUFBIo+zC0bLuXrcj0JZw7i5rXgUu6wiANYFEXAB1jsWauqwTzTMiNL2ySL9XSF17FhijWRTV8hQ84Ie6PS7C9hStyYJ4bvr2HqKDQVZH+5OiKRoiNrE83JZTCHXdyGs3DeO/Lo+atMsx0Cy6VlriF+IK+hz5xerTJxMc8DK9MbT4GSsfyHbKzK6z7Afdw9IXHxeAfoaNoZBQPsXnAaUUL29RwmzY5pGkUe7KpYqtlVHBPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3FiqwRfAhpMRzDqzFqfdDmJFT6IUmv5nwDPankx9gh8=; b=fxSM5Wjw2kvMbn6ygB7ZPlQnv9DPs3yrGO5TyW8NEYiOxs2c3y13gt7tiflcVfELPngJbOxLjej1MQxRsj5b/UQ5REO5e38aiex5ha17udIGCHCphTSEM/Z2I57Mo9Ac23EN+4gLb0IKwslPOMvbIxFJ2D+4gffzGgYSpuL/T04= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB4983.namprd11.prod.outlook.com (2603:10b6:510:40::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.14; Thu, 23 Sep 2021 14:19:17 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::754e:42e9:16cd:1306]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::754e:42e9:16cd:1306%6]) with mapi id 15.20.4544.015; Thu, 23 Sep 2021 14:19:17 +0000 From: "Yao, Jiewen" To: "Xu, Min M" , Brijesh Singh , "devel@edk2.groups.io" , Gerd Hoffmann CC: Ard Biesheuvel , "Justen, Jordan L" , Erdem Aktas , "James Bottomley" , Tom Lendacky Subject: Re: [edk2-devel] [PATCH V7 1/1] OvmfPkg: Enable TDX in ResetVector Thread-Topic: [edk2-devel] [PATCH V7 1/1] OvmfPkg: Enable TDX in ResetVector Thread-Index: AQHXrsfv6qwUC8Li5kiwlPdQeu+jg6uvry6AgAEZ5ACAAIjkgIAALkqAgAAWigCAAAcDAIAAA09wgAAI9ICAAAMxAIAAAMeQ Date: Thu, 23 Sep 2021 14:19:17 +0000 Message-ID: References: <12721dade1f2f9905cc34271d9abec24650442ff.1632214561.git.min.m.xu@intel.com> <20210922074929.e5iwf24t6wyndgbu@sirius.home.kraxel.org> <20210923084821.yxizus3loa2p6hms@sirius.home.kraxel.org> <7c9aeb95-5c33-bd8d-4f0c-40133f4c7c3d@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 87cbbea7-91db-4532-61ad-08d97e9d20de x-ms-traffictypediagnostic: PH0PR11MB4983: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1FPSHLfZZcssKnF1Sra0FvgZaLwjthVGwgiTqbCHFP/WxOczxeVfkom+z1V6oxce635iC/YINg1ZQ3G3N6nh/qTEkBdgzcifzTt4DuAW5lvenSidrLc6r2i2CR5sGfL3Ae6PvI44ZuhH9EXCog7YpIFVTZ/pwoefNLE9mJZm+VSPTgTkLZVk3x3Q1cSQxdocdseVBGHYaqwt9yRU/7eX4NtZ0ZSvx7bwTTWGDZC7pxMBvvZ6T5BzwFVP53gSFkyPAk2b6eRAUgS1iFc9eBXV8EORSLGb9JgGwhwquuaGrCUONQjm/oA8CI3K4+491JyIQSfLGXARUwKlEwG+ey60xYWflZ1ap3BJNbsAJHzMRjcBraZ8umROahYb0/fl5D6Wx8WEe5svFkKeZQZ7Br5kBdc48I9bsvNRr3/yVOYnS0ulBknWKyCBiSd0fdxNhIpKdUcyGdgIyNiuLf73YeI2tUXCgW3FvWuAz8ZvqGbIUy1xuGwz5UnwOp0FvfVQkPTbXMNtNaAsTwEm3MBbcRUg5SHV6appFlXj3ZKEjHtqVpL4IuxMSpvYC0NYKmf85+17Odft+lKgDNCF32HLV2OwMgEJW/+gDgw7uAnFsolRfF3igyyK1mdyA9yS1IOflyv8BpMEZi0rvwFyULk8duavZfAeJd5gcNmlPh2A2K++GGlGMR+oIAmF4u/Nusik47+UMLPuolQ/V1cqG0AZTx07f0y8hgGnOOpoUU1pq3eUMMVlRXCcKZ689M6J87Fb++z1R+DIV+rK4C7YW+WYFjvSch7xszsRs/7Z3atKxH9uKPySmLmpVm9aDvsL7ISWvPXLN2znyPc1td2KgNQdkzRjBvtRg1rmLtDhf79WoZ/9R+Q= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(71200400001)(52536014)(6506007)(8936002)(110136005)(8676002)(26005)(33656002)(7696005)(55016002)(966005)(53546011)(83380400001)(122000001)(38070700005)(508600001)(5660300002)(38100700002)(2906002)(30864003)(66476007)(66446008)(64756008)(316002)(76116006)(45080400002)(66556008)(54906003)(4326008)(66946007)(86362001)(186003)(9686003)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TWkvUE1taCtmQkhvc3R4Z1pPcjh6Yit1SHBJT1RaTHlqREFSMHR6UUxjTVMz?= =?utf-8?B?bVBJQ2paWVJjT2ljVE1EVitYTUNPazcvNVVjeXM5WDZFV29kOGFKNEpaejFV?= =?utf-8?B?Y0JJK2ZuRllQQWVOdGIyYnAwMnNhQy9SZ0VlRGY0anVJTFRsVTVtRXVCTlRG?= =?utf-8?B?dWFhVWIwOExaWE5NK3BkTitlcUZzL09TOVlUNllrT0FxR2VJSktwWUdZWlFF?= =?utf-8?B?TDlBNDNDTlJnY0ZGM2NBNndwem9sT0ZOcmhieW9Yaktzd3BXTGgrdjZjYjVn?= =?utf-8?B?NEFBUjVpOFZsd0VDUXlsVTFydXk1aFlvbW5WeDRDYS9IcXNFQ1pPVTZEUVpj?= =?utf-8?B?aTBiN2k1a3hTRUpnWGRPa09Wc2RQcGxaOVJZWVAxVnZIOHpEWURVNWNrRUFJ?= =?utf-8?B?bjd2MEpKdEliaXRjQUJzNFZPY294Mit2OWtzNUMrOUoya2xGVDVBU2FJWmxp?= =?utf-8?B?Slp6UU1odTVPVFlRUnZqMnFIZnU0SEkvN1phS1lYWDIxNjMxbmJoTFdxZElC?= =?utf-8?B?M2Rrdk9OTURrUlVJTmhXSWdXMTFudEdWd3pBcU1tSkU4bzVLcGR5U0tVVWZ0?= =?utf-8?B?Vkcxckl4UTk1Y3hSLy8zTnZYTmp1Qzc4bWl3SjNUWHhxcVV6RWJoOUw1ck8z?= =?utf-8?B?ZkdqYTBNbDM1SmNYYStwRnR1TEw1bjZNcjdnblNBaWFBOE53UTR2RGkySkFU?= =?utf-8?B?cXJYOUd5NHBNTkw2ZGh1bzlwMmZ0WloyOFI3dzltMHNrKzFCUmhwNGtPZW5X?= =?utf-8?B?NUc4a2ZEQzVOMk9aUkdKSVlzWEVOdkN2aURmMVFGWUo3WEZzMU80cktBMEFK?= =?utf-8?B?bmVhcUMxOXBrOW83NlZtMDRjcUZ2Q1N6T2JMYmxjRENyMlY1UzhxMTRXVGNK?= =?utf-8?B?aUxiQ1hkZ1N4Tm5ibEI2M01FdUVueVB1eXVsVnBGcHJwVm8rcWFMRzl5S1Y3?= =?utf-8?B?QWVTUUFRS1ZWM2Nlc0RlLzJLYnlreU5yQmxVNkVxUE0wOHp3MVI1b3I5aC85?= =?utf-8?B?ak8wZ2IwakdvUW1ibXkwQTVKcWtkRjRJLzBNSjU2azJHby9WbjlEd2gyMERz?= =?utf-8?B?WDUzK1lBS2duRUVEOG9RdE10S0RYYVBjSS9Kd3MwMkRNdkZlajRPMmFlVFpt?= =?utf-8?B?NitPVlVsU0NaYmtOMVg0dDNUWkE4bDlISkxVR3FnZmc4RjdNOUJJVFlOUWtk?= =?utf-8?B?cDlNdXQvOWZpOGpyV3NjL1k2d3dyOU4yM2NOK0JscGtpeEpkZGZSSHczRUov?= =?utf-8?B?V1RBYVdiZE9xNTlrQkVRbE9RUWlVdzJKY2ZaUHV1bk5SN1NUV3V2TW5YQUJs?= =?utf-8?B?cEZEOWMxNHVuWFdRVzN5a2Nxblg2SUxXR01WQXN6MDA1SzNhczdQd0tQOVMx?= =?utf-8?B?WnlFbDZoMWszOVhEMzBxNnROdkczdFFGZVN6eG1ZakhMMWVtVVhidDBhM3Bv?= =?utf-8?B?UzJKbXkvWjVIVE52TzhwRjZpQ2dtYXlVUFAweGVFWTIycCs2aVI0a1V6Wm5C?= =?utf-8?B?aWxQd1hKSDRTSFJBZjRPTEs4bFlHRldDdUJRQjRVbk81djk0ZUxZL2hJZ3pZ?= =?utf-8?B?K203cVFMSVVIMy9oN1ExWStVc0p0aldFZjZZeWc5Qnd1ZUpsamVOK0F2b1dp?= =?utf-8?B?TWhKSzhHd1graVN4NXI3eUR3eEh5emU5enVibkg5WDhRbnJyRi9odlVqOXVz?= =?utf-8?B?azYwRWN0NHdsUDYyMUZmKzMrWUhmVTA0Yy9VNlBGZXFZVFBNZW5Qb2hYZ2Fv?= =?utf-8?Q?YfCW62qeZ18H4xqkOurQlf0UlSFyCGN/6mbZJVp?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87cbbea7-91db-4532-61ad-08d97e9d20de X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2021 14:19:17.5139 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: nRkrtMlK8UvChaex2LKPnBqAYM6g5ThvQnBfKgAp6X97YG+mMkpSLEWZa4ZgRqfQ97ph830VgxPgsQuP8LHLkQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4983 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SEkgQnJpamVzaA0KVGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24uDQoNCkFsbCBmaWVsZHMgaW4g VERYIG1ldGFkYXRhIGFyZSByZXF1aXJlZC4gU28gdGhlIGN1cnJlbnQgU0VWIHByb3Bvc2FsICgz IGZpZWxkcykgZG9lcyBub3Qgd29yayBmb3IgVERYLiBUaGUgZXh0cmEgZmllbGRzIGFyZSB1c2Vk IHRvIGd1aWRlIFZNTSBvbiBob3cgdG8gY29weSB0aGUgYmluYXJ5LCBhbGxvY2F0ZSBtZW1vcnks IGFuZCBob3cgdG8gbWVhc3VyZSB0aGUgY29tcG9uZW50LiBBbmQgd2UgYXJlIGFkZGluZyBtb3Jl IGV4dGVuc2lvbiB0byB0aGVtIHRvIHN1cHBvcnQgbW9yZSB1c2UgY2FzZXMuDQoNCkJhc2VkIHVw b24gdGhlIGZhY3RvciB0aGF0IFREWCBhbmQgU0VWIGFyZSB1c2luZyBkaWZmZXJlbnQgYXJjaGl0 ZWN0dXJlIHRvIGJvb3QsIEkgYW0gbm90IHN1cmUgd2h5IHdlIGhhdmUgdG8gY29tYmluZSB0aGVt IGludG8gb25lIHRhYmxlLiAoVERYIG5lZWQgYXNzaXN0IGZyb20gVERYIG1vZHVsZSAtIHJ1biBp biBob3N0IENQVSwgYW5kIFNFViBuZWVkIGFzc2lzdCBmcm9tIFBTUCAtIGEgY29wcm9jZXNzb3Ip DQoNCkkgc3Ryb25nbHkgcmVjb21tZW5kIHRvIHVzZSB0d28gdGFibGVzLiBURFggb25seSBkZWZp bmVzIFREWCByZXF1aXJlZCBpbmZvLiBTRVYgb25seSBkZWZpbmVzIFNFViByZXF1aXJlZCBpbmZv LiBFYWNoIG9uZSBjYW4gYWRkIGl0cyBvd24gZXh0ZW5zaW9uIHNlcGFyYXRlbHkuIA0KT3RoZXJ3 aXNlLCB0aGVyZSB3aWxsIGJlIHVubmVjZXNzYXJ5IGluZm9ybWF0aW9uIGluIHRoZSBvbmUgbWV0 YWRhdGEsIHdoaWNoIHdpbGwgaW5jcmVhc2UgdGhlIGltYWdlIHNpemUuDQoNClRoYW5rIHlvdQ0K WWFvIEppZXdlbg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFh1LCBN aW4gTSA8bWluLm0ueHVAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDIz LCAyMDIxIDEwOjE1IFBNDQo+IFRvOiBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5j b20+OyBZYW8sIEppZXdlbg0KPiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgR2VyZCBIb2ZmbWFubg0KPiA8a3JheGVsQHJlZGhhdC5jb20+DQo+IENjOiBBcmQg Qmllc2hldXZlbCA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47IEp1c3RlbiwgSm9yZGFuIEwN Cj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBFcmRlbSBBa3RhcyA8ZXJkZW1ha3Rhc0Bn b29nbGUuY29tPjsgSmFtZXMNCj4gQm90dG9tbGV5IDxqZWpiQGxpbnV4LmlibS5jb20+OyBUb20g TGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazIt ZGV2ZWxdIFtQQVRDSCBWNyAxLzFdIE92bWZQa2c6IEVuYWJsZSBURFggaW4gUmVzZXRWZWN0b3IN Cj4gDQo+IE9uIFNlcHRlbWJlciAyMywgMjAyMSAxMDowNCBQTSwgQnJpamVzaCBTaW5naCB3cm90 ZToNCj4gPg0KPiA+IFNFViBoYXJkd2FyZSBkb2VzIG5vdCBoYXZlIGEgY29uY2VwdCBvZiB0aGUg bWV0YWRhdGEuIFRvIGJvb3QgU0VWIGd1ZXN0IHdlDQo+ID4gbmVlZCB0byBwYXNzIHNvbWUgaW5m b3JtYXRpb24gdG8gVk1NIGFuZCBpbiBwYXN0IHRob3NlIGluZm9ybWF0aW9uIHdlcmUNCj4gPiBw YXNzZWQgdGhyb3VnaCBTTlBfQk9PVF9CTE9DSyAoR1VJRGVkIHN0cnVjdHVyZSkgYnV0IEdlcmQg cmVjb21tZW5kZWQNCj4gPiB0aGF0IGl0IHdpbGwgYmUgZ29vZCBpZGVhIGlmIGJvdGggU0VWIGFu ZCBURFggdXNlcyBhIGNvbW1vbiBtZXRhZGF0YQ0KPiBhcHByb2FjaA0KPiA+IHRvIHBhc3MgdGhl c2UgaW5mb3JtYXRpb24uIEkgcGVyc29uYWxseSB0aGluayBpdCB3YXMgYSBnb29kIHN1Z2dlc3Rp b24uIFNvLCBpbg0KPiBTTlANCj4gPiBzZXJpZXMgSSB3ZW50IGFoZWFkIGFuZCBjcmVhdGVkIGEg Z2VuZXJpYyBtZXRhZGF0YSBzdHJ1Y3R1cmUgYW5kICBob3BlIHRoYXQNCj4gPiBURFggd2lsbCBi dWlsZCBvbiBpdC4gVGhlIHVzZXIgb2YgdGhlIG1ldGFkYXRhIHN0cnVjdHVyZSBpcyBWTU0gKHFl bXUsIGV0Yyk7DQo+ID4gd2hpbGUgbGF1bmNoaW5nIHRoZSBndWVzdCB0aGUgVk1NIGtub3dzIHdo ZXRoZXIgaXRzIGNyZWF0aW5nIHRoZSBTRVYgb3IgVERYDQo+ID4gZ3Vlc3QgYW5kIHdpbGwgcHJv Y2VzcyB0aGUgZW50cmllcyBhY2NvcmRpbmdseS4NCj4gPg0KPiA+IEFzIHBlciB0aGUgbnVtYmVy IG9mIGZpZWxkcyBpbiB0aGUgbWV0YWRhdGEgaXMgY29uY2VybnMsIEkgZmVsdCAzIGZpZWxkcyAo c3RhcnQsDQo+IHNpemUNCj4gPiBhbmQgdHlwZSkgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBh bGwgdGhlIGNhc2VzLiBUaGVyZSB3YXMgYSBxdWVzdGlvbiBmcm9tDQo+ID4gR2VyZCB0byBNaW4g YXNraW5nIHdoeSBkbyB5b3UgbmVlZCB0aGUgZGF0YW9mZnNldC9yYXdkYXRhc2l6ZSBldGMgYW5k IEkNCj4gZG9uJ3QNCj4gPiByZW1lbWJlciBzZWVpbmcgdGhlIGFuc3dlciBmb3IgaXQuDQo+ID4N Cj4gVGhlIGRpc2N1c3Npb24gaXMgaW4gdGhpcyBsaW5rLiBodHRwczovL2VkazIuZ3JvdXBzLmlv L2cvZGV2ZWwvbWVzc2FnZS84MDI4OQ0KPiA+DQo+ID5BcyBJIHNhaWQgaW4gdGhlIHN0YXJ0LCBT TlAgaGFyZHdhcmUgZG9lcyBub3QNCj4gPiBlbmZvcmNlIG1ldGFkYXRhIGxheW91dCBzbyBJIGFt IGZsZXhpYmxlIHRvIGFkZCBtb3JlIGZpZWxkIG9yIHJlbW92ZSBvciBrZWVwDQo+IGl0DQo+ID4g c2VwYXJhdGUuDQo+ID4NCj4gPiB0aGFua3MNCj4gPg0KPiA+IE9uIDkvMjMvMjEgODozOCBBTSwg WWFvLCBKaWV3ZW4gd3JvdGU6DQo+ID4gPiBHb29kIHBvaW50LCBNaW4uDQo+ID4gPg0KPiA+ID4g SWYNCj4gPiBodHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91 cmw9aHR0cHMlM0ElMkYlMkZnaXRodWIuDQo+ID4gY29tJTJGQU1ERVNFJTJGb3ZtZiUyRmJsb2Il MkZzbnAtDQo+ID4gdjglMkZPdm1mUGtnJTJGUmVzZXRWZWN0b3IlMkZYNjQlMkZPdm1mTWV0YWRh dGEuYXNtJmFtcDtkYXRhPTANCj4gPiA0JTdDMDElN0NicmlqZXNoLnNpbmdoJTQwYW1kLmNvbSU3 QzUyZjYzMjdlZmEzMzQ4MGJmNGEzMDhkOTdlOTc3DQo+ID4gZmYwJTdDM2RkODk2MWZlNDg4NGU2 MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzY4MDAxMTQxNg0KPiA+IDExNzgyNiU3Q1Vu a25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsDQo+ID4g dU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFtcDtzZGF0YT16RGZp a1JZaHhkOEUNCj4gPiBSWSUyRnc2a0pMaEpLUk5XYllUbDRENlBwcUslMkJWTnN1cyUzRCZhbXA7 cmVzZXJ2ZWQ9MCBpcyB0aGUNCj4gPiBwcm9wb3NhbCwgdGhlbiBJIGhhdmUgbW9yZSBjb21tZW50 Og0KPiA+ID4NCj4gPiA+IFR5cGU6IE9WTUZfU0VDVElPTl9UWVBFX0NPREUsIE9WTUZfU0VDVElP Tl9UWVBFX1ZBUlMgYXJlIE5PVA0KPiA+IHVzZWQgZm9yIFNFVi4gSSBhbSBub3Qgc3VyZSB3aHkg dGhleSBhcmUgdGhlcmUuDQo+ID4gPg0KPiA+ID4gVHlwZTogT1ZNRl9TRUNUSU9OX1RZUEVfQ1BV SUQgc2hvdWxkIGJlIFNFViBzcGVjaWZpYy4gVERYIGRvZXMgbm90DQo+ID4gbmVlZCBDUFVJRCBw YWdlLg0KPiA+ID4NCj4gPiA+IFR5cGU6IE9WTUZfU0VDVElPTl9UWVBFX1NFQ19NRU0gYWxzbyBz ZWVtcyBmb3IgU0VWLiBURFggZG9lcyBub3QNCj4gPiBuZWVkIHRoaXMgc3BlY2lhbCBtZW1vcnks IHN1Y2ggYXMgUGFnZSB0YWJsZS4gSXQgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGNvZGUuDQo+ID4g Pg0KPiA+ID4gVHlwZTogT1ZNRl9TRUNUSU9OX1RZUEVfU05QX1NFQ1JFVFMgLw0KPiA+IE9WTUZf U0VDVElPTl9UWVBFX1NOUF9TRUNfTUVNIGlzIFNFViBzcGVjaWZpYy4NCj4gPiA+DQo+ID4gPiBU aGUgU0VWIHRhYmxlIGlzIHRvdGFsbHkgZGlmZmVyZW50IHdpdGggVERYIG1ldGFkYXRhIHRhYmxl LiBJIHJlYWxseSBjYW5ub3Qgc2VlDQo+ID4gdGhlIGJlbmVmaXQgdG8gbWVyZ2UgaW50byBvbmUg dGFibGUuDQo+ID4gPg0KPiA+ID4gVGhhbmsgeW91DQo+ID4gPiBZYW8gSmlld2VuDQo+ID4gPg0K PiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4gRnJvbTogWHUsIE1pbiBN IDxtaW4ubS54dUBpbnRlbC5jb20+DQo+ID4gPj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAy MywgMjAyMSA5OjIwIFBNDQo+ID4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBicmlqZXNo LnNpbmdoQGFtZC5jb207IFlhbywgSmlld2VuDQo+ID4gPj4gPGppZXdlbi55YW9AaW50ZWwuY29t PjsgR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+DQo+ID4gPj4gQ2M6IEFyZCBCaWVz aGV1dmVsIDxhcmRiK3RpYW5vY29yZUBrZXJuZWwub3JnPjsgSnVzdGVuLCBKb3JkYW4gTA0KPiA+ ID4+IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgRXJkZW0gQWt0YXMgPGVyZGVtYWt0YXNA Z29vZ2xlLmNvbT47DQo+ID4gPj4gSmFtZXMgQm90dG9tbGV5IDxqZWpiQGxpbnV4LmlibS5jb20+ OyBUb20gTGVuZGFja3kNCj4gPiA+PiA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+ID4gPj4g U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjcgMS8xXSBPdm1mUGtnOiBFbmFibGUg VERYIGluDQo+ID4gPj4gUmVzZXRWZWN0b3INCj4gPiA+Pg0KPiA+ID4+IEkgc3VnZ2VzdCBTRVYg YW5kIFREWCBrZWVwIHRoZWlyIG93biBtZXRhZGF0YSBpbiBzZXBhcmF0ZSBmaWxlcy4gVGhpcw0K PiA+ID4+IGlzIGJlY2F1c2UgU0VWIGFuZCBURFggaGFzIGRpZmZlcmVudCBpdGVtIHN0cnVjdHVy ZS4NCj4gPiA+Pg0KPiA+ID4+ICBGcm9tIHRoZSBPdm1mTWV0YWRhdGEgZGVmaW5pdGlvbiBpbiBT RVYNCj4gPiA+PiAoaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2kNCj4gPiA+PiB0aHViLmNvbSUyRkFNREVTRSUyRm92bWYl MkZibG9iJTJGc25wLQ0KPiA+ICZhbXA7ZGF0YT0wNCU3QzAxJTdDYnJpamVzaC5zaW4NCj4gPiA+ Pg0KPiA+IGdoJTQwYW1kLmNvbSU3QzUyZjYzMjdlZmEzMzQ4MGJmNGEzMDhkOTdlOTc3ZmYwJTdD M2RkODk2MWZlNDg4DQo+ID4gNGU2MDhlMQ0KPiA+ID4+DQo+ID4gMWE4MmQ5OTRlMTgzZCU3QzAl N0MwJTdDNjM3NjgwMDExNDE2MTE3ODI2JTdDVW5rbm93biU3Q1RXRg0KPiA+IHBiR1pzYjNkOGV5 DQo+ID4gPj4NCj4gPiBKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJ azFoYVd3aUxDSlhWQ0k2TW4wJTNEJQ0KPiA+IDdDMTANCj4gPiA+Pg0KPiA+IDAwJmFtcDtzZGF0 YT1hdDQzSDlzZ21sYUQ3NzN3c1U1JTJCb1BQU2pJbW8wVWlDeFEwbm13ZFY5ZHMlM0QNCj4gPiAm YW1wO3Jlcw0KPiA+ID4+IGVydmVkPTANCj4gPiA+PiB2OC9Pdm1mUGtnL1Jlc2V0VmVjdG9yL1g2 NC9Pdm1mTWV0YWRhdGEuYXNtKSB0aGVyZSBhcmUgMyBmaWVsZHMgaW4NCj4gPiA+PiB0aGUgaXRl bS4gKEJhc2UvU2l6ZS9UeXBlKS4NCj4gPiA+Pg0KPiA+ID4+IEJ1dCBmb3IgVERYLCB0aGVyZSBh cmUgNiBmaWVsZHMNCj4gPiA+PiAoRGF0YU9mZnNldC9SYXdEYXRhU2l6ZS9NZW1vcnlBZGRyZXNz L01lbW9yeVNpemUvVHlwZS9BdHRyaWJ1dGUpIGluDQo+ID4gPj4gb25lIGl0ZW0uDQo+ID4gPj4g VGhhdCBpcyBiZWNhdXNlIFREWC1RRU1VIG5vdCBvbmx5IGluaXRpYWxpemUgdGhlIG1lbW9yeSBy ZWdpb24sIGJ1dA0KPiA+ID4+IGFsc28gZG9lcyBtb3JlIHRhc2tzIChtZWFzdXJlbWVudCkgaWYg dGhlIEF0dHJpYnV0ZSBpbmRpY2F0ZXMuDQo+ID4gPj4gRGF0YU9mZnNldC9SYXdEYXRhU2l6ZSBp cyB1c2VkIGJ5IHRoZSBURFgtUUVNVSB0byBkbyB0aGUgbWVhc3VyZW1lbnQNCj4gPiA+PiBpZiB0 aGUgQXR0cmlidXRlIGZpZWxkIGlzIE1SLkVYVEVORC4NCj4gPiA+PiBNZW1vcnlBZGRyZXNzL01l bW9yeVNpemUgaW5kaWNhdGVzIHRoZSBURFgtUUVNVSBob3cgdG8gaW5pdGlhbGl6ZSB0aGUNCj4g PiA+PiBtZW1vcnkgcmVnaW9uLg0KPiA+ID4+DQo+ID4gPj4gV2UgY2FuIGFkZCBtb3JlIGZpZWxk cyBpbiB0aGUgaXRlbSB0byBtYWtlIGl0IHdvcmthYmxlIGZvciBib3RoIFNFVg0KPiA+ID4+IGFu ZCBURFgsIChmb3IgZXhhbXBsZSwgYWRkIERhdGFPZmZzZXQvUmF3RGF0YVNpemUvQXR0cmlidXRl KSwgYnV0IGl0DQo+ID4gPj4gYWxzbyByZXN0cmljdCB0aGUgY2hhbmdlcyBpbiB0aGUgZnV0dXJl IGlmIG1vcmUgZmllbGRzIGlzIG5lZWRlZA0KPiA+ID4+IChURFgncyBjaGFuZ2Ugd2lsbCBpbXBh Y3QgdGhlIGV4aXN0aW5nIFNFVi1RRU1VKS4NCj4gPiA+Pg0KPiA+ID4+IE9uIFNlcHRlbWJlciAy MywgMjAyMSA4OjU1IFBNLCBCcmlqZXNoIFNpbmdoIHdyb3RlOg0KPiA+ID4+Pg0KPiA+ID4+PiBM aWtlIEdlcmQgSSB3b3VsZCBwcmVmZXIgdG8gaGF2ZSBvbmUgbWV0YWRhdGEgdGFibGUgaW4gdGhl IHJlc2V0IEdVSUQuDQo+ID4gPj4+IFRoZSBtZXRhZGF0YSB0YWJsZSB3aWxsIGNvbnRhaW4gbXVs dGlwbGUgZW50cmllczsgbG90IG9mIGVudHJpZXMgYXJlDQo+ID4gPj4+IGNvbW1vbiBiZXR3ZWVu IFNOUCBhbmQgVERYLiBTb21lIGVudHJpZXMgd2lsbCBoYXZlIHNwZWNpZmljIG1lYW5pbmcNCj4g PiA+Pj4gZm9yIHRoZQ0KPiA+ID4+IHBsYXRmb3JtLg0KPiA+ID4+PiBUaG9zZSBzcGVjaWFsIGVu dHJpZXMgc2hvdWxkIGJlIG1hcmtlZCB1c2luZyB0aGUNCj4gPiA+Pj4gT1ZNRl9TRUNUSU9OX1RZ UEVfe1REWCxTTlB9X1hYWFguIEl0IGlzIHBlcmZlY3RseSBmaW5lIHRvIGhhdmUgYQ0KPiA+ID4+ PiBtb3JlDQo+ID4gPj4gdGhhbg0KPiA+ID4+PiBvbmUgZW50cnkgZm9yIHRoZSBzYW1lIHJlZ2lv biB3aXRoIGRpZmZlcmVudCB0eXBlLCBlLmcNCj4gPiA+Pj4NCj4gPiA+Pj4gR2hjYkJvb2trZWVw aW5nU25wOg0KPiA+ID4+Pg0KPiA+ID4+PiAgwqAgR0hDQl9CT09LS0VQSU5HX0JBU0VfQUREUkVT Uw0KPiA+ID4+Pg0KPiA+ID4+PiAgwqAgR0hDQl9CT09LS0VFUElOR19TSVpFDQo+ID4gPj4+DQo+ ID4gPj4+ICDCoCBPVk1GX1NFQ1RJT05fVFlQRV9TTlBfTUVNDQo+ID4gPj4+DQo+ID4gPj4+IFRk eE1haWxCb3hFeHQ6DQo+ID4gPj4+DQo+ID4gPj4+ICDCoCBHSENCX0JPT0tLRVBJTkdfQkFTRV9B RERSRVNTDQo+ID4gPj4+DQo+ID4gPj4+ICDCoCBHSENCX0JPT0tLRUVQSU5HX1NJWkUNCj4gPiA+ Pj4NCj4gPiA+Pj4gIMKgIE9WTUZfU0VDVElPTl9UWVBFX1REWF9NQUlMQk9YDQo+ID4gPj4+DQo+ ID4gPj4+IElmIHdlIHdhbnQgYWxsIHRoZSBPVk1GX1NFQ1RJT05fVFlQRV9TTlBfeHh4IHNob3Vs ZCBiZSBkZWZpbmVkIGluIGENCj4gPiA+Pj4gc2VwYXJhdGUgZmlsZSB0aGVuIHRoYXQgaXMgYWxz byBkb2FibGUuIEkgcHV0IGV2ZXJ5dGhpbmcgaW4gb25lDQo+ID4gPj4+IHBsYWNlIGJlY2F1c2Ug SQ0KPiA+ID4+IHdhcw0KPiA+ID4+PiB0cnlpbmcgdG8ga2VlcCBlbnRyeSBvcmRlciBzaW1pbGFy IHRvIHdoYXQgaXMgcHJlc2VudCBpbiBNRU1GRC4NCj4gPiA+Pj4NCj4gPiA+Pj4gdGhhbmtzDQo+ ID4gPj4+DQo+ID4gPj4+IE9uIDkvMjMvMjEgNjozOSBBTSwgWWFvLCBKaWV3ZW4gd3JvdGU6DQo+ ID4gPj4+PiBJIHN0cm9uZ2x5IHJlY29tbWVuZCB0byBzZXBhcmF0ZSBTRVYgYW5kIFREWCBpbiBh bGwgY29udGV4dCwgaWYgaXQNCj4gPiA+Pj4+IGlzDQo+ID4gPj4gc29tZXRoaW5nDQo+ID4gPj4+ IFNFViBvciBURFggc3BlY2lmaWMuDQo+ID4gPj4+PiBUaGVuIGVhY2ggZmlsZSBoYXMgY2xlYXIg b3duZXJzaGlwLg0KPiA+ID4+Pj4gSWYgaXQgaXMgc29tZXRoaW5nIGdlbmVyaWMgZm9yIGJvdGgg U0VWIGFuZCBURFgsIGl0IGNhbiBpbiBvbmUgZmlsZS4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBGb3Ig ZXhhbXBsZSwgU2VjUGVpVGVtcFJhbS9TZWNQYWdlVGFibGUgY2FuIGJlIGluIGNvbW1vbiBmaWxl Lg0KPiA+ID4+Pj4gQnV0IFNldlNucFNlY3JldHMvR2hjYkJvb2trZWVwaW5nIHNob3VsZCBiZSBp biBTRVYgZmlsZS4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBUaGFuayB5b3UNCj4gPiA+Pj4+IFlhbyBK aWV3ZW4NCj4gPiA+Pj4+DQo+ID4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiA+Pj4+PiBGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4NCj4gPiA+Pj4+ PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDIzLCAyMDIxIDQ6NDggUE0NCj4gPiA+Pj4+PiBU bzogWHUsIE1pbiBNIDxtaW4ubS54dUBpbnRlbC5jb20+DQo+ID4gPj4+Pj4gQ2M6IGRldmVsQGVk azIuZ3JvdXBzLmlvOyBBcmQgQmllc2hldXZlbA0KPiA+ID4+Pj4+IDxhcmRiK3RpYW5vY29yZUBr ZXJuZWwub3JnPjsgSnVzdGVuLCBKb3JkYW4gTA0KPiA+ID4+Pj4+IDxqb3JkYW4ubC5qdXN0ZW5A aW50ZWwuY29tPjsgQnJpamVzaCBTaW5naA0KPiA+ID4+Pj4+IDxicmlqZXNoLnNpbmdoQGFtZC5j b20+OyBFcmRlbSBBa3RhcyA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsNCj4gPiA+PiBKYW1lcw0K PiA+ID4+Pj4+IEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgWWFvLCBKaWV3ZW4NCj4g PiA+Pj4+PiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBUb20gTGVuZGFja3kgPHRob21hcy5sZW5k YWNreUBhbWQuY29tPg0KPiA+ID4+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggVjcgMS8xXSBPdm1m UGtnOiBFbmFibGUgVERYIGluIFJlc2V0VmVjdG9yDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBPbiBU aHUsIFNlcCAyMywgMjAyMSBhdCAxMjozODoyNEFNICswMDAwLCBYdSwgTWluIE0gd3JvdGU6DQo+ ID4gPj4+Pj4+IE9uIFNlcHRlbWJlciAyMiwgMjAyMSAzOjQ5IFBNLCBHZXJkIEhvZmZtYW5uIHdy b3RlOg0KPiA+ID4+Pj4+Pj4gICAgSGksDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+ICslaWZk ZWYgQVJDSF9YNjQNCj4gPiA+Pj4+Pj4+PiArOw0KPiA+ID4+Pj4+Pj4+ICs7IFREWCBNZXRhZGF0 YSBvZmZzZXQgYmxvY2sNCj4gPiA+Pj4+Pj4+PiArOw0KPiA+ID4+Pj4+Pj4+ICs7IFRkeE1ldGFk YXRhLmFzbSBpcyBpbmNsdWRlZCBpbiBBUkNIX1g2NCBiZWNhdXNlIEludGUgVERYIGlzDQo+ID4g Pj4+Pj4+Pj4gK29ubHkgOyBhdmFpbGFibGUgaW4gQVJDSF9YNjQuIEJlbG93IGJsb2NrIGRlc2Ny aWJlcyB0aGUgb2Zmc2V0DQo+ID4gPj4+Pj4+Pj4gK29mIDsgVGR4TWV0YWRhdGEgYmxvY2sgaW4g T3ZtZiBpbWFnZSA7IDsgR1VJRCA6DQo+ID4gPj4+Pj4+Pj4gK2U0N2E2NTM1LTk4NGEtNDc5OC04 NjVlLTQ2ODVhN2JmOGVjMg0KPiA+ID4+Pj4+Pj4+ICs7DQo+ID4gPj4+Pj4+Pj4gK3RkeE1ldGFk YXRhT2Zmc2V0U3RhcnQ6DQo+ID4gPj4+Pj4+Pj4gKyAgICBERCAgICAgIHRkeE1ldGFkYXRhT2Zm c2V0U3RhcnQgLSBUZHhNZXRhZGF0YUd1aWQgLSAxNg0KPiA+ID4+Pj4+Pj4+ICsgICAgRFcgICAg ICB0ZHhNZXRhZGF0YU9mZnNldEVuZCAtIHRkeE1ldGFkYXRhT2Zmc2V0U3RhcnQNCj4gPiA+Pj4+ Pj4+PiArICAgIERCICAgICAgMHgzNSwgMHg2NSwgMHg3YSwgMHhlNCwgMHg0YSwgMHg5OCwgMHg5 OCwgMHg0Nw0KPiA+ID4+Pj4+Pj4+ICsgICAgREIgICAgICAweDg2LCAweDVlLCAweDQ2LCAweDg1 LCAweGE3LCAweGJmLCAweDhlLCAweGMyDQo+ID4gPj4+Pj4+Pj4gK3RkeE1ldGFkYXRhT2Zmc2V0 RW5kOg0KPiA+ID4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+PiArJWVuZGlmDQo+ID4gPj4+Pj4+PiBU aGlzIHNob3VsZCBiZSBzd2l0Y2hlZCB0byBjb21tb24gb3ZtZiBtZXRhZGF0YSAoc2VlIHBhdGNo ZXMgNC03DQo+ID4gPj4+Pj4+PiBvZiB0aGUgU0VWLVNOUCBzZXJpZXMpLg0KPiA+ID4+Pj4+Pj4N Cj4gPiA+Pj4+Pj4+IE1pbjogcGxlYXNlIGhhdmUgYSBsb29rIGF0IHRoZXNlIHBhdGNoZXMuDQo+ ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+PiBIaSwgR2VyZA0KPiA+ID4+Pj4+PiBJIGNoZWNrZWQgdGhl IHBhdGNoZXMgNC03IG9mIHRoZSBTRVYtU05QIHNlcmllcy4gVGhlIGNvbW1vbg0KPiA+ID4+Pj4+ PiBPdm1mTWV0YWRhdGEgaXMgZGVzaWduZWQgZm9yIGJvdGggU0VWIGFuZCBURFgsIHJpZ2h0Pw0K PiA+ID4+Pj4+IFRoYXQgaXMgdGhlIGlkZWEsIHllcy4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+PiBJ ZiBzbywgdGhlbiBpdCBtZWFucyB0aGUgU0VWIGFuZCBURFggbWV0YWRhdGEgd2lsbCBiZSBtaXhl ZCBpbg0KPiA+ID4+Pj4+PiB0aGlzIE92bWZNZXRhZGF0YS4NCj4gPiA+Pj4+PiBZZXMuDQo+ID4g Pj4+Pj4NCj4gPiA+Pj4+Pj4gSSBhbSB0aGlua2luZyB0aGVyZSB3aWxsIGFsd2F5cyBiZSBkaWZm ZXJlbnQgZmllbGRzIGZvciBTRVYgYW5kIFREWC4NCj4gPiA+Pj4+Pj4gRm9yIGV4YW1wbGUsIFNF ViBoYXMgUGNkT3ZtZlNlY0doY2JQYWdlVGFibGUgYnV0IFREWCBkb2Vzbid0DQo+IG5lZWQNCj4g PiA+Pj4+Pj4gdGhhdCBwYWdlLiBJZiB0aGUgY29tbW9uIE92bWZNZXRhZGF0YSBpcyBjb25zdW1l ZCBieSBURFgtUUVNVSwNCj4gPiA+PiB0aGVuDQo+ID4gPj4+Pj4+IFBjZE92bWZTZWNHaGNiUGFn ZVRhYmxlQmFzZSB3aWxsIGJlIGluaXRpYWxpemVkIHRvby4NCj4gPiA+Pj4+Pj4gVGhhdCBkb2Vz bid0IG1ha2Ugc2Vuc2UuDQo+ID4gPj4+Pj4gV2UgaGF2ZSBkaWZmZXJlbnQgcmFuZ2UgdHlwZXMu ICBPVk1GXyogYXJlIHRoZSBjb21tb24gYXJlYXMuDQo+ID4gPj4+Pj4gU0VWXyogd2lsbCBiZSB1 c2VkIGJ5IHNldiBvbmx5LCBURFhfKiB3aWxsIGJlIHVzZWQgYnkgdGR4IG9ubHkuDQo+ID4gPj4+ Pj4gVERYIGFuZCBTRVYgZW50cmllcyBhcmUgYWxsb3dlZCB0byBvdmVybGFwLCBpLmUuDQo+ID4g Pj4+Pj4gUGNkT3ZtZlNlY0doY2JQYWdlVGFibGVCYXNlIHNob3VsZCBoYXZlIHNvbWUgU0VWXyog dHlwZSBmb3Igc2V2DQo+IChJDQo+ID4gPj4+Pj4gdGhpbmsgdGhpcyBuZWVkcyBmaXhpbmcgaW4g dGhlIHNlcmllcyksIGFuZCB0ZHggY2FuIHVzZSB0aGUgcGFnZQ0KPiA+ID4+Pj4+IGZvciBzb21l dGhpbmcgZWxzZSBieSBhZGRpbmcgYW4NCj4gPiA+Pj4+PiBURFhfKiBlbnRyeSBmb3IgdGhlIHNh bWUgcmFuZ2UuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+Pj4gSSBhbSB0aGlua2luZyB0aGF0IFNFViBh bmQgVERYIGNhbiBrZWVwIHRoZWlyIG93biBNZXRhZGF0YSAoaW4NCj4gPiA+Pj4+Pj4gc2VwYXJh dGUgZmlsZXMsIFNldk1ldGFkYXRhLmFzbSBhbmQgVGR4TWV0YWRhdGEuYXNtKSB3aGljaCBhcmUN Cj4gPiA+Pj4+Pj4gcG9pbnRlZCBieSB0aGUgU0VWIG9yIFREWCBvZmZzZXRzIGluIHRoZSBHVUlE LWVkIGNoYWluIGluIFJlc2V0VmVjdG9yLg0KPiA+ID4+Pj4+IEknZCB2ZXJ5IG11Y2ggcHJlZmVy IHRvIGhhdmUgYSBzaW5nbGUgdGFibGUgdG8gYXZvaWQgZHVwbGljYXRpb24NCj4gPiA+Pj4+PiBm b3IgdGhlIGNvbW1vbiBtZW1vcnkgYXJlYXMgYW5kIGtlZXAgdGhlIHJlc2V0IHZlY3RvciBzbWFs bC4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IEhhdmluZyBzZXBhcmF0ZSBTZXZNZXRhZGF0YS5hc20g KyBUZHhNZXRhZGF0YS5hc20gZmlsZXMgKHRoZW4gaGF2ZQ0KPiA+ID4+Pj4+IE92bWZNZXRhZGF0 YS5hc20gaW5jbHVkZSB0aGVzZSB0d28pIGlzIGFuIG9wdGlvbi4gIEkgdGhpbmsgdGhpcw0KPiA+ ID4+Pj4+IGlzbid0IG5lZWRlZCwgd2UgY2FuIGFsc28ganVzdCBncm91cCB0aGUgZW50cmllcyBp biBPdm1mTWV0YWRhdGEuYXNtLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4+IEluIHRoaXMgY2FzZSwg U0VWIGFuZCBURFggY2FuIGRlc2lnbiB0aGVpciBvd24gbWV0YWRhdGEgZmxleGlibHksDQo+ID4g Pj4+Pj4+IGZvciBleGFtcGxlLCB0aGUgYXR0cmlidXRlLCB0aGUgaXRlbSBzdHJ1Y3R1cmUsIGFk ZC9yZW1vdmUvdXBkYXRlDQo+ID4gPj4+Pj4+IHRoZSBpdGVtcywgZXRjLg0KPiA+ID4+Pj4+IFdo eSBoYXZlIHR3byB3YXlzIHRvIGRvIHRoZSBzYW1lIHRoaW5nPw0KPiA+ID4+Pj4+DQo+ID4gPj4+ Pj4gdGFrZSBjYXJlLA0KPiA+ID4+Pj4+ICAgIEdlcmQNCj4gPiA+Pj4NCj4gPiA+Pj4NCj4gPiA+ Pj4gDQo+ID4gPj4+DQo+ID4gPg0K