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.129.124]) by sourceware.org (Postfix) with ESMTPS id 1444438515D9 for ; Wed, 7 Sep 2022 11:56:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1444438515D9 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=1662551793; 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=ybGLemt7AtzEbwCaNxmKE994T0nJ+wP1mSREhXIi7pA=; b=Fj6xQaKoLIP9TBa8Kx6yLe92zeVhKKU7PqmfvgMV/FtFHwfL9kRx0RM4nf0Ldw7Rtj8ReR B2jA/4vRGGnK5uCGJuaRxAyoywloyTyKktpAbhnmGZ3wQtQf8mpUAcJa0U4lBdOwPC8ThC OHwleVNMsRF3xIncOuNRMb6iGXkIzPg= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-575-yghXq5fGMsuaLn60sP2wbQ-1; Wed, 07 Sep 2022 07:56:29 -0400 X-MC-Unique: yghXq5fGMsuaLn60sP2wbQ-1 Received: by mail-qt1-f198.google.com with SMTP id d20-20020a05622a05d400b00344997f0537so11473879qtb.0 for ; Wed, 07 Sep 2022 04:56:29 -0700 (PDT) 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; bh=ybGLemt7AtzEbwCaNxmKE994T0nJ+wP1mSREhXIi7pA=; b=r0AnxphN7RPg85jhomz5c3P5oJ97wBOrpW4yMUPn43yKLt9+j65MvxlGxdS826UwiY dhDO5ALA9DT09LIr3Jdo+fVX9KCM+4Md9T5Zdxj4c6eE/1NWXWPPltV/WRJ6iKRGfx33 owX0AZWQcx/yQL0fRKTmRUd5iVjLCPvQc0G37jfbR/qVnudSqCpHSecnc4lIh1dsqtVU Yi872IFyY5JB/ZlkJerHJ9qSXlhCYE9QwBQScSzNyNUZhfDD84KAtxisY1yCKaGgAcD+ N19tQF5uFGIvZ2ISOvUOPC7ooH5JRMZWw3rruzi1zrBwJF8bXFgY3AB8t8eyfn9WaN4z LZwQ== X-Gm-Message-State: ACgBeo2VmYGQ73VwMIuL8QZTMzgw329gHTAQ/LlbQJ7BiS16k2mnRMvr uBkh8R1t6DeSox+AifrTZ4JOVBAhXSY9PXWc/NiIeq7HudPEE0DlLRZQ3pA0GUhpoJIfnspxFuT LwEjj06GOummmIoMUM0TVg5+9az4dDiQ= X-Received: by 2002:a05:620a:2728:b0:6ba:e857:9375 with SMTP id b40-20020a05620a272800b006bae8579375mr2302729qkp.728.1662551789183; Wed, 07 Sep 2022 04:56:29 -0700 (PDT) X-Google-Smtp-Source: AA6agR7xxtojwm309RiYc3gAa6gU+6bMbaQjoXj3sMnGF8R4SP1PSqCQf4yOa/OAGO5y2Jrxcmvot5+Ootb46hO8pjc= X-Received: by 2002:a05:620a:2728:b0:6ba:e857:9375 with SMTP id b40-20020a05620a272800b006bae8579375mr2302717qkp.728.1662551788969; Wed, 07 Sep 2022 04:56:28 -0700 (PDT) MIME-Version: 1.0 References: <20210923180837.633173-1-rodgert@appliantology.com> <20210927141031.651313-1-rodgert@appliantology.com> In-Reply-To: From: Jonathan Wakely Date: Wed, 7 Sep 2022 12:56:17 +0100 Message-ID: Subject: Re: Patch ping (was Re: [PATCH] libstdc++: Clear padding bits in atomic compare_exchange) To: Thomas Rodgers Cc: Jakub Jelinek , gcc Patches , "libstdc++" , Thomas Rodgers X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000cdbe6905e815001c" X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000cdbe6905e815001c Content-Type: text/plain; charset="UTF-8" Here's a complete patch that combines the various incremental patches that have been going around. I'm testing this now. Please take a look. --000000000000cdbe6905e815001c Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l7rke3ux0 Y29tbWl0IDRhMGE4ZWM1YmMyYTg5MGExNTY4Zjk5ZWFjZTYxMTExNjZlOWY3MmQKQXV0aG9yOiBU aG9tYXMgUm9kZ2VycyA8dHJvZGdlcnNAcmVkaGF0LmNvbT4KRGF0ZTogICBUaHUgQXVnIDI1IDEx OjExOjQwIDIwMjIKCiAgICBsaWJzdGRjKys6IENsZWFyIHBhZGRpbmcgYml0cyBpbiBhdG9taWMg Y29tcGFyZV9leGNoYW5nZQogICAgCiAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIFAwNTI4IHdo aWNoIHJlcXVpcmVzIHRoYXQgcGFkZGluZyBiaXRzIG5vdAogICAgcGFydGljaXBhdGUgaW4gYXRv bWljIGNvbXBhcmUgZXhjaGFuZ2Ugb3BlcmF0aW9ucy4gQWxsIGFyZ3VtZW50cyB0byB0aGUKICAg IGdlbmVyaWMgdGVtcGxhdGUgYXJlICdzYW5pdGl6ZWQnIGJ5IHRoZSBfX2J1aWx0aW5fY2xlYXJf cGFkZGluZyBpbnRyaW5zaWMKICAgIGJlZm9yZSB0aGV5IGFyZSB1c2VkIGluIGNvbXBhcmlzb25z LiBUaGlzIHJlcXVpcmVzIHRoYXQgYW55IHN0b3JlcwogICAgYWxzbyBzYW5pdGl6ZSB0aGUgaW5j b21pbmcgdmFsdWUuCiAgICAKICAgIENvLWF1dGhvcmVkLWJ5OiBKYWt1YiBKZWxpbmVrIDxqYWt1 YkByZWRoYXQuY29tPgogICAgQ28tYXV0aG9yZWQtYnk6IEpvbmF0aGFuIFdha2VseSA8andha2Vs eUByZWRoYXQuY29tPgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgUm9kZ2VycyA8dHJv ZGdlcnNAcmVkaGF0LmNvbT4KICAgIAogICAgbGlic3RkYysrLXYzL0NoYW5nZUxvZzoKICAgIAog ICAgICAgICAgICAqIGluY2x1ZGUvYml0cy9hdG9taWNfYmFzZS5oIChfX2F0b21pY19pbXBsOjpf X21heWJlX2hhc19wYWRkaW5nKToKICAgICAgICAgICAgTmV3IGZ1bmN0aW9uLgogICAgICAgICAg ICAoX19hdG9taWNfaW1wbDo6Y2xlYXJfcGFkZGluZyk6IExpa2V3aXNlLgogICAgICAgICAgICAo X19hdG9taWNfaW1wbDo6X19jb21wYXJlX2V4Y2hhbmdlKTogTGlrZXdpc2UuCiAgICAgICAgICAg IChfX2F0b21pY19pbXBsOjpjb21wYXJlX2V4Y2hhbmdlX3dlYWspOiBEZWxlZ2F0ZSB0bwogICAg ICAgICAgICBfX2NvbXBhcmVfZXhjaGFuZ2UuCiAgICAgICAgICAgIChfX2F0b21pY19pbXBsOjpj b21wYXJlX2V4Y2hhbmdlX3N0cm9uZyk6IExpa2V3aXNlLgogICAgICAgICAgICAqIGluY2x1ZGUv c3RkL2F0b21pYyAoYXRvbWljPFQ+OjphdG9taWMoVCkpOiBDbGVhciBwYWRkaW5nIHdoZW4KICAg ICAgICAgICAgcG9zc2libGUgaW4gYSBjb25zdGV4cHIgZnVuY3Rpb24uCiAgICAgICAgICAgIChh dG9taWM6OnN0b3JlKTogQ2xlYXIgcGFkZGluZy4KICAgICAgICAgICAgKGF0b21pYzo6ZXhjaGFu Z2UpOiBMaWtld2lzZS4KICAgICAgICAgICAgKGF0b21pYzo6Y29tcGFyZV9leGNoYW5nZV93ZWFr KTogVXNlIF9fY29tcGFyZV9leGNoYW5nZS4KICAgICAgICAgICAgKGF0b21pYzo6Y29tcGFyZV9l eGNoYW5nZV9zdHJvbmcpOiBMaWtld2lzZS4KICAgICAgICAgICAgKiB0ZXN0c3VpdGUvMjlfYXRv bWljcy9hdG9taWMvY29tcGFyZV9leGNoYW5nZV9wYWRkaW5nLmNjOiBOZXcKICAgICAgICAgICAg dGVzdC4KICAgICAgICAgICAgKiB0ZXN0c3VpdGUvMjlfYXRvbWljcy9hdG9taWNfcmVmL2NvbXBh cmVfZXhjaGFuZ2VfcGFkZGluZy5jYzoKICAgICAgICAgICAgTmV3IHRlc3QuCgpkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9hdG9taWNfYmFzZS5oIGIvbGlic3RkYysrLXYz L2luY2x1ZGUvYml0cy9hdG9taWNfYmFzZS5oCmluZGV4IGQyOWU0NDM0MTc3Li4yOTMxNTU0N2Fh YiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9hdG9taWNfYmFzZS5oCisr KyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYXRvbWljX2Jhc2UuaApAQCAtMzMsNiArMzMs NyBAQAogI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgogCiAjaW5jbHVkZSA8Yml0cy9jKytjb25m aWcuaD4KKyNpbmNsdWRlIDxuZXc+IC8vIEZvciBwbGFjZW1lbnQgbmV3CiAjaW5jbHVkZSA8c3Rk aW50Lmg+CiAjaW5jbHVkZSA8Yml0cy9hdG9taWNfbG9ja2ZyZWVfZGVmaW5lcy5oPgogI2luY2x1 ZGUgPGJpdHMvbW92ZS5oPgpAQCAtOTUyLDE5ICs5NTMsNzYgQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KICAgICAgIHsgcmV0dXJuIF9fYXRvbWljX2ZldGNoX3N1YigmX01fcCwg X01fdHlwZV9zaXplKF9fZCksIGludChfX20pKTsgfQogICAgIH07CiAKLSAgLy8vIEBlbmRjb25k CisgIG5hbWVzcGFjZSBfX2F0b21pY19pbXBsCisgIHsKKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBk ZXRhaWxzIG9mIGF0b21pYyBwYWRkaW5nIGhhbmRsaW5nCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt ZSBfVHA+CisgICAgICBjb25zdGV4cHIgYm9vbAorICAgICAgX19tYXliZV9oYXNfcGFkZGluZygp CisgICAgICB7CisjaWYgISBfX2hhc19idWlsdGluKF9fYnVpbHRpbl9jbGVhcl9wYWRkaW5nKQor CXJldHVybiBmYWxzZTsKKyNlbGlmIF9faGFzX2J1aWx0aW4oX19oYXNfdW5pcXVlX29iamVjdF9y ZXByZXNlbnRhdGlvbnMpCisJcmV0dXJuICFfX2hhc191bmlxdWVfb2JqZWN0X3JlcHJlc2VudGF0 aW9ucyhfVHApCisJICAmJiAhaXNfc2FtZTxfVHAsIGZsb2F0Pjo6dmFsdWUgJiYgIWlzX3NhbWU8 X1RwLCBkb3VibGU+Ojp2YWx1ZTsKKyNlbHNlCisJcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICAg IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KKyAgICAgIF9HTElCQ1hYX0FMV0FZU19J TkxJTkUgX1RwKgorICAgICAgX19jbGVhcl9wYWRkaW5nKF9UcCYgX192YWwpIG5vZXhjZXB0Cisg ICAgICB7CisJYXV0byogX19wdHIgPSBzdGQ6Ol9fYWRkcmVzc29mKF9fdmFsKTsKKyNpZiBfX2hh c19idWlsdGluKF9fYnVpbHRpbl9jbGVhcl9wYWRkaW5nKQorCWlmIF9HTElCQ1hYMTdfQ09OU1RF WFBSIChfX2F0b21pY19pbXBsOjpfX21heWJlX2hhc19wYWRkaW5nPF9UcD4oKSkKKwkgIF9fYnVp bHRpbl9jbGVhcl9wYWRkaW5nKF9fcHRyKTsKKyNlbmRpZgorCXJldHVybiBfX3B0cjsKKyAgICAg IH0KKworICAgIC8vIFJlbW92ZSB2b2xhdGlsZSBhbmQgY3JlYXRlIGEgbm9uLWRlZHVjZWQgY29u dGV4dCBmb3IgdmFsdWUgYXJndW1lbnRzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KKyAg ICAgIHVzaW5nIF9WYWwgPSB0eXBlbmFtZSByZW1vdmVfdm9sYXRpbGU8X1RwPjo6dHlwZTsKKwor ICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KKyAgICAgIF9HTElCQ1hYX0FMV0FZU19JTkxJTkUg Ym9vbAorICAgICAgX19jb21wYXJlX2V4Y2hhbmdlKF9UcCYgX192YWwsIF9WYWw8X1RwPiYgX19l LCBfVmFsPF9UcD4mIF9faSwKKwkJCSBib29sIF9fd2VhaywgbWVtb3J5X29yZGVyIF9fcywgbWVt b3J5X29yZGVyIF9fZikgbm9leGNlcHQKKyAgICAgIHsKKwlfX2dsaWJjeHhfYXNzZXJ0KF9faXNf dmFsaWRfY21wZXhjaF9mYWlsdXJlX29yZGVyKF9fZikpOworCisJdXNpbmcgX1ZwID0gX1ZhbDxf VHA+OworCisJaWYgX0dMSUJDWFgxN19DT05TVEVYUFIgKF9fYXRvbWljX2ltcGw6Ol9fbWF5YmVf aGFzX3BhZGRpbmc8X1ZwPigpKQorCSAgeworCSAgICAvLyBXZSBtdXN0IG5vdCBtb2RpZnkgX19l IG9uIHN1Y2Nlc3MsIHNvIGNhbm5vdCBjbGVhciBpdHMgcGFkZGluZy4KKwkgICAgLy8gQ29weSBp bnRvIGEgYnVmZmVyIGFuZCBjbGVhciB0aGF0LCB0aGVuIGNvcHkgYmFjayBvbiBmYWlsdXJlLgor CSAgICBhbGlnbmFzKF9WcCkgdW5zaWduZWQgY2hhciBfX2J1ZltzaXplb2YoX1ZwKV07CisJICAg IF9WcCogX19leHAgPSA6Om5ldygodm9pZCopX19idWYpIF9WcChfX2UpOworCSAgICBfX2F0b21p Y19pbXBsOjpfX2NsZWFyX3BhZGRpbmcoKl9fZXhwKTsKKwkgICAgaWYgKF9fYXRvbWljX2NvbXBh cmVfZXhjaGFuZ2Uoc3RkOjpfX2FkZHJlc3NvZihfX3ZhbCksIF9fZXhwLAorCQkJCQkgIF9fYXRv bWljX2ltcGw6Ol9fY2xlYXJfcGFkZGluZyhfX2kpLAorCQkJCQkgIF9fd2VhaywgaW50KF9fcyks IGludChfX2YpKSkKKwkgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgX19idWlsdGluX21lbWNweShz dGQ6Ol9fYWRkcmVzc29mKF9fZSksIF9fZXhwLCBzaXplb2YoX1ZwKSk7CisJICAgIHJldHVybiBm YWxzZTsKKwkgIH0KKwllbHNlCisJICByZXR1cm4gX19hdG9taWNfY29tcGFyZV9leGNoYW5nZShz dGQ6Ol9fYWRkcmVzc29mKF9fdmFsKSwKKwkJCQkJICAgc3RkOjpfX2FkZHJlc3NvZihfX2UpLAor CQkJCQkgICBzdGQ6Ol9fYWRkcmVzc29mKF9faSksCisJCQkJCSAgIF9fd2VhaywgaW50KF9fcyks IGludChfX2YpKTsKKyAgICAgIH0KKyAgfSAvLyBuYW1lc3BhY2UgX19hdG9taWNfaW1wbAogCiAj aWYgX19jcGx1c3BsdXMgPiAyMDE3MDNMCi0gIC8vLyBAY29uZCB1bmRvY3VtZW50ZWQKLQogICAv LyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIGF0b21pY19yZWYgYW5kIGF0b21pYzxmbG9hdGlu Zy1wb2ludD4uCiAgIG5hbWVzcGFjZSBfX2F0b21pY19pbXBsCiAgIHsKLSAgICAvLyBSZW1vdmUg dm9sYXRpbGUgYW5kIGNyZWF0ZSBhIG5vbi1kZWR1Y2VkIGNvbnRleHQgZm9yIHZhbHVlIGFyZ3Vt ZW50cy4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+Ci0gICAgICB1c2luZyBfVmFsID0gcmVt b3ZlX3ZvbGF0aWxlX3Q8X1RwPjsKLQotICAgIC8vIEFzIGFib3ZlLCBidXQgZm9yIGRpZmZlcmVu Y2VfdHlwZSBhcmd1bWVudHMuCisgICAgLy8gTGlrZSBfVmFsPFQ+IGFib3ZlLCBidXQgZm9yIGRp ZmZlcmVuY2VfdHlwZSBhcmd1bWVudHMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAg ICAgdXNpbmcgX0RpZmYgPSBfX2NvbmRpdGlvbmFsX3Q8aXNfcG9pbnRlcl92PF9UcD4sIHB0cmRp ZmZfdCwgX1ZhbDxfVHA+PjsKIApAQCAtOTc5LDcgKzEwMzcsOSBAQCBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgICAgIF9HTElC Q1hYX0FMV0FZU19JTkxJTkUgdm9pZAogICAgICAgc3RvcmUoX1RwKiBfX3B0ciwgX1ZhbDxfVHA+ IF9fdCwgbWVtb3J5X29yZGVyIF9fbSkgbm9leGNlcHQKLSAgICAgIHsgX19hdG9taWNfc3RvcmUo X19wdHIsIHN0ZDo6X19hZGRyZXNzb2YoX190KSwgaW50KF9fbSkpOyB9CisgICAgICB7CisJX19h dG9taWNfc3RvcmUoX19wdHIsIF9fYXRvbWljX2ltcGw6Ol9fY2xlYXJfcGFkZGluZyhfX3QpLCBp bnQoX19tKSk7CisgICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICAgICBf R0xJQkNYWF9BTFdBWVNfSU5MSU5FIF9WYWw8X1RwPgpAQCAtOTk3LDcgKzEwNTcsOCBAQCBfR0xJ QkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgewogICAgICAgICBhbGlnbmFzKF9U cCkgdW5zaWduZWQgY2hhciBfX2J1ZltzaXplb2YoX1RwKV07CiAJYXV0byogX19kZXN0ID0gcmVp bnRlcnByZXRfY2FzdDxfVmFsPF9UcD4qPihfX2J1Zik7Ci0JX19hdG9taWNfZXhjaGFuZ2UoX19w dHIsIHN0ZDo6X19hZGRyZXNzb2YoX19kZXNpcmVkKSwgX19kZXN0LCBpbnQoX19tKSk7CisJX19h dG9taWNfZXhjaGFuZ2UoX19wdHIsIF9fYXRvbWljX2ltcGw6Ol9fY2xlYXJfcGFkZGluZyhfX2Rl c2lyZWQpLAorCQkJICBfX2Rlc3QsIGludChfX20pKTsKIAlyZXR1cm4gKl9fZGVzdDsKICAgICAg IH0KIApAQCAtMTAwNywxMSArMTA2OCw4IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAJCQkgICAgX1ZhbDxfVHA+IF9fZGVzaXJlZCwgbWVtb3J5X29yZGVyIF9fc3VjY2VzcywK IAkJCSAgICBtZW1vcnlfb3JkZXIgX19mYWlsdXJlKSBub2V4Y2VwdAogICAgICAgewotCV9fZ2xp YmN4eF9hc3NlcnQoX19pc192YWxpZF9jbXBleGNoX2ZhaWx1cmVfb3JkZXIoX19mYWlsdXJlKSk7 Ci0KLQlyZXR1cm4gX19hdG9taWNfY29tcGFyZV9leGNoYW5nZShfX3B0ciwgc3RkOjpfX2FkZHJl c3NvZihfX2V4cGVjdGVkKSwKLQkJCQkJIHN0ZDo6X19hZGRyZXNzb2YoX19kZXNpcmVkKSwgdHJ1 ZSwKLQkJCQkJIGludChfX3N1Y2Nlc3MpLCBpbnQoX19mYWlsdXJlKSk7CisJcmV0dXJuIF9fYXRv bWljX2ltcGw6Ol9fY29tcGFyZV9leGNoYW5nZSgqX19wdHIsIF9fZXhwZWN0ZWQsIF9fZGVzaXJl ZCwKKwkJCQkJCSB0cnVlLCBfX3N1Y2Nlc3MsIF9fZmFpbHVyZSk7CiAgICAgICB9CiAKICAgICB0 ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CkBAIC0xMDIwLDExICsxMDc4LDggQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KIAkJCSAgICAgIF9WYWw8X1RwPiBfX2Rlc2lyZWQsIG1lbW9y eV9vcmRlciBfX3N1Y2Nlc3MsCiAJCQkgICAgICBtZW1vcnlfb3JkZXIgX19mYWlsdXJlKSBub2V4 Y2VwdAogICAgICAgewotCV9fZ2xpYmN4eF9hc3NlcnQoX19pc192YWxpZF9jbXBleGNoX2ZhaWx1 cmVfb3JkZXIoX19mYWlsdXJlKSk7Ci0KLQlyZXR1cm4gX19hdG9taWNfY29tcGFyZV9leGNoYW5n ZShfX3B0ciwgc3RkOjpfX2FkZHJlc3NvZihfX2V4cGVjdGVkKSwKLQkJCQkJIHN0ZDo6X19hZGRy ZXNzb2YoX19kZXNpcmVkKSwgZmFsc2UsCi0JCQkJCSBpbnQoX19zdWNjZXNzKSwgaW50KF9fZmFp bHVyZSkpOworCXJldHVybiBfX2F0b21pY19pbXBsOjpfX2NvbXBhcmVfZXhjaGFuZ2UoKl9fcHRy LCBfX2V4cGVjdGVkLCBfX2Rlc2lyZWQsCisJCQkJCQkgZmFsc2UsIF9fc3VjY2VzcywgX19mYWls dXJlKTsKICAgICAgIH0KIAogI2lmIF9fY3BwX2xpYl9hdG9taWNfd2FpdApAQCAtMTk1NSw5ICsy MDEwLDkgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogICAgICAgX1RwKiog X01fcHRyOwogICAgIH07CisjZW5kaWYgLy8gQysrMmEKIAogICAvLy8gQGVuZGNvbmQKLSNlbmRp ZiAvLyBDKysyYQogCiAgIC8vLyBAfSBncm91cCBhdG9taWNzCiAKZGlmZiAtLWdpdCBhL2xpYnN0 ZGMrKy12My9pbmNsdWRlL3N0ZC9hdG9taWMgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvYXRv bWljCmluZGV4IDcwMDU1YjhmYTgzLi5iOTEzOTYwMzM2ZCAxMDA2NDQKLS0tIGEvbGlic3RkYysr LXYzL2luY2x1ZGUvc3RkL2F0b21pYworKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvYXRv bWljCkBAIC0yMzAsNyArMjMwLDEzIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CiAgICAgICBhdG9taWMmIG9wZXJhdG9yPShjb25zdCBhdG9taWMmKSA9IGRlbGV0ZTsKICAgICAg IGF0b21pYyYgb3BlcmF0b3I9KGNvbnN0IGF0b21pYyYpIHZvbGF0aWxlID0gZGVsZXRlOwogCi0g ICAgICBjb25zdGV4cHIgYXRvbWljKF9UcCBfX2kpIG5vZXhjZXB0IDogX01faShfX2kpIHsgfQor ICAgICAgY29uc3RleHByIGF0b21pYyhfVHAgX19pKSBub2V4Y2VwdCA6IF9NX2koX19pKQorICAg ICAgeworI2lmIF9fY3BsdXNwbHVzID49IDIwMTQwMkwgJiYgX19oYXNfYnVpbHRpbihfX2J1aWx0 aW5fY2xlYXJfcGFkZGluZykKKwlpZiBfR0xJQkNYWDE3X0NPTlNURVhQUiAoX19hdG9taWNfaW1w bDo6X19tYXliZV9oYXNfcGFkZGluZzxfVHA+KCkpCisJICBfX2J1aWx0aW5fY2xlYXJfcGFkZGlu ZyhzdGQ6Ol9fYWRkcmVzc29mKF9NX2kpKTsKKyNlbmRpZgorICAgICAgfQogCiAgICAgICBvcGVy YXRvciBfVHAoKSBjb25zdCBub2V4Y2VwdAogICAgICAgeyByZXR1cm4gbG9hZCgpOyB9CkBAIC0y NzAsMTMgKzI3NiwxNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAg dm9pZAogICAgICAgc3RvcmUoX1RwIF9faSwgbWVtb3J5X29yZGVyIF9fbSA9IG1lbW9yeV9vcmRl cl9zZXFfY3N0KSBub2V4Y2VwdAogICAgICAgewotCV9fYXRvbWljX3N0b3JlKHN0ZDo6X19hZGRy ZXNzb2YoX01faSksIHN0ZDo6X19hZGRyZXNzb2YoX19pKSwgaW50KF9fbSkpOworCV9fYXRvbWlj X3N0b3JlKHN0ZDo6X19hZGRyZXNzb2YoX01faSksCisJCSAgICAgICBfX2F0b21pY19pbXBsOjpf X2NsZWFyX3BhZGRpbmcoX19pKSwKKwkJICAgICAgIGludChfX20pKTsKICAgICAgIH0KIAogICAg ICAgdm9pZAogICAgICAgc3RvcmUoX1RwIF9faSwgbWVtb3J5X29yZGVyIF9fbSA9IG1lbW9yeV9v cmRlcl9zZXFfY3N0KSB2b2xhdGlsZSBub2V4Y2VwdAogICAgICAgewotCV9fYXRvbWljX3N0b3Jl KHN0ZDo6X19hZGRyZXNzb2YoX01faSksIHN0ZDo6X19hZGRyZXNzb2YoX19pKSwgaW50KF9fbSkp OworCV9fYXRvbWljX3N0b3JlKHN0ZDo6X19hZGRyZXNzb2YoX01faSksCisJCSAgICAgICBfX2F0 b21pY19pbXBsOjpfX2NsZWFyX3BhZGRpbmcoX19pKSwKKwkJICAgICAgIGludChfX20pKTsKICAg ICAgIH0KIAogICAgICAgX1RwCkBAIC0zMDIsNyArMzEyLDggQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KICAgICAgIHsKICAgICAgICAgYWxpZ25hcyhfVHApIHVuc2lnbmVkIGNo YXIgX19idWZbc2l6ZW9mKF9UcCldOwogCV9UcCogX19wdHIgPSByZWludGVycHJldF9jYXN0PF9U cCo+KF9fYnVmKTsKLQlfX2F0b21pY19leGNoYW5nZShzdGQ6Ol9fYWRkcmVzc29mKF9NX2kpLCBz dGQ6Ol9fYWRkcmVzc29mKF9faSksCisJX19hdG9taWNfZXhjaGFuZ2Uoc3RkOjpfX2FkZHJlc3Nv ZihfTV9pKSwKKwkJCSAgX19hdG9taWNfaW1wbDo6X19jbGVhcl9wYWRkaW5nKF9faSksCiAJCQkg IF9fcHRyLCBpbnQoX19tKSk7CiAJcmV0dXJuICpfX3B0cjsKICAgICAgIH0KQEAgLTMxMyw3ICsz MjQsOCBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgewogICAgICAg ICBhbGlnbmFzKF9UcCkgdW5zaWduZWQgY2hhciBfX2J1ZltzaXplb2YoX1RwKV07CiAJX1RwKiBf X3B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8X1RwKj4oX19idWYpOwotCV9fYXRvbWljX2V4Y2hhbmdl KHN0ZDo6X19hZGRyZXNzb2YoX01faSksIHN0ZDo6X19hZGRyZXNzb2YoX19pKSwKKwlfX2F0b21p Y19leGNoYW5nZShzdGQ6Ol9fYWRkcmVzc29mKF9NX2kpLAorCQkJICBfX2F0b21pY19pbXBsOjpf X2NsZWFyX3BhZGRpbmcoX19pKSwKIAkJCSAgX19wdHIsIGludChfX20pKTsKIAlyZXR1cm4gKl9f cHRyOwogICAgICAgfQpAQCAtMzIyLDI0ICszMzQsMTYgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICAgICAgIGNvbXBhcmVfZXhjaGFuZ2Vfd2VhayhfVHAmIF9fZSwgX1RwIF9f aSwgbWVtb3J5X29yZGVyIF9fcywKIAkJCSAgICBtZW1vcnlfb3JkZXIgX19mKSBub2V4Y2VwdAog ICAgICAgewotCV9fZ2xpYmN4eF9hc3NlcnQoX19pc192YWxpZF9jbXBleGNoX2ZhaWx1cmVfb3Jk ZXIoX19mKSk7Ci0KLQlyZXR1cm4gX19hdG9taWNfY29tcGFyZV9leGNoYW5nZShzdGQ6Ol9fYWRk cmVzc29mKF9NX2kpLAotCQkJCQkgc3RkOjpfX2FkZHJlc3NvZihfX2UpLAotCQkJCQkgc3RkOjpf X2FkZHJlc3NvZihfX2kpLAotCQkJCQkgdHJ1ZSwgaW50KF9fcyksIGludChfX2YpKTsKKwlyZXR1 cm4gX19hdG9taWNfaW1wbDo6X19jb21wYXJlX2V4Y2hhbmdlKF9NX2ksIF9fZSwgX19pLCB0cnVl LAorCQkJCQkJIF9fcywgX19mKTsKICAgICAgIH0KIAogICAgICAgYm9vbAogICAgICAgY29tcGFy ZV9leGNoYW5nZV93ZWFrKF9UcCYgX19lLCBfVHAgX19pLCBtZW1vcnlfb3JkZXIgX19zLAogCQkJ ICAgIG1lbW9yeV9vcmRlciBfX2YpIHZvbGF0aWxlIG5vZXhjZXB0CiAgICAgICB7Ci0JX19nbGli Y3h4X2Fzc2VydChfX2lzX3ZhbGlkX2NtcGV4Y2hfZmFpbHVyZV9vcmRlcihfX2YpKTsKLQotCXJl dHVybiBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlKHN0ZDo6X19hZGRyZXNzb2YoX01faSksCi0J CQkJCSBzdGQ6Ol9fYWRkcmVzc29mKF9fZSksCi0JCQkJCSBzdGQ6Ol9fYWRkcmVzc29mKF9faSks Ci0JCQkJCSB0cnVlLCBpbnQoX19zKSwgaW50KF9fZikpOworCXJldHVybiBfX2F0b21pY19pbXBs OjpfX2NvbXBhcmVfZXhjaGFuZ2UoX01faSwgX19lLCBfX2ksIHRydWUsCisJCQkJCQkgX19zLCBf X2YpOwogICAgICAgfQogCiAgICAgICBib29sCkBAIC0zNTgsMjQgKzM2MiwxNiBAQCBfR0xJQkNY WF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgY29tcGFyZV9leGNoYW5nZV9zdHJvbmco X1RwJiBfX2UsIF9UcCBfX2ksIG1lbW9yeV9vcmRlciBfX3MsCiAJCQkgICAgICBtZW1vcnlfb3Jk ZXIgX19mKSBub2V4Y2VwdAogICAgICAgewotCV9fZ2xpYmN4eF9hc3NlcnQoX19pc192YWxpZF9j bXBleGNoX2ZhaWx1cmVfb3JkZXIoX19mKSk7Ci0KLQlyZXR1cm4gX19hdG9taWNfY29tcGFyZV9l eGNoYW5nZShzdGQ6Ol9fYWRkcmVzc29mKF9NX2kpLAotCQkJCQkgc3RkOjpfX2FkZHJlc3NvZihf X2UpLAotCQkJCQkgc3RkOjpfX2FkZHJlc3NvZihfX2kpLAotCQkJCQkgZmFsc2UsIGludChfX3Mp LCBpbnQoX19mKSk7CisJcmV0dXJuIF9fYXRvbWljX2ltcGw6Ol9fY29tcGFyZV9leGNoYW5nZShf TV9pLCBfX2UsIF9faSwgZmFsc2UsCisJCQkJCQkgX19zLCBfX2YpOwogICAgICAgfQogCiAgICAg ICBib29sCiAgICAgICBjb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhfVHAmIF9fZSwgX1RwIF9faSwg bWVtb3J5X29yZGVyIF9fcywKIAkJCSAgICAgIG1lbW9yeV9vcmRlciBfX2YpIHZvbGF0aWxlIG5v ZXhjZXB0CiAgICAgICB7Ci0JX19nbGliY3h4X2Fzc2VydChfX2lzX3ZhbGlkX2NtcGV4Y2hfZmFp bHVyZV9vcmRlcihfX2YpKTsKLQotCXJldHVybiBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlKHN0 ZDo6X19hZGRyZXNzb2YoX01faSksCi0JCQkJCSBzdGQ6Ol9fYWRkcmVzc29mKF9fZSksCi0JCQkJ CSBzdGQ6Ol9fYWRkcmVzc29mKF9faSksCi0JCQkJCSBmYWxzZSwgaW50KF9fcyksIGludChfX2Yp KTsKKwlyZXR1cm4gX19hdG9taWNfaW1wbDo6X19jb21wYXJlX2V4Y2hhbmdlKF9NX2ksIF9fZSwg X19pLCBmYWxzZSwKKwkJCQkJCSBfX3MsIF9fZik7CiAgICAgICB9CiAKICAgICAgIGJvb2wKZGlm ZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjlfYXRvbWljcy9hdG9taWMvY29tcGFy ZV9leGNoYW5nZV9wYWRkaW5nLmNjIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOV9hdG9taWNz L2F0b21pYy9jb21wYXJlX2V4Y2hhbmdlX3BhZGRpbmcuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmM0YWI4NzZkYjJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlic3Rk YysrLXYzL3Rlc3RzdWl0ZS8yOV9hdG9taWNzL2F0b21pYy9jb21wYXJlX2V4Y2hhbmdlX3BhZGRp bmcuY2MKQEAgLTAsMCArMSw0MiBAQAorLy8geyBkZy1vcHRpb25zICItc3RkPWdudSsrMjAiIH0K Ky8vIHsgZGctZG8gcnVuIHsgdGFyZ2V0IGMrKzIwIH0gfQorLy8geyBkZy1hZGQtb3B0aW9ucyBs aWJhdG9taWMgfQorCisjaW5jbHVkZSA8YXRvbWljPgorCisjaW5jbHVkZSA8dGVzdHN1aXRlX2hv b2tzLmg+CisKK3N0cnVjdCBTIHsgY2hhciBjOyBzaG9ydCBzOyB9OworCit2b2lkIF9fYXR0cmli dXRlX18oKG5vaW5saW5lLG5vaXBhKSkKK2ZpbGxfc3RydWN0KFMmIHMpCit7IF9fYnVpbHRpbl9t ZW1zZXQoJnMsIDB4ZmYsIHNpemVvZihTKSk7IH0KKworYm9vbAorY29tcGFyZV9zdHJ1Y3QoY29u c3QgUyYgYSwgY29uc3QgUyYgYikKK3sgcmV0dXJuIF9fYnVpbHRpbl9tZW1jbXAoJmEsICZiLCBz aXplb2YoUykpID09IDA7IH0KKworaW50CittYWluICgpCit7CisgIFMgczsKKyAgZmlsbF9zdHJ1 Y3Qocyk7CisgIHMuYyA9ICdhJzsKKyAgcy5zID0gNDI7CisKKyAgc3RkOjphdG9taWM8Uz4gYXN7 IHMgfTsKKyAgYXV0byB0cyA9IGFzLmxvYWQoKTsKKyAgVkVSSUZZKCAhY29tcGFyZV9zdHJ1Y3Qo cywgdHMpICk7IC8vIHBhZGRpbmcgY2xlYXJlZCBvbiBjb25zdHJ1Y3Rpb24KKyAgYXMuZXhjaGFu Z2Uocyk7CisgIGF1dG8gZXMgPSBhcy5sb2FkKCk7CisgIFZFUklGWSggY29tcGFyZV9zdHJ1Y3Qo dHMsIGVzKSApOyAvLyBwYWRkaW5nIGNsZWFyZWQgb24gZXhjaGFuZ2UKKworICBTIG47CisgIGZp bGxfc3RydWN0KG4pOworICBuLmMgPSAnYic7CisgIG4ucyA9IDcxOworICAvLyBwYWRkaW5nIGNs ZWFyZWQgb24gY29tcGV4Y2hnCisgIFZFUklGWSggYXMuY29tcGFyZV9leGNoYW5nZV93ZWFrKHMs IG4pICk7CisgIFZFUklGWSggYXMuY29tcGFyZV9leGNoYW5nZV9zdHJvbmcobiwgcykgKTsKKyAg cmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI5X2F0b21p Y3MvYXRvbWljX3JlZi9jb21wYXJlX2V4Y2hhbmdlX3BhZGRpbmcuY2MgYi9saWJzdGRjKystdjMv dGVzdHN1aXRlLzI5X2F0b21pY3MvYXRvbWljX3JlZi9jb21wYXJlX2V4Y2hhbmdlX3BhZGRpbmcu Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFiMWExMmRkZGRhCi0t LSAvZGV2L251bGwKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOV9hdG9taWNzL2F0b21p Y19yZWYvY29tcGFyZV9leGNoYW5nZV9wYWRkaW5nLmNjCkBAIC0wLDAgKzEsNDMgQEAKKy8vIHsg ZGctb3B0aW9ucyAiLXN0ZD1nbnUrKzIwIiB9CisvLyB7IGRnLWRvIHJ1biB7IHRhcmdldCBjKysy MCB9IH0KKy8vIHsgZGctYWRkLW9wdGlvbnMgbGliYXRvbWljIH0KKworI2luY2x1ZGUgPGF0b21p Yz4KKworI2luY2x1ZGUgPHRlc3RzdWl0ZV9ob29rcy5oPgorCitzdHJ1Y3QgUyB7IGNoYXIgYzsg c2hvcnQgczsgfTsKKwordm9pZCBfX2F0dHJpYnV0ZV9fKChub2lubGluZSxub2lwYSkpCitmaWxs X3N0cnVjdChTJiBzKQoreyBfX2J1aWx0aW5fbWVtc2V0KCZzLCAweGZmLCBzaXplb2YoUykpOyB9 CisKK2Jvb2wKK2NvbXBhcmVfc3RydWN0KGNvbnN0IFMmIGEsIGNvbnN0IFMmIGIpCit7IHJldHVy biBfX2J1aWx0aW5fbWVtY21wKCZhLCAmYiwgc2l6ZW9mKFMpKSA9PSAwOyB9CisKK2ludAorbWFp biAoKQoreworICBTIHM7CisgIGZpbGxfc3RydWN0KHMpOworICBzLmMgPSAnYSc7CisgIHMucyA9 IDQyOworCisgIFMgc3N7IHMgfTsKKyAgc3RkOjphdG9taWNfcmVmPFM+IGFzeyBzIH07CisgIGF1 dG8gdHMgPSBhcy5sb2FkKCk7CisgIFZFUklGWSggIWNvbXBhcmVfc3RydWN0KHNzLCB0cykgKTsg Ly8gcGFkZGluZyBjbGVhcmVkIG9uIGNvbnN0cnVjdGlvbgorICBhcy5leGNoYW5nZShzcyk7Cisg IGF1dG8gZXMgPSBhcy5sb2FkKCk7CisgIFZFUklGWSggY29tcGFyZV9zdHJ1Y3QodHMsIGVzKSAp OyAvLyBwYWRkaW5nIGNsZWFyZWQgb24gZXhjaGFuZ2UKKworICBTIG47CisgIGZpbGxfc3RydWN0 KG4pOworICBuLmMgPSAnYic7CisgIG4ucyA9IDcxOworICAvLyBwYWRkaW5nIGNsZWFyZWQgb24g Y29tcGV4Y2hnCisgIFZFUklGWSggYXMuY29tcGFyZV9leGNoYW5nZV93ZWFrKHMsIG4pICk7Cisg IFZFUklGWSggYXMuY29tcGFyZV9leGNoYW5nZV9zdHJvbmcobiwgcykgKTsKKyAgcmV0dXJuIDA7 Cit9Cg== --000000000000cdbe6905e815001c--