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.43; helo=mga05.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 6168C211B509C for ; Fri, 18 Jan 2019 07:49:51 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jan 2019 07:49:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,491,1539673200"; d="scan'208";a="115708467" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga007.fm.intel.com with ESMTP; 18 Jan 2019 07:49:50 -0800 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 18 Jan 2019 07:49:50 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 18 Jan 2019 07:49:50 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.63]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.196]) with mapi id 14.03.0415.000; Fri, 18 Jan 2019 23:49:48 +0800 From: "Yao, Jiewen" To: Ard Biesheuvel , "Kinney, Michael D" CC: "edk2-devel@lists.01.org" , Achin Gupta , Supreeth Venkatesh , "Leif Lindholm" , Jagadeesh Ujja , Thomas Panakamattam Abraham , Sami Mujawar Thread-Topic: [PATCH v2 11/11] StandaloneMmPkg/Core: permit encapsulated firmware volumes Thread-Index: AQHUrdlHVvVOtZOhxEmaMUmqXf9RkaW1LBtA//96wYCAAIaFoA== Date: Fri, 18 Jan 2019 15:49:47 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503F4B1B01@shsmsx102.ccr.corp.intel.com> References: <20190116202236.6977-1-ard.biesheuvel@linaro.org> <20190116202236.6977-12-ard.biesheuvel@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503F4B1A3C@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjhjZTIzYmItNmQwMy00ZjliLThlZjAtYWQzZDMzNTU2NTExIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiWVZwaEhQV2FBY0Y1U1hMVklXMzFZSmlkQTMrTVh1TUJiVzFYT2FuZk9xOGtJUUVRRTQrcE5LTnpqK1wvUGdcLzJCIn0= 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 v2 11/11] StandaloneMmPkg/Core: permit encapsulated firmware volumes 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: Fri, 18 Jan 2019 15:49:51 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIE1pa2UgS2lubmV5Lg0KDQpIaSBNaWtlDQpEbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlvbiBv biBob3cgdG8gaW1wbGVtZW50IHRoaXMgaW4gYSBzZWxmLWNvbnRhaW5lZCBlbnZpcm9ubWVudCBm b3IgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEd1aWRlZEV4dHJhY3RIYW5kbGVyVGFibGVB ZGRyZXNzPw0KDQogU1RBVElDIFVJTlQ2NCBtRXh0cmFjdEd1aWRlZFNlY3Rpb25IYW5kbGVySW5m b1s2NF07DQogUGNkU2V0NjQgKFBjZEd1aWRlZEV4dHJhY3RIYW5kbGVyVGFibGVBZGRyZXNzLCAo VUlOVDY0KW1FeHRyYWN0R3VpZGVkU2VjdGlvbkhhbmRsZXJJbmZvKTsNCg0KTWF5YmUsIHdlIGNh biBjb25zaWRlciBiZWxvdyBmcm9tIHNlY3VyZSBjb2RpbmcgcGVyc3BlY3RpdmUuDQoxKSBEZWZp bmUgYSBNQUNSTyBmb3IgNjQuDQoyKSBBZGQgYSBjaGVjayAoc29tZXdoZXJlKSB0byBzZWUgaWYg dGhlcmUgaXMgb3ZlcmZsb3cgb24gNjQsIHRoZW4gc3RvcCBhbmQgcmVwb3J0IGVycm9yLg0KDQoN Cg0KVGhhbmsgeW91DQpZYW8gSmlld2VuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3Jn XQ0KPiBTZW50OiBGcmlkYXksIEphbnVhcnkgMTgsIDIwMTkgNzo0MiBBTQ0KPiBUbzogWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmc7IEFjaGluIEd1cHRhIDxhY2hpbi5ndXB0YUBhcm0uY29tPjsNCj4gU3VwcmVldGggVmVua2F0 ZXNoIDxzdXByZWV0aC52ZW5rYXRlc2hAYXJtLmNvbT47IExlaWYgTGluZGhvbG0NCj4gPGxlaWYu bGluZGhvbG1AbGluYXJvLm9yZz47IEphZ2FkZWVzaCBVamphIDxqYWdhZGVlc2gudWpqYUBhcm0u Y29tPjsNCj4gVGhvbWFzIFBhbmFrYW1hdHRhbSBBYnJhaGFtIDx0aG9tYXMuYWJyYWhhbUBhcm0u Y29tPjsgU2FtaQ0KPiBNdWphd2FyIDxTYW1pLk11amF3YXJAYXJtLmNvbT4NCj4gU3ViamVjdDog UmU6IFtQQVRDSCB2MiAxMS8xMV0gU3RhbmRhbG9uZU1tUGtnL0NvcmU6IHBlcm1pdCBlbmNhcHN1 bGF0ZWQNCj4gZmlybXdhcmUgdm9sdW1lcw0KPiANCj4gT24gRnJpLCAxOCBKYW4gMjAxOSBhdCAx Njo0MCwgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPiB3cm90ZToNCj4gPg0KPiA+ IFRoZSBpZGVhIHNlZW1zIGdvb2QuDQo+ID4NCj4gPiBNYXkgSSBrbm93IGlmIHRoZXJlIGlzIGFu eSByZXN0cmljdGlvbiBvbiA2NCBoYW5kbGVycz8NCj4gPg0KPiA+ICtTVEFUSUMgVUlOVDY0IG1F eHRyYWN0R3VpZGVkU2VjdGlvbkhhbmRsZXJJbmZvWzY0XTsNCj4gPg0KPiA+IElmIGEgc3lzdGVt IGlzIGNvbmZpZ3VyZWQgd2l0aCBtb3JlIGhhbmRsZXJzLCB3aGF0IGlzIGV4cGVjdGVkIGJlaGF2 aW9yPw0KPiA+DQo+IA0KPiBHb29kIHF1ZXN0aW9uLiBJIHdhc24ndCByZWFsbHkgc3VyZSBob3cg dG8gaW1wbGVtZW50IHRoaXMuIEZvciBhbnkNCj4gZ2l2ZW4gcGxhdGZvcm0gY29uZmlndXJhdGlv biwgSSBkb24ndCB0aGluayB5b3Ugd2lsbCBldmVyIG5lZWQgbW9yZQ0KPiB0aGFuIG9uZSBoYW5k bGVyLCB1bmxlc3MgeW91IGFyZSBlbmNhcHN1bGF0aW5nIGEgY29tcHJlc3NlZCBGViBpbnNpZGUN Cj4gYSBzaWduZWQgRlYgcGVyaGFwcz8NCj4gDQo+IERvIHlvdSBoYXZlIGFueSBzdWdnZXN0aW9u cyBob3cgdG8gaW1wcm92ZSB0aGlzIGNvZGU/DQo+IA0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgW21haWx0bzphcmQuYmll c2hldXZlbEBsaW5hcm8ub3JnXQ0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDE2LCAy MDE5IDEyOjIzIFBNDQo+ID4gPiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+IENj OiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEFjaGluIEd1cHRh DQo+ID4gPiA8YWNoaW4uZ3VwdGFAYXJtLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGlu dGVsLmNvbT47DQo+IFN1cHJlZXRoDQo+ID4gPiBWZW5rYXRlc2ggPHN1cHJlZXRoLnZlbmthdGVz aEBhcm0uY29tPjsgTGVpZiBMaW5kaG9sbQ0KPiA+ID4gPGxlaWYubGluZGhvbG1AbGluYXJvLm9y Zz47IEphZ2FkZWVzaCBVamphIDxqYWdhZGVlc2gudWpqYUBhcm0uY29tPjsNCj4gPiA+IFRob21h cyBQYW5ha2FtYXR0YW0gQWJyYWhhbSA8dGhvbWFzLmFicmFoYW1AYXJtLmNvbT47IFNhbWkNCj4g PiA+IE11amF3YXIgPFNhbWkuTXVqYXdhckBhcm0uY29tPg0KPiA+ID4gU3ViamVjdDogW1BBVENI IHYyIDExLzExXSBTdGFuZGFsb25lTW1Qa2cvQ29yZTogcGVybWl0IGVuY2Fwc3VsYXRlZA0KPiA+ ID4gZmlybXdhcmUgdm9sdW1lcw0KPiA+ID4NCj4gPiA+IFN0YW5kYWxvbmUgTU0gcmVxdWlyZXMg NCBLQiBzZWN0aW9uIGFsaWdubWVudCBmb3IgYWxsIGltYWdlcywgc28gdGhhdA0KPiA+ID4gc3Ry aWN0IHBlcm1pc3Npb25zIGNhbiBiZSBhcHBsaWVkLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIHJlc3Vs dHMgaW4gYQ0KPiA+ID4gbG90IG9mIHdhc3RlZCBzcGFjZSwgd2hpY2ggaXMgdXN1YWxseSBjb3N0 bHkgaW4gdGhlIHNlY3VyZSB3b3JsZA0KPiA+ID4gZW52aXJvbm1lbnQgdGhhdCBzdGFuZGFsb25l IE1NIGlzIGV4cGVjdGVkIHRvIG9wZXJhdGUgaW4uDQo+ID4gPg0KPiA+ID4gU28gbGV0J3MgcGVy bWl0IHRoZSBzdGFuZGFsb25lIE1NIGRyaXZlcnMgKGJ1dCBub3QgdGhlIGNvcmUpIHRvIGJlDQo+ ID4gPiBkZWxpdmVyZWQgaW4gYSBjb21wcmVzc2VkIGZpcm13YXJlIHZvbHVtZS4NCj4gPiA+DQo+ ID4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQg MS4xDQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxA bGluYXJvLm9yZz4NCj4gPiA+IC0tLQ0KPiA+ID4gIFN0YW5kYWxvbmVNbVBrZy9Db3JlL0Z3Vm9s LmMNCj4gPiA+IHwgOTkgKysrKysrKysrKysrKysrKysrLS0NCj4gPiA+ICBTdGFuZGFsb25lTW1Q a2cvQ29yZS9TdGFuZGFsb25lTW1Db3JlLmluZg0KPiA+ID4gfCAgMSArDQo+ID4gPg0KPiA+ID4N Cj4gU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQvQUFy Y2g2NC9TdGFuZGFsDQo+ID4gPiBvbmVNbUNvcmVFbnRyeVBvaW50LmMgfCAgNSArDQo+ID4gPg0K PiA+ID4NCj4gU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9p bnQvU3RhbmRhbG9uZU1tQ28NCj4gPiA+IHJlRW50cnlQb2ludC5pbmYgICAgICAgfCAgMyArDQo+ ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQ0K PiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9TdGFuZGFsb25lTW1Qa2cvQ29yZS9Gd1ZvbC5jDQo+ ID4gPiBiL1N0YW5kYWxvbmVNbVBrZy9Db3JlL0Z3Vm9sLmMNCj4gPiA+IGluZGV4IDVhYmY5OGMy NDc5Ny4uOGViODI3ZGRhNWM0IDEwMDY0NA0KPiA+ID4gLS0tIGEvU3RhbmRhbG9uZU1tUGtnL0Nv cmUvRndWb2wuYw0KPiA+ID4gKysrIGIvU3RhbmRhbG9uZU1tUGtnL0NvcmUvRndWb2wuYw0KPiA+ ID4gQEAgLTE0LDYgKzE0LDcgQEAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9O UyBPRg0KPiA+ID4gQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4gPg0K PiA+ID4gICNpbmNsdWRlICJTdGFuZGFsb25lTW1Db3JlLmgiDQo+ID4gPiAgI2luY2x1ZGUgPExp YnJhcnkvRnZMaWIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9FeHRyYWN0R3VpZGVkU2Vj dGlvbkxpYi5oPg0KPiA+ID4NCj4gPiA+ICAvLw0KPiA+ID4gIC8vIExpc3Qgb2YgZmlsZSB0eXBl cyBzdXBwb3J0ZWQgYnkgZGlzcGF0Y2hlcg0KPiA+ID4gQEAgLTY1LDE1ICs2NiwyNSBAQCBSZXR1 cm5zOg0KPiA+ID4NCj4gPiA+ICAtLSovDQo+ID4gPiAgew0KPiA+ID4gLSAgRUZJX1NUQVRVUyAg ICAgICAgICBTdGF0dXM7DQo+ID4gPiAtICBFRklfU1RBVFVTICAgICAgICAgIERlcGV4U3RhdHVz Ow0KPiA+ID4gLSAgRUZJX0ZGU19GSUxFX0hFQURFUiAqRmlsZUhlYWRlcjsNCj4gPiA+IC0gIEVG SV9GVl9GSUxFVFlQRSAgICAgRmlsZVR5cGU7DQo+ID4gPiAtICBWT0lEICAgICAgICAgICAgICAg ICpQZTMyRGF0YTsNCj4gPiA+IC0gIFVJTlROICAgICAgICAgICAgICAgUGUzMkRhdGFTaXplOw0K PiA+ID4gLSAgVk9JRCAgICAgICAgICAgICAgICAqRGVwZXg7DQo+ID4gPiAtICBVSU5UTiAgICAg ICAgICAgICAgIERlcGV4U2l6ZTsNCj4gPiA+IC0gIFVJTlROICAgICAgICAgICAgICAgSW5kZXg7 DQo+ID4gPiArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVz Ow0KPiA+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcGV4 U3RhdHVzOw0KPiA+ID4gKyAgRUZJX0ZGU19GSUxFX0hFQURFUiAgICAgICAgICAgICAgICAgICAg ICpGaWxlSGVhZGVyOw0KPiA+ID4gKyAgRUZJX0ZWX0ZJTEVUWVBFICAgICAgICAgICAgICAgICAg ICAgICAgIEZpbGVUeXBlOw0KPiA+ID4gKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICpQZTMyRGF0YTsNCj4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQZTMyRGF0YVNpemU7DQo+ID4gPiArICBWT0lEICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKkRlcGV4Ow0KPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERlcGV4U2l6ZTsNCj4gPiA+ICsgIFVJTlROICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gPiA+ICsgIEVGSV9DT01NT05fU0VD VElPTl9IRUFERVIgICAgICAgICAgICAgICAqU2VjdGlvbjsNCj4gPiA+ICsgIFZPSUQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqU2VjdGlvbkRhdGE7DQo+ID4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdGlvbkRhdGFTaXplOw0KPiA+ ID4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERzdEJ1ZmZlclNp emU7DQo+ID4gPiArICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlNj cmF0Y2hCdWZmZXI7DQo+ID4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2NyYXRjaEJ1ZmZlclNpemU7DQo+ID4gPiArICBWT0lEICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKkRzdEJ1ZmZlcjsNCj4gPiA+ICsgIFVJTlQxNiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTZWN0aW9uQXR0cmlidXRlOw0KPiA+ID4gKyAgVUlOVDMy DQo+IEF1dGhlbnRpY2F0aW9uU3RhdHVzOw0KPiA+ID4gKyAgRUZJX0ZJUk1XQVJFX1ZPTFVNRV9I RUFERVIgICAgICAgICAgICAgICpJbm5lckZ2SGVhZGVyOw0KPiA+ID4NCj4gPiA+ICAgIERFQlVH ICgoREVCVUdfSU5GTywgIk1tQ29yZUZmc0ZpbmRNbURyaXZlciAtIDB4JXhcbiIsDQo+ID4gPiBG d1ZvbEhlYWRlcikpOw0KPiA+ID4NCj4gPiA+IEBAIC04Myw2ICs5NCw3MSBAQCBSZXR1cm5zOg0K PiA+ID4NCj4gPiA+ICAgIEZ2SXNCZWluZ1Byb2Nlc3NzZWQgKEZ3Vm9sSGVhZGVyKTsNCj4gPiA+ DQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gRmlyc3QgY2hlY2sgZm9yIGVuY2Fwc3VsYXRlZCBj b21wcmVzc2VkIGZpcm13YXJlIHZvbHVtZXMNCj4gPiA+ICsgIC8vDQo+ID4gPiArICBGaWxlSGVh ZGVyID0gTlVMTDsNCj4gPiA+ICsgIGRvIHsNCj4gPiA+ICsgICAgU3RhdHVzID0gRmZzRmluZE5l eHRGaWxlDQo+ID4gPiAoRUZJX0ZWX0ZJTEVUWVBFX0ZJUk1XQVJFX1ZPTFVNRV9JTUFHRSwNCj4g PiA+ICsgICAgICAgICAgICAgICBGd1ZvbEhlYWRlciwgJkZpbGVIZWFkZXIpOw0KPiA+ID4gKyAg ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiAr ICAgIH0NCj4gPiA+ICsgICAgU3RhdHVzID0gRmZzRmluZFNlY3Rpb25EYXRhIChFRklfU0VDVElP Tl9HVUlEX0RFRklORUQsDQo+ID4gPiBGaWxlSGVhZGVyLA0KPiA+ID4gKyAgICAgICAgICAgICAg ICZTZWN0aW9uRGF0YSwgJlNlY3Rpb25EYXRhU2l6ZSk7DQo+ID4gPiArICAgIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCj4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+ICsgICAgfQ0KPiA+ID4g KyAgICBTZWN0aW9uID0gKEVGSV9DT01NT05fU0VDVElPTl9IRUFERVIgKikoRmlsZUhlYWRlciAr IDEpOw0KPiA+ID4gKyAgICBTdGF0dXMgPSBFeHRyYWN0R3VpZGVkU2VjdGlvbkdldEluZm8gKFNl Y3Rpb24sICZEc3RCdWZmZXJTaXplLA0KPiA+ID4gKyAgICAgICAgICAgICAgICZTY3JhdGNoQnVm ZmVyU2l6ZSwgJlNlY3Rpb25BdHRyaWJ1dGUpOw0KPiA+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpKSB7DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsNCj4g PiA+ICsgICAgLy8NCj4gPiA+ICsgICAgLy8gQWxsb2NhdGUgc2NyYXRjaCBidWZmZXINCj4gPiA+ ICsgICAgLy8NCj4gPiA+ICsgICAgU2NyYXRjaEJ1ZmZlciA9IChWT0lEICopKFVJTlROKUFsbG9j YXRlUGFnZXMNCj4gKEVGSV9TSVpFX1RPX1BBR0VTDQo+ID4gPiAoU2NyYXRjaEJ1ZmZlclNpemUp KTsNCj4gPiA+ICsgICAgaWYgKFNjcmF0Y2hCdWZmZXIgPT0gTlVMTCkgew0KPiA+ID4gKyAgICAg IHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiA+ICsgICAgfQ0KPiA+ID4gKw0KPiA+ ID4gKyAgICAvLw0KPiA+ID4gKyAgICAvLyBBbGxvY2F0ZSBkZXN0aW5hdGlvbiBidWZmZXINCj4g PiA+ICsgICAgLy8NCj4gPiA+ICsgICAgRHN0QnVmZmVyID0gKFZPSUQgKikoVUlOVE4pQWxsb2Nh dGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMNCj4gPiA+IChEc3RCdWZmZXJTaXplKSk7DQo+ID4g PiArICAgIGlmIChEc3RCdWZmZXIgPT0gTlVMTCkgew0KPiA+ID4gKyAgICAgIHJldHVybiBFRklf T1VUX09GX1JFU09VUkNFUzsNCj4gPiA+ICsgICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAvLw0K PiA+ID4gKyAgICAvLyBDYWxsIGRlY29tcHJlc3MgZnVuY3Rpb24NCj4gPiA+ICsgICAgLy8NCj4g PiA+ICsgICAgU3RhdHVzID0gRXh0cmFjdEd1aWRlZFNlY3Rpb25EZWNvZGUgKFNlY3Rpb24sICZE c3RCdWZmZXIsDQo+ID4gPiBTY3JhdGNoQnVmZmVyLA0KPiA+ID4gKyAgICAgICAgICAgICAgICZB dXRoZW50aWNhdGlvblN0YXR1cyk7DQo+ID4gPiArICAgIEZyZWVQYWdlcyAoU2NyYXRjaEJ1ZmZl ciwgRUZJX1NJWkVfVE9fUEFHRVMNCj4gKFNjcmF0Y2hCdWZmZXJTaXplKSk7DQo+ID4gPiArICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ICsgICAgICBnb3RvIEZyZWVEc3RCdWZm ZXI7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsNCj4gPiA+ICsgICAgREVCVUcgKChERUJVR19JTkZP LA0KPiA+ID4gKyAgICAgICJQcm9jZXNzaW5nIGNvbXByZXNzZWQgZmlybXdhcmUgdm9sdW1lIChB dXRoZW50aWNhdGlvblN0YXR1cw0KPiA+ID4gPT0gJXgpXG4iLA0KPiA+ID4gKyAgICAgIEF1dGhl bnRpY2F0aW9uU3RhdHVzKSk7DQo+ID4gPiArDQo+ID4gPiArICAgIFN0YXR1cyA9IEZpbmRGZnNT ZWN0aW9uSW5TZWN0aW9ucyAoRHN0QnVmZmVyLCBEc3RCdWZmZXJTaXplLA0KPiA+ID4gKyAgICAg ICAgICAgICAgIEVGSV9TRUNUSU9OX0ZJUk1XQVJFX1ZPTFVNRV9JTUFHRSwNCj4gJlNlY3Rpb24p Ow0KPiA+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiArICAgICAgZ290 byBGcmVlRHN0QnVmZmVyOw0KPiA+ID4gKyAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgIElubmVy RnZIZWFkZXIgPSAoRUZJX0ZJUk1XQVJFX1ZPTFVNRV9IRUFERVIgKikoU2VjdGlvbiArDQo+IDEp Ow0KPiA+ID4gKyAgICBTdGF0dXMgPSBNbUNvcmVGZnNGaW5kTW1Ecml2ZXIgKElubmVyRnZIZWFk ZXIpOw0KPiA+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiArICAgICAg Z290byBGcmVlRHN0QnVmZmVyOw0KPiA+ID4gKyAgICB9DQo+ID4gPiArICB9IHdoaWxlIChUUlVF KTsNCj4gPiA+ICsNCj4gPiA+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IHNpemVvZiAobU1t RmlsZVR5cGVzKSAvIHNpemVvZg0KPiAobU1tRmlsZVR5cGVzWzBdKTsNCj4gPiA+IEluZGV4Kysp IHsNCj4gPiA+ICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiQ2hlY2sgTW1GaWxlVHlwZXMgLSAw eCV4XG4iLA0KPiA+ID4gbU1tRmlsZVR5cGVzW0luZGV4XSkpOw0KPiA+ID4gICAgICBGaWxlVHlw ZSA9IG1NbUZpbGVUeXBlc1tJbmRleF07DQo+ID4gPiBAQCAtMTAwLDUgKzE3NiwxMCBAQCBSZXR1 cm5zOg0KPiA+ID4gICAgICB9IHdoaWxlICghRUZJX0VSUk9SIChTdGF0dXMpKTsNCj4gPiA+ICAg IH0NCj4gPiA+DQo+ID4gPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gPiArDQo+ID4gPiAr RnJlZURzdEJ1ZmZlcjoNCj4gPiA+ICsgIEZyZWVQYWdlcyAoRHN0QnVmZmVyLCBFRklfU0laRV9U T19QQUdFUyAoRHN0QnVmZmVyU2l6ZSkpOw0KPiA+ID4gKw0KPiA+ID4gICAgcmV0dXJuIFN0YXR1 czsNCj4gPiA+ICB9DQo+ID4gPiBkaWZmIC0tZ2l0IGEvU3RhbmRhbG9uZU1tUGtnL0NvcmUvU3Rh bmRhbG9uZU1tQ29yZS5pbmYNCj4gPiA+IGIvU3RhbmRhbG9uZU1tUGtnL0NvcmUvU3RhbmRhbG9u ZU1tQ29yZS5pbmYNCj4gPiA+IGluZGV4IGZmMmI4YjljZWYwMy4uODNkMzFlMmQ5MmM1IDEwMDY0 NA0KPiA+ID4gLS0tIGEvU3RhbmRhbG9uZU1tUGtnL0NvcmUvU3RhbmRhbG9uZU1tQ29yZS5pbmYN Cj4gPiA+ICsrKyBiL1N0YW5kYWxvbmVNbVBrZy9Db3JlL1N0YW5kYWxvbmVNbUNvcmUuaW5mDQo+ ID4gPiBAQCAtNDksNiArNDksNyBAQCBbTGlicmFyeUNsYXNzZXNdDQo+ID4gPiAgICBCYXNlTWVt b3J5TGliDQo+ID4gPiAgICBDYWNoZU1haW50ZW5hbmNlTGliDQo+ID4gPiAgICBEZWJ1Z0xpYg0K PiA+ID4gKyAgRXh0cmFjdEd1aWRlZFNlY3Rpb25MaWINCj4gPiA+ICAgIEZ2TGliDQo+ID4gPiAg ICBIb2JMaWINCj4gPiA+ICAgIE1lbW9yeUFsbG9jYXRpb25MaWINCj4gPiA+IGRpZmYgLS1naXQN Cj4gPiA+DQo+IGEvU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5 UG9pbnQvQUFyY2g2NC9TdGFuZA0KPiA+ID4gYWxvbmVNbUNvcmVFbnRyeVBvaW50LmMNCj4gPiA+ DQo+IGIvU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQv QUFyY2g2NC9TdGFuZA0KPiA+ID4gYWxvbmVNbUNvcmVFbnRyeVBvaW50LmMNCj4gPiA+IGluZGV4 IDVjY2E1MzI0NTZmZC4uNjdmZjkxMTJkNWMwIDEwMDY0NA0KPiA+ID4gLS0tDQo+ID4gPg0KPiBh L1N0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50L0FBcmNo NjQvU3RhbmQNCj4gPiA+IGFsb25lTW1Db3JlRW50cnlQb2ludC5jDQo+ID4gPiArKysNCj4gPiA+ DQo+IGIvU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQv QUFyY2g2NC9TdGFuZA0KPiA+ID4gYWxvbmVNbUNvcmVFbnRyeVBvaW50LmMNCj4gPiA+IEBAIC0y MDUsNiArMjA1LDggQEAgR2V0U3BtVmVyc2lvbiAoVk9JRCkNCj4gPiA+ICAgIHJldHVybiBTdGF0 dXM7DQo+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+ICtTVEFUSUMgVUlOVDY0IG1FeHRyYWN0R3VpZGVk U2VjdGlvbkhhbmRsZXJJbmZvWzY0XTsNCj4gPiA+ICsNCj4gPiA+ICAvKioNCj4gPiA+ICAgIFRo ZSBlbnRyeSBwb2ludCBvZiBTdGFuZGFsb25lIE1NIEZvdW5kYXRpb24uDQo+ID4gPg0KPiA+ID4g QEAgLTI4NSw2ICsyODcsOSBAQCBfTW9kdWxlRW50cnlQb2ludCAoDQo+ID4gPiAgICAgIGdvdG8g ZmluaXNoOw0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+ICsgIFBjZFNldDY0IChQY2RHdWlkZWRF eHRyYWN0SGFuZGxlclRhYmxlQWRkcmVzcywNCj4gPiA+ICsgICAgKFVJTlQ2NCltRXh0cmFjdEd1 aWRlZFNlY3Rpb25IYW5kbGVySW5mbyk7DQo+ID4gPiArDQo+ID4gPiAgICAvLw0KPiA+ID4gICAg Ly8gQ3JlYXRlIEhvYmxpc3QgYmFzZWQgdXBvbiBib290IGluZm9ybWF0aW9uIHBhc3NlZCBieSBw cml2aWxlZ2VkDQo+ID4gPiBzb2Z0d2FyZQ0KPiA+ID4gICAgLy8NCj4gPiA+IGRpZmYgLS1naXQN Cj4gPiA+DQo+IGEvU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5 UG9pbnQvU3RhbmRhbG9uZU1tDQo+ID4gPiBDb3JlRW50cnlQb2ludC5pbmYNCj4gPiA+DQo+IGIv U3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQvU3RhbmRh bG9uZU1tDQo+ID4gPiBDb3JlRW50cnlQb2ludC5pbmYNCj4gPiA+IGluZGV4IDc2OWVhZWVlZmJl YS4uNTVkNzY5ZmE3N2U0IDEwMDY0NA0KPiA+ID4gLS0tDQo+ID4gPg0KPiBhL1N0YW5kYWxvbmVN bVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50L1N0YW5kYWxvbmVNbQ0KPiA+ ID4gQ29yZUVudHJ5UG9pbnQuaW5mDQo+ID4gPiArKysNCj4gPiA+DQo+IGIvU3RhbmRhbG9uZU1t UGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQvU3RhbmRhbG9uZU1tDQo+ID4g PiBDb3JlRW50cnlQb2ludC5pbmYNCj4gPiA+IEBAIC01NCwzICs1NCw2IEBAIFtHdWlkc10NCj4g PiA+ICAgIGdFZmlNbVBlaU1tcmFtTWVtb3J5UmVzZXJ2ZUd1aWQNCj4gPiA+ICAgIGdFZmlTdGFu ZGFsb25lTW1Ob25TZWN1cmVCdWZmZXJHdWlkDQo+ID4gPiAgICBnRWZpQXJtVGZDcHVEcml2ZXJF cERlc2NyaXB0b3JHdWlkDQo+ID4gPiArDQo+ID4gPiArW1BhdGNoUGNkXQ0KPiA+ID4gKyAgZ0Vm aU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEd1aWRlZEV4dHJhY3RIYW5kbGVyVGFibGVBZGRyZXNz DQo+ID4gPiAtLQ0KPiA+ID4gMi4xNy4xDQo+ID4NCg==