Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qGaXe-0006jy-FI for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Jul 2023 07:33:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qGaXd-0003jo-BG for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Jul 2023 07:33:41 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qGaXc-0003jf-V7 for pgsql-hackers@lists.postgresql.org; Tue, 04 Jul 2023 07:33:41 +0000 Received: from mail-yb1-xb32.google.com ([2607:f8b0:4864:20::b32]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qGaXX-0026SN-Hg for pgsql-hackers@postgresql.org; Tue, 04 Jul 2023 07:33:40 +0000 Received: by mail-yb1-xb32.google.com with SMTP id 3f1490d57ef6-bd0a359ca35so4868414276.3 for ; Tue, 04 Jul 2023 00:33:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1688456014; x=1691048014; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=40IHx+rZpgV75Pt8v/Uangwkdc/bvBH/mcd0bU9uTl4=; b=Z6Obltpch1V5XxrUU4jna0BFRTmNm9dUusnbOMf6YMpCLT8YmD+elc+SGCQLFHNMui iUEgIdxyK6t5qQnqfF7oB68ZfrwFgVN9Z7TS3EARiheF7zlCz3BHWqnG3v+l0gdxvXvZ Tlmhiw3Sg7i7TLwzomGFfV7/Ju4UwPTaF+a1XlXGIMOq1eSswAwvwLI3+bF7OEO1gEe8 UJIoxWEicEEeqlBmbv6PPObtc4LHXdMvjMCVOJdZO1u0eB4gsR2kwq7jTtoV0igJwA+w xiW175mpZoopBw5FXc4kNtnduWAeIwA+h3UGtbiG4wYKGWKFjYESKcaOCrgwUvlKF0dS mbCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688456014; x=1691048014; h=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=40IHx+rZpgV75Pt8v/Uangwkdc/bvBH/mcd0bU9uTl4=; b=Z1zu9OgNh1pFcOyHnfk/Wc6p0BexMOYsLKGVKDGfW0TwEcLfaLErV4Cjm5P6/HKYwk U87IYJpFxqsne7CE4C/33tCMhfBgtNARgnCk5PgmNfXLS+dmlgYjfZuzr/KdbPIQt97E CmBuiGRLOhQ7IPGKFX0OpmXKyGjrQBNl+mDb++jtXh2gh3hR95rWp3OOEQZNftCdfzZO qkD7OAs9oQmHgJlYNe0SU0jD7vSlT/riNc8qP1bG72/HqHRUEx+nFYBlMF8MxOywxS7B t545xr0fXr/WZOTnuf9VH0MTC7FMCg4hMnppNMO5eZF8oq6roAuXQGkZ7GN8T+T4FdH5 tdgg== X-Gm-Message-State: ABy/qLYvPoeRkcItRxFx9YZVM8SUqJG5t4tlzePhYQVTQSvUl1ivCJbs fvMr+z5Q30xMXPeB3SucQSreLWtuMAL/GMU0s1+BAdRgvww= X-Google-Smtp-Source: APBJJlFkLQ2+A+mIbdtwoLjBxqcANIgIYezLe2ppQ4a1HAY3Q/hBDuTme1VKwy8ynPTXDcnUNmt8U8Se4VRKZ/jyU+M= X-Received: by 2002:a25:ac5c:0:b0:c25:b943:8830 with SMTP id r28-20020a25ac5c000000b00c25b9438830mr11129772ybd.49.1688456013781; Tue, 04 Jul 2023 00:33:33 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Richard Guo Date: Tue, 4 Jul 2023 15:33:22 +0800 Message-ID: Subject: Re: Check lateral references within PHVs for memoize cache keys To: PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000ebb35e05ffa44cc6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ebb35e05ffa44cc6 Content-Type: multipart/alternative; boundary="000000000000ebb35b05ffa44cc4" --000000000000ebb35b05ffa44cc4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Dec 30, 2022 at 11:00=E2=80=AFAM Richard Guo wrote: > On Fri, Dec 9, 2022 at 5:16 PM Richard Guo wrote= : > >> Actually we do have checked PHVs for lateral references, earlier in >> create_lateral_join_info. But that time we only marked lateral_relids >> and direct_lateral_relids, without remembering the lateral expressions. >> So I'm wondering whether we can fix that by fetching Vars (or PHVs) of >> lateral references within PlaceHolderVars and remembering them in the >> baserel's lateral_vars. >> >> Attach a draft patch to show my thoughts. >> > > Update the patch to fix test failures. > Rebase the patch on HEAD as cfbot reminds. Thanks Richard --000000000000ebb35b05ffa44cc4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On Fri, Dec 30, 2022 at 11:00=E2=80=AFAM = Richard Guo <guofenglinux@gmai= l.com> wrote:
On Fri, Dec 9, 2022 at 5:16 PM Richard Guo <guofenglinux@gmail.com> wrot= e:
= Actually we do have checked PHVs for lateral references, earlier in
crea= te_lateral_join_info.=C2=A0 But that time we only marked lateral_relids
= and direct_lateral_relids, without remembering the lateral expressions.
= So I'm wondering whether we can fix that by fetching Vars (or PHVs) of<= br>lateral references within PlaceHolderVars and remembering them in thebaserel's lateral_vars.

Attach a draft patch to show my thought= s.
=C2=A0
Update the patch to fix test fai= lures.

Rebase the patch o= n HEAD as cfbot reminds.

Thanks
Richard
--000000000000ebb35b05ffa44cc4-- --000000000000ebb35e05ffa44cc6 Content-Type: application/octet-stream; name="v3-0001-Check-lateral-refs-within-PHVs-for-memoize-cache-keys.patch" Content-Disposition: attachment; filename="v3-0001-Check-lateral-refs-within-PHVs-for-memoize-cache-keys.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ljnz3qgm0 RnJvbSAxZmE2N2ZjMTFjMzQ4M2U1Y2Y3ZTljM2JiYzQ0OTI0YWJjZTA1YmI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAzMCBEZWMgMjAyMiAxMDozNTozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjNd IENoZWNrIGxhdGVyYWwgcmVmcyB3aXRoaW4gUEhWcyBmb3IgbWVtb2l6ZSBjYWNoZSBrZXlzCgot LS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8IDEyICsr Ky0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYyAgICAgICAgfCA1MSAr KysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lbW9pemUub3V0 ICAgICAgICAgfCAzMSArKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVtb2l6ZS5z cWwgICAgICAgICAgICAgIHwgMTEgKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9l eHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQv cG9zdGdyZXNfZmR3Lm91dAppbmRleCA4NTJiNWI0NzA3Li40ZTY1NGZmYTNhIDEwMDY0NAotLS0g YS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTM2ODcsMTUg KzM2ODcsMTkgQEAgT1JERVIgQlkgcmVmXzAuIkMgMSI7CiAgICAgICAgICAtPiAgSW5kZXggU2Nh biB1c2luZyB0MV9wa2V5IG9uICJTIDEiLiJUIDEiIHJlZl8wCiAgICAgICAgICAgICAgICBPdXRw dXQ6IHJlZl8wLiJDIDEiLCByZWZfMC5jMiwgcmVmXzAuYzMsIHJlZl8wLmM0LCByZWZfMC5jNSwg cmVmXzAuYzYsIHJlZl8wLmM3LCByZWZfMC5jOAogICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KHJlZl8wLiJDIDEiIDwgMTApCi0gICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5m dDEgcmVmXzEKLSAgICAgICAgICAgICAgIE91dHB1dDogcmVmXzEuYzMsIHJlZl8wLmMyCi0gICAg ICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYzMgRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAo KGMzID0gJzAwMDAxJykpCisgICAgICAgICAtPiAgTWVtb2l6ZQorICAgICAgICAgICAgICAgT3V0 cHV0OiByZWZfMS5jMywgKHJlZl8wLmMyKQorICAgICAgICAgICAgICAgQ2FjaGUgS2V5OiByZWZf MC5jMgorICAgICAgICAgICAgICAgQ2FjaGUgTW9kZTogYmluYXJ5CisgICAgICAgICAgICAgICAt PiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDEgcmVmXzEKKyAgICAgICAgICAgICAgICAgICAg IE91dHB1dDogcmVmXzEuYzMsIHJlZl8wLmMyCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUg U1FMOiBTRUxFQ1QgYzMgRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKGMzID0gJzAwMDAxJykpCiAg ICAtPiAgTWF0ZXJpYWxpemUKICAgICAgICAgIE91dHB1dDogcmVmXzMuYzMKICAgICAgICAgIC0+ ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MiByZWZfMwogICAgICAgICAgICAgICAgT3V0cHV0 OiByZWZfMy5jMwogICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGMzIEZST00gIlMg MSIuIlQgMSIgV0hFUkUgKChjMyA9ICcwMDAwMScpKQotKDE1IHJvd3MpCisoMTkgcm93cykKIAog U0VMRUNUIHJlZl8wLmMyLCBzdWJxXzEuKgogRlJPTQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9p bml0c3BsYW4uYwppbmRleCBiMzFkODkyMTIxLi44MGYyOTAyZTEyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9pbml0c3BsYW4uYwpAQCAtNTgyLDYgKzU4Miw5IEBAIGNyZWF0ZV9sYXRlcmFs X2pvaW5faW5mbyhQbGFubmVySW5mbyAqcm9vdCkKIAkJUmVsaWRzCQlldmFsX2F0ID0gcGhpbmZv LT5waF9ldmFsX2F0OwogCQlSZWxpZHMJCWxhdGVyYWxfcmVmczsKIAkJaW50CQkJdmFybm87CisJ CUxpc3QJICAgKnZhcnM7CisJCUxpc3QJICAgKnBoX2xhdGVyYWxfdmFyczsKKwkJTGlzdENlbGwg ICAqY2VsbDsKIAogCQlpZiAocGhpbmZvLT5waF9sYXRlcmFsID09IE5VTEwpCiAJCQljb250aW51 ZTsJCQkvKiBQSFYgaXMgdW5pbnRlcmVzdGluZyBpZiBubyBsYXRlcmFsIHJlZnMgKi8KQEAgLTU5 Nyw2ICs2MDAsNDAgQEAgY3JlYXRlX2xhdGVyYWxfam9pbl9pbmZvKFBsYW5uZXJJbmZvICpyb290 KQogCQlsYXRlcmFsX3JlZnMgPSBibXNfaW50ZXJzZWN0KHBoaW5mby0+cGhfbGF0ZXJhbCwgcm9v dC0+YWxsX2Jhc2VyZWxzKTsKIAkJQXNzZXJ0KCFibXNfaXNfZW1wdHkobGF0ZXJhbF9yZWZzKSk7 CiAKKwkJLyogRmV0Y2ggVmFycyBhbmQgUEhWcyBvZiBsYXRlcmFsIHJlZmVyZW5jZXMgd2l0aGlu IFBsYWNlSG9sZGVyVmFycyAqLworCQl2YXJzID0gcHVsbF92YXJzX29mX2xldmVsKChOb2RlICop IHBoaW5mby0+cGhfdmFyLT5waGV4cHIsIDApOworCisJCXBoX2xhdGVyYWxfdmFycyA9IE5JTDsK KwkJZm9yZWFjaChjZWxsLCB2YXJzKQorCQl7CisJCQlOb2RlCSAgICpub2RlID0gKE5vZGUgKikg bGZpcnN0KGNlbGwpOworCisJCQlub2RlID0gY29weU9iamVjdChub2RlKTsKKwkJCWlmIChJc0Eo bm9kZSwgVmFyKSkKKwkJCXsKKwkJCQlWYXIJCSAgICp2YXIgPSAoVmFyICopIG5vZGU7CisKKwkJ CQlBc3NlcnQodmFyLT52YXJsZXZlbHN1cCA9PSAwKTsKKworCQkJCWlmIChibXNfaXNfbWVtYmVy KHZhci0+dmFybm8sIHBoaW5mby0+cGhfbGF0ZXJhbCkpCisJCQkJCXBoX2xhdGVyYWxfdmFycyA9 IGxhcHBlbmQocGhfbGF0ZXJhbF92YXJzLCBub2RlKTsKKwkJCX0KKwkJCWVsc2UgaWYgKElzQShu b2RlLCBQbGFjZUhvbGRlclZhcikpCisJCQl7CisJCQkJUGxhY2VIb2xkZXJWYXIgKnBodiA9IChQ bGFjZUhvbGRlclZhciAqKSBub2RlOworCisJCQkJQXNzZXJ0KHBodi0+cGhsZXZlbHN1cCA9PSAw KTsKKworCQkJCWlmIChibXNfaXNfc3Vic2V0KGZpbmRfcGxhY2Vob2xkZXJfaW5mbyhyb290LCBw aHYpLT5waF9ldmFsX2F0LAorCQkJCQkJCQkgIHBoaW5mby0+cGhfbGF0ZXJhbCkpCisJCQkJCXBo X2xhdGVyYWxfdmFycyA9IGxhcHBlbmQocGhfbGF0ZXJhbF92YXJzLCBub2RlKTsKKwkJCX0KKwkJ CWVsc2UKKwkJCQlBc3NlcnQoZmFsc2UpOworCQl9CisKKwkJbGlzdF9mcmVlKHZhcnMpOworCiAJ CWlmIChibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIoZXZhbF9hdCwgJnZhcm5vKSkKIAkJewogCQkJ LyogRXZhbHVhdGlvbiBzaXRlIGlzIGEgYmFzZXJlbCAqLwpAQCAtNjA4LDYgKzY0NSwxMyBAQCBj cmVhdGVfbGF0ZXJhbF9qb2luX2luZm8oUGxhbm5lckluZm8gKnJvb3QpCiAJCQlicmVsLT5sYXRl cmFsX3JlbGlkcyA9CiAJCQkJYm1zX2FkZF9tZW1iZXJzKGJyZWwtPmxhdGVyYWxfcmVsaWRzLAog CQkJCQkJCQlsYXRlcmFsX3JlZnMpOworCisJCQkvKgorCQkJICogUmVtZW1iZXIgdGhlIGxhdGVy YWwgcmVmZXJlbmNlcy4gV2UgbmVlZCB0aGlzIGluZm8gZm9yIHNlYXJjaGluZworCQkJICogbWVt b2l6ZSBjYWNoZSBrZXlzLgorCQkJICovCisJCQlicmVsLT5sYXRlcmFsX3ZhcnMgPQorCQkJCWxp c3RfY29uY2F0KGJyZWwtPmxhdGVyYWxfdmFycywgcGhfbGF0ZXJhbF92YXJzKTsKIAkJfQogCQll bHNlCiAJCXsKQEAgLTYyMSw2ICs2NjUsMTMgQEAgY3JlYXRlX2xhdGVyYWxfam9pbl9pbmZvKFBs YW5uZXJJbmZvICpyb290KQogCQkJCQljb250aW51ZTsJLyogaWdub3JlIG91dGVyIGpvaW5zIGlu IGV2YWxfYXQgKi8KIAkJCQlicmVsLT5sYXRlcmFsX3JlbGlkcyA9IGJtc19hZGRfbWVtYmVycyhi cmVsLT5sYXRlcmFsX3JlbGlkcywKIAkJCQkJCQkJCQkJCQkgICBsYXRlcmFsX3JlZnMpOworCisJ CQkJLyoKKwkJCQkgKiBSZW1lbWJlciB0aGUgbGF0ZXJhbCByZWZlcmVuY2VzLiBXZSBuZWVkIHRo aXMgaW5mbyBmb3IKKwkJCQkgKiBzZWFyY2hpbmcgbWVtb2l6ZSBjYWNoZSBrZXlzLgorCQkJCSAq LworCQkJCWJyZWwtPmxhdGVyYWxfdmFycyA9IGxpc3RfY29uY2F0KGJyZWwtPmxhdGVyYWxfdmFy cywKKwkJCQkJCQkJCQkJCSBwaF9sYXRlcmFsX3ZhcnMpOwogCQkJfQogCQl9CiAJfQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZW1vaXplLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbWVtb2l6ZS5vdXQKaW5kZXggZjUyMDI0MzBmOC4uMWY1OTc3NzkwMyAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZW1vaXplLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lbW9pemUub3V0CkBAIC05Miw2ICs5MiwzNyBAQCBX SEVSRSB0MS51bmlxdWUxIDwgMTAwMDsKICAgMTAwMCB8IDkuNTAwMDAwMDAwMDAwMDAwMAogKDEg cm93KQogCistLSBUcnkgd2l0aCBMQVRFUkFMIHJlZmVyZW5jZXMgd2l0aGluIFBsYWNlSG9sZGVy VmFycworU0VMRUNUIGV4cGxhaW5fbWVtb2l6ZSgnCitTRUxFQ1QgQ09VTlQoKiksQVZHKHQxLnR3 ZW50eSkgRlJPTSB0ZW5rMSB0MSBMRUZUIEpPSU4KK0xBVEVSQUwgKFNFTEVDVCB0MS50d2VudHkg YXMgYzEsIHQyLnVuaXF1ZTEgYXMgYzIgRlJPTSB0ZW5rMSB0MikgcyBvbiB0cnVlCitXSEVSRSBz LmMxID0gcy5jMiBhbmQgdDEudW5pcXVlMSA8IDEwMDA7JywgZmFsc2UpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX21lbW9pemUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZSAoYWN0dWFsIHJvd3M9MSBsb29wcz1OKQorICAgLT4gIE5lc3RlZCBMb29w IChhY3R1YWwgcm93cz0xMDAwIGxvb3BzPU4pCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVu azEgdDEgKGFjdHVhbCByb3dzPTEwMDAgbG9vcHM9TikKKyAgICAgICAgICAgICAgIEZpbHRlcjog KHVuaXF1ZTEgPCAxMDAwKQorICAgICAgICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjog OTAwMAorICAgICAgICAgLT4gIE1lbW9pemUgKGFjdHVhbCByb3dzPTEgbG9vcHM9TikKKyAgICAg ICAgICAgICAgIENhY2hlIEtleTogdDEudHdlbnR5CisgICAgICAgICAgICAgICBDYWNoZSBNb2Rl OiBiaW5hcnkKKyAgICAgICAgICAgICAgIEhpdHM6IDk4MCAgTWlzc2VzOiAyMCAgRXZpY3Rpb25z OiBaZXJvICBPdmVyZmxvd3M6IDAgIE1lbW9yeSBVc2FnZTogTmtCCisgICAgICAgICAgICAgICAt PiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdDIgKGFjdHVh bCByb3dzPTEgbG9vcHM9TikKKyAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKHQxLnR3ZW50 eSA9IHVuaXF1ZTEpCisgICAgICAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVy OiA5OTk5CisgICAgICAgICAgICAgICAgICAgICBIZWFwIEZldGNoZXM6IE4KKygxMyByb3dzKQor CistLSBBbmQgY2hlY2sgd2UgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHRzLgorU0VMRUNUIENPVU5U KCopLEFWRyh0MS50d2VudHkpIEZST00gdGVuazEgdDEgTEVGVCBKT0lOCitMQVRFUkFMIChTRUxF Q1QgdDEudHdlbnR5IGFzIGMxLCB0Mi51bmlxdWUxIGFzIGMyIEZST00gdGVuazEgdDIpIHMgb24g dHJ1ZQorV0hFUkUgcy5jMSA9IHMuYzIgYW5kIHQxLnVuaXF1ZTEgPCAxMDAwOworIGNvdW50IHwg ICAgICAgIGF2ZyAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorICAxMDAw IHwgOS41MDAwMDAwMDAwMDAwMDAwCisoMSByb3cpCisKIC0tIFJlZHVjZSB3b3JrX21lbSBhbmQg aGFzaF9tZW1fbXVsdGlwbGllciBzbyB0aGF0IHdlIHNlZSBzb21lIGNhY2hlIGV2aWN0aW9ucwog U0VUIHdvcmtfbWVtIFRPICc2NGtCJzsKIFNFVCBoYXNoX21lbV9tdWx0aXBsaWVyIFRPIDEuMDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21lbW9pemUuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvbWVtb2l6ZS5zcWwKaW5kZXggMjlhYjFlYTYyZC4uODZmMWFhZTBjNyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVtb2l6ZS5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvbWVtb2l6ZS5zcWwKQEAgLTU3LDYgKzU3LDE3IEBAIExBVEVSQUwgKFNFTEVD VCB0Mi51bmlxdWUxIEZST00gdGVuazEgdDIKICAgICAgICAgIFdIRVJFIHQxLnR3ZW50eSA9IHQy LnVuaXF1ZTEgT0ZGU0VUIDApIHQyCiBXSEVSRSB0MS51bmlxdWUxIDwgMTAwMDsKIAorLS0gVHJ5 IHdpdGggTEFURVJBTCByZWZlcmVuY2VzIHdpdGhpbiBQbGFjZUhvbGRlclZhcnMKK1NFTEVDVCBl eHBsYWluX21lbW9pemUoJworU0VMRUNUIENPVU5UKCopLEFWRyh0MS50d2VudHkpIEZST00gdGVu azEgdDEgTEVGVCBKT0lOCitMQVRFUkFMIChTRUxFQ1QgdDEudHdlbnR5IGFzIGMxLCB0Mi51bmlx dWUxIGFzIGMyIEZST00gdGVuazEgdDIpIHMgb24gdHJ1ZQorV0hFUkUgcy5jMSA9IHMuYzIgYW5k IHQxLnVuaXF1ZTEgPCAxMDAwOycsIGZhbHNlKTsKKworLS0gQW5kIGNoZWNrIHdlIGdldCB0aGUg ZXhwZWN0ZWQgcmVzdWx0cy4KK1NFTEVDVCBDT1VOVCgqKSxBVkcodDEudHdlbnR5KSBGUk9NIHRl bmsxIHQxIExFRlQgSk9JTgorTEFURVJBTCAoU0VMRUNUIHQxLnR3ZW50eSBhcyBjMSwgdDIudW5p cXVlMSBhcyBjMiBGUk9NIHRlbmsxIHQyKSBzIG9uIHRydWUKK1dIRVJFIHMuYzEgPSBzLmMyIGFu ZCB0MS51bmlxdWUxIDwgMTAwMDsKKwogLS0gUmVkdWNlIHdvcmtfbWVtIGFuZCBoYXNoX21lbV9t dWx0aXBsaWVyIHNvIHRoYXQgd2Ugc2VlIHNvbWUgY2FjaGUgZXZpY3Rpb25zCiBTRVQgd29ya19t ZW0gVE8gJzY0a0InOwogU0VUIGhhc2hfbWVtX211bHRpcGxpZXIgVE8gMS4wOwotLSAKMi4zMS4w Cgo= --000000000000ebb35e05ffa44cc6--