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.31; helo=mga06.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (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 2B188211B63C0 for ; Mon, 11 Jun 2018 06:55:40 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Jun 2018 06:55:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,502,1520924400"; d="scan'208";a="63598239" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga001.jf.intel.com with ESMTP; 11 Jun 2018 06:55:40 -0700 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Jun 2018 06:55:39 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx115.amr.corp.intel.com (10.18.116.19) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Jun 2018 06:55:39 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.116]) with mapi id 14.03.0319.002; Mon, 11 Jun 2018 21:55:37 +0800 From: "Yao, Jiewen" To: Ard Biesheuvel CC: "Kinney, Michael D" , "edk2-devel@lists.01.org" , "Zeng, Star" , "leif.lindholm@linaro.org" Thread-Topic: [edk2] [PATCH v2 2/5] MdeModulePkg/DxeCapsuleLibFmp: permit ProcessCapsules () to be called once Thread-Index: AQHT/vYbbSADsfB+hEWX7Kwk2kNBmKRWSrdA//98PACAAIb9kIACKYCAgACr9YCAALUdEIAABtFQgABH4wCAANynW///esgAgACZnhA= Date: Mon, 11 Jun 2018 13:55:37 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AC3CBE3@shsmsx102.ccr.corp.intel.com> References: <20180608065811.2065-1-ard.biesheuvel@linaro.org> <20180608065811.2065-3-ard.biesheuvel@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503AC3515B@shsmsx102.ccr.corp.intel.com> <6534F306-C3E7-40D2-84F4-D409BF1F7B68@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503AC3A387@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AC3ADC8@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AC3ADF5@shsmsx102.ccr.corp.intel.com> <87F9382F-EBA0-4715-B323-FB0C6F8DE5A2@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNTdmMjNmMDItMDM1OS00OGVjLThmZWEtNGM1YzljNWU0ODZiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiQVo4TzhPN3NKTUNIdDZvTVdRUlNLbjhUTVVYRnhQSXNjSFZDKzRWTlVJYVg0VmVEc0Njc2R1RWJhQnRkMGNObiJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2 2/5] MdeModulePkg/DxeCapsuleLibFmp: permit ProcessCapsules () to be called once X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2018 13:55:41 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWguIEdvb2QgcG9pbnQuDQoNCkkgdGhpbmsgdGhlIGVtYmVkZGVkIGRyaXZlciBkaXNwYXRjaCBj YW4gYmUgY29udHJvbGxlZCBieSBFbmRPZkR4ZSwgd2hpY2ggaXMgc2ltaWxhciB0byBNZGVNb2R1 bGVQa2dcVW5pdmVyc2FsXFNlY3VyaXR5U3R1YkR4ZS4NCg0KU28gd2UgY2FuIGhhdmUgYm90aCBF bmRPZkR4ZSBhbmQgUGNkU3lzdGVtRm1wTG9ja0V2ZW50R3VpZC4NCkVuZE9mRHhlIGNvbnRyb2xz IGVtYmVkZGVkIGRyaXZlciBkaXNwYXRjaC4NClBjZFN5c3RlbUZtcExvY2tFdmVudEd1aWQgY29u dHJvbHMgMXN0IGNhbGwgYW5kIDJuZCBjYWxsLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0K DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGVkazItZGV2ZWwgW21haWx0 bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YgQXJkDQo+IEJp ZXNoZXV2ZWwNCj4gU2VudDogTW9uZGF5LCBKdW5lIDExLCAyMDE4IDU6NDAgQU0NCj4gVG86IFlh bywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOw0K PiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgbGVpZi5saW5kaG9sbUBsaW5hcm8u b3JnDQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYyIDIvNV0gTWRlTW9kdWxlUGtnL0R4 ZUNhcHN1bGVMaWJGbXA6IHBlcm1pdA0KPiBQcm9jZXNzQ2Fwc3VsZXMgKCkgdG8gYmUgY2FsbGVk IG9uY2UNCj4gDQo+IE9uIDExIEp1bmUgMjAxOCBhdCAxNDozNywgWWFvLCBKaWV3ZW4gPGppZXdl bi55YW9AaW50ZWwuY29tPiB3cm90ZToNCj4gPiBJZiBhbGwgZm1wIGNhbiBiZSBwcm9jZXNzZWQg b25lIHRpbWXvvIx5b3UganVzdCBuZWVkIGNhbGwgb25jZS4gVGhlbiBzeXN0ZW0NCj4gcmVzZXQu DQo+ID4NCj4gDQo+IEkgdW5kZXJzdGFuZCB0aGF0LiBCdXQgaWYgdGhlIGNhcHN1bGUgaGFzIGVt YmVkZGVkIGRyaXZlcnMsIHRoZQ0KPiBsaWJyYXJ5IHdpbGwgb25seSBkaXNwYXRjaCB0aGVtIG9u IHRoZSBzZWNvbmQgY2FsbCwgZXZlbiBpZiB0aGUNCj4gcGxhdGZvcm0gZG9lcyBub3QgcmVxdWly ZSBtYWtpbmcgdGhhdCBkaXN0aW5jdGlvbi4gSXQgc2VlbXMgdG8gbWUgdGhhdA0KPiB0aGUgcGhh c2luZyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgdGhlIHNlY29uZCBjYWxsIGlzIGNsb3NlbHkgdGll ZCB0bw0KPiB0aGUgc2VtYW50aWNzIG9mIEVuZE9mRHhlIGFuZCB0aGUgYXNzb2NpYXRlZCBwb2xp Y3kgb24gWDg2IG5vdCB0bw0KPiBhbGxvdyB0aGlyZCBwYXJ0eSBjb2RlIGJlZm9yZSBpdCBoYXMg YmVlbiBzaWduYWxsZWQuDQo+IA0KPiBDb3VsZCB3ZSBub3QgcGFyYW1ldGVyaXplIHRoaXMgaW4g c29tZSB3YXkgYXMgd2VsbD8NCj4gDQo+IA0KPiA+DQo+ID4+IOWcqCAyMDE45bm0NuaciDEx5pel 77yM5LiK5Y2IMTI6MjfvvIxBcmQgQmllc2hldXZlbA0KPiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJv Lm9yZz4g5YaZ6YGT77yaDQo+ID4+DQo+ID4+PiBPbiAxMCBKdW5lIDIwMTggYXQgMjE6MjEsIFlh bywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4gd3JvdGU6DQo+ID4+PiBKdXN0IGdvdCBz b21lIGlkZWEgc2luY2UgSSBhbSBhbHNvIHJldmlld2luZyBGbXBEZXZpY2VQa2cgcGF0Y2guDQo+ ID4+Pg0KPiA+Pj4NCj4gPj4+IFRoZSBrZXkgcHJvYmxlbSB3ZSBhcmUgdHJ5aW5nIHRvIHJlc29s dmUgdGhhdCBpczogVGhlIGNvcmUgY29kZSB1c2VzDQo+IEVuZE9mRHhlIGFzIHRoZSBsb2NrIGV2 ZW50IGZvciBzeXN0ZW0gZmlybXdhcmUsIGJ1dCBhbiBBUk0gcGxhdGZvcm0gbWF5IHdhbnQNCj4g dG8gbG9jayBzeXN0ZW0gZmlybXdhcmUgbGF0ZXIsIG1heWJlIGluIG90aGVyIGxvY2sgZXZlbnQu DQo+ID4+Pg0KPiA+Pj4gQXMgc3VjaCwgaG93IGFib3V0IHdlIGdlbmVyYWxpemUgdGhlIGxvY2sg ZXZlbnQgYXMNCj4gUGNkU3lzdGVtRm1wTG9ja0V2ZW50R3VpZD8gV2UgY2FuIHVzZSBFbmRPZkR4 ZUd1aWQgYXMgZGVmYXVsdCBvbmUgdG8ga2VlcA0KPiB0aGUgY29tcGF0aWJpbGl0eS4gQXQgc2Ft ZSB0aW1lIHRoaXMgYnJpbmdzIHRoZSBmbGV4aWJpbGl0eSBmb3IgcGxhdGZvcm0gb3ZlcnJpZGlu Zy4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gV2Ugb25seSBuZWVkIHVwZGF0ZSBEeGVDYXBzdWxlTGli Q29uc3RydWN0b3IoKSB0byB1c2UgdGhlIG5ldyBQY2RHdWlkLA0KPiBpbnN0ZWFkIG9mIGhhcmRj b2RlIEVuZE9mRHhlLg0KPiA+Pj4gV2UgZG9uJ3QgbmVlZCB1cGRhdGUgdGhlIGxvZ2ljIGluIFBy b2Nlc3NDYXBzdWxlcygpIGFuZA0KPiBQcm9jZXNzVGhlc2VDYXBzdWxlcygpLg0KPiA+Pj4gVGhl IHBvbGljeSBpbiBjdXJyZW50IHBsYXRmb3JtIGlzIGFscmVhZHkgZW5mb3JjZWQsIGlmIHRoZSBw bGF0Zm9ybSBoYXMgYQ0KPiB0cnVzdGVkIGNvbnNvbGUuDQo+ID4+PiBGb3IgQVJNIHBsYXRmb3Jt LCB3aGljaCB3YW50cyB0byBsb2NrIHN5c3RlbSBmaXJtd2FyZSBsYXRlci4gSXQgY2FuDQo+IGNv bmZpZ3VyZSBhbm90aGVyIGxvY2sgZXZlbnQgR1VJRCBleHBsaWNpdGx5IGluIHBsYXRmb3JtIERT Qy4NCj4gPj4+DQo+ID4+DQo+ID4+IEJ1dCB0aGF0IG1lYW5zIHdlIGFyZSBzdGlsbCByZXF1aXJl ZCB0byBjYWxsIFByb2Nlc3NDYXBzdWxlcyAoKSB0d2ljZSwgbm8/DQo+ID4+DQo+ID4+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86 ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mDQo+IFlhbywNCj4g Pj4+PiBKaWV3ZW4NCj4gPj4+PiBTZW50OiBTdW5kYXksIEp1bmUgMTAsIDIwMTggMTI6MDIgUE0N Cj4gPj4+PiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsgQXJkIEJpZXNoZXV2ZWwNCj4gPj4+PiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4g Pj4+PiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IGxlaWYubGluZGhvbG1AbGluYXJvLm9y ZzsgWmVuZywgU3Rhcg0KPiA+Pj4+IDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+Pj4+IFN1Ympl Y3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYyIDIvNV0gTWRlTW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJG bXA6DQo+IHBlcm1pdA0KPiA+Pj4+IFByb2Nlc3NDYXBzdWxlcyAoKSB0byBiZSBjYWxsZWQgb25j ZQ0KPiA+Pj4+DQo+ID4+Pj4gTXkgY29uY2VybiBpcyB0aGF0ICphbHdheXMgYWxsb3dpbmcqIHBy b2Nlc3NpbmcgU3lzdGVtQ2Fwc3VsZSBhZnRlcg0KPiBFbmRPZkR4ZQ0KPiA+Pj4+IGhhcyBzZWN1 cml0eSByaXNrLg0KPiA+Pj4+DQo+ID4+Pj4gSU1ITywgdGhlIHJpc2sgaXMgbm90ICpwcm9jZXNz KiwgaWYgaXQgaXMgYSBwbGF0Zm9ybSBjaG9pY2UuIEluc3RlYWQsIHRoZSByaXNrIGlzDQo+ID4+ Pj4gKmFsbG93KiwgaW4gdGhlIGNvcmUgbG9naWMuDQo+ID4+Pj4NCj4gPj4+PiBJZiB3ZSByZWFs bHkgd2FudCB0byBkbyB0aGF0LCBJIGhvcGUgd2UgbmVlZCBhIHdheSB0byBkaXN0aW5ndWlzaCB0 aGUNCj4gZGlmZmVyZW5jZQ0KPiA+Pj4+IGJldHdlZW4gYSBwbGF0Zm9ybSBkaXNwYXRjaGluZyBT eXN0ZW1DYXBzdWxlIGFmdGVyIEVuZE9mRHhlDQo+ICpwdXJwb3NlbHkqIGFuZA0KPiA+Pj4+IGEg cGxhdGZvcm0gZGlzcGF0Y2hpbmcgU3lzdGVtQ2Fwc3VsZSBhZnRlciBFbmRPZkR4ZSAqYnkgbWlz dGFrZSouDQo+ID4+Pj4NCj4gPj4+PiBNYXliZSBzb21lIHBvbGljeSBlbmZvcmNlbWVudCBpbiB0 aGUgY29yZSBsb2dpYy4gU3RhdGljIHBvbGljeSwgYXQgYnVpbGQNCj4gdGltZS4NCj4gPj4+Pg0K PiA+Pj4+IFRoYW5rIHlvdQ0KPiA+Pj4+IFlhbyBKaWV3ZW4NCj4gPj4+Pg0KPiA+Pj4+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRA0K PiA+Pj4+PiBTZW50OiBTdW5kYXksIEp1bmUgMTAsIDIwMTggODo1NyBBTQ0KPiA+Pj4+PiBUbzog QXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBZYW8sIEppZXdlbg0K PiA+Pj4+PiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4+Pj4+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAx Lm9yZzsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47DQo+ID4+Pj4+IGxlaWYubGlu ZGhvbG1AbGluYXJvLm9yZw0KPiA+Pj4+PiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSCB2MiAy LzVdIE1kZU1vZHVsZVBrZy9EeGVDYXBzdWxlTGliRm1wOg0KPiBwZXJtaXQNCj4gPj4+Pj4gUHJv Y2Vzc0NhcHN1bGVzICgpIHRvIGJlIGNhbGxlZCBvbmNlDQo+ID4+Pj4+DQo+ID4+Pj4+IEFyZCwN Cj4gPj4+Pj4NCj4gPj4+Pj4gSSBhZ3JlZSBpdCBzaG91bGQgYmUgYSBwbGF0Zm9ybSBjaG9pY2Ug dG8gcHJvY2VzcyBjYXBzdWxlcw0KPiA+Pj4+PiBiZWZvcmUgb3IgYWZ0ZXIgRW5kIG9mIERYRS4g IEl0IGlzIGV2ZW4gYWxsb3dlZCBpbiB0aGUNCj4gPj4+Pj4gVUVGSSBTcGVjIGZvciBjYXBzdWxl cyB0byBiZSBwcm9jZXNzZWQgaW1tZWRpYXRlbHkNCj4gPj4+Pj4gd2hpY2ggd291bGQgaW5jbHVk ZSBhdCBPUyBydW50aW1lIGFmdGVyIEV4aXRCb290U2VydmljZXMuDQo+ID4+Pj4+DQo+ID4+Pj4+ IFRoZXJlIGFyZSAyIGlucHV0cyB0byB0aGVzZSBjaG9pY2VzOg0KPiA+Pj4+PiAqIFRoZSBmbGFn cyBzZXQgaW4gdGhlIENhcHN1bGUgaXRzZWxmLiAgU2VlIFVFRkkgMi43IFNwZWMNCj4gPj4+Pj4g IFRhYmxlIDM4IGZvciB0aGUgNSBhbGxvd2VkIGNvbWJpbmF0aW9ucy4NCj4gPj4+Pj4gKiBQbGF0 Zm9ybSBwb2xpY3kgZm9yIGVhY2ggb2YgdGhlc2UgNSBjYXBzdWxlIHR5cGVzIGFuZA0KPiA+Pj4+ PiAgd2hlbiBlYWNoIG9mIHRoZXNlIDUgY2Fwc3VsZSB0eXBlcyBhcmUgYWxsb3dlZCB0byBiZQ0K PiA+Pj4+PiAgcHJvY2Vzc2VkLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBKaWV3ZW4ncyBjb21tZW50cyBw b2ludCB0byBzb21lIGFzc3VtcHRpb25zIHRoYXQgaGF2ZSBiZWVuDQo+ID4+Pj4+IG1hZGUgaW4g dGhlIGxvZ2ljLiAgVGhlc2UgYXNzdW1wdGlvbnMgbWF5IGJlIGNvbnNpZGVyZWQgYQ0KPiA+Pj4+ PiBzYWZlIGRlZmF1bHQgcGxhdGZvcm0gcG9saWN5LCBidXQgdGhlIGNvZGUgbG9naWMgc2hvdWxk DQo+ID4+Pj4+IGFsbG93IHRoZSBwbGF0Zm9ybSB0byBlYXNpbHkgc2VsZWN0IGFsdGVybmF0ZSBw b2xpY2llcy4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSB0aGluayB0aGUgcGF0Y2ggeW91IGhhdmUgcHJv dmlkZWQgYXR0ZW1wdHMgdG8gYWRkIG9uZQ0KPiA+Pj4+PiBhZGRpdGlvbmFsIHBvbGljeS4gIFBl cmhhcHMgd2Ugc2hvdWxkIGxvb2sgYXQgdGhpcyBmcm9tDQo+ID4+Pj4+IHRoZSBVRUZJIFNwZWMg cGVyc3BlY3RpdmUgYW5kIHNlZSBob3cgZGlmZmljdWx0IGl0IGlzIHRvDQo+ID4+Pj4+IGV4cHJl c3MgcG9saWNpZXMgZm9yIHRoZSBzdXBwb3J0ZWQgY2Fwc3VsZSB0eXBlcy4NCj4gPj4+Pj4NCj4g Pj4+Pj4gSSB3aWxsIHJldmlldyB5b3VyIHBhdGNoIGluIG1vcmUgZGV0YWlsIHRvbW9ycm93Lg0K PiA+Pj4+Pg0KPiA+Pj4+PiBUaGFua3MsDQo+ID4+Pj4+DQo+ID4+Pj4+IE1pa2UNCj4gPj4+Pj4N Cj4gPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+PiBGcm9tOiBBcmQg Qmllc2hldXZlbCBbbWFpbHRvOmFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmddDQo+ID4+Pj4+PiBT ZW50OiBTYXR1cmRheSwgSnVuZSA5LCAyMDE4IDEwOjQyIFBNDQo+ID4+Pj4+PiBUbzogWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+Pj4+Pj4gQ2M6IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnOyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+Pj4+Pj4gPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsgWmVuZywgU3Rhcg0KPiA+Pj4+Pj4gPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBs ZWlmLmxpbmRob2xtQGxpbmFyby5vcmcNCj4gPj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BB VENIIHYyIDIvNV0NCj4gPj4+Pj4+IE1kZU1vZHVsZVBrZy9EeGVDYXBzdWxlTGliRm1wOiBwZXJt aXQgUHJvY2Vzc0NhcHN1bGVzDQo+ID4+Pj4+PiAoKSB0byBiZSBjYWxsZWQgb25jZQ0KPiA+Pj4+ Pj4NCj4gPj4+Pj4+IE9uIDEwIEp1bmUgMjAxOCBhdCAwNzozOCwgWWFvLCBKaWV3ZW4NCj4gPj4+ Pj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT4gd3JvdGU6DQo+ID4+Pj4+Pj4gSGkgQXJkDQo+ID4+ Pj4+Pj4gQWNjb3JkaW5nIHRvIFBJIHNwZWMsICJQcmlvciB0byBpbnZva2luZyBhbnkgVUVGSQ0K PiA+Pj4+Pj4gZHJpdmVycywgb3IgYXBwbGljYXRpb25zIHRoYXQgYXJlIG5vdCBmcm9tIHRoZSBw bGF0Zm9ybQ0KPiA+Pj4+Pj4gbWFudWZhY3R1cmVyLCBvciBjb25uZWN0aW5nIGNvbnNvbGVzLCB0 aGUgcGxhdGZvcm0NCj4gPj4+Pj4+IHNob3VsZCBzaWduYWxzIHRoZSBldmVudCBFRklfRU5EX09G X0RYRV9FVkVOVF9HVUlEIg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSW4gYnJpZWYsIEVuZE9mRHhl IGlzIHNpZ25hbGVkIGJlZm9yZSAzcmQgcGFydCBjb2RlDQo+ID4+Pj4+PiBydW5uaW5nLg0KPiA+ Pj4+Pj4+DQo+ID4+Pj4+Pj4gQXMgc3VjaCwgaXQgaXMgbGVnYWwgdGhhdCBhIHRydXN0ZWQgY29u c29sZSBpcw0KPiA+Pj4+Pj4gY29ubmVjdGVkIGJlZm9yZSBFbmRPZkR4ZS4NCj4gPj4+Pj4+PiBZ b3UgY2FuIHJlcG9ydCBwcm9ncmVzcyB0byB1c2VyIGJlZm9yZSBFbmRPZkR4ZS4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFNvIGhvdyBkbyBJIGNvbm5lY3QgYSB0cnVzdGVkIGNvbnNv bGUgb24gYSBzeXN0ZW0gd2l0aA0KPiA+Pj4+Pj4gYSBwbHVnaW4gZ3JhcGhpY3MgY2FyZD8NCj4g Pj4+Pj4+IEhvdyBjYW4gSSByZXBvcnQgY2Fwc3VsZSB1cGRhdGUgcHJvZ3Jlc3Mgb24gc3VjaCBh DQo+ID4+Pj4+PiBzeXN0ZW0/DQo+ID4+Pj4+PiBPbiBhIHN5c3RlbSBzdWNoIGFzIEFSTSB3aGVy ZSB0aGUgYWN0dWFsIGZsYXNoIHVwZGF0ZQ0KPiA+Pj4+Pj4gaW52b2x2ZXMgY2FsbHMNCj4gPj4+ Pj4+IGludG8gdGhlIHN0YW5kYWxvbmUgTU0gbGF5ZXIsIHdoaWNoIG1ha2VzIHRoZQ0KPiA+Pj4+ Pj4gZGlzdGluY3Rpb24gdW5uZWNlc3NhcnksDQo+ID4+Pj4+PiBob3cgZG8geW91IHJlY29tbWVu ZCB0byBoYW5kbGUgdGhpcyBpZiBpdCBpcyBtYW5kYXRvcnkNCj4gPj4+Pj4+IGFjY29yZGluZyB0 bw0KPiA+Pj4+Pj4geW91IHRvIHByb2Nlc3MgdGhlIGNhcHN1bGUgYmVmb3JlIEVuZE9mRHhlPw0K PiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4+Pj4+Pj4+IEZyb206IEFyZCBCaWVzaGV1dmVsDQo+ID4+Pj4+PiBbbWFpbHRvOmFyZC5i aWVzaGV1dmVsQGxpbmFyby5vcmddDQo+ID4+Pj4+Pj4+IFNlbnQ6IEZyaWRheSwgSnVuZSA4LCAy MDE4IDg6MzggQU0NCj4gPj4+Pj4+Pj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVs LmNvbT4NCj4gPj4+Pj4+Pj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBLaW5uZXksIE1p Y2hhZWwgRA0KPiA+Pj4+Pj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPj4+Pj4+ Pj4gWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47DQo+ID4+Pj4+PiBsZWlmLmxpbmRo b2xtQGxpbmFyby5vcmcNCj4gPj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjIg Mi81XQ0KPiA+Pj4+Pj4gTWRlTW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJGbXA6IHBlcm1pdA0KPiA+ Pj4+Pj4+PiBQcm9jZXNzQ2Fwc3VsZXMgKCkgdG8gYmUgY2FsbGVkIG9uY2UNCj4gPj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IE9uIDggSnVuIDIwMTgsIGF0IDE0 OjM0LCBZYW8sIEppZXdlbg0KPiA+Pj4+Pj4gPGppZXdlbi55YW9AaW50ZWwuY29tPiB3cm90ZToN Cj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBIaSBBcmQNCj4gPj4+Pj4+Pj4+IFdlIGRvbid0IGFs bG93IHBsYXRmb3JtIHRvIHVwZGF0ZSBzeXN0ZW0gZmlybXdhcmUNCj4gPj4+Pj4+ICphZnRlciog RW5kT2ZEeGUuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQWNjb3JkaW5nIHRvIFBJIHNwZWMs IGFmdGVyIEVuZE9mRHhlLCAzcmQgcGFydA0KPiA+Pj4+Pj4gY29kZSBzdGFydCBydW5uaW5nLiBJ dCBicmluZ3MNCj4gPj4+Pj4+Pj4gc2VjdXJpdHkgcmlzayBpZiB3ZSBhbGxvdyBzeXN0ZW0gZmly bXdhcmUgYWZ0ZXINCj4gPj4+Pj4+IEVuZE9mRHhlLg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ IEluIG91ciBYODYgc3lzdGVtIGRlc2lnbiwgd2UgbG9jayBmbGFzaCBwYXJ0DQo+ID4+Pj4+PiAq YmVmb3JlKiBFbmRPZkR4ZSBpbiBhbnkgYm9vdA0KPiA+Pj4+Pj4+PiBtb2RlLg0KPiA+Pj4+Pj4+ Pj4gRXZlbiBpbiBDYXBzdWxlVXBkYXRlIGJvb3QgbW9kZSwgd2UgYWxzbyBsb2NrDQo+ID4+Pj4+ PiBmbGFzaCBwYXJ0IGF0IEVuZE9mRHhlLCBqdXN0IGluDQo+ID4+Pj4+Pj4+IGNhc2UgdGhlIGNh cHN1bGUgdXBkYXRlIGRvZXMgbm90IGluZGljYXRlIGEgcmVzZXQuDQo+ID4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4gV291bGQgeW91IHBsZWFzZSBzaGFyZSB0aGUgaW5mbywgd2h5IHlvdXIgcGxhdGZv cm0NCj4gPj4+Pj4+IG5lZWQgdXBkYXRlIHN5c3RlbQ0KPiA+Pj4+Pj4+PiBmaXJtd2FyZSBhZnRl ciBFbmRPZkR4ZT8NCj4gPj4+Pj4+Pj4+IElzIHRoYXQgcG9zc2libGUgdG8gbWFrZSBpdCBlYXJs aWVyPw0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEJl Y2F1c2Ugd2UgbmVlZCBzb21lIGtpbmQgb2YgY29uc29sZSB0byByZXBvcnQNCj4gPj4+Pj4+IHBy b2dyZXNzIHRvIHRoZSB1c2VyLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBUaGUgc2VjdXJlIHBs YXRmb3JtIGV4ZWN1dGlvbiBjb250ZXh0IGlzIGNvbXBsZXRlbHkNCj4gPj4+Pj4+IHNlcGFyYXRl IGZyb20gVUVGSSBvbiBBcm0sDQo+ID4+Pj4+Pj4+IHNvIGZvciB1cyB0aGUgZGlzdGluY3Rpb24g ZG9lcyBub3QgbWFrZSBzZW5zZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IFRoYW5rIHlvdQ0K PiA+Pj4+Pj4+Pj4gWWFvIEppZXdlbg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+Pj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0 bzplZGsyLWRldmVsLQ0KPiA+Pj4+Pj4gYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZiBP Zg0KPiA+Pj4+Pj4+PiBBcmQNCj4gPj4+Pj4+Pj4+PiBCaWVzaGV1dmVsDQo+ID4+Pj4+Pj4+Pj4g U2VudDogRnJpZGF5LCBKdW5lIDgsIDIwMTggMjo1OCBBTQ0KPiA+Pj4+Pj4+Pj4+IFRvOiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4+Pj4+Pj4+IENjOiBLaW5uZXksIE1pY2hhZWwgRA0K PiA+Pj4+Pj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPj4+ Pj4+Pj4+PiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyDQo+ID4+Pj4+PiA8c3Rh ci56ZW5nQGludGVsLmNvbT47DQo+ID4+Pj4+Pj4+Pj4gbGVpZi5saW5kaG9sbUBsaW5hcm8ub3Jn OyBBcmQgQmllc2hldXZlbA0KPiA+Pj4+Pj4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ ID4+Pj4+Pj4+Pj4gU3ViamVjdDogW2VkazJdIFtQQVRDSCB2MiAyLzVdDQo+ID4+Pj4+PiBNZGVN b2R1bGVQa2cvRHhlQ2Fwc3VsZUxpYkZtcDogcGVybWl0DQo+ID4+Pj4+Pj4+Pj4gUHJvY2Vzc0Nh cHN1bGVzICgpIHRvIGJlIGNhbGxlZCBvbmNlDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBQ ZXJtaXQgUHJvY2Vzc0NhcHN1bGVzICgpIHRvIGJlIGNhbGxlZCBvbmx5IGENCj4gPj4+Pj4+IHNp bmdsZSB0aW1lLCBhZnRlcg0KPiA+Pj4+Pj4+Pj4+IEVuZE9mRHhlLiBUaGlzIGFsbG93cyBwbGF0 Zm9ybXMgdGhhdCBhcmUgYWJsZSB0bw0KPiA+Pj4+Pj4gdXBkYXRlIHN5c3RlbQ0KPiA+Pj4+Pj4+ Pj4+IGZpcm13YXJlIGFmdGVyIEVuZE9mRHhlIChlLmcuLCBiZWNhdXNlIHRoZSBmbGFzaA0KPiA+ Pj4+Pj4gUk9NIGlzIG5vdCBsb2NrZWQNCj4gPj4+Pj4+Pj4+PiBkb3duKSB0byBkbyBzbyBhdCBh IHRpbWUgd2hlbiBhIG5vbi10cnVzdGVkDQo+ID4+Pj4+PiBjb25zb2xlIGlzIHVwIGFuZCBydW5u aW5nLA0KPiA+Pj4+Pj4+Pj4+IGFuZCBwcm9ncmVzcyBjYW4gYmUgcmVwb3J0ZWQgdG8gdGhlIHVz ZXIuDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9D b3JlIENvbnRyaWJ1dGlvbg0KPiA+Pj4+Pj4gQWdyZWVtZW50IDEuMQ0KPiA+Pj4+Pj4+Pj4+IFNp Z25lZC1vZmYtYnk6IEFyZCBCaWVzaGV1dmVsDQo+ID4+Pj4+PiA8YXJkLmJpZXNoZXV2ZWxAbGlu YXJvLm9yZz4NCj4gPj4+Pj4+Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4gTWRlTW9k dWxlUGtnL0xpYnJhcnkvRHhlQ2Fwc3VsZUxpYkZtcC9EeGVDYXBzdWxlUHJvY2Vzcw0KPiA+Pj4+ Pj4gTGliLmMgfCAxOA0KPiA+Pj4+Pj4+Pj4+ICsrKysrKysrKysrKy0tLS0tLQ0KPiA+Pj4+Pj4+ Pj4+IDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPiA+ Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4g YS9NZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVDYXBzdWxlTGliRm1wL0R4ZUNhcHN1bGVQcm9jZQ0K PiA+Pj4+Pj4gc3NMaWIuYw0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+PiBiL01kZU1vZHVsZVBrZy9M aWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhlQ2Fwc3VsZVByb2NlDQo+ID4+Pj4+PiBzc0xpYi5j DQo+ID4+Pj4+Pj4+Pj4gaW5kZXggMjZjYTRlMjk1ZjIwLi5hZDgzNjYwZjE3MzcgMTAwNjQ0DQo+ ID4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+PiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1 bGVMaWJGbXAvRHhlQ2Fwc3VsZVByb2NlDQo+ID4+Pj4+PiBzc0xpYi5jDQo+ID4+Pj4+Pj4+Pj4g KysrDQo+ID4+Pj4+PiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhl Q2Fwc3VsZVByb2NlDQo+ID4+Pj4+PiBzc0xpYi5jDQo+ID4+Pj4+Pj4+Pj4gQEAgLTEwMCw2ICsx MDAsNyBAQCBJc1ZhbGlkQ2Fwc3VsZUhlYWRlciAoDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ PiBleHRlcm4gQk9PTEVBTg0KPiA+Pj4+Pj4gbUR4ZUNhcHN1bGVMaWJFbmRPZkR4ZTsNCj4gPj4+ Pj4+Pj4+PiBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICBtTmVlZFJlc2V0Ow0KPiA+ Pj4+Pj4+Pj4+ICtCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICBtRmlyc3RSb3VuZCA9 DQo+ID4+Pj4+PiBUUlVFOw0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gVk9JRCAgICAgICAg ICAgICAgICAgICAgICAgICoqbUNhcHN1bGVQdHI7DQo+ID4+Pj4+Pj4+Pj4gRUZJX1NUQVRVUyAg ICAgICAgICAgICAgICAgICptQ2Fwc3VsZVN0YXR1c0FycmF5Ow0KPiA+Pj4+Pj4+Pj4+IEBAIC0z NjQsOCArMzY1LDExIEBADQo+ID4+Pj4+PiBQb3B1bGF0ZUNhcHN1bGVJbkNvbmZpZ3VyYXRpb25U YWJsZSAoDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiAgRWFjaCBpbmRpdmlkdWFsIGNhcHN1 bGUgcmVzdWx0IGlzIHJlY29yZGVkIGluDQo+ID4+Pj4+PiBjYXBzdWxlIHJlY29yZCB2YXJpYWJs ZS4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IC0gIEBwYXJhbVtpbl0gIEZpcnN0Um91bmQg ICAgICAgICBUUlVFOiAgRmlyc3QNCj4gPj4+Pj4+IHJvdW5kLiBOZWVkIHNraXAgdGhlDQo+ID4+ Pj4+Pj4+IEZNUA0KPiA+Pj4+Pj4+Pj4+IGNhcHN1bGVzIHdpdGggbm9uIHplcm8gRW1iZWRkZWRE cml2ZXJDb3VudC4NCj4gPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRkFMU0U6IFByb2Nlc3MNCj4gPj4+Pj4+IHJlc3QgRk1QIGNhcHN1bGVzLg0KPiA+Pj4+Pj4+ Pj4+ICsgIEBwYXJhbVtpbl0gIEZpcnN0Um91bmQgICAgICAgICBXaGV0aGVyIHRoaXMgaXMNCj4g Pj4+Pj4+IHRoZSBmaXJzdCBpbnZvY2F0aW9uDQo+ID4+Pj4+Pj4+Pj4gKyAgQHBhcmFtW2luXSAg TGFzdFJvdW5kICAgICAgICAgIFdoZXRoZXIgdGhpcyBpcw0KPiA+Pj4+Pj4gdGhlIGxhc3QgaW52 b2NhdGlvbg0KPiA+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG QUxTRTogIEZpcnN0DQo+ID4+Pj4+PiBvZiAyIHJvdW5kcy4gTmVlZCBza2lwDQo+ID4+Pj4+Pj4+ IHRoZQ0KPiA+Pj4+Pj4+Pj4+IEZNUA0KPiA+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+IGNhcHN1bGVz IHdpdGggbm9uIHplcm8NCj4gPj4+Pj4+Pj4+PiBFbWJlZGRlZERyaXZlckNvdW50Lg0KPiA+Pj4+ Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFOiAgIFByb2Nlc3MN Cj4gPj4+Pj4+IHJlc3QgRk1QIGNhcHN1bGVzLg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4g IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgVGhlcmUgaXMgbm8NCj4gPj4+Pj4+IGVy cm9yIHdoZW4gcHJvY2Vzc2luZw0KPiA+Pj4+Pj4+Pj4+IGNhcHN1bGVzLg0KPiA+Pj4+Pj4+Pj4+ ICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgIE5vIGVub3VnaA0KPiA+Pj4+Pj4gcmVz b3VyY2UgdG8gcHJvY2Vzcw0KPiA+Pj4+Pj4+Pj4+IGNhcHN1bGVzLg0KPiA+Pj4+Pj4+Pj4+IEBA IC0zNzMsNyArMzc3LDggQEANCj4gPj4+Pj4+IFBvcHVsYXRlQ2Fwc3VsZUluQ29uZmlndXJhdGlv blRhYmxlICgNCj4gPj4+Pj4+Pj4+PiAqKi8NCj4gPj4+Pj4+Pj4+PiBFRklfU1RBVFVTDQo+ID4+ Pj4+Pj4+Pj4gUHJvY2Vzc1RoZXNlQ2Fwc3VsZXMgKA0KPiA+Pj4+Pj4+Pj4+IC0gIElOIEJPT0xF QU4gIEZpcnN0Um91bmQNCj4gPj4+Pj4+Pj4+PiArICBJTiBCT09MRUFOICBGaXJzdFJvdW5kLA0K PiA+Pj4+Pj4+Pj4+ICsgIElOIEJPT0xFQU4gIExhc3RSb3VuZA0KPiA+Pj4+Pj4+Pj4+ICApDQo+ ID4+Pj4+Pj4+Pj4gew0KPiA+Pj4+Pj4+Pj4+ICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAg U3RhdHVzOw0KPiA+Pj4+Pj4+Pj4+IEBAIC00NTMsNyArNDU4LDcgQEAgUHJvY2Vzc1RoZXNlQ2Fw c3VsZXMgKA0KPiA+Pj4+Pj4+Pj4+ICAgICAgICBjb250aW51ZTsNCj4gPj4+Pj4+Pj4+PiAgICAg IH0NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IC0gICAgICBpZiAoKCFGaXJzdFJvdW5kKSB8 fCAoRW1iZWRkZWREcml2ZXJDb3VudA0KPiA+Pj4+Pj4gPT0gMCkpIHsNCj4gPj4+Pj4+Pj4+PiAr ICAgICAgaWYgKExhc3RSb3VuZCB8fCAoRW1iZWRkZWREcml2ZXJDb3VudCA9PQ0KPiA+Pj4+Pj4g MCkpIHsNCj4gPj4+Pj4+Pj4+PiAgICAgICAgREVCVUcoKERFQlVHX0lORk8sICJQcm9jZXNzQ2Fw c3VsZUltYWdlIC0NCj4gPj4+Pj4+IDB4JXhcbiIsDQo+ID4+Pj4+Pj4+Pj4gQ2Fwc3VsZUhlYWRl cikpOw0KPiA+Pj4+Pj4+Pj4+ICAgICAgICBTdGF0dXMgPSBQcm9jZXNzQ2Fwc3VsZUltYWdlDQo+ ID4+Pj4+PiAoQ2Fwc3VsZUhlYWRlcik7DQo+ID4+Pj4+Pj4+Pj4gICAgICAgIG1DYXBzdWxlU3Rh dHVzQXJyYXkgW0luZGV4XSA9IFN0YXR1czsNCj4gPj4+Pj4+Pj4+PiBAQCAtNTQ2LDcgKzU1MSw3 IEBAIFByb2Nlc3NDYXBzdWxlcyAoDQo+ID4+Pj4+Pj4+Pj4gIEVGSV9TVEFUVVMgICAgICAgICAg ICAgICAgICAgIFN0YXR1czsNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+ICBpZiAoIW1EeGVD YXBzdWxlTGliRW5kT2ZEeGUpIHsNCj4gPj4+Pj4+Pj4+PiAtICAgIFN0YXR1cyA9IFByb2Nlc3NU aGVzZUNhcHN1bGVzKFRSVUUpOw0KPiA+Pj4+Pj4+Pj4+ICsgICAgU3RhdHVzID0gUHJvY2Vzc1Ro ZXNlQ2Fwc3VsZXMoVFJVRSwgRkFMU0UpOw0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gICAg Ly8NCj4gPj4+Pj4+Pj4+PiAgICAvLyBSZWJvb3QgU3lzdGVtIGlmIGFuZCBvbmx5IGlmIGFsbCBj YXBzdWxlDQo+ID4+Pj4+PiBwcm9jZXNzZWQuDQo+ID4+Pj4+Pj4+Pj4gQEAgLTU1NSw4ICs1NjAs OSBAQCBQcm9jZXNzQ2Fwc3VsZXMgKA0KPiA+Pj4+Pj4+Pj4+ICAgIGlmIChtTmVlZFJlc2V0ICYm IEFyZUFsbEltYWdlc1Byb2Nlc3NlZCgpKSB7DQo+ID4+Pj4+Pj4+Pj4gICAgICBEb1Jlc2V0U3lz dGVtKCk7DQo+ID4+Pj4+Pj4+Pj4gICAgfQ0KPiA+Pj4+Pj4+Pj4+ICsgICAgbUZpcnN0Um91bmQg PSBGQUxTRTsNCj4gPj4+Pj4+Pj4+PiAgfSBlbHNlIHsNCj4gPj4+Pj4+Pj4+PiAtICAgIFN0YXR1 cyA9IFByb2Nlc3NUaGVzZUNhcHN1bGVzKEZBTFNFKTsNCj4gPj4+Pj4+Pj4+PiArICAgIFN0YXR1 cyA9IFByb2Nlc3NUaGVzZUNhcHN1bGVzKG1GaXJzdFJvdW5kLA0KPiA+Pj4+Pj4gVFJVRSk7DQo+ ID4+Pj4+Pj4+Pj4gICAgLy8NCj4gPj4+Pj4+Pj4+PiAgICAvLyBSZWJvb3QgU3lzdGVtIGlmIHJl cXVpcmVkIGFmdGVyIGFsbA0KPiA+Pj4+Pj4gY2Fwc3VsZSBwcm9jZXNzZWQNCj4gPj4+Pj4+Pj4+ PiAgICAvLw0KPiA+Pj4+Pj4+Pj4+IC0tDQo+ID4+Pj4+Pj4+Pj4gMi4xNy4wDQo+ID4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXw0KPiA+Pj4+Pj4+Pj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4+Pj4+Pj4+ Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4+Pj4+Pj4+PiBodHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4gPj4+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4+IGVkazItZGV2ZWwgbWFpbGlu ZyBsaXN0DQo+ID4+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4+PiBodHRwczovL2xp c3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxp c3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFp bG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=