From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 646B1160 for ; Fri, 29 Sep 2017 13:30:22 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Sep 2017 04:30:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,452,1500966000"; d="scan'208";a="1019799632" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga003.jf.intel.com with ESMTP; 29 Sep 2017 04:30:21 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 29 Sep 2017 04:30:20 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 29 Sep 2017 04:30:19 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.159]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.93]) with mapi id 14.03.0319.002; Fri, 29 Sep 2017 19:30:17 +0800 From: "Xing, Beilei" To: Sean Harte CC: "Wu, Jingjing" , "Chilikin, Andrey" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v6 6/8] net/i40e: add FDIR support for GTP-C and GTP-U Thread-Index: AQHTOPscyfmRrZqqukKHZJYeoh9j0KLLj7BQ//+OZYCAAJV/YA== Date: Fri, 29 Sep 2017 11:30:17 +0000 Message-ID: <94479800C636CB44BD422CB454846E0132038F26@SHSMSX101.ccr.corp.intel.com> References: <1506565054-67690-1-git-send-email-beilei.xing@intel.com> <1506662342-18966-1-git-send-email-beilei.xing@intel.com> <1506662342-18966-7-git-send-email-beilei.xing@intel.com> <94479800C636CB44BD422CB454846E0132038E8C@SHSMSX101.ccr.corp.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.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v6 6/8] net/i40e: add FDIR support for GTP-C and GTP-U 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: , X-List-Received-Date: Fri, 29 Sep 2017 11:30:23 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU2VhbiBIYXJ0ZSBbbWFp bHRvOnNlYW5iaEBnbWFpbC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDI5LCAyMDE3 IDY6MTAgUE0NCj4gVG86IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiBD YzogV3UsIEppbmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5jb20+OyBDaGlsaWtpbiwgQW5kcmV5 DQo+IDxhbmRyZXkuY2hpbGlraW5AaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6 IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2NiA2LzhdIG5ldC9pNDBlOiBhZGQgRkRJUiBzdXBwb3J0 IGZvciBHVFAtQw0KPiBhbmQgR1RQLVUNCj4gDQo+IE9uIDI5IFNlcHRlbWJlciAyMDE3IGF0IDEw OjMzLCBYaW5nLCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT4gd3JvdGU6DQo+ID4NCj4g Pg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBTZWFuIEhhcnRl IFttYWlsdG86c2VhbmJoQGdtYWlsLmNvbV0NCj4gPj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIg MjksIDIwMTcgNDoxNSBQTQ0KPiA+PiBUbzogWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRl bC5jb20+DQo+ID4+IENjOiBXdSwgSmluZ2ppbmcgPGppbmdqaW5nLnd1QGludGVsLmNvbT47IENo aWxpa2luLCBBbmRyZXkNCj4gPj4gPGFuZHJleS5jaGlsaWtpbkBpbnRlbC5jb20+OyBkZXZAZHBk ay5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY2IDYvOF0gbmV0L2k0 MGU6IGFkZCBGRElSIHN1cHBvcnQgZm9yDQo+ID4+IEdUUC1DIGFuZCBHVFAtVQ0KPiA+Pg0KPiA+ PiBPbiAyOSBTZXB0ZW1iZXIgMjAxNyBhdCAwNjoxOSwgQmVpbGVpIFhpbmcgPGJlaWxlaS54aW5n QGludGVsLmNvbT4gd3JvdGU6DQo+ID4+ID4gVGhpcyBwYXRjaCBhZGRzIEZESVIgc3VwcG9ydCBm b3IgR1RQLUMgYW5kIEdUUC1VLiBUaGUgaW5wdXQgc2V0IG9mDQo+ID4+ID4gR1RQLUMgYW5kIEdU UC1VIGlzIFRFSUQuDQo+ID4+ID4NCj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBCZWlsZWkgWGluZyA8 YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiA+PiA+IC0tLQ0KPiA+PiA+ICBkcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmggfCAgMzAgKysrKysNCj4gPj4gPiAgZHJpdmVycy9uZXQvaTQwZS9p NDBlX2ZkaXIuYyAgIHwgMjAwICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0NCj4gPj4g PiAgZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYyAgIHwgMjYzDQo+ID4+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+ID4+ID4gIDMgZmlsZXMgY2hhbmdlZCwg Mzk2IGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQ0KPiA+Pg0KPiA+PiA8c25pcD4NCj4g Pj4NCj4gPj4gPiBAQCAtMTE3MywxMCArMTE5Niw2OSBAQCBpNDBlX2Zsb3dfZmRpcl9jb25zdHJ1 Y3RfcGt0KHN0cnVjdCBpNDBlX3BmDQo+ID4+ICpwZiwNCj4gPj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJ0ZV9jcHVfdG9fYmVfMTYoRVRIRVJfVFlQRV9BUlApKQ0KPiA+PiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQgKz0gc2l6ZW9mKHN0cnVjdCBhcnBfaGRy KTsNCj4gPj4gPiAgICAgICAgICAgICAgICAgc2V0X2lkeCA9IEk0MEVfRkxYUExEX0wyX0lEWDsN Cj4gPj4gPiAtICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ID4gLSAgICAgICBkZWZhdWx0Og0K PiA+PiA+IC0gICAgICAgICAgICAgICBQTURfRFJWX0xPRyhFUlIsICJ1bmtub3duIHBjdHlwZSAl dS4iLCBmZGlyX2lucHV0LQ0KPiA+cGN0eXBlKTsNCj4gPj4gPiAtICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7DQo+ID4+ID4gKyAgICAgICB9IGVsc2UgaWYgKGZkaXJfaW5wdXQtPmZsb3df ZXh0LmN1c3RvbWl6ZWRfcGN0eXBlKSB7DQo+ID4+ID4gKyAgICAgICAgICAgICAgIC8qIElmIGN1 c3RvbWl6ZWQgcGN0eXBlIGlzIHVzZWQgKi8NCj4gPj4gPiArICAgICAgICAgICAgICAgY3VzX3Bj dHlwZSA9IGk0MGVfZmxvd19mZGlyX2ZpbmRfY3VzdG9taXplZF9wY3R5cGUocGYsDQo+IHBjdHlw ZSk7DQo+ID4+ID4gKyAgICAgICAgICAgICAgIGlmIChjdXNfcGN0eXBlLT5pbmRleCA9PSBJNDBF X0NVU1RPTUlaRURfR1RQQyB8fA0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgY3VzX3BjdHlw ZS0+aW5kZXggPT0gSTQwRV9DVVNUT01JWkVEX0dUUFVfSVBWNCB8fA0KPiA+PiA+ICsgICAgICAg ICAgICAgICAgICAgY3VzX3BjdHlwZS0+aW5kZXggPT0gSTQwRV9DVVNUT01JWkVEX0dUUFVfSVBW NiB8fA0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgY3VzX3BjdHlwZS0+aW5kZXggPT0gSTQw RV9DVVNUT01JWkVEX0dUUFUpIHsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICB1ZHAg PSAoc3RydWN0IHVkcF9oZHIgKikocmF3X3BrdCArIGxlbik7DQo+ID4+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgdWRwLT5kZ3JhbV9sZW4gPQ0KPiA+PiA+ICsNCj4gPj4gPiArIHJ0ZV9jcHVf dG9fYmVfMTYoSTQwRV9GRElSX1VEUF9ERUZBVUxUX0xFTik7DQo+ID4+ID4gKw0KPiA+PiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGd0cCA9IChzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ndHAgKikN Cj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgY2hhciAq KXVkcCArIHNpemVvZihzdHJ1Y3QgdWRwX2hkcikpOw0KPiA+PiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGd0cC0+dl9wdF9yc3ZfZmxhZ3MgPSAweDMwOw0KPiA+Pg0KPiA+PiAweDMwIGlzbid0 IHZhbGlkIGZvciBHVFAtQywgdGhlIHNlcXVlbmNlIG51bWJlciBtdXN0IGJlIHByZXNlbnQgaW4N Cj4gPj4gR1RQLUMgc28gaXQgd2lsbCBiZSAweDMyIG9yIG1vcmUuIElzIHRoaXMgYnl0ZSBhY3R1 YWxseSBtYXRjaGVkDQo+ID4+IGFnYWluc3QgYnkgdGhlIGRldmljZSB1c2luZyB0aGUgR1RQIHBj dHlwZXM/DQo+ID4NCj4gPiBXZSBjb25zdHJ1Y3QgcGFja2V0cyBhbmQgc2VuZCB0aGUgcGFja2V0 IHRvIEhXICB0byBjcmVhdGUgZmxvdw0KPiA+IGRpcmVjdG9yIHJ1bGUgZm9yIEdUUC1DIGFuZCBH VFAtVS4gQWN0dWFsbHkgSSBkaWRu4oCZdCBnZXQgZXJyb3IgaW5mbw0KPiA+IHdpdGggMHgzMC4g QW5kIGluIG15IHRlc3QsIEdUUC1DIHBhY2tldHMgY2FuIGhpdCAgR1RQLUMgcGN0eXBlIHJ1bGUu IFdpbGwgdHJ5DQo+IDB4MzIgbGF0ZXIuDQo+ID4NCj4gPj4NCj4gPj4gPiArICAgICAgICAgICAg ICAgICAgICAgICBndHAtPm1zZ19sZW4gPQ0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcnRlX2NwdV90b19iZV8xNihJNDBFX0ZESVJfR1RQX0RFRkFVTFRfTEVOKTsNCj4g Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICBndHAtPnRlaWQgPSBmZGlyX2lucHV0LT5mbG93 Lmd0cF9mbG93LnRlaWQ7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ3RwLT5tc2df dHlwZSA9IDB4MTsNCj4gPj4NCj4gPj4gV2h5IHVzZSB0aGlzIHZhbHVlPw0KPiA+DQo+ID4gSnVz dCBmb3IgY29uc3RydWN0aW5nIGEgR1RQIHBhY2tldCB0byBjcmVhdGUgYSBmZGlyIHJ1bGUgZm9y IG9uZSBwY3R5cGUsIGNhbg0KPiB1c2Ugb3RoZXIgdmFsdWVzIGV4Y2VwdCAweEZGLg0KPiA+DQo+ ID4+DQo+ID4+ID4gKw0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXNfcGN0 eXBlLT5pbmRleCA9PSBJNDBFX0NVU1RPTUlaRURfR1RQQykNCj4gPj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVkcC0+ZHN0X3BvcnQgPQ0KPiA+PiA+ICsgcnRlX2NwdV90b19i ZV8xNigyMTIzKTsNCj4gPj4NCj4gPj4gVGhpcyB3aWxsIG9ubHkgbWF0Y2ggaGFsZiBvZiBHVFAt QyBtZXNzYWdlcy4gR1RQLUMgbWVzc2FnZXMgaGF2ZSBhDQo+ID4+IFVEUCBwb3J0IGRlc3RpbmF0 aW9uIG9mIDIxMjMsIG9yIGEgVURQIHNvdXJjZSBwb3J0IG9mIDIxMjMuIFRvIG1hdGNoDQo+ID4+ IGFsbCBHVFAtQyBwYWNrZXRzIHlvdSBuZWVkIHRvIGxvb2sgYXQgYm90aC4NCj4gPg0KPiA+IFll cy4gQnV0IHRoZSBHVFAgcHJvZmlsZSBmb3IgaTQwZSBkaWRuJ3Qgc3VwcG9ydCByZXNwb25zZSBt ZXNzYWdlLg0KPiANCj4gVGhhdCdzIG5vdCBjbGVhciB0byBhIHVzZXIgb2YgdGhlIHJ0ZV9mbG93 IEFQSQ0KDQpSdGVfZmxvdyBpcyBhIGdlbmVyaWMgQVBJLCBJIHRoaW5rIGl0IHNob3VsZCBhbGxv dyB1c2VycyB0byBjcmVhdGUgcnVsZSBmb3IgcmVzcG9uc2UgbWVzc2FnZS4NCkJ1dCBpNDBlIFBN RCBkb2VzIG5vdCB0aGUgc3VwcG9ydCByZXNwb25zZSBtZXNzYWdlLCBpZiB1c2VyIHdhbnQgdG8g Y3JlYXRlIGEgcnVsZSBmb3IgaTQwZSBsaWtlIGJlbG93Og0KRmxvdyBjcmVhdGUgMCBpbmdyZXNz IHBhdHRlcm4gZXRoIC8gaXB2NCAvIHVkcCBzcmMgaXMgMjEyMyAvIGd0cGMgLyBlbmQgLyBhY3Rp b25zIHF1ZXVlIGluZGV4IDQgLyBlbmQNCkl0IHdpbGwgZmFpbC4gQnV0IG1heWJlIG90aGVyIFBN RCBjYW4gc3VwcG9ydCBpdC4NCg0KPiANCj4gPg0KPiA+Pg0KPiA+PiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIGVsc2UNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVk cC0+ZHN0X3BvcnQgPQ0KPiA+PiA+ICsgcnRlX2NwdV90b19iZV8xNigyMTUyKTsNCj4gPj4gPiAr DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1c19wY3R5cGUtPmluZGV4ID09 IEk0MEVfQ1VTVE9NSVpFRF9HVFBVX0lQVjQpIHsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGd0cC0+bXNnX3R5cGUgPSAweEZGOw0KPiA+PiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ3RwX2lwdjQgPSAoc3RydWN0IGlwdjRfaGRyICopDQo+ID4+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgY2hhciAq KWd0cCArDQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2Yoc3RydWN0DQo+ID4+ID4gKyBydGVfZmxvd19pdGVtX2d0cCkpOw0KPiA+Pg0KPiA+PiBU aGlzIGlzIG9ubHkgdmFsaWQgaWYgdl9wdF9yc3ZfZmxhZ3MgaXMgMHgzMC4gR1RQLVUgcGFja2V0 cyBhcmUNCj4gPj4gYWxsb3dlZCB0byBoYXZlIGEgc2VxdWVuY2UgbnVtYmVyLCB3aGljaCBhZGRz IGFuIGV4dHJhIDQgYnl0ZXMgdG8gdGhlDQo+IEdUUCBoZWFkZXIuDQo+ID4NCj4gPiBGb3IgdGhl IEdUUCBwcm9maWxlLCB0aGVyZSdyZSA0IHBjdHlwZXMgZm9yIEdUUCBwYWNrZXRzOiBHVFBDLCBH VFBVLA0KPiBHVFBJUFY0LCBhbmQgR1RQSVBWNi4NCj4gPiBIVyBwYXJzZSB3aGljaCBwY3R5cGUg dGhlIEdUUCBwYWNrZXRzIGJlbG9uZ2UgdG8uDQo+ID4gV2UgY29uc3RydWN0IHBhY2tldCB0byBj cmVhdGUgYSBmZGlyIHJ1bGUgZm9yIG9uZSBwY3R5cGUsIGFmdGVyIHRoYXQsDQo+ID4gYWxsIHBh Y2tldHMgd2hvc2UgcGN0eXBlIG1hdGNoZXMgdGhlIHJ1bGUncyBwY3R5cGUgd2lsbCBoaXQgdGhl IHJ1bGUuDQo+IA0KPiBNeSBwb2ludCBpcyB0aGF0IHlvdSBjYW4gb25seSBhc3N1bWUgdGhlIGlu bmVyIElQIGhlYWRlciBzdGFydHMgYXQgYW4gb2Zmc2V0DQo+IG9mIHNpemVvZihzdHJ1Y3QgcnRl X2Zsb3dfaXRlbV9ndHApIGlmIHZfcHRfcnN2X2ZsYWdzIGlzIGV4YWN0bHkgMHgzMC4gSWYgeW91 DQo+IG1hdGNoIG9ubHkgdGhvc2UgcGFja2V0cyB0aGVuIHNvbWUgR1RQLVUgcGFja2V0cyB3aWxs IG5vdCBiZSBtYXRjaGVkLg0KPiBUaGF0IHNob3VsZCBiZSBjbGVhciB0byBhIHVzZXIgb2YgdGhl IHJ0ZV9mbG93IEFQSS4NCj4gDQoNCk5vIG1hdHRlciBpZiAgR1RQLVUgcGFja2V0cyBoYXMgYSBz ZXF1ZW5jZSBudW1iZXIsIG9uY2UgbWVzc2FnZS10eXBlIGlzIDB4RkYsIHRoZSBwY3R5cGUNCm9m IHRoZSBwYWNrZXQgcGFyc2VkIGJ5IGk0MGUgSFcgd2lsbCBiZSBHVFBJUFY0IG9yIEdUUElQVjYu IA0KU28gSWYgSSBjcmVhdGUgYSBmbG93IHJ1bGUgZm9yIEdUUC1VIHBhY2tldHMgd2l0aCB2X3B0 X3Jzdl9mbGFncyAweDMwIGFuZCBtZXNzYWdlX3R5cGUgaXMgMHhGRiwNCml0IG1lYW5zIEkgY3Jl YXRlIGEgcnVsZSBmb3IgcGN0eXBlIEdUUElQVjQgb3IgR1RQSVBWNi4NClRoZW4gR1RQLVUgcGFj a2V0cyB3aXRoIHZfcHRfcnN2X2ZsYWdzIDB4MzIgY2FuIGhpdCB0aGUgcnVsZSBiZWNhdXNlIGl0 cyBwY3R5cGUgaXMgYWxzbyBHVFBJUFY0DQpvciBHVFBJUFY2Lg0KSXQncyBqdXN0IGk0MGUgSFcn cyBiZWhhdmlvciwgZG9lc24ndCBtZWFuIGl0J3MgZWZmZWN0aXZlIGZvciBvdGhlciBOSUNzLg0K SG9wZSBJIGV4cGxhaW4gaXQgY2xlYXJseTopDQoNCj4gPg0KPiA+Pg0KPiA+PiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ3RwX2lwdjQtPnZlcnNpb25faWhsID0NCj4gPj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTQwRV9GRElSX0lQX0RFRkFV TFRfVkVSU0lPTl9JSEw7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dHBfaXB2NC0+bmV4dF9wcm90b19pZCA9IElQUFJPVE9fSVA7DQo+ID4+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBndHBfaXB2NC0+dG90YWxfbGVuZ3RoID0NCj4gPj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2NwdV90b19iZV8xNigNCj4g Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJNDBF X0ZESVJfSU5ORVJfSVBfREVGQVVMVF9MRU4pOw0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGF5bG9hZCA9ICh1bnNpZ25lZCBjaGFyICopZ3RwX2lwdjQgKw0KPiA+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGlw djRfaGRyKTsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1c19w Y3R5cGUtPmluZGV4ID09DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJNDBFX0NVU1RPTUlaRURfR1RQVV9JUFY2KSB7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndHAtPm1zZ190eXBlID0gMHhGRjsNCj4gPj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGd0cF9pcHY2ID0gKHN0cnVjdCBpcHY2X2hkciAqKQ0KPiA+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIg KilndHAgKw0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKHN0cnVjdA0KPiA+PiA+ICsgcnRlX2Zsb3dfaXRlbV9ndHApKTsNCj4gPj4NCj4gPj4g VGhpcyBpcyBvbmx5IHZhbGlkIGlmIHZfcHRfcnN2X2ZsYWdzIGlzIDB4MzAuIEdUUC1VIHBhY2tl dHMgYXJlDQo+ID4+IGFsbG93ZWQgdG8gaGF2ZSBhIHNlcXVlbmNlIG51bWJlciwgd2hpY2ggYWRk cyBhbiBleHRyYSA0IGJ5dGVzIHRvIHRoZQ0KPiBHVFAgaGVhZGVyLg0KPiA+DQo+ID4gU2FtZSB3 aXRoIGFib3ZlLg0KPiA+DQo+ID4+DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBndHBfaXB2Ni0+dnRjX2Zsb3cgPQ0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBydGVfY3B1X3RvX2JlXzMyKA0KPiA+PiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTQwRV9GRElSX0lQdjZfREVGQVVMVF9W VENfRkxPVyB8DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoMCA8PCBJNDBFX0ZESVJfSVB2Nl9UQ19PRkZTRVQpKTsNCj4gPj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGd0cF9pcHY2LT5wcm90byA9IElQUFJPVE9fTk9ORTsN Cj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0cF9pcHY2LT5wYXlsb2Fk X2xlbiA9DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0 ZV9jcHVfdG9fYmVfMTYoDQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEk0MEVfRkRJUl9JTk5FUl9JUHY2X0RFRkFVTFRfTEVOKTsNCj4gPj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0cF9pcHY2LT5ob3BfbGltaXRzID0NCj4g Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTQwRV9GRElSX0lQ djZfREVGQVVMVF9IT1BfTElNSVRTOw0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGF5bG9hZCA9ICh1bnNpZ25lZCBjaGFyICopZ3RwX2lwdjYgKw0KPiA+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGlwdjZfaGRy KTsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UNCj4gPj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQgPSAodW5zaWduZWQgY2hhciAqKWd0cCAr DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihz dHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ndHApOw0KPiA+PiA+ICsgICAgICAgICAgICAgICB9DQo+ID4+ ID4gKyAgICAgICB9IGVsc2Ugew0KPiA+PiA+ICsgICAgICAgICAgICAgICBQTURfRFJWX0xPRyhF UlIsICJ1bmtub3duIHBjdHlwZSAldS4iLA0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICBmZGlyX2lucHV0LT5wY3R5cGUpOw0KPiA+PiA+ICsgICAgICAgICAgICAgICByZXR1cm4g LTE7DQo+ID4+ID4gICAgICAgICB9DQo+ID4+ID4NCj4gPj4gPiAgICAgICAgIC8qIGZpbGwgdGhl IGZsZXhieXRlcyB0byBwYXlsb2FkICovDQo+ID4+DQo+ID4+IDxzbmlwPg0K