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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E1EDC433EF for ; Tue, 9 Nov 2021 10:32:56 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CB347610F8 for ; Tue, 9 Nov 2021 10:32:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CB347610F8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=eBS3jVBGAbdlOjNTCg6pZ+fxstEGekwPxzeq+IywfNE=; b=3R84E1db5ncMY3 pcwCD4ImBkWcamx7ry8JVazvIBaZZWaKUPMUhF/tREHLv2T0E3TRDCr2PXIPdqaglKZ90vc+0rxQ5 /O07wOwJqQB80P4ezYHoNGZ8qpJAOnR41uYOSoGc1HQUqwJlz485YXJuKei7ZYpYvCEhW9GXxQauO x783epdXMKn9/KY4SMd/Vv4Rtn2CqeR7auZ9qMQhAn/d0NDvYizg/Zq4Z8eKkRw6UWpJdLmaFIRv0 2IJFQDQIjSSzZMbBPC3zJe5fFhuqDjDrfacndIf9hj98ET4i2d5Ka1xEzdd91cxtzFnbsIW+ZAWJJ dud3WNxt9nE+1D9P81wA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mkOPN-001XqS-OQ; Tue, 09 Nov 2021 10:31:18 +0000 Received: from mga14.intel.com ([192.55.52.115]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mkOPE-001Xon-M0 for linux-arm-kernel@lists.infradead.org; Tue, 09 Nov 2021 10:31:11 +0000 X-IronPort-AV: E=McAfee;i="6200,9189,10162"; a="232665183" X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="232665183" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 02:31:07 -0800 X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="545265484" Received: from smile.fi.intel.com ([10.237.72.184]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 02:31:05 -0800 Received: from andy by smile.fi.intel.com with local (Exim 4.95) (envelope-from ) id 1mkOOz-00538N-4d; Tue, 09 Nov 2021 12:30:53 +0200 Date: Tue, 9 Nov 2021 12:30:52 +0200 From: Andy Shevchenko To: Arnd Bergmann Cc: linux-gpio@vger.kernel.org, Arnd Bergmann , Linus Walleij , Bartosz Golaszewski , Geert Uytterhoeven , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 6/8] gpiolib: remove legacy gpio_export Message-ID: References: <20211109100207.2474024-1-arnd@kernel.org> <20211109100207.2474024-7-arnd@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20211109100207.2474024-7-arnd@kernel.org> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211109_023108_809856_3887C39E X-CRM114-Status: GOOD ( 37.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBOb3YgMDksIDIwMjEgYXQgMTE6MDI6MDVBTSArMDEwMCwgQXJuZCBCZXJnbWFubiB3 cm90ZToKPiBGcm9tOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+IAo+IFRoZXJlIGFy ZSBvbmx5IGEgaGFuZGZ1bCBvZiB1c2VycyBvZiBncGlvX2V4cG9ydCgpIGFuZAo+IHJlbGF0ZWQg ZnVuY3Rpb25zLgo+IAo+IEFzIHRoZXNlIGFyZSBqdXN0IHdyYXBwZXJzIGFyb3VuZCB0aGUgbW9k ZXJuIGdwaW9kX2V4cG9ydCgpCj4gaGVscGVyLCByZW1vdmUgdGhlIHdyYXBwZXJzIGFuZCBvcGVu LWNvZGUgdGhlIGdwaW9fdG9fZGVzYwo+IGluIGFsbCBjYWxsZXJzIHRvIHNocmluayB0aGUgbGVn YWN5IEFQSS4KClJldmlld2VkLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtv QGxpbnV4LmludGVsLmNvbT4KCldoYXQgSSB3aXNoIHRvIHNlZSBtZWFud2hpbGUgaXMgYSBzZWN0 aW9uIGluIHRoZSBUT0RPIGxpc3Qgc29tZXdoZXJlIHRvIGNsZWFuCnVwIHRob3NlIG1vZHVsZXMg dGhhdCBoYXZlIGdwaW8uaC4gTGludXMsIGRvIHdlIGhhdmUgb25lIGluIHRoZSBrZXJuZWwgb3Ig aXMKaXQgeW91ciBwZXJzb25hbCBUT0RPPwoKSW4gY2FzZSB3ZSBoYXZlIG9uZSBpbiB0aGUga2Vy bmVsLCBwbGVhc2UgYWRkIHRoZXJlIG1vZHVsZXMgeW91IG1vZGlmaWVkIGluCmEgd2F5IHRoYXQg dGhleSBzdGlsbCBuZWVkIGZ1cnRoZXIgYXR0ZW50aW9uLgoKPiBTaWduZWQtb2ZmLWJ5OiBBcm5k IEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL2FkbWluLWd1 aWRlL2dwaW8vc3lzZnMucnN0ICB8ICAyICstCj4gIERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9n cGlvL2xlZ2FjeS5yc3QgIHwgMzAgLS0tLS0tLS0tLS0tLS0tLS0KPiAgRG9jdW1lbnRhdGlvbi90 cmFuc2xhdGlvbnMvemhfQ04vZ3Bpby50eHQgfCAyNiAtLS0tLS0tLS0tLS0tLQo+ICBEb2N1bWVu dGF0aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9ncGlvLnR4dCB8IDI3IC0tLS0tLS0tLS0tLS0tLQo+ ICBhcmNoL2FybS9tYWNoLWRhdmluY2kvYm9hcmQtZG02NDZ4LWV2bS5jICB8IDI4ICsrKysrKysr Ky0tLS0tLS0KPiAgYXJjaC9hcm0vbWFjaC1vbWFwMi9wZGF0YS1xdWlya3MuYyAgICAgICAgfCAg OSArKy0tLQo+ICBhcmNoL3NoL2JvYXJkcy9tYWNoLWFwMzI1cnhhL3NldHVwLmMgICAgICB8ICA3 ICsrLS0KPiAgZHJpdmVycy9ncGlvL2dwaW9saWItc3lzZnMuYyAgICAgICAgICAgICAgfCAgNCAr LS0KPiAgZHJpdmVycy9tZWRpYS9pMmMvbm9vbjAxMHBjMzAuYyAgICAgICAgICAgfCAgNSArLS0K PiAgZHJpdmVycy9tZWRpYS9pMmMvb3Y5NjUwLmMgICAgICAgICAgICAgICAgfCAgNCArLS0KPiAg ZHJpdmVycy9tZWRpYS9pMmMvczVrNGVjZ3guYyAgICAgICAgICAgICAgfCAgMyArLQo+ICBkcml2 ZXJzL21lZGlhL3BjaS9zdGEyeDExL3N0YTJ4MTFfdmlwLmMgICB8IDEwICsrKystLQo+ICBkcml2 ZXJzL21mZC9kbTM1NWV2bV9tc3AuYyAgICAgICAgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMv bmV0L2llZWU4MDIxNTQvY2E4MjEwLmMgICAgICAgICAgIHwgIDMgKy0KPiAgaW5jbHVkZS9saW51 eC9ncGlvLmggICAgICAgICAgICAgICAgICAgICAgfCA0MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ICAxNSBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAxNTcgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvZ3Bpby9zeXNmcy5y c3QgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2dwaW8vc3lzZnMucnN0Cj4gaW5kZXggZWMw OWZmZDk4M2U3Li4zNTE3MWQxNWY3OGQgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1p bi1ndWlkZS9ncGlvL3N5c2ZzLnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUv Z3Bpby9zeXNmcy5yc3QKPiBAQCAtMTQ1LDcgKzE0NSw3IEBAIHJlcXVlc3RlZCB1c2luZyBncGlv X3JlcXVlc3QoKTo6Cj4gIAkvKiBleHBvcnQgdGhlIEdQSU8gdG8gdXNlcnNwYWNlICovCj4gIAlp bnQgZ3Bpb2RfZXhwb3J0KHN0cnVjdCBncGlvX2Rlc2MgKmRlc2MsIGJvb2wgZGlyZWN0aW9uX21h eV9jaGFuZ2UpOwo+ICAKPiAtCS8qIHJldmVyc2UgZ3Bpb19leHBvcnQoKSAqLwo+ICsJLyogcmV2 ZXJzZSBncGlvZF9leHBvcnQoKSAqLwo+ICAJdm9pZCBncGlvZF91bmV4cG9ydChzdHJ1Y3QgZ3Bp b19kZXNjICpkZXNjKTsKPiAgCj4gIAkvKiBjcmVhdGUgYSBzeXNmcyBsaW5rIHRvIGFuIGV4cG9y dGVkIEdQSU8gbm9kZSAqLwo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkv Z3Bpby9sZWdhY3kucnN0IGIvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2dwaW8vbGVnYWN5LnJz dAo+IGluZGV4IGVhZTE4NWY3NzFkNy4uMzRmY2IxNDgxNGRiIDEwMDY0NAo+IC0tLSBhL0RvY3Vt ZW50YXRpb24vZHJpdmVyLWFwaS9ncGlvL2xlZ2FjeS5yc3QKPiArKysgYi9Eb2N1bWVudGF0aW9u L2RyaXZlci1hcGkvZ3Bpby9sZWdhY3kucnN0Cj4gQEAgLTcxNywzNiArNzE3LDYgQEAgZ3Bpb2No aXAgbm9kZXMgKHBvc3NpYmx5IGluIGNvbmp1bmN0aW9uIHdpdGggc2NoZW1hdGljcykgdG8gZGV0 ZXJtaW5lCj4gIHRoZSBjb3JyZWN0IEdQSU8gbnVtYmVyIHRvIHVzZSBmb3IgYSBnaXZlbiBzaWdu YWwuCj4gIAo+ICAKPiAtRXhwb3J0aW5nIGZyb20gS2VybmVsIGNvZGUKPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiAtS2VybmVsIGNvZGUgY2FuIGV4cGxpY2l0bHkgbWFuYWdlIGV4cG9y dHMgb2YgR1BJT3Mgd2hpY2ggaGF2ZSBhbHJlYWR5IGJlZW4KPiAtcmVxdWVzdGVkIHVzaW5nIGdw aW9fcmVxdWVzdCgpOjoKPiAtCj4gLQkvKiBleHBvcnQgdGhlIEdQSU8gdG8gdXNlcnNwYWNlICov Cj4gLQlpbnQgZ3Bpb19leHBvcnQodW5zaWduZWQgZ3BpbywgYm9vbCBkaXJlY3Rpb25fbWF5X2No YW5nZSk7Cj4gLQo+IC0JLyogcmV2ZXJzZSBncGlvX2V4cG9ydCgpICovCj4gLQl2b2lkIGdwaW9f dW5leHBvcnQoKTsKPiAtCj4gLQkvKiBjcmVhdGUgYSBzeXNmcyBsaW5rIHRvIGFuIGV4cG9ydGVk IEdQSU8gbm9kZSAqLwo+IC0JaW50IGdwaW9fZXhwb3J0X2xpbmsoc3RydWN0IGRldmljZSAqZGV2 LCBjb25zdCBjaGFyICpuYW1lLAo+IC0JCXVuc2lnbmVkIGdwaW8pCj4gLQo+IC1BZnRlciBhIGtl cm5lbCBkcml2ZXIgcmVxdWVzdHMgYSBHUElPLCBpdCBtYXkgb25seSBiZSBtYWRlIGF2YWlsYWJs ZSBpbgo+IC10aGUgc3lzZnMgaW50ZXJmYWNlIGJ5IGdwaW9fZXhwb3J0KCkuICBUaGUgZHJpdmVy IGNhbiBjb250cm9sIHdoZXRoZXIgdGhlCj4gLXNpZ25hbCBkaXJlY3Rpb24gbWF5IGNoYW5nZS4g IFRoaXMgaGVscHMgZHJpdmVycyBwcmV2ZW50IHVzZXJzcGFjZSBjb2RlCj4gLWZyb20gYWNjaWRl bnRhbGx5IGNsb2JiZXJpbmcgaW1wb3J0YW50IHN5c3RlbSBzdGF0ZS4KPiAtCj4gLVRoaXMgZXhw bGljaXQgZXhwb3J0aW5nIGNhbiBoZWxwIHdpdGggZGVidWdnaW5nIChieSBtYWtpbmcgc29tZSBr aW5kcwo+IC1vZiBleHBlcmltZW50cyBlYXNpZXIpLCBvciBjYW4gcHJvdmlkZSBhbiBhbHdheXMt dGhlcmUgaW50ZXJmYWNlIHRoYXQncwo+IC1zdWl0YWJsZSBmb3IgZG9jdW1lbnRpbmcgYXMgcGFy dCBvZiBhIGJvYXJkIHN1cHBvcnQgcGFja2FnZS4KPiAtCj4gLUFmdGVyIHRoZSBHUElPIGhhcyBi ZWVuIGV4cG9ydGVkLCBncGlvX2V4cG9ydF9saW5rKCkgYWxsb3dzIGNyZWF0aW5nCj4gLXN5bWxp bmtzIGZyb20gZWxzZXdoZXJlIGluIHN5c2ZzIHRvIHRoZSBHUElPIHN5c2ZzIG5vZGUuICBEcml2 ZXJzIGNhbgo+IC11c2UgdGhpcyB0byBwcm92aWRlIHRoZSBpbnRlcmZhY2UgdW5kZXIgdGhlaXIg b3duIGRldmljZSBpbiBzeXNmcyB3aXRoCj4gLWEgZGVzY3JpcHRpdmUgbmFtZS4KPiAtCj4gLQo+ ICBBUEkgUmVmZXJlbmNlCj4gID09PT09PT09PT09PT0KPiAgCj4gZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2dwaW8udHh0IGIvRG9jdW1lbnRhdGlvbi90cmFu c2xhdGlvbnMvemhfQ04vZ3Bpby50eHQKPiBpbmRleCBhMjNlZTE0ZmM5MjcuLmU0OWZhODhhMjgw NCAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9ncGlvLnR4 dAo+ICsrKyBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2dwaW8udHh0Cj4gQEAg LTYyMiwyOSArNjIyLDMgQEAgR1BJTyDmjqfliLblmajnmoTot6/lvoTnsbvkvLwgL3N5cy9jbGFz cy9ncGlvL2dwaW9jaGlwNDIvICjlr7nkuo7ku44jNDIgR1BJTwo+ICDlm7rlrprnmoQs5L6L5aaC 5Zyo5omp5bGV5Y2h5LiK55qEIEdQSU/kvJrmoLnmja7miYDkvb/nlKjnmoTkuLvmnb/miJbmiYDl nKjloIblj6DmnrbmnoTkuK3lhbbku5bnmoTmnb/lrZDogIwKPiAg5pyJ5omA5LiN5ZCM44CC5Zyo 6L+Z56eN5oOF5Ya15LiLLOS9oOWPr+iDvemcgOimgeS9v+eUqCBncGlvY2hpcCDoioLngrko5bC9 5Y+v6IO95Zyw57uT5ZCI55S16Lev5Zu+KeadpQo+ICDnoa7lrprnu5nlrprkv6Hlj7fmiYDnlKjn moQgR1BJTyDnvJblj7fjgIIKPiAtCj4gLQo+IC3ku47lhoXmoLjku6PnoIHkuK3lr7zlh7oKPiAt LS0tLS0tLS0tLS0tLQo+IC3lhoXmoLjku6PnoIHlj6/ku6XmmI7noa7lnLDnrqHnkIbpgqPkupvl t7LpgJrov4cgZ3Bpb19yZXF1ZXN0KCnnlLPor7fnmoQgR1BJTyDnmoTlr7zlh7o6Cj4gLQo+IC0J Lyog5a+85Ye6IEdQSU8g5Yiw55So5oi356m66Ze0ICovCj4gLQlpbnQgZ3Bpb19leHBvcnQodW5z aWduZWQgZ3BpbywgYm9vbCBkaXJlY3Rpb25fbWF5X2NoYW5nZSk7Cj4gLQo+IC0JLyogZ3Bpb19l eHBvcnQoKeeahOmAhuaTjeS9nCAqLwo+IC0Jdm9pZCBncGlvX3VuZXhwb3J0KCk7Cj4gLQo+IC0J Lyog5Yib5bu65LiA5LiqIHN5c2ZzIOi/nuaOpeWIsOW3suWvvOWHuueahCBHUElPIOiKgueCuSAq Lwo+IC0JaW50IGdwaW9fZXhwb3J0X2xpbmsoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFy ICpuYW1lLAo+IC0JCXVuc2lnbmVkIGdwaW8pCj4gLQo+IC3lnKjkuIDkuKrlhoXmoLjpqbHliqjn lLPor7fkuIDkuKogR1BJTyDkuYvlkI7vvIzlroPlj6/ku6XpgJrov4cgZ3Bpb19leHBvcnQoKeS9 v+WFtuWcqCBzeXNmcwo+IC3mjqXlj6PkuK3lj6/op4HjgILor6XpqbHliqjlj6/ku6XmjqfliLbk v6Hlj7fmlrnlkJHmmK/lkKblj6/kv67mlLnjgILov5nmnInliqnkuo7pmLLmraLnlKjmiLfnqbrp l7Tku6PnoIHml6DmhI/pl7QKPiAt56C05Z2P6YeN6KaB55qE57O757uf54q25oCB44CCCj4gLQo+ IC3ov5nkuKrmmI7noa7nmoTlr7zlh7rmnInliqnkuo4o6YCa6L+H5L2/5p+Q5Lqb5a6e6aqM5pu0 5a655piT5p2lKeiwg+ivle+8jOS5n+WPr+S7peaPkOS+m+S4gOS4quWni+e7iOWtmOWcqOeahOaO peWPo++8jAo+IC3kuI7mlofmoaPphY3lkIjkvZzkuLrmnb/nuqfmlK/mjIHljIXnmoTkuIDpg6jl iIbjgIIKPiAtCj4gLeWcqCBHUElPIOiiq+WvvOWHuuS5i+WQju+8jGdwaW9fZXhwb3J0X2xpbmso KeWFgeiuuOWcqCBzeXNmcyDmlofku7bns7vnu5/nmoTku7vkvZXlnLDmlrkKPiAt5Yib5bu65LiA 5Liq5Yiw6L+Z5LiqIEdQSU8gc3lzZnMg6IqC54K555qE56ym5Y+36ZO+5o6l44CC6L+Z5qC36amx 5Yqo5bCx5Y+v5Lul6YCa6L+H5LiA5Liq5o+P6L+w5oCn55qECj4gLeWQjeWtl++8jOWcqCBzeXNm cyDkuK3ku5bku6zmiYDmi6XmnInnmoTorr7lpIfkuIvmj5DkvpvkuIDkuKoo5Yiw6L+Z5LiqIEdQ SU8gc3lzZnMg6IqC54K555qEKeaOpeWPo+OAggo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L3RyYW5zbGF0aW9ucy96aF9UVy9ncGlvLnR4dCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25z L3poX1RXL2dwaW8udHh0Cj4gaW5kZXggZTNjMDc2ZGQ3NWE1Li5jOWJmM2RkZDA4YjMgMTAwNjQ0 Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfVFcvZ3Bpby50eHQKPiArKysg Yi9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9UVy9ncGlvLnR4dAo+IEBAIC02MjIsMzAg KzYyMiwzIEBAIEdQSU8g5o6n5Yi25Zmo55qE6Lev5b6R6aGe5Ly8IC9zeXMvY2xhc3MvZ3Bpby9n cGlvY2hpcDQyLyAo5bCN5pa85b6eIzQyIEdQSU8KPiAg5Zu65a6a55qELOS+i+WmguWcqOaTtOWx leWNoeS4iueahCBHUElP5pyD5qC55pOa5omA5L2/55So55qE5Li75p2/5oiW5omA5Zyo5aCG55aK 5p625qeL5Lit5YW25LuW55qE5p2/5a2Q6ICMCj4gIOacieaJgOS4jeWQjOOAguWcqOmAmeeoruaD heazgeS4iyzkvaDlj6/og73pnIDopoHkvb/nlKggZ3Bpb2NoaXAg56+A6bueKOWEmOWPr+iDveWc sOe1kOWQiOmbu+i3r+WclinkvoYKPiAg56K65a6a57Wm5a6a5L+h6Jmf5omA55So55qEIEdQSU8g 57eo6Jmf44CCCj4gLQo+IC0KPiAt5b6e5YWn5qC45Luj56K85Lit5bCO5Ye6Cj4gLS0tLS0tLS0t LS0tLS0KPiAt5YWn5qC45Luj56K85Y+v5Lul5piO56K65Zyw566h55CG6YKj5Lqb5bey6YCa6YGO IGdwaW9fcmVxdWVzdCgp55Sz6KuL55qEIEdQSU8g55qE5bCO5Ye6Ogo+IC0KPiAtCS8qIOWwjuWH uiBHUElPIOWIsOeUqOaItuepuumWkyAqLwo+IC0JaW50IGdwaW9fZXhwb3J0KHVuc2lnbmVkIGdw aW8sIGJvb2wgZGlyZWN0aW9uX21heV9jaGFuZ2UpOwo+IC0KPiAtCS8qIGdwaW9fZXhwb3J0KCnn moTpgIbmk43kvZwgKi8KPiAtCXZvaWQgZ3Bpb191bmV4cG9ydCgpOwo+IC0KPiAtCS8qIOWJteW7 uuS4gOWAiyBzeXNmcyDpgKPmjqXliLDlt7LlsI7lh7rnmoQgR1BJTyDnr4Dpu54gKi8KPiAtCWlu dCBncGlvX2V4cG9ydF9saW5rKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwK PiAtCQl1bnNpZ25lZCBncGlvKQo+IC0KPiAt5Zyo5LiA5YCL5YWn5qC46amF5YuV55Sz6KuL5LiA 5YCLIEdQSU8g5LmL5b6M77yM5a6D5Y+v5Lul6YCa6YGOIGdwaW9fZXhwb3J0KCnkvb/lhbblnKgg c3lzZnMKPiAt5o6l5Y+j5Lit5Y+v6KaL44CC6Kmy6amF5YuV5Y+v5Lul5o6n5Yi25L+h6Jmf5pa5 5ZCR5piv5ZCm5Y+v5L+u5pS544CC6YCZ5pyJ5Yqp5pa86Ziy5q2i55So5oi256m66ZaT5Luj56K8 54Sh5oSP6ZaTCj4gLeegtOWjnumHjeimgeeahOezu+e1seeLgOaFi+OAggo+IC0KPiAt6YCZ5YCL 5piO56K655qE5bCO5Ye65pyJ5Yqp5pa8KOmAmumBjuS9v+afkOS6m+Wvpumpl+abtOWuueaYk+S+ hinoqr/oqabvvIzkuZ/lj6/ku6Xmj5DkvpvkuIDlgIvlp4vntYLlrZjlnKjnmoTmjqXlj6PvvIwK PiAt6IiH5paH5qqU6YWN5ZCI5L2c54iy5p2/57Sa5pSv5oyB5YyF55qE5LiA6YOo5YiG44CCCj4g LQo+IC3lnKggR1BJTyDooqvlsI7lh7rkuYvlvozvvIxncGlvX2V4cG9ydF9saW5rKCnlhYHoqLHl nKggc3lzZnMg5paH5Lu257O757Wx55qE5Lu75L2V5Zyw5pa5Cj4gLeWJteW7uuS4gOWAi+WIsOmA meWAiyBHUElPIHN5c2ZzIOevgOm7nueahOespuiZn+mAo+e1kOOAgumAmeaoo+mpheWLleWwseWP r+S7pemAmumBjuS4gOWAi+aPj+i/sOaAp+eahAo+IC3lkI3lrZfvvIzlnKggc3lzZnMg5Lit5LuW 5YCR5omA5pOB5pyJ55qE6Kit5YKZ5LiL5o+Q5L6b5LiA5YCLKOWIsOmAmeWAiyBHUElPIHN5c2Zz IOevgOm7nueahCnmjqXlj6PjgIIKPiAtCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZGF2 aW5jaS9ib2FyZC1kbTY0NngtZXZtLmMgYi9hcmNoL2FybS9tYWNoLWRhdmluY2kvYm9hcmQtZG02 NDZ4LWV2bS5jCj4gaW5kZXggZWU5MWQ4MWViYmZkLi40YTI1OGUzMzAyMWQgMTAwNjQ0Cj4gLS0t IGEvYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2JvYXJkLWRtNjQ2eC1ldm0uYwo+ICsrKyBiL2FyY2gv YXJtL21hY2gtZGF2aW5jaS9ib2FyZC1kbTY0NngtZXZtLmMKPiBAQCAtMTksNyArMTksNyBAQAo+ ICAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4g ICNpbmNsdWRlIDxsaW51eC9sZWRzLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9ncGlvLmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+ICAjaW5jbHVkZSA8bGludXgv cHJvcGVydHkuaD4KPiBAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBpbnQgZXZtX2xlZF90ZWFy ZG93bihzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBpbnQgZ3BpbywKPiAgCXJldHVybiAwOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGV2bV9zd19ncGlvWzRdID0geyAtRUlOVkFMLCAtRUlOVkFM LCAtRUlOVkFMLCAtRUlOVkFMIH07Cj4gK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19kZXNjICpldm1fc3df Z3Bpb1s0XTsKPiAgCj4gIHN0YXRpYyBpbnQgZXZtX3N3X3NldHVwKHN0cnVjdCBpMmNfY2xpZW50 ICpjbGllbnQsIGludCBncGlvLAo+ICAJCQl1bnNpZ25lZCBuZ3Bpbywgdm9pZCAqYykKPiBAQCAt MjU5LDE3ICsyNTksMTkgQEAgc3RhdGljIGludCBldm1fc3dfc2V0dXAoc3RydWN0IGkyY19jbGll bnQgKmNsaWVudCwgaW50IGdwaW8sCj4gIAljaGFyIGxhYmVsWzEwXTsKPiAgCj4gIAlmb3IgKGkg PSAwOyBpIDwgNDsgKytpKSB7Cj4gKwkJc3RydWN0IGdwaW9fZGVzYyAqZGVzYyA9IGdwaW9fdG9f ZGVzYyhncGlvICsgaSk7Cj4gKwo+ICAJCXNucHJpbnRmKGxhYmVsLCAxMCwgInVzZXJfc3clZCIs IGkpOwo+IC0JCXN0YXR1cyA9IGdwaW9fcmVxdWVzdChncGlvLCBsYWJlbCk7Cj4gKwkJc3RhdHVz ID0gZ3Bpb19yZXF1ZXN0KGdwaW8gKyBpLCBsYWJlbCk7CgpTaG91bGRuJ3QgYmUgZ3Bpb2RfZ2V0 KCkgb3Igc28gYXQgdGhlIGVuZD8KCj4gIAkJaWYgKHN0YXR1cykKPiAgCQkJZ290byBvdXRfZnJl ZTsKPiAtCQlldm1fc3dfZ3Bpb1tpXSA9IGdwaW8rKzsKPiArCQlldm1fc3dfZ3Bpb1tpXSA9IGRl c2M7Cj4gIAo+IC0JCXN0YXR1cyA9IGdwaW9fZGlyZWN0aW9uX2lucHV0KGV2bV9zd19ncGlvW2ld KTsKPiArCQlzdGF0dXMgPSBncGlvZF9kaXJlY3Rpb25faW5wdXQoZGVzYyk7Cj4gIAkJaWYgKHN0 YXR1cykKPiAgCQkJZ290byBvdXRfZnJlZTsKPiAgCj4gLQkJc3RhdHVzID0gZ3Bpb19leHBvcnQo ZXZtX3N3X2dwaW9baV0sIDApOwo+ICsJCXN0YXR1cyA9IGdwaW9kX2V4cG9ydChkZXNjLCAwKTsK PiAgCQlpZiAoc3RhdHVzKQo+ICAJCQlnb3RvIG91dF9mcmVlOwo+ICAJfQo+IEBAIC0yNzcsOSAr Mjc5LDkgQEAgc3RhdGljIGludCBldm1fc3dfc2V0dXAoc3RydWN0IGkyY19jbGllbnQgKmNsaWVu dCwgaW50IGdwaW8sCj4gIAo+ICBvdXRfZnJlZToKPiAgCWZvciAoaSA9IDA7IGkgPCA0OyArK2kp IHsKPiAtCQlpZiAoZXZtX3N3X2dwaW9baV0gIT0gLUVJTlZBTCkgewo+IC0JCQlncGlvX2ZyZWUo ZXZtX3N3X2dwaW9baV0pOwo+IC0JCQlldm1fc3dfZ3Bpb1tpXSA9IC1FSU5WQUw7Cj4gKwkJaWYg KGV2bV9zd19ncGlvW2ldKSB7Cj4gKwkJCWdwaW9fZnJlZShwaW4gKyBpKTsKPiArCQkJZXZtX3N3 X2dwaW9baV0gPSBOVUxMOwo+ICAJCX0KPiAgCX0KPiAgCXJldHVybiBzdGF0dXM7Cj4gQEAgLTI5 MSwxMCArMjkzLDEwIEBAIHN0YXRpYyBpbnQgZXZtX3N3X3RlYXJkb3duKHN0cnVjdCBpMmNfY2xp ZW50ICpjbGllbnQsIGludCBncGlvLAo+ICAJaW50IGk7Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8 IDQ7ICsraSkgewo+IC0JCWlmIChldm1fc3dfZ3Bpb1tpXSAhPSAtRUlOVkFMKSB7Cj4gLQkJCWdw aW9fdW5leHBvcnQoZXZtX3N3X2dwaW9baV0pOwo+IC0JCQlncGlvX2ZyZWUoZXZtX3N3X2dwaW9b aV0pOwo+IC0JCQlldm1fc3dfZ3Bpb1tpXSA9IC1FSU5WQUw7Cj4gKwkJaWYgKGV2bV9zd19ncGlv W2ldKSB7Cj4gKwkJCWdwaW9kX3VuZXhwb3J0KGV2bV9zd19ncGlvW2ldKTsKPiArCQkJZ3Bpb19m cmVlKGdwaW8gKyBpKTsKPiArCQkJZXZtX3N3X2dwaW9baV0gPSBOVUxMOwo+ICAJCX0KPiAgCX0K PiAgCXJldHVybiAwOwo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BkYXRhLXF1 aXJrcy5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wZGF0YS1xdWlya3MuYwo+IGluZGV4IGU3ZmQy OWE1MDJhMC4uMWZkZjdmY2YwOTFlIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIv cGRhdGEtcXVpcmtzLmMKPiArKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BkYXRhLXF1aXJrcy5j Cj4gQEAgLTYsNiArNiw3IEBACj4gICAqLwo+ICAjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gICNp bmNsdWRlIDxsaW51eC9kYXZpbmNpX2VtYWMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29u c3VtZXIuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2lu aXQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+IEBAIC0xMjAsNyArMTIxLDcgQEAg c3RhdGljIGludCBvbWFwM19zYmNfdDM3MzBfdHdsX2NhbGxiYWNrKHN0cnVjdCBkZXZpY2UgKmRl diwKPiAgCWlmIChyZXMpCj4gIAkJcmV0dXJuIHJlczsKPiAgCj4gLQlncGlvX2V4cG9ydChncGlv LCAwKTsKPiArCWdwaW9kX2V4cG9ydChncGlvX3RvX2Rlc2MoZ3BpbyksIDApOwo+ICAKPiAgCXJl dHVybiAwOwo+ICB9Cj4gQEAgLTEzNSw3ICsxMzYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb21h cDNfc2JjX3QzeF91c2JfaHViX2luaXQoaW50IGdwaW8sIGNoYXIgKmh1Yl9uYW1lKQo+ICAJCXJl dHVybjsKPiAgCX0KPiAgCj4gLQlncGlvX2V4cG9ydChncGlvLCAwKTsKPiArCWdwaW9kX2V4cG9y dChncGlvX3RvX2Rlc2MoZ3BpbyksIDApOwo+ICAKPiAgCXVkZWxheSgxMCk7Cj4gIAlncGlvX3Nl dF92YWx1ZShncGlvLCAxKTsKPiBAQCAtMjEyLDggKzIxMyw4IEBAIHN0YXRpYyB2b2lkIF9faW5p dCBvbWFwM19zYmNfdDM1MTdfd2lmaV9pbml0KHZvaWQpCj4gIAkJcmV0dXJuOwo+ICAJfQo+ICAK PiAtCWdwaW9fZXhwb3J0KGNtX3QzNTE3X3dsYW5fZ3Bpb3NbMF0uZ3BpbywgMCk7Cj4gLQlncGlv X2V4cG9ydChjbV90MzUxN193bGFuX2dwaW9zWzFdLmdwaW8sIDApOwo+ICsJZ3Bpb2RfZXhwb3J0 KGdwaW9fdG9fZGVzYyhjbV90MzUxN193bGFuX2dwaW9zWzBdLmdwaW8pLCAwKTsKPiArCWdwaW9k X2V4cG9ydChncGlvX3RvX2Rlc2MoY21fdDM1MTdfd2xhbl9ncGlvc1sxXS5ncGlvKSwgMCk7Cj4g IAo+ICAJbXNsZWVwKDEwMCk7Cj4gIAlncGlvX3NldF92YWx1ZShjbV90MzUxN193bGFuX2dwaW9z WzFdLmdwaW8sIDApOwo+IGRpZmYgLS1naXQgYS9hcmNoL3NoL2JvYXJkcy9tYWNoLWFwMzI1cnhh L3NldHVwLmMgYi9hcmNoL3NoL2JvYXJkcy9tYWNoLWFwMzI1cnhhL3NldHVwLmMKPiBpbmRleCBj NzdiNWYwMGE2NmEuLjE1MTc5MjE2MjE1MiAxMDA2NDQKPiAtLS0gYS9hcmNoL3NoL2JvYXJkcy9t YWNoLWFwMzI1cnhhL3NldHVwLmMKPiArKysgYi9hcmNoL3NoL2JvYXJkcy9tYWNoLWFwMzI1cnhh L3NldHVwLmMKPiBAQCAtMTgsNiArMTgsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgo+ ICsjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgo+ICAjaW5jbHVkZSA8bGludXgvZ3Bp by9tYWNoaW5lLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L2luaXQuaD4KPiBAQCAtNDExLDE2ICs0MTIsMTYgQEAgc3RhdGljIGludCBfX2luaXQgYXAzMjVy eGFfZGV2aWNlc19zZXR1cCh2b2lkKQo+ICAJLyogTEQzIGFuZCBMRDQgTEVEcyAqLwo+ICAJZ3Bp b19yZXF1ZXN0KEdQSU9fUFRYNSwgTlVMTCk7IC8qIFJVTiAqLwo+ICAJZ3Bpb19kaXJlY3Rpb25f b3V0cHV0KEdQSU9fUFRYNSwgMSk7Cj4gLQlncGlvX2V4cG9ydChHUElPX1BUWDUsIDApOwo+ICsJ Z3Bpb2RfZXhwb3J0KGdwaW9fdG9fZGVzYyhHUElPX1BUWDUpLCAwKTsKPiAgCj4gIAlncGlvX3Jl cXVlc3QoR1BJT19QVFg0LCBOVUxMKTsgLyogSU5ESUNBVE9SICovCj4gIAlncGlvX2RpcmVjdGlv bl9vdXRwdXQoR1BJT19QVFg0LCAwKTsKPiAtCWdwaW9fZXhwb3J0KEdQSU9fUFRYNCwgMCk7Cj4g KwlncGlvZF9leHBvcnQoZ3Bpb190b19kZXNjKEdQSU9fUFRYNCksIDApOwo+ICAKPiAgCS8qIFNX MSBpbnB1dCAqLwo+ICAJZ3Bpb19yZXF1ZXN0KEdQSU9fUFRGNywgTlVMTCk7IC8qIE1PREUgKi8K PiAgCWdwaW9fZGlyZWN0aW9uX2lucHV0KEdQSU9fUFRGNyk7Cj4gLQlncGlvX2V4cG9ydChHUElP X1BURjcsIDApOwo+ICsJZ3Bpb2RfZXhwb3J0KGdwaW9fdG9fZGVzYyhHUElPX1BURjcpLCAwKTsK PiAgCj4gIAkvKiBMQ0RDICovCj4gIAlncGlvX3JlcXVlc3QoR1BJT19GTl9MQ0REMTUsIE5VTEwp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi1zeXNmcy5jIGIvZHJpdmVycy9n cGlvL2dwaW9saWItc3lzZnMuYwo+IGluZGV4IDQwOThiYzdmODhiNy4uYTgzZmJhMzY0OWM0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3Bpby9ncGlvbGliLXN5c2ZzLmMKPiArKysgYi9kcml2ZXJz L2dwaW8vZ3Bpb2xpYi1zeXNmcy5jCj4gQEAgLTUxMSw3ICs1MTEsNyBAQCBzdGF0aWMgc3NpemVf dCB1bmV4cG9ydF9zdG9yZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLAo+ICAJCWdvdG8gZG9uZTsKPiAg Cj4gIAlkZXNjID0gZ3Bpb190b19kZXNjKGdwaW8pOwo+IC0JLyogcmVqZWN0IGJvZ3VzIGNvbW1h bmRzIChncGlvX3VuZXhwb3J0IGlnbm9yZXMgdGhlbSkgKi8KPiArCS8qIHJlamVjdCBib2d1cyBj b21tYW5kcyAoZ3Bpb2RfdW5leHBvcnQgaWdub3JlcyB0aGVtKSAqLwo+ICAJaWYgKCFkZXNjKSB7 Cj4gIAkJcHJfd2FybigiJXM6IGludmFsaWQgR1BJTyAlbGRcbiIsIF9fZnVuY19fLCBncGlvKTsK PiAgCQlyZXR1cm4gLUVJTlZBTDsKPiBAQCAtODE0LDcgKzgxNCw3IEBAIHN0YXRpYyBpbnQgX19p bml0IGdwaW9saWJfc3lzZnNfaW5pdCh2b2lkKQo+ICAJICogZWFybHkgKGUuZy4gYmVmb3JlIHRo ZSBjbGFzc19yZWdpc3RlciBhYm92ZSB3YXMgY2FsbGVkKS4KPiAgCSAqCj4gIAkgKiBXZSBydW4g YmVmb3JlIGFyY2hfaW5pdGNhbGwoKSBzbyBjaGlwLT5kZXYgbm9kZXMgY2FuIGhhdmUKPiAtCSAq IHJlZ2lzdGVyZWQsIGFuZCBzbyBhcmNoX2luaXRjYWxsKCkgY2FuIGFsd2F5cyBncGlvX2V4cG9y dCgpLgo+ICsJICogcmVnaXN0ZXJlZCwgYW5kIHNvIGFyY2hfaW5pdGNhbGwoKSBjYW4gYWx3YXlz IGdwaW9kX2V4cG9ydCgpLgo+ICAJICovCj4gIAlzcGluX2xvY2tfaXJxc2F2ZSgmZ3Bpb19sb2Nr LCBmbGFncyk7Cj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGdkZXYsICZncGlvX2RldmljZXMsIGxp c3QpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvbm9vbjAxMHBjMzAuYyBiL2Ry aXZlcnMvbWVkaWEvaTJjL25vb24wMTBwYzMwLmMKPiBpbmRleCBmM2FjMzc5ZWYzNGEuLjZmYWE0 NGViNTM1NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL2kyYy9ub29uMDEwcGMzMC5jCj4g KysrIGIvZHJpdmVycy9tZWRpYS9pMmMvbm9vbjAxMHBjMzAuYwo+IEBAIC0xMCw2ICsxMCw3IEBA Cj4gICAqLwo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gKyNpbmNsdWRlIDxsaW51 eC9ncGlvL2NvbnN1bWVyLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9ncGlvLmg+Cj4gICNpbmNsdWRl IDxsaW51eC9pMmMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiBAQCAtNzU1LDcgKzc1 Niw3IEBAIHN0YXRpYyBpbnQgbm9vbjAxMF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50 LAo+ICAJCQlnb3RvIG5wX2VycjsKPiAgCQl9Cj4gIAkJaW5mby0+Z3Bpb19ucmVzZXQgPSBwZGF0 YS0+Z3Bpb19ucmVzZXQ7Cj4gLQkJZ3Bpb19leHBvcnQoaW5mby0+Z3Bpb19ucmVzZXQsIDApOwo+ ICsJCWdwaW9kX2V4cG9ydChncGlvX3RvX2Rlc2MoaW5mby0+Z3Bpb19ucmVzZXQpLCAwKTsKPiAg CX0KPiAgCj4gIAlpZiAoZ3Bpb19pc192YWxpZChwZGF0YS0+Z3Bpb19uc3RieSkpIHsKPiBAQCAt NzY3LDcgKzc2OCw3IEBAIHN0YXRpYyBpbnQgbm9vbjAxMF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50LAo+ICAJCQlnb3RvIG5wX2VycjsKPiAgCQl9Cj4gIAkJaW5mby0+Z3Bpb19uc3Ri eSA9IHBkYXRhLT5ncGlvX25zdGJ5Owo+IC0JCWdwaW9fZXhwb3J0KGluZm8tPmdwaW9fbnN0Ynks IDApOwo+ICsJCWdwaW9kX2V4cG9ydChncGlvX3RvX2Rlc2MoaW5mby0+Z3Bpb19uc3RieSksIDAp Owo+ICAJfQo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBOT09OMDEwX05VTV9TVVBQTElFUzsgaSsr KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9vdjk2NTAuYyBiL2RyaXZlcnMvbWVk aWEvaTJjL292OTY1MC5jCj4gaW5kZXggYzMxM2UxMWE5NzU0Li4wMjFhY2QyMGVkZTIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvb3Y5NjUwLmMKPiArKysgYi9kcml2ZXJzL21lZGlh L2kyYy9vdjk2NTAuYwo+IEBAIC0xNDI2LDkgKzE0MjYsOSBAQCBzdGF0aWMgaW50IG92OTY1eF9j b25maWd1cmVfZ3Bpb3NfcGRhdGEoc3RydWN0IG92OTY1eCAqb3Y5NjV4LAo+ICAJCQlyZXR1cm4g cmV0Owo+ICAJCXY0bDJfZGJnKDEsIGRlYnVnLCAmb3Y5NjV4LT5zZCwgInNldCBncGlvICVkIHRv IDFcbiIsIGdwaW8pOwo+ICAKPiAtCQlncGlvX3NldF92YWx1ZV9jYW5zbGVlcChncGlvLCAxKTsK PiAtCQlncGlvX2V4cG9ydChncGlvLCAwKTsKPiAgCQlvdjk2NXgtPmdwaW9zW2ldID0gZ3Bpb190 b19kZXNjKGdwaW8pOwo+ICsJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChvdjk2NXgtPmdwaW9z W2ldLCAxKTsKPiArCQlncGlvZF9leHBvcnQob3Y5NjV4LT5ncGlvc1tpXSwgMCk7Cj4gIAl9Cj4g IAo+ICAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL3M1azRlY2d4 LmMgYi9kcml2ZXJzL21lZGlhL2kyYy9zNWs0ZWNneC5jCj4gaW5kZXggYWY5YTMwNTI0MmNkLi40 MTlkMDNmY2M5NzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvczVrNGVjZ3guYwo+ ICsrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL3M1azRlY2d4LmMKPiBAQCAtMTUsNiArMTUsNyBAQAo+ ICAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4g ICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25z dW1lci5oPgo+ICAjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgo+ICAjaW5jbHVkZSA8bGludXgvaTJj Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiBAQCAtODUyLDcgKzg1Myw3IEBAIHN0 YXRpYyBpbnQgczVrNGVjZ3hfY29uZmlnX2dwaW8oaW50IG5yLCBpbnQgdmFsLCBjb25zdCBjaGFy ICpuYW1lKQo+ICAJCXJldHVybiAwOwo+ICAJcmV0ID0gZ3Bpb19yZXF1ZXN0X29uZShuciwgZmxh Z3MsIG5hbWUpOwo+ICAJaWYgKCFyZXQpCj4gLQkJZ3Bpb19leHBvcnQobnIsIDApOwo+ICsJCWdw aW9kX2V4cG9ydChncGlvX3RvX2Rlc2MobnIpLCAwKTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGNpL3N0YTJ4MTEvc3RhMngxMV92aXAuYyBi L2RyaXZlcnMvbWVkaWEvcGNpL3N0YTJ4MTEvc3RhMngxMV92aXAuYwo+IGluZGV4IDUyNDkxMmYy MGQ5Zi4uZjdjZWY1OThmMjFkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGNpL3N0YTJ4 MTEvc3RhMngxMV92aXAuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGNpL3N0YTJ4MTEvc3RhMngx MV92aXAuYwo+IEBAIC0xOCw2ICsxOCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KPiAg I2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+ICAjaW5jbHVkZSA8bGludXgvaW8uaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2dwaW8u aD4KPiAgI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+ICAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4K PiBAQCAtODkzLDYgKzg5NCw3IEBAIHN0YXRpYyBpbnQgc3RhMngxMV92aXBfaW5pdF9jb250cm9s cyhzdHJ1Y3Qgc3RhMngxMV92aXAgKnZpcCkKPiAgc3RhdGljIGludCB2aXBfZ3Bpb19yZXNlcnZl KHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBpbiwgaW50IGRpciwKPiAgCQkJICAgIGNvbnN0IGNo YXIgKm5hbWUpCj4gIHsKPiArCXN0cnVjdCBncGlvX2Rlc2MgKmRlc2MgPSBncGlvX3RvX2Rlc2Mo cGluKTsKPiAgCWludCByZXQgPSAtRU5PREVWOwo+ICAKPiAgCWlmICghZ3Bpb19pc192YWxpZChw aW4pKQo+IEBAIC05MDQsNyArOTA2LDcgQEAgc3RhdGljIGludCB2aXBfZ3Bpb19yZXNlcnZlKHN0 cnVjdCBkZXZpY2UgKmRldiwgaW50IHBpbiwgaW50IGRpciwKPiAgCQlyZXR1cm4gcmV0Owo+ICAJ fQo+ICAKPiAtCXJldCA9IGdwaW9fZGlyZWN0aW9uX291dHB1dChwaW4sIGRpcik7Cj4gKwlyZXQg PSBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KGRlc2MsIGRpcik7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJ ZGV2X2VycihkZXYsICJGYWlsZWQgdG8gc2V0IGRpcmVjdGlvbiBmb3IgcGluICVkICglcylcbiIs Cj4gIAkJCXBpbiwgbmFtZSk7Cj4gQEAgLTkxMiw3ICs5MTQsNyBAQCBzdGF0aWMgaW50IHZpcF9n cGlvX3Jlc2VydmUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcGluLCBpbnQgZGlyLAo+ICAJCXJl dHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZ3Bpb19leHBvcnQocGluLCBmYWxzZSk7Cj4g KwlyZXQgPSBncGlvZF9leHBvcnQoZGVzYywgZmFsc2UpOwo+ICAJaWYgKHJldCkgewo+ICAJCWRl dl9lcnIoZGV2LCAiRmFpbGVkIHRvIGV4cG9ydCBwaW4gJWQgKCVzKVxuIiwgcGluLCBuYW1lKTsK PiAgCQlncGlvX2ZyZWUocGluKTsKPiBAQCAtOTMyLDggKzkzNCwxMCBAQCBzdGF0aWMgaW50IHZp cF9ncGlvX3Jlc2VydmUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcGluLCBpbnQgZGlyLAo+ICBz dGF0aWMgdm9pZCB2aXBfZ3Bpb19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBpbiwg Y29uc3QgY2hhciAqbmFtZSkKPiAgewo+ICAJaWYgKGdwaW9faXNfdmFsaWQocGluKSkgewo+ICsJ CXN0cnVjdCBncGlvX2Rlc2MgKmRlc2MgPSBncGlvX3RvX2Rlc2MocGluKTsKPiArCj4gIAkJZGV2 X2RiZyhkZXYsICJyZWxlYXNpbmcgcGluICVkICglcylcbiIsCXBpbiwgbmFtZSk7Cj4gLQkJZ3Bp b191bmV4cG9ydChwaW4pOwo+ICsJCWdwaW9kX3VuZXhwb3J0KGRlc2MpOwo+ICAJCWdwaW9fZnJl ZShwaW4pOwo+ICAJfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2RtMzU1ZXZtX21z cC5jIGIvZHJpdmVycy9tZmQvZG0zNTVldm1fbXNwLmMKPiBpbmRleCA1NGZiNmNiZDJhYTAuLjIz ODhmYjRkMDEyMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21mZC9kbTM1NWV2bV9tc3AuYwo+ICsr KyBiL2RyaXZlcnMvbWZkL2RtMzU1ZXZtX21zcC5jCj4gQEAgLTExLDYgKzExLDcgQEAKPiAgI2lu Y2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gICNpbmNs dWRlIDxsaW51eC9lcnIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KPiAg I2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2dwaW8vbWFjaGluZS5o Pgo+ICAjaW5jbHVkZSA8bGludXgvbGVkcy5oPgo+IEBAIC0zMjksNyArMzMwLDcgQEAgc3RhdGlj IGludCBhZGRfY2hpbGRyZW4oc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKPiAgCQlncGlvX3Jl cXVlc3Rfb25lKGdwaW8sIEdQSU9GX0lOLCBjb25maWdfaW5wdXRzW2ldLmxhYmVsKTsKPiAgCj4g IAkJLyogbWFrZSBpdCBlYXN5IGZvciB1c2Vyc3BhY2UgdG8gc2VlIHRoZXNlICovCj4gLQkJZ3Bp b19leHBvcnQoZ3BpbywgZmFsc2UpOwo+ICsJCWdwaW9kX2V4cG9ydChncGlvX3RvX2Rlc2MoZ3Bp byksIGZhbHNlKTsKPiAgCX0KPiAgCj4gIAkvKiBNTUMvU0QgaW5wdXRzIC0tIHJpZ2h0IGFmdGVy IHRoZSBsYXN0IGNvbmZpZyBpbnB1dCAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZWVl ODAyMTU0L2NhODIxMC5jIGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9jYTgyMTAuYwo+IGluZGV4 IGVjZTZmZjYwNDlmNi4uNjI1MjkwN2IyYzkyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L2ll ZWU4MDIxNTQvY2E4MjEwLmMKPiArKysgYi9kcml2ZXJzL25ldC9pZWVlODAyMTU0L2NhODIxMC5j Cj4gQEAgLTUxLDYgKzUxLDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgo+ ICAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgo+ICAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4K PiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2dw aW8uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2llZWU4MDIxNTQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L2lvLmg+Cj4gQEAgLTI4OTUsNyArMjg5Niw3IEBAIHN0YXRpYyBpbnQgY2E4MjEwX2ludGVycnVw dF9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCj4gIAkpOwo+ICAJaWYgKHJldCkgewo+ICAJ CWRldl9jcml0KCZzcGktPmRldiwgInJlcXVlc3RfaXJxICVkIGZhaWxlZFxuIiwgcGRhdGEtPmly cV9pZCk7Cj4gLQkJZ3Bpb191bmV4cG9ydChwZGF0YS0+Z3Bpb19pcnEpOwo+ICsJCWdwaW9kX3Vu ZXhwb3J0KGdwaW9fdG9fZGVzYyhwZGF0YS0+Z3Bpb19pcnEpKTsKPiAgCQlncGlvX2ZyZWUocGRh dGEtPmdwaW9faXJxKTsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZ3Bp by5oIGIvaW5jbHVkZS9saW51eC9ncGlvLmgKPiBpbmRleCA2NGNjOGYwOWViYTguLjdjZWI5MzY3 ODY4OSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2dwaW8uaAo+ICsrKyBiL2luY2x1ZGUv bGludXgvZ3Bpby5oCj4gQEAgLTE0NCwyNiArMTQ0LDYgQEAgZXh0ZXJuIGludCBncGlvX3JlcXVl c3Rfb25lKHVuc2lnbmVkIGdwaW8sIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIGNvbnN0IGNoYXIgKmxh YmUKPiAgZXh0ZXJuIGludCBncGlvX3JlcXVlc3RfYXJyYXkoY29uc3Qgc3RydWN0IGdwaW8gKmFy cmF5LCBzaXplX3QgbnVtKTsKPiAgZXh0ZXJuIHZvaWQgZ3Bpb19mcmVlX2FycmF5KGNvbnN0IHN0 cnVjdCBncGlvICphcnJheSwgc2l6ZV90IG51bSk7Cj4gIAo+IC0vKgo+IC0gKiBBIHN5c2ZzIGlu dGVyZmFjZSBjYW4gYmUgZXhwb3J0ZWQgYnkgaW5kaXZpZHVhbCBkcml2ZXJzIGlmIHRoZXkgd2Fu dCwKPiAtICogYnV0IG1vcmUgdHlwaWNhbGx5IGlzIGNvbmZpZ3VyZWQgZW50aXJlbHkgZnJvbSB1 c2Vyc3BhY2UuCj4gLSAqLwo+IC1zdGF0aWMgaW5saW5lIGludCBncGlvX2V4cG9ydCh1bnNpZ25l ZCBncGlvLCBib29sIGRpcmVjdGlvbl9tYXlfY2hhbmdlKQo+IC17Cj4gLQlyZXR1cm4gZ3Bpb2Rf ZXhwb3J0KGdwaW9fdG9fZGVzYyhncGlvKSwgZGlyZWN0aW9uX21heV9jaGFuZ2UpOwo+IC19Cj4g LQo+IC1zdGF0aWMgaW5saW5lIGludCBncGlvX2V4cG9ydF9saW5rKHN0cnVjdCBkZXZpY2UgKmRl diwgY29uc3QgY2hhciAqbmFtZSwKPiAtCQkJCSAgIHVuc2lnbmVkIGdwaW8pCj4gLXsKPiAtCXJl dHVybiBncGlvZF9leHBvcnRfbGluayhkZXYsIG5hbWUsIGdwaW9fdG9fZGVzYyhncGlvKSk7Cj4g LX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBncGlvX3VuZXhwb3J0KHVuc2lnbmVkIGdwaW8p Cj4gLXsKPiAtCWdwaW9kX3VuZXhwb3J0KGdwaW9fdG9fZGVzYyhncGlvKSk7Cj4gLX0KPiAtCj4g IC8qIENPTkZJR19HUElPTElCOiBiaW5kaW5ncyBmb3IgbWFuYWdlZCBkZXZpY2VzIHRoYXQgd2Fu dCB0byByZXF1ZXN0IGdwaW9zICovCj4gIAo+ICBzdHJ1Y3QgZGV2aWNlOwo+IEBAIC0yNTMsMjcg KzIzMyw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBncGlvX3NldF92YWx1ZV9jYW5zbGVlcCh1bnNp Z25lZCBncGlvLCBpbnQgdmFsdWUpCj4gIAlXQVJOX09OKDEpOwo+ICB9Cj4gIAo+IC1zdGF0aWMg aW5saW5lIGludCBncGlvX2V4cG9ydCh1bnNpZ25lZCBncGlvLCBib29sIGRpcmVjdGlvbl9tYXlf Y2hhbmdlKQo+IC17Cj4gLQkvKiBHUElPIGNhbiBuZXZlciBoYXZlIGJlZW4gcmVxdWVzdGVkIG9y IHNldCBhcyB7aW4sb3V0fXB1dCAqLwo+IC0JV0FSTl9PTigxKTsKPiAtCXJldHVybiAtRUlOVkFM Owo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIGludCBncGlvX2V4cG9ydF9saW5rKHN0cnVjdCBk ZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKPiAtCQkJCXVuc2lnbmVkIGdwaW8pCj4gLXsK PiAtCS8qIEdQSU8gY2FuIG5ldmVyIGhhdmUgYmVlbiBleHBvcnRlZCAqLwo+IC0JV0FSTl9PTigx KTsKPiAtCXJldHVybiAtRUlOVkFMOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgZ3Bp b191bmV4cG9ydCh1bnNpZ25lZCBncGlvKQo+IC17Cj4gLQkvKiBHUElPIGNhbiBuZXZlciBoYXZl IGJlZW4gZXhwb3J0ZWQgKi8KPiAtCVdBUk5fT04oMSk7Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbmxp bmUgaW50IGdwaW9fdG9faXJxKHVuc2lnbmVkIGdwaW8pCj4gIHsKPiAgCS8qIEdQSU8gY2FuIG5l dmVyIGhhdmUgYmVlbiByZXF1ZXN0ZWQgb3Igc2V0IGFzIGlucHV0ICovCj4gLS0gCj4gMi4yOS4y Cj4gCgotLSAKV2l0aCBCZXN0IFJlZ2FyZHMsCkFuZHkgU2hldmNoZW5rbwoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==