Return-Path: X-Original-To: apmail-tomcat-users-archive@www.apache.org Delivered-To: apmail-tomcat-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0DECA9A4D for ; Tue, 29 Nov 2011 00:28:57 +0000 (UTC) Received: (qmail 80261 invoked by uid 500); 29 Nov 2011 00:28:53 -0000 Delivered-To: apmail-tomcat-users-archive@tomcat.apache.org Received: (qmail 80085 invoked by uid 500); 29 Nov 2011 00:28:53 -0000 Mailing-List: contact users-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Users List" Delivered-To: mailing list users@tomcat.apache.org Received: (qmail 80076 invoked by uid 99); 29 Nov 2011 00:28:53 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Nov 2011 00:28:53 +0000 X-ASF-Spam-Status: No, hits=-13.0 required=5.0 tests=ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_HI,SPF_PASS,USER_IN_DEF_SPF_WL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of zampani@amazon.com designates 72.21.196.25 as permitted sender) Received: from [72.21.196.25] (HELO smtp-fw-2101.amazon.com) (72.21.196.25) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Nov 2011 00:28:47 +0000 X-IronPort-AV: E=Sophos;i="4.69,587,1315180800"; d="scan'208";a="235323118" Received: from smtp-in-31001.sea31.amazon.com ([10.184.168.27]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 29 Nov 2011 00:28:19 +0000 Received: from ex-hub-0102.ant.amazon.com (ex-hub-0102.sea3.amazon.com [172.22.19.27]) by smtp-in-31001.sea31.amazon.com (8.13.8/8.13.8) with ESMTP id pAT0SI3B007369 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for ; Tue, 29 Nov 2011 00:28:18 GMT Received: from EX-SEA3-A.ant.amazon.com ([fe80::8cca:fd9c:1ee2:1586]) by ex-hub-0102.ant.amazon.com ([::1]) with mapi; Mon, 28 Nov 2011 16:28:15 -0800 From: "Zampani, Michael" To: Tomcat Users List Date: Mon, 28 Nov 2011 16:28:13 -0800 Subject: RE: Tomcat-7.0.23 startup deadlocks Thread-Topic: Tomcat-7.0.23 startup deadlocks Thread-Index: AcyuKktiz8Sx3w1KQ6+ZKPWHntv5RQAAlcPw Message-ID: <90F337A3158DBF41B9B890BEAE26479BBDC9FFF2@EX-SEA3-A.ant.amazon.com> References: <90F337A3158DBF41B9B890BEAE26479BBDC9FED5@EX-SEA3-A.ant.amazon.com> <4a0d97f6-6acd-4d97-9bde-4b639674daff@email.android.com> In-Reply-To: <4a0d97f6-6acd-4d97-9bde-4b639674daff@email.android.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBtYXJrdEBhcGFjaGUub3JnIFtt YWlsdG86bWFya3RAYXBhY2hlLm9yZ10NCj4gU2VudDogTW9uZGF5LCBOb3ZlbWJlciAyOCwgMjAx MSA0OjAyIFBNDQo+IFRvOiBUb21jYXQgVXNlcnMgTGlzdA0KPiBTdWJqZWN0OiBSZTogVG9tY2F0 LTcuMC4yMyBzdGFydHVwIGRlYWRsb2Nrcw0KPg0KPiAiWmFtcGFuaSwgTWljaGFlbCIgPHphbXBh bmlAYW1hem9uLmNvbT4gd3JvdGU6DQo+DQo+ID5IaSwNCj4gPg0KPiA+SSdtIHRyeWluZyB0byB1 cGdyYWRlIGFuIGV4aXN0aW5nIHdlYmFwcCBpbnN0YWxsYXRpb24gZnJvbSA3LjAuMjIgLT4NCj4g PjcuMC4yMy4NCj4gPg0KPiA+T24gc3RhcnR1cCwgaXQgYXBwZWFycyB0byBkZWFkbG9jaywgd2l0 aCB0aGUgdGhyZWFkcyBzdHVjayBpbg0KPiA+Q29udGFpbmVyQmFzZS5zZXRSZWFsbSBIb3N0Q29u ZmlnLmRlcGxveURpcmVjdG9yaWVzDQo+ID5Db250YWluZXJCYXNlLnN0YXJ0SW50ZXJuYWwNCj4g Pg0KPiA+c2VydmVyLnhtbCBhbmQgdGhyZWFkIGR1bXAgYXR0YWNoZWQuDQo+ID5Ob3RlIHRoYXQg SSBkbyBub3QgZGVmaW5lIGFueSA8UmVhbG0+cyBpbiBzZXJ2ZXIueG1sDQo+ID4NCj4gPlRoZSB3 ZWJhcHAgaXMgc2ltcGxlIGFuZCBjb250YWlucyBvbmx5IHN0YXRpYyBodG1sLCBqcywgY3NzLCBh bmQNCj4gPmltYWdlcy4NCj4gPkNvcHlpbmcgdGhlIHdlYi54bWwgZnJvbSB0aGUgZXhhbXBsZSB3 ZWJhcHAgc2hpcHBlZCB3aXRoIHRvbWNhdA0KPiBzZWVtcw0KPiA+dG8gZml4IGl0LCBidXQgdGhp cyB3b3JrZWQgaW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgVG9tY2F0Lg0KPiA+Tm90IHN1cmUgaWYg aXQncyByZWxldmFudCwgYnV0IGl0IGlzIHRoZSBST09UIHdlYmFwcC4NCj4gPg0KPiA+SSd2ZSBh dHRhY2hlZCBhIHNhbXBsZSBXQVIgZmlsZSB0byByZXByb2R1Y2UgaXQuICBJdCBzaG91bGQgd29y ayBmaW5lDQo+ID5vbmNlIGRlcGxveWVkLiAgUmVtb3ZlIFdFQi1JTkYvd2ViLnhtbCBhbmQgcmVz dGFydCBUb21jYXQgdG8gc2VlIGl0DQo+ID5mYWlsLg0KPiA+DQo+ID5BbnkgaWRlYXM/DQo+ID4N Cj4gPi1NaWNoYWVsDQo+ID4NCj4gPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+VG8gdW5zdWJzY3JpYmUsIGUt bWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAdG9tY2F0LmFwYWNoZS5vcmcNCj4gPkZvciBhZGRpdGlv bmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAdG9tY2F0LmFwYWNoZS5vcmcNCj4NCj4g QXR0YWNobWVudHMgYXJlIHVzdWFsbHkgYmxvY2tlZC4gQmV0dGVyIHRvIHBhc3RlIGluLWxpbmUu DQo+DQo+IElzIHRoZXJlIGFuIGFjdHVhbCBkZWFkbG9jayBvciBkbyB0aGluZ3MganVzdCBzZWVt IHRvIHN0b3AgbW92aW5nIGZvcndhcmRzPw0KPg0KPiBQb3NzaWJsZSBjYXVzZXM6DQo+IC0gdGhy ZWFkZWQgY29udGFpbmVyIHN0YXJ0cyAoYWx0aG91Z2ggdGhleSBhcmUgc3RpbGwgc2luZ2xlIHRo cmVhZGVkIGJ5IGRlZmF1bHQpDQo+IC0gY2FjaGluZyBvZiBnbG9iYWwgd2ViLnhtbCB0byBpbXBy b3ZlIHN0YXJ0IHRpbWVzDQo+IC0gY2hhbmdlcyB0byByZWRlcGxveW1lbnQgY29kZSB0byBjb3Jy ZWN0bHkgcmVkZXBsb3kgb24gY29udGV4dC54bWwNCj4gY2hhbmdlcw0KPg0KPiBJZiBhZGRpbmcg YW4gZW1wdHkgd2ViLnhtbCB3b3JrcyBhcm91bmQgdGhpcyB0aGVuIGF0IGxlYXN0IHRoZXJlIGlz IGEgc2ltcGxlDQo+IGZpeCBmb3IgYW55b25lIHRoYXQgaGl0cyB0aGlzIGlzc3VlICh3aGF0ZXZl ciBpdCBpcykuDQo+DQo+IE1hcmsNCj4NCj4NCj4NCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IFRvIHVuc3Vi c2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQHRvbWNhdC5hcGFjaGUub3JnDQo+IEZv ciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAdG9tY2F0LmFwYWNoZS5v cmcNCg0KDQpUaGluZ3MgY2VydGFpbmx5IHNlZW0gdG8gc3RvcCBtb3ZpbmcgZm9yd2FyZC4NCklm IEkgYXR0YWNoIEpQcm9maWxlciwgSSBzZWUgdHdvIHRocmVhZHMgd2FpdGluZyBvbiB0aGUgc2Ft ZSBsb2NrLCBidXQgSSdtIG5vdCBmYW1pbGlhciBlbm91Z2ggd2l0aCB0aGUgYXBwbGljYXRpb24g dG8ga25vdyBpZiBpdCdzIGEgJ3JlYWwnIGRlYWRsb2NrLg0KDQpUaGUgd2ViYXBwIGNhbiBiZSBi dWlsdCBzaW1wbHkgYnk6DQpybSAtciB3ZWJhcHBzLyoNCm1rZGlyIC1wIHdlYmFwcHMvUk9PVC9X RUItSU5GDQplY2hvICI8aHRtbD48aGVhZD48dGl0bGU+SGVsbG8gd29ybGQ8L3RpdGxlPjwvaGVh ZD48Ym9keT5IZWxsbyBXb3JsZDwvYm9keT48L2h0bWw+IiA+IHdlYmFwcHMvUk9PVC9pbmRleC5o dG1sDQoNCldlYi54bWxbMV0gaW5jbHVkZWQgYmVmb3JlKGNvcGllZCBmcm9tIHRoZSBleGFtcGxl IHNoaXBwZWQgd2l0aCB0b21jYXQpDQpUaHJlYWQgZHVtcCBhdHRhY2hlZCBhdCBbMl0uICBIb3Bl ZnVsbHkgbXkgZW1haWwgY2xpZW50IGRvZXNu4oCZdCcgY2xvYmJlciBpdCBiZXlvbmQgcmVjb2du aXRpb24uDQpTZXJ2ZXIueG1sIGF0IFszXQ0KDQpbMV0NCjw/eG1sIHZlcnNpb249IjEuMCIgZW5j b2Rpbmc9IklTTy04ODU5LTEiPz4NCjx3ZWItYXBwIHhtbG5zPSJodHRwOi8vamF2YS5zdW4uY29t L3htbC9ucy9qYXZhZWUiDQogIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT Y2hlbWEtaW5zdGFuY2UiDQogIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL2phdmEuc3VuLmNv bS94bWwvbnMvamF2YWVlDQogICAgICAgICAgICAgICAgICAgICAgaHR0cDovL2phdmEuc3VuLmNv bS94bWwvbnMvamF2YWVlL3dlYi1hcHBfM18wLnhzZCINCiAgdmVyc2lvbj0iMy4wIg0KICBtZXRh ZGF0YS1jb21wbGV0ZT0idHJ1ZSI+DQoNCiAgPGRpc3BsYXktbmFtZT5XZWxjb21lIHRvIFRvbWNh dDwvZGlzcGxheS1uYW1lPg0KICA8ZGVzY3JpcHRpb24+DQogICAgIFdlbGNvbWUgdG8gVG9tY2F0 DQogIDwvZGVzY3JpcHRpb24+DQoNCjwvd2ViLWFwcD4NCg0KWzJdDQpGdWxsIHRocmVhZCBkdW1w IEphdmEgSG90U3BvdChUTSkgU2VydmVyIFZNICgyMC4yLWIwNiBtaXhlZCBtb2RlKToNCg0KInBv b2wtMi10aHJlYWQtMSIgcHJpbz0xMCB0aWQ9MHgwYTBhMDgwMCBuaWQ9MHgzMjZhIHdhaXRpbmcg Zm9yIG1vbml0b3IgZW50cnkgWzB4N2JiOTQwMDBdDQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBCTE9DS0VEIChvbiBvYmplY3QgbW9uaXRvcikNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRh bGluYS5jb3JlLkNvbnRhaW5lckJhc2Uuc2V0UmVhbG0oQ29udGFpbmVyQmFzZS5qYXZhOjczOCkN CiAgICAgICAgLSB3YWl0aW5nIHRvIGxvY2sgPDB4ODBhYTJkNzA+IChhIG9yZy5hcGFjaGUuY2F0 YWxpbmEuY29yZS5TdGFuZGFyZEVuZ2luZSkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGlu YS5jb3JlLlN0YW5kYXJkRW5naW5lLmdldFJlYWxtKFN0YW5kYXJkRW5naW5lLmphdmE6MTM1KQ0K ICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQ29udGFpbmVyQmFzZS5nZXRSZWFs bShDb250YWluZXJCYXNlLmphdmE6NzIzKQ0KICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5h LmNvcmUuQ29udGFpbmVyQmFzZS5nZXRSZWFsbShDb250YWluZXJCYXNlLmphdmE6NzIzKQ0KICAg ICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLnN0YXJ0dXAuQ29udGV4dENvbmZpZy5hdXRoZW50 aWNhdG9yQ29uZmlnKENvbnRleHRDb25maWcuamF2YTozODApDQogICAgICAgIC0gbG9ja2VkIDww eGEzMmUwNzgwPiAoYSBvcmcuYXBhY2hlLmNhdGFsaW5hLnN0YXJ0dXAuQ29udGV4dENvbmZpZykN CiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5zdGFydHVwLkNvbnRleHRDb25maWcuY29u ZmlndXJlU3RhcnQoQ29udGV4dENvbmZpZy5qYXZhOjgzOSkNCiAgICAgICAgLSBsb2NrZWQgPDB4 YTMyZTA3ODA+IChhIG9yZy5hcGFjaGUuY2F0YWxpbmEuc3RhcnR1cC5Db250ZXh0Q29uZmlnKQ0K ICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLnN0YXJ0dXAuQ29udGV4dENvbmZpZy5saWZl Y3ljbGVFdmVudChDb250ZXh0Q29uZmlnLmphdmE6MzAyKQ0KICAgICAgICBhdCBvcmcuYXBhY2hl LmNhdGFsaW5hLnV0aWwuTGlmZWN5Y2xlU3VwcG9ydC5maXJlTGlmZWN5Y2xlRXZlbnQoTGlmZWN5 Y2xlU3VwcG9ydC5qYXZhOjExOSkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS51dGls LkxpZmVjeWNsZUJhc2UuZmlyZUxpZmVjeWNsZUV2ZW50KExpZmVjeWNsZUJhc2UuamF2YTo5MCkN CiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkQ29udGV4dC5zdGFy dEludGVybmFsKFN0YW5kYXJkQ29udGV4dC5qYXZhOjUxNDgpDQogICAgICAgIC0gbG9ja2VkIDww eGEzMjY1ZWM4PiAoYSBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRDb250ZXh0KQ0K ICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLnV0aWwuTGlmZWN5Y2xlQmFzZS5zdGFydChM aWZlY3ljbGVCYXNlLmphdmE6MTUwKQ0KICAgICAgICAtIGxvY2tlZCA8MHhhMzI2NWVjOD4gKGEg b3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkQ29udGV4dCkNCiAgICAgICAgYXQgb3Jn LmFwYWNoZS5jYXRhbGluYS5jb3JlLkNvbnRhaW5lckJhc2UuYWRkQ2hpbGRJbnRlcm5hbChDb250 YWluZXJCYXNlLmphdmE6ODY2KQ0KICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUu Q29udGFpbmVyQmFzZS5hZGRDaGlsZChDb250YWluZXJCYXNlLmphdmE6ODQyKQ0KICAgICAgICBh dCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRIb3N0LmFkZENoaWxkKFN0YW5kYXJk SG9zdC5qYXZhOjYxNSkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5zdGFydHVwLkhv c3RDb25maWcuZGVwbG95RGlyZWN0b3J5KEhvc3RDb25maWcuamF2YToxMDk1KQ0KICAgICAgICBh dCBvcmcuYXBhY2hlLmNhdGFsaW5hLnN0YXJ0dXAuSG9zdENvbmZpZyREZXBsb3lEaXJlY3Rvcnku cnVuKEhvc3RDb25maWcuamF2YToxNjE3KQ0KICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLmNhbGwoRXhlY3V0b3JzLmphdmE6NDQxKQ0KICAg ICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrJFN5bmMuaW5uZXJSdW4oRnV0 dXJlVGFzay5qYXZhOjMwMykNCiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJl VGFzay5ydW4oRnV0dXJlVGFzay5qYXZhOjEzOCkNCiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW5UYXNrKFRocmVhZFBvb2xFeGVjdXRv ci5qYXZhOjg4NikNCiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4 ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6OTA4KQ0KICAgICAgICBh dCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo2NjIpDQoNCiJwb29sLTEtdGhyZWFk LTEiIHByaW89MTAgdGlkPTB4N2JjZGUwMDAgbmlkPTB4MzI2OSB3YWl0aW5nIG9uIGNvbmRpdGlv biBbMHg3YmJlNTAwMF0NCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtp bmcpDQogICAgICAgIGF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpDQogICAg ICAgIC0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4YTMxZTA5MTg+IChhIGphdmEudXRpbC5jb25j dXJyZW50LkZ1dHVyZVRhc2skU3luYykNCiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu bG9ja3MuTG9ja1N1cHBvcnQucGFyayhMb2NrU3VwcG9ydC5qYXZhOjE1NikNCiAgICAgICAgYXQg amF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIucGFy a0FuZENoZWNrSW50ZXJydXB0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6ODExKQ0K ICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNo cm9uaXplci5kb0FjcXVpcmVTaGFyZWRJbnRlcnJ1cHRpYmx5KEFic3RyYWN0UXVldWVkU3luY2hy b25pemVyLmphdmE6OTY5KQ0KICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5B YnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5hY3F1aXJlU2hhcmVkSW50ZXJydXB0aWJseShBYnN0 cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjEyODEpDQogICAgICAgIGF0IGphdmEudXRpbC5j b25jdXJyZW50LkZ1dHVyZVRhc2skU3luYy5pbm5lckdldChGdXR1cmVUYXNrLmphdmE6MjE4KQ0K ICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLmdldChGdXR1cmVUYXNr LmphdmE6ODMpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuc3RhcnR1cC5Ib3N0Q29u ZmlnLmRlcGxveURpcmVjdG9yaWVzKEhvc3RDb25maWcuamF2YToxMDE4KQ0KICAgICAgICBhdCBv cmcuYXBhY2hlLmNhdGFsaW5hLnN0YXJ0dXAuSG9zdENvbmZpZy5kZXBsb3lBcHBzKEhvc3RDb25m aWcuamF2YTo0NzMpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuc3RhcnR1cC5Ib3N0 Q29uZmlnLnN0YXJ0KEhvc3RDb25maWcuamF2YToxNDEyKQ0KICAgICAgICBhdCBvcmcuYXBhY2hl LmNhdGFsaW5hLnN0YXJ0dXAuSG9zdENvbmZpZy5saWZlY3ljbGVFdmVudChIb3N0Q29uZmlnLmph dmE6MzEyKQ0KICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLnV0aWwuTGlmZWN5Y2xlU3Vw cG9ydC5maXJlTGlmZWN5Y2xlRXZlbnQoTGlmZWN5Y2xlU3VwcG9ydC5qYXZhOjExOSkNCiAgICAg ICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS51dGlsLkxpZmVjeWNsZUJhc2UuZmlyZUxpZmVjeWNs ZUV2ZW50KExpZmVjeWNsZUJhc2UuamF2YTo5MCkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRh bGluYS51dGlsLkxpZmVjeWNsZUJhc2Uuc2V0U3RhdGVJbnRlcm5hbChMaWZlY3ljbGVCYXNlLmph dmE6NDAxKQ0KICAgICAgICAtIGxvY2tlZCA8MHg4MGFhMmVmOD4gKGEgb3JnLmFwYWNoZS5jYXRh bGluYS5jb3JlLlN0YW5kYXJkSG9zdCkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS51 dGlsLkxpZmVjeWNsZUJhc2Uuc2V0U3RhdGUoTGlmZWN5Y2xlQmFzZS5qYXZhOjM0NikNCiAgICAg ICAgLSBsb2NrZWQgPDB4ODBhYTJlZjg+IChhIG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5TdGFu ZGFyZEhvc3QpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5Db250YWluZXJC YXNlLnN0YXJ0SW50ZXJuYWwoQ29udGFpbmVyQmFzZS5qYXZhOjExMTcpDQogICAgICAgIC0gbG9j a2VkIDwweDgwYWEyZWY4PiAoYSBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRIb3N0 KQ0KICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRIb3N0LnN0YXJ0 SW50ZXJuYWwoU3RhbmRhcmRIb3N0LmphdmE6NzgyKQ0KICAgICAgICAtIGxvY2tlZCA8MHg4MGFh MmVmOD4gKGEgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkSG9zdCkNCiAgICAgICAg YXQgb3JnLmFwYWNoZS5jYXRhbGluYS51dGlsLkxpZmVjeWNsZUJhc2Uuc3RhcnQoTGlmZWN5Y2xl QmFzZS5qYXZhOjE1MCkNCiAgICAgICAgLSBsb2NrZWQgPDB4ODBhYTJlZjg+IChhIG9yZy5hcGFj aGUuY2F0YWxpbmEuY29yZS5TdGFuZGFyZEhvc3QpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0 YWxpbmEuY29yZS5Db250YWluZXJCYXNlJFN0YXJ0Q2hpbGQuY2FsbChDb250YWluZXJCYXNlLmph dmE6MTUyNSkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkNvbnRhaW5lckJh c2UkU3RhcnRDaGlsZC5jYWxsKENvbnRhaW5lckJhc2UuamF2YToxNTE1KQ0KICAgICAgICBhdCBq YXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrJFN5bmMuaW5uZXJSdW4oRnV0dXJlVGFzay5q YXZhOjMwMykNCiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4o RnV0dXJlVGFzay5qYXZhOjEzOCkNCiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhy ZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW5UYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjg4 NikNCiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdv cmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6OTA4KQ0KICAgICAgICBhdCBqYXZhLmxh bmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo2NjIpDQoNCiJHQyBEYWVtb24iIGRhZW1vbiBwcmlv PTEwIHRpZD0weDdiY2ExYzAwIG5pZD0weDMyNjcgaW4gT2JqZWN0LndhaXQoKSBbMHg3YmQ5YzAw MF0NCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBt b25pdG9yKQ0KICAgICAgICBhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkN CiAgICAgICAgLSB3YWl0aW5nIG9uIDwweDgwYTNiZDc4PiAoYSBzdW4ubWlzYy5HQyRMYXRlbmN5 TG9jaykNCiAgICAgICAgYXQgc3VuLm1pc2MuR0MkRGFlbW9uLnJ1bihHQy5qYXZhOjEwMCkNCiAg ICAgICAgLSBsb2NrZWQgPDB4ODBhM2JkNzg+IChhIHN1bi5taXNjLkdDJExhdGVuY3lMb2NrKQ0K DQoiTG93IE1lbW9yeSBEZXRlY3RvciIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDlmODM4MDAgbmlk PTB4MzI2NCBydW5uYWJsZSBbMHgwMDAwMDAwMF0NCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6 IFJVTk5BQkxFDQoNCiJDMiBDb21waWxlclRocmVhZDEiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDA5 ZjgyMDAwIG5pZD0weDMyNjMgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAwMDBdDQogICBq YXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQ0KDQoiQzIgQ29tcGlsZXJUaHJlYWQwIiBk YWVtb24gcHJpbz0xMCB0aWQ9MHgwOWY3NjgwMCBuaWQ9MHgzMjYyIHdhaXRpbmcgb24gY29uZGl0 aW9uIFsweDAwMDAwMDAwXQ0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUNCg0K IlNpZ25hbCBEaXNwYXRjaGVyIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwOWY3NTAwMCBuaWQ9MHgz MjYxIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwXQ0KICAgamF2YS5sYW5nLlRocmVh ZC5TdGF0ZTogUlVOTkFCTEUNCg0KIkZpbmFsaXplciIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDlm NjM4MDAgbmlkPTB4MzI2MCBpbiBPYmplY3Qud2FpdCgpIFsweDdjMzdlMDAwXQ0KICAgamF2YS5s YW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpDQogICAgICAgIGF0 IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQ0KICAgICAgICAtIHdhaXRpbmcg b24gPDB4ODBhM2M0ODg+IChhIGphdmEubGFuZy5yZWYuUmVmZXJlbmNlUXVldWUkTG9jaykNCiAg ICAgICAgYXQgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2VRdWV1ZS5yZW1vdmUoUmVmZXJlbmNlUXVl dWUuamF2YToxMTgpDQogICAgICAgIC0gbG9ja2VkIDwweDgwYTNjNDg4PiAoYSBqYXZhLmxhbmcu cmVmLlJlZmVyZW5jZVF1ZXVlJExvY2spDQogICAgICAgIGF0IGphdmEubGFuZy5yZWYuUmVmZXJl bmNlUXVldWUucmVtb3ZlKFJlZmVyZW5jZVF1ZXVlLmphdmE6MTM0KQ0KICAgICAgICBhdCBqYXZh LmxhbmcucmVmLkZpbmFsaXplciRGaW5hbGl6ZXJUaHJlYWQucnVuKEZpbmFsaXplci5qYXZhOjE1 OSkNCg0KIlJlZmVyZW5jZSBIYW5kbGVyIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwOWY2MjAwMCBu aWQ9MHgzMjVmIGluIE9iamVjdC53YWl0KCkgWzB4N2MzY2YwMDBdDQogICBqYXZhLmxhbmcuVGhy ZWFkLlN0YXRlOiBXQUlUSU5HIChvbiBvYmplY3QgbW9uaXRvcikNCiAgICAgICAgYXQgamF2YS5s YW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpDQogICAgICAgIC0gd2FpdGluZyBvbiA8MHg4 MGEzYmQ3MD4gKGEgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2UkTG9jaykNCiAgICAgICAgYXQgamF2 YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjQ4NSkNCiAgICAgICAgYXQgamF2YS5sYW5n LnJlZi5SZWZlcmVuY2UkUmVmZXJlbmNlSGFuZGxlci5ydW4oUmVmZXJlbmNlLmphdmE6MTE2KQ0K ICAgICAgICAtIGxvY2tlZCA8MHg4MGEzYmQ3MD4gKGEgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2Uk TG9jaykNCg0KIm1haW4iIHByaW89MTAgdGlkPTB4MDllZTI0MDAgbmlkPTB4MzI1YiB3YWl0aW5n IG9uIGNvbmRpdGlvbiBbMHhiNzM2NzAwMF0NCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdB SVRJTkcgKHBhcmtpbmcpDQogICAgICAgIGF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBN ZXRob2QpDQogICAgICAgIC0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4YTMxODIyMjg+IChhIGph dmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2skU3luYykNCiAgICAgICAgYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFyayhMb2NrU3VwcG9ydC5qYXZhOjE1NikN CiAgICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5j aHJvbml6ZXIucGFya0FuZENoZWNrSW50ZXJydXB0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVy LmphdmE6ODExKQ0KICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFj dFF1ZXVlZFN5bmNocm9uaXplci5kb0FjcXVpcmVTaGFyZWRJbnRlcnJ1cHRpYmx5KEFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyLmphdmE6OTY5KQ0KICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5hY3F1aXJlU2hhcmVkSW50ZXJy dXB0aWJseShBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjEyODEpDQogICAgICAgIGF0 IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2skU3luYy5pbm5lckdldChGdXR1cmVUYXNr LmphdmE6MjE4KQ0KICAgICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLmdl dChGdXR1cmVUYXNrLmphdmE6ODMpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29y ZS5Db250YWluZXJCYXNlLnN0YXJ0SW50ZXJuYWwoQ29udGFpbmVyQmFzZS5qYXZhOjExMDApDQog ICAgICAgIC0gbG9ja2VkIDwweDgwYWEyZDcwPiAoYSBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUu U3RhbmRhcmRFbmdpbmUpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5TdGFu ZGFyZEVuZ2luZS5zdGFydEludGVybmFsKFN0YW5kYXJkRW5naW5lLmphdmE6MjkxKQ0KICAgICAg ICAtIGxvY2tlZCA8MHg4MGFhMmQ3MD4gKGEgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5k YXJkRW5naW5lKQ0KICAgICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLnV0aWwuTGlmZWN5Y2xl QmFzZS5zdGFydChMaWZlY3ljbGVCYXNlLmphdmE6MTUwKQ0KICAgICAgICAtIGxvY2tlZCA8MHg4 MGFhMmQ3MD4gKGEgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkRW5naW5lKQ0KICAg ICAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRTZXJ2aWNlLnN0YXJ0SW50 ZXJuYWwoU3RhbmRhcmRTZXJ2aWNlLmphdmE6NDQzKQ0KICAgICAgICAtIGxvY2tlZCA8MHg4MGFh MmQ3MD4gKGEgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkRW5naW5lKQ0KICAgICAg ICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLnV0aWwuTGlmZWN5Y2xlQmFzZS5zdGFydChMaWZlY3lj bGVCYXNlLmphdmE6MTUwKQ0KICAgICAgICAtIGxvY2tlZCA8MHg4MGFhMjE1MD4gKGEgb3JnLmFw YWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkU2VydmljZSkNCiAgICAgICAgYXQgb3JnLmFwYWNo ZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkU2VydmVyLnN0YXJ0SW50ZXJuYWwoU3RhbmRhcmRTZXJ2 ZXIuamF2YTo3MjcpDQogICAgICAgIC0gbG9ja2VkIDwweDgwYWEyMTQwPiAoYSBbTG9yZy5hcGFj aGUuY2F0YWxpbmEuU2VydmljZTspDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEudXRp bC5MaWZlY3ljbGVCYXNlLnN0YXJ0KExpZmVjeWNsZUJhc2UuamF2YToxNTApDQogICAgICAgIC0g bG9ja2VkIDwweDgwYTNkMWYwPiAoYSBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRT ZXJ2ZXIpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuc3RhcnR1cC5DYXRhbGluYS5z dGFydChDYXRhbGluYS5qYXZhOjYyNCkNCiAgICAgICAgYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0 aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkNCiAgICAgICAgYXQgc3VuLnJl ZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3Nv ckltcGwuamF2YTozOSkNCiAgICAgICAgYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFj Y2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjI1KQ0K ICAgICAgICBhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjU5 NykNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5zdGFydHVwLkJvb3RzdHJhcC5zdGFy dChCb290c3RyYXAuamF2YTozMjIpDQogICAgICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuc3Rh cnR1cC5Cb290c3RyYXAubWFpbihCb290c3RyYXAuamF2YTo0NTApDQoNCiJWTSBUaHJlYWQiIHBy aW89MTAgdGlkPTB4MDlmNWUwMDAgbmlkPTB4MzI1ZSBydW5uYWJsZQ0KDQoiR0MgdGFzayB0aHJl YWQjMCAoUGFyYWxsZWxHQykiIHByaW89MTAgdGlkPTB4MDllZTk4MDAgbmlkPTB4MzI1YyBydW5u YWJsZQ0KDQoiR0MgdGFzayB0aHJlYWQjMSAoUGFyYWxsZWxHQykiIHByaW89MTAgdGlkPTB4MDll ZWIwMDAgbmlkPTB4MzI1ZCBydW5uYWJsZQ0KDQoiVk0gUGVyaW9kaWMgVGFzayBUaHJlYWQiIHBy aW89MTAgdGlkPTB4MDlmODU4MDAgbmlkPTB4MzI2NSB3YWl0aW5nIG9uIGNvbmRpdGlvbg0KDQpK TkkgZ2xvYmFsIHJlZmVyZW5jZXM6IDEwMTkNCg0KSGVhcA0KIFBTWW91bmdHZW4gICAgICB0b3Rh bCAxNTM2MEssIHVzZWQgMTExNTBLIFsweGEyZjcwMDAwLCAweGE0MDkwMDAwLCAweGI0MjEwMDAw KQ0KICBlZGVuIHNwYWNlIDEzMTg0SywgODQlIHVzZWQgWzB4YTJmNzAwMDAsMHhhM2E1MzhiMCww eGEzYzUwMDAwKQ0KICBmcm9tIHNwYWNlIDIxNzZLLCAwJSB1c2VkIFsweGEzYzUwMDAwLDB4YTNj NTAwMDAsMHhhM2U3MDAwMCkNCiAgdG8gICBzcGFjZSAyMTc2SywgMCUgdXNlZCBbMHhhM2U3MDAw MCwweGEzZTcwMDAwLDB4YTQwOTAwMDApDQogUFNPbGRHZW4gICAgICAgIHRvdGFsIDM1MTM2Sywg dXNlZCAxNzU3SyBbMHg4MGExMDAwMCwgMHg4MmM2MDAwMCwgMHhhMmY3MDAwMCkNCiAgb2JqZWN0 IHNwYWNlIDM1MTM2SywgNSUgdXNlZCBbMHg4MGExMDAwMCwweDgwYmM3N2E4LDB4ODJjNjAwMDAp DQogUFNQZXJtR2VuICAgICAgIHRvdGFsIDE2Mzg0SywgdXNlZCA5Njg3SyBbMHg3Y2ExMDAwMCwg MHg3ZGExMDAwMCwgMHg4MGExMDAwMCkNCiAgb2JqZWN0IHNwYWNlIDE2Mzg0SywgNTklIHVzZWQg WzB4N2NhMTAwMDAsMHg3ZDM4NWQ5MCwweDdkYTEwMDAwKQ0KDQoNClszXQ0KPD94bWwgdmVyc2lv bj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4NCjwhLS0NCiAgTGljZW5zZWQgdG8gdGhlIEFwYWNo ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlDQogIGNvbnRyaWJ1 dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUgZGlzdHJpYnV0ZWQg d2l0aA0KICB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGNv cHlyaWdodCBvd25lcnNoaXAuDQogIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1 bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wDQogICh0aGUgIkxpY2Vuc2UiKTsg eW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoDQogIHRo ZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQoNCiAg ICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KDQogIFVubGVz cyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29m dHdhcmUNCiAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24g YW4gIkFTIElTIiBCQVNJUywNCiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0Yg QU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQogIFNlZSB0aGUgTGljZW5zZSBm b3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCiAgbGlt aXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQotLT4NCjwhLS0gTm90ZTogIEEgIlNlcnZlciIg aXMgbm90IGl0c2VsZiBhICJDb250YWluZXIiLCBzbyB5b3UgbWF5IG5vdA0KICAgICBkZWZpbmUg c3ViY29tcG9uZW50cyBzdWNoIGFzICJWYWx2ZXMiIGF0IHRoaXMgbGV2ZWwuDQogICAgIERvY3Vt ZW50YXRpb24gYXQgL2RvY3MvY29uZmlnL3NlcnZlci5odG1sDQogLS0+DQo8U2VydmVyIHBvcnQ9 IjgwMDUiIHNodXRkb3duPSJTSFVURE9XTiI+DQogIDwhLS1Jbml0aWFsaXplIEphc3BlciBwcmlv ciB0byB3ZWJhcHBzIGFyZSBsb2FkZWQuIERvY3VtZW50YXRpb24gYXQgL2RvY3MvamFzcGVyLWhv d3RvLmh0bWwgLS0+DQogIDxMaXN0ZW5lciBjbGFzc05hbWU9Im9yZy5hcGFjaGUuY2F0YWxpbmEu Y29yZS5KYXNwZXJMaXN0ZW5lciIgLz4NCiAgPCEtLSBQcmV2ZW50IG1lbW9yeSBsZWFrcyBkdWUg dG8gdXNlIG9mIHBhcnRpY3VsYXIgamF2YS9qYXZheCBBUElzLS0+DQogIDxMaXN0ZW5lciBjbGFz c05hbWU9Im9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5KcmVNZW1vcnlMZWFrUHJldmVudGlvbkxp c3RlbmVyIiAvPg0KICA8TGlzdGVuZXIgY2xhc3NOYW1lPSJvcmcuYXBhY2hlLmNhdGFsaW5hLm1i ZWFucy5HbG9iYWxSZXNvdXJjZXNMaWZlY3ljbGVMaXN0ZW5lciIgLz4NCiAgPExpc3RlbmVyIGNs YXNzTmFtZT0ib3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlRocmVhZExvY2FsTGVha1ByZXZlbnRp b25MaXN0ZW5lciIgLz4NCg0KICA8IS0tIEEgIlNlcnZpY2UiIGlzIGEgY29sbGVjdGlvbiBvZiBv bmUgb3IgbW9yZSAiQ29ubmVjdG9ycyIgdGhhdCBzaGFyZQ0KICAgICAgIGEgc2luZ2xlICJDb250 YWluZXIiIE5vdGU6ICBBICJTZXJ2aWNlIiBpcyBub3QgaXRzZWxmIGEgIkNvbnRhaW5lciIsDQog ICAgICAgc28geW91IG1heSBub3QgZGVmaW5lIHN1YmNvbXBvbmVudHMgc3VjaCBhcyAiVmFsdmVz IiBhdCB0aGlzIGxldmVsLg0KICAgICAgIERvY3VtZW50YXRpb24gYXQgL2RvY3MvY29uZmlnL3Nl cnZpY2UuaHRtbA0KICAgLS0+DQogIDxTZXJ2aWNlIG5hbWU9IkNhdGFsaW5hIj4NCg0KICAgIDwh LS0gQSAiQ29ubmVjdG9yIiByZXByZXNlbnRzIGFuIGVuZHBvaW50IGJ5IHdoaWNoIHJlcXVlc3Rz IGFyZSByZWNlaXZlZA0KICAgICAgICAgYW5kIHJlc3BvbnNlcyBhcmUgcmV0dXJuZWQuIERvY3Vt ZW50YXRpb24gYXQgOg0KICAgICAgICAgSmF2YSBIVFRQIENvbm5lY3RvcjogL2RvY3MvY29uZmln L2h0dHAuaHRtbCAoYmxvY2tpbmcgJiBub24tYmxvY2tpbmcpDQogICAgICAgICBKYXZhIEFKUCAg Q29ubmVjdG9yOiAvZG9jcy9jb25maWcvYWpwLmh0bWwNCiAgICAgICAgIEFQUiAoSFRUUC9BSlAp IENvbm5lY3RvcjogL2RvY3MvYXByLmh0bWwNCiAgICAgICAgIERlZmluZSBhIG5vbi1TU0wgSFRU UC8xLjEgQ29ubmVjdG9yIG9uIHBvcnQgODA4MA0KICAgIC0tPg0KICAgIDxDb25uZWN0b3IgcG9y dD0iODA4MCIgcHJvdG9jb2w9IkhUVFAvMS4xIg0KICAgICAgICAgICAgICAgY29ubmVjdGlvblRp bWVvdXQ9IjIwMDAwIg0KICAgICAgICAgICAgICAgcmVkaXJlY3RQb3J0PSI4NDQzIiBzZXJ2ZXI9 IlNlcnZlciIvPg0KICAgIDwhLS0gRGVmaW5lIGEgU1NMIEhUVFAvMS4xIENvbm5lY3RvciBvbiBw b3J0IDg0NDMNCiAgICAgICAgIFRoaXMgY29ubmVjdG9yIHVzZXMgdGhlIEpTU0UgY29uZmlndXJh dGlvbiwgd2hlbiB1c2luZyBBUFIsIHRoZQ0KICAgICAgICAgY29ubmVjdG9yIHNob3VsZCBiZSB1 c2luZyB0aGUgT3BlblNTTCBzdHlsZSBjb25maWd1cmF0aW9uDQogICAgICAgICBkZXNjcmliZWQg aW4gdGhlIEFQUiBkb2N1bWVudGF0aW9uIC0tPg0KICAgIDwhLS0NCiAgICA8Q29ubmVjdG9yIHBv cnQ9Ijg0NDMiIHByb3RvY29sPSJIVFRQLzEuMSIgU1NMRW5hYmxlZD0idHJ1ZSINCiAgICAgICAg ICAgICAgIG1heFRocmVhZHM9IjE1MCIgc2NoZW1lPSJodHRwcyIgc2VjdXJlPSJ0cnVlIg0KICAg ICAgICAgICAgICAgY2xpZW50QXV0aD0iZmFsc2UiIHNzbFByb3RvY29sPSJUTFMiIHNlcnZlcj0i U2VydmVyIi8+DQogICAgLS0+DQoNCg0KICAgIDwhLS0gQW4gRW5naW5lIHJlcHJlc2VudHMgdGhl IGVudHJ5IHBvaW50ICh3aXRoaW4gQ2F0YWxpbmEpIHRoYXQgcHJvY2Vzc2VzDQogICAgICAgICBl dmVyeSByZXF1ZXN0LiAgVGhlIEVuZ2luZSBpbXBsZW1lbnRhdGlvbiBmb3IgVG9tY2F0IHN0YW5k IGFsb25lDQogICAgICAgICBhbmFseXplcyB0aGUgSFRUUCBoZWFkZXJzIGluY2x1ZGVkIHdpdGgg dGhlIHJlcXVlc3QsIGFuZCBwYXNzZXMgdGhlbQ0KICAgICAgICAgb24gdG8gdGhlIGFwcHJvcHJp YXRlIEhvc3QgKHZpcnR1YWwgaG9zdCkuDQogICAgICAgICBEb2N1bWVudGF0aW9uIGF0IC9kb2Nz L2NvbmZpZy9lbmdpbmUuaHRtbCAtLT4NCg0KICAgIDwhLS0gWW91IHNob3VsZCBzZXQganZtUm91 dGUgdG8gc3VwcG9ydCBsb2FkLWJhbGFuY2luZyB2aWEgQUpQIGllIDoNCiAgICA8RW5naW5lIG5h bWU9IkNhdGFsaW5hIiBkZWZhdWx0SG9zdD0ibG9jYWxob3N0IiBqdm1Sb3V0ZT0ianZtMSI+DQog ICAgLS0+DQogICAgPEVuZ2luZSBuYW1lPSJDYXRhbGluYSIgZGVmYXVsdEhvc3Q9ImxvY2FsaG9z dCI+DQoNCiAgICAgIDxIb3N0IG5hbWU9ImxvY2FsaG9zdCIgIGFwcEJhc2U9IndlYmFwcHMiDQog ICAgICAgICAgICB1bnBhY2tXQVJzPSJ0cnVlIiBhdXRvRGVwbG95PSJ0cnVlIj4NCg0KICAgICAg ICA8IS0tIEFjY2VzcyBsb2cgcHJvY2Vzc2VzIGFsbCBleGFtcGxlLg0KICAgICAgICAgICAgIERv Y3VtZW50YXRpb24gYXQ6IC9kb2NzL2NvbmZpZy92YWx2ZS5odG1sDQogICAgICAgICAgICAgTm90 ZTogVGhlIHBhdHRlcm4gdXNlZCBpcyBlcXVpdmFsZW50IHRvIHVzaW5nIHBhdHRlcm49ImNvbW1v biIgLS0+DQogICAgICAgIDxWYWx2ZSBjbGFzc05hbWU9Im9yZy5hcGFjaGUuY2F0YWxpbmEudmFs dmVzLkFjY2Vzc0xvZ1ZhbHZlIiBkaXJlY3Rvcnk9ImxvZ3MiDQogICAgICAgICAgICAgICBwcmVm aXg9ImxvY2FsaG9zdF9hY2Nlc3NfbG9nLiIgc3VmZml4PSIudHh0Ig0KICAgICAgICAgICAgICAg cGF0dGVybj0iJWggJWwgJXUgJXQgJnF1b3Q7JXImcXVvdDsgJXMgJWIiIC8+DQoNCiAgICAgIDwv SG9zdD4NCiAgICA8L0VuZ2luZT4NCiAgPC9TZXJ2aWNlPg0KPC9TZXJ2ZXI+DQo=