From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.126; helo=mga18.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (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 413B9211ADA52 for ; Mon, 14 Jan 2019 07:33:11 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Jan 2019 07:33:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,478,1539673200"; d="scan'208";a="138148061" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga001.fm.intel.com with ESMTP; 14 Jan 2019 07:33:10 -0800 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 14 Jan 2019 07:33:10 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 14 Jan 2019 07:33:09 -0800 Received: from shsmsx152.ccr.corp.intel.com ([169.254.6.44]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.160]) with mapi id 14.03.0415.000; Mon, 14 Jan 2019 23:33:07 +0800 From: "Gao, Liming" To: Ard Biesheuvel CC: "edk2-devel@lists.01.org" , Laszlo Ersek , Leif Lindholm , "Kinney, Michael D" , "Wang, Jian J" , "Wu, Hao A" , Jagadeesh Ujja , Achin Gupta , "Thomas Panakamattam Abraham" , Sami Mujawar Thread-Topic: [PATCH 0/6] implement standalone MM versions of the variable runtime drivers Thread-Index: AQHUo5IuycxdS62t7UiJBpaDv7s2bKWjwJhg//+FkoCAA7XesP//lw4AgAeNuPD//9e+AAAfhJXw Date: Mon, 14 Jan 2019 15:33:07 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E3B1862@SHSMSX152.ccr.corp.intel.com> References: <20190103182825.32231-1-ard.biesheuvel@linaro.org> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3AD13F@SHSMSX152.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3AE768@SHSMSX152.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3B0F9E@SHSMSX152.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiODgzMGM5MTctZTdhZi00OTQ3LThiODgtMGJmMGIxMjc1ZjIzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVmlFWitKK3pMczl3R0lHRzFQYnE4WlhVYlwvb0RsZ0Rjcno3cDFTRzFXcDZzNk5FdnhKb3VJRWRoeUk0RGxnTUkifQ== 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 0/6] implement standalone MM versions of the variable runtime drivers 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, 14 Jan 2019 15:33:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QXJkOg0KICBHb3QgaXQuIEkgd2lsbCB1cGRhdGUgb3VyIGludGVybmFsIHBsYXRmb3JtIGRzYyB0 byBpbmNsdWRlIG5ldyBNbVNlcnZpY2VzVGFibGVMaWIgbGlicmFyeS4NCg0KICBCZXNpZGVzLCB3 aWxsIHlvdSBzZW5kIHRoZSBwYXRjaCB0byB1cGRhdGUgcGxhdGZvcm0gRFNDIGZpbGVzIGluIGVk azItcGxhdGZvcm1zPyBJZiB5ZXMsIHBsZWFzZSB1cGRhdGUgRFNDcyBpbiBodHRwczovL2dpdGh1 Yi5jb20vdGlhbm9jb3JlL2VkazItcGxhdGZvcm1zL3RyZWUvZGV2ZWwtTWluUGxhdGZvcm0uIFRo ZXkgYm90aCBkZXBlbmQgb24gZWRrMiBtYXN0ZXIuIA0KDQpUaGFua3MNCkxpbWluZw0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBcmQgQmllc2hldXZlbCBbbWFpbHRvOmFy ZC5iaWVzaGV1dmVsQGxpbmFyby5vcmddDQo+IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAxNCwgMjAx OSA0OjI3IFBNDQo+IFRvOiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+IENj OiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNv bT47IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IEtpbm5leSwgTWlj aGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8amlh bi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBKYWdh ZGVlc2ggVWpqYQ0KPiA8amFnYWRlZXNoLnVqamFAYXJtLmNvbT47IEFjaGluIEd1cHRhIDxBY2hp bi5HdXB0YUBhcm0uY29tPjsgVGhvbWFzIFBhbmFrYW1hdHRhbSBBYnJhaGFtIDx0aG9tYXMuYWJy YWhhbUBhcm0uY29tPjsNCj4gU2FtaSBNdWphd2FyIDxTYW1pLk11amF3YXJAYXJtLmNvbT4NCj4g U3ViamVjdDogUmU6IFtQQVRDSCAwLzZdIGltcGxlbWVudCBzdGFuZGFsb25lIE1NIHZlcnNpb25z IG9mIHRoZSB2YXJpYWJsZSBydW50aW1lIGRyaXZlcnMNCj4gDQo+IE9uIE1vbiwgMTQgSmFuIDIw MTkgYXQgMDM6NTUsIEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4gd3JvdGU6DQo+ ID4NCj4gPiBBcmQ6DQo+ID4gICBJIGRvbid0IGZpbmQgdGhlIGZ1bmN0aW9uIGlzc3VlIGluIHRo aXMgcGF0Y2guIEkgaGF2ZSBubyBvdGhlciBjb21tZW50cyBmb3IgdGhlIGNoYW5nZSBpbiBNZGVQ a2cuIFJldmlld2VkLWJ5OiBMaW1pbmcgR2FvDQo+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4uIEZv ciB0aGlzIHBhdGNoIHNldCwgaWYgeW91IHB1c2ggdGhlIGNoYW5nZSwgcGxlYXNlIHB1c2ggdGhl IHBhdGNoZXMgaW4gTWRlUGtnIGZpcnN0LCBhbmQgdGVsbCBtZSB0aGUgcmV2aXNpb24uIEkNCj4g d2lsbCB1cGRhdGUgb3VyIGludGVybmFsIHBsYXRmb3JtIERTQyB0byBpbmNsdWRlIG5ldyBNbVNl cnZpY2VzVGFibGVMaWIgbGlicmFyeSBpbnN0YW5jZS4gQWZ0ZXIgSSBhbSBkb25lLCBJIHdpbGwg bGV0IHlvdSBrbm93LiBUaGVuLA0KPiB5b3UgY2FuIGNvbnRpbnVlIHRvIHB1c2ggdGhlIGNoYW5n ZSBpbiBNZGVNb2R1bGVQa2cuIElzIGl0IE9LPw0KPiA+DQo+IA0KPiBZZXMsIHRoYXQgaXMgZmlu ZS4gSSB3aWxsIG5lZWQgdG8gcmVzcGluIHRoZSByZW1haW5pbmcgcGF0Y2hlcyBhbnl3YXkuDQo+ IA0KPiBJIGhhdmUgcHVzaGVkIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcw0KPiANCj4gYjk0YWVjYjRl Yzk0IE1kZVBrZy9JbmNsdWRlOiBhZGQgTW1TZXJ2aWNlc1RhYmxlTGliIGhlYWRlciBmaWxlDQo+ IDE3ZjVmZDkyOTFlMCBNZGVQa2c6IGltcGxlbWVudCBNbVNlcnZpY2VzVGFibGVMaWIgYmFzZWQg b24gdHJhZGl0aW9uYWwgU01NDQo+IA0KPiB3aXRoIFN0YXIncyBhbmQgSmlhbidzIGZlZWRiYWNr IGFkZHJlc3NlZCwgYW5kIHlvdXIgUi1iJ3MgYWRkZWQuDQo+IA0KPiANCj4gPiAgIEkgc2VlIHlv dSB3aWxsIGNvbnRpbnVlIHRvIGxvb2sgYWRkIE1tU3RhbmRhbG9uZUVudHJ5UG9pbnRMaWIgYW5k IE1tU2VydmljZUxpYiBmb3IgTW1TdGFuZGFsb25lIGRyaXZlci4gWW91IGNhbiBjcmVhdGUNCj4g YW5vdGhlciBCWiBmb3IgaXQuIEkgd2lsbCByZXZpZXcgdGhlbSBvbmNlIHlvdSBhcmUgZG9uZS4N Cj4gPg0KPiANCj4gT0suDQo+IA0KPiA+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ ID5Gcm9tOiBBcmQgQmllc2hldXZlbCBbbWFpbHRvOmFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmdd DQo+ID4gPlNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAwOSwgMjAxOSAxMTozMCBQTQ0KPiA+ID5U bzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiA+ID5DYzogZWRrMi1kZXZl bEBsaXN0cy4wMS5vcmc7IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBMZWlmIExp bmRob2xtDQo+ID4gPjxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+OyBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+ID5XYW5nLCBKaWFuIEogPGppYW4u ai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsNCj4gPiA+ SmFnYWRlZXNoIFVqamEgPGphZ2FkZWVzaC51amphQGFybS5jb20+OyBBY2hpbiBHdXB0YQ0KPiA+ ID48QWNoaW4uR3VwdGFAYXJtLmNvbT47IFRob21hcyBQYW5ha2FtYXR0YW0gQWJyYWhhbQ0KPiA+ ID48dGhvbWFzLmFicmFoYW1AYXJtLmNvbT47IFNhbWkgTXVqYXdhciA8U2FtaS5NdWphd2FyQGFy bS5jb20+DQo+ID4gPlN1YmplY3Q6IFJlOiBbUEFUQ0ggMC82XSBpbXBsZW1lbnQgc3RhbmRhbG9u ZSBNTSB2ZXJzaW9ucyBvZiB0aGUgdmFyaWFibGUNCj4gPiA+cnVudGltZSBkcml2ZXJzDQo+ID4g Pg0KPiA+ID5PbiBXZWQsIDkgSmFuIDIwMTkgYXQgMTQ6NTYsIEdhbywgTGltaW5nIDxsaW1pbmcu Z2FvQGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPj4NCj4gPiA+PiBBcmQ6DQo+ID4gPj4gICBOb3cs IHRoZSBpbXBhY3QgaXMgdG8gdXBkYXRlIHBsYXRmb3JtIERTQyB0byBpbmNsdWRlIE1tU2Vydmlj ZXNUYWJsZUxpYg0KPiA+ID5saWJyYXJ5IGluc3RhbmNlLiBUaGlzIGNoYW5nZSBpcyBhY2NlcHRh YmxlIGZvciBtZS4gSSBzdWdnZXN0IHlvdXIgY3JlYXRlIG9uZSBCWg0KPiA+ID5mb3IgdGhpcyBw YXRjaCBzZXQuDQo+ID4gPg0KPiA+ID5odHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hv d19idWcuY2dpP2lkPTE0NDINCj4gPiA+DQo+ID4gPj4gICBCZXNpZGVzLCBJIGNhbid0IGFwcGx5 IGZvciB0aGVzZSBwYXRjaGVzIGluIG15IG1hY2hpbmUuIENvdWxkIHlvdSBzaGFyZSBnaXQNCj4g PiA+YnJhbmNoIHRvIG1lPyBUaGVuLCBJIGNhbiBmdXJ0aGVyIHZlcmlmeSBpdHMgZnVuY3Rpb25h bGl0eSBvbiBTTU0gbW9kZS4NCj4gPiA+Pg0KPiA+ID4NCj4gPiA+aHR0cHM6Ly9naXRodWIuY29t L2FyZGJpZXNoZXV2ZWwvZWRrMi90cmVlL3ZhcmlhYmxlLWZ0dy1zdGFuZGFsb25lLW1tLQ0KPiA+ ID5jb252ZXJzaW9uDQo+ID4gPg0KPiA+ID5Ob3RlIHRoYXQgSSBpbmNsdWRlZCB0aGUgY2hhbmdl cyB0byBhZGQgdGhlIE1tU2VydmljZXNUYWJsZUxpYg0KPiA+ID5yZXNvbHV0aW9uIHRvIGNvbnN1 bWVycyBvZiB0aGUgRlRXIGFuZCB2YXJpYWJsZSBkcml2ZXJzLg0KPiA+ID4NCj4gPiA+VGhhbmtz LA0KPiA+ID5BcmQuDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPj4gVGhhbmtzDQo+ID4gPj4g TGltaW5nDQo+ID4gPj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+ID4gRnJv bTogQXJkIEJpZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiA+ ID4+ID4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDcsIDIwMTkgOTowNiBQTQ0KPiA+ID4+ID4gVG86 IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiA+PiA+IENjOiBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IExlaWYN Cj4gPiA+TGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IEtpbm5leSwgTWljaGFl bCBEDQo+ID4gPj4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEog PGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LA0KPiA+ID5IYW8gQSA8aGFvLmEud3VAaW50ZWwu Y29tPjsgSmFnYWRlZXNoIFVqamENCj4gPiA+PiA+IDxqYWdhZGVlc2gudWpqYUBhcm0uY29tPjsg QWNoaW4gR3VwdGEgPEFjaGluLkd1cHRhQGFybS5jb20+Ow0KPiA+ID5UaG9tYXMgUGFuYWthbWF0 dGFtIEFicmFoYW0gPHRob21hcy5hYnJhaGFtQGFybS5jb20+Ow0KPiA+ID4+ID4gU2FtaSBNdWph d2FyIDxTYW1pLk11amF3YXJAYXJtLmNvbT4NCj4gPiA+PiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg MC82XSBpbXBsZW1lbnQgc3RhbmRhbG9uZSBNTSB2ZXJzaW9ucyBvZiB0aGUNCj4gPiA+dmFyaWFi bGUgcnVudGltZSBkcml2ZXJzDQo+ID4gPj4gPg0KPiA+ID4+ID4gT24gTW9uLCA3IEphbiAyMDE5 IGF0IDEzOjQ0LCBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+IHdyb3RlOg0KPiA+ ID4+ID4gPg0KPiA+ID4+ID4gPiBBcmQ6DQo+ID4gPj4gPiA+ICAgSSBhZ3JlZSB0aGlzIGRlc2ln biBpcyBnb29kLiBCdXQsIEkgbmVlZCBzb21lIHRpbWUgdG8gZXZhbHVhdGUgaXRzIGltcGFjdA0K PiA+ID5vbiBvdXIgWDg2IHBsYXRmb3JtLiBDb3VsZCB5b3Ugd2FpdCBmb3Igc2V2ZXJhbCBkYXlz Pw0KPiA+ID4+ID4gPg0KPiA+ID4+ID4NCj4gPiA+PiA+IE9mIGNvdXJzZS4NCj4gPiA+PiA+DQo+ ID4gPj4gPiBUaGFua3MsDQo+ID4gPj4gPg0KPiA+ID4+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPj4gPiA+ID4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgW21haWx0bzphcmQu Ymllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiA+ID4+ID4gPiA+IFNlbnQ6IEZyaWRheSwgSmFudWFy eSA0LCAyMDE5IDI6MjggQU0NCj4gPiA+PiA+ID4gPiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmcNCj4gPiA+PiA+ID4gPiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFy by5vcmc+OyBMYXN6bG8gRXJzZWsNCj4gPiA+PGxlcnNla0ByZWRoYXQuY29tPjsgTGVpZiBMaW5k aG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPjsNCj4gPiA+PiA+IEtpbm5leSwNCj4gPiA+ PiA+ID4gPiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1p bmcNCj4gPiA+PGxpbWluZy5nYW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2Fu Z0BpbnRlbC5jb20+OyBXdSwgSGFvIEENCj4gPiA+PiA+ID4gPiA8aGFvLmEud3VAaW50ZWwuY29t PjsgSmFnYWRlZXNoIFVqamEgPGphZ2FkZWVzaC51amphQGFybS5jb20+Ow0KPiA+ID5BY2hpbiBH dXB0YSA8QWNoaW4uR3VwdGFAYXJtLmNvbT47IFRob21hcyBQYW5ha2FtYXR0YW0NCj4gPiA+PiA+ ID4gPiBBYnJhaGFtIDx0aG9tYXMuYWJyYWhhbUBhcm0uY29tPjsgU2FtaSBNdWphd2FyDQo+ID4g PjxTYW1pLk11amF3YXJAYXJtLmNvbT4NCj4gPiA+PiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggMC82 XSBpbXBsZW1lbnQgc3RhbmRhbG9uZSBNTSB2ZXJzaW9ucyBvZiB0aGUNCj4gPiA+dmFyaWFibGUg cnVudGltZSBkcml2ZXJzDQo+ID4gPj4gPiA+ID4NCj4gPiA+PiA+ID4gPiBUaGlzIHNlcmllcyBw cm9wb3NlZCBhbiBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byB0aGUgc2VyaWVzIHNlbnQgb3V0IGJ5 DQo+ID4gPj4gPiA+ID4gSmFnYWRlZXNoIFswXS4gSW4gcGFydGljdWxhciwgaXQgZ2V0cyByaWQg b2YgdGhlIEluTW0oKSBjYWxscyBhbmQgdGhlDQo+ID4gPj4gPiA+ID4gc3BlY2lhbCBQQ0QsIGFz IHdlbGwgYXMgc29tZSBvdGhlciBpZigpIGNvbmRpdGlvbmFscy4NCj4gPiA+PiA+ID4gPg0KPiA+ ID4+ID4gPiA+IFRoZSBwcmltYXJ5IGRpZmZlcmVuY2UgaXMgdGhhdCB0aGlzIHNlcmllcyBkZWZp bmVzIGFuZCBpbXBsZW1lbnRzDQo+ID4gPj4gPiA+ID4gTW1TZXJ2aWNlc1RhYmxlTGliIGluIHN1 Y2ggYSB3YXkgdGhhdCB0aGUgdHJhZGl0aW9uYWwgU01NIGRyaXZlcnMNCj4gPiA+PiA+ID4gPiBj YW4gdXNlIGl0IGFzIHdlbGwuIFRoaXMgaXMgYXBwcm9wcmlhdGUsIGNvbnNpZGVyaW5nIHRoYXQg dGhlIFBJDQo+ID4gPj4gPiA+ID4gc3BlYyBoYXMgcmVicmFuZGVkIHRyYWRpdGlvbmFsIFNNTSBh cyBvbmUgaW1wbGVtZW50YXRpb24gb2YgdGhlDQo+ID4gPmdlbmVyaWMNCj4gPiA+PiA+ID4gPiBN TSBmcmFtZXdvcmsuDQo+ID4gPj4gPiA+ID4NCj4gPiA+PiA+ID4gPiBQYXRjaCAjMSBpcyBiYXNl ZCBvbiBKYWdhZGVlc2gncyBwYXRjaCwgYW5kIGludHJvZHVjZXMgdGhlDQo+ID4gPk1tU2Vydmlj ZXNUYWJsZUxpYg0KPiA+ID4+ID4gPiA+IGxpYnJhcnkgY2xhc3MsIGJ1dCBmb3IgYWxsIFNNTSBm bGF2b3Vycywgbm90IG9ubHkgZm9yIHN0YW5kYWxvbmUgTU0uDQo+ID4gPj4gPiA+ID4NCj4gPiA+ PiA+ID4gPiBQYXRjaCAjMiBpbXBsZW1lbnRzIE1tU2VydmljZXNUYWJsZUxpYiBmb3IgdHJhZGl0 aW9uYWwgU01NDQo+ID4gPmltcGxlbWVudGF0aW9ucy4NCj4gPiA+PiA+ID4gPg0KPiA+ID4+ID4g PiA+IFBhdGNoICMzIHJlZmFjdG9ycyBGYXVsdFRvbGVyYW50V3JpdGVEeGUgc28gdGhhdCB0aGUg cGFydHMgb2YgdGhlIFNNTQ0KPiA+ID4+ID4gPiA+IGRyaXZlciB0aGF0IGludm9rZSBib290IHNl cnZpY2VzIGFyZSBzZXBhcmF0ZWQgZnJvbSB0aGUgY29yZSBTTU0NCj4gPiA+cGllY2VzLg0KPiA+ ID4+ID4gPiA+DQo+ID4gPj4gPiA+ID4gUGF0Y2ggIzQgaW1wbGVtZW50cyBGYXVsdFRvbGVyYW50 V3JpdGVTbW0gZm9yIHRoZSBzdGFuZGFsb25lIE1NDQo+ID4gPmVudmlyb25tZW50Lg0KPiA+ID4+ ID4gPiA+DQo+ID4gPj4gPiA+ID4gUGF0Y2hlcyAjNSBhbmQgIzYgZG8gdGhlIHNhbWUsIHJlc3Bl Y3RpdmVseSwgZm9yIHRoZSB2YXJpYWJsZSBydW50aW1lDQo+ID4gPmRyaXZlci4NCj4gPiA+PiA+ ID4gPg0KPiA+ID4+ID4gPiA+IFRoaXMgYXBwcm9hY2ggbWluaW1pemVzIHRoZSBkZWx0YSwgYW5k IHRodXMgdGhlIG1haW50ZW5hbmNlIGJ1cmRlbiwNCj4gPiA+YmV0d2Vlbg0KPiA+ID4+ID4gPiA+ IHRoZSB0cmFkaXRpb25hbCBTTU0gYW5kIHN0YW5kYWxvbmUgTU0gZHJpdmVycywgd2hpbGUgbm90 IHJlc29ydGluZyB0bw0KPiA+ID5ydW50aW1lDQo+ID4gPj4gPiA+ID4gY2hlY2tzIG9yIG90aGVy IGNvbmRpdGlvbmFscyBpbiB0aGUgY29kZSB0byBpbXBsZW1lbnQgbG9naWMgdGhhdCBzaG91bGQN Cj4gPiA+YmUNCj4gPiA+PiA+ID4gPiBkZWNpZGVkIGF0IGJ1aWxkIHRpbWUuDQo+ID4gPj4gPiA+ ID4NCj4gPiA+PiA+ID4gPiBOb3RlIHRoYXQgdGhpcyBzZXJpZXMgb25seSBjb3ZlcnMgcGFydCBv ZiB0aGUgd29yayBjb250cmlidXRlZCBieQ0KPiA+ID5KYWdhZGVlc2guDQo+ID4gPj4gPiA+ID4g VGhpcyBzZXJpZXMgZm9jdXNlcyBvbiB0aGUgTWRlUGtnIGFuZCBNZGVNb2R1bGVQa2cgY2hhbmdl cyB0aGF0DQo+ID4gPmFmZmVjdCBzaGFyZWQNCj4gPiA+PiA+ID4gPiBjb2RlLg0KPiA+ID4+ID4g PiA+DQo+ID4gPj4gPiA+ID4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ ID4gPj4gPiA+ID4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4N Cj4gPiA+PiA+ID4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+DQo+ID4gPj4gPiA+ID4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwuY29t Pg0KPiA+ID4+ID4gPiA+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0K PiA+ID4+ID4gPiA+IENjOiBIYW8gV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPiA+PiA+ID4g PiBDYzogSmFnYWRlZXNoIFVqamEgPGphZ2FkZWVzaC51amphQGFybS5jb20+DQo+ID4gPj4gPiA+ ID4gQ2M6IEFjaGluIEd1cHRhIDxBY2hpbi5HdXB0YUBhcm0uY29tPg0KPiA+ID4+ID4gPiA+IENj OiBUaG9tYXMgUGFuYWthbWF0dGFtIEFicmFoYW0gPHRob21hcy5hYnJhaGFtQGFybS5jb20+DQo+ ID4gPj4gPiA+ID4gQ2M6IFNhbWkgTXVqYXdhciA8U2FtaS5NdWphd2FyQGFybS5jb20+DQo+ID4g Pj4gPiA+ID4NCj4gPiA+PiA+ID4gPiBBcmQgQmllc2hldXZlbCAoNSk6DQo+ID4gPj4gPiA+ID4g ICBNZGVQa2c6IGltcGxlbWVudCBNbVNlcnZpY2VzVGFibGVMaWIgYmFzZWQgb24gdHJhZGl0aW9u YWwgU01NDQo+ID4gPj4gPiA+ID4gICBNZGVNb2R1bGVQa2cvRmF1bHRUb2xlcmFudFdyaXRlRHhl OiBmYWN0b3Igb3V0IGJvb3Qgc2VydmljZQ0KPiA+ID5hY2Nlc3Nlcw0KPiA+ID4+ID4gPiA+ICAg TWRlTW9kdWxlUGtnL0ZhdWx0VG9sZXJhbnRXcml0ZUR4ZTogaW1wbGVtZW50IHN0YW5kYWxvbmUg TU0NCj4gPiA+dmVyc2lvbg0KPiA+ID4+ID4gPiA+ICAgTWRlTW9kdWxlUGtnL1ZhcmlhYmxlUnVu dGltZUR4ZTogZmFjdG9yIG91dCBib290IHNlcnZpY2UNCj4gPiA+YWNjZXNzZXMNCj4gPiA+PiA+ ID4gPiAgIE1kZU1vZHVsZVBrZy9WYXJpYWJsZVJ1bnRpbWVEeGU6IGltcGxlbWVudCBzdGFuZGFs b25lIE1NDQo+ID4gPnZlcnNpb24NCj4gPiA+PiA+ID4gPg0KPiA+ID4+ID4gPiA+IEphZ2FkZWVz aCBVamphICgxKToNCj4gPiA+PiA+ID4gPiAgIE1kZVBrZy9JbmNsdWRlOiBhZGQgTW1TZXJ2aWNl c1RhYmxlTGliIGhlYWRlciBmaWxlDQo+ID4gPj4gPiA+ID4NCj4gPiA+PiA+ID4gPiAgTWRlTW9k dWxlUGtnL01kZU1vZHVsZVBrZy5kc2MgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gPiA+PiA+ ID4gPiAgLi4uL0ZhdWx0VG9sZXJhbnRXcml0ZS5oICAgICAgICAgICAgICAgICAgICAgIHwgIDIy ICsrLQ0KPiA+ID4+ID4gPiA+ICAuLi4vRmF1bHRUb2xlcmFudFdyaXRlRHhlLmMgICAgICAgICAg ICAgICAgICAgfCAgMzEgKysrKw0KPiA+ID4+ID4gPiA+ICAuLi4vRmF1bHRUb2xlcmFudFdyaXRl U21tLmMgICAgICAgICAgICAgICAgICAgfCAgNTQgKysrLS0tLQ0KPiA+ID4+ID4gPiA+ICAuLi4v RmF1bHRUb2xlcmFudFdyaXRlU21tLmluZiAgICAgICAgICAgICAgICAgfCAgIDUgKy0NCj4gPiA+ PiA+ID4gPiAgLi4uL0ZhdWx0VG9sZXJhbnRXcml0ZVNtbUNvbW1vbi5oICAgICAgICAgICAgIHwg IDMxICsrKysNCj4gPiA+PiA+ID4gPiAgLi4uL0ZhdWx0VG9sZXJhbnRXcml0ZVNtbUR4ZS5jICAg ICAgICAgICAgICAgIHwgICAxICsNCj4gPiA+PiA+ID4gPiAgLi4uL0ZhdWx0VG9sZXJhbnRXcml0 ZVN0YW5kYWxvbmVNbS5jICAgICAgICAgIHwgIDcwICsrKysrKysrKw0KPiA+ID4+ID4gPiA+ICAu Li4vRmF1bHRUb2xlcmFudFdyaXRlU3RhbmRhbG9uZU1tLmluZiAgICAgICAgfCAgOTAgKysrKysr KysrKysrDQo+ID4gPj4gPiA+ID4gIC4uLi9GYXVsdFRvbGVyYW50V3JpdGVUcmFkaXRpb25hbE1t LmMgICAgICAgICB8ICA5NCArKysrKysrKysrKysNCj4gPiA+PiA+ID4gPiAgLi4uL1VwZGF0ZVdv cmtpbmdCbG9jay5jICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstDQo+ID4gPj4gPiA+ID4g IC4uLi9WYXJpYWJsZS9SdW50aW1lRHhlL1RjZ01vckxvY2tTbW0uYyAgICAgICB8ICAxOCArLS0N Cj4gPiA+PiA+ID4gPiAgLi4uL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxl LmggIHwgIDUwICsrKysrKysNCj4gPiA+PiA+ID4gPiAgLi4uL1ZhcmlhYmxlL1J1bnRpbWVEeGUv VmFyaWFibGVTbW0uYyAgICAgICAgIHwgIDU5ICsrKy0tLS0tDQo+ID4gPj4gPiA+ID4gIC4uLi9W YXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmluZiAgICAgICB8ICAgNSArLQ0KPiA+ID4+ ID4gPiA+ICAuLi4vUnVudGltZUR4ZS9WYXJpYWJsZVN0YW5kYWxvbmVNbS5jICAgICAgICAgfCAg NjkgKysrKysrKysrDQo+ID4gPj4gPiA+ID4gIC4uLi9SdW50aW1lRHhlL1ZhcmlhYmxlU3RhbmRh bG9uZU1tLmluZiAgICAgICB8IDEzNQ0KPiA+ID4rKysrKysrKysrKysrKysrKysNCj4gPiA+PiA+ ID4gPiAgLi4uL1J1bnRpbWVEeGUvVmFyaWFibGVUcmFkaXRpb25hbE1tLmMgICAgICAgIHwgMTE0 ICsrKysrKysrKysrKysrKw0KPiA+ID4+ID4gPiA+ICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L01t U2VydmljZXNUYWJsZUxpYi5oICAgfCAgMjUgKysrKw0KPiA+ID4+ID4gPiA+ICAuLi4vTW1TZXJ2 aWNlc1RhYmxlTGliL01tU2VydmljZXNUYWJsZUxpYi5jICAgfCAgNjMgKysrKysrKysNCj4gPiA+ PiA+ID4gPiAgLi4uL01tU2VydmljZXNUYWJsZUxpYi9NbVNlcnZpY2VzVGFibGVMaWIuaW5mIHwg IDQ1ICsrKysrKw0KPiA+ID4+ID4gPiA+ICAuLi4vTW1TZXJ2aWNlc1RhYmxlTGliL01tU2Vydmlj ZXNUYWJsZUxpYi51bmkgfCAgMjIgKysrDQo+ID4gPj4gPiA+ID4gIE1kZVBrZy9NZGVQa2cuZGVj ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArDQo+ID4gPj4gPiA+ID4gIE1kZVBr Zy9NZGVQa2cuZHNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gPj4g PiA+ID4gIDI0IGZpbGVzIGNoYW5nZWQsIDkxNiBpbnNlcnRpb25zKCspLCAxMDMgZGVsZXRpb25z KC0pDQo+ID4gPj4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID5NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL0ZhdWx0VG9sZXJhbnRXcml0ZUR4ZS9GYXVsdFRvbGVyYW50V3JpdGVTdGFuZGFs DQo+ID4gPm9uZU1tLmMNCj4gPiA+PiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPk1k ZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRmF1bHRUb2xlcmFudFdyaXRlRHhlL0ZhdWx0VG9sZXJhbnRX cml0ZVN0YW5kYWwNCj4gPiA+b25lTW0uaW5mDQo+ID4gPj4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEw MDY0NA0KPiA+ID5NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0ZhdWx0VG9sZXJhbnRXcml0ZUR4ZS9G YXVsdFRvbGVyYW50V3JpdGVUcmFkaXRpbw0KPiA+ID5uYWxNbS5jDQo+ID4gPj4gPiA+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID5NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1 bnRpbWVEeGUvVmFyaWFibGVTdGFuZGFsb25lTW0uYw0KPiA+ID4+ID4gPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQNCj4gPiA+TWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhl L1ZhcmlhYmxlU3RhbmRhbG9uZU1tLmluZg0KPiA+ID4+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2 NDQNCj4gPiA+TWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1Zhcmlh YmxlVHJhZGl0aW9uYWxNbS5jDQo+ID4gPj4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBNZGVQ a2cvSW5jbHVkZS9MaWJyYXJ5L01tU2VydmljZXNUYWJsZUxpYi5oDQo+ID4gPj4gPiA+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID5NZGVQa2cvTGlicmFyeS9NbVNlcnZpY2VzVGFibGVMaWIv TW1TZXJ2aWNlc1RhYmxlTGliLmMNCj4gPiA+PiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ ID4gPk1kZVBrZy9MaWJyYXJ5L01tU2VydmljZXNUYWJsZUxpYi9NbVNlcnZpY2VzVGFibGVMaWIu aW5mDQo+ID4gPj4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID5NZGVQa2cvTGlicmFy eS9NbVNlcnZpY2VzVGFibGVMaWIvTW1TZXJ2aWNlc1RhYmxlTGliLnVuaQ0KPiA+ID4+ID4gPiA+ DQo+ID4gPj4gPiA+ID4gLS0NCj4gPiA+PiA+ID4gPiAyLjE3LjENCj4gPiA+PiA+ID4NCg==