From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.3771.1585708628652682070 for ; Tue, 31 Mar 2020 19:37:08 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: guomin.jiang@intel.com) IronPort-SDR: Ciu2PT9Fjldhk7EL8UGHeng2c0toZWcBaUwp3Gxfz3fFlHyzbkKeK66MPBV8r7mg3i5tIYGL0F yOeMZCtGTEPA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2020 19:37:07 -0700 IronPort-SDR: R3UiipEO5gcd7rbrahsKboh5SRlBh7vx5L7NIH0EUqG/bUnqcguyigW6INoSvlIFTJpC3fX8sJ v6Qma7RncnJA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,330,1580803200"; d="scan'208";a="242099215" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga008.fm.intel.com with ESMTP; 31 Mar 2020 19:37:07 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 31 Mar 2020 19:37:07 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 31 Mar 2020 19:37:06 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 31 Mar 2020 19:37:06 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.129]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.217]) with mapi id 14.03.0439.000; Wed, 1 Apr 2020 10:37:04 +0800 From: "Guomin Jiang" To: Michael Kubacki , "devel@edk2.groups.io" , "Wang, Jian J" CC: Bret Barkelew , "Gao, Liming" , "Kinney, Michael D" , "Wu, Hao A" Subject: Re: [edk2-devel] [PATCH v3 1/3] MdeModulePkg Variable: Return GetVariable() attr if EFI_BUFFER_TOO_SMALL Thread-Topic: [edk2-devel] [PATCH v3 1/3] MdeModulePkg Variable: Return GetVariable() attr if EFI_BUFFER_TOO_SMALL Thread-Index: AQHWBIKRF+YD0WD1qUWgKIjjuAnFUahgBLOAgAJao5CAABBjgIABI2Lw Date: Wed, 1 Apr 2020 02:37:03 +0000 Message-ID: References: <20200327215536.9556-1-michael.kubacki@outlook.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: guomin.jiang@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXQgaXMgb2ssIEkgaGF2ZSBubyBvdGhlcnMgY29uZnVzaW9uLg0KUmV2aWV3ZWQtYnk6IEd1b21p biBKaWFuZyA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBNaWNoYWVsIEt1YmFja2kgW21haWx0bzptaWNoYWVsLmt1YmFja2lA b3V0bG9vay5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMSwgMjAyMCAxOjEyIEFNDQo+ IFRvOiBKaWFuZywgR3VvbWluIDxndW9taW4uamlhbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW87IFdhbmcsDQo+IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBDYzog QnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPjsgR2FvLCBMaW1pbmcN Cj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsNCj4gV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+DQo+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDEvM10gTWRlTW9kdWxlUGtnIFZhcmlh YmxlOiBSZXR1cm4NCj4gR2V0VmFyaWFibGUoKSBhdHRyIGlmIEVGSV9CVUZGRVJfVE9PX1NNQUxM DQo+IA0KPiBUaGF0IGhhcyBiZWVuIHNwZWxsZWQgaW5jb3JyZWN0bHkgZm9yIGFib3V0IDkgeWVh cnMuIFRoZSBmaWxlIChsaWtlIG1hbnkNCj4gb3RoZXJzKSBhbHNvIGhhcyBvdGhlciBzcGVsbGlu ZyBlcnJvcnMgc3VjaCBhcyB0aGUgZm9sbG93aW5nLiBJIHN1Z2dlc3QgdGhpcyBiZQ0KPiBmaXhl ZCBpbiBhIHNlcGFyYXRlIGNvbW1pdC9zZXJpZXMgZm9jdXNlZCBvbiBmaXhpbmcgc3BlbGxpbmcg ZXJyb3JzLg0KPiANCj4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50 aW1lRHhlL1ZhcmlhYmxlLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJs ZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMNCj4gQEAgLTEwMiw3ICsxMDIsNyBAQCBBVVRIX1ZBUl9M SUJfQ09OVEVYVF9PVVQgbUF1dGhDb250ZXh0T3V0Ow0KPiAgICAgVGhpcyBmdW5jdGlvbiB3cml0 ZXMgZGF0YSB0byB0aGUgRldIIGF0IHRoZSBjb3JyZWN0IExCQSBldmVuIGlmIHRoZSBMQkFzDQo+ ICAgICBhcmUgZnJhZ21lbnRlZC4NCj4gDQo+IC0gIEBwYXJhbSBHbG9iYWwgICAgICAgICAgICAg ICAgICBQb2ludGVyIHRvIFZBUkFJQkxFX0dMT0JBTCBzdHJ1Y3R1cmUuDQo+ICsgIEBwYXJhbSBH bG9iYWwgICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIFZBUklBQkxFX0dMT0JBTCBzdHJ1Y3R1 cmUuDQo+ICAgICBAcGFyYW0gVm9sYXRpbGUgICAgICAgICAgICAgICAgUG9pbnQgb3V0IHRoZSBW YXJpYWJsZSBpcyBWb2xhdGlsZSBvcg0KPiBOb24tVm9sYXRpbGUuDQo+ICAgICBAcGFyYW0gU2V0 QnlJbmRleCAgICAgICAgICAgICAgVFJVRSBpZiB0YXJnZXQgcG9pbnRlciBpcyBnaXZlbiBhcyBp bmRleC4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSBpZiB0YXJn ZXQgcG9pbnRlciBpcyBhYnNvbHV0ZS4NCj4gQEAgLTUwNCw3ICs1MDQsNyBAQCBJbml0aWFsaXpl VmFyaWFibGVRdW90YSAoDQo+IA0KPiAgICAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICAgICAg ICAgICAgIFJlY2xhaW0gb3BlcmF0aW9uIGhhcyBmaW5pc2hlZA0KPiBzdWNjZXNzZnVsbHkuDQo+ ICAgICBAcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgICAgICAgTm8gZW5vdWdoIG1lbW9y eSByZXNvdXJjZXMgb3INCj4gdmFyaWFibGUgc3BhY2UuDQo+IC0gIEByZXR1cm4gT3RoZXJzICAg ICAgICAgICAgICAgICAgICAgICBVbmV4cGVjdCBlcnJvciBoYXBwZW5lZCBkdXJpbmcNCj4gcmVj bGFpbSBvcGVyYXRpb24uDQo+ICsgIEByZXR1cm4gT3RoZXJzICAgICAgICAgICAgICAgICAgICAg ICBVbmV4cGVjdGVkIGVycm9yIGhhcHBlbmVkIGR1cmluZw0KPiByZWNsYWltIG9wZXJhdGlvbi4N Cj4gDQo+ICAgKiovDQo+ICAgRUZJX1NUQVRVUw0KPiBAQCAtMjU2MSw3ICsyNTYxLDcgQEAgVmFy aWFibGVTZXJ2aWNlU2V0VmFyaWFibGUgKA0KPiAgICAgfQ0KPiANCj4gICAgIC8vDQo+IC0gIC8v IENoZWNrIGZvciByZXNlcnZlcmQgYml0IGluIHZhcmlhYmxlIGF0dHJpYnV0ZS4NCj4gKyAgLy8g Q2hlY2sgZm9yIHJlc2VydmVkIGJpdCBpbiB2YXJpYWJsZSBhdHRyaWJ1dGUuDQo+ICAgICAvLyBF RklfVkFSSUFCTEVfQVVUSEVOVElDQVRFRF9XUklURV9BQ0NFU1MgaXMgZGVwcmVjYXRlZCBidXQg d2UNCj4gc3RpbGwgYWxsb3cNCj4gICAgIC8vIHRoZSBkZWxldGUgb3BlcmF0aW9uIG9mIGNvbW1v biBhdXRoZW50aWNhdGVkIHZhcmlhYmxlIGF0IHVzZXIgcGh5c2ljYWwNCj4gcHJlc2VuY2UuDQo+ ICAgICAvLyBTbyBsZWF2ZSBFRklfVkFSSUFCTEVfQVVUSEVOVElDQVRFRF9XUklURV9BQ0NFU1Mg YXR0cmlidXRlDQo+IGNoZWNrIHRvIEF1dGhWYXJpYWJsZUxpYiBAQCAtMzM4MSw3ICszMzgxLDcg QEANCj4gQ29udmVydE5vcm1hbFZhclN0b3JhZ2VUb0F1dGhWYXJTdG9yYWdlICgNCj4gICAgIFZB UklBQkxFX0hFQURFUiAqU3RhcnRQdHI7DQo+ICAgICBVSU5UOCAgICAgICAgICAgKk5leHRQdHI7 DQo+ICAgICBWQVJJQUJMRV9IRUFERVIgKkVuZFB0cjsNCj4gLSAgVUlOVE4gICAgICAgICAgIEF1 dGhWYXJTdHJvYWdlU2l6ZTsNCj4gKyAgVUlOVE4gICAgICAgICAgIEF1dGhWYXJTdG9yYWdlU2l6 ZTsNCj4gICAgIEFVVEhFTlRJQ0FURURfVkFSSUFCTEVfSEVBREVSICpBdXRoU3RhcnRQdHI7DQo+ ICAgICBWQVJJQUJMRV9TVE9SRV9IRUFERVIgICAgICAgICAqQXV0aFZhclN0b3JhZ2U7DQo+IA0K PiANCj4gT24gMy8zMS8yMDIwIDE6MTggQU0sIEppYW5nLCBHdW9taW4gd3JvdGU6DQo+ID4gVGhl cmUgaXMgYSBzcGVsbCBlcnJvciBpbiB0aGUgY29tbWVudHMgb2YgVmFyaWFibGVTZXJ2aWNlR2V0 VmFyaWFibGUoKSBpbg0KPiBWYXJpYWJsZS5jLg0KPiA+IC0gQHJldHVybiBFRklfQlVGRkVSX1RP X1NNQUxMICAgICAgIERhdGFTaXplIGlzIHRvbyBzbWFsbCBmb3IgdGhlIHJlc3VsdC4NCj4gPiAr IEByZXR1cm4gRUZJX0JVRkZFUl9UT09fU01BTEwgICAgRGF0YVNpemUgaXMgdG9vIHNtYWxsIGZv ciB0aGUgcmVzdWx0Lg0KPiA+DQo+ID4gTmVlZCBjcmVhdGUgbmV3IGJ1Z3MgZm9yIGl0IG9yIGZp eCBpbiB0aGlzIGNvbW1lbnQgZGlyZWN0bHk/DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBl ZGsyLmdyb3Vwcy5pb10gT24gQmVoYWxmIE9mDQo+ID4+IFdhbmcsIEppYW4gSg0KPiA+PiBTZW50 OiBNb25kYXksIE1hcmNoIDMwLCAyMDIwIDEyOjE2IFBNDQo+ID4+IFRvOiBtaWNoYWVsLmt1YmFj a2lAb3V0bG9vay5jb207IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+IENjOiBCcmV0IEJhcmtl bGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBHYW8sIExpbWluZw0KPiA+PiA8bGlt aW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+PiA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPj4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjMgMS8zXSBNZGVNb2R1bGVQa2cgVmFyaWFi bGU6DQo+ID4+IFJldHVybg0KPiA+PiBHZXRWYXJpYWJsZSgpIGF0dHIgaWYgRUZJX0JVRkZFUl9U T09fU01BTEwNCj4gPj4NCj4gPj4NCj4gPj4gUmV2aWV3ZWQtYnk6IEppYW4gSiBXYW5nIDxqaWFu Lmoud2FuZ0BpbnRlbC5jb20+DQo+ID4+DQo+ID4+IFJlZ2FyZHMsDQo+ID4+IEppYW4NCj4gPj4N Cj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBGcm9tOiBtaWNoYWVsLmt1 YmFja2lAb3V0bG9vay5jb20gPG1pY2hhZWwua3ViYWNraUBvdXRsb29rLmNvbT4NCj4gPj4+IFNl bnQ6IFNhdHVyZGF5LCBNYXJjaCAyOCwgMjAyMCA1OjU2IEFNDQo+ID4+PiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW8NCj4gPj4+IENjOiBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jv c29mdC5jb20+OyBHYW8sIExpbWluZw0KPiA+Pj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgS2lu bmV5LCBNaWNoYWVsIEQNCj4gPj4+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFdhbmcs IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsNCj4gPj4+IFd1LCBIYW8gQSA8aGFvLmEu d3VAaW50ZWwuY29tPg0KPiA+Pj4gU3ViamVjdDogW1BBVENIIHYzIDEvM10gTWRlTW9kdWxlUGtn IFZhcmlhYmxlOiBSZXR1cm4gR2V0VmFyaWFibGUoKQ0KPiA+Pj4gYXR0ciBpZiBFRklfQlVGRkVS X1RPT19TTUFMTA0KPiA+Pj4NCj4gPj4+IEZyb206IE1pY2hhZWwgS3ViYWNraSA8bWljaGFlbC5r dWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+ID4+Pg0KPiA+Pj4gUkVGOmh0dHBzOi8vYnVnemlsbGEu dGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2Mg0KPiA+Pj4NCj4gPj4+IFRoZSBVRUZJ IHNwZWNpZmljYXRpb24gdjIuOCBFcnJhdGEgQSBTZWN0aW9uIDguMiAiR2V0VmFyaWFibGUoKSIN Cj4gPj4+ICJBdHRyaWJ1dGVzIiBwYXJhbWV0ZXIgZGVzY3JpcHRpb24gc3RhdGVzOg0KPiA+Pj4N Cj4gPj4+ICJJZiBub3QgTlVMTCwgYSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgbG9jYXRpb24gdG8g cmV0dXJuIHRoZQ0KPiA+Pj4gYXR0cmlidXRlcyBiaXRtYXNrIGZvciB0aGUgdmFyaWFibGUuIFNl ZSAnUmVsYXRlZCBEZWZpbml0aW9ucy4nDQo+ID4+PiAgIElmIG5vdCBOVUxMLCB0aGVuIEF0dHJp YnV0ZXMgaXMgc2V0IG9uIG91dHB1dCBib3RoIHdoZW4NCj4gPj4+IEVGSV9TVUNDRVNTIGFuZCB3 aGVuIEVGSV9CVUZGRVJfVE9PX1NNQUxMIGlzIHJldHVybmVkLiINCj4gPj4+DQo+ID4+PiBUaGUg YXR0cmlidXRlcyB3ZXJlIHByZXZpb3VzbHkgb25seSByZXR1cm5lZCBmcm9tIHRoZSBpbXBsZW1l bnRhdGlvbg0KPiA+Pj4gaW4gVmFyaWFibGUuYyBvbiBFRklfU1VDQ0VTUy4gVGhleSBhcmUgbm93 IHJldHVybmVkIG9uIEVGSV9TVUNDRVNTDQo+ID4+PiBvciBFRklfQlVGRkVSX1RPT19TTUFMTCBh Y2NvcmRpbmcgdG8gc3BlYy4NCj4gPj4+DQo+ID4+PiBDYzogQnJldCBCYXJrZWxldyA8QnJldC5C YXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+Pj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9A aW50ZWwuY29tPg0KPiA+Pj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPg0KPiA+Pj4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ DQo+ID4+PiBDYzogSGFvIEEgV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPj4+IFNpZ25lZC1v ZmYtYnk6IE1pY2hhZWwgS3ViYWNraSA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+ ID4+PiAtLS0NCj4gPj4+ICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1l RHhlL1ZhcmlhYmxlLmMgICAgICAgICAgICAgIHwgMTANCj4gPj4+ICsrKysrKystLS0NCj4gPj4+ DQo+ID4+DQo+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJp YWJsZVNtbVJ1bnRpbWVEeGUuDQo+ID4+IGMgfA0KPiA+Pj4gMTAgKysrKysrLS0tLQ0KPiA+Pj4g ICAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ID4+ Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVu dGltZUR4ZS9WYXJpYWJsZS5jDQo+ID4+PiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFi bGUvUnVudGltZUR4ZS9WYXJpYWJsZS5jDQo+ID4+PiBpbmRleCBkMjNhZWE0YmM3MTIuLjFlNzFm YzY0MmM3NiAxMDA2NDQNCj4gPj4+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFi bGUvUnVudGltZUR4ZS9WYXJpYWJsZS5jDQo+ID4+PiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUuYw0KPiA+Pj4gQEAgLTE4LDYgKzE4LDgg QEANCj4gPj4+DQo+ID4+PiAgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMjAsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4+PiByZXNlcnZlZC48QlI+DQo+ID4+PiAgIChDKSBDb3B5 cmlnaHQgMjAxNS0yMDE4IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50DQo+ ID4+PiBMUDxCUj4NCj4gPj4+ICtDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi48 QlI+DQo+ID4+PiArDQo+ID4+PiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+ID4+Pg0KPiA+Pj4gICAqKi8NCj4gPj4+IEBAIC0yMzc5LDkgKzIzODEsNiBA QCBWYXJpYWJsZVNlcnZpY2VHZXRWYXJpYWJsZSAoDQo+ID4+PiAgICAgICB9DQo+ID4+Pg0KPiA+ Pj4gICAgICAgQ29weU1lbSAoRGF0YSwgR2V0VmFyaWFibGVEYXRhUHRyIChWYXJpYWJsZS5DdXJy UHRyLA0KPiA+Pj4gbVZhcmlhYmxlTW9kdWxlR2xvYmFsLT5WYXJpYWJsZUdsb2JhbC5BdXRoRm9y bWF0KSwgVmFyRGF0YVNpemUpOw0KPiA+Pj4gLSAgICBpZiAoQXR0cmlidXRlcyAhPSBOVUxMKSB7 DQo+ID4+PiAtICAgICAgKkF0dHJpYnV0ZXMgPSBWYXJpYWJsZS5DdXJyUHRyLT5BdHRyaWJ1dGVz Ow0KPiA+Pj4gLSAgICB9DQo+ID4+Pg0KPiA+Pj4gICAgICAgKkRhdGFTaXplID0gVmFyRGF0YVNp emU7DQo+ID4+PiAgICAgICBVcGRhdGVWYXJpYWJsZUluZm8gKFZhcmlhYmxlTmFtZSwgVmVuZG9y R3VpZCwNCj4gPj4+IFZhcmlhYmxlLlZvbGF0aWxlLCBUUlVFLCBGQUxTRSwgRkFMU0UsIEZBTFNF LCAmZ1ZhcmlhYmxlSW5mbyk7IEBADQo+ID4+PiAtMjM5NSw2ICsyMzk0LDExIEBAIFZhcmlhYmxl U2VydmljZUdldFZhcmlhYmxlICgNCj4gPj4+ICAgICB9DQo+ID4+Pg0KPiA+Pj4gICBEb25lOg0K PiA+Pj4gKyAgaWYgKFN0YXR1cyA9PSBFRklfU1VDQ0VTUyB8fCBTdGF0dXMgPT0gRUZJX0JVRkZF Ul9UT09fU01BTEwpIHsNCj4gPj4+ICsgICAgaWYgKEF0dHJpYnV0ZXMgIT0gTlVMTCAmJiBWYXJp YWJsZS5DdXJyUHRyICE9IE5VTEwpIHsNCj4gPj4+ICsgICAgICAqQXR0cmlidXRlcyA9IFZhcmlh YmxlLkN1cnJQdHItPkF0dHJpYnV0ZXM7DQo+ID4+PiArICAgIH0NCj4gPj4+ICsgIH0NCj4gPj4+ ICAgICBSZWxlYXNlTG9ja09ubHlBdEJvb3RUaW1lICgmbVZhcmlhYmxlTW9kdWxlR2xvYmFsLQ0K PiA+Pj4+IFZhcmlhYmxlR2xvYmFsLlZhcmlhYmxlU2VydmljZXNMb2NrKTsNCj4gPj4+ICAgICBy ZXR1cm4gU3RhdHVzOw0KPiA+Pj4gICB9DQo+ID4+PiBkaWZmIC0tZ2l0DQo+ID4+Pg0KPiA+Pg0K PiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVNt bVJ1bnRpbWVEeA0KPiA+PiBlLmMNCj4gPj4+DQo+ID4+DQo+IGIvTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tUnVudGltZUR4DQo+ID4+IGUuYw0K PiA+Pj4gaW5kZXggMmNmMGVkMzJhZTU1Li5jYTgzM2ZiMDI0NGQgMTAwNjQ0DQo+ID4+PiAtLS0N Cj4gPj4+DQo+ID4+DQo+IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1l RHhlL1ZhcmlhYmxlU21tUnVudGltZUR4DQo+ID4+IGUuYw0KPiA+Pj4gKysrDQo+ID4+Pg0KPiA+ Pg0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJs ZVNtbVJ1bnRpbWVEeA0KPiA+PiBlLmMNCj4gPj4+IEBAIC0xNCw2ICsxNCw3IEBADQo+ID4+PiAg ICAgSW5pdENvbW11bmljYXRlQnVmZmVyKCkgaXMgcmVhbGx5IGZ1bmN0aW9uIHRvIGNoZWNrIHRo ZSB2YXJpYWJsZSBkYXRhDQo+IHNpemUuDQo+ID4+Pg0KPiA+Pj4gICBDb3B5cmlnaHQgKGMpIDIw MTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+Pj4gcmVzZXJ2ZWQu PEJSPg0KPiA+Pj4gK0NvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLjxCUj4NCj4g Pj4+ICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4+ DQo+ID4+PiAgICoqLw0KPiA+Pj4gQEAgLTY0MiwxMCArNjQzLDYgQEAgRmluZFZhcmlhYmxlSW5S dW50aW1lQ2FjaGUgKA0KPiA+Pj4gICAgICAgICAgIH0NCj4gPj4+DQo+ID4+PiAgICAgICAgICAg Q29weU1lbSAoRGF0YSwgR2V0VmFyaWFibGVEYXRhUHRyIChSdFB0clRyYWNrLkN1cnJQdHIsDQo+ ID4+PiBtVmFyaWFibGVBdXRoRm9ybWF0KSwgVGVtcERhdGFTaXplKTsNCj4gPj4+IC0gICAgICAg IGlmIChBdHRyaWJ1dGVzICE9IE5VTEwpIHsNCj4gPj4+IC0gICAgICAgICAgKkF0dHJpYnV0ZXMg PSBSdFB0clRyYWNrLkN1cnJQdHItPkF0dHJpYnV0ZXM7DQo+ID4+PiAtICAgICAgICB9DQo+ID4+ PiAtDQo+ID4+PiAgICAgICAgICAgKkRhdGFTaXplID0gVGVtcERhdGFTaXplOw0KPiA+Pj4NCj4g Pj4+ICAgICAgICAgICBVcGRhdGVWYXJpYWJsZUluZm8gKFZhcmlhYmxlTmFtZSwgVmVuZG9yR3Vp ZCwNCj4gPj4+IFJ0UHRyVHJhY2suVm9sYXRpbGUsIFRSVUUsIEZBTFNFLCBGQUxTRSwgVFJVRSwg Jm1WYXJpYWJsZUluZm8pOyBAQA0KPiA+Pj4gLTY2MSw2ICs2NTgsMTEgQEAgRmluZFZhcmlhYmxl SW5SdW50aW1lQ2FjaGUgKA0KPiA+Pj4gICAgIH0NCj4gPj4+DQo+ID4+PiAgIERvbmU6DQo+ID4+ PiArICBpZiAoU3RhdHVzID09IEVGSV9TVUNDRVNTIHx8IFN0YXR1cyA9PSBFRklfQlVGRkVSX1RP T19TTUFMTCkgew0KPiA+Pj4gKyAgICBpZiAoQXR0cmlidXRlcyAhPSBOVUxMICYmIFJ0UHRyVHJh Y2suQ3VyclB0ciAhPSBOVUxMKSB7DQo+ID4+PiArICAgICAgKkF0dHJpYnV0ZXMgPSBSdFB0clRy YWNrLkN1cnJQdHItPkF0dHJpYnV0ZXM7DQo+ID4+PiArICAgIH0NCj4gPj4+ICsgIH0NCj4gPj4+ ICAgICBtVmFyaWFibGVSdW50aW1lQ2FjaGVSZWFkTG9jayA9IEZBTFNFOw0KPiA+Pj4NCj4gPj4+ ICAgICByZXR1cm4gU3RhdHVzOw0KPiA+Pj4gLS0NCj4gPj4+IDIuMTYuMy53aW5kb3dzLjENCj4g Pj4NCj4gPj4NCj4gPj4gDQo+ID4NCg==