Return-Path: X-Original-To: apmail-spark-dev-archive@minotaur.apache.org Delivered-To: apmail-spark-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 146CC10CF1 for ; Mon, 2 Mar 2015 22:47:13 +0000 (UTC) Received: (qmail 16312 invoked by uid 500); 2 Mar 2015 22:46:37 -0000 Delivered-To: apmail-spark-dev-archive@spark.apache.org Received: (qmail 16232 invoked by uid 500); 2 Mar 2015 22:46:37 -0000 Mailing-List: contact dev-help@spark.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@spark.apache.org Received: (qmail 16216 invoked by uid 99); 2 Mar 2015 22:46:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Mar 2015 22:46:37 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=10.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [15.201.208.54] (HELO g4t3426.houston.hp.com) (15.201.208.54) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Mar 2015 22:46:10 +0000 Received: from G9W0364.americas.hpqcorp.net (g9w0364.houston.hp.com [16.216.193.45]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by g4t3426.houston.hp.com (Postfix) with ESMTPS id B093E78C; Mon, 2 Mar 2015 22:45:07 +0000 (UTC) Received: from G4W6306.americas.hpqcorp.net (16.210.26.231) by G9W0364.americas.hpqcorp.net (16.216.193.45) with Microsoft SMTP Server (TLS) id 14.3.169.1; Mon, 2 Mar 2015 22:43:50 +0000 Received: from G9W0737.americas.hpqcorp.net ([169.254.9.160]) by G4W6306.americas.hpqcorp.net ([16.210.26.231]) with mapi id 14.03.0169.001; Mon, 2 Mar 2015 22:43:50 +0000 From: "Ulanov, Alexander" To: Sam Halliday CC: Joseph Bradley , dev , "Evan R. Sparks" Subject: RE: Using CUDA within Spark / boosting linear algebra Thread-Topic: Using CUDA within Spark / boosting linear algebra Thread-Index: AdBBfWhuKPqoaEklS3C36BE9QomgGQAAhtEAAAGfVLAAASz4gAAHItZAAAFGYoAAMDL08AABuXqAAAC0q0AAAKwxgACUAsfwAAMhugAAKb0RoABpRQ1wAorxuwAAAXuuAAAtZPiAAAFf0QAAAAlNIAAA3mqAAAcBgYAACqowgAAcmbAAAAA7TgAAlRi7AAACzupAAADDHwAAAr60YA== Date: Mon, 2 Mar 2015 22:43:49 +0000 Message-ID: <9D5B00849D2CDA4386BDA89E83F69E6C0FE05BB0@G9W0737.americas.hpqcorp.net> References: <9D5B00849D2CDA4386BDA89E83F69E6C0FDEFB6F@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FDEFC2D@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FDEFDE2@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FDF039F@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FDF0451@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FDF16BF@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FDF1D26@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FDF2B99@G4W3292.americas.hpqcorp.net> <9D5B00849D2CDA4386BDA89E83F69E6C0FE0314C@G9W0737.americas.hpqcorp.net> <87ioeo5n6e.fsf@gmail.com> <9D5B00849D2CDA4386BDA89E83F69E6C0FE05B42@G9W0737.americas.hpqcorp.net> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [16.210.48.17] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org VGhhbmtzIFNhbSBmb3Igc3VnZ2VzdGlvbiEgSSBzaG91bGQgdHJ5IGRvaW5nIHRoaXMuIE5vdyBJ IHN1cHBvc2UgdGhhdCBuZXRsaWItamF2YSBsaW5rZWQgd2l0aCBjdUJsYXMgZHVyaW5nIHRoZSBl eGVjdXRpb24gdGltZSBkb2VzIGZhbGwgYmFjayB0byBjYmxhcyBsaWJyYXJ5IGluIG15IHN5c3Rl bSwgd2hpY2ggaXMgYXRsYXMuIElmIEkgcmVtb3ZlIGF0bGFzLCBuZXRsaWIgKGxpbmtlZCB3aXRo IGN1YmxhcykgZmFpbHMgd2l0aCB0aGUgbWVzc2FnZSAidW5kZWZpbmVkIHN5bWJvbDogY2JsYXNf ZGdlbW0iLiAgDQoNCkluIHRoZSBtZWFudGltZSwgSSBoYXZlIHVwZGF0ZWQgbXkgc3ByZWFkc2hl ZXQgd2l0aCBCSURNYXQtY3VkYSByZXN1bHRzIHRoYXQgZG9lcyBjb3B5IGZyb20gbWFpbiBtZW1v cnkgdG8gR1BVLCBtdWx0aXBsaWVzIGFuZCB0aGUgY29waWVzIGl0IGJhY2sgdG8gbWFpbiBtZW1v cnkgKHNpbWlsYXIgdG8gd2hhdCBYaWFuZ3J1aSBkaWQpLiBTdXJwcmlzaW5nbHkgKGZvciBteXNl bGYpLCB0aGUgY29weWluZyBvdmVyaGVhZCBzZWVtcyBxdWl0ZSBzbWFsbCwgZXNwZWNpYWxseSBm b3IgdGhlIGJpZ2dlciBtYXRyaWNlcy4NCg0KaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFk c2hlZXRzL2QvMWxXZFZTdVNyYWdPb2JiMEFfb2VvdVFnSFVNeDM3OFQ5SjVyN2t3S1NQa1kvZWRp dD91c3A9c2hhcmluZw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogU2FtIEhh bGxpZGF5IFttYWlsdG86c2FtLmhhbGxpZGF5QGdtYWlsLmNvbV0gDQpTZW50OiBNb25kYXksIE1h cmNoIDAyLCAyMDE1IDE6MjQgUE0NClRvOiBVbGFub3YsIEFsZXhhbmRlcg0KU3ViamVjdDogUmU6 IFVzaW5nIENVREEgd2l0aGluIFNwYXJrIC8gYm9vc3RpbmcgbGluZWFyIGFsZ2VicmENCg0KVGhh dCdzIGNvcnJlY3QuIEl0J3MgaGlnaGx5IHVudXN1YWwgZm9yIGEgbGliYmxhcy5zbyB0byBvbmx5 IHByb3ZpZGUgdGhlIEZvcnRyYW4gQVBJLiBPaCB3ZWxsLi4uIENCTEFTIHNvdXJjZXMgYXJlIGF2 YWlsYWJsZSBpbiB0aGUgbmV0bGliLWphdmEgcmVwb3NpdG9yeSBzbyB5b3UgY291bGQgc2ltcGx5 IGNvbXBpbGUgdGhlbSBhbmQgbGluayBhZ2FpbnN0IHdoYXRldmVyIGxpYmJsYXMuc29bZm9ydHJh bl0geW91IGxpa2UuDQoNCk9uIDIgTWFyY2ggMjAxNSBhdCAyMTowNCwgVWxhbm92LCBBbGV4YW5k ZXIgPGFsZXhhbmRlci51bGFub3ZAaHAuY29tPiB3cm90ZToNCj4gSGkgWGlhbmdydWksDQo+DQo+ IFRoYW5rcyBmb3IgdGhlIGxpbmssIEkgYW0gY3VycmVudGx5IHRyeWluZyB0byB1c2UgbnZibGFz LiBJdCBzZWVtcyB0aGF0IG5ldGxpYiB3cmFwcGVycyBhcmUgaW1wbGVtZW50ZWQgd2l0aCBDLUJM QVMgaW50ZXJmYWNlIGFuZCBudmJsYXMgZG9lcyBub3QgaGF2ZSBjLWJsYXMuIEkgd29uZGVyIGhv dyBpdCBpcyBnb2luZyB0byB3b3JrLiBJJ2xsIGtlZXAgeW91IHVwZGF0ZWQuDQo+DQo+IEFsZXhh bmRlcg0KPg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBYaWFuZ3J1aSBN ZW5nIFttYWlsdG86bWVuZ3hyQGdtYWlsLmNvbV0NCj4gU2VudDogTW9uZGF5LCBNYXJjaCAwMiwg MjAxNSAxMTo0MiBBTQ0KPiBUbzogU2FtIEhhbGxpZGF5DQo+IENjOiBKb3NlcGggQnJhZGxleTsg VWxhbm92LCBBbGV4YW5kZXI7IGRldjsgRXZhbiBSLiBTcGFya3MNCj4gU3ViamVjdDogUmU6IFVz aW5nIENVREEgd2l0aGluIFNwYXJrIC8gYm9vc3RpbmcgbGluZWFyIGFsZ2VicmENCj4NCj4gT24g RnJpLCBGZWIgMjcsIDIwMTUgYXQgMTI6MzMgUE0sIFNhbSBIYWxsaWRheSA8c2FtLmhhbGxpZGF5 QGdtYWlsLmNvbT4gd3JvdGU6DQo+PiBBbHNvLCBjaGVjayB0aGUgSk5JTG9hZGVyIG91dHB1dC4N Cj4+DQo+PiBSZW1lbWJlciwgZm9yIG5ldGxpYi1qYXZhIHRvIHVzZSB5b3VyIHN5c3RlbSBsaWJi bGFzIGFsbCB5b3UgbmVlZCB0byANCj4+IGRvIGlzIHNldHVwIGxpYmJsYXMuc28uMyBsaWtlIGFu eSBuYXRpdmUgYXBwbGljYXRpb24gd291bGQgZXhwZWN0Lg0KPj4NCj4+IEkgaGF2ZW4ndCBldmVy IHVzZWQgdGhlIGN1YmxhcyAicmVhbCBCTEFTIiAgaW1wbGVtZW50YXRpb24sIHNvIEknZCBiZSAN Cj4+IGludGVyZXN0ZWQgdG8gaGVhciBhYm91dCB0aGlzLiBEbyBhbiAnbGRkIC91c3IvbGliL2xp YmJsYXMuc28uMycgdG8gDQo+PiBjaGVjayB0aGF0IGFsbCB0aGUgcnVudGltZSBsaW5rcyBhcmUg aW4gb3JkZXIuDQo+Pg0KPg0KPiBUaGVyZSBhcmUgdHdvIHNoYXJlZCBsaWJyYXJpZXMgaW4gdGhp cyBoeWJyaWQgc2V0dXAuIG52Ymxhcy5zbyBtdXN0IGJlIA0KPiBsb2FkZWQgYmVmb3JlIGxpYmJs YXMuc28gdG8gaW50ZXJjZXB0IGxldmVsIDMgcm91dGluZXMgdXNpbmcgR1BVLiBNb3JlIA0KPiBk ZXRhaWxzIGFyZSBhdDogaHR0cDovL2RvY3MubnZpZGlhLmNvbS9jdWRhL252Ymxhcy9pbmRleC5o dG1sI1VzYWdlDQo+DQo+PiBCdHcsIEkgaGF2ZSBzb21lIERHRU1NIHdyYXBwZXJzIGluIG15IG5l dGxpYi1qYXZhIHBlcmZvcm1hbmNlIA0KPj4gbW9kdWxlLi4uIGFuZCBJIGFsc28gcGxhbm5lZCB0 byB3cml0ZSBtb3JlIGluIE11bHRpQkxBUyAodW50aWwgSSANCj4+IG1vdGhiYWxsZWQgdGhlIHBy b2plY3QgZm9yIHRoZSBoYXJkd2FyZSB0byBjYXRjaCB1cCwgd2hpY2ggaXMgDQo+PiBwcm9iYWJs eSBoYXMgYW5kIG5vdyBJIGp1c3QgbmVlZCBhIHJlYXNvbiB0byBsb29rIGF0IGl0KQ0KPj4NCj4+ IE9uIDI3IEZlYiAyMDE1IDIwOjI2LCAiWGlhbmdydWkgTWVuZyIgPG1lbmd4ckBnbWFpbC5jb20+ IHdyb3RlOg0KPj4+DQo+Pj4gSGV5IFNhbSwNCj4+Pg0KPj4+IFRoZSBydW5uaW5nIHRpbWVzIGFy ZSBub3QgImJpZyBPIiBlc3RpbWF0ZXM6DQo+Pj4NCj4+PiA+IFRoZSBDUFUgdmVyc2lvbiBmaW5p c2hlZCBpbiAxMiBzZWNvbmRzLg0KPj4+ID4gVGhlIENQVS0+R1BVLT5DUFUgdmVyc2lvbiBmaW5p c2hlZCBpbiAyLjIgc2Vjb25kcy4NCj4+PiA+IFRoZSBHUFUgdmVyc2lvbiBmaW5pc2hlZCBpbiAx Ljcgc2Vjb25kcy4NCj4+Pg0KPj4+IEkgdGhpbmsgdGhlcmUgaXMgc29tZXRoaW5nIHdyb25nIHdp dGggdGhlIG5ldGxpYi9jdWJsYXMgY29tYmluYXRpb24uDQo+Pj4gU2FtIGFscmVhZHkgbWVudGlv bmVkIHRoYXQgY3VCTEFTIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBDUFUgQkxBUyANCj4+PiBpbnRl cmZhY2VzLiBJIGNoZWNrZWQgdGhlIENVREEgZG9jIGFuZCBpdCBzZWVtcyB0aGF0IHRvIHVzZSBH UFUgQkxBUyANCj4+PiB0aHJvdWdoIHRoZSBDUFUgQkxBUyBpbnRlcmZhY2Ugd2UgbmVlZCB0byB1 c2UgTlZCTEFTLCB3aGljaCANCj4+PiBpbnRlcmNlcHRzIHNvbWUgTGV2ZWwgMyBDUFUgQkxBUyBj YWxscyAoaW5jbHVkaW5nIEdFTU0pLiBTbyB3ZSBuZWVkIA0KPj4+IHRvIGxvYWQgbnZibGFzLnNv IGZpcnN0IGFuZCB0aGVuIHNvbWUgQ1BVIEJMQVMgbGlicmFyeSBpbiBKTkkuIEkgDQo+Pj4gd29u ZGVyIHdoZXRoZXIgdGhlIHNldHVwIHdhcyBjb3JyZWN0Lg0KPj4+DQo+Pj4gQWxleGFuZGVyLCBj b3VsZCB5b3UgY2hlY2sgd2hldGhlciBHUFUgaXMgdXNlZCBpbiB0aGUgbmV0bGliLWN1YmxhcyAN Cj4+PiBleHBlcmltZW50cz8gWW91IGNhbiB0ZWxsIGl0IGJ5IHdhdGNoaW5nIENQVS9HUFUgdXNh Z2UuDQo+Pj4NCj4+PiBCZXN0LA0KPj4+IFhpYW5ncnVpDQo+Pj4NCj4+PiBPbiBUaHUsIEZlYiAy NiwgMjAxNSBhdCAxMDo0NyBQTSwgU2FtIEhhbGxpZGF5IA0KPj4+IDxzYW0uaGFsbGlkYXlAZ21h aWwuY29tPg0KPj4+IHdyb3RlOg0KPj4+ID4gRG9uJ3QgdXNlICJiaWcgTyIgZXN0aW1hdGVzLCBh bHdheXMgbWVhc3VyZS4gSXQgdXNlZCB0byB3b3JrIGJhY2sgDQo+Pj4gPiBpbiB0aGUgZGF5cyB3 aGVuIGRvdWJsZSBtdWx0aXBsaWNhdGlvbiB3YXMgYSBib3R0bGVuZWNrLiBUaGUgDQo+Pj4gPiBj b21wdXRhdGlvbiBjb3N0IGlzIGVmZmVjdGl2ZWx5IGZyZWUgb24gYm90aCB0aGUgQ1BVIGFuZCBH UFUgYW5kIA0KPj4+ID4geW91J3JlIHNlZWluZyBwdXJlIGNvcHlpbmcgY29zdHMuIEFsc28sIEkn bSBkdWJpb3VzIHRoYXQgY3VibGFzIGlzIA0KPj4+ID4gZG9pbmcgd2hhdCB5b3UgdGhpbmsgaXQg aXMuIENhbiB5b3UgbGluayBtZSB0byB0aGUgc291cmNlIGNvZGUgZm9yIA0KPj4+ID4gREdFTU0/ DQo+Pj4gPg0KPj4+ID4gSSBzaG93IGFsbCBvZiB0aGlzIGluIG15IHRhbGssIHdpdGggZXhwbGFu YXRpb25zLCBJIGNhbid0IHN0cmVzcyANCj4+PiA+IGVub3VnaCBob3cgbXVjaCBJIHJlY29tbWVu ZCB0aGF0IHlvdSB3YXRjaCBpdCBpZiB5b3Ugd2FudCB0byANCj4+PiA+IHVuZGVyc3RhbmQgaGln aCBwZXJmb3JtYW5jZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24gZm9yIGxpbmVhciANCj4+PiA+IGFs Z2VicmEgOi0pDQo+Pj4gPg0KPj4+ID4gT24gMjcgRmViIDIwMTUgMDE6NDIsICJYaWFuZ3J1aSBN ZW5nIiA8bWVuZ3hyQGdtYWlsLmNvbT4gd3JvdGU6DQo+Pj4gPj4NCj4+PiA+PiBUaGUgY29weWlu ZyBvdmVyaGVhZCBzaG91bGQgYmUgcXVhZHJhdGljIG9uIG4sIHdoaWxlIHRoZSANCj4+PiA+PiBj b21wdXRhdGlvbiBjb3N0IGlzIGN1YmljIG9uIG4uIEkgY2FuIHVuZGVyc3RhbmQgdGhhdCANCj4+ PiA+PiBuZXRsaWItY3VibGFzIGlzIHNsb3dlciB0aGFuIG5ldGxpYi1vcGVuYmxhcyBvbiBzbWFs bCBwcm9ibGVtcy4NCj4+PiA+PiBCdXQgSSdtIHN1cnByaXNlZCB0byBzZWUgdGhhdCBpdCBpcyBz dGlsbCAyMHggc2xvd2VyIG9uIA0KPj4+ID4+IDEwMDAweDEwMDAwLiBJIGRpZCB0aGUgZm9sbG93 aW5nIG9uIGEgZzIuMnhsYXJnZSBpbnN0YW5jZSB3aXRoIEJJRE1hdDoNCj4+PiA+Pg0KPj4+ID4+ IHZhbCBuID0gMTAwMDANCj4+PiA+Pg0KPj4+ID4+IHZhbCBmID0gcmFuZChuLCBuKQ0KPj4+ID4+ IGZsaXA7IGYqZjsgdmFsIHJmID0gZmxvcA0KPj4+ID4+DQo+Pj4gPj4gZmxpcDsgdmFsIGcgPSBH TWF0KG4sIG4pOyBnLmNvcHlGcm9tKGYpOyAoZypnKS50b0ZNYXQobnVsbCk7IHZhbCANCj4+PiA+ PiByZyA9IGZsb3ANCj4+PiA+Pg0KPj4+ID4+IGZsaXA7IGcqZzsgdmFsIHJnZyA9IGZsb3ANCj4+ PiA+Pg0KPj4+ID4+IFRoZSBDUFUgdmVyc2lvbiBmaW5pc2hlZCBpbiAxMiBzZWNvbmRzLg0KPj4+ ID4+IFRoZSBDUFUtPkdQVS0+Q1BVIHZlcnNpb24gZmluaXNoZWQgaW4gMi4yIHNlY29uZHMuDQo+ Pj4gPj4gVGhlIEdQVSB2ZXJzaW9uIGZpbmlzaGVkIGluIDEuNyBzZWNvbmRzLg0KPj4+ID4+DQo+ Pj4gPj4gSSdtIG5vdCBzdXJlIHdoZXRoZXIgbXkgQ1BVLT5HUFUtPkNQVSBjb2RlIHNpbXVsYXRl cyB0aGUgDQo+Pj4gPj4gbmV0bGliLWN1YmxhcyBwYXRoLiBCdXQgYmFzZWQgb24gdGhlIHJlc3Vs dCwgdGhlIGRhdGEgY29weWluZyANCj4+PiA+PiBvdmVyaGVhZCBpcyBkZWZpbml0ZWx5IG5vdCBh cyBiaWcgYXMgMjB4IGF0IG4gPSAxMDAwMC4NCj4+PiA+Pg0KPj4+ID4+IEJlc3QsDQo+Pj4gPj4g WGlhbmdydWkNCj4+PiA+Pg0KPj4+ID4+DQo+Pj4gPj4gT24gVGh1LCBGZWIgMjYsIDIwMTUgYXQg MjoyMSBQTSwgU2FtIEhhbGxpZGF5IA0KPj4+ID4+IDxzYW0uaGFsbGlkYXlAZ21haWwuY29tPg0K Pj4+ID4+IHdyb3RlOg0KPj4+ID4+ID4gSSd2ZSBoYWQgc29tZSBlbWFpbCBleGNoYW5nZXMgd2l0 aCB0aGUgYXV0aG9yIG9mIEJJRE1hdDogaXQgDQo+Pj4gPj4gPiBkb2VzIGV4YWN0bHkgd2hhdCB5 b3UgbmVlZCB0byBnZXQgdGhlIEdQVSBiZW5lZml0IGFuZCB3cml0ZXMgDQo+Pj4gPj4gPiBoaWdo ZXIgbGV2ZWwgYWxnb3JpdGhtcyBlbnRpcmVseSBpbiB0aGUgR1BVIGtlcm5lbHMgc28gdGhhdCB0 aGUgDQo+Pj4gPj4gPiBtZW1vcnkgc3RheXMgdGhlcmUgYXMgbG9uZyBhcyBwb3NzaWJsZS4gVGhl IHJlc3RyaWN0aW9uIHdpdGggDQo+Pj4gPj4gPiB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgaXQgaXMg b25seSBvZmZlcmluZyBoaWdoLWxldmVsIGFsZ29yaXRobXMgDQo+Pj4gPj4gPiBzbyBpcyBub3Qg YSB0b29sa2l0IGZvciBhcHBsaWVkIG1hdGhlbWF0aWNzIHJlc2VhcmNoIGFuZCANCj4+PiA+PiA+ IGRldmVsb3BtZW50DQo+Pj4gPj4gPiAtLS0gYnV0IGl0IHdvcmtzIHdlbGwgYXMgYSB0b29sa2l0 IGZvciBoaWdoZXIgbGV2ZWwgYW5hbHlzaXMgDQo+Pj4gPj4gPiAoZS5nLiBmb3IgYW5hbHlzdHMg YW5kIHByYWN0aXRpb25lcnMpLg0KPj4+ID4+ID4NCj4+PiA+PiA+IEkgYmVsaWV2ZSBCSURNYXQn cyBhcHByb2FjaCBpcyB0aGUgYmVzdCB3YXkgdG8gZ2V0IHBlcmZvcm1hbmNlIA0KPj4+ID4+ID4g b3V0IG9mIEdQVSBoYXJkd2FyZSBhdCB0aGUgbW9tZW50IGJ1dCBJIGFsc28gaGF2ZSBzdHJvbmcg DQo+Pj4gPj4gPiBldmlkZW5jZSB0byBzdWdnZXN0IHRoYXQgdGhlIGhhcmR3YXJlIHdpbGwgY2F0 Y2ggdXAgYW5kIHRoZSANCj4+PiA+PiA+IG1lbW9yeSB0cmFuc2ZlciBjb3N0cyBiZXR3ZWVuIENQ VS9HUFUgd2lsbCBkaXNhcHBlYXIgbWVhbmluZyANCj4+PiA+PiA+IHRoYXQgdGhlcmUgd2lsbCBi ZSBubyBuZWVkIGZvciBjdXN0b20gR1BVIGtlcm5lbCANCj4+PiA+PiA+IGltcGxlbWVudGF0aW9u cy4gaS5lLiBwbGVhc2UgY29udGludWUgdG8gdXNlIEJMQVMgcHJpbWl0aXZlcyANCj4+PiA+PiA+ IHdoZW4gd3JpdGluZyBuZXcgYWxnb3JpdGhtcyBhbmQgb25seSBnbyB0byB0aGUgR1BVIGZvciBh biANCj4+PiA+PiA+IGFsdGVybmF0aXZlIG9wdGltaXNlZCBpbXBsZW1lbnRhdGlvbi4NCj4+PiA+ PiA+DQo+Pj4gPj4gPiBOb3RlIHRoYXQgQ1VEQSBhbmQgY3VCTEFTIGFyZSAqbm90KiBCTEFTLiBU aGV5IGFyZSBCTEFTLWxpa2UsIA0KPj4+ID4+ID4gYW5kIG9mZmVyIGFuIEFQSSB0aGF0IGxvb2tz IGxpa2UgQkxBUyBidXQgdGFrZXMgcG9pbnRlcnMgdG8gDQo+Pj4gPj4gPiBzcGVjaWFsIHJlZ2lv bnMgaW4gdGhlIEdQVSBtZW1vcnkgcmVnaW9uLiBTb21lYm9keSBoYXMgd3JpdHRlbiANCj4+PiA+ PiA+IGEgd3JhcHBlciBhcm91bmQgQ1VEQSB0byBjcmVhdGUgYSBwcm9wZXIgQkxBUyBsaWJyYXJ5 IGJ1dCBpdCANCj4+PiA+PiA+IG9ubHkgZ2l2ZXMgbWFyZ2luYWwgcGVyZm9ybWFuY2Ugb3ZlciB0 aGUgQ1BVIGJlY2F1c2Ugb2YgdGhlIA0KPj4+ID4+ID4gbWVtb3J5IHRyYW5zZmVyIG92ZXJoZWFk Lg0KPj4+ID4+ID4NCj4+PiA+PiA+IFRoaXMgc2xpZGUgZnJvbSBteSB0YWxrDQo+Pj4gPj4gPg0K Pj4+ID4+ID4gICBodHRwOi8vZm9tbWlsLmdpdGh1Yi5pby9zY2FsYXgxNC8jLzExLzINCj4+PiA+ PiA+DQo+Pj4gPj4gPiBzYXlzIGl0IGFsbC4gWCBheGlzIGlzIG1hdHJpeCBzaXplLCBZIGF4aXMg aXMgbG9nYXJpdGhtaWMgdGltZSANCj4+PiA+PiA+IHRvIGRvIERHRU1NLiBCbGFjayBsaW5lIGlz IHRoZSAiY2hlYXRpbmciIHRpbWUgZm9yIHRoZSBHUFUgYW5kIA0KPj4+ID4+ID4gdGhlIGdyZWVu IGxpbmUgaXMgYWZ0ZXIgY29weWluZyB0aGUgbWVtb3J5IHRvL2Zyb20gdGhlIEdQVSANCj4+PiA+ PiA+IG1lbW9yeS4gQVBVcyBoYXZlIHRoZSBwb3RlbnRpYWwgdG8gZWxpbWluYXRlIHRoZSBncmVl biBsaW5lLg0KPj4+ID4+ID4NCj4+PiA+PiA+IEJlc3QgcmVnYXJkcywNCj4+PiA+PiA+IFNhbQ0K Pj4+ID4+ID4NCj4+PiA+PiA+DQo+Pj4gPj4gPg0KPj4+ID4+ID4gIlVsYW5vdiwgQWxleGFuZGVy IiA8YWxleGFuZGVyLnVsYW5vdkBocC5jb20+IHdyaXRlczoNCj4+PiA+PiA+DQo+Pj4gPj4gPj4g RXZhbiwgdGhhbmsgeW91IGZvciB0aGUgc3VtbWFyeS4gSSB3b3VsZCBsaWtlIHRvIGFkZCBzb21l IG1vcmUgDQo+Pj4gPj4gPj4gb2JzZXJ2YXRpb25zLiBUaGUgR1BVIHRoYXQgSSB1c2VkIGlzIDIu NSB0aW1lcyBjaGVhcGVyIHRoYW4gDQo+Pj4gPj4gPj4gdGhlIENQVQ0KPj4+ID4+ID4+ICgkMjUw IHZzDQo+Pj4gPj4gPj4gJDEwMCkuIFRoZXkgYm90aCBhcmUgMyB5ZWFycyBvbGQuIEkndmUgYWxz byBkaWQgYSBzbWFsbCB0ZXN0IA0KPj4+ID4+ID4+IHdpdGggbW9kZXJuIGhhcmR3YXJlLCBhbmQg dGhlIG5ldyBHUFUgblZpZGlhIFRpdGFuIHdhcyANCj4+PiA+PiA+PiBzbGlnaHRseSBtb3JlIHRo YW4gMSBvcmRlciBvZiBtYWduaXR1ZGUgZmFzdGVyIHRoYW4gSW50ZWwgDQo+Pj4gPj4gPj4gRTUt MjY1MCB2MiBmb3IgdGhlIHNhbWUgdGVzdHMuIEhvd2V2ZXIsIGl0IGNvc3RzIGFzIG11Y2ggYXMg DQo+Pj4gPj4gPj4gQ1BVICgkMTIwMCkuIE15IHRha2Vhd2F5IGlzIHRoYXQgR1BVIGlzIG1ha2lu ZyBhIGJldHRlciBwcmljZS92YWx1ZSBwcm9ncmVzcy4NCj4+PiA+PiA+Pg0KPj4+ID4+ID4+DQo+ Pj4gPj4gPj4NCj4+PiA+PiA+PiBYaWFuZ3J1aSwgSSB3YXMgYWxzbyBzdXJwcmlzZWQgdGhhdCBC SURNYXQtY3VkYSB3YXMgZmFzdGVyIA0KPj4+ID4+ID4+IHRoYW4gbmV0bGliLWN1ZGEgYW5kIHRo ZSBtb3N0IHJlYXNvbmFibGUgZXhwbGFuYXRpb24gaXMgdGhhdCANCj4+PiA+PiA+PiBpdCBob2xk cyB0aGUgcmVzdWx0IGluIEdQVSBtZW1vcnksIGFzIFNhbSBzdWdnZXN0ZWQuIEF0IHRoZSANCj4+ PiA+PiA+PiBzYW1lIHRpbWUsIGl0IGlzIE9LIGJlY2F1c2UgeW91IGNhbiBjb3B5IHRoZSByZXN1 bHQgYmFjayBmcm9tIA0KPj4+ID4+ID4+IEdQVSBvbmx5IHdoZW4gbmVlZGVkLiBIb3dldmVyLCB0 byBiZSBzdXJlLCBJIGFtIGdvaW5nIHRvIGFzayANCj4+PiA+PiA+PiB0aGUgZGV2ZWxvcGVyIG9m IEJJRE1hdCBvbiBoaXMgdXBjb21pbmcgdGFsay4NCj4+PiA+PiA+Pg0KPj4+ID4+ID4+DQo+Pj4g Pj4gPj4NCj4+PiA+PiA+PiBCZXN0IHJlZ2FyZHMsIEFsZXhhbmRlcg0KPj4+ID4+ID4+DQo+Pj4g Pj4gPj4NCj4+PiA+PiA+PiBGcm9tOiBTYW0gSGFsbGlkYXkgW21haWx0bzpzYW0uaGFsbGlkYXlA Z21haWwuY29tXQ0KPj4+ID4+ID4+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSAyNiwgMjAxNSAx OjU2IFBNDQo+Pj4gPj4gPj4gVG86IFhpYW5ncnVpIE1lbmcNCj4+PiA+PiA+PiBDYzogZGV2QHNw YXJrLmFwYWNoZS5vcmc7IEpvc2VwaCBCcmFkbGV5OyBVbGFub3YsIEFsZXhhbmRlcjsgRXZhbiBS Lg0KPj4+ID4+ID4+IFNwYXJrcw0KPj4+ID4+ID4+IFN1YmplY3Q6IFJlOiBVc2luZyBDVURBIHdp dGhpbiBTcGFyayAvIGJvb3N0aW5nIGxpbmVhciBhbGdlYnJhDQo+Pj4gPj4gPj4NCj4+PiA+PiA+ Pg0KPj4+ID4+ID4+IEJ0dywgSSB3aXNoIHBlb3BsZSB3b3VsZCBzdG9wIGNoZWF0aW5nIHdoZW4g Y29tcGFyaW5nIENQVSBhbmQgDQo+Pj4gPj4gPj4gR1BVIHRpbWluZ3MgZm9yIHRoaW5ncyBsaWtl IG1hdHJpeCBtdWx0aXBseSA6LVANCj4+PiA+PiA+Pg0KPj4+ID4+ID4+IFBsZWFzZSBhbHdheXMg Y29tcGFyZSBhcHBsZXMgd2l0aCBhcHBsZXMgYW5kIGluY2x1ZGUgdGhlIHRpbWUgDQo+Pj4gPj4g Pj4gaXQgdGFrZXMgdG8gc2V0IHVwIHRoZSBtYXRyaWNlcywgc2VuZCBpdCB0byB0aGUgcHJvY2Vz c2luZyANCj4+PiA+PiA+PiB1bml0LCBkb2luZyB0aGUgY2FsY3VsYXRpb24gQU5EIGNvcHlpbmcg aXQgYmFjayB0byB3aGVyZSB5b3UgDQo+Pj4gPj4gPj4gbmVlZCB0byBzZWUgdGhlIHJlc3VsdHMu DQo+Pj4gPj4gPj4NCj4+PiA+PiA+PiBJZ25vcmluZyB0aGlzIG1ldGhvZCB3aWxsIG1ha2UgeW91 IGJlbGlldmUgdGhhdCB5b3VyIEdQVSBpcyANCj4+PiA+PiA+PiB0aG91c2FuZHMgb2YgdGltZXMg ZmFzdGVyIHRoYW4gaXQgcmVhbGx5IGlzLiBBZ2FpbiwganVtcCB0byANCj4+PiA+PiA+PiB0aGUg ZW5kIG9mIG15IHRhbGsgZm9yIGdyYXBocyBhbmQgbW9yZSBkaXNjdXNzaW9uLi4uLiAgDQo+Pj4g Pj4gPj4gZXNwZWNpYWxseSB0aGUgYml0IGFib3V0IG1lIGJlaW5nIGtlZW4gb24gZnVuZGluZyB0 byANCj4+PiA+PiA+PiBpbnZlc3RpZ2F0ZSBBUFUgaGFyZHdhcmUgZnVydGhlciA7LSkgKEkgYmVs aWV2ZSBpdCB3aWxsIHNvbHZlIA0KPj4+ID4+ID4+IHRoZQ0KPj4+ID4+ID4+IHByb2JsZW0pDQo+ Pj4gPj4gPj4gT24gMjYgRmViIDIwMTUgMjE6MTYsICJYaWFuZ3J1aSBNZW5nIg0KPj4+ID4+ID4+ IDxtZW5neHJAZ21haWwuY29tPG1haWx0bzptZW5neHJAZ21haWwuY29tPj4gd3JvdGU6DQo+Pj4g Pj4gPj4gSGV5IEFsZXhhbmRlciwNCj4+PiA+PiA+Pg0KPj4+ID4+ID4+IEkgZG9uJ3QgcXVpdGUg dW5kZXJzdGFuZCB0aGUgcGFydCB3aGVyZSBuZXRsaWItY3VibGFzIGlzIGFib3V0IA0KPj4+ID4+ ID4+IDIweCBzbG93ZXIgdGhhbiBuZXRsaWItb3BlbmJsYXMuIFdoYXQgaXMgdGhlIG92ZXJoZWFk IG9mIHVzaW5nIA0KPj4+ID4+ID4+IGEgR1BVIEJMQVMgd2l0aCBuZXRsaWItamF2YT8NCj4+PiA+ PiA+Pg0KPj4+ID4+ID4+IENDJ2VkIFNhbSwgdGhlIGF1dGhvciBvZiBuZXRsaWItamF2YS4NCj4+ PiA+PiA+Pg0KPj4+ID4+ID4+IEJlc3QsDQo+Pj4gPj4gPj4gWGlhbmdydWkNCj4+PiA+PiA+Pg0K Pj4+ID4+ID4+IE9uIFdlZCwgRmViIDI1LCAyMDE1IGF0IDM6MzYgUE0sIEpvc2VwaCBCcmFkbGV5 IA0KPj4+ID4+ID4+IDxqb3NlcGhAZGF0YWJyaWNrcy5jb208bWFpbHRvOmpvc2VwaEBkYXRhYnJp Y2tzLmNvbT4+IHdyb3RlOg0KPj4+ID4+ID4+PiBCZXR0ZXIgZG9jdW1lbnRhdGlvbiBmb3IgbGlu a2luZyB3b3VsZCBiZSB2ZXJ5IGhlbHBmdWwhDQo+Pj4gPj4gPj4+IEhlcmUncyBhDQo+Pj4gPj4g Pj4+IEpJUkE6DQo+Pj4gPj4gPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93 c2UvU1BBUkstNjAxOQ0KPj4+ID4+ID4+Pg0KPj4+ID4+ID4+Pg0KPj4+ID4+ID4+PiBPbiBXZWQs IEZlYiAyNSwgMjAxNSBhdCAyOjUzIFBNLCBFdmFuIFIuIFNwYXJrcyANCj4+PiA+PiA+Pj4gPGV2 YW4uc3BhcmtzQGdtYWlsLmNvbTxtYWlsdG86ZXZhbi5zcGFya3NAZ21haWwuY29tPj4NCj4+PiA+ PiA+Pj4gd3JvdGU6DQo+Pj4gPj4gPj4+DQo+Pj4gPj4gPj4+PiBUaGFua3MgZm9yIGNvbXBpbGlu ZyBhbGwgdGhlIGRhdGEgYW5kIHJ1bm5pbmcgdGhlc2UgDQo+Pj4gPj4gPj4+PiBiZW5jaG1hcmtz LCBBbGV4Lg0KPj4+ID4+ID4+Pj4gVGhlDQo+Pj4gPj4gPj4+PiBiaWcgdGFrZWF3YXlzIGhlcmUg Y2FuIGJlIHNlZW4gd2l0aCB0aGlzIGNoYXJ0Og0KPj4+ID4+ID4+Pj4NCj4+PiA+PiA+Pj4+DQo+ Pj4gPj4gPj4+Pg0KPj4+ID4+ID4+Pj4gaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hl ZXRzL2QvMWFSbTJJQURSZlhRVjdHMnZyY1ZoDQo+Pj4gPj4gPj4+PiA0IA0KPj4+ID4+ID4+Pj4g U3RGNTB1WkhsNmttQUplYVpaZ2dyMC9wdWJjaGFydD9vaWQ9MTg5OTc2NzExOSZmb3JtYXQ9aW50 ZXJhDQo+Pj4gPj4gPj4+PiBjDQo+Pj4gPj4gPj4+PiB0aXZlDQo+Pj4gPj4gPj4+Pg0KPj4+ID4+ ID4+Pj4gMSkgQSBwcm9wZXJseSBjb25maWd1cmVkIEdQVSBtYXRyaXggbXVsdGlwbHkgaW1wbGVt ZW50YXRpb24gKGUuZy4NCj4+PiA+PiA+Pj4+IEJJRE1hdCtHUFUpIGNhbiBwcm92aWRlIHN1YnN0 YW50aWFsIChidXQgbGVzcyB0aGFuIGFuIG9yZGVyIA0KPj4+ID4+ID4+Pj4gQklETWF0K29mDQo+ Pj4gPj4gPj4+PiBtYWduaXR1ZGUpDQo+Pj4gPj4gPj4+PiBiZW5lZml0IG92ZXIgYSB3ZWxsLXR1 bmVkIENQVSBpbXBsZW1lbnRhdGlvbiAoZS5nLiANCj4+PiA+PiA+Pj4+IEJJRE1hdCtNS0wgb3IN Cj4+PiA+PiA+Pj4+IG5ldGxpYi1qYXZhK29wZW5ibGFzLWNvbXBpbGVkKS4NCj4+PiA+PiA+Pj4+ IDIpIEEgcG9vcmx5IHR1bmVkIENQVSBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgMS0yIG9yZGVycyBv ZiANCj4+PiA+PiA+Pj4+IG1hZ25pdHVkZSB3b3JzZSB0aGFuIGEgd2VsbC10dW5lZCBDUFUgaW1w bGVtZW50YXRpb24sIA0KPj4+ID4+ID4+Pj4gcGFydGljdWxhcmx5IGZvciBsYXJnZXIgbWF0cmlj ZXMuDQo+Pj4gPj4gPj4+PiAobmV0bGliLWYyamJsYXMgb3IgbmV0bGliLXJlZikgVGhpcyBpcyBu b3QgdG8gcGljayBvbiBuZXRsaWINCj4+PiA+PiA+Pj4+IC0gdGhpcyBiYXNpY2FsbHkgYWdyZWVz IHdpdGggdGhlIGF1dGhvcnMgb3duIGJlbmNobWFya3MgKA0KPj4+ID4+ID4+Pj4gaHR0cHM6Ly9n aXRodWIuY29tL2ZvbW1pbC9uZXRsaWItamF2YSkNCj4+PiA+PiA+Pj4+DQo+Pj4gPj4gPj4+PiBJ IHRoaW5rIHRoYXQgbW9zdCBvZiBvdXIgdXNlcnMgYXJlIGluIGEgc2l0dWF0aW9uIHdoZXJlIA0K Pj4+ID4+ID4+Pj4gdXNpbmcgR1BVcyBtYXkgbm90IGJlIHByYWN0aWNhbCAtIGFsdGhvdWdoIHdl IGNvdWxkIGNvbnNpZGVyIA0KPj4+ID4+ID4+Pj4gaGF2aW5nIGEgZ29vZCBHUFUgYmFja2VuZCBh dmFpbGFibGUgYXMgYW4gb3B0aW9uLiBIb3dldmVyLCANCj4+PiA+PiA+Pj4+ICpBTEwqIHVzZXJz IG9mIE1MbGliIGNvdWxkIGJlbmVmaXQgKHBvdGVudGlhbGx5IA0KPj4+ID4+ID4+Pj4gdHJlbWVu ZG91c2x5KSBmcm9tIHVzaW5nIGEgd2VsbC10dW5lZCBDUFUtYmFzZWQgQkxBUyANCj4+PiA+PiA+ Pj4+IGltcGxlbWVudGF0aW9uLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB1cGRhdGluZyB0 aGUgDQo+Pj4gPj4gPj4+PiBtbGxpYiBndWlkZSB3aXRoIGEgbW9yZSBjb21wbGV0ZSBzZWN0aW9u IGZvciBlbmFibGluZyBoaWdoIA0KPj4+ID4+ID4+Pj4gcGVyZm9ybWFuY2UgYmluYXJpZXMgb24g T1NYIGFuZCBMaW51eD8gT3IgYmV0dGVyLCBmaWd1cmUgb3V0IA0KPj4+ID4+ID4+Pj4gYSB3YXkg Zm9yIHRoZSBzeXN0ZW0gdG8gZmV0Y2ggdGhlc2UgYXV0b21hdGljYWxseS4NCj4+PiA+PiA+Pj4+ DQo+Pj4gPj4gPj4+PiAtIEV2YW4NCj4+PiA+PiA+Pj4+DQo+Pj4gPj4gPj4+Pg0KPj4+ID4+ID4+ Pj4NCj4+PiA+PiA+Pj4+IE9uIFRodSwgRmViIDEyLCAyMDE1IGF0IDQ6MTggUE0sIFVsYW5vdiwg QWxleGFuZGVyIDwgDQo+Pj4gPj4gPj4+PiBhbGV4YW5kZXIudWxhbm92QGhwLmNvbTxtYWlsdG86 YWxleGFuZGVyLnVsYW5vdkBocC5jb20+PiB3cm90ZToNCj4+PiA+PiA+Pj4+DQo+Pj4gPj4gPj4+ Pj4gSnVzdCB0byBzdW1tYXJpemUgdGhpcyB0aHJlYWQsIEkgd2FzIGZpbmFsbHkgYWJsZSB0byBt YWtlIA0KPj4+ID4+ID4+Pj4+IGFsbCBwZXJmb3JtYW5jZSBjb21wYXJpc29ucyB0aGF0IHdlIGRp c2N1c3NlZC4gSXQgdHVybnMgb3V0DQo+Pj4gPj4gPj4+Pj4gdGhhdDoNCj4+PiA+PiA+Pj4+PiBC SURNYXQtY3VibGFzPj5CSURNYXQNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4g Pj4+Pj4gTUtMPT1uZXRsaWItbWtsPT1uZXRsaWItb3BlbmJsYXMtY29tcGlsZWQ+bmV0bGliLW9w ZW5ibGFzLXkNCj4+PiA+PiA+Pj4+PiB1IG0tcmVwbz09bmV0bGliLWN1Ymxhcz5uZXRsaWItYmxh cz5mMmpibGFzDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBCZWxvdyBpcyB0aGUgbGluayB0 byB0aGUgc3ByZWFkc2hlZXQgd2l0aCBmdWxsIHJlc3VsdHMuDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+ PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gaHR0cHM6Ly9kb2NzLmdvb2dsZS5j b20vc3ByZWFkc2hlZXRzL2QvMWxXZFZTdVNyYWdPb2JiMEFfb2UNCj4+PiA+PiA+Pj4+PiBvIHVR Z0hVTXgzNzhUOUo1cjdrd0tTUGtZL2VkaXQ/dXNwPXNoYXJpbmcNCj4+PiA+PiA+Pj4+Pg0KPj4+ ID4+ID4+Pj4+IE9uZSB0aGluZyBzdGlsbCBuZWVkcyBleHBsb3JhdGlvbjogZG9lcyBCSURNYXQt Y3VibGFzIA0KPj4+ID4+ID4+Pj4+IHBlcmZvcm0gY29weWluZyB0by9mcm9tIG1hY2hpbmXigJlz IFJBTT8NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+Pj4gPj4gPj4+Pj4gRnJvbTogVWxhbm92LCBBbGV4YW5kZXINCj4+PiA+PiA+Pj4+PiBT ZW50OiBUdWVzZGF5LCBGZWJydWFyeSAxMCwgMjAxNSAyOjEyIFBNDQo+Pj4gPj4gPj4+Pj4gVG86 IEV2YW4gUi4gU3BhcmtzDQo+Pj4gPj4gPj4+Pj4gQ2M6IEpvc2VwaCBCcmFkbGV5Ow0KPj4+ID4+ ID4+Pj4+IGRldkBzcGFyay5hcGFjaGUub3JnPG1haWx0bzpkZXZAc3BhcmsuYXBhY2hlLm9yZz4N Cj4+PiA+PiA+Pj4+PiBTdWJqZWN0OiBSRTogVXNpbmcgQ1VEQSB3aXRoaW4gU3BhcmsgLyBib29z dGluZyBsaW5lYXIgDQo+Pj4gPj4gPj4+Pj4gYWxnZWJyYQ0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4g Pj4+Pj4gVGhhbmtzLCBFdmFuISBJdCBzZWVtcyB0aGF0IHRpY2tldCB3YXMgbWFya2VkIGFzIGR1 cGxpY2F0ZSANCj4+PiA+PiA+Pj4+PiB0aG91Z2ggdGhlIG9yaWdpbmFsIG9uZSBkaXNjdXNzZXMg c2xpZ2h0bHkgZGlmZmVyZW50IHRvcGljLg0KPj4+ID4+ID4+Pj4+IEkgd2FzIGFibGUgdG8gbGlu ayBuZXRsaWIgd2l0aCBNS0wgZnJvbSBCSURNYXQgYmluYXJpZXMuDQo+Pj4gPj4gPj4+Pj4gSW5k ZWVkLCBNS0wgaXMgc3RhdGljYWxseSBsaW5rZWQgaW5zaWRlIGEgNjBNQiBsaWJyYXJ5Lg0KPj4+ ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gfEEqQiAgc2l6ZSB8IEJJRE1hdCBNS0wgfCBCcmVlemUr TmV0bGliLU1LTCAgZnJvbSBCSURNYXR8DQo+Pj4gPj4gPj4+Pj4gQnJlZXplK05ldGxpYi1PcGVu QmxhcyhuYXRpdmUgc3lzdGVtKXwgDQo+Pj4gPj4gPj4+Pj4gQnJlZXplK0JyZWV6ZStOZXRsaWIt ZjJqYmxhcw0KPj4+ID4+ID4+Pj4+IEJyZWV6ZSt8DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+ Pg0KPj4+ID4+ID4+Pj4+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4+PiA+PiA+Pj4+PiB8MTAweDEwMCox MDB4MTAwIHwgMCwwMDIwNTU5NiB8IDAsMDAwMzgxIHwgMCwwMzgxMDMyNCB8DQo+Pj4gPj4gPj4+ Pj4gfDAsMDAyNTU2DQo+Pj4gPj4gPj4+Pj4gfA0KPj4+ID4+ID4+Pj4+IHwxMDAweDEwMDAqMTAw MHgxMDAwIHwgMCwwMTgzMjA5NDcgfCAwLDAzODMxNjg1NyB8DQo+Pj4gPj4gPj4+Pj4gfDAsNTE4 MDM1NTcNCj4+PiA+PiA+Pj4+PiB8MSw2Mzg0NzU0NTkgfA0KPj4+ID4+ID4+Pj4+IHwxMDAwMHgx MDAwMCoxMDAwMHgxMDAwMCB8IDIzLDc4MDQ2NjMyIHwgMzIsOTQ1NDY2OTcNCj4+PiA+PiA+Pj4+ PiB8fDQ0NSwwOTM1MjExDQo+Pj4gPj4gPj4+Pj4gfA0KPj4+ID4+ID4+Pj4+IDE1NjksMjMzMjI4 IHwNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEl0IHR1cm4gb3V0IHRoYXQgcHJlLWNvbXBp bGVkIE1LTCBpcyBmYXN0ZXIgdGhhbiANCj4+PiA+PiA+Pj4+PiBwcmVjb21waWxlZCBPcGVuQmxh cyBvbiBteSBtYWNoaW5lLiBQcm9iYWJseSwgSeKAmWxsIGFkZCB0d28gDQo+Pj4gPj4gPj4+Pj4g bW9yZSBjb2x1bW5zIHdpdGggbG9jYWxseSBjb21waWxlZCBvcGVuYmxhcyBhbmQgY3VkYS4NCj4+ PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEFsZXhhbmRlcg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4g Pj4+Pj4gRnJvbTogRXZhbiBSLiBTcGFya3MNCj4+PiA+PiA+Pj4+PiBbbWFpbHRvOmV2YW4uc3Bh cmtzQGdtYWlsLmNvbTxtYWlsdG86ZXZhbi5zcGFya3NAZ21haWwuY29tPg0KPj4+ID4+ID4+Pj4+ IF0NCj4+PiA+PiA+Pj4+PiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5IDA5LCAyMDE1IDY6MDYgUE0N Cj4+PiA+PiA+Pj4+PiBUbzogVWxhbm92LCBBbGV4YW5kZXINCj4+PiA+PiA+Pj4+PiBDYzogSm9z ZXBoIEJyYWRsZXk7DQo+Pj4gPj4gPj4+Pj4gZGV2QHNwYXJrLmFwYWNoZS5vcmc8bWFpbHRvOmRl dkBzcGFyay5hcGFjaGUub3JnPg0KPj4+ID4+ID4+Pj4+IFN1YmplY3Q6IFJlOiBVc2luZyBDVURB IHdpdGhpbiBTcGFyayAvIGJvb3N0aW5nIGxpbmVhciANCj4+PiA+PiA+Pj4+PiBhbGdlYnJhDQo+ Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBHcmVhdCAtIHBlcmhhcHMgd2UgY2FuIG1vdmUgdGhp cyBkaXNjdXNzaW9uIG9mZi1saXN0IGFuZCANCj4+PiA+PiA+Pj4+PiBvbnRvIGEgSklSQSB0aWNr ZXQ/IChIZXJlJ3Mgb25lOg0KPj4+ID4+ID4+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcv amlyYS9icm93c2UvU1BBUkstNTcwNSkNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEl0IHNl ZW1zIGxpa2UgdGhpcyBpcyBnb2luZyB0byBiZSBzb21ld2hhdCBleHBsb3JhdG9yeSBmb3IgDQo+ Pj4gPj4gPj4+Pj4gYSB3aGlsZSAoYW5kIHRoZXJlJ3MgcHJvYmFibHkgb25seSBhIGhhbmRmdWwg b2YgdXMgd2hvIA0KPj4+ID4+ID4+Pj4+IHJlYWxseSBjYXJlIGFib3V0IGZhc3QgbGluZWFyDQo+ Pj4gPj4gPj4+Pj4gYWxnZWJyYSEpDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiAtIEV2YW4N Cj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IE9uIE1vbiwgRmViIDksIDIwMTUgYXQgNDo0OCBQ TSwgVWxhbm92LCBBbGV4YW5kZXIgPA0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+ PiA+Pj4+PiBhbGV4YW5kZXIudWxhbm92QGhwLmNvbTxtYWlsdG86YWxleGFuZGVyLnVsYW5vdkBo cC5jb20+PG1haQ0KPj4+ID4+ID4+Pj4+IGx0bzphbGV4YW5kZXIudWxhbm92QGhwLmNvbTxtYWls dG86YWxleGFuZGVyLnVsYW5vdkBocC5jb20+DQo+Pj4gPj4gPj4+Pj4gPj4NCj4+PiA+PiA+Pj4+ PiB3cm90ZToNCj4+PiA+PiA+Pj4+PiBIaSBFdmFuLA0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+ Pj4gVGhhbmsgeW91IGZvciBleHBsYW5hdGlvbiBhbmQgdXNlZnVsIGxpbmsuIEkgYW0gZ29pbmcg dG8gDQo+Pj4gPj4gPj4+Pj4gYnVpbGQgT3BlbkJMQVMsIGxpbmsgaXQgd2l0aCBOZXRsaWItamF2 YSBhbmQgcGVyZm9ybSANCj4+PiA+PiA+Pj4+PiBiZW5jaG1hcmsgYWdhaW4uDQo+Pj4gPj4gPj4+ Pj4NCj4+PiA+PiA+Pj4+PiBEbyBJIHVuZGVyc3RhbmQgY29ycmVjdGx5IHRoYXQgQklETWF0IGJp bmFyaWVzIGNvbnRhaW4gDQo+Pj4gPj4gPj4+Pj4gc3RhdGljYWxseSBsaW5rZWQgSW50ZWwgTUtM IEJMQVM/IEl0IG1pZ2h0IGJlIHRoZSByZWFzb24gDQo+Pj4gPj4gPj4+Pj4gd2h5IEkgYW0gYWJs ZSB0byBydW4gQklETWF0IG5vdCBoYXZpbmcgTUtMIEJMQVMgaW5zdGFsbGVkIA0KPj4+ID4+ID4+ Pj4+IG9uIG15IHNlcnZlci4gSWYgaXQgaXMgdHJ1ZSwgSSB3b25kZXIgaWYgaXQgaXMgT0sgYmVj YXVzZSANCj4+PiA+PiA+Pj4+PiBJbnRlbCBzZWxscyB0aGlzIGxpYnJhcnkuIE5ldmVydGhlbGVz cywgaXQgc2VlbXMgdGhhdCBpbiBteSANCj4+PiA+PiA+Pj4+PiBjYXNlIHByZWNvbXBpbGVkIE1L TCBCTEFTIHBlcmZvcm1zIGJldHRlciB0aGFuIHByZWNvbXBpbGVkIA0KPj4+ID4+ID4+Pj4+IE9w ZW5CTEFTIGdpdmVuIHRoYXQgQklETWF0IGFuZCBOZXRsaWItamF2YSBhcmUgc3VwcG9zZWQgdG8g DQo+Pj4gPj4gPj4+Pj4gYmUgb24gcGFyIHdpdGggSk5JIG92ZXJoZWFkcy4NCj4+PiA+PiA+Pj4+ Pg0KPj4+ID4+ID4+Pj4+IFRob3VnaCwgaXQgbWlnaHQgYmUgaW50ZXJlc3RpbmcgdG8gbGluayBO ZXRsaWItamF2YSB3aXRoIA0KPj4+ID4+ID4+Pj4+IEludGVsIE1LTCwgYXMgeW91IHN1Z2dlc3Rl ZC4gSSB3b25kZXIsIGFyZSBKb2huIENhbm55IA0KPj4+ID4+ID4+Pj4+IChCSURNYXQpIGFuZCBT YW0gSGFsbGlkYXkNCj4+PiA+PiA+Pj4+PiAoTmV0bGliLWphdmEpIGludGVyZXN0ZWQgdG8gY29t cGFyZSB0aGVpciBsaWJyYXJpZXMuDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBCZXN0IHJl Z2FyZHMsIEFsZXhhbmRlcg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gRnJvbTogRXZhbiBS LiBTcGFya3MNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IFttYWlsdG86ZXZhbi5zcGFya3NA Z21haWwuY29tPG1haWx0bzpldmFuLnNwYXJrc0BnbWFpbC5jb20+PG1haWx0bzoNCj4+PiA+PiA+ Pj4+PiBldmFuLnNwYXJrc0BnbWFpbC5jb208bWFpbHRvOmV2YW4uc3BhcmtzQGdtYWlsLmNvbT4+ XQ0KPj4+ID4+ID4+Pj4+IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkgMDYsIDIwMTUgNTo1OCBQTQ0K Pj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gVG86IFVsYW5vdiwgQWxleGFuZGVyDQo+Pj4gPj4g Pj4+Pj4gQ2M6IEpvc2VwaCBCcmFkbGV5Ow0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gZGV2 QHNwYXJrLmFwYWNoZS5vcmc8bWFpbHRvOmRldkBzcGFyay5hcGFjaGUub3JnPjxtYWlsdG86ZGUN Cj4+PiA+PiA+Pj4+PiB2QHNwYXJrLmFwYWNoZS5vcmc8bWFpbHRvOmRldkBzcGFyay5hcGFjaGUu b3JnPj4NCj4+PiA+PiA+Pj4+PiBTdWJqZWN0OiBSZTogVXNpbmcgQ1VEQSB3aXRoaW4gU3Bhcmsg LyBib29zdGluZyBsaW5lYXIgDQo+Pj4gPj4gPj4+Pj4gYWxnZWJyYQ0KPj4+ID4+ID4+Pj4+DQo+ Pj4gPj4gPj4+Pj4gSSB3b3VsZCBidWlsZCBPcGVuQkxBUyB5b3Vyc2VsZiwgc2luY2UgZ29vZCBC TEFTIA0KPj4+ID4+ID4+Pj4+IHBlcmZvcm1hbmNlIGNvbWVzIGZyb20gZ2V0dGluZyBjYWNoZSBz aXplcywgZXRjLiBzZXQgdXAgDQo+Pj4gPj4gPj4+Pj4gY29ycmVjdGx5IGZvciB5b3VyIHBhcnRp Y3VsYXIgaGFyZHdhcmUgLSB0aGlzIGlzIG9mdGVuIGEgDQo+Pj4gPj4gPj4+Pj4gdmVyeSB0cmlj a3kgcHJvY2VzcyAoc2VlLCBlLmcuIEFUTEFTKSwgYnV0IHdlIGZvdW5kIHRoYXQgb24gDQo+Pj4g Pj4gPj4+Pj4gcmVsYXRpdmVseSBtb2Rlcm4gWGVvbiBjaGlwcywgT3BlbkJMQVMgYnVpbGRzIHF1 aWNrbHkgYW5kIA0KPj4+ID4+ID4+Pj4+IHlpZWxkcyBwZXJmb3JtYW5jZSBjb21wZXRpdGl2ZSB3 aXRoIE1LTC4NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IFRvIG1ha2Ugc3VyZSB0aGUgcmln aHQgbGlicmFyeSBpcyBnZXR0aW5nIHVzZWQsIHlvdSBoYXZlIHRvIA0KPj4+ID4+ID4+Pj4+IG1h a2Ugc3VyZSBpdCdzIGZpcnN0IG9uIHRoZSBzZWFyY2ggcGF0aCAtIGV4cG9ydCANCj4+PiA+PiA+ Pj4+PiBMRF9MSUJSQVJZX1BBVEg9L3BhdGgvdG8vYmxhcy9saWJyYXJ5LnNvIHdpbGwgZG8gdGhl IHRyaWNrIGhlcmUuDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBGb3Igc29tZSBleGFtcGxl cyBvZiBnZXR0aW5nIG5ldGxpYi1qYXZhIHNldHVwIG9uIGFuIGVjMiANCj4+PiA+PiA+Pj4+PiBu b2RlIGFuZCBzb21lIGV4YW1wbGUgYmVuY2htYXJraW5nIGNvZGUgd2UgcmFuIGEgd2hpbGUgDQo+ Pj4gPj4gPj4+Pj4gYmFjaywgc2VlOg0KPj4+ID4+ID4+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9z aGl2YXJhbS9tYXRyaXgtYmVuY2gNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEluIHBhcnRp Y3VsYXIgLSBidWlsZC1vcGVuYmxhcy1lYzIuc2ggc2hvd3MgeW91IGhvdyB0byANCj4+PiA+PiA+ Pj4+PiBidWlsZCB0aGUgbGlicmFyeSBhbmQgc2V0IHVwIHN5bWxpbmtzIGNvcnJlY3RseSwgYW5k IA0KPj4+ID4+ID4+Pj4+IHNjYWxhL3J1bi1uZXRsaWIuc2ggc2hvd3MgeW91IGhvdyB0byBnZXQg dGhlIHBhdGggc2V0dXAgYW5kIA0KPj4+ID4+ID4+Pj4+IGdldCB0aGF0IGxpYnJhcnkgcGlja2Vk IHVwIGJ5IG5ldGxpYi1qYXZhLg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gSW4gdGhpcyB3 YXkgLSB5b3UgY291bGQgcHJvYmFibHkgZ2V0IGN1QkxBUyBzZXQgdXAgdG8gYmUgDQo+Pj4gPj4g Pj4+Pj4gdXNlZCBieSBuZXRsaWItamF2YSBhcyB3ZWxsLg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4g Pj4+Pj4gLSBFdmFuDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBPbiBGcmksIEZlYiA2LCAy MDE1IGF0IDU6NDMgUE0sIFVsYW5vdiwgQWxleGFuZGVyIDwNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gYWxleGFuZGVyLnVsYW5vdkBocC5jb208bWFpbHRvOmFsZXhh bmRlci51bGFub3ZAaHAuY29tPjxtYWkNCj4+PiA+PiA+Pj4+PiBsdG86YWxleGFuZGVyLnVsYW5v dkBocC5jb208bWFpbHRvOmFsZXhhbmRlci51bGFub3ZAaHAuY29tPg0KPj4+ID4+ID4+Pj4+ID4+ DQo+Pj4gPj4gPj4+Pj4gd3JvdGU6DQo+Pj4gPj4gPj4+Pj4gRXZhbiwgY291bGQgeW91IGVsYWJv cmF0ZSBvbiBob3cgdG8gZm9yY2UgQklETWF0IGFuZCANCj4+PiA+PiA+Pj4+PiBuZXRsaWItamF2 YSB0byBmb3JjZSBsb2FkaW5nIHRoZSByaWdodCBibGFzPyBGb3IgbmV0bGliLCBJIA0KPj4+ID4+ ID4+Pj4+IHRoZXJlIGFyZSBmZXcgSlZNIGZsYWdzLCBzdWNoIGFzIA0KPj4+ID4+ID4+Pj4+IC1E Y29tLmdpdGh1Yi5mb21taWwubmV0bGliLkJMQVM9Y29tLmdpdGh1Yi5mb21taWwubmV0bGliLkYy DQo+Pj4gPj4gPj4+Pj4gakJMQVMsDQo+Pj4gPj4gPj4+Pj4gc28NCj4+PiA+PiA+Pj4+PiBJIGNh bg0KPj4+ID4+ID4+Pj4+IGZvcmNlIGl0IHRvIHVzZSBKYXZhIGltcGxlbWVudGF0aW9uLiBOb3Qg c3VyZSBJIHVuZGVyc3RhbmQgDQo+Pj4gPj4gPj4+Pj4gaG93IHRvIGZvcmNlIHVzZSBhIHNwZWNp ZmljIGJsYXMgKG5vdCBzcGVjaWZpYyB3cmFwcGVyIGZvciANCj4+PiA+PiA+Pj4+PiBibGFzKS4N Cj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEJ0dy4gSSBoYXZlIGluc3RhbGxlZCBvcGVuYmxh cyAoeXVtIGluc3RhbGwgb3BlbmJsYXMpLCBzbyBJIA0KPj4+ID4+ID4+Pj4+IHN1cHBvc2UgdGhh dCBuZXRsaWIgaXMgdXNpbmcgaXQuDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBGcm9tOiBF dmFuIFIuIFNwYXJrcw0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gW21haWx0bzpldmFuLnNw YXJrc0BnbWFpbC5jb208bWFpbHRvOmV2YW4uc3BhcmtzQGdtYWlsLmNvbT48bWFpbHRvOg0KPj4+ ID4+ID4+Pj4+IGV2YW4uc3BhcmtzQGdtYWlsLmNvbTxtYWlsdG86ZXZhbi5zcGFya3NAZ21haWwu Y29tPj5dDQo+Pj4gPj4gPj4+Pj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAwNiwgMjAxNSA1OjE5 IFBNDQo+Pj4gPj4gPj4+Pj4gVG86IFVsYW5vdiwgQWxleGFuZGVyDQo+Pj4gPj4gPj4+Pj4gQ2M6 IEpvc2VwaCBCcmFkbGV5Ow0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gZGV2QHNwYXJrLmFw YWNoZS5vcmc8bWFpbHRvOmRldkBzcGFyay5hcGFjaGUub3JnPjxtYWlsdG86ZGUNCj4+PiA+PiA+ Pj4+PiB2QHNwYXJrLmFwYWNoZS5vcmc8bWFpbHRvOmRldkBzcGFyay5hcGFjaGUub3JnPj4NCj4+ PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IFN1YmplY3Q6IFJlOiBVc2luZyBDVURBIHdpdGhpbiBT cGFyayAvIGJvb3N0aW5nIGxpbmVhciANCj4+PiA+PiA+Pj4+PiBhbGdlYnJhDQo+Pj4gPj4gPj4+ Pj4NCj4+PiA+PiA+Pj4+PiBHZXR0aW5nIGJyZWV6ZSB0byBwaWNrIHVwIHRoZSByaWdodCBibGFz IGxpYnJhcnkgaXMgDQo+Pj4gPj4gPj4+Pj4gY3JpdGljYWwgZm9yIHBlcmZvcm1hbmNlLiBJIHJl Y29tbWVuZCB1c2luZyBPcGVuQkxBUyAob3IgDQo+Pj4gPj4gPj4+Pj4gTUtMLCBpZiB5b3UgYWxy ZWFkeSBoYXZlIGl0KS4NCj4+PiA+PiA+Pj4+PiBJdCBtaWdodCBtYWtlIHNlbnNlIHRvIGZvcmNl IEJJRE1hdCB0byB1c2UgdGhlIHNhbWUgDQo+Pj4gPj4gPj4+Pj4gdW5kZXJseWluZyBCTEFTIGxp YnJhcnkgYXMgd2VsbC4NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IE9uIEZyaSwgRmViIDYs IDIwMTUgYXQgNDo0MiBQTSwgVWxhbm92LCBBbGV4YW5kZXIgPA0KPj4+ID4+ID4+Pj4+DQo+Pj4g Pj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBhbGV4YW5kZXIudWxhbm92QGhwLmNvbTxtYWlsdG86YWxl eGFuZGVyLnVsYW5vdkBocC5jb20+PG1haQ0KPj4+ID4+ID4+Pj4+IGx0bzphbGV4YW5kZXIudWxh bm92QGhwLmNvbTxtYWlsdG86YWxleGFuZGVyLnVsYW5vdkBocC5jb20+DQo+Pj4gPj4gPj4+Pj4g Pj4NCj4+PiA+PiA+Pj4+PiB3cm90ZToNCj4+PiA+PiA+Pj4+PiBIaSBFdmFuLCBKb3NlcGgNCj4+ PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEkgZGlkIGZldyBtYXRyaXggbXVsdGlwbGljYXRpb24g dGVzdCBhbmQgQklETWF0IHNlZW1zIHRvIGJlIA0KPj4+ID4+ID4+Pj4+IH4xMHggZmFzdGVyIHRo YW4gbmV0bGliLWphdmErYnJlZXplIChzb3JyeSBmb3Igd2VpcmQgdGFibGUgDQo+Pj4gPj4gPj4+ Pj4gZm9ybWF0dGluZyk6DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiB8QSpCICBzaXplIHwg QklETWF0IE1LTCB8IEJyZWV6ZStOZXRsaWItamF2YQ0KPj4+ID4+ID4+Pj4+IG5hdGl2ZV9zeXN0 ZW1fbGludXhfeDg2LTY0fA0KPj4+ID4+ID4+Pj4+IEJyZWV6ZStOZXRsaWItamF2YSBmMmpibGFz IHwNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPj4+ID4+ID4+Pj4+IHwxMDB4MTAwKjEwMHgxMDAgfCAwLDAwMjA1NTk2IHwgMCwwMzgx MDMyNCB8IDAsMDAyNTU2IHwNCj4+PiA+PiA+Pj4+PiB8MTAwMHgxMDAwKjEwMDB4MTAwMCB8IDAs MDE4MzIwOTQ3IHwgMCw1MTgwMzU1NyANCj4+PiA+PiA+Pj4+PiB8fDEsNjM4NDc1NDU5IHwNCj4+ PiA+PiA+Pj4+PiB8MTAwMDB4MTAwMDAqMTAwMDB4MTAwMDAgfCAyMyw3ODA0NjYzMiB8IDQ0NSww OTM1MjExIHwNCj4+PiA+PiA+Pj4+PiAxNTY5LDIzMzIyOCB8DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+ PiA+Pj4+PiBDb25maWd1cmF0aW9uOiBJbnRlbChSKSBYZW9uKFIpIENQVSBFMzEyNDAgMy4zIEdI eiwgNkdCIA0KPj4+ID4+ID4+Pj4+IFJBTSwgRmVkb3JhDQo+Pj4gPj4gPj4+Pj4gMTkNCj4+PiA+ PiA+Pj4+PiBMaW51eCwgU2NhbGEgMi4xMS4NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IExh dGVyIEkgd2lsbCBtYWtlIHRlc3RzIHdpdGggQ3VkYS4gSSBuZWVkIHRvIGluc3RhbGwgbmV3IA0K Pj4+ID4+ID4+Pj4+IEN1ZGEgdmVyc2lvbiBmb3IgdGhpcyBwdXJwb3NlLg0KPj4+ID4+ID4+Pj4+ DQo+Pj4gPj4gPj4+Pj4gRG8geW91IGhhdmUgYW55IGlkZWFzIHdoeSBicmVlemUtbmV0bGliIHdp dGggbmF0aXZlIGJsYXMgaXMgDQo+Pj4gPj4gPj4+Pj4gc28gbXVjaCBzbG93ZXIgdGhhbiBCSURN YXQgTUtMPw0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gQmVzdCByZWdhcmRzLCBBbGV4YW5k ZXINCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEZyb206IEpvc2VwaCBCcmFkbGV5DQo+Pj4g Pj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBbbWFpbHRvOmpvc2VwaEBkYXRhYnJpY2tzLmNvbTxtYWls dG86am9zZXBoQGRhdGFicmlja3MuY29tPjxtYWlsdG86DQo+Pj4gPj4gPj4+Pj4gam9zZXBoQGRh dGFicmlja3MuY29tPG1haWx0bzpqb3NlcGhAZGF0YWJyaWNrcy5jb20+Pl0NCj4+PiA+PiA+Pj4+ PiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgMDUsIDIwMTUgNToyOSBQTQ0KPj4+ID4+ID4+Pj4+ IFRvOiBVbGFub3YsIEFsZXhhbmRlcg0KPj4+ID4+ID4+Pj4+IENjOiBFdmFuIFIuIFNwYXJrczsN Cj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IGRldkBzcGFyay5hcGFjaGUub3JnPG1haWx0bzpk ZXZAc3BhcmsuYXBhY2hlLm9yZz48bWFpbHRvOmRlDQo+Pj4gPj4gPj4+Pj4gdkBzcGFyay5hcGFj aGUub3JnPG1haWx0bzpkZXZAc3BhcmsuYXBhY2hlLm9yZz4+DQo+Pj4gPj4gPj4+Pj4gU3ViamVj dDogUmU6IFVzaW5nIENVREEgd2l0aGluIFNwYXJrIC8gYm9vc3RpbmcgbGluZWFyIA0KPj4+ID4+ ID4+Pj4+IGFsZ2VicmENCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IEhpIEFsZXhhbmRlciwN Cj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IFVzaW5nIEdQVXMgd2l0aCBTcGFyayB3b3VsZCBi ZSB2ZXJ5IGV4Y2l0aW5nLiAgU21hbGwgY29tbWVudDoNCj4+PiA+PiA+Pj4+PiBDb25jZXJuaW5n DQo+Pj4gPj4gPj4+Pj4geW91ciBxdWVzdGlvbiBlYXJsaWVyIGFib3V0IGtlZXBpbmcgZGF0YSBz dG9yZWQgb24gdGhlIEdQVSANCj4+PiA+PiA+Pj4+PiByYXRoZXIgdGhhbiBoYXZpbmcgdG8gbW92 ZSBpdCBiZXR3ZWVuIG1haW4gbWVtb3J5IGFuZCBHUFUgDQo+Pj4gPj4gPj4+Pj4gbWVtb3J5IG9u IGVhY2ggaXRlcmF0aW9uLCBJIHdvdWxkIGd1ZXNzIHRoaXMgd291bGQgYmUgDQo+Pj4gPj4gPj4+ Pj4gY3JpdGljYWwgdG8gZ2V0dGluZyBnb29kIHBlcmZvcm1hbmNlLg0KPj4+ID4+ID4+Pj4+IElm DQo+Pj4gPj4gPj4+Pj4geW91DQo+Pj4gPj4gPj4+Pj4gY291bGQgZG8gbXVsdGlwbGUgbG9jYWwg aXRlcmF0aW9ucyBiZWZvcmUgYWdncmVnYXRpbmcgDQo+Pj4gPj4gPj4+Pj4gcmVzdWx0cywgdGhl biB0aGUgY29zdCBvZiBkYXRhIG1vdmVtZW50IHRvIHRoZSBHUFUgY291bGQgYmUgDQo+Pj4gPj4g Pj4+Pj4gYW1vcnRpemVkIChhbmQgSSBiZWxpZXZlIHRoYXQgaXMgZG9uZSBpbiBwcmFjdGljZSku ICBIYXZpbmcgDQo+Pj4gPj4gPj4+Pj4gU3BhcmsgYmUgYXdhcmUgb2YgdGhlIEdQVSBhbmQgdXNp bmcgaXQgYXMgYW5vdGhlciBwYXJ0IG9mIA0KPj4+ID4+ID4+Pj4+IG1lbW9yeSBzb3VuZHMgbGlr ZSBhIG11Y2ggYmlnZ2VyIHVuZGVydGFraW5nLg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4g Sm9zZXBoDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBPbiBUaHUsIEZlYiA1LCAyMDE1IGF0 IDQ6NTkgUE0sIFVsYW5vdiwgQWxleGFuZGVyIDwNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+ DQo+Pj4gPj4gPj4+Pj4gYWxleGFuZGVyLnVsYW5vdkBocC5jb208bWFpbHRvOmFsZXhhbmRlci51 bGFub3ZAaHAuY29tPjxtYWkNCj4+PiA+PiA+Pj4+PiBsdG86YWxleGFuZGVyLnVsYW5vdkBocC5j b208bWFpbHRvOmFsZXhhbmRlci51bGFub3ZAaHAuY29tPg0KPj4+ID4+ID4+Pj4+ID4+DQo+Pj4g Pj4gPj4+Pj4gd3JvdGU6DQo+Pj4gPj4gPj4+Pj4gVGhhbmsgeW91IGZvciBleHBsYW5hdGlvbiEg SeKAmXZlIHdhdGNoZWQgdGhlIEJJRE1hY2ggDQo+Pj4gPj4gPj4+Pj4gcHJlc2VudGF0aW9uIGJ5 IEpvaG4gQ2FubnkgYW5kIEkgYW0gcmVhbGx5IGluc3BpcmVkIGJ5IGhpcyANCj4+PiA+PiA+Pj4+ PiB0YWxrIGFuZCBjb21wYXJpc29ucyB3aXRoIFNwYXJrIE1MbGliLg0KPj4+ID4+ID4+Pj4+DQo+ Pj4gPj4gPj4+Pj4gSSBhbSB2ZXJ5IGludGVyZXN0ZWQgdG8gZmluZCBvdXQgd2hhdCB3aWxsIGJl IGJldHRlciB3aXRoaW4NCj4+PiA+PiA+Pj4+PiBTcGFyazoNCj4+PiA+PiA+Pj4+PiBCSURNYXQN Cj4+PiA+PiA+Pj4+PiBvciBuZXRsaWItamF2YSB3aXRoIENQVSBvciBHUFUgbmF0aXZlcy4gQ291 bGQgeW91IHN1Z2dlc3QgYSANCj4+PiA+PiA+Pj4+PiBmYWlyIHdheSB0byBiZW5jaG1hcmsgdGhl bT8gQ3VycmVudGx5IEkgZG8gYmVuY2htYXJrcyBvbiANCj4+PiA+PiA+Pj4+PiBhcnRpZmljaWFs IG5ldXJhbCBuZXR3b3JrcyBpbiBiYXRjaCBtb2RlLiBXaGlsZSBpdCBpcyBub3QgYSANCj4+PiA+ PiA+Pj4+PiDigJxwdXJl4oCdIHRlc3Qgb2YgbGluZWFyIGFsZ2VicmEsIGl0IGludm9sdmVzIHNv bWUgb3RoZXIgDQo+Pj4gPj4gPj4+Pj4gdGhpbmdzIHRoYXQgYXJlIGVzc2VudGlhbCB0byBtYWNo aW5lIGxlYXJuaW5nLg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gRnJvbTogRXZhbiBSLiBT cGFya3MNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IFttYWlsdG86ZXZhbi5zcGFya3NAZ21h aWwuY29tPG1haWx0bzpldmFuLnNwYXJrc0BnbWFpbC5jb20+PG1haWx0bzoNCj4+PiA+PiA+Pj4+ PiBldmFuLnNwYXJrc0BnbWFpbC5jb208bWFpbHRvOmV2YW4uc3BhcmtzQGdtYWlsLmNvbT4+XQ0K Pj4+ID4+ID4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSAwNSwgMjAxNSAxOjI5IFBNDQo+ Pj4gPj4gPj4+Pj4gVG86IFVsYW5vdiwgQWxleGFuZGVyDQo+Pj4gPj4gPj4+Pj4gQ2M6DQo+Pj4g Pj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBkZXZAc3BhcmsuYXBhY2hlLm9yZzxtYWlsdG86ZGV2QHNw YXJrLmFwYWNoZS5vcmc+PG1haWx0bzpkZQ0KPj4+ID4+ID4+Pj4+IHZAc3BhcmsuYXBhY2hlLm9y ZzxtYWlsdG86ZGV2QHNwYXJrLmFwYWNoZS5vcmc+Pg0KPj4+ID4+ID4+Pj4+IFN1YmplY3Q6IFJl OiBVc2luZyBDVURBIHdpdGhpbiBTcGFyayAvIGJvb3N0aW5nIGxpbmVhciANCj4+PiA+PiA+Pj4+ PiBhbGdlYnJhDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBJJ2QgYmUgc3VycHJpc2VkIG9m IEJJRE1hdCtPcGVuQkxBUyB3YXMgc2lnbmlmaWNhbnRseSANCj4+PiA+PiA+Pj4+PiBmYXN0ZXIg dGhhbg0KPj4+ID4+ID4+Pj4+IG5ldGxpYi1qYXZhK09wZW5CTEFTLCBidXQgaWYgaXQgaXMgbXVj aCBmYXN0ZXIgaXQncyANCj4+PiA+PiA+Pj4+PiBuZXRsaWItamF2YStwcm9iYWJseSBkdWUNCj4+ PiA+PiA+Pj4+PiB0bw0KPj4+ID4+ID4+Pj4+IGRhdGENCj4+PiA+PiA+Pj4+PiBsYXlvdXQgYW5k IGZld2VyIGxldmVscyBvZiBpbmRpcmVjdGlvbiAtIGl0J3MgZGVmaW5pdGVseSBhIA0KPj4+ID4+ ID4+Pj4+IHdvcnRod2hpbGUgZXhwZXJpbWVudCB0byBydW4uIFRoZSBtYWluIHNwZWVkdXBzIEkn dmUgc2VlbiANCj4+PiA+PiA+Pj4+PiBmcm9tIHVzaW5nIGl0IGNvbWUgZnJvbSBoaWdobHkgb3B0 aW1pemVkIEdQVSBjb2RlIGZvciANCj4+PiA+PiA+Pj4+PiBsaW5lYXIgYWxnZWJyYS4gSSBrbm93 IHRoYXQgaW4gdGhlIHBhc3QgQ2FubnkgaGFzIGdvbmUgYXMgDQo+Pj4gPj4gPj4+Pj4gZmFyIGFz IHRvIHdyaXRlIGN1c3RvbSBHUFUga2VybmVscyBmb3IgcGVyZm9ybWFuY2UtY3JpdGljYWwgDQo+ Pj4gPj4gPj4+Pj4gcmVnaW9ucyBvZiBjb2RlLlsxXQ0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+ Pj4gQklETWFjaCBpcyBoaWdobHkgb3B0aW1pemVkIGZvciBzaW5nbGUgbm9kZSBwZXJmb3JtYW5j ZSBvciANCj4+PiA+PiA+Pj4+PiBwZXJmb3JtYW5jZSBvbiBzbWFsbCBjbHVzdGVycy5bMl0gT25j ZSBkYXRhIGRvZXNuJ3QgZml0IA0KPj4+ID4+ID4+Pj4+IGVhc2lseSBpbiBHUFUgbWVtb3J5IChv ciBjYW4gYmUgYmF0Y2hlZCBpbiB0aGF0IHdheSkgdGhlIA0KPj4+ID4+ID4+Pj4+IHBlcmZvcm1h bmNlIHRlbmRzIHRvIGZhbGwgb2ZmLiBDYW5ueSBhcmd1ZXMgZm9yIA0KPj4+ID4+ID4+Pj4+IGhh cmR3YXJlL3NvZnR3YXJlIGNvZGVzaWduIGFuZCBhcyBzdWNoIHByZWZlcnMgbWFjaGluZSANCj4+ PiA+PiA+Pj4+PiBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBxdWl0ZSBkaWZmZXJlbnQgdGhhbiB3 aGF0IHdlIGZpbmQgDQo+Pj4gPj4gPj4+Pj4gaW4gbW9zdCBjb21tb2RpdHkgY2x1c3RlciBub2Rl cyAtIGUuZy4gMTAgZGlzayBjYWhubmVscyBhbmQgDQo+Pj4gPj4gPj4+Pj4gNCBHUFVzLg0KPj4+ ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gSW4gY29udHJhc3QsIE1MbGliIHdhcyBkZXNpZ25lZCBm b3IgaG9yaXpvbnRhbCBzY2FsYWJpbGl0eSANCj4+PiA+PiA+Pj4+PiBvbiBjb21tb2RpdHkgY2x1 c3RlcnMgYW5kIHdvcmtzIGJlc3Qgb24gdmVyeSBiaWcgZGF0YXNldHMgLSANCj4+PiA+PiA+Pj4+ PiBvcmRlciBvZiB0ZXJhYnl0ZXMuDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBGb3IgdGhl IG1vc3QgcGFydCwgdGhlc2UgcHJvamVjdHMgZGV2ZWxvcGVkIGNvbmN1cnJlbnRseSB0byANCj4+ PiA+PiA+Pj4+PiBhZGRyZXNzIHNsaWdodGx5IGRpZmZlcmVudCB1c2UgY2FzZXMuIFRoYXQgc2Fp ZCwgdGhlcmUgbWF5IA0KPj4+ID4+ID4+Pj4+IGJlIGJpdHMgb2YgQklETWFjaCB3ZSBjb3VsZCBy ZXB1cnBvc2UgZm9yIE1MbGliIC0ga2VlcCBpbiANCj4+PiA+PiA+Pj4+PiBtaW5kIHdlIG5lZWQg dG8gYmUgY2FyZWZ1bCBhYm91dCBtYWludGFpbmluZyBjcm9zcy1sYW5ndWFnZSANCj4+PiA+PiA+ Pj4+PiBjb21wYXRpYmlsaXR5IGZvciBvdXIgSmF2YSBhbmQgUHl0aG9uLXVzZXJzLCB0aG91Z2gu DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiAtIEV2YW4NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ ID4+Pj4+IFsxXSAtIGh0dHA6Ly9hcnhpdi5vcmcvYWJzLzE0MDkuNTQwMiBbMl0gLSANCj4+PiA+ PiA+Pj4+PiBodHRwOi8vZWVjcy5iZXJrZWxleS5lZHUvfmh6aGFvL3BhcGVycy9CRC5wZGYNCj4+ PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IE9uIFRodSwgRmViIDUsIDIwMTUgYXQgMTowMCBQTSwg VWxhbm92LCBBbGV4YW5kZXIgPA0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+ Pj4+PiBhbGV4YW5kZXIudWxhbm92QGhwLmNvbTxtYWlsdG86YWxleGFuZGVyLnVsYW5vdkBocC5j b20+PG1haWx0bzphbGV4YW5kZXIudWxhbm92QGhwLmNvbTxtYWlsdG86YWxleGFuZGVyLnVsYW5v dkBocC5jb20+PjxtYWlsdG86DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+ Pj4+IGFsZXhhbmRlci51bGFub3ZAaHAuY29tPG1haWx0bzphbGV4YW5kZXIudWxhbm92QGhwLmNv bT48bWFpDQo+Pj4gPj4gPj4+Pj4gbHRvOmFsZXhhbmRlci51bGFub3ZAaHAuY29tPG1haWx0bzph bGV4YW5kZXIudWxhbm92QGhwLmNvbT4NCj4+PiA+PiA+Pj4+PiA+Pj4NCj4+PiA+PiA+Pj4+PiB3 cm90ZToNCj4+PiA+PiA+Pj4+PiBIaSBFdmFuLA0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4g VGhhbmsgeW91IGZvciBzdWdnZXN0aW9uISBCSURNYXQgc2VlbXMgdG8gaGF2ZSB0ZXJyaWZpYyAN Cj4+PiA+PiA+Pj4+PiBzcGVlZC4gRG8geW91IGtub3cgd2hhdCBtYWtlcyB0aGVtIGZhc3RlciB0 aGFuIG5ldGxpYi1qYXZhPw0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gVGhlIHNhbWUgZ3Jv dXAgaGFzIEJJRE1hY2ggbGlicmFyeSB0aGF0IGltcGxlbWVudHMgbWFjaGluZSANCj4+PiA+PiA+ Pj4+PiBsZWFybmluZy4NCj4+PiA+PiA+Pj4+PiBGb3INCj4+PiA+PiA+Pj4+PiBzb21lIGV4YW1w bGVzIHRoZXkgdXNlIENhZmZlIGNvbnZvbHV0aW9uYWwgbmV1cmFsIG5ldHdvcmsgDQo+Pj4gPj4g Pj4+Pj4gbGlicmFyeSBvd25lZCBieSBhbm90aGVyIGdyb3VwIGluIEJlcmtlbGV5LiBDb3VsZCB5 b3UgDQo+Pj4gPj4gPj4+Pj4gZWxhYm9yYXRlIG9uIGhvdyB0aGVzZSBhbGwgbWlnaHQgYmUgY29u bmVjdGVkIHdpdGggU3BhcmsgDQo+Pj4gPj4gPj4+Pj4gTWxsaWI/IElmIHlvdSB0YWtlIEJJRE1h dCBmb3IgbGluZWFyIGFsZ2VicmEgd2h5IGRvbuKAmXQgeW91IA0KPj4+ID4+ID4+Pj4+IHRha2Ug QklETWFjaCBmb3Igb3B0aW1pemF0aW9uIGFuZCBsZWFybmluZz8NCj4+PiA+PiA+Pj4+Pg0KPj4+ ID4+ID4+Pj4+IEJlc3QgcmVnYXJkcywgQWxleGFuZGVyDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+ Pj4+PiBGcm9tOiBFdmFuIFIuIFNwYXJrcw0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gW21h aWx0bzpldmFuLnNwYXJrc0BnbWFpbC5jb208bWFpbHRvOmV2YW4uc3BhcmtzQGdtYWlsLmNvbT48 bWFpbHRvOg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBldmFuLnNw YXJrc0BnbWFpbC5jb208bWFpbHRvOmV2YW4uc3BhcmtzQGdtYWlsLmNvbT4+PG1haWx0bzpldmFu LnNwYXJrc0BnbWFpbC5jb208bWFpbHRvOmV2YW4uc3BhcmtzQGdtYWlsLmNvbT48bWFpbHRvOg0K Pj4+ID4+ID4+Pj4+IGV2YW4uc3BhcmtzQGdtYWlsLmNvbTxtYWlsdG86ZXZhbi5zcGFya3NAZ21h aWwuY29tPj4+XQ0KPj4+ID4+ID4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSAwNSwgMjAx NSAxMjowOSBQTQ0KPj4+ID4+ID4+Pj4+IFRvOiBVbGFub3YsIEFsZXhhbmRlcg0KPj4+ID4+ID4+ Pj4+IENjOg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gZGV2QHNwYXJrLmFwYWNoZS5vcmc8 bWFpbHRvOmRldkBzcGFyay5hcGFjaGUub3JnPjxtYWlsdG86ZGV2QHNwYXJrLmFwYWNoZS5vcmc8 bWFpbHRvOmRldkBzcGFyay5hcGFjaGUub3JnPj48bWFpbHRvOg0KPj4+ID4+ID4+Pj4+DQo+Pj4g Pj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBkZXZAc3BhcmsuYXBhY2hlLm9yZzxtYWlsdG86ZGV2QHNw YXJrLmFwYWNoZS5vcmc+PG1haWx0bzpkZQ0KPj4+ID4+ID4+Pj4+IHZAc3BhcmsuYXBhY2hlLm9y ZzxtYWlsdG86ZGV2QHNwYXJrLmFwYWNoZS5vcmc+Pj4NCj4+PiA+PiA+Pj4+PiBTdWJqZWN0OiBS ZTogVXNpbmcgQ1VEQSB3aXRoaW4gU3BhcmsgLyBib29zdGluZyBsaW5lYXIgDQo+Pj4gPj4gPj4+ Pj4gYWxnZWJyYQ0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gSSdkIGV4cGVjdCB0aGF0IHdl IGNhbiBtYWtlIEdQVS1hY2NlbGVyYXRlZCBCTEFTIGZhc3RlciANCj4+PiA+PiA+Pj4+PiB0aGFu IENQVSBibGFzIGluIG1hbnkgY2FzZXMuDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBZb3Ug bWlnaHQgY29uc2lkZXIgdGFraW5nIGEgbG9vayBhdCB0aGUgY29kZXBhdGhzIHRoYXQgDQo+Pj4g Pj4gPj4+Pj4gQklETWF0ICgNCj4+PiA+PiA+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vQklERGF0 YS9CSURNYXQpIHRha2VzIGFuZCBjb21wYXJpbmcgdGhlbSANCj4+PiA+PiA+Pj4+PiB0byBuZXRs aWItamF2YS9icmVlemUuIEpvaG4gQ2FubnkgZXQuIGFsLiBoYXZlIGRvbmUgYSBidW5jaCANCj4+ PiA+PiA+Pj4+PiBvZiB3b3JrIG9wdGltaXppbmcgdG8gbWFrZSB0aGlzIHdvcmsgcmVhbGx5IGZh c3QgZnJvbSANCj4+PiA+PiA+Pj4+PiBTY2FsYS4gSSd2ZSBydW4gaXQgb24gbXkgbGFwdG9wIGFu ZCBjb21wYXJlZCB0byBNS0wgYW5kIGluIA0KPj4+ID4+ID4+Pj4+IGNlcnRhaW4gY2FzZXMgaXQn cyAxMHggZmFzdGVyIGF0IG1hdHJpeCBtdWx0aXBseS4NCj4+PiA+PiA+Pj4+PiBUaGVyZSBhcmUg YSBsb3Qgb2YgbGF5ZXJzIG9mIGluZGlyZWN0aW9uIGhlcmUgYW5kIHlvdSANCj4+PiA+PiA+Pj4+ PiByZWFsbHkgd2FudCB0byBhdm9pZCBkYXRhIGNvcHlpbmcgYXMgbXVjaCBhcyBwb3NzaWJsZS4N Cj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IFdlIGNvdWxkIGFsc28gY29uc2lkZXIgc3dhcHBp bmcgb3V0IEJJRE1hdCBmb3IgQnJlZXplLCBidXQgDQo+Pj4gPj4gPj4+Pj4gdGhhdCB3b3VsZCBi ZSBhIGJpZyBwcm9qZWN0IGFuZCBpZiB3ZSBjYW4gZmlndXJlIG91dCBob3cgdG8gDQo+Pj4gPj4g Pj4+Pj4gZ2V0IGJyZWV6ZStjdWJsYXMgdG8gY29tcGFyYWJsZSBwZXJmb3JtYW5jZSB0aGF0IHdv dWxkIGJlIGEgDQo+Pj4gPj4gPj4+Pj4gYmlnIHdpbi4NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+ Pj4+IE9uIFRodSwgRmViIDUsIDIwMTUgYXQgMTE6NTUgQU0sIFVsYW5vdiwgQWxleGFuZGVyIDwN Cj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gYWxleGFuZGVyLnVsYW5v dkBocC5jb208bWFpbHRvOmFsZXhhbmRlci51bGFub3ZAaHAuY29tPjxtYWlsdG86YWxleGFuZGVy LnVsYW5vdkBocC5jb208bWFpbHRvOmFsZXhhbmRlci51bGFub3ZAaHAuY29tPj48bWFpbHRvOg0K Pj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBhbGV4YW5kZXIudWxhbm92 QGhwLmNvbTxtYWlsdG86YWxleGFuZGVyLnVsYW5vdkBocC5jb20+PG1haQ0KPj4+ID4+ID4+Pj4+ IGx0bzphbGV4YW5kZXIudWxhbm92QGhwLmNvbTxtYWlsdG86YWxleGFuZGVyLnVsYW5vdkBocC5j b20+DQo+Pj4gPj4gPj4+Pj4gPj4+DQo+Pj4gPj4gPj4+Pj4gd3JvdGU6DQo+Pj4gPj4gPj4+Pj4g RGVhciBTcGFyayBkZXZlbG9wZXJzLA0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gSSBhbSBl eHBsb3JpbmcgaG93IHRvIG1ha2UgbGluZWFyIGFsZ2VicmEgb3BlcmF0aW9ucyBmYXN0ZXIgDQo+ Pj4gPj4gPj4+Pj4gd2l0aGluIFNwYXJrLg0KPj4+ID4+ID4+Pj4+IE9uZSB3YXkgb2YgZG9pbmcg dGhpcyBpcyB0byB1c2UgU2NhbGEgQnJlZXplIGxpYnJhcnkgdGhhdCANCj4+PiA+PiA+Pj4+PiBp cyBidW5kbGVkIHdpdGggU3BhcmsuIEZvciBtYXRyaXggb3BlcmF0aW9ucywgaXQgZW1wbG95cyAN Cj4+PiA+PiA+Pj4+PiBOZXRsaWItamF2YSB0aGF0IGhhcyBhIEphdmEgd3JhcHBlciBmb3IgQkxB UyAoYmFzaWMgbGluZWFyIA0KPj4+ID4+ID4+Pj4+IGFsZ2VicmEgc3VicHJvZ3JhbXMpIGFuZCBM QVBBQ0sgbmF0aXZlIGJpbmFyaWVzIGlmIHRoZXkgYXJlIA0KPj4+ID4+ID4+Pj4+IGF2YWlsYWJs ZSBvbiB0aGUgd29ya2VyIG5vZGUuIEl0IGFsc28gaGFzIGl0cyBvd24gb3B0aW1pemVkIA0KPj4+ ID4+ID4+Pj4+IEphdmEgaW1wbGVtZW50YXRpb24gb2YgQkxBUy4gSXQgaXMgd29ydGggbWVudGlv bmluZywgdGhhdCANCj4+PiA+PiA+Pj4+PiBuYXRpdmUgYmluYXJpZXMgcHJvdmlkZSBiZXR0ZXIg cGVyZm9ybWFuY2Ugb25seSBmb3IgQkxBUyANCj4+PiA+PiA+Pj4+PiBsZXZlbCAzLCBpLmUuDQo+ Pj4gPj4gPj4+Pj4gbWF0cml4LW1hdHJpeCBvcGVyYXRpb25zIG9yIGdlbmVyYWwgbWF0cml4IG11 bHRpcGxpY2F0aW9uIChHRU1NKS4NCj4+PiA+PiA+Pj4+PiBUaGlzIGlzDQo+Pj4gPj4gPj4+Pj4g Y29uZmlybWVkIGJ5IEdFTU0gdGVzdCBvbiBOZXRsaWItamF2YSBwYWdlIA0KPj4+ID4+ID4+Pj4+ IGh0dHBzOi8vZ2l0aHViLmNvbS9mb21taWwvbmV0bGliLWphdmEuIEkgYWxzbyBjb25maXJtZWQg aXQgDQo+Pj4gPj4gPj4+Pj4gd2l0aCBteSBleHBlcmltZW50cyB3aXRoIHRyYWluaW5nIG9mIGFy dGlmaWNpYWwgbmV1cmFsIA0KPj4+ID4+ID4+Pj4+IG5ldHdvcmsgDQo+Pj4gPj4gPj4+Pj4gaHR0 cHM6Ly9naXRodWIuY29tL2FwYWNoZS9zcGFyay9wdWxsLzEyOTAjaXNzdWVjb21tZW50LTcwMzEz OTUyLg0KPj4+ID4+ID4+Pj4+IEhvd2V2ZXIsIEkgd291bGQgbGlrZSB0byBib29zdCBwZXJmb3Jt YW5jZSBtb3JlLg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gR1BVIGlzIHN1cHBvc2VkIHRv IHdvcmsgZmFzdCB3aXRoIGxpbmVhciBhbGdlYnJhIGFuZCB0aGVyZSANCj4+PiA+PiA+Pj4+PiBp cyBOdmlkaWEgQ1VEQSBpbXBsZW1lbnRhdGlvbiBvZiBCTEFTLCBjYWxsZWQgY3VibGFzLiBJIA0K Pj4+ID4+ID4+Pj4+IGhhdmUgb25lIExpbnV4IHNlcnZlciB3aXRoIE52aWRpYSBHUFUgYW5kIEkg d2FzIGFibGUgdG8gZG8gDQo+Pj4gPj4gPj4+Pj4gdGhlIGZvbGxvd2luZy4gSSBsaW5rZWQgY3Vi bGFzIChpbnN0ZWFkIG9mIGNwdS1iYXNlZCBibGFzKSANCj4+PiA+PiA+Pj4+PiB3aXRoIE5ldGxp Yi1qYXZhIHdyYXBwZXIgYW5kIHB1dCBpdCBpbnRvIFNwYXJrLCBzbyANCj4+PiA+PiA+Pj4+PiBC cmVlemUvTmV0bGliIGlzIHVzaW5nIGl0LiBUaGVuIEkgZGlkIHNvbWUgcGVyZm9ybWFuY2UgDQo+ Pj4gPj4gPj4+Pj4gbWVhc3VyZW1lbnRzIHdpdGggcmVnYXJkcyB0byBhcnRpZmljaWFsIG5ldXJh bCBuZXR3b3JrIA0KPj4+ID4+ID4+Pj4+IGJhdGNoIGxlYXJuaW5nIGluIFNwYXJrIE1MbGliIHRo YXQgaW52b2x2ZXMgbWF0cml4LW1hdHJpeCANCj4+PiA+PiA+Pj4+PiBtdWx0aXBsaWNhdGlvbnMu IEl0IHR1cm5zIG91dCB0aGF0IGZvciBtYXRyaWNlcyBvZiBzaXplIA0KPj4+ID4+ID4+Pj4+IGxl c3MgdGhhbiB+MTAwMHg3ODAgR1BVIGN1YmxhcyBoYXMgdGhlIHNhbWUgc3BlZWQgYXMgQ1BVIA0K Pj4+ID4+ID4+Pj4+IGJsYXMuDQo+Pj4gPj4gPj4+Pj4gQ3VibGFzDQo+Pj4gPj4gPj4+Pj4gYmVj b21lcyBzbG93ZXIgZm9yIGJpZ2dlciBtYXRyaWNlcy4gSXQgd29ydGggbWVudGlvbmluZyANCj4+ PiA+PiA+Pj4+PiB0aGF0IGl0IGlzIHdhcyBub3QgYSB0ZXN0IGZvciBPTkxZIG11bHRpcGxpY2F0 aW9uIHNpbmNlIA0KPj4+ID4+ID4+Pj4+IHRoZXJlIGFyZSBvdGhlciBvcGVyYXRpb25zIGludm9s dmVkLg0KPj4+ID4+ID4+Pj4+IE9uZSBvZiB0aGUgcmVhc29ucyBmb3Igc2xvd2Rvd24gbWlnaHQg YmUgdGhlIG92ZXJoZWFkIG9mIA0KPj4+ID4+ID4+Pj4+IGNvcHlpbmcgdGhlIG1hdHJpY2VzIGZy b20gY29tcHV0ZXIgbWVtb3J5IHRvIGdyYXBoaWMgY2FyZCANCj4+PiA+PiA+Pj4+PiBtZW1vcnkg YW5kIGJhY2suDQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBTbywgZmV3IHF1ZXN0aW9uczoN Cj4+PiA+PiA+Pj4+PiAxKSBEbyB0aGVzZSByZXN1bHRzIHdpdGggQ1VEQSBtYWtlIHNlbnNlPw0K Pj4+ID4+ID4+Pj4+IDIpIElmIHRoZSBwcm9ibGVtIGlzIHdpdGggY29weSBvdmVyaGVhZCwgYXJl IHRoZXJlIGFueSANCj4+PiA+PiA+Pj4+PiBsaWJyYXJpZXMgdGhhdCBhbGxvdyB0byBmb3JjZSBp bnRlcm1lZGlhdGUgcmVzdWx0cyB0byBzdGF5IA0KPj4+ID4+ID4+Pj4+IGluIGdyYXBoaWMgY2Fy ZCBtZW1vcnkgdGh1cyByZW1vdmluZyB0aGUgb3ZlcmhlYWQ/DQo+Pj4gPj4gPj4+Pj4gMykgQW55 IG90aGVyIG9wdGlvbnMgdG8gc3BlZWQtdXAgbGluZWFyIGFsZ2VicmEgaW4gU3Bhcms/DQo+Pj4g Pj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBUaGFuayB5b3UsIEFsZXhhbmRlcg0KPj4+ID4+ID4+Pj4+ DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4gPj4gPj4+ Pj4gLS0tLS0tLS0tLQ0KPj4+ID4+ID4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6DQo+Pj4g Pj4gPj4+Pj4NCj4+PiA+PiA+Pj4+PiBkZXYtdW5zdWJzY3JpYmVAc3BhcmsuYXBhY2hlLm9yZzxt YWlsdG86ZGV2LXVuc3Vic2NyaWJlQHNwYXJrLmFwYWNoZS5vcmc+PG1haWx0bzoNCj4+PiA+PiA+ Pj4+Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gZGV2LXVuc3Vic2NyaWJlQHNwYXJrLmFw YWNoZS5vcmc8bWFpbHRvOmRldi11bnN1YnNjcmliZUBzcGENCj4+PiA+PiA+Pj4+PiByay5hcGFj aGUub3JnPj48bWFpbHRvOmRldi11bnN1YnNjcmliZUBzcGFyay5hcGFjaGUub3JnPG1haQ0KPj4+ ID4+ID4+Pj4+IGx0bzpkZXYtdW5zdWJzY3JpYmVAc3BhcmsuYXBhY2hlLm9yZz4NCj4+PiA+PiA+ Pj4+Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4gPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVA c3BhcmsuYXBhY2hlLm9yZzxtYWlsdG86ZGV2LXVuc3Vic2MNCj4+PiA+PiA+Pj4+PiByaWJlQHNw YXJrLmFwYWNoZS5vcmc+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoNCj4+PiA+ PiA+Pj4+Pg0KPj4+ID4+ID4+Pj4+IGRldi1oZWxwQHNwYXJrLmFwYWNoZS5vcmc8bWFpbHRvOmRl di1oZWxwQHNwYXJrLmFwYWNoZS5vcmc+PG1haWx0bzoNCj4+PiA+PiA+Pj4+Pg0KPj4+ID4+ID4+ Pj4+DQo+Pj4gPj4gPj4+Pj4gZGV2LWhlbHBAc3BhcmsuYXBhY2hlLm9yZzxtYWlsdG86ZGV2LWhl bHBAc3BhcmsuYXBhY2hlLm9yZz4+PG1haWx0bzpkZXYtaGVscEBzcGFyay5hcGFjaGUub3JnPG1h aWx0bzpkZXYtaGVscEBzcGFyay5hcGFjaGUub3JnPjxtYWlsdG86DQo+Pj4gPj4gPj4+Pj4gZGV2 LWhlbHBAc3BhcmsuYXBhY2hlLm9yZzxtYWlsdG86ZGV2LWhlbHBAc3BhcmsuYXBhY2hlLm9yZz4N Cj4+PiA+PiA+Pj4+PiA+Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pj4NCj4+PiA+PiA+Pj4+ Pg0KPj4+ID4+ID4+Pj4+DQo+Pj4gPj4gPj4+Pg0KPj4+ID4+ID4NCj4+PiA+PiA+IC0tDQo+Pj4g Pj4gPiBCZXN0IHJlZ2FyZHMsDQo+Pj4gPj4gPiBTYW0NCj4+PiA+PiA+DQo= DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNj cmliZUBzcGFyay5hcGFjaGUub3JnDQpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWls OiBkZXYtaGVscEBzcGFyay5hcGFjaGUub3JnDQoN