From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 8E5BC3858414 for ; Fri, 10 Feb 2023 18:25:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8E5BC3858414 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676053555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=NaHfFWB99BrJskrGjhA+wOq7B3BVP2poYX6KeJoxDvE=; b=K6nw/rmRmau6Gzp0MPx8bS1QNH7UDKE6IoLDbh18Ac5UwO5mxKgfbPXDxlqdyhWO1Mjg1O xEcmiEKYoj9mh4qDi+dZd7MZtlsMDKZ1Y20r6FHlr9Pex3TCF3c6Lg8zm1lCDKY/4y/e/m hz7sPBfvCE4jyM/O6ApjDthbVV6CGXI= Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-50-OlYW0jWDONWDoya4ga-T1A-1; Fri, 10 Feb 2023 13:25:53 -0500 X-MC-Unique: OlYW0jWDONWDoya4ga-T1A-1 Received: by mail-pg1-f199.google.com with SMTP id p4-20020a654904000000b004fb64e929f2so941861pgs.7 for ; Fri, 10 Feb 2023 10:25:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=N1XCtdGlb9z2Jaabh5vIPJhG+E3TAm6sdAEqF++Zazc=; b=zVUPIoJKohPR4tCM/9rwzb7H63lMJzm+HOUbl/qDsLITKgnsm8JEKssSSS3iRR1wjk wI8JcLIf2MGxq23CW+MSzYqahvLqL+H8u9gWqFqCJ5TvtDs7sb2NpQT+PLhhpw6wHfa+ go5sONo2QkBIsUDYUTynW7g4cJvHszeOT8ZkqiQzRds7viKGqCYJOmTc5FD1CeXeiEOm ml2wqyLnOjvpn3AR+qsYR7hNa0uZTTB2OfnOITksmV/ro9toATc/srk5p4B+H936miWt XlvjKeDqrzP7Hwygs4pgRwFwLAnMjBUVNodPjhZq9Bisr1m2rkR8AkbiymiXe4XbGexz DgXw== X-Gm-Message-State: AO0yUKVFEAXGJBa9tnJLBo2YIzcNYPHnDGh3H182onrFOAWzUkOxJbHV 4m9oIr9pkYP21KeDVXtSDi1jB9SQnb9xvtyXank5tODalCV9MahfjBqUe4TkhxLFIbW0YyMz0yX vKjzSs03gt+8D19lATHtBdCtEtUY45PI= X-Received: by 2002:a17:90a:1b0a:b0:233:aed3:b25 with SMTP id q10-20020a17090a1b0a00b00233aed30b25mr675686pjq.17.1676053552194; Fri, 10 Feb 2023 10:25:52 -0800 (PST) X-Google-Smtp-Source: AK7set+4bbCBgEtdg2pqluNOKQx3qF7CpNeFHImg8/6LxEj1zXcRfVHKCYIQKBezWarzoY6offgf0OGUgRWVYvsB2tE= X-Received: by 2002:a17:90a:1b0a:b0:233:aed3:b25 with SMTP id q10-20020a17090a1b0a00b00233aed30b25mr675664pjq.17.1676053550720; Fri, 10 Feb 2023 10:25:50 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Thomas Rodgers Date: Fri, 10 Feb 2023 10:25:39 -0800 Message-ID: Subject: Re: [PATCH] libstdc++: Add missing free functions for atomic_flag [PR103934] To: Jonathan Wakely Cc: "libstdc++" , gcc Patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000842b6a05f45ca084" X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000842b6a05f45ca084 Content-Type: multipart/alternative; boundary="000000000000842b6805f45ca082" --000000000000842b6805f45ca082 Content-Type: text/plain; charset="UTF-8" This patch did not get committed in a timely manner after it was OK'd. In revisiting the patch some issues were found that have lead me to resubmit for review - Specifically - The original commit to add C++20 atomic_flag::test did not include the free functions for atomic_flag_test[_explicit] The original commit to add C++20 atomic_flag::wait/notify did not include the free functions for atomic_flag_wait/notify[_explicit] These two commits landed in GCC10 and GCC11 respectively. My original patch included both sets of free functions, but that complicates the backporting of these changes to GCC10, GCC11, and GCC12. Additionally commit 7c2155 removed const qualification from atomic_flag::notify_one/notify_all but the original version of this patch accepts the atomic flag as const. The original version of this patch did not include test cases for the atomic_flag_test[_explicit] free functions. I have split the original patch into two patches, on for the atomic_flag_test free functions, and one for the atomic_flag_wait/notify free functions. On Wed, Feb 2, 2022 at 1:35 PM Jonathan Wakely wrote: > >+ inline void > >+ atomic_flag_wait_explicit(const atomic_flag* __a, bool __old, > >+ std::memory_order __m) noexcept > > No need for the std:: qualification, and check the indentation. > > > > libstdc++-v3/ChangeLog: > > > > PR103934 > > This needs to include the component: PR libstdc++/103934 > > > * include/std/atomic: Add missing free functions. > > Please name the new functions in the changelog, in the usual format. > Just the names is fine, no need for the full signatures with > parameters. > > OK for trunk with those changes. > > --000000000000842b6805f45ca082-- --000000000000842b6a05f45ca084 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-libstdc-Add-missing-free-functions-for-atomic_flag-P.patch" Content-Disposition: attachment; filename="0002-libstdc-Add-missing-free-functions-for-atomic_flag-P.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ldyuzaap1 RnJvbSAxMzM4NTM4YzE2NjdiN2ZiZTIwMWQyMmQ4MTI1NGUzM2EwZTdiMjRj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgVyBSb2Rn ZXJzIDxyb2RnZXJ0QHR3cm9kZ2Vycy5jb20+CkRhdGU6IEZyaSwgMTAgRmVi IDIwMjMgMTA6MDk6MDYgLTA4MDAKU3ViamVjdDogW1BBVENIIDIvMl0gbGli c3RkYysrOiBBZGQgbWlzc2luZyBmcmVlIGZ1bmN0aW9ucyBmb3IgYXRvbWlj X2ZsYWcKIFtQUjEwMzkzNF0KClRoaXMgcGF0Y2ggYWRkcyAtCiAgYXRvbWlj X2ZsYWdfd2FpdAogIGF0b21pY19mbGFnX3dhaXRfZXhwbGljaXQKICBhdG9t aWNfZmxhZ19ub3RpZnkKICBhdG9taWNfZmxhZ19ub3RpZnlfZXhwbGljaXQK CldoaWNoIHdlcmUgbWlzc2VkIHdoZW4gY29tbWl0IDgzYTFiZSBpbnRyb2R1 Y2VkIEMrKzIwIGF0b21pYyB3YWl0LgoKbGlic3RkYysrLXYzL0NoYW5nZUxv ZzoKCglQUiBsaWJzdGRjKysvMTAzOTM0CgkqIGluY2x1ZGUvc3RkL2F0b21p YzogQWRkIG1pc3NpbmcgZnJlZSBmdW5jdGlvbnMuCgkqIHRlc3RzdWl0ZS8y OV9hdG9taWNzL2F0b21pY19mbGFnL3dhaXRfbm90aWZ5LzEuY2M6CglBZGQg dGVzdCBjYXNlIHRvIGNvdmVyIG1pc3NpbmcgYXRvbWljX2ZsYWcgZnJlZSBm dW5jdGlvbnMuCi0tLQogbGlic3RkYysrLXYzL2luY2x1ZGUvc3RkL2F0b21p YyAgICAgICAgICAgICAgIHwgMTkgKysrKysrKysrKysrKysKIC4uLi8yOV9h dG9taWNzL2F0b21pY19mbGFnL3dhaXRfbm90aWZ5LzEuY2MgICB8IDI2ICsr KysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJzdGRj KystdjMvaW5jbHVkZS9zdGQvYXRvbWljIGIvbGlic3RkYysrLXYzL2luY2x1 ZGUvc3RkL2F0b21pYwppbmRleCAxZWRkM2FlMTZmYS4uZTgyYTY0MjczNzgg MTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9hdG9taWMK KysrIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvc3RkL2F0b21pYwpAQCAtMTI1 OSw2ICsxMjU5LDI1IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgIGF0b21pY19mbGFnX2NsZWFyKHZvbGF0aWxlIGF0b21pY19mbGFn KiBfX2EpIG5vZXhjZXB0CiAgIHsgYXRvbWljX2ZsYWdfY2xlYXJfZXhwbGlj aXQoX19hLCBtZW1vcnlfb3JkZXJfc2VxX2NzdCk7IH0KIAorI2lmIF9fY3Bw X2xpYl9hdG9taWNfd2FpdAorICBpbmxpbmUgdm9pZAorICAgICAgYXRvbWlj X2ZsYWdfd2FpdChhdG9taWNfZmxhZyogX19hLCBib29sIF9fb2xkKSBub2V4 Y2VwdAorICB7IF9fYS0+d2FpdChfX29sZCk7IH0KKworICBpbmxpbmUgdm9p ZAorICAgICAgYXRvbWljX2ZsYWdfd2FpdF9leHBsaWNpdChhdG9taWNfZmxh ZyogX19hLCBib29sIF9fb2xkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZW1vcnlfb3JkZXIgX19tKSBub2V4Y2VwdAorICB7IF9fYS0+ d2FpdChfX29sZCwgX19tKTsgfQorCisgIGlubGluZSB2b2lkCisgICAgICBh dG9taWNfZmxhZ19ub3RpZnlfb25lKGF0b21pY19mbGFnKiBfX2EpIG5vZXhj ZXB0CisgIHsgX19hLT5ub3RpZnlfb25lKCk7IH0KKworICBpbmxpbmUgdm9p ZAorICAgICAgYXRvbWljX2ZsYWdfbm90aWZ5X2FsbChhdG9taWNfZmxhZyog X19hKSBub2V4Y2VwdAorICB7IF9fYS0+bm90aWZ5X2FsbCgpOyB9CisjZW5k aWYgLy8gX19jcHBfbGliX2F0b21pY193YWl0CisKICAgLy8vIEBjb25kIHVu ZG9jdW1lbnRlZAogICAvLyBfR0xJQkNYWF9SRVNPTFZFX0xJQl9ERUZFQ1RT CiAgIC8vIDMyMjAuIFAwNTU4IGJyb2tlIGNvbmZvcm1pbmcgQysrMTQgdXNl cyBvZiBhdG9taWMgc2hhcmVkX3B0cgpkaWZmIC0tZ2l0IGEvbGlic3RkYysr LXYzL3Rlc3RzdWl0ZS8yOV9hdG9taWNzL2F0b21pY19mbGFnL3dhaXRfbm90 aWZ5LzEuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI5X2F0b21pY3Mv YXRvbWljX2ZsYWcvd2FpdF9ub3RpZnkvMS5jYwppbmRleCAyNDBmYjQyNTlm Ny4uNzc3ZmE5MTVlYTEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0 c3VpdGUvMjlfYXRvbWljcy9hdG9taWNfZmxhZy93YWl0X25vdGlmeS8xLmNj CisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjlfYXRvbWljcy9hdG9t aWNfZmxhZy93YWl0X25vdGlmeS8xLmNjCkBAIC0yNiw4ICsyNiw4IEBACiAK ICNpbmNsdWRlIDx0ZXN0c3VpdGVfaG9va3MuaD4KIAotaW50Ci1tYWluKCkK K3ZvaWQKK3Rlc3QwMSgpCiB7CiAgIHN0ZDo6YXRvbWljX2ZsYWcgYTsKICAg VkVSSUZZKCAhYS50ZXN0KCkgKTsKQEAgLTM5LDUgKzM5LDI3IEBAIG1haW4o KQogICAgIH0pOwogICBhLndhaXQoZmFsc2UpOwogICB0LmpvaW4oKTsKK30K Kwordm9pZAordGVzdDAyKCkKK3sKKyAgc3RkOjphdG9taWNfZmxhZyBhOwor ICBWRVJJRlkoICFzdGQ6OmF0b21pY19mbGFnX3Rlc3QoJmEpICk7CisgIHN0 ZDo6YXRvbWljX2ZsYWdfd2FpdCgmYSwgdHJ1ZSk7CisgIHN0ZDo6dGhyZWFk IHQoWyZdCisgICAgeworICAgICAgc3RkOjphdG9taWNfZmxhZ190ZXN0X2Fu ZF9zZXQoJmEpOworICAgICAgc3RkOjphdG9taWNfZmxhZ19ub3RpZnlfb25l KCZhKTsKKyAgICB9KTsKKyAgICBzdGQ6OmF0b21pY19mbGFnX3dhaXQoJmEs IGZhbHNlKTsKKyAgICB0LmpvaW4oKTsKK30KKworaW50CittYWluKCkKK3sK KyAgdGVzdDAxKCk7CisgIHRlc3QwMigpOwogICByZXR1cm4gMDsKIH0KLS0g CjIuMzkuMQoK --000000000000842b6a05f45ca084 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-libstdc-Add-missing-free-functions-for-atomic_flag-P.patch" Content-Disposition: attachment; filename="0001-libstdc-Add-missing-free-functions-for-atomic_flag-P.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ldyuzaai0 RnJvbSA3ZjIxZTk4YmJlZmRlNTQzN2ExMTZjY2RhMzVhODU5MjJmNTg4MmJm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgVyBSb2Rn ZXJzIDxyb2RnZXJ0QHR3cm9kZ2Vycy5jb20+CkRhdGU6IEZyaSwgMTAgRmVi IDIwMjMgMDk6MzU6MTEgLTA4MDAKU3ViamVjdDogW1BBVENIIDEvMl0gbGli c3RkYysrOiBBZGQgbWlzc2luZyBmcmVlIGZ1bmN0aW9ucyBmb3IgYXRvbWlj X2ZsYWcKIFtQUjEwMzkzNF0KClRoaXMgcGF0Y2ggYWRkcyAtCiAgYXRvbWlj X2ZsYWdfdGVzdAogIGF0b21pY19mbGFnX3Rlc3RfZXhwbGljaXQKCldoaWNo IHdlcmUgbWlzc2VkIHdoZW4gY29tbWl0IDQ5MWJhNiBpbnRyb2R1Y2VkIEMr KzIwIGF0b21pYyBmbGFnCnRlc3QuCgpsaWJzdGRjKystdjMvQ2hhbmdlTG9n OgoKCVBSIGxpYnN0ZGMrKy8xMDM5MzQKCSogaW5jbHVkZS9zdGQvYXRvbWlj OiBBZGQgbWlzc2luZyBmcmVlIGZ1bmN0aW9ucy4KCSogdGVzdHN1aXRlLzI5 X2F0b21pY3MvYXRvbWljX2ZsYWcvdGVzdC9leHBsaWNpdC5jYwogICAgICAg IEFkZCB0ZXN0IGNhc2UgdG8gY292ZXIgbWlzc2luZyBhdG9taWNfZmxhZyBm cmVlIGZ1bmN0aW9ucy4KICAgICAgICAqIHRlc3RzdWl0ZS8yOV9hdG9taWNz L2F0b21pY19mbGFnL3Rlc3QvZXhwbGljaXQuY2MKICAgICAgICBMaWtld2lz ZS4KLS0tCiBsaWJzdGRjKystdjMvaW5jbHVkZS9zdGQvYXRvbWljICAgICAg ICAgICAgICAgfCAyMCArKysrKysrKysrKysrKwogLi4uLzI5X2F0b21pY3Mv YXRvbWljX2ZsYWcvdGVzdC9leHBsaWNpdC5jYyAgIHwgMjYgKysrKysrKysr KysrKysrKysrLQogLi4uLzI5X2F0b21pY3MvYXRvbWljX2ZsYWcvdGVzdC9p bXBsaWNpdC5jYyAgIHwgMjYgKysrKysrKysrKysrKysrKysrLQogMyBmaWxl cyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9hdG9taWMg Yi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvYXRvbWljCmluZGV4IDFjMjdj OGM0MWUxLi4xZWRkM2FlMTZmYSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L2luY2x1ZGUvc3RkL2F0b21pYworKysgYi9saWJzdGRjKystdjMvaW5jbHVk ZS9zdGQvYXRvbWljCkBAIC0xMjE0LDYgKzEyMTQsMjYgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAkJCQkgICAgbWVtb3J5X29yZGVy IF9fbSkgbm9leGNlcHQKICAgeyByZXR1cm4gX19hLT50ZXN0X2FuZF9zZXQo X19tKTsgfQogCisjaWYgX19jcHBfbGliX2F0b21pY19mbGFnX3Rlc3QKKyAg aW5saW5lIGJvb2wKKyAgYXRvbWljX2ZsYWdfdGVzdChjb25zdCBhdG9taWNf ZmxhZyogX19hKSBub2V4Y2VwdAorICB7IHJldHVybiBfX2EtPnRlc3QoKTsg fQorCisgIGlubGluZSBib29sCisgIGF0b21pY19mbGFnX3Rlc3QoY29uc3Qg dm9sYXRpbGUgYXRvbWljX2ZsYWcqIF9fYSkgbm9leGNlcHQKKyAgeyByZXR1 cm4gX19hLT50ZXN0KCk7IH0KKworICBpbmxpbmUgYm9vbAorICBhdG9taWNf ZmxhZ190ZXN0X2V4cGxpY2l0KGNvbnN0IGF0b21pY19mbGFnKiBfX2EsCisJ CQkgICAgbWVtb3J5X29yZGVyIF9fbSkgbm9leGNlcHQKKyAgeyByZXR1cm4g X19hLT50ZXN0KF9fbSk7IH0KKworICBpbmxpbmUgYm9vbAorICBhdG9taWNf ZmxhZ190ZXN0X2V4cGxpY2l0KGNvbnN0IHZvbGF0aWxlIGF0b21pY19mbGFn KiBfX2EsCisJCQkgICAgbWVtb3J5X29yZGVyIF9fbSkgbm9leGNlcHQKKyAg eyByZXR1cm4gX19hLT50ZXN0KF9fbSk7IH0KKyNlbmRpZgorCiAgIGlubGlu ZSB2b2lkCiAgIGF0b21pY19mbGFnX2NsZWFyX2V4cGxpY2l0KGF0b21pY19m bGFnKiBfX2EsIG1lbW9yeV9vcmRlciBfX20pIG5vZXhjZXB0CiAgIHsgX19h LT5jbGVhcihfX20pOyB9CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVz dHN1aXRlLzI5X2F0b21pY3MvYXRvbWljX2ZsYWcvdGVzdC9leHBsaWNpdC5j YyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjlfYXRvbWljcy9hdG9taWNf ZmxhZy90ZXN0L2V4cGxpY2l0LmNjCmluZGV4IDM4MGJkMzZhYzQ3Li5mYzhk NjU4OTcwNyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8y OV9hdG9taWNzL2F0b21pY19mbGFnL3Rlc3QvZXhwbGljaXQuY2MKKysrIGIv bGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOV9hdG9taWNzL2F0b21pY19mbGFn L3Rlc3QvZXhwbGljaXQuY2MKQEAgLTIyLDcgKzIyLDggQEAKICNpbmNsdWRl IDxhdG9taWM+CiAjaW5jbHVkZSA8dGVzdHN1aXRlX2hvb2tzLmg+CiAKLWlu dCBtYWluKCkKK3ZvaWQKK3Rlc3QwMSgpCiB7CiAgIHVzaW5nIG5hbWVzcGFj ZSBzdGQ7CiAKQEAgLTM4LDMgKzM5LDI2IEBAIGludCBtYWluKCkKICAgVkVS SUZZKCAhIGFmLnRlc3QobWVtb3J5X29yZGVyX2FjcXVpcmUpICk7CiAgIFZF UklGWSggISBjYWYudGVzdChtZW1vcnlfb3JkZXJfYWNxdWlyZSkgKTsKIH0K Kwordm9pZAordGVzdDAyKCkKK3sKKyAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsK KworICBhdG9taWNfZmxhZyBhZnt0cnVlfTsKKyAgY29uc3QgYXRvbWljX2Zs YWcmIGNhZiA9IGFmOworCisgIFZFUklGWSggYXRvbWljX2ZsYWdfdGVzdF9l eHBsaWNpdCgmYWYsIG1lbW9yeV9vcmRlcl9hY3F1aXJlKSApOworICBWRVJJ RlkoIGF0b21pY19mbGFnX3Rlc3RfZXhwbGljaXQoJmNhZiwgbWVtb3J5X29y ZGVyX2FjcXVpcmUpICk7CisgIGFmLmNsZWFyKG1lbW9yeV9vcmRlcl9yZWxl YXNlKTsKKyAgVkVSSUZZKCAhIGF0b21pY19mbGFnX3Rlc3RfZXhwbGljaXQo JmFmLCBtZW1vcnlfb3JkZXJfYWNxdWlyZSkgKTsKKyAgVkVSSUZZKCAhIGF0 b21pY19mbGFnX3Rlc3RfZXhwbGljaXQoJmNhZiwgbWVtb3J5X29yZGVyX2Fj cXVpcmUpICk7Cit9CisKK2ludAorbWFpbigpCit7CisgIHRlc3QwMSgpOwor ICB0ZXN0MDIoKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvdGVzdHN1aXRlLzI5X2F0b21pY3MvYXRvbWljX2ZsYWcvdGVz dC9pbXBsaWNpdC5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjlfYXRv bWljcy9hdG9taWNfZmxhZy90ZXN0L2ltcGxpY2l0LmNjCmluZGV4IGNjZTg3 M2ZhNTUzLi4yODQwMDU1NDMzZiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L3Rlc3RzdWl0ZS8yOV9hdG9taWNzL2F0b21pY19mbGFnL3Rlc3QvaW1wbGlj aXQuY2MKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOV9hdG9taWNz L2F0b21pY19mbGFnL3Rlc3QvaW1wbGljaXQuY2MKQEAgLTIyLDcgKzIyLDgg QEAKICNpbmNsdWRlIDxhdG9taWM+CiAjaW5jbHVkZSA8dGVzdHN1aXRlX2hv b2tzLmg+CiAKLWludCBtYWluKCkKK3ZvaWQKK3Rlc3QwMSgpCiB7CiAgIHVz aW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTM4LDMgKzM5LDI2IEBAIGludCBt YWluKCkKICAgVkVSSUZZKCAhIGFmLnRlc3QoKSApOwogICBWRVJJRlkoICEg Y2FmLnRlc3QoKSApOwogfQorCit2b2lkCit0ZXN0MDIoKQoreworICB1c2lu ZyBuYW1lc3BhY2Ugc3RkOworCisgIGF0b21pY19mbGFnIGFme3RydWV9Owor ICBjb25zdCBhdG9taWNfZmxhZyYgY2FmID0gYWY7CisKKyAgVkVSSUZZKCBh dG9taWNfZmxhZ190ZXN0KCZhZikgKTsKKyAgVkVSSUZZKCBhdG9taWNfZmxh Z190ZXN0KCZjYWYpICk7CisgIGFmLmNsZWFyKG1lbW9yeV9vcmRlcl9yZWxl YXNlKTsKKyAgVkVSSUZZKCAhIGF0b21pY19mbGFnX3Rlc3QoJmFmKSApOwor ICBWRVJJRlkoICEgYXRvbWljX2ZsYWdfdGVzdCgmY2FmKSApOworfQorCitp bnQKK21haW4oKQoreworICB0ZXN0MDEoKTsKKyAgdGVzdDAyKCk7CisgIHJl dHVybiAwOworfQotLSAKMi4zOS4xCgo= --000000000000842b6a05f45ca084--