From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.24777.1675967317607177576 for ; Thu, 09 Feb 2023 10:28:37 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=YoYvmJAQ; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: chasel.chiu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675967317; x=1707503317; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/50XxwCj3X1RYvkcQ2YnxIzAdPMIeVETUcvjUyQQ8Jg=; b=YoYvmJAQAfg+yFDUzfc+IAtg/NIKTR3a318H84kiO7MJ3HzPPlIHtklC B+jaa7jBsZjTYH8CbHpRFnCEJsb29uDOrD0+cRch0fFV7WxBWAo9Rq+Tm O/Vg5MRNFk7MHN3Jfaxw1hE3MMF7U10UJPDNDirkB1+4KO7IaEURcXcmd ahrhGaW4SvfQmRglzPPfrj+QlfkH1PR8QPT+18DRPYY4a3MDs0Rq/MZru uyUCXcXpfIosJtxawfp4pm2lO4LuGU9vAbGaG4IrOtyWingHKGDbscPQd RGLljOdRQZ3nET7/bpS6xFN4G8yJeGs+ztxX811W4YvEI3NBUakdbYOx5 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331502130" X-IronPort-AV: E=Sophos;i="5.97,284,1669104000"; d="scan'208";a="331502130" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 10:28:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="736446805" X-IronPort-AV: E=Sophos;i="5.97,284,1669104000"; d="scan'208";a="736446805" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2023 10:28:36 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 9 Feb 2023 10:28:35 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 9 Feb 2023 10:28:35 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Thu, 9 Feb 2023 10:28:35 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) 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.2507.16; Thu, 9 Feb 2023 10:28:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZhL1iZ17UgHy/Wp5yANeYzByFdFMexVLZNi6F5a8cMfqPEQz72QRIyK6w1U8Z+Ywdk2DkyQ7NKTqLx4quP62XflZRin20h6KhOFsu0HRLamvjNiQpi3kHyhOqHZEjMzWoC9iF0oFinszJgv1Amk8+tKpZXvbfD28KrRj/21vM/FrKWswyrna13vLQG9U+Xrd1E+Yxt5YIuT7uFz8wOwDD7OD2U+rycj28S2OF9TFo1lKwtQUShMO0IoJJt6OhIaMOG5xOF7M44MYTJveZo8qMI6ARe9dPj0oYVZqtKuK/oNYDQb+/egvy4M63N3CLdT0aZXLfezYt2Ivcidptn6n+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/50XxwCj3X1RYvkcQ2YnxIzAdPMIeVETUcvjUyQQ8Jg=; b=Miwu5m9JUFApZB8HNgnwg2hV15Yd4Sf7yfqexa4XN4TnKxU0EOHipEe3Y3WdQf5oy3dW3a39rTBDla4Srw008Z1WzqhVmr9WHzQvI0kp7hfZePTQjTYh97XZ3eOtps8RUeD2MdePpwglOaPB1Jlcn7FuN9DkVGIuhk/nhM+hCouL50YXoCbAfkDFsXtUIZ9KXr1UItP2Ud0kIVwsx2RWWZXD0Ls99LP+D0tOMXJydScrwEjE3quLEEXzZ2syJS58EGTC7ClKLxdrCSNiqm6uRJQAVsyjHdUrOBnpC8t6a8U5JIsYE/iXOLv/jkj7C1o1u4h6XOk/1ZVOEIiAltjNPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by BL1PR11MB5367.namprd11.prod.outlook.com (2603:10b6:208:318::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Thu, 9 Feb 2023 18:28:32 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::ee18:f0d6:8983:5a24]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::ee18:f0d6:8983:5a24%3]) with mapi id 15.20.6086.019; Thu, 9 Feb 2023 18:28:32 +0000 From: "Chiu, Chasel" To: "devel@edk2.groups.io" , "Chiu, Chasel" , "mikuback@linux.microsoft.com" , "Oram, Isaac W" CC: "S, Ashraf Ali" , "Chaganty, Rangasai V" , "Ni, Ray" , "Kubacki, Michael" Subject: Re: [edk2-devel] [edk2-platforms: PATCH] IntelSiliconPkg/SpiFvbServiceSmm: Support Other NVS variable region. Thread-Topic: [edk2-devel] [edk2-platforms: PATCH] IntelSiliconPkg/SpiFvbServiceSmm: Support Other NVS variable region. Thread-Index: AQHZPEVdzi3bCjuhNEesrIVkRnJn7K7GwPGAgAAG1QCAAAvRgIAACecggAASWgA= Date: Thu, 9 Feb 2023 18:28:32 +0000 Message-ID: References: <20230209051402.1319-1-chasel.chiu@intel.com> <62c9fe71-b3fc-5272-eac3-f39165b0b5fd@linux.microsoft.com> <1da91c1e-18e8-f81f-bcba-44983d4cb8af@linux.microsoft.com> <174237FCE67B704B.15261@groups.io> In-Reply-To: <174237FCE67B704B.15261@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5483:EE_|BL1PR11MB5367:EE_ x-ms-office365-filtering-correlation-id: 3c874dfa-cf33-42f0-d5a0-08db0acb72ec x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ro4pfqVB+qBxMTGKoO6HUJwZKD73Zl5GaeBLR93ihot7iIu+8/q+2T/zIMBIqIsh9ZmWTB7XhAmWBoQoyt+7EIDeSHgjatLf49KJkWA3L1KQpw2SKLYsv0yTfMpmbcDdE4vdn1YEmhnImkfVlkwtX7lzLnncFz4w+G79USibSpmaXQB4TQPxOeO8QXQv3H5yY/lxWcNkCEBIbmV0kcNiJ7BHCZEvjmDRqL0B1AVDsSb5QTysO/H/vBR7zm7Zl2YxvLrqoQseFJmAfPPF7y6SJhH82iGXjdTJeQQo6m9GGVEeyFToCNSPB5rT2O+U9GG1sqcQg3qeLmTjP25eEPLLnWwrQ4+5ygiKRSI95vti6eWeVNw6zMkvy2WYYMp3o0SK67VaGfT5LdxJbAIkrdZzFFcBL/rEmZW3llBRgVBYgTXkncayKtwrUD2Qy6J0pKnJ6s+l7BtCYDQHs+iXchaJ5JzfzlVyV9S8X3B880LokqNLBPLNtWRruAHFi2j1amfV90UTJFxdhD1vr70RrSzmz5eYego7VpSylv53FcRo1gztzENmO+z1Y99LWng981yiY2ZyLWAGxkQJPo7GNs7unUE/rt3apQ8BL4olbixsKqr2gyE/QyOfjpijIke8xu3wsvVHGtrVvjzzhDaFFD6xfuGQ7OeNoHy3ojwF0kLarcsGqgxHadpWfFRQJMlnSZEVVvdKKPIsXMuJQhOVT6EY1xW76TmNmagxn7ejQHcAFZZkpYM9NH9tjXJVTBc+VgLk4cLijll4UAeTr3MTnAxyvg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(366004)(39860400002)(376002)(396003)(346002)(136003)(451199018)(2906002)(66556008)(4326008)(66446008)(66476007)(76116006)(64756008)(86362001)(55016003)(478600001)(82960400001)(71200400001)(186003)(54906003)(110136005)(7696005)(316002)(33656002)(122000001)(38100700002)(9686003)(26005)(6636002)(38070700005)(53546011)(966005)(66946007)(6506007)(8676002)(8936002)(83380400001)(66899018)(5660300002)(52536014)(41300700001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TWYralBsTkZ2S2xQT2hrQlY3cXc0WTNqVnE1K1RLYzF5TDRpSi9QVXZxRjBC?= =?utf-8?B?TDMraDBYTzV6aXQyVjlKS1piVFA0R21OUGYzcWd4NUphdms3UHpmdHNFMmxC?= =?utf-8?B?M0lmazVNTzJRM243cHhZUVlwM21MRXFuT1V6QTA4QUVkbTdMb1N0MmZJNlVB?= =?utf-8?B?SXhqUTRhNzNPcC8ydHZqRHBEV285anF1MFJEczRSNlJCbFZGQ3BoSmJwcDE4?= =?utf-8?B?aktKK1UwK0tYZHBzZ2V1TlQxVnZDU0NGRkRPNVo1ZnBoWkdDUEx6alg2cDA4?= =?utf-8?B?dEgyQjkwaU10cGo0amJtSC9PNHdDU2dMeDlvaUNieXpQTzZlRWc4d3lseGtU?= =?utf-8?B?LzlLRkRJbytaVFhYa1JBbVBiRE9TU28rc0NGU05KTDgzNnlBYUgzRllLT0xw?= =?utf-8?B?ejBaTTVIRzFrYTljaTE3V2VhS01YWmVVQUo5QVN3Y0Jvb2lFU2twbCs4ZzRE?= =?utf-8?B?YVQrd1dDazdvcldJVWxwa2lPc2x4alNHSjVreXZFNjJNMmIxVmRNRS9QVHdN?= =?utf-8?B?WFMybDZxN0NSKzJaTk5jdkthZlpicTNveTI4cXIwS2R1VDFqVGVkY2p1UGxy?= =?utf-8?B?SlM1UFFIS2dBOWZsSUhUbnlubXNpWkQxS1ZsRDdEcmo4Z0EzMnNLbDNLa2JE?= =?utf-8?B?MjNpL3dFSWRmcGhkdUo1QzdnRTA3eXlsaXhrSmtnSzM1TURVYzZBbndMc0w1?= =?utf-8?B?bFY0R0h0UW8zVjNOeUFSM0ovaUkrZSs2SThDajhPd1NiY1kyWEpsbmxtKzN4?= =?utf-8?B?WkFWVUFGRDlzbng2Q0liK1hrUDRlWmxQZTFMbFJnd1gxbldsZW5OMzhJU0VZ?= =?utf-8?B?dFgzdXBuMTNpa0kzbEI1VjBoWUk3b1VPRjNXNEUwNHlrZll4dWlHdmV1dTNv?= =?utf-8?B?eU5pZWVPSVU1dm5jOW1HUW5zR3NPNG53VEZhNHduRzczVEQxUjVPbzZRT1hh?= =?utf-8?B?UkV1aC9YT2VTSzE0UVcxODhWb0ZVYkNNTWx2clhyRmtsaFJ0NFdVeERaOFBa?= =?utf-8?B?TnBCc2FKcXBWaDhQZHpYT1lqL2pXc2dVbk1XZWcxTXJmM3RtelNtZUdIQ29q?= =?utf-8?B?TVRiOWZWK3U0UDBvNGxGUjcyR0pac0R6TmpUWkNMUm9lemJoL1B4NHFhczVt?= =?utf-8?B?SkNQeGttZDBvSzF6OUpodlpRYlQzTUVYL2E5alY1WWtCQmk0bHZKSlRCN0sx?= =?utf-8?B?NkQvOGdLWjdHcWZVdFduaVRoMWw5dE1XUlBpRUxGV2dHUlJpZVRjeU45U0VS?= =?utf-8?B?VGkxVjdoNXU5NTV2bXZsUUZ0L2paQTB3V1p5Nk9oS1Q4dDUrUmFTK25qTEt2?= =?utf-8?B?QmhoWGlRUUl3alpiRVVqUHdEaVpBVm1EbUhzbjdGOEVrTVpsL0ZuTXp4a0lh?= =?utf-8?B?SFJaMUxZa3ltNmxSWnRhU29DN3NYbW9vbHp5U2Rzd3ZTQzhkUkFKSlNYNytC?= =?utf-8?B?L0hjSVVNM1BXMFdvUHE3MVdLK1BqOGtoYjZwUG13REFKS3hndlVHOVAvMDZB?= =?utf-8?B?MWQxRzVjc2tCM2hzRWR4OGZjaTV5Mzg4ak5mWnRIWCt2OVovQXVMeTVWUjlW?= =?utf-8?B?ZUQ1aGFsVVFJOEE2WGRrSDN6TkRHMU9jWHNrSG5DYWVOcDBGZXhaNDhUWE16?= =?utf-8?B?MFRqWGs0NzVvM1NDU0NJTDRBL2loOHhBdFhnQ2ROSTJKOEJkWlJ6MEk3aEll?= =?utf-8?B?SUNiN2RuVmFibGFJMFZZTFBydm5CVVFFOXdKM1JIV2luajZZQlFTQ3ZpMXRL?= =?utf-8?B?bFVMTk9iRWtpU1NzQVdMaFNQVjJFN21VUHZndUxXT0x4SnRqU1ZvbVdkd0pr?= =?utf-8?B?VklyYjhndnVsL0c2YWx1QytFU20vMkFyZnl4TnFhUC91NDM4b2x3MXA0bEFF?= =?utf-8?B?RDYrWFZRNzhaTklaWDY5WFpDREdKUFRoTUZ0THVxRm9yVjhKSSsyMWdhZHlX?= =?utf-8?B?V1pRSXlzZUYyUFdFSWkwQXY1MS9QMFVPZHZabnFzSzdVd2pFL2tqZHk1ckFl?= =?utf-8?B?M3RFWThwUFJmbytoWStBWkV0RHZPVlhqU1dRK1FhSFlpUE5CNEFsZTk4N0lD?= =?utf-8?B?SXkzd29aZ2E3RmpOcjRTK0treWs0Um0razNXMTBmQStwU1BSdGh0ZzRxNjlu?= =?utf-8?Q?ttCuIGVTivRyOS+oOtbZEQBgA?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c874dfa-cf33-42f0-d5a0-08db0acb72ec X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 18:28:32.5351 (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: vhlQxR2cfut9gfL5vSVEzroPVFPCfrNi8LfEmnZdrfgJbyv9+T25i2XGbM7qja6OIMG8cxBKpOxpF0cNMzNnnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5367 Return-Path: chasel.chiu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpIZWxsbywNCg0KQW5vdGhlciBWNCBwYXRjaCBzZW50IGZvciBhcHBseWluZyBtb3JlIGNvbW1l bnQvY29tbWl0IG1lc3NhZ2UgZmVlZGJhY2tzIGZvcm0gSXNhYWMuDQpQbGVhc2UgaGVscCB0byBy ZXZpZXcgYWdhaW4uDQoNClRoYW5rcywNCkNoYXNlbA0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YgQ2hpdSwgQ2hhc2VsDQo+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFy eSA5LCAyMDIzIDk6MjYgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBtaWt1YmFja0Bs aW51eC5taWNyb3NvZnQuY29tOyBPcmFtLCBJc2FhYyBXDQo+IDxpc2FhYy53Lm9yYW1AaW50ZWwu Y29tPg0KPiBDYzogUywgQXNocmFmIEFsaSA8YXNocmFmLmFsaS5zQGludGVsLmNvbT47IENoYWdh bnR5LCBSYW5nYXNhaSBWDQo+IDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT47IE5pLCBS YXkgPHJheS5uaUBpbnRlbC5jb20+OyBLdWJhY2tpLA0KPiBNaWNoYWVsIDxtaWNoYWVsLmt1YmFj a2lAbWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbZWRrMi1wbGF0 Zm9ybXM6IFBBVENIXQ0KPiBJbnRlbFNpbGljb25Qa2cvU3BpRnZiU2VydmljZVNtbTogU3VwcG9y dCBPdGhlciBOVlMgdmFyaWFibGUgcmVnaW9uLg0KPiANCj4gDQo+IFRoYW5rcyBmb3IgZ29vZCBz dWdnZXN0aW9ucyBJc2FhYyBhbmQgTWljaGFlbCENCj4gSSBoYXZlIHNlbnQgVjMgcGF0Y2ggdG8g YXBwbHkgYWxsIHRoZSBzdWdnZXN0aW9ucywgcGxlYXNlIGhlbHAgdG8gcmV2aWV3IGFnYWluLg0K PiANCj4gVGhhbmtzLA0KPiBDaGFzZWwNCj4gDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdy b3Vwcy5pbz4gT24gQmVoYWxmIE9mIE1pY2hhZWwNCj4gPiBLdWJhY2tpDQo+ID4gU2VudDogVGh1 cnNkYXksIEZlYnJ1YXJ5IDksIDIwMjMgODo0NyBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsgT3JhbSwgSXNhYWMgVyA8aXNhYWMudy5vcmFtQGludGVsLmNvbT47DQo+ID4gQ2hpdSwg Q2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+ID4gQ2M6IFMsIEFzaHJhZiBBbGkgPGFz aHJhZi5hbGkuc0BpbnRlbC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkgVg0KPiA+IDxyYW5nYXNh aS52LmNoYWdhbnR5QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBLdWJh Y2tpLA0KPiA+IE1pY2hhZWwgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW2VkazItcGxhdGZvcm1zOiBQQVRDSF0NCj4gPiBJbnRl bFNpbGljb25Qa2cvU3BpRnZiU2VydmljZVNtbTogU3VwcG9ydCBPdGhlciBOVlMgdmFyaWFibGUg cmVnaW9uLg0KPiA+DQo+ID4gVGhhbmtzLCB0aGF0J3MgdXNlZnVsIGJhY2tncm91bmQuIEBjaGFz ZWwsIHlvdSBzaG91bGQgcHJvYmFibHkgcHV0DQo+ID4gdGhpcyBpbmZvIGluIHRoZSBjb21taXQg bWVzc2FnZSBzbyBpdCBpcyBjYXB0dXJlZCBpbiBzb3VyY2UgaGlzdG9yeS4NCj4gPg0KPiA+IEdp dmVuIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHplcm8sIGl0IHNlZW1zIHJlYXNvbmFibGUuIEkgd2Fz IGFsc28NCj4gPiBpbml0aWFsbHkgY29uZnVzZWQgYnkgdGhlIG5hbWUgb2YgdGhlIFBDRC4NCj4g Pg0KPiA+IEFub3RoZXIgaWRlYSB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZSAiUGNkRmxhc2hOdlN0 b3JhZ2VBZGRpdGlvbmFsU2l6ZSIuDQo+ID4NCj4gPiBQbGVhc2UgZG8gYXQgbGVhc3QgdXBkYXRl IHRoZSBjb21taXQgbWVzc2FnZSB0byBpbmNsdWRlIGFkZGl0aW9uYWwgY29udGV4dC4NCj4gPg0K PiA+IFJldmlld2VkLWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3Nv ZnQuY29tPg0KPiA+DQo+ID4gT24gMi85LzIwMjMgMTE6MDQgQU0sIElzYWFjIE9yYW0gd3JvdGU6 DQo+ID4gPiBJdCBpcyBhIGxlZ2FjeSB0aGF0IGV4aXN0cyBpbiBjdXJyZW50IGFuZCBwYXN0IGlt cGxlbWVudGF0aW9ucy4NCj4gPiA+IFRoZXJlIGlzIGENCj4gPiBjb21wbGV4IGFyYml0cmFyeSBy ZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgcnVudGltZSB1cGRhdGVhYmxlIHJlZ2lvbnMNCj4gPiBp biBleGlzdGluZyBwbGF0Zm9ybSBkZXNpZ25zLg0KPiA+ID4gVGhlcmUgaXMgc29tZXRoaW5nIGxp a2U6DQo+ID4gPiAtIFZhcmlhYmxlIHN0b3JlIChsYXJnZSkNCj4gPiA+IC0gRXJyb3IgbG9nIChz bWFsbCkNCj4gPiA+IC0gRmF1bHQgdG9sZXJhbnQgd29ya2luZyBhcmVhICg+PSBzaXplIG9mIHBy aW9yIDIgcmVnaW9ucykNCj4gPiA+IC0gRmF1bHQgdG9sZXJhbnQgbWV0YWRhdGEgKHNtYWxsKS4N Cj4gPiA+IEFuZCB0aGVyZSBhcmUgYXNzdW1wdGlvbnMgYWJvdXQgb3JkZXJpbmcgYW5kIHBhY2tp bmcgYnVpbHQgaW50bw0KPiA+ID4gYm9hcmQgZmxhc2gNCj4gPiBsYXlvdXRzLg0KPiA+ID4NCj4g PiA+IEkgZG9uJ3QgdGhpbmsgdGhhdCB3ZSBzaG91bGQgaW50cm9kdWNlICJvdGhlciB2YXJpYWJs ZSIgYXMgYQ0KPiA+ID4gY29uY2VwdCwgYmVjYXVzZQ0KPiA+IHZhcmlhYmxlIHNvbHV0aW9ucyBk b24ndCBzdXBwb3J0IHR3byByZWdpb25zLCBzbyBpdCBpc24ndCBhIFVFRkkgdmFyaWFibGUgcmVn aW9uLg0KPiA+IE90aGVyVXBkYXRhYmxlIG1pZ2h0IGJlIG9rLCBidXQgc3RpbGwgc2VlbXMgY29u ZnVzaW5nIHRvIG1lLg0KPiA+ID4gSSB0aGluayB0aGF0IHdlIHNob3VsZCBhZGQgdGhlIHN1cHBv cnQgZm9yIHRoZSAqRXJyb3JMb2cqIHJlZ2lvbiBzbw0KPiA+ID4gdGhhdCB0aGUNCj4gPiBvcGVu IEZ2YlNlcnZpY2VzIGNhbiBiZSB1c2VkIGJ5IGN1cnJlbnQgaW1wbGVtZW50YXRpb25zLiAgVGhl biB3ZQ0KPiA+IHNob3VsZCBlbGltaW5hdGUgdGhlICJFcnJvckxvZyIgdXNlIGNvbXBsZXRlbHku ICBNeSB0aG91Z2h0IGlzIHRoYXQNCj4gPiB0aGlzIG1ha2VzIHRoZSBjb25uZWN0aW9uIHRvIGxl Z2FjeSBjbGVhci4gIEFuZCBhbHNvIG1vdGl2YXRlcyB1cyB0bw0KPiA+IGVsaW1pbmF0ZSBhbGwg dGhlIHZlc3RpZ2lhbCByZWZlcmVuY2VzIHRvIHRoZSBFcnJvckxvZyBpbiBlZGsyIGFuZCBlZGsy LQ0KPiBwbGF0Zm9ybXMuDQo+ID4gPg0KPiA+ID4gTmV3IHVwZGF0ZWFibGUgcmVnaW9ucyBzaG91 bGQgbm90IGJlIGhhcmQtY29kZWQgaW50byB0aGlzIGFyZWEgYW5kDQo+ID4gPiBzaG91bGQNCj4g PiBoYXZlIGEgY2xlYW5lciBzb2x1dGlvbiwgYXMgTWljaGFlbCBzdWdnZXN0cy4NCj4gPiA+DQo+ ID4gPiBJIHVuZGVyc3RhbmQgaWYgd2UgZG9uJ3Qgd2FudCB0byBzdXBwb3J0IGxlZ2FjeSBvciB3 b3JrYXJvdW5kcywgYnV0DQo+ID4gPiBJIHRoaW5rDQo+ID4gdGhhdCBjdXJyZW50bHkgYWRvcHRp b24gYW5kIHVzZSBvZiB0aGUgb3BlbiBjb250ZW50IGlzIGhpZ2hlcg0KPiA+IHByaW9yaXR5LiAg V2hpY2ggaXMgd2h5IHdlIGFyZSByZXF1ZXN0aW5nIHRoaXMgd29ya2Fyb3VuZCB0byBtYXRjaA0K PiA+ICJwcm9wcmlldGFyeSIgRlZCIHNlcnZpY2VzIGJlaGF2aW9yLg0KPiA+ID4NCj4gPiA+IFJl Z2FyZHMsDQo+ID4gPiBJc2FhYw0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPiBGcm9tOiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29m dC5jb20+DQo+ID4gPiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgOSwgMjAyMyA3OjQwIEFNDQo+ ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVA aW50ZWwuY29tPg0KPiA+ID4gQ2M6IFMsIEFzaHJhZiBBbGkgPGFzaHJhZi5hbGkuc0BpbnRlbC5j b20+OyBPcmFtLCBJc2FhYyBXDQo+ID4gPiA8aXNhYWMudy5vcmFtQGludGVsLmNvbT47IENoYWdh bnR5LCBSYW5nYXNhaSBWDQo+ID4gPiA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBO aSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsNCj4gPiA+IEt1YmFja2ksIE1pY2hhZWwgPG1pY2hh ZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVs XSBbZWRrMi1wbGF0Zm9ybXM6IFBBVENIXQ0KPiA+IEludGVsU2lsaWNvblBrZy9TcGlGdmJTZXJ2 aWNlU21tOiBTdXBwb3J0IE90aGVyIE5WUyB2YXJpYWJsZSByZWdpb24uDQo+ID4gPg0KPiA+ID4g SXMgdGhlcmUgYSByZWFzb24gdGhpcyBvdGhlciBjb250ZW50IGNhbid0IGdvIGludG8gaXQncyBv d24gRlY/DQo+ID4gPg0KPiA+ID4gT24gMi85LzIwMjMgMTI6MTQgQU0sIENoaXUsIENoYXNlbCB3 cm90ZToNCj4gPiA+PiBQbGF0Zm9ybSBtYXkgaW1wbGVtZW50IE90aGVyIE5WUyB2YXJpYWJsZSBy ZWdpb24gZm9sbG93aW5nIFJlZ3VsYXINCj4gPiA+PiB2YXJpYWJsZSByZWdpb24gYW5kIGluIHRo aXMgY2FzZSBTcGlGdmJTZXJ2aWNlIHNob3VsZCBpbmNsdWRlIGJvdGgNCj4gPiA+PiByZWdpb24g c2l6ZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSB0b3RhbCBOVlMgcmVnaW9uIHNpemUuDQo+ID4gPj4N Cj4gPiA+PiBPbmUgdXNhZ2UgbW9kZWwgaXMgRXZlbnRMb2cgTlZTIHJlZ2lvbiBhbmQgdGhlcmUg Y291bGQgYmUgb3RoZXJzLg0KPiA+ID4+DQo+ID4gPj4gQ2M6IEFzaHJhZiBBbGkgUyA8YXNocmFm LmFsaS5zQGludGVsLmNvbT4NCj4gPiA+PiBDYzogSXNhYWMgT3JhbSA8aXNhYWMudy5vcmFtQGlu dGVsLmNvbT4NCj4gPiA+PiBDYzogUmFuZ2FzYWkgViBDaGFnYW50eSA8cmFuZ2FzYWkudi5jaGFn YW50eUBpbnRlbC5jb20+DQo+ID4gPj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4g PiA+PiBDYzogTWljaGFlbCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNvbT4N Cj4gPiA+PiBTaWduZWQtb2ZmLWJ5OiBDaGFzZWwgQ2hpdSA8Y2hhc2VsLmNoaXVAaW50ZWwuY29t Pg0KPiA+ID4+IC0tLQ0KPiA+ID4+DQo+ID4gU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cv RmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnZpYw0KPiA+IGVDb21tb24NCj4g PiAuYyB8IDcgKysrKysrKw0KPiA+ID4+DQo+ID4gU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Q a2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnZpYw0KPiA+IGVTbW0uaW5m DQo+ID4gfCA3ICsrKystLS0NCj4gPiA+PiAgICBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBr Zy9JbnRlbFNpbGljb25Qa2cuZGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOA0K PiA+ICsrKysrKysrDQo+ID4gPj4gICAgMyBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQ0KPiA+ID4+DQo+ID4gPj4gZGlmZiAtLWdpdA0KPiA+ID4+IGEvU2ls aWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1Nw aUZ2YlMNCj4gPiA+PiBlcg0KPiA+ID4+IHYNCj4gPiA+PiBpY2VDb21tb24uYw0KPiA+ID4+IGIv U2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNl L1NwaUZ2YlMNCj4gPiA+PiBlcg0KPiA+ID4+IHYNCj4gPiA+PiBpY2VDb21tb24uYw0KPiA+ID4+ IGluZGV4IDk0MmFiZjk1YTYuLmJjZGU5ODEzMWQgMTAwNjQ0DQo+ID4gPj4gLS0tDQo+ID4gPj4g YS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZp Y2UvU3BpRnZiUw0KPiA+ID4+IGVyDQo+ID4gPj4gdg0KPiA+ID4+IGljZUNvbW1vbi5jDQo+ID4g Pj4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlG dmJTZXJ2aWNlL1NwaQ0KPiA+ID4+ICsrKyBGdg0KPiA+ID4+ICsrKyBiDQo+ID4gPj4gKysrIFNl cnZpY2VDb21tb24uYw0KPiA+ID4+IEBAIC01NjgsNiArNTY4LDEzIEBAIEdldFZhcmlhYmxlRnZJ bmZvICgNCj4gPiA+PiAgICAgICAgcmV0dXJuOw0KPiA+ID4+DQo+ID4gPj4gICAgICB9DQo+ID4g Pj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4gKyAgLy8NCj4gPiA+Pg0KPiA+ID4+ICsgIC8vIEdl dFZhcmlhYmxlRmxhc2hOdlN0b3JhZ2VJbmZvICgpIG9ubHkgcmVwb3J0cyByZWd1bGFyDQo+ID4g Pj4gKyB2YXJpYWJsZSByZWdpb24gaW5mb3JtYXRpb24sDQo+ID4gPj4NCj4gPiA+PiArICAvLyBp ZiBwbGF0Zm9ybSBpbXBsZW1lbnRlZCBhIHNlcGFyYXRlIE90aGVyIHZhcmlhYmxlIHJlZ2lvbg0K PiA+ID4+ICsgZm9sbG93aW5nIHRoZSByZWd1bGFyIHZhcmlhYmxlIHJlZ2lvbiwNCj4gPiA+Pg0K PiA+ID4+ICsgIC8vIHRoZSBzaXplIHNob3VsZCBiZSBpbmNsdWRlZCBhcyBvdmVyYWxsIE5WUyB2 YXJpYWJsZSByZWdpb24gc2l6ZS4NCj4gPiA+Pg0KPiA+ID4+ICsgIC8vDQo+ID4gPj4NCj4gPiA+ PiArICBOdlN0b3JlTGVuZ3RoICs9IFBjZEdldDMyIChQY2RGbGFzaE52U3RvcmFnZU90aGVyVmFy aWFibGVTaXplKTsNCj4gPiA+Pg0KPiA+ID4+ICsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgU3RhdHVz ID0gR2V0VmFyaWFibGVGbGFzaEZ0d1NwYXJlSW5mbyAoJk52QmFzZUFkZHJlc3MsDQo+ID4gPj4g Jkxlbmd0aDY0KTsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gPiA+Pg0KPiA+ID4+ICAgICAgICAvLyBTdGF5IHdpdGhpbiB0aGUgY3VycmVudCBVSU5U MzIgc2l6ZSBhc3N1bXB0aW9ucyBpbiB0aGUgdmFyaWFibGUgc3RhY2suDQo+ID4gPj4NCj4gPiA+ PiBkaWZmIC0tZ2l0DQo+ID4gPj4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiUw0KPiA+ID4+IGVyDQo+ID4gPj4gdg0KPiA+ ID4+IGljZVNtbS5pbmYNCj4gPiA+PiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0Zl YXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmJTDQo+ID4gPj4gZXINCj4gPiA+PiB2DQo+ ID4gPj4gaWNlU21tLmluZg0KPiA+ID4+IGluZGV4IDczMDQ5ZWNlYjIuLmY0MDA2NzQxOGEgMTAw NjQ0DQo+ID4gPj4gLS0tDQo+ID4gPj4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9G ZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiUw0KPiA+ID4+IGVyDQo+ID4gPj4gdg0K PiA+ID4+IGljZVNtbS5pbmYNCj4gPiA+PiArKysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNv blBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpDQo+ID4gPj4gKysrIEZ2DQo+ID4g Pj4gKysrIGINCj4gPiA+PiArKysgU2VydmljZVNtbS5pbmYNCj4gPiA+PiBAQCAtNDMsOSArNDMs MTAgQEANCj4gPiA+PiAgICAgIEludGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZGVjDQo+ ID4gPj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4gICAgW1BjZF0NCj4gPiA+Pg0KPiA+ID4+IC0g IGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNlR3VpZC5QY2RGbGFzaE1pY3JvY29kZUZ2QmFzZSAg ICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4gPiA+Pg0KPiA+ID4+IC0gIGdJbnRlbFNpbGljb25Q a2dUb2tlblNwYWNlR3VpZC5QY2RGbGFzaE1pY3JvY29kZUZ2U2l6ZSAgICAgICAgICMjDQo+ID4g Q09OU1VNRVMNCj4gPiA+Pg0KPiA+ID4+IC0gIGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNlR3Vp ZC5QY2RGbGFzaFZhcmlhYmxlU3RvcmVUeXBlICAgICAgICMjDQo+ID4gU09NRVRJTUVTX0NPTlNV TUVTDQo+ID4gPj4NCj4gPiA+PiArICBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNk Rmxhc2hNaWNyb2NvZGVGdkJhc2UgICAgICAgICAgICAjIw0KPiA+IENPTlNVTUVTDQo+ID4gPj4N Cj4gPiA+PiArICBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hNaWNyb2Nv ZGVGdlNpemUgICAgICAgICAgICAjIw0KPiA+IENPTlNVTUVTDQo+ID4gPj4NCj4gPiA+PiArICBn SW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hWYXJpYWJsZVN0b3JlVHlwZSAg ICAgICAgICAjIw0KPiA+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+ID4+DQo+ID4gPj4gKw0KPiA+ ID4+ICsgZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZsYXNoTnZTdG9yYWdlT3Ro ZXJWYXJpYWJsZVNpemUNCj4gPiA+PiArICMjIENPTlNVTUVTDQo+ID4gPj4NCj4gPiA+Pg0KPiA+ ID4+DQo+ID4gPj4gICAgW1NvdXJjZXNdDQo+ID4gPj4NCj4gPiA+PiAgICAgIEZ2YkluZm8uYw0K PiA+ID4+DQo+ID4gPj4gZGlmZiAtLWdpdCBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtn L0ludGVsU2lsaWNvblBrZy5kZWMNCj4gPiA+PiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29u UGtnL0ludGVsU2lsaWNvblBrZy5kZWMNCj4gPiA+PiBpbmRleCA2M2RhZTc1NmFkLi43MDM0YWI5 M2IwIDEwMDY0NA0KPiA+ID4+IC0tLSBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0lu dGVsU2lsaWNvblBrZy5kZWMNCj4gPiA+PiArKysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNv blBrZy9JbnRlbFNpbGljb25Qa2cuZGVjDQo+ID4gPj4gQEAgLTE5NCwzICsxOTQsMTEgQEANCj4g PiA+PiAgICAgICMgIE90aGVyIHZhbHVlOiByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS48QlI+DQo+ ID4gPj4NCj4gPiA+PiAgICAgICMgQFByb21wdCBGbGFzaCBWYXJpYWJsZSBTdG9yZSB0eXBlLg0K PiA+ID4+DQo+ID4gPj4NCj4gPiA+PiBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNk Rmxhc2hWYXJpYWJsZVN0b3JlVHlwZXwweDAwfFVJTlQ4DQo+ID4gPj4gfDANCj4gPiA+PiB4DQo+ ID4gPj4gMDAwMDAwMEUNCj4gPiA+Pg0KPiA+ID4+ICsNCj4gPiA+Pg0KPiA+ID4+ICsgICMjIERl Y2xhcmVzIFNlcGFyYXRlIE5WUyBWYXJpYWJsZSBSZWdpb24gU2l6ZS48QlI+PEJSPg0KPiA+ID4+ DQo+ID4gPj4gKyAgIyAgUGxhdGZvcm0gbWF5IGltcGxlbWVudCBhIFJlZ3VsYXIgdmFyaWFibGUg cmVnaW9uIGFuZCBhbiBPdGhlcg0KPiA+ID4+ICsgdmFyaWFibGUgcmVnaW9uLCB3aGljaCB3aWxs IHJlcXVpcmUgdGhpcyBQQ0QNCj4gPiA+Pg0KPiA+ID4+ICsgICMgIHRvIHRlbGwgU3BpRnZiU2Vy dmljZSB0byBpbmNsdWRlIGJvdGggcmVnaW9ucy48QlI+DQo+ID4gPj4NCj4gPiA+PiArICAjICAw OiBObyBzZXBhcmF0ZSBPdGhlciB2YXJpYWJsZSByZWdpb24uPEJSPg0KPiA+ID4+DQo+ID4gPj4g KyAgIyAgbm9uLXplcm86IFRoZSBzaXplIG9mIGEgc2VwYXJhdGUgT3RoZXIgdmFyaWFibGUgcmVn aW9uDQo+ID4gPj4gKyBmb2xsb3dpbmcgdGhlIFJlZ3VsYXIgdmFyaWFibGUgcmVnaW9uLjxCUj4N Cj4gPiA+Pg0KPiA+ID4+ICsgICMgQFByb21wdCBTZXBhcmF0ZSBOVlMgVmFyaWFibGUgUmVnaW9u IFNpemUuDQo+ID4gPj4NCj4gPiA+PiArDQo+ID4gPj4gKyBnSW50ZWxTaWxpY29uUGtnVG9rZW5T cGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VPdGhlclZhcmlhYmxlU2l6ZQ0KPiA+ID4+ICsgfDAN Cj4gPiA+PiArIHgNCj4gPiA+PiArIDAwMDAwMDAwfFVJTlQzMnwweDAwMDAwMDBGDQo+ID4gPj4N Cj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ IA0KPiANCj4gDQo+IA0KPiANCg0K