From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4A4E8A0524; Thu, 4 Feb 2021 11:02:45 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C779724064D; Thu, 4 Feb 2021 11:02:44 +0100 (CET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2133.outbound.protection.outlook.com [40.107.20.133]) by mails.dpdk.org (Postfix) with ESMTP id BA86424063C for ; Thu, 4 Feb 2021 11:02:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RlGJS+IwWOmOKd6AC9MObzfrKSV4+qFtAWSQ5kiQwI3waN+inttJflKkaNna1CzXHgMq1ff4JGI52LFXWic7Ml34SlJVcm1+lOV65Tn0ya5onSmX1GvAF+l8AsRDQooUb/imbKh/CfaC93lVTSkGrfivRHzyeuwZUxIgVSlHGpbURrumRvW8Zd+yLzu4fnqI1DPaoB2h4nWeDAqaAIxCWKu1Mw1viLnr4q7T3s2VQFwbgG1izLhv9lMrtjsycb7iSccnd7mtWnOsprduQAV+EyzyOYk24LsUTLZ22lV0dKnU12GGDP0jJ34+ff5+Guv/MAYb2xXiq0nXjBblu0aDdA== 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=rd5uy+czSie2/ppAor/cxbe/Rtq7C5xaY5yvpc6IU8A=; b=Q+dLRr/79ndPwGTRHaUio0NMrKx6OlkitnJ8Orew36OmqyPWKygah0zhMqpRNdG7nc0NtB3BtaSbxTropdXu3gRrkL1+8QWSMVRWAvODcdHT0rNYo0T7iY/v1EpElBYE/dZZe548nzMMqEjnbObN+1fvHVbREOKBlPlM/qqJ++R6ouw7+sf8mkbYlNZxpuLEziM2SiCGCCDSudTSj9IHz3atwk/PdENh9hN3rKHinhrS94Zq9r7Dr/ECBpLOF9O0lCh9my3hDHAspM2LmqVygMgPmuajFazPrIYU2RF2dN6LoA8OXSawmep58L4y4pO/cqhxxbLE7421cPi6QkCoeA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cgstowernetworks.com; dmarc=pass action=none header.from=cgstowernetworks.com; dkim=pass header.d=cgstowernetworks.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cgstowernetworks.onmicrosoft.com; s=selector2-cgstowernetworks-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rd5uy+czSie2/ppAor/cxbe/Rtq7C5xaY5yvpc6IU8A=; b=KnKVC2KAngT92uMGQljNGUOszMFH+vptcQmbVnOw1eHtFc02LGYcr3IwldejU7ve2IlVTpQkIQ2VFElVKmFtzMvhUWHWGanasU0P8Zzg9FY3i5yy8kjF11E4tgMhI1BIVxYGqv2WoJJUviWu9ND3ZBbO8hf0rtIu38729pQoFKY= Received: from DB7PR09MB2345.eurprd09.prod.outlook.com (20.176.239.10) by DB8PR09MB3897.eurprd09.prod.outlook.com (52.135.62.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.20; Thu, 4 Feb 2021 10:02:41 +0000 Received: from DB7PR09MB2345.eurprd09.prod.outlook.com ([fe80::fc34:cf58:29e8:932a]) by DB7PR09MB2345.eurprd09.prod.outlook.com ([fe80::fc34:cf58:29e8:932a%6]) with mapi id 15.20.3805.017; Thu, 4 Feb 2021 10:02:41 +0000 From: Ido Goshen To: Ferruh Yigit CC: "dev@dpdk.org" Thread-Topic: [PATCH v3 1/1] net/pcap: imissed stats support Thread-Index: AQHW+oF3VDizQoVQpkK3gS2B0J5LNqpHIBAAgAB3EICAACN2gIAAAV5A Date: Thu, 4 Feb 2021 10:02:40 +0000 Message-ID: References: <20210201083012.28544-1-ido@cgstowernetworks.com> <20210203230750.4499-1-ido@cgstowernetworks.com> <7b31af98-5214-087d-f45f-bc6df0357419@intel.com> In-Reply-To: <7b31af98-5214-087d-f45f-bc6df0357419@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=cgstowernetworks.com; x-originating-ip: [81.218.57.230] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 544a8f17-e903-4648-15ce-08d8c8f4026d x-ms-traffictypediagnostic: DB8PR09MB3897: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7OOei6BRXsNMpnucKwyDVdHMutvTtx15ss1shjPxaZDulcqNOOfYNsxyG8Ne/eS1QiNNWsRCt32+fqNq5OqB0U07tjx4euR6hAMd2hcBKakIcIf0IvJmIMUb59f64dPiw+vgT34cmzVftmwtcDMycebjzVP/ZwVRmqUnaMoRxuX/MC2WtJTJALplyJveSD5a4+7Z59Q6SBQWkO+D+xhEdP3huIlEwOfU+5lfjFWiHyJ74YERNFKNW/brh4TJwRJxD/J+QpLSpeMECYwLzjRgHIcwg3iK9lpI6gWjFod0W/nPGi2AofPjd/6HDfWFB5k6Vx2FF3aDImwG7j+gKnnuGeKPoUrlCrltKhmQnGBu7SX5CgZLYg+rNmYfCNNEuEwWSwSIO5L6/+bCIY0AeULf+iee+46sdur8yiqFCsO26tJ4FGLBj8j59YXeNixg4RRqKt+25RiFzzZK8l+rBrlMtuEOiT9h//Uzv/WH8WxJko6YYPi4KlHHtddJ0KaEIa2VOYijmu5fwMsBQzeNHgtf7w== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR09MB2345.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(136003)(39830400003)(366004)(346002)(376002)(4326008)(6506007)(2906002)(9686003)(66556008)(33656002)(478600001)(76116006)(66476007)(66946007)(86362001)(6916009)(8936002)(71200400001)(66446008)(7696005)(8676002)(316002)(55016002)(26005)(186003)(52536014)(5660300002)(83380400001)(53546011)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?R3dmb3Npak9qSm9kTjJHQ2ZzUDFLVjhweCtoSmFLS0I4NFphM2FBTlE0Sndj?= =?utf-8?B?WUxmeU40d1FvNXdOQ093L0hTVXJQKzBkYzlUK2VSUGlrd25rOXEwZW42TUU0?= =?utf-8?B?YytTQmNYbDNJdEl2SmgxN1psWjJoNEZSc1hVQnBPVnFhSWI0MGlLOVIzdFA0?= =?utf-8?B?ekRFRDZEYUFXV1B4blN5ZUhib0ZhVHBiVTdqNXFPM1hJcDNFWDdxa2RIeE56?= =?utf-8?B?dUQ1ckNjVVNmZGszMGZUTTM1cTFKTmtFTDFxd1dMcjJ0cFIvd2tRMTVNTmdk?= =?utf-8?B?VkFRYmJDVlE0Wll3cTNGbGVYLzFZbGtDZlJoSUJxcVlKdWk5RjVzTXp5UXJ6?= =?utf-8?B?dGc4MUgvNENrMTBBeXE4Rm5BaVA0T3FCQUwvRmo4SW9LZVF2WE9aY0xKdDVj?= =?utf-8?B?d000MHdPVzJsUmdCUE9wQlljZzNJQVNDVGl1MGFkSmNWRUx1Z2h1MlJlSzZL?= =?utf-8?B?RVhaQUxCdmpxQzJ0ZjBQNUNvT1QyeUtERk83YWtDbWNxWGsvbXFsVlkrUng1?= =?utf-8?B?TTRjRXlGa1NPc3N5T1ZwemFKWmJoWTgvbHRJUU5vMW5TUWpmcW52Y3RzWDhC?= =?utf-8?B?ZHZWYVppNTBqekpIcnVrY1RXaUlRYlM1L0tnQkdxUDhxVllvbzk4ZVRSU04x?= =?utf-8?B?TFI1Y1V1MUxsL29RMXQ3WTlyQ2pwUW1KYmZjN0NMbDRMRWdKNndGT2xLcWkv?= =?utf-8?B?S2xjTEtQeUQyTmJ3Wk0zcWEvaXNrT0lhMjRvRHdBZUdMK3QwUXlRS0Y5dkJV?= =?utf-8?B?MEJlOEJTcFB1aVFzcjd3OHlESTRBUHl5MUlyYS9aNm1LdjlWSzhPNytFN1lu?= =?utf-8?B?M0Z3RWc4ZEdoeExsSHFuQnozN29GYXNLb0RkRnNYU2hIR25Qc2FkSGhlT01n?= =?utf-8?B?bDg5WEo5U2RNQTBQem9zak5lUWpRT1EzZ2lOekppOGZsNGlzSUhqSFZpSnFs?= =?utf-8?B?eXB0ejg4T1JMYnVUbGZnZmtJUEp3cmpsTDdEbnlEa21Mc1BnZGRIVFVlOTNv?= =?utf-8?B?RVBxK1ZyWUNNZFdEcEMzUWJaVlFQVVArSTZUZ3VvcXVENkVZNUE3ZFNwN0NX?= =?utf-8?B?L3lhZktsc1pOd1g2RHpYa01UbFdZcGt1ck5CVFA3cEJhYU51RWhQV3ViYmJ4?= =?utf-8?B?TnVvOXJSWi9xd2Rrd1dzME5ibFVPRW0veUdaaG4raEppZUF6blV2SkxnRlRt?= =?utf-8?B?Z3ZLdkFJRzRoOFowd2JNcGJzbTY1TEU0R2RQdkhtdmRPZUc4eW15OWtTU0RR?= =?utf-8?B?Y0JtNjd1dE1obW1SM09LSlZCODZwREQzc1R2SVFvOVlKNXNJWklIQitqTk05?= =?utf-8?B?alN2OWJNL0FCTGQ0aTQ4S3Zpc2FmUHJKc3o4eHkzQXo1K01hamozY08vVFJC?= =?utf-8?B?QTJmTnVuc0daTzE4czBHWTFFRkFXR1J6TmE0VUNESnBkcGo0VEcwcGMyQUpH?= =?utf-8?Q?rpuuytbX?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cgstowernetworks.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR09MB2345.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 544a8f17-e903-4648-15ce-08d8c8f4026d X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2021 10:02:40.9944 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fc9e9498-07e8-4b82-b4cf-365bba23cbbf X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4Y+sMXze5dtF0yPDmFtEiSpnxzMho0lLJJDVWgxDtKPcP3aKhN8soji36GnDeXQp8+sfE/gUO/s5H9l5Ferl3ONPbWwzNVN3JkyKjONeGd4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR09MB3897 Subject: Re: [dpdk-dev] [PATCH v3 1/1] net/pcap: imissed stats support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgNCBGZWJydWFyeSAyMDIx IDExOjI2DQo+IFRvOiBJZG8gR29zaGVuIDxJZG9AY2dzdG93ZXJuZXR3b3Jrcy5jb20+DQo+IENj OiBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAxLzFdIG5ldC9wY2FwOiBp bWlzc2VkIHN0YXRzIHN1cHBvcnQNCj4gDQo+IE9uIDIvNC8yMDIxIDc6NTYgQU0sIElkbyBHb3No ZW4gd3JvdGU6DQo+ID4NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ PiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+IFNlbnQ6 IFRodXJzZGF5LCA0IEZlYnJ1YXJ5IDIwMjEgMjoxMw0KPiA+PiBUbzogSWRvIEdvc2hlbiA8SWRv QGNnc3Rvd2VybmV0d29ya3MuY29tPg0KPiA+PiBDYzogZGV2QGRwZGsub3JnDQo+ID4+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0ggdjMgMS8xXSBuZXQvcGNhcDogaW1pc3NlZCBzdGF0cyBzdXBwb3J0DQo+ ID4+DQo+ID4+IE9uIDIvMy8yMDIxIDExOjA3IFBNLCBJZG8gR29zaGVuIHdyb3RlOg0KPiA+Pj4g Z2V0IHZhbHVlIGZyb20gcGNhcF9zdGF0cy5wc19kcm9wIChzZWUgbWFuIHBjYXBfc3RhdHMpIHRo ZSB2YWx1ZSBpcw0KPiA+Pj4gYWRqdXN0ZWQgaW4gdGhpcyBjYXNlczoNCj4gPj4+ICAgIC0gcG9y dCBzdG9wIC0gcGNhcCBpcyBjbG9zZWQgYW5kIHdpbGwgbG9zZSBjb3VudA0KPiA+Pj4gICAgLSBz dGF0cyByZXNldCAtIHBjYXAgZG9lc24ndCBwcm92aWRlIHJlc2V0IGFwaQ0KPiA+Pj4gICAgLSBy b2xsb3ZlciAtIHBjYXAgY291bnRlciBzaXplIGlzIHVfMzIgb25seQ0KPiA+Pj4NCj4gPj4+IFNp Z25lZC1vZmYtYnk6IElkbyBHb3NoZW4gPGlkb0BjZ3N0b3dlcm5ldHdvcmtzLmNvbT4NCj4gPj4+ IC0tLQ0KPiA+Pj4gdjM6DQo+ID4+PiAqIGNvZGUgY2xlYW51cCBieSBkZWRpY2F0ZWQgc3RydWN0 IGFuZCBmdW5jdGlvbnMgZXh0cmFjdGlvbg0KPiA+Pj4gKiBtdWx0aSBzdG9wIHN1cHBvcnQgYnkg bWVubW9uaWMrPSBhY2N1bXVsYXRpb24NCj4gPj4+ICogcm9sbG92ZXIgZml4dXANCj4gPj4+DQo+ ID4+PiB2MjoNCj4gPj4+ICogc3VtIGFsbCBxdWV1ZXMgKHJ4X21pc3NlZF90b3RhbCArPSBmaXgp DQo+ID4+PiAqIG51bGwgcGNhcCBwcm90ZWN0aW9uDQo+ID4+PiAqIGludGVyIHN0b3Avc3RhcnQg cGVyc2lzdGFuY3kgKGNvdW50ZXIgd29uJ3QgcmVzZXQgb24gc3RvcCkNCj4gPj4+DQo+ID4+PiAg ICBkcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jIHwgNTkNCj4gPj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+ID4+PiAgICAxIGZpbGUgY2hhbmdlZCwgNTkgaW5zZXJ0 aW9ucygrKQ0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wY2FwL3J0ZV9l dGhfcGNhcC5jDQo+ID4+PiBiL2RyaXZlcnMvbmV0L3BjYXAvcnRlX2V0aF9wY2FwLmMgaW5kZXgg YTMyYjFmM2YzLi4xNmU4NzUyZjMgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kcml2ZXJzL25ldC9wY2Fw L3J0ZV9ldGhfcGNhcC5jDQo+ID4+PiArKysgYi9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNh cC5jDQo+ID4+PiBAQCAtNjAsMTEgKzYwLDIxIEBAIHN0cnVjdCBxdWV1ZV9zdGF0IHsNCj4gPj4+ ICAgIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGVycl9wa3RzOw0KPiA+Pj4gICAgfTsNCj4gPj4+ DQo+ID4+PiArc3RydWN0IHF1ZXVlX21pc3NlZF9zdGF0IHsNCj4gPj4+ICsJLyogbGFzdCB2YWx1 ZSByZXRyaWV2ZWQgZnJvbSBwY2FwICovDQo+ID4+PiArCXZvbGF0aWxlIHVuc2lnbmVkIGludCBw Y2FwOw0KPiA+Pj4gKwkvKiBzdG9yZXMgdmFsdWVzIGxvc3QgYnkgcGNhcCBzdG9wIG9yIHJvbGxv dmVyICovDQo+ID4+PiArCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbW5lbW9uaWM7DQo+ID4+PiAr CS8qIHZhbHVlIG9uIGxhc3QgcmVzZXQgKi8NCj4gPj4+ICsJdm9sYXRpbGUgdW5zaWduZWQgbG9u ZyByZXNldDsNCj4gPj4+ICt9Ow0KPiA+Pg0KPiA+PiBJIGFtIGF3YXJlIG90aGVyIHN0YXRzIGhh cyAndm9sYXRpbGUnIGtleXdvcmQsIGJ1dCBhcyBmYXIgYXMgSSBjYW4NCj4gPj4gc2VlIGl0IGlz IG5vdCBuZWVkZWQsIHNpbmNlIHRoZXNlIGFyZSBuZXcgb25lcyBjYW4geW91IHBsZWFzZSBkcm9w IHRoZQ0KPiAndm9sYXRpbGUnPw0KPiA+DQo+ID4gb2sNCj4gPg0KPiA+Pg0KPiA+Pj4gKw0KPiA+ Pj4gICAgc3RydWN0IHBjYXBfcnhfcXVldWUgew0KPiA+Pj4gICAgCXVpbnQxNl90IHBvcnRfaWQ7 DQo+ID4+PiAgICAJdWludDE2X3QgcXVldWVfaWQ7DQo+ID4+PiAgICAJc3RydWN0IHJ0ZV9tZW1w b29sICptYl9wb29sOw0KPiA+Pj4gICAgCXN0cnVjdCBxdWV1ZV9zdGF0IHJ4X3N0YXQ7DQo+ID4+ PiArCXN0cnVjdCBxdWV1ZV9taXNzZWRfc3RhdCBtaXNzZWRfc3RhdDsNCj4gPj4+ICAgIAljaGFy IG5hbWVbUEFUSF9NQVhdOw0KPiA+Pj4gICAgCWNoYXIgdHlwZVtFVEhfUENBUF9BUkdfTUFYTEVO XTsNCj4gPj4+DQo+ID4+PiBAQCAtMTQ0LDYgKzE1NCw0OSBAQCBSVEVfTE9HX1JFR0lTVEVSKGV0 aF9wY2FwX2xvZ3R5cGUsDQo+ID4+IHBtZC5uZXQucGNhcCwgTk9USUNFKTsNCj4gPj4+ICAgIAly dGVfbG9nKFJURV9MT0dfICMjIGxldmVsLCBldGhfcGNhcF9sb2d0eXBlLCBcDQo+ID4+PiAgICAJ CSIlcygpOiAiIGZtdCAiXG4iLCBfX2Z1bmNfXywgIyNhcmdzKQ0KPiA+Pj4NCj4gPj4+ICtzdGF0 aWMgc3RydWN0IHF1ZXVlX21pc3NlZF9zdGF0Kg0KPiA+Pj4gK3F1ZXVlX21pc3NlZF9zdGF0X3Vw ZGF0ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdW5zaWduZWQgaW50IHFpZCkgew0KPiA+Pj4g KwlzdHJ1Y3QgcG1kX2ludGVybmFscyAqaW50ZXJuYWxzID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZTsNCj4gPj4+ICsJc3RydWN0IHF1ZXVlX21pc3NlZF9zdGF0ICptaXNzZWRfc3RhdCA9DQo+ID4+ PiArCQkJJmludGVybmFscy0+cnhfcXVldWVbcWlkXS5taXNzZWRfc3RhdDsNCj4gPj4+ICsJY29u c3Qgc3RydWN0IHBtZF9wcm9jZXNzX3ByaXZhdGUgKnBwID0gZGV2LT5wcm9jZXNzX3ByaXZhdGU7 DQo+ID4+PiArCXBjYXBfdCAqcGNhcCA9IHBwLT5yeF9wY2FwW3FpZF07DQo+ID4+PiArCXN0cnVj dCBwY2FwX3N0YXQgc3RhdDsNCj4gPj4NCj4gPj4gQ2FuIHlvdSBwbGVhc2UgcHV0IGFuIGVtcHR5 IGxpbmUgYWZ0ZXIgdmFyaWFibGUgZGVjbGFyYXRpb25zLCBhbmQgYmVmb3JlDQo+IHJldHVybi4N Cj4gPg0KPiA+IG9rDQo+ID4NCj4gPj4NCj4gPj4+ICsJaWYgKCFwY2FwIHx8IChwY2FwX3N0YXRz KHBjYXAsICZzdGF0KSAhPSAwKSkNCj4gPj4+ICsJCXJldHVybiBtaXNzZWRfc3RhdDsNCj4gPj4+ ICsJLyogcm9sbG92ZXIgY2hlY2sgLSBiZXN0IGVmZm9ydCBmaXh1cCBhc3N1bWluZyBzaW5nbGUg cm9sbG92ZXIgKi8NCj4gPj4+ICsJaWYgKHN0YXQucHNfZHJvcCA8IG1pc3NlZF9zdGF0LT5wY2Fw KQ0KPiA+Pj4gKwkJbWlzc2VkX3N0YXQtPm1uZW1vbmljICs9IFVJTlRfTUFYOw0KPiA+Pj4gKwlt aXNzZWRfc3RhdC0+cGNhcCA9IHN0YXQucHNfZHJvcDsNCj4gPj4NCj4gPj4gaGVyZS4NCj4gPj4N Cj4gPj4+ICsJcmV0dXJuIG1pc3NlZF9zdGF0Ow0KPiA+Pj4gK30NCj4gPj4+ICsNCj4gPj4+ICtz dGF0aWMgdm9pZA0KPiA+Pj4gK3F1ZXVlX21pc3NlZF9zdGF0X29uX3N0b3BfdXBkYXRlKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1bnNpZ25lZA0KPiA+Pj4gK2ludCBxaWQpIHsNCj4gPj4+ICsJ c3RydWN0IHF1ZXVlX21pc3NlZF9zdGF0ICptaXNzZWRfc3RhdCA9DQo+ID4+PiArCQkJcXVldWVf bWlzc2VkX3N0YXRfdXBkYXRlKGRldiwgcWlkKTsNCj4gPj4+ICsJbWlzc2VkX3N0YXQtPm1uZW1v bmljICs9IG1pc3NlZF9zdGF0LT5wY2FwOw0KPiA+Pg0KPiA+PiBCZXR0ZXIgdG8gcmVzZXQgJ21p c3NlZF9zdGF0LT5wY2FwJyBhZnRlcndhcmRzLCBpbiBjYXNlIHN0YXRzDQo+ID4+IHJlcXVlc3Rl ZCBiZWZvcmUgcG9ydCBzdGFydGVkIGFnYWluOg0KPiA+PiAgICBtaXNzZWRfc3RhdC0+cGNhcCA9 IDA7DQo+ID4NCj4gPiByaWdodCwgc2hvdWxkIGJlIGNhcmVmdWwgbm90IHRvIGRvdWJsZSBjb3Vu dCBpdCBidXQgbWF5YmUgYmV0dGVyIHRvDQo+ID4gc2V0IGl0IHRvIDAgaW4gcXVldWVfbWlzc2Vk X3N0YXRfdXBkYXRlIGluIHRoZSBzdG9wIHJldHVybiBjYXNlDQo+ID4gCWlmICghcGNhcCB8fCAo cGNhcF9zdGF0cyhwY2FwLCAmc3RhdCkgIT0gMCkpDQo+ID4gCXsNCj4gPiAJCW1pc3NlZF9zdGF0 LT5wY2FwID0gMDsNCj4gPiAJCXJldHVybiBtaXNzZWRfc3RhdDsNCj4gPiAJfQ0KPiA+IHRoaXMg d2F5IHRoZSBtaXNzZWRfc3RhdC0+cGNhcCB3aWxsIGFsd2F5cyByZXByZXNlbnQgdGhlIGN1cnJl bnQgdmFsdWUNCj4gPiBmcm9tIHBjYXAgYW5kIG5vdCBob2xkIG9sZCB2YWx1ZSBzcGVjaWZpY2Fs bHkgaW4gY2FzZSBwb3J0IGlzIHN0b3BwZWQNCj4gPiBpdCB3aWxsIGJlIDAgYW5kIG5vdCByZS1h ZGRlZCBhZ3JlZT8NCj4gPg0KPiANCj4gVGhpcyBhbHNvIHdvcmtzLCBidXQgdGhlcmUgaXMgb3Ro ZXIgY29uZGl0aW9uIGluIHRoYXQgaWYgYmxvY2ssIEkgZG9uJ3Qga25vdyB3aGVuDQo+ICdwY2Fw X3N0YXRzKCknIGNhbiBmYWlsLCBpdCBoYXMgYSByaXNrIG9mIHVuZXhwZWN0ZWQgc2lkZSBhZmZl Y3QgdG8gY2xlYXIgdGhlIHN0YXRzDQo+IHJhbmRvbWx5LCBJIHRoaW5rIHNhZmVyIHRvIGRvIGl0 IGluICdxdWV1ZV9taXNzZWRfc3RhdF9vbl9zdG9wX3VwZGF0ZSgpJyBhbmQgSQ0KPiBiZWxpZXZl IGxvZ2ljIGlzIG1vcmUgY2xlYXIgdGhhdCB3YXkuDQo+IA0KDQpvayANCg0KPiA+Pg0KPiA+Pj4g K30NCj4gPj4+ICsNCj4gPj4+ICtzdGF0aWMgdm9pZA0KPiA+Pj4gK3F1ZXVlX21pc3NlZF9zdGF0 X3Jlc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgcWlkKSB7DQo+ID4+ PiArCXN0cnVjdCBxdWV1ZV9taXNzZWRfc3RhdCAqbWlzc2VkX3N0YXQgPQ0KPiA+Pj4gKwkJCXF1 ZXVlX21pc3NlZF9zdGF0X3VwZGF0ZShkZXYsIHFpZCk7DQo+ID4+PiArCW1pc3NlZF9zdGF0LT5y ZXNldCA9IG1pc3NlZF9zdGF0LT5wY2FwOw0KPiA+Pg0KPiA+PiBJIGd1ZXNzIHRoaXMgc2hvdWxk IGJlOg0KPiA+PiAibWlzc2VkX3N0YXQtPnJlc2V0ID0gbWlzc2VkX3N0YXQtPnBjYXAgKyBtaXNz ZWRfc3RhdC0+bW5lbW9uaWM7Ig0KPiA+DQo+ID4gSSBkb24ndCB0aGluayBzbw0KPiA+IHJlc2V0 IHNob3VsZCBvbmx5IHJlbWVtYmVyIHdoZXJlIHBjYXAgd2FzIGF0IHRoZSByZXNldCBwb2ludCBh bmQgbm90IHN0b3JlDQo+IG9sZCB2YWx1ZXMNCj4gPiB0cnlpbmcgaXQgaW1tZWRpYXRlbHkgcmVz dWx0cyBpbg0KPiA+DQo+ID4gdGVzdHBtZD4gc2hvdyBwb3J0IHN0YXRzIDANCj4gPg0KPiA+ICAg ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBOSUMgc3RhdGlzdGljcyBmb3IgcG9ydCAwDQo+ICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiA+ICAgIFJYLXBhY2tldHM6IDAgICAgICAgICAgUlgt bWlzc2VkOiAxOTQwICAgICAgIFJYLWJ5dGVzOiAgMA0KPiA+ICAgIFJYLWVycm9yczogMA0KPiA+ ICAgIFJYLW5vbWJ1ZjogIDANCj4gPiAgICBUWC1wYWNrZXRzOiAwICAgICAgICAgIFRYLWVycm9y czogMCAgICAgICAgICBUWC1ieXRlczogIDANCj4gPg0KPiA+ICAgIFRocm91Z2hwdXQgKHNpbmNl IGxhc3Qgc2hvdykNCj4gPiAgICBSeC1wcHM6ICAgICAgICAgICAgMCAgICAgICAgICBSeC1icHM6 ICAgICAgICAgICAgMA0KPiA+ICAgIFR4LXBwczogICAgICAgICAgICAwICAgICAgICAgIFR4LWJw czogICAgICAgICAgICAwDQo+ID4NCj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIyMjIyMNCj4gPiB0ZXN0 cG1kPiBjbGVhciBwb3J0IHN0YXRzIDANCj4gPg0KPiA+ICAgIE5JQyBzdGF0aXN0aWNzIGZvciBw b3J0IDAgY2xlYXJlZA0KPiA+IHRlc3RwbWQ+IHNob3cgcG9ydCBzdGF0cyAwDQo+ID4NCj4gPiAg ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTklDIHN0YXRpc3RpY3MgZm9yIHBvcnQgMA0KPiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gPiAgICBSWC1wYWNrZXRzOiAwICAgICAgICAgIFJY LW1pc3NlZDogMTg0NDY3NDQwNzM3MDk1NTA2NDYgUlgtYnl0ZXM6ICAwDQo+ID4gICAgUlgtZXJy b3JzOiAwDQo+ID4gICAgUlgtbm9tYnVmOiAgMA0KPiA+ICAgIFRYLXBhY2tldHM6IDAgICAgICAg ICAgVFgtZXJyb3JzOiAwICAgICAgICAgIFRYLWJ5dGVzOiAgMA0KPiA+DQo+ID4gICAgVGhyb3Vn aHB1dCAoc2luY2UgbGFzdCBzaG93KQ0KPiA+ICAgIFJ4LXBwczogICAgICAgICAgICAwICAgICAg ICAgIFJ4LWJwczogICAgICAgICAgICAwDQo+ID4gICAgVHgtcHBzOiAgICAgICAgICAgIDAgICAg ICAgICAgVHgtYnBzOiAgICAgICAgICAgIDANCj4gPg0KPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjIyMj Iw0KPiA+DQo+IA0KPiBXaGF0IGFib3ZlIHNob3dzLCBpcyBpdCBvdXRwdXQgYWZ0ZXIgc3VnZ2Vz dGVkIGNoYW5nZT8NCj4NCg0KWWVzIGl0IGlzICoqd2l0aCoqIHRoZSBzdWdnZXN0ZWQgY2hhbmdl IChtaXNzZWRfc3RhdC0+cmVzZXQgPSBtaXNzZWRfc3RhdC0+cGNhcCArIG1pc3NlZF9zdGF0LT5t bmVtb25pYzspDQpBc3N1bWUgdGhpcyBzZXF1ZW5jZQ0KcG9ydCBzdG9wIC0+IG1uZW1vbmljID0g TiwgcGNhcCA9IDANCnJlc2V0IHN0YXRzIC0+IHJlc2V0ID0gMCArIE4sIG1uZW1vbmljID0gMA0K c2hvdyAtPiBpbWlzc2VkID0gMCArIDAgLSBODQoNCg0KaXQgd29ya3MgZ29vZCB3L28gdGhlIHN1 Z2dlc3RlZCBjaGFuZ2UgKG1pc3NlZF9zdGF0LT5yZXNldCA9IG1pc3NlZF9zdGF0LT5wY2FwOykN CnRlc3RwbWQ+IHNob3cgcG9ydCBzdGF0cyAwDQoNCiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IE5JQyBzdGF0aXN0aWNzIGZvciBwb3J0IDAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICBS WC1wYWNrZXRzOiAwICAgICAgICAgIFJYLW1pc3NlZDogMzkzMiAgICAgICBSWC1ieXRlczogIDAN CiAgUlgtZXJyb3JzOiAwDQogIFJYLW5vbWJ1ZjogIDAgICAgICAgICANCiAgVFgtcGFja2V0czog MCAgICAgICAgICBUWC1lcnJvcnM6IDAgICAgICAgICAgVFgtYnl0ZXM6ICAwDQoNCiAgVGhyb3Vn aHB1dCAoc2luY2UgbGFzdCBzaG93KQ0KICBSeC1wcHM6ICAgICAgICAgICAgMCAgICAgICAgICBS eC1icHM6ICAgICAgICAgICAgMA0KICBUeC1wcHM6ICAgICAgICAgICAgMCAgICAgICAgICBUeC1i cHM6ICAgICAgICAgICAgMA0KICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQp0ZXN0cG1kPiBjbGVhciBw b3J0IHN0YXRzIDANCg0KICBOSUMgc3RhdGlzdGljcyBmb3IgcG9ydCAwIGNsZWFyZWQNCnRlc3Rw bWQ+IHNob3cgcG9ydCBzdGF0cyAwDQoNCiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIE5JQyBz dGF0aXN0aWNzIGZvciBwb3J0IDAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICBSWC1wYWNr ZXRzOiAwICAgICAgICAgIFJYLW1pc3NlZDogMCAgICAgICAgICBSWC1ieXRlczogIDANCiAgUlgt ZXJyb3JzOiAwDQogIFJYLW5vbWJ1ZjogIDAgICAgICAgICANCiAgVFgtcGFja2V0czogMCAgICAg ICAgICBUWC1lcnJvcnM6IDAgICAgICAgICAgVFgtYnl0ZXM6ICAwDQoNCiAgVGhyb3VnaHB1dCAo c2luY2UgbGFzdCBzaG93KQ0KICBSeC1wcHM6ICAgICAgICAgICAgMCAgICAgICAgICBSeC1icHM6 ICAgICAgICAgICAgMA0KICBUeC1wcHM6ICAgICAgICAgICAgMCAgICAgICAgICBUeC1icHM6ICAg ICAgICAgICAgMA0KICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCg0KDQogDQo+IA0KPiANCj4gbWlz c2VkID0gIihwY2FwICsgbW5lbW9uaWMpIC0gcmVzZXQiDQo+IExldHMgYXNzdW1lIG92ZXJmbG93 IGxpbWl0IGlzIDE2LCB3aXRoIG9yaWdpbmFsIGNvZGU6DQo+IHJlc2V0OiAwLCBwY2FwOiAyLCBt bmVtb25pYzogMTYsIG1pc3NlZDogMTgNCj4gDQo+IGNsZWFyIHN0YXRzOg0KPiByZXNldDogMiwg cGNhcDogMiwgbW5lbW9uaWM6IDE2LCBtaXNzZWQ6IDE2ICh3cm9uZywgaXQgc2hvdWxkIGJlIDAp DQo+IA0KPiANCj4gT1INCj4gcmVzZXQ6IDAsIHBjYXA6IDIsIG1uZW1vbmljOiAwLCBtaXNzZWQ6 IDINCj4gDQo+IHBvcnQgc3RvcDoNCj4gcmVzZXQ6IDAsIHBjYXA6IDAsIG1uZW1vbmljOiAyLCBt aXNzZWQ6IDINCj4gDQo+IHBvcnQgc3RhcnQsIHNvbWUgdHJhZmZpYzoNCj4gcmVzZXQ6IDAsIHBj YXA6IDMsIG1uZW1vbmljOiAyLCBtaXNzZWQ6IDUNCj4gDQo+IGNsZWFyIHN0YXRzOg0KPiByZXNl dDogMywgcGNhcDogMywgbW5lbW9uaWM6IDIsIG1pc3NlZDogMiAod3JvbmcsIGl0IHNob3VsZCBi ZSAwKQ0KPiANCj4gDQo+ICdtbmVtb25pYycgYmVjb21lcyBwYXJ0IG9mIHRoZSBzdGF0cyBhZnRl ciBvdmVyZmxvdyBvciAicG9ydCBzdG9wIiwgc28gSSB0aGluaw0KPiBpdCBzaG91bGQgYmUgc3Rv cmVkIGluIHRoZSByZXNldC4NCj4gDQo+IEFzIGZhciBhcyBJIGNhbiBzZWUgc3VnZ2VzdGVkIGNv ZGUgY2hhbmdlIGlzIHJlcXVpcmVkIGlmIEkgYW0gbm90IG1pc3NpbmcNCj4gYW55dGhpbmcuDQo+ IA0KPiANCj4gPj4+ICsJbWlzc2VkX3N0YXQtPm1uZW1vbmljID0gMDsNCj4gPj4+ICt9DQo+ID4+ PiArDQo+ID4+PiArc3RhdGljIHVuc2lnbmVkIGxvbmcNCj4gPj4+ICtxdWV1ZV9taXNzZWRfc3Rh dF9nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBxaWQpIHsNCj4gPj4+ ICsJY29uc3Qgc3RydWN0IHF1ZXVlX21pc3NlZF9zdGF0ICptaXNzZWRfc3RhdCA9DQo+ID4+PiAr CQkJcXVldWVfbWlzc2VkX3N0YXRfdXBkYXRlKGRldiwgcWlkKTsNCj4gPj4+ICsJcmV0dXJuIG1p c3NlZF9zdGF0LT5wY2FwICsgbWlzc2VkX3N0YXQtPm1uZW1vbmljIC0NCj4gPj4+ICttaXNzZWRf c3RhdC0+cmVzZXQ7IH0NCj4gPj4+ICsNCj4gPj4NCj4gPj4gPC4uLj4NCg0K