From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web08.19117.1627612483971513610 for ; Thu, 29 Jul 2021 19:34:44 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Mj7mUNwJ; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10060"; a="200224639" X-IronPort-AV: E=Sophos;i="5.84,280,1620716400"; d="scan'208";a="200224639" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jul 2021 19:34:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,280,1620716400"; d="scan'208";a="518677237" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga002.fm.intel.com with ESMTP; 29 Jul 2021 19:34:38 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 29 Jul 2021 19:34:37 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 29 Jul 2021 19:34:37 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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 via Frontend Transport; Thu, 29 Jul 2021 19:34:37 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Thu, 29 Jul 2021 19:34:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PCXVOaj/oWlKNLcy6okKp9to1Uv51pU/oqZ7EL2oHBmupjB54WqwCRd+DTIQ0XAK8dxJvj5+IhAwlmHzM73aMY/wSgiUwBQeBNUNGvuyA/YOBzcosAJTPva/Wdmzfh/LZIVo1wPsN4NZhMag3kBXY0kPa0naggHbbT8lIxOhpvGHc1otYHFVRROJ5+lwVDKwy9Sm4aQEWvreFZozLDkn50FNMhoJtms4UIioSpU56ngn1tclCViEcQceIgqlXaJEpsQOAq5s5fr71k3siQfVQqdLBjO0S3N0SRnKoqbTfG8vZeVCSCaYVhMoeGEeD9FdKywi3sq5fHXkWInABegyHA== 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=p4QLd21urLARYn74xcSXmMA9ScYuOVLXkiPzyTaIXq4=; b=HUglje8zK70wT1BVcEVZyUh730Xs56yzkb6Y+415e0dy1DyC7xolFO/P+eYQiOSAdap5EBnhcQhqV2ZTQyohLdUxWowwfNr+vwh7u+tT6Kxr4lJzy8JNuty8phh+hFtEuuheI7ClnHylQeW28h8Q/BpMJfPzV8zCHMN1zmU0d4QEvy2Fx/idvqE2Nt820ZQE0bgblskpmGrPDgkWVdwCC3OtgcRg+lOs3mQRxvsOfJwmcmEGE+xMa3VCxtWQtXIj4/Bz9pc4urrJnvCp6Tlw1dEJ3aKgi3JU5HgkSphcK2gVHt75BN+OonboDABnHi4i1NHPgfv3G60zaQwHO0fAyQ== 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=p4QLd21urLARYn74xcSXmMA9ScYuOVLXkiPzyTaIXq4=; b=Mj7mUNwJ3N/GgfUpIgadFTkQam07tXTyLMGWIM4hkZvxQKnrTMdSjT/jo+7GO1LBMoVC2aXviNAIzBD7w9hzBCLLAQyGVTvU2J1ExyPxpmkAzyHPh6HrmtBEYVYOjQd5j1dfVHFHDespVVl+y7Kgzqj5JZyRa0WR7zFkamDDGpg= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB4918.namprd11.prod.outlook.com (2603:10b6:510:31::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.21; Fri, 30 Jul 2021 02:34:34 +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; Fri, 30 Jul 2021 02:34:34 +0000 From: "Yao, Jiewen" To: Taylor Beebe , "Wang, Jian J" , "devel@edk2.groups.io" CC: "spbrogan@outlook.com" , "Dong, Eric" , "Ni, Ray" , "Kumar, Rahul1" , "mikuback@linux.microsoft.com" , "Wu, Hao A" , "Bi, Dandan" , "gaoliming@byosoft.com.cn" , "Dong, Guo" , "Ma, Maurice" , "You, Benjamin" Subject: Re: [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings Thread-Topic: [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings Thread-Index: AQHXhCAY+OLs1hebp0mAsxAXjz+Laataw3kAgAAAgDCAAALuAIAABs0w Date: Fri, 30 Jul 2021 02:34:34 +0000 Message-ID: References: <5ffb8dce-8a33-537c-2019-ec4666854739@taylorbeebe.com> In-Reply-To: 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: taylorbeebe.com; dkim=none (message not signed) header.d=none;taylorbeebe.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 963be772-d364-401c-8986-08d953029183 x-ms-traffictypediagnostic: PH0PR11MB4918: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8Cd1vFUga5Zl9izEUL9Uy/IGqu80zZlfJB+JV17JxdFnwHGD1CUbjyR4xVbjTCDqWZybuKyMFiK3wSnZJP9BJ3NFsxcs0f51Ps5QqZg4KSjkc6H0qbWB0ImTol9a8Sz3ss+RnvWOJefayZwBa8/qO1//LhcceJfxozMHHtDrNNSa3LslaI6SpF2FDpyvDhM2vpXilipuHcB2b13vonrrMJ52+5hIB/rqxEzvofNLQR7PkbaZuEVXgDoiDW0+kk1ywQuk69zCXMYVcdDbdUjfQlw+kU6uQ1SjdtJ+ERIUQeEx3oamDVobQLq45sfzE+TfklzzQQXfACeI9GnSPXkg+0X1Vn+uw0FxCZu04ni4OQmzAmE+fHEPJukivsOQE0x6U0W17BxGRQFyW55Kt29X0Iyq2MlVnSqZBtjwyrA0dRXlpW60/13HT2ACtNzHjFEmLyT1LIbyHBiU0tn02G+tvrRKttmv13anZBWddvmvdYVDWDEfIs//WvMMZTpoLCf+WGE4HQ1aoTOho6Xay/cs2DjDeQJ5WixpNmhFtRUISii6CqVyJVhDzhHznXnmiwMWnrGlUhtn1JoqE0QEsttwA7lBDH8yVLe5AZXMMe47bSecS68uGDy3PF8BMP3lIiQbo7asUm/7A+KV0kYCE2nBfNA5F1Qxx5mt2xgbuWndiPECU4evY1OySxdsOWNb1qkLGXXY4nDUS943PoZcWTu0NI+iDijZIFbR5Iy50EMrNc9OcFhjpK/ULpoeXIoMFzvqidMHB0rBpJPwqYHk17vfnqSQ5PoGADlj5bA9NIqB4s9GwHsHTjTWajUntJnnUbFovQFxpbJKrL6EUzEYxHjOD1E6/S6zfw6qnk5YY6V32U0= 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)(136003)(376002)(39860400002)(396003)(346002)(316002)(5660300002)(966005)(186003)(33656002)(8676002)(38100700002)(478600001)(4326008)(54906003)(83380400001)(26005)(122000001)(76116006)(53546011)(8936002)(45080400002)(6506007)(71200400001)(38070700005)(66446008)(86362001)(55016002)(66476007)(52536014)(7696005)(64756008)(66556008)(110136005)(2906002)(107886003)(66946007)(9686003)(781001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dTRkeHR3WGNocFRialVQUGF5OXJSY2Z4QUlFTlB1QVBSdmZWak1EbWZIVW9l?= =?utf-8?B?RU8xNkpaVWVyM2FJNnNuVkFmeEFOOVQ0L2pKRUNDK2pMM083UCtqVndCbThZ?= =?utf-8?B?SWNPa3J5NTRqTlNqcnpoUXFlRldUVmVyYmtNZXpMeWdyRGpNRkV0QzIyQ210?= =?utf-8?B?Z3pQYWxyQ1ZGdUF6cGJISkc4azRzSWphbkUyTXBZYkViQ1BxakZyWWhrdXJD?= =?utf-8?B?Y0sxTGRtcWsrSjBQMDdlZC9vcDZ0VjRDV010ZkxhTDljUG9sbmFzeS9PWFlz?= =?utf-8?B?ZGNJeEZiUXQ5VjltY1JzQTFJTEZMdURuVVFwRzk3S2dyYXJSeTA3N050MUsx?= =?utf-8?B?VmpZZ3c2c1J0U3pneW4yM0QvWEl2RlJXbnB6SGwwWXQ5ZmNrNFRkczdxSzdR?= =?utf-8?B?Sit3MzhQcEgrTEVndmk5a05hRDQ2SzAxYXdtcnJjWmhZMDl3anlUWDJGNHh0?= =?utf-8?B?YTNGQ05FNnYvamlsUUFVVGFJSjg3SlZ5VlpnNmJrN2x0NnFpckEvWGxXTFZM?= =?utf-8?B?Y0wwZ0xkODl0bXU2VWJPbHpTcUpVeHRWZGg1MjhnS1hjc1NkZVRFOExuK2xF?= =?utf-8?B?U1BHZXJkUEZUQUViM2Z2bWtRY0hwTkI5ZTFaVFBldCtxOEJUOVlGS084M3Bu?= =?utf-8?B?RUphZEJGSll0enNCaDdCY2NMNDZoSTB6SDVMZ1FaQkRnK0ZPaEpsNzFFY3Nz?= =?utf-8?B?RkViUnB5dlVTZGFudEZRUVgxK3NHQkRYVFRQVWs0Y0R2a2ljd1BwcVcrSjVs?= =?utf-8?B?TnlMa01ScVVzVCtOa2lGaWUwK2Y4N2pyaGE3U1ozSG16ZXdjYUd0M0NubDlV?= =?utf-8?B?RHNUQVlYa0lIdXpTbWJscGtRVHE0L2hiOStxenZlOTJkNGRpOWJVWGNHSWR1?= =?utf-8?B?dll2LzdsUlBnRk1BSEVZS3ZaM0laS2VLVkpVYVRuTjFFZ0hiSWx4b0tMV2ZB?= =?utf-8?B?VkhwWm1jeUwrWkdMTGRnOHR0Z01aWHM3U2k2M1JkSmpaWC9nMXE2ODhPYm9l?= =?utf-8?B?QU9SMGdJR0ZzNGdKa2RjV2RnK0psUnRkVFRwRklLZHpEMTBaQ0hOWlc1N1N3?= =?utf-8?B?eFdwTVJraUlFc1E0VXlPbDRLazR0SHpsWFpsKzZwazBid3FJWmZHRFU1ZkdG?= =?utf-8?B?bW1CY0E4eU1iZXQvS1lCOTFlYTlQd2t5TDA0SnhvemdUcEw4UDcwWjJPdERG?= =?utf-8?B?TWZVVDBGR1BLQitEcDBab1Y4KzUrZXQwTFIweVlwNGw3WlMrUDYxR1NhMkJx?= =?utf-8?B?NHdYSzlRcFBaRkRYcmROZHBwenJSdVFZWTRBdlI5UVl2QzNYZEx3R09wYnlK?= =?utf-8?B?WENFRTZ2Mnlsa3pGZSt0bU5kdSt1OEgzOEdMdVZMbXFIdGlQN3R2czBkN1pn?= =?utf-8?B?YUQ0MGNkT08xeVhobVpUMWR1N3JqSERBWGF5RUpnbkdZdExLOFFqUW9MMWZu?= =?utf-8?B?clF5WGVnSThXVFVQeFZWL2U1cUtGZHN5SCtGU0dlWjMraDc1RzQvb0tTT2tF?= =?utf-8?B?ZlJmcHdzWks5RmkxYmR4QU9hQmp6c1B2cVdyV2srVCtlM3liVVpNOUZRN2M1?= =?utf-8?B?L3ZLRzhrVHVyY1J3Z014UGdiOU5MOHBxUGk0UktLL0poYTdEV1hjZkdQTVB1?= =?utf-8?B?empDUmNILzIvazZIV1NVTHArY2ViS1UvS1JQUWRZdEFBZnBkajhYNTVqY0hp?= =?utf-8?B?Wkh4LzRYTkFFR1MvYU9jQmZiNy9UMmM2VXJLR3VBUWk1Y1hLYUg0QkQ5T3dn?= =?utf-8?Q?IEcGzq7MitBnflZOH20yzWx1ogEWrGghD9zwcfg?= 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: 963be772-d364-401c-8986-08d953029183 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jul 2021 02:34:34.4668 (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: BPQ8kkjBtJQvxHvB/qBuOgHKn3h72pw97O/Ztk0Shboqj8a93o36SD+fOaXq1t60Wz6RcKaoqeocDAwbr+ILUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4918 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 VGhhbmtzLiBDb2RlIHRhbGtzIGJldHRlci4NCg0KSSBwcmVmZXIgb3B0aW9uIDIsIHdoaWNoIGlz IGEgZ2VuZXJpYyB3YXkgZm9yIGFic3RyYWN0aW9uLg0KDQpBbmQgeW91IG1heSBlbmFibGUgb3B0 aW9uIDEgdW5kZXIgdGhlIGNvdmVyIG9mIG9wdGlvbiAyLCBqdXN0IGNyZWF0ZSBhIGxpYiBpbnN0 YW5jZSB0byBnZXQgY29uZmlnIGZyb20gSG9iLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUYXlsb3IgQmVlYmUgPHRAdGF5 bG9yYmVlYmUuY29tPg0KPiBTZW50OiBGcmlkYXksIEp1bHkgMzAsIDIwMjEgMTA6MDcgQU0NCj4g VG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8amlh bi5qLndhbmdAaW50ZWwuY29tPjsNCj4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IHNwYnJv Z2FuQG91dGxvb2suY29tOyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJh eQ0KPiA8cmF5Lm5pQGludGVsLmNvbT47IEt1bWFyLCBSYWh1bDEgPHJhaHVsMS5rdW1hckBpbnRl bC5jb20+Ow0KPiBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tOyBXdSwgSGFvIEEgPGhhby5h Lnd1QGludGVsLmNvbT47IEJpLCBEYW5kYW4NCj4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyBnYW9s aW1pbmdAYnlvc29mdC5jb20uY247IERvbmcsIEd1bw0KPiA8Z3VvLmRvbmdAaW50ZWwuY29tPjsg TWEsIE1hdXJpY2UgPG1hdXJpY2UubWFAaW50ZWwuY29tPjsgWW91LCBCZW5qYW1pbg0KPiA8YmVu amFtaW4ueW91QGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtSRkNdIE1lbW9yeVByb3RlY3Rp b25MaWIgZm9yIER5bmFtaWMgTWVtb3J5IEd1YXJkIFNldHRpbmdzDQo+IA0KPiBPZiBjb3Vyc2Ug LSBoZXJlIGFyZSBhIGNvdXBsZSBvZiByb3VnaCBkcmFmdHM6DQo+IA0KPiBPcHRpb24gMTogaHR0 cHM6Ly9naXRodWIuY29tL1RheWxvckJlZWJlL2VkazIvdHJlZS9tZW1vcnlfcHJvdGVjdGlvbl9s aWJfMg0KPiBPcHRpb24gMjogaHR0cHM6Ly9naXRodWIuY29tL1RheWxvckJlZWJlL2VkazIvdHJl ZS9tZW1vcnlfcHJvdGVjdGlvbl9saWINCj4gDQo+IE9uIDcvMjkvMjAyMSA2OjU3IFBNLCBZYW8s IEppZXdlbiB3cm90ZToNCj4gPiBIaQ0KPiA+IFNvcnJ5LCBJIGFtIG5vdCBhYmxlIHRvIGZvbGxv dyB0aGUgZGlzY3Vzc2lvbi4NCj4gPg0KPiA+IElzIHRoZXJlIGFueSBzYW1wbGUgb3IgUE9DIGNv ZGUgdG8gc2hvdyB0aGUgY29uY2VwdD8NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+PiBGcm9tOiBUYXlsb3IgQmVlYmUgPHRAdGF5bG9yYmVlYmUuY29tPg0KPiA+PiBT ZW50OiBGcmlkYXksIEp1bHkgMzAsIDIwMjEgOTo1NSBBTQ0KPiA+PiBUbzogV2FuZywgSmlhbiBK IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+PiBDYzog c3Bicm9nYW5Ab3V0bG9vay5jb207IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBO aSwgUmF5DQo+ID4+IDxyYXkubmlAaW50ZWwuY29tPjsgS3VtYXIsIFJhaHVsMSA8cmFodWwxLmt1 bWFyQGludGVsLmNvbT47DQo+ID4+IG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb207IFd1LCBI YW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgQmksDQo+IERhbmRhbg0KPiA+PiA8ZGFuZGFuLmJp QGludGVsLmNvbT47IGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjsgRG9uZywgR3VvDQo+ID4+IDxn dW8uZG9uZ0BpbnRlbC5jb20+OyBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5jb20+OyBZ b3UsDQo+IEJlbmphbWluDQo+ID4+IDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPjsgWWFvLCBKaWV3 ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW1JGQ10gTWVtb3J5 UHJvdGVjdGlvbkxpYiBmb3IgRHluYW1pYyBNZW1vcnkgR3VhcmQgU2V0dGluZ3MNCj4gPj4NCj4g Pj4gVGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrLCBKaWFuLg0KPiA+Pg0KPiA+PiBJbiBvcHRpb24g MiwgYSBtb3N0IGJhc2ljIGltcGxlbWVudGF0aW9uIHdvdWxkIHJldHVybmluZyB0aGUgY3VycmVu dA0KPiA+PiBGaXhlZEF0QnVpbGQgUENEcyBhc3N1bWluZyB0aGV5IGFyZSBrZXB0LiBJZiB0aGV5 IGFyZW4ndCwgdGhlIGxpYnJhcnkNCj4gPj4gaW1wbGVtZW50ZXIgY291bGQgc2ltcGx5IGhhcmQt Y29kZSB0aGUgcmV0dXJuIHZhbHVlIGZvciBlYWNoIG1lbW9yeQ0KPiA+PiBwcm90ZWN0aW9uIHNl dHRpbmcuDQo+ID4+DQo+ID4+IEluIG9wdGlvbiAxLCB0aGUgSE9CIHdvdWxkIGJlIHB1Ymxpc2hl ZCBpbiBwcmUtbWVtIGFuZCBJJ20gbm90IGFuIGV4cGVydA0KPiA+PiBvbiBleHBsb2l0aW5nIHRo ZSBwcmUtbWVtIGVudmlyb25tZW50LiBKaWV3ZW4gbWF5IGhhdmUgbW9yZSB0byBzYXkgb24NCj4g dGhpcy4NCj4gPj4NCj4gPj4gLVRheWxvcg0KPiA+Pg0KPiA+PiBPbiA3LzI4LzIwMjEgNzoxOCBQ TSwgV2FuZywgSmlhbiBKIHdyb3RlOg0KPiA+Pj4gVGhhbmtzIGZvciB0aGUgUkZDLiBJJ20gbm90 IG9iamVjdCB0byB0aGlzIGlkZWEuIFRoZSBvbmx5IGNvbmNlcm4gZnJvbSBtZQ0KPiA+Pj4gaXMg dGhlIHBvdGVudGlhbCBzZWN1cml0eSBob2xlcyBpbnRyb2R1Y2VkIGJ5IHRoZSBjaGFuZ2VzLiBB Y2NvcmRpbmcgdG8geW91cg0KPiA+Pj4gZGVzY3JpcHRpb24sIGl0IGFsbG93cyAzcmQgcGFydHkg c29mdHdhcmUgdG8gdmlvbGF0ZSBtZW1vcnkgcHJvdGVjdGlvbg0KPiBwb2xpY3kuDQo+ID4+PiBJ J2QgbGlrZSB0byBzZWUgbW9yZSBleHBsYW5hdGlvbnMgb24gaG93IHRvIGF2b2lkIGl0IHRvIGJl IGV4cGxvaXRlZC4NCj4gPj4+DQo+ID4+PiArSmlld2VuLCB3aGF0J3MgY3VycmVudCBwcm9jZXNz IHRvIGV2YWx1YXRlIHRoZSBzZWN1cml0eSB0aHJlYXQ/DQo+ID4+Pg0KPiA+Pj4gUmVnYXJkcywN Cj4gPj4+IEppYW4NCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g Pj4+PiBGcm9tOiBUYXlsb3IgQmVlYmUgPHRAdGF5bG9yYmVlYmUuY29tPg0KPiA+Pj4+IFNlbnQ6 IEZyaWRheSwgSnVseSAyMywgMjAyMSA4OjMzIEFNDQo+ID4+Pj4gVG86IGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+ID4+Pj4gQ2M6IHNwYnJvZ2FuQG91dGxvb2suY29tOyBEb25nLCBFcmljIDxlcmlj LmRvbmdAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+Pj4+IDxyYXkubmlAaW50ZWwuY29tPjsgS3Vt YXIsIFJhaHVsMSA8UmFodWwxLkt1bWFyQGludGVsLmNvbT47DQo+ID4+Pj4gbWlrdWJhY2tAbGlu dXgubWljcm9zb2Z0LmNvbTsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+Ow0K PiBXdSwNCj4gPj4+PiBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgQmksIERhbmRhbiA8ZGFu ZGFuLmJpQGludGVsLmNvbT47DQo+ID4+Pj4gZ2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuOyBEb25n LCBHdW8gPGd1by5kb25nQGludGVsLmNvbT47IE1hLA0KPiA+PiBNYXVyaWNlDQo+ID4+Pj4gPG1h dXJpY2UubWFAaW50ZWwuY29tPjsgWW91LCBCZW5qYW1pbiA8YmVuamFtaW4ueW91QGludGVsLmNv bT4NCj4gPj4+PiBTdWJqZWN0OiBbUkZDXSBNZW1vcnlQcm90ZWN0aW9uTGliIGZvciBEeW5hbWlj IE1lbW9yeSBHdWFyZCBTZXR0aW5ncw0KPiA+Pj4+DQo+ID4+Pj4gQ3VycmVudCBtZW1vcnkgcHJv dGVjdGlvbiBzZXR0aW5ncyByZWx5IG9uIEZpeGVkQXRCdWlsZCBQQ0QgdmFsdWVzDQo+ID4+Pj4g KG1pbnVzIFBjZFNldE54Rm9yU3RhY2spLiBCZWNhdXNlIG9mIHRoaXMsIHRoZSBtZW1vcnkgcHJv dGVjdGlvbg0KPiA+Pj4+IGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIGZpeGVkIGluIG5hdHVy ZS4gQ2FzZXMgYXJpc2UgaW4gd2hpY2ggbWVtb3J5DQo+ID4+Pj4gcHJvdGVjdGlvbnMgbWlnaHQg bmVlZCB0byBiZSBhZGp1c3RlZCBiZXR3ZWVuIGJvb3RzIChpZiBwbGF0Zm9ybSBkZXNpZ24NCj4g Pj4+PiBhbGxvd3MpIHRvIGF2b2lkIGRpc2FibGluZyBhIHN5c3RlbS4gRm9yIGV4YW1wbGUsIHBs YXRmb3JtcyBtaWdodCBjaG9vc2UNCj4gPj4+PiB0byBhbGxvdyB0aGUgdXNlciB0byBjb250cm9s IHRoZWlyIHByb3RlY3Rpb24gcG9saWNpZXMgc3VjaCBhcyBhbGxvdw0KPiA+Pj4+IGV4ZWN1dGlv biBvZiBjcml0aWNhbCAzcmQgcGFydHkgc29mdHdhcmUgdGhhdCBtaWdodCB2aW9sYXRlIG1lbW9y eQ0KPiA+Pj4+IHByb3RlY3Rpb25zLg0KPiA+Pj4+DQo+ID4+Pj4gVGhpcyBSRkMgc2Vla3MgeW91 ciBmZWVkYmFjayByZWdhcmRpbmcgaW50cm9kdWNpbmcgYW4gaW50ZXJmYWNlIHRoYXQNCj4gPj4+ PiBhbGxvd3MgZHluYW1pYyBjb25maWd1cmF0aW9uIG9mIG1lbW9yeSBwcm90ZWN0aW9uIHNldHRp bmdzLg0KPiA+Pj4+DQo+ID4+Pj4gSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgdHdvIG9wdGlvbnM6 DQo+ID4+Pj4gMS4gRGVzY3JpYmluZyB0aGUgbWVtb3J5IHByb3RlY3Rpb24gc2V0dGluZyBjb25m aWd1cmF0aW9uIGluIGEgSE9CIHRoYXQNCj4gPj4+PiBpcyBwcm9kdWNlZCBieSB0aGUgcGxhdGZv cm0uDQo+ID4+Pj4gMi4gSW50cm9kdWNpbmcgYSBsaWJyYXJ5IGNsYXNzIChlLmcuIE1lbW9yeVBy b3RlY3Rpb25MaWIpIHRoYXQgYWxsb3dzDQo+ID4+Pj4gYWJzdHJhY3Rpb24gb2YgdGhlIG1lbW9y eSBwcm90ZWN0aW9uIHNldHRpbmcgY29uZmlndXJhdGlvbiBkYXRhIHNvdXJjZS4NCj4gPj4+Pg0K PiA+Pj4+IEluIGFkZGl0aW9uLCBJIHdvdWxkIGxpa2UgdG8ga25vdyBpZiB0aGUgbWVtb3J5IHBy b3RlY3Rpb24gRml4ZWRBdEJ1aWxkDQo+ID4+Pj4gUENEcyBjdXJyZW50bHkgaW4gTWRlTW9kdWxl UGtnIGNhbiBiZSByZW1vdmVkIHNvIHdlIGNhbiBtb3ZlIHRoZQ0KPiA+Pj4+IGNvbmZpZ3VyYXRp b24gaW50ZXJmYWNlIGVudGlyZWx5IHRvIGFuIG9wdGlvbiBhYm92ZS4NCj4gPj4+Pg0KPiA+Pj4+ IEluIGFueSBjYXNlLCBJIHdvdWxkIGxpa2UgdGhlIHNldHRpbmdzIHRvIGJlIHZpc2libGUgdG8g ZW52aXJvbm1lbnRzDQo+ID4+Pj4gc3VjaCBhcyBTdGFuZGFsb25lIE1NIHdoZXJlIGR5bmFtaWMg UENEcyBhcmUgbm90IGFjY2Vzc2libGUuDQo+ID4+Pj4NCj4gPj4+PiBJIGFtIHNlZWtpbmcgeW91 ciBmZWVkYmFjayBvbiB0aGlzIHByb3Bvc2FsIGluIHByZXBhcmF0aW9uIGZvciBzZW5kaW5nDQo+ ID4+Pj4gYW4gZWRrMiBwYXRjaCBzZXJpZXMuDQo+ID4+Pj4NCj4gPj4+PiAtLQ0KPiA+Pj4+IFRh eWxvciBCZWViZQ0KPiA+Pj4+IFNvZnR3YXJlIEVuZ2luZWVyIEAgTWljcm9zb2Z0DQo+ID4+DQo+ ID4+IC0tDQo+ID4+IFRheWxvciBCZWViZQ0KPiA+PiBTb2Z0d2FyZSBFbmdpbmVlciBAIE1pY3Jv c29mdA0KPiANCj4gLS0NCj4gVGF5bG9yIEJlZWJlDQo+IFNvZnR3YXJlIEVuZ2luZWVyIEAgTWlj cm9zb2Z0DQo=