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=-10.8 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, NICE_REPLY_A,SIGNED_OFF_BY,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 494F1C4363C for ; Wed, 7 Oct 2020 11:32:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 A713A20782 for ; Wed, 7 Oct 2020 11:32:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="uIJ7m8cT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A713A20782 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9B3516E05F; Wed, 7 Oct 2020 11:32:45 +0000 (UTC) Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 019376E05F for ; Wed, 7 Oct 2020 11:32:43 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id l17so1753585edq.12 for ; Wed, 07 Oct 2020 04:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=w3WBXc4JgatmdlDRmkPEG9BnGxg4bM0oarYKNrzE3Gw=; b=uIJ7m8cTtUtLl+/0DaJAcLoXrBNCNOJASFjncUR+IamP2eVPZXnvyzT4QZvBB4tAEc LyagiauMP2SSf831KOazR2OAnD/5u1q4treMJIk6c2NRbk3gIC1aBxmolEIfob3kbaAX bmVoacQWvqXfl035JTKnzFP5g6m9GKBfJRPohZz84XmXD8nvK2fqxI9OO/Q16Ujfil3Q AB4kow+o2TyTH2EWczQjb+EIEKsBrIB3dApXAXsw2NqucVDfHJtnBxD0tWEfaAqeLUYM nEcEO2OJ2mVudqcDT5UJTsk1d1SAHN6q16u6WDZJcl8/2M7qacIUciJyoQ6GZ/3z9zi9 MnNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:cc:references:from :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding:content-language; bh=w3WBXc4JgatmdlDRmkPEG9BnGxg4bM0oarYKNrzE3Gw=; b=a2oZwQtF0noPZE9V1moPMNhKQgdoi2mQr0g+e5YC5bbyJXB2/fTXR2iKtPcUwuDTlG DS9DyfNpj9OAyTf9jufwFgbN9jxV2W5vHScXcHmHzwPdJiDBxG/luh2fEQeIdDC0ETrY lJCHZnsd2jHnJ9hyeaHTSpB8AUyG0dqLTzIVF8XMFJOqwfkg+wqXBOaG8tyJokyEI3t0 aoinfinbtmSXPYhG/SFUAyLlwmSBZ0UB2SbWc/DScx/1kmYZatZBixO0iPCthOOe5iZU muPO/0HZ5jkSoHZdL/LhDNQwhN7ErBWQbJ3GQOAgTagd5OIYDJgrP+A1rRtU1P9KAKC+ rhxQ== X-Gm-Message-State: AOAM533rUPJBCcNvrqxzwEFHoarHV4qe188IMI0qFOznbpFdSzbPh/Hp QuRIbASnRMRw2E84Gf7Y6qY= X-Google-Smtp-Source: ABdhPJxwBWLbTUwnwIcUZ+d6vN4tgHeTwiaz6xgGxZFIjxGQmZATK1BA9TPjNCEqW3tm3oy1X4aCCA== X-Received: by 2002:a50:d987:: with SMTP id w7mr3027015edj.113.1602070360019; Wed, 07 Oct 2020 04:32:40 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7? ([2a02:908:1252:fb60:be8a:bd56:1f94:86e7]) by smtp.gmail.com with ESMTPSA id w13sm1320414eja.7.2020.10.07.04.32.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Oct 2020 04:32:39 -0700 (PDT) Subject: Re: [PATCH 1/4] drm/ttm: device naming cleanup To: Daniel Vetter , Dave Airlie References: <20201002084707.2203-1-christian.koenig@amd.com> <20201006092446.GY438822@phenom.ffwll.local> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Wed, 7 Oct 2020 13:32:37 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20201006092446.GY438822@phenom.ffwll.local> Content-Language: en-US X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: christian.koenig@amd.com Cc: Huang Rui , dri-devel Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMDYuMTAuMjAgdW0gMTE6MjQgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFR1ZSwgT2N0 IDA2LCAyMDIwIGF0IDEwOjE1OjQ0QU0gKzEwMDAsIERhdmUgQWlybGllIHdyb3RlOgo+PiBPbiBG cmksIDIgT2N0IDIwMjAgYXQgMTg6NDcsIENocmlzdGlhbiBLw7ZuaWcKPj4gPGNrb2VuaWcubGVp Y2h0enVtZXJrZW5AZ21haWwuY29tPiB3cm90ZToKPj4+IFJlbmFtZSB0dG1fYm9fZGV2aWNlIHRv IHR0bV9kZXZpY2UuCj4+PiBSZW5hbWUgdHRtX2JvX2RyaXZlciB0byB0dG1fZGV2aWNlX2Z1bmNz Lgo+Pj4gUmVuYW1lIHR0bV9ib19nbG9iYWwgdG8gdHRtX2dsb2JhbC4KPj4+Cj4+PiBNb3ZlIGds b2JhbCBhbmQgZGV2aWNlIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIHR0bV9kZXZpY2UuW2NoXS4KPj4g SSd2ZSBhIHByb2JsZW0gd2l0aCBkb2luZyB0aGlzIG5vdywgc2luY2Ugd2UgYXJlIGNodXJuaW5n IGEgbG90IG9mCj4+IHN0dWZmIGludG8gZHJtLW1pc2MtbmV4dCB0aGlzIHdpbGwgbWFrZSByZXZl cnRzIGEgbG90IG1lc3NpZXIgdGhhbgo+PiByZXF1aXJlZCBpbiBvcmRlciB0byBmYWNpbGlhdGUg cmVncmVzc2lvbiB0ZXN0aW5nLgo+Pgo+PiBJJ3ZlIGFscmVhZHkgYnVybmVkIDItMyBkYXlzIG9u IHZtd2dmeCByZWdyZXNzaW9ucyBhbmQgSSdtIG5vdCByZWFsbHkKPj4gd2FudGluZyB0byBhZGQg bWFqb3IgcmVuYW1lcyBvciByZXN0cnVjdHVyZXMgdW50aWwgd2UgaGF2ZSBzZXR0bGVkCj4+IHRo aW5ncyBkb3duIGEgYml0IG1vcmUuCj4+Cj4+IEknbSBub3Qgc3VyZSB3aGVuIHdvdWxkIGJlIGEg Z29vZCB0aW1lLCBhbmQgbWF5YmUgdGhlIGdsb2JhbCBvbmUgd291bGQKPj4gYmUgYSBsb3QgbGVz cyBvZiBpbXBhY3QgdnMgdGhlIHR0bV9ib19kZXZpY2UtPnR0bV9EZXZpY2Ugb25lLgo+IFdlbGwg MTAgeWVhcnMgb2YgdHRtIHJlZmFjdG9yaW5nIGluIDIgbW9udGhzIGlzIG1heWJlIGEgYml0IHJv dWdoIDotKQoKSW5kZWVkIHRydWUsIHllYWggOikKCj4gV2hhdCBhYm91dCB3YWl0aW5nIHVudGls IC1yYzIsIGJhY2ttZXJnaW5nIHRoYXQsIGFuZCB0aGVuIGxhbmRpbmcgdGhlIG5leHQKPiByb3Vu ZCBvZiBjaHVybj8gU2hvdWxkIGF0IGxlYXN0IGdpdmUgdXMgYW5vdGhlciBtb250aCBvciBzbyBm b3IgZml4aW5nCj4gaXNzdWVzIGFuZCBwZW9wbGUgdGVzdGluZyBzdHVmZi4KClNvdW5kcyBnb29k IHRvIG1lLgoKQnV0IGNvdWxkIEkgZ2V0IGF0IGxlYXN0IHlvdXIgcmIgZm9yIHRoZSBjYWNoaW5n IGNoYW5nZT8gVGhhdCBpcyB0aGUgCmxhc3QgYmlnIHRoaW5nIGluIG15IHRyZWUgYmVmb3JlIHRo ZSByZW5hbWUgYW5kIGF0IGxlYXN0IGluIHRoZW9yeSAKc2hvdWxkbid0IGhhdmUgYW55IGZ1bmN0 aW9uYWwgY2hhbmdlLgoKQ2hyaXN0aWFuLgoKPgo+IEFzaWRlIGZyb20gdGhhdCBJIGRvbid0IHRo aW5rIHRoZSBwYWluIGNhbiBiZSBhdm9pZGVkIHNpbmNlIHdlIGRvbid0IGhhdmUKPiBhIG1hc3Np dmUgaHcgY2kgbGlrZSBtZXNhLgo+IC1EYW5pZWwKPgo+PiBEYXZlLgo+Pj4gTm8gZnVuY3Rpb25h bCBjaGFuZ2UuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4gLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdS5oICAgICAgICAgICB8ICAgMiArLQo+Pj4gICAuLi4vZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9hbWRrZmRfZmVuY2UuYyAgfCAgIDYgKy0KPj4+ICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYyAgICAgIHwgICAyICstCj4+PiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyAgICAgICB8ICAyNCArLQo+Pj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmggICAgICAgfCAgIDIgKy0KPj4+ICAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgICAgICAgIHwgICA4ICstCj4+PiAg IGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAgICAgICB8ICAxNCArLQo+ Pj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgfCAgMTgg Ky0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oICAgICAgICAgIHwg ICAyICstCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmggICAgICAg ICB8ICAgMiArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NnZG1hLmMg ICAgICAgfCAgIDYgKy0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0u YyAgICAgICAgIHwgICA0ICstCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf dHRtLmggICAgICAgICB8ICAgOCArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYu aCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf cmVsZWFzZS5jICAgICAgICAgICAgIHwgICA2ICstCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwv cXhsX3R0bS5jICAgICAgICAgICAgICAgICB8ICAxNiArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbi5oICAgICAgICAgICAgICAgfCAgIDYgKy0KPj4+ICAgZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMgICAgICAgICAgIHwgIDM0ICstCj4+PiAgIGRyaXZlcnMv Z3B1L2RybS90dG0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+Pj4gICBkcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jICAgICAgICAgfCAgIDIgKy0KPj4+ICAg ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyAgICAgICAgICAgICAgICAgIHwgMzA4ICsrKy0t LS0tLS0tLS0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAgICAg ICAgICAgfCAgMjQgKy0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAg ICAgICAgICAgIHwgIDI0ICstCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5j ICAgICAgICAgICAgICB8IDIyMiArKysrKysrKysrKwo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9leGVjYnVmX3V0aWwuYyAgICAgICAgfCAgIDggKy0KPj4+ICAgZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fbWVtb3J5LmMgICAgICAgICAgICAgIHwgICAyICstCj4+PiAgIGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX3JhbmdlX21hbmFnZXIuYyAgICAgICB8ICAgNCArLQo+Pj4gICBkcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jICAgICAgICAgICAgfCAgIDQgKy0KPj4+ICAgZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyAgICAgICAgICAgICAgICAgIHwgIDI2ICstCj4+PiAg IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYyAgICAgICAgICB8ICAgNCArLQo+ Pj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jICAgICAgICAgICAgfCAgIDQg Ky0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgICAgIHwg ICA2ICstCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oICAgICAgICAg ICB8ICAgNCArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5j ICAgICAgfCAgIDIgKy0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1 ZmZlci5jICAgIHwgIDE0ICstCj4+PiAgIGluY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIu aCAgICAgICAgICAgICB8ICAgNiArLQo+Pj4gICBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5o ICAgICAgICAgICAgICAgICAgfCAgNDQgKy0tCj4+PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9f ZHJpdmVyLmggICAgICAgICAgICAgICB8IDM1NyArLS0tLS0tLS0tLS0tLS0tLQo+Pj4gICBpbmNs dWRlL2RybS90dG0vdHRtX2RldmljZS5oICAgICAgICAgICAgICAgICAgfCAzNjYgKysrKysrKysr KysrKysrKysrCj4+PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaCAgICAgICAgICAg ICAgICB8ICAgNCArLQo+Pj4gICBpbmNsdWRlL2RybS90dG0vdHRtX3R0LmggICAgICAgICAgICAg ICAgICAgICAgfCAgMTIgKy0KPj4+ICAgNDEgZmlsZXMgY2hhbmdlZCwgODMzIGluc2VydGlvbnMo KyksIDc4MCBkZWxldGlvbnMoLSkKPj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2RldmljZS5jCj4+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2Ry bS90dG0vdHRtX2RldmljZS5oCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgK Pj4+IGluZGV4IDQwMDlkMmUzMDcyNy4uYTAzZjliZDNlYTRiIDEwMDY0NAo+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+PiBAQCAtOTk5LDcgKzk5OSw3IEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IGRybV9kZXZpY2UgKmFkZXZfdG9fZHJtKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQo+Pj4gICAgICAgICAgcmV0dXJuICZhZGV2LT5kZGV2Owo+Pj4gICB9Cj4+Pgo+Pj4gLXN0 YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFtZGdwdV90dG1fYWRldihzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldikKPj4+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZGV2 aWNlICphbWRncHVfdHRtX2FkZXYoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYpCj4+PiAgIHsKPj4+ ICAgICAgICAgIHJldHVybiBjb250YWluZXJfb2YoYmRldiwgc3RydWN0IGFtZGdwdV9kZXZpY2Us IG1tYW4uYmRldik7Cj4+PiAgIH0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfYW1ka2ZkX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfYW1ka2ZkX2ZlbmNlLmMKPj4+IGluZGV4IDMxMDdiOTU3NTkyOS4uNWFmNDY0OTMz OTc2IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Ft ZGtmZF9mZW5jZS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf YW1ka2ZkX2ZlbmNlLmMKPj4+IEBAIC00MCwxMyArNDAsMTMgQEAgc3RhdGljIGF0b21pY190IGZl bmNlX3NlcSA9IEFUT01JQ19JTklUKDApOwo+Pj4gICAgKiBBbGwgdGhlIEJPcyBpbiBhIHByb2Nl c3Mgc2hhcmUgYW4gZXZpY3Rpb24gZmVuY2UuIFdoZW4gcHJvY2VzcyBYIHdhbnRzCj4+PiAgICAq IHRvIG1hcCBWUkFNIG1lbW9yeSBidXQgVFRNIGNhbid0IGZpbmQgZW5vdWdoIHNwYWNlLCBUVE0g d2lsbCBhdHRlbXB0IHRvCj4+PiAgICAqIGV2aWN0IEJPcyBmcm9tIGl0cyBMUlUgbGlzdC4gVFRN IGNoZWNrcyBpZiB0aGUgQk8gaXMgdmFsdWFibGUgdG8gZXZpY3QKPj4+IC0gKiBieSBjYWxsaW5n IHR0bV9ib19kcml2ZXItPmV2aWN0aW9uX3ZhbHVhYmxlKCkuCj4+PiArICogYnkgY2FsbGluZyB0 dG1fZGV2aWNlX2Z1bmNzLT5ldmljdGlvbl92YWx1YWJsZSgpLgo+Pj4gICAgKgo+Pj4gLSAqIHR0 bV9ib19kcml2ZXItPmV2aWN0aW9uX3ZhbHVhYmxlKCkgLSB3aWxsIHJldHVybiBmYWxzZSBpZiB0 aGUgQk8gYmVsb25ncwo+Pj4gKyAqIHR0bV9kZXZpY2VfZnVuY3MtPmV2aWN0aW9uX3ZhbHVhYmxl KCkgLSB3aWxsIHJldHVybiBmYWxzZSBpZiB0aGUgQk8gYmVsb25ncwo+Pj4gICAgKiAgdG8gcHJv Y2VzcyBYLiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRydWUgdG8gaW5kaWNhdGUgQk8gY2Fu IGJlCj4+PiAgICAqICBldmljdGVkIGJ5IFRUTS4KPj4+ICAgICoKPj4+IC0gKiBJZiB0dG1fYm9f ZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZSByZXR1cm5zIHRydWUsIHRoZW4gVFRNIHdpbGwgY29u dGludWUKPj4+ICsgKiBJZiB0dG1fZGV2aWNlX2Z1bmNzLT5ldmljdGlvbl92YWx1YWJsZSByZXR1 cm5zIHRydWUsIHRoZW4gVFRNIHdpbGwgY29udGludWUKPj4+ICAgICogdGhlIGV2Y2l0aW9uIHBy b2Nlc3MgZm9yIHRoYXQgQk8gYnkgY2FsbGluZyB0dG1fYm9fZXZpY3QgLS0+IGFtZGdwdV9ib19t b3ZlCj4+PiAgICAqIC0tPiBhbWRncHVfY29weV9idWZmZXIoKS4gVGhpcyBzZXRzIHVwIGpvYiBp biBHUFUgc2NoZWR1bGVyLgo+Pj4gICAgKgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZ2FydC5jCj4+PiBpbmRleCBlMDFlNjgxZDJhNjAuLjdmMjVmMmMwZGUzOCAxMDA2NDQK Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKPj4+IEBAIC03MSw3 ICs3MSw3IEBACj4+PiAgICAqLwo+Pj4gICBzdGF0aWMgaW50IGFtZGdwdV9nYXJ0X2R1bW15X3Bh Z2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPj4+ICAgewo+Pj4gLSAgICAgICBz dHJ1Y3QgcGFnZSAqZHVtbXlfcGFnZSA9IHR0bV9ib19nbG9iLmR1bW15X3JlYWRfcGFnZTsKPj4+ ICsgICAgICAgc3RydWN0IHBhZ2UgKmR1bW15X3BhZ2UgPSB0dG1fZ2xvYi5kdW1teV9yZWFkX3Bh Z2U7Cj4+Pgo+Pj4gICAgICAgICAgaWYgKGFkZXYtPmR1bW15X3BhZ2VfYWRkcikKPj4+ICAgICAg ICAgICAgICAgICAgcmV0dXJuIDA7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3R0bS5jCj4+PiBpbmRleCA4Y2RlYzU4YjkxMDYuLjA4OGRjZmNlNmJjYSAxMDA2NDQKPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4+PiBAQCAtNjMsNyArNjMsNyBA QAo+Pj4KPj4+ICAgI2RlZmluZSBBTURHUFVfVFRNX1ZSQU1fTUFYX0RXX1JFQUQgICAgKHNpemVf dCkxMjgKPj4+Cj4+PiAtc3RhdGljIGludCBhbWRncHVfdHRtX2JhY2tlbmRfYmluZChzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMgaW50IGFtZGdwdV90dG1fYmFja2VuZF9i aW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtLAo+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKTsKPj4+Cj4+PiBAQCAt NzM1LDcgKzczNSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX21vdmUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPj4+ICAgICoKPj4+ICAgICogQ2FsbGVkIGJ5IHR0 bV9tZW1faW9fcmVzZXJ2ZSgpIHVsdGltYXRlbHkgdmlhIHR0bV9ib192bV9mYXVsdCgpCj4+PiAg ICAqLwo+Pj4gLXN0YXRpYyBpbnQgYW1kZ3B1X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+Pj4gK3N0YXRpYyBp bnQgYW1kZ3B1X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3Ry dWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiZGV2KTsKPj4+ICAgICAgICAgIHN0cnVj dCBkcm1fbW1fbm9kZSAqbW1fbm9kZSA9IG1lbS0+bW1fbm9kZTsKPj4+IEBAIC05ODIsNyArOTgy LDcgQEAgdm9pZCBhbWRncHVfdHRtX3R0X3NldF91c2VyX3BhZ2VzKHN0cnVjdCB0dG1fdHQgKnR0 bSwgc3RydWN0IHBhZ2UgKipwYWdlcykKPj4+ICAgICoKPj4+ICAgICogQ2FsbGVkIGJ5IGFtZGdw dV90dG1fYmFja2VuZF9iaW5kKCkKPj4+ICAgICoqLwo+Pj4gLXN0YXRpYyBpbnQgYW1kZ3B1X3R0 bV90dF9waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMg aW50IGFtZGdwdV90dG1fdHRfcGluX3VzZXJwdHIoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0 bSkKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRn cHVfdHRtX2FkZXYoYmRldik7Cj4+PiBAQCAtMTAxOSw3ICsxMDE5LDcgQEAgc3RhdGljIGludCBh bWRncHVfdHRtX3R0X3Bpbl91c2VycHRyKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4g ICAvKioKPj4+ICAgICogYW1kZ3B1X3R0bV90dF91bnBpbl91c2VycHRyIC0gVW5waW4gYW5kIHVu bWFwIHVzZXJwdHIgcGFnZXMKPj4+ICAgICovCj4+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV90 dF91bnBpbl91c2VycHRyKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK3N0YXRpYyB2 b2lkIGFtZGdwdV90dG1fdHRfdW5waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwK Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90 dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IGFtZGdwdV90dG1fYWRldihiZGV2KTsKPj4+IEBAIC0xMTAzLDcgKzExMDMsNyBAQCBzdGF0aWMg aW50IGFtZGdwdV90dG1fZ2FydF9iaW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4g ICAgKiBDYWxsZWQgYnkgdHRtX3R0X2JpbmQoKSBvbiBiZWhhbGYgb2YgdHRtX2JvX2hhbmRsZV9t b3ZlX21lbSgpLgo+Pj4gICAgKiBUaGlzIGhhbmRsZXMgYmluZGluZyBHVFQgbWVtb3J5IHRvIHRo ZSBkZXZpY2UgYWRkcmVzcyBzcGFjZS4KPj4+ICAgICovCj4+PiAtc3RhdGljIGludCBhbWRncHVf dHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMg aW50IGFtZGdwdV90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtLAo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJj ZSAqYm9fbWVtKQo+Pj4gICB7Cj4+PiBAQCAtMTIzOCw3ICsxMjM4LDcgQEAgaW50IGFtZGdwdV90 dG1fcmVjb3Zlcl9nYXJ0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvKQo+Pj4gICAgKiBD YWxsZWQgYnkgdHRtX3R0X3VuYmluZCgpIG9uIGJlaGFsZiBvZiB0dG1fYm9fbW92ZV90dG0oKSBh bmQKPj4+ICAgICogdHRtX3R0X2Rlc3Ryb3koKS4KPj4+ICAgICovCj4+PiAtc3RhdGljIHZvaWQg YW1kZ3B1X3R0bV9iYWNrZW5kX3VuYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ ICtzdGF0aWMgdm9pZCBhbWRncHVfdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR0bV90dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IGFtZGdwdV90dG1fYWRldihiZGV2KTsKPj4+IEBAIC0xMjYzLDcgKzEyNjMsNyBAQCBz dGF0aWMgdm9pZCBhbWRncHVfdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+Pj4gICAgICAgICAgZ3R0LT5ib3VuZCA9IGZhbHNlOwo+Pj4gICB9Cj4+Pgo+Pj4g LXN0YXRpYyB2b2lkIGFtZGdwdV90dG1fYmFja2VuZF9kZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+Pj4gK3N0YXRpYyB2b2lkIGFtZGdwdV90dG1fYmFja2VuZF9kZXN0cm95KHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0 IGFtZGdwdV90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwo+Pj4gQEAgLTEzMTYsNyArMTMxNiw3 IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX3R0ICphbWRncHVfdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgKiBNYXAgdGhlIHBhZ2VzIG9mIGEgdHRtX3R0IG9i amVjdCB0byBhbiBhZGRyZXNzIHNwYWNlIHZpc2libGUKPj4+ICAgICogdG8gdGhlIHVuZGVybHlp bmcgZGV2aWNlLgo+Pj4gICAgKi8KPj4+IC1zdGF0aWMgaW50IGFtZGdwdV90dG1fdHRfcG9wdWxh dGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiArc3RhdGljIGludCBhbWRncHVfdHRt X3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+Pj4g ICB7Cj4+PiBAQCAtMTM3MSw3ICsxMzcxLDcgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX3R0X3Bv cHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gICAgKiBVbm1hcHMgcGFnZXMg b2YgYSB0dG1fdHQgb2JqZWN0IGZyb20gdGhlIGRldmljZSBhZGRyZXNzIHNwYWNlIGFuZAo+Pj4g ICAgKiB1bnBvcHVsYXRlcyB0aGUgcGFnZSBhcnJheSBiYWNraW5nIGl0Lgo+Pj4gICAgKi8KPj4+ IC1zdGF0aWMgdm9pZCBhbWRncHVfdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4+ICtzdGF0aWMgdm9pZCBhbWRncHVfdHRt X3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0 bSkKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0IGFtZGdwdV90dG1fdHQgKmd0dCA9ICh2b2lk ICopdHRtOwo+Pj4gICAgICAgICAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7Cj4+PiBAQCAt MTY5Nyw3ICsxNjk3LDcgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX2FjY2Vzc19tZW1vcnkoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICAgICAgIHJldHVybiByZXQ7Cj4+PiAg IH0KPj4+Cj4+PiAtc3RhdGljIHN0cnVjdCB0dG1fYm9fZHJpdmVyIGFtZGdwdV9ib19kcml2ZXIg PSB7Cj4+PiArc3RhdGljIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIGFtZGdwdV9ib19kcml2ZXIg PSB7Cj4+PiAgICAgICAgICAudHRtX3R0X2NyZWF0ZSA9ICZhbWRncHVfdHRtX3R0X2NyZWF0ZSwK Pj4+ICAgICAgICAgIC50dG1fdHRfcG9wdWxhdGUgPSAmYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZSwK Pj4+ICAgICAgICAgIC50dG1fdHRfdW5wb3B1bGF0ZSA9ICZhbWRncHVfdHRtX3R0X3VucG9wdWxh dGUsCj4+PiBAQCAtMTg4MSw3ICsxODgxLDcgQEAgaW50IGFtZGdwdV90dG1faW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKPj4+ICAgICAgICAgIG11dGV4X2luaXQoJmFkZXYtPm1tYW4u Z3R0X3dpbmRvd19sb2NrKTsKPj4+Cj4+PiAgICAgICAgICAvKiBObyBvdGhlcnMgdXNlciBvZiBh ZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCj4+PiAtICAgICAgIHIgPSB0dG1fYm9fZGV2 aWNlX2luaXQoJmFkZXYtPm1tYW4uYmRldiwKPj4+ICsgICAgICAgciA9IHR0bV9kZXZpY2VfaW5p dCgmYWRldi0+bW1hbi5iZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm YW1kZ3B1X2JvX2RyaXZlciwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRl dl90b19kcm0oYWRldiktPmFub25faW5vZGUtPmlfbWFwcGluZywKPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWRldl90b19kcm0oYWRldiktPnZtYV9vZmZzZXRfbWFuYWdlciwK Pj4+IEBAIC0yMDM2LDcgKzIwMzYsNyBAQCB2b2lkIGFtZGdwdV90dG1fZmluaShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKPj4+ICAgICAgICAgIHR0bV9yYW5nZV9tYW5fZmluaSgmYWRldi0+ bW1hbi5iZGV2LCBBTURHUFVfUExfR0RTKTsKPj4+ICAgICAgICAgIHR0bV9yYW5nZV9tYW5fZmlu aSgmYWRldi0+bW1hbi5iZGV2LCBBTURHUFVfUExfR1dTKTsKPj4+ICAgICAgICAgIHR0bV9yYW5n ZV9tYW5fZmluaSgmYWRldi0+bW1hbi5iZGV2LCBBTURHUFVfUExfT0EpOwo+Pj4gLSAgICAgICB0 dG1fYm9fZGV2aWNlX3JlbGVhc2UoJmFkZXYtPm1tYW4uYmRldik7Cj4+PiArICAgICAgIHR0bV9k ZXZpY2VfcmVsZWFzZSgmYWRldi0+bW1hbi5iZGV2KTsKPj4+ICAgICAgICAgIGFkZXYtPm1tYW4u aW5pdGlhbGl6ZWQgPSBmYWxzZTsKPj4+ICAgICAgICAgIERSTV9JTkZPKCJhbWRncHU6IHR0bSBm aW5hbGl6ZWRcbiIpOwo+Pj4gICB9Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3R0bS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3R0bS5oCj4+PiBpbmRleCBhODc5NTFiMmYwNmQuLmU1ZDYxMjQxNWVmZiAxMDA2NDQKPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCj4+PiBAQCAtNTMsNyArNTMsNyBA QCBzdHJ1Y3QgYW1kZ3B1X2d0dF9tZ3Igewo+Pj4gICB9Owo+Pj4KPj4+ICAgc3RydWN0IGFtZGdw dV9tbWFuIHsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgICAgICAgICAgICBiZGV2 Owo+Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAgICAgICAgICAgICAgIGJkZXY7Cj4+PiAg ICAgICAgICBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbV9nbG9iYWxfcmVmZXJl bmNlZDsKPj4+ICAgICAgICAgIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlh bGl6ZWQ7Cj4+PiAgICAgICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAgICAgICAgICphcGVy X2Jhc2Vfa2FkZHI7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4g aW5kZXggM2U2MjQzNjIzMDgyLi5kZmJiOWIwMjU2NTQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+IEBAIC02MzgsMTUgKzYzOCwxNSBAQCB2b2lkIGFt ZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4g ICAgICAgICAgc3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlOwo+Pj4KPj4+ICAgICAg ICAgIGlmICh2bS0+YnVsa19tb3ZlYWJsZSkgewo+Pj4gLSAgICAgICAgICAgICAgIHNwaW5fbG9j aygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+Pj4gKyAgICAgICAgICAgICAgIHNwaW5fbG9jaygm dHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4gICAgICAgICAgICAgICAgICB0dG1fYm9fYnVsa19tb3Zl X2xydV90YWlsKCZ2bS0+bHJ1X2J1bGtfbW92ZSk7Cj4+PiAtICAgICAgICAgICAgICAgc3Bpbl91 bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4+ICsgICAgICAgICAgICAgICBzcGluX3Vu bG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4gICAgICAgICAgICAgICAgICByZXR1cm47Cj4+ PiAgICAgICAgICB9Cj4+Pgo+Pj4gICAgICAgICAgbWVtc2V0KCZ2bS0+bHJ1X2J1bGtfbW92ZSwg MCwgc2l6ZW9mKHZtLT5scnVfYnVsa19tb3ZlKSk7Cj4+Pgo+Pj4gLSAgICAgICBzcGluX2xvY2so JnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4+ICsgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5s cnVfbG9jayk7Cj4+PiAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX2Jhc2UsICZ2bS0+ aWRsZSwgdm1fc3RhdHVzKSB7Cj4+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfYm8g KmJvID0gYm9fYmFzZS0+Ym87Cj4+Pgo+Pj4gQEAgLTY1OCw3ICs2NTgsNyBAQCB2b2lkIGFtZGdw dV92bV9tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+c2hhZG93 LT50Ym8sCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnZtLT5scnVfYnVsa19tb3ZlKTsKPj4+ICAgICAgICAgIH0KPj4+IC0gICAgICAgc3Bpbl91 bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4+ICsgICAgICAgc3Bpbl91bmxvY2soJnR0 bV9nbG9iLmxydV9sb2NrKTsKPj4+Cj4+PiAgICAgICAgICB2bS0+YnVsa19tb3ZlYWJsZSA9IHRy dWU7Cj4+PiAgIH0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFt X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwo+Pj4gaW5k ZXggYjljMGVhNzIwZWZkLi5mN2EwMjcxMjM5NzUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2dlbV92cmFtX2hlbHBlci5jCj4+PiBAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0cnVjdCBkcm1fZ2Vt X3ZyYW1fb2JqZWN0ICpkcm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvOwo+Pj4gICAgICAg ICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW07Cj4+PiAgICAgICAgICBzdHJ1Y3QgZHJtX3Zy YW1fbW0gKnZtbSA9IGRldi0+dnJhbV9tbTsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2Owo+Pj4gICAgICAg ICAgaW50IHJldDsKPj4+ICAgICAgICAgIHNpemVfdCBhY2Nfc2l6ZTsKPj4+Cj4+PiBAQCAtNTU1 LDcgKzU1NSw3IEBAIGludCBkcm1fZ2VtX3ZyYW1fZmlsbF9jcmVhdGVfZHVtYihzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGUsCj4+PiAgIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2ZpbGxfY3JlYXRl X2R1bWIpOwo+Pj4KPj4+ICAgLyoKPj4+IC0gKiBIZWxwZXJzIGZvciBzdHJ1Y3QgdHRtX2JvX2Ry aXZlcgo+Pj4gKyAqIEhlbHBlcnMgZm9yIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzCj4+PiAgICAq Lwo+Pj4KPj4+ICAgc3RhdGljIGJvb2wgZHJtX2lzX2dlbV92cmFtKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8pCj4+PiBAQCAtODg2LDcgKzg4Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3RfZnVuY3MgZHJtX2dlbV92cmFtX29iamVjdF9mdW5jcyA9IHsKPj4+ICAg ICogVFRNIFRUCj4+PiAgICAqLwo+Pj4KPj4+IC1zdGF0aWMgdm9pZCBib19kcml2ZXJfdHRtX3R0 X2Rlc3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0KQo+ Pj4gK3N0YXRpYyB2b2lkIGJvX2RyaXZlcl90dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHQpCj4+PiAgIHsKPj4+ICAgICAgICAgIHR0bV90dF9k ZXN0cm95X2NvbW1vbihiZGV2LCB0dCk7Cj4+PiAgICAgICAgICB0dG1fdHRfZmluaSh0dCk7Cj4+ PiBAQCAtOTQ3LDcgKzk0Nyw3IEBAIHN0YXRpYyB2b2lkIGJvX2RyaXZlcl9tb3ZlX25vdGlmeShz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgICAgICAgZHJtX2dlbV92cmFtX2Jv X2RyaXZlcl9tb3ZlX25vdGlmeShnYm8sIGV2aWN0LCBuZXdfbWVtKTsKPj4+ICAgfQo+Pj4KPj4+ IC1zdGF0aWMgaW50IGJvX2RyaXZlcl9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwKPj4+ICtzdGF0aWMgaW50IGJvX2RyaXZlcl9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCBk cm1fdnJhbV9tbSAqdm1tID0gZHJtX3ZyYW1fbW1fb2ZfYmRldihiZGV2KTsKPj4+IEBAIC05Njcs NyArOTY3LDcgQEAgc3RhdGljIGludCBib19kcml2ZXJfaW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICByZXR1cm4gMDsKPj4+ICAgfQo+Pj4KPj4+ IC1zdGF0aWMgc3RydWN0IHR0bV9ib19kcml2ZXIgYm9fZHJpdmVyID0gewo+Pj4gK3N0YXRpYyBz dHJ1Y3QgdHRtX2RldmljZV9mdW5jcyBib19kcml2ZXIgPSB7Cj4+PiAgICAgICAgICAudHRtX3R0 X2NyZWF0ZSA9IGJvX2RyaXZlcl90dG1fdHRfY3JlYXRlLAo+Pj4gICAgICAgICAgLnR0bV90dF9k ZXN0cm95ID0gYm9fZHJpdmVyX3R0bV90dF9kZXN0cm95LAo+Pj4gICAgICAgICAgLmV2aWN0aW9u X3ZhbHVhYmxlID0gdHRtX2JvX2V2aWN0aW9uX3ZhbHVhYmxlLAo+Pj4gQEAgLTEwMTcsNyArMTAx Nyw3IEBAIHN0YXRpYyBpbnQgZHJtX3ZyYW1fbW1faW5pdChzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZt bSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+ICAgICAgICAgIHZtbS0+dnJhbV9iYXNlID0g dnJhbV9iYXNlOwo+Pj4gICAgICAgICAgdm1tLT52cmFtX3NpemUgPSB2cmFtX3NpemU7Cj4+Pgo+ Pj4gLSAgICAgICByZXQgPSB0dG1fYm9fZGV2aWNlX2luaXQoJnZtbS0+YmRldiwgJmJvX2RyaXZl ciwKPj4+ICsgICAgICAgcmV0ID0gdHRtX2RldmljZV9pbml0KCZ2bW0tPmJkZXYsICZib19kcml2 ZXIsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5hbm9uX2lub2Rl LT5pX21hcHBpbmcsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT52 bWFfb2Zmc2V0X21hbmFnZXIsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dHJ1ZSk7Cj4+PiBAQCAtMTAzNSw3ICsxMDM1LDcgQEAgc3RhdGljIGludCBkcm1fdnJhbV9tbV9p bml0KHN0cnVjdCBkcm1fdnJhbV9tbSAqdm1tLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Pj4g ICBzdGF0aWMgdm9pZCBkcm1fdnJhbV9tbV9jbGVhbnVwKHN0cnVjdCBkcm1fdnJhbV9tbSAqdm1t KQo+Pj4gICB7Cj4+PiAgICAgICAgICB0dG1fcmFuZ2VfbWFuX2ZpbmkoJnZtbS0+YmRldiwgVFRN X1BMX1ZSQU0pOwo+Pj4gLSAgICAgICB0dG1fYm9fZGV2aWNlX3JlbGVhc2UoJnZtbS0+YmRldik7 Cj4+PiArICAgICAgIHR0bV9kZXZpY2VfcmVsZWFzZSgmdm1tLT5iZGV2KTsKPj4+ICAgfQo+Pj4K Pj4+ICAgLyoKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4+IGluZGV4IGIz N2RmZDEyYzdiOS4uOTEyYmMzMjA0YzRlIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9iby5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2JvLmMKPj4+IEBAIC00NCw3ICs0NCw3IEBACj4+PiAgICNpbmNsdWRlIDxudmlmL2lm NTAwYi5oPgo+Pj4gICAjaW5jbHVkZSA8bnZpZi9pZjkwMGIuaD4KPj4+Cj4+PiAtc3RhdGljIGlu dCBub3V2ZWF1X3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3Qg dHRtX3R0ICp0dG0sCj4+PiArc3RhdGljIGludCBub3V2ZWF1X3R0bV90dF9iaW5kKHN0cnVjdCB0 dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZyk7Cj4+Pgo+Pj4gICAvKgo+ Pj4gQEAgLTY3NCw3ICs2NzQsNyBAQCBub3V2ZWF1X3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywgdWludDMyX3QgcGFnZV9mbGFncykKPj4+ICAgfQo+Pj4KPj4+ICAg c3RhdGljIGludAo+Pj4gLW5vdXZlYXVfdHRtX3R0X2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4+ICtub3V2ZWF1X3R0bV90dF9iaW5kKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+PiAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4+PiAgIHsKPj4+ICAgI2lmIElTX0VO QUJMRUQoQ09ORklHX0FHUCkKPj4+IEBAIC02OTAsNyArNjkwLDcgQEAgbm91dmVhdV90dG1fdHRf YmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtLAo+Pj4g ICB9Cj4+Pgo+Pj4gICBzdGF0aWMgdm9pZAo+Pj4gLW5vdXZlYXVfdHRtX3R0X3VuYmluZChzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gK25vdXZlYXVf dHRtX3R0X3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRt KQo+Pj4gICB7Cj4+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCj4+PiAgICAgICAgICBz dHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfYmRldihiZGV2KTsKPj4+IEBAIC0xMTAx LDcgKzExMDEsNyBAQCBub3V2ZWF1X3R0bV9pb19tZW1fZnJlZV9sb2NrZWQoc3RydWN0IG5vdXZl YXVfZHJtICpkcm0sCj4+PiAgIH0KPj4+Cj4+PiAgIHN0YXRpYyBpbnQKPj4+IC1ub3V2ZWF1X3R0 bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9y ZXNvdXJjZSAqcmVnKQo+Pj4gK25vdXZlYXVfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1f ZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4+PiAgIHsKPj4+ICAgICAg ICAgIHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9iZGV2KGJkZXYpOwo+Pj4gICAg ICAgICAgc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSBudnh4X2RldmljZSgmZHJtLT5jbGll bnQuZGV2aWNlKTsKPj4+IEBAIC0xMjEwLDcgKzEyMTAsNyBAQCBub3V2ZWF1X3R0bV9pb19tZW1f cmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAq cmVnKQo+Pj4gICB9Cj4+Pgo+Pj4gICBzdGF0aWMgdm9pZAo+Pj4gLW5vdXZlYXVfdHRtX2lvX21l bV9mcmVlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpy ZWcpCj4+PiArbm91dmVhdV90dG1faW9fbWVtX2ZyZWUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYs IHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZykKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0IG5v dXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2JkZXYoYmRldik7Cj4+Pgo+Pj4gQEAgLTEyNzAsNyAr MTI3MCw3IEBAIHZtX2ZhdWx0X3Qgbm91dmVhdV90dG1fZmF1bHRfcmVzZXJ2ZV9ub3RpZnkoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4+ICAgfQo+Pj4KPj4+ICAgc3RhdGljIGludAo+ Pj4gLW5vdXZlYXVfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ Pj4gK25vdXZlYXVfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4ICpjdHgpCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fZG1hX3R0 ICp0dG1fZG1hID0gKHZvaWQgKil0dG07Cj4+PiBAQCAtMTMwNyw3ICsxMzA3LDcgQEAgbm91dmVh dV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgIH0KPj4+ Cj4+PiAgIHN0YXRpYyB2b2lkCj4+PiAtbm91dmVhdV90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtub3V2ZWF1X3R0bV90dF91bnBvcHVsYXRlKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR0bV90dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3QgdHRtX2RtYV90dCAqdHRt X2RtYSA9ICh2b2lkICopdHRtOwo+Pj4gQEAgLTEzMzksNyArMTMzOSw3IEBAIG5vdXZlYXVfdHRt X3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgIH0KPj4+Cj4+ PiAgIHN0YXRpYyB2b2lkCj4+PiAtbm91dmVhdV90dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKPj4+ICtub3V2ZWF1X3R0bV90dF9kZXN0cm95KHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRt KQo+Pj4gICB7Cj4+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCj4+PiBAQCAtMTM2NSw3 ICsxMzY1LDcgQEAgbm91dmVhdV9ib19mZW5jZShzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywgc3Ry dWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlLCBib29sIGV4Y2wKPj4+ICAgICAgICAgICAgICAgICAg ZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShyZXN2LCAmZmVuY2UtPmJhc2UpOwo+Pj4gICB9Cj4+ Pgo+Pj4gLXN0cnVjdCB0dG1fYm9fZHJpdmVyIG5vdXZlYXVfYm9fZHJpdmVyID0gewo+Pj4gK3N0 cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIG5vdXZlYXVfYm9fZHJpdmVyID0gewo+Pj4gICAgICAgICAg LnR0bV90dF9jcmVhdGUgPSAmbm91dmVhdV90dG1fdHRfY3JlYXRlLAo+Pj4gICAgICAgICAgLnR0 bV90dF9wb3B1bGF0ZSA9ICZub3V2ZWF1X3R0bV90dF9wb3B1bGF0ZSwKPj4+ICAgICAgICAgIC50 dG1fdHRfdW5wb3B1bGF0ZSA9ICZub3V2ZWF1X3R0bV90dF91bnBvcHVsYXRlLAo+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaCBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaAo+Pj4gaW5kZXggNjQxZWY2Mjk4YTBlLi4yZmVlN2Q1 MGVmMDkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jv LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaAo+Pj4gQEAg LTcwLDcgKzcwLDcgQEAgbm91dmVhdV9ib19yZWYoc3RydWN0IG5vdXZlYXVfYm8gKnJlZiwgc3Ry dWN0IG5vdXZlYXVfYm8gKipwbnZibykKPj4+ICAgICAgICAgIHJldHVybiAwOwo+Pj4gICB9Cj4+ Pgo+Pj4gLWV4dGVybiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBub3V2ZWF1X2JvX2RyaXZlcjsKPj4+ ICtleHRlcm4gc3RydWN0IHR0bV9kZXZpY2VfZnVuY3Mgbm91dmVhdV9ib19kcml2ZXI7Cj4+Pgo+ Pj4gICB2b2lkIG5vdXZlYXVfYm9fbW92ZV9pbml0KHN0cnVjdCBub3V2ZWF1X2RybSAqKTsKPj4+ ICAgc3RydWN0IG5vdXZlYXVfYm8gKm5vdXZlYXVfYm9fYWxsb2Moc3RydWN0IG5vdXZlYXVfY2xp ICosIHU2NCAqc2l6ZSwgaW50ICphbGlnbiwKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9kcnYuaAo+Pj4gaW5kZXggYjgwMjU1MDdhOWU0Li4wY2RlMTYyMTFlNDAgMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4+PiBAQCAtMTUzLDcgKzE1Myw3IEBA IHN0cnVjdCBub3V2ZWF1X2RybSB7Cj4+Pgo+Pj4gICAgICAgICAgLyogVFRNIGludGVyZmFjZSBz dXBwb3J0ICovCj4+PiAgICAgICAgICBzdHJ1Y3Qgewo+Pj4gLSAgICAgICAgICAgICAgIHN0cnVj dCB0dG1fYm9fZGV2aWNlIGJkZXY7Cj4+PiArICAgICAgICAgICAgICAgc3RydWN0IHR0bV9kZXZp Y2UgYmRldjsKPj4+ICAgICAgICAgICAgICAgICAgYXRvbWljX3QgdmFsaWRhdGVfc2VxdWVuY2U7 Cj4+PiAgICAgICAgICAgICAgICAgIGludCAoKm1vdmUpKHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwg KiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICosCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9z Z2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zZ2RtYS5jCj4+PiBpbmRl eCBjZDZmZGViYWU3OTUuLjA0MDBiYjQzZmFjNSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfc2dkbWEuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9zZ2RtYS5jCj4+PiBAQCAtMTYsNyArMTYsNyBAQCBzdHJ1Y3Qgbm91dmVh dV9zZ2RtYV9iZSB7Cj4+PiAgIH07Cj4+Pgo+Pj4gICB2b2lkCj4+PiAtbm91dmVhdV9zZ2RtYV9k ZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ PiArbm91dmVhdV9zZ2RtYV9kZXN0cm95KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3Qg dHRtX3R0ICp0dG0pCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X3NnZG1hX2Jl ICpudmJlID0gKHN0cnVjdCBub3V2ZWF1X3NnZG1hX2JlICopdHRtOwo+Pj4KPj4+IEBAIC0yOSw3 ICsyOSw3IEBAIG5vdXZlYXVfc2dkbWFfZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB9Cj4+Pgo+Pj4gICBpbnQKPj4+IC1ub3V2ZWF1 X3NnZG1hX2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0 bSwgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnKQo+Pj4gK25vdXZlYXVfc2dkbWFfYmluZChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291 cmNlICpyZWcpCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X3NnZG1hX2JlICpu dmJlID0gKHN0cnVjdCBub3V2ZWF1X3NnZG1hX2JlICopdHRtOwo+Pj4gICAgICAgICAgc3RydWN0 IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2JkZXYoYmRldik7Cj4+PiBAQCAtNTYsNyArNTYs NyBAQCBub3V2ZWF1X3NnZG1hX2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVj dCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9yZQo+Pj4gICB9Cj4+Pgo+Pj4gICB2b2lkCj4+PiAt bm91dmVhdV9zZ2RtYV91bmJpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fdHQgKnR0bSkKPj4+ICtub3V2ZWF1X3NnZG1hX3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3Qgbm91 dmVhdV9zZ2RtYV9iZSAqbnZiZSA9IChzdHJ1Y3Qgbm91dmVhdV9zZ2RtYV9iZSAqKXR0bTsKPj4+ ICAgICAgICAgIGlmIChudmJlLT5tZW0pIHsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV90dG0uYwo+Pj4gaW5kZXggZWRmM2JiODlhNDdmLi4yZmIxMjdkYTAyMDggMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jCj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jCj4+PiBAQCAtMzE1LDcgKzMxNSw3IEBA IG5vdXZlYXVfdHRtX2luaXQoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4+PiAgICAgICAgICAg ICAgICAgIGRybS0+YWdwLmNtYSA9IHBjaS0+YWdwLmNtYTsKPj4+ICAgICAgICAgIH0KPj4+Cj4+ PiAtICAgICAgIHJldCA9IHR0bV9ib19kZXZpY2VfaW5pdCgmZHJtLT50dG0uYmRldiwKPj4+ICsg ICAgICAgcmV0ID0gdHRtX2RldmljZV9pbml0KCZkcm0tPnR0bS5iZGV2LAo+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbm91dmVhdV9ib19kcml2ZXIsCj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPnZtYV9vZmZzZXRfbWFu YWdlciwKPj4+IEBAIC0zNjksNyArMzY5LDcgQEAgbm91dmVhdV90dG1fZmluaShzdHJ1Y3Qgbm91 dmVhdV9kcm0gKmRybSkKPj4+ICAgICAgICAgIG5vdXZlYXVfdHRtX2ZpbmlfdnJhbShkcm0pOwo+ Pj4gICAgICAgICAgbm91dmVhdV90dG1fZmluaV9ndHQoZHJtKTsKPj4+Cj4+PiAtICAgICAgIHR0 bV9ib19kZXZpY2VfcmVsZWFzZSgmZHJtLT50dG0uYmRldik7Cj4+PiArICAgICAgIHR0bV9kZXZp Y2VfcmVsZWFzZSgmZHJtLT50dG0uYmRldik7Cj4+Pgo+Pj4gICAgICAgICAgYXJjaF9waHlzX3dj X2RlbChkcm0tPnR0bS5tdHJyKTsKPj4+ICAgICAgICAgIGRybS0+dHRtLm10cnIgPSAwOwo+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmggYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5oCj4+PiBpbmRleCA2OTU1MjA0OWJiOTYu LmRiZjZkYzIzOGVmZCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfdHRtLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRt LmgKPj4+IEBAIC0zLDcgKzMsNyBAQAo+Pj4gICAjZGVmaW5lIF9fTk9VVkVBVV9UVE1fSF9fCj4+ Pgo+Pj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCBub3V2ZWF1X2RybSAqCj4+PiAtbm91dmVhdV9i ZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZCkKPj4+ICtub3V2ZWF1X2JkZXYoc3RydWN0IHR0 bV9kZXZpY2UgKmJkKQo+Pj4gICB7Cj4+PiAgICAgICAgICByZXR1cm4gY29udGFpbmVyX29mKGJk LCBzdHJ1Y3Qgbm91dmVhdV9kcm0sIHR0bS5iZGV2KTsKPj4+ICAgfQo+Pj4gQEAgLTIyLDcgKzIy LDcgQEAgaW50ICBub3V2ZWF1X3R0bV9tbWFwKHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqKTsKPj4+ICAgaW50ICBub3V2ZWF1X3R0bV9nbG9iYWxfaW5pdChzdHJ1Y3Qgbm91 dmVhdV9kcm0gKik7Cj4+PiAgIHZvaWQgbm91dmVhdV90dG1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0 IG5vdXZlYXVfZHJtICopOwo+Pj4KPj4+IC1pbnQgbm91dmVhdV9zZ2RtYV9iaW5kKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgKnJlZyk7Cj4+PiAtdm9pZCBub3V2ZWF1X3NnZG1hX3VuYmluZChzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+IC12b2lkIG5vdXZlYXVfc2dkbWFf ZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsK Pj4+ICtpbnQgbm91dmVhdV9zZ2RtYV9iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1 Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZyk7Cj4+PiArdm9pZCBub3V2 ZWF1X3NnZG1hX3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAq dHRtKTsKPj4+ICt2b2lkIG5vdXZlYXVfc2dkbWFfZGVzdHJveShzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+ICAgI2VuZGlmCj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9k cnYuaAo+Pj4gaW5kZXggMzYwMmU4YjM0MTg5Li43OGMwOTY5ZTA0MDMgMTAwNjQ0Cj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfZHJ2LmgKPj4+IEBAIC0xMjMsNyArMTIzLDcgQEAgc3RydWN0IHF4bF9vdXRwdXQg ewo+Pj4gICAjZGVmaW5lIGRybV9lbmNvZGVyX3RvX3F4bF9vdXRwdXQoeCkgY29udGFpbmVyX29m KHgsIHN0cnVjdCBxeGxfb3V0cHV0LCBlbmMpCj4+Pgo+Pj4gICBzdHJ1Y3QgcXhsX21tYW4gewo+ Pj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAgICAgICAgICAgIGJkZXY7Cj4+PiArICAg ICAgIHN0cnVjdCB0dG1fZGV2aWNlICAgICAgICAgICAgICAgYmRldjsKPj4+ICAgfTsKPj4+Cj4+ PiAgIHN0cnVjdCBxeGxfbWVtc2xvdCB7Cj4+PiBAQCAtMzQ4LDcgKzM0OCw3IEBAIGludCBxeGxf bW9kZV9kdW1iX21tYXAoc3RydWN0IGRybV9maWxlICpmaWxwLAo+Pj4gICAvKiBxeGwgdHRtICov Cj4+PiAgIGludCBxeGxfdHRtX2luaXQoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYpOwo+Pj4gICB2 b2lkIHF4bF90dG1fZmluaShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldik7Cj4+PiAtaW50IHF4bF90 dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAraW50IHF4 bF90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPj4+Cj4+PiAg IC8qIHF4bCBpbWFnZSAqLwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X3JlbGVhc2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYwo+Pj4gaW5kZXgg ZTc1ZTM2NDY1NWI4Li45YTkwZjRlMzNmMDggMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vcXhsL3F4bF9yZWxlYXNlLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3Jl bGVhc2UuYwo+Pj4gQEAgLTQyOSw3ICs0MjksNyBAQCB2b2lkIHF4bF9yZWxlYXNlX3VubWFwKHN0 cnVjdCBxeGxfZGV2aWNlICpxZGV2LAo+Pj4gICB2b2lkIHF4bF9yZWxlYXNlX2ZlbmNlX2J1ZmZl cl9vYmplY3RzKHN0cnVjdCBxeGxfcmVsZWFzZSAqcmVsZWFzZSkKPj4+ICAgewo+Pj4gICAgICAg ICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2Owo+Pj4g ICAgICAgICAgc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgKmVudHJ5Owo+Pj4gICAgICAgICAg c3RydWN0IHF4bF9kZXZpY2UgKnFkZXY7Cj4+Pgo+Pj4gQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lk IHF4bF9yZWxlYXNlX2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBxeGxfcmVsZWFzZSAqcmVs ZWFzZSkKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGVhc2UtPmlkIHwgMHhmMDAwMDAw MCwgcmVsZWFzZS0+YmFzZS5zZXFubyk7Cj4+PiAgICAgICAgICB0cmFjZV9kbWFfZmVuY2VfZW1p dCgmcmVsZWFzZS0+YmFzZSk7Cj4+Pgo+Pj4gLSAgICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9i LmxydV9sb2NrKTsKPj4+ICsgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ Pgo+Pj4gICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJnJlbGVhc2UtPmJvcywg aGVhZCkgewo+Pj4gICAgICAgICAgICAgICAgICBibyA9IGVudHJ5LT5ibzsKPj4+IEBAIC00NTks NyArNDU5LDcgQEAgdm9pZCBxeGxfcmVsZWFzZV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qg cXhsX3JlbGVhc2UgKnJlbGVhc2UpCj4+PiAgICAgICAgICAgICAgICAgIHR0bV9ib19tb3ZlX3Rv X2xydV90YWlsKGJvLCBOVUxMKTsKPj4+ICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2Nr KGJvLT5iYXNlLnJlc3YpOwo+Pj4gICAgICAgICAgfQo+Pj4gLSAgICAgICBzcGluX3VubG9jaygm dHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+Pj4gKyAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2Iu bHJ1X2xvY2spOwo+Pj4gICAgICAgICAgd3dfYWNxdWlyZV9maW5pKCZyZWxlYXNlLT50aWNrZXQp Owo+Pj4gICB9Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0 bS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPj4+IGluZGV4IGQ1MzVlODM2YmU3 Mi4uOWI3MDdhZjdkZmQwIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf dHRtLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5jCj4+PiBAQCAtMzgs NyArMzgsNyBAQAo+Pj4gICAjaW5jbHVkZSAicXhsX2Rydi5oIgo+Pj4gICAjaW5jbHVkZSAicXhs X29iamVjdC5oIgo+Pj4KPj4+IC1zdGF0aWMgc3RydWN0IHF4bF9kZXZpY2UgKnF4bF9nZXRfcWRl dihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPj4+ICtzdGF0aWMgc3RydWN0IHF4bF9kZXZp Y2UgKnF4bF9nZXRfcWRldihzdHJ1Y3QgdHRtX2RldmljZSAqYmRldikKPj4+ICAgewo+Pj4gICAg ICAgICAgc3RydWN0IHF4bF9tbWFuICptbWFuOwo+Pj4gICAgICAgICAgc3RydWN0IHF4bF9kZXZp Y2UgKnFkZXY7Cj4+PiBAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgdm9pZCBxeGxfZXZpY3RfZmxh Z3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICAgICAgICpwbGFjZW1lbnQg PSBxYm8tPnBsYWNlbWVudDsKPj4+ICAgfQo+Pj4KPj4+IC1pbnQgcXhsX3R0bV9pb19tZW1fcmVz ZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtpbnQgcXhsX3R0bV9pb19tZW1f cmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0 cnVjdCBxeGxfZGV2aWNlICpxZGV2ID0gcXhsX2dldF9xZGV2KGJkZXYpOwo+Pj4gQEAgLTEwNiw3 ICsxMDYsNyBAQCBzdHJ1Y3QgcXhsX3R0bV90dCB7Cj4+PiAgICAgICAgICB1NjQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldDsKPj4+ICAgfTsKPj4+Cj4+PiAtc3RhdGljIGludCBx eGxfdHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0 aWMgaW50IHF4bF90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtLAo+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9f bWVtKQo+Pj4gICB7Cj4+PiBAQCAtMTIxLDEzICsxMjEsMTMgQEAgc3RhdGljIGludCBxeGxfdHRt X2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgIHJl dHVybiAtMTsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMgdm9pZCBxeGxfdHRtX2JhY2tlbmRfdW5i aW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK3N0YXRpYyB2b2lkIHF4bF90dG1f YmFja2VuZF91bmJpbmQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiAgIHsKPj4+ICAg ICAgICAgIC8qIE5vdCBpbXBsZW1lbnRlZCAqLwo+Pj4gICB9Cj4+Pgo+Pj4gLXN0YXRpYyB2b2lk IHF4bF90dG1fYmFja2VuZF9kZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4g K3N0YXRpYyB2b2lkIHF4bF90dG1fYmFja2VuZF9kZXN0cm95KHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f dHQgKnR0bSkKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0IHF4bF90dG1fdHQgKmd0dCA9ICh2 b2lkICopdHRtOwo+Pj4gQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMgdm9pZCBxeGxfYm9fbW92 ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICAgICAgICAgICAg ICAgcXhsX3N1cmZhY2VfZXZpY3QocWRldiwgcWJvLCBuZXdfbWVtID8gdHJ1ZSA6IGZhbHNlKTsK Pj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMgc3RydWN0IHR0bV9ib19kcml2ZXIgcXhsX2JvX2RyaXZl ciA9IHsKPj4+ICtzdGF0aWMgc3RydWN0IHR0bV9kZXZpY2VfZnVuY3MgcXhsX2JvX2RyaXZlciA9 IHsKPj4+ICAgICAgICAgIC50dG1fdHRfY3JlYXRlID0gJnF4bF90dG1fdHRfY3JlYXRlLAo+Pj4g ICAgICAgICAgLnR0bV90dF9iaW5kID0gJnF4bF90dG1fYmFja2VuZF9iaW5kLAo+Pj4gICAgICAg ICAgLnR0bV90dF9kZXN0cm95ID0gJnF4bF90dG1fYmFja2VuZF9kZXN0cm95LAo+Pj4gQEAgLTIx NCw3ICsyMTQsNyBAQCBpbnQgcXhsX3R0bV9pbml0KHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2KQo+ Pj4gICAgICAgICAgaW50IG51bV9pb19wYWdlczsgLyogIT0gcm9tLT5udW1faW9fcGFnZXMsIHdl IGluY2x1ZGUgc3VyZmFjZTAgKi8KPj4+Cj4+PiAgICAgICAgICAvKiBObyBvdGhlcnMgdXNlciBv ZiBhZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCj4+PiAtICAgICAgIHIgPSB0dG1fYm9f ZGV2aWNlX2luaXQoJnFkZXYtPm1tYW4uYmRldiwKPj4+ICsgICAgICAgciA9IHR0bV9kZXZpY2Vf aW5pdCgmcWRldi0+bW1hbi5iZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmcXhsX2JvX2RyaXZlciwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRl di0+ZGRldi5hbm9uX2lub2RlLT5pX21hcHBpbmcsCj4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHFkZXYtPmRkZXYudm1hX29mZnNldF9tYW5hZ2VyLAo+Pj4gQEAgLTI0OSw3ICsy NDksNyBAQCB2b2lkIHF4bF90dG1fZmluaShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldikKPj4+ICAg ewo+Pj4gICAgICAgICAgdHRtX3JhbmdlX21hbl9maW5pKCZxZGV2LT5tbWFuLmJkZXYsIFRUTV9Q TF9WUkFNKTsKPj4+ICAgICAgICAgIHR0bV9yYW5nZV9tYW5fZmluaSgmcWRldi0+bW1hbi5iZGV2 LCBUVE1fUExfUFJJVik7Cj4+PiAtICAgICAgIHR0bV9ib19kZXZpY2VfcmVsZWFzZSgmcWRldi0+ bW1hbi5iZGV2KTsKPj4+ICsgICAgICAgdHRtX2RldmljZV9yZWxlYXNlKCZxZGV2LT5tbWFuLmJk ZXYpOwo+Pj4gICAgICAgICAgRFJNX0lORk8oInF4bDogdHRtIGZpbmFsaXplZFxuIik7Cj4+PiAg IH0KPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKPj4+IGluZGV4IDVkNTRiY2NlYmQ0ZC4u Nzc1NTc2NDcwZTc4IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b24uaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAo+Pj4gQEAgLTQ1 Miw3ICs0NTIsNyBAQCBzdHJ1Y3QgcmFkZW9uX3N1cmZhY2VfcmVnIHsKPj4+ICAgICogVFRNLgo+ Pj4gICAgKi8KPj4+ICAgc3RydWN0IHJhZGVvbl9tbWFuIHsKPj4+IC0gICAgICAgc3RydWN0IHR0 bV9ib19kZXZpY2UgICAgICAgICAgICBiZGV2Owo+Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2Rldmlj ZSAgICAgICAgICAgICAgIGJkZXY7Cj4+PiAgICAgICAgICBib29sICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluaXRpYWxpemVkOwo+Pj4KPj4+ICAgI2lmIGRlZmluZWQoQ09ORklHX0RFQlVH X0ZTKQo+Pj4gQEAgLTI4MTksNyArMjgxOSw3IEBAIGV4dGVybiBpbnQgcmFkZW9uX3R0bV90dF9z ZXRfdXNlcnB0cihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MpOwo+Pj4gICBleHRlcm4gYm9v bCByYWRlb25fdHRtX3R0X2hhc191c2VycHRyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBz dHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pj4gICBleHRlcm4gYm9vbCByYWRlb25fdHRtX3R0X2lzX3Jl YWRvbmx5KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+ Pj4gLWJvb2wgcmFkZW9uX3R0bV90dF9pc19ib3VuZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+ICtib29sIHJhZGVvbl90dG1fdHRfaXNfYm91bmQo c3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+PiAgIGV4dGVy biB2b2lkIHJhZGVvbl92cmFtX2xvY2F0aW9uKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBz dHJ1Y3QgcmFkZW9uX21jICptYywgdTY0IGJhc2UpOwo+Pj4gICBleHRlcm4gdm9pZCByYWRlb25f Z3R0X2xvY2F0aW9uKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX21j ICptYyk7Cj4+PiAgIGV4dGVybiBpbnQgcmFkZW9uX3Jlc3VtZV9rbXMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgYm9vbCByZXN1bWUsIGJvb2wgZmJjb24pOwo+Pj4gQEAgLTI4MjksNyArMjgyOSw3 IEBAIGV4dGVybiB2b2lkIHJhZGVvbl90dG1fc2V0X2FjdGl2ZV92cmFtX3NpemUoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsIHU2NCBzaXplCj4+PiAgIGV4dGVybiB2b2lkIHJhZGVvbl9wcm9n cmFtX3JlZ2lzdGVyX3NlcXVlbmNlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHUzMiAqcmVn aXN0ZXJzLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHUzMiBhcnJheV9zaXplKTsKPj4+IC1zdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmFkZW9u X2dldF9yZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KTsKPj4+ICtzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmFkZW9uX2dldF9yZGV2KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KTsKPj4+Cj4+ PiAgIC8qCj4+PiAgICAqIHZtCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwo+Pj4g aW5kZXggZDZmNDJmYmM4MWY0Li4zODM1Yzk0NTdjMDYgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fdHRtLmMKPj4+IEBAIC01NiwxMSArNTYsMTEgQEAKPj4+ICAgc3RhdGljIGlu dCByYWRlb25fdHRtX2RlYnVnZnNfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4+ PiAgIHN0YXRpYyB2b2lkIHJhZGVvbl90dG1fZGVidWdmc19maW5pKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KTsKPj4+Cj4+PiAtc3RhdGljIGludCByYWRlb25fdHRtX3R0X2JpbmQoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiArc3RhdGljIGludCByYWRlb25fdHRtX3R0X2JpbmQo c3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV90dCAqdHRtLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0dG1fcmVzb3VyY2UgKmJvX21lbSk7Cj4+Pgo+Pj4gLXN0cnVjdCByYWRlb25fZGV2 aWNlICpyYWRlb25fZ2V0X3JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCj4+PiArc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJhZGVvbl9nZXRfcmRldihzdHJ1Y3QgdHRtX2RldmljZSAqYmRl dikKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0IHJhZGVvbl9tbWFuICptbWFuOwo+Pj4gICAg ICAgICAgc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXY7Cj4+PiBAQCAtMzUxLDcgKzM1MSw3IEBA IHN0YXRpYyBpbnQgcmFkZW9uX2JvX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywg Ym9vbCBldmljdCwKPj4+ICAgICAgICAgIHJldHVybiAwOwo+Pj4gICB9Cj4+Pgo+Pj4gLXN0YXRp YyBpbnQgcmFkZW9uX3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+Pj4gK3N0YXRpYyBpbnQgcmFkZW9uX3R0bV9p b19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJj ZSAqbWVtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9 IHJhZGVvbl9nZXRfcmRldihiZGV2KTsKPj4+ICAgICAgICAgIHNpemVfdCBidXNfc2l6ZSA9IChz aXplX3QpbWVtLT5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4+IEBAIC00MTgsNyArNDE4LDcg QEAgc3RydWN0IHJhZGVvbl90dG1fdHQgewo+Pj4gICB9Owo+Pj4KPj4+ICAgLyogcHJlcGFyZSB0 aGUgc2cgdGFibGUgd2l0aCB0aGUgdXNlciBwYWdlcyAqLwo+Pj4gLXN0YXRpYyBpbnQgcmFkZW9u X3R0bV90dF9waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0 bV90dCAqdHRtKQo+Pj4gK3N0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9waW5fdXNlcnB0cihzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAg ICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldihiZGV2KTsK Pj4+ICAgICAgICAgIHN0cnVjdCByYWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKPj4+ IEBAIC00NzksNyArNDc5LDcgQEAgc3RhdGljIGludCByYWRlb25fdHRtX3R0X3Bpbl91c2VycHRy KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICoKPj4+ICAgICAgICAg IHJldHVybiByOwo+Pj4gICB9Cj4+Pgo+Pj4gLXN0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5w aW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRt KQo+Pj4gK3N0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5waW5fdXNlcnB0cihzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldihiZGV2KTsKPj4+ICAg ICAgICAgIHN0cnVjdCByYWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKPj4+IEBAIC01 MTUsNyArNTE1LDcgQEAgc3RhdGljIGJvb2wgcmFkZW9uX3R0bV9iYWNrZW5kX2lzX2JvdW5kKHN0 cnVjdCB0dG1fdHQgKnR0bSkKPj4+ICAgICAgICAgIHJldHVybiAoZ3R0LT5ib3VuZCk7Cj4+PiAg IH0KPj4+Cj4+PiAtc3RhdGljIGludCByYWRlb25fdHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMgaW50IHJhZGVvbl90dG1fYmFja2VuZF9iaW5k KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+Pj4gICB7Cj4+PiBAQCAt NTUxLDcgKzU1MSw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3R0bV9iYWNrZW5kX2JpbmQoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICByZXR1cm4gMDsKPj4+ICAgfQo+Pj4K Pj4+IC1zdGF0aWMgdm9pZCByYWRlb25fdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiArc3RhdGljIHZvaWQgcmFkZW9u X3R0bV9iYWNrZW5kX3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90 dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX3R0bV90dCAqZ3R0ID0g KHZvaWQgKil0dG07Cj4+PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJh ZGVvbl9nZXRfcmRldihiZGV2KTsKPj4+IEBAIC01NjYsNyArNTY2LDcgQEAgc3RhdGljIHZvaWQg cmFkZW9uX3R0bV9iYWNrZW5kX3VuYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3Ry dWN0IHR0bV90dAo+Pj4gICAgICAgICAgZ3R0LT5ib3VuZCA9IGZhbHNlOwo+Pj4gICB9Cj4+Pgo+ Pj4gLXN0YXRpYyB2b2lkIHJhZGVvbl90dG1fYmFja2VuZF9kZXN0cm95KHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiArc3RhdGljIHZvaWQgcmFkZW9u X3R0bV9iYWNrZW5kX2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f dHQgKnR0bSkKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0IHJhZGVvbl90dG1fdHQgKmd0dCA9 ICh2b2lkICopdHRtOwo+Pj4KPj4+IEBAIC02MjcsNyArNjI3LDcgQEAgc3RhdGljIHN0cnVjdCBy YWRlb25fdHRtX3R0ICpyYWRlb25fdHRtX3R0X3RvX2d0dChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwKPj4+ICAgICAgICAgIHJldHVybiBjb250YWluZXJfb2YodHRtLCBzdHJ1Y3QgcmFkZW9u X3R0bV90dCwgdHRtLnR0bSk7Cj4+PiAgIH0KPj4+Cj4+PiAtc3RhdGljIGludCByYWRlb25fdHRt X3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK3N0YXRpYyBpbnQg cmFkZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtLAo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHgg KmN0eCkKPj4+ICAgewo+Pj4gQEAgLTY2Nyw3ICs2NjcsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl90 dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICBy ZXR1cm4gdHRtX3BvcHVsYXRlX2FuZF9tYXBfcGFnZXMocmRldi0+ZGV2LCAmZ3R0LT50dG0sIGN0 eCk7Cj4+PiAgIH0KPj4+Cj4+PiAtc3RhdGljIHZvaWQgcmFkZW9uX3R0bV90dF91bnBvcHVsYXRl KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiArc3Rh dGljIHZvaWQgcmFkZW9uX3R0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2ID0gcmFkZW9uX2dldF9yZGV2KGJkZXYpOwo+Pj4gICAgICAgICAgc3RydWN0 IHJhZGVvbl90dG1fdHQgKmd0dCA9IHJhZGVvbl90dG1fdHRfdG9fZ3R0KHJkZXYsIHR0bSk7Cj4+ PiBAQCAtNzE0LDcgKzcxNCw3IEBAIGludCByYWRlb25fdHRtX3R0X3NldF91c2VycHRyKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAo+Pj4gICAgICAgICAgcmV0dXJuIDA7Cj4+PiAgIH0KPj4+ Cj4+PiAtYm9vbCByYWRlb25fdHRtX3R0X2lzX2JvdW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LAo+Pj4gK2Jvb2wgcmFkZW9uX3R0bV90dF9pc19ib3VuZChzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRt KQo+Pj4gICB7Cj4+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCj4+PiBAQCAtNzI1LDcg KzcyNSw3IEBAIGJvb2wgcmFkZW9uX3R0bV90dF9pc19ib3VuZChzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwKPj4+ICAgICAgICAgIHJldHVybiByYWRlb25fdHRtX2JhY2tlbmRfaXNfYm91bmQo dHRtKTsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMgaW50IHJhZGVvbl90dG1fdHRfYmluZChzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMgaW50IHJhZGVvbl90dG1fdHRfYmlu ZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+Pj4gICB7Cj4+PiBAQCAtNzQzLDcgKzc0 Myw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+Pj4gICAgICAgICAgcmV0dXJuIHJhZGVvbl90dG1fYmFja2VuZF9iaW5kKGJkZXYs IHR0bSwgYm9fbWVtKTsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMgdm9pZCByYWRlb25fdHRtX3R0 X3VuYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMgdm9pZCByYWRl b25fdHRtX3R0X3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiAgIHsKPj4+ICAg I2lmIElTX0VOQUJMRUQoQ09ORklHX0FHUCkKPj4+IEBAIC03NTcsNyArNzU3LDcgQEAgc3RhdGlj IHZvaWQgcmFkZW9uX3R0bV90dF91bmJpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ PiAgICAgICAgICByYWRlb25fdHRtX2JhY2tlbmRfdW5iaW5kKGJkZXYsIHR0bSk7Cj4+PiAgIH0K Pj4+Cj4+PiAtc3RhdGljIHZvaWQgcmFkZW9uX3R0bV90dF9kZXN0cm95KHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+Pj4gK3N0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfZGVzdHJveShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJ R19BR1ApCj4+PiBAQCAtNzk1LDcgKzc5NSw3IEBAIGJvb2wgcmFkZW9uX3R0bV90dF9pc19yZWFk b25seShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPj4+ICAgICAgICAgIHJldHVybiAhIShn dHQtPnVzZXJmbGFncyAmIFJBREVPTl9HRU1fVVNFUlBUUl9SRUFET05MWSk7Cj4+PiAgIH0KPj4+ Cj4+PiAtc3RhdGljIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHJhZGVvbl9ib19kcml2ZXIgPSB7Cj4+ PiArc3RhdGljIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIHJhZGVvbl9ib19kcml2ZXIgPSB7Cj4+ PiAgICAgICAgICAudHRtX3R0X2NyZWF0ZSA9ICZyYWRlb25fdHRtX3R0X2NyZWF0ZSwKPj4+ICAg ICAgICAgIC50dG1fdHRfcG9wdWxhdGUgPSAmcmFkZW9uX3R0bV90dF9wb3B1bGF0ZSwKPj4+ICAg ICAgICAgIC50dG1fdHRfdW5wb3B1bGF0ZSA9ICZyYWRlb25fdHRtX3R0X3VucG9wdWxhdGUsCj4+ PiBAQCAtODE1LDcgKzgxNSw3IEBAIGludCByYWRlb25fdHRtX2luaXQoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpCj4+PiAgICAgICAgICBpbnQgcjsKPj4+Cj4+PiAgICAgICAgICAvKiBObyBv dGhlcnMgdXNlciBvZiBhZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCj4+PiAtICAgICAg IHIgPSB0dG1fYm9fZGV2aWNlX2luaXQoJnJkZXYtPm1tYW4uYmRldiwKPj4+ICsgICAgICAgciA9 IHR0bV9kZXZpY2VfaW5pdCgmcmRldi0+bW1hbi5iZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmcmFkZW9uX2JvX2RyaXZlciwKPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmRldi0+ZGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAo+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZGV2LT5kZGV2LT52bWFfb2Zmc2V0X21hbmFnZXIs Cj4+PiBAQCAtODg1LDcgKzg4NSw3IEBAIHZvaWQgcmFkZW9uX3R0bV9maW5pKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2KQo+Pj4gICAgICAgICAgfQo+Pj4gICAgICAgICAgdHRtX3JhbmdlX21h bl9maW5pKCZyZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPj4+ICAgICAgICAgIHR0bV9y YW5nZV9tYW5fZmluaSgmcmRldi0+bW1hbi5iZGV2LCBUVE1fUExfVFQpOwo+Pj4gLSAgICAgICB0 dG1fYm9fZGV2aWNlX3JlbGVhc2UoJnJkZXYtPm1tYW4uYmRldik7Cj4+PiArICAgICAgIHR0bV9k ZXZpY2VfcmVsZWFzZSgmcmRldi0+bW1hbi5iZGV2KTsKPj4+ICAgICAgICAgIHJhZGVvbl9nYXJ0 X2ZpbmkocmRldik7Cj4+PiAgICAgICAgICByZGV2LT5tbWFuLmluaXRpYWxpemVkID0gZmFsc2U7 Cj4+PiAgICAgICAgICBEUk1fSU5GTygicmFkZW9uOiB0dG0gZmluYWxpemVkXG4iKTsKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJt L3R0bS9NYWtlZmlsZQo+Pj4gaW5kZXggOTBjMGRhODhjYzk4Li43YTQ3NGU4OGQ0N2UgMTAwNjQ0 Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlCj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL01ha2VmaWxlCj4+PiBAQCAtNSw3ICs1LDcgQEAKPj4+ICAgdHRtLXkgOj0g dHRtX21lbW9yeS5vIHR0bV90dC5vIHR0bV9iby5vIFwKPj4+ICAgICAgICAgIHR0bV9ib191dGls Lm8gdHRtX2JvX3ZtLm8gdHRtX21vZHVsZS5vIFwKPj4+ICAgICAgICAgIHR0bV9leGVjYnVmX3V0 aWwubyB0dG1fcGFnZV9hbGxvYy5vIHR0bV9yYW5nZV9tYW5hZ2VyLm8gXAo+Pj4gLSAgICAgICB0 dG1fcmVzb3VyY2Uubwo+Pj4gKyAgICAgICB0dG1fcmVzb3VyY2UubyB0dG1fZGV2aWNlLm8KPj4+ ICAgdHRtLSQoQ09ORklHX0FHUCkgKz0gdHRtX2FncF9iYWNrZW5kLm8KPj4+ICAgdHRtLSQoQ09O RklHX0RSTV9UVE1fRE1BX1BBR0VfUE9PTCkgKz0gdHRtX3BhZ2VfYWxsb2NfZG1hLm8KPj4+Cj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2FncF9iYWNrZW5kLmMKPj4+IGluZGV4IDRmNzZjOTI4NzE1 OS4uYjM4MmQ5MTQxNGExIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f YWdwX2JhY2tlbmQuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tl bmQuYwo+Pj4gQEAgLTUxLDcgKzUxLDcgQEAgc3RydWN0IHR0bV9hZ3BfYmFja2VuZCB7Cj4+PiAg IGludCB0dG1fYWdwX2JpbmQoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNl ICpib19tZW0pCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fYWdwX2JhY2tlbmQgKmFn cF9iZSA9IGNvbnRhaW5lcl9vZih0dG0sIHN0cnVjdCB0dG1fYWdwX2JhY2tlbmQsIHR0bSk7Cj4+ PiAtICAgICAgIHN0cnVjdCBwYWdlICpkdW1teV9yZWFkX3BhZ2UgPSB0dG1fYm9fZ2xvYi5kdW1t eV9yZWFkX3BhZ2U7Cj4+PiArICAgICAgIHN0cnVjdCBwYWdlICpkdW1teV9yZWFkX3BhZ2UgPSB0 dG1fZ2xvYi5kdW1teV9yZWFkX3BhZ2U7Cj4+PiAgICAgICAgICBzdHJ1Y3QgZHJtX21tX25vZGUg Km5vZGUgPSBib19tZW0tPm1tX25vZGU7Cj4+PiAgICAgICAgICBzdHJ1Y3QgYWdwX21lbW9yeSAq bWVtOwo+Pj4gICAgICAgICAgaW50IHJldCwgY2FjaGVkID0gdHRtLT5jYWNoaW5nID09IHR0bV9j YWNoZWQ7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4+IGluZGV4IDJmZTRjYmVmZGUyOC4uNDBkMWFj OTFjOWJmIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+Pj4gQEAgLTQzLDIxICs0Myw2IEBA Cj4+PiAgICNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KPj4+ICAgI2luY2x1ZGUgPGxpbnV4L2Rt YS1yZXN2Lmg+Cj4+Pgo+Pj4gLXN0YXRpYyB2b2lkIHR0bV9ib19nbG9iYWxfa29ial9yZWxlYXNl KHN0cnVjdCBrb2JqZWN0ICprb2JqKTsKPj4+IC0KPj4+IC0vKioKPj4+IC0gKiB0dG1fZ2xvYmFs X211dGV4IC0gcHJvdGVjdGluZyB0aGUgZ2xvYmFsIEJPIHN0YXRlCj4+PiAtICovCj4+PiAtREVG SU5FX01VVEVYKHR0bV9nbG9iYWxfbXV0ZXgpOwo+Pj4gLXVuc2lnbmVkIHR0bV9ib19nbG9iX3Vz ZV9jb3VudDsKPj4+IC1zdHJ1Y3QgdHRtX2JvX2dsb2JhbCB0dG1fYm9fZ2xvYjsKPj4+IC1FWFBP UlRfU1lNQk9MKHR0bV9ib19nbG9iKTsKPj4+IC0KPj4+IC1zdGF0aWMgc3RydWN0IGF0dHJpYnV0 ZSB0dG1fYm9fY291bnQgPSB7Cj4+PiAtICAgICAgIC5uYW1lID0gImJvX2NvdW50IiwKPj4+IC0g ICAgICAgLm1vZGUgPSBTX0lSVUdPCj4+PiAtfTsKPj4+IC0KPj4+ICAgLyogZGVmYXVsdCBkZXN0 cnVjdG9yICovCj4+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19kZWZhdWx0X2Rlc3Ryb3koc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4+ICAgewo+Pj4gQEAgLTgzLDM2ICs2OCwxMCBAQCBz dGF0aWMgdm9pZCB0dG1fYm9fbWVtX3NwYWNlX2RlYnVnKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4+PiAgICAgICAgICB9Cj4+PiAgIH0KPj4+Cj4+PiAtc3RhdGljIHNzaXplX3QgdHRt X2JvX2dsb2JhbF9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAo+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCj4+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqYnVmZmVyKQo+Pj4gLXsKPj4+IC0gICAgICAg c3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPQo+Pj4gLSAgICAgICAgICAgICAgIGNvbnRhaW5l cl9vZihrb2JqLCBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCwga29iaik7Cj4+PiAtCj4+PiAtICAgICAg IHJldHVybiBzbnByaW50ZihidWZmZXIsIFBBR0VfU0laRSwgIiVkXG4iLAo+Pj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhdG9taWNfcmVhZCgmZ2xvYi0+Ym9fY291bnQpKTsKPj4+ IC19Cj4+PiAtCj4+PiAtc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnR0bV9ib19nbG9iYWxfYXR0 cnNbXSA9IHsKPj4+IC0gICAgICAgJnR0bV9ib19jb3VudCwKPj4+IC0gICAgICAgTlVMTAo+Pj4g LX07Cj4+PiAtCj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNmc19vcHMgdHRtX2JvX2dsb2Jh bF9vcHMgPSB7Cj4+PiAtICAgICAgIC5zaG93ID0gJnR0bV9ib19nbG9iYWxfc2hvdwo+Pj4gLX07 Cj4+PiAtCj4+PiAtc3RhdGljIHN0cnVjdCBrb2JqX3R5cGUgdHRtX2JvX2dsb2Jfa29ial90eXBl ICA9IHsKPj4+IC0gICAgICAgLnJlbGVhc2UgPSAmdHRtX2JvX2dsb2JhbF9rb2JqX3JlbGVhc2Us Cj4+PiAtICAgICAgIC5zeXNmc19vcHMgPSAmdHRtX2JvX2dsb2JhbF9vcHMsCj4+PiAtICAgICAg IC5kZWZhdWx0X2F0dHJzID0gdHRtX2JvX2dsb2JhbF9hdHRycwo+Pj4gLX07Cj4+PiAtCj4+PiAg IHN0YXRpYyB2b2lkIHR0bV9ib19hZGRfbWVtX3RvX2xydShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X3Jlc291cmNlICptZW0pCj4+PiAgIHsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYgPSBiby0+YmRldjsKPj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBi by0+YmRldjsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ Pj4KPj4+ICAgICAgICAgIGlmICghbGlzdF9lbXB0eSgmYm8tPmxydSkgfHwgYm8tPnBpbl9jb3Vu dCkKPj4+IEBAIC0xMjQsMTMgKzgzLDEzIEBAIHN0YXRpYyB2b2lkIHR0bV9ib19hZGRfbWVtX3Rv X2xydShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgICAgICAgaWYgKG1hbi0+ dXNlX3R0ICYmIGJvLT50dG0gJiYKPj4+ICAgICAgICAgICAgICAhKGJvLT50dG0tPnBhZ2VfZmxh Z3MgJiAoVFRNX1BBR0VfRkxBR19TRyB8Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRUTV9QQUdFX0ZMQUdfU1dBUFBFRCkpKSB7Cj4+PiAtICAgICAgICAgICAgICAg bGlzdF9hZGRfdGFpbCgmYm8tPnN3YXAsICZ0dG1fYm9fZ2xvYi5zd2FwX2xydVtiby0+cHJpb3Jp dHldKTsKPj4+ICsgICAgICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZiby0+c3dhcCwgJnR0bV9n bG9iLnN3YXBfbHJ1W2JvLT5wcmlvcml0eV0pOwo+Pj4gICAgICAgICAgfQo+Pj4gICB9Cj4+Pgo+ Pj4gICBzdGF0aWMgdm9pZCB0dG1fYm9fZGVsX2Zyb21fbHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8pCj4+PiAgIHsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYg PSBiby0+YmRldjsKPj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRl djsKPj4+ICAgICAgICAgIGJvb2wgbm90aWZ5ID0gZmFsc2U7Cj4+Pgo+Pj4gICAgICAgICAgaWYg KCFsaXN0X2VtcHR5KCZiby0+c3dhcCkpIHsKPj4+IEBAIC0xNDIsOCArMTAxLDggQEAgc3RhdGlj IHZvaWQgdHRtX2JvX2RlbF9mcm9tX2xydShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+ Pj4gICAgICAgICAgICAgICAgICBub3RpZnkgPSB0cnVlOwo+Pj4gICAgICAgICAgfQo+Pj4KPj4+ IC0gICAgICAgaWYgKG5vdGlmeSAmJiBiZGV2LT5kcml2ZXItPmRlbF9mcm9tX2xydV9ub3RpZnkp Cj4+PiAtICAgICAgICAgICAgICAgYmRldi0+ZHJpdmVyLT5kZWxfZnJvbV9scnVfbm90aWZ5KGJv KTsKPj4+ICsgICAgICAgaWYgKG5vdGlmeSAmJiBiZGV2LT5mdW5jcy0+ZGVsX2Zyb21fbHJ1X25v dGlmeSkKPj4+ICsgICAgICAgICAgICAgICBiZGV2LT5mdW5jcy0+ZGVsX2Zyb21fbHJ1X25vdGlm eShibyk7Cj4+PiAgIH0KPj4+Cj4+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19idWxrX21vdmVfc2V0 X3BvcyhzdHJ1Y3QgdHRtX2xydV9idWxrX21vdmVfcG9zICpwb3MsCj4+PiBAQCAtMjIzLDcgKzE4 Miw3IEBAIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1Y3QgdHRtX2xydV9idWxr X21vdmUgKmJ1bGspCj4+PiAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X2Fzc2VydF9oZWxkKHBv cy0+Zmlyc3QtPmJhc2UucmVzdik7Cj4+PiAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X2Fzc2Vy dF9oZWxkKHBvcy0+bGFzdC0+YmFzZS5yZXN2KTsKPj4+Cj4+PiAtICAgICAgICAgICAgICAgbHJ1 ID0gJnR0bV9ib19nbG9iLnN3YXBfbHJ1W2ldOwo+Pj4gKyAgICAgICAgICAgICAgIGxydSA9ICZ0 dG1fZ2xvYi5zd2FwX2xydVtpXTsKPj4+ICAgICAgICAgICAgICAgICAgbGlzdF9idWxrX21vdmVf dGFpbChscnUsICZwb3MtPmZpcnN0LT5zd2FwLCAmcG9zLT5sYXN0LT5zd2FwKTsKPj4+ICAgICAg ICAgIH0KPj4+ICAgfQo+Pj4gQEAgLTIzMyw3ICsxOTIsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19o YW5kbGVfbW92ZV9tZW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLCBib29s IGV2aWN0LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X29wZXJhdGlvbl9jdHggKmN0eCkKPj4+ICAgewo+Pj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiA9IGJvLT5iZGV2Owo+Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diA9IGJvLT5iZGV2Owo+Pj4gICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICpv bGRfbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPj4+ICAg ICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbmV3X21hbiA9IHR0bV9tYW5hZ2Vy X3R5cGUoYmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4+PiAgICAgICAgICBpbnQgcmV0Owo+Pj4gQEAg LTI2Myw4ICsyMjIsOCBAQCBzdGF0aWMgaW50IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICAgICAgICAgICAgICAgfQo+Pj4gICAgICAg ICAgfQo+Pj4KPj4+IC0gICAgICAgaWYgKGJkZXYtPmRyaXZlci0+bW92ZV9ub3RpZnkpCj4+PiAt ICAgICAgICAgICAgICAgYmRldi0+ZHJpdmVyLT5tb3ZlX25vdGlmeShibywgZXZpY3QsIG1lbSk7 Cj4+PiArICAgICAgIGlmIChiZGV2LT5mdW5jcy0+bW92ZV9ub3RpZnkpCj4+PiArICAgICAgICAg ICAgICAgYmRldi0+ZnVuY3MtPm1vdmVfbm90aWZ5KGJvLCBldmljdCwgbWVtKTsKPj4+Cj4+PiAg ICAgICAgICBpZiAob2xkX21hbi0+dXNlX3R0ICYmIG5ld19tYW4tPnVzZV90dCkgewo+Pj4gICAg ICAgICAgICAgICAgICBpZiAoYm8tPm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfU1lTVEVNKSB7Cj4+ PiBAQCAtMjcyLDE2ICsyMzEsMTYgQEAgc3RhdGljIGludCB0dG1fYm9faGFuZGxlX21vdmVfbWVt KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0ID0gMDsKPj4+ICAgICAgICAgICAgICAgICAgfSBlbHNlCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0ID0gdHRtX2JvX21vdmVfdHRtKGJvLCBjdHgsIG1lbSk7Cj4+PiAtICAg ICAgIH0gZWxzZSBpZiAoYmRldi0+ZHJpdmVyLT5tb3ZlKSB7Cj4+PiAtICAgICAgICAgICAgICAg cmV0ID0gYmRldi0+ZHJpdmVyLT5tb3ZlKGJvLCBldmljdCwgY3R4LCBtZW0pOwo+Pj4gKyAgICAg ICB9IGVsc2UgaWYgKGJkZXYtPmZ1bmNzLT5tb3ZlKSB7Cj4+PiArICAgICAgICAgICAgICAgcmV0 ID0gYmRldi0+ZnVuY3MtPm1vdmUoYm8sIGV2aWN0LCBjdHgsIG1lbSk7Cj4+PiAgICAgICAgICB9 IGVsc2Ugewo+Pj4gICAgICAgICAgICAgICAgICByZXQgPSB0dG1fYm9fbW92ZV9tZW1jcHkoYm8s IGN0eCwgbWVtKTsKPj4+ICAgICAgICAgIH0KPj4+Cj4+PiAgICAgICAgICBpZiAocmV0KSB7Cj4+ PiAtICAgICAgICAgICAgICAgaWYgKGJkZXYtPmRyaXZlci0+bW92ZV9ub3RpZnkpIHsKPj4+ICsg ICAgICAgICAgICAgICBpZiAoYmRldi0+ZnVuY3MtPm1vdmVfbm90aWZ5KSB7Cj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgc3dhcCgqbWVtLCBiby0+bWVtKTsKPj4+IC0gICAgICAgICAgICAg ICAgICAgICAgIGJkZXYtPmRyaXZlci0+bW92ZV9ub3RpZnkoYm8sIGZhbHNlLCBtZW0pOwo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgYmRldi0+ZnVuY3MtPm1vdmVfbm90aWZ5KGJvLCBmYWxz ZSwgbWVtKTsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBzd2FwKCptZW0sIGJvLT5tZW0p Owo+Pj4gICAgICAgICAgICAgICAgICB9Cj4+Pgo+Pj4gQEAgLTMwOSw4ICsyNjgsOCBAQCBzdGF0 aWMgaW50IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKPj4+Cj4+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19jbGVhbnVwX21lbXR5cGVfdXNlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+PiAgIHsKPj4+IC0gICAgICAgaWYgKGJvLT5iZGV2 LT5kcml2ZXItPm1vdmVfbm90aWZ5KQo+Pj4gLSAgICAgICAgICAgICAgIGJvLT5iZGV2LT5kcml2 ZXItPm1vdmVfbm90aWZ5KGJvLCBmYWxzZSwgTlVMTCk7Cj4+PiArICAgICAgIGlmIChiby0+YmRl di0+ZnVuY3MtPm1vdmVfbm90aWZ5KQo+Pj4gKyAgICAgICAgICAgICAgIGJvLT5iZGV2LT5mdW5j cy0+bW92ZV9ub3RpZnkoYm8sIGZhbHNlLCBOVUxMKTsKPj4+Cj4+PiAgICAgICAgICB0dG1fYm9f dHRfZGVzdHJveShibyk7Cj4+PiAgICAgICAgICB0dG1fcmVzb3VyY2VfZnJlZShibywgJmJvLT5t ZW0pOwo+Pj4gQEAgLTMzNSw5ICsyOTQsOSBAQCBzdGF0aWMgaW50IHR0bV9ib19pbmRpdmlkdWFs aXplX3Jlc3Yoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4+ICAgICAgICAgICAgICAg ICAgICogcmVmZXJlbmNlIGl0IGFueSBtb3JlLiBUaGUgb25seSB0cmlja3kgY2FzZSBpcyB0aGUg dHJ5bG9jayBvbgo+Pj4gICAgICAgICAgICAgICAgICAgKiB0aGUgcmVzdiBvYmplY3Qgd2hpbGUg aG9sZGluZyB0aGUgbHJ1X2xvY2suCj4+PiAgICAgICAgICAgICAgICAgICAqLwo+Pj4gLSAgICAg ICAgICAgICAgIHNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+Pj4gKyAgICAgICAg ICAgICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4gICAgICAgICAgICAgICAg ICBiby0+YmFzZS5yZXN2ID0gJmJvLT5iYXNlLl9yZXN2Owo+Pj4gLSAgICAgICAgICAgICAgIHNw aW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+PiArICAgICAgICAgICAgICAgc3Bp bl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+ICAgICAgICAgIH0KPj4+Cj4+PiAgICAg ICAgICByZXR1cm4gcjsKPj4+IEBAIC0zOTUsNyArMzU0LDcgQEAgc3RhdGljIGludCB0dG1fYm9f Y2xlYW51cF9yZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+Pgo+Pj4gICAgICAg ICAgICAgICAgICBpZiAodW5sb2NrX3Jlc3YpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+Pj4gLSAgICAgICAgICAgICAgIHNwaW5f dW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+PiArICAgICAgICAgICAgICAgc3Bpbl91 bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+Cj4+PiAgICAgICAgICAgICAgICAgIGxyZXQg PSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KHJlc3YsIHRydWUsIGludGVycnVwdGlibGUsCj4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwICog SFopOwo+Pj4gQEAgLTQwNSw3ICszNjQsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3Jl ZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICAgICAgICAgICAgICAgZWxz ZSBpZiAobHJldCA9PSAwKQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUJV U1k7Cj4+Pgo+Pj4gLSAgICAgICAgICAgICAgIHNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xv Y2spOwo+Pj4gKyAgICAgICAgICAgICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+ Pj4gICAgICAgICAgICAgICAgICBpZiAodW5sb2NrX3Jlc3YgJiYgIWRtYV9yZXN2X3RyeWxvY2so Ym8tPmJhc2UucmVzdikpIHsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAvKgo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAqIFdlIHJhY2VkLCBhbmQgbG9zdCwgc29tZW9uZSBlbHNl IGhvbGRzIHRoZSByZXNlcnZhdGlvbiBub3csCj4+PiBAQCAtNDE1LDcgKzM3NCw3IEBAIHN0YXRp YyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAqIGRlbGF5ZWQgZGVzdHJ1Y3Rpb24gd291bGQg c3VjY2VlZCwgc28ganVzdCByZXR1cm4gc3VjY2Vzcwo+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAqIGhlcmUuCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICovCj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsK Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+ICAgICAgICAgICAgICAg ICAgfQo+Pj4gICAgICAgICAgICAgICAgICByZXQgPSAwOwo+Pj4gQEAgLTQyNCwxMyArMzgzLDEz IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+Pj4gICAgICAgICAgaWYgKHJldCB8fCB1bmxpa2VseShsaXN0X2VtcHR5KCZiby0+ ZGRlc3Ryb3kpKSkgewo+Pj4gICAgICAgICAgICAgICAgICBpZiAodW5sb2NrX3Jlc3YpCj4+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+ Pj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ PiArICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+ICAg ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+ICAgICAgICAgIH0KPj4+Cj4+PiAgICAgICAg ICB0dG1fYm9fZGVsX2Zyb21fbHJ1KGJvKTsKPj4+ICAgICAgICAgIGxpc3RfZGVsX2luaXQoJmJv LT5kZGVzdHJveSk7Cj4+PiAtICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9j ayk7Cj4+PiArICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+PiAgICAg ICAgICB0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Cj4+Pgo+Pj4gICAgICAgICAgaWYg KHVubG9ja19yZXN2KQo+Pj4gQEAgLTQ0NSw5ICs0MDQsOSBAQCBzdGF0aWMgaW50IHR0bV9ib19j bGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICogVHJhdmVy c2UgdGhlIGRlbGF5ZWQgbGlzdCwgYW5kIGNhbGwgdHRtX2JvX2NsZWFudXBfcmVmcyBvbiBhbGwK Pj4+ICAgICogZW5jb3VudGVyZWQgYnVmZmVycy4KPj4+ICAgICovCj4+PiAtc3RhdGljIGJvb2wg dHRtX2JvX2RlbGF5ZWRfZGVsZXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBib29sIHJl bW92ZV9hbGwpCj4+PiArYm9vbCB0dG1fYm9fZGVsYXllZF9kZWxldGUoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2FsbCkKPj4+ICAgewo+Pj4gLSAgICAgICBzdHJ1Y3QgdHRt X2JvX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fYm9fZ2xvYjsKPj4+ICsgICAgICAgc3RydWN0IHR0bV9n bG9iYWwgKmdsb2IgPSAmdHRtX2dsb2I7Cj4+PiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIHJl bW92ZWQ7Cj4+PiAgICAgICAgICBib29sIGVtcHR5Owo+Pj4KPj4+IEBAIC00ODYsMjEgKzQ0NSwx MSBAQCBzdGF0aWMgYm9vbCB0dG1fYm9fZGVsYXllZF9kZWxldGUoc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2FsbCkKPj4+ICAgICAgICAgIHJldHVybiBlbXB0eTsKPj4+ ICAgfQo+Pj4KPj4+IC1zdGF0aWMgdm9pZCB0dG1fYm9fZGVsYXllZF93b3JrcXVldWUoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQo+Pj4gLXsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYgPQo+Pj4gLSAgICAgICAgICAgY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0dG1f Ym9fZGV2aWNlLCB3cS53b3JrKTsKPj4+IC0KPj4+IC0gICAgICAgaWYgKCF0dG1fYm9fZGVsYXll ZF9kZWxldGUoYmRldiwgZmFsc2UpKQo+Pj4gLSAgICAgICAgICAgICAgIHNjaGVkdWxlX2RlbGF5 ZWRfd29yaygmYmRldi0+d3EsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgoSFogLyAxMDApIDwgMSkgPyAxIDogSFogLyAxMDApOwo+Pj4gLX0KPj4+IC0KPj4+ICAg c3RhdGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4+PiAgIHsKPj4+ ICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8gPQo+Pj4gICAgICAgICAgICAg IGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QsIGtyZWYpOwo+Pj4g LSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+Pj4gKyAgICAg ICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+Pj4gICAgICAgICAgc2l6ZV90 IGFjY19zaXplID0gYm8tPmFjY19zaXplOwo+Pj4gICAgICAgICAgaW50IHJldDsKPj4+Cj4+PiBA QCAtNTE0LDggKzQ2Myw4IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVm ICprcmVmKQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMzAgKiBIWik7Cj4+PiAgICAgICAgICAgICAgICAgIH0KPj4+Cj4+PiAtICAgICAgICAg ICAgICAgaWYgKGJvLT5iZGV2LT5kcml2ZXItPnJlbGVhc2Vfbm90aWZ5KQo+Pj4gLSAgICAgICAg ICAgICAgICAgICAgICAgYm8tPmJkZXYtPmRyaXZlci0+cmVsZWFzZV9ub3RpZnkoYm8pOwo+Pj4g KyAgICAgICAgICAgICAgIGlmIChiby0+YmRldi0+ZnVuY3MtPnJlbGVhc2Vfbm90aWZ5KQo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgYm8tPmJkZXYtPmZ1bmNzLT5yZWxlYXNlX25vdGlmeShi byk7Cj4+Pgo+Pj4gICAgICAgICAgICAgICAgICBkcm1fdm1hX29mZnNldF9yZW1vdmUoYmRldi0+ dm1hX21hbmFnZXIsICZiby0+YmFzZS52bWFfbm9kZSk7Cj4+PiAgICAgICAgICAgICAgICAgIHR0 bV9tZW1faW9fZnJlZShiZGV2LCAmYm8tPm1lbSk7Cj4+PiBAQCAtNTI3LDcgKzQ3Niw3IEBAIHN0 YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQo+Pj4gICAgICAgICAg ICAgICAgICB0dG1fYm9fZmx1c2hfYWxsX2ZlbmNlcyhibyk7Cj4+PiAgICAgICAgICAgICAgICAg IGJvLT5kZWxldGVkID0gdHJ1ZTsKPj4+Cj4+PiAtICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0 dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+PiArICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1f Z2xvYi5scnVfbG9jayk7Cj4+Pgo+Pj4gICAgICAgICAgICAgICAgICAvKgo+Pj4gICAgICAgICAg ICAgICAgICAgKiBNYWtlIHBpbm5lZCBib3MgaW1tZWRpYXRlbHkgYXZhaWxhYmxlIHRvCj4+PiBA QCAtNTQyLDIyICs0OTEsMjIgQEAgc3RhdGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGty ZWYgKmtyZWYpCj4+Pgo+Pj4gICAgICAgICAgICAgICAgICBrcmVmX2luaXQoJmJvLT5rcmVmKTsK Pj4+ICAgICAgICAgICAgICAgICAgbGlzdF9hZGRfdGFpbCgmYm8tPmRkZXN0cm95LCAmYmRldi0+ ZGRlc3Ryb3kpOwo+Pj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5s cnVfbG9jayk7Cj4+PiArICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9s b2NrKTsKPj4+Cj4+PiAgICAgICAgICAgICAgICAgIHNjaGVkdWxlX2RlbGF5ZWRfd29yaygmYmRl di0+d3EsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEhaIC8g MTAwKSA8IDEpID8gMSA6IEhaIC8gMTAwKTsKPj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ Pj4gICAgICAgICAgfQo+Pj4KPj4+IC0gICAgICAgc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVf bG9jayk7Cj4+PiArICAgICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4gICAg ICAgICAgdHRtX2JvX2RlbF9mcm9tX2xydShibyk7Cj4+PiAgICAgICAgICBsaXN0X2RlbCgmYm8t PmRkZXN0cm95KTsKPj4+IC0gICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2Nr KTsKPj4+ICsgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+Cj4+PiAg ICAgICAgICB0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Cj4+PiAgICAgICAgICBkbWFf cmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7Cj4+Pgo+Pj4gLSAgICAgICBhdG9taWNfZGVjKCZ0 dG1fYm9fZ2xvYi5ib19jb3VudCk7Cj4+PiArICAgICAgIGF0b21pY19kZWMoJnR0bV9nbG9iLmJv X2NvdW50KTsKPj4+ICAgICAgICAgIGRtYV9mZW5jZV9wdXQoYm8tPm1vdmluZyk7Cj4+PiAgICAg ICAgICBpZiAoIXR0bV9ib191c2VzX2VtYmVkZGVkX2dlbV9vYmplY3QoYm8pKQo+Pj4gICAgICAg ICAgICAgICAgICBkbWFfcmVzdl9maW5pKCZiby0+YmFzZS5fcmVzdik7Cj4+PiBAQCAtNTcxLDEz ICs1MjAsMTMgQEAgdm9pZCB0dG1fYm9fcHV0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8p Cj4+PiAgIH0KPj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fcHV0KTsKPj4+Cj4+PiAtaW50IHR0 bV9ib19sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQo+ Pj4gK2ludCB0dG1fYm9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRtX2RldmljZSAq YmRldikKPj4+ICAgewo+Pj4gICAgICAgICAgcmV0dXJuIGNhbmNlbF9kZWxheWVkX3dvcmtfc3lu YygmYmRldi0+d3EpOwo+Pj4gICB9Cj4+PiAgIEVYUE9SVF9TWU1CT0wodHRtX2JvX2xvY2tfZGVs YXllZF93b3JrcXVldWUpOwo+Pj4KPj4+IC12b2lkIHR0bV9ib191bmxvY2tfZGVsYXllZF93b3Jr cXVldWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGludCByZXNjaGVkKQo+Pj4gK3ZvaWQg dHRtX2JvX3VubG9ja19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwg aW50IHJlc2NoZWQpCj4+PiAgIHsKPj4+ICAgICAgICAgIGlmIChyZXNjaGVkKQo+Pj4gICAgICAg ICAgICAgICAgICBzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmJkZXYtPndxLAo+Pj4gQEAgLTU4OCw3 ICs1MzcsNyBAQCBFWFBPUlRfU1lNQk9MKHR0bV9ib191bmxvY2tfZGVsYXllZF93b3JrcXVldWUp Owo+Pj4gICBzdGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0 eCAqY3R4KQo+Pj4gICB7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0g Ym8tPmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7 Cj4+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlIGV2aWN0X21lbTsKPj4+ICAgICAgICAg IHN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPj4+ICAgICAgICAgIGludCByZXQgPSAw Owo+Pj4gQEAgLTU5Nyw3ICs1NDYsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4KPj4+ICAgICAgICAgIHBsYWNlbWVudC5udW1fcGxh Y2VtZW50ID0gMDsKPj4+ICAgICAgICAgIHBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSAw Owo+Pj4gLSAgICAgICBiZGV2LT5kcml2ZXItPmV2aWN0X2ZsYWdzKGJvLCAmcGxhY2VtZW50KTsK Pj4+ICsgICAgICAgYmRldi0+ZnVuY3MtPmV2aWN0X2ZsYWdzKGJvLCAmcGxhY2VtZW50KTsKPj4+ Cj4+PiAgICAgICAgICBpZiAoIXBsYWNlbWVudC5udW1fcGxhY2VtZW50ICYmICFwbGFjZW1lbnQu bnVtX2J1c3lfcGxhY2VtZW50KSB7Cj4+PiAgICAgICAgICAgICAgICAgIHR0bV9ib193YWl0KGJv LCBmYWxzZSwgZmFsc2UpOwo+Pj4gQEAgLTcxMiw3ICs2NjEsNyBAQCBzdGF0aWMgaW50IHR0bV9t ZW1fZXZpY3Rfd2FpdF9idXN5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYnVzeV9ibywKPj4+ ICAgICAgICAgIHJldHVybiByID09IC1FREVBRExLID8gLUVCVVNZIDogcjsKPj4+ICAgfQo+Pj4K Pj4+IC1pbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4+ICtpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1h biwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpw bGFjZSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9j dHggKmN0eCwKPj4+IEBAIC03MjMsNyArNjcyLDcgQEAgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICB1bnNpZ25lZCBpOwo+Pj4g ICAgICAgICAgaW50IHJldDsKPj4+Cj4+PiAtICAgICAgIHNwaW5fbG9jaygmdHRtX2JvX2dsb2Iu bHJ1X2xvY2spOwo+Pj4gKyAgICAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+ ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpIHsKPj4+ ICAgICAgICAgICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShibywgJm1hbi0+bHJ1W2ldLCBs cnUpIHsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGJ1c3k7Cj4+PiBAQCAtNzM2 LDcgKzY4NSw3IEBAIGludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgfQo+Pj4KPj4+IC0gICAgICAgICAgICAgICAgICAg ICAgIGlmIChwbGFjZSAmJiAhYmRldi0+ZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZShibywKPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFjZSAmJiAhYmRldi0+ZnVuY3MtPmV2aWN0 aW9uX3ZhbHVhYmxlKGJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZSkpIHsKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NrZWQpCj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsK Pj4+IEBAIC03NjAsNyArNzA5LDcgQEAgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICBpZiAoIWJvKSB7Cj4+PiAgICAgICAgICAg ICAgICAgIGlmIChidXN5X2JvICYmICF0dG1fYm9fZ2V0X3VubGVzc196ZXJvKGJ1c3lfYm8pKQo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c3lfYm8gPSBOVUxMOwo+Pj4gLSAgICAgICAg ICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+PiArICAgICAgICAg ICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+ICAgICAgICAgICAgICAg ICAgcmV0ID0gdHRtX21lbV9ldmljdF93YWl0X2J1c3koYnVzeV9ibywgY3R4LCB0aWNrZXQpOwo+ Pj4gICAgICAgICAgICAgICAgICBpZiAoYnVzeV9ibykKPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICB0dG1fYm9fcHV0KGJ1c3lfYm8pOwo+Pj4gQEAgLTc3NCw3ICs3MjMsNyBAQCBpbnQgdHRt X21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsKPj4+ICAgICAgICAgIH0KPj4+Cj4+PiAtICAgICAgIHNwaW5f dW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+PiArICAgICAgIHNwaW5fdW5sb2NrKCZ0 dG1fZ2xvYi5scnVfbG9jayk7Cj4+Pgo+Pj4gICAgICAgICAgcmV0ID0gdHRtX2JvX2V2aWN0KGJv LCBjdHgpOwo+Pj4gICAgICAgICAgaWYgKGxvY2tlZCkKPj4+IEBAIC04MjksNyArNzc4LDcgQEAg c3RhdGljIGludCB0dG1fYm9fbWVtX2ZvcmNlX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKm1lbSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+PiAgIHsKPj4+IC0gICAgICAgc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYgPSBiby0+YmRldjsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsKPj4+ICAg ICAgICAgIHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0Owo+Pj4gICAgICAgICAgaW50IHJl dDsKPj4+IEBAIC04NjYsNyArODE1LDcgQEAgc3RhdGljIGludCB0dG1fYm9fbWVtX3BsYWNlbWVu dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLAo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+PiAgIHsK Pj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+ICsg ICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+ICAgICAgICAgIHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+Pj4KPj4+ICAgICAgICAgIG1hbiA9IHR0 bV9tYW5hZ2VyX3R5cGUoYmRldiwgcGxhY2UtPm1lbV90eXBlKTsKPj4+IEBAIC04NzYsMTAgKzgy NSwxMCBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fcGxhY2VtZW50KHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4+PiAgICAgICAgICBtZW0tPm1lbV90eXBlID0gcGxhY2UtPm1lbV90eXBl Owo+Pj4gICAgICAgICAgbWVtLT5wbGFjZW1lbnQgPSBwbGFjZS0+ZmxhZ3M7Cj4+Pgo+Pj4gLSAg ICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4+ICsgICAgICAgc3Bpbl9s b2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+PiAgICAgICAgICB0dG1fYm9fZGVsX2Zyb21fbHJ1 KGJvKTsKPj4+ICAgICAgICAgIHR0bV9ib19hZGRfbWVtX3RvX2xydShibywgbWVtKTsKPj4+IC0g ICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4+ICsgICAgICAgc3Bp bl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+Cj4+PiAgICAgICAgICByZXR1cm4gMDsK Pj4+ICAgfQo+Pj4gQEAgLTg5Nyw3ICs4NDYsNyBAQCBpbnQgdHRtX2JvX21lbV9zcGFjZShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4+ICAgewo+Pj4gLSAgICAgICBzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiA9IGJvLT5iZGV2Owo+Pj4gICAgICAgICAgYm9vbCB0eXBlX2ZvdW5kID0gZmFsc2U7 Cj4+PiAgICAgICAgICBpbnQgaSwgcmV0Owo+Pj4KPj4+IEBAIC0xMDc0LDcgKzEwMjMsNyBAQCBp bnQgdHRtX2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+PiAgIH0K Pj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fdmFsaWRhdGUpOwo+Pj4KPj4+IC1pbnQgdHRtX2Jv X2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAraW50IHR0bV9i b19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKPj4+IEBAIC0xMTQ2LDcgKzEwOTUsNyBA QCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ PiAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X2luaXQoJmJvLT5iYXNlLl9yZXN2KTsKPj4+ICAg ICAgICAgICAgICAgICAgZHJtX3ZtYV9ub2RlX3Jlc2V0KCZiby0+YmFzZS52bWFfbm9kZSk7Cj4+ PiAgICAgICAgICB9Cj4+PiAtICAgICAgIGF0b21pY19pbmMoJnR0bV9ib19nbG9iLmJvX2NvdW50 KTsKPj4+ICsgICAgICAgYXRvbWljX2luYygmdHRtX2dsb2IuYm9fY291bnQpOwo+Pj4KPj4+ICAg ICAgICAgIC8qCj4+PiAgICAgICAgICAgKiBGb3IgdHRtX2JvX3R5cGVfZGV2aWNlIGJ1ZmZlcnMs IGFsbG9jYXRlCj4+PiBAQCAtMTE4Miw3ICsxMTMxLDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2Vy dmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gICB9Cj4+PiAgIEVYUE9SVF9TWU1C T0wodHRtX2JvX2luaXRfcmVzZXJ2ZWQpOwo+Pj4KPj4+IC1pbnQgdHRtX2JvX2luaXQoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAraW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+Pj4gICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCj4+PiAgICAgICAg ICAgICAgICAgIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKPj4+IEBAIC0xMjEwLDcgKzExNTksNyBA QCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgIH0KPj4+ ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9faW5pdCk7Cj4+Pgo+Pj4gLXNpemVfdCB0dG1fYm9fZG1h X2FjY19zaXplKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK3NpemVfdCB0dG1fYm9f ZG1hX2FjY19zaXplKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYm9fc2l6ZSwKPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBzdHJ1Y3Rfc2l6ZSkKPj4+ICAgewo+Pj4gQEAgLTEyMjQsNyAr MTE3Myw3IEBAIHNpemVfdCB0dG1fYm9fZG1hX2FjY19zaXplKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+Pj4gICB9Cj4+PiAgIEVYUE9SVF9TWU1CT0wodHRtX2JvX2RtYV9hY2Nfc2l6ZSk7 Cj4+Pgo+Pj4gLWludCB0dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs IHVuc2lnbmVkIG1lbV90eXBlKQo+Pj4gK2ludCB0dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsIHVuc2lnbmVkIG1lbV90eXBlKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVt X3R5cGUpOwo+Pj4KPj4+IEBAIC0xMjQyLDE1NCArMTE5MSwxMyBAQCBpbnQgdHRtX2JvX2V2aWN0 X21tKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCBtZW1fdHlwZSkKPj4+ICAg fQo+Pj4gICBFWFBPUlRfU1lNQk9MKHR0bV9ib19ldmljdF9tbSk7Cj4+Pgo+Pj4gLXN0YXRpYyB2 b2lkIHR0bV9ib19nbG9iYWxfa29ial9yZWxlYXNlKHN0cnVjdCBrb2JqZWN0ICprb2JqKQo+Pj4g LXsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPQo+Pj4gLSAgICAgICAg ICAgICAgIGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCwga29iaik7Cj4+ PiAtCj4+PiAtICAgICAgIF9fZnJlZV9wYWdlKGdsb2ItPmR1bW15X3JlYWRfcGFnZSk7Cj4+PiAt fQo+Pj4gLQo+Pj4gLXN0YXRpYyB2b2lkIHR0bV9ib19nbG9iYWxfcmVsZWFzZSh2b2lkKQo+Pj4g LXsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSAmdHRtX2JvX2dsb2I7 Cj4+PiAtCj4+PiAtICAgICAgIG11dGV4X2xvY2soJnR0bV9nbG9iYWxfbXV0ZXgpOwo+Pj4gLSAg ICAgICBpZiAoLS10dG1fYm9fZ2xvYl91c2VfY291bnQgPiAwKQo+Pj4gLSAgICAgICAgICAgICAg IGdvdG8gb3V0Owo+Pj4gLQo+Pj4gLSAgICAgICBrb2JqZWN0X2RlbCgmZ2xvYi0+a29iaik7Cj4+ PiAtICAgICAgIGtvYmplY3RfcHV0KCZnbG9iLT5rb2JqKTsKPj4+IC0gICAgICAgdHRtX21lbV9n bG9iYWxfcmVsZWFzZSgmdHRtX21lbV9nbG9iKTsKPj4+IC0gICAgICAgbWVtc2V0KGdsb2IsIDAs IHNpemVvZigqZ2xvYikpOwo+Pj4gLW91dDoKPj4+IC0gICAgICAgbXV0ZXhfdW5sb2NrKCZ0dG1f Z2xvYmFsX211dGV4KTsKPj4+IC19Cj4+PiAtCj4+PiAtc3RhdGljIGludCB0dG1fYm9fZ2xvYmFs X2luaXQodm9pZCkKPj4+IC17Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9i ID0gJnR0bV9ib19nbG9iOwo+Pj4gLSAgICAgICBpbnQgcmV0ID0gMDsKPj4+IC0gICAgICAgdW5z aWduZWQgaTsKPj4+IC0KPj4+IC0gICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRleCk7 Cj4+PiAtICAgICAgIGlmICgrK3R0bV9ib19nbG9iX3VzZV9jb3VudCA+IDEpCj4+PiAtICAgICAg ICAgICAgICAgZ290byBvdXQ7Cj4+PiAtCj4+PiAtICAgICAgIHJldCA9IHR0bV9tZW1fZ2xvYmFs X2luaXQoJnR0bV9tZW1fZ2xvYik7Cj4+PiAtICAgICAgIGlmIChyZXQpCj4+PiAtICAgICAgICAg ICAgICAgZ290byBvdXQ7Cj4+PiAtCj4+PiAtICAgICAgIHNwaW5fbG9ja19pbml0KCZnbG9iLT5s cnVfbG9jayk7Cj4+PiAtICAgICAgIGdsb2ItPmR1bW15X3JlYWRfcGFnZSA9IGFsbG9jX3BhZ2Uo X19HRlBfWkVSTyB8IEdGUF9ETUEzMik7Cj4+PiAtCj4+PiAtICAgICAgIGlmICh1bmxpa2VseShn bG9iLT5kdW1teV9yZWFkX3BhZ2UgPT0gTlVMTCkpIHsKPj4+IC0gICAgICAgICAgICAgICByZXQg PSAtRU5PTUVNOwo+Pj4gLSAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+Pj4gLSAgICAgICB9Cj4+ PiAtCj4+PiAtICAgICAgIGZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kp Cj4+PiAtICAgICAgICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJmdsb2ItPnN3YXBfbHJ1W2ldKTsK Pj4+IC0gICAgICAgSU5JVF9MSVNUX0hFQUQoJmdsb2ItPmRldmljZV9saXN0KTsKPj4+IC0gICAg ICAgYXRvbWljX3NldCgmZ2xvYi0+Ym9fY291bnQsIDApOwo+Pj4gLQo+Pj4gLSAgICAgICByZXQg PSBrb2JqZWN0X2luaXRfYW5kX2FkZCgKPj4+IC0gICAgICAgICAgICAgICAmZ2xvYi0+a29iaiwg JnR0bV9ib19nbG9iX2tvYmpfdHlwZSwgdHRtX2dldF9rb2JqKCksICJidWZmZXJfb2JqZWN0cyIp Owo+Pj4gLSAgICAgICBpZiAodW5saWtlbHkocmV0ICE9IDApKQo+Pj4gLSAgICAgICAgICAgICAg IGtvYmplY3RfcHV0KCZnbG9iLT5rb2JqKTsKPj4+IC1vdXQ6Cj4+PiAtICAgICAgIG11dGV4X3Vu bG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+PiAtICAgICAgIHJldHVybiByZXQ7Cj4+PiAtfQo+ Pj4gLQo+Pj4gLWludCB0dG1fYm9fZGV2aWNlX3JlbGVhc2Uoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYpCj4+PiAtewo+Pj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9ICZ0 dG1fYm9fZ2xvYjsKPj4+IC0gICAgICAgaW50IHJldCA9IDA7Cj4+PiAtICAgICAgIHVuc2lnbmVk IGk7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+Pj4gLQo+ Pj4gLSAgICAgICBtYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIFRUTV9QTF9TWVNURU0pOwo+ Pj4gLSAgICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPj4+ IC0gICAgICAgdHRtX3NldF9kcml2ZXJfbWFuYWdlcihiZGV2LCBUVE1fUExfU1lTVEVNLCBOVUxM KTsKPj4+IC0KPj4+IC0gICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+PiAt ICAgICAgIGxpc3RfZGVsKCZiZGV2LT5kZXZpY2VfbGlzdCk7Cj4+PiAtICAgICAgIG11dGV4X3Vu bG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+PiAtCj4+PiAtICAgICAgIGNhbmNlbF9kZWxheWVk X3dvcmtfc3luYygmYmRldi0+d3EpOwo+Pj4gLQo+Pj4gLSAgICAgICBpZiAodHRtX2JvX2RlbGF5 ZWRfZGVsZXRlKGJkZXYsIHRydWUpKQo+Pj4gLSAgICAgICAgICAgICAgIHByX2RlYnVnKCJEZWxh eWVkIGRlc3Ryb3kgbGlzdCB3YXMgY2xlYW5cbiIpOwo+Pj4gLQo+Pj4gLSAgICAgICBzcGluX2xv Y2soJmdsb2ItPmxydV9sb2NrKTsKPj4+IC0gICAgICAgZm9yIChpID0gMDsgaSA8IFRUTV9NQVhf Qk9fUFJJT1JJVFk7ICsraSkKPj4+IC0gICAgICAgICAgICAgICBpZiAobGlzdF9lbXB0eSgmbWFu LT5scnVbMF0pKQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgcHJfZGVidWcoIlN3YXAgbGlz dCAlZCB3YXMgY2xlYW5cbiIsIGkpOwo+Pj4gLSAgICAgICBzcGluX3VubG9jaygmZ2xvYi0+bHJ1 X2xvY2spOwo+Pj4gLQo+Pj4gLSAgICAgICBpZiAoIXJldCkKPj4+IC0gICAgICAgICAgICAgICB0 dG1fYm9fZ2xvYmFsX3JlbGVhc2UoKTsKPj4+IC0KPj4+IC0gICAgICAgcmV0dXJuIHJldDsKPj4+ IC19Cj4+PiAtRVhQT1JUX1NZTUJPTCh0dG1fYm9fZGV2aWNlX3JlbGVhc2UpOwo+Pj4gLQo+Pj4g LXN0YXRpYyB2b2lkIHR0bV9ib19pbml0X3N5c21hbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl dikKPj4+IC17Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0g JmJkZXYtPnN5c21hbjsKPj4+IC0KPj4+IC0gICAgICAgLyoKPj4+IC0gICAgICAgICogSW5pdGlh bGl6ZSB0aGUgc3lzdGVtIG1lbW9yeSBidWZmZXIgdHlwZS4KPj4+IC0gICAgICAgICogT3RoZXIg dHlwZXMgbmVlZCB0byBiZSBkcml2ZXIgLyBJT0NUTCBpbml0aWFsaXplZC4KPj4+IC0gICAgICAg ICovCj4+PiAtICAgICAgIG1hbi0+dXNlX3R0ID0gdHJ1ZTsKPj4+IC0KPj4+IC0gICAgICAgdHRt X3Jlc291cmNlX21hbmFnZXJfaW5pdChtYW4sIDApOwo+Pj4gLSAgICAgICB0dG1fc2V0X2RyaXZl cl9tYW5hZ2VyKGJkZXYsIFRUTV9QTF9TWVNURU0sIG1hbik7Cj4+PiAtICAgICAgIHR0bV9yZXNv dXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4+PiAtfQo+Pj4gLQo+Pj4gLWludCB0 dG1fYm9fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAtICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYm9fZHJpdmVyICpkcml2ZXIsCj4+PiAtICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAo+Pj4gLSAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbWFuYWdlciAqdm1hX21hbmFn ZXIsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbmVlZF9kbWEzMikKPj4+IC17Cj4+ PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gJnR0bV9ib19nbG9iOwo+Pj4g LSAgICAgICBpbnQgcmV0Owo+Pj4gLQo+Pj4gLSAgICAgICBpZiAoV0FSTl9PTih2bWFfbWFuYWdl ciA9PSBOVUxMKSkKPj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+IC0KPj4+ IC0gICAgICAgcmV0ID0gdHRtX2JvX2dsb2JhbF9pbml0KCk7Cj4+PiAtICAgICAgIGlmIChyZXQp Cj4+PiAtICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+IC0KPj4+IC0gICAgICAgYmRldi0+ ZHJpdmVyID0gZHJpdmVyOwo+Pj4gLQo+Pj4gLSAgICAgICB0dG1fYm9faW5pdF9zeXNtYW4oYmRl dik7Cj4+PiAtCj4+PiAtICAgICAgIGJkZXYtPnZtYV9tYW5hZ2VyID0gdm1hX21hbmFnZXI7Cj4+ PiAtICAgICAgIElOSVRfREVMQVlFRF9XT1JLKCZiZGV2LT53cSwgdHRtX2JvX2RlbGF5ZWRfd29y a3F1ZXVlKTsKPj4+IC0gICAgICAgSU5JVF9MSVNUX0hFQUQoJmJkZXYtPmRkZXN0cm95KTsKPj4+ IC0gICAgICAgYmRldi0+ZGV2X21hcHBpbmcgPSBtYXBwaW5nOwo+Pj4gLSAgICAgICBiZGV2LT5u ZWVkX2RtYTMyID0gbmVlZF9kbWEzMjsKPj4+IC0gICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2Jh bF9tdXRleCk7Cj4+PiAtICAgICAgIGxpc3RfYWRkX3RhaWwoJmJkZXYtPmRldmljZV9saXN0LCAm Z2xvYi0+ZGV2aWNlX2xpc3QpOwo+Pj4gLSAgICAgICBtdXRleF91bmxvY2soJnR0bV9nbG9iYWxf bXV0ZXgpOwo+Pj4gLQo+Pj4gLSAgICAgICByZXR1cm4gMDsKPj4+IC19Cj4+PiAtRVhQT1JUX1NZ TUJPTCh0dG1fYm9fZGV2aWNlX2luaXQpOwo+Pj4gLQo+Pj4gICAvKgo+Pj4gICAgKiBidWZmZXIg b2JqZWN0IHZtIGZ1bmN0aW9ucy4KPj4+ICAgICovCj4+Pgo+Pj4gICB2b2lkIHR0bV9ib191bm1h cF92aXJ0dWFsKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+PiAgIHsKPj4+IC0gICAg ICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+ICsgICAgICAgc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+Cj4+PiAgICAgICAgICBkcm1fdm1h X25vZGVfdW5tYXAoJmJvLT5iYXNlLnZtYV9ub2RlLCBiZGV2LT5kZXZfbWFwcGluZyk7Cj4+PiAg ICAgICAgICB0dG1fbWVtX2lvX2ZyZWUoYmRldiwgJmJvLT5tZW0pOwo+Pj4gQEAgLTE0MjUsNyAr MTIzMyw3IEBAIEVYUE9SVF9TWU1CT0wodHRtX2JvX3dhaXQpOwo+Pj4gICAgKiBBIGJ1ZmZlciBv YmplY3Qgc2hyaW5rIG1ldGhvZCB0aGF0IHRyaWVzIHRvIHN3YXAgb3V0IHRoZSBmaXJzdAo+Pj4g ICAgKiBidWZmZXIgb2JqZWN0IG9uIHRoZSBib19nbG9iYWw6OnN3YXBfbHJ1IGxpc3QuCj4+PiAg ICAqLwo+Pj4gLWludCB0dG1fYm9fc3dhcG91dChzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiwg c3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+PiAraW50IHR0bV9ib19zd2Fwb3V0KHN0 cnVjdCB0dG1fZ2xvYmFsICpnbG9iLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4+ ICAgewo+Pj4gICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKPj4+ICAgICAg ICAgIGludCByZXQgPSAtRUJVU1k7Cj4+PiBAQCAtMTQ5OSw4ICsxMzA3LDggQEAgaW50IHR0bV9i b19zd2Fwb3V0KHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iLCBzdHJ1Y3QgdHRtX29wZXJhdGlv bl9jdHggKmN0eCkKPj4+ICAgICAgICAgICAqIGFueW9uZSB0cmllcyB0byBhY2Nlc3MgYSB0dG0g cGFnZS4KPj4+ICAgICAgICAgICAqLwo+Pj4KPj4+IC0gICAgICAgaWYgKGJvLT5iZGV2LT5kcml2 ZXItPnN3YXBfbm90aWZ5KQo+Pj4gLSAgICAgICAgICAgICAgIGJvLT5iZGV2LT5kcml2ZXItPnN3 YXBfbm90aWZ5KGJvKTsKPj4+ICsgICAgICAgaWYgKGJvLT5iZGV2LT5mdW5jcy0+c3dhcF9ub3Rp ZnkpCj4+PiArICAgICAgICAgICAgICAgYm8tPmJkZXYtPmZ1bmNzLT5zd2FwX25vdGlmeShibyk7 Cj4+Pgo+Pj4gICAgICAgICAgcmV0ID0gdHRtX3R0X3N3YXBvdXQoYm8tPmJkZXYsIGJvLT50dG0p Owo+Pj4gICBvdXQ6Cj4+PiBAQCAtMTUyNCw3ICsxMzMyLDcgQEAgdm9pZCB0dG1fYm9fc3dhcG91 dF9hbGwodm9pZCkKPj4+ICAgICAgICAgICAgICAgICAgLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPj4+ ICAgICAgICAgIH07Cj4+Pgo+Pj4gLSAgICAgICB3aGlsZSAodHRtX2JvX3N3YXBvdXQoJnR0bV9i b19nbG9iLCAmY3R4KSA9PSAwKTsKPj4+ICsgICAgICAgd2hpbGUgKHR0bV9ib19zd2Fwb3V0KCZ0 dG1fZ2xvYiwgJmN0eCkgPT0gMCk7Cj4+PiAgIH0KPj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9f c3dhcG91dF9hbGwpOwo+Pj4KPj4+IEBAIC0xNTM5LDEwICsxMzQ3LDEwIEBAIHZvaWQgdHRtX2Jv X3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4+Cj4+PiAgIGludCB0 dG1fYm9fdHRfYmluZChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgdHRtX3Jl c291cmNlICptZW0pCj4+PiAgIHsKPj4+IC0gICAgICAgcmV0dXJuIGJvLT5iZGV2LT5kcml2ZXIt PnR0bV90dF9iaW5kKGJvLT5iZGV2LCBiby0+dHRtLCBtZW0pOwo+Pj4gKyAgICAgICByZXR1cm4g Ym8tPmJkZXYtPmZ1bmNzLT50dG1fdHRfYmluZChiby0+YmRldiwgYm8tPnR0bSwgbWVtKTsKPj4+ ICAgfQo+Pj4KPj4+ICAgdm9pZCB0dG1fYm9fdHRfdW5iaW5kKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8pCj4+PiAgIHsKPj4+IC0gICAgICAgYm8tPmJkZXYtPmRyaXZlci0+dHRtX3R0X3Vu YmluZChiby0+YmRldiwgYm8tPnR0bSk7Cj4+PiArICAgICAgIGJvLT5iZGV2LT5mdW5jcy0+dHRt X3R0X3VuYmluZChiby0+YmRldiwgYm8tPnR0bSk7Cj4+PiAgIH0KPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9ib191dGlsLmMKPj4+IGluZGV4IGJhN2FiNWVkODVkMC4uMTc5MDNmMGUyMTFmIDEwMDY0NAo+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPj4+IEBAIC04OCwzMyArODgsMzMgQEAgaW50 IHR0bV9ib19tb3ZlX3R0bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICB9Cj4+ PiAgIEVYUE9SVF9TWU1CT0wodHRtX2JvX21vdmVfdHRtKTsKPj4+Cj4+PiAtaW50IHR0bV9tZW1f aW9fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtpbnQgdHRtX21lbV9p b19yZXNlcnZlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBpZiAo bWVtLT5idXMub2Zmc2V0IHx8IG1lbS0+YnVzLmFkZHIpCj4+PiAgICAgICAgICAgICAgICAgIHJl dHVybiAwOwo+Pj4KPj4+ICAgICAgICAgIG1lbS0+YnVzLmlzX2lvbWVtID0gZmFsc2U7Cj4+PiAt ICAgICAgIGlmICghYmRldi0+ZHJpdmVyLT5pb19tZW1fcmVzZXJ2ZSkKPj4+ICsgICAgICAgaWYg KCFiZGV2LT5mdW5jcy0+aW9fbWVtX3Jlc2VydmUpCj4+PiAgICAgICAgICAgICAgICAgIHJldHVy biAwOwo+Pj4KPj4+IC0gICAgICAgcmV0dXJuIGJkZXYtPmRyaXZlci0+aW9fbWVtX3Jlc2VydmUo YmRldiwgbWVtKTsKPj4+ICsgICAgICAgcmV0dXJuIGJkZXYtPmZ1bmNzLT5pb19tZW1fcmVzZXJ2 ZShiZGV2LCBtZW0pOwo+Pj4gICB9Cj4+Pgo+Pj4gLXZvaWQgdHRtX21lbV9pb19mcmVlKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK3ZvaWQgdHRtX21lbV9pb19mcmVlKHN0cnVjdCB0 dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2UgKm1lbSkKPj4+ICAgewo+Pj4gICAgICAgICAgaWYgKCFtZW0tPmJ1cy5vZmZzZXQgJiYg IW1lbS0+YnVzLmFkZHIpCj4+PiAgICAgICAgICAgICAgICAgIHJldHVybjsKPj4+Cj4+PiAtICAg ICAgIGlmIChiZGV2LT5kcml2ZXItPmlvX21lbV9mcmVlKQo+Pj4gLSAgICAgICAgICAgICAgIGJk ZXYtPmRyaXZlci0+aW9fbWVtX2ZyZWUoYmRldiwgbWVtKTsKPj4+ICsgICAgICAgaWYgKGJkZXYt PmZ1bmNzLT5pb19tZW1fZnJlZSkKPj4+ICsgICAgICAgICAgICAgICBiZGV2LT5mdW5jcy0+aW9f bWVtX2ZyZWUoYmRldiwgbWVtKTsKPj4+Cj4+PiAgICAgICAgICBtZW0tPmJ1cy5vZmZzZXQgPSAw Owo+Pj4gICAgICAgICAgbWVtLT5idXMuYWRkciA9IE5VTEw7Cj4+PiAgIH0KPj4+Cj4+PiAtc3Rh dGljIGludCB0dG1fcmVzb3VyY2VfaW9yZW1hcChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4+ICtzdGF0aWMgaW50IHR0bV9yZXNvdXJjZV9pb3JlbWFwKHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291 cmNlICptZW0sCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKip2aXJ0 dWFsKQo+Pj4gICB7Cj4+PiBAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyBpbnQgdHRtX3Jlc291 cmNlX2lvcmVtYXAoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICByZXR1 cm4gMDsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMgdm9pZCB0dG1fcmVzb3VyY2VfaW91bm1hcChz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMgdm9pZCB0dG1fcmVzb3VyY2Vf aW91bm1hcChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZvaWQgKnZpcnR1YWwpCj4+PiAgIHsKPj4+IEBAIC0yMTQsNyAr MjE0LDcgQEAgaW50IHR0bV9ib19tb3ZlX21lbWNweShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4 ICpjdHgsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpu ZXdfbWVtKQo+Pj4gICB7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0g Ym8tPmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7 Cj4+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5h Z2VyX3R5cGUoYmRldiwgbmV3X21lbS0+bWVtX3R5cGUpOwo+Pj4gICAgICAgICAgc3RydWN0IHR0 bV90dCAqdHRtID0gYm8tPnR0bTsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm9s ZF9tZW0gPSAmYm8tPm1lbTsKPj4+IEBAIC0zNTUsNyArMzU1LDcgQEAgc3RhdGljIGludCB0dG1f YnVmZmVyX29iamVjdF90cmFuc2ZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4g ICAgICAgICAgICogVE9ETzogRXhwbGljaXQgbWVtYmVyIGNvcHkgd291bGQgcHJvYmFibHkgYmUg YmV0dGVyIGhlcmUuCj4+PiAgICAgICAgICAgKi8KPj4+Cj4+PiAtICAgICAgIGF0b21pY19pbmMo JnR0bV9ib19nbG9iLmJvX2NvdW50KTsKPj4+ICsgICAgICAgYXRvbWljX2luYygmdHRtX2dsb2Iu Ym9fY291bnQpOwo+Pj4gICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJmZiby0+YmFzZS5kZGVzdHJv eSk7Cj4+PiAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmZmJvLT5iYXNlLmxydSk7Cj4+PiAgICAg ICAgICBJTklUX0xJU1RfSEVBRCgmZmJvLT5iYXNlLnN3YXApOwo+Pj4gQEAgLTU4NCw3ICs1ODQs NyBAQCBzdGF0aWMgaW50IHR0bV9ib19tb3ZlX3RvX2dob3N0KHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sCj4+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19tb3ZlX3BpcGVsaW5lX2V2aWN0KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCj4+PiAgIHsKPj4+IC0gICAg ICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+ICsgICAgICAgc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqZnJvbSA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgYm8tPm1lbS5t ZW1fdHlwZSk7Cj4+Pgo+Pj4gICAgICAgICAgLyoqCj4+PiBAQCAtNjEwLDcgKzYxMCw3IEBAIGlu dCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwaXBlbGluZSwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVt KQo+Pj4gICB7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJk ZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+PiAg ICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKmZyb20gPSB0dG1fbWFuYWdlcl90 eXBlKGJkZXYsIGJvLT5tZW0ubWVtX3R5cGUpOwo+Pj4gICAgICAgICAgc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG5ld19tZW0tPm1lbV90 eXBlKTsKPj4+ICAgICAgICAgIGludCByZXQgPSAwOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5j Cj4+PiBpbmRleCBlZWFjYTVkMWVmZTMuLjY5N2MwODhkMTA2MyAxMDA2NDQKPj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvX3ZtLmMKPj4+IEBAIC05NiwxMCArOTYsMTAgQEAgc3RhdGljIHZtX2ZhdWx0X3Qg dHRtX2JvX3ZtX2ZhdWx0X2lkbGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAg c3RhdGljIHVuc2lnbmVkIGxvbmcgdHRtX2JvX2lvX21lbV9wZm4oc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0KQo+Pj4gICB7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2ID0gYm8tPmJkZXY7Cj4+Pgo+Pj4gLSAgICAgICBpZiAoYmRldi0+ZHJpdmVyLT5pb19t ZW1fcGZuKQo+Pj4gLSAgICAgICAgICAgICAgIHJldHVybiBiZGV2LT5kcml2ZXItPmlvX21lbV9w Zm4oYm8sIHBhZ2Vfb2Zmc2V0KTsKPj4+ICsgICAgICAgaWYgKGJkZXYtPmZ1bmNzLT5pb19tZW1f cGZuKQo+Pj4gKyAgICAgICAgICAgICAgIHJldHVybiBiZGV2LT5mdW5jcy0+aW9fbWVtX3Bmbihi bywgcGFnZV9vZmZzZXQpOwo+Pj4KPj4+ICAgICAgICAgIHJldHVybiAoYm8tPm1lbS5idXMub2Zm c2V0ID4+IFBBR0VfU0hJRlQpICsgcGFnZV9vZmZzZXQ7Cj4+PiAgIH0KPj4+IEBAIC0yMTcsNyAr MjE3LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2luc2VydF9odWdlKHN0cnVjdCB2 bV9mYXVsdCAqdm1mLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlX3RvX3Bm bih0dG0tPnBhZ2VzW3BhZ2Vfb2Zmc2V0ICsgaV0pICE9IHBmbiArIGkpCj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dF9mYWxsYmFjazsKPj4+ICAgICAgICAgICAg ICAgICAgfQo+Pj4gLSAgICAgICB9IGVsc2UgaWYgKGJvLT5iZGV2LT5kcml2ZXItPmlvX21lbV9w Zm4pIHsKPj4+ICsgICAgICAgfSBlbHNlIGlmIChiby0+YmRldi0+ZnVuY3MtPmlvX21lbV9wZm4p IHsKPj4+ICAgICAgICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IGZhdWx0X3BhZ2Vfc2l6ZTsg KytpKSB7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR0bV9ib19pb19tZW1fcGZu KGJvLCBwYWdlX29mZnNldCArIGkpICE9IHBmbiArIGkpCj4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnb3RvIG91dF9mYWxsYmFjazsKPj4+IEBAIC0yNzksNyArMjc5LDcgQEAg dm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHRfcmVzZXJ2ZWQoc3RydWN0IHZtX2ZhdWx0ICp2bWYs Cj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gdm1mLT52 bWE7Cj4+PiAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gdm1hLT52bV9w cml2YXRlX2RhdGE7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8t PmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ PiAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0Owo+Pj4gICAgICAgICAgdW5zaWdu ZWQgbG9uZyBwYWdlX2xhc3Q7Cj4+PiAgICAgICAgICB1bnNpZ25lZCBsb25nIHBmbjsKPj4+IEBA IC00OTAsOCArNDkwLDggQEAgaW50IHR0bV9ib192bV9hY2Nlc3Moc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwKPj4+ICAgICAgICAgICAgICAgICAgcmV0ID0g dHRtX2JvX3ZtX2FjY2Vzc19rbWFwKGJvLCBvZmZzZXQsIGJ1ZiwgbGVuLCB3cml0ZSk7Cj4+PiAg ICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gICAgICAgICAgZGVmYXVsdDoKPj4+IC0gICAgICAg ICAgICAgICBpZiAoYm8tPmJkZXYtPmRyaXZlci0+YWNjZXNzX21lbW9yeSkKPj4+IC0gICAgICAg ICAgICAgICAgICAgICAgIHJldCA9IGJvLT5iZGV2LT5kcml2ZXItPmFjY2Vzc19tZW1vcnkoCj4+ PiArICAgICAgICAgICAgICAgaWYgKGJvLT5iZGV2LT5mdW5jcy0+YWNjZXNzX21lbW9yeSkKPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IGJvLT5iZGV2LT5mdW5jcy0+YWNjZXNzX21l bW9yeSgKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvLCBvZmZzZXQsIGJ1 ZiwgbGVuLCB3cml0ZSk7Cj4+PiAgICAgICAgICAgICAgICAgIGVsc2UKPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICByZXQgPSAtRUlPOwo+Pj4gQEAgLTUxMCw3ICs1MTAsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHR0bV9ib192bV9vcHMgPSB7Cj4+PiAg ICAgICAgICAuYWNjZXNzID0gdHRtX2JvX3ZtX2FjY2VzcywKPj4+ICAgfTsKPj4+Cj4+PiAtc3Rh dGljIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdHRtX2JvX3ZtX2xvb2t1cChzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0 dG1fYm9fdm1fbG9va3VwKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBvZmZz ZXQsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHBhZ2VzKQo+Pj4gICB7Cj4+PiBAQCAtNTU3LDkgKzU1Nyw4IEBAIHN0 YXRpYyB2b2lkIHR0bV9ib19tbWFwX3ZtYV9zZXR1cChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLCBzdHJ1Y3Qgdm1fYXJlYV9zCj4+PiAgIH0KPj4+Cj4+PiAgIGludCB0dG1fYm9fbW1hcChz dHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4+PiAtICAgICAg ICAgICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCj4+PiArICAgICAgICAgICAgICAg c3RydWN0IHR0bV9kZXZpY2UgKmJkZXYpCj4+PiAgIHsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9i b19kcml2ZXIgKmRyaXZlcjsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym87Cj4+PiAgICAgICAgICBpbnQgcmV0Owo+Pj4KPj4+IEBAIC01NzAsMTIgKzU2OSwxMSBAQCBp bnQgdHRtX2JvX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hLAo+Pj4gICAgICAgICAgaWYgKHVubGlrZWx5KCFibykpCj4+PiAgICAgICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOwo+Pj4KPj4+IC0gICAgICAgZHJpdmVyID0gYm8tPmJkZXYtPmRyaXZl cjsKPj4+IC0gICAgICAgaWYgKHVubGlrZWx5KCFkcml2ZXItPnZlcmlmeV9hY2Nlc3MpKSB7Cj4+ PiArICAgICAgIGlmICh1bmxpa2VseSghYm8tPmJkZXYtPmZ1bmNzLT52ZXJpZnlfYWNjZXNzKSkg ewo+Pj4gICAgICAgICAgICAgICAgICByZXQgPSAtRVBFUk07Cj4+PiAgICAgICAgICAgICAgICAg IGdvdG8gb3V0X3VucmVmOwo+Pj4gICAgICAgICAgfQo+Pj4gLSAgICAgICByZXQgPSBkcml2ZXIt PnZlcmlmeV9hY2Nlc3MoYm8sIGZpbHApOwo+Pj4gKyAgICAgICByZXQgPSBiby0+YmRldi0+ZnVu Y3MtPnZlcmlmeV9hY2Nlc3MoYm8sIGZpbHApOwo+Pj4gICAgICAgICAgaWYgKHVubGlrZWx5KHJl dCAhPSAwKSkKPj4+ICAgICAgICAgICAgICAgICAgZ290byBvdXRfdW5yZWY7Cj4+Pgo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jIGIvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fZGV2aWNlLmMKPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCAw MDAwMDAwMDAwMDAuLjY1YWE2ZTRmNWM2Ywo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPj4+IEBAIC0wLDAgKzEsMjIyIEBACj4+PiAr LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUICovCj4+PiArCj4+PiAr LyoKPj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOSBWTXdhcmUsIEluYy4sIFBhbG8gQWx0 bywgQ0EuLCBVU0EKPj4+ICsgKiBDb3B5cmlnaHQgMjAyMCBBZHZhbmNlZCBNaWNybyBEZXZpY2Vz LCBJbmMuCj4+PiArICoKPj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+Pj4gKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksCj4+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+Pj4gKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ Pj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZQo+Pj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+PiArICoKPj4+ICsgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs bCBiZSBpbmNsdWRlZCBpbgo+Pj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgo+Pj4gKyAqCj4+PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPj4+ ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSwKPj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPj4+ICsgKiBUSEUg Q09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IKPj4+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPj4+ICsgKiBBUklTSU5HIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPj4+ ICsgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+PiArICoKPj4+ICsgKiBBdXRo b3JzOiBDaHJpc3RpYW4gS8O2bmlnCj4+PiArICovCj4+PiArCj4+PiArI2RlZmluZSBwcl9mbXQo Zm10KSAiW1RUTSBERVZJQ0VdICIgZm10Cj4+PiArCj4+PiArI2luY2x1ZGUgPGRybS90dG0vdHRt X21vZHVsZS5oPgo+Pj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9kZXZpY2UuaD4KPj4+ICsjaW5j bHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+Cj4+PiArI2luY2x1ZGUgPGRybS90dG0vdHRtX3Bs YWNlbWVudC5oPgo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIHR0bV9nbG9iYWxfbXV0ZXggLSBwcm90 ZWN0aW5nIHRoZSBnbG9iYWwgc3RhdGUKPj4+ICsgKi8KPj4+ICtERUZJTkVfTVVURVgodHRtX2ds b2JhbF9tdXRleCk7Cj4+PiArdW5zaWduZWQgdHRtX2dsb2JfdXNlX2NvdW50Owo+Pj4gK3N0cnVj dCB0dG1fZ2xvYmFsIHR0bV9nbG9iOwo+Pj4gK0VYUE9SVF9TWU1CT0wodHRtX2dsb2IpOwo+Pj4g Kwo+Pj4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlIHR0bV9ib19jb3VudCA9IHsKPj4+ICsgICAg ICAgLm5hbWUgPSAiYm9fY291bnQiLAo+Pj4gKyAgICAgICAubW9kZSA9IFNfSVJVR08KPj4+ICt9 Owo+Pj4gKwo+Pj4gK3N0YXRpYyB2b2lkIHR0bV9nbG9iYWxfa29ial9yZWxlYXNlKHN0cnVjdCBr b2JqZWN0ICprb2JqKTsKPj4+ICsKPj4+ICtzdGF0aWMgc3NpemVfdCB0dG1fZ2xvYmFsX3Nob3co c3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqYnVmZmVyKQo+Pj4gK3sKPj4+ICsgICAgICAg c3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IHR0bV9n bG9iYWwsIGtvYmopOwo+Pj4gKwo+Pj4gKyAgICAgICByZXR1cm4gc25wcmludGYoYnVmZmVyLCBQ QUdFX1NJWkUsICIlZFxuIiwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRv bWljX3JlYWQoJmdsb2ItPmJvX2NvdW50KSk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlICp0dG1fZ2xvYmFsX2F0dHJzW10gPSB7Cj4+PiArICAgICAgICZ0dG1fYm9f Y291bnQsCj4+PiArICAgICAgIE5VTEwKPj4+ICt9Owo+Pj4gKwo+Pj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgc3lzZnNfb3BzIHR0bV9nbG9iYWxfb3BzID0gewo+Pj4gKyAgICAgICAuc2hvdyA9ICZ0 dG1fZ2xvYmFsX3Nob3cKPj4+ICt9Owo+Pj4gKwo+Pj4gK3N0YXRpYyBzdHJ1Y3Qga29ial90eXBl IHR0bV9nbG9iX2tvYmpfdHlwZSAgPSB7Cj4+PiArICAgICAgIC5yZWxlYXNlID0gJnR0bV9nbG9i YWxfa29ial9yZWxlYXNlLAo+Pj4gKyAgICAgICAuc3lzZnNfb3BzID0gJnR0bV9nbG9iYWxfb3Bz LAo+Pj4gKyAgICAgICAuZGVmYXVsdF9hdHRycyA9IHR0bV9nbG9iYWxfYXR0cnMKPj4+ICt9Owo+ Pj4gKwo+Pj4gK3N0YXRpYyB2b2lkIHR0bV9nbG9iYWxfa29ial9yZWxlYXNlKHN0cnVjdCBrb2Jq ZWN0ICprb2JqKQo+Pj4gK3sKPj4+ICsgICAgICAgc3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPQo+ Pj4gKyAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgdHRtX2dsb2JhbCwg a29iaik7Cj4+PiArCj4+PiArICAgICAgIF9fZnJlZV9wYWdlKGdsb2ItPmR1bW15X3JlYWRfcGFn ZSk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyB2b2lkIHR0bV9nbG9iYWxfcmVsZWFzZSh2b2lk KQo+Pj4gK3sKPj4+ICsgICAgICAgc3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPSAmdHRtX2dsb2I7 Cj4+PiArCj4+PiArICAgICAgIG11dGV4X2xvY2soJnR0bV9nbG9iYWxfbXV0ZXgpOwo+Pj4gKyAg ICAgICBpZiAoLS10dG1fZ2xvYl91c2VfY291bnQgPiAwKQo+Pj4gKyAgICAgICAgICAgICAgIGdv dG8gb3V0Owo+Pj4gKwo+Pj4gKyAgICAgICBrb2JqZWN0X2RlbCgmZ2xvYi0+a29iaik7Cj4+PiAr ICAgICAgIGtvYmplY3RfcHV0KCZnbG9iLT5rb2JqKTsKPj4+ICsgICAgICAgdHRtX21lbV9nbG9i YWxfcmVsZWFzZSgmdHRtX21lbV9nbG9iKTsKPj4+ICsgICAgICAgbWVtc2V0KGdsb2IsIDAsIHNp emVvZigqZ2xvYikpOwo+Pj4gK291dDoKPj4+ICsgICAgICAgbXV0ZXhfdW5sb2NrKCZ0dG1fZ2xv YmFsX211dGV4KTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGludCB0dG1fZ2xvYmFsX2luaXQo dm9pZCkKPj4+ICt7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9n bG9iOwo+Pj4gKyAgICAgICBpbnQgcmV0ID0gMDsKPj4+ICsgICAgICAgdW5zaWduZWQgaTsKPj4+ ICsKPj4+ICsgICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+PiArICAgICAg IGlmICgrK3R0bV9nbG9iX3VzZV9jb3VudCA+IDEpCj4+PiArICAgICAgICAgICAgICAgZ290byBv dXQ7Cj4+PiArCj4+PiArICAgICAgIHJldCA9IHR0bV9tZW1fZ2xvYmFsX2luaXQoJnR0bV9tZW1f Z2xvYik7Cj4+PiArICAgICAgIGlmIChyZXQpCj4+PiArICAgICAgICAgICAgICAgZ290byBvdXQ7 Cj4+PiArCj4+PiArICAgICAgIHNwaW5fbG9ja19pbml0KCZnbG9iLT5scnVfbG9jayk7Cj4+PiAr ICAgICAgIGdsb2ItPmR1bW15X3JlYWRfcGFnZSA9IGFsbG9jX3BhZ2UoX19HRlBfWkVSTyB8IEdG UF9ETUEzMik7Cj4+PiArCj4+PiArICAgICAgIGlmICh1bmxpa2VseShnbG9iLT5kdW1teV9yZWFk X3BhZ2UgPT0gTlVMTCkpIHsKPj4+ICsgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOwo+Pj4g KyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+Pj4gKyAgICAgICB9Cj4+PiArCj4+PiArICAgICAg IGZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpCj4+PiArICAgICAgICAg ICAgICAgSU5JVF9MSVNUX0hFQUQoJmdsb2ItPnN3YXBfbHJ1W2ldKTsKPj4+ICsgICAgICAgSU5J VF9MSVNUX0hFQUQoJmdsb2ItPmRldmljZV9saXN0KTsKPj4+ICsgICAgICAgYXRvbWljX3NldCgm Z2xvYi0+Ym9fY291bnQsIDApOwo+Pj4gKwo+Pj4gKyAgICAgICByZXQgPSBrb2JqZWN0X2luaXRf YW5kX2FkZCgKPj4+ICsgICAgICAgICAgICAgICAmZ2xvYi0+a29iaiwgJnR0bV9nbG9iX2tvYmpf dHlwZSwgdHRtX2dldF9rb2JqKCksICJidWZmZXJfb2JqZWN0cyIpOwo+Pj4gKyAgICAgICBpZiAo dW5saWtlbHkocmV0ICE9IDApKQo+Pj4gKyAgICAgICAgICAgICAgIGtvYmplY3RfcHV0KCZnbG9i LT5rb2JqKTsKPj4+ICtvdXQ6Cj4+PiArICAgICAgIG11dGV4X3VubG9jaygmdHRtX2dsb2JhbF9t dXRleCk7Cj4+PiArICAgICAgIHJldHVybiByZXQ7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyB2 b2lkIHR0bV9pbml0X3N5c21hbihzdHJ1Y3QgdHRtX2RldmljZSAqYmRldikKPj4+ICt7Cj4+PiAr ICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gJmJkZXYtPnN5c21hbjsK Pj4+ICsKPj4+ICsgICAgICAgLyoKPj4+ICsgICAgICAgICogSW5pdGlhbGl6ZSB0aGUgc3lzdGVt IG1lbW9yeSBidWZmZXIgdHlwZS4KPj4+ICsgICAgICAgICogT3RoZXIgdHlwZXMgbmVlZCB0byBi ZSBkcml2ZXIgLyBJT0NUTCBpbml0aWFsaXplZC4KPj4+ICsgICAgICAgICovCj4+PiArICAgICAg IG1hbi0+dXNlX3R0ID0gdHJ1ZTsKPj4+ICsKPj4+ICsgICAgICAgdHRtX3Jlc291cmNlX21hbmFn ZXJfaW5pdChtYW4sIDApOwo+Pj4gKyAgICAgICB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKGJkZXYs IFRUTV9QTF9TWVNURU0sIG1hbik7Cj4+PiArICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3Nl dF91c2VkKG1hbiwgdHJ1ZSk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyB2b2lkIHR0bV9kZXZp Y2VfZGVsYXllZF93b3JrcXVldWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+Pj4gK3sKPj4+ ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPQo+Pj4gKyAgICAgICAgICAgICAgIGNv bnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdHRtX2RldmljZSwgd3Eud29yayk7Cj4+PiArCj4+PiAr ICAgICAgIGlmICghdHRtX2JvX2RlbGF5ZWRfZGVsZXRlKGJkZXYsIGZhbHNlKSkKPj4+ICsgICAg ICAgICAgICAgICBzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmJkZXYtPndxLAo+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEhaIC8gMTAwKSA8IDEpID8gMSA6IEhaIC8g MTAwKTsKPj4+ICt9Cj4+PiArCj4+PiAraW50IHR0bV9kZXZpY2VfaW5pdChzdHJ1Y3QgdHRtX2Rl dmljZSAqYmRldiwgc3RydWN0IHR0bV9kZXZpY2VfZnVuY3MgKmZ1bmNzLAo+Pj4gKyAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKPj4+ICsgICAgICAgICAg ICAgICAgICAgc3RydWN0IGRybV92bWFfb2Zmc2V0X21hbmFnZXIgKnZtYV9tYW5hZ2VyLAo+Pj4g KyAgICAgICAgICAgICAgICAgICBib29sIG5lZWRfZG1hMzIpCj4+PiArewo+Pj4gKyAgICAgICBz dHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fZ2xvYjsKPj4+ICsgICAgICAgaW50IHJldDsK Pj4+ICsKPj4+ICsgICAgICAgaWYgKFdBUk5fT04odm1hX21hbmFnZXIgPT0gTlVMTCkpCj4+PiAr ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiArCj4+PiArICAgICAgIHJldCA9IHR0 bV9nbG9iYWxfaW5pdCgpOwo+Pj4gKyAgICAgICBpZiAocmV0KQo+Pj4gKyAgICAgICAgICAgICAg IHJldHVybiByZXQ7Cj4+PiArCj4+PiArICAgICAgIGJkZXYtPmZ1bmNzID0gZnVuY3M7Cj4+PiAr Cj4+PiArICAgICAgIHR0bV9pbml0X3N5c21hbihiZGV2KTsKPj4+ICsKPj4+ICsgICAgICAgYmRl di0+dm1hX21hbmFnZXIgPSB2bWFfbWFuYWdlcjsKPj4+ICsgICAgICAgSU5JVF9ERUxBWUVEX1dP UksoJmJkZXYtPndxLCB0dG1fZGV2aWNlX2RlbGF5ZWRfd29ya3F1ZXVlKTsKPj4+ICsgICAgICAg SU5JVF9MSVNUX0hFQUQoJmJkZXYtPmRkZXN0cm95KTsKPj4+ICsgICAgICAgYmRldi0+ZGV2X21h cHBpbmcgPSBtYXBwaW5nOwo+Pj4gKyAgICAgICBiZGV2LT5uZWVkX2RtYTMyID0gbmVlZF9kbWEz MjsKPj4+ICsgICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+PiArICAgICAg IGxpc3RfYWRkX3RhaWwoJmJkZXYtPmRldmljZV9saXN0LCAmZ2xvYi0+ZGV2aWNlX2xpc3QpOwo+ Pj4gKyAgICAgICBtdXRleF91bmxvY2soJnR0bV9nbG9iYWxfbXV0ZXgpOwo+Pj4gKwo+Pj4gKyAg ICAgICByZXR1cm4gMDsKPj4+ICt9Cj4+PiArRVhQT1JUX1NZTUJPTCh0dG1fZGV2aWNlX2luaXQp Owo+Pj4gKwo+Pj4gK2ludCB0dG1fZGV2aWNlX3JlbGVhc2Uoc3RydWN0IHR0bV9kZXZpY2UgKmJk ZXYpCj4+PiArewo+Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fZ2xv YjsKPj4+ICsgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4+PiArICAg ICAgIGludCByZXQgPSAwOwo+Pj4gKyAgICAgICB1bnNpZ25lZCBpOwo+Pj4gKwo+Pj4gKyAgICAg ICBtYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIFRUTV9QTF9TWVNURU0pOwo+Pj4gKyAgICAg ICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPj4+ICsgICAgICAg dHRtX3NldF9kcml2ZXJfbWFuYWdlcihiZGV2LCBUVE1fUExfU1lTVEVNLCBOVUxMKTsKPj4+ICsK Pj4+ICsgICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+PiArICAgICAgIGxp c3RfZGVsKCZiZGV2LT5kZXZpY2VfbGlzdCk7Cj4+PiArICAgICAgIG11dGV4X3VubG9jaygmdHRt X2dsb2JhbF9tdXRleCk7Cj4+PiArCj4+PiArICAgICAgIGNhbmNlbF9kZWxheWVkX3dvcmtfc3lu YygmYmRldi0+d3EpOwo+Pj4gKwo+Pj4gKyAgICAgICBpZiAodHRtX2JvX2RlbGF5ZWRfZGVsZXRl KGJkZXYsIHRydWUpKQo+Pj4gKyAgICAgICAgICAgICAgIHByX2RlYnVnKCJEZWxheWVkIGRlc3Ry b3kgbGlzdCB3YXMgY2xlYW5cbiIpOwo+Pj4gKwo+Pj4gKyAgICAgICBzcGluX2xvY2soJmdsb2It PmxydV9sb2NrKTsKPj4+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IFRUTV9NQVhfQk9fUFJJT1JJ VFk7ICsraSkKPj4+ICsgICAgICAgICAgICAgICBpZiAobGlzdF9lbXB0eSgmbWFuLT5scnVbMF0p KQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJfZGVidWcoIlN3YXAgbGlzdCAlZCB3YXMg Y2xlYW5cbiIsIGkpOwo+Pj4gKyAgICAgICBzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ Pj4gKwo+Pj4gKyAgICAgICBpZiAoIXJldCkKPj4+ICsgICAgICAgICAgICAgICB0dG1fZ2xvYmFs X3JlbGVhc2UoKTsKPj4+ICsKPj4+ICsgICAgICAgcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArRVhQ T1JUX1NZTUJPTCh0dG1fZGV2aWNlX3JlbGVhc2UpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f ZXhlY2J1Zl91dGlsLmMKPj4+IGluZGV4IDhhOGYxYTZhODNhNi4uYjk4ZWI0YzFlNWVjIDEwMDY0 NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCj4+PiBAQCAtNTEsMTQg KzUxLDE0IEBAIHZvaWQgdHRtX2V1X2JhY2tvZmZfcmVzZXJ2YXRpb24oc3RydWN0IHd3X2FjcXVp cmVfY3R4ICp0aWNrZXQsCj4+PiAgICAgICAgICBpZiAobGlzdF9lbXB0eShsaXN0KSkKPj4+ICAg ICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4KPj4+IC0gICAgICAgc3Bpbl9sb2NrKCZ0dG1fYm9f Z2xvYi5scnVfbG9jayk7Cj4+PiArICAgICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2sp Owo+Pj4gICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgbGlzdCwgaGVhZCkgewo+ Pj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gZW50cnkt PmJvOwo+Pj4KPj4+ICAgICAgICAgICAgICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8s IE5VTEwpOwo+Pj4gICAgICAgICAgICAgICAgICBkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVz dik7Cj4+PiAgICAgICAgICB9Cj4+PiAtICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5s cnVfbG9jayk7Cj4+PiArICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ Pgo+Pj4gICAgICAgICAgaWYgKHRpY2tldCkKPj4+ICAgICAgICAgICAgICAgICAgd3dfYWNxdWly ZV9maW5pKHRpY2tldCk7Cj4+PiBAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgdHRtX2V1X2ZlbmNl X2J1ZmZlcl9vYmplY3RzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAo+Pj4gICAgICAg ICAgaWYgKGxpc3RfZW1wdHkobGlzdCkpCj4+PiAgICAgICAgICAgICAgICAgIHJldHVybjsKPj4+ Cj4+PiAtICAgICAgIHNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+Pj4gKyAgICAg ICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+ICAgICAgICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkoZW50cnksIGxpc3QsIGhlYWQpIHsKPj4+ICAgICAgICAgICAgICAgICAgc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9IGVudHJ5LT5ibzsKPj4+Cj4+PiBAQCAtMTY1LDcgKzE2 NSw3IEBAIHZvaWQgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCB3d19hY3F1aXJl X2N0eCAqdGlja2V0LAo+Pj4gICAgICAgICAgICAgICAgICB0dG1fYm9fbW92ZV90b19scnVfdGFp bChibywgTlVMTCk7Cj4+PiAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFz ZS5yZXN2KTsKPj4+ICAgICAgICAgIH0KPj4+IC0gICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19n bG9iLmxydV9sb2NrKTsKPj4+ICsgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2Nr KTsKPj4+ICAgICAgICAgIGlmICh0aWNrZXQpCj4+PiAgICAgICAgICAgICAgICAgIHd3X2FjcXVp cmVfZmluaSh0aWNrZXQpOwo+Pj4gICB9Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fbWVtb3J5LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYwo+Pj4g aW5kZXggODlkNTBmMzhjMGYyLi42YTZjMTA3MmQ4MzEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fbWVtb3J5LmMKPj4+IEBAIC0yNzUsNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgdHRtX3Nocmlu ayhzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IsIGJvb2wgZnJvbV93cSwKPj4+Cj4+PiAgICAg ICAgICB3aGlsZSAodHRtX3pvbmVzX2Fib3ZlX3N3YXBfdGFyZ2V0KGdsb2IsIGZyb21fd3EsIGV4 dHJhKSkgewo+Pj4gICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmZ2xvYi0+bG9jayk7Cj4+ PiAtICAgICAgICAgICAgICAgcmV0ID0gdHRtX2JvX3N3YXBvdXQoJnR0bV9ib19nbG9iLCBjdHgp Owo+Pj4gKyAgICAgICAgICAgICAgIHJldCA9IHR0bV9ib19zd2Fwb3V0KCZ0dG1fZ2xvYiwgY3R4 KTsKPj4+ICAgICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZnbG9iLT5sb2NrKTsKPj4+ICAgICAg ICAgICAgICAgICAgaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9y YW5nZV9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2VyLmMK Pj4+IGluZGV4IDFkYTBlMjc3YzUxMS4uYmQzYzZjNmI0MzI4IDEwMDY0NAo+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFuYWdlci5jCj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2VyLmMKPj4+IEBAIC0xMTIsNyArMTEyLDcgQEAgc3Rh dGljIHZvaWQgdHRtX3JhbmdlX21hbl9mcmVlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAq bWFuLAo+Pj4KPj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9m dW5jIHR0bV9yYW5nZV9tYW5hZ2VyX2Z1bmM7Cj4+Pgo+Pj4gLWludCB0dG1fcmFuZ2VfbWFuX2lu aXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAraW50IHR0bV9yYW5nZV9tYW5faW5p dChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIHR5cGUsIGJvb2wgdXNlX3R0LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBwX3NpemUpCj4+PiAgIHsKPj4+IEBAIC0xMzksNyArMTM5LDcgQEAgaW50IHR0 bV9yYW5nZV9tYW5faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICAgfQo+Pj4g ICBFWFBPUlRfU1lNQk9MKHR0bV9yYW5nZV9tYW5faW5pdCk7Cj4+Pgo+Pj4gLWludCB0dG1fcmFu Z2VfbWFuX2Zpbmkoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAraW50IHR0bV9yYW5n ZV9tYW5fZmluaShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIHR5cGUpCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCB0eXBlKTsKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jIGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fcmVzb3VyY2UuYwo+Pj4gaW5kZXggYjMyNWI5MjY0MjAzLi43ZmFhNGE2 YWUyOGYgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5j Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jCj4+PiBAQCAtODMs NyArODMsNyBAQCBFWFBPUlRfU1lNQk9MKHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQpOwo+Pj4g ICAgKiBGb3JjZSBhbGwgdGhlIG9iamVjdHMgb3V0IG9mIGEgbWVtb3J5IG1hbmFnZXIgdW50aWwg Y2xlYW4uCj4+PiAgICAqIFBhcnQgb2YgbWVtb3J5IG1hbmFnZXIgY2xlYW51cCBzZXF1ZW5jZS4K Pj4+ICAgICovCj4+PiAtaW50IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4o c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAraW50IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy X2ZvcmNlX2xpc3RfY2xlYW4oc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyICptYW4pCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBj dHggPSB7Cj4+PiBAQCAtOTEsNyArOTEsNyBAQCBpbnQgdHRtX3Jlc291cmNlX21hbmFnZXJfZm9y Y2VfbGlzdF9jbGVhbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAg ICAgICAgLm5vX3dhaXRfZ3B1ID0gZmFsc2UsCj4+PiAgICAgICAgICAgICAgICAgIC5mbGFncyA9 IFRUTV9PUFRfRkxBR19GT1JDRV9BTExPQwo+Pj4gICAgICAgICAgfTsKPj4+IC0gICAgICAgc3Ry dWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSAmdHRtX2JvX2dsb2I7Cj4+PiArICAgICAgIHN0cnVj dCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOwo+Pj4gICAgICAgICAgc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7Cj4+PiAgICAgICAgICBpbnQgcmV0Owo+Pj4gICAgICAgICAgdW5zaWduZWQg aTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jIGIvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fdHQuYwo+Pj4gaW5kZXggM2U1ZGQ2MjcxZDRjLi45NWRmZmVlODI5 OWQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4+PiBAQCAtNDQsNyArNDQsNyBAQAo+Pj4g ICAgKi8KPj4+ICAgaW50IHR0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywgYm9vbCB6ZXJvX2FsbG9jKQo+Pj4gICB7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 ID0gYm8tPmJkZXY7Cj4+PiAgICAgICAgICB1aW50MzJfdCBwYWdlX2ZsYWdzID0gMDsKPj4+Cj4+ PiAgICAgICAgICBkbWFfcmVzdl9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKPj4+IEBAIC03 Myw3ICs3Myw3IEBAIGludCB0dG1fdHRfY3JlYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sIGJvb2wgemVyb19hbGxvYykKPj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 Cj4+PiAgICAgICAgICB9Cj4+Pgo+Pj4gLSAgICAgICBiby0+dHRtID0gYmRldi0+ZHJpdmVyLT50 dG1fdHRfY3JlYXRlKGJvLCBwYWdlX2ZsYWdzKTsKPj4+ICsgICAgICAgYm8tPnR0bSA9IGJkZXYt PmZ1bmNzLT50dG1fdHRfY3JlYXRlKGJvLCBwYWdlX2ZsYWdzKTsKPj4+ICAgICAgICAgIGlmICh1 bmxpa2VseShiby0+dHRtID09IE5VTEwpKQo+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVO T01FTTsKPj4+Cj4+PiBAQCAtMTE0LDcgKzExNCw3IEBAIHN0YXRpYyBpbnQgdHRtX3NnX3R0X2Fs bG9jX3BhZ2VfZGlyZWN0b3J5KHN0cnVjdCB0dG1fZG1hX3R0ICp0dG0pCj4+PiAgICAgICAgICBy ZXR1cm4gMDsKPj4+ICAgfQo+Pj4KPj4+IC12b2lkIHR0bV90dF9kZXN0cm95X2NvbW1vbihzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gK3ZvaWQgdHRt X3R0X2Rlc3Ryb3lfY29tbW9uKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0 ICp0dG0pCj4+PiAgIHsKPj4+ICAgICAgICAgIHR0bV90dF91bnBvcHVsYXRlKGJkZXYsIHR0bSk7 Cj4+Pgo+Pj4gQEAgLTEyNSw5ICsxMjUsOSBAQCB2b2lkIHR0bV90dF9kZXN0cm95X2NvbW1vbihz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB9Cj4+ PiAgIEVYUE9SVF9TWU1CT0wodHRtX3R0X2Rlc3Ryb3lfY29tbW9uKTsKPj4+Cj4+PiAtdm9pZCB0 dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAq dHRtKQo+Pj4gK3ZvaWQgdHRtX3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0 cnVjdCB0dG1fdHQgKnR0bSkKPj4+ICAgewo+Pj4gLSAgICAgICBiZGV2LT5kcml2ZXItPnR0bV90 dF9kZXN0cm95KGJkZXYsIHR0bSk7Cj4+PiArICAgICAgIGJkZXYtPmZ1bmNzLT50dG1fdHRfZGVz dHJveShiZGV2LCB0dG0pOwo+Pj4gICB9Cj4+Pgo+Pj4gICBzdGF0aWMgdm9pZCB0dG1fdHRfaW5p dF9maWVsZHMoc3RydWN0IHR0bV90dCAqdHRtLAo+Pj4gQEAgLTI1OCw3ICsyNTgsNyBAQCBpbnQg dHRtX3R0X3N3YXBpbihzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiAgICAgICAgICByZXR1cm4gcmV0 Owo+Pj4gICB9Cj4+Pgo+Pj4gLWludCB0dG1fdHRfc3dhcG91dChzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gK2ludCB0dG1fdHRfc3dhcG91dChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB7Cj4+PiAgICAg ICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqc3dhcF9zcGFjZTsKPj4+ICAgICAgICAgIHN0cnVj dCBmaWxlICpzd2FwX3N0b3JhZ2U7Cj4+PiBAQCAtMzA4LDcgKzMwOCw3IEBAIGludCB0dG1fdHRf c3dhcG91dChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+ Pj4gICAgICAgICAgcmV0dXJuIHJldDsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMgdm9pZCB0dG1f dHRfYWRkX21hcHBpbmcoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQg KnR0bSkKPj4+ICtzdGF0aWMgdm9pZCB0dG1fdHRfYWRkX21hcHBpbmcoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4+ICAgewo+Pj4gICAgICAgICAgcGdvZmZf dCBpOwo+Pj4KPj4+IEBAIC0zMTksNyArMzE5LDcgQEAgc3RhdGljIHZvaWQgdHRtX3R0X2FkZF9t YXBwaW5nKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ PiAgICAgICAgICAgICAgICAgIHR0bS0+cGFnZXNbaV0tPm1hcHBpbmcgPSBiZGV2LT5kZXZfbWFw cGluZzsKPj4+ICAgfQo+Pj4KPj4+IC1pbnQgdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+Pj4gK2ludCB0dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsCj4+PiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVj dCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+Pj4gICB7Cj4+PiAgICAgICAgICBpbnQgcmV0Owo+ Pj4gQEAgLTMzMCw4ICszMzAsOCBAQCBpbnQgdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgaWYgKHR0bV90dF9pc19wb3B1bGF0ZWQodHRtKSkK Pj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+Pgo+Pj4gLSAgICAgICBpZiAoYmRldi0+ ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUpCj4+PiAtICAgICAgICAgICAgICAgcmV0ID0gYmRldi0+ ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUoYmRldiwgdHRtLCBjdHgpOwo+Pj4gKyAgICAgICBpZiAo YmRldi0+ZnVuY3MtPnR0bV90dF9wb3B1bGF0ZSkKPj4+ICsgICAgICAgICAgICAgICByZXQgPSBi ZGV2LT5mdW5jcy0+dHRtX3R0X3BvcHVsYXRlKGJkZXYsIHR0bSwgY3R4KTsKPj4+ICAgICAgICAg IGVsc2UKPj4+ICAgICAgICAgICAgICAgICAgcmV0ID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRtLCBj dHgpOwo+Pj4gICAgICAgICAgaWYgKCFyZXQpCj4+PiBAQCAtMzU0LDE1ICszNTQsMTUgQEAgc3Rh dGljIHZvaWQgdHRtX3R0X2NsZWFyX21hcHBpbmcoc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICAg ICAgICAgfQo+Pj4gICB9Cj4+Pgo+Pj4gLXZvaWQgdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCj4+PiArdm9pZCB0dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQg KnR0bSkKPj4+ICAgewo+Pj4gICAgICAgICAgaWYgKCF0dG1fdHRfaXNfcG9wdWxhdGVkKHR0bSkp Cj4+PiAgICAgICAgICAgICAgICAgIHJldHVybjsKPj4+Cj4+PiAgICAgICAgICB0dG1fdHRfY2xl YXJfbWFwcGluZyh0dG0pOwo+Pj4gLSAgICAgICBpZiAoYmRldi0+ZHJpdmVyLT50dG1fdHRfdW5w b3B1bGF0ZSkKPj4+IC0gICAgICAgICAgICAgICBiZGV2LT5kcml2ZXItPnR0bV90dF91bnBvcHVs YXRlKGJkZXYsIHR0bSk7Cj4+PiArICAgICAgIGlmIChiZGV2LT5mdW5jcy0+dHRtX3R0X3VucG9w dWxhdGUpCj4+PiArICAgICAgICAgICAgICAgYmRldi0+ZnVuY3MtPnR0bV90dF91bnBvcHVsYXRl KGJkZXYsIHR0bSk7Cj4+PiAgICAgICAgICBlbHNlCj4+PiAgICAgICAgICAgICAgICAgIHR0bV9w b29sX3VucG9wdWxhdGUodHRtKTsKPj4+ICAgfQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2JsaXQuYwo+Pj4gaW5kZXggZjIxODgxZTA4N2RiLi5kMDIyOGViMTYxNDcgMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMKPj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYwo+Pj4gQEAgLTQ2NSwxMyArNDY1LDEzIEBA IGludCB2bXdfYm9fY3B1X2JsaXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpkc3QsCj4+PiAg ICAgICAgICAgICAgICAgIGRtYV9yZXN2X2Fzc2VydF9oZWxkKHNyYy0+YmFzZS5yZXN2KTsKPj4+ Cj4+PiAgICAgICAgICBpZiAoIXR0bV90dF9pc19wb3B1bGF0ZWQoZHN0LT50dG0pKSB7Cj4+PiAt ICAgICAgICAgICAgICAgcmV0ID0gZHN0LT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZShk c3QtPmJkZXYsIGRzdC0+dHRtLCAmY3R4KTsKPj4+ICsgICAgICAgICAgICAgICByZXQgPSBkc3Qt PmJkZXYtPmZ1bmNzLT50dG1fdHRfcG9wdWxhdGUoZHN0LT5iZGV2LCBkc3QtPnR0bSwgJmN0eCk7 Cj4+PiAgICAgICAgICAgICAgICAgIGlmIChyZXQpCj4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIHJldDsKPj4+ICAgICAgICAgIH0KPj4+Cj4+PiAgICAgICAgICBpZiAoIXR0bV90 dF9pc19wb3B1bGF0ZWQoc3JjLT50dG0pKSB7Cj4+PiAtICAgICAgICAgICAgICAgcmV0ID0gc3Jj LT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZShzcmMtPmJkZXYsIHNyYy0+dHRtLCAmY3R4 KTsKPj4+ICsgICAgICAgICAgICAgICByZXQgPSBzcmMtPmJkZXYtPmZ1bmNzLT50dG1fdHRfcG9w dWxhdGUoc3JjLT5iZGV2LCBzcmMtPnR0bSwgJmN0eCk7Cj4+PiAgICAgICAgICAgICAgICAgIGlm IChyZXQpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+ICAgICAg ICAgIH0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5j IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYwo+Pj4gaW5kZXggOWE2NmJhMjU0 MzI2Li5jZjhkOWYxMTQ1ZGUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9iby5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5j Cj4+PiBAQCAtNTQ2LDcgKzU0Niw3IEBAIGludCB2bXdfYm9faW5pdChzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LAo+Pj4gICAgICAgICAgICAgICAgICB2b2lkICgqYm9fZnJlZSkoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibykpCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCBjdHggPSB7IGludGVycnVwdGlibGUsIGZhbHNlIH07Cj4+PiAtICAgICAg IHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gJmRldl9wcml2LT5iZGV2Owo+Pj4gKyAgICAg ICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9ICZkZXZfcHJpdi0+YmRldjsKPj4+ICAgICAgICAg IHNpemVfdCBhY2Nfc2l6ZTsKPj4+ICAgICAgICAgIGludCByZXQ7Cj4+PiAgICAgICAgICBib29s IHVzZXIgPSAoYm9fZnJlZSA9PSAmdm13X3VzZXJfYm9fZGVzdHJveSk7Cj4+PiBAQCAtMTA1OCw3 ICsxMDU4LDcgQEAgaW50IHZtd191c2VyX2JvX3JlZmVyZW5jZShzdHJ1Y3QgdHRtX29iamVjdF9m aWxlICp0ZmlsZSwKPj4+ICAgdm9pZCB2bXdfYm9fZmVuY2Vfc2luZ2xlKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2bXdf ZmVuY2Vfb2JqICpmZW5jZSkKPj4+ICAgewo+Pj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiA9IGJvLT5iZGV2Owo+Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9 IGJvLT5iZGV2Owo+Pj4KPj4+ICAgICAgICAgIHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYg PQo+Pj4gICAgICAgICAgICAgICAgICBjb250YWluZXJfb2YoYmRldiwgc3RydWN0IHZtd19wcml2 YXRlLCBiZGV2KTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCj4+PiBpbmRleCBi ZGI3YTVlOTY1NjAuLmZjZGEzYjc2ZTBkZiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9kcnYuYwo+Pj4gQEAgLTg3Miw3ICs4NzIsNyBAQCBzdGF0aWMgaW50IHZtd19kcml2ZXJf bG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGNoaXBzZXQpCj4+PiAg ICAgICAgICBkcm1fdm1hX29mZnNldF9tYW5hZ2VyX2luaXQoJmRldl9wcml2LT52bWFfbWFuYWdl ciwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fRklMRV9QQUdF X09GRlNFVF9TVEFSVCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE Uk1fRklMRV9QQUdFX09GRlNFVF9TSVpFKTsKPj4+IC0gICAgICAgcmV0ID0gdHRtX2JvX2Rldmlj ZV9pbml0KCZkZXZfcHJpdi0+YmRldiwKPj4+ICsgICAgICAgcmV0ID0gdHRtX2RldmljZV9pbml0 KCZkZXZfcHJpdi0+YmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm dm13X2JvX2RyaXZlciwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYt PmFub25faW5vZGUtPmlfbWFwcGluZywKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmZGV2X3ByaXYtPnZtYV9tYW5hZ2VyLAo+Pj4gQEAgLTk5Myw3ICs5OTMsNyBAQCBzdGF0 aWMgaW50IHZtd19kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBs b25nIGNoaXBzZXQpCj4+PiAgICAgICAgICAgICAgICAgIHZtd19nbXJpZF9tYW5fZmluaShkZXZf cHJpdiwgVk1XX1BMX0dNUik7Cj4+PiAgICAgICAgICB2bXdfdnJhbV9tYW5hZ2VyX2ZpbmkoZGV2 X3ByaXYpOwo+Pj4gICBvdXRfbm9fdnJhbToKPj4+IC0gICAgICAgKHZvaWQpdHRtX2JvX2Rldmlj ZV9yZWxlYXNlKCZkZXZfcHJpdi0+YmRldik7Cj4+PiArICAgICAgICh2b2lkKXR0bV9kZXZpY2Vf cmVsZWFzZSgmZGV2X3ByaXYtPmJkZXYpOwo+Pj4gICBvdXRfbm9fYmRldjoKPj4+ICAgICAgICAg IHZtd19mZW5jZV9tYW5hZ2VyX3Rha2Vkb3duKGRldl9wcml2LT5mbWFuKTsKPj4+ICAgb3V0X25v X2ZtYW46Cj4+PiBAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgc3RhdGljIHZvaWQgdm13X2RyaXZlcl91 bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+ICAgICAgICAgIGlmIChkZXZfcHJpdi0+ aGFzX21vYikKPj4+ICAgICAgICAgICAgICAgICAgdm13X2dtcmlkX21hbl9maW5pKGRldl9wcml2 LCBWTVdfUExfTU9CKTsKPj4+ICAgICAgICAgIHZtd192cmFtX21hbmFnZXJfZmluaShkZXZfcHJp dik7Cj4+PiAtICAgICAgICh2b2lkKSB0dG1fYm9fZGV2aWNlX3JlbGVhc2UoJmRldl9wcml2LT5i ZGV2KTsKPj4+ICsgICAgICAgKHZvaWQpIHR0bV9kZXZpY2VfcmVsZWFzZSgmZGV2X3ByaXYtPmJk ZXYpOwo+Pj4gICAgICAgICAgZHJtX3ZtYV9vZmZzZXRfbWFuYWdlcl9kZXN0cm95KCZkZXZfcHJp di0+dm1hX21hbmFnZXIpOwo+Pj4gICAgICAgICAgdm13X3JlbGVhc2VfZGV2aWNlX2xhdGUoZGV2 X3ByaXYpOwo+Pj4gICAgICAgICAgdm13X2ZlbmNlX21hbmFnZXJfdGFrZWRvd24oZGV2X3ByaXYt PmZtYW4pOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKPj4+IGluZGV4IGI0NWJl Y2JiMDBmOC4uYzhkM2UzZWVlZDQwIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5oCj4+PiBAQCAtNDkwLDcgKzQ5MCw3IEBAIGVudW0gdm13X3NtX3R5cGUgewo+Pj4gICB9 Owo+Pj4KPj4+ICAgc3RydWN0IHZtd19wcml2YXRlIHsKPj4+IC0gICAgICAgc3RydWN0IHR0bV9i b19kZXZpY2UgYmRldjsKPj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgYmRldjsKPj4+Cj4+ PiAgICAgICAgICBzdHJ1Y3Qgdm13X2ZpZm9fc3RhdGUgZmlmbzsKPj4+Cj4+PiBAQCAtMTAxNCw3 ICsxMDE0LDcgQEAgZXh0ZXJuIHN0cnVjdCB0dG1fcGxhY2VtZW50IHZtd19ldmljdGFibGVfcGxh Y2VtZW50Owo+Pj4gICBleHRlcm4gc3RydWN0IHR0bV9wbGFjZW1lbnQgdm13X3NyZl9wbGFjZW1l bnQ7Cj4+PiAgIGV4dGVybiBzdHJ1Y3QgdHRtX3BsYWNlbWVudCB2bXdfbW9iX3BsYWNlbWVudDsK Pj4+ICAgZXh0ZXJuIHN0cnVjdCB0dG1fcGxhY2VtZW50IHZtd19ub25maXhlZF9wbGFjZW1lbnQ7 Cj4+PiAtZXh0ZXJuIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHZtd19ib19kcml2ZXI7Cj4+PiArZXh0 ZXJuIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIHZtd19ib19kcml2ZXI7Cj4+PiAgIGV4dGVybiBj b25zdCBzdHJ1Y3Qgdm13X3NnX3RhYmxlICoKPj4+ICAgdm13X2JvX3NnX3RhYmxlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+Pj4gICBleHRlcm4gaW50IHZtd19ib19jcmVhdGVfYW5k X3BvcHVsYXRlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKPj4+IGluZGV4IDVlOTIyZDlkNWYyYy4uMjA1NDI0 MDE3ZTIzIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVz b3VyY2UuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2Uu Ywo+Pj4gQEAgLTg1OCw3ICs4NTgsNyBAQCB2b2lkIHZtd19xdWVyeV9tb3ZlX25vdGlmeShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPj4+ICAgewo+Pj4gICAgICAgICAgc3RydWN0IHZt d19idWZmZXJfb2JqZWN0ICpkeF9xdWVyeV9tb2I7Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2ID0gYm8tPmJkZXY7Cj4+PiAgICAgICAgICBzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 Owo+Pj4KPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf dHRtX2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5j Cj4+PiBpbmRleCA5NzVkMDZjMmUzNWUuLjgxYWVjZDcyYTk3MSAxMDA2NDQKPj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYwo+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCj4+PiBAQCAtNDg5LDcgKzQ4OSw3 IEBAIGNvbnN0IHN0cnVjdCB2bXdfc2dfdGFibGUgKnZtd19ib19zZ190YWJsZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvKQo+Pj4gICB9Cj4+Pgo+Pj4KPj4+IC1zdGF0aWMgaW50IHZtd190 dG1fYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0aWMgaW50IHZtd190 dG1fYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3VyY2UgKmJvX21lbSkKPj4+ ICAgewo+Pj4gICAgICAgICAgc3RydWN0IHZtd190dG1fdHQgKnZtd19iZSA9Cj4+PiBAQCAtNTMz LDcgKzUzMyw3IEBAIHN0YXRpYyBpbnQgdm13X3R0bV9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+Pj4gICAgICAgICAgcmV0dXJuIHJldDsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMg dm9pZCB2bXdfdHRtX3VuYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtzdGF0 aWMgdm9pZCB2bXdfdHRtX3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiAgIHsKPj4+ICAg ICAgICAgIHN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfYmUgPQo+Pj4gQEAgLTU1OSw3ICs1NTksNyBA QCBzdGF0aWMgdm9pZCB2bXdfdHRtX3VuYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4+ICAgfQo+Pj4KPj4+Cj4+PiAtc3RhdGljIHZvaWQgdm13X3R0bV9kZXN0cm95KHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiArc3RhdGljIHZvaWQg dm13X3R0bV9kZXN0cm95KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0 dG0pCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfYmUgPQo+Pj4g ICAgICAgICAgICAgICAgICBjb250YWluZXJfb2YodHRtLCBzdHJ1Y3Qgdm13X3R0bV90dCwgZG1h X3R0bS50dG0pOwo+Pj4gQEAgLTU3OSw3ICs1NzksNyBAQCBzdGF0aWMgdm9pZCB2bXdfdHRtX2Rl c3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4+ ICAgfQo+Pj4KPj4+Cj4+PiAtc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+Pj4gK3N0YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4+ICAgewo+Pj4g ICAgICAgICAgc3RydWN0IHZtd190dG1fdHQgKnZtd190dCA9Cj4+PiBAQCAtNjA4LDcgKzYwOCw3 IEBAIHN0YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwKPj4+ICAgICAgICAgIHJldHVybiByZXQ7Cj4+PiAgIH0KPj4+Cj4+PiAtc3RhdGljIHZvaWQg dm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK3N0YXRp YyB2b2lkIHZtd190dG1fdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+Pj4gICB7 Cj4+PiAgICAgICAgICBzdHJ1Y3Qgdm13X3R0bV90dCAqdm13X3R0ID0gY29udGFpbmVyX29mKHR0 bSwgc3RydWN0IHZtd190dG1fdHQsCj4+PiBAQCAtNjc1LDcgKzY3NSw3IEBAIHN0YXRpYyBpbnQg dm13X3ZlcmlmeV9hY2Nlc3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IGZp bGUgKmZpbHApCj4+PiAgICAgICAgICByZXR1cm4gdm13X3VzZXJfYm9fdmVyaWZ5X2FjY2Vzcyhi bywgdGZpbGUpOwo+Pj4gICB9Cj4+Pgo+Pj4gLXN0YXRpYyBpbnQgdm13X3R0bV9pb19tZW1fcmVz ZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVt KQo+Pj4gK3N0YXRpYyBpbnQgdm13X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+Pj4gICB7Cj4+PiAgICAgICAgICBz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gY29udGFpbmVyX29mKGJkZXYsIHN0cnVjdCB2 bXdfcHJpdmF0ZSwgYmRldik7Cj4+Pgo+Pj4gQEAgLTcyNyw3ICs3MjcsNyBAQCBzdGF0aWMgdm9p ZCB2bXdfc3dhcF9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4+ICAgfQo+ Pj4KPj4+Cj4+PiAtc3RydWN0IHR0bV9ib19kcml2ZXIgdm13X2JvX2RyaXZlciA9IHsKPj4+ICtz dHJ1Y3QgdHRtX2RldmljZV9mdW5jcyB2bXdfYm9fZHJpdmVyID0gewo+Pj4gICAgICAgICAgLnR0 bV90dF9jcmVhdGUgPSAmdm13X3R0bV90dF9jcmVhdGUsCj4+PiAgICAgICAgICAudHRtX3R0X3Bv cHVsYXRlID0gJnZtd190dG1fcG9wdWxhdGUsCj4+PiAgICAgICAgICAudHRtX3R0X3VucG9wdWxh dGUgPSAmdm13X3R0bV91bnBvcHVsYXRlLAo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9nZW1fdnJhbV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaAo+ Pj4gaW5kZXggMTI4Zjg4MTc0ZDMyLi41ZTkyZDcwMTQxMjUgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNs dWRlL2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmgKPj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9n ZW1fdnJhbV9oZWxwZXIuaAo+Pj4gQEAgLTE3MiwxOSArMTcyLDE5IEBAIHN0cnVjdCBkcm1fdnJh bV9tbSB7Cj4+PiAgICAgICAgICB1aW50NjRfdCB2cmFtX2Jhc2U7Cj4+PiAgICAgICAgICBzaXpl X3QgdnJhbV9zaXplOwo+Pj4KPj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgYmRldjsK Pj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgYmRldjsKPj4+ICAgfTsKPj4+Cj4+PiAgIC8q Kgo+Pj4gICAgKiBkcm1fdnJhbV9tbV9vZl9iZGV2KCkgLSBcCj4+PiAtICAgICAgIFJldHVybnMg dGhlIGNvbnRhaW5lciBvZiB0eXBlICZzdHJ1Y3QgdHRtX2JvX2RldmljZSBmb3IgZmllbGQgYmRl di4KPj4+ICsgICAgICAgUmV0dXJucyB0aGUgY29udGFpbmVyIG9mIHR5cGUgJnN0cnVjdCB0dG1f ZGV2aWNlIGZvciBmaWVsZCBiZGV2Lgo+Pj4gICAgKiBAYmRldjogICAgICB0aGUgVFRNIEJPIGRl dmljZQo+Pj4gICAgKgo+Pj4gICAgKiBSZXR1cm5zOgo+Pj4gICAgKiBUaGUgY29udGFpbmluZyBp bnN0YW5jZSBvZiAmc3RydWN0IGRybV92cmFtX21tCj4+PiAgICAqLwo+Pj4gICBzdGF0aWMgaW5s aW5lIHN0cnVjdCBkcm1fdnJhbV9tbSAqZHJtX3ZyYW1fbW1fb2ZfYmRldigKPj4+IC0gICAgICAg c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCj4+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2KQo+Pj4gICB7Cj4+PiAgICAgICAgICByZXR1cm4gY29udGFpbmVyX29mKGJkZXYsIHN0 cnVjdCBkcm1fdnJhbV9tbSwgYmRldik7Cj4+PiAgIH0KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+Pj4g aW5kZXggYzk2YTI1ZDU3MWM4Li5hMDI5MzVlMGQxMjEgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2FwaS5oCj4+PiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Fw aS5oCj4+PiBAQCAtNDQsOSArNDQsOSBAQAo+Pj4KPj4+ICAgI2luY2x1ZGUgInR0bV9yZXNvdXJj ZS5oIgo+Pj4KPj4+IC1zdHJ1Y3QgdHRtX2JvX2dsb2JhbDsKPj4+ICtzdHJ1Y3QgdHRtX2dsb2Jh bDsKPj4+Cj4+PiAtc3RydWN0IHR0bV9ib19kZXZpY2U7Cj4+PiArc3RydWN0IHR0bV9kZXZpY2U7 Cj4+Pgo+Pj4gICBzdHJ1Y3QgZHJtX21tX25vZGU7Cj4+Pgo+Pj4gQEAgLTEyMCw3ICsxMjAsNyBA QCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qgewo+Pj4gICAgICAgICAgICogTWVtYmVycyBjb25z dGFudCBhdCBpbml0Lgo+Pj4gICAgICAgICAgICovCj4+Pgo+Pj4gLSAgICAgICBzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldjsKPj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXY7Cj4+ PiAgICAgICAgICBlbnVtIHR0bV9ib190eXBlIHR5cGU7Cj4+PiAgICAgICAgICB2b2lkICgqZGVz dHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKTsKPj4+ICAgICAgICAgIHVuc2lnbmVk IGxvbmcgbnVtX3BhZ2VzOwo+Pj4gQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIHR0bV9ib19wdXQo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4+PiAgICAqIEBidWxrOiBvcHRpb25hbCBi dWxrIG1vdmUgc3RydWN0dXJlIHRvIHJlbWVtYmVyIEJPIHBvc2l0aW9ucwo+Pj4gICAgKgo+Pj4g ICAgKiBNb3ZlIHRoaXMgQk8gdG8gdGhlIHRhaWwgb2YgYWxsIGxydSBsaXN0cyB1c2VkIHRvIGxv b2t1cCBhbmQgcmVzZXJ2ZSBhbgo+Pj4gLSAqIG9iamVjdC4gVGhpcyBmdW5jdGlvbiBtdXN0IGJl IGNhbGxlZCB3aXRoIHN0cnVjdCB0dG1fYm9fZ2xvYmFsOjpscnVfbG9jawo+Pj4gKyAqIG9iamVj dC4gVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRoIHN0cnVjdCB0dG1fZ2xvYmFsOjps cnVfbG9jawo+Pj4gICAgKiBoZWxkLCBhbmQgaXMgdXNlZCB0byBtYWtlIGEgQk8gbGVzcyBsaWtl bHkgdG8gYmUgY29uc2lkZXJlZCBmb3IgZXZpY3Rpb24uCj4+PiAgICAqLwo+Pj4gICB2b2lkIHR0 bV9ib19tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+PiBA QCAtMzIyLDcgKzMyMiw3IEBAIHZvaWQgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICogQGJ1bGs6IGJ1bGsgbW92ZSBzdHJ1Y3R1cmUK Pj4+ICAgICoKPj4+ICAgICogQnVsayBtb3ZlIEJPcyB0byB0aGUgTFJVIHRhaWwsIG9ubHkgdmFs aWQgdG8gdXNlIHdoZW4gZHJpdmVyIG1ha2VzIHN1cmUgdGhhdAo+Pj4gLSAqIEJPIG9yZGVyIG5l dmVyIGNoYW5nZXMuIFNob3VsZCBiZSBjYWxsZWQgd2l0aCB0dG1fYm9fZ2xvYmFsOjpscnVfbG9j ayBoZWxkLgo+Pj4gKyAqIEJPIG9yZGVyIG5ldmVyIGNoYW5nZXMuIFNob3VsZCBiZSBjYWxsZWQg d2l0aCB0dG1fZ2xvYmFsOjpscnVfbG9jayBoZWxkLgo+Pj4gICAgKi8KPj4+ICAgdm9pZCB0dG1f Ym9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVsayk7Cj4+ Pgo+Pj4gQEAgLTMzMywxNCArMzMzLDE0IEBAIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFp bChzdHJ1Y3QgdHRtX2xydV9idWxrX21vdmUgKmJ1bGspOwo+Pj4gICAgKiBSZXR1cm5zCj4+PiAg ICAqIFRydWUgaWYgdGhlIHdvcmtxdWV1ZSB3YXMgcXVldWVkIGF0IHRoZSB0aW1lCj4+PiAgICAq Lwo+Pj4gLWludCB0dG1fYm9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldik7Cj4+PiAraW50IHR0bV9ib19sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2KTsKPj4+Cj4+PiAgIC8qKgo+Pj4gICAgKiB0dG1fYm9fdW5sb2Nr X2RlbGF5ZWRfd29ya3F1ZXVlCj4+PiAgICAqCj4+PiAgICAqIEFsbG93cyB0aGUgZGVsYXllZCB3 b3JrcXVldWUgdG8gcnVuLgo+Pj4gICAgKi8KPj4+IC12b2lkIHR0bV9ib191bmxvY2tfZGVsYXll ZF93b3JrcXVldWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGludCByZXNjaGVkKTsKPj4+ ICt2b2lkIHR0bV9ib191bmxvY2tfZGVsYXllZF93b3JrcXVldWUoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsIGludCByZXNjaGVkKTsKPj4+Cj4+PiAgIC8qKgo+Pj4gICAgKiB0dG1fYm9fZXZpY3Rp b25fdmFsdWFibGUKPj4+IEBAIC0zNTMsMTQgKzM1MywxNCBAQCB2b2lkIHR0bV9ib191bmxvY2tf ZGVsYXllZF93b3JrcXVldWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGludCByZXNjaGVk KTsKPj4+ICAgYm9vbCB0dG1fYm9fZXZpY3Rpb25fdmFsdWFibGUoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgdHRtX3BsYWNlICpwbGFjZSk7Cj4+Pgo+Pj4gLXNpemVfdCB0dG1fYm9fZG1hX2FjY19zaXpl KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK3NpemVfdCB0dG1fYm9fZG1hX2FjY19z aXplKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgYm9fc2l6ZSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBzdHJ1Y3Rfc2l6ZSk7Cj4+Pgo+Pj4gICAvKioKPj4+ICAgICogdHRtX2JvX2lu aXRfcmVzZXJ2ZWQKPj4+ICAgICoKPj4+IC0gKiBAYmRldjogUG9pbnRlciB0byBhIHR0bV9ib19k ZXZpY2Ugc3RydWN0Lgo+Pj4gKyAqIEBiZGV2OiBQb2ludGVyIHRvIGEgdHRtX2RldmljZSBzdHJ1 Y3QuCj4+PiAgICAqIEBibzogUG9pbnRlciB0byBhIHR0bV9idWZmZXJfb2JqZWN0IHRvIGJlIGlu aXRpYWxpemVkLgo+Pj4gICAgKiBAc2l6ZTogUmVxdWVzdGVkIHNpemUgb2YgYnVmZmVyIG9iamVj dC4KPj4+ICAgICogQHR5cGU6IFJlcXVlc3RlZCB0eXBlIG9mIGJ1ZmZlciBvYmplY3QuCj4+PiBA QCAtMzkyLDcgKzM5Miw3IEBAIHNpemVfdCB0dG1fYm9fZG1hX2FjY19zaXplKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+Pj4gICAgKiAtRVJFU1RBUlRTWVM6IEludGVycnVwdGVkIGJ5IHNp Z25hbCB3aGlsZSBzbGVlcGluZyB3YWl0aW5nIGZvciByZXNvdXJjZXMuCj4+PiAgICAqLwo+Pj4K Pj4+IC1pbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+PiAraW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCj4+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKPj4+IEBAIC00 MDcsNyArNDA3LDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+Pj4gICAvKioKPj4+ICAgICogdHRtX2JvX2luaXQKPj4+ICAgICoKPj4+IC0g KiBAYmRldjogUG9pbnRlciB0byBhIHR0bV9ib19kZXZpY2Ugc3RydWN0Lgo+Pj4gKyAqIEBiZGV2 OiBQb2ludGVyIHRvIGEgdHRtX2RldmljZSBzdHJ1Y3QuCj4+PiAgICAqIEBibzogUG9pbnRlciB0 byBhIHR0bV9idWZmZXJfb2JqZWN0IHRvIGJlIGluaXRpYWxpemVkLgo+Pj4gICAgKiBAc2l6ZTog UmVxdWVzdGVkIHNpemUgb2YgYnVmZmVyIG9iamVjdC4KPj4+ICAgICogQHR5cGU6IFJlcXVlc3Rl ZCB0eXBlIG9mIGJ1ZmZlciBvYmplY3QuCj4+PiBAQCAtNDQxLDcgKzQ0MSw3IEBAIGludCB0dG1f Ym9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICAgICogLUVJ TlZBTDogSW52YWxpZCBwbGFjZW1lbnQgZmxhZ3MuCj4+PiAgICAqIC1FUkVTVEFSVFNZUzogSW50 ZXJydXB0ZWQgYnkgc2lnbmFsIHdoaWxlIHNsZWVwaW5nIHdhaXRpbmcgZm9yIHJlc291cmNlcy4K Pj4+ICAgICovCj4+PiAtaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gK2ludCB0dG1fYm9faW5pdChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUs Cj4+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCj4+ PiAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LCBib29sIGludGVycnVi dGlibGUsIHNpemVfdCBhY2Nfc2l6ZSwKPj4+IEBAIC00NTEsNyArNDUxLDcgQEAgaW50IHR0bV9i b19pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+Pj4gICAvKioKPj4+ICAgICogdHRtX2JvX2V2aWN0X21tCj4+PiAgICAqCj4+PiAt ICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG1fYm9fZGV2aWNlIHN0cnVjdC4KPj4+ICsgKiBAYmRl djogUG9pbnRlciB0byBhIHR0bV9kZXZpY2Ugc3RydWN0Lgo+Pj4gICAgKiBAbWVtX3R5cGU6IFRo ZSBtZW1vcnkgdHlwZS4KPj4+ICAgICoKPj4+ICAgICogRXZpY3RzIGFsbCBidWZmZXJzIG9uIHRo ZSBscnUgbGlzdCBvZiB0aGUgbWVtb3J5IHR5cGUuCj4+PiBAQCAtNDU5LDE0ICs0NTksMTQgQEAg aW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAo+Pj4gICAgKiBvdXQtb2YtbWVtb3J5LXNwYWNlLWR1ZS10by1mcmFn bWVudGF0aW9uIGhhbmRsZXIuCj4+PiAgICAqIFRoZSBjYWxsZXIgbXVzdCBtYWtlIHN1cmUgdGhh dCB0aGVyZSBhcmUgbm8gb3RoZXIgcHJvY2Vzc2VzCj4+PiAgICAqIGN1cnJlbnRseSB2YWxpZGF0 aW5nIGJ1ZmZlcnMsIGFuZCBjYW4gZG8gdGhhdCBieSB0YWtpbmcgdGhlCj4+PiAtICogc3RydWN0 IHR0bV9ib19kZXZpY2U6OnR0bV9sb2NrIGluIHdyaXRlIG1vZGUuCj4+PiArICogc3RydWN0IHR0 bV9kZXZpY2U6OnR0bV9sb2NrIGluIHdyaXRlIG1vZGUuCj4+PiAgICAqCj4+PiAgICAqIFJldHVy bnM6Cj4+PiAgICAqIC1FSU5WQUw6IEludmFsaWQgb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgdHlw ZS4KPj4+ICAgICogLUVSRVNUQVJUU1lTOiBUaGUgY2FsbCB3YXMgaW50ZXJydXB0ZWQgYnkgYSBz aWduYWwgd2hpbGUgd2FpdGluZyB0bwo+Pj4gICAgKiBldmljdCBhIGJ1ZmZlci4KPj4+ICAgICov Cj4+PiAtaW50IHR0bV9ib19ldmljdF9tbShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdW5z aWduZWQgbWVtX3R5cGUpOwo+Pj4gK2ludCB0dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsIHVuc2lnbmVkIG1lbV90eXBlKTsKPj4+Cj4+PiAgIC8qKgo+Pj4gICAgKiB0dG1f a21hcF9vYmpfdmlydHVhbAo+Pj4gQEAgLTUyOSwxOCArNTI5LDE4IEBAIGludCB0dG1fYm9fbW1h cF9vYmooc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8pOwo+Pj4gICAgKgo+Pj4gICAgKiBAZmlscDogICAgICBmaWxwIGFzIGlucHV0IGZyb20g dGhlIG1tYXAgbWV0aG9kLgo+Pj4gICAgKiBAdm1hOiAgICAgICB2bWEgYXMgaW5wdXQgZnJvbSB0 aGUgbW1hcCBtZXRob2QuCj4+PiAtICogQGJkZXY6ICAgICAgUG9pbnRlciB0byB0aGUgdHRtX2Jv X2RldmljZSB3aXRoIHRoZSBhZGRyZXNzIHNwYWNlIG1hbmFnZXIuCj4+PiArICogQGJkZXY6ICAg ICAgUG9pbnRlciB0byB0aGUgdHRtX2RldmljZSB3aXRoIHRoZSBhZGRyZXNzIHNwYWNlIG1hbmFn ZXIuCj4+PiAgICAqCj4+PiAgICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgY2Fs bGVkIGJ5IHRoZSBkZXZpY2UgbW1hcCBtZXRob2QuCj4+PiAgICAqIGlmIHRoZSBkZXZpY2UgYWRk cmVzcyBzcGFjZSBpcyB0byBiZSBiYWNrZWQgYnkgdGhlIGJvIG1hbmFnZXIuCj4+PiAgICAqLwo+ Pj4gICBpbnQgdHRtX2JvX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLAo+Pj4gLSAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 KTsKPj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldik7Cj4+Pgo+Pj4g ICAvKioKPj4+ICAgICogdHRtX2JvX2lvCj4+PiAgICAqCj4+PiAtICogQGJkZXY6ICAgICAgUG9p bnRlciB0byB0aGUgc3RydWN0IHR0bV9ib19kZXZpY2UuCj4+PiArICogQGJkZXY6ICAgICAgUG9p bnRlciB0byB0aGUgc3RydWN0IHR0bV9kZXZpY2UuCj4+PiAgICAqIEBmaWxwOiAgICAgIFBvaW50 ZXIgdG8gdGhlIHN0cnVjdCBmaWxlIGF0dGVtcHRpbmcgdG8gcmVhZCAvIHdyaXRlLgo+Pj4gICAg KiBAd2J1ZjogICAgICBVc2VyLXNwYWNlIHBvaW50ZXIgdG8gYWRkcmVzcyBvZiBidWZmZXIgdG8g d3JpdGUuIE5VTEwgb24gcmVhZC4KPj4+ICAgICogQHJidWY6ICAgICAgVXNlci1zcGFjZSBwb2lu dGVyIHRvIGFkZHJlc3Mgb2YgYnVmZmVyIHRvIHJlYWQgaW50by4KPj4+IEBAIC01NTcsMTIgKzU1 NywxMSBAQCBpbnQgdHRtX2JvX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hLAo+Pj4gICAgKiB0aGUgZnVuY3Rpb24gbWF5IHJldHVybiAtRVJFU1RBUlRT WVMgaWYKPj4+ICAgICogaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwuCj4+PiAgICAqLwo+Pj4gLXNz aXplX3QgdHRtX2JvX2lvKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgZmlsZSAq ZmlscCwKPj4+ICtzc2l6ZV90IHR0bV9ib19pbyhzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3Ry dWN0IGZpbGUgKmZpbHAsCj4+PiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciBfX3VzZXIg KndidWYsIGNoYXIgX191c2VyICpyYnVmLAo+Pj4gICAgICAgICAgICAgICAgICAgIHNpemVfdCBj b3VudCwgbG9mZl90ICpmX3BvcywgYm9vbCB3cml0ZSk7Cj4+Pgo+Pj4gLWludCB0dG1fYm9fc3dh cG91dChzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiwKPj4+IC0gICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKPj4+ICtpbnQgdHRtX2JvX3N3YXBv dXQoc3RydWN0IHR0bV9nbG9iYWwgKmdsb2IsIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4 KTsKPj4+ICAgdm9pZCB0dG1fYm9fc3dhcG91dF9hbGwodm9pZCk7Cj4+Pgo+Pj4gICAvKioKPj4+ IEBAIC02MDksNyArNjA4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHR0bV9ib191bnBpbihzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+Pj4gICAgICAgICAgLS1iby0+cGluX2NvdW50Owo+ Pj4gICB9Cj4+Pgo+Pj4gLWludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+Pj4gK2ludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2Vf bWFuYWdlciAqbWFuLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0 dG1fcGxhY2UgKnBsYWNlLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCAqY3R4LAo+Pj4gQEAgLTYzNCw1ICs2MzMsNiBAQCB2b2lkIHR0bV9ib192 bV9jbG9zZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Cj4+Pgo+Pj4gICBpbnQgdHRtX2Jv X3ZtX2FjY2VzcyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRy LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRl KTsKPj4+ICtib29sIHR0bV9ib19kZWxheWVkX2RlbGV0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwgYm9vbCByZW1vdmVfYWxsKTsKPj4+Cj4+PiAgICNlbmRpZgo+Pj4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oCj4+PiBpbmRleCBhMDI4YjQxOGM2YjQuLjYzODAxZmE5ZTk5MyAxMDA2NDQKPj4+IC0t LSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPj4+ICsrKyBiL2luY2x1ZGUvZHJt L3R0bS90dG1fYm9fZHJpdmVyLmgKPj4+IEBAIC0zNywzMzEgKzM3LDE0IEBACj4+PiAgICNpbmNs dWRlIDxsaW51eC9zcGlubG9jay5oPgo+Pj4gICAjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4K Pj4+Cj4+PiArI2luY2x1ZGUgPGRybS90dG0vdHRtX2RldmljZS5oPgo+Pj4gKwo+Pj4gICAjaW5j bHVkZSAidHRtX2JvX2FwaS5oIgo+Pj4gICAjaW5jbHVkZSAidHRtX21lbW9yeS5oIgo+Pj4gICAj aW5jbHVkZSAidHRtX21vZHVsZS5oIgo+Pj4gICAjaW5jbHVkZSAidHRtX3BsYWNlbWVudC5oIgo+ Pj4gICAjaW5jbHVkZSAidHRtX3R0LmgiCj4+Pgo+Pj4gLS8qKgo+Pj4gLSAqIHN0cnVjdCB0dG1f Ym9fZHJpdmVyCj4+PiAtICoKPj4+IC0gKiBAY3JlYXRlX3R0bV9iYWNrZW5kX2VudHJ5OiBDYWxs YmFjayB0byBjcmVhdGUgYSBzdHJ1Y3QgdHRtX2JhY2tlbmQuCj4+PiAtICogQGV2aWN0X2ZsYWdz OiBDYWxsYmFjayB0byBvYnRhaW4gcGxhY2VtZW50IGZsYWdzIHdoZW4gYSBidWZmZXIgaXMgZXZp Y3RlZC4KPj4+IC0gKiBAbW92ZTogQ2FsbGJhY2sgZm9yIGEgZHJpdmVyIHRvIGhvb2sgaW4gYWNj ZWxlcmF0ZWQgZnVuY3Rpb25zIHRvCj4+PiAtICogbW92ZSBhIGJ1ZmZlci4KPj4+IC0gKiBJZiBz ZXQgdG8gTlVMTCwgYSBwb3RlbnRpYWxseSBzbG93IG1lbWNweSgpIG1vdmUgaXMgdXNlZC4KPj4+ IC0gKi8KPj4+IC0KPj4+IC1zdHJ1Y3QgdHRtX2JvX2RyaXZlciB7Cj4+PiAtICAgICAgIC8qKgo+ Pj4gLSAgICAgICAgKiB0dG1fdHRfY3JlYXRlCj4+PiAtICAgICAgICAqCj4+PiAtICAgICAgICAq IEBibzogVGhlIGJ1ZmZlciBvYmplY3QgdG8gY3JlYXRlIHRoZSB0dG0gZm9yLgo+Pj4gLSAgICAg ICAgKiBAcGFnZV9mbGFnczogUGFnZSBmbGFncyBhcyBpZGVudGlmaWVkIGJ5IFRUTV9QQUdFX0ZM QUdfWFggZmxhZ3MuCj4+PiAtICAgICAgICAqCj4+PiAtICAgICAgICAqIENyZWF0ZSBhIHN0cnVj dCB0dG1fdHQgdG8gYmFjayBkYXRhIHdpdGggc3lzdGVtIG1lbW9yeSBwYWdlcy4KPj4+IC0gICAg ICAgICogTm8gcGFnZXMgYXJlIGFjdHVhbGx5IGFsbG9jYXRlZC4KPj4+IC0gICAgICAgICogUmV0 dXJuczoKPj4+IC0gICAgICAgICogTlVMTDogT3V0IG9mIG1lbW9yeS4KPj4+IC0gICAgICAgICov Cj4+PiAtICAgICAgIHN0cnVjdCB0dG1fdHQgKigqdHRtX3R0X2NyZWF0ZSkoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBwYWdlX2ZsYWdzKTsKPj4+IC0KPj4+IC0gICAgICAgLyoqCj4+PiAtICAg ICAgICAqIHR0bV90dF9wb3B1bGF0ZQo+Pj4gLSAgICAgICAgKgo+Pj4gLSAgICAgICAgKiBAdHRt OiBUaGUgc3RydWN0IHR0bV90dCB0byBjb250YWluIHRoZSBiYWNraW5nIHBhZ2VzLgo+Pj4gLSAg ICAgICAgKgo+Pj4gLSAgICAgICAgKiBBbGxvY2F0ZSBhbGwgYmFja2luZyBwYWdlcwo+Pj4gLSAg ICAgICAgKiBSZXR1cm5zOgo+Pj4gLSAgICAgICAgKiAtRU5PTUVNOiBPdXQgb2YgbWVtb3J5Lgo+ Pj4gLSAgICAgICAgKi8KPj4+IC0gICAgICAgaW50ICgqdHRtX3R0X3BvcHVsYXRlKShzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3R0ICp0dG0sCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0g ICAgICAgICogdHRtX3R0X3VucG9wdWxhdGUKPj4+IC0gICAgICAgICoKPj4+IC0gICAgICAgICog QHR0bTogVGhlIHN0cnVjdCB0dG1fdHQgdG8gY29udGFpbiB0aGUgYmFja2luZyBwYWdlcy4KPj4+ IC0gICAgICAgICoKPj4+IC0gICAgICAgICogRnJlZSBhbGwgYmFja2luZyBwYWdlCj4+PiAtICAg ICAgICAqLwo+Pj4gLSAgICAgICB2b2lkICgqdHRtX3R0X3VucG9wdWxhdGUpKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pj4gLQo+Pj4gLSAgICAgICAv KioKPj4+IC0gICAgICAgICogdHRtX3R0X2JpbmQKPj4+IC0gICAgICAgICoKPj4+IC0gICAgICAg ICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG0gZGV2aWNlCj4+PiAtICAgICAgICAqIEB0dG06IFBv aW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX3R0Lgo+Pj4gLSAgICAgICAgKiBAYm9fbWVtOiBQb2ludGVy IHRvIGEgc3RydWN0IHR0bV9yZXNvdXJjZSBkZXNjcmliaW5nIHRoZQo+Pj4gLSAgICAgICAgKiBt ZW1vcnkgdHlwZSBhbmQgbG9jYXRpb24gZm9yIGJpbmRpbmcuCj4+PiAtICAgICAgICAqCj4+PiAt ICAgICAgICAqIEJpbmQgdGhlIGJhY2tlbmQgcGFnZXMgaW50byB0aGUgYXBlcnR1cmUgaW4gdGhl IGxvY2F0aW9uCj4+PiAtICAgICAgICAqIGluZGljYXRlZCBieSBAYm9fbWVtLiBUaGlzIGZ1bmN0 aW9uIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZQo+Pj4gLSAgICAgICAgKiBkaWZmZXJlbmNlcyBi ZXR3ZWVuIGFwZXJ0dXJlIGFuZCBzeXN0ZW0gcGFnZSBzaXplcy4KPj4+IC0gICAgICAgICovCj4+ PiAtICAgICAgIGludCAoKnR0bV90dF9iaW5kKShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwg c3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpib19tZW0pOwo+Pj4gLQo+ Pj4gLSAgICAgICAvKioKPj4+IC0gICAgICAgICogdHRtX3R0X3VuYmluZAo+Pj4gLSAgICAgICAg Kgo+Pj4gLSAgICAgICAgKiBAYmRldjogUG9pbnRlciB0byBhIHR0bSBkZXZpY2UKPj4+IC0gICAg ICAgICogQHR0bTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fdHQuCj4+PiAtICAgICAgICAqCj4+ PiAtICAgICAgICAqIFVuYmluZCBwcmV2aW91c2x5IGJvdW5kIGJhY2tlbmQgcGFnZXMuIFRoaXMg ZnVuY3Rpb24gc2hvdWxkIGJlCj4+PiAtICAgICAgICAqIGFibGUgdG8gaGFuZGxlIGRpZmZlcmVu Y2VzIGJldHdlZW4gYXBlcnR1cmUgYW5kIHN5c3RlbSBwYWdlIHNpemVzLgo+Pj4gLSAgICAgICAg Ki8KPj4+IC0gICAgICAgdm9pZCAoKnR0bV90dF91bmJpbmQpKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0g ICAgICAgICogdHRtX3R0X2Rlc3Ryb3kKPj4+IC0gICAgICAgICoKPj4+IC0gICAgICAgICogQGJk ZXY6IFBvaW50ZXIgdG8gYSB0dG0gZGV2aWNlCj4+PiAtICAgICAgICAqIEB0dG06IFBvaW50ZXIg dG8gYSBzdHJ1Y3QgdHRtX3R0Lgo+Pj4gLSAgICAgICAgKgo+Pj4gLSAgICAgICAgKiBEZXN0cm95 IHRoZSBiYWNrZW5kLiBUaGlzIHdpbGwgYmUgY2FsbCBiYWNrIGZyb20gdHRtX3R0X2Rlc3Ryb3kg c28KPj4+IC0gICAgICAgICogZG9uJ3QgY2FsbCB0dG1fdHRfZGVzdHJveSBmcm9tIHRoZSBjYWxs YmFjayBvciBpbmZpbml0ZSBsb29wLgo+Pj4gLSAgICAgICAgKi8KPj4+IC0gICAgICAgdm9pZCAo KnR0bV90dF9kZXN0cm95KShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90 dCAqdHRtKTsKPj4+IC0KPj4+IC0gICAgICAgLyoqCj4+PiAtICAgICAgICAqIHN0cnVjdCB0dG1f Ym9fZHJpdmVyIG1lbWJlciBldmljdGlvbl92YWx1YWJsZQo+Pj4gLSAgICAgICAgKgo+Pj4gLSAg ICAgICAgKiBAYm86IHRoZSBidWZmZXIgb2JqZWN0IHRvIGJlIGV2aWN0ZWQKPj4+IC0gICAgICAg ICogQHBsYWNlOiBwbGFjZW1lbnQgd2UgbmVlZCByb29tIGZvcgo+Pj4gLSAgICAgICAgKgo+Pj4g LSAgICAgICAgKiBDaGVjayB3aXRoIHRoZSBkcml2ZXIgaWYgaXQgaXMgdmFsdWFibGUgdG8gZXZp Y3QgYSBCTyB0byBtYWtlIHJvb20KPj4+IC0gICAgICAgICogZm9yIGEgY2VydGFpbiBwbGFjZW1l bnQuCj4+PiAtICAgICAgICAqLwo+Pj4gLSAgICAgICBib29sICgqZXZpY3Rpb25fdmFsdWFibGUp KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UpOwo+Pj4gLSAgICAgICAv KioKPj4+IC0gICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIgbWVtYmVyIGV2aWN0X2ZsYWdz Ogo+Pj4gLSAgICAgICAgKgo+Pj4gLSAgICAgICAgKiBAYm86IHRoZSBidWZmZXIgb2JqZWN0IHRv IGJlIGV2aWN0ZWQKPj4+IC0gICAgICAgICoKPj4+IC0gICAgICAgICogUmV0dXJuIHRoZSBibyBm bGFncyBmb3IgYSBidWZmZXIgd2hpY2ggaXMgbm90IG1hcHBlZCB0byB0aGUgaGFyZHdhcmUuCj4+ PiAtICAgICAgICAqIFRoZXNlIHdpbGwgYmUgcGxhY2VkIGluIHByb3Bvc2VkX2ZsYWdzIHNvIHRo YXQgd2hlbiB0aGUgbW92ZSBpcwo+Pj4gLSAgICAgICAgKiBmaW5pc2hlZCwgdGhleSdsbCBlbmQg dXAgaW4gYm8tPm1lbS5mbGFncwo+Pj4gLSAgICAgICAgKi8KPj4+IC0KPj4+IC0gICAgICAgdm9p ZCAoKmV2aWN0X2ZsYWdzKShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQpOwo+ Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0gICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIg bWVtYmVyIG1vdmU6Cj4+PiAtICAgICAgICAqCj4+PiAtICAgICAgICAqIEBibzogdGhlIGJ1ZmZl ciB0byBtb3ZlCj4+PiAtICAgICAgICAqIEBldmljdDogd2hldGhlciB0aGlzIG1vdGlvbiBpcyBl dmljdGluZyB0aGUgYnVmZmVyIGZyb20KPj4+IC0gICAgICAgICogdGhlIGdyYXBoaWNzIGFkZHJl c3Mgc3BhY2UKPj4+IC0gICAgICAgICogQGN0eDogY29udGV4dCBmb3IgdGhpcyBtb3ZlIHdpdGgg cGFyYW1ldGVycwo+Pj4gLSAgICAgICAgKiBAbmV3X21lbTogdGhlIG5ldyBtZW1vcnkgcmVnaW9u IHJlY2VpdmluZyB0aGUgYnVmZmVyCj4+PiAtICAgICAgICAqCj4+PiAtICAgICAgICAqIE1vdmUg YSBidWZmZXIgYmV0d2VlbiB0d28gbWVtb3J5IHJlZ2lvbnMuCj4+PiAtICAgICAgICAqLwo+Pj4g LSAgICAgICBpbnQgKCptb3ZlKShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGV2 aWN0LAo+Pj4gLSAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0 eCwKPj4+IC0gICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSk7 Cj4+PiAtCj4+PiAtICAgICAgIC8qKgo+Pj4gLSAgICAgICAgKiBzdHJ1Y3QgdHRtX2JvX2RyaXZl cl9tZW1iZXIgdmVyaWZ5X2FjY2Vzcwo+Pj4gLSAgICAgICAgKgo+Pj4gLSAgICAgICAgKiBAYm86 IFBvaW50ZXIgdG8gYSBidWZmZXIgb2JqZWN0Lgo+Pj4gLSAgICAgICAgKiBAZmlscDogUG9pbnRl ciB0byBhIHN0cnVjdCBmaWxlIHRyeWluZyB0byBhY2Nlc3MgdGhlIG9iamVjdC4KPj4+IC0gICAg ICAgICoKPj4+IC0gICAgICAgICogQ2FsbGVkIGZyb20gdGhlIG1hcCAvIHdyaXRlIC8gcmVhZCBt ZXRob2RzIHRvIHZlcmlmeSB0aGF0IHRoZQo+Pj4gLSAgICAgICAgKiBjYWxsZXIgaXMgcGVybWl0 dGVkIHRvIGFjY2VzcyB0aGUgYnVmZmVyIG9iamVjdC4KPj4+IC0gICAgICAgICogVGhpcyBtZW1i ZXIgbWF5IGJlIHNldCB0byBOVUxMLCB3aGljaCB3aWxsIHJlZnVzZSB0aGlzIGtpbmQgb2YKPj4+ IC0gICAgICAgICogYWNjZXNzIGZvciBhbGwgYnVmZmVyIG9iamVjdHMuCj4+PiAtICAgICAgICAq IFRoaXMgZnVuY3Rpb24gc2hvdWxkIHJldHVybiAwIGlmIGFjY2VzcyBpcyBncmFudGVkLCAtRVBF Uk0gb3RoZXJ3aXNlLgo+Pj4gLSAgICAgICAgKi8KPj4+IC0gICAgICAgaW50ICgqdmVyaWZ5X2Fj Y2Vzcykoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGZpbGUgKmZpbHApOwo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+ IC0gICAgICAgICogSG9vayB0byBub3RpZnkgZHJpdmVyIGFib3V0IGEgZHJpdmVyIG1vdmUgc28g aXQKPj4+IC0gICAgICAgICogY2FuIGRvIHRpbGluZyB0aGluZ3MgYW5kIGJvb2sta2VlcGluZy4K Pj4+IC0gICAgICAgICoKPj4+IC0gICAgICAgICogQGV2aWN0OiB3aGV0aGVyIHRoaXMgbW92ZSBp cyBldmljdGluZyB0aGUgYnVmZmVyIGZyb20gdGhlIGdyYXBoaWNzCj4+PiAtICAgICAgICAqIGFk ZHJlc3Mgc3BhY2UKPj4+IC0gICAgICAgICovCj4+PiAtICAgICAgIHZvaWQgKCptb3ZlX25vdGlm eSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sIGV2aWN0LAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pOwo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0gICAg ICAgICogbm90aWZ5IHRoZSBkcml2ZXIgdGhhdCB3ZSdyZSBhYm91dCB0byBzd2FwIG91dCB0aGlz IGJvCj4+PiAtICAgICAgICAqLwo+Pj4gLSAgICAgICB2b2lkICgqc3dhcF9ub3RpZnkpKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0gICAg ICAgICogRHJpdmVyIGNhbGxiYWNrIG9uIHdoZW4gbWFwcGluZyBpbyBtZW1vcnkgKGZvciBib19t b3ZlX21lbWNweQo+Pj4gLSAgICAgICAgKiBmb3IgaW5zdGFuY2UpLiBUVE0gd2lsbCB0YWtlIGNh cmUgdG8gY2FsbCBpb19tZW1fZnJlZSB3aGVuZXZlcgo+Pj4gLSAgICAgICAgKiB0aGUgbWFwcGlu ZyBpcyBub3QgdXNlIGFueW1vcmUuIGlvX21lbV9yZXNlcnZlICYgaW9fbWVtX2ZyZWUKPj4+IC0g ICAgICAgICogYXJlIGJhbGFuY2VkLgo+Pj4gLSAgICAgICAgKi8KPj4+IC0gICAgICAgaW50ICgq aW9fbWVtX3Jlc2VydmUpKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPj4+IC0gICAg ICAgdm9pZCAoKmlvX21lbV9mcmVlKShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+Pj4g LQo+Pj4gLSAgICAgICAvKioKPj4+IC0gICAgICAgICogUmV0dXJuIHRoZSBwZm4gZm9yIGEgZ2l2 ZW4gcGFnZV9vZmZzZXQgaW5zaWRlIHRoZSBCTy4KPj4+IC0gICAgICAgICoKPj4+IC0gICAgICAg ICogQGJvOiB0aGUgQk8gdG8gbG9vayB1cCB0aGUgcGZuIGZvcgo+Pj4gLSAgICAgICAgKiBAcGFn ZV9vZmZzZXQ6IHRoZSBvZmZzZXQgdG8gbG9vayB1cAo+Pj4gLSAgICAgICAgKi8KPj4+IC0gICAg ICAgdW5zaWduZWQgbG9uZyAoKmlvX21lbV9wZm4pKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n IHBhZ2Vfb2Zmc2V0KTsKPj4+IC0KPj4+IC0gICAgICAgLyoqCj4+PiAtICAgICAgICAqIFJlYWQv d3JpdGUgbWVtb3J5IGJ1ZmZlcnMgZm9yIHB0cmFjZSBhY2Nlc3MKPj4+IC0gICAgICAgICoKPj4+ IC0gICAgICAgICogQGJvOiB0aGUgQk8gdG8gYWNjZXNzCj4+PiAtICAgICAgICAqIEBvZmZzZXQ6 IHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIEJPCj4+PiAtICAgICAgICAqIEBidWY6 IHBvaW50ZXIgdG8gc291cmNlL2Rlc3RpbmF0aW9uIGJ1ZmZlcgo+Pj4gLSAgICAgICAgKiBAbGVu OiBudW1iZXIgb2YgYnl0ZXMgdG8gY29weQo+Pj4gLSAgICAgICAgKiBAd3JpdGU6IHdoZXRoZXIg dG8gcmVhZCAoMCkgZnJvbSBvciB3cml0ZSAobm9uLTApIHRvIEJPCj4+PiAtICAgICAgICAqCj4+ PiAtICAgICAgICAqIElmIHN1Y2Nlc3NmdWwsIHRoaXMgZnVuY3Rpb24gc2hvdWxkIHJldHVybiB0 aGUgbnVtYmVyIG9mCj4+PiAtICAgICAgICAqIGJ5dGVzIGNvcGllZCwgLUVJTyBvdGhlcndpc2Uu IElmIHRoZSBudW1iZXIgb2YgYnl0ZXMKPj4+IC0gICAgICAgICogcmV0dXJuZWQgaXMgPCBsZW4s IHRoZSBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFnYWluIHdpdGgKPj4+IC0gICAgICAgICogdGhl IHJlbWFpbmRlciBvZiB0aGUgYnVmZmVyIHRvIGNvcHkuCj4+PiAtICAgICAgICAqLwo+Pj4gLSAg ICAgICBpbnQgKCphY2Nlc3NfbWVtb3J5KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCB1 bnNpZ25lZCBsb25nIG9mZnNldCwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p ZCAqYnVmLCBpbnQgbGVuLCBpbnQgd3JpdGUpOwo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0g ICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIgbWVtYmVyIGRlbF9mcm9tX2xydV9ub3RpZnkK Pj4+IC0gICAgICAgICoKPj4+IC0gICAgICAgICogQGJvOiB0aGUgYnVmZmVyIG9iamVjdCBkZWxl dGVkIGZyb20gbHJ1Cj4+PiAtICAgICAgICAqCj4+PiAtICAgICAgICAqIG5vdGlmeSBkcml2ZXIg dGhhdCBhIEJPIHdhcyBkZWxldGVkIGZyb20gTFJVLgo+Pj4gLSAgICAgICAgKi8KPj4+IC0gICAg ICAgdm9pZCAoKmRlbF9mcm9tX2xydV9ub3RpZnkpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8pOwo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0gICAgICAgICogTm90aWZ5IHRoZSBkcml2 ZXIgdGhhdCB3ZSdyZSBhYm91dCB0byByZWxlYXNlIGEgQk8KPj4+IC0gICAgICAgICoKPj4+IC0g ICAgICAgICogQGJvOiBCTyB0aGF0IGlzIGFib3V0IHRvIGJlIHJlbGVhc2VkCj4+PiAtICAgICAg ICAqCj4+PiAtICAgICAgICAqIEdpdmVzIHRoZSBkcml2ZXIgYSBjaGFuY2UgdG8gZG8gYW55IGNs ZWFudXAsIGluY2x1ZGluZwo+Pj4gLSAgICAgICAgKiBhZGRpbmcgZmVuY2VzIHRoYXQgbWF5IGZv cmNlIGEgZGVsYXllZCBkZWxldGUKPj4+IC0gICAgICAgICovCj4+PiAtICAgICAgIHZvaWQgKCpy ZWxlYXNlX25vdGlmeSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4+PiAtfTsKPj4+ IC0KPj4+IC0vKioKPj4+IC0gKiBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAtIEJ1ZmZlciBvYmplY3Qg ZHJpdmVyIGdsb2JhbCBkYXRhLgo+Pj4gLSAqCj4+PiAtICogQGR1bW15X3JlYWRfcGFnZTogUG9p bnRlciB0byBhIGR1bW15IHBhZ2UgdXNlZCBmb3IgbWFwcGluZyByZXF1ZXN0cwo+Pj4gLSAqIG9m IHVucG9wdWxhdGVkIHBhZ2VzLgo+Pj4gLSAqIEBzaHJpbms6IEEgc2hyaW5rIGNhbGxiYWNrIG9i amVjdCB1c2VkIGZvciBidWZmZXIgb2JqZWN0IHN3YXAuCj4+PiAtICogQGRldmljZV9saXN0X211 dGV4OiBNdXRleCBwcm90ZWN0aW5nIHRoZSBkZXZpY2UgbGlzdC4KPj4+IC0gKiBUaGlzIG11dGV4 IGlzIGhlbGQgd2hpbGUgdHJhdmVyc2luZyB0aGUgZGV2aWNlIGxpc3QgZm9yIHBtIG9wdGlvbnMu Cj4+PiAtICogQGxydV9sb2NrOiBTcGlubG9jayBwcm90ZWN0aW5nIHRoZSBibyBzdWJzeXN0ZW0g bHJ1IGxpc3RzLgo+Pj4gLSAqIEBkZXZpY2VfbGlzdDogTGlzdCBvZiBidWZmZXIgb2JqZWN0IGRl dmljZXMuCj4+PiAtICogQHN3YXBfbHJ1OiBMcnUgbGlzdCBvZiBidWZmZXIgb2JqZWN0cyB1c2Vk IGZvciBzd2FwcGluZy4KPj4+IC0gKi8KPj4+IC0KPj4+IC1leHRlcm4gc3RydWN0IHR0bV9ib19n bG9iYWwgewo+Pj4gLQo+Pj4gLSAgICAgICAvKioKPj4+IC0gICAgICAgICogQ29uc3RhbnQgYWZ0 ZXIgaW5pdC4KPj4+IC0gICAgICAgICovCj4+PiAtCj4+PiAtICAgICAgIHN0cnVjdCBrb2JqZWN0 IGtvYmo7Cj4+PiAtICAgICAgIHN0cnVjdCBwYWdlICpkdW1teV9yZWFkX3BhZ2U7Cj4+PiAtICAg ICAgIHNwaW5sb2NrX3QgbHJ1X2xvY2s7Cj4+PiAtCj4+PiAtICAgICAgIC8qKgo+Pj4gLSAgICAg ICAgKiBQcm90ZWN0ZWQgYnkgdHRtX2dsb2JhbF9tdXRleC4KPj4+IC0gICAgICAgICovCj4+PiAt ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3Q7Cj4+PiAtCj4+PiAtICAgICAgIC8q Kgo+Pj4gLSAgICAgICAgKiBQcm90ZWN0ZWQgYnkgdGhlIGxydV9sb2NrLgo+Pj4gLSAgICAgICAg Ki8KPj4+IC0gICAgICAgc3RydWN0IGxpc3RfaGVhZCBzd2FwX2xydVtUVE1fTUFYX0JPX1BSSU9S SVRZXTsKPj4+IC0KPj4+IC0gICAgICAgLyoqCj4+PiAtICAgICAgICAqIEludGVybmFsIHByb3Rl Y3Rpb24uCj4+PiAtICAgICAgICAqLwo+Pj4gLSAgICAgICBhdG9taWNfdCBib19jb3VudDsKPj4+ IC19IHR0bV9ib19nbG9iOwo+Pj4gLQo+Pj4gLQo+Pj4gLSNkZWZpbmUgVFRNX05VTV9NRU1fVFlQ RVMgOAo+Pj4gLQo+Pj4gLS8qKgo+Pj4gLSAqIHN0cnVjdCB0dG1fYm9fZGV2aWNlIC0gQnVmZmVy IG9iamVjdCBkcml2ZXIgZGV2aWNlLXNwZWNpZmljIGRhdGEuCj4+PiAtICoKPj4+IC0gKiBAZHJp dmVyOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV9ib19kcml2ZXIgc3RydWN0IHNldHVwIGJ5IHRo ZSBkcml2ZXIuCj4+PiAtICogQG1hbjogQW4gYXJyYXkgb2YgcmVzb3VyY2VfbWFuYWdlcnMuCj4+ PiAtICogQHZtYV9tYW5hZ2VyOiBBZGRyZXNzIHNwYWNlIG1hbmFnZXIgKHBvaW50ZXIpCj4+PiAt ICogbHJ1X2xvY2s6IFNwaW5sb2NrIHRoYXQgcHJvdGVjdHMgdGhlIGJ1ZmZlcitkZXZpY2UgbHJ1 IGxpc3RzIGFuZAo+Pj4gLSAqIGRkZXN0cm95IGxpc3RzLgo+Pj4gLSAqIEBkZXZfbWFwcGluZzog QSBwb2ludGVyIHRvIHRoZSBzdHJ1Y3QgYWRkcmVzc19zcGFjZSByZXByZXNlbnRpbmcgdGhlCj4+ PiAtICogZGV2aWNlIGFkZHJlc3Mgc3BhY2UuCj4+PiAtICogQHdxOiBXb3JrIHF1ZXVlIHN0cnVj dHVyZSBmb3IgdGhlIGRlbGF5ZWQgZGVsZXRlIHdvcmtxdWV1ZS4KPj4+IC0gKiBAbm9fcmV0cnk6 IERvbid0IHJldHJ5IGFsbG9jYXRpb24gaWYgaXQgZmFpbHMKPj4+IC0gKgo+Pj4gLSAqLwo+Pj4g LQo+Pj4gLXN0cnVjdCB0dG1fYm9fZGV2aWNlIHsKPj4+IC0KPj4+IC0gICAgICAgLyoKPj4+IC0g ICAgICAgICogQ29uc3RhbnQgYWZ0ZXIgYm8gZGV2aWNlIGluaXQgLyBhdG9taWMuCj4+PiAtICAg ICAgICAqLwo+Pj4gLSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0Owo+Pj4gLSAg ICAgICBzdHJ1Y3QgdHRtX2JvX2RyaXZlciAqZHJpdmVyOwo+Pj4gLSAgICAgICAvKgo+Pj4gLSAg ICAgICAgKiBhY2Nlc3MgdmlhIHR0bV9tYW5hZ2VyX3R5cGUuCj4+PiAtICAgICAgICAqLwo+Pj4g LSAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgc3lzbWFuOwo+Pj4gLSAgICAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbl9kcnZbVFRNX05VTV9NRU1fVFlQRVNdOwo+ Pj4gLSAgICAgICAvKgo+Pj4gLSAgICAgICAgKiBQcm90ZWN0ZWQgYnkgaW50ZXJuYWwgbG9ja3Mu Cj4+PiAtICAgICAgICAqLwo+Pj4gLSAgICAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbWFuYWdl ciAqdm1hX21hbmFnZXI7Cj4+PiAtCj4+PiAtICAgICAgIC8qCj4+PiAtICAgICAgICAqIFByb3Rl Y3RlZCBieSB0aGUgZ2xvYmFsOmxydSBsb2NrLgo+Pj4gLSAgICAgICAgKi8KPj4+IC0gICAgICAg c3RydWN0IGxpc3RfaGVhZCBkZGVzdHJveTsKPj4+IC0KPj4+IC0gICAgICAgLyoKPj4+IC0gICAg ICAgICogUHJvdGVjdGVkIGJ5IGxvYWQgLyBmaXJzdG9wZW4gLyBsYXN0Y2xvc2UgL3VubG9hZCBz eW5jLgo+Pj4gLSAgICAgICAgKi8KPj4+IC0KPj4+IC0gICAgICAgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKmRldl9tYXBwaW5nOwo+Pj4gLQo+Pj4gLSAgICAgICAvKgo+Pj4gLSAgICAgICAgKiBJbnRl cm5hbCBwcm90ZWN0aW9uLgo+Pj4gLSAgICAgICAgKi8KPj4+IC0KPj4+IC0gICAgICAgc3RydWN0 IGRlbGF5ZWRfd29yayB3cTsKPj4+IC0KPj4+IC0gICAgICAgYm9vbCBuZWVkX2RtYTMyOwo+Pj4g LQo+Pj4gLSAgICAgICBib29sIG5vX3JldHJ5Owo+Pj4gLX07Cj4+PiAtCj4+PiAtc3RhdGljIGlu bGluZSBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKnR0bV9tYW5hZ2VyX3R5cGUoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWVtX3R5cGUpCj4+PiAtewo+Pj4gLSAg ICAgICByZXR1cm4gYmRldi0+bWFuX2RydlttZW1fdHlwZV07Cj4+PiAtfQo+Pj4gLQo+Pj4gLXN0 YXRpYyBpbmxpbmUgdm9pZCB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IHR5cGUsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbmFnZXIpCj4+PiAtewo+Pj4gLSAgICAgICBi ZGV2LT5tYW5fZHJ2W3R5cGVdID0gbWFuYWdlcjsKPj4+IC19Cj4+PiAtCj4+PiAgIC8qKgo+Pj4g ICAgKiBzdHJ1Y3QgdHRtX2xydV9idWxrX21vdmVfcG9zCj4+PiAgICAqCj4+PiBAQCAtNDE4LDMw ICsxMDEsNiBAQCBpbnQgdHRtX2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwK Pj4+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7 Cj4+Pgo+Pj4gLWludCB0dG1fYm9fZGV2aWNlX3JlbGVhc2Uoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYpOwo+Pj4gLQo+Pj4gLS8qKgo+Pj4gLSAqIHR0bV9ib19kZXZpY2VfaW5pdAo+Pj4gLSAq Cj4+PiAtICogQGJkZXY6IEEgcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYm9fZGV2aWNlIHRvIGlu aXRpYWxpemUuCj4+PiAtICogQGdsb2I6IEEgcG9pbnRlciB0byBhbiBpbml0aWFsaXplZCBzdHJ1 Y3QgdHRtX2JvX2dsb2JhbC4KPj4+IC0gKiBAZHJpdmVyOiBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3Qg dHRtX2JvX2RyaXZlciBzZXQgdXAgYnkgdGhlIGNhbGxlci4KPj4+IC0gKiBAbWFwcGluZzogVGhl IGFkZHJlc3Mgc3BhY2UgdG8gdXNlIGZvciB0aGlzIGJvLgo+Pj4gLSAqIEB2bWFfbWFuYWdlcjog QSBwb2ludGVyIHRvIGEgdm1hIG1hbmFnZXIuCj4+PiAtICogQGZpbGVfcGFnZV9vZmZzZXQ6IE9m ZnNldCBpbnRvIHRoZSBkZXZpY2UgYWRkcmVzcyBzcGFjZSB0aGF0IGlzIGF2YWlsYWJsZQo+Pj4g LSAqIGZvciBidWZmZXIgZGF0YS4gVGhpcyBlbnN1cmVzIGNvbXBhdGliaWxpdHkgd2l0aCBvdGhl ciB1c2VycyBvZiB0aGUKPj4+IC0gKiBhZGRyZXNzIHNwYWNlLgo+Pj4gLSAqCj4+PiAtICogSW5p dGlhbGl6ZXMgYSBzdHJ1Y3QgdHRtX2JvX2RldmljZToKPj4+IC0gKiBSZXR1cm5zOgo+Pj4gLSAq ICEwOiBGYWlsdXJlLgo+Pj4gLSAqLwo+Pj4gLWludCB0dG1fYm9fZGV2aWNlX2luaXQoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fYm9fZHJpdmVyICpkcml2ZXIsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX3ZtYV9vZmZzZXRfbWFuYWdlciAqdm1hX21hbmFnZXIsCj4+PiAtICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgbmVlZF9kbWEzMik7Cj4+PiAtCj4+PiAgIC8qKgo+Pj4gICAgKiB0dG1fYm9f dW5tYXBfdmlydHVhbAo+Pj4gICAgKgo+Pj4gQEAgLTUzMSw5ICsxOTAsOSBAQCBzdGF0aWMgaW5s aW5lIGludCB0dG1fYm9fcmVzZXJ2ZV9zbG93cGF0aChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+Pj4KPj4+ICAgc3RhdGljIGlubGluZSB2b2lkIHR0bV9ib19tb3ZlX3RvX2xydV90YWls X3VubG9ja2VkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+PiAgIHsKPj4+IC0gICAg ICAgc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+PiArICAgICAgIHNwaW5fbG9j aygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4gICAgICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3Rh aWwoYm8sIE5VTEwpOwo+Pj4gLSAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xv Y2spOwo+Pj4gKyAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4gICB9 Cj4+Pgo+Pj4gICBzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX2Fzc2lnbl9tZW0oc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKPj4+IEBAIC01NzYsOSArMjM1LDkgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHR0bV9ib191bnJlc2VydmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4+ ICAgICogdHRtX2JvX3V0aWwuYwo+Pj4gICAgKi8KPj4+Cj4+PiAtaW50IHR0bV9tZW1faW9fcmVz ZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICtpbnQgdHRtX21lbV9pb19yZXNl cnZlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPj4+IC12b2lkIHR0bV9tZW1faW9fZnJlZShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4+ICt2b2lkIHR0bV9tZW1faW9fZnJlZShzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jl c291cmNlICptZW0pOwo+Pj4gICAvKioKPj4+ICAgICogdHRtX2JvX21vdmVfdHRtCj4+PiBAQCAt NzA2LDcgKzM2NSw3IEBAIHZvaWQgdHRtX2JvX3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibyk7Cj4+PiAgICAqIEluaXRpYWxpc2UgYSBnZW5lcmljIHJhbmdlIG1hbmFnZXIg Zm9yIHRoZSBzZWxlY3RlZCBtZW1vcnkgdHlwZS4KPj4+ICAgICogVGhlIHJhbmdlIG1hbmFnZXIg aXMgaW5zdGFsbGVkIGZvciB0aGlzIGRldmljZSBpbiB0aGUgdHlwZSBzbG90Lgo+Pj4gICAgKi8K Pj4+IC1pbnQgdHRtX3JhbmdlX21hbl9pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ Pj4gK2ludCB0dG1fcmFuZ2VfbWFuX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+PiAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0eXBlLCBib29sIHVzZV90dCwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcF9zaXplKTsKPj4+Cj4+PiBAQCAt NzE4LDcgKzM3Nyw3IEBAIGludCB0dG1fcmFuZ2VfbWFuX2luaXQoc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYsCj4+PiAgICAqCj4+PiAgICAqIFJlbW92ZSB0aGUgZ2VuZXJpYyByYW5nZSBtYW5h Z2VyIGZyb20gYSBzbG90IGFuZCB0ZWFyIGl0IGRvd24uCj4+PiAgICAqLwo+Pj4gLWludCB0dG1f cmFuZ2VfbWFuX2Zpbmkoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAraW50IHR0bV9y YW5nZV9tYW5fZmluaShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIHR5cGUpOwo+Pj4KPj4+ICAgI2VuZGlmCj4+PiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9kZXZpY2UuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fZGV2 aWNlLmgKPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjc1 ZmVkZDM3OGU4Zgo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0 bV9kZXZpY2UuaAo+Pj4gQEAgLTAsMCArMSwzNjYgQEAKPj4+ICsvKgo+Pj4gKyAqIENvcHlyaWdo dCAyMDIwIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KPj4+ICsgKgo+Pj4gKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCj4+PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPj4+ICsgKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCj4+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4+PiArICogYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4+PiArICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKPj4+ICsgKgo+Pj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4+PiArICogYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4+PiArICoK Pj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+Pj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+Pj4gKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAo+Pj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhP UihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+Pj4gKyAqIE9USEVSIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLAo+Pj4gKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+Pj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KPj4+ICsgKgo+Pj4gKyAqIEF1dGhvcnM6IENocmlzdGlhbiBLw7ZuaWcKPj4+ICsg Ki8KPj4+ICsKPj4+ICsjaWZuZGVmIF9UVE1fREVWSUNFX0hfCj4+PiArI2RlZmluZSBfVFRNX0RF VklDRV9IXwo+Pj4gKwo+Pj4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+Pj4gKyNpbmNsdWRl IDxsaW51eC93b3JrcXVldWUuaD4KPj4+ICsjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcmVzb3VyY2Uu aD4KPj4+ICsKPj4+ICsjZGVmaW5lIFRUTV9OVU1fTUVNX1RZUEVTIDgKPj4+ICsKPj4+ICtzdHJ1 Y3QgdHRtX2RldmljZTsKPj4+ICtzdHJ1Y3QgdHRtX3Jlc291cmNlOwo+Pj4gK3N0cnVjdCB0dG1f cGxhY2VtZW50Owo+Pj4gK3N0cnVjdCB0dG1fYnVmZmVyX29iamVjdDsKPj4+ICtzdHJ1Y3QgdHRt X29wZXJhdGlvbl9jdHg7Cj4+PiArCj4+PiArLyoqCj4+PiArICogc3RydWN0IHR0bV9ib19nbG9i YWwgLSBCdWZmZXIgb2JqZWN0IGRyaXZlciBnbG9iYWwgZGF0YS4KPj4+ICsgKgo+Pj4gKyAqIEBk dW1teV9yZWFkX3BhZ2U6IFBvaW50ZXIgdG8gYSBkdW1teSBwYWdlIHVzZWQgZm9yIG1hcHBpbmcg cmVxdWVzdHMKPj4+ICsgKiBvZiB1bnBvcHVsYXRlZCBwYWdlcy4KPj4+ICsgKiBAc2hyaW5rOiBB IHNocmluayBjYWxsYmFjayBvYmplY3QgdXNlZCBmb3IgYnVmZmVyIG9iamVjdCBzd2FwLgo+Pj4g KyAqIEBkZXZpY2VfbGlzdF9tdXRleDogTXV0ZXggcHJvdGVjdGluZyB0aGUgZGV2aWNlIGxpc3Qu Cj4+PiArICogVGhpcyBtdXRleCBpcyBoZWxkIHdoaWxlIHRyYXZlcnNpbmcgdGhlIGRldmljZSBs aXN0IGZvciBwbSBvcHRpb25zLgo+Pj4gKyAqIEBscnVfbG9jazogU3BpbmxvY2sgcHJvdGVjdGlu ZyB0aGUgYm8gc3Vic3lzdGVtIGxydSBsaXN0cy4KPj4+ICsgKiBAZGV2aWNlX2xpc3Q6IExpc3Qg b2YgYnVmZmVyIG9iamVjdCBkZXZpY2VzLgo+Pj4gKyAqIEBzd2FwX2xydTogTHJ1IGxpc3Qgb2Yg YnVmZmVyIG9iamVjdHMgdXNlZCBmb3Igc3dhcHBpbmcuCj4+PiArICovCj4+PiArZXh0ZXJuIHN0 cnVjdCB0dG1fZ2xvYmFsIHsKPj4+ICsKPj4+ICsgICAgICAgLyoqCj4+PiArICAgICAgICAqIENv bnN0YW50IGFmdGVyIGluaXQuCj4+PiArICAgICAgICAqLwo+Pj4gKwo+Pj4gKyAgICAgICBzdHJ1 Y3Qga29iamVjdCBrb2JqOwo+Pj4gKyAgICAgICBzdHJ1Y3QgcGFnZSAqZHVtbXlfcmVhZF9wYWdl Owo+Pj4gKyAgICAgICBzcGlubG9ja190IGxydV9sb2NrOwo+Pj4gKwo+Pj4gKyAgICAgICAvKioK Pj4+ICsgICAgICAgICogUHJvdGVjdGVkIGJ5IHR0bV9nbG9iYWxfbXV0ZXguCj4+PiArICAgICAg ICAqLwo+Pj4gKyAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0Owo+Pj4gKwo+Pj4g KyAgICAgICAvKioKPj4+ICsgICAgICAgICogUHJvdGVjdGVkIGJ5IHRoZSBscnVfbG9jay4KPj4+ ICsgICAgICAgICovCj4+PiArICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc3dhcF9scnVbVFRNX01B WF9CT19QUklPUklUWV07Cj4+PiArCj4+PiArICAgICAgIC8qKgo+Pj4gKyAgICAgICAgKiBJbnRl cm5hbCBwcm90ZWN0aW9uLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsgICAgICAgYXRvbWljX3QgYm9f Y291bnQ7Cj4+PiArfSB0dG1fZ2xvYjsKPj4+ICsKPj4+ICtzdHJ1Y3QgdHRtX2RldmljZV9mdW5j cyB7Cj4+PiArICAgICAgIC8qKgo+Pj4gKyAgICAgICAgKiB0dG1fdHRfY3JlYXRlCj4+PiArICAg ICAgICAqCj4+PiArICAgICAgICAqIEBibzogVGhlIGJ1ZmZlciBvYmplY3QgdG8gY3JlYXRlIHRo ZSB0dG0gZm9yLgo+Pj4gKyAgICAgICAgKiBAcGFnZV9mbGFnczogUGFnZSBmbGFncyBhcyBpZGVu dGlmaWVkIGJ5IFRUTV9QQUdFX0ZMQUdfWFggZmxhZ3MuCj4+PiArICAgICAgICAqCj4+PiArICAg ICAgICAqIENyZWF0ZSBhIHN0cnVjdCB0dG1fdHQgdG8gYmFjayBkYXRhIHdpdGggc3lzdGVtIG1l bW9yeSBwYWdlcy4KPj4+ICsgICAgICAgICogTm8gcGFnZXMgYXJlIGFjdHVhbGx5IGFsbG9jYXRl ZC4KPj4+ICsgICAgICAgICogUmV0dXJuczoKPj4+ICsgICAgICAgICogTlVMTDogT3V0IG9mIG1l bW9yeS4KPj4+ICsgICAgICAgICovCj4+PiArICAgICAgIHN0cnVjdCB0dG1fdHQgKigqdHRtX3R0 X2NyZWF0ZSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwYWdlX2ZsYWdzKTsKPj4+ICsKPj4+ ICsgICAgICAgLyoqCj4+PiArICAgICAgICAqIHR0bV90dF9wb3B1bGF0ZQo+Pj4gKyAgICAgICAg Kgo+Pj4gKyAgICAgICAgKiBAdHRtOiBUaGUgc3RydWN0IHR0bV90dCB0byBjb250YWluIHRoZSBi YWNraW5nIHBhZ2VzLgo+Pj4gKyAgICAgICAgKgo+Pj4gKyAgICAgICAgKiBBbGxvY2F0ZSBhbGwg YmFja2luZyBwYWdlcwo+Pj4gKyAgICAgICAgKiBSZXR1cm5zOgo+Pj4gKyAgICAgICAgKiAtRU5P TUVNOiBPdXQgb2YgbWVtb3J5Lgo+Pj4gKyAgICAgICAgKi8KPj4+ICsgICAgICAgaW50ICgqdHRt X3R0X3BvcHVsYXRlKShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+Pj4gKwo+Pj4g KyAgICAgICAvKioKPj4+ICsgICAgICAgICogdHRtX3R0X3VucG9wdWxhdGUKPj4+ICsgICAgICAg ICoKPj4+ICsgICAgICAgICogQHR0bTogVGhlIHN0cnVjdCB0dG1fdHQgdG8gY29udGFpbiB0aGUg YmFja2luZyBwYWdlcy4KPj4+ICsgICAgICAgICoKPj4+ICsgICAgICAgICogRnJlZSBhbGwgYmFj a2luZyBwYWdlCj4+PiArICAgICAgICAqLwo+Pj4gKyAgICAgICB2b2lkICgqdHRtX3R0X3VucG9w dWxhdGUpKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+PiArCj4+PiArICAgICAgIC8qKgo+ Pj4gKyAgICAgICAgKiB0dG1fdHRfYmluZAo+Pj4gKyAgICAgICAgKgo+Pj4gKyAgICAgICAgKiBA YmRldjogUG9pbnRlciB0byBhIHR0bSBkZXZpY2UKPj4+ICsgICAgICAgICogQHR0bTogUG9pbnRl ciB0byBhIHN0cnVjdCB0dG1fdHQuCj4+PiArICAgICAgICAqIEBib19tZW06IFBvaW50ZXIgdG8g YSBzdHJ1Y3QgdHRtX3Jlc291cmNlIGRlc2NyaWJpbmcgdGhlCj4+PiArICAgICAgICAqIG1lbW9y eSB0eXBlIGFuZCBsb2NhdGlvbiBmb3IgYmluZGluZy4KPj4+ICsgICAgICAgICoKPj4+ICsgICAg ICAgICogQmluZCB0aGUgYmFja2VuZCBwYWdlcyBpbnRvIHRoZSBhcGVydHVyZSBpbiB0aGUgbG9j YXRpb24KPj4+ICsgICAgICAgICogaW5kaWNhdGVkIGJ5IEBib19tZW0uIFRoaXMgZnVuY3Rpb24g c2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlCj4+PiArICAgICAgICAqIGRpZmZlcmVuY2VzIGJldHdl ZW4gYXBlcnR1cmUgYW5kIHN5c3RlbSBwYWdlIHNpemVzLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsg ICAgICAgaW50ICgqdHRtX3R0X2JpbmQpKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3Qg dHRtX3R0ICp0dG0sCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jl c291cmNlICpib19tZW0pOwo+Pj4gKwo+Pj4gKyAgICAgICAvKioKPj4+ICsgICAgICAgICogdHRt X3R0X3VuYmluZAo+Pj4gKyAgICAgICAgKgo+Pj4gKyAgICAgICAgKiBAYmRldjogUG9pbnRlciB0 byBhIHR0bSBkZXZpY2UKPj4+ICsgICAgICAgICogQHR0bTogUG9pbnRlciB0byBhIHN0cnVjdCB0 dG1fdHQuCj4+PiArICAgICAgICAqCj4+PiArICAgICAgICAqIFVuYmluZCBwcmV2aW91c2x5IGJv dW5kIGJhY2tlbmQgcGFnZXMuIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlCj4+PiArICAgICAgICAq IGFibGUgdG8gaGFuZGxlIGRpZmZlcmVuY2VzIGJldHdlZW4gYXBlcnR1cmUgYW5kIHN5c3RlbSBw YWdlIHNpemVzLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsgICAgICAgdm9pZCAoKnR0bV90dF91bmJp bmQpKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pj4gKwo+ Pj4gKyAgICAgICAvKioKPj4+ICsgICAgICAgICogdHRtX3R0X2Rlc3Ryb3kKPj4+ICsgICAgICAg ICoKPj4+ICsgICAgICAgICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG0gZGV2aWNlCj4+PiArICAg ICAgICAqIEB0dG06IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX3R0Lgo+Pj4gKyAgICAgICAgKgo+ Pj4gKyAgICAgICAgKiBEZXN0cm95IHRoZSBiYWNrZW5kLiBUaGlzIHdpbGwgYmUgY2FsbCBiYWNr IGZyb20gdHRtX3R0X2Rlc3Ryb3kgc28KPj4+ICsgICAgICAgICogZG9uJ3QgY2FsbCB0dG1fdHRf ZGVzdHJveSBmcm9tIHRoZSBjYWxsYmFjayBvciBpbmZpbml0ZSBsb29wLgo+Pj4gKyAgICAgICAg Ki8KPj4+ICsgICAgICAgdm9pZCAoKnR0bV90dF9kZXN0cm95KShzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+ICsKPj4+ICsgICAgICAgLyoqCj4+PiArICAg ICAgICAqIHN0cnVjdCB0dG1fYm9fZHJpdmVyIG1lbWJlciBldmljdGlvbl92YWx1YWJsZQo+Pj4g KyAgICAgICAgKgo+Pj4gKyAgICAgICAgKiBAYm86IHRoZSBidWZmZXIgb2JqZWN0IHRvIGJlIGV2 aWN0ZWQKPj4+ICsgICAgICAgICogQHBsYWNlOiBwbGFjZW1lbnQgd2UgbmVlZCByb29tIGZvcgo+ Pj4gKyAgICAgICAgKgo+Pj4gKyAgICAgICAgKiBDaGVjayB3aXRoIHRoZSBkcml2ZXIgaWYgaXQg aXMgdmFsdWFibGUgdG8gZXZpY3QgYSBCTyB0byBtYWtlIHJvb20KPj4+ICsgICAgICAgICogZm9y IGEgY2VydGFpbiBwbGFjZW1lbnQuCj4+PiArICAgICAgICAqLwo+Pj4gKyAgICAgICBib29sICgq ZXZpY3Rpb25fdmFsdWFibGUpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxh Y2UpOwo+Pj4gKyAgICAgICAvKioKPj4+ICsgICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIg bWVtYmVyIGV2aWN0X2ZsYWdzOgo+Pj4gKyAgICAgICAgKgo+Pj4gKyAgICAgICAgKiBAYm86IHRo ZSBidWZmZXIgb2JqZWN0IHRvIGJlIGV2aWN0ZWQKPj4+ICsgICAgICAgICoKPj4+ICsgICAgICAg ICogUmV0dXJuIHRoZSBibyBmbGFncyBmb3IgYSBidWZmZXIgd2hpY2ggaXMgbm90IG1hcHBlZCB0 byB0aGUgaGFyZHdhcmUuCj4+PiArICAgICAgICAqIFRoZXNlIHdpbGwgYmUgcGxhY2VkIGluIHBy b3Bvc2VkX2ZsYWdzIHNvIHRoYXQgd2hlbiB0aGUgbW92ZSBpcwo+Pj4gKyAgICAgICAgKiBmaW5p c2hlZCwgdGhleSdsbCBlbmQgdXAgaW4gYm8tPm1lbS5mbGFncwo+Pj4gKyAgICAgICAgKi8KPj4+ ICsKPj4+ICsgICAgICAgdm9pZCAoKmV2aWN0X2ZsYWdzKShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2Vt ZW50ICpwbGFjZW1lbnQpOwo+Pj4gKwo+Pj4gKyAgICAgICAvKioKPj4+ICsgICAgICAgICogc3Ry dWN0IHR0bV9ib19kcml2ZXIgbWVtYmVyIG1vdmU6Cj4+PiArICAgICAgICAqCj4+PiArICAgICAg ICAqIEBibzogdGhlIGJ1ZmZlciB0byBtb3ZlCj4+PiArICAgICAgICAqIEBldmljdDogd2hldGhl ciB0aGlzIG1vdGlvbiBpcyBldmljdGluZyB0aGUgYnVmZmVyIGZyb20KPj4+ICsgICAgICAgICog dGhlIGdyYXBoaWNzIGFkZHJlc3Mgc3BhY2UKPj4+ICsgICAgICAgICogQGN0eDogY29udGV4dCBm b3IgdGhpcyBtb3ZlIHdpdGggcGFyYW1ldGVycwo+Pj4gKyAgICAgICAgKiBAbmV3X21lbTogdGhl IG5ldyBtZW1vcnkgcmVnaW9uIHJlY2VpdmluZyB0aGUgYnVmZmVyCj4+PiArICAgICAgICAqCj4+ PiArICAgICAgICAqIE1vdmUgYSBidWZmZXIgYmV0d2VlbiB0d28gbWVtb3J5IHJlZ2lvbnMuCj4+ PiArICAgICAgICAqLwo+Pj4gKyAgICAgICBpbnQgKCptb3ZlKShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLCBib29sIGV2aWN0LAo+Pj4gKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X29wZXJhdGlvbl9jdHggKmN0eCwKPj4+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9y ZXNvdXJjZSAqbmV3X21lbSk7Cj4+PiArCj4+PiArICAgICAgIC8qKgo+Pj4gKyAgICAgICAgKiBz dHJ1Y3QgdHRtX2JvX2RyaXZlcl9tZW1iZXIgdmVyaWZ5X2FjY2Vzcwo+Pj4gKyAgICAgICAgKgo+ Pj4gKyAgICAgICAgKiBAYm86IFBvaW50ZXIgdG8gYSBidWZmZXIgb2JqZWN0Lgo+Pj4gKyAgICAg ICAgKiBAZmlscDogUG9pbnRlciB0byBhIHN0cnVjdCBmaWxlIHRyeWluZyB0byBhY2Nlc3MgdGhl IG9iamVjdC4KPj4+ICsgICAgICAgICoKPj4+ICsgICAgICAgICogQ2FsbGVkIGZyb20gdGhlIG1h cCAvIHdyaXRlIC8gcmVhZCBtZXRob2RzIHRvIHZlcmlmeSB0aGF0IHRoZQo+Pj4gKyAgICAgICAg KiBjYWxsZXIgaXMgcGVybWl0dGVkIHRvIGFjY2VzcyB0aGUgYnVmZmVyIG9iamVjdC4KPj4+ICsg ICAgICAgICogVGhpcyBtZW1iZXIgbWF5IGJlIHNldCB0byBOVUxMLCB3aGljaCB3aWxsIHJlZnVz ZSB0aGlzIGtpbmQgb2YKPj4+ICsgICAgICAgICogYWNjZXNzIGZvciBhbGwgYnVmZmVyIG9iamVj dHMuCj4+PiArICAgICAgICAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIHJldHVybiAwIGlmIGFjY2Vz cyBpcyBncmFudGVkLCAtRVBFUk0gb3RoZXJ3aXNlLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsgICAg ICAgaW50ICgqdmVyaWZ5X2FjY2Vzcykoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZpbGUgKmZpbHApOwo+Pj4gKwo+ Pj4gKyAgICAgICAvKioKPj4+ICsgICAgICAgICogSG9vayB0byBub3RpZnkgZHJpdmVyIGFib3V0 IGEgZHJpdmVyIG1vdmUgc28gaXQKPj4+ICsgICAgICAgICogY2FuIGRvIHRpbGluZyB0aGluZ3Mg YW5kIGJvb2sta2VlcGluZy4KPj4+ICsgICAgICAgICoKPj4+ICsgICAgICAgICogQGV2aWN0OiB3 aGV0aGVyIHRoaXMgbW92ZSBpcyBldmljdGluZyB0aGUgYnVmZmVyIGZyb20gdGhlIGdyYXBoaWNz Cj4+PiArICAgICAgICAqIGFkZHJlc3Mgc3BhY2UKPj4+ICsgICAgICAgICovCj4+PiArICAgICAg IHZvaWQgKCptb3ZlX25vdGlmeSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGV2aWN0LAo+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pOwo+Pj4gKwo+Pj4gKyAg ICAgICAvKioKPj4+ICsgICAgICAgICogbm90aWZ5IHRoZSBkcml2ZXIgdGhhdCB3ZSdyZSBhYm91 dCB0byBzd2FwIG91dCB0aGlzIGJvCj4+PiArICAgICAgICAqLwo+Pj4gKyAgICAgICB2b2lkICgq c3dhcF9ub3RpZnkpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+Pj4gKwo+Pj4gKyAg ICAgICAvKioKPj4+ICsgICAgICAgICogRHJpdmVyIGNhbGxiYWNrIG9uIHdoZW4gbWFwcGluZyBp byBtZW1vcnkgKGZvciBib19tb3ZlX21lbWNweQo+Pj4gKyAgICAgICAgKiBmb3IgaW5zdGFuY2Up LiBUVE0gd2lsbCB0YWtlIGNhcmUgdG8gY2FsbCBpb19tZW1fZnJlZSB3aGVuZXZlcgo+Pj4gKyAg ICAgICAgKiB0aGUgbWFwcGluZyBpcyBub3QgdXNlIGFueW1vcmUuIGlvX21lbV9yZXNlcnZlICYg aW9fbWVtX2ZyZWUKPj4+ICsgICAgICAgICogYXJlIGJhbGFuY2VkLgo+Pj4gKyAgICAgICAgKi8K Pj4+ICsgICAgICAgaW50ICgqaW9fbWVtX3Jlc2VydmUpKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAq bWVtKTsKPj4+ICsgICAgICAgdm9pZCAoKmlvX21lbV9mcmVlKShzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl ICptZW0pOwo+Pj4gKwo+Pj4gKyAgICAgICAvKioKPj4+ICsgICAgICAgICogUmV0dXJuIHRoZSBw Zm4gZm9yIGEgZ2l2ZW4gcGFnZV9vZmZzZXQgaW5zaWRlIHRoZSBCTy4KPj4+ICsgICAgICAgICoK Pj4+ICsgICAgICAgICogQGJvOiB0aGUgQk8gdG8gbG9vayB1cCB0aGUgcGZuIGZvcgo+Pj4gKyAg ICAgICAgKiBAcGFnZV9vZmZzZXQ6IHRoZSBvZmZzZXQgdG8gbG9vayB1cAo+Pj4gKyAgICAgICAg Ki8KPj4+ICsgICAgICAgdW5zaWduZWQgbG9uZyAoKmlvX21lbV9wZm4pKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0KTsKPj4+ICsKPj4+ICsgICAgICAgLyoqCj4+PiArICAg ICAgICAqIFJlYWQvd3JpdGUgbWVtb3J5IGJ1ZmZlcnMgZm9yIHB0cmFjZSBhY2Nlc3MKPj4+ICsg ICAgICAgICoKPj4+ICsgICAgICAgICogQGJvOiB0aGUgQk8gdG8gYWNjZXNzCj4+PiArICAgICAg ICAqIEBvZmZzZXQ6IHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIEJPCj4+PiArICAg ICAgICAqIEBidWY6IHBvaW50ZXIgdG8gc291cmNlL2Rlc3RpbmF0aW9uIGJ1ZmZlcgo+Pj4gKyAg ICAgICAgKiBAbGVuOiBudW1iZXIgb2YgYnl0ZXMgdG8gY29weQo+Pj4gKyAgICAgICAgKiBAd3Jp dGU6IHdoZXRoZXIgdG8gcmVhZCAoMCkgZnJvbSBvciB3cml0ZSAobm9uLTApIHRvIEJPCj4+PiAr ICAgICAgICAqCj4+PiArICAgICAgICAqIElmIHN1Y2Nlc3NmdWwsIHRoaXMgZnVuY3Rpb24gc2hv dWxkIHJldHVybiB0aGUgbnVtYmVyIG9mCj4+PiArICAgICAgICAqIGJ5dGVzIGNvcGllZCwgLUVJ TyBvdGhlcndpc2UuIElmIHRoZSBudW1iZXIgb2YgYnl0ZXMKPj4+ICsgICAgICAgICogcmV0dXJu ZWQgaXMgPCBsZW4sIHRoZSBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFnYWluIHdpdGgKPj4+ICsg ICAgICAgICogdGhlIHJlbWFpbmRlciBvZiB0aGUgYnVmZmVyIHRvIGNvcHkuCj4+PiArICAgICAg ICAqLwo+Pj4gKyAgICAgICBpbnQgKCphY2Nlc3NfbWVtb3J5KShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKPj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQgd3JpdGUpOwo+Pj4gKwo+Pj4gKyAgICAg ICAvKioKPj4+ICsgICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIgbWVtYmVyIGRlbF9mcm9t X2xydV9ub3RpZnkKPj4+ICsgICAgICAgICoKPj4+ICsgICAgICAgICogQGJvOiB0aGUgYnVmZmVy IG9iamVjdCBkZWxldGVkIGZyb20gbHJ1Cj4+PiArICAgICAgICAqCj4+PiArICAgICAgICAqIG5v dGlmeSBkcml2ZXIgdGhhdCBhIEJPIHdhcyBkZWxldGVkIGZyb20gTFJVLgo+Pj4gKyAgICAgICAg Ki8KPj4+ICsgICAgICAgdm9pZCAoKmRlbF9mcm9tX2xydV9ub3RpZnkpKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8pOwo+Pj4gKwo+Pj4gKyAgICAgICAvKioKPj4+ICsgICAgICAgICogTm90 aWZ5IHRoZSBkcml2ZXIgdGhhdCB3ZSdyZSBhYm91dCB0byByZWxlYXNlIGEgQk8KPj4+ICsgICAg ICAgICoKPj4+ICsgICAgICAgICogQGJvOiBCTyB0aGF0IGlzIGFib3V0IHRvIGJlIHJlbGVhc2Vk Cj4+PiArICAgICAgICAqCj4+PiArICAgICAgICAqIEdpdmVzIHRoZSBkcml2ZXIgYSBjaGFuY2Ug dG8gZG8gYW55IGNsZWFudXAsIGluY2x1ZGluZwo+Pj4gKyAgICAgICAgKiBhZGRpbmcgZmVuY2Vz IHRoYXQgbWF5IGZvcmNlIGEgZGVsYXllZCBkZWxldGUKPj4+ICsgICAgICAgICovCj4+PiArICAg ICAgIHZvaWQgKCpyZWxlYXNlX25vdGlmeSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7 Cj4+PiArfTsKPj4+ICsKPj4+ICsvKioKPj4+ICsgKiBzdHJ1Y3QgdHRtX2RldmljZSAtIEJ1ZmZl ciBvYmplY3QgZHJpdmVyIGRldmljZS1zcGVjaWZpYyBkYXRhLgo+Pj4gKyAqCj4+PiArICogQGRy aXZlcjogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHN0cnVjdCBzZXR1cCBieSB0 aGUgZHJpdmVyLgo+Pj4gKyAqIEBtYW46IEFuIGFycmF5IG9mIHJlc291cmNlX21hbmFnZXJzLgo+ Pj4gKyAqIEB2bWFfbWFuYWdlcjogQWRkcmVzcyBzcGFjZSBtYW5hZ2VyIChwb2ludGVyKQo+Pj4g KyAqIGxydV9sb2NrOiBTcGlubG9jayB0aGF0IHByb3RlY3RzIHRoZSBidWZmZXIrZGV2aWNlIGxy dSBsaXN0cyBhbmQKPj4+ICsgKiBkZGVzdHJveSBsaXN0cy4KPj4+ICsgKiBAZGV2X21hcHBpbmc6 IEEgcG9pbnRlciB0byB0aGUgc3RydWN0IGFkZHJlc3Nfc3BhY2UgcmVwcmVzZW50aW5nIHRoZQo+ Pj4gKyAqIGRldmljZSBhZGRyZXNzIHNwYWNlLgo+Pj4gKyAqIEB3cTogV29yayBxdWV1ZSBzdHJ1 Y3R1cmUgZm9yIHRoZSBkZWxheWVkIGRlbGV0ZSB3b3JrcXVldWUuCj4+PiArICogQG5vX3JldHJ5 OiBEb24ndCByZXRyeSBhbGxvY2F0aW9uIGlmIGl0IGZhaWxzCj4+PiArICoKPj4+ICsgKi8KPj4+ ICtzdHJ1Y3QgdHRtX2RldmljZSB7Cj4+PiArCj4+PiArICAgICAgIC8qCj4+PiArICAgICAgICAq IENvbnN0YW50IGFmdGVyIGJvIGRldmljZSBpbml0IC8gYXRvbWljLgo+Pj4gKyAgICAgICAgKi8K Pj4+ICsgICAgICAgc3RydWN0IGxpc3RfaGVhZCBkZXZpY2VfbGlzdDsKPj4+ICsgICAgICAgc3Ry dWN0IHR0bV9kZXZpY2VfZnVuY3MgKmZ1bmNzOwo+Pj4gKwo+Pj4gKyAgICAgICAvKgo+Pj4gKyAg ICAgICAgKiBhY2Nlc3MgdmlhIHR0bV9tYW5hZ2VyX3R5cGUuCj4+PiArICAgICAgICAqLwo+Pj4g KyAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgc3lzbWFuOwo+Pj4gKyAgICAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbl9kcnZbVFRNX05VTV9NRU1fVFlQRVNdOwo+ Pj4gKwo+Pj4gKyAgICAgICAvKgo+Pj4gKyAgICAgICAgKiBQcm90ZWN0ZWQgYnkgaW50ZXJuYWwg bG9ja3MuCj4+PiArICAgICAgICAqLwo+Pj4gKyAgICAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRf bWFuYWdlciAqdm1hX21hbmFnZXI7Cj4+PiArCj4+PiArICAgICAgIC8qCj4+PiArICAgICAgICAq IFByb3RlY3RlZCBieSB0aGUgZ2xvYmFsOmxydSBsb2NrLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsg ICAgICAgc3RydWN0IGxpc3RfaGVhZCBkZGVzdHJveTsKPj4+ICsKPj4+ICsgICAgICAgLyoKPj4+ ICsgICAgICAgICogUHJvdGVjdGVkIGJ5IGxvYWQgLyBmaXJzdG9wZW4gLyBsYXN0Y2xvc2UgL3Vu bG9hZCBzeW5jLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsKPj4+ICsgICAgICAgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKmRldl9tYXBwaW5nOwo+Pj4gKwo+Pj4gKyAgICAgICAvKgo+Pj4gKyAgICAgICAg KiBJbnRlcm5hbCBwcm90ZWN0aW9uLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsKPj4+ICsgICAgICAg c3RydWN0IGRlbGF5ZWRfd29yayB3cTsKPj4+ICsKPj4+ICsgICAgICAgYm9vbCBuZWVkX2RtYTMy Owo+Pj4gKyAgICAgICBib29sIG5vX3JldHJ5Owo+Pj4gK307Cj4+PiArCj4+PiArc3RhdGljIGlu bGluZSBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKgo+Pj4gK3R0bV9tYW5hZ2VyX3R5cGUo c3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIGludCBtZW1fdHlwZSkKPj4+ICt7Cj4+PiArICAgICAg IHJldHVybiBiZGV2LT5tYW5fZHJ2W21lbV90eXBlXTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGlj IGlubGluZSB2b2lkCj4+PiArdHRtX3NldF9kcml2ZXJfbWFuYWdlcihzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwgaW50IHR5cGUsCj4+PiArICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqbWFuYWdlcikKPj4+ICt7Cj4+PiArICAgICAgIGJkZXYtPm1hbl9k cnZbdHlwZV0gPSBtYW5hZ2VyOwo+Pj4gK30KPj4+ICsKPj4+ICsvKioKPj4+ICsgKiB0dG1fZGV2 aWNlX2luaXQKPj4+ICsgKgo+Pj4gKyAqIEBiZGV2OiBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRt X2RldmljZSB0byBpbml0aWFsaXplLgo+Pj4gKyAqIEBmdW5jczogQSBwb2ludGVyIHRvIGEgc3Ry dWN0IHR0bV9ib19kcml2ZXIgc2V0IHVwIGJ5IHRoZSBjYWxsZXIuCj4+PiArICogQG1hcHBpbmc6 IFRoZSBhZGRyZXNzIHNwYWNlIHRvIHVzZSBmb3IgdGhpcyBiby4KPj4+ICsgKiBAdm1hX21hbmFn ZXI6IEEgcG9pbnRlciB0byBhIHZtYSBtYW5hZ2VyLgo+Pj4gKyAqIEBuZWVkX2RtYTMyOiBpZiBw YWdlIGFsbG9jYXRpb25zIHNob3VsZCB1c2UgRE1BMzIKPj4+ICsgKgo+Pj4gKyAqIEluaXRpYWxp emVzIGEgc3RydWN0IHR0bV9kZXZpY2U6Cj4+PiArICogUmV0dXJuczoKPj4+ICsgKiAhMDogRmFp bHVyZS4KPj4+ICsgKi8KPj4+ICtpbnQgdHRtX2RldmljZV9pbml0KHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2LCBzdHJ1Y3QgdHRtX2RldmljZV9mdW5jcyAqZnVuY3MsCj4+PiArICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAo+Pj4gKyAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbWFuYWdlciAqdm1hX21hbmFnZXIsCj4+PiArICAg ICAgICAgICAgICAgICAgIGJvb2wgbmVlZF9kbWEzMik7Cj4+PiAraW50IHR0bV9kZXZpY2VfcmVs ZWFzZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldik7Cj4+PiArCj4+PiArI2VuZGlmCj4+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oIGIvaW5jbHVkZS9kcm0vdHRt L3R0bV9yZXNvdXJjZS5oCj4+PiBpbmRleCA5MWI2N2NlY2M2YjYuLmE2MGZmZTQwOWI2MCAxMDA2 NDQKPj4+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaAo+Pj4gKysrIGIvaW5j bHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oCj4+PiBAQCAtMzMsNyArMzMsNyBAQAo+Pj4KPj4+ ICAgI2RlZmluZSBUVE1fTUFYX0JPX1BSSU9SSVRZICAgIDRVCj4+Pgo+Pj4gLXN0cnVjdCB0dG1f Ym9fZGV2aWNlOwo+Pj4gK3N0cnVjdCB0dG1fZGV2aWNlOwo+Pj4gICBzdHJ1Y3QgdHRtX3Jlc291 cmNlX21hbmFnZXI7Cj4+PiAgIHN0cnVjdCB0dG1fcmVzb3VyY2U7Cj4+PiAgIHN0cnVjdCB0dG1f cGxhY2U7Cj4+PiBAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgdHRtX3Jlc291cmNlX2ZyZWUoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVzKTsKPj4+ ICAgdm9pZCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9pbml0KHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIHBfc2l6ZSk7Cj4+Pgo+Pj4gLWludCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0 X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+Pj4gK2ludCB0dG1fcmVzb3VyY2Vf bWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3Vy Y2VfbWFuYWdlciAqbWFuKTsKPj4+Cj4+PiAgIHZvaWQgdHRtX3Jlc291cmNlX21hbmFnZXJfZGVi dWcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vdHRtL3R0bV90dC5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oCj4+PiBpbmRl eCBlMDQyZGVjNWU2YzEuLmE1NjA2NzgxOWE1OCAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvZHJt L3R0bS90dG1fdHQuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oCj4+PiBAQCAt NDgsNyArNDgsNyBAQCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHg7Cj4+PiAgICAqCj4+PiAgICAq IEBwYWdlczogQXJyYXkgb2YgcGFnZXMgYmFja2luZyB0aGUgZGF0YS4KPj4+ICAgICogQG51bV9w YWdlczogTnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBwYWdlIGFycmF5Lgo+Pj4gLSAqIEBiZGV2OiBQ b2ludGVyIHRvIHRoZSBjdXJyZW50IHN0cnVjdCB0dG1fYm9fZGV2aWNlLgo+Pj4gKyAqIEBiZGV2 OiBQb2ludGVyIHRvIHRoZSBjdXJyZW50IHN0cnVjdCB0dG1fZGV2aWNlLgo+Pj4gICAgKiBAYmU6 IFBvaW50ZXIgdG8gdGhlIHR0bSBiYWNrZW5kLgo+Pj4gICAgKiBAc3dhcF9zdG9yYWdlOiBQb2lu dGVyIHRvIHNobWVtIHN0cnVjdCBmaWxlIGZvciBzd2FwIHN0b3JhZ2UuCj4+PiAgICAqIEBjYWNo aW5nX3N0YXRlOiBUaGUgY3VycmVudCBjYWNoaW5nIHN0YXRlIG9mIHRoZSBwYWdlcy4KPj4+IEBA IC0xNDcsMTQgKzE0NywxNCBAQCB2b2lkIHR0bV9kbWFfdHRfZmluaShzdHJ1Y3QgdHRtX2RtYV90 dCAqdHRtX2RtYSk7Cj4+PiAgICAqCj4+PiAgICAqIFVuYmluZCwgdW5wb3B1bGF0ZSBhbmQgZGVz dHJveSBjb21tb24gc3RydWN0IHR0bV90dC4KPj4+ICAgICovCj4+PiAtdm9pZCB0dG1fdHRfZGVz dHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+ ICt2b2lkIHR0bV90dF9kZXN0cm95KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0pOwo+Pj4KPj4+ICAgLyoqCj4+PiAgICAqIHR0bV90dF9kZXN0cm95X2NvbW1vbjoK Pj4+ICAgICoKPj4+ICAgICogQ2FsbGVkIGZyb20gZHJpdmVyIHRvIGRlc3Ryb3kgY29tbW9uIHBh dGguCj4+PiAgICAqLwo+Pj4gLXZvaWQgdHRtX3R0X2Rlc3Ryb3lfY29tbW9uKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pj4gK3ZvaWQgdHRtX3R0X2Rl c3Ryb3lfY29tbW9uKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0p Owo+Pj4KPj4+ICAgLyoqCj4+PiAgICAqIHR0bV90dF9zd2FwaW46Cj4+PiBAQCAtMTY0LDcgKzE2 NCw3IEBAIHZvaWQgdHRtX3R0X2Rlc3Ryb3lfY29tbW9uKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pj4gICAgKiBTd2FwIGluIGEgcHJldmlvdXNseSBz d2FwIG91dCB0dG1fdHQuCj4+PiAgICAqLwo+Pj4gICBpbnQgdHRtX3R0X3N3YXBpbihzdHJ1Y3Qg dHRtX3R0ICp0dG0pOwo+Pj4gLWludCB0dG1fdHRfc3dhcG91dChzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+ICtpbnQgdHRtX3R0X3N3YXBvdXQoc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+Pgo+Pj4gICAvKioK Pj4+ICAgICogdHRtX3R0X3BvcHVsYXRlIC0gYWxsb2NhdGUgcGFnZXMgZm9yIGEgdHRtCj4+PiBA QCAtMTczLDcgKzE3Myw3IEBAIGludCB0dG1fdHRfc3dhcG91dChzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+ICAgICoKPj4+ICAgICogQ2FsbHMgdGhl IGRyaXZlciBtZXRob2QgdG8gYWxsb2NhdGUgcGFnZXMgZm9yIGEgdHRtCj4+PiAgICAqLwo+Pj4g LWludCB0dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+Pj4gK2ludCB0dG1f dHRfcG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwg c3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+Pj4KPj4+ICAgLyoqCj4+PiAgICAqIHR0 bV90dF91bnBvcHVsYXRlIC0gZnJlZSBwYWdlcyBmcm9tIGEgdHRtCj4+PiBAQCAtMTgyLDcgKzE4 Miw3IEBAIGludCB0dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0 cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vCj4+PiAgICAqCj4+PiAgICAqIENhbGxzIHRo ZSBkcml2ZXIgbWV0aG9kIHRvIGZyZWUgYWxsIHBhZ2VzIGZyb20gYSB0dG0KPj4+ICAgICovCj4+ PiAtdm9pZCB0dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3Ry dWN0IHR0bV90dCAqdHRtKTsKPj4+ICt2b2lkIHR0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1f ZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pj4KPj4+ICAgI2lmIElTX0VOQUJM RUQoQ09ORklHX0FHUCkKPj4+ICAgI2luY2x1ZGUgPGxpbnV4L2FncF9iYWNrZW5kLmg+Cj4+PiAt LQo+Pj4gMi4xNy4xCj4+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==