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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 D8B8AC4345F for ; Sat, 27 Apr 2024 10:19:35 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s0f8s-0002J5-5v; Sat, 27 Apr 2024 06:18:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s0f8q-0002Iw-Dl for grub-devel@gnu.org; Sat, 27 Apr 2024 06:18:48 -0400 Received: from mail-yw1-x112f.google.com ([2607:f8b0:4864:20::112f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s0f8o-0005uW-Cg for grub-devel@gnu.org; Sat, 27 Apr 2024 06:18:48 -0400 Received: by mail-yw1-x112f.google.com with SMTP id 00721157ae682-617d25b2bc4so32314657b3.2 for ; Sat, 27 Apr 2024 03:18:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficientek-com.20230601.gappssmtp.com; s=20230601; t=1714213123; x=1714817923; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=m/SlyFBYtwPkp34TFz2JE7CUD3mLKC0M7GEtRpuMxZQ=; b=QAqm3LmXodtzJhSj81X8sRgIJ5srtggPYX47p8J6wxIxT1y9I4KsVJp0xDh7sOhgQX gwCwh5CH6kZ6OSKaKW5A2HyoZW2JuMsvCXdlYrs3POgiH7k46lwaSLs/dGi+DkD0iSjg VswhVLmQQkZTk9rskAOYJfpkPIxTQupcess7o6f/Fq1xV3qH9iynkqeO4wsMelOixDqZ Guv1SoW8QG9zSClHYapAmeHViiI+gdPQSBO7xC8wWNC89oZcBYLJ4Kgs7B5M4Wu5hq9w 35ydBHL/wWR2N3cYZbi8QdaNQj7v05IiuYVCMFEVX7y0nBBlOa1pZB2SNE0quATtjZjB BUTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714213123; x=1714817923; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=m/SlyFBYtwPkp34TFz2JE7CUD3mLKC0M7GEtRpuMxZQ=; b=fXfgrU2KsbVzUViuiamNOKeztIgbnWPaaQTC0A3sCeEFUu4ny9/g0lHtQ9LW5I+GdO 0lLNlO+4JvtR0SWg8YRn6V3eXqdNg5sA9dqIHeaRkmHex09gpBQtjBuzS3K6sJTdmWDC 5yQmNicxdZrXtrvC4/BkeMROqv6AoqPezMVnl1CUg88MzIHVrpUE3YUb72t9bjidopWT yG/ViImA44hDy2jlpHLsuWX4FM9PPOji5RBxLIMO3CH21uo5pDRukjN1fIAyiitic25A VGFIhknvRRuauYo0MZwWNk3dpl2JMv3Gs20KDvQSp0NKcdc9SXiID7fp9ByD0NtxZHQA mInQ== X-Gm-Message-State: AOJu0YzvZMr1DbNyvkyc2/ISOQXwsA15GOGWHu/CjISSfXtOwFs26oGJ ox5TSWzrGDdB1EOOUkeIsZnLJwh/J3HA68aPBL0aFZvEgi1nXgDE+zQjomXFLe8IPkde3Ki2KVc = X-Google-Smtp-Source: AGHT+IHvHdTv9eNjmd7mwlXsdZNUkOltygApIVGZwdNmnSNuCQxngMyjdMZVxA/5yT7BQrtc8Ldx3A== X-Received: by 2002:a05:690c:7448:b0:618:92bd:9334 with SMTP id ju8-20020a05690c744800b0061892bd9334mr2212108ywb.43.1714213123547; Sat, 27 Apr 2024 03:18:43 -0700 (PDT) Received: from localhost.localdomain ([37.218.244.251]) by smtp.gmail.com with ESMTPSA id i190-20020a0dc6c7000000b00618876dc75fsm4457134ywd.27.2024.04.27.03.18.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Apr 2024 03:18:42 -0700 (PDT) From: Glenn Washburn To: grub-devel@gnu.org, Daniel Kiper Cc: Ard Biesheuvel , "Vladimir 'phcoder' Serbinenko" , Glenn Washburn Subject: [PATCH v3] efi: Fix stack protector issues Date: Sat, 27 Apr 2024 05:18:35 -0500 Message-Id: <20240427101835.532252-1-development@efficientek.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::112f; envelope-from=development@efficientek.com; helo=mail-yw1-x112f.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org RnJvbTogQXJkIEJpZXNoZXV2ZWwgPGFyZGJAa2VybmVsLm9yZz4KClRoZSAnZ3JvdW5kIHRydXRo JyBzdGFjayBwcm90ZWN0b3IgY29va2llIHZhbHVlIGlzIGtlcHQgaW4gYSBnbG9iYWwKdmFyaWFi bGUsIGFuZCBsb2FkZWQgaW4gZXZlcnkgZnVuY3Rpb24gcHJvbG9ndWUgYW5kIGVwaWxvZ3VlIHRv IHN0b3JlCml0IGludG8gcmVzcC4gY29tcGFyZSBpdCB3aXRoIHRoZSBzdGFjayBzbG90IGhvbGRp bmcgdGhlIGNvb2tpZS4KCklmIHRoZSBjb21wYXJpc29uIGZhaWxzLCB0aGUgcHJvZ3JhbSBhYm9y dHMsIGFuZCB0aGlzIG1pZ2h0IG9jY3VyCnNwdXJpb3VzbHkgd2hlbiB0aGUgZ2xvYmFsIHZhcmlh YmxlIGNoYW5nZXMgdmFsdWVzIGJldHdlZW4gdGhlIGVudHJ5IGFuZApleGl0IG9mIGEgZnVuY3Rp b24uIFRoaXMgaW1wbGllcyB0aGF0IGFzc2lnbmluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlIGF0CmJv b3Qgc2hvdWxkIG5vdCBpbnZvbHZlIGFueSBpbnN0cnVtZW50ZWQgZnVuY3Rpb24gY2FsbHMsIHVu bGVzcyBzcGVjaWFsCmNhcmUgaXMgdGFrZW4gdG8gZW5zdXJlIHRoYXQgdGhlIGxpdmUgY2FsbCBz dGFjayBpcyBzeW5jaHJvbml6ZWQsIHdoaWNoCmlzIG5vbi10cml2aWFsLgoKU28gYXZvaWQgYW55 IGZ1bmN0aW9uIGNhbGxzLCBpbmNsdWRpbmcgZ3J1Yl9tZW1jcHkoKSwgd2hpY2ggaXMKdW5uZWNl c3NhcnkgZ2l2ZW4gdGhhdCB0aGUgc3RhY2sgY29va2llIGlzIGFsd2F5cyBhIHN1aXRhYmx5IGFs aWduZWQKdmFyaWFibGUgb2YgdGhlIG5hdGl2ZSB3b3JkIHNpemUuCgpXaGlsZSBhdCBpdCwgbGVh dmUgdGhlIGxhc3QgYnl0ZSAweDAgdG8gYXZvaWQgaW5hZHZlcnRlbnQgdW5ib3VuZGVkCnN0cmlu Z3Mgb24gdGhlIHN0YWNrLgoKTm90ZSB0aGF0IHRoZSB1c2Ugb2YgX19hdHRyaWJ1dGVfXygob3B0 aW1pemUpKSBpcyBkZXNjcmliZWQgYXMKdW5zdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UgaW4g dGhlIEdDQyBkb2N1bWVudGF0aW9uLCBzbyBsZXQncyBkcm9wCnRoaXMgYXMgd2VsbCBub3cgdGhh dCBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgoKU2lnbmVkLW9mZi1ieTogQXJkIEJpZXNoZXV2ZWwg PGFyZGJAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEdsZW5uIFdhc2hidXJuIDxkZXZlbG9wbWVu dEBlZmZpY2llbnRlay5jb20+ClNpZ25lZC1vZmYtYnk6IEdsZW5uIFdhc2hidXJuIDxkZXZlbG9w bWVudEBlZmZpY2llbnRlay5jb20+Ci0tLQpTaW5jZSBBcmQgaGFzbid0IGJlZW4gaGVhcmQgZnJv bSBpbiBvdmVyIDMgbW9udGhzLiBJJ3ZlIHRha2VuIHRoZSBsaWJlcnR5CnRvIGFkZCBtb3JlIHJl YXNvbmluZyB0byBhZGQgY29tbWVudCBhcyByZXF1ZXN0ZWQgYnkgVmxhZGltaXIuIEkgaG9wZSB0 aGlzCndpbGwgZ2V0IHRoZSBiYWxsIHJvbGxpbmcgb24gZ2V0dGluZyB0aGlzIHBhdGNoIGluY2x1 ZGVkLgoKR2xlbm4KClJhbmdlLWRpZmYgYWdhaW5zdCB2MjoKMTogIGFkZmE2ZDYxMGIzNCAhIDE6 ICA5ZGJjMzU4NDgzMjMgZWZpOiBGaXggc3RhY2sgcHJvdGVjdG9yIGlzc3VlcwogICAgQEAgQ29t bWl0IG1lc3NhZ2UKICAgICAgICAgdW5zdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UgaW4gdGhl IEdDQyBkb2N1bWVudGF0aW9uLCBzbyBsZXQncyBkcm9wCiAgICAgICAgIHRoaXMgYXMgd2VsbCBu b3cgdGhhdCBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgogICAgIAogICAgLSAgICBDYzogR2xlbm4g V2FzaGJ1cm4gPGRldmVsb3BtZW50QGVmZmljaWVudGVrLmNvbT4KICAgIC0gICAgQ2M6IERhbmll bCBLaXBlciA8ZGtpcGVyQG5ldC1zcGFjZS5wbD4KICAgICAgICAgU2lnbmVkLW9mZi1ieTogQXJk IEJpZXNoZXV2ZWwgPGFyZGJAa2VybmVsLm9yZz4KICAgICsgICAgUmV2aWV3ZWQtYnk6IEdsZW5u IFdhc2hidXJuIDxkZXZlbG9wbWVudEBlZmZpY2llbnRlay5jb20+CiAgICAgCiAgICAgICMjIGdy dWItY29yZS9rZXJuL2VmaS9pbml0LmMgIyMKICAgICBAQCBncnViLWNvcmUva2Vybi9lZmkvaW5p dC5jOiBzdGF0aWMgZ3J1Yl9lZmlfY2hhcjE2X3Qgc3RhY2tfY2hrX2ZhaWxfbXNnW10gPQogICAg QEAgZ3J1Yi1jb3JlL2tlcm4vbWFpbi5jOiByZWNsYWltX21vZHVsZV9zcGFjZSAodm9pZCkKICAg ICAgZ3J1Yl9tYWluICh2b2lkKQogICAgICB7CiAgICAgKyNpZmRlZiBHUlVCX1NUQUNLX1BST1RF Q1RPUgogICAgLSsgIC8qIFRoaXMgY2FsbCBjYW4gb25seSBiZSBtYWRlIGZyb20gYSBmdW5jdGlv biB0aGF0IGRvZXMgbm90IHJldHVybi4gKi8KICAgICsrICAvKgogICAgKysgICAqIFRoaXMgY2Fs bCBzaG91bGQgb25seSBiZSBtYWRlIGZyb20gYSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IHJldHVy biBiZWNhdXNlCiAgICArKyAgICogZnVuY3Rpb25zIHRoYXQgcmV0dXJuIHdpbGwgZ2V0IGluc3Ry dW1lbnRlZCB0byBjaGVjayB0aGF0IHRoZSBzdGFjayBjb29raWUKICAgICsrICAgKiBkb2VzIG5v dCBjaGFuZ2UgYW5kIHRoaXMgY2FsbCB3aWxsIGNoYW5nZSB0aGUgc3RhY2sgY29va2llLiBUaHVz IGEgc3RhY2sKICAgICsrICAgKiBndWFyZCBmYWlsdXJlIHdpbGwgYmUgdHJpZ2dlcmVkLgogICAg KysgICAqLwogICAgICsgIGdydWJfdXBkYXRlX3N0YWNrX2d1YXJkICgpOwogICAgICsjZW5kaWYK ICAgICArCgogZ3J1Yi1jb3JlL2tlcm4vZWZpL2luaXQuYyAgICAgIHwgMjcgKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tCiBncnViLWNvcmUva2Vybi9tYWluLmMgICAgICAgICAgfCAxMCArKysr KysrKysrCiBpbmNsdWRlL2dydWIvc3RhY2tfcHJvdGVjdG9yLmggfCAxMyArKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2dydWItY29yZS9rZXJuL2VmaS9pbml0LmMgYi9ncnViLWNvcmUva2Vybi9lZmkv aW5pdC5jCmluZGV4IDZjNTRhZjZlNzllNS4uMTYzNzA3N2UxZTk2IDEwMDY0NAotLS0gYS9ncnVi LWNvcmUva2Vybi9lZmkvaW5pdC5jCisrKyBiL2dydWItY29yZS9rZXJuL2VmaS9pbml0LmMKQEAg LTM5LDEyICszOSw2IEBAIHN0YXRpYyBncnViX2VmaV9jaGFyMTZfdCBzdGFja19jaGtfZmFpbF9t c2dbXSA9CiAKIHN0YXRpYyBncnViX2d1aWRfdCBybmdfcHJvdG9jb2xfZ3VpZCA9IEdSVUJfRUZJ X1JOR19QUk9UT0NPTF9HVUlEOwogCi0vKgotICogRG9uJ3QgcHV0IHRoaXMgb24gZ3J1Yl9lZmlf aW5pdCgpJ3MgbG9jYWwgc3RhY2sgdG8gYXZvaWQgaXQKLSAqIGdldHRpbmcgYSBzdGFjayBjaGVj ay4KLSAqLwotc3RhdGljIGdydWJfZWZpX3VpbnQ4X3Qgc3RhY2tfY2hrX2d1YXJkX2J1ZlszMl07 Ci0KIC8qIEluaXRpYWxpemUgY2FuYXJ5IGluIGNhc2UgdGhlcmUgaXMgbm8gUk5HIHByb3RvY29s LiAqLwogZ3J1Yl9hZGRyX3QgX19zdGFja19jaGtfZ3VhcmQgPSAoZ3J1Yl9hZGRyX3QpIEdSVUJf U1RBQ0tfUFJPVEVDVE9SX0lOSVQ7CiAKQEAgLTc3LDggKzcxLDggQEAgX19zdGFja19jaGtfZmFp bCAodm9pZCkKICAgd2hpbGUgKDEpOwogfQogCi1zdGF0aWMgdm9pZAotc3RhY2tfcHJvdGVjdG9y X2luaXQgKHZvaWQpCitncnViX2FkZHJfdAorZ3J1Yl9zdGFja19wcm90ZWN0b3JfaW5pdCAodm9p ZCkKIHsKICAgZ3J1Yl9lZmlfcm5nX3Byb3RvY29sX3QgKnJuZzsKIApAQCAtODcsMjMgKzgxLDIw IEBAIHN0YWNrX3Byb3RlY3Rvcl9pbml0ICh2b2lkKQogICBpZiAocm5nICE9IE5VTEwpCiAgICAg ewogICAgICAgZ3J1Yl9lZmlfc3RhdHVzX3Qgc3RhdHVzOworICAgICAgZ3J1Yl9hZGRyX3QgZ3Vh cmQgPSAwOwogCi0gICAgICBzdGF0dXMgPSBybmctPmdldF9ybmcgKHJuZywgTlVMTCwgc2l6ZW9m IChzdGFja19jaGtfZ3VhcmRfYnVmKSwKLQkJCSAgICAgc3RhY2tfY2hrX2d1YXJkX2J1Zik7Cisg ICAgICBzdGF0dXMgPSBybmctPmdldF9ybmcgKHJuZywgTlVMTCwgc2l6ZW9mIChndWFyZCkgLSAx LAorCQkgICAgICAgICAgICAgKGdydWJfZWZpX3VpbnQ4X3QgKikgJmd1YXJkKTsKICAgICAgIGlm IChzdGF0dXMgPT0gR1JVQl9FRklfU1VDQ0VTUykKLQlncnViX21lbWNweSAoJl9fc3RhY2tfY2hr X2d1YXJkLCBzdGFja19jaGtfZ3VhcmRfYnVmLCBzaXplb2YgKF9fc3RhY2tfY2hrX2d1YXJkKSk7 CisJcmV0dXJuIGd1YXJkOwogICAgIH0KLX0KLSNlbHNlCi1zdGF0aWMgdm9pZAotc3RhY2tfcHJv dGVjdG9yX2luaXQgKHZvaWQpCi17CisgIHJldHVybiAwOwogfQogI2VuZGlmCiAKIGdydWJfYWRk cl90IGdydWJfbW9kYmFzZTsKIAotX19hdHRyaWJ1dGVfXyAoKF9fb3B0aW1pemVfXyAoIi1mbm8t c3RhY2stcHJvdGVjdG9yIikpKSB2b2lkCit2b2lkCiBncnViX2VmaV9pbml0ICh2b2lkKQogewog ICBncnViX21vZGJhc2UgPSBncnViX2VmaV9zZWN0aW9uX2FkZHIgKCJtb2RzIik7CkBAIC0xMTEs OCArMTAyLDYgQEAgZ3J1Yl9lZmlfaW5pdCAodm9pZCkKICAgICAgbWVzc2FnZXMuICAqLwogICBn cnViX2NvbnNvbGVfaW5pdCAoKTsKIAotICBzdGFja19wcm90ZWN0b3JfaW5pdCAoKTsKLQogICAv KiBJbml0aWFsaXplIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBzeXN0ZW0uICAqLwogICBncnViX2Vm aV9tbV9pbml0ICgpOwogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUva2Vybi9tYWluLmMgYi9ncnVi LWNvcmUva2Vybi9tYWluLmMKaW5kZXggNzMxYzA3YzI5MDFhLi41NDc4MzE2NDAwY2UgMTAwNjQ0 Ci0tLSBhL2dydWItY29yZS9rZXJuL21haW4uYworKysgYi9ncnViLWNvcmUva2Vybi9tYWluLmMK QEAgLTI2NSw2ICsyNjUsMTYgQEAgcmVjbGFpbV9tb2R1bGVfc3BhY2UgKHZvaWQpCiB2b2lkIF9f YXR0cmlidXRlX18gKChub3JldHVybikpCiBncnViX21haW4gKHZvaWQpCiB7CisjaWZkZWYgR1JV Ql9TVEFDS19QUk9URUNUT1IKKyAgLyoKKyAgICogVGhpcyBjYWxsIHNob3VsZCBvbmx5IGJlIG1h ZGUgZnJvbSBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgcmV0dXJuIGJlY2F1c2UKKyAgICogZnVu Y3Rpb25zIHRoYXQgcmV0dXJuIHdpbGwgZ2V0IGluc3RydW1lbnRlZCB0byBjaGVjayB0aGF0IHRo ZSBzdGFjayBjb29raWUKKyAgICogZG9lcyBub3QgY2hhbmdlIGFuZCB0aGlzIGNhbGwgd2lsbCBj aGFuZ2UgdGhlIHN0YWNrIGNvb2tpZS4gVGh1cyBhIHN0YWNrCisgICAqIGd1YXJkIGZhaWx1cmUg d2lsbCBiZSB0cmlnZ2VyZWQuCisgICAqLworICBncnViX3VwZGF0ZV9zdGFja19ndWFyZCAoKTsK KyNlbmRpZgorCiAgIC8qIEZpcnN0IG9mIGFsbCwgaW5pdGlhbGl6ZSB0aGUgbWFjaGluZS4gICov CiAgIGdydWJfbWFjaGluZV9pbml0ICgpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvc3Rh Y2tfcHJvdGVjdG9yLmggYi9pbmNsdWRlL2dydWIvc3RhY2tfcHJvdGVjdG9yLmgKaW5kZXggYzg4 ZGMwMGI1Zjk3Li45MjEyYmI0YTZmOWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ3J1Yi9zdGFja19w cm90ZWN0b3IuaAorKysgYi9pbmNsdWRlL2dydWIvc3RhY2tfcHJvdGVjdG9yLmgKQEAgLTI1LDYg KzI1LDE5IEBACiAjaWZkZWYgR1JVQl9TVEFDS19QUk9URUNUT1IKIGV4dGVybiBncnViX2FkZHJf dCBFWFBPUlRfVkFSIChfX3N0YWNrX2Noa19ndWFyZCk7CiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0 ZV9fICgobm9yZXR1cm4pKSBFWFBPUlRfRlVOQyAoX19zdGFja19jaGtfZmFpbCkgKHZvaWQpOwor CitncnViX2FkZHJfdAorZ3J1Yl9zdGFja19wcm90ZWN0b3JfaW5pdCAodm9pZCk7CisKK3N0YXRp YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQordm9pZCBncnViX3Vw ZGF0ZV9zdGFja19ndWFyZCAodm9pZCkKK3sKKyAgZ3J1Yl9hZGRyX3QgZ3VhcmQ7CisKKyAgZ3Vh cmQgPSBncnViX3N0YWNrX3Byb3RlY3Rvcl9pbml0ICgpOworICBpZiAoZ3VhcmQpCisgICAgIF9f c3RhY2tfY2hrX2d1YXJkID0gZ3VhcmQ7Cit9CiAjZW5kaWYKIAogI2VuZGlmIC8qIEdSVUJfU1RB Q0tfUFJPVEVDVE9SX0ggKi8KLS0gCjIuMzQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxA Z251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVs Cg==