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 919B4A0547; Mon, 21 Jun 2021 16:42:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 19A2D411AE; Mon, 21 Jun 2021 16:42:13 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id D832C41158 for ; Mon, 21 Jun 2021 16:42:10 +0200 (CEST) IronPort-SDR: U5DMtNAt2hTKBJM8tBEpXHITlLMlIbdq1fY2VwNWI0/7yPrq+cIHhp4WFrCgaOYJRVOLxgONou f+85g0VuNh+Q== X-IronPort-AV: E=McAfee;i="6200,9189,10022"; a="292487196" X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="292487196" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2021 07:42:09 -0700 IronPort-SDR: /L98KDJOr2oAdR4oI4ZaQywxKwuuxp7U6obRfxUlPjVfUSwLA0lTkPYwJ6rTftD/w3gV0zEqjX QONMCYlshzdQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="422961633" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga002.jf.intel.com with ESMTP; 21 Jun 2021 07:42:09 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 21 Jun 2021 07:42:08 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Mon, 21 Jun 2021 07:42:08 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.107) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Mon, 21 Jun 2021 07:42:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j51asVQKaXSuoJb4e3sqxf8Rg8xlsyu5mg5kwV3HiVydMz55d29HRRLG1FK/e5nAeV5fyaj/0Lf1dMBC1A6lMM5rH4GeVUg+BRmM9X1Ms20h+PsLoLNFbh8WVfRkd9vrI+wXtZ0Hh6kVNRW807Qj2iN3JfCpIodMk+H5ma9S3hNL9+XbGJazCmBj7qRLxsCXX3gDGG0LvtjrNT6tvCD7MiTCmppOnEmfYr0+gPI5kPfIM4USjD3RWj1Rn7vGVGKd6SHAAf11eC64rgpEre5qfHAq0qjxlpEdO1pFG+zt3dBMopV3//VqxmRzyumpsSD9Y+KTLTGsbudfjtQJCVPQnA== 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=dfVCVY4rDOdLeD4XqxeDe9LGb88mepjs9ftPDKsFlHg=; b=JMu2ul0bkqO5zM2arQLiJFbBZzcnQPCzQ5jc3QCSCYN3espE5JA63tDDtWHsx3stEWlUotB0xZMOKw8wg9l1tgQP06Qfyed1I/3Hmu2czDMVSUbvBUh9lA/80ZDaC9Teqn4kn9StD3hAUTnQN2sDnx/8+92mglR6NksTrDDqY2YeX++helcc6pIp22pF5V6WkhSzVYtbrgXVfs6O1T+fXwOBkgdI6V0VCezkrBKbxouiNTG/FKwiYOr7+qCU5yeI8HoEN8Qy06T8b7g5UcUCI9V80F2ZHhwQabLBn0IuDtEVPv/hLCNEGybPhD0ekVTKFw8CG8ybE8SD1h77Jv9s5w== 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=dfVCVY4rDOdLeD4XqxeDe9LGb88mepjs9ftPDKsFlHg=; b=lIHgZkWngtSKhFVzunbjEtZ3u/8Seggdxy2WZGDNrmWIbWO0Of8Igp24+4jhbYz5gYNqJqWrapx/RuSIPWa6xKdYbQmMpsCKqxBmj2kw41T7a5X4vHqVjqHq1Lx4OZndH3XCQxFQsvldTpXTB80ptgchgbJCcRu6cZ52Z8ciT2w= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4547.namprd11.prod.outlook.com (2603:10b6:5:2a1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.23; Mon, 21 Jun 2021 14:42:05 +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.023; Mon, 21 Jun 2021 14:42:05 +0000 From: "Ananyev, Konstantin" To: "Yigit, Ferruh" , Thomas Monjalon , "Richardson, Bruce" CC: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "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/CABIvGAIAAHL6ggAAPB4CAATs50IAEplTQgABL5QCAAAle0A== Date: Mon, 21 Jun 2021 14:42:05 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> <0bb118ba-2658-a7d7-ad8f-bf27f62849f7@intel.com> <43d5d092-73cc-e5a1-5d5d-2e4f9c6c1759@intel.com> In-Reply-To: <43d5d092-73cc-e5a1-5d5d-2e4f9c6c1759@intel.com> 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: intel.com; dkim=none (message not signed) header.d=none;intel.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: 0c04d87b-2be4-46f3-9e6d-08d934c2bd37 x-ms-traffictypediagnostic: DM6PR11MB4547: 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:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: h0ERSJgshXY6wRBr+MhWEyNqZFnoO/Si8BkijWJTSdVjeI/yuKHZAq5vN6Wp2w5VEKKxJvDtiHo1+ZIYVeqkkfSsU9xK/PK6qt1FRMDq7QKm5owJmaLAHZm7sTX9oiX4Kr2/HLJ2vS2edvlgMFFApnBa8H/Qc1CWKEN2ILk7c2YHAv+g7lwI5JyQtsCOqnFwmiHi50YSAFllmOR/rwe7E14+SoY/njA+j6/KMuE8BidZgAUBoKpBiI4e26LrMEOuVpOwK3zv1ar0CT5WJ+24MUn5FOJawMAUAxNEi4HQhMX7l1QenyrGPcQEgZddTfpHZg41EX3RT7RqlVmQUvxvKN4Hy5jdnHR0BJhekeKvAXYQU2azS1sOhUAF2CqU8d+8T78n3swKTJbdEqCRnJ9MK+VQMSCCzdN3dwuxvjFm/984JSh++jg5S84n/7EQ2JxtohLrZqtGfjoib3BvdboQdD/NXyF4/meWZM71gVL6Nhya1n1nat5KzwMhPZ3zaX31FLoxUadJVow4/rTFivRvlDzzppOvhfozVINepEZBHmCNyraHmx/8+U8LEnFOQs+lbrxsZnPcCGmzfeDZmzNJIPhnji8c1FM+h1b7J72Sv/k= 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:(346002)(396003)(366004)(376002)(39860400002)(136003)(26005)(316002)(186003)(86362001)(54906003)(110136005)(7696005)(478600001)(8936002)(8676002)(71200400001)(55236004)(33656002)(5660300002)(6636002)(2906002)(52536014)(6506007)(4326008)(55016002)(9686003)(64756008)(38100700002)(122000001)(66476007)(66446008)(66556008)(66946007)(76116006)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T3dlbHNuYktuZWZwQkR4ZTJVRnZPMFRtc2I5U0cybU1uSUxIWFUvR1Q1N2xE?= =?utf-8?B?dDN3UnYramQ3MTFleVduMlBwemFZVjdVUzd5SVQyTVNlcHpiQ0gyZ0tlNExZ?= =?utf-8?B?VEpFaFNSU1UzcWFYUzJocEF3RDNEb0JmYXJ0blJnZFBsNWhYbDJOcnI5Rk8w?= =?utf-8?B?dTVyUEhyS1U1dGNDL1FVZmF1RXFlS2trMC9ieGdhNFRnaHFDUXkxd2RiclFP?= =?utf-8?B?US9oVTVoaXlobEU5TW90RndkZlFFUFNuS09GQWQ5WmtDZVNGb0h5YXE5TTVJ?= =?utf-8?B?NkxCY1kzc0FSSlRiamFZRXpmMmtCalRiVHpLRDRkbllwNVJYMFkzYXRxMzRJ?= =?utf-8?B?a204MHEvb04wSUp6VitWMWk1ZFJlQ3ZMS0d3WlMzbjdVTE5XOFpPWlN2RWVU?= =?utf-8?B?SnQ4a2htWmRPT2hxQVowOHZzaS9mK3AybHRiOXp0SXVCVVVrUVRRWTVnZkFa?= =?utf-8?B?RUFkSWJoT0pvMDJGVkhMUkg2SksvNzJwQXhzcXBvSVZwK0t1Q2NjN2dQUE5k?= =?utf-8?B?WTc1a0M2RmlTcEJtT2xlb2g1VEc5OGFSdmhjcUdZT2h1SFR0NTNJdEV6WjZI?= =?utf-8?B?LzdTN2lKS05sQXVvWTEyOGpsVDZtUnlLYXFtQmQzLzRGWWZKTGlaS3cwLzF1?= =?utf-8?B?M3VLVlIrNG9TQ0QxbHhrVnVnTkx6OGxZSU4wS0J5WTRkQ0duTmp2eDIyWEdq?= =?utf-8?B?NzdTaUJjT29FUU5kZmhNU1loMWw4NHNCbkRWK0dpakcvSldrRndxcVZXU0lV?= =?utf-8?B?R1dyV0NKdkI4NGNJa1hYRkNsZFV0TDVUVzhKZnYwZm14T2d3YjFsc1VuRDg3?= =?utf-8?B?Y3BQaFN6bktqK2JFY0VFWjZSUkpkenRZQkhMNFo3OW5vcVdqRzNndmFPTmVH?= =?utf-8?B?MDQ0SzZHb1JwMEx1bEdzUmpWNEtGdEwreEx6aFpTNWRkTXpGRVB1ZnBrK01K?= =?utf-8?B?VVVvNXVsVndRNU9ncVhORFhWa0pld212RnVyYnJkSnlGMVRsSCtXOW9jMFJ6?= =?utf-8?B?ODlveGlxNnFUcUJEemVmV1lQRGRSL0ViK3Q3WmovMmkvaENIU0Z4WU9hbHh5?= =?utf-8?B?c0UxSzR4SzlPZFcrUlB4bEljTFdDTDlnQ2IzVk5USHM1dGxjMkozaWR4NkVh?= =?utf-8?B?UTBUeGhVcXJRRXNiaGxzeUFFQ0ovdjN1R1YzUTNvSXpsMGVnR1VKbXJuVi9R?= =?utf-8?B?QXVsZXRJMVlFTFBrQzVZQU5rT21JSVc0amVla2w2eEdOZEpWRytMWDIrUU9K?= =?utf-8?B?ZStiOW1BeXMySklJUjc0blZQcXFOb0NiRDJUN2dvYlcwQjlBbnc5TUJoOEVB?= =?utf-8?B?ZTNhRkp0YUZqQXpCZGczZ1prWTdUZ3ZSWGgvNGhHNk5NQld3Y2JTaTFiTzRq?= =?utf-8?B?UmJhS2YwaG9DaStlblFyamF0eWRUWjRpRTlqVUVmZXk5NVYrRDgwbFc3Q2Yx?= =?utf-8?B?VWIxQU1MWC9yKzJnSDZPQlZpck9DanEwSDlDVDc5N1c3UDBsbTR6bXdaU09u?= =?utf-8?B?REpKQWluY2pQdGxzV3dTQWlvYmlseUVHSWZmUWNTQlc1OExXRGhXbTJSS0Mx?= =?utf-8?B?dGpYbWoxWHU4MmN5MkdJSy9xWjdiekJkNlk4cWUzKzU5THQ1MDJxQllzSlR5?= =?utf-8?B?d2tFcnFFaG8rMnJrLyswLzJDa0ZPaW5jK1doaFV3bklSSG9KZWFGYXZ3WFZ6?= =?utf-8?B?UkdvcGlnOThwSittL0F5NXJnMmd2NE1PdGlLSVBvaENkeVpEdGpvcTc0Smd3?= =?utf-8?Q?8stNMi/n0YbVRvWfuLDpnL54Z/F7uHI0Ve81EvF?= 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: 0c04d87b-2be4-46f3-9e6d-08d934c2bd37 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2021 14:42:05.1055 (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: 424UWu6XUNVs4KP+6K5dOMxBKl1v4qe4dDC/NpKl2pqayJtFABn/DGqc4mf24xGxsv14mYMiNuPaa4Jk94spg+WGGymrHcIqhTAZrWM6svY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4547 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" DQo+ID4+Pj4+PiBPbmUgbW9yZSB0aG91Z2h0IGhlcmUgLSBpZiB3ZSBhcmUgdGFsa2luZyBhYm91 dCBydGVfZXRoZGV2W10gaW4gcGFydGljdWxhciwgSSB0aGluayAgd2UgY2FuOg0KPiA+Pj4+Pj4g MS4gbW92ZSBwdWJsaWMgZnVuY3Rpb24gcG9pbnRlcnMgKHJ4X3BrdF9idXJzdCgpLCBldGMuKSBm cm9tIHJ0ZV9ldGhkZXYgaW50byBhIHNlcGFyYXRlIGZsYXQgYXJyYXkuDQo+ID4+Pj4+PiBXZSBj YW4ga2VlcCBpdCBwdWJsaWMgdG8gc3RpbGwgdXNlIGlubGluZSBmdW5jdGlvbnMgZm9yICdmYXN0 JyBjYWxscyBydGVfZXRoX3J4X2J1cnN0KCksIGV0Yy4gdG8gYXZvaWQNCj4gPj4+Pj4+IGFueSBy ZWdyZXNzaW9ucy4NCj4gPj4+Pj4+IFRoYXQgY291bGQgc3RpbGwgYmUgZmxhdCBhcnJheSB3aXRo IG1heF9zaXplIHNwZWNpZmllZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLg0KPiA+Pj4+Pj4gMi4g SGlkZSByZXN0IG9mIHJ0ZV9ldGhkZXYgc3RydWN0IGluIC5jLg0KPiA+Pj4+Pj4gVGhhdCB3aWxs IGFsbG93IHVzIHRvIGNoYW5nZSB0aGUgc3RydWN0IGl0c2VsZiBhbmQgdGhlIHdob2xlIHJ0ZV9l dGhkZXZbXSB0YWJsZSBpbiBhIHdheSB3ZSBsaWtlDQo+ID4+Pj4+PiAoZmxhdCBhcnJheSwgdmVj dG9yLCBoYXNoLCBsaW5rZWQgbGlzdCkgd2l0aG91dCBBQkkvQVBJIGJyZWFrYWdlcy4NCj4gPj4+ Pj4+DQo+ID4+Pj4+PiBZZXMsIGl0IHdvdWxkIHJlcXVpcmUgYWxsIFBNRHMgdG8gY2hhbmdlIHBy b3RvdHlwZSBmb3IgcGt0X3J4X2J1cnN0KCkgZnVuY3Rpb24NCj4gPj4+Pj4+ICh0byBhY2NlcHQg cG9ydF9pZCwgcXVldWVfaWQgaW5zdGVhZCBvZiBxdWV1ZSBwb2ludGVyKSwgYnV0IHRoZSBjaGFu Z2UgaXMgbWVjaGFuaWNhbCBvbmUuDQo+ID4+Pj4+PiBQcm9iYWJseSBzb21lIG1hY3JvIGNhbiBi ZSBwcm92aWRlZCB0byBzaW1wbGlmeSBpdC4NCj4gPj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IFdl IGFyZSBhbHJlYWR5IHBsYW5uaW5nIHNvbWUgdGFza3MgZm9yIEFCSSBzdGFiaWxpdHkgZm9yIHYy MS4xMSwgSSB0aGluaw0KPiA+Pj4+PiBzcGxpdHRpbmcgJ3N0cnVjdCBydGVfZXRoX2RldicgY2Fu IGJlIHBhcnQgb2YgdGhhdCB0YXNrLCBpdCBlbmFibGVzIGhpZGluZyBtb3JlDQo+ID4+Pj4+IGlu dGVybmFsIGRhdGEuDQo+ID4+Pj4NCj4gPj4+PiBPaywgc291bmRzIGdvb2QuDQo+ID4+Pj4NCj4g Pj4+Pj4NCj4gPj4+Pj4+IFRoZSBvbmx5IHNpZ25pZmljYW50IGNvbXBsaWNhdGlvbiBJIGNhbiBm b3Jlc2VlIHdpdGggaW1wbGVtZW50aW5nIHRoYXQgYXBwcm9hY2ggLQ0KPiA+Pj4+Pj4gd2UnbGwg bmVlZCBhIGFuIGFycmF5IG9mICdmYXN0JyBmdW5jdGlvbiBwb2ludGVycyBwZXIgcXVldWUsIG5v dCBwZXIgZGV2aWNlIGFzIHdlIGhhdmUgbm93DQo+ID4+Pj4+PiAodG8gYXZvaWQgZXh0cmEgaW5k aXJlY3Rpb24gZm9yIGNhbGxiYWNrIGltcGxlbWVudGF0aW9uKS4NCj4gPj4+Pj4+IFRob3VnaCBh cyBhIGJvbnVzIHdlJ2xsIGhhdmUgYWJpbGl0eSB0byB1c2UgZGlmZmVyZW50IFJYL1RYIGZ1bmNp b25zIHBlciBxdWV1ZS4NCj4gPj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IFdoYXQgZG8geW91IHRo aW5rIHNwbGl0IFJ4L1R4IGNhbGxiYWNrIGludG8gaXRzIG93biBzdHJ1Y3QgdG9vPw0KPiA+Pj4+ Pg0KPiA+Pj4+PiBPdmVyYWxsICdydGVfZXRoX2RldicgY2FuIGJlIHNwbGl0IGludG8gdGhyZWUg YXM6DQo+ID4+Pj4+IDEuIHJ0ZV9ldGhfZGV2DQo+ID4+Pj4+IDIuIHJ0ZV9ldGhfZGV2X2J1cnN0 DQo+ID4+Pj4+IDMuIHJ0ZV9ldGhfZGV2X2NiDQo+ID4+Pj4+DQo+ID4+Pj4+IEFuZCB3ZSBjYW4g aGlkZSAxIGZyb20gYXBwbGljYXRpb25zIGV2ZW4gd2l0aCB0aGUgaW5saW5lIGZ1bmN0aW9ucy4N Cj4gPj4+Pg0KPiA+Pj4+IEFzIGRpc2N1c3NlZCBvZmYtbGluZSwgSSB0aGluazoNCj4gPj4+PiBp dCBpcyBwb3NzaWJsZS4NCj4gPj4+PiBNeSBhYnNvbHV0ZSBwcmVmZXJlbmNlIHdvdWxkIGJlIHRv IGhhdmUganVzdCAxLzIgKHdpdGggQ0IgaGlkZGVuKS4NCj4gPj4+DQo+ID4+PiBIb3cgY2FuIHdl IGhpZGUgdGhlIGNhbGxiYWNrcyBzaW5jZSB0aGV5IGFyZSB1c2VkIGJ5IGlubGluZSBidXJzdCBm dW5jdGlvbnMuDQo+ID4+DQo+ID4+IEkgcHJvYmFibHkgSSBvd2UgYSBiZXR0ZXIgZXhwbGFuYXRp b24gdG8gd2hhdCBJIG1lYW50IGluIGZpcnN0IG1haWwuDQo+ID4+IE90aGVyd2lzZSBpdCBzb3Vu ZHMgY29uZnVzaW5nLg0KPiA+PiBJJ2xsIHRyeSB0byB3cml0ZSBhIG1vcmUgZGV0YWlsZWQgb25l IGluIG5leHQgZmV3IGRheXMuDQo+ID4NCj4gPiBBY3R1YWxseSBJIGdhdmUgaXQgYW5vdGhlciB0 aG91Z2h0IG92ZXIgd2Vla2VuZCwgYW5kIG1pZ2h0IGJlIHdlIGNhbg0KPiA+IGhpZGUgcnRlX2V0 aF9kZXZfY2IgZXZlbiBpbiBhIHNpbXBsZXIgd2F5LiBJJ2QgdXNlIGV0aF9yeF9idXJzdCgpIGFz DQo+ID4gYW4gZXhhbXBsZSwgYnV0IHRoZSBzYW1lIHByaW5jaXBsZSBhcHBsaWVzIHRvIG90aGVy ICdmYXN0JyBmdW5jdGlvbnMuDQo+ID4NCj4gPiAgMS4gTmVlZGVkIGNoYW5nZXMgZm9yIFBNRHMg cnhfcGt0X2J1cnN0KCk6DQo+ID4gICAgIGEpIGNoYW5nZSBmdW5jdGlvbiBwcm90b3R5cGUgdG8g YWNjZXB0ICd1aW50MTZfdCBwb3J0X2lkJyBhbmQgJ3VpbnQxNl90IHF1ZXVlX2lkJywNCj4gPiAg ICAgICAgICBpbnN0ZWFkIG9mIGN1cnJlbnQgJ3ZvaWQgKicuDQo+ID4gICAgIGIpIEVhY2ggUE1E IHJ4X3BrdF9idXJzdCgpIHdpbGwgaGF2ZSB0byBjYWxsIHJ0ZV9ldGhfcnhfZXBpbG9nKCkgZnVu Y3Rpb24gYXQgcmV0dXJuLg0KPiA+ICAgICAgICAgIFRoaXMgIGlubGluZSBmdW5jdGlvbiB3aWxs IGRvIGFsbCBDQiBjYWxscyBmb3IgdGhhdCBxdWV1ZS4NCj4gPg0KPiA+IFRvIGJlIG1vcmUgc3Bl Y2lmaWMsIGxldCBzYXkgd2UgaGF2ZSBzb21lIFBNRDogeHl6IHdpdGggUlggZnVuY3Rpb246DQo+ ID4NCj4gPiB1aW50MTZfdA0KPiA+IHh5el9yZWN2X3BrdHModm9pZCAqcnhfcXVldWUsIHN0cnVj dCBydGVfbWJ1ZiAqKnJ4X3BrdHMsIHVpbnQxNl90IG5iX3BrdHMpDQo+ID4gew0KPiA+ICAgICAg c3RydWN0IHh5el9yeF9xdWV1ZSAqcnhxID0gcnhfcXVldWU7DQo+ID4gICAgICB1aW50MTZfdCBu Yl9yeCA9IDA7DQo+ID4NCj4gPiAgICAgIC8qIGRvIGFjdHVhbCBzdHVmZiBoZXJlICovDQo+ID4g ICAgIC4uLi4NCj4gPiAgICAgcmV0dXJuIG5iX3J4Ow0KPiA+IH0NCj4gPg0KPiA+IEl0IHdpbGwg YmUgdHJhbnNmb3JtZWQgdG86DQo+ID4NCj4gPiB1aW50MTZfdA0KPiA+IHh5el9yZWN2X3BrdHMo dWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4 X3BrdHMsIHVpbnQxNl90IG5iX3BrdHMpDQo+ID4gew0KPiA+ICAgICAgICAgIHN0cnVjdCB4eXpf cnhfcXVldWUgKnJ4cTsNCj4gPiAgICAgICAgICB1aW50MTZfdCBuYl9yeDsNCj4gPg0KPiA+ICAg ICAgICAgIHJ4cSA9IF9ydGVfZXRoX3J4X3Byb2xvZyhwb3J0X2lkLCBxdWV1ZV9pZCk7DQo+ID4g ICAgICAgICAgaWYgKHJ4cSA9PSBOVUxMKQ0KPiA+ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4g PiAgICAgICAgICBuYl9yeCA9IF94eXpfcmVhbF9yZWN2X3BrdHMocnhxLCByeF9wa3RzLCBuYl9w a3RzKTsNCj4gPiAgICAgICAgICByZXR1cm4gX3J0ZV9ldGhfcnhfZXBpbG9nKHBvcnRfaWQsIHF1 ZXVlX2lkLCByeF9wa3RzLCBuYl9wa3RzKTsNCj4gPiB9DQo+ID4NCj4gPiBBbmQgc29tZXdoZXJl IGluIGV0aGRldl9wcml2YXRlLmg6DQo+ID4NCj4gPiBzdGF0aWMgaW5saW5lIHZvaWQgKg0KPiA+ IF9ydGVfZXRoX3J4X3Byb2xvZyh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCk7 DQo+ID4gew0KPiA+ICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNl c1twb3J0X2lkXTsNCj4gPg0KPiA+ICNpZmRlZiBSVEVfRVRIREVWX0RFQlVHX1JYDQo+ID4gICAg ICAgICBSVEVfRVRIX1ZBTElEX1BPUlRJRF9PUl9FUlJfUkVUKHBvcnRfaWQsIE5VTEwpOw0KPiA+ ICAgICAgICAgUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+cnhfcGt0X2J1cnN0LCBOVUxM KTsNCj4gPg0KPiA+ICAgICAgICAgaWYgKHF1ZXVlX2lkID49IGRldi0+ZGF0YS0+bmJfcnhfcXVl dWVzKSB7DQo+ID4gICAgICAgICAgICAgICAgIFJURV9FVEhERVZfTE9HKEVSUiwgIkludmFsaWQg UlggcXVldWVfaWQ9JXVcbiIsIHF1ZXVlX2lkKTsNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJu IE5VTEw7DQo+ID4gICAgICAgICB9DQo+ID4gI2VuZGlmDQo+ID4gICByZXR1cm4gZGV2LT5kYXRh LT5yeF9xdWV1ZXNbcXVldWVfaWRdOw0KPiA+IH0NCj4gPg0KPiA+IHN0YXRpYyBpbmxpbmUgdWlu dDE2X3QNCj4gPiBfcnRlX2V0aF9yeF9lcGlsb2codWludDE2X3QgcG9ydF9pZCwgdWludDE2X3Qg cXVldWVfaWQsIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X3BrdHMsIGNvbnN0IHVpbnQxNl90IG5iX3Br dHMpOw0KPiA+IHsNCj4gPiAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9k ZXZpY2VzW3BvcnRfaWRdOw0KPiA+DQo+ID4gI2lmZGVmIFJURV9FVEhERVZfUlhUWF9DQUxMQkFD S1MNCj4gPiAgICAgICAgIHN0cnVjdCBydGVfZXRoX3J4dHhfY2FsbGJhY2sgKmNiOw0KPiA+DQo+ ID4gICAgICAgICAvKiBfX0FUT01JQ19SRUxFQVNFIG1lbW9yeSBvcmRlciB3YXMgdXNlZCB3aGVu IHRoZQ0KPiA+ICAgICAgICAgICogY2FsbCBiYWNrIHdhcyBpbnNlcnRlZCBpbnRvIHRoZSBsaXN0 Lg0KPiA+ICAgICAgICAgICogU2luY2UgdGhlcmUgaXMgYSBjbGVhciBkZXBlbmRlbmN5IGJldHdl ZW4gbG9hZGluZw0KPiA+ICAgICAgICAgICogY2IgYW5kIGNiLT5mbi9jYi0+bmV4dCwgX19BVE9N SUNfQUNRVUlSRSBtZW1vcnkgb3JkZXIgaXMNCj4gPiAgICAgICAgICAqIG5vdCByZXF1aXJlZC4N Cj4gPiAgICAgICAgICAqLw0KPiA+ICAgICAgICAgY2IgPSBfX2F0b21pY19sb2FkX24oJmRldi0+ cG9zdF9yeF9idXJzdF9jYnNbcXVldWVfaWRdLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4NCj4gPiAgICAgICAgIGlmICh1bmxpa2Vs eShjYiAhPSBOVUxMKSkgew0KPiA+ICAgICAgICAgICAgICAgICBkbyB7DQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgbmJfcnggPSBjYi0+Zm4ucngocG9ydF9pZCwgcXVldWVfaWQsIHJ4X3Br dHMsIG5iX3J4LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5iX3BrdHMsIGNiLT5wYXJhbSk7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg Y2IgPSBjYi0+bmV4dDsNCj4gPiAgICAgICAgICAgICAgICAgfSB3aGlsZSAoY2IgIT0gTlVMTCk7 DQo+ID4gICAgICAgICB9DQo+ID4gI2VuZGlmDQo+ID4NCj4gPiAgICAgICAgIHJ0ZV9ldGhkZXZf dHJhY2VfcnhfYnVyc3QocG9ydF9pZCwgcXVldWVfaWQsICh2b2lkICoqKXJ4X3BrdHMsIG5iX3J4 KTsNCj4gPiAgICAgICAgIHJldHVybiBuYl9yeDsNCj4gPiAgfQ0KPiA+DQo+ID4gTm93LCBhcyB5 b3Ugc2FpZCBhYm92ZSwgaW4gcnRlX2V0aGRldi5oIHdlIHdpbGwga2VlcCBvbmx5IGEgZmxhdCBh cnJheQ0KPiA+IHdpdGggcG9pbnRlcnMgdG8gJ2Zhc3QnIGZ1bmN0aW9uczoNCj4gPiBzdHJ1Y3Qg ew0KPiA+ICAgICAgZXRoX3J4X2J1cnN0X3QgICAgICAgICAgICAgcnhfcGt0X2J1cnN0DQo+ID4g ICAgICAgZXRoX3R4X2J1cnN0X3QgICAgICAgICAgICAgdHhfcGt0X2J1cnN0Ow0KPiA+ICAgICAg IGV0aF90eF9wcmVwX3QgICAgICAgICAgICAgIHR4X3BrdF9wcmVwYXJlOw0KPiA+ICAgICAgLi4u Li4NCj4gPiB9IHJ0ZV9ldGhfZGV2X2J1cnN0W107DQo+ID4NCj4gPiBBbmQgcnRlX2V0aF9yeF9i dXJzdCgpIHdpbGwgbG9vayBsaWtlOg0KPiA+DQo+ID4gc3RhdGljIGlubGluZSB1aW50MTZfdA0K PiA+IHJ0ZV9ldGhfcnhfYnVyc3QodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQs DQo+ID4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX21idWYgKipyeF9wa3RzLCBjb25zdCB1 aW50MTZfdCBuYl9wa3RzKQ0KPiA+IHsNCj4gPiAgICAgaWYgKHBvcnRfaWQgPj0gUlRFX01BWF9F VEhQT1JUUykNCj4gPiAgICAgICAgIHJldHVybiAwOw0KPiA+ICAgIHJldHVybiBydGVfZXRoX2Rl dl9idXJzdFtwb3J0X2lkXShwb3J0X2lkLCBxdWV1ZV9pZCwgcnhfcGt0cywgbmJfcGt0cyk7DQo+ ID4gfQ0KPiA+DQo+ID4gWWVzLCBpdCB3aWxsIHJlcXVpcmUgY2hhbmdlcyBpbiAqYWxsKiBQTURz LCBidXQgYXMgSSBzYWlkIGJlZm9yZSB0aGUgY2hhbmdlcyB3aWxsIGJlIGEgbWVjaGFuaWMgb25l cy4NCj4gPg0KPiANCj4gSSBkaWQgbm90IGxpa2UgdGhlIGlkZWEgdG8gcHVzaCB0byBjYWxsaW5n IFJ4L1RYIGNhbGxiYWNrcyByZXNwb25zaWJpbGl0eSB0byB0aGUNCj4gZHJpdmVycywgSSB0aGlu ayBpdCBzaG91bGQgYmUgaW4gdGhlIGV0aGRldiBsYXllci4NCg0KV2VsbCwgSSdkIHNheSBpdCBp cyBhbiBldGhkZXYgbGF5ZXIgZnVuY3Rpb24gdGhhdCBoYXMgdG8gYmUgY2FsbGVkIGJ5IFBNRCDw n5iKDQoNCj4gDQo+IFdoYXQgYWJvdXQgbWFraW5nICdydGVfZXRoX3J4X2VwaWxvZycgYW4gQVBJ IGFuZCBjYWxsIGZyb20gJ3J0ZV9ldGhfcnhfYnVyc3QoKScsDQo+IHdoaWNoIHdpbGwgYWRkIGFu b3RoZXIgZnVuY3Rpb24gY2FsbCBmb3IgUngvVHggY2FsbGJhY2sgYnV0IHNob3VsZG4ndCBhZmZl Y3QgdGhlDQo+IFJ4L1R4IGJ1cnN0Lg0KDQpCdXQgdGhlbiB3ZSBlaXRoZXIgbmVlZCB0byBleHBv c2UgY2FsbC1iYWNrIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyIG9yIHBheSB0aGUgcGVuYWx0eQ0K Zm9yIGV4dHJhIGZ1bmN0aW9uIGNhbGwsIGNvcnJlY3Q/DQoNCg0K