Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 054BC200CF3 for ; Wed, 13 Sep 2017 19:55:33 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 040AC1609CB; Wed, 13 Sep 2017 17:55:33 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id C9D8B1609CA for ; Wed, 13 Sep 2017 19:55:31 +0200 (CEST) Received: (qmail 5426 invoked by uid 500); 13 Sep 2017 17:55:29 -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 5415 invoked by uid 99); 13 Sep 2017 17:55:29 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Sep 2017 17:55:29 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 0B8621A0629 for ; Wed, 13 Sep 2017 17:55:29 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.679 X-Spam-Level: X-Spam-Status: No, score=0.679 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=live.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id ViWXD8-mX4hQ for ; Wed, 13 Sep 2017 17:55:26 +0000 (UTC) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-oln040092065043.outbound.protection.outlook.com [40.92.65.43]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id CF78760D28 for ; Wed, 13 Sep 2017 17:55:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=oPmo/TVzosKKuh0TcLniA2KYGw03gVu7qC7XlbAn3k4=; b=OY0lwj1zGg1NJWKWD2aIbTSJ4QOfYOTzM4zdB0mcYpoaSBYvK305+CIHZLAECiDmjoyQVKpKO6a0D2U1QImS/mHRAN5h3zRwPCAaurb5IfKo1Whf3PUWhfB+sEvE3raUKGf3SxjpkkVVfYsrJMREF1WS9hrHd3QLJrbm9hJN9HvCB7hKuqa1VuEIqkijgMMf4UQKmjYWXhBpVSBQVX2BT52GnzXjVTdhEknISmQmMIFTxAuBe5eCyPzI3j9fLKFiccwBphRKdlmuWaAd/ZcNvn9vCJGR5LeOmlIcsHdLIDOAXR6cySUPX3dV0SIvPrGdQZzSmkU4gnnosHO8Z+ZP2w== Received: from HE1EUR01FT020.eop-EUR01.prod.protection.outlook.com (10.152.0.60) by HE1EUR01HT146.eop-EUR01.prod.protection.outlook.com (10.152.0.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.13.11; Wed, 13 Sep 2017 17:55:18 +0000 Received: from DB5PR08MB1062.eurprd08.prod.outlook.com (10.152.0.56) by HE1EUR01FT020.mail.protection.outlook.com (10.152.0.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.13.11 via Frontend Transport; Wed, 13 Sep 2017 17:55:18 +0000 Received: from DB5PR08MB1062.eurprd08.prod.outlook.com ([fe80::4592:bbad:dce6:33a3]) by DB5PR08MB1062.eurprd08.prod.outlook.com ([fe80::4592:bbad:dce6:33a3%13]) with mapi id 15.20.0035.021; Wed, 13 Sep 2017 17:55:18 +0000 From: Yasser Zamani To: "users@tomcat.apache.org" Subject: Re: Tomcat misuse of Servlet 3.0's asynchronous support Thread-Topic: Tomcat misuse of Servlet 3.0's asynchronous support Thread-Index: AQHTJIrUl2zslnCFw02ro+zn8E2A+KKl59aAgADAXoCADHe3gIAACeSA Date: Wed, 13 Sep 2017 17:55:18 +0000 Message-ID: References: <69f4af6f-65b0-be18-64a5-c45a91b79dda@apache.org> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: tomcat.apache.org; dkim=none (message not signed) header.d=none;tomcat.apache.org; dmarc=none action=none header.from=live.com; x-incomingtopheadermarker: OriginalChecksum:48959AC2A5A1DC13B1866ECA56C8CAEACD4DC7226C04C3D43ECD1E6024E48241;UpperCasedChecksum:7F6342B32545F1DEDE6247EA0B9D4B3FD2849541CAB515F50A837892DC080634;SizeAsReceived:7286;Count:46 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [MZIqrFB8PctqcgLPUBF+c8axryLBbrlY] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;HE1EUR01HT146;6:jaGvHGKnd9ZsauKE00MlgA16/ahywhadnspAM8Dpe3FCUgoPv01k5cXZ1Lhw8HrBTvvO3ixYh1tTn5OqgNnxYF+VkvANTWJwk13rbQFiNaTdkdLs6vOf1BDlGtm5/v+WdUYnz3F1l1r6+uAtfi4djs/6DBwvv/03xa13zgwQH6wBL8ThM1mU/2bRR8h20pwwNpjenD8x6dK2CwWKauJ4c1tMb7uQAsZjSOwGDS5O+DeakgZQSQUV6XBzmH0W7XlvyNDWZ1s/ACJjyUng2bqTGQx/7aEjAx4iL3dABJzwvcSuZRi9NKMMbEoO7vEHRZEjOU2gv+NkQULqj5SSfPrXzQ==;5:xsayhVF2xVMzfSDou6cyNKADhZpO3uxmDG0p1r2NjBKJubp+ByfnZNlhWqlRaIQJPYw86gWYMpSf5IYoN/ruhi1atrB0HVujGmaKLAU0J6GJItbFYhWBHG7Apm8Sl3ZV7ZJG5wpsC7H0t70n/jiJZg==;24:16mHFJ7ezzXyttb/PZmppyo5A5dlsd6XYcnj9AD33gZcHEBhrg5P9scDJwyMDEhhcaWSmykLe1OhnjntAYmPRN18YJ3xBGZPv6dTltE8DZ4=;7:BJ59D+iOiAEFL7yLtro7ZyvDBm5OLqHwEmtQ8L5bWTURp9ErfjiXmXw6a6dPn1xwS1iPDDmK++CuTdxS8o/hDeOTvdi5au87tdR1t0rZ2Q2xnrd607t/UdYCVKeqQPsZISqfKCjx00izajzAmozVVxR/advxvA8pxBDaJDgNjpm2FQEyCgT9siw/Dsr+aBmLZuYiMpmzrCX98m5du7acUWXiVfsOF/JpL8R3eWncEoI= x-incomingheadercount: 46 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: e3b31c33-b4ae-4137-1cad-08d4fad097f7 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:HE1EUR01HT146; x-ms-traffictypediagnostic: HE1EUR01HT146: x-exchange-antispam-report-test: UriScan:(158342451672863)(278428928389397)(166708455590820)(146099531331640)(37804248451712); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(444000031);SRVR:HE1EUR01HT146;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1EUR01HT146; x-forefront-prvs: 042957ACD7 x-forefront-antispam-report: SFV:NSPM;SFS:(7070007)(98901004);DIR:OUT;SFP:1901;SCL:1;SRVR:HE1EUR01HT146;H:DB5PR08MB1062.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <5C92919DF339B34FAEBB4D26E1019B05@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2017 17:55:18.2653 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR01HT146 archived-at: Wed, 13 Sep 2017 17:55:33 -0000 DQoNCk9uIDkvMTMvMjAxNyA5OjQ5IFBNLCBNYXJrIFRob21hcyB3cm90ZToNCj4gT24gMDUvMDkv MjAxNyAxOTo1NiwgWWFzc2VyIFphbWFuaSB3cm90ZToNCj4+IFRoYW5rcyBhIGxvdCBNYXJrIQ0K Pj4NCj4+IFllcyBJIGtuZXcgdGhlc2UgYW5kIGJlZm9yZSB0ZXN0ZWQgdGhhdCBhIHRvbWNhdCB3 aXRoIDQwMCBtYXggdGhyZWFkcw0KPj4gInNjYWxhYmlsaXRhbHkgaXMgZXF1YWwiIHRvIGEgdG9t Y2F0IHdpdGggMjAwIG1heCB0aHJlYWRzIGJ1dCB3aXRoDQo+PiBzZXJ2bGV0IDMncyBhc3luYyBB UEkgaW5jbHVkaW5nIGFwcGxpY2F0aW9uJ3MgdGhyZWFkIHBvb2wgd2l0aCBzaXplIDIwMC4NCj4+ DQo+PiBIb3dldmVyIHNvIGZhciBJIHRob3VnaHQgT3JhY2xlJ3MgZG9jcyBhcmUgbGlrZSBzdGFu ZGFyZHMgYW5kIHRvbWNhdA0KPj4gaGF2ZSB0byBzYXRpc2Z5IHRoZW0gOikNCj4gDQo+IFRvbWNh dCBpbXBsZW1lbnRzIHRoZSBTZXJ2bGV0LCBKU1AsIFVFTCwgRUwgYW5kIEpBU1BJQyBzcGVjaWZp Y2F0aW9ucy4NCj4gDQo+IFRoZSBkb2N1bWVudCB5b3UgcmVmZXIgdG8gaXMgbm90IHBhcnQgb2Yg dGhvc2Ugc3BlY3MgYW5kLCBhcyBJIHNhaWQsIGl0DQo+IGlzIG1pc2xlYWRpbmcgYXQgYmVzdC4N Cj4gDQo+Pj4gVGhhdCBkb2VzIGluY3JlYXNlIHNjYWxhYmlsaXR5DQo+Pj4gYmVjYXVzZSByYXRo ZXIgdGhhbiBoYXZpbmcgYSBidW5jaCBvZiB0aHJlYWRzIHdhaXRpbmcgZm9yIHRoZXNlDQo+Pj4g bm9uLWJsb2NraW5nIG9wZXJhdGlvbnMgdG8gY29tcGxldGUsIHRob3NlIHRocmVhZHMgY2FuIGRv IHVzZWZ1bCB3b3JrLg0KPj4NCj4+IEJ1dCB0b21jYXQgYmxvY2tzIGFub3RoZXIgdGhyZWFkIGZy b20gY29udGFpbmVyJ3MgdGhyZWFkIHBvb2wgZm9yDQo+PiB3YWl0aW5nIG9yIGxvY2tpbmcgb24g dGhhdCBub24tYmxvY2tpbmcgb3BlcmF0aW9uJ3MgcmVzcG9uc2UhDQo+IA0KPiBBcyBJIHNhaWQs IGlmIHRoZSBhc3luYyBBUEkgaXMgdXNlZCB0byBtb3ZlIGEgYmxvY2tpbmcgb3BlcmF0aW9uIGZy b20NCj4gb25lIHRocmVhZCB0byBhbm90aGVyLCB0aGF0IHdvbid0IGltcHJvdmUgc2NhbGFiaWxp dHkuDQo+IA0KPiBZb3UgYXJlIG9ubHkgZ29pbmcgdG8gaW1wcm92ZSBzY2FsYWJpbGl0eSBpZiB5 b3UgbW92ZSBub24tYmxvY2tpbmcNCj4gb3BlcmF0aW9ucyBmcm9tIHRoZSBTZXJ2bGV0LnNlcnZp Y2UoKSBtZXRob2QgKHdoaWNoIGhhcyB0byBibG9jayB3YWl0aW5nDQo+IGZvciB0aGUgbm9uLWJs b2NraW5nIG9wZXJhdGlvbiB0byBjb21wbGV0ZSkgdG8gdGhlIGFzeW5jIEFQSS4NCj4gRXNzZW50 aWFsbHksIGlmIHlvdSBsZWF2ZSBpdCBpbiB0aGUgc2VydmljZSgpIG1ldGhvZCB5b3UgaGF2ZSBv bmUgdGhyZWFkDQo+IGFsbG9jYXRlZCB0byBlYWNoIG5vbi1ibG9ja2luZyBvcGVyYXRpb24uDQo+ IA0KPiBJZiB0aGUgU2VydmxldCBhc3luYyBBUEkgaXMgdXNlZCwgdGhlIG5vbi1ibG9ja2luZyBv cGVyYXRpb24gaXMgc3RhcnRlZA0KPiBhbmQgdGhlIGNvbnRhaW5lciB0aHJlYWQgY29udGludWVz IHRvIGNvbXBsZXRlIHRoZSBzZXJ2aWNlIG1ldGhvZC4gVGhlDQo+IGNvbnRhaW5lciB0aHJlYWQg aXMgbm93IGZyZWUgdG8gZG8gb3RoZXIgdXNlZnVsIHdvcmsgYW5kIHRoZQ0KPiBub24tYmxvY2tp bmcgb3BlcmF0aW9uIGlzbid0IHVzaW5nIGFueSB0aHJlYWQgYXQgYWxsIC0gYW5kIHdvbid0IHVu dGlsDQo+IHRoZSBvcGVyYXRpb24gY29tcGxldGVzIGF0IHdoaWNoIHBvaW50IGl0IHdpbGwgcmVx dWlyZSBhIHRocmVhZCB0bw0KPiBwZXJmb3JtIHRoZSBkaXNwYXRjaCBiYWNrIHRvIHRoZSBjb250 YWluZXIgYW5kIHRoZW4gdG8gcHJvY2VzcyB0aGF0DQo+IGRpc3BhdGNoLg0KPiANCg0KOlMgSSBh cG9sb2dpemUgYXMgSSBrbm93IHRoYXQgSSBmYWlscyB0byB1bmRlcnN0YW5kIHNvbWUgcG9pbnRz IGFnYWluLg0KUGxlYXNlIGV4Y3VzZSBtZSBib3RoZXJpbmcgeW91Lg0KDQpUaGUgbm9uLWJsb2Nr aW5nIG9wZXJhdGlvbiBpc24ndCB1c2luZyBhbnkgdGhyZWFkIGF0IGFsbCA/ISBTbyB3aGljaCAN CnRocmVhZCBleGVjdXRlcyBteSBSdW5uYWJsZSBwYXNzZWQgdG8gc3RhcnRBc3luYz8gQXQgbXkg Zmlyc3QgaW5pdGlhbCANCm1haWwsIEkgc2VlIFRvbWNhdCBwYXNzZXMgdGhhdCB0byBpdCdzIHRo cmVhZCBwb29sLiBJZiBJIGRlZmluZSBteSANCm5vbi1ibG9ja2luZyBvcGVyYXRpb24gKHRoYXQg UnVubmFibGUpIGFzIA0KU3lzdGVtLm91dC5wcmludGxuKFRocmVhZC5nZXRDdXJyZW50VGhyZWFk LmdldE5hbWUoKSksIEknbGwgc2VlIA0KImh0dHAtbmlvLWV4ZWMtWFggd2hpY2ggbWVhbnMgVG9t Y2F0J3MgdGhyZWFkIHBvb2wgaGFzIGJlZW4gYWxsb2NhdGVkIGEgDQp0aHJlYWQgZm9yIG15IFJ1 bm5hYmxlIG5vbi1ibG9ja2luZyBvcGVyYXRpb24uIEhvd2V2ZXIsIG1heWJlIHlvdSBtZWFuIGEg DQpyZWFsIElPIHdhaXQgYXMgbm9uLWJsb2NraW5nIG9wZXJhdGlvbi4NCg0KTGV0IGZvcmdldCBz Y2FsYWJsaXR5LiBDb3VsZCB5b3UgcGxlYXNlIGRlZmluZSBhbiBleGFtcGxlIGJ1c2luZXNzIA0K b3BlcmF0aW9uYWwgYW5kIGZ1bmN0aW9uYWwgc2NlbmFyaW8gd2hpY2ggdXNpbmcgU2VydmxldCdz IGFzeW5jIEFQSSANCmltcHJvdmVzIG9yIHJlc29sdmUgaXQgaW4gc3VjaCB3YXkgdGhhdCBjb3Vs ZCBub3QgYmVpbmcgaW1wcm92ZWQgb3IgDQpyZXNvbHZlZCB3aXRoIE5JTyBhbmQgaW5jcmVhc2lu ZyBtYXhUaHJlYWRzIGFuZCBtYXhDb25uZWN0aW9ucz8NCg0KPiBJbiB0aGlzIGNhc2UgYSBjb250 YWluZXIgdGhyZWFkIGlzIG9ubHkgcmVxdWlyZWQgdXAgdG8gdGhlIHBvaW50IHdoZXJlDQo+IHRo ZXJlIG5vbi1ibG9ja2luZyBvcGVyYXRpb24gc3RhcnRzIGFuZCBmb3JtIHRoZSBwb2ludCB3aGVy ZSBpdA0KPiBjb21wbGV0ZXMuIFdoaWxlIHRoZSBub24tYmxvY2tpbmcgb3BlcmF0aW9uIGlzIGlu IHByb2dyZXNzLCB0aGUNCj4gY29udGFpbmVyIHRocmVhZCBpcyBmcmVlIHRvIGRvIG90aGVyIHVz ZWZ1bCB3b3JrLg0KPiANCj4gTWFyaw0KPiANCj4gDQo+PiBzbyBJIGRvDQo+PiBub3QgYWdyZWUg dGhhdCAiYmVjYXVzZSB0aG9zZSB0aHJlYWRzIGNhbiBkbyB1c2VmdWwgd29yayIgdGhlbiAiZG9l cw0KPj4gaW5jcmVhc2Ugc2NhbGFiaWxpdHkiLiBJIHRoaW5rIFNlcnZsZXQgMydzIGFzeW5jIEFQ SSBoZXJlIG1heSBpbmNyZWFzZQ0KPj4gc2NhbGFiaWxpdHkgaWYgYW5kIG9ubHkgaWYgdGhlIHJl bGVhc2VkIHRocmVhZCBhbHNvIHJlbGVhc2VzIHNvbWUNCj4+IHJlc291cmNlcyB3aGljaCBvdGhl ciB0aHJlYWRzIG1heSBhcmUgYmxvY2tlZCBvbiB0aGVtLiBhbmQgaWYgYW5kIG9ubHkNCj4+IGlm IHRoZSBuZXcgdGhyZWFkIGRvZXMgbm90IGxvY2sgbW9yZSByZXNvdXJjZXMgdGhhbiB0aGUgb3Jp Z2luYWwgb25lLg0KPj4gKipBY3R1YWxseSBhcyBJIHVuZGVyc3RhbmQsIHVzaW5nIFNlcnZsZXQg MydzIGFzeW5jIEFQSSBjb21wYXJlZCB3aXRoDQo+PiB0b21jYXQncyBuaW8gd2l0aCBncmVhdGVy IG1heCB0aHJlYWRzLCBkb2VzIG5vdCBoYXZlIGFueSBnYWluIGV4Y2VwdA0KPj4gd2hhdCBJIHdy b3RlIGFib3ZlIGFuZCBhbHNvIHByZXZlbnRpbmcgZGVhZGxvY2tzLiB3ZHl0PyoqDQo+Pg0KPj4g T24gOS81LzIwMTcgMTE6NTcgQU0sIE1hcmsgVGhvbWFzIHdyb3RlOg0KPj4+IE9uIDAzLzA5LzE3 IDA5OjAxLCBZYXNzZXIgWmFtYW5pIHdyb3RlOg0KPj4+PiBIaSB0aGVyZSwNCj4+Pj4NCj4+Pj4g QXQgWzFdIHdlIHJlYWQ6DQo+Pj4+DQo+Pj4+PiAgICAgIFdlYiBjb250YWluZXJzIGluIGFwcGxp Y2F0aW9uIHNlcnZlcnMgbm9ybWFsbHkgdXNlIGEgc2VydmVyIHRocmVhZA0KPj4+Pj4gICAgICBw ZXIgY2xpZW50IHJlcXVlc3QuIFVuZGVyIGhlYXZ5IGxvYWQgY29uZGl0aW9ucywgY29udGFpbmVy cyBuZWVkIGENCj4+Pj4+ICAgICAgbGFyZ2UgYW1vdW50IG9mIHRocmVhZHMgdG8gc2VydmUgYWxs IHRoZSBjbGllbnQgcmVxdWVzdHMuDQo+Pj4+PiAgICAgIFNjYWxhYmlsaXR5IGxpbWl0YXRpb25z IGluY2x1ZGUgcnVubmluZyBvdXQgb2YgbWVtb3J5IG9yDQo+Pj4+PiAgICAgICpleGhhdXN0aW5n IHRoZSBwb29sIG9mIGNvbnRhaW5lciB0aHJlYWRzKi4gVG8gY3JlYXRlIHNjYWxhYmxlIHdlYg0K Pj4+Pj4gICAgICBhcHBsaWNhdGlvbnMsIHlvdSBtdXN0IGVuc3VyZSB0aGF0IG5vIHRocmVhZHMg YXNzb2NpYXRlZCB3aXRoIGENCj4+Pj4+ICAgICAgcmVxdWVzdCBhcmUgc2l0dGluZyBpZGxlLCBz byAqdGhlIGNvbnRhaW5lciBjYW4gdXNlIHRoZW0gdG8NCj4+Pj4+ICAgICAgcHJvY2VzcyBuZXcg cmVxdWVzdHMqLiBBc3luY2hyb25vdXMgcHJvY2Vzc2luZyByZWZlcnMgdG8NCj4+Pj4+ICAgICAg KmFzc2lnbmluZyB0aGVzZSBibG9ja2luZyBvcGVyYXRpb25zIHRvIGEgbmV3IHRocmVhZCBhbmQg cmV0dXJuaW5nDQo+Pj4+PiAgICAgIHRoZSB0aHJlYWQgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXF1 ZXN0IGltbWVkaWF0ZWx5IHRvIHRoZSBjb250YWluZXIqLg0KPj4+Pj4NCj4+Pj4gSSBjb3VsZCBu b3QgYWNoaWV2ZSB0aGlzIHNjYWxhYmlsaXR5IGluIHRvbWNhdCB2aWEgY2FsbGluZw0KPj4+PiBg amF2YXguc2VydmxldC5Bc3luY0NvbnRleHQuc3RhcnQoUnVubmFibGUpYCEgSSBpbnZlc3RpZ2F0 ZWQgdGhlIGNhdXNlDQo+Pj4+IGFuZCBmb3VuZCBpdCBhdCBbMl06DQo+Pj4+DQo+Pj4+ICAgICAg ICAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgYXN5bmNSdW4oUnVubmFibGUgcnVubmFibGUp IHsNCj4+Pj4gICAgICAuLi4NCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5l eGVjdXRlKHJ1bm5hYmxlKTsNCj4+Pj4NCj4+Pj4gSSBtZWFuIGBwcm9jZXNzb3IuZXhlY3V0ZShy dW5uYWJsZSlgIHVzZXMgc2FtZSB0aHJlYWQgcG9vbCB3aGljaCBpdCdzDQo+Pj4+IGFsc28gaXQn cyBkdXR5IHRvIHByb2Nlc3MgbmV3IHJlcXVlc3RzISBTdWNoIHVzYWdlIG1hZGUgdGhpbmdzIHdv cnNlIQ0KPj4+PiBpLmUuIG5vdCBvbmx5IGRvZXMgbm90IG1ha2UgdGhyZWFkIHBvb2wgbW9yZSBm cmVlIHRvIHByb2Nlc3MgbmV3DQo+Pj4+IHJlcXVlc3RzLCBidXQgYWxzbyBoYXMgYW4gb3Zlcmhl YWQgdmlhIHRocmVhZCBzd2l0Y2hpbmchDQo+Pj4+DQo+Pj4+IEkgdGhpbmsgVG9tY2F0IG11c3Qg dXNlIGFub3RoZXIgdGhyZWFkIHBvb2wgZm9yIHN1Y2ggYmxvY2tpbmcgb3BlcmF0aW9ucw0KPj4+ PiBhbmQga2VlcCBjdXJyZW50IHRocmVhZCBwb29sIGZyZWUgZm9yIG5ldyByZXF1ZXN0czsgSXQn cyB0aGUgcGhpbG9zb3BoeQ0KPj4+PiBvZiBTZXJ2bGV0IDMuMCdzIGFzeW5jaHJvbm91cyBzdXBw b3J0IGFjY29yZGluZyB0byBPcmFjbGUncw0KPj4+PiBkb2N1bWVudGF0aW9uLiB3ZHl0Pw0KPj4+ DQo+Pj4gSSB0aGluayB0aGlzIGlzIGEgZ29vZCBxdWVzdGlvbiB0aGF0IGhpZ2hsaWdodHMgYSBs b3Qgb2YNCj4+PiBtaXN1bmRlcnN0YW5kaW5nIGluIHRoaXMgYXJlYS4gVGhlIHF1b3RlIGFib3Zl IGlzIG1pc2xlYWRpbmcgYXQgYmVzdC4NCj4+Pg0KPj4+IFRoZXJlIGlzIG5vIHdheSB0aGF0IG1v dmluZyBhIGJsb2NraW5nIG9wZXJhdGlvbiBmcm9tIHRoZSBjb250YWluZXINCj4+PiB0aHJlYWQg cG9vbCB0byBzb21lIG90aGVyIHRocmVhZCB3aWxsIGluY3JlYXNlIHNjYWxhYmlsaXR5IGFueSBt b3JlIHRoZW4NCj4+PiBzaW1wbHkgaW5jcmVhc2luZyB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVy IHRocmVhZCBwb29sLg0KPj4+DQo+Pj4gQ29uc2lkZXIgdGhlIGZvbGxvd2luZzoNCj4+Pg0KPj4+ IC0gSWYgdGhlIHN5c3RlbSBpcyBub3QgYXQgY2FwYWNpdHkgdGhlbiBzY2FsYWJpbGl0eSBjYW4g YmUgaW5jcmVhc2VkIGJ5DQo+Pj4gICAgaW5jcmVhc2luZyB0aGUgc2l6ZSBvZiB0aGUgY29udGFp bmVyIHRocmVhZCBwb29sDQo+Pj4NCj4+PiAtIElmIHRoZSBzeXN0ZW0gYXMgYXQgY2FwYWNpdHks IHRoZSBjb250YWluZXIgdGhyZWFkIHBvb2wgd2lsbCBuZWVkIHRvDQo+Pj4gICAgYmUgcmVkdWNl ZCB0byBjcmVhdGUgY2FwYWNpdHkgZm9yIHRoZXNlICdvdGhlcicgYmxvY2tpbmcgdGhyZWFkcy4N Cj4+Pg0KPj4+IC0gSWYgdG9vIG1hbnkgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgdG8gdGhlc2Ug J290aGVyJyBibG9ja2luZyB0aHJlYWRzDQo+Pj4gICAgdGhlbiBzY2FsYWJpbGl0eSB3aWxsIGJl IHJlZHVjZWQgYmVjYXVzZSB0aGVyZSB3aWxsIGJlIGlkbGUgJ290aGVyJw0KPj4+ICAgIGJsb2Nr aW5nIHRocmVhZHMgdGhhdCBjb3VsZCBiZSBkb2luZyB1c2VmdWwgd29yayBlbHNld2hlcmUgc3Vj aCBhcw0KPj4+ICAgIHByb2Nlc3NpbmcgaW5jb21pbmcgcmVxdWVzdHMuDQo+Pj4NCj4+PiAtIElm IHRvbyBmZXcgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgdG8gdGhlc2UgJ290aGVyJyBibG9ja2lu ZyAgdGhyZWFkcw0KPj4+ICAgIHRoZW4gc2NhbGFiaWxpdHkgd2lsbCBiZSByZWR1Y2VkIGJlY2F1 c2UgYSBib3R0bGVuZWNrIHdpbGwgaGF2ZSBiZWVuDQo+Pj4gICAgaW50cm9kdWNlZC4NCj4+Pg0K Pj4+IC0gVGhlICdyaWdodCcgbGV2ZWwgb2YgcmVzb3VyY2VzIHRvIGFsbG9jYXRlIHRvIHRoZXNl ICdvdGhlcicgYmxvY2tpbmcNCj4+PiAgICB0aHJlYWRzIHdpbGwgdmFyeSBvdmVyIHRpbWUuDQo+ Pj4NCj4+PiAtIFJhdGhlciB0aGFuIHRyeSBhbmQgc29sdmUgdGhlIGNvbXBsZXggcHJvYmxlbSBv ZiBiYWxhbmNpbmcgcmVzb3VyY2VzDQo+Pj4gICAgYWNyb3NzIG11bHRpcGxlIHRocmVhZCBwb29s cywgaXQgaXMgZmFyIHNpbXBsZXIgdG8gdXNlIGEgc2luZ2xlIHRocmVhZA0KPj4+ICAgIHBvb2ws IGFzIFRvbWNhdCBkb2VzLg0KPj4+DQo+Pj4NCj4+PiBTZXJ2bGV0IDMgYXN5bmMgY2FuIG9ubHkg aW5jcmVhc2Ugc2NhbGFiaWxpdHkgd2hlcmUgdGhlIFNlcnZsZXQgbmVlZHMgdG8NCj4+PiBwZXJm b3JtIGEgZ2VudWluZWx5IG5vbi1ibG9ja2luZyBvcGVyYXRpb24uIFByaW9yIHRvIHRoZSBhdmFp bGFiaWxpdHkgb2YNCj4+PiB0aGUgYXN5bmMgQVBJLCB0aGUgU2VydmxldCB0aHJlYWQgd291bGQg aGF2ZSB0byBibG9jayB1bnRpbCB0aGUNCj4+PiBub24tYmxvY2tpbmcgb3BlcmF0aW9uIGNvbXBs ZXRlZC4gVGhhdCBpcyBpbmVmZmljaWVudC4gVGhhdCBkb2VzIGxpbWl0DQo+Pj4gc2NhbGFiaWxp dHkuIFRoZSBhc3luYyBBUEkgYWxsb3dzIHRoaXMgdGhlIHRocmVhZCB0byBiZSByZWxlYXNlZCB3 aGlsZQ0KPj4+IHRoaXMgbm9uLWJsb2NraW5nIG9wZXJhdGlvbiBjb21wbGV0ZXMuIFRoYXQgZG9l cyBpbmNyZWFzZSBzY2FsYWJpbGl0eQ0KPj4+IGJlY2F1c2UgcmF0aGVyIHRoYW4gaGF2aW5nIGEg YnVuY2ggb2YgdGhyZWFkcyB3YWl0aW5nIGZvciB0aGVzZQ0KPj4+IG5vbi1ibG9ja2luZyBvcGVy YXRpb25zIHRvIGNvbXBsZXRlLCB0aG9zZSB0aHJlYWRzIGNhbiBkbyB1c2VmdWwgd29yay4NCj4+ Pg0KPj4+IE1hcmsNCj4+Pg0KPj4+DQo+Pj4+DQo+Pj4+IFsxXSBodHRwczovL2RvY3Mub3JhY2xl LmNvbS9qYXZhZWUvNy90dXRvcmlhbC9zZXJ2bGV0czAxMi5odG0NCj4+Pj4gWzJdDQo+Pj4+IGh0 dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvdG9tY2F0L2Jsb2IvdHJ1bmsvamF2YS9vcmcvYXBhY2hl L2NveW90ZS9Bc3luY1N0YXRlTWFjaGluZS5qYXZhI0w0NTENCj4+Pj4NCj4+Pj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQHRvbWNh dC5hcGFjaGUub3JnDQo+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJz LWhlbHBAdG9tY2F0LmFwYWNoZS5vcmcNCj4+Pj4NCj4+Pg0KPj4+DQo+Pj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAdG9tY2F0LmFw YWNoZS5vcmcNCj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxw QHRvbWNhdC5hcGFjaGUub3JnDQo+Pj4NCj4+DQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+IFRvIHVuc3Vi c2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQHRvbWNhdC5hcGFjaGUub3JnDQo+PiBG b3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQHRvbWNhdC5hcGFjaGUu b3JnDQo+Pg0KPiANCj4gDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWls OiB1c2Vycy11bnN1YnNjcmliZUB0b21jYXQuYXBhY2hlLm9yZw0KPiBGb3IgYWRkaXRpb25hbCBj b21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQHRvbWNhdC5hcGFjaGUub3JnDQo+IA0K DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vi c2NyaWJlQHRvbWNhdC5hcGFjaGUub3JnDQpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1t YWlsOiB1c2Vycy1oZWxwQHRvbWNhdC5hcGFjaGUub3JnDQoN