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 72AEAA04A5; Tue, 25 Jan 2022 02:28:11 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D7195427D8; Tue, 25 Jan 2022 02:28:10 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on2085.outbound.protection.outlook.com [40.107.212.85]) by mails.dpdk.org (Postfix) with ESMTP id 3EEA141186 for ; Tue, 25 Jan 2022 02:28:09 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BnpiEVHH2Ilh1CcqgMxybEnyNgTXG3HwGkduWboyczFbzV+aeMnRXXk1eRqJeWr1udTvSHr1h9gKhByl7I83nuEXXY26FaKo9nVgAp9oBH00FvjDaK0EbjMAjn/SYa+Xg++WT58oGTv5JcwWXk6kchmds1jocTdvTngf+zqYruqvoHAJtXTS8B776h0tzi2PSExbQaEvj1Cwu89w4CouZGx1A46pm7uvJ2nay0qbwnxUGcrdh8dqsqPkfNtPHfXJ2knfGPk3eYyUCLdMivK4Tgye1t+f0dG7Z8R5KeRaXzoutOSQPVYvroHCvEVAcBHLGLSRxN1HUaJkG4AavJ3Xkw== 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=DoTTH2wAMOCam0Y2H+Xj39rro4cVbigh1L1SSnS3x9M=; b=mAJRR7WJWoCUdUCxbJstThL9RaFCs3rLb6puSub4g5wv+c0+XQsarr76c2hBKyr/pzmSqNEcKPLSrwZ9epI1ZnkwsC5xmCiKkiOBrFOgrYCxGu+DaEsTg8NkdYX28whOdcn5VWqd2Yt3t3MFgTh2QnWLmR6w9KuQiNpYHKrZPj/KvOmsdD/VsHrDYH608AwoCSLiJs95WvyMzYDnN7uRtK7xor15FnARHzxNdJVQXyQMMRXOyEsiREGp3QpU4c7Qr2Pj//BI+yHA+v/MkQNcob30BL08btRzxvqUOBLySa51puEs8lgHR7IAL/N/ENWs8YCGuVdP1fBXbRMqEQJPKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=DoTTH2wAMOCam0Y2H+Xj39rro4cVbigh1L1SSnS3x9M=; b=pJ5IfsH7CSAcOuqyW6KV/KhRi0UYjQgzglgqLy8TEStF/ayLjFe1MB1kibL2B85Xc8IaSX45g/JsUkVHoY4FSL2Rf4EtOlF+RHLWHJ4Tx41804kwGAtWk31nT3Sr6pDZGdhrzsnEDZvFzGJiWv9fkXhhzAx09D+taBe031/qLvPfzodESTWxF/F5vNG1nP7EsZIsntljXFbYzlIwub48W5yCLtvJffPGTeTBPsSjuLAWJADP6IKbSvGZsStxDuWKca5byJ/IBI+at0NcEhw4w2tzmzzP1uH6KhtTDjG5YKST2vF9l1bIgmr2l12uRgh8B9m1jZr9kzlgSD6GtYQ5eg== Received: from MWHPR12MB1471.namprd12.prod.outlook.com (2603:10b6:301:e::20) by MWHPR1201MB0095.namprd12.prod.outlook.com (2603:10b6:301:4e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.10; Tue, 25 Jan 2022 01:28:07 +0000 Received: from DM5PR12MB2405.namprd12.prod.outlook.com (2603:10b6:4:b2::20) by MWHPR12MB1471.namprd12.prod.outlook.com (2603:10b6:301:e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.17; Tue, 25 Jan 2022 01:28:06 +0000 Received: from DM5PR12MB2405.namprd12.prod.outlook.com ([fe80::cd5b:cd8d:cd38:8c31]) by DM5PR12MB2405.namprd12.prod.outlook.com ([fe80::cd5b:cd8d:cd38:8c31%6]) with mapi id 15.20.4909.017; Tue, 25 Jan 2022 01:28:06 +0000 From: Alexander Kozyrev To: Ajit Khaparde , Jerin Jacob CC: dpdk-dev , Ori Kam , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Ivan Malov , Andrew Rybchenko , Ferruh Yigit , "mohammad.abdul.awal@intel.com" , Qi Zhang , Jerin Jacob Subject: RE: [PATCH v2 01/10] ethdev: introduce flow pre-configuration hints Thread-Topic: [PATCH v2 01/10] ethdev: introduce flow pre-configuration hints Thread-Index: AQHYDIB8ez/3PxqCtUa/zNQfuwX8BqxyRq0AgAAzUoCAAH63YA== Date: Tue, 25 Jan 2022 01:28:06 +0000 Message-ID: References: <20211006044835.3936226-1-akozyrev@nvidia.com> <20220118153027.3947448-1-akozyrev@nvidia.com> <20220118153027.3947448-2-akozyrev@nvidia.com> In-Reply-To: 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: 969673ab-bc61-4d88-2ef6-08d9dfa1f091 x-ms-traffictypediagnostic: MWHPR12MB1471:EE_|MWHPR1201MB0095: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: Xpxe6l4z81N9YDPvFI32cXTyjqIqaDpBO4Vrco7GJAMWj0p2G5oZiSYbHUp/mng4uLi4EPsEz+Gy9PJZAf/9OFvTft7NRGkiLJ9fi8QRFHy/GRqazv40PbSBr6DUXUp4YYyN7hDQB0nmkEu05IWG7DRf59vhaB8ucUkoJ+3dvn7dYcWV2CYjYK0xx19Uxvb7mB3OK4cmQV57FgFDxsg++P6tjj+ozkMhkgH50Q0a2sgLFceulgrU5ArJHxLFsbp4qQeZ8wSCld39LW67v37TurRPiqrit7T1OkjsXsRVf/GVYLd7RkvnT8BzrXqaNpqVvDdmNX2O/6DivLDZepZMeCM7jUH7/AL+yogKro0A6vl9+zi3T4lDWl3/1TvRbbnkW9vzKhSx7KJE2hjDqDQPsJ97dfoe2jm5o5kIkOLuuuTzNlRECqkKYksYvPDDL4QBgjyshl52jKM82vQaMC1CTMazySu81Yl7ToSo5bwiiNTkj4mF2I8WWagk+ymL3vZX77pvTUjcDUOZrwMsXmXAjkX0Srgfl8U4QFGeB63ic7MshB/uYtyXsUR/LlO4Mps64UJ/tpClMDhVWGt4d4NxhRLsaNBi4J46/3RXHX3SJqD0TdWCdd9GXA9thz1CsCJM1fmiOGieBMUUsF6oBiQfVttnE6nzANBrpbxZg2clKPsGjhSSHcgrFjhpM2F9gZIqPj4imyKnVCdtCOgZPRLBsQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR12MB1471.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38070700005)(33656002)(7696005)(38100700002)(54906003)(9686003)(8676002)(8936002)(316002)(4326008)(110136005)(53546011)(7416002)(71200400001)(86362001)(5660300002)(6506007)(52536014)(83380400001)(122000001)(76116006)(66946007)(66556008)(66476007)(64756008)(55016003)(66446008)(2906002)(186003)(508600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dU5nRFJLQVBUNzljb2dxSGRIZmNKTjNmTzhzYXhBSE5lUkFJZXFnVEwyQzZI?= =?utf-8?B?L290WDdDZitrMGlwWlZMWkNBa0k3VlNUaDlCV2lvdDMxWDF3eXF0UkFnZ3FM?= =?utf-8?B?VVc1TDNRNjEyUlFhS0gvcDJJR2Fick5NS29HekNWRmNnckZoYmhSV1Nwc0U0?= =?utf-8?B?VEtMakt5MjhVUFZ2ck5WWFhhYWpsOFpRV3FRRHBYdEVnRWtsWDRJYzdBOFQz?= =?utf-8?B?OEEzTnlIS0lxV2Y5Ui9iT0lUTkRxcVRtRk1CSmk5ZkNxaFM0bWNvc0dTWnVJ?= =?utf-8?B?WU1uV0xWbjZtMThUcy9HVUlESXZZN2lCNWlPRkdwTVRscUl5T2lQTzl4bU5O?= =?utf-8?B?dmJ3MTQ3NHhRd05VSnE1eWNRdFVzbGtVc01vVGR5bjR1a1JzVGhVOEQzT3ln?= =?utf-8?B?cEJIckFrVkNaNFR5eGE0V1dIcUh6V0hOL2ZwRDhQT2p0QlBsbnp2VXRnYVJM?= =?utf-8?B?SXM0QUs2NklCZno5NlYrTEZ6VmpKVzZxNmMxeWdSNmtUUzhNTTJzWUFLcGI0?= =?utf-8?B?TXVLMWVOZSt1SXBrcjdXT3RYQjc0R24rRk92OUVjc3h2aUVmMWU4dHhnSXFk?= =?utf-8?B?ZnR2dlRhRWk5c0swc2Q5VjNWRDYrNTZaV1lGbWdrZHJSTG9VSTZ6dzY2L2RB?= =?utf-8?B?K3dPZ0dTbndYOU80ZlRGdmpqT2RDSXRUb0xSbUZJRVA5ckw4b0EweUtwMCtC?= =?utf-8?B?YUYxa3NGa3IwWDhFbDMzUXBGOFZCUTdrbVZBazhjbUh5enlrNEFvWjhqNDZW?= =?utf-8?B?QzN0MWxjVXhTN0ZoZXVYK1VGR0NUKzRBU1RzOXljZzZrazI2OGhENnI5OE9w?= =?utf-8?B?Wi9OUUtRYVBWSjhVdWs0dVJOUnBid2hXc2VtZEM1SVVhK0lUVFF2Nnc2cjNH?= =?utf-8?B?NWc1dGR4RVMybHB3Q09SSHBWUm9PRW1SRXBpN0RwSTd6eG54aWFlaUhIRXNx?= =?utf-8?B?L25tKzJDWFBmT2NJUmFjQUd1dHB3U2wxMjMvbXcvVmVtRVIxYjhlcjhMRVla?= =?utf-8?B?bytPblBYRmtKcVNKSTZ4SkZuYkNHSmJnakUwUnIxdEFyRDI2cHExU3czUWtR?= =?utf-8?B?anVvbEpORmxqbUFMYTcycU9PdXNSUlNEL1Z1UCtjM2ZXZEdiNFhucXdxSTFy?= =?utf-8?B?aFBYYkxId3g1Yy9PV2FLUTkwVzZGajcvQ0VKbFBVUzRDeDdrOSsxNThCT1VK?= =?utf-8?B?Q01Jak5FSzlxNndHS2w4aHdJOE9iN3lMSGtwd3hlMHpVZTN6VURuWFgyRkNV?= =?utf-8?B?WlVYMEFESEgrM2FmN3FPL04vYmY2YXBleElSdnZXTlRCcmxNU3BmQmpJZmpI?= =?utf-8?B?Vkw0Rnh6ZmdVeDU3YjU3YU9qNnQvNzNLNEhTK3R2MVR6bEhvQmdhZENlWlZZ?= =?utf-8?B?K05ad0l3RC8wY09UbVVvRlZSWjlGWkVJVFRvMC82SUlpRTNGNVVydHdueWpY?= =?utf-8?B?UVdWV2E0Zjc4dGVnWU91Kyt4MFpZMHFJbmIzZmIva1cxeGNFSml4amF4MjYy?= =?utf-8?B?MU92clJWR2FpRG4xOTl5RHBZbVRhTDlaK0NZTjVYQm1ROWpNbUFrMVJmR1pG?= =?utf-8?B?NU5MaW83bmQ3c0JmM2tkNENQVkdMYlhHbFF3SmwwWERNZTZxMzl5NlNMRUNt?= =?utf-8?B?ZklOeGZqakwyM1BlZDlNOEVpK0phUzZYOU01cDY3a042OWhtT0N4YUoybWhu?= =?utf-8?B?UldiYVN6L3hkbHM0eVY2dk5Rb3JOL1RSSmZnM0V1WlFzSS8xc1JaN3dhcDRQ?= =?utf-8?B?blcwRmtzWUoreTZzVEtMMWVCakQ0VVpyalN2ZjlCYTBUanJkTEFXMjRpaFdz?= =?utf-8?B?R1ljRThQK1pzNkJ3dDhBRXVlenJKSENtaWQxUW02SUF3bFJsRmVHTE5UbU03?= =?utf-8?B?eTIvb3VtSE5zcWU0Q0NxVE5hZFdhZVB3RVVXbnhsaHlYRFg5U0JoS3RteXdQ?= =?utf-8?B?alVjbVUvWW9oSlo1ZEtmcEk1RmZOdkNycEJzRGNLdXBXZGVabSt6TGIvd1hG?= =?utf-8?B?aFlSbkIrOU1tK1ZZeHF6WnVRTXluTEJnOGFCTTNudjdLZTVhaG1PSkMxaHVK?= =?utf-8?B?RW54ckNsb2VFWld3VGVuWm43cUxmVWN1b3ZYU1NjVHNOZTc1bldKc1h1a0FH?= =?utf-8?B?RkxJNDdWdC9FYVVBU3U5ZzEzWGNHcE1kbVhCMDVpdU8xUG5RdGc4Zm5Mc1lx?= =?utf-8?B?d3FYWTN1QUJlRTNCQTErcnZVeW9jTUdSUGtYY2JOSVNoYXVFQjVXZGVnc1dR?= =?utf-8?Q?Y0afDnOLCdgkF+BcX7PNh6aVjdfOcmK6hXxX1eum1A=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: DM5PR12MB2405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 969673ab-bc61-4d88-2ef6-08d9dfa1f091 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2022 01:28:06.7317 (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: bHt7Tva9/uwQX/Gn0ikBGH9PBNSYfQHGD8RQC53bvncpRxcQ5XoJH9W984HRDe4TNJTX+tbC+htOoVYdqLeYYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB0095 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 T24gTW9uZGF5LCBKYW51YXJ5IDI0LCAyMDIyIDEyOjQxIEFqaXQgS2hhcGFyZGUgPGFqaXQua2hh cGFyZGVAYnJvYWRjb20uY29tPiB3cm90ZToNCj4gT24gTW9uLCBKYW4gMjQsIDIwMjIgYXQgNjoz NyBBTSBKZXJpbiBKYWNvYiA8amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiB3cm90ZToNCj4gPg0K PiA+IE9uIFR1ZSwgSmFuIDE4LCAyMDIyIGF0IDk6MDEgUE0gQWxleGFuZGVyIEtvenlyZXYNCj4g PGFrb3p5cmV2QG52aWRpYS5jb20+IHdyb3RlOg0KPiA+ID4NCj4gPiA+IFRoZSBmbG93IHJ1bGVz IGNyZWF0aW9uL2Rlc3RydWN0aW9uIGF0IGEgbGFyZ2Ugc2NhbGUgaW5jdXJzIGEgcGVyZm9ybWFu Y2UNCj4gPiA+IHBlbmFsdHkgYW5kIG1heSBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcGFja2V0IHBy b2Nlc3Npbmcgd2hlbiB1c2VkDQo+ID4gPiBhcyBwYXJ0IG9mIHRoZSBkYXRhcGF0aCBsb2dpYy4g VGhpcyBpcyBtYWlubHkgYmVjYXVzZSBzb2Z0d2FyZS9oYXJkd2FyZQ0KPiA+ID4gcmVzb3VyY2Vz IGFyZSBhbGxvY2F0ZWQgYW5kIHByZXBhcmVkIGR1cmluZyB0aGUgZmxvdyBydWxlIGNyZWF0aW9u Lg0KPiA+ID4NCj4gPiA+IEluIG9yZGVyIHRvIG9wdGltaXplIHRoZSBpbnNlcnRpb24gcmF0ZSwg UE1EIG1heSB1c2Ugc29tZSBoaW50cw0KPiBwcm92aWRlZA0KPiA+ID4gYnkgdGhlIGFwcGxpY2F0 aW9uIGF0IHRoZSBpbml0aWFsaXphdGlvbiBwaGFzZS4gVGhlIHJ0ZV9mbG93X2NvbmZpZ3VyZSgp DQo+ID4gPiBmdW5jdGlvbiBhbGxvd3MgdG8gcHJlLWFsbG9jYXRlIGFsbCB0aGUgbmVlZGVkIHJl c291cmNlcyBiZWZvcmVoYW5kLg0KPiA+ID4gVGhlc2UgcmVzb3VyY2VzIGNhbiBiZSB1c2VkIGF0 IGEgbGF0ZXIgc3RhZ2Ugd2l0aG91dCBjb3N0bHkgYWxsb2NhdGlvbnMuDQo+ID4gPiBFdmVyeSBQ TUQgbWF5IHVzZSBvbmx5IHRoZSBzdWJzZXQgb2YgaGludHMgYW5kIGlnbm9yZSB1bnVzZWQgb25l cyBvcg0KPiA+ID4gZmFpbCBpbiBjYXNlIHRoZSByZXF1ZXN0ZWQgY29uZmlndXJhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkLg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLb3p5 cmV2IDxha296eXJldkBudmlkaWEuY29tPg0KPiA+ID4gLS0tDQo+ID4NCj4gPiA+DQo+ID4gPiAr LyoqDQo+ID4gPiArICogQHdhcm5pbmcNCj4gPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMg QVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4gPiArICoNCj4gPiA+ICsg KiBGbG93IGVuZ2luZSBwb3J0IGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcy4NCj4gPiA+ICsgKi8N Cj4gPiA+ICtfX2V4dGVuc2lvbl9fDQo+ID4NCj4gPiBJcyB0aGlzIF9fZXh0ZW5zaW9uX18gcmVx dWlyZWQgPw0KTm8sIGl0IGlzIG5vdCBsb25nZXIgcmVxdWlyZWQgYXMgSSByZW1vdmVkIGJpdGZp ZWxkIGZyb20gdGhpcyBzdHJ1Y3R1cmUuIFRoYW5rcyBmb3IgY2F0Y2hpbmcuDQoNCj4gPg0KPiA+ ID4gK3N0cnVjdCBydGVfZmxvd19wb3J0X2F0dHIgew0KPiA+ID4gKyAgICAgICAvKioNCj4gPiA+ ICsgICAgICAgICogVmVyc2lvbiBvZiB0aGUgc3RydWN0IGxheW91dCwgc2hvdWxkIGJlIDAuDQo+ ID4gPiArICAgICAgICAqLw0KPiA+ID4gKyAgICAgICB1aW50MzJfdCB2ZXJzaW9uOw0KPiA+DQo+ ID4gV2h5IHZlcnNpb24gbnVtYmVyPyBBY3Jvc3MgRFBESywgd2UgYXJlIHVzaW5nIGR5bmFtaWMg ZnVuY3Rpb24NCj4gPiB2ZXJzaW9uaW5nLCBJIHRoaW5rLCB0aGF0IHdvdWxkDQo+ID4gIGJlIHN1 ZmZpY2llbnQgZm9yIEFCSSB2ZXJzaW9uaW5nDQo+ID4NCj4gPiA+ICsgICAgICAgLyoqDQo+ID4g PiArICAgICAgICAqIE51bWJlciBvZiBjb3VudGVyIGFjdGlvbnMgcHJlLWNvbmZpZ3VyZWQuDQo+ ID4gPiArICAgICAgICAqIElmIHNldCB0byAwLCBQTUQgd2lsbCBhbGxvY2F0ZSBjb3VudGVycyBk eW5hbWljYWxseS4NCj4gPiA+ICsgICAgICAgICogQHNlZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9D T1VOVA0KPiA+ID4gKyAgICAgICAgKi8NCj4gPiA+ICsgICAgICAgdWludDMyX3QgbmJfY291bnRl cnM7DQo+ID4gPiArICAgICAgIC8qKg0KPiA+ID4gKyAgICAgICAgKiBOdW1iZXIgb2YgYWdpbmcg YWN0aW9ucyBwcmUtY29uZmlndXJlZC4NCj4gPiA+ICsgICAgICAgICogSWYgc2V0IHRvIDAsIFBN RCB3aWxsIGFsbG9jYXRlIGFnaW5nIGR5bmFtaWNhbGx5Lg0KPiA+ID4gKyAgICAgICAgKiBAc2Vl IFJURV9GTE9XX0FDVElPTl9UWVBFX0FHRQ0KPiA+ID4gKyAgICAgICAgKi8NCj4gPiA+ICsgICAg ICAgdWludDMyX3QgbmJfYWdpbmc7DQo+ID4gPiArICAgICAgIC8qKg0KPiA+ID4gKyAgICAgICAg KiBOdW1iZXIgb2YgdHJhZmZpYyBtZXRlcmluZyBhY3Rpb25zIHByZS1jb25maWd1cmVkLg0KPiA+ ID4gKyAgICAgICAgKiBJZiBzZXQgdG8gMCwgUE1EIHdpbGwgYWxsb2NhdGUgbWV0ZXJzIGR5bmFt aWNhbGx5Lg0KPiA+ID4gKyAgICAgICAgKiBAc2VlIFJURV9GTE9XX0FDVElPTl9UWVBFX01FVEVS DQo+ID4gPiArICAgICAgICAqLw0KPiA+ID4gKyAgICAgICB1aW50MzJfdCBuYl9tZXRlcnM7DQo+ ID4gPiArfTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgKiBAd2FybmluZw0KPiA+ID4g KyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5v dGljZS4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIENvbmZpZ3VyZSBmbG93IHJ1bGVzIG1vZHVsZS4N Cj4gPiA+ICsgKiBUbyBwcmUtYWxsb2NhdGUgcmVzb3VyY2VzIGFzIHBlciB0aGUgZmxvdyBwb3J0 IGF0dHJpYnV0ZXMNCj4gPiA+ICsgKiB0aGlzIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb24gbXVzdCBi ZSBjYWxsZWQgYmVmb3JlIGFueSBmbG93IHJ1bGUgaXMNCj4gY3JlYXRlZC4NCj4gPiA+ICsgKiBN dXN0IGJlIGNhbGxlZCBvbmx5IGFmdGVyIEV0aGVybmV0IGRldmljZSBpcyBjb25maWd1cmVkLCBi dXQgbWF5IGJlDQo+IGNhbGxlZA0KPiA+ID4gKyAqIGJlZm9yZSBvciBhZnRlciB0aGUgZGV2aWNl IGlzIHN0YXJ0ZWQgYXMgbG9uZyBhcyB0aGVyZSBhcmUgbm8gZmxvdyBydWxlcy4NCj4gPiA+ICsg KiBObyBvdGhlciBydGVfZmxvdyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdoaWxlIHRoaXMg ZnVuY3Rpb24gaXMNCj4gaW52b2tlZC4NCj4gPiA+ICsgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBj YWxsZWQgYWdhaW4gdG8gY2hhbmdlIHRoZSBjb25maWd1cmF0aW9uLg0KPiA+ID4gKyAqIFNvbWUg UE1EcyBtYXkgbm90IHN1cHBvcnQgcmUtY29uZmlndXJhdGlvbiBhdCBhbGwsDQo+ID4gPiArICog b3IgbWF5IG9ubHkgYWxsb3cgaW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mIHJlc291cmNlcyBhbGxv Y2F0ZWQuDQo+ID4NCj4gPiBGb2xsb3dpbmcgY29tbWVudCBmcm9tIEl2YW4gbG9va3MgZ29vZCB0 byBtZQ0KPiA+DQo+ID4gKiBQcmUtY29uZmlndXJlIHRoZSBwb3J0J3MgZmxvdyBBUEkgZW5naW5l Lg0KPiA+ICoNCj4gPiAqIFRoaXMgQVBJIGNhbiBvbmx5IGJlIGludm9rZWQgYmVmb3JlIHRoZSBh cHBsaWNhdGlvbg0KPiA+ICogc3RhcnRzIHVzaW5nIHRoZSByZXN0IG9mIHRoZSBmbG93IGxpYnJh cnkgZnVuY3Rpb25zLg0KPiA+ICoNCj4gPiAqIFRoZSBBUEkgY2FuIGJlIGludm9rZWQgbXVsdGlw bGUgdGltZXMgdG8gY2hhbmdlIHRoZQ0KPiA+ICogc2V0dGluZ3MuIFRoZSBwb3J0LCBob3dldmVy LCBtYXkgcmVqZWN0IHRoZSBjaGFuZ2VzLg0KT2ssIEknbGwgYWRvcHQgdGhpcyB3b3JkaW5nIGlu IHRoZSB2My4NCg0KPiA+ID4gKyAqDQo+ID4gPiArICogQHBhcmFtIHBvcnRfaWQNCj4gPiA+ICsg KiAgIFBvcnQgaWRlbnRpZmllciBvZiBFdGhlcm5ldCBkZXZpY2UuDQo+ID4gPiArICogQHBhcmFt W2luXSBwb3J0X2F0dHINCj4gPiA+ICsgKiAgIFBvcnQgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGVz Lg0KPiA+ID4gKyAqIEBwYXJhbVtvdXRdIGVycm9yDQo+ID4gPiArICogICBQZXJmb3JtIHZlcmJv c2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLg0KPiA+ID4gKyAqICAgUE1EcyBpbml0aWFs aXplIHRoaXMgc3RydWN0dXJlIGluIGNhc2Ugb2YgZXJyb3Igb25seS4NCj4gPiA+ICsgKg0KPiA+ ID4gKyAqIEByZXR1cm4NCj4gPiA+ICsgKiAgIDAgb24gc3VjY2VzcywgYSBuZWdhdGl2ZSBlcnJu byB2YWx1ZSBvdGhlcndpc2UgYW5kIHJ0ZV9lcnJubyBpcyBzZXQuDQo+ID4gPiArICovDQo+ID4g PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gPiAraW50DQo+ID4gPiArcnRlX2Zsb3dfY29uZmln dXJlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4NCj4gPiBTaG91bGQgd2UgY291cGxlLCBzZXR0aW5n IHJlc291cmNlIGxpbWl0IGhpbnQgdG8gY29uZmlndXJlIGZ1bmN0aW9uIGFzDQo+ID4gaWYgd2Ug YWRkIGZ1dHVyZSBpdGVtcyBpbg0KPiA+IGNvbmZpZ3VyYXRpb24sIHdlIG1heSBwYWluIHRvIG1h bmFnZSBhbGwgc3RhdGUuIEluc3RlYWQgaG93IGFib3V0LA0KPiA+IHJ0ZV9mbG93X3Jlc291cmNl X3Jlc2VydmVfaGludF9zZXQoKT8NCj4gKzENClBvcnQgYXR0cmlidXRlcyBhcmUgdGhlIGhpbnRz LCBQTUQgY2FuIHNhZmVseSBpZ25vcmUgYW55dGhpbmcgdGhhdCBpcyBub3Qgc3VwcG9ydGVkL2Rl ZW1lZCB1bnJlYXNvbmFibGUuDQpIYXZpbmcgc2V2ZXJhbCBmdW5jdGlvbnMgdG8gY2FsbCBpbnN0 ZWFkIG9mIG9uZSBjb25maWd1cmF0aW9uIGZ1bmN0aW9uIHNlZW1zIGxpa2UgYSBidXJkZW4gdG8g bWUuDQoNCj4gDQo+ID4NCj4gPg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBydGVfZmxvd19wb3J0X2F0dHIgKnBvcnRfYXR0ciwNCj4gPiA+ICsgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPg0KPiA+IEkgdGhpbmssIHdlIHNo b3VsZCBoYXZlIF9nZXQgZnVuY3Rpb24gdG8gZ2V0IHRob3NlIGxpbWl0IG51bWJlcnMgb3RoZXJ3 aXNlLA0KPiA+IHdlIGNhbiBub3Qgd3JpdGUgcG9ydGFibGUgYXBwbGljYXRpb25zIGFzIHRoZSBy ZXR1cm4gdmFsdWUgaXMgIGtpbmQgb2YNCj4gPiBib29sZWFuIG5vdyBpZg0KPiA+IGRvbid0IGRl ZmluZSBleGFjdCB2YWx1ZXMgZm9yIHJ0ZV9lcnJubyBmb3IgcmVhc29ucy4NCj4gKzENCldlIGhh ZCB0aGlzIGRpc2N1c3Npb24gaW4gUkZDLiBUaGUgbGltaXRzIHdpbGwgdmFyeSBmcm9tIE5JQyB0 byBOSUMgYW5kIGZyb20gc3lzdGVtIHRvDQpzeXN0ZW0sIGRlcGVuZGluZyBvbiBoYXJkd2FyZSBj YXBhYmlsaXRpZXMgYW5kIGFtb3VudCBvZiBmcmVlIG1lbW9yeSBmb3IgZXhhbXBsZS4NCkl0IGlz IGVhc2llciB0byByZWplY3QgYSBjb25maWd1cmF0aW9uIHdpdGggYSBjbGVhciBlcnJvciBkZXNj cmlwdGlvbiBhcyB3ZSBkbyBmb3IgZmxvdyBjcmVhdGlvbi4NCg==