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 CE453A0C46; Fri, 18 Jun 2021 12:44:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8C38441149; Fri, 18 Jun 2021 12:41:11 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 7C298411F4 for ; Fri, 18 Jun 2021 12:41:09 +0200 (CEST) IronPort-SDR: gjUSn8Xd6t++ve56qDhx4KuEDGc1MqD0E17OCj9C+LUHGhGryQtBOrJx8cCxcxDA3apogsnFbq GFuv1YaNeWSg== X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="203509805" X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="203509805" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 03:41:05 -0700 IronPort-SDR: hinZBW4+46NacqmVbZTHVldQiK90kOc8GIGQ50ilzqgIIa3biPeepqDbGvz7f2lGeoXcyNGLdf wCM+1wd8SFwg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="638119380" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga006.fm.intel.com with ESMTP; 18 Jun 2021 03:41:05 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Fri, 18 Jun 2021 03:41:04 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Fri, 18 Jun 2021 03:41:04 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) 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; Fri, 18 Jun 2021 03:41:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F2aTMAZ+cjr8U4/4MFRLV/xEFvx8EwScdhcloRgdyKg0VV4Wp4Kff388PI0WSGrZ9ilEsuIyVvdwPfky8h5CmxVvCiuwsZmp5vwmZyEyivm2g/pRDzVdr2Rtn9AYHZPE7XIC+HjoI7jiirHkF67nXndki646b0GJflmGlbsqJy1/2YC3RTrJZPDQg0ydcMBUemSbTFQTIa59n70ibSHz6Qf4kqBTsH9KYyM7dkeHgVCqO3iAc3A4RxBvwjwTNc/ui9HojiqFKenYYEjXaD58EosDVcF107/Ao8QuXKE/F6NQAbLI1/qk1KrTYMliL9F5m9U1xqPbJ9bVl+pxhwILfg== 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=FFX+4WqneX/K3RGHWTzuqWZ6NZmOYjqPx4T74WsHfJs=; b=LC5LQrGnq9Sw9VOXmTsmPYWIx2nP5f72hdGg1r3bq1NRWkU0fh1nSN9IAPavCX/4D3EPRHly++ZrFIMjvstNAk/dyWBcUViSAa87mhi9hggM4ahWA5tU8n3/B1l+yuzE8hPLSpC2Lzjb6uucjLee306uJId6vsrK0/tM5BPvdPe0FtLp7FvZ96cXCJaI7Ez1zCKuP51wSHplhurftlpqrVnBuxrkbf4EN8VtdImnSR2UsSWhFK4yboq7rHrO4fxdJHYBj0E/p+QZr86LrMeUJtr8L6xDy1OyND04e2fSwRd1Ubpugl8yfes5T3rUfiDWdh6+l+JFyvmohMgx7AbOYA== 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=FFX+4WqneX/K3RGHWTzuqWZ6NZmOYjqPx4T74WsHfJs=; b=Yjx1O10nQgNqB9UjL9mw6m5h5swkbjpZHe0A99auS3YbwmOO+0kMBphPXVc/3fRynxoCX2MBLHDwBP1IxGIeMRzchTaQmiVPuN2C0ufvjVHZ/NAv+nluYQcrxt5U4O5YsCQOH32MvBcAlVbPebLekn2unucsXOO2JxBBYTEBpTM= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4009.namprd11.prod.outlook.com (2603:10b6:5:193::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.22; Fri, 18 Jun 2021 10:41:02 +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; Fri, 18 Jun 2021 10:41:02 +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/CABIvGAIAAHL6ggAAPB4CAATs50A== Date: Fri, 18 Jun 2021 10:41:02 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> <0bb118ba-2658-a7d7-ad8f-bf27f62849f7@intel.com> In-Reply-To: <0bb118ba-2658-a7d7-ad8f-bf27f62849f7@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: b847f97f-5eed-4121-439a-08d9324591a1 x-ms-traffictypediagnostic: DM6PR11MB4009: 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: leNY+Jj9JbjebU+YZAVi7ohpx9vjtBgUVD9eYDLT5mgjDRkitQgD7OlfsC+zhtOe+samCclcMSgREzu5+XJmK0X9SaCL6kAYGyJwVwpl6fBypTWeNqrCwxTsh74HgvU1mwtL7C9FfBGuy3/GoXZtdTQdYu8nTbXoHCMUxma8Bz/RUPbKxz+H+Bsodte2lCM9N/kVkDkTQWw+0lFO6To0rMgfzRYJXYP+LqIdcG91qf9824H3IwTak0lIBMskyOX0Hj7e3ZYfN7pI5GsmBkCwNbcopQPzB/sLUVp6DHZfBhbda5ewtUSa3VxjQOQa2T008CvHmj9HLLZDGVr5M+26p/kDh/SR9QJSvPstyJB7yGQ0QVdC6bo2qZCA6IF5YdUkL5Juv+dXDqCHRfLGKVAEZSNW8oI4eeLh6kwBE6WoEfA7lrnqMtSW5BmYhxjaJ1lrkXdk0J0cXGObiH+rnqKCtb8EdyR7zuiDDUUJP3r1QKgzShZJ+7evG4zynaaLqBaedt0/Bi3GVtjd9N/eLpuvP/ITLQ5kc+F67X8/mB5wnZlPFZEBS/jt3/Y68I2pFb5Kebmwik9r6dFs5vt1Pc8nrftJj+9T9oalzRdRJybv+SI= 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:(376002)(346002)(39860400002)(396003)(366004)(136003)(86362001)(478600001)(9686003)(6636002)(71200400001)(8676002)(76116006)(33656002)(4326008)(8936002)(55016002)(2906002)(83380400001)(38100700002)(66946007)(6506007)(7696005)(66556008)(64756008)(66476007)(52536014)(110136005)(5660300002)(66446008)(26005)(122000001)(54906003)(186003)(66574015)(55236004)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MG5hM1RYYjRxL2JkZVh0MXh5S0d3UEpjLzRUN2F3RFV4SjRVUEFuY3Z4TjV6?= =?utf-8?B?MFJLSkwvNkY0NTBtZXFtU01aQXdGdnNReEw0RlJtQU9XdGZvNDdteFRvRkp5?= =?utf-8?B?V0RHdGVpazBWWTdpS0NOaUlROE5vMmhBUHZuY0Z2WTZKOW5LRkZPd2NsN2pP?= =?utf-8?B?ME81SWt6alEyRXlrdW1qOUVwNGV4dXJacjQ5ZVpydVdHMXJtdWFtdGlMcVNo?= =?utf-8?B?ZHlyd0ZiK3lGbGxiTWdpQjhjV3VjOEhNNllBalVGZkNTVnZNeEtZS0dNL1dY?= =?utf-8?B?QXV4UFVHTVVMaXBzYlhtT21zSVFMMzhHTEV6QXVyb25ZMHdJR01qajh4cVdY?= =?utf-8?B?dWhlSlBySFRBMlJxK3ZXakE0NjJGZS9rS2ZPMVIrZXZVTnR5YmoybkZHQjJU?= =?utf-8?B?WlN5S1Y5b2dpVkZkU0hwdFl6dCs1Y21ZL0VYT1VGVlBYdGFUU2V5V2VybUlp?= =?utf-8?B?NjJMcklLR2tESWhQNnJkay83ZDhleG1rMUxXVnhEa3hTMXpOZDM2WStVRDVx?= =?utf-8?B?WGo4dUZnWlI3NHdVZHV6QzdqQ2xIekJQODZZMHF4VDhRTG5iZmNOWGNSbjRj?= =?utf-8?B?TmJXck1BZ09JeWszY3FVQncxWndJQ3pLMlVGUGJ5c3V3Z3FySHJzOCt1NnJP?= =?utf-8?B?ZXJpVjMxdG5DOHRtSDBZT3kzd3plaHl3RUZ1K2Y3UFRhMjNXUFo3TS9CSlE4?= =?utf-8?B?ei82aDNxT3RuNEN5RWlHdGdCaG4zb1cveWZRK3Vsb3Jld3RMeTdvRlNlaVpO?= =?utf-8?B?NUdOZmFWZlVMTHdWY0ZIcUZUcTk1Vk82dGxSMkUxaFFEVEc5OW5sYnNyZjJV?= =?utf-8?B?dTBnR3dleUMxQUJ2NSs1Vythenl1bW1xc3o3QXphUXg5NDJDV2VleVBMd0Nm?= =?utf-8?B?V3JSMHF6YmY5eEF5L2tGaHNCVE41WG4xekRjTjZkY29DdjBqNzRtMTM3UGdG?= =?utf-8?B?VU5zM1FaS1R1Y1dyZXdrVU5tRUdJUDI4UEtTeVhQTnFaaHNBRUp4aEpIV1ZQ?= =?utf-8?B?OFRod2tsczl4MlZSYkl2U25ObCtFUXZmQlkwRnFjbE5laGdNV3phV2xJZ0Ja?= =?utf-8?B?bU1uZm9hMXFvR0NZdG9RWjZuT1RxVVZDNU5raUpCdUxER2JpSTJFTytVMDhX?= =?utf-8?B?LzFrY3UwN2U4bXBmRU1yVTJtVzJCYW1Ob2lrdnpxcmNBU0hadFh0MXErVFNJ?= =?utf-8?B?amRVMUNZOThQckJWbFFXUDlSaWJHYjR6SUQ0cFlmVFNHMElqejM1RDVKK3Ra?= =?utf-8?B?c1dDRjBycWZxSVN5RjVFOFdJL2lQTjlES01OQVVqZDhGYlFSRlpwU1dBVHBy?= =?utf-8?B?cnB1SnhOYzFHU3BGTnJIUk12cnd5L0JFc1ZqYlhzUDNiUmdXSzFnejMwdFRI?= =?utf-8?B?Rm9GR3NGS1hiWlM5ck50LzEzNjFGd2RnQkF6T2s5OUpXek5jTkNqeU05VU5k?= =?utf-8?B?Y3BjM2gxQzVpTlR3dTE3WjBiQ2llS2pQUkVlRmw0VVlUbDA3V3YrOS9hOUN5?= =?utf-8?B?R0ZDbFVGaDhGQTY3OXExSzZ0d3BuVENWWjZtWHhuL3AydnVSOGlNTGVSZjRv?= =?utf-8?B?SFdJTm5Fc0dtYXN3NENSVXV3ckFHZnVKT2hVNDdMVmFpQmRUc3RUbVcwcHVN?= =?utf-8?B?dGN1WGxsKzREenZlczlxY2tGeUMzYitJOGpGYm1PYjE1ZmFZQUJVRzVxdysy?= =?utf-8?B?L0xYKzQ2YzRhUThpZXpVQ1pNaEJ6NTZmTk1LR2psNm9YVTkxTGplWFlpblhQ?= =?utf-8?Q?WfoimBYa4fO7FWPYx37+tqrT/zQ8nrqTXDbVD6D?= 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: b847f97f-5eed-4121-439a-08d9324591a1 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2021 10:41:02.5673 (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: YrLqBIY7WbetktEpFKl00aQS545fX0Dd8qGVBRgc5cUS6v29VpMLENEHOEF/lQ3Wj+YOG+Dr4HZ+W5FHrSmCtjlxMLowcMlZ7bshr5S6qgE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4009 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+DQo+ID4+Pj4+IDE0LzA2LzIwMjEgMTU6MTUsIEJydWNlIFJpY2hhcmRzb246DQo+ ID4+Pj4+PiBPbiBNb24sIEp1biAxNCwgMjAyMSBhdCAwMjoyMjo0MlBNICswMjAwLCBNb3J0ZW4g QnLDuHJ1cCB3cm90ZToNCj4gPj4+Pj4+Pj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNA ZHBkay5vcmddIE9uIEJlaGFsZiBPZiBUaG9tYXMgTW9uamFsb24NCj4gPj4+Pj4+Pj4gU2VudDog TW9uZGF5LCAxNCBKdW5lIDIwMjEgMTIuNTkNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gUGVyZm9y bWFuY2Ugb2YgYWNjZXNzIGluIGEgZml4ZWQtc2l6ZSBhcnJheSBpcyB2ZXJ5IGdvb2QNCj4gPj4+ Pj4+Pj4gYmVjYXVzZSBvZiBjYWNoZSBsb2NhbGl0eQ0KPiA+Pj4+Pj4+PiBhbmQgYmVjYXVzZSB0 aGVyZSBpcyBhIHNpbmdsZSBwb2ludGVyIHRvIGRlcmVmZXJlbmNlLg0KPiA+Pj4+Pj4+PiBUaGUg b25seSBkcmF3YmFjayBpcyB0aGUgbGFjayBvZiBmbGV4aWJpbGl0eToNCj4gPj4+Pj4+Pj4gdGhl IHNpemUgb2Ygc3VjaCBhbiBhcnJheSBjYW5ub3QgYmUgaW5jcmVhc2UgYXQgcnVudGltZS4NCj4g Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gQW4gYXBwcm9hY2ggdG8gdGhpcyBwcm9ibGVtIGlzIHRvIGFs bG9jYXRlIHRoZSBhcnJheSBhdCBydW50aW1lLA0KPiA+Pj4+Pj4+PiBiZWluZyBhcyBlZmZpY2ll bnQgYXMgc3RhdGljIGFycmF5cywgYnV0IHN0aWxsIGxpbWl0ZWQgdG8gYSBtYXhpbXVtLg0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBUaGF0J3Mgd2h5IHRoZSBBUEkgcnRlX3BhcnJheSBpcyBpbnRy b2R1Y2VkLA0KPiA+Pj4+Pj4+PiBhbGxvd2luZyB0byBkZWNsYXJlIGFuIGFycmF5IG9mIHBvaW50 ZXIgd2hpY2ggY2FuIGJlIHJlc2l6ZWQNCj4gPj4+Pj4+Pj4gZHluYW1pY2FsbHkNCj4gPj4+Pj4+ Pj4gYW5kIGF1dG9tYXRpY2FsbHkgYXQgcnVudGltZSB3aGlsZSBrZWVwaW5nIGEgZ29vZCByZWFk IHBlcmZvcm1hbmNlLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBBZnRlciByZXNpemUsIHRoZSBw cmV2aW91cyBhcnJheSBpcyBrZXB0IHVudGlsIHRoZSBuZXh0IHJlc2l6ZQ0KPiA+Pj4+Pj4+PiB0 byBhdm9pZCBjcmFzaHMgZHVyaW5nIGEgcmVhZCB3aXRob3V0IGFueSBsb2NrLg0KPiA+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+PiBFYWNoIGVsZW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgbWVtb3J5IGNodW5r IGR5bmFtaWNhbGx5IGFsbG9jYXRlZC4NCj4gPj4+Pj4+Pj4gVGhpcyBpcyBub3QgZ29vZCBmb3Ig Y2FjaGUgbG9jYWxpdHkgYnV0IGl0IGFsbG93cyB0byBrZWVwIHRoZSBzYW1lDQo+ID4+Pj4+Pj4+ IG1lbW9yeSBwZXIgZWxlbWVudCwgbm8gbWF0dGVyIGhvdyB0aGUgYXJyYXkgaXMgcmVzaXplZC4N Cj4gPj4+Pj4+Pj4gQ2FjaGUgbG9jYWxpdHkgY291bGQgYmUgaW1wcm92ZWQgd2l0aCBtZW1wb29s cy4NCj4gPj4+Pj4+Pj4gVGhlIG90aGVyIGRyYXdiYWNrIGlzIGhhdmluZyB0byBkZXJlZmVyZW5j ZSBvbmUgbW9yZSBwb2ludGVyDQo+ID4+Pj4+Pj4+IHRvIHJlYWQgYW4gZWxlbWVudC4NCj4gPj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhlcmUgaXMgbm90IG11Y2ggbG9ja3MsIHNvIHRoZSBBUEkgaXMg Zm9yIGludGVybmFsIHVzZSBvbmx5Lg0KPiA+Pj4+Pj4+PiBUaGlzIEFQSSBtYXkgYmUgdXNlZCB0 byBjb21wbGV0ZWx5IHJlbW92ZSBzb21lIGNvbXBpbGF0aW9uLXRpbWUNCj4gPj4+Pj4+Pj4gbWF4 aW11bXMuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBJIGdldCB0aGUgcHVycG9zZSBhbmQgb3ZlcmFs bCBpbnRlbnRpb24gb2YgdGhpcyBsaWJyYXJ5Lg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSSBwcm9i YWJseSBhbHJlYWR5IG1lbnRpb25lZCB0aGF0IEkgcHJlZmVyICJlbWJlZGRlZCBzdHlsZSBwcm9n cmFtbWluZyIgd2l0aCBmaXhlZCBzaXplIGFycmF5cywgcmF0aGVyIHRoYW4gcnVudGltZQ0KPiBj b25maWd1cmFiaWxpdHkuDQo+ID4+Pj4gSXQncw0KPiA+Pj4+PiBteSBwZXJzb25hbCBvcGluaW9u LCBhbmQgdGhlIERQREsgVGVjaCBCb2FyZCBjbGVhcmx5IHByZWZlcnMgcmVkdWNpbmcgdGhlIGFt b3VudCBvZiBjb21waWxlIHRpbWUgY29uZmlndXJhYmlsaXR5LCBzbyB0aGVyZSBpcyBubw0KPiB3 YXkNCj4gPj4gZm9yDQo+ID4+Pj4+IG1lIHRvIHN0b3AgdGhpcyBwcm9ncmVzcywgYW5kIEkgZG8g bm90IGludGVuZCB0byBvcHBvc2UgdG8gdGhpcyBsaWJyYXJ5LiA6LSkNCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+IFRoaXMgbGlicmFyeSBpcyBsaWtlbHkgdG8gYmVjb21lIGEgY29yZSBsaWJyYXJ5IG9m IERQREssIHNvIEkgdGhpbmsgaXQgaXMgaW1wb3J0YW50IGdldHRpbmcgaXQgcmlnaHQuIENvdWxk IHlvdSBwbGVhc2UgbWVudGlvbiBhIGZldw0KPiA+Pj4+IGV4YW1wbGVzDQo+ID4+Pj4+IHdoZXJl IHlvdSB0aGluayB0aGlzIGludGVybmFsIGxpYnJhcnkgc2hvdWxkIGJlIHVzZWQsIGFuZCB3aGVy ZSBpdCBzaG91bGQgbm90IGJlIHVzZWQuIFRoZW4gaXQgaXMgZWFzaWVyIHRvIGRpc2N1c3MgaWYg dGhlIGJvcmRlciBsaW5lDQo+ID4+IGJldHdlZW4NCj4gPj4+Pj4gY29udHJvbCBwYXRoIGFuZCBk YXRhIHBsYW5lIGlzIGNvcnJlY3QuIEUuZy4gdGhpcyBsaWJyYXJ5IGlzIG5vdCBpbnRlbmRlZCB0 byBiZSB1c2VkIGZvciBkeW5hbWljYWxseSBzaXplZCBwYWNrZXQgcXVldWVzIHRoYXQgZ3JvdyBh bmQNCj4gPj4gc2hyaW5rDQo+ID4+Pj4gaW4NCj4gPj4+Pj4gdGhlIGZhc3QgcGF0aC4NCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4+IElmIHRoZSBsaWJyYXJ5IGJlY29tZXMgYSBjb3JlIERQREsgbGlicmFy eSwgaXQgc2hvdWxkIHByb2JhYmx5IGJlIHB1YmxpYyBpbnN0ZWFkIG9mIGludGVybmFsLiBFLmcu IGlmIHRoZSBsaWJyYXJ5IGlzIHVzZWQgdG8gbWFrZQ0KPiA+Pj4+PiBSVEVfTUFYX0VUSFBPUlRT IGR5bmFtaWMgaW5zdGVhZCBvZiBjb21waWxlIHRpbWUgZml4ZWQsIHRoZW4gc29tZSBhcHBsaWNh dGlvbnMgbWlnaHQgYWxzbyBuZWVkIGR5bmFtaWNhbGx5IHNpemVkIGFycmF5cyBmb3INCj4gdGhl aXINCj4gPj4+Pj4gYXBwbGljYXRpb24gc3BlY2lmaWMgcGVyLXBvcnQgcnVudGltZSBkYXRhLCBh bmQgdGhpcyBsaWJyYXJ5IGNvdWxkIHNlcnZlIHRoYXQgcHVycG9zZSB0b28uDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGFua3MgVGhvbWFzIGZvciBzdGFydGluZyB0aGlzIGRpc2N1 c3Npb24gYW5kIE1vcnRlbiBmb3IgZm9sbG93LXVwLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE15IHRo aW5raW5nIGlzIGFzIGZvbGxvd3MsIGFuZCBJJ20gcGFydGljdWxhcmx5IGtlZXBpbmcgaW4gbWlu ZCB0aGUgY2FzZXMNCj4gPj4+Pj4+IG9mIGUuZy4gUlRFX01BWF9FVEhQT1JUUywgYXMgYSBsZWFk aW5nIGNhbmRpZGF0ZSBoZXJlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFdoaWxlIEkgZGlzbGlrZSB0 aGUgaGFyZC1jb2RlZCBsaW1pdHMgaW4gRFBESywgSSdtIGFsc28gbm90IGNvbnZpbmNlZCB0aGF0 DQo+ID4+Pj4+PiB3ZSBzaG91bGQgc3dpdGNoIGF3YXkgZnJvbSB0aGUgZmxhdCBhcnJheXMgb3Ig dGhhdCB3ZSBuZWVkIGZ1bGx5IGR5bmFtaWMNCj4gPj4+Pj4+IGFycmF5cyB0aGF0IGdyb3cvc2hy aW5rIGF0IHJ1bnRpbWUgZm9yIGV0aGRldnMuIEkgd291bGQgc3VnZ2VzdCBhIGhhbGYtd2F5DQo+ ID4+Pj4+PiBob3VzZSBoZXJlLCB3aGVyZSB3ZSBrZWVwIHRoZSBldGhkZXZzIGFzIGFuIGFycmF5 LCBidXQgb25lIGFsbG9jYXRlZC9zaXplZA0KPiA+Pj4+Pj4gYXQgcnVudGltZSByYXRoZXIgdGhh biBzdGF0aWNhbGx5LiBUaGlzIHdvdWxkIGFsbG93IHVzIHRvIGhhdmUgYQ0KPiA+Pj4+Pj4gY29t cGlsZS10aW1lIGRlZmF1bHQgdmFsdWUsIGJ1dCwgZm9yIHVzZSBjYXNlcyB0aGF0IG5lZWQgaXQs IGFsbG93IHVzZSBvZiBhDQo+ID4+Pj4+PiBmbGFnIGUuZy4gICJtYXgtZXRoZGV2cyIgdG8gY2hh bmdlIHRoZSBzaXplIG9mIHRoZSBwYXJhbWV0ZXIgZ2l2ZW4gdG8gdGhlDQo+ID4+Pj4+PiBtYWxs b2MgY2FsbCBmb3IgdGhlIGFycmF5LiAgVGhpcyBtYXggbGltaXQgY291bGQgdGhlbiBiZSBwcm92 aWRlZCB0byBhcHBzDQo+ID4+Pj4+PiB0b28gaWYgdGhleSB3YW50IHRvIG1hdGNoIGFueSBhcnJh eSBzaXplcy4gW0FsdGVybmF0aXZlbHkgdGhvc2UgYXBwcyBjb3VsZA0KPiA+Pj4+Pj4gY2hlY2sg dGhlIHByb3ZpZGVkIHNpemUgYW5kIGVycm9yIG91dCBpZiB0aGUgc2l6ZSBoYXMgYmVlbiBpbmNy ZWFzZWQgYmV5b25kDQo+ID4+Pj4+PiB3aGF0IHRoZSBhcHAgaXMgZGVzaWduZWQgdG8gdXNlP10u IFRoZXJlIHdvdWxkIGJlIG5vIGV4dHJhIGRlcmVmZXJlbmNlcyBwZXINCj4gPj4+Pj4+IHJ4L3R4 IGJ1cnN0IGNhbGwgaW4gdGhpcyBzY2VuYXJpbyBzbyBwZXJmb3JtYW5jZSBzaG91bGQgYmUgdGhl IHNhbWUgYXMNCj4gPj4+Pj4+IGJlZm9yZSAocG90ZW50aWFsbHkgYmV0dGVyIGlmIGFycmF5IGlz IGluIGh1Z2VwYWdlIG1lbW9yeSwgSSBzdXBwb3NlKS4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSB0aGlu ayB3ZSBuZWVkIHNvbWUgYmVuY2htYXJrcyB0byBkZWNpZGUgd2hhdCBpcyB0aGUgYmVzdCB0cmFk ZW9mZi4NCj4gPj4+Pj4gSSBzcGVudCB0aW1lIG9uIHRoaXMgaW1wbGVtZW50YXRpb24sIGJ1dCBz b3JyeSBJIHdvbid0IGhhdmUgdGltZSBmb3IgYmVuY2htYXJrcy4NCj4gPj4+Pj4gVm9sdW50ZWVy cz8NCj4gPj4+Pg0KPiA+Pj4+IEkgaGFkIG9ubHkgYSBxdWljayBsb29rIGF0IHlvdXIgYXBwcm9h Y2ggc28gZmFyLg0KPiA+Pj4+IEJ1dCBmcm9tIHdoYXQgSSBjYW4gcmVhZCwgaW4gTVQgZW52aXJv bm1lbnQgeW91ciBzdWdnZXN0aW9uIHdpbGwgcmVxdWlyZQ0KPiA+Pj4+IGV4dHJhIHN5bmNocm9u aXphdGlvbiBmb3IgZWFjaCByZWFkLXdyaXRlIGFjY2VzcyB0byBzdWNoIHBhcnJheSBlbGVtZW50 IChsb2NrLCByY3UsIC4uLikuDQo+ID4+Pj4gSSB0aGluayB3aGF0IEJydWNlIHN1Z2dlc3RzIHdp bGwgYmUgbXVjaCBsaWd0aGVyLCBlYXNpZXIgdG8gaW1wbGVtZW50IGFuZCBsZXNzIGVycm9yIHBy b25lLg0KPiA+Pj4+IEF0IGxlYXN0IGZvciBydGVfZXRoZGV2c1tdIGFuZCBmcmllbmRzLg0KPiA+ Pj4+IEtvbnN0YW50aW4NCj4gPj4+DQo+ID4+PiBPbmUgbW9yZSB0aG91Z2h0IGhlcmUgLSBpZiB3 ZSBhcmUgdGFsa2luZyBhYm91dCBydGVfZXRoZGV2W10gaW4gcGFydGljdWxhciwgSSB0aGluayAg d2UgY2FuOg0KPiA+Pj4gMS4gbW92ZSBwdWJsaWMgZnVuY3Rpb24gcG9pbnRlcnMgKHJ4X3BrdF9i dXJzdCgpLCBldGMuKSBmcm9tIHJ0ZV9ldGhkZXYgaW50byBhIHNlcGFyYXRlIGZsYXQgYXJyYXku DQo+ID4+PiBXZSBjYW4ga2VlcCBpdCBwdWJsaWMgdG8gc3RpbGwgdXNlIGlubGluZSBmdW5jdGlv bnMgZm9yICdmYXN0JyBjYWxscyBydGVfZXRoX3J4X2J1cnN0KCksIGV0Yy4gdG8gYXZvaWQNCj4g Pj4+IGFueSByZWdyZXNzaW9ucy4NCj4gPj4+IFRoYXQgY291bGQgc3RpbGwgYmUgZmxhdCBhcnJh eSB3aXRoIG1heF9zaXplIHNwZWNpZmllZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLg0KPiA+Pj4g Mi4gSGlkZSByZXN0IG9mIHJ0ZV9ldGhkZXYgc3RydWN0IGluIC5jLg0KPiA+Pj4gVGhhdCB3aWxs IGFsbG93IHVzIHRvIGNoYW5nZSB0aGUgc3RydWN0IGl0c2VsZiBhbmQgdGhlIHdob2xlIHJ0ZV9l dGhkZXZbXSB0YWJsZSBpbiBhIHdheSB3ZSBsaWtlDQo+ID4+PiAoZmxhdCBhcnJheSwgdmVjdG9y LCBoYXNoLCBsaW5rZWQgbGlzdCkgd2l0aG91dCBBQkkvQVBJIGJyZWFrYWdlcy4NCj4gPj4+DQo+ ID4+PiBZZXMsIGl0IHdvdWxkIHJlcXVpcmUgYWxsIFBNRHMgdG8gY2hhbmdlIHByb3RvdHlwZSBm b3IgcGt0X3J4X2J1cnN0KCkgZnVuY3Rpb24NCj4gPj4+ICh0byBhY2NlcHQgcG9ydF9pZCwgcXVl dWVfaWQgaW5zdGVhZCBvZiBxdWV1ZSBwb2ludGVyKSwgYnV0IHRoZSBjaGFuZ2UgaXMgbWVjaGFu aWNhbCBvbmUuDQo+ID4+PiBQcm9iYWJseSBzb21lIG1hY3JvIGNhbiBiZSBwcm92aWRlZCB0byBz aW1wbGlmeSBpdC4NCj4gPj4+DQo+ID4+DQo+ID4+IFdlIGFyZSBhbHJlYWR5IHBsYW5uaW5nIHNv bWUgdGFza3MgZm9yIEFCSSBzdGFiaWxpdHkgZm9yIHYyMS4xMSwgSSB0aGluaw0KPiA+PiBzcGxp dHRpbmcgJ3N0cnVjdCBydGVfZXRoX2RldicgY2FuIGJlIHBhcnQgb2YgdGhhdCB0YXNrLCBpdCBl bmFibGVzIGhpZGluZyBtb3JlDQo+ID4+IGludGVybmFsIGRhdGEuDQo+ID4NCj4gPiBPaywgc291 bmRzIGdvb2QuDQo+ID4NCj4gPj4NCj4gPj4+IFRoZSBvbmx5IHNpZ25pZmljYW50IGNvbXBsaWNh dGlvbiBJIGNhbiBmb3Jlc2VlIHdpdGggaW1wbGVtZW50aW5nIHRoYXQgYXBwcm9hY2ggLQ0KPiA+ Pj4gd2UnbGwgbmVlZCBhIGFuIGFycmF5IG9mICdmYXN0JyBmdW5jdGlvbiBwb2ludGVycyBwZXIg cXVldWUsIG5vdCBwZXIgZGV2aWNlIGFzIHdlIGhhdmUgbm93DQo+ID4+PiAodG8gYXZvaWQgZXh0 cmEgaW5kaXJlY3Rpb24gZm9yIGNhbGxiYWNrIGltcGxlbWVudGF0aW9uKS4NCj4gPj4+IFRob3Vn aCBhcyBhIGJvbnVzIHdlJ2xsIGhhdmUgYWJpbGl0eSB0byB1c2UgZGlmZmVyZW50IFJYL1RYIGZ1 bmNpb25zIHBlciBxdWV1ZS4NCj4gPj4+DQo+ID4+DQo+ID4+IFdoYXQgZG8geW91IHRoaW5rIHNw bGl0IFJ4L1R4IGNhbGxiYWNrIGludG8gaXRzIG93biBzdHJ1Y3QgdG9vPw0KPiA+Pg0KPiA+PiBP dmVyYWxsICdydGVfZXRoX2RldicgY2FuIGJlIHNwbGl0IGludG8gdGhyZWUgYXM6DQo+ID4+IDEu IHJ0ZV9ldGhfZGV2DQo+ID4+IDIuIHJ0ZV9ldGhfZGV2X2J1cnN0DQo+ID4+IDMuIHJ0ZV9ldGhf ZGV2X2NiDQo+ID4+DQo+ID4+IEFuZCB3ZSBjYW4gaGlkZSAxIGZyb20gYXBwbGljYXRpb25zIGV2 ZW4gd2l0aCB0aGUgaW5saW5lIGZ1bmN0aW9ucy4NCj4gPg0KPiA+IEFzIGRpc2N1c3NlZCBvZmYt bGluZSwgSSB0aGluazoNCj4gPiBpdCBpcyBwb3NzaWJsZS4NCj4gPiBNeSBhYnNvbHV0ZSBwcmVm ZXJlbmNlIHdvdWxkIGJlIHRvIGhhdmUganVzdCAxLzIgKHdpdGggQ0IgaGlkZGVuKS4NCj4gDQo+ IEhvdyBjYW4gd2UgaGlkZSB0aGUgY2FsbGJhY2tzIHNpbmNlIHRoZXkgYXJlIHVzZWQgYnkgaW5s aW5lIGJ1cnN0IGZ1bmN0aW9ucy4NCg0KSSBwcm9iYWJseSBJIG93ZSBhIGJldHRlciBleHBsYW5h dGlvbiB0byB3aGF0IEkgbWVhbnQgaW4gZmlyc3QgbWFpbC4NCk90aGVyd2lzZSBpdCBzb3VuZHMg Y29uZnVzaW5nLg0KSSdsbCB0cnkgdG8gd3JpdGUgYSBtb3JlIGRldGFpbGVkIG9uZSBpbiBuZXh0 IGZldyBkYXlzLg0KDQo+ID4gQnV0IGV2ZW4gd2l0aCAxLzIvMyBpbiBwbGFjZSBJIHRoaW5rIGl0 IHdvdWxkIGJlICBhIGdvb2Qgc3RlcCBmb3J3YXJkLg0KPiA+IFByb2JhYmx5IHdvcnRoIHRvIHN0 YXJ0IHdpdGggMS8yLzMgZmlyc3QgYW5kIHRoZW4gc2VlIGhvdyBkaWZmaWN1bHQgaXQNCj4gPiB3 b3VsZCBiZSB0byBzd2l0Y2ggdG8gMS8yLg0KPiANCj4gV2hhdCBkbyB5b3UgbWVhbiBieSBzd2l0 Y2ggdG8gMS8yPw0KDQpXaGVuIHdlJ2xsIGhhdmUganVzdDoNCjEuIHJ0ZV9ldGhfZGV2IChoaWRk ZW4gaW4gLmMpDQoyLiBydGVfZXRoX2Rldl9idXJzdCAodmlzaWJsZSkNCg0KQW5kIG5vIHNwZWNp ZmljIHB1YmxpYyBzdHJ1Y3QvYXJyYXkgZm9yIGNhbGxiYWNrcyAtIHRoZXkgd2lsbCBiZSBoaWRk ZW4gaW4gcnRlX2V0aF9kZXYuDQoNCj4gDQo+IElmIHdlIGtlZXAgaGF2aW5nIGlubGluZSBmdW5j dGlvbnMsIGFuZCBzcGxpdCBzdHJ1Y3QgYXMgYWJvdmUgdGhyZWUgc3RydWN0cywgd2UNCj4gY2Fu IG9ubHkgaGlkZSAxLCBhbmQgMi8zIHdpbGwgYmUgc3RpbGwgdmlzaWJsZSB0byBhcHBzIGJlY2F1 c2Ugb2YgaW5saW5lDQo+IGZ1bmN0aW9ucy4gVGhpcyB3YXkgd2Ugd2lsbCBiZSBhYmxlIHRvIGhp ZGUgbW9yZSBzdGlsbCBoYXZpbmcgc2FtZSBwZXJmb3JtYW5jZS4NCg0KSSB1bmRlcnN0YW5kIHRo YXQsIGFuZCBhcyBJIHNhaWQgYWJvdmUgLSBJIHRoaW5rIGl0IGlzIGEgZ29vZCBzdGVwIGZvcndh cmQuDQpUaG91Z2ggZXZlbiBiZXR0ZXIgd291bGQgYmUgdG8gaGlkZSBydGVfZXRoX2Rldl9jYiB0 b28uIA0KDQo+IA0KPiA+IERvIHlvdSBwbGFuIHRvIHN0YXJ0IHdvcmtpbmcgb24gaXQ/DQo+ID4N Cj4gDQo+IFdlIGFyZSBnYXRoZXJpbmcgdGhlIGxpc3Qgb2YgdGhlIHRhc2tzIGZvciB0aGUgQUJJ IHN0YWJpbGl0eSwgbW9zdCBwcm9iYWJseSB0aGV5DQo+IHdpbGwgYmUgd29ya2VkIG9uIGR1cmlu ZyB2MjEuMTEuIEkgY2FuIHRha2UgdGhpcyBvbmUuDQoNCkNvb2wsIHBsZWFzZSBrZWVwIG1lIGlu IGEgbG9vcC4NCkknbGwgdHJ5IHRvIGZyZWUgc29tZSBjeWNsZXMgZm9yIDIxLjExIHRvIGdldCBp bnZvbHZlZCBhbmQgaGVscCAoaWYgbmVlZGVkIG9mZi1jb3Vyc2UpLg0KS29uc3RhbnRpbg0KDQoN Cg==