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 14D3CA0561; Thu, 18 Mar 2021 00:45:00 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AF2A940698; Thu, 18 Mar 2021 00:44:59 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 7873240683 for ; Thu, 18 Mar 2021 00:44:57 +0100 (CET) IronPort-SDR: mj3PTR92yhAdL7rv3HfjItQSaXYGxlWgBbBhplXLpcCvhARy3kpCslJBG/XICbOhPd7neLQJm+ qqz0iiUwADZQ== X-IronPort-AV: E=McAfee;i="6000,8403,9926"; a="176697474" X-IronPort-AV: E=Sophos;i="5.81,257,1610438400"; d="scan'208";a="176697474" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2021 16:44:56 -0700 IronPort-SDR: mYYix+OSTiheuwD+7LuilZeFGRXavMxdSyS9mAb19bNVaG+AsxAdsNer0FnLjhN//qHRJSJ+tn Om5Fg/E5+iRQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,257,1610438400"; d="scan'208";a="605913175" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga005.fm.intel.com with ESMTP; 17 Mar 2021 16:44:55 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 17 Mar 2021 16:44:54 -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.2106.2 via Frontend Transport; Wed, 17 Mar 2021 16:44:54 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175) 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.2106.2; Wed, 17 Mar 2021 16:44:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mz/zpnODkwyR1XTzUzcoCAOondNegRU5i37VsCcMLb1U0jitReeyx2u0rNg94FWENefTtoy0VEYm9AJOI1LNvMr0RCld5UOi+n30hS9HXp+NxbODuD1MZVPRHMxcirhvS2+s6KykkES2NIbdPKenuG1OLYev8GoJhHsbkS4XZ2IC/xlSzAhkUm4oB5N9CYCWyvlREizjqaOrhBcFjhqUF4QY0dKbHtNKQiXkU/tXkMSiB6Kyjiv/VN6nL1GKchQsz91IcJyVUyQ023dVqem9ebGouPyF1/cdizG5ZAwWbM3dOCyO7xHkxSOaVKAwR7GJSlweKl/IKG8NYTPTs6zPfg== 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-SenderADCheck; bh=2k7Ya3I+1oXXAfte7UB91FxA8JyhQetHjqqh7pgMn4M=; b=a4cVcKLiEdEF6p+CIYbeqIJzegwMl7RiD/fz9FdA8NBxWidLrPZPnpwq7IC6Havv3ROGHVlUOHS0UGmI5mPYguHmbOvTvA8Yn/oiWxJZ2oOmtRFbLZixfdawzJf+xXImdkdPwezxat60xed5UylvgT/eC7M5BX1TF2QdgPeQ3szzrvkeIZri74gTvfdy3tgA9HRwQiqK8kSWPmGHwjTUlUsefbNaptFmvJsz3czMBV/D5lWcpw7ss87Ov0KrghKgwomeccDQswQcOh1a70JwnNZDrKecmxWQbMu6FlUamsBxNV3HBYBpRXOIpsRUynABTSCGVdqD8mAESrnq+028aA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2k7Ya3I+1oXXAfte7UB91FxA8JyhQetHjqqh7pgMn4M=; b=UfNjSzx1ZX7nR7vhCPp+wCx0nHAvDgskUsrvJKL6HlxSeWtjUF98uTKObC32wj50jlLMXoFW4dFmhhnDT9xnYpOUCqLWqIqHP3DS/vZaV2iN5mARze55MC1TdSU0jw//vvSA8JXZH7wHRj0oJXhfolLOvJS7Kmid2UqxWmnrknE= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by SJ0PR11MB4927.namprd11.prod.outlook.com (2603:10b6:a03:2d6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Wed, 17 Mar 2021 23:44:53 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::756a:2aef:40b1:11c8]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::756a:2aef:40b1:11c8%5]) with mapi id 15.20.3933.032; Wed, 17 Mar 2021 23:44:53 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "akhil.goyal@nxp.com" , "thomas@monjalon.net" Thread-Topic: [PATCH v1] bbdev: adding explicit enum for code block mode Thread-Index: AQHXBx2iOMFxmH3px0qclpZG2NggpapgLKWAgBKVvQCAFj45cA== Date: Wed, 17 Mar 2021 23:44:53 +0000 Message-ID: References: <1613780105-110079-1-git-send-email-nicolas.chautru@intel.com> <1613780105-110079-2-git-send-email-nicolas.chautru@intel.com> <8cfb92f8-4abc-d15e-3fcf-63b6232bf977@redhat.com> In-Reply-To: <8cfb92f8-4abc-d15e-3fcf-63b6232bf977@redhat.com> Accept-Language: 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.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 23e7254b-0a58-4788-7161-08d8e99ea9cc x-ms-traffictypediagnostic: SJ0PR11MB4927: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mJkiY4yTMWakYXbdMBxpMT91XvjmNnwHu+T7lWmLyyrI6yAQ+M1ma24LO7k7mM8XDpNiyPvHWjlkfdNa245wFvDA5NIjNlYN6CkpHi4tCJxJVLszE+oAHEtNZG3HwRfYipoDPjUUgwCNVDWb6PIcDfEv1qcRzTD6qyB9TgOwOIl5/pxe/ZNLvImHRybUYGIVm1CjIMXy3I9NQjcIY4pHTHWRpKfdBlxMCBASaVfripy1kxo7vrtFH25B7govMYB/mVwKBTFkwy1d+u55/pYbO3mt/POlhLSRsnBZ6VdLgnwjafymWegVCpM7ZJalTkaxcsGNspUNWcu3og+lUnzNbiGy3mCT128MohLDLF5tj9prw+7mfzbddPu7eqg924Fgri5fq1JVlktp6hpzTl8d1Gm/YpclFy+63to5RcDKGYdsf0qFoLUfunbyu5R7c+8UZT9yOh5KjT9tJS4kiaQOAvj9cUAUz8I2yAYI0syMF2osOwMB1cOLF11Z9D2Yz/MQ8CUbN6LipXAEk1urofL47hyKV+JxqRdQMs5pwn1N+iAihnfmhGrycxSogsrW7S0bWNbeptGIJZ0Qhqv0RbGgfsrLOmLk8P621e3dhMAFAeHwTzS+nX1MuHBgapXlNL8S x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(366004)(396003)(136003)(39860400002)(376002)(6506007)(86362001)(71200400001)(2906002)(478600001)(8676002)(5660300002)(52536014)(83380400001)(55016002)(7696005)(26005)(64756008)(30864003)(66476007)(66446008)(66556008)(186003)(66946007)(110136005)(76116006)(8936002)(9686003)(33656002)(53546011)(316002)(38100700001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?TU5ybHNhNXJwL2dnZmNPbTlpMDcvZmpuT2hSeUlnZ0crN1NRc1JFWGtsSFN1?= =?utf-8?B?VDhPbSt4dTVpdFFyQlJ0N1JUWHovVlZDcjdQSEh5SFUvWWtuWXF3QSt1a293?= =?utf-8?B?MGNQak83bXhTM0NUOUtQWXNTekFOMENPVU5oM1M4OXBaYVcxSkxLL1hkZ3Mx?= =?utf-8?B?STlzWnM3bWlxTU9sQ2w4NmtXOHp6RnVEY0tLbGw4RDlwQ0VZUnYweFpzazFP?= =?utf-8?B?ZHhmZ1NXV3lQQzRtMWNWdzdLM3BNNno1dEpLczdLRStMWlJaK3dNVk1DTmtY?= =?utf-8?B?UWsrT3pDY1hmR1dhWEFhUnVxNkdpYW44bkJnN0JDMXZIVm9XSy9FVzVUdThy?= =?utf-8?B?VXRPaTFoNHdrdWN4eEplOXhmTk0yVXFGOTE2eXZ2RGdka2FqZENhNmxJR3Ja?= =?utf-8?B?Q3JOZ2RQR2hHaCtmSlIzNXBKdWcxOUVVTlVFck5tSEV2NzVGckNXL2xMblRk?= =?utf-8?B?UWNxdWZQTzUyR3JhQzRYSWpnL3lvb01LWndGazVOMW1INzhRd2l4L05jZU1G?= =?utf-8?B?UWlqTThpYnl2N0s0TFpBN1J1ZWlRZ3NBcUFleHFqSUVqcGdjZDVWTi9kdkM5?= =?utf-8?B?enZvNE9ObWo3UW5YOVNZa25ra1RqSzIzN1RFeWxFU0djUUIvWkpGenVndXJO?= =?utf-8?B?MHZBK0k2SzdDWGZGVjJHRnZKZGNuL2JWNUZta2VlSHd3aTdaaXFQcDYycE00?= =?utf-8?B?bnNjZzJHMndHbmdZRVVPTmVBR3pTM2t4ckhnQnA3QUxobmg0ZExSNGJOaUlo?= =?utf-8?B?MURlWEc1dWVWS3JQWWJnQlh4QXFmVzhma3orcU1aYmZPcUZnc1F3eE04anFQ?= =?utf-8?B?aGdCOWlDWTlDeUlOanh6ZzJQdUtXQmNIQkJMNlJjRXJQb01qdy9uaStwZ3Vz?= =?utf-8?B?dlJoTTNYN0NFSmhmTHlKcFVoZzFUdnV3dzZNeFJPT0xSOTUvaEl6a21EcXc4?= =?utf-8?B?Wkx0WTM0eHpsVjROU3hIN09qR1psREhLVUYzU3RjSS8yNnRIRHhmZ2Vhd3RS?= =?utf-8?B?UmViRlMxamVuVktsZkZ2d2ZDNjc0bFZGbHk5SW1kUEhvV0QwalczNHBoQjVO?= =?utf-8?B?eENUVCtIeFp2SklRWkNxMFlrd0FUMWtMVWJRR0RBVExEREk3TzJTaElPeXFT?= =?utf-8?B?TTdFaWl0a1luR3ZJOUpsRVdockZGYjBqSE90TWxtcUdnWVp4ZXpUdTZyQjkx?= =?utf-8?B?a04wcnpSeTBsUkFRT0NZWFUzWVNGVEpnbi9QSWRTQktmZ25Bd1FQZkRMYTY2?= =?utf-8?B?U09pSTRpYXEzMmpkMVBiejd3UUFDTUxtNkhMUVZIbm9FbERKbkNqbDBFTzNN?= =?utf-8?B?NzRNbjcxYXFWSGJ6RlBpMWRESTNSRFVkcEZwcmpmdU5uQXJibzNpK1d3cFB0?= =?utf-8?B?OTNtaC9QQWRhRGxWMklrQitEeXdkUTJLK2ZTbDc4eVlGOUplYVFmYkZ6YTlk?= =?utf-8?B?MmVyMFlWdEcrZGhWV0VrSUU4TlRZVWlKWDQ4SjFRTlhrNENnellUL3kvdXpp?= =?utf-8?B?c0VSWmF3K1hSSGU4Zms3cU5lNVB6b3VtTlcvbFE5S3hVcnh0OXpBTklsazZj?= =?utf-8?B?WGI1UE9pZkNtTzVZd0dFTEdqQ1MxWjdXbDIrUlhLQ0JpenhXdU9MQkdXc3RU?= =?utf-8?B?dEZSNlRwaDdtSEQySEw2T3dlVHVOWmNNNytjRUE3NDZvbCtUeHA0Ty91bHhs?= =?utf-8?B?dDUxQWtxZy9hR0NWMUVnYVFlWDU0aXdqQUZSbnFtWDVPR0dVRzd6U0RNSGpP?= =?utf-8?Q?yLZnXrKV9EajGknDRJvSeeb7HPl+Rmtx9j5CnyX?= x-ms-exchange-transport-forked: True 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23e7254b-0a58-4788-7161-08d8e99ea9cc X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Mar 2021 23:44:53.4728 (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: FQHvmCfP/S8b0BiG2ID5n6N5WefZ4tEu3qnrBBvvWno7PPDo33TI26Oq1xSEUZy7YLORx6ZyJpLOLYNQ0dAJ8VycU0utKRmP4BhISG5PC6c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4927 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1] bbdev: adding explicit enum for code block mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgQWtoaWwsIA0KQW55IGNoYW5jZSB0byByZXZpZXcgdGhpcyBvbmUgdG8gYmUgYXBwbGllZD8N ClRoYW5rcw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFRvbSBSaXgg PHRyaXhAcmVkaGF0LmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAzLCAyMDIxIDEyOjA0 IFBNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPjsg ZGV2QGRwZGsub3JnOw0KPiBha2hpbC5nb3lhbEBueHAuY29tOyB0aG9tYXNAbW9uamFsb24ubmV0 DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjFdIGJiZGV2OiBhZGRpbmcgZXhwbGljaXQgZW51bSBm b3IgY29kZSBibG9jayBtb2RlDQo+IA0KPiANCj4gT24gMi8xOS8yMSA0OjE1IFBNLCBOaWNvbGFz IENoYXV0cnUgd3JvdGU6DQo+ID4gVXNpbmcgZXhwbGljaXQgZW51bSBpbnN0ZWFkIG9mIGFtYmln dW91cyBpbnRlZ2VyIHZhbHVlDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIENoYXV0 cnUgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGFwcC90ZXN0LWJi ZGV2L3Rlc3RfYmJkZXZfcGVyZi5jICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKy0tLS0tDQo+ ID4gIGFwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfdmVjdG9yLmMgICAgICAgICAgICAgICAgIHwg MTYgKysrKy0tLS0tDQo+ID4gIGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1k LmMgICAgICAgICAgIHwgNDIgKysrKysrKysrKystLS0tLS0tDQo+IC0tLS0NCj4gPiAgZHJpdmVy cy9iYXNlYmFuZC9mcGdhXzVnbnJfZmVjL3J0ZV9mcGdhXzVnbnJfZmVjLmMgfCAxMCArKystLS0N Cj4gPiAgZHJpdmVycy9iYXNlYmFuZC9mcGdhX2x0ZV9mZWMvZnBnYV9sdGVfZmVjLmMgICAgICAg fCAyNCArKysrKysrLS0tLS0tDQo+ID4gIGRyaXZlcnMvYmFzZWJhbmQvdHVyYm9fc3cvYmJkZXZf dHVyYm9fc29mdHdhcmUuYyAgIHwgMTggKysrKystLS0tLQ0KPiA+ICBsaWIvbGlicnRlX2JiZGV2 L3J0ZV9iYmRldl9vcC5oICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLQ0KPiA+ICA3IGZp bGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4g ZGlmZiAtLWdpdCBhL2FwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ID4gYi9hcHAv dGVzdC1iYmRldi90ZXN0X2JiZGV2X3BlcmYuYw0KPiA+IGluZGV4IDU5YjM3ZWQuLjQ1Yjg1Yjkg MTAwNjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QtYmJkZXYvdGVzdF9iYmRldl9wZXJmLmMNCj4gPiAr KysgYi9hcHAvdGVzdC1iYmRldi90ZXN0X2JiZGV2X3BlcmYuYw0KPiA+IEBAIC0xMjU4LDcgKzEy NTgsNyBAQCB0eXBlZGVmIGludCAodGVzdF9jYXNlX2Z1bmN0aW9uKShzdHJ1Y3QNCj4gYWN0aXZl X2RldmljZSAqYWQsDQo+ID4gIAlzdHJ1Y3QgcnRlX2JiZGV2X29wX3R1cmJvX2RlYyAqdHVyYm9f ZGVjID0gJnJlZl9vcC0+dHVyYm9fZGVjOw0KPiA+DQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgbjsg KytpKSB7DQo+ID4gLQkJaWYgKHR1cmJvX2RlYy0+Y29kZV9ibG9ja19tb2RlID09IDApIHsNCj4g PiArCQlpZiAodHVyYm9fZGVjLT5jb2RlX2Jsb2NrX21vZGUgPT0NCj4gUlRFX0JCREVWX1RSQU5T UE9SVF9CTE9DSykgew0KPiA+ICAJCQlvcHNbaV0tPnR1cmJvX2RlYy50Yl9wYXJhbXMuZWEgPQ0K PiA+ICAJCQkJCXR1cmJvX2RlYy0+dGJfcGFyYW1zLmVhOw0KPiA+ICAJCQlvcHNbaV0tPnR1cmJv X2RlYy50Yl9wYXJhbXMuZWIgPQ0KPiA+IEBAIC0xMzA2LDcgKzEzMDYsNyBAQCB0eXBlZGVmIGlu dCAodGVzdF9jYXNlX2Z1bmN0aW9uKShzdHJ1Y3QNCj4gYWN0aXZlX2RldmljZSAqYWQsDQo+ID4g IAl1bnNpZ25lZCBpbnQgaTsNCj4gPiAgCXN0cnVjdCBydGVfYmJkZXZfb3BfdHVyYm9fZW5jICp0 dXJib19lbmMgPSAmcmVmX29wLT50dXJib19lbmM7DQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgbjsg KytpKSB7DQo+ID4gLQkJaWYgKHR1cmJvX2VuYy0+Y29kZV9ibG9ja19tb2RlID09IDApIHsNCj4g PiArCQlpZiAodHVyYm9fZW5jLT5jb2RlX2Jsb2NrX21vZGUgPT0NCj4gUlRFX0JCREVWX1RSQU5T UE9SVF9CTE9DSykgew0KPiA+ICAJCQlvcHNbaV0tPnR1cmJvX2VuYy50Yl9wYXJhbXMuZWEgPQ0K PiA+ICAJCQkJCXR1cmJvX2VuYy0+dGJfcGFyYW1zLmVhOw0KPiA+ICAJCQlvcHNbaV0tPnR1cmJv X2VuYy50Yl9wYXJhbXMuZWIgPQ0KPiA+IEBAIC0xNjYxLDcgKzE2NjEsNyBAQCB0eXBlZGVmIGlu dCAodGVzdF9jYXNlX2Z1bmN0aW9uKShzdHJ1Y3QNCj4gYWN0aXZlX2RldmljZSAqYWQsDQo+ID4g IAlzdHJ1Y3QgcnRlX2JiZGV2X29wX2xkcGNfZGVjICpsZHBjX2RlYyA9ICZyZWZfb3AtPmxkcGNf ZGVjOw0KPiA+DQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7DQo+ID4gLQkJaWYgKGxk cGNfZGVjLT5jb2RlX2Jsb2NrX21vZGUgPT0gMCkgew0KPiA+ICsJCWlmIChsZHBjX2RlYy0+Y29k ZV9ibG9ja19tb2RlID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spIHsNCj4gPiAgCQkJ b3BzW2ldLT5sZHBjX2RlYy50Yl9wYXJhbXMuZWEgPQ0KPiA+ICAJCQkJCWxkcGNfZGVjLT50Yl9w YXJhbXMuZWE7DQo+ID4gIAkJCW9wc1tpXS0+bGRwY19kZWMudGJfcGFyYW1zLmViID0NCj4gPiBA QCAtMTcxNSw3ICsxNzE1LDcgQEAgdHlwZWRlZiBpbnQgKHRlc3RfY2FzZV9mdW5jdGlvbikoc3Ry dWN0DQo+IGFjdGl2ZV9kZXZpY2UgKmFkLA0KPiA+ICAJdW5zaWduZWQgaW50IGk7DQo+ID4gIAlz dHJ1Y3QgcnRlX2JiZGV2X29wX2xkcGNfZW5jICpsZHBjX2VuYyA9ICZyZWZfb3AtPmxkcGNfZW5j Ow0KPiA+ICAJZm9yIChpID0gMDsgaSA8IG47ICsraSkgew0KPiA+IC0JCWlmIChsZHBjX2VuYy0+ Y29kZV9ibG9ja19tb2RlID09IDApIHsNCj4gPiArCQlpZiAobGRwY19lbmMtPmNvZGVfYmxvY2tf bW9kZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKSB7DQo+ID4gIAkJCW9wc1tpXS0+ bGRwY19lbmMudGJfcGFyYW1zLmVhID0gbGRwY19lbmMtDQo+ID50Yl9wYXJhbXMuZWE7DQo+ID4g IAkJCW9wc1tpXS0+bGRwY19lbmMudGJfcGFyYW1zLmViID0gbGRwY19lbmMtDQo+ID50Yl9wYXJh bXMuZWI7DQo+ID4gIAkJCW9wc1tpXS0+bGRwY19lbmMudGJfcGFyYW1zLmNhYiA9DQo+ID4gQEAg LTIyMzksNyArMjIzOSw3IEBAIHR5cGVkZWYgaW50ICh0ZXN0X2Nhc2VfZnVuY3Rpb24pKHN0cnVj dA0KPiBhY3RpdmVfZGV2aWNlICphZCwNCj4gPiAgCXVpbnQ4X3QgaTsNCj4gPiAgCXVpbnQzMl90 IGMsIHIsIHRiX3NpemUgPSAwOw0KPiA+DQo+ID4gLQlpZiAob3AtPnR1cmJvX2RlYy5jb2RlX2Js b2NrX21vZGUpIHsNCj4gPiArCWlmIChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9PSBS VEVfQkJERVZfQ09ERV9CTE9DSykgew0KPiA+ICAJCXRiX3NpemUgPSBvcC0+dHVyYm9fZGVjLnRi X3BhcmFtcy5rX25lZzsNCj4gPiAgCX0gZWxzZSB7DQo+ID4gIAkJYyA9IG9wLT50dXJib19kZWMu dGJfcGFyYW1zLmM7DQo+ID4gQEAgLTIyNTksNyArMjI1OSw3IEBAIHR5cGVkZWYgaW50ICh0ZXN0 X2Nhc2VfZnVuY3Rpb24pKHN0cnVjdA0KPiBhY3RpdmVfZGV2aWNlICphZCwNCj4gPiAgCXVpbnQz Ml90IGMsIHIsIHRiX3NpemUgPSAwOw0KPiA+ICAJdWludDE2X3Qgc3lzX2NvbHMgPSAob3AtPmxk cGNfZGVjLmJhc2VncmFwaCA9PSAxKSA/IDIyIDogMTA7DQo+ID4NCj4gPiAtCWlmIChvcC0+bGRw Y19kZWMuY29kZV9ibG9ja19tb2RlKSB7DQo+ID4gKwlpZiAob3AtPmxkcGNfZGVjLmNvZGVfYmxv Y2tfbW9kZSA9PSBSVEVfQkJERVZfQ09ERV9CTE9DSykgew0KPiA+ICAJCXRiX3NpemUgPSBzeXNf Y29scyAqIG9wLT5sZHBjX2RlYy56X2MgLSBvcC0+bGRwY19kZWMubl9maWxsZXI7DQo+ID4gIAl9 IGVsc2Ugew0KPiA+ICAJCWMgPSBvcC0+bGRwY19kZWMudGJfcGFyYW1zLmM7DQo+ID4gQEAgLTIy NzcsNyArMjI3Nyw3IEBAIHR5cGVkZWYgaW50ICh0ZXN0X2Nhc2VfZnVuY3Rpb24pKHN0cnVjdA0K PiBhY3RpdmVfZGV2aWNlICphZCwNCj4gPiAgCXVpbnQ4X3QgaTsNCj4gPiAgCXVpbnQzMl90IGMs IHIsIHRiX3NpemUgPSAwOw0KPiA+DQo+ID4gLQlpZiAob3AtPnR1cmJvX2VuYy5jb2RlX2Jsb2Nr X21vZGUpIHsNCj4gPiArCWlmIChvcC0+dHVyYm9fZW5jLmNvZGVfYmxvY2tfbW9kZSA9PSBSVEVf QkJERVZfQ09ERV9CTE9DSykgew0KPiA+ICAJCXRiX3NpemUgPSBvcC0+dHVyYm9fZW5jLnRiX3Bh cmFtcy5rX25lZzsNCj4gPiAgCX0gZWxzZSB7DQo+ID4gIAkJYyA9IG9wLT50dXJib19lbmMudGJf cGFyYW1zLmM7DQo+ID4gQEAgLTIyOTcsNyArMjI5Nyw3IEBAIHR5cGVkZWYgaW50ICh0ZXN0X2Nh c2VfZnVuY3Rpb24pKHN0cnVjdA0KPiBhY3RpdmVfZGV2aWNlICphZCwNCj4gPiAgCXVpbnQzMl90 IGMsIHIsIHRiX3NpemUgPSAwOw0KPiA+ICAJdWludDE2X3Qgc3lzX2NvbHMgPSAob3AtPmxkcGNf ZW5jLmJhc2VncmFwaCA9PSAxKSA/IDIyIDogMTA7DQo+ID4NCj4gPiAtCWlmIChvcC0+dHVyYm9f ZW5jLmNvZGVfYmxvY2tfbW9kZSkgew0KPiA+ICsJaWYgKG9wLT5sZHBjX2VuYy5jb2RlX2Jsb2Nr X21vZGUgPT0gUlRFX0JCREVWX0NPREVfQkxPQ0spIHsNCj4gPiAgCQl0Yl9zaXplID0gc3lzX2Nv bHMgKiBvcC0+bGRwY19lbmMuel9jIC0gb3AtPmxkcGNfZW5jLm5fZmlsbGVyOw0KPiA+ICAJfSBl bHNlIHsNCj4gPiAgCQljID0gb3AtPnR1cmJvX2VuYy50Yl9wYXJhbXMuYzsNCj4gPiBkaWZmIC0t Z2l0IGEvYXBwL3Rlc3QtYmJkZXYvdGVzdF9iYmRldl92ZWN0b3IuYw0KPiA+IGIvYXBwL3Rlc3Qt YmJkZXYvdGVzdF9iYmRldl92ZWN0b3IuYw0KPiA+IGluZGV4IDUwZDFkYTAuLjYxNGRiZDEgMTAw NjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QtYmJkZXYvdGVzdF9iYmRldl92ZWN0b3IuYw0KPiA+ICsr KyBiL2FwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfdmVjdG9yLmMNCj4gPiBAQCAtMTA1Miw5ICsx MDUyLDkgQEANCj4gPiAgCWlmICghKG1hc2sgJiBURVNUX0JCREVWX1ZGX0NPREVfQkxPQ0tfTU9E RSkpIHsNCj4gPiAgCQlwcmludGYoDQo+ID4gIAkJCSJXQVJOSU5HOiBjb2RlX2Jsb2NrX21vZGUg d2FzIG5vdCBzcGVjaWZpZWQgaW4NCj4gdmVjdG9yIGZpbGUgYW5kIHdpbGwgYmUgc2V0IHRvIDEg KDAgLSBUQiBNb2RlLCAxIC0gQ0IgbW9kZSlcbiIpOw0KPiA+IC0JCXR1cmJvX2RlYy0+Y29kZV9i bG9ja19tb2RlID0gMTsNCj4gPiArCQl0dXJib19kZWMtPmNvZGVfYmxvY2tfbW9kZSA9IFJURV9C QkRFVl9DT0RFX0JMT0NLOw0KPiA+ICAJfQ0KPiA+IC0JaWYgKHR1cmJvX2RlYy0+Y29kZV9ibG9j a19tb2RlID09IDApIHsNCj4gPiArCWlmICh0dXJib19kZWMtPmNvZGVfYmxvY2tfbW9kZSA9PQ0K PiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKSB7DQo+ID4gIAkJaWYgKCEobWFzayAmIFRFU1Rf QkJERVZfVkZfRUEpKQ0KPiA+ICAJCQlwcmludGYoDQo+ID4gIAkJCQkiV0FSTklORzogZWEgd2Fz IG5vdCBzcGVjaWZpZWQgaW4gdmVjdG9yIGZpbGUNCj4gYW5kIHdpbGwgYmUgc2V0IHRvDQo+ID4g MFxuIik7IEBAIC0xMTQyLDkgKzExNDIsOSBAQA0KPiA+ICAJaWYgKCEobWFzayAmIFRFU1RfQkJE RVZfVkZfQ09ERV9CTE9DS19NT0RFKSkgew0KPiA+ICAJCXByaW50ZigNCj4gPiAgCQkJIldBUk5J Tkc6IGNvZGVfYmxvY2tfbW9kZSB3YXMgbm90IHNwZWNpZmllZCBpbg0KPiB2ZWN0b3IgZmlsZSBh bmQgd2lsbCBiZSBzZXQgdG8gMSAoMCAtIFRCIE1vZGUsIDEgLSBDQiBtb2RlKVxuIik7DQo+ID4g LQkJbGRwY19kZWMtPmNvZGVfYmxvY2tfbW9kZSA9IDE7DQo+ID4gKwkJbGRwY19kZWMtPmNvZGVf YmxvY2tfbW9kZSA9IFJURV9CQkRFVl9DT0RFX0JMT0NLOw0KPiA+ICAJfQ0KPiA+IC0JaWYgKGxk cGNfZGVjLT5jb2RlX2Jsb2NrX21vZGUgPT0gMCkgew0KPiA+ICsJaWYgKGxkcGNfZGVjLT5jb2Rl X2Jsb2NrX21vZGUgPT0gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSykNCj4gew0KPiA+ICAJCWlm ICghKG1hc2sgJiBURVNUX0JCREVWX1ZGX0VBKSkNCj4gPiAgCQkJcHJpbnRmKA0KPiA+ICAJCQkJ IldBUk5JTkc6IGVhIHdhcyBub3Qgc3BlY2lmaWVkIGluIHZlY3RvciBmaWxlDQo+IGFuZCB3aWxs IGJlIHNldCB0bw0KPiA+IDBcbiIpOyBAQCAtMTIxMCw5ICsxMjEwLDkgQEANCj4gPiAgCWlmICgh KG1hc2sgJiBURVNUX0JCREVWX1ZGX0NPREVfQkxPQ0tfTU9ERSkpIHsNCj4gPiAgCQlwcmludGYo DQo+ID4gIAkJCSJXQVJOSU5HOiBjb2RlX2Jsb2NrX21vZGUgd2FzIG5vdCBzcGVjaWZpZWQgaW4N Cj4gdmVjdG9yIGZpbGUgYW5kIHdpbGwgYmUgc2V0IHRvIDFcbiIpOw0KPiA+IC0JCXZlY3Rvci0+ dHVyYm9fZW5jLmNvZGVfYmxvY2tfbW9kZSA9IDE7DQo+ID4gKwkJdmVjdG9yLT50dXJib19lbmMu Y29kZV9ibG9ja19tb2RlID0NCj4gUlRFX0JCREVWX0NPREVfQkxPQ0s7DQo+ID4gIAl9DQo+ID4g LQlpZiAodmVjdG9yLT50dXJib19lbmMuY29kZV9ibG9ja19tb2RlID09IDApIHsNCj4gPiArCWlm ICh2ZWN0b3ItPnR1cmJvX2VuYy5jb2RlX2Jsb2NrX21vZGUgPT0NCj4gUlRFX0JCREVWX1RSQU5T UE9SVF9CTE9DSykNCj4gPiArew0KPiA+ICAJCWlmICghKG1hc2sgJiBURVNUX0JCREVWX1ZGX0VB KSAmJiAodmVjdG9yLQ0KPiA+dHVyYm9fZW5jLm9wX2ZsYWdzICYNCj4gPiAgCQkJCVJURV9CQkRF Vl9UVVJCT19SQVRFX01BVENIKSkNCj4gPiAgCQkJcHJpbnRmKA0KPiA+IEBAIC0xMjk4LDkgKzEy OTgsOSBAQA0KPiA+ICAJaWYgKCEobWFzayAmIFRFU1RfQkJERVZfVkZfQ09ERV9CTE9DS19NT0RF KSkgew0KPiA+ICAJCXByaW50ZigNCj4gPiAgCQkJIldBUk5JTkc6IGNvZGVfYmxvY2tfbW9kZSB3 YXMgbm90IHNwZWNpZmllZCBpbg0KPiB2ZWN0b3IgZmlsZSBhbmQgd2lsbCBiZSBzZXQgdG8gMVxu Iik7DQo+ID4gLQkJdmVjdG9yLT50dXJib19lbmMuY29kZV9ibG9ja19tb2RlID0gMTsNCj4gPiAr CQl2ZWN0b3ItPnR1cmJvX2VuYy5jb2RlX2Jsb2NrX21vZGUgPQ0KPiBSVEVfQkJERVZfQ09ERV9C TE9DSzsNCj4gPiAgCX0NCj4gPiAtCWlmICh2ZWN0b3ItPnR1cmJvX2VuYy5jb2RlX2Jsb2NrX21v ZGUgPT0gMCkgew0KPiA+ICsJaWYgKHZlY3Rvci0+dHVyYm9fZW5jLmNvZGVfYmxvY2tfbW9kZSA9 PQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKQ0KPiA+ICt7DQo+ID4gIAl9IGVsc2Ugew0K PiA+ICAJCWlmICghKG1hc2sgJiBURVNUX0JCREVWX1ZGX0UpICYmICh2ZWN0b3ItDQo+ID50dXJi b19lbmMub3BfZmxhZ3MgJg0KPiA+ICAJCQkJUlRFX0JCREVWX1RVUkJPX1JBVEVfTUFUQ0gpKQ0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5j DQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gaW5k ZXggNWU2NjNhNi4uY2EyNzAzZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2Fj YzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAv cnRlX2FjYzEwMF9wbWQuYw0KPiA+IEBAIC0xMTY4LDcgKzExNjgsNyBAQA0KPiA+ICBhY2MxMDBf ZmN3X3RlX2ZpbGwoY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9lbmNfb3AgKm9wLCBzdHJ1Y3QNCj4g PiBhY2MxMDBfZmN3X3RlICpmY3cpICB7DQo+ID4gIAlmY3ctPmNvZGVfYmxvY2tfbW9kZSA9IG9w LT50dXJib19lbmMuY29kZV9ibG9ja19tb2RlOw0KPiA+IC0JaWYgKGZjdy0+Y29kZV9ibG9ja19t b2RlID09IDApIHsgLyogRm9yIFRCIG1vZGUgKi8NCj4gPiArCWlmIChmY3ctPmNvZGVfYmxvY2tf bW9kZSA9PSBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKSB7DQo+ID4gIAkJZmN3LT5rX25lZyA9 IG9wLT50dXJib19lbmMudGJfcGFyYW1zLmtfbmVnOw0KPiA+ICAJCWZjdy0+a19wb3MgPSBvcC0+ dHVyYm9fZW5jLnRiX3BhcmFtcy5rX3BvczsNCj4gPiAgCQlmY3ctPmNfbmVnID0gb3AtPnR1cmJv X2VuYy50Yl9wYXJhbXMuY19uZWc7IEBAIC0xMjcxLDcNCj4gKzEyNzEsNyBAQA0KPiA+IHsNCj4g PiAgCS8qIE5vdGUgOiBFYXJseSB0ZXJtaW5hdGlvbiBpcyBhbHdheXMgZW5hYmxlZCBmb3IgNEdV TCAqLw0KPiA+ICAJZmN3LT5mY3dfdmVyID0gMTsNCj4gPiAtCWlmIChvcC0+dHVyYm9fZGVjLmNv ZGVfYmxvY2tfbW9kZSA9PSAwKQ0KPiA+ICsJaWYgKG9wLT50dXJib19kZWMuY29kZV9ibG9ja19t b2RlID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gIAkJZmN3LT5rX3BvcyA9 IG9wLT50dXJib19kZWMudGJfcGFyYW1zLmtfcG9zOw0KPiA+ICAJZWxzZQ0KPiA+ICAJCWZjdy0+ a19wb3MgPSBvcC0+dHVyYm9fZGVjLmNiX3BhcmFtcy5rOyBAQCAtMTMwMSw3DQo+ICsxMzAxLDcg QEANCj4gPiAgCWZjdy0+bmNiID0gb3AtPmxkcGNfZGVjLm5fY2I7DQo+ID4gIAlmY3ctPmswID0g Z2V0X2swKGZjdy0+bmNiLCBmY3ctPlpjLCBvcC0+bGRwY19kZWMuYmFzZWdyYXBoLA0KPiA+ICAJ CQlvcC0+bGRwY19kZWMucnZfaW5kZXgpOw0KPiA+IC0JaWYgKG9wLT5sZHBjX2RlYy5jb2RlX2Js b2NrX21vZGUgPT0gMSkNCj4gPiArCWlmIChvcC0+bGRwY19kZWMuY29kZV9ibG9ja19tb2RlID09 IFJURV9CQkRFVl9DT0RFX0JMT0NLKQ0KPiA+ICAJCWZjdy0+cm1fZSA9IG9wLT5sZHBjX2RlYy5j Yl9wYXJhbXMuZTsNCj4gPiAgCWVsc2UNCj4gPiAgCQlmY3ctPnJtX2UgPSAob3AtPmxkcGNfZGVj LnRiX3BhcmFtcy5yIDwgQEAgLTE1NTQsNw0KPiArMTU1NCw3IEBADQo+ID4gIAlkZXNjLT53b3Jk MyA9IDA7DQo+ID4gIAlkZXNjLT5udW1DQnMgPSAxOw0KPiA+DQo+ID4gLQlpZiAob3AtPnR1cmJv X2VuYy5jb2RlX2Jsb2NrX21vZGUgPT0gMCkgew0KPiA+ICsJaWYgKG9wLT50dXJib19lbmMuY29k ZV9ibG9ja19tb2RlID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spIHsNCj4gPiAgCQll YSA9IG9wLT50dXJib19lbmMudGJfcGFyYW1zLmVhOw0KPiA+ICAJCWViID0gb3AtPnR1cmJvX2Vu Yy50Yl9wYXJhbXMuZWI7DQo+ID4gIAkJY2FiID0gb3AtPnR1cmJvX2VuYy50Yl9wYXJhbXMuY2Fi Ow0KPiA+IEBAIC0xNjk1LDcgKzE2OTUsNyBAQA0KPiA+ICAJZGVzYy0+d29yZDMgPSAwOw0KPiA+ ICAJZGVzYy0+bnVtQ0JzID0gMTsNCj4gPg0KPiA+IC0JaWYgKG9wLT50dXJib19kZWMuY29kZV9i bG9ja19tb2RlID09IDApIHsNCj4gPiArCWlmIChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9k ZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKSB7DQo+ID4gIAkJayA9IChyIDwgb3At PnR1cmJvX2RlYy50Yl9wYXJhbXMuY19uZWcpDQo+ID4gIAkJCT8gb3AtPnR1cmJvX2RlYy50Yl9w YXJhbXMua19uZWcNCj4gPiAgCQkJOiBvcC0+dHVyYm9fZGVjLnRiX3BhcmFtcy5rX3BvczsNCj4g PiBAQCAtMTcwNyw3ICsxNzA3LDcgQEANCj4gPiAgCQllID0gb3AtPnR1cmJvX2RlYy5jYl9wYXJh bXMuZTsNCj4gPiAgCX0NCj4gPg0KPiA+IC0JaWYgKChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tf bW9kZSA9PSAwKQ0KPiA+ICsJaWYgKChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9PQ0K PiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKQ0KPiA+ICAJCSYmICFjaGVja19iaXQob3AtPnR1 cmJvX2RlYy5vcF9mbGFncywNCj4gPiAgCQlSVEVfQkJERVZfVFVSQk9fREVDX1RCX0NSQ18yNEJf S0VFUCkpDQo+ID4gIAkJY3JjMjRfb3ZlcmxhcCA9IDI0Ow0KPiA+IEBAIC0yMDY2LDE1ICsyMDY2 LDE1IEBADQo+ID4gIAkJCQl0dXJib19lbmMtPnJ2X2luZGV4KTsNCj4gPiAgCQlyZXR1cm4gLTE7 DQo+ID4gIAl9DQo+ID4gLQlpZiAodHVyYm9fZW5jLT5jb2RlX2Jsb2NrX21vZGUgIT0gMCAmJg0K PiA+IC0JCQl0dXJib19lbmMtPmNvZGVfYmxvY2tfbW9kZSAhPSAxKSB7DQo+ID4gKwlpZiAodHVy Ym9fZW5jLT5jb2RlX2Jsb2NrX21vZGUgIT0NCj4gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSyAm Jg0KPiA+ICsJCQl0dXJib19lbmMtPmNvZGVfYmxvY2tfbW9kZSAhPQ0KPiBSVEVfQkJERVZfQ09E RV9CTE9DSykgew0KPiA+ICAJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICAJCQkJImNvZGVfYmxv Y2tfbW9kZSAoJXUpIGlzIG91dCBvZiByYW5nZSAwIDw9DQo+IHZhbHVlIDw9IDEiLA0KPiA+ICAJ CQkJdHVyYm9fZW5jLT5jb2RlX2Jsb2NrX21vZGUpOw0KPiA+ICAJCXJldHVybiAtMTsNCj4gPiAg CX0NCj4gPg0KPiA+IC0JaWYgKHR1cmJvX2VuYy0+Y29kZV9ibG9ja19tb2RlID09IDApIHsNCj4g PiArCWlmICh0dXJib19lbmMtPmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQ T1JUX0JMT0NLKSB7DQo+ID4gIAkJdGIgPSAmdHVyYm9fZW5jLT50Yl9wYXJhbXM7DQo+ID4gIAkJ aWYgKCh0Yi0+a19uZWcgPCBSVEVfQkJERVZfVFVSQk9fTUlOX0NCX1NJWkUNCj4gPiAgCQkJCXx8 IHRiLT5rX25lZyA+DQo+IFJURV9CQkRFVl9UVVJCT19NQVhfQ0JfU0laRSkgQEAgLTIyMTQsNyAr MjIxNCw3IEBADQo+ID4gIAkJCQlsZHBjX2VuYy0+cnZfaW5kZXgpOw0KPiA+ICAJCXJldHVybiAt MTsNCj4gPiAgCX0NCj4gPiAtCWlmIChsZHBjX2VuYy0+Y29kZV9ibG9ja19tb2RlID4gMSkgew0K PiA+ICsJaWYgKGxkcGNfZW5jLT5jb2RlX2Jsb2NrX21vZGUgPiBSVEVfQkJERVZfQ09ERV9CTE9D Sykgew0KPiA+ICAJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICAJCQkJImNvZGVfYmxvY2tfbW9k ZSAoJXUpIGlzIG91dCBvZiByYW5nZSAwIDw9DQo+IHZhbHVlIDw9IDEiLA0KPiA+ICAJCQkJbGRw Y19lbmMtPmNvZGVfYmxvY2tfbW9kZSk7DQo+ID4gQEAgLTIyNTgsNyArMjI1OCw3IEBADQo+ID4g IAkJCQlsZHBjX2RlYy0+cnZfaW5kZXgpOw0KPiA+ICAJCXJldHVybiAtMTsNCj4gPiAgCX0NCj4g PiAtCWlmIChsZHBjX2RlYy0+Y29kZV9ibG9ja19tb2RlID4gMSkgew0KPiA+ICsJaWYgKGxkcGNf ZGVjLT5jb2RlX2Jsb2NrX21vZGUgPiBSVEVfQkJERVZfQ09ERV9CTE9DSykgew0KPiA+ICAJCXJ0 ZV9iYmRldl9sb2coRVJSLA0KPiA+ICAJCQkJImNvZGVfYmxvY2tfbW9kZSAoJXUpIGlzIG91dCBv ZiByYW5nZSAwIDw9DQo+IHZhbHVlIDw9IDEiLA0KPiA+ICAJCQkJbGRwY19kZWMtPmNvZGVfYmxv Y2tfbW9kZSk7DQo+ID4gQEAgLTI1ODEsMTUgKzI1ODEsMTUgQEANCj4gPiAgCQkJCXR1cmJvX2Rl Yy0+aXRlcl9taW4sIHR1cmJvX2RlYy0+aXRlcl9tYXgpOw0KPiA+ICAJCXJldHVybiAtMTsNCj4g PiAgCX0NCj4gPiAtCWlmICh0dXJib19kZWMtPmNvZGVfYmxvY2tfbW9kZSAhPSAwICYmDQo+ID4g LQkJCXR1cmJvX2RlYy0+Y29kZV9ibG9ja19tb2RlICE9IDEpIHsNCj4gPiArCWlmICh0dXJib19k ZWMtPmNvZGVfYmxvY2tfbW9kZSAhPQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLICYmDQo+ ID4gKwkJCXR1cmJvX2RlYy0+Y29kZV9ibG9ja19tb2RlICE9DQo+IFJURV9CQkRFVl9DT0RFX0JM T0NLKSB7DQo+ID4gIAkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gIAkJCQkiY29kZV9ibG9ja19t b2RlICgldSkgaXMgb3V0IG9mIHJhbmdlIDAgPD0NCj4gdmFsdWUgPD0gMSIsDQo+ID4gIAkJCQl0 dXJib19kZWMtPmNvZGVfYmxvY2tfbW9kZSk7DQo+ID4gIAkJcmV0dXJuIC0xOw0KPiA+ICAJfQ0K PiA+DQo+ID4gLQlpZiAodHVyYm9fZGVjLT5jb2RlX2Jsb2NrX21vZGUgPT0gMCkgew0KPiA+ICsJ aWYgKHR1cmJvX2RlYy0+Y29kZV9ibG9ja19tb2RlID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRf QkxPQ0spIHsNCj4gPiAgCQl0YiA9ICZ0dXJib19kZWMtPnRiX3BhcmFtczsNCj4gPiAgCQlpZiAo KHRiLT5rX25lZyA8IFJURV9CQkRFVl9UVVJCT19NSU5fQ0JfU0laRQ0KPiA+ICAJCQkJfHwgdGIt PmtfbmVnID4NCj4gUlRFX0JCREVWX1RVUkJPX01BWF9DQl9TSVpFKSBAQCAtMzQxMSw3ICszNDEx LDcgQEANCj4gPiB7DQo+ID4gIAlpZiAodW5saWtlbHkobnVtID09IDApKQ0KPiA+ICAJCXJldHVy biAwOw0KPiA+IC0JaWYgKG9wc1swXS0+dHVyYm9fZW5jLmNvZGVfYmxvY2tfbW9kZSA9PSAwKQ0K PiA+ICsJaWYgKG9wc1swXS0+dHVyYm9fZW5jLmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJE RVZfVFJBTlNQT1JUX0JMT0NLKQ0KPiA+ICAJCXJldHVybiBhY2MxMDBfZW5xdWV1ZV9lbmNfdGIo cV9kYXRhLCBvcHMsIG51bSk7DQo+ID4gIAllbHNlDQo+ID4gIAkJcmV0dXJuIGFjYzEwMF9lbnF1 ZXVlX2VuY19jYihxX2RhdGEsIG9wcywgbnVtKTsgQEAgLQ0KPiAzNDI0LDcgKzM0MjQsNw0KPiA+ IEBAICB7DQo+ID4gIAlpZiAodW5saWtlbHkobnVtID09IDApKQ0KPiA+ICAJCXJldHVybiAwOw0K PiA+IC0JaWYgKG9wc1swXS0+bGRwY19lbmMuY29kZV9ibG9ja19tb2RlID09IDApDQo+ID4gKwlp ZiAob3BzWzBdLT5sZHBjX2VuYy5jb2RlX2Jsb2NrX21vZGUgPT0NCj4gUlRFX0JCREVWX1RSQU5T UE9SVF9CTE9DSykNCj4gPiAgCQlyZXR1cm4gYWNjMTAwX2VucXVldWVfZW5jX3RiKHFfZGF0YSwg b3BzLCBudW0pOw0KPiA+ICAJZWxzZQ0KPiA+ICAJCXJldHVybiBhY2MxMDBfZW5xdWV1ZV9sZHBj X2VuY19jYihxX2RhdGEsIG9wcywgbnVtKTsNCj4gQEAgLTM2MDcsNw0KPiA+ICszNjA3LDcgQEAg IHsNCj4gPiAgCWlmICh1bmxpa2VseShudW0gPT0gMCkpDQo+ID4gIAkJcmV0dXJuIDA7DQo+ID4g LQlpZiAob3BzWzBdLT50dXJib19kZWMuY29kZV9ibG9ja19tb2RlID09IDApDQo+ID4gKwlpZiAo b3BzWzBdLT50dXJib19kZWMuY29kZV9ibG9ja19tb2RlID09DQo+IFJURV9CQkRFVl9UUkFOU1BP UlRfQkxPQ0spDQo+ID4gIAkJcmV0dXJuIGFjYzEwMF9lbnF1ZXVlX2RlY190YihxX2RhdGEsIG9w cywgbnVtKTsNCj4gPiAgCWVsc2UNCj4gPiAgCQlyZXR1cm4gYWNjMTAwX2VucXVldWVfZGVjX2Ni KHFfZGF0YSwgb3BzLCBudW0pOyBAQCAtDQo+IDM2MjUsNyArMzYyNSw3DQo+ID4gQEANCj4gPiAg CWlmICh1bmxpa2VseSgoYXFfYXZhaWwgPT0gMCkgfHwgKG51bSA9PSAwKSkpDQo+ID4gIAkJcmV0 dXJuIDA7DQo+ID4NCj4gPiAtCWlmIChvcHNbMF0tPmxkcGNfZGVjLmNvZGVfYmxvY2tfbW9kZSA9 PSAwKQ0KPiA+ICsJaWYgKG9wc1swXS0+bGRwY19kZWMuY29kZV9ibG9ja19tb2RlID09DQo+IFJU RV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gIAkJcmV0dXJuIGFjYzEwMF9lbnF1ZXVlX2xk cGNfZGVjX3RiKHFfZGF0YSwgb3BzLCBudW0pOw0KPiA+ICAJZWxzZQ0KPiA+ICAJCXJldHVybiBh Y2MxMDBfZW5xdWV1ZV9sZHBjX2RlY19jYihxX2RhdGEsIG9wcywgbnVtKTsNCj4gQEAgLTM5NjYs Nw0KPiA+ICszOTY2LDcgQEANCj4gPiAgCWZvciAoaSA9IDA7IGkgPCBkZXF1ZXVlX251bTsgKytp KSB7DQo+ID4gIAkJb3AgPSAocS0+cmluZ19hZGRyICsgKChxLT5zd19yaW5nX3RhaWwgKyBkZXF1 ZXVlZF9jYnMpDQo+ID4gIAkJCSYgcS0+c3dfcmluZ193cmFwX21hc2spKS0+cmVxLm9wX2FkZHI7 DQo+ID4gLQkJaWYgKG9wLT50dXJib19lbmMuY29kZV9ibG9ja19tb2RlID09IDApDQo+ID4gKwkJ aWYgKG9wLT50dXJib19lbmMuY29kZV9ibG9ja19tb2RlID09DQo+IFJURV9CQkRFVl9UUkFOU1BP UlRfQkxPQ0spDQo+ID4gIAkJCXJldCA9IGRlcXVldWVfZW5jX29uZV9vcF90YihxLCAmb3BzW2ld LA0KPiBkZXF1ZXVlZF9jYnMsDQo+ID4gIAkJCQkJJmFxX2RlcXVldWVkKTsNCj4gPiAgCQllbHNl DQo+ID4gQEAgLTQwNTAsNyArNDA1MCw3IEBADQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgZGVxdWV1 ZV9udW07ICsraSkgew0KPiA+ICAJCW9wID0gKHEtPnJpbmdfYWRkciArICgocS0+c3dfcmluZ190 YWlsICsgZGVxdWV1ZWRfY2JzKQ0KPiA+ICAJCQkmIHEtPnN3X3Jpbmdfd3JhcF9tYXNrKSktPnJl cS5vcF9hZGRyOw0KPiA+IC0JCWlmIChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9PSAw KQ0KPiA+ICsJCWlmIChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJE RVZfVFJBTlNQT1JUX0JMT0NLKQ0KPiA+ICAJCQlyZXQgPSBkZXF1ZXVlX2RlY19vbmVfb3BfdGIo cSwgJm9wc1tpXSwNCj4gZGVxdWV1ZWRfY2JzLA0KPiA+ICAJCQkJCSZhcV9kZXF1ZXVlZCk7DQo+ ID4gIAkJZWxzZQ0KPiA+IEBAIC00MDk1LDcgKzQwOTUsNyBAQA0KPiA+ICAJZm9yIChpID0gMDsg aSA8IGRlcXVldWVfbnVtOyArK2kpIHsNCj4gPiAgCQlvcCA9IChxLT5yaW5nX2FkZHIgKyAoKHEt PnN3X3JpbmdfdGFpbCArIGRlcXVldWVkX2NicykNCj4gPiAgCQkJJiBxLT5zd19yaW5nX3dyYXBf bWFzaykpLT5yZXEub3BfYWRkcjsNCj4gPiAtCQlpZiAob3AtPmxkcGNfZGVjLmNvZGVfYmxvY2tf bW9kZSA9PSAwKQ0KPiA+ICsJCWlmIChvcC0+bGRwY19kZWMuY29kZV9ibG9ja19tb2RlID09DQo+ IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gIAkJCXJldCA9IGRlcXVldWVfZGVjX29u ZV9vcF90YihxLCAmb3BzW2ldLA0KPiBkZXF1ZXVlZF9jYnMsDQo+ID4gIAkJCQkJJmFxX2RlcXVl dWVkKTsNCj4gPiAgCQllbHNlDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvZnBn YV81Z25yX2ZlYy9ydGVfZnBnYV81Z25yX2ZlYy5jDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2Zw Z2FfNWducl9mZWMvcnRlX2ZwZ2FfNWducl9mZWMuYw0KPiA+IGluZGV4IGJkOTlmYjQuLjAyNmZj ODkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9mcGdhXzVnbnJfZmVjL3J0ZV9m cGdhXzVnbnJfZmVjLmMNCj4gPiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2ZwZ2FfNWducl9mZWMv cnRlX2ZwZ2FfNWducl9mZWMuYw0KPiA+IEBAIC0xMDY4LDE0ICsxMDY4LDE0IEBADQo+ID4gIAkJ CQlsZHBjX2VuYy0+YmFzZWdyYXBoKTsNCj4gPiAgCQlyZXR1cm4gLTE7DQo+ID4gIAl9DQo+ID4g LQlpZiAobGRwY19lbmMtPmNvZGVfYmxvY2tfbW9kZSA+IDEpIHsNCj4gPiArCWlmIChsZHBjX2Vu Yy0+Y29kZV9ibG9ja19tb2RlID4gUlRFX0JCREVWX0NPREVfQkxPQ0spIHsNCj4gPiAgCQlydGVf YmJkZXZfbG9nKEVSUiwNCj4gPiAgCQkJCSJjb2RlX2Jsb2NrX21vZGUgKCV1KSBpcyBvdXQgb2Yg cmFuZ2UgMDpUYg0KPiAxOkNCIiwNCj4gPiAgCQkJCWxkcGNfZW5jLT5jb2RlX2Jsb2NrX21vZGUp Ow0KPiA+ICAJCXJldHVybiAtMTsNCj4gPiAgCX0NCj4gPg0KPiA+IC0JaWYgKGxkcGNfZW5jLT5j b2RlX2Jsb2NrX21vZGUgPT0gMCkgew0KPiA+ICsJaWYgKGxkcGNfZW5jLT5jb2RlX2Jsb2NrX21v ZGUgPT0gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSykNCj4gew0KPiA+ICAJCXRiID0gJmxkcGNf ZW5jLT50Yl9wYXJhbXM7DQo+ID4gIAkJaWYgKHRiLT5jID09IDApIHsNCj4gPiAgCQkJcnRlX2Ji ZGV2X2xvZyhFUlIsDQo+ID4gQEAgLTExNjEsMTQgKzExNjEsMTQgQEANCj4gPiAgCQlyZXR1cm4g LTE7DQo+ID4gIAl9DQo+ID4NCj4gPiAtCWlmIChsZHBjX2RlYy0+Y29kZV9ibG9ja19tb2RlID4g MSkgew0KPiA+ICsJaWYgKGxkcGNfZGVjLT5jb2RlX2Jsb2NrX21vZGUgPiBSVEVfQkJERVZfQ09E RV9CTE9DSykgew0KPiA+ICAJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICAJCQkJImNvZGVfYmxv Y2tfbW9kZSAoJXUpIGlzIG91dCBvZiByYW5nZSAwIDw9DQo+IHZhbHVlIDw9IDEiLA0KPiA+ICAJ CQkJbGRwY19kZWMtPmNvZGVfYmxvY2tfbW9kZSk7DQo+ID4gIAkJcmV0dXJuIC0xOw0KPiA+ICAJ fQ0KPiA+DQo+ID4gLQlpZiAobGRwY19kZWMtPmNvZGVfYmxvY2tfbW9kZSA9PSAwKSB7DQo+ID4g KwlpZiAobGRwY19kZWMtPmNvZGVfYmxvY2tfbW9kZSA9PSBSVEVfQkJERVZfVFJBTlNQT1JUX0JM T0NLKQ0KPiB7DQo+ID4gIAkJdGIgPSAmbGRwY19kZWMtPnRiX3BhcmFtczsNCj4gPiAgCQlpZiAo dGItPmMgPCAxKSB7DQo+ID4gIAkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+IEBAIC0xMzcwLDcg KzEzNzAsNyBAQA0KPiA+ICAJaWYgKGVuYy0+b3BfZmxhZ3MgJiBSVEVfQkJERVZfTERQQ19DUkNf MjRCX0FUVEFDSCkNCj4gPiAgCQljcmMyNF9iaXRzID0gMjQ7DQo+ID4NCj4gPiAtCWlmIChlbmMt PmNvZGVfYmxvY2tfbW9kZSA9PSAwKSB7DQo+ID4gKwlpZiAoZW5jLT5jb2RlX2Jsb2NrX21vZGUg PT0gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSykgew0KPiA+ICAJCS8qIEZvciBUcmFuc3BvcnQg QmxvY2sgbW9kZSAqLw0KPiA+ICAJCS8qIEZJWE1FICovDQo+ID4gIAkJYyA9IGVuYy0+dGJfcGFy YW1zLmM7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvZnBnYV9sdGVfZmVjL2Zw Z2FfbHRlX2ZlYy5jDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2ZwZ2FfbHRlX2ZlYy9mcGdhX2x0 ZV9mZWMuYw0KPiA+IGluZGV4IGEwZmIxMWMuLjFhNzJhYTcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9iYXNlYmFuZC9mcGdhX2x0ZV9mZWMvZnBnYV9sdGVfZmVjLmMNCj4gPiArKysgYi9kcml2 ZXJzL2Jhc2ViYW5kL2ZwZ2FfbHRlX2ZlYy9mcGdhX2x0ZV9mZWMuYw0KPiA+IEBAIC0xMzA5LDcg KzEzMDksNyBAQCBzdHJ1Y3QgX19ydGVfY2FjaGVfYWxpZ25lZCBmcGdhX3F1ZXVlIHsNCj4gPiAg CWRlc2MtPmsgPSBrOw0KPiA+ICAJZGVzYy0+Y3JjX3R5cGUgPSAhY2hlY2tfYml0KG9wLT50dXJi b19kZWMub3BfZmxhZ3MsDQo+ID4gIAkJCVJURV9CQkRFVl9UVVJCT19DUkNfVFlQRV8yNEIpOw0K PiA+IC0JaWYgKChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9PSAwKQ0KPiA+ICsJaWYg KChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JU X0JMT0NLKQ0KPiA+ICAJCSYmICFjaGVja19iaXQob3AtPnR1cmJvX2RlYy5vcF9mbGFncywNCj4g PiAgCQlSVEVfQkJERVZfVFVSQk9fREVDX1RCX0NSQ18yNEJfS0VFUCkpDQo+ID4gIAkJZGVzYy0+ ZHJvcF9jcmMgPSAxOw0KPiA+IEBAIC0xMzY2LDE1ICsxMzY2LDE1IEBAIHN0cnVjdCBfX3J0ZV9j YWNoZV9hbGlnbmVkIGZwZ2FfcXVldWUgew0KPiA+ICAJCQkJdHVyYm9fZW5jLT5ydl9pbmRleCk7 DQo+ID4gIAkJcmV0dXJuIC0xOw0KPiA+ICAJfQ0KPiA+IC0JaWYgKHR1cmJvX2VuYy0+Y29kZV9i bG9ja19tb2RlICE9IDAgJiYNCj4gPiAtCQkJdHVyYm9fZW5jLT5jb2RlX2Jsb2NrX21vZGUgIT0g MSkgew0KPiA+ICsJaWYgKHR1cmJvX2VuYy0+Y29kZV9ibG9ja19tb2RlICE9DQo+IFJURV9CQkRF Vl9UUkFOU1BPUlRfQkxPQ0sgJiYNCj4gPiArCQkJdHVyYm9fZW5jLT5jb2RlX2Jsb2NrX21vZGUg IT0NCj4gUlRFX0JCREVWX0NPREVfQkxPQ0spIHsNCj4gPiAgCQlydGVfYmJkZXZfbG9nKEVSUiwN Cj4gPiAgCQkJCSJjb2RlX2Jsb2NrX21vZGUgKCV1KSBpcyBvdXQgb2YgcmFuZ2UgMCA8PQ0KPiB2 YWx1ZSA8PSAxIiwNCj4gPiAgCQkJCXR1cmJvX2VuYy0+Y29kZV9ibG9ja19tb2RlKTsNCj4gPiAg CQlyZXR1cm4gLTE7DQo+ID4gIAl9DQo+ID4NCj4gPiAtCWlmICh0dXJib19lbmMtPmNvZGVfYmxv Y2tfbW9kZSA9PSAwKSB7DQo+ID4gKwlpZiAodHVyYm9fZW5jLT5jb2RlX2Jsb2NrX21vZGUgPT0N Cj4gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSykgew0KPiA+ICAJCXRiID0gJnR1cmJvX2VuYy0+ dGJfcGFyYW1zOw0KPiA+ICAJCWlmICgodGItPmtfbmVnIDwgUlRFX0JCREVWX1RVUkJPX01JTl9D Ql9TSVpFDQo+ID4gIAkJCQl8fCB0Yi0+a19uZWcgPg0KPiBSVEVfQkJERVZfVFVSQk9fTUFYX0NC X1NJWkUpIEBAIC0xNjk4LDE1ICsxNjk4LDE1DQo+ID4gQEAgc3RydWN0IF9fcnRlX2NhY2hlX2Fs aWduZWQgZnBnYV9xdWV1ZSB7DQo+ID4gIAkJCQl0dXJib19kZWMtPml0ZXJfbWluLCB0dXJib19k ZWMtPml0ZXJfbWF4KTsNCj4gPiAgCQlyZXR1cm4gLTE7DQo+ID4gIAl9DQo+ID4gLQlpZiAodHVy Ym9fZGVjLT5jb2RlX2Jsb2NrX21vZGUgIT0gMCAmJg0KPiA+IC0JCQl0dXJib19kZWMtPmNvZGVf YmxvY2tfbW9kZSAhPSAxKSB7DQo+ID4gKwlpZiAodHVyYm9fZGVjLT5jb2RlX2Jsb2NrX21vZGUg IT0NCj4gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSyAmJg0KPiA+ICsJCQl0dXJib19kZWMtPmNv ZGVfYmxvY2tfbW9kZSAhPQ0KPiBSVEVfQkJERVZfQ09ERV9CTE9DSykgew0KPiA+ICAJCXJ0ZV9i YmRldl9sb2coRVJSLA0KPiA+ICAJCQkJImNvZGVfYmxvY2tfbW9kZSAoJXUpIGlzIG91dCBvZiBy YW5nZSAwIDw9DQo+IHZhbHVlIDw9IDEiLA0KPiA+ICAJCQkJdHVyYm9fZGVjLT5jb2RlX2Jsb2Nr X21vZGUpOw0KPiA+ICAJCXJldHVybiAtMTsNCj4gPiAgCX0NCj4gPg0KPiA+IC0JaWYgKHR1cmJv X2RlYy0+Y29kZV9ibG9ja19tb2RlID09IDApIHsNCj4gPiArCWlmICh0dXJib19kZWMtPmNvZGVf YmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKSB7DQo+ID4NCj4gPiAg CQlpZiAoKHR1cmJvX2RlYy0+b3BfZmxhZ3MgJg0KPiA+ICAJCQlSVEVfQkJERVZfVFVSQk9fREVD X1RCX0NSQ18yNEJfS0VFUCkgJiYNCj4gQEAgLTE5NTcsNyArMTk1Nyw4IEBADQo+ID4gc3RydWN0 IF9fcnRlX2NhY2hlX2FsaWduZWQgZnBnYV9xdWV1ZSB7DQo+ID4gIAkJcS0+cmluZ19jdHJsX3Jl Zy5yaW5nX3NpemUgKyBxLT5oZWFkX2ZyZWVfZGVzYyAtIHEtPnRhaWwgLSAxOw0KPiA+DQo+ID4g IAlmb3IgKGkgPSAwOyBpIDwgbnVtOyArK2kpIHsNCj4gPiAtCQlpZiAob3BzW2ldLT50dXJib19l bmMuY29kZV9ibG9ja19tb2RlID09IDApIHsNCj4gPiArCQlpZiAob3BzW2ldLT50dXJib19lbmMu Y29kZV9ibG9ja19tb2RlID09DQo+ID4gKwkJCQlSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKSB7 DQo+ID4gIAkJCWNic19pbl9vcCA9IGdldF9udW1fY2JzX2luX29wX2VuYygmb3BzW2ldLQ0KPiA+ dHVyYm9fZW5jKTsNCj4gPiAgCQkJLyogQ2hlY2sgaWYgdGhlcmUgaXMgYXZhaWxhYmxlIHNwYWNl IGZvciBmdXJ0aGVyDQo+ID4gIAkJCSAqIHByb2Nlc3NpbmcNCj4gPiBAQCAtMjAyNiw3ICsyMDI3 LDggQEAgc3RydWN0IF9fcnRlX2NhY2hlX2FsaWduZWQgZnBnYV9xdWV1ZSB7DQo+ID4gIAkJcS0+ cmluZ19jdHJsX3JlZy5yaW5nX3NpemUgKyBxLT5oZWFkX2ZyZWVfZGVzYyAtIHEtPnRhaWwgLSAx Ow0KPiA+DQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgbnVtOyArK2kpIHsNCj4gPiAtCQlpZiAob3Bz W2ldLT50dXJib19kZWMuY29kZV9ibG9ja19tb2RlID09IDApIHsNCj4gPiArCQlpZiAob3BzW2ld LT50dXJib19kZWMuY29kZV9ibG9ja19tb2RlID09DQo+ID4gKwkJCQlSVEVfQkJERVZfVFJBTlNQ T1JUX0JMT0NLKSB7DQo+ID4gIAkJCWNic19pbl9vcCA9IGdldF9udW1fY2JzX2luX29wX2RlYygm b3BzW2ldLQ0KPiA+dHVyYm9fZGVjKTsNCj4gPiAgCQkJLyogQ2hlY2sgaWYgdGhlcmUgaXMgYXZh aWxhYmxlIHNwYWNlIGZvciBmdXJ0aGVyDQo+ID4gIAkJCSAqIHByb2Nlc3NpbmcNCj4gPiBAQCAt MjI0Niw3ICsyMjQ4LDcgQEAgc3RydWN0IF9fcnRlX2NhY2hlX2FsaWduZWQgZnBnYV9xdWV1ZSB7 DQo+ID4gIAlmb3IgKGkgPSAwOyAoaSA8IG51bSkgJiYgKGRlcXVldWVkX2NicyA8IGF2YWlsKTsg KytpKSB7DQo+ID4gIAkJb3AgPSAocS0+cmluZ19hZGRyICsgKChxLT5oZWFkX2ZyZWVfZGVzYyAr IGRlcXVldWVkX2NicykNCj4gPiAgCQkJJiBxLT5zd19yaW5nX3dyYXBfbWFzaykpLT5lbmNfcmVx Lm9wX2FkZHI7DQo+ID4gLQkJaWYgKG9wLT50dXJib19lbmMuY29kZV9ibG9ja19tb2RlID09IDAp DQo+ID4gKwkJaWYgKG9wLT50dXJib19lbmMuY29kZV9ibG9ja19tb2RlID09DQo+IFJURV9CQkRF Vl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gIAkJCXJldCA9IGRlcXVldWVfZW5jX29uZV9vcF90Yihx LCAmb3BzW2ldLA0KPiBkZXF1ZXVlZF9jYnMpOw0KPiA+ICAJCWVsc2UNCj4gPiAgCQkJcmV0ID0g ZGVxdWV1ZV9lbmNfb25lX29wX2NiKHEsICZvcHNbaV0sDQo+IGRlcXVldWVkX2Nicyk7IEBAIC0y Mjg0LDcNCj4gPiArMjI4Niw3IEBAIHN0cnVjdCBfX3J0ZV9jYWNoZV9hbGlnbmVkIGZwZ2FfcXVl dWUgew0KPiA+ICAJZm9yIChpID0gMDsgKGkgPCBudW0pICYmIChkZXF1ZXVlZF9jYnMgPCBhdmFp bCk7ICsraSkgew0KPiA+ICAJCW9wID0gKHEtPnJpbmdfYWRkciArICgocS0+aGVhZF9mcmVlX2Rl c2MgKyBkZXF1ZXVlZF9jYnMpDQo+ID4gIAkJCSYgcS0+c3dfcmluZ193cmFwX21hc2spKS0+ZGVj X3JlcS5vcF9hZGRyOw0KPiA+IC0JCWlmIChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9 PSAwKQ0KPiA+ICsJCWlmIChvcC0+dHVyYm9fZGVjLmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVf QkJERVZfVFJBTlNQT1JUX0JMT0NLKQ0KPiA+ICAJCQlyZXQgPSBkZXF1ZXVlX2RlY19vbmVfb3Bf dGIocSwgJm9wc1tpXSwNCj4gZGVxdWV1ZWRfY2JzKTsNCj4gPiAgCQllbHNlDQo+ID4gIAkJCXJl dCA9IGRlcXVldWVfZGVjX29uZV9vcF9jYihxLCAmb3BzW2ldLA0KPiBkZXF1ZXVlZF9jYnMpOyBk aWZmIC0tZ2l0DQo+ID4gYS9kcml2ZXJzL2Jhc2ViYW5kL3R1cmJvX3N3L2JiZGV2X3R1cmJvX3Nv ZnR3YXJlLmMNCj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQvdHVyYm9fc3cvYmJkZXZfdHVyYm9fc29m dHdhcmUuYw0KPiA+IGluZGV4IGFhN2YxMjIuLjg1Y2Y5M2QgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9iYXNlYmFuZC90dXJib19zdy9iYmRldl90dXJib19zb2Z0d2FyZS5jDQo+ID4gKysrIGIv ZHJpdmVycy9iYXNlYmFuZC90dXJib19zdy9iYmRldl90dXJib19zb2Z0d2FyZS5jDQo+ID4gQEAg LTU3OCw3ICs1NzgsNyBAQCBzdHJ1Y3QgdHVyYm9fc3dfcXVldWUgew0KPiA+DQo+ID4gIAkvKiBD UkMyNEEgKGZvciBUQikgKi8NCj4gPiAgCWlmICgoZW5jLT5vcF9mbGFncyAmIFJURV9CQkRFVl9U VVJCT19DUkNfMjRBX0FUVEFDSCkgJiYNCj4gPiAtCQkoZW5jLT5jb2RlX2Jsb2NrX21vZGUgPT0g MSkpIHsNCj4gPiArCQkoZW5jLT5jb2RlX2Jsb2NrX21vZGUgPT0gUlRFX0JCREVWX0NPREVfQkxP Q0spKSB7DQo+ID4gICNpZmRlZiBSVEVfTElCUlRFX0JCREVWX0RFQlVHDQo+ID4gIAkJcmV0ID0g aXNfZW5jX2lucHV0X3ZhbGlkKGsgLSAyNCwga19pZHgsIGluX2xlbmd0aCk7DQo+ID4gIAkJaWYg KHJldCAhPSAwKSB7DQo+ID4gQEAgLTEwMDcsNyArMTAwNyw3IEBAIHN0cnVjdCB0dXJib19zd19x dWV1ZSB7DQo+ID4gIAkJKGVuYy0+b3BfZmxhZ3MgJiBSVEVfQkJERVZfVFVSQk9fQ1JDXzI0QV9B VFRBQ0gpKQ0KPiA+ICAJCWNyYzI0X2JpdHMgPSAyNDsNCj4gPg0KPiA+IC0JaWYgKGVuYy0+Y29k ZV9ibG9ja19tb2RlID09IDApIHsgLyogRm9yIFRyYW5zcG9ydCBCbG9jayBtb2RlICovDQo+ID4g KwlpZiAoZW5jLT5jb2RlX2Jsb2NrX21vZGUgPT0gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSykg ew0KPiA+ICAJCWMgPSBlbmMtPnRiX3BhcmFtcy5jOw0KPiA+ICAJCXIgPSBlbmMtPnRiX3BhcmFt cy5yOw0KPiA+ICAJfSBlbHNlIHsvKiBGb3IgQ29kZSBCbG9jayBtb2RlICovDQo+ID4gQEAgLTEw MTksNyArMTAxOSw3IEBAIHN0cnVjdCB0dXJib19zd19xdWV1ZSB7DQo+ID4NCj4gPiAgCQlzZWdf dG90YWxfbGVmdCA9IHJ0ZV9wa3RtYnVmX2RhdGFfbGVuKG1faW4pIC0gaW5fb2Zmc2V0Ow0KPiA+ DQo+ID4gLQkJaWYgKGVuYy0+Y29kZV9ibG9ja19tb2RlID09IDApIHsNCj4gPiArCQlpZiAoZW5j LT5jb2RlX2Jsb2NrX21vZGUgPT0NCj4gUlRFX0JCREVWX1RSQU5TUE9SVF9CTE9DSykgew0KPiA+ ICAJCQlrID0gKHIgPCBlbmMtPnRiX3BhcmFtcy5jX25lZykgPw0KPiA+ICAJCQkJZW5jLT50Yl9w YXJhbXMua19uZWcgOiBlbmMtDQo+ID50Yl9wYXJhbXMua19wb3M7DQo+ID4gIAkJCW5jYiA9IChy IDwgZW5jLT50Yl9wYXJhbXMuY19uZWcpID8NCj4gPiBAQCAtMTEwMSw3ICsxMTAxLDcgQEAgc3Ry dWN0IHR1cmJvX3N3X3F1ZXVlIHsNCj4gPiAgCQkoZW5jLT5vcF9mbGFncyAmIFJURV9CQkRFVl9U VVJCT19DUkNfMjRBX0FUVEFDSCkpDQo+ID4gIAkJY3JjMjRfYml0cyA9IDI0Ow0KPiA+DQo+ID4g LQlpZiAoZW5jLT5jb2RlX2Jsb2NrX21vZGUgPT0gMCkgeyAvKiBGb3IgVHJhbnNwb3J0IEJsb2Nr IG1vZGUgKi8NCj4gPiArCWlmIChlbmMtPmNvZGVfYmxvY2tfbW9kZSA9PSBSVEVfQkJERVZfVFJB TlNQT1JUX0JMT0NLKSB7DQo+ID4gIAkJYyA9IGVuYy0+dGJfcGFyYW1zLmM7DQo+ID4gIAkJciA9 IGVuYy0+dGJfcGFyYW1zLnI7DQo+ID4gIAl9IGVsc2UgeyAvKiBGb3IgQ29kZSBCbG9jayBtb2Rl ICovDQo+ID4gQEAgLTExMTMsNyArMTExMyw3IEBAIHN0cnVjdCB0dXJib19zd19xdWV1ZSB7DQo+ ID4NCj4gPiAgCQlzZWdfdG90YWxfbGVmdCA9IHJ0ZV9wa3RtYnVmX2RhdGFfbGVuKG1faW4pIC0g aW5fb2Zmc2V0Ow0KPiA+DQo+ID4gLQkJaWYgKGVuYy0+Y29kZV9ibG9ja19tb2RlID09IDApIHsN Cj4gPiArCQlpZiAoZW5jLT5jb2RlX2Jsb2NrX21vZGUgPT0NCj4gUlRFX0JCREVWX1RSQU5TUE9S VF9CTE9DSykgew0KPiA+ICAJCQllID0gKHIgPCBlbmMtPnRiX3BhcmFtcy5jYWIpID8NCj4gPiAg CQkJCWVuYy0+dGJfcGFyYW1zLmVhIDogZW5jLT50Yl9wYXJhbXMuZWI7DQo+ID4gIAkJfSBlbHNl IHsNCj4gPiBAQCAtMTU3MCw3ICsxNTcwLDcgQEAgc3RydWN0IHR1cmJvX3N3X3F1ZXVlIHsNCj4g PiAgCQlyZXR1cm47DQo+ID4gIAl9DQo+ID4NCj4gPiAtCWlmIChkZWMtPmNvZGVfYmxvY2tfbW9k ZSA9PSAwKSB7IC8qIEZvciBUcmFuc3BvcnQgQmxvY2sgbW9kZSAqLw0KPiA+ICsJaWYgKGRlYy0+ Y29kZV9ibG9ja19tb2RlID09IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spIHsNCj4gPiAgCQlj ID0gZGVjLT50Yl9wYXJhbXMuYzsNCj4gPiAgCX0gZWxzZSB7IC8qIEZvciBDb2RlIEJsb2NrIG1v ZGUgKi8NCj4gPiAgCQlrID0gZGVjLT5jYl9wYXJhbXMuazsNCj4gPiBAQCAtMTU4Miw3ICsxNTgy LDcgQEAgc3RydWN0IHR1cmJvX3N3X3F1ZXVlIHsNCj4gPiAgCQljcmMyNF9vdmVybGFwID0gMjQ7 DQo+ID4NCj4gPiAgCXdoaWxlIChtYnVmX3RvdGFsX2xlZnQgPiAwKSB7DQo+ID4gLQkJaWYgKGRl Yy0+Y29kZV9ibG9ja19tb2RlID09IDApDQo+ID4gKwkJaWYgKGRlYy0+Y29kZV9ibG9ja19tb2Rl ID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gIAkJCWsgPSAociA8IGRlYy0+ dGJfcGFyYW1zLmNfbmVnKSA/DQo+ID4gIAkJCQlkZWMtPnRiX3BhcmFtcy5rX25lZyA6IGRlYy0N Cj4gPnRiX3BhcmFtcy5rX3BvczsNCj4gPg0KPiA+IEBAIC0xNjU4LDcgKzE2NTgsNyBAQCBzdHJ1 Y3QgdHVyYm9fc3dfcXVldWUgew0KPiA+ICAJCXJldHVybjsNCj4gPiAgCX0NCj4gPg0KPiA+IC0J aWYgKGRlYy0+Y29kZV9ibG9ja19tb2RlID09IDApIHsgLyogRm9yIFRyYW5zcG9ydCBCbG9jayBt b2RlICovDQo+ID4gKwlpZiAoZGVjLT5jb2RlX2Jsb2NrX21vZGUgPT0gUlRFX0JCREVWX1RSQU5T UE9SVF9CTE9DSykgew0KPiA+ICAJCWMgPSBkZWMtPnRiX3BhcmFtcy5jOw0KPiA+ICAJCWUgPSBk ZWMtPnRiX3BhcmFtcy5lYTsNCj4gPiAgCX0gZWxzZSB7IC8qIEZvciBDb2RlIEJsb2NrIG1vZGUg Ki8NCj4gPiBAQCAtMTY3Myw3ICsxNjczLDcgQEAgc3RydWN0IHR1cmJvX3N3X3F1ZXVlIHsNCj4g PiAgCW91dF9sZW5ndGggPSAoKG91dF9sZW5ndGggLSBjcmMyNF9vdmVybGFwIC0gZGVjLT5uX2Zp bGxlcikgPj4gMyk7DQo+ID4NCj4gPiAgCXdoaWxlIChtYnVmX3RvdGFsX2xlZnQgPiAwKSB7DQo+ ID4gLQkJaWYgKGRlYy0+Y29kZV9ibG9ja19tb2RlID09IDApDQo+ID4gKwkJaWYgKGRlYy0+Y29k ZV9ibG9ja19tb2RlID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gIAkJCWUg PSAociA8IGRlYy0+dGJfcGFyYW1zLmNhYikgPw0KPiA+ICAJCQkJZGVjLT50Yl9wYXJhbXMuZWEg OiBkZWMtPnRiX3BhcmFtcy5lYjsNCj4gPiAgCQkvKiBTcGVjaWFsIGNhc2UgaGFuZGxpbmcgd2hl biBvdmVydXNpbmcgbWJ1ZiAqLyBkaWZmIC0tZ2l0DQo+ID4gYS9saWIvbGlicnRlX2JiZGV2L3J0 ZV9iYmRldl9vcC5oIGIvbGliL2xpYnJ0ZV9iYmRldi9ydGVfYmJkZXZfb3AuaA0KPiA+IGluZGV4 IGY3MjZkNzMuLmY5NDY4NDIgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9iYmRldi9ydGVf YmJkZXZfb3AuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfYmJkZXYvcnRlX2JiZGV2X29wLmgNCj4g PiBAQCAtMTEyLDcgKzExMiw3IEBAIGVudW0gcnRlX2JiZGV2X29wX3RkX2ZsYWdfYml0bWFza3Mg ew0KPiA+ICAJLyoqIFNldCBpZiBhIGRldmljZSBzdXBwb3J0cyBzY2F0dGVyLWdhdGhlciBmdW5j dGlvbmFsaXR5ICovDQo+ID4gIAlSVEVfQkJERVZfVFVSQk9fREVDX1NDQVRURVJfR0FUSEVSID0g KDFVTEwgPDwgMTUpLA0KPiA+ICAJLyoqIFNldCB0byBrZWVwIENSQzI0QiBiaXRzIGFwcGVuZGVk IHdoaWxlIGRlY29kaW5nLiBPbmx5IHVzYWJsZQ0KPiB3aGVuDQo+ID4gLQkgKiBkZWNvZGluZyBU cmFuc3BvcnQgQmxvY2tzIChjb2RlX2Jsb2NrX21vZGUgPSAwKS4NCj4gPiArCSAqIGRlY29kaW5n IFRyYW5zcG9ydCBCbG9jayBtb2RlLg0KPiA+ICAJICovDQo+ID4gIAlSVEVfQkJERVZfVFVSQk9f REVDX1RCX0NSQ18yNEJfS0VFUCA9ICgxVUxMIDw8IDE2KSAgfTsgQEAgLQ0KPiAyMDksNg0KPiA+ ICsyMDksMTQgQEAgZW51bSBydGVfYmJkZXZfb3BfbGRwY2VuY19mbGFnX2JpdG1hc2tzIHsNCj4g PiAgCVJURV9CQkRFVl9MRFBDX0VOQ19DT05DQVRFTkFUSU9OID0gKDFVTEwgPDwgNykgIH07DQo+ ID4NCj4gPiArLyoqIEZsYWdzIGZvciB0aGUgQ29kZSBCbG9jay9UcmFuc3BvcnQgYmxvY2sgbW9k ZSAgKi8gZW51bQ0KPiA+ICtydGVfYmJkZXZfb3BfY2JfbW9kZSB7DQo+ID4gKwkvKiogT25lIG9w ZXJhdGlvbiBpcyBvbmUgb3IgZnJhY3Rpb24gb2Ygb25lIHRyYW5zcG9ydCBibG9jayAgKi8NCj4g PiArCVJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0sgPSAwLA0KPiA+ICsJLyoqIE9uZSBvcGVyYXRp b24gaXMgb25lIGNvZGUgYmxvY2sgbW9kZSAqLw0KPiA+ICsJUlRFX0JCREVWX0NPREVfQkxPQ0sg PSAxLA0KPiA+ICt9Ow0KPiANCj4gTG9vayBnb29kLg0KPiANCj4gVGhhbmtzIGZvciB0aGUgY2hh bmdlLA0KPiANCj4gUmV2aWV3ZWQtYnk6IFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4NCj4gDQo+ ID4gKw0KPiA+ICAvKiogRGF0YSBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlciBmb3IgQkJERVYgb3Bl cmF0aW9ucyAqLyAgc3RydWN0DQo+ID4gcnRlX2JiZGV2X29wX2RhdGEgew0KPiA+ICAJLyoqIFRo ZSBtYnVmIGRhdGEgc3RydWN0dXJlIHJlcHJlc2VudGluZyB0aGUgZGF0YSBmb3IgQkJERVYNCj4g b3BlcmF0aW9uLg0KDQo=