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 277ECA0540; Thu, 22 Sep 2022 05:13:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C2D2540691; Thu, 22 Sep 2022 05:13:14 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 0BFFF4067C for ; Thu, 22 Sep 2022 05:13:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663816393; x=1695352393; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/GvKCky0X5Om6S7VNvIFn9UCE0t9RxphEXC2o8DfU8o=; b=M9qSspzOom2GeLAxLhWTTEP6cMEsWxmbrjoU2RDKAH9o9Y+plMmILjgk HPwygWVefZvBfGpLS4TAJYbzulMqqg9h9KTLETMIm3ZDETdHJGWfAXkWV eHnzxQJf0tTBrgdFhtuqEOziWPAQjUzhjshPZ31i5r++Fv9Lpayw6mrjn 94GjobCnKyBGdTAKf2XQq9zM25P/OSocu3YqLCYB9R+OGPqfCM3txan17 Cvg0oaPFS+CILX63nZKGcgC+qKmN/OduVc0B/DyVm6T6xFZME4ZNTIoqy a5vPv2mXujb1OvcsxvyDad+QlX7M8/BVjrPnQUadTNm+VZtugb6rOJ4oS A==; X-IronPort-AV: E=McAfee;i="6500,9779,10477"; a="301028198" X-IronPort-AV: E=Sophos;i="5.93,335,1654585200"; d="scan'208";a="301028198" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2022 20:13:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,335,1654585200"; d="scan'208";a="864686680" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga006.fm.intel.com with ESMTP; 21 Sep 2022 20:13:11 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 21 Sep 2022 20:13:12 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 21 Sep 2022 20:13:12 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 21 Sep 2022 20:13:12 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.105) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 21 Sep 2022 20:13:10 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JV+4G6Vf7lzds0vWTK4j78Pv2BTvgp+Q3FbfEJ9a9Py1Q3dEEvC+eqzkKHIBZqQwJXSbblnHIzFhHXqRmT5wWFBfXn9MM73Z2JhoPaVomIMTAPjfEIFkBJh46SSIM4dVu3gSjF9vLXJ99So/Sf/q9yU0WpfS0oBf0ZsKD0vmz4gDfHLO7Bh7A35lF8rdCOLUhqv5Xn0QUCYP20zyGp7lnVr14QSWwvmsw5+OEdgMnRlVtgudZuhCylSf3Ud2XXhiKHvurSnru8l0HSe6iWB2KwhfdNiHMDaaQYqr0S3+BUHYFoSguFjr4OzG2H0fVWAkQOYwWbxB/VYws1aDNf6Ipw== 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=/GvKCky0X5Om6S7VNvIFn9UCE0t9RxphEXC2o8DfU8o=; b=YsYaKuDi5olLvI6wEin0pyy5eVNmtHGM/oUOlUyzvYjnhKjQXQUVFyZ4WeQxIxgFEuk/pkaoXgjCDHsNZ7Dcx4i0Fk5pRlNBsKrPXODJlkdLM1s69lFQ7ujyBOs0VZkn35GhVeE0kGJRG34S01qCjVh120mJBgkltHT6EpaTawBhqCEEsgigYZu6IxjF3e58K9ZQ7hzau2CngESic9wNO/OcU0Hs6D/O/ejIK1oUMZwOjG4RYSzppXXp4riJMMYNyMWHK6rxpyNmvOHvv7ZNuRsi+Ky9Orry8Xut03c9wZJYNRmGcgKMHr140g9ErbkI4gH7b0stepvRRNOv4/nVwQ== 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 PH7PR11MB6953.namprd11.prod.outlook.com (2603:10b6:510:204::6) by PH8PR11MB6926.namprd11.prod.outlook.com (2603:10b6:510:226::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.19; Thu, 22 Sep 2022 03:13:02 +0000 Received: from PH7PR11MB6953.namprd11.prod.outlook.com ([fe80::b4ae:1525:a457:6ad6]) by PH7PR11MB6953.namprd11.prod.outlook.com ([fe80::b4ae:1525:a457:6ad6%7]) with mapi id 15.20.5632.018; Thu, 22 Sep 2022 03:13:02 +0000 From: "Wang, YuanX" To: Andrew Rybchenko , "dev@dpdk.org" , Thomas Monjalon , Ferruh Yigit CC: "mdr@ashroe.eu" , "Li, Xiaoyun" , "Singh, Aman Deep" , "Zhang, Yuying" , "Zhang, Qi Z" , "Yang, Qiming" , "jerinjacobk@gmail.com" , "viacheslavo@nvidia.com" , "stephen@networkplumber.org" , "Ding, Xuan" , "hpothula@marvell.com" , "Tang, Yaqi" , Wenxuan Wu Subject: RE: [PATCH v3 2/4] ethdev: introduce protocol hdr based buffer split Thread-Topic: [PATCH v3 2/4] ethdev: introduce protocol hdr based buffer split Thread-Index: AQHYvr58j4LacoqSlU+GCOBl/R4u763bvUYAgARsDQCAB76+gIAAgXwA Date: Thu, 22 Sep 2022 03:13:02 +0000 Message-ID: References: <20220812181552.2908067-1-yuanx.wang@intel.com> <20220902191027.666923-1-yuanx.wang@intel.com> <20220902191027.666923-3-yuanx.wang@intel.com> <761509b6-4a9a-72a1-2ee9-cd3555c85fd8@oktetlabs.ru> <45b19451-58ea-870d-f59b-e4acd64b6c16@oktetlabs.ru> In-Reply-To: <45b19451-58ea-870d-f59b-e4acd64b6c16@oktetlabs.ru> 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB6953:EE_|PH8PR11MB6926:EE_ x-ms-office365-filtering-correlation-id: b2ba7223-b25d-41ef-0238-08da9c485c15 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4OwfbF4T1EIzOyrLJ+ajKnk4Znz6m01IKyAcoahNLE6ZGJ0TfcxLVgbn/LVBpv7FXKMSAOWSiCmDFiu68YLTAE0FpiDusgoJWcim6ox1LpFZISnzFPNYPAo85WQkXD7jZpnI4Wh7quewkv+KOv2CtmnbGJe5zyPPCI7plAvqwsLKGf3/ixvyYgHFbeQ5DkmMSqyWKrNrCVCtJ8WFPWScFEXK+m3NqIDyThYuQthzgHD9BWL/YpeSuyCEGVHj17ECXdoC9v+gVLZrz7NBHQQZIsgCLVTWuOABJpQ+Y9PH6oLW5a5MgLC71z0UukTL4GwzbRgloYkYa23HYcgtIAbER4TJGzzJBntVudyWFkr7QTv+WZl8VGL5CPwUhQedR7dPZNPV8ginQLPpQHwLdr+GMgnRSR36iD3q4Ed6eAdFSsMr6Dr8ezA79eg+b9nfUgtXAkqC9nLnBLFQsTgg36X5tG/0hbjBmcIOYBn1rG47Z8XoXUsfYDR7c3w3RWNqQdVsRqqKjAjeJWSgrr9qlbsvhj0xSnGGwe901FnJGdQfbizsdfdg6fyU/8kGzBP7DaKBulYWW2DjKthFrmXH42XPDpJNID6H5LxO3bksUQbO7Riit4PDZJUqHc+7VvqPVoiSmy9NIGDF4vwAbfGH4r+uROTycZNsoWWXGI7SCKPGRMlhbXv+n3jMWSPHMJoMD4jOEt/em4mBntwBR1kjh4MLcqywiIRrp86Yd5ebV6+4i13Twl3CAODVKYSasCtBD/W4EdlayJCpaVWogEJQ2LMhtA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR11MB6953.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(396003)(136003)(376002)(366004)(39860400002)(346002)(451199015)(71200400001)(38100700002)(66446008)(6506007)(122000001)(66476007)(86362001)(4326008)(8676002)(82960400001)(33656002)(30864003)(2906002)(5660300002)(478600001)(66946007)(66556008)(52536014)(83380400001)(316002)(76116006)(110136005)(8936002)(54906003)(107886003)(64756008)(186003)(38070700005)(55016003)(41300700001)(26005)(7696005)(9686003)(53546011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dUZ0TGFwWElsUFpuRGp1MWhRZDdlN09IMFdtZElESmhpc0EzazFQSVdlVHVS?= =?utf-8?B?emJiNWtydzNsb21KY3pIVTZDR0hVcE91TllOc1J4VloxOXRKMjVtWTlYM1Jz?= =?utf-8?B?QXNVRlQ2WlBMWWIrcHlNNVVobm43bjFXU3d5MjlwRTNUbElzMzhSVXlITlN5?= =?utf-8?B?MVRNQ2FTWGF3YlpvRjE2RHA3M1VsZUdycnpjQ1R2ZGNvaWFORG9vaXdGTlRR?= =?utf-8?B?ZjM0elFWbGd1QVZhamhsNVV5a3ZaalNXMitJcmY3b0FLUzlPWWFJbStISUdL?= =?utf-8?B?L29CV1ExeC9MbllrM0Q1aVM2WmRuVXd0WHdPTkZqRVNMMm5GM0FTRmRjN01Z?= =?utf-8?B?Tm1UOXJjK1Q0T055SENZaHNmM3AxdXl2aUhPelVpUjZMYjV1ZXhEeTR0Ti9D?= =?utf-8?B?dzNWaWpJUTFjMWRaTEJxNVdGK20xc2ZubmNKeTBySlVzejNvcG00QzhpSWk3?= =?utf-8?B?bzVMYlZiYlZiT3VtTDBFZVhUV2dOeTFFNVMrV0FnTGgyS011QmlkQnZQMlk2?= =?utf-8?B?SUdiTXMvM1FMOVQ3aHNKZkNwTjhHM0JKUXVtUXdqakl3NjducGlVdVl5ZjZY?= =?utf-8?B?eWd0TW44OWFkODczUnVTVk1ibkNEeSs5aHB2QUpKYlBDRExQcWM3N2svWVhY?= =?utf-8?B?cmNibU1lT3lwNnZ2cVlTaFdVRmk2aWdQTncwU2dxVnNTVy92dzB3TTBNb0Fz?= =?utf-8?B?SnR0dGNkbVFUZjM3dVJYU2tzUjV5RUVQVThJcEhoOWlUMkRML3NCOHgrRnBs?= =?utf-8?B?aWN4SVB1SzVGbDJjZFQ5dCsyeXZWdUFtNDZ5OW5penFIZ2lYUStmWnRMbzh1?= =?utf-8?B?allObURETS8wR1oyYmNxRzVHVFJxMjhZcmIvUzA3MVRBQm1BcnRTR092b2pB?= =?utf-8?B?K1dkNTdFRHFxdGErSTBHaElGeXBhU042MW5sQjBJbUc3bE5UZUl4cnpzVkJB?= =?utf-8?B?Y3JtdG1OUGk4SCtuSkhtWlFGcXNaeWJkazcxUFJzR1pERUF0K0IvSmFDOGxh?= =?utf-8?B?R2phNngrMDY3dlgvWEl5UWh3blFPdnVMeDVIN0lRUkl2WG5aMzRlM1Zsb0dI?= =?utf-8?B?bVF1Nll5RXRoWmVEb0lvVFJIdVBoY3h0aXBSQ0VMU1JrSjlFMzRLVkNIclJt?= =?utf-8?B?L01BY09Xb0xUb1IwVWdub0szaEtyRlFIdy9nQXJVNStsV05OQUx2M0pJRlh3?= =?utf-8?B?ekNhSWgzN0g5RGl2TlV1SXI5bzQ2S2pPaXY4VEJzUzVyUHVmNlF6NEJqTkth?= =?utf-8?B?VWVMOUtYSnpTOU9YajRUclBCc0ZoWENpRmpyNUZQRVdUTjlBbmtRYm5sMng4?= =?utf-8?B?MjBUREVyMzZEWDIzM2NGYXF5RER2dURlWWZ4TUFQYmRYVFk1MHFZODFtY1J0?= =?utf-8?B?N3pSSnM2SjIzaVltNWZURWxjbFR0VmlNdVBGNnIrM3ZMeDYxd2JLWjFoSU9i?= =?utf-8?B?WTVNdm05a3hrN3RjTmRkREVmK0FWazJCMFZRR1dPQXBwZGp4Z2RBVlNpMVJs?= =?utf-8?B?RndLaU9VUXh3Y2NrRGVOamRVU3d3V3RCeTdCMDlTZy9wT1hlRll3UEdFbTZE?= =?utf-8?B?LzUyQWZnSG9ZbXNROHlCWjQ1cDFEOTlMNkJzVG1HVEN5WXRvcDZGSWZRZisy?= =?utf-8?B?ZTFjUXNhRGtPWkc3QkZZRjd3TlZuRmhvb05weXRybDlwQWtnRnZFdi9PTzFh?= =?utf-8?B?UnZTR05JbXZYY0xPTHhiZUtFTGEwQnBreFlWQ3hZSUw0cklGa1lVT0F1THdt?= =?utf-8?B?UnIydUdDNXZNd21uL1pjYU4vSExYaE92d2NhLzBOaldMNkwwdDlsb21UZmpS?= =?utf-8?B?OW5aM09BQzBRdjBLcjFmbHlRVlRzeG1uUGRDMmpBeE5BaUJzaGJkeElRbldw?= =?utf-8?B?dEN5M3c0MHNtZUg2YjRDVzMyNHpPc0xRR3R1TkJ2NWV6QnVBamNqUEFUdkdV?= =?utf-8?B?Y2dCUVRRcjRIQTlLRVM3MFl5NXl4dTVEMjZuYklmS0I5WG9pY1MrUGF0SitR?= =?utf-8?B?enIwR2VIVUdDbW5IQVRleHVMNE5kdWhsU29yK2E3Z1FHYmtwQmRJZ3d3T3Fw?= =?utf-8?B?T2E3T0dFRHJqZm9zZGtTS0phZUlnR2xCZnZ3MUljcUI0a1huTmNhcnIvZTJi?= =?utf-8?Q?WUBDQvsaz2LPO82DEzFLL8HeK?= 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: PH7PR11MB6953.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2ba7223-b25d-41ef-0238-08da9c485c15 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Sep 2022 03:13:02.2337 (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: C3y5WU/SyTz7z0E7mlWzXMFu2yNYI3IXvBRy7rR4cVokiIvHqWq6dHLqFtroLhlwLLRxGuZacTObZPsomIiDIg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6926 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 dyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBTZW50OiBUdWVz ZGF5LCBTZXB0ZW1iZXIgMjAsIDIwMjIgMTozNSBQTQ0KPiBUbzogV2FuZywgWXVhblggPHl1YW54 LndhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBUaG9tYXMNCj4gTW9uamFsb24gPHRob21h c0Btb25qYWxvbi5uZXQ+OyBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEB4aWxpbnguY29tPg0K PiBDYzogbWRyQGFzaHJvZS5ldTsgTGksIFhpYW95dW4gPHhpYW95dW4ubGlAaW50ZWwuY29tPjsg U2luZ2gsIEFtYW4gRGVlcA0KPiA8YW1hbi5kZWVwLnNpbmdoQGludGVsLmNvbT47IFpoYW5nLCBZ dXlpbmcgPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+Ow0KPiBaaGFuZywgUWkgWiA8cWkuei56aGFu Z0BpbnRlbC5jb20+OyBZYW5nLCBRaW1pbmcgPHFpbWluZy55YW5nQGludGVsLmNvbT47DQo+IGpl cmluamFjb2JrQGdtYWlsLmNvbTsgdmlhY2hlc2xhdm9AbnZpZGlhLmNvbTsNCj4gc3RlcGhlbkBu ZXR3b3JrcGx1bWJlci5vcmc7IERpbmcsIFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+Ow0KPiBo cG90aHVsYUBtYXJ2ZWxsLmNvbTsgVGFuZywgWWFxaSA8eWFxaS50YW5nQGludGVsLmNvbT47IFdl bnh1YW4gV3UNCj4gPHdlbnh1YW54Lnd1QGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRD SCB2MyAyLzRdIGV0aGRldjogaW50cm9kdWNlIHByb3RvY29sIGhkciBiYXNlZCBidWZmZXIgc3Bs aXQNCj4gDQo+IE9uIDkvMTYvMjIgMTE6MzgsIFdhbmcsIFl1YW5YIHdyb3RlOg0KPiA+IEhpIEFu ZHJldywNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBB bmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gPj4gU2Vu dDogTW9uZGF5LCBTZXB0ZW1iZXIgMTIsIDIwMjIgNzo0NyBQTQ0KPiA+PiBUbzogV2FuZywgWXVh blggPHl1YW54LndhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBUaG9tYXMNCj4gTW9uamFs b24NCj4gPj4gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdp dEB4aWxpbnguY29tPg0KPiA+PiBDYzogbWRyQGFzaHJvZS5ldTsgTGksIFhpYW95dW4gPHhpYW95 dW4ubGlAaW50ZWwuY29tPjsgU2luZ2gsIEFtYW4NCj4gPj4gRGVlcCA8YW1hbi5kZWVwLnNpbmdo QGludGVsLmNvbT47IFpoYW5nLCBZdXlpbmcNCj4gPj4gPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+ OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBZYW5nLA0KPiA+PiBRaW1pbmcg PHFpbWluZy55YW5nQGludGVsLmNvbT47IGplcmluamFjb2JrQGdtYWlsLmNvbTsNCj4gPj4gdmlh Y2hlc2xhdm9AbnZpZGlhLmNvbTsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IERpbmcsIFh1 YW4NCj4gPj4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBocG90aHVsYUBtYXJ2ZWxsLmNvbTsgVGFu ZywgWWFxaQ0KPiA+PiA8eWFxaS50YW5nQGludGVsLmNvbT47IFdlbnh1YW4gV3UgPHdlbnh1YW54 Lnd1QGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAyLzRdIGV0aGRldjog aW50cm9kdWNlIHByb3RvY29sIGhkciBiYXNlZA0KPiA+PiBidWZmZXIgc3BsaXQNCj4gPj4NCj4g Pj4gT24gOS8yLzIyIDIyOjEwLCBZdWFuIFdhbmcgd3JvdGU6DQo+ID4+PiBDdXJyZW50bHksIFJ4 IGJ1ZmZlciBzcGxpdCBzdXBwb3J0cyBsZW5ndGggYmFzZWQgc3BsaXQuIFdpdGggUngNCj4gPj4+ IHF1ZXVlIG9mZmxvYWQgUlRFX0VUSF9SWF9PRkZMT0FEX0JVRkZFUl9TUExJVCBlbmFibGVkIGFu ZCBSeA0KPiBwYWNrZXQNCj4gPj4gc2VnbWVudA0KPiA+Pj4gY29uZmlndXJlZCwgUE1EIHdpbGwg YmUgYWJsZSB0byBzcGxpdCB0aGUgcmVjZWl2ZWQgcGFja2V0cyBpbnRvDQo+ID4+PiBtdWx0aXBs ZSBzZWdtZW50cy4NCj4gPj4+DQo+ID4+PiBIb3dldmVyLCBsZW5ndGggYmFzZWQgYnVmZmVyIHNw bGl0IGlzIG5vdCBzdWl0YWJsZSBmb3IgTklDcyB0aGF0IGRvDQo+ID4+PiBzcGxpdCBiYXNlZCBv biBwcm90b2NvbCBoZWFkZXJzLiBHaXZlbiBhbiBhcmJpdHJhcmlseSB2YXJpYWJsZQ0KPiA+Pj4g bGVuZ3RoIGluIFJ4IHBhY2tldCBzZWdtZW50LCBpdCBpcyBhbG1vc3QgaW1wb3NzaWJsZSB0byBw YXNzIGEgZml4ZWQNCj4gPj4+IHByb3RvY29sIGhlYWRlciB0byBkcml2ZXIuIEJlc2lkZXMsIHRo ZSBleGlzdGVuY2Ugb2YgdHVubmVsaW5nDQo+ID4+PiByZXN1bHRzIGluIHRoZSBjb21wb3NpdGlv biBvZiBhIHBhY2tldCBpcyB2YXJpb3VzLCB3aGljaCBtYWtlcyB0aGUNCj4gc2l0dWF0aW9uIGV2 ZW4gd29yc2UuDQo+ID4+Pg0KPiA+Pj4gVGhpcyBwYXRjaCBleHRlbmRzIGN1cnJlbnQgYnVmZmVy IHNwbGl0IHRvIHN1cHBvcnQgcHJvdG9jb2wgaGVhZGVyDQo+ID4+PiBiYXNlZCBidWZmZXIgc3Bs aXQuIEEgbmV3IHByb3RvX2hkciBmaWVsZCBpcyBpbnRyb2R1Y2VkIGluIHRoZQ0KPiA+Pj4gcmVz ZXJ2ZWQgZmllbGQgb2YgcnRlX2V0aF9yeHNlZ19zcGxpdCBzdHJ1Y3R1cmUgdG8gc3BlY2lmeSBw cm90b2NvbA0KPiA+Pj4gaGVhZGVyLiBUaGUgcHJvdG9faGRyIGZpZWxkIGRlZmluZXMgdGhlIHNw bGl0IHBvc2l0aW9uIG9mIHBhY2tldCwNCj4gPj4+IHNwbGl0dGluZyB3aWxsIGFsd2F5cyBoYXBw ZW5zIGFmdGVyIHRoZSBwcm90b2NvbCBoZWFkZXIgZGVmaW5lZCBpbg0KPiA+Pj4gdGhlIFJ4IHBh Y2tldCBzZWdtZW50LiBXaGVuIFJ4IHF1ZXVlIG9mZmxvYWQNCj4gPj4+IFJURV9FVEhfUlhfT0ZG TE9BRF9CVUZGRVJfU1BMSVQgaXMgZW5hYmxlZCBhbmQgY29ycmVzcG9uZGluZw0KPiA+PiBwcm90 b2NvbA0KPiA+Pj4gaGVhZGVyIGlzIGNvbmZpZ3VyZWQsIGRyaXZlciB3aWxsIHNwbGl0IHRoZSBp bmdyZXNzIHBhY2tldHMgaW50bw0KPiA+Pj4gbXVsdGlwbGUNCj4gPj4gc2VnbWVudHMuDQo+ID4+ Pg0KPiA+Pj4gc3RydWN0IHJ0ZV9ldGhfcnhzZWdfc3BsaXQgew0KPiA+Pj4gICAgICAgICAgIHN0 cnVjdCBydGVfbWVtcG9vbCAqbXA7IC8qIG1lbW9yeSBwb29scyB0byBhbGxvY2F0ZQ0KPiA+Pj4g c2VnbWVudCBmcm9tDQo+ID4+ICovDQo+ID4+PiAgICAgICAgICAgdWludDE2X3QgbGVuZ3RoOyAv KiBzZWdtZW50IG1heGltYWwgZGF0YSBsZW5ndGgsDQo+ID4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25maWd1cmVzIHNwbGl0IHBvaW50ICovDQo+ID4+PiAgICAgICAgICAgdWlu dDE2X3Qgb2Zmc2V0OyAvKiBkYXRhIG9mZnNldCBmcm9tIGJlZ2lubmluZw0KPiA+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2YgbWJ1ZiBkYXRhIGJ1ZmZlciAqLw0KPiA+Pj4gICAg ICAgICAgIHVpbnQzMl90IHByb3RvX2hkcjsgLyogc3VwcG9ydGVkIHB0eXBlIG9mIGEgc3BlY2lm aWMgcG1kLA0KPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJl cyBzcGxpdCBwb2ludC4NCj4gPj4+IAkJCSAgICAgICBJdCBzaG91bGQgYmUgZGVmaW5lZCBieSBS VEVfUFRZUEVfKg0KPiA+Pg0KPiA+PiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCB0aGUgc3Rh dGVtZW50IGlzIGEgYml0IG1pc2xlYWRpbmcgc2luY2UgaXQNCj4gPj4gc2hvdWxkIGJlIGEgYml0 IG1hc2sgb2YgUlRFX1BUWVBFXyogZGVmaW5lcy4gTm90IGV4YWN0bHkgb25lDQo+IFJURV9QVFlQ RV8qLg0KPiA+DQo+ID4gRG8geW91IG1lYW4gdGhhdCBhIHNlZ21lbnQgc2hvdWxkIHN1cHBvcnQg bXVsdGlwbGUgcHJvdG9jb2wgaGVhZGVycywNCj4gc3VjaCBhcyBzcGxpdHRpbmcgYm90aCB0Y3Ag YW5kIHVkcCBoZWFkZXJzPw0KPiANCj4gTm8tbm8uIExvb2suIEluIG9yZGVyIHRvIHNwbGl0IGFm dGVyIHNvbWUgcHJvdG9jb2wsIGZvciBleGFtcGxlIFVEUCwgTklDDQo+IHNob3VsZCByZWNvZ25p Y2UgYWxsIHByZXZpb3VzIHByb3RvY29scy4gTW9yZW92ZXIsIGluIHRoZSBjYXNlIG9mIGEgdHVu ZW5sDQo+IFVEUCBjb3VsZCBiZSBpbm5lciBhbmQgb3V0ZXIuIEF0IHdoaWNoIHBvaW50IHdvdWxk IHlvdSBsaWtlIHRvIHNwbGl0IGlmIE5JQw0KPiBzdXBwb3J0cyBib3RoPw0KPiBBbm90aGVyIGV4 YW1wbGUsIGlmIE5JQyBzdXBwb3J0IHN0cGxpdCBhZnRlciBFdGgtSVB2NC1VRFAgYW5kIGFmdGVy IEV0aC1JUHY2LQ0KPiBVRFAsIGhvdyB0byByZXF1ZXN0IHRvIHNwbGl0IGp1c3QgYWZ0ZXIgRXRo LUlQdjQtVURQLCBidXQgbm90IEV0aC1JUHY2LVVEUD8NCg0KVGhhbmsgeW91IGZvciB5b3VyIHBh dGllbmNlLiANCg0KV2UgaGF2ZSBhIHByb3Bvc2FsIHRvIHNvbHZlIHRoaXMgcHJvYmxlbS4gDQpX ZSBkZWZpbmUgdGhlIHByb3RvX2hkciBhcyBhIGJpdCBtYXNrLiBFYWNoIG1hc2sgc2hvdWxkIGNv bnRhaW4gdGhlIGNvbXBvc2l0aW9uIG9mIHRoZSBwYWNrZXQsIGJ1dCBpbm5lciBhbmQgb3V0ZXIg YXJlIHdyaXR0ZW4gc2VwYXJhdGVseSAodG8gYXZvaWQgdW5uZWNlc3NhcnkgdHJvdWJsZSkuDQpX ZSB1c2UgdGhlIGhpZ2hlc3QgUlRFX1BUWVBFKiBpbiB0aGUgbWFzayB0byBkZWZpbmUgdGhlIHNw bGl0IHBvc2l0aW9uLg0KDQpGb3IgdGhlIGZpcnN0IGV4YW1wbGUsIHNpbmNlIHB0eXBlIGhhcyBk aXN0aW5ndWlzaGVkIGJldHdlZW4gb3V0ZXIgYW5kIGlubmVyLCBleHRlcm5hbCBVRFAgY2FuIGJl IHNpbXBseSB3cml0dGVuIGFzIFJURV9QVFlQRV9MMl9FVEhFUiB8IFJURV9QVFlQRV9MM19JUFY0 X0VYVF9VTktOT1dOIHwgUlRFX1BUWVBFX0w0X1VEUC4NClRoZSBpbm5lciBVRFAgY2FuIGJlIHNp bXBseSB3cml0dGVuIGFzIFJURV9QVFlQRV9UVU5ORUxfR1JFTkFUIHwgUlRFX1BUWVBFX0lOTkVS X0wyX0VUSEVSIHwgUlRFX1BUWVBFX0wzX0lQVjRfRVhUX1VOS05PV04gfCBSVEVfUFRZUEVfSU5O RVJfTDRfVURQLg0KDQogRm9yIHRoZSBzZWNvbmQgZXhhbXBsZSwgRXRoLUlQdjQtVURQIGNhbiBi ZSB3cml0dGVuIGFzIFJURV9QVFlQRV9MMl9FVEhFUiB8IFJURV9QVFlQRV9MM19JUFY0X0VYVF9V TktOT1dOIHwgUlRFX1BUWVBFX0w0X1VEUC4NCiBFdGgtSVB2Ni1VRFAgY2FuIGJlIHdyaXR0ZW4g YXMgUlRFX1BUWVBFX0wyX0VUSEVSIHwgUlRFX1BUWVBFX0wzX0lQVjZfRVhUX1VOS05PV04gfCBS VEVfUFRZUEVfTDRfVURQLg0KDQpXaGF0IGRvIHlvdSB0aGluaz8NCg0KVGhhbmtzLA0KWXVhbg0K DQo+IA0KPiA+DQo+ID4+DQo+ID4+PiAJCQkgICAgICovDQo+ID4+PiB9Ow0KPiA+Pj4NCj4gPj4+ IElmIHByb3RvY29sIGhlYWRlciBzcGxpdCBjYW4gYmUgc3VwcG9ydGVkIGJ5IGEgUE1ELiBUaGUN Cj4gPj4+IHJ0ZV9ldGhfYnVmZmVyX3NwbGl0X2dldF9zdXBwb3J0ZWRfaGRyX3B0eXBlcyBmdW5j dGlvbiBjYW4gYmUgdXNlDQo+IHRvDQo+ID4+PiBvYnRhaW4gYSBsaXN0IG9mIHRoZXNlIHByb3Rv Y29sIGhlYWRlcnMuDQo+ID4+Pg0KPiA+Pj4gRm9yIGV4YW1wbGUsIGxldCdzIHN1cHBvc2Ugd2Ug Y29uZmlndXJlZCB0aGUgUnggcXVldWUgd2l0aCB0aGUNCj4gPj4+IGZvbGxvd2luZyBzZWdtZW50 czoNCj4gPj4+ICAgICAgICAgICBzZWcwIC0gcG9vbDAsIHByb3RvX2hkcjA9UlRFX1BUWVBFX0wz X0lQVjQsIG9mZjA9MkINCj4gPj4+ICAgICAgICAgICBzZWcxIC0gcG9vbDEsIHByb3RvX2hkcjE9 UlRFX1BUWVBFX0w0X1VEUCwgb2ZmMT0xMjhCDQo+ID4+PiAgICAgICAgICAgc2VnMiAtIHBvb2wy LCBvZmYxPTBCDQo+ID4+Pg0KPiA+Pj4gVGhlIHBhY2tldCBjb25zaXN0cyBvZiBNQUNfSVBWNF9V RFBfUEFZTE9BRCB3aWxsIGJlIHNwbGl0IGxpa2UNCj4gPj4NCj4gPj4gV2hhdCBpcyBNQUNfSVBW NF9VRFBfUEFZTE9BRD8gRG8geW91IG1lYW4NCj4gRVRIX0lQVjRfVURQX1BBWUxPQUQ/DQo+ID4N Cj4gPiBUaGFua3MgZm9yIHlvdXIgY29ycmVjdGlvbiwgaXQgc2hvdWxkIGJlIEVUSF9JUFY0X1VE UF9QQVlMT0FELg0KPiA+DQo+ID4+DQo+ID4+PiBmb2xsb3dpbmc6DQo+ID4+PiAgICAgICAgICAg c2VnMCAtIGlwdjQgaGVhZGVyIEAgUlRFX1BLVE1CVUZfSEVBRFJPT00gKyAyIGluIG1idWYgZnJv bQ0KPiA+PiBwb29sMA0KPiA+Pj4gICAgICAgICAgIHNlZzEgLSB1ZHAgaGVhZGVyIEAgMTI4IGlu IG1idWYgZnJvbSBwb29sMQ0KPiA+Pj4gICAgICAgICAgIHNlZzIgLSBwYXlsb2FkIEAgMCBpbiBt YnVmIGZyb20gcG9vbDINCj4gPj4+DQo+ID4+PiBOb3RlOiBOSUMgd2lsbCBvbmx5IGRvIHNwbGl0 IHdoZW4gdGhlIHBhY2tldHMgZXhhY3RseSBtYXRjaCBhbGwgdGhlDQo+ID4+PiBwcm90b2NvbCBo ZWFkZXJzIGluIHRoZSBzZWdtZW50cy4gRm9yIGV4YW1wbGUsIGlmIEFSUCBwYWNrZXRzDQo+ID4+ PiByZWNlaXZlZCB3aXRoIGFib3ZlIGNvbmZpZywgdGhlIE5JQyB3b24ndCBkbyBzcGxpdCBmb3Ig QVJQIHBhY2tldHMNCj4gPj4+IHNpbmNlIGl0IGRvZXMgbm90IGNvbnRhaW5zIGlwdjQgaGVhZGVy IGFuZCB1ZHAgaGVhZGVyLg0KPiA+Pg0KPiA+PiBZb3UgbXVzdCBkZWZpbmUgd2hpY2ggbWVtcG9v bCBpcyB1c2VkIGluIHRoZSBjYXNlLg0KPiA+DQo+ID4gSU1ITyBJIGRvbid0IHRoaW5rIHdlIGNh biBkZWZpbmUgd2hpY2ggbWVtcG9vbCB0byB1c2UsIGl0IGRlcGVuZHMgb24gTklDDQo+IGJlaGF2 aW9yLg0KPiA+IEZvciBvdXIgTklDLCBwYWNrZXRzIHRoYXQgYXJlIHVuYWJsZSB0byBzcGxpdCB3 aWxsIGJlIHB1dCBpbnRvIHRoZSBsYXN0IHZhbGlkDQo+IHBvb2wsIHdpdGggemVybyBvZmZzZXQu DQo+ID4gU28gaGVyZSB3ZSB3b3VsZCBsaWtlIHRvIGRlZmluZSB0byBwdXQgdGhlc2UgcGFja2V0 cyBpbnRvIHRoZSBsYXN0IHZhbGlkDQo+IG1lbXBvb2wsIHdpdGggemVybyBvZmZzZXQuDQo+IA0K PiANCj4gQW55d2F5IEFQSSBzaG91bGQgbm90IGJlIHNpbGVudCBhYm91dCB0aGUgY2FzZSBzaW5j ZSBpdCBpcyB0aGUgZmlyc3QgcXVlc3Rpb24gYXQNCj4gbGVhc3QgaW4gbXkgaGVhZC4gSU1ITyB0 aGUgbGFzdCBzZWdtZW50IGlzIHRoZSBvbmx5IHNlbnNpYmxlIG9wdGlvbiBzaW5jZSBpdCBpcw0K PiB0eXBpY2FsbHkgd2lsbCBiZSBiaWcgZW5vdWdoLiBPdGhlciBtZW1wb29sIGZvciBwcm90b2Nv bCBoZWFkZXJzIGFyZSBsaWtlbHkgdG8NCj4gYmUgc21hbGwuIFNvLCBJIHN1Z2dlc3QgdG8gZGVm aW5lIHRoaXMgd2F5Lg0KPiANCj4gPj4NCj4gPj4+DQo+ID4+PiBOb3cgYnVmZmVyIHNwbGl0IGNh biBiZSBjb25maWd1cmVkIGluIHR3byBtb2Rlcy4gRm9yIGxlbmd0aCBiYXNlZA0KPiA+Pj4gYnVm ZmVyIHNwbGl0LCB0aGUgbXAsIGxlbmd0aCwgb2Zmc2V0IGZpZWxkIGluIFJ4IHBhY2tldCBzZWdt ZW50DQo+ID4+PiBzaG91bGQgYmUgY29uZmlndXJlZCwgd2hpbGUgdGhlIHByb3RvX2hkciBmaWVs ZCB3aWxsIGJlIGlnbm9yZWQuDQo+ID4+PiBGb3IgcHJvdG9jb2wgaGVhZGVyIGJhc2VkIGJ1ZmZl ciBzcGxpdCwgdGhlIG1wLCBvZmZzZXQsIHByb3RvX2hkcg0KPiA+Pj4gZmllbGQgaW4gUnggcGFj a2V0IHNlZ21lbnQgc2hvdWxkIGJlIGNvbmZpZ3VyZWQsIHdoaWxlIHRoZSBsZW5ndGgNCj4gPj4+ IGZpZWxkIHdpbGwgYmUgaWdub3JlZC4NCj4gPj4+DQo+ID4+PiBUaGUgc3BsaXQgbGltaXRhdGlv bnMgaW1wb3NlZCBieSB1bmRlcmx5aW5nIGRyaXZlciBpcyByZXBvcnRlZCBpbg0KPiA+Pj4gdGhl IHJ0ZV9ldGhfZGV2X2luZm8tPnJ4X3NlZ19jYXBhIGZpZWxkLiBUaGUgbWVtb3J5IGF0dHJpYnV0 ZXMgZm9yDQo+ID4+PiB0aGUgc3BsaXQgcGFydHMgbWF5IGRpZmZlciBlaXRoZXIsIGRwZGsgbWVt b3J5IGFuZCBleHRlcm5hbCBtZW1vcnksDQo+ID4+IHJlc3BlY3RpdmVseS4NCj4gPj4+DQo+ID4+ PiBTaWduZWQtb2ZmLWJ5OiBZdWFuIFdhbmcgPHl1YW54LndhbmdAaW50ZWwuY29tPg0KPiA+Pj4g U2lnbmVkLW9mZi1ieTogWHVhbiBEaW5nIDx4dWFuLmRpbmdAaW50ZWwuY29tPg0KPiA+Pj4gU2ln bmVkLW9mZi1ieTogV2VueHVhbiBXdSA8d2VueHVhbngud3VAaW50ZWwuY29tPg0KPiA+Pj4gLS0t DQo+ID4+PiAgICBkb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIyXzExLnJzdCB8ICA1ICsr Kw0KPiA+Pj4gICAgbGliL2V0aGRldi9ydGVfZXRoZGV2LmMgICAgICAgICAgICAgICAgfCA1NSAr KysrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiA+Pj4gICAgbGliL2V0aGRldi9ydGVfZXRoZGV2 LmggICAgICAgICAgICAgICAgfCAxNyArKysrKysrLQ0KPiA+Pj4gICAgMyBmaWxlcyBjaGFuZ2Vk LCA2NSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCj4gPj4+DQo+ID4+PiBkaWZmIC0t Z2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMl8xMS5yc3QNCj4gPj4+IGIvZG9j L2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMl8xMS5yc3QNCj4gPj4+IGluZGV4IDRkOTA1MTRh OWEuLmYzYjU4Yzc4OTUgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9y ZWxlYXNlXzIyXzExLnJzdA0KPiA+Pj4gKysrIGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFz ZV8yMl8xMS5yc3QNCj4gPj4+IEBAIC02MCw2ICs2MCwxMSBAQCBOZXcgRmVhdHVyZXMNCj4gPj4+ ICAgICAgQWRkZWQgYGBydGVfZXRoX2J1ZmZlcl9zcGxpdF9nZXRfc3VwcG9ydGVkX2hkcl9wdHlw ZXMoKWBgLCB0bw0KPiA+Pj4gZ2V0DQo+ID4+IHN1cHBvcnRlZA0KPiA+Pj4gICAgICBoZWFkZXIg cHJvdG9jb2xzIG9mIGEgUE1EIHRvIHNwbGl0Lg0KPiA+Pj4NCj4gPj4+ICsqICoqQWRkZWQgcHJv dG9jb2wgaGVhZGVyIGJhc2VkIGJ1ZmZlciBzcGxpdC4qKg0KPiA+Pj4gKyAgRXRoZGV2OiBUaGUg YGByZXNlcnZlZGBgIGZpZWxkIGluIHRoZSAgYGBydGVfZXRoX3J4c2VnX3NwbGl0YGANCj4gPj4+ ICtzdHJ1Y3R1cmUgaXMNCj4gPj4+ICsgIHJlcGxhY2VkIHdpdGggYGBwcm90b19oZHJgYCB0byBz dXBwb3J0IHByb3RvY29sIGhlYWRlciBiYXNlZCBidWZmZXINCj4gc3BsaXQuDQo+ID4+PiArICBV c2VyIGNhbiBjaG9vc2UgbGVuZ3RoIG9yIHByb3RvY29sIGhlYWRlciB0byBjb25maWd1cmUgYnVm ZmVyDQo+ID4+PiArc3BsaXQNCj4gPj4+ICsgIGFjY29yZGluZyB0byBOSUMncyBjYXBhYmlsaXR5 Lg0KPiA+Pg0KPiA+PiBBZGQgb25lIG1vcmUgZW1wdHkgbGluZSB0byBoYXZlIHR3byBiZWZvcmUg dGhlIG5leHQgc2VjdG9pbi4NCj4gPg0KPiA+IFRoYW5rcyBmb3IgeW91ciBjYXRjaC4NCj4gPg0K PiA+Pg0KPiA+Pj4NCj4gPj4+ICAgIFJlbW92ZWQgSXRlbXMNCj4gPj4+ICAgIC0tLS0tLS0tLS0t LS0NCj4gPj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYyBiL2xpYi9ldGhk ZXYvcnRlX2V0aGRldi5jIGluZGV4DQo+ID4+PiAwOTNjNTc3YWRkLi5kZmNlYjcyM2VlIDEwMDY0 NA0KPiA+Pj4gLS0tIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMNCj4gPj4+ICsrKyBiL2xpYi9l dGhkZXYvcnRlX2V0aGRldi5jDQo+ID4+PiBAQCAtMTYzNSw5ICsxNjM1LDEwIEBAIHJ0ZV9ldGhf ZGV2X2lzX3JlbW92ZWQodWludDE2X3QgcG9ydF9pZCkNCj4gPj4+ICAgIH0NCj4gPj4+DQo+ID4+ PiAgICBzdGF0aWMgaW50DQo+ID4+PiAtcnRlX2V0aF9yeF9xdWV1ZV9jaGVja19zcGxpdChjb25z dCBzdHJ1Y3QgcnRlX2V0aF9yeHNlZ19zcGxpdA0KPiAqcnhfc2VnLA0KPiA+Pj4gLQkJCSAgICAg dWludDE2X3Qgbl9zZWcsIHVpbnQzMl90ICptYnBfYnVmX3NpemUsDQo+ID4+PiAtCQkJICAgICBj b25zdCBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pDQo+ID4+PiArcnRlX2V0aF9y eF9xdWV1ZV9jaGVja19zcGxpdCh1aW50MTZfdCBwb3J0X2lkLA0KPiA+Pj4gKwkJCWNvbnN0IHN0 cnVjdCBydGVfZXRoX3J4c2VnX3NwbGl0ICpyeF9zZWcsDQo+ID4+PiArCQkJdWludDE2X3Qgbl9z ZWcsIHVpbnQzMl90ICptYnBfYnVmX3NpemUsDQo+ID4+PiArCQkJY29uc3Qgc3RydWN0IHJ0ZV9l dGhfZGV2X2luZm8gKmRldl9pbmZvKQ0KPiA+Pj4gICAgew0KPiA+Pj4gICAgCWNvbnN0IHN0cnVj dCBydGVfZXRoX3J4c2VnX2NhcGEgKnNlZ19jYXBhID0gJmRldl9pbmZvLQ0KPiA+Pj4gcnhfc2Vn X2NhcGE7DQo+ID4+PiAgICAJc3RydWN0IHJ0ZV9tZW1wb29sICptcF9maXJzdDsNCj4gPj4+IEBA IC0xNjYwLDYgKzE2NjEsNyBAQCBydGVfZXRoX3J4X3F1ZXVlX2NoZWNrX3NwbGl0KGNvbnN0IHN0 cnVjdA0KPiA+PiBydGVfZXRoX3J4c2VnX3NwbGl0ICpyeF9zZWcsDQo+ID4+PiAgICAJCXN0cnVj dCBydGVfbWVtcG9vbCAqbXBsID0gcnhfc2VnW3NlZ19pZHhdLm1wOw0KPiA+Pj4gICAgCQl1aW50 MzJfdCBsZW5ndGggPSByeF9zZWdbc2VnX2lkeF0ubGVuZ3RoOw0KPiA+Pj4gICAgCQl1aW50MzJf dCBvZmZzZXQgPSByeF9zZWdbc2VnX2lkeF0ub2Zmc2V0Ow0KPiA+Pj4gKwkJdWludDMyX3QgcHJv dG9faGRyID0gcnhfc2VnW3NlZ19pZHhdLnByb3RvX2hkcjsNCj4gPj4+DQo+ID4+PiAgICAJCWlm IChtcGwgPT0gTlVMTCkgew0KPiA+Pj4gICAgCQkJUlRFX0VUSERFVl9MT0coRVJSLCAibnVsbCBt ZW1wb29sIHBvaW50ZXJcbiIpOw0KPiA+PiBAQCAtMTY5MywxMw0KPiA+Pj4gKzE2OTUsNDQgQEAg cnRlX2V0aF9yeF9xdWV1ZV9jaGVja19zcGxpdChjb25zdCBzdHJ1Y3QNCj4gPj4gcnRlX2V0aF9y eHNlZ19zcGxpdCAqcnhfc2VnLA0KPiA+Pj4gICAgCQl9DQo+ID4+PiAgICAJCW9mZnNldCArPSBz ZWdfaWR4ICE9IDAgPyAwIDogUlRFX1BLVE1CVUZfSEVBRFJPT007DQo+ID4+PiAgICAJCSptYnBf YnVmX3NpemUgPSBydGVfcGt0bWJ1Zl9kYXRhX3Jvb21fc2l6ZShtcGwpOw0KPiA+Pj4gLQkJbGVu Z3RoID0gbGVuZ3RoICE9IDAgPyBsZW5ndGggOiAqbWJwX2J1Zl9zaXplOw0KPiA+Pj4gLQkJaWYg KCptYnBfYnVmX3NpemUgPCBsZW5ndGggKyBvZmZzZXQpIHsNCj4gPj4+IC0JCQlSVEVfRVRIREVW X0xPRyhFUlIsDQo+ID4+PiAtCQkJCSAgICAgICAiJXMgbWJ1Zl9kYXRhX3Jvb21fc2l6ZSAldSA8 ICV1DQo+ID4+IChzZWdtZW50IGxlbmd0aD0ldSArIHNlZ21lbnQgb2Zmc2V0PSV1KVxuIiwNCj4g Pj4+IC0JCQkJICAgICAgIG1wbC0+bmFtZSwgKm1icF9idWZfc2l6ZSwNCj4gPj4+IC0JCQkJICAg ICAgIGxlbmd0aCArIG9mZnNldCwgbGVuZ3RoLCBvZmZzZXQpOw0KPiA+Pj4gLQkJCXJldHVybiAt RUlOVkFMOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJaW50IHJldCA9DQo+ID4+IHJ0ZV9ldGhfYnVmZmVy X3NwbGl0X2dldF9zdXBwb3J0ZWRfaGRyX3B0eXBlcyhwb3J0X2lkLA0KPiA+Pj4gK05VTEwsIDAp Ow0KPiA+Pg0KPiA+PiBEbyBub3QgbWl4IHZhcmlhYmxlIGRlY2xhcmF0aW9uIGFuZCBjb2RlLg0K PiA+PiBJdCBpcyBiZXR0ZXIgdG8gZ2l2ZSB0aGUgdmFyaWFibGUgc29tZSBzZW5zaWJsZSBuYW1l Lg0KPiA+PiBPdGhlcndpc2UgZWxzZSBicmFuY2ggY29kZSBpcyBoYXJkIHRvIHJlYWQuDQo+ID4N Cj4gPiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uLCB3aWxsICB0YWtlIGNhcmUgb2YgbmFtaW5n Lg0KPiA+DQo+ID4+DQo+ID4+PiArCQlpZiAocmV0IDw9IDApIHsNCj4gPj4NCj4gPj4gTWF5IGJl IEknbSBtaXNzaW5nIHNvbWV0aGluZywgYnV0IG5vdGhpbmcgcHJldmV0bnMgYSBkcml2ZXIvSFcg dG8NCj4gPj4gc3VwcG9ydCBib3RoIHByb3RvY29sLWJhc2VkIGFuZCBmaXhlZC1sZW5ndGggc3Bs aXQuDQo+ID4+IFNvLCBhYmlsaXR5IHRvIHN1cHBvcnQgcHJvdG9jb2wgYmFzZWQgc3BsaXQgc2hv dWxkIGJlIHRyZWF0ZWQgYXMgYQ0KPiA+PiByZXF1ZXN0IHRvIGRvIGl0LiBJdCBtdXN0IGJlIGJh c2VkIG9uIHJ4X3NlZy0+cHJvdG9faGRyIGNvbnRlbnQgKGZvciBhbGwNCj4gc2VnbWVudHMpLg0K PiA+Pg0KPiA+PiBBbHNvIG5vdGhpbmcgc2hvdWxkIHByZXZlbnQgdG8gbWl4IHByb3RvY29sIGFu ZCBmaXhlZC1sZW5ndGggc3BsaXQuDQo+ID4+IEkuZS4gc3BsaXQganVzdCBhZnRlciBVRFAgaW4g dGhlIGZpcnN0IHNlZ21lbnQsDQo+ID4+IDQwIGJ5dGVzIGluIHRoZSBzZWNvbmQgc2VnbWVudCwg ZXZlcnl0aGluZyBlbHNlIGluIHRoZSB0aGlyZC4NCj4gPg0KPiA+IE1peCBtb2RlIGlzIGFuIGlu dGVyZXN0aW5nIGlkZWEuIEN1cnJlbnRseSB0ZXN0cG1kIGFuZCBkcml2ZXIgZG8gbm90DQo+IHN1 cHBvcnQgbWl4ZWQgbW9kZSwgYnV0IGl0IGRvZXMgbm90IGFmZmVjdCB0aGUgbGlicmFyeSB0byBz dXBwb3J0IHRoaXMgbW9kZS4NCj4gDQo+IFRoYXQncyBPSy4NCj4gDQo+ID4NCj4gPj4NCj4gPj4+ ICsJCQkvKiBTcGxpdCBhdCBmaXhlZCBsZW5ndGguICovDQo+ID4+PiArCQkJbGVuZ3RoID0gbGVu Z3RoICE9IDAgPyBsZW5ndGggOiAqbWJwX2J1Zl9zaXplOw0KPiA+Pj4gKwkJCWlmICgqbWJwX2J1 Zl9zaXplIDwgbGVuZ3RoICsgb2Zmc2V0KSB7DQo+ID4+PiArCQkJCVJURV9FVEhERVZfTE9HKEVS UiwNCj4gPj4+ICsJCQkJCSIlcyBtYnVmX2RhdGFfcm9vbV9zaXplICV1IDwgJXUNCj4gPj4gKHNl Z21lbnQgbGVuZ3RoPSV1ICsgc2VnbWVudCBvZmZzZXQ9JXUpXG4iLA0KPiA+Pj4gKwkJCQkJbXBs LT5uYW1lLCAqbWJwX2J1Zl9zaXplLA0KPiA+Pj4gKwkJCQkJbGVuZ3RoICsgb2Zmc2V0LCBsZW5n dGgsIG9mZnNldCk7DQo+ID4+PiArCQkJCXJldHVybiAtRUlOVkFMOw0KPiA+Pj4gKwkJCX0NCj4g Pj4+ICsJCX0gZWxzZSB7DQo+ID4+PiArCQkJLyogU3BsaXQgYWZ0ZXIgc3BlY2lmaWVkIHByb3Rv Y29sIGhlYWRlci4gKi8NCj4gPj4+ICsJCQl1aW50MzJfdCBwdHlwZXNbcmV0XTsNCj4gPj4+ICsJ CQlpbnQgaTsNCj4gPj4+ICsNCj4gPj4+ICsJCQlyZXQgPQ0KPiA+PiBydGVfZXRoX2J1ZmZlcl9z cGxpdF9nZXRfc3VwcG9ydGVkX2hkcl9wdHlwZXMocG9ydF9pZCwNCj4gPj4+ICtwdHlwZXMsIHJl dCk7DQo+ID4+DQo+ID4+IEluIHRoZW9yeSwgdGhlIGZ1bmNpdG9uIGNvdWxkIGZhaWwgc2luY2Ug aW5wdXQgYXJndW1lbnRzIGRpZmZlci4gU28sDQo+ID4+IGl0IHNob3VsZCBiZSBoYW5kbGVkLg0K PiA+DQo+ID4gVGhhbmtzIGZvciB5b3VyIGNhdGNoLCB3aWxsIGZpeCBpbiB0aGUgbmV4dCB2ZXJz aW9uLg0KPiA+DQo+ID4+DQo+ID4+PiArCQkJZm9yIChpID0gMDsgaSA8IHJldDsgaSsrKQ0KPiA+ Pj4gKwkJCQlpZiAocHR5cGVzW2ldICYgcHJvdG9faGRyKQ0KPiA+Pg0KPiA+PiBJTUhPIGl0IHNo b3VsZCBiZSA9PSwgbm90ICYuIEkgdGhpbmsgdGhhdA0KPiA+PiBydGVfZXRoX2J1ZmZlcl9zcGxp dF9nZXRfc3VwcG9ydGVkX2hkcl9wdHlwZXMoKSBzaG91bGQgZGVmaW5lIHBvaW50cw0KPiA+PiBh dCB3aGljaCBzcGxpdCBjb3VsZCBoYXBwZW4gYW5kIHdlIHNob3VsZCBtYXRjaCB0aGUgcG9pbnQg ZXhhY3RseS4NCj4gPg0KPiA+IFN1cmUsID09IGlzIGJldHRlci4gVGhhbmtzIGZvciB0aGUgc3Vn Z2VzdGlvbi4NCj4gPg0KPiA+Pg0KPiA+Pj4gKwkJCQkJYnJlYWs7DQo+ID4+PiArDQo+ID4+PiAr CQkJaWYgKGkgPT0gcmV0KSB7DQo+ID4+PiArI2RlZmluZSBQVFlQRV9OQU1FU0laRQkyNTYNCj4g Pj4NCj4gPj4gV2h5PyBJdCBpcyBsb29rcyByZWFsbHkgc3RyYW5nZSB0aGF0IGl0IGlzIGRlZmlu ZWQgaGVyZS4NCj4gPg0KPiA+IEkgaW50ZW5kIHRvIGRpc3BsYXkgdGhlIHByb3RvY29sIG5hbWUg aW4gdGhlIGxvZywgYnV0IGlmIHRoZSBwcm90b19oZHIgaXMgYSBiaXQNCj4gbWFzaywgY2FuIEkg anVzdCBzaG93IHRoZSBudW1iZXI/DQo+ID4gUGxlYXNlIHNlZSB2NCBmb3IgdGhpcyBtb2RpZmlj YXRpb24uDQo+ID4NCj4gPj4NCj4gPj4+ICsJCQkJY2hhciBwdHlwZV9uYW1lW1BUWVBFX05BTUVT SVpFXTsNCj4gPj4+ICsJCQkJcnRlX2dldF9wdHlwZV9uYW1lKHByb3RvX2hkciwNCj4gPj4gcHR5 cGVfbmFtZSwgc2l6ZW9mKHB0eXBlX25hbWUpKTsNCj4gPj4+ICsJCQkJUlRFX0VUSERFVl9MT0co RVJSLA0KPiA+Pj4gKwkJCQkJIlByb3RvY29sIGhlYWRlciAlcyBpcyBub3QNCj4gPj4gc3VwcG9y dGVkLlxuIiwNCj4gPj4+ICsJCQkJCXB0eXBlX25hbWUpOw0KPiA+Pj4gKwkJCQlyZXR1cm4gLUVJ TlZBTDsNCj4gPj4+ICsJCQl9DQo+ID4+PiArCQkJaWYgKCptYnBfYnVmX3NpemUgPCBvZmZzZXQp IHsNCj4gPj4+ICsJCQkJUlRFX0VUSERFVl9MT0coRVJSLA0KPiA+Pj4gKwkJCQkJCSIlcw0KPiA+ PiBtYnVmX2RhdGFfcm9vbV9zaXplICV1IDwgJXUgc2VnbWVudCBvZmZzZXQpXG4iLA0KPiA+Pj4g KwkJCQkJCW1wbC0+bmFtZSwgKm1icF9idWZfc2l6ZSwNCj4gPj4+ICsJCQkJCQlvZmZzZXQpOw0K PiA+Pj4gKwkJCQlyZXR1cm4gLUVJTlZBTDsNCj4gPj4+ICsJCQl9DQo+ID4+PiAgICAJCX0NCj4g Pj4+ICAgIAl9DQo+ID4+PiAgICAJcmV0dXJuIDA7DQo+ID4+PiBAQCAtMTc3OCw3ICsxODExLDcg QEAgcnRlX2V0aF9yeF9xdWV1ZV9zZXR1cCh1aW50MTZfdCBwb3J0X2lkLA0KPiA+PiB1aW50MTZf dCByeF9xdWV1ZV9pZCwNCj4gPj4+ICAgIAkJbl9zZWcgPSByeF9jb25mLT5yeF9uc2VnOw0KPiA+ Pj4NCj4gPj4+ICAgIAkJaWYgKHJ4X2NvbmYtPm9mZmxvYWRzICYNCj4gPj4gUlRFX0VUSF9SWF9P RkZMT0FEX0JVRkZFUl9TUExJVCkgew0KPiA+Pj4gLQkJCXJldCA9IHJ0ZV9ldGhfcnhfcXVldWVf Y2hlY2tfc3BsaXQocnhfc2VnLCBuX3NlZywNCj4gPj4+ICsJCQlyZXQgPSBydGVfZXRoX3J4X3F1 ZXVlX2NoZWNrX3NwbGl0KHBvcnRfaWQsIHJ4X3NlZywNCj4gPj4gbl9zZWcsDQo+ID4+PiAgICAJ CQkJCQkJICAgJm1icF9idWZfc2l6ZSwNCj4gPj4+ICAgIAkJCQkJCQkgICAmZGV2X2luZm8pOw0K PiA+Pj4gICAgCQkJaWYgKHJldCAhPSAwKQ0KPiA+Pj4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYv cnRlX2V0aGRldi5oIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggaW5kZXgNCj4gPj4+IGM1OGM5 MDhjM2EuLjQxMGZiYTVlYWIgMTAwNjQ0DQo+ID4+PiAtLS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhk ZXYuaA0KPiA+Pj4gKysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPj4+IEBAIC0xMTc1 LDYgKzExNzUsOSBAQCBzdHJ1Y3QgcnRlX2V0aF90eG1vZGUgew0KPiA+Pj4gICAgICogICBzcGVj aWZpZWQgaW4gdGhlIGZpcnN0IGFycmF5IGVsZW1lbnQsIHRoZSBzZWNvbmQgYnVmZmVyLCBmcm9t IHRoZQ0KPiA+Pj4gICAgICogICBwb29sIGluIHRoZSBzZWNvbmQgZWxlbWVudCwgYW5kIHNvIG9u Lg0KPiA+Pj4gICAgICoNCj4gPj4+ICsgKiAtIFRoZSBwcm90b19oZHJzIGluIHRoZSBlbGVtZW50 cyBkZWZpbmUgdGhlIHNwbGl0IHBvc2l0aW9uIG9mDQo+ID4+PiArICogICByZWNlaXZlZCBwYWNr ZXRzLg0KPiA+Pj4gKyAqDQo+ID4+PiAgICAgKiAtIFRoZSBvZmZzZXRzIGZyb20gdGhlIHNlZ21l bnQgZGVzY3JpcHRpb24gZWxlbWVudHMgc3BlY2lmeQ0KPiA+Pj4gICAgICogICB0aGUgZGF0YSBv ZmZzZXQgZnJvbSB0aGUgYnVmZmVyIGJlZ2lubmluZyBleGNlcHQgdGhlIGZpcnN0IG1idWYuDQo+ ID4+PiAgICAgKiAgIFRoZSBmaXJzdCBzZWdtZW50IG9mZnNldCBpcyBhZGRlZCB3aXRoIFJURV9Q S1RNQlVGX0hFQURST09NLg0KPiA+Pj4gQEAgLTExOTYsMTIgKzExOTksMjQgQEAgc3RydWN0IHJ0 ZV9ldGhfdHhtb2RlIHsNCj4gPj4+ICAgICAqICAgICAtIHBvb2wgZnJvbSB0aGUgbGFzdCB2YWxp ZCBlbGVtZW50DQo+ID4+PiAgICAgKiAgICAgLSB0aGUgYnVmZmVyIHNpemUgZnJvbSB0aGlzIHBv b2wNCj4gPj4+ICAgICAqICAgICAtIHplcm8gb2Zmc2V0DQo+ID4+PiArICoNCj4gPj4+ICsgKiAt IExlbmd0aCBiYXNlZCBidWZmZXIgc3BsaXQ6DQo+ID4+PiArICogICAgIC0gbXAsIGxlbmd0aCwg b2Zmc2V0IHNob3VsZCBiZSBjb25maWd1cmVkLg0KPiA+Pj4gKyAqICAgICAtIFRoZSBwcm90b19o ZHIgZmllbGQgd2lsbCBiZSBpZ25vcmVkLg0KPiA+Pj4gKyAqDQo+ID4+PiArICogLSBQcm90b2Nv bCBoZWFkZXIgYmFzZWQgYnVmZmVyIHNwbGl0Og0KPiA+Pj4gKyAqICAgICAtIG1wLCBvZmZzZXQs IHByb3RvX2hkciBzaG91bGQgYmUgY29uZmlndXJlZC4NCj4gPj4+ICsgKiAgICAgLSBUaGUgbGVu Z3RoIGZpZWxkIHdpbGwgYmUgaWdub3JlZC4NCj4gPj4+ICAgICAqLw0KPiA+Pj4gICAgc3RydWN0 IHJ0ZV9ldGhfcnhzZWdfc3BsaXQgew0KPiA+Pj4gICAgCXN0cnVjdCBydGVfbWVtcG9vbCAqbXA7 IC8qKjwgTWVtb3J5IHBvb2wgdG8gYWxsb2NhdGUgc2VnbWVudA0KPiA+PiBmcm9tLiAqLw0KPiA+ Pj4gICAgCXVpbnQxNl90IGxlbmd0aDsgLyoqPCBTZWdtZW50IGRhdGEgbGVuZ3RoLCBjb25maWd1 cmVzIHNwbGl0IHBvaW50LiAqLw0KPiA+Pj4gICAgCXVpbnQxNl90IG9mZnNldDsgLyoqPCBEYXRh IG9mZnNldCBmcm9tIGJlZ2lubmluZyBvZiBtYnVmIGRhdGEgYnVmZmVyLg0KPiA+PiAqLw0KPiA+ Pj4gLQl1aW50MzJfdCByZXNlcnZlZDsgLyoqPCBSZXNlcnZlZCBmaWVsZC4gKi8NCj4gPj4+ICsJ LyoqDQo+ID4+PiArCSAqIFN1cHBvcnRlZCBwdHlwZSBvZiBhIHNwZWNpZmljIHBtZCwgY29uZmln dXJlcyBzcGxpdCBwb2ludC4NCj4gPj4+ICsJICogSXQgc2hvdWxkIGJlIGRlZmluZWQgYnkgUlRF X1BUWVBFXyouDQo+ID4+PiArCSAqLw0KPiA+Pj4gKwl1aW50MzJfdCBwcm90b19oZHI7DQo+ID4+ PiAgICB9Ow0KPiA+Pj4NCj4gPj4+ICAgIC8qKg0KPiA+DQoNCg==