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 0AC2DD6DDDB for ; Fri, 15 Nov 2024 07:36:47 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBqsG-0000NU-VR; Fri, 15 Nov 2024 02:36:13 -0500 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 1tBqsF-0000NB-Dn for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:11 -0500 Received: from mail-lf1-x130.google.com ([2a00:1450:4864:20::130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tBqsD-00005f-7v for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:11 -0500 Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-539e63c8678so1520942e87.0 for ; Thu, 14 Nov 2024 23:36:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731656167; x=1732260967; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=94oJ+NbmpKeRQasYWGw4KOP0EUfZz+HQS75zgcX8mSE=; b=bVjRoGrG8K+CqlUnsp6ZEdtQg/VjjQxRsl6c0Vwqjxfwc7y2WYBhq9YLPs/YNF46TY yrkC6RZ8JVZe1Vp6KkyBWQOivjWg0PnGwBM4KNGJchXu4Oo4Y7PIjexv2YWLxZA03R2k e6Ue6d81NpJxC7FEikOwvOsNEKlbkb+dn0v01IZIXF8AEgzK7KJT9IRmr4aBT+MpKQ8S yvShk+svy5uQHksQhOrXqmgoo/5AlyfR+TfKgykBBGzhD0swIUh45/SUvSrmwYk+mZPi rLOMHaqR5VcqPeHUpn3PeBYZ89je9JyaSJaNg2BnpS3HW1YLnOtQmkeuY0bw3vU/3vGR BFvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731656167; x=1732260967; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=94oJ+NbmpKeRQasYWGw4KOP0EUfZz+HQS75zgcX8mSE=; b=FEpMFIa3iDgLrBgQyazaxKe7OSkYtzyCV9TA1+jZonEjHFQsD9nfq37KvTMfXeS97+ fn54i8dOKZc2dCw5sMyNo+T/BqdiWcuaYHobHGU2Isrq/L4+woLmfntEA2U92zorxdeO AFtZIbkD8GGrNmNNZSav1c6393tFs1ks0QJv+owtsFnvHYXY7I9bpLlg3quvrc4myeQD BWA1RboaL0OgWy+xfT0qKdkcW13ATl64RO11N6vnfWIJ67u55RaIsfUlsG+1L29g+f4E cvu3VhYR6RXMszTvHwN2x4nTIZoq8cAmNJSlOxHQEeATr4hUlazZJ9ASS6bTnSosxPSE ABtw== X-Gm-Message-State: AOJu0Yx0e2MD/BlrMANgLcp1uAvE1U632kypNH3PMFQTc/BHZ960HkKG sSPuuMXK1maGZrgAliCmu63rct6QMZ9xxKAPxjMVP08RXsIFzZHEMDXOUKlOcMlPx9YC4BrV4pk d X-Google-Smtp-Source: AGHT+IFsC/Hzz6x/O1mir9Kc8DLLQYGH7KXF9VsWOf4ZtK1Ae6GnQwttkal/zN40V1appmOIPVB9bg== X-Received: by 2002:a05:6512:2315:b0:539:d0ef:b3f9 with SMTP id 2adb3069b0e04-53dab2b91bfmr519194e87.40.1731656167406; Thu, 14 Nov 2024 23:36:07 -0800 (PST) Received: from localhost (111-240-136-29.dynamic-ip.hinet.net. [111.240.136.29]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-211d0ec7f36sm6964005ad.85.2024.11.14.23.36.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2024 23:36:06 -0800 (PST) To: The development of GNU GRUB Subject: [PATCH v23 14/33] asn1_test: use the grub-specific functions and types Date: Fri, 15 Nov 2024 15:34:42 +0800 Message-ID: <20241115073506.2784-15-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241115073506.2784-1-glin@suse.com> References: <20241115073506.2784-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::130; envelope-from=glin@suse.com; helo=mail-lf1-x130.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-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: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , Hernan Gatta , Daniel Axtens , shkhisti@microsoft.com, jaskaran.khurana@microsoft.com, christopher.co@microsoft.com, daniel.mihai@microsoft.com, jaredz@redhat.com, development@efficientek.com, jejb@linux.ibm.com, mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , Vladimir Serbinenko 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 VGhpcyBjb21taXQgY29udmVydHMgZnVuY3Rpb25zIGFuZCB0eXBlcyB0byB0aGUgZ3J1Yi1zcGVj aWZpYyBvbmVzOgoKTE9OR19NQVggLT4gR1JVQl9MT05HX01BWApJTlRfTUFYIC0+IEdSVUJfSU5U X01BWApVSU5UX01BWCAtPiBHUlVCX1VJTlRfTUFYCnNpemVfdCAtPiBncnViX3NpemVfdAptZW1j bXAoKSAtPiBncnViX21lbWNtcCgpCm1lbWNweSgpIC0+IGdydWJfbWVtY3B5KCkKZnJlZSgpIC0+ IGdydWJfZnJlZSgpCnN0cmNtcCgpIC0+IGdydWJfc3RyY21wKCkKClNpZ25lZC1vZmYtYnk6IERh bmllbCBBeHRlbnMgPGRqYUBheHRlbnMubmV0PgpTaWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xp bkBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNs ZS5jb20+Ci0tLQogLi4uaGUtZ3J1Yi1zcGVjaWZpYy1mdW5jdGlvbnMtYW5kLXR5cGVzLnBhdGNo IHwgMjYzICsrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI2MyBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1wYXRjaGVzLzAw MTItYXNuMV90ZXN0LXVzZS10aGUtZ3J1Yi1zcGVjaWZpYy1mdW5jdGlvbnMtYW5kLXR5cGVzLnBh dGNoCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1wYXRjaGVzLzAwMTItYXNu MV90ZXN0LXVzZS10aGUtZ3J1Yi1zcGVjaWZpYy1mdW5jdGlvbnMtYW5kLXR5cGVzLnBhdGNoIGIv Z3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1wYXRjaGVzLzAwMTItYXNuMV90ZXN0LXVzZS10aGUtZ3J1 Yi1zcGVjaWZpYy1mdW5jdGlvbnMtYW5kLXR5cGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uYmEyNzE1NzUxCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3Jl L2xpYi9saWJ0YXNuMS1wYXRjaGVzLzAwMTItYXNuMV90ZXN0LXVzZS10aGUtZ3J1Yi1zcGVjaWZp Yy1mdW5jdGlvbnMtYW5kLXR5cGVzLnBhdGNoCkBAIC0wLDAgKzEsMjYzIEBACitGcm9tIDM5MmRh MjRhOGE0YjJhYjk0YTkzZTllMGY3NGRiMDI3YTNhOTM3NGQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNvbT4KK0RhdGU6IEZyaSwgMTYgQXVnIDIw MjQgMTU6NDY6NTkgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxMi8xM10gYXNuMV90ZXN0OiB1c2Ug dGhlIGdydWItc3BlY2lmaWMgZnVuY3Rpb25zIGFuZCB0eXBlcworCitUaGlzIGNvbW1pdCBjb252 ZXJ0cyBmdW5jdGlvbnMgYW5kIHR5cGVzIHRvIHRoZSBncnViLXNwZWNpZmljIG9uZXM6CisKK0xP TkdfTUFYIC0+IEdSVUJfTE9OR19NQVgKK0lOVF9NQVggLT4gR1JVQl9JTlRfTUFYCitVSU5UX01B WCAtPiBHUlVCX1VJTlRfTUFYCitzaXplX3QgLT4gZ3J1Yl9zaXplX3QKK21lbWNtcCgpIC0+IGdy dWJfbWVtY21wKCkKK21lbWNweSgpIC0+IGdydWJfbWVtY3B5KCkKK2ZyZWUoKSAtPiBncnViX2Zy ZWUoKQorc3RyY21wKCkgLT4gZ3J1Yl9zdHJjbXAoKQorCitTaWduZWQtb2ZmLWJ5OiBEYW5pZWwg QXh0ZW5zIDxkamFAYXh0ZW5zLm5ldD4KK1NpZ25lZC1vZmYtYnk6IEdhcnkgTGluIDxnbGluQHN1 c2UuY29tPgorUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5j b20+CistLS0KKyBncnViLWNvcmUvdGVzdHMvYXNuMS90ZXN0cy9UZXN0X292ZXJmbG93LmMgICAg fCAgNCArKy0tCisgZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEvdGVzdHMvVGVzdF9zaW1wbGUuYyAgICAg IHwgMjIgKysrKysrKysrLS0tLS0tLS0tLQorIGdydWItY29yZS90ZXN0cy9hc24xL3Rlc3RzL1Rl c3Rfc3RyaW5ncy5jICAgICB8ICA4ICsrKy0tLS0KKyAuLi4vdGVzdHMvYXNuMS90ZXN0cy9vYmpl Y3QtaWQtZGVjb2RpbmcuYyAgICAgfCAgNCArKy0tCisgLi4uL3Rlc3RzL2FzbjEvdGVzdHMvb2Jq ZWN0LWlkLWVuY29kaW5nLmMgICAgIHwgIDIgKy0KKyBncnViLWNvcmUvdGVzdHMvYXNuMS90ZXN0 cy9vY3RldC1zdHJpbmcuYyAgICAgfCAxMCArKysrLS0tLS0KKyA2IGZpbGVzIGNoYW5nZWQsIDI1 IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L3Rlc3RzL2FzbjEvdGVzdHMvVGVzdF9vdmVyZmxvdy5jIGIvZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEv dGVzdHMvVGVzdF9vdmVyZmxvdy5jCitpbmRleCBmZmFjODUwN2EuLjY1ODQzYWJmNiAxMDA2NDQK Ky0tLSBhL2dydWItY29yZS90ZXN0cy9hc24xL3Rlc3RzL1Rlc3Rfb3ZlcmZsb3cuYworKysrIGIv Z3J1Yi1jb3JlL3Rlc3RzL2FzbjEvdGVzdHMvVGVzdF9vdmVyZmxvdy5jCitAQCAtNDMsOSArNDMs OSBAQCB0ZXN0X292ZXJmbG93ICh2b2lkKQorIAorICAgLyogVGVzdCB0aGF0IHZhbHVlcyBsYXJn ZXIgdGhhbiBpbnQgYnV0IHNtYWxsZXIgdGhhbiBsb25nIGFyZQorICAgICAgcmVqZWN0ZWQuICBU aGlzIGxpbWl0YXRpb24gd2FzIGludHJvZHVjZWQgd2l0aCBsaWJ0YXNuMSAyLjEyLiAqLworLSAg aWYgKExPTkdfTUFYID4gSU5UX01BWCkKKysgIGlmIChHUlVCX0xPTkdfTUFYID4gR1JVQl9JTlRf TUFYKQorICAgICB7CistICAgICAgdW5zaWduZWQgbG9uZyBudW0gPSAoKGxvbmcpIFVJTlRfTUFY KSA8PCAyOworKyAgICAgIHVuc2lnbmVkIGxvbmcgbnVtID0gKChsb25nKSBHUlVCX1VJTlRfTUFY KSA8PCAyOworICAgICAgIHVuc2lnbmVkIGNoYXIgZGVyWzIwXTsKKyAgICAgICBpbnQgZGVyX2xl bjsKKyAgICAgICBsb25nIGw7CitkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEvdGVz dHMvVGVzdF9zaW1wbGUuYyBiL2dydWItY29yZS90ZXN0cy9hc24xL3Rlc3RzL1Rlc3Rfc2ltcGxl LmMKK2luZGV4IGRjNzBkYjE5MS4uMTk2MTNjYWU4IDEwMDY0NAorLS0tIGEvZ3J1Yi1jb3JlL3Rl c3RzL2FzbjEvdGVzdHMvVGVzdF9zaW1wbGUuYworKysrIGIvZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEv dGVzdHMvVGVzdF9zaW1wbGUuYworQEAgLTgxLDcgKzgxLDcgQEAgdGVzdF9zaW1wbGUgKHZvaWQp CisgICBpbnQgZGVyX2xlbiA9IHNpemVvZiAoZGVyKTsKKyAgIGludCBzdHJfc2l6ZSA9IHNpemVv ZiAoc3RyKTsKKyAgIGludCByZXRfbGVuLCBiaXRfbGVuOworLSAgc2l6ZV90IGk7CisrICBncnVi X3NpemVfdCBpOworIAorICAgeworICAgICB1bnNpZ25lZCBpbnQgZXR5cGUgPSAzODsKK0BAIC0x MjcsNyArMTI3LDcgQEAgdGVzdF9zaW1wbGUgKHZvaWQpCisgICAgICAgfQorICNlbmRpZgorIAor LSAgICAgIGlmIChkZXJfbGVuICE9IHR2W2ldLmRlcmxlbiB8fCBtZW1jbXAgKGRlciwgdHZbaV0u ZGVyLCBkZXJfbGVuKSAhPSAwKQorKyAgICAgIGlmIChkZXJfbGVuICE9IHR2W2ldLmRlcmxlbiB8 fCBncnViX21lbWNtcCAoZGVyLCB0dltpXS5kZXIsIGRlcl9sZW4pICE9IDApCisgCXsKKyAJICBn cnViX3ByaW50ZiAoImFzbjFfYml0X2RlciBpdGVyICVsdVxuIiwgKHVuc2lnbmVkIGxvbmcpIGkp OworIAkgIHJldHVybiAxOworQEAgLTE1NSwxMiArMTU1LDEyIEBAIHRlc3Rfc2ltcGxlICh2b2lk KQorIAorICAgLyogMDMgMDQgMDYgNmUgNWQgYzAgIERFUiBlbmNvZGluZyAqLworIAorLSAgbWVt Y3B5IChkZXIsICJceDA0XHgwNlx4NmVceDVkXHhjMCIsIDUpOworKyAgZ3J1Yl9tZW1jcHkgKGRl ciwgIlx4MDRceDA2XHg2ZVx4NWRceGMwIiwgNSk7CisgICBkZXJfbGVuID0gNTsKKyAKKyAgIHJl c3VsdCA9IGFzbjFfZ2V0X2JpdF9kZXIgKGRlciwgZGVyX2xlbiwgJnJldF9sZW4sIHN0ciwgc3Ry X3NpemUsICZiaXRfbGVuKTsKKyAgIGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNTIHx8IHJldF9s ZW4gIT0gNQorLSAgICAgIHx8IGJpdF9sZW4gIT0gMTggfHwgbWVtY21wIChzdHIsICJceDZlXHg1 ZFx4YzAiLCAzKSAhPSAwKQorKyAgICAgIHx8IGJpdF9sZW4gIT0gMTggfHwgZ3J1Yl9tZW1jbXAg KHN0ciwgIlx4NmVceDVkXHhjMCIsIDMpICE9IDApCisgICAgIHsKKyAgICAgICBncnViX3ByaW50 ZiAoImFzbjFfZ2V0X2JpdF9kZXIgZXhhbXBsZVxuIik7CisgICAgICAgcmV0dXJuIDE7CitAQCAt MTY4LDcgKzE2OCw3IEBAIHRlc3Rfc2ltcGxlICh2b2lkKQorIAorICAgZGVyX2xlbiA9IHNpemVv ZiAoZGVyKTsKKyAgIGFzbjFfYml0X2RlciAoc3RyLCBiaXRfbGVuLCBkZXIsICZkZXJfbGVuKTsK Ky0gIGlmIChkZXJfbGVuICE9IDUgfHwgbWVtY21wIChkZXIsICJceDA0XHgwNlx4NmVceDVkXHhj MCIsIDUpICE9IDApCisrICBpZiAoZGVyX2xlbiAhPSA1IHx8IGdydWJfbWVtY21wIChkZXIsICJc eDA0XHgwNlx4NmVceDVkXHhjMCIsIDUpICE9IDApCisgICAgIHsKKyAgICAgICBncnViX3ByaW50 ZiAoImFzbjFfYml0X2RlciBleGFtcGxlIHJvdW5kdHJpcFxuIik7CisgICAgICAgcmV0dXJuIDE7 CitAQCAtMTc2LDEyICsxNzYsMTIgQEAgdGVzdF9zaW1wbGUgKHZvaWQpCisgCisgICAvKiAwMyAw NCAwNiA2ZSA1ZCBlMCBwYWRkZWQgd2l0aCAiMTAwMDAwIiAqLworIAorLSAgbWVtY3B5IChkZXIs ICJceDA0XHgwNlx4NmVceDVkXHhlMCIsIDUpOworKyAgZ3J1Yl9tZW1jcHkgKGRlciwgIlx4MDRc eDA2XHg2ZVx4NWRceGUwIiwgNSk7CisgICBkZXJfbGVuID0gNTsKKyAKKyAgIHJlc3VsdCA9IGFz bjFfZ2V0X2JpdF9kZXIgKGRlciwgZGVyX2xlbiwgJnJldF9sZW4sIHN0ciwgc3RyX3NpemUsICZi aXRfbGVuKTsKKyAgIGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNTIHx8IHJldF9sZW4gIT0gNQor LSAgICAgIHx8IGJpdF9sZW4gIT0gMTggfHwgbWVtY21wIChzdHIsICJceDZlXHg1ZFx4ZTAiLCAz KSAhPSAwKQorKyAgICAgIHx8IGJpdF9sZW4gIT0gMTggfHwgZ3J1Yl9tZW1jbXAgKHN0ciwgIlx4 NmVceDVkXHhlMCIsIDMpICE9IDApCisgICAgIHsKKyAgICAgICBncnViX3ByaW50ZiAoImFzbjFf Z2V0X2JpdF9kZXIgZXhhbXBsZSBwYWRkZWRcbiIpOworICAgICAgIHJldHVybiAxOworQEAgLTE4 OSw3ICsxODksNyBAQCB0ZXN0X3NpbXBsZSAodm9pZCkKKyAKKyAgIGRlcl9sZW4gPSBzaXplb2Yg KGRlcik7CisgICBhc24xX2JpdF9kZXIgKHN0ciwgYml0X2xlbiwgZGVyLCAmZGVyX2xlbik7Cist ICBpZiAoZGVyX2xlbiAhPSA1IHx8IG1lbWNtcCAoZGVyLCAiXHgwNFx4MDZceDZlXHg1ZFx4YzAi LCA1KSAhPSAwKQorKyAgaWYgKGRlcl9sZW4gIT0gNSB8fCBncnViX21lbWNtcCAoZGVyLCAiXHgw NFx4MDZceDZlXHg1ZFx4YzAiLCA1KSAhPSAwKQorICAgICB7CisgICAgICAgZ3J1Yl9wcmludGYg KCJhc24xX2JpdF9kZXIgZXhhbXBsZSByb3VuZHRyaXBcbiIpOworICAgICAgIHJldHVybiAxOwor QEAgLTE5NywxMyArMTk3LDEzIEBAIHRlc3Rfc2ltcGxlICh2b2lkKQorIAorICAgLyogMDMgODEg MDQgMDYgNmUgNWQgYzAgbG9uZyBmb3JtIG9mIGxlbmd0aCBvY3RldHMgKi8KKyAKKy0gIG1lbWNw eSAoZGVyLCAiXHg4MVx4MDRceDA2XHg2ZVx4NWRceGMwIiwgNik7CisrICBncnViX21lbWNweSAo ZGVyLCAiXHg4MVx4MDRceDA2XHg2ZVx4NWRceGMwIiwgNik7CisgICBkZXJfbGVuID0gNjsKKyAK KyAgIHJlc3VsdCA9IGFzbjFfZ2V0X2JpdF9kZXIgKGRlciwgZGVyX2xlbiwgJnJldF9sZW4sIHN0 ciwgc3RyX3NpemUsICZiaXRfbGVuKTsKKyAKKyAgIGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNT IHx8IHJldF9sZW4gIT0gNgorLSAgICAgIHx8IGJpdF9sZW4gIT0gMTggfHwgbWVtY21wIChzdHIs ICJceDZlXHg1ZFx4YzAiLCAzKSAhPSAwKQorKyAgICAgIHx8IGJpdF9sZW4gIT0gMTggfHwgZ3J1 Yl9tZW1jbXAgKHN0ciwgIlx4NmVceDVkXHhjMCIsIDMpICE9IDApCisgICAgIHsKKyAgICAgICBn cnViX3ByaW50ZiAoImFzbjFfZ2V0X2JpdF9kZXIgZXhhbXBsZSBsb25nIGZvcm1cbiIpOworICAg ICAgIHJldHVybiAxOworQEAgLTIxMSw3ICsyMTEsNyBAQCB0ZXN0X3NpbXBsZSAodm9pZCkKKyAK KyAgIGRlcl9sZW4gPSBzaXplb2YgKGRlcik7CisgICBhc24xX2JpdF9kZXIgKHN0ciwgYml0X2xl biwgZGVyLCAmZGVyX2xlbik7CistICBpZiAoZGVyX2xlbiAhPSA1IHx8IG1lbWNtcCAoZGVyLCAi XHgwNFx4MDZceDZlXHg1ZFx4YzAiLCA1KSAhPSAwKQorKyAgaWYgKGRlcl9sZW4gIT0gNSB8fCBn cnViX21lbWNtcCAoZGVyLCAiXHgwNFx4MDZceDZlXHg1ZFx4YzAiLCA1KSAhPSAwKQorICAgICB7 CisgICAgICAgZ3J1Yl9wcmludGYgKCJhc24xX2JpdF9kZXIgZXhhbXBsZSByb3VuZHRyaXBcbiIp OworICAgICAgIHJldHVybiAxOworZGlmZiAtLWdpdCBhL2dydWItY29yZS90ZXN0cy9hc24xL3Rl c3RzL1Rlc3Rfc3RyaW5ncy5jIGIvZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEvdGVzdHMvVGVzdF9zdHJp bmdzLmMKK2luZGV4IDY1YzMwOTM3Zi4uYzdjMWFmYTFiIDEwMDY0NAorLS0tIGEvZ3J1Yi1jb3Jl L3Rlc3RzL2FzbjEvdGVzdHMvVGVzdF9zdHJpbmdzLmMKKysrKyBiL2dydWItY29yZS90ZXN0cy9h c24xL3Rlc3RzL1Rlc3Rfc3RyaW5ncy5jCitAQCAtOTQsNyArOTQsNyBAQCB0ZXN0X3N0cmluZ3Mg KHZvaWQpCisgCX0KKyAgICAgICBkZXJfbGVuID0gdGxfbGVuICsgdHZbaV0uc3RyX2xlbjsKKyAK Ky0gICAgICBpZiAoZGVyX2xlbiAhPSB0dltpXS5kZXJfbGVuIHx8IG1lbWNtcCAodGwsIHR2W2ld LmRlciwgdGxfbGVuKSAhPSAwKQorKyAgICAgIGlmIChkZXJfbGVuICE9IHR2W2ldLmRlcl9sZW4g fHwgZ3J1Yl9tZW1jbXAgKHRsLCB0dltpXS5kZXIsIHRsX2xlbikgIT0gMCkKKyAJeworIAkgIGdy dWJfcHJpbnRmICgiREVSIGVuY29kaW5nIGRpZmZlcnMgaW4gJXUhIChzaXplOiAldSwgZXhwZWN0 ZWQ6ICV1KVxuIiwgaSwgZGVyX2xlbiwgdHZbaV0uZGVyX2xlbik7CisgCSAgcmV0dXJuIDE7CitA QCAtMTEwLDcgKzExMCw3IEBAIHRlc3Rfc3RyaW5ncyAodm9pZCkKKyAJICByZXR1cm4gMTsKKyAJ fQorIAorLSAgICAgIGlmIChzdHJfbGVuICE9IHR2W2ldLnN0cl9sZW4gfHwgbWVtY21wIChzdHIs IHR2W2ldLnN0ciwgc3RyX2xlbikgIT0gMCkKKysgICAgICBpZiAoc3RyX2xlbiAhPSB0dltpXS5z dHJfbGVuIHx8IGdydWJfbWVtY21wIChzdHIsIHR2W2ldLnN0ciwgc3RyX2xlbikgIT0gMCkKKyAJ eworIAkgIGdydWJfcHJpbnRmICgiREVSIGRlY29kZWQgZGF0YSBkaWZmZXIgaW4gJXUhIChzaXpl OiAldSwgZXhwZWN0ZWQ6ICV1KVxuIiwgaSwgZGVyX2xlbiwgdHZbaV0uc3RyX2xlbik7CisgCSAg cmV0dXJuIDE7CitAQCAtMTMwLDEyICsxMzAsMTIgQEAgdGVzdF9zdHJpbmdzICh2b2lkKQorIAkg IHJldHVybiAxOworIAl9CisgCistICAgICAgaWYgKHN0cl9sZW4gIT0gYmVyW2ldLnN0cl9sZW4g fHwgbWVtY21wIChiLCBiZXJbaV0uc3RyLCBzdHJfbGVuKSAhPSAwKQorKyAgICAgIGlmIChzdHJf bGVuICE9IGJlcltpXS5zdHJfbGVuIHx8IGdydWJfbWVtY21wIChiLCBiZXJbaV0uc3RyLCBzdHJf bGVuKSAhPSAwKQorIAl7CisgCSAgZ3J1Yl9wcmludGYgKCJCRVIgZGVjb2RlZCBkYXRhIGRpZmZl ciBpbiAldSEgKHNpemU6ICV1LCBleHBlY3RlZDogJXUpXG4iLCBpLCBzdHJfbGVuLCBiZXJbaV0u c3RyX2xlbik7CisgCSAgcmV0dXJuIDE7CisgCX0KKy0gICAgICBmcmVlIChiKTsKKysgICAgICBn cnViX2ZyZWUgKGIpOworICAgICB9CisgCisgCitkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL3Rlc3Rz L2FzbjEvdGVzdHMvb2JqZWN0LWlkLWRlY29kaW5nLmMgYi9ncnViLWNvcmUvdGVzdHMvYXNuMS90 ZXN0cy9vYmplY3QtaWQtZGVjb2RpbmcuYworaW5kZXggYzA4N2I0NmUzLi45MWFmOGNkZTUgMTAw NjQ0CistLS0gYS9ncnViLWNvcmUvdGVzdHMvYXNuMS90ZXN0cy9vYmplY3QtaWQtZGVjb2Rpbmcu YworKysrIGIvZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEvdGVzdHMvb2JqZWN0LWlkLWRlY29kaW5nLmMK K0BAIC03NCw3ICs3NCw3IEBAIHRlc3Rfb2JqZWN0X2lkX2RlY29kaW5nICh2b2lkKQorIHsKKyAg IGNoYXIgc3RyWzEyOF07CisgICBpbnQgcmV0LCByZXRfbGVuOworLSAgc2l6ZV90IGk7CisrICBn cnViX3NpemVfdCBpOworIAorICAgZm9yIChpID0gMDsgaSA8IHNpemVvZiAodHYpIC8gc2l6ZW9m ICh0dlswXSk7IGkrKykKKyAgICAgeworQEAgLTEwMCw3ICsxMDAsNyBAQCB0ZXN0X29iamVjdF9p ZF9kZWNvZGluZyAodm9pZCkKKyAJICByZXR1cm4gMTsKKyAJfQorIAorLSAgICAgIGlmIChzdHJj bXAgKHR2W2ldLm9pZCwgc3RyKSAhPSAwKQorKyAgICAgIGlmIChncnViX3N0cmNtcCAodHZbaV0u b2lkLCBzdHIpICE9IDApCisgCXsKKyAJICBncnViX3ByaW50ZiAoIiVkOiBzdHJjbXAgaXRlciAl bHU6IGdvdCBpbnZhbGlkIE9JRDogJXMsIGV4cGVjdGVkOiAlc1xuIiwKKyAJCSAgICAgICBfX0xJ TkVfXywgKHVuc2lnbmVkIGxvbmcpIGksIHN0ciwgdHZbaV0ub2lkKTsKK2RpZmYgLS1naXQgYS9n cnViLWNvcmUvdGVzdHMvYXNuMS90ZXN0cy9vYmplY3QtaWQtZW5jb2RpbmcuYyBiL2dydWItY29y ZS90ZXN0cy9hc24xL3Rlc3RzL29iamVjdC1pZC1lbmNvZGluZy5jCitpbmRleCBlM2RhMDkyY2Mu LmY4Zjk4ZmYxNyAxMDA2NDQKKy0tLSBhL2dydWItY29yZS90ZXN0cy9hc24xL3Rlc3RzL29iamVj dC1pZC1lbmNvZGluZy5jCisrKysgYi9ncnViLWNvcmUvdGVzdHMvYXNuMS90ZXN0cy9vYmplY3Qt aWQtZW5jb2RpbmcuYworQEAgLTEwNCw3ICsxMDQsNyBAQCB0ZXN0X29iamVjdF9pZF9lbmNvZGlu ZyAodm9pZCkKKyAJICByZXR1cm4gMTsKKyAJfQorIAorLSAgICAgIGlmIChkZXJfbGVuICE9IHR2 W2ldLmRlcl9sZW4gfHwgbWVtY21wIChkZXIsIHR2W2ldLmRlciwgZGVyX2xlbikgIT0gMCkKKysg ICAgICBpZiAoZGVyX2xlbiAhPSB0dltpXS5kZXJfbGVuIHx8IGdydWJfbWVtY21wIChkZXIsIHR2 W2ldLmRlciwgZGVyX2xlbikgIT0gMCkKKyAJeworIAkgIGdydWJfcHJpbnRmICgiJWQ6IGl0ZXIg JWx1LCByZS1lbmNvZGluZyBvZiBPSUQgJXMgcmVzdWx0ZWQgdG8gZGlmZmVyZW50IHN0cmluZyAo JWQgdnMgJWQgYnl0ZXMpXG4iLAorIAkJICAgX19MSU5FX18sICh1bnNpZ25lZCBsb25nKSBpLCB0 dltpXS5vaWQsIGRlcl9sZW4sIHR2W2ldLmRlcl9sZW4pOworZGlmZiAtLWdpdCBhL2dydWItY29y ZS90ZXN0cy9hc24xL3Rlc3RzL29jdGV0LXN0cmluZy5jIGIvZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEv dGVzdHMvb2N0ZXQtc3RyaW5nLmMKK2luZGV4IGQzYTM1ZGZmOC4uZGNmMGZiODA4IDEwMDY0NAor LS0tIGEvZ3J1Yi1jb3JlL3Rlc3RzL2FzbjEvdGVzdHMvb2N0ZXQtc3RyaW5nLmMKKysrKyBiL2dy dWItY29yZS90ZXN0cy9hc24xL3Rlc3RzL29jdGV0LXN0cmluZy5jCitAQCAtMTE2LDcgKzExNiw3 IEBAIHRlc3Rfb2N0ZXRfc3RyaW5nICh2b2lkKQorICAgaW50IHN0cl9zaXplID0gc2l6ZW9mIChz dHIpOworICAgdW5zaWduZWQgY2hhciAqdG1wID0gTlVMTDsKKyAgIGludCByZXQsIHJldF9sZW4s IGo7CistICBzaXplX3QgaTsKKysgIGdydWJfc2l6ZV90IGk7CisgCisgICBmb3IgKGkgPSAwOyBp IDwgc2l6ZW9mICh0dikgLyBzaXplb2YgKHR2WzBdKTsgaSsrKQorICAgICB7CitAQCAtMTQ2LDcg KzE0Niw3IEBAIHRlc3Rfb2N0ZXRfc3RyaW5nICh2b2lkKQorIAkgICAgfQorIAorIAkgIGlmIChz dHJfc2l6ZSAhPSB0dltpXS5sZW4KKy0JICAgICAgfHwgbWVtY21wICh0dltpXS5zdHJpbmcsIHN0 ciwgdHZbaV0ubGVuKSAhPSAwKQorKwkgICAgICB8fCBncnViX21lbWNtcCAodHZbaV0uc3RyaW5n LCBzdHIsIHR2W2ldLmxlbikgIT0gMCkKKyAJICAgIHsKKyAJICAgICAgZ3J1Yl9wcmludGYgKCIl ZDogbWVtY21wOiAlczogZ290IGludmFsaWQgZGVjb2RpbmdcbiIsCisgCQkJICAgX19MSU5FX18s IHR2W2ldLm5hbWUpOworQEAgLTE2Nyw3ICsxNjcsNyBAQCB0ZXN0X29jdGV0X3N0cmluZyAodm9p ZCkKKyAJICBhc24xX29jdGV0X2RlciAoc3RyLCBzdHJfc2l6ZSwgZGVyLCAmZGVyX2xlbik7Cisg CisgCSAgaWYgKGRlcl9sZW4gIT0gdHZbaV0uZGVyX2xlbiAtIDEKKy0JICAgICAgfHwgbWVtY21w ICh0dltpXS5kZXJfc3RyICsgMSwgZGVyLCB0dltpXS5kZXJfbGVuIC0gMSkgIT0gMCkKKysJICAg ICAgfHwgZ3J1Yl9tZW1jbXAgKHR2W2ldLmRlcl9zdHIgKyAxLCBkZXIsIHR2W2ldLmRlcl9sZW4g LSAxKSAhPSAwKQorIAkgICAgeworIAkgICAgICBncnViX3ByaW50ZiAoImVuY29kaW5nOiAlczog Z290IGludmFsaWQgZW5jb2RpbmdcbiIsIHR2W2ldLm5hbWUpOworIAkgICAgICByZXR1cm4gMTsK K0BAIC0xOTYsNyArMTk2LDcgQEAgdGVzdF9vY3RldF9zdHJpbmcgKHZvaWQpCisgCSAgcmV0dXJu IDE7CisgCX0KKyAKKy0gICAgICBpZiAoc3RyX3NpemUgIT0gdHZbaV0ubGVuIHx8IG1lbWNtcCAo dHZbaV0uc3RyaW5nLCB0bXAsIHR2W2ldLmxlbikgIT0gMCkKKysgICAgICBpZiAoc3RyX3NpemUg IT0gdHZbaV0ubGVuIHx8IGdydWJfbWVtY21wICh0dltpXS5zdHJpbmcsIHRtcCwgdHZbaV0ubGVu KSAhPSAwKQorIAl7CisgCSAgZ3J1Yl9wcmludGYgKCIlZDogbWVtY21wOiAlczogZ290IGludmFs aWQgZGVjb2RpbmdcbiIsIF9fTElORV9fLCB0dltpXS5uYW1lKTsKKyAJICBncnViX3ByaW50ZiAo IlxuR290Olx0XHQiKTsKK0BAIC0yMDksNyArMjA5LDcgQEAgdGVzdF9vY3RldF9zdHJpbmcgKHZv aWQpCisgCSAgZ3J1Yl9wcmludGYgKCJcbiIpOworIAkgIHJldHVybiAxOworIAl9CistICAgICAg ZnJlZSAodG1wKTsKKysgICAgICBncnViX2ZyZWUgKHRtcCk7CisgICAgICAgdG1wID0gTlVMTDsK KyAKKyAgICAgfQorLS0gCisyLjQzLjAKKwotLSAKMi40My4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1 Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dy dWItZGV2ZWwK