From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EABDFC5519F for ; Wed, 25 Nov 2020 12:21:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 66BD8206B5 for ; Wed, 25 Nov 2020 12:21:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="Qd+Ulfw0"; dkim=pass (1024-bit key) header.d=microchiptechnology.onmicrosoft.com header.i=@microchiptechnology.onmicrosoft.com header.b="f7wd1RvU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729188AbgKYMVb (ORCPT ); Wed, 25 Nov 2020 07:21:31 -0500 Received: from esa5.microchip.iphmx.com ([216.71.150.166]:52762 "EHLO esa5.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728143AbgKYMV3 (ORCPT ); Wed, 25 Nov 2020 07:21:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1606306889; x=1637842889; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=n5+yf+G4jtyyfJiBwh/frM58WJ0Mu3Q3RVyLekHBT1E=; b=Qd+Ulfw0J4hB+4NutdUK+jx32Q6846GE2yV4v0RI/94uEaBZXzHobam5 2/+5oevY7uXo/hVGlAepNAD4i63bU3qeVP3dZ/IeSu2xAtehJCwg3jGht RGzvbALqerEwNc7BUeTTGUi7mAyRwyNf8r54upWChoUK3W2sdwnldqY0g /xPVYFy2rd/hfmMbLuiFJUYSvJtFPSfypcVs2ow3SNoq4eoftrJ3w1B0B w6GxOxjN/dP0Bvq0zrzpMWVy22/nbNDApT/DfAgPhZvj7V7TduFHQsSj/ GilWVorzbTIpcjnSohGXpHzNVGIRbP5xLKKgJdRZaiaZ53CzD2PRWGVkB A==; IronPort-SDR: DRPOhkSoGwSHiVtXQlUog3/lusaOIpH/glssMM5Wwtxx7FJzDcNzAoIvbd8xrxJBg8aN9c844m SNm4Hq1pFn3KFnVB3VdT9EYhJCdvdL2cELIwf+weLb/g4udm24Q4AccrTeHAS/EoBjRkF2EHzu m5BIFPsJnJBk6O7RInI/4UTN5TRNsbUuo5QyM81qbu7+xw2X0rZgzrlR1ZZC1Vq7D+c5A6KCBB rmod5cgh2BcTe8vzGCu92dZvTFRDpo1QlUpW5UM+H9t8iS60FT/T9m0KzBJHaRt6rnwxJY6qvr h4Y= X-IronPort-AV: E=Sophos;i="5.78,368,1599548400"; d="scan'208";a="99785490" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 25 Nov 2020 05:21:28 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Wed, 25 Nov 2020 05:21:27 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3 via Frontend Transport; Wed, 25 Nov 2020 05:21:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eeU/gZDFkqo7t6LO2m6fHUX4QkSz4clLdw4a3yZzwey2mwO5DP80/OgL+6dt99AxS5BWAcGdJnEE/rPqYBdgZeEwgnuWJExIkVe3dyKuWUlkjZC3NU0gehu2gNBRZbn04MXxRQNp+0J1laitiNpeP7QVc20Yc8Y5giXdLlklJpknxYOQpXUHLxzF9V2ILHqjYvSSEUpbSKr/MB29liM4wlVKc7LpDjC20H8GHFJ2IqZktncydICxk6+fSOReURdhtd+QPGuCK0h57peJcZm2wVE13VHLU1TyuAkI8ikLhVMSuSuH4ib0Vo8gP8AOXpTeaXPOWcEiKPx4L2FcO1ms+g== 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=n5+yf+G4jtyyfJiBwh/frM58WJ0Mu3Q3RVyLekHBT1E=; b=UyCMf5maXjU+WSzVvAkWBY8ydxfkSRJmmcgA5acWV5na6z5Ug1eTx1vHhT0CDweoVoP6EunMKvMGkx9wI1aDzSlNSuGVfnWlGYY3KVxIJfNXAhUv/L0Ib6Is3Pkb/8SB4geQ0sBJJP/YtAyDEj1IKnPZcvQuoNnhEAgFO21WUl3QpqDLKQzxmC+L85B5S4IvigkxbhnlCCy+/e41e42NwpZSdLKQDibSBqNuvJ33njFASEYFQbVnVXMHHkalGoG8poOomFHE7IGWSsSCx1dhqJGIsI6oLc4WH3gRHVkJ4YTREfTOEmra2Hd0lEr3yL0EmXhFqxPfaO9oAavfAeaZEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=n5+yf+G4jtyyfJiBwh/frM58WJ0Mu3Q3RVyLekHBT1E=; b=f7wd1RvUTjPmLsX9FQ//Tc2c5jfnt/lICJHTOIluOUGERGGGHOgB3qTDKPW0xbYx1ieBDeG8e087fWNC2ZdZSzcTWjfCgOMBLrFZj2Qv1F/e6fO7Tx4UifjQWvH4mQXV8PCvGF0UwXZE8xg+YM5aSCCrOuj85buNiwiPeXigjVE= Received: from SA2PR11MB4874.namprd11.prod.outlook.com (2603:10b6:806:f9::23) by SN6PR11MB3389.namprd11.prod.outlook.com (2603:10b6:805:c8::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.22; Wed, 25 Nov 2020 12:21:25 +0000 Received: from SA2PR11MB4874.namprd11.prod.outlook.com ([fe80::6903:3212:cc9e:761]) by SA2PR11MB4874.namprd11.prod.outlook.com ([fe80::6903:3212:cc9e:761%7]) with mapi id 15.20.3611.021; Wed, 25 Nov 2020 12:21:25 +0000 From: To: , , CC: , , , Subject: Re: [PATCH v5 3/3] mtd: spi-nor: keep lock bits if they are non-volatile Thread-Topic: [PATCH v5 3/3] mtd: spi-nor: keep lock bits if they are non-volatile Thread-Index: AQHWwyV9Mln+2AGpp0CZylv8vNNFfw== Date: Wed, 25 Nov 2020 12:21:25 +0000 Message-ID: References: <20201003153235.29762-1-michael@walle.cc> <20201003153235.29762-4-michael@walle.cc> In-Reply-To: <20201003153235.29762-4-michael@walle.cc> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 authentication-results: walle.cc; dkim=none (message not signed) header.d=none;walle.cc; dmarc=none action=none header.from=microchip.com; x-originating-ip: [79.115.63.172] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 063359c5-1838-4467-9ad6-08d8913ca0d7 x-ms-traffictypediagnostic: SN6PR11MB3389: x-microsoft-antispam-prvs: x-bypassexternaltag: True x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zk6AMHE8OyFVww/9AECaxc7KN2l910XlCQj2xC9hL3rAN8B2pnofLsMSJ1Zg21ZfSX0IgXu9cErAFHNK04UQ5mwgnBlamz6yB14a4qItNK6Y8EadP3ItzwnjomWZecgOu2jZyy32CMN5gJxF2i/0H7oRkDpgjgbqfUIYxkSgseL/rgd04RyUHaDL7dsLXoKucZjfEvy4YW998OZnJYeav53CB+jRqfXFeLmT/F+qCsDQCW6oiTjo29NUqO2q76c+YUIhJwSlBl0fzR7+7qhhWDNdQiKRLTfw2TnHDnBDYkZc6EuSzeHz4SL0vuI6fkoKNVZOc7pPinfPED647EfVkYvR3mbtdAFCl3gUOtnz/rwe1iQD+AqPOnGN7CcDtyrvO8/2FYyBGQawwG6/NHh+KvhhpsZ+/8qx/GwC3KMtuSkl6YHdbrlCaSt4JSnyYhnkGKLRC3GuNT0/kglMYb4I2g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR11MB4874.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(366004)(39860400002)(376002)(136003)(346002)(2616005)(86362001)(316002)(478600001)(6486002)(66476007)(26005)(5660300002)(76116006)(186003)(30864003)(64756008)(66946007)(66556008)(66446008)(31696002)(36756003)(8936002)(54906003)(71200400001)(15188155005)(6512007)(83380400001)(966005)(53546011)(4326008)(16799955002)(6506007)(8676002)(2906002)(110136005)(31686004)(43740500002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?bmg0eFZ6SVVPQmdrVjYvQWJjdGFWWGhWVFR1TGY2aVVCYmdSV2l1djRPSWov?= =?utf-8?B?Q09EMlBUOHpsWFM1Y2U1T2VMbVJQM2RYMkFjRGw5WHFXRlFaQkRLZEtZNUxk?= =?utf-8?B?UmF6UVZ5aVJaSTJhc2hhdlorakNsYXJQd1lwMjZ3Ni9RbXB0ZFN4cFBPMTJp?= =?utf-8?B?TGdwNEVobU9DQkY3aHZtTWRVaG5jQ0ZtcU5JaWU3QVVCdm8rMmxXK0k0bGhy?= =?utf-8?B?eE5SZ0JaMGxJMDdHOVpLZ0VWYm10TWNGQm9FSFIwMXFaRlA0bWhCakt2Qkwz?= =?utf-8?B?ZXBTc0NhMjZLblRlVVZiQjVhbHViNmpZdUpCWnY1ZzZpSWl1M1dCQjRCdGZP?= =?utf-8?B?K1V4TnhxZFEvSXl6UjFUekU1RzV0M1VSanF4VTY3VG51Y2NYbkNtcG1paUhp?= =?utf-8?B?MVpWQk5zcXFWWDh1ZWtsWFdTU25EWU5CVUlWQ1hUM2tDSGJHaUQ0UlBMWkdO?= =?utf-8?B?MU1Hd0R2d3VDc0kwYmpycVdQOFNBWWM3ZWZ3UStFeWo3L094ajJ6ZHZ1T09s?= =?utf-8?B?eHluZlVodlExelRtTnNJVnhWaGZpNnJXM0ZUNTdGRjk0Q2FyT1RBWHFuelJk?= =?utf-8?B?UVhEemV3OXA1NjI5OEFxWUJoMllWa0svNlFsY2pINnh3YjVVVXZJTjlmZG5Z?= =?utf-8?B?UEUzYm55SmN4bituelFUT2Q0NnFHOG83SHRnNFBvTldZZ1ZkR1lhNzFUZUhy?= =?utf-8?B?MUtOY05TTFpWeTNLWTB4VkRqNDE4bTJEMjEzcUFpT1hxNGIxREZ3SWo5TTJU?= =?utf-8?B?c21GOHUwUWV4eFp3bDJtTXF6RW5pSGN3NEl5STIwYzJKYlNCYmhsdFJmTXpW?= =?utf-8?B?SnpOOEpHMDgycjU2TnNFNVNtdGcveCtkMnc5TXZTdE1FR1V6RXpoajNCY3dN?= =?utf-8?B?c2RDdUkvVnpLbndQaVF1MWVoZ0tMaURTRS9RTGg4cGFNUXloejRYUVEySlV2?= =?utf-8?B?dmxmUkk2Nm9keXZhSlFXU1B0d2pYelBxeHF0bHlEMys3VWkvdXdWZ3ZQbWZW?= =?utf-8?B?cWp2MnRoWFltdVdubHk1Sjl4N2xMMG15bi9uVkFZcjh6LzN3Tk9ScC9lNWNK?= =?utf-8?B?ekcrTGJSdTdtTndmOEh1eUpzMTl4QkhSbzRtNk9GWkRxZzdOTm04R2l3ejRK?= =?utf-8?B?UnRzMWVNQWtFNUhMOXU3aG5CTlVNWkc1Y2JwaWJtNXFPSnlaa252M0E0VEN6?= =?utf-8?B?UVV0QmFUTURUa0YvVHhqTFVOZGEzNkJTSlFlT2xQMzBvZmo3TDMrWXkwWUVq?= =?utf-8?B?RXJRM3QzRG5HOUpHU2hKbndWT1pGZzB5aHdDKzEzTG0zK2x1R29WQ2hrbG1L?= =?utf-8?Q?pVvIMlrJffsJY=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <9CDE207036764D4E86D45E2FA9B47BC3@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR11MB4874.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 063359c5-1838-4467-9ad6-08d8913ca0d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2020 12:21:25.4489 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kAalG1SI72/1zyOKbQxsN+SxP5B+AcXoIC6qEwQU5xIV060+OqAFFscNJiLAcPeTR9JuOJN5ubKGHGx93WoB9BIe/WxgKbV68kFNhnZBuyc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3389 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTAvMy8yMCA2OjMyIFBNLCBNaWNoYWVsIFdhbGxlIHdyb3RlOg0KPiBFWFRFUk5BTCBFTUFJ TDogRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBrbm93 IHRoZSBjb250ZW50IGlzIHNhZmUNCj4gDQo+IFRyYWRpdGlvbmFsbHksIGxpbnV4IHVubG9ja3Mg dGhlIHdob2xlIGZsYXNoIGJlY2F1c2UgdGhlcmUgYXJlIGxlZ2FjeQ0KPiBkZXZpY2VzIHdoaWNo IGhhcyB0aGUgd3JpdGUgcHJvdGVjdGlvbnMgYml0cyBzZXQgYnkgZGVmYXVsdCBhdCBzdGFydHVw Lg0KPiBJZiB5b3UgYWN0dWFsbHkgd2FudCB0byB1c2UgdGhlIGZsYXNoIHByb3RlY3Rpb24gYml0 cywgZWcuIGJlY2F1c2UgdGhlcmUNCj4gaXMgYSByZWFkLW9ubHkgcGFydCBmb3IgYSBib290bG9h ZGVyLCB0aGlzIGF1dG9tYXRpYyB1bmxvY2tpbmcgaXMNCj4gaGFybWZ1bC4gSWYgdGhlcmUgaXMg bm8gaGFyZHdhcmUgd3JpdGUgcHJvdGVjdGlvbiBpbiBwbGFjZSAodXN1YWxseQ0KPiBjYWxsZWQg V1AjKSwgYSBzdGFydHVwIG9mIHRoZSBrZXJuZWwganVzdCBkaXNjYXJkcyB0aGlzIHByb3RlY3Rp b24uDQo+IA0KPiBJJ3ZlIGdvbmUgdGhyb3VnaCB0aGUgZGF0YXNoZWV0cyBvZiBhbGwgdGhlIGZs YXNoZXMgKGV4Y2VwdCB0aGUgSW50ZWwNCj4gb25lcyB3aGVyZSBJIGNvdWxkIG5vdCBmaW5kIGFu eSBkYXRhc2hlZXQgbm9yIHJlZmVyZW5jZSkgd2hpY2ggc3VwcG9ydHMNCj4gdGhlIHVubG9ja2lu ZyBmZWF0dXJlIGFuZCBsb29rZWQgaG93IHRoZSBzZWN0b3IgcHJvdGVjdGlvbiB3YXMNCj4gaW1w bGVtZW50ZWQuIFRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZsYXNoZXMgY2FuIGJlIGRpdmlkZWQg aW50byB0aGUNCj4gZm9sbG93aW5nIHR3byBjYXRlZ29yaWVzOg0KPiAgKDEpIGJsb2NrIHByb3Rl Y3Rpb24gYml0cyBhcmUgbm9uLXZvbGF0aWxlLiBUaHVzIHRoZXkga2VlcCB0aGVpciB2YWx1ZXMN Cj4gICAgICBhdCByZXNldCBhbmQgcG93ZXItY3ljbGUNCj4gICgyKSBmbGFzaGVzIHdoZXJlIHRo ZXNlIGJpdHMgYXJlIHZvbGF0aWxlLiBBZnRlciByZXNldCBvciBwb3dlci1jeWNsZSwNCj4gICAg ICB0aGUgd2hvbGUgbWVtb3J5IGFycmF5IGlzIHByb3RlY3RlZC4NCj4gICAgICAoYSkgc29tZSBk ZXZpY2VzIG5lZWRzIGEgc3BlY2lhbCAiR2xvYmFsIFVucHJvdGVjdCIgY29tbWFuZCwgZWcuDQo+ ICAgICAgICAgIHRoZSBBdG1lbCBBVDI1REYwNDFBLg0KPiAgICAgIChiKSBzb21lIGRldmljZXMg cmVxdWlyZSB0byBjbGVhciB0aGUgQlBuIGJpdHMgaW4gdGhlIHN0YXR1cw0KPiAgICAgICAgICBy ZWdpc3Rlci4NCj4gDQo+IER1ZSB0byB0aGUgcmVhc29ucyBhYm92ZSwgd2UgZG8gbm90IHdhbnQg dG8gY2xlYXIgdGhlIGJpdHMgZm9yIGZsYXNoZXMNCj4gd2hpY2ggYmVsb25nIHRvIGNhdGVnb3J5 ICgxKS4gRm9ydHVuYXRlbHkgZm9yIHVzLCBvbmx5IEF0bWVsIGZsYXNoZXMNCj4gZmFsbCBpbnRv IGNhdGVnb3J5ICgyYSkuIEltcGxlbWVudCB0aGUgIkdsb2JhbCBQcm90ZWN0IiBhbmQgIkdsb2Jh bA0KPiBVbnByb3RlY3QiIGNvbW1hbmRzIGZvciB0aGVzZS4gRm9yICgyYikgd2UgY2FuIHVzZSBu b3JtYWwgYmxvY2sNCj4gcHJvdGVjdGlvbiBsb2NraW5nIHNjaGVtZS4NCj4gDQo+IFRoaXMgcGF0 Y2ggYWRkcyBhIG5ldyBmbGFnIHRvIGluZGljYXRlIHRoZSBjYXNlICgyKS4gT25seSBpZiB3ZSBo YXZlDQo+IHN1Y2ggYSBmbGFzaCB3ZSB1bmxvY2sgdGhlIHdob2xlIGZsYXNoIGFycmF5LiBUbyBi ZSBiYWNrd2FyZHMgY29tcGF0aWJsZQ0KPiBpdCBhbHNvIGludHJvZHVjZXMgYSBrZXJuZWwgY29u ZmlndXJhdGlvbiBvcHRpb24gd2hpY2ggcmVzdG9yZXMgdGhlDQo+IGNvbXBsZXRlIGxlZ2FjeSBi ZWhhdmlvciAoIkRpc2FibGUgd3JpdGUgcHJvdGVjdGlvbiBvbiBhbnkgZmxhc2hlcyIpLg0KPiBI b3BlZnVsbHksIHRoaXMgd2lsbCBjbGVhbiB1cCAidW5sb2NrIHRoZSBlbnRpcmUgZmxhc2ggZm9y IGxlZ2FjeQ0KPiBkZXZpY2VzIiBvbmNlIGFuZCBmb3IgYWxsLg0KPiANCj4gRm9yIHJlZmVyZW5j ZSBoZXJlIGFyZSB0aGUgYWN0dWFsbHkgY29tbWl0cyB3aGljaCBpbnRyb2R1Y2VkIHRoZSBsZWdh Y3kNCj4gYmVoYXZpb3VyIChhbmQgZXh0ZW5kZWQgdGhlIGJlaGF2aW91ciB0byBvdGhlciBjaGlw IG1hbnVmYWN0dXJlcnMpOg0KPiANCj4gY29tbWl0IGY4MGU1MjFjOTE2Y2IgKCJtdGQ6IG0yNXA4 MDogYWRkIHN1cHBvcnQgZm9yIHRoZSBJbnRlbC9OdW1vbnl4IHsxNiwzMiw2NH0wUzMzQiBTUEkg Zmxhc2ggY2hpcHMiKQ0KPiBjb21taXQgZWE2MDY1OGEwOGY4ZiAoIm10ZDogbTI1cDgwOiBkaXNh YmxlIFNTVCBzb2Z0d2FyZSBwcm90ZWN0aW9uIGJpdHMgYnkgZGVmYXVsdCIpDQo+IGNvbW1pdCA3 MjI4OTgyNDQyMzY1ICgiW01URF0gbTI1cDgwOiBmaXggYnVnIC0gQVRtZWwgc3BpIGZsYXNoIGZh aWxzIHRvIGJlIGNvcGllZCB0byIpDQo+IA0KPiBBY3R1YWxseSwgdGhpcyBtaWdodCBhbHNvIGZp eCBoYW5kbGluZyBvZiB0aGUgQXRtZWwgQVQyNURGIGZsYXNoZXMsDQo+IGJlY2F1c2UgdGhlIG9y aWdpbmFsIGNvbW1pdCA3MjI4OTgyNDQyMzY1ICgiW01URF0gbTI1cDgwOiBmaXggYnVnIC0NCj4g QVRtZWwgc3BpIGZsYXNoIGZhaWxzIHRvIGJlIGNvcGllZCB0byIpIHdhcyB3cml0aW5nIGEgMCB0 byB0aGUgc3RhdHVzDQo+IHJlZ2lzdGVyLCB3aGljaCBpcyBhICJHbG9iYWwgVW5wcm90ZWN0Ii4g VGhpcyBtaWdodCBub3QgYmUgdGhlIGNhc2UgaW4NCj4gdGhlIGN1cnJlbnQgY29kZSB3aGljaCBv bmx5IGhhbmRsZXMgdGhlIGJsb2NrIHByb3RlY3Rpb24gYml0cyBCUDIsIEJQMQ0KPiBhbmQgQlAw LiBUaHVzLCBpdCBkZXBlbmRzIG9uIHRoZSBjdXJyZW50IGNvbnRlbnRzIG9mIHRoZSBzdGF0dXMg cmVnaXN0ZXINCj4gaWYgdGhpcyB1bmxvY2sgYWN0dWFsbHkgY29ycmVzcG9uZHMgdG8gYSAiR2xv YmFsIFVucHJvdGVjdCIgY29tbWFuZC4gSW4NCj4gdGhlIHdvcnN0IGNhc2UsIHRoZSBjdXJyZW50 IGNvZGUgbWlnaHQgbGVhdmUgdGhlIEFUMjVERiBmbGFzaGVzIGluIGENCj4gd3JpdGUgcHJvdGVj dGVkIHN0YXRlLg0KPiANCj4gVGhlIGNvbW1pdCAxOTFmNWMyZWQ0YjZmICgibXRkOiBzcGktbm9y OiB1c2UgMTYtYml0IFdSUiBjb21tYW5kIHdoZW4gUUUNCj4gaXMgc2V0IG9uIHNwYW5zaW9uIGZs YXNoZXMiKSBjaGFuZ2VkIHRoYXQgYmVoYXZpb3VyIGJ5IGp1c3QgY2xlYXJpbmcgQlAyDQo+IHRv IEJQMCBpbnN0ZWFkIG9mIHdyaXRpbmcgYSAwIHRvIHRoZSBzdGF0dXMgcmVnaXN0ZXIuDQo+IA0K PiBGdXJ0aGVyLCB0aGUgY29tbWl0IDNlMDkzMGYxMDllNzYgKCJtdGQ6IHNwaS1ub3I6IFJld29y ayB0aGUgZGlzYWJsaW5nDQo+IG9mIGJsb2NrIHdyaXRlIHByb3RlY3Rpb24iKSBleHBhbmRlZCB0 aGUgdW5sb2NrX2FsbCgpIGZlYXR1cmUgdG8gQU5ZDQo+IGZsYXNoIHdoaWNoIHN1cHBvcnRzIGxv Y2tpbmcuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFdhbGxlIDxtaWNoYWVsQHdhbGxl LmNjPg0KPiAtLS0NCj4gY2hhbmdlcyBzaW5jZSB2NDoNCj4gIC0gbWFkZSBhdG1lbF9nbG9iYWxf cHJvdGVjdGlvbl9kZWZhdWx0X2luaXQoKSBzdGF0aWMsIHNwb3R0ZWQgYnkNCj4gICAgbGtwQGlu dGVsLmNvbQ0KPiANCj4gY2hhbmdlcyBzaW5jZSB2MzoNCj4gIC0gbm93IGRlZmF1bHRpbmcgdG8g TVREX1NQSV9OT1JfV1BfRElTQUJMRV9PTl9WT0xBVElMRSwgc3VnZ2VzdGVkIGJ5IFZpZ25lc2gN Cj4gIC0gcmVzdG9yZWQgdGhlIG9yaWdpbmFsIHNwaV9ub3JfdW5sb2NrX2FsbCgpLCBpbnN0ZWFk IGFkZCBpbmRpdmlkdWFsDQo+ICAgIGxvY2tpbmcgb3BzIGZvciB0aGUgIkdsb2JhbCBQcm90ZWN0 IiBzY2hlbWUgaW4gYXRtZWwuYy4gVGhpcyB3YXMgdGVzdGVkDQo+ICAgIHBhcnRseSB3aXRoIHRo ZSBBVDI1U0wzMjEgKGZvciB0aGUgdGVzdCBJIGFkZGVkIHRoZSBmaXh1cHMgdG8gdGhpcw0KPiAg ICBmbGFzaCkuDQo+ICAtIHJlbmFtZWQgU1BJX05PUl9VTlBST1RFQ1QgdG8gU1BJX05PUl9XUF9J U19WT0xBVElMRS4gU3VnZ2VzdGVkIGJ5DQo+ICAgIFZpbmdlc2gsIGFsdGhvdWdoIEkndmUgcmVu YW1lZCBpdCB0byBhIG1vcmUgZ2VuZXJhbCAiV1BfSVNfVk9MQVRJTEUiDQo+ICAgIGJlY2F1c2Ug ZWl0aGVyIHRoZSBCUCBiaXRzIG9yIHRoZSBpbmRpdmlkdWFsIHNlY3RvciBsb2NrcyBtaWdodCBi ZQ0KPiAgICB2b2xhdGlsZS4NCj4gIC0gYWRkIG1lbnRpb24gb2YgYm90aCBibG9jayBwcm90ZWN0 aW9uIGJpdHMgYW5kICJHbG9iYWwgVW5wcm90ZWN0IiBjb21tYW5kDQo+ICAgIGluIHRoZSBLY29u ZmlnIGhlbHAgdGV4dC4NCj4gDQo+IGNoYW5nZXMgc2luY2UgdjI6DQo+ICAtIGFkZCBLY29uZmln IG9wdGlvbiB0byBiZSBhYmxlIHRvIHJldGFpbiBsZWdhY3kgYmVoYXZpb3VyDQo+ICAtIHJlYmFz ZWQgdGhlIHBhdGNoIGR1ZSB0byB0aGUgc3BpLW5vciByZXdyaXRlDQo+ICAtIGRyb3BwZWQgdGhl IEZpeGVzOiB0YWcsIGl0IGRvZW5zJ3QgbWFrZSBzZW5zZSBhZnRlciB0aGUgc3BpLW5vciByZXdy aXRlDQo+ICAtIG1lbnRpb24gY29tbWl0IDNlMDkzMGYxMDllNzYgd2hpY2ggZnVydGhlciBtb2Rp ZmllZCB0aGUgdW5sb2NrDQo+ICAgIGJlaGF2aW91ci4NCj4gDQo+IGNoYW5nZXMgc2luY2UgdjE6 DQo+ICAtIGNvbXBsZXRlbHkgcmV3cm90ZSBwYXRjaCwgdGhlIGZpcnN0IHZlcnNpb24gdXNlZCBh IGRldmljZSB0cmVlIGZsYWcNCj4gDQo+ICBkcml2ZXJzL210ZC9zcGktbm9yL0tjb25maWcgfCAg NDIgKysrKysrKysrKysrKysNCj4gIGRyaXZlcnMvbXRkL3NwaS1ub3IvYXRtZWwuYyB8IDExMSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0NCj4gIGRyaXZlcnMvbXRkL3NwaS1u b3IvY29yZS5jICB8ICAzNiArKysrKysrKy0tLS0NCj4gIGRyaXZlcnMvbXRkL3NwaS1ub3IvY29y ZS5oICB8ICAgOCArKysNCj4gIGRyaXZlcnMvbXRkL3NwaS1ub3IvZXNtdC5jICB8ICAgOCArKy0N Cj4gIGRyaXZlcnMvbXRkL3NwaS1ub3IvaW50ZWwuYyB8ICAgNiArLQ0KPiAgZHJpdmVycy9tdGQv c3BpLW5vci9zc3QuYyAgIHwgIDIxICsrKy0tLS0NCj4gIDcgZmlsZXMgY2hhbmdlZCwgMTk5IGlu c2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bXRkL3NwaS1ub3IvS2NvbmZpZyBiL2RyaXZlcnMvbXRkL3NwaS1ub3IvS2NvbmZpZw0KPiBpbmRl eCBmZmM0YjM4MGYyYjEuLjExZTY2NThlZTg1ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9tdGQv c3BpLW5vci9LY29uZmlnDQo+ICsrKyBiL2RyaXZlcnMvbXRkL3NwaS1ub3IvS2NvbmZpZw0KPiBA QCAtMjQsNiArMjQsNDggQEAgY29uZmlnIE1URF9TUElfTk9SX1VTRV80S19TRUNUT1JTDQo+ICAg ICAgICAgICBQbGVhc2Ugbm90ZSB0aGF0IHNvbWUgdG9vbHMvZHJpdmVycy9maWxlc3lzdGVtcyBt YXkgbm90IHdvcmsgd2l0aA0KPiAgICAgICAgICAgNDA5NiBCIGVyYXNlIHNpemUgKGUuZy4gVUJJ RlMgcmVxdWlyZXMgMTUgS2lCIGFzIGEgbWluaW11bSkuDQo+IA0KPiArY2hvaWNlDQo+ICsgICAg ICAgcHJvbXB0ICJXcml0ZSBwcm90ZWN0aW9uIGF0IGJvb3QiDQo+ICsgICAgICAgZGVmYXVsdCBN VERfU1BJX05PUl9XUF9ESVNBQkxFX09OX1ZPTEFUSUxFDQo+ICsNCj4gK2NvbmZpZyBNVERfU1BJ X05PUl9XUF9ESVNBQkxFDQo+ICsgICAgICAgYm9vbCAiRGlzYWJsZSBXUCBvbiBhbnkgZmxhc2hl cyAobGVnYWN5IGJlaGF2aW91cikiDQo+ICsgICAgICAgaGVscA0KPiArICAgICAgICAgVGhpcyBv cHRpb24gZGlzYWJsZXMgdGhlIHdyaXRlIHByb3RlY3Rpb24gb24gYW55IFNQSSBmbGFzaGVzIGF0 DQo+ICsgICAgICAgICBib290LXVwLg0KPiArDQo+ICsgICAgICAgICBEZXBlbmRpbmcgb24gdGhl IGZsYXNoIGNoaXAgdGhpcyBlaXRoZXIgY2xlYXJzIHRoZSBibG9jayBwcm90ZWN0aW9uDQo+ICsg ICAgICAgICBiaXRzIG9yIGRvZXMgYSAiR2xvYmFsIFVucHJvdGVjdCIgY29tbWFuZC4NCj4gKw0K PiArICAgICAgICAgRG9uJ3QgdXNlIHRoaXMgaWYgeW91IGludGVudCB0byB1c2UgdGhlIHdyaXRl IHByb3RlY3Rpb24gb2YgeW91cg0KPiArICAgICAgICAgU1BJIGZsYXNoLiBUaGlzIGlzIG9ubHkg dG8ga2VlcCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4NCj4gKw0KPiArY29uZmlnIE1URF9TUElf Tk9SX1dQX0RJU0FCTEVfT05fVk9MQVRJTEUNCj4gKyAgICAgICBib29sICJEaXNhYmxlIFdQIG9u IGZsYXNoZXMgdy8gdm9sYXRpbGUgcHJvdGVjdGlvbiBiaXRzIg0KPiArICAgICAgIGhlbHANCj4g KyAgICAgICAgIFNvbWUgU1BJIGZsYXNoZXMgaGF2ZSB2b2xhdGlsZSBibG9jayBwcm90ZWN0aW9u IGJpdHMsIGllLiBhZnRlciBhDQo+ICsgICAgICAgICBwb3dlci11cCBvciBhIHJlc2V0IHRoZSBm bGFzaCBpcyB3cml0ZSBwcm90ZWN0ZWQgYnkgZGVmYXVsdC4NCj4gKw0KPiArICAgICAgICAgVGhp cyBvcHRpb24gZGlzYWJsZXMgdGhlIHdyaXRlIHByb3RlY3Rpb24gZm9yIHRoZXNlIGtpbmQgb2Yg Zmxhc2hlcw0KPiArICAgICAgICAgd2hpbGUga2VlcGluZyBpdCBlbmFibGVkIGZvciBhbnkgb3Ro ZXIgU1BJIGZsYXNoZXMgd2hpY2ggaGF2ZQ0KPiArICAgICAgICAgbm9uLXZvbGF0aWxlIHdyaXRl IHByb3RlY3Rpb24gYml0cy4NCj4gKw0KPiArICAgICAgICAgSWYgdGhlIHdyaXRlIHByb3RlY3Rp b24gd2lsbCBiZSBkaXNhYmxlZCBkZXBlbmRpbmcgb24gdGhlIGZsYXNoDQo+ICsgICAgICAgICBl aXRoZXIgdGhlIGJsb2NrIHByb3RlY3Rpb24gYml0cyBhcmUgY2xlYXJlZCBvciBhICJHbG9iYWwg VW5wcm90ZWN0Ig0KPiArICAgICAgICAgY29tbWFuZCBpcyBpc3N1ZWQuDQo+ICsNCj4gKyAgICAg ICAgIElmIHlvdSBhcmUgdW5zdXJlLCBzZWxlY3QgdGhpcyBvcHRpb24uDQo+ICsNCj4gK2NvbmZp ZyBNVERfU1BJX05PUl9XUF9LRUVQDQo+ICsgICAgICAgYm9vbCAiS2VlcCB3cml0ZSBwcm90ZWN0 aW9uIGFzIGlzIg0KPiArICAgICAgIGhlbHANCj4gKyAgICAgICAgIElmIHlvdSBzZWxlY3QgdGhp cyBvcHRpb24gdGhlIHdyaXRlIHByb3RlY3Rpb24gb2YgYW55IFNQSSBmbGFzaGVzDQo+ICsgICAg ICAgICB3aWxsIG5vdCBiZSBjaGFuZ2VkLiBJZiB5b3VyIGZsYXNoIGlzIHdyaXRlIHByb3RlY3Rl ZCBvciB3aWxsIGJlDQo+ICsgICAgICAgICBhdXRvbWF0aWNhbGx5IHdyaXRlIHByb3RlY3RlZCBh ZnRlciBwb3dlci11cCB5b3UgaGF2ZSB0byBtYW51YWxseQ0KPiArICAgICAgICAgdW5sb2NrIGl0 IGJlZm9yZSB5b3UgYXJlIGFibGUgdG8gd3JpdGUgdG8gaXQuDQo+ICsNCj4gK2VuZGNob2ljZQ0K PiArDQo+ICBzb3VyY2UgImRyaXZlcnMvbXRkL3NwaS1ub3IvY29udHJvbGxlcnMvS2NvbmZpZyIN Cj4gDQo+ICBlbmRpZiAjIE1URF9TUElfTk9SDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9z cGktbm9yL2F0bWVsLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL2F0bWVsLmMNCj4gaW5kZXggNDlk MzkyYzZjOGJjLi4xOTY2NTA5NWFlYWIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1u b3IvYXRtZWwuYw0KPiArKysgYi9kcml2ZXJzL210ZC9zcGktbm9yL2F0bWVsLmMNCj4gQEAgLTgs MjMgKzgsMTIwIEBADQo+IA0KPiAgI2luY2x1ZGUgImNvcmUuaCINCj4gDQo+ICsjZGVmaW5lIEFU TUVMX1NSX0dMT0JBTF9QUk9URUNUX01BU0sgR0VOTUFTSyg1LCAyKQ0KPiArDQo+ICsvKioNCj4g KyAqIGF0bWVsX3NldF9nbG9iYWxfcHJvdGVjdGlvbiAtIERvIGEgR2xvYmFsIFByb3RlY3Qgb3Ig VW5wcm90ZWN0IGNvbW1hbmQNCj4gKyAqIEBub3I6ICAgICAgIHBvaW50ZXIgdG8gJ3N0cnVjdCBz cGlfbm9yJw0KPiArICogQG9mczogICAgICAgb2Zmc2V0IGluIGJ5dGVzDQo+ICsgKiBAbGVuOiAg ICAgICBsZW4gaW4gYnl0ZXMNCj4gKyAqIEBpc19wcm90ZWN0OiAgICAgICAgaWYgdHJ1ZSBkbyBh IEdsb2JhbCBQcm90ZWN0IG90aGVyd2lzZSBpdCBpcyBhIEdsb2JhbCBVbnByb3RlY3QNCj4gKyAq DQo+ICsgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLWVycm9yIG90aGVyd2lzZS4NCj4gKyAqLw0K PiArc3RhdGljIGludCBhdG1lbF9zZXRfZ2xvYmFsX3Byb3RlY3Rpb24oc3RydWN0IHNwaV9ub3Ig Km5vciwgbG9mZl90IG9mcywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3QgbGVuLCBib29sIGlzX3Byb3RlY3QpDQo+ICt7DQo+ICsgICAgICAgaW50IHJl dDsNCj4gKyAgICAgICB1OCBzcjsNCj4gKw0KPiArICAgICAgIC8qIFdlIG9ubHkgc3VwcG9ydCBs b2NraW5nIHRoZSB3aG9sZSBmbGFzaCBhcnJheSAqLw0KPiArICAgICAgIGlmIChvZnMgfHwgbGVu ICE9IG5vci0+cGFyYW1zLT5zaXplKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 DQo+ICsNCj4gKyAgICAgICByZXQgPSBzcGlfbm9yX3JlYWRfc3Iobm9yLCBub3ItPmJvdW5jZWJ1 Zik7DQo+ICsgICAgICAgaWYgKHJldCkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ ICsgICAgICAgc3IgPSBub3ItPmJvdW5jZWJ1ZlswXTsNCj4gKw0KPiArICAgICAgIC8qIFNSV0Qg Yml0IG5lZWRzIHRvIGJlIGNsZWFyZWQsIG90aGVyd2lzZSB0aGUgcHJvdGVjdGlvbiBkb2Vzbid0 IGNoYW5nZSAqLw0KPiArICAgICAgIGlmIChzciAmIFNSX1NSV0QpIHsNCj4gKyAgICAgICAgICAg ICAgIHNyICY9IH5TUl9TUldEOw0KPiArICAgICAgICAgICAgICAgcmV0ID0gc3BpX25vcl93cml0 ZV9zcl9hbmRfY2hlY2sobm9yLCBzcik7DQo+ICsgICAgICAgICAgICAgICBpZiAocmV0KSB7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgIGRldl9lcnIobm9yLT5kZXYsICJ1bmFibGUgdG8gY2xl YXIgU1JXRCBiaXQsIFdQIyBhc3NlcnRlZD9cbiIpOw0KPiArICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gcmV0Ow0KPiArICAgICAgICAgICAgICAgfQ0KPiArICAgICAgIH0NCj4gKw0KPiAr ICAgICAgIGlmIChpc19wcm90ZWN0KQ0KPiArICAgICAgICAgICAgICAgc3IgfD0gQVRNRUxfU1Jf R0xPQkFMX1BST1RFQ1RfTUFTSzsNCj4gKyAgICAgICBlbHNlDQo+ICsgICAgICAgICAgICAgICBz ciAmPSB+QVRNRUxfU1JfR0xPQkFMX1BST1RFQ1RfTUFTSzsNCj4gKw0KPiArICAgICAgIHJldHVy biBzcGlfbm9yX3dyaXRlX3NyX2FuZF9jaGVjayhub3IsIHNyKTsNCj4gK30NCj4gKw0KPiArc3Rh dGljIGludCBhdG1lbF9nbG9iYWxfcHJvdGVjdChzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3Qg b2ZzLCB1aW50NjRfdCBsZW4pDQo+ICt7DQo+ICsgICAgICAgcmV0dXJuIGF0bWVsX3NldF9nbG9i YWxfcHJvdGVjdGlvbihub3IsIG9mcywgbGVuLCB0cnVlKTsNCj4gK30NCj4gKw0KPiArc3RhdGlj IGludCBhdG1lbF9nbG9iYWxfdW5wcm90ZWN0KHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBv ZnMsIHVpbnQ2NF90IGxlbikNCj4gK3sNCj4gKyAgICAgICByZXR1cm4gYXRtZWxfc2V0X2dsb2Jh bF9wcm90ZWN0aW9uKG5vciwgb2ZzLCBsZW4sIGZhbHNlKTsNCj4gK30NCj4gKw0KPiArc3RhdGlj IGludCBhdG1lbF9pc19nbG9iYWxfcHJvdGVjdGVkKHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZf dCBvZnMsIHVpbnQ2NF90IGxlbikNCj4gK3sNCj4gKyAgICAgICBpbnQgcmV0Ow0KPiArDQo+ICsg ICAgICAgaWYgKG9mcyA+PSBub3ItPnBhcmFtcy0+c2l6ZSB8fCAob2ZzICsgbGVuKSA+IG5vci0+ cGFyYW1zLT5zaXplKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4g KyAgICAgICByZXQgPSBzcGlfbm9yX3JlYWRfc3Iobm9yLCBub3ItPmJvdW5jZWJ1Zik7DQo+ICsg ICAgICAgaWYgKHJldCkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ICsNCj4gKyAg ICAgICByZXR1cm4gKChub3ItPmJvdW5jZWJ1ZlswXSAmIEFUTUVMX1NSX0dMT0JBTF9QUk9URUNU X01BU0spID09IEFUTUVMX1NSX0dMT0JBTF9QUk9URUNUX01BU0spOw0KPiArfQ0KPiArDQo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHNwaV9ub3JfbG9ja2luZ19vcHMgYXRtZWxfZ2xvYmFsX3Byb3Rl Y3Rpb25fb3BzID0gew0KPiArICAgICAgIC5sb2NrID0gYXRtZWxfZ2xvYmFsX3Byb3RlY3QsDQo+ ICsgICAgICAgLnVubG9jayA9IGF0bWVsX2dsb2JhbF91bnByb3RlY3QsDQo+ICsgICAgICAgLmlz X2xvY2tlZCA9IGF0bWVsX2lzX2dsb2JhbF9wcm90ZWN0ZWQsDQo+ICt9Ow0KDQpTa2ltbWluZyB0 aHJvdWdoIG15IG5vdGVzIGluIDEvMywgSSdtIGd1ZXNzaW5nIHRoaXMgd2lsbCBub3Qgd29yayBm b3IgYW55DQpvZiB0aGUgYXRtZWwgZmxhc2hlcyB0aGF0IHdlIGN1cnJlbnRseSBoYXZlLg0KDQpD YW4gd2UgaW5zdGVhZCByZXR1cm4gLUVPUE5PVFNVUFAgZm9yIC5pc19sb2NrZWQgYW5kIC5sb2Nr IGFuZCBqdXN0IHdyaXRlIGEgMHgwMCB0byBTUg0KZm9yIHRoZSAudW5sb2NrIG1ldGhvZD8NCg0K PiArDQo+ICtzdGF0aWMgdm9pZCBhdG1lbF9nbG9iYWxfcHJvdGVjdGlvbl9kZWZhdWx0X2luaXQo c3RydWN0IHNwaV9ub3IgKm5vcikNCj4gK3sNCj4gKyAgICAgICBub3ItPnBhcmFtcy0+bG9ja2lu Z19vcHMgPSAmYXRtZWxfZ2xvYmFsX3Byb3RlY3Rpb25fb3BzOw0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IHNwaV9ub3JfZml4dXBzIGF0bWVsX2dsb2JhbF9wcm90ZWN0aW9uX2Zp eHVwcyA9IHsNCj4gKyAgICAgICAuZGVmYXVsdF9pbml0ID0gYXRtZWxfZ2xvYmFsX3Byb3RlY3Rp b25fZGVmYXVsdF9pbml0LA0KPiArfTsNCj4gKw0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmbGFz aF9pbmZvIGF0bWVsX3BhcnRzW10gPSB7DQo+ICAgICAgICAgLyogQXRtZWwgLS0gc29tZSBhcmUg KGNvbmZ1c2luZ2x5KSBtYXJrZXRlZCBhcyAiRGF0YUZsYXNoIiAqLw0KPiAgICAgICAgIHsgImF0 MjVmczAxMCIsICBJTkZPKDB4MWY2NjAxLCAwLCAzMiAqIDEwMjQsICAgNCwgU0VDVF80SyB8IFNQ SV9OT1JfSEFTX0xPQ0spIH0sDQo+ICAgICAgICAgeyAiYXQyNWZzMDQwIiwgIElORk8oMHgxZjY2 MDQsIDAsIDY0ICogMTAyNCwgICA4LCBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4g DQo+IC0gICAgICAgeyAiYXQyNWRmMDQxYSIsIElORk8oMHgxZjQ0MDEsIDAsIDY0ICogMTAyNCwg ICA4LCBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gLSAgICAgICB7ICJhdDI1ZGYz MjEiLCAgSU5GTygweDFmNDcwMCwgMCwgNjQgKiAxMDI0LCAgNjQsIFNFQ1RfNEsgfCBTUElfTk9S X0hBU19MT0NLKSB9LA0KPiAtICAgICAgIHsgImF0MjVkZjMyMWEiLCBJTkZPKDB4MWY0NzAxLCAw LCA2NCAqIDEwMjQsICA2NCwgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+IC0gICAg ICAgeyAiYXQyNWRmNjQxIiwgIElORk8oMHgxZjQ4MDAsIDAsIDY0ICogMTAyNCwgMTI4LCBTRUNU XzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gKyAgICAgICB7ICJhdDI1ZGYwNDFhIiwgSU5G TygweDFmNDQwMSwgMCwgNjQgKiAxMDI0LCAgIDgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xPQ0sgfCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxF KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAuZml4dXBzID0gJmF0bWVsX2dsb2JhbF9wcm90 ZWN0aW9uX2ZpeHVwcyB9LA0KPiArICAgICAgIHsgImF0MjVkZjMyMSIsICBJTkZPKDB4MWY0NzAw LCAwLCA2NCAqIDEwMjQsICA2NCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNU XzRLIHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfV1BfSVNfVk9MQVRJTEUpDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIC5maXh1cHMgPSAmYXRtZWxfZ2xvYmFsX3Byb3RlY3Rpb25fZml4 dXBzIH0sDQo+ICsgICAgICAgeyAiYXQyNWRmMzIxYSIsIElORk8oMHgxZjQ3MDEsIDAsIDY0ICog MTAyNCwgIDY0LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElf Tk9SX0hBU19MT0NLIHwgU1BJX05PUl9XUF9JU19WT0xBVElMRSkNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgLmZpeHVwcyA9ICZhdG1lbF9nbG9iYWxfcHJvdGVjdGlvbl9maXh1cHMgfSwNCj4g KyAgICAgICB7ICJhdDI1ZGY2NDEiLCAgSU5GTygweDFmNDgwMCwgMCwgNjQgKiAxMDI0LCAxMjgs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xP Q0sgfCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxFKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAu Zml4dXBzID0gJmF0bWVsX2dsb2JhbF9wcm90ZWN0aW9uX2ZpeHVwcyB9LA0KPiANCj4gICAgICAg ICB7ICJhdDI1c2wzMjEiLCAgSU5GTygweDFmNDIxNiwgMCwgNjQgKiAxMDI0LCA2NCwNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05PUl9EVUFMX1JFQUQgfCBT UElfTk9SX1FVQURfUkVBRCkgfSwNCj4gDQo+ICAgICAgICAgeyAiYXQyNmYwMDQiLCAgIElORk8o MHgxZjA0MDAsIDAsIDY0ICogMTAyNCwgIDgsIFNFQ1RfNEspIH0sDQo+IC0gICAgICAgeyAiYXQy NmRmMDgxYSIsIElORk8oMHgxZjQ1MDEsIDAsIDY0ICogMTAyNCwgMTYsIFNFQ1RfNEsgfCBTUElf Tk9SX0hBU19MT0NLKSB9LA0KPiAtICAgICAgIHsgImF0MjZkZjE2MWEiLCBJTkZPKDB4MWY0NjAx LCAwLCA2NCAqIDEwMjQsIDMyLCBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gLSAg ICAgICB7ICJhdDI2ZGYzMjEiLCAgSU5GTygweDFmNDcwMCwgMCwgNjQgKiAxMDI0LCA2NCwgU0VD VF80SyB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+ICsgICAgICAgeyAiYXQyNmRmMDgxYSIsIElO Rk8oMHgxZjQ1MDEsIDAsIDY0ICogMTAyNCwgMTYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xPQ0sgfCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxF KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAuZml4dXBzID0gJmF0bWVsX2dsb2JhbF9wcm90 ZWN0aW9uX2ZpeHVwcyB9LA0KPiArICAgICAgIHsgImF0MjZkZjE2MWEiLCBJTkZPKDB4MWY0NjAx LCAwLCA2NCAqIDEwMjQsIDMyLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1Rf NEsgfCBTUElfTk9SX0hBU19MT0NLIHwgU1BJX05PUl9XUF9JU19WT0xBVElMRSkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgLmZpeHVwcyA9ICZhdG1lbF9nbG9iYWxfcHJvdGVjdGlvbl9maXh1 cHMgfSwNCj4gKyAgICAgICB7ICJhdDI2ZGYzMjEiLCAgSU5GTygweDFmNDcwMCwgMCwgNjQgKiAx MDI0LCA2NCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05P Ul9IQVNfTE9DSyB8IFNQSV9OT1JfV1BfSVNfVk9MQVRJTEUpDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIC5maXh1cHMgPSAmYXRtZWxfZ2xvYmFsX3Byb3RlY3Rpb25fZml4dXBzIH0sDQo+IA0K PiAgICAgICAgIHsgImF0NDVkYjA4MWQiLCBJTkZPKDB4MWYyNTAwLCAwLCA2NCAqIDEwMjQsIDE2 LCBTRUNUXzRLKSB9LA0KPiAgfTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3Iv Y29yZS5jIGIvZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmMNCj4gaW5kZXggMmFkZDRhMDFmY2Uy Li5jNDBhN2MxNDkwZDcgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5j DQo+ICsrKyBiL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jDQo+IEBAIC0yNzYsNyArMjc2LDcg QEAgaW50IHNwaV9ub3Jfd3JpdGVfZGlzYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQ0KPiAgICoN Cj4gICAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAtZXJybm8gb3RoZXJ3aXNlLg0KPiAgICovDQo+ IC1zdGF0aWMgaW50IHNwaV9ub3JfcmVhZF9zcihzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCAqc3Ip DQo+ICtpbnQgc3BpX25vcl9yZWFkX3NyKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4ICpzcikNCj4g IHsNCj4gICAgICAgICBpbnQgcmV0Ow0KPiANCj4gQEAgLTkwNiw3ICs5MDYsNyBAQCBzdGF0aWMg aW50IHNwaV9ub3Jfd3JpdGVfMTZiaXRfY3JfYW5kX2NoZWNrKHN0cnVjdCBzcGlfbm9yICpub3Is IHU4IGNyKQ0KPiAgICoNCj4gICAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAtZXJybm8gb3RoZXJ3 aXNlLg0KPiAgICovDQo+IC1zdGF0aWMgaW50IHNwaV9ub3Jfd3JpdGVfc3JfYW5kX2NoZWNrKHN0 cnVjdCBzcGlfbm9yICpub3IsIHU4IHNyMSkNCj4gK2ludCBzcGlfbm9yX3dyaXRlX3NyX2FuZF9j aGVjayhzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCBzcjEpDQo+ICB7DQo+ICAgICAgICAgaWYgKG5v ci0+ZmxhZ3MgJiBTTk9SX0ZfSEFTXzE2QklUX1NSKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJu IHNwaV9ub3Jfd3JpdGVfMTZiaXRfc3JfYW5kX2NoZWNrKG5vciwgc3IxKTsNCj4gQEAgLTI5MTks MTUgKzI5MTksMTQgQEAgc3RhdGljIGludCBzcGlfbm9yX3F1YWRfZW5hYmxlKHN0cnVjdCBzcGlf bm9yICpub3IpDQo+ICAgKiBzcGlfbm9yX3VubG9ja19hbGwoKSAtIFVubG9ja3MgdGhlIGVudGly ZSBmbGFzaCBtZW1vcnkgYXJyYXkuDQo+ICAgKiBAbm9yOiAgICAgICBwb2ludGVyIHRvIGEgJ3N0 cnVjdCBzcGlfbm9yJy4NCj4gICAqDQo+IC0gKiBTb21lIFNQSSBOT1IgZmxhc2hlcyBhcmUgd3Jp dGUgcHJvdGVjdGVkIGJ5IGRlZmF1bHQgYWZ0ZXIgYSBwb3dlci1vbiByZXNldA0KPiAtICogY3lj bGUsIGluIG9yZGVyIHRvIGF2b2lkIGluYWR2ZXJ0ZW50IHdyaXRlcyBkdXJpbmcgcG93ZXItdXAu IEJhY2t3YXJkDQo+IC0gKiBjb21wYXRpYmlsaXR5IGltcG9zZXMgdG8gdW5sb2NrIHRoZSBlbnRp cmUgZmxhc2ggbWVtb3J5IGFycmF5IGF0IHBvd2VyLXVwDQo+IC0gKiBieSBkZWZhdWx0Lg0KPiAr ICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UuDQo+ICAgKi8NCj4gIHN0 YXRpYyBpbnQgc3BpX25vcl91bmxvY2tfYWxsKHN0cnVjdCBzcGlfbm9yICpub3IpDQo+ICB7DQo+ IC0gICAgICAgaWYgKG5vci0+ZmxhZ3MgJiBTTk9SX0ZfSEFTX0xPQ0spDQo+ICsgICAgICAgaWYg KG5vci0+ZmxhZ3MgJiBTTk9SX0ZfSEFTX0xPQ0spIHsNCj4gKyAgICAgICAgICAgICAgIGRldl9k Ymcobm9yLT5kZXYsICJ1bnByb3RlY3RpbmcgZW50aXJlIGZsYXNoXG4iKTsNCj4gICAgICAgICAg ICAgICAgIHJldHVybiBzcGlfbm9yX3VubG9jaygmbm9yLT5tdGQsIDAsIG5vci0+cGFyYW1zLT5z aXplKTsNCj4gKyAgICAgICB9DQo+IA0KPiAgICAgICAgIHJldHVybiAwOw0KPiAgfQ0KPiBAQCAt Mjk0MiwxMCArMjk0MSwyMyBAQCBzdGF0aWMgaW50IHNwaV9ub3JfaW5pdChzdHJ1Y3Qgc3BpX25v ciAqbm9yKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4gICAgICAgICB9DQo+IA0K PiAtICAgICAgIGVyciA9IHNwaV9ub3JfdW5sb2NrX2FsbChub3IpOw0KPiAtICAgICAgIGlmIChl cnIpIHsNCj4gLSAgICAgICAgICAgICAgIGRldl9kYmcobm9yLT5kZXYsICJGYWlsZWQgdG8gdW5s b2NrIHRoZSBlbnRpcmUgZmxhc2ggbWVtb3J5IGFycmF5XG4iKTsNCj4gLSAgICAgICAgICAgICAg IHJldHVybiBlcnI7DQo+ICsgICAgICAgLyoNCj4gKyAgICAgICAgKiBTb21lIFNQSSBOT1IgZmxh c2hlcyBhcmUgd3JpdGUgcHJvdGVjdGVkIGJ5IGRlZmF1bHQgYWZ0ZXIgYSBwb3dlci1vbg0KPiAr ICAgICAgICAqIHJlc2V0IGN5Y2xlLCBpbiBvcmRlciB0byBhdm9pZCBpbmFkdmVydGVudCB3cml0 ZXMgZHVyaW5nIHBvd2VyLXVwLg0KPiArICAgICAgICAqIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkg aW1wb3NlcyB0byB1bmxvY2sgdGhlIGVudGlyZSBmbGFzaCBtZW1vcnkNCj4gKyAgICAgICAgKiBh cnJheSBhdCBwb3dlci11cCBieSBkZWZhdWx0LiBEZXBlbmRpbmcgb24gdGhlIGtlcm5lbCBjb25m aWd1cmF0aW9uDQo+ICsgICAgICAgICogKDEpIHdlIGRvIG5vdGhpbmcsICgyKSB3ZSB1bmxvY2sg dGhlIGVudGlyZSBmbGFzaCBpbiBhbnkgY2FzZSBvciAoMykNCj4gKyAgICAgICAgKiBqdXN0IGRv IGl0IGFjdHVhbGx5IHBvd2VycyB1cCB3cml0ZS1wcm90ZWN0ZWQuIFRoZSBsYXR0ZXIgaXMNCj4g KyAgICAgICAgKiBpbmRpY2F0ZWQgYnkgU05PUl9GX1dQX0lTX1ZPTEFUSUxFLg0KPiArICAgICAg ICAqLw0KPiArICAgICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19NVERfU1BJX05PUl9XUF9ESVNB QkxFKSB8fA0KPiArICAgICAgICAgICAoSVNfRU5BQkxFRChDT05GSUdfTVREX1NQSV9OT1JfV1Bf RElTQUJMRV9PTl9WT0xBVElMRSkgJiYNCj4gKyAgICAgICAgICAgIG5vci0+ZmxhZ3MgJiBTTk9S X0ZfV1BfSVNfVk9MQVRJTEUpKSB7DQo+ICsgICAgICAgICAgICAgICBlcnIgPSBzcGlfbm9yX3Vu bG9ja19hbGwobm9yKTsNCj4gKyAgICAgICAgICAgICAgIGlmIChlcnIpIHsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgZGV2X2Vycihub3ItPmRldiwgIkZhaWxlZCB0byB1bmxvY2sgdGhlIGVu dGlyZSBmbGFzaCBtZW1vcnkgYXJyYXlcbiIpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gZXJyOw0KPiArICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgIH0NCj4gDQo+ICAgICAg ICAgaWYgKG5vci0+YWRkcl93aWR0aCA9PSA0ICYmICEobm9yLT5mbGFncyAmIFNOT1JfRl80Ql9P UENPREVTKSkgew0KPiBAQCAtMzE3MCw2ICszMTgyLDggQEAgaW50IHNwaV9ub3Jfc2NhbihzdHJ1 Y3Qgc3BpX25vciAqbm9yLCBjb25zdCBjaGFyICpuYW1lLA0KPiAgICAgICAgICAgICAgICAgbm9y LT5mbGFncyB8PSBTTk9SX0ZfTk9fT1BfQ0hJUF9FUkFTRTsNCj4gICAgICAgICBpZiAoaW5mby0+ ZmxhZ3MgJiBVU0VfQ0xTUikNCj4gICAgICAgICAgICAgICAgIG5vci0+ZmxhZ3MgfD0gU05PUl9G X1VTRV9DTFNSOw0KPiArICAgICAgIGlmIChpbmZvLT5mbGFncyAmIFNQSV9OT1JfV1BfSVNfVk9M QVRJTEUpDQo+ICsgICAgICAgICAgICAgICBub3ItPmZsYWdzIHw9IFNOT1JfRl9XUF9JU19WT0xB VElMRTsNCj4gDQo+ICAgICAgICAgaWYgKGluZm8tPmZsYWdzICYgU1BJX05PUl80QklUX0JQKSB7 DQo+ICAgICAgICAgICAgICAgICBub3ItPmZsYWdzIHw9IFNOT1JfRl9IQVNfNEJJVF9CUDsNCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5oIGIvZHJpdmVycy9tdGQvc3Bp LW5vci9jb3JlLmgNCj4gaW5kZXggNmYyZjZiMjcxNzNmLi45OWRkMmUxNDE0MmEgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5oDQo+ICsrKyBiL2RyaXZlcnMvbXRkL3Nw aS1ub3IvY29yZS5oDQo+IEBAIC0yNiw2ICsyNiw3IEBAIGVudW0gc3BpX25vcl9vcHRpb25fZmxh Z3Mgew0KPiAgICAgICAgIFNOT1JfRl9IQVNfU1JfVEJfQklUNiAgID0gQklUKDExKSwNCj4gICAg ICAgICBTTk9SX0ZfSEFTXzRCSVRfQlAgICAgICA9IEJJVCgxMiksDQo+ICAgICAgICAgU05PUl9G X0hBU19TUl9CUDNfQklUNiAgPSBCSVQoMTMpLA0KPiArICAgICAgIFNOT1JfRl9XUF9JU19WT0xB VElMRSAgID0gQklUKDE0KSwNCj4gIH07DQo+IA0KPiAgc3RydWN0IHNwaV9ub3JfcmVhZF9jb21t YW5kIHsNCj4gQEAgLTMxMSw2ICszMTIsMTEgQEAgc3RydWN0IGZsYXNoX2luZm8gew0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQlAzIGlzIGJpdCA2IG9mIHN0 YXR1cyByZWdpc3Rlci4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqIE11c3QgYmUgdXNlZCB3aXRoIFNQSV9OT1JfNEJJVF9CUC4NCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiArI2RlZmluZSBTUElfTk9SX1dQX0lTX1ZP TEFUSUxFIEJJVCgxOSkgLyoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqIEZsYXNoIGhhcyB2b2xhdGlsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiaXRzLiBVc3VhbGx5IHRoZXNlIHdpbGwg cG93ZXItdXAgaW4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq IGEgd3JpdGUtcHJvdGVjdGVkIHN0YXRlLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovDQo+IA0KPiAgICAgICAgIC8qIFBhcnQgc3BlY2lmaWMgZml4dXAgaG9v a3MuICovDQo+ICAgICAgICAgY29uc3Qgc3RydWN0IHNwaV9ub3JfZml4dXBzICpmaXh1cHM7DQo+ IEBAIC00MDksNiArNDE1LDggQEAgdm9pZCBzcGlfbm9yX3VubG9ja19hbmRfdW5wcmVwKHN0cnVj dCBzcGlfbm9yICpub3IpOw0KPiAgaW50IHNwaV9ub3Jfc3IxX2JpdDZfcXVhZF9lbmFibGUoc3Ry dWN0IHNwaV9ub3IgKm5vcik7DQo+ICBpbnQgc3BpX25vcl9zcjJfYml0MV9xdWFkX2VuYWJsZShz dHJ1Y3Qgc3BpX25vciAqbm9yKTsNCj4gIGludCBzcGlfbm9yX3NyMl9iaXQ3X3F1YWRfZW5hYmxl KHN0cnVjdCBzcGlfbm9yICpub3IpOw0KPiAraW50IHNwaV9ub3Jfd3JpdGVfc3JfYW5kX2NoZWNr KHN0cnVjdCBzcGlfbm9yICpub3IsIHU4IHNyMSk7DQo+ICtpbnQgc3BpX25vcl9yZWFkX3NyKHN0 cnVjdCBzcGlfbm9yICpub3IsIHU4ICpzcik7DQo+IA0KPiAgaW50IHNwaV9ub3JfeHJlYWRfc3Io c3RydWN0IHNwaV9ub3IgKm5vciwgdTggKnNyKTsNCj4gIHNzaXplX3Qgc3BpX25vcl9yZWFkX2Rh dGEoc3RydWN0IHNwaV9ub3IgKm5vciwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4sDQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL210ZC9zcGktbm9yL2VzbXQuYyBiL2RyaXZlcnMvbXRkL3NwaS1ub3Iv ZXNtdC5jDQo+IGluZGV4IGM5MzE3MDAwODExOC4uYzJlYmYyOWQ5NWYyIDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL210ZC9zcGktbm9yL2VzbXQuYw0KPiArKysgYi9kcml2ZXJzL210ZC9zcGktbm9y L2VzbXQuYw0KPiBAQCAtMTEsOSArMTEsMTMgQEANCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxh c2hfaW5mbyBlc210X3BhcnRzW10gPSB7DQo+ICAgICAgICAgLyogRVNNVCAqLw0KPiAgICAgICAg IHsgImYyNWwzMnBhIiwgSU5GTygweDhjMjAxNiwgMCwgNjQgKiAxMDI0LCA2NCwNCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElfTk9SX0hBU19MT0NLIHwgU1BJ X05PUl9XUF9JU19WT0xBVElMRSkgfSwNCg0KaHR0cHM6Ly93d3cuZXNtdC5jb20udHcvdXBsb2Fk L3BkZi9FU01UL2RhdGFzaGVldHMvRjI1TDMyUEEucGRmDQpCUCBHRU5NQVNLKDQsMiksIHZvbGF0 aWxlLCBvaw0KDQo+ICAgICAgICAgeyAiZjI1bDMycWEiLCBJTkZPKDB4OGM0MTE2LCAwLCA2NCAq IDEwMjQsIDY0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05P Ul9IQVNfTE9DSykgfSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNQ SV9OT1JfSEFTX0xPQ0sgfCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxFKSB9LA0KDQpodHRwczovL2Rh dGFzaGVldHNwZGYuY29tL3BkZi1maWxlLzc5NjE5Ni9FU01UL0YyNUwzMlFBLzENCkRhdGFzaGVl dCBzdGF0ZXMgdGhhdCAiQlAwfjMsIFFFIGFuZCBCUEwgYml0cyBhcmUgbm9uLXZvbGF0aWxlLiIN CkF0IHRoZSBzYW1lIHRpbWUsIGl0IHNheXM6ICJBZnRlciBwb3dlci11cCwgQlAzLCBCUDIsIEJQ MSBhbmQgQlAwIGJpdHMNCmFyZSBzZXQgdG8gMC4iDQoNCk1heWJlIGZhY3RvcnkgZGVmYXVsdCBz ZXR0aW5nIGZvciBCUG4gaXMgMD8gTGV0J3MgdHJlYXQgdGhlbSBhcyBOViwgYXMgaW4NCmYyNWw2 NHFhLg0KDQpEbyB3ZSBuZWVkIEJQMz8NCg0KPiArICAgICAgIC8qDQo+ICsgICAgICAgICogQWNj b3JkaW5nIHRvIHRoZSBkYXRhc2hlZXQgdGhlIEJQbiBiaXRzIGFyZSBub24tdm9sYXRpbGUsIHdo ZXJlYXMNCj4gKyAgICAgICAgKiB0aGV5IGFyZSB2b2xhdGlsZSBmb3IgdGhlIHNtYWxsZXIgZjI1 bDMycWEuDQo+ICsgICAgICAgICovDQo+ICAgICAgICAgeyAiZjI1bDY0cWEiLCBJTkZPKDB4OGM0 MTE3LCAwLCA2NCAqIDEwMjQsIDEyOCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VD VF80SyB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQoNCmh0dHBzOi8vZGF0YXNoZWV0c3BkZi5jb20v cGRmLWZpbGUvOTY3NDg4L0VsaXRlU2VtaWNvbmR1Y3Rvci9GMjVMNjRRQS8xDQpCUCBHRU5NQVNL KDUsIDIpLCBub24tdm9sYXRpbGUuDQoNCkJQMz8NCg0KDQo+ICB9Ow0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tdGQvc3BpLW5vci9pbnRlbC5jIGIvZHJpdmVycy9tdGQvc3BpLW5vci9pbnRlbC5j DQo+IGluZGV4IGQ4MTk2ZjEwMTM2OC4uYzQ1ZWEwYWQwMWYwIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL210ZC9zcGktbm9yL2ludGVsLmMNCj4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9pbnRl bC5jDQo+IEBAIC0xMCw5ICsxMCw5IEBADQo+IA0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmbGFz aF9pbmZvIGludGVsX3BhcnRzW10gPSB7DQo+ICAgICAgICAgLyogSW50ZWwvTnVtb255eCAtLSB4 eHhzMzNiICovDQo+IC0gICAgICAgeyAiMTYwczMzYiIsICBJTkZPKDB4ODk4OTExLCAwLCA2NCAq IDEwMjQsICAzMiwgMCkgfSwNCj4gLSAgICAgICB7ICIzMjBzMzNiIiwgIElORk8oMHg4OTg5MTIs IDAsIDY0ICogMTAyNCwgIDY0LCAwKSB9LA0KPiAtICAgICAgIHsgIjY0MHMzM2IiLCAgSU5GTygw eDg5ODkxMywgMCwgNjQgKiAxMDI0LCAxMjgsIDApIH0sDQo+ICsgICAgICAgeyAiMTYwczMzYiIs ICBJTkZPKDB4ODk4OTExLCAwLCA2NCAqIDEwMjQsICAzMiwgU1BJX05PUl9XUF9JU19WT0xBVElM RSkgfSwNCj4gKyAgICAgICB7ICIzMjBzMzNiIiwgIElORk8oMHg4OTg5MTIsIDAsIDY0ICogMTAy NCwgIDY0LCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxFKSB9LA0KPiArICAgICAgIHsgIjY0MHMzM2Ii LCAgSU5GTygweDg5ODkxMywgMCwgNjQgKiAxMDI0LCAxMjgsIFNQSV9OT1JfV1BfSVNfVk9MQVRJ TEUpIH0sDQoNCmh0dHA6Ly93d3cuZGF0YXNoZWV0LmhrL3ZpZXdfZG93bmxvYWQucGhwP2lkPTE1 NjE3ODcmZmlsZT0wMjgyXHFoMjVmMDE2czMzYjhfNjQ5MTA3LnBkZg0KQlAgR0VOTUFTSyg0LDIp IGFsbCB2b2xhdGlsZSwgYWxsIHNldCB0byAxIGF0IHBvd2VyLXVwLg0KDQpZb3UgY2FuIGFkZCBT UElfTk9SX0hBU19MT0NLIHRvIGVhY2ggZmxhc2gsIGFuZCBnZXQgcmlkIG9mIHRoZSBtYW51ZmFj dHVyZXINCmdlbmVyYWxpemF0aW9uLg0KDQo+ICB9Ow0KPiANCj4gIHN0YXRpYyB2b2lkIGludGVs X2RlZmF1bHRfaW5pdChzdHJ1Y3Qgc3BpX25vciAqbm9yKQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tdGQvc3BpLW5vci9zc3QuYyBiL2RyaXZlcnMvbXRkL3NwaS1ub3Ivc3N0LmMNCj4gaW5kZXgg OGIxNjlmYTQxMDJhLi41ZTQ0NTA4NzdkNjYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbXRkL3Nw aS1ub3Ivc3N0LmMNCj4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9zc3QuYw0KPiBAQCAtMTEs MjYgKzExLDI3IEBADQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGZsYXNoX2luZm8gc3N0X3BhcnRz W10gPSB7DQo+ICAgICAgICAgLyogU1NUIC0tIGxhcmdlIGVyYXNlIHNpemVzIGFyZSAib3Zlcmxh eXMiLCAic2VjdG9ycyIgYXJlIDRLICovDQo+ICAgICAgICAgeyAic3N0MjV2ZjA0MGIiLCBJTkZP KDB4YmYyNThkLCAwLCA2NCAqIDEwMjQsICA4LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFT X0xPQ0sgfCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxFKSB9LA0KPiAgICAgICAgIHsgInNzdDI1dmYw ODBiIiwgSU5GTygweGJmMjU4ZSwgMCwgNjQgKiAxMDI0LCAxNiwNCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFTX0xPQ0spIH0s DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJVEUgfCBT UElfTk9SX0hBU19MT0NLIHwgU1BJX05PUl9XUF9JU19WT0xBVElMRSkgfSwNCj4gICAgICAgICB7 ICJzc3QyNXZmMDE2YiIsIElORk8oMHhiZjI1NDEsIDAsIDY0ICogMTAyNCwgMzIsDQo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJVEUgfCBTUElfTk9SX0hB U19MT0NLKSB9LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1NU X1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfV1BfSVNfVk9MQVRJTEUpIH0sDQo+ ICAgICAgICAgeyAic3N0MjV2ZjAzMmIiLCBJTkZPKDB4YmYyNTRhLCAwLCA2NCAqIDEwMjQsIDY0 LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwg U1BJX05PUl9IQVNfTE9DSykgfSwNCj4gLSAgICAgICB7ICJzc3QyNXZmMDY0YyIsIElORk8oMHhi ZjI1NGIsIDAsIDY0ICogMTAyNCwgMTI4LCBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQ SV9OT1JfSEFTX0xPQ0sgfCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxFKSB9LA0KPiArICAgICAgIHsg InNzdDI1dmYwNjRjIiwgSU5GTygweGJmMjU0YiwgMCwgNjQgKiAxMDI0LCAxMjgsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElfTk9SX0hBU19MT0NLIHwgU1BJ X05PUl9XUF9JU19WT0xBVElMRSkgfSwNCg0KTG9va3MgbGlrZSBCUDMgaXMgbmVlZGVkIGhlcmUu DQoNCj4gICAgICAgICB7ICJzc3QyNXdmNTEyIiwgIElORk8oMHhiZjI1MDEsIDAsIDY0ICogMTAy NCwgIDEsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJ VEUgfCBTUElfTk9SX0hBU19MT0NLKSB9LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfV1BfSVNf Vk9MQVRJTEUpIH0sDQo+ICAgICAgICAgeyAic3N0MjV3ZjAxMCIsICBJTkZPKDB4YmYyNTAyLCAw LCA2NCAqIDEwMjQsICAyLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRL IHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFTX0xPQ0sgfCBTUElf Tk9SX1dQX0lTX1ZPTEFUSUxFKSB9LA0KPiAgICAgICAgIHsgInNzdDI1d2YwMjAiLCAgSU5GTygw eGJmMjUwMywgMCwgNjQgKiAxMDI0LCAgNCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJVEUgfCBTUElfTk9SX0hBU19M T0NLIHwgU1BJX05PUl9XUF9JU19WT0xBVElMRSkgfSwNCj4gICAgICAgICB7ICJzc3QyNXdmMDIw YSIsIElORk8oMHg2MjE2MTIsIDAsIDY0ICogMTAyNCwgIDQsIFNFQ1RfNEsgfCBTUElfTk9SX0hB U19MT0NLKSB9LA0KPiAgICAgICAgIHsgInNzdDI1d2YwNDBiIiwgSU5GTygweDYyMTYxMywgMCwg NjQgKiAxMDI0LCAgOCwgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQoNClRoZXNlIHR3 byBmbGFzaGVzIGhhdmUganVzdCB0d28gQlAgYml0cyBsb2NhdGVkIGF0IGJpdCAyIGFuZCAzLiBQ cm9iYWJseSB3aWxsIHdvcmsuDQoNCj4gICAgICAgICB7ICJzc3QyNXdmMDQwIiwgIElORk8oMHhi ZjI1MDQsIDAsIDY0ICogMTAyNCwgIDgsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNFQ1RfNEsgfCBTU1RfV1JJVEUgfCBTUElfTk9SX0hBU19MT0NLKSB9LA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9D SyB8IFNQSV9OT1JfV1BfSVNfVk9MQVRJTEUpIH0sDQo+ICAgICAgICAgeyAic3N0MjV3ZjA4MCIs ICBJTkZPKDB4YmYyNTA1LCAwLCA2NCAqIDEwMjQsIDE2LA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9O T1JfSEFTX0xPQ0sgfCBTUElfTk9SX1dQX0lTX1ZPTEFUSUxFKSB9LA0KPiAgICAgICAgIHsgInNz dDI2d2YwMTZiIiwgSU5GTygweGJmMjY1MSwgMCwgNjQgKiAxMDI0LCAzMiwNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNQSV9OT1JfRFVBTF9SRUFEIHwNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BJX05PUl9RVUFEX1JFQUQpIH0sDQo+IC0tDQo+ IDIuMjAuMQ0KPiANCg0K