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 A8DB4A0353; Tue, 5 Nov 2019 13:00:54 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E353E2BF4; Tue, 5 Nov 2019 13:00:53 +0100 (CET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140082.outbound.protection.outlook.com [40.107.14.82]) by dpdk.org (Postfix) with ESMTP id 5E1492BF1 for ; Tue, 5 Nov 2019 13:00:52 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A76RpM6Jwk1er4M2EXq/9RWALW8GJjewWVhaz5cQdEB7iaSvPqonPn4MX0IAm/ZF+oQCaecR2SV1m6kOcq5xwpVM3jp2WZ5uZ4sUgWXNyzdw6zPgMaxqqNfc+k2VV53oJWkISjUTz7tN1p0kZhlCtU/750i76P0M1L+8BZ7pDDAqzlCAgQGIM7bT/HzHkqLOwGxPUXQ4WjB4OsZws5llGbxDUd98cRCzt+Y52WWiIGhlEcPEXKng3WVo3BQuSHktqUYL4u1dCWd9jluDpLzuS/tDWFTKwZvUWD1PC+AEKFkUFjMta2wJtBYyvXysJEn/dBN9s2lD35nKHBp8A0dY1g== 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=j6Lp6x5n2ihaiA7wLGk6rgv0tHFH+9P+jQTBFVylnv8=; b=ZmVUcYosTGIDUSqHccCw2s45dl5QBCuBgCRSYeK1+3e0EQw9U8OLLybGAQ0XIxhrXM4c0zMKgSlOvp48Waeq0zzrOXOEx1C5KlVYEY2fhC1YZa4lcZEyirZSyIw2jBLe/1iaS39epA0qHcs6GKyFMQYl9+xRPMwMltJVYq0HOc7n4NignNeyYlPoKytUm0Rb19M9q33jDB0Z8G08Xiw47oTR8TDnWD9Z/l71llNawPBc/6+kScZL6H4xJxmly5XDM7adlb1S9wr+TtmtbTh2Lzsz8qLI3viAm/qxzeclsxnnZLmwDlSO4SgM5ttfmAE7djeJ4BLUvs2FwhiTMCVP/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j6Lp6x5n2ihaiA7wLGk6rgv0tHFH+9P+jQTBFVylnv8=; b=X0Otuym7QHT9t/WNEsadM+tL46fVF7TW26w24QKttUL285g1phR+F/iWrWSZjOmOtKKumWq3xc80o0N/uF+jNEBl204qTJn5gMB+aCeuMMR9cfL1rTOIrA2XOK6yG4WhnEYV4DdzvjrPbRIIQYJvA178+W5qXtx2yzUYdPl4HIg= Received: from AM4PR05MB3425.eurprd05.prod.outlook.com (10.171.190.15) by AM4PR05MB3268.eurprd05.prod.outlook.com (10.171.186.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2408.24; Tue, 5 Nov 2019 12:00:50 +0000 Received: from AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::70a7:a312:cbc6:d178]) by AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::70a7:a312:cbc6:d178%7]) with mapi id 15.20.2387.028; Tue, 5 Nov 2019 12:00:50 +0000 From: Ori Kam To: Andrew Rybchenko , Ferruh Yigit , John McNamara , Marko Kovacevic , Thomas Monjalon CC: "dev@dpdk.org" , "jingjing.wu@intel.com" , "stephen@networkplumber.org" , Jerin Jacob Thread-Topic: [dpdk-dev] [PATCH v7 02/14] ethdev: add support for hairpin queue Thread-Index: AQHVj31BWBrTcRDic0SmEQJ1CV5GOKd8eEqAgAACMdCAAASmAIAAArpw Date: Tue, 5 Nov 2019 12:00:50 +0000 Message-ID: References: <1569479349-36962-1-git-send-email-orika@mellanox.com> <1572479604-178752-1-git-send-email-orika@mellanox.com> <1572479604-178752-3-git-send-email-orika@mellanox.com> <10616bdb-4314-833e-d05e-ab5674763ae1@intel.com> <676258d8-83e6-754c-681e-1e60099f4b31@solarflare.com> In-Reply-To: <676258d8-83e6-754c-681e-1e60099f4b31@solarflare.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=orika@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 906e0559-3509-4c1b-ce89-08d761e7cd80 x-ms-traffictypediagnostic: AM4PR05MB3268: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2449; x-forefront-prvs: 0212BDE3BE x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(376002)(39860400002)(346002)(136003)(396003)(199004)(189003)(13464003)(8676002)(8936002)(81166006)(81156014)(14444005)(256004)(26005)(71190400001)(71200400001)(76176011)(486006)(186003)(7736002)(305945005)(74316002)(6116002)(3846002)(2906002)(66066001)(476003)(52536014)(86362001)(11346002)(446003)(229853002)(99286004)(316002)(14454004)(76116006)(478600001)(66446008)(66946007)(66556008)(9686003)(54906003)(6436002)(55016002)(110136005)(66476007)(25786009)(64756008)(4326008)(7696005)(53546011)(6506007)(102836004)(33656002)(6246003)(5660300002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3268; H:AM4PR05MB3425.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jMhce3q9c1QLK2rpM8giHIQS8M9UtDF0URiGeEuRfSF0xbDd6/5J9V7H6al2mwJECikcYbgrWADjvUxDwDAgWNU9XzBGxJXZgvhfWC20BQTzv2+BBw7CdBPt41Yq1IGxBdBlW5AEgWhqL4E3x5w2YRb5mzEKQeMKMMGfRljeUmDzyv12XcfGt1YjlH9eqRG2gF1gwKc+pa5AqfP+duc/d4L+7NkIIOtojh4x2dHz9CpN9RsW0MPNLFDkH1wTKKL4It0bS4V7UxUHqN/bspSLz5AmWcRdAzk9hleEmOXaOktk8m6OY+LhskI0DyG0NK2AhI/iqzaXsN1NqhQ1PsBq5xpiugcOfWPdJLTuuo5xwPhlm3ghyopyjCo3pWyEmNBpxHWkKi/MnFrNOQuGx+O6pHx8ECAVXid1RTuSqXhfFQc+GXIOeu6Ba/lCWP1V75RC x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 906e0559-3509-4c1b-ce89-08d761e7cd80 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2019 12:00:50.7565 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: idbTjVzJ3malRA0GAeNXSrM5n4YRnm+2TzQJ3vVSoKVvb+zeUPk2jbepBL6i5ByMQwAJhldjniNLNkLbjHsUXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3268 Subject: Re: [dpdk-dev] [PATCH v7 02/14] ethdev: add support for hairpin queue 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5r byA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4NCj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIg NSwgMjAxOSAxOjQ5IFBNDQo+IFRvOiBPcmkgS2FtIDxvcmlrYUBtZWxsYW5veC5jb20+OyBGZXJy dWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+Ow0KPiBKb2huIE1jTmFtYXJhIDxqb2hu Lm1jbmFtYXJhQGludGVsLmNvbT47IE1hcmtvIEtvdmFjZXZpYw0KPiA8bWFya28ua292YWNldmlj QGludGVsLmNvbT47IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gQ2M6 IGRldkBkcGRrLm9yZzsgamluZ2ppbmcud3VAaW50ZWwuY29tOyBzdGVwaGVuQG5ldHdvcmtwbHVt YmVyLm9yZzsgSmVyaW4NCj4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4N Cj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY3IDAyLzE0XSBldGhkZXY6IGFkZCBz dXBwb3J0IGZvciBoYWlycGluIHF1ZXVlDQo+IA0KPiBPbiAxMS81LzE5IDI6MzYgUE0sIE9yaSBL YW0gd3JvdGU6DQo+ID4NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ PiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+IFNlbnQ6 IFR1ZXNkYXksIE5vdmVtYmVyIDUsIDIwMTkgMToyNSBQTQ0KPiA+PiBUbzogT3JpIEthbSA8b3Jp a2FAbWVsbGFub3guY29tPjsgSm9obiBNY05hbWFyYQ0KPiA+PiA8am9obi5tY25hbWFyYUBpbnRl bC5jb20+OyBNYXJrbyBLb3ZhY2V2aWMNCj4gPj4gPG1hcmtvLmtvdmFjZXZpY0BpbnRlbC5jb20+ OyBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+Ow0KPiA+PiBBbmRyZXcgUnli Y2hlbmtvIDxhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tPg0KPiA+PiBDYzogZGV2QGRwZGsub3Jn OyBqaW5namluZy53dUBpbnRlbC5jb207IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOw0KPiBK ZXJpbg0KPiA+PiBKYWNvYiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPg0KPiA+PiBT dWJqZWN0OiBSZTogW1BBVENIIHY3IDAyLzE0XSBldGhkZXY6IGFkZCBzdXBwb3J0IGZvciBoYWly cGluIHF1ZXVlDQo+ID4+DQo+ID4+IE9uIDEwLzMwLzIwMTkgMTE6NTMgUE0sIE9yaSBLYW0gd3Jv dGU6DQo+ID4+PiBUaGlzIGNvbW1pdCBpbnRyb2R1Y2UgaGFpcnBpbiBxdWV1ZSB0eXBlLg0KPiA+ Pj4NCj4gPj4+IFRoZSBoYWlycGluIHF1ZXVlIGluIGJ1aWxkIGZyb20gUnggcXVldWUgYmluZGVk IHRvIFR4IHF1ZXVlLg0KPiA+Pj4gSXQgaXMgdXNlZCB0byBvZmZsb2FkIHRyYWZmaWMgY29taW5n IGZyb20gdGhlIHdpcmUgYW5kIHJlZGlyZWN0IGl0IGJhY2sNCj4gPj4+IHRvIHRoZSB3aXJlLg0K PiA+Pj4NCj4gPj4+IFRoZXJlIGFyZSAzIG5ldyBmdW5jdGlvbnM6DQo+ID4+PiAtIHJ0ZV9ldGhf ZGV2X2hhaXJwaW5fY2FwYWJpbGl0eV9nZXQNCj4gPj4+IC0gcnRlX2V0aF9yeF9oYWlycGluX3F1 ZXVlX3NldHVwDQo+ID4+PiAtIHJ0ZV9ldGhfdHhfaGFpcnBpbl9xdWV1ZV9zZXR1cA0KPiA+Pj4N Cj4gPj4+IEluIG9yZGVyIHRvIHVzZSB0aGUgcXVldWUsIHRoZXJlIGlzIGEgbmVlZCB0byBjcmVh dGUgcnRlX2Zsb3cNCj4gPj4+IHdpdGggcXVldWUgLyBSU1MgYWN0aW9uIHRoYXQgdGFyZ2V0cyBv bmUgb3IgbW9yZSBvZiB0aGUgUnggcXVldWVzLg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6 IE9yaSBLYW0gPG9yaWthQG1lbGxhbm94LmNvbT4NCj4gPj4+IFJldmlld2VkLWJ5OiBBbmRyZXcg UnliY2hlbmtvIDxhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tPg0KPiA+Pg0KPiA+PiA8Li4uPg0K PiA+Pg0KPiA+Pj4gICNpbmNsdWRlIDxydGVfZXRoZGV2X2NvcmUuaD4NCj4gPj4+DQo+ID4+PiAg LyoqDQo+ID4+PiArICogQGludGVybmFsDQo+ID4+PiArICogQ2hlY2sgaWYgdGhlIHNlbGVjdGVk IFJ4IHF1ZXVlIGlzIGhhaXJwaW4gcXVldWUuDQo+ID4+PiArICoNCj4gPj4+ICsgKiBAcGFyYW0g ZGV2DQo+ID4+PiArICogIFBvaW50ZXIgdG8gdGhlIHNlbGVjdGVkIGRldmljZS4NCj4gPj4+ICsg KiBAcGFyYW0gcXVldWVfaWQNCj4gPj4+ICsgKiAgVGhlIHNlbGVjdGVkIHF1ZXVlLg0KPiA+Pj4g KyAqDQo+ID4+PiArICogQHJldHVybg0KPiA+Pj4gKyAqICAgLSAoMSkgaWYgdGhlIHF1ZXVlIGlz IGhhaXJwaW4gcXVldWUsIDAgb3RoZXJ3aXNlLg0KPiA+Pj4gKyAqLw0KPiA+Pj4gK2ludA0KPiA+ Pj4gK3J0ZV9ldGhfZGV2X2lzX3J4X2hhaXJwaW5fcXVldWUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHVpbnQxNl90DQo+ID4+IHF1ZXVlX2lkKTsNCj4gPj4+ICsNCj4gPj4+ICsvKioNCj4gPj4+ ICsgKiBAaW50ZXJuYWwNCj4gPj4+ICsgKiBDaGVjayBpZiB0aGUgc2VsZWN0ZWQgVHggcXVldWUg aXMgaGFpcnBpbiBxdWV1ZS4NCj4gPj4+ICsgKg0KPiA+Pj4gKyAqIEBwYXJhbSBkZXYNCj4gPj4+ ICsgKiAgUG9pbnRlciB0byB0aGUgc2VsZWN0ZWQgZGV2aWNlLg0KPiA+Pj4gKyAqIEBwYXJhbSBx dWV1ZV9pZA0KPiA+Pj4gKyAqICBUaGUgc2VsZWN0ZWQgcXVldWUuDQo+ID4+PiArICoNCj4gPj4+ ICsgKiBAcmV0dXJuDQo+ID4+PiArICogICAtICgxKSBpZiB0aGUgcXVldWUgaXMgaGFpcnBpbiBx dWV1ZSwgMCBvdGhlcndpc2UuDQo+ID4+PiArICovDQo+ID4+PiAraW50DQo+ID4+PiArcnRlX2V0 aF9kZXZfaXNfdHhfaGFpcnBpbl9xdWV1ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2 X3QNCj4gPj4gcXVldWVfaWQpOw0KPiA+Pj4gKw0KPiA+Pj4gKy8qKg0KPiA+Pg0KPiA+PiBJZiB0 aGVzZSBmdW5jdGlvbnMgYXJlIGludGVybmFsIHdoeSB0aGVyZSBhcmUgaW4gJ3J0ZV9ldGhkZXYu aCcgPw0KPiA+Pg0KPiA+Pj4gICAqDQo+ID4+PiAgICogUmV0cmlldmUgYSBidXJzdCBvZiBpbnB1 dCBwYWNrZXRzIGZyb20gYSByZWNlaXZlIHF1ZXVlIG9mIGFuIEV0aGVybmV0DQo+ID4+PiAgICog ZGV2aWNlLiBUaGUgcmV0cmlldmVkIHBhY2tldHMgYXJlIHN0b3JlZCBpbiAqcnRlX21idWYqIHN0 cnVjdHVyZXMNCj4gd2hvc2UNCj4gPj4+IEBAIC00MjUxLDYgKzQ0MDAsMTEgQEAgaW50IHJ0ZV9l dGhfZGV2X2FkanVzdF9uYl9yeF90eF9kZXNjKHVpbnQxNl90DQo+ID4+IHBvcnRfaWQsDQo+ID4+ PiAgCQlSVEVfRVRIREVWX0xPRyhFUlIsICJJbnZhbGlkIFJYIHF1ZXVlX2lkPSV1XG4iLA0KPiA+ PiBxdWV1ZV9pZCk7DQo+ID4+PiAgCQlyZXR1cm4gMDsNCj4gPj4+ICAJfQ0KPiA+Pj4gKwlpZiAo cnRlX2V0aF9kZXZfaXNfcnhfaGFpcnBpbl9xdWV1ZShkZXYsIHF1ZXVlX2lkKSkgew0KPiA+Pj4g KwkJUlRFX0VUSERFVl9MT0coRVJSLCAiUnggYnVyc3QgZmFpbGVkLCBxdWV1ZV9pZD0ldSBpcw0K PiA+PiBoYWlycGluIHF1ZXVlXG4iLA0KPiA+Pj4gKwkJCSAgICAgICBxdWV1ZV9pZCk7DQo+ID4+ PiArCQlyZXR1cm4gMDsNCj4gPj4+ICsJfQ0KPiA+Pj4gICNlbmRpZg0KPiA+Pj4gIAluYl9yeCA9 ICgqZGV2LT5yeF9wa3RfYnVyc3QpKGRldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkXSwNCj4g Pj4+ICAJCQkJICAgICByeF9wa3RzLCBuYl9wa3RzKTsNCj4gPj4+IEBAIC00NTE3LDYgKzQ2NzEs MTEgQEAgc3RhdGljIGlubGluZSBpbnQNCj4gPj4gcnRlX2V0aF90eF9kZXNjcmlwdG9yX3N0YXR1 cyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+Pj4gIAkJUlRFX0VUSERFVl9MT0coRVJSLCAiSW52YWxp ZCBUWCBxdWV1ZV9pZD0ldVxuIiwNCj4gPj4gcXVldWVfaWQpOw0KPiA+Pj4gIAkJcmV0dXJuIDA7 DQo+ID4+PiAgCX0NCj4gPj4+ICsJaWYgKHJ0ZV9ldGhfZGV2X2lzX3R4X2hhaXJwaW5fcXVldWUo ZGV2LCBxdWV1ZV9pZCkpIHsNCj4gPj4+ICsJCVJURV9FVEhERVZfTE9HKEVSUiwgIlR4IGJ1cnN0 IGZhaWxlZCwgcXVldWVfaWQ9JXUgaXMNCj4gPj4gaGFpcnBpbiBxdWV1ZVxuIiwNCj4gPj4+ICsJ CQkgICAgICAgcXVldWVfaWQpOw0KPiA+Pj4gKwkJcmV0dXJuIDA7DQo+ID4+PiArCX0NCj4gPj4+ ICAjZW5kaWYNCj4gPj4NCj4gPj4gSGkgT3JpLA0KPiA+Pg0KPiA+PiBUaGVzZSBhcmUgY2F1c2lu ZyBidWlsZCBlcnJvciwgdGhhbmtzIEplcmluIGZvciBjYXRjaGluZywgYmVjYXVzZSB0aGV5IGFy ZQ0KPiA+PiBpbnRlcm5hbCBhbmQgY2FsbGVkIGJ5IGEgcHVibGljIHN0YXRpYyBpbmxpbmUgQVBJ LCBzbyB3aG9ldmVyIGNhbGxzDQo+ID4+ICdydGVfZXRoX3J4L3R4X2J1cnN0KCknIEFQSXMgaW4g dGhlIHNoYXJlZCBidWlsZCwgY2FuJ3QgZmluZA0KPiA+PiAncnRlX2V0aF9kZXZfaXNfcngvdHhf aGFpcnBpbl9xdWV1ZSgpJyBmdW5jdGlvbnMgWzFdLA0KPiA+Pg0KPiA+PiBhcyBmYXIgYXMgSSBj YW4gc2VlIHRoZXJlIGFyZSB0d28gb3B0aW9uczoNCj4gPj4gMSkgUmVtb3ZlIHRoZXNlIGNoZWNr cw0KPiA+PiAyKSBNYWtlICdydGVfZXRoX2Rldl9pc19yeC90eF9oYWlycGluX3F1ZXVlKCknIHB1 YmxpYyBBUEkgaW5zdGVhZCBvZg0KPiBpbnRlcm5hbA0KPiA+Pg0KPiA+PiBJZiB0aGVyZSBpcyBh IHZhbHVlIHRvIG1ha2UgJ3J0ZV9ldGhfZGV2X2lzX3J4L3R4X2hhaXJwaW5fcXVldWUoKScgcHVi bGljIEFQSQ0KPiA+PiB3ZQ0KPiA+PiBzaG91bGQgZ28gd2l0aCAoMikgZWxzZSAoMSkuDQo+ID4+ DQo+ID4NCj4gPiBJIHRoaW5rIHdlIGNhbiBza2lwIHRoZSB0ZXN0cywNCj4gPiBCdXQgaXQgd2Fz IEFuZHJldyByZXF1ZXN0IHNvIHdlIG11c3QgZ2V0IGlzIHJlc3BvbnNlLg0KPiA+IEl0IHdhcyBh bHNvIGhpcyBlbXBhdGhpZXMgdGhhdCB0aGV5IHNob3VsZCBiZSBpbnRlcm5hbC4NCj4gDQo+IEl0 IGlzIGltcG9ydGFudCBmb3IgbWUgdG8ga2VlcCBydGVfZXRoX2Rldl9zdGF0ZSBpbnRlcm5hbCBh bmQNCj4gZmV3IHBhdGNoZXMgYWdvIHJ0ZV9ldGhfZGV2X2lzX3J4X2hhaXJwaW5fcXVldWUoKSB3 YXMgaW5saW5lLg0KPiBJJ20gT0sgdG8gbWFrZSB0aGUgZnVuY3Rpb24gZXhwZXJpbWVudGFsIG9y IGtlZXAgaXQgaW50ZXJuYWwNCj4gKG5vIEFQSS9BQkkgc3RhYmlsaXR5IHJlcXVpcmVtZW50cykg YnV0IGV4dGVybmFsbHkgdmlzaWJsZSAoaW4gLm1hcCkuDQo+IA0KDQpKdXN0IHRvIG1ha2Ugc3Vy ZSBJIHVuZGVyc3RhbmQgeW91IG1lYW4ganVzdCB0byBhZGQgdGhlIGlzX3J4X2hhaXJwaW5fcXVl dWUgdG8gdGhlIG1hcCBmaWxlIHJpZ2h0Pw0KDQoNCj4gPj4gWzFdDQo+ID4+IC91c3IvYmluL2xk OiBydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXIubzogaW4gZnVuY3Rpb24gYHJ4YV9ldGhfcngnOg0K PiA+PiBydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXIuYzooLnRleHQrMHgxNzI4KTogdW5kZWZpbmVk IHJlZmVyZW5jZSB0bw0KPiA+PiBgcnRlX2V0aF9kZXZfaXNfcnhfaGFpcnBpbl9xdWV1ZScNCj4g Pj4gL3Vzci9iaW4vbGQ6IHJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5vOiBpbiBmdW5jdGlvbiBg cnhhX3NlcnZpY2VfZnVuYyc6DQo+ID4+IHJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5jOigudGV4 dCsweDIyYWIpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvDQo+ID4+IGBydGVfZXRoX2Rldl9pc19y eF9oYWlycGluX3F1ZXVlJw0KPiA+PiAvdXNyL2Jpbi9sZDogcnRlX2V2ZW50X2V0aF90eF9hZGFw dGVyLm86IGluIGZ1bmN0aW9uDQo+IGB0eGFfc2VydmljZV9idWZmZXJfcmV0cnknOg0KPiA+PiBy dGVfZXZlbnRfZXRoX3R4X2FkYXB0ZXIuYzooLnRleHQrMHhhNDMpOiB1bmRlZmluZWQgcmVmZXJl bmNlIHRvDQo+ID4+IGBydGVfZXRoX2Rldl9pc190eF9oYWlycGluX3F1ZXVlJw0KPiA+PiAvdXNy L2Jpbi9sZDogcnRlX2V2ZW50X2V0aF90eF9hZGFwdGVyLm86IGluIGZ1bmN0aW9uIGB0eGFfc2Vy dmljZV9mdW5jJzoNCj4gPj4gcnRlX2V2ZW50X2V0aF90eF9hZGFwdGVyLmM6KC50ZXh0KzB4ZTdk KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0bw0KPiA+PiBgcnRlX2V0aF9kZXZfaXNfdHhfaGFpcnBp bl9xdWV1ZScNCj4gPj4gL3Vzci9iaW4vbGQ6IHJ0ZV9ldmVudF9ldGhfdHhfYWRhcHRlci5jOigu dGV4dCsweDExNTUpOiB1bmRlZmluZWQgcmVmZXJlbmNlDQo+IHRvDQo+ID4+IGBydGVfZXRoX2Rl dl9pc190eF9oYWlycGluX3F1ZXVlJw0KPiA+PiBjb2xsZWN0MjogZXJyb3I6IGxkIHJldHVybmVk IDEgZXhpdCBzdGF0dXMNCg0K