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 BFAE3D8107F for ; Tue, 31 Oct 2023 09:56:58 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=THKI4kikC2h0vVcqDfBz8zXt45ABH+XB5cDDL0s62RQ=; 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=1698746217; v=1; b=Ycg1kXXu1tC81b+zlXFVonKm/IMj6Pll/ASZ/pVhFm9mOvenOrf5nSn0vxDCP2AVqpr7m+nb tvPMp71myr9rWLoWgSNAAbor51jc+0vYKqC4jwJ1pL2tKdBl85zxCYBAyhGMIj63d3XuIhZGk4S K23tPHcZcS9fUZrTYVaLMTDg= X-Received: by 127.0.0.2 with SMTP id K6VxYY7687511x8KO4PfU1gY; Tue, 31 Oct 2023 02:56:57 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by mx.groups.io with SMTP id smtpd.web11.182751.1698746216440646288 for ; Tue, 31 Oct 2023 02:56:56 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10879"; a="1139197" X-IronPort-AV: E=Sophos;i="6.03,265,1694761200"; d="scan'208";a="1139197" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Oct 2023 02:56:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10879"; a="760571077" X-IronPort-AV: E=Sophos;i="6.03,265,1694761200"; d="scan'208";a="760571077" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga002.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 31 Oct 2023 02:56:55 -0700 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.2507.34; Tue, 31 Oct 2023 02:56:54 -0700 X-Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 31 Oct 2023 02:56:53 -0700 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Tue, 31 Oct 2023 02:56:53 -0700 X-Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.40) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Tue, 31 Oct 2023 02:56:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ES4lo1g2NkKjLV+bNV97RIf3C0M4T2itotC9AlxY96Kq8PZGoxFg7VHIWfy3Wo/qW0FQan1mcLBL1bwJbbB4e6Vul9JriaOIHB+jRuHjTnfcsuXlCWnc2ckcleigYzAybMDB05DQmcnOtmRK21D463JDMvopyEN1Y2vwhzXIXxs0T4CwL430MIc14l8EA0JCEBMS4fogZ48sCcVma8sv4gZ7wtNGHS5LCQO2Qf6hDW49QnTK4xsuKCdye39+jmf6M8ppM5u5S3s3Jiltt4jnrxCO98LWQ7CqYVMJkJBGhAOnRWOBeypuCGhad4ywIpGW6ReOQ1+5AvrZw6DMup98rA== 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=kY8dd/yJ9A86X6W+IwHiVZmO8coJ5nr/bHzJpCDrRBQ=; b=QHnxdhA3OHX5pu3U/LW8Yd9J6NPlASWKux0XV0Nase/Wh895tgTxEZTOU38/F5Fer+hZNFMaxqil0HGxMD9GVja4UKnOlvy30hb2eKjVpfX9ueNY0zMmK3WjCLl+VyL7wIJV102ltmcFo38C07o5MTsffpXkM0WfrGFUOaJrzToguWvggazergElsvzl9bkMlU9WG6gBdUv7H3qi8r8/eWNzPHgLBgUCaivVLQDxYEaYyFbgXOt1wBFCVkI9GqjTKOhzf+zw2Wcac66u+LQ6ObXsQTr7/6k59uPV3aAZ+0MezXVH5rN/Mj9gkUJhWL6dJ1UomAPqGPSwjvFq8mHuQQ== 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 X-Received: from BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by CH0PR11MB5316.namprd11.prod.outlook.com (2603:10b6:610:bf::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Tue, 31 Oct 2023 09:56:51 +0000 X-Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::83d:af7b:9ba0:64d2]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::83d:af7b:9ba0:64d2%4]) with mapi id 15.20.6954.019; Tue, 31 Oct 2023 09:56:50 +0000 From: "duntan" To: Laszlo Ersek , "devel@edk2.groups.io" , "thomas.lendacky@amd.com" , "leo.duran@amd.com" , "brijesh.singh@amd.com" , "Chang, Abner" , "michael.roth@amd.com" , "Attar, AbdulLateef (Abdul Lateef)" CC: "Ni, Ray" , "Yao, Jiewen" Subject: Re: [edk2-devel] [PATCH 0/7] Support Tdx and sev in BaseIoLibIntrinsic and remove BaseIoLibIntrinsicSev Thread-Topic: [edk2-devel] [PATCH 0/7] Support Tdx and sev in BaseIoLibIntrinsic and remove BaseIoLibIntrinsicSev Thread-Index: AQHaCJiEbq0hqvyGs0+1Tmniw3oYDbBdIKuggAADw7CAABCdIIAAAmGQgAAHkHCAAOmYgIAA7TOAgARuybA= Date: Tue, 31 Oct 2023 09:56:50 +0000 Message-ID: References: <20231027054300.1382-1-dun.tan@intel.com> <3692a402-fede-9534-0517-72298ff2aff8@redhat.com> In-Reply-To: <3692a402-fede-9534-0517-72298ff2aff8@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5483:EE_|CH0PR11MB5316:EE_ x-ms-office365-filtering-correlation-id: edea1d8b-3b1d-4c62-b54d-08dbd9f7b454 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: TXpHN/ZALUji+6hmMYkF/r1AsWWX7cvTWKIis03dxcXRDB2oQALInRrMeTIfdrAB0x7dupg9ijiJkcBZnhNPZLfPdSPw7zcE8YYHQe+Hfcyv0Kaz3vJrAAVRvDh8m1ZAwU8La4Kvlof3dmYJifGGPxx3vzwrS1KXgczdMmVOEUH3Qp+BA3V1qQizIxmaC0H8POZhMmqMVZZiS9aMjnVRCGql0gNxbj1hoZTe2gv4uNioAQzsrnl5EkFQ0wKcnLtmo4LAJkpPkjQzOeMidIw5Q5ZpoVAVidv3sXoarUmd0NYluWpKKwU2raHdjz0mM+yHIc2Ruie0l4hqkKq06xmNaGUXUtPD5xg/Y8/KSyZs4jsync/jN5dMF1K3XNLq19TlLhhTm6F1YKdSa80W9hFy0OW44QIk6wCwvuXqLdlfItuew/zG7QBlgxpTWtAofv39iqNai72AURXa0DQVXcLfxVoGwnmcFyy+YxIMdMP/MVor41Ne2KunPBKV9e/K44Auu49jtndUjJNJqrmJKL6abBeXiU6IAosN75R+rzz4WKDl34dtPyCTfmfDlyV17Rr14BhI2L8z7H8PZrq1g73Vq2gamWcHpur7gruaOh3kIYxo3MWKFe1bJ/WkeLRWM8yMC9fOVH2h1cPUUOrlA3tDs6Gg8Rvg2V8Y6fG0oYFkKEc= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R1NEeW1vTko0Ujc1L0lXOVMyRllBOS90aVlWbnBtSWtEd0pISUViaXgweTZu?= =?utf-8?B?OEgraVBRNVpTWWl6cTJlNm9jMk1SRVpiWllucXJld0JHSHJoa2tocHhFRSs0?= =?utf-8?B?Nm5nTlVKUUlHRHpWdk8yV051UElVR1pFUGR1ak9ieS8rQTZCMDZUQVFTNWs2?= =?utf-8?B?b3lmTCtCU2YzMXpIaUpZZXFZT21RNVN3VEJYcDdtZHZoeC8wbzk1M2lNMnJY?= =?utf-8?B?WXNsS01rc1lIVjh0amdXNEJLeGE1Z2NrQzNONHVmSjhzbnBBSEFXZ2VoZTJP?= =?utf-8?B?ZDd2SSs5akZhRlgrQmswYWRLbC9RdUVBQ1BEbDMyaXJZMTdadkIvK21xVzVD?= =?utf-8?B?YnVHWTVsMi9vVlRFY3lLN1BkOWtMd1BNUGp2ekNmOEpGOHppdG9aVUlRemFC?= =?utf-8?B?OFdGNVBiM1JRNTRyWkFaclNRSUd6K2V2VEdLOEZqNTdjNWRiOU0wbW1DbEVs?= =?utf-8?B?MjFBbXlTaC9wektrQzdQTityOGtEQnpaTm9DemFMOGU2TWUwTTlITWh0ZUFC?= =?utf-8?B?NzZjSnpVeVN5MDNJc0hUNGFqUEs2S3ZyS2xRNTg1T01CVVVUaUlvUnhRcTd0?= =?utf-8?B?TVpwVldybWd6WTNheXVCRU5ZUzlPbVMxbmkzK3hld1owc3ltaEVFZ2VMazhy?= =?utf-8?B?ZTZ4ME5pOEJmUFFpbEFmR1BtemZsOVNpbG16NVAxQlNaRGxOaXFRdWY1TTBz?= =?utf-8?B?NzVsRUFkNTNqa0phdFhqbXdBRnJQUDRGLzErbFZUOXVjejdsL0lCRWl5SVU3?= =?utf-8?B?K0xSQyswQTZzdlNCTEpBSGdTTyswZEFzWnAxalBRQzI5c0E4bVhETjZpRGtp?= =?utf-8?B?elJXcS9yVFMweXdqVTdYTkw1ZkUzVTBNc2E5dE9KN2RzQU5OU2xwUHZMV0h4?= =?utf-8?B?cmF5VHVRZ2RrRm9rR2s1UHJ6ZUxpeFZwT2dmMlBOUGU1YXpOU0krS3BQS01k?= =?utf-8?B?UFcxSGlydVpuOWRMY2VlazN5eXY5Vnp1aDR1SE42UlRwQzdQM2JxeDE0ZG5l?= =?utf-8?B?YVZhVnhuazAzTmNMTDlHK2taWUxDbkI4SVB6R1VHbVZaY1J3YmY0NEJEK21Z?= =?utf-8?B?dDU4cWVqZXJMY3Y0LzB3WXdEYXpOUCtKNEp6bU15ek95dUVUeXdnZVk2RXk1?= =?utf-8?B?ZmpucktSSUxQWFBoczZvVkNOZGJJdkFSQ0orRS9TbEdHMXFCMFM3bVVEVHhi?= =?utf-8?B?ZnEvbGdENVBzZ3NuOWJOTmFCYUp1cTRqWWJnZDE5eVlFTUFVUkYzRmNhU2Zk?= =?utf-8?B?SHdjcDNuV25naVFQRUorSkM3RENtMklNVkVEZ282Qk1rQ0p0bW1MT1ZqZEZM?= =?utf-8?B?NFEreGZENFhIOXFhL05hT3BRNHB1ZjBua0dPaEhzdlBxLzFHYUxIWFB6MHZX?= =?utf-8?B?b3JXcGM1dG1CVkZtN3VQN0RjdWNCZ0hkS1hpazBMbnl5ZGFOZ1I3YzJBVDZq?= =?utf-8?B?TlpKL3gyL2ZCV2pkOUlzZGtjTW1tc28vT2hYekUzcFY5VWIzUThyaGhiSXl1?= =?utf-8?B?T3VqZUtud2pDeHFCMVdvdHQ5UmRSUnVCMlZ3aWNhKzFVS0RBL2dZMGtDWDRr?= =?utf-8?B?S1p4SlhUWXZzZFFMN3kxN21Ka2IxeCt1VWd1R2k3SnE1bmNaWXVZQTQwV1dD?= =?utf-8?B?RzhuYXh4NkdOeEZWenJBVUdsZVU1dncwTmVtSUxGeGNyckwrUWJYcmtvMDJo?= =?utf-8?B?MXRFWk1USEorbDU1Z3ErdHFDL25tSzNFQnAzK2R5bTFqODdhVTUwS25ZSElu?= =?utf-8?B?UUltbDlQemFDQ0x3RDlhSmJ5Y3JWb0xWSTg3dEdEdmhFNUg3OE1TWDhyOVBP?= =?utf-8?B?KzZDUGVNUlB1emtTQjZ4SVdaWTJPM1VjWjRkeWJ4RnB4RlVaTEhSSk1vS3ZK?= =?utf-8?B?L014QVBnZFNrb0tMcHBOaklRbVRwOWdnYUdOSGhZOTlzQ1NtOUZTMVRpdTVp?= =?utf-8?B?M0liKzZyTUNpN1pqQmFTd3dmZDZ1V3hSMC8rMTlZT0RGaFJOSHViWmpUVEJI?= =?utf-8?B?d0c2a0M1U0Y2SFFwYStyQUdaMGxqWXRab1NVZjJ6NW16Y0RnejFaS0g0VG11?= =?utf-8?B?TFdQTTZOckZRTjZiZktDN1Rsa2RQdnJFWWhvb0FRbmw0YlNDR1JFbU5wRDAz?= =?utf-8?Q?UMFY=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: edea1d8b-3b1d-4c62-b54d-08dbd9f7b454 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2023 09:56:50.8037 (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: FPFKd2qKD+rqqUw4LCNd3/ZBMCT7N05P4oH1riNP3LU/pqSjRjP9T1NtQQH99NbH9CGik0EmkxFDkU0LNIJnhw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5316 X-OriginatorOrg: intel.com 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,dun.tan@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 2aBtnANnrlAsGB7LNRmRT69xx7686176AA= 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=Ycg1kXXu; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SGkgVG9tLA0KVGhhbmtzIGZvciB5b3VyIHRlc3RpbmcgYW5kIGNvbW1lbnRzLiBJJ2xsIG1vZGlm eSB0aGUgcGF0Y2ggY29tbWl0IG1lc3NhZ2UgYW5kIGNvZGUgYWNjb3JkaW5nIHRvIHlvdXIgY29t bWVudHMuIA0KWWVzIHRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBmb3IgSW9SZWFkRmlm by8gSW9Xcml0ZUZpZm8gQVBJIGZvciBub24tVGR4IGFuZCBub24tU0VWIGNhc2UuIExvb2tpbmcg Zm9yd2FyZCB0byBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIGNvbW11bml0eS4NCg0KSGkgTGFzemxv LA0KTWF5IEkga25vdyB0aGUgYWN0dWFsbHkgcGVyZm9ybWFuY2UgZ2FwIGRhdGEgaW4gdGhlIGNh c2UgdGhhdCB5b3UgbWVudGlvbmVkPyANCkFsc28sIGlmIGEgREVCVUcgYmluYXJ5IGlzIHVzZWQs IEkgdGhpbmsgdGhlIGJvb3QgdGltZSBpbXBhY3QgbWlnaHQgYmUgYWNjZXB0YWJsZT8NCg0KVGhh bmtzLA0KRHVuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPiANClNlbnQ6IFNhdHVyZGF5LCBPY3RvYmVyIDI4LCAyMDIz IDc6NDAgUE0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgdGhvbWFzLmxlbmRhY2t5QGFtZC5j b207IFRhbiwgRHVuIDxkdW4udGFuQGludGVsLmNvbT47IGxlby5kdXJhbkBhbWQuY29tOyBicmlq ZXNoLnNpbmdoQGFtZC5jb207IENoYW5nLCBBYm5lciA8YWJuZXIuY2hhbmdAYW1kLmNvbT47IG1p Y2hhZWwucm90aEBhbWQuY29tOyBBdHRhciwgQWJkdWxMYXRlZWYgKEFiZHVsIExhdGVlZikgPEFi ZHVsTGF0ZWVmLkF0dGFyQGFtZC5jb20+DQpDYzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47 IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW1BBVENIIDAvN10gU3VwcG9ydCBUZHggYW5kIHNldiBpbiBCYXNlSW9MaWJJbnRyaW5z aWMgYW5kIHJlbW92ZSBCYXNlSW9MaWJJbnRyaW5zaWNTZXYNCg0KT24gMTAvMjcvMjMgMjM6MzEs IExlbmRhY2t5LCBUaG9tYXMgdmlhIGdyb3Vwcy5pbyB3cm90ZToNCj4gT24gMTAvMjcvMjMgMDM6 MDUsIFRhbiwgRHVuIHdyb3RlOg0KPj4gSGkgYWxsLA0KPj4NCj4+IENvdWxkIHlvdSBwbGVhc2Ug aGVscCB0byByZXZpZXcgdGhpcyBwYXRjaCBzZXQ/IEluIHRoaXMgcGF0Y2ggc2V0LCANCj4+IHRo ZSBJb0xpYiBpbnN0YW5jZSBCYXNlSW9MaWJJbnRyaW5zaWMgaXMgbW9kaWZpZWQgdG8gc3VwcG9y dCBBTUQgU0VWIA0KPj4gZmVhdHVyZSBhbmQgdGhlIEJhc2VJb0xpYkludHJpbnNpY1NldiBpcyBy ZW1vdmVkLg0KPj4gQWxzbyBjb3VsZCB5b3UgaGVscCB0byBkbyBhIHRlc3Qgb24gQU1EIHByb2Nl c3NvciB0byBtYWtlIHN1cmUgdGhhdCANCj4+IHRoZSBTRVYgZmVhdHVyZSBzdGlsbCB3b3JrcyBn b29kIHdpdGggdGhpcyBwYXRjaCBzZXQ/DQo+IA0KPiBJIHdhcyBhYmxlIHRvIHRlc3QgU0VWLCBT RVYtRVMgYW5kIFNFVi1TTlAgZ3Vlc3RzIHN1Y2Nlc3NmdWxseSBhdCBlYWNoIA0KPiBzdGVwIG9m IHRoZSBwYXRjaHNldC4NCj4gDQo+IEhvd2V2ZXIsIHlvdSBhcmUgdW5yb2xsaW5nIHRoZSBzdHJp bmcgSS9PIGZvciBldmVyeW9uZSwgbm93LCBub3QganVzdCANCj4gU0VWIGd1ZXN0cy4gSXMgdGhh dCBhY2NlcHRhYmxlIHRvIHRoZSBjb21tdW5pdHk/DQoNClRoYW5rIHlvdSBmb3IgbWFraW5nIHRo aXMgY29tbWVudCwgVG9tLCBiZWNhdXNlIHRoaXMgaXMgZXhhY3RseSB3aGF0IEkgbWVhbnQgdG8g cmFpc2UgaW1tZWRpYXRlbHksIHVwb24gcmVhZGluZyB0aGUgY292ZXIgbGV0dGVyLg0KDQpObywg aXQgaXMgbm90IGFjY2VwdGFibGUuDQoNClRoZSBGSUZPIHZhcmlhbnRzIGV4aXN0IGZvciBhIHJl YXNvbi4gV2hlbiB0aGUgZ3Vlc3QgcGVyZm9ybXMgbXVsdGlwbGUgaW5kaXZpZHVhbCBJTyBQb3J0 IGFjY2Vzc2VzLCB0aG9zZSB0cmFuc2xhdGUgdG8gaW5kaXZpZHVhbCB0cmFwcyB0byB0aGUgaHlw ZXJ2aXNvciwgd2l0aCBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBpbXBhY3QuIFdoZW4gSU8gUG9y dCBzdHJpbmcgb3BlcmF0aW9ucyBhcmUgdXNlZCBpbnN0ZWFkLCB3aXRoIHRoZSBSRVAgcHJlZml4 LCB0aGVuIHRoZXJlIGlzIGp1c3QNCipvbmUqIHRyYXAsIGFuZCB0aGUgaHlwZXJ2aXNvciBjYW4g cGVyZm9ybSB0aGUgd2hvbGUgInN0cmluZyIgdHJhbnNmZXIgaW4gb25lIGdvICh1cCB0byBhIHBh Z2Ugc2l6ZSwgYW55d2F5cywgSUlSQykuIFRoaXMgaGFzIHZlcnkgdmlzaWJsZSBpbXBhY3Qgb24g T1ZNRiBkZWJ1ZyBvdXRwdXQgKHZpYSB0aGUgaXNhLWRlYnVnY29uIFFFTVUgZGV2aWNlKSwgYW5k L29yIGluIGNhc2UgZndfY2ZnIGlzIHVzZWQgd2l0aG91dCBETUEgc3VwcG9ydC4NCg0KKElmIHlv dSBzZWFyY2ggT3ZtZlBrZyBmb3IgSW9SZWFkRmlmbzggYW5kIElvV3JpdGVGaWZvOCwgeW91J2xs IGZpbmQgdGhlIFFlbXVGd0NmZ0xpYiBhbmQgUGxhdGZvcm1EZWJ1Z0xpYklvUG9ydCBsaWJyYXJp ZXMgdXNpbmcgdGhlbS4pDQoNCkluIGZhY3QsIGR1cmluZyBpbml0aWFsIFNFViBlbmFibGVtZW50 LCB0aGUgU0VWIGVubGlnaHRlbm1lbnQgd2FzIGludHJvZHVjZWQgYmVjYXVzZSBTRVYgZG9lcyBu b3QgaGFuZGxlIHRoZSBSRVAgcHJlZml4IHdpdGggdGhlc2UgaW5zdHJ1Y3Rpb25zLCBhbmQgc28g YSBmYWxsYmFjayBoYWQgdG8gYmUgYWRkZWQuDQoNClNlZSBjb21taXRzIGI2ZDExZDdjNDY3OCAo Ik1kZVBrZzogQmFzZUlvTGliSW50cmluc2ljIChJb0xpYiBjbGFzcykgbGlicmFyeSIsIDIwMTct MDQtMTMpIGFuZCA5NzM1M2E5YzkxNGQgKCJPdm1mUGtnOiBVcGRhdGUgZHNjIHRvIHVzZSBJb0xp YiBmcm9tIEJhc2VJb0xpYkludHJpbnNpY1Nldi5pbmYiLCAyMDE3LTA3LTEwKS4NCg0KQWNjb3Jk aW5nbHksIHRoZXJlJ3MgYSAqaHVnZSogcGVyZm9ybWFuY2UgKGJvb3QgdGltZSkgaW1wYWN0IHdo ZW4geW91IGJvb3QgT1ZNRiBpbiBhIFNFViBndWVzdCB3aXRoIERFQlVHX1ZFUkJPU0UgbWVzc2Fn ZXMgZW5hYmxlZCAoYW5kIGNhcHR1cmVkOyBpLmUuLCB3aGVuIHRoZSBpc2EtZGVidWdjb24gZGV2 aWNlIGlzIGFjdGl2ZSkuDQoNCj4gSSB0aGluayB0aGVyZSBuZWVkIHRvDQo+IGJlIGNvbW1lbnRz IGluIElvTGliRmlmby5jIGFyb3VuZCB0aGUgbmV3IGNvZGUgYWJvdXQgd2h5IHRoZSBhY2Nlc3Mg aXMgDQo+IHVucm9sbGVkL2xvb3Bpbmcgc28gdGhhdCBzb21lb25lIGRvd24gdGhlIHJvYWQgZG9l c24ndCBjb21lIGFsb25nIGFuZCANCj4gdHJ5IHRvIHVzZSBzdHJpbmcgSS9PIGFnYWluLg0KDQpT dHJpbmcgSU8gbXVzdCBiZSBwcmVzZXJ2ZWQgZm9yIHN1Y2ggZ3Vlc3RzIHRoYXQgZG9uJ3QgcnVu IGluIENvbmZpZGVudGlhbCBWaXJ0dWFsIE1hY2hpbmVzICgiQ1ZNInMpLg0KDQpJbiBwYXJ0aWN1 bGFyIHBhdGNoZXMgIzYgYW5kICM3IHdvdWxkIGRhbWFnZSBPVk1GLg0KDQpOYWNrZWQtYnk6IExh c3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQoNCkxhc3psbw0KDQo+IA0KPiBGcm9tIGEg Y29tbWl0IG1lc3NhZ2Ugc3RhbmRwb2ludCwgeW91IGhhdmUgdXAgdG8gNzQgY2hhcmFjdGVycyBw ZXIgDQo+IGxpbmUgdG8gdXNlIGFuZCBJIHNlZSBtb3N0IG9mIHlvdXIgbWVzc2FnZXMgZG8gbm90 IG1ha2UgdXNlIG9mIHRoYXQuIA0KPiBBbHNvLCB5b3UgdXNlIHNldiB3aGVuIGl0IHNob3VsZCBi ZSBTRVYuIFVzaW5nIFNFViB3aWxsIG1ha2UgZ3JlcCdpbmcgDQo+IGNvbW1pdCBtZXNzYWdlcyBz aW1wbGVyLg0KPiANCj4gVGhhbmtzLA0KPiBUb20NCj4gDQo+Pg0KPj4gVGhhbmtzLA0KPj4gRHVu DQo+Pg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206IFRhbiwgRHVuDQo+ PiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMjcsIDIwMjMgMzozNSBQTQ0KPj4gVG86IFlhbywgSmll d2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+PiBTdWJq ZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCAwLzddIFN1cHBvcnQgVGR4IGFuZCBzZXYgaW4g DQo+PiBCYXNlSW9MaWJJbnRyaW5zaWMgYW5kIHJlbW92ZSBCYXNlSW9MaWJJbnRyaW5zaWNTZXYN Cj4+DQo+PiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uLg0KPj4gSSdsbCB1cGRhdGUgdGhlIHRl c3QgcmVzdWx0IG9uY2UgSSBmaW5pc2hlZCB0aGUgdGVzdC4gQWxzbyB0aGUgDQo+PiBhYnN0cmFj dCBtZXNzYWdlIGluIHRoaXMgcGF0Y2ggaGFzIGJlZW4gbW9kaWZpZWQgdG8gbWVudGlvbiB0aGF0 IHRoaXMgDQo+PiBwYXRjaCBzaG91bGQgbm90IGJlIG1lcmdlZCBub3cuDQo+Pg0KPj4gVGhhbmtz LA0KPj4gRHVuDQo+Pg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206IFlh bywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4+IFNlbnQ6IEZyaWRheSwgT2N0b2Jl ciAyNywgMjAyMyAzOjA3IFBNDQo+PiBUbzogVGFuLCBEdW4gPGR1bi50YW5AaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENI IDAvN10gU3VwcG9ydCBUZHggYW5kIHNldiBpbiANCj4+IEJhc2VJb0xpYkludHJpbnNpYyBhbmQg cmVtb3ZlIEJhc2VJb0xpYkludHJpbnNpY1Nldg0KPj4NCj4+IEhlcmUgaXMgbXkgc3VnZ2VzdGlv bjoNCj4+DQo+PiAxKSBQbGVhc2UgcGVyZm9ybSB0aGUgdGVzdCB0byBlbnN1cmUgdGhlIGZ1bmN0 aW9uYWwgcGFydCBpcyBjb3JyZWN0Lg0KPj4NCj4+IFdpdGhvdXQgdGhhdCwgaG93IGNhbiBwZW9w bGUga25vdyB5b3UgYXJlIGRvaW5nIHRoaW5ncyByaWdodD8NCj4+DQo+PiAyKSBJZiB5b3UgZG8g bm90IHJ1biBhbnkgdGVzdCwgYmVmb3JlIHlvdSBzZW5kIG91dCBwYXRjaCwgcGxlYXNlIGNhbGwg DQo+PiBvdXQgdGhhdCBjbGVhcmx5Lg0KPj4gVGhhdCBpcyBpbXBvcnRhbnQgdG8gcmVtaW5kZXIg dGhlIG1haW50YWluZXI6IERvbid0IG1lcmdlLCBldmVuIGlmIGl0IA0KPj4gcGFzcyByZXZpZXcu DQo+Pg0KPj4gT3RoZXJ3aXNlLCBvbmNlIHRoZSByZXZpZXcgcGFzc2VkLCB0aGUgbWFpbnRhaW5l ciBtYXkgbWVyZ2UgaXQuDQo+PiBJIGRvbid0IHRoaW5rIHRoYXQgaXMgdGhlIGludGVudGlvbi4N Cj4+DQo+Pg0KPj4NCj4+IFRoYW5rIHlvdQ0KPj4gWWFvLCBKaWV3ZW4NCj4+IMKgDQo+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBUYW4sIER1biA8ZHVuLnRhbkBpbnRl bC5jb20+DQo+Pj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDI3LCAyMDIzIDI6MzIgUE0NCj4+PiBU bzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCAwLzddIFN1cHBvcnQgVGR4 IGFuZCBzZXYgaW4gDQo+Pj4gQmFzZUlvTGliSW50cmluc2ljIGFuZCByZW1vdmUgQmFzZUlvTGli SW50cmluc2ljU2V2DQo+Pj4NCj4+PiBIaSBKaWV3ZW4sDQo+Pj4NCj4+PiBDdXJyZW50bHkgSSdt IHdvcmtpbmcgb24gdGhlIFRkeCB0ZXN0LiBTaW5jZSB0aGUgcGF0Y2ggc2V0IGRvZXNuJ3QgDQo+ Pj4gY2hhbmdlIHRoZSBjb2RlIGxvZ2ljIHdoZW4gVGR4IG9yIFNFViBpcyBlbmFibGVkLCBzbyBJ IHdhbnQgdG8gc2VuZCANCj4+PiBvdXQgdGhlIHBhdGNoIGFzIHNvb24gYXMgcG9zc2libGUgdG8g c2VlIGlmIHRoZXJlIGlzIGFueSBjb21tZW50cyANCj4+PiBmcm9tIGNvbW11bml0eS4NCj4+Pg0K Pj4+IEkgd2lsbCBpbmNsdWRlIEFNRCBTRVYgcmV2aWV3ZXIgaW4gdGhpcyBwYXRjaCBzZXJpZXMu IFRoYW5rcyBmb3IgDQo+Pj4gcmVtaW5kaW5nLg0KPj4+DQo+Pj4gVGhhbmtzLA0KPj4+IER1bg0K Pj4+DQo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBZYW8sIEppZXdl biA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+Pj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDI3LCAy MDIzIDE6NDkgUE0NCj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFRhbiwgRHVuIDxkdW4u dGFuQGludGVsLmNvbT4NCj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCAwLzdd IFN1cHBvcnQgVGR4IGFuZCBzZXYgaW4gDQo+Pj4gQmFzZUlvTGliSW50cmluc2ljIGFuZCByZW1v dmUgQmFzZUlvTGliSW50cmluc2ljU2V2DQo+Pj4NCj4+PiBISQ0KPj4+IFNpbmNlIHRoaXMgaW1w YWN0IFREWCBhbmQgU0VWLCB3b3VsZCB5b3UgcGxlYXNlIGxldCBtZSBrbm93IHdoYXQgDQo+Pj4g a2luZCBvZiB0ZXN0IHlvdSBoYXZlIGRvbmU/DQo+Pj4gSGF2ZSB5b3UgdmFsaWRhdGVkIFREWCBh bmQgU0VWIGJlZm9yZSB5b3Ugc3VibWl0IHRoZSBwYXRjaD8gUGxlYXNlIA0KPj4+IGRlc2NyaWJl IHRoYXQgY2xlYXJseSBpbiB5b3VyIHBhdGNoIGRlc2NyaXB0aW9uLg0KPj4+DQo+Pj4gQWxzbyBw bGVhc2UgaW5jbHVkZSBBTUQgU0VWIHJldmlld2VyIGluIHRoaXMgcGF0Y2ggc2VyaWVzLg0KPj4+ DQo+Pj4gVGhhbmsgeW91DQo+Pj4gWWFvLCBKaWV3ZW4NCj4+Pg0KPj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiANCj4+Pj4gZHVudGFuDQo+Pj4+IFNlbnQ6IEZyaWRh eSwgT2N0b2JlciAyNywgMjAyMyAxOjQzIFBNDQo+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPj4+PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIDAvN10gU3VwcG9ydCBUZHggYW5k IHNldiBpbiANCj4+Pj4gQmFzZUlvTGliSW50cmluc2ljIGFuZCByZW1vdmUgQmFzZUlvTGliSW50 cmluc2ljU2V2IChEb24ndCBtZXJnZSANCj4+Pj4gYmVjYXVzZSB0aGUgdGVzdCBoYXNuJ3QgYmVl biBjb21wbGV0ZWQgeWV0LikNCj4+Pj4NCj4+Pj4gVGhlIGdvYWwgaXMgdG8gaGF2ZSBzaW5nbGUg QmFzZUlvTGliSW50cmluc2ljIGluc3RhbmNlIHRoYXQgY2FuIA0KPj4+PiBhbHNvIHVzZWQgZm9y IHNldiBhbmQgVGR4Lg0KPj4+PiBJbiB0aGlzIHBhdGNoIHNldCwgc3RyaW5nIEkvTyBpbnN0cnVj dGlvbnMgYXJlIGRlbGV0ZWQgaW4gDQo+Pj4+IElvUmVhZC9Xcml0ZUZpZm8gQVBJLg0KPj4+PiBU aGVuIGNoYW5nZSB0aGUgc291cmNlIGZpbGUgb2YgQmFzZUlvTGliSW50cmluc2ljIHRvIGFsc28g c3VwcG9ydCANCj4+Pj4gVGR4IGFuZCBzZXYgZmVhdHVyZS4gU28gQmFzZUlvTGliSW50cmluc2lj U2V2IGFuZCByZWxhdGVkIGFzc2VtYmx5IA0KPj4+PiBjb2RlIGNhbiBiZQ0KPj4+IHJlbW92ZWQu DQo+Pj4+DQo+Pj4+IER1biBUYW4gKDcpOg0KPj4+PiDCoMKgIE1kZVBrZzogQ3JlYXRlIFRkeExp Yk51bGwuaW5mIGluc3RhbmNlDQo+Pj4+IMKgwqAgTWRlUGtnOiBBZGQgQ2NQcm9iZUxpYk51bGwg YW5kIFRkeExpYk51bGwgaW1wbGVtZW50DQo+Pj4+IMKgwqAgTWRlUGtnOiBzaW1wbGlmeSBJb1Jl YWQvV3JpdGVGaWZvIGluIElvTGliRmlmby5jDQo+Pj4+IMKgwqAgTWRlUGtnOnN1cHBvcnQgVGR4 IGFuZCBzZXYgaW4gQmFzZUlvTGliSW50cmluc2ljDQo+Pj4+IMKgwqAgT3ZtZlBrZzogQWRkIENj UHJvYmVMaWIgaW4gUGxhdGZvcm1Jbml0TGliLmluZg0KPj4+PiDCoMKgIE92bWZQa2c6IHVzZSBC YXNlSW9MaWJJbnRyaW5zaWMuaW5mIGluIGRzYyBmaWxlcw0KPj4+PiDCoMKgIE1kZVBrZzpyZW1v dmUgQmFzZUlvTGliSW50cmluc2ljU2V2IHJlbGF0ZWQgY29kZQ0KPj4+Pg0KPj4+PiDCoCBNZGVQ a2cvTGlicmFyeS9CYXNlSW9MaWJJbnRyaW5zaWMvQmFzZUlvTGliSW50cmluc2ljLmluZsKgwqDC oCB8wqAgMTQNCj4+Pj4gKysrKysrKysrKy0tLQ0KPj4+IC0NCj4+Pj4gwqAgTWRlUGtnL0xpYnJh cnkvQmFzZUlvTGliSW50cmluc2ljL0Jhc2VJb0xpYkludHJpbnNpY1Nldi5pbmYgfMKgIDYxDQo+ Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+Pj4+IMKgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNp Yy9JYTMyL0lvRmlmby5uYXNtwqDCoMKgwqDCoMKgwqDCoMKgIHwgMTMxDQo+Pj4+IC0tLS0tLS0t LS0tLS0tLS0tDQo+Pj4gLS0tDQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4gLQ0KPj4+PiAtLQ0KPj4+ PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+IC0tLS0tLS0tLS0tLS0NCj4+Pj4g wqAgTWRlUGtnL0xpYnJhcnkvQmFzZUlvTGliSW50cmluc2ljL0lhMzIvSW9GaWZvU2V2Lm5hc23C oMKgwqDCoMKgwqAgfCAyOTMNCj4+Pj4gLS0tLS0tLS0tLS0tLS0tDQo+Pj4gLS0tDQo+Pj4+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4+Pj4gLQ0KPj4+PiAtLQ0KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4gLQ0KPj4+PiAtLQ0KPj4+PiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4gLS0tLS0tLS0tLS0tDQo+Pj4+ IMKgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNpYy9Jb0xpYkZpZm8uY8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQ1DQo+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLQ0KPj4+PiDCoCBNZGVQa2cvTGlicmFyeS9CYXNlSW9MaWJJ bnRyaW5zaWMvSW9MaWJTZXYuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDE2Ng0K Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4gLS0NCj4+Pj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+ PiAtDQo+Pj4+IC0tDQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4gwqAgTWRlUGtn L0xpYnJhcnkvQmFzZUlvTGliSW50cmluc2ljL1g2NC9Jb0ZpZm8ubmFzbcKgwqDCoMKgwqDCoMKg wqDCoMKgIHwgMTIwDQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+IC0tDQo+Pj4+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4+Pj4gLQ0KPj4+PiAtLQ0KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+Pj4+IC0tDQo+Pj4+IMKgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNpYy9YNjQv SW9GaWZvU2V2Lm5hc23CoMKgwqDCoMKgwqDCoCB8IDI4Mg0KPj4+PiAtLS0tLS0tLS0tLS0tLS0t DQo+Pj4gLS0NCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiAtDQo+Pj4+IC0tDQo+Pj4+IC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiAtDQo+Pj4+IC0tDQo+ Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiAt DQo+Pj4+IMKgIE1kZVBrZy9MaWJyYXJ5L1RkeExpYi9UZHhMaWJOdWxsLmluZsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIxDQo+Pj4+ICsrKysrKysr KysrKysrKysrKysrKw0KPj4+PiDCoCBNZGVQa2cvTWRlTGlicy5kc2MuaW5jwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfMKgwqAgNA0KPj4+PiArKystDQo+Pj4+IMKgIE1kZVBrZy9NZGVQa2cuZHNjwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgDQo+Pj4+ICstDQo+Pj4+IMKgIE92bWZQa2cv QW1kU2V2L0FtZFNldlg2NC5kc2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAyIA0KPj4+PiArLQ0KPj4+PiDCoCBPdm1m UGtnL0JoeXZlL0JoeXZlWDY0LmRzY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAyIA0KPj4+PiArLQ0KPj4+PiDC oCBPdm1mUGtnL0Nsb3VkSHYvQ2xvdWRIdlg2NC5kc2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgDQo+Pj4+ICstDQo+Pj4+ IMKgIE92bWZQa2cvSW50ZWxUZHgvSW50ZWxUZHhYNjQuZHNjwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgDQo+Pj4+ICstDQo+Pj4+ IMKgIE92bWZQa2cvTGlicmFyeS9QbGF0Zm9ybUluaXRMaWIvUGxhdGZvcm1Jbml0TGliLmluZsKg wqDCoMKgwqDCoMKgwqAgfMKgwqAgMyANCj4+Pj4gKystDQo+Pj4+IMKgIE92bWZQa2cvTWljcm92 bS9NaWNyb3ZtWDY0LmRzY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiANCj4+Pj4gKy0NCj4+Pj4gwqAgT3ZtZlBrZy9Pdm1m UGtnSWEzMi5kc2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiANCj4+Pj4gKy0NCj4+Pj4gwqAgT3Zt ZlBrZy9Pdm1mUGtnSWEzMlg2NC5kc2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiANCj4+Pj4gKy0NCj4+Pj4g wqAgT3ZtZlBrZy9Pdm1mUGtnWDY0LmRzY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgDQo+Pj4+ ICstDQo+Pj4+IMKgIE92bWZQa2cvT3ZtZlhlbi5kc2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqDCoCAyIA0KPj4+PiArLQ0KPj4+PiDCoCAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25z KCspLCAxMDc3IGRlbGV0aW9ucygtKcKgIGRlbGV0ZSANCj4+Pj4gbW9kZQ0KPj4+PiAxMDA2NDQg TWRlUGtnL0xpYnJhcnkvQmFzZUlvTGliSW50cmluc2ljL0Jhc2VJb0xpYkludHJpbnNpY1Nldi5p bmYNCj4+Pj4gwqAgZGVsZXRlIG1vZGUgMTAwNjQ0DQo+Pj4+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VJ b0xpYkludHJpbnNpYy9JYTMyL0lvRmlmby5uYXNtDQo+Pj4+IMKgIGRlbGV0ZSBtb2RlIDEwMDY0 NA0KPj4+PiBNZGVQa2cvTGlicmFyeS9CYXNlSW9MaWJJbnRyaW5zaWMvSWEzMi9Jb0ZpZm9TZXYu bmFzbQ0KPj4+PiDCoCBkZWxldGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUlvTGli SW50cmluc2ljL0lvTGliU2V2LmgNCj4+Pj4gwqAgZGVsZXRlIG1vZGUgMTAwNjQ0DQo+Pj4+IE1k ZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNpYy9YNjQvSW9GaWZvLm5hc20NCj4+Pj4gwqAg ZGVsZXRlIG1vZGUgMTAwNjQ0DQo+Pj4+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNp Yy9YNjQvSW9GaWZvU2V2Lm5hc20NCj4+Pj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9M aWJyYXJ5L1RkeExpYi9UZHhMaWJOdWxsLmluZg0KPj4+Pg0KPj4+PiAtLQ0KPj4+PiAyLjMxLjEu d2luZG93cy4xDQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pg0KPiANCj4gDQo+IA0K PiANCj4gDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91 IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxp bmUgKCMxMTAzOTMpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTAz OTMKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDIyMTU2NjEvNzY4NjE3 NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0 dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09 LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==