From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150085.outbound.protection.outlook.com [40.107.15.85]) by dpdk.org (Postfix) with ESMTP id 873451BE21 for ; Fri, 21 Dec 2018 13:36:01 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6iAZynoRJv8SL9pph8/affPWRN0OSZsRYOx8pzvyWDk=; b=VKKkNc0nI/jMaqj6tIJuFkI+ANhj/UMC4KP2zz9p+HgKSB5NDISQ3t7qYNBhkR0yykkoloBVegmnqaCxsQwIV/+JcSXVCi/SZw1EGSYId0njpcLXXu8uUlvP8AlvAbg5nfHSKOzBf9tReGGKzS5NcSro8S2AvBKg76qaGBK5+Cs= Received: from VI1PR04MB4893.eurprd04.prod.outlook.com (20.177.49.154) by VI1PR04MB3213.eurprd04.prod.outlook.com (10.170.227.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.19; Fri, 21 Dec 2018 12:36:00 +0000 Received: from VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b]) by VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b%4]) with mapi id 15.20.1446.022; Fri, 21 Dec 2018 12:36:00 +0000 From: Akhil Goyal To: "Ananyev, Konstantin" , "dev@dpdk.org" CC: Thomas Monjalon , "Awal, Mohammad Abdul" Thread-Topic: [dpdk-dev] [PATCH v4 06/10] ipsec: implement SA data-path API Thread-Index: AQHUk8l2jP/G8oUcr0SNuYp6NUBDraWGOGsAgAFmuACAAYyuAA== Date: Fri, 21 Dec 2018 12:36:00 +0000 Message-ID: References: <1544110714-4514-2-git-send-email-konstantin.ananyev@intel.com> <1544804589-10338-6-git-send-email-konstantin.ananyev@intel.com> <2601191342CEEE43887BDE71AB977258010D8BD33A@IRSMSX106.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB977258010D8BD33A@IRSMSX106.ger.corp.intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: TY1PR01CA0138.jpnprd01.prod.outlook.com (2603:1096:402:1::14) To VI1PR04MB4893.eurprd04.prod.outlook.com (2603:10a6:803:56::26) authentication-results: spf=none (sender IP is ) smtp.mailfrom=akhil.goyal@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [14.143.30.134] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR04MB3213; 6:7c0I9P7/XRbhj/sntOgF3IoKA9kW8TgdJBSu99fnw+lMLHDaUWpgo2NoBYcxn2PQmejghY/6SHF1r+1y1o2TnU4B4Qtm6cDjiFbrjhr2T+niUyX4IQthHAI5oOUaQ/3UVJsxlG0TIZZTjERjt4FqFLRn9ffGN7fk0AhnlO4IOfKNj7Q4xuKBNhHinpcYzpyu/PwkJE/TZSwg1lMD1npZczg0a1sqw86iNv8Opi+kZzSte7TTfthMM35f5oQfpM9LY9lx0bNVWB0Aed67LLL/pYXGxnKTfKv8PYDePZBBEsJe+2dypOh4d8Hi1rIcDkk/rR03n3y3fNvLu/jse1y7x6j/C1ZDURxTZiHQUY6s9Zfb26Z+kdWbqDxnVyn2OCWwI6b5IDQKj5PFRdbQiPV7ioTbqYwHtT/xz4zA3/9ZiRuMilqWaHrvsHx31S18Mf1B1B8rgK50bX1+yzVemKLd6A==; 5:gzoglR2T2lPpSYqZzWDPMiPHg1kMUc5mlALyzrlFXbVOz9OOsVWmbrIZP3c/E0lEE/cDU87wjOXtonZjZirDsM9rE04NSTWGI8xuP9IRxpcML/Jtv6bIpxs35o0LX/Er/aZQNUArkMWT0tHtMS9XRnlnfUUzt/aaQinLOZC2JZg=; 7:4nY9Gjp8vJpD6Y6lQ2WaXjXMzZwPFYCK4CS0nNF1sPp3JMOUzktxgRUy5rkKjk7jJtRVCi9bxXx/vN5m9HYvwvQgmvptpvmGJ8hgLjCHnr0eBXvj/WnLhYtQ8J9+vS6+EJVD36DocgNSpXb/R2b86A== x-ms-office365-filtering-correlation-id: 0c0d02eb-8fcb-402f-f771-08d66740dcac x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB3213; x-ms-traffictypediagnostic: VI1PR04MB3213: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(999002)(5005026)(6040522)(2401047)(8121501046)(93006095)(93001095)(3231475)(944501520)(52105112)(10201501046)(3002001)(6055026)(149066)(150057)(6041310)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(201708071742011)(7699051)(76991095); SRVR:VI1PR04MB3213; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB3213; x-forefront-prvs: 0893636978 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(136003)(346002)(366004)(39860400002)(396003)(199004)(189003)(71200400001)(93886005)(52116002)(7736002)(31696002)(26005)(11346002)(78486014)(106356001)(3846002)(86362001)(36756003)(305945005)(81156014)(55236004)(97736004)(8676002)(53546011)(6486002)(6116002)(81166006)(25786009)(68736007)(8936002)(2501003)(2906002)(4326008)(446003)(99286004)(6506007)(6436002)(66066001)(14444005)(386003)(256004)(476003)(105586002)(6246003)(14454004)(186003)(53936002)(5660300001)(478600001)(316002)(486006)(44832011)(6512007)(6306002)(54906003)(2616005)(229853002)(110136005)(76176011)(71190400001)(31686004)(102836004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB3213; H:VI1PR04MB4893.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: KpVPLlfcxQB2yTRuYleHvoVvg31v3QXw2L+DGKftBjI/Lk8NGDXOKUxHvv0PMEYkMReU7dOZ9HMrE8aGap4H+5vzZiY6w8yAtUrpluPx6beNZkdvecHu8if7bkgiWQNXoaiNYAs8sTX1jMDct+wrmD8i89DqH//r9iOFkFeteM/7l2C7ZU22zVko8BKzzDVhquNiCklkf7eFUdIjatNmtcbkR/thBuMxoK+VrUSIXEL9pi4ZX3jTnPisoFjy8qw86KIu7iNn7K/3DfkbnHsHODuVYIahcldgC0O80hudwMGCqEXhXZSM9HsP8aBsnudl spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c0d02eb-8fcb-402f-f771-08d66740dcac X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Dec 2018 12:36:00.0637 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3213 Subject: Re: [dpdk-dev] [PATCH v4 06/10] ipsec: implement SA data-path API 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, 21 Dec 2018 12:36:01 -0000 DQoNCk9uIDEyLzIwLzIwMTggNjoyNiBQTSwgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToNCj4N Cj4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9pcHNlYy9jcnlwdG8uaCBiL2xpYi9saWJydGVf aXBzZWMvY3J5cHRvLmgNCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+IGluZGV4IDAwMDAw MDAwMC4uNjFmNWMxNDMzDQo+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+ICsrKyBiL2xpYi9saWJydGVf aXBzZWMvY3J5cHRvLmgNCj4+PiBAQCAtMCwwICsxLDEyMyBAQA0KPj4+ICsvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+Pj4gKyAqIENvcHlyaWdodChjKSAyMDE4IElu dGVsIENvcnBvcmF0aW9uDQo+Pj4gKyAqLw0KPj4+ICsNCj4+PiArI2lmbmRlZiBfQ1JZUFRPX0hf DQo+Pj4gKyNkZWZpbmUgX0NSWVBUT19IXw0KPj4+ICsNCj4+PiArLyoqDQo+Pj4gKyAqIEBmaWxl IGNyeXB0by5oDQo+Pj4gKyAqIENvbnRhaW5zIGNyeXB0byBzcGVjaWZpYyBmdW5jdGlvbnMvc3Ry dWN0dXJlcy9tYWNyb3MgdXNlZCBpbnRlcm5hbGx5DQo+Pj4gKyAqIGJ5IGlwc2VjIGxpYnJhcnku DQo+Pj4gKyAqLw0KPj4+ICsNCj4+PiArIC8qDQo+Pj4gKyAgKiBBRVMtR0NNIGRldmljZXMgaGF2 ZSBzb21lIHNwZWNpZmljIHJlcXVpcmVtZW50cyBmb3IgSVYgYW5kIEFBRCBmb3JtYXRzLg0KPj4+ ICsgICogSWRlYWxseSB0aGF0IHRvIGJlIGRvbmUgYnkgdGhlIGRyaXZlciBpdHNlbGYuDQo+Pj4g KyAgKi8NCj4+IEkgYmVsaWV2ZSB0aGVzZSBjYW4gYmUgbW92ZWQgdG8gcnRlX2NyeXB0b19zeW0u aC4gQWxsIGNyeXB0byByZWxhdGVkDQo+PiBzdHVmZiBzaG91bGQgYmUgYXQgc2FtZSBwbGFjZS4N Cj4gTm90IHN1cmUgd2hhdCBleGFjdGx5IHlvdSBzdWdnZXN0IHRvIHB1dCBpbnRvIHJ0ZV9jcnlw dG9fc3ltLmg/DQo+IHN0cnVjdCBhZWFkX2djbV9pdj8gU29tZXRoaW5nIGVsc2U/DQo+ICBGcm9t IG15IHBlcnNwZWN0aXZlIGl0IHdvdWxkIGJlIGdvb2QgaWYgdXNlciBpbiBjdHlwdG9fc3ltX29w DQo+IGp1c3QgZmlsbCBzYWx0IGFuZCBJViBmaWVsZHMsIGFuZCB0aGVuIFBNRCBzZXR1cCB0aGlu Z3MgaW4gbmVlZGVkDQo+IGZvcm1hdCBpbnRlcm5hbGx5Lg0KPiBBZ2FpbiBpdCB3b3VsZCBiZSBy ZWFsbHkgZ29vZCBpZiBjcnlwdG9fc3ltX29wIGhhcyByZXNlcnZlZCBzcGFjZQ0KPiBmb3IgQUFE Li4uDQo+IEJ1dCAgYWxsIHRoYXQgaW1wbGllcyBxdWl0ZSBhIGJpZyBjaGFuZ2UgaW4gY3J5cHRv ZGV2IGFuZCBQTURzLA0KPiBzbyBJIHRoaW5rIHNob3VsZCBiZSBzdWJqZWN0IG9mIGEgc2VwYXJh dGUgcGF0Y2guDQo+DQo+Pj4gKw0KPj4+ICtzdHJ1Y3QgYWVhZF9nY21faXYgew0KPj4+ICsJdWlu dDMyX3Qgc2FsdDsNCj4+PiArCXVpbnQ2NF90IGl2Ow0KPj4+ICsJdWludDMyX3QgY250Ow0KPj4+ ICt9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOw0KPj4+ICsNCj4+PiArc3RydWN0IGFlYWRfZ2Nt X2FhZCB7DQo+Pj4gKwl1aW50MzJfdCBzcGk7DQo+Pj4gKwkvKg0KPj4+ICsJICogUkZDIDQxMDYs IHNlY3Rpb24gNToNCj4+PiArCSAqIFR3byBmb3JtYXRzIG9mIHRoZSBBQUQgYXJlIGRlZmluZWQ6 DQo+Pj4gKwkgKiBvbmUgZm9yIDMyLWJpdCBzZXF1ZW5jZSBudW1iZXJzLCBhbmQgb25lIGZvciA2 NC1iaXQgRVNOLg0KPj4+ICsJICovDQo+Pj4gKwl1bmlvbiB7DQo+Pj4gKwkJdWludDMyX3QgdTMy WzJdOw0KPj4+ICsJCXVpbnQ2NF90IHU2NDsNCj4+PiArCX0gc3FuOw0KPj4+ICsJdWludDMyX3Qg YWxpZ24wOyAvKiBhbGlnbiB0byAxNkIgYm91bmRhcnkgKi8NCj4+PiArfSBfX2F0dHJpYnV0ZV9f KChwYWNrZWQpKTsNCj4+PiArDQo+Pj4gK3N0cnVjdCBnY21fZXNwaF9pdiB7DQo+Pj4gKwlzdHJ1 Y3QgZXNwX2hkciBlc3BoOw0KPj4+ICsJdWludDY0X3QgaXY7DQo+Pj4gK30gX19hdHRyaWJ1dGVf XygocGFja2VkKSk7DQo+Pj4gKw0KPj4+ICsNCj4+PiArc3RhdGljIGlubGluZSB2b2lkDQo+Pj4g K2FlYWRfZ2NtX2l2X2ZpbGwoc3RydWN0IGFlYWRfZ2NtX2l2ICpnY20sIHVpbnQ2NF90IGl2LCB1 aW50MzJfdCBzYWx0KQ0KPj4+ICt7DQo+Pj4gKwlnY20tPnNhbHQgPSBzYWx0Ow0KPj4+ICsJZ2Nt LT5pdiA9IGl2Ow0KPj4+ICsJZ2NtLT5jbnQgPSBydGVfY3B1X3RvX2JlXzMyKDEpOw0KPj4+ICt9 DQo+Pj4gKw0KPj4+ICsvKg0KPg0KPj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2lwc2VjL2lw aC5oIGIvbGliL2xpYnJ0ZV9pcHNlYy9pcGguaA0KPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ Pj4gaW5kZXggMDAwMDAwMDAwLi4zZmQ5MzAxNmQNCj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4gKysr IGIvbGliL2xpYnJ0ZV9pcHNlYy9pcGguaA0KPj4+IEBAIC0wLDAgKzEsODQgQEANCj4+PiArLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPj4+ICsgKiBDb3B5cmlnaHQo YykgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbg0KPj4+ICsgKi8NCj4+PiArDQo+Pj4gKyNpZm5kZWYg X0lQSF9IXw0KPj4+ICsjZGVmaW5lIF9JUEhfSF8NCj4+PiArDQo+Pj4gKy8qKg0KPj4+ICsgKiBA ZmlsZSBpcGguaA0KPj4+ICsgKiBDb250YWlucyBmdW5jdGlvbnMvc3RydWN0dXJlcy9tYWNyb3Mg dG8gbWFuaXB1bGF0ZSBJUHYvSVB2NiBoZWFkZXJzDQo+PiBJUHY0DQo+Pj4gKyAqIHVzZWQgaW50 ZXJuYWxseSBieSBpcHNlYyBsaWJyYXJ5Lg0KPj4+ICsgKi8NCj4+PiArDQo+Pj4gKy8qDQo+Pj4g KyAqIE1vdmUgcHJlY2VkaW5nIChMMykgaGVhZGVycyBkb3duIHRvIHJlbW92ZSBFU1AgaGVhZGVy IGFuZCBJVi4NCj4+PiArICovDQo+PiB3aHkgY2FudCB3ZSB1c2UgcnRlX21idWYgQVBJcyB0byBh cHBlbmQvcHJlcGVuZC90cmltL2FkanVzdCBsZW5ndGhzLg0KPiBXZSBkbyB1c2UgcnRlX21idWYg YXBwZW5kL3RyaW0sIGV0Yy4gYWRqdXN0IG1idWYncyBkYXRhX29mcyBhbmQgZGF0YV9sZW4uDQo+ IEJ1dCBhcGFydCBmcm9tIHRoYXQgZm9yIHRyYW5zcG9ydCBtb2RlIHdlIGhhdmUgdG8gbW92ZSBh Y3R1YWwgcGFja2V0IGhlYWRlcnMuDQo+IExldCBzYXkgZm9yIGluYm91bmQgd2UgaGF2ZSB0byBn ZXQgcmlkIG9mIEVTUCBoZWFkZXIgKHdoaWNoIGlzIGFmdGVyIElQIGhlYWRlciksDQo+IGJ1dCBw cmVzZXJ2ZSBJUCBoZWFkZXIsIHNvIHdlIG1vdmluZyBMMi9MMyBoZWFkZXJzIGRvd24sIG92ZXJ3 cml0aW5nIEVTUCBoZWFkZXIuDQpvayBnb3QgeW91ciBwb2ludA0KPj4gSSBiZWxpZXZlIHRoZXNl IGFkanVzdG1lbnRzIGFyZSBoYXBwZW5pbmcgaW4gdGhlIG1idWYgaXRzZWxmLg0KPj4gTW9yZW92 ZXIgdGhlc2UgQVBJcyBhcmUgbm90IHNwZWNpZmljIHRvIGVzcCBoZWFkZXJzLg0KPiBJIGRpZG4n dCBnZXQgeW91ciBsYXN0IHNlbnRlbmNlOiB0aGF0IGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVtb3Zl IGVzcCBoZWFkZXINCj4gKHNlZSBhYm92ZSkgLSB0aGF0J3Mgd2h5IEkgbmFtZWQgaXQgdGhhdCB3 YXkuDQpUaGVzZSBjYW4gYmUgdXNlZCB0byByZW1vdmUgYW55IGhlYWRlciBhbmQgbm90IHNwZWNp ZmljYWxseSBlc3AuIFNvIHRoaXMgDQpBUEkgY291bGQgYmUgZ2VuZXJpYyBpbiBydGVfbWJ1Zi4N Cj4NCj4+PiArc3RhdGljIGlubGluZSB2b2lkDQo+Pj4gK3JlbW92ZV9lc3BoKGNoYXIgKm5wLCBj aGFyICpvcCwgdWludDMyX3QgaGxlbikNCj4+PiArew0KPj4+ICsJdWludDMyX3QgaTsNCj4+PiAr DQo+Pj4gKwlmb3IgKGkgPSBobGVuOyBpLS0gIT0gMDsgbnBbaV0gPSBvcFtpXSkNCj4+PiArCQk7 DQo+Pj4gK30NCj4+PiArDQo+Pj4gKy8qDQo+DQo+Pj4gKw0KPj4+ICsvKiB1cGRhdGUgb3JpZ2lu YWwgYW5kIG5ldyBpcCBoZWFkZXIgZmllbGRzIGZvciB0dW5uZWwgY2FzZSAqLw0KPj4+ICtzdGF0 aWMgaW5saW5lIHZvaWQNCj4+PiArdXBkYXRlX3R1bl9sM2hkcihjb25zdCBzdHJ1Y3QgcnRlX2lw c2VjX3NhICpzYSwgdm9pZCAqcCwgdWludDMyX3QgcGxlbiwNCj4+PiArCQl1aW50MzJfdCBsMmxl biwgcnRlX2JlMTZfdCBwaWQpDQo+Pj4gK3sNCj4+PiArCXN0cnVjdCBpcHY0X2hkciAqdjRoOw0K Pj4+ICsJc3RydWN0IGlwdjZfaGRyICp2Nmg7DQo+Pj4gKw0KPj4+ICsJaWYgKHNhLT50eXBlICYg UlRFX0lQU0VDX1NBVFBfTU9ERV9UVU5MVjQpIHsNCj4+PiArCQl2NGggPSBwOw0KPj4+ICsJCXY0 aC0+cGFja2V0X2lkID0gcGlkOw0KPj4+ICsJCXY0aC0+dG90YWxfbGVuZ3RoID0gcnRlX2NwdV90 b19iZV8xNihwbGVuIC0gbDJsZW4pOw0KPj4gd2hlcmUgYXJlIHdlIHVwZGF0aW5nIHRoZSByZXN0 IG9mIHRoZSBmaWVsZHMsIGxpa2UgdHRsLCBjaGVja3N1bSwgaXANCj4+IGFkZHJlc3NlcywgZXRj DQo+IFRUTCwgaXAgYWRkcmVzc2VzIGFuZCBvdGhlciBmaWxlZHMgc3VwcG9zZWQgdG8gYmUgc2V0 dXBlZCBieSB1c2VyDQo+IGFuZCBwcm92aWRlZCB2aWEgcnRlX2lwc2VjX3NhX2luaXQoKToNCj4g c3RydWN0IHJ0ZV9pcHNlY19zYV9wcm0udHVuLmhkciAgc2hvdWxkIGNvbnRhaW4gcHJlcGFyZWQg dGVtcGxhdGUNCj4gZm9yIEwzKGFuZCBMMiBpZiB1c2VyIHdhbnRzIHRvKSBoZWFkZXIuDQo+IENo ZWNrc3VtIGNhbGN1bGF0aW9uIGlzIG5vdCBkb25lIGluc2lkZSB0aGUgbGliIHJpZ2h0IG5vdyAt DQo+IGl0IGlzIGEgdXNlciByZXNwb25zaWJpbGl0eSB0byBjYWNsdWNhdGUvc2V0IGl0IGFmdGVy IGxpYnJ0ZV9pcHNlYw0KPiBmaW5pc2hlcyBwcm9jZXNzaW5nIHRoZSBwYWNrZXQuDQpJIGJlbGll dmUgc3RhdGljIGZpZWxkcyBhcmUgdXBkYXRlZCBkdXJpbmcgc2EgaW5pdCBidXQgc29tZSBmaWVs ZHMgbGlrZSANCnR0bCBhbmQgY2hlY2tzdW0sDQpjYW4gYmUgdXBkYXRlZCBpbiB0aGUgbGlicmFy eSBpdHNlbGYgd2hpY2ggaXMgdXBkYXRlZCBmb3IgZXZlcnkgcGFja2V0LiANCihodHRwczovL3Rv b2xzLmlldGYub3JnL2h0bWwvcmZjMTYyNCkNCj4NCj4+PiArCX0gZWxzZSB7DQo+Pj4gKwkJdjZo ID0gcDsNCj4+PiArCQl2NmgtPnBheWxvYWRfbGVuID0gcnRlX2NwdV90b19iZV8xNihwbGVuIC0g bDJsZW4gLQ0KPj4+ICsJCQkJc2l6ZW9mKCp2NmgpKTsNCj4+PiArCX0NCj4+PiArfQ0KPj4+ICsN Cj4+PiArI2VuZGlmIC8qIF9JUEhfSF8gKi8NCj4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9p cHNlYy9pcHNlY19zcW4uaCBiL2xpYi9saWJydGVfaXBzZWMvaXBzZWNfc3FuLmgNCj4+PiBpbmRl eCAxOTM1ZjZlMzAuLjZlMThjMzRlYiAxMDA2NDQNCj4+PiAtLS0gYS9saWIvbGlicnRlX2lwc2Vj L2lwc2VjX3Nxbi5oDQo+Pj4gKysrIGIvbGliL2xpYnJ0ZV9pcHNlYy9pcHNlY19zcW4uaA0KPj4+ IEBAIC0xNSw2ICsxNSw0NSBAQA0KPj4+DQo+Pj4gICAgI2RlZmluZSBJU19FU04oc2EpCSgoc2Ep LT5zcW5fbWFzayA9PSBVSU5UNjRfTUFYKQ0KPj4+DQo+Pj4gKy8qDQo+Pj4gKyAqIGdldHMgU1FO LmhpMzIgYml0cywgU1FOIHN1cHBvc2VkIHRvIGJlIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4NCj4+ PiArICovDQo+Pj4gK3N0YXRpYyBpbmxpbmUgcnRlX2JlMzJfdA0KPj4+ICtzcW5faGkzMihydGVf YmU2NF90IHNxbikNCj4+PiArew0KPj4+ICsjaWYgUlRFX0JZVEVfT1JERVIgPT0gUlRFX0JJR19F TkRJQU4NCj4+PiArCXJldHVybiAoc3FuID4+IDMyKTsNCj4+PiArI2Vsc2UNCj4+PiArCXJldHVy biBzcW47DQo+Pj4gKyNlbmRpZg0KPj4+ICt9DQo+Pj4gKw0KPj4+ICsvKg0KPj4+ICsgKiBnZXRz IFNRTi5sb3czMiBiaXRzLCBTUU4gc3VwcG9zZWQgdG8gYmUgaW4gbmV0d29yayBieXRlIG9yZGVy Lg0KPj4+ICsgKi8NCj4+PiArc3RhdGljIGlubGluZSBydGVfYmUzMl90DQo+Pj4gK3Nxbl9sb3cz MihydGVfYmU2NF90IHNxbikNCj4+PiArew0KPj4+ICsjaWYgUlRFX0JZVEVfT1JERVIgPT0gUlRF X0JJR19FTkRJQU4NCj4+PiArCXJldHVybiBzcW47DQo+Pj4gKyNlbHNlDQo+Pj4gKwlyZXR1cm4g KHNxbiA+PiAzMik7DQo+Pj4gKyNlbmRpZg0KPj4+ICt9DQo+Pj4gKw0KPj4+ICsvKg0KPj4+ICsg KiBnZXRzIFNRTi5sb3cxNiBiaXRzLCBTUU4gc3VwcG9zZWQgdG8gYmUgaW4gbmV0d29yayBieXRl IG9yZGVyLg0KPj4+ICsgKi8NCj4+PiArc3RhdGljIGlubGluZSBydGVfYmUxNl90DQo+Pj4gK3Nx bl9sb3cxNihydGVfYmU2NF90IHNxbikNCj4+PiArew0KPj4+ICsjaWYgUlRFX0JZVEVfT1JERVIg PT0gUlRFX0JJR19FTkRJQU4NCj4+PiArCXJldHVybiBzcW47DQo+Pj4gKyNlbHNlDQo+Pj4gKwly ZXR1cm4gKHNxbiA+PiA0OCk7DQo+Pj4gKyNlbmRpZg0KPj4+ICt9DQo+Pj4gKw0KPj4gc2hvdWxk bid0IHdlIG1vdmUgdGhlc2Ugc2VxIG51bWJlciBBUElzIGluIHJ0ZV9lc3AuaCBhbmQgbWFrZSB0 aGVtIGdlbmVyaWMNCj4gSXQgY291bGQgYmUgZG9uZSwgYnV0IHdobyB3aWxsIHVzZSB0aGVtIGV4 Y2VwdCBsaWJydGVfaXBzZWM/DQpXaG9ldmVyIHVzZXMgcnRlX2VzcC5oIGFuZCBub3QgdXNlIGlw c2VjIGxpYi4gVGhlIGludGVudCBvZiBydGVfZXNwLmggaXMgDQpqdXN0IGZvciB0aGF0IG9ubHks IG90aGVyd2lzZSB3ZSBkb24ndCBuZWVkIHJ0ZV9lc3AuaCwgd2UgY2FuIGhhdmUgdGhlIA0KY29u dGVudCBvZiBydGVfZXNwLmggaW4gaXBzZWMgaXRzZWxmLg0KDQo=