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 8B73143018 for ; Wed, 9 Aug 2023 14:50:53 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 608D640691; Wed, 9 Aug 2023 14:50:53 +0200 (CEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2046.outbound.protection.outlook.com [40.107.101.46]) by mails.dpdk.org (Postfix) with ESMTP id 44456400D6 for ; Wed, 9 Aug 2023 14:50:51 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cfkgNBegPsQjZJuUbARasJhh3sZvNxTo/EgbIhlgkbB7Zm65rygXcnomm1FZzhUJ+Yf8wxxhFIxtSFgH5aEksdVYvAz/TZcIrwGtbfaeRpz9RuQ1ZqWLm+WGOnOpdw6wEtNQYMYtnHHjRsXERBkZBay5zpCwJyiuViMspeFhrH8fruX35FS2/S7GxfMhMJDBIO4ukPpGOvncmMNoGEjbIt0CQZl8cLr4QwpimEv9s/n+hBtmmfH1MmGZ8Vmh0Fj6Z63iMUp5KKxxJQIoJ017mTyknZssNdVANboz0+KjJVKsrCi/7HtBvIAQZhbeSVZgFkV3+OATap6loNF1u+MhHw== 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=t1nIXUF2WqfZ6wVozwjVMv8l9J0Sx9vWdVUDVx+BaW8=; b=Nyoe2J0K24Rw6CKBugqh6HuFvdW481T7eLL8qTYI2wDevuYS7Y2R340d48RMRIwLflGtT5bKvfYQLNNPy4t0CNl9kobFou/dvYPuTGXDwsl0+7hifLabdQ5baLuVQjTxlI3FeVrrxHzRR8akwAiVz21FalJf4DQ0owem5JcyhqOGKSGCmc6v535o2+1ZWLdUjS+80N6j28u7/Ig4gQyy34TvwzkTwaBuca2G+kYbyiVrTjT81YvNdqB8w/UfWKf1SWNfuA6m59dKc3Dpc//nGZiYC1Bsb4/2DtUBCeaHYlO4Rr4OU9ChopVPpbLUkA63fm/3danwlQzlAtwuw2jAlQ== 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=t1nIXUF2WqfZ6wVozwjVMv8l9J0Sx9vWdVUDVx+BaW8=; b=E8We16ndr90p7caBMeKSq4n2aCQKfm26+V0932cHU+62vUfknkN702uoq6wLrBKJOm2xuZta2KSWG6QH5IPhcDEerNs0EAG9XXIg8/NkHMYoVdgWbJnl04qFpuESgMtpjBlcDBALLBgTzJlkxpnJghu9f44Y0bJwtmbJmsQrccFiS6WNnp2wTPC/RNR2egRYEVi5vZT21CmLPNloeJXFysk1PV5bhVDOp9kmmwdW75zLP34Ckazpd3AW/aTHrcSQrSAXkLb9gRS7CeRTTGcjPtL9wTp5Iwdf+gHIfG8JsN/73/FXCoSmNY1qH/7OgIRN+O+frR9hk4XgLeZ4W12lwA== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39d::14) by LV2PR12MB5968.namprd12.prod.outlook.com (2603:10b6:408:14f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.27; Wed, 9 Aug 2023 12:50:47 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::31fe:170b:f6dc:d78]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::31fe:170b:f6dc:d78%7]) with mapi id 15.20.6652.028; Wed, 9 Aug 2023 12:50:47 +0000 From: "Xueming(Steven) Li" To: Chaoyong He , "stable@dpdk.org" CC: "oss-drivers@corigine.com" , "niklas.soderlund@corigine.com" Subject: RE: [PATCH 22.11 2/2] net/nfp: fix offloading flows Thread-Topic: [PATCH 22.11 2/2] net/nfp: fix offloading flows Thread-Index: AQHZoyH77sLjlFIFp0GGmZVdxFpbkK/iOaAg Date: Wed, 9 Aug 2023 12:50:47 +0000 Message-ID: References: <20230620024958.2004152-1-chaoyong.he@corigine.com> <20230620024958.2004152-3-chaoyong.he@corigine.com> In-Reply-To: <20230620024958.2004152-3-chaoyong.he@corigine.com> 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: DM4PR12MB5373:EE_|LV2PR12MB5968:EE_ x-ms-office365-filtering-correlation-id: e7612a12-b3d1-45f8-ee76-08db98d740f1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: o9Eurk4Q238CZTWMM54VWImdz4JzutF9IRSUE1MhBwwkhQbsRJSLQ4LCJbcJrQlqDNVBLnBkVFzflBpaQJJFiojzS38uFZEofQJ2JceB+3Akq07VC6gjg7sM1IwCZiFtW7cJNUQwJKZ8agPMkBJm0fEHsCfa352wMRfVgjuP78XSTrKARSC9ZRNmRruCwV8YSoQsAsyeJ+65toevuKMk4Uk7sburxShOHU/S+z/cGzxxJY5J3TRGR6ZDn+Lnzf3yosXIxkTFeyY/yFFWdCAAmpXfsg7l0xZROMyVO4iPf/shEcxwJ1/88Wb1Juk99/eWZpJJtSdkR9+h6fJ0z9GWnCgBQZ7FE9kPOVpOeaKQz9l6LuSq6RuLM19oaRzPhWJbObSZ09xlPTfbLMQB6uhM7lSRHG9N0ixHH4wowNpsRp3cAbb3/AXL2g+Z41BMX5G3CPrDwwNfUqGwKnVScvKEqgkXXmCZVJoQOx2NNMcwSUCgqNewFSkQPrU7IwJxdBTHrHnIBjGhlS/qGEw41IvX+fwyKpD4e26x+h+FZtI0pWWrbm+q5kdJF7ddHgp8sAvYVf7XdikK9eV3cF8eXaQdMavzNgrEfrYz/wWa9bLN9lmqdWn3CyLNie9h+jLTQLCrM/v9/fdBpnxO+ghoQkr1zOXoyTzN24mDmmBkpPCPna0= 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:(13230028)(4636009)(136003)(39860400002)(396003)(366004)(346002)(376002)(1800799006)(186006)(451199021)(53546011)(7696005)(6506007)(9686003)(71200400001)(478600001)(33656002)(122000001)(38100700002)(110136005)(54906003)(66446008)(66476007)(76116006)(66556008)(64756008)(66946007)(4326008)(41300700001)(316002)(66574015)(8936002)(8676002)(38070700005)(52536014)(5660300002)(2906002)(30864003)(83380400001)(86362001)(55016003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MVg0VWoyRjRxUkNsNzkxZW0vNXNsTmdJbzZYMVZOWkw0MUlINU1nSWVCNWFz?= =?utf-8?B?NGdLN0REYzcrcldzTENzb2JXNE5nY2oxUmZyZlRuZEVrRDd4KzFDeVhMQno4?= =?utf-8?B?ZWhvV2dwRGpncmRQLzh6dkR2ditHeXV2c0JTcXBRS2dacGFmakEzRVFXT3U2?= =?utf-8?B?ZzR6TzA5Yi91ZDBTWU5VYU9uajdBWkwvNU1BY2hTRXBEalR5NkQwWHpyeTls?= =?utf-8?B?RDROVUgyeDRHSUlhNkwrM0dIVFhGbitrT0FzNFlpOFpYT0JlSU91QjNKdXU4?= =?utf-8?B?L3lPUm45VDk2YVRTdTRHOTlHSDBuUVpiamppTEtqY3IvWEo3UnlscWVGN2Y0?= =?utf-8?B?M3hQeTlRVVVFRlQ2Q3Nqa1FWOVd5ZzZMNTB5K0plVC9UQ3JyWWZIaUpROVNa?= =?utf-8?B?WmJuSU9mMHRLNGpyTUo0Um9RU0VMRUtsY1V0bWttOEdGbk14VVdjWWJkOGx1?= =?utf-8?B?KzZiQUp0dHIxZGlLVmJwTnk4VThKZU0rbWk2SklUYUxPVjR0UDlkODZnYkUw?= =?utf-8?B?SFJFNkZQTkJmV0NicldyVm94OHJFckVhMEtBZWFEb2p1aEhIOGVXbWRQbnFh?= =?utf-8?B?dlhNUWtUUkkvSXN2cXN2eW53MVJUc3dyTFNuajlrTVBWdWdiOGhYcTBDOTJt?= =?utf-8?B?QjNsSjVRWmtCV2JOZ2NuOFVNemVRWjdTdFBqeGVxeEM0QjI4WFZNZm5zbXIx?= =?utf-8?B?ZVIvMlVkb0RBWXI3b2ppZ3RsNE04SGExTmVIRG5yamNkQ2JFeVJ4UnZkQ0p3?= =?utf-8?B?VXllejc3L0tRclZ6d0hWMTl2cmpsWHdXN2Z4T2RvS1hTMDdIR2pEVXg2eTh6?= =?utf-8?B?US9TVHB5eVp6Z29pSHpraGlFS3JRMk01QXZyWVFEODN2NnpqVEdodU9lczZi?= =?utf-8?B?MFBPK2J4WmprV0k0b1N5aDVhcjN5UG5MRk4wcWlLTEVGNkcyZEl2SDZscEF4?= =?utf-8?B?N0NSZXZGMzJrZS9FbWNtVm9zQy9pNnJsY2dFVVhxenZlaFNjbVVaNEJZK0pD?= =?utf-8?B?cVFBT3JTWlNBakM4Z1M3M2hWOEtFSGpSaVVETkh4eEE1SHFuaFh1M0ozNEdX?= =?utf-8?B?ZXJzQjV5dzhFSGsvTFhVMGNlT1lZem1WV0R0UGlQTjJaRHNhY2l2dG1sS1VQ?= =?utf-8?B?ZnhNcEFURUxwL25xT3RoYUNRL3V6c0pVbzFFN0JWQXpJOHVlOXozMkNSZkZT?= =?utf-8?B?MGY3L2tId1BidE9xZnExQlJLd3IyNXUvVmdQdVNxNlFRTDBuTEFMUDcvZmFC?= =?utf-8?B?WkpEU3hMa05mbGFoSzM1R1hwNzltaUF5RTFxT2ZwVC9vM0JzRG9HMkJVMXZ0?= =?utf-8?B?b2s2K3pnL3kvMlVrSStvQ0Ixcnc1ZU4vcXZ2aHM1V1QrTE9MTzFtWlh2RmpR?= =?utf-8?B?dDV3eGFodWFCalVwYnN6REdFQUd4UVJiRjliUUtiTjhGT1diVURnamZ0Mkda?= =?utf-8?B?Yld3bXVQWjlEbk41Ykl1UlU0UzBnR0pWcEZ6a2RMQUU5NkoxR2JvWlkvQkFh?= =?utf-8?B?VGFGTmRxdWFWWE9nckl6RFMwMEhjYW1ZRmJYR2NCNVY2SXd1VzdOdy9aMDFK?= =?utf-8?B?c29lUjFqM1EzdHNZODUxZGxHK2hPdVFldG9ITzZCTjNPWFVXYmlxZmNxTk93?= =?utf-8?B?RXgxTUZwNm9LSWdRQmk1c1dtcE5YRUdaYjg0MytxcGt5b3liQ0dFTEVHbHBh?= =?utf-8?B?RU1KNCtobkR6NFEycUpPMEw1c2NCcUFTMWhMbTVmRnBjVHUzYXVTZ1ZqbEZr?= =?utf-8?B?MW40NGFTOUpNZENhN21FNjlrUmJmUG9kMEE1Ry8zSkRqOGVLNTRra3NvWG1X?= =?utf-8?B?RzVKYzd2RXVhNUxJNjdSYUVnaU5aSExQaVZCeG5QbzFDTWxYbCtKUzJETCtL?= =?utf-8?B?cTkvVEZqcEZ0M3MwTDJNdng0VlM4emZiZFplbmoxa0dHdDJqK2xJLzQxWVpN?= =?utf-8?B?VGdoMlNEb2JSWVVobktaNU9ETXcyS1RrcDIyZllsNmRaNFhIRXRxL0xnYlBW?= =?utf-8?B?UWVPOXpFdGMycnFQZURHY0sxUzVCVlQycGNoN2hCbFFBYy81MnBYbmFMekVK?= =?utf-8?B?N1dJTUNYS2JPRGtoSkJIR3NYbXl1L0wzUmYyUT09?= 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: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7612a12-b3d1-45f8-ee76-08db98d740f1 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Aug 2023 12:50:47.7998 (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: heHz6ir1HFx9IDxs61QCYFhiUZb6tDoA172XoSELiHZHzkGUlzzWvFey65Z/QYIP8sB5ylsbMUHZTwrtz2GV3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5968 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org SGkgQ2hhb3lvbmcsDQoNClRoYW5rcyBmb3IgdGhlIGJhY2twb3J0Lg0KUGF0Y2hlcyBxdWV1ZWQg dG8gMjIuMTEgc3RhYmxlIHJlbGVhc2UuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogQ2hhb3lvbmcgSGUgPGNoYW95b25nLmhlQGNvcmlnaW5lLmNvbT4NCj4gU2VudDog Ni8yMC8yMDIzIDEwOjUwDQo+IFRvOiBzdGFibGVAZHBkay5vcmcNCj4gQ2M6IG9zcy1kcml2ZXJz QGNvcmlnaW5lLmNvbTsgbmlrbGFzLnNvZGVybHVuZEBjb3JpZ2luZS5jb207IENoYW95b25nIEhl DQo+IDxjaGFveW9uZy5oZUBjb3JpZ2luZS5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCAyMi4xMSAy LzJdIG5ldC9uZnA6IGZpeCBvZmZsb2FkaW5nIGZsb3dzDQo+IA0KPiBbIHVwc3RyZWFtIGNvbW1p dCA5MjVjMjdlYzhkZTkyZWZlNjlmNGNiNTZlM2ZjMGU0MTMzNTRjNzM5IF0NCj4gDQo+IFRoZSBz eW1ib2wgJ19hYmlfZmxvd2VyX2V4dHJhX2ZlYXR1cmVzJyBpcyBpbiBJTUVNIGZvciBORlA0MDAw LCBidXQgaW4NCj4gRU1VX0NBQ0hFIGZvciBORlAzODAwIGJlY2F1c2Ugd2hpY2ggZG9lcyBub3Qg aGF2ZSBJTUVNLg0KPiANCj4gVGhlIG9yaWdpbmFsIGxvZ2ljIGNhbid0IHJlYWQgc3ltYm9sIGZy b20gRU1VX0NBQ0hFLCBzbyB0aGUgcHJvYmUgcHJvY2Vzcw0KPiB3aWxsIGZhaWwgd2hlbiB3ZSB0 cnkgdG8gb2ZmbG9hZCBmbG93cyB1c2UgTkZQMzgwMC4NCj4gDQo+IE1vZGlmeSB0aGUgcmVsYXRl ZCBkYXRhIHN0cnVjdHVyZSBhbmQgbG9naWNzIHRvIHN1cHBvcnQgcmVhZCBzeW1ib2wgZnJvbQ0K PiBFTVVfQ0FDSEUuDQo+IA0KPiBGaXhlczogYzdlOTcyOWRhNmI1ICgibmV0L25mcDogc3VwcG9y dCBDUFAiKQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogQ2hhb3lvbmcgSGUgPGNoYW95b25nLmhlQGNv cmlnaW5lLmNvbT4NCj4gUmV2aWV3ZWQtYnk6IE5pa2xhcyBTw7ZkZXJsdW5kIDxuaWtsYXMuc29k ZXJsdW5kQGNvcmlnaW5lLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRl di5jICAgICAgICAgIHwgICA0ICstDQo+ICBkcml2ZXJzL25ldC9uZnAvbmZwY29yZS9uZnBfY3Bw LmggICAgIHwgICA3ICstDQo+ICBkcml2ZXJzL25ldC9uZnAvbmZwY29yZS9uZnBfY3BwY29yZS5j IHwgIDU0ICsrKysrKysrLS0tDQo+ICBkcml2ZXJzL25ldC9uZnAvbmZwY29yZS9uZnBfcnRzeW0u YyAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+ICA0IGZpbGVzIGNoYW5nZWQs IDE3NCBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYu YyBpbmRleA0KPiBkYzYzYjA1YmQ2Li4yOTQ5MWY2ZTZkIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L25ldC9uZnAvbmZwX2V0aGRldi5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2 LmMNCj4gQEAgLTkyOSw2ICs5MjksNyBAQCBuZnBfcGZfaW5pdChzdHJ1Y3QgcnRlX3BjaV9kZXZp Y2UgKnBjaV9kZXYpDQo+ICAJaW50IHJldDsNCj4gIAlpbnQgZXJyID0gMDsNCj4gIAl1aW50NjRf dCBhZGRyOw0KPiArCXVpbnQzMl90IGNwcF9pZDsNCj4gIAlzdHJ1Y3QgbmZwX2NwcCAqY3BwOw0K PiAgCWVudW0gbmZwX2FwcF9md19pZCBhcHBfZndfaWQ7DQo+ICAJc3RydWN0IG5mcF9wZl9kZXYg KnBmX2RldjsNCj4gQEAgLTEwMjgsNyArMTAyOSw4IEBAIG5mcF9wZl9pbml0KHN0cnVjdCBydGVf cGNpX2RldmljZSAqcGNpX2RldikNCj4gIAkJZ290byBwZl9jbGVhbnVwOw0KPiAgCX0NCj4gDQo+ IC0JcGZfZGV2LT5od19xdWV1ZXMgPSBuZnBfY3BwX21hcF9hcmVhKHBmX2Rldi0+Y3BwLCAwLCAw LA0KPiArCWNwcF9pZCA9IE5GUF9DUFBfSVNMQU5EX0lEKDAsIE5GUF9DUFBfQUNUSU9OX1JXLCAw LCAwKTsNCj4gKwlwZl9kZXYtPmh3X3F1ZXVlcyA9IG5mcF9jcHBfbWFwX2FyZWEocGZfZGV2LT5j cHAsIGNwcF9pZCwNCj4gIAkJCWFkZHIsIE5GUF9RQ1BfUVVFVUVfQVJFQV9TWiwNCj4gIAkJCSZw Zl9kZXYtPmh3cXVldWVzX2FyZWEpOw0KPiAgCWlmIChwZl9kZXYtPmh3X3F1ZXVlcyA9PSBOVUxM KSB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZnAvbmZwY29yZS9uZnBfY3BwLmgNCj4g Yi9kcml2ZXJzL25ldC9uZnAvbmZwY29yZS9uZnBfY3BwLmgNCj4gaW5kZXggYTA0YTY4ZjU0Ni4u Njg4NTFiMjJlNCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvbmZwL25mcGNvcmUvbmZwX2Nw cC5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L25mcC9uZnBjb3JlL25mcF9jcHAuaA0KPiBAQCAtMzQs NiArMzQsOSBAQCBzdHJ1Y3QgbmZwX2NwcCB7DQo+ICAJICovDQo+ICAJdWludDMyX3QgaW1iX2Nh dF90YWJsZVsxNl07DQo+IA0KPiArCS8qIE1VIGFjY2VzcyB0eXBlIGJpdCBvZmZzZXQgKi8NCj4g Kwl1aW50MzJfdCBtdV9sb2NhbGl0eV9sc2I7DQo+ICsNCj4gIAlpbnQgZHJpdmVyX2xvY2tfbmVl ZGVkOw0KPiAgfTsNCj4gDQo+IEBAIC0zNjMsNyArMzY2LDcgQEAgc3RydWN0IG5mcF9jcHBfYXJl YQ0KPiAqbmZwX2NwcF9hcmVhX2FsbG9jX2FjcXVpcmUoc3RydWN0IG5mcF9jcHAgKmNwcCwNCj4g ICAqLw0KPiAgdm9pZCBuZnBfY3BwX2FyZWFfcmVsZWFzZV9mcmVlKHN0cnVjdCBuZnBfY3BwX2Fy ZWEgKmFyZWEpOw0KPiANCj4gLXVpbnQ4X3QgKm5mcF9jcHBfbWFwX2FyZWEoc3RydWN0IG5mcF9j cHAgKmNwcCwgaW50IGRvbWFpbiwgaW50IHRhcmdldCwNCj4gK3VpbnQ4X3QgKm5mcF9jcHBfbWFw X2FyZWEoc3RydWN0IG5mcF9jcHAgKmNwcCwgdWludDMyX3QgY3BwX2lkLA0KPiAgCQkJICAgdWlu dDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLA0KPiAgCQkJICAgc3RydWN0IG5mcF9jcHBf YXJlYSAqKmFyZWEpOw0KPiAgLyoNCj4gQEAgLTc3OCw0ICs3ODEsNiBAQCBpbnQgbmZwX2NwcF9t dXRleF91bmxvY2soc3RydWN0IG5mcF9jcHBfbXV0ZXgNCj4gKm11dGV4KTsNCj4gICAqLw0KPiAg aW50IG5mcF9jcHBfbXV0ZXhfdHJ5bG9jayhzdHJ1Y3QgbmZwX2NwcF9tdXRleCAqbXV0ZXgpOw0K PiANCj4gK3VpbnQzMl90IG5mcF9jcHBfbXVfbG9jYWxpdHlfbHNiKHN0cnVjdCBuZnBfY3BwICpj cHApOw0KPiArDQo+ICAjZW5kaWYgLyogIV9fTkZQX0NQUF9IX18gKi8NCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L25mcC9uZnBjb3JlL25mcF9jcHBjb3JlLmMNCj4gYi9kcml2ZXJzL25ldC9u ZnAvbmZwY29yZS9uZnBfY3BwY29yZS5jDQo+IGluZGV4IDM3Nzk5YWY1NTguLjAxNGY2YzlkZjgg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L25mcC9uZnBjb3JlL25mcF9jcHBjb3JlLmMNCj4g KysrIGIvZHJpdmVycy9uZXQvbmZwL25mcGNvcmUvbmZwX2NwcGNvcmUuYw0KPiBAQCAtMTksNiAr MTksNyBAQA0KPiAgI2luY2x1ZGUgIm5mcDYwMDAvbmZwNjAwMC5oIg0KPiAgI2luY2x1ZGUgIm5m cDYwMDAvbmZwX3hwYi5oIg0KPiAgI2luY2x1ZGUgIm5mcF9uZmZ3LmgiDQo+ICsjaW5jbHVkZSAi Li4vbmZwX2xvZ3MuaCINCj4gDQo+ICAjZGVmaW5lIE5GUF9QTF9ERVZJQ0VfSUQgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDA0DQo+ICAjZGVmaW5lIE5GUF9QTF9ERVZJQ0VfSURfTUFT SyAgICAgICAgICAgICAgICAgICAweGZmDQo+IEBAIC0xMTgsNiArMTE5LDM2IEBAIG5mcF9jcHBf YXJlYV9uYW1lKHN0cnVjdCBuZnBfY3BwX2FyZWEgKmNwcF9hcmVhKQ0KPiAgCXJldHVybiBjcHBf YXJlYS0+bmFtZTsNCj4gIH0NCj4gDQo+ICsjZGVmaW5lIE5GUF9JTUJfVEdUQUREUkVTU01PREVD RkdfTU9ERV9vZihfeCkgICAgICAgKCgoX3gpID4+IDEzKSAmDQo+IDB4NykNCj4gKyNkZWZpbmUg TkZQX0lNQl9UR1RBRERSRVNTTU9ERUNGR19BRERSTU9ERSAgICAgICAgICBSVEVfQklUMzIoMTIp DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK25mcF9jcHBfc2V0X211X2xvY2FsaXR5X2xzYihzdHJ1 Y3QgbmZwX2NwcCAqY3BwKSB7DQo+ICsJaW50IHJldDsNCj4gKwlpbnQgbW9kZTsNCj4gKwlpbnQg YWRkcjQwOw0KPiArCXVpbnQzMl90IGltYmNwcGF0Ow0KPiArDQo+ICsJaW1iY3BwYXQgPSBjcHAt PmltYl9jYXRfdGFibGVbTkZQX0NQUF9UQVJHRVRfTVVdOw0KPiArCW1vZGUgPSBORlBfSU1CX1RH VEFERFJFU1NNT0RFQ0ZHX01PREVfb2YoaW1iY3BwYXQpOw0KPiArCWFkZHI0MCA9IGltYmNwcGF0 ICYgTkZQX0lNQl9UR1RBRERSRVNTTU9ERUNGR19BRERSTU9ERTsNCj4gKw0KPiArCXJldCA9IG5m cF9jcHBhdF9tdV9sb2NhbGl0eV9sc2IobW9kZSwgYWRkcjQwKTsNCj4gKwlpZiAocmV0IDwgMCkN Cj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCWNwcC0+bXVfbG9jYWxpdHlfbHNiID0gcmV0Ow0K PiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3VpbnQzMl90DQo+ICtuZnBfY3BwX211 X2xvY2FsaXR5X2xzYihzdHJ1Y3QgbmZwX2NwcCAqY3BwKSB7DQo+ICsJcmV0dXJuIGNwcC0+bXVf bG9jYWxpdHlfbHNiOw0KPiArfQ0KPiArDQo+ICAvKg0KPiAgICogbmZwX2NwcF9hcmVhX2FsbG9j IC0gYWxsb2NhdGUgYSBuZXcgQ1BQIGFyZWENCj4gICAqIEBjcHA6ICAgIENQUCBoYW5kbGUNCj4g QEAgLTE0MiwxMCArMTczLDYgQEAgbmZwX2NwcF9hcmVhX2FsbG9jX3dpdGhfbmFtZShzdHJ1Y3Qg bmZwX2NwcA0KPiAqY3BwLCB1aW50MzJfdCBkZXN0LA0KPiAgCWlmICghY3BwKQ0KPiAgCQlyZXR1 cm4gTlVMTDsNCj4gDQo+IC0JLyogQ1BQIGJ1cyB1c2VzIG9ubHkgYSA0MC1iaXQgYWRkcmVzcyAq Lw0KPiAtCWlmICgoYWRkcmVzcyArIHNpemUpID4gKDFVTEwgPDwgNDApKQ0KPiAtCQlyZXR1cm4g TkZQX0VSUlBUUihFRkFVTFQpOw0KPiAtDQo+ICAJLyogUmVtYXAgZnJvbSBjcHBfaXNsYW5kIHRv IGNwcF90YXJnZXQgKi8NCj4gIAllcnIgPSBuZnBfdGFyZ2V0X2NwcChkZXN0LCB0bXA2NCwgJmRl c3QsICZ0bXA2NCwgY3BwLQ0KPiA+aW1iX2NhdF90YWJsZSk7DQo+ICAJaWYgKGVyciA8IDApDQo+ IEBAIC01ODgsNiArNjE1LDEzIEBAIG5mcF9jcHBfYWxsb2Moc3RydWN0IHJ0ZV9wY2lfZGV2aWNl ICpkZXYsIGludA0KPiBkcml2ZXJfbG9ja19uZWVkZWQpDQo+ICAJCX0NCj4gIAl9DQo+IA0KPiAr CWVyciA9IG5mcF9jcHBfc2V0X211X2xvY2FsaXR5X2xzYihjcHApOw0KPiArCWlmIChlcnIgPCAw KSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkNhbid0IGNhbGN1bGF0ZSBNVSBsb2NhbGl0eSBi aXQgb2Zmc2V0Iik7DQo+ICsJCWZyZWUoY3BwKTsNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsJfQ0K PiArDQo+ICAJcmV0dXJuIGNwcDsNCj4gIH0NCj4gDQo+IEBAIC04MTksOCArODUzLDcgQEAgX19u ZnBfY3BwX21vZGVsX2F1dG9kZXRlY3Qoc3RydWN0IG5mcF9jcHAgKmNwcCwNCj4gdWludDMyX3Qg Km1vZGVsKQ0KPiAgLyoNCj4gICAqIG5mcF9jcHBfbWFwX2FyZWEoKSAtIEhlbHBlciBmdW5jdGlv biB0byBtYXAgYW4gYXJlYQ0KPiAgICogQGNwcDogICAgTkZQIENQUCBoYW5kbGVyDQo+IC0gKiBA ZG9tYWluOiBDUFAgZG9tYWluDQo+IC0gKiBAdGFyZ2V0OiBDUFAgdGFyZ2V0DQo+ICsgKiBAY3Bw X2lkOiBDUFAgSUQNCj4gICAqIEBhZGRyOiAgIENQUCBhZGRyZXNzDQo+ICAgKiBAc2l6ZTogICBT aXplIG9mIHRoZSBhcmVhDQo+ICAgKiBAYXJlYTogICBBcmVhIGhhbmRsZSAob3V0cHV0KQ0KPiBA QCAtODI4LDE4ICs4NjEsMTUgQEAgX19uZnBfY3BwX21vZGVsX2F1dG9kZXRlY3Qoc3RydWN0IG5m cF9jcHAgKmNwcCwNCj4gdWludDMyX3QgKm1vZGVsKQ0KPiAgICogTWFwIGFuIGFyZWEgb2YgSU9N RU0gYWNjZXNzLiAgVG8gdW5kbyB0aGUgZWZmZWN0IG9mIHRoaXMgZnVuY3Rpb24gY2FsbA0KPiAg ICogQG5mcF9jcHBfYXJlYV9yZWxlYXNlX2ZyZWUoKmFyZWEpLg0KPiAgICoNCj4gLSAqIFJldHVy bjogUG9pbnRlciB0byBtZW1vcnkgbWFwcGVkIGFyZWEgb3IgRVJSX1BUUg0KPiArICogUmV0dXJu OiBQb2ludGVyIHRvIG1lbW9yeSBtYXBwZWQgYXJlYSBvciBOVUxMDQo+ICAgKi8NCj4gIHVpbnQ4 X3QgKg0KPiAtbmZwX2NwcF9tYXBfYXJlYShzdHJ1Y3QgbmZwX2NwcCAqY3BwLCBpbnQgZG9tYWlu LCBpbnQgdGFyZ2V0LCB1aW50NjRfdCBhZGRyLA0KPiArbmZwX2NwcF9tYXBfYXJlYShzdHJ1Y3Qg bmZwX2NwcCAqY3BwLCB1aW50MzJfdCBjcHBfaWQsIHVpbnQ2NF90IGFkZHIsDQo+ICAJCSB1bnNp Z25lZCBsb25nIHNpemUsIHN0cnVjdCBuZnBfY3BwX2FyZWEgKiphcmVhKSAgew0KPiAgCXVpbnQ4 X3QgKnJlczsNCj4gLQl1aW50MzJfdCBkZXN0Ow0KPiAtDQo+IC0JZGVzdCA9IE5GUF9DUFBfSVNM QU5EX0lEKHRhcmdldCwgTkZQX0NQUF9BQ1RJT05fUlcsIDAsIGRvbWFpbik7DQo+IA0KPiAtCSph cmVhID0gbmZwX2NwcF9hcmVhX2FsbG9jX2FjcXVpcmUoY3BwLCBkZXN0LCBhZGRyLCBzaXplKTsN Cj4gKwkqYXJlYSA9IG5mcF9jcHBfYXJlYV9hbGxvY19hY3F1aXJlKGNwcCwgY3BwX2lkLCBhZGRy LCBzaXplKTsNCj4gIAlpZiAoISphcmVhKQ0KPiAgCQlnb3RvIGVycl9laW87DQo+IA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvbmZwL25mcGNvcmUvbmZwX3J0c3ltLmMNCj4gYi9kcml2ZXJz L25ldC9uZnAvbmZwY29yZS9uZnBfcnRzeW0uYw0KPiBpbmRleCA1NmJiZjA1Y2Q4Li4yMTg3OWY3 ZWI2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9uZnAvbmZwY29yZS9uZnBfcnRzeW0uYw0K PiArKysgYi9kcml2ZXJzL25ldC9uZnAvbmZwY29yZS9uZnBfcnRzeW0uYw0KPiBAQCAtMTQsNiAr MTQsNyBAQA0KPiAgI2luY2x1ZGUgIm5mcF9taXAuaCINCj4gICNpbmNsdWRlICJuZnBfcnRzeW0u aCINCj4gICNpbmNsdWRlICJuZnA2MDAwL25mcDYwMDAuaCINCj4gKyNpbmNsdWRlICIuLi9uZnBf bG9ncy5oIg0KPiANCj4gIC8qIFRoZXNlIG5lZWQgdG8gbWF0Y2ggdGhlIGxpbmtlciAqLw0KPiAg I2RlZmluZSBTWU1fVEdUX0xNRU0JCTANCj4gQEAgLTIxMyw2ICsyMTQsMTEzIEBAIG5mcF9ydHN5 bV9sb29rdXAoc3RydWN0IG5mcF9ydHN5bV90YWJsZSAqcnRibCwNCj4gY29uc3QgY2hhciAqbmFt ZSkNCj4gIAlyZXR1cm4gTlVMTDsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgdWludDY0X3QNCj4gK25m cF9ydHN5bV9zaXplKGNvbnN0IHN0cnVjdCBuZnBfcnRzeW0gKnN5bSkgew0KPiArCXN3aXRjaCAo c3ltLT50eXBlKSB7DQo+ICsJY2FzZSBORlBfUlRTWU1fVFlQRV9OT05FOg0KPiArCQlQTURfRFJW X0xPRyhFUlIsICJydHN5bSAnJXMnOiB0eXBlIE5PTkUiLCBzeW0tPm5hbWUpOw0KPiArCQlyZXR1 cm4gMDsNCj4gKwljYXNlIE5GUF9SVFNZTV9UWVBFX09CSkVDVDogICAgLyogRmFsbCB0aHJvdWdo ICovDQo+ICsJY2FzZSBORlBfUlRTWU1fVFlQRV9GVU5DVElPTjoNCj4gKwkJcmV0dXJuIHN5bS0+ c2l6ZTsNCj4gKwljYXNlIE5GUF9SVFNZTV9UWVBFX0FCUzoNCj4gKwkJcmV0dXJuIHNpemVvZih1 aW50NjRfdCk7DQo+ICsJZGVmYXVsdDoNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAicnRzeW0gJyVz JzogdW5rbm93biB0eXBlOiAlZCIsIHN5bS0NCj4gPm5hbWUsIHN5bS0+dHlwZSk7DQo+ICsJCXJl dHVybiAwOw0KPiArCX0NCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArbmZwX3J0c3ltX3Rv X2Rlc3Qoc3RydWN0IG5mcF9jcHAgKmNwcCwNCj4gKwkJY29uc3Qgc3RydWN0IG5mcF9ydHN5bSAq c3ltLA0KPiArCQl1aW50OF90IGFjdGlvbiwNCj4gKwkJdWludDhfdCB0b2tlbiwNCj4gKwkJdWlu dDY0X3Qgb2Zmc2V0LA0KPiArCQl1aW50MzJfdCAqY3BwX2lkLA0KPiArCQl1aW50NjRfdCAqYWRk cikNCj4gK3sNCj4gKwlpZiAoc3ltLT50eXBlICE9IE5GUF9SVFNZTV9UWVBFX09CSkVDVCkgew0K PiArCQlQTURfRFJWX0xPRyhFUlIsICJydHN5bSAnJXMnOiBkaXJlY3QgYWNjZXNzIHRvIG5vbi1v YmplY3QNCj4gcnRzeW0iLA0KPiArCQkJCXN5bS0+bmFtZSk7DQo+ICsJCXJldHVybiAtRUlOVkFM Ow0KPiArCX0NCj4gKw0KPiArCSphZGRyID0gc3ltLT5hZGRyICsgb2Zmc2V0Ow0KPiArDQo+ICsJ aWYgKHN5bS0+dGFyZ2V0ID49IDApIHsNCj4gKwkJKmNwcF9pZCA9IE5GUF9DUFBfSVNMQU5EX0lE KHN5bS0+dGFyZ2V0LCBhY3Rpb24sIHRva2VuLA0KPiBzeW0tPmRvbWFpbik7DQo+ICsJfSBlbHNl IGlmIChzeW0tPnRhcmdldCA9PSBORlBfUlRTWU1fVEFSR0VUX0VNVV9DQUNIRSkgew0KPiArCQlp bnQgbG9jYWxpdHlfb2ZmID0gbmZwX2NwcF9tdV9sb2NhbGl0eV9sc2IoY3BwKTsNCj4gKw0KPiAr CQkqYWRkciAmPSB+KE5GUF9NVV9BRERSX0FDQ0VTU19UWVBFX01BU0sgPDwNCj4gbG9jYWxpdHlf b2ZmKTsNCj4gKwkJKmFkZHIgfD0gTkZQX01VX0FERFJfQUNDRVNTX1RZUEVfRElSRUNUIDw8DQo+ IGxvY2FsaXR5X29mZjsNCj4gKw0KPiArCQkqY3BwX2lkID0gTkZQX0NQUF9JU0xBTkRfSUQoTkZQ X0NQUF9UQVJHRVRfTVUsDQo+IGFjdGlvbiwgdG9rZW4sDQo+ICsJCQkJc3ltLT5kb21haW4pOw0K PiArCX0gZWxzZSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgInJ0c3ltICclcyc6IHVuaGFuZGxl ZCB0YXJnZXQNCj4gZW5jb2Rpbmc6ICVkIiwNCj4gKwkJCQlzeW0tPm5hbWUsIHN5bS0+dGFyZ2V0 KTsNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK25mcF9ydHN5bV9yZWFkbChzdHJ1Y3QgbmZwX2NwcCAq Y3BwLA0KPiArCQljb25zdCBzdHJ1Y3QgbmZwX3J0c3ltICpzeW0sDQo+ICsJCXVpbnQ4X3QgYWN0 aW9uLA0KPiArCQl1aW50OF90IHRva2VuLA0KPiArCQl1aW50NjRfdCBvZmZzZXQsDQo+ICsJCXVp bnQzMl90ICp2YWx1ZSkNCj4gK3sNCj4gKwlpbnQgcmV0Ow0KPiArCXVpbnQ2NF90IGFkZHI7DQo+ ICsJdWludDMyX3QgY3BwX2lkOw0KPiArDQo+ICsJaWYgKG9mZnNldCArIDQgPiBuZnBfcnRzeW1f c2l6ZShzeW0pKSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgInJ0c3ltICclcyc6IHJlYWRsIG91 dCBvZiBib3VuZHMiLCBzeW0tDQo+ID5uYW1lKTsNCj4gKwkJcmV0dXJuIC1FTlhJTzsNCj4gKwl9 DQo+ICsNCj4gKwlyZXQgPSBuZnBfcnRzeW1fdG9fZGVzdChjcHAsIHN5bSwgYWN0aW9uLCB0b2tl biwgb2Zmc2V0LCAmY3BwX2lkLA0KPiAmYWRkcik7DQo+ICsJaWYgKHJldCAhPSAwKQ0KPiArCQly ZXR1cm4gcmV0Ow0KPiArDQo+ICsJcmV0dXJuIG5mcF9jcHBfcmVhZGwoY3BwLCBjcHBfaWQsIGFk ZHIsIHZhbHVlKTsgfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtuZnBfcnRzeW1fcmVhZHEoc3Ry dWN0IG5mcF9jcHAgKmNwcCwNCj4gKwkJY29uc3Qgc3RydWN0IG5mcF9ydHN5bSAqc3ltLA0KPiAr CQl1aW50OF90IGFjdGlvbiwNCj4gKwkJdWludDhfdCB0b2tlbiwNCj4gKwkJdWludDY0X3Qgb2Zm c2V0LA0KPiArCQl1aW50NjRfdCAqdmFsdWUpDQo+ICt7DQo+ICsJaW50IHJldDsNCj4gKwl1aW50 NjRfdCBhZGRyOw0KPiArCXVpbnQzMl90IGNwcF9pZDsNCj4gKw0KPiArCWlmIChvZmZzZXQgKyA4 ID4gbmZwX3J0c3ltX3NpemUoc3ltKSkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJydHN5bSAn JXMnOiByZWFkcSBvdXQgb2YgYm91bmRzIiwgc3ltLQ0KPiA+bmFtZSk7DQo+ICsJCXJldHVybiAt RU5YSU87DQo+ICsJfQ0KPiArDQo+ICsJaWYgKHN5bS0+dHlwZSA9PSBORlBfUlRTWU1fVFlQRV9B QlMpIHsNCj4gKwkJKnZhbHVlID0gc3ltLT5hZGRyOw0KPiArCQlyZXR1cm4gMDsNCj4gKwl9DQo+ ICsNCj4gKwlyZXQgPSBuZnBfcnRzeW1fdG9fZGVzdChjcHAsIHN5bSwgYWN0aW9uLCB0b2tlbiwg b2Zmc2V0LCAmY3BwX2lkLA0KPiAmYWRkcik7DQo+ICsJaWYgKHJldCAhPSAwKQ0KPiArCQlyZXR1 cm4gcmV0Ow0KPiArDQo+ICsJcmV0dXJuIG5mcF9jcHBfcmVhZHEoY3BwLCBjcHBfaWQsIGFkZHIs IHZhbHVlKTsgfQ0KPiArDQo+ICAvKg0KPiAgICogbmZwX3J0c3ltX3JlYWRfbGUoKSAtIFJlYWQg YSBzaW1wbGUgdW5zaWduZWQgc2NhbGFyIHZhbHVlIGZyb20gc3ltYm9sDQo+ICAgKiBAcnRibDoJ TkZQIFJUc3ltIHRhYmxlDQo+IEBAIC0yMjksNyArMzM3LDcgQEAgdWludDY0X3QNCj4gIG5mcF9y dHN5bV9yZWFkX2xlKHN0cnVjdCBuZnBfcnRzeW1fdGFibGUgKnJ0YmwsIGNvbnN0IGNoYXIgKm5h bWUsIGludCAqZXJyb3IpDQo+IHsNCj4gIAljb25zdCBzdHJ1Y3QgbmZwX3J0c3ltICpzeW07DQo+ IC0JdWludDMyX3QgdmFsMzIsIGlkOw0KPiArCXVpbnQzMl90IHZhbDMyOw0KPiAgCXVpbnQ2NF90 IHZhbDsNCj4gIAlpbnQgZXJyOw0KPiANCj4gQEAgLTIzOSwxOSArMzQ3LDEzIEBAIG5mcF9ydHN5 bV9yZWFkX2xlKHN0cnVjdCBuZnBfcnRzeW1fdGFibGUgKnJ0YmwsDQo+IGNvbnN0IGNoYXIgKm5h bWUsIGludCAqZXJyb3IpDQo+ICAJCWdvdG8gZXhpdDsNCj4gIAl9DQo+IA0KPiAtCWlkID0gTkZQ X0NQUF9JU0xBTkRfSUQoc3ltLT50YXJnZXQsIE5GUF9DUFBfQUNUSU9OX1JXLCAwLCBzeW0tDQo+ ID5kb21haW4pOw0KPiAtDQo+IC0jaWZkZWYgREVCVUcNCj4gLQlwcmludGYoIlJlYWRpbmcgc3lt Ym9sICVzIHdpdGggc2l6ZSAlIiBQUkl1NjQgIiBhdCAlIiBQUkl4NjQgIlxuIiwNCj4gLQkJbmFt ZSwgc3ltLT5zaXplLCBzeW0tPmFkZHIpOw0KPiAtI2VuZGlmDQo+ICAJc3dpdGNoIChzeW0tPnNp emUpIHsNCj4gIAljYXNlIDQ6DQo+IC0JCWVyciA9IG5mcF9jcHBfcmVhZGwocnRibC0+Y3BwLCBp ZCwgc3ltLT5hZGRyLCAmdmFsMzIpOw0KPiArCQllcnIgPSBuZnBfcnRzeW1fcmVhZGwocnRibC0+ Y3BwLCBzeW0sIE5GUF9DUFBfQUNUSU9OX1JXLA0KPiAwLCAwLA0KPiArJnZhbDMyKTsNCj4gIAkJ dmFsID0gdmFsMzI7DQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgODoNCj4gLQkJZXJyID0gbmZwX2Nw cF9yZWFkcShydGJsLT5jcHAsIGlkLCBzeW0tPmFkZHIsICZ2YWwpOw0KPiArCQllcnIgPSBuZnBf cnRzeW1fcmVhZHEocnRibC0+Y3BwLCBzeW0sIE5GUF9DUFBfQUNUSU9OX1JXLA0KPiAwLCAwLCAm dmFsKTsNCj4gIAkJYnJlYWs7DQo+ICAJZGVmYXVsdDoNCj4gIAkJcHJpbnRmKCJydHN5bSAnJXMn IHVuc3VwcG9ydGVkIHNpemU6ICUiIFBSSWQ2NCAiXG4iLCBAQCAtDQo+IDI3Niw4ICszNzgsMTEg QEAgdWludDhfdCAqICBuZnBfcnRzeW1fbWFwKHN0cnVjdCBuZnBfcnRzeW1fdGFibGUgKnJ0Ymws DQo+IGNvbnN0IGNoYXIgKm5hbWUsDQo+ICAJICAgICAgdW5zaWduZWQgaW50IG1pbl9zaXplLCBz dHJ1Y3QgbmZwX2NwcF9hcmVhICoqYXJlYSkgIHsNCj4gLQljb25zdCBzdHJ1Y3QgbmZwX3J0c3lt ICpzeW07DQo+ICsJaW50IHJldDsNCj4gIAl1aW50OF90ICptZW07DQo+ICsJdWludDY0X3QgYWRk cjsNCj4gKwl1aW50MzJfdCBjcHBfaWQ7DQo+ICsJY29uc3Qgc3RydWN0IG5mcF9ydHN5bSAqc3lt Ow0KPiANCj4gICNpZmRlZiBERUJVRw0KPiAgCXByaW50ZigibWFwcGluZyBzeW1ib2wgJXNcbiIs IG5hbWUpOw0KPiBAQCAtMjg4LDE0ICszOTMsMjAgQEAgbmZwX3J0c3ltX21hcChzdHJ1Y3QgbmZw X3J0c3ltX3RhYmxlICpydGJsLCBjb25zdA0KPiBjaGFyICpuYW1lLA0KPiAgCQlyZXR1cm4gTlVM TDsNCj4gIAl9DQo+IA0KPiArCXJldCA9IG5mcF9ydHN5bV90b19kZXN0KHJ0YmwtPmNwcCwgc3lt LCBORlBfQ1BQX0FDVElPTl9SVywgMCwgMCwNCj4gKwkJCSZjcHBfaWQsICZhZGRyKTsNCj4gKwlp ZiAocmV0ICE9IDApIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAicnRzeW0gJyVzJzogbWFwcGlu ZyBmYWlsZWQiLCBuYW1lKTsNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsJfQ0KPiArDQo+ICAJaWYg KHN5bS0+c2l6ZSA8IG1pbl9zaXplKSB7DQo+ICAJCXByaW50ZigiU3ltYm9sICVzIHRvbyBzbWFs bCAoJSIgUFJJdTY0ICIgPCAldSlcbiIsIG5hbWUsDQo+ICAJCQlzeW0tPnNpemUsIG1pbl9zaXpl KTsNCj4gIAkJcmV0dXJuIE5VTEw7DQo+ICAJfQ0KPiANCj4gLQltZW0gPSBuZnBfY3BwX21hcF9h cmVhKHJ0YmwtPmNwcCwgc3ltLT5kb21haW4sIHN5bS0+dGFyZ2V0LCBzeW0tDQo+ID5hZGRyLA0K PiAtCQkJICAgICAgIHN5bS0+c2l6ZSwgYXJlYSk7DQo+ICsJbWVtID0gbmZwX2NwcF9tYXBfYXJl YShydGJsLT5jcHAsIGNwcF9pZCwgYWRkciwgc3ltLT5zaXplLCBhcmVhKTsNCj4gIAlpZiAoIW1l bSkgew0KPiAgCQlwcmludGYoIkZhaWxlZCB0byBtYXAgc3ltYm9sICVzXG4iLCBuYW1lKTsNCj4g IAkJcmV0dXJuIE5VTEw7DQo+IC0tDQo+IDIuMzkuMQ0KDQo=