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 3BE66A0543; Thu, 22 Sep 2022 15:00:59 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 304CB40E28; Thu, 22 Sep 2022 15:00:59 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2057.outbound.protection.outlook.com [40.107.92.57]) by mails.dpdk.org (Postfix) with ESMTP id 642CC400D7 for ; Thu, 22 Sep 2022 15:00:57 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SKRjMrjZvAZE7GTRCU5kuB+37giFUsk7XbnfzJIOPW8J7L3j63DUOx3tEhjBWYcPEpDpQlEryal1q6YuhygOpLk68d0cJPnRaPz+kpAUE63DzBgQslurMglbwltU3zGD0FXiUyLnfj7wUI5yXzBbEFrG8JaCbvsr/mYDbWl3tc+0uk3mRvn9QcXtuV3QUtTvKcQ3N0vs+0g7lAka2aMW3qVeKocs+7yq/4JHWP3i1AmPRW90dayz2dejimso5B+z5z0UgV+w9bbqe2uDjHOyUHeu8C0lK7ag6RpyG7SkUxjB3G9ciWfLii7qR66xDpNfyyH8dzvgecKBaEOyZiiSpQ== 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=XFELXuYHKrVjD864k16oHUVDAS3BfYSMQutCPJgG4Kw=; b=H4FpAb+VfHMukb7R9L5oytiWLlsl8UuTraWDNrgWuWrqz5iDaKrUMpaQ+8pYWCARUJBO9zQcJCjkulz/9SaUG4bz3rCmqcMNJZXBoKw7W1SlDUAfxxBHyANd2XsSJX5MJjZOkQwLktu5QO+eT/wNzCZ+is1tXnlATA+vkY7hDYFfpzyRIVTh0w1lYYkAhnLe417kwGBxfPNzi4bgFPV+vj51+2KTZndzhkoyDl0IQSGh2px6iwbse8Stemn6J6YXfhVADm3Q+kFQ+PzpdXT6skiSiOYb6aeX7FwYpuXwRcIvvkO0Dv5UPli5/rkkBfI4iTNeT/MCAvmcauGcsWWaGQ== 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=XFELXuYHKrVjD864k16oHUVDAS3BfYSMQutCPJgG4Kw=; b=cxqwbQ4rWhZsUcAgR9Ksdkun+ruyd8FJeneWJdtaLWRAtMIsGeMrOF4gtd3vjDcyMOFbJD0fAgk7fSG7ngtHrYwiFxEemU+PMMxCEyX/y9HmCGYGftQ44IAOJZARfCcNwe9c0YDOFC795lnqrWCOdf4zZj6AMzpsJABz6FSx9E7BKxwbnz6WhkwwtCI+BuP5guo7kRhnMl1X14RAxZhabF98nM5MAngzOZNdPsxPeI63upKcZVK91zeEEMNe0jHIEoIgSLnzov7YWH9vxpTsJaQjAIdyGXbdHDCU8PuqZ3xFr69gRci7zBocPg2E0pxcsEzdcfAmZZADid8EuY3I1g== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by PH7PR12MB6719.namprd12.prod.outlook.com (2603:10b6:510:1b2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.16; Thu, 22 Sep 2022 13:00:54 +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; Thu, 22 Sep 2022 13:00:54 +0000 From: Ori Kam To: Andrew Rybchenko , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Ivan Malov CC: Rongwei Liu , Matan Azrad , Slava Ovsiienko , Aman Singh , Yuying Zhang , "dev@dpdk.org" , Raslan Darawsheh , "jerinj@marvell.com" , "ajit.khaparde@broadcom.com" 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/oAgACiMQCAAHInAIAAEUWAgAAkdICAAATEgIAHt1DAgAA9WICAAAyHcIAAIM+AgADwaXCAADbcAIAACcuAgAAGtYCAACjowIAABEJQgAE8sgCAACQsgIAAC+mAgAAghGA= Date: Thu, 22 Sep 2022 13:00:54 +0000 Message-ID: References: <20220907024020.2474860-1-rongweil@nvidia.com> <4733483b-effe-1eac-cbf-d238e1ec2b8@oktetlabs.ru> <13527775.RDIVbhacDa@thomas> <98CBD80474FA8B44BF855DF32C47DC35D87342@smartserver.smartshare.dk> <36d3dc2d-e54f-8b2d-da5a-3d7ea66f34be@oktetlabs.ru> In-Reply-To: <36d3dc2d-e54f-8b2d-da5a-3d7ea66f34be@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-traffictypediagnostic: MW2PR12MB4666:EE_|PH7PR12MB6719:EE_ x-ms-office365-filtering-correlation-id: f7ed94c4-a81e-4819-3d56-08da9c9a7be3 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: gqQZZZ4HFU5neox3kVLLHbnKwkL3O5o5XQhmrEhQ0eI25cQrTBi5i7aFM4Ec6Cts9ECOYjPlQpZz1VONl6oBBIjQEf90yK4m8SFemUT6nFuTnr520hGckPjvjXkeWBqsT2BcZMWiICxms0hziOdJPgPhvPWxOu4bAd+hiRMrIpYaAJlrmP4GoMPyXIb77LDSkorLZS6CHR3TW7rwFK/aZRioHA85Ikcb5R94d0CviGGkrZioAgG2+vZbLADrne3DQfuo1anqt6pjntRs716YEd2tj5jUKZlWVTdHcyZdxe1+rAsnAS9GZqdmtoT3bHqXPKmrz7wSIkKX+KIv0YkS7HvLq3nF18Yq2keiAdaK8SHvqLQqP731r5p3ifP8z2duoXBZaQQSThACJvHJcPkYaGGVqmpf5M3eqM96XXw/B75VLpbySTcgR7a9rLGfk0itQ3Ihl/oG34Y6R7o4AVS4SZehKqJw35fYy2SsShWeuFPf5vJ/ZmO/di1nuIAvxhIan+aw9F3+XHh4s8stKhuqTtKcJyZtI8G/5gTpjovakl7uLlVXCaYfYoOjNSfW6tkGac6SFMhiyBWp+dNoVgQja0uPACav66PbCsS7A8HW0WvuEQ9ODYWbbcx0xtM89pV7QTyj/yxp8CxnNxhCOqoytPUrtwn6MEc2QRgTtu/X1u6rhkhY0+bhVqT9PPD+1v48mP0WKqrHwGIAD4dmzyhjHxXm3X1qrbm3qpCCIOUCun7LtgP1dHIr2jD7giW28laKFm/fVh9r7V7Zj79aRsgW2A== 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)(39860400002)(366004)(376002)(396003)(136003)(346002)(451199015)(122000001)(38100700002)(38070700005)(2906002)(478600001)(8676002)(71200400001)(66446008)(66946007)(66476007)(4326008)(54906003)(110136005)(76116006)(64756008)(5660300002)(8936002)(52536014)(33656002)(316002)(66556008)(55016003)(26005)(9686003)(83380400001)(6506007)(7696005)(66574015)(41300700001)(53546011)(186003)(86362001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RlVqaGNiSmdva0Y3ODh1ZTRBOXJTV2xDNVJNdW9yL3g5Qm5HVzREOWNnQmFS?= =?utf-8?B?MnNkdmUxU1A0RzQ5MmVaWDRQdG9VcmVWZldyWVo4c1FkdUF5ZTkvNmlsd1dP?= =?utf-8?B?OXVBU1pydTVQVTl6V0NVTnBBQVlRYmFWc2YxRVlGVlgwQ3JFU0pxM1NiSDNs?= =?utf-8?B?UWNrQjgvVy9jY3hCSkFWKzFGS2RRcmYyNVkrUWJEMFUrVFk3MW9VbmxkWm4y?= =?utf-8?B?TjlwRGZUVE9wekVDZ2Z2ejBXcGhPcldKdE1tTnRxN2ZIWTZLaC9xdlpzb2hI?= =?utf-8?B?OVl3cmlvbXcwR1A0OEJxU3haQW1pWFZDZ2MyZGc5V2ErbEYrNHc1SUFQRjZ1?= =?utf-8?B?Y2swZnNzV3NkYitNY2lIVU1DdjRDQ2MxU1NDYTlHYUZadnQ4VnRjanROYTJx?= =?utf-8?B?TDZhUEozZkpHeFlJWFIxcXlIWjJaMXAxYmN2Z1dDZ0x6LzJwbm4rU0grN2s1?= =?utf-8?B?T0gxODJNUkYzSm5idzlNYVMyM3VPRTAybDJqYmMrNUs2eVVKV3EwWDFYWTR4?= =?utf-8?B?MVBURTcydDJERU9UZ3l3Q25vdFNhNmZYdy9mUk1iUmFsemtWSkEyTWFPY1dP?= =?utf-8?B?dEJUVDkrU0FYMWVIMnhFVUpuclNERnlvb1c4T0VsYU9LRFhsWVBhbENtTFRl?= =?utf-8?B?aWZUbFE0UzNPczB5K0RJeHBraU5ZZzFiQ24xRUNvajZqU1RJelo1K3JqVUx0?= =?utf-8?B?NVBldGFVWFlscGZMMFY4RnBkcjRkOVhPVlgxRy8zTngwTDFTYnB4bThMQWdV?= =?utf-8?B?ZVNQQ2NQNkNHelZRK0pIenEvL0RQYzJaSGdNMUpRaWpiZkxUL3ZkblI1KzNq?= =?utf-8?B?RGlNa0YybHBpdFM0YVY1ZUUwWHNQMVhkMjVLdDFGK2xIREZHbUt2ZFE2bHJR?= =?utf-8?B?R2h0RUpuY3R5TzFNUWV5RVJGcDBSNkxzN29lV09LdUM1UU8vNDhITEVtYm94?= =?utf-8?B?Q2dPb2wzajdCaGoyc2ZGZmZFUDdXZUFtM2gvbFgvdWs0b3o0emlpNjIyMzlU?= =?utf-8?B?WGJZQlV6dzF5R05Ha3IrcDgwTEZwQ1YyMHN5Nkt4eWJsc1h2YWxRZUgzQkFW?= =?utf-8?B?UWd5Vi9rUVl6d1A1dkJRT0VKK0c5WW42b0plQ2RCdnNOcFZQc1YzMGxCTnky?= =?utf-8?B?RHZFU2xlRm1vQy9TVHlINkZqcHMrMThpYUhJVnhsNmZ2S1B6Y05LTll5Z2pT?= =?utf-8?B?TDMzK3ZyN1FwNTdrV0hWOThSa2VoTnU3RDg4UUVqSndiWFJ6cHlRTjlTRFI3?= =?utf-8?B?akZsUEpncUdpdUlGVDdCcmhTMndTY3oraXdmMVl1UWVXeGJNdGhzWFN2M3Yz?= =?utf-8?B?NTdOUDNOZlpBbEdkSTNDSUx5bEpEU2tvNE9hRFFZUGVHVzlveUI4RVV4YU0y?= =?utf-8?B?UWZ3QXVHRmpsTnNsQ0l3REc2amE5UDF0eEV2OXpOcjVnRURibEJ1Y2hNakxB?= =?utf-8?B?dWh4VkFJeG5OK1FwMGtaL0hmaGJnQVpURVVRSFNPTTM4ckh0WkN2S1hwU2JJ?= =?utf-8?B?cmMyQ3VLMVhYOW5HQlkyb29JRDFPNU84R2ZsZTVwUC83NHBkWmdURkFVVDhS?= =?utf-8?B?ZDB2aXovYUJMdEd5WUpoRXJubk9GYkRhWWFKK283aC9jcXhpcHZBMDZKL05s?= =?utf-8?B?QTVTUDExTW0vWjVrNEJNd0M5QnZPbjRTYnlkQXNpbDZlMWR6K2U3bUI3Q08v?= =?utf-8?B?MkpDNmlicjA5ZUFja2tWaG14VDMxVEVzaElZTUFocksvQXd2WGc1eFJidWF2?= =?utf-8?B?RW1Gb2RobEIyVk9vN25EMW5PamJTSWdzZ1R2SFhlYVJwUkpLQ0daV0N3dHFm?= =?utf-8?B?SFZoblZhYU90bWU2MzZkY3M0Y0ZmVkp0M3BBTldqMGwzQ24zL2UxZGhsbmlw?= =?utf-8?B?UHdDdjJ5TDJ4Nk1kT2plTHU0dVlNblZWVTRsaEQ1Q2pqUHhqZjFoSWZndzJY?= =?utf-8?B?ejFrVUZDbnh1WUNrVUFqVTl0SW1wZkgzREs5dUQxNm81M1lxcyt3VnhrWmtU?= =?utf-8?B?N1dhN2FaQ29FQ2JVRVdKeGNzMWZ6Vjh0SG9vRlRUQVlIcFMyN1Y3ZVZxdUVp?= =?utf-8?B?Uk45bWpTSnNwQVFmR3hpQWZJYTFDK3B6ZjBJYVVpb0NCMys0VTBRdWFWeko2?= =?utf-8?Q?fMg4=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: f7ed94c4-a81e-4819-3d56-08da9c9a7be3 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Sep 2022 13:00:54.3108 (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: Qwkm8yfHShq8K6awUbfipwurr0RQXS8HnlYHyCBHdc4xyCqqzIP6VHnGlO2UEC2g5Wu9ypbS0ETO47iXK00NiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6719 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 SGkgQW5kcmV3LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJl dyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBTZW50OiBUaHVy c2RheSwgMjIgU2VwdGVtYmVyIDIwMjIgMTM6MzENCj4gDQo+IE9uIDkvMjIvMjIgMTM6MDYsIE9y aSBLYW0gd3JvdGU6DQo+ID4gSGkgQW5kcmV3LA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4+IEZyb206IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29A b2t0ZXRsYWJzLnJ1Pg0KPiA+PiBTZW50OiBUaHVyc2RheSwgMjIgU2VwdGVtYmVyIDIwMjIgMTA6 MzkNCj4gPj4NCj4gPj4gT24gOS8yMS8yMiAxNTo1MSwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ ID4+Pj4gRnJvbTogT3JpIEthbSBbbWFpbHRvOm9yaWthQG52aWRpYS5jb21dDQo+ID4+Pj4gU2Vu dDogV2VkbmVzZGF5LCAyMSBTZXB0ZW1iZXIgMjAyMiAxNC40MQ0KPiA+Pj4+DQo+ID4+Pj4+IEZy b206IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+ Pj4+Pg0KPiA+Pj4+PiBPbiA5LzIxLzIyIDEyOjQwLCBUaG9tYXMgTW9uamFsb24gd3JvdGU6DQo+ ID4+Pj4+PiAyMS8wOS8yMDIyIDExOjA0LCBJdmFuIE1hbG92Og0KPiA+Pj4+Pj4+IE5vdyBpdCdz IGNsZWFyIHRvIG1lIHRoYXQgeW91ciBpbnRlbnRpb24gaXMgdG8gbWF0Y2ggb24gZXhhY3QNCj4g Pj4+PiBwb3J0cywNCj4gPj4+Pj4+PiBhcyB1c3VhbCwgYnV0IHRoaXMgdGltZSB3aXRoIGEgaGlu dCBmb3IgdGhlIGZsb3cgdGFibGUuIEdvdCBpdC4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEluIHlv dXIgcmVzcG9uc2UsIHlvdSBzYXkgdGhhdCBtYXRjaGluZyBvbiBBTEwgdnBvcnRzIGlzIG5vdCB3 aGF0DQo+ID4+Pj4+Pj4gdGhlIHVzZSBjYXNlIG5lZWRzLiBPSywgSSB1bmRlcnN0b29kLiBCdXQg cGxlYXNlIG5vdGUgdGhhdCB0aGUNCj4gPj4+Pj4+PiBpdGVtIG5hbWUgZG9lcyBub3Qgc2F5ICJB TEwiLCBpdCBzYXlzICJBTlkiLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gT0suIFNheSwgIkFOWSIg aXMgYWxzbyBjb25mdXNpbmcuIExldCdzIHRoZW4gbmFtZSBpdA0KPiAiVlBPUlRTX09OTFkiDQo+ ID4+Pj4+Pj4gYW5kICJQSFlfUE9SVFNfT05MWSIuIFRoaXMgd2F5LCBpZiB1c2VyIHByb3ZpZGVz IGl0ZW0NCj4gPj4gVlBPUlRTX09OTFkNCj4gPj4+Pj4+PiBhbmQgdGhlbiAgcHJvdmlkZXMgaXRl bSBSRVBSRVNFTlRFRF9QT1JULCB0aGVzZSB0d28gaXRlbXMgZG8NCj4gbm90DQo+ID4+Pj4+Pj4g Y29udHJhZGljdCBlYWNoIG90aGVyLiBJdGVtIFZQT1JUU19PTkxZIGRlZmluZXMgdGhlIHNjb3Bl IG9mDQo+IHNvbWUNCj4gPj4+Pj4+PiBraW5kLCB0aGVuIHRoZSBmb2xsb3dpbmcgaXRlbSwgUkVQ UkVTRU5URURfUE9SVCwgbWFrZXMgaXQNCj4gPj4+PiBuYXJyb3dlci4NCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+IEFuZCwgaW4gZG9jdW1lbnRhdGlvbiwgb25lIGNhbiBzYXkgY2xlYXJseSB0aGF0IHRo ZSB1c2VyICptYXkqDQo+ID4+Pj4+Pj4gb21pdCBpdGVtIFZQT1JUU19PTkxZIGluIHRoZSBleGFj dCBydWxlIHBhdHRlcm4gcHJvdmlkZWQgdGhhdA0KPiA+Pj4+Pj4+IHRoZXkgaGF2ZSBhbHJlYWR5 IHN1Ym1pdHRlZCB0aGlzIGl0ZW0gYXMgcGFydCBvZiB0aGUgdGVtcGxhdGUuDQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4gSSB0aGluayB0aGUgcHJvYmxlbSB0aGF0IFJvbmd3ZWkgJiBPcmkgYXJlIHRyeWlu ZyB0byBzb2x2ZQ0KPiA+Pj4+Pj4gaXMgdG8gYWxsb2NhdGUgcmVzb3VyY2VzIGZvciB0aGUgdGVt cGxhdGVzIHRhYmxlIGluIHRoZSByaWdodA0KPiA+Pj4+IHBsYWNlLg0KPiA+Pj4+Pj4gQSB0YWJs ZSBjYW4gaGF2ZSBtdWx0aXBsZSB0ZW1wbGF0ZXMuDQo+ID4+Pj4+PiBJZiBhbGwgcnVsZXMvdGVt cGxhdGVzIGZvciB0aGlzIHRhYmxlIGFyZSBkZWRpY2F0ZWQgdG8gdmlydHVhbA0KPiA+Pj4+IHBv cnRzLA0KPiA+Pj4+Pj4gdGhlbiB0aGUgdGFibGUgd2lsbCBiZSBhbGxvY2F0ZWQgaW4gYSBwbGFj ZSBtYW5hZ2luZyBvbmx5IHZpcnR1YWwNCj4gPj4+PiBwb3J0cy4NCj4gPj4+Pj4+IFRoaXMgYWxs b2NhdGlvbiBkZWNpc2lvbiBtdXN0IGJlIHRha2VuIGF0IHRhYmxlIGNyZWF0aW9uLA0KPiA+Pj4+ Pj4gd2hlcmVhcyBydWxlcyB3aWxsIGJlIGNyZWF0ZWQgbGF0ZXIuDQo+ID4+Pj4+PiBJbiBvcmRl ciB0byBkbyB0aGlzIHNwZWNpZmljIHRhYmxlIGFsbG9jYXRpb24gZm9yIHZwb3J0cywNCj4gPj4+ Pj4+IHdlIG5lZWQgdG8gcmVzdHJpY3QgYWxsIHRlbXBsYXRlcyBvZiB0aGUgdGFibGUgdG8gYmUg InZwb3J0cyBvbmx5Ii4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJIGhvcGUgaXQgbWFrZXMgdGhpbmdz IGNsZWFyZXIuDQo+ID4+Pj4+PiBOb3cgdGhlIHF1ZXN0aW9uIGlzIGhvdyB0byBhY2hpZXZlIHRo aXM/IFNvbHV0aW9ucyBhcmU6DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gMS8gZ2l2ZSBhIGhpbnQgdG8g dGhlIHRhYmxlIGFsbG9jYXRpb24NCj4gPj4+Pj4+IDIvIGluc2VydCBhIHBhdHRlcm4gaXRlbSBp biBhbGwgdGVtcGxhdGVzIG9mIHRoZSB0YWJsZQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgZG9uJ3Qg c2VlIGFueSBvdGhlciBzb2x1dGlvbi4gUGxlYXNlIHByb3Bvc2UgaWYgdGhlcmUgYXJlIG1vcmUN Cj4gPj4+PiBvcHRpb25zLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IFNl ZSBteSBtYWlsDQo+ID4+Pj4+DQo+ID4+Pj4+IDMvIHVzZSBqdW1wIHJ1bGUgd2hpY2ggZW5zdXJl cyB0aGF0IGFsbCB0cmFmZmljIG1lZXRzIG91dA0KPiA+Pj4+PiAgICAgICBleHBlY3RhdGlvbnMN Cj4gPj4+Pj4NCj4gPj4+Pj4gSXQgbWVhbnMgdGhhdCB0aGUgdGFibGUgY3JlYXRpb24gY291bGQg YmUgcG9zdHBvbmVkLiBPciB0aGUNCj4gPj4+Pj4gdGFibGUgY291bGQgYmUgcGVyLWNvbmZpZ3Vy ZWQgYXQgdGhlIHBvaW50IG9mIGNyZWF0aW9uIGFuZA0KPiA+Pj4+PiBmaW5hbGl6ZWQgd2hlbiB3 ZSBrbm93IHRoYXQgYWxsIHRyYWZmaWMgd2lsbCBiZSBmcm9tIHdpcmVzDQo+ID4+Pj4+IG9yIGZy b20gdnBvcnRzLiBZZXMsIGl0IGNvbXBsaWNhdGVzIGludGVybmFscyB0byBhY2hpZXZlDQo+ID4+ Pj4+IHRoZSBvcHRpbWl6YXRpb24uDQo+ID4+Pj4NCj4gPj4+PiBTb3JyeSBBbmRyZXcgeW91ciBz dWdnZXN0aW9uIGlzIG5vdCBhIHZhbGlkIG9uZSBmb3IgdGhlIGZvbGxvd2luZw0KPiA+Pj4+IHJl YXNvbnM6DQo+ID4+Pj4gMS4gdGFibGUgY3JlYXRpb24gY2FuJ3QgYmUgcG9zdHBvbmVkIHRoaXMg aXMgYSBrZXkgaWRlYSBvZiB0aGUgcnRlX2Zsb3cNCj4gPj4+PiB0ZW1wbGF0ZSBBUEkuDQo+ID4+ DQo+ID4+IEkgZ3Vlc3Mgbm9ib2R5IGNhcmVzIGlmIGl0IGRlbGF5cyBpbnNlcnRpb24gb24gdGhl IGZpcnN0IHJ1bGUNCj4gPj4gb25seS4gQW55d2F5LCBzZWUgYmVsb3cuDQo+ID4+DQo+ID4+Pj4g Mi4gd2UgY2FuIG5ldmVyIGtub3cgd2hhdCBydWxlcyB3aWxsIGJlIGluc2VydGVkIGlmIHRoZSBh cHBsaWNhdGlvbg0KPiA+Pj4+IGRvZXNuJ3QgdGVsbCB1cy4NCj4gPj4+PiAgICAgICAgaG93IGNh biB3ZSBrbm93IHRoaXMgaXMgdGhlIGxhc3QgcnVsZT8gV2hhdCBkbyB3ZSBkbyB3aXRoIHRoZQ0K PiA+Pj4+IGZpcnN0IHJ1bGU/DQo+ID4+Pj4gMy4gSSBkb24ndCBzZWUgaG93IGp1bXBpbmcgaGVs cHMgc2luY2UgaXQgd29yc2VucyB0aGUgaXNzdWUgd2hlbiB5b3UNCj4gPj4+PiBqdW1wIHRvIGEg dGFibGUsDQo+ID4+Pj4gICAgICAgaG93IGRvZXMgdGhlIFBNRCBrbm93IGlmIHRoaXMgdGFibGUg c2hvdWxkIGhhdmUgb25seSB3aXJlIG9yIG9ubHkNCj4gPj4+PiB2cG9ydHM/DQo+ID4+DQo+ID4+ IEp1bXAgcnVsZXMgc2F5IHNvLiBQTUQgY2FuIGFuYWx5emUgdGhlcmUgcnVsZXMuDQo+ID4+IE1h eSBiZSBqdXN0IG5lZWQgYW4gYXR0cmlidXRlIHNheWluZyB0aGF0IGFsbCBqdW1wIHJ1bGVzDQo+ ID4+IHRvIHRoZSB0YWJsZSBhcmUgY29uZmlndXJlZCBhbmQgZnVydGhlciBhdHRlbXB0cyB0byBy ZWNvbmZpZ3VyZQ0KPiA+PiB3aWxsIGJlIHJlamVjdGVkPw0KPiA+Pg0KPiA+DQo+ID4gVGhlIGlk ZWEgaXMgdGhlIFBNRCB3aWxsIG5vdCBhbmFseXplIHJ1bGVzLiBUaGF0IGlzIHdoeSB3ZSBoYXZl IHRoZSB0YWJsZQ0KPiA+IGFuZCB0ZW1wbGF0ZS4NCj4gPiBTb3JyeSwgSSBkb24ndCB1bmRlcnN0 YW5kIHdoYXQgYXR0cmlidXRlIGNhbiBiZSBpbiBqdW1wPyBUaGUganVtcCBpcyBqdXN0DQo+ID4g dG8gdGFibGUuIEl0IGNhbid0IHNheSBhbnl0aGluZyBhYm91dCB0aGUgdGFibGUgZGVzdGluYXRp b24gdGFibGUuDQo+ID4gVGhpcyBpcyBhbGwgdGhpcyBwYXRjaCBhZGRzIHRoZSBhdHRyaWJ1dGUg dG8gYSB0YWJsZSB0byBzYXkgd2hlcmUgdGhpcw0KPiA+IHRhYmxlIHNob3VsZCBiZSBsb2NhdGVk Lg0KPiA+DQo+ID4+Pj4NCj4gPj4+PiBJIGFncmVlIHdpdGggVGhvbWFzLCB0aGVyZSBhcmUgdHdv IHZhbGlkIG9wdGlvbnMsIEkgdm90ZSBmb3IgdGhlIGhpbnQNCj4gPj4+PiBzaW5jZSB0aGlzIGlz IHRoZQ0KPiA+Pj4+IGZlYXR1cmUgaWRlYSB0byB0ZWxsIHRoZSBQTUQgd2hlcmUgdGhpcyByZXNv dXJjZSBzaG91bGQgYmUgYWxsb2NhdGVkLg0KPiA+Pj4NCj4gPj4+IFRoaXMgaXMgYW4gb3B0aW1p emF0aW9uOyBJIGFncmVlIHdpdGggT3JpIHRoYXQgYSBoaW50IGlzIGFwcHJvcHJpYXRlLCBsaWtl IHRoZQ0KPiA+PiBNQlVGX0ZBU1RfRlJFRSBoaW50IG9uIFRYIHF1ZXVlcy4NCj4gPj4+DQo+ID4+ PiBObyBuZWVkIHRvIGFkZCBtb3JlIGNvbXBsZXhpdHkgYnkgcmVxdWlyaW5nIHRoZSBkcml2ZXIg dG8gcmVjb2duaXplDQo+IHRoYXQNCj4gPj4gdGhlIHBhdHRlcm4gaXMgcHJlc2VudCBpbiBhbGwg dGVtcGxhdGVzLiAoQW5kIHBlcmhhcHMgYWxzbyByZW1vdmUgdGhhdA0KPiA+PiBwYXR0ZXJuIHdo ZW4gYXBwbHlpbmcgdGhlIHRlbXBsYXRlcy4pDQo+ID4+DQo+ID4+IFdoYXQgZG9lcyB0aGUgcGFy dCBvZiB0aGUgbWF0Y2hpbmcgY3JpdGVyaWEgc28gc3BlY2lhbA0KPiA+PiB0aGF0IGl0IGlzIGFs bG93ZWQgdG8gaGF2ZSBkZWRpY2F0ZWQgaGludCBhdHRyaWJ1dGU/DQo+ID4+DQo+ID4+IE1heSBi ZSB3ZSBjYW4gaGF2ZSByZWFsbHkgZ2VuZXJpYyBzb2x1dGlvbiB3aGVuIGFueQ0KPiA+PiBwYXJ0 IG9mIHRoZSBtYXRjaGluZyBjcml0ZXJpYSBjb3VsZCBwcm92aWRlIHN1Y2ggaGludHM/DQo+ID4N Cj4gPiBUaGF0IGlzIHRoZSBwb2ludCBJIGtlZXAgcmV0dXJuaW5nIHRvLCBpdCBpcyBub3QgbWF0 Y2hpbmchDQo+ID4gVGhpcyBpcyBvbiB3aGljaCBIVyByZXNvdXJjZSB0aGUgdGFibGUgc2hvdWxk IGJlIGFsbG9jYXRlZC4NCj4gDQo+IFNvcnJ5LCBidXQgaXQgaXMganVzdCB5b3VyIEhXIGRldGFp bHMgdGhhdCB5b3UgaGF2ZSBkaWZmZXJlbnQNCj4gbG9jYXRpb24vcmVzb3VyY2VzIGZvciBydWxl cyB3aGljaCBhcHBseSBvbiBwYWNrZXRzIGNvbWluZw0KPiBmcm9tIHdpcmUgYW5kIGNvbWluZyBm cm9tIGhvc3QgKHZwb3J0cykuDQo+IA0KDQoNClJpZ2h0LCBtYXliZSBvdGhlciBIVyBtYXkgaGF2 ZSB0aGlzIGlzc3VlLCBhbmQgdGhpcyBwYXRjaA0KY2FuIGhlbHAgdGhlbSBidXQgY3VycmVudGx5 LCB0aGlzIHBhdGNoIHNvbHZlcyBzb21ldGhpbmcgaW4gTnZpZGlhIEhXLg0KVGVtcGxhdGUgQVBJ IGlzIGFsbCBhYm91dCBnaXZpbmcgaGludHMsIHNvbWUgb2YgdGhlIGhpbnRzIGNhbiBiZSB1c2Vk DQpvbmx5IGJ1eSBzb21lIFBNRHMuDQpJIHByb21pc2UgdGhhdCBhbnkgdmVuZG9yIHRoYXQgaGFz IHNvbWUgd2F5IHRvIG9wdGltaXplIGl0cyBQTUQNCkkgd2lsbCBzdXBwb3J0LCBtYXkgZGlmZmVy ZW50bHkgbmFtZSBvciBkaWZmZXJlbnQgcGxhY2UgYnV0IG5vdCBhbGwgUE1EDQphcmUgZXF1YWws IGVhY2ggb25lIG5lZWRzIGl0cyBoaW50cy4NCg0KDQo+ID4gVGhpbmsgYWJvdXQgaW5ncmVzcy9l Z3Jlc3MvdHJhbnNmZXIgd2h5IGFyZSB0aGV5IG5vdCBpbiB0aGUgIHBhdHRlcm4/DQo+IA0KPiBX ZSBoYXZlIG5vIGluZ3Jlc3MvZWdyZXNzIGluIHRyYW5zZmVyIGRvbWFpbiBhbnkgbW9yZSBiZWNh dXNlDQo+IGl0IGlzIGFtYmlndW91cy4NCj4gDQoNClllcyB0aGF0IGlzIHdoeSB0aGUgbmFtZSBp cyB3aXJlIGFuZCBub24gd2lyZSwNCg0KPiBUcmFuc2ZlciBpdHNlbGYgaXMgcmVhbGx5IGEgZGlm ZmVyZW50IGRvbWFpbi4gTG9naWNhbGx5IGFuZA0KPiBmcm9tIHByaXZpbGVnZXMgcG9pbnQgb2Yg dmlldy4gVGhhdCdzIHdoeSBpdCBpcyBpbXBvcnRhbnQgdG8NCj4gZGlzdGluZ3Vpc2ggaXQuDQo+ IA0KPiBJbmdyZXNzIGFuZCBlZ3Jlc3MgaW4gbm9uLXRyYW5zZmVyIGNhc2UgYXJlIG5hdGl2ZWx5 IGJvdW5kDQo+IHRvIHR3byBtYWluIGZ1bmN0aW9ucyBvZiB0aGUgZHJpdmVyOiB0cmFuc21pdCAo ZWdyZXNzIHJ1bGVzKQ0KPiBhbmQgcmVjZWl2ZSAoaW5ncmVzcyBydWxlcykuIEluIGdlbmVyYWws IGl0IGlzIGEgbWF0Y2hpbmcNCj4gY3JpdGVyaWEgYXMgd2VsbCwgYnV0IGJlY2F1c2Ugb2YgaXRz IG5hdHVyZSAoZXhwbGFpbmVkDQo+IGFib3ZlKSBpdCBpcyBzaW1wbHkgaGFuZHkgdG8gZGlzdGlu Z3Vpc2ggaXQgZnJvbSB0aGUgdmVyeQ0KPiBiZWdpbm5pbmcuDQo+IA0KDQpJIGFncmVlIHdpdGgg eW91LCBidXQgdGhpcyBpcyBqdXN0IHRvIHNob3cgdGhhdCBldmVuIGlmIHNvbWV0aGluZyBjYW4g YmUgdHJlYXRlZA0KYXMgbWF0Y2hpbmcgaXQgaXMgbm90IHRoZSBiZXN0IHdheSB0byBsb29rIGF0 IGl0IHRoYXQgd2F5Lg0KDQo+ID4gVGhleSBhcmUgd2hlcmUgcnVsZXMgc2hvdWxkIGJlIG9mZmxv YWRlZCwgdGhleSBhcmUgZGlmZmVyZW50IGRvbWFpbi4NCj4gDQo+IFdlIGhhdmUganVzdCB0d28g ZG9tYWluczogdHJhbnNmZXIgYW5kIG5vbi10cmFuc2Zlci4NCj4gDQo+ID4gTGlrZSB3ZSBoYXZl IGVsc2V3aGVyZSBmb3IgZXhhbXBsZSBpbiBhY3Rpb24gY3JlYXRlIHdlIGNhbiBzdGF0ZSBvbiB3 aGljaA0KPiA+IGRvbWFpbiB0aGUgYWN0aW9uIHNob3VsZCBiZSBjcmVhdGVkLiBJZiB0aGUgYXBw bGljYXRpb24gc2VsZWN0cyBhIG51bWJlciBvZg0KPiBkb21haW5zDQo+ID4gaXQgbWF5IG1lYW4g dGhhdCBleHRyYSByZXNvdXJjZXMgd2lsbCBiZSBhbGxvY2F0ZWQuPg0KPiANCj4gVHdvIG1vcmUg cG9pbnRzOg0KPiANCj4gMS8gSWYgaXQgaXMganVzdCBhIGhpbnQsIGl0IGlzIG9wdGlvbmFsIGZv ciBQTUQgdG8NCj4gICAgc3VwcG9ydC9oYW5kbGUgaXQuIEl0IG1lYW5zIHRoYXQgaXQgTVVTVCBO T1QgaW1wb3NlIGFueQ0KPiAgICBsaW1pdGF0aW9ucyBvbiBtYXRjaGluZy4gSWYgc28sIGlmIHlv dSB3YW50IGEgcnVsZSB0bw0KPiAgICBiZSBhcHBsaWVkIG9uIHBhY2tldHMgY29taW5nIGZyb20g d2lyZSwgeW91IHN0aWxsIE1VU1QNCj4gICAgc3BlY2lmeSBpdCBpbiB0aGUgcGF0dGVybi4NCj4g ICAgU28sIGl0IGRvZXMgbm90IHNvdW5kIGxpa2UgYSBoaW50IGluIHlvdXIgY2FzZS4NCg0KUmln aHQgaXQgaXMgb3B0aW9uYWwgaWYgdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3QgZ2l2ZSB0aGlzIGhp bnQNCnRoZSBQTUQgd2lsbCBjcmVhdGUganVzdCBsaWtlIGl0IGRvZXMgbm93IHRhYmxlcyBmb3Ig Ym90aCB3aXJlIGFuZA0Kbm9uIHdpcmUuDQoNCj4gDQo+IDIvIHN0cnVjdCBydGVfZmxvd19hdHRy IGlzIHVzZWQgZm9yIHJlYWxseSBhbGwgcnVsZXMuDQo+ICAgICBIb3cgYSBuZXcgYXR0cmlidXRl IHNob3VsZCBiZSBpbnRlcnByZXRlZCBpbiBub24tdHJhbnNmZXINCj4gICAgIHJ1bGVzPyBTaW1p bGFyIHRvIGluZ3Jlc3MvZWdyZXNzPyBEdXBsaWNhdGlvbj8NCj4gICAgIE9yIGV2ZW4gaGFyZGVy IChpZiBpdCBpcyBOT1QgYSBoaW50KTogc2hvdWxkIGl0IHJlYWxseQ0KPiAgICAgZW5mb3JjZSBt YXRjaGluZyBvZiBwYWNrZXRzIGNvbWluZyBmcm9tIHdpcmUgKGkuZS4gbm90DQo+ICAgICBhIGRp ZmZlcmVudCB2cG9ydCk/IE5vdCBzdXJlIHRoYXQgaXQgaXMgZG9hYmxlIG9yIGV2ZW4NCj4gICAg IG1ha2Ugc2Vuc2UuDQo+ICAgICBXZSBjYW4gc2F5IHRoYXQgdGhlIGF0dHJpYnV0ZSBtYXkgYmUg dXNlZCBmb3IgdGhlIHRyYW5zZmVyDQo+ICAgICBydWxlcyBvbmx5LiBJZiBzbywgaXQgTVVTVCBi ZSBjaGVja2VkIG9uIGV0aGRldiBsZXZlbA0KPiAgICAgc2luY2UgaXQgaXMgYSBnZW5lcmljIHJ1 bGUuDQo+IA0KDQpGcm9tIG15IHBvaW50IG9mIHZpZXcsIGl0IHNob3VsZCBiZSB0cmVhdGVkIG9u bHkgaW4gY2FzZSBvZiB0cmFuc2ZlciwNCkkgdGhpbmsgaXQgYWxzbyBzdGF0ZWQgaW4gdGhlIG9y aWdpbmFsIGNvbW1pdCB0aGlzIHdheS4NCldoeSBzaG91bGQgd2UgdmFsaWRhdGUgaXQ/IFdlIGRv bid0IHZhbGlkYXRlIGlmIHRoZSBhcHBsaWNhdGlvbg0Kc2V0IHRyYW5zZmVyICsgaW5ncmVzcy9l Z3Jlc3Mgb3IganVzdCBpbmdyZXNzK2VncmVzcyBvciBub24uDQoNCg0KPiAzLyBzdHJ1Y3QgcnRl X2Zsb3dfYXR0ciBpcyB1c2VkIGZvciBzeW5jIGFuZCBhc3luYyBydWxlcy4NCj4gICAgIEFzIEkg dW5kZXJzdGFuZCB5b3UncmUgdXNpbmcgaXQgZm9yIGFzeW5jIHJ1bGVzIG9ubHkuDQo+ICAgICBE b2VzIGl0IG1ha2Ugc2Vuc2UgZm9yIHN5bmMgcnVsZXM/DQoNClllcywgaXQgY2FuIHNhdmUgaW5z ZXJ0aW9uLiBTaW5jZSBldmVuIHRoZSBzeW5jIEFQSSBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgdGhp cyBiaXQNCmR1cGxpY2F0ZSB0aGUgcnVsZS4gDQpCdXQgaWYgcHJlc3NlZCB3ZSBjYW4gbW92ZSBp dCB0byB0aGUgdGFibGUgYXR0cmlidXRlLCBkbyB5b3UgdGhpbmsgaXQgd2lsbCBiZSBiZXR0ZXI/ DQo=