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.94.2) (envelope-from ) id 1uYbXM-008K78-Lq for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Jul 2025 02:24:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uYbXK-00GAtN-FF for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Jul 2025 02:24:55 +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.94.2) (envelope-from ) id 1uYbXK-00GAtE-4F for pgsql-hackers@lists.postgresql.org; Mon, 07 Jul 2025 02:24:54 +0000 Received: from mail-ua1-x92d.google.com ([2607:f8b0:4864:20::92d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uYbXI-0069WI-0m for pgsql-hackers@lists.postgresql.org; Mon, 07 Jul 2025 02:24:54 +0000 Received: by mail-ua1-x92d.google.com with SMTP id a1e0cc1a2514c-87ed676e631so1896745241.3 for ; Sun, 06 Jul 2025 19:24:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751855090; x=1752459890; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=cPncFzIxNgpj2ebWRDg9Wkgmz3LK4AIvKSVQDg/70+A=; b=JW1wFOcZeVmu2bXufVUC+H64bPurXdAhj8McTSFkNaGlCOLj67381oKCbemz+jbSB2 JBKCBfrbF3vXol0IJ2CWNsruGQTNANNFB7Tjnh05ufFlFBR6uZGcaU9kzyUKz+He6+qy 00+btZdNVF6pRny6U1rln3zUVbMMRzWXiSNFiXTC8VwjiWOvs2f1wQg74851PLIfzk21 37Qd3IP/PnV4rS6IZaeVYMqXMwaNMk4cynKaeUWn3UK4KL3fQ8TvGEbMdmT9Z/QtiT6K Z/Pv+Pb7HMhceT7/pEUepqo2g66Edd0PnA5E7Zdi1WTz211bCgUfoJavLuAtghrXrk8i twAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751855090; x=1752459890; 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=cPncFzIxNgpj2ebWRDg9Wkgmz3LK4AIvKSVQDg/70+A=; b=bjY8pojThvBffLlxdxqy5WFBd7pR2kmJknvw8bpyXjy1tuYdX2hQjQqAAkroNNL1pF dRzlf8G0+ShRjgm5BvWdY0k7b5d80nS/A954lXbb0/VJ6IPtB1i00k/4QyoSpxEZ8fzq MhcSjGEO1HddT8OzchXmMTXGc9H6kQXyFQslFr3jjIs5whiSAht2/t/SM/eOXRKJjwGb US4P64dy/joW6MId4fm2BNtfhkn0BS51RtRVIaKYnFjIairVBomt6QdXZNExbPbmWJOX f3Y2VqHhFp3xGBM8SOFgLjP8lzLnflIDoOxMlMZz6LSQiSEbllZ8d1AN9SBEHlqouj3l ljvA== X-Gm-Message-State: AOJu0YyPz5OmF6maS+453jYds0I4NzYhRHf1LQa9RG55bEmQK2Dd/FoI hVu+QNVjI5AwIwunM9eN4rJg56GxEdRQbMYEi/nGdIgGIWkvGWfl+M/AWCHjPCwZ0P4DnPNBTzs QRyi0X5mKFrR76pvJZ757OTsBZSXfbdMFRjhWFPY= X-Gm-Gg: ASbGncs8GBRPlt1Pn2V5OAiKo4DxCuDfs5tjJW3wexMFgOz0L3vJGdWNPWlzs0XfiFt /iwYvxpW3v/lxaoyInp4PUBv1oU+vOvhtWuBup0+ZXPu3zCEtjOaPlqEC1QcqwFNj32WwcgA9wI ezEnc3dw3I/4DJDNjslT1bdtWq6f6w0qX5CRr/SDzJ8IYjeqY7vTRP8hIdgmI3YwOyDgNVdOS7Y vg= X-Google-Smtp-Source: AGHT+IErac7VuBOI5fhce40RVjnIn/uKW4CBdY0gU53FcybhIeRsj8OaT5yWZtGrUMM93yDgpW+CnRpM3uijyzJl0PQ= X-Received: by 2002:a05:6102:c47:b0:4e7:cbf9:43a1 with SMTP id ada2fe7eead31-4f305bbbdbamr3443698137.23.1751855089735; Sun, 06 Jul 2025 19:24:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Mon, 7 Jul 2025 10:24:13 +0800 X-Gm-Features: Ac12FXzs8AIOa2i0YFvPq67vrpuF2gRN3tXen-aCoCOnoGrQWSL2QJWzA454OHA Message-ID: Subject: Re: support ALTER COLUMN SET EXPRESSION over virtual generated column with check constraint To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000052871206394d8c2c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000052871206394d8c2c Content-Type: text/plain; charset="UTF-8" hi. rebased only. --00000000000052871206394d8c2c Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-allow-change-generated-expression-while-check-constraint-.patch" Content-Disposition: attachment; filename="v2-0001-allow-change-generated-expression-while-check-constraint-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mcsh9byq0 RnJvbSAzZmY3ZGQwZmQyNjBhNmIzYTM1Zjg2NTJmMDg0MGFiOTZiYzY4YzcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNyBKdWwgMjAyNSAxMDowNzoyNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIg MS8xXSBhbGxvdyBjaGFuZ2UgZ2VuZXJhdGVkIGV4cHJlc3Npb24gd2hpbGUgY2hlY2sKIGNvbnN0 cmFpbnQgb24gaXQKCmN1cnJlbnRseSwgaWYgd2UgaGF2ZSBjaGVjayBjb25zdHJhaW50cyBvdmVy IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbgp0aGVuIHdlIGNhbiBub3QgY2hhbmdlIHRoZSBnZW5l cmF0aW9uIGV4cHJlc3Npb24uCmZvciBleGFtcGxlOgpDUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBp bnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIENIRUNLIChiIDwg NTApKTsKSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgxMCk7CkFMVEVSIFRBQkxFIGd0 ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgLS1lcnJvcgoK YXR0YWNoZWQgcGF0Y2ggdHJ5IHRvIHJlc29sdmUgdGhpcyBpc3N1ZS4KCm1haW4gZ290Y2hhIGlz IGluIEFURXhlY1NldEV4cHJlc3Npb24sIFJlbWVtYmVyQWxsRGVwZW5kZW50Rm9yUmVidWlsZGlu ZyB3aWxsIGRvCmFsbCB0aGUgd29yay4gIGFsc28gYWRkIGEgdGVzdCBmb3IgQUxURVIgVEFCTEUg U0VUIEVYUFJFU1NJT04gZm9yIHZpcnR1YWwKZ2VuZXJhdGVkIGNvbHVtbiB3aWxsIG5vdCBkbyB0 YWJsZSByZXdyaXRlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SDNW RVRyN29yRjVyVzI5R25EazNuMXdXYk9FM1dka0hZZDNpUEdyUTlFX0FAbWFpbC5nbWFpbC5jb20K Y29tbWl0ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzU2NDUv Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgMjYg KysrKystLS0tLS0tLS0tLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwu b3V0ICAgIHwgMzEgKysrKysrKysrKysrKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2Vu ZXJhdGVkX3ZpcnR1YWwuc3FsICAgIHwgMTggKysrKysrKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwg NDggaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YwppbmRleCBjYjgxMTUyMGMyOS4uZDJlOTEyODE5NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCkBAIC04NjAwLDE4ICs4NjAwLDYgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVkVGFi bGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBnZW5lcmF0ZWQg Y29sdW1uIiwKIAkJCQkJCWNvbE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7 CiAKLQkvKgotCSAqIFRPRE86IFRoaXMgY291bGQgYmUgZG9uZSwganVzdCBuZWVkIHRvIHJlY2hl Y2sgYW55IGNvbnN0cmFpbnRzCi0JICogYWZ0ZXJ3YXJkcy4KLQkgKi8KLQlpZiAoYXR0Z2VuZXJh dGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCAmJgotCQlyZWwtPnJkX2F0dC0+Y29u c3RyICYmIHJlbC0+cmRfYXR0LT5jb25zdHItPm51bV9jaGVjayA+IDApCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBl cnJtc2coIkFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3Ig dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0YWJsZXMgd2l0aCBjaGVjayBjb25zdHJhaW50 cyIpLAotCQkJCSBlcnJkZXRhaWwoIkNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlz IGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLiIsCi0JCQkJCQkgICBjb2xOYW1lLCBSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwotCiAJaWYgKGF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwgJiYgYXR0VHVwLT5hdHRub3RudWxsKQogCQl0YWItPnZlcmlm eV9uZXdfbm90bnVsbCA9IHRydWU7CiAKQEAgLTg2NDQsMTUgKzg2MzIsMTUgQEAgQVRFeGVjU2V0 RXhwcmVzc2lvbihBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hh ciAqY29sTmFtZSwKIAogCQkvKiBtYWtlIHN1cmUgd2UgZG9uJ3QgY29uZmxpY3Qgd2l0aCBsYXRl ciBhdHRyaWJ1dGUgbW9kaWZpY2F0aW9ucyAqLwogCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgp OwotCi0JCS8qCi0JCSAqIEZpbmQgZXZlcnl0aGluZyB0aGF0IGRlcGVuZHMgb24gdGhlIGNvbHVt biAoY29uc3RyYWludHMsIGluZGV4ZXMsCi0JCSAqIGV0YyksIGFuZCByZWNvcmQgZW5vdWdoIGlu Zm9ybWF0aW9uIHRvIGxldCB1cyByZWNyZWF0ZSB0aGUgb2JqZWN0cwotCQkgKiBhZnRlciByZXdy aXRlLgotCQkgKi8KLQkJUmVtZW1iZXJBbGxEZXBlbmRlbnRGb3JSZWJ1aWxkaW5nKHRhYiwgQVRf U2V0RXhwcmVzc2lvbiwgcmVsLCBhdHRudW0sIGNvbE5hbWUpOwogCX0KIAorCS8qCisJICogRmlu ZCBldmVyeXRoaW5nIHRoYXQgZGVwZW5kcyBvbiB0aGUgY29sdW1uIChjb25zdHJhaW50cywgaW5k ZXhlcywgZXRjKSwKKwkgKiBhbmQgcmVjb3JkIGVub3VnaCBpbmZvcm1hdGlvbiB0byBsZXQgdXMg cmVjcmVhdGUgdGhlIG9iamVjdHMgYWZ0ZXIKKwkgKiByZXdyaXRlLgorCSovCisJUmVtZW1iZXJB bGxEZXBlbmRlbnRGb3JSZWJ1aWxkaW5nKHRhYiwgQVRfU2V0RXhwcmVzc2lvbiwgcmVsLCBhdHRu dW0sIGNvbE5hbWUpOworCiAJLyoKIAkgKiBEcm9wIHRoZSBkZXBlbmRlbmN5IHJlY29yZHMgb2Yg dGhlIEdFTkVSQVRFRCBleHByZXNzaW9uLCBpbiBwYXJ0aWN1bGFyCiAJICogaXRzIElOVEVSTkFM IGRlcGVuZGVuY3kgb24gdGhlIGNvbHVtbiwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGNhdXNlCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0CmluZGV4 IDNiNDBlMTVhOTVhLi4yYzgyNWZhMDZkNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKQEAgLTYzMywxMiArNjMzLDIyIEBAIElOU0VSVCBJ TlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAg KGEpIFZBTFVFUyAoMzApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogRVJST1I6ICBuZXcgcm93 IGZvciByZWxhdGlvbiAiZ3Rlc3QyMCIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3Qy MF9iX2NoZWNrIgogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDMwLCB2aXJ0dWFsKS4K LUFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEg KiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludCAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQp Ci1FUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBm b3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0YWJsZXMgd2l0aCBjaGVjayBjb25zdHJh aW50cwotREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMCIgaXMgYSB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW4uCi1BTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBi IFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBvayAoY3VycmVudGx5IG5vdCBzdXBwb3J0 ZWQpCi1FUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRl ZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0YWJsZXMgd2l0aCBjaGVjayBjb25z dHJhaW50cwotREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMCIgaXMgYSB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCitBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVN TiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQK K0VSUk9SOiAgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3QyMF9iX2NoZWNrIiBvZiByZWxhdGlvbiAi Z3Rlc3QyMCIgaXMgdmlvbGF0ZWQgYnkgc29tZSByb3cKK0FMVEVSIFRBQkxFIGd0ZXN0MjAgQUxU RVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgIC0tIG9rCistLXRlc3Qgbm8g dGFibGUgcmV3cml0ZSBoYXBwZW4KK0FMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIg U0VUIEVYUFJFU1NJT04gQVMgKGEgKiA0KSwgQUREIENPTFVNTiBDIGludCBkZWZhdWx0IDExOwor U0VMRUNUICBwYS5hdHRudW0scGEuYXR0bmFtZSxhdHRtaXNzaW5ndmFsCitGUk9NICAgIHBnX2F0 dHJpYnV0ZSBwYQorSk9JTiAgICBwZ19hdHRyZGVmIHBhdHQgT04gcGEuYXR0cmVsaWQgPSBwYXR0 LmFkcmVsaWQgQU5EIHBhLmF0dG51bSA9IHBhdHQuYWRudW0KK1dIRVJFICAgcGEuYXR0cmVsaWQg PSAnZ3Rlc3QyMCc6OnJlZ2NsYXNzCitPUkRFUiBCWSBwYS5hdHRudW07CisgYXR0bnVtIHwgYXR0 bmFtZSB8IGF0dG1pc3Npbmd2YWwgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t CisgICAgICAyIHwgYiAgICAgICB8IAorICAgICAgMyB8IGMgICAgICAgfCB7MTF9CisoMiByb3dz KQorCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAo YSkgVkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAoYSkgVkFMVUVTICgzMCk7CkBA IC05ODIsNiArOTkyLDE1IEBAIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVz dF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKICBndGVzdF9jaGlsZDMgfCAwOS0xMy0yMDE2IHwg IDEgfCAgNAogKDMgcm93cykKIAorLS1jaGVjayBjb25zdHJhaW50IHdhcyB2YWxpZGF0ZWQgYmFz ZWQgb24gZWFjaCBwYXJ0aXRpb25zJ3MgZ2VuZXJhdGlvbiBleHByZXNzaW9uCitBTFRFUiBUQUJM RSBndGVzdF9wYXJlbnQgQUREIENPTlNUUkFJTlQgY2MxIENIRUNLIChmMyA8IDE5KTsgLS1lcnJv cgorRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJjYzEiIG9mIHJlbGF0aW9uICJndGVzdF9jaGls ZCIgaXMgdmlvbGF0ZWQgYnkgc29tZSByb3cKK0FMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBREQg Q09OU1RSQUlOVCBjYzEgQ0hFQ0sgKGYzIDwgNjYpOyAtLWVycm9yCitFUlJPUjogIGNoZWNrIGNv bnN0cmFpbnQgImNjMSIgb2YgcmVsYXRpb24gImd0ZXN0X2NoaWxkMiIgaXMgdmlvbGF0ZWQgYnkg c29tZSByb3cKK0FMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBREQgQ09OU1RSQUlOVCBjYzEgQ0hF Q0sgKGYzIDw+IDMzKTsgLS1lcnJvcgorRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJjYzEiIG9m IHJlbGF0aW9uICJndGVzdF9jaGlsZDMiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93CitBTFRFUiBU QUJMRSBndGVzdF9wYXJlbnQgQUREIENPTlNUUkFJTlQgY2MgQ0hFQ0sgKGYzIDwgNjcpOyAtLW9r CitBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgRFJPUCBDT05TVFJBSU5UIGNjOwogLS0gYWx0ZXIg Z2VuZXJhdGlvbiBleHByZXNzaW9uIG9mIHBhcmVudCBhbmQgYWxsIGl0cyBjaGlsZHJlbiBhbHRv Z2V0aGVyCiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQUxURVIgQ09MVU1OIGYzIFNFVCBFWFBS RVNTSU9OIEFTIChmMiAqIDIpOwogXGQgZ3Rlc3RfcGFyZW50CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKaW5kZXggZTJiMzE4NTNlMDEuLjRiZmYzZWFjMDM1IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCkBAIC0zMTMsOCAr MzEzLDE1IEBAIENSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVCiBJTlNFUlQgSU5UTyBndGVzdDIwIChh KSBWQUxVRVMgKDEwKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIwIChhKSBWQUxVRVMgKDMw KTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIAotQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRFUiBD T0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEwMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJh aW50IChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKLUFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIg Q09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgIC0tIG9rIChjdXJyZW50bHkgbm90 IHN1cHBvcnRlZCkKK0FMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJF U1NJT04gQVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAorQUxURVIgVEFCTEUg Z3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sK Ky0tdGVzdCBubyB0YWJsZSByZXdyaXRlIGhhcHBlbgorQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRF UiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpLCBBREQgQ09MVU1OIEMgaW50IGRl ZmF1bHQgMTE7CitTRUxFQ1QgIHBhLmF0dG51bSxwYS5hdHRuYW1lLGF0dG1pc3Npbmd2YWwKK0ZS T00gICAgcGdfYXR0cmlidXRlIHBhCitKT0lOICAgIHBnX2F0dHJkZWYgcGF0dCBPTiBwYS5hdHRy ZWxpZCA9IHBhdHQuYWRyZWxpZCBBTkQgcGEuYXR0bnVtID0gcGF0dC5hZG51bQorV0hFUkUgICBw YS5hdHRyZWxpZCA9ICdndGVzdDIwJzo6cmVnY2xhc3MKK09SREVSIEJZIHBhLmF0dG51bTsKIAog Q1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZB TFVFUyAoMTApOwpAQCAtNTMyLDYgKzUzOSwxMyBAQCBBTFRFUiBUQUJMRSBndGVzdF9jaGlsZCBB TFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKGYyICogMTApOwogXGQgZ3Rlc3RfY2hp bGQzCiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVS IEJZIDEsIDIsIDM7CiAKKy0tY2hlY2sgY29uc3RyYWludCB3YXMgdmFsaWRhdGVkIGJhc2VkIG9u IGVhY2ggcGFydGl0aW9ucydzIGdlbmVyYXRpb24gZXhwcmVzc2lvbgorQUxURVIgVEFCTEUgZ3Rl c3RfcGFyZW50IEFERCBDT05TVFJBSU5UIGNjMSBDSEVDSyAoZjMgPCAxOSk7IC0tZXJyb3IKK0FM VEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBREQgQ09OU1RSQUlOVCBjYzEgQ0hFQ0sgKGYzIDwgNjYp OyAtLWVycm9yCitBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQUREIENPTlNUUkFJTlQgY2MxIENI RUNLIChmMyA8PiAzMyk7IC0tZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBREQgQ09O U1RSQUlOVCBjYyBDSEVDSyAoZjMgPCA2Nyk7IC0tb2sKK0FMVEVSIFRBQkxFIGd0ZXN0X3BhcmVu dCBEUk9QIENPTlNUUkFJTlQgY2M7CisKIC0tIGFsdGVyIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBv ZiBwYXJlbnQgYW5kIGFsbCBpdHMgY2hpbGRyZW4gYWx0b2dldGhlcgogQUxURVIgVEFCTEUgZ3Rl c3RfcGFyZW50IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lPTiBBUyAoZjIgKiAyKTsKIFxk IGd0ZXN0X3BhcmVudAotLSAKMi4zNC4xCgo= --00000000000052871206394d8c2c--