From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web11.605.1627489579206212606 for ; Wed, 28 Jul 2021 09:26:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=ts1pfo4U; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10059"; a="234582979" X-IronPort-AV: E=Sophos;i="5.84,276,1620716400"; d="scan'208";a="234582979" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2021 09:26:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,276,1620716400"; d="scan'208";a="417813464" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga003.jf.intel.com with ESMTP; 28 Jul 2021 09:26:17 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Wed, 28 Jul 2021 09:26:16 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx610.amr.corp.intel.com (10.18.126.90) 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 09:26:16 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) 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 09:26:16 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.174) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Wed, 28 Jul 2021 09:26:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NK4wI8lF9zEDLHI6WyIz9ou7JY/AlKd6C/X9muYIhCIOq4ceoj9bdXhDFFh1bxZVKAVVhthP/VoQsAXd0zLm3EQE2YGA4cirivkPd5rltlzoyQ2jMYA7brecvNeXqFana9yipwgzLIY4BkPSmHnlUC2j/xcHvwiXT+gjVjqJQBZdeXEL4u3y0+w10b1/rwXrbyR678tqegi+O7uRqu6Aydgim1RmOHiHKUwOeTuHW08NyVjH50MUNDw0E2mslVc07ye213FCCBimYScOh6dePFvKGBn+VxOD6RmqnL4fUuKpstoCsXUc5hPOCMFEeE9RmtApOTKaJYusKhYolSyaFA== 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=kYsW9eGyFLTngZ7UvGFZL93xKde5/1hyFciz8WanOT4=; b=XD7RC2e+4CkNUiA9RU5Q0V5jFDP/ugoDoGzx8s5ZhMtP6IhsjjlMxDDhImN4oklENiNAlQr95WsJj2CsABTwO124L45gPU0UiKsHQ47fOxHvHNj+FgRSWlxiqFPoy6f60tkHefHFxlxCu0OoDLhLOqnVqe5E08T9yxzJFoyxlLuVFU8E0GlVOJwuIodr6o/0kYHdy5xpQPSyzuxlLC2kKHFz8bCyjecyval67L0Xy+5qiwffTZ+elO+ofiKWXLi+l+aI/VuybXhGMhfE942ckEyuulF+g/EYf2DMHAr8tvunqAukCNy3V71nV/pn4Mk9yxxCeEWg4UDDmv6iOu7Xug== 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=kYsW9eGyFLTngZ7UvGFZL93xKde5/1hyFciz8WanOT4=; b=ts1pfo4UG97CjVVOM9wCH3xOlYXr8kgZn6w1wgYWSwdxPJx782/PiiJlqHZnvjF6URHpJSr77VnTcFUT1fm/9qBbtZFLfjHFSrFguHsWLEvc89Hnl5cJf+gz8BiEBfTGLGCO7g1o/CO/mRgq0CIYO6Pl/+Cli3LyWQrr81T7MGk= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB5063.namprd11.prod.outlook.com (2603:10b6:510:3d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.18; Wed, 28 Jul 2021 16:26:06 +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; Wed, 28 Jul 2021 16:26:06 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "brijesh.singh@amd.com" , "Xu, Min M" CC: 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+xX9pxDyR89KtWps2AgAAPQgCAAAs5AIAAAmzQgAET7wCAABAEfIAADumAgAAIn1CAAHbDgIAACPhQgAAOxoCAAAHlwA== Date: Wed, 28 Jul 2021 16:26:06 +0000 Message-ID: References: <4E4F0C83-ED04-4CFC-BDE2-33825C106DB9@intel.com> <97ad36da-13cd-ccb1-48f3-17ee03934aa6@amd.com> In-Reply-To: <97ad36da-13cd-ccb1-48f3-17ee03934aa6@amd.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 545eb787-eeaa-40e0-dc02-08d951e466b6 x-ms-traffictypediagnostic: PH0PR11MB5063: 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: B7kWARhjWl2fmy1m4BWHOniJ2/W4PRgGCun/gMPxWohVF16JRdz+fEdsbEbBt1gr27T1aAFGV84cS/aL10XBpjzl0cZlGfSnw33mDPOqk6Zhd2pM6RnE+VR8CDCsNXZRMfbELR2Pf6xUGE6fD7N/GL8DskZaDwgdFj37mbKn10dLykCOfhbEVplstH3zFemssbJSRHvYc8iaIbd/TM7RQde1SD10GjKN3OvhMBqwQa/UCbrV4fBMkHv7z9MRgortzmobz6aHKwc0SBtMsfMRhTm50axmcdkG9fl2WkuXEd1ymnoTtLBfJtt0iMUQA42mJoxHM2k1nDEmCM6p8leFRpEUK5y8vhdXHeZIeHrS7YBHokJ+jJXzUaI2XOEjjqDjd+tSHWh6YM2WP4mAqmp+gKbAJFWOkETX58MgbRdnz/02fopvl4lSvLAML+ZIeLVS71jmlQuyJF8Mq9HkEAao6hZZrqm07zYw9z0jxFklxzkxfV7JT0DDBsmIBdTnLoeSssmFuWEGGAPlxAa+WfFzsCycZxvNzD4wK0oPxKXTuBke5P7xadU6FrZbg7InJjrZ8esRgM14zUOmZRAVAuUgTPvbc9+AQ0YxZokt/bK1KTvVYRm4ihK6a3axkYgEQ6FFe94ntRnzyPqJFvpsLyi3X0zZJUGHu+x0asb53908ooSUtUVPZRENZP+1Jeo0j51yX3n7LseTPFPe6HqBpo+9XnySq+bGlAUIoiW2vvXk+XkqwxrVK29PyMyHx6ku7Q+e2yKcopx9M/celyS1M3otvgek+fzVUL6Afg5W6Ka7WgXDE+8X0ukCz5Ums3vL3G6Ob3XqddwXbyPzIQimIdkUcg== 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)(39860400002)(376002)(346002)(396003)(136003)(83380400001)(66476007)(8936002)(966005)(186003)(54906003)(110136005)(76116006)(478600001)(66446008)(66556008)(2906002)(64756008)(8676002)(316002)(66946007)(9686003)(6636002)(52536014)(55016002)(122000001)(38100700002)(7696005)(33656002)(71200400001)(6506007)(38070700005)(86362001)(5660300002)(30864003)(26005)(53546011)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZEZESTUzYThjSk4zUkpWY1dWRmlwZ1BKK2hScEVmVExJbG03YjRQYmkzMElE?= =?utf-8?B?VjRpZDd0L0t0OWI5UGZXdkM1bENvck5sK1FIZ1hQUkZCckdPZXNHV2tncE1C?= =?utf-8?B?WFVZczVJYkdaaHp2Q0JNUVNlZkF4OG1CSGhHRFhCazU3cUZpQmJHUDRJeFNw?= =?utf-8?B?UEpuR0lTQkV6STdBc0hHVDVFRjMvVkZEdjYvalYvMXJESks1U0ttcGNPeHpR?= =?utf-8?B?TExSSXRpeDkzc3d6UjNjbVVQMWhvMnpQVS9VVURPcFE1VG4xNU9FdUJFYTIr?= =?utf-8?B?S0JkSHliT0pVaGVIajZDVlFBbGl5SW9DUjErZ245MVFuZ3dRTzN1bXkxdk54?= =?utf-8?B?cVZDTDVvTnRNckRoSlRES0Q4OHRMWnBhbG8yKzl4RkZPNEhOcVBSUTZ0T2gx?= =?utf-8?B?NXltdE5XL1kwMXl4N1p4S1ZkZm4wMWMrdHk5ZDJqN3NSanRSTVQ2U0JaZncy?= =?utf-8?B?RTJ0MXRlU0dxcjBOZWxCY2NZYlFxSGgxQ2JVRzh2UlhWVVJsU09DK0ZyWlJE?= =?utf-8?B?NnkwTy9QU3ZFRUt0UXdkZGhwVEh0QVcyaDdGZTFMR0ZrWXJHOVZuWk1Qamxv?= =?utf-8?B?ejJLU1ZuUHBMSlMzSGVBRDBDc0F4Umt2S1NZcmpCd1c4WGFYb2pEK1RHU1RP?= =?utf-8?B?TEJkRGJuWHJDNCsrM1VkN2JyNGsxam10MjJpT3JyMTlBVHdqd3ZpWXFRQ0VM?= =?utf-8?B?OXlPUzcwNk9obHM3MzVrVnd2REg3L0xkVXdVR09lUlBHdVdCWHVpbGNVdnJO?= =?utf-8?B?ZUtZTzNtald4cDRDQ2ROSEhYcWNZcys3R2pDQkJ3aFA1L2RZaHhHTDBKRHI0?= =?utf-8?B?bVJzb29wc3FKY21XOTFoRkpLVnhZcVkrSWQ3em4wcnkySVZmcnk0YjNRMVhY?= =?utf-8?B?dFI1aWFHaitxY1ZCSnNsUHM3Uy9aUE9RdzgzdVJmN3REMmUzb1FJbkowUTlI?= =?utf-8?B?MHVsKzBRbkhhWlBoTjJJeXNlMjNTa1NKc0x4Z2dtUDNwZVdVU3NGWDAzSXdl?= =?utf-8?B?SENyV3RYYXB4QlltNVplTmlmZEhIRTQxcVRwcnJPTHhxdmFmQ0ppZUVxeFpQ?= =?utf-8?B?L0o0MU1SMDhXTzJVSVNzSzJselJicENrRUpwYnJCNU1IUy9DbUp4cGh0R0tl?= =?utf-8?B?Z2xTbC9ZV0l0Q3VyMlAzUzhZWXJJaVBVQXg1RWZKUEFWQ3BLS2NQbk9QaVd6?= =?utf-8?B?SGJLbGppWGVzN0laRHlXZStnNDhjMk5MOTdTczN0b3pZdVZ2STIvSEdURFNQ?= =?utf-8?B?RXdZc2F0ZmpXZnBVTWJUTHhzcUg0Zk0reHpYR2ZKZm04SUowTVovb3BKSmhK?= =?utf-8?B?VlM0NFFWbFFpbWRkcUR2bWRRY0cyL1gvalhReHhEUUc3Z3lNOHkzMmhWM0da?= =?utf-8?B?d05mT0poVHIwcWZNVDREd2h1UjJlZEsxak9aanFsdVNhOEs2SW8vZWoveHJp?= =?utf-8?B?RThjRzVuTDlGUktZYTNMdkdLQzdFb2JsRll1WEFHUGh4SXByYkNPZk16aHQy?= =?utf-8?B?d0JUbnR0MVdSdVRuaThEd1pMNWEzOFcxdTh2SlVBUTlqS3RDdnNDbWRXVzhG?= =?utf-8?B?TzE3U0htdWxIN3lDMDdIK3R1NFYxTHEwWTZGeGl1anFYNlpDRk9PYkErV3pv?= =?utf-8?B?OXZvcDNTWm1kUDc1M2o5RnNOYzE2aGhvNjZrYVcvMEV3ZUJsZnZNOWpQcy9p?= =?utf-8?B?dDhBaG9FZjUxU3M2QXBjeFYvTHltQ2pINGxBL3BHVllqQzB4UGhUdE1CVE95?= =?utf-8?Q?RXHDxNIgVGU2l13NQN2O3+9C4T4pyCMzwOuPDkh?= 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: 545eb787-eeaa-40e0-dc02-08d951e466b6 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2021 16:26:06.5377 (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: gaOfB+040jxadnV4Y0I7MAbbi8FmyWj6UKgELWVhnYXEufTAneauwjacwvqHAG6I0zpmUxtAwzxIDnAw/1d68Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5063 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSB3b3VsZCBzYXkgaXQgaXMgTk9UIHRoZSBiZXN0IHNvZnR3YXJlIHByYWN0aWNlIHRvIGRlZmlu ZSAyIGVuYWJsZSBmaWVsZHMgdG8gaW5kaWNhdGUgb25lIHR5cGUuDQoNCldoYXQgaWYgc29tZSBz b2Z0d2FyZSBlcnJvciwgc2V0IGJvdGggVGR4RW5hYmxlIGFuZCBTZXZFbmFibGUgYXQgc2FtZSB0 aW1lPw0KSG93IGRvIHlvdSBkZXRlY3Qgc3VjaCBlcnJvcj8NCg0KSWYgc29tZSBjb2RlIG1heSBj aGVjayB0aGUgU0VWIG9ubHksIGFuZCBzb21lIGNvZGUgbWF5IGNoZWNrIFREWCBvbmx5LCB0aGVu IGJvdGggY29kZSBjYW4gcnVuLiBUaGF0IHdpbGwgYmUgYSBkaXNhc3Rlci4gVGhlIGNvZGUgaXMg aGFyZCB0byBtYWludGFpbiBhbmQgaGFyZCB0byBkZWJ1Zy4NCg0KQW5vdGhlciBjb25zaWRlcmF0 aW9uIGlzOiB3aGF0IGlmIHNvbWVvbmUgd2FudHMgdG8gc2V0IHRoZSB0aGlyZCB0eXBlPw0KRG8g d2Ugd2FudCB0byByZXNlcnZlIHRoZSAzcmQgYnl0ZT8gVG8gaW5kaWNhdGUgdGhlIHRoaXJkIHR5 cGU/IEl0IGlzIG5vdCBzY2FsYWJsZS4NCg0KVGhlIGJlc3Qgc29mdHdhcmUgcHJhY3RpY2UgaXQg dG8ganVzdCBkZWZpbmUgb25lIGZpZWxkIGFzIGVudW1lcmF0aW9uLiBTbyBhbnkgc29mdHdhcmUg Y2FuIG9ubHkgc2V0IFRkeCBvciBTZXYuIFRoZSByZXN1bHQgaXMgY29uc2lzdGVudCwgbm8gbWF0 dGVyIHlvdSBjaGVjayB0aGUgU0VWIGF0IGZpcnN0IG9yIFREWCBhdCBmaXJzdC4NCklmIHRoZXJl IGlzIDNyZCBieXRlcywgd2UganVzdCBuZWVkIGFzc2lnbiB0aGUgM3JkIHZhbHVlIHRvIGl0LCB3 aXRob3V0IGltcGFjdCBhbnkgb3RoZXIgZmllbGQuDQoNCg0KSSB0aGluayB3ZSBjYW4gYWRkICJt dXN0IHplcm8iIGluIHRoZSBjb21tZW50LiBCdXQgaXQgZG9lcyBub3QgbWVhbiB0aGVyZSB3aWxs IGJlIG5vIGVycm9yIGR1cmluZyBkZXZlbG9wbWVudC4NCg0KVU5JT04gaXMgbm90IGEgdHlwZSBz YWZlIHN0cnVjdHVyZS4gVXN1YWxseSwgdGhlIGNvbnN1bWVyIG9mIFVOSU9OIHNoYWxsIHJlZmVy IHRvIGEgY29tbW9uIGZpZWxkIHRvIGtub3cgd2hhdCB0aGUgdHlwZSBvZiB1bmlvbiBpcyAtIEkg dHJlYXQgdGhhdCBhcyBoZWFkZXIuDQoNClNpbmNlIHdlIGFyZSBkZWZpbmluZyBhIGNvbW1vbiBk YXRhIHN0cnVjdHVyZSwgSSB0aGluayB3ZSBjYW4gZG8gc29tZSBjbGVhbiB1cC4NCk9yIGlmIHlv dSBoYXZlIGNvbmNlcm4gdG8gY2hhbmdlIFNFQ19TRVZfRVNfV09SS19BUkVBLCB3ZSBjYW4gZGVm aW5lIGEgbmV3IENDIFdPUktfQVJFQSB3aXRob3V0IHRvdWNoaW5nIFNFVl9TRVZfRVNfV09SS0lO R19BUkVBLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vw cy5pbz4gT24gQmVoYWxmIE9mIEJyaWplc2gNCj4gU2luZ2ggdmlhIGdyb3Vwcy5pbw0KPiBTZW50 OiBXZWRuZXNkYXksIEp1bHkgMjgsIDIwMjEgMTE6NTkgUE0NCj4gVG86IFlhbywgSmlld2VuIDxq aWV3ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBYdSwgTWluIE0NCj4g PG1pbi5tLnh1QGludGVsLmNvbT4NCj4gQ2M6IGJyaWplc2guc2luZ2hAYW1kLmNvbTsgQXJkIEJp ZXNoZXV2ZWwgPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+Ow0KPiBKdXN0ZW4sIEpvcmRhbiBM IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgRXJkZW0gQWt0YXMNCj4gPGVyZGVtYWt0YXNA Z29vZ2xlLmNvbT47IEphbWVzIEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgVG9tDQo+ IExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsy LWRldmVsXSBbUEFUQ0ggVjMgMDYvMTBdIE92bWZQa2c6IEFkZCBBbWRTZXYuYXNtIGluDQo+IFJl c2V0VmVjdG9yDQo+IA0KPiBIaSBZYW8gSmlld2VuLA0KPiANCj4gSSBndWVzcyBJIGFtIHN0aWxs IHRyeWluZyB0byBmaWd1cmUgb3V0IHdoeSB3ZSBuZWVkIHRoZSBoZWFkZXIgaW4gdGhlDQo+IHdv cmsgYXJlYS4gQ2FuJ3Qgd2UgZG8gc29tZXRoaW5nIGxpa2UgdGhpczoNCj4gDQo+IHR5cGVkZWYg c3RydWN0IHsNCj4gCVVJTlQ4ICAgIFNldkVzRW5hYmxlZDsNCj4gDQo+IAkvLyBJZiBFcyBpcyBl bmFibGVkIHRoZW4gdGhpcyBmaWVsZCBtdXN0IGJlIHplcm9lZA0KPiAJVUlOVDggICAgTXVzdEJl WmVybzsNCj4gDQo+IAlVSU5UOCAgICBSZXNlcnZlZDFbNl07DQo+IA0KPiAJVUlOVDY0ICAgUmFu ZG9tRGF0YTsNCj4gDQo+IAlVSU5UNjQgICBFbmNyeXB0aW9uTWFzazsNCj4gfSBTRUNfU0VWX0VT X1dPUktfQVJFQTsNCj4gDQo+IHR5cGVkZWYgc3RydWN0IHsNCj4gCS8vIElmIFRkeCBpcyBlbmFi bGVkIHRoZW4gaXQgbXVzdCBiZSB6ZXJvZWQNCj4gCVVJTlQ4ICAgIE11c3RCZVplcm8NCj4gDQo+ IAlVSU5UOCAgICBUZHhFbmFibGVkOw0KPiANCj4gCVVJTlQ4ICAgIFJlc2VydmVkMls2XTsNCj4g CS4uLi4NCj4gDQo+IH0gVFhfV09SS19BUkVBOw0KPiANCj4gdHlwZWRlZiB1bmlvbiB7DQo+IAlT RUNfU0VWX0VTX1dPUktfQVJFQSBTZXZFc1dvcmtBcmVhOw0KPiAJVERYX1dPUktfQVJFQQkgICAg IFRkeFdvcmtBcmVhOw0KPiB9IENDX1dPUktfQVJFQTsNCj4gDQo+IEkgYW0gdHJ5aW5nIHRvIG1p bmltaXplIHRoZSBjaGFuZ2VzIHRvIHRoZSBleGlzdGluZyBjb2RlLiBUaGUgU0VWIGFuZA0KPiBU RFggcHJvYmUgbG9naWMgc2hvdWxkIGVuc3VyZSB0aGF0IGlmIHRoZSBmZWF0dXJlIGlzIGRldGVj dGVkLCB0aGVuIGl0DQo+IG11c3QgY2xlYXIgdGhlIE11c3RCZVplcm8nZWQgZmllbGQuDQo+IA0K PiBCYXNpY2FsbHksIHdlIGFscmVhZHkgaGF2ZSBhIDY0LWJpdCB2YWx1ZSByZXNlcnZlZCBpbiB0 aGUgU2V2RXNXb3JrIGFyZWENCj4gYW5kIGN1cnJlbnRseSBvbmx5IG9uZSBieXRlIGlzIHVzZWQg YW5kIHNlY29uZCBieXRlIGNhbiBiZSBkZXRlY3RlZCBmb3INCj4gdGhlIFREWC4gQmFzaWNhbGx5 IHRoZSB3aGljaCBlbmNyeXB0aW9uIHRlY2hub2xvZ3kgaXMgYWN0aXZlIHRoZQ0KPiBkZWZpbml0 aW9uIG9mIHRoZSB3b3JrIGFyZWEgd2lsbCBjaGFuZ2UuDQo+IA0KPiBBbSBJIG1pc3Npbmcgc29t ZXRoaW5nID8NCj4gDQo+IFRoYW5rcw0KPiANCj4gT24gNy8yOC8yMSAxMDoyMiBBTSwgWWFvLCBK aWV3ZW4gd3JvdGU6DQo+ID4gSGkgQnJpamVzaA0KPiA+IFRoYW5rcyENCj4gPg0KPiA+IEkgdGhp bmsgaWYgd2Ugd2FudCB0byByZXVzZSB0aGlzLCB3ZSBuZWVkIHJlbmFtZSB0aGUgZGF0YSBzdHJ1 Y3R1cmUuDQo+ID4NCj4gPiBGaXJzdCwgd2Ugc2hvdWxkIHVzZSBhIGdlbmVyaWMgbmFtZS4NCj4g Pg0KPiA+IFNlY29uZCwgSSBkb27igJl0IHRoaW5rIGl0IGlzIGdvb2QgaWRlYSB0byBkZWZpbmUg dHdvICplbmFibGUqIGZpZWxkcy4gU2luY2Ugb25seQ0KPiBvbmUgb2YgdGhlbSBzaG91bGQgYmUg ZW5hYmxlZCwgd2Ugc2hvdWxkIHVzZSAxIGZpZWxkIGFzIGVudW1lcmF0aW9uLg0KPiA+DQo+ID4g VGhpcmQsIHdlIHNob3VsZCBoaWRlIHRoZSBTRVYgc3BlY2lmaWMgYW5kIFREWCBzcGVjaWZpYyBk ZWZpbml0aW9uIGluIENDDQo+IGNvbW1vbiB3b3JrIGFyZWEuDQo+ID4NCj4gPiBJZiB3ZSBhZ3Jl ZSB0byB1c2UgYSBjb21tb24gd29yayBhcmVhLCBJIHJlY29tbWVuZCBiZWxvdzoNCj4gPg0KPiA+ IHR5cGVkZWYgc3RydWN0IHsNCj4gPiAgICAgVUlOVDggICAgSGVhZGVyVmVyc2lvbjsgLy8gMA0K PiA+ICAgICBVSU5UOCAgICBIZWFkTGVuZ3RoOyAvLyA0DQo+ID4gICAgIFVJTlQ4ICAgIFR5cGU7 IC8vIDAgLSBsZWdhY3ksIDEgLSBTRVYsIDIgLSBURFgNCj4gPiAgICAgVUlOVDggICAgU3ViVHlw ZTsgLy8gVHlwZSBzcGVjaWZpYyBzdWIgdHlwZSwgaWYgbmVlZGVkLg0KPiA+IH0gQ0NfQ09NTU9O X1dPUktfQVJFQV9IRUFERVI7DQo+ID4NCj4gPiB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gICAgIEND X0NPTU1PTl9XT1JLX0FSRUFfSEVBREVSIEhlYWRlcjsNCj4gPiAgICAgLy8gcmVzZXQgaXMgdmFs aWQgaWYgVHlwZSA9PSAxDQo+ID4gICAgIFVJTlQ4ICAgIFJlc2VydmVkMVs0XTsNCj4gPiAgICAg VUlOVDY0ICAgUmFuZG9tRGF0YTsNCj4gPiAgICAgVUlOVDY0ICAgRW5jcnlwdGlvbk1hc2s7DQo+ ID4gfSBTRUNfU0VWX0VTX1dPUktfQVJFQTsNCj4gPg0KPiA+IHR5cGVkZWYgc3RydWN0IHsNCj4g PiAgICAgQ0NfQ09NTU9OX1dPUktfQVJFQV9IRUFERVIgSGVhZGVyOw0KPiA+ICAgICAvLyByZXNl dCBpcyB2YWxpZCBpZiBUeXBlID09IDINCj4gPiAgICAgVUlOVDggICAgVGR4U3BlY2lmaWNbXTsg IC8vIFRCRA0KPiA+IH0gVERYX1dPUktfQVJFQTsNCj4gPg0KPiA+IFRoYW5rIHlvdQ0KPiA+IFlh byBKaWV3ZW4NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9t OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBP ZiBCcmlqZXNoDQo+ID4+IFNpbmdoIHZpYSBncm91cHMuaW8NCj4gPj4gU2VudDogV2VkbmVzZGF5 LCBKdWx5IDI4LCAyMDIxIDEwOjM0IFBNDQo+ID4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlh b0BpbnRlbC5jb20+OyBYdSwgTWluIE0gPG1pbi5tLnh1QGludGVsLmNvbT4NCj4gPj4gQ2M6IGJy aWplc2guc2luZ2hAYW1kLmNvbTsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEFyZCBCaWVzaGV1dmVs DQo+ID4+IDxhcmRiK3RpYW5vY29yZUBrZXJuZWwub3JnPjsgSnVzdGVuLCBKb3JkYW4gTCA8am9y ZGFuLmwuanVzdGVuQGludGVsLmNvbT47DQo+ID4+IEVyZGVtIEFrdGFzIDxlcmRlbWFrdGFzQGdv b2dsZS5jb20+OyBKYW1lcyBCb3R0b21sZXkNCj4gPj4gPGplamJAbGludXguaWJtLmNvbT47IFRv bSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBb ZWRrMi1kZXZlbF0gW1BBVENIIFYzIDA2LzEwXSBPdm1mUGtnOiBBZGQgQW1kU2V2LmFzbSBpbg0K PiA+PiBSZXNldFZlY3Rvcg0KPiA+Pg0KPiA+PiBIaSBKaWV3ZW4gYW5kIE1pbiwNCj4gPj4NCj4g Pj4gU2VlIG15IGNvbW1lbnRzIGJlbG93Lg0KPiA+Pg0KPiA+Pg0KPiA+PiBPbiA3LzI4LzIxIDI6 NTQgQU0sIFlhbywgSmlld2VuIHdyb3RlOg0KPiA+Pj4gWWVzLiBJIGFtIHRoaW5raW5nIHRoZSBz YW1lIHRoaW5nLg0KPiA+Pj4NCj4gPj4+IFtDQyBGbGFnIG1lbW9yeSBsb2NhdGlvbl0NCj4gPj4+ IDEpIEEgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVyLCBzdWNoIGFzIEVCUC4NCj4gPj4+DQo+ID4+ PiAyKSBBIGdsb2JhbCB2YXJpYWJsZSwgc3VjaCBhcw0KPiA+Pj4gLmRhdGENCj4gPj4+IFRlZUZs YWdzOiBERCAwDQo+ID4+Pg0KPiA+Pj4gMykgQSBmaXhlZCByZWdpb24gaW4gc3RhY2ssIHN1Y2gg YXMNCj4gPj4+IGR3b3JkW1NUQUNLX1RPUCAtIDRdDQo+ID4+Pg0KPiA+Pj4gNCkgQSBuZXcgQ0Mg Y29tbW9uIGZpeGVkIHJlZ2lvbiwgc3VjaCBhcw0KPiA+Pj4gZHdvcmRbQ0NfQ09NTU9OX0ZMQUdT XQ0KPiA+Pj4NCj4gPj4+IDUpIEEgZml4ZWQgcmVnaW9uIHBpZ2d5YmFjayBvbiBleGlzdGluZyBD QyB3b3JraW5nIGFyZWEsIHN1Y2ggYXMNCj4gPj4+IGR3b3JkW0NDX1dPUktJTkdfQVJFQV0NCj4g Pj4+DQo+ID4+PiBIaSBCcmlqZXNoL01pbg0KPiA+Pj4gQW55IHByZWZlcmVuY2U/DQo+ID4+Pg0K PiA+Pj4gW0NDIEluZGljYXRvciBGbGFnc10NCj4gPj4+IFByb3Bvc2FsOiBVSU5UOFs0XQ0KPiA+ Pj4NCj4gPj4+IEJ5dGUgWzBdIFZlcnNpb246IDANCj4gPj4+IGJ5dGUgWzFdIExlbmd0aDogNA0K PiA+Pj4gYnl0ZSBbMl0gVHlwZToNCj4gPj4+IAkwOiBsZWdhY3kNCj4gPj4+IAkxOiBTRVYNCj4g Pj4+IAkyOiBURFgNCj4gPj4+IGJ5dGUgWzNdIFN1YiBUeXBlOg0KPiA+Pj4gCUlmIFR5cGUgaXMg MCAobGVnYWN5KSwgdGhlbg0KPiA+Pj4gCQkwOiBsZWdhY3kNCj4gPj4+IAlJZiBUeXBlIGlzIDEg KFNFViksIHRoZW4NCj4gPj4+IAkJMDogU0VWDQo+ID4+PiAJCTE6IFNFVi1FUw0KPiA+Pj4gCQky OiBTRVYtU05QDQo+ID4+PiAJSWYgVHlwZSBpcyAyIChURFgpLCB0aGVuDQo+ID4+PiAJCTA6IFRE WCAxLjANCj4gPj4+DQo+ID4+PiBUaGFuayB5b3UNCj4gPj4+IFlhbyBKaWV3ZW4NCj4gPj4+DQo+ ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogWHUs IE1pbiBNIDxtaW4ubS54dUBpbnRlbC5jb20+DQo+ID4+Pj4gU2VudDogV2VkbmVzZGF5LCBKdWx5 IDI4LCAyMDIxIDI6NTggUE0NCj4gPj4+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPg0KPiA+Pj4+IENjOiBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+ OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQXJkDQo+ID4+Pj4gQmllc2hldXZlbCA8YXJkYit0aWFu b2NvcmVAa2VybmVsLm9yZz47IEp1c3RlbiwgSm9yZGFuIEwNCj4gPj4+PiA8am9yZGFuLmwuanVz dGVuQGludGVsLmNvbT47IEVyZGVtIEFrdGFzIDxlcmRlbWFrdGFzQGdvb2dsZS5jb20+Ow0KPiA+ PiBKYW1lcw0KPiA+Pj4+IEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgVG9tIExlbmRh Y2t5DQo+ID4+IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSRTog W1BBVENIIFYzIDA2LzEwXSBPdm1mUGtnOiBBZGQgQW1kU2V2LmFzbSBpbiBSZXNldFZlY3Rvcg0K PiA+Pj4+DQo+ID4+Pj4gT24gSnVseSAyOCwgMjAyMSAyOjA1IFBNLCBZYW8sIEppZXdlbiB3cm90 ZToNCj4gPj4+Pj4gSXQgZG9lcyBub3QgbmVjZXNzYXJ5IHRvIGJlIGEgd29ya2luZyBhcmVhLg0K PiA+Pj4+Pg0KPiA+Pj4+PiBXZSBqdXN0IG5lZWQgYSBjb21tb24gVEVFIGZsYWcgdG8gaW5kaWNh dGUgaWYgdGhlIHN5c3RlbSBydW4gaW4gbGVnYWN5LA0KPiBTRVYsDQo+ID4+Pj4gb3INCj4gPj4+ Pj4gVERYLCByaWdodD8NCj4gPj4+PiBSaWdodC4gV2UgbmVlZCBzb21ld2hlcmUgdG8gc3RvcmUg dGhpcyBmbGFnLCBlaXRoZXIgaW4gYSBSZWdpc3RlciBvciBpbg0KPiA+PiBNZW1vcnkuDQo+ID4+ Pj4gSWYgaXQgaXMgbWVtb3J5LCB0aGVuIGluIFRkeCB0aGUgbWVtb3J5IHJlZ2lvbiBzaG91bGQg YmUgaW5pdGlhbGl6ZWQgYnkgaG9zdA0KPiA+PiBWTU0uDQo+ID4+Pj4+DQo+ID4+Pj4+IHRoYW5r IHlvdSENCj4gPj4+Pj4gWWFvLCBKaWV3ZW4NCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4+IOWc qCAyMDIx5bm0N+aciDI45pel77yM5LiL5Y2IMTowN++8jFh1LCBNaW4gTSA8bWluLm0ueHVAaW50 ZWwuY29tPg0KPiDlhpkNCj4gPj4g6YGT77yaDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g77u/T24gSnVs eSAyNywgMjAyMSA4OjQ2IFBNLCBZYW8sIEppZXdlbiB3cm90ZToNCj4gPj4+Pj4+PiBISSBNaW4N Cj4gPj4+Pj4+PiBJIGFncmVlIHdpdGggQnJpamVzaC4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFRo ZSBiYXNpYyBydWxlIGlzOiBTRVYgZmlsZSBzaGFsbCBuZXZlciByZWZlciB0byBURFggZGF0YSBz dHJ1Y3R1cmUuDQo+ID4+Pj4+Pj4gVERYIGZpbGUgc2hhbGwgbmV2ZXIgcmVmZXIgdG8gU0VWIGRh dGEgc3RydWN0dXJlLg0KPiA+Pj4+Pj4+IFRoZXNlIGNvZGUgc2hvdWxkIGJlIGlzb2xhdGVkIGNs ZWFybHkuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBEbyB3ZSBzdGlsbCBuZWVkIHRoYXQgbG9naWMg aWYgd2UgZm9sbG93IHRoZSBuZXcgcGF0dGVybj8NCj4gPj4+Pj4+IEkgaGF2ZSByZXBsaWVkIHRv IEJyaWplc2gncyBtYWlsIGFib3V0IHRoZSBjb25jZXJuIG9mIHRoZSBuZXcgcGF0dGVybi4NCj4g Pj4+Pj4+DQo+ID4+Pj4+PiBJIGhhdmUgc29tZSBjb25jZXJuIGluIHRoZSBjdXJyZW50IHBhdHRl cm46DQo+ID4+Pj4+PiA9PT09PT09PT09PT09PT09PT09PQ0KPiA+Pj4+Pj4gICAgICBPbmVUaW1l Q2FsbCAgIFByZU1haW5GdW5jdGlvbkhvb2tTZXYNCj4gPj4+Pj4+ICAgICAgT25lVGltZUNhbGwg ICBQcmVNYWluRnVuY3Rpb25Ib29rVGR4DQo+ID4+Pj4+PiBNYWluRnVuY3Rpb246DQo+ID4+Pj4+ PiAgICAgIFhYWFhYWA0KPiA+Pj4+Pj4gICAgICBPbmVUaW1lQ2FsbCAgIFBvc3RNYWluRnVuY3Rp b25Ib29rU2V2DQo+ID4+Pj4+PiAgICAgIE9uZVRpbWVDYWxsICAgUG9zdE1haW5GdW5jdGlvbkhv b2tUZHgNCj4gPj4+Pj4+ID09PT09PT09PT09PT09PT09PT09DQo+ID4+Pj4+PiBUaGUgVEVFIGZ1 bmN0aW9uIG5lZWQgaW1wbGVtZW50IGEgVEVFIGNoZWNrIGZ1bmN0aW9uIChzdWNoIGFzIElzU2V2 LCBvcg0KPiA+Pj4+IElzVGR4KS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUZHggY2FsbCBDUFVJRCgw eDIxKSB0byBkZXRlcm1pbmUgaWYgaXQgaXMgdGR4IGd1ZXN0IGluIHRoZSB2ZXJ5DQo+ID4+Pj4+ PiBiZWdpbm5pbmcgb2YgUmVzZXRWZWN0b3IuIFRoZW4gJ1REWEcnIGlzIHNldCBpbiBURFhfV09S S19BUkVBLiBTRVYNCj4gPj4gZG9lcw0KPiA+Pj4+PiB0aGUgc2ltaWxhciB3b3JrIHdoaWNoIGNh bGwgQ2hlY2tTZXZGZWF0dXJlcyB0byBzZXQgU0VWX0VTX1dPUktfQVJFQQ0KPiB0bw0KPiA+PiAx Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEFmdGVyIHRoYXQgYm90aCBURFggYW5kIFNFViByZWFkIHRo ZSBhYm92ZSBXT1JLX0FSRUEgdG8gY2hlY2sgaWYgaXQgaXMNCj4gPj4gVERYDQo+ID4+Pj4+IG9y IFNFViBvciBsZWdhY3kgZ3Vlc3QuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSW4gVGR4IHRoZSBhY2Nl c3MgdG8gU0VWX0VTX1dPUktfQVJFQSB3aWxsIHRyaWdnZXIgZXJyb3IgYmVjYXVzZQ0KPiA+Pj4+ PiBTRVZfRVNfV09SS19BUkVBIGlzICpOT1QqIGluaXRpYWxpemVkIGJ5IGhvc3QgVk1NLg0KPiA+ Pj4+Pj4gSW4gU0VWLVNOUCBJIGFtIGFmcmFpZCB0aGUgYWNjZXNzIHRvIFREWF9XT1JLX0FSRUEg d2lsbCB0cmlnZ2VyIGVycm9yDQo+ID4+IHRvby4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJIGFtIHdv bmRlcmluZyBpZiBURFggYW5kIFNFViBjYW4gdXNlIHRoZSBzYW1lIG1lbW9yeSByZWdpb24gKGZv cg0KPiA+Pj4+IGV4YW1wbGUsDQo+ID4+Pj4+IFRFRV9XT1JLX0FSRUEpIGFzIHRoZSB3b3JrIGFy ZWE/DQo+ID4+Pj4+PiBTbyB0aGF0IHRoaXMgd29yayBhcmVhIGlzIGd1YXJhbnRlZWQgdG8gYmUg aW5pdGlhbGl6ZWQgaW4gYm90aCBURFggYW5kDQo+ID4+Pj4+PiBTRVYuIFN0cnVjdHVyZSBvZiB0 aGUgVEVFX1dPUktfQVJFQSBtYXkgbG9vayBsaWtlIHRoaXM6DQo+ID4+Pj4+PiAgICB0eXBlZGVm IHN0cnVjdCB7DQo+ID4+Pj4+PiAgICAgICAgVUlOVDggIEZsYWdbNF07ICAgICAgICAgJ1REWEcn IG9yICdTRVZHJyBvciBhbGwtMA0KPiA+Pj4+Pj4gICAgICAgIFVJTlQ4ICBPdGhlcnNbXTsNCj4g Pj4+Pj4+ICAgIH0gVEVFX1dPUktfQVJFQTsNCj4gPj4+Pj4+Pg0KPiA+Pg0KPiA+PiBBcmUgd2Ug cmVzZXJ2aW5nIGEgbmV3IHBhZ2UgZm9yIHRoZSBURFhfV09SS19BUkVBID8gSSBhbSB3b25kZXJp bmcgd2h5DQo+ID4+IGNhbid0IHdlIHVzZSB0aGUgU0VWX0VTX1dPUktfQVJFQSBpbnN0ZWFkIG9m IHdhc3Rpbmcgc3BhY2UgaW4gdGhlDQo+IE1FTUZELg0KPiA+Pg0KPiA+PiBUaGUgU0VWX0VTX1dP UktfQVJFQSBsYXlvdXQgbG9va3MgbGlrZSB0aGlzOg0KPiA+Pg0KPiA+PiB0eXBlZGVmIHN0cnVj dCBfU0VDX1NFVl9FU19XT1JLX0FSRUEgew0KPiA+PiAgICAgVUlOVDggICAgU2V2RXNFbmFibGVk Ow0KPiA+PiAgICAgVUlOVDggICAgUmVzZXJ2ZWQxWzddOw0KPiA+Pg0KPiA+PiAgICAgVUlOVDY0 ICAgUmFuZG9tRGF0YTsNCj4gPj4NCj4gPj4gICAgIFVJTlQ2NCAgIEVuY3J5cHRpb25NYXNrOw0K PiA+PiB9IFNFQ19TRVZfRVNfV09SS19BUkVBOw0KPiA+Pg0KPiA+PiBUaGVyZSBpcyByZXNlcnZl ZCBiaXQgYWZ0ZXIgdGhlIFNldkVzRW5hYmxlZCBhbmQgb25lIGJ5dGUgY2FuIGJlIHVzZWQNCj4g Pj4gZm9yIHRoZSBUZHhFbmFibGVkOw0KPiA+Pg0KPiA+PiB0eXBlZGVmIHN0cnVjdCBfU0VDX1NF Vl9FU19XT1JLX0FSRUEgew0KPiA+PiAgICAgVUlOVDggICAgU2V2RXNFbmFibGVkOw0KPiA+PiAg ICAgVUlOVDggICAgVGR4RW5hYmxlZDsNCj4gPj4gICAgIFVJTlQ4ICAgIFJlc2VydmVkMls2XTsN Cj4gPj4NCj4gPj4gICAgIFVJTlQ2NCAgIFJhbmRvbURhdGE7DQo+ID4+DQo+ID4+ICAgICBVSU5U NjQgICBFbmNyeXB0aW9uTWFzazsNCj4gPj4gfSBTRUNfU0VWX0VTX1dPUktfQVJFQTsNCj4gPj4N Cj4gPj4gVGhlIFNFVl9FU19XT1JLX0FSRUEgY2FuIGJlIHRyZWF0ZWQgYXMgYSBURUVfV09SS19B UkVBIGFuZCB3ZSBjYW4NCj4gYmUNCj4gPj4gcHVsbCBvdXQgZnJvbSBNZW1FbmNyeXBTZXZMaWIu aCB0byBDY1dvcmtBcmVhTGliLmggYW5kIHJlbmFtZSB0aGUNCj4gPj4gc3RydWN0dXJlIChpZiBu ZWVkZWQpLg0KPiA+Pg0KPiA+PiBCb3RoIHRoZSBTRVYtU05QIGFuZCBURUUgaG9zdC1WTU0gYWNj ZXB0cyB0aGUgVEVFX1dPUktfQVJFQSBiZWZvcmUNCj4gPj4gYm9vdGluZyB0aGUgZ3Vlc3QgdG8g ZW5zdXJlIHRoYXQgaXRzIHNhZmUgdG8gYWNjZXNzIHRoZSBtZW1vcnkgd2l0aG91dA0KPiA+PiBn b2luZyB0aHJvdWdoIHRoZSBhY2NlcHQvdmFsaWRhdGlvbiBwcm9jZXNzLg0KPiA+Pg0KPiA+PiBJ biBjYXNlIG9mIHRoZSBURFgsIHRoZSByZXNldCB2ZWN0b3IgY29kZSBzZXRzIHRoZSBUZHhFbmFi bGVkIG9uIHRoZQ0KPiA+PiBlbnRyeS4gSW4gY2FzZSBvZiB0aGUgU0VWLCB0aGUgd29ya2FyZWEg aXMgdmFsaWQgZnJvbSBTRUMgdG8gUEVJIHBoYXNlDQo+ID4+IG9ubHkgYW5kIGl0IGdldHMgcmV1 c2VkIGZvciBvdGhlciBwdXJwb3Nlcy4gVGhlIFBFSSBwaGFzZSBzZXQgdGhlIFBjZCdzDQo+ID4+ IChzdWNoIGFzIFNldkVzRW5hYmxlZCBvciBTZXZFbmFibGVkIGV0Yykgc28gdGhhdCBEeGUgb3Ig b3RoZXIgRURLMiBjb3JlDQo+ID4+IGRvZXMgbm90IG5lZWQgdG8ga25vdyBhbnl0aGluZyBhYm91 dCB0aGUgd29ya2FyZWEgYW5kIHRoZXkgc2ltcGx5IGNhbg0KPiA+PiByZWFkIHRoZSBQQ0RzLg0K PiA+Pg0KPiA+PiAtQnJpamVzaA0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+DQo+IA0KPiAN Cj4gDQo+IA0KDQo=