From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web08.4411.1627526700042136988 for ; Wed, 28 Jul 2021 19:45:00 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=xaWrEmH9; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: min.m.xu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10059"; a="298374627" X-IronPort-AV: E=Sophos;i="5.84,276,1620716400"; d="scan'208";a="298374627" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2021 19:44:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,276,1620716400"; d="scan'208";a="499467273" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga004.fm.intel.com with ESMTP; 28 Jul 2021 19:44:55 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX605.amr.corp.intel.com (10.22.229.18) 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 19:44:55 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX607.amr.corp.intel.com (10.22.229.20) 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 19:44:54 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx603.amr.corp.intel.com (10.22.229.16) 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 19:44:54 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.175) by edgegateway.intel.com (134.134.137.103) 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 19:44:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KPnE3QccMHxmBfL5P5o2kmkM2sCx6PFf2rSpRGXODpfWCz29xusW04FQfDY+nEJ4WsNl5jU+DbxWQUfONj4P+X/KoaFXwVACQDOMh1ZwcZaLl4Zh8BxILf1KHcLtIGok3ipTo6m/NZBQUTz73+D4QvjJ9MW4brgOST9FcGficzTsV58S20no5GKrhxJgs6GOFmcNal35/CVesDBNGP7am7HUG2YAVZPInBSp40H/9zHnmNqECAP7zRub8AFKUPd3xQgq47uEDa+81nNQ+Y20EXbertjOCWQ/d9nFN1LkRbDD3hhUMWN4FEsSA5slCjvD/10mnroRmu6GAhXl0PfeGg== 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=Ft8ROt8Q2v7zlzfURfqShta+pFMR63GFB6IFJI4oqPQ=; b=DEd0GIKiH1FRCOO/ZZKEz7/gpHsrR2a+Z+psjSk9pW+2oerhwCCR+dS8Z9IMwjMr5dyuY2TsCl/l12bWGO5fK6qK4MpUDyJ3aYrpCm+8ButYODl9D87a2reWbDHQM06AMCzNx4eaBE++qMIUE2AgjH6p2/bYNphF1iPcJPfAK0KVF6gURqIwd9gdLczFJVbqNohpNixCiWUsZ0QzCUOB5gOGDdmj3ieswfIW5h85qniJtQ22odgqJbKVlpjaSP5x4qSJptepGNHiH7rHxFBe1e2zz4EirMgf6yTvQbC2tHWeX8GI8fgQPUtREOl28DgXzHkVixu20r8n6PRreNvcdw== 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=Ft8ROt8Q2v7zlzfURfqShta+pFMR63GFB6IFJI4oqPQ=; b=xaWrEmH9W1/Y/PpR0GtO6fWL5OxmzrYSSwMsfmMB37tuKWYdifgRXv48ihCuSnmA5cd2kb3sFI4zoWDq0qlG5I9Rxc0W8sCdE/nqIixC8cGO58E42+ZnXRorT1dN4HozH7SFARvFYwSHgP5G72Da6aVmlfk6YmsFQawkiTqqzAk= Received: from PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by PH0PR11MB4901.namprd11.prod.outlook.com (2603:10b6:510:3a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.21; Thu, 29 Jul 2021 02:44:52 +0000 Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::b4be:3994:dd4d:7b9d]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::b4be:3994:dd4d:7b9d%7]) with mapi id 15.20.4331.035; Thu, 29 Jul 2021 02:44:52 +0000 From: "Min Xu" To: "Yao, Jiewen" , Brijesh Singh , "devel@edk2.groups.io" 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: AQHXgqpLISSxStmovUqWJbzyXRRtD6tWps2AgAAKhkCAAA/1AIAABCoAgADHyACAAFpsgIAABjyQgAAYcoCAAG+egIAADVoAgAAKZICAAAeDAIAAKpkAgABRJICAACnskA== Date: Thu, 29 Jul 2021 02:44:52 +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-Mentions: brijesh.singh@amd.com X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 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: 4caec33c-984b-4c12-44cd-08d9523ad75e x-ms-traffictypediagnostic: PH0PR11MB4901: 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: QFv9PHYd4ZJo/o5OL1b3mhSwE5DzosK14cb1c+7JzkdaHvagO85PY1gH29TZFx6Bw1gHy11tlxSjEVwW40A7bu8/8LJLSO3PES2lSdJLatCh180ype76mVjA2G02ddFGdi+khpLTKGUwTp3nugF2vQ2qs+lKv8nkGqaPB6MaXpIpHtw+Me6eazwPXl7UWfWUXV7PfWr5yEkjw+9HBP1gVUarICoXI4q130tUbk6U3yX35uBatM0N4joXzdqnREmHf4Hx/uPuil0vUNd8GQVNIA3NKXyqJEN7N2pf00++GZCWDajMepA4oHj0uOg54HyFNwPqKL3lP138rvtf6Cvs/5tH5p8AUesaMBiNPTUuXYZtQGktsciQRmZURVHlDuMC1UDQMnpqj9HMYXMdU0Jfkao6JWYurPZXHCg7vOtxjp0Wi5oytMUduiqK7sPF+9Er4tD0hpZ+WK17pIk3aEwuvIH55bSXX5u+k6N7V3skrzbSITeQwYng2gsD2XP8s+Nhi1jsyZ45BR0j441/FWqruqecf6E62FDAy+P399yJPqIXsk3cuPW6JuX2YrXFUW91K1TPtataTjM9b0urFhp0qFp09xgnkuQKug6M92aUg/Gq359+sDXIZaf3Uogi3FMkH7ICc8YZrF7kSpUtdayccjBnD/xQyWOyQK1KIlOiLo8eVpSD3quvF0FpS8QRx8tYnyInbk/OmMhAInI009yi24z42TYo5Bd7k7WhRnK8XpgE+p8lSDrsPRceX+qgUFA1Dkjk2Xnwk3AKwastgHb7TlN6ggXuI+hrfvQLUmBziPvN8+P4S5xtFkIfFE0sYe+a x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(136003)(346002)(376002)(366004)(396003)(83380400001)(8676002)(7696005)(54906003)(186003)(110136005)(26005)(5660300002)(52536014)(9686003)(55016002)(316002)(30864003)(71200400001)(478600001)(45080400002)(53546011)(6506007)(2906002)(86362001)(966005)(66946007)(66476007)(66556008)(4326008)(76116006)(64756008)(66446008)(38100700002)(38070700005)(8936002)(122000001)(33656002)(579004)(376954003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R3NZU2x3RXBua0d0QnBMK1Zxb0Ftd25QTHNOa0NFYTJsUUwxUkE0UXRpUGd4?= =?utf-8?B?ZXBnWVRQc3dlakNRU25hQyt5ZWNPM1lndXEvbGh3cTFRbnRZcEVYa09ncXhB?= =?utf-8?B?dDJJRnMxL0l6M3M5VlBleFp1N1BiS0lzVTJIc3NTYnV5Q0VESGt3eWNiaG5z?= =?utf-8?B?dE51WklnemFLRCs5REwxT01aemZuZlgxazFOUG1BM1Q2SXVmZ3FlZ29kc1Yy?= =?utf-8?B?UThvVDkzSnlnL2lqaWRHZ2lGQ1MzYTlsOEtxNXRWWnpKaTdTNWowSitmWk9q?= =?utf-8?B?OEQ5M0NBQTAwcnN3eTg2ajZoQmNaS0Vudm82NHovcUJWNUtCMHRwc25KTjdH?= =?utf-8?B?UmdDV2R4Vkp6N0N1bk1kc2J6WENUSTkwVEpWL0MzRGdKd3ZyR1VJMEt1YStm?= =?utf-8?B?WTZmZzRZMDJXWjNBOGk4dHM3SEpiNUkyMERPQm9NWm1DWVpNek5PcmlIRE1G?= =?utf-8?B?azBOL1pqMXpQZzluMzZFSGE2em9udm13Ui83TDR1TlAwR2FqZ3htWkF6bXR2?= =?utf-8?B?dDYrWHErK0p0VUFENmNhRzcxV0FURnFnOTJpUU9EOEgwME9XTDMwQ1pobEpu?= =?utf-8?B?LzAzQWowU1poT25TRWprWDhOQVU1R0ZiTys1MTlub2lWWWNaWnkrNDI4b2RK?= =?utf-8?B?UjVXN0trbzcwM1lFd0tLU21rbit5UHk0aWlTSS9HT3l2WTNIKytuTURkekw4?= =?utf-8?B?Qk1zSmY4cnVHbkMwN2R0L0wxWk1LY2U0Z2FKSFFrbVd2bmhKRndCWjBzWVRN?= =?utf-8?B?Q055b0VoNWk0Z00vbCtwRHRsUC9yVWtFWGNtdHZXWWZqQ3drS2UrZ0Vuekkx?= =?utf-8?B?bmFUTExkbTFaa1FETUpSTUtwdEdocDhkeFp1ZXJJdTNxQ2YrVHB3MjhyL0J2?= =?utf-8?B?d2QvbkFGanI5UG8yQjZ1MVJBWUg3dk8rVFE0RFI2ZmRkN09RU3YzNDdVV3g0?= =?utf-8?B?aGFlbGFyb3R6YmhvaWRoWTh6eFJIR0lYM05ETFF6YkdSTXFLS3U2dFFYaDA4?= =?utf-8?B?M3B3THhVMUhjOWJhbSt0aEoyWFJ2eFJDdHZuRXpDQXFHMTFrbThGMjFKakRZ?= =?utf-8?B?bXUwUk1xdXRUZTJ2OVJ5NWtNQy9WS3NxNVBPVUc5ZitkbmZXNTY5dXk5TGVk?= =?utf-8?B?YVB4UGxEcU4xdXE4N3F0Snl4OGYwMGppZk1OajhSd1o3RS9ROFZLTUZsZGRO?= =?utf-8?B?b0ZORlBhQWliRWIwOXd4aWhaU1A0K3dhemRKY05SdTZGRHljN3FaNEYvdzU1?= =?utf-8?B?SW8vNGhnTzc4b0g2bWVpclRzbFhDMjB3dFFhZFMrWTcxdWRQZTdjMGtKSnVP?= =?utf-8?B?TGMydUhyVUNKRVEwQ2d2bjJEMVNlSm1mMUpPcmE0c0ZpUkNNVE15aTVZaUt3?= =?utf-8?B?cHZTRW1Rb0lGRjRreWNMTkdHZThpYlc4aVRWcEEvUEs0WHF0bTViamVqRDBa?= =?utf-8?B?SGJDaUl0ZW9TSmpySEdiR2JLcFIydm8vY0JSQVF4NTV0Vy83VFdvTjdDcE11?= =?utf-8?B?WDBIUGF4S0g0UVdyclZjcUt4WHd5aEJrNGtEZDY0RmZ3cmdpNmZFWk5Pclpv?= =?utf-8?B?QzdMcjdBTkN6UGlYNGhidGtEQWFoRVE5UVYxSGl5UlYvMkFScUV5TC8xN3Rr?= =?utf-8?B?ekp5UHNRRU1FZkVabG84QWp3V0NuOWhITEI3Z3UyT0EyRVdsajJCSWcxYlpG?= =?utf-8?B?MHV1R3pXMmpvc3lyVnNFdWtHblNxbk9YZDlJU3dOUGllVlljcm1wS1FYNUZ2?= =?utf-8?Q?/lKus6nuptF4Jyhg1d52glC7jQz/nLgue+/ovRs?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4caec33c-984b-4c12-44cd-08d9523ad75e X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2021 02:44:52.2962 (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: ej00BKTTDT3Gy6mBhlwJASh+0ctx8ixyhj33iP8FDac4eNlNdOSIPsiAVpthCMH6uRWxXJNzxl9fOw1AQehBmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4901 Return-Path: min.m.xu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Smlld2VuICYgU2luZ2gNCg0KRnJvbSB0aGUgZGlzY3Vzc2lvbiBJIGFtIHRoaW5raW5nIHdlIGhh dmUgYmVsb3cgcnVsZXMgdG8gZm9sbG93IHRvIHRoZSBkZXNpZ24gdGhlIHN0cnVjdHVyZQ0Kb2Yg VEVFX1dPUktfQVJFQToNCjEuIERlc2lnbiBzaG91bGQgYmUgZmxleGlibGUgYnV0IG5vdCB0b28g Y29tcGxpY2F0ZWQNCjIuIFJldXNlIHRoZSBjdXJyZW50IFNFVl9FU19XT1JLX0FSRUEgKFBjZFNl dkVzV29ya0FyZWFCYXNlKSBhcyBURUVfV09SS19BUkVBDQozLiBURUVfV09SS19BUkVBIHNob3Vs ZCBiZSBpbml0aWFsaXplZCB0byBhbGwtMCBhdCB0aGUgYmVnaW5uaW5nIG9mIFJlc2V0VmVjb3Ry DQo0LiBSZWR1Y2UgdGhlIGNoYW5nZXMgdG8gZXhpdGluZyBjb2RlIGlmIHBvc3NpYmxlDQoNClNv IEkgdHJ5IHRvIG1ha2UgYmVsb3cgY29uY2x1c2lvbnMgYmVsb3c6IChQbGVhc2UgcmV2aWV3KQ0K MS4gU0VWX0VTX1dPUktfQVJFQSBpcyB1c2VkIGFzIHRoZSBURUVfV09SS19BUkVBIGJ5IGJvdGgg VERYIGFuZCBTRVYsIG1heWJlIGluDQp0aGUgZnV0dXJlIGl0IGNhbiBiZSB1c2VkIGJ5IG90aGVy IENDIHRlY2hub2xvZ2llcy4NCg0KMi4gSW4gTUVNRkQsIGFkZCBiZWxvdyBpbml0aWFsIHZhbHVl LiBTbyB0aGF0IFRFRV9XT1JLX0FSRUEgaXMgZ3VhcmFudGVlZCB0byBiZSBjbGVhcmVkDQppbiBs ZWdhY3kgZ3Vlc3QuIEluIFREWCB0aGlzIG1lbW9yeSByZWdpb24gaXMgaW5pdGlhbGl6ZWQgdG8g YmUgYWxsLTAgYnkgaG9zdCBWTU0uIEluIFNFViB0aGUgbWVtb3J5DQpyZWdpb24gaXMgY2xlYXJl ZCBhcyB3ZWxsLg0KICAweDAwQjAwMHwweDAwMTAwMA0KICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFNldkVzV29ya0FyZWFCYXNlfGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkU2V2 RXNXb3JrQXJlYVNpemUNCiAgREFUQSA9IHsNCiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLA0KICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsDQogICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwNCiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwDQogIH0NCg0KMy4gVGhlIHN0cnVjdHVyZSBvZiBURUVfV09SS19BUkVBDQogIFRo ZSBjdXJyZW50IFNFVl9FU19XT1JLX0FSRUEgaXMgZGVmaW5lZCBhcyBiZWxvdzoNCiAgdHlwZWRl ZiBzdHJ1Y3Qgew0KICAgIFVJTlQ4ICAgIFNldkVzRW5hYmxlZDsNCiAgICBVSU5UOCAgICBSZXNl cnZlZDFbN107DQogICAgW090aGVycy4uLl0NCn0gU0VDX1NFVl9FU19XT1JLX0FSRUE7DQoNClNv IEkgdGhpbmsgdGhlIFRFRV9XT1JLX0FSRUEgY2FuIGJlOg0KICBCeXRlWzBdIFR5cGU6DQogICAg CTA6IGxlZ2FjeSAxOiBTRVYgCTI6IFREWCANCiAgQnl0ZVsxXSBTdWJ0eXBlOg0KICAgICAgICAg ICAgICBJZiBUeXBlIGlzIDAsIHRoZW4gaXQgaXMgMA0KCUlmIFR5cGUgaXMgMSwgdGhlbiBpdCBp cyB1cCB0byBTRVYncyBkZWZpbml0aW9uDQoJSWYgVHlwZSBpcyAyLCB0aGVuIGl0IGlzIHVwIHRv IFREWCdzIGRlZmluaXRpb24NCiBCeXRlW10gb3RoZXIgYnl0ZXMgYXJlIGRlZmluZWQgYmFzZWQg b24gdGhlIFR5cGUvU3VidHlwZQ0KDQpJIGNoZWNrIHRoZSBjb2RlIGluIFNlY01haW4uYy4NCiBT ZXZFc0lzRW5hYmxlZCgpIG5lZWQgdXBkYXRlZCB0byBjaGVjayBTZXZFc1dvcmthcmVhLT5TZXZF c0VuYWJsZWQgPT0gMSwgbm90IG5vbi0wLg0KQEJyaWplc2ggU2luZ2ggSXMgdGhlcmUgYW55IG90 aGVyIGNvZGUgbmVlZCB1cGRhdGU/DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2Rh eSwgSnVseSAyOSwgMjAyMSA3OjQ5IEFNDQo+IFRvOiBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLnNp bmdoQGFtZC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgWHUsIE1pbiBNDQo+IDxtaW4ubS54 dUBpbnRlbC5jb20+DQo+IENjOiBBcmQgQmllc2hldXZlbCA8YXJkYit0aWFub2NvcmVAa2VybmVs Lm9yZz47IEp1c3RlbiwgSm9yZGFuIEwNCj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBF cmRlbSBBa3RhcyA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsgSmFtZXMNCj4gQm90dG9tbGV5IDxq ZWpiQGxpbnV4LmlibS5jb20+OyBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29t Pg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCBWMyAwNi8xMF0gT3ZtZlBrZzog QWRkIEFtZFNldi5hc20gaW4NCj4gUmVzZXRWZWN0b3INCj4gDQo+IENvbW1lbnQgYmVsb3c6DQo+ IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogQnJpamVzaCBTaW5n aCA8YnJpamVzaC5zaW5naEBhbWQuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDI5LCAy MDIxIDI6NTkgQU0NCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW87IFh1LCBNaW4NCj4gPiBNIDxtaW4ubS54dUBpbnRlbC5jb20+ DQo+ID4gQ2M6IGJyaWplc2guc2luZ2hAYW1kLmNvbTsgQXJkIEJpZXNoZXV2ZWwgPGFyZGIrdGlh bm9jb3JlQGtlcm5lbC5vcmc+Ow0KPiA+IEp1c3RlbiwgSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3Rl bkBpbnRlbC5jb20+OyBFcmRlbSBBa3Rhcw0KPiA+IDxlcmRlbWFrdGFzQGdvb2dsZS5jb20+OyBK YW1lcyBCb3R0b21sZXkgPGplamJAbGludXguaWJtLmNvbT47IFRvbQ0KPiA+IExlbmRhY2t5IDx0 aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQ QVRDSCBWMyAwNi8xMF0gT3ZtZlBrZzogQWRkIEFtZFNldi5hc20gaW4NCj4gPiBSZXNldFZlY3Rv cg0KPiA+DQo+ID4NCj4gPg0KPiA+IE9uIDcvMjgvMjEgMTE6MjYgQU0sIFlhbywgSmlld2VuIHdy b3RlOg0KPiA+ID4gSSB3b3VsZCBzYXkgaXQgaXMgTk9UIHRoZSBiZXN0IHNvZnR3YXJlIHByYWN0 aWNlIHRvIGRlZmluZSAyIGVuYWJsZQ0KPiA+ID4gZmllbGRzIHRvDQo+ID4gaW5kaWNhdGUgb25l IHR5cGUuDQo+ID4gPg0KPiA+ID4gV2hhdCBpZiBzb21lIHNvZnR3YXJlIGVycm9yLCBzZXQgYm90 aCBUZHhFbmFibGUgYW5kIFNldkVuYWJsZSBhdCBzYW1lDQo+IHRpbWU/DQo+ID4gPiBIb3cgZG8g eW91IGRldGVjdCBzdWNoIGVycm9yPw0KPiA+DQo+ID4gSG1tLCBhcmVuJ3Qgd2Ugc2F5aW5nIGl0 IGlzIGEgc29mdHdhcmUgYnVnLiBJbiB0aGF0IGNhc2UgYW5vdGhlciBidWcNCj4gPiBjYW4gYWxz byBtZXNzIHVwIHRoZSBzdHJ1Y3R1cmUgaGVhZGVyLg0KPiBbSmlld2VuXSBZZXMuIEkgdHJlYXQg aXQgYXMgYSBzb2Z0d2FyZSBpbXBsZW1lbnRhdGlvbiBidWcuDQo+IFRoZSBrZXkgdGhpbmcgaW4g c29mdHdhcmUgZGVzaWduIGlzIHRvIGF2b2lkIHRoZSBkZXZlbG9wZXIgbWFraW5nIG1pc3Rha2Us IGhlbHANCj4gZGVidWcgaXNzdWVzLCBoZWxwIG1haW50YWluIHRoZSBjb2RlIGVhc2lseS4NCj4g DQo+IA0KPiA+DQo+ID4gPg0KPiA+ID4gSWYgc29tZSBjb2RlIG1heSBjaGVjayB0aGUgU0VWIG9u bHksIGFuZCBzb21lIGNvZGUgbWF5IGNoZWNrIFREWA0KPiA+ID4gb25seSwNCj4gPiB0aGVuIGJv dGggY29kZSBjYW4gcnVuLiBUaGF0IHdpbGwgYmUgYSBkaXNhc3Rlci4gVGhlIGNvZGUgaXMgaGFy ZCB0bw0KPiA+IG1haW50YWluIGFuZCBoYXJkIHRvIGRlYnVnLg0KPiA+ID4NCj4gPiA+IEFub3Ro ZXIgY29uc2lkZXJhdGlvbiBpczogd2hhdCBpZiBzb21lb25lIHdhbnRzIHRvIHNldCB0aGUgdGhp cmQgdHlwZT8NCj4gPiA+IERvIHdlIHdhbnQgdG8gcmVzZXJ2ZSB0aGUgM3JkIGJ5dGU/IFRvIGlu ZGljYXRlIHRoZSB0aGlyZCB0eXBlPyBJdA0KPiA+ID4gaXMgbm90DQo+ID4gc2NhbGFibGUuDQo+ ID4gPg0KPiA+ID4gVGhlIGJlc3Qgc29mdHdhcmUgcHJhY3RpY2UgaXQgdG8ganVzdCBkZWZpbmUg b25lIGZpZWxkIGFzDQo+ID4gPiBlbnVtZXJhdGlvbi4gU28gYW55DQo+ID4gc29mdHdhcmUgY2Fu IG9ubHkgc2V0IFRkeCBvciBTZXYuIFRoZSByZXN1bHQgaXMgY29uc2lzdGVudCwgbm8gbWF0dGVy DQo+ID4geW91IGNoZWNrIHRoZSBTRVYgYXQgZmlyc3Qgb3IgVERYIGF0IGZpcnN0Lg0KPiA+ID4g SWYgdGhlcmUgaXMgM3JkIGJ5dGVzLCB3ZSBqdXN0IG5lZWQgYXNzaWduIHRoZSAzcmQgdmFsdWUg dG8gaXQsDQo+ID4gPiB3aXRob3V0IGltcGFjdCBhbnkNCj4gPiBvdGhlciBmaWVsZC4NCj4gPiA+ DQo+ID4NCj4gPiBJIHdhcyB0cnlpbmcgdG8gc2VlIGlmIHdlIGNhbiBtYWtlIGl0IHdvcmsgd2l0 aG91dCByZXF1aXJpbmcgYW55DQo+ID4gY2hhbmdlcyB0byBVZWZpQ3B1UGtnIGV0YyAod2hpY2gg dXNlcyB0aGUgRXNXb3JrQXJlYSkuDQo+IFtKaWV3ZW5dIEkgYWdyZWUgd2l0aCB5b3UuDQo+IEFu ZCBJIHRoaW5rIHRoZSBwcmlvcml0eSBzaG91bGQgYmU6DQo+IDEpIG1ha2UgYSBnb29kIGRlc2ln biBmb2xsb3dpbmcgdGhlIGJlc3QgcHJhY3RpY2UuDQo+IDIpIG1pbmltaXplIHRoZSBjaGFuZ2Uu DQo+IA0KPiBJIGRvbuKAmXQgdGhpbmsgdHdvICplbmFibGUqIGZpZWxkcyBjYW4gc2F0aXNmeSAj MS4NCj4gQW5kIEkgYW0gb3BlbiBvbiBob3cgdG8gZG8gIzIuIChTZWUgcmVzdCBjb21tZW50IGJl bG93KQ0KPiANCj4gDQo+IA0KPiA+DQo+ID4NCj4gPiA+DQo+ID4gPiBJIHRoaW5rIHdlIGNhbiBh ZGQgIm11c3QgemVybyIgaW4gdGhlIGNvbW1lbnQuIEJ1dCBpdCBkb2VzIG5vdCBtZWFuDQo+ID4g PiB0aGVyZSB3aWxsDQo+ID4gYmUgbm8gZXJyb3IgZHVyaW5nIGRldmVsb3BtZW50Lg0KPiA+ID4N Cj4gPiA+IFVOSU9OIGlzIG5vdCBhIHR5cGUgc2FmZSBzdHJ1Y3R1cmUuIFVzdWFsbHksIHRoZSBj b25zdW1lciBvZiBVTklPTg0KPiA+ID4gc2hhbGwNCj4gPiByZWZlciB0byBhIGNvbW1vbiBmaWVs ZCB0byBrbm93IHdoYXQgdGhlIHR5cGUgb2YgdW5pb24gaXMgLSBJIHRyZWF0DQo+ID4gdGhhdCBh cyBoZWFkZXIuDQo+ID4gPg0KPiA+ID4gU2luY2Ugd2UgYXJlIGRlZmluaW5nIGEgY29tbW9uIGRh dGEgc3RydWN0dXJlLCBJIHRoaW5rIHdlIGNhbiBkbw0KPiA+ID4gc29tZSBjbGVhbg0KPiA+IHVw Lg0KPiA+ID4gT3IgaWYgeW91IGhhdmUgY29uY2VybiB0byBjaGFuZ2UgU0VDX1NFVl9FU19XT1JL X0FSRUEsIHdlIGNhbiBkZWZpbmUNCj4gPiA+IGENCj4gPiBuZXcgQ0MgV09SS19BUkVBIHdpdGhv dXQgdG91Y2hpbmcgU0VWX1NFVl9FU19XT1JLSU5HX0FSRUEuDQo+ID4gPg0KPiA+DQo+ID4gSW4g eW91ciBiZWxvdyBzdHJ1Y3R1cmUsIEkgYXNzdW1lIHRoZSBTRVYgb3IgVERYIHByb2JlIHdpbGwg c2V0IHRoZQ0KPiA+IFR5cGUgb25seSB3aGVuIGl0IGRldGVjdHMgdGhhdCBmZWF0dXJlIGlzIGFj dGl2ZS4gQnV0IHdoaWNoIGxheWVyIG9mDQo+ID4gdGhlIHNvZnR3YXJlIGlzIGdvaW5nIHRvIHNl dCB0aGUgdHlwZSB0byB6ZXJvIHRvIGluZGljYXRlIGl0cyBhIGxlZ2FjeSBndWVzdCA/DQo+IFtK aWV3ZW5dIEdvb2QgcXVlc3Rpb24uDQo+IEkgZXhwZWN0IHNvbWUgaW5pdGlhbGl6YXRpb24gZnVu Y3Rpb24sIHN1Y2ggYXMgSW5pdENjV29ya0FyZWFTZXYsDQo+IEluaXRDY1dvcmtBcmVhVGR4Lg0K PiBUaGUgZGVmYXVsdCB2YWx1ZSBMZWdhY3kgc2hhbGwgYmUgb3ZlcnJpZGUgaW4gSW5pdENjV29y a0FyZWEgYWZ0ZXIgY2FwYWJpbGl0eQ0KPiBjaGVjay4NCj4gUHJlTWFpbkZ1bmN0aW9uSG9va1hY WCBpcyBjb21tb24gcGF0dGVyIGZvciBhbGwgZnVuY3Rpb24uIEl0IGp1c3QgY2hlY2tzIHRoZQ0K PiBDY1dvcmtBcmVhLg0KPiANCj4gDQo+IA0KPiA+DQo+ID4gdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ IAlVSU5UOCAgICBIZWFkZXJWZXJzaW9uOyAvLyAwDQo+ID4gCVVJTlQ4ICAgIEhlYWRMZW5ndGg7 IC8vIDQNCj4gPiAJVUlOVDggICAgVHlwZTsgLy8gMCAtIGxlZ2FjeSwgMSAtIFNFViwgMiAtIFRE WA0KPiA+IAlVSU5UOCAgICBTdWJUeXBlOyAvLyBUeXBlIHNwZWNpZmljIHN1YiB0eXBlLCBpZiBu ZWVkZWQuDQo+ID4gfSBDQ19DT01NT05fV09SS19BUkVBX0hFQURFUjsNCj4gPg0KPiA+IGkuZSBJ biB0aGlzIGNhbGwgc2VxdWVuY2U6DQo+ID4NCj4gPiBPbmVUaW1lQ2FsbCAgIFByZU1haW5GdW5j dGlvbkhvb2tTZXYNCj4gPiBPbmVUaW1lQ2FsbCAgIFByZU1haW5GdW5jdGlvbkhvb2tUZHgNCj4g Pg0KPiA+IC4uLi4NCj4gPg0KPiA+IFRoZSBQcmVNYWluRnVuY3Rpb25Ib29rU2V2IHdpbGwgZGV0 ZWN0IHdoZXRoZXIgU0VWIGlzIGFjdGl2ZSBvciBub3QuDQo+ID4gSWYgaXRzIGFjdGl2ZSB0aGVu IHNldCB0aGUgdHlwZSA9IE1FTV9FTkNSWVBUX1NFVjsgYW5kIHNpbWlsYXJseSB0aGUNCj4gPiBU ZHggaG9vayB3aWxsIHNldCB0aGUgdHlwZT1NRU1fRU5DUllQVF9URFguIFdoYXQgaWYgbmVpdGhl ciBURFggb3IgU0VWDQo+ID4gaXMgZW5hYmxlZC4gQXQgdGhpcyB0aW1lIHdlIHdpbGwgZGVwZW5k IG9uIGh5cGVydmlzb3IgdG8gZW5zdXJlIHRoYXQNCj4gPiB2YWx1ZSBhdCB0aGF0IG1lbW9yeSBp cyB6ZXJvLg0KPiBbSmlld2VuXSBJIHRoaW5rIHdlIGp1c3QgbGV0IEluaXRDY1dvcmtBcmVhU2V2 IGFuZCBJbml0Q2NXb3JrQXJlYVRkeCBvdmVycmlkZQ0KPiB0aGUgZGVmYXVsdCB2YWx1ZS4NCj4g SW5pdENjV29ya0FyZWF7U2V2LFRkeH06DQo+IAkvLyBEZXRlY3QgSGFyZHdhcmUgQ2FwYWJpbGl0 eQ0KPiAJLy8gSWYgZGlzY292ZXJlZCwgdGhlbiBzZXQgVHlwZSA9IHtTRVYsVERYfQ0KPiAJLy8g RWxzZSwgbGVhdmUgaXQgYXMgaXMNCj4gDQo+IA0KPiANCj4gDQo+ID4NCj4gPiBBZGRpdGlvbmFs bHksIGRvIHlvdSBzZWUgYSBuZWVkIGZvciB0aGUgSGVhZExlbmd0aCBmaWVsZCBpbiB0aGlzDQo+ ID4gc3RydWN0dXJlID8gSW4gYXNtIGl0IGlzIHByZWZlcnJlZCBpZiB3ZSBjYW4gYWNjZXNzIHRo ZSBhY3R1YWwNCj4gPiB3b3JrYXJlYSBwb2ludGVyIGF0IHRoZSBmaXhlZCBsb2NhdGlvbiBpbnN0 ZWFkIG9mIGZpcnN0IHJlYWRpbmcgdGhlDQo+ID4gSGVhZExlbmd0aCB0byBkZXRlcm1pbmUgaG93 IG11Y2ggaXQgbmVlZCB0byBza2lwLg0KPiBbSmlld2VuXSBZb3UgYXJlIHJpZ2h0Lg0KPiBMZW5n dGgvVmVyc2lvbiBpcyBOT1QgYWJzb2x1dGVseSBuZWNlc3NhcnksIGlmIHRoZSBoZWFkZXIgaXMg c2ltcGxlIGVub3VnaC4gSWYNCj4geW91IHRoaW5rIHdlIGRvbuKAmXQgbmVlZCB0aGVtLCBJIGFt IE9LIHRvIHJlbW92ZSB0aGVtLg0KPiBJIHRoaW5rIG9ubHkgIlR5cGUiIGlzIG1hbmRhdG9yeSwg d2hpY2ggdGVsbHMgdXMgdGhlIGNhdGVnb3J5Lg0KPiBJIHRoaW5rICJTdWJUeXBlIiBpcyB1c2Vm dWwsIGJlY2F1c2Ugd2UgbWlnaHQgd2FudCB0byBrbm93IGlmIGl0IGlzIFNFViwgb3IgU0VWLUVT LA0KPiBvciBTRVYtU05QLCBhbmQgaWYgaXQgaXMgVERYIDEuMCwgb3IgVERYLmZ1dHVyZS4gUGxl YXNlIGxldCBtZSBrbm93IHlvdXIgdGhvdWdodC4NCj4gDQo+IA0KPiBPbmUgcXVlc3Rpb24gb24g U0VDX1NFVl9FU19XT1JLX0FSRUEuIFNpbmNlIHlvdSBoYXZlIFNFVi9TRVYtRVMvU0VWLQ0KPiBT TlAsIGlzIHRoaXMgU0VWX0VTX1dPUktfQVJFQSBvbmx5IGZvciBTRVZfRVM/IE9yIGl0IGlzIGFs c28gdXNlZCBpbiBTRVYgKG5vDQo+IFNFVl9FUyksIGFuZCBTRVZfU05QID8NCj4gRm9yIGV4YW1w bGUsIHdoZW4gd2Ugc2VlIFNldkVzRW5hYmxlPTAsIGhvdyBkbyB3ZSBrbm93IGl0IGlzIFNFViAo bm8gU0VWX0VTKQ0KPiBvciBsZWdhY3kgKG5vIFNFViwgbm8gU0VWX0VTKT8gT3Igd2UgZG9u4oCZ dCBuZWVkIGNhcmUgaW4gU0VWIChubyBTRVZfRVMpIGNhc2UuDQo+IA0KPiANCj4gDQo+IA0KPiA+ DQo+ID4NCj4gPiA+IFRoYW5rIHlvdQ0KPiA+ID4gWWFvIEppZXdlbg0KPiA+ID4NCj4gPiA+DQo+ ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ID4+IEJy aWplc2ggU2luZ2ggdmlhIGdyb3Vwcy5pbw0KPiA+ID4+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAy OCwgMjAyMSAxMTo1OSBQTQ0KPiA+ID4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRl bC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgWHUsDQo+ID4gPj4gTWluIE0gPG1pbi5tLnh1 QGludGVsLmNvbT4NCj4gPiA+PiBDYzogYnJpamVzaC5zaW5naEBhbWQuY29tOyBBcmQgQmllc2hl dXZlbA0KPiA+ID4+IDxhcmRiK3RpYW5vY29yZUBrZXJuZWwub3JnPjsgSnVzdGVuLCBKb3JkYW4g TA0KPiA+ID4+IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgRXJkZW0gQWt0YXMgPGVyZGVt YWt0YXNAZ29vZ2xlLmNvbT47DQo+ID4gPj4gSmFtZXMgQm90dG9tbGV5IDxqZWpiQGxpbnV4Lmli bS5jb20+OyBUb20gTGVuZGFja3kNCj4gPiA+PiA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+ ID4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjMgMDYvMTBdIE92bWZQa2c6 IEFkZCBBbWRTZXYuYXNtDQo+ID4gPj4gaW4gUmVzZXRWZWN0b3INCj4gPiA+Pg0KPiA+ID4+IEhp IFlhbyBKaWV3ZW4sDQo+ID4gPj4NCj4gPiA+PiBJIGd1ZXNzIEkgYW0gc3RpbGwgdHJ5aW5nIHRv IGZpZ3VyZSBvdXQgd2h5IHdlIG5lZWQgdGhlIGhlYWRlciBpbg0KPiA+ID4+IHRoZSB3b3JrIGFy ZWEuIENhbid0IHdlIGRvIHNvbWV0aGluZyBsaWtlIHRoaXM6DQo+ID4gPj4NCj4gPiA+PiB0eXBl ZGVmIHN0cnVjdCB7DQo+ID4gPj4gCVVJTlQ4ICAgIFNldkVzRW5hYmxlZDsNCj4gPiA+Pg0KPiA+ ID4+IAkvLyBJZiBFcyBpcyBlbmFibGVkIHRoZW4gdGhpcyBmaWVsZCBtdXN0IGJlIHplcm9lZA0K PiA+ID4+IAlVSU5UOCAgICBNdXN0QmVaZXJvOw0KPiA+ID4+DQo+ID4gPj4gCVVJTlQ4ICAgIFJl c2VydmVkMVs2XTsNCj4gPiA+Pg0KPiA+ID4+IAlVSU5UNjQgICBSYW5kb21EYXRhOw0KPiA+ID4+ DQo+ID4gPj4gCVVJTlQ2NCAgIEVuY3J5cHRpb25NYXNrOw0KPiA+ID4+IH0gU0VDX1NFVl9FU19X T1JLX0FSRUE7DQo+ID4gPj4NCj4gPiA+PiB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPj4gCS8vIElm IFRkeCBpcyBlbmFibGVkIHRoZW4gaXQgbXVzdCBiZSB6ZXJvZWQNCj4gPiA+PiAJVUlOVDggICAg TXVzdEJlWmVybw0KPiA+ID4+DQo+ID4gPj4gCVVJTlQ4ICAgIFRkeEVuYWJsZWQ7DQo+ID4gPj4N Cj4gPiA+PiAJVUlOVDggICAgUmVzZXJ2ZWQyWzZdOw0KPiA+ID4+IAkuLi4uDQo+ID4gPj4NCj4g PiA+PiB9IFRYX1dPUktfQVJFQTsNCj4gPiA+Pg0KPiA+ID4+IHR5cGVkZWYgdW5pb24gew0KPiA+ ID4+IAlTRUNfU0VWX0VTX1dPUktfQVJFQSBTZXZFc1dvcmtBcmVhOw0KPiA+ID4+IAlURFhfV09S S19BUkVBCSAgICAgVGR4V29ya0FyZWE7DQo+ID4gPj4gfSBDQ19XT1JLX0FSRUE7DQo+ID4gPj4N Cj4gPiA+PiBJIGFtIHRyeWluZyB0byBtaW5pbWl6ZSB0aGUgY2hhbmdlcyB0byB0aGUgZXhpc3Rp bmcgY29kZS4gVGhlIFNFVg0KPiA+ID4+IGFuZCBURFggcHJvYmUgbG9naWMgc2hvdWxkIGVuc3Vy ZSB0aGF0IGlmIHRoZSBmZWF0dXJlIGlzIGRldGVjdGVkLA0KPiA+ID4+IHRoZW4gaXQgbXVzdCBj bGVhciB0aGUgTXVzdEJlWmVybydlZCBmaWVsZC4NCj4gPiA+Pg0KPiA+ID4+IEJhc2ljYWxseSwg d2UgYWxyZWFkeSBoYXZlIGEgNjQtYml0IHZhbHVlIHJlc2VydmVkIGluIHRoZSBTZXZFc1dvcmsN Cj4gPiA+PiBhcmVhIGFuZCBjdXJyZW50bHkgb25seSBvbmUgYnl0ZSBpcyB1c2VkIGFuZCBzZWNv bmQgYnl0ZSBjYW4gYmUNCj4gPiA+PiBkZXRlY3RlZCBmb3IgdGhlIFREWC4gQmFzaWNhbGx5IHRo ZSB3aGljaCBlbmNyeXB0aW9uIHRlY2hub2xvZ3kgaXMNCj4gPiA+PiBhY3RpdmUgdGhlIGRlZmlu aXRpb24gb2YgdGhlIHdvcmsgYXJlYSB3aWxsIGNoYW5nZS4NCj4gPiA+Pg0KPiA+ID4+IEFtIEkg bWlzc2luZyBzb21ldGhpbmcgPw0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzDQo+ID4gPj4NCj4gPiA+ PiBPbiA3LzI4LzIxIDEwOjIyIEFNLCBZYW8sIEppZXdlbiB3cm90ZToNCj4gPiA+Pj4gSGkgQnJp amVzaA0KPiA+ID4+PiBUaGFua3MhDQo+ID4gPj4+DQo+ID4gPj4+IEkgdGhpbmsgaWYgd2Ugd2Fu dCB0byByZXVzZSB0aGlzLCB3ZSBuZWVkIHJlbmFtZSB0aGUgZGF0YSBzdHJ1Y3R1cmUuDQo+ID4g Pj4+DQo+ID4gPj4+IEZpcnN0LCB3ZSBzaG91bGQgdXNlIGEgZ2VuZXJpYyBuYW1lLg0KPiA+ID4+ Pg0KPiA+ID4+PiBTZWNvbmQsIEkgZG9u4oCZdCB0aGluayBpdCBpcyBnb29kIGlkZWEgdG8gZGVm aW5lIHR3byAqZW5hYmxlKg0KPiA+ID4+PiBmaWVsZHMuIFNpbmNlIG9ubHkNCj4gPiA+PiBvbmUg b2YgdGhlbSBzaG91bGQgYmUgZW5hYmxlZCwgd2Ugc2hvdWxkIHVzZSAxIGZpZWxkIGFzIGVudW1l cmF0aW9uLg0KPiA+ID4+Pg0KPiA+ID4+PiBUaGlyZCwgd2Ugc2hvdWxkIGhpZGUgdGhlIFNFViBz cGVjaWZpYyBhbmQgVERYIHNwZWNpZmljIGRlZmluaXRpb24NCj4gPiA+Pj4gaW4gQ0MNCj4gPiA+ PiBjb21tb24gd29yayBhcmVhLg0KPiA+ID4+Pg0KPiA+ID4+PiBJZiB3ZSBhZ3JlZSB0byB1c2Ug YSBjb21tb24gd29yayBhcmVhLCBJIHJlY29tbWVuZCBiZWxvdzoNCj4gPiA+Pj4NCj4gPiA+Pj4g dHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4+PiAgICAgIFVJTlQ4ICAgIEhlYWRlclZlcnNpb247IC8v IDANCj4gPiA+Pj4gICAgICBVSU5UOCAgICBIZWFkTGVuZ3RoOyAvLyA0DQo+ID4gPj4+ICAgICAg VUlOVDggICAgVHlwZTsgLy8gMCAtIGxlZ2FjeSwgMSAtIFNFViwgMiAtIFREWA0KPiA+ID4+PiAg ICAgIFVJTlQ4ICAgIFN1YlR5cGU7IC8vIFR5cGUgc3BlY2lmaWMgc3ViIHR5cGUsIGlmIG5lZWRl ZC4NCj4gPiA+Pj4gfSBDQ19DT01NT05fV09SS19BUkVBX0hFQURFUjsNCj4gPiA+Pj4NCj4gPiA+ Pj4gdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4+PiAgICAgIENDX0NPTU1PTl9XT1JLX0FSRUFfSEVB REVSIEhlYWRlcjsNCj4gPiA+Pj4gICAgICAvLyByZXNldCBpcyB2YWxpZCBpZiBUeXBlID09IDEN Cj4gPiA+Pj4gICAgICBVSU5UOCAgICBSZXNlcnZlZDFbNF07DQo+ID4gPj4+ICAgICAgVUlOVDY0 ICAgUmFuZG9tRGF0YTsNCj4gPiA+Pj4gICAgICBVSU5UNjQgICBFbmNyeXB0aW9uTWFzazsNCj4g PiA+Pj4gfSBTRUNfU0VWX0VTX1dPUktfQVJFQTsNCj4gPiA+Pj4NCj4gPiA+Pj4gdHlwZWRlZiBz dHJ1Y3Qgew0KPiA+ID4+PiAgICAgIENDX0NPTU1PTl9XT1JLX0FSRUFfSEVBREVSIEhlYWRlcjsN Cj4gPiA+Pj4gICAgICAvLyByZXNldCBpcyB2YWxpZCBpZiBUeXBlID09IDINCj4gPiA+Pj4gICAg ICBVSU5UOCAgICBUZHhTcGVjaWZpY1tdOyAgLy8gVEJEDQo+ID4gPj4+IH0gVERYX1dPUktfQVJF QTsNCj4gPiA+Pj4NCj4gPiA+Pj4gVGhhbmsgeW91DQo+ID4gPj4+IFlhbyBKaWV3ZW4NCj4gPiA+ Pj4NCj4gPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+PiBGcm9tOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0K PiA+ID4+Pj4gQnJpamVzaCBTaW5naCB2aWEgZ3JvdXBzLmlvDQo+ID4gPj4+PiBTZW50OiBXZWRu ZXNkYXksIEp1bHkgMjgsIDIwMjEgMTA6MzQgUE0NCj4gPiA+Pj4+IFRvOiBZYW8sIEppZXdlbiA8 amlld2VuLnlhb0BpbnRlbC5jb20+OyBYdSwgTWluIE0NCj4gPiA8bWluLm0ueHVAaW50ZWwuY29t Pg0KPiA+ID4+Pj4gQ2M6IGJyaWplc2guc2luZ2hAYW1kLmNvbTsgZGV2ZWxAZWRrMi5ncm91cHMu aW87IEFyZCBCaWVzaGV1dmVsDQo+ID4gPj4+PiA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47 IEp1c3RlbiwgSm9yZGFuIEwNCj4gPiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47DQo+ID4g Pj4+PiBFcmRlbSBBa3RhcyA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsgSmFtZXMgQm90dG9tbGV5 DQo+ID4gPj4+PiA8amVqYkBsaW51eC5pYm0uY29tPjsgVG9tIExlbmRhY2t5IDx0aG9tYXMubGVu ZGFja3lAYW1kLmNvbT4NCj4gPiA+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENI IFYzIDA2LzEwXSBPdm1mUGtnOiBBZGQNCj4gPiA+Pj4+IEFtZFNldi5hc20gaW4gUmVzZXRWZWN0 b3INCj4gPiA+Pj4+DQo+ID4gPj4+PiBIaSBKaWV3ZW4gYW5kIE1pbiwNCj4gPiA+Pj4+DQo+ID4g Pj4+PiBTZWUgbXkgY29tbWVudHMgYmVsb3cuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+ IE9uIDcvMjgvMjEgMjo1NCBBTSwgWWFvLCBKaWV3ZW4gd3JvdGU6DQo+ID4gPj4+Pj4gWWVzLiBJ IGFtIHRoaW5raW5nIHRoZSBzYW1lIHRoaW5nLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gW0NDIEZs YWcgbWVtb3J5IGxvY2F0aW9uXQ0KPiA+ID4+Pj4+IDEpIEEgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lz dGVyLCBzdWNoIGFzIEVCUC4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IDIpIEEgZ2xvYmFsIHZhcmlh YmxlLCBzdWNoIGFzDQo+ID4gPj4+Pj4gLmRhdGENCj4gPiA+Pj4+PiBUZWVGbGFnczogREQgMA0K PiA+ID4+Pj4+DQo+ID4gPj4+Pj4gMykgQSBmaXhlZCByZWdpb24gaW4gc3RhY2ssIHN1Y2ggYXMg ZHdvcmRbU1RBQ0tfVE9QIC0gNF0NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IDQpIEEgbmV3IENDIGNv bW1vbiBmaXhlZCByZWdpb24sIHN1Y2ggYXMgZHdvcmRbQ0NfQ09NTU9OX0ZMQUdTXQ0KPiA+ID4+ Pj4+DQo+ID4gPj4+Pj4gNSkgQSBmaXhlZCByZWdpb24gcGlnZ3liYWNrIG9uIGV4aXN0aW5nIEND IHdvcmtpbmcgYXJlYSwgc3VjaCBhcw0KPiA+ID4+Pj4+IGR3b3JkW0NDX1dPUktJTkdfQVJFQV0N Cj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IEhpIEJyaWplc2gvTWluDQo+ID4gPj4+Pj4gQW55IHByZWZl cmVuY2U/DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBbQ0MgSW5kaWNhdG9yIEZsYWdzXQ0KPiA+ID4+ Pj4+IFByb3Bvc2FsOiBVSU5UOFs0XQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gQnl0ZSBbMF0gVmVy c2lvbjogMA0KPiA+ID4+Pj4+IGJ5dGUgWzFdIExlbmd0aDogNA0KPiA+ID4+Pj4+IGJ5dGUgWzJd IFR5cGU6DQo+ID4gPj4+Pj4gCTA6IGxlZ2FjeQ0KPiA+ID4+Pj4+IAkxOiBTRVYNCj4gPiA+Pj4+ PiAJMjogVERYDQo+ID4gPj4+Pj4gYnl0ZSBbM10gU3ViIFR5cGU6DQo+ID4gPj4+Pj4gCUlmIFR5 cGUgaXMgMCAobGVnYWN5KSwgdGhlbg0KPiA+ID4+Pj4+IAkJMDogbGVnYWN5DQo+ID4gPj4+Pj4g CUlmIFR5cGUgaXMgMSAoU0VWKSwgdGhlbg0KPiA+ID4+Pj4+IAkJMDogU0VWDQo+ID4gPj4+Pj4g CQkxOiBTRVYtRVMNCj4gPiA+Pj4+PiAJCTI6IFNFVi1TTlANCj4gPiA+Pj4+PiAJSWYgVHlwZSBp cyAyIChURFgpLCB0aGVuDQo+ID4gPj4+Pj4gCQkwOiBURFggMS4wDQo+ID4gPj4+Pj4NCj4gPiA+ Pj4+PiBUaGFuayB5b3UNCj4gPiA+Pj4+PiBZYW8gSmlld2VuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+ Pg0KPiA+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+Pj4+PiBGcm9t OiBYdSwgTWluIE0gPG1pbi5tLnh1QGludGVsLmNvbT4NCj4gPiA+Pj4+Pj4gU2VudDogV2VkbmVz ZGF5LCBKdWx5IDI4LCAyMDIxIDI6NTggUE0NCj4gPiA+Pj4+Pj4gVG86IFlhbywgSmlld2VuIDxq aWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+Pj4+Pj4gQ2M6IEJyaWplc2ggU2luZ2ggPGJyaWpl c2guc2luZ2hAYW1kLmNvbT47DQo+ID4gPj4+Pj4+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBBcmQg Qmllc2hldXZlbA0KPiA+ID4+Pj4+PiA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47IEp1c3Rl biwgSm9yZGFuIEwNCj4gPiA+Pj4+Pj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBFcmRl bSBBa3Rhcw0KPiA+ID4+Pj4+PiA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsNCj4gPiA+Pj4+IEph bWVzDQo+ID4gPj4+Pj4+IEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgVG9tIExlbmRh Y2t5DQo+ID4gPj4+PiA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+ID4gPj4+Pj4+IFN1Ympl Y3Q6IFJFOiBbUEFUQ0ggVjMgMDYvMTBdIE92bWZQa2c6IEFkZCBBbWRTZXYuYXNtIGluDQo+ID4g UmVzZXRWZWN0b3INCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gT24gSnVseSAyOCwgMjAyMSAyOjA1 IFBNLCBZYW8sIEppZXdlbiB3cm90ZToNCj4gPiA+Pj4+Pj4+IEl0IGRvZXMgbm90IG5lY2Vzc2Fy eSB0byBiZSBhIHdvcmtpbmcgYXJlYS4NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiBXZSBqdXN0 IG5lZWQgYSBjb21tb24gVEVFIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIHN5c3RlbSBydW4NCj4g PiA+Pj4+Pj4+IGluIGxlZ2FjeSwNCj4gPiA+PiBTRVYsDQo+ID4gPj4+Pj4+IG9yDQo+ID4gPj4+ Pj4+PiBURFgsIHJpZ2h0Pw0KPiA+ID4+Pj4+PiBSaWdodC4gV2UgbmVlZCBzb21ld2hlcmUgdG8g c3RvcmUgdGhpcyBmbGFnLCBlaXRoZXIgaW4gYQ0KPiA+ID4+Pj4+PiBSZWdpc3RlciBvciBpbg0K PiA+ID4+Pj4gTWVtb3J5Lg0KPiA+ID4+Pj4+PiBJZiBpdCBpcyBtZW1vcnksIHRoZW4gaW4gVGR4 IHRoZSBtZW1vcnkgcmVnaW9uIHNob3VsZCBiZQ0KPiA+ID4+Pj4+PiBpbml0aWFsaXplZCBieQ0K PiA+IGhvc3QNCj4gPiA+Pj4+IFZNTS4NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiB0aGFuayB5 b3UhDQo+ID4gPj4+Pj4+PiBZYW8sIEppZXdlbg0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+DQo+ ID4gPj4+Pj4+Pj4g5ZyoIDIwMjHlubQ35pyIMjjml6XvvIzkuIvljYgxOjA377yMWHUsIE1pbiBN DQo+IDxtaW4ubS54dUBpbnRlbC5jb20+DQo+ID4gPj4g5YaZDQo+ID4gPj4+PiDpgZPvvJoNCj4g PiA+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+IO+7v09uIEp1bHkgMjcsIDIwMjEgODo0NiBQTSwgWWFv LCBKaWV3ZW4gd3JvdGU6DQo+ID4gPj4+Pj4+Pj4+IEhJIE1pbg0KPiA+ID4+Pj4+Pj4+PiBJIGFn cmVlIHdpdGggQnJpamVzaC4NCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4gVGhlIGJhc2lj IHJ1bGUgaXM6IFNFViBmaWxlIHNoYWxsIG5ldmVyIHJlZmVyIHRvIFREWCBkYXRhIHN0cnVjdHVy ZS4NCj4gPiA+Pj4+Pj4+Pj4gVERYIGZpbGUgc2hhbGwgbmV2ZXIgcmVmZXIgdG8gU0VWIGRhdGEg c3RydWN0dXJlLg0KPiA+ID4+Pj4+Pj4+PiBUaGVzZSBjb2RlIHNob3VsZCBiZSBpc29sYXRlZCBj bGVhcmx5Lg0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+PiBEbyB3ZSBzdGlsbCBuZWVkIHRo YXQgbG9naWMgaWYgd2UgZm9sbG93IHRoZSBuZXcgcGF0dGVybj8NCj4gPiA+Pj4+Pj4+PiBJIGhh dmUgcmVwbGllZCB0byBCcmlqZXNoJ3MgbWFpbCBhYm91dCB0aGUgY29uY2VybiBvZiB0aGUgbmV3 IHBhdHRlcm4uDQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBJIGhhdmUgc29tZSBjb25jZXJu IGluIHRoZSBjdXJyZW50IHBhdHRlcm46DQo+ID4gPj4+Pj4+Pj4gPT09PT09PT09PT09PT09PT09 PT0NCj4gPiA+Pj4+Pj4+PiAgICAgICBPbmVUaW1lQ2FsbCAgIFByZU1haW5GdW5jdGlvbkhvb2tT ZXYNCj4gPiA+Pj4+Pj4+PiAgICAgICBPbmVUaW1lQ2FsbCAgIFByZU1haW5GdW5jdGlvbkhvb2tU ZHgNCj4gPiA+Pj4+Pj4+PiBNYWluRnVuY3Rpb246DQo+ID4gPj4+Pj4+Pj4gICAgICAgWFhYWFhY DQo+ID4gPj4+Pj4+Pj4gICAgICAgT25lVGltZUNhbGwgICBQb3N0TWFpbkZ1bmN0aW9uSG9va1Nl dg0KPiA+ID4+Pj4+Pj4+ICAgICAgIE9uZVRpbWVDYWxsICAgUG9zdE1haW5GdW5jdGlvbkhvb2tU ZHgNCj4gPiA+Pj4+Pj4+PiA9PT09PT09PT09PT09PT09PT09PQ0KPiA+ID4+Pj4+Pj4+IFRoZSBU RUUgZnVuY3Rpb24gbmVlZCBpbXBsZW1lbnQgYSBURUUgY2hlY2sgZnVuY3Rpb24gKHN1Y2ggYXMN Cj4gPiA+Pj4+Pj4+PiBJc1NldiwNCj4gPiBvcg0KPiA+ID4+Pj4+PiBJc1RkeCkuDQo+ID4gPj4+ Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBUZHggY2FsbCBDUFVJRCgweDIxKSB0byBkZXRlcm1pbmUgaWYg aXQgaXMgdGR4IGd1ZXN0IGluIHRoZQ0KPiA+ID4+Pj4+Pj4+IHZlcnkgYmVnaW5uaW5nIG9mIFJl c2V0VmVjdG9yLiBUaGVuICdURFhHJyBpcyBzZXQgaW4NCj4gVERYX1dPUktfQVJFQS4NCj4gPiBT RVYNCj4gPiA+Pj4+IGRvZXMNCj4gPiA+Pj4+Pj4+IHRoZSBzaW1pbGFyIHdvcmsgd2hpY2ggY2Fs bCBDaGVja1NldkZlYXR1cmVzIHRvIHNldA0KPiA+IFNFVl9FU19XT1JLX0FSRUENCj4gPiA+PiB0 bw0KPiA+ID4+Pj4gMS4NCj4gPiA+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+IEFmdGVyIHRoYXQgYm90 aCBURFggYW5kIFNFViByZWFkIHRoZSBhYm92ZSBXT1JLX0FSRUEgdG8gY2hlY2sNCj4gPiA+Pj4+ Pj4+PiBpZiBpdA0KPiA+IGlzDQo+ID4gPj4+PiBURFgNCj4gPiA+Pj4+Pj4+IG9yIFNFViBvciBs ZWdhY3kgZ3Vlc3QuDQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBJbiBUZHggdGhlIGFjY2Vz cyB0byBTRVZfRVNfV09SS19BUkVBIHdpbGwgdHJpZ2dlciBlcnJvcg0KPiA+ID4+Pj4+Pj4+IGJl Y2F1c2UNCj4gPiA+Pj4+Pj4+IFNFVl9FU19XT1JLX0FSRUEgaXMgKk5PVCogaW5pdGlhbGl6ZWQg YnkgaG9zdCBWTU0uDQo+ID4gPj4+Pj4+Pj4gSW4gU0VWLVNOUCBJIGFtIGFmcmFpZCB0aGUgYWNj ZXNzIHRvIFREWF9XT1JLX0FSRUEgd2lsbA0KPiA+ID4+Pj4+Pj4+IHRyaWdnZXINCj4gPiBlcnJv cg0KPiA+ID4+Pj4gdG9vLg0KPiA+ID4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4gSSBhbSB3b25kZXJp bmcgaWYgVERYIGFuZCBTRVYgY2FuIHVzZSB0aGUgc2FtZSBtZW1vcnkgcmVnaW9uDQo+ID4gPj4+ Pj4+Pj4gKGZvcg0KPiA+ID4+Pj4+PiBleGFtcGxlLA0KPiA+ID4+Pj4+Pj4gVEVFX1dPUktfQVJF QSkgYXMgdGhlIHdvcmsgYXJlYT8NCj4gPiA+Pj4+Pj4+PiBTbyB0aGF0IHRoaXMgd29yayBhcmVh IGlzIGd1YXJhbnRlZWQgdG8gYmUgaW5pdGlhbGl6ZWQgaW4NCj4gPiA+Pj4+Pj4+PiBib3RoIFRE WCBhbmQgU0VWLiBTdHJ1Y3R1cmUgb2YgdGhlIFRFRV9XT1JLX0FSRUEgbWF5IGxvb2sgbGlrZQ0K PiB0aGlzOg0KPiA+ID4+Pj4+Pj4+ICAgICB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPj4+Pj4+Pj4g ICAgICAgICBVSU5UOCAgRmxhZ1s0XTsgICAgICAgICAnVERYRycgb3IgJ1NFVkcnIG9yIGFsbC0w DQo+ID4gPj4+Pj4+Pj4gICAgICAgICBVSU5UOCAgT3RoZXJzW107DQo+ID4gPj4+Pj4+Pj4gICAg IH0gVEVFX1dPUktfQVJFQTsNCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBBcmUg d2UgcmVzZXJ2aW5nIGEgbmV3IHBhZ2UgZm9yIHRoZSBURFhfV09SS19BUkVBID8gSSBhbQ0KPiA+ ID4+Pj4gd29uZGVyaW5nDQo+ID4gd2h5DQo+ID4gPj4+PiBjYW4ndCB3ZSB1c2UgdGhlIFNFVl9F U19XT1JLX0FSRUEgaW5zdGVhZCBvZiB3YXN0aW5nIHNwYWNlIGluIHRoZQ0KPiA+ID4+IE1FTUZE Lg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFRoZSBTRVZfRVNfV09SS19BUkVBIGxheW91dCBsb29rcyBs aWtlIHRoaXM6DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gdHlwZWRlZiBzdHJ1Y3QgX1NFQ19TRVZfRVNf V09SS19BUkVBIHsNCj4gPiA+Pj4+ICAgICAgVUlOVDggICAgU2V2RXNFbmFibGVkOw0KPiA+ID4+ Pj4gICAgICBVSU5UOCAgICBSZXNlcnZlZDFbN107DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gICAgICBV SU5UNjQgICBSYW5kb21EYXRhOw0KPiA+ID4+Pj4NCj4gPiA+Pj4+ICAgICAgVUlOVDY0ICAgRW5j cnlwdGlvbk1hc2s7DQo+ID4gPj4+PiB9IFNFQ19TRVZfRVNfV09SS19BUkVBOw0KPiA+ID4+Pj4N Cj4gPiA+Pj4+IFRoZXJlIGlzIHJlc2VydmVkIGJpdCBhZnRlciB0aGUgU2V2RXNFbmFibGVkIGFu ZCBvbmUgYnl0ZSBjYW4gYmUNCj4gPiA+Pj4+IHVzZWQgZm9yIHRoZSBUZHhFbmFibGVkOw0KPiA+ ID4+Pj4NCj4gPiA+Pj4+IHR5cGVkZWYgc3RydWN0IF9TRUNfU0VWX0VTX1dPUktfQVJFQSB7DQo+ ID4gPj4+PiAgICAgIFVJTlQ4ICAgIFNldkVzRW5hYmxlZDsNCj4gPiA+Pj4+ICAgICAgVUlOVDgg ICAgVGR4RW5hYmxlZDsNCj4gPiA+Pj4+ICAgICAgVUlOVDggICAgUmVzZXJ2ZWQyWzZdOw0KPiA+ ID4+Pj4NCj4gPiA+Pj4+ICAgICAgVUlOVDY0ICAgUmFuZG9tRGF0YTsNCj4gPiA+Pj4+DQo+ID4g Pj4+PiAgICAgIFVJTlQ2NCAgIEVuY3J5cHRpb25NYXNrOw0KPiA+ID4+Pj4gfSBTRUNfU0VWX0VT X1dPUktfQVJFQTsNCj4gPiA+Pj4+DQo+ID4gPj4+PiBUaGUgU0VWX0VTX1dPUktfQVJFQSBjYW4g YmUgdHJlYXRlZCBhcyBhIFRFRV9XT1JLX0FSRUEgYW5kIHdlDQo+ID4gY2FuDQo+ID4gPj4gYmUN Cj4gPiA+Pj4+IHB1bGwgb3V0IGZyb20gTWVtRW5jcnlwU2V2TGliLmggdG8gQ2NXb3JrQXJlYUxp Yi5oIGFuZCByZW5hbWUgdGhlDQo+ID4gPj4+PiBzdHJ1Y3R1cmUgKGlmIG5lZWRlZCkuDQo+ID4g Pj4+Pg0KPiA+ID4+Pj4gQm90aCB0aGUgU0VWLVNOUCBhbmQgVEVFIGhvc3QtVk1NIGFjY2VwdHMg dGhlIFRFRV9XT1JLX0FSRUENCj4gPiBiZWZvcmUNCj4gPiA+Pj4+IGJvb3RpbmcgdGhlIGd1ZXN0 IHRvIGVuc3VyZSB0aGF0IGl0cyBzYWZlIHRvIGFjY2VzcyB0aGUgbWVtb3J5DQo+ID4gPj4+PiB3 aXRob3V0IGdvaW5nIHRocm91Z2ggdGhlIGFjY2VwdC92YWxpZGF0aW9uIHByb2Nlc3MuDQo+ID4g Pj4+Pg0KPiA+ID4+Pj4gSW4gY2FzZSBvZiB0aGUgVERYLCB0aGUgcmVzZXQgdmVjdG9yIGNvZGUg c2V0cyB0aGUgVGR4RW5hYmxlZCBvbg0KPiA+ID4+Pj4gdGhlIGVudHJ5LiBJbiBjYXNlIG9mIHRo ZSBTRVYsIHRoZSB3b3JrYXJlYSBpcyB2YWxpZCBmcm9tIFNFQyB0bw0KPiA+ID4+Pj4gUEVJIHBo YXNlIG9ubHkgYW5kIGl0IGdldHMgcmV1c2VkIGZvciBvdGhlciBwdXJwb3Nlcy4gVGhlIFBFSQ0K PiA+ID4+Pj4gcGhhc2Ugc2V0IHRoZSBQY2QncyAoc3VjaCBhcyBTZXZFc0VuYWJsZWQgb3IgU2V2 RW5hYmxlZCBldGMpIHNvDQo+ID4gPj4+PiB0aGF0IER4ZSBvciBvdGhlciBFREsyIGNvcmUgZG9l cyBub3QgbmVlZCB0byBrbm93IGFueXRoaW5nIGFib3V0DQo+ID4gPj4+PiB0aGUgd29ya2FyZWEg YW5kIHRoZXkgc2ltcGx5IGNhbiByZWFkIHRoZSBQQ0RzLg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IC1C cmlqZXNoDQo+ID4gPj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pg0K PiA+ID4+DQo+ID4gPj4NCj4gPiA+PiANCj4gPiA+Pg0KPiA+ID4NCg==