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 887B1A0613 for ; Thu, 26 Sep 2019 18:11:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B71022BE2; Thu, 26 Sep 2019 18:11:40 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10083.outbound.protection.outlook.com [40.107.1.83]) by dpdk.org (Postfix) with ESMTP id 5B44C2BE2 for ; Thu, 26 Sep 2019 18:11:39 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i4dJs6avxn2TqnPORDwespyjVnMGqtZyebP/YyjD+zQfwA9/vbuQkNISgcT48EcgYOc0pEoRGakL5WDkKpxzd60NvDLN2DDAG/DQ0FgmYVvPys7bXh3aT+632bpIlFKH1H53uWU2GtPwYIk0XFL+6eeP4qD2fnB7pFHLCkfYIi198Id5Osjj1pNsR8Bc4q/F8OuiI6UGkYxQE2J3VKIqN+c7Boy40F38uCcJoxzmCx1YqoOJiP8AtLYbULYZkSkLNOAsIx9ZdVkcCgczSlphh3VTv7c2DOctO+3VwX5qNn7mOWqu0sEqjRCYgcTENPGoO0B4v48IY/auiXUkqolpKQ== 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=DeFfSEqarcTooZEB5VQQjeCA22Gr3wrIJlWfEbYI0Oc=; b=M8hLwshgz9AOQWJlnCcyWq9UAeUXYk5kGBSYfueMtpuhxkxW6NLdoiHzTe/V64U0YnwX8IFw46481mvzrLuf4R/76i1iBDOnUHTo4E81UB+BQNVUybfET4IHkcKMISyDSzeXBKrD7GYOwNHHpTCHZUTOQ93pk45nTSmjq03bzmIaOZqGF5OnvrZhswYCCagJKNeRKOsM/NN5IkxHz9pvt0TDFHG7IU6xMcXLZoAwNc5yyNnk9KYV7URqLV0+KVVAGfbH/Y5cfQyUNnCmHsZl/tgTwt/Twk+FB05oh4WM/nSckATPT2bQt2Pr/V7gp2IntgTPzUPFFii2MVNrRzqs4A== 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=DeFfSEqarcTooZEB5VQQjeCA22Gr3wrIJlWfEbYI0Oc=; b=ds7JBXVyhb3/H92bTFfWGoli8Ub09fGGFVPAs/HJO6B38BXdjoTb++MNHtqYrgzdHyEp1fQ+chIiIDAseMmSacGuG/x79ChHkdg0T4BfaNdevcfETD42b36hDF1ECu8v8ukHsKHYut32/HbaURLBJsWpNpfP2YlauiQTkMg70Nk= Received: from AM4PR05MB3425.eurprd05.prod.outlook.com (10.171.190.15) by AM4PR05MB3137.eurprd05.prod.outlook.com (10.171.188.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2284.18; Thu, 26 Sep 2019 16:11:37 +0000 Received: from AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::4c32:a34f:5558:a2c6]) by AM4PR05MB3425.eurprd05.prod.outlook.com ([fe80::4c32:a34f:5558:a2c6%7]) with mapi id 15.20.2284.028; Thu, 26 Sep 2019 16:11:37 +0000 From: Ori Kam To: Andrew Rybchenko CC: "dev@dpdk.org" , "jingjing.wu@intel.com" , "stephen@networkplumber.org" , "wenzhuo.lu@intel.com" , "bernard.iremonger@intel.com" , Thomas Monjalon , "ferruh.yigit@intel.com" , Slava Ovsiienko Thread-Topic: [PATCH 00/13] add hairpin feature Thread-Index: AQHVdGZ6fR2eefJviUSKkKMLLb0pMKc98FYQgAAqgwCAAALloA== Date: Thu, 26 Sep 2019 16:11:37 +0000 Message-ID: References: <1569479349-36962-1-git-send-email-orika@mellanox.com> In-Reply-To: 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-correlation-id: 07829841-a5c7-45f4-3cd9-08d7429c3556 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600167)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM4PR05MB3137; x-ms-traffictypediagnostic: AM4PR05MB3137:|AM4PR05MB3137: x-ms-exchange-purlcount: 1 x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0172F0EF77 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(346002)(396003)(366004)(376002)(39860400002)(51444003)(189003)(199004)(13464003)(305945005)(6246003)(107886003)(4326008)(66476007)(256004)(446003)(26005)(11346002)(102836004)(14454004)(6916009)(66946007)(99286004)(53546011)(25786009)(6506007)(54906003)(486006)(76116006)(476003)(33656002)(316002)(64756008)(66446008)(71190400001)(71200400001)(14444005)(66556008)(186003)(3846002)(6116002)(966005)(76176011)(81166006)(81156014)(8676002)(5660300002)(8936002)(86362001)(52536014)(7696005)(45080400002)(55016002)(6436002)(66066001)(2906002)(478600001)(7736002)(9686003)(6306002)(229853002)(74316002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3137; H:AM4PR05MB3425.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: h0uN4kATRMap/HOrsw4fLu48WXwpqf7kSyEvhIJSOBlwNoFgvWnEOf8j/ASg8b1aMFQyO6HkmVNXqi+rK+LQI46t1pOtTnRjt5YEKLZeG+4i/vi/zisS36WUZljsc1JIrbiUUvFW5lbrkhDk0v5HlfwryzPJUuMFn1MfZev5HLfbQwMZ+tjc/xCNW9LbriKniMHpMfpn83oYfzgnTSB0CwZDXT9FBzvlNqy6EbRJWvUasAIBXLoDmbkOiCBiZpQ11wmIbLqess6GnU6KBQutSrxVuAl1+uBuRdNL9L4zo7Fh1KFvcWrhRAoHc9wkXdGjI0Bb6KW+mqHFq9Xq8ybvD3POcVSOfKUxTl76p+D1NghZgsGj+IHqGFyWSuiFpaDMktW1GBETOcWOd1KPits0PcQz2EMhllDRZpNMyMWAo9vUuF5UlUrenul8K0vSn2x0owuxrtOe+KmjYmMNO864EA== 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: 07829841-a5c7-45f4-3cd9-08d7429c3556 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Sep 2019 16:11:37.2420 (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: BfZY/xRKAr35vwLhyyU2Lm4dnXm/aoTz7QUUVFQRUzTCR4Bf9ogGujAA1vLLQKXBwOSSg5bu4YnJuUPO920pUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3137 Subject: Re: [dpdk-dev] [PATCH 00/13] add hairpin feature 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" DQpIaSBBbmRyZXcsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5k cmV3IFJ5YmNoZW5rbyA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4NCj4gDQo+IEhpIE9yaSwN Cj4gDQo+IE9uIDkvMjYvMTkgNjoyMiBQTSwgT3JpIEthbSB3cm90ZToNCj4gPiBIaSBBbmRyZXcs DQo+ID4gVGhhbmtzIGZvciB5b3VyIGNvbW1lbnRzIHBsZWFzZSBzZWUgYmxvdy4NCj4gPg0KPiA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtv IDxhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tPg0KPiA+Pg0KPiA+PiBPbiA5LzI2LzE5IDk6Mjgg QU0sIE9yaSBLYW0gd3JvdGU6DQo+ID4+PiBUaGlzIHBhdGNoIHNldCBpbXBsZW1lbnRzIHRoZSBo YWlycGluIGZlYXR1cmUuDQo+ID4+PiBUaGUgaGFpcnBpbiBmZWF0dXJlIHdhcyBpbnRyb2R1Y2Vk IGluIFJGQ1sxXQ0KPiA+Pj4NCj4gPj4+IFRoZSBoYWlycGluIGZlYXR1cmUgKGRpZmZlcmVudCBu YW1lIGNhbiBiZSBmb3J3YXJkKSBhY3RzIGFzICJidW1wIG9uIHRoZQ0KPiA+PiB3aXJlIiwNCj4g Pj4+IG1lYW5pbmcgdGhhdCBhIHBhY2tldCB0aGF0IGlzIHJlY2VpdmVkIGZyb20gdGhlIHdpcmUg Y2FuIGJlIG1vZGlmaWVkIHVzaW5nDQo+ID4+PiBvZmZsb2FkZWQgYWN0aW9uIGFuZCB0aGVuIHNl bnQgYmFjayB0byB0aGUgd2lyZSB3aXRob3V0IGFwcGxpY2F0aW9uDQo+ID4+IGludGVydmVudGlv bg0KPiA+Pj4gd2hpY2ggc2F2ZSBDUFUgY3ljbGVzLg0KPiA+Pj4NCj4gPj4+IFRoZSBoYWlycGlu IGlzIHRoZSBpbnZlcnNlIGZ1bmN0aW9uIG9mIGxvb3BiYWNrIGluIHdoaWNoIGFwcGxpY2F0aW9u DQo+ID4+PiBzZW5kcyBhIHBhY2tldCB0aGVuIGl0IGlzIHJlY2VpdmVkIGFnYWluIGJ5IHRoZQ0K PiA+Pj4gYXBwbGljYXRpb24gd2l0aG91dCBiZWluZyBzZW50IHRvIHRoZSB3aXJlLg0KPiA+Pj4N Cj4gPj4+IFRoZSBoYWlycGluIGNhbiBiZSB1c2VkIGJ5IGEgbnVtYmVyIG9mIGRpZmZlcmVudCBO VkYsIGZvciBleGFtcGxlIGxvYWQNCj4gPj4+IGJhbGFuY2VyLCBnYXRld2F5IGFuZCBzbyBvbi4N Cj4gPj4+DQo+ID4+PiBBcyBjYW4gYmUgc2VlbiBmcm9tIHRoZSBoYWlycGluIGRlc2NyaXB0aW9u LCBoYWlycGluIGlzIGJhc2ljYWxseSBSWCBxdWV1ZQ0KPiA+Pj4gY29ubmVjdGVkIHRvIFRYIHF1 ZXVlLg0KPiA+PiBJcyBpdCBqdXN0IGEgcGlwZSBvciBSVEUgZmxvdyBBUEkgcnVsZXMgcmVxdWly ZWQ/DQo+ID4+IElmIGl0IGlzIGp1c3QgYSBwaXBlLCB3aGF0IGFib3V0IHRyYW5zZm9ybWF0aW9u cyB3aGljaCBjb3VsZCBiZSB1c2VmdWwNCj4gPj4gaW4gdGhpcw0KPiA+PiBjYXNlIChlbmNhcHMv ZGVjYXBzLCBOQVQgZXRjKT8gSG93IHRvIGFjaGlldmUgaXQ/DQo+ID4+IElmIGl0IGlzIG5vdCBh IHBpcGUgYW5kIGZsb3cgQVBJIHJ1bGVzIGFyZSByZXF1aXJlZCwgd2h5IGlzIHBlZXIgaW5mb3Jt YXRpb24NCj4gPj4gcmVxdWlyZWQ/DQo+ID4+DQo+ID4gUlRFIGZsb3cgaXMgcmVxdWlyZWQsIGFu ZCB0aGUgcGVlciBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gY29ubmVjdA0KPiBi ZXR3ZWVuIHRoZSBSWCBxdWV1ZSB0byB0aGUNCj4gPiBUWCBxdWV1ZS4gRnJvbSBhcHBsaWNhdGlv biBpdCBzaW1wbHkgc2V0IGluZ3Jlc3MgUlRFIGZsb3cgcnVsZSB0aGF0IGhhcyBxdWV1ZQ0KPiBv ciBSU1MgYWN0aW9ucywNCj4gPiB3aXRoIHF1ZXVlcyB0aGF0IGFyZSBoYWlycGluIHF1ZXVlcy4N Cj4gPiBJdCBtYXkgYmUgcG9zc2libGUgdG8gaGF2ZSBvbmUgUlggY29ubmVjdGVkIHRvIG51bWJl ciBvZiBUWCBxdWV1ZXMgaW4gb3JkZXINCj4gdG8gZGlzdHJpYnV0ZSB0aGUgc2VuZGluZy4NCj4g DQo+IEl0IGxvb2tzIGxpa2UgSSBzdGFydCB0byB1bmRlcnN0YW5kLiBGaXJzdCwgUlRFIGZsb3cg ZG9lcyBpdHMgam9iIGFuZA0KPiByZWRpcmVjdHMgc29tZSBwYWNrZXRzIHRvIGhhaXJwaW4gUngg cXVldWUocykuIFRoZW4sIGNvbm5lY3Rpb24NCj4gb2YgaGFpcnBpbiBSeCBxdWV1ZXMgdG8gVHgg cXVldWVzIGRvZXMgaXRzIGpvYi4gV2hhdCBoYXBwZW5zIGlmDQo+IGFuIFJ4IHF1ZXVlIGlzIGNv bm5lY3RlZCB0byBtYW55IFR4IHF1ZXVlcz8gQXJlIHBhY2tldHMgZHVwbGljYXRlZD8NCj4gDQoN Cg0KWWVzIHlvdSBhcmUgY29ycmVjdCBpbiB5b3VyIHVuZGVyc3RhbmRpbmcuDQpSZWdhcmRpbmcg bnVtYmVyIG9mIFRYIHRvIGEgc2luZ2xlIFJ4IHF1ZXVlLCB0aGF0IGlzIGFuIGFuc3dlciBJIGNh bid0DQpnaXZlIHlvdSwgaXQgZGVwZW5kcyBvbiB0aGUgbmljLiBJdCBjb3VsZCBkdXBsaWNhdGUg b3IgaXQgY291bGQgUlNTIGl0Lg0KSW4gTWVsbGFub3ggd2UgY3VycmVudGx5IHN1cHBvcnQgb25s eSAxIHRvIDEgY29ubmVjdGlvbi4NCg0KPiA+Pj4gRHVyaW5nIHRoZSBkZXNpZ24gcGhhc2UgSSB3 YXMgdGhpbmtpbmcgb2YgdHdvIHdheXMgdG8gaW1wbGVtZW50IHRoaXMNCj4gPj4+IGZlYXR1cmUg dGhlIGZpcnN0IG9uZSBpcyBhZGRpbmcgYSBuZXcgcnRlIGZsb3cgYWN0aW9uLiBhbmQgdGhlIHNl Y29uZA0KPiA+Pj4gb25lIGlzIGNyZWF0ZSBhIHNwZWNpYWwga2luZCBvZiBxdWV1ZS4NCj4gPj4+ DQo+ID4+PiBUaGUgYWR2YW50YWdlcyBvZiB1c2luZyB0aGUgcXVldWUgYXBwcm9jaDoNCj4gPj4+ IDEuIE1vcmUgY29udHJvbCBmb3IgdGhlIGFwcGxpY2F0aW9uLiBxdWV1ZSBkZXB0aCAodGhlIG1l bW9yeSBzaXplIHRoYXQNCj4gPj4+IHNob3VsZCBiZSB1c2VkKS4NCj4gPj4gQnV0IGl0IGluaGVy aXRzIG1hbnkgcGFyYW1ldGVycyB3aGljaCBhcmUgbm90IHJlYWxseSBhcHBsaWNhYmxlIHRvIGhh aXJwaW4NCj4gPj4gcXVldWVzLiBJZiBhbGwgcGFyYW1ldGVycyBhcmUgYXBwbGljYWJsZSwgaXQg c2hvdWxkIGJlIGV4cGxhaW5lZCBpbiB0aGUNCj4gPj4gY29udGV4dCBvZiB0aGUgaGFpcnBpbiBx dWV1ZXMuDQo+ID4+DQo+ID4gTW9zdCBpZiBub3QgYWxsIHBhcmFtZXRlcnMgY2FuIGJlIGFwcGxp Y2FibGUgYWxzbyBmb3IgaGFpcnBpbiBxdWV1ZS4NCj4gPiBBbmQgdGhlIG9uZSB0aGF0IHdhc27i gJl0IGZvciBleGFtcGxlIG1lbXBvb2wgd2FzIHJlbW92ZWQuDQo+IA0KPiBJIHdvdWxkIHJlYWxs eSBsaWtlIHRvIHVuZGVyc3RhbmQgbWVhbmluZyBvZiBlYWNoIFJ4L1R4IHF1ZXVlDQo+IGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVyIGZvciBoYWlycGluIGNhc2UuIFNvLCBJIGhvcGUgdG8gc2VlIGl0 IGluIHRoZQ0KPiBkb2N1bWVudGF0aW9uLg0KPiANCg0KVGhvc2UgYXJlIGp1c3QgbGlrZSB0aGUg bm9ybWFsIHF1ZXVlLCBtYXliZSBzb21lIG5pY3MgbmVlZHMgdGhpcyBpbmZvcm1hdGlvbi4NCg0K PiA+Pj4gMi4gRW5hYmxlIFFvUy4gUW9TIGlzIG5vcm1hbHkgYSBwYXJhbWV0ciBvZiBxdWV1ZSwg c28gaW4gdGhpcyBhcHByb2NoIGl0DQo+ID4+PiB3aWxsIGJlIGVhc3kgdG8gaW50ZWdyYXRlIHdp dGggc3VjaCBzeXN0ZW0uDQo+ID4+IENvdWxkIHlvdSBlbGFib3JhdGUgaXQuDQo+ID4+DQo+ID4g SSB3aWxsIHRyeS4NCj4gPiBJZiB5b3UgYXJlIGFza2luZyBhYm91dCB1c2UgY2FzZXMsIHdlIGNh biBhc3N1bWUgYSBjbG91ZCBwcm92aWRlciB0aGF0IGhhcw0KPiBudW1iZXINCj4gPiBvZiBjdXN0 b21lcnMgZWFjaCB3aXRoIGRpZmZlcmVudCBiYW5kd2lkdGguIFdlIGNhbiBjb25maWd1cmUgYSBU eCBxdWV1ZQ0KPiB3aXRoIGhpZ2hlcg0KPiA+IHByaW9yaXR5IHdoaWNoIHdpbGwgcmVzdWx0IGlu IHRoYXQgdGhpcyBxdWV1ZSB3aWxsIGdldCBtb3JlIGJhbmR3aWR0aC4NCj4gPiBUaGlzIGlzIHRy dWUgYWxzbyBmb3IgaGFpcnBpbiBhbmQgbm9uLWhhaXJwaW4uDQo+ID4gV2UgYXJlIHdvcmtpbmcg b24gbW9yZSBkZXRhaWwgQVBJIGhvdyB0byB1c2UgaXQsIGJ1dCB0aGUgSFcgY2FuIHN1cHBvcnQg aXQuDQo+IA0KPiBPSywgYSBiaXQgYWJzdHJhY3Qgc3RpbGwsIGJ1dCBtYWtlcyBzZW5zZS4NCj4g DQrwn5iKIA0KPiA+Pj4gMy4gTmF0aXZlIGludGVncmVzc2lvbiB3aXRoIHRoZSBydGUgZmxvdyBB UEkuIEp1c3Qgc2V0dGluZyB0aGUgdGFyZ2V0DQo+ID4+PiBxdWV1ZS9yc3MgdG8gaGFpcnBpbiBx dWV1ZSwgd2lsbCByZXN1bHQgdGhhdCB0aGUgdHJhZmZpYyB3aWxsIGJlIHJvdXRlZA0KPiA+Pj4g dG8gdGhlIGhhaXJwaW4gcXVldWUuDQo+ID4+IEl0IHNvdW5kcyBsaWtlIHF1ZXVlcyBhcmUgbm90 IHJlcXVpcmVkIGZvciBmbG93IEFQSSBhdCBhbGwuDQo+ID4+IElmIHRoZSBnb2FsIGlzIHRvIHNl bmQgdHJhZmZpYyBvdXRzaWRlIHRvIHNwZWNpZmllZCBwaHlzaWNhbCBwb3J0LA0KPiA+PiBqdXN0 IHNwZWNpZnkgaXQgYXMgYW4gZmxvdyBBUEkgYWN0aW9uLiBUaGF0J3MgaXQuDQo+ID4+DQo+ID4g VGhpcyB3YXMgb25lIG9mIHRoZSBwb3NzaWJsZSBvcHRpb25zLCBidXQgbGlrZSBzdGF0ZWQgYWJv dmUgd2UgdGhpbmsgdGhhdCB0aGVyZQ0KPiBpcyBtb3JlIG1lYW5pbmcgdG8gbG9vaw0KPiA+IGF0 IGl0IGFzIGEgcXVldWUsIHdoaWNoIHdpbGwgZ2l2ZSB0aGUgYXBwbGljYXRpb24gYmV0dGVyIGNv bnRyb2wsIGZvciBleGFtcGxlDQo+IHNlbGVjdGluZyB3aGljaCBxdWV1ZXMNCj4gPiB0byBjb25u ZWN0IHRvIHdoaWNoIHF1ZXVlcy4gSWYgaXQgd291bGQgaGF2ZSBiZWVuIGRvbmUgYXMgUlRFIGZs b3cgYWN0aW9uDQo+IHRoZW4gdGhlIFBNRCB3aWxsIGNyZWF0ZSB0aGUgcXVldWVzIGFuZA0KPiA+ IGJpbmRpbmcgaW50ZXJuYWxseSBhbmQgdGhlIGFwcGxpY2F0aW9uIHdpbGwgbG9zZSBjb250cm9s Lg0KPiA+DQo+ID4+PiA0LiBFbmFibGUgcXVldWUgb2ZmbG9hZGluZy4NCj4gPj4gV2hpY2ggb2Zm bG9hZHMgYXJlIGFwcGxpY2FibGUgdG8gaGFpcnBpbiBxdWV1ZXM/DQo+ID4+DQo+ID4gVmxhbiBz dHJpcGluZyBmb3IgZXhhbXBsZSwgIGFuZCBhbGwgb2YgdGhlIHJ0ZSBmbG93IGFjdGlvbnMgdGhh dCB0YXJnZXRzIGENCj4gcXVldWUuDQo+IA0KPiBDYW4gaXQgYmUgZG9uZSB3aXRoIFZMQU5fUE9Q IGFjdGlvbiBhdCBSVEUgZmxvdyBsZXZlbD8NCj4gVGhlIHF1ZXN0aW9uIGlzIHdoeSB3ZSBuZWVk IGl0IGhlcmUgYXMgUnggcXVldWUgb2ZmbG9hZC4NCj4gV2hvIHdpbGwgZ2V0IGFuZCBwcm9jZXNz IHN0cmlwcGVkIFZMQU4/DQo+IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IGRvIHlvdSBtZWFuIGJ5 IHRoZSBydGUgZmxvdyBhY3Rpb25zIGhlcmUuDQo+IFNvcnJ5LCBidXQgSSBzdGlsbCB0aGluayB0 aGF0IG1hbnkgUnggYW5kIFR4IG9mZmxvYWRzIGFyZSBub3QgYXBwbGljYWJsZS4NCj4gDQoNCkkg YWdyZWUgd2l0aCB5b3UsIGZpcnN0IGFsbCBpbXBvcnRhbnQgYWN0aW9ucyBjYW4gYmUgZG9uZSB1 c2luZyBSVEUgZmxvdy4NCkJ1dCBtYXliZSBzb21lIG5pY3MgZG9uJ3QgdXNlIFJURSBmbG93cyB0 aGVuIGl0IGlzIGdvb2QgZm9yIHRoZW0uDQpUaGUgbW9zdCBpbXBvcnRhbnQgcmVhc29uIGlzIHRo YXQgSSB0aGluayB0aGF0IGluIGZ1dHVyZSB3ZSB3aWxsIGhhdmUgc2hhcmVkDQpvZmZsb2Fkcywg DQoNCj4gPj4+IEVhY2ggaGFpcnBpbiBSeHEgY2FuIGJlIGNvbm5lY3RlZCBUeHEgLyBudW1iZXIg b2YgVHhxcyB3aGljaCBjYW4gYmVsb25nDQo+IHRvDQo+ID4+IGENCj4gPj4+IGRpZmZlcmVudCBw b3J0cyBhc3N1bWluZyB0aGUgUE1EIHN1cHBvcnRzIGl0LiBUaGUgc2FtZSBnb2VzIHRoZSBvdGhl cg0KPiA+Pj4gd2F5IGVhY2ggaGFpcnBpbiBUeHEgY2FuIGJlIGNvbm5lY3RlZCB0byBvbmUgb3Ig bW9yZSBSeHFzLg0KPiA+Pj4gVGhpcyBpcyB0aGUgcmVhc29uIHRoYXQgYm90aCB0aGUgVHhxIHNl dHVwIGFuZCBSeHEgc2V0dXAgYXJlIGdldHRpbmcgdGhlDQo+ID4+PiBoYWlycGluIGNvbmZpZ3Vy YXRpb24gc3RydWN0dXJlLg0KPiA+Pj4NCj4gPj4+ICAgRnJvbSBQTUQgcHJlc3BjdGl2ZSB0aGUg bnVtYmVyIG9mIFJ4cS9UeHEgaXMgdGhlIHRvdGFsIG9mIHN0YW5kYXJkDQo+ID4+PiBxdWV1ZXMg KyBoYWlycGluIHF1ZXVlcy4NCj4gPj4+DQo+ID4+PiBUbyBjb25maWd1cmUgaGFpcnBpbiBxdWV1 ZSB0aGUgdXNlciBzaG91bGQgY2FsbA0KPiA+Pj4gcnRlX2V0aF9yeF9oYWlycGluX3F1ZXVlX3Nl dHVwIC8gcnRlX2V0aF90eF9oYWlycGluX3F1ZXVlX3NldHVwDQo+IGluc3RlZWQNCj4gPj4+IG9m IHRoZSBub3JtYWwgcXVldWUgc2V0dXAgZnVuY3Rpb25zLg0KPiA+Pj4NCj4gPj4+IFRoZSBoYWly cGluIHF1ZXVlcyBhcmUgbm90IHBhcnQgb2YgdGhlIG5vcm1hbCBSU1MgZnVuY3Rpb3NuLg0KPiA+ Pj4NCj4gPj4+IFRvIHVzZSB0aGUgcXVldWVzIHRoZSB1c2VyIHNpbXBseSBjcmVhdGUgYSBmbG93 IHRoYXQgcG9pbnRzIHRvIFJTUy9xdWV1ZQ0KPiA+Pj4gYWN0aW9ucyB0aGF0IGFyZSBoYWlycGlu IHF1ZXVlcy4NCj4gPj4+IFRoZSByZWFzb24gZm9yIHNlbGVjdGluZyAyIG5ldyBmdW5jdGlvbnMg Zm9yIGhhaXJwaW4gcXVldWUgc2V0dXAgYXJlOg0KPiA+Pj4gMS4gYXZvaWQgQVBJIGJyZWFrLg0K PiA+Pj4gMi4gYXZvaWQgZXh0cmEgYW5kIHVudXNlZCBwYXJhbWV0ZXJzLg0KPiA+Pj4NCj4gPj4+ DQo+ID4+PiBUaGlzIHNlcmllcyBtdXN0IGJlIGFwcGxpZWQgYWZ0ZXIgc2VyaWVzWzJdDQo+ID4+ Pg0KPiA+Pj4gWzFdDQo+ID4+DQo+IGh0dHBzOi8vZXVyMDMuc2FmZWxpbmtzLnByb3RlY3Rpb24u b3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmluYm94LmRwZA0KPiA+PiBrLm9yZyUyRmRl diUyRjE1NjU3MDM0NjgtNTU2MTctMS1naXQtc2VuZC1lbWFpbC0NCj4gPj4NCj4gb3Jpa2ElNDBt ZWxsYW5veC5jb20lMkYmYW1wO2RhdGE9MDIlN0MwMSU3Q29yaWthJTQwbWVsbGFub3guY29tJTcN Cj4gPj4NCj4gQzNmMzI2MDgyNDE4MzQ3Mjc3NjMyMDhkNzQyN2Q5Yjg1JTdDYTY1Mjk3MWM3ZDJl NGQ5YmE2YTRkMTQ5MjU2ZjQNCj4gPj4NCj4gNjFiJTdDMCU3QzAlN0M2MzcwNTA5Nzk1NjE5NjUx NzUmYW1wO3NkYXRhPU0lMkY5aGZReEVlWXgyM29IZVMNCj4gPj4gQVFsekptZVd0T3phTCUyRmhX Tm1DQzd1M0U5ZyUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+Pj4gWzJdDQo+ID4+DQo+IGh0dHBzOi8v ZXVyMDMuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUy RmluYm94LmRwZA0KPiA+PiBrLm9yZyUyRmRldiUyRjE1NjkzOTgwMTUtNjAyNy0xLWdpdC1zZW5k LWVtYWlsLQ0KPiA+Pg0KPiB2aWFjaGVzbGF2byU0MG1lbGxhbm94LmNvbSUyRiZhbXA7ZGF0YT0w MiU3QzAxJTdDb3Jpa2ElNDBtZWxsYW5veC4NCj4gPj4NCj4gY29tJTdDM2YzMjYwODI0MTgzNDcy Nzc2MzIwOGQ3NDI3ZDliODUlN0NhNjUyOTcxYzdkMmU0ZDliYTZhNGQxDQo+ID4+DQo+IDQ5MjU2 ZjQ2MWIlN0MwJTdDMCU3QzYzNzA1MDk3OTU2MTk2NTE3NSZhbXA7c2RhdGE9TVA4aFo4MVpPNmJy DQo+ID4+IFJvR2VVWTV2NCUyRk1JbEZBaHpBenJ5SDROVzBNbW5USSUzRCZhbXA7cmVzZXJ2ZWQ9 MA0KPiA+Pg0KPiA+PiBbc25pcF0NCj4gPiBUaGFua3MNCj4gPiBPcmkNCg0KVGhhbmtzLA0KT3Jp DQo=