Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wIL8Q-007zrR-2P for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Apr 2026 06:44:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wIL8Q-006OcB-09 for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Apr 2026 06:44:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wIL8P-006Obr-2M for pgsql-hackers@lists.postgresql.org; Thu, 30 Apr 2026 06:44:29 +0000 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wIL8N-00000003wHc-1VLI for pgsql-hackers@lists.postgresql.org; Thu, 30 Apr 2026 06:44:29 +0000 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-43d77f6092eso315316f8f.2 for ; Wed, 29 Apr 2026 23:44:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777531466; cv=none; d=google.com; s=arc-20240605; b=VHy0QR75KZeX+z0C7TiS/KeUXtBf4T+LTU/hmTUA4oPjEWaF/v47nq9qqbzxTSZMdf 77PieC/gL3cUDDIIv4NHQcQ/4mGdHiTAeEg4wt8ScE1FQ4y/BGYmfOJTzE3UJyd+usdV p/783OR+DZry95cqXaMtlRX0n+CCbDnKO0r2aRrKhFc2cK6dXgfpt0HNmpM5TzzNYGk7 TWQidaAKQBhXwNEkv7yv52sIWuZi2ES41rttRy41xZTU8jzQVTzizvW+XOrwDVhnFhSw G+t6yRzSUTw1Tr020+tVmVmnBHEj4Uh9rjt8FSKXuR5v9ZJj+JoPqz5vm1pwvBj4HWDY krtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=d1R73uBmoYKoFQFcIgfrR31ySZ05A1+oXgvju8/SZxo=; fh=3yt7oeB1eUsSBzUrWUuwSTyM+DIKru38VqodfhbWPkU=; b=Bn0vSLW4vjor1K0jroA3MUr4rZTrumnsWchzLeIFSj7RCILX9OQfKV6UXZi7ky7SBL MTxK6pf+saTjqO8+xNob7vZsUHtyqzklXncflfYwTKE5nKNZiKprczvAaMsFNqW2kI0f uOQK2CO8ufEkNgDi8WzmX+Lr67SWkj+BRCVsY9CK1oe9ElntycpwGixuMk6IbJKkrA14 3I6krcaMZNDymYEQyhdXncT1xGackzHRJeHU97l4H03tOU8+zauhfQBsCO4DjtCrVsAc zK0dUD16o4vFPF2Ygs88AdHryvYxi0xaea/h6Uy3C3SucZktFjCW8NM+Jv61l60WcEeJ PavA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777531466; x=1778136266; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=d1R73uBmoYKoFQFcIgfrR31ySZ05A1+oXgvju8/SZxo=; b=OISM1IXrKjQFtqPAFlMGFtGsrVhTFj2eZ4bF6YxkX4Njc+FRzu7Ggmmyybe+lpi0DN aiFhYxM64S7qcT9eQkgBu1ZJab302UbcA1VUweNBSM0JrT/paefWQr27lxrPMa4KizHU YQozKtOgcv6fPJUaX8iO6g1LxZZfb5xlG5Sd0IY7Xt0YduqowdRnyrQs5N7RxNAUOx3v krKjGT0pvcogpkFFuXPmcQHLemdAMyI9pKOWpHzzWaaZuSGYWVQyigtzjRJLn1+2oBxa Uf1KDeZZD4b6uxwSlF7M81RJ6ord25PAQ8tuS0caK57JiIDXoLAoWqiYv68VzqChAbM/ 51fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777531466; x=1778136266; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=d1R73uBmoYKoFQFcIgfrR31ySZ05A1+oXgvju8/SZxo=; b=Qkgmaf1DjBRUuZL7RFC+K15MGx/HA9zy24Pt+FUhr8TLS0pOTwgFJydNNB0kw200eN DRHTA8Ti6CS1fsceOON50N1ST014SVtgFm3bfgX5nEoOuS0WZ85faba/WXUwKPVwzYgQ o3AC+ZbY/0TN7/jl+NIdlHGY12BteRGCKI/hL1afU2zSvRBBr1x2b7Wr3uJfHbRPD8tc ClhbZ6xQiUaPEtl6ZBvMVPX3tyqBQ0kUiGjSfq/+Qeqk2YIofAALYrX5tuTaBJX8GtIP UTL/vdGZ9c5X7RmihqtK28cbpvB/v8jaEL8HhZg6TQwnaZgbDw+mDwvhmbBgu3L0MPNi H1kA== X-Forwarded-Encrypted: i=1; AFNElJ/3anhLLqcbQ0ZrxdghhgSnlK1QVybv8U5moxyBVkCbdVWCbb9OqhkW6T0hNxFw8mA5H+jCTFmRX924mw5Q@lists.postgresql.org X-Gm-Message-State: AOJu0YweIxtc2qOSVxCBxlGcsw7qhCD62E4aU8Qxh0TZchDWruy07vh4 wLYy03IDFfIvxszKNwMXegDXrWPwO+6BbO4W9RVxr77/uH5xxi3oFcLbBxWBJKMYFgHmjL8/dfI vIRd04F1v8cZSJPtFmBjH/P1n1n/5BmA= X-Gm-Gg: AeBDieuTiHxdUfSmtNLRIfaVcBDa/E2Jgiir5UTzT9u5YAjv0jj2NNNYomJKPQC7Ecb /GSEBTNekPvx4Yf8G7gddBPv5w3NRLbOhq0W98asHmMZmKh3YzgAMCfi+4h1tGgImk/VDFiDPz7 tAjCwsTzr9YE9UETln2c9S95ilO3lboq3c+VhlFWdh+oomDdBfEpLKBH1ReKc1SpoHX49tNS89I wWsJukisooBWSk0564ztsq+frFP3JeD+lYvDVn74RbvCVqqHv9i5YwDaGNWdcWUaTQ37EBXiM5q jaEQG+WV0mCgkw3k63zJvO6pVFtZ7dOf4m9fyyv4ak1HqxlBEBbYggggDfWsJO3l X-Received: by 2002:a05:6000:2385:b0:441:2381:b630 with SMTP id ffacd0b85a97d-4493f42d2f5mr2405353f8f.24.1777531466064; Wed, 29 Apr 2026 23:44:26 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ashutosh Bapat Date: Thu, 30 Apr 2026 12:14:13 +0530 X-Gm-Features: AVHnY4KTemc2iCG6yxPMyyIgHv-jinoauLGYdy7ZTPx5NvLMNMm0dsjAzRY8Xcs Message-ID: Subject: Re: [Patch]Add Graph* node support to expression_tree_mutator To: Robert Haas Cc: SATYANARAYANA NARLAPURAM , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000009ccd130650a7cbd5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009ccd130650a7cbd5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Apr 30, 2026 at 2:17=E2=80=AFAM Robert Haas = wrote: > Thanks for reviewing the patch. > Thanks for working on this. I ran into it independently today, and > then discovered this thread. In expression_tree_mutator_impl, > T_GraphLabelRef can be added to the "Primitive node types with no > expression subnodes" section just as was done in > expression_tree_walker_impl. Right. Fixed in the attached patch. Both GraphPropertyLabel and GraphLabelRef need to be placed in that section since both are primitive nodes. --=20 Best Wishes, Ashutosh Bapat --0000000000009ccd130650a7cbd5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20260430-0001-Handle-nodes-that-may-appear-in-GraphPatte.patch" Content-Disposition: attachment; filename="v20260430-0001-Handle-nodes-that-may-appear-in-GraphPatte.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mol4b5t30 RnJvbSBmMmU4NDc0MjFjNTJlYTMwNzNhODJjYzMwYWQwMDcyZDVjZDY4YzU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzYXR5YW5hcmF5YW5hIG5hcmxhcHVyYW0gPHNhdHlhbmFybGFw dXJhbUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjEgQXByIDIwMjYgMTQ6MzM6MzMgKzAwMDAKU3Vi amVjdDogW1BBVENIIHYyMDI2MDQzMCAzLzVdIEhhbmRsZSBub2RlcyB0aGF0IG1heSBhcHBlYXIg aW4gR3JhcGhQYXR0ZXJuCiBleHByZXNzaW9uIHRyZWVzCgpleHByZXNzaW9uX3RyZWVfbXV0YXRv cl9pbXBsKCkgd2FzIGRvZXMgbm90IGhhbmRsZSBUX0dyYXBoUGF0dGVybiwKVF9HcmFwaEVsZW1l bnRQYXR0ZXJuLCBhbmQgVF9HcmFwaFByb3BlcnR5UmVmLiAgVGhlIGNvcnJlc3BvbmRpbmcKZXhw cmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKCkgYWxyZWFkeSBoYW5kbGVzIGFsbCB0aHJlZSBub2Rl IHR5cGVzLiBUaGlzCmNhdXNlcyBhbiAidW5yZWNvZ25pemVkIG5vZGUgdHlwZSAiIGVycm9yIHdo ZW5ldmVyIGEgR1JBUEhfVEFCTEUKYXBwZWFyZWQgaW4gYW4gZXhwcmVzc2lvbiB0cmVlLgoKV2hp bGUgYXQgaXQgYWxzbyB1cGRhdGUgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXIoKSBhbmQKZXhw cmVzc2lvbl90cmVlX3dhbGtlcigpIHRvIGhhbmRsZSBtaXNzaW5nIG5vZGVzIHRoYXQgbWF5IGFw cGVhciBpbgpHcmFwaFBhdHRlcm4gZXhwcmVzc2lvbiB0cmVlcy4gV2hlbiByYXdfZXhwcmVzc2lv bl90cmVlX3dhbGtlcigpIGlzCmNhbGxlZCwgR3JhcGhFbGVtZW50UGF0dGVybjo6bGFiZWxleHBy IGRvZXMgY29udGFpbnMgQ29sdW1uUmVmcyBpbnN0ZWFkCm9mIEdyYXBoTGFiZWxSZWZzLiBIZW5j ZSB0aG9zZSBhcmUgbm90IGhhbmRsZWQgaW4KcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXIoKS4K ClJlcG9ydGVkIGJ5OiBTYXR5YW5hcmF5YW5hIE5hcmxhcHVyYW0gPHNhdHlhbmFybGFwdXJhbUBn bWFpbC5jb20+CkF1dGhvcjogU2F0eWFuYXJheWFuYSBOYXJsYXB1cmFtIDxzYXR5YW5hcmxhcHVy YW1AZ21haWwuY29tPgpBdXRob3I6IEFzaHV0b3NoIEJhcGF0IDxhc2h1dG9zaC5iYXBhdC5vc3NA Z21haWwuY29tPgpSZXZpZXdlZCBieTogQXNodXRvc2ggQmFwYXQgPGFzaHV0b3NoLmJhcGF0Lm9z c0BnbWFpbC5jb20+ClJldmlld2VkIGJ5OiBSb2JlcnQgSGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwu Y29tPgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL0NB SGcrUURjOTdXRlRTa1hnPWdfWkFIOEduWTJnSnJ2cTcyY3MrWWpxRUF1WmdYbmtBUUBtYWlsLmdt YWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgIHwg MzEgKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3Jh cGhfdGFibGUub3V0IHwgMTUgKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBo X3RhYmxlLnNxbCAgICAgIHwgIDkgKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCA3ZWRiZDViNzIyNS4uYTcxMmI3NmVlYjEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0yMTM1LDYgKzIxMzUsNyBAQCBleHByZXNzaW9uX3Ry ZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2FzZSBUX1JhbmdlVGJsUmVmOgogCQljYXNl IFRfU29ydEdyb3VwQ2xhdXNlOgogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgorCQljYXNlIFRf R3JhcGhMYWJlbFJlZjoKIAkJY2FzZSBUX0dyYXBoUHJvcGVydHlSZWY6CiAJCWNhc2UgVF9NZXJn ZVN1cHBvcnRGdW5jOgogCQkJLyogcHJpbWl0aXZlIG5vZGUgdHlwZXMgd2l0aCBubyBleHByZXNz aW9uIHN1Ym5vZGVzICovCkBAIC0yNjk4LDYgKzI2OTksOCBAQCBleHByZXNzaW9uX3RyZWVfd2Fs a2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCXsKIAkJCQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAg PSAoR3JhcGhFbGVtZW50UGF0dGVybiAqKSBub2RlOwogCisJCQkJaWYgKFdBTEsoZ2VwLT5sYWJl bGV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhnZXAtPnN1YmV4cHIpKQog CQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhnZXAtPndoZXJlQ2xhdXNlKSkKQEAgLTMw NjIsNiArMzA2NSw4IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwK IAkJY2FzZSBUX1NvcnRHcm91cENsYXVzZToKIAkJY2FzZSBUX0NURVNlYXJjaENsYXVzZToKIAkJ Y2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CisJCWNhc2UgVF9HcmFwaExhYmVsUmVmOgorCQljYXNl IFRfR3JhcGhQcm9wZXJ0eVJlZjoKIAkJCXJldHVybiBjb3B5T2JqZWN0KG5vZGUpOwogCQljYXNl IFRfV2l0aENoZWNrT3B0aW9uOgogCQkJewpAQCAtMzgxNCw2ICszODE5LDMwIEBAIGV4cHJlc3Np b25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3 bm9kZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfR3JhcGhFbGVtZW50UGF0dGVybjoKKwkJ CXsKKwkJCQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAgPSAoR3JhcGhFbGVtZW50UGF0dGVybiAq KSBub2RlOworCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKm5ld25vZGU7CisKKwkJCQlGTEFUQ09Q WShuZXdub2RlLCBnZXAsIEdyYXBoRWxlbWVudFBhdHRlcm4pOworCQkJCU1VVEFURShuZXdub2Rl LT5sYWJlbGV4cHIsIGdlcC0+bGFiZWxleHByLCBOb2RlICopOworCQkJCU1VVEFURShuZXdub2Rl LT5zdWJleHByLCBnZXAtPnN1YmV4cHIsIExpc3QgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPndo ZXJlQ2xhdXNlLCBnZXAtPndoZXJlQ2xhdXNlLCBOb2RlICopOworCQkJCW5ld25vZGUtPnF1YW50 aWZpZXIgPSBsaXN0X2NvcHkoZ2VwLT5xdWFudGlmaWVyKTsKKwkJCQlyZXR1cm4gKE5vZGUgKikg bmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfR3JhcGhQYXR0ZXJuOgorCQkJewor CQkJCUdyYXBoUGF0dGVybiAqZ3AgPSAoR3JhcGhQYXR0ZXJuICopIG5vZGU7CisJCQkJR3JhcGhQ YXR0ZXJuICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwgZ3AsIEdyYXBoUGF0dGVy bik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnBhdGhfcGF0dGVybl9saXN0LCBncC0+cGF0aF9wYXR0 ZXJuX2xpc3QsIExpc3QgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPndoZXJlQ2xhdXNlLCBncC0+ d2hlcmVDbGF1c2UsIE5vZGUgKik7CisJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CisJCQl9 CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9k ZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcobm9kZSkpOwpAQCAtNDc5Niw2ICs0ODI1 LDggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJewog CQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IChHcmFwaEVsZW1lbnRQYXR0ZXJuICopIG5v ZGU7CiAKKwkJCQlpZiAoV0FMSyhnZXAtPmxhYmVsZXhwcikpCisJCQkJCXJldHVybiB0cnVlOwog CQkJCWlmIChXQUxLKGdlcC0+c3ViZXhwcikpCiAJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChX QUxLKGdlcC0+d2hlcmVDbGF1c2UpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ncmFwaF90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3Rh YmxlLm91dAppbmRleCAxMmI4NzA2YjVmMy4uODAzOGZjZDM5YjcgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBAIC0xMDMyLDQgKzEwMzIsMTkgQEAgU0VMRUNU IHNuYW1lLCBkbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpIFdI RVJFIHNyYy52cHJvcDEgPgogRVJST1I6ICBzdWJxdWVyaWVzIHdpdGhpbiBHUkFQSF9UQUJMRSBy ZWZlcmVuY2UgYXJlIG5vdCBzdXBwb3J0ZWQKIFNFTEVDVCBzbmFtZSwgZG5hbWUgRlJPTSBHUkFQ SF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyktPihkZXN0KSBXSEVSRSBvdXRfZGVncmVlKHNyYy52bmFt ZSkgPiAoU0VMRUNUIG1heChvdXRfZGVncmVlKG5uYW1lKSkgRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKG5vZGUpIENPTFVNTlMgKG5vZGUudm5hbWUgQVMgbm5hbWUpKSkgQ09MVU1OUyhzcmMu dm5hbWUgQVMgc25hbWUsIGRlc3Qudm5hbWUgQVMgZG5hbWUpKTsKIEVSUk9SOiAgc3VicXVlcmll cyB3aXRoaW4gR1JBUEhfVEFCTEUgcmVmZXJlbmNlIGFyZSBub3Qgc3VwcG9ydGVkCistLSBHUkFQ SF9UQUJMRSBzdWJxdWVyeSBpbiBIQVZJTkcgY2xhdXNlCitTRUxFQ1Qgc3JjLnZuYW1lLCBjb3Vu dCgqKQorICBGUk9NIHYxIEFTIHNyYworICBHUk9VUCBCWSBzcmMudm5hbWUKKyAgSEFWSU5HIGNv dW50KCopID49IChTRUxFQ1QgY291bnQoKikKKyAgICAgICAgICAgICAgICAgICAgICAgIEZST00g R1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIElTIHZsMSB8IHZsMikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGEudm5hbWUgQVMgbikpCisgICAgICAg ICAgICAgICAgICAgICAgIFdIRVJFIG4gPSBzcmMudm5hbWUpOworIHZuYW1lIHwgY291bnQgCist LS0tLS0tKy0tLS0tLS0KKyB2MTMgICB8ICAgICAxCisgdjEyICAgfCAgICAgMQorIHYxMSAgIHwg ICAgIDEKKygzIHJvd3MpCisKIC0tIGxlYXZlIHRoZSBvYmplY3RzIGJlaGluZCBmb3IgcGdfdXBn cmFkZS9wZ19kdW1wIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFw aF90YWJsZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKaW5kZXgg YTVkZjQ2NDdiNmEuLmEzNjgxYzZjMGVmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ncmFwaF90YWJsZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUu c3FsCkBAIC01OTAsNCArNTkwLDEzIEBAIFNFTEVDVCAqIEZST00gY3VzdG9tZXJzIGNvIFdIRVJF IGNvLmN1c3RvbWVyX2lkID0gKFNFTEVDVCBjdXN0b21lcl9pZCBGUk9NIEdSQVBICiBTRUxFQ1Qg c25hbWUsIGRuYW1lIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChzcmMpLT4oZGVzdCkgV0hF UkUgc3JjLnZwcm9wMSA+IChTRUxFQ1QgbWF4KHYxLnZwcm9wMSkgRlJPTSB2MSkgQ09MVU1OUyhz cmMudm5hbWUgQVMgc25hbWUsIGRlc3Qudm5hbWUgQVMgZG5hbWUpKTsKIFNFTEVDVCBzbmFtZSwg ZG5hbWUgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyktPihkZXN0KSBXSEVSRSBvdXRf ZGVncmVlKHNyYy52bmFtZSkgPiAoU0VMRUNUIG1heChvdXRfZGVncmVlKG5uYW1lKSkgRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKG5vZGUpIENPTFVNTlMgKG5vZGUudm5hbWUgQVMgbm5hbWUp KSkgQ09MVU1OUyhzcmMudm5hbWUgQVMgc25hbWUsIGRlc3Qudm5hbWUgQVMgZG5hbWUpKTsKIAor LS0gR1JBUEhfVEFCTEUgc3VicXVlcnkgaW4gSEFWSU5HIGNsYXVzZQorU0VMRUNUIHNyYy52bmFt ZSwgY291bnQoKikKKyAgRlJPTSB2MSBBUyBzcmMKKyAgR1JPVVAgQlkgc3JjLnZuYW1lCisgIEhB VklORyBjb3VudCgqKSA+PSAoU0VMRUNUIGNvdW50KCopCisgICAgICAgICAgICAgICAgICAgICAg ICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEgfCB2bDIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIChhLnZuYW1lIEFTIG4pKQor ICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBuID0gc3JjLnZuYW1lKTsKKwogLS0gbGVhdmUg dGhlIG9iamVjdHMgYmVoaW5kIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMKLS0gCjIuMzQu MQoK --0000000000009ccd130650a7cbd5--