Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4FD53200BAE for ; Fri, 28 Oct 2016 10:19:09 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4E6F2160AE3; Fri, 28 Oct 2016 08:19:09 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 1B71A160ADD for ; Fri, 28 Oct 2016 10:19:07 +0200 (CEST) Received: (qmail 74225 invoked by uid 500); 28 Oct 2016 08:19:07 -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 74214 invoked by uid 99); 28 Oct 2016 08:19:06 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Oct 2016 08:19:06 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 5C4451A0066 for ; Fri, 28 Oct 2016 08:19:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -2.321 X-Spam-Level: X-Spam-Status: No, score=-2.321 tagged_above=-999 required=6.31 tests=[RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id fxqSm9tPwqYR for ; Fri, 28 Oct 2016 08:19:03 +0000 (UTC) Received: from mail0.iggroup.com (mail0.iggroup.com [195.234.39.199]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 603725F4EB for ; Fri, 28 Oct 2016 08:19:02 +0000 (UTC) Received: from ukvmprdvon601.igi.ig.local (HELO LMPRDEXC142.IGI.IG.LOCAL) ([172.27.11.142]) by lrprdirn001-int.igi.ig.local with ESMTP/TLS/AES256-SHA256; 28 Oct 2016 09:17:36 +0100 Received: from BMPRDEXC141.igi.ig.local (172.24.11.71) by LMPRDEXC142.IGI.IG.LOCAL (172.27.11.72) with Microsoft SMTP Server (TLS) id 15.0.1156.6; Fri, 28 Oct 2016 09:17:36 +0100 Received: from BMPRDEXC141.igi.ig.local ([fe80::ecc3:fe0c:af0e:e682]) by BMPRDEXC141.IGI.IG.LOCAL ([fe80::ecc3:fe0c:af0e:e682%14]) with mapi id 15.00.1156.000; Fri, 28 Oct 2016 09:17:36 +0100 From: William Hargrove To: "user@zookeeper.apache.org" Subject: RE: Zookeeper fails to connect in cluster while using DNS Thread-Topic: Zookeeper fails to connect in cluster while using DNS Thread-Index: AQHSMAmbyEDumdN0oUuCUBrgqkROLaC9dWOAgAAR+YA= Date: Fri, 28 Oct 2016 08:17:35 +0000 Message-ID: <1c8bc8f462b1431b97a1a95dfe9e8191@BMPRDEXC141.IGI.IG.LOCAL> References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [192.168.244.15] x-ig-disclaimer: IG-Disclaimer-Set Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected archived-at: Fri, 28 Oct 2016 08:19:09 -0000 VW5zdWJzY3JpYmUNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFByZWV0aSBC aGF0IFttYWlsdG86cHJlZXRpLmJoYXRAc2hvcmVncnAuY29tXQ0KU2VudDogMjggT2N0b2JlciAy MDE2IDA5OjEzDQpUbzogdXNlckB6b29rZWVwZXIuYXBhY2hlLm9yZw0KU3ViamVjdDogUkU6IFpv b2tlZXBlciBmYWlscyB0byBjb25uZWN0IGluIGNsdXN0ZXIgd2hpbGUgdXNpbmcgRE5TDQoNCkhp IE1pY2hhZWwsDQoNClRoZSBjbGllbnQgc2lkZSBsb2cgaXMgYXMgYmVsb3cuIEZvciBSb3V0ZSBT Mywgd2UgaGF2ZSBhc3NvY2lhdGVkIHNpbmdsZSBJUCB0byBzaW5nbGUgRE5TLg0KDQpqYXZhLnV0 aWwuY29uY3VycmVudC5UaW1lb3V0RXhjZXB0aW9uOiBDb3VsZCBub3QgY29ubmVjdCB0byBab29L ZWVwZXIgeHh4Lnh4eC54eHh4LmNvbTo4MCwgeHh4Lnh4eC54eHh4LmNvbTo4MCB3aXRoaW4gMzAw MDAgbXMNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zb2xyLmNvbW1vbi5jbG91ZC5Tb2xyWmtDbGll bnQuPGluaXQ+KFNvbHJaa0NsaWVudC5qYXZhOjE4MSkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5z b2xyLmNvbW1vbi5jbG91ZC5Tb2xyWmtDbGllbnQuPGluaXQ+KFNvbHJaa0NsaWVudC5qYXZhOjEx NSkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zb2xyLmNvbW1vbi5jbG91ZC5Tb2xyWmtDbGllbnQu PGluaXQ+KFNvbHJaa0NsaWVudC5qYXZhOjEwNSkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5zb2xy LmNsb3VkLlprQ0xJLm1haW4oWmtDTEkuamF2YToxODgpDQpDYXVzZWQgYnk6IGphdmEudXRpbC5j b25jdXJyZW50LlRpbWVvdXRFeGNlcHRpb246IENvdWxkIG5vdCBjb25uZWN0IHRvIFpvb0tlZXBl ciB4eHgueHh4Lnh4eHguY29tOjgwLCB4eHgueHh4Lnh4eHguY29tOjgwIHdpdGhpbiAzMDAwMCBt cw0KICAgICAgICBhdCBvcmcuYXBhY2hlLnNvbHIuY29tbW9uLmNsb3VkLkNvbm5lY3Rpb25NYW5h Z2VyLndhaXRGb3JDb25uZWN0ZWQoQ29ubmVjdGlvbk1hbmFnZXIuamF2YToyMzUpDQogICAgICAg IGF0IG9yZy5hcGFjaGUuc29sci5jb21tb24uY2xvdWQuU29sclprQ2xpZW50Ljxpbml0PihTb2xy WmtDbGllbnQuamF2YToxNzMpDQogICAgICAgIC4uLiAzIG1vcmUNCg0KVGhhbmtzIGFuZCBSZWdh cmRzLA0KUHJlZXRpIEJoYXQNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IE1p Y2hhZWwgSGFuIFttYWlsdG86aGFubUBjbG91ZGVyYS5jb21dDQpTZW50OiBUaHVyc2RheSwgT2N0 b2JlciAyNywgMjAxNiA5OjUxIEFNDQpUbzogVXNlclpvb0tlZXBlcg0KU3ViamVjdDogUmU6IFpv b2tlZXBlciBmYWlscyB0byBjb25uZWN0IGluIGNsdXN0ZXIgd2hpbGUgdXNpbmcgRE5TDQoNClRo aXMgbG9va3MgbGlrZSBzZXJ2ZXIgbG9ncyAtIHNpbmNlIHRoZSBwcm9ibGVtIGlzIFpLIGNsaWVu dCBmYWlsIHRvIGNvbm5lY3QgdG8gc2VydmVyLCBjb3VsZCB5b3UgYWxzbyBwb3N0IGNsaWVudCBs b2dzPw0KDQpGb3Igcm91dGUgNTMsIGlmIHlvdSBhc3NvY2lhdGUgbXVsdGlwbGUgSVAgYWRkcmVz c2VzIHRvIGEgc2luZ2xlIEROUyBuYW1lIGNvbmZpZ3VyZWQgaW4gWksgZW5zZW1ibGUgYW5kIGZv ciBzb21lIHJlYXNvbnMgb25lIG9mIHRoZSBJUCBhZGRyZXNzIGRvZXMgbm90IGhhdmUgWksgc2Vy dmVyIHByb2Nlc3MgcnVubmluZywgaXQgY291bGQgbGVhZCB0byBjbGllbnQgZmFpbCB0byBjb25u ZWN0LCBidXQgSSBhbSBub3Qgc3VyZSBpZiB0aGF0IGlzIHlvdXIgY2FzZS4NCg0KT24gV2VkLCBP Y3QgMjYsIDIwMTYgYXQgNjoyNCBBTSwgUHJlZXRpIEJoYXQgPHByZWV0aS5iaGF0QHNob3JlZ3Jw LmNvbT4NCndyb3RlOg0KDQo+IEhpIEFsbCwNCj4NCj4gSSBhbSBnZXR0aW5nIHRoZSBiZWxvdyBt ZXNzYWdlcyB3aGlsZSB0cnlpbmcgdG8gZm9ybSB0aGUgem9va2VlcGVyDQo+IGNsdXN0ZXIgaW4g em9va2VlcGVyLm91dCBmaWxlLiBUaGUgem9va2VlcGVyIGlzIHNldHVwIGluIEFXUyBFQzIgUkhF TA0KPiBsaW51eCBzZXJ2ZXJzLiBUaGUgY29uZmlndXJhdGlvbiB3b3JrcyB3aGVuIHdlIGFyZSB0 cnlpbmcgdG8gUHVibGljDQo+IEROUyBvZiBBV1MsIGJ1dCB3aGVuIHRyeWluZyB0byB1c2UgdGhl IHNwZWNpZmljIEROUyBjcmVhdGVkIGZvciB0aGVzZQ0KPiBpbnN0YW5jZXMgdXNpbmcNCj4gUm91 dGVTMyB3ZSBhcmUgZ2V0dGluZyB0aGUgYmVsb3cgZXJyb3IuDQo+IEkgaGF2ZSB0cmllZCBzdG9w cGluZyB0aGUgc2VydmVycywgY2xlYXJpbmcgb3V0IHZlcnNpb24tMiBmb2xkZXIgYW5kDQo+IHJl c3RhcnRpbmcgd2l0aCBubyByZXN1bHQuDQo+IFRoZSBETlMgZm9yIHRoZSBzcGVjaWZpYyBzZXJ2 ZXIgaXMgYWRkZWQgdG8gL2V0Yy9ob3N0cyBmaWxlIGFzIHdlbGwuDQo+IENvdWxkIHNvbWVvbmUg cGxlYXNlIGFkdmlzZSBvbiB0aGlzLg0KPg0KPg0KPiAyMDE2LTEwLTI2IDA5OjAzOjA5LDk5MSBb bXlpZDpdIC0gSU5GTyAgW21haW46UXVvcnVtUGVlckNvbmZpZ0AxMDNdIC0NCj4gUmVhZGluZyBj b25maWd1cmF0aW9uIGZyb206IC9yb290L3pvb2tlZXBlci0zLjQuOC9iaW4vLi4vY29uZi96b28u Y2ZnDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMDU0IFtteWlkOl0gLSBJTkZPICBbbWFpbjpRdW9y dW1QZWVyQ29uZmlnQDMzMV0gLQ0KPiBEZWZhdWx0aW5nIHRvIG1ham9yaXR5IHF1b3J1bXMNCj4g MjAxNi0xMC0yNiAwOTowMzoxMCwwNTcgW215aWQ6Ml0gLSBJTkZPDQo+IFttYWluOkRhdGFkaXJD bGVhbnVwTWFuYWdlckA3OF0NCj4gLSBhdXRvcHVyZ2Uuc25hcFJldGFpbkNvdW50IHNldCB0byAz DQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMDU3IFtteWlkOjJdIC0gSU5GTw0KPiBbbWFpbjpEYXRh ZGlyQ2xlYW51cE1hbmFnZXJANzldDQo+IC0gYXV0b3B1cmdlLnB1cmdlSW50ZXJ2YWwgc2V0IHRv IDANCj4gMjAxNi0xMC0yNiAwOTowMzoxMCwwNTcgW215aWQ6Ml0gLSBJTkZPDQo+IFttYWluOkRh dGFkaXJDbGVhbnVwTWFuYWdlckAxMDFdDQo+IC0gUHVyZ2UgdGFzayBpcyBub3Qgc2NoZWR1bGVk Lg0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDA2NyBbbXlpZDoyXSAtIElORk8gIFttYWluOlF1b3J1 bVBlZXJNYWluQDEyN10gLQ0KPiBTdGFydGluZyBxdW9ydW0gcGVlcg0KPiAyMDE2LTEwLTI2IDA5 OjAzOjEwLDA3OCBbbXlpZDoyXSAtIElORk8gW21haW46TklPU2VydmVyQ254bkZhY3RvcnlAODld DQo+IC0gYmluZGluZyB0byBwb3J0IDAuMC4wLjAvMC4wLjAuMDo4MA0KPiAyMDE2LTEwLTI2IDA5 OjAzOjEwLDA4NSBbbXlpZDoyXSAtIElORk8gIFttYWluOlF1b3J1bVBlZXJAMTAxOV0gLQ0KPiB0 aWNrVGltZSBzZXQgdG8gNDAwMDANCj4gMjAxNi0xMC0yNiAwOTowMzoxMCwwODUgW215aWQ6Ml0g LSBJTkZPICBbbWFpbjpRdW9ydW1QZWVyQDEwMzldIC0NCj4gbWluU2Vzc2lvblRpbWVvdXQgc2V0 IHRvIDEyMDAwMA0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDA4NSBbbXlpZDoyXSAtIElORk8gIFtt YWluOlF1b3J1bVBlZXJAMTA1MF0gLQ0KPiBtYXhTZXNzaW9uVGltZW91dCBzZXQgdG8gMjQwMDAw DQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMDg1IFtteWlkOjJdIC0gSU5GTyAgW21haW46UXVvcnVt UGVlckAxMDY1XSAtDQo+IGluaXRMaW1pdCBzZXQgdG8gMTANCj4gMjAxNi0xMC0yNiAwOTowMzox MCwwOTkgW215aWQ6Ml0gLSBJTkZPICBbTGlzdGVuZXJUaHJlYWQ6DQo+IFF1b3J1bUNueE1hbmFn ZXIkTGlzdGVuZXJANTM0XSAtIE15IGVsZWN0aW9uIGJpbmQgcG9ydDoNCj4geHh4LmNvbS8xMjcu MC4wLjE6Mzg4OA0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDEwOCBbbXlpZDoyXSAtIElORk8gIFtR dW9ydW1QZWVyW215aWQ9Ml0vMDowOjA6MDowOg0KPiAwOjA6MDo4MDpRdW9ydW1QZWVyQDc3NF0g LSBMT09LSU5HDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMTA5IFtteWlkOjJdIC0gSU5GTyAgW1F1 b3J1bVBlZXJbbXlpZD0yXS8wOjA6MDowOjA6DQo+IDA6MDowOjgwOkZhc3RMZWFkZXJFbGVjdGlv bkA4MThdIC0gTmV3IGVsZWN0aW9uLiBNeSBpZCA9ICAyLCBwcm9wb3NlZA0KPiB6eGlkPTB4MA0K PiAyMDE2LTEwLTI2IDA5OjAzOjEwLDExNiBbbXlpZDoyXSAtIElORk8gIFtXb3JrZXJSZWNlaXZl cltteWlkPTJdOg0KPiBGYXN0TGVhZGVyRWxlY3Rpb25ANjAwXSAtIE5vdGlmaWNhdGlvbjogMSAo bWVzc2FnZSBmb3JtYXQgdmVyc2lvbiksIDINCj4gKG4ubGVhZGVyKSwgMHgwIChuLnp4aWQpLCAw eDEgKG4ucm91bmQpLCBMT09LSU5HIChuLnN0YXRlKSwgMiAobi5zaWQpLA0KPiAweDANCj4gKG4u cGVlckVwb2NoKSBMT09LSU5HIChteSBzdGF0ZSkNCj4gMjAxNi0xMC0yNiAwOTowMzoxMCwxMTYg W215aWQ6Ml0gLSBJTkZPICBbV29ya2VyU2VuZGVyW215aWQ9Ml06DQo+IFF1b3J1bUNueE1hbmFn ZXJAMTk5XSAtIEhhdmUgc21hbGxlciBzZXJ2ZXIgaWRlbnRpZmllciwgc28gZHJvcHBpbmcNCj4g dGhlDQo+IGNvbm5lY3Rpb246ICgzLCAyKQ0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDExNyBbbXlp ZDoyXSAtIFdBUk4gIFtSZWN2V29ya2VyOjE6DQo+IFF1b3J1bUNueE1hbmFnZXIkUmVjdldvcmtl ckA4MTBdIC0gQ29ubmVjdGlvbiBicm9rZW4gZm9yIGlkIDEsIG15IGlkID0NCj4gMiwgZXJyb3Ig PSBqYXZhLmlvLkVPRkV4Y2VwdGlvbg0KPiAgICAgICAgIGF0IGphdmEuaW8uRGF0YUlucHV0U3Ry ZWFtLnJlYWRJbnQoRGF0YUlucHV0U3RyZWFtLmphdmE6MzkyKQ0KPiAgICAgICAgIGF0IG9yZy5h cGFjaGUuem9va2VlcGVyLnNlcnZlci5xdW9ydW0uUXVvcnVtQ254TWFuYWdlciQNCj4gUmVjdldv cmtlci5ydW4oUXVvcnVtQ254TWFuYWdlci5qYXZhOjc5NSkNCj4gMjAxNi0xMC0yNiAwOTowMzox MCwxMTcgW215aWQ6Ml0gLSBJTkZPICBbV29ya2VyU2VuZGVyW215aWQ9Ml06DQo+IFF1b3J1bUNu eE1hbmFnZXJAMTk5XSAtIEhhdmUgc21hbGxlciBzZXJ2ZXIgaWRlbnRpZmllciwgc28gZHJvcHBp bmcNCj4gdGhlDQo+IGNvbm5lY3Rpb246ICg0LCAyKQ0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDEx OCBbbXlpZDoyXSAtIFdBUk4gIFtSZWN2V29ya2VyOjE6DQo+IFF1b3J1bUNueE1hbmFnZXIkUmVj dldvcmtlckA4MTNdIC0gSW50ZXJydXB0aW5nIFNlbmRXb3JrZXINCj4gMjAxNi0xMC0yNiAwOTow MzoxMCwxMTkgW215aWQ6Ml0gLSBXQVJOICBbU2VuZFdvcmtlcjoxOg0KPiBRdW9ydW1DbnhNYW5h Z2VyJFNlbmRXb3JrZXJANzI3XSAtIEludGVycnVwdGVkIHdoaWxlIHdhaXRpbmcgZm9yDQo+IG1l c3NhZ2Ugb24gcXVldWUgamF2YS5sYW5nLkludGVycnVwdGVkRXhjZXB0aW9uDQo+ICAgICAgICAg YXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIk DQo+IENvbmRpdGlvbk9iamVjdC5yZXBvcnRJbnRlcnJ1cHRBZnRlcldhaXQoQWJzdHJhY3RRdWV1 ZWRTeW5jaHJvbml6ZXIuDQo+IGphdmE6MjAxNCkNCj4gICAgICAgICBhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciQNCj4gQ29uZGl0aW9uT2Jq ZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDg4KQ0KPiAg ICAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkFycmF5QmxvY2tpbmdRdWV1ZS5wb2xsKA0K PiBBcnJheUJsb2NraW5nUXVldWUuamF2YTo0MTgpDQo+ICAgICAgICAgYXQgb3JnLmFwYWNoZS56 b29rZWVwZXIuc2VydmVyLnF1b3J1bS5RdW9ydW1DbnhNYW5hZ2VyLg0KPiBwb2xsU2VuZFF1ZXVl KFF1b3J1bUNueE1hbmFnZXIuamF2YTo4NzkpDQo+ICAgICAgICAgYXQgb3JnLmFwYWNoZS56b29r ZWVwZXIuc2VydmVyLnF1b3J1bS5RdW9ydW1DbnhNYW5hZ2VyLg0KPiBhY2Nlc3MkNTAwKFF1b3J1 bUNueE1hbmFnZXIuamF2YTo2NSkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLnpvb2tlZXBlci5z ZXJ2ZXIucXVvcnVtLlF1b3J1bUNueE1hbmFnZXIkDQo+IFNlbmRXb3JrZXIucnVuKFF1b3J1bUNu eE1hbmFnZXIuamF2YTo3MTUpDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMTE5IFtteWlkOjJdIC0g V0FSTiAgW1NlbmRXb3JrZXI6MToNCj4gUXVvcnVtQ254TWFuYWdlciRTZW5kV29ya2VyQDczNl0g LSBTZW5kIHdvcmtlciBsZWF2aW5nIHRocmVhZA0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDEyMCBb bXlpZDoyXSAtIElORk8gIFtXb3JrZXJTZW5kZXJbbXlpZD0yXToNCj4gUXVvcnVtQ254TWFuYWdl ckAxOTldIC0gSGF2ZSBzbWFsbGVyIHNlcnZlciBpZGVudGlmaWVyLCBzbyBkcm9wcGluZw0KPiB0 aGUNCj4gY29ubmVjdGlvbjogKDUsIDIpDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMzE4IFtteWlk OjJdIC0gSU5GTyAgW1F1b3J1bVBlZXJbbXlpZD0yXS8wOjA6MDowOjA6DQo+IDA6MDowOjgwOkZh c3RMZWFkZXJFbGVjdGlvbkA4NTJdIC0gTm90aWZpY2F0aW9uIHRpbWUgb3V0OiA0MDANCj4gMjAx Ni0xMC0yNiAwOTowMzoxMCwzMjAgW215aWQ6Ml0gLSBJTkZPICBbV29ya2VyUmVjZWl2ZXJbbXlp ZD0yXToNCj4gRmFzdExlYWRlckVsZWN0aW9uQDYwMF0gLSBOb3RpZmljYXRpb246IDEgKG1lc3Nh Z2UgZm9ybWF0IHZlcnNpb24pLCAyDQo+IChuLmxlYWRlciksIDB4MCAobi56eGlkKSwgMHgxIChu LnJvdW5kKSwgTE9PS0lORyAobi5zdGF0ZSksIDIgKG4uc2lkKSwNCj4gMHgwDQo+IChuLnBlZXJF cG9jaCkgTE9PS0lORyAobXkgc3RhdGUpDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMzIxIFtteWlk OjJdIC0gSU5GTyAgW1dvcmtlclNlbmRlcltteWlkPTJdOg0KPiBRdW9ydW1DbnhNYW5hZ2VyQDE5 OV0gLSBIYXZlIHNtYWxsZXIgc2VydmVyIGlkZW50aWZpZXIsIHNvIGRyb3BwaW5nDQo+IHRoZQ0K PiBjb25uZWN0aW9uOiAoMywgMikNCj4gMjAxNi0xMC0yNiAwOTowMzoxMCwzMjEgW215aWQ6Ml0g LSBXQVJOICBbUmVjdldvcmtlcjoxOg0KPiBRdW9ydW1DbnhNYW5hZ2VyJFJlY3ZXb3JrZXJAODEw XSAtIENvbm5lY3Rpb24gYnJva2VuIGZvciBpZCAxLCBteSBpZCA9DQo+IDIsIGVycm9yID0gamF2 YS5pby5FT0ZFeGNlcHRpb24NCj4gICAgICAgICBhdCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbS5y ZWFkSW50KERhdGFJbnB1dFN0cmVhbS5qYXZhOjM5MikNCj4gICAgICAgICBhdCBvcmcuYXBhY2hl Lnpvb2tlZXBlci5zZXJ2ZXIucXVvcnVtLlF1b3J1bUNueE1hbmFnZXIkDQo+IFJlY3ZXb3JrZXIu cnVuKFF1b3J1bUNueE1hbmFnZXIuamF2YTo3OTUpDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMzIx IFtteWlkOjJdIC0gV0FSTiAgW1JlY3ZXb3JrZXI6MToNCj4gUXVvcnVtQ254TWFuYWdlciRSZWN2 V29ya2VyQDgxM10gLSBJbnRlcnJ1cHRpbmcgU2VuZFdvcmtlcg0KPiAyMDE2LTEwLTI2IDA5OjAz OjEwLDMyMSBbbXlpZDoyXSAtIFdBUk4gIFtTZW5kV29ya2VyOjE6DQo+IFF1b3J1bUNueE1hbmFn ZXIkU2VuZFdvcmtlckA3MjddIC0gSW50ZXJydXB0ZWQgd2hpbGUgd2FpdGluZyBmb3INCj4gbWVz c2FnZSBvbiBxdWV1ZSBqYXZhLmxhbmcuSW50ZXJydXB0ZWRFeGNlcHRpb24NCj4gICAgICAgICBh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciQN Cj4gQ29uZGl0aW9uT2JqZWN0LnJlcG9ydEludGVycnVwdEFmdGVyV2FpdChBYnN0cmFjdFF1ZXVl ZFN5bmNocm9uaXplci4NCj4gamF2YToyMDE0KQ0KPiAgICAgICAgIGF0IGphdmEudXRpbC5jb25j dXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJA0KPiBDb25kaXRpb25PYmpl Y3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwODgpDQo+ICAg ICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuQXJyYXlCbG9ja2luZ1F1ZXVlLnBvbGwoDQo+ IEFycmF5QmxvY2tpbmdRdWV1ZS5qYXZhOjQxOCkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLnpv b2tlZXBlci5zZXJ2ZXIucXVvcnVtLlF1b3J1bUNueE1hbmFnZXIuDQo+IHBvbGxTZW5kUXVldWUo UXVvcnVtQ254TWFuYWdlci5qYXZhOjg3OSkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLnpvb2tl ZXBlci5zZXJ2ZXIucXVvcnVtLlF1b3J1bUNueE1hbmFnZXIuDQo+IGFjY2VzcyQ1MDAoUXVvcnVt Q254TWFuYWdlci5qYXZhOjY1KQ0KPiAgICAgICAgIGF0IG9yZy5hcGFjaGUuem9va2VlcGVyLnNl cnZlci5xdW9ydW0uUXVvcnVtQ254TWFuYWdlciQNCj4gU2VuZFdvcmtlci5ydW4oUXVvcnVtQ254 TWFuYWdlci5qYXZhOjcxNSkNCj4gMjAxNi0xMC0yNiAwOTowMzoxMCwzMjEgW215aWQ6Ml0gLSBX QVJOICBbU2VuZFdvcmtlcjoxOg0KPiBRdW9ydW1DbnhNYW5hZ2VyJFNlbmRXb3JrZXJANzM2XSAt IFNlbmQgd29ya2VyIGxlYXZpbmcgdGhyZWFkDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsMzIyIFtt eWlkOjJdIC0gSU5GTyAgW1dvcmtlclNlbmRlcltteWlkPTJdOg0KPiBRdW9ydW1DbnhNYW5hZ2Vy QDE5OV0gLSBIYXZlIHNtYWxsZXIgc2VydmVyIGlkZW50aWZpZXIsIHNvIGRyb3BwaW5nDQo+IHRo ZQ0KPiBjb25uZWN0aW9uOiAoNCwgMikNCj4gMjAxNi0xMC0yNiAwOTowMzoxMCwzMjIgW215aWQ6 Ml0gLSBJTkZPICBbV29ya2VyU2VuZGVyW215aWQ9Ml06DQo+IFF1b3J1bUNueE1hbmFnZXJAMTk5 XSAtIEhhdmUgc21hbGxlciBzZXJ2ZXIgaWRlbnRpZmllciwgc28gZHJvcHBpbmcNCj4gdGhlDQo+ IGNvbm5lY3Rpb246ICg1LCAyKQ0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDcyMCBbbXlpZDoyXSAt IElORk8gIFtRdW9ydW1QZWVyW215aWQ9Ml0vMDowOjA6MDowOg0KPiAwOjA6MDo4MDpGYXN0TGVh ZGVyRWxlY3Rpb25AODUyXSAtIE5vdGlmaWNhdGlvbiB0aW1lIG91dDogODAwDQo+IDIwMTYtMTAt MjYgMDk6MDM6MTAsNzIyIFtteWlkOjJdIC0gSU5GTyAgW1dvcmtlclJlY2VpdmVyW215aWQ9Ml06 DQo+IEZhc3RMZWFkZXJFbGVjdGlvbkA2MDBdIC0gTm90aWZpY2F0aW9uOiAxIChtZXNzYWdlIGZv cm1hdCB2ZXJzaW9uKSwgMg0KPiAobi5sZWFkZXIpLCAweDAgKG4uenhpZCksIDB4MSAobi5yb3Vu ZCksIExPT0tJTkcgKG4uc3RhdGUpLCAyIChuLnNpZCksDQo+IDB4MA0KPiAobi5wZWVyRXBvY2gp IExPT0tJTkcgKG15IHN0YXRlKQ0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDcyMiBbbXlpZDoyXSAt IFdBUk4gIFtSZWN2V29ya2VyOjE6DQo+IFF1b3J1bUNueE1hbmFnZXIkUmVjdldvcmtlckA4MTBd IC0gQ29ubmVjdGlvbiBicm9rZW4gZm9yIGlkIDEsIG15IGlkID0NCj4gMiwgZXJyb3IgPSBqYXZh LmlvLkVPRkV4Y2VwdGlvbg0KPiAgICAgICAgIGF0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtLnJl YWRJbnQoRGF0YUlucHV0U3RyZWFtLmphdmE6MzkyKQ0KPiAgICAgICAgIGF0IG9yZy5hcGFjaGUu em9va2VlcGVyLnNlcnZlci5xdW9ydW0uUXVvcnVtQ254TWFuYWdlciQNCj4gUmVjdldvcmtlci5y dW4oUXVvcnVtQ254TWFuYWdlci5qYXZhOjc5NSkNCj4gMjAxNi0xMC0yNiAwOTowMzoxMCw3MjMg W215aWQ6Ml0gLSBXQVJOICBbUmVjdldvcmtlcjoxOg0KPiBRdW9ydW1DbnhNYW5hZ2VyJFJlY3ZX b3JrZXJAODEzXSAtIEludGVycnVwdGluZyBTZW5kV29ya2VyDQo+IDIwMTYtMTAtMjYgMDk6MDM6 MTAsNzIyIFtteWlkOjJdIC0gSU5GTyAgW1dvcmtlclNlbmRlcltteWlkPTJdOg0KPiBRdW9ydW1D bnhNYW5hZ2VyQDE5OV0gLSBIYXZlIHNtYWxsZXIgc2VydmVyIGlkZW50aWZpZXIsIHNvIGRyb3Bw aW5nDQo+IHRoZQ0KPiBjb25uZWN0aW9uOiAoMywgMikNCj4gMjAxNi0xMC0yNiAwOTowMzoxMCw3 MjMgW215aWQ6Ml0gLSBXQVJOICBbU2VuZFdvcmtlcjoxOg0KPiBRdW9ydW1DbnhNYW5hZ2VyJFNl bmRXb3JrZXJANzI3XSAtIEludGVycnVwdGVkIHdoaWxlIHdhaXRpbmcgZm9yDQo+IG1lc3NhZ2Ug b24gcXVldWUgamF2YS5sYW5nLkludGVycnVwdGVkRXhjZXB0aW9uDQo+ICAgICAgICAgYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkDQo+IENv bmRpdGlvbk9iamVjdC5yZXBvcnRJbnRlcnJ1cHRBZnRlcldhaXQoQWJzdHJhY3RRdWV1ZWRTeW5j aHJvbml6ZXIuDQo+IGphdmE6MjAxNCkNCj4gICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciQNCj4gQ29uZGl0aW9uT2JqZWN0LmF3 YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDg4KQ0KPiAgICAgICAg IGF0IGphdmEudXRpbC5jb25jdXJyZW50LkFycmF5QmxvY2tpbmdRdWV1ZS5wb2xsKA0KPiBBcnJh eUJsb2NraW5nUXVldWUuamF2YTo0MTgpDQo+ICAgICAgICAgYXQgb3JnLmFwYWNoZS56b29rZWVw ZXIuc2VydmVyLnF1b3J1bS5RdW9ydW1DbnhNYW5hZ2VyLg0KPiBwb2xsU2VuZFF1ZXVlKFF1b3J1 bUNueE1hbmFnZXIuamF2YTo4NzkpDQo+ICAgICAgICAgYXQgb3JnLmFwYWNoZS56b29rZWVwZXIu c2VydmVyLnF1b3J1bS5RdW9ydW1DbnhNYW5hZ2VyLg0KPiBhY2Nlc3MkNTAwKFF1b3J1bUNueE1h bmFnZXIuamF2YTo2NSkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLnpvb2tlZXBlci5zZXJ2ZXIu cXVvcnVtLlF1b3J1bUNueE1hbmFnZXIkDQo+IFNlbmRXb3JrZXIucnVuKFF1b3J1bUNueE1hbmFn ZXIuamF2YTo3MTUpDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsNzIzIFtteWlkOjJdIC0gV0FSTiAg W1NlbmRXb3JrZXI6MToNCj4gUXVvcnVtQ254TWFuYWdlciRTZW5kV29ya2VyQDczNl0gLSBTZW5k IHdvcmtlciBsZWF2aW5nIHRocmVhZA0KPiAyMDE2LTEwLTI2IDA5OjAzOjEwLDcyNCBbbXlpZDoy XSAtIElORk8gIFtXb3JrZXJTZW5kZXJbbXlpZD0yXToNCj4gUXVvcnVtQ254TWFuYWdlckAxOTld IC0gSGF2ZSBzbWFsbGVyIHNlcnZlciBpZGVudGlmaWVyLCBzbyBkcm9wcGluZw0KPiB0aGUNCj4g Y29ubmVjdGlvbjogKDQsIDIpDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTAsNzI0IFtteWlkOjJdIC0g SU5GTyAgW1dvcmtlclNlbmRlcltteWlkPTJdOg0KPiBRdW9ydW1DbnhNYW5hZ2VyQDE5OV0gLSBI YXZlIHNtYWxsZXIgc2VydmVyIGlkZW50aWZpZXIsIHNvIGRyb3BwaW5nDQo+IHRoZQ0KPiBjb25u ZWN0aW9uOiAoNSwgMikNCj4gMjAxNi0xMC0yNiAwOTowMzoxMSw1MjIgW215aWQ6Ml0gLSBJTkZP ICBbUXVvcnVtUGVlcltteWlkPTJdLzA6MDowOjA6MDoNCj4gMDowOjA6ODA6RmFzdExlYWRlckVs ZWN0aW9uQDg1Ml0gLSBOb3RpZmljYXRpb24gdGltZSBvdXQ6IDE2MDANCj4gMjAxNi0xMC0yNiAw OTowMzoxMSw1MjQgW215aWQ6Ml0gLSBJTkZPICBbV29ya2VyUmVjZWl2ZXJbbXlpZD0yXToNCj4g RmFzdExlYWRlckVsZWN0aW9uQDYwMF0gLSBOb3RpZmljYXRpb246IDEgKG1lc3NhZ2UgZm9ybWF0 IHZlcnNpb24pLCAyDQo+IChuLmxlYWRlciksIDB4MCAobi56eGlkKSwgMHgxIChuLnJvdW5kKSwg TE9PS0lORyAobi5zdGF0ZSksIDIgKG4uc2lkKSwNCj4gMHgwDQo+IChuLnBlZXJFcG9jaCkgTE9P S0lORyAobXkgc3RhdGUpDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTEsNTI0IFtteWlkOjJdIC0gV0FS TiAgW1JlY3ZXb3JrZXI6MToNCj4gUXVvcnVtQ254TWFuYWdlciRSZWN2V29ya2VyQDgxMF0gLSBD b25uZWN0aW9uIGJyb2tlbiBmb3IgaWQgMSwgbXkgaWQgPQ0KPiAyLCBlcnJvciA9IGphdmEuaW8u RU9GRXhjZXB0aW9uDQo+ICAgICAgICAgYXQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW0ucmVhZElu dChEYXRhSW5wdXRTdHJlYW0uamF2YTozOTIpDQo+ICAgICAgICAgYXQgb3JnLmFwYWNoZS56b29r ZWVwZXIuc2VydmVyLnF1b3J1bS5RdW9ydW1DbnhNYW5hZ2VyJA0KPiBSZWN2V29ya2VyLnJ1bihR dW9ydW1DbnhNYW5hZ2VyLmphdmE6Nzk1KQ0KPiAyMDE2LTEwLTI2IDA5OjAzOjExLDUyNSBbbXlp ZDoyXSAtIFdBUk4gIFtSZWN2V29ya2VyOjE6DQo+IFF1b3J1bUNueE1hbmFnZXIkUmVjdldvcmtl ckA4MTNdIC0gSW50ZXJydXB0aW5nIFNlbmRXb3JrZXINCj4gMjAxNi0xMC0yNiAwOTowMzoxMSw1 MjUgW215aWQ6Ml0gLSBJTkZPICBbV29ya2VyU2VuZGVyW215aWQ9Ml06DQo+IFF1b3J1bUNueE1h bmFnZXJAMTk5XSAtIEhhdmUgc21hbGxlciBzZXJ2ZXIgaWRlbnRpZmllciwgc28gZHJvcHBpbmcN Cj4gdGhlDQo+IGNvbm5lY3Rpb246ICgzLCAyKQ0KPiAyMDE2LTEwLTI2IDA5OjAzOjExLDUyNSBb bXlpZDoyXSAtIFdBUk4gIFtTZW5kV29ya2VyOjE6DQo+IFF1b3J1bUNueE1hbmFnZXIkU2VuZFdv cmtlckA3MjddIC0gSW50ZXJydXB0ZWQgd2hpbGUgd2FpdGluZyBmb3INCj4gbWVzc2FnZSBvbiBx dWV1ZSBqYXZhLmxhbmcuSW50ZXJydXB0ZWRFeGNlcHRpb24NCj4gICAgICAgICBhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciQNCj4gQ29uZGl0 aW9uT2JqZWN0LnJlcG9ydEludGVycnVwdEFmdGVyV2FpdChBYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplci4NCj4gamF2YToyMDE0KQ0KPiAgICAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50Lmxv Y2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJA0KPiBDb25kaXRpb25PYmplY3QuYXdhaXRO YW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwODgpDQo+ICAgICAgICAgYXQg amF2YS51dGlsLmNvbmN1cnJlbnQuQXJyYXlCbG9ja2luZ1F1ZXVlLnBvbGwoDQo+IEFycmF5Qmxv Y2tpbmdRdWV1ZS5qYXZhOjQxOCkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLnpvb2tlZXBlci5z ZXJ2ZXIucXVvcnVtLlF1b3J1bUNueE1hbmFnZXIuDQo+IHBvbGxTZW5kUXVldWUoUXVvcnVtQ254 TWFuYWdlci5qYXZhOjg3OSkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLnpvb2tlZXBlci5zZXJ2 ZXIucXVvcnVtLlF1b3J1bUNueE1hbmFnZXIuDQo+IGFjY2VzcyQ1MDAoUXVvcnVtQ254TWFuYWdl ci5qYXZhOjY1KQ0KPiAgICAgICAgIGF0IG9yZy5hcGFjaGUuem9va2VlcGVyLnNlcnZlci5xdW9y dW0uUXVvcnVtQ254TWFuYWdlciQNCj4gU2VuZFdvcmtlci5ydW4oUXVvcnVtQ254TWFuYWdlci5q YXZhOjcxNSkNCj4gMjAxNi0xMC0yNiAwOTowMzoxMSw1MjUgW215aWQ6Ml0gLSBXQVJOICBbU2Vu ZFdvcmtlcjoxOg0KPiBRdW9ydW1DbnhNYW5hZ2VyJFNlbmRXb3JrZXJANzM2XSAtIFNlbmQgd29y a2VyIGxlYXZpbmcgdGhyZWFkDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTEsNTI2IFtteWlkOjJdIC0g SU5GTyAgW1dvcmtlclNlbmRlcltteWlkPTJdOg0KPiBRdW9ydW1DbnhNYW5hZ2VyQDE5OV0gLSBI YXZlIHNtYWxsZXIgc2VydmVyIGlkZW50aWZpZXIsIHNvIGRyb3BwaW5nDQo+IHRoZQ0KPiBjb25u ZWN0aW9uOiAoNCwgMikNCj4gMjAxNi0xMC0yNiAwOTowMzoxMSw1MjcgW215aWQ6Ml0gLSBJTkZP ICBbV29ya2VyU2VuZGVyW215aWQ9Ml06DQo+IFF1b3J1bUNueE1hbmFnZXJAMTk5XSAtIEhhdmUg c21hbGxlciBzZXJ2ZXIgaWRlbnRpZmllciwgc28gZHJvcHBpbmcNCj4gdGhlDQo+IGNvbm5lY3Rp b246ICg1LCAyKQ0KPiAyMDE2LTEwLTI2IDA5OjAzOjExLDU1NSBbbXlpZDoyXSAtIElORk8gW05J T1NlcnZlckN4bi5GYWN0b3J5OjAuMC4wLjAvDQo+IDAuMC4wLjA6ODA6TklPU2VydmVyQ254bkZh Y3RvcnlAMTkyXSAtIEFjY2VwdGVkIHNvY2tldCBjb25uZWN0aW9uIGZyb20NCj4gLw0KPiAxNzIu MzEuMTguMTUxOjM2MDgyDQo+IDIwMTYtMTAtMjYgMDk6MDM6MTEsNjA5IFtteWlkOjJdIC0gV0FS TiBbTklPU2VydmVyQ3huLkZhY3Rvcnk6MC4wLjAuMC8NCj4gMC4wLjAuMDo4MDpOSU9TZXJ2ZXJD bnhuQDM1N10gLSBjYXVnaHQgZW5kIG9mIHN0cmVhbSBleGNlcHRpb24NCj4gRW5kT2ZTdHJlYW1F eGNlcHRpb246IFVuYWJsZSB0byByZWFkIGFkZGl0aW9uYWwgZGF0YSBmcm9tIGNsaWVudA0KPiBz ZXNzaW9uaWQgMHgwLCBsaWtlbHkgY2xpZW50IGhhcyBjbG9zZWQgc29ja2V0DQo+ICAgICAgICAg YXQgb3JnLmFwYWNoZS56b29rZWVwZXIuc2VydmVyLk5JT1NlcnZlckNueG4uZG9JTygNCj4gTklP U2VydmVyQ254bi5qYXZhOjIzMCkNCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLnpvb2tlZXBlci5z ZXJ2ZXIuTklPU2VydmVyQ254bkZhY3RvcnkucnVuKA0KPiBOSU9TZXJ2ZXJDbnhuRmFjdG9yeS5q YXZhOjIwMykNCj4gICAgICAgICBhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3 NDUpDQo+DQo+DQo+IFRoYW5rcyBhbmQgUmVnYXJkcywNCj4gUHJlZXRpIEJoYXQNCj4NCj4NCj4N Cj4gTk9USUNFIFRPIFJFQ0lQSUVOVFM6IFRoaXMgY29tbXVuaWNhdGlvbiBtYXkgY29udGFpbiBj b25maWRlbnRpYWwNCj4gYW5kL29yIHByaXZpbGVnZWQgaW5mb3JtYXRpb24uIElmIHlvdSBhcmUg bm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQNCj4gKG9yIGhhdmUgcmVjZWl2ZWQgdGhpcyBjb21t dW5pY2F0aW9uIGluIGVycm9yKSBwbGVhc2Ugbm90aWZ5IHRoZQ0KPiBzZW5kZXIgYW5kIGl0LXN1 cHBvcnRAc2hvcmVncnAuY29tIGltbWVkaWF0ZWx5LCBhbmQgZGVzdHJveSB0aGlzDQo+IGNvbW11 bmljYXRpb24uIEFueSB1bmF1dGhvcml6ZWQgY29weWluZywgZGlzY2xvc3VyZSBvciBkaXN0cmli dXRpb24gb2YNCj4gdGhlIG1hdGVyaWFsIGluIHRoaXMgY29tbXVuaWNhdGlvbiBpcyBzdHJpY3Rs eSBmb3JiaWRkZW4uIEFueSB2aWV3cyBvcg0KPiBvcGluaW9ucyBwcmVzZW50ZWQgaW4gdGhpcyBl bWFpbCBhcmUgc29sZWx5IHRob3NlIG9mIHRoZSBhdXRob3IgYW5kIGRvDQo+IG5vdCBuZWNlc3Nh cmlseSByZXByZXNlbnQgdGhvc2Ugb2YgdGhlIGNvbXBhbnkuIEZpbmFsbHksIHRoZSByZWNpcGll bnQNCj4gc2hvdWxkIGNoZWNrIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBmb3IgdGhl IHByZXNlbmNlIG9mDQo+IHZpcnVzZXMuIFRoZSBjb21wYW55IGFjY2VwdHMgbm8gbGlhYmlsaXR5 IGZvciBhbnkgZGFtYWdlIGNhdXNlZCBieSBhbnkgdmlydXMgdHJhbnNtaXR0ZWQgYnkgdGhpcyBl bWFpbC4NCj4NCj4NCj4NCg0KDQotLQ0KQ2hlZXJzDQpNaWNoYWVsLg0KDQpOT1RJQ0UgVE8gUkVD SVBJRU5UUzogVGhpcyBjb21tdW5pY2F0aW9uIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBhbmQv b3IgcHJpdmlsZWdlZCBpbmZvcm1hdGlvbi4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJl Y2lwaWVudCAob3IgaGF2ZSByZWNlaXZlZCB0aGlzIGNvbW11bmljYXRpb24gaW4gZXJyb3IpIHBs ZWFzZSBub3RpZnkgdGhlIHNlbmRlciBhbmQgaXQtc3VwcG9ydEBzaG9yZWdycC5jb20gaW1tZWRp YXRlbHksIGFuZCBkZXN0cm95IHRoaXMgY29tbXVuaWNhdGlvbi4gQW55IHVuYXV0aG9yaXplZCBj b3B5aW5nLCBkaXNjbG9zdXJlIG9yIGRpc3RyaWJ1dGlvbiBvZiB0aGUgbWF0ZXJpYWwgaW4gdGhp cyBjb21tdW5pY2F0aW9uIGlzIHN0cmljdGx5IGZvcmJpZGRlbi4gQW55IHZpZXdzIG9yIG9waW5p b25zIHByZXNlbnRlZCBpbiB0aGlzIGVtYWlsIGFyZSBzb2xlbHkgdGhvc2Ugb2YgdGhlIGF1dGhv ciBhbmQgZG8gbm90IG5lY2Vzc2FyaWx5IHJlcHJlc2VudCB0aG9zZSBvZiB0aGUgY29tcGFueS4g RmluYWxseSwgdGhlIHJlY2lwaWVudCBzaG91bGQgY2hlY2sgdGhpcyBlbWFpbCBhbmQgYW55IGF0 dGFjaG1lbnRzIGZvciB0aGUgcHJlc2VuY2Ugb2YgdmlydXNlcy4gVGhlIGNvbXBhbnkgYWNjZXB0 cyBubyBsaWFiaWxpdHkgZm9yIGFueSBkYW1hZ2UgY2F1c2VkIGJ5IGFueSB2aXJ1cyB0cmFuc21p dHRlZCBieSB0aGlzIGVtYWlsLg0KDQoNClRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhp cyBlbWFpbCBpcyBzdHJpY3RseSBjb25maWRlbnRpYWwgYW5kIGZvciB0aGUgdXNlIG9mIHRoZSBh ZGRyZXNzZWUgb25seSwgdW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQuIElmIHlvdSBhcmUgbm90 IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBkbyBub3QgcmVhZCwgY29weSwgdXNlIG9y IGRpc2Nsb3NlIHRvIG90aGVycyB0aGlzIG1lc3NhZ2Ugb3IgYW55IGF0dGFjaG1lbnQuIFBsZWFz ZSBhbHNvIG5vdGlmeSB0aGUgc2VuZGVyIGJ5IHJlcGx5aW5nIHRvIHRoaXMgZW1haWwgb3IgYnkg dGVsZXBob25lICgrNDQoMDIwIDc4OTYgMDAxMSkgYW5kIHRoZW4gZGVsZXRlIHRoZSBlbWFpbCBh bmQgYW55IGNvcGllcyBvZiBpdC4gT3BpbmlvbnMsIGNvbmNsdXNpb24gKGV0YykgdGhhdCBkbyBu b3QgcmVsYXRlIHRvIHRoZSBvZmZpY2lhbCBidXNpbmVzcyBvZiB0aGlzIGNvbXBhbnkgc2hhbGwg YmUgdW5kZXJzdG9vZCBhcyBuZWl0aGVyIGdpdmVuIG5vciBlbmRvcnNlZCBieSBpdC4gSUcgaXMg YSB0cmFkaW5nIG5hbWUgb2YgSUcgTWFya2V0cyBMaW1pdGVkIChhIGNvbXBhbnkgcmVnaXN0ZXJl ZCBpbiBFbmdsYW5kIGFuZCBXYWxlcywgY29tcGFueSBudW1iZXIgMDQwMDg5NTcpIGFuZCBJRyBJ bmRleCBMaW1pdGVkIChhIGNvbXBhbnkgcmVnaXN0ZXJlZCBpbiBFbmdsYW5kIGFuZCBXYWxlcywg Y29tcGFueSBudW1iZXIgMDExOTA5MDIpLiBSZWdpc3RlcmVkIGFkZHJlc3MgYXQgQ2Fubm9uIEJy aWRnZSBIb3VzZSwgMjUgRG93Z2F0ZSBIaWxsLCBMb25kb24gRUM0UiAyWUEuIEJvdGggSUcgTWFy a2V0cyBMaW1pdGVkIChyZWdpc3RlciBudW1iZXIgMTk1MzU1KSBhbmQgSUcgSW5kZXggTGltaXRl ZCAocmVnaXN0ZXIgbnVtYmVyIDExNDA1OSkgYXJlIGF1dGhvcmlzZWQgYW5kIHJlZ3VsYXRlZCBi eSB0aGUgRmluYW5jaWFsIENvbmR1Y3QgQXV0aG9yaXR5Lg0K