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 330D6A0555; Fri, 3 Jun 2022 18:30:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D81C54021E; Fri, 3 Jun 2022 18:30:52 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id CE84240041 for ; Fri, 3 Jun 2022 18:30:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654273852; x=1685809852; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=wug7tuIpqc/QBkN8JoVbE0JibbdYcgGgAeHnBHEMtCc=; b=FRAsSYemzW38cVUZdeX0Vm8KIwQ7WzXYVsqyt0KtAzq2geqxtsC8kA/x ZKICYSGr9FxYs2p8KD1NSVj0qA2k6UUdIsJWDdOD/Y7KKwLlqWMyP9HJG Ob09gi+x7HSbCFyYTIn7qAwEYcXDebtGC8+6my7fHSym5yoS0Vfm2ryln 4kpvAf/tgB7en5G10YFXKa6DMQWygVF8OJCvmHAlxcuELFt1XWinxn6fw mTgpZmjvfBHYBIMpA+M6ks7act4T5K04z6Kmbi80QIrIQGaX1SLyJijxr L12f3rJm1HcOv/aqSMvItDcGzrVtYeJypSfdK6qPvOYHBebJToCD+Et/P w==; X-IronPort-AV: E=McAfee;i="6400,9594,10367"; a="336952385" X-IronPort-AV: E=Sophos;i="5.91,275,1647327600"; d="scan'208";a="336952385" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jun 2022 09:30:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,275,1647327600"; d="scan'208";a="721808565" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga001.fm.intel.com with ESMTP; 03 Jun 2022 09:30:47 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Fri, 3 Jun 2022 09:30:46 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Fri, 3 Jun 2022 09:30:46 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Fri, 3 Jun 2022 09:30:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MUqLAPCC+7Gmi5piyb4cDEfYB7YtTYjHInPYp+774F4D1JTDqndi6L64MjEKunZH5pgzTPrmFb4VfghTXcGHXHSMltP2+M85A1B+6Sq8/FUBBYJb14EzKkkN2iO03DvwehLHDl/DdaCDuNS6+NChcMiVV24xq7pGQE439lj+kmAVkvfl1mtQCqUulg8+701+Xztm/0vu0k2ndqkiIurvUdpZYQoe1iA+w3IruVv7or3lDxcRCPRGs19MTVh9F+gObpcrYTpL1238MnjqJcFrtXobSwzEhb4ST5yXJvKVEieYcisx9xj06PCIQQCkxm/IYjahPrxqa90jSK6RtSuWgg== 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=wug7tuIpqc/QBkN8JoVbE0JibbdYcgGgAeHnBHEMtCc=; b=V4M1dGPPX2lE95kBe5vWRIimLqR0ZyWo3oNCPYj0TDHZn62Hco0fTEjVs3Nh2x+jX4iV+hy4JAvRw3JCPJeyRxERISu36uFBXXpAPyy+rrkwQy2DGNTcKerblAZJ59ZYlHLAzmPMX63AhU+N59Xof3MQIZKnuiP5riDKIhFbkDSuYx3YMjRiixggGAERonGdOdyrPnLI+rQQHJwWuWDh3TjKvE0IBOkSO//0WkAoM3EmxIzhAAu6C2zSZO6PVc3LYZFzSIvzPlYQ7POZjV9ujBq+k+iAuq07JcOb98pscCBZJTo96n+SDkv75B4Zsfn18j+7uuY+w4UGiQ9mFRRA0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5513.namprd11.prod.outlook.com (2603:10b6:408:102::11) by BYAPR11MB2901.namprd11.prod.outlook.com (2603:10b6:a03:91::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.16; Fri, 3 Jun 2022 16:30:43 +0000 Received: from BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::31c6:2ec8:2f71:42da]) by BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::31c6:2ec8:2f71:42da%2]) with mapi id 15.20.5314.015; Fri, 3 Jun 2022 16:30:43 +0000 From: "Ding, Xuan" To: Andrew Rybchenko , "Wu, WenxuanX" , "thomas@monjalon.net" , "Li, Xiaoyun" , "ferruh.yigit@xilinx.com" , "Singh, Aman Deep" , "dev@dpdk.org" , "Zhang, Yuying" , "Zhang, Qi Z" , "jerinjacobk@gmail.com" CC: "stephen@networkplumber.org" , "Wang, YuanX" , Ray Kinsella Subject: RE: [PATCH v8 1/3] ethdev: introduce protocol hdr based buffer split Thread-Topic: [PATCH v8 1/3] ethdev: introduce protocol hdr based buffer split Thread-Index: AQHYdcH3HFAmhGXUVUOOiSLRt5Q8gK08G4+AgAGzACA= Date: Fri, 3 Jun 2022 16:30:43 +0000 Message-ID: References: <20220303060136.36427-1-xuan.ding@intel.com> <20220601135059.958882-1-wenxuanx.wu@intel.com> <20220601135059.958882-2-wenxuanx.wu@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 671c5aa5-f178-42be-91d6-08da457e67ba x-ms-traffictypediagnostic: BYAPR11MB2901:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5vVGDol8yT/77GhcziYBcvSIfd378WbNQyn3vmuG7w6Pi+8pigW7t5l7DwFj9xNsrgV+RuVQxqtpFo6Iv/RF5t/vbB5atWTZe0SWYMoUJ4gvoDdFnV2PJtVz86o7nQChRKbgSYpkvl7D+NBnrAMYopp1Xq3dni7q/Ka6grQTLpDAE29wvDspB7E5Hw/3LAVUCjLgtTKyfILe1jOIM+xE8FyZMNyii+FXGUswaIvg5uAyMKLIbg+MHB0AgLfa1v4SmxagpMq4NSQ8qNZlJOWWTSifFm3Cm3weJ455oJdMTB90tsbpciMSENF6rVTSYU/LdjUnj+LuxUAVa4aGr/ZDBPG+emoYn+/fq5gmmY5rCsk2Fo7NOtO0tokRpdzZv0oU8xRbgd1zwx0jwZDQsQpGZnOHSofApxUGWui1LyW/yybvmTWAVbPiuBmMwwnyGRJZFfCdjEj5UMvW4N81V48lVPf59DfnDm6bJOHYYdIWh3O8vwx6mJJSyATTb3cwm2NvGFtwlM+dl4pghFnsFSCmKK2Fnuo+yKcIry20TuNraHZl3U3jFBBQWJqprsBKQ1uKXO0XXpl7HzWFY6tSOoOlHxHlA9FtMsni6UDogFIcebQcK+ByLhHB5XV90QN2ThTzSDEeOPPX6pxx3m8cd7EWHleMSRFQpbZPNk1paVFhdvLA20hr7vs/hCYgHNGiE7Fh3rE+njUWddVdYghzHtV1mXD7rdUNVFG+y1YlG0vbXT0= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5513.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(186003)(921005)(38070700005)(82960400001)(86362001)(122000001)(55016003)(38100700002)(83380400001)(66556008)(66446008)(64756008)(8676002)(4326008)(66946007)(76116006)(33656002)(110136005)(54906003)(316002)(2906002)(8936002)(52536014)(30864003)(5660300002)(66476007)(9686003)(26005)(53546011)(6506007)(7696005)(508600001)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?emxMa3BmOUhrM2lEN2tUVDI1Zmw5S1pxT1REVXBUMW5qNmk1NGVtdGUwcVFw?= =?utf-8?B?QkFsUzl1QnZTRlA0d1M5UGJpQ24zb0RrakhEeUJ1eHk4aTQ5dUZvcWN1VUVq?= =?utf-8?B?OUNjZ3FIL2ZLV1p1SVluWGY0aWwwampOK2UrNFhmalZpbFZXSTd4VTMwT0p4?= =?utf-8?B?MTNMbXo3RThnOVV2VDhiSDNPbUQ1MGJOVGVhVkNjTTlGMFYxVEpyTDVWOXhJ?= =?utf-8?B?Z0hZcEczWlB5Nm1zSGxOemNWUG5qMWZhWXZVSUVPMjU3REFlK0Q3V2FucnE4?= =?utf-8?B?MkJPaUY0a1FoYmNCYzdkVDd4WTNnRkJEN04ySTB1S3ptMkxWTDR1RXBjWEZp?= =?utf-8?B?V2h6UkRNUll3dFpQV0xhWkdMTTVGRnM1OVc5U3ZCU1RBZ2RwakFvZlRkVCtM?= =?utf-8?B?Vyt1N1lMd2R3OTIwVUQ5Z1VURmxYUkVQNTVEUFRJZk9aVHNGVnZoeVE5ekth?= =?utf-8?B?eFk2bS9yYXFOV0JtdTRTZithVHdVdEhFVTIwdlgreHZNM1J4b3hSenF3Wm5N?= =?utf-8?B?WjRoK2NmNlJ6TUxMek9mUGJJQ1Q5bUdJY2pWcjIzRlZHcnhRMmR0Z3ZPa0xt?= =?utf-8?B?T1ZVeHZMMzZsY2srRHY3ejZ4TVgzQlFOUi9adC9XOGM5bk8zVmNMV0VtTTdQ?= =?utf-8?B?YUx1QXVWZ3h0Qk1Ecndpd1h2aU5qVVIxN1k5cjNTSFMrYkZqT2VsbUNVZTg1?= =?utf-8?B?RUU0OUJVZFBjb1dyUFlCanhiQUxTNERkeEZuL09EN0dBc0w5dXV2aUFxYTNa?= =?utf-8?B?MnMyNWdyZzIwMmcxa2lFNDVNVUJqTUNvT3FtRXcwMGpyRm5BOXF0ZUc3YVlm?= =?utf-8?B?dHFwbWd3cm9ZeFBSS3pRNWNxY09xa0NXcU4rWWppUG54cVBkTC9EM3dSSzE1?= =?utf-8?B?eW84MGEvNVNsOGVzQjZHUEQ3aDBrcjh3TjRCZzVWdmhhN2NsZUovWk5jS1pG?= =?utf-8?B?bDdOWTA4cHN1bmhzMGxyRE1NK1VrTktXdnpUYy81Z21LWUx6bTZkdGEvZmU0?= =?utf-8?B?bEVSN01makUzMnJ2bTRFT2h1MGpwT0JHbDlKUk1mNlE0N1Z3SWpxanlodGFJ?= =?utf-8?B?bElManN5YU5TVHIzcnB6di8rUXEyVjBRMjlJZ3NGMDc4QkN4T1NvVHIxYUYr?= =?utf-8?B?alpvRE9HS1o2SlUzZWp6Si9IWVoxaW1Tc0FYKzJ6Yyt0MmhPcnVYWUZSL2Nz?= =?utf-8?B?Qm1xUVkrOHE3Smt3VFFoVW5SZzd2ekpWQytEMEpoYWN2VWNrYWEveG5LTnQy?= =?utf-8?B?czBvMHNiSktscmNYRSsyYm1pUjhPWXBRbk9nVXlOM0xxTUxrS1AyQWE0a2Y1?= =?utf-8?B?bVpkaW1zMEE5OXoxOVdtS2cvMk5neFdMNG1zMXBnM1I2MzlvaTYxOEgzNVYw?= =?utf-8?B?anM1aHMvQklMUndKNTV1bC8vcGNFZEVtNEZjclhqcDRqZGozemw3eTFMZEZk?= =?utf-8?B?VzRIUzVNSlBYTE1pVm9pRGRRQmFTemtxUGRRQ2kxU0xKekc0MTVSUGQ4ZG1Y?= =?utf-8?B?Wi84STUxOFlVQVJvYTRmT2VTN2Z5UE5Zb1owbkJXZzF3b2xLSERpWkdaM3Jo?= =?utf-8?B?TG41clQxZ1kyZmVNME44bS8yazVVUHUxU1VJZ25nTDR5K3U2U3FRV05HNkg0?= =?utf-8?B?ZjlBbVhtWSt4dERMbERhNGhXQkRrSHAzR2w2bVVIQ2k1N1hWMVdIWkk1VnpP?= =?utf-8?B?Zzc2R0NBaUhNTG9RcXo2U1hoQ3YrdTZFeXhycVQraCsxcnpEMFF3UURFTVVv?= =?utf-8?B?UXJ4cXJ5UUpmakltYlNGWVBLVWRDMlVhcjBVK3p6NWFqZ2VNd1pzTCtHSjhv?= =?utf-8?B?UEFvcktiSzk3WjlsaDc3RzY4ZE1hZk56WmdTSlUwZk9xby9wOGVvbU16MW1o?= =?utf-8?B?VEZDYjJqNzR6TU55Z3lsS2NaQ25FMUlrMFFZR0NUbHhQZllVdmRYRzZJOVlu?= =?utf-8?B?SUNpTy9RVWpBWEdleEYyL09nVDViUDQxb1dLcEUwYWpGZUlEUGVQS3REWTJX?= =?utf-8?B?OXMzeUFrdUN3LzNuSnVkUXFyM2o3SU1aWXRYU0lUcCsrS01QdHFDZ0VHUHQ4?= =?utf-8?B?MkRWYnVYRzM4VzFMVlkzSW82NTJhNk8zYU5NTXpUZEFYOTNTc0o1NW42b3g5?= =?utf-8?B?RnR4UG1HNFZzSTBSTnBFRU5lemNCWkVlS1hjSzJjQkJzd2RoRFoxbkhjUnUz?= =?utf-8?B?R3JEVGRXbWhJREQxLytZZVNEOGFydkxaMGNERjJoWURjMlg2eGNsTkEvb1Vo?= =?utf-8?B?NG8yVE9sdTNNUTY3L1JKVFhjN0VkSUxjdDRlQTZQTlNBbi9Nam1ES21pU25u?= =?utf-8?B?MWlvVE9SWVZCaDluT3JKclF6UTlPc0JXU2xtYTZYUmNOYUVBVjB6Zz09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5513.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 671c5aa5-f178-42be-91d6-08da457e67ba X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2022 16:30:43.4353 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8mW/Z05cRXP+7FaShKWwxW2KNzi46TDbbTnHD5rx3dyVMsrSBb6SNwwFBb93c5e8+P9rFWcI5uFVEWbw7lsjcA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2901 X-OriginatorOrg: intel.com 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 c2RheSwgSnVuZSAyLCAyMDIyIDk6MjEgUE0NCj4gVG86IFd1LCBXZW54dWFuWCA8d2VueHVhbngu d3VAaW50ZWwuY29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldDsgTGksDQo+IFhpYW95dW4gPHhpYW95 dW4ubGlAaW50ZWwuY29tPjsgZmVycnVoLnlpZ2l0QHhpbGlueC5jb207IFNpbmdoLCBBbWFuIERl ZXANCj4gPGFtYW4uZGVlcC5zaW5naEBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7IFpoYW5nLCBZ dXlpbmcNCj4gPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFu Z0BpbnRlbC5jb20+Ow0KPiBqZXJpbmphY29ia0BnbWFpbC5jb20NCj4gQ2M6IHN0ZXBoZW5AbmV0 d29ya3BsdW1iZXIub3JnOyBEaW5nLCBYdWFuIDx4dWFuLmRpbmdAaW50ZWwuY29tPjsNCj4gV2Fu ZywgWXVhblggPHl1YW54LndhbmdAaW50ZWwuY29tPjsgUmF5IEtpbnNlbGxhIDxtZHJAYXNocm9l LmV1Pg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY4IDEvM10gZXRoZGV2OiBpbnRyb2R1Y2UgcHJv dG9jb2wgaGRyIGJhc2VkIGJ1ZmZlciBzcGxpdA0KPiANCj4gSXMgaXQgdGhlIHJpZ2h0IG9uZSBz aW5jZSBpdCBpcyBsaXN0ZWQgaW4gcGF0Y2h3b3JrPw0KDQpZZXMsIGl0IGlzLg0KDQo+IA0KPiBP biA2LzEvMjIgMTY6NTAsIHdlbnh1YW54Lnd1QGludGVsLmNvbSB3cm90ZToNCj4gPiBGcm9tOiBX ZW54dWFuIFd1IDx3ZW54dWFueC53dUBpbnRlbC5jb20+DQo+ID4NCj4gPiBDdXJyZW50bHksIFJ4 IGJ1ZmZlciBzcGxpdCBzdXBwb3J0cyBsZW5ndGggYmFzZWQgc3BsaXQuIFdpdGggUnggcXVldWUN Cj4gPiBvZmZsb2FkIFJURV9FVEhfUlhfT0ZGTE9BRF9CVUZGRVJfU1BMSVQgZW5hYmxlZCBhbmQg UnggcGFja2V0DQo+IHNlZ21lbnQNCj4gPiBjb25maWd1cmVkLCBQTUQgd2lsbCBiZSBhYmxlIHRv IHNwbGl0IHRoZSByZWNlaXZlZCBwYWNrZXRzIGludG8NCj4gPiBtdWx0aXBsZSBzZWdtZW50cy4N Cj4gPg0KPiA+IEhvd2V2ZXIsIGxlbmd0aCBiYXNlZCBidWZmZXIgc3BsaXQgaXMgbm90IHN1aXRh YmxlIGZvciBOSUNzIHRoYXQgZG8NCj4gPiBzcGxpdCBiYXNlZCBvbiBwcm90b2NvbCBoZWFkZXJz LiBHaXZlbiBhIGFyYml0cmFyaWx5IHZhcmlhYmxlIGxlbmd0aA0KPiA+IGluIFJ4IHBhY2tldA0K PiANCj4gYSAtPiBhbg0KDQpUaGFua3MgZm9yIHlvdXIgY2F0Y2gsIHdpbGwgZml4IGl0IGluIG5l eHQgdmVyc2lvbi4NCg0KPiANCj4gPiBzZWdtZW50LCBpdCBpcyBhbG1vc3QgaW1wb3NzaWJsZSB0 byBwYXNzIGEgZml4ZWQgcHJvdG9jb2wgaGVhZGVyIHRvIFBNRC4NCj4gPiBCZXNpZGVzLCB0aGUg ZXhpc3RlbmNlIG9mIHR1bm5lbGluZyByZXN1bHRzIGluIHRoZSBjb21wb3NpdGlvbiBvZiBhDQo+ ID4gcGFja2V0IGlzIHZhcmlvdXMsIHdoaWNoIG1ha2VzIHRoZSBzaXR1YXRpb24gZXZlbiB3b3Jz ZS4NCj4gPg0KPiA+IFRoaXMgcGF0Y2ggZXh0ZW5kcyBjdXJyZW50IGJ1ZmZlciBzcGxpdCB0byBz dXBwb3J0IHByb3RvY29sIGhlYWRlcg0KPiA+IGJhc2VkIGJ1ZmZlciBzcGxpdC4gQSBuZXcgcHJv dG9faGRyIGZpZWxkIGlzIGludHJvZHVjZWQgaW4gdGhlDQo+ID4gcmVzZXJ2ZWQgZmllbGQgb2Yg cnRlX2V0aF9yeHNlZ19zcGxpdCBzdHJ1Y3R1cmUgdG8gc3BlY2lmeSBwcm90b2NvbA0KPiA+IGhl YWRlci4gVGhlIHByb3RvX2hkciBmaWVsZCBkZWZpbmVzIHRoZSBzcGxpdCBwb3NpdGlvbiBvZiBw YWNrZXQsDQo+ID4gc3BsaXR0aW5nIHdpbGwgYWx3YXlzIGhhcHBlbnMgYWZ0ZXIgdGhlIHByb3Rv Y29sIGhlYWRlciBkZWZpbmVkIGluIHRoZQ0KPiA+IFJ4IHBhY2tldCBzZWdtZW50LiBXaGVuIFJ4 IHF1ZXVlIG9mZmxvYWQNCj4gPiBSVEVfRVRIX1JYX09GRkxPQURfQlVGRkVSX1NQTElUIGlzIGVu YWJsZWQgYW5kIGNvcnJlc3BvbmRpbmcNCj4gcHJvdG9jb2wNCj4gPiBoZWFkZXIgaXMgY29uZmln dXJlZCwgUE1EIHdpbGwgc3BsaXQgdGhlIGluZ3Jlc3MgcGFja2V0cyBpbnRvIG11bHRpcGxlDQo+ IHNlZ21lbnRzLg0KPiA+DQo+ID4gc3RydWN0IHJ0ZV9ldGhfcnhzZWdfc3BsaXQgew0KPiA+DQo+ ID4gICAgICAgICAgc3RydWN0IHJ0ZV9tZW1wb29sICptcDsgLyogbWVtb3J5IHBvb2xzIHRvIGFs bG9jYXRlIHNlZ21lbnQgZnJvbQ0KPiAqLw0KPiA+ICAgICAgICAgIHVpbnQxNl90IGxlbmd0aDsg Lyogc2VnbWVudCBtYXhpbWFsIGRhdGEgbGVuZ3RoLA0KPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uZmlndXJlcyAic3BsaXQgcG9pbnQiICovDQo+ID4gICAgICAgICAgdWludDE2 X3Qgb2Zmc2V0OyAvKiBkYXRhIG9mZnNldCBmcm9tIGJlZ2lubmluZw0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2YgbWJ1ZiBkYXRhIGJ1ZmZlciAqLw0KPiA+ICAgICAgICAgIHVp bnQzMl90IHByb3RvX2hkcjsgLyogaW5uZXIvb3V0ZXIgTDIvTDMvTDQgcHJvdG9jb2wgaGVhZGVy LA0KPiA+IAkJCSAgICAgICBjb25maWd1cmVzICJzcGxpdCBwb2ludCIgKi8NCj4gPiAgICAgIH07 DQo+ID4NCj4gPiBCb3RoIGlubmVyIGFuZCBvdXRlciBMMi9MMy9MNCBsZXZlbCBwcm90b2NvbCBo ZWFkZXIgc3BsaXQgY2FuIGJlIHN1cHBvcnRlZC4NCj4gPiBDb3JyZXNwb25kaW5nIHByb3RvY29s IGhlYWRlciBjYXBhYmlsaXR5IGlzIFJURV9QVFlQRV9MMl9FVEhFUiwNCj4gPiBSVEVfUFRZUEVf TDNfSVBWNCwgUlRFX1BUWVBFX0wzX0lQVjYsIFJURV9QVFlQRV9MNF9UQ1AsDQo+ID4gUlRFX1BU WVBFX0w0X1VEUCwgUlRFX1BUWVBFX0w0X1NDVFAsIFJURV9QVFlQRV9JTk5FUl9MMl9FVEhFUiwN Cj4gPiBSVEVfUFRZUEVfSU5ORVJfTDNfSVBWNCwgUlRFX1BUWVBFX0lOTkVSX0wzX0lQVjYsDQo+ ID4gUlRFX1BUWVBFX0lOTkVSX0w0X1RDUCwgUlRFX1BUWVBFX0lOTkVSX0w0X1VEUCwNCj4gUlRF X1BUWVBFX0lOTkVSX0w0X1NDVFAuDQo+ID4NCj4gPiBGb3IgZXhhbXBsZSwgbGV0J3Mgc3VwcG9z ZSB3ZSBjb25maWd1cmVkIHRoZSBSeCBxdWV1ZSB3aXRoIHRoZQ0KPiA+IGZvbGxvd2luZyBzZWdt ZW50czoNCj4gPiAgICAgIHNlZzAgLSBwb29sMCwgcHJvdG9faGRyMD1SVEVfUFRZUEVfTDNfSVBW NCwgb2ZmMD0yQg0KPiA+ICAgICAgc2VnMSAtIHBvb2wxLCBwcm90b19oZHIxPVJURV9QVFlQRV9M NF9VRFAsIG9mZjE9MTI4Qg0KPiA+ICAgICAgc2VnMiAtIHBvb2wyLCBvZmYxPTBCDQo+ID4NCj4g PiBUaGUgcGFja2V0IGNvbnNpc3RzIG9mIE1BQ19JUFY0X1VEUF9QQVlMT0FEIHdpbGwgYmUgc3Bs aXQgbGlrZQ0KPiA+IGZvbGxvd2luZzoNCj4gPiAgICAgIHNlZzAgLSBpcHY0IGhlYWRlciBAIFJU RV9QS1RNQlVGX0hFQURST09NICsgMiBpbiBtYnVmIGZyb20NCj4gcG9vbDANCj4gPiAgICAgIHNl ZzEgLSB1ZHAgaGVhZGVyIEAgMTI4IGluIG1idWYgZnJvbSBwb29sMQ0KPiA+ICAgICAgc2VnMiAt IHBheWxvYWQgQCAwIGluIG1idWYgZnJvbSBwb29sMg0KPiANCj4gSXQgbXVzdCBiZSBkZWZpbmVk IGhvdyBJQ01QdjQgcGFja2V0cyB3aWxsIGJlIHNwbGl0IGluIHN1Y2ggY2FzZS4NCj4gQW5kIGhv dyBVRFAgb3ZlciBJUHY2IHdpbGwgYmUgc3BsaXQuDQoNClRoZSBJQ01QIGhlYWRlciB0eXBlIGlz IG1pc3NlZCwgSSB3aWxsIGRlZmluZSB0aGUgZXhwZWN0ZWQgc3BsaXQgYmVoYXZpb3IgYW5kDQph ZGQgaXQgaW4gbmV4dCB2ZXJzaW9uLCB0aGFua3MgZm9yIHlvdXIgY2F0Y2guDQoNCkluIGZhY3Qs IHRoZSBidWZmZXIgc3BsaXQgYmFzZWQgb24gcHJvdG9jb2wgaGVhZGVyIGRlcGVuZHMgb24gdGhl IGRyaXZlciBwYXJzaW5nIHJlc3VsdC4NCkFzIGxvbmcgYXMgZHJpdmVyIGNhbiByZWNvZ25pemUg dGhpcyBwYWNrZXQgdHlwZSwgSSB0aGluayB0aGVyZSBpcyBubyBkaWZmZXJlbmNlIGJldHdlZW4N ClVEUCBvdmVyIElQVjQgYW5kIFVEUCBvdmVyIElQVjY/DQoNCj4gPg0KPiA+IE5vdyBidWZmZXQg c3BsaXQgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gdHdvIG1vZGVzLiBGb3IgbGVuZ3RoIGJhc2VkDQo+ ID4gYnVmZmVyIHNwbGl0LCB0aGUgbXAsIGxlbmd0aCwgb2Zmc2V0IGZpZWxkIGluIFJ4IHBhY2tl dCBzZWdtZW50IHNob3VsZA0KPiA+IGJlIGNvbmZpZ3VyZWQsIHdoaWxlIHRoZSBwcm90b19oZHIg ZmllbGQgc2hvdWxkIG5vdCBiZSBjb25maWd1cmVkLg0KPiA+IEZvciBwcm90b2NvbCBoZWFkZXIg YmFzZWQgYnVmZmVyIHNwbGl0LCB0aGUgbXAsIG9mZnNldCwgcHJvdG9faGRyDQo+ID4gZmllbGQg aW4gUnggcGFja2V0IHNlZ21lbnQgc2hvdWxkIGJlIGNvbmZpZ3VyZWQsIHdoaWxlIHRoZSBsZW5n dGgNCj4gPiBmaWVsZCBzaG91bGQgbm90IGJlIGNvbmZpZ3VyZWQuDQo+ID4NCj4gPiBUaGUgc3Bs aXQgbGltaXRhdGlvbnMgaW1wb3NlZCBieSB1bmRlcmx5aW5nIFBNRCBpcyByZXBvcnRlZCBpbiB0 aGUNCj4gPiBydGVfZXRoX2Rldl9pbmZvLT5yeF9zZWdfY2FwYSBmaWVsZC4gVGhlIG1lbW9yeSBh dHRyaWJ1dGVzIGZvciB0aGUNCj4gPiBzcGxpdCBwYXJ0cyBtYXkgZGlmZmVyIGVpdGhlciwgZHBk ayBtZW1vcnkgYW5kIGV4dGVybmFsIG1lbW9yeSwNCj4gcmVzcGVjdGl2ZWx5Lg0KPiA+DQo+ID4g U2lnbmVkLW9mZi1ieTogWHVhbiBEaW5nIDx4dWFuLmRpbmdAaW50ZWwuY29tPg0KPiA+IFNpZ25l ZC1vZmYtYnk6IFl1YW4gV2FuZyA8eXVhbngud2FuZ0BpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9m Zi1ieTogV2VueHVhbiBXdSA8d2VueHVhbngud3VAaW50ZWwuY29tPg0KPiA+IFJldmlld2VkLWJ5 OiBRaSBaaGFuZyA8cWkuei56aGFuZ0BpbnRlbC5jb20+DQo+ID4gQWNrZWQtYnk6IFJheSBLaW5z ZWxsYSA8bWRyQGFzaHJvZS5ldT4NCj4gPiAtLS0NCj4gPiAgIGxpYi9ldGhkZXYvcnRlX2V0aGRl di5jIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPiA+ICAg bGliL2V0aGRldi9ydGVfZXRoZGV2LmggfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKyst DQo+ID4gICAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMgYi9saWIvZXRo ZGV2L3J0ZV9ldGhkZXYuYyBpbmRleA0KPiA+IDI5YTNkODA0NjYuLmZiZDU1Y2RkOWQgMTAwNjQ0 DQo+ID4gLS0tIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMNCj4gPiArKysgYi9saWIvZXRoZGV2 L3J0ZV9ldGhkZXYuYw0KPiA+IEBAIC0xNjYxLDYgKzE2NjEsNyBAQCBydGVfZXRoX3J4X3F1ZXVl X2NoZWNrX3NwbGl0KGNvbnN0IHN0cnVjdA0KPiBydGVfZXRoX3J4c2VnX3NwbGl0ICpyeF9zZWcs DQo+ID4gICAJCXN0cnVjdCBydGVfbWVtcG9vbCAqbXBsID0gcnhfc2VnW3NlZ19pZHhdLm1wOw0K PiA+ICAgCQl1aW50MzJfdCBsZW5ndGggPSByeF9zZWdbc2VnX2lkeF0ubGVuZ3RoOw0KPiA+ICAg CQl1aW50MzJfdCBvZmZzZXQgPSByeF9zZWdbc2VnX2lkeF0ub2Zmc2V0Ow0KPiA+ICsJCXVpbnQz Ml90IHByb3RvX2hkciA9IHJ4X3NlZ1tzZWdfaWR4XS5wcm90b19oZHI7DQo+ID4NCj4gPiAgIAkJ aWYgKG1wbCA9PSBOVUxMKSB7DQo+ID4gICAJCQlSVEVfRVRIREVWX0xPRyhFUlIsICJudWxsIG1l bXBvb2wgcG9pbnRlclxuIik7DQo+IEBAIC0xNjk0LDEzDQo+ID4gKzE2OTUsMzggQEAgcnRlX2V0 aF9yeF9xdWV1ZV9jaGVja19zcGxpdChjb25zdCBzdHJ1Y3QNCj4gcnRlX2V0aF9yeHNlZ19zcGxp dCAqcnhfc2VnLA0KPiA+ICAgCQl9DQo+ID4gICAJCW9mZnNldCArPSBzZWdfaWR4ICE9IDAgPyAw IDogUlRFX1BLVE1CVUZfSEVBRFJPT007DQo+ID4gICAJCSptYnBfYnVmX3NpemUgPSBydGVfcGt0 bWJ1Zl9kYXRhX3Jvb21fc2l6ZShtcGwpOw0KPiA+IC0JCWxlbmd0aCA9IGxlbmd0aCAhPSAwID8g bGVuZ3RoIDogKm1icF9idWZfc2l6ZTsNCj4gPiAtCQlpZiAoKm1icF9idWZfc2l6ZSA8IGxlbmd0 aCArIG9mZnNldCkgew0KPiA+IC0JCQlSVEVfRVRIREVWX0xPRyhFUlIsDQo+ID4gLQkJCQkgICAg ICAgIiVzIG1idWZfZGF0YV9yb29tX3NpemUgJXUgPCAldQ0KPiAoc2VnbWVudCBsZW5ndGg9JXUg KyBzZWdtZW50IG9mZnNldD0ldSlcbiIsDQo+ID4gLQkJCQkgICAgICAgbXBsLT5uYW1lLCAqbWJw X2J1Zl9zaXplLA0KPiA+IC0JCQkJICAgICAgIGxlbmd0aCArIG9mZnNldCwgbGVuZ3RoLCBvZmZz ZXQpOw0KPiA+IC0JCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArCQlpZiAocHJvdG9faGRyID09IFJU RV9QVFlQRV9VTktOT1dOKSB7DQo+ID4gKwkJCS8qIFNwbGl0IGF0IGZpeGVkIGxlbmd0aC4gKi8N Cj4gPiArCQkJbGVuZ3RoID0gbGVuZ3RoICE9IDAgPyBsZW5ndGggOiAqbWJwX2J1Zl9zaXplOw0K PiA+ICsJCQlpZiAoKm1icF9idWZfc2l6ZSA8IGxlbmd0aCArIG9mZnNldCkgew0KPiA+ICsJCQkJ UlRFX0VUSERFVl9MT0coRVJSLA0KPiA+ICsJCQkJCSIlcyBtYnVmX2RhdGFfcm9vbV9zaXplICV1 IDwgJXUNCj4gKHNlZ21lbnQgbGVuZ3RoPSV1ICsgc2VnbWVudCBvZmZzZXQ9JXUpXG4iLA0KPiA+ ICsJCQkJCW1wbC0+bmFtZSwgKm1icF9idWZfc2l6ZSwNCj4gPiArCQkJCQlsZW5ndGggKyBvZmZz ZXQsIGxlbmd0aCwgb2Zmc2V0KTsNCj4gPiArCQkJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsJCQl9 DQo+ID4gKwkJfSBlbHNlIHsNCj4gPiArCQkJLyogU3BsaXQgYWZ0ZXIgc3BlY2lmaWVkIHByb3Rv Y29sIGhlYWRlci4gKi8NCj4gPiArCQkJaWYgKCEocHJvdG9faGRyICYNCj4gUlRFX0JVRkZFUl9T UExJVF9QUk9UT19IRFJfTUFTSykpIHsNCj4gDQo+IFRoZSBjb25kaXRpb24gbG9va3Mgc3VzcGlj aW91cy4gSXQgd2lsbCBiZSB0cnVlIGlmIHByb3RvX2hkciBoYXMgbm8gc2luZ2xlIGJpdA0KPiBm cm9tIHRoZSBtYXNrLiBJIGd1ZXNzIGl0IGlzIG5vdCB0aGUgaW50ZW50Lg0KDQpBY3R1YWxseSBp dCBpcyB0aGUgaW50ZW50Li4uIEhlcmUgdGhlIG1hc2sgaXMgdXNlZCB0byBjaGVjayBpZiBwcm90 b19oZHINCmJlbG9uZ3MgdG8gdGhlIGlubmVyL291dGVyIEwyL0wzL0w0IGNhcGFiaWxpdHkgd2Ug ZGVmaW5lZC4gQW5kIHdoaWNoDQpwcm90b19oZHIgaXMgc3VwcG9ydGVkIGJ5IHRoZSBOSUMgd2ls bCBiZSBjaGVja2VkIGluIHRoZSBQTUQgbGF0ZXIuDQoNCj4gSSBndWVzcyB0aGUgY29uZGl0aW9u IHNob3VsZCBiZQ0KPiAgICBwcm90b19oZHIgJiB+UlRFX0JVRkZFUl9TUExJVF9QUk9UT19IRFJf TUFTSyBpLmUuIHRoZXJlIGlzDQo+IHVuc3VwcG9ydGVkIGJpdHMgaW4gcHJvdG9faGRyDQo+IA0K PiBJTUhPIHdlIG5lZWQgZXh0cmEgZmllbGQgaW4gZGV2X2luZm8gdG8gcmVwb3J0IHN1cHBvcnRl ZCBwcm90b2NvbHMgdG8gc3BsaXQNCj4gb24uIE9yIGEgbmV3IEFQSSB0byBnZXQgYW4gYXJyYXkg c2ltaWxhciB0byBwdHlwZSBnZXQuDQo+IE1heSBiZSBhIG5ldyBBUEkgaXMgYSBiZXR0ZXIgY2hv aWNlIHRvIG5vdCBvdmVybG9hZCBkZXZfaW5mbyBhbmQgdG8gYmUgbW9yZQ0KPiBmbGV4aWJsZSBp biByZXBvcnRpbmcuDQoNClRoYW5rcyBmb3IgeW91ciBzdWdnZXN0aW9uLg0KSGVyZSBJIGhvcGUg dG8gY29uZmlybSB0aGUgaW50ZW50IG9mIGRldl9pbmZvIG9yIEFQSSB0byBleHBvc2UgdGhlIHN1 cHBvcnRlZCBwcm90b19oZHIgb2YgZHJpdmVyLg0KSXMgaXQgZm9yIHRoZSBwcm9faGRyIGNoZWNr IGluIHRoZSBydGVfZXRoX3J4X3F1ZXVlX2NoZWNrX3NwbGl0KCk/DQpJZiBzbywgY291bGQgd2Ug anVzdCBjaGVjayB3aGV0aGVyIHByb19oZHJzIGNvbmZpZ3VyZWQgYmVsb25ncyB0byBMMi9MMy9M NCBpbiBsaWIsIGFuZCBjaGVjayB0aGUNCmNhcGFiaWxpdHkgaW4gUE1EPyBUaGlzIGlzIHdoYXQg dGhlIGN1cnJlbnQgZGVzaWduIGRvZXMuDQoNCkFjdHVhbGx5IEkgaGF2ZSBhbm90aGVyIHF1ZXN0 aW9uLCBkbyB3ZSBuZWVkIGEgQVBJIG9yIGRldl9pbmZvIHRvIGV4cG9zZSB3aGljaCBidWZmZXIg c3BsaXQgdGhlIGRyaXZlciBzdXBwb3J0cy4NCmkuZS4gbGVuZ3RoIGJhc2VkIG9yIHByb3RvX2hk ciBiYXNlZC4gQmVjYXVzZSBpdCByZXF1aXJlcyBkaWZmZXJlbnQgZmllbGRzIHRvIGJlIGNvbmZp Z3VyZWQNCmluIFJYIHBhY2tldCBzZWdtZW50Lg0KDQpIb3BlIHRvIGdldCB5b3VyIGluc2lnaHRz LiA6KQ0KDQo+IA0KPiA+ICsJCQkJUlRFX0VUSERFVl9MT0coRVJSLA0KPiA+ICsJCQkJCSJQcm90 b2NvbCBoZWFkZXIgJXUgbm90DQo+IHN1cHBvcnRlZClcbiIsDQo+ID4gKwkJCQkJcHJvdG9faGRy KTsNCj4gDQo+IEkgdGhpbmsgaXQgd291bGQgYmUgdXNlZnVsIHRvIGxvZyB1bnN1cHBvcnRlZCBi aXRzIG9ubHksIGlmIHdlIHNheSBzby4NCg0KVGhlIHNhbWUgYXMgYWJvdmUuDQpUaGFua3MgYWdh aW4gZm9yIHlvdXIgdGltZS4NCg0KUmVnYXJkcywNClh1YW4NCg0KPiANCj4gPiArCQkJCXJldHVy biAtRUlOVkFMOw0KPiA+ICsJCQl9DQo+ID4gKw0KPiA+ICsJCQlpZiAobGVuZ3RoICE9IDApIHsN Cj4gPiArCQkJCVJURV9FVEhERVZfTE9HKEVSUiwgInNlZ21lbnQgbGVuZ3RoDQo+IHNob3VsZCBi ZSBzZXQgdG8gemVybyBpbiBwcm90b2NvbCBoZWFkZXIgIg0KPiA+ICsJCQkJCSAgICAgICAiYmFz ZWQgYnVmZmVyIHNwbGl0XG4iKTsNCj4gPiArCQkJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsJCQl9 DQo+ID4gKw0KPiA+ICsJCQlpZiAoKm1icF9idWZfc2l6ZSA8IG9mZnNldCkgew0KPiA+ICsJCQkJ UlRFX0VUSERFVl9MT0coRVJSLA0KPiA+ICsJCQkJCQkiJXMNCj4gbWJ1Zl9kYXRhX3Jvb21fc2l6 ZSAldSA8ICV1IHNlZ21lbnQgb2Zmc2V0KVxuIiwNCj4gPiArCQkJCQkJbXBsLT5uYW1lLCAqbWJw X2J1Zl9zaXplLA0KPiA+ICsJCQkJCQlvZmZzZXQpOw0KPiA+ICsJCQkJcmV0dXJuIC1FSU5WQUw7 DQo+ID4gKwkJCX0NCj4gPiAgIAkJfQ0KPiA+ICAgCX0NCj4gPiAgIAlyZXR1cm4gMDsNCj4gPiBk aWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggYi9saWIvZXRoZGV2L3J0ZV9ldGhk ZXYuaCBpbmRleA0KPiA+IDA0Y2ZmOGVlMTAuLjBjZDlkZDZjYzAgMTAwNjQ0DQo+ID4gLS0tIGEv bGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPiArKysgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYu aA0KPiA+IEBAIC0xMTg3LDYgKzExODcsOSBAQCBzdHJ1Y3QgcnRlX2V0aF90eG1vZGUgew0KPiA+ ICAgICogICBtYnVmKSB0aGUgZm9sbG93aW5nIGRhdGEgd2lsbCBiZSBwdXNoZWQgdG8gdGhlIG5l eHQgc2VnbWVudA0KPiA+ICAgICogICB1cCB0byBpdHMgb3duIGxlbmd0aCwgYW5kIHNvIG9uLg0K PiA+ICAgICoNCj4gPiArICogLSBUaGUgcHJvdG9faGRycyBpbiB0aGUgZWxlbWVudHMgZGVmaW5l IHRoZSBzcGxpdCBwb3NpdGlvbiBvZg0KPiA+ICsgKiAgIHJlY2VpdmVkIHBhY2tldHMuDQo+ID4g KyAqDQo+ID4gICAgKiAtIElmIHRoZSBsZW5ndGggaW4gdGhlIHNlZ21lbnQgZGVzY3JpcHRpb24g ZWxlbWVudCBpcyB6ZXJvDQo+ID4gICAgKiAgIHRoZSBhY3R1YWwgYnVmZmVyIHNpemUgd2lsbCBi ZSBkZWR1Y2VkIGZyb20gdGhlIGFwcHJvcHJpYXRlDQo+ID4gICAgKiAgIG1lbW9yeSBwb29sIHBy b3BlcnRpZXMuDQo+ID4gQEAgLTExOTcsMTQgKzEyMDAsMzcgQEAgc3RydWN0IHJ0ZV9ldGhfdHht b2RlIHsNCj4gPiAgICAqICAgICAtIHBvb2wgZnJvbSB0aGUgbGFzdCB2YWxpZCBlbGVtZW50DQo+ ID4gICAgKiAgICAgLSB0aGUgYnVmZmVyIHNpemUgZnJvbSB0aGlzIHBvb2wNCj4gPiAgICAqICAg ICAtIHplcm8gb2Zmc2V0DQo+ID4gKyAqDQo+ID4gKyAqIC0gTGVuZ3RoIGJhc2VkIGJ1ZmZlciBz cGxpdDoNCj4gPiArICogICAgIC0gbXAsIGxlbmd0aCwgb2Zmc2V0IHNob3VsZCBiZSBjb25maWd1 cmVkLg0KPiA+ICsgKiAgICAgLSBUaGUgcHJvdG9faGRyIGZpZWxkIHNob3VsZCBub3QgYmUgY29u ZmlndXJlZC4NCj4gPiArICoNCj4gPiArICogLSBQcm90b2NvbCBoZWFkZXIgYmFzZWQgYnVmZmVy IHNwbGl0Og0KPiA+ICsgKiAgICAgLSBtcCwgb2Zmc2V0LCBwcm90b19oZHIgc2hvdWxkIGJlIGNv bmZpZ3VyZWQuDQo+ID4gKyAqICAgICAtIFRoZSBsZW5ndGggZmllbGQgc2hvdWxkIG5vdCBiZSBj b25maWd1cmVkLg0KPiA+ICAgICovDQo+ID4gICBzdHJ1Y3QgcnRlX2V0aF9yeHNlZ19zcGxpdCB7 DQo+ID4gICAJc3RydWN0IHJ0ZV9tZW1wb29sICptcDsgLyoqPCBNZW1vcnkgcG9vbCB0byBhbGxv Y2F0ZSBzZWdtZW50DQo+IGZyb20uICovDQo+ID4gICAJdWludDE2X3QgbGVuZ3RoOyAvKio8IFNl Z21lbnQgZGF0YSBsZW5ndGgsIGNvbmZpZ3VyZXMgc3BsaXQgcG9pbnQuICovDQo+ID4gICAJdWlu dDE2X3Qgb2Zmc2V0OyAvKio8IERhdGEgb2Zmc2V0IGZyb20gYmVnaW5uaW5nIG9mIG1idWYgZGF0 YSBidWZmZXIuDQo+ICovDQo+ID4gLQl1aW50MzJfdCByZXNlcnZlZDsgLyoqPCBSZXNlcnZlZCBm aWVsZC4gKi8NCj4gPiArCXVpbnQzMl90IHByb3RvX2hkcjsgLyoqPCBJbm5lci9vdXRlciBMMi9M My9MNCBwcm90b2NvbCBoZWFkZXIsDQo+ID4gK2NvbmZpZ3VyZXMgc3BsaXQgcG9pbnQuICovDQo+ ID4gICB9Ow0KPiA+DQo+ID4gKy8qIEJ1ZmZlciBzcGxpdCBwcm90b2NvbCBoZWFkZXIgY2FwYWJp bGl0eS4gKi8gI2RlZmluZQ0KPiA+ICtSVEVfQlVGRkVSX1NQTElUX1BST1RPX0hEUl9NQVNLICgg XA0KPiA+ICsJUlRFX1BUWVBFX0wyX0VUSEVSIHwgXA0KPiA+ICsJUlRFX1BUWVBFX0wzX0lQVjQg fCBcDQo+ID4gKwlSVEVfUFRZUEVfTDNfSVBWNiB8IFwNCj4gPiArCVJURV9QVFlQRV9MNF9UQ1Ag fCBcDQo+ID4gKwlSVEVfUFRZUEVfTDRfVURQIHwgXA0KPiA+ICsJUlRFX1BUWVBFX0w0X1NDVFAg fCBcDQo+ID4gKwlSVEVfUFRZUEVfSU5ORVJfTDJfRVRIRVIgfCBcDQo+ID4gKwlSVEVfUFRZUEVf SU5ORVJfTDNfSVBWNCB8IFwNCj4gPiArCVJURV9QVFlQRV9JTk5FUl9MM19JUFY2IHwgXA0KPiA+ ICsJUlRFX1BUWVBFX0lOTkVSX0w0X1RDUCB8IFwNCj4gPiArCVJURV9QVFlQRV9JTk5FUl9MNF9V RFAgfCBcDQo+ID4gKwlSVEVfUFRZUEVfSU5ORVJfTDRfU0NUUCkNCj4gPiArDQo+ID4gICAvKioN Cj4gPiAgICAqIEB3YXJuaW5nDQo+ID4gICAgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0 dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQoNCg==