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 B586AA0C46; Tue, 28 Sep 2021 07:54:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6C46740E3C; Tue, 28 Sep 2021 07:54:34 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2069.outbound.protection.outlook.com [40.107.236.69]) by mails.dpdk.org (Postfix) with ESMTP id 4CC2B40DF6 for ; Tue, 28 Sep 2021 07:54:32 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fw2kc6fkdXszDy/rEdoPxhfAoLT40tLkQpQw7/T6lJnBmLXtz4QJgaPQYFKmBw7u3WOqioYzEnz7IU3l60o4hwLxTCyYvziLEmiEGwPJnPH48Zn37WvwtoBwc7pKVewE9kV+2Qd4+YlW924E2V71VVi071e4fB+HNsX67Y6TsDhMS37zgEb+uud64w8XZdOAfK6j1/Z/2oIVZuu5l544E9ePkOeMPPR6uzdz/WhbZ/t0QCZahHCy5L7RGnT8XDgk21EriUZsM7wJfcsqX1OmEL77Yzn6wy/1hKExFDABF5nkQACoRnEi+aMvOPH1FWmi9+1srf5mDaDIOZuk90Klnw== 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; bh=wZpmTc79Ka1upoOeXKtteUojTNHkqUJH1+6UTE+uaO0=; b=jm15RpWbCGRH/Typ9DCJXZMx1/kYNF/Uzbkg04hvmJVLgOrJYWwf7jyZoMpM80E8zAMgIzMyVmt/sD/7hnTE7JEvdoEgbn+0/bt5mGOAn0j741xVbPUBXcaXIGdVQMivoRz9IlS5nR9HlmHYVHdBuxZAXSUMh18UnONuZzh8s0fHfhObQ0QCGjymXvPtLxrax4i3+3HcFu7Z3Wj+o+Pmfxv2DOl9s7uyddJxY5dHPj0/92VuRM9IIUZyv7GcI1ENXvIVEBSjT53Wtke9oN75BwAc0/RtoHEcsxMvPIoy23HQqLoQBkvgOznA4re29mgAo3gFfH/iohoOg44vFBvkBQ== 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=wZpmTc79Ka1upoOeXKtteUojTNHkqUJH1+6UTE+uaO0=; b=ZF9WfkRvV97rtcTzYGWNY6wXjxnd6A6NLPHRgdjvx4VK8Z7FvdJSyMMfPEMuiBDypyvSKC6l0uwflkIVxXfO49/XKb2AcuItDUag3PDZXRSPqfRkBz0xqXnkP7esPcHu3gsCKCZ5zW7Vgf+r8kVSrpwDHtsrruTp1cS4zu+7mGnK7NhJVSzBlp0AopWjQMrVyKxCveBTrTZRcQ4JCVKB1D94xR+kL6gGdIzSUcodxsKxLdP2Gl5ptUuQnkYLv6towjPGNfuc0WedoGIzuS+u2oNE/j7fCRTYW76gwTvVTu3ubra/I3LP5nHrNBPgOsIJ1ZSOS4JH4PwWhx66jUaE0w== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM4PR12MB5120.namprd12.prod.outlook.com (2603:10b6:5:393::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13; Tue, 28 Sep 2021 05:54:31 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25%5]) with mapi id 15.20.4544.022; Tue, 28 Sep 2021 05:54:30 +0000 From: "Xueming(Steven) Li" To: "jerinjacobk@gmail.com" CC: "xiaoyun.li@intel.com" , Jack Min , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2 06/15] app/testpmd: add common fwd wrapper function Thread-Index: AQHXjrniB07ytTm4iEOGiz+XLUrIGqt3eWqAgAGtypCAAAkFAIAAHs4QgAxudACABG158IAE0AAQgCpCMwA= Date: Tue, 28 Sep 2021 05:54:30 +0000 Message-ID: References: <20210727034204.20649-1-xuemingl@nvidia.com> <20210811140418.393264-1-xuemingl@nvidia.com> <20210811140418.393264-6-xuemingl@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.40.4 authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d901dc1e-f897-473b-e22b-08d9824470b5 x-ms-traffictypediagnostic: DM4PR12MB5120: x-ms-exchange-transport-forked: True 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: IRLwSWc1ZWpZdNfe/0eJLCO4a1JcCk6GH/H2p2Jps8PdWxvgh9k2GB3se5jMjiW+S674K99O1iTBmA6BmRssacXabsoBk5r1gNx/xWb8kBnhBWMbAR2TMyavsD4jZZfcXp4J6XELcwzIp53hklOTP1xbPCNAH+dr5+aBHpOnQSczK/pU1C3SUkTnxQ00tfQ+u9SXXPQWrsQHO3CxZQPcg2PhArh/cHBwdoTxpYLApOX2bhLs/7IgsmlO0H185hW2JVI1Awo3r6ZNszkwjeRdor/NOZAn3OALyefFMT1NXVAEZvn23waVc8y0tzqGQYeqT8vDdWNyivsBWKcM8av2DNnjmOOE4i/zJrb/3fVIAoRQiHECrI8jE3qfAo3myexU9VYL2ecw90BOLUQ3mVIboAA64QKw+6rFqqI2U6feQZj4SV9UJiKTZCRC51/m6THzbu+JpZ04ULbtZYMLSkhw7yTiGXGMfs/P8E3lbjKLRSw+G7UdR+BynNV/0++YZgYJCAPeFkGOj6carL4gyw/3pDJzNgRSE0jIx2Qi9MfqreER5pkBBTLHEGvEpGyRnPVSw4e83cCeNaYSzaNZ3goFAcHaQLOAYeXOcIgWIASpkJbCaQBhFq7u1PXdUlWFP22xABM7Q9/GgPA5ZEbQoANM/wLq7fb2eAaMv+Q/U3pehb31KCcpIQXmGJ1mkssIzl5p76/Y5ZBVcPC315EwnQXPTA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(8676002)(316002)(4326008)(71200400001)(38070700005)(2906002)(86362001)(54906003)(6916009)(508600001)(8936002)(186003)(66446008)(6486002)(26005)(66946007)(2616005)(91956017)(122000001)(83380400001)(6506007)(76116006)(6512007)(36756003)(53546011)(38100700002)(66476007)(5660300002)(66556008)(64756008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eVBBditTYU1USXhzNGRJTko4RUtJZCtRUXZ4VkwyZmpMalhYNlVYVUFUMWlx?= =?utf-8?B?Z0tLbXZJdngyaE9TR09NK0ZEMG9vWHhWR0YyakNRcGNBRFAreU9aTjZjUU5V?= =?utf-8?B?bFI5bHFwNGhxZWsySHNNdmxpaWdOd1YzYTgrSU52eVIwazMzQU5JNGM0cEE3?= =?utf-8?B?dkJFTDQ0aDZhYUQ3SXRLQURld0ZPVHI2cndPUmJheTltd01KdjRiMmhHeFlF?= =?utf-8?B?VVJkYzcvNmhyeVp1RU5SVXJMcnY3emxidmtLTGhTdEY0MVpGMWlWYmoyaW5J?= =?utf-8?B?dSs0UDVHZVN4SVg2ZFhQcW4yKzUwdFVIOWdKazZNWWdvTXg2Ukd0Tm9OUUNl?= =?utf-8?B?SkxTU1BXOWFMelJWYnlDa0Q3VUFOK1hUdCtlVXRpZWs2TnUrcGZ3QVNVYUJz?= =?utf-8?B?cldqYmp2eHYrVFdTWTR0Tlc4S2MwbHlLQ2l1bEhZRW1zaDZtVWhDK0J6Y0R5?= =?utf-8?B?WlZobkVKSmxQQ2grUlFSQTBPLzhoSEtSb3ZRalNaajRLZStWNnZPdGdzQnRK?= =?utf-8?B?ZzU1aHBLdlI4dnVabVV5ck1kRER4enNxYW9EaUJvU0FWMTFnNi9MZzZGek93?= =?utf-8?B?d2VmZXZ3dS8rRytPZUFhcEEvZkRQQThscHNDUW5neEdubXhONDNlSHluaHRv?= =?utf-8?B?UG1WbXVlK0ZueFg1S3p5Z25PeUpUdjZYSFpuTGFlLy9Fb25oTm1peUxEeWJ0?= =?utf-8?B?ZTZNL09qc3FKL3FrbklHNzlZU1dpL2w1a3N0c1kybVhBN09MSlkrSVpLTmZm?= =?utf-8?B?UmNuRmY4T2ZJNUJoYzlGVG1rdjZEZTdtN1kvc2t6Tk80YXNkaHdicHFHQVQr?= =?utf-8?B?SGJPWEx0ZXVyYXlOSXo0Ujc2cmhIcTlwRzZwVzMzWEVxQzNIUEdiWkQ1Titw?= =?utf-8?B?czN0L2Z4ZnBvdE02c1FXd05YNDJJRENrSGJ1WnJGUWFaZjU3U1hMeFRSS0No?= =?utf-8?B?SUV2RE5FcGJ6SVNrRXBTMGlMUlVReG9RbzFXdFBWZysxbC8vSmdoK3dORkdK?= =?utf-8?B?QjNCczR1eG1WdHBzc1N0VnpFeUJhandnSGtJQWlUcUFHZ2VFTXlabUg2Q0ZL?= =?utf-8?B?OHVudXFjeEJvQWsra2srdFFNeDB3N0szSEx4TDlDdi9VUnc4TUtPbDZLeHd1?= =?utf-8?B?UEliWlI1czRTQ0NXM0R2MWx5UHBnZm1kcU94Q3J2SldPZ2tZYUlraXkydDV6?= =?utf-8?B?Q3dxV3QybUVXVnFSTXBjbzdMUW9iV0RHOXBLSW5YWGhHemZGYndoMTlLN1Np?= =?utf-8?B?VlB4cWF5UkkwYk1RZTN5Y2F3MFZsWHJVWmo1N0xzQzNyUUlwU2dvOEExOEdo?= =?utf-8?B?dy8vRXFGSHpvRTNyWFBhN0duM3Y3OUpIb090SVZwTjdzMW43MWJqa05OUFRp?= =?utf-8?B?ekluenhXbWRYSGp1eXMxZG44eWk2K1orYUNVam1tYlVUNEtBSkZJWjI4Q0xv?= =?utf-8?B?RUxneVZYdE01aGpRNFpwa3YyeVd4T3lTU00vT0syYW9kSUJOdmxyNVU3UGxJ?= =?utf-8?B?MnBWczYxQnR6TlA5eXEzQlpNK2FUaU1kNTBKck9YcTVRc20xWjAvWUpya3Fj?= =?utf-8?B?ZGhJVFNUYjQ3MnU3NEw2bWhzVllrOS9PMXljYzF1bTFyNUk2SUJ1d0xOTEF1?= =?utf-8?B?dmlrMFlZV1JjTVgycnhaL0haMlFPSmdTUXpBSHZqQTNLQlBTUWVENjFGUm9P?= =?utf-8?B?dWFvNVJwTnR5MGU2dWpYY0xZaFJXTTB1cGdRK05XdURmSEJBOFRBa3AvUlRo?= =?utf-8?B?alZPZGxNNWxUTnhpUE5vWFFRMjFrN1VVOTNRZHFmYWF6U3VJMkNMaXBwUG9W?= =?utf-8?B?RFJVNlVja2UrL25JbG9FZz09?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d901dc1e-f897-473b-e22b-08d9824470b5 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2021 05:54:30.9114 (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: G8juRkAZtIuKn3pgy56s7MsdHDTi9gZDRjbSBwfi04XVRZfkR+qLd8YDa8jg9KFzLqUKak04SHfIxKnlNy3JRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5120 Subject: Re: [dpdk-dev] [PATCH v2 06/15] app/testpmd: add common fwd wrapper function 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" T24gV2VkLCAyMDIxLTA5LTAxIGF0IDE0OjQ0ICswMDAwLCBYdWVtaW5nKFN0ZXZlbikgTGkgd3Jv dGU6DQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2IDxk ZXYtYm91bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIFh1ZW1pbmcoU3RldmVuKSBMaQ0KPiA+ IFNlbnQ6IFN1bmRheSwgQXVndXN0IDI5LCAyMDIxIDM6MDggUE0NCj4gPiBUbzogSmVyaW4gSmFj b2IgPGplcmluamFjb2JrQGdtYWlsLmNvbT4NCj4gPiBDYzogSmFjayBNaW4gPGphY2ttaW5AbnZp ZGlhLmNvbT47IGRwZGstZGV2IDxkZXZAZHBkay5vcmc+OyBYaWFveXVuIExpIDx4aWFveXVuLmxp QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjIgMDYvMTVd IGFwcC90ZXN0cG1kOiBhZGQgY29tbW9uIGZ3ZCB3cmFwcGVyIGZ1bmN0aW9uDQo+ID4gDQo+ID4g DQo+ID4gDQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogSmVy aW4gSmFjb2IgPGplcmluamFjb2JrQGdtYWlsLmNvbT4NCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBB dWd1c3QgMjYsIDIwMjEgNzoyOCBQTQ0KPiA+ID4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVl bWluZ2xAbnZpZGlhLmNvbT4NCj4gPiA+IENjOiBKYWNrIE1pbiA8amFja21pbkBudmlkaWEuY29t PjsgZHBkay1kZXYgPGRldkBkcGRrLm9yZz47IFhpYW95dW4gTGkNCj4gPiA+IDx4aWFveXVuLmxp QGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MiAwNi8x NV0gYXBwL3Rlc3RwbWQ6IGFkZCBjb21tb24gZndkDQo+ID4gPiB3cmFwcGVyIGZ1bmN0aW9uDQo+ ID4gPiANCj4gPiA+IE9uIFdlZCwgQXVnIDE4LCAyMDIxIGF0IDc6MzggUE0gWHVlbWluZyhTdGV2 ZW4pIExpIDx4dWVtaW5nbEBudmlkaWEuY29tPiB3cm90ZToNCj4gPiA+ID4gDQo+ID4gPiA+IA0K PiA+ID4gPiANCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ IEZyb206IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+DQo+ID4gPiA+ID4gU2Vu dDogV2VkbmVzZGF5LCBBdWd1c3QgMTgsIDIwMjEgNzo0OCBQTQ0KPiA+ID4gPiA+IFRvOiBYdWVt aW5nKFN0ZXZlbikgTGkgPHh1ZW1pbmdsQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gQ2M6IEphY2sg TWluIDxqYWNrbWluQG52aWRpYS5jb20+OyBkcGRrLWRldiA8ZGV2QGRwZGsub3JnPjsNCj4gPiA+ ID4gPiBYaWFveXVuIExpIDx4aWFveXVuLmxpQGludGVsLmNvbT4NCj4gPiA+ID4gPiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjIgMDYvMTVdIGFwcC90ZXN0cG1kOiBhZGQgY29tbW9u DQo+ID4gPiA+ID4gZndkIHdyYXBwZXIgZnVuY3Rpb24NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBP biBXZWQsIEF1ZyAxOCwgMjAyMSBhdCA0OjU3IFBNIFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWlu Z2xAbnZpZGlhLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gDQo+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ ID4gPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+DQo+ID4gPiA+ ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAxNywgMjAyMSA1OjM3IFBNDQo+ID4gPiA+ID4g PiA+IFRvOiBYdWVtaW5nKFN0ZXZlbikgTGkgPHh1ZW1pbmdsQG52aWRpYS5jb20+DQo+ID4gPiA+ ID4gPiA+IENjOiBKYWNrIE1pbiA8amFja21pbkBudmlkaWEuY29tPjsgZHBkay1kZXYgPGRldkBk cGRrLm9yZz47DQo+ID4gPiA+ID4gPiA+IFhpYW95dW4gTGkgPHhpYW95dW4ubGlAaW50ZWwuY29t Pg0KPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjIgMDYvMTVd IGFwcC90ZXN0cG1kOiBhZGQNCj4gPiA+ID4gPiA+ID4gY29tbW9uIGZ3ZCB3cmFwcGVyIGZ1bmN0 aW9uDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBPbiBXZWQsIEF1ZyAxMSwgMjAyMSBh dCA3OjM1IFBNIFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG52aWRpYS5jb20+IHdyb3RlOg0KPiA+ID4g PiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IEZyb206IFhpYW95dSBNaW4gPGphY2ttaW5AbnZp ZGlhLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiBBZGRlZCBhbiBpbmxp bmUgY29tbW9uIHdyYXBwZXIgZnVuY3Rpb24gZm9yIGFsbCBmd2QgZW5naW5lcw0KPiA+ID4gPiA+ ID4gPiA+IHdoaWNoIGRvIHRoZSBmb2xsb3dpbmcgaW4gY29tbW9uOg0KPiA+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiA+IDEuIGdldF9zdGFydF9jeWNsZXMNCj4gPiA+ID4gPiA+ID4gPiAy LiBydGVfZXRoX3J4X2J1cnN0KC4uLixuYl9wa3RfcGVyX2J1cnN0KQ0KPiA+ID4gPiA+ID4gPiA+ IDMuIGlmIHJ4cV9zaGFyZSBkbyBmb3J3YXJkX3NoYXJlZF9yeHEoKSwgb3RoZXJ3aXNlIGRvIGZ3 ZCBkaXJlY3RseSA0Lg0KPiA+ID4gPiA+ID4gPiA+IGdldF9lbmRfY3ljbGUNCj4gPiA+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBYaWFveXUgTWluIDxqYWNrbWlu QG52aWRpYS5jb20+DQo+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ID4gIGFwcC90 ZXN0LXBtZC90ZXN0cG1kLmggfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ID4g PiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKykNCj4gPiA+ID4gPiA+ID4g PiANCj4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaCBi L2FwcC90ZXN0LXBtZC90ZXN0cG1kLmgNCj4gPiA+ID4gPiA+ID4gPiBpbmRleA0KPiA+ID4gPiA+ ID4gPiA+IDEzMTQxZGZlZDkuLmI2ODVhYzQ4ZDYgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gLS0t IGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaA0KPiA+ID4gPiA+ID4gPiA+ICsrKyBiL2FwcC90ZXN0 LXBtZC90ZXN0cG1kLmgNCj4gPiA+ID4gPiA+ID4gPiBAQCAtMTAyMiw2ICsxMDIyLDMwIEBAIHZv aWQgYWRkX3R4X2R5bmZfY2FsbGJhY2socG9ydGlkX3QNCj4gPiA+ID4gPiA+ID4gPiBwb3J0aWQp OyB2b2lkIHJlbW92ZV90eF9keW5mX2NhbGxiYWNrKHBvcnRpZF90IHBvcnRpZCk7ICBpbnQNCj4g PiA+ID4gPiA+ID4gPiB1cGRhdGVfanVtYm9fZnJhbWVfb2ZmbG9hZChwb3J0aWRfdCBwb3J0aWQp Ow0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQN Cj4gPiA+ID4gPiA+ID4gPiArZG9fYnVyc3RfZndkKHN0cnVjdCBmd2Rfc3RyZWFtICpmcywgcGFj a2V0X2Z3ZF9jYiBmd2QpIHsNCj4gPiA+ID4gPiA+ID4gPiArICAgICAgIHN0cnVjdCBydGVfbWJ1 ZiAqcGt0c19idXJzdFtNQVhfUEtUX0JVUlNUXTsNCj4gPiA+ID4gPiA+ID4gPiArICAgICAgIHVp bnQxNl90IG5iX3J4Ow0KPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgdWludDY0X3Qgc3RhcnRfdHNj ID0gMDsNCj4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICBnZXRfc3Rh cnRfY3ljbGVzKCZzdGFydF90c2MpOw0KPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4g PiArICAgICAgIC8qDQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgKiBSZWNlaXZlIGEgYnVyc3Qg b2YgcGFja2V0cyBhbmQgZm9yd2FyZCB0aGVtLg0KPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICov DQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICBuYl9yeCA9IHJ0ZV9ldGhfcnhfYnVyc3QoZnMtPnJ4 X3BvcnQsIGZzLT5yeF9xdWV1ZSwNCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICBwa3RzX2J1cnN0LCBuYl9wa3RfcGVyX2J1cnN0KTsNCj4gPiA+ID4gPiA+ID4gPiArICAg ICAgIGluY19yeF9idXJzdF9zdGF0cyhmcywgbmJfcngpOw0KPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgaWYgKHVubGlrZWx5KG5iX3J4ID09IDApKQ0KPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICByZXR1cm47DQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICBpZiAodW5saWtlbHkocnhxX3No YXJlID4gMCkpDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBTZWUgYmVsb3cuIEl0IHJl YWRzIGEgZ2xvYmFsIG1lbW9yeS4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgIGZvcndhcmRfc2hhcmVkX3J4cShmcywgbmJfcngsIHBrdHNfYnVyc3QsIGZ3 ZCk7DQo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICBlbHNlDQo+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICgqZndkKShmcywgbmJfcngsIHBrdHNfYnVyc3QpOw0KPiA+ID4gPiA+ID4gPiAN Cj4gPiA+ID4gPiA+ID4gTmV3IGZ1bmN0aW9uIHBvaW50ZXIgaW4gZmFzdHBhdGguDQo+ID4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBJTU8sIFdlIHNob3VsZCBub3QgY3JlYXRlIHBlcmZvcm1h bmNlIHJlZ3Jlc3Npb24gZm9yIHRoZSBleGlzdGluZyBmb3J3YXJkIGVuZ2luZS4NCj4gPiA+ID4g PiA+ID4gQ2FuIHdlIGhhdmUgYSBuZXcgZm9yd2FyZCBlbmdpbmUganVzdCBmb3Igc2hhcmVkIG1l bW9yeSB0ZXN0aW5nPw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBZZXMsIGZ1bGx5IGF3YXJl IG9mIHRoZSBwZXJmb3JtYW5jZSBjb25jZXJuLCB0aGUgZ2xvYmFsIGNvdWxkIGJlIGRlZmluZWQg YXJvdW5kIHJlY29yZF9jb3JlX2N5Y2xlcyB0byBtaW5pbWl6ZSB0aGUgaW1wYWN0cy4NCj4gPiA+ ID4gPiA+IEJhc2VkIG9uIHRlc3QgZGF0YSwgdGhlIGltcGFjdHMgYWxtb3N0IGludmlzaWJsZSBp biBsZWdhY3kgbW9kZS4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBBcmUgeW91IHNheWluZyB0aGVy ZSBpcyB6ZXJvICUgcmVncmVzc2lvbj8gSWYgbm90LCBjb3VsZCB5b3Ugc2hhcmUgdGhlIGRhdGE/ DQo+ID4gPiA+IA0KPiA+ID4gPiBBbG1vc3QgemVybywgaGVyZSBpcyBhIHF1aWNrIHNpbmdsZSBj b3JlIHJlc3VsdCBvZiByeG9ubHk6DQo+ID4gPiA+ICAgICAgICAgMzIuMk1wcHMsIDU4LjljeWNs ZXMvcGFja2V0DQo+ID4gPiA+IFJldmVydCB0aGUgcGF0Y2ggdG8gcnhvbmx5LmM6DQo+ID4gPiA+ ICAgICAgICAgMzIuMU1wcHMgNTkuOWN5Y2xlcy9wYWNrZXQNCj4gPiA+ID4gVGhlIHJlc3VsdCBk b2Vzbid0IG1ha2Ugc2Vuc2UgYW5kIEkgcmVhbGl6ZWQgdGhhdCBJIHVzZWQgYmF0Y2ggbWJ1ZiBm cmVlLCBhcHBseSBpdCBub3c6DQo+ID4gPiA+ICAgICAgICAgMzIuMk1wcHMsIDU4LjljeWNsZXMv cGFja2V0DQo+ID4gPiA+IFRoZXJlIHdlcmUgc21hbGwgZGlnaXQganVtcHMgYmV0d2VlbiB0ZXN0 cG1kIHJlc3RhcnQsIEkgcGlja2VkIHRoZSBiZXN0IG9uZS4NCj4gPiA+ID4gVGhlIHJlc3VsdCBp cyBhbG1vc3Qgc2FtZSwgc2VlbXMgdGhlIGNvc3Qgb2YgZWFjaCBwYWNrZXQgaXMgc21hbGwgZW5v dWdoLg0KPiA+ID4gPiBCVFcsIEknbSB0ZXN0aW5nIHdpdGggZGVmYXVsdCBidXJzdCBzaXplIGFu ZCBxdWV1ZSBkZXB0aC4NCj4gPiA+IA0KPiA+ID4gSSB0ZXN0ZWQgdGhpcyBvbiBvY3Rlb250eDIg d2l0aCBpb2Z3ZCB3aXRoIHNpbmdsZSBjb3JlIHdpdGggMTAwR2Jwcw0KPiA+ID4gV2l0aG91dCB0 aGlzIHBhdGNoIC0gNzMuNW1wcHMgV2l0aCB0aGlzIHBhdGNoIC0gNzIuOCBtcHBzDQo+ID4gPiAN Cj4gPiA+IFdlIGFyZSB0YWtpbmcgdGhlIHNoYXJlZCBxdWV1ZSBydW50aW1lIG9wdGlvbiB3aXRo b3V0IGEgc2VwYXJhdGUgZndkIGVuZ2luZS4NCj4gPiA+IGFuZCB0byBoYXZlIHplcm8gcGVyZm9y bWFuY2UgaW1wYWN0IGFuZCBubyBjb21waWxlIHRpbWUgZmxhZyBUaGVuIEkgdGhpbmssIG9ubHkg d2F5IHRvIGhhdmUgYSBmdW5jdGlvbiB0ZW1wbGF0ZSAuDQo+ID4gPiBFeGFtcGxlIGNoYW5nZSB0 byBvdXRsaW5lIGZ1bmN0aW9uIHRlbXBsYXRlIHByaW5jaXBsZS4NCj4gPiA+IA0KPiA+ID4gc3Rh dGljIGlubGluZQ0KPiA+ID4gX19wa3RfYnVyc3RfaW9fZm9yd2FyZChzdHJ1Y3QgZndkX3N0cmVh bSAqZnMsIGNvbnN0IHU2NCBmbGFnKSB7DQo+ID4gPiANCj4gPiA+IEludHJvZHVjZSBuZXcgY2hl Y2tzIHVuZGVyDQo+ID4gPiBpZiAoZmxhZ3MgJiBTSEFSRURfUVVFVUUpDQo+ID4gPiANCj4gPiA+ IA0KPiA+ID4gfQ0KPiA+ID4gDQo+ID4gPiBIYXZlIHR3byB2ZXJzaW9ucyBvZiBpb19md2RfZW5n aW5lLnBhY2tldF9md2QgcGVyIGVuZ2luZS4NCj4gPiA+IA0KPiA+ID4gLSBmaXJzdCB2ZXJzaW9u DQo+ID4gPiBzdGF0aWMgcGt0X2J1cnN0X2lvX2ZvcndhcmQoc3RydWN0IGZ3ZF9zdHJlYW0gKmZz KSB7DQo+ID4gPiAgICAgICAgIHJldHVybiBfX3BrdF9idXJzdF9pb19mb3J3YXJkKGZzLCAwKTsg fQ0KPiA+ID4gDQo+ID4gPiAtIFNlY29uZCB2ZXJzaW9uDQo+ID4gPiBzdGF0aWMgcGt0X2J1cnN0 X2lvX2ZvcndhcmRfc2hhcmVkX3F1ZXVlKHN0cnVjdCBmd2Rfc3RyZWFtICpmcykgew0KPiA+ID4g ICAgICAgICByZXR1cm4gX19wa3RfYnVyc3RfaW9fZm9yd2FyZChmcywgU0hBUkVEX1FVRVVFKTsg fQ0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IFVwZGF0ZSBpb19md2RfZW5naW5lLnBhY2tldF9md2Qg aW4gc2xvd3BhdGggdG8gcmVzcGVjdGl2ZSB2ZXJzaW9uIGJhc2VkIG9uIG9mZmxvYWQuDQo+ID4g PiANCj4gPiA+IElmIHNoYXJlZCBvZmZvYWQgaXMgbm90IHNlbGVjdGVkLCBwa3RfYnVyc3RfaW9f Zm9yd2FyZCgpIHdpbGwgYmUNCj4gPiA+IHNlbGVjdGVkIGFuZA0KPiA+ID4gX19wa3RfYnVyc3Rf aW9fZm9yd2FyZCgpIHdpbGwgYmUgYSBjb21waWxlIHRpbWUgdmVyc2lvbiBvZiAhU0hBUkVEX1FV RVVFIGFrYSBzYW1lIGFzIGV4aXN0aW5nIGNvZS4NCj4gPiANCj4gPiBUaGFua3MgZm9yIHRlc3Rp bmcgYW5kIHN1Z2dlc3Rpb24uIFNvIHRoZSBvbmx5IGRpZmZlcmVuY2UgaGVyZSBpbiBhYm92ZSBj b2RlIGlzIGFjY2VzcyB0byByeHFfc2hhcmVkIGNoYW5nZWQgdG8gZnVuY3Rpb24gcGFyYW1ldGVy LA0KPiA+IHJpZ2h0PyBIYXZlIHlvdSB0ZXN0ZWQgdGhpcyBwZXJmb3JtYW5jZT8gSWYgbm90LCBJ IGNvdWxkIHZlcmlmeS4NCj4gDQo+IFBlcmZvcm1hbmNlIHJlc3VsdCBsb29rcyBiZXR0ZXIgYnkg cmVtb3ZpbmcgdGhpcyB3cmFwcGVyIGFuZCBoaWRlIGdsb2JhbCB2YXJpYWJsZSBhY2Nlc3MgbGlr ZSB5b3Ugc3VnZ2VzdGVkLCB0aGFua3MhDQo+IFRyaWVkIHRvIGFkZCByeHFfc2hhcmUgYml0IGZp ZWxkICBpbiBzdHJ1Y3QgZndkX3N0cmVhbSwgc2FtZSByZXN1bHQgYXMgdGhlIHN0YXRpYyBmdW5j dGlvbiBzZWxlY3Rpb24sIGxvb2tzIGxlc3MgY2hhbmdlcy4NCg0KVGhlIGNoYW5nZXMgcmVmbGVj dGVkIGluIHYzLCBhbHNvIGNvbnNvbGlkYXRlZCBwYXRjaGVzIGZvciBlYWNoDQpmb3J3YXJkaW5n IGVuZ2luZSBpbnRvIG9uZSwgcGxlYXNlIGNoZWNrLg0KDQo+ID4gDQo+ID4gPiANCj4gPiA+ID4g DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEZyb20gdGVzdCBwZXJzcGVj dGl2ZSwgYmV0dGVyIHRvIGhhdmUgYWxsIGZvcndhcmQgZW5naW5lIHRvDQo+ID4gPiA+ID4gPiB2 ZXJpZnkgc2hhcmVkIHJ4cSwgdGVzdCB0ZWFtIHdhbnQgdG8gcnVuIHRoZSByZWdyZXNzaW9uIHdp dGgNCj4gPiA+ID4gPiA+IGxlc3MgaW1wYWN0cy4gSG9wZSB0byBoYXZlIGEgc29sdXRpb24gdG8g dXRpbGl6ZSBhbGwgZm9yd2FyZGluZw0KPiA+ID4gPiA+ID4gZW5naW5lcw0KPiA+ID4gPiA+IHNl YW1sZXNzbHkuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gWWVzLiBpdCBnb29kIGdvYWwuIHRlc3Rw bWQgZm9yd2FyZCBwZXJmb3JtYW5jZSB1c2luZyBhcyBzeW50aGV0aWMgYmVuY2ggZXZlcnlvbmUu DQo+ID4gPiA+ID4gSSB0aGluaywgd2UgYXJlIGFsaWduZWQgdG8gbm90IGhhdmUgYW55IHJlZ3Jl c3Npb24gZm9yIHRoZSBnZW5lcmljIGZvcndhcmQgZW5naW5lLg0KPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgZ2V0X2VuZF9j eWNsZXMoZnMsIHN0YXJ0X3RzYyk7IH0NCj4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ ID4gIC8qDQo+ID4gPiA+ID4gPiA+ID4gICAqIFdvcmstYXJvdW5kIG9mIGEgY29tcGlsYXRpb24g ZXJyb3Igd2l0aCBJQ0Mgb24gaW52b2NhdGlvbnMgb2YgdGhlDQo+ID4gPiA+ID4gPiA+ID4gICAq IHJ0ZV9iZV90b19jcHVfMTYoKSBmdW5jdGlvbi4NCj4gPiA+ID4gPiA+ID4gPiAtLQ0KPiA+ID4g PiA+ID4gPiA+IDIuMjUuMQ0KPiA+ID4gPiA+ID4gPiA+IA0KDQo=