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 9BE34A0544; Wed, 29 Jun 2022 16:55:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EE80E4281C; Wed, 29 Jun 2022 16:55:14 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20071.outbound.protection.outlook.com [40.107.2.71]) by mails.dpdk.org (Postfix) with ESMTP id D07F4400D5; Mon, 27 Jun 2022 14:50:54 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=izBiK2cFzx+kcLJUdsdG8E62RyZi3IiBADsBDma/rCF7UJi/3/AneyQDg3fy8cBsLR6eQPVU3PF7cCrKh0CzxJQ90xV6rl71+rVAVYT76YBt9q1607x5bWHdmxY3VeruhGVdCA1Qns8/LrJgCB0Lh4Hc9Ftf8qmoZSa9Kx4xSqYk5ErytX0tTzytT5jpt2ClvU+ZEovp5nGRDlE1R/izFhXO6TAttgePDvNHwow+9P7Lk5txupO+uz/Rkre5ALP32IcslJh6adi4AdtXPSIG4Gmtm1au49fiO4eEe9eyc+dVLhAM6VTFm9lgRlTmagxsVQjER4LrCibdt29h/wseeQ== 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=dV3uDppypII3Xj8gQJMxnQ8+K0Cwu131/URsMsWiG+E=; b=fs7v+4eC8slZige2gYDvJXrTYidN39rpIhl0Fc+Z5SCaiXMBLKIXkLR9b+h/iGREk4Lu1c2XrMa3ZBrPja1IkRtS28iEqrYPzTzfryISoOlrJjUefkzXnaiRA3mB8eAO33gD6AdOoBG/sDxoqwODW2hFNRXYdDF43C8V5twO8rVO643gpG//vVqSe/90RbWXX/ABGbP89/fiTm/JofgImQJ9rTfJTbn0KYKwJFVthpBunWY68Jlmf0ujLPNFXTMIpeM2rX3NOHYxpshI6cLhbUANPaVtfB69RGcFq6k1k0EFzfQ0ECcX74SzsaVxH2qfkXgRbyuhWv1S+RQWMgz0Pw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dV3uDppypII3Xj8gQJMxnQ8+K0Cwu131/URsMsWiG+E=; b=YywgODXt4cjgjdxmdawHpo7hGlxubDbNJA5o81sS+nloGvmWo+MWyyUhRnlhIVPvfgDpkjyjEHO/arm9OUcbzjgMJDEH5zffVZs0Soi6187+tGCsktDTKFFBo/jh5YmSbo/CADFkfepAildJUk3OIVdCYKOE7gv52Ajr6dyNea4= Received: from AM8PR07MB7666.eurprd07.prod.outlook.com (2603:10a6:20b:240::23) by AS1PR07MB8616.eurprd07.prod.outlook.com (2603:10a6:20b:474::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Mon, 27 Jun 2022 12:50:53 +0000 Received: from AM8PR07MB7666.eurprd07.prod.outlook.com ([fe80::188:e139:774e:cea1]) by AM8PR07MB7666.eurprd07.prod.outlook.com ([fe80::188:e139:774e:cea1%9]) with mapi id 15.20.5395.011; Mon, 27 Jun 2022 12:50:53 +0000 From: Emil Berg To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "bruce.richardson@intel.com" , "dev@dpdk.org" CC: "stephen@networkplumber.org" , "stable@dpdk.org" , "bugzilla@dpdk.org" , "olivier.matz@6wind.com" Subject: RE: [PATCH v4] net: fix checksum with unaligned buffer Thread-Topic: [PATCH v4] net: fix checksum with unaligned buffer Thread-Index: AQHYhv48fmD0p9rOd0KzPCydzCSkQq1c8dgAgAZC+YCAAAOyYIAAAh4A Date: Mon, 27 Jun 2022 12:50:53 +0000 Message-ID: References: <98CBD80474FA8B44BF855DF32C47DC35D87139@smartserver.smartshare.dk> <20220623123900.38283-1-mb@smartsharesystems.com> <98CBD80474FA8B44BF855DF32C47DC35D87169@smartserver.smartshare.dk> <9f543fc0-ae8a-067b-d13f-38a0503dd619@lysator.liu.se> 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=ericsson.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: df234ac5-3131-4807-1fbb-08da583babc8 x-ms-traffictypediagnostic: AS1PR07MB8616:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bSP6kl4iHC4C4MLSwbGmJEkVlXbGrgd4a4GNg2wt5wztKJuN1Ugz30XnqU96rH/tbcFPyblhT/sJSdci7tPJLxxSUceqYbZEoRwxsKxbtItRGFmQL+4jlYpqSVGm99BgN/i8uxg4cwFdg6hjQjaG6kePXjXqaTgiBKGSzIBmvSYGnx6JErooyson/1xSJpDsF12W5Hu+le3BGxcXoVnrMphFavzI25waXrnuE7iPo1pTk/3V2N8aHY6C4lmcAA0mzxGq7Yu13DcNXMATATKJtVEnHgixnT0gsJpOmaFcnT0xFW+3Okqea1xERX9+3a3Glgz2nF2aVyqjoO2apcTwOq9W6KAdTUn/wrN0HZlija5pIrkIOGHIVChIuXC2rk9F1DF/IMysmuvV6F+HAbsovUzpbnQuacp8OGDCNSuwKkl9VI24YpkoEX6GbnKQI1eYY3DHY95cZus/iLgS1Qb+EoKgmPugIK5nSs70eTYocjIH1snXQ0V6J4RlKst0aMOwMBfmfgl6l/ksotYTCB/qh2S8y49GwI1cciUeOwCbBIJuiWKy6t2AvM3A2DrrZTpC3FQZnTMNUZC2V3RUJvavZPyjaUR2cEjqrdsommL0Gq9R8tTAer4H4GNdH/yABxwD9c2sYDdnTnkl4TwMN19w4Fxn/KrprNF9ltqsfU+3jsRGBX9bfPbhWWw5qARmyZIHy/HeqMbAsalvFz8K3Z69BTlwkFOXW0HoxI3iPzG4EOrZBarEkFgxQTdDFF7W+ucw0Iqpb2PdO1ZXXd6mPPOf1pPIz6ZlJOF3FTs92o5rMOtRZY2DyrFG2SM5yN/+YuJlxdrkWAyC3IGczxdZH0b2bg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7666.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(366004)(39860400002)(396003)(136003)(376002)(5660300002)(53546011)(478600001)(83380400001)(8936002)(41300700001)(44832011)(122000001)(66476007)(2906002)(54906003)(66556008)(52536014)(76116006)(296002)(38070700005)(8676002)(82960400001)(71200400001)(316002)(66446008)(966005)(66946007)(4326008)(64756008)(110136005)(33656002)(26005)(9686003)(86362001)(6506007)(55016003)(38100700002)(7696005)(2940100002)(186003)(66574015); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dldNZk9uYVZ4eis3R293NzhaUFp6UEdsdnZIVHpVSjZuSGhEU1JtWU4rMFhS?= =?utf-8?B?ZE9SOGhGZTF2bUdaTXEwcHRSYU9rUWxraUdXMmo4Z0JlRzZaZHkycUtRa3hO?= =?utf-8?B?eDVzT2FNMnc0SEY0cHZncTVKSjZMNkFVZ2I0SXBzNDJQbHN6Wmg3bHBpNXdX?= =?utf-8?B?b3RGQkk5K0NHakxXU0owQUdBcHhTT2NyRUdWaEZKUHJUYkN2WHQ4bXdRakxt?= =?utf-8?B?MXQrYlNqVGRCcjMzbUJxNUk1Q0lHUHZIK3ZRemRDMjdlZXZCcmk1Wll0QStj?= =?utf-8?B?Q3p2Q0JOTnpteDFMemx1MnpSTUtMNXRtWkt1VUkwK3B6bmJQQjVuNnUvdWU2?= =?utf-8?B?ZFNod0hSckRaekZLZ0U4SEJLTkR1N2I3OC9HN2tWSUU2amNhUzFyTEQyTVRa?= =?utf-8?B?ZGRaOTIrSTJaekdJNzNNNWdzNzdrZ2t3NjN0WWJHUld0OHFqdFZnb2ErK1BW?= =?utf-8?B?V0JMZ0l1Wmc4cTJyZzVSZ2c5emxHUmRxNDJIS0JOd0MrMEFFRG5YeWI2dUll?= =?utf-8?B?MGlaVE92ZzMzSXI1aHEwLzhFUC80eiswNVBYa1plUEhyVFQvODV5MDVlaTBz?= =?utf-8?B?NmlFVUswN2tvTlhGWitNZzNFRzErcXVacXJDNzgwK2hVVUs0Smttb0w3bDYr?= =?utf-8?B?N0RrTzJYSVQxckNjOC9rSUQ5V1Jrb1FMTlRTRURtcVJlL3BDUGJvTTJZRmpL?= =?utf-8?B?RTJJZENDcXNkR3VYMmNHNy9tYk1lb2txWDJjcWpZa3VtSkNuTWNDRFR1b01y?= =?utf-8?B?bTdoWHBieFk5WThqbisrS1c4MzJ5MVRHdTJWZmpMVDBwdytXUzlMUFRHNVpW?= =?utf-8?B?Vk1pcEVLUjd4VmZ2YkdLZGhwcGpUa1NzREhyWjZ6REQ1SHl3V25Wbkt6SWVB?= =?utf-8?B?WkgyL3ZkRzV3SXU4UkE5NjMrQlN5T1FFQmZGMFYzSm4wTDkrL0QvTGNkWFZy?= =?utf-8?B?KytXbzdLT2x6bWIxRE5jSmlVdG0zSmk5MU9TWXAwNEpTVXIzdG84aGNBS0Nx?= =?utf-8?B?UGZtWHlMa0dDa3lON1Y2OHFEWjMzOTlTbHEvejUwMWRiUHZJZTIwbzBxQVZm?= =?utf-8?B?VzA3NThJK2x2ZUgyNm1vckNaUERYR3p5cDJnTTRuaXdreUNQZnp5bU4vMGVm?= =?utf-8?B?VTVXMWp1b1ZSbDM1OXF2ZCtHVEM0UlF1L1NVb0lOS2l2REZhSFQ1WnF4amsr?= =?utf-8?B?cUt5dHJyQjRwSXZGbGZmb2xOeFNVUllVaFF1ZTJMV3ZaNi9VWkZ3ZG1UOW00?= =?utf-8?B?NWE3a3p1SHFNOUZWanBwYjdJRXhDeXR5TnU1ZCtDcVExVm9vdVF5V29pb1o4?= =?utf-8?B?OUp1UGVYSVZSUWZTTjNJcFIzQmVoNzRFbVFLRm5aSlZVcnZVRHJrQzFpcnE0?= =?utf-8?B?bFhyMGVpY0toMzdtZlBISUtzUnp2and5SllUd3Q4anhBR2IweE5nNXhNVmZj?= =?utf-8?B?M3h5NExRbVc5L1lacDFOOUx6U2NKUUZoOVRSMmJENmlxNFBBdU1xbW40Q1U0?= =?utf-8?B?TU1oOEg3VjgvWnUzUncxaS8zdlhQa3JYekUyMzFBWEtySnBBZ0x1dEtIaXFn?= =?utf-8?B?d2w3SWU2WjBUV3JpbGtDVkxWVmRHNFk0a21RNGszZll3WUVWY0Y5UWsvUEhw?= =?utf-8?B?bk4ySHJiV2hMKzdtWXVlZWpDWVIxUit2T1ZTK3VNQUxGYW41dGlUYXdmekFi?= =?utf-8?B?aEZ3MEhRSFVOemNCVjg3NHJ6SWgxMGZJM1hpZ0Q4WVVBWjJMTzFVUyttd2xH?= =?utf-8?B?YjMrdVNVcFNCVGNCb3VKdlNib0ZHZHlLRDcrY2pXU09RNVdkOUsyaW5ZRTZO?= =?utf-8?B?blN4UjFSUmlSczlXM1hndTJuRVJIYW5tVnYreTJXbGw3OE1MR0lWcmtYUnRv?= =?utf-8?B?K2xjZjhOTG9vZ3RVYUhHK1RkOENxNEVpaWlhSkJtTDBIMUlpdjU5MlVTQ1lv?= =?utf-8?B?RjJ3SXFtSnFEaUQ1azFzbWpaTWMxdGlrSDhQakYzaWN4L0hvVndKNDBDaWls?= =?utf-8?B?cU9HSEhHL1ZIcUx6aGsvUkUvQkxzZzBscXYyUHFOMWNSV0V2THBrcTdyVDdO?= =?utf-8?B?bnZpMVA1V0FLWk9FTll6NTBHWFlnY3F3ZXlja1AwNFl5di9MUTRWT2I4dllr?= =?utf-8?Q?Uj9m+sHLzwCZmsAC6T116gRIy?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7666.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: df234ac5-3131-4807-1fbb-08da583babc8 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2022 12:50:53.4524 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: G4+z+jhLfZvk4B3QfTCVn3cKay3LNXiVVptheUo87nWMEnTMOpfLO3Zj3cezF+K4eTTU+MNQb+VC+8fUk3JsMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR07MB8616 X-Mailman-Approved-At: Wed, 29 Jun 2022 16:55:11 +0200 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRW1pbCBCZXJnDQo+IFNl bnQ6IGRlbiAyNyBqdW5pIDIwMjIgMTQ6NDYNCj4gVG86IE1hdHRpYXMgUsO2bm5ibG9tIDxob2Zv cnNAbHlzYXRvci5saXUuc2U+OyBNb3J0ZW4gQnLDuHJ1cA0KPiA8bWJAc21hcnRzaGFyZXN5c3Rl bXMuY29tPjsgYnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb207DQo+IGRldkBkcGRrLm9yZw0KPiBD Yzogc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IHN0YWJsZUBkcGRrLm9yZzsgYnVnemlsbGFA ZHBkay5vcmc7DQo+IG9saXZpZXIubWF0ekA2d2luZC5jb20NCj4gU3ViamVjdDogUkU6IFtQQVRD SCB2NF0gbmV0OiBmaXggY2hlY2tzdW0gd2l0aCB1bmFsaWduZWQgYnVmZmVyDQo+IA0KPiANCj4g DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBNYXR0aWFzIFLDtm5u YmxvbSA8aG9mb3JzQGx5c2F0b3IubGl1LnNlPg0KPiA+IFNlbnQ6IGRlbiAyNyBqdW5pIDIwMjIg MTQ6MjgNCj4gPiBUbzogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT47 IEVtaWwgQmVyZw0KPiA+IDxlbWlsLmJlcmdAZXJpY3Nzb24uY29tPjsgYnJ1Y2UucmljaGFyZHNv bkBpbnRlbC5jb207IGRldkBkcGRrLm9yZw0KPiA+IENjOiBzdGVwaGVuQG5ldHdvcmtwbHVtYmVy Lm9yZzsgc3RhYmxlQGRwZGsub3JnOyBidWd6aWxsYUBkcGRrLm9yZzsNCj4gPiBvbGl2aWVyLm1h dHpANndpbmQuY29tDQo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2NF0gbmV0OiBmaXggY2hlY2tz dW0gd2l0aCB1bmFsaWduZWQgYnVmZmVyDQo+ID4NCj4gPiBPbiAyMDIyLTA2LTIzIDE0OjUxLCBN b3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPiA+PiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRv Om1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0NCj4gPiA+PiBTZW50OiBUaHVyc2RheSwgMjMgSnVu ZSAyMDIyIDE0LjM5DQo+ID4gPj4NCj4gPiA+PiBXaXRoIHRoaXMgcGF0Y2gsIHRoZSBjaGVja3N1 bSBjYW4gYmUgY2FsY3VsYXRlZCBvbiBhbiB1bmFsaWduZWQgYnVmZmVyLg0KPiA+ID4+IEkuZS4g dGhlIGJ1ZiBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIHRvIGJlIDE2IGJpdCBhbGln bmVkLg0KPiA+ID4+DQo+ID4gPj4gVGhlIGNoZWNrc3VtIGlzIHN0aWxsIGNhbGN1bGF0ZWQgdXNp bmcgYSAxNiBiaXQgYWxpZ25lZCBwb2ludGVyLCBzbw0KPiA+ID4+IHRoZSBjb21waWxlciBjYW4g YXV0by12ZWN0b3JpemUgdGhlIGZ1bmN0aW9uJ3MgaW5uZXIgbG9vcC4NCj4gPiA+Pg0KPiA+ID4+ IFdoZW4gdGhlIGJ1ZmZlciBpcyB1bmFsaWduZWQsIHRoZSBmaXJzdCBieXRlIG9mIHRoZSBidWZm ZXIgaXMNCj4gPiA+PiBoYW5kbGVkIHNlcGFyYXRlbHkuIEZ1cnRoZXJtb3JlLCB0aGUgY2FsY3Vs YXRlZCBjaGVja3N1bSBvZiB0aGUNCj4gPiA+PiBidWZmZXIgaXMgYnl0ZSBzaGlmdGVkIGJlZm9y ZSBiZWluZyBhZGRlZCB0byB0aGUgaW5pdGlhbCBjaGVja3N1bSwNCj4gPiA+PiB0byBjb21wZW5z YXRlIGZvciB0aGUgY2hlY2tzdW0gaGF2aW5nIGJlZW4gY2FsY3VsYXRlZCBvbiB0aGUgYnVmZmVy DQo+ID4gPj4gc2hpZnRlZCBieSBvbmUgYnl0ZS4NCj4gPiA+Pg0KPiA+ID4+IHY0Og0KPiA+ID4+ ICogQWRkIGNvcHlyaWdodCBub3RpY2UuDQo+ID4gPj4gKiBJbmNsdWRlIHN0ZGJvb2wuaCAoRW1p bCBCZXJnKS4NCj4gPiA+PiAqIFVzZSBSVEVfUFRSX0FERCAoRW1pbCBCZXJnKS4NCj4gPiA+PiAq IEZpeCBvbmUgbW9yZSB0eXBvIGluIGNvbW1pdCBtZXNzYWdlLiBJcyAndW5saWduZWQnIGV2ZW4g YSB3b3JkPw0KPiA+ID4+IHYzOg0KPiA+ID4+ICogUmVtb3ZlIGJyYWNlcyBmcm9tIHNpbmdsZSBz dGF0ZW1lbnQgYmxvY2suDQo+ID4gPj4gKiBGaXggdHlwbyBpbiBjb21taXQgbWVzc2FnZS4NCj4g PiA+PiB2MjoNCj4gPiA+PiAqIERvIG5vdCBhc3N1bWUgdGhhdCB0aGUgYnVmZmVyIGlzIHBhcnQg b2YgYW4gYWxpZ25lZCBwYWNrZXQgYnVmZmVyLg0KPiA+ID4+DQo+ID4gPj4gQnVnemlsbGEgSUQ6 IDEwMzUNCj4gPiA+PiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4gPj4NCj4gPiA+PiBTaWduZWQt b2ZmLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiA+ID4+ IC0tLQ0KPiA+ID4+ICAgbGliL25ldC9ydGVfaXAuaCB8IDMyICsrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tDQo+ID4gPj4gICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkNCj4gPiA+Pg0KPiA+ID4+IGRpZmYgLS1naXQgYS9saWIvbmV0L3J0ZV9p cC5oIGIvbGliL25ldC9ydGVfaXAuaCBpbmRleA0KPiA+ID4+IGI1MDI0ODE2NzAuLjczOGQ2NDNk YTAgMTAwNjQ0DQo+ID4gPj4gLS0tIGEvbGliL25ldC9ydGVfaXAuaA0KPiA+ID4+ICsrKyBiL2xp Yi9uZXQvcnRlX2lwLmgNCj4gPiA+PiBAQCAtMyw2ICszLDcgQEANCj4gPiA+PiAgICAqICAgICAg VGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4NCj4gPiA+PiAgICAq IENvcHlyaWdodChjKSAyMDEwLTIwMTQgSW50ZWwgQ29ycG9yYXRpb24uDQo+ID4gPj4gICAgKiBD b3B5cmlnaHQoYykgMjAxNCA2V0lORCBTLkEuDQo+ID4gPj4gKyAqIENvcHlyaWdodChjKSAyMDIy IFNtYXJ0U2hhcmUgU3lzdGVtcy4NCj4gPiA+PiAgICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ ID4gPj4gICAgKi8NCj4gPiA+Pg0KPiA+ID4+IEBAIC0xNSw2ICsxNiw3IEBADQo+ID4gPj4gICAg KiBJUC1yZWxhdGVkIGRlZmluZXMNCj4gPiA+PiAgICAqLw0KPiA+ID4+DQo+ID4gPj4gKyNpbmNs dWRlIDxzdGRib29sLmg+DQo+ID4gPj4gICAjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gPj4NCj4g PiA+PiAgICNpZmRlZiBSVEVfRVhFQ19FTlZfV0lORE9XUw0KPiA+ID4+IEBAIC0xNjIsMjAgKzE2 NCw0MCBAQCBfX3J0ZV9yYXdfY2tzdW0oY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuLA0KPiA+ ID4+IHVpbnQzMl90IHN1bSkNCj4gPiA+PiAgIHsNCj4gPiA+PiAgIAkvKiBleHRlbmQgc3RyaWN0 LWFsaWFzaW5nIHJ1bGVzICovDQo+ID4gPj4gICAJdHlwZWRlZiB1aW50MTZfdCBfX2F0dHJpYnV0 ZV9fKChfX21heV9hbGlhc19fKSkgdTE2X3A7DQo+ID4gPj4gLQljb25zdCB1MTZfcCAqdTE2X2J1 ZiA9IChjb25zdCB1MTZfcCAqKWJ1ZjsNCj4gPiA+PiAtCWNvbnN0IHUxNl9wICplbmQgPSB1MTZf YnVmICsgbGVuIC8gc2l6ZW9mKCp1MTZfYnVmKTsNCj4gPiA+PiArCWNvbnN0IHUxNl9wICp1MTZf YnVmOw0KPiA+ID4+ICsJY29uc3QgdTE2X3AgKmVuZDsNCj4gPiA+PiArCXVpbnQzMl90IGJzdW0g PSAwOw0KPiA+ID4+ICsJY29uc3QgYm9vbCB1bmFsaWduZWQgPSAodWludHB0cl90KWJ1ZiAmIDE7 DQo+ID4gPj4gKw0KPiA+ID4+ICsJLyogaWYgYnVmZmVyIGlzIHVuYWxpZ25lZCwga2VlcGluZyBp dCBieXRlIG9yZGVyIGluZGVwZW5kZW50ICovDQo+ID4gPj4gKwlpZiAodW5saWtlbHkodW5hbGln bmVkKSkgew0KPiA+ID4+ICsJCXVpbnQxNl90IGZpcnN0ID0gMDsNCj4gPiA+PiArCQlpZiAodW5s aWtlbHkobGVuID09IDApKQ0KPiA+ID4+ICsJCQlyZXR1cm4gMDsNCj4gPiA+PiArCQkoKHVuc2ln bmVkIGNoYXIgKikmZmlyc3QpWzFdID0gKihjb25zdCB1bnNpZ25lZA0KPiA+IGNoYXIgKilidWY7 DQo+ID4gPj4gKwkJYnN1bSArPSBmaXJzdDsNCj4gPiA+PiArCQlidWYgPSBSVEVfUFRSX0FERChi dWYsIDEpOw0KPiA+ID4+ICsJCWxlbi0tOw0KPiA+ID4+ICsJfQ0KPiA+ID4+DQo+ID4gPj4gKwkv KiBhbGlnbmVkIGFjY2VzcyBmb3IgY29tcGlsZXIgYXV0by12ZWN0b3JpemF0aW9uICovDQo+ID4N Cj4gPiBUaGUgY29tcGlsZXIgd2lsbCBiZSBhYmxlIHRvIGF1dG8gdmVjdG9yaXplIGV2ZW4gdW5h bGlnbmVkIGFjY2Vzc2VzLA0KPiA+IGp1c3Qgd2l0aCBkaWZmZXJlbnQgaW5zdHJ1Y3Rpb25zLiBG cm9tIHdoYXQgSSBjYW4gdGVsbCwgdGhlcmUncyBubw0KPiA+IHBlcmZvcm1hbmNlIGltcGFjdCwg YXQgbGVhc3Qgbm90IG9uIHRoZSB4ODZfNjQgc3lzdGVtcyBJIHRyaWVkIG9uLg0KPiA+DQo+ID4g SSB0aGluayB5b3Ugc2hvdWxkIHJlbW92ZSB0aGUgZmlyc3Qgc3BlY2lhbCBjYXNlIGNvbmRpdGlv bmFsIGFuZCB1c2UNCj4gPiBtZW1jcHkoKSBpbnN0ZWFkIG9mIHRoZSBjdW1iZXJzb21lIF9fbWF5 X2FsaWFzX18gY29uc3RydWN0IHRvIHJldHJpZXZlDQo+ID4gdGhlIGRhdGEuDQo+ID4NCj4gDQo+ IEhlcmU6DQo+IGh0dHBzOi8vd3d3LmFnbmVyLm9yZy9vcHRpbWl6ZS9pbnN0cnVjdGlvbl90YWJs ZXMucGRmDQo+IGl0IGxpc3RzIHRoZSBsYXRlbmN5IG9mIHZtb3ZkcWEgKGFsaWduZWQpIGFzIDYg Y3ljbGVzIGFuZCB0aGUgbGF0ZW5jeSBmb3INCj4gdm1vdmRxdSAodW5hbGlnbmVkKSBhcyA3IGN5 Y2xlcy4gU28gSSBndWVzcyB0aGVyZSBjYW4gYmUgc29tZSBkaWZmZXJlbmNlLg0KPiBBbHRob3Vn aCBpbiBwcmFjdGljZSBJJ20gbm90IHN1cmUgd2hhdCBkaWZmZXJlbmNlIGl0IG1ha2VzLiBJJ3Zl IG5vdCBzZWVuIGFueQ0KPiBkaWZmZXJlbmNlIGluIHJ1bnRpbWUgYmV0d2VlbiB0aGUgdHdvIHZl cnNpb25zLg0KPiANCg0KQ29ycmVjdGlvbiB0byBteSBjb21tZW50Og0KVGhvc2Ugc3RhdHMgYXJl IGZvciBzb21lIG9sZGVyIENQVS4gRm9yIHNvbWUgbmV3ZXIgQ1BVcyBzdWNoIGFzIFRpZ2VyIExh a2UgdGhlIHN0YXRzIHNlZW0gdG8gYmUgdGhlIHNhbWUgcmVnYXJkbGVzcyBvZiBhbGlnbmVkIG9y IHVuYWxpZ25lZC4NCg0KPiA+ID4+ICsJdTE2X2J1ZiA9IChjb25zdCB1MTZfcCAqKWJ1ZjsNCj4g PiA+PiArCWVuZCA9IHUxNl9idWYgKyBsZW4gLyBzaXplb2YoKnUxNl9idWYpOw0KPiA+ID4+ICAg CWZvciAoOyB1MTZfYnVmICE9IGVuZDsgKyt1MTZfYnVmKQ0KPiA+ID4+IC0JCXN1bSArPSAqdTE2 X2J1ZjsNCj4gPiA+PiArCQlic3VtICs9ICp1MTZfYnVmOw0KPiA+ID4+DQo+ID4gPj4gICAJLyog aWYgbGVuZ3RoIGlzIG9kZCwga2VlcGluZyBpdCBieXRlIG9yZGVyIGluZGVwZW5kZW50ICovDQo+ ID4gPj4gICAJaWYgKHVubGlrZWx5KGxlbiAlIDIpKSB7DQo+ID4gPj4gICAJCXVpbnQxNl90IGxl ZnQgPSAwOw0KPiA+ID4+ICAgCQkqKHVuc2lnbmVkIGNoYXIgKikmbGVmdCA9ICooY29uc3QgdW5z aWduZWQgY2hhcg0KPiA+ICopZW5kOw0KPiA+ID4+IC0JCXN1bSArPSBsZWZ0Ow0KPiA+ID4+ICsJ CWJzdW0gKz0gbGVmdDsNCj4gPiA+PiAgIAl9DQo+ID4gPj4NCj4gPiA+PiAtCXJldHVybiBzdW07 DQo+ID4gPj4gKwkvKiBpZiBidWZmZXIgaXMgdW5hbGlnbmVkLCBzd2FwIHRoZSBjaGVja3N1bSBi eXRlcyAqLw0KPiA+ID4+ICsJaWYgKHVubGlrZWx5KHVuYWxpZ25lZCkpDQo+ID4gPj4gKwkJYnN1 bSA9IChic3VtICYgMHhGRjAwRkYwMCkgPj4gOCB8IChic3VtICYNCj4gPiAweDAwRkYwMEZGKSA8 PCA4Ow0KPiA+ID4+ICsNCj4gPiA+PiArCXJldHVybiBzdW0gKyBic3VtOw0KPiA+ID4+ICAgfQ0K PiA+ID4+DQo+ID4gPj4gICAvKioNCj4gPiA+PiAtLQ0KPiA+ID4+IDIuMTcuMQ0KPiA+ID4NCj4g PiA+IEBFbWlsLCB0aGFuayB5b3UgZm9yIHRob3JvdWdobHkgcmV2aWV3aW5nIHRoZSBwcmV2aW91 cyB2ZXJzaW9ucy4NCj4gPiA+DQo+ID4gPiBJZiB5b3VyIHRlc3Qgc3VjY2VlZHMgYW5kIHlvdSBh cmUgc2F0aXNmaWVkIHdpdGggdGhlIHBhdGNoLCByZW1lbWJlcg0KPiA+ID4gdG8NCj4gPiByZXBs eSB3aXRoIGEgIlRlc3RlZC1ieSIgdGFnIGZvciBwYXRjaHdvcmsuDQo+ID4gPg0K