From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 782DDC433FE for ; Tue, 8 Dec 2020 16:31:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4077A23AC8 for ; Tue, 8 Dec 2020 16:31:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729667AbgLHQbj (ORCPT ); Tue, 8 Dec 2020 11:31:39 -0500 Received: from smtp-fw-9102.amazon.com ([207.171.184.29]:52919 "EHLO smtp-fw-9102.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728602AbgLHQbj (ORCPT ); Tue, 8 Dec 2020 11:31:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1607445097; x=1638981097; h=from:to:cc:date:message-id:references:in-reply-to: content-id:mime-version:content-transfer-encoding:subject; bh=Y5bpVgZacRGpU6ZFB42gfUfS5kPt5wVA2edkP9+sBmg=; b=mv6JAaxCc58WYxF9vWumloAfmziMEZ2Lgp281Ina/OV6QFdT4aEmunVy NNuXg/lTmwRQHsS4fAFhgF9NJyLjuJNtK2qXft7B6N8s5pAZ0h1cqLYZI S4gFydl81r+QeRQDSWmTn6V1uVXktDcQ4p8UMJHviHWqKoeQRfOPgHjGL k=; X-IronPort-AV: E=Sophos;i="5.78,402,1599523200"; d="scan'208";a="102628876" Subject: Re: [PATCH net-next] tcp: optimise receiver buffer autotuning initialisation for high latency connections Thread-Topic: [PATCH net-next] tcp: optimise receiver buffer autotuning initialisation for high latency connections Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-1d-5dd976cd.us-east-1.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP; 08 Dec 2020 16:30:50 +0000 Received: from EX13MTAUWB001.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan3.iad.amazon.com [10.40.163.38]) by email-inbound-relay-1d-5dd976cd.us-east-1.amazon.com (Postfix) with ESMTPS id 9CF8FA1DA2; Tue, 8 Dec 2020 16:30:48 +0000 (UTC) Received: from EX13D35UWB002.ant.amazon.com (10.43.161.154) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 8 Dec 2020 16:30:48 +0000 Received: from EX13D18EUA004.ant.amazon.com (10.43.165.164) by EX13D35UWB002.ant.amazon.com (10.43.161.154) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 8 Dec 2020 16:30:47 +0000 Received: from EX13D18EUA004.ant.amazon.com ([10.43.165.164]) by EX13D18EUA004.ant.amazon.com ([10.43.165.164]) with mapi id 15.00.1497.006; Tue, 8 Dec 2020 16:30:46 +0000 From: "Mohamed Abuelfotoh, Hazem" To: Eric Dumazet CC: Neal Cardwell , "netdev@vger.kernel.org" , "stable@vger.kernel.org" , "ycheng@google.com" , "weiwan@google.com" , "Strohman, Andy" , "Herrenschmidt, Benjamin" Thread-Index: AQHWym1GjWRxI1tB2UKaX8lFVs4qcanoaEaAgANdNICAAAxqgIAAA6oAgAADDACAAAwCgIAAAweAgAGBuoCAAAC9gA== Date: Tue, 8 Dec 2020 16:30:45 +0000 Message-ID: <10868573-9303-49FE-BC8E-EDD8544FFB50@amazon.com> References: <20201204180622.14285-1-abuehaze@amazon.com> <44E3AA29-F033-4B8E-A1BC-E38824B5B1E3@amazon.com> <3F02FF08-EDA6-4DFD-8D93-479A5B05E25A@amazon.com> <781BA871-5D3D-4C89-9629-81345CC41C5C@amazon.com> <170D5DF4-443F-47F6-B645-A8762E17A475@amazon.com> <40735F4F-7BEC-4342-A9B1-A8780727C94A@amazon.com> In-Reply-To: <40735F4F-7BEC-4342-A9B1-A8780727C94A@amazon.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.165.102] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org RmVlbCBmcmVlIHRvIGlnbm9yZSB0aGlzIG1lc3NhZ2UgIGFzIEkgc2VudCBpdCBiZWZvcmUgc2Vl aW5nICB5b3VyIG5ld2x5IHN1Ym1pdHRlZCBwYXRjaCAoDQoNClRoYW5rIHlvdS4NCg0KSGF6ZW0N Cg0KDQoNCu+7v09uIDA4LzEyLzIwMjAsIDE2OjI4LCAiTW9oYW1lZCBBYnVlbGZvdG9oLCBIYXpl bSIgPGFidWVoYXplQGFtYXpvbi5jb20+IHdyb3RlOg0KDQogICAgICAgID5QbGVhc2UgdHJ5IGFn YWluLCB3aXRoIGEgZml4ZWQgdGNwX3JtZW1bMV0gb24gcmVjZWl2ZXIsIHRha2luZyBpbnRvDQog ICAgICAgID5hY2NvdW50IGJpZ2dlciBtZW1vcnkgcmVxdWlyZW1lbnQgZm9yIE1UVSA5MDAwDQoN CiAgICAgICAgPlJhdGlvbmFsZSA6IFRDUCBzaG91bGQgYmUgcmVhZHkgdG8gcmVjZWl2ZSAxMCBm dWxsIGZyYW1lcyBiZWZvcmUNCiAgICAgICAgPmF1dG90dW5pbmcgdGFrZXMgcGxhY2UgKHRoZXNl IDEwIE1TUyBhcmUgdHlwaWNhbGx5IGluIGEgc2luZ2xlIEdSTw0KICAgICAgID4gcGFja2V0KQ0K DQogICAgICAgID5BdCA5MDAwIE1UVSwgb25lIGZyYW1lIHR5cGljYWxseSBjb25zdW1lcyAxMktC IChvciAxNktCIG9uIHNvbWUgYXJjaGVzL2RyaXZlcnMpDQoNCiAgICAgICA+VENQIHVzZXMgYSA1 MCUgZmFjdG9yIHJ1bGUsIGFjY291bnRpbmcgMTgwMDAgYnl0ZXMgb2Yga2VybmVsIG1lbW9yeSBw ZXIgTVNTLg0KDQogICAgICAgIC0+DQoNCiAgICAgICAgPmVjaG8gIjQwOTYgMTgwMDAwIDE1NzI4 NjQwIiA+L3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9ybWVtDQoNCg0KDQogICAgPmRpZmYgLS1naXQg YS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jDQogICAgPmluZGV4 IDllOGE2YzFhYTAxOTBjYzI0OGIzYjk5YjA3M2E0YzZlNDU4ODRjZjUuLjgxYjVkOTM3NTg2MGFl NTgzZTA4MDQ1ZmIyNWIwODljNDU2YzYwYWINCiAgICA+MTAwNjQ0DQogICAgPi0tLSBhL25ldC9p cHY0L3RjcF9pbnB1dC5jDQogICAgPisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jDQogICAgPkBA IC01MzQsNiArNTM0LDcgQEAgc3RhdGljIHZvaWQgdGNwX2luaXRfYnVmZmVyX3NwYWNlKHN0cnVj dCBzb2NrICpzaykNCiAgICA+DQogICAgPiAgICAgICAgdHAtPnJjdl9zc3RocmVzaCA9IG1pbih0 cC0+cmN2X3NzdGhyZXNoLCB0cC0+d2luZG93X2NsYW1wKTsNCiAgICA+ICAgICAgIHRwLT5zbmRf Y3duZF9zdGFtcCA9IHRjcF9qaWZmaWVzMzI7DQogICAgPisgICAgICAgdHAtPnJjdnFfc3BhY2Uu c3BhY2UgPSBtaW4odHAtPnJjdl9zc3RocmVzaCwgdHAtPnJjdnFfc3BhY2Uuc3BhY2UpOw0KICAg ID59DQoNCiAgICBZZXMgdGhpcyB3b3JrZWQgYW5kIGl0IGxvb2tzIGxpa2UgZWNobyAiNDA5NiAx NDAwMDAgMTU3Mjg2NDAiID4vcHJvYy9zeXMvbmV0L2lwdjQvdGNwX3JtZW0gaXMgYWN0dWFsbHkg ZW5vdWdoIHRvIHRyaWdnZXIgVENQIGF1dG90dW5pbmcsIGlmIHRoZSBjdXJyZW50IGRlZmF1bHQg dGNwX3JtZW1bMV0gZG9lc24ndCB3b3JrIHdlbGwgd2l0aCA5MDAwIE1UVSBJIGFtIGN1cmlvdXMg dG8ga25vdyAgaWYgdGhlcmUgaXMgc3BlY2lmaWMgcmVhc29uIGJlaGluZCBoYXZpbmcgMTMxMDcy IHNwZWNpZmljYWxseSAgIGFzICB0Y3Bfcm1lbVsxXT9JIHRoaW5rIHRoZSBudW1iZXIgaXRzZWxm IGhhcyB0byBiZSBkaXZpc2libGUgYnkgcGFnZSBzaXplICg0SykgYW5kIDE2S0IgZ2l2ZW4gd2hh dCB5b3Ugc2FpZCB0aGF0IGVhY2ggSnVtYm8gZnJhbWUgcGFja2V0IG1heSBjb25zdW1lIHVwIHRv IDE2S0IuDQoNCiAgICBpZiB0aGUgcGF0Y2ggSSBwcm9wb3NlZCB3b3VsZCBiZSByaXNreSBmb3Ig dXNlcnMgd2hvIGhhdmUgTVRVIG9mIDE1MDAgYmVjYXVzZSBvZiBpdHMgaGlnaGVyIG1lbW9yeSBm b290cHJpbnQgaW4gbXkgb3BpbmlvbiB3ZSBzaG91bGQgIGdldCB0aGUgcGF0Y2ggeW91IHByb3Bv c2VkIG1lcmdlZCBpbnN0ZWFkIG9mIGFza2luZyB0aGUgQWRtaW5zIGRvaW5nIHRoZSBtYW51YWwg d29yay4NCg0KICAgIFRoYW5rIHlvdS4NCg0KICAgIEhhemVtDQoNCiAgICBPbiAwNy8xMi8yMDIw LCAxNzoyOCwgIkVyaWMgRHVtYXpldCIgPGVkdW1hemV0QGdvb2dsZS5jb20+IHdyb3RlOg0KDQog ICAgICAgIENBVVRJT046IFRoaXMgZW1haWwgb3JpZ2luYXRlZCBmcm9tIG91dHNpZGUgb2YgdGhl IG9yZ2FuaXphdGlvbi4gRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5s ZXNzIHlvdSBjYW4gY29uZmlybSB0aGUgc2VuZGVyIGFuZCBrbm93IHRoZSBjb250ZW50IGlzIHNh ZmUuDQoNCg0KDQogICAgICAgIE9uIE1vbiwgRGVjIDcsIDIwMjAgYXQgNjoxNyBQTSBNb2hhbWVk IEFidWVsZm90b2gsIEhhemVtDQogICAgICAgIDxhYnVlaGF6ZUBhbWF6b24uY29tPiB3cm90ZToN CiAgICAgICAgPg0KICAgICAgICA+ICAgICA+VGhhbmtzIGZvciB0ZXN0aW5nIHRoaXMsIEVyaWMu IFdvdWxkIHlvdSBiZSBhYmxlIHRvIHNoYXJlIHRoZSBNVFUNCiAgICAgICAgPiAgICAgPmNvbmZp ZyBjb21tYW5kcyB5b3UgdXNlZCwgYW5kIHRoZSB0Y3BkdW1wIHRyYWNlcyB5b3UgZ2V0PyBJJ20N CiAgICAgICAgPiAgICAgPnN1cnByaXNlZCB0aGF0IHJlY2VpdmUgYnVmZmVyIGF1dG90dW5pbmcg d291bGQgd29yayBmb3IgYWR2bXNzIG9mDQogICAgICAgID4gICAgID5hcm91bmQgNjUwMCBvciBo aWdoZXIuDQogICAgICAgID4NCiAgICAgICAgPiBQYWNrZXQgY2FwdHVyZSBiZWZvcmUgYXBwbHlp bmcgdGhlIHByb3Bvc2VkIHBhdGNoDQogICAgICAgID4NCiAgICAgICAgPiBodHRwczovL3RjcGF1 dG90dW5pbmdwY2Fwcy5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9zZW5kZXItYmJyLWJhZC11 bnBhdGNoZWQucGNhcD9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVk ZW50aWFsPUFLSUFKTk1QNVpaM0k0RkFRR0FRJTJGMjAyMDEyMDclMkZldS13ZXN0LTElMkZzMyUy RmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjAxMjA3VDE3MDEyM1omWC1BbXotRXhwaXJlcz02 MDQ4MDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JlgtQW16LVNpZ25hdHVyZT1hNTk5YTBlMGU2 NjMyYTk1N2U1NjE5MDA3YmE1Y2U0ZjYzYzhlODUzNWVhMjQ0NzBiNzA5M2ZlZjQ0MGE4MzAwDQog ICAgICAgID4NCiAgICAgICAgPiBQYWNrZXQgY2FwdHVyZSBhZnRlciBhcHBseWluZyB0aGUgcHJv cG9zZWQgcGF0Y2gNCiAgICAgICAgPg0KICAgICAgICA+IGh0dHBzOi8vdGNwYXV0b3R1bmluZ3Bj YXBzLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3NlbmRlci1iYnItZ29vZC1wYXRjaGVkLnBj YXA/WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lB Sk5NUDVaWjNJNEZBUUdBUSUyRjIwMjAxMjA3JTJGZXUtd2VzdC0xJTJGczMlMkZhd3M0X3JlcXVl c3QmWC1BbXotRGF0ZT0yMDIwMTIwN1QxNjU4MzFaJlgtQW16LUV4cGlyZXM9NjA0ODAwJlgtQW16 LVNpZ25lZEhlYWRlcnM9aG9zdCZYLUFtei1TaWduYXR1cmU9ZjE4ZWM3MjQ2MTA3NTkwZThhYzM1 YzI0MzIyYWY2OTllNGMyYTczZDE3NDA2N2M1MWNmNmIwYTA2YmJiY2E3Nw0KICAgICAgICA+DQog ICAgICAgID4ga2VybmVsIHZlcnNpb24gJiBNVFUgYW5kIGNvbmZpZ3VyYXRpb24gIGZyb20gbXkg cmVjZWl2ZXIgJiBzZW5kZXIgaXMgYXR0YWNoZWQgdG8gdGhpcyBlLW1haWwsIHBsZWFzZSBiZSBh d2FyZSB0aGF0IEVDMiBpcyBkb2luZyBNU1MgY2xhbXBpbmcgc28geW91IG5lZWQgdG8gY29uZmln dXJlIE1UVSBhcyAxNTAwIG9uIHRoZSBzZW5kZXIgc2lkZSBpZiB5b3UgZG9u4oCZdCBoYXZlIGFu eSBNU1MgY2xhbXBpbmcgYmV0d2VlbiBzZW5kZXIgJiByZWNlaXZlci4NCiAgICAgICAgPg0KICAg ICAgICA+IFRoYW5rIHlvdS4NCiAgICAgICAgPg0KICAgICAgICA+IEhhemVtDQoNCiAgICAgICAg UGxlYXNlIHRyeSBhZ2Fpbiwgd2l0aCBhIGZpeGVkIHRjcF9ybWVtWzFdIG9uIHJlY2VpdmVyLCB0 YWtpbmcgaW50bw0KICAgICAgICBhY2NvdW50IGJpZ2dlciBtZW1vcnkgcmVxdWlyZW1lbnQgZm9y IE1UVSA5MDAwDQoNCiAgICAgICAgUmF0aW9uYWxlIDogVENQIHNob3VsZCBiZSByZWFkeSB0byBy ZWNlaXZlIDEwIGZ1bGwgZnJhbWVzIGJlZm9yZQ0KICAgICAgICBhdXRvdHVuaW5nIHRha2VzIHBs YWNlICh0aGVzZSAxMCBNU1MgYXJlIHR5cGljYWxseSBpbiBhIHNpbmdsZSBHUk8NCiAgICAgICAg cGFja2V0KQ0KDQogICAgICAgIEF0IDkwMDAgTVRVLCBvbmUgZnJhbWUgdHlwaWNhbGx5IGNvbnN1 bWVzIDEyS0IgKG9yIDE2S0Igb24gc29tZSBhcmNoZXMvZHJpdmVycykNCg0KICAgICAgICBUQ1Ag dXNlcyBhIDUwJSBmYWN0b3IgcnVsZSwgYWNjb3VudGluZyAxODAwMCBieXRlcyBvZiBrZXJuZWwg bWVtb3J5IHBlciBNU1MuDQoNCiAgICAgICAgLT4NCg0KICAgICAgICBlY2hvICI0MDk2IDE4MDAw MCAxNTcyODY0MCIgPi9wcm9jL3N5cy9uZXQvaXB2NC90Y3Bfcm1lbQ0KDQoNCg0KICAgICAgICA+ DQogICAgICAgID4NCiAgICAgICAgPiBPbiAwNy8xMi8yMDIwLCAxNjozNCwgIk5lYWwgQ2FyZHdl bGwiIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4gd3JvdGU6DQogICAgICAgID4NCiAgICAgICAgPiAg ICAgQ0FVVElPTjogVGhpcyBlbWFpbCBvcmlnaW5hdGVkIGZyb20gb3V0c2lkZSBvZiB0aGUgb3Jn YW5pemF0aW9uLiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3Mg eW91IGNhbiBjb25maXJtIHRoZSBzZW5kZXIgYW5kIGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZS4N CiAgICAgICAgPg0KICAgICAgICA+DQogICAgICAgID4NCiAgICAgICAgPiAgICAgT24gTW9uLCBE ZWMgNywgMjAyMCBhdCAxMToyMyBBTSBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ IHdyb3RlOg0KICAgICAgICA+ICAgICA+DQogICAgICAgID4gICAgID4gT24gTW9uLCBEZWMgNywg MjAyMCBhdCA1OjA5IFBNIE1vaGFtZWQgQWJ1ZWxmb3RvaCwgSGF6ZW0NCiAgICAgICAgPiAgICAg PiA8YWJ1ZWhhemVAYW1hem9uLmNvbT4gd3JvdGU6DQogICAgICAgID4gICAgID4gPg0KICAgICAg ICA+ICAgICA+ID4gICAgID5TaW5jZSBJIGNhbiBub3QgcmVwcm9kdWNlIHRoaXMgcHJvYmxlbSB3 aXRoIGFub3RoZXIgTklDIG9uIHg4NiwgSQ0KICAgICAgICA+ICAgICA+ID4gICAgID5yZWFsbHkg d29uZGVyIGlmIHRoaXMgaXMgbm90IGFuIGlzc3VlIHdpdGggRU5BIGRyaXZlciBvbiBQb3dlclBD DQogICAgICAgID4gICAgID4gPiAgICAgPnBlcmhhcHMgPw0KICAgICAgICA+ICAgICA+ID4NCiAg ICAgICAgPiAgICAgPiA+DQogICAgICAgID4gICAgID4gPiBJIGFtIGFibGUgdG8gcmVwcm9kdWNl IGl0IG9uIHg4NiBiYXNlZCBFQzIgaW5zdGFuY2VzIHVzaW5nIEVOQSAgb3IgIFhlbiBuZXRmcm9u dCBvciBJbnRlbCBpeGdiZXZmIGRyaXZlciBvbiB0aGUgcmVjZWl2ZXIgc28gaXQncyBub3Qgc3Bl Y2lmaWMgdG8gRU5BLCB3ZSB3ZXJlIGFibGUgdG8gZWFzaWx5IHJlcHJvZHVjZSBpdCBiZXR3ZWVu IDIgVk1zIHJ1bm5pbmcgaW4gdmlydHVhbCBib3ggb24gdGhlIHNhbWUgcGh5c2ljYWwgaG9zdCBj b25zaWRlcmluZyB0aGUgZW52aXJvbm1lbnQgcmVxdWlyZW1lbnRzIEkgbWVudGlvbmVkIGluIG15 IGZpcnN0IGUtbWFpbC4NCiAgICAgICAgPiAgICAgPiA+DQogICAgICAgID4gICAgID4gPiBXaGF0 J3MgdGhlIFJUVCBiZXR3ZWVuIHRoZSBzZW5kZXIgJiByZWNlaXZlciBpbiB5b3VyIHJlcHJvZHVj dGlvbj8gQXJlIHlvdSB1c2luZyBiYnIgb24gdGhlIHNlbmRlciBzaWRlPw0KICAgICAgICA+ICAg ICA+DQogICAgICAgID4gICAgID4NCiAgICAgICAgPiAgICAgPiAxMDBtcyBSVFQNCiAgICAgICAg PiAgICAgPg0KICAgICAgICA+ICAgICA+IFdoaWNoIGV4YWN0IHZlcnNpb24gb2YgbGludXgga2Vy bmVsIGFyZSB5b3UgdXNpbmcgPw0KICAgICAgICA+DQogICAgICAgID4gICAgIFRoYW5rcyBmb3Ig dGVzdGluZyB0aGlzLCBFcmljLiBXb3VsZCB5b3UgYmUgYWJsZSB0byBzaGFyZSB0aGUgTVRVDQog ICAgICAgID4gICAgIGNvbmZpZyBjb21tYW5kcyB5b3UgdXNlZCwgYW5kIHRoZSB0Y3BkdW1wIHRy YWNlcyB5b3UgZ2V0PyBJJ20NCiAgICAgICAgPiAgICAgc3VycHJpc2VkIHRoYXQgcmVjZWl2ZSBi dWZmZXIgYXV0b3R1bmluZyB3b3VsZCB3b3JrIGZvciBhZHZtc3Mgb2YNCiAgICAgICAgPiAgICAg YXJvdW5kIDY1MDAgb3IgaGlnaGVyLg0KICAgICAgICA+DQogICAgICAgID4gICAgIHRoYW5rcywN CiAgICAgICAgPiAgICAgbmVhbA0KICAgICAgICA+DQogICAgICAgID4NCiAgICAgICAgPg0KICAg ICAgICA+DQogICAgICAgID4gQW1hem9uIFdlYiBTZXJ2aWNlcyBFTUVBIFNBUkwsIDM4IGF2ZW51 ZSBKb2huIEYuIEtlbm5lZHksIEwtMTg1NSBMdXhlbWJvdXJnLCBSLkMuUy4gTHV4ZW1ib3VyZyBC MTg2Mjg0DQogICAgICAgID4NCiAgICAgICAgPiBBbWF6b24gV2ViIFNlcnZpY2VzIEVNRUEgU0FS TCwgSXJpc2ggQnJhbmNoLCBPbmUgQnVybGluZ3RvbiBQbGF6YSwgQnVybGluZ3RvbiBSb2FkLCBE dWJsaW4gNCwgSXJlbGFuZCwgYnJhbmNoIHJlZ2lzdHJhdGlvbiBudW1iZXIgOTA4NzA1DQogICAg ICAgID4NCiAgICAgICAgPg0KDQoNCgoKCkFtYXpvbiBXZWIgU2VydmljZXMgRU1FQSBTQVJMLCAz OCBhdmVudWUgSm9obiBGLiBLZW5uZWR5LCBMLTE4NTUgTHV4ZW1ib3VyZywgUi5DLlMuIEx1eGVt Ym91cmcgQjE4NjI4NAoKQW1hem9uIFdlYiBTZXJ2aWNlcyBFTUVBIFNBUkwsIElyaXNoIEJyYW5j aCwgT25lIEJ1cmxpbmd0b24gUGxhemEsIEJ1cmxpbmd0b24gUm9hZCwgRHVibGluIDQsIElyZWxh bmQsIGJyYW5jaCByZWdpc3RyYXRpb24gbnVtYmVyIDkwODcwNQoKCg==