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 7125FA0C4B; Thu, 17 Jun 2021 16:59:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EAD2E4067A; Thu, 17 Jun 2021 16:59:11 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 0DFC440150 for ; Thu, 17 Jun 2021 16:59:09 +0200 (CEST) IronPort-SDR: 9vA+1xfTBy97wyagDpInxfOkbrHeJv1a9xrFIqatgMJxCzBQ08SQ5eNpqjuIfwn7fovtGmk4sK 40NPbPTaARBQ== X-IronPort-AV: E=McAfee;i="6200,9189,10017"; a="203360478" X-IronPort-AV: E=Sophos;i="5.83,280,1616482800"; d="scan'208";a="203360478" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jun 2021 07:59:00 -0700 IronPort-SDR: bBycxsROQmTlwPs582j3Q6yq6SZyznWFt8ZE3bPTEsFkNWj9s4VQPbiZpO8r1nrZhNxiFNS8/a CiHDYr3k92Ug== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,280,1616482800"; d="scan'208";a="404961568" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga003.jf.intel.com with ESMTP; 17 Jun 2021 07:58:59 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 17 Jun 2021 07:58:58 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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 via Frontend Transport; Thu, 17 Jun 2021 07:58:58 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.175) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Thu, 17 Jun 2021 07:58:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IOf8bcl8do0BwvgPFb0lPFl0dNcHDRaEOoGNSrqGpWxiOTwcFF+S4TZWrX2/prQhYsnJ3gMhHb1fKuGdAkRnZGpQYP4bLnpAlYJ3UZRkNHfBbT7OxIW1DHqcmJA2J5I7+VZvmeaop4AU9eAv4Ew3zcdL0AzCPgXJw09xzuwxCM1iSOuSs26My8THC4jwfUmb87smXO7jPv00RwQ1ui+9ndKagwUvxFyt+78C7u2S7DwJS8X3YWc6QqkQkS4uml4r+IC9+huLiOiTIBWpBLJF8A4knY5zPyV1dBWQKA/trw/Gny3bqxoog/oXzhe0xpabqhCCm/EzgL8Mc45IqHBHgA== 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=bQwXiXufYowO6uxMalRuLkBH61k8NFwIALCmnsLlEyI=; b=hD4BpewGI7vv3NEaqtySLppLPNOCcEFtuigtHxmGoo6kURP99KhlIfpKB4JgrZ7aL9Jw7ftcBZuq76tuQwg2z+o+KKJcTatQu5hu/4lKjN580Sd0tNxvYc4KWwnq0YVRo9fJu5R3mS7wZv1G/pppZr2OE7xEmRUtlNSTCk9t7gbFBdXbHY2ztZfUyAeQEJvBEhUJ5pRBnrrWH7diR+G6PlyxPU7z9ahcExq+rGpXyhVRHT2BuOz2mccDu2vyvD0olSRRuVrNiepAf2Rsdh6ua21p0SzERILAgNIAzlOYKoxRkzSx5fvTvIyoevnSFv2yY5ISWTbDHDSRm3gblxh6vg== 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=bQwXiXufYowO6uxMalRuLkBH61k8NFwIALCmnsLlEyI=; b=NBNxSdyXtRYnzs4hPgbwbdD2BvjXUj8XT/yWjGdcw+VWH9fkyeF9jKNhb3T3je5QXNZBpnnwfOC3yTZIJnU9H7ErpWlM0lKhFi2WT+B1Aq72mIhKR88ADGPggYuh8VtHCgzr4S0yUXjSIFWp+0ojD8+FTOUxi1zsjHS9vkz1M7c= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4531.namprd11.prod.outlook.com (2603:10b6:5:2a5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.24; Thu, 17 Jun 2021 14:58:56 +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.4219.026; Thu, 17 Jun 2021 14:58:56 +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/CABIvGAIAAHL6g Date: Thu, 17 Jun 2021 14:58:55 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> In-Reply-To: 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: 56da142d-0f66-4ff2-5b1a-08d931a06e11 x-ms-traffictypediagnostic: DM6PR11MB4531: 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: SIceLACvuzHvoJQflR9qWKM9ldysY+tjzsQL0vIyIvEZlE5NtRuJJNrXZxIIzXsqdISjUQWWniBcWA5mIpCo7+vVJtiPm98u3dNyhv5l/yrYASSX1dxPwQe6EXGsAoVvDWdExLqHvf1hwWL4v2f6+C+2LqmDFRv8H6AIzpjc8PZUtNOfMt1U6og2wR4Ua1GeoTy/TmDvZVbTF/yuWhr3hRQO6OfZbuDHbkK9Coqw4/OKnxgWWNuJ3KbOyEghGmJG5T+4ftKWYJchQ0NSuwTrlnZ0LpMCaewsdxgaG95j0kxtVPyMVNbDdpSEyqeTvMIMUE7RYP4CEzGiLHQWnajAX0eZckryZ3t9Ccwbf1VGWV3CK3yXrmZUOySFW0T8pIicPMlCbX4A+lV5+mzEtvF61OQBY+CCb+D4QsK2qaaI2bNfITdpF+Fy8111jhSBRqeCuKGUuJ7Z/RoCxtyn1bGHNp0pD3GTBqzVXf5GO6O+DzqX4T3bI3KvtD4QsPaMMRxQqjgoFZ0xvNP3v+MnLBt0afIcq8IEYlfDf4nRdFgt4F18ZUv8SVEozP8+u/Ke7v3Z7FrroaUe6xTjaLUopL85z6gtcTs8y+y/S+heuZ2fY7c= 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)(366004)(376002)(39860400002)(136003)(396003)(4326008)(316002)(76116006)(2906002)(186003)(38100700002)(55236004)(122000001)(110136005)(7696005)(71200400001)(83380400001)(54906003)(8676002)(9686003)(66446008)(26005)(64756008)(6506007)(8936002)(66476007)(86362001)(66556008)(66946007)(5660300002)(55016002)(66574015)(6636002)(33656002)(52536014)(478600001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U1RBeElSWklxeDhMdjh5cE5GaWJGcVRJQTFvaUwxRjVNZXBrRHhkc0ZEb0g4?= =?utf-8?B?VkNYYU94TGdvZEsyL0lEN1hpTW9PdC85Q2UwaEpxeVNNRFExQm4yU2FhR01l?= =?utf-8?B?bWUzNFRWMlVaTi9WbW54aFVjUlRHR2FBR2tibVJoQXVUMDdTMzR0N09kSSto?= =?utf-8?B?ZnZaRFlyWDc4OEMxUkJHRk0vdzRoaXB6dXAzRTJuR3RmUk1ybEJzcjlKaGxM?= =?utf-8?B?U0tpdkoxVlBmeFFBNUNFVXBlanJISktiZGROWkwydHg2NXF1aU13MmpSM3RW?= =?utf-8?B?aFRiSHBEcHV5YUpaSUh3dVcrY21aeWN2YUo4YllvNDV5SGVsQXNjZWZKVDUv?= =?utf-8?B?encxOS9TeDNLOUZtR3FkSExMTzFBWWdrNkEyMVBhZ0E0K0cxckJzcWxVcG55?= =?utf-8?B?dnhaRWpwOU5sdlVLZlR1bUVxSFZjM3FSZlEweXR4K082U3NCL1ExMFVrSFJt?= =?utf-8?B?Tll1VWRKVFBKYWw4M05JbnhEdGRBeGloS1d3eE5GOGxrTEtZVE81RnB0MTA4?= =?utf-8?B?aXU4QmM3M0R6NzZjaTlUTGhlNWlaQk5rM3llcFNVblNQaTZrNXp1Z3hyZXgv?= =?utf-8?B?a3M4UE9pYlRoVHdpeDF6cUwvRld3R3U0RHozSmF0UENPdnRSbVJEcnBqQ0NS?= =?utf-8?B?alR2U3E2c0VVTmVMVFNRYWZiYm1kL2NMVStXVExiSkZuQjFEZUo2ckY5TTZQ?= =?utf-8?B?VUtaM0xRazZuZlVkMHVlUTRPK0ZZUWU5QzRsak9JLzFENjlwODlIZEh5Tnps?= =?utf-8?B?MFF2U1RQMHBBTWFLRmhzczRYcm11V3V3ZCtPWVB2SXFaZ3djUFBzSkV2QkJ2?= =?utf-8?B?UGdGN2xxY2lwRWRSSEt6ZjRYMnZ4MmZRV2I0d1FRM0dnSnNuUmZwZ21FVVJw?= =?utf-8?B?YXpycUxrWmtBM005N20vb0UrRm9DL1NBcU1nYXByZ3NjSjJmdXZBNGlPNVA0?= =?utf-8?B?KzBzNlJZemdmVjNaZ2NnMnVlbkFZQXJxUU5jeGVVYi83cWNsZHQ2OUZ1c2VH?= =?utf-8?B?VFFkYWdKWUlRVHFrSVhUSzBMU3FWQjZQS0FmclZBbGV3bGRDRnVCTUk5YzJC?= =?utf-8?B?c1FzNXNNeHRUY1hHSWZZSndPWGVNSlVEQ005Y1gzU0IrODliUHY3cE55RTJL?= =?utf-8?B?bkM3TTNyWG9vTVlOWmtFWWhJbHVwSG54ODdaMzc4VjlOUWoybnR4L2I3ckx1?= =?utf-8?B?cXI0WEdOMEYzT1hMT3hNalFXVEU0STFLSFpuM3dTVVRvdUVuREVGT05mZEdJ?= =?utf-8?B?aU53MXZLT2h0TzNydE9NcXN6dVJ5am5hZENqRUNkbE90bzl3eFBmWURaVFlX?= =?utf-8?B?Tk5kT1IwczNEZHNnQ1crTmNLcTBqUmk5TFJ5YVF5R05USHdvTTVsWGdQcysv?= =?utf-8?B?dEVacHVzcERFdkVka2ljR0JXTmlwcnk1ZGxRS2ZMczRja1Nqb1pDWFdaNHZD?= =?utf-8?B?azVOZm1ReGVLNFFNM201QzZtQmFwU3J6alFTRUZzNjZLWVppcGdNYmhXeXhP?= =?utf-8?B?dEprVHA2di9zb2ZwbmVxeUxpN0F2SHc2c3Q3RWlZZ3AyR1NBTTdyQnd5bEdh?= =?utf-8?B?MTJRSFdBYkpkK2tVSUsxc3BSUXdHcGNsVlZWNXN3RExRRmhlZzZmQU1LMC9C?= =?utf-8?B?S0xZelpwUXpGTE5BS0E3aU43cWhYUXZoa2c0SHMyOTdBZTlaRmVOL3lSSWs3?= =?utf-8?B?Y3RUaFBvb2JrTEl6Y3duN3FUbGIvRENtWUp2S1V1MVliSWJvaDJPNEFsaEM3?= =?utf-8?Q?gqXwR+ukgDnJRxkWutZWgCh/wAFlBBaqYpQeUiN?= 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: 56da142d-0f66-4ff2-5b1a-08d931a06e11 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jun 2021 14:58:55.9835 (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: YcyaItRSBVXUyDUaWzbsrEEk6hBMtuuR50xLOS9G1gIPjO61sswF6waH6SX9XXRdumMAFqJLdB8cpZcAm0qYRjnpULbe0jwdN7CjJnrFvDw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4531 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" DQoNCj4gPj4+DQo+ID4+PiAxNC8wNi8yMDIxIDE1OjE1LCBCcnVjZSBSaWNoYXJkc29uOg0KPiA+ Pj4+IE9uIE1vbiwgSnVuIDE0LCAyMDIxIGF0IDAyOjIyOjQyUE0gKzAyMDAsIE1vcnRlbiBCcsO4 cnVwIHdyb3RlOg0KPiA+Pj4+Pj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5v cmddIE9uIEJlaGFsZiBPZiBUaG9tYXMgTW9uamFsb24NCj4gPj4+Pj4+IFNlbnQ6IE1vbmRheSwg MTQgSnVuZSAyMDIxIDEyLjU5DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gUGVyZm9ybWFuY2Ugb2YgYWNj ZXNzIGluIGEgZml4ZWQtc2l6ZSBhcnJheSBpcyB2ZXJ5IGdvb2QNCj4gPj4+Pj4+IGJlY2F1c2Ug b2YgY2FjaGUgbG9jYWxpdHkNCj4gPj4+Pj4+IGFuZCBiZWNhdXNlIHRoZXJlIGlzIGEgc2luZ2xl IHBvaW50ZXIgdG8gZGVyZWZlcmVuY2UuDQo+ID4+Pj4+PiBUaGUgb25seSBkcmF3YmFjayBpcyB0 aGUgbGFjayBvZiBmbGV4aWJpbGl0eToNCj4gPj4+Pj4+IHRoZSBzaXplIG9mIHN1Y2ggYW4gYXJy YXkgY2Fubm90IGJlIGluY3JlYXNlIGF0IHJ1bnRpbWUuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQW4g YXBwcm9hY2ggdG8gdGhpcyBwcm9ibGVtIGlzIHRvIGFsbG9jYXRlIHRoZSBhcnJheSBhdCBydW50 aW1lLA0KPiA+Pj4+Pj4gYmVpbmcgYXMgZWZmaWNpZW50IGFzIHN0YXRpYyBhcnJheXMsIGJ1dCBz dGlsbCBsaW1pdGVkIHRvIGEgbWF4aW11bS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGF0J3Mgd2h5 IHRoZSBBUEkgcnRlX3BhcnJheSBpcyBpbnRyb2R1Y2VkLA0KPiA+Pj4+Pj4gYWxsb3dpbmcgdG8g ZGVjbGFyZSBhbiBhcnJheSBvZiBwb2ludGVyIHdoaWNoIGNhbiBiZSByZXNpemVkDQo+ID4+Pj4+ PiBkeW5hbWljYWxseQ0KPiA+Pj4+Pj4gYW5kIGF1dG9tYXRpY2FsbHkgYXQgcnVudGltZSB3aGls ZSBrZWVwaW5nIGEgZ29vZCByZWFkIHBlcmZvcm1hbmNlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEFm dGVyIHJlc2l6ZSwgdGhlIHByZXZpb3VzIGFycmF5IGlzIGtlcHQgdW50aWwgdGhlIG5leHQgcmVz aXplDQo+ID4+Pj4+PiB0byBhdm9pZCBjcmFzaHMgZHVyaW5nIGEgcmVhZCB3aXRob3V0IGFueSBs b2NrLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEVhY2ggZWxlbWVudCBpcyBhIHBvaW50ZXIgdG8gYSBt ZW1vcnkgY2h1bmsgZHluYW1pY2FsbHkgYWxsb2NhdGVkLg0KPiA+Pj4+Pj4gVGhpcyBpcyBub3Qg Z29vZCBmb3IgY2FjaGUgbG9jYWxpdHkgYnV0IGl0IGFsbG93cyB0byBrZWVwIHRoZSBzYW1lDQo+ ID4+Pj4+PiBtZW1vcnkgcGVyIGVsZW1lbnQsIG5vIG1hdHRlciBob3cgdGhlIGFycmF5IGlzIHJl c2l6ZWQuDQo+ID4+Pj4+PiBDYWNoZSBsb2NhbGl0eSBjb3VsZCBiZSBpbXByb3ZlZCB3aXRoIG1l bXBvb2xzLg0KPiA+Pj4+Pj4gVGhlIG90aGVyIGRyYXdiYWNrIGlzIGhhdmluZyB0byBkZXJlZmVy ZW5jZSBvbmUgbW9yZSBwb2ludGVyDQo+ID4+Pj4+PiB0byByZWFkIGFuIGVsZW1lbnQuDQo+ID4+ Pj4+Pg0KPiA+Pj4+Pj4gVGhlcmUgaXMgbm90IG11Y2ggbG9ja3MsIHNvIHRoZSBBUEkgaXMgZm9y IGludGVybmFsIHVzZSBvbmx5Lg0KPiA+Pj4+Pj4gVGhpcyBBUEkgbWF5IGJlIHVzZWQgdG8gY29t cGxldGVseSByZW1vdmUgc29tZSBjb21waWxhdGlvbi10aW1lDQo+ID4+Pj4+PiBtYXhpbXVtcy4N Cj4gPj4+Pj4NCj4gPj4+Pj4gSSBnZXQgdGhlIHB1cnBvc2UgYW5kIG92ZXJhbGwgaW50ZW50aW9u IG9mIHRoaXMgbGlicmFyeS4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBwcm9iYWJseSBhbHJlYWR5IG1l bnRpb25lZCB0aGF0IEkgcHJlZmVyICJlbWJlZGRlZCBzdHlsZSBwcm9ncmFtbWluZyIgd2l0aCBm aXhlZCBzaXplIGFycmF5cywgcmF0aGVyIHRoYW4gcnVudGltZSBjb25maWd1cmFiaWxpdHkuDQo+ ID4+IEl0J3MNCj4gPj4+IG15IHBlcnNvbmFsIG9waW5pb24sIGFuZCB0aGUgRFBESyBUZWNoIEJv YXJkIGNsZWFybHkgcHJlZmVycyByZWR1Y2luZyB0aGUgYW1vdW50IG9mIGNvbXBpbGUgdGltZSBj b25maWd1cmFiaWxpdHksIHNvIHRoZXJlIGlzIG5vIHdheQ0KPiBmb3INCj4gPj4+IG1lIHRvIHN0 b3AgdGhpcyBwcm9ncmVzcywgYW5kIEkgZG8gbm90IGludGVuZCB0byBvcHBvc2UgdG8gdGhpcyBs aWJyYXJ5LiA6LSkNCj4gPj4+Pj4NCj4gPj4+Pj4gVGhpcyBsaWJyYXJ5IGlzIGxpa2VseSB0byBi ZWNvbWUgYSBjb3JlIGxpYnJhcnkgb2YgRFBESywgc28gSSB0aGluayBpdCBpcyBpbXBvcnRhbnQg Z2V0dGluZyBpdCByaWdodC4gQ291bGQgeW91IHBsZWFzZSBtZW50aW9uIGEgZmV3DQo+ID4+IGV4 YW1wbGVzDQo+ID4+PiB3aGVyZSB5b3UgdGhpbmsgdGhpcyBpbnRlcm5hbCBsaWJyYXJ5IHNob3Vs ZCBiZSB1c2VkLCBhbmQgd2hlcmUgaXQgc2hvdWxkIG5vdCBiZSB1c2VkLiBUaGVuIGl0IGlzIGVh c2llciB0byBkaXNjdXNzIGlmIHRoZSBib3JkZXIgbGluZQ0KPiBiZXR3ZWVuDQo+ID4+PiBjb250 cm9sIHBhdGggYW5kIGRhdGEgcGxhbmUgaXMgY29ycmVjdC4gRS5nLiB0aGlzIGxpYnJhcnkgaXMg bm90IGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIGR5bmFtaWNhbGx5IHNpemVkIHBhY2tldCBxdWV1 ZXMgdGhhdCBncm93IGFuZA0KPiBzaHJpbmsNCj4gPj4gaW4NCj4gPj4+IHRoZSBmYXN0IHBhdGgu DQo+ID4+Pj4+DQo+ID4+Pj4+IElmIHRoZSBsaWJyYXJ5IGJlY29tZXMgYSBjb3JlIERQREsgbGli cmFyeSwgaXQgc2hvdWxkIHByb2JhYmx5IGJlIHB1YmxpYyBpbnN0ZWFkIG9mIGludGVybmFsLiBF LmcuIGlmIHRoZSBsaWJyYXJ5IGlzIHVzZWQgdG8gbWFrZQ0KPiA+Pj4gUlRFX01BWF9FVEhQT1JU UyBkeW5hbWljIGluc3RlYWQgb2YgY29tcGlsZSB0aW1lIGZpeGVkLCB0aGVuIHNvbWUgYXBwbGlj YXRpb25zIG1pZ2h0IGFsc28gbmVlZCBkeW5hbWljYWxseSBzaXplZCBhcnJheXMgZm9yIHRoZWly DQo+ID4+PiBhcHBsaWNhdGlvbiBzcGVjaWZpYyBwZXItcG9ydCBydW50aW1lIGRhdGEsIGFuZCB0 aGlzIGxpYnJhcnkgY291bGQgc2VydmUgdGhhdCBwdXJwb3NlIHRvby4NCj4gPj4+Pj4NCj4gPj4+ Pg0KPiA+Pj4+IFRoYW5rcyBUaG9tYXMgZm9yIHN0YXJ0aW5nIHRoaXMgZGlzY3Vzc2lvbiBhbmQg TW9ydGVuIGZvciBmb2xsb3ctdXAuDQo+ID4+Pj4NCj4gPj4+PiBNeSB0aGlua2luZyBpcyBhcyBm b2xsb3dzLCBhbmQgSSdtIHBhcnRpY3VsYXJseSBrZWVwaW5nIGluIG1pbmQgdGhlIGNhc2VzDQo+ ID4+Pj4gb2YgZS5nLiBSVEVfTUFYX0VUSFBPUlRTLCBhcyBhIGxlYWRpbmcgY2FuZGlkYXRlIGhl cmUuDQo+ID4+Pj4NCj4gPj4+PiBXaGlsZSBJIGRpc2xpa2UgdGhlIGhhcmQtY29kZWQgbGltaXRz IGluIERQREssIEknbSBhbHNvIG5vdCBjb252aW5jZWQgdGhhdA0KPiA+Pj4+IHdlIHNob3VsZCBz d2l0Y2ggYXdheSBmcm9tIHRoZSBmbGF0IGFycmF5cyBvciB0aGF0IHdlIG5lZWQgZnVsbHkgZHlu YW1pYw0KPiA+Pj4+IGFycmF5cyB0aGF0IGdyb3cvc2hyaW5rIGF0IHJ1bnRpbWUgZm9yIGV0aGRl dnMuIEkgd291bGQgc3VnZ2VzdCBhIGhhbGYtd2F5DQo+ID4+Pj4gaG91c2UgaGVyZSwgd2hlcmUg d2Uga2VlcCB0aGUgZXRoZGV2cyBhcyBhbiBhcnJheSwgYnV0IG9uZSBhbGxvY2F0ZWQvc2l6ZWQN Cj4gPj4+PiBhdCBydW50aW1lIHJhdGhlciB0aGFuIHN0YXRpY2FsbHkuIFRoaXMgd291bGQgYWxs b3cgdXMgdG8gaGF2ZSBhDQo+ID4+Pj4gY29tcGlsZS10aW1lIGRlZmF1bHQgdmFsdWUsIGJ1dCwg Zm9yIHVzZSBjYXNlcyB0aGF0IG5lZWQgaXQsIGFsbG93IHVzZSBvZiBhDQo+ID4+Pj4gZmxhZyBl LmcuICAibWF4LWV0aGRldnMiIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgcGFyYW1ldGVyIGdp dmVuIHRvIHRoZQ0KPiA+Pj4+IG1hbGxvYyBjYWxsIGZvciB0aGUgYXJyYXkuICBUaGlzIG1heCBs aW1pdCBjb3VsZCB0aGVuIGJlIHByb3ZpZGVkIHRvIGFwcHMNCj4gPj4+PiB0b28gaWYgdGhleSB3 YW50IHRvIG1hdGNoIGFueSBhcnJheSBzaXplcy4gW0FsdGVybmF0aXZlbHkgdGhvc2UgYXBwcyBj b3VsZA0KPiA+Pj4+IGNoZWNrIHRoZSBwcm92aWRlZCBzaXplIGFuZCBlcnJvciBvdXQgaWYgdGhl IHNpemUgaGFzIGJlZW4gaW5jcmVhc2VkIGJleW9uZA0KPiA+Pj4+IHdoYXQgdGhlIGFwcCBpcyBk ZXNpZ25lZCB0byB1c2U/XS4gVGhlcmUgd291bGQgYmUgbm8gZXh0cmEgZGVyZWZlcmVuY2VzIHBl cg0KPiA+Pj4+IHJ4L3R4IGJ1cnN0IGNhbGwgaW4gdGhpcyBzY2VuYXJpbyBzbyBwZXJmb3JtYW5j ZSBzaG91bGQgYmUgdGhlIHNhbWUgYXMNCj4gPj4+PiBiZWZvcmUgKHBvdGVudGlhbGx5IGJldHRl ciBpZiBhcnJheSBpcyBpbiBodWdlcGFnZSBtZW1vcnksIEkgc3VwcG9zZSkuDQo+ID4+Pg0KPiA+ Pj4gSSB0aGluayB3ZSBuZWVkIHNvbWUgYmVuY2htYXJrcyB0byBkZWNpZGUgd2hhdCBpcyB0aGUg YmVzdCB0cmFkZW9mZi4NCj4gPj4+IEkgc3BlbnQgdGltZSBvbiB0aGlzIGltcGxlbWVudGF0aW9u LCBidXQgc29ycnkgSSB3b24ndCBoYXZlIHRpbWUgZm9yIGJlbmNobWFya3MuDQo+ID4+PiBWb2x1 bnRlZXJzPw0KPiA+Pg0KPiA+PiBJIGhhZCBvbmx5IGEgcXVpY2sgbG9vayBhdCB5b3VyIGFwcHJv YWNoIHNvIGZhci4NCj4gPj4gQnV0IGZyb20gd2hhdCBJIGNhbiByZWFkLCBpbiBNVCBlbnZpcm9u bWVudCB5b3VyIHN1Z2dlc3Rpb24gd2lsbCByZXF1aXJlDQo+ID4+IGV4dHJhIHN5bmNocm9uaXph dGlvbiBmb3IgZWFjaCByZWFkLXdyaXRlIGFjY2VzcyB0byBzdWNoIHBhcnJheSBlbGVtZW50IChs b2NrLCByY3UsIC4uLikuDQo+ID4+IEkgdGhpbmsgd2hhdCBCcnVjZSBzdWdnZXN0cyB3aWxsIGJl IG11Y2ggbGlndGhlciwgZWFzaWVyIHRvIGltcGxlbWVudCBhbmQgbGVzcyBlcnJvciBwcm9uZS4N Cj4gPj4gQXQgbGVhc3QgZm9yIHJ0ZV9ldGhkZXZzW10gYW5kIGZyaWVuZHMuDQo+ID4+IEtvbnN0 YW50aW4NCj4gPg0KPiA+IE9uZSBtb3JlIHRob3VnaHQgaGVyZSAtIGlmIHdlIGFyZSB0YWxraW5n IGFib3V0IHJ0ZV9ldGhkZXZbXSBpbiBwYXJ0aWN1bGFyLCBJIHRoaW5rICB3ZSBjYW46DQo+ID4g MS4gbW92ZSBwdWJsaWMgZnVuY3Rpb24gcG9pbnRlcnMgKHJ4X3BrdF9idXJzdCgpLCBldGMuKSBm cm9tIHJ0ZV9ldGhkZXYgaW50byBhIHNlcGFyYXRlIGZsYXQgYXJyYXkuDQo+ID4gV2UgY2FuIGtl ZXAgaXQgcHVibGljIHRvIHN0aWxsIHVzZSBpbmxpbmUgZnVuY3Rpb25zIGZvciAnZmFzdCcgY2Fs bHMgcnRlX2V0aF9yeF9idXJzdCgpLCBldGMuIHRvIGF2b2lkDQo+ID4gYW55IHJlZ3Jlc3Npb25z Lg0KPiA+IFRoYXQgY291bGQgc3RpbGwgYmUgZmxhdCBhcnJheSB3aXRoIG1heF9zaXplIHNwZWNp ZmllZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLg0KPiA+IDIuIEhpZGUgcmVzdCBvZiBydGVfZXRo ZGV2IHN0cnVjdCBpbiAuYy4NCj4gPiBUaGF0IHdpbGwgYWxsb3cgdXMgdG8gY2hhbmdlIHRoZSBz dHJ1Y3QgaXRzZWxmIGFuZCB0aGUgd2hvbGUgcnRlX2V0aGRldltdIHRhYmxlIGluIGEgd2F5IHdl IGxpa2UNCj4gPiAoZmxhdCBhcnJheSwgdmVjdG9yLCBoYXNoLCBsaW5rZWQgbGlzdCkgd2l0aG91 dCBBQkkvQVBJIGJyZWFrYWdlcy4NCj4gPg0KPiA+IFllcywgaXQgd291bGQgcmVxdWlyZSBhbGwg UE1EcyB0byBjaGFuZ2UgcHJvdG90eXBlIGZvciBwa3RfcnhfYnVyc3QoKSBmdW5jdGlvbg0KPiA+ ICh0byBhY2NlcHQgcG9ydF9pZCwgcXVldWVfaWQgaW5zdGVhZCBvZiBxdWV1ZSBwb2ludGVyKSwg YnV0IHRoZSBjaGFuZ2UgaXMgbWVjaGFuaWNhbCBvbmUuDQo+ID4gUHJvYmFibHkgc29tZSBtYWNy byBjYW4gYmUgcHJvdmlkZWQgdG8gc2ltcGxpZnkgaXQuDQo+ID4NCj4gDQo+IFdlIGFyZSBhbHJl YWR5IHBsYW5uaW5nIHNvbWUgdGFza3MgZm9yIEFCSSBzdGFiaWxpdHkgZm9yIHYyMS4xMSwgSSB0 aGluaw0KPiBzcGxpdHRpbmcgJ3N0cnVjdCBydGVfZXRoX2RldicgY2FuIGJlIHBhcnQgb2YgdGhh dCB0YXNrLCBpdCBlbmFibGVzIGhpZGluZyBtb3JlDQo+IGludGVybmFsIGRhdGEuDQoNCk9rLCBz b3VuZHMgZ29vZC4NCg0KPiANCj4gPiBUaGUgb25seSBzaWduaWZpY2FudCBjb21wbGljYXRpb24g SSBjYW4gZm9yZXNlZSB3aXRoIGltcGxlbWVudGluZyB0aGF0IGFwcHJvYWNoIC0NCj4gPiB3ZSds bCBuZWVkIGEgYW4gYXJyYXkgb2YgJ2Zhc3QnIGZ1bmN0aW9uIHBvaW50ZXJzIHBlciBxdWV1ZSwg bm90IHBlciBkZXZpY2UgYXMgd2UgaGF2ZSBub3cNCj4gPiAodG8gYXZvaWQgZXh0cmEgaW5kaXJl Y3Rpb24gZm9yIGNhbGxiYWNrIGltcGxlbWVudGF0aW9uKS4NCj4gPiBUaG91Z2ggYXMgYSBib251 cyB3ZSdsbCBoYXZlIGFiaWxpdHkgdG8gdXNlIGRpZmZlcmVudCBSWC9UWCBmdW5jaW9ucyBwZXIg cXVldWUuDQo+ID4NCj4gDQo+IFdoYXQgZG8geW91IHRoaW5rIHNwbGl0IFJ4L1R4IGNhbGxiYWNr IGludG8gaXRzIG93biBzdHJ1Y3QgdG9vPw0KPiANCj4gT3ZlcmFsbCAncnRlX2V0aF9kZXYnIGNh biBiZSBzcGxpdCBpbnRvIHRocmVlIGFzOg0KPiAxLiBydGVfZXRoX2Rldg0KPiAyLiBydGVfZXRo X2Rldl9idXJzdA0KPiAzLiBydGVfZXRoX2Rldl9jYg0KPiANCj4gQW5kIHdlIGNhbiBoaWRlIDEg ZnJvbSBhcHBsaWNhdGlvbnMgZXZlbiB3aXRoIHRoZSBpbmxpbmUgZnVuY3Rpb25zLg0KDQpBcyBk aXNjdXNzZWQgb2ZmLWxpbmUsIEkgdGhpbms6DQppdCBpcyBwb3NzaWJsZS4gDQpNeSBhYnNvbHV0 ZSBwcmVmZXJlbmNlIHdvdWxkIGJlIHRvIGhhdmUganVzdCAxLzIgKHdpdGggQ0IgaGlkZGVuKS4N CkJ1dCBldmVuIHdpdGggMS8yLzMgaW4gcGxhY2UgSSB0aGluayBpdCB3b3VsZCBiZSAgYSBnb29k IHN0ZXAgZm9yd2FyZC4NClByb2JhYmx5IHdvcnRoIHRvIHN0YXJ0IHdpdGggMS8yLzMgZmlyc3Qg YW5kIHRoZW4gc2VlIGhvdyBkaWZmaWN1bHQgaXQNCndvdWxkIGJlIHRvIHN3aXRjaCB0byAxLzIu DQpEbyB5b3UgcGxhbiB0byBzdGFydCB3b3JraW5nIG9uIGl0Pw0KIA0KS29uc3RhbnRpbg0KDQoN Cg0KDQo=