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=-13.6 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,NICE_REPLY_A,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 ABE74C4338F for ; Tue, 24 Aug 2021 20:16:32 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6875C6127B for ; Tue, 24 Aug 2021 20:16:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 6875C6127B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=N1g9stGB0NewOlFdrpXYukAlGKzzg4MWsCRMadg+uf8=; b=1u9InNrvDaJALRuyOyqzvoGZHH PMlWoQm+F491vJ7/lurNi4oXg1yBVKLee6qJwUyADCvcfIDXLXokDUNw9hvfXZ0c3pFZdZmTJ5LW9 fm+FcZdyEwrnY7z8ZalhHGBEI/rGtnhl46D2VdHk/kRaMJHy0aSDt9ADLBuTel5B/UsRG0CefM4VN UZREXmmSYic+L9DMcEiP3g9UL6hrM3/iRQpjRIsqNY8nJMoTyaO4xc1VkrM0LtV6XtPFLH+bosiQ7 PIKkYF0YRyoiDdbIPpfpAFcxf9G9iaNNr27WLyObG9bZwN0Cf7JlwabT2HkgzE81bsn24FqmLh603 Ure3Q1ig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mIcoI-004dHt-HN; Tue, 24 Aug 2021 20:14:14 +0000 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mIcoE-004dEH-8K for linux-arm-kernel@lists.infradead.org; Tue, 24 Aug 2021 20:14:12 +0000 Received: by mail-wr1-x431.google.com with SMTP id f5so32995281wrm.13 for ; Tue, 24 Aug 2021 13:14:03 -0700 (PDT) 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=wkAZmoc+zV9Oaok23kSwGMmh0db7JSUVeM2+ROd3syg=; b=ikmhZVza7ykOvV0hJTp8LyLD5gB8e2Og3cVaib2EIPoUeSNoaqp0DZJpCrQy+CJmt7 3enmuS/P+d7LfwIfsjKo0RRZ/v8AOx0ZsLI1+mv9AYUaNBl8Kdcu6zvax6KS/PtuO3Dp YlxWbqAoq+6Om1ItswPxMmWzG/ubzTmkFA8LTL9EBfJ7+fBMy9es8n10wAmPOB9sHDM4 tTEQbDVQ1TBV4XzVa8pw0fD3WU+Eg3C/k03flYID0r6jinc2IkiW/GQwGROhftY4eoLS La6Jm84IlItb86uHMGe2BEK+ssLWJ59mnOSIPISXc2HeaVIABB08GueVhT8fhQUfb94o ae/g== 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=wkAZmoc+zV9Oaok23kSwGMmh0db7JSUVeM2+ROd3syg=; b=G8u6dE2+ZvP96sXMHdWXgRUS6jRqQ8NToUHOR04C9w17rsdb23Wrhm3oC6bff0LP4A J2DtwasfwwP/9LLiI8hoGjE/F/jMV194wKClJLLFTvArWTllQ8sRt3NLynAbbWwGBGTk I1fqKMQQ2DLGJTRxgLjohsQ8LfYQYlwBteHObEvtGUdEn4n4TMEY2KyT+UkimxtZT20P 69GDeEBo7Y+hzWxBbU/BRF0t7XwG8WT6UiB4cmx5pATaYvWQSzdgwG/qas3gGnupFHi6 1cznwpR5obOk8syuzLMFDP8pWxOSpW0xLPQSXNyquSfSBdIq02aevLSb15VB7iFnG6Fa 1ryA== X-Gm-Message-State: AOAM5339jqsaraLnltTpj4h0BQ8BJYsrzzoLsqBFiIKXwzNSgYfFfdQg gt7bsVXCfTWJwY5MtYh32gLufxMM+uJR X-Google-Smtp-Source: ABdhPJyVYvyYPiXcnQc3VTSF6kCktfMU8iLC1IK7JKxQNLuRQMGoZgx5mJQyLINb7OdCbzATY5vEOA== X-Received: by 2002:a5d:4605:: with SMTP id t5mr20716776wrq.276.1629836042306; Tue, 24 Aug 2021 13:14:02 -0700 (PDT) Received: from ?IPv6:2a02:810b:f40:4200:65a1:1952:1d23:2e04? ([2a02:810b:f40:4200:65a1:1952:1d23:2e04]) by smtp.gmail.com with ESMTPSA id f20sm3147445wml.38.2021.08.24.13.14.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 24 Aug 2021 13:14:01 -0700 (PDT) Subject: Re: [BUG 5.14] arm64/mm: dma memory mapping fails (in some cases) To: Mike Rapoport , Catalin Marinas Cc: Will Deacon , Andrew Morton , Anshuman Khandual , Linux Kernel Mailing List , linux-mm@kvack.org, Linux ARM , Robin Murphy References: <20210824173741.GC623@arm.com> From: Alex Bee Message-ID: Date: Tue, 24 Aug 2021 22:14:01 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210824_131410_328507_EEE46FA2 X-CRM114-Status: GOOD ( 40.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWlrZSwKCnRoYW5rcyBmb3IgeW91ciByZXBseQoKQW0gMjQuMDguMjEgdW0gMjA6Mjggc2No cmllYiBNaWtlIFJhcG9wb3J0Ogo+IE9uIFR1ZSwgQXVnIDI0LCAyMDIxIGF0IDA2OjM3OjQxUE0g KzAxMDAsIENhdGFsaW4gTWFyaW5hcyB3cm90ZToKPj4gSGkgQWxleCwKPj4KPj4gVGhhbmtzIGZv ciB0aGUgcmVwb3J0Lgo+Pgo+PiBPbiBUdWUsIEF1ZyAyNCwgMjAyMSBhdCAwMzo0MDo0N1BNICsw MjAwLCBBbGV4IEJlZSB3cm90ZToKPj4+IGl0IHNlZW1zIHRoZXJlIGlzIGEgcmVncmVzc2lvbiBp biBhcm02NCBtZW1vcnkgbWFwcGluZyBpbiA1LjE0LCBzaW5jZSBpdAo+Pj4gZmFpbHMgb24gUm9j a2NoaXAgUkszMzI4IHdoZW4gdGhlIHBsMzMwIGRtYWMgdHJpZXMgdG8gbWFwIHdpdGg6Cj4+Pgo+ Pj4gW8KgwqDCoCA4LjkyMTkwOV0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0t Cj4+PiBbwqDCoMKgIDguOTIxOTQwXSBXQVJOSU5HOiBDUFU6IDIgUElEOiAzNzMgYXQga2VybmVs L2RtYS9tYXBwaW5nLmM6MjM1IGRtYV9tYXBfcmVzb3VyY2UrMHg2OC8weGMwCj4+PiBbwqDCoMKg IDguOTIxOTczXSBNb2R1bGVzIGxpbmtlZCBpbjogc3BpX3JvY2tjaGlwKCspIGZ1c2UKPj4+IFvC oMKgwqAgOC45MjE5OTZdIENQVTogMiBQSUQ6IDM3MyBDb21tOiBzeXN0ZW1kLXVkZXZkIE5vdCB0 YWludGVkIDUuMTQuMC1yYzcgIzEKPj4+IFvCoMKgwqAgOC45MjIwMDRdIEhhcmR3YXJlIG5hbWU6 IFBpbmU2NCBSb2NrNjQgKERUKQo+Pj4gW8KgwqDCoCA4LjkyMjAxMV0gcHN0YXRlOiA4MDAwMDAw NSAoTnpjdiBkYWlmIC1QQU4gLVVBTyAtVENPIEJUWVBFPS0tKQo+Pj4gW8KgwqDCoCA4LjkyMjAx OF0gcGMgOiBkbWFfbWFwX3Jlc291cmNlKzB4NjgvMHhjMAo+Pj4gW8KgwqDCoCA4LjkyMjAyNl0g bHIgOiBwbDMzMF9wcmVwX3NsYXZlX2ZpZm8rMHg3OC8weGQwCj4+PiBbwqDCoMKgIDguOTIyMDQw XSBzcCA6IGZmZmY4MDAwMTIxMDJhZTAKPj4+IFvCoMKgwqAgOC45MjIwNDNdIHgyOTogZmZmZjgw MDAxMjEwMmFlMCB4Mjg6IGZmZmYwMDAwMDVjOTQ4MDAgeDI3OiAwMDAwMDAwMDAwMDAwMDAwCj4+ PiBbwqDCoMKgIDguOTIyMDU2XSB4MjY6IGZmZmYwMDAwMDA1NjZiZDAgeDI1OiAwMDAwMDAwMDAw MDAwMDAxIHgyNDogMDAwMDAwMDAwMDAwMDAwMQo+Pj4gW8KgwqDCoCA4LjkyMjA2N10geDIzOiAw MDAwMDAwMDAwMDAwMDAyIHgyMjogZmZmZjAwMDAwMDYyOGMwMCB4MjE6IDAwMDAwMDAwMDAwMDAw MDEKPj4+IFvCoMKgwqAgOC45MjIwNzhdIHgyMDogZmZmZjAwMDAwMDU2NmJkMCB4MTk6IDAwMDAw MDAwMDAwMDAwMDEgeDE4OiAwMDAwMDAwMDAwMDAwMDAwCj4+PiBbwqDCoMKgIDguOTIyMDg5XSB4 MTc6IDAwMDAwMDAwMDAwMDAwMDAgeDE2OiAwMDAwMDAwMDAwMDAwMDAwIHgxNTogMDAwMDAwMDAw MDAwMDAwMAo+Pj4gW8KgwqDCoCA4LjkyMjEwMF0geDE0OiAwMDAwMDAwMDAwMDAwMjc3IHgxMzog MDAwMDAwMDAwMDAwMDAwMSB4MTI6IDAwMDAwMDAwMDAwMDAwMDAKPj4+IFvCoMKgwqAgOC45MjIx MTFdIHgxMTogMDAwMDAwMDAwMDAwMDAwMSB4MTA6IDAwMDAwMDAwMDAwMDA4ZTAgeDkgOiBmZmZm ODAwMDEyMTAyYTgwCj4+PiBbwqDCoMKgIDguOTIyMTIzXSB4OCA6IGZmZmYwMDAwMDBkMTRiODAg eDcgOiBmZmZmMDAwMGZlN2IxMmYwIHg2IDogZmZmZjAwMDBmZTdiMTEwMAo+Pj4gW8KgwqDCoCA4 LjkyMjEzNF0geDUgOiBmZmZmZmMwMDAwMDAwMDBmIHg0IDogMDAwMDAwMDAwMDAwMDAwMCB4MyA6 IDAwMDAwMDAwMDAwMDAwMDEKPj4+IFvCoMKgwqAgOC45MjIxNDVdIHgyIDogMDAwMDAwMDAwMDAw MDAwMSB4MSA6IDAwMDAwMDAwZmYxOTA4MDAgeDAgOiBmZmZmMDAwMDAwNjI4YzAwCj4+PiBbwqDC oMKgIDguOTIyMTU4XSBDYWxsIHRyYWNlOgo+Pj4gW8KgwqDCoCA4LjkyMjE2M13CoCBkbWFfbWFw X3Jlc291cmNlKzB4NjgvMHhjMAo+Pj4gW8KgwqDCoCA4LjkyMjE3M13CoCBwbDMzMF9wcmVwX3Ns YXZlX3NnKzB4NTgvMHgyMjAKPj4+IFvCoMKgwqAgOC45MjIxODFdwqAgcm9ja2NoaXBfc3BpX3By ZXBhcmVfZG1hKzB4ZDgvMHgyYzAgW3NwaV9yb2NrY2hpcF0KPj4+IFvCoMKgwqAgOC45MjIyMDhd wqAgcm9ja2NoaXBfc3BpX3RyYW5zZmVyX29uZSsweDI5NC8weDNkOCBbc3BpX3JvY2tjaGlwXQo+ PiBbLi4uXQo+Pj4gTm90ZTogVGhpcyBkb2VzIG5vdCByZWxhdGUgdG8gdGhlIHNwaSBkcml2ZXIg LSB3aGVuIGRpc2FibGluZyB0aGlzIGRldmljZSBpbgo+Pj4gdGhlIGRldmljZSB0cmVlIGl0IGZh aWxzIGZvciBhbnkgb3RoZXIgKGkycywgZm9yIGluc3RhbmNlKSB3aGljaCB1c2VzIGRtYS4KPj4+ IENvbW1lbnRpbmcgb3V0IHRoZSBmYWlsaW5nIGNoZWNrIGF0IFsxXSwgaG93ZXZlciwgaGVscHMg YW5kIHRoZSBtYXBwaW5nCj4+PiB3b3JrcyBhZ2Fpbi4KPj4gRG8geW91IGtub3cgd2hpY2ggYWRk cmVzcyBkbWFfbWFwX3Jlc291cmNlKCkgaXMgdHJ5aW5nIHRvIG1hcCAobWF5YmUKPj4gYWRkIHNv bWUgcHJpbnRrKCkpPyBJdCdzIG5vdCBzdXBwb3NlZCB0byBtYXAgUkFNLCBoZW5jZSB0aGUgd2Fy bmluZy4KPj4gUmFuZG9tIGd1ZXNzLCB0aGUgYWRkcmVzcyBpcyAweGZmMTkwODAwIChiYXNlZCBv biB0aGUgeDEgYWJvdmUgYnV0IHRoZQo+PiByZWdzIG1pZ2h0IGFzIHdlbGwgYmUgbWFuZ2xlZCku Cj4gMHhmZjE5MDgwMCB3aWxsIGNhdXNlIHRoaXMgd2FybmluZyBmb3Igc3VyZS4gSXQgaGFzIGEg bWVtb3J5IG1hcCwgYnV0IGl0IGlzCj4gbm90IFJBTSBzbyBvbGQgdmVyc2lvbiBvZiBwZm5fdmFs aWQoKSB3b3VsZCByZXR1cm4gMCBhbmQgdGhlIG5ldyBvbmUKPiByZXR1cm5zIDEuCj4gICAKPj4+ IEkgdHJpZWQgdG8gZm9sbG93IHRoZSByZWNlbnQgY2hhbmdlcyBmb3IgYXJtNjQgbW0gd2hpY2gg Y291bGQgcmVsYXRlIHRvIHRoZQo+Pj4gY2hlY2sgZmFpbGluZyBhdCBbMV0gYW5kIHJldmVydGlu Zwo+Pj4gIMKgIGNvbW1pdCAxNmM5YWZjNzc2NjAgKCJhcm02NC9tbTogZHJvcCBIQVZFX0FSQ0hf UEZOX1ZBTElEIikKPj4+IGhlbHBzIGFuZCBtYWtlcyBpdCB3b3JrIGFnYWluLCBidXQgSSdtIDEw MCUgdW5jZXJ0YWluIGlmIHRoYXQgY29tbWl0IGlzCj4+PiByZWFsbHkgdGhlIGN1bHByaXQuCj4+ Pgo+Pj4gTm90ZSwgdGhhdCB0aGUgZmlybXdhcmUgKGxlZ2FjeSB1LWJvb3QpIGluamVjdHMgbWVt b3J5IGNvbmZpZ3VyYXRpb24gaW4gdGhlCj4+PiBkZXZpY2UgdHJlZSBhcyBmb2xsb3dzOgo+Pj4K Pj4+IC9tZW1yZXNlcnZlL8KgwqDCoCAweDAwMDAwMDAwZmNlZmMwMDAgMHgwMDAwMDAwMDAwMDBk MDAwOwo+Pj4gLyB7Cj4+PiAuLgo+Pj4gIMKgwqDCoCBjb21wYXRpYmxlID0gInBpbmU2NCxyb2Nr NjRcMHJvY2tjaGlwLHJrMzMyOCI7Cj4+PiAuLgo+Pj4gIMKgwqDCoCBtZW1vcnkgewo+Pj4gIMKg wqDCoCDCoMKgwqAgcmVnID0gPDB4MDAgMHgyMDAwMDAgMHgwMCAweGZlZTAwMDAwIDB4MDAgMHgw MCAweDAwIDB4MDA+Owo+Pj4gIMKgwqDCoCDCoMKgwqAgZGV2aWNlX3R5cGUgPSAibWVtb3J5IjsK Pj4+ICDCoMKgwqAgfTsKPj4+Cj4+PiAuLgo+Pj4gfQo+PiBFaXRoZXIgcGZuX3ZhbGlkKCkgZ2V0 cyBjb25mdXNlZCBpbiA1LjE0IG9yIHNvbWV0aGluZyBpcyB3cm9uZyB3aXRoIHRoZQo+PiBEVC4g SSBoYXZlIGEgc3VzcGljaW9uIGl0J3MgdGhlIGZvcm1lciBzaW5jZSByZXZlcnRpbmcgdGhlIGFi b3ZlIGNvbW1pdAo+PiBtYWtlcyBpdCBkaXNhcHBlYXIuCj4gSSB0aGluayBwZm5fdmFsaWQoKSBh Y3R1YWxseSBiZWhhdmVzIGFzIGV4cGVjdGVkIGJ1dCB0aGUgY2FsbGVyIGlzIHdyb25nCj4gYmVj YXVzZSBwZm5fdmFsaWQgIT0gUkFNICh0aGlzIGFwcGxpZXMgYnR3IHRvICFhcm02NCBhcyB3ZWxs KS4KPgo+IAkvKiBEb24ndCBhbGxvdyBSQU0gdG8gYmUgbWFwcGVkICovCj4gCWlmIChXQVJOX09O X09OQ0UocGZuX3ZhbGlkKFBIWVNfUEZOKHBoeXNfYWRkcikpKSkKPiAJCXJldHVybiBETUFfTUFQ UElOR19FUlJPUjsKPgo+IEFsZXgsIGNhbiB5b3UgcGxlYXNlIHRyeSB0aGlzIHBhdGNoOgo+Cj4g ZGlmZiAtLWdpdCBhL2tlcm5lbC9kbWEvbWFwcGluZy5jIGIva2VybmVsL2RtYS9tYXBwaW5nLmMK PiBpbmRleCAyYjA2YTgwOWQwYjkuLjQ3MTVlOTY0MWEyOSAxMDA2NDQKPiAtLS0gYS9rZXJuZWwv ZG1hL21hcHBpbmcuYwo+ICsrKyBiL2tlcm5lbC9kbWEvbWFwcGluZy5jCj4gQEAgLTIzMiw3ICsy MzIsNyBAQCBkbWFfYWRkcl90IGRtYV9tYXBfcmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2LCBw aHlzX2FkZHJfdCBwaHlzX2FkZHIsCj4gICAJCXJldHVybiBETUFfTUFQUElOR19FUlJPUjsKPiAg IAo+ICAgCS8qIERvbid0IGFsbG93IFJBTSB0byBiZSBtYXBwZWQgKi8KPiAtCWlmIChXQVJOX09O X09OQ0UocGZuX3ZhbGlkKFBIWVNfUEZOKHBoeXNfYWRkcikpKSkKPiArCWlmIChXQVJOX09OX09O Q0UoIW1lbWJsb2NrX2lzX21lbW9yeShwaHlzX2FkZHIpKSkKPiAgIAkJcmV0dXJuIERNQV9NQVBQ SU5HX0VSUk9SOwo+ICAgCj4gICAJaWYgKGRtYV9tYXBfZGlyZWN0KGRldiwgb3BzKSkKPiAgIAoK Tm9wZSwgZG9lc24ndCBoZWxwOgoKW8KgwqDCoCA4LjM1Mzg3OV0gZG1hX21hcF9yZXNvdXJjZSBG YWlsZWQgdG8gbWFwIGFkZHJlc3MgMHhmZjE5MDgwMApbwqDCoMKgIDguMzUzODg2XSBkbWFfbWFw X3Jlc291cmNlIHBmbl92YWxpZChQSFlTX1BGTigweGZmMTkwODAwKSk6IDEKW8KgwqDCoCA4LjM1 Mzg5Ml0gZG1hX21hcF9yZXNvdXJjZSBtZW1ibG9ja19pc19tZW1vcnkoMHhmZjE5MDgwMCk6IDAK CklmIHVuZGVyc3RhbmQgdGhlIGNvbW1lbnQgZm9yIHRoYXQgY2hlY2sgY29ycmVjdCwgdGhhdCB3 ZSBfZG9uJ3RfIHdhbnQgClJBTSB0byBiZSBtYXBwZWQgLSBzaG91ZG4ndCB0aGF0IGJlOgoKKwlp ZiAoV0FSTl9PTl9PTkNFKG1lbWJsb2NrX2lzX21lbW9yeShwaHlzX2FkZHIpKSkKCj8KCkFsZXgK Cj4+PiBTbzogdGhlcmUgaXMgYSAiaG9sZSIgaW4gdGhlIG1hcHBhYmxlIG1lbW9yeSBhbmQgcmVh ZGluZyB0aGUgY29tbWl0IG1lc3NhZ2UKPj4+IG9mCj4+PiAgwqAgY29tbWl0IGE3ZDlmMzA2YmE3 MCAoImFybTY0OiBkcm9wIHBmbl92YWxpZF93aXRoaW4oKSBhbmQgc2ltcGxpZnkKPj4+IHBmbl92 YWxpZCgpIikKPj4+IHN1Z2dlc3RzLCB0aGVyZSB3YXMgYSBjaGFuZ2UgZm9yIHRoYXQgY2FzZSBy ZWNlbnRseS4KPj4gSSB0aGluayB0aGUgY2hhbmdlIGZyb20gdGhlIGFybTY0IHBmbl92YWxpZCgp IHRvIHRoZSBnZW5lcmljIG9uZSBpcwo+PiBhdm9pZGluZyB0aGUgY2FsbCB0byBtZW1ibG9ja19p c19tZW1vcnkoKS4gSSB3b25kZXIgd2hldGhlciBwZm5fdmFsaWQoKQo+PiByZXR1cm5zIHRydWUg anVzdCBiZWNhdXNlIHdlIGhhdmUgYSBzdHJ1Y3QgcGFnZSBhdmFpbGFibGUgYnV0IHRoZSBtZW1v cnkKPj4gbWF5IGhhdmUgYmVlbiByZXNlcnZlZC4KPj4KPj4gQ2MnaW5nIE1pa2UgUi4KPj4KPj4+ IEkgYWxzbyBub3RpY2VkIHRoZXJlIGlzIGEgZGlmZiBpbiB0aGUga2VybmVsIGxvZyByZWdhcmRp bmcgbWVtb3J5IGluaXQgdXAKPj4+IHVudGlsIDUuMTMuMTIgaXQgc2F5cwo+Pj4KPj4+IFvCoMKg wqAgMC4wMDAwMDBdIFpvbmUgcmFuZ2VzOgo+Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIERNQcKg wqDCoMKgwqAgW21lbSAweDAwMDAwMDAwMDAyMDAwMDAtMHgwMDAwMDAwMGZlZmZmZmZmXQo+Pj4g W8KgwqDCoCAwLjAwMDAwMF3CoMKgIERNQTMywqDCoMKgIGVtcHR5Cj4+PiBbwqDCoMKgIDAuMDAw MDAwXcKgwqAgTm9ybWFswqDCoCBlbXB0eQo+Pj4gW8KgwqDCoCAwLjAwMDAwMF0gTW92YWJsZSB6 b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKPj4+IFvCoMKgwqAgMC4wMDAwMDBdIEVhcmx5IG1lbW9y eSBub2RlIHJhbmdlcwo+Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIG5vZGXCoMKgIDA6IFttZW0g MHgwMDAwMDAwMDAwMjAwMDAwLTB4MDAwMDAwMDBmZWZmZmZmZl0KPj4+IFvCoMKgwqAgMC4wMDAw MDBdIEluaXRtZW0gc2V0dXAgbm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMjAwMDAwLTB4MDAwMDAw MDBmZWZmZmZmZl0KPj4+IFvCoMKgwqAgMC4wMDAwMDBdIE9uIG5vZGUgMCB0b3RhbHBhZ2VzOiAx MDQzOTY4Cj4+PiBbwqDCoMKgIDAuMDAwMDAwXcKgwqAgRE1BIHpvbmU6IDE2MzEyIHBhZ2VzIHVz ZWQgZm9yIG1lbW1hcAo+Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIERNQSB6b25lOiAwIHBhZ2Vz IHJlc2VydmVkCj4+PiBbwqDCoMKgIDAuMDAwMDAwXcKgwqAgRE1BIHpvbmU6IDEwNDM5NjggcGFn ZXMsIExJRk8gYmF0Y2g6NjMKPj4+Cj4+PiBJbiBjb250cmFyeSBpbiA1LjE0LXJjNyBpdCBzYXlz Ogo+Pj4KPj4+IFvCoMKgwqAgMC4wMDAwMDBdIFpvbmUgcmFuZ2VzOgo+Pj4gW8KgwqDCoCAwLjAw MDAwMF3CoMKgIERNQcKgwqDCoMKgwqAgW21lbSAweDAwMDAwMDAwMDAyMDAwMDAtMHgwMDAwMDAw MGZlZmZmZmZmXQo+Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIERNQTMywqDCoMKgIGVtcHR5Cj4+ PiBbwqDCoMKgIDAuMDAwMDAwXcKgwqAgTm9ybWFswqDCoCBlbXB0eQo+Pj4gW8KgwqDCoCAwLjAw MDAwMF0gTW92YWJsZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKPj4+IFvCoMKgwqAgMC4wMDAw MDBdIEVhcmx5IG1lbW9yeSBub2RlIHJhbmdlcwo+Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIG5v ZGXCoMKgIDA6IFttZW0gMHgwMDAwMDAwMDAwMjAwMDAwLTB4MDAwMDAwMDBmZWZmZmZmZl0KPj4+ IFvCoMKgwqAgMC4wMDAwMDBdIEluaXRtZW0gc2V0dXAgbm9kZSAwIFttZW0gMHgwMDAwMDAwMDAw MjAwMDAwLTB4MDAwMDAwMDBmZWZmZmZmZl0KPj4+IFvCoMKgwqAgMC4wMDAwMDBdIE9uIG5vZGUg MCwgem9uZSBETUE6IDUxMiBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMKPj4+IFvCoMKgwqAg MC4wMDAwMDBdIE9uIG5vZGUgMCwgem9uZSBETUE6IDQwOTYgcGFnZXMgaW4gdW5hdmFpbGFibGUg cmFuZ2VzCj4+Pgo+Pj4gKG5vdGUgdGhlICJ1bmF2YWlsYWJsZSByYW5nZXMiKQo+Pj4gSSdtIHVu Y2VydGFpbiBhZ2FpbiBoZXJlLCBpZiB0aGF0IGRpZmYgaXMgZXhwZWN0ZWQgYmVoYXZpb3IgYmVj YXVzZSBvZiB0aG9zZQo+Pj4gcmVjZW50IG1tIGNoYW5nZXMgZm9yIGFybTY0Lgo+Pj4KPj4+IEFm dGVyIHJldmVydGluZwo+Pj4gIMKgIGNvbW1pdCAxNmM5YWZjNzc2NjAgKCJhcm02NC9tbTogZHJv cCBIQVZFX0FSQ0hfUEZOX1ZBTElEIikKPj4+IHRoZSBsb2cgY2hhbmdlcyB0bwo+Pj4KPj4+IFvC oMKgwqAgMC4wMDAwMDBdIFpvbmUgcmFuZ2VzOgo+Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIERN QcKgwqDCoMKgwqAgW21lbSAweDAwMDAwMDAwMDAyMDAwMDAtMHgwMDAwMDAwMGZlZmZmZmZmXQo+ Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIERNQTMywqDCoMKgIGVtcHR5Cj4+PiBbwqDCoMKgIDAu MDAwMDAwXcKgwqAgTm9ybWFswqDCoCBlbXB0eQo+Pj4gW8KgwqDCoCAwLjAwMDAwMF0gTW92YWJs ZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKPj4+IFvCoMKgwqAgMC4wMDAwMDBdIEVhcmx5IG1l bW9yeSBub2RlIHJhbmdlcwo+Pj4gW8KgwqDCoCAwLjAwMDAwMF3CoMKgIG5vZGXCoMKgIDA6IFtt ZW0gMHgwMDAwMDAwMDAwMjAwMDAwLTB4MDAwMDAwMDBmZWZmZmZmZl0KPj4+IFvCoMKgwqAgMC4w MDAwMDBdIEluaXRtZW0gc2V0dXAgbm9kZSAwIFttZW0KPj4+IDB4MDAwMDAwMDAwMDIwMDAwMC0w eDAwMDAwMDAwZmVmZmZmZmZdCj4+Pgo+Pj4gKG5vIERNQSB6b25lcyBoZXJlKQo+Pj4KPj4+IEFz IHlvdSBtaWdodCBoYXZlIG5vdGljZWQgSSBoYXZlIF96ZXJvXyBjbHVlIGFib3V0IG1lbW9yeSBt YXBwaW5nIGFuZCBkbWEKPj4+IHN1YnN5c3RlbSAtIHNvIGxldCBtZSBrbm93IGlmIHRoZXJlIGlz IGFueSBtb3JlIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgdGhhdAo+Pj4gYW5kIHRoYW5rcyBmb3Ig eW91ciBoZWxwLgo+PiBBZGRpbmcgUm9iaW4gYXMgd2VsbCwgaGUgaGFzIGEgYmV0dGVyIGNsdWUg dGhhbiB1cyBvbiBETUEgOykuCj4+Cj4+PiBBbGV4Cj4+Pgo+Pj4gWzFdIGh0dHBzOi8vZ2l0Lmtl cm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90cmVl L2tlcm5lbC9kbWEvbWFwcGluZy5jP2lkPWUyMmNlOGViNjMxYmRjNDdhNGE0ZWE3ZWNmNGU0YmE0 OTlkYjRmOTMjbjIzNQo+PiAtLSAKPj4gQ2F0YWxpbgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=