From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (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 2426921DFA7BB for ; Wed, 29 Mar 2017 02:49:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490780946; x=1522316946; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=gA5I+ohb9oLh3mkI7Ndla47/rq7FLVrPEkpyYbo+6/w=; b=cp9j3x0eIHEcqEXcm2Ia1jZSY1a23zcc1dVjvoqqM//i1CdRJ/YnIfeD Q2eR7DXvWGwXHSiXRAWR1Uv08z2U1w==; Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Mar 2017 02:49:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,240,1486454400"; d="scan'208";a="949341595" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga003.jf.intel.com with ESMTP; 29 Mar 2017 02:49:05 -0700 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Mar 2017 02:49:04 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Mar 2017 02:49:04 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.212]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.82]) with mapi id 14.03.0248.002; Wed, 29 Mar 2017 17:49:01 +0800 From: "Gao, Liming" To: Laszlo Ersek , Ard Biesheuvel CC: "Zeng, Star" , "Kinney, Michael D" , "afish@apple.com" , "Tian, Feng" , edk2-devel-01 , "Leif Lindholm" Thread-Topic: [edk2] [PATCH v2 05/12] ArmPkg: introduce EDKII Platform Has ACPI Protocol, and plug-in library Thread-Index: AQHSn1/GB2XPIHVB6UCkCvBSwDIEcaGaK/cAgAZJkQCAALLrAIAAfQMAgAE3iQCAAODaAIAER7gA///FUQCAALBVgIABTMtA//+i4wCAAh2qwA== Date: Wed, 29 Mar 2017 09:49:00 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14D7062E2@shsmsx102.ccr.corp.intel.com> References: <20170317204731.31488-1-lersek@redhat.com> <20170317204731.31488-6-lersek@redhat.com> <20170318150041.GL16034@bivouac.eciton.net> <1bc7b29c-7a71-86cb-adce-5a14de129c63@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B8377AB@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B84CA03@shsmsx102.ccr.corp.intel.com> <5b2c0152-85fe-db6b-e173-0e4b0891e0f2@redhat.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D702AE8@shsmsx102.ccr.corp.intel.com> <66e4cce5-1a24-2ea2-f701-39ff9dde0897@redhat.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D70446E@shsmsx102.ccr.corp.intel.com> <28eb520f-2c2a-8743-80e6-dc68e79decf5@redhat.com> In-Reply-To: <28eb520f-2c2a-8743-80e6-dc68e79decf5@redhat.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 v2 05/12] ArmPkg: introduce EDKII Platform Has ACPI Protocol, and plug-in library X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2017 09:49:06 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvOg0KICBJIGFncmVlIEd1aWRDTmFtZSBjYW4ndCBiZSB1c2VkIHRvIGluaXRpYWxpemUg dGhlIGdsb2JhbCB2YXJpYWJsZS4gSWYgdGhlcmUgaXMgc3VjaCByZXF1aXJlbWVudCwgR1VJRCBD IE1BQ1JPIHdpbGwgaGF2ZSB0byBiZSBkZWZpbmVkLiBUaGVuLCBpdHMgaGVhZGVyIGZpbGUgd2ls bCBiZSByZXF1aXJlZC4gDQogIE5vdywgd2UgaGF2ZSBubyBydWxlIHRvIGZvcmJpZCB0byBhZGQg dGhlIGhlYWRlciBmaWxlIGlmIGl0IGhhcyBubyBvdGhlciBkZWZpbml0aW9ucyBleGNlcHQgZm9y IEdVSUQgdmFsdWUsIGFuZCB3ZSBoYXZlIG5vIHN1Y2ggZGlzY3Vzc2lvbiB0byBkZWZpbmUgdGhv c2UgcnVsZXMuIEl0IGlzIHRoZSBkZXZlbG9wZXIgY2hvaWNlIHRvIGFkZCBpdCBvciBub3QuIA0K ICBIZXJlLCBJIHdhbnQgdG8gbWVudGlvbiB0aGF0IEJhc2VUb29scyBoYXMgYWRkZWQgImV4dGVy biBnR3VpZENOYW1lIiBpbnRvIEF1dG9HZW4gaGVhZGVyIGZpbGUuIFRoZSBjb25zdW1lciBjb2Rl IGNhbiBkaXJlY3RseSB1c2UgZ0d1aWRDTmFtZSB3aXRob3V0IGluY2x1ZGUgaXRzIGhlYWRlciBm aWxlLiBJZiBubyBHVUlEIE1BQ1JPIHVzYWdlLCBpdHMgaGVhZGVyIGZpbGUgaXMgbm90IG5lY2Vz c2FyeS4gDQoNCiAgRm9yIHRoaXMgY2FzZSBnRWRraWlQbGF0Zm9ybUhhc0FjcGlHdWlkLCBJIGtu b3cgaXQgd2lsbCBiZSBhcyBwcm90b2NvbCBkZXBlbmRlbmN5LiBJIGRvbid0IHNlZSBpdHMgR1VJ RCBDIE1BQ1JPIHVzYWdlLiBTbywgSSBzdWdnZXN0IG5vdCB0byBhZGQgaXRzIGhlYWRlciBmaWxl LiBUaGlzIGlzIGp1c3QgbXkgb3Bpbmlvbi4gDQogIEZvciBCYXNlVG9vbHMgZW5oYW5jZW1lbnQg dG8gZ2VuZXJhdGVkIEdVSUQgQyBNQUNSTyBpbiBhdXRvZ2VuLmgsIEkgdGhpbmsgaXQgaXMgdmFs dWFibGUuIFRvIGF2b2lkIHRoZSBnZW5lcmF0ZWQgTUFDUk8gY29uZmxpY3Qgd2l0aCB0aGUgZXhp c3RpbmcgTUFDUk8sIHRoZSBnZW5lcmF0ZWQgTUFDUk8gd2lsbCBzdGlsbCBoYXZlICJHIiBwcmVm aXgsIHN1Y2ggYXMgZ0Vka2lpUGxhdGZvcm1IYXNBY3BpR3VpZCA9PT4gR19FREtJSV9QTEFURk9S TV9IQVNfQUNQSV9HVUlELg0KDQpUaGFua3MNCkxpbWluZw0KPi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+RnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+ U2VudDogVHVlc2RheSwgTWFyY2ggMjgsIDIwMTcgMzo1MCBQTQ0KPlRvOiBHYW8sIExpbWluZyA8 bGltaW5nLmdhb0BpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbA0KPjxhcmQuYmllc2hldXZlbEBs aW5hcm8ub3JnPg0KPkNjOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgS2lubmV5 LCBNaWNoYWVsIEQNCj48bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBhZmlzaEBhcHBsZS5j b207IFRpYW4sIEZlbmcNCj48ZmVuZy50aWFuQGludGVsLmNvbT47IGVkazItZGV2ZWwtMDEgPGVk azItZGV2ZWxAbGlzdHMuMDEub3JnPjsgTGVpZg0KPkxpbmRob2xtIDxsZWlmLmxpbmRob2xtQGxp bmFyby5vcmc+DQo+U3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjIgMDUvMTJdIEFybVBrZzog aW50cm9kdWNlIEVES0lJIFBsYXRmb3JtIEhhcw0KPkFDUEkgUHJvdG9jb2wsIGFuZCBwbHVnLWlu IGxpYnJhcnkNCj4NCj5PbiAwMy8yOC8xNyAwNzoyNSwgR2FvLCBMaW1pbmcgd3JvdGU6DQo+PiBF cnNlazoNCj4+ICAgSSBkb24ndCB3YW50IHRvIGJsb2NrIHlvdXIgcGF0Y2guIFlvdSBjYW4gc3Rp bGwgY2hlY2sgaW4gR3VpZCBoZWFkZXIgZmlsZSBpZiB5b3UNCj50aGluayBpdCBpcyBuZWNlc3Nh cnkuDQo+DQo+SSBkb24ndCB3YW50IHRvIGNoZWNrIGluIHdpdGhvdXQgZm9ybWFsIE1kZU1vZHVs ZVBrZyBtYWludGFpbmVyDQo+YXBwcm92YWwuIElmIEkgY2hlY2sgaW4gYSBwYXRjaCB3aXRob3V0 IGZvcm1hbCBhcHByb3ZhbCwgdGhhdCB3aWxsIG9ubHkNCj5sZWFkIHRvIGNoYW9zLiBJIGRvbid0 IHdhbnQgdG8gY2lyY3VtdmVudCB0aGUgcHJvY2VzczsgSSB3YW50IHRoZQ0KPnByb2Nlc3MgdG8g KndvcmsqLg0KPg0KPklmIE1kZU1vZHVsZVBrZyBtYWludGFpbmVycyBhZ3JlZSB3aXRoIG15DQo+ DQo+ICBbUEFUQ0ggdjMgMDQvMTJdIE1kZU1vZHVsZVBrZzogaW50cm9kdWNlIEVES0lJIFBsYXRm b3JtIEhhcyBBQ1BJIEdVSUQNCj4NCj50aGVuIHRoZXkgc2hvdWxkIHBsZWFzZSBnaXZlIHRoZWly IFJldmlld2VkLWJ5IGZvciBpdC4NCj4NCj5JZiB0aGV5IGRpc2FncmVlIHdpdGggaXQsIHRoZXkg c2hvdWxkIHBsZWFzZSBleHBsYWluIHdoeS4NCj4NCj5UaGUgc3BlY2lmaWMgYXJndW1lbnQgeW91 IHJhaXNlZCwgbmFtZWx5IHRoYXQgYSBCYXNlVG9vbHMgdXRpbGl0eQ0KPmdlbmVyYXRlcyB0aGUg bmVjZXNzYXJ5IEMgbGFuZ3VhZ2UgYXJ0aWZhY3RzIGZvciBHVUlEIHVzZSwgaXMgbm90DQo+cHJl Y2lzZS4gQmFzZVRvb2xzIGdlbmVyYXRlICpzb21lKiBhcnRpZmFjdHMsIGJ1dCB0aGV5IGRvIG5v dCBnZW5lcmF0ZSBhDQo+bWFjcm8gdGhhdCBpcyB1c2FibGUgZm9yIGluaXRpYWxpemluZyBhIEdV SUQgb2JqZWN0IG9mIHN0YXRpYyBzdG9yYWdlDQo+ZHVyYXRpb24gKD0gZ2xvYmFsIHZhcmlhYmxl IEdVSUQsIG9yIGEgR1VJRCBmaWVsZCBpbiBhIGdsb2JhbCB2YXJpYWJsZQ0KPnN0cnVjdHVyZSku DQo+DQo+VGhpcyBpcyB3aGF0IHRoZSBJU08gQzk5IHN0YW5kYXJkIHNheXM6DQo+DQo+ICA2Ljcu OCBJbml0aWFsaXphdGlvbg0KPg0KPiAgWy4uLl0NCj4NCj4gIENvbnN0cmFpbnRzDQo+DQo+ICBb Li4uXQ0KPg0KPiAgNCBBbGwgdGhlIGV4cHJlc3Npb25zIGluIGFuIGluaXRpYWxpemVyIGZvciBh biBvYmplY3QgdGhhdCBoYXMgc3RhdGljDQo+ICAgIHN0b3JhZ2UgZHVyYXRpb24gc2hhbGwgYmUg Y29uc3RhbnQgZXhwcmVzc2lvbnMgb3Igc3RyaW5nIGxpdGVyYWxzLg0KPg0KPiAgWy4uLl0NCj4N Cj4gIDE2IE90aGVyd2lzZSwgdGhlIGluaXRpYWxpemVyIGZvciBhbiBvYmplY3QgdGhhdCBoYXMg YWdncmVnYXRlIG9yDQo+ICAgICB1bmlvbiB0eXBlIHNoYWxsIGJlIGEgYnJhY2UtZW5jbG9zZWQg bGlzdCBvZiBpbml0aWFsaXplcnMgZm9yIHRoZQ0KPiAgICAgZWxlbWVudHMgb3IgbmFtZWQgbWVt YmVycy4NCj4NCj4gIFsuLi5dDQo+DQo+ICAyMCBJZiB0aGUgYWdncmVnYXRlIG9yIHVuaW9uIGNv bnRhaW5zIGVsZW1lbnRzIG9yIG1lbWJlcnMgdGhhdCBhcmUNCj4gICAgIGFnZ3JlZ2F0ZXMgb3Ig dW5pb25zLCB0aGVzZSBydWxlcyBhcHBseSByZWN1cnNpdmVseSB0byB0aGUNCj4gICAgIHN1YmFn Z3JlZ2F0ZXMgb3IgY29udGFpbmVkIHVuaW9ucy4gWy4uLl0NCj4NCj5UaGlzIGlzIHRoZSBHVUlE IHR5cGUgZGVmaW5pdGlvbjoNCj4NCj50eXBlZGVmIHN0cnVjdCB7DQo+ICBVSU5UMzIgIERhdGEx Ow0KPiAgVUlOVDE2ICBEYXRhMjsNCj4gIFVJTlQxNiAgRGF0YTM7DQo+ICBVSU5UOCAgIERhdGE0 WzhdOw0KPn0gR1VJRDsNCj4NCj5Gb3IgdGhpcyBzdHJ1Y3R1cmUsIHRoZSBhYm92ZSBzdGFuZGFy ZGVzZSBpbXBsaWVzIHRoYXQgd2UgaGF2ZSB0bw0KPnByb3ZpZGUgaW50ZWdlciBjb25zdGFudCBl eHByZXNzaW9ucyBpbiB0aGUgaW5pdGlhbGl6ZXIuDQo+DQo+ICA2LjYgQ29uc3RhbnQgZXhwcmVz c2lvbnMNCj4NCj4gIFsuLi5dDQo+DQo+ICA2IEFuIC9pbnRlZ2VyIGNvbnN0YW50IGV4cHJlc3Np b24vIHNoYWxsIGhhdmUgaW50ZWdlciB0eXBlIGFuZCBzaGFsbA0KPiAgICBvbmx5IGhhdmUgb3Bl cmFuZHMgdGhhdCBhcmUgaW50ZWdlciBjb25zdGFudHMsIGVudW1lcmF0aW9uDQo+ICAgIGNvbnN0 YW50cywgY2hhcmFjdGVyIGNvbnN0YW50cywgL3NpemVvZi8gZXhwcmVzc2lvbnMgd2hvc2UgcmVz dWx0cw0KPiAgICBhcmUgaW50ZWdlciBjb25zdGFudHMsIGFuZCBmbG9hdGluZyBjb25zdGFudHMg dGhhdCBhcmUgdGhlDQo+ICAgIGltbWVkaWF0ZSBvcGVyYW5kcyBvZiBjYXN0cy4gQ2FzdCBvcGVy YXRvcnMgaW4gYW4gaW50ZWdlciBjb25zdGFudA0KPiAgICBleHByZXNzaW9uIHNoYWxsIG9ubHkg Y29udmVydCBhcml0aG1ldGljIHR5cGVzIHRvIGludGVnZXIgdHlwZXMsDQo+ICAgIGV4Y2VwdCBh cyBwYXJ0IG9mIGFuIG9wZXJhbmQgdG8gdGhlIC9zaXplb2YvIG9wZXJhdG9yLg0KPg0KPlRoZSBl bmQgcmVzdWx0IGlzIHRoYXQgImdFZGtpaVBsYXRmb3JtSGFzQWNwaUd1aWQiIGlzIG5vdCB1c2Fi bGUgaW4gc3VjaA0KPmNvbnRleHRzLCBidXQgdGhlIEVES0lJX1BMQVRGT1JNX0hBU19BQ1BJX0dV SUQgbWFjcm8gaXMuDQo+DQo+DQo+SWYgeW91IHdhbnQsIEkgY2FuIGZpbGUgYSBUaWFub0NvcmUg ZmVhdHVyZSByZXF1ZXN0IEJaIGZvciBnZW5lcmF0aW5nDQo+c3VjaCBtYWNyb3MgYXMgd2VsbCBp biBCYXNlVG9vbHMsIGJ1dCBmb3Igbm93LCBJIGRvbid0IHRoaW5rIGl0IHNob3VsZA0KPmVpdGhl ciBibG9jayBteSBwYXRjaCBub3RlZCBhYm92ZSwgb3IgZm9yY2UgbWUgdG8gZHJvcCB0aGUgR3Vp ZC8gaGVhZGVyDQo+ZmlsZSBmcm9tIHRoZSBwYXRjaC4gUmlnaHQgbm93LCB0aGUgR3VpZC8gaGVh ZGVyIGFkZHMgc29tZXRoaW5nIHRoYXQgaXMNCj5ub3QgYXZhaWxhYmxlIGZyb20gQmFzZVRvb2xz LCBhbmQgSSB3b3VsZG4ndCBsaWtlIHRvIGRlbGF5IHRoZSB2MyBzZXJpZXMNCj5hbnkgbG9uZ2Vy Lg0KPg0KPkRvIHlvdSBhZ3JlZSB0byB0aGUgYWJvdmUgbWV0aG9kPyBJIGZpbGUgYSBUaWFub0Nv cmUgRmVhdHVyZSBSZXF1ZXN0IEJaDQo+Zm9yIEJhc2VUb29scywgYW5kIE1kZU1vZHVsZVBrZyBt YWludGFpbmVycyBmb3JtYWxseSBhcHByb3ZlIHRoZSB2Mw0KPjA0LzEyIHBhdGNoPw0KPg0KPg0K PihTaWRlIHBvaW50OiBJIHRoaW5rIHRoZSBHdWlkLyBoZWFkZXIgZmlsZSBoYXMgYW5vdGhlciBi ZW5lZml0Og0KPmRvY3VtZW50YXRpb24uIEkgZG9uJ3QgdGhpbmsgd2UgY2FuIGFkZCB0aGUgYW1v dW50IG9mIGRvY3VtZW50YXRpb24gdGhhdA0KPmlzIGFjY2VwdGFibGUgaW4gYSBzdGFuZGFsb25l IEd1aWQvIGhlYWRlciB0byBhbiBpbi1saW5lIGNvbW1lbnQgaW4gdGhlDQo+LkRFQyBmaWxlLiBT bywgSSB0aGluayB0aGF0IHRoZSBuZXcgcnVsZSBmb3Igbm90IGFkZGluZyBHdWlkLyBoZWFkZXJz IGlzDQo+aW1tYXR1cmUgYXQgdGhpcyBwb2ludCAtLSBhbmQsIHdvcnNlLCBJIGRvbid0IHJlY2Fs bCBhbiBvcGVuDQo+YW5ub3VuY2VtZW50IG9yIGRpc2N1c3Npb24gYWJvdXQgdGhpcyBydWxlLCBz byB0aGF0IHdlIGNvdWxkIGhhdmUgcmFpc2VkDQo+Y29uY2VybnMgYmVmb3JlIHR1cm5pbmcgdGhl IHByb3Bvc2FsIGludG8gYW4gYWN0dWFsIHJ1bGUuKQ0KPg0KPlRoYW5rcw0KPkxhc3psbw0KPg0K Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4gRnJvbTogTGFzemxvIEVyc2VrIFtt YWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+Pj4gU2VudDogVHVlc2RheSwgTWFyY2ggMjgsIDIw MTcgMTozMiBBTQ0KPj4+IFRvOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJv Lm9yZz47IEdhbywgTGltaW5nDQo+PGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPj4+IENjOiBaZW5n LCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj48bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+OyBhZmlzaEBhcHBsZS5jb207IFRpYW4sIEZlbmcNCj4+PiA8 ZmVuZy50aWFuQGludGVsLmNvbT47IGVkazItZGV2ZWwtMDEgPGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnPjsgTGVpZg0KPkxpbmRob2xtIDxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+DQo+Pj4gU3Vi amVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjIgMDUvMTJdIEFybVBrZzogaW50cm9kdWNlIEVES0lJ IFBsYXRmb3JtIEhhcw0KPkFDUEkgUHJvdG9jb2wsIGFuZCBwbHVnLWluIGxpYnJhcnkNCj4+Pg0K Pj4+IE9uIDAzLzI3LzE3IDA5OjAwLCBBcmQgQmllc2hldXZlbCB3cm90ZToNCj4+Pj4gT24gMjcg TWFyY2ggMjAxNyBhdCAwMzo0MiwgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPiB3 cm90ZToNCj4+Pj4+IExhc3psbzoNCj4+Pj4+ICAgT24gR1VJRCBoZWFkZXIgZmlsZSwgc29tZSBo ZWFkZXIgZmlsZSBhcmUgaGVyZSwgYmVjYXVzZSB0aGV5IGFyZQ0KPmFkZGVkIGJlZm9yZSBCYXNl VG9vbHMgc3VwcG9ydHMgaXQuIE5vdywgd2UgYWxsb3cgbm90IHRvIGFkZA0KPj4+IGhlYWRlciBm aWxlIGlmIHRoZSBoZWFkZXIgZmlsZSBvbmx5IGhhcyBHVUlEIHZhbHVlIGRlZmluaXRpb24uDQo+ Pj4+DQo+Pj4+IEkgaGF2ZSB0byBhZ3JlZSB3aXRoIExhc3psbyBoZXJlLiBUaGUgQmFzZVRvb2xz IHN1cHBvcnQgaXMgaW5jb21wbGV0ZSwNCj4+Pj4gc2luY2UgaXQgZG9lcyBub3QgYWRkIGEgI2Rl ZmluZSBmb3IgdGhlIEdVSUQgdG8gQXV0b0dlbi5oLiBUaGlzIG1ha2VzDQo+Pj4+IGl0IGltcG9z c2libGUgdG8gaW5pdGlhbGl6ZSBzdGF0aWMgc3RydWN0dXJlcyBjb250YWluaW5nIEdVSURzLCBz dWNoDQo+Pj4+IGFzIHRlbXBsYXRlcyBjb250YWluaW5nIHZlbmRvciBkZXZpY2UgcGF0aHMuDQo+ Pj4+DQo+Pj4+IEZvciBpbnN0YW5jZSwgdGhlIGZvbGxvd2luZw0KPj4+Pg0KPj4+PiB0eXBlZGVm IHN0cnVjdCB7DQo+Pj4+ICAgRUZJX0dVSUQgZm9vOw0KPj4+PiB9IFRZUEU7DQo+Pj4+DQo+Pj4+ IFRZUEUgbUZvbyB7DQo+Pj4+ICAgU09NRV9HVUlEDQo+Pj4+IH07DQo+Pj4+DQo+Pj4+IGlzIG5v dCBwb3NzaWJsZSB3aXRob3V0IGEgR3VpZC94eHguaCBpbmNsdWRlIGZpbGUgY29udGFpbmluZyBh ICNkZWZpbmUNCj4+Pj4gZm9yIFNPTUVfR1VJRC4NCj4+Pg0KPj4+IEkgd29uZGVyIGlmIHdlIGNh biBjb21taXQgdGhpcyBzZXJpZXMgYmVmb3JlIGVuZCBvZiBBcHJpbC4NCj4+Pg0KPj4+IE9yIGlz IHRoYXQgdG9vIHNvb24/IEVuZCBvZiBNYXkgcGVyaGFwcz8NCj4+Pg0KPj4+IFRoZSBtaW5kIGJv Z2dsZXMuDQo+Pj4NCj4+PiBMYXN6bG8NCj4+Pg0KPj4+Pg0KPj4+Pj4gICBPbiBHVUlEIEMgTUFD Uk8sIHdlIHN1Z2dlc3QgdG8gdXNlIEd1aWRDTmFtZSBpbiBldmVyeSBDIHNvdXJjZQ0KPmNvZGUu IFNvLCB3ZSBkb24ndCBzdWdnZXN0IHRvIGFkZCBpdC4gIEFzIHlvdSBrbm93LCBzb21lDQo+Pj4g ZXhpc3RpbmcgaGVhZGVyIGZpbGVzIGhhdmUgR3VpZENOYW1lIGFuZCBHVUlEIE1hY3JvLiBOb3cs IHdlIGhhdmUgbm8NCj5wbGFuIHRvIGNsZWFuIHVwIHRoZSBleGlzdGluZyBvbmUuIEJ1dCwgd2Ug ZXhwZWN0IG5ldyBhZGRlZA0KPj4+IGZpbGUgZm9sbG93cyB0aGlzIHJ1bGUuDQo+Pj4+Pg0KPj4+ Pj4gVGhhbmtzDQo+Pj4+PiBMaW1pbmcNCj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPj4+Pj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlz dHMuMDEub3JnXSBPbiBCZWhhbGYNCj5PZg0KPj4+Pj4+IExhc3psbyBFcnNlaw0KPj4+Pj4+IFNl bnQ6IFNhdHVyZGF5LCBNYXJjaCAyNSwgMjAxNyAxOjA5IEFNDQo+Pj4+Pj4gVG86IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbA0KPj4+Pj4+IDxhcmQuYmll c2hldXZlbEBsaW5hcm8ub3JnPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4+Pj4+PiA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+OyBhZmlzaEBhcHBsZS5jb20NCj4+Pj4+PiBDYzogVGlhbiwgRmVu ZyA8ZmVuZy50aWFuQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+PGxpbWluZy5nYW9AaW50ZWwu Y29tPjsNCj4+Pj4+PiBlZGsyLWRldmVsLTAxIDxlZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47IExl aWYgTGluZGhvbG0NCj4+Pj4+PiA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPj4+Pj4+IFN1 YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYyIDA1LzEyXSBBcm1Qa2c6IGludHJvZHVjZSBFREtJ SSBQbGF0Zm9ybQ0KPkhhcw0KPj4+Pj4+IEFDUEkgUHJvdG9jb2wsIGFuZCBwbHVnLWluIGxpYnJh cnkNCj4+Pj4+Pg0KPj4+Pj4+IE9uIDAzLzI0LzE3IDA0OjQ0LCBaZW5nLCBTdGFyIHdyb3RlOg0K Pj4+Pj4+PiBJIGp1c3QgdGhpbmsgaXQgc2VlbXMgYSBnZW5lcmljIHByb2JsZW0uDQo+Pj4+Pj4+ IFNvbWUgcGxhdGZvcm1zIG1heSBkeW5hbWljYWxseSBkZXRlcm1pbmUgd2hldGhlciBBQ1BJIHNo b3VsZCBiZQ0KPj4+Pj4+IHN1cHBvcnRlZCBvciBub3QuDQo+Pj4+Pj4+IFNvbWUgcGxhdGZvcm1z IG1heSBkeW5hbWljYWxseSBkZXRlcm1pbmUgd2hldGhlciBTTUJJT1Mgc2hvdWxkDQo+YmUNCj4+ Pj4+PiBzdXBwb3J0ZWQgb3Igbm90Lg0KPj4+Pj4+PiBTb21lIHBsYXRmb3JtcyBtYXkgZHluYW1p Y2FsbHkgZGV0ZXJtaW5lIHdoZXRoZXIgSElJIHNob3VsZCBiZQ0KPj4+Pj4+IHN1cHBvcnRlZCBv ciBub3QuDQo+Pj4+Pj4+IC4uLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBXZSBhcmUgdGhpbmtpbmcgd2hl dGhlciB3ZSBjYW4gaGF2ZSBhIGdlbmVyaWMgTlVMTCBpbnN0YW5jZSB0bw0KPnN1cHBvcnQgYWxs DQo+Pj4+Pj4gdGhpcyBraW5kIG9mIGNhc2VzLCBmb3IgZXhhbXBsZToNCj4+Pj4+Pj4gMS4gRGVm aW5lIGEgRml4ZWRBdEJ1aWxkIFBDRCBQY2REZXBleEd1aWQgdGhhdCB3aWxsIGJlIGEgVk9JRCog dHlwZQ0KPlBDRA0KPj4+Pj4+IHBvaW50IHRvIGEgZGVwZXggR1VJRC4NCj4+Pj4+Pj4gMi4gSW1w bGVtZW50IGEgTlVMTCBpbnN0YW5jZSBEZXBleExpYi4NCj4+Pj4+Pj4gW0RlZmluZXNdDQo+Pj4+ Pj4+ICAgSU5GX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgID0gMHgwMDAxMDAwNQ0KPj4+Pj4+ PiAgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IERlcGV4TGliDQo+Pj4+Pj4+ICAg RklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gWFhYWFhYWFgtWFhYWC1YWFhYLVhYWFgt WFhYWFhYWFhYWFhYDQo+Pj4+Pj4+ICAgTU9EVUxFX1RZUEUgICAgICAgICAgICAgICAgICAgID0g QkFTRQ0KPj4+Pj4+PiAgIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KPj4+ Pj4+PiAgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IE5VTEwNCj4+Pj4+Pj4NCj4+ Pj4+Pj4gW1NvdXJjZXNdDQo+Pj4+Pj4+ICAgRGVwZXhMaWIuYw0KPj4+Pj4+Pg0KPj4+Pj4+PiBb UGFja2FnZXNdDQo+Pj4+Pj4+ICAgWFhYUGtnL1hYWFBrZy5kZWMNCj4+Pj4+Pj4NCj4+Pj4+Pj4g W0RlcGV4XQ0KPj4+Pj4+PiAgIFBjZERlcGV4R3VpZA0KPj4+Pj4+Pg0KPj4+Pj4+PiAzLiBMaW5r IE5VTEwgaW5zdGFuY2UgYW5kIGNvbmZpZ3VyZSBQQ0QgaW4gZHNjLg0KPj4+Pj4+PiBNZGVNb2R1 bGVQa2cvVW5pdmVyc2FsL0FjcGkvQWNwaVRhYmxlRHhlL0FjcGlUYWJsZUR4ZS5pbmYgew0KPj4+ Pj4+PiAgICAgPExpYnJhcnlDbGFzc2VzPg0KPj4+Pj4+PiAgICAgICBOVUxMfFhYWFBrZy9MaWJy YXJ5L0RlcGV4TGliL0RlcGV4TGliLmluZg0KPj4+Pj4+PiAgICAgPFBjZHNGaXhlZEF0QnVpbGQ+ DQo+Pj4+Pj4+ICAgICAgIFBjZERlcGV4R3VpZHxnRWRraWlQbGF0Zm9ybUhhc0FjcGlHdWlkDQo+ Pj4+Pj4+IH0NCj4+Pj4+Pj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9TbWJpb3NEeGUvU21iaW9z RHhlLmluZiB7DQo+Pj4+Pj4+ICAgICA8TGlicmFyeUNsYXNzZXM+DQo+Pj4+Pj4+ICAgICAgIE5V TEx8WFhYUGtnL0xpYnJhcnkvRGVwZXhMaWIvRGVwZXhMaWIuaW5mDQo+Pj4+Pj4+ICAgICA8UGNk c0ZpeGVkQXRCdWlsZD4NCj4+Pj4+Pj4gICAgICAgUGNkRGVwZXhHdWlkfGdFZGtpaVBsYXRmb3Jt SGFzU21iaW9zR3VpZA0KPj4+Pj4+PiB9DQo+Pj4+Pj4+DQo+Pj4+Pj4+IEJ1dCBjdXJyZW50IEJh c2VUb29scyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzeW50YXggdG8gZGVjbGFyZSBQQ0QgaW4NCj5b RGVwZXhdDQo+Pj4+Pj4gc2VjdGlvbiBvZiBpbmYgeWV0Lg0KPj4+Pj4+Pg0KPj4+Pj4+PiBCYXNl ZCBvbiB0aGUgc3RhdGVtZW50cyBhYm92ZSwgSSBoYXZlIGJlbG93IGNvbW1lbnRzLg0KPj4+Pj4+ DQo+Pj4+Pj4+IDEuIEkgYWdyZWUgdG8gYWRkIHRoZSBHVUlEIGludG8gTWRlTW9kdWxlUGtnLCBi dXQgaG93IGFib3V0IHVzaW5nDQo+Pj4+Pj4+IGdFZGtpaVBsYXRmb3JtSGFzQWNwaUd1aWQgaW5z dGVhZCBvZg0KPj4+Pj4+PiBnRWRraWlQbGF0Zm9ybUhhc0FjcGlQcm90b2NvbEd1aWQgYW5kIGFk ZCB0aGUgR1VJRCBpbnRvIFtHdWlkc10NCj4+Pj4+Pj4gc2VjdGlvbiBvZiBNZGVNb2R1bGVQa2cu ZGVjPyBBcyBQbGF0Zm9ybSBjYW4gaW5zdGFsbA0KPj4+Pj4+PiBnRWRraWlQbGF0Zm9ybUhhc0Fj cGlHdWlkIFBQSSB0byBjb250cm9sIFBFSU0gYW5kIGluc3RhbGwNCj4+Pj4+Pj4gZ0Vka2lpUGxh dGZvcm1IYXNBY3BpR3VpZCBQUk9UT0NPTCB0byBjb250cm9sIERSSVZFUi4NCj4+Pj4+Pg0KPj4+ Pj4+IFNvdW5kcyByZWFzb25hYmxlLCBJJ2xsIGRvIHRoaXMuDQo+Pj4+Pj4NCj4+Pj4+Pj4gQW5k IGFub3RoZXIsIG5vDQo+Pj4+Pj4+IG5lZWQgdG8gYWRkIGEgaW5jbHVkZSBmaWxlIFBsYXRmb3Jt SGFzQWNwaS5oIGFzIEJhc2VUb29scyBzdXBwb3J0cyB0bw0KPj4+Pj4+PiBhZGQgdGhlIEdVSUQg ZGVmaW5pdGlvbnMgdG8gQXV0b0dlbiBmaWxlcyBmcm9tIHBhY2thZ2UgZGVjLg0KPj4+Pj4+DQo+ Pj4+Pj4gSSBkaXNhZ3JlZSB3aXRoIHRoaXMuIEkgbWVhbiwgSSAqcGVyc29uYWxseSogd291bGRu J3QgbWluZCwgYnV0IHRoaXMNCj4+Pj4+PiB3b3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBleGlz dGluZyBNZGVNb2R1bGVQa2cgcHJhY3RpY2UuIEZvcg0KPmV4YW1wbGUsDQo+Pj4+Pj4gc2VlDQo+ Pj4+Pj4NCj4+Pj4+PiBNZGVNb2R1bGVQa2cvSW5jbHVkZS9HdWlkL1R0eVRlcm0uaA0KPj4+Pj4+ DQo+Pj4+Pj4gU2ltaWxhcmx5IHRvIHRoZSBjdXJyZW50IGNhc2UsIHRoYXQgR1VJRCAoImdFZmlU dHlUZXJtR3VpZCIpIGhhcyBubw0KPmRhdGENCj4+Pj4+PiBzdHJ1Y3R1cmVzIGFzc29jaWF0ZWQg d2l0aCBpdDsgdGhlIGhlYWRlciBmaWxlIG9ubHkgaGFzIGFuIGV4dGVybg0KPj4+Pj4+IGRlY2xh cmF0aW9uLCBhbmQgLS0gaW1wb3J0YW50bHkgLS0gYW4gYXJyYXkgaW5pdGlhbGl6ZXIgbWFjcm8g Y2FsbGVkDQo+Pj4+Pj4gRUZJX1RUWV9URVJNX0dVSUQsIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRo ZSBmb2xsb3dpbmcgc3ludGF4Og0KPj4+Pj4+DQo+Pj4+Pj4gU1RBVElDIENPTlNUIEVGSV9HVUlE IG1UaGlzSXNNeUd1aWQgPSBFRklfVFRZX1RFUk1fR1VJRDsNCj4+Pj4+Pg0KPj4+Pj4+IFNvLCBJ IHRoaW5rIHRoYXQgdGhlIEdVSUQgaGVhZGVyIGZpbGUgaXMgcmVxdWlyZWQuIEkgd2lsbCBhZGQg aXQgaW4gdjMuDQo+Pj4+Pj4NCj4+Pj4+PiBPbmNlIHdlIGdlbmVyYWxpemUgdGhpcyBpZGVhIHRv IHRoZSBkZXNpZ24gdGhhdCB5b3UgbGFpZCBvdXQgYWJvdmUsIHdlDQo+Pj4+Pj4gY2FuIHBlcmhh cHMgZWxpbWluYXRlIHRoZSBoZWFkZXIgZmlsZS4gQnV0LCBmb3Igbm93LCBJIHRoaW5rIHdlIHNo b3VsZA0KPj4+Pj4+IHJlbWFpbiBjb25zaXN0ZW50IHdpdGggb3RoZXIgTWRlTW9kdWxlUGtnIEdV SUQgZGVmaW5pdGlvbnMuDQo+Pj4+Pj4NCj4+Pj4+Pj4gMi4gWW91IGNhbiBmaWxlIGJ1Z3ppbGxh IGJ1ZyB0byByZXF1ZXN0IEJhc2VUb29scyBzeW50YXggc3VwcG9ydCB0bw0KPj4+Pj4+PiBkZWNs YXJlIFBDRCBpbiBbRGVwZXhdIHNlY3Rpb24gb2YgaW5mLiBUaGVuIFBjZERlcGV4R3VpZCBhbmQN Cj5EZXBleExpYg0KPj4+Pj4+PiBjb3VsZCBiZSBmaW5hbGx5IGFkZGVkIGludG8gY29yZSBwYWNr YWdlIE1kZU1vZHVsZVBrZyBvciBldmVuDQo+TWRlUGtnDQo+Pj4+Pj4+IChJIHByZWZlcikuDQo+ Pj4+Pj4NCj4+Pj4+PiBJIGZpbGVkOg0KPj4+Pj4+DQo+Pj4+Pj4gaHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00NDMgLS0gZm9yIEJhc2VUb29scywNCj4+Pj4+ PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NCAtLSBm b3IgdGhlIElORiBzcGVjDQo+Pj4+Pj4NCj4+Pj4+Pj4gQmVmb3JlIHRoYXQsIGhvdyBhYm91dCBp bXBsZW1lbnRpbmcgdGhlDQo+Pj4+Pj4+IFBsYXRmb3JtSGFzQWNwaUxpYiBpbiBub25lIGNvcmUg cGFja2FnZT8NCj4+Pj4+Pg0KPj4+Pj4+IFdvcmtzIGZvciBtZTsgSSdsbCBzcGxpdCB0aGF0IHBh cnQgb2ZmIGFuZCBrZWVwIGl0IHVuZGVyIEFybVBrZy4NCj4+Pj4+Pg0KPj4+Pj4+IFRoYW5rcw0K Pj4+Pj4+IExhc3psbw0KPj4+Pj4+DQo+Pj4+Pj4+DQo+Pj4+Pj4+DQo+Pj4+Pj4+IFRoYW5rcywN Cj4+Pj4+Pj4gU3Rhcg0KPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+Pj4+ PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9y Z10gT24NCj5CZWhhbGYgT2YNCj4+Pj4+PiBBcmQgQmllc2hldXZlbA0KPj4+Pj4+PiBTZW50OiBU aHVyc2RheSwgTWFyY2ggMjMsIDIwMTcgNTowOSBQTQ0KPj4+Pj4+PiBUbzogWmVuZywgU3RhciA8 c3Rhci56ZW5nQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+Pj4+Pj4gPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPjsgYWZpc2hAYXBwbGUuY29tDQo+Pj4+Pj4+IENjOiBUaWFuLCBG ZW5nIDxmZW5nLnRpYW5AaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrDQo+PGxlcnNla0ByZWRoYXQu Y29tPjsNCj4+Pj4+PiBlZGsyLWRldmVsLTAxIDxlZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47IExl aWYgTGluZGhvbG0NCj4+Pj4+PiA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPj4+Pj4+PiBT dWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCB2MiAwNS8xMl0gQXJtUGtnOiBpbnRyb2R1Y2UgRURL SUkNCj5QbGF0Zm9ybSBIYXMNCj4+Pj4+PiBBQ1BJIFByb3RvY29sLCBhbmQgcGx1Zy1pbiBsaWJy YXJ5DQo+Pj4+Pj4+DQo+Pj4+Pj4+IE9uIDIzIE1hcmNoIDIwMTcgYXQgMDE6NDEsIFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+IHdyb3RlOg0KPj4+Pj4+Pj4gSSBwcmVmZXIgdG8gZG8g bm90IGluY2x1ZGUgdGhlIHByb3RvY29sIGRlZmluaXRpb24gYW5kIHRoZSBsaWJyYXJ5DQo+aW5z dGFuY2UNCj4+Pj4+PiBpbnRvIE1kZU1vZHVsZVBrZyBhdCB0aGlzIG1vbWVudCB1bnRpbCB0aGV5 IG5lZWQgdG8gYmUgdXNlZCBieQ0KPm11bHRpcGxlDQo+Pj4+Pj4gcGxhdGZvcm1zL2FyY2hzLg0K Pj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSSBkaXNhZ3JlZS4gTm93aGVyZSBpbiB0aGUgUEkg b3IgVUVGSSBzcGVjIGlzIHRoZXJlIGFueSBtZW50aW9uIChmb3INCj5hbnkNCj4+Pj4+PiBhcmNo aXRlY3R1cmUpIHRoYXQgQUNQSSBpcyBtYW5kYXRvcnkuIEdpdmVuIHRoYXQgRURLMiBpcyB0aGUg cmVmZXJlbmNlDQo+Pj4+Pj4gcGxhdGZvcm0gVUVGSS9QSSwgYW5kIG5vdCBmb3IgQUNQSSBvciB0 aGUgUEMveDg2IHBsYXRmb3JtLCBJIHRoaW5rIGl0IGlzDQo+Pj4+Pj4gdW5yZWFzb25hYmxlIHRv IGhhdmUgbG90cyBhbmQgbG90cyBvZiBQQyBxdWlya3MgKGkuZS4sIGFsbG9jYXRpb25zIGJlbG93 IDQNCj5HQikgaW4NCj4+Pj4+PiBNZGVNb2R1bGVQa2csIGJ1dCB0aGVuIGRpc2FsbG93IGEgY2xl YW4gYXBwcm9hY2ggdG8gbWFrZSBBQ1BJDQo+c2VsZWN0YWJsZSwNCj4+Pj4+PiBpbiBhIHdheSB0 aGF0IGlzIHRydWUgdG8gdGhlIHNwaXJpdCBvZiBQSSAoaS5lLiwgdXNpbmcgcHJvdG9jb2wgZGVw ZW5kZW5jaWVzKQ0KPj4+Pj4+Pg0KPj4+Pj4+PiBTbyBJIHRoaW5rIGF0IGxlYXN0IHRoZSBwcm90 b2NvbCBkZWZpbml0aW9ucyBiZWxvbmcgaW4gTWRlTW9kdWxlUGtnLg0KPj4+Pj4+Pg0KPj4+Pj4+ PiBUaGFua3MsDQo+Pj4+Pj4+IEFyZC4NCj4+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4+Pj4+Pj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QN Cj4+Pj4+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+Pj4+Pj4gaHR0cHM6Ly9saXN0cy4w MS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+Pj4+Pj4+DQo+Pj4+Pj4NCj4+Pj4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+Pj4+ IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+Pj4+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4+Pj4+PiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwN Cj4+DQoNCg==