Return-Path: X-Original-To: apmail-tomcat-users-archive@www.apache.org Delivered-To: apmail-tomcat-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6AD3917E31 for ; Wed, 4 Mar 2015 18:06:00 +0000 (UTC) Received: (qmail 64153 invoked by uid 500); 4 Mar 2015 18:05:55 -0000 Delivered-To: apmail-tomcat-users-archive@tomcat.apache.org Received: (qmail 64090 invoked by uid 500); 4 Mar 2015 18:05:55 -0000 Mailing-List: contact users-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Users List" Delivered-To: mailing list users@tomcat.apache.org Received: (qmail 64079 invoked by uid 99); 4 Mar 2015 18:05:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Mar 2015 18:05:55 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of Jeffrey.Janner@polydyne.com designates 157.56.110.130 as permitted sender) Received: from [157.56.110.130] (HELO na01-bn1-obe.outbound.protection.outlook.com) (157.56.110.130) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Mar 2015 18:05:49 +0000 Received: from BY2PR0101MB0886.prod.exchangelabs.com (25.160.123.16) by BY2PR0101MB0854.prod.exchangelabs.com (25.160.123.15) with Microsoft SMTP Server (TLS) id 15.1.99.14; Wed, 4 Mar 2015 18:05:26 +0000 Received: from BY2PR0101MB0886.prod.exchangelabs.com (25.160.123.16) by BY2PR0101MB0886.prod.exchangelabs.com (25.160.123.16) with Microsoft SMTP Server (TLS) id 15.1.99.14; Wed, 4 Mar 2015 18:05:23 +0000 Received: from BY2PR0101MB0886.prod.exchangelabs.com ([25.160.123.16]) by BY2PR0101MB0886.prod.exchangelabs.com ([25.160.123.16]) with mapi id 15.01.0099.004; Wed, 4 Mar 2015 18:05:23 +0000 From: Jeffrey Janner To: 'Tomcat Users List' Subject: RE: Connection leak Tomcat7 and Oracle Thread-Topic: Connection leak Tomcat7 and Oracle Thread-Index: AQHQUHgjiF+XrgM39UWn8lw2+/OiF50AZrcAgAAB9wCAArjggIAAEPSAgABTvQCAAAfaAIAACyCAgADPLoCAAETQAIAAD2mAgAfroPA= Date: Wed, 4 Mar 2015 18:05:22 +0000 Message-ID: References: <54ECEB00.6050005@gmail.com> <54ECFF70.8030200@christopherschultz.net> <54EF49AB.30201@gmail.com> <54EF9E22.8090304@gmail.com> <54EFA4B8.5040004@christopherschultz.net> <54EFAE0D.3000702@apache.org> <54F09592.60103@gmail.com> <54F0A27F.8030807@christopherschultz.net> In-Reply-To: <54F0A27F.8030807@christopherschultz.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [66.219.55.130] authentication-results: tomcat.apache.org; dkim=none (message not signed) header.d=none; x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0101MB0886;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0101MB0854; x-exchange-antispam-report-cfa: BCL:0;PCL:0;RULEID:;SRVR:BY2PR0101MB0886;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0101MB0886; x-forefront-prvs: 0505147DDB x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(13464003)(377454003)(377424004)(51704005)(479174004)(252514010)(24454002)(102836002)(40100003)(106116001)(122556002)(19580395003)(50986999)(54356999)(16601075003)(86362001)(76176999)(93886004)(107886001)(74316001)(110136001)(33656002)(575784001)(2950100001)(450100001)(62966003)(66066001)(15975445007)(77156002)(551544002)(92566002)(2900100001)(19580405001)(2656002)(87936001)(46102003)(85282002)(19627235001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0101MB0886;H:BY2PR0101MB0886.prod.exchangelabs.com;FPR:;SPF:None;MLV:sfv;LANG:en; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2015 18:05:22.3581 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 52cba2d4-79c2-4870-be85-c014e7fc1a9e X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0101MB0886 X-OriginatorOrg: polydyne.com X-Virus-Checked: Checked by ClamAV on apache.org UmVkIC0NCkNocmlzIGlzIGRlc2NyaWJpbmcgZXhhY3RseSB0aGUgd2F5IEkgY29uZmlndXJlIG15 IHNldmVyYWwgZG96ZW4gaW1wbGVtZW50YXRpb25zLCBhbmQgSSBkbyBub3Qgc2VlIHRoZSBwcm9i bGVtcyB5b3UgYXJlIHNlZWluZy4NCkkgZG8gbm90IHVzZSBnbG9iYWwgcmVzb3VyY2VzIGZvciBl eGFjdGx5IHRoZSByZWFzb24gaGUgcG9pbnRzIG91dCBhcyB3ZWxsLCBJIGRvbid0IHdhbnQgdG8g cmVzdGFydCBhbiBlbnRpcmUgVG9tY2F0IHNlcnZpY2UganVzdCB0byB1cGRhdGUgb25lIGFwcC4N CkFsc28gYmUgc3VyZSB0byBzZXQgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGluIHlvdXIgPEhv c3Q+IHRhZ3M6DQphdXRvRGVwbG95PSJmYWxzZSIgZGVwbG95WE1MID0gImZhbHNlIg0KSXQgaXMg cmVhbGx5IG5vIGhhcmRlciB0byB1cGRhdGUgc2V2ZXJhbCBmaWxlcyB0aGFuIG9uZS4gIEFuZCBp dCBpbnN1cmVzIHRoZSBhcHBsaWNhdGlvbnMgb25seSBoYXZlIGFjY2VzcyB0byB0aGUgY29ubmVj dGlvbiBwb29scyB0aGV5IG5lZWQsIG5vdCBhbGwgb2YgdGhlbS4NCkplZmYNCg0KcC5zLiBUb3Ag cG9zdGluZyB0byBtYWtlIG15IHBvaW50IG1vcmUgbm90aWNlYWJsZSBieSBPUC4NCg0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaHJpc3RvcGhlciBTY2h1bHR6IFttYWls dG86Y2hyaXNAY2hyaXN0b3BoZXJzY2h1bHR6Lm5ldF0NCj4gU2VudDogRnJpZGF5LCBGZWJydWFy eSAyNywgMjAxNSAxMTowMCBBTQ0KPiBUbzogVG9tY2F0IFVzZXJzIExpc3QNCj4gU3ViamVjdDog UmU6IENvbm5lY3Rpb24gbGVhayBUb21jYXQ3IGFuZCBPcmFjbGUNCj4gDQo+IC0tLS0tQkVHSU4g UEdQIFNJR05FRCBNRVNTQUdFLS0tLS0NCj4gSGFzaDogU0hBMjU2DQo+IA0KPiBSZWQsDQo+IA0K PiBPbiAyLzI3LzE1IDExOjA0IEFNLCBSZWQgd3JvdGU6DQo+ID4gT24gMDIvMjcvMjAxNSAwNjo1 OCBBTSwg0JDQvdGC0L7QvSDQnNCw0YbRjtC6IHdyb3RlOg0KPiA+PiAyMDE1LTAyLTI3IDE6MzYg R01UKzAyOjAwIE1hcmsgVGhvbWFzIDxtYXJrdEBhcGFjaGUub3JnPjoNCj4gPj4+IE9uIDI2LzAy LzIwMTUgMjI6NTYsIENocmlzdG9waGVyIFNjaHVsdHogd3JvdGU6DQo+ID4+Pg0KPiA+Pj4+IFRo ZSBzb2x1dGlvbiBpcyB0byBwdXQgeW91ciA8UmVzb3VyY2U+IGludG8geW91cg0KPiA+Pj4+IGFw cGxpY2F0aW9uJ3MNCj4gPj4+IHMvVGhlIHNvbHV0aW9uL1RoZSBiZXN0IHNvbHV0aW9uLw0KPiA+ Pj4NCj4gPj4+PiBjb250ZXh0LnhtbCBhbmQgbm90IGludG8gdGhlIHNpdGUtd2lkZSBkZWZhdWx0 cy4gS29uc3RhbnRpbg0KPiA+Pj4+IG1heSBub3QgaGF2ZSBzcGVsbGVkLW91dCB0aGUgc29sdXRp b24sIGJ1dCBoZSBkaWQgZ2l2ZSB5b3UNCj4gPj4+PiBhbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBu ZWVkZWQgdG8gY29tZSB0byB0aGF0IGNvbmNsdXNpb24gb24NCj4gPj4+PiB5b3VyIG93bi4NCj4g Pj4+IEFub3RoZXIgKG5vdCBzbyBnb29kIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBpcyBubyBs b25nZXINCj4gPj4+IHNlbGYtY29udGFpbmVkKSBvcHRpb24gaXMgdG8gZGVmaW5lIGEgZ2xvYmFs IHJlc291cmNlIGFuZCBwdXQNCj4gPj4+IGEgUmVzb3VyY2VMaW5rIGludG8gdGhlIGdsb2JhbCBj b250ZXh0LnhtbCBvciB0aGUgYXBwbGljYXRpb24ncw0KPiA+Pj4gY29udGV4dC54bWwuDQo+ID4+ DQo+ID4+IEFib3V0ICJub3Qgc28gZ29vZCBiZWNhdXNlIHlvdXIgYXBwbGljYXRpb24gaXMgbm8g bG9uZ2VyDQo+ID4+IHNlbGYtY29udGFpbmVkIiAtIHRoaXMgaXMgbm9ybWFsIGluIGNhc2Ugd2hl biB0b21jYXQgaXMgYW4NCj4gPj4gc3lzYWRtaW4gaGVhZGFjaGUsIGFuZCBhZG1pbiBpcyBiZWFy aW5nIHJlc3BvbnNpYmlsaXR5IGZvciBib3RoDQo+ID4+IHRvbWNhdCBhbmQgcG9vbCBpbiBpdCB3 b3JrcyB3ZWxsLiBBcyBhIHByb2dyYW1tZXIgLSBteSBqb2IgaXMgdG8NCj4gPj4gY29ubmVjdCB0 byBwcm92aWRlZCBkYXRhc291cmNlLCBhbmQgdXNlIGl0IG5vcm1hbGx5LiBTbyBiZXN0DQo+ID4+ IGFwcHJvYWNoIGluIHRoaXMgc2l0dWF0aW9uIHdpbGwgYmUgdXNlIG9mIEdsb2JhbE5hbWluZ1Jl c291cmNlcw0KPiA+PiBodHRwOi8vdG9tY2F0LmFwYWNoZS5vcmcvdG9tY2F0LTcuMC0NCj4gZG9j L2NvbmZpZy9nbG9iYWxyZXNvdXJjZXMuaHRtbCNFbnZpcm9ubWVudF9FbnRyaWVzDQo+ID4+DQo+ ID4+DQo+IHRvIHN0b3JlIHRoZXJlIG15IGpkYmMtcG9vbHMgYW5kIGp1c3QgbWFrZSBSZXNvdXJj ZUxpbmsNCj4gPj4gaHR0cDovL3RvbWNhdC5hcGFjaGUub3JnL3RvbWNhdC03LjAtDQo+IGRvYy9j b25maWcvZ2xvYmFscmVzb3VyY2VzLmh0bWwjUmVzb3VyY2VfTGlua3MNCj4gPj4NCj4gPj4NCj4g aW4gYXBwbGljYXRpb24ncyBNRVRBX0lORi9jb250ZXh0LnhtbCB0byBnZXQgdGhpcyBkYXRhc291 cmNlIGZyb20NCj4gPj4gZ2xvYmFsIGNvbnRleHQuDQo+ID4+DQo+ID4+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+Pg0KPiA+Pg0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUB0 b21jYXQuYXBhY2hlLm9yZw0KPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1 c2Vycy1oZWxwQHRvbWNhdC5hcGFjaGUub3JnDQo+ID4+DQo+ID4gVGhhbmsgWW91IGFsbDsgSSBo YXZlIGNvbWUgdG8gc2FtZSBjb25jbHVzaW9ucywgdGhvdWdoIHRoZXkgdmFzdGx5DQo+ID4gZGlm ZmVyIGZyb20gd2hhdCBJIGhhdmUgZXhwZWN0ZWQuIEkgaGF2ZSBmb3VuZCBzcGFyZSBPcmFjbGUg TGludXgNCj4gPiA2LjUgbWFjaGluZSAsIGRvd25sb2FkZWQgbGF0ZXN0IHRvbWNhdCA4LjAuMjAs IGphdmEgaXMgMS43LjBfNjUuDQo+ID4gQmVoYXZpb3VyIGlzIHRoZSBzYW1lLCB0b21jYXQgb3Bl bnMgNTAgY29uZW5jdGlvbnMgdG8gZGF0YWJhc2UuDQo+ID4gQWZ0ZXIgbW92aW5nIHBvb2wgZGVm aW5pdGlvbiBmcm9tIGNvbmYvY29udGV4dC54bWwgdG8NCj4gPiB3ZWJhcHBzL21hbmFnZXIvTUVU QS1JTkYvY29udGV4dC54bWwsIHRvbWNhdCBvcGVucyAxMCBjb25uZWN0aW9ucy4NCj4gPiBSZWFk aW5nLCB0aGVuLCB0aGlzIGlzIGRlZmF1bHQgdmFsdWUgb2YgcG9vbCBpbml0aWFsIHNpemUgKHRl bnRoIG9mDQo+ID4gbWF4QWN0aXZlLCBkZWZhdWx0IDEwMCkuDQo+IA0KPiBZb3UgaGF2ZSBtYXhB Y3RpdmU9IjEwIi4gVGhlIGRlZmF1bHQgdmFsdWUgb2YgaW5pdGlhbFNpemUgaXMgc3VwcG9zZWQN Cj4gdG8gYmUgIjAiLiBJJ20gc3VycHJpc2VkIGl0J3Mgb3BlbmluZyAxMCBjb25uZWN0aW9ucyBp bW1lZGlhdGVseS4NCj4gDQo+ID4gQWZ0ZXIgZXhwbGljaXRseSBkZWZpbmluZyBpbml0aWFsU2l6 ZT0iMSIsIG9ubHkgc2luZ2xlIGNvbm5lY3Rpb24NCj4gPiBpcyBvcGVuZWQuICBHb29kLiBOb3cg bW92aW5nIHRoYXQgcG9vbCBkZWZpbml0aW9uIGJhY2sgdG8NCj4gPiBjb25mL2NvbnRleHQueG1s LCBJIGdldCBmaXZlIGNvbm5lY3Rpb25zIHRvIGRiLiAgVGhlcmUgaXMgdG90YWwgNQ0KPiA+IGFw cHMgZGVwbG95ZWQgYnkgZGVmYXVsdCAoUk9PVC4gbWFuYWdlciwgaG9zdG1hbmFnZXIsIGRvY3Mg YW5kDQo+ID4gZXhhbXBsZXMpLiAgQmFzaWNhbGx5LCBlYWNoIGFwcCBvcGVucyBldmVyeSBjb25u ZWN0aW9uIHBvb2wgZGVmaW5lZA0KPiA+IGluIGNvbmYvY29udGV4dC54bWwgdG8gdGhlIHR1bmUg b2YgaW5pdGlhbFNpemUuDQo+IA0KPiBDb3JyZWN0LiBUaGlzIGlzIGV4YWN0bHkgd2hhdCB5b3Ug aGF2ZSBhc2tlZCBUb21jYXQgdG8gZG86IGRlZmluZSBhDQo+IGRlZmF1bHQgRGF0YVNvdXJjZSBm b3IgYWxsIHdlYiBhcHBsaWNhdGlvbnMuIE5vdGUgdGhhdCBpdCdzICpub3QgYQ0KPiBzaGFyZWQg ZGF0YSBzb3VyY2UgYmV0d2VlbiBhbGwgdGhlIHdlYiBhcHBsaWNhdGlvbnMqLiBJbnN0ZWFkLCBp dCdzIGENCj4gRGF0YVNvdXJjZSB0aGF0IHdpbGwgYmUgY3JlYXRlZCBmb3IgKmVhY2ggd2ViIGFw cGxpY2F0aW9uIHlvdSBkZXBsb3kqLg0KPiANCj4gU28sIGlmIHRoZSBEYXRhU291cmNlIG9wZW5z IHVwIDEwIGNvbm5lY3Rpb25zIGFuZCB5b3UgaGF2ZSAxMCB3ZWINCj4gYXBwbGljYXRpb25zLCB5 b3UnbGwgZ2V0IDEwMCBjb25uZWN0aW9ucyB0byB0aGUgZGF0YWJhc2UuDQo+IA0KPiAoSSdtIG5v dCBleGFjdGx5IHN1cmUgd2h5IHRoZXkgYXJlIGJlaW5nIG9wZW5lZCBpbW1lZGlhdGVseSwgYnV0 IHlvdQ0KPiBhcmUgaW4gZmFjdCBnZXR0aW5nIDEwIERhdGFTb3VyY2VzLikNCj4gDQo+ID4gQXQg bXkgcGxhY2Ugd2UgaGF2ZSBhYm91dCAyNSBhcHBsaWNhdGlvbnMgaW4gZWFjaCBkZXYgYW5kIHBy b2QsDQo+ID4gd2l0aCBhYm91dCAxMC0xNSBkYXRhYmFzZSBwb29scyBkZWZpbmVkLiAgRXZlbiB3 aXRoIGluaXRpYWxTaXplIHNldA0KPiA+IHRvIDEsIHRoYXQgY29tZXMgdG8gdG90YWwgb3ZlciAz MDAgY29ubmVjdGlvbnMsIHdoaWNoIG1ha2VzDQo+ID4gY29uZi9jb250ZXh0LnhtbCB1c2VsZXNz IGZvciBtZS4gIElmIHNvLCBjb25uZWN0aW9ucyBwb29scyBtdXN0IGJlDQo+ID4gbW92ZWQgdG8g YXBwbGljYXRpb24gY29udGV4dC54bWwuDQo+IA0KPiBZb3Ugc2hvdWxkIGJlIGRvaW5nIHRoaXMg YW55d2F5LiBJdCdzIHZlcnkgcmFyZSBmb3IgYSB3aG9sZSBzZXJ2ZXINCj4gZnVsbCBvZiBhcHBs aWNhdGlvbnMgdG8gbmVlZCB0aGUgc2FtZSBEYXRhU291cmNlIGNvbmZpZ3VyYXRpb24ocykuDQo+ IA0KPiA+IFdlbGwsIHRoaXMgaXMgbWFpbnRlbmFuY2UgbmlnaHRtYXJlIGZvciBtZSwgYXMgcGFz c3dvcmRzIGFyZQ0KPiA+IGNoYW5nZWQgcmVndWxhcmx5LCBhbmQgSSBoYXZlIHRvIGVkaXQgZXZl cnkgc2luZ2xlIGFwcCBjb250ZXh0LnhtbA0KPiA+IGZpbGUuDQo+IA0KPiBMZWFybiB0byBzY3Jp cHQgdGhpbmdzLg0KPiANCj4gPiBPbiB0b3Agb2YgaXQsIHdlIGRlcGxveSAud2FyIGZpbGVzLCBh bmQgY29udGV4dC54bWwgYXJlIHBhcnQgb2YNCj4gPiBpdC4NCj4gDQo+IElmIHlvdSB1c2UgYSBz ZXBhcmF0ZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IgaW4NCj4gY29uZi9bZW5naW5lXS9baG9zdG5h bWVdL1thcHBuYW1lXS54bWwsIHRoZW4gdGhlIGRlcGxveW1lbnQgZGVzY3JpcHRvcg0KPiBpbiB0 aGUgV0FSIGZpbGUgd2lsbCBiZSBpZ25vcmVkLg0KPiANCj4gPiBJbiBkZXYsIEkgZG8gbm90IGNh cmUsIGJ1dCBmb3IgcHJvZHVjdGlvbiwgLndhciBoYXMgdG8gYmUgcGFja2VkDQo+ID4gd2l0aCBj b250ZXh0LnhtbCBpbiBpdCAod2l0aCBjb25uIGluZm8pLg0KPiANCj4gRG9lcyBpdD8NCj4gDQo+ ID4gQXMgYSBkYmEsIEkgcmVmdXNlIHRvIGdpdmUgcHJvZCBwYXNzd29yZHMgdG8gZGV2ZWxvcGVy cw0KPiANCj4gVGhlbiBkb24ndC4NCj4gDQo+ID4gU28gSSB3aWxsIGhhdmUgdG8gcGFja2FnZS9y ZXBhY2thZ2Ugbm90IG9ubHkgb24gaW5pdGlhbA0KPiA+IGRlcGxveW1lbnQsIGJ1dCBvbiBldmVy eSBhcHAgdXBkYXRlLg0KPiANCj4gVW50cnVlLiBTZWUgYWJvdmUuDQo+IA0KPiA+IFBsZWFzZSB0 ZWxsIG1lIHRoYXQgSSBhbSB3cm9uZw0KPiANCj4gWW91IGFyZSB3cm9uZy4NCj4gDQo+ID4gYmVj YXVzZSBhcyBpdCBsb29rIG5vdyB3aG9sZSBwdXJwb3NlIG9mIGNvbm5lY3Rpb24gcG9vbGluZyBp cw0KPiA+IGRlZmVhdGVkLCBhbmQgdGhhdCBjYW4gbm90IGJlLiAgIEhvc3RtYW5hZ2VyIChmb3Ig ZXhhbXBsZSkgZG9lcyBub3QNCj4gPiBoYXZlIGFueSBvcmFjbGUgY29ubmVjdGlvbiBkZWZpbmVk IHdpdGhpbiBpdHNlbGYsIHNvIHdoeSBpdCBzaG91bGQNCj4gPiBldmVuIGtub3cgdGhvc2UgZXhp c3QsIG5vdCB0byBtZW50aW9uIHRvIGFjdHVhbGx5IG9wZW4gdGhlbS4NCj4gDQo+IEFncmVlZC4g U3RvcCBkZWZpbmluZyBEYXRhU291cmNlcyBpbiBjb25mL2NvbnRleHQueG1sLg0KPiANCj4gV2hl biB5b3UgZGVwbG95IGFuIGFwcGxpY2F0aW9uLCB5b3VyIGFwcGxpY2F0aW9uJ3MNCj4gTUVUQS1J TkYvY29udGV4dC54bWwgYW5kIGNvbmYvY29udGV4dC54bWwgYXJlIG1lcmdlZCBhbmQgdHJlYXRl ZCBhcw0KPiAiL3RoZS8gY29uZmlndXJhdGlvbiIgZm9yIHRoZSBhcHBsaWNhdGlvbi4gU28gc3Rv cCBkZWZpbmluZyBkZWZhdWx0DQo+IGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gaWYgeW91IGRv bid0IHdhbnQgaXQgdG8gYmUgdGhlIGRlZmF1bHQNCj4gYXBwbGljYXRpb24gY29uZmlndXJhdGlv bi4NCj4gDQo+ID4gSSB3aWxsIGRvIHJlYWRpbmcgb24gdGhpcywgc3VnZ2VzdGVkIGFib3ZlIGZp cnN0LCBidXQgbXkgb2JqZWN0aXZlDQo+ID4gaXMgY2xlYXIuICBTaW5nbGUgZmlsZSB3aXRoIGFs bCBwb29scywgYXBwcyBhc2sgZm9yIGFuZCB1c2Uvb3Blbg0KPiA+IG9ubHkgcG9vbHMgbmVlZGVk LiAgSSBiZWxpZXZlIHRoYXQgaXMgaG93IGl0IHdhcyBpbiB0b21jYXQ2Lg0KPiANCj4gSWYgeW91 IHdhbnQgYSBzaW5nbGUgZmlsZSB3aXRoIGFsbCBwb29scywgeW91J2xsIG5lZWQgdG8gY29uZmln dXJlIGENCj4gZ2xvYmFsIHJlc291cmNlIGluIHNlcnZlci54bWwgYW5kIHRoZW4gbWFwIHRoZW0g aW50byBlYWNoIHdlYg0KPiBhcHBsaWNhdGlvbiB1c2luZyA8UmVzb3VyY2VMaW5rPihzKS4gTm90 ZSB0aGF0IGNoYW5naW5nIHRoZSBEYXRhU291cmNlDQo+IGNvbmZpZ3VyYXRpb24gd2lsbCByZXF1 aXJlIHlvdSB0byByZXN0YXJ0IHRoZSAqd2hvbGUgY29udGFpbmVyKg0KPiBpbnN0ZWFkIG9mIGp1 c3QgdGhlIGFwcGxpY2F0aW9uIGlmIHlvdSB3YW50IHRvIGNoYW5nZSBpdC4NCj4gDQo+ID4gSWYg YW55b25lIGtub3dzIGhvdyB0byBhY2hpZXZlIHRoaXMgcGxlYXNlIGxldCBtZSBrbm93IChJIGRp ZCBub3QNCj4gPiBoYXZlIGNoYW5jZSB5ZXQgdG8gZ28gdGhvdWdoIGxpbmtzIHByb3ZpZGVkIHNp bmNlIHllc3RlcmRheSwgc28gbXkNCj4gPiBhbnN3ZXIgbWlnaHQgYmUgdGhlcmUpLg0KPiANCj4g LSAtY2hyaXMNCj4gLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCj4gVmVyc2lvbjogR251 UEcgdjENCj4gQ29tbWVudDogR1BHVG9vbHMgLSBodHRwOi8vZ3BndG9vbHMub3JnDQo+IA0KPiBp UUljQkFFQkNBQUdCUUpVOEtKL0FBb0pFQnp3S1QrbFBLUll5c1lRQUk2N1Y1cU9IazdhaUY1NzBi VS9xRy9jDQo+IHVVNUlpeXVBak1mRlJJd3RFelg3L2dmZStiNUc5eVVaWFo1STU0eDJZVUM0Y2dM RlJYOHdMLzZkWmJQaW1zRVINCj4gVUFpZXF6K1NySGNyeE5EV2F3ZVdsYm02WTBUeFcxTlo3K0Vq NEd1amNoeEdtcURKcEtCdmVoUGNRMk9UdzE5Qw0KPiBnK1kvN09MLzdpQVA1V0pDVDRsWS9JRVdS Z2JMelREd2lJRUFHRkRuemZZbzIyWWYyS3MzN2xUY1NtU0hhbE1WDQo+IG0yd1pYMGFDYmcrOC9Z cTlQanFHL2F3YWkyNExpcnFwQjJZTjNrdVJoRHlBMXlZaFFuUXdHdmRURUt3MlBjK0INCj4gM3h5 NG1nSDM5QnFwekNtVWhmMm54bjhjeGE0c1F1SmtMcWpDZXhGOExjVDBLRnJqazhJd245bTU2ZEhP SEx6aA0KPiBEak5GdVEyeVgwSGR2Z0ZwRnlsSkc5RFdEYVdFYmtLekQxVzRFUU5FU21mRVdpVlV3 QmQ0bkJXLzhRWGZtc3pSDQo+IFNoRTdzTHVja2loTUszMDhzS004RzhueTN6QURnZ25wMUFpKzJh cXRxajZIbllITCsvUWFteGl0aElOdGprV0QNCj4gUlQyeGZ6cDdyVzluKy96eFY5TjRQWElSNUNP bnJxS2F5K2FaRUwyeHJubitVNnM0VWF0M2toK3o0YXhSZDR6cw0KPiBGZm9lTTUvR3ZHd0RmU1Rk dWlFMzVFdHk4SjNwV29vbndGK2hKZU53QnlzcFZmcVAyY0pUOFRVNHB1cldrbXdIDQo+IG41RHJj eFgwa3hSVE9TN3F2dFZsWVVRb3E3RWJGbjZaemdzMkhTcE03L1RjT2FkNUFDeWowWGdLckRZSG9I UHQNCj4gbEdVaTNBd1N6TkJtdkkyM01lRjgNCj4gPXdCMVENCj4gLS0tLS1FTkQgUEdQIFNJR05B VFVSRS0tLS0tDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDog dXNlcnMtdW5zdWJzY3JpYmVAdG9tY2F0LmFwYWNoZS5vcmcNCj4gRm9yIGFkZGl0aW9uYWwgY29t bWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEB0b21jYXQuYXBhY2hlLm9yZw0KDQo= DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vi c2NyaWJlQHRvbWNhdC5hcGFjaGUub3JnDQpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1t YWlsOiB1c2Vycy1oZWxwQHRvbWNhdC5hcGFjaGUub3JnDQoN