From: Thomas Garnier Subject: [PATCH v1 15/27] compiler: Option to default to hidden symbols Date: Wed, 11 Oct 2017 13:30:15 -0700 Message-ID: <20171011203027.11248-16-thgarnie@google.com> References: <20171011203027.11248-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-sparse@vger.kernel.org, linux-crypto@vger.kernel.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Arnd Bergmann , Thomas Garnier , Kees Cook , Andrey Ryabinin , Matthias Kaehlcke , Tom Lendacky , Andy Lutomirski , "Kirill A . Shutemov" , Borislav Petkov , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Juergen Gross , Chris Wright , Alok Kataria , Rusty Russell , Tejun Heo In-Reply-To: <20171011203027.11248-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org UHJvdmlkZSBhbiBvcHRpb24gdG8gZGVmYXVsdCB2aXNpYmlsaXR5IHRvIGhpZGRlbiBleGNlcHQg Zm9yIGtleQpzeW1ib2xzLiBUaGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCB3 aWxsIGJlIHVzZWQgYnkgeDg2XzY0ClBJRSBzdXBwb3J0IHRvIHJlbW92ZSBlcnJvcnMgYmV0d2Vl biBjb21waWxhdGlvbiB1bml0cy4KClRoZSBkZWZhdWx0IHZpc2liaWxpdHkgaXMgYWxzbyBlbmFi bGVkIGZvciBleHRlcm5hbCBzeW1ib2xzIHRoYXQgYXJlCmNvbXBhcmVkIGFzIHRoZXkgbWF5YmUg ZXF1YWxzIChzdGFydC9lbmQgb2Ygc2VjdGlvbnMpLiBJbiB0aGlzIGNhc2UsCm9sZGVyIHZlcnNp b25zIG9mIEdDQyB3aWxsIHJlbW92ZSB0aGUgY29tcGFyaXNvbiBpZiB0aGUgc3ltYm9scyBhcmUK aGlkZGVuLiBUaGlzIGlzc3VlIGV4aXN0cyBhdCBsZWFzdCBvbiBnY2MgNC45IGFuZCBiZWZvcmUu CgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2FybmllciA8dGhnYXJuaWVAZ29vZ2xlLmNvbT4KLS0t CiBhcmNoL3g4Ni9ib290L2Jvb3QuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC94ODYv aW5jbHVkZS9hc20vc2V0dXAuaCAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9jcHUv bWljcm9jb2RlL2NvcmUuYyB8ICA0ICsrLS0KIGRyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5j ICAgICAgICB8ICA0ICsrLS0KIGluY2x1ZGUvYXNtLWdlbmVyaWMvc2VjdGlvbnMuaCAgICAgICB8 ICA2ICsrKysrKwogaW5jbHVkZS9saW51eC9jb21waWxlci5oICAgICAgICAgICAgIHwgIDggKysr KysrKysKIGluaXQvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKysrKysK IGtlcm5lbC9rYWxsc3ltcy5jICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0t LS0KIGtlcm5lbC90cmFjZS90cmFjZS5oICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIGxpYi9k eW5hbWljX2RlYnVnLmMgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIDEwIGZpbGVzIGNoYW5n ZWQsIDM5IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2Jvb3QvYm9vdC5oIGIvYXJjaC94ODYvYm9vdC9ib290LmgKaW5kZXggZWY1YTljYzY2ZmI4 Li5kNzI2YzM1YmRkOTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvYm9vdC5oCisrKyBiL2Fy Y2gveDg2L2Jvb3QvYm9vdC5oCkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIGlubGluZSBib29s IG1lbWNtcF9ncyhjb25zdCB2b2lkICpzMSwgYWRkcl90IHMyLCBzaXplX3QgbGVuKQogfQogCiAv KiBIZWFwIC0tIGF2YWlsYWJsZSBmb3IgZHluYW1pYyBsaXN0cy4gKi8KLWV4dGVybiBjaGFyIF9l bmRbXTsKK2V4dGVybiBjaGFyIF9lbmRbXSBfX2RlZmF1bHRfdmlzaWJpbGl0eTsKIGV4dGVybiBj aGFyICpIRUFQOwogZXh0ZXJuIGNoYXIgKmhlYXBfZW5kOwogI2RlZmluZSBSRVNFVF9IRUFQKCkg KCh2b2lkICopKCBIRUFQID0gX2VuZCApKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9h c20vc2V0dXAuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NldHVwLmgKaW5kZXggYTY1Y2Y1NDQ2 ODZhLi43ZTBiNTRmNjA1YzYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NldHVw LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc2V0dXAuaApAQCAtNjcsNyArNjcsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgeDg2X2NlNDEwMF9lYXJseV9zZXR1cCh2b2lkKSB7IH0KICAqIFRo aXMgaXMgc2V0IHVwIGJ5IHRoZSBzZXR1cC1yb3V0aW5lIGF0IGJvb3QtdGltZQogICovCiBleHRl cm4gc3RydWN0IGJvb3RfcGFyYW1zIGJvb3RfcGFyYW1zOwotZXh0ZXJuIGNoYXIgX3RleHRbXTsK K2V4dGVybiBjaGFyIF90ZXh0W10gX19kZWZhdWx0X3Zpc2liaWxpdHk7CiAKIHN0YXRpYyBpbmxp bmUgYm9vbCBrYXNscl9lbmFibGVkKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJu ZWwvY3B1L21pY3JvY29kZS9jb3JlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21pY3JvY29kZS9j b3JlLmMKaW5kZXggODZlOGYwYjI1MzdiLi44ZjAyMTc4M2E5MjkgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2tlcm5lbC9jcHUvbWljcm9jb2RlL2NvcmUuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1 L21pY3JvY29kZS9jb3JlLmMKQEAgLTE0NCw4ICsxNDQsOCBAQCBzdGF0aWMgYm9vbCBfX2luaXQg Y2hlY2tfbG9hZGVyX2Rpc2FibGVkX2JzcCh2b2lkKQogCXJldHVybiAqcmVzOwogfQogCi1leHRl cm4gc3RydWN0IGJ1aWx0aW5fZncgX19zdGFydF9idWlsdGluX2Z3W107Ci1leHRlcm4gc3RydWN0 IGJ1aWx0aW5fZncgX19lbmRfYnVpbHRpbl9md1tdOworZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3 IF9fc3RhcnRfYnVpbHRpbl9md1tdIF9fZGVmYXVsdF92aXNpYmlsaXR5OworZXh0ZXJuIHN0cnVj dCBidWlsdGluX2Z3IF9fZW5kX2J1aWx0aW5fZndbXSBfX2RlZmF1bHRfdmlzaWJpbGl0eTsKIAog Ym9vbCBnZXRfYnVpbHRpbl9maXJtd2FyZShzdHJ1Y3QgY3Bpb19kYXRhICpjZCwgY29uc3QgY2hh ciAqbmFtZSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jIGIv ZHJpdmVycy9iYXNlL2Zpcm13YXJlX2NsYXNzLmMKaW5kZXggNGI1N2NmNWJjODFkLi43N2Q0NzI3 ZjY1OTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCisrKyBiL2Ry aXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCkBAIC00NSw4ICs0NSw4IEBAIE1PRFVMRV9MSUNF TlNFKCJHUEwiKTsKIAogI2lmZGVmIENPTkZJR19GV19MT0FERVIKIAotZXh0ZXJuIHN0cnVjdCBi dWlsdGluX2Z3IF9fc3RhcnRfYnVpbHRpbl9md1tdOwotZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3 IF9fZW5kX2J1aWx0aW5fZndbXTsKK2V4dGVybiBzdHJ1Y3QgYnVpbHRpbl9mdyBfX3N0YXJ0X2J1 aWx0aW5fZndbXSBfX2RlZmF1bHRfdmlzaWJpbGl0eTsKK2V4dGVybiBzdHJ1Y3QgYnVpbHRpbl9m dyBfX2VuZF9idWlsdGluX2Z3W10gX19kZWZhdWx0X3Zpc2liaWxpdHk7CiAKIHN0YXRpYyBib29s IGZ3X2dldF9idWlsdGluX2Zpcm13YXJlKHN0cnVjdCBmaXJtd2FyZSAqZncsIGNvbnN0IGNoYXIg Km5hbWUsCiAJCQkJICAgIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9pbmNs dWRlL2FzbS1nZW5lcmljL3NlY3Rpb25zLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL3NlY3Rpb25z LmgKaW5kZXggZTVkYTQ0ZWRkZDJmLi4xYWE1ZDZkYWM5ZTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv YXNtLWdlbmVyaWMvc2VjdGlvbnMuaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL3NlY3Rpb25z LmgKQEAgLTMwLDYgKzMwLDkgQEAKICAqCV9faXJxZW50cnlfdGV4dF9zdGFydCwgX19pcnFlbnRy eV90ZXh0X2VuZAogICoJX19zb2Z0aXJxZW50cnlfdGV4dF9zdGFydCwgX19zb2Z0aXJxZW50cnlf dGV4dF9lbmQKICAqLworI2lmZGVmIENPTkZJR19ERUZBVUxUX0hJRERFTgorI3ByYWdtYSBHQ0Mg dmlzaWJpbGl0eSBwdXNoKGRlZmF1bHQpCisjZW5kaWYKIGV4dGVybiBjaGFyIF90ZXh0W10sIF9z dGV4dFtdLCBfZXRleHRbXTsKIGV4dGVybiBjaGFyIF9kYXRhW10sIF9zZGF0YVtdLCBfZWRhdGFb XTsKIGV4dGVybiBjaGFyIF9fYnNzX3N0YXJ0W10sIF9fYnNzX3N0b3BbXTsKQEAgLTQ2LDYgKzQ5 LDkgQEAgZXh0ZXJuIGNoYXIgX19zb2Z0aXJxZW50cnlfdGV4dF9zdGFydFtdLCBfX3NvZnRpcnFl bnRyeV90ZXh0X2VuZFtdOwogCiAvKiBTdGFydCBhbmQgZW5kIG9mIC5jdG9ycyBzZWN0aW9uIC0g dXNlZCBmb3IgY29uc3RydWN0b3IgY2FsbHMuICovCiBleHRlcm4gY2hhciBfX2N0b3JzX3N0YXJ0 W10sIF9fY3RvcnNfZW5kW107CisjaWZkZWYgQ09ORklHX0RFRkFVTFRfSElEREVOCisjcHJhZ21h IEdDQyB2aXNpYmlsaXR5IHBvcAorI2VuZGlmCiAKIGV4dGVybiBfX3Zpc2libGUgY29uc3Qgdm9p ZCBfX25vc2F2ZV9iZWdpbiwgX19ub3NhdmVfZW5kOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2NvbXBpbGVyLmggYi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgKaW5kZXggZTk1YTI2MzFl NTQ1Li42OTk3NzE2ZjczYmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaAor KysgYi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgKQEAgLTc4LDYgKzc4LDE0IEBAIGV4dGVybiB2 b2lkIF9fY2hrX2lvX3B0cihjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKik7CiAjaW5jbHVk ZSA8bGludXgvY29tcGlsZXItY2xhbmcuaD4KICNlbmRpZgogCisvKiBVc2VmdWwgZm9yIFBvc2l0 aW9uIEluZGVwZW5kZW50IENvZGUgdG8gcmVkdWNlIGdsb2JhbCByZWZlcmVuY2VzICovCisjaWZk ZWYgQ09ORklHX0RFRkFVTFRfSElEREVOCisjcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2goaGlk ZGVuKQorI2RlZmluZSBfX2RlZmF1bHRfdmlzaWJpbGl0eSAgX19hdHRyaWJ1dGVfXygodmlzaWJp bGl0eSAoImRlZmF1bHQiKSkpCisjZWxzZQorI2RlZmluZSBfX2RlZmF1bHRfdmlzaWJpbGl0eQor I2VuZGlmCisKIC8qCiAgKiBHZW5lcmljIGNvbXBpbGVyLWRlcGVuZGVudCBtYWNyb3MgcmVxdWly ZWQgZm9yIGtlcm5lbAogICogYnVpbGQgZ28gYmVsb3cgdGhpcyBjb21tZW50LiBBY3R1YWwgY29t cGlsZXIvY29tcGlsZXIgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvaW5pdC9LY29uZmlnIGIvaW5pdC9L Y29uZmlnCmluZGV4IGNjYjFkOGRhZjI0MS4uYjY0MDIwMWZjZmY3IDEwMDY0NAotLS0gYS9pbml0 L0tjb25maWcKKysrIGIvaW5pdC9LY29uZmlnCkBAIC0xNjQ5LDYgKzE2NDksMTMgQEAgY29uZmln IFBST0ZJTElORwogY29uZmlnIFRSQUNFUE9JTlRTCiAJYm9vbAogCisjCisjIERlZmF1bHQgdG8g aGlkZGVuIHZpc2liaWxpdHkgZm9yIGFsbCBzeW1ib2xzLgorIyBVc2VmdWwgZm9yIFBvc2l0aW9u IEluZGVwZW5kZW50IENvZGUgdG8gcmVkdWNlIGdsb2JhbCByZWZlcmVuY2VzLgorIworY29uZmln IERFRkFVTFRfSElEREVOCisJYm9vbAorCiBzb3VyY2UgImFyY2gvS2NvbmZpZyIKIAogZW5kbWVu dQkJIyBHZW5lcmFsIHNldHVwCmRpZmYgLS1naXQgYS9rZXJuZWwva2FsbHN5bXMuYyBiL2tlcm5l bC9rYWxsc3ltcy5jCmluZGV4IDEyN2U3Y2ZhZmE1NS4uMjUyMDE5YzhjM2E5IDEwMDY0NAotLS0g YS9rZXJuZWwva2FsbHN5bXMuYworKysgYi9rZXJuZWwva2FsbHN5bXMuYwpAQCAtMzIsMjQgKzMy LDI0IEBACiAgKiBUaGVzZSB3aWxsIGJlIHJlLWxpbmtlZCBhZ2FpbnN0IHRoZWlyIHJlYWwgdmFs dWVzCiAgKiBkdXJpbmcgdGhlIHNlY29uZCBsaW5rIHN0YWdlLgogICovCi1leHRlcm4gY29uc3Qg dW5zaWduZWQgbG9uZyBrYWxsc3ltc19hZGRyZXNzZXNbXSBfX3dlYWs7Ci1leHRlcm4gY29uc3Qg aW50IGthbGxzeW1zX29mZnNldHNbXSBfX3dlYWs7Ci1leHRlcm4gY29uc3QgdTgga2FsbHN5bXNf bmFtZXNbXSBfX3dlYWs7CitleHRlcm4gY29uc3QgdW5zaWduZWQgbG9uZyBrYWxsc3ltc19hZGRy ZXNzZXNbXSBfX3dlYWsgX19kZWZhdWx0X3Zpc2liaWxpdHk7CitleHRlcm4gY29uc3QgaW50IGth bGxzeW1zX29mZnNldHNbXSBfX3dlYWsgX19kZWZhdWx0X3Zpc2liaWxpdHk7CitleHRlcm4gY29u c3QgdTgga2FsbHN5bXNfbmFtZXNbXSBfX3dlYWsgX19kZWZhdWx0X3Zpc2liaWxpdHk7CiAKIC8q CiAgKiBUZWxsIHRoZSBjb21waWxlciB0aGF0IHRoZSBjb3VudCBpc24ndCBpbiB0aGUgc21hbGwg ZGF0YSBzZWN0aW9uIGlmIHRoZSBhcmNoCiAgKiBoYXMgb25lIChlZzogRlJWKS4KICAqLwogZXh0 ZXJuIGNvbnN0IHVuc2lnbmVkIGxvbmcga2FsbHN5bXNfbnVtX3N5bXMKLV9fYXR0cmlidXRlX18o KHdlYWssIHNlY3Rpb24oIi5yb2RhdGEiKSkpOworX19hdHRyaWJ1dGVfXygod2Vhaywgc2VjdGlv bigiLnJvZGF0YSIpKSkgX19kZWZhdWx0X3Zpc2liaWxpdHk7CiAKIGV4dGVybiBjb25zdCB1bnNp Z25lZCBsb25nIGthbGxzeW1zX3JlbGF0aXZlX2Jhc2UKLV9fYXR0cmlidXRlX18oKHdlYWssIHNl Y3Rpb24oIi5yb2RhdGEiKSkpOworX19hdHRyaWJ1dGVfXygod2Vhaywgc2VjdGlvbigiLnJvZGF0 YSIpKSkgX19kZWZhdWx0X3Zpc2liaWxpdHk7CiAKLWV4dGVybiBjb25zdCB1OCBrYWxsc3ltc190 b2tlbl90YWJsZVtdIF9fd2VhazsKLWV4dGVybiBjb25zdCB1MTYga2FsbHN5bXNfdG9rZW5faW5k ZXhbXSBfX3dlYWs7CitleHRlcm4gY29uc3QgdTgga2FsbHN5bXNfdG9rZW5fdGFibGVbXSBfX3dl YWsgX19kZWZhdWx0X3Zpc2liaWxpdHk7CitleHRlcm4gY29uc3QgdTE2IGthbGxzeW1zX3Rva2Vu X2luZGV4W10gX193ZWFrIF9fZGVmYXVsdF92aXNpYmlsaXR5OwogCi1leHRlcm4gY29uc3QgdW5z aWduZWQgbG9uZyBrYWxsc3ltc19tYXJrZXJzW10gX193ZWFrOworZXh0ZXJuIGNvbnN0IHVuc2ln bmVkIGxvbmcga2FsbHN5bXNfbWFya2Vyc1tdIF9fd2VhayBfX2RlZmF1bHRfdmlzaWJpbGl0eTsK IAogc3RhdGljIGlubGluZSBpbnQgaXNfa2VybmVsX2luaXR0ZXh0KHVuc2lnbmVkIGxvbmcgYWRk cikKIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZS5oIGIva2VybmVsL3RyYWNlL3Ry YWNlLmgKaW5kZXggNjUyYzY4MjcwN2NkLi4zMWNiOTIwMDM5YTIgMTAwNjQ0Ci0tLSBhL2tlcm5l bC90cmFjZS90cmFjZS5oCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZS5oCkBAIC0xNzQyLDggKzE3 NDIsOCBAQCBleHRlcm4gaW50IHRyYWNlX2V2ZW50X2VuYWJsZV9kaXNhYmxlKHN0cnVjdCB0cmFj ZV9ldmVudF9maWxlICpmaWxlLAogCQkJCSAgICAgIGludCBlbmFibGUsIGludCBzb2Z0X2Rpc2Fi bGUpOwogZXh0ZXJuIGludCB0cmFjaW5nX2FsbG9jX3NuYXBzaG90KHZvaWQpOwogCi1leHRlcm4g Y29uc3QgY2hhciAqX19zdGFydF9fX3RyYWNlX2JwcmludGtfZm10W107Ci1leHRlcm4gY29uc3Qg Y2hhciAqX19zdG9wX19fdHJhY2VfYnByaW50a19mbXRbXTsKK2V4dGVybiBjb25zdCBjaGFyICpf X3N0YXJ0X19fdHJhY2VfYnByaW50a19mbXRbXSBfX2RlZmF1bHRfdmlzaWJpbGl0eTsKK2V4dGVy biBjb25zdCBjaGFyICpfX3N0b3BfX190cmFjZV9icHJpbnRrX2ZtdFtdIF9fZGVmYXVsdF92aXNp YmlsaXR5OwogCiBleHRlcm4gY29uc3QgY2hhciAqX19zdGFydF9fX3RyYWNlcG9pbnRfc3RyW107 CiBleHRlcm4gY29uc3QgY2hhciAqX19zdG9wX19fdHJhY2Vwb2ludF9zdHJbXTsKZGlmZiAtLWdp dCBhL2xpYi9keW5hbWljX2RlYnVnLmMgYi9saWIvZHluYW1pY19kZWJ1Zy5jCmluZGV4IGRhNzk2 ZTJkYzRmNS4uMTBlZDIwMTc3MzU0IDEwMDY0NAotLS0gYS9saWIvZHluYW1pY19kZWJ1Zy5jCisr KyBiL2xpYi9keW5hbWljX2RlYnVnLmMKQEAgLTM3LDggKzM3LDggQEAKICNpbmNsdWRlIDxsaW51 eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KIAotZXh0ZXJuIHN0cnVj dCBfZGRlYnVnIF9fc3RhcnRfX192ZXJib3NlW107Ci1leHRlcm4gc3RydWN0IF9kZGVidWcgX19z dG9wX19fdmVyYm9zZVtdOworZXh0ZXJuIHN0cnVjdCBfZGRlYnVnIF9fc3RhcnRfX192ZXJib3Nl W10gX19kZWZhdWx0X3Zpc2liaWxpdHk7CitleHRlcm4gc3RydWN0IF9kZGVidWcgX19zdG9wX19f dmVyYm9zZVtdIF9fZGVmYXVsdF92aXNpYmlsaXR5OwogCiBzdHJ1Y3QgZGRlYnVnX3RhYmxlIHsK IAlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Ci0tIAoyLjE1LjAucmMwLjI3MS5nMzZiNjY5ZWRjYy1n b29nCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==