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=-12.1 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, 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 68552C433E0 for ; Mon, 15 Feb 2021 13:40:13 +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 22BCA64D99 for ; Mon, 15 Feb 2021 13:40:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 22BCA64D99 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C6E986E24E; Mon, 15 Feb 2021 13:40:12 +0000 (UTC) Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DF0A6E24E for ; Mon, 15 Feb 2021 13:40:11 +0000 (UTC) Received: by mail-ed1-x534.google.com with SMTP id r17so1470749edy.10 for ; Mon, 15 Feb 2021 05:40:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=nsnQZ5g7wdDgO8T1psgA2Nl6diYTqXAL7KZEnQGFXnA=; b=M/JMKORD0TBnRrLGPFJgtcV3Adg9UDOETdhxM4giv5fSdnk68MBa0hFl9clp2MlYf+ Y/NINSyCLR6+g8ZKhnHH2z05Nyg3y5XB3ikh+1yWRy4hGSMwr48LBcdMFDwg665Gc0Mo KWTbwu3TL1zF8kmtJj4SWWAkQ24NzbEJxQ8m8webt6AAMxPvUkusBkOGnu1fukhjThJ/ sSZqPY3/mFEwNZMiel2flLfbkeVhq9hUTEHqHJlAAVjuqUNcejApT3z5CgMet2pvFJlJ 8d3NhLHnmonuZzCtdhvoUDNbhiyfsdRox90B5YGPQuXX1MDKDwNol5y4YDEr4z3Lw/d/ Y6wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=nsnQZ5g7wdDgO8T1psgA2Nl6diYTqXAL7KZEnQGFXnA=; b=jcSabLBEFGcDYTShpG4B6K3MsvktdzRhMn3R+uK7ZP5JSp8tAZcAjSPYqLoiJXy+yU JAtQh23DaRsLkKJeeJ1xlThs4EEMl8GRML8j0KZDBH/I8W5f8kUWOk9dSQsrvVx/yVsJ ExX5AJjVIq0UyyZ9GyWMeHSjRnXt48VNgXMBxVeho59nRnDMO50+kbNC55/NisCQCUwp PFuEgoFYahmDHUt8dhksjhNR6nakan69s3FtjpcjKz8D+avoAR3o0AQ59LQzVb0rPx3x 3GQAGJczsC0dfaj5jwTX62GKCEisQVtHZ6MToRNAKBZKO82D4nsg76UajqCa8UzZvsFY YueA== X-Gm-Message-State: AOAM532rwaBrpqCw/yN60XzeMJCKy48GU1b3NlJU0EGU/I5PuFKx9qVK 3dVf55TF5U1+NB5bq1QbFMILM6IsVLontw== X-Google-Smtp-Source: ABdhPJyms5QRbftsfkQT9QV7ajRsC61g0//bUy0xH2ggpbLrl0JjluYA/by5ZTCiACG3/gmBi9f+jA== X-Received: by 2002:a50:f693:: with SMTP id d19mr6263540edn.298.1613396409639; Mon, 15 Feb 2021 05:40:09 -0800 (PST) Received: from ?IPv6:2a02:908:1252:fb60:3e90:5494:cc4a:73e5? ([2a02:908:1252:fb60:3e90:5494:cc4a:73e5]) by smtp.gmail.com with ESMTPSA id s12sm10078548edu.28.2021.02.15.05.40.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Feb 2021 05:40:09 -0800 (PST) Subject: Re: [PATCH v2 3/3] drm/amdgpu: do not use drm middle layer for debugfs To: Nirmoy Das , Christian.Koenig@amd.com References: <20210215123438.85436-1-nirmoy.das@amd.com> <20210215123438.85436-3-nirmoy.das@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Mon, 15 Feb 2021 14:40:08 +0100 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: <20210215123438.85436-3-nirmoy.das@amd.com> Content-Language: en-US X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: amd-gfx@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMTUuMDIuMjEgdW0gMTM6MzQgc2NocmllYiBOaXJtb3kgRGFzOgo+IFVzZSBkZWJ1Z2ZzIEFQ SSBkaXJlY3RseSBpbnN0ZWFkIG9mIGRybSBtaWRkbGUgbGF5ZXIuCj4KPiBUaGlzIGFsc28gaW5j bHVkZXMgZm9sbG93aW5nIGRlYnVnZnMgZmlsZSBvdXRwdXQgY2hhbmdlczoKPiAxIGFtZGdwdV9l dmljdF92cmFtL2FtZGdwdV9ldmljdF9ndHQgb3V0cHV0IHdpbGwgbm90IGNvbnRhaW4gYW55IGJy YWNlcy4KPiAgICBlLmcuICgwKSAtLT4gMAo+IDIgYW1kZ3B1X2dwdV9yZWNvdmVyIG91dHB1dCB3 aWxsIHByaW50IHJldHVybiB2YWx1ZSBvZgo+ICAgIGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIo KSBpbnN0ZWFkIG9mIG5vdCBzbyBpbXBvcnRhbnQgImdwdSByZWNvdmVyIgo+ICAgIG1lc3NhZ2Uu Cj4KPiB2MjogKiBjaGVja3BhdGNoLnBsOiB1c2UgJzA0NDQnIGluc3RlYWQgb2YgU19JUlVHTy4K PiAgICAgICogcmVtb3ZlIFNfSUZSRUcgZnJvbSBtb2RlLgo+ICAgICAgKiByZW1vdmUgbW9kZSB2 YXJpYWJsZS4KPgo+IFNpZ25lZC1vZmYtYnk6IE5pcm1veSBEYXMgPG5pcm1veS5kYXNAYW1kLmNv bT4KCldlIGNvdWxkIHByb2JhYmx5IHNpbXBsaWZ5IHRoZSBUVE0gZGVidWdmcyBzdHVmZiBldmVu IG1vcmUsIGJ1dCB0aGF0IGlzIAphIHNlcGFyYXRlIHRhc2suCgpUaGUgc2VyaWVzIGlzIFJldmll d2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cgo+IC0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgICAgICB8ICAgMyAr LQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RlYnVnZnMuYyB8IDE1NSAr KysrKysrLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2RlYnVnZnMuaCB8ICAxNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2ZlbmNlLmMgICB8ICA0NiArKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9nZW0uYyAgICAgfCAgMjIgKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfaWIuYyAgICAgIHwgIDIzICsrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2ttcy5jICAgICB8ICAyNCArKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9vYmplY3QuaCAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90dG0uYyAgICAgfCAxMzEgKysrKysrKysrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCAgICAgfCAgIDIgKy0KPiAgIDEwIGZpbGVzIGNo YW5nZWQsIDIwNSBpbnNlcnRpb25zKCspLCAyMTcgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHUuaAo+IGluZGV4IGUzZDRkMmRjYjNhMC4uOWJmN2Y0OTQ2OTlkIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPiBAQCAtNzk1LDggKzc5NSw3IEBA IHN0cnVjdCBhbWRncHVfZGV2aWNlIHsKPiAgIAlib29sCQkJCWFjY2VsX3dvcmtpbmc7Cj4gICAJ c3RydWN0IG5vdGlmaWVyX2Jsb2NrCQlhY3BpX25iOwo+ICAgCXN0cnVjdCBhbWRncHVfaTJjX2No YW4JCSppMmNfYnVzW0FNREdQVV9NQVhfSTJDX0JVU107Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2RlYnVn ZnMJCWRlYnVnZnNbQU1ER1BVX0RFQlVHRlNfTUFYX0NPTVBPTkVOVFNdOwo+IC0JdW5zaWduZWQJ CQlkZWJ1Z2ZzX2NvdW50Owo+ICsJc3RydWN0IGRlYnVnZnNfYmxvYl93cmFwcGVyICAgICBkZWJ1 Z2ZzX3ZiaW9zX2Jsb2I7Cj4gICAJc3RydWN0IGFtZGdwdV9hdGlmCQkqYXRpZjsKPiAgIAlzdHJ1 Y3QgYW1kZ3B1X2F0Y3MJCWF0Y3M7Cj4gICAJc3RydWN0IG11dGV4CQkJc3JibV9tdXRleDsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RlYnVnZnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZWJ1Z2ZzLmMKPiBpbmRleCA3MTlh ZTY1YWQ2MzMuLjhkMTRlNTEyOTg4NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2RlYnVnZnMuYwo+IEBAIC0yOCw3ICsyOCw2IEBACj4gICAjaW5jbHVkZSA8bGlu dXgvdWFjY2Vzcy5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KPiAgICNpbmNs dWRlIDxsaW51eC9wb2xsLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KPiAgIAo+ ICAgI2luY2x1ZGUgImFtZGdwdS5oIgo+ICAgI2luY2x1ZGUgImFtZGdwdV9wbS5oIgo+IEBAIC0z OCw0NSArMzcsNiBAQAo+ICAgI2luY2x1ZGUgImFtZGdwdV9zZWN1cmVkaXNwbGF5LmgiCj4gICAj aW5jbHVkZSAiYW1kZ3B1X2Z3X2F0dGVzdGF0aW9uLmgiCj4gICAKPiAtLyoqCj4gLSAqIGFtZGdw dV9kZWJ1Z2ZzX2FkZF9maWxlcyAtIEFkZCBzaW1wbGUgZGVidWdmcyBlbnRyaWVzCj4gLSAqCj4g LSAqIEBhZGV2OiAgRGV2aWNlIHRvIGF0dGFjaCBkZWJ1Z2ZzIGVudHJpZXMgdG8KPiAtICogQGZp bGVzOiAgQXJyYXkgb2YgZnVuY3Rpb24gY2FsbGJhY2tzIHRoYXQgcmVzcG9uZCB0byByZWFkcwo+ IC0gKiBAbmZpbGVzOiBOdW1iZXIgb2YgY2FsbGJhY2tzIHRvIHJlZ2lzdGVyCj4gLSAqCj4gLSAq Lwo+IC1pbnQgYW1kZ3B1X2RlYnVnZnNfYWRkX2ZpbGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAo+IC0JCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0ICpmaWxlcywKPiAtCQkJ ICAgICB1bnNpZ25lZCBuZmlsZXMpCj4gLXsKPiAtCXVuc2lnbmVkIGk7Cj4gLQo+IC0JZm9yIChp ID0gMDsgaSA8IGFkZXYtPmRlYnVnZnNfY291bnQ7IGkrKykgewo+IC0JCWlmIChhZGV2LT5kZWJ1 Z2ZzW2ldLmZpbGVzID09IGZpbGVzKSB7Cj4gLQkJCS8qIEFscmVhZHkgcmVnaXN0ZXJlZCAqLwo+ IC0JCQlyZXR1cm4gMDsKPiAtCQl9Cj4gLQl9Cj4gLQo+IC0JaSA9IGFkZXYtPmRlYnVnZnNfY291 bnQgKyAxOwo+IC0JaWYgKGkgPiBBTURHUFVfREVCVUdGU19NQVhfQ09NUE9ORU5UUykgewo+IC0J CURSTV9FUlJPUigiUmVhY2hlZCBtYXhpbXVtIG51bWJlciBvZiBkZWJ1Z2ZzIGNvbXBvbmVudHMu XG4iKTsKPiAtCQlEUk1fRVJST1IoIlJlcG9ydCBzbyB3ZSBpbmNyZWFzZSAiCj4gLQkJCSAgIkFN REdQVV9ERUJVR0ZTX01BWF9DT01QT05FTlRTLlxuIik7Cj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4g LQl9Cj4gLQlhZGV2LT5kZWJ1Z2ZzW2FkZXYtPmRlYnVnZnNfY291bnRdLmZpbGVzID0gZmlsZXM7 Cj4gLQlhZGV2LT5kZWJ1Z2ZzW2FkZXYtPmRlYnVnZnNfY291bnRdLm51bV9maWxlcyA9IG5maWxl czsKPiAtCWFkZXYtPmRlYnVnZnNfY291bnQgPSBpOwo+IC0jaWYgZGVmaW5lZChDT05GSUdfREVC VUdfRlMpCj4gLQlkcm1fZGVidWdmc19jcmVhdGVfZmlsZXMoZmlsZXMsIG5maWxlcywKPiAtCQkJ CSBhZGV2X3RvX2RybShhZGV2KS0+cHJpbWFyeS0+ZGVidWdmc19yb290LAo+IC0JCQkJIGFkZXZf dG9fZHJtKGFkZXYpLT5wcmltYXJ5KTsKPiAtI2VuZGlmCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0K PiAgIGludCBhbWRncHVfZGVidWdmc193YWl0X2R1bXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCj4gICB7Cj4gICAjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMpCj4gQEAgLTEyMzMsMTYg KzExOTMsMTUgQEAgaW50IGFtZGdwdV9kZWJ1Z2ZzX3JlZ3NfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IGFtZGdw dV9kZWJ1Z2ZzX3Rlc3RfaWIoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICtzdGF0 aWMgaW50IGFtZGdwdV9kZWJ1Z2ZzX3Rlc3RfaWJfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKnVudXNlZCkKPiAgIHsKPiAtCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVj dCBkcm1faW5mb19ub2RlICopIG0tPnByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gbm9kZS0+bWlub3ItPmRldjsKPiAtCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZHJt X3RvX2FkZXYoZGV2KTsKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopbS0+cHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBh ZGV2X3RvX2RybShhZGV2KTsKPiAgIAlpbnQgciA9IDAsIGk7Cj4gICAKPiAgIAlyID0gcG1fcnVu dGltZV9nZXRfc3luYyhkZXYtPmRldik7Cj4gICAJaWYgKHIgPCAwKSB7Cj4gLQkJcG1fcnVudGlt ZV9wdXRfYXV0b3N1c3BlbmQoYWRldl90b19kcm0oYWRldiktPmRldik7Cj4gKwkJcG1fcnVudGlt ZV9wdXRfYXV0b3N1c3BlbmQoZGV2LT5kZXYpOwo+ICAgCQlyZXR1cm4gcjsKPiAgIAl9Cj4gICAK PiBAQCAtMTI4NCwzMCArMTI0MywxOSBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZWJ1Z2ZzX3Rlc3Rf aWIoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ ICAgCj4gLXN0YXRpYyBpbnQgYW1kZ3B1X2RlYnVnZnNfZ2V0X3ZiaW9zX2R1bXAoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICpkYXRhKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9k ZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKSBtLT5wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IGRybV90b19hZGV2KGRldik7Cj4gLQo+IC0Jc2VxX3dyaXRlKG0sIGFkZXYtPmJpb3Ms IGFkZXYtPmJpb3Nfc2l6ZSk7Cj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBh bWRncHVfZGVidWdmc19ldmljdF92cmFtKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkK PiArc3RhdGljIGludCBhbWRncHVfZGVidWdmc19ldmljdF92cmFtKHZvaWQgKmRhdGEsIHU2NCAq dmFsKQo+ICAgewo+IC0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9p bmZvX25vZGUgKiltLT5wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUt Pm1pbm9yLT5kZXY7Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRybV90b19hZGV2 KGRldik7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqKWRhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYWRldl90b19kcm0oYWRl dik7Cj4gICAJaW50IHI7Cj4gICAKPiAgIAlyID0gcG1fcnVudGltZV9nZXRfc3luYyhkZXYtPmRl dik7Cj4gICAJaWYgKHIgPCAwKSB7Cj4gLQkJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoYWRl dl90b19kcm0oYWRldiktPmRldik7Cj4gKwkJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZGV2 LT5kZXYpOwo+ICAgCQlyZXR1cm4gcjsKPiAgIAl9Cj4gICAKPiAtCXNlcV9wcmludGYobSwgIigl ZClcbiIsIGFtZGdwdV9ib19ldmljdF92cmFtKGFkZXYpKTsKPiArCSp2YWwgPSBhbWRncHVfYm9f ZXZpY3RfdnJhbShhZGV2KTsKPiAgIAo+ICAgCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZGV2 LT5kZXYpOwo+ICAgCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGRldi0+ZGV2KTsKPiBAQCAt MTMxNSwxMSArMTI2MywxMSBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZWJ1Z2ZzX2V2aWN0X3ZyYW0o c3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAg Cj4gLXN0YXRpYyBpbnQgYW1kZ3B1X2RlYnVnZnNfZXZpY3RfZ3R0KHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqZGF0YSkKPiArCj4gK3N0YXRpYyBpbnQgYW1kZ3B1X2RlYnVnZnNfZXZpY3RfZ3R0 KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQo+ICAgewo+IC0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5v ZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IGRybV90b19hZGV2KGRldik7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWRhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gYWRldl90b19kcm0oYWRldik7Cj4gICAJaW50IHI7Cj4gICAKPiAgIAlyID0gcG1fcnVudGlt ZV9nZXRfc3luYyhkZXYtPmRldik7Cj4gQEAgLTEzMjgsNyArMTI3Niw3IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X2RlYnVnZnNfZXZpY3RfZ3R0KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkK PiAgIAkJcmV0dXJuIHI7Cj4gICAJfQo+ICAgCj4gLQlzZXFfcHJpbnRmKG0sICIoJWQpXG4iLCB0 dG1fYm9fZXZpY3RfbW0oJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1RUKSk7Cj4gKwkqdmFsID0g dHRtX2JvX2V2aWN0X21tKCZhZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9UVCk7Cj4gICAKPiAgIAlw bV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGRldi0+ZGV2KTsKPiAgIAlwbV9ydW50aW1lX3B1dF9h dXRvc3VzcGVuZChkZXYtPmRldik7Cj4gQEAgLTEzMzYsMTAgKzEyODQsMTEgQEAgc3RhdGljIGlu dCBhbWRncHVfZGVidWdmc19ldmljdF9ndHQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRh KQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgYW1kZ3B1X2RlYnVnZnNf dm1faW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gKwo+ICtzdGF0aWMgaW50 IGFtZGdwdV9kZWJ1Z2ZzX3ZtX2luZm9fc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVu dXNlZCkKPiAgIHsKPiAtCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1f aW5mb19ub2RlICopbS0+cHJpdmF0ZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2Rl LT5taW5vci0+ZGV2Owo+ICsJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKiltLT5wcml2YXRlOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGFk ZXZfdG9fZHJtKGFkZXYpOwo+ICAgCXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsKPiAgIAlpbnQgcjsK PiAgIAo+IEBAIC0xMzY1LDEzICsxMzE0LDEyIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RlYnVnZnNf dm1faW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gICAJcmV0dXJuIHI7Cj4g ICB9Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGFtZGdwdV9kZWJ1 Z2ZzX2xpc3RbXSA9IHsKPiAtCXsiYW1kZ3B1X3ZiaW9zIiwgYW1kZ3B1X2RlYnVnZnNfZ2V0X3Zi aW9zX2R1bXB9LAo+IC0JeyJhbWRncHVfdGVzdF9pYiIsICZhbWRncHVfZGVidWdmc190ZXN0X2li fSwKPiAtCXsiYW1kZ3B1X2V2aWN0X3ZyYW0iLCAmYW1kZ3B1X2RlYnVnZnNfZXZpY3RfdnJhbX0s Cj4gLQl7ImFtZGdwdV9ldmljdF9ndHQiLCAmYW1kZ3B1X2RlYnVnZnNfZXZpY3RfZ3R0fSwKPiAt CXsiYW1kZ3B1X3ZtX2luZm8iLCAmYW1kZ3B1X2RlYnVnZnNfdm1faW5mb30sCj4gLX07Cj4gK0RF RklORV9TSE9XX0FUVFJJQlVURShhbWRncHVfZGVidWdmc190ZXN0X2liKTsKPiArREVGSU5FX1NI T1dfQVRUUklCVVRFKGFtZGdwdV9kZWJ1Z2ZzX3ZtX2luZm8pOwo+ICtERUZJTkVfREVCVUdGU19B VFRSSUJVVEUoYW1kZ3B1X2V2aWN0X3ZyYW1fZm9wcywgYW1kZ3B1X2RlYnVnZnNfZXZpY3RfdnJh bSwKPiArCQkJIE5VTEwsICIlbGxkXG4iKTsKPiArREVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGFt ZGdwdV9ldmljdF9ndHRfZm9wcywgYW1kZ3B1X2RlYnVnZnNfZXZpY3RfZ3R0LAo+ICsJCQkgTlVM TCwgIiVsbGRcbiIpOwo+ICAgCj4gICBzdGF0aWMgdm9pZCBhbWRncHVfaWJfcHJlZW1wdF9mZW5j ZXNfc3dhcChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gICAJCQkJCSAgc3RydWN0IGRtYV9m ZW5jZSAqKmZlbmNlcykKPiBAQCAtMTU5MCwxOSArMTUzOCwyMCBAQCBERUZJTkVfU0lNUExFX0FU VFJJQlVURShmb3BzX3NjbGtfc2V0LCBOVUxMLAo+ICAgCj4gICBpbnQgYW1kZ3B1X2RlYnVnZnNf aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIHsKPiArCXN0cnVjdCBkZW50cnkg KnJvb3QgPSBhZGV2X3RvX2RybShhZGV2KS0+cHJpbWFyeS0+ZGVidWdmc19yb290Owo+ICAgCXN0 cnVjdCBkZW50cnkgKmVudDsKPiAgIAlpbnQgciwgaTsKPiAgIAo+IC0JZW50ID0gZGVidWdmc19j cmVhdGVfZmlsZSgiYW1kZ3B1X3ByZWVtcHRfaWIiLCAwNjAwLAo+IC0JCQkJICBhZGV2X3RvX2Ry bShhZGV2KS0+cHJpbWFyeS0+ZGVidWdmc19yb290LCBhZGV2LAo+ICsKPiArCj4gKwllbnQgPSBk ZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJhbWRncHVfcHJlZW1wdF9pYiIsIDA2MDAsIHJvb3QsIGFkZXYs Cj4gICAJCQkJICAmZm9wc19pYl9wcmVlbXB0KTsKPiAgIAlpZiAoIWVudCkgewo+ICAgCQlEUk1f RVJST1IoInVuYWJsZSB0byBjcmVhdGUgYW1kZ3B1X3ByZWVtcHRfaWIgZGVidWdzZnMgZmlsZVxu Iik7Cj4gICAJCXJldHVybiAtRUlPOwo+ICAgCX0KPiAgIAo+IC0JZW50ID0gZGVidWdmc19jcmVh dGVfZmlsZSgiYW1kZ3B1X2ZvcmNlX3NjbGsiLCAwMjAwLAo+IC0JCQkJICBhZGV2X3RvX2RybShh ZGV2KS0+cHJpbWFyeS0+ZGVidWdmc19yb290LCBhZGV2LAo+ICsJZW50ID0gZGVidWdmc19jcmVh dGVfZmlsZSgiYW1kZ3B1X2ZvcmNlX3NjbGsiLCAwMjAwLCByb290LCBhZGV2LAo+ICAgCQkJCSAg JmZvcHNfc2Nsa19zZXQpOwo+ICAgCWlmICghZW50KSB7Cj4gICAJCURSTV9FUlJPUigidW5hYmxl IHRvIGNyZWF0ZSBhbWRncHVfc2V0X3NjbGsgZGVidWdzZnMgZmlsZVxuIik7Cj4gQEAgLTE2MTAs MzIgKzE1NTksMTcgQEAgaW50IGFtZGdwdV9kZWJ1Z2ZzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCj4gICAJfQo+ICAgCj4gICAJLyogUmVnaXN0ZXIgZGVidWdmcyBlbnRyaWVzIGZv ciBhbWRncHVfdHRtICovCj4gLQlyID0gYW1kZ3B1X3R0bV9kZWJ1Z2ZzX2luaXQoYWRldik7Cj4g LQlpZiAocikgewo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXQgZGVidWdmc1xuIik7Cj4g LQkJcmV0dXJuIHI7Cj4gLQl9Cj4gLQo+ICsJYW1kZ3B1X3R0bV9kZWJ1Z2ZzX2luaXQoYWRldik7 Cj4gICAJYW1kZ3B1X2RlYnVnZnNfcG1faW5pdChhZGV2KTsKPiAtCj4gLQlpZiAoYW1kZ3B1X2Rl YnVnZnNfc2FfaW5pdChhZGV2KSkgewo+IC0JCWRldl9lcnIoYWRldi0+ZGV2LCAiZmFpbGVkIHRv IHJlZ2lzdGVyIGRlYnVnZnMgZmlsZSBmb3IgU0FcbiIpOwo+IC0JfQo+IC0KPiAtCWlmIChhbWRn cHVfZGVidWdmc19mZW5jZV9pbml0KGFkZXYpKQo+IC0JCWRldl9lcnIoYWRldi0+ZGV2LCAiZmVu Y2UgZGVidWdmcyBmaWxlIGNyZWF0aW9uIGZhaWxlZFxuIik7Cj4gLQo+IC0JciA9IGFtZGdwdV9k ZWJ1Z2ZzX2dlbV9pbml0KGFkZXYpOwo+IC0JaWYgKHIpCj4gLQkJRFJNX0VSUk9SKCJyZWdpc3Rl cmluZyBnZW0gZGVidWdmcyBmYWlsZWQgKCVkKS5cbiIsIHIpOwo+ICsJYW1kZ3B1X2RlYnVnZnNf c2FfaW5pdChhZGV2KTsKPiArCWFtZGdwdV9kZWJ1Z2ZzX2ZlbmNlX2luaXQoYWRldik7Cj4gKwlh bWRncHVfZGVidWdmc19nZW1faW5pdChhZGV2KTsKPiAgIAo+ICAgCXIgPSBhbWRncHVfZGVidWdm c19yZWdzX2luaXQoYWRldik7Cj4gICAJaWYgKHIpCj4gICAJCURSTV9FUlJPUigicmVnaXN0ZXJp bmcgcmVnaXN0ZXIgZGVidWdmcyBmYWlsZWQgKCVkKS5cbiIsIHIpOwo+ICAgCj4gLQlyID0gYW1k Z3B1X2RlYnVnZnNfZmlybXdhcmVfaW5pdChhZGV2KTsKPiAtCWlmIChyKQo+IC0JCURSTV9FUlJP UigicmVnaXN0ZXJpbmcgZmlybXdhcmUgZGVidWdmcyBmYWlsZWQgKCVkKS5cbiIsIHIpOwo+ICsJ YW1kZ3B1X2RlYnVnZnNfZmlybXdhcmVfaW5pdChhZGV2KTsKPiAgIAo+ICAgI2lmIGRlZmluZWQo Q09ORklHX0RSTV9BTURfREMpCj4gICAJaWYgKGFtZGdwdV9kZXZpY2VfaGFzX2RjX3N1cHBvcnQo YWRldikpCj4gQEAgLTE2NTQsMTcgKzE1ODgsMjYgQEAgaW50IGFtZGdwdV9kZWJ1Z2ZzX2luaXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAJfQo+ICAgCj4gICAJYW1kZ3B1X3Jhc19k ZWJ1Z2ZzX2NyZWF0ZV9hbGwoYWRldik7Cj4gLQo+ICAgCWFtZGdwdV9kZWJ1Z2ZzX2F1dG9kdW1w X2luaXQoYWRldik7Cj4gLQo+ICAgCWFtZGdwdV9yYXBfZGVidWdmc19pbml0KGFkZXYpOwo+IC0K PiAgIAlhbWRncHVfc2VjdXJlZGlzcGxheV9kZWJ1Z2ZzX2luaXQoYWRldik7Cj4gLQo+ICAgCWFt ZGdwdV9md19hdHRlc3RhdGlvbl9kZWJ1Z2ZzX2luaXQoYWRldik7Cj4gICAKPiAtCXJldHVybiBh bWRncHVfZGVidWdmc19hZGRfZmlsZXMoYWRldiwgYW1kZ3B1X2RlYnVnZnNfbGlzdCwKPiAtCQkJ CQlBUlJBWV9TSVpFKGFtZGdwdV9kZWJ1Z2ZzX2xpc3QpKTsKPiArCWRlYnVnZnNfY3JlYXRlX2Zp bGUoImFtZGdwdV9ldmljdF92cmFtIiwgMDQ0NCwgcm9vdCwgYWRldiwKPiArCQkJICAgICZhbWRn cHVfZXZpY3RfdnJhbV9mb3BzKTsKPiArCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImFtZGdwdV9ldmlj dF9ndHQiLCAwNDQ0LCByb290LCBhZGV2LAo+ICsJCQkgICAgJmFtZGdwdV9ldmljdF9ndHRfZm9w cyk7Cj4gKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJhbWRncHVfdGVzdF9pYiIsIDA0NDQsIHJvb3Qs IGFkZXYsCj4gKwkJCSAgICAmYW1kZ3B1X2RlYnVnZnNfdGVzdF9pYl9mb3BzKTsKPiArCWRlYnVn ZnNfY3JlYXRlX2ZpbGUoImFtZGdwdV92bV9pbmZvIiwgMDQ0NCwgcm9vdCwgYWRldiwKPiArCQkJ ICAgICZhbWRncHVfZGVidWdmc192bV9pbmZvX2ZvcHMpOwo+ICsKPiArCWFkZXYtPmRlYnVnZnNf dmJpb3NfYmxvYi5kYXRhID0gYWRldi0+YmlvczsKPiArCWFkZXYtPmRlYnVnZnNfdmJpb3NfYmxv Yi5zaXplID0gYWRldi0+Ymlvc19zaXplOwo+ICsJZGVidWdmc19jcmVhdGVfYmxvYigiYW1kZ3B1 X3ZiaW9zIiwgMDQ0NCwgcm9vdCwKPiArCQkJICAgICZhZGV2LT5kZWJ1Z2ZzX3ZiaW9zX2Jsb2Ip Owo+ICsKPiArCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gICAjZWxzZQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGVidWdmcy5oIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RlYnVnZnMuaAo+IGluZGV4IDI4MDM4ODRkMzM4ZC4uMTQx YTg0NzRlMjRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kZWJ1Z2ZzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGVi dWdmcy5oCj4gQEAgLTI2LDExICsyNiw2IEBACj4gICAvKgo+ICAgICogRGVidWdmcwo+ICAgICov Cj4gLXN0cnVjdCBhbWRncHVfZGVidWdmcyB7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlz dAkqZmlsZXM7Cj4gLQl1bnNpZ25lZAkJbnVtX2ZpbGVzOwo+IC19Owo+IC0KPiAgIHN0cnVjdCBh bWRncHVfYXV0b2R1bXAgewo+ICAgCXN0cnVjdCBjb21wbGV0aW9uCQlkdW1waW5nOwo+ICAgCXN0 cnVjdCB3YWl0X3F1ZXVlX2hlYWQJCWdwdV9oYW5nOwo+IEBAIC0zOSwxMCArMzQsNyBAQCBzdHJ1 Y3QgYW1kZ3B1X2F1dG9kdW1wIHsKPiAgIGludCBhbWRncHVfZGVidWdmc19yZWdzX2luaXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICAgaW50IGFtZGdwdV9kZWJ1Z2ZzX2luaXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICAgdm9pZCBhbWRncHVfZGVidWdmc19maW5pKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiAtaW50IGFtZGdwdV9kZWJ1Z2ZzX2FkZF9maWxl cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAtCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJt X2luZm9fbGlzdCAqZmlsZXMsCj4gLQkJCSAgICAgdW5zaWduZWQgbmZpbGVzKTsKPiAtaW50IGFt ZGdwdV9kZWJ1Z2ZzX2ZlbmNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+IC1p bnQgYW1kZ3B1X2RlYnVnZnNfZmlybXdhcmVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dik7Cj4gLWludCBhbWRncHVfZGVidWdmc19nZW1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldik7Cj4gK3ZvaWQgYW1kZ3B1X2RlYnVnZnNfZmVuY2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldik7Cj4gK3ZvaWQgYW1kZ3B1X2RlYnVnZnNfZmlybXdhcmVfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldik7Cj4gK3ZvaWQgYW1kZ3B1X2RlYnVnZnNfZ2VtX2luaXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICAgaW50IGFtZGdwdV9kZWJ1Z2ZzX3dhaXRfZHVt cChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2ZlbmNlLmMKPiBpbmRleCBkNTZmNDAyM2ViYjMuLjE0M2ExNGY0ODY2ZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCj4gQEAgLTM2LDgg KzM2LDYgQEAKPiAgICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgo+ICAgI2luY2x1ZGUgPGxp bnV4L3BtX3J1bnRpbWUuaD4KPiAgIAo+IC0jaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+Cj4g LQo+ICAgI2luY2x1ZGUgImFtZGdwdS5oIgo+ICAgI2luY2x1ZGUgImFtZGdwdV90cmFjZS5oIgo+ ICAgCj4gQEAgLTY5NywxMSArNjk1LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vf b3BzIGFtZGdwdV9mZW5jZV9vcHMgPSB7Cj4gICAgKiBGZW5jZSBkZWJ1Z2ZzCj4gICAgKi8KPiAg ICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKPiAtc3RhdGljIGludCBhbWRncHVfZGVidWdm c19mZW5jZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiArc3RhdGljIGlu dCBhbWRncHVfZGVidWdmc19mZW5jZV9pbmZvX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICp1bnVzZWQpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IChzdHJ1Y3Qg ZHJtX2luZm9fbm9kZSAqKW0tPnByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g bm9kZS0+bWlub3ItPmRldjsKPiAtCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZHJtX3Rv X2FkZXYoZGV2KTsKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRn cHVfZGV2aWNlICopbS0+cHJpdmF0ZTsKPiAgIAlpbnQgaTsKPiAgIAo+ICAgCWZvciAoaSA9IDA7 IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsKPiBAQCAtNzQ2LDExICs3NDIsMTAgQEAgc3Rh dGljIGludCBhbWRncHVfZGVidWdmc19mZW5jZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqZGF0YSkKPiAgICAqCj4gICAgKiBNYW51YWxseSB0cmlnZ2VyIGEgZ3B1IHJlc2V0IGF0IHRo ZSBuZXh0IGZlbmNlIHdhaXQuCj4gICAgKi8KPiAtc3RhdGljIGludCBhbWRncHVfZGVidWdmc19n cHVfcmVjb3ZlcihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3N0YXRpYyBpbnQg Z3B1X3JlY292ZXJfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQo+ICAgewo+IC0Jc3RydWN0IGRy bV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKikgbS0+cHJpdmF0ZTsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2Owo+IC0Jc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkcm1fdG9fYWRldihkZXYpOwo+ICsJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKilkYXRhOwo+ICsJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGFkZXZfdG9fZHJtKGFkZXYpOwo+ICAgCWludCByOwo+ICAgCj4g ICAJciA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwo+IEBAIC03NTksOCArNzU0LDcg QEAgc3RhdGljIGludCBhbWRncHVfZGVidWdmc19ncHVfcmVjb3ZlcihzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKmRhdGEpCj4gICAJCXJldHVybiAwOwo+ICAgCX0KPiAgIAo+IC0Jc2VxX3ByaW50 ZihtLCAiZ3B1IHJlY292ZXJcbiIpOwo+IC0JYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihhZGV2 LCBOVUxMKTsKPiArCSp2YWwgPSBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKGFkZXYsIE5VTEwp Owo+ICAgCj4gICAJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShkZXYtPmRldik7Cj4gICAJcG1f cnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZGV2LT5kZXYpOwo+IEBAIC03NjgsMjYgKzc2MiwyNCBA QCBzdGF0aWMgaW50IGFtZGdwdV9kZWJ1Z2ZzX2dwdV9yZWNvdmVyKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqZGF0YSkKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgY29uc3Qg c3RydWN0IGRybV9pbmZvX2xpc3QgYW1kZ3B1X2RlYnVnZnNfZmVuY2VfbGlzdFtdID0gewo+IC0J eyJhbWRncHVfZmVuY2VfaW5mbyIsICZhbWRncHVfZGVidWdmc19mZW5jZV9pbmZvLCAwLCBOVUxM fSwKPiAtCXsiYW1kZ3B1X2dwdV9yZWNvdmVyIiwgJmFtZGdwdV9kZWJ1Z2ZzX2dwdV9yZWNvdmVy LCAwLCBOVUxMfQo+IC19Owo+ICtERUZJTkVfU0hPV19BVFRSSUJVVEUoYW1kZ3B1X2RlYnVnZnNf ZmVuY2VfaW5mbyk7Cj4gK0RFRklORV9ERUJVR0ZTX0FUVFJJQlVURShhbWRncHVfZGVidWdmc19n cHVfcmVjb3Zlcl9mb3BzLCBncHVfcmVjb3Zlcl9nZXQsIE5VTEwsCj4gKwkJCSAiJWxsZFxuIik7 Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGFtZGdwdV9kZWJ1Z2Zz X2ZlbmNlX2xpc3Rfc3Jpb3ZbXSA9IHsKPiAtCXsiYW1kZ3B1X2ZlbmNlX2luZm8iLCAmYW1kZ3B1 X2RlYnVnZnNfZmVuY2VfaW5mbywgMCwgTlVMTH0sCj4gLX07Cj4gICAjZW5kaWYKPiAgIAo+IC1p bnQgYW1kZ3B1X2RlYnVnZnNfZmVuY2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK PiArdm9pZCBhbWRncHVfZGVidWdmc19mZW5jZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQo+ICAgewo+ICAgI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQo+IC0JaWYgKGFtZGdw dV9zcmlvdl92ZihhZGV2KSkKPiAtCQlyZXR1cm4gYW1kZ3B1X2RlYnVnZnNfYWRkX2ZpbGVzKGFk ZXYsIGFtZGdwdV9kZWJ1Z2ZzX2ZlbmNlX2xpc3Rfc3Jpb3YsCj4gLQkJCQkJCUFSUkFZX1NJWkUo YW1kZ3B1X2RlYnVnZnNfZmVuY2VfbGlzdF9zcmlvdikpOwo+IC0JcmV0dXJuIGFtZGdwdV9kZWJ1 Z2ZzX2FkZF9maWxlcyhhZGV2LCBhbWRncHVfZGVidWdmc19mZW5jZV9saXN0LAo+IC0JCQkJCUFS UkFZX1NJWkUoYW1kZ3B1X2RlYnVnZnNfZmVuY2VfbGlzdCkpOwo+IC0jZWxzZQo+IC0JcmV0dXJu IDA7Cj4gKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGFkZXZfdG9fZHJtKGFkZXYpLT5wcmlt YXJ5Owo+ICsJc3RydWN0IGRlbnRyeSAqcm9vdCA9IG1pbm9yLT5kZWJ1Z2ZzX3Jvb3Q7Cj4gKwo+ ICsJZGVidWdmc19jcmVhdGVfZmlsZSgiYW1kZ3B1X2ZlbmNlX2luZm8iLCAwNDQ0LCByb290LCBh ZGV2LAo+ICsJCQkgICAgJmFtZGdwdV9kZWJ1Z2ZzX2ZlbmNlX2luZm9fZm9wcyk7Cj4gKwo+ICsJ aWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpCj4gKwkJZGVidWdmc19jcmVhdGVfZmlsZSgiYW1k Z3B1X2dwdV9yZWNvdmVyIiwgMDQ0NCwgcm9vdCwgYWRldiwKPiArCQkJCSAgICAmYW1kZ3B1X2Rl YnVnZnNfZ3B1X3JlY292ZXJfZm9wcyk7Cj4gICAjZW5kaWYKPiAgIH0KPiAgIAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKPiBpbmRleCA1YjUwODYwZWVjZTQuLjhlOWI4 YTZlNmVmMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Z2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKPiBA QCAtMzIsNyArMzIsNiBAQAo+ICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KPiAgIAo+ICAg I2luY2x1ZGUgPGRybS9hbWRncHVfZHJtLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMu aD4KPiAgIAo+ICAgI2luY2x1ZGUgImFtZGdwdS5oIgo+ICAgI2luY2x1ZGUgImFtZGdwdV9kaXNw bGF5LmgiCj4gQEAgLTgzNiwxMCArODM1LDEwIEBAIGludCBhbWRncHVfbW9kZV9kdW1iX2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAgIH0KPiAgIAo+ICAgI2lmIGRlZmluZWQo Q09ORklHX0RFQlVHX0ZTKQo+IC1zdGF0aWMgaW50IGFtZGdwdV9kZWJ1Z2ZzX2dlbV9pbmZvKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiArc3RhdGljIGludCBhbWRncHVfZGVidWdm c19nZW1faW5mb19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICAgewo+ IC0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKilt LT5wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7 Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KW0tPnByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYWRldl90b19kcm0oYWRl dik7Cj4gICAJc3RydWN0IGRybV9maWxlICpmaWxlOwo+ICAgCWludCByOwo+ICAgCj4gQEAgLTg3 NywxNiArODc2LDE3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RlYnVnZnNfZ2VtX2luZm8oc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBhbWRncHVfZGVidWdmc19nZW1fbGlzdFtd ID0gewo+IC0JeyJhbWRncHVfZ2VtX2luZm8iLCAmYW1kZ3B1X2RlYnVnZnNfZ2VtX2luZm8sIDAs IE5VTEx9LAo+IC19Owo+ICtERUZJTkVfU0hPV19BVFRSSUJVVEUoYW1kZ3B1X2RlYnVnZnNfZ2Vt X2luZm8pOwo+ICsKPiAgICNlbmRpZgo+ICAgCj4gLWludCBhbWRncHVfZGVidWdmc19nZW1faW5p dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiArdm9pZCBhbWRncHVfZGVidWdmc19nZW1f aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIHsKPiAgICNpZiBkZWZpbmVkKENP TkZJR19ERUJVR19GUykKPiAtCXJldHVybiBhbWRncHVfZGVidWdmc19hZGRfZmlsZXMoYWRldiwg YW1kZ3B1X2RlYnVnZnNfZ2VtX2xpc3QsCj4gLQkJCQkJQVJSQVlfU0laRShhbWRncHVfZGVidWdm c19nZW1fbGlzdCkpOwo+ICsJc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBhZGV2X3RvX2RybShh ZGV2KS0+cHJpbWFyeTsKPiArCXN0cnVjdCBkZW50cnkgKnJvb3QgPSBtaW5vci0+ZGVidWdmc19y b290Owo+ICsKPiArCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImFtZGdwdV9nZW1faW5mbyIsIDA0NDQs IHJvb3QsIGFkZXYsCj4gKwkJCSAgICAmYW1kZ3B1X2RlYnVnZnNfZ2VtX2luZm9fZm9wcyk7Cj4g ICAjZW5kaWYKPiAtCXJldHVybiAwOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9pYi5jCj4gaW5kZXggNzY0NTIyM2VhMGVmLi4xNDhhM2I0ODFiMTIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYwo+IEBAIC0zMCw3ICszMCw2IEBACj4gICAj aW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICAgCj4gICAjaW5jbHVkZSA8ZHJtL2FtZGdwdV9kcm0u aD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgo+ICAgCj4gICAjaW5jbHVkZSAiYW1k Z3B1LmgiCj4gICAjaW5jbHVkZSAiYXRvbS5oIgo+IEBAIC00NTMsMTEgKzQ1Miw5IEBAIGludCBh bWRncHVfaWJfcmluZ190ZXN0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgICAqLwo+ ICAgI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQo+ICAgCj4gLXN0YXRpYyBpbnQgYW1kZ3B1 X2RlYnVnZnNfc2FfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3N0YXRp YyBpbnQgYW1kZ3B1X2RlYnVnZnNfc2FfaW5mb19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqdW51c2VkKQo+ICAgewo+IC0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0 IGRybV9pbmZvX25vZGUgKikgbS0+cHJpdmF0ZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBub2RlLT5taW5vci0+ZGV2Owo+IC0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkcm1f dG9fYWRldihkZXYpOwo+ICsJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKiltLT5wcml2YXRlOwo+ICAgCj4gICAJc2VxX3ByaW50ZihtLCAiLS0tLS0t LS0tLS0tLS0tLS0tLS0tIERFTEFZRUQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxuIik7Cj4gICAJ YW1kZ3B1X3NhX2JvX2R1bXBfZGVidWdfaW5mbygmYWRldi0+aWJfcG9vbHNbQU1ER1BVX0lCX1BP T0xfREVMQVlFRF0sCj4gQEAgLTQ3MSwxOCArNDY4LDE4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Rl YnVnZnNfc2FfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gICAJcmV0dXJu IDA7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGFtZGdw dV9kZWJ1Z2ZzX3NhX2xpc3RbXSA9IHsKPiAtCXsiYW1kZ3B1X3NhX2luZm8iLCAmYW1kZ3B1X2Rl YnVnZnNfc2FfaW5mbywgMCwgTlVMTH0sCj4gLX07Cj4gK0RFRklORV9TSE9XX0FUVFJJQlVURShh bWRncHVfZGVidWdmc19zYV9pbmZvKTsKPiAgIAo+ICAgI2VuZGlmCj4gICAKPiAtaW50IGFtZGdw dV9kZWJ1Z2ZzX3NhX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gK3ZvaWQgYW1k Z3B1X2RlYnVnZnNfc2FfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIHsKPiAg ICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKPiAtCXJldHVybiBhbWRncHVfZGVidWdmc19h ZGRfZmlsZXMoYWRldiwgYW1kZ3B1X2RlYnVnZnNfc2FfbGlzdCwKPiAtCQkJCQlBUlJBWV9TSVpF KGFtZGdwdV9kZWJ1Z2ZzX3NhX2xpc3QpKTsKPiAtI2Vsc2UKPiAtCXJldHVybiAwOwo+ICsJc3Ry dWN0IGRybV9taW5vciAqbWlub3IgPSBhZGV2X3RvX2RybShhZGV2KS0+cHJpbWFyeTsKPiArCXN0 cnVjdCBkZW50cnkgKnJvb3QgPSBtaW5vci0+ZGVidWdmc19yb290Owo+ICsKPiArCWRlYnVnZnNf Y3JlYXRlX2ZpbGUoImFtZGdwdV9zYV9pbmZvIiwgMDQ0NCwgcm9vdCwgYWRldiwKPiArCQkJICAg ICZhbWRncHVfZGVidWdmc19zYV9pbmZvX2ZvcHMpOwo+ICsKPiAgICNlbmRpZgo+ICAgfQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKPiBpbmRleCBlMzY1YzRmZGNmZTMu LjQ3Y2EyMDM5NGQ2YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfa21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21z LmMKPiBAQCAtMjcsNyArMjcsNiBAQAo+ICAgICovCj4gICAKPiAgICNpbmNsdWRlICJhbWRncHUu aCIKPiAtI2luY2x1ZGUgPGRybS9kcm1fZGVidWdmcy5oPgo+ICAgI2luY2x1ZGUgPGRybS9hbWRn cHVfZHJtLmg+Cj4gICAjaW5jbHVkZSAiYW1kZ3B1X3NjaGVkLmgiCj4gICAjaW5jbHVkZSAiYW1k Z3B1X3V2ZC5oIgo+IEBAIC0xMjg3LDExICsxMjg2LDkgQEAgY29uc3QgaW50IGFtZGdwdV9tYXhf a21zX2lvY3RsID0gQVJSQVlfU0laRShhbWRncHVfaW9jdGxzX2ttcyk7Cj4gICAgKi8KPiAgICNp ZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKPiAgIAo+IC1zdGF0aWMgaW50IGFtZGdwdV9kZWJ1 Z2ZzX2Zpcm13YXJlX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICtzdGF0 aWMgaW50IGFtZGdwdV9kZWJ1Z2ZzX2Zpcm13YXJlX2luZm9fc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKnVudXNlZCkKPiAgIHsKPiAtCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0g KHN0cnVjdCBkcm1faW5mb19ub2RlICopIG0tPnByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKPiAtCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gZHJtX3RvX2FkZXYoZGV2KTsKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0 cnVjdCBhbWRncHVfZGV2aWNlICopbS0+cHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgZHJtX2FtZGdwdV9p bmZvX2Zpcm13YXJlIGZ3X2luZm87Cj4gICAJc3RydWN0IGRybV9hbWRncHVfcXVlcnlfZncgcXVl cnlfZnc7Cj4gICAJc3RydWN0IGF0b21fY29udGV4dCAqY3R4ID0gYWRldi0+bW9kZV9pbmZvLmF0 b21fY29udGV4dDsKPiBAQCAtMTQ5NywxNyArMTQ5NCwxOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9k ZWJ1Z2ZzX2Zpcm13YXJlX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAg CXJldHVybiAwOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlz dCBhbWRncHVfZmlybXdhcmVfaW5mb19saXN0W10gPSB7Cj4gLQl7ImFtZGdwdV9maXJtd2FyZV9p bmZvIiwgYW1kZ3B1X2RlYnVnZnNfZmlybXdhcmVfaW5mbywgMCwgTlVMTH0sCj4gLX07Cj4gK0RF RklORV9TSE9XX0FUVFJJQlVURShhbWRncHVfZGVidWdmc19maXJtd2FyZV9pbmZvKTsKPiArCj4g ICAjZW5kaWYKPiAgIAo+IC1pbnQgYW1kZ3B1X2RlYnVnZnNfZmlybXdhcmVfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKPiArdm9pZCBhbWRncHVfZGVidWdmc19maXJtd2FyZV9pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgewo+ICAgI2lmIGRlZmluZWQoQ09ORklH X0RFQlVHX0ZTKQo+IC0JcmV0dXJuIGFtZGdwdV9kZWJ1Z2ZzX2FkZF9maWxlcyhhZGV2LCBhbWRn cHVfZmlybXdhcmVfaW5mb19saXN0LAo+IC0JCQkJCUFSUkFZX1NJWkUoYW1kZ3B1X2Zpcm13YXJl X2luZm9fbGlzdCkpOwo+IC0jZWxzZQo+IC0JcmV0dXJuIDA7Cj4gKwlzdHJ1Y3QgZHJtX21pbm9y ICptaW5vciA9IGFkZXZfdG9fZHJtKGFkZXYpLT5wcmltYXJ5Owo+ICsJc3RydWN0IGRlbnRyeSAq cm9vdCA9IG1pbm9yLT5kZWJ1Z2ZzX3Jvb3Q7Cj4gKwo+ICsJZGVidWdmc19jcmVhdGVfZmlsZSgi YW1kZ3B1X2Zpcm13YXJlX2luZm8iLCAwNDQ0LCByb290LAo+ICsJCQkgICAgYWRldiwgJmFtZGdw dV9kZWJ1Z2ZzX2Zpcm13YXJlX2luZm9fZm9wcyk7Cj4gKwo+ICAgI2VuZGlmCj4gICB9Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaAo+IGluZGV4IGFkYmVmZDZh NjU1ZC4uMTkyNjI3ZDM1YmFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9vYmplY3QuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9vYmplY3QuaAo+IEBAIC0zMzEsNyArMzMxLDcgQEAgdm9pZCBhbWRncHVfc2FfYm9fZHVt cF9kZWJ1Z19pbmZvKHN0cnVjdCBhbWRncHVfc2FfbWFuYWdlciAqc2FfbWFuYWdlciwKPiAgIAkJ CQkJIHN0cnVjdCBzZXFfZmlsZSAqbSk7Cj4gICB1NjQgYW1kZ3B1X2JvX3ByaW50X2luZm8oaW50 IGlkLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywgc3RydWN0IHNlcV9maWxlICptKTsKPiAgICNlbmRp Zgo+IC1pbnQgYW1kZ3B1X2RlYnVnZnNfc2FfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dik7Cj4gK3ZvaWQgYW1kZ3B1X2RlYnVnZnNfc2FfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldik7Cj4gICAKPiAgIGJvb2wgYW1kZ3B1X2JvX3N1cHBvcnRfdXN3Yyh1NjQgYm9fZmxhZ3Mp Owo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+IGluZGV4IGNl OTI3NjhjZDE0Ni4uN2IyZGI3NzlmMzEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90dG0uYwo+IEBAIC00OSw3ICs0OSw2IEBACj4gICAjaW5jbHVkZSA8ZHJtL3R0bS90 dG1fbW9kdWxlLmg+Cj4gICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5oPgo+ICAg Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX2RlYnVnZnMuaD4KPiAgICNpbmNsdWRlIDxkcm0vYW1kZ3B1 X2RybS5oPgo+ICAgCj4gICAjaW5jbHVkZSAiYW1kZ3B1LmgiCj4gQEAgLTIyNTMsMzAgKzIyNTIs NjYgQEAgaW50IGFtZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPiAgIAo+ ICAgI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQo+ICAgCj4gLXN0YXRpYyBpbnQgYW1kZ3B1 X21tX2R1bXBfdGFibGUoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICtzdGF0aWMg aW50IGFtZGdwdV9tbV92cmFtX3RhYmxlX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IChzdHJ1Y3QgZHJt X2luZm9fbm9kZSAqKW0tPnByaXZhdGU7Cj4gLQl1bnNpZ25lZCB0dG1fcGwgPSAodWludHB0cl90 KW5vZGUtPmluZm9fZW50LT5kYXRhOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUt Pm1pbm9yLT5kZXY7Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRybV90b19hZGV2 KGRldik7Cj4gLQlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2Vy X3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgdHRtX3BsKTsKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopbS0+cHJpdmF0ZTsKPiArCXN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5i ZGV2LAo+ICsJCQkJCQkJICAgIFRUTV9QTF9WUkFNKTsKPiAgIAlzdHJ1Y3QgZHJtX3ByaW50ZXIg cCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwo+ICAgCj4gICAJbWFuLT5mdW5jLT5kZWJ1Zyht YW4sICZwKTsKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9pbmZvX2xpc3QgYW1kZ3B1X3R0bV9kZWJ1Z2ZzX2xpc3RbXSA9IHsKPiAtCXsiYW1kZ3B1 X3ZyYW1fbW0iLCBhbWRncHVfbW1fZHVtcF90YWJsZSwgMCwgKHZvaWQgKilUVE1fUExfVlJBTX0s Cj4gLQl7ImFtZGdwdV9ndHRfbW0iLCBhbWRncHVfbW1fZHVtcF90YWJsZSwgMCwgKHZvaWQgKilU VE1fUExfVFR9LAo+IC0JeyJhbWRncHVfZ2RzX21tIiwgYW1kZ3B1X21tX2R1bXBfdGFibGUsIDAs ICh2b2lkICopQU1ER1BVX1BMX0dEU30sCj4gLQl7ImFtZGdwdV9nd3NfbW0iLCBhbWRncHVfbW1f ZHVtcF90YWJsZSwgMCwgKHZvaWQgKilBTURHUFVfUExfR1dTfSwKPiAtCXsiYW1kZ3B1X29hX21t IiwgYW1kZ3B1X21tX2R1bXBfdGFibGUsIDAsICh2b2lkICopQU1ER1BVX1BMX09BfSwKPiAtCXsi dHRtX3BhZ2VfcG9vbCIsIHR0bV9wYWdlX2FsbG9jX2RlYnVnZnMsIDAsIE5VTEx9LAo+IC0jaWZk ZWYgQ09ORklHX1NXSU9UTEIKPiAtCXsidHRtX2RtYV9wYWdlX3Bvb2wiLCB0dG1fZG1hX3BhZ2Vf YWxsb2NfZGVidWdmcywgMCwgTlVMTH0KPiAtI2VuZGlmCj4gLX07Cj4gK3N0YXRpYyBpbnQgYW1k Z3B1X21tX3R0X3RhYmxlX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4g K3sKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNl ICopbS0+cHJpdmF0ZTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRt X21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LAo+ICsJCQkJCQkJICAgIFRUTV9QTF9UVCk7 Cj4gKwlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwo+ICsK PiArCW1hbi0+ZnVuYy0+ZGVidWcobWFuLCAmcCk7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAr c3RhdGljIGludCBhbWRncHVfbW1fZ2RzX3RhYmxlX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICp1bnVzZWQpCj4gK3sKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopbS0+cHJpdmF0ZTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LAo+ICsJCQkJCQkJ ICAgIEFNREdQVV9QTF9HRFMpOwo+ICsJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2Zp bGVfcHJpbnRlcihtKTsKPiArCj4gKwltYW4tPmZ1bmMtPmRlYnVnKG1hbiwgJnApOwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgYW1kZ3B1X21tX2d3c190YWJsZV9zaG93KHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICt7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKW0tPnByaXZhdGU7Cj4gKwlzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1t YW4uYmRldiwKPiArCQkJCQkJCSAgICBBTURHUFVfUExfR1dTKTsKPiArCXN0cnVjdCBkcm1fcHJp bnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gKwo+ICsJbWFuLT5mdW5jLT5kZWJ1 ZyhtYW4sICZwKTsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGFtZGdwdV9t bV9vYV90YWJsZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICt7Cj4g KwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKW0t PnByaXZhdGU7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5h Z2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwKPiArCQkJCQkJCSAgICBBTURHUFVfUExfT0EpOwo+ ICsJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKPiArCj4g KwltYW4tPmZ1bmMtPmRlYnVnKG1hbiwgJnApOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK0RF RklORV9TSE9XX0FUVFJJQlVURShhbWRncHVfbW1fdnJhbV90YWJsZSk7Cj4gK0RFRklORV9TSE9X X0FUVFJJQlVURShhbWRncHVfbW1fdHRfdGFibGUpOwo+ICtERUZJTkVfU0hPV19BVFRSSUJVVEUo YW1kZ3B1X21tX2dkc190YWJsZSk7Cj4gK0RFRklORV9TSE9XX0FUVFJJQlVURShhbWRncHVfbW1f Z3dzX3RhYmxlKTsKPiArREVGSU5FX1NIT1dfQVRUUklCVVRFKGFtZGdwdV9tbV9vYV90YWJsZSk7 Cj4gICAKPiAgIC8qCj4gICAgKiBhbWRncHVfdHRtX3ZyYW1fcmVhZCAtIExpbmVhciByZWFkIGFj Y2VzcyB0byBWUkFNCj4gQEAgLTI0NzgsMzAgKzI1MTMsNjIgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgYW1kZ3B1X3R0bV9pb21lbV9mb3BzID0gewo+ICAgCS5sbHNlZWsg PSBkZWZhdWx0X2xsc2Vlawo+ICAgfTsKPiAgIAo+ICtzdGF0aWMgaW50IGFtZGdwdV90dG1fcGFn ZV9kZWJ1Z2ZzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCj4g K3sKPiArCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCB0dG1fcGFnZV9hbGxvY19kZWJ1Z2ZzLCBp bm9kZS0+aV9wcml2YXRlKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgYW1kZ3B1X3R0bV9wYWdlX2RlYnVnZnNfZm9wcyA9IHsKPiArCS5vd25lciA9IFRI SVNfTU9EVUxFLAo+ICsJLm9wZW4gPSBhbWRncHVfdHRtX3BhZ2VfZGVidWdmc19vcGVuLAo+ICsJ LnJlYWQgPSBzZXFfcmVhZCwKPiArCS5sbHNlZWsgPSBzZXFfbHNlZWssCj4gKwkucmVsZWFzZSA9 IHNpbmdsZV9yZWxlYXNlLAo+ICt9Owo+ICsKPiArI2lmZGVmIENPTkZJR19TV0lPVExCCj4gK3N0 YXRpYyBpbnQgYW1kZ3B1X3R0bV9kbWFfcGFnZV9kZWJ1Z2ZzX29wZW4oc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCj4gK3sKPiArCXJldHVybiBzaW5nbGVfb3BlbihmaWxl LCB0dG1fZG1hX3BhZ2VfYWxsb2NfZGVidWdmcywgaW5vZGUtPmlfcHJpdmF0ZSk7Cj4gK30KPiAr Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGFtZGdwdV90dG1fZG1hX3Bh Z2VfZGVidWdmc19mb3BzID0gewo+ICsJLm93bmVyID0gVEhJU19NT0RVTEUsCj4gKwkub3BlbiA9 IGFtZGdwdV90dG1fZG1hX3BhZ2VfZGVidWdmc19vcGVuLAo+ICsJLnJlYWQgPSBzZXFfcmVhZCwK PiArCS5sbHNlZWsgPSBzZXFfbHNlZWssCj4gKwkucmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAo+ ICt9Owo+ICAgI2VuZGlmCj4gICAKPiAtaW50IGFtZGdwdV90dG1fZGVidWdmc19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICsjZW5kaWYKPiArCj4gK3ZvaWQgYW1kZ3B1X3R0bV9k ZWJ1Z2ZzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB7Cj4gICAjaWYgZGVm aW5lZChDT05GSUdfREVCVUdfRlMpCj4gLQl1bnNpZ25lZCBjb3VudDsKPiAtCj4gICAJc3RydWN0 IGRybV9taW5vciAqbWlub3IgPSBhZGV2X3RvX2RybShhZGV2KS0+cHJpbWFyeTsKPiAtCXVtb2Rl X3QgbW9kZSA9IFNfSUZSRUcgfCBTX0lSVUdPOwo+ICAgCXN0cnVjdCBkZW50cnkgKnJvb3QgPSBt aW5vci0+ZGVidWdmc19yb290Owo+ICAgCj4gLQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlX3NpemUoImFt ZGdwdV92cmFtIiwgbW9kZSwgcm9vdCwgYWRldiwKPiArCWRlYnVnZnNfY3JlYXRlX2ZpbGVfc2l6 ZSgiYW1kZ3B1X3ZyYW0iLCAwNDQ0LCByb290LCBhZGV2LAo+ICAgCQkJCSAmYW1kZ3B1X3R0bV92 cmFtX2ZvcHMsIGFkZXYtPmdtYy5tY192cmFtX3NpemUpOwo+IC0JZGVidWdmc19jcmVhdGVfZmls ZSgiYW1kZ3B1X2lvbWVtIiwgbW9kZSwgcm9vdCwgYWRldiwKPiArCWRlYnVnZnNfY3JlYXRlX2Zp bGUoImFtZGdwdV9pb21lbSIsIDA0NDQsIHJvb3QsIGFkZXYsCj4gICAJCQkgICAgJmFtZGdwdV90 dG1faW9tZW1fZm9wcyk7Cj4gLQljb3VudCA9IEFSUkFZX1NJWkUoYW1kZ3B1X3R0bV9kZWJ1Z2Zz X2xpc3QpOwo+IC0KPiArCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImFtZGdwdV92cmFtX21tIiwgMDQ0 NCwgcm9vdCwgYWRldiwKPiArCQkJICAgICZhbWRncHVfbW1fdnJhbV90YWJsZV9mb3BzKTsKPiAr CWRlYnVnZnNfY3JlYXRlX2ZpbGUoImFtZGdwdV9ndHRfbW0iLCAwNDQ0LCByb290LCBhZGV2LAo+ ICsJCQkgICAgJmFtZGdwdV9tbV90dF90YWJsZV9mb3BzKTsKPiArCWRlYnVnZnNfY3JlYXRlX2Zp bGUoImFtZGdwdV9nZHNfbW0iLCAwNDQ0LCByb290LCBhZGV2LAo+ICsJCQkgICAgJmFtZGdwdV9t bV9nZHNfdGFibGVfZm9wcyk7Cj4gKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJhbWRncHVfZ3dzX21t IiwgMDQ0NCwgcm9vdCwgYWRldiwKPiArCQkJICAgICZhbWRncHVfbW1fZ3dzX3RhYmxlX2ZvcHMp Owo+ICsJZGVidWdmc19jcmVhdGVfZmlsZSgiYW1kZ3B1X29hX21tIiwgMDQ0NCwgcm9vdCwgYWRl diwKPiArCQkJICAgICZhbWRncHVfbW1fb2FfdGFibGVfZm9wcyk7Cj4gKwlkZWJ1Z2ZzX2NyZWF0 ZV9maWxlKCJ0dG1fcGFnZV9wb29sIiwgMDQ0NCwgcm9vdCwgYWRldiwKPiArCQkJICAgICZhbWRn cHVfdHRtX3BhZ2VfZGVidWdmc19mb3BzKTsKPiAgICNpZmRlZiBDT05GSUdfU1dJT1RMQgo+IC0J aWYgKCEoYWRldi0+bmVlZF9zd2lvdGxiICYmIHN3aW90bGJfbnJfdGJsKCkpKQo+IC0JCS0tY291 bnQ7Cj4gKwlpZiAoKGFkZXYtPm5lZWRfc3dpb3RsYiAmJiBzd2lvdGxiX25yX3RibCgpKSkKPiAr CQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0dG1fZG1hX3BhZ2VfcG9vbCIsIDA0NDQsIHJvb3QsIGFk ZXYsCj4gKwkJCQkgICAgJmFtZGdwdV90dG1fZG1hX3BhZ2VfZGVidWdmc19mb3BzKTsKPiAgICNl bmRpZgo+IC0KPiAtCXJldHVybiBhbWRncHVfZGVidWdmc19hZGRfZmlsZXMoYWRldiwgYW1kZ3B1 X3R0bV9kZWJ1Z2ZzX2xpc3QsIGNvdW50KTsKPiAtI2Vsc2UKPiAtCXJldHVybiAwOwo+ICAgI2Vu ZGlmCj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV90dG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+IGluZGV4 IDRkZjRjZjJmZDRkZC4uNjliYThkZDRmM2VlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV90dG0uaAo+IEBAIC0xODYsNiArMTg2LDYgQEAgdWludDY0X3QgYW1kZ3B1X3R0 bV90dF9wZGVfZmxhZ3Moc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpt ZW0pOwo+ICAgdWludDY0X3QgYW1kZ3B1X3R0bV90dF9wdGVfZmxhZ3Moc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwKPiAgIAkJCQkgc3RydWN0IHR0bV9yZXNv dXJjZSAqbWVtKTsKPiAgIAo+IC1pbnQgYW1kZ3B1X3R0bV9kZWJ1Z2ZzX2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICt2b2lkIGFtZGdwdV90dG1fZGVidWdmc19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiAgIAo+ICAgI2VuZGlmCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK