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.24; helo=mga09.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 C74842119A467 for ; Mon, 17 Dec 2018 18:12:08 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Dec 2018 18:12:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,367,1539673200"; d="scan'208";a="111371811" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga003.jf.intel.com with ESMTP; 17 Dec 2018 18:12:08 -0800 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 17 Dec 2018 18:12:07 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 17 Dec 2018 18:12:07 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.203]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.59]) with mapi id 14.03.0415.000; Tue, 18 Dec 2018 10:12:05 +0800 From: "Gao, Liming" To: "Yao, Jiewen" , Ard Biesheuvel , "Wu, Hao A" CC: "edk2-devel@lists.01.org" , "Zhang, Chao B" Thread-Topic: [edk2] [PATCH 05/13] MdePkg/Library/BaseLib/AArch64: Add AsmLfence function Thread-Index: AQHUk6Z+TE6x+aZJSkutTR8ftwwg56V9u3mAgARvayD//5kKgIAAR8KAgAAG4wCAAAP4AIAAAa0AgAABSwCAAAJ8gIAADBmAgAEXlYCAAIZxcA== Date: Tue, 18 Dec 2018 02:12:04 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E38DCD9@SHSMSX104.ccr.corp.intel.com> References: <1544789607-11316-1-git-send-email-jagadeesh.ujja@arm.com> <1544789607-11316-6-git-send-email-jagadeesh.ujja@arm.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E38D42E@SHSMSX104.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F457847@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F457F55@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F457F7E@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F458002@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F45A684@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503F45A684@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 05/13] MdePkg/Library/BaseLib/AArch64: Add AsmLfence function 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: Tue, 18 Dec 2018 02:12:09 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Smlld2VuOg0KICBOZXcgU3BlY3VsYXRpb25CYXJyaWVyKCkgd2lsbCBiZSBmb3IgYWxsIEFSQ0hz LiBJQTMyIGFuZCBYNjQgaW1wbGVtZW50YXRpb24gd2lsbCBiZSBzYW1lIHRvIEFzbUxmZW5jZSgp LiBBUk0gYW5kIEFBUkNINjQgd2lsbCBoYXZlIHRoZWlyIG93biBpbXBsZW1lbnRhdGlvbi4gUmln aHQ/IA0KDQogIEFmdGVyIHRoaXMgQVBJIGlzIGFkZGVkLCB0aGUgY29uc3VtZXIgY29kZSB0byB1 c2UgQXNtTGZlbmNlKCkgY2FuIGJlIHVwZGF0ZWQgdG8gdXNlIFNwZWN1bGF0aW9uQmFycmllcigp LiANCg0KVGhhbmtzDQpMaW1pbmcNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206 IFlhbywgSmlld2VuDQo+U2VudDogVHVlc2RheSwgRGVjZW1iZXIgMTgsIDIwMTggMTA6MDggQU0N Cj5UbzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBXdSwgSGFv IEENCj48aGFvLmEud3VAaW50ZWwuY29tPg0KPkNjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsg R2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgWmhhbmcsDQo+Q2hhbyBCIDxjaGFv LmIuemhhbmdAaW50ZWwuY29tPg0KPlN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDA1LzEzXSBN ZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNoNjQ6IEFkZA0KPkFzbUxmZW5jZSBmdW5jdGlvbg0K Pg0KPisgV3UgSGFvLCBzaW5jZSBoZSBjb250cmlidXRlZCB0aGUgb3JpZ2luYWwgcGF0Y2guDQo+ DQo+QXJkDQo+V291bGQgeW91IHBsZWFzZSBmaWxlIGEgQnVnemlsbGEgZm9yIHRoYXQ/IFRoZW4g d2UgY2FuIHN0YXJ0IHdvcmtpbmcgb24gdGhhdC4NCj4NCj5UaGFuayB5b3UNCj5ZYW8gSmlld2Vu DQo+DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogQXJkIEJpZXNoZXV2 ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPj4gU2VudDogTW9uZGF5LCBE ZWNlbWJlciAxNywgMjAxOCA1OjI4IFBNDQo+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9A aW50ZWwuY29tPg0KPj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBHYW8sIExpbWluZyA8 bGltaW5nLmdhb0BpbnRlbC5jb20+OyBaaGFuZywNCj4+IENoYW8gQiA8Y2hhby5iLnpoYW5nQGlu dGVsLmNvbT4NCj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDA1LzEzXSBNZGVQa2cvTGli cmFyeS9CYXNlTGliL0FBcmNoNjQ6IEFkZA0KPj4gQXNtTGZlbmNlIGZ1bmN0aW9uDQo+Pg0KPj4g T24gTW9uLCAxNyBEZWMgMjAxOCBhdCAwOTo0NCwgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPiB3cm90ZToNCj4+ID4NCj4+ID4gVGhhbmtzIEFyZC4NCj4+ID4gSSBoYXZlIGxpdHRs ZSBjb25jZXJuIGFib3V0ICJTcGVjIiwgYmVjYXVzZSBwZW9wbGUgbWF5IHJlYWQgaXQgYXMNCj4+ ICJTcGVjaWZpY2F0aW9uIiwgZXNwZWNpYWxseSBpbiBvdXIgdGVhbS4gOikNCj4+ID4NCj4+DQo+ PiBJIHVuZGVyc3RhbmQgOi0pDQo+Pg0KPj4gU3BlY3VsYXRpb25CYXJyaWVyKCkgaXMgZmluZSB3 aXRoIG1lLg0KPj4NCj4+DQo+PiA+DQo+PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4+ID4gPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3Rz LjAxLm9yZ10gT24gQmVoYWxmDQo+PiBPZg0KPj4gPiA+IEFyZCBCaWVzaGV1dmVsDQo+PiA+ID4g U2VudDogTW9uZGF5LCBEZWNlbWJlciAxNywgMjAxOCA0OjM1IFBNDQo+PiA+ID4gVG86IFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4+ID4gPiBDYzogZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmc7IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47DQo+PiBaaGFuZywN Cj4+ID4gPiBDaGFvIEIgPGNoYW8uYi56aGFuZ0BpbnRlbC5jb20+DQo+PiA+ID4gU3ViamVjdDog UmU6IFtlZGsyXSBbUEFUQ0ggMDUvMTNdIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NDoN Cj4+IEFkZA0KPj4gPiA+IEFzbUxmZW5jZSBmdW5jdGlvbg0KPj4gPiA+DQo+PiA+ID4gT24gTW9u LCAxNyBEZWMgMjAxOCBhdCAwOTozMCwgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29t Pg0KPj4gd3JvdGU6DQo+PiA+ID4gPg0KPj4gPiA+ID4gSSByZXZpZXdlZCB0aGUgQVJNIHdoaXRl IHBhcGVyIC0NCj4+ID4gPg0KPj4gZmlsZTovLy9DOi9Vc2Vycy9qeWFvMS9Eb3dubG9hZHMvQ2Fj aGVfU3BlY3VsYXRpb25fU2lkZS1jaGFubmVscy12Mi40LnANCj4+ID4gPiBkZg0KPj4gPiA+ID4N Cj4+ID4gPiA+IEkgYWdyZWUgd2l0aCB5b3UgdGhhdCBMb2FkRmVuY2UgbWlnaHQgbm90IGJlIHRo ZSBiZXN0IGlkZWEuDQo+PiA+ID4gPg0KPj4gPiA+ID4gSG93IGFib3V0IFNwZWN1bGF0aW9uQmFy cmllcigpID8NCj4+ID4gPiA+DQo+PiA+ID4NCj4+ID4gPiBUaGF0IHdvcmtzIGZvciBtZS4gT3Ig U3BlY0ZlbmNlICgpLiBBcyBsb25nIGFzIGl0IGRvZXMgbm90IGNvbmZsYXRlDQo+PiA+ID4gbWVt b3J5IG9yZGVyaW5nIHdpdGggY29udHJvbGxpbmcgdGhlIHNpZGUgZWZmZWN0cyBvZiBzcGVjdWxh dGl2ZQ0KPj4gPiA+IGV4ZWN1dGlvbiwgaXQgaXMgb2sgd2l0aCBtZS4NCj4+ID4gPg0KPj4gPiA+ IEknbGwgY29udHJpYnV0ZSB0aGUgQVJNIGFuZCBBQVJDSDY0IGltcGxlbWVudGF0aW9ucyBhc2Fw IG9uY2UgdGhlDQo+PiA+ID4gZ2VuZXJpYyBjaGFuZ2VzIGFyZSBwb3N0ZWQgb24gdGhlIGxpc3Qu DQo+PiA+ID4NCj4+ID4gPiBUaGFua3MsDQo+PiA+ID4NCj4+ID4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4+ID4gPiA+ID4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazIt ZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uDQo+PiBCZWhhbGYNCj4+ID4gPiBPZg0KPj4g PiA+ID4gPiBZYW8sIEppZXdlbg0KPj4gPiA+ID4gPiBTZW50OiBNb25kYXksIERlY2VtYmVyIDE3 LCAyMDE4IDQ6MjUgUE0NCj4+ID4gPiA+ID4gVG86IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hl dXZlbEBsaW5hcm8ub3JnPjsgTGVpZiBMaW5kaG9sbQ0KPj4gPiA+ID4gPiA8bGVpZi5saW5kaG9s bUBsaW5hcm8ub3JnPg0KPj4gPiA+ID4gPiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IFpo YW5nLCBDaGFvIEINCj4+IDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPjsNCj4+ID4gPiA+ID4gR2Fv LCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPj4gPiA+ID4gPiBTdWJqZWN0OiBSZTog W2VkazJdIFtQQVRDSCAwNS8xM10gTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9BQXJjaDY0Og0KPj4g PiA+IEFkZA0KPj4gPiA+ID4gPiBBc21MZmVuY2UgZnVuY3Rpb24NCj4+ID4gPiA+ID4NCj4+ID4g PiA+ID4gSGkgQXJkDQo+PiA+ID4gPiA+IEkgYW0gT0sgdG8gcmVmaW5lIGl0IG5vdy4NCj4+ID4g PiA+ID4NCj4+ID4gPiA+ID4gRG8geW91IGhhdmUgYW55IHByb3Bvc2FsIG9uIHRoZSBuYW1pbmcg ZnJvbSBBUk0gc2lkZT8NCj4+ID4gPiA+ID4NCj4+ID4gPiA+ID4gVGhhbmsgeW91DQo+PiA+ID4g PiA+IFlhbyBKaWV3ZW4NCj4+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPj4gPiA+ID4gPiA+IEZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJk LmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10NCj4+ID4gPiA+ID4gPiBTZW50OiBNb25kYXksIERlY2Vt YmVyIDE3LCAyMDE4IDQ6MTEgUE0NCj4+ID4gPiA+ID4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdl bi55YW9AaW50ZWwuY29tPjsgTGVpZiBMaW5kaG9sbQ0KPj4gPiA+ID4gPiA+IDxsZWlmLmxpbmRo b2xtQGxpbmFyby5vcmc+DQo+PiA+ID4gPiA+ID4gQ2M6IEdhbywgTGltaW5nIDxsaW1pbmcuZ2Fv QGludGVsLmNvbT47IEphZ2FkZWVzaCBVamphDQo+PiA+ID4gPiA+ID4gPGphZ2FkZWVzaC51amph QGFybS5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgWmhhbmcsIENoYW8NCj4+IEINCj4+ ID4gPiA+ID4gPiA8Y2hhby5iLnpoYW5nQGludGVsLmNvbT4NCj4+ID4gPiA+ID4gPiBTdWJqZWN0 OiBSZTogW1BBVENIIDA1LzEzXSBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNoNjQ6IEFkZA0K Pj4gPiA+ID4gPiA+IEFzbUxmZW5jZSBmdW5jdGlvbg0KPj4gPiA+ID4gPiA+DQo+PiA+ID4gPiA+ ID4gT24gTW9uLCAxNyBEZWMgMjAxOCBhdCAwODo0NSwgQXJkIEJpZXNoZXV2ZWwNCj4+ID4gPiA+ ID4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+PiA+ID4gPiA+ID4gd3JvdGU6DQo+PiA+ ID4gPiA+ID4gPg0KPj4gPiA+ID4gPiA+ID4gT24gTW9uLCAxNyBEZWMgMjAxOCBhdCAwNDoyOSwg WWFvLCBKaWV3ZW4NCj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4+ID4gPiA+ID4gPiB3cm90 ZToNCj4+ID4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+ID4gSSB0aGluayB3ZSBoYXZlIGJl bG93IGRlZmluaXRpb24uDQo+PiA+ID4gPiA+ID4gPiA+IC0tIE1lbW9yeUZlbmNlOiBTZXJpYWxp emUgbG9hZCBhbmQgc3RvcmUgb3BlcmF0aW9ucy4NCj4+ID4gPiA+ID4gPiA+ID4gLS0gTG9hZEZl bmNlOiBTZXJpYWxpemUgbG9hZCBvcGVyYXRpb25zLg0KPj4gPiA+ID4gPiA+ID4gPiAtLSBTdG9y ZUZlbmNlOiBTZXJpYWxpemUgc3RvcmUgb3BlcmF0aW9ucy4NCj4+ID4gPiA+ID4gPiA+ID4NCj4+ ID4gPiA+ID4gPiA+ID4gQWNjb3JkaW5nIHRvIElBMzIgU0RNLCBJbnRlbCBoYXMgTUZFTkNFLCBM RkVOQ0UgYW5kIFNGRU5DRS4NCj4+ID4gPiA+ID4gPiA+ID4gSWYgQVJNIG9ubHkgaGFzIERNQiwg aXQgaXMgcG9zc2libGUgdG8gdXNlIERNQiBmb3INCj4+IE1lbW9yeUZlbmNlLA0KPj4gPiA+ID4g PiA+IExvYWRGZW5jZSBvciBTdG9yZUZlbmNlLg0KPj4gPiA+ID4gPiA+ID4gPg0KPj4gPiA+ID4g PiA+ID4gPiBNYXliZSBpdCBpcyBiZXR0ZXIgdG8gdXNlIExvYWRGZW5jZSwgaW5zdGVhZCBvZiBB c21MRmVuY2U/DQo+PiA+ID4gPiA+ID4gPiA+IFRoZW4gd2UgY2FuIGFsaWduIHdpdGggTWVtb3J5 RmVuY2UuDQo+PiA+ID4gPiA+ID4gPiA+DQo+PiA+ID4gPiA+ID4gPg0KPj4gPiA+ID4gPiA+ID4g SSB0aGluayB1c2luZyBBc21MZmVuY2UoKSBhbGwgb3ZlciB0aGUgY29kZSB0byBsaW1pdCBzcGVj dWxhdGlvbg0KPj4gd2FzIGENCj4+ID4gPiA+ID4gPiA+IG1pc3Rha2UsIGFuZCBJIGFtIGRpc2Fw cG9pbnRlZCBub2JvZHkgZnJvbSB0aGUgQVJNIHNpZGUgd2FzDQo+PiA+ID4gaW52b2x2ZWQNCj4+ ID4gPiA+ID4gPiA+IGF0IGFsbCB3aGVuIHRoZXNlIGNoYW5nZXMgd2VyZSBwcm9wb3NlZC4NCj4+ ID4gPiA+ID4gPiA+DQo+PiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiBPSywgSSBoYXZlIHRvIGFw b2xvZ2l6ZSBoZXJlLiBIYW8gZGlkIGNjIHVzIG9uIHRoZXNlIHBhdGNoZXMsIGFuZA0KPnNvDQo+ PiA+ID4gPiA+ID4gd2UgZGlkIGhhdmUgdGhlIG9wcG9ydHVuaXR5IHRvIHJlc3BvbmQgYXQgdGhl IHRpbWUuDQo+PiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiBCdXQgdGhhdCBkb2Vzbid0IGNoYW5n ZSB0aGUgZmFjdCB0aGF0IEFzbUxmZW5jZSgpIHNob3VsZCBiZQ0KPj4gcmVwbGFjZWQNCj4+ID4g PiA+ID4gPiBieSBhbiBhYnN0cmFjdGlvbiB0aGF0IGRlc2NyaWJlcyB0aGUgc3BlY2lmaWMgc2Vt YW50aWNzIG9mIHRoZSB4ODYNCj4+ID4gPiA+ID4gPiBMZmVuY2UgaW1wbGVtZXRhdGlvbiBiZXlv bmQgbWVtb3J5IG9yZGVyaW5nIHRoYXQgd2UgYXJlDQo+cmVseWluZw0KPj4gb24NCj4+ID4gPiA+ ID4gPiBoZXJlLg0KPj4gPiA+ID4gPiA+DQo+PiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPg0KPj4g PiA+ID4gPiA+ID4gVGhlIGNvZGUgY2hhbmdlcyByZWx5IG9uIHNwZWNpZmljIHNlbWFudGljcyBv ZiB0aGUgeDg2IExmZW5jZQ0KPj4gPiA+ID4gPiA+ID4gaW5zdHJ1Y3Rpb25zLCBpLmUuLCB0aGF0 IGJleW9uZCBsb2FkIHNlcmlhbGl6YXRpb24sIHRoZXkgZW5zdXJlIHRoYXQNCj4+ID4gPiA+ID4g PiA+IGFsbCBpbnN0cnVjdGlvbnMgKG5vdCBqdXN0IGxvYWRzKSBjb21wbGV0ZSBiZWZvcmUgdGhl IGxmZW5jZQ0KPj4gPiA+ID4gPiA+ID4gY29tcGxldGVzLiBUaGlzIGlzIGEgbXVjaCBzdHJvbmdl ciBub3Rpb24gdGhhbiBhIGxvYWQgYmFycmllciwgYW5kDQo+PiBzbw0KPj4gPiA+ID4gPiA+ID4g dGhlIGFic3RyYWN0aW9uIHNob3VsZCBoYXZlIGJlZW4gZGVmaW5lZCBhcyBzb21ldGhpbmcgbGlr ZSBhDQo+PiA+ID4gPiA+ID4gPiBFeGVjRmVuY2UoKSBvciBwaXBlbGluZSBiYXJyaWVyIGV0Yywg YW5kIHRoZSB4ODYgc3BlY2lmaWMNCj4+ID4gPiA+ID4gPiA+IGltcGxlbWVudGF0aW9uIHdvdWxk IGhhdmUgYmVlbiBtYXBwZWQgb250byBMZmVuY2UuIEZvciB0aGUNCj4+IEFSTQ0KPj4gPiA+ID4g PiBzaWRlLA0KPj4gPiA+ID4gPiA+ID4gd2UgcHJvYmFibHkgbmVlZCBhbiBJU0IgaW5zdHJ1Y3Rp b24gaGVyZSBhcyB3ZWxsIGFzIHNvbWUga2luZCBvZg0KPj4gPiA+IG90aGVyDQo+PiA+ID4gPiA+ ID4gPiBiYXJyaWVyLiBDYWxsaW5nIGl0IExvYWRGZW5jZSgpIG1ha2VzIG5vIHNlbnNlIHdoYXRz b2V2ZXIuDQo+PiA+ID4gPiA+ID4gPg0KPj4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+DQo+ PiA+ID4gPiA+ID4gPg0KPj4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gPiA+ID4gPiA+ID4gPiA+ IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3Jn XQ0KPj4gT24NCj4+ID4gPiA+ID4gQmVoYWxmDQo+PiA+ID4gPiA+ID4gT2YNCj4+ID4gPiA+ID4g PiA+ID4gPiBHYW8sIExpbWluZw0KPj4gPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgRGVj ZW1iZXIgMTcsIDIwMTggMTA6MDQgQU0NCj4+ID4gPiA+ID4gPiA+ID4gPiBUbzogQXJkIEJpZXNo ZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBKYWdhZGVlc2gNCj4+IFVqamENCj4+ ID4gPiA+ID4gPiA+ID4gPiA8amFnYWRlZXNoLnVqamFAYXJtLmNvbT47IExlaWYgTGluZGhvbG0N Cj4+ID4gPiA+ID4gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4NCj4+ID4gPiA+ID4gPiA+ID4g PiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IFpoYW5nLCBDaGFvIEINCj4+ID4gPiA+ID4g PiA8Y2hhby5iLnpoYW5nQGludGVsLmNvbT4NCj4+ID4gPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBS ZTogW2VkazJdIFtQQVRDSCAwNS8xM10NCj4+ID4gPiBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0FB cmNoNjQ6DQo+PiA+ID4gPiA+ID4gQWRkDQo+PiA+ID4gPiA+ID4gPiA+ID4gQXNtTGZlbmNlIGZ1 bmN0aW9uDQo+PiA+ID4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+ID4gPiBBcmQ6DQo+PiA+ ID4gPiA+ID4gPiA+ID4gICBNeSBmaXJzdCBjb21tZW50IGlzIHRvIHN1Z2dlc3QgdXBkYXRpbmcg dGhlIGNhbGxlciBjb2RlIGZvcg0KPj4gdGhlDQo+PiA+ID4gPiA+IGFyY2gNCj4+ID4gPiA+ID4g PiA+ID4gPiBzcGVjaWZpYyBjb2RlLiAgQnV0LCB0aGVyZSBhcmUgdHdvIGRyaXZlcnMgdGhhdCBo YXZlIHRoZSBzYW1lDQo+PiA+ID4gdXNhZ2UuDQo+PiA+ID4gPiA+ID4gVGhpcw0KPj4gPiA+ID4g PiA+ID4gPiA+IHdheSB3aWxsIGludHJvZHVjZSB0aGUgZHVwbGljYXRlZCBjb2RlIGxvZ2ljLiBT bywgSSBzdWdnZXN0DQo+PiBhbm90aGVyDQo+PiA+ID4gPiA+IHdheQ0KPj4gPiA+ID4gPiA+IHRv DQo+PiA+ID4gPiA+ID4gPiA+ID4gZXh0ZW5kICBBc21MZmVuY2UoKSBBUEkgc2NvcGUgZm9yIHRo ZSBkaWZmZXJlbnQgQVJDSHMuIElmDQo+PiB5b3UNCj4+ID4gPiB0aGluaw0KPj4gPiA+ID4gPiBp dA0KPj4gPiA+ID4gPiA+IGJyaW5ncw0KPj4gPiA+ID4gPiA+ID4gPiA+IHRoZSBjb25mdXNlLCBJ IGp1c3QgdGhpbmsgYW5vdGhlciB3YXkgdG8gcmVzb2x2ZSB0aGlzIGNhc2UgaW4NCj50aGUNCj4+ ID4gPiBjYWxsZXINCj4+ID4gPiA+ID4gPiBjb2RlLg0KPj4gPiA+ID4gPiA+ID4gPiA+DQo+PiA+ ID4gPiA+ID4gPiA+ID4gI2lmIGRlZmluZWQgKE1ERV9DUFVfSUEzMikgfHwgZGVmaW5lZCAoTURF X0NQVV9YNjQpDQo+PiA+ID4gPiA+ID4gPiA+ID4gQXNtTGZlbmNlKCk7DQo+PiA+ID4gPiA+ID4g PiA+ID4gI2Vsc2UNCj4+ID4gPiA+ID4gPiA+ID4gPiBNZW1vcnlGZW5jZSgpDQo+PiA+ID4gPiA+ ID4gPiA+ID4gI2VuZGlmDQo+PiA+ID4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+ID4gPiBU aGFua3MNCj4+ID4gPiA+ID4gPiA+ID4gPiBMaW1pbmcNCj4+ID4gPiA+ID4gPiA+ID4gPiA+LS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ID4gPiA+ID4gPiA+ID4gPiA+RnJvbTogQXJkIEJp ZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPj4gPiA+ID4gPiA+ ID4gPiA+ID5TZW50OiBGcmlkYXksIERlY2VtYmVyIDE0LCAyMDE4IDk6NTQgUE0NCj4+ID4gPiA+ ID4gPiA+ID4gPiA+VG86IEphZ2FkZWVzaCBVamphIDxqYWdhZGVlc2gudWpqYUBhcm0uY29tPjsg TGVpZg0KPj4gTGluZGhvbG0NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PGxlaWYubGluZGhvbG1AbGlu YXJvLm9yZz4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+Q2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3Jn OyBHYW8sIExpbWluZw0KPj4gPiA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47DQo+PiA+ID4gPiA+ ID4gWmhhbmcsDQo+PiA+ID4gPiA+ID4gPiA+ID4gPkNoYW8gQiA8Y2hhby5iLnpoYW5nQGludGVs LmNvbT4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+U3ViamVjdDogUmU6IFtQQVRDSCAwNS8xM10NCj4+ IE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NDoNCj4+ID4gPiBBZGQNCj4+ID4gPiA+ID4g PiA+ID4gPiA+QXNtTGZlbmNlIGZ1bmN0aW9uDQo+PiA+ID4gPiA+ID4gPiA+ID4gPg0KPj4gPiA+ ID4gPiA+ID4gPiA+ID5PbiBGcmksIDE0IERlYyAyMDE4IGF0IDEzOjEzLCBKYWdhZGVlc2ggVWpq YQ0KPj4gPiA+ID4gPiA+IDxqYWdhZGVlc2gudWpqYUBhcm0uY29tPg0KPj4gPiA+ID4gPiA+ID4g PiA+ID53cm90ZToNCj4+ID4gPiA+ID4gPiA+ID4gPiA+Pg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ IFZhcmlhYmxlIHNlcnZpY2UgZHJpdmVyIGluY2x1ZGVzIGEgY2FsbCB0byBBc21MZmVuY2UuIFRv DQo+PiByZXVzZQ0KPj4gPiA+IHRoaXMNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiBkcml2ZXIgb24g QUFyY2g2NCBiYXNlZCBwbGF0Zm9ybXMsIGFkZCBhbg0KPmltcGxlbWVudGF0aW9uDQo+PiBvZg0K Pj4gPiA+ID4gPiA+IEFzbUxmZW5jZQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+IHRoYXQgYWN0cyBh cyBhIHdyYXBwZXIgb24gdGhlIEFBcmNoNjQgc3BlY2lmaWMNCj4+IE1lbW9yeUZlbmNlDQo+PiA+ ID4gPiA+ID4gZnVuY3Rpb24uDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4+ID4gPiA+ID4gPiA+ ID4gPiA+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1l bnQNCj4xLjENCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiBTaWduZWQtb2ZmLWJ5OiBKYWdhZGVlc2gg VWpqYSA8amFnYWRlZXNoLnVqamFAYXJtLmNvbT4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAtLS0N Cj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmgg ICAgICAgICAgICAgfCAzMw0KPj4gPiA+ID4gPiA+ICsrKysrKysrKy0tLS0tLQ0KPj4gPiA+ID4g PiA+ID4gPiA+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNoNjQvQXNtTGZlbmNlLlMg ICB8IDQyDQo+PiA+ID4gPiA+ID4gPiA+ID4gPisrKysrKysrKysrKysrKysrKysrDQo+PiA+ID4g PiA+ID4gPiA+ID4gPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NC9Bc21MZmVuY2Uu YXNtIHwgNDENCj4+ID4gPiA+ID4gPiA+ID4gPiA+KysrKysrKysrKysrKysrKysrKw0KPj4gPiA+ ID4gPiA+ID4gPiA+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mICAgICAg ICAgICB8ICAyICsNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAgNCBmaWxlcyBjaGFuZ2VkLCAxMDUg aW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4+ ID4gPiA+ID4gPiA+ID4gPiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9C YXNlTGliLmgNCj4+ID4gPiA+ID4gPiA+ID4gPiA+Yi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jh c2VMaWIuaA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+IGluZGV4IDhjYzA4NjkuLmNhOTYxZWUgMTAw NjQ0DQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9C YXNlTGliLmgNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJy YXJ5L0Jhc2VMaWIuaA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+IEBAIC03Njk3LDE5ICs3Njk3LDYg QEAgQXNtV3JpdGVUciAoDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgKTsNCj4+ID4gPiA+ID4g PiA+ID4gPiA+Pg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICAvKioNCj4+ID4gPiA+ID4gPiA+ID4g PiA+PiAtICBQZXJmb3JtcyBhIHNlcmlhbGl6aW5nIG9wZXJhdGlvbiBvbiBhbGwNCj4+IGxvYWQt ZnJvbS1tZW1vcnkNCj4+ID4gPiA+ID4gPiBpbnN0cnVjdGlvbnMNCj4+ID4gPiA+ID4gPiA+ID4g PiB0aGF0DQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAgd2VyZSBpc3N1ZWQgcHJpb3IgdGhlIEFz bUxmZW5jZSBmdW5jdGlvbi4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAtDQo+PiA+ID4gPiA+ID4g PiA+ID4gPj4gLSAgRXhlY3V0ZXMgYSBMRkVOQ0UgaW5zdHJ1Y3Rpb24uIFRoaXMgZnVuY3Rpb24g aXMgb25seQ0KPj4gPiA+IGF2YWlsYWJsZQ0KPj4gPiA+ID4gPiBvbg0KPj4gPiA+ID4gPiA+IElB LTMyDQo+PiA+ID4gPiA+ID4gPiA+ID4gYW5kDQo+PiA+ID4gPiA+ID4gPiA+ID4gPng2NC4NCj4+ ID4gPiA+ID4gPiA+ID4gPiA+PiAtDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gLSoqLw0KPj4gPiA+ ID4gPiA+ID4gPiA+ID4+IC1WT0lEDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gLUVGSUFQSQ0KPj4g PiA+ID4gPiA+ID4gPiA+ID4+IC1Bc21MZmVuY2UgKA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+IC0g IFZPSUQNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAtICApOw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ IC0NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAtLyoqDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gICAg UGF0Y2ggdGhlIGltbWVkaWF0ZSBvcGVyYW5kIG9mIGFuIElBMzIgb3IgWDY0DQo+PiBpbnN0cnVj dGlvbg0KPj4gPiA+ID4gPiBzdWNoDQo+PiA+ID4gPiA+ID4gdGhhdA0KPj4gPiA+ID4gPiA+ID4g PiA+IHRoZQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID5ieXRlLA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ ICAgIHdvcmQsIGR3b3JkIG9yIHF3b3JkIG9wZXJhbmQgaXMgZW5jb2RlZCBhdCB0aGUgZW5kDQo+ PiBvZg0KPj4gPiA+IHRoZQ0KPj4gPiA+ID4gPiA+ID4gPiA+IGluc3RydWN0aW9uJ3MNCj4+ID4g PiA+ID4gPiA+ID4gPiA+PiAgICBiaW5hcnkgcmVwcmVzZW50YXRpb24uDQo+PiA+ID4gPiA+ID4g PiA+ID4gPj4gQEAgLTc3NTIsNCArNzczOSwyNCBAQCBQYXRjaEluc3RydWN0aW9uWDg2ICgNCj4+ ID4gPiA+ID4gPiA+ID4gPiA+PiAgICApOw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+PiA+ID4g PiA+ID4gPiA+ID4gPj4gICNlbmRpZiAvLyBkZWZpbmVkIChNREVfQ1BVX0lBMzIpIHx8IGRlZmlu ZWQNCj4+ID4gPiAoTURFX0NQVV9YNjQpDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0KPj4gPiA+ ID4gPiA+ID4gPiA+ID4+ICsjaWYgZGVmaW5lZCAoTURFX0NQVV9JQTMyKSB8fCBkZWZpbmVkIChN REVfQ1BVX1g2NCkNCj4+IHx8DQo+PiA+ID4gPiA+ID4gZGVmaW5lZA0KPj4gPiA+ID4gPiA+ID4g PiA+ID4oTURFX0NQVV9BQVJDSDY0KQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsNCj4+ID4gPiA+ ID4gPiA+ID4gPiA+PiArLyoqDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgUGVyZm9ybXMgYSBz ZXJpYWxpemluZyBvcGVyYXRpb24gb24gYWxsDQo+PiBsb2FkLWZyb20tbWVtb3J5DQo+PiA+ID4g PiA+ID4gaW5zdHJ1Y3Rpb25zDQo+PiA+ID4gPiA+ID4gPiA+ID4gdGhhdA0KPj4gPiA+ID4gPiA+ ID4gPiA+ID4+ICsgIHdlcmUgaXNzdWVkIHByaW9yIHRoZSBBc21MZmVuY2UgZnVuY3Rpb24uDQo+ PiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgIEluIGNhc2Ug b2YgSUEtMzIgYW5kIHg2NCwgRXhlY3V0ZXMgYSBMRkVOQ0UNCj4+IGluc3RydWN0aW9uLg0KPj4g PiA+ID4gPiA+ID4gPiA+ID4+ICsNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArICBJbiBjYXNlIG9m IEFBcmNoNjQgdGhpcyBhY3RzIGFzIGEgd3JhcHBlciBvbiB0aGUNCj4+IEFBcmNoNjQNCj4+ID4g PiA+ID4gPiA+ID4gPiA+PiArICBzcGVjaWZpYyBNZW1vcnlGZW5jZSBmdW5jdGlvbg0KPj4gPiA+ ID4gPiA+ID4gPiA+ID4+ICsNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArKiovDQo+PiA+ID4gPiA+ ID4gPiA+ID4gPj4gK1ZPSUQNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArRUZJQVBJDQo+PiA+ID4g PiA+ID4gPiA+ID4gPj4gK0FzbUxmZW5jZSAoDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgVk9J RA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICk7DQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0K Pj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjZW5kaWYgIC8vIGRlZmluZWQgKE1ERV9DUFVfSUEzMikg fHwgZGVmaW5lZA0KPj4gPiA+IChNREVfQ1BVX1g2NCkNCj4+ID4gPiA+ID4gPiB8fA0KPj4gPiA+ ID4gPiA+ID4gPiA+ID5kZWZpbmVkIChNREVfQ1BVX0FBUkNINjQpDQo+PiA+ID4gPiA+ID4gPiA+ ID4gPj4gICNlbmRpZiAvLyAhZGVmaW5lZCAoX19CQVNFX0xJQl9fKQ0KPj4gPiA+ID4gPiA+ID4g PiA+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNoNjQvQXNtTGZl bmNlLlMNCj4+ID4gPiA+ID4gPiA+ID4gPiA+Yi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNo NjQvQXNtTGZlbmNlLlMNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+IGluZGV4IDAwMDAwMDAuLjJmZDgwNGINCj4+ID4gPiA+ ID4gPiA+ID4gPiA+PiAtLS0gL2Rldi9udWxsDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKysrIGIv TWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9BQXJjaDY0L0FzbUxmZW5jZS5TDQo+PiA+ID4gPiA+ID4g PiA+ID4gPj4gQEAgLTAsMCArMSw0MiBAQA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+PiA+ID4g PiA+ICsjIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjDQo+ PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyMgQXNtTGZlbmNlKCkgZm9yIEFBcmNoNjQNCj4+ID4gPiA+ ID4gPiA+ID4gPiA+PiArIw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjIENvcHlyaWdodCAoYykg MjAxMy0yMDE4LCBBUk0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPj4gPiA+ID4gPiA+ID4g PiA+ID4+ICsjDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyMgVGhpcyBwcm9ncmFtIGFuZCB0aGUg YWNjb21wYW55aW5nIG1hdGVyaWFscw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjIGFyZSBsaWNl bnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZA0KPj4gPiA+IGNvbmRp dGlvbnMNCj4+ID4gPiA+ID4gPiBvZiB0aGUNCj4+ID4gPiA+ID4gPiA+ID4gPiA+QlNEIExpY2Vu c2UNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3Ry aWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YNCj4+IHRoZQ0KPj4gPiA+ID4gPiBsaWNlbnNlDQo+ PiA+ID4gPiA+ID4gbWF5DQo+PiA+ID4gPiA+ID4gPiA+ID4gYmUNCj4+ID4gPiA+ID4gPiA+ID4g PiA+Zm91bmQgYXQNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArIyBodHRwOi8vb3BlbnNvdXJjZS5v cmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjDQo+ PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyMgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIg VEhFIEJTRA0KPj4gTElDRU5TRQ0KPj4gPiA+IE9ODQo+PiA+ID4gPiA+IEFODQo+PiA+ID4gPiA+ ID4gIkFTDQo+PiA+ID4gPiA+ID4gPiA+ID4gSVMiDQo+PiA+ID4gPiA+ID4gPiA+ID4gPkJBU0lT LA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNF TlRBVElPTlMgT0YgQU5ZDQo+PiA+ID4gS0lORCwNCj4+ID4gPiA+ID4gPiBFSVRIRVINCj4+ID4g PiA+ID4gPiA+ID4gPiA+RVhQUkVTUyBPUiBJTVBMSUVELg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ ICsjDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4+ID4gPiA+ID4gKyMjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsu dGV4dA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsucDJhbGlnbiAyDQo+PiA+ID4gPiA+ID4gPiA+ ID4gPj4gKw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICtHQ0NfQVNNX0VYUE9SVChBc21MZmVuY2Up DQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjIElNUE9S VA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICtHQ0NfQVNNX0lNUE9SVChNZW1vcnlGZW5jZSkNCj4+ ID4gPiA+ID4gPiA+ID4gPiA+PiArDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyMvKioNCj4+ID4g PiA+ID4gPiA+ID4gPiA+PiArIyAgVXNlZCB0byBzZXJpYWxpemUgbG9hZCBhbmQgc3RvcmUgb3Bl cmF0aW9ucy4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArIw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ ICsjICBBbGwgbG9hZHMgYW5kIHN0b3JlcyB0aGF0IHByb2NlZWQgY2FsbHMgdG8gdGhpcyBmdW5j dGlvbg0KPj4gYXJlDQo+PiA+ID4gPiA+ID4gPiA+ID4gZ3VhcmFudGVlZCB0bw0KPj4gPiA+ID4g PiA+ID4gPiA+ID5iZQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjICBnbG9iYWxseSB2aXNpYmxl IHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zLg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjDQo+ PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyMqKi8NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArI1ZPSUQN Cj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArI0VGSUFQSQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsj QXNtTGZlbmNlICgNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArIyAgVk9JRA0KPj4gPiA+ID4gPiA+ ID4gPiA+ID4+ICsjICApOw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsjDQo+PiA+ID4gPiA+ID4g PiA+ID4gPj4gK0FTTV9QRlgoQXNtTGZlbmNlKToNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAg IHN0cCAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAg YmwgTWVtb3J5RmVuY2UNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgIGxkcCAgIHgyOSwgeDMw LCBbc3BdLCAjMHgxMA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgcmV0DQo+PiA+ID4gPiA+ ID4gPiA+ID4gPg0KPj4gPiA+ID4gPiA+ID4gPiA+ID5BbnkgcmVhc29uIHdlIGNhbid0IHNpbXBs eSBkbw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+YiBNZW1vcnlG ZW5jZQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+aGVyZT8NCj4+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+PiA+ID4gPiA+ID4gPiA+ID4gPkFsc28sIHdoeSBJIHVuZGVy c3RhbmQgdGhlIHJhdGlvbmFsZSwgSSBzdGlsbCB0aGluayBpdCB3b3VsZCBiZQ0KPj4gPiA+IGJl dHRlcg0KPj4gPiA+ID4gPiA+ID4gPiA+ID50byBjaGFuZ2UgY2FsbGVycyBvZiB0aGUgW3g4NiBz cGVjaWZpY10gQXNtTGZlbmNlKCkgdGhhbiB0bw0KPj4gPiA+IGludHJvZHVjZQ0KPj4gPiA+ID4g PiA+ID4gPiA+ID5hbiBhbGlhcyBvZiBNZW1vcnlGZW5jZSgpIGZvciBhcmNoaXRlY3R1cmVzIHdo ZXJlIExmZW5jZSBpcw0KPj4gbm90DQo+PiA+ID4gPiA+ID4gPiA+ID4gPmRlZmluZWQuDQo+PiA+ ID4gPiA+ID4gPiA+ID4gPg0KPj4gPiA+ID4gPiA+ID4gPiA+ID5UaGlzIGlzIG5vdCBvbmx5IGFi b3V0IHRpZGluZXNzLCBidXQgYWxzbyBhYm91dCBwb3RlbnRpYWxseQ0KPj4gaGF2aW5nDQo+PiA+ ID4gPiA+ID4gPiA+ID4gPmRpZmZlcmVudCBzZW1hbnRpY3MsIHdoaWNoIHdlIGNhbid0IHByb3Zp ZGUgaW4gZ2VuZXJhbCBvbg0KPj4gQVJNLA0KPj4gPiA+IGJ1dA0KPj4gPiA+ID4gPiA+ID4gPiA+ ID5vbmx5IGluIHBhcnRpY3VsYXIgY2FzZXMgW3N1Y2ggYXMgdGhlIGNvZGUgdGhhdCBpcyBtb2Rp ZmllZCBpbg0KPj4gdGhpcw0KPj4gPiA+ID4gPiA+ID4gPiA+ID5zZXJpZXNdDQo+PiA+ID4gPiA+ ID4gPiA+ID4gPg0KPj4gPiA+ID4gPiA+ID4gPiA+ID5JbiBvdGhlciB3b3JkcywgbmV3bHkgaW50 cm9kdWNlZCBvY2N1cnJlbmNlcyBvZg0KPj4gQXNtTGZlbmNlKCkNCj4+ID4gPiBub3cNCj4+ID4g PiA+ID4gPiBoYXZlDQo+PiA+ID4gPiA+ID4gPiA+ID4gPnRvIGJlIGF1ZGl0ZWQgZm9yIGJlaW5n IGFwcHJvcHJpYXRlIG9uIEFBcmM2NCBpZiB0aGV5IGFyZQ0KPj4gYWRkZWQNCj4+ID4gPiB0bw0K Pj4gPiA+ID4gPiA+ID4gPiA+ID5nZW5lcmljIGNvZGUuDQo+PiA+ID4gPiA+ID4gPiA+ID4gPg0K Pj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiBkaWZmIC0tZ2l0DQo+ PiBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NC9Bc21MZmVuY2UuYXNtDQo+PiA+ID4g PiA+ID4gPiA+ID4gPmIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9BQXJjaDY0L0FzbUxmZW5jZS5h c20NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gPiA+ID4g PiA+ID4gPiA+ID4+IGluZGV4IDAwMDAwMDAuLjdkZDU2NTkNCj4+ID4gPiA+ID4gPiA+ID4gPiA+ PiAtLS0gL2Rldi9udWxsDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKysrIGIvTWRlUGtnL0xpYnJh cnkvQmFzZUxpYi9BQXJjaDY0L0FzbUxmZW5jZS5hc20NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiBA QCAtMCwwICsxLDQxIEBADQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4+ID4gPiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7DQo+PiA+ID4gPiA+ID4gPiA+ ID4gPj4gKzsgQXNtTGZlbmNlKCkgZm9yIEFBcmNoNjQNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAr Ow0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7IENvcHlyaWdodCAoYykgMjAxMy0yMDE4LCBBUk0g THRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7DQo+PiA+ ID4gPiA+ID4gPiA+ID4gPj4gKzsgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1h dGVyaWFscw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7IGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBh dmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZA0KPj4gPiA+IGNvbmRpdGlvbnMNCj4+ID4gPiA+ ID4gPiBvZiB0aGUNCj4+ID4gPiA+ID4gPiA+ID4gPiA+QlNEIExpY2Vuc2UNCj4+ID4gPiA+ID4g PiA+ID4gPiA+PiArOyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBm dWxsIHRleHQgb2YNCj4+IHRoZQ0KPj4gPiA+ID4gPiBsaWNlbnNlDQo+PiA+ID4gPiA+ID4gbWF5 DQo+PiA+ID4gPiA+ID4gPiA+ID4gYmUNCj4+ID4gPiA+ID4gPiA+ID4gPiA+Zm91bmQgYXQNCj4+ ID4gPiA+ID4gPiA+ID4gPiA+PiArOyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNk LWxpY2Vuc2UucGhwLg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7DQo+PiA+ID4gPiA+ID4gPiA+ ID4gPj4gKzsgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRA0KPj4gTElD RU5TRQ0KPj4gPiA+IE9ODQo+PiA+ID4gPiA+IEFODQo+PiA+ID4gPiA+ID4gIkFTDQo+PiA+ID4g PiA+ID4gPiA+ID4gSVMiDQo+PiA+ID4gPiA+ID4gPiA+ID4gPkJBU0lTLA0KPj4gPiA+ID4gPiA+ ID4gPiA+ID4+ICs7IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5Z DQo+PiA+ID4gS0lORCwNCj4+ID4gPiA+ID4gPiBFSVRIRVINCj4+ID4gPiA+ID4gPiA+ID4gPiA+ RVhQUkVTUyBPUiBJTVBMSUVELg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7DQo+PiA+ID4gPiA+ ID4gPiA+ID4gPj4NCj4+ID4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gPiA+ID4gPiA+ ID4gPiA+ID4+ICsNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArICBFWFBPUlQgQXNtTGZlbmNlDQo+ PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgQVJFQSBCYXNlTGliX0xvd0xldmVsLCBDT0RFLCBSRUFE T05MWQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICMgSU1QT1JUDQo+PiA+ID4gPiA+ID4gPiA+ ID4gPj4gKyAgR0NDX0FTTV9JTVBPUlQoTWVtb3J5RmVuY2UpDQo+PiA+ID4gPiA+ID4gPiA+ID4g Pj4gKw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7LyoqDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4g KzsgIFVzZWQgdG8gc2VyaWFsaXplIGxvYWQgYW5kIHN0b3JlIG9wZXJhdGlvbnMuDQo+PiA+ID4g PiA+ID4gPiA+ID4gPj4gKzsNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArOyAgQWxsIGxvYWRzIGFu ZCBzdG9yZXMgdGhhdCBwcm9jZWVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24NCj4+IGFyZQ0KPj4g PiA+ID4gPiA+IGd1YXJhbnRlZWQNCj4+ID4gPiA+ID4gPiA+ID4gPiB0bw0KPj4gPiA+ID4gPiA+ ID4gPiA+ID5iZQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7ICBnbG9iYWxseSB2aXNpYmxlIHdo ZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zLg0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7DQo+PiA+ ID4gPiA+ID4gPiA+ID4gPj4gKzsqKi8NCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArO1ZPSUQNCj4+ ID4gPiA+ID4gPiA+ID4gPiA+PiArO0VGSUFQSQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7QXNt TGZlbmNlICgNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiArOyAgVk9JRA0KPj4gPiA+ID4gPiA+ID4g PiA+ID4+ICs7ICApOw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICs7DQo+PiA+ID4gPiA+ID4gPiA+ ID4gPj4gK0FzbUxmZW5jZQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgc3RwICAgeDI5LCB4 MzAsIFtzcCwgIy0xNl0hDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICBibCBNZW1vcnlGZW5j ZQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgbGRwICAgeDI5LCB4MzAsIFtzcF0sICMweDEw DQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICByZXQNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAr DQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgRU5EDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gZGlm ZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYNCj4+ID4gPiA+ID4g PiA+ID4gPiA+Yi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+PiA+ID4gPiA+ ID4gPiA+ID4gPj4gaW5kZXggYjg0ZTU4My4uYjdkN2JjYiAxMDA2NDQNCj4+ID4gPiA+ID4gPiA+ ID4gPiA+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+PiA+ID4g PiA+ID4gPiA+ID4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0K Pj4gPiA+ID4gPiA+ID4gPiA+ID4+IEBAIC01ODUsNiArNTg1LDcgQEANCj4+ID4gPiA+ID4gPiA+ ID4gPiA+PiAgICBNYXRoNjQuYw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+PiA+ID4gPiA+ID4g PiA+ID4gPj4gICAgQUFyY2g2NC9NZW1vcnlGZW5jZS5TICAgICAgICAgICAgIHwgR0NDDQo+PiA+ ID4gPiA+ID4gPiA+ID4gPj4gKyAgQUFyY2g2NC9Bc21MZmVuY2UuUyAgICAgICAgICAgICAgIHwg R0NDDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgQUFyY2g2NC9Td2l0Y2hTdGFjay5TICAgICAg ICAgICAgIHwgR0NDDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgQUFyY2g2NC9FbmFibGVJbnRl cnJ1cHRzLlMgICAgICAgIHwgR0NDDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgQUFyY2g2NC9E aXNhYmxlSW50ZXJydXB0cy5TICAgICAgIHwgR0NDDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gQEAg LTU5Myw2ICs1OTQsNyBAQA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICAgIEFBcmNoNjQvQ3B1QnJl YWtwb2ludC5TICAgICAgICAgICB8IEdDQw0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+PiA+ID4g PiA+ID4gPiA+ID4gPj4gICAgQUFyY2g2NC9NZW1vcnlGZW5jZS5hc20gICAgICAgICAgIHwgTVNG VA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgIEFBcmNoNjQvQXNtTGZlbmNlLmFzbSAgICAgICAg ICAgICB8IE1TRlQNCj4+ID4gPiA+ID4gPiA+ID4gPiA+PiAgICBBQXJjaDY0L1N3aXRjaFN0YWNr LmFzbSAgICAgICAgICAgfCBNU0ZUDQo+PiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgQUFyY2g2NC9F bmFibGVJbnRlcnJ1cHRzLmFzbSAgICAgIHwgTVNGVA0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+ICAg IEFBcmNoNjQvRGlzYWJsZUludGVycnVwdHMuYXNtICAgICB8IE1TRlQNCj4+ID4gPiA+ID4gPiA+ ID4gPiA+PiAtLQ0KPj4gPiA+ID4gPiA+ID4gPiA+ID4+IDIuNy40DQo+PiA+ID4gPiA+ID4gPiA+ ID4gPj4NCj4+ID4gPiA+ID4gPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXw0KPj4gPiA+ID4gPiA+ID4gPiA+IGVkazItZGV2ZWwgbWFpbGluZyBs aXN0DQo+PiA+ID4gPiA+ID4gPiA+ID4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+ID4gPiA+ ID4gPiA+ID4gPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2 ZWwNCj4+ID4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18NCj4+ID4gPiA+ID4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+ID4gPiA+ID4gZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+ID4gPiA+ID4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFp bG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+PiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4+ID4gPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0K Pj4gPiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+PiA+ID4gaHR0cHM6Ly9saXN0cy4wMS5v cmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=