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 2E890C433EF for ; Thu, 5 May 2022 15:46:24 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xK/I2Ni0PHuTiNRHc/3Jj2OVO8TOyRLQenQErSd0tts=; b=1deBf0TxVGMC92 IvGrjUy2o0kBQ2bZ1L2hSApaLx2l/pJnTvZVgyTaqcQrr2q8cMo3FkXFdx8vxc6EnM05uMm7BdDMQ XA+eUTetKR5OVLP+nMvIwsqoNbMyZSoeqKqxGJNP90HnAat3uPB35rEwuowcCfYLsnUuMwC3UkLbZ 0N1SuCpBdCcvBv++BDHyxYnHS+/AcO4wDfqgMnKgdSkFdZmr7WcxHnMvxI9wkx4eHwxNuklat0Ah4 tGodaiNYf9vxSbmdzgH5Hnd8IQnHKxqb2r0FrmYI1c2/27vNvLwRxJuJCgXTgAS6Y2MX0hWgB0MDp hYn4gzpSgZhAMdIk4iAA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nmdfC-00GiLd-LE; Thu, 05 May 2022 15:45:10 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nmdf8-00GiIW-J9 for linux-arm-kernel@lists.infradead.org; Thu, 05 May 2022 15:45:08 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B9535106F; Thu, 5 May 2022 08:45:02 -0700 (PDT) Received: from FVFF77S0Q05N.cambridge.arm.com (FVFF77S0Q05N.cambridge.arm.com [10.1.38.147]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9F0413F85F; Thu, 5 May 2022 08:45:00 -0700 (PDT) Date: Thu, 5 May 2022 16:44:57 +0100 From: Mark Rutland To: Sami Tolvanen Cc: linux-kernel@vger.kernel.org, Kees Cook , Josh Poimboeuf , Peter Zijlstra , x86@kernel.org, Catalin Marinas , Will Deacon , Nathan Chancellor , Nick Desaulniers , Joao Moreira , Sedat Dilek , Steven Rostedt , linux-hardening@vger.kernel.org, linux-arm-kernel@lists.infradead.org, llvm@lists.linux.dev Subject: Re: [RFC PATCH 09/21] arm64: Add CFI error handling Message-ID: References: <20220429203644.2868448-1-samitolvanen@google.com> <20220429203644.2868448-10-samitolvanen@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220429203644.2868448-10-samitolvanen@google.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220505_084506_831596_200AFE58 X-CRM114-Status: GOOD ( 33.89 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgU2FtaSwKCk9uIEZyaSwgQXByIDI5LCAyMDIyIGF0IDAxOjM2OjMyUE0gLTA3MDAsIFNhbWkg VG9sdmFuZW4gd3JvdGU6Cj4gV2l0aCAtZnNhbml0aXplPWtjZmksIENGSSBhbHdheXMgdHJhcHMu IEFkZCBhcm02NCBzdXBwb3J0IGZvciBoYW5kbGluZwo+IENGSSBmYWlsdXJlcyBhbmQgZGV0ZXJt aW5pbmcgdGhlIHRhcmdldCBhZGRyZXNzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNhbWkgVG9sdmFu ZW4gPHNhbWl0b2x2YW5lbkBnb29nbGUuY29tPgo+IC0tLQo+ICBhcmNoL2FybTY0L2luY2x1ZGUv YXNtL2Jyay1pbW0uaCB8ICAyICsrCj4gIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vaW5zbi5oICAg IHwgIDEgKwo+ICBhcmNoL2FybTY0L2tlcm5lbC90cmFwcy5jICAgICAgICB8IDU3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9u cygrKQo+IAo+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Jyay1pbW0uaCBi L2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYnJrLWltbS5oCj4gaW5kZXggZWM3NzIwZGJlMmM4Li4z YTUwYjcwYjQ0MDQgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9icmstaW1t LmgKPiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Jyay1pbW0uaAo+IEBAIC0xNiw2ICsx Niw3IEBACj4gICAqIDB4NDAwOiBmb3IgZHluYW1pYyBCUksgaW5zdHJ1Y3Rpb24KPiAgICogMHg0 MDE6IGZvciBjb21waWxlIHRpbWUgQlJLIGluc3RydWN0aW9uCj4gICAqIDB4ODAwOiBrZXJuZWwt bW9kZSBCVUcoKSBhbmQgV0FSTigpIHRyYXBzCj4gKyAqIDB4ODAxOiBDb250cm9sLUZsb3cgSW50 ZWdyaXR5IHRyYXBzCj4gICAqIDB4OXh4OiB0YWctYmFzZWQgS0FTQU4gdHJhcCAoYWxsb3dlZCB2 YWx1ZXMgMHg5MDAgLSAweDlmZikKCkFzIGEgaGlnaC1sZXZlbCB0aGluZywgaXQgd291bGQgYmUg Z29vZCBpZiB3ZSBjb3VsZCBhZ3JlZSBvbiBzb21lIHBhcml0aW9uaW5nCm9mIHRoZSBCUksgaW1t ZWRpYXRlIHNwYWNlIGJldHdlZW4gY29tcGlsZXIgdXNhZ2UgYW5kIGtlcm5lbCB1c2FnZSAob3Ig aGF2ZQpzb21lIHdheSB0byBhc2sgdGhlIGNvbXBpbGVyIHRvIHVzZSBzcGVjaWZpYyB2YWx1ZXMp LCBzbyB0aGF0IHdlIGNhbiBhbGxvY2F0ZQp2YWx1ZXMgd2l0aG91dCBjbGFzaGluZy4KCj4gICAq Lwo+ICAjZGVmaW5lIEtQUk9CRVNfQlJLX0lNTQkJCTB4MDA0Cj4gQEAgLTI1LDYgKzI2LDcgQEAK PiAgI2RlZmluZSBLR0RCX0RZTl9EQkdfQlJLX0lNTQkJMHg0MDAKPiAgI2RlZmluZSBLR0RCX0NP TVBJTEVEX0RCR19CUktfSU1NCTB4NDAxCj4gICNkZWZpbmUgQlVHX0JSS19JTU0JCQkweDgwMAo+ ICsjZGVmaW5lIENGSV9CUktfSU1NCQkJMHg4MDEKPiAgI2RlZmluZSBLQVNBTl9CUktfSU1NCQkJ MHg5MDAKPiAgI2RlZmluZSBLQVNBTl9CUktfTUFTSwkJCTB4MGZmCj4gIAo+IGRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2luc24uaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20v aW5zbi5oCj4gaW5kZXggMWU1NzYwZDU2N2FlLi4xMjIyNWJkZmE3NzYgMTAwNjQ0Cj4gLS0tIGEv YXJjaC9hcm02NC9pbmNsdWRlL2FzbS9pbnNuLmgKPiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUv YXNtL2luc24uaAo+IEBAIC0zMzQsNiArMzM0LDcgQEAgX19BQVJDSDY0X0lOU05fRlVOQ1Moc3Rv cmVfcHJlLAkweDNGRTAwQzAwLCAweDM4MDAwQzAwKQo+ICBfX0FBUkNINjRfSU5TTl9GVU5DUyhs b2FkX3ByZSwJMHgzRkUwMEMwMCwgMHgzODQwMEMwMCkKPiAgX19BQVJDSDY0X0lOU05fRlVOQ1Mo c3RvcmVfcG9zdCwJMHgzRkUwMEMwMCwgMHgzODAwMDQwMCkKPiAgX19BQVJDSDY0X0lOU05fRlVO Q1MobG9hZF9wb3N0LAkweDNGRTAwQzAwLCAweDM4NDAwNDAwKQo+ICtfX0FBUkNINjRfSU5TTl9G VU5DUyhsZHVyLAkweDNGRTAwQzAwLCAweDM4NDAwMDAwKQo+ICBfX0FBUkNINjRfSU5TTl9GVU5D UyhzdHJfcmVnLAkweDNGRTBFQzAwLCAweDM4MjA2ODAwKQo+ICBfX0FBUkNINjRfSU5TTl9GVU5D UyhsZGFkZCwJMHgzRjIwRkMwMCwgMHgzODIwMDAwMCkKPiAgX19BQVJDSDY0X0lOU05fRlVOQ1Mo bGRjbHIsCTB4M0YyMEZDMDAsIDB4MzgyMDEwMDApCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQv a2VybmVsL3RyYXBzLmMgYi9hcmNoL2FybTY0L2tlcm5lbC90cmFwcy5jCj4gaW5kZXggMDUyOWZk NTc1NjdlLi5iNTI0NDExYmE2NjMgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvdHJh cHMuYwo+ICsrKyBiL2FyY2gvYXJtNjQva2VybmVsL3RyYXBzLmMKPiBAQCAtMjYsNiArMjYsNyBA QAo+ICAjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21tX3R5 cGVzLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9rYXNhbi5oPgo+ICsjaW5jbHVkZSA8bGludXgvY2Zp Lmg+Cj4gIAo+ICAjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgo+ICAjaW5jbHVkZSA8YXNtL2J1Zy5o Pgo+IEBAIC05OTAsNiArOTkxLDU1IEBAIHN0YXRpYyBzdHJ1Y3QgYnJlYWtfaG9vayBidWdfYnJl YWtfaG9vayA9IHsKPiAgCS5pbW0gPSBCVUdfQlJLX0lNTSwKPiAgfTsKPiAgCj4gKyNpZmRlZiBD T05GSUdfQ0ZJX0NMQU5HCj4gK3ZvaWQgKmFyY2hfZ2V0X2NmaV90YXJnZXQodW5zaWduZWQgbG9u ZyBhZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiArewo+ICsJLyogVGhlIGV4cGVjdGVkIENG SSBjaGVjayBpbnN0cnVjdGlvbiBzZXF1ZW5jZToKPiArCSAqICAgbGR1csKgIMKgIHdBLCBbeE4s ICMtNF0KPiArCSAqICAgbW92a8KgIMKgIHdCLCAjbm5ubm4KPiArCSAqICAgbW92a8KgIMKgIHdC LCAjbm5ubm4sIGxzbCAjMTYKPiArCSAqICAgY21wIMKgIMKgIHdBLCB3Qgo+ICsJICogICBiLmVx wqAgwqAgLkx0bXAxCj4gKwkgKiAgIGJyayDCoCDCoCAjMHg4MDEJCTsgPC0gYWRkcgo+ICsJICog ICAuTHRtcDE6Cj4gKwkgKgo+ICsJICogVGhlcmVmb3JlLCB0aGUgdGFyZ2V0IGFkZHJlc3MgaXMg aW4gdGhlIHhOIHJlZ2lzdGVyLCB3aGljaCB3ZSBjYW4KPiArCSAqIGRlY29kZSBmcm9tIHRoZSBs ZHVyIGluc3RydWN0aW9uLgo+ICsJICovCj4gKwl1MzIgaW5zbiwgcm47Cj4gKwl2b2lkICpwID0g KHZvaWQgKikoYWRkciAtIDUgKiBBQVJDSDY0X0lOU05fU0laRSk7CgpJdCB3b3VsZCBiZSBhIGJp dCBuaWNlciBpZiB3ZSBjb3VsZCBlbmNvZGUgdGhlIHJlZ2lzdGVyIGluZGV4IGludG8gdGhlIEJS SwppbW1lZGlhdGUsIGkuZS4gYWxsb2NhdGUgYSByYW5nZSBvZiAzMiBpbW1lZGlhdGVzIChvciAz MSBnaXZlbiBCTFIgWFpSIGlzCm5vbnNlbnNpY2FsKSwgYW5kIGhhdmU6CgoJQlJLICNDRklfQlJL X0lNTSArIG4KCi4uLiB3aGVyZSBgbmAgaXMgdGhlIFhuIGluZGV4LgoKVGhhdCB3YXkgdGhlIGtl cm5lbCBkb2Vzbid0IG5lZWQgdG8ga25vdyB0aGUgc3BlY2lmaWMgY29kZSBzZXF1ZW5jZSBhbmQK d291bGRuJ3QgaGF2ZSB0byBkZWNvZGUgdGhlIGluc3RydWN0aW9uIHRvIGZpbmQgdGhlIHJlbGV2 YW50IHJlZ2lzdGVyIC0tIHdlCmNvdWxkIGRldGVybWluZSB0aGF0IGZyb20gdGhlIEVTUiBhbG9u ZS4gVGhhdCB3b3VsZCBhbHNvIGF2b2lkIHR5aW5nIHRoZQpjb21waWxlciBpbnRvIGEgc3BlY2lm aWMgY29kZSBzZXF1ZW5jZSwgYW5kIHdvdWxkIGFsbG93IHRoYXQgdG8gY2hhbmdlLgoKU2luY2Ug dGhlIEJSSyBpbW1lZGlhdGUgaXMgMTYgYml0cywgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgdG8gYWxz byBlbmNvZGUgdGhlCmluZGV4IG9mIHRoZSB3QiByZWdpc3Rlciwgd2hpY2ggd291bGQgYWxsb3cg dGhlIGtlcm5lbCdzIEJSSyBoYW5kbGVyIHRvIHJlY292ZXIKYW5kIGxvZyB0aGUgZXhwZWN0ZWQg dHlwZSB2YWx1ZSBhbmQgdGhlIHRoZSB2YWx1ZSBhdCB0aGUgdGFyZ2V0IG9mIHRoZSBicmFuY2gK KHRoYXQgbGF0dGVyIHdlIGNhbiByZWNvdmVyIGZyb20geE4sIHNvIHdlIGRvbid0IG5lZWQgd0Eg dG8gYmUgZW5jb2RlZCBpbnRvIHRoZQppbW1lZGlhdGUpLgoKV2l0aCB0aGF0LCB0aGUgaGFuZGxl ciBjYW4gYmUgc29tZXRoaW5nIGxpa2U6Cgp8ICNkZWZpbmUgQ0ZJX0JSS19JTU1fVEFSR0VUCUdF Tk1BU0soNCwwKQp8ICNkZWZpbmUgQ0ZJX0JSS19JTU1fVFlQRQlHRU5NQVNLKDksNSkKfCAKfCAj ZGVmaW5lIENGSV9CUktfSU1NX0JBU0UJMHg4MDAwCnwgI2RlZmluZSBDRklfQlJLX0lNTV9NQVNL CShDRklfQlJLX0lNTV9UQVJHRVQgfCBDRklfQlJLX0lNTV9UWVBFKQp8IAp8IHN0YXRpYyBpbnQg Y2ZpX2hhbmRsZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgZXNyKQp8IHsK fCAJaW50IHJlZ190YXJnZXQsIHJlZ190eXBlOwp8IAl1bnNpZ25lZCBsb25nIHRhcmdldCwgdHlw ZTsKfCAKfCAJcmVnX3RhcmdldCA9IEZJRUxEX0dFVChlc3IsIEJSS19DRklfSU1NX1RBUkdFVCk7 CnwgCXRhcmdldCA9IHB0X3JlZ3NfcmVhZChyZWdzLCByZWdfdGFyZ2V0KTsKfCAJCnwgCXJlZ190 eXBlID0gRklFTERfR0VUKGVzciwgQlJLX0NGSV9JTU1fVFlQRSk7CnwgCXR5cGUgPSBwdF9yZWdz X3JlYWQocmVncywgcmVnX3R5cGUpOwp8IAp8IAlyZXBvcnRfY2ZpX2ZhaWx1cmUocmVncywJCS8v IHJlZ3MKfCAJCQkgICByZWdzLT5wYywJCS8vIEJSSyBhZGRyZXNzCnwgCQkJICAgdGFyZ2V0LAkJ Ly8gYnJhbmNoIHRhcmdldAp8IAkJCSAgIHR5cGUpOwkJLy8gZXhwZWN0ZWQgdHlwZQp8IAp8IAkv LyBUT0RPOiBzd2l0Y2ggb3ZlciB0aGUgcmV0dXJuIHZhbHVlIG9mIHJlcG9ydF9jZmlfZmFpbHVy ZSgpCnwgfQp8IAp8IHN0cnVjdCBicmVha19ob29rIGNmaV9icmVha19ob29rID0gewp8IAkuZm4g PSBjZmlfaGFuZGxlciwKfCAJLmltbSA9IENGSV9CUktfSU1NX0JBU0UsCnwgCS5tYXNrID0gQ0ZJ X0JSS19JTU1fTUFTSywKfCB9OwoKLi4uIGRvZXMgdGhlIGNvbXBpbGVyIHNpZGUgb2YgdGhhdCBz b3VuZCBwb3NzaWJsZT8KClRoYW5rcywKTWFyay4KCj4KPiArCj4gKwlpZiAoYWFyY2g2NF9pbnNu X3JlYWQocCwgJmluc24pIHx8ICFhYXJjaDY0X2luc25faXNfbGR1cihpbnNuKSkKPiArCQlyZXR1 cm4gTlVMTDsKPiArCj4gKwlybiA9IGFhcmNoNjRfaW5zbl9kZWNvZGVfcmVnaXN0ZXIoQUFSQ0g2 NF9JTlNOX1JFR1RZUEVfUk4sIGluc24pOwo+ICsJcmV0dXJuICh2b2lkICopcmVncy0+cmVnc1ty bl07Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY2ZpX2hhbmRsZXIoc3RydWN0IHB0X3JlZ3MgKnJl Z3MsIHVuc2lnbmVkIGludCBlc3IpCj4gK3sKPiArCXN3aXRjaCAocmVwb3J0X2NmaShyZWdzLT5w YywgcmVncykpIHsKPiArCWNhc2UgQlVHX1RSQVBfVFlQRV9CVUc6Cj4gKwkJZGllKCJPb3BzIC0g Q0ZJIiwgcmVncywgMCk7Cj4gKwkJYnJlYWs7Cj4gKwo+ICsJY2FzZSBCVUdfVFJBUF9UWVBFX1dB Uk46Cj4gKwkJYnJlYWs7Cj4gKwo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gREJHX0hPT0tfRVJS T1I7Cj4gKwl9Cj4gKwo+ICsJYXJtNjRfc2tpcF9mYXVsdGluZ19pbnN0cnVjdGlvbihyZWdzLCBB QVJDSDY0X0lOU05fU0laRSk7Cj4gKwlyZXR1cm4gREJHX0hPT0tfSEFORExFRDsKPiArfQo+ICsK PiArc3RhdGljIHN0cnVjdCBicmVha19ob29rIGNmaV9icmVha19ob29rID0gewo+ICsJLmZuID0g Y2ZpX2hhbmRsZXIsCj4gKwkuaW1tID0gQ0ZJX0JSS19JTU0sCj4gK307Cj4gKyNlbmRpZiAvKiBD T05GSUdfQ0ZJX0NMQU5HICovCj4gKwo+ICBzdGF0aWMgaW50IHJlc2VydmVkX2ZhdWx0X2hhbmRs ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGludCBlc3IpCj4gIHsKPiAgCXByX2Vy cigiJXMgZ2VuZXJhdGVkIGFuIGludmFsaWQgaW5zdHJ1Y3Rpb24gYXQgJXBTIVxuIiwKPiBAQCAt MTA2Myw2ICsxMTEzLDEwIEBAIGludCBfX2luaXQgZWFybHlfYnJrNjQodW5zaWduZWQgbG9uZyBh ZGRyLCB1bnNpZ25lZCBpbnQgZXNyLAo+ICAKPiAgCWlmICgoY29tbWVudCAmIH5LQVNBTl9CUktf TUFTSykgPT0gS0FTQU5fQlJLX0lNTSkKPiAgCQlyZXR1cm4ga2FzYW5faGFuZGxlcihyZWdzLCBl c3IpICE9IERCR19IT09LX0hBTkRMRUQ7Cj4gKyNlbmRpZgo+ICsjaWZkZWYgQ09ORklHX0NGSV9D TEFORwo+ICsJaWYgKChlc3IgJiBFU1JfRUx4X0JSSzY0X0lTU19DT01NRU5UX01BU0spID09IENG SV9CUktfSU1NKQo+ICsJCXJldHVybiBjZmlfaGFuZGxlcihyZWdzLCBlc3IpICE9IERCR19IT09L X0hBTkRMRUQ7Cj4gICNlbmRpZgo+ICAJcmV0dXJuIGJ1Z19oYW5kbGVyKHJlZ3MsIGVzcikgIT0g REJHX0hPT0tfSEFORExFRDsKPiAgfQo+IEBAIC0xMDcwLDYgKzExMjQsOSBAQCBpbnQgX19pbml0 IGVhcmx5X2JyazY0KHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgaW50IGVzciwKPiAgdm9p ZCBfX2luaXQgdHJhcF9pbml0KHZvaWQpCj4gIHsKPiAgCXJlZ2lzdGVyX2tlcm5lbF9icmVha19o b29rKCZidWdfYnJlYWtfaG9vayk7Cj4gKyNpZmRlZiBDT05GSUdfQ0ZJX0NMQU5HCj4gKwlyZWdp c3Rlcl9rZXJuZWxfYnJlYWtfaG9vaygmY2ZpX2JyZWFrX2hvb2spOwo+ICsjZW5kaWYKPiAgCXJl Z2lzdGVyX2tlcm5lbF9icmVha19ob29rKCZmYXVsdF9icmVha19ob29rKTsKPiAgI2lmZGVmIENP TkZJR19LQVNBTl9TV19UQUdTCj4gIAlyZWdpc3Rlcl9rZXJuZWxfYnJlYWtfaG9vaygma2FzYW5f YnJlYWtfaG9vayk7Cj4gLS0gCj4gMi4zNi4wLjQ2NC5nYjljOGI0NmU5NC1nb29nCj4gCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==