From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1C15621962301 for ; Sun, 16 Sep 2018 19:13:28 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Sep 2018 19:13:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,383,1531810800"; d="scan'208";a="71353442" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga008.fm.intel.com with ESMTP; 16 Sep 2018 19:11:45 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 16 Sep 2018 19:11:45 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 16 Sep 2018 19:11:29 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.240]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.205]) with mapi id 14.03.0319.002; Mon, 17 Sep 2018 10:11:27 +0800 From: "Wang, Jian J" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Zeng, Star" , Ard Biesheuvel , "Ni, Ruiyu" , "Yao, Jiewen" Thread-Topic: [PATCH] MdeModulePkg/DxeIpl: support more NX related PCDs Thread-Index: AQHUTBCTUQTjIBjtrEaVpawqUHY1TKTzumyg Date: Mon, 17 Sep 2018 02:11:27 +0000 Message-ID: References: <20180914051335.2644-1-jian.j.wang@intel.com> <9d5d297a-4d10-3ffd-3d02-1f369cfe5bda@redhat.com> In-Reply-To: <9d5d297a-4d10-3ffd-3d02-1f369cfe5bda@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTNhYWNlNjItNmYzMi00ZDE1LWIyNDEtM2IzYmRkZTgyZmNmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiK3dOTmFqamVzVDV3WXdvRzVsaXVMRFo5WGUrMWJ6UUk2RlwvVENTc0RJSTdOcWUwaVdPRmY5V1wvU290d2tpVVVCIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/DxeIpl: support more NX related PCDs X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Sep 2018 02:13:28 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLA0KDQpUaGFua3MgZm9yIHRoZSBjb21tZW50cy4NCg0KUmVnYXJkcywNCkppYW4NCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMTQsIDIwMTgg NTo1MSBQTQ0KPiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNv bT47IEFyZCBCaWVzaGV1dmVsDQo+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgTmksIFJ1 aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPiA8amlld2VuLnlhb0BpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9EeGVJcGw6IHN1cHBv cnQgbW9yZSBOWCByZWxhdGVkIFBDRHMNCj4gDQo+IEkndmXCoGdvdMKgc29tZcKgY29tbWVudHPC oG9uwqB0aGXCoGNvZGXCoGFzwqB3ZWxsOg0KPiANCj4gT27CoDA5LzE0LzE4wqAwNzoxMyzCoEpp YW7CoErCoFdhbmfCoHdyb3RlOg0KPiA+wqBCWiMxMTE2OsKgaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE2DQo+ID4NCj4gPsKgQ3VycmVudGx5wqBJQTMy X0VGRVIuTlhFwqBpc8Kgb25secKgc2V0wqBhZ2FpbnN0wqBQY2RTZXROeEZvclN0YWNrLsKgVGhp cw0KPiA+wqBjb25mdXNlc8KgZGV2ZWxvcGVyc8KgYmVjYXVzZcKgZm9sbG93aW5nwqB0d2/CoG90 aGVywqBQQ0RzwqBhbHNvwqBuZWVkwqBOWEUNCj4gPsKgdG/CoGJlwqBzZXQswqBidXTCoGFjdHVh bGx5wqBub3QuDQo+ID4NCj4gPsKgwqDCoMKgwqBQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xp Y3kNCj4gPsKgwqDCoMKgwqBQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3kNCj4gPg0KPiA+wqBUaGlz wqBwYXRjaMKgc29sdmVzwqB0aGlzwqBpc3N1ZcKgYnnCoGFkZGluZ8KgbG9naWPCoHRvwqBlbmFi bGXCoElBMzJfRUZFUi5OWEUNCj4gPsKgaWbCoGFuecKgb2bCoHRob3NlwqBQQ0RzwqBoYXZlwqBh bnl0aGluZ8KgZW5hYmxlZC4NCj4gPg0KPiA+wqBEdWXCoHRvwqB0aGXCoGZhY3TCoHRoYXTCoE5Y wqBtZW1vcnnCoHR5cGXCoG9mwqBzdGFja8KgKGVuYWJsZWTCoGJ5wqBQY2RTZXROeEZvclN0YWNr KQ0KPiA+wqBhbmTCoGltYWdlwqBkYXRhwqBzZWN0aW9uwqAoZW5hYmxlZMKgYnnCoFBjZEltYWdl UHJvdGVjdGlvblBvbGljeSnCoGFyZcKgYWxzbw0KPiA+wqBwYXJ0wqBvZsKgUGNkRHhlTnhNZW1v cnlQcm90ZWN0aW9uUG9saWN5LMKgdGhpc8KgcGF0Y2jCoGFsc2/CoGFkZMKgbW9yZcKgY2hlY2tz DQo+ID7CoHRvwqB3YXJuwqAoQVNTRVJUKcKgdXNlcnPCoGFuecKgdW5yZWFzb25hYmxlwqBzZXR0 aW5nwqBjb21iaW5hdGlvbnMuwqBGb3LCoGV4YW1wbGUsDQo+ID4NCj4gPsKgwqDCoMKgwqBQY2RT ZXROeEZvclN0YWNrwqA9PcKgRkFMU0XCoCYmDQo+ID7CoMKgwqDCoMKgwqDCoChQY2REeGVOeE1l bW9yeVByb3RlY3Rpb25Qb2xpY3nCoCbCoCgxwqA8PEVmaUJvb3RTZXJ2aWNlc0RhdGEpKcKgIT3C oDANCj4gPg0KPiA+wqDCoMKgwqDCoFBjZEltYWdlUHJvdGVjdGlvblBvbGljecKgPT3CoDDCoCYm DQo+ID7CoMKgwqDCoMKgwqDCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoCbCoCgx wqA8PMKgRWZpUnVudGltZVNlcnZpY2VzRGF0YSkpwqAhPcKgMA0KPiA+DQo+ID7CoMKgwqDCoMKg UGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqA9PcKgMMKgJiYNCj4gPsKgwqDCoMKgwqDCoMKgKFBj ZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgJsKgKDHCoDw8RWZpQm9vdFNlcnZpY2VzRGF0 YSkpwqAhPcKgMA0KPiA+DQo+ID7CoMKgwqDCoMKgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqA9 PcKgMMKgJiYNCj4gPsKgwqDCoMKgwqDCoMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGlj ecKgJsKgKDHCoDw8RWZpTG9hZGVyRGF0YSkpwqAhPcKgMA0KPiA+DQo+ID7CoEluwqBvdGhlcsKg d29yZHMswqBQY2RTZXROeEZvclN0YWNrwqBhbmTCoFBjZEltYWdlUHJvdGVjdGlvblBvbGljecKg aGF2ZQ0KPiA+wqBwcmlvcml0ecKgb3ZlcsKgUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5 Lg0KPiA+DQo+ID7CoENjOsKgU3RhcsKgWmVuZ8KgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID7C oENjOsKgTGFzemxvwqBFcnNla8KgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+wqBDYzrCoEFyZMKg Qmllc2hldXZlbMKgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID7CoENjOsKgUnVpeXXC oE5pwqA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+wqBDYzrCoEppZXdlbsKgWWFvwqA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID7CoENvbnRyaWJ1dGVkLXVuZGVyOsKgVGlhbm9Db3JlwqBDb250 cmlidXRpb27CoEFncmVlbWVudMKgMS4xDQo+ID7CoFNpZ25lZC1vZmYtYnk6wqBKaWFuwqBKwqBX YW5nwqA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+wqAtLS0NCj4gPsKgwqBNZGVNb2R1bGVQ a2cvQ29yZS9EeGVJcGxQZWltL0R4ZUlwbC5pbmbCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMsKg Kw0KPiA+wqDCoE1kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEzMi9EeGVMb2FkRnVuYy5j wqDCoHzCoMKgNMKgKy0NCj4gPsKgwqBNZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9W aXJ0dWFsTWVtb3J5LmPCoHzCoDU1wqArKysrKysrKysrKysrDQo+ICsrKysrKysrKystDQo+ID7C oMKgTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5owqB8wqAz M8KgKysrKysrKysrKysrKw0KPiArDQo+ID7CoMKgNMKgZmlsZXPCoGNoYW5nZWQswqA5McKgaW5z ZXJ0aW9ucygrKSzCoDPCoGRlbGV0aW9ucygtKQ0KPiA+DQo+ID7CoGRpZmbCoC0tDQo+IGdpdMKg YS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0R4ZUlwbC5pbmbCoGIvTWRlTW9kdWxlUGtn L0NvcmUvRHhlSXANCj4gbFBlaW0vRHhlSXBsLmluZg0KPiA+wqBpbmRleMKgZmQ4MjY1NzQwNC4u MDY4ZTcwMDA3NMKgMTAwNjQ0DQo+ID7CoC0tLcKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQ ZWltL0R4ZUlwbC5pbmYNCj4gPsKgKysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0v RHhlSXBsLmluZg0KPiA+wqBAQMKgLTExNyw2wqArMTE3LDjCoEBADQo+ID4NCj4gPsKgwqBbUGNk LklBMzIsUGNkLlg2NCxQY2QuQVJNLFBjZC5BQVJDSDY0XQ0KPiA+wqDCoMKgwqBnRWZpTWRlTW9k dWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2V0TnhGb3JTdGFja8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCMjwqBTT01FVElNDQo+IEVTX0NPTlNVTUVTDQo+ID7CoCvCoMKgZ0VmaU1kZU1v ZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgIyMN Cj4gU09NRVRJTUVTX0NPTlNVTUVTDQo+ID7CoCvCoMKgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEltYWdlUHJvdGVjdGlvblBvbGljecKgwqDCoMKgwqDCoMKgIyPCoFNPTUUNCj4g VElNRVNfQ09OU1VNRVMNCj4gPg0KPiA+wqDCoFtEZXBleF0NCj4gPsKgwqDCoMKgZ0VmaVBlaUxv YWRGaWxlUHBpR3VpZMKgQU5EwqBnRWZpUGVpTWFzdGVyQm9vdE1vZGVQcGlHdWlkDQo+ID7CoGRp ZmbCoC0tDQo+IGdpdMKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0lhMzIvRHhlTG9h ZEZ1bmMuY8KgYi9NZGVNb2R1bGVQa2cvDQo+IENvcmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRG dW5jLmMNCj4gPsKgaW5kZXjCoGQyOGJhYTM2MTUuLjlhOTcyMDVlZjjCoDEwMDY0NA0KPiA+wqAt LS3CoGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRGdW5jLmMNCj4g PsKgKysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEzMi9EeGVMb2FkRnVuYy5j DQo+ID7CoEBAwqAtMjQ1LDfCoCsyNDUsN8KgQEDCoFRvQnVpbGRQYWdlVGFibGXCoCgNCj4gPsKg wqDCoMKgwqDCoHJldHVybsKgVFJVRTsNCj4gPsKgwqDCoMKgfQ0KPiA+DQo+ID7CoC3CoMKgaWbC oChQY2RHZXRCb29swqAoUGNkU2V0TnhGb3JTdGFjaynCoCYmwqBJc0V4ZWN1dGVEaXNhYmxlQml0 QXZhaWxhYmxlwqAoKSnCoHsNCj4gPsKgK8KgwqBpZsKgKFRvRW5hYmxlRXhlY3V0ZURpc2FibGVG ZWF0dXJlwqAoKSnCoHsNCj4gPsKgwqDCoMKgwqDCoHJldHVybsKgVFJVRTsNCj4gPsKgwqDCoMKg fQ0KPiA+DQo+ID7CoEBAwqAtNDM2LDfCoCs0MzYsN8KgQEDCoEhhbmRPZmZUb0R4ZUNvcmXCoCgN Cj4gPsKgwqDCoMKgwqDCoEJ1aWxkUGFnZVRhYmxlc0lhMzJQYWXCoD3CoFRvQnVpbGRQYWdlVGFi bGXCoCgpOw0KPiA+wqDCoMKgwqDCoMKgaWbCoChCdWlsZFBhZ2VUYWJsZXNJYTMyUGFlKcKgew0K PiA+wqDCoMKgwqDCoMKgwqDCoFBhZ2VUYWJsZXPCoD3CoENyZWF0ZTRHUGFnZVRhYmxlc0lhMzJQ YWXCoChCYXNlT2ZTdGFjayzCoFNUQUNLX1NJWkUpOw0KPiA+wqAtwqDCoMKgwqDCoMKgaWbCoChJ c0V4ZWN1dGVEaXNhYmxlQml0QXZhaWxhYmxlwqAoKSnCoHsNCj4gPsKgK8KgwqDCoMKgwqDCoGlm wqAoVG9FbmFibGVFeGVjdXRlRGlzYWJsZUZlYXR1cmXCoCgpKcKgew0KPiA+wqDCoMKgwqDCoMKg wqDCoMKgwqBFbmFibGVFeGVjdXRlRGlzYWJsZUJpdCgpOw0KPiA+wqDCoMKgwqDCoMKgwqDCoH0N Cj4gPsKgwqDCoMKgwqDCoH0NCj4gPsKgZGlmZsKgLS0NCj4gZ2l0wqBhL01kZU1vZHVsZVBrZy9D b3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuY8KgYi9NZGVNb2R1bGVQa2cNCj4gL0Nv cmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5jDQo+ID7CoGluZGV4wqA0OTZlMjE5OTEz Li4yNTNmZTg0MjIzwqAxMDA2NDQNCj4gPsKgLS0twqBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlw bFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuYw0KPiA+wqArKyvCoGIvTWRlTW9kdWxlUGtnL0NvcmUv RHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5jDQo+ID7CoEBAwqAtMTA2LDbCoCsxMDYsNTbC oEBAwqBJc051bGxEZXRlY3Rpb25FbmFibGVkwqAoDQo+ID7CoMKgwqDCoHJldHVybsKgKChQY2RH ZXQ4wqAoUGNkTnVsbFBvaW50ZXJEZXRlY3Rpb25Qcm9wZXJ0eU1hc2spwqAmwqBCSVQwKcKgIT3C oDApOw0KPiA+wqDCoH0NCj4gPg0KPiA+wqArLyoqDQo+ID7CoCvCoMKgQ2hlY2vCoGlmwqBFeGVj dXRlwqBEaXNhYmxlwqBCaXTCoChJQTMyX0VGRVIuTlhFKcKgc2hvdWxkwqBiZcKgZW5hYmxlZMKg b3LCoG5vdC4NCj4gPsKgKw0KPiA+wqArwqDCoEByZXR2YWzCoFRSVUXCoMKgwqDCoElBMzJfRUZF Ui5OWEXCoHNob3VsZMKgYmXCoGVuYWJsZWQuDQo+ID7CoCvCoMKgQHJldHZhbMKgRkFMU0XCoMKg wqBJQTMyX0VGRVIuTlhFwqBzaG91bGTCoG5vdMKgYmXCoGVuYWJsZWQuDQo+ID7CoCsNCj4gPsKg KyoqLw0KPiA+wqArQk9PTEVBTg0KPiA+wqArVG9FbmFibGVFeGVjdXRlRGlzYWJsZUZlYXR1cmXC oCgNCj4gPsKgK8KgwqBWT0lEDQo+ID7CoCvCoMKgKQ0KPiANCj4gScKgdGhpbmvCoHdlJ3JlwqBv dmVyLWNvbXBsaWNhdGluZ8KgdGhlwqBuYW1lwqBvZsKgdGhpc8KgZnVuY3Rpb24uwqBGaXJzdCzC oCJUbyINCj4gbG9va3PCoHVubmVjZXNzYXJ5LsKgU2Vjb25kLMKgIkVuYWJsZcKgRXhlY3V0ZcKg RGlzYWJsZSLCoGlzwqBqdXN0wqBhbg0KPiBlbmdpbmVlcidzwqB3YXnCoHRvwqBzYXnCoCJEaXNh YmxlwqBFeGVjdXRpb24iLsKgQ2FuwqB3ZcKgc2F5wqByaWdodMKgdGhhdDoNCj4gRGlzYWJsZUV4 ZWMoKT8NCj4gDQo+IE9ywqBhdMKgbGVhc3QswqBpZsKgd2XCoGNvbnNpZGVywqAiTlgiwqBhwqB3 b3JkwqBpbsKgaXRzwqBvd27CoHJpZ2h0LMKgIkVuYWJsZU5YKCkiPw0KDQpJIHByZWZlciBtb3Jl IGdlbmVyYWwgb25lLiBMZXQncyB1c2UgRGlzYWJsZUV4ZWMoKS4NCg0KPiANCj4gPsKgK3sNCj4g PsKgK8KgwqBpZsKgKCFJc0V4ZWN1dGVEaXNhYmxlQml0QXZhaWxhYmxlwqAoKSnCoHsNCj4gPsKg K8KgwqDCoMKgcmV0dXJuwqBGQUxTRTsNCj4gPsKgK8KgwqB9DQo+ID7CoCsNCj4gPsKgK8KgwqAv Lw0KPiA+wqArwqDCoC8vwqBOb3JtYWxsecKgc3RhY2vCoGlzwqB0eXBlwqBvZsKgRWZpQm9vdFNl cnZpY2VzRGF0YS7CoERpc2FibGluZ8KgTljCoGZvcsKgc3RhY2sNCj4gPsKgK8KgwqAvL8KgYnV0 wqBlbmFibGluZ8KgTljCoGZvcsKgRWZpQm9vdFNlcnZpY2VzRGF0YcKgZG9lc24ndMKgbWFrZcKg YW55wqBzZW5zZS4NCj4gPsKgK8KgwqAvLw0KPiANCj4gVGhpc8KgY29tbWVudMKgaXPCoGdvb2Qu DQo+IA0KPiA+wqArwqDCoGlmwqAoUGNkR2V0Qm9vbMKgKFBjZFNldE54Rm9yU3RhY2spwqA9PcKg RkFMU0XCoCYmDQo+IA0KPiBQbGVhc2XCoGRvbid0wqBjb21wYXJlwqBQY2RHZXRCb29sKCnCoGFn YWluc3TCoFRSVUXCoG9ywqBGQUxTRSzCoGp1c3TCoHNheQ0KPiBQY2RHZXRCb29sKCkswqBvcsKg IVBjZEdldEJvb2woKS4NCj4gDQo+ID7CoCvCoMKgwqDCoMKgwqAoUGNkR2V0NjTCoChQY2REeGVO eE1lbW9yeVByb3RlY3Rpb25Qb2xpY3kpwqAmwqBTVEFDS19NRU1PUllfVFlQRSkNCj4gwqAhPcKg MCnCoHsNCj4gPsKgK8KgwqDCoMKgREVCVUfCoCgoREVCVUdfRVJST1IsDQo+ID7CoCvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAiRVJST1I6wqBOWMKgZm9ywqBzdGFja8KgaXPCoGRpc2FibGVkwqBi dXTCoE5YwqBmb3LCoGl0c8KgbWVtb3J5wqB0eXBlwqBpc8KgZW5hYmxlZA0KPiAhXHJcbiIpKTsN Cj4gPsKgK8KgwqDCoMKgQVNTRVJUKCEoUGNkR2V0Qm9vbMKgKFBjZFNldE54Rm9yU3RhY2spwqA9 PcKgRkFMU0XCoCYmDQo+ID7CoCvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChQY2RHZXQ2NMKg KFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeSnCoCbCoFNUQUNLX01FTU9SWV9UDQo+IFlQ RSnCoCE9wqAwKSk7DQo+ID7CoCvCoMKgfQ0KPiANCj4gUGxlYXNlwqBkcm9wwqBib3RowqB0aGXC oGV4cGxpY2l0wqAiaWYiLMKgYW5kwqB0aGXCoERFQlVHwqBtZXNzYWdlLsKgSnVzdMKga2VlcMKg dGhlDQo+IGNvbW1lbnTCoCh3aGljaMKgaXPCoGFscmVhZHnCoGZpbmUpwqBhbmTCoHRoZcKgQVNT RVJUKCkuwqBUaGXCoEFTU0VSVCgpwqB3aWxswqB0ZWxsDQo+IHBlb3BsZcKgd2hlcmXCoHRvwqBs b29rLMKgYW5kwqB0aGXCoGNvbW1lbnTCoHdpbGzCoGV4cGxhaW7CoHRoZcKgYXNzZXJ0aW9uLsKg QWxzbywNCj4gaW7CoGHCoFJFTEVBU0XCoGJ1aWxkLMKgdGhlwqBjaGVja8Kgc2hvdWxkwqBiZcKg ZWxpbWluYXRlZMKgZW50aXJlbHkswqBidXTCoHRoYXQNCj4gbWlnaHTCoG5vdMKgd29ya8KgZm9y wqB0aGXCoGV4cGxpY2l0wqAiaWYiwqAoZGVwZW5kZW50wqBvbsKgY29tcGlsZXJzwqBhbmQvb3IN Cj4gZml4ZWTCoHZzLsKgZHluYW1pY8KgUENEcykuDQo+IA0KPiBGdXJ0aGVybW9yZSzCoGtlZXBp bmfCoHRoZcKgbG9naWNhbMKgbmVnYXRpb27CoG9wZXJhdG9ywqBhc8KgdGhlwqBvdXRlcm1vc3QN Cj4gb3BlcmF0b3LCoG1ha2VzwqB0aGXCoGNvZGXCoGHCoGxvdMKgaGFyZGVywqB0b8KgcmVhZC7C oEl0J3PCoG11Y2jCoGJldHRlcsKgdG/CoGp1c3QNCj4gYXNzZXJ0wqB3aGF0wqB3ZcKgYWN0dWFs bHnCoHJlcXVpcmUswqB3aGljaMKgaXM6DQo+IA0KPiDCoMKgKER4ZU54TWVtb3J5UHJvdGVjdGlv blBvbGljecKgY292ZXJzwqBCU0QpwqAtLT7CoFNldE54Rm9yU3RhY2sNCj4gDQo+IHB1dMKgZGlm ZmVyZW50bHksDQo+IA0KPiDCoMKgTk9UKER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgY292 ZXJzwqBCU0QpwqBPUsKgU2V0TnhGb3JTdGFjaw0KPiANCj4gaW7CoEM6DQo+IA0KPiDCoMKgQVNT RVJUwqAoDQo+IMKgwqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9s aWN5KcKgJsKgU1RBQ0tfTUVNT1JZX1RZUEUpwqA9PQ0KPiAwwqB8fA0KPiDCoMKgwqDCoFBjZEdl dEJvb2zCoChQY2RTZXROeEZvclN0YWNrKQ0KPiDCoMKgwqDCoCk7DQo+IA0KDQpJIGRvbid0IGhh dmUgc3Ryb25nIG9waW5pb25zIG9uIHRoZXNlLiBTbyBsZXQncyBkbyBpdCB5b3VyIHdheS4NCg0K PiA+wqArDQo+ID7CoCvCoMKgLy8NCj4gPsKgK8KgwqAvL8KgSW1hZ2XCoGRhdGHCoHNlY3Rpb27C oGNvdWxkwqBiZcKgdHlwZcKgb2bCoEVmaUxvYWRlckRhdGEswqBFZmlCb290U2VydmljZXNEYXRh DQo+ID7CoCvCoMKgLy/CoG9ywqBFZmlSdW50aW1lU2VydmljZXNEYXRhLsKgRGlzYWJsaW5nwqBO WMKgZm9ywqBpbWFnZcKgZGF0YcKgYnV0wqBlbmFibGluZ8KgTlgNCj4gPsKgK8KgwqAvL8KgZm9y wqBhbnnCoHRob3NlwqBtZW1vcnnCoHR5cGVzwqBkb2Vzbid0wqBtYWtlwqBhbnnCoHNlbnNlLg0K PiA+wqArwqDCoC8vDQo+IA0KPiBUaGXCoGNvbW1lbnTCoGlzwqBnb29kLMKgScKganVzdMKgc3Vn Z2VzdMKgZXh0ZW5kaW5nwqBpdMKgd2l0aMKgdGhlwqBvcmlnaW7CoG9mwqB0aGUNCj4gaW1hZ2U6 wqAiRGlzYWJsaW5nwqBOWMKgZm9ywqBpbWFnZcKgZGF0YcKgKHJlZ2FyZGxlc3PCoG9mwqBpbWFn ZcKgb3JpZ2luKcKgZm9ywqBhbnkNCj4gdGhvc2XCoG1lbW9yecKgdHlwZXPCoC4uLiIuDQo+IA0K DQpTdXJlLiBJJ2xsIGFkZCBpdC4NCg0KPiA+wqArwqDCoGlmwqAoUGNkR2V0MzLCoChQY2RJbWFn ZVByb3RlY3Rpb25Qb2xpY3kpwqA9PcKgMMKgJiYNCj4gPsKgK8KgwqDCoMKgwqDCoChQY2RHZXQ2 NMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeSnCoCbCoElNQUdFX0RBVEFfTUVNT1IN Cj4gWV9UWVBFKcKgIT3CoDApwqB7DQo+ID7CoCvCoMKgwqDCoERFQlVHwqAoKERFQlVHX0VSUk9S LA0KPiA+wqArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIkVSUk9SOsKgTljCoGZvcsKgaW1hZ2XC oGRhdGHCoGlzwqBkaXNhYmxlZMKgYnV0wqBOWMKgZm9ywqBpdHPCoG1lbW9yecKgdHlwZShzKcKg aXMNCj4gZW5hYmxlZCFcclxuIikpOw0KPiA+wqArwqDCoMKgwqBBU1NFUlTCoCghKFBjZEdldDMy wqAoUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5KcKgPT3CoDDCoCYmDQo+ID7CoCvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9s aWN5KcKgJsKgSU1BR0VfREFUQV9NRQ0KPiBNT1JZX1RZUEUpwqAhPcKgMCkpOw0KPiA+wqArwqDC oH0NCj4gDQo+IFN1bW1hcml6aW5nwqBtecKgcG9pbnRzwqBmcm9twqBiZWZvcmUswqBoZXJlwqB3 ZcKgc2hvdWxkwqBoYXZlOg0KPiANCj4gwqDCoEFTU0VSVMKgKA0KPiDCoMKgwqDCoChQY2RHZXQ2 NMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeSnCoCbCoElNQUdFX0RBVEFfTUVNT1JZ X1RZDQo+IFBFKcKgPT3CoDDCoHx8DQo+IMKgwqDCoMKgUGNkR2V0MzLCoChQY2RJbWFnZVByb3Rl Y3Rpb25Qb2xpY3kpwqA9PcKgMw0KPiDCoMKgwqDCoCk7DQo+IA0KPiBUaGF0wqBpcywNCj4gDQo+ IC3CoElmwqB3ZcKgZGlzYWJsZcKgRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqBmb3LCoGFs bMKgb2bCoEVmaUxvYWRlckRhdGEsDQo+IMKgwqBFZmlCb290U2VydmljZXNEYXRhLMKgYW5kwqBF ZmlSdW50aW1lU2VydmljZXNEYXRhLMKgdGhlbsKgYW55DQo+IMKgwqBJbWFnZVByb3RlY3Rpb25Q b2xpY3nCoGlzwqBmaW5lLg0KPiANCj4gLcKgSWbCoHdlwqBlbmFibGXCoMKgRHhlTnhNZW1vcnlQ cm90ZWN0aW9uUG9saWN5wqBmb3LCoGFuecKgb2bCoEVmaUxvYWRlckRhdGEsDQo+IMKgwqBFZmlC b290U2VydmljZXNEYXRhLMKgYW5kwqBFZmlSdW50aW1lU2VydmljZXNEYXRhLMKgdGhlbsKgd2XC oHJlcXVpcmXCoHRoZQ0KPiDCoMKgcGxhdGZvcm3CoHRvwqBzZXTCoEltYWdlUHJvdGVjdGlvblBv bGljecKgcmVnYXJkbGVzc8Kgb2bCoGltYWdlwqBvcmlnaW4uDQo+IA0KPiBUaGFua3MNCj4gTGFz emxvDQo+IA0KDQpHb29kIGNhdGNoLiBJIG1pc3NlZCB0aGF0IHBhcnQuIFRoYW5rcy4NCg0KPiA+ wqArDQo+ID7CoCvCoMKgLy8NCj4gPsKgK8KgwqAvL8KgWETCoGZsYWfCoChCSVQ2MynCoGluwqBw YWdlwqB0YWJsZcKgZW50cnnCoGlzwqBvbmx5wqB2YWxpZMKgaWbCoElBMzJfRUZFUi5OWEXCoGlz wqBzZXQuDQo+ID7CoCvCoMKgLy/CoEZlYXR1cmVzwqBjb250cm9sbGVkwqBiecKgRm9sbG93aW5n wqBQQ0RzwqBuZWVkwqB0aGlzwqBmZWF0dXJlwqB0b8KgYmXCoGVuYWJsZWQuDQo+ID7CoCvCoMKg Ly8NCj4gPsKgK8KgwqByZXR1cm7CoChQY2RHZXRCb29swqAoUGNkU2V0TnhGb3JTdGFjaynCoHx8 DQo+ID7CoCvCoMKgwqDCoMKgwqDCoMKgwqDCoFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90 ZWN0aW9uUG9saWN5KcKgIT3CoDDCoHx8DQo+ID7CoCvCoMKgwqDCoMKgwqDCoMKgwqDCoFBjZEdl dDMywqAoUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5KcKgIT3CoDApOw0KPiA+wqArfQ0KPiA+wqAr DQo+ID7CoMKgLyoqDQo+ID7CoMKgwqDCoEVuYWJsZcKgRXhlY3V0ZcKgRGlzYWJsZcKgQml0Lg0K PiA+DQo+ID7CoEBAwqAtNzU1LDfCoCs4MDUsMTDCoEBAwqBDcmVhdGVJZGVudGl0eU1hcHBpbmdQ YWdlVGFibGVzwqAoDQo+ID7CoMKgwqDCoC8vDQo+ID7CoMKgwqDCoEVuYWJsZVBhZ2VUYWJsZVBy b3RlY3Rpb27CoCgoVUlOVE4pUGFnZU1hcCzCoFRSVUUpOw0KPiA+DQo+ID7CoC3CoMKgaWbCoChQ Y2RHZXRCb29swqAoUGNkU2V0TnhGb3JTdGFjaykpwqB7DQo+ID7CoCvCoMKgLy8NCj4gPsKgK8Kg wqAvL8KgU2V0wqBJQTMyX0VGRVIuTlhFwqBpZsKgbmVjZXNzYXJ5Lg0KPiA+wqArwqDCoC8vDQo+ ID7CoCvCoMKgaWbCoChUb0VuYWJsZUV4ZWN1dGVEaXNhYmxlRmVhdHVyZcKgKCkpwqB7DQo+ID7C oMKgwqDCoMKgwqBFbmFibGVFeGVjdXRlRGlzYWJsZUJpdMKgKCk7DQo+ID7CoMKgwqDCoH0NCj4g Pg0KPiA+wqBkaWZmwqAtLQ0KPiBnaXTCoGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9Y NjQvVmlydHVhbE1lbW9yeS5owqBiL01kZU1vZHVsZVBrZw0KPiAvQ29yZS9EeGVJcGxQZWltL1g2 NC9WaXJ0dWFsTWVtb3J5LmgNCj4gPsKgaW5kZXjCoDg1NDU3ZmY5MzcuLjlmMTUyZTY1MzHCoDEw MDY0NA0KPiA+wqAtLS3CoGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVh bE1lbW9yeS5oDQo+ID7CoCsrK8KgYi9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9W aXJ0dWFsTWVtb3J5LmgNCj4gPsKgQEDCoC0xNzksNsKgKzE3OSwzOcKgQEDCoHR5cGVkZWbCoHN0 cnVjdMKgew0KPiA+wqDCoMKgwqBVSU5UTsKgwqDCoMKgwqDCoMKgwqDCoMKgwqBGcmVlUGFnZXM7 DQo+ID7CoMKgfcKgUEFHRV9UQUJMRV9QT09MOw0KPiA+DQo+ID7CoCsvLw0KPiA+wqArLy/CoEJp dMKgZmllbGTCoHJlcHNlbnRhdGlvbnPCoG9mwqBzb21lwqBFRklfTUVNT1JZX1RZUEUswqBmb3LC oHBhZ2XCoHRhYmxlwqBpbml0aWFsaXoNCj4gYXRpb24uDQo+ID7CoCsvLw0KPiA+wqArI2RlZmlu ZcKgU1RBQ0tfTUVNT1JZX1RZUEXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKDHCoDw8wqBFZmlCb290 U2VydmljZXNEYXRhKcKgwqDCoMKgLyrCoDB4MTDCoCovDQo+ID7CoCsjZGVmaW5lwqBJTUFHRV9E QVRBX01FTU9SWV9UWVBFwqDCoMKgwqDCoMKgKCgxwqA8PMKgRWZpTG9hZGVyRGF0YSnCoMKgwqDC oMKgwqDCoHzCoC8qwqAweDA0DQo+ICovXA0KPiA+wqArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoMcKgPDzC oEVmaUJvb3RTZXJ2aWNlc0RhdGEpwqB8wqAvKsKgMHgxMMKgKi9cDQo+ID7CoCvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCgxwqA8PMKgRWZpUnVudGltZVNlcnZpY2VzRGF0YSkvKsKgMHg0MMKgKi9cDQo+ID7C oCvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqApwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC8qwqAweDU0wqAqLw0KPiA+wqArDQo+ID7CoCsvKioNCj4gPsKg K8KgwqBDaGVja8KgaWbCoEV4ZWN1dGXCoERpc2FibGXCoEJpdMKgKElBMzJfRUZFUi5OWEUpwqBz aG91bGTCoGJlwqBlbmFibGVkwqBvcsKgbm90Lg0KPiA+wqArDQo+ID7CoCvCoMKgQHJldHZhbMKg VFJVRcKgwqDCoMKgSUEzMl9FRkVSLk5YRcKgc2hvdWxkwqBiZcKgZW5hYmxlZC4NCj4gPsKgK8Kg wqBAcmV0dmFswqBGQUxTRcKgwqDCoElBMzJfRUZFUi5OWEXCoHNob3VsZMKgbm90wqBiZcKgZW5h YmxlZC4NCj4gPsKgKw0KPiA+wqArKiovDQo+ID7CoCtCT09MRUFODQo+ID7CoCtUb0VuYWJsZUV4 ZWN1dGVEaXNhYmxlRmVhdHVyZcKgKA0KPiA+wqArwqDCoFZPSUQNCj4gPsKgK8KgwqApOw0KPiA+ wqArDQo+ID7CoCsvKioNCj4gPsKgK8KgwqBUaGXCoGZ1bmN0aW9uwqB3aWxswqBjaGVja8KgaWbC oEV4ZWN1dGXCoERpc2FibGXCoEJpdMKgaXPCoGF2YWlsYWJsZS4NCj4gPsKgKw0KPiA+wqArwqDC oEByZXR2YWzCoFRSVUXCoMKgwqDCoMKgwqBFeGVjdXRlwqBEaXNhYmxlwqBCaXTCoGlzwqBhdmFp bGFibGUuDQo+ID7CoCvCoMKgQHJldHZhbMKgRkFMU0XCoMKgwqDCoMKgRXhlY3V0ZcKgRGlzYWJs ZcKgQml0wqBpc8Kgbm90wqBhdmFpbGFibGUuDQo+ID7CoCsNCj4gPsKgKyoqLw0KPiA+wqArQk9P TEVBTg0KPiA+wqArSXNFeGVjdXRlRGlzYWJsZUJpdEF2YWlsYWJsZcKgKA0KPiA+wqArwqDCoFZP SUQNCj4gPsKgK8KgwqApOw0KPiA+wqArDQo+ID7CoMKgLyoqDQo+ID7CoMKgwqDCoEVuYWJsZcKg RXhlY3V0ZcKgRGlzYWJsZcKgQml0Lg0KPiA+DQo+ID4NCg==