From user-return-12529-archive-asf-public=cust-asf.ponee.io@zookeeper.apache.org Wed Jan 15 12:19:09 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 412B818065E for ; Wed, 15 Jan 2020 13:19:09 +0100 (CET) Received: (qmail 63570 invoked by uid 500); 15 Jan 2020 12:19:08 -0000 Mailing-List: contact user-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@zookeeper.apache.org Delivered-To: mailing list user@zookeeper.apache.org Received: (qmail 63558 invoked by uid 99); 15 Jan 2020 12:19:07 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Jan 2020 12:19:07 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 8B3B6C228C for ; Wed, 15 Jan 2020 12:19:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.197 X-Spam-Level: X-Spam-Status: No, score=-0.197 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NUMERIC_HTTP_ADDR=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, WEIRD_PORT=0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=diennea.com Received: from mx1-he-de.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id owtX53wpOeRd for ; Wed, 15 Jan 2020 12:19:02 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=46.29.201.178; helo=mx-r1.mag-news.it; envelope-from=prvs=128349b226=enrico.olivelli@diennea.com; receiver= Received: from mx-r1.mag-news.it (mx-r1.mag-news.it [46.29.201.178]) by mx1-he-de.apache.org (ASF Mail Server at mx1-he-de.apache.org) with ESMTPS id C91B17DDE8 for ; Wed, 15 Jan 2020 12:19:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=diennea.com; s=mxr1201910041420; q=dns/txt; h=From:To:CC: Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:user-agent: Content-Type:Content-ID:Content-Transfer-Encoding:MIME-Version; bh=GyFHEzy+sJ+L22/+ivY17rX9Fe8=; b=Izx4Cxq9O9GrDZCqvJcyDujqC0Z2S zcaowMXyP5rHbcGraX6R7CF5xCpU1KH3BCJkVxlD9j1CElpyqTh6I6R06J9t5xSs KXUzZqsynDFl9aAOhVh7DxmAcsRzCp2Nc6VDeSO6waaG/CYuIr2fF8FoJRb6pU9U wmbqk+06h1YUNY= Received: from mail2r.mag-news.it by diennea.com (mx-r1.mag-news.it) with ESMTP id SG006171477.MSG for ; Wed, 15 Jan 2020 13:18:54 +0100S Received: from EXC02-Rozzano.diennea.lan (10.200.85.91) by EXC02-Rozzano.diennea.lan (10.200.85.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1779.2; Wed, 15 Jan 2020 13:18:53 +0100 Received: from EXC02-Rozzano.diennea.lan ([46.29.201.91]) by EXC02-Rozzano.diennea.lan ([46.29.201.91]) with mapi id 15.01.1779.002; Wed, 15 Jan 2020 13:18:53 +0100 From: Enrico Olivelli - Diennea To: "user@zookeeper.apache.org" CC: =?utf-8?B?U3phbGF5LUJla8WRIE3DoXTDqQ==?= , Damien Diederen , "eolivelli@gmail.com" Subject: Re: Zookeeper and curator SASL authentication Thread-Topic: Zookeeper and curator SASL authentication Thread-Index: AQHVxt7WZ+WxavAT+USIxf6md3Y5UKfiW3WlgAAOvoCAAAkXgIAAPo2g///5awCAACdDGIAF6OqAgAAD6gCAAAJigIAABToAgAABOwCAATuIAIAAID2AgAFH3gCAACyZgIAAE76A///wnoCAABFggA== Date: Wed, 15 Jan 2020 12:18:53 +0000 Message-ID: <2243B65A-5943-4361-AF5F-95E10B7D1CFF@diennea.com> References: <87h814n37k.fsf@sinenomine.net> <87blrcmow9.fsf@sinenomine.net> <877e20mjh7.fsf@sinenomine.net> <4F30BB7E-6D28-4FD3-BBE9-AB309D768D1C@diennea.com> In-Reply-To: Accept-Language: it-IT, en-US Content-Language: it-IT X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.20.0.191208 x-originating-ip: [92.223.146.116] Content-Type: text/plain; charset="utf-8" Content-ID: <941DFA4F8961724BA01832C7388CB64A@diennea.lan> Content-Transfer-Encoding: base64 MIME-Version: 1.0 WWVzLCB0aGV5IGFyZSBzeXN0ZW0gcHJvcGVydGllcw0KDQpZb3UgY2FuIHRha2UgdGhpcyBndWlk ZSAoYWJvdXQgS2Fma2EpIGFzIGV4YW1wbGUNCmh0dHBzOi8vZG9jcy5jb25mbHVlbnQuaW8vY3Vy cmVudC9rYWZrYS9hdXRoZW50aWNhdGlvbl9zYXNsL2F1dGhlbnRpY2F0aW9uX3Nhc2xfZ3NzYXBp Lmh0bWwNCg0KDQoNCu+7v0lsIGdpb3JubyAxNS8wMS8yMCwgMTM6MTcgIkFycGl0IEphaW4iIDxq YWluLmFycGl0NkBnbWFpbC5jb20+IGhhIHNjcml0dG86DQoNCiAgICBJIGhhdmUgbm90IHBhc3Nl ZCB0aG9zZSBwYXJhbWV0ZXJzLiBJcyB0aGlzIHNvbWV0aGluZyBJIG5lZWQgdG8gc2V0IGluDQog ICAgWm9va2VlcGVyICh6b28uY2ZnKSA/DQoNCiAgICBPbiBXZWQsIEphbiAxNSwgMjAyMCBhdCAx MjoxMiBQTSBFbnJpY28gT2xpdmVsbGkgLSBEaWVubmVhIDwNCiAgICBlbnJpY28ub2xpdmVsbGlA ZGllbm5lYS5jb20+IHdyb3RlOg0KDQogICAgPiBVc3VhbGx5IHdpdGggU0FTTCBhdXRoIHlvdSBh cmUgdXNpbmc6DQogICAgPiBrZXJiZXJvcy5yZW1vdmVIb3N0RnJvbVByaW5jaXBhbD10cnVlDQog ICAgPiBrZXJiZXJvcy5yZW1vdmVSZWFsbUZyb21QcmluY2lwYWw9dHJ1ZQ0KICAgID4NCiAgICA+ IGlzIHRoaXMgdGhlIGNhc2UgZm9yIHlvdSA/DQogICAgPg0KICAgID4gRW5yaWNvDQogICAgPg0K ICAgID4gSWwgZ2lvcm5vIDE1LzAxLzIwLCAxMzowMSAiQXJwaXQgSmFpbiIgPGphaW4uYXJwaXQ2 QGdtYWlsLmNvbT4gaGENCiAgICA+IHNjcml0dG86DQogICAgPg0KICAgID4gICAgIEkgaGF2ZSBh c2tlZCBpbiBDdXJhdG9yIG1haWxpbmcgbGlzdCBhcyB3ZWxsIGJ1dCBub3QgbXVjaCBoZWxwLiBJ IGFtDQogICAgPiBhYmxlDQogICAgPiAgICAgdG8gc2V0IEFDTCB3aXRoIHNhc2wgc2NoZW1lIGJ5 IHVzaW5nIHprQ2xpLnNoIGNsaWVudCBpbiBab29rZWVwZXINCiAgICA+IHNlcnZlci4NCiAgICA+ ICAgICBUaGUgaWRlYSBpcyB0byB1c2UgQ3VyYXRvciB0byBzZXQgdGhlIEFDTHMgc28gdGhhdCBv bmx5IG15IGNsaWVudA0KICAgID4gICAgIGFwcGxpY2F0aW9uIGNhbiBhY2Nlc3MgaXRzIFpub2Rl cy4NCiAgICA+DQogICAgPg0KICAgID4gICAgIE9uIFdlZCwgSmFuIDE1LCAyMDIwIGF0IDk6MjEg QU0gU3phbGF5LUJla8WRIE3DoXTDqSA8DQogICAgPiBzemFsYXkuYmVrby5tYXRlQGdtYWlsLmNv bT4NCiAgICA+ICAgICB3cm90ZToNCiAgICA+DQogICAgPiAgICAgPiBJIGFtIG5vdCBzdXJlIHdo YXQgaXMgd3Jvbmcgd2l0aCB0aGUgY29kZS4uLiBJIGFtIG5vdCBmYW1pbGlhciB3aXRoDQogICAg PiAgICAgPiBDdXJhdG9yLiBJIGNhbiB0cnkgdG8gZ29vZ2xlIC8gcmVwcm9kdWNlIHRoaXMgYW5k IHNlZSB3aGF0IGlzIHdyb25nLA0KICAgID4gYnV0IGl0DQogICAgPiAgICAgPiB3aWxsIHRha2Ug YSB3aGlsZSBmb3IgbWUuIFNvIGZpcnN0IEkgd291bGQgYXNrIHRoZSBvdGhlcnMsIG1heWJlDQog ICAgPiB0aGVyZSBpcw0KICAgID4gICAgID4gc29tZW9uZSB3aG8ga25vd3MgYm90aCBab29LZWVw ZXIgU0FTTCBhbmQgQ3VyYXRvciBhbmQgY2FuIGhlbHAgeW91DQogICAgPiBtb3JlIGluDQogICAg PiAgICAgPiB0aGlzIG1haWxpbmcgbGlzdC4gSWYgbm9vbmUgcmVwbGllcywgdGhlbiBJIHdpbGwg dHJ5IHRvIHNldHVwIGEgZHVtbXkNCiAgICA+ICAgICA+IHByb2plY3Qgd2l0aCBDdXJhdG9yIHRv IHRlc3QgdGhpcy4NCiAgICA+ICAgICA+DQogICAgPiAgICAgPiBEaWQgeW91IGFsc28gYXNrIGFy b3VuZCB0aGUgQ3VyYXRvciBtYWlsaW5nIGxpc3QgbWF5YmU/IFdvdWxkIGl0DQogICAgPiBoZWxw IGlmIEkNCiAgICA+ICAgICA+IHNlbmQgeW91IGNvZGUgYWJvdXQgc2V0dGluZyB0aGUgQUNMcyB1 c2luZyBwbGFpbiBab29LZWVwZXIgKGFuZCBubw0KICAgID4gQ3VyYXRvcik/DQogICAgPiAgICAg Pg0KICAgID4gICAgID4gT24gVHVlLCBKYW4gMTQsIDIwMjAgYXQgMjo0OCBQTSBBcnBpdCBKYWlu IDxqYWluLmFycGl0NkBnbWFpbC5jb20+DQogICAgPiB3cm90ZToNCiAgICA+ICAgICA+DQogICAg PiAgICAgPj4gVGhhbmtzIGZvciB0aGUgY2xhcmlmaWNhdGlvbi4NCiAgICA+ICAgICA+PiBJIGFt IGFibGUgdG8gYXV0aGVudGljYXRlIGNsaWVudCB3aXRoIFpvb2tlZXBlci4gSG93ZXZlciwgd2hl biBJDQogICAgPiBzdGFydGVkDQogICAgPiAgICAgPj4gdG8gc2V0IEFDTHMgd2l0aCB0aGUgc2Ft ZSBjbGllbnQsIEkgZ2V0IGVycm9yIG1lc3NhZ2VzLiBUaGlzIGlzIGhvdw0KICAgID4gSSBhbQ0K ICAgID4gICAgID4+IGNyZWF0aW5nIGN1cmF0b3IgY2xpZW50IGZvciBzZXR0aW5nIEFDTHMNCiAg ICA+ICAgICA+Pg0KICAgID4gICAgID4+ICAgICAgICAgQ3VyYXRvckZyYW1ld29ya0ZhY3Rvcnku QnVpbGRlciBidWlsZGVyID0NCiAgICA+ICAgICA+Pg0KICAgID4gICAgID4+ICAgICAgICAgICAg IEN1cmF0b3JGcmFtZXdvcmtGYWN0b3J5LmJ1aWxkZXIoKS5jb25uZWN0U3RyaW5nKA0KICAgID4g ICAgID4+IGNvb3JkaW5hdG9ySG9zdHMpLnJldHJ5UG9saWN5KHJldHJ5UG9saWN5KQ0KICAgID4g ICAgID4+DQogICAgPiAgICAgPj4gICAgICAgICAgICAgLmNvbm5lY3Rpb25UaW1lb3V0TXMoY29v cmRpbmF0b3JDb25uZWN0aW9uVGltZW91dA0KICAgID4gICAgID4+ICkuc2Vzc2lvblRpbWVvdXRN cyhjb29yZGluYXRvclNlc3Npb25UaW1lb3V0KTsNCiAgICA+ICAgICA+Pg0KICAgID4gICAgID4+ ICAgICAgICAgZmluYWwgQ3VyYXRvckZyYW1ld29yayBjdXJhdG9yRnJhbWV3b3JrID0NCiAgICA+ ICAgICA+Pg0KICAgID4gICAgID4+ICAgICAgICAgICAgIGJ1aWxkZXIuYXV0aG9yaXphdGlvbigi c2FzbCIsICJ6a2NsaWVudC8NCiAgICA+IHpvbzFARVhBTVBMRS5DT00iDQogICAgPiAgICAgPj4g LmdldEJ5dGVzKCkpLmFjbFByb3ZpZGVyKG5ldyBBQ0xQcm92aWRlcigpIHsNCiAgICA+ICAgICA+ Pg0KICAgID4gICAgID4+ICAgICAgICAgICAgIEBPdmVycmlkZQ0KICAgID4gICAgID4+DQogICAg PiAgICAgPj4gICAgICAgICAgICAgcHVibGljIExpc3Q8QUNMPiBnZXREZWZhdWx0QWNsKCkgew0K ICAgID4gICAgID4+DQogICAgPiAgICAgPj4gICAgICAgICAgICAgICAgIHJldHVybiBab29EZWZz Lklkcy5DUkVBVE9SX0FMTF9BQ0w7DQogICAgPiAgICAgPj4NCiAgICA+ICAgICA+PiAgICAgICAg ICAgICB9DQogICAgPiAgICAgPj4NCiAgICA+ICAgICA+Pg0KICAgID4gICAgID4+ICAgICAgICAg ICAgIEBPdmVycmlkZQ0KICAgID4gICAgID4+DQogICAgPiAgICAgPj4gICAgICAgICAgICAgcHVi bGljIExpc3Q8QUNMPiBnZXRBY2xGb3JQYXRoKFN0cmluZyBwYXRoKSB7DQogICAgPiAgICAgPj4N CiAgICA+ICAgICA+PiAgICAgICAgICAgICAgICAgcmV0dXJuIFpvb0RlZnMuSWRzLkNSRUFUT1Jf QUxMX0FDTDsNCiAgICA+ICAgICA+Pg0KICAgID4gICAgID4+ICAgICAgICAgICAgIH0NCiAgICA+ ICAgICA+Pg0KICAgID4gICAgID4+ICAgICAgICAgfSkuYnVpbGQoKTsNCiAgICA+ICAgICA+Pg0K ICAgID4gICAgID4+DQogICAgPiAgICAgPj4gIEkgc2VlIGJlbG93IGxvZ3MgaW4gWm9va2VlcGVy IG5vZGU6DQogICAgPiAgICAgPj4NCiAgICA+ICAgICA+Pg0KICAgID4gICAgID4+DQogICAgPiAg ICAgPj4NCiAgICA+ICAgICA+Pg0KICAgID4gICAgID4+ICoyMDIwLTAxLTE0IDEzOjI3OjUzLDE3 NCBbbXlpZDoxXSAtIElORk8NCiAgICA+ICAgICA+PiAgW05JT1dvcmtlclRocmVhZC0zOlNhc2xT ZXJ2ZXJDYWxsYmFja0hhbmRsZXJAMTIwXSAtIFN1Y2Nlc3NmdWxseQ0KICAgID4gICAgID4+IGF1 dGhlbnRpY2F0ZWQgY2xpZW50OiBhdXRoZW50aWNhdGlvbklEPXprY2xpZW50L3pvbzFARVhBTVBM RS5DT00NCiAgICA+ICAgICA+PiA8em9vMUBFWEFNUExFLkNPTT47ICBhdXRob3JpemF0aW9uSUQ9 emtjbGllbnQvem9vMUBFWEFNUExFLkNPTQ0KICAgID4gICAgID4+IDx6b28xQEVYQU1QTEUuQ09N Pi4yMDIwLTAxLTE0IDEzOjI3OjUzLDE3NSBbbXlpZDoxXSAtIElORk8NCiAgICA+ICAgICA+PiAg W05JT1dvcmtlclRocmVhZC0zOlNhc2xTZXJ2ZXJDYWxsYmFja0hhbmRsZXJAMTM2XSAtIFNldHRp bmcNCiAgICA+IGF1dGhvcml6ZWRJRDoNCiAgICA+ICAgICA+PiB6a2NsaWVudC96b28xQEVYQU1Q TEUuQ09NIDx6b28xQEVYQU1QTEUuQ09NPjIwMjAtMDEtMTQgMTM6Mjc6NTMsMTc1DQogICAgPiAg ICAgPj4gW215aWQ6MV0gLSBJTkZPICBbTklPV29ya2VyVGhyZWFkLTM6Wm9vS2VlcGVyU2VydmVy QDExNzBdIC0gYWRkaW5nDQogICAgPiBTQVNMDQogICAgPiAgICAgPj4gYXV0aG9yaXphdGlvbiBm b3IgYXV0aG9yaXphdGlvbklEOiB6a2NsaWVudC96b28xQEVYQU1QTEUuQ09NDQogICAgPiAgICAg Pj4gPHpvbzFARVhBTVBMRS5DT00+MjAyMC0wMS0xNCAxMzoyNzo1MywxODIgW215aWQ6MV0gLSBJ TkZPDQogICAgPiAgICAgPj4gIFtOSU9Xb3JrZXJUaHJlYWQtNzpab29LZWVwZXJTZXJ2ZXJAMTA5 NV0gLSBnb3QgYXV0aCBwYWNrZXQNCiAgICA+ICAgICA+PiAvMTcyLjMwLjAuNjozNjY1OCA8aHR0 cDovLzE3Mi4zMC4wLjY6MzY2NTg+MjAyMC0wMS0xNCAxMzoyNzo1MywxODMNCiAgICA+IFtteWlk OjFdDQogICAgPiAgICAgPj4gLSBXQVJOICBbTklPV29ya2VyVGhyZWFkLTc6Wm9vS2VlcGVyU2Vy dmVyQDExMjNdIC0gQXV0aGVudGljYXRpb24NCiAgICA+IGZhaWxlZA0KICAgID4gICAgID4+IGZv ciBzY2hlbWU6IHNhc2wqDQogICAgPiAgICAgPj4NCiAgICA+ICAgICA+PiBJcyB0aGlzIG5vdCB0 aGUgY29ycmVjdCB3YXkgdG8gZG8gaXQgPw0KICAgID4gICAgID4+DQogICAgPiAgICAgPj4NCiAg ICA+ICAgICA+Pg0KICAgID4gICAgID4+IE9uIFR1ZSwgSmFuIDE0LCAyMDIwIGF0IDExOjUyIEFN IFN6YWxheS1CZWvFkSBNw6F0w6kgPA0KICAgID4gICAgID4+IHN6YWxheS5iZWtvLm1hdGVAZ21h aWwuY29tPiB3cm90ZToNCiAgICA+ICAgICA+Pg0KICAgID4gICAgID4+PiBUaGUgc3lzdGVtIHBy b3BlcnR5IG5hbWUgaXMgYSBiaXQgbWlzbGVhZGluZy4uLiB0aGlzIHBhcmFtZXRlciBpcw0KICAg ID4gICAgID4+PiBhY3R1YWxseSBzcGVjaWZpZXMgdGhlIHVzZXJuYW1lIHVzZWQgaW4gdGhlIFpv b0tlZXBlciBzZXJ2ZXINCiAgICA+IHByaW5jaXBhbC4NCiAgICA+ICAgICA+Pj4gKGluIHlvdXIg Y2FzZSB0aGUgc2VydmVyIHByaW5jaXBhbCBpczogem9va2VlcGVyL3pvbzFARVhBTVBMRS5DT00p DQogICAgPiAgICAgPj4+IEFGQUlLIHRoZSBab29LZWVwZXIgY2xpZW50IChhZnRlciBhdXRoZW50 aWNhdGVkIGFzIHprY2xpZW50Lw0KICAgID4gICAgID4+PiB6b28xQEVYQU1QTEUuQ09NIGluIEtl cmJlcm9zIGJhc2VkIG9uIHRoZSBqYWFzLmNvbmYgZmlsZSkgbmVlZHMNCiAgICA+IHRvIGtub3cN CiAgICA+ICAgICA+Pj4gdGhlIFpvb0tlZXBlciBzZXJ2ZXIgcHJpbmNpcGFsIGluIG9yZGVyIHRv IGFzayBmb3IgYSBzcGVjaWZpYw0KICAgID4gdG9rZW4gZnJvbQ0KICAgID4gICAgID4+PiBrZXJi ZXJvcyB3aGljaCBjYW4gYmUgcmVhZCBieSB0aGUgWm9vS2VlcGVyIHNlcnZlci4NCiAgICA+ICAg ICA+Pj4NCiAgICA+ICAgICA+Pj4gSW4gMy41LjUgKG9yIDMuNS42KSB5b3UgY2FuIHVzZSB0aGUg IHpvb2tlZXBlci5zYXNsLmNsaWVudC51c2VybmFtZQ0KICAgID4gICAgID4+PiBwYXJhbWV0ZXIg KHBsdXMgc29tZSBvdGhlciBwYXJhbWV0ZXJzKSB0byBjb25maWd1cmUgaG93IHRoZSBzZXJ2ZXIN CiAgICA+ICAgICA+Pj4gcHJpbmNpcGFsIHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgY2xpZW50 Lg0KICAgID4gICAgID4+PiBTZWU6DQogICAgPiAgICAgPj4+DQogICAgPiBodHRwczovL2dpdGh1 Yi5jb20vYXBhY2hlL3pvb2tlZXBlci9ibG9iL2MxMWI3ZTI2YmM1NTRiODUyM2RjOTI5NzYxZGQy ODgwODkxM2YwOTEvem9va2VlcGVyLXNlcnZlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvem9v a2VlcGVyL1Nhc2xTZXJ2ZXJQcmluY2lwYWwuamF2YSNMNDgNCiAgICA+ICAgICA+Pj4NCiAgICA+ ICAgICA+Pj4gSW4gZnV0dXJlIHJlbGVhc2VzICgzLjUuNywgMy42LCAuLi4pIHlvdSBjYW4gYWxz byB1c2UNCiAgICA+ICAgICA+Pj4gdGhlIHpvb2tlZXBlci5zZXJ2ZXIucHJpbmNpcGFsIHBhcmFt ZXRlciAoYSBtdWNoIGJldHRlciBuYW1lIEkNCiAgICA+IHRoaW5rKSB0bw0KICAgID4gICAgID4+ PiB1c2UgYSBmaXggc2VydmVyIHByaW5jaXBhbCBuYW1lIGluIHRoZSBjbGllbnQuDQogICAgPiAg ICAgPj4+IFNlZToNCiAgICA+ICAgICA+Pj4NCiAgICA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFj aGUvem9va2VlcGVyL2Jsb2IvMWM1ZDEzNWQ3NGYxNjI3NTg3NmMwMjQ0MDFkYzJkZTkyOTA5YjIw YS96b29rZWVwZXItc2VydmVyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS96b29rZWVwZXIvU2Fz bFNlcnZlclByaW5jaXBhbC5qYXZhI0w1MA0KICAgID4gICAgID4+Pg0KICAgID4gICAgID4+PiBP biBNb24sIEphbiAxMywgMjAyMCBhdCA2OjAzIFBNIEFycGl0IEphaW4gPGphaW4uYXJwaXQ2QGdt YWlsLmNvbT4NCiAgICA+ICAgICA+Pj4gd3JvdGU6DQogICAgPiAgICAgPj4+DQogICAgPiAgICAg Pj4+PiBEb2VzIHRoaXMgdXNlciBuYW1lIGhhdmUgdG8gYmUgIlpvb2tlZXBlciINCiAgICA+ICAg ICA+Pj4+ICgtRHpvb2tlZXBlci5zYXNsLmNsaWVudC51c2VybmFtZT16b29rZWVwZXIpIGFsd2F5 cyA/DQogICAgPiAgICAgPj4+PiBBbmQgdGhlIGNsaWVudCBwcmluY2lwYWwgbmFtZSBpcyBkaWZm ZXJlbnQgdGhhbiB0aGlzDQogICAgPiB1c2VybmFtZS4uQ29ycmVjdA0KICAgID4gICAgID4+Pj4g bWUgaWYgSSBhbSB3cm9uZyA/DQogICAgPiAgICAgPj4+Pg0KICAgID4gICAgID4+Pj4gT24gTW9u LCBKYW4gMTMsIDIwMjAgYXQgNDo1OCBQTSBBcnBpdCBKYWluIDxqYWluLmFycGl0NkBnbWFpbC5j b20NCiAgICA+ID4NCiAgICA+ICAgICA+Pj4+IHdyb3RlOg0KICAgID4gICAgID4+Pj4NCiAgICA+ ICAgICA+Pj4+PiBUaGFua3MgeW91IHNvIG11Y2ggIQ0KICAgID4gICAgID4+Pj4+IEl0IHdvcmtl ZCBmaW5hbGx5LiBJIGhhZCB0byBjaGFuZ2UNCiAgICA+ICAgICA+Pj4+PiAtRHpvb2tlZXBlci5z YXNsLmNsaWVudC51c2VybmFtZT16b29rZWVwZXIgcGFyYW1ldGVyLg0KICAgID4gICAgID4+Pj4+ DQogICAgPiAgICAgPj4+Pj4gT24gTW9uLCBKYW4gMTMsIDIwMjAgYXQgNDo0MCBQTSBTemFsYXkt QmVrxZEgTcOhdMOpIDwNCiAgICA+ICAgICA+Pj4+PiBzemFsYXkuYmVrby5tYXRlQGdtYWlsLmNv bT4gd3JvdGU6DQogICAgPiAgICAgPj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4gWW91IGFyZSB1c2lu ZyAzLjUuNSBvciAzLjUuNiwgcmlnaHQ/DQogICAgPiAgICAgPj4+Pj4+IEkgdGhpbmsgeW91IG5l ZWQgdG8gc3BlY2lmeToNCiAgICA+ICAgICA+Pj4+Pj4gLUR6b29rZWVwZXIuc2FzbC5jbGllbnQu dXNlcm5hbWU9em9va2VlcGVyDQogICAgPiAgICAgPj4+Pj4+IGNhbiB5b3UgZ2l2ZSBpdCBhIHRy eT8gSWYgaXQgZG9lc24ndCB3b3JrIHRoZW4gSSBjYW4gdGFrZSBhDQogICAgPiBkZWVwZXINCiAg ICA+ICAgICA+Pj4+Pj4gbG9vayAoYWxzbyB3ZSBjYW4gZW5hYmxlIHNvbWUgZGVidWcgbG9nZ2lu ZykNCiAgICA+ICAgICA+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4gT24gTW9uLCBKYW4gMTMsIDIw MjAgYXQgNTozMSBQTSBBcnBpdCBKYWluIDwNCiAgICA+IGphaW4uYXJwaXQ2QGdtYWlsLmNvbT4N CiAgICA+ICAgICA+Pj4+Pj4gd3JvdGU6DQogICAgPiAgICAgPj4+Pj4+DQogICAgPiAgICAgPj4+ Pj4+PiBIaQ0KICAgID4gICAgID4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+IEkgaGF2ZSBLZXJi ZXJvcywgWm9va2VlcGVyIGFuZCBteSBhcHBsaWNhdGlvbiAodXNpbmcgY3VyYXRvcikNCiAgICA+ ICAgICA+Pj4+Pj4+IHJ1bm5pbmcgaW4gMyBkb2NrZXIgY29udGFpbmVycyB3aXRoIFpLIFNBU0wg YXV0aGVudGljYXRpb24NCiAgICA+IGVuYWJsZWQuIFRoZSBaSw0KICAgID4gICAgID4+Pj4+Pj4g Y2FuIGxvZ2luIHRvIEtlcmJlcm9zIGFuZCBzdGFydHMgc3VjY2Vzc2Z1bGx5Lg0KICAgID4gICAg ID4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+IFRoZSBaSyBzZXJ2ZXIgcHJpbmNpcGFsIGlzIHpv b2tlZXBlci96b28xQEVYQU1QTEUuQ09NDQogICAgPiAgICAgPj4+Pj4+PiBUaGUgY2xpZW50IHBy aW5jaXBhbCBpcyA6IHprY2xpZW50L3pvbzFARVhBTVBMRS5DT00NCiAgICA+ICAgICA+Pj4+Pj4+ DQogICAgPiAgICAgPj4+Pj4+PiBXaGlsZSBzdGFydGluZyBteSBhcHBsaWNhdGlvbiwgSSBhbSBz ZWVpbmcgZmFpbHVyZSB3aGlsZQ0KICAgID4gb2J0YWluaW5nDQogICAgPiAgICAgPj4+Pj4+PiBU R1MuDQogICAgPiAgICAgPj4+Pj4+PiBTZWUgdGhlIGxvZyBhdCBLZXJiZXJvcyBzaWRlOg0KICAg ID4gICAgID4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+DQogICAgPiAgICAgPj4+Pj4+Pg0KICAg ID4gICAgID4+Pj4+Pj4gKkphbiAxMyAxNToyMjoxOSBrZGMga3JiNWtkY1syMF0oaW5mbyk6IEFT X1JFUSAoMiBldHlwZXMgezE4DQogICAgPiAxN30pDQogICAgPiAgICAgPj4+Pj4+PiAxNzIuMzAu MC42IDxodHRwOi8vMTcyLjMwLjAuNj46IE5FRURFRF9QUkVBVVRIOiB6a2NsaWVudC8NCiAgICA+ IHpvbzFARVhBTVBMRS5DT00NCiAgICA+ICAgICA+Pj4+Pj4+IDx6b28xQEVYQU1QTEUuQ09NPiBm b3Iga3JidGd0L0VYQU1QTEUuQ09NQEVYQU1QTEUuQ09NDQogICAgPiAgICAgPj4+Pj4+PiA8RVhB TVBMRS5DT01ARVhBTVBMRS5DT00+LCBBZGRpdGlvbmFsIHByZS1hdXRoZW50aWNhdGlvbg0KICAg ID4gcmVxdWlyZWRKYW4gMTMNCiAgICA+ICAgICA+Pj4+Pj4+IDE1OjIyOjE5IGtkYyBrcmI1a2Rj WzIwXShpbmZvKTogQVNfUkVRICgyIGV0eXBlcyB7MTggMTd9KQ0KICAgID4gMTcyLjMwLjAuNg0K ICAgID4gICAgID4+Pj4+Pj4gPGh0dHA6Ly8xNzIuMzAuMC42PjogSVNTVUU6IGF1dGh0aW1lIDE1 Nzg5Mjg5MzksIGV0eXBlcw0KICAgID4ge3JlcD0xOCB0a3Q9MTgNCiAgICA+ICAgICA+Pj4+Pj4+ IHNlcz0xOH0sIHprY2xpZW50L3pvbzFARVhBTVBMRS5DT00gPHpvbzFARVhBTVBMRS5DT00+IGZv cg0KICAgID4gICAgID4+Pj4+Pj4ga3JidGd0L0VYQU1QTEUuQ09NQEVYQU1QTEUuQ09NIDxFWEFN UExFLkNPTUBFWEFNUExFLkNPTT5KYW4NCiAgICA+IDEzIDE1OjIyOjE5IGtkYw0KICAgID4gICAg ID4+Pj4+Pj4ga3JiNWtkY1syMF0oaW5mbyk6IFRHU19SRVEgKDQgZXR5cGVzIHsxOCAxNyAxNiAy M30pIDE3Mi4zMC4wLjYNCiAgICA+ICAgICA+Pj4+Pj4+IDxodHRwOi8vMTcyLjMwLjAuNj46IElT U1VFOiBhdXRodGltZSAxNTc4OTI4OTM5LCBldHlwZXMNCiAgICA+IHtyZXA9MTggdGt0PTE4DQog ICAgPiAgICAgPj4+Pj4+PiBzZXM9MTh9LCB6a2NsaWVudC96b28xQEVYQU1QTEUuQ09NIDx6b28x QEVYQU1QTEUuQ09NPiBmb3INCiAgICA+ICAgICA+Pj4+Pj4+IHprY2xpZW50L3pvbzFARVhBTVBM RS5DT00gPHpvbzFARVhBTVBMRS5DT00+Kg0KICAgID4gICAgID4+Pj4+Pj4NCiAgICA+ICAgICA+ Pj4+Pj4+IEhvd2V2ZXIsIGlmIEkgdXNlIHRoZSB6a0NsaS5zaCB0byBsb2dpbiB0byBab29rZWVw ZXIsIGl0DQogICAgPiAgICAgPj4+Pj4+PiBzdWNjZXNzZnVsbHkgbG9ncyBpbi4gU2VlIHRoZSBs b2cgb24gS2VyYmVyb3Mgc2lkZS4gU2VlIHRoZQ0KICAgID4gZGlmZmVyZW5jZSBpbg0KICAgID4g ICAgID4+Pj4+Pj4gdGhlIGxhc3QgbGluZSB3aGlsZSByZXF1ZXN0aW5nIFRHUy4NCiAgICA+ICAg ICA+Pj4+Pj4+DQogICAgPiAgICAgPj4+Pj4+Pg0KICAgID4gICAgID4+Pj4+Pj4NCiAgICA+ICAg ICA+Pj4+Pj4+ICpKYW4gMTMgMTU6MjY6MTQga2RjIGtyYjVrZGNbMjBdKGluZm8pOiBBU19SRVEg KDIgZXR5cGVzIHsxOA0KICAgID4gMTd9KQ0KICAgID4gICAgID4+Pj4+Pj4gMTcyLjMwLjAuMyA8 aHR0cDovLzE3Mi4zMC4wLjM+OiBORUVERURfUFJFQVVUSDogemtjbGllbnQvDQogICAgPiB6b28x QEVYQU1QTEUuQ09NDQogICAgPiAgICAgPj4+Pj4+PiA8em9vMUBFWEFNUExFLkNPTT4gZm9yIGty YnRndC9FWEFNUExFLkNPTUBFWEFNUExFLkNPTQ0KICAgID4gICAgID4+Pj4+Pj4gPEVYQU1QTEUu Q09NQEVYQU1QTEUuQ09NPiwgQWRkaXRpb25hbCBwcmUtYXV0aGVudGljYXRpb24NCiAgICA+IHJl cXVpcmVkSmFuIDEzDQogICAgPiAgICAgPj4+Pj4+PiAxNToyNjoxNCBrZGMga3JiNWtkY1syMF0o aW5mbyk6IEFTX1JFUSAoMiBldHlwZXMgezE4IDE3fSkNCiAgICA+IDE3Mi4zMC4wLjMNCiAgICA+ ICAgICA+Pj4+Pj4+IDxodHRwOi8vMTcyLjMwLjAuMz46IElTU1VFOiBhdXRodGltZSAxNTc4OTI5 MTc0LCBldHlwZXMNCiAgICA+IHtyZXA9MTggdGt0PTE4DQogICAgPiAgICAgPj4+Pj4+PiBzZXM9 MTh9LCB6a2NsaWVudC96b28xQEVYQU1QTEUuQ09NIDx6b28xQEVYQU1QTEUuQ09NPiBmb3INCiAg ICA+ICAgICA+Pj4+Pj4+IGtyYnRndC9FWEFNUExFLkNPTUBFWEFNUExFLkNPTSA8RVhBTVBMRS5D T01ARVhBTVBMRS5DT00+SmFuDQogICAgPiAxMyAxNToyNjoxNCBrZGMNCiAgICA+ICAgICA+Pj4+ Pj4+IGtyYjVrZGNbMjBdKGluZm8pOiBUR1NfUkVRICg0IGV0eXBlcyB7MTggMTcgMTYgMjN9KSAx NzIuMzAuMC4zDQogICAgPiAgICAgPj4+Pj4+PiA8aHR0cDovLzE3Mi4zMC4wLjM+OiBJU1NVRTog YXV0aHRpbWUgMTU3ODkyOTE3NCwgZXR5cGVzDQogICAgPiB7cmVwPTE4IHRrdD0xOA0KICAgID4g ICAgID4+Pj4+Pj4gc2VzPTE4fSwgemtjbGllbnQvem9vMUBFWEFNUExFLkNPTSA8em9vMUBFWEFN UExFLkNPTT4gZm9yDQogICAgPiAgICAgPj4+Pj4+PiB6b29rZWVwZXIvem9vMUBFWEFNUExFLkNP TSA8em9vMUBFWEFNUExFLkNPTT4qDQogICAgPiAgICAgPj4+Pj4+Pg0KICAgID4gICAgID4+Pj4+ Pj4gVGhlIGNsaWVudCBzZWN0aW9uIGluIEpBQVMgY29uZmlnIGZpbGUgaXMgc2FtZSBpbiBib3Ro IHRoZQ0KICAgID4gY2FzZXMgYnV0DQogICAgPiAgICAgPj4+Pj4+PiB0aGUgc2VydmVyIGl0IGlz IGxvb2tpbmcgZm9yIGlzIGRpZmZlcmVudCBpbiBib3RoIHRoZSBjYXNlcy4NCiAgICA+ICAgICA+ Pj4+Pj4+IENvdWxkIHNvbWVvbmUgc3VnZ2VzdCB3aHkgdGhlcmUgaXMgYSBkaWZmZXJlbmNlID8N CiAgICA+ICAgICA+Pj4+Pj4+DQogICAgPiAgICAgPj4+Pj4+PiBUaGFua3MNCiAgICA+ICAgICA+ Pj4+Pj4+DQogICAgPiAgICAgPj4+Pj4+Pg0KICAgID4gICAgID4+Pj4+Pj4NCiAgICA+ICAgICA+ Pj4+Pj4+IE9uIE1vbiwgSmFuIDEzLCAyMDIwIGF0IDQ6MTcgUE0gU3phbGF5LUJla8WRIE3DoXTD qSA8DQogICAgPiAgICAgPj4+Pj4+PiBzemFsYXkuYmVrby5tYXRlQGdtYWlsLmNvbT4gd3JvdGU6 DQogICAgPiAgICAgPj4+Pj4+Pg0KICAgID4gICAgID4+Pj4+Pj4+IEFsc28gcGxlYXNlIG5vdGUs IHRoYXQgdGhlDQogICAgPiAgICAgPj4+Pj4+Pj4gJ0NvbmZpZ3VyYXRpb24uZ2V0Q29uZmlndXJh dGlvbigpLnJlZnJlc2goKScgd2lsbCByZWxvYWQgb25seQ0KICAgID4gdGhlDQogICAgPiAgICAg Pj4+Pj4+Pj4gamFhcy5jb25maWcuDQogICAgPiAgICAgPj4+Pj4+Pj4gSWYgeW91IGFsc28gbmVl ZCB0byByZWxvYWQgdGhlIGtlcmJlcm9zIGNsaWVudCBjb25maWcsIHRoZW4NCiAgICA+IHlvdSBj YW4NCiAgICA+ICAgICA+Pj4+Pj4+PiBhZGQgdGhlICJyZWZyZXNoS3JiNUNvbmZpZz10cnVlIiBs aW5lIHRvIHlvdXIgamFhcy5jb25mIGZpbGUuDQogICAgPiBUaGlzIHdpbGwNCiAgICA+ICAgICA+ Pj4+Pj4+PiB0cmlnZ2VyIHRvIHJlbG9hZCB0aGUga3JiLmNmZyBmaWxlIGFzIHdlbGwgaWYgbmVl ZGVkLg0KICAgID4gICAgID4+Pj4+Pj4+DQogICAgPiAgICAgPj4+Pj4+Pj4gSSBhbSBqdXN0IHdv cmtpbmcgb24gYSBQUiB3aGVyZSBJIGhhZCB0byB1c2UgYm90aCBvZiB0aGVzZToNCiAgICA+ICAg ICA+Pj4+Pj4+Pg0KICAgID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS96b29rZWVwZXIvcHVs bC8xMjA0L2ZpbGVzI2RpZmYtMGMwMWQzYzY4YTcxYzY4NzAxZDc3OGNjNTU2YzhlMGENCiAgICA+ ICAgICA+Pj4+Pj4+Pg0KICAgID4gICAgID4+Pj4+Pj4+IENoZWVycywNCiAgICA+ICAgICA+Pj4+ Pj4+PiBNYXRlDQogICAgPiAgICAgPj4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+PiBPbiBUaHUs IEphbiA5LCAyMDIwIGF0IDEwOjAyIFBNIERhbWllbiBEaWVkZXJlbiA8DQogICAgPiAgICAgPj4+ Pj4+Pj4gZGRpZWRlcmVuQHNpbmVub21pbmUubmV0PiB3cm90ZToNCiAgICA+ICAgICA+Pj4+Pj4+ Pg0KICAgID4gICAgID4+Pj4+Pj4+Pg0KICAgID4gICAgID4+Pj4+Pj4+PiBIaSBFbnJpY28sDQog ICAgPiAgICAgPj4+Pj4+Pj4+DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4gVGhlcmUgaXMgYSBtZXRo b2QgdG8gZm9yY2UgSkFBUyB0byByZWxvYWQgdGhlIHN5c3RlbQ0KICAgID4gcHJvcGVydHkuDQog ICAgPiAgICAgPj4+Pj4+Pj4+ID4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPiBTb21ldGhpbmcgbGlr ZSBDb25maWd1cmF0aW9uLmdldENvbmZpZ3VyYXRpb24oKS5yZWZyZXNoKCkNCiAgICA+ICAgICA+ Pj4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gR3JlYXQgdG8ga25vdyEgIFRoYW5rcyENCiAg ICA+ICAgICA+Pj4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPiBZb3UgaGF2ZSB0byBjYWxs IHRoYXQgbWV0aG9kIGFmdGVyIGNoYW5naW5nIHRoZSBzeXN0ZW0NCiAgICA+IHByb3BlcnR5DQog ICAgPiAgICAgPj4+Pj4+Pj4+DQogICAgPiAgICAgPj4+Pj4+Pj4+IENoZWVycywgLUQNCiAgICA+ ICAgICA+Pj4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4N CiAgICA+ICAgICA+Pj4+Pj4+Pj4gPiBJbCBnaW8gOSBnZW4gMjAyMCwgMjA6MDUgRGFtaWVuIERp ZWRlcmVuIDwNCiAgICA+ICAgICA+Pj4+Pj4+Pj4gZGRpZWRlcmVuQHNpbmVub21pbmUubmV0PiBo YQ0KICAgID4gICAgID4+Pj4+Pj4+PiA+IHNjcml0dG86DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4N CiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4gSGkgQXJwaXQs IE3DoXTDqSwNCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4g QXJwaXQgd3JvdGU6DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+DQogICAgPiAgICAgPj4+Pj4+Pj4+ ID4+ID4gVGhlIHNvbHV0aW9uIGlzIHRvIHBhc3MgSkFBUyBmaWxlDQogICAgPiAgICAgPj4+Pj4+ Pj4+ID4+ID4gd2l0aA0KICAgID4gLURqYXZhLnNlY3VyaXR5LmF1dGgubG9naW4uY29uZmlnPS9w YXRoL3RvL2phYXMuY29uZi4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAgICA+ICAgICA+Pj4+ Pj4+Pj4gPj4gT2theeKAlGdvb2QuDQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+DQogICAgPiAgICAg Pj4+Pj4+Pj4+ID4+ID4gVXNpbmcgU3lzdGVtLnNldFByb3BlcnR5IGRvZXMgbm90IHdvcmsgZm9y IG1lLg0KICAgID4gICAgID4+Pj4+Pj4+PiA+Pg0KICAgID4gICAgID4+Pj4+Pj4+PiA+PiBBaCwg SSBzZWUuICBBbmQgSSdtIG5vdCBzdXJwcmlzZWQ7IEkgdGhpbmsgTcOhdMOpIGlzIG9uIHRoZQ0K ICAgID4gcmlnaHQNCiAgICA+ICAgICA+Pj4+Pj4+Pj4gdHJhY2s6DQogICAgPiAgICAgPj4+Pj4+ Pj4+ID4+DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+ID4+IEkgYWxzbyBmYWNlZCB0aGlzIGV4Y2Vw dGlvbiBub3QgbG9uZyBhZ28uIEkgdGhpbmsgaXQNCiAgICA+IGlzIGFuDQogICAgPiAgICAgPj4+ Pj4+Pj4+IGVkZ2UgY2FzZSwNCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4gbW9zdA0KICAgID4gICAg ID4+Pj4+Pj4+PiA+PiA+PiBwcm9iYWJseSB5b3UgaGF2ZSBzb21ldGhpbmcgZWxzZSwgYnV0IHN0 aWxsLi4uIG1heWJlIGl0DQogICAgPiAgICAgPj4+Pj4+Pj4+IGhlbHBzOg0KICAgID4gICAgID4+ Pj4+Pj4+PiA+PiA+Pg0KICAgID4gICAgID4+Pj4+Pj4+PiA+PiA+PiBJIHRyaWVkIHRvIHdyaXRl IGEgdW5pdCB0ZXN0IHdoaWNoIGR5bmFtaWNhbGx5DQogICAgPiBnZW5lcmF0ZWQNCiAgICA+ICAg ICA+Pj4+Pj4+Pj4gbXVsdGlwbGUNCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4gPj4gamFhcy5jb25m IGZpbGVzLiBUaGVuIEkgd2FzIHNldHRpbmcgdGhlDQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+ID4+ IGphdmEuc2VjdXJpdHkuYXV0aC5sb2dpbi5jb25maWcgc3lzdGVtIHByb3BlcnR5IHRvIHRoZQ0K ICAgID4gICAgID4+Pj4+Pj4+PiBjb25maWcgZmlsZSBJDQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+ IG5lZWRlZA0KICAgID4gICAgID4+Pj4+Pj4+PiA+PiA+PiBpbiB0aGUgZ2l2ZW4gdGVzdGNhc2Us IGFuZCB3aGVuIEkgdHJpZWQgdG8gZXN0YWJsaXNoIGENCiAgICA+ICAgICA+Pj4+Pj4+Pj4gWm9v S2VlcGVyDQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+IGNvbm5lY3Rpb24NCiAgICA+ICAgICA+Pj4+ Pj4+Pj4gPj4gPj4gaW4gdGhlIHVuaXQgdGVzdCwgSSBhbHNvIGdvdCB0aGUgc2FtZSBleGNlcHRp b24gdGhhdA0KICAgID4geW91IGdvdC4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4gPj4NCiAgICA+ ICAgICA+Pj4+Pj4+Pj4gPj4gPj4gVGhlIHByb2JsZW0gd2FzLCB0aGF0IHRoZSBzZWN1cml0eSBj b25maWd1cmF0aW9uIGZpbGUgSQ0KICAgID4gICAgID4+Pj4+Pj4+PiByZWZlcnJlZCBpbiB0aGUN CiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4gPj4gamF2YS5zZWN1cml0eS5hdXRoLmxvZ2luLmNvbmZp ZyBzeXN0ZW0gcHJvcGVydHkgZmlsZQ0KICAgID4gd2FzDQogICAgPiAgICAgPj4+Pj4+Pj4+IHJl YWQgb25seSBvbmNlLA0KICAgID4gICAgID4+Pj4+Pj4+PiA+PiA+PiB0aGVuIHN0b3JlZCBpbiBt ZW1vcnkuIEFuZCBpdCBoYXZlbid0IGdvdCByZWxvYWRlZCwNCiAgICA+IGV2ZW4gaWYNCiAgICA+ ICAgICA+Pj4+Pj4+Pj4gdGhlIGZpbGUgKG9yDQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+ID4+IGl0 cyBwYXRoIGluIHRoZSBzeXN0ZW0gcHJvcGVydHkpIGNoYW5nZWQuDQogICAgPiAgICAgPj4+Pj4+ Pj4+ID4+DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+IE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0 aGUgcHJvcGVydHkgaXMgcmVhZCB2ZXJ5IGVhcmx5DQogICAgPiBhZnRlcg0KICAgID4gICAgID4+ Pj4+Pj4+PiAiVk0gYm9vdCINCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4gKHRoZSBmaXJzdCB0aW1l IGFueSBjbGFzcyB0cmllcyB0byBhY2Nlc3MgdGhlDQogICAgPiAgICAgPj4+Pj4+Pj4+IGphdmEu c2VjdXJpdHkuUHJvdmlkZXIpOg0KICAgID4gICAgID4+Pj4+Pj4+PiA+PiB0aGUgcmVzb3VyY2Ug aXQgcG9pbnRzIHRvIGlzIHBhcnNlZCBhdCB0aGF0IHBvaW50LCBhbmQgdGhlDQogICAgPiAgICAg Pj4+Pj4+Pj4+IHByb3BlcnR5DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+ICJuZXZlciIgY2hlY2tl ZCBhZ2Fpbi4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4g KEl0ICptYXkqIGJlIHBvc3NpYmxlIHRvIGZsdXNoIHRoZSAiU3BpIiBvciBzb21ldGhpbmcsDQog ICAgPiBidXQgaXQncw0KICAgID4gICAgID4+Pj4+Pj4+PiBjbGVhcmx5DQogICAgPiAgICAgPj4+ Pj4+Pj4+ID4+IG5vdCB0aGUga2luZCBvZiB1c2FnZSBpdCB3YXMgZGVzaWduZWQgZm9yLikNCiAg ICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4gPj4gTWF5YmUgdGhl IGJlc3QgaW4gdGhpcyBjYXNlIGlzIHRvDQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+ID4+IHNwZWNp Znkgc2VwYXJhdGUgSkFBUyBjb25maWcgc2VjdGlvbnMgZm9yIGVhY2ggdGVzdHMNCiAgICA+IGFu ZCB1c2UNCiAgICA+ICAgICA+Pj4+Pj4+Pj4gYSBzaW5nbGUNCiAgICA+ICAgICA+Pj4+Pj4+Pj4g Pj4gPj4gSkFBUy5jb25mIGZpbGUgcGVyIEpWTS4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAg ICA+ICAgICA+Pj4+Pj4+Pj4gPj4gVGhhdCdzIHByb2JhYmx5IHRoZSBlYXNpZXN0IGlmIHRoZSBz ZXQgaXMgZW51bWVyYWJsZS4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAgICA+ICAgICA+Pj4+ Pj4+Pj4gPj4gIlJlYWwgZHluYW1pc20iIG1pZ2h0IHJlcXVpcmUgb3ZlcnJpZGluZyB0aGUgIlNw aSIgb3INCiAgICA+ICAgICA+Pj4+Pj4+Pj4gIlByb3ZpZGVyLCIgYnV0DQogICAgPiAgICAgPj4+ Pj4+Pj4+ID4+IHRoYXQncyBwcm9iYWJseSBvdmVya2lsbCBmb3IgYSBmZXcgdGVzdHMuDQogICAg PiAgICAgPj4+Pj4+Pj4+ID4+DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+IChOb3cgdGhhdCBJIHRo aW5rIG9mIGl04oCmIG91ciB0ZXN0cyBhcmUgYWxyZWFkeSBydW4gdW5kZXINCiAgICA+IHRoZQ0K ICAgID4gICAgID4+Pj4+Pj4+PiBKTW9ja2l0DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+IGFnZW50 LCBzbyBsaXZlLXBhdGNoaW5nIEpBQVMgbWV0aG9kcyB1c2luZyBtb2NraXQuTW9ja1VwDQogICAg PiBtaWdodA0KICAgID4gICAgID4+Pj4+Pj4+PiBiZQ0KICAgID4gICAgID4+Pj4+Pj4+PiA+PiBh bm90aGVyIG9wdGlvbiA6KQ0KICAgID4gICAgID4+Pj4+Pj4+PiA+Pg0KICAgID4gICAgID4+Pj4+ Pj4+PiA+PiBBbnl3YXkuICBJdCBsb29rcyBsaWtlIHNldHRpbmcgdGhlIHByb3BlcnR5IGV4dGVy bmFsbHkNCiAgICA+IHdvcmtlZA0KICAgID4gICAgID4+Pj4+Pj4+PiBmb3IgQXJwaXQuDQogICAg PiAgICAgPj4+Pj4+Pj4+ID4+DQogICAgPiAgICAgPj4+Pj4+Pj4+ID4+IENoZWVycywgLUQNCiAg ICA+ICAgICA+Pj4+Pj4+Pj4gPj4NCiAgICA+ICAgICA+Pj4+Pj4+Pj4NCiAgICA+ICAgICA+Pj4+ Pj4+Pg0KICAgID4NCiAgICA+DQogICAgPg0KICAgID4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCiAgICA+DQogICAgPiBDT05GSURFTlRJQUxJVFkgJiBQUklWQUNZIE5PVElDRQ0K ICAgID4gVGhpcyBlLW1haWwgKGluY2x1ZGluZyBhbnkgYXR0YWNobWVudHMpIGlzIHN0cmljdGx5 IGNvbmZpZGVudGlhbCBhbmQgbWF5DQogICAgPiBhbHNvIGNvbnRhaW4gcHJpdmlsZWdlZCBpbmZv cm1hdGlvbi4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudA0KICAgID4geW91 IGFyZSBub3QgYXV0aG9yaXNlZCB0byByZWFkLCBwcmludCwgc2F2ZSwgcHJvY2VzcyBvciBkaXNj bG9zZSB0aGlzDQogICAgPiBtZXNzYWdlLiBJZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIG1lc3Nh Z2UgYnkgbWlzdGFrZSwgcGxlYXNlIGluZm9ybSB0aGUNCiAgICA+IHNlbmRlciBpbW1lZGlhdGVs eSBhbmQgZGVzdHJveSB0aGlzIGUtbWFpbCwgaXRzIGF0dGFjaG1lbnRzIGFuZCBhbnkgY29waWVz Lg0KICAgID4gQW55IHVzZSwgZGlzdHJpYnV0aW9uLCByZXByb2R1Y3Rpb24gb3IgZGlzY2xvc3Vy ZSBieSBhbnkgcGVyc29uIG90aGVyIHRoYW4NCiAgICA+IHRoZSBpbnRlbmRlZCByZWNpcGllbnQg aXMgc3RyaWN0bHkgcHJvaGliaXRlZCBhbmQgdGhlIHBlcnNvbiByZXNwb25zaWJsZQ0KICAgID4g bWF5IGluY3VyIGluIHBlbmFsdGllcy4NCiAgICA+IFRoZSB1c2Ugb2YgdGhpcyBlLW1haWwgaXMg b25seSBmb3IgcHJvZmVzc2lvbmFsIHB1cnBvc2VzOyB0aGVyZSBpcyBubw0KICAgID4gZ3VhcmFu dGVlIHRoYXQgdGhlIGNvcnJlc3BvbmRlbmNlIHRvd2FyZHMgdGhpcyBlLW1haWwgd2lsbCBiZSBy ZWFkIG9ubHkgYnkNCiAgICA+IHRoZSByZWNpcGllbnQsIGJlY2F1c2UsIHVuZGVyIGNlcnRhaW4g Y2lyY3Vtc3RhbmNlcywgdGhlcmUgbWF5IGJlIGEgbmVlZCB0bw0KICAgID4gYWNjZXNzIHRoaXMg ZW1haWwgYnkgdGhpcmQgc3ViamVjdHMgYmVsb25naW5nIHRvIHRoZSBDb21wYW55Lg0KICAgID4N Cg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQoNCkNPTkZJREVOVElBTElU WSAmIFBSSVZBQ1kgTk9USUNFDQpUaGlzIGUtbWFpbCAoaW5jbHVkaW5nIGFueSBhdHRhY2htZW50 cykgaXMgc3RyaWN0bHkgY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBjb250YWluIHByaXZpbGVn ZWQgaW5mb3JtYXRpb24uIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQgeW91 IGFyZSBub3QgYXV0aG9yaXNlZCB0byByZWFkLCBwcmludCwgc2F2ZSwgcHJvY2VzcyBvciBkaXNj bG9zZSB0aGlzIG1lc3NhZ2UuIElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgbWVzc2FnZSBieSBt aXN0YWtlLCBwbGVhc2UgaW5mb3JtIHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRlc3Ryb3kg dGhpcyBlLW1haWwsIGl0cyBhdHRhY2htZW50cyBhbmQgYW55IGNvcGllcy4gQW55IHVzZSwgZGlz dHJpYnV0aW9uLCByZXByb2R1Y3Rpb24gb3IgZGlzY2xvc3VyZSBieSBhbnkgcGVyc29uIG90aGVy IHRoYW4gdGhlIGludGVuZGVkIHJlY2lwaWVudCBpcyBzdHJpY3RseSBwcm9oaWJpdGVkIGFuZCB0 aGUgcGVyc29uIHJlc3BvbnNpYmxlIG1heSBpbmN1ciBpbiBwZW5hbHRpZXMuDQpUaGUgdXNlIG9m IHRoaXMgZS1tYWlsIGlzIG9ubHkgZm9yIHByb2Zlc3Npb25hbCBwdXJwb3NlczsgdGhlcmUgaXMg bm8gZ3VhcmFudGVlIHRoYXQgdGhlIGNvcnJlc3BvbmRlbmNlIHRvd2FyZHMgdGhpcyBlLW1haWwg d2lsbCBiZSByZWFkIG9ubHkgYnkgdGhlIHJlY2lwaWVudCwgYmVjYXVzZSwgdW5kZXIgY2VydGFp biBjaXJjdW1zdGFuY2VzLCB0aGVyZSBtYXkgYmUgYSBuZWVkIHRvIGFjY2VzcyB0aGlzIGVtYWls IGJ5IHRoaXJkIHN1YmplY3RzIGJlbG9uZ2luZyB0byB0aGUgQ29tcGFueS4NCg==