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 50BE5A0352; Wed, 16 Feb 2022 15:53:23 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DCF6D410FB; Wed, 16 Feb 2022 15:53:22 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2082.outbound.protection.outlook.com [40.107.244.82]) by mails.dpdk.org (Postfix) with ESMTP id E193E40150 for ; Wed, 16 Feb 2022 15:53:20 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g+ihtnw4vfTFy73A5dkXKyA1ktX0v/whba2g/Mtb7ECcL0YDdobm4LLthE1DAtq6FkgKdlPQIv3Rcgo43lqHXPMiSCx/EYn+v8JBRxcCdIP6GR3vvnIvLIs/DMABqLA4BSOxuxe3xvlXz5VK4ab9kp+a1pQ0j8ImkhKfnKDh3IY3Cc+GhMxRLdsvQOd8ucybwjWqP+WDulW6qOaSGdUqO6F/6c+jwwiKa2b1iBkdIGuRtEU24xG8gsqptZEvnW+23bfYMiWVSlHtuJXpmIQ4bQeO5Os+vz98G/DQdzPh4uNkpUbio5n4G1O3GqPPHcxi00jsIM7l0XJnN7HxGKoQ6w== 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=mcAj7Xr1Zi+JPpYWP8C1s4BUvwNQtX3D9lxz7rLEwM4=; b=cxEkBsRzPLl0qlsypGtVTxR6ief3X0Y7XJvm8L52oWQXSCke1xRw5Dl8Z0nuqg6/CfIIVZy94jgH7jUZAmGKNWlBV1jXDIMUzGPMif6X7oMM1sFzPfhFBbswp0e7zPqQzQSli7i3a3WYbWSF+oBBUkeJ1ZkfXUrgR2KwTHNADt95qlcZ2GvKz4yI+24xv1R7A7mahc+rbVUdRTeRt68UQVM4d/p4V5EYu11aJ0HIjOf18AnnSFATiFg41P5CMIqxjaz0NvvaHO6+j8HaGDLLIgY0c4Ec58nlMnfQ7SR/01nXXK5kGCgAQ7JyBBrU81+JsvlTI+8hJxHmDJvEGrrv/w== 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=mcAj7Xr1Zi+JPpYWP8C1s4BUvwNQtX3D9lxz7rLEwM4=; b=S4v/+2/BEiTSvhmaoCLSFnROCLP11PrNTU0gszo1uM0rjzo5NnLghnwDSDNdO+JaiWznjZJkutJTRUFF5JbR50pCgZ/DzceGG8ei919biuD6w4g1HoQdZK/PQz895JHmZRVTNn4ZFN9wlnE0pIX1gqBRtmwl1NkkSAA++0XeAOuLcRpAlyH6A53I8vq5FhnqhOwk5wD5/iPxcX1ShH6jGGlx1BfmJqFN1WKdSgSpUR549c51F0uIkYKgWdElYMswbn+DEvwJnXikt0ntbphcRVwa34YsfSB/FT+AL06smCnE+3EsbTckvMfnc7yhab+u5zQ+AA23T8bM5RGRzHBx1A== Received: from CH2PR12MB3687.namprd12.prod.outlook.com (2603:10b6:610:2b::26) by DM5PR12MB2343.namprd12.prod.outlook.com (2603:10b6:4:b3::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.15; Wed, 16 Feb 2022 14:53:18 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by CH2PR12MB3687.namprd12.prod.outlook.com (2603:10b6:610:2b::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.15; Wed, 16 Feb 2022 14:53:17 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9d4e:649c:c6b8:b353]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9d4e:649c:c6b8:b353%5]) with mapi id 15.20.4975.017; Wed, 16 Feb 2022 14:53:17 +0000 From: Ori Kam To: Andrew Rybchenko , Alexander Kozyrev , "dev@dpdk.org" CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "ivan.malov@oktetlabs.ru" , "ferruh.yigit@intel.com" , "mohammad.abdul.awal@intel.com" , "qi.z.zhang@intel.com" , "jerinj@marvell.com" , "ajit.khaparde@broadcom.com" , "bruce.richardson@intel.com" Subject: RE: [PATCH v5 03/10] ethdev: bring in async queue-based flow rules operations Thread-Topic: [PATCH v5 03/10] ethdev: bring in async queue-based flow rules operations Thread-Index: AQHYHu7ttP3kPP/blEaJd5ixXtdyv6yOS7WAgADkTQCABwXkAIAADQOA Date: Wed, 16 Feb 2022 14:53:17 +0000 Message-ID: References: <20220209213809.1208269-1-akozyrev@nvidia.com> <20220211022653.1372318-1-akozyrev@nvidia.com> <20220211022653.1372318-4-akozyrev@nvidia.com> <6eac9cbe-cebf-f33f-eabd-79a4375916b6@oktetlabs.ru> <71bd0d78-d5b3-6692-f66f-95b4114853fb@oktetlabs.ru> In-Reply-To: <71bd0d78-d5b3-6692-f66f-95b4114853fb@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-office365-filtering-correlation-id: de7a3eac-c3d9-4ec8-f40e-08d9f15c10f5 x-ms-traffictypediagnostic: CH2PR12MB3687:EE_|DM5PR12MB2343:EE_ x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IMSIyrGwvHK2rvZvpMMOw+KGwVGdXe6u85+5H1BnaMx/x8oCz3eKoazd3HTqbjW+55PMjbc8PjGlETYVyMF/OmzPP8PzZWJ72wfmtmrimn26G/xmcKhNtxkiI+Pq+O6SHj9hd0adImOJ/e0TLtIslpycXem6GbDZoFMnAcZOCupUGh+ZWbRY3x7fP74LlNHPjDPoC/8/vFNUKf4NwgrY6pj6bfpUzg7ckV5DrN1uSBaZHW9OktYsS7OgGUb1g3jnzBpe9nNMd44mTRz1j42kFA/ilb4+FxvO2ujqRMGwGFoI5dkw4qwEyMKR+ECoMy2cbn0Ao7LCrk4BmszdyxAZeLN0pcMw+A8J3rc1KUkV6LWf7XrtvyYqnJv4Vn23da+GCyVUnsm0iPy39md+HQum3s759dt9/GW9ewsVa6XcZjoiRVjk3/TyzN8KZwtrkBLJOPlQqX+bjBTAya6M4QnSUBx6CnSkC/fvYY7ij0qY4TyK+RVNNOYdhVY5WM3tCFwItS3J5+syOZL0LI7ptkB8fa2E0SSByHr31MXtJWjVBZubnX82bsEidpgV8cojyBISIKZFAE0J28AA4sYt5uwg/bwRm1BXmwNh7OXybukefO0+2nlhK4bCH4E0PNyk7iDxUBICamqIoAQL6guo64qDF/4nGPmaIShHKweL+Duf0SGfnFajmmE2ReJfJBKFZCNtvO/tqoxfLxp+f2NnEqpPfg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB3687.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6506007)(71200400001)(64756008)(8676002)(66476007)(66946007)(66446008)(66556008)(7696005)(76116006)(53546011)(54906003)(38100700002)(186003)(316002)(26005)(110136005)(33656002)(38070700005)(9686003)(122000001)(55016003)(7416002)(8936002)(52536014)(508600001)(5660300002)(86362001)(2906002)(83380400001)(4326008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a002VTVJT28vLzJzL2U0d1M1U0NYTHBwM3NDUXd1akxLMjBvWmNkVys4Qk0w?= =?utf-8?B?a2hMcDdMekgxd3Y5M2kwck9OU3lvOEkxbXMxdklzZitTRjdESVhBcGV5RG9k?= =?utf-8?B?L1YxaTI1TFBKZzBXTEFtdS9JaVgyVyszdDkyL1hkRjFHUmZvUSthc0FvVlVR?= =?utf-8?B?OUlYakRTa0VtaDJpdVRFYVlRZ21HQWRsZkN3MGYwZFpXelRUZU1Od0JlMjRC?= =?utf-8?B?YklOeU85Y05ETE5TL3pCZlhOUDRiVUVTNEZBcmFISlNmWlpqbUhZMDZjOEho?= =?utf-8?B?ZzExVldOdnNPRFh1WW9CNW4xUXBaUVNmd2hGQldOWlJpOEpMb1BVLzZLU3RB?= =?utf-8?B?YXd1SWRwUldLUDU1bU85a0s5eEZjWFdIdFNtblpsQ3FUK0R5SXl5RlM5Zkhn?= =?utf-8?B?bUFyaFdkenNTVFZZMnVHd2JFR205dFhYYkozRG1JcVZST1h3QVRXRk1vYTdO?= =?utf-8?B?aWlNWkhZZjBzNXBRdGpKYWNBZzZoWXZqbExsYVgwdERQM2s0T1FqckdSbEkv?= =?utf-8?B?UFp5dDNjZE15Z1QzcEVqZFZsUW9yZndQVWQ5cjlDMTFZbjRHVzhqRzdBZXlY?= =?utf-8?B?WGpKczJBaDJZUXNZVk82YzVJZE1jc3NIZS8ycmF1QUs0WUkvQXp1VWxnT2Nt?= =?utf-8?B?L25rbFlONUg5ZlFWU0NiK1FPQTd1M2VtZHBkRVhDdnNOSGM5cHhwWGxXaG95?= =?utf-8?B?c0VjRWFWU0NUaENFK0VXSWIrY09vTGdGOFgxczRNUGErYitFemE4ZHU2dHZv?= =?utf-8?B?RDVJMWJVbGJCS29TcUlaNGpRS0E0Z0k3YWVSQWd3SUFad3VFZnBtZVBJOW9a?= =?utf-8?B?YnNaeUR5UElXK2toK3ZyL2JySkx5SGhDa25mUkc3MXBObWFIazdGcUhMd0tK?= =?utf-8?B?TDRwU2toMnhWWFZLWkFwYTJyTlhMeFBYWmprQk1RZmtnSHdKSE55MXBUK1FG?= =?utf-8?B?ampXWVJKRWxPeHdON1YvWFZrajNGM09xb1JoN09lV050SW1qUE9yTXdjQ2ta?= =?utf-8?B?WFNEcGd2M0pHR090bkk3L1BNYUdoRmtpQTcyQ1RWNzAwaWs3eXh0dEVMVE1J?= =?utf-8?B?MVEybmU1alRETU5aOXNzMjdpb2pLZUY0a3diaXI4WGhwMUtjNG5KdnppOERS?= =?utf-8?B?Rm0rQVVqaHV4YzB2akJRcmVpYkY4WExETDdHV3prQ1cwQkZJSUtpYlg1RkVK?= =?utf-8?B?bEV2ZlFvaHREN3BvSTQvVURhQkljL1RQeE0vYWpOSkxLSVVaNWpXamczbU9k?= =?utf-8?B?UXRRN1I5T256R256aHBpZ21UMzBoeFluS2ptU1pGTXZScnIzWlRiK3dCNHpH?= =?utf-8?B?WmwxNDlvOHlkb2w0RzFJS0JxODdiS3YyNC9YS1ZFbVJvL3UwZkhYUGhTRnVh?= =?utf-8?B?QnhOQXRpdVFiRzlyRy9QRzRUd2NLVFJZMTNwRDBNa3ROUld4K0JJWGxNOHNa?= =?utf-8?B?MU9zbWxOQ0dOU1U5bDlKKzlDZFR4MlVkUkNtblVaamMvVHQ0WTFGeDk5OGRY?= =?utf-8?B?YmNxREE2R1ZJWkVCRllOREhyS0pYaVg2WFZLbENBclplcktUK2dVdE14UW90?= =?utf-8?B?Rm9WNzN3UmlMc2Vwcm9kSlcyQVo4KzVlSjNrM3MxclZzRFBCT0xLL0ZuMzJu?= =?utf-8?B?RFhrd3BWeWxKWlpCODROLy8vM0FnMjNrcHdYUGJWTHRZeWk0SnVuK0NJanhl?= =?utf-8?B?andSM2pWRHA1dWFya0NLV0x6TW5rZVl1ODNiQ0oxZXhzWFpKY0dlVWdiUFNa?= =?utf-8?B?bFRlWEVuZ3dzSnVWSk9OQTZwWUtYc3NpMmhuSE1vMHhsWlp4Qy9UQTREMXBu?= =?utf-8?B?Y3ZVZjdrNXhVU0g4WjNGMXRyMHVJR3RPRVI2QlZWcjY2U2ppZ3dYb0ZhVmQr?= =?utf-8?B?TkFaMjY3VG80Tnh6WlpJYlo5d3NBU2N2V1pkWFVIREU1WjhEc1VrZDRPNHBO?= =?utf-8?B?QkRUWDVKSXY5cXptUnVDamVTbWtrTzcxc0lmTDZubHlwbWc0WkJyTXJlQnRT?= =?utf-8?B?a0wxSEVJTzByaHRxNjZaUGpxbnlaci8rZVhJbnRET2VPblBGV3h3YWV4ZzJy?= =?utf-8?B?eitMV3dJRnYzWTJ4bHFZVDJwRndGNmJrTG9Ud1IrUHl4QjBua0tpR2k4d3hD?= =?utf-8?B?a1JmTFVCY0U5R002U25WQVdwdCsxRWFYcUtKalpSbU95ODNkZ2NFbzZxV0lB?= =?utf-8?B?OUE9PQ==?= 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: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: de7a3eac-c3d9-4ec8-f40e-08d9f15c10f5 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2022 14:53:17.2537 (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: NRyA/CAlwVetYz0L9RQau/XeBuBh7zOFu2L6+ptJgJuRooSvMW+vZO+7Kg3UCdaczOEc08TQB1FyhkBjHXL7QA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB2343 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 SGkgQW5kZXcsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5kcmV3 IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+IFNlbnQ6IFdlZG5l c2RheSwgRmVicnVhcnkgMTYsIDIwMjIgMzozNCBQTQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY1 IDAzLzEwXSBldGhkZXY6IGJyaW5nIGluIGFzeW5jIHF1ZXVlLWJhc2VkIGZsb3cgcnVsZXMgb3Bl cmF0aW9ucw0KPiANCj4gT24gMi8xMi8yMiAwNToxOSwgQWxleGFuZGVyIEtvenlyZXYgd3JvdGU6 DQo+ID4gT24gRnJpLCBGZWIgMTEsIDIwMjIgNzo0MiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcu cnliY2hlbmtvQG9rdGV0bGFicy5ydT46DQo+ID4+IE9uIDIvMTEvMjIgMDU6MjYsIEFsZXhhbmRl ciBLb3p5cmV2IHdyb3RlOg0KPiA+Pj4gQSBuZXcsIGZhc3RlciwgcXVldWUtYmFzZWQgZmxvdyBy dWxlcyBtYW5hZ2VtZW50IG1lY2hhbmlzbSBpcyBuZWVkZWQNCj4gPj4gZm9yDQo+ID4+PiBhcHBs aWNhdGlvbnMgb2ZmbG9hZGluZyBydWxlcyBpbnNpZGUgdGhlIGRhdGFwYXRoLiBUaGlzIGFzeW5j aHJvbm91cw0KPiA+Pj4gYW5kIGxvY2tsZXNzIG1lY2hhbmlzbSBmcmVlcyB0aGUgQ1BVIGZvciBm dXJ0aGVyIHBhY2tldCBwcm9jZXNzaW5nIGFuZA0KPiA+Pj4gcmVkdWNlcyB0aGUgcGVyZm9ybWFu Y2UgaW1wYWN0IG9mIHRoZSBmbG93IHJ1bGVzIGNyZWF0aW9uL2Rlc3RydWN0aW9uDQo+ID4+PiBv biB0aGUgZGF0YXBhdGguIE5vdGUgdGhhdCBxdWV1ZXMgYXJlIG5vdCB0aHJlYWQtc2FmZSBhbmQg dGhlIHF1ZXVlDQo+ID4+PiBzaG91bGQgYmUgYWNjZXNzZWQgZnJvbSB0aGUgc2FtZSB0aHJlYWQg Zm9yIGFsbCBxdWV1ZSBvcGVyYXRpb25zLg0KPiA+Pj4gSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5 IG9mIHRoZSBhcHAgdG8gc3luYyB0aGUgcXVldWUgZnVuY3Rpb25zIGluIGNhc2UNCj4gPj4+IG9m IG11bHRpLXRocmVhZGVkIGFjY2VzcyB0byB0aGUgc2FtZSBxdWV1ZS4NCj4gPj4+DQo+ID4+PiBU aGUgcnRlX2Zsb3dfcV9mbG93X2NyZWF0ZSgpIGZ1bmN0aW9uIGVucXVldWVzIGEgZmxvdyBjcmVh dGlvbiB0byB0aGUNCj4gPj4+IHJlcXVlc3RlZCBxdWV1ZS4gSXQgYmVuZWZpdHMgZnJvbSBhbHJl YWR5IGNvbmZpZ3VyZWQgcmVzb3VyY2VzIGFuZCBzZXRzDQo+ID4+PiB1bmlxdWUgdmFsdWVzIG9u IHRvcCBvZiBpdGVtIGFuZCBhY3Rpb24gdGVtcGxhdGVzLiBBIGZsb3cgcnVsZSBpcyBlbnF1ZXVl ZA0KPiA+Pj4gb24gdGhlIHNwZWNpZmllZCBmbG93IHF1ZXVlIGFuZCBvZmZsb2FkZWQgYXN5bmNo cm9ub3VzbHkgdG8gdGhlDQo+ID4+IGhhcmR3YXJlLg0KPiA+Pj4gVGhlIGZ1bmN0aW9uIHJldHVy bnMgaW1tZWRpYXRlbHkgdG8gc3BhcmUgQ1BVIGZvciBmdXJ0aGVyIHBhY2tldA0KPiA+Pj4gcHJv Y2Vzc2luZy4gVGhlIGFwcGxpY2F0aW9uIG11c3QgaW52b2tlIHRoZSBydGVfZmxvd19xX3B1bGwo KSBmdW5jdGlvbg0KPiA+Pj4gdG8gY29tcGxldGUgdGhlIGZsb3cgcnVsZSBvcGVyYXRpb24gb2Zm bG9hZGluZywgdG8gY2xlYXIgdGhlIHF1ZXVlLCBhbmQgdG8NCj4gPj4+IHJlY2VpdmUgdGhlIG9w ZXJhdGlvbiBzdGF0dXMuIFRoZSBydGVfZmxvd19xX2Zsb3dfZGVzdHJveSgpIGZ1bmN0aW9uDQo+ ID4+PiBlbnF1ZXVlcyBhIGZsb3cgZGVzdHJ1Y3Rpb24gdG8gdGhlIHJlcXVlc3RlZCBxdWV1ZS4N Cj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS296eXJldiA8YWtvenlyZXZA bnZpZGlhLmNvbT4NCj4gPj4+IEFja2VkLWJ5OiBPcmkgS2FtIDxvcmlrYUBudmlkaWEuY29tPg0K PiANCj4gW3NuaXBdDQo+IA0KPiA+Pj4gKw0KPiA+Pj4gKy0gQXZhaWxhYmxlIG9wZXJhdGlvbiB0 eXBlczogcnVsZSBjcmVhdGlvbiwgcnVsZSBkZXN0cnVjdGlvbiwNCj4gPj4+ICsgIGluZGlyZWN0 IHJ1bGUgY3JlYXRpb24sIGluZGlyZWN0IHJ1bGUgZGVzdHJ1Y3Rpb24sIGluZGlyZWN0IHJ1bGUg dXBkYXRlLg0KPiA+Pj4gKw0KPiA+Pj4gKy0gT3BlcmF0aW9ucyBtYXkgYmUgcmVvcmRlcmVkIHdp dGhpbiBhIHF1ZXVlLg0KPiA+Pg0KPiA+PiBEbyB3ZSB3YW50IHRvIGhhdmUgYmFycmllcnM/DQo+ ID4+IEUuZy4gY3JlYXRlIHJ1bGUsIGRlc3Ryb3kgdGhlIHNhbWUgcnVsZSAtPiByZW9kZXIgLT4g ZGVzdHJveSBmYWlscywgcnVsZQ0KPiA+PiBsaXZlcyBmb3JldmVyLg0KPiA+DQo+ID4gQVBJIGRl c2lnbiBpcyBjcmFmdGVyIHdpdGggdGhlIHRocm91Z2hwdXQgYXMgdGhlIG1haW4gZ29hbCBpbiBt aW5kLg0KPiA+IFdlIGFsbG93IHVzZXIgdG8gZW5mb3JjZSBhbnkgb3JkZXJpbmcgb3V0c2lkZSB0 aGVzZSBmdW5jdGlvbnMuDQo+ID4gQW5vdGhlciBwb2ludCB0aGF0IG5vdCBhbGwgUE1Ecy9OSUMg d2lsbCBoYXZlIHRoaXMgb3V0LW9mLW9yZGVyIGV4ZWN1dGlvbi4NCj4gDQo+IFRocm91Z2hwdXQg aXMgbmljZSwgYnV0IHRoZXJlIG1vcmUgaW1wb3J0YW50IHJlcXVpcmVtZW50cw0KPiB3aGljaCBt dXN0IGJlIHNhdGlzdGllZCBiZWZvcmUgdGFsa2luZyBhYm91dCBwZXJmb3JtYW5jZS4NCj4gQ291 bGQgeW91IGV4cGxhaW4gbWUgd2hhdCBJIHNob3VsZCBkbyBiYXNlZCBvbiB3aGljaA0KPiBpbmZv cm1hdGlvbiBmcm9tIE5JQyBpbiBvcmRlciB0byBzb2x2ZSBhYm92ZSBwcm9ibGVtPw0KPiANCg0K VGhlIGlkZWEgaXMgdGhhdCBpZiBhcHBsaWNhdGlvbiBoYXMgZGVwZW5kZW5jeSBiZXR3ZWVuIHRo ZSBydWxlcy8gcnVsZXMgb3BlcmF0aW9ucy4NCkl0IHNob3VsZCB3YWl0IGZvciB0aGUgY29tcGxl dGlvbiBvZiB0aGUgb3BlcmF0aW9uIGJlZm9yZSBzZW5kaW5nIHRoZSBkZXBlbmRlbnQgb3BlcmF0 aW9uLg0KSW4gdGhlIGV4YW1wbGUgeW91IHByb3ZpZGVkIGFib3ZlLCBhY2NvcmRpbmcgdG8gdGhl IGRvY3VtZWF0aW9uIGFwcGxpY2F0aW9uIHNob3VsZCB3YWl0DQpmb3IgdGhlIGNvbXBsZXRpb24g b2YgdGhlIGZsb3cgY3JlYXRpb24gYmVmb3JlIGRlc3Ryb3lpbmcgaXQuDQoNCj4gPj4+ICsNCj4g Pj4+ICstIE9wZXJhdGlvbnMgY2FuIGJlIHBvc3Rwb25lZCBhbmQgcHVzaGVkIHRvIE5JQyBpbiBi YXRjaGVzLg0KPiA+Pj4gKw0KPiA+Pj4gKy0gUmVzdWx0cyBwdWxsaW5nIG11c3QgYmUgZG9uZSBv biB0aW1lIHRvIGF2b2lkIHF1ZXVlIG92ZXJmbG93cy4NCj4gPj4NCj4gPj4gcG9sbGluZz8gKGFz IGxpYmMgcG9sbCgpIHdoaWNoIGNoZWNrcyBzdGF0dXMgb2YgZmlsZSBkZXNjcmlwdG9ycykNCj4g Pj4gaXQgaXMgbm90IHB1bGxpbmcgdGhlIGRvb3IgdG8gb3BlbiBpdCA6KQ0KPiA+DQo+ID4gcG9s bCB3YWl0cyBmb3Igc29tZSBldmVudCBvbiBhIGZpbGUgZGVzY3JpcHRvciBhcyBpdCB0aXRsZSBz YXlzLg0KPiA+IEFuZCB0aGVuIHVzZXIgaGFzIHRvIGludm9rZSByZWFkKCkgdG8gYWN0dWFsbHkg Z2V0IGFueSBpbmZvIGZyb20gdGhlIGZkLg0KPiA+IFRoZSBwb2ludCBvZiBvdXIgZnVuY3Rpb24g aXMgdG8gcmV0dXJuIHRoZSByZXN1bHQgaW1tZWRpYXRlbHksIHRodXMgcHVsbGluZy4NCj4gPiBX ZSBoYWQgbWFueSBuYW1lcyBhcHBlYXJpbmcgaW4gdGhlIHRocmVhZCBmb3IgdGhlc2UgZnVuY3Rp b25zLg0KPiA+IEFzIHdlIGtub3csIG5hbWluZyB2YXJpYWJsZXMgaXMgdGhlIHNlY29uZCBoYXJk ZXN0IHRoaW5nIGluIHByb2dyYW1taW5nLg0KPiA+IEkgd2FudGVkIHRoaXMgcHVsbCBmb3IgcmVz dWx0cyBwdWxsaW5nIGJlIGEgY291bnRlcnBhcnQgZm9yIHRoZSBwdXNoIGZvcg0KPiA+IHB1c2hp bmcgdGhlIG9wZXJhdGlvbnMgdG8gYSBOSUMuIEFub3RoZXIgaWRlYSBpcyBwb3AvcHVzaCBwYWly LCBidXQgdGhleSBhcmUNCj4gPiBtb3JlIGxpa2UgZm9yIG9wZXJhdGlvbnMgb25seSwgbm90IGZv ciByZXN1bHRzLg0KPiA+IEhhdmluZyBzYWlkIHRoYXQgSSdtIGF0IHRoZSBwb2ludCBvZiBhY2Nl cHRpbmcgYW55IG5hbWUgaGVyZS4NCj4gDQo+IEkgYWdyZWUgdGhhdCBpdCBpcyBoYXJkIHRvIGNo b29zZSBnb29kIG5hbWluZy4NCj4gSnVzdCB3YW50IHRvIHNheSB0aGF0IHBvbGxpbmcgaXMgbm90 IGFsd2F5IHdhaXRpbmcuDQo+IA0KPiBwb2xsIC0gY2hlY2sgdGhlIHN0YXR1cyBvZiAoYSBkZXZp Y2UpLCBlc3BlY2lhbGx5IGFzIHBhcnQgb2YgYSByZXBlYXRlZA0KPiBjeWNsZS4NCj4gDQo+IEhl cmUgd2UncmUgY2hlY2tpbmcgc3RhdHVzIG9mIGZsb3cgZW5naW5lIHJlcXVlc3RzIGFuZCB5ZXMs DQo+IGZpbmFsbHkgaW4gYSByZXBlYXRlZCBjeWNsZS4NCj4gDQo+IFtzbmlwXQ0KPiANCj4gPj4+ ICsvKioNCj4gPj4+ICsgKiBAd2FybmluZw0KPiA+Pj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhp cyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCj4gPj4+ICsgKg0KPiA+Pj4g KyAqIFF1ZXVlIG9wZXJhdGlvbiBhdHRyaWJ1dGVzLg0KPiA+Pj4gKyAqLw0KPiA+Pj4gK3N0cnVj dCBydGVfZmxvd19xX29wc19hdHRyIHsNCj4gPj4+ICsJLyoqDQo+ID4+PiArCSAqIFRoZSB1c2Vy IGRhdGEgdGhhdCB3aWxsIGJlIHJldHVybmVkIG9uIHRoZSBjb21wbGV0aW9uIGV2ZW50cy4NCj4g Pj4+ICsJICovDQo+ID4+PiArCXZvaWQgKnVzZXJfZGF0YTsNCj4gPj4NCj4gPj4gSU1ITyBpdCBt dXN0IG5vdCBiZSBoaWRkbmUgaW4gYXR0cnMuIEl0IGlzIGEga2V5IGluZm9ybWF0aW9uDQo+ID4+ IHdoaWNoIGlzIHVzZWQgdG8gdW5kZXJzdGFuZCB0aGUgb3ByYXRpb24gcmVzdWx0LiBJdCBzaG91 bGQNCj4gPj4gYmUgcGFzc2VkIHNlcGFyYXRlbHkuDQo+ID4NCj4gPiBNYXliZSwgb24gdGhlIG90 aGVyIGhhbmQgaXQgaXMgb3B0aW9uYWwgYW5kIG1heSBub3QgYmUgbmVlZGVkIGJ5IGFuIGFwcGxp Y2F0aW9uLg0KPiANCj4gSSBkb24ndCB1bmRlcnN0YW5kIGhvdyBpdCBpcyBwb3NzaWJsZS4gV2l0 aG91dCBpdCBhcHBsaWNhdGlvbg0KPiBkb24ndCBrbm93IGZhdGUgb2YgaXRzIHJlcXVlc3RzLg0K PiANCklNSE8gc2luY2UgdXNlcl9kYXRhIHNob3VsZCBiZSBpbiBhbGwgcmVsYXRlZCBvcGVyYXRp b25zIEFQSQ0KYWxvbmcgd2l0aCB0aGUgYXR0ciwgc3BsaXR0aW5nIHRoZSB1c2VyX2RhdGEgd2ls bCBqdXN0IGFkZCBleHRyYSBwYXJhbWV0ZXINCnRvIGVhY2ggZnVuY3Rpb24gY2FsbC4gU2luY2Ug d2UgaGF2ZSBudW1iZXIgb2YgZnVuY3Rpb25zIGFuZCB3aWxsIGFkZA0KbW9yZSBpbiBmdXR1cmUg SSB0aGluayBpdCB3aWxsIGJlIGJlc3QgdG8ga2VlcCBpdCBpbiB0aGlzIGxvY2F0aW9uLg0KDQo+ ID4+PiArCSAvKioNCj4gPj4+ICsJICAqIFdoZW4gc2V0LCB0aGUgcmVxdWVzdGVkIGFjdGlvbiB3 aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBIVw0KPiA+PiBpbW1lZGlhdGVseS4NCj4gPj4+ICsJICAq IFRoZSBhcHBsaWNhdGlvbiBtdXN0IGNhbGwgdGhlIHJ0ZV9mbG93X3F1ZXVlX3B1c2ggdG8gYWN0 dWFsbHkNCj4gPj4gc2VuZCBpdC4NCj4gPj4NCj4gPj4gV2lsbCB0aGUgbmV4dCBvcGVyYXRpb24g d2l0aG91dCB0aGUgYXR0cmlidXRlIHNldCBpbXBsaWNpdGx5IHB1c2ggaXQ/DQo+ID4+IElzIGl0 IG1hbmRhdG9yeSBmb3IgdGhlIGRyaXZlciB0byByZXNwZWN0IGl0PyBPciBpcyBpdCBqdXN0IGEg cG9zc2libGUNCj4gPj4gb3B0aW1pemF0aW9uIGhpbnQ/DQo+ID4NCj4gPiBZZXMsIGl0IHdpbGwg YmUgcHVzaGVkIHdpdGggYWxsIHRoZSBvcGVyYXRpb25zIGluIGEgcXVldWUgb25jZSB0aGUgcG9z dHBvbmUgaXMgY2xlYXJlZC4NCj4gPiBJdCBpcyBub3QgbWFuZGF0b3J5IHRvIHJlc3BlY3QgdGhp cyBiaXQsIFBNRCBjYW4gdXNlIG90aGVyIG9wdGltaXphdGlvbiB0ZWNobmljcy4NCj4gDQo+IENv dWxkIHlvdSBjbGFyaWZ5IGl0IGluIHRoZSBkZXNjcmlwdGlvbi4NCj4gDQo+ID4+DQo+ID4+PiAr CSAgKi8NCj4gPj4+ICsJdWludDMyX3QgcG9zdHBvbmU6MTsNCj4gPj4+ICt9Ow0KPiBbc25pcF0N Cg0KQmVzdCwNCk9yaQ0K