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 E5A15A04B7; Mon, 21 Sep 2020 03:56:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7C4EF1DA0B; Mon, 21 Sep 2020 03:56:08 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 187CD1D5C6; Mon, 21 Sep 2020 03:56:05 +0200 (CEST) IronPort-SDR: hgOAYaJouEcU9bGobLYydBCpClhubMniEo51WP95Ob7HyvmNbIOTAF3zW82/V5JRH7Fa6Wb3DC cSEUraAg8Rdg== X-IronPort-AV: E=McAfee;i="6000,8403,9750"; a="160347865" X-IronPort-AV: E=Sophos;i="5.77,285,1596524400"; d="scan'208";a="160347865" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Sep 2020 18:56:03 -0700 IronPort-SDR: Le6V2N+gOhoW2Aw/lE+stxMJ56whR5vB7606AgrS1QwjLLhYfUIgCZRT+FGZDORZgEE4gSsrkc +8wup6eWT6sg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,285,1596524400"; d="scan'208";a="411877953" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga001.fm.intel.com with ESMTP; 20 Sep 2020 18:56:03 -0700 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) 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; Sun, 20 Sep 2020 18:56:02 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 21 Sep 2020 09:55:59 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Mon, 21 Sep 2020 09:55:59 +0800 From: "Jiang, JunyuX" To: "Yigit, Ferruh" , Igor Ryzhov CC: "dev@dpdk.org" , "Guo, Jia" , "Xing, Beilei" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [dpdk-stable] [PATCH v2] net/i40e: fix incorrect byte counters Thread-Index: AQHWi8+ECGrek6fgD06TYBYXpeMTcalqrJmAgAMMWND//+QygIAASDuAgAR3I0A= Date: Mon, 21 Sep 2020 01:55:59 +0000 Message-ID: <94aa88e605a4415e911201ed75c8b0e9@intel.com> References: <20200910015426.3140-1-junyux.jiang@intel.com> <20200916015105.39815-1-junyux.jiang@intel.com> <295e61ad-cbc5-3fbe-c996-c3f9a11b34d6@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH v2] net/i40e: fix incorrect byte counters 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" SGkgRmVycnVoLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEZlcnJ1 aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBTZXB0ZW1i ZXIgMTgsIDIwMjAgOTo0MiBQTQ0KPiBUbzogSWdvciBSeXpob3YgPGlyeXpob3ZAbmZ3YXJlLmNv bT47IEppYW5nLCBKdW55dVgNCj4gPGp1bnl1eC5qaWFuZ0BpbnRlbC5jb20+DQo+IENjOiBkZXZA ZHBkay5vcmc7IEd1bywgSmlhIDxqaWEuZ3VvQGludGVsLmNvbT47IFhpbmcsIEJlaWxlaQ0KPiA8 YmVpbGVpLnhpbmdAaW50ZWwuY29tPjsgc3RhYmxlQGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIFtkcGRrLXN0YWJsZV0gW1BBVENIIHYyXSBuZXQvaTQwZTogZml4IGluY29ycmVj dCBieXRlDQo+IGNvdW50ZXJzDQo+IA0KPiBPbiA5LzE4LzIwMjAgMTA6MjMgQU0sIElnb3IgUnl6 aG92IHdyb3RlOg0KPiA+IEhpLA0KPiA+DQo+ID4gWW91ciBjb2RlIHdpbGwgd29yayBvbmx5IGlm IHN0YXRzIGFyZSB1cGRhdGVkIGF0IGxlYXN0IG9uY2UgYmV0d2Vlbg0KPiA+IHR3byBvdmVyZmxv d3MuDQo+ICA+DQo+IA0KPiBJbiB0aGlzIGNhc2UgaXQgd2lsbCBoYXZlIHByb2JsZW1zIGluICdp NDBlX3N0YXRfdXBkYXRlXzQ4KCknIHRvby4NCj4gSXQgc2VlbXMgdGhlcmUgaXMgbm8gd2F5IHRv IGRldGVjdCBpZiB0aGUgaW5jcmVhc2UgaW4gc3RhdHMgaXMgTiBvciBNQVhfNDgrTg0KPiBieSB0 aGUgc29mdHdhcmUuDQo+IEFuZCBvYnZpb3VzbHkgdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVjdCBp ZiB0aGUgb3ZlcmZsb3cgb2NjdXJyZWQgbW9yZSB0aGFuDQo+IG9uY2UuDQo+IA0KPiA+IFNvIGl0 J3Mgc3RpbGwgdXAgdG8gdGhlIGFwcGxpY2F0aW9uIHRvIGhhbmRsZSB0aGlzIHByb3Blcmx5LiBJ IHRoaW5rDQo+ID4gaXQgc2hvdWxkIGJlIG1lbnRpb25lZCBpbiB0aGUgZG9jcy4NCj4gPg0KPiAN Cj4gKzEgdG8gZG9jdW1lbnQuDQo+IA0KSSB3aWxsIGZpeCBpbiBWMy4NCj4gPiBJZ29yDQo+ID4N Cj4gPiBPbiBGcmksIFNlcCAxOCwgMjAyMCBhdCA2OjQ1IEFNIEppYW5nLCBKdW55dVggPGp1bnl1 eC5qaWFuZ0BpbnRlbC5jb20NCj4gPiA8bWFpbHRvOmp1bnl1eC5qaWFuZ0BpbnRlbC5jb20+PiB3 cm90ZToNCj4gPg0KPiA+ICAgICBIaSBGZXJydWgsDQo+ID4NCj4gPiAgICAgID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiAgICAgID4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgu eWlnaXRAaW50ZWwuY29tDQo+ID4gICAgIDxtYWlsdG86ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4+ DQo+ID4gICAgICA+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDE2LCAyMDIwIDg6MzEgUE0N Cj4gPiAgICAgID4gVG86IEppYW5nLCBKdW55dVggPGp1bnl1eC5qaWFuZ0BpbnRlbC5jb20NCj4g PiAgICAgPG1haWx0bzpqdW55dXguamlhbmdAaW50ZWwuY29tPj47IGRldkBkcGRrLm9yZw0KPiA8 bWFpbHRvOmRldkBkcGRrLm9yZz4NCj4gPiAgICAgID4gQ2M6IEd1bywgSmlhIDxqaWEuZ3VvQGlu dGVsLmNvbSA8bWFpbHRvOmppYS5ndW9AaW50ZWwuY29tPj47DQo+ID4gICAgIFhpbmcsIEJlaWxl aSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tIDxtYWlsdG86YmVpbGVpLnhpbmdAaW50ZWwuY29tPj47 DQo+ID4gICAgICA+IHN0YWJsZUBkcGRrLm9yZyA8bWFpbHRvOnN0YWJsZUBkcGRrLm9yZz4NCj4g PiAgICAgID4gU3ViamVjdDogUmU6IFtkcGRrLXN0YWJsZV0gW1BBVENIIHYyXSBuZXQvaTQwZTog Zml4IGluY29ycmVjdA0KPiA+ICAgICBieXRlIGNvdW50ZXJzDQo+ID4gICAgICA+DQo+ID4gICAg ICA+IE9uIDkvMTYvMjAyMCAyOjUxIEFNLCBKdW55dSBKaWFuZyB3cm90ZToNCj4gPiAgICAgID4g PiBUaGlzIHBhdGNoIGZpeGVkIHRoZSBpc3N1ZSB0aGF0IHJ4L3R4IGJ5dGVzIG92ZXJmbG93ZWQN Cj4gPiAgICAgID4NCj4gPiAgICAgID4gIlJ4L1R4IHN0YXRpc3RpY3MgY291bnRlcnMgb3ZlcmZs b3dlZCI/DQo+ID4gICAgICA+DQo+ID4gICAgIFllcywgdGhlIHJ4X2J5dGVzIGFuZCB0eF9ieXRl cyBjb3VudGVyIGluIFg3MTAgY2FyZHMgaXMgNDgtYml0IGxvbmcsDQo+ID4gICAgIGlmIGtlZXAg c2VuZGluZyBwYWNrZXRzIGZvciBhIGxvZyB0aW1lLCB0aGUgcmVnaXN0ZXIgd2lsbCBvdmVyZmxv dy4NCj4gPg0KPiA+ICAgICAgPiA+IG9uIDQ4IGJpdCBsaW1pdGF0aW9uIGJ5IGVubGFyZ2luZyB0 aGUgbGltaXRhdGlvbi4NCj4gPiAgICAgID4gPg0KPiA+ICAgICAgPiA+IEZpeGVzOiA0ODYxY2Rl NDYxMTYgKCJpNDBlOiBuZXcgcG9sbCBtb2RlIGRyaXZlciIpDQo+ID4gICAgICA+ID4gQ2M6IHN0 YWJsZUBkcGRrLm9yZyA8bWFpbHRvOnN0YWJsZUBkcGRrLm9yZz4NCj4gPiAgICAgID4gPg0KPiA+ ICAgICAgPiA+IFNpZ25lZC1vZmYtYnk6IEp1bnl1IEppYW5nIDxqdW55dXguamlhbmdAaW50ZWwu Y29tDQo+ID4gICAgIDxtYWlsdG86anVueXV4LmppYW5nQGludGVsLmNvbT4+DQo+ID4gICAgICA+ ID4gLS0tDQo+ID4gICAgICA+ID7CoCDCoGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYyB8 IDQ3DQo+ID4gICAgICA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAg ICAgID4gPsKgIMKgZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oIHzCoCA5ICsrKysrKysN Cj4gPiAgICAgID4gPsKgIMKgMiBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspDQo+ID4g ICAgICA+ID4NCj4gPiAgICAgID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jDQo+ID4gICAgICA+ID4gYi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMg aW5kZXggNTYzZjIxZDlkLi40ZDRlYTk4NjENCj4gMTAwNjQ0DQo+ID4gICAgICA+ID4gLS0tIGEv ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jDQo+ID4gICAgICA+ID4gKysrIGIvZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jDQo+ID4gICAgICA+ID4gQEAgLTMwNzMsNiArMzA3Mywx MyBAQCBpNDBlX3VwZGF0ZV92c2lfc3RhdHMoc3RydWN0IGk0MGVfdnNpICp2c2kpDQo+ID4gICAg ICA+ID7CoCDCoCDCoGk0MGVfc3RhdF91cGRhdGVfNDgoaHcsIEk0MEVfR0xWX0JQUkNIKGlkeCks DQo+ID4gICAgICA+IEk0MEVfR0xWX0JQUkNMKGlkeCksDQo+ID4gICAgICA+ID7CoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHZzaS0+b2Zmc2V0X2xvYWRlZCwgJm9lcy0+cnhf YnJvYWRjYXN0LA0KPiA+ICAgICAgPiA+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAmbmVzLT5yeF9icm9hZGNhc3QpOw0KPiA+ICAgICAgPiA+ICvCoCDCoC8qIGVubGFyZ2Ug dGhlIGxpbWl0YXRpb24gd2hlbiByeF9ieXRlcyBvdmVyZmxvd2VkICovDQo+ID4gICAgICA+ID4g K8KgIMKgaWYgKHZzaS0+b2Zmc2V0X2xvYWRlZCkgew0KPiA+ICAgICAgPiA+ICvCoCDCoCDCoCDC oCDCoCDCoGlmIChJNDBFX1JYVFhfQllURVNfTE9XKHZzaS0+b2xkX3J4X2J5dGVzKSA+IG5lcy0N Cj4gPiAgICAgID4gPnJ4X2J5dGVzKQ0KPiA+ICAgICAgPiA+ICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoG5lcy0+cnhfYnl0ZXMgKz0gKHVpbnQ2NF90KTEgPDwNCj4gPiAgICAgSTQwRV80 OF9CSVRfV0lEVEg7DQo+ID4gICAgICA+ID4gK8KgIMKgIMKgIMKgIMKgIMKgbmVzLT5yeF9ieXRl cyArPSBJNDBFX1JYVFhfQllURVNfSElHSCh2c2ktDQo+ID4gICAgICA+ID5vbGRfcnhfYnl0ZXMp Ow0KPiA+ICAgICAgPiA+ICvCoCDCoH0NCj4gPiAgICAgID4gPiArwqAgwqB2c2ktPm9sZF9yeF9i eXRlcyA9IG5lcy0+cnhfYnl0ZXM7DQo+ID4gICAgICA+DQo+ID4gICAgICA+DQo+ID4gICAgICA+ IENhbiB5b3UgcGxlYXNlIGRlc2NyaWJlIHRoaXMgbG9naWM/IChpbmRlZWQgYmV0dGVyIHRvIGRl c2NyaWJlIGl0DQo+ID4gICAgIGluIHRoZQ0KPiA+ICAgICAgPiBjb21taXQgbG9nKQ0KPiA+ICAg ICAgPg0KPiA+ICAgICAgPiAnbmVzLT5yeF9ieXRlcycgaXMgZGlmZiBpbiB0aGUgc3RhdHMgcmVn aXN0ZXIgc2luY2UgbGFzdCByZWFkLg0KPiA+ICAgICAgPiAnb2xkX3J4X2J5dGVzJyBpcyB0aGUg cHJldmlvdXMgc3RhdHMgZGlmZi4NCj4gPiAgICAgID4NCj4gPiAgICAgID4gV2h5L2hvdyAiSTQw RV9SWFRYX0JZVEVTX0xPVyh2c2ktPm9sZF9yeF9ieXRlcykgPiBuZXMtDQo+ID5yeF9ieXRlcyIg aGFzDQo+ID4gICAgICA+IGEgbWVhbmluZz8gSXNuJ3QgdGhpcyB2ZXJ5IGRlcGVuZHMgb24gdGhl IHJlYWQgZnJlcXVlbmN5Pw0KPiA+ICAgICAgPg0KPiA+ICAgICAgPiBJIGd1ZXNzIEkgYW0gbWlz c2luZyBzb21ldGhpbmcgYnV0IHBsZWFzZSBoZWxwIG1lIHVuZGVyc3RhbmQuDQo+ID4gICAgICA+ DQo+ID4gICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGlzc3VlIG9mIHJ4L3R4IGJ5dGVzIGNvdW50 ZXIgcmVnaXN0ZXIgb3ZlcmZsb3c6DQo+ID4gICAgIFRoZSBjb3VudGVyIHJlZ2lzdGVyIGluIGk0 MGUgaXMgNDgtYml0IGxvbmcsIHdoZW4gb3ZlcmZsb3csDQo+ID4gICAgIG5lcy0+cnhfYnl0ZXMg YmVjb21lcyBsZXNzIHRoYW4gb2xkX3J4X2J5dGVzLCB0aGUgY29ycmVjdCB2YWx1ZSBvZg0KPiA+ ICAgICBuZXMtPnJ4X2J5dGVzIHNob3VsZCBiZSBwbHVzZWQgMSA8PCA0OC4NCj4gPiAgICAgVXNl IEk0MEVfUlhUWF9CWVRFU19ISUdIKCkgdG8gcmVtZW1iZXIgdGhlIE1TQiwgbmVzLT5yeF9ieXRl cw0KPiBwbHVzDQo+ID4gICAgIHRoZSBNU0IgaXMgdGhlIGNvcnJlY3QgdmFsdWUsIFNvIHRoYXQg dXNpbmcgdWludDY0X3QgdG8gZW5sYXJnZSB0aGUNCj4gPiAgICAgNDggYml0wqAgbGltaXRhdGlv biBvZiByZWdpc3RlciAuDQo+ID4NCj4gPiAgICAgID4gQWxzbyBjYW4geW91IHBsZWFzZSBjb25m aXJtIHRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZQ0KPiA+ICAgICAidnNpLT5vZmZzZXRfbG9hZGVk IiBpcw0KPiA+ICAgICAgPiBjb3JyZWN0Lg0KPiA+ICAgICAgPg0KPiA+ICAgICBvZmZzZXRfbG9h ZGVkIHdpbGwgYmUgdHJ1ZSB3aGVuIGdldCBzdGF0aXN0aWNzIG9mwqAgcG9ydCBhbmQNCj4gPiAg ICAgb2Zmc2V0X2xvYWRlZCB3aWxsIGJlIGZhbHNlIHdoZW4gcmVzZXQgb3IgY2xlYXIgdGhlIHN0 YXRpc3RpY3MsDQo+ID4gICAgIHNvIGlmwqAgb2Zmc2V0X2xvYWRlZCBpcyBmYWxzZSwgc2hvdWxk bid0IHRvIGNhbGN1bGF0ZSB0aGUgdmFsdWUgb2YNCj4gPiAgICAgbmVzLT5yeF9ieXRlcywgaXQg d2lsbCBiZSAwLg0KPiA+DQo+ID4gICAgICA+IDwuLi4uPg0KPiA+ICAgICAgPg0KPiA+ICAgICAg PiA+IEBAIC0yODIsNiArMjgyLDkgQEAgc3RydWN0IHJ0ZV9mbG93IHsNCj4gPiAgICAgID4gPsKg IMKgI2RlZmluZSBJNDBFX0VUSF9PVkVSSEVBRCBcDQo+ID4gICAgICA+ID7CoCDCoCDCoChSVEVf RVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOICsNCj4gPiAgICAgID4gSTQwRV9WTEFO X1RBR19TSVpFICogMikNCj4gPiAgICAgID4gPg0KPiA+ICAgICAgPiA+ICsjZGVmaW5lIEk0MEVf UlhUWF9CWVRFU19ISUdIKGJ5dGVzKSAoKGJ5dGVzKSAmDQo+IH5JNDBFXzQ4X0JJVF9NQVNLKQ0K PiA+ICAgICAgPiA+ICsjZGVmaW5lIEk0MEVfUlhUWF9CWVRFU19MT1coYnl0ZXMpICgoYnl0ZXMp ICYNCj4gSTQwRV80OF9CSVRfTUFTSykNCj4gPiAgICAgID4gPiArDQo+ID4gICAgICA+DQo+ID4g ICAgICA+IEhJR0gvTE9XIGlzIGEgbGl0dGxlIG1pc2xlYWRpbmcsIGZvciA2NEJpdHMgaXQgc291 bmRzIGxpa2UgaXQgaXMNCj4gPiAgICAgZ2V0dGluZyBsb3cgMzIgYml0cw0KPiA+ICAgICAgPiBh bmQgaGlnaCAzMiBiaXRzLCBjYW4geW91IHBsZWFzZSBjbGFyaWZ5IG1hY3JvIG1hc2tzIG91dA0K PiA+ICAgICAgPiA0OC8xNiBiaXRzLg0KPiA+ICAgICAgPg0KPiA+ICAgICBZZXMsIEkgd2lsbCBj aGFuZ2UgdGhlIG1hY3JvIG5hbWUgaW4gVjMuDQo+ID4gICAgICA+DQo+ID4gICAgICA+ID7CoCDC oHN0cnVjdCBpNDBlX2FkYXB0ZXI7DQo+ID4gICAgICA+ID7CoCDCoHN0cnVjdCBydGVfcGNpX2Ry aXZlcjsNCj4gPiAgICAgID4gPg0KPiA+ICAgICAgPiA+IEBAIC0zOTksNiArNDAyLDggQEAgc3Ry dWN0IGk0MGVfdnNpIHsNCj4gPiAgICAgID4gPsKgIMKgIMKgdWludDhfdCB2bGFuX2FudGlfc3Bv b2Zfb247IC8qIFRoZSBWTEFOIGFudGktc3Bvb2ZpbmcNCj4gPiAgICAgZW5hYmxlZCAqLw0KPiA+ ICAgICAgPiA+wqAgwqAgwqB1aW50OF90IHZsYW5fZmlsdGVyX29uOyAvKiBUaGUgVkxBTiBmaWx0 ZXIgZW5hYmxlZCAqLw0KPiA+ICAgICAgPiA+wqAgwqAgwqBzdHJ1Y3QgaTQwZV9id19pbmZvIGJ3 X2luZm87IC8qIFZTSSBiYW5kd2lkdGggaW5mb3JtYXRpb24gKi8NCj4gPiAgICAgID4gPiArwqAg wqB1aW50NjRfdCBvbGRfcnhfYnl0ZXM7DQo+ID4gICAgICA+ID4gK8KgIMKgdWludDY0X3Qgb2xk X3R4X2J5dGVzOw0KPiA+ICAgICAgPg0KPiA+ICAgICAgPiAncHJldicgc2VlbXMgYmV0dGVyIG5h bWluZyB0aGFuICdvbGQnLCB3aGF0IGRvIHlvdSB0aGluayByZW5hbWluZw0KPiA+ICAgICAgPiAn b2xkX3J4X2J5dGVzJyAtPiAncHJldl9yeF9ieXRlcycgKGZvciBhbGwgdmFyaWFibGVzKT8NCj4g PiAgICAgWWVzLCBpdCdzIGJldHRlciwgSSB3aWxsIGZpeCBpdCBpbiBWMy4NCj4gPg0KDQo=