From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.3697.1681981642511823622 for ; Thu, 20 Apr 2023 02:07:22 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=k8YtLII4; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: dun.tan@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681981642; x=1713517642; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=p2jwU/eywNX5aJsNCOJB7Qf1Xc92VvSc6HSm4/KqT68=; b=k8YtLII4l+UL0JWTNes41VyeOCfJAWOHtS9J0+eOvGTKAUjPOpj5tg3I tdvt1dWTnbdXYA6zDcZ0uUO/E83th+bmjNW/rvlVF5eLL+vqbuUYjjDJf NnR6VF8mYg333zo2xaWIkhR7oKvInhQ7pK1XtC0SWVQUkkHNfzeE1b42u RFRBpfyr/j9SMXOSbYJbOwwqQAiJoOwqr7wsaKAG/3aQXTTpBBPoO+2L8 KYvtlXMG4UVCjs2M7lGFGC9NLBLdZN5Y6v3j7nuYyhEHfp3jdTrbjzxAS kB/opjEVo1uLIev3KDnHbYIOVCCzbFla9Ex55xVhPYQ4rGoEvuHTgkMVO Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10685"; a="325286840" X-IronPort-AV: E=Sophos;i="5.99,212,1677571200"; d="scan'208";a="325286840" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2023 02:07:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10685"; a="866157217" X-IronPort-AV: E=Sophos;i="5.99,212,1677571200"; d="scan'208";a="866157217" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga005.jf.intel.com with ESMTP; 20 Apr 2023 02:07:13 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 20 Apr 2023 02:07:12 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.23 via Frontend Transport; Thu, 20 Apr 2023 02:07:12 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.105) 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.2507.23; Thu, 20 Apr 2023 02:07:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ms6bMcKeH322hyNuZ/9WxGAOtfeG+iZuBw6HAA5CHPTnsSB+HJAGO+zY+EljgC3KUaf7a7TXwPYMmZ+OT2FQvorSPvbLM0cPK+lJJnnK5ZeSEKMB6tU08lES9gNN1DLgxr68unajMbrXE3BMQP+smvyK/7BckGjSwRj28he5Xg090ZKj7WS/uxEvlF7iOfIrup9G6Vuic0Z+Xb+ycInE6ueCok8fzrj36V9ImGG7YZb5z2Gms8S6Lsm7cdfPJQsMNtparRwa4daFHi5nH8N92wkvQrtLL6LH+snmgL9WMxLhZ4S9ADlFJewJdud55DMEixVF1FRgeBlTT1ViA6TYZg== 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=p2jwU/eywNX5aJsNCOJB7Qf1Xc92VvSc6HSm4/KqT68=; b=dk+8yJwwSV0gJ0a8wpE+cV7w4XBa7yLbxCnmbWEzIgFc9SkgtH8tDyKkrv0TQ26wYrs/DaoRvyPWM8rz2i2b/u5p9gvi9RQg60bmtK/2JLKNCpYHgM7k/L6vQO6z+SPkiZ1jJaWlr5cER0Q0SJdBF5sv5RrZ6kGuoOua+NYyAjDKquiyLcf6dv0tVzbVpd7AHnScKmTWYxVp0fRVlwCj7JLEvJeVbdtaq81xo1IzflrwbNFti5dh7xdCCXhJwof1DgFbPN9MnkbDdNjhcnSDnYOCqggwec2vP4Qo6o6OwBXWAjGvlYNQ2QFBPaPB24DFg8k6V2b1e364QUuPpjhwVg== 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 Received: from BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by PH7PR11MB6329.namprd11.prod.outlook.com (2603:10b6:510:1ff::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Thu, 20 Apr 2023 09:07:10 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a%7]) with mapi id 15.20.6319.022; Thu, 20 Apr 2023 09:07:09 +0000 From: "duntan" To: "devel@edk2.groups.io" , "thomas.lendacky@amd.com" , "Ni, Ray" Subject: Re: [edk2-devel] [Patch V2 0/8] Use CpuPageTableLib to create and update smm page table Thread-Topic: [edk2-devel] [Patch V2 0/8] Use CpuPageTableLib to create and update smm page table Thread-Index: AQHZbRyoGhev/k0Lh0ak5MT8foi7/q8nX/cggACu7wCAALRekIAAqcYAgADTs3CAAJNVAIAAOr8OgAAfEgCABaY98IAAxNaAgAB0T9CAAJuVgIAA2YZg Date: Thu, 20 Apr 2023 09:07:09 +0000 Message-ID: References: <1755241E6695EAE7.1885@groups.io> <2301e275-1f69-e5c0-997d-d967264aa590@amd.com> <4c5afff9-39b6-6f3a-ce05-0aadb8b004b9@amd.com> <2ff87b88-38c0-5213-64e9-8f26f1603d0c@amd.com> In-Reply-To: <2ff87b88-38c0-5213-64e9-8f26f1603d0c@amd.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5483:EE_|PH7PR11MB6329:EE_ x-ms-office365-filtering-correlation-id: 6baf6f59-1f45-462e-1fdf-08db417e9f58 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: q4qqZR+GOvkHFErJEUIKCpq4FT4UthW7pA5yS3bmffuoc0PbrqFgE7HieWDesFsUBv6cDMxDVhXJI0Nki7BlJ14xMuiTM2xQKiIBV2O1g5t47qpFI8fF6ojHYmY++x7PVIC1/TpGbvwFXMP+o0lC5E8eEpPGv31Qr4O0crdv1Kw28V2NLxwdanVQgQDiBNyaw0ruBx/Rh39JdDUqCeeBZWF54+d9rAGA1ZiXDWqoH1/fnVRmyoJc34GCufTprz/Bdkfyv6ouQKtIP1cgTp4YDRZrJdQcJJkeKNCJN1wKreIk+poC65EHRUEdH0lDVVw17f1tf6Kus46G+2KDao2/TSd1bSUzrsFX0uPPbYs5sIqnMtYJVSim1jiD+L+s9CZxlZ0M6fsZSHKtu90GgYu6BybfJ737zKZH7ZXbafHA4sEgQTquiY/XQdAsFHWkp4Wj0ZCTpSEkaxoGVbjr53WRK5vHRddrMR/p80gS6oYoH63O8usKULwc3XpjxjGf2Bo0oYe+4lK0rvOz0kD3orTk5hAVQK8AQTROXzrZyW3v8u0GvP3J1Y3JOOaYMLjvyzgMhkjkeyy7AX+f3lx7w2S6qP2iZ+AWY+HrMbWpKmt2TIC78ZltGF/82sDaIuYraZvCx/Xke7NnBtRYq/rVpEGu4kQuUsGJugfNYRzTDipoOBA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(396003)(376002)(346002)(366004)(136003)(451199021)(6636002)(66476007)(478600001)(71200400001)(8936002)(66899021)(8676002)(316002)(82960400001)(41300700001)(66446008)(55016003)(66946007)(66556008)(76116006)(122000001)(110136005)(38100700002)(19627235002)(186003)(15650500001)(30864003)(53546011)(2906002)(38070700005)(83380400001)(26005)(64756008)(6506007)(86362001)(9686003)(33656002)(5660300002)(966005)(52536014)(7696005)(579004)(44824005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S2xWYlo0RmZvWUQ3R2lTdVlsUHNYVXFTUlNLM2hoajRocVlMc1FIUU5qUHhw?= =?utf-8?B?STlKTWVuTnpVWEMvMkZyMEl4bTcvL3JsaENMQWowNFZXbEx5SCtNTzN1am9i?= =?utf-8?B?RXNwZVppZ0tHeVg4VGYva0lyT2x4d3h1WElKRU9raDFUQ0pNNWQyNWN0ZFZL?= =?utf-8?B?anFUM2t6VWhydVY0dTdmSkNmNW9wb1JIQm1lL0doeTBRQ1pOQmVrTHVwZDB1?= =?utf-8?B?bko1OXkxak5xaFFSdmVpbHNEeDYxWC8yaitQTHkydzhVSjZPeUxXOC8xbFlS?= =?utf-8?B?aE5ncnF6UG1IamgzVHFGMCtmS3BzUjRDUk9kNDhlREEzeU9rT1BHSFpOMFQr?= =?utf-8?B?ODhZTVNwd255bUNDTGdyZmh3WWtKUlVuUi9lSzV3amNtS2VGR3hpemFZNlor?= =?utf-8?B?bENpVU81Slpsa1VsdkQwWXpBOHVqcStFQWo1T09DNmZNU3orMkFyenYwOVdX?= =?utf-8?B?eDJLUFhtcUZtTGttVnkxM2VpMjRGYWlwVzZtNi8zRE1ra1h1M3dNY1hZUzZs?= =?utf-8?B?eUl6eEFsdjdjQjZWM21mUS9JblFtbWZjSkpWZFRpR2JCN1Q1WWVpOGdOS2Rr?= =?utf-8?B?cENoVVNGZ3F3Y3kveXFiYkxwYVoydUlydzIxZnJQUGZncDM5YUVtVXN0cVcz?= =?utf-8?B?aCtaR1dLdFJsY1FacnYzNCtIRUlrZFZ2cGdUU1hEdG8yekNHYVEzZnF2Tnc2?= =?utf-8?B?RU91Qkp2ZlFiOUlVejBiQ1pJaWVsT2R3NHp6czAzK1p0T09pQk8xQ1ltRG5i?= =?utf-8?B?aXhTaDN4MXNjSGQ2Skg0by90Vi9TTmlVd1JnVzRTYzVvRFRLWGo0NlR3bUVy?= =?utf-8?B?MVU3RmZLSVQyaUZrcjBsT1dsdEtYbFRGSm5hTUhqdkdHUFpwbzhVMWsxY2lR?= =?utf-8?B?M0RNbXZiS2x6bmJxeUduaDBPallmYzZoUWRwdmJyTGRxUEVGZzB5aEt1YUhV?= =?utf-8?B?VU5Oalo2VWtyTnQxazk5SVNnL1VZWEh4dHNMV2NPOGM2N2hxckgrL29JZVVv?= =?utf-8?B?cm5INzBHZERvZ092dnBFY21aTzhsR1c2TnZvSktPaFBiZkU5dXpWaGZYRmlC?= =?utf-8?B?ZWE4RCs4NkoyWWVZNjB3RnVXdHJCYnczWnNIZnB1MkRkYmpSSjJqOU5WTEpZ?= =?utf-8?B?VmpMNUM3blM1QS9ndWpwVWtTOGhWTEhHejdmNGJwSVpFU3BBTks4RXlSb3Bv?= =?utf-8?B?bktUei9qbFQ1NGU4SmZFckVOWnVyNFF6V0tzWUc3YW56clVFTGpxbnNZbGR5?= =?utf-8?B?Y1pwVnNyM2swbGJvc2FTR0xuMDFBSy9SU09DRHN2L043eVdTTjgxT3REbzE3?= =?utf-8?B?SzRwYXZpK0d6VUdwQ2tJUDU4SE9GY2RZTWpHWG1SelByQTFsa3VYS1RnTFJI?= =?utf-8?B?RGQzTTJMenhnaTNVeVZYNVJzUnk2RlhBUzBTKzV4WUdCWVFNVHBIRytHdVpz?= =?utf-8?B?ckE0VnEwdExyZXozR09qRmdjT1dkbUxpWDg4Y09aTzlscGlsdU1tZ0svQzdz?= =?utf-8?B?M05xUVBFaXh3Ni9tR1BycG5pRXA3V1pqL29WSlhPdC8wcmxBUkxhc0dJU1NB?= =?utf-8?B?QUNmeFA1L3M1NTJDTFViMmlHOHRSYURhRmlKNGZLSENQOXZJUzVTWVpuYTVW?= =?utf-8?B?YXRTay8vdnhSKzFpTFFXZEdjVFE0T2xueUVxTzJQSisyaHJubFF5MWJrY1hs?= =?utf-8?B?TDU5S3pvNmptWEJ0UGNIVlNsejJLT3o1V0xHd2o3bEc1SHlFRk5aaGZidkNv?= =?utf-8?B?QnNMNXlZVE5KUXdqS2YxTksvRmxKSzlYdzZsZ3lIaVp2M3hqMkFtYzlZZE1U?= =?utf-8?B?R2R6REQ4OGVFZzVqNUU3UUxYVk5Wd3F5SmdXZmRYbVlZNXNkeE5WVFZpOHhM?= =?utf-8?B?K09Mb0JHYmY0OFNyaU4vVldWb1BOaUpsemZpaGtBWXJaQ01FdE5RY052R08v?= =?utf-8?B?VjBhMHRGeUhEWkxocHFhV0hBS0Fma3pYVS84NHg4ZXZJN1BGQytDd1g0VzZH?= =?utf-8?B?aVNlNVYrYUNmNll6cHRuWnBnWDI3c0FEMzdLNDhxUTBZMmpWcmp4ZHhma054?= =?utf-8?B?enVKT2ZiVlhOSE0ydWFwSFNaTFpCMVhwM3pBY1NrV204RkdSbFhtVzljN2U3?= =?utf-8?Q?7Lwc=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: 6baf6f59-1f45-462e-1fdf-08db417e9f58 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2023 09:07:09.7991 (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: 4msAJJBzfqDZrLpm/k4WRDpO8pJNBTrlJ8k8urtcyn3Phm1n4OsC3IhgIgaKI3MQ0Ypg66cPd56DcJUDtGH8pw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6329 Return-Path: dun.tan@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgVG9tLA0KDQpUaGFua3MgZm9yIGNvbmZpcm1pbmcuIElzIDFHIHBhZ2UgdGFibGUgc3VwcG9y dGVkIGluIHlvdXIgdGVzdD8gSWYgc3VwcG9ydGVkLCB0aGVyZSBpcyBhIHJlYXNvbiBjYW4gZXhw bGFpbiB3aHkgdGhpcyBkaWZmZXJlbmNlIGV4aXN0cy4NCkluIGN1cnJlbnQgdXBzdHJlYW0gbWFz dGVyIGJyYW5jaDoNClNtbSBjb2RlIGFsd2F5cyBjcmVhdGUgMk0gcGFnZSB0YWJsZSBmb3IgWzAs IDRHXSByYW5nZShpbiBHZW40R1BhZ2VUYWJsZSApIHRvIHJldXNlIGNvZGUuIEluIFFlbXVGbGFz aEJlZm9yZVByb2JlKCkgb2YgT3ZtZlBrZ1xRZW11Rmxhc2hGdmJTZXJ2aWNlc1J1bnRpbWVEeGVc UWVtdUZsYXNoU21tLmMsIHRoZSByYW5nZSB0byBjbGVhciBFbmNNYXNrIGlzIDJNIGFsaWduZWQu IE5vIHBhZ2Ugc3BsaXQgaGFwcGVucyBhbmQgc21tIHBhZ2UgdGFibGUgbWVtb3J5IGlzIGFsbCBS VyBiZWZvcmUgUmVhZHlUb0xvY2suIEJ1dCBpbiBteSBvcGluaW9uLCB0aGUgUEYgYWxzbyBtYXkg aGFwcGVuIGlmIHRoZSByYW5nZSBpcyBub3QgMk0gYWxpZ25lZC4NCg0KSW4gbXkgY29kZSBicmFu Y2g6DQpJZiAxRyBwYWdlIHRhYmxlIGlzIHN1cHBvcnRlZCwgMUcgcGFnZSB0YWJsZSBpcyBjcmVh dGVkIHRvIG1hcCBbMCwgNEddLiBUaGVuIHBhZ2Ugc3BsaXQgKDFHLS0+Mk0pIGhhcHBlbnMgaW4g UWVtdUZsYXNoQmVmb3JlUHJvYmUoKSBhbmQgdGhlIG5ldyBtZW1vcnkgZm9yIHBhZ2UgdGFibGUg aXMgbWFya2VkIGFzIFJPIGJlZm9yZSBSZWFkeVRvTG9jay4gVGhhdCdzIHdoeSB0aGUgUEYgaGFw cGVucyBpbiBJbml0UGFnaW5nKCkuDQoNClRvIHNvbHZlIHRoaXMgaXNzdWUsIEkgdGhpbmsgdGhl IGFzc3VtcHRpb24gdGhhdCBzbW0gcGFnZSB0YWJsZSBpcyBhbHdheXMgUlcgYmVmb3JlIFJlYWR5 VG9Mb2NrIHNob3VsZCBiZSBkcm9wcGVkLiBJIGhhdmUgYWRkZWQgMiBuZXcgcGF0Y2hlcyB0byBj bGVhciBXUCBiZWZvcmUgbW9kaWZ5aW5nIHNtbSBwYWdlIHRhYmxlLiBDb3VsZCB5b3UgcGxlYXNl IGhlbHAgdGVzdCBhZ2Fpbj8NCmh0dHBzOi8vZ2l0aHViLmNvbS90ZDM2L2VkazIvdHJlZS9TbW1Q YWdlVGFibGVfVjINCg0KVGhhbmtzLA0KRHVuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQpGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJl aGFsZiBPZiBMZW5kYWNreSwgVGhvbWFzIHZpYSBncm91cHMuaW8NClNlbnQ6IFdlZG5lc2RheSwg QXByaWwgMTksIDIwMjMgOToxOSBQTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBUYW4sIER1 biA8ZHVuLnRhbkBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbUGF0Y2ggVjIgMC84XSBVc2UgQ3B1UGFnZVRhYmxlTGliIHRv IGNyZWF0ZSBhbmQgdXBkYXRlIHNtbSBwYWdlIHRhYmxlDQoNCk9uIDQvMTkvMjMgMDA6MzksIGR1 bnRhbiB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KPiBIaSBUb20sDQo+IA0KPiBUaGlzIFBGIGhhcHBl bmVkIGJlY2F1c2UgdGhhdCAgQ1IwLldQIGlzIHNldCBhbmQgRHhlTWVtRW5jcnlwdFNldkxpYiBz ZXRzIGEgcGFydCBvZiBzbW0gcGFnZSB0YWJsZSBhcyBSTyBiZWZvcmUgUmVhZHlUb0xvY2sgd2hp bGUgQ3B1U21tIGRyaXZlciBhc3N1bWVzIHRoZSBzbW0gcGFnZSB0YWJsZSBpcyBub3QgbWFya2Vk IGFzIFJPIGJlZm9yZSBSZWFkeVRvTG9jay4NCj4gVGhlIGNvZGUgZmxvdyB0byBzZXQgc21tIHBh Z2UgdGFibGUgdG8gUk8gaXMgUWVtdUZsYXNoQmVmb3JlUHJvYmUoKS0tPk1lbUVuY3J5cHRTZXZD bGVhck1taW9QYWdlRW5jTWFzaygpLS0+U2V0TWVtb3J5RW5jRGVjKCktLT5FbmFibGVQYWdlVGFi bGVQcm90ZWN0aW9uKCkuIE5ldyBwYWdlIHRhYmxlIG1lbW9yeSBhbGxvY2F0ZWQgYnkgRHhlTWVt RW5jcnlwdFNldkxpYiBpcyBtYXJrZWQgYXMgUk8gaW4gRW5hYmxlUGFnZVRhYmxlUHJvdGVjdGlv bigpLiBIb3dldmVyLCBJbiBQaVNtbUNwdUR4ZVNtbSBJbml0UGFnaW5nKCkgZnVuY3Rpb24sIHRo ZSBSTyBwYWdlIHRhYmxlIG1hcmtlZCBieSAgRHhlTWVtRW5jcnlwdFNldkxpYiBtYXkgYmUgbW9k aWZpZWQgYWdhaW4gYW5kIEluaXRQYWdpbmcoKSBmdW5jdGlvbiBkb2Vzbid0IGNsZWFyIENSMC5X UCBpbiBhZHZhbmNlIHNpbmNlIGl0IGhhcyB0aGUgYXNzdW1wdGlvbiB0aGF0IHNtbSBwYWdlIHRh YmxlIG1lbW9yeSBpcyBhbHdheXMgUlcgYmVmb3JlIFNldFBhZ2VUYWJsZUF0dHJpYnV0ZXMoKSwg d2hpY2ggY2F1c2VzIHRoaXMgUEYuDQo+IFNvIENvdWxkIHlvdSBwbGVhc2UgaGVscCB0ZXN0IHRo ZSBTRVYgZW5hYmxlZCBzbW0gY29kZSB3aXRob3V0IG15IHBhdGNoIHNldD8gSSB0aGluayB0aGlz IGlzc3VlIG1heSBhbHNvIGhhcHBlbiBpbiBjdXJyZW50IGVkazIgY29kZS4NCg0KVXBzdHJlYW0g bWFzdGVyIGJyYW5jaCBib290cyB3aXRob3V0IGlzc3VlLg0KDQpTbW1JbnN0YWxsUHJvdG9jb2xJ bnRlcmZhY2U6IDQ3QjdGQThDLUY0QkQtNEFGNi04MjAwLTMzMzA4NkYwRDJDOCAwIEdldFVlZmlN ZW1vcnlNYXAgUGF0Y2ggcGFnZSB0YWJsZSBzdGFydCAuLi4NClBhdGNoIHBhZ2UgdGFibGUgZG9u ZSENCk1lbW9yeUF0dHJpYnV0ZXNUYWJsZToNCiAgIFZlcnNpb24gICAgICAgICAgICAgICAgICAg LSAweDAwMDAwMDAxDQogICBOdW1iZXJPZkVudHJpZXMgICAgICAgICAgIC0gMHgwMDAwMDAzNQ0K ICAgRGVzY3JpcHRvclNpemUgICAgICAgICAgICAtIDB4MDAwMDAwMzANCkVudHJ5ICgweDNGRjAx MDI4KQ0KLi4uDQoNCg0KVGhhbmtzLA0KVG9tDQoNCj4gDQo+IFRoYW5rcywNCj4gRHVuDQo+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxk ZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIA0KPiBMZW5kYWNreSwgVGhvbWFzIHZp YSBncm91cHMuaW8NCj4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCAxOSwgMjAyMyA1OjA2IEFNDQo+ IFRvOiBUYW4sIER1biA8ZHVuLnRhbkBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg TmksIFJheSANCj4gPHJheS5uaUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW1BhdGNoIFYyIDAvOF0gVXNlIENwdVBhZ2VUYWJsZUxpYiB0byBjcmVhdGUgDQo+IGFuZCB1 cGRhdGUgc21tIHBhZ2UgdGFibGUNCj4gDQo+IE9uIDQvMTgvMjMgMDQ6NTcsIFRhbiwgRHVuIHdy b3RlOg0KPj4gSGkgVG9tLA0KPj4NCj4+IEkgYWRkZWQgYSBuZXcgcGF0Y2ggaW4gbXkgY29kZSBi cmFuY2guIFRoaXMgbmV3IHBhdGNoIHJlbW92ZXMgdGhlIGNvZGUgdGhhdCBtYXkgYXBwbHkgQWRk cmVzc0VuY01hc2sgdG8gc21tIHBhZ2UgdGFibGUgbm9uLWxlYWYgZW50cmllcyB3aGVuIHNwbGl0 dGluZyBwYWdlIHRhYmxlLg0KPj4gQ291bGQgeW91IHBsZWFzZSBoZWxwIHRlc3QgaWYgdGhpcyBj b2RlIGJyYW5jaCB3b3Jrcz8NCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS90ZDM2L2VkazIvdHJlZS9T bW1QYWdlVGFibGVfVjINCj4gDQo+IEl0IGdvdCBmdXJ0aGVyLCBidXQgaXQgc3RpbGwgY3Jhc2hl ZDoNCj4gDQo+IFNtbUluc3RhbGxQcm90b2NvbEludGVyZmFjZTogNDdCN0ZBOEMtRjRCRC00QUY2 LTgyMDAtMzMzMDg2RjBEMkM4IDAgR2V0VWVmaU1lbW9yeU1hcCBQYXRjaCBwYWdlIHRhYmxlIHN0 YXJ0IC4uLg0KPiAhISEhIFg2NCBFeGNlcHRpb24gVHlwZSAtIDBFKCNQRiAtIFBhZ2UtRmF1bHQp ICBDUFUgQXBpYyBJRCAtIDAwMDAwMDAwICEhISENCj4gRXhjZXB0aW9uRGF0YSAtIDAwMDAwMDAw MDAwMDAwMDMgIEk6MCBSOjAgVTowIFc6MSBQOjEgUEs6MCBTUzowIFNHWDowIFJJUCAgLSAwMDAw MDAwMDNGRkM3NzQ0LCBDUyAgLSAwMDAwMDAwMDAwMDAwMDM4LCBSRkxBR1MgLSAwMDAwMDAwMDAw MDEwMDgyIFJBWCAgLSAwMDAwMDAwMEZGRkZGRjgzLCBSQ1ggLSAwMDAwMDAwMDNGRkI1Qzc4LCBS RFggLSAwMDAwMDAwMDAwMDAwMDAwIFJCWCAgLSAwMDAwMDAwMDNGQzAxMDAwLCBSU1AgLSAwMDAw MDAwMDNGRkI0NzkwLCBSQlAgLSAwMDAwMDAwMDNGRkI0N0IwIFJTSSAgLSAwMDAwMDAwMDNGQzAx MDAwLCBSREkgLSAwMDAwMDAwMDAwMDAwMDAwDQo+IFI4ICAgLSAwMDAwMDAwMDNGRkI0ODQwLCBS OSAgLSAwMDAwMDAwMDAwMDAwMDAyLCBSMTAgLSAwMDAwMDAwMDAwMDAwMDAwDQo+IFIxMSAgLSAw MDAwMDAwMDAwMDAwMDAwLCBSMTIgLSAwMDAwMDAwMDNGRkI1Qzc4LCBSMTMgLSANCj4gMDAwMDAw MDAzRkZCNDg0MA0KPiBSMTQgIC0gMDAwMDAwMDA4MDAwMDAwMCwgUjE1IC0gMDAwMDAwMDAwMDAw MDAwMA0KPiBEUyAgIC0gMDAwMDAwMDAwMDAwMDAyMCwgRVMgIC0gMDAwMDAwMDAwMDAwMDAyMCwg RlMgIC0gMDAwMDAwMDAwMDAwMDAyMA0KPiBHUyAgIC0gMDAwMDAwMDAwMDAwMDAyMCwgU1MgIC0g MDAwMDAwMDAwMDAwMDAyMA0KPiBDUjAgIC0gMDAwMDAwMDA4MDAxMDAzMywgQ1IyIC0gMDAwMDAw MDAzRkMwMTAwMCwgQ1IzIC0gDQo+IDAwMDAwMDAwM0ZGODEwMDANCj4gQ1I0ICAtIDAwMDAwMDAw MDAwMDA2NjgsIENSOCAtIDAwMDAwMDAwMDAwMDAwMDANCj4gRFIwICAtIDAwMDAwMDAwMDAwMDAw MDAsIERSMSAtIDAwMDAwMDAwMDAwMDAwMDAsIERSMiAtIA0KPiAwMDAwMDAwMDAwMDAwMDAwDQo+ IERSMyAgLSAwMDAwMDAwMDAwMDAwMDAwLCBEUjYgLSAwMDAwMDAwMEZGRkYwRkYwLCBEUjcgLSAw MDAwMDAwMDAwMDAwNDAwIEdEVFIgLSAwMDAwMDAwMDNGRkFDMDAwIDAwMDAwMDAwMDAwMDAwNEYs IExEVFIgLSAwMDAwMDAwMDAwMDAwMDAwDQo+IElEVFIgLSAwMDAwMDAwMDNGRkFGMDAwIDAwMDAw MDAwMDAwMDAxRkYsICAgVFIgLSAwMDAwMDAwMDAwMDAwMDQwDQo+IEZYU0FWRV9TVEFURSAtIDAw MDAwMDAwM0ZGQjBDNjANCj4gU01NIGV4Y2VwdGlvbiBhdCBhY2Nlc3MgKDB4M0ZDMDEwMDApDQo+ IEl0IGlzIGludm9rZWQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gYmVmb3JlIElQKDB4M0ZGQzc3NDQp IGluIG1vZHVsZSANCj4gKC9yb290L2tlcm5lbHMvb3ZtZi1kdW4tYnVpbGQtSWEzMlg2NC9CdWls ZC9Pdm1mMzI2NC9ERUJVR19HQ0M1L1g2NC9VZQ0KPiBmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9Q aVNtbUNwdUR4ZVNtDQo+IG0vREVCVUcvUGlTbW1DcHVEeGVTbW0uZGxsKQ0KPiANCj4gDQo+IFRo YW5rcywNCj4gVG9tDQo+IA0KPj4NCj4+IFRoYW5rcywNCj4+IER1bg0KPj4NCj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiANCj4+IExlbmRhY2t5LCBUaG9tYXMgdmlhIGdy b3Vwcy5pbw0KPj4gU2VudDogU2F0dXJkYXksIEFwcmlsIDE1LCAyMDIzIDM6MDUgQU0NCj4+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IFRhbiwg RHVuIA0KPj4gPGR1bi50YW5AaW50ZWwuY29tPg0KPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVs XSBbUGF0Y2ggVjIgMC84XSBVc2UgQ3B1UGFnZVRhYmxlTGliIHRvIA0KPj4gY3JlYXRlIGFuZCB1 cGRhdGUgc21tIHBhZ2UgdGFibGUNCj4+DQo+PiBPbiA0LzE0LzIzIDEyOjE5LCBOaSwgUmF5IHZp YSBncm91cHMuaW8gd3JvdGU6DQo+Pj4gdG9tLA0KPj4+IGlmIHRoZSBjIGJpdCBpcyBub3QgcmVx dWlyZWQgZm9yIG5vbiBsZWFmIHBhZ2UgdGFibGUgZW50cmllcywgd2h5IHRoZSB0cnVuayBjb2Rl IHNldHMgdGhlIGMgYml0IGZvciBhbGwgZW50aXRpZXMgaW5jbHVkaW5nIG5vbmxlYWYgb25lcz8N Cj4+DQo+PiBCZWNhdXNlIGl0J3MgZWZmZWN0aXZlbHkgdGhlIGNvcnJlY3QgdGhpbmcgdG8gZG8s IGV2ZW4gdGhvdWdoIGl0IGRvZXNuJ3QgbWF0dGVyLg0KPj4NCj4+Pg0KPj4+IGkgd2VudCBiYWNr IHRvIHJlYWQgYWdhaW4gdGhlIHNtbSBpc3N1ZSB5b3UgbWV0LiB5b3Ugc2FpZCB0aGUgYyBiaXQg aXMgc2V0IGZvciBub24gbGVhZiBlbnRyaWVzIHRoYXQgY2F1c2VkIGEgZGVmZXJlbmNlIGlzc3Vl LiBCdXQgdGhlIHBhZ2V0YWJsZWxpYiBjb2RlIGRvZXNuJ3Qgc2V0IGMgYml0IHRvIG5vbiBsZWFm IGVudHJpZXMuIHRoZW4gd2hvIHNldHMgdGhlIGMgYml0Pw0KPj4NCj4+IEkgZ3Vlc3MgdGhhdCdz IHRoZSBtYWluIHF1ZXN0aW9uLCBob3cgZGlkIHRoYXQgZ2V0IHNldD8gSSBoYXZlbid0IGhhZCB0 aGUgdGltZSB0byBmdWxseSBleGFtaW5lIGFuZCBmb2xsb3cgdGhlIGNvZGVwYXRoIGluIHRoZSBw YWdldGFibGUgbGlicmFyeSB0byBmaWd1cmUgb3V0IHdoeSBpdCB3YXMgc2V0LiBNYXliZSBhcyBw YXJ0IG9mIGEgcGFnZSBzcGxpdD8NCj4+DQo+PiBUaGFua3MsDQo+PiBUb20NCj4+DQo+Pj4NCj4+ PiB0aGFua3MsDQo+Pj4gcmF5DQo+Pj4NCj4+PiB0aGFua3MsDQo+Pj4gcmF5DQo+Pj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5p byA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IG9uIGJlaGFsZiBvZiANCj4+PiBMZW5kYWNreSwgVGhv bWFzIHZpYSBncm91cHMuaW8gPHRob21hcy5sZW5kYWNreT1hbWQuY29tQGdyb3Vwcy5pbz4NCj4+ PiBTZW50OiBGcmlkYXksIEFwcmlsIDE0LCAyMDIzIDk6NDM6NTIgUE0NCj4+PiBUbzogTmksIFJh eSA8cmF5Lm5pQGludGVsLmNvbT47IFRhbiwgRHVuIDxkdW4udGFuQGludGVsLmNvbT47IA0KPj4+ IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4+PiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQYXRjaCBWMiAwLzhdIFVzZSBDcHVQYWdlVGFibGVMaWIgdG8g DQo+Pj4gY3JlYXRlIGFuZCB1cGRhdGUgc21tIHBhZ2UgdGFibGUNCj4+Pg0KPj4+IE9uIDQvMTQv MjMgMDA6MDcsIE5pLCBSYXkgd3JvdGU6DQo+Pj4+DQo+Pj4+DQo+Pj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPj4+Pj4gRnJvbTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lA YW1kLmNvbT4NCj4+Pj4+IFNlbnQ6IEZyaWRheSwgQXByaWwgMTQsIDIwMjMgMTI6MTkgQU0NCj4+ Pj4+IFRvOiBUYW4sIER1biA8ZHVuLnRhbkBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPj4+Pj4gQ2M6IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+Pj4+PiBTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtQYXRjaCBWMiAwLzhdIFVzZSBDcHVQYWdlVGFibGVMaWIgdG8gDQo+ Pj4+PiBjcmVhdGUgYW5kIHVwZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KPj4+Pj4NCj4+Pj4+IE9uIDQv MTMvMjMgMDQ6MTQsIFRhbiwgRHVuIHdyb3RlOg0KPj4+Pj4+IEhpIFRvbSwNCj4+Pj4+Pg0KPj4+ Pj4+IFRoYW5rIHlvdSBmb3IgeW91ciBoZWxwIHdpdGggdGVzdGluZy4NCj4+Pj4+PiBGb3IgdGhl IGJ1aWxkIGZhaWx1cmUsIGl0J3MgYmVjYXVzZSB0aGF0IHRoZSBDcHVQYWdlVGFibGVMaWIgDQo+ Pj4+Pj4gaW5zdGFuY2UgaXMNCj4+Pj4+IGFkZGVkIGludG8gT3ZtZlBrZyBEU0MgaW4gdGhlIGxh c3QgcGFjdGggJyBPdm1mUGtnOiBBZGQgDQo+Pj4+PiBDcHVQYWdlVGFibGVMaWIgcmVxdWlyZWQg YnkgUGlTbW1DcHVEeGUnLiBJIGhhdmUgbW92ZWQgdGhpcyBwYXRjaCANCj4+Pj4+IHRvIHRoZSBo ZWFkIG9mIHRoZSBwYXRjaCBzZXQuDQo+Pj4+Pj4NCj4+Pj4+PiBGb3IgdGhlIGJvb3QgZmFpbHVy ZSwgSSB0aGluayBpdCdzIGJlY2F1c2UgdGhhdCB0aGUgZW5jcnlwdCBtYXNrIA0KPj4+Pj4+IHdh cyBub3QNCj4+Pj4+IGFwcGxpZWQgdG8gdGhlIG1lbW9yeSB1c2VkIGJ5IHBhZ2UgdGFibGUgaW4g cGFnZSB0YWJsZSBub24tbGVhZiBlbnRyeS4NCj4+Pj4+IEluaXRpYWxseSBJIHRob3VnaHQgdGhl IGVuY3J5cHQgbWFzayB3b3VsZCBvbmx5IGJlIGFwcGxpZWQgdG8gdGhlIA0KPj4+Pj4gbGVhZiBl bnRyeSBpbiBBTUQgU0VWIGZlYXR1cmUuIFNvIEkgdHJlYXRlZCB0aGUgZW5jcnlwdGlvbiBwcm9j ZXNzIA0KPj4+Pj4gYXMgbm9uIDE6MSBtYXBwaW5nLCB3aGljaCBvbmx5IGFwcGxpZXMgdGhlIGVu Y3J5cHQgbWFzayB0byBsZWFmIA0KPj4+Pj4gZW50cnkuIEknbSBhbHNvIGN1cmlvdXMgd2h5IHRo ZSBEeGVJcGwgcGF0Y2ggc2V0IHdvcmtzIGdvb2QuIEFsbCANCj4+Pj4+IHRoZSBwYWdlIHRhYmxl IG5vbi1sZWFmIGVudHJpZXMgYXJlIGFsc28gbm90IGVuY3J5cHRlZCBpbiB0aGUgRHhlSXBsIHBh Z2UgdGFibGUgcmVsYXRlZCBwYXRjaCBzZXQuDQo+Pj4+Pg0KPj4+Pj4gUmlnaHQsIGFuZCB0aGF0 IHdvcmtzIGZvciBTRVYuIEFsbCBub24tbGVhZiBwYWdldGFibGUgZW50cmllcyBhcmUgDQo+Pj4+ PiB0cmVhdGVkIGFzIGVuY3J5cHRlZCByZWdhcmRsZXNzIG9mIHRoZSBlbmNyeXB0aW9uIGJpdC4g U2luY2UgdGhlIA0KPj4+Pj4gdGFibGVzIHdlcmUgYnVpbHQgYmVpbmcgbWFwcGVkIGVuY3J5cHRl ZCwgdGhlIHBhZ2V0YWJsZSB3YWxrIHdvcmtzIA0KPj4+Pj4gd2hlbiB0aGUgbm9uLWxlYWYgZW50 cmllcyBkb24ndCBoYXZlIHRoZSBlbmNyeXB0aW9uIGJpdCBzZXQuIEluIA0KPj4+Pj4gdGhpcyBj YXNlLCB0aG91Z2gsIHRoZSBlbmNyeXB0aW9uIGJpdCBpcyBwcmVzZW50IGluIHRoZSBub24tbGVh ZiANCj4+Pj4+IGVudHJ5IGFuZCB0aGF0IGlzIHRoZSByZWFzb24gd2h5IHRoZXJlIGFyZSBpc3N1 ZXMuDQo+Pj4+DQo+Pj4+IENhbiB5b3UgcG9pbnQgdXMgd2hpY2ggZG9jIGhlcmUNCj4+Pj4gKGh0 dHBzOi8vd3d3LmFtZC5jb20vZW4vZGV2ZWxvcGVyL3Nldi5odG1sKQ0KPj4+PiBzYXlzIHRoZSBw YWdlIHRhYmxlIGlzIGVuY3J5cHRlZCByZWdhcmRsZXNzIHRoZSBLRVlfSUQgYml0cyB2YWx1ZT8N Cj4+Pj4gSG93IGNhbiB0aGUgZW5jcnlwdGlvbiBlbmdpbmUga25vdyBpZiBhIGNodW5rIG9mIG1l bW9yeSBiZWxvbmdzIHRvIHBhZ2UgdGFibGU/DQo+Pj4NCj4+PiBJdCBkb2Vzbid0LiBGb3IgYW4g U0VWIGd1ZXN0LCB3aGVuIHRoZSBoYXJkd2FyZSB3YWxrcyB0aGUgDQo+Pj4gcGFnZXRhYmxlcywg aXQgd2lsbCBhbHdheXMgdHJlYXQgdGhlIG1lbW9yeSBhY2Nlc3NlcyBhcyBlbmNyeXB0ZWQgDQo+ Pj4gKHNlZSBzZWN0aW9uDQo+Pj4gMTUuMzQuNSBvZiB0aGUgQU1EIEFQTSBWb2wgMiBhdCBodHRw czovL3d3dy5hbWQuY29tL3N5c3RlbS9maWxlcy9UZWNoRG9jcy8yNDU5My5wZGYpLg0KPj4+DQo+ Pj4gQnV0LCBiZWNhdXNlIHRoZSBpbml0aWFsIHBhZ2V0YWJsZXMgdGhhdCBhcmUgYnVpbHQgdG8g bWFwIGV2ZXJ5dGhpbmcgDQo+Pj4gYXMgZW5jcnlwdGVkL3ByaXZhdGUgdG8gc3RhcnQgd2l0aCAo c2VlIA0KPj4+IE92bWZQa2cvUmVzZXRWZWN0b3IvSWEzMi9QYWdlVGFibGVzNjQuYXNtKSwgb25s eSBjaGFuZ2luZyB0byBzaGFyZWQgDQo+Pj4gd2hlbiBzcGVjaWZpY2FsbHkgcmVxdWVzdGVkLCBh bnkgbWVtb3J5IGFsbG9jYXRlZCBhbmQgdXNlZCB3aWxsIGJlIGVuY3J5cHRlZC4NCj4+PiBUaHVz LCB3aGVuIG5ldyBwYWdldGFibGVzIGFyZSBhbGxvY2F0ZWQvY3JlYXRlZCBpbiB0aGUgDQo+Pj4g Q3B1UGFnZVRhYmxlTGliIGxpYnJhcnksIHRoZXkgd2lsbCBiZSBlbmNyeXB0ZWQgYW5kIHNvIGV2 ZXJ5dGhpbmcgDQo+Pj4gd29ya3MuIEFuZCB0aG9zZSBuZXcgcGFnZXRhYmxlcyB3aWxsIG1hcCBl dmVyeXRoaW5nIGVuY3J5cHRlZCBieSANCj4+PiBkZWZhdWx0LCBleGNlcHQgZm9yIHRoZSBHSENC IHBhZ2VzLiBJZiB0aGV5IHdlcmUgbWFwcGVkIHNoYXJlZCB3aGVuIA0KPj4+IHRoZXkgd2VyZSBj cmVhdGVkLCB0aGVuIHRoZSBwYWdldGFibGUgd2FsayB3b3VsZCBmYWlsLg0KPj4+DQo+Pj4+DQo+ Pj4+IE15IHVuZGVyc3RhbmRpbmcgdG8gU0VWIGlzIGFueSBwaHlzaWNhbCBhZGRyZXNzIGZpZWxk IGluIGd1ZXN0IHBhZ2UgDQo+Pj4+IHRhYmxlIHNob3VsZCBoYXZlIHRoZSBLRVlfSUQgYml0cyBz ZXQgaWYgdGhlIHBoeXNpY2FsIHBhZ2VzIGFyZSANCj4+Pj4gcHJpdmF0ZSB0byBndWVzdC4gT25s eSBzb21lIHBhZ2VzIGZvciBHTUNCIGRvbid0IGhhdmUgS0VZX0lEIGJpdHMgc2V0IGFzIHRob3Nl IGFyZSBzaGFyZWQgYmV0d2VlbiBndWVzdCBhbmQgaG9zdC4NCj4+Pg0KPj4+IFJpZ2h0LCB0aGUg ZW5jcnlwdGlvbiBiaXQgaW4gdGhlIGxlYWYgZW50cnkgb2YgdGhlIHBhZ2V0YWJsZXMgd2lsbCAN Cj4+PiBkZXRlcm1pbmUgdGhlIGVuY3J5cHRpb24gbW9kZS4NCj4+Pg0KPj4+Pg0KPj4+PiBJIHRo b3VnaHQgRHVuJ3MgcGF0Y2ggd29ya3MgYmVjYXVzZSBhbGwgZ3Vlc3QgbWVtb3J5IGlzIG1hcmtl ZCBhcyANCj4+Pj4gc2hhcmVkIGJlY2F1c2UgdGhlIEtFWV9JRCBiaXRzIGluIGFsbCBlbnRyaWVz IGFyZSBub3Qgc2V0LiBPbmx5IA0KPj4+PiBzb21lIHBhZ2VzIHRoYXQncmUgdXNlZCBieSBHTUNC IGhhdmUgdGhlIEtFWV9JRCBiaXRzIHNldC4NCj4+Pg0KPj4+IEp1c3QgdGhlIG9wcG9zaXRlLCB0 aGUgQ3B1UGFnZVRhYmxlTGliIGxpYnJhcnkgbWFya3MgZXZlcnl0aGluZyANCj4+PiBlbmNyeXB0 ZWQgYW5kIG9ubHkgY2xlYXJzIHRoZSBlbmNyeXB0aW9uIGJpdCBmb3IgdGhlIEdIQ0IgcGFnZXMu DQo+Pj4NCj4+PiBJbiBNZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVt b3J5LmMsIHRoZQ0KPj4+IENyZWF0ZUlkZW50aXR5TWFwcGluZ1BhZ2VUYWJsZXMoKSBmdW5jdGlv biByZXRyaWV2ZXMgdGhlIGVuY3J5cHRpb24gDQo+Pj4gYml0IGFuZCBzYXZlcyBpdCBpbiBBZGRy ZXNzRW5jTWFzay4gQWRkcmVzc0VuY01hc2sgaXMgdGhlbiBhcHBsaWVkIA0KPj4+IHRvIHRoZSBt YXBwaW5nIGF0dHJpYnV0ZSB1c2VkIHdoZW4gY2FsbGluZyBDcmVhdGVPclVwZGF0ZVBhZ2VUYWJs ZSgpIA0KPj4+IHRvIGJ1aWxkIHRoZSBpbml0aWFsIHBhZ2V0YWJsZXMuDQo+Pj4NCj4+Pj4NCj4+ Pj4NCj4+Pj4+DQo+Pj4+PiBIZXJlIGlzIHNvbWUgZGVidWcgYWZ0ZXIgc2V0dGluZyBQYWdpbmdF bnRyeSBhdCBsaW5lIDQzNiBvZg0KPj4+Pj4gVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdVBhZ2VUYWJs ZUxpYi9DcHVQYWdlVGFibGVNYXAuYzoNCj4+Pj4+DQo+Pj4+PiAqKiogREVCVUc6IFBhZ2VUYWJs ZUxpYk1hcEluTGV2ZWw6NDM3IC0gUGFnaW5nRW50cnkgPSAzRkY4MTAwMA0KPj4+Pj4gKioqIERF QlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZGODAwMDAN Cj4+Pj4+ICoqKiBERUJVRzogUGFnZVRhYmxlTGliTWFwSW5MZXZlbDo0MzcgLSBQYWdpbmdFbnRy eSA9IDNGRjgzMDAwDQo+Pj4+PiAqKiogREVCVUc6IFBhZ2VUYWJsZUxpYk1hcEluTGV2ZWw6NDM3 IC0gUGFnaW5nRW50cnkgPSAzRkY4MTAwMA0KPj4+Pj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJN YXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZGODAwMDANCj4+Pj4+ICoqKiBERUJVRzog UGFnZVRhYmxlTGliTWFwSW5MZXZlbDo0MzcgLSBQYWdpbmdFbnRyeSA9IDNGRjgzMDAwDQo+Pj4+ PiAqKiogREVCVUc6IFBhZ2VUYWJsZUxpYk1hcEluTGV2ZWw6NDM3IC0gUGFnaW5nRW50cnkgPSAz RkY4MTAwMA0KPj4+Pj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBh Z2luZ0VudHJ5ID0gM0ZGODAwMDANCj4+Pj4+ICoqKiBERUJVRzogUGFnZVRhYmxlTGliTWFwSW5M ZXZlbDo0MzcgLSBQYWdpbmdFbnRyeSA9IA0KPj4+Pj4gODAwMDAzRkMwMTAwMA0KPj4+Pg0KPj4+ PiBBcmUgeW91IHRlc3RpbmcgdGhlIFNNRSBvciBTRVY/DQo+Pj4+IE15IHVuZGVyc3RhbmRpbmcg aXMgd2l0aCBTTUUsIG9ubHkgdGhlIGhpZ2hlc3QgQyBiaXQgc2hvdWxkIGJlIHNldCANCj4+Pj4g aW5kaWNhdGluZyB0aGUgcGh5c2ljYWwgcGFnZSBpcyBlbmNyeXB0ZWQuDQo+Pj4NCj4+PiBJIGFt IHRlc3RpbmcgU0VWLiBUaGVyZSBpcyBvbmx5IGEgc2luZ2xlIGJpdCB0byBpbmRpY2F0ZSB3aGV0 aGVyIGEgDQo+Pj4gcGFnZSBpcyBlbmNyeXB0ZWQuIFRoZSBndWVzdCBBU0lEIGlzIHVzZWQgdG8g ZGV0ZXJtaW5lIHdoYXQga2V5IGlzIA0KPj4+IHVzZWQgdG8gZGVjcnlwdCB0aGUgcGFnZS4gRnJv bSBhIHBhZ2V0YWJsZSBsZWFmIGVudHJ5LCBTTUUgYW5kIFNFViANCj4+PiBhcmUgZXF1aXZhbGVu dCwgdGhlIGVuY3J5cHRpb24gYml0IGRldGVybWluZXMgaG93IHRoZSBtZW1vcnkgd2lsbCBiZSBh Y2Nlc3NlZC4NCj4+Pg0KPj4+IFNNRSBhbmQgU0VWIGRpZmZlciBpbiBob3cgdGhleSBkZWFsIHdp dGggaW5zdHJ1Y3Rpb24gZmV0Y2hlcyBhbmQgDQo+Pj4gcGFnZXRhYmxlIHdhbGtzLCB3aXRoIFNN RSBvYmV5aW5nIHRoZSBlbmNyeXB0aW9uIGJpdCBhbmQgU0VWIGFsd2F5cyANCj4+PiBwZXJmb3Jt aW5nIHRoZSBhY2Nlc3NlcyBhcyBlbmNyeXB0ZWQgYWNjZXNzZXMgZm9yIHNlY3VyaXR5Lg0KPj4+ DQo+Pj4gVGhhbmtzLA0KPj4+IFRvbQ0KPj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+PiAhISEh IFg2NCBFeGNlcHRpb24gVHlwZSAtIDBEKCNHUCAtIEdlbmVyYWwgUHJvdGVjdGlvbikgIENQVSBB cGljIA0KPj4+Pj4gSUQNCj4+Pj4+IC0NCj4+Pj4+IDAwMDAwMDAwICEhISENCj4+Pj4+DQo+Pj4+ PiAweDgwMDAwM0ZDMDEwMDAgaXNuJ3QgbWFwcGVkIGFuZCBzbyBpdCBmYWlscyAtIEknbSBub3Qg ZXhhY3RseSANCj4+Pj4+IHN1cmUgaG93IHRoZSAjUEYgdHVybnMgaW50byBhICNHUCwgdGhvdWdo LCBtYXliZSBiZWNhdXNlIHRoZSANCj4+Pj4+IHZpcnR1YWwgYWRkcmVzcyBpc24ndCBjYW5vbmlj YWwgdGhhdCBwb2ludC4NCj4+Pj4+DQo+Pj4+PiBUaGFua3MsDQo+Pj4+PiBUb20NCj4+Pj4+DQo+ Pj4+Pj4NCj4+Pj4+PiBJJ2xsIGFkZGVkIGFub3RoZXIgcGF0Y2ggaW4gbXkgY29kZSBicmFuY2gg dG8gZml4IHRoaXMgaXNzdWUgbGF0ZXIuDQo+Pj4+Pj4gSW4gdGhlIG5ldw0KPj4+Pj4gY29tbWl0 LCBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBDcHVQYWdlVGFibGVMaWIsIHRoZSB3aG9sZSBtZW1v cnkgDQo+Pj4+PiBjYW4gYmUgZGl2aWRlZCBpbnRvIDMgY2F0ZWdvcmllczogbWVtb3J5IHVzZWQg YnkgcGFnZSB0YWJsZSwgZ3Vlc3QgDQo+Pj4+PiBwcml2YXRlIG1lbW9yeSBhbmQgZ3Vlc3Qgc2hh cmVkIG1lbW9yeS4gQ3B1UGFnZVRhYmxlTGliIHdpbGwgDQo+Pj4+PiBhbHdheXMgYXBwbHkgdGhl IGVuY3J5cHQgbWFzayB0byBtZW1vcnkgdXNlZCBieSBwYWdlIHRhYmxlLCB3aGljaCANCj4+Pj4+ IG1lYW5zIGFsbCB0aGUgbm9uLWxlYWYgcGFnZSB0YWJsZSBlbnRyaWVzIGFyZSBlbmNyeXB0ZWQu IEZvciBndWVzdCANCj4+Pj4+IHByaXZhdGUgbWVtb3J5LCB0aGlzIGNhc2UgY2FuIGJlIHRyZWF0 ZWQgYXMgbm9uLTE6MSBtYXBwaW5nLiBXZSANCj4+Pj4+IGNhbiBhcHBseSB0aGUgZW5jcnlwdCBt YXNrIGJ5IHNldHRpbmcgdGhlIGlucHV0IHBhcmFtZXRlciBvZg0KPj4+Pj4gUGFnZVRhYmxlTWFw KCkgQVBJIGxpa2UgIiBBdHRyaWJ1dGUuVWludDY0ID0gTGluZWFyQWRkcmVzcyB8IA0KPj4+Pj4g QWRkcmVzc0VuY01hc2siLiBGb3IgZ3Vlc3Qgc2hhcmVkIG1lbW9yeSwgdGhpcyBjYXNlIGNhbiBi ZSB0cmVhdGVkIGFzIG5vcm1hbCAxOjEgbWFwcGluZy4NCj4+Pj4+IEknbGwgbGV0IHlvdSBrbm93 IG9uY2UgdGhlIG5ldyBwYXRjaCBpcyByZWFkeS4NCj4+Pj4+Pg0KPj4+Pj4+IFRoYW5rcywNCj4+ Pj4+PiBEdW4NCj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+Pj4+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m DQo+Pj4+PiBMZW5kYWNreSwgVGhvbWFzIHZpYSBncm91cHMuaW8NCj4+Pj4+PiBTZW50OiBUaHVy c2RheSwgQXByaWwgMTMsIDIwMjMgMzoyNiBBTQ0KPj4+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsgVGFuLCBEdW4gPGR1bi50YW5AaW50ZWwuY29tPg0KPj4+Pj4+IFN1YmplY3Q6IFJlOiBb ZWRrMi1kZXZlbF0gW1BhdGNoIFYyIDAvOF0gVXNlIENwdVBhZ2VUYWJsZUxpYiB0byANCj4+Pj4+ PiBjcmVhdGUNCj4+Pj4+IGFuZCB1cGRhdGUgc21tIHBhZ2UgdGFibGUNCj4+Pj4+Pg0KPj4+Pj4+ IE9uIDQvMTIvMjMgMDU6MTcsIGR1bnRhbiB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KPj4+Pj4+PiBI aSBUb20sDQo+Pj4+Pj4+DQo+Pj4+Pj4+IFRoaXMgcGF0Y2ggc2V0IGlzIHRvIGNoYW5nZSBQaVNt bUNwdUR4ZVNtbSBjb2RlIHRvIHVzZQ0KPj4+Pj4gQ3B1UGFnZVRhYmxlTGliIHRvIGNyZWF0ZSBh bmQgdXBkYXRlIFNNTSBwYWdlIHRhYmxlLiBUaGUgUGNkIA0KPj4+Pj4gUGNkUHRlTWVtb3J5RW5j cnlwdGlvbkFkZHJlc3NPck1hc2sgaXMgYWxzbyB1c2VkIGluIFBpU21tQ3B1RHhlU21tIA0KPj4+ Pj4gY29kZSBhbmQgdGhlIHdob2xlIHJhbmdlIGNvdmVyZWQgYnkgcGFnZSB0YWJsZSBpcyBtYXBw ZWQgDQo+Pj4+PiBlbmNyeXB0ZWQsIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBzaXR1YXRp b24gaW4gRHhlSXBsIG1vZHVsZS4NCj4+Pj4+Pj4gU28gY291bGQgeW91IGFsc28gaGVscCBkbyBh IHRlc3QgdG8gbWFrZSBzdXJlIHRoZSBBTUQgU0VWIA0KPj4+Pj4+PiBmZWF0dXJlIHN0aWxsDQo+ Pj4+PiB3b3JrcyBnb29kIGluIFNNTSB3aXRoIHRoaXMgcGF0Y2ggc2V0Pw0KPj4+Pj4+PiBIZXJl IGlzIHRoZSBjb2RlIGJyYW5jaCBpbiBteSBmb3JrIHJlcG86DQo+Pj4+Pj4+IGh0dHBzOi8vZ2l0 aHViLmNvbS90ZDM2L2VkazIvY29tbWl0cy9TbW1QYWdlVGFibGVfVjINCj4+Pj4+Pg0KPj4+Pj4+ IEhpIER1biwNCj4+Pj4+Pg0KPj4+Pj4+IEkgdGVzdGVkIGF0IHRoZSBmaW5hbCBjb21taXQgb2Yg dGhlIGJyYW5jaCBhbmQgZW5jb3VudGVyZWQgYSAjR1AgDQo+Pj4+Pj4gd2l0aCBhbg0KPj4+Pj4g U0VWIGd1ZXN0LiBJdCBsb29rcyBsaWtlIHRoZSBDcHVQYWdlVGFibGVMaWJyYXJ5IGRvZXNuJ3Qg dGFrZSB0aGUgDQo+Pj4+PiBlbmNyeXB0aW9uIGJpdCBpbnRvIGFjY291bnQuIEZvciBleGFtcGxl Og0KPj4+Pj4+DQo+Pj4+Pj4gTGluZSA0MzYgb2YgVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdVBhZ2VU YWJsZUxpYi9DcHVQYWdlVGFibGVNYXAuYw0KPj4+Pj4+ICAgICAgICAgUGFnaW5nRW50cnkgPSAo SUEzMl9QQUdJTkdfRU5UUlkNCj4+Pj4+ICopKFVJTlROKUlBMzJfUE5MRV9QQUdFX1RBQkxFX0JB U0VfQUREUkVTUyAoJlBhcmVudFBhZ2luZ0VudHJ5LQ0KPj4+Pj4+IFBubGUpOw0KPj4+Pj4+DQo+ Pj4+Pj4gVGhpcyB3aWxsIGdldCBhbiBhZGRyZXNzIHdpdGggdGhlIGVuY3J5cHRpb24gYml0IHNl dCBhbmQgdGhlbiB0cnkgDQo+Pj4+Pj4gdG8NCj4+Pj4+IHJlZmVyZW5jZSBpdC4gV2hlbiBJIGNs ZWFyIHRoZSBlbmNyeXB0aW9uIGJpdCwgdGhlIGNvZGUgcHJvY2VlZHMgYSANCj4+Pj4+IGJpdCBm dXJ0aGVyLCBidXQgdGhlbiBlbmNvdW50ZXJzIGEgI0dQIGluIGEgZGlmZmVyZW50IGxvY2F0aW9u Lg0KPj4+Pj4+DQo+Pj4+Pj4gU28gaXQgYXBwZWFycyB0aGF0IHRoZSBDcHVQYWdlVGFibGVMaWJy YXJ5IGRvZXNuJ3QgZGVhbCB3aXRoIHRoZQ0KPj4+Pj4gZW5jcnlwdGlvbiBiaXQgcHJvcGVybHku DQo+Pj4+Pj4NCj4+Pj4+PiBBbHNvLCBnb2luZyB0aHJvdWdoIGEgYnVpbGQvdGVzdCBvZiBlYWNo IGluZGl2aWR1YWwgcGF0Y2ggaGFkIG1peGVkIHJlc3VsdHMuDQo+Pj4+Pj4NCj4+Pj4+PiAgICAg ICAgIC0gV2l0aCB0aGUgc2Vjb25kIHBhdGNoIGluIHRoZSBzZXJpZXMgYXBwbGllZCwgSSBnZXQg YSBidWlsZCBlcnJvcjoNCj4+Pj4+Pg0KPj4+Pj4+ICAgICAgICAgICAvcm9vdC9rZXJuZWxzL292 bWYtZHVuLWJ1aWxkLVg2NC9Pdm1mUGtnL092bWZQa2dYNjQuZHNjKC4uLik6DQo+Pj4+PiBlcnJv ciA0MDAwOiBJbnN0YW5jZSBvZiBsaWJyYXJ5IGNsYXNzIFtDcHVQYWdlVGFibGVMaWJdIGlzIG5v dCANCj4+Pj4+IGZvdW5kDQo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgaW4gWy9yb290L2tlcm5l bHMvb3ZtZi1kdW4tYnVpbGQtDQo+Pj4+PiBYNjQvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9Q aVNtbUNwdUR4ZVNtbS5pbmZdIFtYNjRdDQo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgY29uc3Vt ZWQgYnkgbW9kdWxlIA0KPj4+Pj4+IFsvcm9vdC9rZXJuZWxzL292bWYtZHVuLWJ1aWxkLQ0KPj4+ Pj4gWDY0L1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mXQ0KPj4+ Pj4+DQo+Pj4+Pj4gICAgICAgICAgIHRoYXQgaXNuJ3QgcmVzb2x2ZWQgdW50aWwgdGhlIGZpbmFs IHBhdGNoLg0KPj4+Pj4+DQo+Pj4+Pj4gVGhhbmtzLA0KPj4+Pj4+IFRvbQ0KPj4+Pj4+DQo+Pj4+ Pj4+DQo+Pj4+Pj4+IFRoYW5rcywNCj4+Pj4+Pj4gRHVuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlv IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+Pj4+PiBkdW50YW4NCj4+Pj4+ Pj4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCAxMiwgMjAyMyA0OjU0IFBNDQo+Pj4+Pj4+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4+Pj4+PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BhdGNo IFYyIDAvOF0gVXNlIENwdVBhZ2VUYWJsZUxpYiB0byANCj4+Pj4+Pj4gY3JlYXRlIGFuZCB1cGRh dGUgc21tIHBhZ2UgdGFibGUNCj4+Pj4+Pj4NCj4+Pj4+Pj4gSW4gVjIgcGF0Y2ggc2V0Og0KPj4+ Pj4+PiAxLkluICdSZWZpbmVtZW50IHRvIGNvZGUgYWJvdXQgdXBkYXRpbmcgc21tIHBhZ2UgdGFi bGUnLCB1c2UNCj4+Pj4+Pj4gUXVpY2tTb3J0KCkNCj4+Pj4+IGluIEJhc2VMaWIgaW5zdGVhZCBv ciBQZXJmb3JtUXVpY2tTb3J0KCkgaW4gQmFzZVNvcnRMaWIuDQo+Pj4+Pj4+IDIuUmVtb3ZlIHRo ZSBwYXRjaCB0byBhZGQgQmFzZVNvcnRMaWIgaW4gRFNDIGZpbGUuDQo+Pj4+Pj4+IDMuQWRkIGEg bmV3IHBhdGNoIHRvIGFkZCBDcHVQYWdlVGFibGVMaWIgaW4gVWVmaUNwdVBrZy5kc2MuDQo+Pj4+ Pj4+IDQuQWRkIGEgdGVtcCBwYXRjaCB0byBhZGQgQ3B1UGFnZVRhYmxlTGliIGluIE92bWZQa2cg ZHNjIGZpbGVzIA0KPj4+Pj4+PiBmb3IgdGVzdChBIHByZXZpb3VzIHBhdGNoIEkgc2VudCBiZWZv cmUgJ1tQYXRjaCBWMiA0LzhdIE92bWZQa2c6DQo+Pj4+Pj4+IEFkZCBDcHVQYWdlVGFibGVMaWIg cmVxdWlyZWQgYnkgRHhlSXBsIGluIERTQyBmaWxlJyBjb250YWlucyBhbGwgDQo+Pj4+Pj4+IHRo ZSBjaGFuZ2VzIGluIHRoaXMgcGF0Y2gpDQo+Pj4+Pj4+DQo+Pj4+Pj4+IER1biBUYW4gKDgpOg0K Pj4+Pj4+PiAgICAgICAgIE92bWZQa2c6IEFkZCBDcHVQYWdlVGFibGVMaWIgcmVxdWlyZWQgYnkg UGlTbW1DcHVEeGUNCj4+Pj4+Pj4gICAgICAgICBVZWZpUGF5bG9hZFBrZzogQWRkIENwdVBhZ2VU YWJsZUxpYiByZXF1aXJlZCBieSBQaVNtbUNwdUR4ZQ0KPj4+Pj4+PiAgICAgICAgIFVlZmlDcHVQ a2c6IFVzZSBDcHVQYWdlVGFibGVMaWIgdG8gY29udmVydCBTTU0gcGFnaW5nIGF0dHJpYnV0ZS4N Cj4+Pj4+Pj4gICAgICAgICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tOiBBdm9pZCBzZXR0aW5n IG5vbi1wcmVzZW50IA0KPj4+Pj4+PiByYW5nZSB0bw0KPj4+Pj4gUk8vTlgNCj4+Pj4+Pj4gICAg ICAgICBVZWZpQ3B1UGtnOiBFeHRlcm4gbVNtbVNoYWRvd1N0YWNrU2l6ZSBpbiBQaVNtbUNwdUR4 ZVNtbS5oDQo+Pj4+Pj4+ICAgICAgICAgVWVmaUNwdVBrZzogUmVmaW5lbWVudCB0byBjdXJyZW50 IHNtbSBwYWdlIHRhYmxlIGdlbmVyYXRpb24gY29kZQ0KPj4+Pj4+PiAgICAgICAgIFVlZmlDcHVQ a2c6IFJlZmluZW1lbnQgdG8gY29kZSBhYm91dCB1cGRhdGluZyBzbW0gcGFnZSB0YWJsZQ0KPj4+ Pj4+PiAgICAgICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW06IFJlbW92ZSB1bm5lY2Vzc2Fy eSBmdW5jdGlvbg0KPj4+Pj4+Pg0KPj4+Pj4+PiAgICAgICAgT3ZtZlBrZy9DbG91ZEh2L0Nsb3Vk SHZYNjQuZHNjICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4+Pj4+Pj4gICAgICAgIE92 bWZQa2cvT3ZtZlBrZ0lhMzIuZHNjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsr LQ0KPj4+Pj4+PiAgICAgICAgT3ZtZlBrZy9Pdm1mUGtnSWEzMlg2NC5kc2MgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0NCj4+Pj4+Pj4gICAgICAgIE92bWZQa2cvT3ZtZlBrZ1g2NC5k c2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstDQo+Pj4+Pj4+ICAgICAgICBV ZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lhMzIvUGFnZVRibC5jICAgICAgICAgICB8ICAgNSAr KystLQ0KPj4+Pj4+PiAgICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1NtbUZ1 bmNzQXJjaC5jICAgICAgfCAgIDMgKy0tDQo+Pj4+Pj4+ICAgICAgICBVZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL0lhMzIvU21tUHJvZmlsZUFyY2guYyAgICB8ICAgMiArLQ0KPj4+Pj4+PiAgICAg ICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9NcFNlcnZpY2UuYyAgICAgICAgICAgICAgfCAx MzIgLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4gLQ0KPj4+Pj4gLQ0K Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPj4+Pj4+PiAgICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4 ZVNtbS5jICAgICAgICAgfCAgIDggKysrKysrLQ0KPj4+Pj4gLQ0KPj4+Pj4+PiAgICAgICAgVWVm aUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oICAgICAgICAgfCAgOTcNCj4+ Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCj4+Pj4+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+ Pj4+PiAgICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmYg ICAgICAgfCAgIDEgKw0KPj4+Pj4+PiAgICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9T bW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMgfCA2MjkNCj4+Pj4+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+Pj4+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+Pj4+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysN Cj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysNCj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQ0KPj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQ0KPj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+PiAtDQo+Pj4+PiAtDQo+Pj4+PiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+PiAtDQo+Pj4+ PiAtDQo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ Pj4+PiAtDQo+Pj4+PiAtDQo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4+Pj4g ICAgICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21tUHJvZmlsZS5jICAgICAgICAgICAg IHwgMzQ4DQo+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrDQo+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQo+Pj4+PiArKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4+ICsrKysrKysr Ky0NCj4+Pj4+ICsrKysrKysrKy0NCj4+Pj4+ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4+IC0NCj4+Pj4+IC0NCj4+Pj4+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPj4+Pj4+PiAgICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9Y NjQvUGFnZVRibC5jICAgICAgICAgICAgfCAyMjkNCj4+Pj4+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4gKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPj4+Pj4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQ0KPj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0N Cj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4gLQ0KPj4+Pj4gLQ0KPj4+Pj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+Pj4+ICAgICAgICBVZWZpQ3B1UGtnL1BpU21tQ3B1 RHhlU21tL1g2NC9TbW1GdW5jc0FyY2guYyAgICAgICB8ICAgMyArLS0NCj4+Pj4+Pj4gICAgICAg IFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NtbVByb2ZpbGVBcmNoLmMgICAgIHwgIDE5 ICsrLS0tLS0tLQ0KPj4+Pj4gLS0tLS0tLS0tLQ0KPj4+Pj4+PiAgICAgICAgVWVmaVBheWxvYWRQ a2cvVWVmaVBheWxvYWRQa2cuZHNjICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4+Pj4+Pj4g ICAgICAgIDE3IGZpbGVzIGNoYW5nZWQsIDUxMCBpbnNlcnRpb25zKCspLCA5NzcgZGVsZXRpb25z KC0pDQo+Pj4+Pj4+DQo+Pj4+Pj4NCj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4NCj4+Pj4+Pg0KPj4+ DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0K Pj4NCj4+DQo+Pg0KPj4NCj4+DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KDQoNCg0KDQoNCg==