From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 441BDA04DC; Sat, 31 Oct 2020 23:25:10 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8CEDA5AB3; Sat, 31 Oct 2020 23:25:08 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id BA4615AB2 for ; Sat, 31 Oct 2020 23:25:05 +0100 (CET) IronPort-SDR: eQ1Tw8Rj1svKc53ooBZVPhAfda2ZRBc5h9tqvWeoBThY8wGMyVjnclgKDRoRjaNK+AXeMz7VMB 18BqSnPnghrg== X-IronPort-AV: E=McAfee;i="6000,8403,9791"; a="253460603" X-IronPort-AV: E=Sophos;i="5.77,439,1596524400"; d="scan'208";a="253460603" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Oct 2020 15:25:04 -0700 IronPort-SDR: /BEguMJ+4exADPzq/FSZfywY2D7s0+FrwJVxwHzSzNg0J/UAnSNyLkxLmEamQMuE7GhbxEoCf/ uIUygTsyZLYg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,439,1596524400"; d="scan'208";a="356936673" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga002.fm.intel.com with ESMTP; 31 Oct 2020 15:25:04 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 31 Oct 2020 15:25:04 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Sat, 31 Oct 2020 15:25:04 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.177) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Sat, 31 Oct 2020 15:25:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=knTI3xYHLce+7UonwX/NeJfIftREO6EN571clulJ1/c3ouqbdZbizOuX6RJIcj7sdc5dbuZM9M635JzfLdu/OsrWfYDSE61pRl23/c44z5cTfzBY9Yr5kTJmzBmMG0Yp17hCYHSmKF8aJyM2hFF4SzHDxrY74C9eh4/MM6JF8d1TAVyhWzhvVRkLfpBwkXpqoefYFpDS+sqk9/CDjCGghE6GenD1BQqsClAr9n/vjiEhL/JHxzKI7WZNTng2z/NG+7OT8/lnBCgor0qTfBPRiEXAoD65ACGFWNAlE1gJb4PEO79VFmdzazp66G1bQDwdP6f1KnV9uj3GmmVVgIzgZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=by8u5SmsKZu9KkG9vY5sXVVoJZLvm1bvmSpFbw+pDjc=; b=Oe5XrAc/MkXm36kRVVrSIbykDM/EitJdeOr/PN83fUPmQcKiujDpqap50+MszWQwQiCUKhtHXgS21bsKVGDxu9Cj0Xiu2NOA2qIzRvRHhTrdLkyi9DQWLOitiDvZJ4FHdudJdF8ulOmstAiDlqYSWtXHa52i3tnkTEtU8B1PE+trshLnvFRe7JUFhpvXWK9/F1t+TFc2ltQiweYZlFNIVGjAoTGPXHgkBlmz8GICKJjb+vz8NHA+DCnQ88pRbWYAhv4aeG6+9A0OmkiZKhcKzAqffIW6MaLuX0G+dxbMrZkmfsIbvfkxmo/DG2z1BqdvMxXN2OfmxSEEpP4B1j6qrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=by8u5SmsKZu9KkG9vY5sXVVoJZLvm1bvmSpFbw+pDjc=; b=dp89CmWD7QB6W6R6nOpBgDizHU7kppoyAI1082BKYmS86avqeM+XQIG/A1T1A7RSd6vA1Q5GBIMaZe16A9yNpbPBeU0Hb5BbRrKEca8ieVzdtEggER04lyRD6ynjL7h16T3FITofa+9VpIH9esfjkki9ODS3KciK7CNA8BjW7ZM= Received: from SN6PR11MB3103.namprd11.prod.outlook.com (2603:10b6:805:d7::13) by SN6PR11MB3488.namprd11.prod.outlook.com (2603:10b6:805:b8::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.19; Sat, 31 Oct 2020 22:25:01 +0000 Received: from SN6PR11MB3103.namprd11.prod.outlook.com ([fe80::e43b:59bb:161:8349]) by SN6PR11MB3103.namprd11.prod.outlook.com ([fe80::e43b:59bb:161:8349%3]) with mapi id 15.20.3499.029; Sat, 31 Oct 2020 22:25:01 +0000 From: "McDaniel, Timothy" To: David Marchand CC: dev , "Carrillo, Erik G" , "Eads, Gage" , "Van Haaren, Harry" , Jerin Jacob Kollanukkaran , Thomas Monjalon Thread-Topic: [dpdk-dev] [PATCH v14 00/23] Add DLB PMD Thread-Index: AQHWr9N7u9pcM00dMEauOWk52pw9SqmySCaQ Date: Sat, 31 Oct 2020 22:25:01 +0000 Message-ID: References: <20200612212434.6852-2-timothy.mcdaniel@intel.com> <1604168282-30079-1-git-send-email-timothy.mcdaniel@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [162.251.9.49] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1720fd22-b889-480d-765c-08d87debcedd x-ms-traffictypediagnostic: SN6PR11MB3488: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fnQ3gX/iWsH7OvZtmO7O4yQRaoe6fa5KGIlLxbMQbzAdxI8b8iA+QETT4dwuEtu7aZsz9wljlaToMBx6JyoU60+/UF1D8zIkMN5Mr4n2u1pkq5ipJ7ae5NEM0Y04RGo7D/JWqX4Qyf0skZbs947diUr5//EZpkbKZAeyRcrbWAEKiyRLGyLqwwwwP11xTX0VX8ODQ2FWiozUJyWpB50htYTirG+JaAI4uFk9qlYQgKNhDVp4uFI+cW6K7wUusdLWIUs+Ozj4U18GA+1TuFuxjAHInELYK4GNfVltYL+sSJgSRdu2DdlF0bm68wMMSG+iiMnAKuPF1zZavUNFWgmPsg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3103.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(136003)(39860400002)(366004)(376002)(8936002)(71200400001)(54906003)(8676002)(478600001)(33656002)(4326008)(6916009)(316002)(76116006)(86362001)(66476007)(66446008)(52536014)(5660300002)(64756008)(66946007)(83380400001)(26005)(7696005)(9686003)(6506007)(186003)(53546011)(55016002)(2906002)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: szye7m2GXXyLGBcgmVC3L1Zc6F+Ma4mLWXtssydvqAGK+ZJ0rYp+o29GTgiN4biBrgXp5zhlO6iI8e2sVGv4qYUWb9a9HO//Nbo8xgOMr2KMHRf7lgXpmZ3j6I2DTmpaEkZwFAoP18wLoYPnnw4yRUJAlqgeSBVge+qnBF0RPjqcsR190o1vZnsj+UMylbP73uT1CiGj87OvGAhixa47fkouN2FgcbnwBpciLxjBiKTTm401zbiPwAEu6RZ+JgurKNMjiGTRW1l699wzMnL8S0J1shbIUwkj8dsQTopRNC7DTf+9O1X8zBl0duDoxlFqwRjeQZzULgy4tyz6wVXGLPvzhRr+TtFpJJ+1uONOKkirvkNqSPhZnwDkakWvYAogFcrQB2nv5ZdZwRLdjIY5PoaP/DXJTrEn2gRU88p6zOjoCzUQfdboml9rc55PqIrOD32tJcGiNLvtamWTq5tYaIpjKxrM24TwKiw9nrKFE4lpSdEnTG0lKcD8XXl7dWJO3iTHMlB5s4vNQ+nePFmjmM02LhnWYY4DtgUV/vSQaI7aCNigYNLTaq+V4+j4QoiA+Pf/jL+G6BO0wTEA6uLTD19EPRJbqhWusl4EkWD0oOGYx8gjylZ0Ue/92a25zlNfOdFdlPMooj9TraGuDSa0kw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3103.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1720fd22-b889-480d-765c-08d87debcedd X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2020 22:25:01.2752 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yotWwag6NDnxZ51p11ib0dpXbfIqX5rAh3+64xgWwuYyn4Tcc0pijsujeGxCYvKNEa06EKeOcVfpGsZ46qwinz4NLBEiL+xohpBT7jI6Exo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3488 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v14 00/23] Add DLB PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGF2aWQgTWFyY2hhbmQg PGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFNhdHVyZGF5LCBPY3RvYmVyIDMx LCAyMDIwIDU6MTYgUE0NCj4gVG86IE1jRGFuaWVsLCBUaW1vdGh5IDx0aW1vdGh5Lm1jZGFuaWVs QGludGVsLmNvbT4NCj4gQ2M6IGRldiA8ZGV2QGRwZGsub3JnPjsgQ2FycmlsbG8sIEVyaWsgRyA8 ZXJpay5nLmNhcnJpbGxvQGludGVsLmNvbT47IEVhZHMsDQo+IEdhZ2UgPGdhZ2UuZWFkc0BpbnRl bC5jb20+OyBWYW4gSGFhcmVuLCBIYXJyeQ0KPiA8aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+ OyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuDQo+IDxqZXJpbmpAbWFydmVsbC5jb20+OyBUaG9t YXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1k ZXZdIFtQQVRDSCB2MTQgMDAvMjNdIEFkZCBETEIgUE1EDQo+IA0KPiBPbiBTYXQsIE9jdCAzMSwg MjAyMCBhdCA3OjE2IFBNIFRpbW90aHkgTWNEYW5pZWwNCj4gPHRpbW90aHkubWNkYW5pZWxAaW50 ZWwuY29tPiB3cm90ZToNCj4gPg0KPiA+IFRoZSBmb2xsb3dpbmcgcGF0Y2ggc2VyaWVzIGFkZHMg c3VwcG9ydCBmb3IgYSBuZXcgZXZlbnRkZXYgUE1ELiBUaGUgRExCDQo+ID4gUE1EIGFkZHMgc3Vw cG9ydCBmb3IgdGhlIEludGVsIER5bmFtaWMgTG9hZCBCYWxhbmNlciAoRExCKSBoYXJkd2FyZS4N Cj4gPiBUaGUgRExCIGlzIGEgUENJZSBkZXZpY2UgdGhhdCBwcm92aWRlcyBsb2FkLWJhbGFuY2Vk LCBwcmlvcml0aXplZA0KPiA+IHNjaGVkdWxpbmcgb2YgY29yZS10by1jb3JlIGNvbW11bmljYXRp b24uIFRoZSBkZXZpY2UgY29uc2lzdHMgb2YNCj4gPiBxdWV1ZXMgYW5kIGFyYml0ZXJzIHRoYXQg Y29ubmVjdCBwcm9kdWNlciBhbmQgY29uc3VtZXIgY29yZXMsIGFuZA0KPiA+IGltcGxlbWVudHMg bG9hZC1iYWxhbmNlZCBxdWV1ZWluZyBmZWF0dXJlcyBpbmNsdWRpbmc6DQo+ID4gLSBMb2NrLWZy ZWUgbXVsdGktcHJvZHVjZXIvbXVsdGktY29uc3VtZXIgb3BlcmF0aW9uLg0KPiA+IC0gTXVsdGlw bGUgcHJpb3JpdHkgbGV2ZWxzIGZvciB2YXJ5aW5nIHRyYWZmaWMgdHlwZXMuDQo+ID4gLSAnRGly ZWN0JyB0cmFmZmljIChpLmUuIG11bHRpLXByb2R1Y2VyL3NpbmdsZS1jb25zdW1lcikNCj4gPiAt IFNpbXBsZSB1bm9yZGVyZWQgbG9hZC1iYWxhbmNlZCBkaXN0cmlidXRpb24uDQo+ID4gLSBBdG9t aWMgbG9jay1mcmVlIGxvYWQgYmFsYW5jaW5nIGFjcm9zcyBtdWx0aXBsZSBjb25zdW1lcnMuDQo+ ID4gLSBRdWV1ZSBlbGVtZW50IHJlb3JkZXJpbmcgZmVhdHVyZSBhbGxvd2luZyBvcmRlcmVkIGxv YWQtYmFsYW5jZWQNCj4gPiAgIGRpc3RyaWJ1dGlvbi4NCj4gPg0KPiA+IFRoZSBETEIgaGFyZHdh cmUgc3VwcG9ydHMgYm90aCBsb2FkIGJhbGFuY2VkIGFuZCBkaXJlY3RlZCBwb3J0cyBhbmQNCj4g PiBxdWV1ZXMuIFVubGlrZSBvdGhlciBldmVudGRldiBkZXZpY2VzIGFscmVhZHkgaW4gdGhlIHJl cG8sICBub3QgYWxsDQo+ID4gRExCIHBvcnRzIGFuZCBxdWV1ZXMgYXJlIGVxdWFsbHkgY2FwYWJs ZS4gSW4gcGFydGljdWxhciwgZGlyZWN0ZWQNCj4gPiBwb3J0cyBhcmUgbGltaXRlZCB0byBhIHNp bmdsZSBsaW5rLCBhbmQgbXVzdCBiZSBjb25uZWN0ZWQgdG8gYSBkaXJlY3RlZA0KPiA+IHF1ZXVl Lg0KPiA+IEFkZGl0aW9uYWxseSwgZXZlbiB0aG91Z2ggTERCIHBvcnRzIG1heSBsaW5rIG11bHRp cGxlIHF1ZXVlcywgdGhlDQo+ID4gbnVtYmVyIG9mIHF1ZXVlcyB0aGF0IG1heSBiZSBsaW5rZWQg aXMgbGltaXRlZCBieSBoYXJkd2FyZS4gQW5vdGhlcg0KPiA+IGRpZmZlcmVuY2UgaXMgdGhhdCBE TEIgZG9lcyBub3QgaGF2ZSBhIHN0cmFpZ2h0Zm9yd2FyZCB3YXkgb2YgY2FycnlpbmcNCj4gPiB0 aGUgZmxvd19pZCBpbiB0aGUgcXVldWUgZWxlbWVudHMgKFFFKSB0aGF0IHRoZSBoYXJkd2FyZSBv cGVyYXRlcyBvbi4NCj4gPg0KPiA+IFdoaWxlIHJldmlld2luZyB0aGUgY29kZSwgcGxlYXNlIGJl IGF3YXJlIHRoYXQgdGhpcyBQTUQgaGFzIGZ1bGwNCj4gPiBjb250cm9sIG92ZXIgdGhlIERMQiBo YXJkd2FyZS4gSW50ZWwgd2lsbCBiZSBleHRlbmRpbmcgdGhlIERMQiBQTUQNCj4gPiBpbiB0aGUg ZnV0dXJlIChub3QgYXMgcGFydCBvZiB0aGlzIGZpcnN0IHNlcmllcykgd2l0aCBhIG1vZGUgdGhh dCB3ZQ0KPiA+IHJlZmVyIHRvIGFzIHRoZSBiaWZ1cmNhdGVkIFBNRC4gVGhlIGJpZnVyY2F0ZWQg UE1EIGNvbW11bmljYXRlcyB3aXRoIGENCj4gPiBrZXJuZWwgZHJpdmVyIHRvIGNvbmZpZ3VyZSB0 aGUgZGV2aWNlLCBwb3J0cywgYW5kIHF1ZXVlcywgYW5kIG1lbW9yeQ0KPiA+IG1hcHMgZGV2aWNl IE1NSU8gc28gZGF0YXBhdGggb3BlcmF0aW9ucyBvY2N1ciBwdXJlbHkgaW4gdXNlci1zcGFjZS4N Cj4gPg0KPiA+IFRoZSBmcmFtZXdvcmsgdG8gc3VwcG9ydCBib3RoIHRoZSBQRiBQTUQgYW5kIGJp ZnVyY2F0ZWQgUE1EIGV4aXN0cyBpbg0KPiA+IHRoaXMgcGF0Y2hzZXQsIGFuZCBpcyB3aHkgdGhl IGlmYWNlLltjaF0gbGF5ZXIgaXMgcHJlc2VudC4NCj4gPg0KPiA+IE1ham9yIGNoYW5nZXMgaW4g VjE0DQo+ID4gPT09PT09PT09PT09PT09PT09PT0NCj4gPiAtIEZpeGVkIGZvcm1hdCBlcnJvcnMg aW4gZG9jL2FwaS9kb3h5LWFwaS1pbmRleC5tZA0KPiA+IC0gRGVsYXllZCBpbnRyb2R1Y3Rpb24g b2YgZGxiMl9jb25zdW1lX3FlX2ltbWVkaWF0ZSB1bnRpbA0KPiA+ICAgYWRkLWRlcXVldWUtYW5k LWl0cy1idXJzdC12YXJpYW50cy5wYXRjaA0KPiA+IC0gRGVsYXllZCBpbnRyb2R1Y3Rpb24gb2Yg ZGxiMl9jb25zdHJ1Y3RfdG9rZW5fcG9wX3FlIHVudGlsDQo+ID4gICBhZGQtUE1ELXMtdG9rZW4t cG9wLXB1YmxpYy1pbnRlcmZhY2UucGF0Y2gNCj4gPiAtIERlbGF5ZWQgaW50cm9kdWN0aW9uIG9m IGRsYl9lcXVldWVfKl9kZWxheWVkIHVudGlsDQo+ID4gICBhZGQgZGVxdWV1ZSBhbmQgaXRzIGJ1 cnN0IHZhcmlhbnRzLnBhdGNoDQo+IA0KPiBJIGp1c3Qgc2VudCBhIGJ1bmNoIG9mIGNvbW1lbnRz Lg0KPiBJIHN0aWxsIHNlZSBhIGJ1aWxkIGVycm9yIHdpdGggY2xhbmcgZm9yIHVudXNlZCBzdHVm Zi4NCj4gDQo+IFRoZXJlIGlzIG5vIHBvaW50IGluIHNlbmRpbmcgYSBuZXcgc2VyaWVzIHVubGVz cyB0aGUgY2xhbmcgYnVpbGQgaXMNCj4gZml4ZWQgb25jZSBhbmQgZm9yIGFsbC4NCj4gDQo+IA0K PiBJIGNvbXBhcmVkIGRsYiBhbmQgZGxiMiBjb2RlLg0KPiBJIHByZXN1bWUgZml4aW5nIGJ1Z3Mg aW4gdGhlIGZ1dHVyZSB3aWxsIGFtb3VudCB0byBkb3VibGUgcGF0Y2hlcyBldmVyeSB0aW1lLg0K PiANCj4gDQo+IEJ1dCwgb24gYSBwb3NpdGl2ZSBub3RlLCBGcmFuY2Ugd29uIGFnYWluc3QgSXJl bGFuZC4NCj4gDQo+IA0KPiAtLQ0KPiBEYXZpZCBNYXJjaGFuZA0KDQpXaGVyZSBkbyBJIGZpbmQg dGhlIGNsYW5nIG91dHB1dD8gSSBmb2xsb3dlZCB0aGUgbGlua3MgaW4gdGhlIDAtZGF5IGVtYWls LCBhbmQgZnJvbSBwYXRjaHdvcmsgY2xpY2tpbmcgb24gdGhlIHBhdGNoZXMgd2l0aCB0aGUgcmVk IGZhaWx1cmUgaW5kaWNhdG9yLA0KYnV0IG5vbmUgb2YgdGhvc2Ugc2VlbWVkIHRvIGxlYWQgbWUg dG8gYW55IGNsYW5nIGVycm9yIG91dHB1dC4gTXkgYnVpbGQgc2VydmVyIGRvZXMgbm90IGhhdmUg Y2xhbmcsIHdoaWNoIHByZXNlbnRzIGEgcHJvYmxlbQ0KZm9yIG1lLiAgSSd2ZSB0cmllZCB0byB1 c2UgZ2NjIC1XdW51c2VkIGFuZCBpdCBmYWlsZWQgdG8gY2F0Y2ggYW55dGhpbmcuIElzIHRoZXJl IGEgd2F5IGZvciBtZSB0byBzdWJtaXQgYSBjbGFuZyBqb2IgdG8gYSBkcGRrIHNlcnZlci4NCg0K VGhhbmtzLA0KVGltDQoNCg0K