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 56AFAA00C3; Tue, 20 Sep 2022 11:41:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EA4BD40DFB; Tue, 20 Sep 2022 11:41:42 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2071.outbound.protection.outlook.com [40.107.244.71]) by mails.dpdk.org (Postfix) with ESMTP id 3D8B14069B for ; Tue, 20 Sep 2022 11:41:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EIhHZKLkvVi5aUgNcP6nTSNr8qyt5M6zeXbTxRujwzk3TJP8C78NvkQFzJlBR8G9kUrP9+7ut6IERsDM4aS3xtCgFmujSvgpOuB4iLC5UEtLSDxbQYWtGxwWsCGmKNHaloD7SF+xwqk3q4PpS7iY0lTJayKkzK7H1VApca1aV6242uuIIn17O8P6PWb2UsIz61AF81xLNajq6Hd2vVUQ+ZYCag28cudBahcEqz6pumIlVkcclqZkOo3GvsHWjWtnbe3TVJpOS71Sz46Wl1ld4vhkWB9n20ZND2Efa+41je4dB6GvjR4sU8Wgwes/19El6vQAQ3PlpIrDUtLYJI8REQ== 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=oE9KEXI3HRZvCKoNxbQx9R4C4ZoS2IXG5SnYhg5q1sI=; b=hB27mCBlCfvLSrVCkr3JjsQ9Vz2OGGVFkgBToDAVNQIPLzjN/tvlYXjep8m9pULzmohmRc9/fSX5rHux+RCu7jbKj/3qyDQ/oW3D9MBzDJVCjajwK2GvHR2Vy8XUwpMDh7hF8ZHc2tajDdMBjCc/ezNCtYpZEaL/0r5g/FCYDlrrv4ZcH9fa/RcLSwswfaP0PpjhDna/qg2LpWv0tePb3AgKpX5zkkf0vHqjdLJQEU8CdPUcfV8ifx2JjhDV6oSryfjZUqZKutfrmI9/ARukfZmkcHDVKIzb5VmRQft7kyE9YYlGTegfzEuBMHKyn6AvB4B6V+ZIZYya5ZbUR+Welw== 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=oE9KEXI3HRZvCKoNxbQx9R4C4ZoS2IXG5SnYhg5q1sI=; b=BNov+DYFq1mYuiokOePL71KD6t7oDNDL/weybb0ms2vZNhuQqbJYjoGSRvgSNIswcwyQctjFZrCRL/aDXWPcCps9G4Hgs/DMDyDmtueT6Ejtav+8/NZXfNjRUF3JudM9ruclod1Y9NYlQQm3ABZ+LAASdnSoIwLXqEMIHvaVExlpjsdyyJBBYgz7WS0JgFQ6LJgb6yzVOxp4zXEjEF1SF7Jm6eBKVGT6jGiyH4ekLibY9048ftqTxi5AT9rPoGbnkQXP6e852clCPTBzss+hJ+e3WNC378VS8Wsbcfu1Xux7KR95FOnuljwEWfEZTgZ0mTQm3+oxz6tFoDB9IFtWBQ== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by CY5PR12MB6624.namprd12.prod.outlook.com (2603:10b6:930:40::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Tue, 20 Sep 2022 09:41:39 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9847:f2a5:c4f:ec52]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9847:f2a5:c4f:ec52%5]) with mapi id 15.20.5632.021; Tue, 20 Sep 2022 09:41:39 +0000 From: Ori Kam To: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Rongwei Liu , Ivan Malov CC: Matan Azrad , Slava Ovsiienko , Aman Singh , Yuying Zhang , Andrew Rybchenko , "dev@dpdk.org" , Raslan Darawsheh Subject: RE: [PATCH v1] ethdev: add direction info when creating the transfer table Thread-Topic: [PATCH v1] ethdev: add direction info when creating the transfer table Thread-Index: AQHYwmNBlMPGSxWFbECmDbi50+NQZa3cDLOAgAFdCwCAAAzvgIAA9vIAgAAlywCAAC4vAIAAU/oAgACiMQCAAHInAIAAEUWAgAAkdICAAATEgIAHt1DA Date: Tue, 20 Sep 2022 09:41:39 +0000 Message-ID: References: <20220907024020.2474860-1-rongweil@nvidia.com> <297a487e-b5d-4928-e96-c80b2603dd8@oktetlabs.ru> <2834724.SvYEEZNnvj@thomas> In-Reply-To: <2834724.SvYEEZNnvj@thomas> 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-traffictypediagnostic: MW2PR12MB4666:EE_|CY5PR12MB6624:EE_ x-ms-office365-filtering-correlation-id: 6cd8ab4c-80a3-48b7-9916-08da9aec5134 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QQyYSaNLULp7D1wcWPJFKCnrUmNggDAiO1+raCgKlRnM2r5Nim6ZsEU4z1LIB5w0Uaqbv5fOEdFXWWKFeGCGgJGaHsbFX8LpUCH5EVis4HLClseWXfEq6WeWxYlUGbmfw8JX6TWM9slNre4RgP2tTTHLgYhzGYBbD9Gk6O8jgtLz69GLEeoGaE9YnQdA4/yzpEi/GPv43aillQo+fF1biwkWtquOvr/VMsgKrd04c5GoLh8Mdd96mlV32nIDA6rDIGwiDPt5opnsjljFK6ipDAwUokTXJYf0+ASR8mOXhKJ231I8NApDHjFUQrxZ//P32lkIo5yulNHCks/M+OM7WqH2scsMX/R2NTlK+6OHjroEKqDWvdmn7TlkyFFRPWTqvP75KD4i2VVDUz9wMlZW8qybXxyZC/GARjBxNEA0E5GXYVwyfzYmpjyI9z/lgsGE9j1ptJDSd84rrISpJufFGR1BdV0Gtf2DKIbONsNS9t2hu4maDeWEg2Uir6y1AqXyyGEc5AjQopGtDvCodpiwk18CouqUfMnh5VN95sydV4sKwJpfXTFhCIXMt00l/jPezaauEtWlVcTZZ1IcrE7WnNx3ZTiCu/isZBy2Lodg/TqIfGheA6IYKYCg5HN86dCARTIomPAX5J89PA3bGroIo6R1V1h8oSEZKdzI/ZF4pImPvTlU/ZdCNF3CIKddt5zCtlfvQp0OwESoVYYLjHT0BpSJtSEhqeGSlhTfsbyDXDfSqiKU+qqhdzxLdVL5JTagkx822J1rv3d6u25y+E21WQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(366004)(396003)(346002)(136003)(39860400002)(376002)(451199015)(7696005)(55016003)(38100700002)(6506007)(66476007)(66946007)(478600001)(76116006)(64756008)(66446008)(54906003)(38070700005)(4326008)(66556008)(107886003)(186003)(26005)(122000001)(8676002)(41300700001)(52536014)(5660300002)(316002)(33656002)(86362001)(2906002)(110136005)(71200400001)(8936002)(9686003)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dk9BMnNVTTFFbW9LVWI3ZmNnRXgxS25Xd1NDelBnTDUwRnEyU0tIMDRMM0Rm?= =?utf-8?B?UnZqNHNKaUFLcXN0K2UrZkU3N29NYVlDeUlwRThXNkxvWVgzcUdiRlhCWFRV?= =?utf-8?B?RXRXUHJ3Z3h4VFphQm9xeUtRZUxGZGhxM3UwYmxUTFFaSi9PalZhOTQyU21t?= =?utf-8?B?enpQUy9FVEI2ZDhuRzgxTVhwaG5KWTE2V283NjFnRC9YdTlvajBsVDNDdU5Y?= =?utf-8?B?UERMcVZzTU5OeEZBdVZLVVVndit2VkMrdDRXZk1WOFdGYkVEeTJOVG1WU21v?= =?utf-8?B?WWRmbDZRRUVreTV4d0Rkb2cvdUhvZFR1RSs5VWlJU1VjbGxMNEZzcUczVVNz?= =?utf-8?B?VktSMG9aSndZNFpBUzgvUUdkUGd5Z1p3UE5KWURlbUtpMldjWWhtc1ZnZzZQ?= =?utf-8?B?NkwvRytWWlBZTHNxVUZEN1hxRVM0cUhGc0d4L0RRWGJWa29HWW94TnVpZmc5?= =?utf-8?B?VHVTTWk5OGRuSE9sM3JtamlLeUVyVGx5TUFJTmpxS005ZmtQaGNuTm1LZXl3?= =?utf-8?B?YnZFdndTNzRpV1drMFJscjRkYzVHandiZHNCLzJGL0RTSlRFdHRHWWhlaVAy?= =?utf-8?B?YVBianozVmMrTWFGNWd2T2duMk10Z3lVRzQ2NnVlcUZRNlB1S1cxa28vaXJy?= =?utf-8?B?TnI0VHM3WWFSL3JwSjJLeVNaa3ZaaWUwVThuRElEcE9sdzRCN2pSYlZsenZu?= =?utf-8?B?WXJYbWREdG5WMXYyU3N2VElMVHN4LzZkaThmZWRCMDJ4NTBSVDBjT091ZFND?= =?utf-8?B?KytrRmNNY0tHczZrd3NoSUF5cFBPQ1pkVkd5eUU1WmlqYnZiZkpzdFY2aHRw?= =?utf-8?B?QlR2WDRYenVtTkxHcEFhYUw1QjhYODUycmY1b1NIZE14amJvdTZJWHFHTWUr?= =?utf-8?B?d0lpbUMrbGx6ZURoT3RobTNNbmNscC9rYmVOT3pYV09NV0lIaFZnbEVxdEh1?= =?utf-8?B?NndCZkNjYVMrTStkVDZJaEo2OXYxaVJ0TXhvODBHWUlCV0poOXBJaitHTm1z?= =?utf-8?B?V0xURWpjOXJJTjhhLzlSUlFaRnBPd2QrVktDUHl3ZGRobUc0bEVvVEFWVkdZ?= =?utf-8?B?QzI0Y3lKaFBCZkUyZm56a1J1RlR3R1FaTXdFZmVuSVRZRENWa1ZpYk85Ukwy?= =?utf-8?B?Nkd3Nkg3eGh1R1BZRGt0RVRHaEtIOTRxWFJhaGVMRGx3cDFISTJnYnhTTm5v?= =?utf-8?B?cXllOURGUHZFNjdDNEdGMitYdkRxamNJQ1pYdTNUVTIxR0lITytHY1Jzek9x?= =?utf-8?B?enBoRkdCemhzQVNsSFFnd043a1pJMjNoYm5sN3VRMUh0QmZxZnlQa0xnalFo?= =?utf-8?B?TnN2OUhYNmtleW9aQnZMUkpna1ZtUGJSNGUwd29sNzhOQUJxZkplajFXa2RQ?= =?utf-8?B?dUV6MmxHdHhDc0ZXWWliMUg1WnZwMDJWWWQyU1NMVU1qeklCbUVEelBQbjdT?= =?utf-8?B?ajBnNkFOUlpOSkZyMFAwT3dJWkFSVkt6ejdlUWRKaXlLOGU1T014SmMwSjl3?= =?utf-8?B?RjFXdnhiSVBFbUNoTTRGZVRzSWhXaHc2TlFSUE5yYitvQWFySm4rRi8vd1Q5?= =?utf-8?B?S1RZNmc0MFBtVHN2UHhqTFR6SG1lSzVHZm1rajExeGtHQU44QURzcEZFZzVY?= =?utf-8?B?djlEU0U3Q1MrWlZhZWc4TVNsaC9Namd6d3k3U05CTERpZmtGTzB5eTUydmdC?= =?utf-8?B?bE1wYUc4MmtoWGhybGt3MHlaMDhZSlFqdEVlWi9mNFdGczdjODZUVmw0YkI4?= =?utf-8?B?NStxc2s5TEVQSWtyKzhTN3FweHA0S3YzdHlwL1ZZY2RWNlY3RlBSQVkvb2tX?= =?utf-8?B?ajJSam5iWjBTbVpPdUVndWdyZTRINlZmWVBXaFpKZEpHMEVOSldodkVUYm9t?= =?utf-8?B?Z3VFcUtIVEFrZEFwa3crM01sN1FLSml5cTFYRHdVS3lZNmhPazAwMGdQbjZE?= =?utf-8?B?aDdpWWYxeFVsN1l6ZzBxU0lvS3Vzd1VLcjVWUzFzaDhRQTNPaDVaZTNyRldK?= =?utf-8?B?bC9lUDlIK1E3U2hGaThLcUNFczZ4NzIrMDgrdmJFRkY1L1FlYkpCMDkvMGRs?= =?utf-8?B?Z3dDc1JXQ2wxSXVudjVzdlpWeHBFUEN5eFZjNGVQVWtsWGdudXJ2bERzVmRl?= =?utf-8?Q?ltRk=3D?= 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: 6cd8ab4c-80a3-48b7-9916-08da9aec5134 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Sep 2022 09:41:39.1082 (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: m26mGdW8YxxxcXF+Vs3Awwj9uMy4G2lwFNexmLVPOhTE2Xbr/QFXPBck2ubyXce5/19OXqk9CRf+bL4JAtIWvg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6624 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 SGkgSXZhbiwgVGhvbWFzIGFuZCBSb25nd2VpDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gRnJvbTogVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiBTZW50 OiBUaHVyc2RheSwgMTUgU2VwdGVtYmVyIDIwMjIgMTQ6MTYNCj4gDQo+IDE1LzA5LzIwMjIgMTI6 NTksIEl2YW4gTWFsb3Y6DQo+ID4gSGkgUm9uZ3dlaSwNCj4gPg0KPiA+IEluIHRoaXMgcmVwbHks IEkgZG8gbm90IGluY2x1ZGUgdGhlIHByZXZpb3VzIG1haWwgYmVjYXVzZSB0aGUgYW1vdW50DQo+ ID4gb2YgaW5saW5lIGNvbW1lbnRhcnkgaGFzIGdvbmUgaGF5d2lyZSBvdmVyIHRoZSBwYXN0IGNv dXBsZSBvZiBkYXlzLg0KPiA+IExldCdzIHJlLWl0ZXJhdGUuDQo+ID4NCj4gPiBCdXQgYmVmb3Jl IEkgZ2V0IHRvIHRoYXQsIEknZCBsaWtlIHRvIG9mZmVyIGEgZnJlc2ggcGVyc3BlY3RpdmU6DQo+ ID4NCj4gPiBQZXJoYXBzLCBpZiB3ZSBhbGwgYWdyZWUgdGhhdCB0ZXJtICJ2cG9ydCIgbWVhbnMg YW4gZW5kcG9pbnQgd2hpY2gNCj4gPiBjYW4gc3RhbmQgZm9yIGFueSAicG9ydCIgZXhjZXB0IGZv ciBwaHlzaWNhbCBvbmUsIHRoZW4gaXQgc2hvdWxkDQo+ID4gYmUgcG9zc2libGUgdG8gdXNlIHRl cm0gQU5ZX1ZQT1JUUyByYXRoZXIgdGhhbiBBTllfR1VFU1RfUE9SVFMuDQo+IA0KPiBUaGUgb3Bw b3NpdGUgb2YgInBoeXNpY2FsIiBpcyAidmlydHVhbCIgaW5kZWVkLg0KPiANCj4gPiBCdXQgdGhh dCdzIHRyaWNreSwgb2YgY291cnNlLiBJIGRvbid0IGhhdmUgYSB3YXkgd2l0aCBuYW1pbmcsDQo+ ID4gc28gbW9yZSBvcGluaW9ucyBhcmUgd2VsY29tZSBhbmQgdmVyeS12ZXJ5IGRlc2lyYWJsZSBo ZXJlLg0KPiA+DQo+ID4gU286DQo+ID4NCj4gPiAxKSBEbyB5b3UgYWdyZWUgdGhhdCwgaW4geW91 ciBwcm9wb3NhbCwgdGhlIG5ldyAid2lyZV9vcmlnIiAvICJ2Zl9vcmlnIg0KPiA+ICAgICBwcmlt aXRpdmVzIGFyZSBpbiBmYWN0IHlldCBhbm90aGVyIG1hdGNoIGNyaXRlcmlhPw0KPiA+DQo+ID4g ICAgIC4uDQo+ID4NCj4gPiAgICAgVG8gbWUsIGl0IGxvb2tzIHNvLiBJZiB0aGV5IGFyZSBtYXRj aCBjcml0ZXJpYSwgdGhlbiB0aGV5IGJlbG9uZw0KPiA+ICAgICBpbiBtYXRjaCBwYXR0ZXJuLCB0 aGF0IGlzLCB0aGV5IHNob3VsZCBiZSBleHByZXNzZWQgYXMgbmV3IGl0ZW1zLg0KPiA+DQo+ID4g ICAgIEZvciAidHJhbnNmZXIiIHJ1bGVzLCB0aGUgKmV4aXN0aW5nKiBhdHRyaWJ1dGVzIGFyZTog Imdyb3VwIg0KPiA+ICAgICBhbmQgInByaW9yaXR5Ii4gQXMgeW91IG1heSBub3RlLCB0aGVzZSBh cmUgY2xlYXJseSBub3QgbWF0Y2gNCj4gPiAgICAgY3JpdGVyaWEuIFRoZXkgY29udHJvbCB0aGUg bG9vay11cCBvcmRlci4gU28sIHRvIHRoaXMgZGF5LA0KPiA+ICAgICB0aGVyZSdyZSBubyBtYXRj aCBjcml0ZXJpYSBpbiBEUERLIGV4cHJlc3NlZCBhcyBhdHRyaWJ1dGVzLg0KPiA+DQo+ID4gICAg IElmIHRoZXNlICJ3aXJlX29yaWciIC8gInZmX29yaWciIGFyZSBnb2luZyB0byBiZSBpbnRyb2R1 Y2VkDQo+ID4gICAgIGFzIGF0dHJpYnV0ZXMsIHRoYXQgc2hvdWxkIGJlIGJhY2tlZCB3aXRoIHN0 cm9uZyBtb3RpdmF0aW9uLg0KPiANCj4gSSBwcmVmZXIgd2Uga2VlcCBtYXRjaGluZyBpbiBhIHNp bmdsZSBwbGFjZSwgbm90IGluIGF0dHJpYnV0ZXMuDQo+IA0KDQpJIHRoaW5rIHdlIGFyZSB0YWxr aW5nIGFib3V0IHR3byBkaWZmZXJlbnQgZmVhdHVyZXMuDQpGZWF0dXJlIDE6DQpBbGxvdyBtYXRj aGluZyBvbiBhbGwgdnBvcnRzIHRoYXQgYXJlIG5vdCB3aXJlDQpGZWF0dXJlIDI6DQpTYXZlIGFs bG9jYXRpb24gc3BhY2UgYW5kIGFsbG93IGZhc3QgaW5zZXJ0aW9uLg0KSW4gdGhpcyBjYXNlLCB0 aGUgbWF0Y2hpbmcgaXMgbm90IG9uIGFsbCB2cG9ydHMgaXQgY2FuIGJlIGp1c3QgcGFydCBvZiB0 aGUgdnBvcnRzDQpidXQgaXQgd2lsbCBuZXZlciBiZSB0aGUgd2lyZSBwb3J0Lg0KRm9yIGV4YW1w bGU6DQpwb3J0IDAgLSB3aXJlDQpwb3J0cyAxLDIsMyw0LDUgIC0gdnBvcnRzDQp0aGUgYXBwbGlj YXRpb24gd2FudCB0byBpbnNldCBvbmx5IHRob3NlIHJ1bGVzOg0KcmVwcmVzZW50ZWRfcG9ydChw b3J0X2lkPTIpIC8gZXRoIC8gaXB2NCAoc3JjPT14eCkNCnJlcHJlc2VudGVkX3BvcnQocG9ydF9p ZD00KSAvIGV0aCAvIGlwdjQgKHNyYz09eHgpDQpyZXByZXNlbnRlZF9wb3J0KHBvcnRfaWQ9NCkg LyBldGggLyBpcHY0IChzcmM9PXl5KQ0KDQpGb3IgZmVhdHVyZSAxIEkgZnVsbHkgYWdyZWUgd2l0 aCB5b3UgSXZhbiwgdGhpcyBzaG91bGQgYmUgYWRkZWQgYXMgYW4gaXRlbS4NCkZvciBmZWF0dXJl IDIgSSB0aGluayBSb25nd2VpJ3Mgc3VnZ2VzdGlvbiBpcyB0aGUgYmV0dGVyIG9wdGlvbi4NCklm IEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkgdGhlIGlkZWEgaXMgdG8gZ2l2ZSBoaW50IHRvIHRoZSBQ TUQgb24gd2hlcmUgdG8gYWxsb2NhdGUgbWVtb3J5DQphbmQgaG93IHRvIGluc2VydCB0aGUgcnVs ZXMgbW9zdCBvcHRpbWFsbHkuIFNpbmNlIHRoaXMgaXMgc2hhcmVkIGZvciBhbGwgcnVsZXMgaXQg bWFrZXMgbW9yZSBzZW5zZQ0KdG8gYWRkIGl0IGFzIGFuIGF0dHJpYnV0ZSwganVzdCBsaWtlIHdl IGRvbuKAmXQgaGF2ZSBhbiBpbmdyZXNzIGl0ZW0gKG1heWJlIHdlIHNob3VsZD8pDQoNCkl2YW4g d2UgaGF2ZSB0aGUgaXRlbSBSVEVfRkxPV19JVEVNX1RZUEVfUEYgYW5kIFJURV9GTE9XX0lURU1f VFlQRV9WRiB3aGljaCBhcmUgZGVwcmVjYXRlZCwNClNvIGRvIHlvdSB3YW50IHRvIHVuLWRlcHJl Y2F0ZSB0aGVtPw0KDQpUbyBzdW1tYXJpemUsIGlmIFBNRCBjYW4gdXNlIHN1Y2ggYW4gaGludCBk dXJpbmcgcnVsZSBjcmVhdGlvbiBhbmQgc2F2ZSBtZW1vcnksIEkgdm90ZQ0KdG8gYWxsb3cgaXQu DQppZiB0aGUgaWRlYSBpcyB0byBtYXRjaCBvbiBhbGwgdnBvcnRzIHRoZW4gaXQgc2hvdWxkIGJl IGFuIGl0ZW0uDQoNCj4gDQo+ID4gMikgRnJvbSB5b3VyIHZpZXdwb2ludCwgd2h5IGl0ZW1zICJB TllfUEhZU19QT1JUUyIgYW5kDQo+ICJBTllfVlBPUlRTIg0KPiA+ICAgICB3b24ndCBkbz8gT3Is IHdoaWNoIHByb2JsZW1zIGRvIHlvdSB0aGluayB0aGV5IG1heSBpbmZsaWN0Pw0KPiA+DQo+ID4g ICAgIC4uDQo+ID4NCj4gPiAgICAgUHJldmlvdXNseSwgeW91IGV4cGxhaW5lZCB3aHkgUkVQUkVT RU5URURfUE9SVCB3b3VsZCBub3QNCj4gPiAgICAgZml0IHlvdXIgbmVlZHMuIEFuZCBJIHVuZGVy c3RhbmQgeW91ciBwb2ludDogdG8gYXN5bmMgQVBJLA0KPiA+ICAgICB0d28gcGF0dGVybiB0ZW1w bGF0ZXMgd2hpY2ggYm90aCBoYXZlIGl0ZW0gUkVQUkVTRU5URURfUE9SVA0KPiA+ICAgICBpbiB0 aGVtIGNhbm5vdCBiZSBjbGVhcmx5IGRpc3Rpbmd1aXNoZWQgYW5kIGFyZSBpbiBmYWN0IHRoZQ0K PiA+ICAgICBzYW1lIHNldCBvZiBjcml0ZXJpYSAocHJvdmlkZWQgdGhhdCBhbGwgb3RoZXIgaXRl bXMgYXJlIGFsc28NCj4gPiAgICAgdGhlIHNhbWUgYW5kIGhhdmUgdGhlIHNhbWUgbWFza3MpLiBU ZW1wbGF0ZXMgYXJlLCB3ZWxsLA0KPiA+ICAgICB0ZW1wbGF0ZXMgKG9yIHNoYXBlcykgb2YgdGhl IHJ1bGVzIHRvIGNvbWUgbGF0ZXIgYW5kDQo+ID4gICAgIGRvIG5vdCBpbmNsdWRlIGV4YWN0ICJz cGVjIiBmb3IgdGhlICJldGhkZXZfaWQiLg0KPiA+ICAgICBHb3QgaXQuDQo+ID4NCj4gPiAgICAg QnV0IHRoYXQncyBub3QgZ29pbmcgdG8gYmUgdGhlIGNhc2Ugd2l0aCBpdGVtcyBBTllfUEhZU19Q T1JUUyBhbmQNCj4gPiAgICAgQU5ZX1ZQT1JUUywgaXMgaXQ/IEluIG9uZSBhc3luYyB0YWJsZSB0 ZW1wbGF0ZSwgdGhlIHVzZXIgc3VibWl0cw0KPiA+ICAgICBpdGVtIEFOWV9QSFlTX1BPUlRTIChp bnN0ZWFkIG9mIHRhYmxlIGF0dHJpYnV0ZSAid2lyZV9vcmlnIikuDQo+ID4gICAgIEluIGFub3Ro ZXIgdGVtcGxhdGUsIHRoZSB1c2VyIHN1Ym1pdHMgaXRlbSBBTllfVlBPUlRTIHRvDQo+ID4gICAg IHN0YXRlIHRoYXQgdGhleSB3YW50IHRvIG1hdGNoIG9ubHkgdHJhZmZpYyB0cmFuc21pdHRlZA0K PiA+ICAgICBzb2Z0d2FyZSBlbmRwb2ludHMgKERQREsgZXRoZGV2cywgZ3Vlc3QgVkZzLCBldGMu KQ0KPiA+ICAgICBjb25uZWN0ZWQgdG8gdGhlIHN3aXRjaC4NCj4gPg0KPiA+ICAgICBJbiB0aGlz IGV4YW1wbGUsIHRoZSBQTUQgd2lsbCBjbGVhcmx5IHNlZSB0aGF0IHRoZSB0d28gdGVtcGxhdGVz DQo+ID4gICAgIGRpZmZlci4gU28gaXQgd2lsbCBiZSBhYmxlIHRvIGFsbG9jYXRlIHNlcGFyYXRl IHJlc291cmNlcywgZWFjaA0KPiA+ICAgICBvbmUgImN1dHRpbmcgb25lIGhhbGYgb2YgdHJhZmZp YyIgKGFzIHBlciB5b3VyIGNvbmNlcHQpLg0KPiA+DQo+ID4gMykgSW4geW91ciBtb3N0IHJlY2Vu dCByZXNwb25zZSwgeW91IHN1Z2dlc3RlZCB0aGF0IG9uZSBtaWdodCBoYXZlDQo+ID4gICAgIGhh ZCB0aGUgYXR0cmlidXRlcyBvY2N1cGllZCBmb3Igc29tZSBvdGhlciBwdXJwb3Nlcy4gVG8gbWUs DQo+ID4gICAgIHRoZXkncmUgbm90LiBOZWl0aGVyIG1lIG5vciBteSBjbG9zZXN0IGNvbGxlYWd1 ZXMgaGF2ZQ0KPiA+ICAgICBhbnkgcGxhbnMgb24gdGhlbS4gV2hlbiBJIGFkdm9jYXRlIHVzaW5n IGl0ZW0gYXBwcm9hY2gNCj4gPiAgICAgb3ZlciB0aGUgYXR0cmlidXRlIGFwcHJvYWNoLCBJIGRv IHRoaXMgdG8gZW5zdXJlDQo+ID4gICAgIGEpIGNsYXJpdHkgb2YgdGhlIEFQSSBjb250cmFjdCBh bmQgYikgcm9idXN0bmVzcy4NCg0KSWYgc29tZXRoaW5nIGlzIHNoYXJlZCBmb3IgYWxsIHJ1bGVz IGluIHRoZSBzYW1lIHRhYmxlLCBpdCBzaG91bGQgYmUgYSB0YWJsZQ0KcHJvcGVydHkuDQoNCj4g Pg0KPiA+IDQpIEFsc28sIGluIHlvdXIgcmVzcG9uc2UsIHlvdSBzdWdnZXN0ZWQgdGhhdCBJIG1p Z2h0IGhhdmUNCj4gPiAgICAgY29uZnVzZWQgaXRlbSBtYXNrIGFuZCBzcGVjLiBUaGF0IGlzIG5v dCB0aGUgY2FzZS4NCj4gPiAgICAgSWYgd2UgYWdyZWUsIHRoYXQgc3dpdGNoIGRvbWFpbiBJRCBp cyB1bm5lZWRlZCBpbg0KPiA+ICAgICB0aGUgbmV3IGl0ZW1zLCB0aGVuIHRoZXNlIGl0ZW1zIHdp bGwgaGF2ZSBubw0KPiA+ICAgICBmaWVsZHMgaW4gdGhlbSAobGlrZSBpdGVtIFBGIGhhZCBub3Qg aGFkIGFueQ0KPiA+ICAgICBiZWZvcmUgaXQgd2FzIGRlcHJlY2F0ZWQpLg0KPiA+DQo+ID4gICAg IE5vIGZpZWxkcyBpbiBuZXcgaXRlbXMgPT4gbm8gZmllbGQgbWFza3MuDQo+ID4gICAgIFNvIHdo YXQncyB0aGUgcHJvYmxlbSB0aGVuPw0KPiA+DQo+ID4gNSkgV2l0aCByZWdhcmQgdG8gb3VyIHRh bGsgYWJvdXQgaWRlbnRpZnlpbmcgdGhlIHJlbGF0aW9uc2hpcA0KPiA+ICAgICBiZXR3ZWVuIGV0 aGRldnMgYW5kIHN3aXRjaCBkb21haW5zLCB5b3Ugc2FpZCB0aGF0IHRoZSB1c2VyDQo+ID4gICAg IGNvdWxkIGtub3cgdGhlIGRpZmZlcmVuY2UgZnJvbSB0aGUgdmVyeSBiZWdpbm5pbmc6DQo+ID4g ICAgIC9zeXNmcy8gLi4uLiAvUEZfQkRGL3NyaW92X251bQ0KPiA+DQo+ID4gICAgIFRoYXQgaXMg dHJ1ZSBmb3IgdGhlIHVzZXIgd2hvIHN0YXJ0cyB0aGUgYXBwbGljYXRpb24sIGJ1dA0KPiA+ICAg ICB0aGlzIGtub3dsZWRnZSBpcyBoYXJkIHRvIG9idGFpbiBmcm9tIHRoZSBhcHBsaWNhdGlvbg0K PiA+ICAgICBwZXJzcGVjdGl2ZSA9IGl0J3MgaGFyZCB0byBhdXRvbWF0ZS4NCj4gPg0KPiA+ICAg ICBUaGlzIGlzIHdoeSBldGhkZXZzIGFyZSBhYmxlIHRvIGFkdmVydGlzZSB0aGVpciBkb21haW4g SURzLg0KPiA+ICAgICBBbmQsIGFzIEkgZXhwbGFpbmVkLCBsb29raW5nIGF0IGRvbWFpbiBJRCB0 byB1bmRlcnN0YW5kDQo+IA0KPiBuYW1lbHkgcnRlX2V0aF9kZXZfaW5mby5zd2l0Y2hfaW5mby5k b21haW5faWQNCj4gDQo+ID4gICAgIHBvcnQgcmVsYXRpb25zaGlwIGlzIHZhbGlkLCB3aGlsc3Qg bG9va2luZyBhdCBwcm94eSBJRHMNCj4gPiAgICAgdG8gYWNoaWV2ZSB0aGUgc2FtZSBnb2FsIGlz IG5vdC4gUHJveHkgcG9ydCBJRHMgb25seQ0KPiA+ICAgICBzZXJ2ZSB0aGUgcHVycG9zZSBvZiBm aW5kaW5nIGFuIGVudHJ5IHBvaW50IGZvcg0KPiA+ICAgICBtYW5hZ2luZyBmbG93cy4gVGhhdCBo YXMgc2xpZ2h0bHkgZGlmZmVyZW50DQo+ID4gICAgIG1lYW5pbmcsIGJ1dCB0aGlzIHN1YnRsZSBk aWZmZXJlbmNlIGlzIGltcG9ydGFudC4NCj4gDQo+IFRoZXJlIGlzIGFsc28gYSBjb25jZXB0IG9m IHNpYmxpbmcgcG9ydHMNCj4gdG8gZ2V0IGFsbCBwb3J0cyBiZWxvbmdpbmcgdG8gdGhlIHNhbWUg aGFyZHdhcmUuDQo+IA0KPiANCj4gPiA2KSBBcyBmb3IgdGhlIGNvbmZ1c2lvbiBvdmVyIHRoZSBk aWZmZXJlbmNlIGJldHdlZW4gZml4aW5nDQo+ID4gICAgIGJ1Z3MgYW5kIG1ha2luZyB0aGUgY29k ZSByb2J1c3QgYnkgZXh0cmEgY2hlY2tzOg0KPiA+DQo+ID4gICAgIFllcywgSSBhZ3JlZSB0aGF0 IHRoZSBwcm9ncmFtbWVyIHdobyB3cml0ZXMgdGhlDQo+ID4gICAgIGFwcGxpY2F0aW9uIG11c3Qg YmUgaW50ZWxsaWdlbnQgZW5vdWdoIHRvIHVzZQ0KPiA+ICAgICBmbG93IHByaW1pdGl2ZXMgdGhl IHByb3BlciB3YXkuIFllcywgdGhlIHVzZXINCj4gPiAgICAgd2hvIHN0YXJ0cyB0aGUgYXBwbGlj YXRpb24gYWxzbyBzaG91bGQgdGhyZWFkDQo+ID4gICAgIGNhcmVmdWxseS4gQnV0IHRoYXQgZG9l cyBub3QgcHJldmVudCBzb21lDQo+ID4gICAgIG1pc3Rha2VzIGluIG90aGVyIHBhcnRzIG9mIGNv ZGUgZnJvbQ0KPiA+ICAgICBjb3JydXB0aW5nIHZhcmlvdXMgY2h1bmtzIG9mIG1lbW9yeSwNCj4g PiAgICAgaW5jbHVkaW5nLCBmb3IgZXhhbXBsZSwgZmxvdyBhdHRycy4NCj4gPg0KPiA+ICAgICBZ b3Ugc2F5IHRoYXQgc3VjaCBtaXN0YWtlcyBoYXZlIHRvIGJlICJqdXN0IGZpeGVkIg0KPiA+ICAg ICBhcyBhbnkgb3RoZXIgYnVncy4gUmlnaHQuIEJ1dCBob3cgbXVjaCB0aW1lIHdpbGwNCj4gPiAg ICAgdGhlIHByb2dyYW1tZXIgc3BlbmQgdG8gaWRlbnRpZnkgdGhlIGJ1Z3M/DQo+ID4NCj4gPiAg ICAgSWYgdGhlIFBNRHMgZG8gYWxsIHRoZSBjaGVja3MgKGFzIHdpdGggYXR0cmlidXRlcyksDQo+ ID4gICAgIHRoZSBoeXBvdGhldGljYWwgYnVnIHdpbGwgbWFuaWZlc3QgaXRzZWxmIG11Y2gNCj4g PiAgICAgZWFybGllci4gVGhhdCB3aWxsIHNpbXBsaWZ5IGRlYnVnZ2luZyBieSBhIGxvdC4uLg0K PiA+DQo+ID4gICAgIFNvLCBteSBwb2ludCBpcyB0aGF0IGl0J3Mgc3RpbGwgYmV0dGVyIHRvIGVu c3VyZQ0KPiA+ICAgICB0aGF0IG5ldyBmbG93IHByaW1pdGl2ZXMgaGF2ZSBhbGwgbmVjZXNzYXJ5 DQo+ID4gICAgIGNoZWNrcyBpbiBwbGFjZS4gRm9yIGF0dHJpYnV0ZXMsIGl0IGlzDQo+ID4gICAg IHJlcXVpcmVkIHRvIGFkZCB0aGVtIHNlcGFyYXRlbHkuDQo+IA0KPiBJZiBmbG93IGluc2VydGlv biBpcyBkb25lIGluIGEgZmFzdCBwYXRoLA0KPiBzdWNoIGNoZWNrcyBtYXkgYmUgc2tpcHBlZC4N Cg0KVGhlIGlkZWEgaXMgdGhhdCBhbGwgcnVsZXMgaW4gdGhpcyB0YWJsZSB3aWxsIHNoYXJlIHRo ZSBzYW1lIGNvbmZpZ3VyYXRpb24sDQp0aGVyZSBpcyBubyByZWFzb24gdG8gc2F5IGV2ZXJ5dGhp bmcgYWdhaW4gZm9yIGVhY2ggcnVsZS4gVGhpcyBpcyB3aHkNCnRoZSBydWxlIGF0dHJpYnV0ZXMg d2VyZSBtb3ZlZCB0byB0aGUgdGFibGUgc3RydWN0IGFuZCBub3QgcGVyIHJ1bGUuDQoNCj4gDQo+ ID4gICAgIEZvciBpdGVtcywgYXMgSSBleHBsYWluZWQsIGl0IG1pZ2h0IG5vdCBiZSBuZWNlc3Nh cnkNCj4gPiAgICAgaW4gdGhlIG1ham9yaXR5IG9mIGNhc2VzIHNpbXBseSBiZWNhdXNlIG9mIHRo ZQ0KPiA+ICAgICBzd2l0Y2ggKGl0ZW0tPnR5cGUpIHsgY2FzZSB9IHN0cnVjdHVyZS4NCj4gPg0K PiA+IFNvLCB0aGVzZSBhcmUgc29tZSBvZiBteSBwb2ludHMgdG8gZXhwbGFpbiB3aHkgdGhlDQo+ ID4gYXR0cmlidXRlIGFwcHJvYWNoIGlzIHVudGVuYWJsZS4gVG8gbWUsIGF0dHJpYnV0ZXMNCj4g PiBhcmUgc29tZXRoaW5nIGdsb2JhbCwgd2hpY2ggZGVtYW5kcyBjaGVja3MgaW4gYWxsDQo+ID4g Zmxvdy1jYXBhYmxlIFBNRHMuIEl0ZW1zIHNlZW0gYmV0dGVyIGJlY2F1c2UgdGhleQ0KPiA+IGFy ZSBkb24ndCBjYXJlcyB0byBhbGwgUE1EcyB3aGljaCBhcmUgdW5hd2FyZSBvZg0KPiA+IHRoZSBh c3luYyBjb25jZXB0LiBTbywgZXZlbiBpZiBzb21lb25lIGRvZXMgbm90DQo+ID4gaW1wbGVtZW50 IHRoZSBhc3luYyBjb25jZXB0IG9yIGRvZXMgbm90IGxpa2UNCj4gPiB0aGUgbmV3IGl0ZW0gbmFt ZXMsIHRoZXkgY2FuIHR1cm4gYSBibGluZA0KPiA+IGV5ZSB0byB0aGlzIC0gd2l0aCBhdHRyaWJ1 dGVzLCB0aGF5IGNhbid0Lg0KPiA+DQoNCkdvb2QgcG9pbnQsDQpNYXliZSB3ZSBzaG91bGQgYWRk IGhpbnRzIGluIHRoZSBhdHRyaWJ1dGUsDQpmb3IgZXhhbXBsZSwgaGludF9vbmx5X3dpcmUgaW4g dGhpcyBjYXNlIGl0IHdpbGwgYmUgY2xlYXIgdGhhdA0KUE1EIG1heSBpZ25vcmUgdGhpcywgYW5k IGl0IHNob3VsZCBiZSBmdWxseSBkb2N1bWVudGVkIHRoYXQgdGhpcyBpcyBub3QgYSBtYW5kYXRv cnkgZmllbGQuDQpXaGF0IGRvIHlvdSB0aGluaz8NCg0KPiA+IFRoYW5rIHlvdS4NCj4gDQo+IA0K DQo=