Received: by 2002:ac0:a679:0:0:0:0:0 with SMTP id p54csp719066imp; Wed, 20 Feb 2019 07:51:59 -0800 (PST) X-Google-Smtp-Source: AHgI3IYJcuhcaVZ7R5WtnRjgsWSPTu+kkL9Y0xaDKpWcbjZ/Q0jWrAEGJjwOusnBdekMrvRS/gHm X-Received: by 2002:a17:902:b58c:: with SMTP id a12mr20226448pls.102.1550677919904; Wed, 20 Feb 2019 07:51:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550677919; cv=none; d=google.com; s=arc-20160816; b=w7uA+RAHDBgeKlOEMt3nRjudHgH5cG26hSYObM/58qdKUIjwp/3IxHJTX/ijTsuBiY pHvIJt7Gn1SEcPehev4P34DQd4WinIf0Gw1yAg2BLebudwSEC0cTe8U6N0XsAl5ygx8C Ed8PFABYihGnU2iivRBZOJavuaLkEvhSFt9RyWj810pQpf5Nqe5A0IP0lJw0P1zsIdAJ 2j1nOo7i6j6duFzc4cJM7ORScJS9dJcEqzU6IgsBgaH6tM+Aml3ZqMHyPc2p3CuXJZ6G H0r5qKiZPRIWD5o+oIFC4KA2UTaNdSz16/Di1Exb/8FK1wDEdZLxxMxdI2NVcc19X6sE KqDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=IJNbUCEw9VdSXap8SdRJatYqT0yPwhRee2HyCdJJWYg=; b=H9cPNBfOCG7Ht7pvU9mlszhYJAa/W8KVhkK2AnRvYuK5iy9Z8rEW1EoLN2sT67Uty4 UyNsc8wfLsspBiRSdJDKQz18Eq2//TTTvIzlXJ2No6WQnS+QQqq2Qs1EXUMYqBI47YD6 1e18/D+G3it56FJ/mfRl9cAjAea6VWfqv80wZ7M4RmNapvpf1/Hs+JWQgs3aKaCo9mWP SLnLrBRue6dYeuBQUSVmzLizYhNOnAXpb5ePTrQVVwFxy2WYDF2cOm0Hq+Y2EwS4FqXV bb/63Jvjiu5gbl3z7YUUDlMLrf9P1vNWPPNpJYGxJlMmlZry+62vZjpWrIp2rdK8i2w+ 8FHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cadence.com header.s=proofpoint header.b=Kvixlq2J; dkim=pass header.i=@cadence.com header.s=selector1 header.b="H/CmjtbW"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cadence.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s20si13590804plr.14.2019.02.20.07.51.44; Wed, 20 Feb 2019 07:51:59 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@cadence.com header.s=proofpoint header.b=Kvixlq2J; dkim=pass header.i=@cadence.com header.s=selector1 header.b="H/CmjtbW"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cadence.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727184AbfBTPvM (ORCPT + 99 others); Wed, 20 Feb 2019 10:51:12 -0500 Received: from mx0a-0014ca01.pphosted.com ([208.84.65.235]:42604 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726019AbfBTPvM (ORCPT ); Wed, 20 Feb 2019 10:51:12 -0500 Received: from pps.filterd (m0042385.ppops.net [127.0.0.1]) by mx0a-0014ca01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x1KFlXBU021652; Wed, 20 Feb 2019 07:50:49 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint; bh=IJNbUCEw9VdSXap8SdRJatYqT0yPwhRee2HyCdJJWYg=; b=Kvixlq2Jh8pgKjI4+HNd3qNYw2KV6xUtCc7VAULhyoe+DJb+pgCEZ+ulAWekmz2yf6mi avbtF3tAddbPXiN48Rn84EZSAPEvAayMQT3UzWUZrMmnfLqQAfJNUkSDp0x2z0PD1+wL fwZEmsJO5wNfZBbHlqw/Z0kc0cagsUdwGWxF6P/rY+1wRGsfUHNMjbgXyFsU6LXDzg6m lpOln9lJ+1qh+ZlbrSqHKl+cDxUaI6xIMOphJYht0nhpc1F3jQoRp7jSf4MQKVXvXDy6 wD/8w1ilDUXX3fZpqEQ9Jm+QH/yFaVH/ynMdYCOhuLg67lsBpUALH0pj+bG96j8KV3If lw== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=pawell@cadence.com Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp2051.outbound.protection.outlook.com [104.47.33.51]) by mx0a-0014ca01.pphosted.com with ESMTP id 2qqt6qamu2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 20 Feb 2019 07:50:48 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IJNbUCEw9VdSXap8SdRJatYqT0yPwhRee2HyCdJJWYg=; b=H/CmjtbWM+NSJ9dWSFRtIodv580IJmmVM/ShHa0M6V7CIzC+hqTwGmbnLKQna6YmkYK09L48qGg62BO0Jqkfd3AlEsA3dtZR9XWVm+vqjLNk834Wdxo9cKaf0SJMX6ZIij669c07OHI8pOMlc94eTO63xDdf7doaJiBH+zSWyJk= Received: from BYAPR07MB4709.namprd07.prod.outlook.com (52.135.204.159) by BYAPR07MB5367.namprd07.prod.outlook.com (20.177.125.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.19; Wed, 20 Feb 2019 15:50:45 +0000 Received: from BYAPR07MB4709.namprd07.prod.outlook.com ([fe80::c87c:4924:afa4:733a]) by BYAPR07MB4709.namprd07.prod.outlook.com ([fe80::c87c:4924:afa4:733a%5]) with mapi id 15.20.1622.020; Wed, 20 Feb 2019 15:50:45 +0000 From: Pawel Laszczak To: Roger Quadros , "devicetree@vger.kernel.org" CC: "gregkh@linuxfoundation.org" , "felipe.balbi@linux.intel.com" , "mark.rutland@arm.com" , "linux-usb@vger.kernel.org" , "hdegoede@redhat.com" , "heikki.krogerus@linux.intel.com" , "andy.shevchenko@gmail.com" , "robh+dt@kernel.org" , "linux-kernel@vger.kernel.org" , "jbergsagel@ti.com" , "nsekhar@ti.com" , "nm@ti.com" , Suresh Punnoose , "peter.chen@nxp.com" , Rahul Kumar Subject: RE: [PATCH v4 6/6] usb:cdns3 Fix for stuck packets in on-chip OUT buffer. Thread-Topic: [PATCH v4 6/6] usb:cdns3 Fix for stuck packets in on-chip OUT buffer. Thread-Index: AQHUxJ4TFqBzwxyHqkO+/LkhB9s+t6Xog5QAgAAI4rCAACd3AIAAIfNw Date: Wed, 20 Feb 2019 15:50:44 +0000 Message-ID: References: <1550173514-23573-1-git-send-email-pawell@cadence.com> <1550173514-23573-7-git-send-email-pawell@cadence.com> <67da432f-9c95-d644-65b5-dbc5b942d24c@ti.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-tag-bcast: x-dg-ref: PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNccGF3ZWxsXGFwcGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVlZS02Yjg0YmEyOWUzNWJcbXNnc1xtc2ctZTEyYjdlMzctMzUyNi0xMWU5LTg3MmYtMWM0ZDcwMWRmYmE0XGFtZS10ZXN0XGUxMmI3ZTM4LTM1MjYtMTFlOS04NzJmLTFjNGQ3MDFkZmJhNGJvZHkudHh0IiBzej0iMjA4NjgiIHQ9IjEzMTk1MTUxMjcyNDkwNzgwMSIgaD0icjFtTno4bEZyRUV3UWZTakd5YTEwMzdQQmNRPSIgaWQ9IiIgYmw9IjAiIGJvPSIxIi8+PC9tZXRhPg== x-dg-paste: x-dg-rorf: x-originating-ip: [185.217.253.59] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b2f8404d-5fdb-4c77-1f3e-08d6974b2ce2 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605104)(2017052603328)(7153060)(7193020);SRVR:BYAPR07MB5367; x-ms-traffictypediagnostic: BYAPR07MB5367: x-microsoft-exchange-diagnostics: 1;BYAPR07MB5367;20:GjRiunAtQLJVhpGR7wIyUl8411md3UPHNtC805mvVdqdMTNtQKcGal/CMwxGbxQ1zJOpZnyLN6oNn0cdYz87Iznt1r9SAPqTppIj0eeGT9tu+sVJpwos0cLwfK9sPWgLDMh6r8bjvMkbvCml3XSYs4YRPqVG4QFW3Ps6RWVJK6dfYZ69bNPnSFA8PpOxdYGZKGnPNcmW5G/90RjmCB5zMYwlC8GN7fywKvHP56PLkkCmDqbWWacHKsI+DjGUn5fU x-microsoft-antispam-prvs: x-forefront-prvs: 0954EE4910 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(376002)(346002)(396003)(136003)(366004)(189003)(199004)(36092001)(316002)(7696005)(11346002)(14454004)(6116002)(478600001)(14444005)(256004)(5660300002)(76176011)(3846002)(54906003)(7736002)(476003)(186003)(66066001)(446003)(74316002)(26005)(107886003)(4326008)(99286004)(110136005)(68736007)(305945005)(8676002)(8936002)(81156014)(53546011)(6506007)(486006)(33656002)(81166006)(97736004)(25786009)(7416002)(6246003)(86362001)(2501003)(6436002)(55016002)(93886005)(30864003)(71200400001)(53936002)(2906002)(71190400001)(105586002)(53946003)(102836004)(229853002)(106356001)(9686003)(579004);DIR:OUT;SFP:1101;SCL:1;SRVR:BYAPR07MB5367;H:BYAPR07MB4709.namprd07.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: cadence.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: XcB9G1CP21rkz7tTeo63UPj37KTIbIFVanhs81JSKrrz8qQd0NUYVQGb+mdSenAR2pd517oPCbaCoqQHGcxnc3FcGHkx4ZjFn9vMGDfKcCRPv13AknfEb0/foW+XGlVtkV8KIURtAPw8aiLOYZUVKZCMUJooB7fqEGV7Ez+QkxeCOgFQwpP5z/tpLy7mpb3DDG315GvKHCs162/JzlzLU+lkClIcdbVA4mY6hSkiKoo8Fk7n0p9fg92DaLTq4I+EmroRFbGrRVoECNJR0dgLC77lXjeAIRHS7dYcJIap6Wm4bVofHDAyQdH7BV1KC4DvlmANQRIt5v1J5SmXvLwq877z01EHkF9bZ7KC7ukbMy2mWfLCdG9H9wse4PZY/pCqEbnqO5mta5/WsY+UkCDXra2VjhuHu8B0hmfIQ2RKPL4= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2f8404d-5fdb-4c77-1f3e-08d6974b2ce2 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2019 15:50:44.9240 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR07MB5367 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:_spf.salesforce.com include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-02-20_13:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_check_notspam policy=outbound_check score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1902200113 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pg0KPk9uIDIwLzAyLzIwMTkgMTM6MTgsIFBhd2VsIExhc3pjemFrIHdyb3RlOg0KPj4gSGkgUm9n ZXIuDQo+Pj4NCj4+PiBPbiAxNC8wMi8yMDE5IDIxOjQ1LCBQYXdlbCBMYXN6Y3phayB3cm90ZToN Cj4+Pj4gQ29udHJvbGxlciBmb3IgT1VUIGVuZHBvaW50cyBoYXMgc2hhcmVkIG9uLWNoaXAgYnVm ZmVycyBmb3IgYWxsIGluY29taW5nDQo+Pj4+IHBhY2tldHMsIGluY2x1ZGluZyBlcDBvdXQuIEl0 J3MgRklGTyBidWZmZXIsIHNvIHBhY2tldHMgbXVzdCBiZSBoYW5kbGUNCj4+Pj4gYnkgRE1BIGlu IGNvcnJlY3Qgb3JkZXIuIElmIHRoZSBmaXJzdCBwYWNrZXQgaW4gdGhlIGJ1ZmZlciB3aWxsIG5v dCBiZQ0KPj4+PiBoYW5kbGVkLCB0aGVuIHRoZSBmb2xsb3dpbmcgcGFja2V0cyBkaXJlY3RlZCBm b3Igb3RoZXIgZW5kcG9pbnRzIGFuZA0KPj4+PiBmdW5jdGlvbnMgd2lsbCBiZSBibG9ja2VkLg0K Pj4+Pg0KPj4+PiBBZGRpdGlvbmFsbHkgdGhlIHBhY2tldHMgZGlyZWN0ZWQgdG8gb25lIGVuZHBv aW50IGNhbiBibG9jayBlbnRpcmUgb24tY2hpcA0KPj4+PiBidWZmZXJzLiBJbiB0aGlzIGNhc2Ug dHJhbnNmZXIgdG8gb3RoZXIgZW5kcG9pbnRzIGFsc28gd2lsbCBibG9ja2VkLg0KPj4+Pg0KPj4+ PiBUbyByZXNvbHZlIHRoaXMgaXNzdWUgYWZ0ZXIgcmFpc2luZyB0aGUgZGVzY3JpcHRvciBtaXNz aW5nIGludGVycnVwdA0KPj4+PiBkcml2ZXIgcHJlcGFyZXMgaW50ZXJuYWwgdXNiX3JlcXVlc3Qg b2JqZWN0IGFuZCB1c2UgaXQgdG8gYXJtIERNQQ0KPj4+PiB0cmFuc2Zlci4NCj4+Pj4NCj4+Pj4g VGhlIHByb2JsZW1hdGljIHNpdHVhdGlvbiB3YXMgb2JzZXJ2ZWQgaW4gY2FzZSB3aGVuIGVuZHBv aW50IGhhcw0KPj4+PiBiZWVuIGVuYWJsZWQgYnV0IG5vIHVzYl9yZXF1ZXN0IHdlcmUgcXVldWVk LiBEcml2ZXIgdHJ5IGRldGVjdHMNCj4+Pj4gc3VjaCBlbmRwb2ludHMgYW5kIHdpbGwgdXNlIHRo aXMgd29ya2Fyb3VuZCBvbmx5IGZvciB0aGVzZSBlbmRwb2ludC4NCj4+Pj4NCj4+Pj4gRHJpdmVy IHVzZSBsaW1pdGVkIG51bWJlciBvZiBidWZmZXIuIFRoaXMgbnVtYmVyIGNhbiBiZSBzZXQgYnkg bWFjcm8NCj4+Pj4gQ0ROU19XQTJfTlVNX0JVRkZFUlMuDQo+Pj4+DQo+Pj4+IFN1Y2ggYmxvY2tp bmcgc2l0dWF0aW9uIHdhcyBvYnNlcnZlZCBvbiBBQ00gZ2FkZ2V0LiBGb3IgdGhpcyBmdW5jdGlv bg0KPj4+PiBob3N0IHNlbmQgT1VUIGRhdGEgcGFja2V0IGJ1dCBBQ00gZnVuY3Rpb24gaXMgbm90 IHByZXBhcmVkIGZvcg0KPj4+PiB0aGlzIHBhY2tldC4gSXQncyBjYXVzZSB0aGF0IGJ1ZmZlciBw bGFjZWQgaW4gb24gY2hpcCBtZW1vcnkgYmxvY2sNCj4+Pj4gdHJhbnNmZXIgdG8gb3RoZXIgZW5k cG9pbnRzLg0KPj4+Pg0KPj4+PiBJdCdzIGxpbWl0YXRpb24gb2YgY29udHJvbGxlciBidXQgbWF5 YmUgdGhpcyBpc3N1ZXMgc2hvdWxkIGJlIGZpeGVkIGluDQo+Pj4+IGZ1bmN0aW9uIGRyaXZlci4N Cj4+Pj4NCj4+Pj4gVGhpcyB3b3JrIGFyb3VuZCBjYW4gYmUgZGlzYWJsZWQvZW5hYmxlZCBieSBt ZWFucyBvZiBxdWlya19pbnRlcm5hbF9idWZmZXINCj4+Pj4gbW9kdWxlIHBhcmFtZXRlci4gQnkg ZGVmYXVsdCBmZWF0dXJlIGlzIGVuYWJsZWQuIEl0IGNhbiBoYXMgaW1wYWN0IHRvDQo+Pj4+IHRy YW5zZmVyIHBlcmZvcm1hbmNlIGFuZCBpbiBtb3N0IGNhc2UgdGhpcyBmZWF0dXJlIGNhbiBiZSBk aXNhYmxlZC4NCj4+Pg0KPj4+IEhvdyBtdWNoIGlzIHRoZSBwZXJmb3JtYW5jZSBpbXBhY3Q/DQo+ Pg0KPj4gSSBkaWRuJ3QgY2hlY2sgdGhpcywgYnV0IHBlcmZvcm1hbmNlIHdpbGwgYmUgZGVjcmVh c2VkIGJlY2F1c2UgZHJpdmVyIGhhcyB0bw0KPj4gY29weSBkYXRhIGZyb20gaW50ZXJuYWxseSBh bGxvY2F0ZWQgYnVmZmVyIHRvIHVzYl9yZXF1ZXN0LT5idWZmLg0KPj4NCj4+PiBZb3UgbWVudGlv bmVkIHRoYXQgdGhlIGlzc3VlIHdhcyBvYnNlcnZlZCBvbmx5IGluIHRoZSBBQ00gY2FzZSBhbmQN Cj4+PiBjb3VsZCBiZSBmaXhlZCBpbiB0aGUgZnVuY3Rpb24gZHJpdmVyPw0KPj4+IEl0IHNlZW1z IHBvaW50bGVzcyB0byBlbmFibGUgYW4gZW5kcG9pbnQgYW5kIG5vdCBoYXZlIGFueSByZXF1ZXN0 cyBxdWV1ZWQgZm9yIGl0Lg0KPj4NCj4+IFllcywgaXTigJlzIHRydWUuIFRoZSByZXF1ZXN0IGlu IEFDTSBjbGFzcyBpcyBzZW5kIHRvIENvbnRyb2xsZXIgRHJpdmVyIHdoZW4gdXNlciByZWFkIGZp bGUgYXNzb2NpYXRlZA0KPj4gd2l0aCBBQ00gZ2FkZ2V0LiBQcm9ibGVtIGV4aXN0IGJlY2F1c2Ug aG9zdCBzZW5kIGRhdGEgdG8gY29udHJvbGxlciBidXQgVVNCIGNvbnRyb2xsZXINCj4+IGhhcyBu b3QgcHJlcGFyZWQgYnVmZmVyIGZvciB0aGlzIGRhdGEgYnkgQUNNIGNsYXNzLg0KPj4NCj4+PiBJ c24ndCBmaXhpbmcgdGhlIEFDTSBkcml2ZXIgKGlmIHRoZXJlIGlzIGEgcmVhbCBpc3N1ZSkgYSBi ZXR0ZXIgYXBwcm9hY2ggdGhhbiBoYXZpbmcNCj4+PiBhIHdvcmthcm91bmQgdGhhdCBhZmZlY3Rz IHBlcmZvcm1hbmNlIG9mIGFsbCBvdGhlciB1c2UgY2FzZXM/DQo+Pg0KPj4gWWVzIGl0IHNob3Vs ZCBiZSBiZXR0ZXIuIEJ1dCB3aGF0IEFDTSBkcml2ZXIgc2hvdWxkIGRvIHdpdGggdW5leHBlY3Rl ZCBkYXRhLiBJJ20gbm90IHN1cmUgaWYgd2UNCj4+IGNhbiBzaW1wbHkgZGVsZXRlIHRoZW0uDQo+ Pg0KPj4gVGhlIGJlc3Qgc29sdXRpb24gd291bGQgYmUgdG8gbWFrZSBtb2RpZmljYXRpb24gaW4g Y29udHJvbGxlci4gSW4gc3VjaCBjYXNlIENvbnRyb2xsZXIgc2hvdWxkbid0IGFjY2VwdA0KPj4g cGFja2V0IGJ1dCBzaG91bGQgc2VuZCBOQUsuDQo+DQo+WWVzLCB0aGF0IHNob3VsZCBiZSBzdGFu ZGFyZCBiZWhhdmlvdXIuIE5vPw0KPg0KPj4NCj4+IE9uZSBtb3JlIHRoaW5nLiBXb3JrYXJvdW5k IGhhcyBpbXBsZW1lbnRlZCBhbGdvcml0aG0gdGhhdCBkZWNpZGUgZm9yIHdoaWNoIGVuZHBvaW50 IGl0IHNob3VsZCBiZSBlbmFibGVkLg0KPj4gZS5nIGZvciBjb21wb3NpdGUgZGV2aWNlIE1TQytO Q00rQUNNIGl0IHNob3VsZCB3b3JrIG9ubHkgZm9yIEFDTSBPVVQgZW5kcG9pbnQuDQo+Pg0KPg0K PklmIEFDTSBkcml2ZXIgZGlkbid0IHF1ZXVlIHRoZSByZXF1ZXN0IGZvciBBQ00gT1VUIGVuZHBv aW50LCB3aHkgZG9lcyB0aGUgY29udHJvbGxlciBhY2NlcHQgdGhlIGRhdGEgYXQgYWxsPw0KPkkg ZGlkbid0IHVuZGVyc3RhbmQgd2h5IHdlIG5lZWQgYSB3b3JrYXJvdW5kIGZvciB0aGlzLiBJdCBz aG91bGQgYmUgc3RhbmRhcmQgYmVoYXZpb3VyIHRvIE5BSyBkYXRhIGlmDQo+ZnVuY3Rpb24gZHJp dmVyIGRpZG4ndCByZXF1ZXN0IGZvciBhbGwgZW5kcG9pbnRzLg0KDQpZZXMsIEkgYWdyZWUgd2l0 aCB5b3UuIENvbnRyb2xsZXIgc2hvdWxkbuKAmXQgYWNjZXB0IHN1Y2ggcGFja2V0LiBBcyBJIGtu b3cgdGhpcyBiZWhhdmlvciB3aWxsIGJlIGZpeGVkIGluIFJUTC4gDQpCdXQgSSBhc3N1bWUgdGhh dCBzb21lIG9sZGVyIHZlcnNpb24gb2YgdGhpcyBjb250cm9sbGVyIGFyZSBvbmUgdGhlIG1hcmtl dCwgYW5kIGRyaXZlciBzaG91bGQgd29yayBjb3JyZWN0IHdpdGggdGhlbS4NCkluIHRoZSBmZWF0 dXJlIHRoaXMgd29ya2Fyb3VuZCBjYW4gYmUgbGltaXRlZCBvbmx5IHRvIHNlbGVjdGVkIGNvbnRy b2xsZXJzLiANCkV2ZW4gbm93IEkgYXNzdW1lIHRoYXQgaXQgY2FuIGJlIGVuYWJsZWQvZGlzYWJs ZWQgYnkgbW9kdWxlIHBhcmFtZXRlci4gDQoNCj4NCj5BbHNvIEkgZGlkbid0IHVuZGVyc3RhbmQg d2h5IHBlcmZvcm1hbmNlIHNob3VsZCBiZSBpbXBhY3RlZCB0byBqdXN0IE5BSyBkYXRhLg0KDQpE YXRhIHdhaXRpbmcgaW4gb24tY2hpcCBidWZmZXJzIGNhbiBiZSB2ZXJ5IGZhc3QgY29waWVkIHRv IHN5c3RlbSBtZW1vcnkgd2hlbiBETUEgd2lsbCBiZSBhcm1lZC4NCkluIHNhbWUgY2FzZSB0aGlz IGZlYXR1cmUgY2FuIGxpdHRsZSBpbmNyZWFzZSBwZXJmb3JtYW5jZSwgYnV0IGl0IG1ha2VzIG1h bnkgcHJvYmxlbXMgdW5kZXIgT1MuDQoNCkNoZWVycywNClBhd2VsDQoNCg0KPmNoZWVycywNCj4t cm9nZXINCj4NCj4+IENoZWVycywNCj4+IFBhd2VsDQo+Pj4NCj4+Pj4NCj4+Pj4gU2lnbmVkLW9m Zi1ieTogUGF3ZWwgTGFzemN6YWsgPHBhd2VsbEBjYWRlbmNlLmNvbT4NCj4+Pj4gLS0tDQo+Pj4+ ICBkcml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuYyB8IDI3MyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystDQo+Pj4+ICBkcml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuaCB8ICAgNyAr DQo+Pj4+ICAyIGZpbGVzIGNoYW5nZWQsIDI3OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2RuczMvZ2FkZ2V0LmMgYi9k cml2ZXJzL3VzYi9jZG5zMy9nYWRnZXQuYw0KPj4+PiBpbmRleCA3ZjdmMjRlZTNjNGIuLjVkZmJl NmUxNDIxYyAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy91c2IvY2RuczMvZ2FkZ2V0LmMNCj4+ Pj4gKysrIGIvZHJpdmVycy91c2IvY2RuczMvZ2FkZ2V0LmMNCj4+Pj4gQEAgLTI3LDYgKzI3LDM3 IEBADQo+Pj4+ICAgKiBJZiAoKChEZXF1ZXVlIFB0ciAoaS5lLiBFUF9UUkFERFIpID09IEVucXVl dWUgUHRyLTEpIG9yDQo+Pj4+ICAgKgkoRGVxdWV1ZSBQdHIgKGkuZS4gRVBfVFJBRERSKSA9PSBF bnF1ZXVlIFB0cikpDQo+Pj4+ICAgKgkJYW5kIChEUkJMPT0xIGFuZCAobm90IEVQMCkpKQ0KPj4+ PiArICoNCj4+Pj4gKyAqIFdvcmsgYXJvdW5kIDI6DQo+Pj4+ICsgKiBDb250cm9sbGVyIGZvciBP VVQgZW5kcG9pbnRzIGhhcyBzaGFyZWQgb24tY2hpcCBidWZmZXJzIGZvciBhbGwgaW5jb21pbmcN Cj4+Pj4gKyAqIHBhY2tldHMsIGluY2x1ZGluZyBlcDBvdXQuIEl0J3MgRklGTyBidWZmZXIsIHNv IHBhY2tldHMgbXVzdCBiZSBoYW5kbGUgYnkgRE1BDQo+Pj4+ICsgKiBpbiBjb3JyZWN0IG9yZGVy LiBJZiB0aGUgZmlyc3QgcGFja2V0IGluIHRoZSBidWZmZXIgd2lsbCBub3QgYmUgaGFuZGxlZCwN Cj4+Pj4gKyAqIHRoZW4gdGhlIGZvbGxvd2luZyBwYWNrZXRzIGRpcmVjdGVkIGZvciBvdGhlciBl bmRwb2ludHMgYW5kICBmdW5jdGlvbnMNCj4+Pj4gKyAqIHdpbGwgYmUgYmxvY2tlZC4NCj4+Pj4g KyAqIEFkZGl0aW9uYWxseSB0aGUgcGFja2V0cyBkaXJlY3RlZCB0byBvbmUgZW5kcG9pbnQgY2Fu IGJsb2NrIGVudGlyZSBvbi1jaGlwDQo+Pj4+ICsgKiBidWZmZXJzLiBJbiB0aGlzIGNhc2UgdHJh bnNmZXIgdG8gb3RoZXIgZW5kcG9pbnRzIGFsc28gd2lsbCBibG9ja2VkLg0KPj4+PiArICoNCj4+ Pj4gKyAqIFRvIHJlc29sdmUgdGhpcyBpc3N1ZSBhZnRlciByYWlzaW5nIHRoZSBkZXNjcmlwdG9y IG1pc3NpbmcgaW50ZXJydXB0DQo+Pj4+ICsgKiBkcml2ZXIgcHJlcGFyZXMgaW50ZXJuYWwgdXNi X3JlcXVlc3Qgb2JqZWN0IGFuZCB1c2UgaXQgdG8gYXJtIERNQSB0cmFuc2Zlci4NCj4+Pj4gKyAq DQo+Pj4+ICsgKiBUaGUgcHJvYmxlbWF0aWMgc2l0dWF0aW9uIHdhcyBvYnNlcnZlZCBpbiBjYXNl IHdoZW4gZW5kcG9pbnQgaGFzIGJlZW4gZW5hYmxlZA0KPj4+PiArICogYnV0IG5vIHVzYl9yZXF1 ZXN0IHdlcmUgcXVldWVkLiBEcml2ZXIgdHJ5IGRldGVjdHMgc3VjaCBlbmRwb2ludHMgYW5kIHdp bGwNCj4+Pj4gKyAqIHVzZSB0aGlzIHdvcmthcm91bmQgb25seSBmb3IgdGhlc2UgZW5kcG9pbnQu DQo+Pj4+ICsgKg0KPj4+PiArICogRHJpdmVyIHVzZSBsaW1pdGVkIG51bWJlciBvZiBidWZmZXIu IFRoaXMgbnVtYmVyIGNhbiBiZSBzZXQgYnkgbWFjcm8NCj4+Pj4gKyAqIENETlNfV0EyX05VTV9C VUZGRVJTLg0KPj4+PiArICoNCj4+Pj4gKyAqIFN1Y2ggYmxvY2tpbmcgc2l0dWF0aW9uIHdhcyBv YnNlcnZlZCBvbiBBQ00gZ2FkZ2V0LiBGb3IgdGhpcyBmdW5jdGlvbg0KPj4+PiArICogaG9zdCBz ZW5kIE9VVCBkYXRhIHBhY2tldCBidXQgQUNNIGZ1bmN0aW9uIGlzIG5vdCBwcmVwYXJlZCBmb3Ig dGhpcyBwYWNrZXQuDQo+Pj4+ICsgKiBJdCdzIGNhdXNlIHRoYXQgYnVmZmVyIHBsYWNlZCBpbiBv biBjaGlwIG1lbW9yeSBibG9jayB0cmFuc2ZlciB0byBvdGhlcg0KPj4+PiArICogZW5kcG9pbnRz Lg0KPj4+PiArICoNCj4+Pj4gKyAqIEl0J3MgbGltaXRhdGlvbiBvZiBjb250cm9sbGVyIGJ1dCBt YXliZSB0aGlzIGlzc3VlcyBzaG91bGQgYmUgZml4ZWQgaW4NCj4+Pj4gKyAqIGZ1bmN0aW9uIGRy aXZlci4NCj4+Pj4gKyAqDQo+Pj4+ICsgKiBUaGlzIHdvcmsgYXJvdW5kIGNhbiBiZSBkaXNhYmxl ZC9lbmFibGVkIGJ5IG1lYW5zIG9mIHF1aXJrX2ludGVybmFsX2J1ZmZlcg0KPj4+PiArICogbW9k dWxlIHBhcmFtZXRlci4gQnkgZGVmYXVsdCBmZWF0dXJlIGlzIGVuYWJsZWQuIEl0IGNhbiBoYXMg aW1wYWN0IHRvDQo+Pj4+ICsgKiB0cmFuc2ZlciBwZXJmb3JtYW5jZSBhbmQgaW4gbW9zdCBjYXNl IHRoaXMgZmVhdHVyZSBjYW4gYmUgZGlzYWJsZWQuDQo+Pj4+ICAgKi8NCj4+Pj4NCj4+Pj4gICNp bmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPg0KPj4+PiBAQCAtNDIsNiArNzMsMTQgQEAgc3Rh dGljIGludCBfX2NkbnMzX2dhZGdldF9lcF9xdWV1ZShzdHJ1Y3QgdXNiX2VwICplcCwNCj4+Pj4g IAkJCQkgICBzdHJ1Y3QgdXNiX3JlcXVlc3QgKnJlcXVlc3QsDQo+Pj4+ICAJCQkJICAgZ2ZwX3Qg Z2ZwX2ZsYWdzKTsNCj4+Pj4NCj4+Pj4gKy8qDQo+Pj4+ICsgKiBQYXJhbWV0ZXIgYWxsb3dzIHRv IGRpc2FibGUvZW5hYmxlIGhhbmRsaW5nIG9mIHdvcmsgYXJvdW5kIDIgZmVhdHVyZS4NCj4+Pj4g KyAqIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBlbmFibGVkLg0KPj4+PiArICovDQo+Pj4+ICtz dGF0aWMgYm9vbCBxdWlya19pbnRlcm5hbF9idWZmZXIgPSAxOw0KPj4+PiArbW9kdWxlX3BhcmFt KHF1aXJrX2ludGVybmFsX2J1ZmZlciwgYm9vbCwgMDY0NCk7DQo+Pj4+ICtNT0RVTEVfUEFSTV9E RVNDKHF1aXJrX2ludGVybmFsX2J1ZmZlciwgIkRpc2FibGUvZW5hYmxlIFdBMiBhbGdvcml0aG0i KTsNCj4+Pj4gKw0KPj4+PiAgLyoqDQo+Pj4+ICAgKiBjZG5zM19oYW5kc2hha2UgLSBzcGluIHJl YWRpbmcgIHVudGlsIGhhbmRzaGFrZSBjb21wbGV0ZXMgb3IgZmFpbHMNCj4+Pj4gICAqIEBwdHI6 IGFkZHJlc3Mgb2YgZGV2aWNlIGNvbnRyb2xsZXIgcmVnaXN0ZXIgdG8gYmUgcmVhZA0KPj4+PiBA QCAtMTA1LDYgKzE0NCwxNyBAQCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKmNkbnMzX25leHRfcmVxdWVz dChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQ0KPj4+PiAgCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5 X29yX251bGwobGlzdCwgc3RydWN0IHVzYl9yZXF1ZXN0LCBsaXN0KTsNCj4+Pj4gIH0NCj4+Pj4N Cj4+Pj4gKy8qKg0KPj4+PiArICogY2RuczNfbmV4dF9wcml2X3JlcXVlc3QgLSByZXR1cm5zIG5l eHQgcmVxdWVzdCBmcm9tIGxpc3QNCj4+Pj4gKyAqIEBsaXN0OiBsaXN0IGNvbnRhaW5pbmcgcmVx dWVzdHMNCj4+Pj4gKyAqDQo+Pj4+ICsgKiBSZXR1cm5zIHJlcXVlc3Qgb3IgTlVMTCBpZiBubyBy ZXF1ZXN0cyBpbiBsaXN0DQo+Pj4+ICsgKi8NCj4+Pj4gK3N0cnVjdCBjZG5zM19yZXF1ZXN0ICpj ZG5zM19uZXh0X3ByaXZfcmVxdWVzdChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQ0KPj4+PiArew0K Pj4+PiArCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwobGlzdCwgc3RydWN0IGNkbnMz X3JlcXVlc3QsIGxpc3QpOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICAvKioNCj4+Pj4gICAqIHNl bGVjdF9lcCAtIHNlbGVjdHMgZW5kcG9pbnQNCj4+Pj4gICAqIEBwcml2X2RldjogIGV4dGVuZGVk IGdhZGdldCBvYmplY3QNCj4+Pj4gQEAgLTM4NCw2ICs0MzQsNTMgQEAgc3RhdGljIGludCBjZG5z M19zdGFydF9hbGxfcmVxdWVzdChzdHJ1Y3QgY2RuczNfZGV2aWNlICpwcml2X2RldiwNCj4+Pj4g IAlyZXR1cm4gcmV0Ow0KPj4+PiAgfQ0KPj4+Pg0KPj4+PiArLyoqDQo+Pj4+ICsgKiBjZG5zM19k ZXNjbWlzc19jb3B5X2RhdGEgY29weSBkYXRhIGZyb20gaW50ZXJuYWwgcmVxdWVzdHMgdG8gcmVx dWVzdCBxdWV1ZWQNCj4+Pj4gKyAqIGJ5IGNsYXNzIGRyaXZlci4NCj4+Pj4gKyAqIEBwcml2X2Vw OiBleHRlbmRlZCBlbmRwb2ludCBvYmplY3QNCj4+Pj4gKyAqIEByZXF1ZXN0OiByZXF1ZXN0IG9i amVjdA0KPj4+PiArICovDQo+Pj4+ICtzdGF0aWMgdm9pZCBjZG5zM19kZXNjbWlzc19jb3B5X2Rh dGEoc3RydWN0IGNkbnMzX2VuZHBvaW50ICpwcml2X2VwLA0KPj4+PiArCQkJCSAgICAgc3RydWN0 IHVzYl9yZXF1ZXN0ICpyZXF1ZXN0KQ0KPj4+PiArew0KPj4+PiArCXN0cnVjdCB1c2JfcmVxdWVz dCAqZGVzY21pc3NfcmVxOw0KPj4+PiArCXN0cnVjdCBjZG5zM19yZXF1ZXN0ICpkZXNjbWlzc19w cml2X3JlcTsNCj4+Pj4gKw0KPj4+PiArCXdoaWxlICghbGlzdF9lbXB0eSgmcHJpdl9lcC0+ZGVz Y21pc3NfcmVxX2xpc3QpKSB7DQo+Pj4+ICsJCWludCBjaHVua19lbmQ7DQo+Pj4+ICsJCWludCBs ZW5ndGg7DQo+Pj4+ICsNCj4+Pj4gKwkJZGVzY21pc3NfcHJpdl9yZXEgPQ0KPj4+PiArCQkJY2Ru czNfbmV4dF9wcml2X3JlcXVlc3QoJnByaXZfZXAtPmRlc2NtaXNzX3JlcV9saXN0KTsNCj4+Pj4g KwkJZGVzY21pc3NfcmVxID0gJmRlc2NtaXNzX3ByaXZfcmVxLT5yZXF1ZXN0Ow0KPj4+PiArDQo+ Pj4+ICsJCS8qIGRyaXZlciBjYW4ndCB0b3VjaCBwZW5kaW5nIHJlcXVlc3QgKi8NCj4+Pj4gKwkJ aWYgKGRlc2NtaXNzX3ByaXZfcmVxLT5mbGFncyAmIFJFUVVFU1RfUEVORElORykNCj4+Pj4gKwkJ CWJyZWFrOw0KPj4+PiArDQo+Pj4+ICsJCWNodW5rX2VuZCA9IGRlc2NtaXNzX3ByaXZfcmVxLT5m bGFncyAmIFJFUVVFU1RfSU5URVJOQUxfQ0g7DQo+Pj4+ICsJCWxlbmd0aCA9IHJlcXVlc3QtPmFj dHVhbCArIGRlc2NtaXNzX3JlcS0+YWN0dWFsOw0KPj4+PiArDQo+Pj4+ICsJCWlmIChsZW5ndGgg PD0gcmVxdWVzdC0+bGVuZ3RoKSB7DQo+Pj4+ICsJCQltZW1jcHkoJigodTggKilyZXF1ZXN0LT5i dWYpW3JlcXVlc3QtPmFjdHVhbF0sDQo+Pj4+ICsJCQkgICAgICAgZGVzY21pc3NfcmVxLT5idWYs DQo+Pj4+ICsJCQkgICAgICAgZGVzY21pc3NfcmVxLT5hY3R1YWwpOw0KPj4+PiArCQkJcmVxdWVz dC0+YWN0dWFsID0gbGVuZ3RoOw0KPj4+PiArCQl9IGVsc2Ugew0KPj4+PiArCQkJLyogSXQgc2hv dWxkIG5ldmVyIG9jY3VyZXMgKi8NCj4+Pj4gKwkJCXJlcXVlc3QtPnN0YXR1cyA9IC1FTk9NRU07 DQo+Pj4+ICsJCX0NCj4+Pj4gKw0KPj4+PiArCQlsaXN0X2RlbF9pbml0KCZkZXNjbWlzc19wcml2 X3JlcS0+bGlzdCk7DQo+Pj4+ICsNCj4+Pj4gKwkJa2ZyZWUoZGVzY21pc3NfcmVxLT5idWYpOw0K Pj4+PiArCQljZG5zM19nYWRnZXRfZXBfZnJlZV9yZXF1ZXN0KCZwcml2X2VwLT5lbmRwb2ludCwg ZGVzY21pc3NfcmVxKTsNCj4+Pj4gKw0KPj4+PiArCQlpZiAoIWNodW5rX2VuZCkNCj4+Pj4gKwkJ CWJyZWFrOw0KPj4+PiArCX0NCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiAgLyoqDQo+Pj4+ICAgKiBj ZG5zM19nYWRnZXRfZ2l2ZWJhY2sgLSBjYWxsIHN0cnVjdCB1c2JfcmVxdWVzdCdzIC0+Y29tcGxl dGUgY2FsbGJhY2sNCj4+Pj4gICAqIEBwcml2X2VwOiBUaGUgZW5kcG9pbnQgdG8gd2hvbSB0aGUg cmVxdWVzdCBiZWxvbmdzIHRvDQo+Pj4+IEBAIC00MTIsNiArNTA5LDMyIEBAIHZvaWQgY2RuczNf Z2FkZ2V0X2dpdmViYWNrKHN0cnVjdCBjZG5zM19lbmRwb2ludCAqcHJpdl9lcCwNCj4+Pj4gIAlw cml2X3JlcS0+ZmxhZ3MgJj0gflJFUVVFU1RfUEVORElORzsNCj4+Pj4gIAl0cmFjZV9jZG5zM19n YWRnZXRfZ2l2ZWJhY2socHJpdl9yZXEpOw0KPj4+Pg0KPj4+PiArCS8qIFdBMjogKi8NCj4+Pj4g KwlpZiAocHJpdl9lcC0+ZmxhZ3MgJiBFUF9RVUlSS19FWFRSQV9CVUZfRU4gJiYNCj4+Pj4gKwkg ICAgcHJpdl9yZXEtPmZsYWdzICYgUkVRVUVTVF9JTlRFUk5BTCkgew0KPj4+PiArCQlzdHJ1Y3Qg dXNiX3JlcXVlc3QgKnJlcTsNCj4+Pj4gKw0KPj4+PiArCQlyZXEgPSBjZG5zM19uZXh0X3JlcXVl c3QoJnByaXZfZXAtPmRlZmVycmVkX3JlcV9saXN0KTsNCj4+Pj4gKwkJcmVxdWVzdCA9IHJlcTsN Cj4+Pj4gKwkJcHJpdl9lcC0+ZGVzY21pc19yZXEgPSBOVUxMOw0KPj4+PiArDQo+Pj4+ICsJCWlm ICghcmVxKQ0KPj4+PiArCQkJcmV0dXJuOw0KPj4+PiArDQo+Pj4+ICsJCWNkbnMzX2Rlc2NtaXNz X2NvcHlfZGF0YShwcml2X2VwLCByZXEpOw0KPj4+PiArCQlpZiAoIShwcml2X2VwLT5mbGFncyAm IEVQX1FVSVJLX0VORF9UUkFOU0ZFUikgJiYNCj4+Pj4gKwkJICAgIHJlcS0+bGVuZ3RoICE9IHJl cS0+YWN0dWFsKSB7DQo+Pj4+ICsJCQkvKiB3YWl0IGZvciBuZXh0IHBhcnQgb2YgdHJhbnNmZXIg Ki8NCj4+Pj4gKwkJCXJldHVybjsNCj4+Pj4gKwkJfQ0KPj4+PiArDQo+Pj4+ICsJCWlmIChyZXEt PnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpDQo+Pj4+ICsJCQlyZXEtPnN0YXR1cyA9IDA7DQo+Pj4+ ICsNCj4+Pj4gKwkJbGlzdF9kZWxfaW5pdCgmcmVxLT5saXN0KTsNCj4+Pj4gKwkJY2RuczNfc3Rh cnRfYWxsX3JlcXVlc3QocHJpdl9kZXYsIHByaXZfZXApOw0KPj4+PiArCX0NCj4+Pj4gKw0KPj4+ PiAgCS8qIFN0YXJ0IGFsbCBub3QgcGVuZGluZyByZXF1ZXN0ICovDQo+Pj4+ICAJaWYgKHByaXZf ZXAtPmZsYWdzICYgRVBfUklOR19GVUxMKQ0KPj4+PiAgCQljZG5zM19zdGFydF9hbGxfcmVxdWVz dChwcml2X2RldiwgcHJpdl9lcCk7DQo+Pj4+IEBAIC03NzQsNiArODk3LDU5IEBAIHZvaWQgY2Ru czNfcmVhcm1fdHJhbnNmZXIoc3RydWN0IGNkbnMzX2VuZHBvaW50ICpwcml2X2VwLCB1OCByZWFy bSkNCj4+Pj4gIAl9DQo+Pj4+ICB9DQo+Pj4+DQo+Pj4+ICsvKioNCj4+Pj4gKyAqIGNkbnMzX2Rl c2NtaXNzaW5nX3BhY2tldCAtIGhhbmRsZXMgZGVzY3JpcHRvciBtaXNzaW5nIGV2ZW50Lg0KPj4+ PiArICogQHByaXZfZGV2OiBleHRlbmRlZCBnYWRnZXQgb2JqZWN0DQo+Pj4+ICsgKg0KPj4+PiAr ICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9ubHkgZm9yIFdBMi4gRm9yIG1vcmUgaW5mb3JtYXRp b24gc2VlIFdvcmsgYXJvdW5kIDINCj4+Pj4gKyAqIGRlc2NyaXB0aW9uLg0KPj4+PiArICovDQo+ Pj4+ICtzdGF0aWMgaW50IGNkbnMzX2Rlc2NtaXNzaW5nX3BhY2tldChzdHJ1Y3QgY2RuczNfZW5k cG9pbnQgKnByaXZfZXApDQo+Pj4+ICt7DQo+Pj4+ICsJc3RydWN0IGNkbnMzX3JlcXVlc3QgKnBy aXZfcmVxOw0KPj4+PiArCXN0cnVjdCB1c2JfcmVxdWVzdCAqcmVxdWVzdDsNCj4+Pj4gKw0KPj4+ PiArCWlmIChwcml2X2VwLT5mbGFncyAmIEVQX1FVSVJLX0VYVFJBX0JVRl9ERVQpIHsNCj4+Pj4g KwkJcHJpdl9lcC0+ZmxhZ3MgJj0gfkVQX1FVSVJLX0VYVFJBX0JVRl9ERVQ7DQo+Pj4+ICsJCXBy aXZfZXAtPmZsYWdzIHw9IEVQX1FVSVJLX0VYVFJBX0JVRl9FTjsNCj4+Pj4gKwl9DQo+Pj4+ICsN Cj4+Pj4gKwljZG5zM19kYmcocHJpdl9lcC0+Y2RuczNfZGV2LCAiV0EyOiBEZXNjcmlwdGlvbiBN aXNzaW5nIGRldGVjdGVkXG4iKTsNCj4+Pj4gKw0KPj4+PiArCXJlcXVlc3QgPSBjZG5zM19nYWRn ZXRfZXBfYWxsb2NfcmVxdWVzdCgmcHJpdl9lcC0+ZW5kcG9pbnQsDQo+Pj4+ICsJCQkJCQlHRlBf QVRPTUlDKTsNCj4+Pj4gKwlpZiAoIXJlcXVlc3QpDQo+Pj4+ICsJCXJldHVybiAtRU5PTUVNOw0K Pj4+PiArDQo+Pj4+ICsJcHJpdl9yZXEgPSB0b19jZG5zM19yZXF1ZXN0KHJlcXVlc3QpOw0KPj4+ PiArCXByaXZfcmVxLT5mbGFncyB8PSBSRVFVRVNUX0lOVEVSTkFMOw0KPj4+PiArDQo+Pj4+ICsJ LyogaWYgdGhpcyBmaWVsZCBpcyBzdGlsbCBhc3NpZ25lZCBpdCBpbmRpY2F0ZSB0aGF0IHRyYW5z ZmVyIHJlbGF0ZWQNCj4+Pj4gKwkgKiB3aXRoIHRoaXMgcmVxdWVzdCBoYXMgbm90IGJlZW4gZmlu aXNoZWQgeWV0LiBEcml2ZXIgaW4gdGhpcw0KPj4+PiArCSAqIGNhc2Ugc2ltcGx5IGFsbG9jYXRl IG5leHQgcmVxdWVzdCBhbmQgYXNzaWduIGZsYWcgUkVRVUVTVF9JTlRFUk5BTF9DSA0KPj4+PiAr CSAqIGZsYWcgdG8gcHJldmlvdXMgb25lLiBJdCB3aWxsIGluZGljYXRlIHRoYXQgY3VycmVudCBy ZXF1ZXN0IGlzDQo+Pj4+ICsJICogcGFydCBvZiB0aGUgcHJldmlvdXMgb25lLg0KPj4+PiArCSAq Lw0KPj4+PiArCWlmIChwcml2X2VwLT5kZXNjbWlzX3JlcSkNCj4+Pj4gKwkJcHJpdl9lcC0+ZGVz Y21pc19yZXEtPmZsYWdzIHw9IFJFUVVFU1RfSU5URVJOQUxfQ0g7DQo+Pj4+ICsNCj4+Pj4gKwlw cml2X3JlcS0+cmVxdWVzdC5idWYgPSBremFsbG9jKENETlMzX0RFU0NNSVNfQlVGX1NJWkUsDQo+ Pj4+ICsJCQkJCUdGUF9BVE9NSUMpOw0KPj4+PiArCWlmICghcHJpdl9yZXEpIHsNCj4+Pj4gKwkJ Y2RuczNfZ2FkZ2V0X2VwX2ZyZWVfcmVxdWVzdCgmcHJpdl9lcC0+ZW5kcG9pbnQsIHJlcXVlc3Qp Ow0KPj4+PiArCQlyZXR1cm4gLUVOT01FTTsNCj4+Pj4gKwl9DQo+Pj4+ICsNCj4+Pj4gKwlwcml2 X3JlcS0+cmVxdWVzdC5sZW5ndGggPSBDRE5TM19ERVNDTUlTX0JVRl9TSVpFOw0KPj4+PiArCXBy aXZfZXAtPmRlc2NtaXNfcmVxID0gcHJpdl9yZXE7DQo+Pj4+ICsNCj4+Pj4gKwlfX2NkbnMzX2dh ZGdldF9lcF9xdWV1ZSgmcHJpdl9lcC0+ZW5kcG9pbnQsDQo+Pj4+ICsJCQkJJnByaXZfZXAtPmRl c2NtaXNfcmVxLT5yZXF1ZXN0LA0KPj4+PiArCQkJCUdGUF9BVE9NSUMpOw0KPj4+PiArDQo+Pj4+ ICsJcmV0dXJuIDA7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gIC8qKg0KPj4+PiAgICogY2RuczNf Y2hlY2tfZXBfaW50ZXJydXB0X3Byb2NlZWQgLSBQcm9jZXNzZXMgaW50ZXJydXB0IHJlbGF0ZWQg dG8gZW5kcG9pbnQNCj4+Pj4gICAqIEBwcml2X2VwOiBlbmRwb2ludCBvYmplY3QNCj4+Pj4gQEAg LTgwNyw4ICs5ODMsMzEgQEAgc3RhdGljIGludCBjZG5zM19jaGVja19lcF9pbnRlcnJ1cHRfcHJv Y2VlZChzdHJ1Y3QgY2RuczNfZW5kcG9pbnQgKnByaXZfZXApDQo+Pj4+ICAJCQljZG5zM19yZWFy bV90cmFuc2Zlcihwcml2X2VwLCBwcml2X2VwLT53YTFfc2V0KTsNCj4+Pj4gIAl9DQo+Pj4+DQo+ Pj4+IC0JaWYgKChlcF9zdHNfcmVnICYgRVBfU1RTX0lPQykgfHwgKGVwX3N0c19yZWcgJiBFUF9T VFNfSVNQKSkNCj4+Pj4gKwlpZiAoKGVwX3N0c19yZWcgJiBFUF9TVFNfSU9DKSB8fCAoZXBfc3Rz X3JlZyAmIEVQX1NUU19JU1ApKSB7DQo+Pj4+ICsJCWlmIChwcml2X2VwLT5mbGFncyAmIEVQX1FV SVJLX0VYVFJBX0JVRl9FTikgew0KPj4+PiArCQkJaWYgKGVwX3N0c19yZWcgJiBFUF9TVFNfSVNQ KQ0KPj4+PiArCQkJCXByaXZfZXAtPmZsYWdzIHw9IEVQX1FVSVJLX0VORF9UUkFOU0ZFUjsNCj4+ Pj4gKwkJCWVsc2UNCj4+Pj4gKwkJCQlwcml2X2VwLT5mbGFncyAmPSB+RVBfUVVJUktfRU5EX1RS QU5TRkVSOw0KPj4+PiArCQl9DQo+Pj4+ICsNCj4+Pj4gIAkJY2RuczNfdHJhbnNmZXJfY29tcGxl dGVkKHByaXZfZGV2LCBwcml2X2VwKTsNCj4+Pj4gKwl9DQo+Pj4+ICsNCj4+Pj4gKwkvKg0KPj4+ PiArCSAqIFdBMjogdGhpcyBjb25kaXRpb24gc2hvdWxkIG9ubHkgYmUgbWVldCB3aGVuDQo+Pj4+ ICsJICogcHJpdl9lcC0+ZmxhZ3MgJiBFUF9RVUlSS19FWFRSQV9CVUZfREVUIG9yDQo+Pj4+ICsJ ICogcHJpdl9lcC0+ZmxhZ3MgJiBFUF9RVUlSS19FWFRSQV9CVUZfRU4uDQo+Pj4+ICsJICogSW4g b3RoZXIgY2FzZXMgdGhpcyBpbnRlcnJ1cHQgd2lsbCBiZSBkaXNhYmxlZC8NCj4+Pj4gKwkgKi8N Cj4+Pj4gKwlpZiAoZXBfc3RzX3JlZyAmIEVQX1NUU19ERVNDTUlTKSB7DQo+Pj4+ICsJCWludCBl cnI7DQo+Pj4+ICsNCj4+Pj4gKwkJZXJyID0gY2RuczNfZGVzY21pc3NpbmdfcGFja2V0KHByaXZf ZXApOw0KPj4+PiArCQlpZiAoZXJyKQ0KPj4+PiArCQkJZGV2X2Vycihwcml2X2Rldi0+ZGV2LA0K Pj4+PiArCQkJCSJGYWlsZWQ6IE5vIHN1ZmZpY2llbnQgbWVtb3J5IGZvciBERVNDTUlTXG4iKTsN Cj4+Pj4gKwl9DQo+Pj4+DQo+Pj4+ICAJcmV0dXJuIDA7DQo+Pj4+ICB9DQo+Pj4+IEBAIC0xMjQx LDEzICsxNDQwLDI2IEBAIHN0YXRpYyBpbnQgY2RuczNfZ2FkZ2V0X2VwX2VuYWJsZShzdHJ1Y3Qg dXNiX2VwICplcCwNCj4+Pj4gIAkvKiBlbmFibGUgaW50ZXJydXB0IGZvciBzZWxlY3RlZCBlbmRw b2ludCAqLw0KPj4+PiAgCWNkbnMzX3NldF9yZWdpc3Rlcl9iaXQoJnByaXZfZGV2LT5yZWdzLT5l cF9pZW4sDQo+Pj4+ICAJCQkgICAgICAgQklUKGNkbnMzX2VwX2FkZHJfdG9faW5kZXgoYkVuZHBv aW50QWRkcmVzcykpKTsNCj4+Pj4gKwkvKg0KPj4+PiArCSAqIFdBMjogU2V0IGZsYWcgZm9yIGFs bCBub3QgSVNPQyBPVVQgZW5kcG9pbnRzLiBJZiB0aGlzIGZsYWcgaXMgc2V0DQo+Pj4+ICsJICog ZHJpdmVyIHRyeSB0byBkZXRlY3Qgd2hldGhlciBlbmRwb2ludCBuZWVkIGFkZGl0aW9uYWwgaW50 ZXJuYWwNCj4+Pj4gKwkgKiBidWZmZXIgZm9yIHVuYmxvY2tpbmcgb24tY2hpcCBGSUZPIGJ1ZmZl ci4gVGhpcyBmbGFnIHdpbGwgYmUgY2xlYXJlZA0KPj4+PiArCSAqIGlmIGJlZm9yZSBmaXJzdCBE RVNDTUlTUyBpbnRlcnJ1cHQgdGhlIERNQSB3aWxsIGJlIGFybWVkLg0KPj4+PiArCSAqLw0KPj4+ PiArCWlmIChxdWlya19pbnRlcm5hbF9idWZmZXIpIHsNCj4+Pj4gKwkJaWYgKCFwcml2X2VwLT5k aXIgJiYgcHJpdl9lcC0+dHlwZSAhPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKSB7DQo+Pj4+ICsJ CQlwcml2X2VwLT5mbGFncyB8PSBFUF9RVUlSS19FWFRSQV9CVUZfREVUOw0KPj4+PiArCQkJcmVn IHw9IEVQX1NUU19FTl9ERVNDTUlTRU47DQo+Pj4+ICsJCX0NCj4+Pj4gKwl9DQo+Pj4+DQo+Pj4+ ICAJd3JpdGVsKHJlZywgJnByaXZfZGV2LT5yZWdzLT5lcF9zdHNfZW4pOw0KPj4+Pg0KPj4+PiAg CWNkbnMzX3NldF9yZWdpc3Rlcl9iaXQoJnByaXZfZGV2LT5yZWdzLT5lcF9jZmcsIEVQX0NGR19F TkFCTEUpOw0KPj4+Pg0KPj4+PiAgCWVwLT5kZXNjID0gZGVzYzsNCj4+Pj4gLQlwcml2X2VwLT5m bGFncyAmPSB+KEVQX1BFTkRJTkdfUkVRVUVTVCB8IEVQX1NUQUxMKTsNCj4+Pj4gKwlwcml2X2Vw LT5mbGFncyAmPSB+KEVQX1BFTkRJTkdfUkVRVUVTVCB8IEVQX1NUQUxMIHwNCj4+Pj4gKwkJCSAg ICBFUF9RVUlSS19FWFRSQV9CVUZfRU4pOw0KPj4+PiAgCXByaXZfZXAtPmZsYWdzIHw9IEVQX0VO QUJMRUQgfCBFUF9VUERBVEVfRVBfVFJCQUREUjsNCj4+Pj4gIAlwcml2X2VwLT53YTFfc2V0ID0g MDsNCj4+Pj4gIAlwcml2X2VwLT5lbnF1ZXVlID0gMDsNCj4+Pj4gQEAgLTEyNzIsNiArMTQ4NCw3 IEBAIHN0YXRpYyBpbnQgY2RuczNfZ2FkZ2V0X2VwX2VuYWJsZShzdHJ1Y3QgdXNiX2VwICplcCwN Cj4+Pj4gIHN0YXRpYyBpbnQgY2RuczNfZ2FkZ2V0X2VwX2Rpc2FibGUoc3RydWN0IHVzYl9lcCAq ZXApDQo+Pj4+ICB7DQo+Pj4+ICAJc3RydWN0IGNkbnMzX2VuZHBvaW50ICpwcml2X2VwOw0KPj4+ PiArCXN0cnVjdCBjZG5zM19yZXF1ZXN0ICpwcml2X3JlcTsNCj4+Pj4gIAlzdHJ1Y3QgY2RuczNf ZGV2aWNlICpwcml2X2RldjsNCj4+Pj4gIAlzdHJ1Y3QgdXNiX3JlcXVlc3QgKnJlcXVlc3Q7DQo+ Pj4+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsNCj4+Pj4gQEAgLTEzMDgsNiArMTUyMSwxNCBAQCBz dGF0aWMgaW50IGNkbnMzX2dhZGdldF9lcF9kaXNhYmxlKHN0cnVjdCB1c2JfZXAgKmVwKQ0KPj4+ PiAgCQkJCSAgICAgIC1FU0hVVERPV04pOw0KPj4+PiAgCX0NCj4+Pj4NCj4+Pj4gKwl3aGlsZSAo IWxpc3RfZW1wdHkoJnByaXZfZXAtPmRlc2NtaXNzX3JlcV9saXN0KSkgew0KPj4+PiArCQlwcml2 X3JlcSA9IGNkbnMzX25leHRfcHJpdl9yZXF1ZXN0KCZwcml2X2VwLT5kZXNjbWlzc19yZXFfbGlz dCk7DQo+Pj4+ICsNCj4+Pj4gKwkJa2ZyZWUocHJpdl9yZXEtPnJlcXVlc3QuYnVmKTsNCj4+Pj4g KwkJY2RuczNfZ2FkZ2V0X2VwX2ZyZWVfcmVxdWVzdCgmcHJpdl9lcC0+ZW5kcG9pbnQsDQo+Pj4+ ICsJCQkJCSAgICAgJnByaXZfcmVxLT5yZXF1ZXN0KTsNCj4+Pj4gKwl9DQo+Pj4+ICsNCj4+Pj4g IAl3aGlsZSAoIWxpc3RfZW1wdHkoJnByaXZfZXAtPmRlZmVycmVkX3JlcV9saXN0KSkgew0KPj4+ PiAgCQlyZXF1ZXN0ID0gY2RuczNfbmV4dF9yZXF1ZXN0KCZwcml2X2VwLT5kZWZlcnJlZF9yZXFf bGlzdCk7DQo+Pj4+DQo+Pj4+IEBAIC0xMzQ4LDYgKzE1NjksNTMgQEAgc3RhdGljIGludCBfX2Nk bnMzX2dhZGdldF9lcF9xdWV1ZShzdHJ1Y3QgdXNiX2VwICplcCwNCj4+Pj4gIAlwcml2X3JlcSA9 IHRvX2NkbnMzX3JlcXVlc3QocmVxdWVzdCk7DQo+Pj4+ICAJdHJhY2VfY2RuczNfZXBfcXVldWUo cHJpdl9yZXEpOw0KPj4+Pg0KPj4+PiArCS8qDQo+Pj4+ICsJICogV0EyOiBpZiB0cmFuc2ZlciB3 YXMgcXVldWVkIGJlZm9yZSBERVNDTUlTUyBhcHBlYXIgdGhhbiB3ZQ0KPj4+PiArCSAqIGNhbiBk aXNhYmxlIGhhbmRsaW5nIG9mIERFU0NNSVNTIGludGVycnVwdC4gRHJpdmVyIGFzc3VtZXMgdGhh dCBpdA0KPj4+PiArCSAqIGNhbiBkaXNhYmxlIHNwZWNpYWwgdHJlYXRtZW50IGZvciB0aGlzIGVu ZHBvaW50Lg0KPj4+PiArCSAqLw0KPj4+PiArCWlmIChwcml2X2VwLT5mbGFncyAmIEVQX1FVSVJL X0VYVFJBX0JVRl9ERVQpIHsNCj4+Pj4gKwkJdTMyIHJlZzsNCj4+Pj4gKw0KPj4+PiArCQljZG5z M19zZWxlY3RfZXAocHJpdl9kZXYsIHByaXZfZXAtPm51bSB8IHByaXZfZXAtPmRpcik7DQo+Pj4+ ICsJCXByaXZfZXAtPmZsYWdzICY9IH5FUF9RVUlSS19FWFRSQV9CVUZfREVUOw0KPj4+PiArCQly ZWcgPSByZWFkbCgmcHJpdl9kZXYtPnJlZ3MtPmVwX3N0c19lbik7DQo+Pj4+ICsJCXJlZyAmPSB+ RVBfU1RTX0VOX0RFU0NNSVNFTjsNCj4+Pj4gKwkJd3JpdGVsKHJlZywgJnByaXZfZGV2LT5yZWdz LT5lcF9zdHNfZW4pOw0KPj4+PiArCX0NCj4+Pj4gKw0KPj4+PiArCS8qIFdBMiAqLw0KPj4+PiAr CWlmIChwcml2X2VwLT5mbGFncyAmIEVQX1FVSVJLX0VYVFJBX0JVRl9FTikgew0KPj4+PiArCQl1 OCBwZW5kaW5nX2VtcHR5ID0gbGlzdF9lbXB0eSgmcHJpdl9lcC0+cGVuZGluZ19yZXFfbGlzdCk7 DQo+Pj4+ICsJCXU4IGRlc2NtaXNzX2VtcHR5ID0gbGlzdF9lbXB0eSgmcHJpdl9lcC0+ZGVzY21p c3NfcmVxX2xpc3QpOw0KPj4+PiArDQo+Pj4+ICsJCS8qDQo+Pj4+ICsJCSAqICBERVNDTUlTUyB0 cmFuc2ZlciBoYXMgYmVlbiBmaW5pc2hlZCwgc28gZGF0YSB3aWxsIGJlDQo+Pj4+ICsJCSAqICBk aXJlY3RseSBjb3BpZWQgZnJvbSBpbnRlcm5hbCBhbGxvY2F0ZWQgdXNiX3JlcXVlc3QNCj4+Pj4g KwkJICogIG9iamVjdHMuDQo+Pj4+ICsJCSAqLw0KPj4+PiArCQlpZiAocGVuZGluZ19lbXB0eSAm JiAhZGVzY21pc3NfZW1wdHkgJiYNCj4+Pj4gKwkJICAgICEocHJpdl9yZXEtPmZsYWdzICYgUkVR VUVTVF9JTlRFUk5BTCkpIHsNCj4+Pj4gKwkJCWNkbnMzX2Rlc2NtaXNzX2NvcHlfZGF0YShwcml2 X2VwLCByZXF1ZXN0KTsNCj4+Pj4gKwkJCWxpc3RfYWRkX3RhaWwoJnJlcXVlc3QtPmxpc3QsDQo+ Pj4+ICsJCQkJICAgICAgJnByaXZfZXAtPnBlbmRpbmdfcmVxX2xpc3QpOw0KPj4+PiArCQkJY2Ru czNfZ2FkZ2V0X2dpdmViYWNrKHByaXZfZXAsIHByaXZfcmVxLA0KPj4+PiArCQkJCQkgICAgICBy ZXF1ZXN0LT5zdGF0dXMpOw0KPj4+PiArCQkJcmV0dXJuIHJldDsNCj4+Pj4gKwkJfQ0KPj4+PiAr DQo+Pj4+ICsJCS8qDQo+Pj4+ICsJCSAqIFdBMiBkcml2ZXIgd2lsbCB3YWl0IGZvciBjb21wbGV0 aW9uIERFU0NNSVNTIHRyYW5zZmVyLA0KPj4+PiArCQkgKiBiZWZvcmUgc3RhcnRzIG5ldywgbm90 IERFU0NNSVNTIHRyYW5zZmVyLg0KPj4+PiArCQkgKi8NCj4+Pj4gKwkJaWYgKCFwZW5kaW5nX2Vt cHR5ICYmICFkZXNjbWlzc19lbXB0eSkNCj4+Pj4gKwkJCWRlZmVycmVkID0gMTsNCj4+Pj4gKw0K Pj4+PiArCQlpZiAocHJpdl9yZXEtPmZsYWdzICYgUkVRVUVTVF9JTlRFUk5BTCkNCj4+Pj4gKwkJ CWxpc3RfYWRkX3RhaWwoJnByaXZfcmVxLT5saXN0LA0KPj4+PiArCQkJCSAgICAgICZwcml2X2Vw LT5kZXNjbWlzc19yZXFfbGlzdCk7DQo+Pj4+ICsJfQ0KPj4+PiArDQo+Pj4+ICAJcmV0ID0gdXNi X2dhZGdldF9tYXBfcmVxdWVzdF9ieV9kZXYocHJpdl9kZXYtPnN5c2RldiwgcmVxdWVzdCwNCj4+ Pj4gIAkJCQkJICAgIHVzYl9lbmRwb2ludF9kaXJfaW4oZXAtPmRlc2MpKTsNCj4+Pj4gIAlpZiAo cmV0KQ0KPj4+PiBAQCAtMTc4Miw2ICsyMDUwLDcgQEAgc3RhdGljIGludCBjZG5zM19pbml0X2Vw cyhzdHJ1Y3QgY2RuczNfZGV2aWNlICpwcml2X2RldikNCj4+Pj4NCj4+Pj4gIAkJSU5JVF9MSVNU X0hFQUQoJnByaXZfZXAtPnBlbmRpbmdfcmVxX2xpc3QpOw0KPj4+PiAgCQlJTklUX0xJU1RfSEVB RCgmcHJpdl9lcC0+ZGVmZXJyZWRfcmVxX2xpc3QpOw0KPj4+PiArCQlJTklUX0xJU1RfSEVBRCgm cHJpdl9lcC0+ZGVzY21pc3NfcmVxX2xpc3QpOw0KPj4+PiAgCX0NCj4+Pj4NCj4+Pj4gIAlyZXR1 cm4gMDsNCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NkbnMzL2dhZGdldC5oIGIvZHJp dmVycy91c2IvY2RuczMvZ2FkZ2V0LmgNCj4+Pj4gaW5kZXggODE3ZjhhZTdhNGRhLi44ZGU3MzNi MzE1ZTkgMTAwNjQ0DQo+Pj4+IC0tLSBhL2RyaXZlcnMvdXNiL2NkbnMzL2dhZGdldC5oDQo+Pj4+ ICsrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL2dhZGdldC5oDQo+Pj4+IEBAIC0xMDAwLDYgKzEwMDAs NyBAQCBzdHJ1Y3QgY2RuczNfZGV2aWNlOw0KPj4+PiAgICogQGVuZHBvaW50OiB1c2IgZW5kcG9p bnQNCj4+Pj4gICAqIEBwZW5kaW5nX3JlcV9saXN0OiBsaXN0IG9mIHJlcXVlc3RzIHF1ZXVpbmcg b24gdHJhbnNmZXIgcmluZy4NCj4+Pj4gICAqIEBkZWZlcnJlZF9yZXFfbGlzdDogbGlzdCBvZiBy ZXF1ZXN0cyB3YWl0aW5nIGZvciBxdWV1aW5nIG9uIHRyYW5zZmVyIHJpbmcuDQo+Pj4+ICsgKiBA ZGVzY21pc3NfcmVxX2xpc3Q6IGxpc3Qgb2YgcmVxdWVzdHMgaW50ZXJuYWxseSBhbGxvY2F0ZWQg YnkgZHJpdmVyIChXQTIpLg0KPj4+PiAgICogQHRyYl9wb29sOiB0cmFuc2ZlciByaW5nIC0gYXJy YXkgb2YgdHJhbnNhY3Rpb24gYnVmZmVycw0KPj4+PiAgICogQHRyYl9wb29sX2RtYTogZG1hIGFk ZHJlc3Mgb2YgdHJhbnNmZXIgcmluZw0KPj4+PiAgICogQGNkbnMzX2RldjogZGV2aWNlIGFzc29j aWF0ZWQgd2l0aCB0aGlzIGVuZHBvaW50DQo+Pj4+IEBAIC0xMDI2LDYgKzEwMjcsNyBAQCBzdHJ1 Y3QgY2RuczNfZW5kcG9pbnQgew0KPj4+PiAgCXN0cnVjdCB1c2JfZXAJCWVuZHBvaW50Ow0KPj4+ PiAgCXN0cnVjdCBsaXN0X2hlYWQJcGVuZGluZ19yZXFfbGlzdDsNCj4+Pj4gIAlzdHJ1Y3QgbGlz dF9oZWFkCWRlZmVycmVkX3JlcV9saXN0Ow0KPj4+PiArCXN0cnVjdCBsaXN0X2hlYWQJZGVzY21p c3NfcmVxX2xpc3Q7DQo+Pj4+DQo+Pj4+ICAJc3RydWN0IGNkbnMzX3RyYgkqdHJiX3Bvb2w7DQo+ Pj4+ICAJZG1hX2FkZHJfdAkJdHJiX3Bvb2xfZG1hOw0KPj4+PiBAQCAtMTA0MSw2ICsxMDQzLDkg QEAgc3RydWN0IGNkbnMzX2VuZHBvaW50IHsNCj4+Pj4gICNkZWZpbmUgRVBfUEVORElOR19SRVFV RVNUCUJJVCg1KQ0KPj4+PiAgI2RlZmluZSBFUF9SSU5HX0ZVTEwJCUJJVCg2KQ0KPj4+PiAgI2Rl ZmluZSBFUF9DTEFJTUVECQlCSVQoNykNCj4+Pj4gKyNkZWZpbmUgRVBfUVVJUktfRVhUUkFfQlVG X0RFVAlCSVQoOCkNCj4+Pj4gKyNkZWZpbmUgRVBfUVVJUktfRVhUUkFfQlVGX0VOCUJJVCg5KQ0K Pj4+PiArI2RlZmluZSBFUF9RVUlSS19FTkRfVFJBTlNGRVIJQklUKDEwKQ0KPj4+Pg0KPj4+PiAg CXUzMgkJCWZsYWdzOw0KPj4+Pg0KPj4+PiBAQCAtMTA3NCw2ICsxMDc5LDcgQEAgc3RydWN0IGNk bnMzX2VuZHBvaW50IHsNCj4+Pj4gICAqIEBzdGFydF90cmI6IG51bWJlciBvZiB0aGUgZmlyc3Qg VFJCIGluIHRyYW5zZmVyIHJpbmcNCj4+Pj4gICAqIEBlbmRfdHJiOiBudW1iZXIgb2YgdGhlIGxh c3QgVFJCIGluIHRyYW5zZmVyIHJpbmcNCj4+Pj4gICAqIEBmbGFnczogZmxhZyBzcGVjaWZ5aW5n IHNwZWNpYWwgdXNhZ2Ugb2YgcmVxdWVzdA0KPj4+PiArICogQGxpc3Q6IHVzZWQgYnkgaW50ZXJu YWxseSBhbGxvY2F0ZWQgcmVxdWVzdCB0byBhZGQgdG8gZGVzY21pc3NfcmVxX2xpc3QuDQo+Pj4+ ICAgKi8NCj4+Pj4gIHN0cnVjdCBjZG5zM19yZXF1ZXN0IHsNCj4+Pj4gIAlzdHJ1Y3QgdXNiX3Jl cXVlc3QJcmVxdWVzdDsNCj4+Pj4gQEAgLTEwODYsNiArMTA5Miw3IEBAIHN0cnVjdCBjZG5zM19y ZXF1ZXN0IHsNCj4+Pj4gICNkZWZpbmUgUkVRVUVTVF9JTlRFUk5BTF9DSAlCSVQoMikNCj4+Pj4g ICNkZWZpbmUgUkVRVUVTVF9aTFAJCUJJVCgzKQ0KPj4+PiAgCXUzMgkJCWZsYWdzOw0KPj4+PiAr CXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsNCj4+Pj4gIH07DQo+Pj4+DQo+Pj4+ICAjZGVmaW5lIHRv X2NkbnMzX3JlcXVlc3QocikgKGNvbnRhaW5lcl9vZihyLCBzdHJ1Y3QgY2RuczNfcmVxdWVzdCwg cmVxdWVzdCkpDQo+Pj4+DQo+Pj4NCj4+PiAtLQ0KPj4+IFRleGFzIEluc3RydW1lbnRzIEZpbmxh bmQgT3ksIFBvcmtrYWxhbmthdHUgMjIsIDAwMTgwIEhlbHNpbmtpLg0KPj4+IFktdHVubnVzL0J1 c2luZXNzIElEOiAwNjE1NTIxLTQuIEtvdGlwYWlra2EvRG9taWNpbGU6IEhlbHNpbmtpDQo+DQo+ LS0NCj5UZXhhcyBJbnN0cnVtZW50cyBGaW5sYW5kIE95LCBQb3Jra2FsYW5rYXR1IDIyLCAwMDE4 MCBIZWxzaW5raS4NCj5ZLXR1bm51cy9CdXNpbmVzcyBJRDogMDYxNTUyMS00LiBLb3RpcGFpa2th L0RvbWljaWxlOiBIZWxzaW5raQ0K