From dev-return-30054-archive-asf-public=cust-asf.ponee.io@geode.apache.org Wed Oct 24 10:28:09 2018 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 [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id D1E6D180675 for ; Wed, 24 Oct 2018 10:28:03 +0200 (CEST) Received: (qmail 624 invoked by uid 500); 24 Oct 2018 08:28:02 -0000 Mailing-List: contact dev-help@geode.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.apache.org Delivered-To: mailing list dev@geode.apache.org Received: (qmail 127 invoked by uid 99); 24 Oct 2018 08:28:01 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 Oct 2018 08:28:01 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 37B64180D6B; Wed, 24 Oct 2018 08:28:01 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.109 X-Spam-Level: X-Spam-Status: No, score=0.109 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIM_INVALID=0.01] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=fail (1024-bit key) reason="fail (body has been altered)" header.d=amdocs.onmicrosoft.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id CLLBVqVFzw0g; Wed, 24 Oct 2018 08:27:37 +0000 (UTC) Received: from mx1.amdocs.com (ramail1.amdocs.com [193.43.244.133]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 0EBBF5F331; Wed, 24 Oct 2018 08:27:35 +0000 (UTC) Received: from unknown (HELO ILHFDAGDRFE3.corp.amdocs.com) ([10.224.0.130]) by ilmail01.corp.amdocs.com with ESMTP; 24 Oct 2018 11:27:28 +0300 Received: from ILRNAEXCHCAS02.corp.amdocs.com (10.232.216.232) by ILHFDAGDRFE3 (10.237.240.46) with Microsoft SMTP Server (TLS) id 14.3.399.0; Wed, 24 Oct 2018 11:27:28 +0300 Received: from ILRNAEXCHCAS02.corp.amdocs.com (10.232.216.232) by ILRNAEXCHCAS02.corp.amdocs.com (10.232.216.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.845.34; Wed, 24 Oct 2018 11:27:27 +0300 Received: from ILRNAEXCHEDGE02.corp.amdocs.com (10.233.34.168) by ILRNAEXCHCAS02.corp.amdocs.com (10.232.216.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.845.34 via Frontend Transport; Wed, 24 Oct 2018 11:27:27 +0300 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (192.168.34.8) by msgedge.amdocs.com (192.168.34.212) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.845.34; Wed, 24 Oct 2018 11:27:26 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Amdocs.onmicrosoft.com; s=selector1-amdocs-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=teu4WUBpc681ivMGJvNMydmtcKmzHjxSouBr7hkrCrA=; b=ZduASRjtKIgsitn/0GtAHvjve19XzMj3cvGaoVBsG/STfTdsBymvcGipVmei1qqnauTSUpGBp/tBGc8VwA/ooVoC3ufMjoU2/VXiDEGjTyGhD5Uq7gBXxVB+Oxh4nMHtPOB4todjyqbhrB3mwYwvGU4eY1IeLN4dokmyrIWcqFI= Received: from AM0PR0602MB3491.eurprd06.prod.outlook.com (52.133.49.22) by AM0PR0602MB3394.eurprd06.prod.outlook.com (52.133.48.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1250.30; Wed, 24 Oct 2018 08:27:22 +0000 Received: from AM0PR0602MB3491.eurprd06.prod.outlook.com ([fe80::f486:9f2b:8759:ed9c]) by AM0PR0602MB3491.eurprd06.prod.outlook.com ([fe80::f486:9f2b:8759:ed9c%3]) with mapi id 15.20.1228.035; Wed, 24 Oct 2018 08:27:22 +0000 From: Dinesh Akhand To: "dev@geode.apache.org" CC: "user@geode.apache.org" Subject: RE: Thread block on org.apache.geode.cache.CacheFactory.getAnyInstance(CacheFactory.java:282) Thread-Topic: Thread block on org.apache.geode.cache.CacheFactory.getAnyInstance(CacheFactory.java:282) Thread-Index: AdRq1MS1xedFG4BoSrmHJzhuwWGlawABIbuAACZ6lBA= Date: Wed, 24 Oct 2018 08:27:22 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=dineshak@amdocs.com; x-originating-ip: [202.91.134.69] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM0PR0602MB3394;6:sVLPLDt+/AE1I7zIixZEd9q4asAHzjSvZS1CQd0zojt62OYdnfh5abo2LezE53e9N+w7p1LWM5giybSHg+M5bsDLAvGzoMfV7vQmLYk+LamRB7s+dcE5+yVglyjJbEx1iWpSJ6n/0AiPWnNSVjRwrlizgCdYhAiUDPEaSNYbIbEMfV2OoiQRdLXvUIpLaAmRFROwU3x5RLRiZYoeP1oWzB1+IGy/2MxDl7IaBgrVXuJTKsvFeGpAAfzNOY3rHDITuy4vsrHZYk/31D80NmZ7dGpAH2yP0iUauzZMUK+ZmFk0zYxrm9Rdq9UEKHoQ6ssh2Hn0OlUvT1uMX+V2TDtkv5w5AxukBjxyMM4+zSHLseN2hVOnZ/+2LyOv1mtdYweSpt1+hKX6BnOps9fOfUOZxEGDf7UrgkmpLcJgr8U1iQQe6Q0uKXd40LwN9zM0ZMlLo/EewB+prEBvq05TGm/YeQ==;5:aAF8Ong2gwyj21G3jx023PrsRdZdZFcL3wWjPXSgjXL6D/XY1SCY7xW6/VoFOQKqNbewaSH30dM05VvoXJbIivlSv4pAgkoW19fwjvbJ6V9AKAWWTs6EtuV9pO1xRgav9tpWV7tEFoYlHLZXb2aBXURHUCvVX4PY2/QolCh/BaM=;7:I0S7LKcZ59D3+ZgC311Z9683Kgvmg9EW+7r3KK3JxCfkYtfX2GGE5QHaPb904a9Vd7+4qN248xO7xZHweZ4td4FTyRAYXMXBdIbqIewkT0TVuAt0ylKb/h6n7XRE2JvzB8w3ZQUBLxqjtWd9nUslSjkkrm8ws+tuGoSlX4MA6wbT8kevPrwpLzG3IO1ydg8nBMwy8Rm2w16B+yM46DbwTDJOOP+3Q486Gqxd9hzMXL1uQ6CArGg0824CMEuXxvC9 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 3cb819e6-9313-4e6c-8375-08d6398a8574 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(49563074)(7193020);SRVR:AM0PR0602MB3394; x-ms-traffictypediagnostic: AM0PR0602MB3394: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(163750095850)(166566539817055); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(102415395)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(4983020)(52105095)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201708071742011)(7699051)(76991095);SRVR:AM0PR0602MB3394;BCL:0;PCL:0;RULEID:;SRVR:AM0PR0602MB3394; x-forefront-prvs: 083526BF8A x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(39860400002)(346002)(396003)(366004)(136003)(13464003)(189003)(199004)(8936002)(5250100002)(3846002)(6116002)(2501003)(5660300001)(97736004)(106356001)(105586002)(33656002)(25786009)(7696005)(76176011)(316002)(102836004)(26005)(53546011)(4326008)(6506007)(450100002)(99286004)(14454004)(229853002)(256004)(14444005)(6916009)(478600001)(966005)(486006)(305945005)(86362001)(7736002)(5640700003)(55016002)(6306002)(74316002)(6246003)(71200400001)(99936001)(2906002)(6436002)(476003)(71190400001)(9686003)(446003)(11346002)(66066001)(68736007)(2351001)(8676002)(81156014)(81166006)(1730700003)(53936002)(186003)(2900100001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM0PR0602MB3394;H:AM0PR0602MB3491.eurprd06.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: amdocs.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: NWBcnReq3egGFjcR4Ae0uIDJAh8dRHSHMyjb7/KbStuYS+MS0smL225FvFVgmeL9NI1+zH2/IYChrrQWxQKcwEXcoT1IroTu5EZRzDTcDoJyycI0LIfha/QD6i4TNn/C/m8xZhzpgcYFiw0RYaGvDgu3nn2WdaVV0dMivRs8A1PMta6kyo0787RFSylLDyG7x0ymkBozL7FoFT2IdapHs/C0NbmbKyfVD5c3IVBrH9uMCWz6/5JGaBa8BXW9/2Gs7f8jlN0EAKGOKmX1jQKKdpBRhDDDj5LZChQyyB93rlJ+kYB8Sd4nxz9YRf9o9XWuHYYiGNttCdcawhDktSNSgRAsFZexk76xy3D6BO3c9es= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_AM0PR0602MB34913094269F6A08C53FC9F4B5F60AM0PR0602MB3491_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 3cb819e6-9313-4e6c-8375-08d6398a8574 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2018 08:27:22.5038 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c8eca3ca-1276-46d5-9d9d-a0f2a028920f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0602MB3394 X-OriginatorOrg: amdocs.com --_002_AM0PR0602MB34913094269F6A08C53FC9F4B5F60AM0PR0602MB3491_ Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Tm8gZGVhZCBsb2NhbCB3YXMgdGhlcmUgLCByZWFkZXIgdGhyZWFkIGFyZSB3YWl0aW5nIG1vc3Rs eS4NClBGQSB3aG9sZSBzdGFjayBzdHJhY2UuDQoNClRoYW5rcywNCkRpbmVzaCBBa2hhbmQNCg0K LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEFudGhvbnkgQmFrZXIgPGFiYWtlckBw aXZvdGFsLmlvPiANClNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMjMsIDIwMTggNzozNCBQTQ0KVG86 IGRldkBnZW9kZS5hcGFjaGUub3JnDQpDYzogdXNlckBnZW9kZS5hcGFjaGUub3JnDQpTdWJqZWN0 OiBSZTogVGhyZWFkIGJsb2NrIG9uIG9yZy5hcGFjaGUuZ2VvZGUuY2FjaGUuQ2FjaGVGYWN0b3J5 LmdldEFueUluc3RhbmNlKENhY2hlRmFjdG9yeS5qYXZhOjI4MikNCg0KRGluZXNoLCBoYXZlIHlv dSBhbmFseXplZCB0aGUgZnVsbCB0aHJlYWQgZHVtcCB0byBzZWUgaWYgdGhlcmUgaXMgYSBkZWFk bG9jaz8gIEkgY2Fu4oCZdCB0ZWxsIGp1c3QgZnJvbSB0aGVzZSAyIHRocmVhZHMgaWYgdGhlcmUg aXMgYSBkZWFkbG9jay4NCg0KQW50aG9ueQ0KDQoNCj4gT24gT2N0IDIzLCAyMDE4LCBhdCA2OjMy IEFNLCBEaW5lc2ggQWtoYW5kIDxkaW5lc2hha0BhbWRvY3MuY29tPiB3cm90ZToNCj4gDQo+IEhp IHRlYW0sDQo+IA0KPiBSZWNlbnRseSB3ZSBzZWUgSlZNIHN0dWNrICwgaW4gc3RhY2sgdHJhY2Ug SSBjYW4gc2VlIGJlbG93IG1ldGhvZCANCj4gaGF2aW5nIHByb2JsZW0NCj4gDQo+IEFzIHBlciBk b2N1bWVudA0KPiANCj4gICAgICAgICAgICAgICAgRnJvbSBsaW5rIDoNCj4gDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICANCj4gaHR0cHM6Ly9nZW9kZS5hcGFjaGUub3JnL3JlbGVh c2VzL2xhdGVzdC9qYXZhZG9jL29yZy9hcGFjaGUvZ2VvZGUvY2FjaA0KPiBlL0NhY2hlTGlzdGVu ZXIuaHRtbA0KPiANCj4gICAgICAgICAgICAgICAgdGhpcyB3YXJuaW5nOg0KPiANCj4gV0FSTklO RzogVG8gYXZvaWQgcmlzayBvZiBkZWFkbG9jaywgZG8gbm90IGludm9rZSANCj4gQ2FjaGVGYWN0 b3J5LmdldEFueUluc3RhbmNlKCkgZnJvbSB3aXRoaW4gYW55IGNhbGxiYWNrIG1ldGhvZHMuIA0K PiBJbnN0ZWFkIHVzZSBFbnRyeUV2ZW50LmdldFJlZ2lvbigpLmdldENhY2hlKCkgb3IgDQo+IFJl Z2lvbkV2ZW50LmdldFJlZ2lvbigpLmdldENhY2hlKCkNCj4gV2hhdCAgaXMgdGhlIGJlc3Qgc29s dXRpb24gdG8gYXZvaWQgaXQuDQo+IA0KPiBGdW5jdGlvbiBFeGVjdXRpb24gUHJvY2Vzc29yMSIg IzI0NyBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmNTc5ODI2ODAwMCBuaWQ9 MHgzZmY1IHdhaXRpbmcgZm9yIG1vbml0b3IgZW50cnkgWzB4MDAwMDdmNTc2YWRmMDAwMF0NCj4g ICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBCTE9DS0VEIChvbiBvYmplY3QgbW9uaXRvcikNCj4g ICAgICAgIGF0IG9yZy5hcGFjaGUuZ2VvZGUuY2FjaGUuQ2FjaGVGYWN0b3J5LmdldEFueUluc3Rh bmNlKENhY2hlRmFjdG9yeS5qYXZhOjI4MikNCj4gICAgICAgIC0gd2FpdGluZyB0byBsb2NrIDww eDAwMDAwMDA2OTlmZWFmYTA+IChhIGphdmEubGFuZy5DbGFzcyBmb3Igb3JnLmFwYWNoZS5nZW9k ZS5jYWNoZS5DYWNoZUZhY3RvcnkpDQo+ICAgICAgICBhdCBvcmcuYXBhY2hlLmdlb2RlLm1hbmFn ZW1lbnQuaW50ZXJuYWwuY2xpLmZ1bmN0aW9ucy5HZXRSZWdpb25zRnVuY3Rpb24uZXhlY3V0ZShH ZXRSZWdpb25zRnVuY3Rpb24uamF2YTo0NCkNCj4gICAgICAgIGF0IG9yZy5hcGFjaGUuZ2VvZGUu aW50ZXJuYWwuY2FjaGUuTWVtYmVyRnVuY3Rpb25TdHJlYW1pbmdNZXNzYWdlLnByb2Nlc3MoTWVt YmVyRnVuY3Rpb25TdHJlYW1pbmdNZXNzYWdlLmphdmE6MTg1KQ0KPiAgICAgICAgYXQgb3JnLmFw YWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdlLnNjaGVk dWxlQWN0aW9uKERpc3RyaWJ1dGlvbk1lc3NhZ2UuamF2YTozNzQpDQo+ICAgICAgICBhdCBvcmcu YXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1lc3NhZ2UkMS5y dW4oRGlzdHJpYnV0aW9uTWVzc2FnZS5qYXZhOjQ0MCkNCj4gICAgICAgIGF0IGphdmEudXRpbC5j b25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9y LmphdmE6MTE0MikNCj4gICAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xF eGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNykNCj4gICAgICAg IGF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFu YWdlci5ydW5VbnRpbFNodXRkb3duKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YTo2NjIpDQo+ICAg ICAgICBhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlv bk1hbmFnZXIkOSQxLnJ1bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6MTEwOCkNCj4gICAgICAg IGF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NQ0KPiANCj4gIlAyUCBtZXNz YWdlIHJlYWRlciBmb3IgDQo+IDEwLjIxOC4xMTAuNjEoc2JpbWdhcHAxNi1zZXJ2ZXIxOjY1NjAy KTx2Nz46MTAyNiBzaGFyZWQgb3JkZXJlZCB1aWQ9MTM5IHBvcnQ9NjIwMzMiICM0MDMgZGFlbW9u IHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3ZjFhZDQxMTQ4MDAgbmlkPTB4ZGE3YyB3YWl0 aW5nIGZvciBtb25pdG9yIGVudHJ5IFsweDAwMDAgN2YxYTI4ZmNjMDAwXQ0KPiAgIGphdmEubGFu Zy5UaHJlYWQuU3RhdGU6IEJMT0NLRUQgKG9uIG9iamVjdCBtb25pdG9yKQ0KPiAgICAgICAgYXQg b3JnLmFwYWNoZS5nZW9kZS5jYWNoZS5DYWNoZUZhY3RvcnkuZ2V0QW55SW5zdGFuY2UoQ2FjaGVG YWN0b3J5LmphdmE6MjgyKQ0KPiAgICAgICAgLSB3YWl0aW5nIHRvIGxvY2sgPDB4MDAwMDAwMDIx ZGY2ODVhOD4gKGEgamF2YS5sYW5nLkNsYXNzIGZvciBvcmcuYXBhY2hlLmdlb2RlLmNhY2hlLkNh Y2hlRmFjdG9yeSkNCj4gICAgICAgIGF0IGFtZG9jcy5pbWRnLnN0YXRpc3RpY3MuR2VtRmlyZVN0 YXRpc3RpY3NGYWN0b3J5LmdldFN0YXRpc3RpY3NGYWN0b3J5KEdlbUZpcmVTdGF0aXN0aWNzRmFj dG9yeS5qYXZhOjQzKQ0KPiAgICAgICAgYXQgYW1kb2NzLmltZGcuc3RhdGlzdGljcy5WU0RDb3Vu dGVyc01hbmFnZXIuPGluaXQ+KFZTRENvdW50ZXJzTWFuYWdlci5qYXZhOjM1KQ0KPiAgICAgICAg YXQgYW1kb2NzLmltZGcuc3RhdGlzdGljcy5WU0RDb3VudGVyc01hbmFnZXIuPGNsaW5pdD4oVlNE Q291bnRlcnNNYW5hZ2VyLmphdmE6MTkpDQo+ICAgICAgICBhdCBhbWRvY3MuaW1kZy5zdGF0aXN0 aWNzLkNvdW50ZXJzTWFuYWdlckZhY3RvcnkuZ2V0Q291bnRlcnNNYW5hZ2VyKENvdW50ZXJzTWFu YWdlckZhY3RvcnkuamF2YToyNykNCj4gICAgICAgIGF0IGFtZG9jcy5pbWRnLnV0aWxzLnBvb2xp bmcuRGF0YVBvb2xGYWN0b3J5Lm1ha2VPYmplY3QoRGF0YVBvb2xGYWN0b3J5LmphdmE6NDIpDQo+ ICAgICAgICBhdCBvcmcuYXBhY2hlLmNvbW1vbnMucG9vbC5pbXBsLkdlbmVyaWNLZXllZE9iamVj dFBvb2wuYm9ycm93T2JqZWN0KEdlbmVyaWNLZXllZE9iamVjdFBvb2wuamF2YTo3OTcpDQo+ICAg ICAgICAtIGxvY2tlZCA8MHgwMDAwMDAwMjFlYmJlNjMwPiAoYSBvcmcuYXBhY2hlLmNvbW1vbnMu cG9vbC5pbXBsLkdlbmVyaWNLZXllZE9iamVjdFBvb2wpDQo+ICAgICAgICBhdCBhbWRvY3MuaW1k Zy51dGlscy5wb29saW5nLkRhdGFQb29sJERhdGFQb29sTWFuYWdlci5nZXRCeXRlQXJyYXkoRGF0 YVBvb2wuamF2YToyMzYpDQo+ICAgICAgICBhdCBhbWRvY3MuaW1kZy51dGlscy5wb29saW5nLkRh dGFQb29sLmdldEJ5dGVBcnJheShEYXRhUG9vbC5qYXZhOjk4KQ0KPiAgICAgICAgYXQgYW1kb2Nz LmltZGcubW9kZWwuQnVzaW5lc3NEYXRhLnBvcHVsYXRlRGF0YShCdXNpbmVzc0RhdGEuamF2YTox MTApDQo+ICAgICAgICBhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVwZGF0 ZUJ1c2luZXNzRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6MjI1NSkNCj4gICAgICAgIGF0IGFt ZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlQ3VzdG9tZXJEYXRhKEZsYXRC dWZmZXJzVXRpbHMuamF2YTozMDgzKQ0KPiAgICAgICAgYXQgYW1kb2NzLmltZGcudXRpbHMuRmxh dEJ1ZmZlcnNVdGlscy51cGRhdGVOZXdDdXN0b21lcihGbGF0QnVmZmVyc1V0aWxzLmphdmE6MzEw MykNCj4gICAgICAgIGF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRl RnJvbUN1c3RvbWVyRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6Mjc5OCkNCj4gICAgICAgIGF0 IGFtZG9jcy5pbWRnLm1vZGVsLkN1c3RvbWVyLmZyb21EYXRhKEN1c3RvbWVyLmphdmE6Njk2KQ0K PiAgICAgICAgLSBsb2NrZWQgPDB4MDAwMDAwMDIxZjg3NGQwOD4gKGEgYW1kb2NzLmltZGcubW9k ZWwuQ3VzdG9tZXIpDQo+ICAgICAgICBhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVy bmFsRGF0YVNlcmlhbGl6ZXIuaW52b2tlRnJvbURhdGEoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5q YXZhOjIzNzIpDQo+ICAgICAgICBhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVybmFs RGF0YVNlcmlhbGl6ZXIucmVhZERhdGFTZXJpYWxpemFibGUoSW50ZXJuYWxEYXRhU2VyaWFsaXpl ci5qYXZhOjIzOTUpDQo+ICAgICAgICBhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVy bmFsRGF0YVNlcmlhbGl6ZXIuYmFzaWNSZWFkDQo+IA0KPiANCj4gDQo+IFRoYW5rcywNCj4gRGlu ZXNoIEFraGFuZA0KPiANCj4g4oCcQW1kb2Nz4oCZIGVtYWlsIHBsYXRmb3JtIGlzIGJhc2VkIG9u IGEgdGhpcmQtcGFydHksIHdvcmxkd2lkZSwgY2xvdWQtYmFzZWQgc3lzdGVtLiBBbnkgZW1haWxz IHNlbnQgdG8gQW1kb2NzIHdpbGwgYmUgcHJvY2Vzc2VkIGFuZCBzdG9yZWQgdXNpbmcgc3VjaCBz eXN0ZW0gYW5kIGFyZSBhY2Nlc3NpYmxlIGJ5IHRoaXJkIHBhcnR5IHByb3ZpZGVycyBvZiBzdWNo IHN5c3RlbSBvbiBhIGxpbWl0ZWQgYmFzaXMuIFlvdXIgc2VuZGluZyBvZiBlbWFpbHMgdG8gQW1k b2NzIGV2aWRlbmNlcyB5b3VyIGNvbnNlbnQgdG8gdGhlIHVzZSBvZiBzdWNoIHN5c3RlbSBhbmQg c3VjaCBwcm9jZXNzaW5nLCBzdG9yaW5nIGFuZCBhY2Nlc3PigJ0uDQoNCuKAnEFtZG9jc+KAmSBl bWFpbCBwbGF0Zm9ybSBpcyBiYXNlZCBvbiBhIHRoaXJkLXBhcnR5LCB3b3JsZHdpZGUsIGNsb3Vk LWJhc2VkIHN5c3RlbS4gQW55IGVtYWlscyBzZW50IHRvIEFtZG9jcyB3aWxsIGJlIHByb2Nlc3Nl ZCBhbmQgc3RvcmVkIHVzaW5nIHN1Y2ggc3lzdGVtIGFuZCBhcmUgYWNjZXNzaWJsZSBieSB0aGly ZCBwYXJ0eSBwcm92aWRlcnMgb2Ygc3VjaCBzeXN0ZW0gb24gYSBsaW1pdGVkIGJhc2lzLiBZb3Vy IHNlbmRpbmcgb2YgZW1haWxzIHRvIEFtZG9jcyBldmlkZW5jZXMgeW91ciBjb25zZW50IHRvIHRo ZSB1c2Ugb2Ygc3VjaCBzeXN0ZW0gYW5kIHN1Y2ggcHJvY2Vzc2luZywgc3RvcmluZyBhbmQgYWNj ZXNz4oCdLgo= --_002_AM0PR0602MB34913094269F6A08C53FC9F4B5F60AM0PR0602MB3491_ Content-Type: text/plain; name="14-server2-stack.txt" Content-Description: 14-server2-stack.txt Content-Disposition: attachment; filename="14-server2-stack.txt"; size=186709; creation-date="Wed, 24 Oct 2018 08:26:53 GMT"; modification-date="Wed, 24 Oct 2018 08:26:53 GMT" Content-Transfer-Encoding: base64 MjAxOC0wNy0xOSAxNDoyNDoxMgpGdWxsIHRocmVhZCBkdW1wIEphdmEgSG90U3BvdChUTSkgNjQt Qml0IFNlcnZlciBWTSAoMjUuMTAyLWIxNCBtaXhlZCBtb2RlKToKCiJQMlAgbWVzc2FnZSByZWFk ZXIgZm9yIDEwLjIxOC4xMTAuNTgoc2JpbWdhcHAxMy1wd2luZm8xOjQzNjE2KTx2MTU+OjEwMjgg dW5zaGFyZWQgb3JkZXJlZCB1aWQ9NjkzOTYgZG9tICMxIHBvcnQ9NTI1NTkiICM4ODAgZGFlbW9u IHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1MDA2MjIwMDAgbmlkPTB4OWY5MiBydW5u YWJsZSBbMHgwMDAwN2Y4NGQwMThlMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5O QUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhv ZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIu amF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRp bC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJ YXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmph dmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDFkM2Y4YzhjOD4gKGEgamF2YS5sYW5nLk9iamVj dCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVh ZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50 Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhy ZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJz OgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjYwKHNiaW1nYXBw MTUtcHdpbmZvMTo4OTM2KTx2MTU+OjEwMjcgdW5zaGFyZWQgb3JkZXJlZCB1aWQ9NTgxNDkgZG9t ICMxIHBvcnQ9NTc0OTMiICM4NzkgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3 Zjg1MDA2MjE4MDAgbmlkPTB4OWY4OSBydW5uYWJsZSBbMHgwMDAwN2Y4NDMxMmQxMDAwXQogICBq YXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0 Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0 Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGls LnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9V dGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1w bC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDFk M2Y4YzY5MD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5q YXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBM b2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVy IGZvciAxMC4yMTguMTEwLjYyKHNiaW1nYXBwMTctcHdpbmZvMTo0MTg5Myk8djE0PjoxMDI3IHVu c2hhcmVkIG9yZGVyZWQgdWlkPTUyNzc5IGRvbSAjMSBwb3J0PTU1NTYzIiAjODc4IGRhZW1vbiBw cmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTAwNjIwODAwIG5pZD0weDlmNjggcnVubmFi bGUgWzB4MDAwMDdmODQyNmIzMjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFC TEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2Qp CglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmph dmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwu amF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0 IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZh OjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAxY2IxYzkyZjA+IChhIGphdmEubGFuZy5PYmplY3Qp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRl cihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNw LkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVh ZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoK CS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42NihzYmltZ2FwcDIx LXB3aW5mbzE6MzA5ODcpPHYxND46MTAyNyB1bnNoYXJlZCBvcmRlcmVkIHVpZD01MjQ3NyBkb20g IzEgcG9ydD01NzAxMyIgIzg3NyBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdm ODUwMDViNzgwMCBuaWQ9MHg5ZjYyIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MmExZTQwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRj aGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRj aGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwu cmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0 aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBs LnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMWNi MWM5MGI4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmph dmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExv Y2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIg Zm9yIDEwLjIxOC4xMTAuNTcoc2JpbWdhcHAxMi1wd2luZm8xOjI0OTg3KTx2MTU+OjEwMjggdW5z aGFyZWQgb3JkZXJlZCB1aWQ9ODA1NDUgZG9tICMxIHBvcnQ9NTg4OTIiICM4NzYgZGFlbW9uIHBy aW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1MDAxMDIwMDAgbmlkPTB4OWY1OSBydW5uYWJs ZSBbMHgwMDAwN2Y4NDI0MzBhMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJM RQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkK CWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2 YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5q YXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQg c3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6 MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDFjYjFjOGU4MD4gKGEgamF2YS5sYW5nLk9iamVjdCkK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVy KENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3Au Q29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFk LnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJ LSBOb25lCgoiQXR0YWNoIExpc3RlbmVyIiAjODc1IGRhZW1vbiBwcmlvPTkgb3NfcHJpbz0wIHRp ZD0weDAwMDA3Zjg0ZjAxMDIwMDAgbmlkPTB4OGZkMSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgw MDAwMDAwMDAwMDAwMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoKICAg TG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRl ciBmb3IgMTAuMjE4LjExMC42MihzYmltZ2FwcDE3LXNlcnZlcjE6NjUyMDUpPHYyND46MTAyNCBz aGFyZWQgdW5vcmRlcmVkIHVpZD00NyBwb3J0PTUwMDkzIiAjODY4IGRhZW1vbiBwcmlvPTEwIG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTAwNWFkMDAwIG5pZD0weDM5YTIgcnVubmFibGUgWzB4MDAw MDdmODQyNjYyZDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1 bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4u bmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglh dCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMp CglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8u Y2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0g bG9ja2VkIDwweDAwMDAwMDAxY2IwYTU0Njg+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0 aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rp b24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK IlAyUC1IYW5kc2hha2VyIC8xMC4yMTguMTEwLjU5OjAgVGhyZWFkIDMzIiAjODY1IGRhZW1vbiBw cmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDg0MDAxODAwIG5pZD0weDM5OTYgd2FpdGlu ZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmODQyNDQwYjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5T dGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBN ZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAyMWRjNGNlODg+IChhIGph dmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVldWUkVHJhbnNmZXJTdGFjaykKCWF0IGph dmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2 YToxNzUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVy U3RhY2suYXdhaXRGdWxmaWxsKFN5bmNocm9ub3VzUXVldWUuamF2YTo0NTgpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2sudHJhbnNmZXIoU3lu Y2hyb25vdXNRdWV1ZS5qYXZhOjM2MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9u b3VzUXVldWUudGFrZShTeW5jaHJvbm91c1F1ZXVlLmphdmE6OTI0KQoJYXQgamF2YS51dGlsLmNv bmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6MTA2NykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5X b3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyNykKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZh OjYxNykKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tl ZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQb29sZWQgV2FpdGluZyBNZXNzYWdl IFByb2Nlc3NvciAzIiAjODYyIGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0 NzgxMDYwMDAgbmlkPTB4Mzc2OSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NGQwOTk2 MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJ YXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0 IGZvciAgPDB4MDAwMDAwMDIxZGMyNDE0MD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuU3luY2hy b25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu TG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuU3luY2hyb25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrLmF3YWl0RnVsZmlsbChT eW5jaHJvbm91c1F1ZXVlLmphdmE6NDYwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU3luY2hy b25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrLnRyYW5zZmVyKFN5bmNocm9ub3VzUXVldWUuamF2YToz NjIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1ZXVlLnBvbGwoU3luY2hy b25vdXNRdWV1ZS5qYXZhOjk0MSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xF eGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjYpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVj dXRvci5qYXZhOjExMjcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0 b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIucnVuVW50aWxT aHV0ZG93bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6NjcxKQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyJDYkMS5ydW4oRGlzdHJp YnV0aW9uTWFuYWdlci5qYXZhOjEwMTIpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQu amF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUHJN ZXRhRGF0YSBjbGVhbnVwIE1lc3NhZ2UgUHJvY2Vzc29yIDEiICM4NjEgZGFlbW9uIHByaW89NSBv c19wcmlvPTAgdGlkPTB4MDAwMDdmODQ3ODEwMzgwMCBuaWQ9MHgzNzYzIHdhaXRpbmcgb24gY29u ZGl0aW9uIFsweDAwMDA3Zjg0Mjk3ZDkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJ TUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0 aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMWNhZTFiZDEwPiAoYSBqYXZh LnV0aWwuY29uY3VycmVudC5Db3VudERvd25MYXRjaCRTeW5jKQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1KQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIu ZG9BY3F1aXJlU2hhcmVkTmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToxMDM3 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIudHJ5QWNxdWlyZVNoYXJlZE5hbm9zKEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6 MTMyOCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvdW50RG93bkxhdGNoLmF3YWl0KENvdW50 RG93bkxhdGNoLmphdmE6Mjc3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC51dGlsLmNv bmN1cnJlbnQuU3RvcHBhYmxlQ291bnREb3duTGF0Y2guYXdhaXQoU3RvcHBhYmxlQ291bnREb3du TGF0Y2guamF2YTo2NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwu UmVwbHlQcm9jZXNzb3IyMS5iYXNpY1dhaXQoUmVwbHlQcm9jZXNzb3IyMS5qYXZhOjcxNSkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuUmVwbHlQcm9jZXNzb3IyMS53 YWl0Rm9yUmVwbGllc1VuaW50ZXJydXB0aWJseShSZXBseVByb2Nlc3NvcjIxLmphdmE6Nzk1KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5SZXBseVByb2Nlc3NvcjIx LndhaXRGb3JSZXBsaWVzVW5pbnRlcnJ1cHRpYmx5KFJlcGx5UHJvY2Vzc29yMjEuamF2YTo3NzEp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLlJlcGx5UHJvY2Vzc29y MjEud2FpdEZvclJlcGxpZXNVbmludGVycnVwdGlibHkoUmVwbHlQcm9jZXNzb3IyMS5qYXZhOjg1 OCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubG9ja3MuRExvY2tS ZXF1ZXN0UHJvY2Vzc29yLnJlcXVlc3RMb2NrKERMb2NrUmVxdWVzdFByb2Nlc3Nvci5qYXZhOjI0 MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubG9ja3MuRExvY2tT ZXJ2aWNlLmxvY2tJbnRlcnJ1cHRpYmx5KERMb2NrU2VydmljZS5qYXZhOjE1MzcpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLmxvY2tzLkRMb2NrU2VydmljZS5sb2Nr KERMb2NrU2VydmljZS5qYXZhOjEyNjApCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNh Y2hlLlBhcnRpdGlvbmVkUmVnaW9uJEJ1Y2tldExvY2suYmFzaWNMb2NrKFBhcnRpdGlvbmVkUmVn aW9uLmphdmE6NjY4MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuUGFydGl0 aW9uZWRSZWdpb24kQnVja2V0TG9jay5sb2NrKFBhcnRpdGlvbmVkUmVnaW9uLmphdmE6NjYyNikK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuUGFydGl0aW9uZWRSZWdpb24kUmVn aW9uTG9jay5sb2NrKFBhcnRpdGlvbmVkUmVnaW9uLmphdmE6Njg4MykKCWF0IG9yZy5hcGFjaGUu Z2VvZGUuaW50ZXJuYWwuY2FjaGUuUGFydGl0aW9uZWRSZWdpb25IZWxwZXIucmVtb3ZlR2xvYmFs TWV0YWRhdGFGb3JGYWlsZWROb2RlKFBhcnRpdGlvbmVkUmVnaW9uSGVscGVyLmphdmE6MTUwKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5QYXJ0aXRpb25lZFJlZ2lvbkhlbHBl ci5yZW1vdmVHbG9iYWxNZXRhZGF0YUZvckZhaWxlZE5vZGUoUGFydGl0aW9uZWRSZWdpb25IZWxw ZXIuamF2YToxMjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlBhcnRpdGlv bmVkUmVnaW9uSGVscGVyLmNsZWFuUGFydGl0aW9uZWRSZWdpb25NZXRhRGF0YUZvck5vZGUoUGFy dGl0aW9uZWRSZWdpb25IZWxwZXIuamF2YTo0MTApCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLmNhY2hlLlBhcnRpdGlvbmVkUmVnaW9uSGVscGVyLmFjY2VzcyQyMDAoUGFydGl0aW9uZWRS ZWdpb25IZWxwZXIuamF2YTo2NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu UGFydGl0aW9uZWRSZWdpb25IZWxwZXIkNC5ydW4oUGFydGl0aW9uZWRSZWdpb25IZWxwZXIuamF2 YTozODIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29y a2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2 MTcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlv bk1hbmFnZXIucnVuVW50aWxTaHV0ZG93bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6NjcxKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5h Z2VyJDckMS5ydW4oRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjEwNDkpCglhdCBqYXZhLmxhbmcu VGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6 ZXJzOgoJLSA8MHgwMDAwMDAwMWM5ZjRhOTI4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJl YWRQb29sRXhlY3V0b3IkV29ya2VyKQoKIlZpZXcgTWVzc2FnZSBQcm9jZXNzb3IiICM4NTkgZGFl bW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQ5ODAxMTAwMCBuaWQ9MHgzNzVlIHdh aXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0MzE0ZDMwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRp dmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFlMmJhMTc4PiAo YSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRD b25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9y dC5wYXJrKExvY2tTdXBwb3J0LmphdmE6MTc1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9j a3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3Ry YWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjAzOSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50 LkxpbmtlZEJsb2NraW5nUXVldWUudGFrZShMaW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDQyKQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFk UG9vbEV4ZWN1dG9yLmphdmE6MTA2NykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBv b2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyNykKCWF0IGph dmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBv b2xFeGVjdXRvci5qYXZhOjYxNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50 ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5ydW5VbnRpbFNodXRkb3duKERpc3RyaWJ1dGlvbk1h bmFnZXIuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFs LkRpc3RyaWJ1dGlvbk1hbmFnZXIkMyQxLnJ1bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6OTA2 KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93 bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlBvb2xlZCBIaWdoIFByaW9yaXR5IE1lc3Nh Z2UgUHJvY2Vzc29yIDU5IiAjODUzIGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAw N2Y4NGM4MWVmODAwIG5pZD0weDFjMzc3IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0 MjQyMDkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtp bmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRv IHdhaXQgZm9yICA8MHgwMDAwMDAwMjFkYzIyNTU4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5T eW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2spCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5s b2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMTUpCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2suYXdhaXRGdWxm aWxsKFN5bmNocm9ub3VzUXVldWUuamF2YTo0NjApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5T eW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2sudHJhbnNmZXIoU3luY2hyb25vdXNRdWV1ZS5q YXZhOjM2MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVldWUucG9sbChT eW5jaHJvbm91c1F1ZXVlLmphdmE6OTQxKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFk UG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2NikKCWF0IGph dmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6MTEyNykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xF eGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNykKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5ydW5V bnRpbFNodXRkb3duKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIkNSQxLnJ1bihE aXN0cmlidXRpb25NYW5hZ2VyLmphdmE6OTgxKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK IlBvb2xlZCBIaWdoIFByaW9yaXR5IE1lc3NhZ2UgUHJvY2Vzc29yIDU3IiAjNzMwIGRhZW1vbiBw cmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDQwMDE2ODAwIG5pZD0weGQ0MjUgd2FpdGlu ZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmODQyNjAyNzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5T dGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5h dGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAyMWRjMjI1NTg+ IChhIGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVldWUkVHJhbnNmZXJTdGFjaykK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2Nr U3VwcG9ydC5qYXZhOjIxNSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVl dWUkVHJhbnNmZXJTdGFjay5hd2FpdEZ1bGZpbGwoU3luY2hyb25vdXNRdWV1ZS5qYXZhOjQ2MCkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVldWUkVHJhbnNmZXJTdGFjay50 cmFuc2ZlcihTeW5jaHJvbm91c1F1ZXVlLmphdmE6MzYyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQuU3luY2hyb25vdXNRdWV1ZS5wb2xsKFN5bmNocm9ub3VzUXVldWUuamF2YTo5NDEpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29s RXhlY3V0b3IuamF2YToxMDY2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4 ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI3KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4 ZWN1dG9yLmphdmE6NjE3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5h bC5EaXN0cmlidXRpb25NYW5hZ2VyLnJ1blVudGlsU2h1dGRvd24oRGlzdHJpYnV0aW9uTWFuYWdl ci5qYXZhOjY3MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlz dHJpYnV0aW9uTWFuYWdlciQ1JDEucnVuKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YTo5ODEpCglh dCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJs ZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUG9vbGVkIEhpZ2ggUHJpb3JpdHkgTWVzc2FnZSBQ cm9jZXNzb3IgNTgiICM3MjkgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0 YzAxMGI4MDAgbmlkPTB4ZDQyNCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NDJhOWVj MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJ YXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0 IGZvciAgPDB4MDAwMDAwMDIxZGMyMjU1OD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuU3luY2hy b25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu TG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuU3luY2hyb25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrLmF3YWl0RnVsZmlsbChT eW5jaHJvbm91c1F1ZXVlLmphdmE6NDYwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU3luY2hy b25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrLnRyYW5zZmVyKFN5bmNocm9ub3VzUXVldWUuamF2YToz NjIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1ZXVlLnBvbGwoU3luY2hy b25vdXNRdWV1ZS5qYXZhOjk0MSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xF eGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjYpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVj dXRvci5qYXZhOjExMjcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0 b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIucnVuVW50aWxT aHV0ZG93bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6NjcxKQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyJDUkMS5ydW4oRGlzdHJp YnV0aW9uTWFuYWdlci5qYXZhOjk4MSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5q YXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAg bWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNTcoc2JpbWdhcHAxMi1wd2luZm8xOjI0OTg3 KTx2MTU+OjEwMjggdW5zaGFyZWQgb3JkZXJlZCB1aWQ9ODAxNjIgZG9tICMxIHBvcnQ9NDc2MDAi ICM2OTAgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0N2MyMDUwMDAgbmlk PTB4MWUyYjggcnVubmFibGUgWzB4MDAwMDdmODRkMDU5MjAwMF0KICAgamF2YS5sYW5nLlRocmVh ZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQw KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2Nr ZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2 ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRp bC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRD aGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAzZjYwM2FlMzg+IChhIGph dmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0 aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQg amF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUg c3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjEx MC42NyhzYmltZ2FwcDIyLXNlcnZlcjI6NDM0MjMpPHY3PjoxMDI0IHNoYXJlZCBvcmRlcmVkIHVp ZD0xNDAgcG9ydD01NjAzOSIgIzQ3NSBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAw MDdmODRlODVhNzAwMCBuaWQ9MHgyMjJiIHdhaXRpbmcgZm9yIG1vbml0b3IgZW50cnkgWzB4MDAw MDdmODQzM2FmODAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogQkxPQ0tFRCAob24gb2Jq ZWN0IG1vbml0b3IpCglhdCBvcmcuYXBhY2hlLmNvbW1vbnMucG9vbC5pbXBsLkdlbmVyaWNLZXll ZE9iamVjdFBvb2wuYm9ycm93T2JqZWN0KEdlbmVyaWNLZXllZE9iamVjdFBvb2wuamF2YTo3Njcp CgktIHdhaXRpbmcgdG8gbG9jayA8MHgwMDAwMDAwMjFlZDM5ZjAwPiAoYSBvcmcuYXBhY2hlLmNv bW1vbnMucG9vbC5pbXBsLkdlbmVyaWNLZXllZE9iamVjdFBvb2wpCglhdCBhbWRvY3MuaW1kZy51 dGlscy5wb29saW5nLkRhdGFQb29sJERhdGFQb29sTWFuYWdlci5nZXRCeXRlQXJyYXkoRGF0YVBv b2wuamF2YToyMzYpCglhdCBhbWRvY3MuaW1kZy51dGlscy5wb29saW5nLkRhdGFQb29sLmdldEJ5 dGVBcnJheShEYXRhUG9vbC5qYXZhOjk4KQoJYXQgYW1kb2NzLmltZGcubW9kZWwuQnVzaW5lc3NE YXRhLnBvcHVsYXRlRGF0YShCdXNpbmVzc0RhdGEuamF2YToxMTApCglhdCBhbWRvY3MuaW1kZy51 dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVwZGF0ZUJ1c2luZXNzRGF0YShGbGF0QnVmZmVyc1V0aWxz LmphdmE6MjI1NSkKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRl Q3VzdG9tZXJEYXRhKEZsYXRCdWZmZXJzVXRpbHMuamF2YTozMDgzKQoJYXQgYW1kb2NzLmltZGcu dXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVOZXdDdXN0b21lcihGbGF0QnVmZmVyc1V0aWxz LmphdmE6MzEwMykKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRl RnJvbUN1c3RvbWVyRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6Mjc5OCkKCWF0IGFtZG9jcy5p bWRnLm1vZGVsLkN1c3RvbWVyLmZyb21EYXRhKEN1c3RvbWVyLmphdmE6Njk2KQoJLSBsb2NrZWQg PDB4MDAwMDAwMDMzNjg2NWFkOD4gKGEgYW1kb2NzLmltZGcubW9kZWwuQ3VzdG9tZXIpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIuaW52b2tlRnJv bURhdGEoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjIzNzIpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIucmVhZERhdGFTZXJpYWxpemFibGUo SW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjIzOTUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIuYmFzaWNSZWFkT2JqZWN0KEludGVybmFsRGF0 YVNlcmlhbGl6ZXIuamF2YToyODEzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5EYXRhU2VyaWFsaXpl ci5yZWFkT2JqZWN0KERhdGFTZXJpYWxpemVyLmphdmE6Mjk2MSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwudXRpbC5CbG9iSGVscGVyLmRlc2VyaWFsaXplQmxvYihCbG9iSGVscGVyLmph dmE6OTkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBs LmRlc2VyaWFsaXplKEVudHJ5RXZlbnRJbXBsLmphdmE6MTkxMSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwuZGVzZXJpYWxpemUoRW50cnlFdmVudElt cGwuamF2YToxOTA0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5WTUNhY2hl ZERlc2VyaWFsaXphYmxlLmdldERlc2VyaWFsaXplZFZhbHVlKFZNQ2FjaGVkRGVzZXJpYWxpemFi bGUuamF2YToxMzQpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjlmNTA2MzQwPiAoYSBvcmcuYXBhY2hl Lmdlb2RlLmludGVybmFsLmNhY2hlLlZNQ2FjaGVkRGVzZXJpYWxpemFibGUpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLnByb2Nlc3NEZWx0YUJ5dGVz KEVudHJ5RXZlbnRJbXBsLmphdmE6MTcwNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu Y2FjaGUuRW50cnlFdmVudEltcGwuc2V0TmV3VmFsdWVJblJlZ2lvbihFbnRyeUV2ZW50SW1wbC5q YXZhOjE1NzgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJ bXBsLnB1dEV4aXN0aW5nRW50cnkoRW50cnlFdmVudEltcGwuamF2YToxNTI2KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5BYnN0cmFjdFJlZ2lvbk1hcC51cGRhdGVFbnRyeShB YnN0cmFjdFJlZ2lvbk1hcC5qYXZhOjI5NzkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LmNhY2hlLkFic3RyYWN0UmVnaW9uTWFwLmJhc2ljUHV0KEFic3RyYWN0UmVnaW9uTWFwLmphdmE6 MjgwMikKCS0gbG9ja2VkIDwweDAwMDAwMDAyOWU5NzYzMzA+IChhIG9yZy5hcGFjaGUuZ2VvZGUu aW50ZXJuYWwuY2FjaGUuVk1UaGluUmVnaW9uRW50cnlIZWFwT2JqZWN0S2V5KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5CdWNrZXRSZWdpb24udmlydHVhbFB1dChCdWNrZXRS ZWdpb24uamF2YTo1MTMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkxvY2Fs UmVnaW9uRGF0YVZpZXcucHV0RW50cnkoTG9jYWxSZWdpb25EYXRhVmlldy5qYXZhOjE1MSkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuTG9jYWxSZWdpb24uYmFzaWNVcGRhdGUo TG9jYWxSZWdpb24uamF2YTo1NjA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNo ZS5BYnN0cmFjdFVwZGF0ZU9wZXJhdGlvbi5kb1B1dE9yQ3JlYXRlKEFic3RyYWN0VXBkYXRlT3Bl cmF0aW9uLmphdmE6MTY1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5BYnN0 cmFjdFVwZGF0ZU9wZXJhdGlvbiRBYnN0cmFjdFVwZGF0ZU1lc3NhZ2UuYmFzaWNPcGVyYXRlT25S ZWdpb24oQWJzdHJhY3RVcGRhdGVPcGVyYXRpb24uamF2YToyNzIpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLmNhY2hlLkFic3RyYWN0VXBkYXRlT3BlcmF0aW9uJEFic3RyYWN0VXBkYXRl TWVzc2FnZS5vcGVyYXRlT25SZWdpb24oQWJzdHJhY3RVcGRhdGVPcGVyYXRpb24uamF2YToyNDMp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc3RyaWJ1dGVkQ2FjaGVPcGVy YXRpb24kQ2FjaGVPcGVyYXRpb25NZXNzYWdlLmJhc2ljUHJvY2VzcyhEaXN0cmlidXRlZENhY2hl T3BlcmF0aW9uLmphdmE6MTE5MCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu RGlzdHJpYnV0ZWRDYWNoZU9wZXJhdGlvbiRDYWNoZU9wZXJhdGlvbk1lc3NhZ2UucHJvY2VzcyhE aXN0cmlidXRlZENhY2hlT3BlcmF0aW9uLmphdmE6MTA5MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUu ZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWVzc2FnZS5zY2hlZHVsZUFjdGlvbihE aXN0cmlidXRpb25NZXNzYWdlLmphdmE6Mzc0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmli dXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdlLnNjaGVkdWxlKERpc3RyaWJ1dGlvbk1l c3NhZ2UuamF2YTo0MzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFs LkRpc3RyaWJ1dGlvbk1hbmFnZXIuc2NoZWR1bGVJbmNvbWluZ01lc3NhZ2UoRGlzdHJpYnV0aW9u TWFuYWdlci5qYXZhOjM1NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVy bmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIuaGFuZGxlSW5jb21pbmdETXNnKERpc3RyaWJ1dGlvbk1h bmFnZXIuamF2YTozMjA1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5h bC5EaXN0cmlidXRpb25NYW5hZ2VyJE15TGlzdGVuZXIubWVzc2FnZVJlY2VpdmVkKERpc3RyaWJ1 dGlvbk1hbmFnZXIuamF2YTo0Mzg0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5p bnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIuZGlzcGF0Y2hN ZXNzYWdlKEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6MTExNykKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdyLkdNU01lbWJlcnNoaXBN YW5hZ2VyLmhhbmRsZU9yRGVmZXJNZXNzYWdlKEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6MTA0 MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5n bXMubWdyLkdNU01lbWJlcnNoaXBNYW5hZ2VyJE15RENSZWNlaXZlci5tZXNzYWdlUmVjZWl2ZWQo R01TTWVtYmVyc2hpcE1hbmFnZXIuamF2YTo0MDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3Ry aWJ1dGVkLmludGVybmFsLmRpcmVjdC5EaXJlY3RDaGFubmVsLnJlY2VpdmUoRGlyZWN0Q2hhbm5l bC5qYXZhOjcxNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLlRDUENvbmR1aXQu bWVzc2FnZVJlY2VpdmVkKFRDUENvbmR1aXQuamF2YTo4NzQpCglhdCBvcmcuYXBhY2hlLmdlb2Rl LmludGVybmFsLnRjcC5Db25uZWN0aW9uLmRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uLmphdmE6 Mzk2NikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucHJvY2Vz c05JT0J1ZmZlcihDb25uZWN0aW9uLmphdmE6MzU1MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODI4KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlv bi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgog ICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVh ZGVyIGZvciAxMC4yMTguMTEwLjYwKHNiaW1nYXBwMTUtc2VydmVyMToxOTg2KTx2MTI+OjEwMjYg c2hhcmVkIG9yZGVyZWQgdWlkPTEzOSBwb3J0PTQ1MTgxIiAjNDcyIGRhZW1vbiBwcmlvPTEwIG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NGU4MGVhODAwIG5pZD0weDFjNjkgd2FpdGluZyBmb3IgbW9u aXRvciBlbnRyeSBbMHgwMDAwN2Y4NDI2YzMyMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBCTE9DS0VEIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IG9yZy5hcGFjaGUuY29tbW9ucy5wb29s LmltcGwuR2VuZXJpY0tleWVkT2JqZWN0UG9vbC5ib3Jyb3dPYmplY3QoR2VuZXJpY0tleWVkT2Jq ZWN0UG9vbC5qYXZhOjc2NykKCS0gd2FpdGluZyB0byBsb2NrIDwweDAwMDAwMDAyMWVkMzlmMDA+ IChhIG9yZy5hcGFjaGUuY29tbW9ucy5wb29sLmltcGwuR2VuZXJpY0tleWVkT2JqZWN0UG9vbCkK CWF0IGFtZG9jcy5pbWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2wkRGF0YVBvb2xNYW5hZ2VyLmdl dEJ5dGVBcnJheShEYXRhUG9vbC5qYXZhOjIzNikKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLnBvb2xp bmcuRGF0YVBvb2wuZ2V0Qnl0ZUFycmF5KERhdGFQb29sLmphdmE6OTgpCglhdCBhbWRvY3MuaW1k Zy5tb2RlbC5CdXNpbmVzc0RhdGEucG9wdWxhdGVEYXRhKEJ1c2luZXNzRGF0YS5qYXZhOjExMCkK CWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlQnVzaW5lc3NEYXRh KEZsYXRCdWZmZXJzVXRpbHMuamF2YToyMjU1KQoJYXQgYW1kb2NzLmltZGcudXRpbHMuRmxhdEJ1 ZmZlcnNVdGlscy51cGRhdGVDdXN0b21lckRhdGEoRmxhdEJ1ZmZlcnNVdGlscy5qYXZhOjMwODMp CglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVwZGF0ZU5ld0N1c3RvbWVy KEZsYXRCdWZmZXJzVXRpbHMuamF2YTozMTAzKQoJYXQgYW1kb2NzLmltZGcudXRpbHMuRmxhdEJ1 ZmZlcnNVdGlscy51cGRhdGVGcm9tQ3VzdG9tZXJEYXRhKEZsYXRCdWZmZXJzVXRpbHMuamF2YToy Nzk4KQoJYXQgYW1kb2NzLmltZGcubW9kZWwuQ3VzdG9tZXIuZnJvbURhdGEoQ3VzdG9tZXIuamF2 YTo2OTYpCgktIGxvY2tlZCA8MHgwMDAwMDAwM2VjYjgyMDkwPiAoYSBhbWRvY3MuaW1kZy5tb2Rl bC5DdXN0b21lcikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2Vy aWFsaXplci5pbnZva2VGcm9tRGF0YShJbnRlcm5hbERhdGFTZXJpYWxpemVyLmphdmE6MjM3MikK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFsaXplci5yZWFk RGF0YVNlcmlhbGl6YWJsZShJbnRlcm5hbERhdGFTZXJpYWxpemVyLmphdmE6MjM5NSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFsaXplci5iYXNpY1JlYWRP YmplY3QoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjI4MTMpCglhdCBvcmcuYXBhY2hlLmdl b2RlLkRhdGFTZXJpYWxpemVyLnJlYWRPYmplY3QoRGF0YVNlcmlhbGl6ZXIuamF2YToyOTYxKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC51dGlsLkJsb2JIZWxwZXIuZGVzZXJpYWxpemVC bG9iKEJsb2JIZWxwZXIuamF2YTo5OSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2Fj aGUuRW50cnlFdmVudEltcGwuZGVzZXJpYWxpemUoRW50cnlFdmVudEltcGwuamF2YToxOTExKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5kZXNlcmlh bGl6ZShFbnRyeUV2ZW50SW1wbC5qYXZhOjE5MDQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLmNhY2hlLlZNQ2FjaGVkRGVzZXJpYWxpemFibGUuZ2V0RGVzZXJpYWxpemVkVmFsdWUoVk1D YWNoZWREZXNlcmlhbGl6YWJsZS5qYXZhOjEzNCkKCS0gbG9ja2VkIDwweDAwMDAwMDAzNzc1YmU3 OTg+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuVk1DYWNoZWREZXNlcmlhbGl6 YWJsZSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwu cHJvY2Vzc0RlbHRhQnl0ZXMoRW50cnlFdmVudEltcGwuamF2YToxNzA3KQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5zZXROZXdWYWx1ZUluUmVnaW9u KEVudHJ5RXZlbnRJbXBsLmphdmE6MTU3OCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu Y2FjaGUuRW50cnlFdmVudEltcGwucHV0RXhpc3RpbmdFbnRyeShFbnRyeUV2ZW50SW1wbC5qYXZh OjE1MjYpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkFic3RyYWN0UmVnaW9u TWFwLnVwZGF0ZUVudHJ5KEFic3RyYWN0UmVnaW9uTWFwLmphdmE6Mjk3OSkKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuQWJzdHJhY3RSZWdpb25NYXAuYmFzaWNQdXQoQWJzdHJh Y3RSZWdpb25NYXAuamF2YToyODAyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDMzOTdjOTA5OD4gKGEg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5WTVRoaW5SZWdpb25FbnRyeUhlYXBPYmpl Y3RLZXkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkJ1Y2tldFJlZ2lvbi52 aXJ0dWFsUHV0KEJ1Y2tldFJlZ2lvbi5qYXZhOjUxMykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwuY2FjaGUuTG9jYWxSZWdpb25EYXRhVmlldy5wdXRFbnRyeShMb2NhbFJlZ2lvbkRhdGFW aWV3LmphdmE6MTUxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5Mb2NhbFJl Z2lvbi5iYXNpY1VwZGF0ZShMb2NhbFJlZ2lvbi5qYXZhOjU2MDkpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLmNhY2hlLkFic3RyYWN0VXBkYXRlT3BlcmF0aW9uLmRvUHV0T3JDcmVhdGUo QWJzdHJhY3RVcGRhdGVPcGVyYXRpb24uamF2YToxNjUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLkFic3RyYWN0VXBkYXRlT3BlcmF0aW9uJEFic3RyYWN0VXBkYXRlTWVzc2Fn ZS5iYXNpY09wZXJhdGVPblJlZ2lvbihBYnN0cmFjdFVwZGF0ZU9wZXJhdGlvbi5qYXZhOjI3MikK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuQWJzdHJhY3RVcGRhdGVPcGVyYXRp b24kQWJzdHJhY3RVcGRhdGVNZXNzYWdlLm9wZXJhdGVPblJlZ2lvbihBYnN0cmFjdFVwZGF0ZU9w ZXJhdGlvbi5qYXZhOjI0MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRGlz dHJpYnV0ZWRDYWNoZU9wZXJhdGlvbiRDYWNoZU9wZXJhdGlvbk1lc3NhZ2UuYmFzaWNQcm9jZXNz KERpc3RyaWJ1dGVkQ2FjaGVPcGVyYXRpb24uamF2YToxMTkwKQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5pbnRlcm5hbC5jYWNoZS5EaXN0cmlidXRlZENhY2hlT3BlcmF0aW9uJENhY2hlT3BlcmF0aW9u TWVzc2FnZS5wcm9jZXNzKERpc3RyaWJ1dGVkQ2FjaGVPcGVyYXRpb24uamF2YToxMDkxKQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdl LnNjaGVkdWxlQWN0aW9uKERpc3RyaWJ1dGlvbk1lc3NhZ2UuamF2YTozNzQpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1lc3NhZ2Uuc2NoZWR1 bGUoRGlzdHJpYnV0aW9uTWVzc2FnZS5qYXZhOjQzMikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlz dHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5zY2hlZHVsZUluY29taW5nTWVz c2FnZShEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6MzU3MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUu ZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5oYW5kbGVJbmNvbWluZ0RN c2coRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjMyMDUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRp c3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIkTXlMaXN0ZW5lci5tZXNzYWdl UmVjZWl2ZWQoRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjQzODQpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLm1lbWJlcnNoaXAuZ21zLm1nci5HTVNNZW1iZXJzaGlw TWFuYWdlci5kaXNwYXRjaE1lc3NhZ2UoR01TTWVtYmVyc2hpcE1hbmFnZXIuamF2YToxMTE3KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5t Z3IuR01TTWVtYmVyc2hpcE1hbmFnZXIuaGFuZGxlT3JEZWZlck1lc3NhZ2UoR01TTWVtYmVyc2hp cE1hbmFnZXIuamF2YToxMDQxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRl cm5hbC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIkTXlEQ1JlY2VpdmVy Lm1lc3NhZ2VSZWNlaXZlZChHTVNNZW1iZXJzaGlwTWFuYWdlci5qYXZhOjQwOCkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuZGlyZWN0LkRpcmVjdENoYW5uZWwucmVj ZWl2ZShEaXJlY3RDaGFubmVsLmphdmE6NzE0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC50Y3AuVENQQ29uZHVpdC5tZXNzYWdlUmVjZWl2ZWQoVENQQ29uZHVpdC5qYXZhOjg3NCkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24uZGlzcGF0Y2hNZXNzYWdl KENvbm5lY3Rpb24uamF2YTozOTY2KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3Au Q29ubmVjdGlvbi5wcm9jZXNzTklPQnVmZmVyKENvbm5lY3Rpb24uamF2YTozNTUyKQoJYXQgb3Jn LmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVj dGlvbi5qYXZhOjE4MjgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0 aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRo cmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUK CiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNjMoc2JpbWdhcHAxOC1zZXJ2ZXIz OjI4MTMpPHY4PjoxMDI1IHNoYXJlZCBvcmRlcmVkIHVpZD0xMjkgcG9ydD00NTI2MyIgIzQ2MiBk YWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODRlODljODAwMCBuaWQ9MHg0ZGIg d2FpdGluZyBmb3IgbW9uaXRvciBlbnRyeSBbMHgwMDAwN2Y4NDI5MmQ2MDAwXQogICBqYXZhLmxh bmcuVGhyZWFkLlN0YXRlOiBCTE9DS0VEIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IG9yZy5hcGFj aGUuY29tbW9ucy5wb29sLmltcGwuR2VuZXJpY0tleWVkT2JqZWN0UG9vbC5ib3Jyb3dPYmplY3Qo R2VuZXJpY0tleWVkT2JqZWN0UG9vbC5qYXZhOjc2NykKCS0gd2FpdGluZyB0byBsb2NrIDwweDAw MDAwMDAyMWVkMzlmMDA+IChhIG9yZy5hcGFjaGUuY29tbW9ucy5wb29sLmltcGwuR2VuZXJpY0tl eWVkT2JqZWN0UG9vbCkKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2wkRGF0 YVBvb2xNYW5hZ2VyLmdldEJ5dGVBcnJheShEYXRhUG9vbC5qYXZhOjIzNikKCWF0IGFtZG9jcy5p bWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2wuZ2V0Qnl0ZUFycmF5KERhdGFQb29sLmphdmE6OTgp CglhdCBhbWRvY3MuaW1kZy5tb2RlbC5CdXNpbmVzc0RhdGEucG9wdWxhdGVEYXRhKEJ1c2luZXNz RGF0YS5qYXZhOjExMCkKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBk YXRlQnVzaW5lc3NEYXRhKEZsYXRCdWZmZXJzVXRpbHMuamF2YToyMjU1KQoJYXQgYW1kb2NzLmlt ZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVDdXN0b21lckRhdGEoRmxhdEJ1ZmZlcnNV dGlscy5qYXZhOjMwODMpCglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVw ZGF0ZU5ld0N1c3RvbWVyKEZsYXRCdWZmZXJzVXRpbHMuamF2YTozMTAzKQoJYXQgYW1kb2NzLmlt ZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVGcm9tQ3VzdG9tZXJEYXRhKEZsYXRCdWZm ZXJzVXRpbHMuamF2YToyNzk4KQoJYXQgYW1kb2NzLmltZGcubW9kZWwuQ3VzdG9tZXIuZnJvbURh dGEoQ3VzdG9tZXIuamF2YTo2OTYpCgktIGxvY2tlZCA8MHgwMDAwMDAwM2JmOWZmN2EwPiAoYSBh bWRvY3MuaW1kZy5tb2RlbC5DdXN0b21lcikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu SW50ZXJuYWxEYXRhU2VyaWFsaXplci5pbnZva2VGcm9tRGF0YShJbnRlcm5hbERhdGFTZXJpYWxp emVyLmphdmE6MjM3MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRh U2VyaWFsaXplci5yZWFkRGF0YVNlcmlhbGl6YWJsZShJbnRlcm5hbERhdGFTZXJpYWxpemVyLmph dmE6MjM5NSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFs aXplci5iYXNpY1JlYWRPYmplY3QoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjI4MTMpCglh dCBvcmcuYXBhY2hlLmdlb2RlLkRhdGFTZXJpYWxpemVyLnJlYWRPYmplY3QoRGF0YVNlcmlhbGl6 ZXIuamF2YToyOTYxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC51dGlsLkJsb2JIZWxw ZXIuZGVzZXJpYWxpemVCbG9iKEJsb2JIZWxwZXIuamF2YTo5OSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwuZGVzZXJpYWxpemUoRW50cnlFdmVudElt cGwuamF2YToxOTExKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2 ZW50SW1wbC5kZXNlcmlhbGl6ZShFbnRyeUV2ZW50SW1wbC5qYXZhOjE5MDQpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlZNQ2FjaGVkRGVzZXJpYWxpemFibGUuZ2V0RGVzZXJp YWxpemVkVmFsdWUoVk1DYWNoZWREZXNlcmlhbGl6YWJsZS5qYXZhOjEzNCkKCS0gbG9ja2VkIDww eDAwMDAwMDAzZWNiNjlkNTA+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuVk1D YWNoZWREZXNlcmlhbGl6YWJsZSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu RW50cnlFdmVudEltcGwucHJvY2Vzc0RlbHRhQnl0ZXMoRW50cnlFdmVudEltcGwuamF2YToxNzA3 KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5zZXRO ZXdWYWx1ZUluUmVnaW9uKEVudHJ5RXZlbnRJbXBsLmphdmE6MTU3OCkKCWF0IG9yZy5hcGFjaGUu Z2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwucHV0RXhpc3RpbmdFbnRyeShFbnRy eUV2ZW50SW1wbC5qYXZhOjE1MjYpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl LkFic3RyYWN0UmVnaW9uTWFwLnVwZGF0ZUVudHJ5KEFic3RyYWN0UmVnaW9uTWFwLmphdmE6Mjk3 OSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuQWJzdHJhY3RSZWdpb25NYXAu YmFzaWNQdXQoQWJzdHJhY3RSZWdpb25NYXAuamF2YToyODAyKQoJLSBsb2NrZWQgPDB4MDAwMDAw MDNkZWEwMmQ3OD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5WTVRoaW5SZWdp b25FbnRyeUhlYXBPYmplY3RLZXkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl LkJ1Y2tldFJlZ2lvbi52aXJ0dWFsUHV0KEJ1Y2tldFJlZ2lvbi5qYXZhOjUxMykKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuTG9jYWxSZWdpb25EYXRhVmlldy5wdXRFbnRyeShM b2NhbFJlZ2lvbkRhdGFWaWV3LmphdmE6MTUxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC5jYWNoZS5Mb2NhbFJlZ2lvbi5iYXNpY1VwZGF0ZShMb2NhbFJlZ2lvbi5qYXZhOjU2MDkpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkFic3RyYWN0VXBkYXRlT3BlcmF0aW9u LmRvUHV0T3JDcmVhdGUoQWJzdHJhY3RVcGRhdGVPcGVyYXRpb24uamF2YToxNjUpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkFic3RyYWN0VXBkYXRlT3BlcmF0aW9uJEFic3Ry YWN0VXBkYXRlTWVzc2FnZS5iYXNpY09wZXJhdGVPblJlZ2lvbihBYnN0cmFjdFVwZGF0ZU9wZXJh dGlvbi5qYXZhOjI3MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuQWJzdHJh Y3RVcGRhdGVPcGVyYXRpb24kQWJzdHJhY3RVcGRhdGVNZXNzYWdlLm9wZXJhdGVPblJlZ2lvbihB YnN0cmFjdFVwZGF0ZU9wZXJhdGlvbi5qYXZhOjI0MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwuY2FjaGUuRGlzdHJpYnV0ZWRDYWNoZU9wZXJhdGlvbiRDYWNoZU9wZXJhdGlvbk1lc3Nh Z2UuYmFzaWNQcm9jZXNzKERpc3RyaWJ1dGVkQ2FjaGVPcGVyYXRpb24uamF2YToxMTkwKQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5EaXN0cmlidXRlZENhY2hlT3BlcmF0aW9u JENhY2hlT3BlcmF0aW9uTWVzc2FnZS5wcm9jZXNzKERpc3RyaWJ1dGVkQ2FjaGVPcGVyYXRpb24u amF2YToxMDkxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0 cmlidXRpb25NZXNzYWdlLnNjaGVkdWxlQWN0aW9uKERpc3RyaWJ1dGlvbk1lc3NhZ2UuamF2YToz NzQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlv bk1lc3NhZ2Uuc2NoZWR1bGUoRGlzdHJpYnV0aW9uTWVzc2FnZS5qYXZhOjQzMikKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5zY2hl ZHVsZUluY29taW5nTWVzc2FnZShEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6MzU3MSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5o YW5kbGVJbmNvbWluZ0RNc2coRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjMyMDUpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIkTXlM aXN0ZW5lci5tZXNzYWdlUmVjZWl2ZWQoRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjQzODQpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLm1lbWJlcnNoaXAuZ21zLm1n ci5HTVNNZW1iZXJzaGlwTWFuYWdlci5kaXNwYXRjaE1lc3NhZ2UoR01TTWVtYmVyc2hpcE1hbmFn ZXIuamF2YToxMTE3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5t ZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIuaGFuZGxlT3JEZWZlck1lc3Nh Z2UoR01TTWVtYmVyc2hpcE1hbmFnZXIuamF2YToxMDQxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5k aXN0cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFn ZXIkTXlEQ1JlY2VpdmVyLm1lc3NhZ2VSZWNlaXZlZChHTVNNZW1iZXJzaGlwTWFuYWdlci5qYXZh OjQwOCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuZGlyZWN0LkRp cmVjdENoYW5uZWwucmVjZWl2ZShEaXJlY3RDaGFubmVsLmphdmE6NzE0KQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC50Y3AuVENQQ29uZHVpdC5tZXNzYWdlUmVjZWl2ZWQoVENQQ29uZHVp dC5qYXZhOjg3NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24u ZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24uamF2YTozOTY2KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5wcm9jZXNzTklPQnVmZmVyKENvbm5lY3Rpb24uamF2 YTozNTUyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5O aW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MjgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFu Zy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9u aXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNTgoc2Jp bWdhcHAxMy1zZXJ2ZXIyOjM2Mjk4KTx2MTI+OjEwMjYgc2hhcmVkIG9yZGVyZWQgdWlkPTEzOSBw b3J0PTU5NDQ4IiAjNDU4IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NGU4 NjA3ODAwIG5pZD0weDFmYzFlIHdhaXRpbmcgZm9yIG1vbml0b3IgZW50cnkgWzB4MDAwMDdmODQz MDZjNDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogQkxPQ0tFRCAob24gb2JqZWN0IG1v bml0b3IpCglhdCBvcmcuYXBhY2hlLmNvbW1vbnMucG9vbC5pbXBsLkdlbmVyaWNLZXllZE9iamVj dFBvb2wuYm9ycm93T2JqZWN0KEdlbmVyaWNLZXllZE9iamVjdFBvb2wuamF2YTo3NjcpCgktIHdh aXRpbmcgdG8gbG9jayA8MHgwMDAwMDAwMjFlZDM5ZjAwPiAoYSBvcmcuYXBhY2hlLmNvbW1vbnMu cG9vbC5pbXBsLkdlbmVyaWNLZXllZE9iamVjdFBvb2wpCglhdCBhbWRvY3MuaW1kZy51dGlscy5w b29saW5nLkRhdGFQb29sJERhdGFQb29sTWFuYWdlci5nZXRCeXRlQXJyYXkoRGF0YVBvb2wuamF2 YToyMzYpCglhdCBhbWRvY3MuaW1kZy51dGlscy5wb29saW5nLkRhdGFQb29sLmdldEJ5dGVBcnJh eShEYXRhUG9vbC5qYXZhOjk4KQoJYXQgYW1kb2NzLmltZGcubW9kZWwuQnVzaW5lc3NEYXRhLnBv cHVsYXRlRGF0YShCdXNpbmVzc0RhdGEuamF2YToxMTApCglhdCBhbWRvY3MuaW1kZy51dGlscy5G bGF0QnVmZmVyc1V0aWxzLnVwZGF0ZUJ1c2luZXNzRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6 MjI1NSkKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlQ3VzdG9t ZXJEYXRhKEZsYXRCdWZmZXJzVXRpbHMuamF2YTozMDgzKQoJYXQgYW1kb2NzLmltZGcudXRpbHMu RmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVOZXdDdXN0b21lcihGbGF0QnVmZmVyc1V0aWxzLmphdmE6 MzEwMykKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlRnJvbUN1 c3RvbWVyRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6Mjc5OCkKCWF0IGFtZG9jcy5pbWRnLm1v ZGVsLkN1c3RvbWVyLmZyb21EYXRhKEN1c3RvbWVyLmphdmE6Njk2KQoJLSBsb2NrZWQgPDB4MDAw MDAwMDMzNjg2NWE0OD4gKGEgYW1kb2NzLmltZGcubW9kZWwuQ3VzdG9tZXIpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIuaW52b2tlRnJvbURhdGEo SW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjIzNzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIucmVhZERhdGFTZXJpYWxpemFibGUoSW50ZXJu YWxEYXRhU2VyaWFsaXplci5qYXZhOjIzOTUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LkludGVybmFsRGF0YVNlcmlhbGl6ZXIuYmFzaWNSZWFkT2JqZWN0KEludGVybmFsRGF0YVNlcmlh bGl6ZXIuamF2YToyODEzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5EYXRhU2VyaWFsaXplci5yZWFk T2JqZWN0KERhdGFTZXJpYWxpemVyLmphdmE6Mjk2MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwudXRpbC5CbG9iSGVscGVyLmRlc2VyaWFsaXplQmxvYihCbG9iSGVscGVyLmphdmE6OTkp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLmRlc2Vy aWFsaXplKEVudHJ5RXZlbnRJbXBsLmphdmE6MTkxMSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwuZGVzZXJpYWxpemUoRW50cnlFdmVudEltcGwuamF2 YToxOTA0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5WTUNhY2hlZERlc2Vy aWFsaXphYmxlLmdldERlc2VyaWFsaXplZFZhbHVlKFZNQ2FjaGVkRGVzZXJpYWxpemFibGUuamF2 YToxMzQpCgktIGxvY2tlZCA8MHgwMDAwMDAwM2IzYzMxYmU4PiAoYSBvcmcuYXBhY2hlLmdlb2Rl LmludGVybmFsLmNhY2hlLlZNQ2FjaGVkRGVzZXJpYWxpemFibGUpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLnByb2Nlc3NEZWx0YUJ5dGVzKEVudHJ5 RXZlbnRJbXBsLmphdmE6MTcwNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu RW50cnlFdmVudEltcGwuc2V0TmV3VmFsdWVJblJlZ2lvbihFbnRyeUV2ZW50SW1wbC5qYXZhOjE1 NzgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLnB1 dEV4aXN0aW5nRW50cnkoRW50cnlFdmVudEltcGwuamF2YToxNTI2KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC5jYWNoZS5BYnN0cmFjdFJlZ2lvbk1hcC51cGRhdGVFbnRyeShBYnN0cmFj dFJlZ2lvbk1hcC5qYXZhOjI5NzkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl LkFic3RyYWN0UmVnaW9uTWFwLmJhc2ljUHV0KEFic3RyYWN0UmVnaW9uTWFwLmphdmE6MjgwMikK CS0gbG9ja2VkIDwweDAwMDAwMDAzYjE1ZTJlNjg+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwuY2FjaGUuVk1UaGluUmVnaW9uRW50cnlIZWFwT2JqZWN0S2V5KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC5jYWNoZS5CdWNrZXRSZWdpb24udmlydHVhbFB1dChCdWNrZXRSZWdpb24u amF2YTo1MTMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkxvY2FsUmVnaW9u RGF0YVZpZXcucHV0RW50cnkoTG9jYWxSZWdpb25EYXRhVmlldy5qYXZhOjE1MSkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuTG9jYWxSZWdpb24uYmFzaWNVcGRhdGUoTG9jYWxS ZWdpb24uamF2YTo1NjA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5BYnN0 cmFjdFVwZGF0ZU9wZXJhdGlvbi5kb1B1dE9yQ3JlYXRlKEFic3RyYWN0VXBkYXRlT3BlcmF0aW9u LmphdmE6MTY1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5BYnN0cmFjdFVw ZGF0ZU9wZXJhdGlvbiRBYnN0cmFjdFVwZGF0ZU1lc3NhZ2UuYmFzaWNPcGVyYXRlT25SZWdpb24o QWJzdHJhY3RVcGRhdGVPcGVyYXRpb24uamF2YToyNzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLkFic3RyYWN0VXBkYXRlT3BlcmF0aW9uJEFic3RyYWN0VXBkYXRlTWVzc2Fn ZS5vcGVyYXRlT25SZWdpb24oQWJzdHJhY3RVcGRhdGVPcGVyYXRpb24uamF2YToyNDMpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc3RyaWJ1dGVkQ2FjaGVPcGVyYXRpb24k Q2FjaGVPcGVyYXRpb25NZXNzYWdlLmJhc2ljUHJvY2VzcyhEaXN0cmlidXRlZENhY2hlT3BlcmF0 aW9uLmphdmE6MTE5MCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRGlzdHJp YnV0ZWRDYWNoZU9wZXJhdGlvbiRDYWNoZU9wZXJhdGlvbk1lc3NhZ2UucHJvY2VzcyhEaXN0cmli dXRlZENhY2hlT3BlcmF0aW9uLmphdmE6MTA5MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJp YnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWVzc2FnZS5zY2hlZHVsZUFjdGlvbihEaXN0cmli dXRpb25NZXNzYWdlLmphdmE6Mzc0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5p bnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdlLnNjaGVkdWxlKERpc3RyaWJ1dGlvbk1lc3NhZ2Uu amF2YTo0MzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3Ry aWJ1dGlvbk1hbmFnZXIuc2NoZWR1bGVJbmNvbWluZ01lc3NhZ2UoRGlzdHJpYnV0aW9uTWFuYWdl ci5qYXZhOjM1NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRp c3RyaWJ1dGlvbk1hbmFnZXIuaGFuZGxlSW5jb21pbmdETXNnKERpc3RyaWJ1dGlvbk1hbmFnZXIu amF2YTozMjA1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0 cmlidXRpb25NYW5hZ2VyJE15TGlzdGVuZXIubWVzc2FnZVJlY2VpdmVkKERpc3RyaWJ1dGlvbk1h bmFnZXIuamF2YTo0Mzg0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5h bC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIuZGlzcGF0Y2hNZXNzYWdl KEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6MTExNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlz dHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdyLkdNU01lbWJlcnNoaXBNYW5hZ2Vy LmhhbmRsZU9yRGVmZXJNZXNzYWdlKEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6MTA0MSkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdy LkdNU01lbWJlcnNoaXBNYW5hZ2VyJE15RENSZWNlaXZlci5tZXNzYWdlUmVjZWl2ZWQoR01TTWVt YmVyc2hpcE1hbmFnZXIuamF2YTo0MDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVk LmludGVybmFsLmRpcmVjdC5EaXJlY3RDaGFubmVsLnJlY2VpdmUoRGlyZWN0Q2hhbm5lbC5qYXZh OjcxNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLlRDUENvbmR1aXQubWVzc2Fn ZVJlY2VpdmVkKFRDUENvbmR1aXQuamF2YTo4NzQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLnRjcC5Db25uZWN0aW9uLmRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uLmphdmE6Mzk2NikK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucHJvY2Vzc05JT0J1 ZmZlcihDb25uZWN0aW9uLmphdmE6MzU1MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu dGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODI4KQoJYXQgb3Jn LmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZh OjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2Nr ZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiSURMRSBwMnBEZXN0cmVhbWVyIiAj NDU3IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDgwMjA2ODAwIG5pZD0w eDFmYzFhIGluIE9iamVjdC53YWl0KCkgWzB4MDAwMDdmODQzMzhmNzAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcu T2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChPYmpl Y3QuamF2YTo1MDIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Nc2dEZXN0cmVh bWVyJERlc3RyZWFtZXJJUy53YWl0Rm9yRGF0YShNc2dEZXN0cmVhbWVyLmphdmE6Mzg1KQoJLSBs b2NrZWQgPDB4MDAwMDAwMDNiY2Y3NzI5MD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLk1zZ0Rlc3RyZWFtZXIkRGVzdHJlYW1lcklTLndhaXRG b3JBdmFpbGFibGVEYXRhKE1zZ0Rlc3RyZWFtZXIuamF2YTo0NjQpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLnRjcC5Nc2dEZXN0cmVhbWVyJERlc3RyZWFtZXJJUy5yZWFkKE1zZ0Rlc3Ry ZWFtZXIuamF2YTo1MDUpCglhdCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbS5yZWFkQnl0ZShEYXRh SW5wdXRTdHJlYW0uamF2YToyNjUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVy bmFsRGF0YVNlcmlhbGl6ZXIucmVhZERTRklEKEludGVybmFsRGF0YVNlcmlhbGl6ZXIuamF2YToy NTY4KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuTXNnRGVzdHJlYW1lciREZXN0 cmVhbWVyVGhyZWFkLnJ1bihNc2dEZXN0cmVhbWVyLmphdmE6MjYxKQoKICAgTG9ja2VkIG93bmFi bGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4 LjExMC41NyhzYmltZ2FwcDEyLXNlcnZlcjI6MTc4NDcpPHYxMj46MTAyNiBzaGFyZWQgb3JkZXJl ZCB1aWQ9MTQwIHBvcnQ9NDg1MDkiICM0NTAgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0w eDAwMDA3Zjg0ZTg2MDY4MDAgbmlkPTB4MWU5ZWYgd2FpdGluZyBmb3IgbW9uaXRvciBlbnRyeSBb MHgwMDAwN2Y4NDMwZmNkMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBCTE9DS0VEIChv biBvYmplY3QgbW9uaXRvcikKCWF0IG9yZy5hcGFjaGUuY29tbW9ucy5wb29sLmltcGwuR2VuZXJp Y0tleWVkT2JqZWN0UG9vbC5ib3Jyb3dPYmplY3QoR2VuZXJpY0tleWVkT2JqZWN0UG9vbC5qYXZh Ojc2NykKCS0gd2FpdGluZyB0byBsb2NrIDwweDAwMDAwMDAyMWVkMzlmMDA+IChhIG9yZy5hcGFj aGUuY29tbW9ucy5wb29sLmltcGwuR2VuZXJpY0tleWVkT2JqZWN0UG9vbCkKCWF0IGFtZG9jcy5p bWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2wkRGF0YVBvb2xNYW5hZ2VyLmdldEJ5dGVBcnJheShE YXRhUG9vbC5qYXZhOjIzNikKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2wu Z2V0Qnl0ZUFycmF5KERhdGFQb29sLmphdmE6OTgpCglhdCBhbWRvY3MuaW1kZy5tb2RlbC5CdXNp bmVzc0RhdGEucG9wdWxhdGVEYXRhKEJ1c2luZXNzRGF0YS5qYXZhOjExMCkKCWF0IGFtZG9jcy5p bWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlQnVzaW5lc3NEYXRhKEZsYXRCdWZmZXJz VXRpbHMuamF2YToyMjU1KQoJYXQgYW1kb2NzLmltZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51 cGRhdGVDdXN0b21lckRhdGEoRmxhdEJ1ZmZlcnNVdGlscy5qYXZhOjMwODMpCglhdCBhbWRvY3Mu aW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVwZGF0ZU5ld0N1c3RvbWVyKEZsYXRCdWZmZXJz VXRpbHMuamF2YTozMTAzKQoJYXQgYW1kb2NzLmltZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51 cGRhdGVGcm9tQ3VzdG9tZXJEYXRhKEZsYXRCdWZmZXJzVXRpbHMuamF2YToyNzk4KQoJYXQgYW1k b2NzLmltZGcubW9kZWwuQ3VzdG9tZXIuZnJvbURhdGEoQ3VzdG9tZXIuamF2YTo2OTYpCgktIGxv Y2tlZCA8MHgwMDAwMDAwMzM2ODY1OTI4PiAoYSBhbWRvY3MuaW1kZy5tb2RlbC5DdXN0b21lcikK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFsaXplci5pbnZv a2VGcm9tRGF0YShJbnRlcm5hbERhdGFTZXJpYWxpemVyLmphdmE6MjM3MikKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFsaXplci5yZWFkRGF0YVNlcmlhbGl6 YWJsZShJbnRlcm5hbERhdGFTZXJpYWxpemVyLmphdmE6MjM5NSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFsaXplci5iYXNpY1JlYWRPYmplY3QoSW50ZXJu YWxEYXRhU2VyaWFsaXplci5qYXZhOjI4MTMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLkRhdGFTZXJp YWxpemVyLnJlYWRPYmplY3QoRGF0YVNlcmlhbGl6ZXIuamF2YToyOTYxKQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC51dGlsLkJsb2JIZWxwZXIuZGVzZXJpYWxpemVCbG9iKEJsb2JIZWxw ZXIuamF2YTo5OSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVu dEltcGwuZGVzZXJpYWxpemUoRW50cnlFdmVudEltcGwuamF2YToxOTExKQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5kZXNlcmlhbGl6ZShFbnRyeUV2 ZW50SW1wbC5qYXZhOjE5MDQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlZN Q2FjaGVkRGVzZXJpYWxpemFibGUuZ2V0RGVzZXJpYWxpemVkVmFsdWUoVk1DYWNoZWREZXNlcmlh bGl6YWJsZS5qYXZhOjEzNCkKCS0gbG9ja2VkIDwweDAwMDAwMDAzNzRlNmU2NzA+IChhIG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuVk1DYWNoZWREZXNlcmlhbGl6YWJsZSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwubGFtYmRhJGdldE5l d1ZhbHVlJDEoRW50cnlFdmVudEltcGwuamF2YTo5NzUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsJCRMYW1iZGEkNDEvNDA2ODY2NzE0LmFwcGx5KFVu a25vd24gU291cmNlKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2 ZW50SW1wbC5jYWxsV2l0aE9mZkhlYXBMb2NrKEVudHJ5RXZlbnRJbXBsLmphdmE6MTAwNykKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwuZ2V0TmV3VmFs dWUoRW50cnlFdmVudEltcGwuamF2YTo5NzApCglhdCBhbWRvY3MuaW1kZy5saXN0ZW5lcnMuc2Jn LlNHSW5mb1N1YnN0aXR1dGlvbkZpbHRlci5nZXRTdWJzdGl0dXRlVmFsdWUoU0dJbmZvU3Vic3Rp dHV0aW9uRmlsdGVyLmphdmE6MzcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl Lndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXIuZ2V0U3Vic3RpdHV0ZVZhbHVlKEFic3RyYWN0R2F0 ZXdheVNlbmRlci5qYXZhOjEwOTMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl Lndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXIuZGlzdHJpYnV0ZShBYnN0cmFjdEdhdGV3YXlTZW5k ZXIuamF2YTo5NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkxvY2FsUmVn aW9uLm5vdGlmeUdhdGV3YXlTZW5kZXIoTG9jYWxSZWdpb24uamF2YTo2MjM0KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5Mb2NhbFJlZ2lvbi5pbnZva2VQdXRDYWxsYmFja3Mo TG9jYWxSZWdpb24uamF2YTo1OTI4KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNo ZS5wYXJ0aXRpb25lZC5QdXRNZXNzYWdlLm9wZXJhdGVPblBhcnRpdGlvbmVkUmVnaW9uKFB1dE1l c3NhZ2UuamF2YTo3ODYpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLnBhcnRp dGlvbmVkLlBhcnRpdGlvbk1lc3NhZ2UucHJvY2VzcyhQYXJ0aXRpb25NZXNzYWdlLmphdmE6MzMy KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25N ZXNzYWdlLnNjaGVkdWxlQWN0aW9uKERpc3RyaWJ1dGlvbk1lc3NhZ2UuamF2YTozNzQpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1lc3NhZ2Uu c2NoZWR1bGUoRGlzdHJpYnV0aW9uTWVzc2FnZS5qYXZhOjQzMikKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5zY2hlZHVsZUluY29t aW5nTWVzc2FnZShEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6MzU3MSkKCWF0IG9yZy5hcGFjaGUu Z2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5oYW5kbGVJbmNv bWluZ0RNc2coRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjMyMDUpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIkTXlMaXN0ZW5lci5t ZXNzYWdlUmVjZWl2ZWQoRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjQzODQpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLm1lbWJlcnNoaXAuZ21zLm1nci5HTVNNZW1i ZXJzaGlwTWFuYWdlci5kaXNwYXRjaE1lc3NhZ2UoR01TTWVtYmVyc2hpcE1hbmFnZXIuamF2YTox MTE3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlw Lmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIuaGFuZGxlT3JEZWZlck1lc3NhZ2UoR01TTWVt YmVyc2hpcE1hbmFnZXIuamF2YToxMDQxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRl ZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIkTXlEQ1Jl Y2VpdmVyLm1lc3NhZ2VSZWNlaXZlZChHTVNNZW1iZXJzaGlwTWFuYWdlci5qYXZhOjQwOCkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuZGlyZWN0LkRpcmVjdENoYW5u ZWwucmVjZWl2ZShEaXJlY3RDaGFubmVsLmphdmE6NzE0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5p bnRlcm5hbC50Y3AuVENQQ29uZHVpdC5tZXNzYWdlUmVjZWl2ZWQoVENQQ29uZHVpdC5qYXZhOjg3 NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24uZGlzcGF0Y2hN ZXNzYWdlKENvbm5lY3Rpb24uamF2YTozOTY2KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC50Y3AuQ29ubmVjdGlvbi5wcm9jZXNzTklPQnVmZmVyKENvbm5lY3Rpb24uamF2YTozNTUyKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIo Q29ubmVjdGlvbi5qYXZhOjE4MjgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5D b25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQu cnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6Cgkt IE5vbmUKCiJJRExFIHAycERlc3RyZWFtZXIiICM0NDkgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0w IHRpZD0weDAwMDA3Zjg0MzgxMmUwMDAgbmlkPTB4MWU2NTUgaW4gT2JqZWN0LndhaXQoKSBbMHgw MDAwN2Y4NDI3MDM3MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5HIChvbiBv YmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJ YXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjUwMikKCWF0IG9yZy5hcGFjaGUu Z2VvZGUuaW50ZXJuYWwudGNwLk1zZ0Rlc3RyZWFtZXIkRGVzdHJlYW1lcklTLndhaXRGb3JEYXRh KE1zZ0Rlc3RyZWFtZXIuamF2YTozODUpCgktIGxvY2tlZCA8MHgwMDAwMDAwMmZjNjZhNTYwPiAo YSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuTXNn RGVzdHJlYW1lciREZXN0cmVhbWVySVMud2FpdEZvckF2YWlsYWJsZURhdGEoTXNnRGVzdHJlYW1l ci5qYXZhOjQ2NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLk1zZ0Rlc3RyZWFt ZXIkRGVzdHJlYW1lcklTLnJlYWQoTXNnRGVzdHJlYW1lci5qYXZhOjUwNSkKCWF0IGphdmEuaW8u RGF0YUlucHV0U3RyZWFtLnJlYWRCeXRlKERhdGFJbnB1dFN0cmVhbS5qYXZhOjI2NSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFsaXplci5yZWFkRFNGSUQo SW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjI1NjgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLnRjcC5Nc2dEZXN0cmVhbWVyJERlc3RyZWFtZXJUaHJlYWQucnVuKE1zZ0Rlc3RyZWFt ZXIuamF2YToyNjEpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoi UDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjU4KHNiaW1nYXBwMTMtc2VydmVyMzoz NjIxMCk8djk+OjEwMjUgc2hhcmVkIG9yZGVyZWQgdWlkPTEzOCBwb3J0PTU2MzQ4IiAjNDM4IGRh ZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NGU4NDljODAwIG5pZD0weDFkMzli IHdhaXRpbmcgZm9yIG1vbml0b3IgZW50cnkgWzB4MDAwMDdmODQzMzZmNDAwMF0KICAgamF2YS5s YW5nLlRocmVhZC5TdGF0ZTogQkxPQ0tFRCAob24gb2JqZWN0IG1vbml0b3IpCglhdCBvcmcuYXBh Y2hlLmNvbW1vbnMucG9vbC5pbXBsLkdlbmVyaWNLZXllZE9iamVjdFBvb2wuYm9ycm93T2JqZWN0 KEdlbmVyaWNLZXllZE9iamVjdFBvb2wuamF2YTo3NjcpCgktIHdhaXRpbmcgdG8gbG9jayA8MHgw MDAwMDAwMjFlZDM5ZjAwPiAoYSBvcmcuYXBhY2hlLmNvbW1vbnMucG9vbC5pbXBsLkdlbmVyaWNL ZXllZE9iamVjdFBvb2wpCglhdCBhbWRvY3MuaW1kZy51dGlscy5wb29saW5nLkRhdGFQb29sJERh dGFQb29sTWFuYWdlci5nZXRCeXRlQXJyYXkoRGF0YVBvb2wuamF2YToyMzYpCglhdCBhbWRvY3Mu aW1kZy51dGlscy5wb29saW5nLkRhdGFQb29sLmdldEJ5dGVBcnJheShEYXRhUG9vbC5qYXZhOjk4 KQoJYXQgYW1kb2NzLmltZGcubW9kZWwuQnVzaW5lc3NEYXRhLnBvcHVsYXRlRGF0YShCdXNpbmVz c0RhdGEuamF2YToxMTApCglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVw ZGF0ZUJ1c2luZXNzRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6MjI1NSkKCWF0IGFtZG9jcy5p bWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlQ3VzdG9tZXJEYXRhKEZsYXRCdWZmZXJz VXRpbHMuamF2YTozMDgzKQoJYXQgYW1kb2NzLmltZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51 cGRhdGVOZXdDdXN0b21lcihGbGF0QnVmZmVyc1V0aWxzLmphdmE6MzEwMykKCWF0IGFtZG9jcy5p bWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlRnJvbUN1c3RvbWVyRGF0YShGbGF0QnVm ZmVyc1V0aWxzLmphdmE6Mjc5OCkKCWF0IGFtZG9jcy5pbWRnLm1vZGVsLkN1c3RvbWVyLmZyb21E YXRhKEN1c3RvbWVyLmphdmE6Njk2KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDJiNzAxYzZmOD4gKGEg YW1kb2NzLmltZGcubW9kZWwuQ3VzdG9tZXIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LkludGVybmFsRGF0YVNlcmlhbGl6ZXIuaW52b2tlRnJvbURhdGEoSW50ZXJuYWxEYXRhU2VyaWFs aXplci5qYXZhOjIzNzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVybmFsRGF0 YVNlcmlhbGl6ZXIucmVhZERhdGFTZXJpYWxpemFibGUoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5q YXZhOjIzOTUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVybmFsRGF0YVNlcmlh bGl6ZXIuYmFzaWNSZWFkT2JqZWN0KEludGVybmFsRGF0YVNlcmlhbGl6ZXIuamF2YToyODEzKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5EYXRhU2VyaWFsaXplci5yZWFkT2JqZWN0KERhdGFTZXJpYWxp emVyLmphdmE6Mjk2MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudXRpbC5CbG9iSGVs cGVyLmRlc2VyaWFsaXplQmxvYihCbG9iSGVscGVyLmphdmE6OTkpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLmRlc2VyaWFsaXplKEVudHJ5RXZlbnRJ bXBsLmphdmE6MTkxMSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlF dmVudEltcGwuZGVzZXJpYWxpemUoRW50cnlFdmVudEltcGwuamF2YToxOTA0KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5WTUNhY2hlZERlc2VyaWFsaXphYmxlLmdldERlc2Vy aWFsaXplZFZhbHVlKFZNQ2FjaGVkRGVzZXJpYWxpemFibGUuamF2YToxMzQpCgktIGxvY2tlZCA8 MHgwMDAwMDAwMmZiNDQzM2E4PiAoYSBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlZN Q2FjaGVkRGVzZXJpYWxpemFibGUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl LkVudHJ5RXZlbnRJbXBsLmxhbWJkYSRnZXROZXdWYWx1ZSQxKEVudHJ5RXZlbnRJbXBsLmphdmE6 OTc1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbCQk TGFtYmRhJDQxLzQwNjg2NjcxNC5hcHBseShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5hcGFjaGUu Z2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwuY2FsbFdpdGhPZmZIZWFwTG9jayhF bnRyeUV2ZW50SW1wbC5qYXZhOjEwMDcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNh Y2hlLkVudHJ5RXZlbnRJbXBsLmdldE5ld1ZhbHVlKEVudHJ5RXZlbnRJbXBsLmphdmE6OTcwKQoJ YXQgYW1kb2NzLmltZGcubGlzdGVuZXJzLnNiZy5TR0luZm9TdWJzdGl0dXRpb25GaWx0ZXIuZ2V0 U3Vic3RpdHV0ZVZhbHVlKFNHSW5mb1N1YnN0aXR1dGlvbkZpbHRlci5qYXZhOjM3KQoJYXQgb3Jn LmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4uQWJzdHJhY3RHYXRld2F5U2VuZGVyLmdl dFN1YnN0aXR1dGVWYWx1ZShBYnN0cmFjdEdhdGV3YXlTZW5kZXIuamF2YToxMDkzKQoJYXQgb3Jn LmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4uQWJzdHJhY3RHYXRld2F5U2VuZGVyLmRp c3RyaWJ1dGUoQWJzdHJhY3RHYXRld2F5U2VuZGVyLmphdmE6OTcxKQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC5jYWNoZS5Mb2NhbFJlZ2lvbi5ub3RpZnlHYXRld2F5U2VuZGVyKExvY2Fs UmVnaW9uLmphdmE6NjIzNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuTG9j YWxSZWdpb24uaW52b2tlUHV0Q2FsbGJhY2tzKExvY2FsUmVnaW9uLmphdmE6NTkyOCkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUucGFydGl0aW9uZWQuUHV0TWVzc2FnZS5vcGVy YXRlT25QYXJ0aXRpb25lZFJlZ2lvbihQdXRNZXNzYWdlLmphdmE6Nzg2KQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5wYXJ0aXRpb25lZC5QYXJ0aXRpb25NZXNzYWdlLnByb2Nl c3MoUGFydGl0aW9uTWVzc2FnZS5qYXZhOjMzMikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJp YnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWVzc2FnZS5zY2hlZHVsZUFjdGlvbihEaXN0cmli dXRpb25NZXNzYWdlLmphdmE6Mzc0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5p bnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdlLnNjaGVkdWxlKERpc3RyaWJ1dGlvbk1lc3NhZ2Uu amF2YTo0MzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3Ry aWJ1dGlvbk1hbmFnZXIuc2NoZWR1bGVJbmNvbWluZ01lc3NhZ2UoRGlzdHJpYnV0aW9uTWFuYWdl ci5qYXZhOjM1NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRp c3RyaWJ1dGlvbk1hbmFnZXIuaGFuZGxlSW5jb21pbmdETXNnKERpc3RyaWJ1dGlvbk1hbmFnZXIu amF2YTozMjA1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0 cmlidXRpb25NYW5hZ2VyJE15TGlzdGVuZXIubWVzc2FnZVJlY2VpdmVkKERpc3RyaWJ1dGlvbk1h bmFnZXIuamF2YTo0Mzg0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5h bC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIuZGlzcGF0Y2hNZXNzYWdl KEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6MTExNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlz dHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdyLkdNU01lbWJlcnNoaXBNYW5hZ2Vy LmhhbmRsZU9yRGVmZXJNZXNzYWdlKEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6MTA0MSkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdy LkdNU01lbWJlcnNoaXBNYW5hZ2VyJE15RENSZWNlaXZlci5tZXNzYWdlUmVjZWl2ZWQoR01TTWVt YmVyc2hpcE1hbmFnZXIuamF2YTo0MDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVk LmludGVybmFsLmRpcmVjdC5EaXJlY3RDaGFubmVsLnJlY2VpdmUoRGlyZWN0Q2hhbm5lbC5qYXZh OjcxNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLlRDUENvbmR1aXQubWVzc2Fn ZVJlY2VpdmVkKFRDUENvbmR1aXQuamF2YTo4NzQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLnRjcC5Db25uZWN0aW9uLmRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uLmphdmE6Mzk2NikK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucHJvY2Vzc05JT0J1 ZmZlcihDb25uZWN0aW9uLmphdmE6MzU1MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu dGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODI4KQoJYXQgb3Jn LmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZh OjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2Nr ZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZv ciAxMC4yMTguMTEwLjY1KHNiaW1nYXBwMjAtc2VydmVyMzozNzEyNCk8djEyPjoxMDI1IHNoYXJl ZCBvcmRlcmVkIHVpZD0xMzggcG9ydD01NjE4NSIgIzQzNyBkYWVtb24gcHJpbz0xMCBvc19wcmlv PTAgdGlkPTB4MDAwMDdmODRlODAzMzAwMCBuaWQ9MHgxZDFmOCB3YWl0aW5nIGZvciBtb25pdG9y IGVudHJ5IFsweDAwMDA3Zjg0MzNiZjkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IEJM T0NLRUQgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgb3JnLmFwYWNoZS5jb21tb25zLnBvb2wuaW1w bC5HZW5lcmljS2V5ZWRPYmplY3RQb29sLmJvcnJvd09iamVjdChHZW5lcmljS2V5ZWRPYmplY3RQ b29sLmphdmE6NzY3KQoJLSB3YWl0aW5nIHRvIGxvY2sgPDB4MDAwMDAwMDIxZWQzOWYwMD4gKGEg b3JnLmFwYWNoZS5jb21tb25zLnBvb2wuaW1wbC5HZW5lcmljS2V5ZWRPYmplY3RQb29sKQoJYXQg YW1kb2NzLmltZGcudXRpbHMucG9vbGluZy5EYXRhUG9vbCREYXRhUG9vbE1hbmFnZXIuZ2V0Qnl0 ZUFycmF5KERhdGFQb29sLmphdmE6MjM2KQoJYXQgYW1kb2NzLmltZGcudXRpbHMucG9vbGluZy5E YXRhUG9vbC5nZXRCeXRlQXJyYXkoRGF0YVBvb2wuamF2YTo5OCkKCWF0IGFtZG9jcy5pbWRnLm1v ZGVsLkJ1c2luZXNzRGF0YS5wb3B1bGF0ZURhdGEoQnVzaW5lc3NEYXRhLmphdmE6MTEwKQoJYXQg YW1kb2NzLmltZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVCdXNpbmVzc0RhdGEoRmxh dEJ1ZmZlcnNVdGlscy5qYXZhOjIyNTUpCglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVy c1V0aWxzLnVwZGF0ZUN1c3RvbWVyRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6MzA4MykKCWF0 IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBkYXRlTmV3Q3VzdG9tZXIoRmxh dEJ1ZmZlcnNVdGlscy5qYXZhOjMxMDMpCglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVy c1V0aWxzLnVwZGF0ZUZyb21DdXN0b21lckRhdGEoRmxhdEJ1ZmZlcnNVdGlscy5qYXZhOjI3OTgp CglhdCBhbWRvY3MuaW1kZy5tb2RlbC5DdXN0b21lci5mcm9tRGF0YShDdXN0b21lci5qYXZhOjY5 NikKCS0gbG9ja2VkIDwweDAwMDAwMDAyYjcwMWQwODg+IChhIGFtZG9jcy5pbWRnLm1vZGVsLkN1 c3RvbWVyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5JbnRlcm5hbERhdGFTZXJpYWxp emVyLmludm9rZUZyb21EYXRhKEludGVybmFsRGF0YVNlcmlhbGl6ZXIuamF2YToyMzcyKQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5JbnRlcm5hbERhdGFTZXJpYWxpemVyLnJlYWREYXRh U2VyaWFsaXphYmxlKEludGVybmFsRGF0YVNlcmlhbGl6ZXIuamF2YToyMzk1KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC5JbnRlcm5hbERhdGFTZXJpYWxpemVyLmJhc2ljUmVhZE9iamVj dChJbnRlcm5hbERhdGFTZXJpYWxpemVyLmphdmE6MjgxMykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUu RGF0YVNlcmlhbGl6ZXIucmVhZE9iamVjdChEYXRhU2VyaWFsaXplci5qYXZhOjI5NjEpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnV0aWwuQmxvYkhlbHBlci5kZXNlcmlhbGl6ZUJsb2Io QmxvYkhlbHBlci5qYXZhOjk5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5F bnRyeUV2ZW50SW1wbC5kZXNlcmlhbGl6ZShFbnRyeUV2ZW50SW1wbC5qYXZhOjE5MTEpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLmRlc2VyaWFsaXpl KEVudHJ5RXZlbnRJbXBsLmphdmE6MTkwNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu Y2FjaGUuVk1DYWNoZWREZXNlcmlhbGl6YWJsZS5nZXREZXNlcmlhbGl6ZWRWYWx1ZShWTUNhY2hl ZERlc2VyaWFsaXphYmxlLmphdmE6MTM0KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDJmYjlkZjFjMD4g KGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5WTUNhY2hlZERlc2VyaWFsaXphYmxl KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5sYW1i ZGEkZ2V0TmV3VmFsdWUkMShFbnRyeUV2ZW50SW1wbC5qYXZhOjk3NSkKCWF0IG9yZy5hcGFjaGUu Z2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwkJExhbWJkYSQ0MS80MDY4NjY3MTQu YXBwbHkoVW5rbm93biBTb3VyY2UpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl LkVudHJ5RXZlbnRJbXBsLmNhbGxXaXRoT2ZmSGVhcExvY2soRW50cnlFdmVudEltcGwuamF2YTox MDA3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5n ZXROZXdWYWx1ZShFbnRyeUV2ZW50SW1wbC5qYXZhOjk3MCkKCWF0IGFtZG9jcy5pbWRnLmxpc3Rl bmVycy5zYmcuU0dJbmZvU3Vic3RpdHV0aW9uRmlsdGVyLmdldFN1YnN0aXR1dGVWYWx1ZShTR0lu Zm9TdWJzdGl0dXRpb25GaWx0ZXIuamF2YTozNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwuY2FjaGUud2FuLkFic3RyYWN0R2F0ZXdheVNlbmRlci5nZXRTdWJzdGl0dXRlVmFsdWUoQWJz dHJhY3RHYXRld2F5U2VuZGVyLmphdmE6MTA5MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwuY2FjaGUud2FuLkFic3RyYWN0R2F0ZXdheVNlbmRlci5kaXN0cmlidXRlKEFic3RyYWN0R2F0 ZXdheVNlbmRlci5qYXZhOjk3MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu TG9jYWxSZWdpb24ubm90aWZ5R2F0ZXdheVNlbmRlcihMb2NhbFJlZ2lvbi5qYXZhOjYyMzQpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkxvY2FsUmVnaW9uLmludm9rZVB1dENh bGxiYWNrcyhMb2NhbFJlZ2lvbi5qYXZhOjU5MjgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLmNhY2hlLnBhcnRpdGlvbmVkLlB1dE1lc3NhZ2Uub3BlcmF0ZU9uUGFydGl0aW9uZWRSZWdp b24oUHV0TWVzc2FnZS5qYXZhOjc4NikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2Fj aGUucGFydGl0aW9uZWQuUGFydGl0aW9uTWVzc2FnZS5wcm9jZXNzKFBhcnRpdGlvbk1lc3NhZ2Uu amF2YTozMzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3Ry aWJ1dGlvbk1lc3NhZ2Uuc2NoZWR1bGVBY3Rpb24oRGlzdHJpYnV0aW9uTWVzc2FnZS5qYXZhOjM3 NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9u TWVzc2FnZS5zY2hlZHVsZShEaXN0cmlidXRpb25NZXNzYWdlLmphdmE6NDMyKQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyLnNjaGVk dWxlSW5jb21pbmdNZXNzYWdlKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YTozNTcxKQoJYXQgb3Jn LmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyLmhh bmRsZUluY29taW5nRE1zZyhEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6MzIwNSkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlciRNeUxp c3RlbmVyLm1lc3NhZ2VSZWNlaXZlZChEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6NDM4NCkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdy LkdNU01lbWJlcnNoaXBNYW5hZ2VyLmRpc3BhdGNoTWVzc2FnZShHTVNNZW1iZXJzaGlwTWFuYWdl ci5qYXZhOjExMTcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLm1l bWJlcnNoaXAuZ21zLm1nci5HTVNNZW1iZXJzaGlwTWFuYWdlci5oYW5kbGVPckRlZmVyTWVzc2Fn ZShHTVNNZW1iZXJzaGlwTWFuYWdlci5qYXZhOjEwNDEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRp c3RyaWJ1dGVkLmludGVybmFsLm1lbWJlcnNoaXAuZ21zLm1nci5HTVNNZW1iZXJzaGlwTWFuYWdl ciRNeURDUmVjZWl2ZXIubWVzc2FnZVJlY2VpdmVkKEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6 NDA4KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5kaXJlY3QuRGly ZWN0Q2hhbm5lbC5yZWNlaXZlKERpcmVjdENoYW5uZWwuamF2YTo3MTQpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmludGVybmFsLnRjcC5UQ1BDb25kdWl0Lm1lc3NhZ2VSZWNlaXZlZChUQ1BDb25kdWl0 LmphdmE6ODc0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5k aXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbi5qYXZhOjM5NjYpCglhdCBvcmcuYXBhY2hlLmdlb2Rl LmludGVybmFsLnRjcC5Db25uZWN0aW9uLnByb2Nlc3NOSU9CdWZmZXIoQ29ubmVjdGlvbi5qYXZh OjM1NTIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5p b1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgyOCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5n LlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25p emVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42MShzYmlt Z2FwcDE2LXNlcnZlcjM6NTAyNzIpPHY2PjoxMDI0IHNoYXJlZCBvcmRlcmVkIHVpZD0xNDEgcG9y dD02NDkwNSIgIzQyMyBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODRlODVh YjAwMCBuaWQ9MHgxYmYxYyB3YWl0aW5nIGZvciBtb25pdG9yIGVudHJ5IFsweDAwMDA3Zjg0MzM5 ZjcwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IEJMT0NLRUQgKG9uIG9iamVjdCBtb25p dG9yKQoJYXQgb3JnLmFwYWNoZS5jb21tb25zLnBvb2wuaW1wbC5HZW5lcmljS2V5ZWRPYmplY3RQ b29sLmJvcnJvd09iamVjdChHZW5lcmljS2V5ZWRPYmplY3RQb29sLmphdmE6NzY3KQoJLSB3YWl0 aW5nIHRvIGxvY2sgPDB4MDAwMDAwMDIxZWQzOWYwMD4gKGEgb3JnLmFwYWNoZS5jb21tb25zLnBv b2wuaW1wbC5HZW5lcmljS2V5ZWRPYmplY3RQb29sKQoJYXQgYW1kb2NzLmltZGcudXRpbHMucG9v bGluZy5EYXRhUG9vbCREYXRhUG9vbE1hbmFnZXIuZ2V0Qnl0ZUFycmF5KERhdGFQb29sLmphdmE6 MjM2KQoJYXQgYW1kb2NzLmltZGcudXRpbHMucG9vbGluZy5EYXRhUG9vbC5nZXRCeXRlQXJyYXko RGF0YVBvb2wuamF2YTo5OCkKCWF0IGFtZG9jcy5pbWRnLm1vZGVsLkJ1c2luZXNzRGF0YS5wb3B1 bGF0ZURhdGEoQnVzaW5lc3NEYXRhLmphdmE6MTEwKQoJYXQgYW1kb2NzLmltZGcudXRpbHMuRmxh dEJ1ZmZlcnNVdGlscy51cGRhdGVCdXNpbmVzc0RhdGEoRmxhdEJ1ZmZlcnNVdGlscy5qYXZhOjIy NTUpCglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVwZGF0ZUN1c3RvbWVy RGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6MzA4MykKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZs YXRCdWZmZXJzVXRpbHMudXBkYXRlTmV3Q3VzdG9tZXIoRmxhdEJ1ZmZlcnNVdGlscy5qYXZhOjMx MDMpCglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVwZGF0ZUZyb21DdXN0 b21lckRhdGEoRmxhdEJ1ZmZlcnNVdGlscy5qYXZhOjI3OTgpCglhdCBhbWRvY3MuaW1kZy5tb2Rl bC5DdXN0b21lci5mcm9tRGF0YShDdXN0b21lci5qYXZhOjY5NikKCS0gbG9ja2VkIDwweDAwMDAw MDAyNDlhNWM1ODA+IChhIGFtZG9jcy5pbWRnLm1vZGVsLkN1c3RvbWVyKQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC5JbnRlcm5hbERhdGFTZXJpYWxpemVyLmludm9rZUZyb21EYXRhKElu dGVybmFsRGF0YVNlcmlhbGl6ZXIuamF2YToyMzcyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRl cm5hbC5JbnRlcm5hbERhdGFTZXJpYWxpemVyLnJlYWREYXRhU2VyaWFsaXphYmxlKEludGVybmFs RGF0YVNlcmlhbGl6ZXIuamF2YToyMzk1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5J bnRlcm5hbERhdGFTZXJpYWxpemVyLmJhc2ljUmVhZE9iamVjdChJbnRlcm5hbERhdGFTZXJpYWxp emVyLmphdmE6MjgxMykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuRGF0YVNlcmlhbGl6ZXIucmVhZE9i amVjdChEYXRhU2VyaWFsaXplci5qYXZhOjI5NjEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLnV0aWwuQmxvYkhlbHBlci5kZXNlcmlhbGl6ZUJsb2IoQmxvYkhlbHBlci5qYXZhOjk5KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5kZXNlcmlh bGl6ZShFbnRyeUV2ZW50SW1wbC5qYXZhOjE5MTEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLmRlc2VyaWFsaXplKEVudHJ5RXZlbnRJbXBsLmphdmE6 MTkwNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuVk1DYWNoZWREZXNlcmlh bGl6YWJsZS5nZXREZXNlcmlhbGl6ZWRWYWx1ZShWTUNhY2hlZERlc2VyaWFsaXphYmxlLmphdmE6 MTM0KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDI0OWE2ODA5MD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5p bnRlcm5hbC5jYWNoZS5WTUNhY2hlZERlc2VyaWFsaXphYmxlKQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5sYW1iZGEkZ2V0TmV3VmFsdWUkMShFbnRy eUV2ZW50SW1wbC5qYXZhOjk3NSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu RW50cnlFdmVudEltcGwkJExhbWJkYSQ0MS80MDY4NjY3MTQuYXBwbHkoVW5rbm93biBTb3VyY2Up CglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLmNhbGxX aXRoT2ZmSGVhcExvY2soRW50cnlFdmVudEltcGwuamF2YToxMDA3KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5nZXROZXdWYWx1ZShFbnRyeUV2ZW50 SW1wbC5qYXZhOjk3MCkKCWF0IGFtZG9jcy5pbWRnLmxpc3RlbmVycy5zYmcuU0dJbmZvU3Vic3Rp dHV0aW9uRmlsdGVyLmdldFN1YnN0aXR1dGVWYWx1ZShTR0luZm9TdWJzdGl0dXRpb25GaWx0ZXIu amF2YTozNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLkFic3RyYWN0 R2F0ZXdheVNlbmRlci5nZXRTdWJzdGl0dXRlVmFsdWUoQWJzdHJhY3RHYXRld2F5U2VuZGVyLmph dmE6MTA5MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLkFic3RyYWN0 R2F0ZXdheVNlbmRlci5kaXN0cmlidXRlKEFic3RyYWN0R2F0ZXdheVNlbmRlci5qYXZhOjk3MSkK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuTG9jYWxSZWdpb24ubm90aWZ5R2F0 ZXdheVNlbmRlcihMb2NhbFJlZ2lvbi5qYXZhOjYyMzQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLkxvY2FsUmVnaW9uLmludm9rZVB1dENhbGxiYWNrcyhMb2NhbFJlZ2lvbi5q YXZhOjU5MjgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLnBhcnRpdGlvbmVk LlB1dE1lc3NhZ2Uub3BlcmF0ZU9uUGFydGl0aW9uZWRSZWdpb24oUHV0TWVzc2FnZS5qYXZhOjc4 NikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUucGFydGl0aW9uZWQuUGFydGl0 aW9uTWVzc2FnZS5wcm9jZXNzKFBhcnRpdGlvbk1lc3NhZ2UuamF2YTozMzIpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1lc3NhZ2Uuc2NoZWR1 bGVBY3Rpb24oRGlzdHJpYnV0aW9uTWVzc2FnZS5qYXZhOjM3NCkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWVzc2FnZS5zY2hlZHVsZShEaXN0 cmlidXRpb25NZXNzYWdlLmphdmE6NDMyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRl ZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyLnNjaGVkdWxlSW5jb21pbmdNZXNzYWdlKERp c3RyaWJ1dGlvbk1hbmFnZXIuamF2YTozNTcxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmli dXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyLmhhbmRsZUluY29taW5nRE1zZyhEaXN0 cmlidXRpb25NYW5hZ2VyLmphdmE6MzIwNSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0 ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlciRNeUxpc3RlbmVyLm1lc3NhZ2VSZWNlaXZl ZChEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6NDM4NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlz dHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdyLkdNU01lbWJlcnNoaXBNYW5hZ2Vy LmRpc3BhdGNoTWVzc2FnZShHTVNNZW1iZXJzaGlwTWFuYWdlci5qYXZhOjExMTcpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLm1lbWJlcnNoaXAuZ21zLm1nci5HTVNN ZW1iZXJzaGlwTWFuYWdlci5oYW5kbGVPckRlZmVyTWVzc2FnZShHTVNNZW1iZXJzaGlwTWFuYWdl ci5qYXZhOjEwNDEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLm1l bWJlcnNoaXAuZ21zLm1nci5HTVNNZW1iZXJzaGlwTWFuYWdlciRNeURDUmVjZWl2ZXIubWVzc2Fn ZVJlY2VpdmVkKEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6NDA4KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5kaXJlY3QuRGlyZWN0Q2hhbm5lbC5yZWNlaXZlKERp cmVjdENoYW5uZWwuamF2YTo3MTQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5U Q1BDb25kdWl0Lm1lc3NhZ2VSZWNlaXZlZChUQ1BDb25kdWl0LmphdmE6ODc0KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5kaXNwYXRjaE1lc3NhZ2UoQ29ubmVj dGlvbi5qYXZhOjM5NjYpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0 aW9uLnByb2Nlc3NOSU9CdWZmZXIoQ29ubmVjdGlvbi5qYXZhOjM1NTIpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmph dmE6MTgyOCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVu KENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmph dmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlBvb2xl ZCBNZXNzYWdlIFByb2Nlc3NvciAxMCIgIzQwNyBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlk PTB4MDAwMDdmODQ4ODEwMzgwMCBuaWQ9MHgxYWE0NSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgw MDAwN2Y4NGQwZDlhMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5HIChwYXJr aW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0 byB3YWl0IGZvciAgPDB4MDAwMDAwMDIxZGMyMjU0MD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQu U3luY2hyb25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu bG9ja3MuTG9ja1N1cHBvcnQucGFyayhMb2NrU3VwcG9ydC5qYXZhOjE3NSkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVldWUkVHJhbnNmZXJTdGFjay5hd2FpdEZ1bGZpbGwo U3luY2hyb25vdXNRdWV1ZS5qYXZhOjQ1OCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNo cm9ub3VzUXVldWUkVHJhbnNmZXJTdGFjay50cmFuc2ZlcihTeW5jaHJvbm91c1F1ZXVlLmphdmE6 MzYyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU3luY2hyb25vdXNRdWV1ZS50YWtlKFN5bmNo cm9ub3VzUXVldWUuamF2YTo5MjQpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY3KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhl Y3V0b3IuamF2YToxMTI3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1 dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE3KQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyLnJ1blVudGls U2h1dGRvd24oRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjY3MSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlciQ0JDEucnVuKERpc3Ry aWJ1dGlvbk1hbmFnZXIuamF2YTo5NDIpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQu amF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQ IG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjY0KHNiaW1nYXBwMTktc2VydmVyMToxMDk3 MTIpPHYxMj46MTAyNiBzaGFyZWQgb3JkZXJlZCB1aWQ9MTM4IHBvcnQ9NjA5OTciICM0MDQgZGFl bW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0ZTg2ZDQwMDAgbmlkPTB4MWFhM2Ig d2FpdGluZyBmb3IgbW9uaXRvciBlbnRyeSBbMHgwMDAwN2Y4NGQwMjhlMDAwXQogICBqYXZhLmxh bmcuVGhyZWFkLlN0YXRlOiBCTE9DS0VEIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IG9yZy5hcGFj aGUuY29tbW9ucy5wb29sLmltcGwuR2VuZXJpY0tleWVkT2JqZWN0UG9vbC5ib3Jyb3dPYmplY3Qo R2VuZXJpY0tleWVkT2JqZWN0UG9vbC5qYXZhOjc2NykKCS0gd2FpdGluZyB0byBsb2NrIDwweDAw MDAwMDAyMWVkMzlmMDA+IChhIG9yZy5hcGFjaGUuY29tbW9ucy5wb29sLmltcGwuR2VuZXJpY0tl eWVkT2JqZWN0UG9vbCkKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2wkRGF0 YVBvb2xNYW5hZ2VyLmdldEJ5dGVBcnJheShEYXRhUG9vbC5qYXZhOjIzNikKCWF0IGFtZG9jcy5p bWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2wuZ2V0Qnl0ZUFycmF5KERhdGFQb29sLmphdmE6OTgp CglhdCBhbWRvY3MuaW1kZy5tb2RlbC5CdXNpbmVzc0RhdGEucG9wdWxhdGVEYXRhKEJ1c2luZXNz RGF0YS5qYXZhOjExMCkKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMudXBk YXRlQnVzaW5lc3NEYXRhKEZsYXRCdWZmZXJzVXRpbHMuamF2YToyMjU1KQoJYXQgYW1kb2NzLmlt ZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVDdXN0b21lckRhdGEoRmxhdEJ1ZmZlcnNV dGlscy5qYXZhOjMwODMpCglhdCBhbWRvY3MuaW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVw ZGF0ZU5ld0N1c3RvbWVyKEZsYXRCdWZmZXJzVXRpbHMuamF2YTozMTAzKQoJYXQgYW1kb2NzLmlt ZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVGcm9tQ3VzdG9tZXJEYXRhKEZsYXRCdWZm ZXJzVXRpbHMuamF2YToyNzk4KQoJYXQgYW1kb2NzLmltZGcubW9kZWwuQ3VzdG9tZXIuZnJvbURh dGEoQ3VzdG9tZXIuamF2YTo2OTYpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjQ2OWRkMGE4PiAoYSBh bWRvY3MuaW1kZy5tb2RlbC5DdXN0b21lcikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu SW50ZXJuYWxEYXRhU2VyaWFsaXplci5pbnZva2VGcm9tRGF0YShJbnRlcm5hbERhdGFTZXJpYWxp emVyLmphdmE6MjM3MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRh U2VyaWFsaXplci5yZWFkRGF0YVNlcmlhbGl6YWJsZShJbnRlcm5hbERhdGFTZXJpYWxpemVyLmph dmE6MjM5NSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuSW50ZXJuYWxEYXRhU2VyaWFs aXplci5iYXNpY1JlYWRPYmplY3QoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjI4MTMpCglh dCBvcmcuYXBhY2hlLmdlb2RlLkRhdGFTZXJpYWxpemVyLnJlYWRPYmplY3QoRGF0YVNlcmlhbGl6 ZXIuamF2YToyOTYxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC51dGlsLkJsb2JIZWxw ZXIuZGVzZXJpYWxpemVCbG9iKEJsb2JIZWxwZXIuamF2YTo5OSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwuZGVzZXJpYWxpemUoRW50cnlFdmVudElt cGwuamF2YToxOTExKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2 ZW50SW1wbC5kZXNlcmlhbGl6ZShFbnRyeUV2ZW50SW1wbC5qYXZhOjE5MDQpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlZNQ2FjaGVkRGVzZXJpYWxpemFibGUuZ2V0RGVzZXJp YWxpemVkVmFsdWUoVk1DYWNoZWREZXNlcmlhbGl6YWJsZS5qYXZhOjEzNCkKCS0gbG9ja2VkIDww eDAwMDAwMDAyMWU3YjUyOTA+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuVk1D YWNoZWREZXNlcmlhbGl6YWJsZSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu RW50cnlFdmVudEltcGwubGFtYmRhJGdldE5ld1ZhbHVlJDEoRW50cnlFdmVudEltcGwuamF2YTo5 NzUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsJCRM YW1iZGEkNDEvNDA2ODY2NzE0LmFwcGx5KFVua25vd24gU291cmNlKQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbC5jYWxsV2l0aE9mZkhlYXBMb2NrKEVu dHJ5RXZlbnRJbXBsLmphdmE6MTAwNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2Fj aGUuRW50cnlFdmVudEltcGwuZ2V0TmV3VmFsdWUoRW50cnlFdmVudEltcGwuamF2YTo5NzApCglh dCBhbWRvY3MuaW1kZy5saXN0ZW5lcnMuc2JnLlNHSW5mb1N1YnN0aXR1dGlvbkZpbHRlci5nZXRT dWJzdGl0dXRlVmFsdWUoU0dJbmZvU3Vic3RpdHV0aW9uRmlsdGVyLmphdmE6MzcpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXIuZ2V0 U3Vic3RpdHV0ZVZhbHVlKEFic3RyYWN0R2F0ZXdheVNlbmRlci5qYXZhOjEwOTMpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXIuZGlz dHJpYnV0ZShBYnN0cmFjdEdhdGV3YXlTZW5kZXIuamF2YTo5NzEpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLmNhY2hlLkxvY2FsUmVnaW9uLm5vdGlmeUdhdGV3YXlTZW5kZXIoTG9jYWxS ZWdpb24uamF2YTo2MjM0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5Mb2Nh bFJlZ2lvbi5pbnZva2VQdXRDYWxsYmFja3MoTG9jYWxSZWdpb24uamF2YTo1OTI4KQoJYXQgb3Jn LmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5wYXJ0aXRpb25lZC5QdXRNZXNzYWdlLm9wZXJh dGVPblBhcnRpdGlvbmVkUmVnaW9uKFB1dE1lc3NhZ2UuamF2YTo3ODYpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmludGVybmFsLmNhY2hlLnBhcnRpdGlvbmVkLlBhcnRpdGlvbk1lc3NhZ2UucHJvY2Vz cyhQYXJ0aXRpb25NZXNzYWdlLmphdmE6MzMyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmli dXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdlLnNjaGVkdWxlQWN0aW9uKERpc3RyaWJ1 dGlvbk1lc3NhZ2UuamF2YTozNzQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmlu dGVybmFsLkRpc3RyaWJ1dGlvbk1lc3NhZ2Uuc2NoZWR1bGUoRGlzdHJpYnV0aW9uTWVzc2FnZS5q YXZhOjQzMikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJp YnV0aW9uTWFuYWdlci5zY2hlZHVsZUluY29taW5nTWVzc2FnZShEaXN0cmlidXRpb25NYW5hZ2Vy LmphdmE6MzU3MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlz dHJpYnV0aW9uTWFuYWdlci5oYW5kbGVJbmNvbWluZ0RNc2coRGlzdHJpYnV0aW9uTWFuYWdlci5q YXZhOjMyMDUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3Ry aWJ1dGlvbk1hbmFnZXIkTXlMaXN0ZW5lci5tZXNzYWdlUmVjZWl2ZWQoRGlzdHJpYnV0aW9uTWFu YWdlci5qYXZhOjQzODQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFs Lm1lbWJlcnNoaXAuZ21zLm1nci5HTVNNZW1iZXJzaGlwTWFuYWdlci5kaXNwYXRjaE1lc3NhZ2Uo R01TTWVtYmVyc2hpcE1hbmFnZXIuamF2YToxMTE3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0 cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVtYmVyc2hpcE1hbmFnZXIu aGFuZGxlT3JEZWZlck1lc3NhZ2UoR01TTWVtYmVyc2hpcE1hbmFnZXIuamF2YToxMDQxKQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5tZ3Iu R01TTWVtYmVyc2hpcE1hbmFnZXIkTXlEQ1JlY2VpdmVyLm1lc3NhZ2VSZWNlaXZlZChHTVNNZW1i ZXJzaGlwTWFuYWdlci5qYXZhOjQwOCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQu aW50ZXJuYWwuZGlyZWN0LkRpcmVjdENoYW5uZWwucmVjZWl2ZShEaXJlY3RDaGFubmVsLmphdmE6 NzE0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuVENQQ29uZHVpdC5tZXNzYWdl UmVjZWl2ZWQoVENQQ29uZHVpdC5qYXZhOjg3NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwudGNwLkNvbm5lY3Rpb24uZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24uamF2YTozOTY2KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5wcm9jZXNzTklPQnVm ZmVyKENvbm5lY3Rpb24uamF2YTozNTUyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50 Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MjgpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6 MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tl ZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9y IDEwLjIxOC4xMTAuNjAoc2JpbWdhcHAxNS1zZXJ2ZXIyOjE3NDYpPHY3PjoxMDI0IHNoYXJlZCBv cmRlcmVkIHVpZD0xNDAgcG9ydD01NTg4MiIgIzQwMyBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAg dGlkPTB4MDAwMDdmODRlODAxMDgwMCBuaWQ9MHgxYTk5MiB3YWl0aW5nIGZvciBtb25pdG9yIGVu dHJ5IFsweDAwMDA3Zjg0ZDBmOWEwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IEJMT0NL RUQgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5jYWNoZS5DYWNoZUZh Y3RvcnkuZ2V0QW55SW5zdGFuY2UoQ2FjaGVGYWN0b3J5LmphdmE6MjgyKQoJLSB3YWl0aW5nIHRv IGxvY2sgPDB4MDAwMDAwMDIxZGUzOGQ3MD4gKGEgamF2YS5sYW5nLkNsYXNzIGZvciBvcmcuYXBh Y2hlLmdlb2RlLmNhY2hlLkNhY2hlRmFjdG9yeSkKCWF0IGFtZG9jcy5pbWRnLnN0YXRpc3RpY3Mu R2VtRmlyZVN0YXRpc3RpY3NGYWN0b3J5LmdldFN0YXRpc3RpY3NGYWN0b3J5KEdlbUZpcmVTdGF0 aXN0aWNzRmFjdG9yeS5qYXZhOjQzKQoJYXQgYW1kb2NzLmltZGcuc3RhdGlzdGljcy5WU0RDb3Vu dGVyc01hbmFnZXIuPGluaXQ+KFZTRENvdW50ZXJzTWFuYWdlci5qYXZhOjM1KQoJYXQgYW1kb2Nz LmltZGcuc3RhdGlzdGljcy5WU0RDb3VudGVyc01hbmFnZXIuPGNsaW5pdD4oVlNEQ291bnRlcnNN YW5hZ2VyLmphdmE6MTkpCglhdCBhbWRvY3MuaW1kZy5zdGF0aXN0aWNzLkNvdW50ZXJzTWFuYWdl ckZhY3RvcnkuZ2V0Q291bnRlcnNNYW5hZ2VyKENvdW50ZXJzTWFuYWdlckZhY3RvcnkuamF2YToy NykKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLnBvb2xpbmcuRGF0YVBvb2xGYWN0b3J5Lm1ha2VPYmpl Y3QoRGF0YVBvb2xGYWN0b3J5LmphdmE6NDIpCglhdCBvcmcuYXBhY2hlLmNvbW1vbnMucG9vbC5p bXBsLkdlbmVyaWNLZXllZE9iamVjdFBvb2wuYm9ycm93T2JqZWN0KEdlbmVyaWNLZXllZE9iamVj dFBvb2wuamF2YTo3OTcpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlZDM5ZjAwPiAoYSBvcmcuYXBh Y2hlLmNvbW1vbnMucG9vbC5pbXBsLkdlbmVyaWNLZXllZE9iamVjdFBvb2wpCglhdCBhbWRvY3Mu aW1kZy51dGlscy5wb29saW5nLkRhdGFQb29sJERhdGFQb29sTWFuYWdlci5nZXRCeXRlQXJyYXko RGF0YVBvb2wuamF2YToyMzYpCglhdCBhbWRvY3MuaW1kZy51dGlscy5wb29saW5nLkRhdGFQb29s LmdldEJ5dGVBcnJheShEYXRhUG9vbC5qYXZhOjk4KQoJYXQgYW1kb2NzLmltZGcubW9kZWwuQnVz aW5lc3NEYXRhLnBvcHVsYXRlRGF0YShCdXNpbmVzc0RhdGEuamF2YToxMTApCglhdCBhbWRvY3Mu aW1kZy51dGlscy5GbGF0QnVmZmVyc1V0aWxzLnVwZGF0ZUJ1c2luZXNzRGF0YShGbGF0QnVmZmVy c1V0aWxzLmphdmE6MjI1NSkKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMu dXBkYXRlQ3VzdG9tZXJEYXRhKEZsYXRCdWZmZXJzVXRpbHMuamF2YTozMDgzKQoJYXQgYW1kb2Nz LmltZGcudXRpbHMuRmxhdEJ1ZmZlcnNVdGlscy51cGRhdGVOZXdDdXN0b21lcihGbGF0QnVmZmVy c1V0aWxzLmphdmE6MzEwMykKCWF0IGFtZG9jcy5pbWRnLnV0aWxzLkZsYXRCdWZmZXJzVXRpbHMu dXBkYXRlRnJvbUN1c3RvbWVyRGF0YShGbGF0QnVmZmVyc1V0aWxzLmphdmE6Mjc5OCkKCWF0IGFt ZG9jcy5pbWRnLm1vZGVsLkN1c3RvbWVyLmZyb21EYXRhKEN1c3RvbWVyLmphdmE6Njk2KQoJLSBs b2NrZWQgPDB4MDAwMDAwMDI0NjlkZDEzOD4gKGEgYW1kb2NzLmltZGcubW9kZWwuQ3VzdG9tZXIp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIuaW52 b2tlRnJvbURhdGEoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjIzNzIpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIucmVhZERhdGFTZXJpYWxp emFibGUoSW50ZXJuYWxEYXRhU2VyaWFsaXplci5qYXZhOjIzOTUpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLkludGVybmFsRGF0YVNlcmlhbGl6ZXIuYmFzaWNSZWFkT2JqZWN0KEludGVy bmFsRGF0YVNlcmlhbGl6ZXIuamF2YToyODEzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5EYXRhU2Vy aWFsaXplci5yZWFkT2JqZWN0KERhdGFTZXJpYWxpemVyLmphdmE6Mjk2MSkKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwudXRpbC5CbG9iSGVscGVyLmRlc2VyaWFsaXplQmxvYihCbG9iSGVs cGVyLmphdmE6OTkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZl bnRJbXBsLmRlc2VyaWFsaXplKEVudHJ5RXZlbnRJbXBsLmphdmE6MTkxMSkKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlFdmVudEltcGwuZGVzZXJpYWxpemUoRW50cnlF dmVudEltcGwuamF2YToxOTA0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5W TUNhY2hlZERlc2VyaWFsaXphYmxlLmdldERlc2VyaWFsaXplZFZhbHVlKFZNQ2FjaGVkRGVzZXJp YWxpemFibGUuamF2YToxMzQpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlN2I1MGM4PiAoYSBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlZNQ2FjaGVkRGVzZXJpYWxpemFibGUpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLmxhbWJkYSRnZXRO ZXdWYWx1ZSQxKEVudHJ5RXZlbnRJbXBsLmphdmE6OTc1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5p bnRlcm5hbC5jYWNoZS5FbnRyeUV2ZW50SW1wbCQkTGFtYmRhJDQxLzQwNjg2NjcxNC5hcHBseShV bmtub3duIFNvdXJjZSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRW50cnlF dmVudEltcGwuY2FsbFdpdGhPZmZIZWFwTG9jayhFbnRyeUV2ZW50SW1wbC5qYXZhOjEwMDcpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkVudHJ5RXZlbnRJbXBsLmdldE5ld1Zh bHVlKEVudHJ5RXZlbnRJbXBsLmphdmE6OTcwKQoJYXQgYW1kb2NzLmltZGcubGlzdGVuZXJzLnNi Zy5TR0luZm9TdWJzdGl0dXRpb25GaWx0ZXIuZ2V0U3Vic3RpdHV0ZVZhbHVlKFNHSW5mb1N1YnN0 aXR1dGlvbkZpbHRlci5qYXZhOjM3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNo ZS53YW4uQWJzdHJhY3RHYXRld2F5U2VuZGVyLmdldFN1YnN0aXR1dGVWYWx1ZShBYnN0cmFjdEdh dGV3YXlTZW5kZXIuamF2YToxMDkzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNo ZS53YW4uQWJzdHJhY3RHYXRld2F5U2VuZGVyLmRpc3RyaWJ1dGUoQWJzdHJhY3RHYXRld2F5U2Vu ZGVyLmphdmE6OTcxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5Mb2NhbFJl Z2lvbi5ub3RpZnlHYXRld2F5U2VuZGVyKExvY2FsUmVnaW9uLmphdmE6NjIzNCkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuTG9jYWxSZWdpb24uaW52b2tlUHV0Q2FsbGJhY2tz KExvY2FsUmVnaW9uLmphdmE6NTkyOCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2Fj aGUucGFydGl0aW9uZWQuUHV0TWVzc2FnZS5vcGVyYXRlT25QYXJ0aXRpb25lZFJlZ2lvbihQdXRN ZXNzYWdlLmphdmE6Nzg2KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5wYXJ0 aXRpb25lZC5QYXJ0aXRpb25NZXNzYWdlLnByb2Nlc3MoUGFydGl0aW9uTWVzc2FnZS5qYXZhOjMz MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9u TWVzc2FnZS5zY2hlZHVsZUFjdGlvbihEaXN0cmlidXRpb25NZXNzYWdlLmphdmE6Mzc0KQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdl LnNjaGVkdWxlKERpc3RyaWJ1dGlvbk1lc3NhZ2UuamF2YTo0MzIpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIuc2NoZWR1bGVJbmNv bWluZ01lc3NhZ2UoRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjM1NzEpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIuaGFuZGxlSW5j b21pbmdETXNnKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YTozMjA1KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyJE15TGlzdGVuZXIu bWVzc2FnZVJlY2VpdmVkKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YTo0Mzg0KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5tZ3IuR01TTWVt YmVyc2hpcE1hbmFnZXIuZGlzcGF0Y2hNZXNzYWdlKEdNU01lbWJlcnNoaXBNYW5hZ2VyLmphdmE6 MTExNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwubWVtYmVyc2hp cC5nbXMubWdyLkdNU01lbWJlcnNoaXBNYW5hZ2VyLmhhbmRsZU9yRGVmZXJNZXNzYWdlKEdNU01l bWJlcnNoaXBNYW5hZ2VyLmphdmE6MTA0MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0 ZWQuaW50ZXJuYWwubWVtYmVyc2hpcC5nbXMubWdyLkdNU01lbWJlcnNoaXBNYW5hZ2VyJE15RENS ZWNlaXZlci5tZXNzYWdlUmVjZWl2ZWQoR01TTWVtYmVyc2hpcE1hbmFnZXIuamF2YTo0MDgpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLmRpcmVjdC5EaXJlY3RDaGFu bmVsLnJlY2VpdmUoRGlyZWN0Q2hhbm5lbC5qYXZhOjcxNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUu aW50ZXJuYWwudGNwLlRDUENvbmR1aXQubWVzc2FnZVJlY2VpdmVkKFRDUENvbmR1aXQuamF2YTo4 NzQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLmRpc3BhdGNo TWVzc2FnZShDb25uZWN0aW9uLmphdmE6Mzk2NikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwudGNwLkNvbm5lY3Rpb24ucHJvY2Vzc05JT0J1ZmZlcihDb25uZWN0aW9uLmphdmE6MzU1MikK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVy KENvbm5lY3Rpb24uamF2YToxODI4KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3Au Q29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFk LnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJ LSBOb25lCgoiUGFydGl0aW9uZWRSZWdpb24gTWVzc2FnZSBQcm9jZXNzb3IxIiAjMzc1IGRhZW1v biBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDczODAwIG5pZD0weDE3ZGE5IHdh aXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0MzMwZWYwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRp dmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFkYzI1MDcwPiAo YSBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2spCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tTdXBwb3J0 LmphdmE6MTc1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU3luY2hyb25vdXNRdWV1ZSRUcmFu c2ZlclN0YWNrLmF3YWl0RnVsZmlsbChTeW5jaHJvbm91c1F1ZXVlLmphdmE6NDU4KQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQuU3luY2hyb25vdXNRdWV1ZSRUcmFuc2ZlclN0YWNrLnRyYW5zZmVy KFN5bmNocm9ub3VzUXVldWUuamF2YTozNjIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5j aHJvbm91c1F1ZXVlLnRha2UoU3luY2hyb25vdXNRdWV1ZS5qYXZhOjkyNCkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRv ci5qYXZhOjEwNjcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3Iu cnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjcpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3Iu amF2YTo2MTcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3Ry aWJ1dGlvbk1hbmFnZXIucnVuVW50aWxTaHV0ZG93bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6 NjcxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRp b25NYW5hZ2VyJDgkMS5ydW4oRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjEwODgpCglhdCBqYXZh LmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5j aHJvbml6ZXJzOgoJLSBOb25lCgoiUmVzb3VyY2VNYW5hZ2VyUmVjb3ZlcnlUaHJlYWQgMCIgIzM1 NSBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMGNiODAwIG5pZD0weDE3 YTEzIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0MjQ3MGQwMDBdCiAgIGphdmEubGFu Zy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNh ZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAw MWM5ZDk3NDE4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5Db3VudERvd25MYXRjaCRTeW5jKQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tT dXBwb3J0LmphdmE6MjE1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RR dWV1ZWRTeW5jaHJvbml6ZXIuZG9BY3F1aXJlU2hhcmVkTmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5j aHJvbml6ZXIuamF2YToxMDM3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJh Y3RRdWV1ZWRTeW5jaHJvbml6ZXIudHJ5QWNxdWlyZVNoYXJlZE5hbm9zKEFic3RyYWN0UXVldWVk U3luY2hyb25pemVyLmphdmE6MTMyOCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNvdW50RG93 bkxhdGNoLmF3YWl0KENvdW50RG93bkxhdGNoLmphdmE6Mjc3KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5pbnRlcm5hbC51dGlsLmNvbmN1cnJlbnQuU3RvcHBhYmxlQ291bnREb3duTGF0Y2guYXdhaXQo U3RvcHBhYmxlQ291bnREb3duTGF0Y2guamF2YTo2NCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlz dHJpYnV0ZWQuaW50ZXJuYWwuUmVwbHlQcm9jZXNzb3IyMS5iYXNpY1dhaXQoUmVwbHlQcm9jZXNz b3IyMS5qYXZhOjcxOCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwu UmVwbHlQcm9jZXNzb3IyMS53YWl0Rm9yUmVwbGllc1VuaW50ZXJydXB0aWJseShSZXBseVByb2Nl c3NvcjIxLmphdmE6Nzk1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5h bC5SZXBseVByb2Nlc3NvcjIxLndhaXRGb3JSZXBsaWVzVW5pbnRlcnJ1cHRpYmx5KFJlcGx5UHJv Y2Vzc29yMjEuamF2YTo3NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVy bmFsLlJlcGx5UHJvY2Vzc29yMjEud2FpdEZvclJlcGxpZXNVbmludGVycnVwdGlibHkoUmVwbHlQ cm9jZXNzb3IyMS5qYXZhOjg1OCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50 ZXJuYWwubG9ja3MuRExvY2tSZXF1ZXN0UHJvY2Vzc29yLnJlcXVlc3RMb2NrKERMb2NrUmVxdWVz dFByb2Nlc3Nvci5qYXZhOjI0MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50 ZXJuYWwubG9ja3MuRExvY2tTZXJ2aWNlLmxvY2tJbnRlcnJ1cHRpYmx5KERMb2NrU2VydmljZS5q YXZhOjE1MzcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLmxvY2tz LkRMb2NrU2VydmljZS5sb2NrKERMb2NrU2VydmljZS5qYXZhOjEyNjApCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmludGVybmFsLmNhY2hlLlBhcnRpdGlvbmVkUmVnaW9uJEJ1Y2tldExvY2suYmFzaWNM b2NrKFBhcnRpdGlvbmVkUmVnaW9uLmphdmE6NjY4MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwuY2FjaGUuUGFydGl0aW9uZWRSZWdpb24kQnVja2V0TG9jay5sb2NrKFBhcnRpdGlvbmVk UmVnaW9uLmphdmE6NjYyNikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuUGFy dGl0aW9uZWRSZWdpb24kUmVjb3ZlcnlMb2NrLmxvY2soUGFydGl0aW9uZWRSZWdpb24uamF2YTo2 ODk1KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5wYXJ0aXRpb25lZC5QYXJ0 aXRpb25lZFJlZ2lvblJlYmFsYW5jZU9wLmV4ZWN1dGUoUGFydGl0aW9uZWRSZWdpb25SZWJhbGFu Y2VPcC5qYXZhOjE3NykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuUFJIQVJl ZHVuZGFuY3lQcm92aWRlciQzLnJ1bjIoUFJIQVJlZHVuZGFuY3lQcm92aWRlci5qYXZhOjE1NzUp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLnBhcnRpdGlvbmVkLlJlY292ZXJ5 UnVubmFibGUucnVuKFJlY292ZXJ5UnVubmFibGUuamF2YTo2MSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuT25lVGFza09ubHlFeGVjdXRvciREZWxlZ2F0aW5nUnVubmFibGUucnVuKE9u ZVRhc2tPbmx5RXhlY3V0b3IuamF2YToxMzkpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVj dXRvcnMkUnVubmFibGVBZGFwdGVyLmNhbGwoRXhlY3V0b3JzLmphdmE6NTExKQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay5qYXZhOjI2NikKCWF0IGph dmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciRTY2hlZHVsZWRG dXR1cmVUYXNrLmFjY2VzcyQyMDEoU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTgw KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNj aGVkdWxlZEZ1dHVyZVRhc2sucnVuKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjI5 MykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIo VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRo cmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNykK CWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25h YmxlIHN5bmNocm9uaXplcnM6CgktIDwweDAwMDAwMDAyMWVlMzNjODA+IChhIGphdmEudXRpbC5j b25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIpCgoiRXZlbnQgUHJvY2Vzc29yIGZv ciBHYXRld2F5U2VuZGVyX0FzeW5jRXZlbnRRdWV1ZV9SVE5RdWV1ZV8wIiAjMjk5IGRhZW1vbiBw cmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NDAxMjQwMDAgbmlkPTB4MTc5NTQgcnVubmFi bGUgWzB4MDAwMDdmODQyNDgwZjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURf V0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2Qp CgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAyMWUyNjNmNzg+IChhIGphdmEudXRp bC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9i amVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5v cyhMb2NrU3VwcG9ydC5qYXZhOjIxNSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFi c3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1 ZXVlZFN5bmNocm9uaXplci5qYXZhOjIxNjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LnV0aWwuY29uY3VycmVudC5TdG9wcGFibGVDb25kaXRpb24uYXdhaXQoU3RvcHBhYmxlQ29uZGl0 aW9uLmphdmE6NjEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJh bGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5ibG9ja1Byb2Nlc3NvclRocmVhZElmUmVx dWlyZWQoUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUuamF2YToxMzMyKQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVy UXVldWUucGVlayhQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5qYXZhOjEyNTcpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVu dFByb2Nlc3Nvci5wcm9jZXNzUXVldWUoQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNz b3IuamF2YTo0ODApCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0 cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5ydW4oQWJzdHJhY3RHYXRld2F5U2VuZGVy RXZlbnRQcm9jZXNzb3IuamF2YToxMDU4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVy czoKCS0gTm9uZQoKIkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50 UXVldWVfUlROUXVldWUiICMyOTggZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdm ODU1YzYzMDAwMCBuaWQ9MHgxNzk1MyBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MjQ5MTAw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9y KQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24g PDB4MDAwMDAwMDIxZGY1Y2FmMD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53 YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IpCglhdCBqYXZh LmxhbmcuVGhyZWFkLmpvaW4oVGhyZWFkLmphdmE6MTI0OSkKCS0gbG9ja2VkIDwweDAwMDAwMDAy MWRmNWNhZjA+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVs LlBhcmFsbGVsR2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vzc29yKQoJYXQgamF2YS5sYW5nLlRocmVh ZC5qb2luKFRocmVhZC5qYXZhOjEzMjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNh Y2hlLndhbi5wYXJhbGxlbC5Db25jdXJyZW50UGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9j ZXNzb3IucnVuKENvbmN1cnJlbnRQYXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5q YXZhOjE2NikKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJCYXRj aFJlbW92YWxUaHJlYWQiICMzMDAgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdm ODU1YzYyZTAwMCBuaWQ9MHgxNzk1MiB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NDI0 YTExMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5n KQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3 YWl0IGZvciAgPDB4MDAwMDAwMDIxZTE1ZmI4MD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9j a3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0Lmph dmE6MjE1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5j aHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVy LmphdmE6MjE2MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudXRpbC5jb25jdXJyZW50 LlN0b3BwYWJsZUNvbmRpdGlvbi5hd2FpdChTdG9wcGFibGVDb25kaXRpb24uamF2YTo2MSkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBhcmFsbGVsR2F0 ZXdheVNlbmRlclF1ZXVlJEJhdGNoUmVtb3ZhbFRocmVhZC5ydW4oUGFyYWxsZWxHYXRld2F5U2Vu ZGVyUXVldWUuamF2YToxNjE4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0g Tm9uZQoKIkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVf U0JHdWlkaW5nXzAiICMyOTYgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODUz YzAwZjAwMCBuaWQ9MHgxNzk1MSBydW5uYWJsZSBbMHgwMDAwN2Y4NDI0YjEyMDAwXQogICBqYXZh LmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2Mu VW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAw MDAwMDIxZTE1ZmJmOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1 ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu bG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1KQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0 aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjE2MykKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudXRpbC5jb25jdXJyZW50LlN0b3BwYWJsZUNvbmRp dGlvbi5hd2FpdChTdG9wcGFibGVDb25kaXRpb24uamF2YTo2MSkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBhcmFsbGVsR2F0ZXdheVNlbmRlclF1ZXVl LmJsb2NrUHJvY2Vzc29yVGhyZWFkSWZSZXF1aXJlZChQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1 ZS5qYXZhOjEzMzIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJh bGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5wZWVrKFBhcmFsbGVsR2F0ZXdheVNlbmRl clF1ZXVlLmphdmE6MTI1NykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2Fu LkFic3RyYWN0R2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vzc29yLnByb2Nlc3NRdWV1ZShBYnN0cmFj dEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5qYXZhOjQ4MCkKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuY2FjaGUud2FuLkFic3RyYWN0R2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vzc29y LnJ1bihBYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5qYXZhOjEwNTgpCgogICBM b2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiRXZlbnQgUHJvY2Vzc29yIGZv ciBHYXRld2F5U2VuZGVyX0FzeW5jRXZlbnRRdWV1ZV9TQkd1aWRpbmciICMyOTUgZGFlbW9uIHBy aW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzYyYzAwMCBuaWQ9MHgxNzk1MCBpbiBPYmpl Y3Qud2FpdCgpIFsweDAwMDA3Zjg0MjRjMTMwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6 IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5h dGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4MDAwMDAwMDIxZTZlNDQ1MD4gKGEgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2Vu ZGVyRXZlbnRQcm9jZXNzb3IpCglhdCBqYXZhLmxhbmcuVGhyZWFkLmpvaW4oVGhyZWFkLmphdmE6 MTI0OSkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU2ZTQ0NTA+IChhIG9yZy5hcGFjaGUuZ2VvZGUu aW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBhcmFsbGVsR2F0ZXdheVNlbmRlckV2ZW50UHJv Y2Vzc29yKQoJYXQgamF2YS5sYW5nLlRocmVhZC5qb2luKFRocmVhZC5qYXZhOjEzMjMpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5Db25jdXJyZW50UGFy YWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IucnVuKENvbmN1cnJlbnRQYXJhbGxlbEdh dGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5qYXZhOjE2NikKCiAgIExvY2tlZCBvd25hYmxlIHN5 bmNocm9uaXplcnM6CgktIE5vbmUKCiJCYXRjaFJlbW92YWxUaHJlYWQiICMyOTcgZGFlbW9uIHBy aW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzYyYjAwMCBuaWQ9MHgxNzk0ZiB3YWl0aW5n IG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NDI0ZDE0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0 YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0 aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDIxZGUxOGFmMD4g KGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIk Q29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBv cnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0 KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjE2MykKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwudXRpbC5jb25jdXJyZW50LlN0b3BwYWJsZUNvbmRpdGlvbi5hd2FpdChTdG9w cGFibGVDb25kaXRpb24uamF2YTo2MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2Fj aGUud2FuLnBhcmFsbGVsLlBhcmFsbGVsR2F0ZXdheVNlbmRlclF1ZXVlJEJhdGNoUmVtb3ZhbFRo cmVhZC5ydW4oUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUuamF2YToxNjE4KQoKICAgTG9ja2Vk IG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0 ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVfRHVwQ2hlY2tRdWV1ZV8wIiAjMjkzIGRhZW1vbiBw cmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1MTAxMjA4MDAgbmlkPTB4MTc5NGUgcnVubmFi bGUgWzB4MDAwMDdmODQyNGUxNTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURf V0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2Qp CgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAyMWRlMThjZTg+IChhIGphdmEudXRp bC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9i amVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5v cyhMb2NrU3VwcG9ydC5qYXZhOjIxNSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFi c3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1 ZXVlZFN5bmNocm9uaXplci5qYXZhOjIxNjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LnV0aWwuY29uY3VycmVudC5TdG9wcGFibGVDb25kaXRpb24uYXdhaXQoU3RvcHBhYmxlQ29uZGl0 aW9uLmphdmE6NjEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJh bGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5ibG9ja1Byb2Nlc3NvclRocmVhZElmUmVx dWlyZWQoUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUuamF2YToxMzMyKQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVy UXVldWUucGVlayhQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5qYXZhOjEyNTcpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVu dFByb2Nlc3Nvci5wcm9jZXNzUXVldWUoQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNz b3IuamF2YTo0ODApCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0 cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5ydW4oQWJzdHJhY3RHYXRld2F5U2VuZGVy RXZlbnRQcm9jZXNzb3IuamF2YToxMDU4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVy czoKCS0gTm9uZQoKIkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50 UXVldWVfRHVwQ2hlY2tRdWV1ZSIgIzI5MiBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgw MDAwN2Y4NTVjNjI4MDAwIG5pZD0weDE3OTRkIGluIE9iamVjdC53YWl0KCkgWzB4MDAwMDdmODQy NGYxNjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAob24gb2JqZWN0IG1v bml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCS0gd2FpdGlu ZyBvbiA8MHgwMDAwMDAwMjFlNmU1ZjA4PiAoYSBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNh Y2hlLndhbi5wYXJhbGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3NvcikKCWF0 IGphdmEubGFuZy5UaHJlYWQuam9pbihUaHJlYWQuamF2YToxMjQ5KQoJLSBsb2NrZWQgPDB4MDAw MDAwMDIxZTZlNWYwOD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFy YWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IpCglhdCBqYXZhLmxhbmcu VGhyZWFkLmpvaW4oVGhyZWFkLmphdmE6MTMyMykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwuY2FjaGUud2FuLnBhcmFsbGVsLkNvbmN1cnJlbnRQYXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVu dFByb2Nlc3Nvci5ydW4oQ29uY3VycmVudFBhcmFsbGVsR2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vz c29yLmphdmE6MTY2KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK IkJhdGNoUmVtb3ZhbFRocmVhZCIgIzI5NCBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgw MDAwN2Y4NTVjNjI2ODAwIG5pZD0weDE3OTRjIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3 Zjg0MjUwMTcwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBh cmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5n IHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFkZTA4MTAwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBv cnQuamF2YToyMTUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVl ZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJv bml6ZXIuamF2YToyMTYzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC51dGlsLmNvbmN1 cnJlbnQuU3RvcHBhYmxlQ29uZGl0aW9uLmF3YWl0KFN0b3BwYWJsZUNvbmRpdGlvbi5qYXZhOjYx KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxs ZWxHYXRld2F5U2VuZGVyUXVldWUkQmF0Y2hSZW1vdmFsVGhyZWFkLnJ1bihQYXJhbGxlbEdhdGV3 YXlTZW5kZXJRdWV1ZS5qYXZhOjE2MTgpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJz OgoJLSBOb25lCgoiRXZlbnQgUHJvY2Vzc29yIGZvciBHYXRld2F5U2VuZGVyX0FzeW5jRXZlbnRR dWV1ZV9DdXN0b21lclRvRGVsdGFRdWV1ZV8wIiAjMjkwIGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0w IHRpZD0weDAwMDA3Zjg0ZmMxMTcwMDAgbmlkPTB4MTc5NGIgcnVubmFibGUgWzB4MDAwMDdmODQy NTExODAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2lu ZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8g d2FpdCBmb3IgIDwweDAwMDAwMDAyMWU4MzAxZTg+IChhIGphdmEudXRpbC5jb25jdXJyZW50Lmxv Y2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5q YXZhOjIxNSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3lu Y2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXpl ci5qYXZhOjIxNjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnV0aWwuY29uY3VycmVu dC5TdG9wcGFibGVDb25kaXRpb24uYXdhaXQoU3RvcHBhYmxlQ29uZGl0aW9uLmphdmE6NjEpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5QYXJhbGxlbEdh dGV3YXlTZW5kZXJRdWV1ZS5ibG9ja1Byb2Nlc3NvclRocmVhZElmUmVxdWlyZWQoUGFyYWxsZWxH YXRld2F5U2VuZGVyUXVldWUuamF2YToxMzMyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUucGVlayhQYXJh bGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5qYXZhOjEyNTcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5wcm9j ZXNzUXVldWUoQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IuamF2YTo0ODApCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5k ZXJFdmVudFByb2Nlc3Nvci5ydW4oQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3Iu amF2YToxMDU4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkV2 ZW50IFByb2Nlc3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVfQ3VzdG9tZXJU b0RlbHRhUXVldWUiICMyODkgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1 ZDAxYjgwMCBuaWQ9MHgxNzk0YSBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MjUyMTkwMDBd CiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJ YXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4 MDAwMDAwMDIxZTZlNDdlMD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4u cGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IpCglhdCBqYXZhLmxh bmcuVGhyZWFkLmpvaW4oVGhyZWFkLmphdmE6MTI0OSkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU2 ZTQ3ZTA+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBh cmFsbGVsR2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vzc29yKQoJYXQgamF2YS5sYW5nLlRocmVhZC5q b2luKFRocmVhZC5qYXZhOjEzMjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hl Lndhbi5wYXJhbGxlbC5Db25jdXJyZW50UGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNz b3IucnVuKENvbmN1cnJlbnRQYXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5qYXZh OjE2NikKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJCYXRjaFJl bW92YWxUaHJlYWQiICMyOTEgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1 ZDAxYTAwMCBuaWQ9MHgxNzk0OSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NDI1MzFh MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJ YXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0 IGZvciAgPDB4MDAwMDAwMDIxZGUwODIzOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu QWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6 MjE1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJv bml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmph dmE6MjE2MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudXRpbC5jb25jdXJyZW50LlN0 b3BwYWJsZUNvbmRpdGlvbi5hd2FpdChTdG9wcGFibGVDb25kaXRpb24uamF2YTo2MSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBhcmFsbGVsR2F0ZXdh eVNlbmRlclF1ZXVlJEJhdGNoUmVtb3ZhbFRocmVhZC5ydW4oUGFyYWxsZWxHYXRld2F5U2VuZGVy UXVldWUuamF2YToxNjE4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9u ZQoKIkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVfRXh0 ZXJuYWxSZWNvcmRRdWV1ZV8wIiAjMjg3IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAw MDA3Zjg0ZjgxMDgwMDAgbmlkPTB4MTc5NDggcnVubmFibGUgWzB4MDAwMDdmODQyNTQxYjAwMF0K ICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1 bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3Ig IDwweDAwMDAwMDAyMWRlMDgyYjA+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3Ry YWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIxNSkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVy JENvbmRpdGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIx NjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnV0aWwuY29uY3VycmVudC5TdG9wcGFi bGVDb25kaXRpb24uYXdhaXQoU3RvcHBhYmxlQ29uZGl0aW9uLmphdmE6NjEpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5k ZXJRdWV1ZS5ibG9ja1Byb2Nlc3NvclRocmVhZElmUmVxdWlyZWQoUGFyYWxsZWxHYXRld2F5U2Vu ZGVyUXVldWUuamF2YToxMzMyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53 YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUucGVlayhQYXJhbGxlbEdhdGV3 YXlTZW5kZXJRdWV1ZS5qYXZhOjEyNTcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNh Y2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5wcm9jZXNzUXVldWUo QWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IuamF2YTo0ODApCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVudFBy b2Nlc3Nvci5ydW4oQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IuamF2YToxMDU4 KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkV2ZW50IFByb2Nl c3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVfRXh0ZXJuYWxSZWNvcmRRdWV1 ZSIgIzI4NiBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDE4MDAwIG5p ZD0weDE3OTQ3IGluIE9iamVjdC53YWl0KCkgWzB4MDAwMDdmODQyNTUxYzAwMF0KICAgamF2YS5s YW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxh bmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCS0gd2FpdGluZyBvbiA8MHgwMDAwMDAwMjFl NmU2Mjk4PiAoYSBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5Q YXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3NvcikKCWF0IGphdmEubGFuZy5UaHJlYWQu am9pbihUaHJlYWQuamF2YToxMjQ5KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTZlNjI5OD4gKGEg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRl d2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IpCglhdCBqYXZhLmxhbmcuVGhyZWFkLmpvaW4oVGhyZWFk LmphdmE6MTMyMykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFs bGVsLkNvbmN1cnJlbnRQYXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5ydW4oQ29u Y3VycmVudFBhcmFsbGVsR2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vzc29yLmphdmE6MTY2KQoKICAg TG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkJhdGNoUmVtb3ZhbFRocmVh ZCIgIzI4OCBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDE2ODAwIG5p ZD0weDE3OTQ2IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0MjU2MWQwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlz Yy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgw MDAwMDAwMjFkY2UxNjE4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1 ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMTUpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25k aXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMTYzKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC51dGlsLmNvbmN1cnJlbnQuU3RvcHBhYmxlQ29u ZGl0aW9uLmF3YWl0KFN0b3BwYWJsZUNvbmRpdGlvbi5qYXZhOjYxKQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVl dWUkQmF0Y2hSZW1vdmFsVGhyZWFkLnJ1bihQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5qYXZh OjE2MTgpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiRXZlbnQg UHJvY2Vzc29yIGZvciBHYXRld2F5U2VuZGVyX0FzeW5jRXZlbnRRdWV1ZV9TSUNJbmZvUXVldWVf MCIgIzI4NCBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NGU0MTc4ODAwIG5p ZD0weDE3OTQ1IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MjU3MWUwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFy ayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFkY2Ux NzY4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2Nr U3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMTUpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3Qu YXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMTYzKQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC51dGlsLmNvbmN1cnJlbnQuU3RvcHBhYmxlQ29uZGl0aW9uLmF3YWl0 KFN0b3BwYWJsZUNvbmRpdGlvbi5qYXZhOjYxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUuYmxvY2tQcm9j ZXNzb3JUaHJlYWRJZlJlcXVpcmVkKFBhcmFsbGVsR2F0ZXdheVNlbmRlclF1ZXVlLmphdmE6MTMz MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBhcmFs bGVsR2F0ZXdheVNlbmRlclF1ZXVlLnBlZWsoUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUuamF2 YToxMjU3KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4uQWJzdHJhY3RH YXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IucHJvY2Vzc1F1ZXVlKEFic3RyYWN0R2F0ZXdheVNl bmRlckV2ZW50UHJvY2Vzc29yLmphdmE6NDgwKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC5jYWNoZS53YW4uQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IucnVuKEFic3Ry YWN0R2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vzc29yLmphdmE6MTA1OCkKCiAgIExvY2tlZCBvd25h YmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJFdmVudCBQcm9jZXNzb3IgZm9yIEdhdGV3YXlT ZW5kZXJfQXN5bmNFdmVudFF1ZXVlX1NJQ0luZm9RdWV1ZSIgIzI4MyBkYWVtb24gcHJpbz01IG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDE0ODAwIG5pZD0weDE3OTQ0IGluIE9iamVjdC53YWl0 KCkgWzB4MDAwMDdmODQyNTgxZjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElO RyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1l dGhvZCkKCS0gd2FpdGluZyBvbiA8MHgwMDAwMDAwMjFlNmU1Yjc4PiAoYSBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVu dFByb2Nlc3NvcikKCWF0IGphdmEubGFuZy5UaHJlYWQuam9pbihUaHJlYWQuamF2YToxMjQ5KQoJ LSBsb2NrZWQgPDB4MDAwMDAwMDIxZTZlNWI3OD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3Ip CglhdCBqYXZhLmxhbmcuVGhyZWFkLmpvaW4oVGhyZWFkLmphdmE6MTMyMykKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLkNvbmN1cnJlbnRQYXJhbGxlbEdh dGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5ydW4oQ29uY3VycmVudFBhcmFsbGVsR2F0ZXdheVNl bmRlckV2ZW50UHJvY2Vzc29yLmphdmE6MTY2KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25p emVyczoKCS0gTm9uZQoKIkJhdGNoUmVtb3ZhbFRocmVhZCIgIzI4NSBkYWVtb24gcHJpbz01IG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDE0MDAwIG5pZD0weDE3OTQzIHdhaXRpbmcgb24gY29u ZGl0aW9uIFsweDAwMDA3Zjg0MjU5MjAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJ TUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0 aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFlN2RkYTc4PiAoYSBqYXZh LnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRp b25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJr TmFub3MoTG9ja1N1cHBvcnQuamF2YToyMTUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nr cy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJh Y3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMTYzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRl cm5hbC51dGlsLmNvbmN1cnJlbnQuU3RvcHBhYmxlQ29uZGl0aW9uLmF3YWl0KFN0b3BwYWJsZUNv bmRpdGlvbi5qYXZhOjYxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4u cGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUkQmF0Y2hSZW1vdmFsVGhyZWFkLnJ1 bihQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5qYXZhOjE2MTgpCgogICBMb2NrZWQgb3duYWJs ZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiRXZlbnQgUHJvY2Vzc29yIGZvciBHYXRld2F5U2Vu ZGVyX0FzeW5jRXZlbnRRdWV1ZV9QV0luZm9RdWV1ZV8wIiAjMjgxIGRhZW1vbiBwcmlvPTUgb3Nf cHJpbz0wIHRpZD0weDAwMDA3Zjg0ZTAxMGEwMDAgbmlkPTB4MTc5NDIgcnVubmFibGUgWzB4MDAw MDdmODQyNWEyMTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAo cGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtp bmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAyMWU3ZGRhZjA+IChhIGphdmEudXRpbC5jb25jdXJy ZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3Vw cG9ydC5qYXZhOjIxNSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVl dWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1ZXVlZFN5bmNo cm9uaXplci5qYXZhOjIxNjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnV0aWwuY29u Y3VycmVudC5TdG9wcGFibGVDb25kaXRpb24uYXdhaXQoU3RvcHBhYmxlQ29uZGl0aW9uLmphdmE6 NjEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5QYXJh bGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5ibG9ja1Byb2Nlc3NvclRocmVhZElmUmVxdWlyZWQoUGFy YWxsZWxHYXRld2F5U2VuZGVyUXVldWUuamF2YToxMzMyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5p bnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUucGVl ayhQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5qYXZhOjEyNTcpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nv ci5wcm9jZXNzUXVldWUoQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IuamF2YTo0 ODApCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3 YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5ydW4oQWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9j ZXNzb3IuamF2YToxMDU4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9u ZQoKIkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVfUFdJ bmZvUXVldWUiICMyODAgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1ZDAx MTAwMCBuaWQ9MHgxNzk0MSBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MjViMjIwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQg amF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4MDAw MDAwMDIxZTZlNDI4OD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFy YWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IpCglhdCBqYXZhLmxhbmcu VGhyZWFkLmpvaW4oVGhyZWFkLmphdmE6MTI0OSkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU2ZTQy ODg+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBhcmFs bGVsR2F0ZXdheVNlbmRlckV2ZW50UHJvY2Vzc29yKQoJYXQgamF2YS5sYW5nLlRocmVhZC5qb2lu KFRocmVhZC5qYXZhOjEzMjMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndh bi5wYXJhbGxlbC5Db25jdXJyZW50UGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3Iu cnVuKENvbmN1cnJlbnRQYXJhbGxlbEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5qYXZhOjE2 NikKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJCYXRjaFJlbW92 YWxUaHJlYWQiICMyODIgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1ZDAx MDAwMCBuaWQ9MHgxNzk0MCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NDI1YzIzMDAw XQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQg c3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZv ciAgPDB4MDAwMDAwMDIxZTdkZDZiOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJz dHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNv bmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6 MjE2MykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudXRpbC5jb25jdXJyZW50LlN0b3Bw YWJsZUNvbmRpdGlvbi5hd2FpdChTdG9wcGFibGVDb25kaXRpb24uamF2YTo2MSkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLlBhcmFsbGVsR2F0ZXdheVNl bmRlclF1ZXVlJEJhdGNoUmVtb3ZhbFRocmVhZC5ydW4oUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVl dWUuamF2YToxNjE4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK IkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVfRGVsdGFR dWV1ZV8wIiAjMjc4IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0Y2MxMDI4 MDAgbmlkPTB4MTc5M2YgcnVubmFibGUgWzB4MDAwMDdmODQyNWQyNDAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2Fm ZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAy MWU3ZGQ1ZTA+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3lu Y2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tz LkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIxNSkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9i amVjdC5hd2FpdChBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIxNjMpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLnV0aWwuY29uY3VycmVudC5TdG9wcGFibGVDb25kaXRpb24u YXdhaXQoU3RvcHBhYmxlQ29uZGl0aW9uLmphdmE6NjEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5ibG9j a1Byb2Nlc3NvclRocmVhZElmUmVxdWlyZWQoUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUuamF2 YToxMzMyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53YW4ucGFyYWxsZWwu UGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUucGVlayhQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1 ZS5qYXZhOjExNzgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5BYnN0 cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5wcm9jZXNzUXVldWUoQWJzdHJhY3RHYXRl d2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IuamF2YTo0ODApCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLndhbi5BYnN0cmFjdEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5ydW4o QWJzdHJhY3RHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNzb3IuamF2YToxMDU4KQoKICAgTG9ja2Vk IG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkV2ZW50IFByb2Nlc3NvciBmb3IgR2F0 ZXdheVNlbmRlcl9Bc3luY0V2ZW50UXVldWVfRGVsdGFRdWV1ZSIgIzI3NyBkYWVtb24gcHJpbz01 IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjZjA2ODAwIG5pZD0weDE3OTNlIGluIE9iamVjdC53 YWl0KCkgWzB4MDAwMDdmODQyNWUyNTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJ VElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZl IE1ldGhvZCkKCS0gd2FpdGluZyBvbiA8MHgwMDAwMDAwMjFlNmUzYjY4PiAoYSBvcmcuYXBhY2hl Lmdlb2RlLmludGVybmFsLmNhY2hlLndhbi5wYXJhbGxlbC5QYXJhbGxlbEdhdGV3YXlTZW5kZXJF dmVudFByb2Nlc3NvcikKCWF0IGphdmEubGFuZy5UaHJlYWQuam9pbihUaHJlYWQuamF2YToxMjQ5 KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTZlM2I2OD4gKGEgb3JnLmFwYWNoZS5nZW9kZS5pbnRl cm5hbC5jYWNoZS53YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyRXZlbnRQcm9jZXNz b3IpCglhdCBqYXZhLmxhbmcuVGhyZWFkLmpvaW4oVGhyZWFkLmphdmE6MTMyMykKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUud2FuLnBhcmFsbGVsLkNvbmN1cnJlbnRQYXJhbGxl bEdhdGV3YXlTZW5kZXJFdmVudFByb2Nlc3Nvci5ydW4oQ29uY3VycmVudFBhcmFsbGVsR2F0ZXdh eVNlbmRlckV2ZW50UHJvY2Vzc29yLmphdmE6MTY2KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hy b25pemVyczoKCS0gTm9uZQoKIkJhdGNoUmVtb3ZhbFRocmVhZCIgIzI3OSBkYWVtb24gcHJpbz01 IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjZjA0ODAwIG5pZD0weDE3OTNkIHdhaXRpbmcgb24g Y29uZGl0aW9uIFsweDAwMDA3Zjg0MjVmMjYwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6 IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUg TWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFlODQ0ODI4PiAoYSBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25k aXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5w YXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMTUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5s b2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXQoQWJz dHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMTYzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5p bnRlcm5hbC51dGlsLmNvbmN1cnJlbnQuU3RvcHBhYmxlQ29uZGl0aW9uLmF3YWl0KFN0b3BwYWJs ZUNvbmRpdGlvbi5qYXZhOjYxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS53 YW4ucGFyYWxsZWwuUGFyYWxsZWxHYXRld2F5U2VuZGVyUXVldWUkQmF0Y2hSZW1vdmFsVGhyZWFk LnJ1bihQYXJhbGxlbEdhdGV3YXlTZW5kZXJRdWV1ZS5qYXZhOjE2MTgpCgogICBMb2NrZWQgb3du YWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiQXN5bmNocm9ub3VzIGRpc2sgd3JpdGVyIGZv ciByZWdpb24gRXh0ZXJuYWxSZWNvcmQtb3ZlcmZsb3ciICMyNjMgZGFlbW9uIHByaW89NSBvc19w cmlvPTAgdGlkPTB4MDAwMDdmODU1ZDI3YTgwMCBuaWQ9MHgxNzkyZiBpbiBPYmplY3Qud2FpdCgp IFsweDAwMDA3Zjg0MjZkMzQwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dB SVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2 ZSBNZXRob2QpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoT2JqZWN0LmphdmE6NDYwKQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQuVGltZVVuaXQudGltZWRXYWl0KFRpbWVVbml0LmphdmE6MzQ4 KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNo ZXJUaHJlYWQud2FpdFVudGlsRmx1c2hJc1JlYWR5KERpc2tTdG9yZUltcGwuamF2YToxNjM3KQoJ LSBsb2NrZWQgPDB4MDAwMDAwMDIxZGQxZDFiOD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRGlza1N0b3JlSW1wbCRGbHVzaGVyVGhyZWFk LnJ1bihEaXNrU3RvcmVJbXBsLmphdmE6MTY5MSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRo cmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUK CiJBc3luY2hyb25vdXMgZGlzayB3cml0ZXIgZm9yIHJlZ2lvbiBTQkd1aWRpbmctcXVldWUtb3Zl cmZsb3ciICMyNjEgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1Y2Y2Njgw MCBuaWQ9MHgxNzkyZCBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MjZmMzYwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJ YXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmxhbmcuT2Jq ZWN0LndhaXQoT2JqZWN0LmphdmE6NDYwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGltZVVu aXQudGltZWRXYWl0KFRpbWVVbml0LmphdmE6MzQ4KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRl cm5hbC5jYWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNoZXJUaHJlYWQud2FpdFVudGlsRmx1c2hJc1Jl YWR5KERpc2tTdG9yZUltcGwuamF2YToxNjM3KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTg0Mzlh MD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2Fj aGUuRGlza1N0b3JlSW1wbCRGbHVzaGVyVGhyZWFkLnJ1bihEaXNrU3RvcmVJbXBsLmphdmE6MTY5 MSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBv d25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJBc3luY2hyb25vdXMgZGlzayB3cml0ZXIg Zm9yIHJlZ2lvbiBFTEFEYXRhLW92ZXJmbG93IiAjMjU5IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0w IHRpZD0weDAwMDA3Zjg1NWNmNjMwMDAgbmlkPTB4MTc5MmIgaW4gT2JqZWN0LndhaXQoKSBbMHgw MDAwN2Y4NDI3MTM4MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5H IChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0 aG9kKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjQ2MCkKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LlRpbWVVbml0LnRpbWVkV2FpdChUaW1lVW5pdC5qYXZhOjM0OCkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRGlza1N0b3JlSW1wbCRGbHVzaGVyVGhy ZWFkLndhaXRVbnRpbEZsdXNoSXNSZWFkeShEaXNrU3RvcmVJbXBsLmphdmE6MTYzNykKCS0gbG9j a2VkIDwweDAwMDAwMDAyMWU2ZGQzMDg+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc2tTdG9yZUltcGwkRmx1c2hlclRocmVhZC5ydW4o RGlza1N0b3JlSW1wbC5qYXZhOjE2OTEpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQu amF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiQXN5 bmNocm9ub3VzIGRpc2sgd3JpdGVyIGZvciByZWdpb24gRGVsdGFTZW5kZXItcXVldWUtb3ZlcmZs b3ciICMyNTcgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1Y2Y1ZjgwMCBu aWQ9MHgxNzkyOSBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MjczM2EwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQg amF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmxhbmcuT2JqZWN0 LndhaXQoT2JqZWN0LmphdmE6NDYwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGltZVVuaXQu dGltZWRXYWl0KFRpbWVVbml0LmphdmE6MzQ4KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC5jYWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNoZXJUaHJlYWQud2FpdFVudGlsRmx1c2hJc1JlYWR5 KERpc2tTdG9yZUltcGwuamF2YToxNjM3KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTg0NGQzOD4g KGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUu RGlza1N0b3JlSW1wbCRGbHVzaGVyVGhyZWFkLnJ1bihEaXNrU3RvcmVJbXBsLmphdmE6MTY5MSkK CWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25h YmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJBc3luY2hyb25vdXMgZGlzayB3cml0ZXIgZm9y IHJlZ2lvbiBEZWx0YS1xdWV1ZS1vdmVyZmxvdyIgIzI1NSBkYWVtb24gcHJpbz01IG9zX3ByaW89 MCB0aWQ9MHgwMDAwN2Y4NTVjNjg1MDAwIG5pZD0weDE3OTI3IGluIE9iamVjdC53YWl0KCkgWzB4 MDAwMDdmODQyNzUzYzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElO RyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1l dGhvZCkKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChPYmplY3QuamF2YTo0NjApCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5UaW1lVW5pdC50aW1lZFdhaXQoVGltZVVuaXQuamF2YTozNDgpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc2tTdG9yZUltcGwkRmx1c2hlclRo cmVhZC53YWl0VW50aWxGbHVzaElzUmVhZHkoRGlza1N0b3JlSW1wbC5qYXZhOjE2MzcpCgktIGxv Y2tlZCA8MHgwMDAwMDAwMjFlODA0ZjE4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNoZXJUaHJlYWQucnVu KERpc2tTdG9yZUltcGwuamF2YToxNjkxKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFk LmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkFz eW5jaHJvbm91cyBkaXNrIHdyaXRlciBmb3IgcmVnaW9uIFJUTi1vdmVyZmxvdyIgIzI1MyBkYWVt b24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjNjgxODAwIG5pZD0weDE3OTI1IGlu IE9iamVjdC53YWl0KCkgWzB4MDAwMDdmODQyNzczZTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5T dGF0ZTogVElNRURfV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2Jq ZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChPYmplY3Qu amF2YTo0NjApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaW1lVW5pdC50aW1lZFdhaXQoVGlt ZVVuaXQuamF2YTozNDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc2tT dG9yZUltcGwkRmx1c2hlclRocmVhZC53YWl0VW50aWxGbHVzaElzUmVhZHkoRGlza1N0b3JlSW1w bC5qYXZhOjE2MzcpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlODA0MDMwPiAoYSBqYXZhLmxhbmcu T2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5EaXNrU3RvcmVJbXBs JEZsdXNoZXJUaHJlYWQucnVuKERpc2tTdG9yZUltcGwuamF2YToxNjkxKQoJYXQgamF2YS5sYW5n LlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25p emVyczoKCS0gTm9uZQoKIkFzeW5jaHJvbm91cyBkaXNrIHdyaXRlciBmb3IgcmVnaW9uIFNJQ0lu Zm8tb3ZlcmZsb3ciICMyNTEgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1 ZDA4YzgwMCBuaWQ9MHgxNzkyMyBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0Mjc5NDAwMDBd CiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25p dG9yKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmxh bmcuT2JqZWN0LndhaXQoT2JqZWN0LmphdmE6NDYwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGltZVVuaXQudGltZWRXYWl0KFRpbWVVbml0LmphdmE6MzQ4KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5pbnRlcm5hbC5jYWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNoZXJUaHJlYWQud2FpdFVudGlsRmx1 c2hJc1JlYWR5KERpc2tTdG9yZUltcGwuamF2YToxNjM3KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIx ZTg0Mjc3MD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwuY2FjaGUuRGlza1N0b3JlSW1wbCRGbHVzaGVyVGhyZWFkLnJ1bihEaXNrU3RvcmVJbXBsLmph dmE6MTY5MSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExv Y2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJBc3luY2hyb25vdXMgZGlzayB3 cml0ZXIgZm9yIHJlZ2lvbiBEdXBDaGVjay1vdmVyZmxvdyIgIzI0OSBkYWVtb24gcHJpbz01IG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDg4ODAwIG5pZD0weDE3OTIxIGluIE9iamVjdC53YWl0 KCkgWzB4MDAwMDdmODQyN2I0MjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURf V0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0 aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChPYmplY3QuamF2YTo0NjApCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5UaW1lVW5pdC50aW1lZFdhaXQoVGltZVVuaXQuamF2YToz NDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc2tTdG9yZUltcGwkRmx1 c2hlclRocmVhZC53YWl0VW50aWxGbHVzaElzUmVhZHkoRGlza1N0b3JlSW1wbC5qYXZhOjE2Mzcp CgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlODQyN2EwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNoZXJUaHJl YWQucnVuKERpc2tTdG9yZUltcGwuamF2YToxNjkxKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4o VGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9u ZQoKIkFzeW5jaHJvbm91cyBkaXNrIHdyaXRlciBmb3IgcmVnaW9uIFBXSW5mby1vdmVyZmxvdyIg IzI0NyBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDZmODAwIG5pZD0w eDE3OTFmIGluIE9iamVjdC53YWl0KCkgWzB4MDAwMDdmODQyN2Q0NDAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZh LmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5PYmplY3Qud2Fp dChPYmplY3QuamF2YTo0NjApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaW1lVW5pdC50aW1l ZFdhaXQoVGltZVVuaXQuamF2YTozNDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNh Y2hlLkRpc2tTdG9yZUltcGwkRmx1c2hlclRocmVhZC53YWl0VW50aWxGbHVzaElzUmVhZHkoRGlz a1N0b3JlSW1wbC5qYXZhOjE2MzcpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlODAzMjA4PiAoYSBq YXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5EaXNr U3RvcmVJbXBsJEZsdXNoZXJUaHJlYWQucnVuKERpc2tTdG9yZUltcGwuamF2YToxNjkxKQoJYXQg amF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUg c3luY2hyb25pemVyczoKCS0gTm9uZQoKIkFzeW5jaHJvbm91cyBkaXNrIHdyaXRlciBmb3IgcmVn aW9uIEN1c3RvbWVyVG9EZWx0YS1xdWV1ZS1vdmVyZmxvdyIgIzI0NSBkYWVtb24gcHJpbz01IG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDZkMDAwIG5pZD0weDE3OTFkIGluIE9iamVjdC53YWl0 KCkgWzB4MDAwMDdmODQyN2Y0NjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURf V0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0 aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChPYmplY3QuamF2YTo0NjApCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5UaW1lVW5pdC50aW1lZFdhaXQoVGltZVVuaXQuamF2YToz NDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc2tTdG9yZUltcGwkRmx1 c2hlclRocmVhZC53YWl0VW50aWxGbHVzaElzUmVhZHkoRGlza1N0b3JlSW1wbC5qYXZhOjE2Mzcp CgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlNmIwNGM4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNoZXJUaHJl YWQucnVuKERpc2tTdG9yZUltcGwuamF2YToxNjkxKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4o VGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9u ZQoKIkZ1bmN0aW9uIEV4ZWN1dGlvbiBQcm9jZXNzb3IxIiAjMjQzIGRhZW1vbiBwcmlvPTEwIG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NGM4MWU4ODAwIG5pZD0weDE3OTFiIHdhaXRpbmcgZm9yIG1v bml0b3IgZW50cnkgWzB4MDAwMDdmODQyODE0ODAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogQkxPQ0tFRCAob24gb2JqZWN0IG1vbml0b3IpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmNhY2hl LkNhY2hlRmFjdG9yeS5nZXRBbnlJbnN0YW5jZShDYWNoZUZhY3RvcnkuamF2YToyODIpCgktIHdh aXRpbmcgdG8gbG9jayA8MHgwMDAwMDAwMjFkZTM4ZDcwPiAoYSBqYXZhLmxhbmcuQ2xhc3MgZm9y IG9yZy5hcGFjaGUuZ2VvZGUuY2FjaGUuQ2FjaGVGYWN0b3J5KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5tYW5hZ2VtZW50LmludGVybmFsLmNsaS5mdW5jdGlvbnMuR2V0U3RhY2tUcmFjZXNGdW5jdGlv bi5leGVjdXRlKEdldFN0YWNrVHJhY2VzRnVuY3Rpb24uamF2YTozMykKCWF0IG9yZy5hcGFjaGUu Z2VvZGUuaW50ZXJuYWwuY2FjaGUuTWVtYmVyRnVuY3Rpb25TdHJlYW1pbmdNZXNzYWdlLnByb2Nl c3MoTWVtYmVyRnVuY3Rpb25TdHJlYW1pbmdNZXNzYWdlLmphdmE6MTg1KQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NZXNzYWdlLnNjaGVkdWxl QWN0aW9uKERpc3RyaWJ1dGlvbk1lc3NhZ2UuamF2YTozNzQpCglhdCBvcmcuYXBhY2hlLmdlb2Rl LmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1lc3NhZ2UkMS5ydW4oRGlzdHJpYnV0 aW9uTWVzc2FnZS5qYXZhOjQ0MCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xF eGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0MikKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xF eGVjdXRvci5qYXZhOjYxNykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJu YWwuRGlzdHJpYnV0aW9uTWFuYWdlci5ydW5VbnRpbFNodXRkb3duKERpc3RyaWJ1dGlvbk1hbmFn ZXIuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRp c3RyaWJ1dGlvbk1hbmFnZXIkOSQxLnJ1bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6MTEzMSkK CWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25h YmxlIHN5bmNocm9uaXplcnM6CgktIDwweDAwMDAwMDAyMWU3ODI5YTA+IChhIGphdmEudXRpbC5j b25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIpCgoiQXN5bmNocm9ub3VzIGRpc2sg d3JpdGVyIGZvciByZWdpb24gUlROLXF1ZXVlLW92ZXJmbG93IiAjMjQxIGRhZW1vbiBwcmlvPTUg b3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWQwODM4MDAgbmlkPTB4MTc5MTkgaW4gT2JqZWN0Lndh aXQoKSBbMHgwMDAwN2Y4NDI4MzRhMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1F RF9XQUlUSU5HIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChO YXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjQ2MCkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRpbWVVbml0LnRpbWVkV2FpdChUaW1lVW5pdC5qYXZh OjM0OCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRGlza1N0b3JlSW1wbCRG bHVzaGVyVGhyZWFkLndhaXRVbnRpbEZsdXNoSXNSZWFkeShEaXNrU3RvcmVJbXBsLmphdmE6MTYz NykKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU4MDIzODA+IChhIGphdmEubGFuZy5PYmplY3QpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc2tTdG9yZUltcGwkRmx1c2hlclRo cmVhZC5ydW4oRGlza1N0b3JlSW1wbC5qYXZhOjE2OTEpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1 bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBO b25lCgoiQXN5bmNocm9ub3VzIGRpc2sgd3JpdGVyIGZvciByZWdpb24gU0lDSW5mby1xdWV1ZS1v dmVyZmxvdyIgIzIzOSBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMDgw MDAwIG5pZD0weDE3OTE3IGluIE9iamVjdC53YWl0KCkgWzB4MDAwMDdmODQyODU0YzAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAob24gb2JqZWN0IG1vbml0b3Ip CglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5P YmplY3Qud2FpdChPYmplY3QuamF2YTo0NjApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaW1l VW5pdC50aW1lZFdhaXQoVGltZVVuaXQuamF2YTozNDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLmNhY2hlLkRpc2tTdG9yZUltcGwkRmx1c2hlclRocmVhZC53YWl0VW50aWxGbHVzaElz UmVhZHkoRGlza1N0b3JlSW1wbC5qYXZhOjE2MzcpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFkZDFh YmQ4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5j YWNoZS5EaXNrU3RvcmVJbXBsJEZsdXNoZXJUaHJlYWQucnVuKERpc2tTdG9yZUltcGwuamF2YTox NjkxKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2Vk IG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkFzeW5jaHJvbm91cyBkaXNrIHdyaXRl ciBmb3IgcmVnaW9uIER1cENoZWNrLXF1ZXVlLW92ZXJmbG93IiAjMjM3IGRhZW1vbiBwcmlvPTUg b3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWNmYWE4MDAgbmlkPTB4MTc5MTUgaW4gT2JqZWN0Lndh aXQoKSBbMHgwMDAwN2Y4NDI4NzRlMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1F RF9XQUlUSU5HIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChO YXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjQ2MCkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRpbWVVbml0LnRpbWVkV2FpdChUaW1lVW5pdC5qYXZh OjM0OCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuRGlza1N0b3JlSW1wbCRG bHVzaGVyVGhyZWFkLndhaXRVbnRpbEZsdXNoSXNSZWFkeShEaXNrU3RvcmVJbXBsLmphdmE6MTYz NykKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU4MTllYTA+IChhIGphdmEubGFuZy5PYmplY3QpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkRpc2tTdG9yZUltcGwkRmx1c2hlclRo cmVhZC5ydW4oRGlza1N0b3JlSW1wbC5qYXZhOjE2OTEpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1 bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBO b25lCgoiQXN5bmNocm9ub3VzIGRpc2sgd3JpdGVyIGZvciByZWdpb24gUFdJbmZvLXF1ZXVlLW92 ZXJmbG93IiAjMjMzIGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWQyNmEw MDAgbmlkPTB4MTc5MTEgaW4gT2JqZWN0LndhaXQoKSBbMHgwMDAwN2Y4NDI5MGQ1MDAwXQogICBq YXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChvbiBvYmplY3QgbW9uaXRvcikK CWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLk9i amVjdC53YWl0KE9iamVjdC5qYXZhOjQ2MCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRpbWVV bml0LnRpbWVkV2FpdChUaW1lVW5pdC5qYXZhOjM0OCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwuY2FjaGUuRGlza1N0b3JlSW1wbCRGbHVzaGVyVGhyZWFkLndhaXRVbnRpbEZsdXNoSXNS ZWFkeShEaXNrU3RvcmVJbXBsLmphdmE6MTYzNykKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRkMTlj MDA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNh Y2hlLkRpc2tTdG9yZUltcGwkRmx1c2hlclRocmVhZC5ydW4oRGlza1N0b3JlSW1wbC5qYXZhOjE2 OTEpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQg b3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiVGltZXItNiIgIzIzMiBkYWVtb24gcHJp bz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVkMjJiMDAwIG5pZD0weDE3OTBmIGluIE9iamVj dC53YWl0KCkgWzB4MDAwMDdmODQyOTFkNjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTog VElNRURfV0FJVElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0Lndh aXQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEudXRpbC5UaW1lclRocmVhZC5tYWluTG9vcChUaW1l ci5qYXZhOjU1MikKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU4ZTMwMzA+IChhIGphdmEudXRpbC5U YXNrUXVldWUpCglhdCBqYXZhLnV0aWwuVGltZXJUaHJlYWQucnVuKFRpbWVyLmphdmE6NTA1KQoK ICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlRpbWVyLTUiICMyMzEg ZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1ZDFmMjgwMCBuaWQ9MHgxNzkw ZSBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0Mjk0ZDkwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2YS5sYW5n Lk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLnV0aWwuVGltZXJUaHJlYWQubWFp bkxvb3AoVGltZXIuamF2YTo1NTIpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFkZDFjMTk4PiAoYSBq YXZhLnV0aWwuVGFza1F1ZXVlKQoJYXQgamF2YS51dGlsLlRpbWVyVGhyZWFkLnJ1bihUaW1lci5q YXZhOjUwNSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJUaW1l ci00IiAjMjMwIGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWQxZGUwMDAg bmlkPTB4MTc5MGQgaW4gT2JqZWN0LndhaXQoKSBbMHgwMDAwN2Y4NDI4ZmQ0MDAwXQogICBqYXZh LmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChvbiBvYmplY3QgbW9uaXRvcikKCWF0 IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS51dGlsLlRpbWVy VGhyZWFkLm1haW5Mb29wKFRpbWVyLmphdmE6NTUyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTc0 NTBhOD4gKGEgamF2YS51dGlsLlRhc2tRdWV1ZSkKCWF0IGphdmEudXRpbC5UaW1lclRocmVhZC5y dW4oVGltZXIuamF2YTo1MDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBO b25lCgoiVGhyZWFkLTEyNyIgIzIyOSBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAw N2Y4NTVkMTgzMDAwIG5pZD0weDE3OTBiIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0 MjkzZDgwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHNsZWVw aW5nKQoJYXQgamF2YS5sYW5nLlRocmVhZC5zbGVlcChOYXRpdmUgTWV0aG9kKQoJYXQgb3JnLmFw YWNoZS5sb2c0ai5oZWxwZXJzLkZpbGVXYXRjaGRvZy5ydW4oRmlsZVdhdGNoZG9nLmphdmE6MTAz KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIk1hbmFnZW1lbnQg VGFzayIgIzIwOCBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjY2JkMDAw IG5pZD0weDE3OGI4IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0Mjk4ZGIwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4u bWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8 MHgwMDAwMDAwMjFlN2E3MWQwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFj dFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMTUpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRD b25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZh OjIwNzgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0 b3IkRGVsYXllZFdvcmtRdWV1ZS50YWtlKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZh OjEwOTMpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0 b3IkRGVsYXllZFdvcmtRdWV1ZS50YWtlKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZh OjgwOSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNr KFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5U aHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjcp CglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihU aHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLm1hbmFnZW1l bnQuaW50ZXJuYWwuTG9jYWxNYW5hZ2VyJDEkMS5ydW4oTG9jYWxNYW5hZ2VyLmphdmE6MTEyKQoJ YXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFi bGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIk5vdGlmaWNhdGlvbiBIYW5kbGVyIiAjMTgzIGRh ZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDJjMTAyMDAwIG5pZD0weDE3ODk4 IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0MmIxZjQwMDBdCiAgIGphdmEubGFuZy5U aHJlYWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhO YXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFlODcyMjE4 PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXpl ciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3Vw cG9ydC5wYXJrKExvY2tTdXBwb3J0LmphdmE6MTc1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu bG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFi c3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjAzOSkKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LkxpbmtlZEJsb2NraW5nUXVldWUudGFrZShMaW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDQy KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5PdmVyZmxvd1F1ZXVl V2l0aERNU3RhdHMudGFrZShPdmVyZmxvd1F1ZXVlV2l0aERNU3RhdHMuamF2YToxMDgpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29s RXhlY3V0b3IuamF2YToxMDY3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4 ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI3KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4 ZWN1dG9yLmphdmE6NjE3KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1 KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkRpc2tTdG9yZU1v bml0b3IiICMxODIgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzFiZDgw MCBuaWQ9MHgxNzg5NyB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NDJiMmY1MDAwXQog ICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3Vu Lm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAg PDB4MDAwMDAwMDIxZTk0ZGRlMD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJh Y3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1KQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIk Q29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2 YToyMDc4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1 dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2 YToxMDkzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1 dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2 YTo4MDkpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFz ayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI3 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4o VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE3KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK IlRpbWVyLTMiICMxODEgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzIz ODAwMCBuaWQ9MHgxNzg5NiBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MmIzZjYwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQg amF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4MDAw MDAwMDIxZTk1Y2YyMD4gKGEgamF2YS51dGlsLlRhc2tRdWV1ZSkKCWF0IGphdmEubGFuZy5PYmpl Y3Qud2FpdChPYmplY3QuamF2YTo1MDIpCglhdCBqYXZhLnV0aWwuVGltZXJUaHJlYWQubWFpbkxv b3AoVGltZXIuamF2YTo1MjYpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlOTVjZjIwPiAoYSBqYXZh LnV0aWwuVGFza1F1ZXVlKQoJYXQgamF2YS51dGlsLlRpbWVyVGhyZWFkLnJ1bihUaW1lci5qYXZh OjUwNSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJOb24tcmVw bGljYXRlIFJlZ2lvbiBHYXJiYWdlIENvbGxlY3RvciIgIzE4MCBkYWVtb24gcHJpbz01IG9zX3By aW89MCB0aWQ9MHgwMDAwN2Y4NTVjMjM0ODAwIG5pZD0weDE3ODk1IGluIE9iamVjdC53YWl0KCkg WzB4MDAwMDdmODQyYjRmNzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJ VElORyAob24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZl IE1ldGhvZCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuVG9tYnN0b25lU2Vy dmljZSRUb21ic3RvbmVTd2VlcGVyLmRvU2xlZXAoVG9tYnN0b25lU2VydmljZS5qYXZhOjkzMCkK CS0gbG9ja2VkIDwweDAwMDAwMDAyMWU4OGVmNDg+IChhIG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwuY2FjaGUuVG9tYnN0b25lU2VydmljZSROb25SZXBsaWNhdGVUb21ic3RvbmVTd2VlcGVyKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5Ub21ic3RvbmVTZXJ2aWNlJFRvbWJz dG9uZVN3ZWVwZXIucnVuKFRvbWJzdG9uZVNlcnZpY2UuamF2YTo4OTYpCglhdCBqYXZhLmxhbmcu VGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6 ZXJzOgoJLSBOb25lCgoiUmVwbGljYXRlL1BhcnRpdGlvbiBSZWdpb24gR2FyYmFnZSBDb2xsZWN0 b3IiICMxNzkgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzIzMzAwMCBu aWQ9MHgxNzg5NCBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MmI1ZjgwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQg amF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBvcmcuYXBhY2hlLmdlb2Rl LmludGVybmFsLmNhY2hlLlRvbWJzdG9uZVNlcnZpY2UkVG9tYnN0b25lU3dlZXBlci5kb1NsZWVw KFRvbWJzdG9uZVNlcnZpY2UuamF2YTo5MzApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlN2Q5ZmQ4 PiAoYSBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlRvbWJzdG9uZVNlcnZpY2UkUmVw bGljYXRlVG9tYnN0b25lU3dlZXBlcikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2Fj aGUuVG9tYnN0b25lU2VydmljZSRUb21ic3RvbmVTd2VlcGVyLnJ1bihUb21ic3RvbmVTZXJ2aWNl LmphdmE6ODk2KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAg TG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlRpbWVyLTIiICMxNzggZGFl bW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzI2ZTAwMCBuaWQ9MHgxNzg5MyBp biBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0MmI2ZjkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQu U3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2YS5sYW5nLk9i amVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLnV0aWwuVGltZXJUaHJlYWQubWFpbkxv b3AoVGltZXIuamF2YTo1NTIpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlOTVkMWYwPiAoYSBqYXZh LnV0aWwuVGFza1F1ZXVlKQoJYXQgamF2YS51dGlsLlRpbWVyVGhyZWFkLnJ1bihUaW1lci5qYXZh OjUwNSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJHbG9iYWxU WFRpbWVvdXRNb25pdG9yIiAjMTc3IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3 Zjg1NWNjYWUwMDAgbmlkPTB4MTc4N2MgaW4gT2JqZWN0LndhaXQoKSBbMHgwMDAwN2Y4NDJiOWZh MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5HIChvbiBvYmplY3QgbW9uaXRv cikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJLSB3YWl0aW5nIG9u IDwweDAwMDAwMDAyMWU5NGUzZTA+IChhIGphdmEudXRpbC5Db2xsZWN0aW9ucyRTeW5jaHJvbml6 ZWRTb3J0ZWRTZXQpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoT2JqZWN0LmphdmE6NTAyKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5qdGEuVHJhbnNhY3Rpb25NYW5hZ2VySW1wbCRU cmFuc2FjdGlvblRpbWVPdXRUaHJlYWQucnVuKFRyYW5zYWN0aW9uTWFuYWdlckltcGwuamF2YTo3 OTIpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlOTRlM2UwPiAoYSBqYXZhLnV0aWwuQ29sbGVjdGlv bnMkU3luY2hyb25pemVkU29ydGVkU2V0KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFk LmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlRo cmVhZC0xMjAgU3RhdFNhbXBsZXIiICMxNzUgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0w eDAwMDA3Zjg1NWMxNDU4MDAgbmlkPTB4MTc4NzggaW4gT2JqZWN0LndhaXQoKSBbMHgwMDAwN2Y4 NDJiYmZjMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChvbiBv YmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5zdGF0aXN0aWNzLkhvc3RTdGF0U2FtcGxlci5k ZWxheShIb3N0U3RhdFNhbXBsZXIuamF2YTo1MjApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlNmU2 ZDE4PiAoYSBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnN0YXRpc3RpY3MuR2VtRmlyZVN0YXRT YW1wbGVyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5zdGF0aXN0aWNzLkhvc3RTdGF0 U2FtcGxlci5ydW4oSG9zdFN0YXRTYW1wbGVyLmphdmE6MjA4KQoJYXQgamF2YS5sYW5nLlRocmVh ZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoK CS0gTm9uZQoKIkNhbGxiYWNrU2FtcGxlciIgIzE3NCBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0 aWQ9MHgwMDAwN2Y4NTVjY2QwODAwIG5pZD0weDE3ODc3IHdhaXRpbmcgb24gY29uZGl0aW9uIFsw eDAwMDA3Zjg0MmJjZmQwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJ TkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBw YXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFlOTRlNWMwPiAoYSBqYXZhLnV0aWwuY29u Y3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3Qp CglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9j a1N1cHBvcnQuamF2YToyMTUpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFj dFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1 ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwNzgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hl ZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkRGVsYXllZFdvcmtRdWV1ZS50YWtlKFNjaGVkdWxlZFRo cmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwOTMpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hl ZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkRGVsYXllZFdvcmtRdWV1ZS50YWtlKFNjaGVkdWxlZFRo cmVhZFBvb2xFeGVjdXRvci5qYXZhOjgwOSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVh ZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjcpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBv b2xFeGVjdXRvci5qYXZhOjExMjcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpCglhdCBqYXZh LmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5j aHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjU5 KHNiaW1nYXBwMTQtc2VydmVyMTo5NDY3MSk8djIxPjoxMDI2IHNoYXJlZCB1bm9yZGVyZWQgdWlk PTExMiBwb3J0PTUzMTkwIiAjMTczIGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAw N2Y4NDY0MDE2MDAwIG5pZD0weDE3ODc2IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MmJmZmUwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNw YXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNw YXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0 aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5J T1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJ bXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAw MjFlODcxMzYwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRl cm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9u LmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAg IExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFk ZXIgZm9yIDEwLjIxOC4xMTAuNTkoc2JpbWdhcHAxNC1zZXJ2ZXIzOjk0NjM5KTx2MjE+OjEwMjQg c2hhcmVkIHVub3JkZXJlZCB1aWQ9MTEyIHBvcnQ9NTMxODgiICMxNzIgZGFlbW9uIHByaW89MTAg b3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0MzgxMDkwMDAgbmlkPTB4MTc4NzUgcnVubmFibGUgWzB4 MDAwMDdmODQzMDFjMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0 IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBz dW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6Mzkp CglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToy MjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5u aW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkK CS0gbG9ja2VkIDwweDAwMDAwMDAyMWU3NWQwYTg+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25u ZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5l Y3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4o VGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9u ZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC41OShzYmltZ2FwcDE0LXB3aW5m bzE6NjU3ODUpPHYxNj46MTAyNyBzaGFyZWQgdW5vcmRlcmVkIHVpZD01OTkzMCBwb3J0PTUzMTg2 IiAjMTcxIGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NGU4MDA5MDAwIG5p ZD0weDE3ODc0IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzAyYzEwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFk MChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29j a2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRp dmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0 aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0 Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlODcxZjYwPiAoYSBq YXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVj dGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0 IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxl IHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4x MTAuNjEoc2JpbWdhcHAxNi1zZXJ2ZXIyOjUwNjIxKTx2MTE+OjEwMjYgc2hhcmVkIHVub3JkZXJl ZCB1aWQ9MTM5IHBvcnQ9NTk2ODciICMxNzAgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0w eDAwMDA3Zjg0MzQxMGMwMDAgbmlkPTB4MTc4NzEgcnVubmFibGUgWzB4MDAwMDdmODQzMDNjMjAw MF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmls ZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tl dERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNo LklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlv LmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hh bm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAw MDAwMDAyMWU4NzE2YzA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2Rl LmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgw OSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5l Y3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1 KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdl IHJlYWRlciBmb3IgMTAuMjE4LjExMC42MShzYmltZ2FwcDE2LXNlcnZlcjM6NTAyNzIpPHY2Pjox MDI0IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTE0MCBwb3J0PTU5Njg1IiAjMTY5IGRhZW1vbiBwcmlv PTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDcwMTE1MDAwIG5pZD0weDE3ODcwIHJ1bm5hYmxl IFsweDAwMDA3Zjg0MzA0YzMwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxF CglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJ YXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZh OjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmph dmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBz dW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YToz ODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlODcxMDkwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIo Q29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5D b25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQu cnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6Cgkt IE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNTgoc2JpbWdhcHAxMy1s b2NhdG9yOjMyMzQxOmxvY2F0b3IpPGVjPjx2MT46MTAyNCBzaGFyZWQgdW5vcmRlcmVkIHVpZD0x NDA2IHBvcnQ9NDkzNDgiICMxNjUgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3 Zjg0MzQxMGE4MDAgbmlkPTB4MTc3Y2UgcnVubmFibGUgWzB4MDAwMDdmODQzMDhjNzAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3Bh dGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3Bh dGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRp bC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklP VXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbElt cGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAy MWRkZmI5Mjg+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24u amF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAg TG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRl ciBmb3IgMTAuMjE4LjExMC41OChzYmltZ2FwcDEzLXB3aW5mbzE6NDM2MTYpPHYxNT46MTAyOCBz aGFyZWQgdW5vcmRlcmVkIHVpZD02MjY4OSBwb3J0PTQ5MzQ0IiAjMTYzIGRhZW1vbiBwcmlvPTEw IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDcwMTExODAwIG5pZD0weDE3N2NkIHJ1bm5hYmxlIFsw eDAwMDA3Zjg0MzA5YzgwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglh dCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQg c3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5 KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6 MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4u bmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODAp CgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlMTkxMTgwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29u bmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25u ZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVu KFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5v bmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNTgoc2JpbWdhcHAxMy1ydG4x OjQ4OTMyKTx2MTg+OjEwMjkgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTEyMjEgcG9ydD00OTM1MCIg IzE2NCBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQzODEwNTAwMCBuaWQ9 MHgxNzdjYyBydW5uYWJsZSBbMHgwMDAwN2Y4NDMwYWM5MDAwXQogICBqYXZhLmxhbmcuVGhyZWFk LlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAo TmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tl dERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZl QnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGls LmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENo YW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTE5ZjI1OD4gKGEgamF2 YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rp b24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBq YXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBz eW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEw LjU4KHNiaW1nYXBwMTMtc2VydmVyMzozNjIxMCk8djk+OjEwMjUgc2hhcmVkIHVub3JkZXJlZCB1 aWQ9MTM3IHBvcnQ9NDkzNDYiICMxNjIgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAw MDA3Zjg0ZTgwZjUwMDAgbmlkPTB4MTc3Y2IgcnVubmFibGUgWzB4MDAwMDdmODQzMGJjYTAwMF0K ICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURp c3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERp c3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklP VXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNo LklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5l bEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAw MDAyMWRkZmI3ZDg+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmlu dGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rp b24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoK ICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJl YWRlciBmb3IgMTAuMjE4LjExMC42MihzYmltZ2FwcDE3LXNlcnZlcjI6MzUyNDMpPHY0PjoxMDI1 IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEzOCBwb3J0PTU5ODczIiAjMTYxIGRhZW1vbiBwcmlvPTEw IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NGU4MTNlMDAwIG5pZD0weDE3N2M5IHJ1bm5hYmxlIFsw eDAwMDA3Zjg0MzBjY2IwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglh dCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQg c3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5 KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6 MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4u bmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODAp CgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlMTgyMDMwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29u bmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25u ZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVu KFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5v bmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNjAoc2JpbWdhcHAxNS1zZXJ2 ZXIzOjE5MTkpPHY5PjoxMDI1IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTE0MCBwb3J0PTUyMzg4IiAj MTU5IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDcwMTBmODAwIG5pZD0w eDE3N2M4IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzBkY2MwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQu U3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChO YXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0 RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVC dWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwu amF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hh bm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlMTgxZGYwPiAoYSBqYXZh LmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlv bi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2Rl LmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGph dmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5 bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAu NjAoc2JpbWdhcHAxNS1zZXJ2ZXIyOjE3NDYpPHY3PjoxMDI0IHNoYXJlZCB1bm9yZGVyZWQgdWlk PTEzOSBwb3J0PTUyMzg2IiAjMTYwIGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAw N2Y4NGVjMDAxMDAwIG5pZD0weDE3N2M3IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzBlY2QwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNw YXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNw YXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0 aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5J T1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJ bXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAw MjFlMWU5MjEwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRl cm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9u LmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAg IExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFk ZXIgZm9yIDEwLjIxOC4xMTAuNjIoc2JpbWdhcHAxNy1wd2luZm8xOjQxODkzKTx2MTQ+OjEwMjcg c2hhcmVkIHVub3JkZXJlZCB1aWQ9NDg1MzIgcG9ydD01OTg3MSIgIzE1OCBkYWVtb24gcHJpbz0x MCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQ0ODAwYTgwMCBuaWQ9MHgxNzdjNSBydW5uYWJsZSBb MHgwMDAwN2Y4NDMxMGNmMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJ YXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0 IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YToz OSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZh OjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3Vu Lm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6Mzgw KQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZGZlZTBiMD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0 IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENv bm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29u bmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1 bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBO b25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjU3KHNiaW1nYXBwMTItc2Vy dmVyMjoxNzg0Nyk8djEyPjoxMDI2IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEzOCBwb3J0PTU5MzMw IiAjMTU2IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDQ0MTA3ODAwIG5p ZD0weDE3N2M0IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzExZDAwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFk MChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29j a2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRp dmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0 aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0 Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFkYzQ4MTk4PiAoYSBq YXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVj dGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0 IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxl IHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4x MTAuNjAoc2JpbWdhcHAxNS1wd2luZm8xOjg5MzYpPHYxNT46MTAyNyBzaGFyZWQgdW5vcmRlcmVk IHVpZD01NDA4OCBwb3J0PTUyMzgyIiAjMTU0IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9 MHgwMDAwN2Y4NDY0MDE0ODAwIG5pZD0weDE3N2MyIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzEzZDIw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZp bGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2Nr ZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5j aC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5p by5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENo YW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgw MDAwMDAwMjFlMWU4ZjQwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4 MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25u ZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0 NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2Fn ZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNTcoc2JpbWdhcHAxMi1ydG4xOjMwMzEyKTx2MTg+OjEw Mjkgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTgxNzQgcG9ydD01OTMzNCIgIzE1MCBkYWVtb24gcHJp bz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQ0ODAwOTAwMCBuaWQ9MHgxNzdjMCBydW5uYWJs ZSBbMHgwMDAwN2Y4NDMxNWQ0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJM RQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkK CWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2 YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5q YXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQg c3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6 MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTE4MjI3MD4gKGEgamF2YS5sYW5nLk9iamVjdCkK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVy KENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3Au Q29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFk LnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJ LSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjU3KHNiaW1nYXBwMTIt cHdpbmZvMToyNDk4Nyk8djE1PjoxMDI4IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTc0NDU0IHBvcnQ9 NTkzMzgiICMxNTIgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0MzQxMDg4 MDAgbmlkPTB4MTc3YmYgcnVubmFibGUgWzB4MDAwMDdmODQzMTZkNTAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBs LnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVh ZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50 b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFk KElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChT b2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU4NzY1Nzg+ IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5D b25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5 KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93 bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAu MjE4LjExMC42MChzYmltZ2FwcDE1LXJ0bjE6MTM1ODIpPHYxOD46MTAyOCBzaGFyZWQgdW5vcmRl cmVkIHVpZD0xMzEyNSBwb3J0PTUyMzgwIiAjMTQ4IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0 aWQ9MHgwMDAwN2Y4NDQwMDBjMDAwIG5pZD0weDE3N2JlIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzE3 ZDYwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNo LkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5T b2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5p by5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3Vu Lm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tl dENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8 MHgwMDAwMDAwMjFlNzlmYTA4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZh OjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihD b25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZh Ojc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVz c2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNjAoc2JpbWdhcHAxNS1zZXJ2ZXIxOjE5ODYpPHYx Mj46MTAyNiBzaGFyZWQgdW5vcmRlcmVkIHVpZD0xMzcgcG9ydD01MjM4NCIgIzE1MSBkYWVtb24g cHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQ2NDAxMjgwMCBuaWQ9MHgxNzdiZCBydW5u YWJsZSBbMHgwMDAwN2Y4NDMxOGQ3MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5O QUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhv ZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIu amF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRp bC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJ YXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmph dmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZGM0ODE4MD4gKGEgamF2YS5sYW5nLk9iamVj dCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVh ZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50 Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhy ZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJz OgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjU3KHNiaW1nYXBw MTItbG9jYXRvcjoxMzY1Nzpsb2NhdG9yKTxlYz48djA+OjEwMjQgc2hhcmVkIHVub3JkZXJlZCB1 aWQ9MTM5OSBwb3J0PTU5MzMyIiAjMTQ5IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgw MDAwN2Y4NDRjMDBjMDAwIG5pZD0weDE3N2JjIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzE5ZDgwMDBd CiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVE aXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRE aXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5J T1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5j aC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5u ZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAw MDAwMjFkZDk2ZTc4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5p bnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0 aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkK CiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSBy ZWFkZXIgZm9yIDEwLjIxOC4xMTAuNTcoc2JpbWdhcHAxMi1zZXJ2ZXIxOjE3ODIyKTx2MTI+OjEw Mjcgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTM4IHBvcnQ9NTkzMzYiICMxNDcgZGFlbW9uIHByaW89 MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0MzgxMDMwMDAgbmlkPTB4MTc3YmIgcnVubmFibGUg WzB4MDAwMDdmODQzMWFkOTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUK CWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglh dCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6 MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2 YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1 bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4 MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU3OWZlZTg+IChhIGphdmEubGFuZy5PYmplY3QpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihD b25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNv bm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5y dW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0g Tm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC41NyhzYmltZ2FwcDEyLXNl cnZlcjM6MTc4MTkpPHYxMj46MTAyNSBzaGFyZWQgdW5vcmRlcmVkIHVpZD0xMzggcG9ydD01OTMy OCIgIzE0NiBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQzYzAwYzAwMCBu aWQ9MHgxNzdiYSBydW5uYWJsZSBbMHgwMDAwN2Y4NDMxYmRhMDAwXQogICBqYXZhLmxhbmcuVGhy ZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVh ZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNv Y2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0 aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9V dGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tl dENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTViYzUzMD4gKGEg amF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5l Y3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglh dCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJs ZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTgu MTEwLjY2KHNiaW1nYXBwMjEtcHdpbmZvMTozMDk4Nyk8djE0PjoxMDI3IHNoYXJlZCB1bm9yZGVy ZWQgdWlkPTQ4NzIzIHBvcnQ9NTI4MzMiICMxNDUgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRp ZD0weDAwMDA3Zjg0M2MwMGE4MDAgbmlkPTB4MTc3YjkgcnVubmFibGUgWzB4MDAwMDdmODQzMWNk YjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2gu RmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNv Y2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlv LmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4u bmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0 Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDww eDAwMDAwMDAyMWU1YmJjYzA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6 MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENv bm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6 NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNz YWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42MyhzYmltZ2FwcDE4LXB3aW5mbzE6MTMwNDM0KTx2 Mz46MTAyNCBzaGFyZWQgdW5vcmRlcmVkIHVpZD04MTI1MSBwb3J0PTU0NTIwIiAjMTQwIGRhZW1v biBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDQ4MDA3MDAwIG5pZD0weDE3N2I4IHJ1 bm5hYmxlIFsweDAwMDA3Zjg0MzFkZGMwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJV Tk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0 aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hl ci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9V dGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIp CglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwu amF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlMTgxYTAwPiAoYSBqYXZhLmxhbmcuT2Jq ZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9S ZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5U aHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXpl cnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNjUoc2JpbWdh cHAyMC1ydG4xOjQ4Nzc0KTx2MTg+OjEwMjggc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTE2OTQgcG9y dD00ODk4MyIgIzE0MiBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQ2NDAx MDgwMCBuaWQ9MHgxNzdiNyBydW5uYWJsZSBbMHgwMDAwN2Y4NDMxZWRkMDAwXQogICBqYXZhLmxh bmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlcklt cGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5y ZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJ bnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJl YWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFk KFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTViYzBi MD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNw LkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2 ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQg b3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAx MC4yMTguMTEwLjY2KHNiaW1nYXBwMjEtc2VydmVyMjoyNDExNik8djExPjoxMDI2IHNoYXJlZCB1 bm9yZGVyZWQgdWlkPTEzNyBwb3J0PTUyODM1IiAjMTQ0IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89 MCB0aWQ9MHgwMDAwN2Y4NDQwMDBhMDAwIG5pZD0weDE3N2I2IHJ1bm5hYmxlIFsweDAwMDA3Zjg0 MzFmZGUwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlv LmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5j aC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3Vu Lm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQg c3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNv Y2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tl ZCA8MHgwMDAwMDAwMjFlMTYxMjEwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5q YXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1 bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5q YXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAg bWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNjcoc2JpbWdhcHAyMi1zZXJ2ZXIzOjQzNzA2 KTx2MTI+OjEwMjUgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTM3IHBvcnQ9NjE4MDQiICMxMzggZGFl bW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0MzQxMDcwMDAgbmlkPTB4MTc3YjUg cnVubmFibGUgWzB4MDAwMDdmODQzMjBkZjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTog UlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBN ZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRj aGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJ T1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5 MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1w bC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWUxNjE2OTA+IChhIGphdmEubGFuZy5P YmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5p b1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5n LlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25p emVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42NyhzYmlt Z2FwcDIyLXJ0bjE6NTUyODMpPHYxOD46MTAyOCBzaGFyZWQgdW5vcmRlcmVkIHVpZD0xNTU5OCBw b3J0PTYxODA2IiAjMTQzIGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDRj MDBhODAwIG5pZD0weDE3N2I0IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzIxZTAwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVy SW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVy LnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVh ZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwu cmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJl YWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlMTYx OGEwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50 Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6 MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tl ZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9y IDEwLjIxOC4xMTAuNjMoc2JpbWdhcHAxOC1zZXJ2ZXIyOjI5NDgpPHYxMj46MTAyNiBzaGFyZWQg dW5vcmRlcmVkIHVpZD0xMzcgcG9ydD01NDUxOCIgIzE0MSBkYWVtb24gcHJpbz0xMCBvc19wcmlv PTAgdGlkPTB4MDAwMDdmODQ3MDEwZTAwMCBuaWQ9MHgxNzdiMyBydW5uYWJsZSBbMHgwMDAwN2Y4 NDMyMmUxMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5p by5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8u Y2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1 bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0 IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5T b2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2Nr ZWQgPDB4MDAwMDAwMDIxZGYyYjIwMD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24u amF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5y dW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQu amF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQ IG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjYzKHNiaW1nYXBwMTgtc2VydmVyMzoyODEz KTx2OD46MTAyNSBzaGFyZWQgdW5vcmRlcmVkIHVpZD0xMjYgcG9ydD01NDUxNiIgIzEzOSBkYWVt b24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQ0NDEwNTgwMCBuaWQ9MHgxNzdiMiBy dW5uYWJsZSBbMHgwMDAwN2Y4NDMyM2UyMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBS VU5OQUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1l dGhvZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNo ZXIuamF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElP VXRpbC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTky KQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBs LmphdmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZGQ1NjgzOD4gKGEgamF2YS5sYW5nLk9i amVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlv UmVhZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcu VGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6 ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjY0KHNiaW1n YXBwMTktcnRuMToxMjEzMzYpPHYxOD46MTAyOCBzaGFyZWQgdW5vcmRlcmVkIHVpZD0xOTk1MiBw b3J0PTU3NTQzIiAjMTM3IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDY0 MDBlODAwIG5pZD0weDE3N2IxIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzI0ZTMwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVy SW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVy LnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVh ZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwu cmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJl YWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFlNWJj MmYwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50 Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6 MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tl ZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9y IDEwLjIxOC4xMTAuNjYoc2JpbWdhcHAyMS1ydG4xOjM1ODcyKTx2MTc+OjEwMjggc2hhcmVkIHVu b3JkZXJlZCB1aWQ9MTQyNDkgcG9ydD01MjgzMSIgIzEzNiBkYWVtb24gcHJpbz0xMCBvc19wcmlv PTAgdGlkPTB4MDAwMDdmODQzNDEwNTAwMCBuaWQ9MHgxNzdhZCBydW5uYWJsZSBbMHgwMDAwN2Y4 NDMyNWU0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5p by5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8u Y2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1 bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0 IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5T b2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2Nr ZWQgPDB4MDAwMDAwMDIxZTE2MWYzMD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24u amF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5y dW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQu amF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQ IG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjYzKHNiaW1nYXBwMTgtcnRuMToxNDE3NCk8 djE4PjoxMDI4IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTIyNTY2IHBvcnQ9NTQ1MTQiICMxMzUgZGFl bW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0NGMwMDg4MDAgbmlkPTB4MTc3YWMg cnVubmFibGUgWzB4MDAwMDdmODQzMjZlNTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTog UlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBN ZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRj aGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJ T1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5 MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1w bC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRmMmFkNTA+IChhIGphdmEubGFuZy5P YmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5p b1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJu YWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5n LlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25p emVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42NShzYmlt Z2FwcDIwLXB3aW5mbzE6NDM5NTIpPHYxND46MTAyNyBzaGFyZWQgdW5vcmRlcmVkIHVpZD01MzQy NiBwb3J0PTQ4OTgxIiAjMTM0IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4 NDY0MDBkMDAwIG5pZD0weDE3N2FiIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzI3ZTYwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRj aGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRj aGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwu cmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0 aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBs LnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFk ZGZiMTE4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmph dmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExv Y2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJHZW9kZSBVRFAgSU5ULTIsc2Jp bWdhcHAxNC0zMjk4NCIgIzEzMyBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4 NDk4MDBjMDAwIG5pZD0weDE3N2FhIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0MzI4 ZTcwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBz dW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9y ICA8MHgwMDAwMDAwMjFkZGYzMjY4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0 cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tTdXBwb3J0LmphdmE6MTc1KQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29u ZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjAzOSkK CWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZEJsb2NraW5nUXVldWUudGFrZShMaW5rZWRC bG9ja2luZ1F1ZXVlLmphdmE6NDQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9v bEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2NykKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4 ZWN1dG9yLmphdmE6MTEyNykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVj dXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNykKCWF0IGphdmEubGFu Zy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9u aXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNjcoc2Jp bWdhcHAyMi1zZXJ2ZXIxOjQzNjk4KTx2MTI+OjEwMjYgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTM3 IHBvcnQ9NjE4MDIiICMxMzIgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0 MzQxMDMwMDAgbmlkPTB4MTc3YTkgcnVubmFibGUgWzB4MDAwMDdmODQzMjllODAwMF0KICAgamF2 YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNo ZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNo ZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5y ZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRp bC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwu cmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRk ZmIzYTA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2 YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9j a2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBm b3IgMTAuMjE4LjExMC42MShzYmltZ2FwcDE2LXJ0bjE6NjIxOTIpPHYxOD46MTAyOCBzaGFyZWQg dW5vcmRlcmVkIHVpZD0xMjQ2NyBwb3J0PTU5NjUxIiAjMTMxIGRhZW1vbiBwcmlvPTEwIG9zX3By aW89MCB0aWQ9MHgwMDAwN2Y4NDY0MDBiMDAwIG5pZD0weDE3N2E4IHJ1bm5hYmxlIFsweDAwMDA3 Zjg0MzJhZTkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4u bmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5p by5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQg c3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJ YXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNo LlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxv Y2tlZCA8MHgwMDAwMDAwMjFkZmVkZWEwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFw YWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlv bi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9u LnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVh ZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQ MlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNTgoc2JpbWdhcHAxMy1zZXJ2ZXIyOjM2 Mjk4KTx2MTI+OjEwMjYgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTM4IHBvcnQ9NDkzNTIiICMxMzAg ZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0NDQxMDM4MDAgbmlkPTB4MTc3 YTcgcnVubmFibGUgWzB4MDAwMDdmODQzMmJlYTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2 ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNw YXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZl cihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZh OjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVs SW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWUxZTg2ZDA+IChhIGphdmEubGFu Zy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1 bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5s YW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hy b25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42Myhz YmltZ2FwcDE4LXNlcnZlcjE6Mjk3Mik8djEzPjoxMDI3IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEz OCBwb3J0PTU0NTEyIiAjMTI3IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4 NDRjMDAxMDAwIG5pZD0weDE3N2E2IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzJjZWIwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRj aGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRj aGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwu cmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0 aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBs LnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFk ZmVlNTMwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmph dmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExv Y2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIg Zm9yIDEwLjIxOC4xMTAuNTgoc2JpbWdhcHAxMy1zZXJ2ZXIxOjM2MzA4KTx2MTI+OjEwMjcgc2hh cmVkIHVub3JkZXJlZCB1aWQ9MTM4IHBvcnQ9NDkzNTQiICMxMjkgZGFlbW9uIHByaW89MTAgb3Nf cHJpbz0wIHRpZD0weDAwMDA3Zjg0NjQwMDkwMDAgbmlkPTB4MTc3YTUgcnVubmFibGUgWzB4MDAw MDdmODQzMmRlYzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1 bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4u bmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglh dCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMp CglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8u Y2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0g bG9ja2VkIDwweDAwMDAwMDAyMWU3MDhjYTA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0 aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rp b24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK IlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC41OShzYmltZ2FwcDE0LXJ0bjE6OTQ2 NDIpPHYyMT46MTAyNSBzaGFyZWQgdW5vcmRlcmVkIHVpZD0xMTggcG9ydD01Mjk3MiIgIzEyOCBk YWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODQ0ODAwNTAwMCBuaWQ9MHgxNzdh NCBydW5uYWJsZSBbMHgwMDAwN2Y4NDMyZWVkMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZl IE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3Bh dGNoZXIuamF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVy KElPVXRpbC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6 MTkyKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJ bXBsLmphdmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZTc5ZmM3OD4gKGEgamF2YS5sYW5n Lk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVu TmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRl cm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxh bmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJv bml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjY0KHNi aW1nYXBwMTktc2VydmVyMzoxMDk0NTQpPHY4PjoxMDI0IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEz NyBwb3J0PTU3NTQxIiAjMTI0IGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4 NDcwMDBiODAwIG5pZD0weDE3N2EzIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzJmZWUwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRj aGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRj aGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwu cmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0 aWwucmVhZChJT1V0aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBs LnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFl MTYxYWIwPiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC50Y3AuQ29ubmVjdGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBv cmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmph dmE6MTY4OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExv Y2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIg Zm9yIDEwLjIxOC4xMTAuNjcoc2JpbWdhcHAyMi1wd2luZm8xOjUwNTU5KTx2MTU+OjEwMjcgc2hh cmVkIHVub3JkZXJlZCB1aWQ9NDg0MzAgcG9ydD02MTc5OCIgIzEyNiBkYWVtb24gcHJpbz0xMCBv c19wcmlvPTAgdGlkPTB4MDAwMDdmODQ0NDEwMTgwMCBuaWQ9MHgxNzdhMSBydW5uYWJsZSBbMHgw MDAwN2Y4NDMzMWYwMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQg c3VuLm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1 bi5uaW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkK CWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIy MykKCWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5p by5jaC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJ LSBsb2NrZWQgPDB4MDAwMDAwMDIxZGYyYWVhMD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5l Y3Rpb24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVj dGlvbi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihU aHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25l CgoiUDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjYyKHNiaW1nYXBwMTctcnRuMTo0 NjQ3Mik8djE3PjoxMDI4IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTExNzc1IHBvcnQ9NTk4NjkiICMx MjAgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0NDgwMDMwMDAgbmlkPTB4 MTc3YTAgcnVubmFibGUgWzB4MDAwMDdmODQzMzJmMTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5T dGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5h dGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXRE aXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1 ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5q YXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFu bmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRmNTBiMTA+IChhIGphdmEu bGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9u LnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUu aW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2 YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3lu Y2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42 NShzYmltZ2FwcDIwLXNlcnZlcjI6MzcxMTYpPHYxMj46MTAyNCBzaGFyZWQgdW5vcmRlcmVkIHVp ZD0xMzcgcG9ydD00ODk3OSIgIzEyMiBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAw MDdmODQ0MDAwODgwMCBuaWQ9MHgxNzc5ZiBydW5uYWJsZSBbMHgwMDAwN2Y4NDMzM2YyMDAwXQog ICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5GaWxlRGlz cGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8uY2guU29ja2V0RGlz cGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1bi5uaW8uY2guSU9V dGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0IHN1bi5uaW8uY2gu SU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRDaGFubmVs SW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2NrZWQgPDB4MDAwMDAw MDIxZTFlODlhMD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24uamF2YToxODA5KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW4oQ29ubmVjdGlv bi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgog ICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQIG1lc3NhZ2UgcmVh ZGVyIGZvciAxMC4yMTguMTEwLjYxKHNiaW1nYXBwMTYtcHdpbmZvMTo1NzQ3Myk8djE0PjoxMDI3 IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTU0NjIyIHBvcnQ9NTk2NDkiICMxMjMgZGFlbW9uIHByaW89 MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0NjQwMDY4MDAgbmlkPTB4MTc3OWUgcnVubmFibGUg WzB4MDAwMDdmODQzMzRmMzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUK CWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglh dCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6 MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2 YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1 bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4 MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWU3OWY2NDg+IChhIGphdmEubGFuZy5PYmplY3QpCglh dCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihD b25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNv bm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5y dW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0g Tm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42NyhzYmltZ2FwcDIyLXNl cnZlcjI6NDM0MjMpPHY3PjoxMDI0IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEzNyBwb3J0PTYxODAw IiAjMTIxIGRhZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDNjMDA4ODAwIG5p ZD0weDE3NzlkIHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzM1ZjQwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFk MChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29j a2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRp dmVCdWZmZXIoSU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0 aWwuamF2YToxOTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0 Q2hhbm5lbEltcGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFkZmVlOTUwPiAoYSBq YXZhLmxhbmcuT2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVj dGlvbi5ydW5OaW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0 IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxl IHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4x MTAuNjQoc2JpbWdhcHAxOS1wd2luZm8xOjExNjY1MCk8djE1PjoxMDI3IHNoYXJlZCB1bm9yZGVy ZWQgdWlkPTcyMTU3IHBvcnQ9NTc1MzUiICMxMTUgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRp ZD0weDAwMDA3Zjg0MzQxMDEwMDAgbmlkPTB4MTc3OWIgcnVubmFibGUgWzB4MDAwMDdmODQzMzdm NjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2gu RmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNv Y2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlv LmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4u bmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0 Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDww eDAwMDAwMDAyMWRmMmI1NjA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdl b2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6 MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENv bm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6 NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNz YWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42NChzYmltZ2FwcDE5LXNlcnZlcjI6MTA5NzExKTx2 MTI+OjEwMjUgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTM3IHBvcnQ9NTc1MzkiICMxMTQgZGFlbW9u IHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0MzgwMDEwMDAgbmlkPTB4MTc3OTYgcnVu bmFibGUgWzB4MDAwMDdmODQzM2NmYjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVO TkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRo b2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNwYXRjaGVy LmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0 aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZhOjE5MikK CWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVsSW1wbC5q YXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRkNTZhNDg+IChhIGphdmEubGFuZy5PYmpl Y3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1bk5pb1Jl YWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwu dGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5sYW5nLlRo cmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVy czoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42NChzYmltZ2Fw cDE5LXNlcnZlcjE6MTA5NzEyKTx2MTI+OjEwMjYgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTM3IHBv cnQ9NTc1MzYiICMxMTMgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0NDAw MDEwMDAgbmlkPTB4MTc3OTUgcnVubmFibGUgWzB4MDAwMDdmODQzM2RmYzAwMF0KICAgamF2YS5s YW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJ bXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIu cmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFk SW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5y ZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVh ZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWUxZThj NzA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRj cC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YTox Njg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2Vk IG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3Ig MTAuMjE4LjExMC42NihzYmltZ2FwcDIxLXNlcnZlcjE6MjQwODYpPHYxMT46MTAyNSBzaGFyZWQg dW5vcmRlcmVkIHVpZD0xMjcgcG9ydD01MjgyOSIgIzExMSBkYWVtb24gcHJpbz0xMCBvc19wcmlv PTAgdGlkPTB4MDAwMDdmODQzYzAwMTAwMCBuaWQ9MHgxNzc5NCBydW5uYWJsZSBbMHgwMDAwN2Y4 NDMzZWZkMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5p by5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5uaW8u Y2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0IHN1 bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykKCWF0 IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5jaC5T b2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBsb2Nr ZWQgPDB4MDAwMDAwMDIxZGZlZTc0MD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rpb24u amF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5y dW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQu amF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUDJQ IG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjY1KHNiaW1nYXBwMjAtc2VydmVyMTozNzEz OSk8djEyPjoxMDI2IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEzNyBwb3J0PTQ4OTc3IiAjMTEwIGRh ZW1vbiBwcmlvPTEwIG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NDQ4MDAxMDAwIG5pZD0weDE3Nzkz IHJ1bm5hYmxlIFsweDAwMDA3Zjg0MzNmZmUwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6 IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUg TWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0 Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIo SU9VdGlsLmphdmE6MjIzKQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YTox OTIpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbElt cGwuamF2YTozODApCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFkZmVkYzkwPiAoYSBqYXZhLmxhbmcu T2JqZWN0KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlvbi5ydW5O aW9SZWFkZXIoQ29ubmVjdGlvbi5qYXZhOjE4MDkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVy bmFsLnRjcC5Db25uZWN0aW9uLnJ1bihDb25uZWN0aW9uLmphdmE6MTY4OSkKCWF0IGphdmEubGFu Zy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9u aXplcnM6CgktIE5vbmUKCiJQMlAgbWVzc2FnZSByZWFkZXIgZm9yIDEwLjIxOC4xMTAuNjUoc2Jp bWdhcHAyMC1zZXJ2ZXIzOjM3MTI0KTx2MTI+OjEwMjUgc2hhcmVkIHVub3JkZXJlZCB1aWQ9MTM3 IHBvcnQ9NDg5NzUiICMxMDQgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0 NzAwMDk4MDAgbmlkPTB4MTc3OGMgcnVubmFibGUgWzB4MDAwMDdmODRkMDY5MzAwMF0KICAgamF2 YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNo ZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNo ZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5y ZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRp bC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwu cmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWUx NjEwMDA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2 YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9j a2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBm b3IgMTAuMjE4LjExMC42NihzYmltZ2FwcDIxLXNlcnZlcjM6MjQwMjkpPHYxMD46MTAyNCBzaGFy ZWQgdW5vcmRlcmVkIHVpZD0xMzcgcG9ydD01MjgyNyIgIzEwMyBkYWVtb24gcHJpbz0xMCBvc19w cmlvPTAgdGlkPTB4MDAwMDdmODQ2NDAwNTgwMCBuaWQ9MHgxNzc4YiBydW5uYWJsZSBbMHgwMDAw N2Y4NGQwNzk0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3Vu Lm5pby5jaC5GaWxlRGlzcGF0Y2hlckltcGwucmVhZDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5u aW8uY2guU29ja2V0RGlzcGF0Y2hlci5yZWFkKFNvY2tldERpc3BhdGNoZXIuamF2YTozOSkKCWF0 IHN1bi5uaW8uY2guSU9VdGlsLnJlYWRJbnRvTmF0aXZlQnVmZmVyKElPVXRpbC5qYXZhOjIyMykK CWF0IHN1bi5uaW8uY2guSU9VdGlsLnJlYWQoSU9VdGlsLmphdmE6MTkyKQoJYXQgc3VuLm5pby5j aC5Tb2NrZXRDaGFubmVsSW1wbC5yZWFkKFNvY2tldENoYW5uZWxJbXBsLmphdmE6MzgwKQoJLSBs b2NrZWQgPDB4MDAwMDAwMDIxZGY1MGM2MD4gKGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuTmlvUmVhZGVyKENvbm5lY3Rp b24uamF2YToxODA5KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC50Y3AuQ29ubmVjdGlv bi5ydW4oQ29ubmVjdGlvbi5qYXZhOjE2ODkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJl YWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoi UDJQIG1lc3NhZ2UgcmVhZGVyIGZvciAxMC4yMTguMTEwLjYxKHNiaW1nYXBwMTYtc2VydmVyMTo1 MDU0Nik8djEwPjoxMDI1IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEzOSBwb3J0PTU5NjQ3IiAjODkg ZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0NjQwMDQwMDAgbmlkPTB4MTc3 N2IgcnVubmFibGUgWzB4MDAwMDdmODRkMDg5NTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNoZXJJbXBsLnJlYWQwKE5hdGl2 ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNoZXIucmVhZChTb2NrZXREaXNw YXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkSW50b05hdGl2ZUJ1ZmZl cihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5yZWFkKElPVXRpbC5qYXZh OjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwucmVhZChTb2NrZXRDaGFubmVs SW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRkZmJjODg+IChhIGphdmEubGFu Zy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLnRjcC5Db25uZWN0aW9uLnJ1 bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2YToxNjg5KQoJYXQgamF2YS5s YW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hy b25pemVyczoKCS0gTm9uZQoKIlAyUCBtZXNzYWdlIHJlYWRlciBmb3IgMTAuMjE4LjExMC42Mihz YmltZ2FwcDE3LXNlcnZlcjM6MzUyODgpPHY1PjoxMDI2IHNoYXJlZCB1bm9yZGVyZWQgdWlkPTEz NyBwb3J0PTU5ODY3IiAjODYgZGFlbW9uIHByaW89MTAgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg0 NzAwMDg4MDAgbmlkPTB4MTc3NzggcnVubmFibGUgWzB4MDAwMDdmODRkMGI5ODAwMF0KICAgamF2 YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IHN1bi5uaW8uY2guRmlsZURpc3BhdGNo ZXJJbXBsLnJlYWQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNvY2tldERpc3BhdGNo ZXIucmVhZChTb2NrZXREaXNwYXRjaGVyLmphdmE6MzkpCglhdCBzdW4ubmlvLmNoLklPVXRpbC5y ZWFkSW50b05hdGl2ZUJ1ZmZlcihJT1V0aWwuamF2YToyMjMpCglhdCBzdW4ubmlvLmNoLklPVXRp bC5yZWFkKElPVXRpbC5qYXZhOjE5MikKCWF0IHN1bi5uaW8uY2guU29ja2V0Q2hhbm5lbEltcGwu cmVhZChTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjM4MCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRm MmI4YzA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFs LnRjcC5Db25uZWN0aW9uLnJ1bk5pb1JlYWRlcihDb25uZWN0aW9uLmphdmE6MTgwOSkKCWF0IG9y Zy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLkNvbm5lY3Rpb24ucnVuKENvbm5lY3Rpb24uamF2 YToxNjg5KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9j a2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkRNLU1lbWJlckV2ZW50SW52b2tl ciIgIzI0IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWNjOWE4MDAgbmlk PTB4MTc3M2Egd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmODRkMTI5ZjAwMF0KICAgamF2 YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2Fm ZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAy MWRmM2YwNTg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3lu Y2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tz LkxvY2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YToxNzUpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3Qu YXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDM5KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuTGlua2VkQmxvY2tpbmdRdWV1ZS50YWtlKExpbmtlZEJsb2NraW5nUXVldWUu amF2YTo0NDIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3Ry aWJ1dGlvbk1hbmFnZXIkTWVtYmVyRXZlbnRJbnZva2VyLnJ1bihEaXN0cmlidXRpb25NYW5hZ2Vy LmphdmE6MjQ2OCkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAg IExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJHZW9kZSBVRFAgSU5ULTEs c2JpbWdhcHAxNC0zMjk4NCIgIzM2IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3 Zjg0OTgwMDE4MDAgbmlkPTB4MTc3Mzkgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmODRk MTNhMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0 IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBm b3IgIDwweDAwMDAwMDAyMWRkZjMyNjg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFi c3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YToxNzUpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRD b25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDM5 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkQmxvY2tpbmdRdWV1ZS50YWtlKExpbmtl ZEJsb2NraW5nUXVldWUuamF2YTo0NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQ b29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY3KQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29s RXhlY3V0b3IuamF2YToxMTI3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4 ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE3KQoJYXQgamF2YS5s YW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hy b25pemVyczoKCS0gTm9uZQoKIlRpbWVyLTEiICMzNSBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0 aWQ9MHgwMDAwN2Y4NTVjYzgzMDAwIG5pZD0weDE3NzM4IGluIE9iamVjdC53YWl0KCkgWzB4MDAw MDdmODRkMTRhMTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAo b24gb2JqZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhv ZCkKCWF0IGphdmEudXRpbC5UaW1lclRocmVhZC5tYWluTG9vcChUaW1lci5qYXZhOjU1MikKCS0g bG9ja2VkIDwweDAwMDAwMDAyMWRmM2YxNDg+IChhIGphdmEudXRpbC5UYXNrUXVldWUpCglhdCBq YXZhLnV0aWwuVGltZXJUaHJlYWQucnVuKFRpbWVyLmphdmE6NTA1KQoKICAgTG9ja2VkIG93bmFi bGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkdlb2RlIEhlYXJ0YmVhdCBTZW5kZXIiICMzNCBk YWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjYzgxMDAwIG5pZD0weDE3NzM3 IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0ZDE1YTIwMDBdCiAgIGphdmEubGFuZy5U aHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHNsZWVwaW5nKQoJYXQgamF2YS5sYW5nLlRocmVh ZC5zbGVlcChOYXRpdmUgTWV0aG9kKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5p bnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5mZC5HTVNIZWFsdGhNb25pdG9yJDMuc2VuZFBlcmlvZGlj SGVhcnRiZWF0cyhHTVNIZWFsdGhNb25pdG9yLmphdmE6NzU0KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5mZC5HTVNIZWFsdGhNb25pdG9y JDMucnVuKEdNU0hlYWx0aE1vbml0b3IuamF2YTo3NDgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEx NDIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1 bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihU aHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSA8MHgw MDAwMDAwMjFkYzg0MmIwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0 b3IkV29ya2VyKQoKIkdlb2RlIEZhaWx1cmUgRGV0ZWN0aW9uIFNlcnZlciB0aHJlYWQgMCIgIzMz IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWNjN2Y4MDAgbmlkPTB4MTc3 MzYgcnVubmFibGUgWzB4MDAwMDdmODRkMTZhMzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0 ZTogUlVOTkFCTEUKCWF0IGphdmEubmV0LlBsYWluU29ja2V0SW1wbC5zb2NrZXRBY2NlcHQoTmF0 aXZlIE1ldGhvZCkKCWF0IGphdmEubmV0LkFic3RyYWN0UGxhaW5Tb2NrZXRJbXBsLmFjY2VwdChB YnN0cmFjdFBsYWluU29ja2V0SW1wbC5qYXZhOjQwOSkKCWF0IGphdmEubmV0LlNlcnZlclNvY2tl dC5pbXBsQWNjZXB0KFNlcnZlclNvY2tldC5qYXZhOjU0NSkKCWF0IGphdmEubmV0LlNlcnZlclNv Y2tldC5hY2NlcHQoU2VydmVyU29ja2V0LmphdmE6NTEzKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5k aXN0cmlidXRlZC5pbnRlcm5hbC5tZW1iZXJzaGlwLmdtcy5mZC5HTVNIZWFsdGhNb25pdG9yLmxh bWJkYSRzdGFydFRjcFNlcnZlciQyKEdNU0hlYWx0aE1vbml0b3IuamF2YTo2OTYpCglhdCBvcmcu YXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLm1lbWJlcnNoaXAuZ21zLmZkLkdNU0hl YWx0aE1vbml0b3IkJExhbWJkYSQ3LzE5NzY2MDI5MDYucnVuKFVua25vd24gU291cmNlKQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQ b29sRXhlY3V0b3IuamF2YToxMTQyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9v bEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE3KQoJYXQgamF2 YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3lu Y2hyb25pemVyczoKCS0gPDB4MDAwMDAwMDIxZGM4NDJlMD4gKGEgamF2YS51dGlsLmNvbmN1cnJl bnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlcikKCiJQMlAgTGlzdGVuZXIgVGhyZWFkIC8xMC4y MTguMTEwLjU5Ojc2NjMiICMzMiBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdm ODU1Y2M3ZDAwMCBuaWQ9MHgxNzczNSBydW5uYWJsZSBbMHgwMDAwN2Y4NGQxN2E0MDAwXQogICBq YXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgc3VuLm5pby5jaC5TZXJ2ZXJTb2Nr ZXRDaGFubmVsSW1wbC5hY2NlcHQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ubmlvLmNoLlNlcnZl clNvY2tldENoYW5uZWxJbXBsLmFjY2VwdChTZXJ2ZXJTb2NrZXRDaGFubmVsSW1wbC5qYXZhOjQy MikKCWF0IHN1bi5uaW8uY2guU2VydmVyU29ja2V0Q2hhbm5lbEltcGwuYWNjZXB0KFNlcnZlclNv Y2tldENoYW5uZWxJbXBsLmphdmE6MjUwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZGM1NjQ4OD4g KGEgamF2YS5sYW5nLk9iamVjdCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudGNwLlRD UENvbmR1aXQucnVuKFRDUENvbmR1aXQuamF2YTo2ODEpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1 bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBO b25lCgoiVGltZXItMCIgIzMxIGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1 NWNjNzkwMDAgbmlkPTB4MTc3MzQgaW4gT2JqZWN0LndhaXQoKSBbMHgwMDAwN2Y4NGQxOGE1MDAw XQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChvbiBvYmplY3QgbW9u aXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS51 dGlsLlRpbWVyVGhyZWFkLm1haW5Mb29wKFRpbWVyLmphdmE6NTUyKQoJLSBsb2NrZWQgPDB4MDAw MDAwMDIxZGY0OThjOD4gKGEgamF2YS51dGlsLlRhc2tRdWV1ZSkKCWF0IGphdmEudXRpbC5UaW1l clRocmVhZC5ydW4oVGltZXIuamF2YTo1MDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6 ZXJzOgoJLSBOb25lCgoiR2VvZGUgRmFpbHVyZSBEZXRlY3Rpb24gU2NoZWR1bGVyIiAjMzAgZGFl bW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1Y2M3NzgwMCBuaWQ9MHgxNzczMyBy dW5uYWJsZSBbMHgwMDAwN2Y4NGQxOWE2MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBU SU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1l dGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDIxZGNiNDE3MD4gKGEgamF2 YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0 aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFy a05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjE1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9j a3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3Mo QWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDc4KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShT Y2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDkzKQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShT Y2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo4MDkpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YTox MDY3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtl cihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE3 KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93 bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKInVuaWNhc3QgcmVjZWl2ZXIsc2JpbWdhcHAx NC0zMjk4NCIgIzI5IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWNjNzQ4 MDAgbmlkPTB4MTc3MzIgcnVubmFibGUgWzB4MDAwMDdmODRkMWFhNzAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCWF0IGphdmEubmV0LlBsYWluRGF0YWdyYW1Tb2NrZXRJ bXBsLnJlY2VpdmUwKE5hdGl2ZSBNZXRob2QpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFkZDZiOGUw PiAoYSBqYXZhLm5ldC5QbGFpbkRhdGFncmFtU29ja2V0SW1wbCkKCWF0IGphdmEubmV0LkFic3Ry YWN0UGxhaW5EYXRhZ3JhbVNvY2tldEltcGwucmVjZWl2ZShBYnN0cmFjdFBsYWluRGF0YWdyYW1T b2NrZXRJbXBsLmphdmE6MTQzKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIxZGQ2YjhlMD4gKGEgamF2 YS5uZXQuUGxhaW5EYXRhZ3JhbVNvY2tldEltcGwpCglhdCBqYXZhLm5ldC5EYXRhZ3JhbVNvY2tl dC5yZWNlaXZlKERhdGFncmFtU29ja2V0LmphdmE6ODEyKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDIx ZGY0OTQ4OD4gKGEgamF2YS5uZXQuRGF0YWdyYW1QYWNrZXQpCgktIGxvY2tlZCA8MHgwMDAwMDAw MjFkZDY1ZmMwPiAoYSBqYXZhLm5ldC5NdWx0aWNhc3RTb2NrZXQpCglhdCBvcmcuamdyb3Vwcy5w cm90b2NvbHMuVURQJFBhY2tldFJlY2VpdmVyLnJ1bihVRFAuamF2YTo2OTQpCglhdCBqYXZhLmxh bmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJv bml6ZXJzOgoJLSBOb25lCgoiVHJhbnNmZXJRdWV1ZUJ1bmRsZXIsc2JpbWdhcHAxNC0zMjk4NCIg IzI4IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWNjNzMwMDAgbmlkPTB4 MTc3MzEgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmODRkMWJhODAwMF0KICAgamF2YS5s YW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5w YXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAyMWRk OWJmODA+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hy b25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxv Y2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YToxNzUpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdh aXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDM5KQoJYXQgamF2YS51dGlsLmNv bmN1cnJlbnQuQXJyYXlCbG9ja2luZ1F1ZXVlLnRha2UoQXJyYXlCbG9ja2luZ1F1ZXVlLmphdmE6 NDAzKQoJYXQgb3JnLmpncm91cHMucHJvdG9jb2xzLlRyYW5zZmVyUXVldWVCdW5kbGVyLnJ1bihU cmFuc2ZlclF1ZXVlQnVuZGxlci5qYXZhOjc1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK Ikdlb2RlIFVEUCBUaW1lci0yLHNiaW1nYXBwMTQtMzI5ODQiICMyNyBkYWVtb24gcHJpbz01IG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjYzZlODAwIG5pZD0weDE3NzMwIHdhaXRpbmcgb24gY29u ZGl0aW9uIFsweDAwMDA3Zjg0ZDFjYTkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdB SVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJ LSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFkZGM5MmY4PiAoYSBqYXZhLnV0aWwu Y29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmpl Y3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tT dXBwb3J0LmphdmE6MTc1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RR dWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3lu Y2hyb25pemVyLmphdmE6MjAzOSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZEJsb2Nr aW5nUXVldWUudGFrZShMaW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDQyKQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9y LmphdmE6MTA2NykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5y dW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyNykKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5q YXZhOjYxNykKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExv Y2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJUaW1lciBydW5uZXItMSxzYmlt Z2FwcDE0LTMyOTg0IiAjMjYgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1 Y2M2YzAwMCBuaWQ9MHgxNzcyZiB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4NGQxZGFh MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJ YXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0 IGZvciAgPDB4MDAwMDAwMDIxZGRjOTQ0OD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu QWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6 MjE1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJv bml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIuamF2YToyMDc4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRGVsYXlRdWV1ZS50YWtlKERl bGF5UXVldWUuamF2YToyMjMpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5EZWxheVF1ZXVlLnRh a2UoRGVsYXlRdWV1ZS5qYXZhOjcwKQoJYXQgb3JnLmpncm91cHMudXRpbC5UaW1lU2NoZWR1bGVy My5ydW4oVGltZVNjaGVkdWxlcjMuamF2YToxNjYpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihU aHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25l CgoiR2VvZGUgTWVtYmVyc2hpcCBUaW1lciIgIzI1IGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRp ZD0weDAwMDA3Zjg1NWNiNzkwMDAgbmlkPTB4MTc3MmUgaW4gT2JqZWN0LndhaXQoKSBbMHgwMDAw N2Y4NGQyMmFiMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5HIChvbiBvYmpl Y3QgbW9uaXRvcikKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJYXQg amF2YS5sYW5nLk9iamVjdC53YWl0KE9iamVjdC5qYXZhOjUwMikKCWF0IGphdmEudXRpbC5UaW1l clRocmVhZC5tYWluTG9vcChUaW1lci5qYXZhOjUyNikKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRk NTA2OTg+IChhIGphdmEudXRpbC5UYXNrUXVldWUpCglhdCBqYXZhLnV0aWwuVGltZXJUaHJlYWQu cnVuKFRpbWVyLmphdmE6NTA1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0g Tm9uZQoKIkZ1bmN0aW9uIEV4ZWN1dGlvbiBQcm9jZXNzb3IwIiAjMjMgZGFlbW9uIHByaW89NSBv c19wcmlvPTAgdGlkPTB4MDAwMDdmODU1Y2I3NjgwMCBuaWQ9MHgxNzcyZCB3YWl0aW5nIG9uIGNv bmRpdGlvbiBbMHgwMDAwN2Y4NGQyM2FjMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBX QUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkK CS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDIxZGVkYjQ2OD4gKGEgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2Jq ZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFyayhMb2Nr U3VwcG9ydC5qYXZhOjE3NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1ZXVlZFN5 bmNocm9uaXplci5qYXZhOjIwMzkpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRCbG9j a2luZ1F1ZXVlLnRha2UoTGlua2VkQmxvY2tpbmdRdWV1ZS5qYXZhOjQ0MikKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuT3ZlcmZsb3dRdWV1ZVdpdGhETVN0YXRzLnRh a2UoT3ZlcmZsb3dRdWV1ZVdpdGhETVN0YXRzLmphdmE6MTA4KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5GdW5jdGlvbkV4ZWN1dGlvblBvb2xlZEV4ZWN1dG9yJDIu cnVuKEZ1bmN0aW9uRXhlY3V0aW9uUG9vbGVkRXhlY3V0b3IuamF2YToxMzIpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIucnVuVW50 aWxTaHV0ZG93bihEaXN0cmlidXRpb25NYW5hZ2VyLmphdmE6NjcxKQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyJDkkMS5ydW4oRGlz dHJpYnV0aW9uTWFuYWdlci5qYXZhOjExMzEpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJl YWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoi UGFydGl0aW9uZWRSZWdpb24gTWVzc2FnZSBQcm9jZXNzb3IwIiAjMjIgZGFlbW9uIHByaW89NSBv c19wcmlvPTAgdGlkPTB4MDAwMDdmODU1Y2I3NDAwMCBuaWQ9MHgxNzcyYyB3YWl0aW5nIG9uIGNv bmRpdGlvbiBbMHgwMDAwN2Y4NGQyNGFkMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBX QUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkK CS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDIxZGYzZTg1OD4gKGEgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2Jq ZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFyayhMb2Nr U3VwcG9ydC5qYXZhOjE3NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1ZXVlZFN5 bmNocm9uaXplci5qYXZhOjIwMzkpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRCbG9j a2luZ1F1ZXVlLnRha2UoTGlua2VkQmxvY2tpbmdRdWV1ZS5qYXZhOjQ0MikKCWF0IG9yZy5hcGFj aGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuT3ZlcmZsb3dRdWV1ZVdpdGhETVN0YXRzLnRh a2UoT3ZlcmZsb3dRdWV1ZVdpdGhETVN0YXRzLmphdmE6MTA4KQoJYXQgb3JnLmFwYWNoZS5nZW9k ZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5Qb29sZWRFeGVjdXRvcldpdGhETVN0YXRzJDEucnVuKFBv b2xlZEV4ZWN1dG9yV2l0aERNU3RhdHMuamF2YTo5MCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlz dHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlci5ydW5VbnRpbFNodXRkb3duKERp c3RyaWJ1dGlvbk1hbmFnZXIuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1 dGVkLmludGVybmFsLkRpc3RyaWJ1dGlvbk1hbmFnZXIkOCQxLnJ1bihEaXN0cmlidXRpb25NYW5h Z2VyLmphdmE6MTA4OCkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkK CiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJQck1ldGFEYXRhIGNs ZWFudXAgTWVzc2FnZSBQcm9jZXNzb3IgMCIgIzIxIGRhZW1vbiBwcmlvPTUgb3NfcHJpbz0wIHRp ZD0weDAwMDA3Zjg1NWNiNmYwMDAgbmlkPTB4MTc3MmIgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4 MDAwMDdmODRkMjVhZTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFy a2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcg dG8gd2FpdCBmb3IgIDwweDAwMDAwMDAyMWRmNDFhZjg+IChhIGphdmEudXRpbC5jb25jdXJyZW50 LlN5bmNocm9ub3VzUXVldWUkVHJhbnNmZXJTdGFjaykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50 LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YToxNzUpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5TeW5jaHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2suYXdhaXRGdWxmaWxs KFN5bmNocm9ub3VzUXVldWUuamF2YTo0NTgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TeW5j aHJvbm91c1F1ZXVlJFRyYW5zZmVyU3RhY2sudHJhbnNmZXIoU3luY2hyb25vdXNRdWV1ZS5qYXZh OjM2MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlN5bmNocm9ub3VzUXVldWUucHV0KFN5bmNo cm9ub3VzUXVldWUuamF2YTo4NzcpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmlu dGVybmFsLlBvb2xlZEV4ZWN1dG9yV2l0aERNU3RhdHMkMS5ydW4oUG9vbGVkRXhlY3V0b3JXaXRo RE1TdGF0cy5qYXZhOjkxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5h bC5EaXN0cmlidXRpb25NYW5hZ2VyLnJ1blVudGlsU2h1dGRvd24oRGlzdHJpYnV0aW9uTWFuYWdl ci5qYXZhOjY3MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlz dHJpYnV0aW9uTWFuYWdlciQ3JDEucnVuKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YToxMDQ5KQoJ YXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQoKICAgTG9ja2VkIG93bmFi bGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlBvb2xlZCBIaWdoIFByaW9yaXR5IE1lc3NhZ2Ug UHJvY2Vzc29yIDAiICMyMCBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVj YjZkMDAwIG5pZD0weDE3NzJhIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0ZDI2YWYw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4u bWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8 MHgwMDAwMDAwMjFkZjQxYzMwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFj dFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tTdXBwb3J0LmphdmE6MTc1KQoJYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0 aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjAzOSkKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZEJsb2NraW5nUXVldWUudGFrZShMaW5rZWRCbG9j a2luZ1F1ZXVlLmphdmE6NDQyKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRl cm5hbC5PdmVyZmxvd1F1ZXVlV2l0aERNU3RhdHMudGFrZShPdmVyZmxvd1F1ZXVlV2l0aERNU3Rh dHMuamF2YToxMDgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLlBv b2xlZEV4ZWN1dG9yV2l0aERNU3RhdHMkMS5ydW4oUG9vbGVkRXhlY3V0b3JXaXRoRE1TdGF0cy5q YXZhOjkwKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmli dXRpb25NYW5hZ2VyLnJ1blVudGlsU2h1dGRvd24oRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjY3 MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9u TWFuYWdlciQ1JDEucnVuKERpc3RyaWJ1dGlvbk1hbmFnZXIuamF2YTo5ODEpCglhdCBqYXZhLmxh bmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJv bml6ZXJzOgoJLSBOb25lCgoiUG9vbGVkIE1lc3NhZ2UgUHJvY2Vzc29yIDAiICMxOSBkYWVtb24g cHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjYjZhODAwIG5pZD0weDE3NzI5IHdhaXRp bmcgb24gY29uZGl0aW9uIFsweDAwMDA3Zjg0ZDI3YjAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQu U3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUg TWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMjFkZjQzMGUwPiAoYSBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25k aXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5w YXJrKExvY2tTdXBwb3J0LmphdmE6MTc1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu QWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyLmphdmE6MjAzOSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50Lkxp bmtlZEJsb2NraW5nUXVldWUudGFrZShMaW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDQyKQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5PdmVyZmxvd1F1ZXVlV2l0aERN U3RhdHMudGFrZShPdmVyZmxvd1F1ZXVlV2l0aERNU3RhdHMuamF2YToxMDgpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLlBvb2xlZEV4ZWN1dG9yV2l0aERNU3RhdHMk MS5ydW4oUG9vbGVkRXhlY3V0b3JXaXRoRE1TdGF0cy5qYXZhOjkwKQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5EaXN0cmlidXRpb25NYW5hZ2VyLnJ1blVudGlsU2h1 dGRvd24oRGlzdHJpYnV0aW9uTWFuYWdlci5qYXZhOjY3MSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUu ZGlzdHJpYnV0ZWQuaW50ZXJuYWwuRGlzdHJpYnV0aW9uTWFuYWdlciQ0JDEucnVuKERpc3RyaWJ1 dGlvbk1hbmFnZXIuamF2YTo5NDIpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2 YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiVGhyZWFk c01vbml0b3IiICMxOCBkYWVtb24gcHJpbz01IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjYjY4 MDAwIG5pZD0weDE3NzI4IGluIE9iamVjdC53YWl0KCkgWzB4MDAwMDdmODRkMjhiMTAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAob24gb2JqZWN0IG1vbml0b3Ip CglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEudXRpbC5U aW1lclRocmVhZC5tYWluTG9vcChUaW1lci5qYXZhOjU1MikKCS0gbG9ja2VkIDwweDAwMDAwMDAy MWRmNzNjZDg+IChhIGphdmEudXRpbC5UYXNrUXVldWUpCglhdCBqYXZhLnV0aWwuVGltZXJUaHJl YWQucnVuKFRpbWVyLmphdmE6NTA1KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoK CS0gTm9uZQoKIlN5c3RlbUZhaWx1cmUgUHJvY3RvciIgIzE3IGRhZW1vbiBwcmlvPTUgb3NfcHJp bz0wIHRpZD0weDAwMDA3Zjg1NWM5ZjcwMDAgbmlkPTB4MTc2ZTkgc2xlZXBpbmdbMHgwMDAwN2Y4 NGQyZmIyMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChzbGVl cGluZykKCWF0IGphdmEubGFuZy5UaHJlYWQuc2xlZXAoTmF0aXZlIE1ldGhvZCkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuU3lzdGVtRmFpbHVyZS5ydW5Qcm9jdG9yKFN5c3RlbUZhaWx1cmUuamF2YTo2 NzUpCglhdCBvcmcuYXBhY2hlLmdlb2RlLlN5c3RlbUZhaWx1cmUkNC5ydW4oU3lzdGVtRmFpbHVy ZS5qYXZhOjYwNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAg IExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJTeXN0ZW1GYWlsdXJlIFdh dGNoRG9nIiAjMTYgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzlmNTgw MCBuaWQ9MHgxNzZlOCBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg0ZDMwYjMwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJ YXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBvcmcuYXBhY2hlLmdl b2RlLlN5c3RlbUZhaWx1cmUucnVuV2F0Y2hEb2coU3lzdGVtRmFpbHVyZS5qYXZhOjQ0MikKCS0g bG9ja2VkIDwweDAwMDAwMDAyMWRjMjZiMjA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBvcmcu YXBhY2hlLmdlb2RlLlN5c3RlbUZhaWx1cmUkMy5ydW4oU3lzdGVtRmFpbHVyZS5qYXZhOjM2MikK CWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25h YmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJDb250cm9sRmlsZVdhdGNoZG9nQDQzYzFiNTU2 IG1vbml0b3JpbmcgdmYuZ2Yuc2VydmVyLnN0YXR1cy5jbWQiICMxNCBkYWVtb24gcHJpbz01IG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjOThlMDAwIG5pZD0weDE3NmIxIHdhaXRpbmcgb24gY29u ZGl0aW9uIFsweDAwMDA3Zjg0ZDMxYjQwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJ TUVEX1dBSVRJTkcgKHNsZWVwaW5nKQoJYXQgamF2YS5sYW5nLlRocmVhZC5zbGVlcChOYXRpdmUg TWV0aG9kKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5wcm9jZXNzLkNvbnRyb2xGaWxl V2F0Y2hkb2cucnVuKENvbnRyb2xGaWxlV2F0Y2hkb2cuamF2YTo1NSkKCWF0IGphdmEubGFuZy5U aHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXpl cnM6CgktIE5vbmUKCiJDb250cm9sRmlsZVdhdGNoZG9nQDQwMDllMzA2IG1vbml0b3JpbmcgdmYu Z2Yuc2VydmVyLnN0b3AuY21kIiAjMTMgZGFlbW9uIHByaW89NSBvc19wcmlvPTAgdGlkPTB4MDAw MDdmODU1Yzk4YzgwMCBuaWQ9MHgxNzZiMCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2Y4 NGQzMmI1MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChzbGVl cGluZykKCWF0IGphdmEubGFuZy5UaHJlYWQuc2xlZXAoTmF0aXZlIE1ldGhvZCkKCWF0IG9yZy5h cGFjaGUuZ2VvZGUuaW50ZXJuYWwucHJvY2Vzcy5Db250cm9sRmlsZVdhdGNoZG9nLnJ1bihDb250 cm9sRmlsZVdhdGNoZG9nLmphdmE6NTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQu amF2YTo3NDUpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiU2Vy dmljZSBUaHJlYWQiICMxMCBkYWVtb24gcHJpbz05IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVj MTI0MDAwIG5pZD0weDE3NjUzIHJ1bm5hYmxlIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6 ZXJzOgoJLSBOb25lCgoiQzEgQ29tcGlsZXJUaHJlYWQzIiAjOSBkYWVtb24gcHJpbz05IG9zX3By aW89MCB0aWQ9MHgwMDAwN2Y4NTVjMTE3MDAwIG5pZD0weDE3NjUyIHdhaXRpbmcgb24gY29uZGl0 aW9uIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5B QkxFCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiQzIgQ29tcGls ZXJUaHJlYWQyIiAjOCBkYWVtb24gcHJpbz05IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjMTE0 ODAwIG5pZD0weDE3NjUxIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwMDAwMDAwMDBd CiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCgogICBMb2NrZWQgb3duYWJsZSBz eW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiQzIgQ29tcGlsZXJUaHJlYWQxIiAjNyBkYWVtb24gcHJp bz05IG9zX3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjMTEyODAwIG5pZD0weDE3NjUwIHdhaXRpbmcg b24gY29uZGl0aW9uIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3Rh dGU6IFJVTk5BQkxFCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoi QzIgQ29tcGlsZXJUaHJlYWQwIiAjNiBkYWVtb24gcHJpbz05IG9zX3ByaW89MCB0aWQ9MHgwMDAw N2Y4NTVjMTEwODAwIG5pZD0weDE3NjRmIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAw MDAwMDAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCgogICBMb2NrZWQg b3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiU2lnbmFsIERpc3BhdGNoZXIiICM1IGRh ZW1vbiBwcmlvPTkgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWMxMGUwMDAgbmlkPTB4MTc2NGUg cnVubmFibGUgWzB4MDAwMDAwMDAwMDAwMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTog UlVOTkFCTEUKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJTdXJy b2dhdGUgTG9ja2VyIFRocmVhZCAoQ29uY3VycmVudCBHQykiICM0IGRhZW1vbiBwcmlvPTkgb3Nf cHJpbz0wIHRpZD0weDAwMDA3Zjg1NWMxMGM4MDAgbmlkPTB4MTc2NGQgd2FpdGluZyBvbiBjb25k aXRpb24gWzB4MDAwMDAwMDAwMDAwMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVO TkFCTEUKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJGaW5hbGl6 ZXIiICMzIGRhZW1vbiBwcmlvPTggb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWMwZGIwMDAgbmlk PTB4MTc2NGMgaW4gT2JqZWN0LndhaXQoKSBbMHgwMDAwN2Y4NTE4ZGJhMDAwXQogICBqYXZhLmxh bmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5HIChvbiBvYmplY3QgbW9uaXRvcikKCWF0IGphdmEubGFu Zy5PYmplY3Qud2FpdChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2VR dWV1ZS5yZW1vdmUoUmVmZXJlbmNlUXVldWUuamF2YToxNDMpCgktIGxvY2tlZCA8MHgwMDAwMDAw MjFkZjhiOTIwPiAoYSBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlJExvY2spCglhdCBqYXZh LmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlLnJlbW92ZShSZWZlcmVuY2VRdWV1ZS5qYXZhOjE2NCkK CWF0IGphdmEubGFuZy5yZWYuRmluYWxpemVyJEZpbmFsaXplclRocmVhZC5ydW4oRmluYWxpemVy LmphdmE6MjA5KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlJl ZmVyZW5jZSBIYW5kbGVyIiAjMiBkYWVtb24gcHJpbz0xMCBvc19wcmlvPTAgdGlkPTB4MDAwMDdm ODU1YzBkNjAwMCBuaWQ9MHgxNzY0YiBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3Zjg1MThlYmIw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9y KQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmxhbmcu T2JqZWN0LndhaXQoT2JqZWN0LmphdmE6NTAyKQoJYXQgamF2YS5sYW5nLnJlZi5SZWZlcmVuY2Uu dHJ5SGFuZGxlUGVuZGluZyhSZWZlcmVuY2UuamF2YToxOTEpCgktIGxvY2tlZCA8MHgwMDAwMDAw MjFkZjhiYTEwPiAoYSBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZSRMb2NrKQoJYXQgamF2YS5sYW5n LnJlZi5SZWZlcmVuY2UkUmVmZXJlbmNlSGFuZGxlci5ydW4oUmVmZXJlbmNlLmphdmE6MTUzKQoK ICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIm1haW4iICMxIHByaW89 NSBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzAwYzgwMCBuaWQ9MHgxNzYzZSB3YWl0aW5nIG9u IGNvbmRpdGlvbiBbMHgwMDAwN2Y4NTYzY2EyMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRl OiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZl IE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDFjOWQ0YjJlOD4gKGEg amF2YS51dGlsLmNvbmN1cnJlbnQuQ291bnREb3duTGF0Y2gkU3luYykKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIx NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25p emVyLmRvQWNxdWlyZVNoYXJlZE5hbm9zKEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6 MTAzNykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hy b25pemVyLnRyeUFjcXVpcmVTaGFyZWROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5q YXZhOjEzMjgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5Db3VudERvd25MYXRjaC5hd2FpdChD b3VudERvd25MYXRjaC5qYXZhOjI3NykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwudXRp bC5jb25jdXJyZW50LlN0b3BwYWJsZUNvdW50RG93bkxhdGNoLmF3YWl0KFN0b3BwYWJsZUNvdW50 RG93bkxhdGNoLmphdmE6NjQpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVy bmFsLlJlcGx5UHJvY2Vzc29yMjEuYmFzaWNXYWl0KFJlcGx5UHJvY2Vzc29yMjEuamF2YTo3MTUp CglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLlJlcGx5UHJvY2Vzc29y MjEud2FpdEZvclJlcGxpZXNVbmludGVycnVwdGlibHkoUmVwbHlQcm9jZXNzb3IyMS5qYXZhOjc5 NSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQuaW50ZXJuYWwuUmVwbHlQcm9jZXNz b3IyMS53YWl0Rm9yUmVwbGllc1VuaW50ZXJydXB0aWJseShSZXBseVByb2Nlc3NvcjIxLmphdmE6 NzcxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5SZXBseVByb2Nl c3NvcjIxLndhaXRGb3JSZXBsaWVzVW5pbnRlcnJ1cHRpYmx5KFJlcGx5UHJvY2Vzc29yMjEuamF2 YTo4NTgpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLmxvY2tzLkRM b2NrUmVxdWVzdFByb2Nlc3Nvci5yZXF1ZXN0TG9jayhETG9ja1JlcXVlc3RQcm9jZXNzb3IuamF2 YToyNDIpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmRpc3RyaWJ1dGVkLmludGVybmFsLmxvY2tzLkRM b2NrU2VydmljZS5sb2NrSW50ZXJydXB0aWJseShETG9ja1NlcnZpY2UuamF2YToxNTM3KQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5pbnRlcm5hbC5sb2Nrcy5ETG9ja1NlcnZpY2Uu bG9jayhETG9ja1NlcnZpY2UuamF2YToxMjYwKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5h bC5jYWNoZS5QYXJ0aXRpb25lZFJlZ2lvbiRCdWNrZXRMb2NrLmJhc2ljTG9jayhQYXJ0aXRpb25l ZFJlZ2lvbi5qYXZhOjY2ODMpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlBh cnRpdGlvbmVkUmVnaW9uJEJ1Y2tldExvY2subG9jayhQYXJ0aXRpb25lZFJlZ2lvbi5qYXZhOjY2 MjYpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlBhcnRpdGlvbmVkUmVnaW9u JFJlZ2lvbkxvY2subG9jayhQYXJ0aXRpb25lZFJlZ2lvbi5qYXZhOjY4ODMpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlBhcnRpdGlvbmVkUmVnaW9uLnJlZ2lzdGVyUGFydGl0 aW9uZWRSZWdpb24oUGFydGl0aW9uZWRSZWdpb24uamF2YToxMzE4KQoJYXQgb3JnLmFwYWNoZS5n ZW9kZS5pbnRlcm5hbC5jYWNoZS5QYXJ0aXRpb25lZFJlZ2lvbi5pbml0UFJJbnRlcm5hbHMoUGFy dGl0aW9uZWRSZWdpb24uamF2YTo5ODcpCgktIGxvY2tlZCA8MHgwMDAwMDAwMjFkZDM1MjU4PiAo YSBvcmcuYXBhY2hlLmdlb2RlLmludGVybmFsLmNhY2hlLlBhcnRpdGlvbmVkUmVnaW9uKQoJYXQg b3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5QYXJ0aXRpb25lZFJlZ2lvbi5pbml0aWFs aXplKFBhcnRpdGlvbmVkUmVnaW9uLmphdmE6MTE1NykKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50 ZXJuYWwuY2FjaGUuR2VtRmlyZUNhY2hlSW1wbC5jcmVhdGVWTVJlZ2lvbihHZW1GaXJlQ2FjaGVJ bXBsLmphdmE6MzEwNCkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUuR2VtRmly ZUNhY2hlSW1wbC5iYXNpY0NyZWF0ZVJlZ2lvbihHZW1GaXJlQ2FjaGVJbXBsLmphdmE6MzAwNCkK CWF0IG9yZy5hcGFjaGUuZ2VvZGUuaW50ZXJuYWwuY2FjaGUueG1sY2FjaGUuUmVnaW9uQ3JlYXRp b24uY3JlYXRlUm9vdChSZWdpb25DcmVhdGlvbi5qYXZhOjI0MykKCWF0IG9yZy5hcGFjaGUuZ2Vv ZGUuaW50ZXJuYWwuY2FjaGUueG1sY2FjaGUuQ2FjaGVDcmVhdGlvbi5pbml0aWFsaXplUmVnaW9u cyhDYWNoZUNyZWF0aW9uLmphdmE6NTU4KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5j YWNoZS54bWxjYWNoZS5DYWNoZUNyZWF0aW9uLmNyZWF0ZShDYWNoZUNyZWF0aW9uLmphdmE6NTEy KQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS54bWxjYWNoZS5DYWNoZVhtbFBh cnNlci5jcmVhdGUoQ2FjaGVYbWxQYXJzZXIuamF2YTozMzgpCglhdCBvcmcuYXBhY2hlLmdlb2Rl LmludGVybmFsLmNhY2hlLkdlbUZpcmVDYWNoZUltcGwubG9hZENhY2hlWG1sKEdlbUZpcmVDYWNo ZUltcGwuamF2YTo0MjkxKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5HZW1G aXJlQ2FjaGVJbXBsLmluaXRpYWxpemVEZWNsYXJhdGl2ZUNhY2hlKEdlbUZpcmVDYWNoZUltcGwu amF2YToxMzkwKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5HZW1GaXJlQ2Fj aGVJbXBsLmluaXRpYWxpemUoR2VtRmlyZUNhY2hlSW1wbC5qYXZhOjExOTUpCglhdCBvcmcuYXBh Y2hlLmdlb2RlLmludGVybmFsLmNhY2hlLkdlbUZpcmVDYWNoZUltcGwuYmFzaWNDcmVhdGUoR2Vt RmlyZUNhY2hlSW1wbC5qYXZhOjc1OCkKCS0gbG9ja2VkIDwweDAwMDAwMDAyMWRlMzljZjA+IChh IGphdmEubGFuZy5DbGFzcyBmb3Igb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5HZW1G aXJlQ2FjaGVJbXBsKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5pbnRlcm5hbC5jYWNoZS5HZW1GaXJl Q2FjaGVJbXBsLmNyZWF0ZShHZW1GaXJlQ2FjaGVJbXBsLmphdmE6NzQ1KQoJYXQgb3JnLmFwYWNo ZS5nZW9kZS5jYWNoZS5DYWNoZUZhY3RvcnkuY3JlYXRlKENhY2hlRmFjdG9yeS5qYXZhOjE3MykK CS0gbG9ja2VkIDwweDAwMDAwMDAyMWRlMzhkNzA+IChhIGphdmEubGFuZy5DbGFzcyBmb3Igb3Jn LmFwYWNoZS5nZW9kZS5jYWNoZS5DYWNoZUZhY3RvcnkpCglhdCBvcmcuYXBhY2hlLmdlb2RlLmNh Y2hlLkNhY2hlRmFjdG9yeS5jcmVhdGUoQ2FjaGVGYWN0b3J5LmphdmE6MjEyKQoJLSBsb2NrZWQg PDB4MDAwMDAwMDIxZGUzOGQ3MD4gKGEgamF2YS5sYW5nLkNsYXNzIGZvciBvcmcuYXBhY2hlLmdl b2RlLmNhY2hlLkNhY2hlRmFjdG9yeSkKCWF0IG9yZy5hcGFjaGUuZ2VvZGUuZGlzdHJpYnV0ZWQu aW50ZXJuYWwuRGVmYXVsdFNlcnZlckxhdW5jaGVyQ2FjaGVQcm92aWRlci5jcmVhdGVDYWNoZShE ZWZhdWx0U2VydmVyTGF1bmNoZXJDYWNoZVByb3ZpZGVyLmphdmE6NTIpCglhdCBvcmcuYXBhY2hl Lmdlb2RlLmRpc3RyaWJ1dGVkLlNlcnZlckxhdW5jaGVyLmNyZWF0ZUNhY2hlKFNlcnZlckxhdW5j aGVyLmphdmE6ODYwKQoJYXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5TZXJ2ZXJMYXVu Y2hlci5zdGFydChTZXJ2ZXJMYXVuY2hlci5qYXZhOjc3MikKCWF0IG9yZy5hcGFjaGUuZ2VvZGUu ZGlzdHJpYnV0ZWQuU2VydmVyTGF1bmNoZXIucnVuKFNlcnZlckxhdW5jaGVyLmphdmE6Njk5KQoJ YXQgb3JnLmFwYWNoZS5nZW9kZS5kaXN0cmlidXRlZC5TZXJ2ZXJMYXVuY2hlci5tYWluKFNlcnZl ckxhdW5jaGVyLmphdmE6MjMxKQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0g Tm9uZQoKIlZNIFRocmVhZCIgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWMwY2U4MDAgbmlkPTB4 MTc2NGEgcnVubmFibGUgCgoiR2FuZyB3b3JrZXIjMCAoUGFyYWxsZWwgR0MgVGhyZWFkcykiIG9z X3ByaW89MCB0aWQ9MHgwMDAwN2Y4NTVjMDFkODAwIG5pZD0weDE3NjNmIHJ1bm5hYmxlIAoKIkdh bmcgd29ya2VyIzEgKFBhcmFsbGVsIEdDIFRocmVhZHMpIiBvc19wcmlvPTAgdGlkPTB4MDAwMDdm ODU1YzAxZjgwMCBuaWQ9MHgxNzY0MCBydW5uYWJsZSAKCiJHYW5nIHdvcmtlciMyIChQYXJhbGxl bCBHQyBUaHJlYWRzKSIgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWMwMjEwMDAgbmlkPTB4MTc2 NDEgcnVubmFibGUgCgoiR2FuZyB3b3JrZXIjMyAoUGFyYWxsZWwgR0MgVGhyZWFkcykiIG9zX3By aW89MCB0aWQ9MHgwMDAwN2Y4NTVjMDIzMDAwIG5pZD0weDE3NjQyIHJ1bm5hYmxlIAoKIkdhbmcg d29ya2VyIzQgKFBhcmFsbGVsIEdDIFRocmVhZHMpIiBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1 YzAyNTAwMCBuaWQ9MHgxNzY0MyBydW5uYWJsZSAKCiJDb25jdXJyZW50IE1hcmstU3dlZXAgR0Mg VGhyZWFkIiBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzA3YjgwMCBuaWQ9MHgxNzY0OSBydW5u YWJsZSAKCiJHYW5nIHdvcmtlciMwIChQYXJhbGxlbCBDTVMgVGhyZWFkcykiIG9zX3ByaW89MCB0 aWQ9MHgwMDAwN2Y4NTVjMDcyMDAwIG5pZD0weDE3NjQ0IHJ1bm5hYmxlIAoKIkdhbmcgd29ya2Vy IzEgKFBhcmFsbGVsIENNUyBUaHJlYWRzKSIgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWMwNzQw MDAgbmlkPTB4MTc2NDUgcnVubmFibGUgCgoiR2FuZyB3b3JrZXIjMiAoUGFyYWxsZWwgQ01TIFRo cmVhZHMpIiBvc19wcmlvPTAgdGlkPTB4MDAwMDdmODU1YzA3NjAwMCBuaWQ9MHgxNzY0NiBydW5u YWJsZSAKCiJHYW5nIHdvcmtlciMzIChQYXJhbGxlbCBDTVMgVGhyZWFkcykiIG9zX3ByaW89MCB0 aWQ9MHgwMDAwN2Y4NTVjMDc3ODAwIG5pZD0weDE3NjQ3IHJ1bm5hYmxlIAoKIkdhbmcgd29ya2Vy IzQgKFBhcmFsbGVsIENNUyBUaHJlYWRzKSIgb3NfcHJpbz0wIHRpZD0weDAwMDA3Zjg1NWMwNzk4 MDAgbmlkPTB4MTc2NDggcnVubmFibGUgCgoiVk0gUGVyaW9kaWMgVGFzayBUaHJlYWQiIG9zX3By aW89MCB0aWQ9MHgwMDAwN2Y4NTVjMTI3ODAwIG5pZD0weDE3NjU0IHdhaXRpbmcgb24gY29uZGl0 aW9uIAoKSk5JIGdsb2JhbCByZWZlcmVuY2VzOiA0ODcKCg== --_002_AM0PR0602MB34913094269F6A08C53FC9F4B5F60AM0PR0602MB3491_--