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=-5.2 required=3.0 tests=DKIM_ADSP_DISCARD,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,URIBL_BLOCKED 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 ECACCC2BCA1 for ; Fri, 7 Jun 2019 17:25:59 +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 C30D9207E0 for ; Fri, 7 Jun 2019 17:25:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Cv+63i0l"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=megous.com header.i=@megous.com header.b="M3m+MPBG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C30D9207E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=megous.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; 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:To:From:Date:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4yFdz+LVrP008VenNLIWDc7hI6o08iIwSMtMB+gpr5I=; b=Cv+63i0lYdYn4n RbnbRQFHToXBm4MXCA06fFLQBBeq9nRYRYWtVnGKyIbKu4z8OMhXNAj5wWomr7CaNAzBOGgNLJINt Xk8R0dxr72b3lATsXZLlRTas9dGCSWL57SQT02UfOMp+JIUW3Gvh+X0zqWep49OSwia9JMg4KliNK BfchHHeWouCh8NIk2NtbeZqrouu99Chh2PfEZEujksMbPzbIipsMm4IvpNLX5S7CrtW2LR9e2qgwy tLa+VndjBHyBjeMU98dviwxx2vuBmjZB6O0hG22++I4Ts4LKm31Rx/wgpKiiiQIPvFf72QGtL/q0a NIlRKjKWOuQWiD+USvmA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hZIcp-0000DD-1n; Fri, 07 Jun 2019 17:25:59 +0000 Received: from vps.xff.cz ([195.181.215.36]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hZIck-0000Cr-Oa for linux-arm-kernel@lists.infradead.org; Fri, 07 Jun 2019 17:25:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megous.com; s=mail; t=1559928352; bh=0FXb8HJgWfSUyPEtwZ7hUU3ZIE3r6G7KjfbY6R474Xk=; h=Date:From:To:Subject:References:In-Reply-To:From; b=M3m+MPBGYmoLmFxSyulhXhH4+JwTu2ynqtJNYvAZxvgwuWeaZ/n5lKJ6S+WaHVw6A B3vsRr4ciSL2XlSkhFakfeygqkiZK5l55Iwp5n5I/4iN2QoWOIyn8M0LbLqXyA9AMJ 3MQN9AGrsT3oSiOZC12q6cwsdUUz2VsSxs7cQTFA= Date: Fri, 7 Jun 2019 19:25:52 +0200 From: =?utf-8?Q?Ond=C5=99ej?= Jirman To: Frank Lee , rui.zhang@intel.com, Eduardo Valentin , Daniel Lezcano , robh+dt@kernel.org, Mark Rutland , Maxime Ripard , Chen-Yu Tsai , David Miller , Mauro Carvalho Chehab , Greg Kroah-Hartman , Linus Walleij , Nicolas Ferre , paulmck@linux.ibm.com, devicetree@vger.kernel.org, Linux Kernel Mailing List , Linux ARM , Linux PM Subject: Re: [PATCH v3 1/3] thermal: sun8i: add thermal driver for h6 Message-ID: <20190607172552.4ldtktona5fydv6j@core.my.home> Mail-Followup-To: Frank Lee , rui.zhang@intel.com, Eduardo Valentin , Daniel Lezcano , robh+dt@kernel.org, Mark Rutland , Maxime Ripard , Chen-Yu Tsai , David Miller , Mauro Carvalho Chehab , Greg Kroah-Hartman , Linus Walleij , Nicolas Ferre , paulmck@linux.ibm.com, devicetree@vger.kernel.org, Linux Kernel Mailing List , Linux ARM , Linux PM References: <20190525181329.18657-1-tiny.windzz@gmail.com> <20190525181329.18657-2-tiny.windzz@gmail.com> <20190527142544.skblqfcz5fqfzxgl@core.my.home> <20190607171821.zpb5e6aurdfcflpb@core.my.home> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190607171821.zpb5e6aurdfcflpb@core.my.home> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190607_102555_151308_29865F7F X-CRM114-Status: GOOD ( 41.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 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+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBKdW4gMDcsIDIwMTkgYXQgMDc6MTg6MjFQTSArMDIwMCwgdmVyZWpuYSB3cm90ZToK PiBIZWxsbyBGcmFuaywKPiAKPiBPbiBGcmksIEp1biAwNywgMjAxOSBhdCAwOTo1MDowOFBNICsw ODAwLCBGcmFuayBMZWUgd3JvdGU6Cj4gPiBISSBPbmTFmWVqLAo+ID4gCj4gPiAKPiA+IE9uIE1v biwgTWF5IDI3LCAyMDE5IGF0IDEwOjI1IFBNIE9uZMWZZWogSmlybWFuIDxtZWdvdXNAbWVnb3Vz LmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+IEhpIFlhbmd0YW8sCj4gPiA+Cj4gPiA+IE9uIFNhdCwg TWF5IDI1LCAyMDE5IGF0IDAyOjEzOjI3UE0gLTA0MDAsIFlhbmd0YW8gTGkgd3JvdGU6Cj4gPiA+ ID4gVGhpcyBwYXRjaCBhZGRzIHRoZSBzdXBwb3J0IGZvciBhbGx3aW5uZXIgdGhlcm1hbCBzZW5z b3IsIHdpdGhpbgo+ID4gPiA+IGFsbHdpbm5lciBTb0MuIEl0IHdpbGwgcmVnaXN0ZXIgc2Vuc29y cyBmb3IgdGhlcm1hbCBmcmFtZXdvcmsKPiA+ID4gPiBhbmQgdXNlIGRldmljZSB0cmVlIHRvIGJp bmQgY29vbGluZyBkZXZpY2UuCj4gPiA+ID4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBZYW5ndGFv IExpIDx0aW55LndpbmR6ekBnbWFpbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIE1BSU5UQUlO RVJTICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwo+ID4gPiA+ICBkcml2ZXJzL3RoZXJtYWwv S2NvbmZpZyAgICAgICAgIHwgIDE0ICsKPiA+ID4gPiAgZHJpdmVycy90aGVybWFsL01ha2VmaWxl ICAgICAgICB8ICAgMSArCj4gPiA+ID4gIGRyaXZlcnMvdGhlcm1hbC9zdW44aV90aGVybWFsLmMg fCA0MzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gPiAgNCBmaWxlcyBj aGFuZ2VkLCA0NTkgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy90aGVybWFsL3N1bjhpX3RoZXJtYWwuYwo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBh L01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKPiA+ID4gPiBpbmRleCAyMzM2ZGQyNmVjZTQuLmQz MTJmOWVlY2YwZCAxMDA2NDQKPiA+ID4gPiAtLS0gYS9NQUlOVEFJTkVSUwo+ID4gPiA+ICsrKyBi L01BSU5UQUlORVJTCj4gPiA+ID4gQEAgLTY3NCw2ICs2NzQsMTMgQEAgTDogICAgICAgbGludXgt Y3J5cHRvQHZnZXIua2VybmVsLm9yZwo+ID4gPiA+ICBTOiAgIE1haW50YWluZWQKPiA+ID4gPiAg RjogICBkcml2ZXJzL2NyeXB0by9zdW54aS1zcy8KPiA+ID4gPgo+ID4gPiA+ICtBTExXSU5ORVIg VEhFUk1BTCBEUklWRVIKPiA+ID4gPiArTTogICBZYW5ndGFvIExpIDx0aW55LndpbmR6ekBnbWFp bC5jb20+Cj4gPiA+ID4gK0w6ICAgbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gPiA+ID4gK1M6 ICAgTWFpbnRhaW5lZAo+ID4gPiA+ICtGOiAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy90aGVybWFsL3N1bjhpLXRoZXJtYWwueWFtbAo+ID4gPiA+ICtGOiAgIGRyaXZlcnMvdGhl cm1hbC9zdW44aV90aGVybWFsLmMKPiA+ID4gPiArCj4gPiA+ID4gIEFMTFdJTk5FUiBWUFUgRFJJ VkVSCj4gPiA+ID4gIE06ICAgTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBib290bGluLmNv bT4KPiA+ID4gPiAgTTogICBQYXVsIEtvY2lhbGtvd3NraSA8cGF1bC5rb2NpYWxrb3dza2lAYm9v dGxpbi5jb20+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnIGIv ZHJpdmVycy90aGVybWFsL0tjb25maWcKPiA+ID4gPiBpbmRleCA5OTY2MzY0YTZkZWIuLmU1NDY1 MDUzZDY2ZiAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZwo+ID4g PiA+ICsrKyBiL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnCj4gPiA+ID4gQEAgLTI2Miw2ICsyNjIs MjAgQEAgY29uZmlnIFNQRUFSX1RIRVJNQUwKPiA+ID4gPiAgICAgICAgIEVuYWJsZSB0aGlzIHRv IHBsdWcgdGhlIFNQRUFyIHRoZXJtYWwgc2Vuc29yIGRyaXZlciBpbnRvIHRoZSBMaW51eAo+ID4g PiA+ICAgICAgICAgdGhlcm1hbCBmcmFtZXdvcmsuCj4gPiA+ID4KPiA+ID4gPiArY29uZmlnIFNV TjhJX1RIRVJNQUwKPiA+ID4gPiArICAgICB0cmlzdGF0ZSAiQWxsd2lubmVyIHN1bjhpIHRoZXJt YWwgZHJpdmVyIgo+ID4gPiA+ICsgICAgIGRlcGVuZHMgb24gQVJDSF9TVU5YSSB8fCBDT01QSUxF X1RFU1QKPiA+ID4gPiArICAgICBkZXBlbmRzIG9uIEhBU19JT01FTQo+ID4gPiA+ICsgICAgIGRl cGVuZHMgb24gTlZNRU1fU1VOWElfU0lECj4gPiA+ID4gKyAgICAgZGVwZW5kcyBvbiBPRgo+ID4g PiA+ICsgICAgIGRlcGVuZHMgb24gUkVTRVRfQ09OVFJPTExFUgo+ID4gPiA+ICsgICAgIGhlbHAK PiA+ID4gPiArICAgICAgIFN1cHBvcnQgZm9yIHRoZSBzdW44aSB0aGVybWFsIHNlbnNvciBkcml2 ZXIgaW50byB0aGUgTGludXggdGhlcm1hbAo+ID4gPiA+ICsgICAgICAgZnJhbWV3b3JrLgo+ID4g PiA+ICsKPiA+ID4gPiArICAgICAgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUs IGNob29zZSBNIGhlcmU6IHRoZQo+ID4gPiA+ICsgICAgICAgbW9kdWxlIHdpbGwgYmUgY2FsbGVk IHN1bjhpLXRoZXJtYWwuCj4gPiA+ID4gKwo+ID4gPiA+ICBjb25maWcgUk9DS0NISVBfVEhFUk1B TAo+ID4gPiA+ICAgICAgIHRyaXN0YXRlICJSb2NrY2hpcCB0aGVybWFsIGRyaXZlciIKPiA+ID4g PiAgICAgICBkZXBlbmRzIG9uIEFSQ0hfUk9DS0NISVAgfHwgQ09NUElMRV9URVNUCj4gPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9NYWtlZmlsZSBiL2RyaXZlcnMvdGhlcm1hbC9N YWtlZmlsZQo+ID4gPiA+IGluZGV4IDc0YTM3YzdmODQ3YS4uZmE2ZjhiMjA2MjgxIDEwMDY0NAo+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvdGhlcm1hbC9NYWtlZmlsZQo+ID4gPiA+ICsrKyBiL2RyaXZl cnMvdGhlcm1hbC9NYWtlZmlsZQo+ID4gPiA+IEBAIC0zMSw2ICszMSw3IEBAIHRoZXJtYWxfc3lz LSQoQ09ORklHX0RFVkZSRVFfVEhFUk1BTCkgKz0gZGV2ZnJlcV9jb29saW5nLm8KPiA+ID4gPiAg b2JqLXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICs9IGJyb2FkY29tLwo+ID4gPiA+ ICBvYmotJChDT05GSUdfVEhFUk1BTF9NTUlPKSAgICAgICAgICAgKz0gdGhlcm1hbF9tbWlvLm8K PiA+ID4gPiAgb2JqLSQoQ09ORklHX1NQRUFSX1RIRVJNQUwpICArPSBzcGVhcl90aGVybWFsLm8K PiA+ID4gPiArb2JqLSQoQ09ORklHX1NVTjhJX1RIRVJNQUwpICAgICArPSBzdW44aV90aGVybWFs Lm8KPiA+ID4gPiAgb2JqLSQoQ09ORklHX1JPQ0tDSElQX1RIRVJNQUwpICAgICAgICs9IHJvY2tj aGlwX3RoZXJtYWwubwo+ID4gPiA+ICBvYmotJChDT05GSUdfUkNBUl9USEVSTUFMKSAgICs9IHJj YXJfdGhlcm1hbC5vCj4gPiA+ID4gIG9iai0kKENPTkZJR19SQ0FSX0dFTjNfVEhFUk1BTCkgICAg ICArPSByY2FyX2dlbjNfdGhlcm1hbC5vCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGhl cm1hbC9zdW44aV90aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJtYWwvc3VuOGlfdGhlcm1hbC5jCj4g PiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmE5 Y2MyMTk3ZjRjYgo+ID4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gPiArKysgYi9kcml2ZXJzL3Ro ZXJtYWwvc3VuOGlfdGhlcm1hbC5jCj4gPiA+ID4gQEAgLTAsMCArMSw0MzcgQEAKPiA+ID4gPiAr Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiA+ID4gPiArLyoKPiA+ID4gPiAr ICogVGhlcm1hbCBzZW5zb3IgZHJpdmVyIGZvciBBbGx3aW5uZXIgU09DCj4gPiA+ID4gKyAqIENv cHlyaWdodCAoQykgMjAxOSBZYW5ndGFvIExpCj4gPiA+ID4gKyAqCj4gPiA+ID4gKyAqIEJhc2Vk IG9uIHRoZSB3b3JrIG9mIEljZW5vd3kgWmhlbmcgPGljZW5vd3lAYW9zYy5pbz4KPiA+ID4gPiAr ICogQmFzZWQgb24gdGhlIHdvcmsgb2YgT25kcmVqIEppcm1hbiA8bWVnb3VzQG1lZ291cy5jb20+ Cj4gPiA+ID4gKyAqIEJhc2VkIG9uIHRoZSB3b3JrIG9mIEpvc2VmIEdhamR1c2VrIDxhdHhAYXR4 Lm5hbWU+Cj4gPiA+ID4gKyAqLwo+ID4gPiA+ICsKPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2Ns ay5oPgo+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Cj4gPiA+ID4gKyNpbmNsdWRl IDxsaW51eC9pbnRlcnJ1cHQuaD4KPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KPiA+ ID4gPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgv bnZtZW0tY29uc3VtZXIuaD4KPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+ ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gPiA+ID4gKyNpbmNs dWRlIDxsaW51eC9yZWdtYXAuaD4KPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Cj4g PiA+ID4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC90 aGVybWFsLmg+Cj4gPiA+ID4gKwo+ID4gPiA+ICsjZGVmaW5lIE1BWF9TRU5TT1JfTlVNICAgICAg IDQKPiA+ID4gPiArCj4gPiA+ID4gKyNkZWZpbmUgRlRfVEVNUF9NQVNLICAgICAgICAgICAgICAg ICAgICAgICAgIEdFTk1BU0soMTEsIDApCj4gPiA+ID4gKyNkZWZpbmUgVEVNUF9DQUxJQl9NQVNL ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VOTUFTSygxMSwgMCkKPiA+ID4gPiArI2Rl ZmluZSBURU1QX1RPX1JFRyAgICAgICAgICAgICAgICAgICAgICAgICAgNjcyCj4gPiA+ID4gKyNk ZWZpbmUgQ0FMSUJSQVRFX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgIDB4ODAwCj4gPiA+ID4g Kwo+ID4gPiA+ICsjZGVmaW5lIFNVTjUwSV9USFNfQ1RSTDAgICAgICAgICAgICAgICAgICAgICAw eDAwCj4gPiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19FTkFCTEUgICAgICAgICAgICAgICAg IDB4MDQKPiA+ID4gPiArI2RlZmluZSBTVU41MElfSDZfVEhTX1BDICAgICAgICAgICAgICAgICAg ICAgMHgwOAo+ID4gPiA+ICsjZGVmaW5lIFNVTjUwSV9INl9USFNfRElDICAgICAgICAgICAgICAg ICAgICAweDEwCj4gPiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19ESVMgICAgICAgICAgICAg ICAgICAgIDB4MjAKPiA+ID4gPiArI2RlZmluZSBTVU41MElfSDZfVEhTX01GQyAgICAgICAgICAg ICAgICAgICAgMHgzMAo+ID4gPiA+ICsjZGVmaW5lIFNVTjUwSV9INl9USFNfVEVNUF9DQUxJQiAg ICAgICAgICAgICAweGEwCj4gPiA+ID4gKyNkZWZpbmUgU1VONTBJX0g2X1RIU19URU1QX0RBVEEg ICAgICAgICAgICAgICAgICAgICAgMHhjMAo+ID4gPiA+ICsKPiA+ID4gPiArI2RlZmluZSBTVU41 MElfVEhTX0NUUkwwX1RfQUNRKHgpICAgICAgICAgICAgKChHRU5NQVNLKDE1LCAwKSAmICh4KSkg PDwgMTYpCj4gPiA+ID4gKyNkZWZpbmUgU1VONTBJX1RIU19GSUxURVJfRU4gICAgICAgICAgICAg ICAgIEJJVCgyKQo+ID4gPiA+ICsjZGVmaW5lIFNVTjUwSV9USFNfRklMVEVSX1RZUEUoeCkgICAg ICAgICAgICAoR0VOTUFTSygxLCAwKSAmICh4KSkKPiA+ID4gPiArI2RlZmluZSBTVU41MElfSDZf VEhTX1BDX1RFTVBfUEVSSU9EKHgpICAgICAgICAgICAgICAoKEdFTk1BU0soMTksIDApICYgKHgp KSA8PCAxMikKPiA+ID4gPiArI2RlZmluZSBTVU41MElfSDZfVEhTX0RBVEFfSVJRX1NUUyh4KSAg ICAgICAgICAgICAgICBCSVQoeCkKPiA+ID4gPiArCj4gPiA+ID4gKy8qIG1pbGxpZGVncmVlIGNl bHNpdXMgKi8KPiA+ID4gPiArI2RlZmluZSBTVU41MElfSDZfRlRfREVWSUFUSU9OICAgICAgICAg ICAgICAgICAgICAgICA3MDAwCj4gPiA+ID4gKwo+ID4gPiA+ICtzdHJ1Y3QgdGhzX2RldmljZTsK PiA+ID4gPiArCj4gPiA+ID4gK3N0cnVjdCB0c2Vuc29yIHsKPiA+ID4gPiArICAgICBzdHJ1Y3Qg dGhzX2RldmljZSAgICAgICAgICAgICAgICp0bWRldjsKPiA+ID4gPiArICAgICBzdHJ1Y3QgdGhl cm1hbF96b25lX2RldmljZSAgICAgICp0emQ7Cj4gPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZDsKPiA+ID4gPiArICAgICB3YWl0X3F1ZXVlX2hlYWRfdCAgICAg ICAgICAgICAgIHdhaXRfcXVldWU7Cj4gPiA+ID4gK307Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdHJ1 Y3QgdGhzX3RoZXJtYWxfY2hpcCB7Cj4gPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgIHNlbnNv cl9udW07Cj4gPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgIG9mZnNldDsKPiA+ID4gPiArICAg ICBpbnQgICAgICAgICAgICAgc2NhbGU7Cj4gPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgIGZ0 X2RldmlhdGlvbjsKPiA+ID4gPiArICAgICBpbnQgICAgICAgICAgICAgdGVtcF9jYWxpYl9iYXNl Owo+ID4gPiA+ICsgICAgIGludCAgICAgICAgICAgICB0ZW1wX2RhdGFfYmFzZTsKPiA+ID4gPiAr ICAgICBpbnQgICAgICAgICAgICAgKCpjYWxpYnJhdGUpKHN0cnVjdCB0aHNfZGV2aWNlICp0bWRl dik7Cj4gPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgICgqaW5pdCkoc3RydWN0IHRoc19kZXZp Y2UgKnRtZGV2KTsKPiA+ID4gPiArICAgICBpcnFyZXR1cm5fdCAgICAgKCppcnFfdGhyZWFkKShp bnQgaXJxLCB2b2lkICpkYXRhKTsKPiA+ID4gPiArfTsKPiA+ID4gPiArCj4gPiA+ID4gK3N0cnVj dCB0aHNfZGV2aWNlIHsKPiA+ID4gPiArICAgICBjb25zdCBzdHJ1Y3QgdGhzX3RoZXJtYWxfY2hp cCAgICAgICAgICAgKmNoaXA7Cj4gPiA+ID4gKyAgICAgc3RydWN0IGRldmljZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICpkZXY7Cj4gPiA+ID4gKyAgICAgc3RydWN0IHJlZ21hcCAgICAgICAg ICAgICAgICAgICAgICAgICAgICpyZWdtYXA7Cj4gPiA+ID4gKyAgICAgc3RydWN0IHJlc2V0X2Nv bnRyb2wgICAgICAgICAgICAgICAgICAgICpyZXNldDsKPiA+ID4gPiArICAgICBzdHJ1Y3QgY2xr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmJ1c19jbGs7Cj4gPiA+ID4gKyAgICAgc3Ry dWN0IHRzZW5zb3IgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnNvcltNQVhfU0VOU09SX05V TV07Cj4gPiA+ID4gKyAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGFfcmVhZHk7Cj4gPiA+ID4gK307Cj4gPiA+ID4gKwo+ID4gPiA+ICsvKiBUZW1wIFVuaXQ6 IG1pbGxpZGVncmVlIENlbHNpdXMgKi8KPiA+ID4gPiArc3RhdGljIGludCBzdW44aV90aHNfcmVn MnRlbXAoc3RydWN0IHRoc19kZXZpY2UgKnRtZGV2LAo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgcmVnKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKyAgICAgcmV0dXJuIChyZWcg KyB0bWRldi0+Y2hpcC0+b2Zmc2V0KSAqIHRtZGV2LT5jaGlwLT5zY2FsZTsKPiA+ID4gPiArfQo+ ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIGludCBzdW44aV90aHNfZ2V0X3RlbXAodm9pZCAqZGF0 YSwgaW50ICp0ZW1wKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKyAgICAgc3RydWN0IHRzZW5zb3IgKnMg PSBkYXRhOwo+ID4gPiA+ICsgICAgIHN0cnVjdCB0aHNfZGV2aWNlICp0bWRldiA9IHMtPnRtZGV2 Owo+ID4gPiA+ICsgICAgIGludCB2YWw7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgIHdhaXRfZXZl bnQocy0+d2FpdF9xdWV1ZSwgdG1kZXYtPmRhdGFfcmVhZHkgJiBCSVQocy0+aWQpKTsKPiA+ID4g PiArICAgICB0bWRldi0+ZGF0YV9yZWFkeSAmPSB+QklUKHMtPmlkKTsKPiA+ID4KPiA+ID4gSSd2 ZSBsb29rZWQgYXQgdGhlcm1hbF9jb3JlLmMgYW5kIGl0IGxvb2tzIGxpa2UgdGhhdCB0aGUgcHJv cGVyIHdheSB0byBoYW5kbGUKPiA+ID4gdGhpcyBzaXR1YXRpb24gaXMganVzdCByZXR1cm5pbmcg LUVBR0FJTi4KPiA+IAo+ID4gV2hhdCB3ZSBhcmUgZG9pbmcgbm93IGlzIHRvIHR1cm4gaXQgaW50 byBhbiBpbnRlcnJ1cHQtYmFzZWQgcHJvZ3JhbS4KPiA+IEV2ZXJ5IHRpbWUgd2UgdXNlIHRlbXBl cmF0dXJlIGRhdGEsIHdlIG5lZWQgdG8gd2FpdCB1bnRpbCBuZXcgZGF0YSBpcyBjb2xsZWN0ZWQu Cj4gCj4gTm8geW91IGRvbid0IG5lZWQgdG8gd2FpdCwgYW5kIGJ5IHdhaXRpbmcgeW91J3JlIGJs b2NraW5nIGEgbG90IG9mIHRpbmdzIGluCj4gdGhlcm1hbF9jb3JlLmMgZm9yIG5vIHJlYXNvbi4K PiAKPiA+ID4KPiA+ID4gU2VlIHVwZGF0ZV90ZW1wZXJhdHVyZSgpIGZ1bmN0aW9uIGluIHRoZXJt YWxfY29yZS5jLgo+ID4gPgo+ID4gPiBUaGF0IHdpbGwgc3VwcHJlc3MgdGhlIHdhcm5pbmcgYWJv dXQgZmFpbHVyZSB0byByZWFkIHRoZXJtYWwgem9uZS4gQWxzbwo+ID4gPiBpdCdzIG11Y2ggc2lt cGxlciB0aGFuIHRoaXMgd2FpdF9xdWV1ZSBzdHVmZi4gTm8gb3RoZXIgdGhlcm1hbCBkcml2ZXIg dXNlcyB0aGlzCj4gPiA+IGVpdGhlci4gQWxzbyBnZXRfdGVtcCBpcyBjYWxsZWQgdW5kZXIgdGhl cm1hbF9saXN0X2xvY2sgbXV0ZXggYW5kIHRoYXQgd291bGQKPiA+ID4gYmxvY2sgY29vbGluZyBk ZXZpY2UgcmVnaXN0cmF0aW9ucyBhbmQgZ29kIGtub3dzIHdoYXQgZWxzZS4KPiA+IAo+ID4gU2lu Y2UgdGhlcmUgaXMgbm8gdmFsaWQgdGVtcGVyYXR1cmUgZGF0YSwgaXQgY2Fubm90IGJlIGJsb2Nr ZWQuCj4gCj4gU29ycnksIEkgZG9uJ3QgdW5kZXJzdGFuZCB5b3VyIG1lYW5pbmcgaGVyZS4gZ2V0 X3RlbXAgd2lsbCBibG9jayBpbgo+IHdhaXRfZXZlbnQsIGFuZCB0aGUgYWJvdmUgbWVudGlvbmVk IGxvY2sgaW4gdHogY29kZSB3aWxsIGJlIGhlbGQgZHVyaW5nIGFsbCB0aGlzCj4gdGltZSwgdW50 aWwgeW91IGdldCBkYXRhX3JlYWR5IGNvbmRpdGlvbiBzYXRpc2lmaWVkIHNvbWV0aW1lcyBpbiB0 aGUgZnV0dXJlLgo+IAo+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L2xhdGVzdC9z b3VyY2UvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jI0w0Mwo+IAo+IFRoaXMgd2lsbCBw cmV2ZW50IGFsbCB0aW1lIHpvbmVzIGluIHRoZSBzeXN0ZW0gZnJvbSBiZWluZyB1cGRhdGVkLCBy ZWdzaXRlcmVkLAo+IGV0YywgYmVjYXVzZSBpdCdzIGEgZHJpdmVyIGxldmVsIGxvY2suCj4gCj4g R2l2ZW4gdGhhdCB0aGlzIGlzIGNhbGxlZCBmcm9tIF9fdGhlcm1hbF9jb29saW5nX2RldmljZV9y ZWdpc3RlcjoKPiAKPiBodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC9sYXRlc3Qvc291 cmNlL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX2NvcmUuYyNMOTk3CgpPdGhlciBlZmZlY3QgSSBn dWVzcywgc2luY2UgdGhpcyBpcyBhIGRyaXZlciByZWdpc3RyYXRpb24gZnVuY3Rpb24gaXMgdGhh dCB0aGlzCndpbGwgZW5kIHVwIGJsb2NraW5nIGJvb3Qgb24gdGhlIHRoZXJtYWxfbGlzdF9sb2Nr IGlmIHlvdSBoYXZlIG1vcmUgdGhhbgoxIGNvb2xpbmcgZGV2aWNlIHVudGlsIHlvdSBnZXQgdGhl IGZpcnN0IHNhbXBsZSwgd2hpY2ggaXMgbm90IHJlYWxseSBhY2NlcHRhYmxlLgoKcmVnYXJkcywK CW8uCgo+IFRoaXMgd2lsbCBzdG9wIGFsbCBvdGhlciB0aGVybWFsIHpvbmVzIGZyb20gcmVnaXN0 ZXJpbmcgZm9yIG5vIHJlYXNvbi4KPiAKPiBKdXN0IHJldHVybiAtRUFHQUlOLCBhcyBleHBlY3Rl ZCBoZXJlOgo+IAo+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L2xhdGVzdC9zb3Vy Y2UvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jI0w0MzEKPiAKPiBBbmQgdGhlIGRyaXZl ciB3aWxsIHdvcmsgaW4gYm90aCBpbnRlcnJ1cHQgZHJpdmVuIGFuZCBwb2xsZWQgbW9kZSBqdXN0 IGZpbmUsCj4gd2l0aG91dCBhbnkgd2FybmluZ3Mgb3IgZGVsYXlzIG9yIHRha2luZyB0aGlzIGxv Y2sgZm9yIG5vIHJlYXNvbiBmb3IgdG9vIGxvbmcuCj4gCj4gdGhhbmsgeW91IGFuZCByZWdhcmRz LAo+IAlvLgo+IAo+ID4gTUJSLAo+ID4gWWFuZ3Rhbwo+ID4gCj4gPiA+Cj4gPiA+IE90aGVyIHRo YW4gdGhhdCwgYW5kIHdoYXQgTWF4aW1lIHNhaWQsIEkgZG9uJ3Qgc2VlIGFueSBtb3JlIGlzc3Vl cy4KPiA+ID4KPiA+ID4gdGhhbmsgeW91LAo+ID4gPiAgICAgICAgIG8uCj4gPiA+Cj4gPiA+ID4g KyAgICAgcmVnbWFwX3JlYWQodG1kZXYtPnJlZ21hcCwgdG1kZXYtPmNoaXAtPnRlbXBfZGF0YV9i YXNlICsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAweDQgKiBzLT5pZCwgJnZhbCk7Cj4gPiA+ ID4gKwo+ID4gPiA+ICsgICAgICp0ZW1wID0gc3VuOGlfdGhzX3JlZzJ0ZW1wKHRtZGV2LCB2YWwp Owo+ID4gPiA+ICsgICAgIC8qCj4gPiA+ID4gKyAgICAgICogWFggLSBBY2NvcmRpbmcgdG8gdGhl IG9yaWdpbmFsIHNkaywgdGhlcmUgYXJlIHNvbWUgcGxhdGZvcm1zKHJhcmVseSkKPiA+ID4gPiAr ICAgICAgKiB0aGF0IGFkZCBhIGZpeGVkIG9mZnNldCB2YWx1ZSBhZnRlciBjYWxjdWxhdGluZyB0 aGUgdGVtcGVyYXR1cmUKPiA+ID4gPiArICAgICAgKiB2YWx1ZS4gV2UgY2FuJ3Qgc2ltcGx5IHB1 dCBpdCBvbiB0aGUgZm9ybXVsYSBmb3IgY2FsY3VsYXRpbmcgdGhlCj4gPiA+ID4gKyAgICAgICog dGVtcGVyYXR1cmUgYWJvdmUsIGJlY2F1c2UgdGhlIGZvcm11bGEgZm9yIGNhbGN1bGF0aW5nIHRo ZQo+ID4gPiA+ICsgICAgICAqIHRlbXBlcmF0dXJlIGFib3ZlIGlzIGFsc28gdXNlZCB3aGVuIHRo ZSBzZW5zb3IgaXMgY2FsaWJyYXRlZC4gSWYKPiA+ID4gPiArICAgICAgKiBkbyB0aGlzLCB0aGUg Y29ycmVjdCBjYWxpYnJhdGlvbiBmb3JtdWxhIGlzIGhhcmQgdG8ga25vdy4KPiA+ID4gPiArICAg ICAgKi8KPiA+ID4gPiArICAgICBpZiAodG1kZXYtPmNoaXAtPmZ0X2RldmlhdGlvbikKPiA+ID4g PiArICAgICAgICAgICAgICp0ZW1wICs9IHRtZGV2LT5jaGlwLT5mdF9kZXZpYXRpb247Cj4gPiA+ ID4gKwo+ID4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IHRoZXJtYWxfem9uZV9vZl9kZXZpY2Vfb3BzIHRoc19vcHMg PSB7Cj4gPiA+ID4gKyAgICAgLmdldF90ZW1wID0gc3VuOGlfdGhzX2dldF90ZW1wLAo+ID4gPiA+ ICt9Owo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmln IGNvbmZpZyA9IHsKPiA+ID4gPiArICAgICAucmVnX2JpdHMgPSAzMiwKPiA+ID4gPiArICAgICAu dmFsX2JpdHMgPSAzMiwKPiA+ID4gPiArICAgICAucmVnX3N0cmlkZSA9IDQsCj4gPiA+ID4gKyAg ICAgLmZhc3RfaW8gPSB0cnVlLAo+ID4gPiA+ICt9Owo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGlj IGlycXJldHVybl90IHN1bjUwaV9oNl9pcnFfdGhyZWFkKGludCBpcnEsIHZvaWQgKmRhdGEpCj4g PiA+ID4gK3sKPiA+ID4gPiArICAgICB3YWl0X3F1ZXVlX2hlYWRfdCAqZGF0YV93YWl0Owo+ID4g PiA+ICsgICAgIHN0cnVjdCB0aHNfZGV2aWNlICp0bWRldiA9IGRhdGE7Cj4gPiA+ID4gKyAgICAg aW50IGksIHN0YXRlOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICByZWdtYXBfcmVhZCh0bWRldi0+ cmVnbWFwLCBTVU41MElfSDZfVEhTX0RJUywgJnN0YXRlKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAg ICAgZm9yIChpID0gMDsgaSA8IHRtZGV2LT5jaGlwLT5zZW5zb3JfbnVtOyBpKyspIHsKPiA+ID4g PiArICAgICAgICAgICAgIGRhdGFfd2FpdCA9ICZ0bWRldi0+c2Vuc29yW2ldLndhaXRfcXVldWU7 Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgICAgICAgICAgaWYgKHN0YXRlICYgU1VONTBJX0g2X1RI U19EQVRBX0lSUV9TVFMoaSkpIHsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgLyogY2xl YXIgZGF0YSBpcnEgcGVuZGluZyAqLwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZWdt YXBfd3JpdGUodG1kZXYtPnJlZ21hcCwgU1VONTBJX0g2X1RIU19ESVMsCj4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVU41MElfSDZfVEhTX0RBVEFfSVJRX1NUUyhp KSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICB0bWRldi0+ZGF0YV9y ZWFkeSB8PSBCSVQoaSk7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHdha2VfdXAoZGF0 YV93YWl0KTsKPiA+ID4gPiArICAgICAgICAgICAgIH0KPiA+ID4gPiArICAgICB9Cj4gPiA+ID4g Kwo+ID4gPiA+ICsgICAgIHJldHVybiBJUlFfSEFORExFRDsKPiA+ID4gPiArfQo+ID4gPiA+ICsK PiA+ID4gPiArc3RhdGljIGludCBzdW44aV90aHNfcmVzb3VyY2VfaW5pdChzdHJ1Y3QgdGhzX2Rl dmljZSAqdG1kZXYpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYg PSB0bWRldi0+ZGV2Owo+ID4gPiA+ICsgICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYg PSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsKPiA+ID4gPiArICAgICBzdHJ1Y3QgcmVzb3VyY2Ug Km1lbTsKPiA+ID4gPiArICAgICB2b2lkIF9faW9tZW0gKmJhc2U7Cj4gPiA+ID4gKyAgICAgaW50 IHJldCwgaXJxOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICBtZW0gPSBwbGF0Zm9ybV9nZXRfcmVz b3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ID4gPiA+ICsgICAgIGJhc2UgPSBkZXZt X2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOwo+ID4gPiA+ICsgICAgIGlmIChJU19FUlIoYmFz ZSkpCj4gPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihiYXNlKTsKPiA+ID4gPiAr Cj4gPiA+ID4gKyAgICAgdG1kZXYtPnJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXRfbW1pbyhkZXYs IGJhc2UsICZjb25maWcpOwo+ID4gPiA+ICsgICAgIGlmIChJU19FUlIodG1kZXYtPnJlZ21hcCkp Cj4gPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUih0bWRldi0+cmVnbWFwKTsKPiA+ ID4gPiArCj4gPiA+ID4gKyAgICAgdG1kZXYtPnJlc2V0ID0gZGV2bV9yZXNldF9jb250cm9sX2dl dChkZXYsIDApOwo+ID4gPiA+ICsgICAgIGlmIChJU19FUlIodG1kZXYtPnJlc2V0KSkKPiA+ID4g PiArICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHRtZGV2LT5yZXNldCk7Cj4gPiA+ID4gKwo+ ID4gPiA+ICsgICAgIHRtZGV2LT5idXNfY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJi dXMiKTsKPiA+ID4gPiArICAgICBpZiAoSVNfRVJSKHRtZGV2LT5idXNfY2xrKSkKPiA+ID4gPiAr ICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHRtZGV2LT5idXNfY2xrKTsKPiA+ID4gPiArCj4g PiA+ID4gKyAgICAgaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKPiA+ID4gPiArICAg ICBpZiAoaXJxIDwgMCkKPiA+ID4gPiArICAgICAgICAgICAgIHJldHVybiBpcnE7Cj4gPiA+ID4g Kwo+ID4gPiA+ICsgICAgIHJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBpcnEs IE5VTEwsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bWRl di0+Y2hpcC0+aXJxX3RocmVhZCwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElSUUZfT05FU0hPVCwgInRocyIsIHRtZGV2KTsKPiA+ID4gPiArICAgICBpZiAo cmV0KQo+ID4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4gPiArCj4gPiA+ID4g KyAgICAgcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydCh0bWRldi0+cmVzZXQpOwo+ID4gPiA+ ICsgICAgIGlmIChyZXQpCj4gPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ ICsKPiA+ID4gPiArICAgICByZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUodG1kZXYtPmJ1c19jbGsp Owo+ID4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ID4gKyAgICAgICAgICAgICBnb3RvIGFzc2Vy dF9yZXNldDsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgcmV0ID0gdG1kZXYtPmNoaXAtPmNhbGli cmF0ZSh0bWRldik7Cj4gPiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gPiArICAgICAgICAgICAg IGdvdG8gYnVzX2Rpc2FibGU7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4g PiA+ICsKPiA+ID4gPiArYnVzX2Rpc2FibGU6Cj4gPiA+ID4gKyAgICAgY2xrX2Rpc2FibGVfdW5w cmVwYXJlKHRtZGV2LT5idXNfY2xrKTsKPiA+ID4gPiArYXNzZXJ0X3Jlc2V0Ogo+ID4gPiA+ICsg ICAgIHJlc2V0X2NvbnRyb2xfYXNzZXJ0KHRtZGV2LT5yZXNldCk7Cj4gPiA+ID4gKwo+ID4gPiA+ ICsgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBp bnQgc3VuNTBpX3Roc19jYWxpYnJhdGUoc3RydWN0IHRoc19kZXZpY2UgKnRtZGV2KQo+ID4gPiA+ ICt7Cj4gPiA+ID4gKyAgICAgc3RydWN0IG52bWVtX2NlbGwgKmNhbGNlbGw7Cj4gPiA+ID4gKyAg ICAgc3RydWN0IGRldmljZSAqZGV2ID0gdG1kZXYtPmRldjsKPiA+ID4gPiArICAgICB1MTYgKmNh bGRhdGE7Cj4gPiA+ID4gKyAgICAgc2l6ZV90IGNhbGxlbjsKPiA+ID4gPiArICAgICBpbnQgZnRf dGVtcDsKPiA+ID4gPiArICAgICBpbnQgaSwgcmV0ID0gMDsKPiA+ID4gPiArCj4gPiA+ID4gKyAg ICAgY2FsY2VsbCA9IGRldm1fbnZtZW1fY2VsbF9nZXQoZGV2LCAiY2FsaWIiKTsKPiA+ID4gPiAr ICAgICBpZiAoSVNfRVJSKGNhbGNlbGwpKSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICBpZiAoUFRS X0VSUihjYWxjZWxsKSA9PSAtRVBST0JFX0RFRkVSKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLUVQUk9CRV9ERUZFUjsKPiA+ID4gPiArICAgICAgICAgICAgIC8qCj4gPiA+ ID4gKyAgICAgICAgICAgICAgKiBFdmVuIGlmIHRoZSBleHRlcm5hbCBjYWxpYnJhdGlvbiBkYXRh IHN0b3JlZCBpbiBzaWQgaXMKPiA+ID4gPiArICAgICAgICAgICAgICAqIG5vdCBhY2Nlc3NpYmxl LCB0aGUgVEhTIGhhcmR3YXJlIGNhbiBzdGlsbCB3b3JrLCBhbHRob3VnaAo+ID4gPiA+ICsgICAg ICAgICAgICAgICogdGhlIGRhdGEgd29uJ3QgYmUgc28gYWNjdXJhdGUuCj4gPiA+ID4gKyAgICAg ICAgICAgICAgKgo+ID4gPiA+ICsgICAgICAgICAgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgb2Yg Y2FsaWJyYXRpb24gcmVnaXN0ZXIgaXMgMHg4MDAgZm9yCj4gPiA+ID4gKyAgICAgICAgICAgICAg KiBldmVyeSBzZW5zb3IsIGFuZCB0aGUgY2FsaWJyYXRpb24gdmFsdWUgaXMgdXN1YWxseSAweDd4 eAo+ID4gPiA+ICsgICAgICAgICAgICAgICogb3IgMHg4eHgsIHNvIHRoZXkgd29uJ3QgYmUgYXdh eSBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlCj4gPiA+ID4gKyAgICAgICAgICAgICAgKiBmb3IgYSBs b3QuCj4gPiA+ID4gKyAgICAgICAgICAgICAgKgo+ID4gPiA+ICsgICAgICAgICAgICAgICogU28g aGVyZSB3ZSBkbyBub3QgcmV0dXJuIGVycm9yIGlmIHRoZSBjYWxpYmFydGlvbiBkYXRhIGlzCj4g PiA+ID4gKyAgICAgICAgICAgICAgKiBub3QgYXZhaWxhYmxlLCBleGNlcHQgdGhlIHByb2JlIG5l ZWRzIGRlZmVycmluZy4KPiA+ID4gPiArICAgICAgICAgICAgICAqLwo+ID4gPiA+ICsgICAgICAg ICAgICAgZ290byBvdXQ7Cj4gPiA+ID4gKyAgICAgfQo+ID4gPiA+ICsKPiA+ID4gPiArICAgICBj YWxkYXRhID0gbnZtZW1fY2VsbF9yZWFkKGNhbGNlbGwsICZjYWxsZW4pOwo+ID4gPiA+ICsgICAg IGlmIChJU19FUlIoY2FsZGF0YSkpIHsKPiA+ID4gPiArICAgICAgICAgICAgIHJldCA9IFBUUl9F UlIoY2FsZGF0YSk7Cj4gPiA+ID4gKyAgICAgICAgICAgICBnb3RvIG91dDsKPiA+ID4gPiArICAg ICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgIGlmICghY2FsZGF0YVswXSB8fCBjYWxsZW4gPCAy ICsgMiAqIHRtZGV2LT5jaGlwLT5zZW5zb3JfbnVtKSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICBy ZXQgPSAtRUlOVkFMOwo+ID4gPiA+ICsgICAgICAgICAgICAgZ290byBvdXRfZnJlZTsKPiA+ID4g PiArICAgICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgIC8qCj4gPiA+ID4gKyAgICAgICogZWZ1 c2UgbGF5b3V0Ogo+ID4gPiA+ICsgICAgICAqCj4gPiA+ID4gKyAgICAgICogICAgICAwICAgMTEg IDE2ICAgICAgIDMyCj4gPiA+ID4gKyAgICAgICogICAgICArLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0rCj4gPiA+ID4gKyAgICAgICogICAgICB8dGVtcHwgIHxzZW5zb3IwfHNlbnNvcjF8Cj4gPiA+ ID4gKyAgICAgICogICAgICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rCj4gPiA+ID4gKyAgICAg ICoKPiA+ID4gPiArICAgICAgKiBUaGUgY2FsaWJyYXRpb24gZGF0YSBvbiB0aGUgSDYgaXMgdGhl IGFtYmllbnQgdGVtcGVyYXR1cmUgYW5kCj4gPiA+ID4gKyAgICAgICogc2Vuc29yIHZhbHVlcyB0 aGF0IGFyZSBmaWxsZWQgZHVyaW5nIHRoZSBmYWN0b3J5IHRlc3Qgc3RhZ2UuCj4gPiA+ID4gKyAg ICAgICoKPiA+ID4gPiArICAgICAgKiBUaGUgdW5pdCBvZiBzdG9yZWQgRlQgdGVtcGVyYXR1cmUg aXMgMC4xIGRlZ3JlZWUgY2VsdXNpcy4KPiA+ID4gPiArICAgICAgKiBUaHJvdWdoIHRoZSBzdG9y ZWQgYW1iaWVudCB0ZW1wZXJhdHVyZSBhbmQgdGhlIGRhdGEgcmVhZAo+ID4gPiA+ICsgICAgICAq IGJ5IHRoZSBzZW5zb3IsIGFmdGVyIGEgY2VydGFpbiBjYWxjdWxhdGlvbiwgdGhlIGNhbGlicmF0 aW9uCj4gPiA+ID4gKyAgICAgICogdmFsdWUgdG8gYmUgY29tcGVuc2F0ZWQgY2FuIGJlIG9idGFp bmVkLgo+ID4gPiA+ICsgICAgICAqLwo+ID4gPiA+ICsgICAgIGZ0X3RlbXAgPSBjYWxkYXRhWzBd ICYgRlRfVEVNUF9NQVNLOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICBmb3IgKGkgPSAwOyBpIDwg dG1kZXYtPmNoaXAtPnNlbnNvcl9udW07IGkrKykgewo+ID4gPiA+ICsgICAgICAgICAgICAgaW50 IHJlZyA9IChpbnQpY2FsZGF0YVtpICsgMV07Cj4gPiA+ID4gKyAgICAgICAgICAgICBpbnQgc2Vu c29yX3RlbXAgPSBzdW44aV90aHNfcmVnMnRlbXAodG1kZXYsIHJlZyk7Cj4gPiA+ID4gKyAgICAg ICAgICAgICBpbnQgZGVsdGEsIGNkYXRhLCBjYWxpYl9vZmZlc3Q7Cj4gPiA+ID4gKwo+ID4gPiA+ ICsgICAgICAgICAgICAgLyoKPiA+ID4gPiArICAgICAgICAgICAgICAqIFRvIGNhbGN1bGF0ZSB0 aGUgY2FsaWJyYXRpb24gdmFsdWU6Cj4gPiA+ID4gKyAgICAgICAgICAgICAgKgo+ID4gPiA+ICsg ICAgICAgICAgICAgICogWChpbiBDZWxzaXVzKSA9IFRzIC0gZnRfdGVtcAo+ID4gPiA+ICsgICAg ICAgICAgICAgICogZGVsdGEgPSBYICogMTAwMDAgLyBURU1QX1RPX1JFRwo+ID4gPiA+ICsgICAg ICAgICAgICAgICogY2RhdGEgPSBDQUxJQlJBVEVfREVGQVVMVCAtIGRlbHRhCj4gPiA+ID4gKyAg ICAgICAgICAgICAgKgo+ID4gPiA+ICsgICAgICAgICAgICAgICogY2RhdGE6IGNhbGlicmF0aW9u IHZhbHVlCj4gPiA+ID4gKyAgICAgICAgICAgICAgKi8KPiA+ID4gPiArICAgICAgICAgICAgIGRl bHRhID0gKHNlbnNvcl90ZW1wIC0gZnRfdGVtcCAqIDEwMCkgKiAxMCAvIFRFTVBfVE9fUkVHOwo+ ID4gPiA+ICsgICAgICAgICAgICAgY2RhdGEgPSBDQUxJQlJBVEVfREVGQVVMVCAtIGRlbHRhOwo+ ID4gPiA+ICsgICAgICAgICAgICAgaWYgKGNkYXRhICYgflRFTVBfQ0FMSUJfTUFTSykgewo+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAvKgo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgKiBDYWxpYnJhdGlvbiB2YWx1ZSBtb3JlIHRoYW4gMTItYml0LCBidXQgY2FsaWJyYXRpb24K PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICogcmVnaXN0ZXIgaXMgMTItYml0LiBJbiB0 aGlzIGNhc2UsIHRocyBoYXJkd2FyZSBjYW4KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICogc3RpbGwgd29yayB3aXRob3V0IGNhbGlicmF0aW9uLCBhbHRob3VnaCB0aGUgZGF0YQo+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgKiB3b24ndCBiZSBzbyBhY2N1cmF0ZS4KPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICovCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg IGRldl93YXJuKGRldiwgInNlbnNvciVkIGlzIG5vdCBjYWxpYnJhdGVkLlxuIiwgaSk7Cj4gPiA+ ID4gKwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gPiArICAg ICAgICAgICAgIH0KPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAgICBjYWxpYl9vZmZlc3Qg PSB0bWRldi0+Y2hpcC0+dGVtcF9jYWxpYl9iYXNlICsgKGkgLyAyKSAqIDB4NDsKPiA+ID4gPiAr Cj4gPiA+ID4gKyAgICAgICAgICAgICBpZiAoaSAlIDIpIHsKPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgaW50IHZhbDsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg IHJlZ21hcF9yZWFkKHRtZGV2LT5yZWdtYXAsIGNhbGliX29mZmVzdCwgJnZhbCk7Cj4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgIHZhbCA9ICh2YWwgJiBURU1QX0NBTElCX01BU0spIHwgKGNk YXRhIDw8IDE2KTsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmVnbWFwX3dyaXRlKHRt ZGV2LT5yZWdtYXAsIGNhbGliX29mZmVzdCwgdmFsKTsKPiA+ID4gPiArICAgICAgICAgICAgIH0g ZWxzZSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJlZ21hcF93cml0ZSh0bWRldi0+ cmVnbWFwLCBjYWxpYl9vZmZlc3QsIGNkYXRhKTsKPiA+ID4gPiArICAgICAgICAgICAgIH0KPiA+ ID4gPiArICAgICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICtvdXRfZnJlZToKPiA+ID4gPiArICAgICBr ZnJlZShjYWxkYXRhKTsKPiA+ID4gPiArb3V0Ogo+ID4gPiA+ICsgICAgIHJldHVybiByZXQ7Cj4g PiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBpbnQgc3VuOGlfdGhzX3JlZ2lzdGVy KHN0cnVjdCB0aHNfZGV2aWNlICp0bWRldikKPiA+ID4gPiArewo+ID4gPiA+ICsgICAgIHN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlICp0emQ7Cj4gPiA+ID4gKyAgICAgaW50IGk7Cj4gPiA+ID4g Kwo+ID4gPiA+ICsgICAgIGZvciAoaSA9IDA7IGkgPCB0bWRldi0+Y2hpcC0+c2Vuc29yX251bTsg aSsrKSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICB0bWRldi0+c2Vuc29yW2ldLnRtZGV2ID0gdG1k ZXY7Cj4gPiA+ID4gKyAgICAgICAgICAgICB0bWRldi0+c2Vuc29yW2ldLmlkID0gaTsKPiA+ID4g PiArICAgICAgICAgICAgIHRtZGV2LT5zZW5zb3JbaV0udHpkID0KPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgZGV2bV90aGVybWFsX3pvbmVfb2Zfc2Vuc29yX3JlZ2lzdGVyKHRtZGV2LT5k ZXYsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRtZGV2LT5zZW5zb3JbaV0sCj4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm dGhzX29wcyk7Cj4gPiA+ID4gKyAgICAgICAgICAgICBpZiAoSVNfRVJSKHRtZGV2LT5zZW5zb3Jb aV0udHpkKSkKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIodHpk KTsKPiA+ID4gPiArICAgICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4g PiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgaW50IHN1bjhpX3Roc19wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gPiA+ICt7Cj4gPiA+ID4gKyAgICAgc3RydWN0 IHRoc19kZXZpY2UgKnRtZGV2Owo+ID4gPiA+ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZw ZGV2LT5kZXY7Cj4gPiA+ID4gKyAgICAgaW50IGksIHJldDsKPiA+ID4gPiArCj4gPiA+ID4gKyAg ICAgdG1kZXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnRtZGV2KSwgR0ZQX0tFUk5FTCk7 Cj4gPiA+ID4gKyAgICAgaWYgKCF0bWRldikKPiA+ID4gPiArICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICB0bWRldi0+ZGV2ID0gZGV2Owo+ID4gPiA+ ICsgICAgIHRtZGV2LT5jaGlwID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYp Owo+ID4gPiA+ICsgICAgIGlmICghdG1kZXYtPmNoaXApCj4gPiA+ID4gKyAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgLyoKPiA+ID4gPiArICAgICAg KiBJbml0aWFsaXplIHdhaXRfcXVldWUgaW4gYWR2YW5jZSwgdG8gYXZvaWQgY2FsbGluZyB3YWtl X3VwCj4gPiA+ID4gKyAgICAgICogYmVmb3JlIHRocyBpcyByZWdpc3RlcmVkIGluIGlzci4KPiA+ ID4gPiArICAgICAgKi8KPiA+ID4gPiArICAgICBmb3IgKGkgPSAwOyBpIDwgdG1kZXYtPmNoaXAt PnNlbnNvcl9udW07IGkrKykKPiA+ID4gPiArICAgICAgICAgICAgIGluaXRfd2FpdHF1ZXVlX2hl YWQoJnRtZGV2LT5zZW5zb3JbaV0ud2FpdF9xdWV1ZSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAg IHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHRtZGV2KTsKPiA+ID4gPiArCj4gPiA+ID4gKyAg ICAgcmV0ID0gc3VuOGlfdGhzX3Jlc291cmNlX2luaXQodG1kZXYpOwo+ID4gPiA+ICsgICAgIGlm IChyZXQpCj4gPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ICsKPiA+ID4g PiArICAgICByZXQgPSB0bWRldi0+Y2hpcC0+aW5pdCh0bWRldik7Cj4gPiA+ID4gKyAgICAgaWYg KHJldCkKPiA+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gKwo+ID4gPiA+ ICsgICAgIHJldCA9IHN1bjhpX3Roc19yZWdpc3Rlcih0bWRldik7Cj4gPiA+ID4gKyAgICAgaWYg KHJldCkKPiA+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gKwo+ID4gPiA+ ICsgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBp bnQgc3VuOGlfdGhzX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gPiA+ ICt7Cj4gPiA+ID4gKyAgICAgc3RydWN0IHRoc19kZXZpY2UgKnRtZGV2ID0gcGxhdGZvcm1fZ2V0 X2RydmRhdGEocGRldik7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgIGNsa19kaXNhYmxlX3VucHJl cGFyZSh0bWRldi0+YnVzX2Nsayk7Cj4gPiA+ID4gKyAgICAgcmVzZXRfY29udHJvbF9hc3NlcnQo dG1kZXYtPnJlc2V0KTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiA+ID4g K30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBpbnQgc3VuNTBpX3RoZXJtYWxfaW5pdChzdHJ1 Y3QgdGhzX2RldmljZSAqdG1kZXYpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgICBpbnQgdmFsOwo+ ID4gPiA+ICsKPiA+ID4gPiArICAgICAvKgo+ID4gPiA+ICsgICAgICAqIGNsa2luID0gMjRNSHoK PiA+ID4gPiArICAgICAgKiBUIGFjcXVpcmUgPSBjbGtpbiAvICh4ICsgMSkKPiA+ID4gPiArICAg ICAgKiAgICAgICAgICAgPSAyMHVzCj4gPiA+ID4gKyAgICAgICovCj4gPiA+ID4gKyAgICAgcmVn bWFwX3dyaXRlKHRtZGV2LT5yZWdtYXAsIFNVTjUwSV9USFNfQ1RSTDAsCj4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgIFNVTjUwSV9USFNfQ1RSTDBfVF9BQ1EoNDc5KSk7Cj4gPiA+ID4gKyAgICAg LyogYXZlcmFnZSBvdmVyIDQgc2FtcGxlcyAqLwo+ID4gPiA+ICsgICAgIHJlZ21hcF93cml0ZSh0 bWRldi0+cmVnbWFwLCBTVU41MElfSDZfVEhTX01GQywKPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgU1VONTBJX1RIU19GSUxURVJfRU4gfAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICBTVU41 MElfVEhTX0ZJTFRFUl9UWVBFKDEpKTsKPiA+ID4gPiArICAgICAvKiBwZXJpb2QgPSAoeCArIDEp ICogNDA5NiAvIGNsa2luOyB+MTBtcyAqLwo+ID4gPiA+ICsgICAgIHJlZ21hcF93cml0ZSh0bWRl di0+cmVnbWFwLCBTVU41MElfSDZfVEhTX1BDLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICBT VU41MElfSDZfVEhTX1BDX1RFTVBfUEVSSU9EKDU4KSk7Cj4gPiA+ID4gKyAgICAgLyogZW5hYmxl IHNlbnNvciAqLwo+ID4gPiA+ICsgICAgIHZhbCA9IEdFTk1BU0sodG1kZXYtPmNoaXAtPnNlbnNv cl9udW0gLSAxLCAwKTsKPiA+ID4gPiArICAgICByZWdtYXBfd3JpdGUodG1kZXYtPnJlZ21hcCwg U1VONTBJX0g2X1RIU19FTkFCTEUsIHZhbCk7Cj4gPiA+ID4gKyAgICAgLyogdGhlcm1hbCBkYXRh IGludGVycnVwdCBlbmFibGUgKi8KPiA+ID4gPiArICAgICB2YWwgPSBHRU5NQVNLKHRtZGV2LT5j aGlwLT5zZW5zb3JfbnVtIC0gMSwgMCk7Cj4gPiA+ID4gKyAgICAgcmVnbWFwX3dyaXRlKHRtZGV2 LT5yZWdtYXAsIFNVTjUwSV9INl9USFNfRElDLCB2YWwpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAg ICByZXR1cm4gMDsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCB0aHNfdGhlcm1hbF9jaGlwIHN1bjUwaV9oNl90aHMgPSB7Cj4gPiA+ID4gKyAgICAgLnNl bnNvcl9udW0gPSAyLAo+ID4gPiA+ICsgICAgIC5vZmZzZXQgPSAtMjc5NCwKPiA+ID4gPiArICAg ICAuc2NhbGUgPSAtNjcsCj4gPiA+ID4gKyAgICAgLmZ0X2RldmlhdGlvbiA9IFNVTjUwSV9INl9G VF9ERVZJQVRJT04sCj4gPiA+ID4gKyAgICAgLnRlbXBfY2FsaWJfYmFzZSA9IFNVTjUwSV9INl9U SFNfVEVNUF9DQUxJQiwKPiA+ID4gPiArICAgICAudGVtcF9kYXRhX2Jhc2UgPSBTVU41MElfSDZf VEhTX1RFTVBfREFUQSwKPiA+ID4gPiArICAgICAuY2FsaWJyYXRlID0gc3VuNTBpX3Roc19jYWxp YnJhdGUsCj4gPiA+ID4gKyAgICAgLmluaXQgPSBzdW41MGlfdGhlcm1hbF9pbml0LAo+ID4gPiA+ ICsgICAgIC5pcnFfdGhyZWFkID0gc3VuNTBpX2g2X2lycV90aHJlYWQsCj4gPiA+ID4gK307Cj4g PiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl90aHNf bWF0Y2hbXSA9IHsKPiA+ID4gPiArICAgICB7IC5jb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW41 MGktaDYtdGhzIiwgLmRhdGEgPSAmc3VuNTBpX2g2X3RocyB9LAo+ID4gPiA+ICsgICAgIHsgLyog c2VudGluZWwgKi8gfSwKPiA+ID4gPiArfTsKPiA+ID4gPiArTU9EVUxFX0RFVklDRV9UQUJMRShv Ziwgb2ZfdGhzX21hdGNoKTsKPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZv cm1fZHJpdmVyIHRoc19kcml2ZXIgPSB7Cj4gPiA+ID4gKyAgICAgLnByb2JlID0gc3VuOGlfdGhz X3Byb2JlLAo+ID4gPiA+ICsgICAgIC5yZW1vdmUgPSBzdW44aV90aHNfcmVtb3ZlLAo+ID4gPiA+ ICsgICAgIC5kcml2ZXIgPSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICAubmFtZSA9ICJzdW44aS10 aGVybWFsIiwKPiA+ID4gPiArICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG9mX3Roc19t YXRjaCwKPiA+ID4gPiArICAgICB9LAo+ID4gPiA+ICt9Owo+ID4gPiA+ICttb2R1bGVfcGxhdGZv cm1fZHJpdmVyKHRoc19kcml2ZXIpOwo+ID4gPiA+ICsKPiA+ID4gPiArTU9EVUxFX0RFU0NSSVBU SU9OKCJUaGVybWFsIHNlbnNvciBkcml2ZXIgZm9yIEFsbHdpbm5lciBTT0MiKTsKPiA+ID4gPiAr TU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+ID4gPiA+IC0tCj4gPiA+ID4gMi4xNy4wCj4gPiA+ ID4KPiA+ID4gPgo+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gPiA+ID4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPiA+ID4gPiBs aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+ID4gPiBodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKPiA+IAo+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IGxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cj4gPiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKPiA+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPiBsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK