From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web12.5642.1627535836793078501 for ; Wed, 28 Jul 2021 22:17:17 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=EIImPKGG; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10059"; a="199985371" X-IronPort-AV: E=Sophos;i="5.84,278,1620716400"; d="scan'208";a="199985371" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2021 22:17:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,278,1620716400"; d="scan'208";a="666205185" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga005.fm.intel.com with ESMTP; 28 Jul 2021 22:17:13 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Wed, 28 Jul 2021 22:17:12 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Wed, 28 Jul 2021 22:17:12 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Wed, 28 Jul 2021 22:17:12 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.174) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Wed, 28 Jul 2021 22:17:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T8sygQ8ufmZ+BvjVgJiaYGQayqBKc3Oz5wlF3TvYzV2BpdsSXmyXtP6u2ERHfVZ7FH2phJLY+PcJAtrcDaTyuYw+pwUwVGYVLsKKJCq6w+lUYphSe3wBS7F2GJe2SbFT/rbi9EwXghXiyA9JNyz59Sn//0KCsou8Z8VoFWja9VmvP82h5+/nHBkhV1CLwUKpu/+b9N2Ih4+FDmI06R2YtaKoHnw9VBQVf7j67wSjXaz8YqzBaWroNxf94ssnZCxlbFTKfo/Z6FsAJoLtplmdnSecvlzZKXUPTXjnG+jnsVYZgFYY1O3AyO22MT+T0EfUgLVt4X97Bz2cDN/UQiChkw== 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-SenderADCheck; bh=yUxnlh5jGyOmHjpHkrfkMuvFaVfRLHNOPWI+CevPjv0=; b=YrF1GGntznHxstMpEV9WTBgojcjP3XteDCQ0UfJRHumyxMVfhSxzU91WIEBLCridNPcYee3RhCKf9/nVC/Bys6uzMUwkUrF7VG0ZNbJBVAwZ2kUupZvWrQeBuCkmaQakhy+yFiKyFMvlRBAs6HHCMT496rL9Mr76MVsFTG+SpPBTJ7cjkFPHB9XiasM05P8MthI5c/8wvpgoW0fzTN2T+lvk0etJ7KO+aTtioNFsnFJyLO/eL2kCZ+iw0ENkShKs9ZVVmcmA+clRhcXXKwdDxCf8CddWyiSA+A6AnmoANGgAUFxVCLyJXkWE9O3LjE59wq9par1NhXFP9OmzaVUARw== 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=yUxnlh5jGyOmHjpHkrfkMuvFaVfRLHNOPWI+CevPjv0=; b=EIImPKGGR6vfLjRiMJ2aFiRQ+MR+Uzq0q4Ah79rVxQ6Jagsmb+SXOwdlCxCloF9GIo0MOuoCyt30Y9RuWlHusuzL9bX3PL3Di3Ti0xBsCRFSmisM2t17rUzLzC3MPWAuc9Bz93qNJpaDua07bKIWVdQ5V28PqeDTMZwRioakyy0= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB4840.namprd11.prod.outlook.com (2603:10b6:510:43::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.29; Thu, 29 Jul 2021 05:17:08 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::6c99:8170:1c3c:9121]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::6c99:8170:1c3c:9121%3]) with mapi id 15.20.4352.031; Thu, 29 Jul 2021 05:17:08 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "brijesh.singh@amd.com" CC: "Xu, Min M" , Ard Biesheuvel , "Justen, Jordan L" , Erdem Aktas , James Bottomley , Tom Lendacky Subject: Re: [edk2-devel] [PATCH V3 06/10] OvmfPkg: Add AmdSev.asm in ResetVector Thread-Topic: [edk2-devel] [PATCH V3 06/10] OvmfPkg: Add AmdSev.asm in ResetVector Thread-Index: AQHXgqpMyZ2YEZCZ4k+xX9pxDyR89KtWps2AgAAPQgCAAAs5AIAAAmzQgAET7wCAABAEfIAADumAgAAIn1CAAHbDgIAACPhQgAAOxoCAAAHlwIAAMDcAgABCitCAAD++AIAAHS+AgAANXXo= Date: Thu, 29 Jul 2021 05:17:08 +0000 Message-ID: References: <4E4F0C83-ED04-4CFC-BDE2-33825C106DB9@intel.com> <97ad36da-13cd-ccb1-48f3-17ee03934aa6@amd.com> <1e234d04-6348-5ac8-9c99-0557d6b44ef6@amd.com> , In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: 309295dd-8a35-4f1f-8292-08d952501d25 x-ms-traffictypediagnostic: PH0PR11MB4840: 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: sDLwO3MeAoCoQUe8FXkHtzBYWiGpburutCKEvTT4rOPA7iMz+cyfw6yEG4Un9LvZnQxM81fs9/leZuBggxL0Wjnj/vlY7POQlaHchBeVy1rj2RHCDtullyqs2eI3sdnUzXJQ+hrxkg1f1Ga/iM2RAILxt45xUVnwwDCHA8wpWTfiUKL6Iv5JNEdo2VFqSBtBM6WnwYiGFo2AX73gmcVVVMCK1DC8BqUmsClOY0/14pfHnIImgYoJX3pVJtRMxEONhXgTRWFR7B3Nz0HwvpWXKe8LoZtxotXrMWDT4VuWOwV7x+CqqQq2R5hUD4urf5yTLbwtkkTy4BtDIbvNYVbvwym8qiwcZVr7y7iWHC5X7euH1Dib494+h6xrMQu2RFuaT0EJbONDwQ5Ma8856a4ACsdjL7RbOA2u2V8WuA+nAq+Yx1Yq/tIR/wNQ3oVCjz39G019tjx/+r0lq13QnIb71LopeoTEL8FnjAq+lsYbzbilRwF6CxFml/cxovJaTaBv/43u29wb7bS5imemu8ngVqVe7nIuRviXxfvi9WqOEzZ/1uij+2GWkcVa/UyL6A5E6Pk4wy8t1jN0hBR0zYYD3EQDdDr0a/RepmVY7GT9gDVBldvOgtNOxn6Lc0vCznlJJ0G7rTZRHuK91VPRz3juw9OuS2MaXHVY6ZQxITdHw8YEXQCtafBkwOpvWgxFf64xA3pcyIMH8SOiKFJkjH2qlP7ZNOMhJYVU+kV8Et3QksV5ntpxhZRASlONH3C+y3JFSyJtKMRSAYY3V6RChaObmhGGVvItrF65G9vd9eUZkTk7oh/5iJjoDrxuz6Atc9wruoTHv4xYCK8HetD9VX0WPCgGEqgW++Pk02xv6+hkLoQ= 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)(122000001)(86362001)(110136005)(8676002)(66446008)(36756003)(6512007)(54906003)(316002)(66946007)(83380400001)(966005)(30864003)(76116006)(508600001)(66556008)(186003)(2906002)(71200400001)(66476007)(6506007)(53546011)(33656002)(2616005)(64756008)(6486002)(91956017)(38100700002)(8936002)(5660300002)(4326008)(38070700005)(45980500001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Qk50Y3h1dnJIRThuV0Zpd1JaM1BvcEU2MElvaTdBVVRqT3BQMjdKRjQ0TXNJ?= =?utf-8?B?ZE41NmVKZDhINnNZd0NjZzRQTzBrbnlWOWFjWWtaSFNYVEI5V1lSZkc3QkVI?= =?utf-8?B?VG9UVjF6bGtOVzgyMTFsODB6MUxiV0VmSTQ5azNVNnkyY2tmKzAyeXJ2aUw3?= =?utf-8?B?TWREeXFsUkNRU3YzMFRCandYdEowMzVyT0YrRFczMzhGODFaUndNd0xpSUND?= =?utf-8?B?ajBZdFVLZEdLVEU0V1ZzdmVXaDlDeURKSE9NdWFkYVhsWWd6TXFVVUZycUJr?= =?utf-8?B?OGFVZmgya0pDRkJSMG5DZm9WK0l2L2hZZmQ1K3dPWnBiYkRvZWhoeDJuaC84?= =?utf-8?B?am5SM3FtS0Z4ZHJpa1RnTG5HUUVJSmpzbGRPbHhRTWxNNm8yN3lVdHlQQ2Jl?= =?utf-8?B?WVlNWVU3WFh5UzRrRkZuSkpycHNaeE1ISVMxKzBINnQrSjJvMTllZ0J2NHhW?= =?utf-8?B?czFPeTRCTUhDcExQbGtjVFdUK2xnUTJiV2xNTXdSdnliQU8zaTBDT3ByYStj?= =?utf-8?B?YytyWkNYVUcyWFp4ZHgydjlzRWpDUlNHanQwbXRzSlhKa2RJSzhMZUY1NmFI?= =?utf-8?B?dEtFTGRBNTk3T2hwWndNNHRzZm9VQTlSd3dZYVlZaHUwWG8zY3RlWjlRbDls?= =?utf-8?B?a1Z4TUFDM3dNU2Z2cG5TMmNwekZzL1dweEo2ditnU2lnYkFrME14czNBTFIx?= =?utf-8?B?TFRqMndNWnFycjhOZUxvb2RqS09MYzhmb2R5Rllqdk9WcEhITkZvQ0U4U2tV?= =?utf-8?B?NHFkWmorU3ovZGZrWTBMcVNNTFJabWxBRC9IeDJPUG9iSlhaZlRiSDhJREJa?= =?utf-8?B?eFZQeEh1aWpiS24wL3hVaGVpd2c5QW1JdkZldGlQMldaRW5SQ2gzcXJmVGFO?= =?utf-8?B?T25oajFvWHVBZk9CQmlyYkpBL05WR1hGaHVoSkttdjVPNXdrSUtzNHMxTFRC?= =?utf-8?B?dlZNVkVvcDlwNy9CbmRHUXZJVXp6VHZYczJaRzQrSFlVbkNTdHg5enBPMFQz?= =?utf-8?B?Ykk5SzhWRk1xOXVUUFhRT0NTVmYrUTlRQkdOTE1yK0dhUzlnZXFYK2hFNjU2?= =?utf-8?B?Y1JTS0l0ZWlrQ1hqUE9lZWNianpFb3AzQWgwcUl6ZXVUMU9GVHJUWkd5dDZx?= =?utf-8?B?SDlqYU5BOGpTN3ZWcGFKYk00bGN1MXk2WXBTcHZTczBaWU5OdlJwdEJpbFhR?= =?utf-8?B?eFZEQUwrMnRGNVkreXFuRXZNWXQxZWREblZDWmlYQUVUdWJjNDBiMkdiSEFl?= =?utf-8?B?aThDa3FNemN2ZERKZXkrY001WGtPVW5lZGRHOTNCK1NaTTFCQSszSUdPc3oz?= =?utf-8?B?V2x6anZqR014T0V5bEhBWmFmT2huNFBwbmtnN282dDRudmdpWmJnT0ROWklw?= =?utf-8?B?SllQczJqYlhBUkxKUjVMSVFEbXkrclB4UW1pQTBFZkszc1htSXQ0bGhZS0RQ?= =?utf-8?B?Titid0w2Q1hVOERCTXJpL2g5eng4YXhCc3pEYWhpbUoyamt0QTVzNks0OWRE?= =?utf-8?B?ZjMyOXROK1l5b1UvMERvVEJVMU44RlRQS3JmTTJjTVVxR001MXM0QVJQSkpp?= =?utf-8?B?MFJ2aUErSmVXNDkzd3VpWmZlbGw5TDNJUFkxSVREeU4zWTNjVWhtdWUrTS8x?= =?utf-8?B?TU5aaml2TndPTXFqWkd6aVZqZzIrcmVuN2ZUN0ZOa0RTczErc0xhbTJWdm9u?= =?utf-8?B?OWJ2aE9YOVNDaGZTSEZHSG16Sys1a0t0RnN4ZHJZWVlEKzhWdnZ5WEZrZ04z?= =?utf-8?B?QVVTQTl3VndnUWQydlY5dElEZ2s1OGtLNVBFMFZTNGxEdlNLK0kvNGVmMG9t?= =?utf-8?B?T3F4c1lqaG9pRkhtcjJvajVEeG8xMno2SElpUmNXL0RrNkNxNkE5cWduR1BI?= =?utf-8?Q?ilh0NA6nzQaLC?= 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: 309295dd-8a35-4f1f-8292-08d952501d25 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2021 05:17:08.7732 (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: OHnPiSyJiZVEgvcP8k71j8qRmSNdowu9VED91nSPEGa1oQyJwqEvm9T/QfT5CHB84o84Jc8lsTBrk2DW11tFtw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4840 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Y29tbWVudCBiZWxvdw0KDQp0aGFuayB5b3UhDQpZYW8sIEppZXdlbg0KDQoNCj4g5ZyoIDIwMjHl ubQ35pyIMjnml6XvvIzkuIvljYgxMjoyOe+8jEJyaWplc2ggU2luZ2ggdmlhIGdyb3Vwcy5pbyA8 YnJpamVzaC5zaW5naD1hbWQuY29tQGdyb3Vwcy5pbz4g5YaZ6YGT77yaDQo+IA0KPiDvu78NCj4+ IE9uIDcvMjgvMjEgOTo0NCBQTSwgWHUsIE1pbiBNIHdyb3RlOg0KPj4gSmlld2VuICYgU2luZ2gN Cj4+IA0KPj4gRnJvbSB0aGUgZGlzY3Vzc2lvbiBJIGFtIHRoaW5raW5nIHdlIGhhdmUgYmVsb3cg cnVsZXMgdG8gZm9sbG93IHRvIHRoZSBkZXNpZ24gdGhlIHN0cnVjdHVyZQ0KPj4gb2YgVEVFX1dP UktfQVJFQToNCj4+IDEuIERlc2lnbiBzaG91bGQgYmUgZmxleGlibGUgYnV0IG5vdCB0b28gY29t cGxpY2F0ZWQNCj4+IDIuIFJldXNlIHRoZSBjdXJyZW50IFNFVl9FU19XT1JLX0FSRUEgKFBjZFNl dkVzV29ya0FyZWFCYXNlKSBhcyBURUVfV09SS19BUkVBDQo+PiAzLiBURUVfV09SS19BUkVBIHNo b3VsZCBiZSBpbml0aWFsaXplZCB0byBhbGwtMCBhdCB0aGUgYmVnaW5uaW5nIG9mIFJlc2V0VmVj b3RyDQo+PiA0LiBSZWR1Y2UgdGhlIGNoYW5nZXMgdG8gZXhpdGluZyBjb2RlIGlmIHBvc3NpYmxl DQo+PiANCj4+IFNvIEkgdHJ5IHRvIG1ha2UgYmVsb3cgY29uY2x1c2lvbnMgYmVsb3c6IChQbGVh c2UgcmV2aWV3KQ0KPj4gMS4gU0VWX0VTX1dPUktfQVJFQSBpcyB1c2VkIGFzIHRoZSBURUVfV09S S19BUkVBIGJ5IGJvdGggVERYIGFuZCBTRVYsIG1heWJlIGluDQo+PiB0aGUgZnV0dXJlIGl0IGNh biBiZSB1c2VkIGJ5IG90aGVyIENDIHRlY2hub2xvZ2llcy4NCj4+IA0KPj4gMi4gSW4gTUVNRkQs IGFkZCBiZWxvdyBpbml0aWFsIHZhbHVlLiBTbyB0aGF0IFRFRV9XT1JLX0FSRUEgaXMgZ3VhcmFu dGVlZCB0byBiZSBjbGVhcmVkDQo+PiBpbiBsZWdhY3kgZ3Vlc3QuIEluIFREWCB0aGlzIG1lbW9y eSByZWdpb24gaXMgaW5pdGlhbGl6ZWQgdG8gYmUgYWxsLTAgYnkgaG9zdCBWTU0uIEluIFNFViB0 aGUgbWVtb3J5DQo+PiByZWdpb24gaXMgY2xlYXJlZCBhcyB3ZWxsLg0KPj4gIDB4MDBCMDAwfDB4 MDAxMDAwDQo+PiAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RTZXZFc1dvcmtBcmVhQmFz ZXxnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNldkVzV29ya0FyZWFTaXplDQo+PiAgREFU QSA9IHsNCj4+ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsDQo+PiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LA0KPj4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwN Cj4+ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDANCj4+ ICB9DQo+IA0KPiBIbW0sIEkgdGhvdWdodCB0aGUgY29udGVudHMgb2YgdGhlIGRhdGEgcGFnZXMg YXJlIGNvbnRyb2xsZWQgYnkgdGhlIGhvc3QNCj4gVk1NLiBJZiB0aGUgYmFja2luZyBwYWdlcyBh cmUgbm90IHplcm8gZmlsbGVkIHRoZW4gdGhlcmUgaXMgbm8gZ3VhcmFudGVlDQo+IHRoYXQgbWVt b3J5IHdpbGwgYmUgemVyby4gIFRvIHZlcmlmeSBpdDoNCj4gDQo+IDEuIEkgYXBwbGllZCB5b3Vy IGFib3ZlIGNoYW5nZSBpbiBPdm1mUGtnWDg2LmZkdC4gSSBtb2RpZmllZCB0aGUgREFUQQ0KPiB2 YWx1ZXMgZnJvbSAweDAwIC0+IDB4Q0MNCj4gDQo+IDIuIE1vZGlmaWVkIHRoZSBTZWNNYWluLmMg dG8gZHVtcCB0aGUgU2V2RXNXb3JrQXJlYSBvbiBlbnRyeQ0KPiANCj4gQW5kIGR1bXAgZG9lcyBu b3QgY29udGFpbiB0aGUgMHhjYy4NCj4gDQo+IEFuZCB0byBjb25maXJtIGZ1cnRoZXIsICBJIGF0 dGFjaGVkIHRvIHRoZSBxZW11IHdpdGggdGhlIEdEQiBiZWZvcmUgdGhlDQo+IGJvb3RpbmcgdGhl IE9WTUYsIGFuZCBtb2RpZmllZCB0aGUgU2V2RXNXb3JrQXJlYSB3aXRoIHNvbWUgZ2FyYmFnZQ0K PiBudW1iZXIgIGFuZCB0aGlzIHRpbWUgdGhlIGR1bXAgcHJpbnRlZCBnYXJiYWdlIHZhbHVlIEkg cHV0IHRocm91Z2ggdGhlDQo+IGRlYnVnZ2VyLg0KPiANCj4gSW4gc3VtbWFyeSwgdGhlIE9WTUYg dG8gemVybyB0aGUgd29ya2FyZWEgbWVtb3J5IG9uIHRoZSBlbnRyeSBhbmQgd2UNCj4gY2Fubm90 IHJlbHkgb24gdGhlIERBVEE9ezB4MDAsIDB4MDAuLi59IHRvIHplcm8gdGhlIENDV29ya0FyZWEu DQo+IA0KPiBEaWQgSSBtaXNzIHNvbWV0aGluZyA/DQpbamlld2VuXSBJIGFtIG5vdCBzdXJlIGhv dyBTRVYgd29ya3MuIA0KRm9yIFREWCwgdGhpcyBtZW1vcnkgaXMgcHJpdmF0ZSBtZW1vcnkuIFZN TSBvciBRRU1VIGNhbm5vdCBtb2RpZnkgaXQgKmFmdGVyKiBsYXVuY2guDQpWTU0gb3IgUUVNVSBt YXkgbW9kaWZ5IGl0ICpiZWZvcmUqIGxhdW5jaC4gVGhhdCB3aWxsIGJlIGRldGVjdGVkIGJ5IGF0 dGVzdGF0aW9uIGxhdGVyIGlmIGl0IGlzIGFkZGVkIG1lbW9yeS4gVGhhdCB3aWxsIGJlIHplcm9l ZCB3aXRoIGFjY2VwdCBwYWdlIGlmIGl0IGlzIGF1Z2VkIG1lbW9yeS4gDQpTbyBpbiBURFgsIEkg aGF2ZSBubyBjb25jZXJuLg0KDQpBbnl3YXksIEkgdGhpbmsgdGhlIGxvZ2ljIGNhbiBiZToNCj09 PT09DQpDY1dvcmtBcmVhLlR5cGUgPSAwOw0KSW5pdENjV29ya0FyZWFTZXYoKTsgLy8gc2V0IFR5 cGU9MSBpZiBTRVYNCkluaXRDY1dvcmtBcmVhVGR4KCk7IC8vIHNldCBUeXBlPTIgaWYgVERYDQo9 PT09PQ0KDQo+IA0KPiANCj4+IA0KPj4gMy4gVGhlIHN0cnVjdHVyZSBvZiBURUVfV09SS19BUkVB DQo+PiAgVGhlIGN1cnJlbnQgU0VWX0VTX1dPUktfQVJFQSBpcyBkZWZpbmVkIGFzIGJlbG93Og0K Pj4gIHR5cGVkZWYgc3RydWN0IHsNCj4+ICAgIFVJTlQ4ICAgIFNldkVzRW5hYmxlZDsNCj4+ICAg IFVJTlQ4ICAgIFJlc2VydmVkMVs3XTsNCj4+ICAgIFtPdGhlcnMuLi5dDQo+PiB9IFNFQ19TRVZf RVNfV09SS19BUkVBOw0KPj4gDQo+PiBTbyBJIHRoaW5rIHRoZSBURUVfV09SS19BUkVBIGNhbiBi ZToNCj4+ICBCeXRlWzBdIFR5cGU6DQo+PiAgICAgICAgMDogbGVnYWN5IDE6IFNFViAgICAyOiBU RFggDQo+PiAgQnl0ZVsxXSBTdWJ0eXBlOg0KPj4gICAgICAgICAgICAgIElmIFR5cGUgaXMgMCwg dGhlbiBpdCBpcyAwDQo+PiAgICBJZiBUeXBlIGlzIDEsIHRoZW4gaXQgaXMgdXAgdG8gU0VWJ3Mg ZGVmaW5pdGlvbg0KPj4gICAgSWYgVHlwZSBpcyAyLCB0aGVuIGl0IGlzIHVwIHRvIFREWCdzIGRl ZmluaXRpb24NCj4+IEJ5dGVbXSBvdGhlciBieXRlcyBhcmUgZGVmaW5lZCBiYXNlZCBvbiB0aGUg VHlwZS9TdWJ0eXBlDQo+IA0KPiBJIHBlcnNvbmFsbHkgbGlrZSBZYW8gSmlld2VuJ3Mgc3RydWN0 IGRlZmluaXRpb24sIGJ1dCBJIGNhbiBhbHNvIGxpdmUNCj4gd2l0aCB0aGlzIG9uZSBhcyB3ZWxs IDopLiBUaGUgb25seSBxdWVzdGlvbiBJIGhhZCB3YXMgd2l0aCBoaXMgcHJvcG9zYWwNCj4gd2Fz IHdoYXQgaWYgd2UgcmVtb3ZlIHRoZSBMZW5ndGggYW5kIFZlcnNpb24gZmllbGRzLiBJZiB0aGUg aGVhZGVyDQo+IGxlbmd0aCB3YXMgZml4ZWQgdGhlbiBsaWZlIHdvdWxkIGJlIG11Y2ggZWFzaWVy IGluIHRoZSBBU00gY29kZS4gDQpbamlld2VuXSBJIGFtIG9rIHRvIHJlbW92ZSB2ZXJzaW9uIGFu ZCBsZW5ndGguIFRoZSB3ZSBuZWVkIHZlcnkgY2FyZWZ1bGx5IG1haW50YWluIHRoZSBjb21wYXRp YmlsaXR5LiANCg0KSG93IGFib3V0IGJlbG93Og0KDQp0eXBlZGVmIHN0cnVjdCB7DQogIFVJTlQ4 IFR5cGU7DQogIFVJTlQ4IFN1YlR5cGU7DQogIFVJTlQ4IFJlc2VydmVkWzZdOw0KfSBDQ19XT1JL X0FSRUFfSEVBRDsNCg0KVGhhdCBhbG1vc3QgYWxpZ25zIHdpdGggZXhpc3RpbmcgU0VWX0VTLiAN Cg0KPiANCj4gDQo+PiBJIGNoZWNrIHRoZSBjb2RlIGluIFNlY01haW4uYy4NCj4+IFNldkVzSXNF bmFibGVkKCkgbmVlZCB1cGRhdGVkIHRvIGNoZWNrIFNldkVzV29ya2FyZWEtPlNldkVzRW5hYmxl ZCA9PSAxLCBub3Qgbm9uLTAuDQo+PiBAQnJpamVzaCBTaW5naCBJcyB0aGVyZSBhbnkgb3RoZXIg Y29kZSBuZWVkIHVwZGF0ZT8NCj4gDQo+IEFzIG5vdGVkIGJlZm9yZSwgdGhlIFNldkVzV29ya0Fy ZWFzIGlzIHVzZWQgdG8gcGFzcyB0aGUgaW5mb3JtYXRpb24gZnJvbQ0KPiB0aGUgU2VjIHRvIFBF SSBwaGFzZS4gVGhlIHdvcmthcmVhIGdldHMgcmV1c2VkIGZvciB0b3RhbGx5IGRpZmZlcmVudA0K PiBwdXJwb3NlIGFmdGVyIHRoZSBQRUkgcGhhc2UuDQpbamlld2VuXSBTb3JyeS4gIEkgYW0gbm90 IGF3YXJlIG9mIHRoYXQuDQpBbnkgZG9jdW1lbnRhdGlvbj8NCklzIHRoYXQgU0VWIHNwZWNpZmlj IHB1cnBvc2U/IE9yIGdlbmVyaWMgQ0MgcHVycG9zZT8NCg0KDQo+IA0KPiB0aGFua3MNCj4gDQo+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBZYW8sIEppZXdlbiA8amll d2VuLnlhb0BpbnRlbC5jb20+DQo+Pj4gU2VudDogVGh1cnNkYXksIEp1bHkgMjksIDIwMjEgNzo0 OSBBTQ0KPj4+IFRvOiBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgWHUsIE1pbiBNDQo+Pj4gPG1pbi5tLnh1QGludGVsLmNvbT4NCj4+ PiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+OyBKdXN0ZW4s IEpvcmRhbiBMDQo+Pj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBFcmRlbSBBa3RhcyA8 ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsgSmFtZXMNCj4+PiBCb3R0b21sZXkgPGplamJAbGludXgu aWJtLmNvbT47IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+Pj4gU3Vi amVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjMgMDYvMTBdIE92bWZQa2c6IEFkZCBBbWRT ZXYuYXNtIGluDQo+Pj4gUmVzZXRWZWN0b3INCj4+PiANCj4+PiBDb21tZW50IGJlbG93Og0KPj4+ IA0KPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+PiBGcm9tOiBCcmlqZXNoIFNp bmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+DQo+Pj4+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDI5 LCAyMDIxIDI6NTkgQU0NCj4+Pj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBYdSwgTWluDQo+Pj4+IE0gPG1pbi5tLnh1QGludGVs LmNvbT4NCj4+Pj4gQ2M6IGJyaWplc2guc2luZ2hAYW1kLmNvbTsgQXJkIEJpZXNoZXV2ZWwgPGFy ZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+Ow0KPj4+PiBKdXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4u bC5qdXN0ZW5AaW50ZWwuY29tPjsgRXJkZW0gQWt0YXMNCj4+Pj4gPGVyZGVtYWt0YXNAZ29vZ2xl LmNvbT47IEphbWVzIEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgVG9tDQo+Pj4+IExl bmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4+Pj4gU3ViamVjdDogUmU6IFtlZGsy LWRldmVsXSBbUEFUQ0ggVjMgMDYvMTBdIE92bWZQa2c6IEFkZCBBbWRTZXYuYXNtIGluDQo+Pj4+ IFJlc2V0VmVjdG9yDQo+Pj4+IA0KPj4+PiANCj4+Pj4gDQo+Pj4+IE9uIDcvMjgvMjEgMTE6MjYg QU0sIFlhbywgSmlld2VuIHdyb3RlOg0KPj4+Pj4gSSB3b3VsZCBzYXkgaXQgaXMgTk9UIHRoZSBi ZXN0IHNvZnR3YXJlIHByYWN0aWNlIHRvIGRlZmluZSAyIGVuYWJsZQ0KPj4+Pj4gZmllbGRzIHRv DQo+Pj4+IGluZGljYXRlIG9uZSB0eXBlLg0KPj4+Pj4gV2hhdCBpZiBzb21lIHNvZnR3YXJlIGVy cm9yLCBzZXQgYm90aCBUZHhFbmFibGUgYW5kIFNldkVuYWJsZSBhdCBzYW1lDQo+Pj4gdGltZT8N Cj4+Pj4+IEhvdyBkbyB5b3UgZGV0ZWN0IHN1Y2ggZXJyb3I/DQo+Pj4+IEhtbSwgYXJlbid0IHdl IHNheWluZyBpdCBpcyBhIHNvZnR3YXJlIGJ1Zy4gSW4gdGhhdCBjYXNlIGFub3RoZXIgYnVnDQo+ Pj4+IGNhbiBhbHNvIG1lc3MgdXAgdGhlIHN0cnVjdHVyZSBoZWFkZXIuDQo+Pj4gW0ppZXdlbl0g WWVzLiBJIHRyZWF0IGl0IGFzIGEgc29mdHdhcmUgaW1wbGVtZW50YXRpb24gYnVnLg0KPj4+IFRo ZSBrZXkgdGhpbmcgaW4gc29mdHdhcmUgZGVzaWduIGlzIHRvIGF2b2lkIHRoZSBkZXZlbG9wZXIg bWFraW5nIG1pc3Rha2UsIGhlbHANCj4+PiBkZWJ1ZyBpc3N1ZXMsIGhlbHAgbWFpbnRhaW4gdGhl IGNvZGUgZWFzaWx5Lg0KPj4+IA0KPj4+IA0KPj4+Pj4gSWYgc29tZSBjb2RlIG1heSBjaGVjayB0 aGUgU0VWIG9ubHksIGFuZCBzb21lIGNvZGUgbWF5IGNoZWNrIFREWA0KPj4+Pj4gb25seSwNCj4+ Pj4gdGhlbiBib3RoIGNvZGUgY2FuIHJ1bi4gVGhhdCB3aWxsIGJlIGEgZGlzYXN0ZXIuIFRoZSBj b2RlIGlzIGhhcmQgdG8NCj4+Pj4gbWFpbnRhaW4gYW5kIGhhcmQgdG8gZGVidWcuDQo+Pj4+PiBB bm90aGVyIGNvbnNpZGVyYXRpb24gaXM6IHdoYXQgaWYgc29tZW9uZSB3YW50cyB0byBzZXQgdGhl IHRoaXJkIHR5cGU/DQo+Pj4+PiBEbyB3ZSB3YW50IHRvIHJlc2VydmUgdGhlIDNyZCBieXRlPyBU byBpbmRpY2F0ZSB0aGUgdGhpcmQgdHlwZT8gSXQNCj4+Pj4+IGlzIG5vdA0KPj4+PiBzY2FsYWJs ZS4NCj4+Pj4+IFRoZSBiZXN0IHNvZnR3YXJlIHByYWN0aWNlIGl0IHRvIGp1c3QgZGVmaW5lIG9u ZSBmaWVsZCBhcw0KPj4+Pj4gZW51bWVyYXRpb24uIFNvIGFueQ0KPj4+PiBzb2Z0d2FyZSBjYW4g b25seSBzZXQgVGR4IG9yIFNldi4gVGhlIHJlc3VsdCBpcyBjb25zaXN0ZW50LCBubyBtYXR0ZXIN Cj4+Pj4geW91IGNoZWNrIHRoZSBTRVYgYXQgZmlyc3Qgb3IgVERYIGF0IGZpcnN0Lg0KPj4+Pj4g SWYgdGhlcmUgaXMgM3JkIGJ5dGVzLCB3ZSBqdXN0IG5lZWQgYXNzaWduIHRoZSAzcmQgdmFsdWUg dG8gaXQsDQo+Pj4+PiB3aXRob3V0IGltcGFjdCBhbnkNCj4+Pj4gb3RoZXIgZmllbGQuDQo+Pj4+ IEkgd2FzIHRyeWluZyB0byBzZWUgaWYgd2UgY2FuIG1ha2UgaXQgd29yayB3aXRob3V0IHJlcXVp cmluZyBhbnkNCj4+Pj4gY2hhbmdlcyB0byBVZWZpQ3B1UGtnIGV0YyAod2hpY2ggdXNlcyB0aGUg RXNXb3JrQXJlYSkuDQo+Pj4gW0ppZXdlbl0gSSBhZ3JlZSB3aXRoIHlvdS4NCj4+PiBBbmQgSSB0 aGluayB0aGUgcHJpb3JpdHkgc2hvdWxkIGJlOg0KPj4+IDEpIG1ha2UgYSBnb29kIGRlc2lnbiBm b2xsb3dpbmcgdGhlIGJlc3QgcHJhY3RpY2UuDQo+Pj4gMikgbWluaW1pemUgdGhlIGNoYW5nZS4N Cj4+PiANCj4+PiBJIGRvbuKAmXQgdGhpbmsgdHdvICplbmFibGUqIGZpZWxkcyBjYW4gc2F0aXNm eSAjMS4NCj4+PiBBbmQgSSBhbSBvcGVuIG9uIGhvdyB0byBkbyAjMi4gKFNlZSByZXN0IGNvbW1l bnQgYmVsb3cpDQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4+IA0KPj4+Pj4gSSB0aGluayB3ZSBjYW4g YWRkICJtdXN0IHplcm8iIGluIHRoZSBjb21tZW50LiBCdXQgaXQgZG9lcyBub3QgbWVhbg0KPj4+ Pj4gdGhlcmUgd2lsbA0KPj4+PiBiZSBubyBlcnJvciBkdXJpbmcgZGV2ZWxvcG1lbnQuDQo+Pj4+ PiBVTklPTiBpcyBub3QgYSB0eXBlIHNhZmUgc3RydWN0dXJlLiBVc3VhbGx5LCB0aGUgY29uc3Vt ZXIgb2YgVU5JT04NCj4+Pj4+IHNoYWxsDQo+Pj4+IHJlZmVyIHRvIGEgY29tbW9uIGZpZWxkIHRv IGtub3cgd2hhdCB0aGUgdHlwZSBvZiB1bmlvbiBpcyAtIEkgdHJlYXQNCj4+Pj4gdGhhdCBhcyBo ZWFkZXIuDQo+Pj4+PiBTaW5jZSB3ZSBhcmUgZGVmaW5pbmcgYSBjb21tb24gZGF0YSBzdHJ1Y3R1 cmUsIEkgdGhpbmsgd2UgY2FuIGRvDQo+Pj4+PiBzb21lIGNsZWFuDQo+Pj4+IHVwLg0KPj4+Pj4g T3IgaWYgeW91IGhhdmUgY29uY2VybiB0byBjaGFuZ2UgU0VDX1NFVl9FU19XT1JLX0FSRUEsIHdl IGNhbiBkZWZpbmUNCj4+Pj4+IGENCj4+Pj4gbmV3IENDIFdPUktfQVJFQSB3aXRob3V0IHRvdWNo aW5nIFNFVl9TRVZfRVNfV09SS0lOR19BUkVBLg0KPj4+PiBJbiB5b3VyIGJlbG93IHN0cnVjdHVy ZSwgSSBhc3N1bWUgdGhlIFNFViBvciBURFggcHJvYmUgd2lsbCBzZXQgdGhlDQo+Pj4+IFR5cGUg b25seSB3aGVuIGl0IGRldGVjdHMgdGhhdCBmZWF0dXJlIGlzIGFjdGl2ZS4gQnV0IHdoaWNoIGxh eWVyIG9mDQo+Pj4+IHRoZSBzb2Z0d2FyZSBpcyBnb2luZyB0byBzZXQgdGhlIHR5cGUgdG8gemVy byB0byBpbmRpY2F0ZSBpdHMgYSBsZWdhY3kgZ3Vlc3QgPw0KPj4+IFtKaWV3ZW5dIEdvb2QgcXVl c3Rpb24uDQo+Pj4gSSBleHBlY3Qgc29tZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgc3VjaCBh cyBJbml0Q2NXb3JrQXJlYVNldiwNCj4+PiBJbml0Q2NXb3JrQXJlYVRkeC4NCj4+PiBUaGUgZGVm YXVsdCB2YWx1ZSBMZWdhY3kgc2hhbGwgYmUgb3ZlcnJpZGUgaW4gSW5pdENjV29ya0FyZWEgYWZ0 ZXIgY2FwYWJpbGl0eQ0KPj4+IGNoZWNrLg0KPj4+IFByZU1haW5GdW5jdGlvbkhvb2tYWFggaXMg Y29tbW9uIHBhdHRlciBmb3IgYWxsIGZ1bmN0aW9uLiBJdCBqdXN0IGNoZWNrcyB0aGUNCj4+PiBD Y1dvcmtBcmVhLg0KPj4+IA0KPj4+IA0KPj4+IA0KPj4+PiB0eXBlZGVmIHN0cnVjdCB7DQo+Pj4+ ICAgIFVJTlQ4ICAgIEhlYWRlclZlcnNpb247IC8vIDANCj4+Pj4gICAgVUlOVDggICAgSGVhZExl bmd0aDsgLy8gNA0KPj4+PiAgICBVSU5UOCAgICBUeXBlOyAvLyAwIC0gbGVnYWN5LCAxIC0gU0VW LCAyIC0gVERYDQo+Pj4+ICAgIFVJTlQ4ICAgIFN1YlR5cGU7IC8vIFR5cGUgc3BlY2lmaWMgc3Vi IHR5cGUsIGlmIG5lZWRlZC4NCj4+Pj4gfSBDQ19DT01NT05fV09SS19BUkVBX0hFQURFUjsNCj4+ Pj4gDQo+Pj4+IGkuZSBJbiB0aGlzIGNhbGwgc2VxdWVuY2U6DQo+Pj4+IA0KPj4+PiBPbmVUaW1l Q2FsbCAgIFByZU1haW5GdW5jdGlvbkhvb2tTZXYNCj4+Pj4gT25lVGltZUNhbGwgICBQcmVNYWlu RnVuY3Rpb25Ib29rVGR4DQo+Pj4+IA0KPj4+PiAuLi4uDQo+Pj4+IA0KPj4+PiBUaGUgUHJlTWFp bkZ1bmN0aW9uSG9va1NldiB3aWxsIGRldGVjdCB3aGV0aGVyIFNFViBpcyBhY3RpdmUgb3Igbm90 Lg0KPj4+PiBJZiBpdHMgYWN0aXZlIHRoZW4gc2V0IHRoZSB0eXBlID0gTUVNX0VOQ1JZUFRfU0VW OyBhbmQgc2ltaWxhcmx5IHRoZQ0KPj4+PiBUZHggaG9vayB3aWxsIHNldCB0aGUgdHlwZT1NRU1f RU5DUllQVF9URFguIFdoYXQgaWYgbmVpdGhlciBURFggb3IgU0VWDQo+Pj4+IGlzIGVuYWJsZWQu IEF0IHRoaXMgdGltZSB3ZSB3aWxsIGRlcGVuZCBvbiBoeXBlcnZpc29yIHRvIGVuc3VyZSB0aGF0 DQo+Pj4+IHZhbHVlIGF0IHRoYXQgbWVtb3J5IGlzIHplcm8uDQo+Pj4gW0ppZXdlbl0gSSB0aGlu ayB3ZSBqdXN0IGxldCBJbml0Q2NXb3JrQXJlYVNldiBhbmQgSW5pdENjV29ya0FyZWFUZHggb3Zl cnJpZGUNCj4+PiB0aGUgZGVmYXVsdCB2YWx1ZS4NCj4+PiBJbml0Q2NXb3JrQXJlYXtTZXYsVGR4 fToNCj4+PiAgICAvLyBEZXRlY3QgSGFyZHdhcmUgQ2FwYWJpbGl0eQ0KPj4+ICAgIC8vIElmIGRp c2NvdmVyZWQsIHRoZW4gc2V0IFR5cGUgPSB7U0VWLFREWH0NCj4+PiAgICAvLyBFbHNlLCBsZWF2 ZSBpdCBhcyBpcw0KPj4+IA0KPj4+IA0KPj4+IA0KPj4+IA0KPj4+PiBBZGRpdGlvbmFsbHksIGRv IHlvdSBzZWUgYSBuZWVkIGZvciB0aGUgSGVhZExlbmd0aCBmaWVsZCBpbiB0aGlzDQo+Pj4+IHN0 cnVjdHVyZSA/IEluIGFzbSBpdCBpcyBwcmVmZXJyZWQgaWYgd2UgY2FuIGFjY2VzcyB0aGUgYWN0 dWFsDQo+Pj4+IHdvcmthcmVhIHBvaW50ZXIgYXQgdGhlIGZpeGVkIGxvY2F0aW9uIGluc3RlYWQg b2YgZmlyc3QgcmVhZGluZyB0aGUNCj4+Pj4gSGVhZExlbmd0aCB0byBkZXRlcm1pbmUgaG93IG11 Y2ggaXQgbmVlZCB0byBza2lwLg0KPj4+IFtKaWV3ZW5dIFlvdSBhcmUgcmlnaHQuDQo+Pj4gTGVu Z3RoL1ZlcnNpb24gaXMgTk9UIGFic29sdXRlbHkgbmVjZXNzYXJ5LCBpZiB0aGUgaGVhZGVyIGlz IHNpbXBsZSBlbm91Z2guIElmDQo+Pj4geW91IHRoaW5rIHdlIGRvbuKAmXQgbmVlZCB0aGVtLCBJ IGFtIE9LIHRvIHJlbW92ZSB0aGVtLg0KPj4+IEkgdGhpbmsgb25seSAiVHlwZSIgaXMgbWFuZGF0 b3J5LCB3aGljaCB0ZWxscyB1cyB0aGUgY2F0ZWdvcnkuDQo+Pj4gSSB0aGluayAiU3ViVHlwZSIg aXMgdXNlZnVsLCBiZWNhdXNlIHdlIG1pZ2h0IHdhbnQgdG8ga25vdyBpZiBpdCBpcyBTRVYsIG9y IFNFVi1FUywNCj4+PiBvciBTRVYtU05QLCBhbmQgaWYgaXQgaXMgVERYIDEuMCwgb3IgVERYLmZ1 dHVyZS4gUGxlYXNlIGxldCBtZSBrbm93IHlvdXIgdGhvdWdodC4NCj4+PiANCj4+PiANCj4+PiBP bmUgcXVlc3Rpb24gb24gU0VDX1NFVl9FU19XT1JLX0FSRUEuIFNpbmNlIHlvdSBoYXZlIFNFVi9T RVYtRVMvU0VWLQ0KPj4+IFNOUCwgaXMgdGhpcyBTRVZfRVNfV09SS19BUkVBIG9ubHkgZm9yIFNF Vl9FUz8gT3IgaXQgaXMgYWxzbyB1c2VkIGluIFNFViAobm8NCj4+PiBTRVZfRVMpLCBhbmQgU0VW X1NOUCA/DQo+Pj4gRm9yIGV4YW1wbGUsIHdoZW4gd2Ugc2VlIFNldkVzRW5hYmxlPTAsIGhvdyBk byB3ZSBrbm93IGl0IGlzIFNFViAobm8gU0VWX0VTKQ0KPj4+IG9yIGxlZ2FjeSAobm8gU0VWLCBu byBTRVZfRVMpPyBPciB3ZSBkb27igJl0IG5lZWQgY2FyZSBpbiBTRVYgKG5vIFNFVl9FUykgY2Fz ZS4NCj4+PiANCj4+PiANCj4+PiANCj4+PiANCj4+Pj4gDQo+Pj4+PiBUaGFuayB5b3UNCj4+Pj4+ IFlhbyBKaWV3ZW4NCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4+Pj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZg0KPj4+Pj4+IEJyaWplc2ggU2luZ2ggdmlhIGdyb3Vwcy5pbw0K Pj4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAyOCwgMjAyMSAxMTo1OSBQTQ0KPj4+Pj4+IFRv OiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5p bzsgWHUsDQo+Pj4+Pj4gTWluIE0gPG1pbi5tLnh1QGludGVsLmNvbT4NCj4+Pj4+PiBDYzogYnJp amVzaC5zaW5naEBhbWQuY29tOyBBcmQgQmllc2hldXZlbA0KPj4+Pj4+IDxhcmRiK3RpYW5vY29y ZUBrZXJuZWwub3JnPjsgSnVzdGVuLCBKb3JkYW4gTA0KPj4+Pj4+IDxqb3JkYW4ubC5qdXN0ZW5A aW50ZWwuY29tPjsgRXJkZW0gQWt0YXMgPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47DQo+Pj4+Pj4g SmFtZXMgQm90dG9tbGV5IDxqZWpiQGxpbnV4LmlibS5jb20+OyBUb20gTGVuZGFja3kNCj4+Pj4+ PiA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRl dmVsXSBbUEFUQ0ggVjMgMDYvMTBdIE92bWZQa2c6IEFkZCBBbWRTZXYuYXNtDQo+Pj4+Pj4gaW4g UmVzZXRWZWN0b3INCj4+Pj4+PiANCj4+Pj4+PiBIaSBZYW8gSmlld2VuLA0KPj4+Pj4+IA0KPj4+ Pj4+IEkgZ3Vlc3MgSSBhbSBzdGlsbCB0cnlpbmcgdG8gZmlndXJlIG91dCB3aHkgd2UgbmVlZCB0 aGUgaGVhZGVyIGluDQo+Pj4+Pj4gdGhlIHdvcmsgYXJlYS4gQ2FuJ3Qgd2UgZG8gc29tZXRoaW5n IGxpa2UgdGhpczoNCj4+Pj4+PiANCj4+Pj4+PiB0eXBlZGVmIHN0cnVjdCB7DQo+Pj4+Pj4gICAg VUlOVDggICAgU2V2RXNFbmFibGVkOw0KPj4+Pj4+IA0KPj4+Pj4+ICAgIC8vIElmIEVzIGlzIGVu YWJsZWQgdGhlbiB0aGlzIGZpZWxkIG11c3QgYmUgemVyb2VkDQo+Pj4+Pj4gICAgVUlOVDggICAg TXVzdEJlWmVybzsNCj4+Pj4+PiANCj4+Pj4+PiAgICBVSU5UOCAgICBSZXNlcnZlZDFbNl07DQo+ Pj4+Pj4gDQo+Pj4+Pj4gICAgVUlOVDY0ICAgUmFuZG9tRGF0YTsNCj4+Pj4+PiANCj4+Pj4+PiAg ICBVSU5UNjQgICBFbmNyeXB0aW9uTWFzazsNCj4+Pj4+PiB9IFNFQ19TRVZfRVNfV09SS19BUkVB Ow0KPj4+Pj4+IA0KPj4+Pj4+IHR5cGVkZWYgc3RydWN0IHsNCj4+Pj4+PiAgICAvLyBJZiBUZHgg aXMgZW5hYmxlZCB0aGVuIGl0IG11c3QgYmUgemVyb2VkDQo+Pj4+Pj4gICAgVUlOVDggICAgTXVz dEJlWmVybw0KPj4+Pj4+IA0KPj4+Pj4+ICAgIFVJTlQ4ICAgIFRkeEVuYWJsZWQ7DQo+Pj4+Pj4g DQo+Pj4+Pj4gICAgVUlOVDggICAgUmVzZXJ2ZWQyWzZdOw0KPj4+Pj4+ICAgIC4uLi4NCj4+Pj4+ PiANCj4+Pj4+PiB9IFRYX1dPUktfQVJFQTsNCj4+Pj4+PiANCj4+Pj4+PiB0eXBlZGVmIHVuaW9u IHsNCj4+Pj4+PiAgICBTRUNfU0VWX0VTX1dPUktfQVJFQSBTZXZFc1dvcmtBcmVhOw0KPj4+Pj4+ ICAgIFREWF9XT1JLX0FSRUEgICAgICAgICBUZHhXb3JrQXJlYTsNCj4+Pj4+PiB9IENDX1dPUktf QVJFQTsNCj4+Pj4+PiANCj4+Pj4+PiBJIGFtIHRyeWluZyB0byBtaW5pbWl6ZSB0aGUgY2hhbmdl cyB0byB0aGUgZXhpc3RpbmcgY29kZS4gVGhlIFNFVg0KPj4+Pj4+IGFuZCBURFggcHJvYmUgbG9n aWMgc2hvdWxkIGVuc3VyZSB0aGF0IGlmIHRoZSBmZWF0dXJlIGlzIGRldGVjdGVkLA0KPj4+Pj4+ IHRoZW4gaXQgbXVzdCBjbGVhciB0aGUgTXVzdEJlWmVybydlZCBmaWVsZC4NCj4+Pj4+PiANCj4+ Pj4+PiBCYXNpY2FsbHksIHdlIGFscmVhZHkgaGF2ZSBhIDY0LWJpdCB2YWx1ZSByZXNlcnZlZCBp biB0aGUgU2V2RXNXb3JrDQo+Pj4+Pj4gYXJlYSBhbmQgY3VycmVudGx5IG9ubHkgb25lIGJ5dGUg aXMgdXNlZCBhbmQgc2Vjb25kIGJ5dGUgY2FuIGJlDQo+Pj4+Pj4gZGV0ZWN0ZWQgZm9yIHRoZSBU RFguIEJhc2ljYWxseSB0aGUgd2hpY2ggZW5jcnlwdGlvbiB0ZWNobm9sb2d5IGlzDQo+Pj4+Pj4g YWN0aXZlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSB3b3JrIGFyZWEgd2lsbCBjaGFuZ2UuDQo+Pj4+ Pj4gDQo+Pj4+Pj4gQW0gSSBtaXNzaW5nIHNvbWV0aGluZyA/DQo+Pj4+Pj4gDQo+Pj4+Pj4gVGhh bmtzDQo+Pj4+Pj4gDQo+Pj4+Pj4gT24gNy8yOC8yMSAxMDoyMiBBTSwgWWFvLCBKaWV3ZW4gd3Jv dGU6DQo+Pj4+Pj4+IEhpIEJyaWplc2gNCj4+Pj4+Pj4gVGhhbmtzIQ0KPj4+Pj4+PiANCj4+Pj4+ Pj4gSSB0aGluayBpZiB3ZSB3YW50IHRvIHJldXNlIHRoaXMsIHdlIG5lZWQgcmVuYW1lIHRoZSBk YXRhIHN0cnVjdHVyZS4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEZpcnN0LCB3ZSBzaG91bGQgdXNlIGEg Z2VuZXJpYyBuYW1lLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gU2Vjb25kLCBJIGRvbuKAmXQgdGhpbmsg aXQgaXMgZ29vZCBpZGVhIHRvIGRlZmluZSB0d28gKmVuYWJsZSoNCj4+Pj4+Pj4gZmllbGRzLiBT aW5jZSBvbmx5DQo+Pj4+Pj4gb25lIG9mIHRoZW0gc2hvdWxkIGJlIGVuYWJsZWQsIHdlIHNob3Vs ZCB1c2UgMSBmaWVsZCBhcyBlbnVtZXJhdGlvbi4NCj4+Pj4+Pj4gVGhpcmQsIHdlIHNob3VsZCBo aWRlIHRoZSBTRVYgc3BlY2lmaWMgYW5kIFREWCBzcGVjaWZpYyBkZWZpbml0aW9uDQo+Pj4+Pj4+ IGluIENDDQo+Pj4+Pj4gY29tbW9uIHdvcmsgYXJlYS4NCj4+Pj4+Pj4gSWYgd2UgYWdyZWUgdG8g dXNlIGEgY29tbW9uIHdvcmsgYXJlYSwgSSByZWNvbW1lbmQgYmVsb3c6DQo+Pj4+Pj4+IA0KPj4+ Pj4+PiB0eXBlZGVmIHN0cnVjdCB7DQo+Pj4+Pj4+ICAgICBVSU5UOCAgICBIZWFkZXJWZXJzaW9u OyAvLyAwDQo+Pj4+Pj4+ICAgICBVSU5UOCAgICBIZWFkTGVuZ3RoOyAvLyA0DQo+Pj4+Pj4+ICAg ICBVSU5UOCAgICBUeXBlOyAvLyAwIC0gbGVnYWN5LCAxIC0gU0VWLCAyIC0gVERYDQo+Pj4+Pj4+ ICAgICBVSU5UOCAgICBTdWJUeXBlOyAvLyBUeXBlIHNwZWNpZmljIHN1YiB0eXBlLCBpZiBuZWVk ZWQuDQo+Pj4+Pj4+IH0gQ0NfQ09NTU9OX1dPUktfQVJFQV9IRUFERVI7DQo+Pj4+Pj4+IA0KPj4+ Pj4+PiB0eXBlZGVmIHN0cnVjdCB7DQo+Pj4+Pj4+ICAgICBDQ19DT01NT05fV09SS19BUkVBX0hF QURFUiBIZWFkZXI7DQo+Pj4+Pj4+ICAgICAvLyByZXNldCBpcyB2YWxpZCBpZiBUeXBlID09IDEN Cj4+Pj4+Pj4gICAgIFVJTlQ4ICAgIFJlc2VydmVkMVs0XTsNCj4+Pj4+Pj4gICAgIFVJTlQ2NCAg IFJhbmRvbURhdGE7DQo+Pj4+Pj4+ICAgICBVSU5UNjQgICBFbmNyeXB0aW9uTWFzazsNCj4+Pj4+ Pj4gfSBTRUNfU0VWX0VTX1dPUktfQVJFQTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IHR5cGVkZWYgc3Ry dWN0IHsNCj4+Pj4+Pj4gICAgIENDX0NPTU1PTl9XT1JLX0FSRUFfSEVBREVSIEhlYWRlcjsNCj4+ Pj4+Pj4gICAgIC8vIHJlc2V0IGlzIHZhbGlkIGlmIFR5cGUgPT0gMg0KPj4+Pj4+PiAgICAgVUlO VDggICAgVGR4U3BlY2lmaWNbXTsgIC8vIFRCRA0KPj4+Pj4+PiB9IFREWF9XT1JLX0FSRUE7DQo+ Pj4+Pj4+IA0KPj4+Pj4+PiBUaGFuayB5b3UNCj4+Pj4+Pj4gWWFvIEppZXdlbg0KPj4+Pj4+PiAN Cj4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+Pj4+PiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPj4+ Pj4+Pj4gQnJpamVzaCBTaW5naCB2aWEgZ3JvdXBzLmlvDQo+Pj4+Pj4+PiBTZW50OiBXZWRuZXNk YXksIEp1bHkgMjgsIDIwMjEgMTA6MzQgUE0NCj4+Pj4+Pj4+IFRvOiBZYW8sIEppZXdlbiA8amll d2VuLnlhb0BpbnRlbC5jb20+OyBYdSwgTWluIE0NCj4+Pj4gPG1pbi5tLnh1QGludGVsLmNvbT4N Cj4+Pj4+Pj4+IENjOiBicmlqZXNoLnNpbmdoQGFtZC5jb207IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBBcmQgQmllc2hldXZlbA0KPj4+Pj4+Pj4gPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+OyBK dXN0ZW4sIEpvcmRhbiBMDQo+Pj4+IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsNCj4+Pj4+ Pj4+IEVyZGVtIEFrdGFzIDxlcmRlbWFrdGFzQGdvb2dsZS5jb20+OyBKYW1lcyBCb3R0b21sZXkN Cj4+Pj4+Pj4+IDxqZWpiQGxpbnV4LmlibS5jb20+OyBUb20gTGVuZGFja3kgPHRob21hcy5sZW5k YWNreUBhbWQuY29tPg0KPj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0gg VjMgMDYvMTBdIE92bWZQa2c6IEFkZA0KPj4+Pj4+Pj4gQW1kU2V2LmFzbSBpbiBSZXNldFZlY3Rv cg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBIaSBKaWV3ZW4gYW5kIE1pbiwNCj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4gU2VlIG15IGNvbW1lbnRzIGJlbG93Lg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiANCj4+Pj4+ Pj4+IE9uIDcvMjgvMjEgMjo1NCBBTSwgWWFvLCBKaWV3ZW4gd3JvdGU6DQo+Pj4+Pj4+Pj4gWWVz LiBJIGFtIHRoaW5raW5nIHRoZSBzYW1lIHRoaW5nLg0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IFtD QyBGbGFnIG1lbW9yeSBsb2NhdGlvbl0NCj4+Pj4+Pj4+PiAxKSBBIGdlbmVyYWwgcHVycG9zZSBy ZWdpc3Rlciwgc3VjaCBhcyBFQlAuDQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gMikgQSBnbG9iYWwg dmFyaWFibGUsIHN1Y2ggYXMNCj4+Pj4+Pj4+PiAuZGF0YQ0KPj4+Pj4+Pj4+IFRlZUZsYWdzOiBE RCAwDQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gMykgQSBmaXhlZCByZWdpb24gaW4gc3RhY2ssIHN1 Y2ggYXMgZHdvcmRbU1RBQ0tfVE9QIC0gNF0NCj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+PiA0KSBBIG5l dyBDQyBjb21tb24gZml4ZWQgcmVnaW9uLCBzdWNoIGFzIGR3b3JkW0NDX0NPTU1PTl9GTEFHU10N Cj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+PiA1KSBBIGZpeGVkIHJlZ2lvbiBwaWdneWJhY2sgb24gZXhp c3RpbmcgQ0Mgd29ya2luZyBhcmVhLCBzdWNoIGFzDQo+Pj4+Pj4+Pj4gZHdvcmRbQ0NfV09SS0lO R19BUkVBXQ0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IEhpIEJyaWplc2gvTWluDQo+Pj4+Pj4+Pj4g QW55IHByZWZlcmVuY2U/DQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gW0NDIEluZGljYXRvciBGbGFn c10NCj4+Pj4+Pj4+PiBQcm9wb3NhbDogVUlOVDhbNF0NCj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+PiBC eXRlIFswXSBWZXJzaW9uOiAwDQo+Pj4+Pj4+Pj4gYnl0ZSBbMV0gTGVuZ3RoOiA0DQo+Pj4+Pj4+ Pj4gYnl0ZSBbMl0gVHlwZToNCj4+Pj4+Pj4+PiAgICAwOiBsZWdhY3kNCj4+Pj4+Pj4+PiAgICAx OiBTRVYNCj4+Pj4+Pj4+PiAgICAyOiBURFgNCj4+Pj4+Pj4+PiBieXRlIFszXSBTdWIgVHlwZToN Cj4+Pj4+Pj4+PiAgICBJZiBUeXBlIGlzIDAgKGxlZ2FjeSksIHRoZW4NCj4+Pj4+Pj4+PiAgICAg ICAgMDogbGVnYWN5DQo+Pj4+Pj4+Pj4gICAgSWYgVHlwZSBpcyAxIChTRVYpLCB0aGVuDQo+Pj4+ Pj4+Pj4gICAgICAgIDA6IFNFVg0KPj4+Pj4+Pj4+ICAgICAgICAxOiBTRVYtRVMNCj4+Pj4+Pj4+ PiAgICAgICAgMjogU0VWLVNOUA0KPj4+Pj4+Pj4+ICAgIElmIFR5cGUgaXMgMiAoVERYKSwgdGhl bg0KPj4+Pj4+Pj4+ICAgICAgICAwOiBURFggMS4wDQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gVGhh bmsgeW91DQo+Pj4+Pj4+Pj4gWWFvIEppZXdlbg0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+Pj4+Pj4+PiBGcm9tOiBYdSwg TWluIE0gPG1pbi5tLnh1QGludGVsLmNvbT4NCj4+Pj4+Pj4+Pj4gU2VudDogV2VkbmVzZGF5LCBK dWx5IDI4LCAyMDIxIDI6NTggUE0NCj4+Pj4+Pj4+Pj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4u eWFvQGludGVsLmNvbT4NCj4+Pj4+Pj4+Pj4gQ2M6IEJyaWplc2ggU2luZ2ggPGJyaWplc2guc2lu Z2hAYW1kLmNvbT47DQo+Pj4+Pj4+Pj4+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBBcmQgQmllc2hl dXZlbA0KPj4+Pj4+Pj4+PiA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47IEp1c3RlbiwgSm9y ZGFuIEwNCj4+Pj4+Pj4+Pj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBFcmRlbSBBa3Rh cw0KPj4+Pj4+Pj4+PiA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsNCj4+Pj4+Pj4+IEphbWVzDQo+ Pj4+Pj4+Pj4+IEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgVG9tIExlbmRhY2t5DQo+ Pj4+Pj4+PiA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+Pj4+Pj4+Pj4+IFN1YmplY3Q6IFJF OiBbUEFUQ0ggVjMgMDYvMTBdIE92bWZQa2c6IEFkZCBBbWRTZXYuYXNtIGluDQo+Pj4+IFJlc2V0 VmVjdG9yDQo+Pj4+Pj4+Pj4+IE9uIEp1bHkgMjgsIDIwMjEgMjowNSBQTSwgWWFvLCBKaWV3ZW4g d3JvdGU6DQo+Pj4+Pj4+Pj4+PiBJdCBkb2VzIG5vdCBuZWNlc3NhcnkgdG8gYmUgYSB3b3JraW5n IGFyZWEuDQo+Pj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4+IFdlIGp1c3QgbmVlZCBhIGNvbW1vbiBU RUUgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgc3lzdGVtIHJ1bg0KPj4+Pj4+Pj4+Pj4gaW4gbGVn YWN5LA0KPj4+Pj4+IFNFViwNCj4+Pj4+Pj4+Pj4gb3INCj4+Pj4+Pj4+Pj4+IFREWCwgcmlnaHQ/ DQo+Pj4+Pj4+Pj4+IFJpZ2h0LiBXZSBuZWVkIHNvbWV3aGVyZSB0byBzdG9yZSB0aGlzIGZsYWcs IGVpdGhlciBpbiBhDQo+Pj4+Pj4+Pj4+IFJlZ2lzdGVyIG9yIGluDQo+Pj4+Pj4+PiBNZW1vcnku DQo+Pj4+Pj4+Pj4+IElmIGl0IGlzIG1lbW9yeSwgdGhlbiBpbiBUZHggdGhlIG1lbW9yeSByZWdp b24gc2hvdWxkIGJlDQo+Pj4+Pj4+Pj4+IGluaXRpYWxpemVkIGJ5DQo+Pj4+IGhvc3QNCj4+Pj4+ Pj4+IFZNTS4NCj4+Pj4+Pj4+Pj4+IHRoYW5rIHlvdSENCj4+Pj4+Pj4+Pj4+IFlhbywgSmlld2Vu DQo+Pj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4+IOWcqCAyMDIx5bm0N+ac iDI45pel77yM5LiL5Y2IMTowN++8jFh1LCBNaW4gTQ0KPj4+IDxtaW4ubS54dUBpbnRlbC5jb20+ DQo+Pj4+Pj4g5YaZDQo+Pj4+Pj4+PiDpgZPvvJoNCj4+Pj4+Pj4+Pj4+PiDvu79PbiBKdWx5IDI3 LCAyMDIxIDg6NDYgUE0sIFlhbywgSmlld2VuIHdyb3RlOg0KPj4+Pj4+Pj4+Pj4+PiBISSBNaW4N Cj4+Pj4+Pj4+Pj4+Pj4gSSBhZ3JlZSB3aXRoIEJyaWplc2guDQo+Pj4+Pj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4+Pj4+PiBUaGUgYmFzaWMgcnVsZSBpczogU0VWIGZpbGUgc2hhbGwgbmV2ZXIgcmVmZXIg dG8gVERYIGRhdGEgc3RydWN0dXJlLg0KPj4+Pj4+Pj4+Pj4+PiBURFggZmlsZSBzaGFsbCBuZXZl ciByZWZlciB0byBTRVYgZGF0YSBzdHJ1Y3R1cmUuDQo+Pj4+Pj4+Pj4+Pj4+IFRoZXNlIGNvZGUg c2hvdWxkIGJlIGlzb2xhdGVkIGNsZWFybHkuDQo+Pj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4+ PiBEbyB3ZSBzdGlsbCBuZWVkIHRoYXQgbG9naWMgaWYgd2UgZm9sbG93IHRoZSBuZXcgcGF0dGVy bj8NCj4+Pj4+Pj4+Pj4+PiBJIGhhdmUgcmVwbGllZCB0byBCcmlqZXNoJ3MgbWFpbCBhYm91dCB0 aGUgY29uY2VybiBvZiB0aGUgbmV3IHBhdHRlcm4uDQo+Pj4+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4+ Pj4gSSBoYXZlIHNvbWUgY29uY2VybiBpbiB0aGUgY3VycmVudCBwYXR0ZXJuOg0KPj4+Pj4+Pj4+ Pj4+ID09PT09PT09PT09PT09PT09PT09DQo+Pj4+Pj4+Pj4+Pj4gICAgICBPbmVUaW1lQ2FsbCAg IFByZU1haW5GdW5jdGlvbkhvb2tTZXYNCj4+Pj4+Pj4+Pj4+PiAgICAgIE9uZVRpbWVDYWxsICAg UHJlTWFpbkZ1bmN0aW9uSG9va1RkeA0KPj4+Pj4+Pj4+Pj4+IE1haW5GdW5jdGlvbjoNCj4+Pj4+ Pj4+Pj4+PiAgICAgIFhYWFhYWA0KPj4+Pj4+Pj4+Pj4+ICAgICAgT25lVGltZUNhbGwgICBQb3N0 TWFpbkZ1bmN0aW9uSG9va1Nldg0KPj4+Pj4+Pj4+Pj4+ICAgICAgT25lVGltZUNhbGwgICBQb3N0 TWFpbkZ1bmN0aW9uSG9va1RkeA0KPj4+Pj4+Pj4+Pj4+ID09PT09PT09PT09PT09PT09PT09DQo+ Pj4+Pj4+Pj4+Pj4gVGhlIFRFRSBmdW5jdGlvbiBuZWVkIGltcGxlbWVudCBhIFRFRSBjaGVjayBm dW5jdGlvbiAoc3VjaCBhcw0KPj4+Pj4+Pj4+Pj4+IElzU2V2LA0KPj4+PiBvcg0KPj4+Pj4+Pj4+ PiBJc1RkeCkuDQo+Pj4+Pj4+Pj4+Pj4gVGR4IGNhbGwgQ1BVSUQoMHgyMSkgdG8gZGV0ZXJtaW5l IGlmIGl0IGlzIHRkeCBndWVzdCBpbiB0aGUNCj4+Pj4+Pj4+Pj4+PiB2ZXJ5IGJlZ2lubmluZyBv ZiBSZXNldFZlY3Rvci4gVGhlbiAnVERYRycgaXMgc2V0IGluDQo+Pj4gVERYX1dPUktfQVJFQS4N Cj4+Pj4gU0VWDQo+Pj4+Pj4+PiBkb2VzDQo+Pj4+Pj4+Pj4+PiB0aGUgc2ltaWxhciB3b3JrIHdo aWNoIGNhbGwgQ2hlY2tTZXZGZWF0dXJlcyB0byBzZXQNCj4+Pj4gU0VWX0VTX1dPUktfQVJFQQ0K Pj4+Pj4+IHRvDQo+Pj4+Pj4+PiAxLg0KPj4+Pj4+Pj4+Pj4+IEFmdGVyIHRoYXQgYm90aCBURFgg YW5kIFNFViByZWFkIHRoZSBhYm92ZSBXT1JLX0FSRUEgdG8gY2hlY2sNCj4+Pj4+Pj4+Pj4+PiBp ZiBpdA0KPj4+PiBpcw0KPj4+Pj4+Pj4gVERYDQo+Pj4+Pj4+Pj4+PiBvciBTRVYgb3IgbGVnYWN5 IGd1ZXN0Lg0KPj4+Pj4+Pj4+Pj4+IEluIFRkeCB0aGUgYWNjZXNzIHRvIFNFVl9FU19XT1JLX0FS RUEgd2lsbCB0cmlnZ2VyIGVycm9yDQo+Pj4+Pj4+Pj4+Pj4gYmVjYXVzZQ0KPj4+Pj4+Pj4+Pj4g U0VWX0VTX1dPUktfQVJFQSBpcyAqTk9UKiBpbml0aWFsaXplZCBieSBob3N0IFZNTS4NCj4+Pj4+ Pj4+Pj4+PiBJbiBTRVYtU05QIEkgYW0gYWZyYWlkIHRoZSBhY2Nlc3MgdG8gVERYX1dPUktfQVJF QSB3aWxsDQo+Pj4+Pj4+Pj4+Pj4gdHJpZ2dlcg0KPj4+PiBlcnJvcg0KPj4+Pj4+Pj4gdG9vLg0K Pj4+Pj4+Pj4+Pj4+IEkgYW0gd29uZGVyaW5nIGlmIFREWCBhbmQgU0VWIGNhbiB1c2UgdGhlIHNh bWUgbWVtb3J5IHJlZ2lvbg0KPj4+Pj4+Pj4+Pj4+IChmb3INCj4+Pj4+Pj4+Pj4gZXhhbXBsZSwN Cj4+Pj4+Pj4+Pj4+IFRFRV9XT1JLX0FSRUEpIGFzIHRoZSB3b3JrIGFyZWE/DQo+Pj4+Pj4+Pj4+ Pj4gU28gdGhhdCB0aGlzIHdvcmsgYXJlYSBpcyBndWFyYW50ZWVkIHRvIGJlIGluaXRpYWxpemVk IGluDQo+Pj4+Pj4+Pj4+Pj4gYm90aCBURFggYW5kIFNFVi4gU3RydWN0dXJlIG9mIHRoZSBURUVf V09SS19BUkVBIG1heSBsb29rIGxpa2UNCj4+PiB0aGlzOg0KPj4+Pj4+Pj4+Pj4+ICAgIHR5cGVk ZWYgc3RydWN0IHsNCj4+Pj4+Pj4+Pj4+PiAgICAgICAgVUlOVDggIEZsYWdbNF07ICAgICAgICAg J1REWEcnIG9yICdTRVZHJyBvciBhbGwtMA0KPj4+Pj4+Pj4+Pj4+ICAgICAgICBVSU5UOCAgT3Ro ZXJzW107DQo+Pj4+Pj4+Pj4+Pj4gICAgfSBURUVfV09SS19BUkVBOw0KPj4+Pj4+Pj4gQXJlIHdl IHJlc2VydmluZyBhIG5ldyBwYWdlIGZvciB0aGUgVERYX1dPUktfQVJFQSA/IEkgYW0NCj4+Pj4+ Pj4+IHdvbmRlcmluZw0KPj4+PiB3aHkNCj4+Pj4+Pj4+IGNhbid0IHdlIHVzZSB0aGUgU0VWX0VT X1dPUktfQVJFQSBpbnN0ZWFkIG9mIHdhc3Rpbmcgc3BhY2UgaW4gdGhlDQo+Pj4+Pj4gTUVNRkQu DQo+Pj4+Pj4+PiBUaGUgU0VWX0VTX1dPUktfQVJFQSBsYXlvdXQgbG9va3MgbGlrZSB0aGlzOg0K Pj4+Pj4+Pj4gDQo+Pj4+Pj4+PiB0eXBlZGVmIHN0cnVjdCBfU0VDX1NFVl9FU19XT1JLX0FSRUEg ew0KPj4+Pj4+Pj4gICAgIFVJTlQ4ICAgIFNldkVzRW5hYmxlZDsNCj4+Pj4+Pj4+ICAgICBVSU5U OCAgICBSZXNlcnZlZDFbN107DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+ICAgICBVSU5UNjQgICBSYW5k b21EYXRhOw0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiAgICAgVUlOVDY0ICAgRW5jcnlwdGlvbk1hc2s7 DQo+Pj4+Pj4+PiB9IFNFQ19TRVZfRVNfV09SS19BUkVBOw0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBU aGVyZSBpcyByZXNlcnZlZCBiaXQgYWZ0ZXIgdGhlIFNldkVzRW5hYmxlZCBhbmQgb25lIGJ5dGUg Y2FuIGJlDQo+Pj4+Pj4+PiB1c2VkIGZvciB0aGUgVGR4RW5hYmxlZDsNCj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4gdHlwZWRlZiBzdHJ1Y3QgX1NFQ19TRVZfRVNfV09SS19BUkVBIHsNCj4+Pj4+Pj4+ICAg ICBVSU5UOCAgICBTZXZFc0VuYWJsZWQ7DQo+Pj4+Pj4+PiAgICAgVUlOVDggICAgVGR4RW5hYmxl ZDsNCj4+Pj4+Pj4+ICAgICBVSU5UOCAgICBSZXNlcnZlZDJbNl07DQo+Pj4+Pj4+PiANCj4+Pj4+ Pj4+ICAgICBVSU5UNjQgICBSYW5kb21EYXRhOw0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiAgICAgVUlO VDY0ICAgRW5jcnlwdGlvbk1hc2s7DQo+Pj4+Pj4+PiB9IFNFQ19TRVZfRVNfV09SS19BUkVBOw0K Pj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBUaGUgU0VWX0VTX1dPUktfQVJFQSBjYW4gYmUgdHJlYXRlZCBh cyBhIFRFRV9XT1JLX0FSRUEgYW5kIHdlDQo+Pj4+IGNhbg0KPj4+Pj4+IGJlDQo+Pj4+Pj4+PiBw dWxsIG91dCBmcm9tIE1lbUVuY3J5cFNldkxpYi5oIHRvIENjV29ya0FyZWFMaWIuaCBhbmQgcmVu YW1lIHRoZQ0KPj4+Pj4+Pj4gc3RydWN0dXJlIChpZiBuZWVkZWQpLg0KPj4+Pj4+Pj4gDQo+Pj4+ Pj4+PiBCb3RoIHRoZSBTRVYtU05QIGFuZCBURUUgaG9zdC1WTU0gYWNjZXB0cyB0aGUgVEVFX1dP UktfQVJFQQ0KPj4+PiBiZWZvcmUNCj4+Pj4+Pj4+IGJvb3RpbmcgdGhlIGd1ZXN0IHRvIGVuc3Vy ZSB0aGF0IGl0cyBzYWZlIHRvIGFjY2VzcyB0aGUgbWVtb3J5DQo+Pj4+Pj4+PiB3aXRob3V0IGdv aW5nIHRocm91Z2ggdGhlIGFjY2VwdC92YWxpZGF0aW9uIHByb2Nlc3MuDQo+Pj4+Pj4+PiANCj4+ Pj4+Pj4+IEluIGNhc2Ugb2YgdGhlIFREWCwgdGhlIHJlc2V0IHZlY3RvciBjb2RlIHNldHMgdGhl IFRkeEVuYWJsZWQgb24NCj4+Pj4+Pj4+IHRoZSBlbnRyeS4gSW4gY2FzZSBvZiB0aGUgU0VWLCB0 aGUgd29ya2FyZWEgaXMgdmFsaWQgZnJvbSBTRUMgdG8NCj4+Pj4+Pj4+IFBFSSBwaGFzZSBvbmx5 IGFuZCBpdCBnZXRzIHJldXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuIFRoZSBQRUkNCj4+Pj4+Pj4+ IHBoYXNlIHNldCB0aGUgUGNkJ3MgKHN1Y2ggYXMgU2V2RXNFbmFibGVkIG9yIFNldkVuYWJsZWQg ZXRjKSBzbw0KPj4+Pj4+Pj4gdGhhdCBEeGUgb3Igb3RoZXIgRURLMiBjb3JlIGRvZXMgbm90IG5l ZWQgdG8ga25vdyBhbnl0aGluZyBhYm91dA0KPj4+Pj4+Pj4gdGhlIHdvcmthcmVhIGFuZCB0aGV5 IHNpbXBseSBjYW4gcmVhZCB0aGUgUENEcy4NCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gLUJyaWplc2gN Cj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IA0KPj4+Pj4+IA0KPj4+ Pj4+IA0KPj4+Pj4+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo=