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 2B1A1A0548; Tue, 22 Jun 2021 14:13:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DE4BB4003F; Tue, 22 Jun 2021 14:13:46 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id EA4044003C for ; Tue, 22 Jun 2021 14:13:45 +0200 (CEST) IronPort-SDR: 0SBjKbBAFZRJ7GaBQNawraDa5vOFjpyDqqRbt0ybs6esPEpMqRY/hRFfIhoiTKyWyG6p3NW68K xd+W//M7+Rvg== X-IronPort-AV: E=McAfee;i="6200,9189,10022"; a="270886146" X-IronPort-AV: E=Sophos;i="5.83,291,1616482800"; d="scan'208";a="270886146" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jun 2021 05:13:38 -0700 IronPort-SDR: Ehr8/PMR+2kvfUZj6QCI6kXgNHoB5oCUULA25tcrskEPd143uCi2TXkkS9wfCFenT4BUmvEXAR NnSzEPkUzI+Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,291,1616482800"; d="scan'208";a="473751369" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga004.fm.intel.com with ESMTP; 22 Jun 2021 05:13:38 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Tue, 22 Jun 2021 05:13:37 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Tue, 22 Jun 2021 05:13:37 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.47) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Tue, 22 Jun 2021 05:13:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c+2TjBViIzKF3L9Ht3QH+Jj5BEcm5VJuja2nFTMU37miL+Taz6jMbX59z+ALeTScSDXPDsNzZLh8oJkEVzWaEpfMy2/RwQIYmSwtb8QemCk+JC80xy89q1ghM4iWzV6OMx1WSqsO+TnkOdRq6TrHs5j9Iihwy0pnJbzBlxaNNqQA5nhWry0UJDZZtwAXwW5/AV5P5xPlS8l275UTmW6TPcrvpOVUAPZGNanjWmeLBSIndTp8KjwXkGGXzC5O/REZkS9Pmi7iSLZW/7XV3G5tG5lZoEIL3EGP/FvLHg8iL1r4lHVWgCZtC7cDPnMqZKf6mWPuwcWcBZtw8m6wgMLLbA== 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=oQTf1/GA8oNm+S5ky2vJrCAoFw2iy4ksnoHiItnjEko=; b=aCaD9AOmEKk8F0n7sLYhQkl7bTi+f12U1ytjOC5Ji+vutS10SqOcBslwQI+qTy85opvD2dmzlsH94yzrr3ObgIfylGGZ9hH+N1Ee+pv//A5wWvHha0eC8z3TBdEynYV1KGU399fQ5gI4AMWHkxJXB/PtW0iQkj3l/LFDXRP1PwnXsR+9+uPjF/FyLCeoGOIjDkQtTZ0mBsdBQCLLnh4BSlDpNuTCVeFxnhWKyyoNIaZxzaTytHySJqQjAzYF9ubo6C9J9/POcek6j19MZWsqFOywO80W6rlnkgOAitpq7WrNFSlak3Ek5QMZ9A4BJD045LXlW8AjfPNk2B7WrLAy2g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oQTf1/GA8oNm+S5ky2vJrCAoFw2iy4ksnoHiItnjEko=; b=GC++XfIUpuVUFwDRHFxQ5Ootn99zBf49y9ufPSPxad3tewx7FTJzZLhFhYvCMumItMy23QqFv9T/wExe1Ddxqwy6CrZqI1R/Dy3Eyvfa5+koBhYMBu7K4Rs+5lir3q7+XbXWmVPea7wZWVaVFim3t9ad1Bkm0Rl5PHru8u4ZWCs= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB2924.namprd11.prod.outlook.com (2603:10b6:5:66::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.21; Tue, 22 Jun 2021 12:13:35 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4242.024; Tue, 22 Jun 2021 12:13:34 +0000 From: "Ananyev, Konstantin" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Yigit, Ferruh" , Thomas Monjalon , "Richardson, Bruce" CC: "dev@dpdk.org" , "olivier.matz@6wind.com" , "andrew.rybchenko@oktetlabs.ru" , "honnappa.nagarahalli@arm.com" , "jerinj@marvell.com" , "gakhil@marvell.com" Thread-Topic: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays Thread-Index: AQHXYQxT3nKj3OToOE+g04oypCLg2asTbdkAgAAOoICAAATCgIAAFeZggAAOq/CABIvGAIAAHL6ggAAPB4CAATs50IAEplTQgAApWQCAAAaAEIAAD6vwgAE+xUCAABC+wIAALMLA Date: Tue, 22 Jun 2021 12:13:34 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> <0bb118ba-2658-a7d7-ad8f-bf27f62849f7@intel.com> <98CBD80474FA8B44BF855DF32C47DC35C6187A@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35C6187B@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35C6187D@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35C6187D@smartserver.smartshare.dk> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: smartsharesystems.com; dkim=none (message not signed) header.d=none; smartsharesystems.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 372db103-98d1-428d-2686-08d9357728b9 x-ms-traffictypediagnostic: DM6PR11MB2924: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hPReDu1LqHKmkL4DhdWRZ7Io3IcCNNDh0eYqerQVwv6TBI8jC8dEwHVCWDKxtIzH4jw+f0UNS23g2E/YIX1aEva/utoPqgPOA/c8fRttnjGw9LVAP4saNwwDygjr+x1u2h7pe3bvdJPpfGVqnmx1sIfJI5p9WFjnZhKtKFOyuvDRMUrPZzRR2/oyQ5l6ju2DsCwOYki5U/8BsuQpgRv/m2b3w3XSb7T1CsIFylrzMGilFBXQDs3DcrUoSJY2uKDuMS5bAWC9uwdkLEt9IPthCndVcvwwu66cnYLZA3lGgxTgelsoJ3Kt5quWTsMq3djUUJJPQpOsEDKfys9Or8Vg0vj7+ZQVh6BW04JUPZB8aUReOlCQ2O64Q5NnNFN+ima6BZ48uEzYcocLyL8kGutohUNHrpLHwRivrDZdY++94bhgdZmZW4IZzLH65piG+k40D8m6ViGj23YPsXr4EBKv2IPYygHRAqB/die3lqmyhdK5e/taeBmeup/0kFKWB+xSq6dVKs5cctpXAq9cD0j91Ik/0MLcX81cwbQRCFiA/07ldSAqib0+kr1XNyrn5sRyDvn+8eT8ju9x3JJqKgIqoscVUd0wAeearzC+h8oCN2Q= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(366004)(396003)(346002)(39860400002)(376002)(76116006)(86362001)(33656002)(4326008)(2906002)(66946007)(6636002)(6506007)(8676002)(5660300002)(83380400001)(7696005)(52536014)(55236004)(66446008)(316002)(122000001)(54906003)(9686003)(64756008)(186003)(478600001)(26005)(55016002)(38100700002)(66556008)(110136005)(8936002)(71200400001)(66476007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dmlYU1BHQ1d1eUFYTHUrQm40TE1TSWowMzdrbVhYaWhVVUZMdmlCV0VOMjBR?= =?utf-8?B?ZmFjcmdZR3hReUhlRWlqQ3QvV29BbXNEeEp4aEhRbUlhUThQUEw2cGxXVnJR?= =?utf-8?B?TGh4cDJ6Q1BzU1Y1V2dEK2xmeVFpd3RrUlgyR1ZyUTNXZWVCZ0k4YThEOE1F?= =?utf-8?B?ZzhGM0VTMlVNU3pSVjd1azk1cFRSaDBSZEVxWDJGam50SjJLU1dIRnBEY0ha?= =?utf-8?B?SU8rQ013ejZ4YUpSVXQ3TkhXWG1KNXdvVDdlL2ppU05EOHJyZkFEdko0cGJP?= =?utf-8?B?aUxrb0dNVVpsR01CaEN0N0xMdVpnV0FOSGdZS00wSloxRXFncnhNdlpVb1dL?= =?utf-8?B?NjBaSThCSDAyTEs2bktTZElnNE12SVVnMDhUaUFKaGcxQ1o2dUI3bWNHdGg3?= =?utf-8?B?OTFWNjh1Qm5iQkF2cStpN212QlBKT2I1STZxZ1hrdUJOLy9oN09uWXd0SUh6?= =?utf-8?B?UGZFc1lkazU5cnMwbTdzQ21ZQ29vVTFhUGhsangrWkFMRnozNjdnQUR2K3Nn?= =?utf-8?B?TklIbFgrNm84d3AzR0NiVXVxeHlid2ZsTDlrNnFUR2FjdU82WjdTZmdvOEdL?= =?utf-8?B?YWwvdWoyVWI3dmVKeXpUbWNVMklLRi8rcUU2d0Z1bU5aMkVidE1FWUQrSXVa?= =?utf-8?B?bDRRSXpOb08rQ1FWK1A5Z3c5aG1sSk1Ick50cEZkczByVzdUMTlBVnh1L20z?= =?utf-8?B?T1JOMnEwRlc0UVBxUXVrcFZlcWlrYnlvemprakxrSDdDLzhHZ0IyWmJzeHM5?= =?utf-8?B?S09qMmdZeWF0MDBKQzNPbUFjMXZpTUgvaFFNeXVYQnd6ZURYei84WkhiY211?= =?utf-8?B?NENsYm9EWUNxL1BiVFphUzFxL1RCbGFCeWNsdnlXUi8yRHpmK1RYRS8rOGJH?= =?utf-8?B?anU1N2hIQUpCd1YxSFdGMEpvOUVSdVVHZ0VnWndyaGVZcDhJT2hwVW16enpP?= =?utf-8?B?aUN6MW1GeEV3QUJvczJCN25tMHd3QzFuaEduOVVIdnlRTkN0b2g5WDRDdzNv?= =?utf-8?B?WEN3a2t0UmdrRzBnbkNMejNZYlJOSFovc1dzSE5UczFhNDc0QXNIajBvdDdk?= =?utf-8?B?T2RNUUVsanZiZklrQTZsc3NjMlQ4RzRLWmdORTFpWG90d3EzenJvRElQSExO?= =?utf-8?B?Zkp1ZDJoZ2FLZWgyWVVvWkFybmFpMUljTmlQbjhvZ3NvangzejFlQ1QyQ1oz?= =?utf-8?B?THNZMWNHN2U1QitFSnhFbUlBL1VXTkhXWDROLzNhdm5CR2ZweUZULzNxTW1V?= =?utf-8?B?eTJ4UlRmSFBoWnZnMmFMWHVvTTVZcCtyWlpIRFhmdTExaitJc01WbVFXUE5W?= =?utf-8?B?YWpnQjhyYXNoUXpuRE5TcUd5bU4wNitwSmNpUVhxQzJuRERnNHVSNjhoUm8r?= =?utf-8?B?d2JTSDltVFBrbzJ0ZmJiQms1ZkZTRG5UQXdpbVJrZFltZmZ1VVIxWGtIemFW?= =?utf-8?B?ak5GalNUUmgrc09wM2tIZ2tPRnM2UnZjNHVKYnNrblFPSG9jYlNlUGZHSlk4?= =?utf-8?B?UEFRbjZRMDZQb09pWVYyK0lsbjFEejZnMDFpZkhKb2JZeE5nS3JhZHpqOXF0?= =?utf-8?B?d3NrTk1KMVdTTitQQW9ySGJUY29SUU5ucDRma2Z6NHJPMFlEQWdPN2pYUlNW?= =?utf-8?B?OEF6TUIwWC9pSWkxTkw0d0hXaFRHaVNXbDZLL3hMZlA0bmR6VmlBZ0liOWp4?= =?utf-8?B?Qm1KQUkxV0l1V0ExcEZwL2xRbjNEWkR1MHRlTloxditFaWtMV3Y5ZXZ0bk1i?= =?utf-8?Q?9R5wyv+s+qPCdVyqhKdB3th3TDLG+quhchJhCRh?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 372db103-98d1-428d-2686-08d9357728b9 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2021 12:13:34.6181 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fbuvShxXSl+GAZ1uD/aBQ3h9xmy6aF6G+5gxJ1d9H+mFmqSeGNvTc0g4MayFEqqdAMFIGC14qpAIEmMALWDKGQSYuaIrxcrSMKcyEj8jsRU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2924 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays 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" DQoNCj4gDQo+ID4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJl aGFsZiBPZiBBbmFueWV2LA0KPiA+IEtvbnN0YW50aW4NCj4gPg0KPiA+ID4NCj4gPiA+ID4gRnJv bTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBBbmFueWV2 LA0KPiA+ID4gPiBLb25zdGFudGluDQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZy b206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgQW5hbnll diwNCj4gPiA+ID4gPiA+IEtvbnN0YW50aW4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g SG93IGNhbiB3ZSBoaWRlIHRoZSBjYWxsYmFja3Mgc2luY2UgdGhleSBhcmUgdXNlZCBieSBpbmxp bmUNCj4gPiA+ID4gYnVyc3QNCj4gPiA+ID4gPiA+IGZ1bmN0aW9ucy4NCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gSSBwcm9iYWJseSBJIG93ZSBhIGJldHRlciBleHBsYW5hdGlvbiB0byB3 aGF0IEkgbWVhbnQgaW4NCj4gPiBmaXJzdA0KPiA+ID4gPiBtYWlsLg0KPiA+ID4gPiA+ID4gPiBP dGhlcndpc2UgaXQgc291bmRzIGNvbmZ1c2luZy4NCj4gPiA+ID4gPiA+ID4gSSdsbCB0cnkgdG8g d3JpdGUgYSBtb3JlIGRldGFpbGVkIG9uZSBpbiBuZXh0IGZldyBkYXlzLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IEFjdHVhbGx5IEkgZ2F2ZSBpdCBhbm90aGVyIHRob3VnaHQgb3ZlciB3ZWVr ZW5kLCBhbmQgbWlnaHQgYmUNCj4gPiB3ZQ0KPiA+ID4gPiBjYW4NCj4gPiA+ID4gPiA+IGhpZGUg cnRlX2V0aF9kZXZfY2IgZXZlbiBpbiBhIHNpbXBsZXIgd2F5LiBJJ2QgdXNlDQo+ID4gZXRoX3J4 X2J1cnN0KCkNCj4gPiA+ID4gYXMNCj4gPiA+ID4gPiA+IGFuIGV4YW1wbGUsIGJ1dCB0aGUgc2Ft ZSBwcmluY2lwbGUgYXBwbGllcyB0byBvdGhlciAnZmFzdCcNCj4gPiA+ID4gZnVuY3Rpb25zLg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAxLiBOZWVkZWQgY2hhbmdlcyBmb3IgUE1EcyByeF9w a3RfYnVyc3QoKToNCj4gPiA+ID4gPiA+ICAgICBhKSBjaGFuZ2UgZnVuY3Rpb24gcHJvdG90eXBl IHRvIGFjY2VwdCAndWludDE2X3QgcG9ydF9pZCcNCj4gPiBhbmQNCj4gPiA+ID4gPiA+ICd1aW50 MTZfdCBxdWV1ZV9pZCcsDQo+ID4gPiA+ID4gPiAgICAgICAgICBpbnN0ZWFkIG9mIGN1cnJlbnQg J3ZvaWQgKicuDQo+ID4gPiA+ID4gPiAgICAgYikgRWFjaCBQTUQgcnhfcGt0X2J1cnN0KCkgd2ls bCBoYXZlIHRvIGNhbGwNCj4gPiA+ID4gcnRlX2V0aF9yeF9lcGlsb2coKQ0KPiA+ID4gPiA+ID4g ZnVuY3Rpb24gYXQgcmV0dXJuLg0KPiA+ID4gPiA+ID4gICAgICAgICAgVGhpcyAgaW5saW5lIGZ1 bmN0aW9uIHdpbGwgZG8gYWxsIENCIGNhbGxzIGZvciB0aGF0DQo+ID4gcXVldWUuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gVG8gYmUgbW9yZSBzcGVjaWZpYywgbGV0IHNheSB3ZSBoYXZlIHNv bWUgUE1EOiB4eXogd2l0aCBSWA0KPiA+ID4gPiBmdW5jdGlvbjoNCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiB1aW50MTZfdA0KPiA+ID4gPiA+ID4geHl6X3JlY3ZfcGt0cyh2b2lkICpyeF9xdWV1 ZSwgc3RydWN0IHJ0ZV9tYnVmICoqcnhfcGt0cywNCj4gPiB1aW50MTZfdA0KPiA+ID4gPiA+ID4g bmJfcGt0cykNCj4gPiA+ID4gPiA+IHsNCj4gPiA+ID4gPiA+ICAgICAgc3RydWN0IHh5el9yeF9x dWV1ZSAqcnhxID0gcnhfcXVldWU7DQo+ID4gPiA+ID4gPiAgICAgIHVpbnQxNl90IG5iX3J4ID0g MDsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgIC8qIGRvIGFjdHVhbCBzdHVmZiBoZXJl ICovDQo+ID4gPiA+ID4gPiAgICAgLi4uLg0KPiA+ID4gPiA+ID4gICAgIHJldHVybiBuYl9yeDsN Cj4gPiA+ID4gPiA+IH0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJdCB3aWxsIGJlIHRyYW5z Zm9ybWVkIHRvOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IHVpbnQxNl90DQo+ID4gPiA+ID4g PiB4eXpfcmVjdl9wa3RzKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLCBzdHJ1 Y3QNCj4gPiBydGVfbWJ1Zg0KPiA+ID4gPiA+ID4gKipyeF9wa3RzLCB1aW50MTZfdCBuYl9wa3Rz KQ0KPiA+ID4gPiA+ID4gew0KPiA+ID4gPiA+ID4gICAgICAgICAgc3RydWN0IHh5el9yeF9xdWV1 ZSAqcnhxOw0KPiA+ID4gPiA+ID4gICAgICAgICAgdWludDE2X3QgbmJfcng7DQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gICAgICAgICAgcnhxID0gX3J0ZV9ldGhfcnhfcHJvbG9nKHBvcnRfaWQs IHF1ZXVlX2lkKTsNCj4gPiA+ID4gPiA+ICAgICAgICAgIGlmIChyeHEgPT0gTlVMTCkNCj4gPiA+ ID4gPiA+ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiA+ID4gPiA+ICAgICAgICAgIG5iX3J4 ID0gX3h5el9yZWFsX3JlY3ZfcGt0cyhyeHEsIHJ4X3BrdHMsIG5iX3BrdHMpOw0KPiA+ID4gPiA+ ID4gICAgICAgICAgcmV0dXJuIF9ydGVfZXRoX3J4X2VwaWxvZyhwb3J0X2lkLCBxdWV1ZV9pZCwg cnhfcGt0cywNCj4gPiA+ID4gPiA+IG5iX3BrdHMpOw0KPiA+ID4gPiA+ID4gfQ0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IEFuZCBzb21ld2hlcmUgaW4gZXRoZGV2X3ByaXZhdGUuaDoNCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBzdGF0aWMgaW5saW5lIHZvaWQgKg0KPiA+ID4gPiA+ID4gX3J0 ZV9ldGhfcnhfcHJvbG9nKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkKTsNCj4g PiA+ID4gPiA+IHsNCj4gPiA+ID4gPiA+ICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0 ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAjaWZkZWYg UlRFX0VUSERFVl9ERUJVR19SWA0KPiA+ID4gPiA+ID4gICAgICAgICBSVEVfRVRIX1ZBTElEX1BP UlRJRF9PUl9FUlJfUkVUKHBvcnRfaWQsIE5VTEwpOw0KPiA+ID4gPiA+ID4gICAgICAgICBSVEVf RlVOQ19QVFJfT1JfRVJSX1JFVCgqZGV2LT5yeF9wa3RfYnVyc3QsIE5VTEwpOw0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ICAgICAgICAgaWYgKHF1ZXVlX2lkID49IGRldi0+ZGF0YS0+bmJfcnhf cXVldWVzKSB7DQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgUlRFX0VUSERFVl9MT0coRVJS LCAiSW52YWxpZCBSWCBxdWV1ZV9pZD0ldVxuIiwNCj4gPiA+ID4gPiA+IHF1ZXVlX2lkKTsNCj4g PiA+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gPiA+ID4gPiA+ICAgICAg ICAgfQ0KPiA+ID4gPiA+ID4gI2VuZGlmDQo+ID4gPiA+ID4gPiAgIHJldHVybiBkZXYtPmRhdGEt PnJ4X3F1ZXVlc1txdWV1ZV9pZF07DQo+ID4gPiA+ID4gPiB9DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gc3RhdGljIGlubGluZSB1aW50MTZfdA0KPiA+ID4gPiA+ID4gX3J0ZV9ldGhfcnhfZXBp bG9nKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLCBzdHJ1Y3QNCj4gPiA+ID4g cnRlX21idWYNCj4gPiA+ID4gPiA+ICoqcnhfcGt0cywgY29uc3QgdWludDE2X3QgbmJfcGt0cyk7 DQo+ID4gPiA+ID4gPiB7DQo+ID4gPiA+ID4gPiAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYg PSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICNp ZmRlZiBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTDQo+ID4gPiA+ID4gPiAgICAgICAgIHN0cnVj dCBydGVfZXRoX3J4dHhfY2FsbGJhY2sgKmNiOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAg ICAgICAgLyogX19BVE9NSUNfUkVMRUFTRSBtZW1vcnkgb3JkZXIgd2FzIHVzZWQgd2hlbiB0aGUN Cj4gPiA+ID4gPiA+ICAgICAgICAgICogY2FsbCBiYWNrIHdhcyBpbnNlcnRlZCBpbnRvIHRoZSBs aXN0Lg0KPiA+ID4gPiA+ID4gICAgICAgICAgKiBTaW5jZSB0aGVyZSBpcyBhIGNsZWFyIGRlcGVu ZGVuY3kgYmV0d2VlbiBsb2FkaW5nDQo+ID4gPiA+ID4gPiAgICAgICAgICAqIGNiIGFuZCBjYi0+ Zm4vY2ItPm5leHQsIF9fQVRPTUlDX0FDUVVJUkUgbWVtb3J5DQo+ID4gb3JkZXIgaXMNCj4gPiA+ ID4gPiA+ICAgICAgICAgICogbm90IHJlcXVpcmVkLg0KPiA+ID4gPiA+ID4gICAgICAgICAgKi8N Cj4gPiA+ID4gPiA+ICAgICAgICAgY2IgPSBfX2F0b21pY19sb2FkX24oJmRldi0+cG9zdF9yeF9i dXJzdF9jYnNbcXVldWVfaWRdLA0KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBfX0FUT01JQ19SRUxBWEVEKTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAg ICAgIGlmICh1bmxpa2VseShjYiAhPSBOVUxMKSkgew0KPiA+ID4gPiA+ID4gICAgICAgICAgICAg ICAgIGRvIHsNCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIG5iX3J4ID0gY2It PmZuLnJ4KHBvcnRfaWQsIHF1ZXVlX2lkLA0KPiA+ID4gPiByeF9wa3RzLA0KPiA+ID4gPiA+ID4g bmJfcngsDQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYl9wa3RzLCBjYi0NCj4gPiA+ID4gPnBhcmFtKTsNCj4gPiA+ID4gPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgIGNiID0gY2ItPm5leHQ7DQo+ID4gPiA+ID4gPiAgICAgICAg ICAgICAgICAgfSB3aGlsZSAoY2IgIT0gTlVMTCk7DQo+ID4gPiA+ID4gPiAgICAgICAgIH0NCj4g PiA+ID4gPiA+ICNlbmRpZg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICAgcnRlX2V0 aGRldl90cmFjZV9yeF9idXJzdChwb3J0X2lkLCBxdWV1ZV9pZCwgKHZvaWQNCj4gPiA+ID4gKiop cnhfcGt0cywNCj4gPiA+ID4gPiA+IG5iX3J4KTsNCj4gPiA+ID4gPiA+ICAgICAgICAgcmV0dXJu IG5iX3J4Ow0KPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYXQgd291bGQg bWFrZSB0aGUgY29tcGlsZXIgaW5saW5lIF9ydGVfZXRoX3J4X2VwaWxvZygpIGludG8gdGhlDQo+ ID4gPiA+IGRyaXZlciB3aGVuIGNvbXBpbGluZyB0aGUgRFBESyBsaWJyYXJ5LiBCdXQNCj4gPiA+ ID4gPiBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTIGlzIGEgZGVmaW5pdGlvbiBmb3IgdGhlIGFw cGxpY2F0aW9uDQo+ID4gPiA+IGRldmVsb3BlciB0byB1c2Ugd2hlbiBjb21waWxpbmcgdGhlIERQ REsgYXBwbGljYXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+IEkgYmVsaWV2ZSBpdCBpcyBmb3IgYm90 aCAtIHVzZXIgYXBwIGFuZCBEUERLIGRyaXZlcnMuDQo+ID4gPiA+IEFGQUlLLCB0aGV5IGJvdGgg aGF2ZSB0byB1c2UgdGhlIHNhbWUgcnRlX2NvbmZpZy5oLCBvdGhlcndpc2UNCj4gPiB0aGluZ3MN Cj4gPiA+ID4gd2lsbCBiZSBicm9rZW4uDQo+ID4gPiA+IElmIGxldCBzYXkgUlRFX0VUSERFVl9S WFRYX0NBTExCQUNLUyBpcyBub3QgZW5hYmxlZCBpbiBldGhkZXYsIHRoZW4NCj4gPiA+ID4gdXNl ciB3b3VsZG4ndCBiZSBhYmxlIHRvIGFkZCBhIGNhbGxiYWNrIGF0IGZpcnN0IHBsYWNlLg0KPiA+ ID4NCj4gPiA+IEluIHRoZSBjYXNlIG9mIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MsIGl0IGlz IGluZGVwZW5kZW50Og0KPiA+DQo+ID4gTm90IHJlYWxseS4NCj4gPiBUaGVyZSBhcmUgZmV3IGxp YnJhcmllcyB3aXRoaW4gRFBESyB0aGF0IGRvIHJlbHkgb24gcngvdHggY2FsbGJhY2tzOg0KPiA+ IGJwZiwgbGF0ZW5jeXN0YXQsIHBkdW1wLCBwb3dlci4NCj4gDQo+IEkgZG8gbm90IGNvbnNpZGVy IHRoZXNlIHRvIGJlIGNvcmUgbGlicmFyaWVzIGluIERQREsuIElmIHRoZXNlIGxpYnJhcmllcyBh cmUgdXNlZCBpbiBhbiBhcHBsaWNhdGlvbiwgdGhhdCBhcHBsaWNhdGlvbiBtdXN0IGJlIGNvbXBp bGVkIHdpdGgNCj4gUlRFX0VUSERFVl9SWFRYX0NBTExCQUNLUy4NCj4gDQo+ID4gV2l0aCB0aGUg YXBwcm9hY2ggYWJvdmUgdGhlaXIgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIGJyb2tlbiAtDQo+ID4g c2V0dXAgZnVuY3Rpb25zIHdpbGwgcmV0dXJuIHN1Y2Nlc3MsIGJ1dCBhY3R1YWwgY2FsbGJhY2tz IHdpbGwgbm90IGJlDQo+ID4gaW52b2tlZC4NCj4gDQo+IEkganVzdCB0b29rIGEgbG9vayBhdCBi cGYgYW5kIGxhdGVuY3lzdGF0LiBCcGYgY29ycmVjdGx5IGNoZWNrcyBmb3IgdGhlIHJldHVybiBj b2RlLCBhbmQgcmV0dXJucyBhbiBlcnJvciBpZiBldGhkZXYgaGFzIGJlZW4gY29tcGlsZWQgd2l0 aG91dA0KPiBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTLiBMYXRlbmN5c3RhdCBjaGVja3MgZm9y IHRoZSByZXR1cm4gY29kZSwgYnV0IG9ubHkgbG9ncyB0aGUgZXJyb3IgYW5kIGNvbnRpbnVlcyBh cyBpZiBldmVyeXRoaW5nIGlzIGdvb2QNCj4gYW55d2F5LiBUaGF0IGlzIGEgYnVnIGluIHRoZSBs YXRlbmN5c3RhdCBsaWJyYXJ5Lg0KDQpJZiBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTIElzIGVu YWJsZWQgb3IgZGlzYWJsZWQgZm9yIGJvdGggRFBESyBhbmQgdXNlciBhcHAgLSBldmVyeXRoaW5n IHdpbGwgd29yayBhcyBleHBlY3RlZC4NCkJ1dCwgYXMgSSB1bmRlcnN0YW5kLCB5b3UgY29uc2lk ZXIgYXBwcm9hY2ggd2hlbiBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTIElzIGVuYWJsZWQgaW4g dGhlIERQREssIGJ1dCBkaXNhYmxlZCBpbiB0aGUgYXBwLg0KU3VjaCBhcHByb2FjaCB3aWxsIGNh dXNlIGEgcHJvYmxlbXMgd2l0aCBzb21lICBsaWJyYXJpZXMgLSBhcyBJIG91dGxpbmVkIGFib3Zl LiANCg0KPiANCj4gPiBGcm9tIG90aGVyIHNpZGUsIHNvbWUgbGlicmFyaWVzIGRvIGludm9rZSBy eC90eCBidXJzdCBvbiB0aGVpciBvd246IGlwLQ0KPiA+IHBpcGVsaW5lLCBncmFwaC4NCj4gPiBG b3IgdGhlbSBjYWxsYmFjayBpbnZvY2F0aW9uIHdpbGwgY29udGludWUgdG8gd29yaywgZXZlbiB3 aGVuDQo+ID4gUlRFX0VUSERFVl9SWFRYX0NBTExCQUNLUyBpcyBkaXNhYmxlZCBpbiB0aGUgYXBw Lg0KPiA+IEluIGdlbmVyYWwsIGJ1aWxkaW5nIERQREsgbGlicyBhbmQgdXNlciBhcHAgd2l0aCBk aWZmZXJlbnQgcnRlX2NvbmZpZy5oDQo+ID4gaXMgcmVhbGx5IGEgYmFkIGlkZWEuDQo+ID4gSXQg bWlnaHQgd29yayBpbiBzb21lIGNhc2VzLCBidXQgSSBiZWxpZXZlIGl0IGlzIG5vdCBzdXBwb3J0 ZWQgYW5kIHVzZXINCj4gPiBzaG91bGQgbm90IHJlbHkgb24gaXQuDQo+ID4gSWYgdXNlciBuZWVk cyB0byBkaXNhYmxlIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MgaW4gaGlzIGFwcCwgdGhlbiB0 aGUNCj4gPiBwcm9wZXIgd2F5IHdvdWxkIGJlOg0KPiA+IC0gdXBkYXRlIHJ0ZV9jb25maWcuaA0K PiA+IC0gcmVidWlsZCBib3RoIERQREsgYW5kIHRoZSBhcHAgd2l0aCBuZXcgY29uZmlnDQo+IA0K PiBJbiBwcmluY2lwbGUsIEkgY29tcGxldGVseSBhZ3JlZSB3aXRoIHlvdXIgcmVhc29uaW5nIGZy b20gYSBoaWdoIGxldmVsIHBlcnNwZWN0aXZlLg0KPiANCj4gSG93ZXZlciwgYWNjZXB0aW5nIGl0 IHdvdWxkIHByb2JhYmx5IGxlYWQgdG8gdGhlIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MgY29t cGlsZSB0aW1lIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGJlaW5nIGNvbXBsZXRlbHkNCj4gcmVtb3Zl ZCwgDQoNCkZvciBub3csIHdlIGFyZSBub3QgdGFsa2luZyBhYm91dCByZW1vdmluZyBvciBldmVu IGRlcHJlY2F0aW5nIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MuDQpXaGF0IEkgYW0gdGFsa2lu ZyBhYm91dCAtIHVzZXIgaGFzIHRvIHVzZSBpdCAoYW5kIG90aGVyIHJ0ZV9jb25maWcuaCBvcHRp b25zKSBwcm9wZXJseS4NCkhlIGNhbid0IHVzZSBkaWZmZXJlbnQgY29uZmlncyBmb3IgRFBESyBs aWJzIGFuZCBhcHAgYW5kIGV4cGVjdCB0aGluZ3MgJ2p1c3Qgd29yaycuDQpUaGlzIGlzIG5vdCBz dXBwb3J0ZWQgcmlnaHQgbm93LCBJIHRoaW5rIGl0IHdpbGwgbmV2ZXIgYmUuICANCklmIGl0IHdv cmtzIHJpZ2h0IG5vdywgdGhpcyBpcyBqdXN0IGltcGxlbWVudGF0aW9uIHNwZWNpZmljcywgd2hp Y2ggdXNlciBzaG91bGQgbm90IHJlbHkgb24uDQoNCj4gYW5kIGV0aGRldiBjYWxsYmFja3MgYmVp bmcgYWx3YXlzIHN1cHBvcnRlZC4gQW5kIEkgZG9uJ3QgdGhpbmsgc3VjaCBhIHBlcmZvcm1hbmNl IGRlZ3JhZGF0aW9uIG9mIGEgY29yZSBEUERLIGxpYnJhcnkgc2hvdWxkIGJlDQo+IGFjY2VwdGVk Lg0KDQpBcyBJIHNhaWQgYWJvdmUsIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MgSXMgc3RpbGwg dGhlcmUuDQpJZiBpdCBpcyByZWFsbHkgY3JpdGljYWwgZm9yIHlvdXIgYXBwIHRvIGRpc2FibGUg aXQgLSB5b3UgY2FuIHN0aWxsIGRvIGl0LCB5b3UganVzdCBuZWVkIHRvIGRvIGl0IGluIGEgcHJv cGVyIHdheS4NCg0KPiA8cmFudCBvbj4NCj4gSSB3YXMgb3Bwb3NlZCB0byB0aGUgImNhbGxiYWNr IGhvb2tzIiBjb25jZXB0IGZyb20gdGhlIGJlZ2lubmluZywgYW5kIHN0aWxsIGFtLiBUaGUgcGF0 aCB0aGF0IHBhY2tldHMgdGFrZSB0aHJvdWdoIHZhcmlvdXMgZnVuY3Rpb25zIGFuZA0KPiBwaXBl bGluZSBzdGFnZXMgc2hvdWxkIGJlIGRldGVybWluZWQgYW5kIGltcGxlbWVudGVkIGJ5IHRoZSBh cHBsaWNhdGlvbiwgbm90IGJ5IHRoZSBEUERLIGxpYnJhcmllcy4NCj4gDQo+IElmIHdlIHdhbnQg dG8gcHJvdmlkZSBhIHN0YW5kYXJkaXplZCBhZHZhbmNlZCBJUCBwaXBlbGluZSBmb3IgRFBESywg d2UgY291bGQgb2ZmZXIgaXQgYXMgYSBtaWRkbGUgbGF5ZXIgbGlicmFyeSB1c2luZyB0aGUgdW5k ZXJseWluZyBEUERLDQo+IGxpYnJhcmllcyB0byBpbXBsZW1lbnQgdmFyaW91cyBjYWxsYmFja3Ms IElQIGZyYWdtZW50YXRpb24gcmVhc3NlbWJseSwgZXRjLi4gRG9uJ3QgdHdlYWsgdGhlIGNvcmUg bGlicmFyaWVzIChjb3N0aW5nIG1lbW9yeSBhbmQvb3INCj4gcGVyZm9ybWFuY2UpIHRvIHN1cHBv cnQgYW4gaW5jcmVhc2luZyBhbW91bnQgb2Ygc3VwcGxlbWVudGFsIGxpYnJhcmllcywgd2hpY2gg bWF5IG5vdCBiZSB1c2VkIGJ5IGFsbCBhcHBsaWNhdGlvbnMuDQo+IA0KPiBXZSBkb24ndCB3YW50 IERQREsgdG8gYmVjb21lIGxpa2UgdGhlIExpbnV4IElQIHN0YWNrLCB3aXRoIGNhbGxiYWNrIGhv b2tzIGFuZCBydW50aW1lIGluc3RhbGxhYmxlIHByb3RvY29sIGhhbmRsaW5nIGV2ZXJ5d2hlcmUu IEFsbCB0aGlzDQo+IGNydWZ0IHdpdGggdGhlaXIgc21hbGwgcGVyZm9ybWFuY2UgZGVncmFkYXRp b25zIGFkZHMgdXAhDQo+IDxyYW50IG9mZj4NCj4gDQo+ID4NCj4gPiA+DQo+ID4gPiBJZiBpdCBp cyBub3QgY29tcGlsZWQgd2l0aCB0aGUgRFBESyBsaWJyYXJ5LCBhdHRlbXB0cyB0byBpbnN0YWxs DQo+ID4gY2FsbGJhY2tzIGZyb20gdGhlIGFwcGxpY2F0aW9uIHdpbGwgZmFpbCB3aXRoIEVOT1RT VVAuDQo+ID4gPg0KPiA+ID4gSWYgaXQgaXMgbm90IGNvbXBpbGVkIHdpdGggdGhlIERQREsgYXBw bGljYXRpb24sIG5vIHRpbWUgd2lsbCBiZQ0KPiA+IHNwZW50IHRyeWluZyB0byBkZXRlcm1pbmUg aWYgYW55IHRoZXJlIGFyZSBhbnkgY2FsbGJhY2tzIHRvIGNhbGwuDQo+ID4gPg0KPiA+ID4gPiBC VFcsICBzdWNoIGNoYW5nZSB3aWxsIGFsbG93IHVzIHRvIG1ha2UgUlRFX0VUSERFVl9SWFRYX0NB TExCQUNLUw0KPiA+ID4gPiBpbnRlcm5hbCBmb3IgZXRoZGV2L1BNRCBsYXllciwgd2hpY2ggaXMg YSBnb29kIHRoaW5nIGZyb20gbXkNCj4gPiA+ID4gcGVyc3BlY3RpdmUuDQo+ID4gPg0KPiA+ID4g SWYgaXQgY2FuIGJlIGRvbmUgd2l0aG91dCBkZWdyYWRpbmcgcGVyZm9ybWFuY2UgZm9yIGFwcGxp Y2F0aW9ucyBub3QNCj4gPiB1c2luZyBjYWxsYmFja3MuDQoNCg==