From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 404CBC636D3 for ; Thu, 9 Feb 2023 19:16:55 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 26F2C410F9; Thu, 9 Feb 2023 20:16:54 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2087.outbound.protection.outlook.com [40.107.243.87]) by mails.dpdk.org (Postfix) with ESMTP id 168774067B for ; Thu, 9 Feb 2023 20:16:52 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fF8PY/PUf5wdpKCjdXnhGEc30MFphE7wRETj/hwtPaaJYdXohcxV66swDsEnNgA2nyW8jyKmpWf1PItOTdfqNimVkgnQeohDP62wU+mN8JTFcu2etYJ8nhc+uoKCLdFM3dmEtQ5ZVT7yMTCEZ63CNKBQoYph17cJZHhRGFod5p/laZFRTOxPU+fr4FLnM7sXLxa60x53Qe6ZIQuPMopYhGjV+1oIzIVIIlViMv8ovEDsHr6ADN+ji1/U2EGvtScBicc6YZ/106La+P4H45K7IZvJzxHu4oCCyhDh5r5frjY8QvB3SU+DNLE6I9ELzqaQNqeiQ87grLFUCe2md2pHnw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3072SMxgbrcAdteXR9t+x7FRExWFYVODLlXfJL8JiWI=; b=IvjDnpU5cdPwRO2SansKZCabLaGAsTeYQ+o+8hj2jteSKqVbKG1wAjchDqp9e7ZyyzM4fAj+/fzff5LuUCiTSCTALRX9kNE7tOaA4/s6qSUv2DEOEkxSbBIHKZ0uGorazdY0abBujB2GNtD/GqNnOfJKvrt+k/Q/WS5ttQbPJ1xa3sCRdnltHdYRAaco/VzcARMv0MA4owZArPODu/O1O+FIIXH6HpmtRtO752x6Dl/bMbku6WpcUIAiDH5vx5fLSADN2oypgBXvG36kmQG/pPGeornpM5+pH+mxJkQDRG4qNs9k52bILpMEHCC7TVhgC6c0RX9kyW+Nu9/mnj0YHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3072SMxgbrcAdteXR9t+x7FRExWFYVODLlXfJL8JiWI=; b=hWCi3piYgi1HvMSQ6KzJ4jGU7ho/ZDKk4X7QNAlDQJ6+GcGSyZyWADBRLjUHjXCww/1atZmbcy7t+vTP0/0W9OfB0gj/Oe3pcMz1nwhI0nxY9NMlvnMk/b4h5OCZQou7dKOphdSJNFD9/VGCuqLt7/6JP+pZd7tDsNzBQTziNb1bh3wUZbZLcQslMT9r6qlwzpjNWTkRqKxdXsLpRbdliuf2yU+Ue0lO13Zyt04CGDDsp94kKaaDCi/8DdRoJDepGLimGXE0Y/vggIfC9YCAhJUILoMUGD/MJ4cejFI2rrM0IDpVem4nGFcw6btA/vQTOCB8RsCcq/T0f7sJiy9QPg== Received: from IA1PR12MB6332.namprd12.prod.outlook.com (2603:10b6:208:3e2::13) by DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Thu, 9 Feb 2023 19:16:50 +0000 Received: from IA1PR12MB6332.namprd12.prod.outlook.com ([fe80::be18:9845:3676:784e]) by IA1PR12MB6332.namprd12.prod.outlook.com ([fe80::be18:9845:3676:784e%9]) with mapi id 15.20.6064.036; Thu, 9 Feb 2023 19:16:50 +0000 From: Gregory Etelson To: Andrew Rybchenko , "dev@dpdk.org" CC: Matan Azrad , Raslan Darawsheh , Ori Kam , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Ferruh Yigit Subject: RE: [PATCH v9 1/2] ethdev: add query and update sync and async function calls Thread-Topic: [PATCH v9 1/2] ethdev: add query and update sync and async function calls Thread-Index: AQHZNv0bk27abFwgkUW1uCMSePLsSa67kaMAgAt2KsA= Date: Thu, 9 Feb 2023 19:16:50 +0000 Message-ID: References: <20221221073547.988-1-getelson@nvidia.com> <20230202115401.358-1-getelson@nvidia.com> <89749f8b-6e23-6c7f-edcb-5661ef86a3d6@oktetlabs.ru> In-Reply-To: <89749f8b-6e23-6c7f-edcb-5661ef86a3d6@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR12MB6332:EE_|DM4PR12MB5277:EE_ x-ms-office365-filtering-correlation-id: 56eb3586-3718-4682-8a7e-08db0ad2322b x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BwZgYfb/RcR+9aFcW+WGQj4ZEIDDkX6P4Az7fYga2vZL0dtLqJTSQB/38A9ruk18oNegnXPnz0uQMyGoUcNZUsh4EnKv2ErB6ROBA847CU6LJ/N6DEMRdam8+L9AhTcbubk/O7uwMTy8Moh06zxZvTAAANCGigR3tXiJB4JskXMkhHtWVtEtCDVD3l14TDaSwlB0fXdO8/AuALytBg5SGEBeF09hYhYINZ759xkKCZUVeKsMcsFcNT3HyYoDDRC22e6OgDa4xAQ8wgc4D7vSWuAh5meuMugxzEjj/vReXNBe70gKGvPmslWBgSHkvxjzv651d2fK01FKnQOrjZSPYzdvgCmvd3+L6wR0ShQceZbsgMLgIsuzTd5PI9eeV1X3gjEFBDQ5qamqMerjECm7in5T5drMQhhKKSOvXcIoddyvS5N/VRjSlTWIcwKoK57gDsiycbvB2XRezIi3vUaz+/fQ/YeCYll9Yk53opqystPX+k5jMEYkOEjjV6WJ7ZEzkQWiPk7wPqIyB2iqY8ZWzqDmjweiyZri/tKHsWLdRgiEMZqoZc3sNSHaM0cTK4SAVJiKuz1u3yvJMvBAY0lV4n3M0MS+oqhdMdUW93cQVZvFFA031csKFI8Vnns3+kENgxZkzluBbs7dnqyvGXWnXF+6KStz1wNvBr+pY4F7OhJLs48THRL7CD5lUdjzntetI+BcNFIdAsTI4Qx+dthMEA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR12MB6332.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(376002)(346002)(136003)(396003)(39860400002)(366004)(451199018)(110136005)(54906003)(33656002)(316002)(15650500001)(5660300002)(52536014)(38100700002)(122000001)(8936002)(41300700001)(55016003)(2906002)(64756008)(66476007)(8676002)(66446008)(9686003)(4326008)(76116006)(66946007)(83380400001)(186003)(478600001)(53546011)(86362001)(6506007)(26005)(66556008)(38070700005)(71200400001)(7696005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RGVENjZqR3FnRlpwRjczd2xOVllteEUvQytVdUkzZHpTZloyamVsOGlRdG9i?= =?utf-8?B?SmtuSU0rTVRPanRXNm1wRzhic1BXMm1MREZZMGlaSi9SdGZ0QlB2YnFJbEFC?= =?utf-8?B?RSt1d2NGOFV1NE1UVmRsODEyWjlNR0x1NVc5aEkyZm91a1ZVYzlMQW5pN1hl?= =?utf-8?B?cXVLRHJuMXhwWkV5TVB2V21iZzhzdHhrS1VDNGJWa1NYeXo5MEc0M2p3dnJG?= =?utf-8?B?STVBUEx3OVlaTkRRN2dORW9Xd2tHYTBsNEZENEQ5WjNWb21uWlpPZkNDQml2?= =?utf-8?B?R1U1TlZUYTVTSTFrNHJYdWpzNzV5YWQyU2ZFTDhiWGZrdHIyU0kvbmVHRTlY?= =?utf-8?B?TUJVTXdzcVpqay9tSFoxOWg5U3laNk53a1ErQUYvRFlENCtOMkMxWVBzbk53?= =?utf-8?B?NmEra2lieHI3bFRoZWJCbFJwcGNQcEkra1gxS2szZlJGc1hDZktnUGs4dFFJ?= =?utf-8?B?QlpoSHNMcUpvSjRJTXQ5SmtUVXZhK3RXcHlMVVN2dHdGVGNabnZMUGliWGp5?= =?utf-8?B?YUc3VUFLbkhhN0VkaVJMcGZUKzNTa3dRUjByQ3gwdUFzbzAwUCtLT3AwRnNL?= =?utf-8?B?L0hEbk4rOFFqWU5POFhRMSs2STlrNmNocjJmODVublRUSWRiQjM3eWo1Z0lr?= =?utf-8?B?bVc1WlJXc0RQeHF6NldBeWMwR2hQSlJxWFFzOFBqbjdDMENqcWpIM0JudnJ5?= =?utf-8?B?R3FxMHB6OVJLeG5rWkoyK2hIREJSb0dUNUMvSUZzUWxCYmZoeGZSSjZpbEVr?= =?utf-8?B?dFNXQmVwYWQySzBndFJaS1ZicnpxN25wbVVtbExpa0txSGxSVkFkekkyNk5E?= =?utf-8?B?VFVRcFM3QU1jRzR3MUlORVBwK2JLTHM2QjRBbHU5eGFpYUFOdXByTHpqcHdF?= =?utf-8?B?SmdmdGlnbENmeis5Yy9aZ2R1M1NDdllwUjNwNVI5TEFVOHY4QjRUVG5SMUY0?= =?utf-8?B?Wit0bHh6K1BtZ1RUelpObzFUZEM5WWVRTEhNWStlVVFwTXNZZzkxMmRPQy8y?= =?utf-8?B?OUhpK2JwYnVNWll1ZEw2WG9SNGluMFhRZGduMWxNOTJ4YnRiSkRxazNVOVJH?= =?utf-8?B?aHAzVmtqQjc2WnEwS0FrNW1DWm5kL2R2ZktTYzlLaHJucjJuenVjY1Vhc3Vk?= =?utf-8?B?Zi8xVjYvbDFyNlR4dFZ5RTNMTGFxY2NQSjhiMjFvN2FsY0ROQTRKWi9pSTh6?= =?utf-8?B?SUJZRWh3QU5wL1Azc2sxOC9OS2kwSzQ0ZTZ0ZjVORVJMM21vVExjaVNheUNC?= =?utf-8?B?aUxxNS9OOUFXaGpVUkxlNVR2aXA0WG05TGpWYTF1VGdsZ255ZVVkMDEzbkIw?= =?utf-8?B?Q3RBM3pEQjMxK1p0TGVMZ3BFVm5zQjJCWWlRamYvS1hDWW54eUlYM2g2WUhu?= =?utf-8?B?K3d1c2FmTG1wWmovbTN2TWNjTWkxS3dKblJJdzlIWTV2dG12MVluTTlMNnA2?= =?utf-8?B?OTlkTXhleW15UExwS0FBNEJZUzVjZzR3YVRCYzV1WGFDeUIzL0Z2dSttNGsz?= =?utf-8?B?YnZvRFAyUjZWWnFQUlFFWUNzSnhYQS9XSCtWU3pwdDNZcWZmWjdvL0tWMXcx?= =?utf-8?B?RGV4THJZU3Y1T25jaWVVbE9GMHFzMm1zemNENHNuV3V5cW9YSGh6ZjBtaU1G?= =?utf-8?B?L0FWNDV6VmNCWEJXK0NVUHBDbHpiTUlqOTlRaHlpSXlkaGVLWkxNRU14YU9L?= =?utf-8?B?NUlISE1zb0tHQS9Na0dqUUltKzlWd0luRFAxTUcvTHg0eHUrSnN5dEQrT2NS?= =?utf-8?B?dGhNNEFaenlSUW01VG5zZ3YrbTZzY1h4TlJaUUVnZXVwZWFoZ1pOL1p4RG5h?= =?utf-8?B?aDRJSksxTEdtZjVJdyswaUlnZ29pZ2NLOTVubWtzdXdZZWRmVG4zUXFSTkg2?= =?utf-8?B?MDB3dG84YW5vbi9ocDRhcmIxVEdpVmtTd3dDSWFPaWRmWUZUNENXQnAzam8v?= =?utf-8?B?eFBGN0RNN3hoSEVsZE0xRG10d1lvYklxTFF6UGVxeEpnREdaaHNJQUg5SUhO?= =?utf-8?B?THllT1V0enIrSVRMc0RMcWhNQy9xKzVGSEpkZC9uclpHUGd3WVYybmhkSGtT?= =?utf-8?B?L0o4RDFId2V5Q2MxV3RYZ1Jvd0NDSVdjdnpqeCtGdVBibzRXb0lUYVVOQWV5?= =?utf-8?Q?f22bNTA+9159BNyfJK6LDN+px?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR12MB6332.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56eb3586-3718-4682-8a7e-08db0ad2322b X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 19:16:50.4025 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sgTDGOE5oWrzQc0UnKQ71jIg1iaH5c4MDQy4+m3moNlhcB95mTCtUeFrNIGxrRWVtlZToiD5G6YgRfRJBC+pRA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5277 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 SGVsbG8gQW5kcmV3LA0KDQo+IE9uIDIvMi8yMyAxNDo1NCwgR3JlZ29yeSBFdGVsc29uIHdyb3Rl Og0KPiA+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9mbG93LmMgYi9saWIvZXRoZGV2L3J0 ZV9mbG93LmMNCj4gPiBpbmRleCA3ZDBjMjQzNjZjLi40NTU0YzhmMDIxIDEwMDY0NA0KPiA+IC0t LSBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuYw0KPiA+ICsrKyBiL2xpYi9ldGhkZXYvcnRlX2Zsb3cu Yw0KPiA+IEBAIC0xODgzLDMgKzE4ODMsODUgQEAgcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRs ZV9xdWVyeSh1aW50MTZfdA0KPiBwb3J0X2lkLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhY3Rpb25faGFuZGxlLCBkYXRhLCB1c2VyX2RhdGEsIGVycm9yKTsN Cj4gPiAgICAgICByZXR1cm4gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ID4gICB9 DQo+ID4gKw0KPiA+ICtpbnQNCj4gPiArcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRh dGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGUgKmhhbmRsZSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqdXBkYXRlLCB2b2lkICpxdWVyeSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBydGVfZmxvd19xdWVy eV91cGRhdGVfbW9kZSBtb2RlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKQ0KPiA+ICt7DQo+ID4gKyAgICAgaW50IHJl dDsNCj4gPiArICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldjsNCj4gPiArICAgICBjb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHM7DQo+ID4gKw0KPiA+ICsgICAgIFJURV9FVEhfVkFMSURf UE9SVElEX09SX0VSUl9SRVQocG9ydF9pZCwgLUVOT0RFVik7DQo+ID4gKyAgICAgaWYgKCFoYW5k bGUpDQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiArICAgICBkZXYgPSAm cnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+ICsgICAgIG9wcyA9IHJ0ZV9mbG93X29wc19n ZXQocG9ydF9pZCwgZXJyb3IpOw0KPiA+ICsgICAgIGlmICghb3BzKQ0KPiA+ICsgICAgICAgICAg ICAgcmV0dXJuIC1FTk9UU1VQOw0KPiA+ICsgICAgIGlmICh1cGRhdGUgJiYgcXVlcnkpIHsNCj4g PiArICAgICAgICAgICAgIGlmICghb3BzLT5hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZSkNCj4g PiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9UU1VQOw0KPiA+ICsgICAgICAgICAg ICAgaWYgKG1vZGUgIT0gUlRFX0ZMT1dfUVVfUVVFUllfRklSU1QgJiYNCj4gPiArICAgICAgICAg ICAgICAgICBtb2RlICE9IFJURV9GTE9XX1FVX1VQREFURV9GSVJTVCkNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+IA0KPiBTaG91bGRuJ3QgaXQgYmUgY2hlY2tl ZCBpbiBhbnkgY2FzZT8NCj4gQWxzbyBJJ2QgaW5pdGlhbGl6ZSBSVEVfRkxPV19RVV9RVUVSWV9G SVJTVCB0byAxIG9uIGVudW0NCj4gZGVmaW5pdGlvbiB0byBlbnN1cmUgdGhhdCBqdXN0IDAgaXMg bm90IHVzZWQgYXMgYSBtb2RlIHZhbHVlLg0KPiBBbHNvICJSZXF1aXJlZCBpZiBib3RoICp1cGRh dGUqIGFuZCAqcXVlcnkqIGFyZSBub3QgTlVMTC4iIGRvZXMNCj4gbm90IG1ha2Ugc2Vuc2UgaW4g dGhlIGRlc2NyaXB0aW9uIHNpbmNlIHlvdSBoYXZlIG5vIHdheSB0byBza2lwDQo+IGl0Lg0KPiAN Cg0KRml4ZWQgaW4gdjEwLg0KDQo+ID4gKyAgICAgICAgICAgICByZXQgPSBvcHMtPmFjdGlvbl9o YW5kbGVfcXVlcnlfdXBkYXRlKGRldiwgaGFuZGxlLCB1cGRhdGUsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LCBtb2RlLCBlcnJv cik7DQo+ID4gKyAgICAgfSBlbHNlIGlmICghdXBkYXRlICYmIHF1ZXJ5KSB7DQo+ID4gKyAgICAg ICAgICAgICByZXQgPSBydGVfZmxvd19hY3Rpb25faGFuZGxlX3F1ZXJ5KHBvcnRfaWQsIGhhbmRs ZSwgcXVlcnksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVycm9yKTsNCj4gPiArICAgICB9IGVsc2UgaWYgKHVwZGF0ZSAmJiAhcXVlcnkpIHsN Cj4gPiArICAgICAgICAgICAgIHJldCA9IHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGVfdXBkYXRlKHBv cnRfaWQsIGhhbmRsZSwgdXBkYXRlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXJyb3IpOw0KPiA+ICsgICAgIH0gZWxzZSB7DQo+ID4gKyAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiArICAgICB9DQo+IA0KPiBJTUhPIGxvZ2lj IGlzIHdyb25nIGFib3ZlIHNpbmNlIGl0IHNob3VsZCBiZSBzdWZmaWNpZW50IHRvDQo+IGltcGxl bWVudCBqdXN0IG9uZSBhY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZSBjYWxsYmFjayBpbnN0ZWFk DQo+IG9mIGFsbCB0aHJlZS4NCj4gDQo+IEkuZS4gaWYgYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRh dGUgaXMgYXZhaWxhYmxlLCBpdCBzaG91bGQgYmUNCj4gdXNlZCBpbiBhbnkgY2FzZS4NCj4gDQoN CkZpeGVkIGluIHYxMC4NCg0KPiA+ICsgICAgIHJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQs IGVycm9yKTsNCj4gPiArfQ0KPiA+ICAgfTsNCj4gPg0KPiA+ICAgSU5URVJOQUwgew0KPiANCj4g c2FtZSBmb3IgYXN5bmMgQVBJDQoNCkZpeGVkIGluIHYxMC4NCg0K