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 DE47B3856DC3 for ; Thu, 13 Oct 2022 15:31:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DE47B3856DC3 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=1665675060; 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; bh=sW/gYUrlawUVl1s6yjjfYWzkla69td0Dc90dhqHKA4E=; b=gvRxy+9CGkNXSIe5S/n1MYuUr9d0RyMWYexBDlfHj6AYXfoy8QMXZI/nnsh7KLpuCgTJEf 24gykDU5s1HSM6xAUz3zM2GtT0mF26jOn1e+LK2DE2bk8tEyLwRggZBCL5pzXhPVtZY3zj P9QhA98v3iaafQyiOLj1zF3mWh2paJs= 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-10-1G2ax6iPONyJ3WvJgyEssA-1; Thu, 13 Oct 2022 11:30:59 -0400 X-MC-Unique: 1G2ax6iPONyJ3WvJgyEssA-1 Received: by mail-qt1-f198.google.com with SMTP id bv21-20020a05622a0a1500b00393a6724d4cso1552205qtb.23 for ; Thu, 13 Oct 2022 08:30:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=B0fmdpW/AHa+kEUt4IyswpaL3sus9BHHp58tNocHyCQ=; b=bTpC8Ua4Ts+EhjhFhkYFMqJeRO2d6+p+iX21vJLgRPYW03tU0aQ5qd6bb6HOdSJTVI ViIaHhOe1Su/cGd/SZ4Om2Mi+4sh7IeGLYc+AxWKiuMNCG9Dud9x4N2hLDrY7beZ+fr8 9x7JhUeSZxMyMDldEI/0NtqqGmUE3lRbcNa2s66Gz3DmAec481tD/TUdyvDx5thPFhVQ NqFcgoXIYarKqSLHp4oVcuGC2pC9loxb0fbIovPjha6fyEYhdNutNa33DXcLGst6W2GG /mKlV78IK6Car8BZJjpXHJDmC7V5i4CFExcNTmv6nUDvg4PVmfa95FG3t7D2KatqHCkL 5xyg== X-Gm-Message-State: ACrzQf2IEaQ4BHW2qD8dgYV9PkIcYepbGIETNfY8Q5xq5QS4loatsH36 mVDlUYSWiaJwvHU+0252fXDnHT4PNpdnJedk3ycZcO0hhqDRk27RLW6Fv8qVD9w1rReyZ/MtTTi HqqeNse6tqIiidtuqOoYRwf9qBI76D9F+Pnq5hq0ljJ+e41BrzX8ytK2kbiVBmLnDWRINDQ== X-Received: by 2002:a05:622a:492:b0:35d:518d:2b58 with SMTP id p18-20020a05622a049200b0035d518d2b58mr365399qtx.78.1665675057567; Thu, 13 Oct 2022 08:30:57 -0700 (PDT) X-Google-Smtp-Source: AMsMyM71zTjD9DyZMolruvupIa6KYXZ5Odtcdfuo7o5Q934Vj7Aa5EolRw51Muvs5ccioPki84/IeA== X-Received: by 2002:a05:622a:492:b0:35d:518d:2b58 with SMTP id p18-20020a05622a049200b0035d518d2b58mr365371qtx.78.1665675057251; Thu, 13 Oct 2022 08:30:57 -0700 (PDT) Received: from ?IPV6:2607:fea8:a263:f600::50d4? ([2607:fea8:a263:f600::50d4]) by smtp.gmail.com with ESMTPSA id t13-20020a05620a450d00b006ec62032d3dsm17596qkp.30.2022.10.13.08.30.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Oct 2022 08:30:56 -0700 (PDT) Message-ID: <70c3023e-cbc0-312b-431b-7fd8eda37e74@redhat.com> Date: Thu, 13 Oct 2022 11:30:55 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 To: gcc-patches Cc: "hernandez, aldy" From: Andrew MacLeod Subject: [COMMITTED 2/4] Add equivalence iterator to relation oracle. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------e2BoAUHZaaZOrmW957L7myjc" Content-Language: en-US X-Spam-Status: No, score=-11.4 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_NONE,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: This is a multi-part message in MIME format. --------------e2BoAUHZaaZOrmW957L7myjc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Instead of looping over an exposed equivalence bitmap, provide iterators to loop over equivalences, partial equivalences, or both. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed Andrew --------------e2BoAUHZaaZOrmW957L7myjc Content-Type: text/x-patch; charset=UTF-8; name="0002-Add-equivalence-iterator-to-relation-oracle.patch" Content-Disposition: attachment; filename="0002-Add-equivalence-iterator-to-relation-oracle.patch" Content-Transfer-Encoding: base64 RnJvbSBhYTA1ODM4YjA1MzY0MjIyNTZlMGM0NzdjNTdmMWVhMWQyOTE1ZTkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogRnJpLCA3IE9jdCAyMDIyIDEyOjU1OjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyLzRd IEFkZCBlcXVpdmFsZW5jZSBpdGVyYXRvciB0byByZWxhdGlvbiBvcmFjbGUuCgpJbnN0ZWFkIG9m IGxvb3Bpbmcgb3ZlciBhbiBleHBvc2VkIGVxdWl2YWxlbmNlIGJpdG1hcCwgcHJvdmlkZSBpdGVy YXRvcnMKdG8gbG9vcCBvdmVyIGVxdWl2YWxlbmNlcywgcGFydGlhbCBlcXVpdmFsZW5jZXMsIG9y IGJvdGguCgoJKiBnaW1wbGUtcmFuZ2UtY2FjaGUuY2MgKHJhbmdlcl9jYWNoZTo6ZmlsbF9ibG9j a19jYWNoZSk6IFVzZQoJaXRlcmF0b3IuCgkqIHZhbHVlLXJlbGF0aW9uLmNjCgkgIChlcXVpdl9y ZWxhdGlvbl9pdGVyYXRvcjo6ZXF1aXZfcmVsYXRpb25faXRlcmF0b3IpOiBOZXcuCgkoZXF1aXZf cmVsYXRpb25faXRlcmF0b3I6Om5leHQpOiBOZXcuCgkoZXF1aXZfcmVsYXRpb25faXRlcmF0b3I6 OmdldF9uYW1lKTogTmV3LgoJKiB2YWx1ZS1yZWxhdGlvbi5oIChjbGFzcyByZWxhdGlvbl9vcmFj bGUpOiBQcml2YXRpemUgc29tZSBtZXRob2RzLgoJKGNsYXNzIGVxdWl2X3JlbGF0aW9uX2l0ZXJh dG9yKTogTmV3LgoJKEZPUl9FQUNIX0VRVUlWQUxFTkNFKTogTmV3LgoJKEZPUl9FQUNIX1BBUlRJ QUxfRVFVSVYpOiBOZXcuCgkoRk9SX0VBQ0hfUEFSVElBTF9BTkRfRlVMTF9FUVVJVik6IE5ldy4K LS0tCiBnY2MvZ2ltcGxlLXJhbmdlLWNhY2hlLmNjIHwgMTAgKy0tLS0KIGdjYy92YWx1ZS1yZWxh dGlvbi5jYyAgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGdjYy92YWx1ZS1yZWxhdGlvbi5oICAgICAgfCA0MSArKysrKysrKysrKysrKysrKystLQogMyBm aWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZ2NjL2dpbXBsZS1yYW5nZS1jYWNoZS5jYyBiL2djYy9naW1wbGUtcmFuZ2UtY2FjaGUu Y2MKaW5kZXggNDc4MmQ0NzI2NWUuLjhjODBiYTZjZDE0IDEwMDY0NAotLS0gYS9nY2MvZ2ltcGxl LXJhbmdlLWNhY2hlLmNjCisrKyBiL2djYy9naW1wbGUtcmFuZ2UtY2FjaGUuY2MKQEAgLTEyMjAs MTUgKzEyMjAsOSBAQCByYW5nZXJfY2FjaGU6OmZpbGxfYmxvY2tfY2FjaGUgKHRyZWUgbmFtZSwg YmFzaWNfYmxvY2sgYmIsIGJhc2ljX2Jsb2NrIGRlZl9iYikKICAgICAgIC8vIFNlZSBpZiBhbnkg ZXF1aXZhbGVuY2VzIGNhbiByZWZpbmUgaXQuCiAgICAgICBpZiAobV9vcmFjbGUpCiAJewotCSAg dW5zaWduZWQgaTsKLQkgIGJpdG1hcF9pdGVyYXRvciBiaTsKLQkgIC8vIFF1ZXJ5IGVxdWl2YWxl bmNlcyBpbiByZWFkLW9ubHkgbW9kZS4KLQkgIGNvbnN0X2JpdG1hcCBlcXVpdiA9IG1fb3JhY2xl LT5lcXVpdl9zZXQgKG5hbWUsIGJiKTsKLQkgIEVYRUNVVEVfSUZfU0VUX0lOX0JJVE1BUCAoZXF1 aXYsIDAsIGksIGJpKQorCSAgdHJlZSBlcXVpdl9uYW1lOworCSAgRk9SX0VBQ0hfRVFVSVZBTEVO Q0UgKG1fb3JhY2xlLCBiYiwgbmFtZSwgZXF1aXZfbmFtZSkKIAkgICAgewotCSAgICAgIGlmIChp ID09IFNTQV9OQU1FX1ZFUlNJT04gKG5hbWUpKQotCQljb250aW51ZTsKLQkgICAgICB0cmVlIGVx dWl2X25hbWUgPSBzc2FfbmFtZSAoaSk7CiAJICAgICAgYmFzaWNfYmxvY2sgZXF1aXZfYmIgPSBn aW1wbGVfYmIgKFNTQV9OQU1FX0RFRl9TVE1UIChlcXVpdl9uYW1lKSk7CiAKIAkgICAgICAvLyBD aGVjayBpZiB0aGUgZXF1aXYgaGFzIGFueSByYW5nZXMgY2FsY3VsYXRlZC4KZGlmZiAtLWdpdCBh L2djYy92YWx1ZS1yZWxhdGlvbi5jYyBiL2djYy92YWx1ZS1yZWxhdGlvbi5jYwppbmRleCBjZWVj YTUzZTBhMS4uNTBmYzE5MGEzNmIgMTAwNjQ0Ci0tLSBhL2djYy92YWx1ZS1yZWxhdGlvbi5jYwor KysgYi9nY2MvdmFsdWUtcmVsYXRpb24uY2MKQEAgLTE2NDEsMyArMTY0MSw4MSBAQCBwYXRoX29y YWNsZTo6ZHVtcCAoRklMRSAqZikgY29uc3QKICAgICAgIGZwcmludGYgKGYsICJcbiIpOwogICAg IH0KIH0KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgRVFVSVYgaXRlcmF0b3IuICBBbHRob3Vn aCB3ZSBoYXZlIGJpdG1hcCBpdGVyYXRvcnMsIGRvbid0IGV4cG9zZSB0aGF0IGl0CisvLyAgaXMg Y3VycmVudGx5IGEgYml0bWFwLiAgVXNlIGFuIGV4cG9ydCBpdGVyYXRvciB0byBoaWRlIGZ1dHVy ZSBjaGFuZ2VzLgorCisvLyBDb25zdHJ1Y3QgYSBiYXNpYyBpdGVyYXRvciBvdmVyIGFuIGVxdWl2 YWxlbmNlIGJpdG1hcC4KKworZXF1aXZfcmVsYXRpb25faXRlcmF0b3I6OmVxdWl2X3JlbGF0aW9u X2l0ZXJhdG9yIChyZWxhdGlvbl9vcmFjbGUgKm9yYWNsZSwKKwkJCQkJCSAgYmFzaWNfYmxvY2sg YmIsIHRyZWUgbmFtZSwKKwkJCQkJCSAgYm9vbCBmdWxsLCBib29sIHBhcnRpYWwpCit7CisgIG1f bmFtZSA9IG5hbWU7CisgIG1fb3JhY2xlID0gb3JhY2xlOworICBtX3BlID0gcGFydGlhbCA/IG9y YWNsZS0+cGFydGlhbF9lcXVpdl9zZXQgKG5hbWUpIDogTlVMTDsKKyAgbV9ibSA9IE5VTEw7Cisg IGlmIChmdWxsKQorICAgIG1fYm0gPSBvcmFjbGUtPmVxdWl2X3NldCAobmFtZSwgYmIpOworICBp ZiAoIW1fYm0gJiYgbV9wZSkKKyAgICBtX2JtID0gbV9wZS0+bWVtYmVyczsKKyAgaWYgKG1fYm0p CisgICAgYm1wX2l0ZXJfc2V0X2luaXQgKCZtX2JpLCBtX2JtLCAxLCAmbV95KTsKK30KKworLy8g TW92ZSB0byB0aGUgbmV4dCBleHBvcnQgYml0bWFwIHNwb3QuCisKK3ZvaWQKK2VxdWl2X3JlbGF0 aW9uX2l0ZXJhdG9yOjpuZXh0ICgpCit7CisgIGJtcF9pdGVyX25leHQgKCZtX2JpLCAmbV95KTsK K30KKworLy8gRmV0Y2ggdGhlIG5hbWUgb2YgdGhlIG5leHQgZXhwb3J0IGluIHRoZSBleHBvcnQg bGlzdC4gIFJldHVybiBOVUxMIGlmCisvLyBpdGVyYXRpb24gaXMgZG9uZS4KKwordHJlZQorZXF1 aXZfcmVsYXRpb25faXRlcmF0b3I6OmdldF9uYW1lIChyZWxhdGlvbl9raW5kICpyZWwpCit7Cisg IGlmICghbV9ibSkKKyAgICByZXR1cm4gTlVMTF9UUkVFOworCisgIHdoaWxlIChibXBfaXRlcl9z ZXQgKCZtX2JpLCAmbV95KSkKKyAgICB7CisgICAgICAvLyBEbyBub3QgcmV0dXJuIHNlbGYuCisg ICAgICB0cmVlIHQgPSBzc2FfbmFtZSAobV95KTsKKyAgICAgIGlmICh0ICYmIHQgIT0gbV9uYW1l KQorCXsKKwkgIHJlbGF0aW9uX2tpbmQgayA9IFZSRUxfRVE7CisJICBpZiAobV9wZSAmJiBtX2Jt ID09IG1fcGUtPm1lbWJlcnMpCisJICAgIHsKKwkgICAgICBjb25zdCBwZV9zbGljZSAqZXF1aXZf cGUgPSBtX29yYWNsZS0+cGFydGlhbF9lcXVpdl9zZXQgKHQpOworCSAgICAgIGlmIChlcXVpdl9w ZSAmJiBlcXVpdl9wZS0+bWVtYmVycyA9PSBtX3BlLT5tZW1iZXJzKQorCQlrID0gcGVfbWluICht X3BlLT5jb2RlLCBlcXVpdl9wZS0+Y29kZSk7CisJICAgICAgZWxzZQorCQlrID0gVlJFTF9WQVJZ SU5HOworCSAgICB9CisJICBpZiAocmVsYXRpb25fZXF1aXZfcCAoaykpCisJICAgIHsKKwkgICAg ICBpZiAocmVsKQorCQkqcmVsID0gazsKKwkgICAgICByZXR1cm4gdDsKKwkgICAgfQorCX0KKyAg ICAgIG5leHQgKCk7CisgICAgfQorCisgIC8vIFByb2Nlc3MgcGFydGlhbCBlcXVpdnMgYWZ0ZXIg ZnVsbCBlcXVpdnMgaWYgYm90aCB3ZXJlIHJlcXVlc3RlZC4KKyAgaWYgKG1fcGUgJiYgbV9ibSAh PSBtX3BlLT5tZW1iZXJzKQorICAgIHsKKyAgICAgIG1fYm0gPSBtX3BlLT5tZW1iZXJzOworICAg ICAgaWYgKG1fYm0pCisJeworCSAgLy8gUmVjdXJzaXZlbHkgY2FsbCBiYWNrIHRvIHByb2Nlc3Mg Rmlyc3QgUEUuCisJICBibXBfaXRlcl9zZXRfaW5pdCAoJm1fYmksIG1fYm0sIDEsICZtX3kpOwor CSAgcmV0dXJuIGdldF9uYW1lIChyZWwpOworCX0KKyAgICB9CisgIHJldHVybiBOVUxMX1RSRUU7 Cit9CmRpZmYgLS1naXQgYS9nY2MvdmFsdWUtcmVsYXRpb24uaCBiL2djYy92YWx1ZS1yZWxhdGlv bi5oCmluZGV4IGY1ZjI1MjRhZDU2Li5hM2JiZTFlODE1NyAxMDA2NDQKLS0tIGEvZ2NjL3ZhbHVl LXJlbGF0aW9uLmgKKysrIGIvZ2NjL3ZhbHVlLXJlbGF0aW9uLmgKQEAgLTEwMCw5ICsxMDAsNiBA QCBwdWJsaWM6CiAgIC8vIHJlZ2lzdGVyIGEgcmVsYXRpb24gYmV0d2VlbiAyIHNzYSBuYW1lcyBv biBhbiBlZGdlLgogICB2b2lkIHJlZ2lzdGVyX2VkZ2UgKGVkZ2UsIHJlbGF0aW9uX2tpbmQsIHRy ZWUsIHRyZWUpOwogCi0gIC8vIFJldHVybiBlcXVpdmFsZW5jeSBzZXQgZm9yIGFuIFNTQSBuYW1l IGluIGEgYmFzaWMgYmxvY2suCi0gIHZpcnR1YWwgY29uc3RfYml0bWFwIGVxdWl2X3NldCAodHJl ZSwgYmFzaWNfYmxvY2spID0gMDsKLSAgdmlydHVhbCBjb25zdCBjbGFzcyBwZV9zbGljZSAqcGFy dGlhbF9lcXVpdl9zZXQgKHRyZWUpIHsgcmV0dXJuIE5VTEw7IH0KICAgLy8gcmVnaXN0ZXIgYSBy ZWxhdGlvbiBiZXR3ZWVuIDIgc3NhIG5hbWVzIGluIGEgYmFzaWMgYmxvY2suCiAgIHZpcnR1YWwg dm9pZCByZWdpc3Rlcl9yZWxhdGlvbiAoYmFzaWNfYmxvY2ssIHJlbGF0aW9uX2tpbmQsIHRyZWUs IHRyZWUpID0gMDsKICAgLy8gUXVlcnkgZm9yIGEgcmVsYXRpb24gYmV0d2VlbiB0d28gc3NhIG5h bWVzIGluIGEgYmFzaWMgYmxvY2suCkBAIC0xMTUsNiArMTEyLDExIEBAIHB1YmxpYzoKICAgdmly dHVhbCB2b2lkIGR1bXAgKEZJTEUgKikgY29uc3QgPSAwOwogICB2b2lkIGRlYnVnICgpIGNvbnN0 OwogcHJvdGVjdGVkOgorICBmcmllbmQgY2xhc3MgZXF1aXZfcmVsYXRpb25faXRlcmF0b3I7Cisg IC8vIFJldHVybiBlcXVpdmFsZW5jeSBzZXQgZm9yIGFuIFNTQSBuYW1lIGluIGEgYmFzaWMgYmxv Y2suCisgIHZpcnR1YWwgY29uc3RfYml0bWFwIGVxdWl2X3NldCAodHJlZSwgYmFzaWNfYmxvY2sp ID0gMDsKKyAgLy8gUmV0dXJuIHBhcnRpYWwgZXF1aXZhbGVuY3kgcmVjb3JkIGZvciBhbiBTU0Eg bmFtZS4KKyAgdmlydHVhbCBjb25zdCBjbGFzcyBwZV9zbGljZSAqcGFydGlhbF9lcXVpdl9zZXQg KHRyZWUpIHsgcmV0dXJuIE5VTEw7IH0KICAgdm9pZCB2YWxpZF9lcXVpdnMgKGJpdG1hcCBiLCBj b25zdF9iaXRtYXAgZXF1aXZzLCBiYXNpY19ibG9jayBiYik7CiAgIC8vIFF1ZXJ5IGZvciBhIHJl bGF0aW9uIGJldHdlZW4gdHdvIGVxdWl2YWxlbmN5IHNldHMgaW4gYSBiYXNpYyBibG9jay4KICAg dmlydHVhbCByZWxhdGlvbl9raW5kIHF1ZXJ5X3JlbGF0aW9uIChiYXNpY19ibG9jaywgY29uc3Rf Yml0bWFwLApAQCAtMjgxLDYgKzI4MywzOSBAQCBwcml2YXRlOgogICBzdHJ1Y3Qgb2JzdGFjayBt X2NoYWluX29ic3RhY2s7CiB9OwogCisvLyBVc2VkIHRvIGFzc2lzdCB3aXRoIGl0ZXJhdGluZyBv dmVyIHRoZSBlcXVpdmFsZW5jZSBsaXN0LgorY2xhc3MgZXF1aXZfcmVsYXRpb25faXRlcmF0b3Ig eworcHVibGljOgorICBlcXVpdl9yZWxhdGlvbl9pdGVyYXRvciAocmVsYXRpb25fb3JhY2xlICpv cmFjbGUsIGJhc2ljX2Jsb2NrIGJiLCB0cmVlIG5hbWUsCisJCQkgICBib29sIGZ1bGwgPSB0cnVl LCBib29sIHBhcnRpYWwgPSBmYWxzZSk7CisgIHZvaWQgbmV4dCAoKTsKKyAgdHJlZSBnZXRfbmFt ZSAocmVsYXRpb25fa2luZCAqcmVsID0gTlVMTCk7Citwcm90ZWN0ZWQ6CisgIHJlbGF0aW9uX29y YWNsZSAqbV9vcmFjbGU7CisgIGNvbnN0X2JpdG1hcCBtX2JtOworICBjb25zdCBwZV9zbGljZSAq bV9wZTsKKyAgYml0bWFwX2l0ZXJhdG9yIG1fYmk7CisgIHVuc2lnbmVkIG1feTsKKyAgdHJlZSBt X25hbWU7Cit9OworCisjZGVmaW5lIEZPUl9FQUNIX0VRVUlWQUxFTkNFKG9yYWNsZSwgYmIsIG5h bWUsIGVxdWl2X25hbWUpCQlcCisgIGZvciAoZXF1aXZfcmVsYXRpb25faXRlcmF0b3IgaXRlciAo b3JhY2xlLCBiYiwgbmFtZSwgdHJ1ZSwgZmFsc2UpOwlcCisgICAgICAgKChlcXVpdl9uYW1lKSA9 IGl0ZXIuZ2V0X25hbWUgKCkpOwkJCQlcCisgICAgICAgaXRlci5uZXh0ICgpKQorCisjZGVmaW5l IEZPUl9FQUNIX1BBUlRJQUxfRVFVSVYob3JhY2xlLCBiYiwgbmFtZSwgZXF1aXZfbmFtZSwgZXF1 aXZfcmVsKQlcCisgIGZvciAoZXF1aXZfcmVsYXRpb25faXRlcmF0b3IgaXRlciAob3JhY2xlLCBi YiwgbmFtZSwgZmFsc2UsIHRydWUpOwlcCisgICAgICAgKChlcXVpdl9uYW1lKSA9IGl0ZXIuZ2V0 X25hbWUgKCZlcXVpdl9yZWwpKTsJCQlcCisgICAgICAgaXRlci5uZXh0ICgpKQorCisjZGVmaW5l IEZPUl9FQUNIX1BBUlRJQUxfQU5EX0ZVTExfRVFVSVYob3JhY2xlLCBiYiwgbmFtZSwgZXF1aXZf bmFtZSwgCVwKKwkJCQkJCSAgICAgIGVxdWl2X3JlbCkJXAorICBmb3IgKGVxdWl2X3JlbGF0aW9u X2l0ZXJhdG9yIGl0ZXIgKG9yYWNsZSwgYmIsIG5hbWUsIHRydWUsIHRydWUpOwlcCisgICAgICAg KChlcXVpdl9uYW1lKSA9IGl0ZXIuZ2V0X25hbWUgKCZlcXVpdl9yZWwpKTsJCQlcCisgICAgICAg aXRlci5uZXh0ICgpKQorCisKIC8vIFRoZSB2YWx1ZS1yZWxhdGlvbiBjbGFzcyBpcyB1c2VkIHRv IGVuY2Fwc3VsYXRlIHRoZSByZXByZXNlbnRpb24gb2YgYW4KIC8vIGluZGl2aWR1YWwgcmVsYXRp b24gYmV0d2VlbiAyIHNzYS1uYW1lcywgYW5kIHRvIGZhY2lsaXRhdGUgb3BlcmF0aW5nIG9uCiAv LyB0aGUgcmVsYXRpb24uCi0tIAoyLjM3LjMKCg== --------------e2BoAUHZaaZOrmW957L7myjc--