From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 19C1ACCA476 for ; Fri, 10 Oct 2025 06:12:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=rVPa5FuffxPESybbgnhzJgFLBEg6YxbkHOrKH03kaR0=; b=uzVNnBFRnk/5rW Jf38qtE6nOvjgIWP6Lzi+Vj9C2DGxLhtghuBciQoFuxcfz+w7STfYmMwaLBsNz96lyuhyv9GBVd/z IcnH05qH/aYZVaQM9UKpQOoJGSAddvfvq/I40TFA9mxUayT6lwfW0rG9N4Hdjw7yZOIHL3d6ts+L7 M6Yv7IEI+PnWSpmCQL76oc1KoZ/suwhpjhR4LrV/9rVudLgMsLkInXMYJFUVy4YdxqV/sX1awjJT/ O3lsbCx2GoPPlw9ht2/lJLHPeHBhKIAMliF38CUUOog7J+HeX6QadRLRijdeV9mxgC+oGHhw4GcPs 3ldQk7iUM3dNYTm8kjtQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v76N5-00000007kYt-2vqy; Fri, 10 Oct 2025 06:12:55 +0000 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v76N0-00000007kYW-1UZ9 for linux-mtd@lists.infradead.org; Fri, 10 Oct 2025 06:12:53 +0000 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-3ee15505cdeso1505433f8f.0 for ; Thu, 09 Oct 2025 23:12:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760076768; x=1760681568; darn=lists.infradead.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=iaBjDzOK6+Hq3OZvI2T/9g3+RsGtKfrTsQeOMUlUy98=; b=Gx2CAgi7PwWxPooJ7uAfvn+2k9uBKDwoMxo9+Lz8u3XRF1B+HMjYOxZ47t8WUD7HGk Ac40WW0cBS2m2cHufrycrGzRZ9lVpf8UAUJfMKe5lSomeJ+l2rkpzzbiUlCTznW+WbKJ XSFbhufrCScRAU2IHok9HZq76GZ4yiEE0QFhwdkWuIsFSTYvf0t8h08Y3A5PY77Byrgf yklfvDIJ1rNJgxDPCBI86SjGYrcVTXJ1s7xVBuhd/5jeXwy/tam2L3jcWMb+tDnZDNm5 Nku97++6GR47+00iBcOT/SOZ1yV2dOMyLKqL6bH5pK20i7TVp1hfaIDkNKXEK/v+12qJ h/3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760076768; x=1760681568; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iaBjDzOK6+Hq3OZvI2T/9g3+RsGtKfrTsQeOMUlUy98=; b=PwDkWZTqiEruGMggDWB+MlJXpckVCZn/NU/+m81eSoCU187A1p9u7BrBWGkupOpPcP QXrpDWpRY1yCUJLNggTA5XrYo3cWRLf1yB4tT4Y4KtGmxyaltStnAkKiSqWZcGK866e3 Bjw+GHTbolFcasL+XNCn5gmaiVpZwZnYU3VugxMItAK3HKqRJV5tWJ0GcGPmh9MHjw/a F+RP3ABQcg2ImCBU97jgm8Om5P/WVXFRKsa5oR7xvKaeB6RzZ7rcCKMuZAhw6L++5YRN k8J37ubAMlLPp2h7oySLT/f5SEJ7tpYoaZPFXTc4pQ6AzqfEkDMJk47wSohB9hSp23Lh QYYg== X-Forwarded-Encrypted: i=1; AJvYcCUeWfwuFaB2kxOMmdQfFyNusQyHaIHeKA4TG9bzgjK4IrP3Tb+QDrgd+ilioDOpMWD3jNiofQB/jAY=@lists.infradead.org X-Gm-Message-State: AOJu0Yy9w6xTmX3Q+ZgIRAMArJymNGd7ug8Udu7R2UN+fL4zpgw+aXLb VYpMCFIvWC3PFClkMmgYTA/ukTGVDV7Umw6q3rIUx5EHNyMaP375Q5ePuwanvDxwYSw= X-Gm-Gg: ASbGnctj7xYC47ZS5SN7XE47sLOymHB79U0youGlksQNdnafvHFm3rygB+v/gxBjReC mQXO5WFJZwvMlC4KLcb8nccBlRyIWL/EPpQytMaIZtHXT3yneEExpphU7/fVCz3Xb6XTlu12pz9 Ic23QeQmCs0LQwkloafuZgf1RCLOuVg8PH7Mly9n6OjmlYbZHwqdvnVivSjup29HBybdeM3QWYz nSff2/pfeXDqB9nOINGFyolEfYGcGdTqeOWaRnoiIgGgB5PkSx8EC5SNLJ3wt4Ee5YlSjPPAn1e NSdGQeqU2UWDmb7mB2wWi7hNw9yk5fCX3TGKcSl/rdjP4EYT2NMyQgMTntaR5AyOBqwUrUD3PUE YTNdWBwwbCPlTSKnvJenRC2GDdR8KMir+1Eor9rjc1mCe9hYA4XK1Vw== X-Google-Smtp-Source: AGHT+IErbgRPouCLJ3ihzzGsKtJPDYqWKv6AN5tCiCcmCCZs0elKZ7cnKADTbeL0YwMoAYuiw2HXbA== X-Received: by 2002:a05:6000:2504:b0:3ee:11d1:2a1e with SMTP id ffacd0b85a97d-425829b0d45mr10657041f8f.10.1760076767977; Thu, 09 Oct 2025 23:12:47 -0700 (PDT) Received: from [10.11.12.107] ([79.115.63.145]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ce5e0e70sm2435395f8f.40.2025.10.09.23.12.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Oct 2025 23:12:47 -0700 (PDT) Message-ID: Date: Fri, 10 Oct 2025 07:12:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mtd: spi-nor: spansion: Add SMPT fixup for S25FS512S To: Takahiro Kuwano , Marek Vasut , linux-mtd@lists.infradead.org, Takahiro Kuwano Cc: Geert Uytterhoeven , Michael Walle , Miquel Raynal , Pratyush Yadav , Richard Weinberger , Vignesh Raghavendra , linux-renesas-soc@vger.kernel.org References: <20240914220859.128540-1-marek.vasut+renesas@mailbox.org> <0e0f1195-fd08-4d8b-a247-3c94b5628081@linaro.org> <30512807-e10b-4414-8cb7-85b1a21ef9fc@gmail.com> Content-Language: en-US From: Tudor Ambarus In-Reply-To: <30512807-e10b-4414-8cb7-85b1a21ef9fc@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251009_231250_644569_AD1E570D X-CRM114-Status: GOOD ( 37.53 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org CgpPbiAxMC8xMC8yNSA3OjAxIEFNLCBUYWthaGlybyBLdXdhbm8gd3JvdGU6Cj4gSGksCgpIaSEK ClRoYW5rcyBmb3IgY2hpbWluZyBpbiwgVGFrYWhpcm8hCgo+IAo+IE9uIDEwLzgvMjAyNSAzOjIw IFBNLCBUdWRvciBBbWJhcnVzIHdyb3RlOgo+Pgo+Pgo+PiBPbiA5LzMvMjUgMjo0MCBBTSwgTWFy ZWsgVmFzdXQgd3JvdGU6Cj4+PiBPbiA5LzIzLzI0IDEwOjU0IEFNLCBUdWRvciBBbWJhcnVzIHdy b3RlOgo+Pj4KPj4+IEhlbGxvIFR1ZG9yLAo+Pgo+PiBIaSwgTWFyZWssCj4+Cj4+Pgo+Pj4gc29y cnkgZm9yIHRoZSBsYXRlIHJlcGx5Lgo+Pgo+PiBUaGF0J3Mgb2theS4KPj4KPj4+Cj4+Pj4gT24g OS8xNC8yNCAxMTowOCBQTSwgTWFyZWsgVmFzdXQgd3JvdGU6Cj4+Pj4+IFRoZSBTMjVGUzUxMlMg Y2hpcCBkYXRhc2hlZXQgcmV2Lk8gVGFibGUgNzEgb24gcGFnZSAxNTMgSkVERUMgU2VjdG9yIE1h cAo+Pj4+PiBQYXJhbWV0ZXIgRHdvcmQtNiBDb25maWcuIERldGVjdC0zIGRvZXMgdXNlIENSM05W IGJpdCAxIHRvIGRpc2Nlcm4gNjRraUIKPj4+Pj4gYW5kIDI1NmtpQiB1bmlmb3JtIHNlY3RvcnMg ZGV2aWNlIGNvbmZpZ3VyYXRpb24sIGhvd2V2ZXIgYWNjb3JkaW5nIHRvCj4+Pj4+IHNlY3Rpb24g Ny41LjUuMSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDMgTm9uLXZvbGF0aWxlIChDUjNOVikgcGFn ZSA2MSwKPj4+Pj4gdGhlIENSM05WIGJpdCAxIGlzIFJGVSBSZXNlcnZlZCBmb3IgRnV0dXJlIFVz ZSwgYW5kIGlzIHNldCB0byAwIG9uIG5ld2x5Cj4+Pj4+IG1hbnVmYWN0dXJlZCBkZXZpY2VzLCB3 aGljaCBtZWFucyA2NGtpQiBzZWN0b3JzLiBTaW5jZSB0aGUgZGV2aWNlIGRvZXMgbm90Cj4+Pj4+ IHN1cHBvcnQgNjRraUIgdW5pZm9ybSBzZWN0b3JzIGluIGFueSBjb25maWd1cmF0aW9uLCBwYXJz aW5nIFNNUFQgdGFibGUKPj4+Pj4gY2Fubm90IGZpbmQgYSB2YWxpZCBzZWN0b3IgbWFwIGVudHJ5 IGFuZCBmYWlscy4KPj4+Pj4KPj4+Pj4gRml4IHRoaXMgdXAgYnkgc2V0dGluZyBTTVBUIGNvbmZp Z3VyYXRpb24gaW5kZXggYml0IDAsIHdoaWNoIGlzIHBvcHVsYXRlZAo+Pj4+PiBleGFjdGx5IGJ5 IHRoZSBDUjNOViBiaXQgMSBiZWluZyAxLiBUaGlzIGlzIGltcGxlbWVudGVkIHZpYSBuZXcgLnBv c3Rfc21wdAo+Pj4+PiBmaXh1cCBob29rIGFuZCBhIHdyYXBwZXIgZnVuY3Rpb24uIFRoZSBvbmx5 IGltcGxlbWVudGF0aW9uIG9mIHRoZSBob29rIGlzCj4+Pj4+IGN1cnJlbnRseSBzcGVjaWZpYyB0 byBTMjVGUzUxMlMuCj4+Pj4+Cj4+Pj4+IFRoaXMgZml4ZXMgdGhlIGZvbGxvd2luZyBmYWlsdXJl IG9uIFMyNUZTNTEyUzoKPj4+Pj4gc3BpLW5vciBzcGkwLjA6IEZhaWxlZCB0byBwYXJzZSBvcHRp b25hbCBwYXJhbWV0ZXIgdGFibGU6IGZmODEgKGVycj0tMjIpCj4+Pj4+Cj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IE1hcmVrIFZhc3V0IDxtYXJlay52YXN1dCtyZW5lc2FzQG1haWxib3gub3JnPgo+Pj4+ PiAtLS0KPj4+Pj4gQ2M6IEdlZXJ0IFV5dHRlcmhvZXZlbiA8Z2VlcnQrcmVuZXNhc0BnbGlkZXIu YmU+Cj4+Pj4+IENjOiBNaWNoYWVsIFdhbGxlIDxtd2FsbGVAa2VybmVsLm9yZz4KPj4+Pj4gQ2M6 IE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+Cj4+Pj4+IENjOiBQcmF0 eXVzaCBZYWRhdiA8cHJhdHl1c2hAa2VybmVsLm9yZz4KPj4+Pj4gQ2M6IFJpY2hhcmQgV2VpbmJl cmdlciA8cmljaGFyZEBub2QuYXQ+Cj4+Pj4+IENjOiBUdWRvciBBbWJhcnVzIDx0dWRvci5hbWJh cnVzQGxpbmFyby5vcmc+Cj4+Pj4+IENjOiBWaWduZXNoIFJhZ2hhdmVuZHJhIDx2aWduZXNockB0 aS5jb20+Cj4+Pj4+IENjOiBsaW51eC1tdGRAbGlzdHMuaW5mcmFkZWFkLm9yZwo+Pj4+PiBDYzog bGludXgtcmVuZXNhcy1zb2NAdmdlci5rZXJuZWwub3JnCj4+Pj4+IC0tLQo+Pj4+PiDCoCBkcml2 ZXJzL210ZC9zcGktbm9yL2NvcmUuY8KgwqDCoMKgIHwgMTcgKysrKysrKysrKysrKysrKysKPj4+ Pj4gwqAgZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmjCoMKgwqDCoCB8wqAgNSArKysrKwo+Pj4+ PiDCoCBkcml2ZXJzL210ZC9zcGktbm9yL3NmZHAuY8KgwqDCoMKgIHzCoCA0ICsrKysKPj4+Pj4g wqAgZHJpdmVycy9tdGQvc3BpLW5vci9zcGFuc2lvbi5jIHwgMjcgKysrKysrKysrKysrKysrKysr KysrKysrKystCj4+Pj4+IMKgIDQgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9j b3JlLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL2NvcmUuYwo+Pj4+PiBpbmRleCA5ZDZlODViZjIy N2IuLmNhNjVmMzZlNTYzOCAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9tdGQvc3BpLW5vci9j b3JlLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmMKPj4+Pj4gQEAgLTI0 MDUsNiArMjQwNSwyMyBAQCBpbnQgc3BpX25vcl9wb3N0X2JmcHRfZml4dXBzKHN0cnVjdCBzcGlf bm9yICpub3IsCj4+Pj4+IMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4+IMKgIH0KPj4+Pj4gwqAg K2ludCBzcGlfbm9yX3Bvc3Rfc21wdF9maXh1cHMoc3RydWN0IHNwaV9ub3IgKm5vciwgdTggKnNt cHQpCj4+Pj4+ICt7Cj4+Pj4+ICvCoMKgwqAgaW50IHJldDsKPj4+Pj4gKwo+Pj4+PiArwqDCoMKg IGlmIChub3ItPm1hbnVmYWN0dXJlciAmJiBub3ItPm1hbnVmYWN0dXJlci0+Zml4dXBzICYmCj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoCBub3ItPm1hbnVmYWN0dXJlci0+Zml4dXBzLT5wb3N0X3NtcHQp IHsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldCA9IG5vci0+bWFudWZhY3R1cmVyLT5maXh1cHMt PnBvc3Rfc21wdChub3IsIHNtcHQpOwo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHJldCkKPj4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+Pj4gK8KgwqDCoCB9Cj4+ Pj4+ICsKPj4+Pj4gK8KgwqDCoCBpZiAobm9yLT5pbmZvLT5maXh1cHMgJiYgbm9yLT5pbmZvLT5m aXh1cHMtPnBvc3Rfc21wdCkKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBub3ItPmluZm8t PmZpeHVwcy0+cG9zdF9zbXB0KG5vciwgc21wdCk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCByZXR1 cm4gMDsKPj4+Pj4gK30KPj4+Pj4gKwo+Pj4+PiDCoCBzdGF0aWMgaW50IHNwaV9ub3Jfc2VsZWN0 X3JlYWQoc3RydWN0IHNwaV9ub3IgKm5vciwKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB1MzIgc2hhcmVkX2h3Y2FwcykKPj4+Pj4gwqAgewo+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmggYi9kcml2ZXJzL210ZC9zcGktbm9y L2NvcmUuaAo+Pj4+PiBpbmRleCAxNTE2YjZkMGRjMzcuLmQ1Mjk0NDI0YWI5ZCAxMDA2NDQKPj4+ Pj4gLS0tIGEvZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmgKPj4+Pj4gKysrIGIvZHJpdmVycy9t dGQvc3BpLW5vci9jb3JlLmgKPj4+Pj4gQEAgLTQxMyw2ICs0MTMsOCBAQCBzdHJ1Y3Qgc3BpX25v cl9mbGFzaF9wYXJhbWV0ZXIgewo+Pj4+PiDCoMKgICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cGFyYW1ldGVycyB0aGF0IGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQgYnkgb3RoZXIgbWVhbnMgKGku ZS4KPj4+Pj4gwqDCoCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdoZW4gaW5mb3JtYXRpb24g cHJvdmlkZWQgYnkgdGhlIFNGRFAvZmxhc2hfaW5mbyB0YWJsZXMgYXJlCj4+Pj4+IMKgwqAgKsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbmNvbXBsZXRlIG9yIHdyb25nKS4KPj4+Pj4gKyAqIEBw b3N0X3NtcHQ6IHVwZGF0ZSBzZWN0b3IgbWFwIGNvbmZpZ3VyYXRpb24gSUQgc2VsZWN0b3IgYWNj b3JkaW5nIHRvCj4+Pj4+ICsgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjaGlwLXNwZWNpZmlj IHF1aXJrcy4KPj4+Pj4gwqDCoCAqIEBsYXRlX2luaXQ6IHVzZWQgdG8gaW5pdGlhbGl6ZSBmbGFz aCBwYXJhbWV0ZXJzIHRoYXQgYXJlIG5vdCBkZWNsYXJlZCBpbiB0aGUKPj4+Pj4gwqDCoCAqwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIEpFU0QyMTYgU0ZEUCBzdGFuZGFyZCwgb3Igd2hlcmUgU0ZE UCB0YWJsZXMgbm90IGRlZmluZWQgYXQgYWxsLgo+Pj4+PiDCoMKgICrCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgV2lsbCByZXBsYWNlIHRoZSBkZWZhdWx0X2luaXQoKSBob29rLgo+Pj4+PiBAQCAt NDI2LDYgKzQyOCw3IEBAIHN0cnVjdCBzcGlfbm9yX2ZpeHVwcyB7Cj4+Pj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IHNmZHBfcGFyYW1ldGVyX2hlYWRlciAqYmZw dF9oZWFkZXIsCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0 IHNmZHBfYmZwdCAqYmZwdCk7Cj4+Pj4+IMKgwqDCoMKgwqAgaW50ICgqcG9zdF9zZmRwKShzdHJ1 Y3Qgc3BpX25vciAqbm9yKTsKPj4+Pj4gK8KgwqDCoCBpbnQgKCpwb3N0X3NtcHQpKHN0cnVjdCBz cGlfbm9yICpub3IsIHU4ICpzbXB0KTsKPj4+Pj4gwqDCoMKgwqDCoCBpbnQgKCpsYXRlX2luaXQp KHN0cnVjdCBzcGlfbm9yICpub3IpOwo+Pj4+PiDCoCB9Owo+Pj4+PiDCoCBAQCAtNjYwLDYgKzY2 Myw4IEBAIGludCBzcGlfbm9yX3Bvc3RfYmZwdF9maXh1cHMoc3RydWN0IHNwaV9ub3IgKm5vciwK Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCBz ZmRwX3BhcmFtZXRlcl9oZWFkZXIgKmJmcHRfaGVhZGVyLAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IHNmZHBfYmZwdCAqYmZwdCk7Cj4+Pj4+ IMKgICtpbnQgc3BpX25vcl9wb3N0X3NtcHRfZml4dXBzKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4 ICpzdG1wKTsKPj4+Pj4gKwo+Pj4+PiDCoCB2b2lkIHNwaV9ub3JfaW5pdF9kZWZhdWx0X2xvY2tp bmdfb3BzKHN0cnVjdCBzcGlfbm9yICpub3IpOwo+Pj4+PiDCoCB2b2lkIHNwaV9ub3JfdHJ5X3Vu bG9ja19hbGwoc3RydWN0IHNwaV9ub3IgKm5vcik7Cj4+Pj4+IMKgIHZvaWQgc3BpX25vcl9zZXRf bXRkX2xvY2tpbmdfb3BzKHN0cnVjdCBzcGlfbm9yICpub3IpOwo+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tdGQvc3BpLW5vci9zZmRwLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL3NmZHAuYwo+ Pj4+PiBpbmRleCA1YjExMTcyNjViZDIuLjU0MmM3NzU5MThhZCAxMDA2NDQKPj4+Pj4gLS0tIGEv ZHJpdmVycy9tdGQvc3BpLW5vci9zZmRwLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5v ci9zZmRwLmMKPj4+Pj4gQEAgLTc2NSw2ICs3NjUsMTAgQEAgc3RhdGljIGNvbnN0IHUzMiAqc3Bp X25vcl9nZXRfbWFwX2luX3VzZShzdHJ1Y3Qgc3BpX25vciAqbm9yLCBjb25zdCB1MzIgKnNtcHQs Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBtYXBfaWQgPSBtYXBfaWQgPDwgMSB8ICEhKCpidWYg JiByZWFkX2RhdGFfbWFzayk7Cj4+Pj4+IMKgwqDCoMKgwqAgfQo+Pj4+PiDCoCArwqDCoMKgIGVy ciA9IHNwaV9ub3JfcG9zdF9zbXB0X2ZpeHVwcyhub3IsICZtYXBfaWQpOwo+Pj4+PiArwqDCoMKg IGlmIChlcnIpCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gRVJSX1BUUihlcnIpOwo+Pj4+ PiArCj4+Pj4+IMKgwqDCoMKgwqAgLyoKPj4+Pj4gwqDCoMKgwqDCoMKgICogSWYgY29tbWFuZCBk ZXNjcmlwdG9ycyBhcmUgcHJvdmlkZWQsIHRoZXkgYWx3YXlzIHByZWNlZGUgbWFwCj4+Pj4+IMKg wqDCoMKgwqDCoCAqIGRlc2NyaXB0b3JzIGluIHRoZSB0YWJsZS4gVGhlcmUgaXMgbm8gbmVlZCB0 byBzdGFydCB0aGUgaXRlcmF0aW9uCj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9zcGkt bm9yL3NwYW5zaW9uLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL3NwYW5zaW9uLmMKPj4+Pj4gaW5k ZXggZDZjOTI1OTVmNmJjLi5kNDQ2ZDEyMzcxZTEgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMv bXRkL3NwaS1ub3Ivc3BhbnNpb24uYwo+Pj4+PiArKysgYi9kcml2ZXJzL210ZC9zcGktbm9yL3Nw YW5zaW9uLmMKPj4+Pj4gQEAgLTc1Nyw2ICs3NTcsMzEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBz cGlfbm9yX2ZpeHVwcyBzMjVmc19zX25vcl9maXh1cHMgPSB7Cj4+Pj4+IMKgwqDCoMKgwqAgLnBv c3RfYmZwdCA9IHMyNWZzX3Nfbm9yX3Bvc3RfYmZwdF9maXh1cHMsCj4+Pj4+IMKgIH07Cj4+Pj4+ IMKgICtzdGF0aWMgaW50IHMyNWZzNTEyc19ub3JfcG9zdF9zbXB0X2ZpeHVwcyhzdHJ1Y3Qgc3Bp X25vciAqbm9yLCB1OCAqc21wdCkKPj4+Pj4gK3sKPj4+Pj4gK8KgwqDCoCAvKgo+Pj4+PiArwqDC oMKgwqAgKiBUaGUgUzI1RlM1MTJTIGNoaXAgZGF0YXNoZWV0IHJldi5PIFRhYmxlIDcxIG9uIHBh Z2UgMTUzCj4+Pj4+ICvCoMKgwqDCoCAqIEpFREVDIFNlY3RvciBNYXAgUGFyYW1ldGVyIER3b3Jk LTYgQ29uZmlnLiBEZXRlY3QtMyBkb2VzCj4+Pj4+ICvCoMKgwqDCoCAqIHVzZSBDUjNOViBiaXQg MSB0byBkaXNjZXJuIDY0a2lCLzI1NmtpQiB1bmlmb3JtIHNlY3RvcnMKPj4+Pj4gK8KgwqDCoMKg ICogZGV2aWNlIGNvbmZpZ3VyYXRpb24sIGhvd2V2ZXIgYWNjb3JkaW5nIHRvIHNlY3Rpb24gNy41 LjUuMQo+Pj4+PiArwqDCoMKgwqAgKiBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDMgTm9uLXZvbGF0 aWxlIChDUjNOVikgcGFnZSA2MSwgdGhlCj4+Pj4+ICvCoMKgwqDCoCAqIENSM05WIGJpdCAxIGlz IFJGVSBSZXNlcnZlZCBmb3IgRnV0dXJlIFVzZSwgYW5kIGlzIHNldCB0bwo+Pj4+PiArwqDCoMKg wqAgKiAwIG9uIG5ld2x5IG1hbnVmYWN0dXJlZCBkZXZpY2VzLCB3aGljaCBtZWFucyA2NGtpQiBz ZWN0b3JzLgo+Pj4+PiArwqDCoMKgwqAgKiBTaW5jZSB0aGUgZGV2aWNlIGRvZXMgbm90IHN1cHBv cnQgNjRraUIgdW5pZm9ybSBzZWN0b3JzIGluCj4+Pj4+ICvCoMKgwqDCoCAqIGFueSBjb25maWd1 cmF0aW9uLCBwYXJzaW5nIFNNUFQgdGFibGUgY2Fubm90IGZpbmQgYSB2YWxpZAo+Pj4+PiArwqDC oMKgwqAgKiBzZWN0b3IgbWFwIGVudHJ5IGFuZCBmYWlscy4gRml4IHRoaXMgdXAgYnkgc2V0dGlu ZyBTTVBUCj4+Pj4+ICvCoMKgwqDCoCAqIGNvbmZpZ3VyYXRpb24gaW5kZXggYml0IDAsIHdoaWNo IGlzIHBvcHVsYXRlZCBleGFjdGx5IGJ5Cj4+Pj4+ICvCoMKgwqDCoCAqIHRoZSBDUjNOViBiaXQg MSBiZWluZyAxLgo+Pj4+PiArwqDCoMKgwqAgKi8KPj4+Pj4gK8KgwqDCoCAqc21wdCB8PSBCSVQo MCk7Cj4+Pj4KPj4+PiBQbGVhc2UgaGVscCBtZSB1bmRlcnN0YW5kIHRoaXMuIE1heWJlIGEgbGlu ayB0byB5b3VyIHJldmlzaW9uIG9mCj4+Pj4gZGF0YXNoZWV0IHdvdWxkIGhlbHAgbWUuCj4+Pgo+ Pj4gaHR0cHM6Ly93d3cuaW5maW5lb24uY29tL2Fzc2V0cy9yb3cvcHVibGljL2RvY3VtZW50cy8x MC80OS9pbmZpbmVvbi1zMjVmczUxMnMtNTEyLW1iLTEtZGF0YXNoZWV0LWVuLnBkZgo+Pj4KPj4+ IFNNUFQgdmFsdWVzOgo+Pj4KPj4+IGk9MCBzbXB0W2ldPTA4ZmY2NWZjCj4+PiBpPTEgc21wdFtp XT0wMDAwMDAwNAo+Pj4gaT0yIHNtcHRbaV09MDRmZjY1ZmMKPj4+IGk9MyBzbXB0W2ldPTAwMDAw MDAyCj4+PiBpPTQgc21wdFtpXT0wMmZmNjVmZAo+Pj4gaT01IHNtcHRbaV09MDAwMDAwMDQKPj4+ IGk9NiBzbXB0W2ldPWZmMDIwMWZlCj4+PiBpPTcgc21wdFtpXT0wMDAwN2ZmMQo+Pj4gaT04IHNt cHRbaV09MDAwMzdmZjQKPj4+IGk9OSBzbXB0W2ldPTAzZmJmZmY0Cj4+PiBpPTEwIHNtcHRbaV09 ZmYwMjAzZmUKPj4+IGk9MTEgc21wdFtpXT0wM2ZiZmZmNAo+Pj4gaT0xMiBzbXB0W2ldPTAwMDM3 ZmY0Cj4+PiBpPTEzIHNtcHRbaV09MDAwMDdmZjEKPj4+IGk9MTQgc21wdFtpXT1mZjAwMDVmZgo+ Pj4gaT0xNSBzbXB0W2ldPTAzZmZmZmY0Cj4+Pgo+Pgo+PiB0aGFua3MhCj4+Cj4+Pj4gSW4gdGhl IGZsYXNoIGRhdGFzaGVldHMgdGhhdCBJIHNlZSwgdGhlcmUgc2hhbGwKPj4+PiBiZSBhICJTZWN0 b3IgTWFwIFBhcmFtZXRlciBUYWJsZSBOb3RlcyIgd2hlcmUgYSAiU2VjdG9yIE1hcCBQYXJhbWV0 ZXIiCj4+Pj4gdGFibGUgaXMgZGVzY3JpYmVkIHNob3dpbmcgYW4gSW5kZXggVmFsdWUgY29uc3Ry dWN0ZWQgYnkgdGhlIENSeE5WW3ldCj4+Pj4gcmV0dXJuIHZhbHVlcy4gVGhhdCBpbmRleCB2YWx1 ZSBpcyB0aGUgbWFwX2lkIGluIHRoZSBjb2RlLgo+Pj4+Cj4+Pj4gQnkgcmVhZGluZyB5b3VyIGRl c2NyaXB0aW9uIEkgdW5kZXJzdGFuZCBDUjNOVlsxXSBoYXMgdmFsdWUgemVybyBhcyBpdAo+Pj4+ IGlzIG1hcmtlZCBhcyBSRlUsIGJ1dCBhdCB0aGUgc2FtZSB0aW1lIHRoYXQgYml0IGlzIGV4cGVj dGVkIGluIFNNUFQgdG8KPj4+PiBhbHdheXMgaGF2ZSB2YWx1ZSAxLiBUaGF0J3Mgd2h5IGRhdGFz aGVldHMgbGlrZSB0aGlzIG9uZSBbMV0gaW4gdGhlaXIKPj4+PiAiVGFibGUgNzAuIFNlY3RvciBN YXAgUGFyYW1ldGVyIiBkbyBub3QgZGVzY3JpYmUgQ1IzTlZbMV0gYXQgYWxsLCBhbmQKPj4+PiBk ZWZpbmUgdGhlIGluZGV4IHZhbHVlIGFzIENSM05WWzNdIDw8IDIgfCBDUjFOVlsyXSA8PCAxIHwg MS4KPj4+Cj4+PiBXaGVyZSBkb2VzIHRoaXMgbGFzdCBwYXJ0ICJkZWZpbmUgdGhlIGluZGV4IHZh bHVlIGFzIENSM05WWzNdIDw8IDIgfCBDUjFOVlsyXSA8PCAxIHwgMSIgY29tZSBmcm9tID8KPj4K Pj4gSW4geW91ciBkYXRhc2hlZXQgZmxhdm9yLCBmcm9tICJUYWJsZSA3MCBTZWN0b3IgbWFwIHBh cmFtZXRlciIsIHBhZ2UgMTUyLAo+PiAiSW5kZXggVmFsdWUiIGNvbHVtbi4gSSBkZWR1Y2VkIHRo ZSBmb3JtdWxhIGJ5IHVzaW5nIHRoZSBDUjNOVlszXSBhbmQKPj4gQ1IxTlZbMl0gdmFsdWVzLiBU aGUgZGF0YXNoZWV0IHNheXM6Cj4+Cj4+ICJXaGVuIG1vcmUgdGhhbiBvbmUgY29uZmlndXJhdGlv biBiaXQgbXVzdCBiZSByZWFkLCBhbGwgdGhlIGJpdHMgYXJlCj4+IGNvbmNhdGVuYXRlZCBpbnRv IGFuIGluZGV4IHZhbHVlIHRoYXQgaXMgdXNlZCB0byBzZWxlY3QgdGhlIGN1cnJlbnQgYWRkcmVz cyBtYXAuIgo+Pgo+PiBhbmQgdGhhdCB0aGUgInRoZSBmb2xsb3dpbmcgTVNiIHRvIExTYiBvcmRl ciB0byBmb3JtIHRoZSBjb25maWd1cmF0aW9uIG1hcAo+PiBpbmRleCB2YWx1ZToKPj4g4oCiIENS M05WWzNdIOKAlCAwID0gSHlicmlkIEFyY2hpdGVjdHVyZSwgMSA9IFVuaWZvcm0gQXJjaGl0ZWN0 dXJlCj4+IOKAoiBDUjFOVlsyXSDigJQgMCA9IDQgS0IgcGFyYW1ldGVyIHNlY3RvcnMgYXQgYm90 dG9tLCAxID0gNCBLQiBzZWN0b3JzIGF0IHRvcAo+PiAiCj4+Cj4gSW4gb2xkIGRhdGFzaGVldCwg VGFibGUgNzAgaGFkIENSM05WWzFdIGNvbHVtbiBhbmQgdGhlIGRlc2NyaXB0aW9uIGFib3V0IGlu ZGV4Cj4gdmFsdWUgaGFkIGFub3RoZXIgYnVsbGV0Ogo+ICAg4oCiIENSM05WWzFdIOKAlCAxID0g MjU2IGtCIHVuaWZvcm0gc2VjdG9yIHNpemUKPiBUaGVzZSB3ZXJlIHJlbW92ZWQgd2hlbiB0aGUg ZGVmYXVsdCBDUk5WM1sxXSB2YWx1ZSB3YXMgY2hhbmdlZCBmcm9tIDEgdG8gMC4KPiBBcyBNYXJl ayBwb2ludGVkIG91dCwgU01QVCBzdGlsbCBpbnZvbHZlcyBDUjNOVlsxXSBleHBlY3RpbmcgdGhl IHZhbHVlIGlzCj4gYWx3YXlzIDEuCj4gCj4+IFRoZSAiSW5kZXggVmFsdWUiIHNoYWxsIGJlIHRo ZSBtYXBfaWQgdGhhdCB5b3UgcGFzc2VkIGluIHRoZSBjb2RlOgo+PiBzcGlfbm9yX3Bvc3Rfc21w dF9maXh1cHMobm9yLCAmbWFwX2lkKTsKPj4KPj4gQ2FuIHlvdSBwbGVhc2UgcHJpbnQgdGhlIG1h cF9pZCB2YWx1ZSB0aGF0IHlvdSBvYnRhaW4gd2l0aG91dCB1cGRhdGluZyBpdD8KPj4gTGV0J3Mg YWxzbyBwcmludCB0aGUgdmFsdWVzIG9mIENSM05WIGFuZCBDUjFOVi4KPj4KPiBJIGRpZCB0aGlz IGluIG15IGVudmlyb25tZW50IGFuZCBmb3VuZCBhbm90aGVyLCBmdW5kYW1lbnRhbCBpc3N1ZSBp biBTTVBUCj4gY29udGVudHMgYW5kIHRoZSB3YXkgdG8gcGFyc2UgaXQuLi4KPiAKPiBUaGUgU01Q VCBkZXNjcmliZXMgQ29uZmlndXJhdGlvbiBkZXRlY3Rpb24gY29tbWFuZCBsYXRlbmN5IGFzICcx MTExYjogdmFyaWFibGUKPiBsYXRlbmN5JyBhbmQgaW4gc3BpX25vcl9zbXB0X3JlYWRfZHVtbXko KSwKPiAKPiAJaWYgKHJlYWRfZHVtbXkgPT0gU01QVF9DTURfUkVBRF9EVU1NWV9JU19WQVJJQUJM RSkKPiAJCXJldHVybiBub3ItPnJlYWRfZHVtbXk7Cj4gCj4gVGhpcyByZXN1bHRzIGluIDAgbGF0 ZW5jeS4KPiBIb3dldmVyLCBpbiBTMjVGUy1TLCByZWdpc3RlciByZWFkIGxhdGVuY3kgaXMgOCBj eWNsZXMgYnkgZGVmYXVsdC4gVGhhdCBtZWFucwoKSWYgeW91IGhhY2sgdGhlIGNvZGUgYW5kIHNl dCA4IGN5Y2xlcyBmb3IgdGhlIHJlYWQgbGF0ZW5jeSwgZG8geW91IGdldCBjb3JyZWN0CnJlc3Vs dHM/CgpDYW4gdGhlIHZhcmlhYmxlIGxhdGVuY3kgYmUgZGV0ZXJtaW5lZCBieSBwYXJzaW5nIFNG RFA/CgpDaGVlcnMsCnRhCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=