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 1wF2G1-004gNn-0i for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 03:58:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wF2G0-005m26-1V for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 03:58:40 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wF2G0-005m1y-03 for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 03:58:40 +0000 Received: from mail-ua1-x936.google.com ([2607:f8b0:4864:20::936]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wF2Fx-000000021Xq-2Z1z for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 03:58:38 +0000 Received: by mail-ua1-x936.google.com with SMTP id a1e0cc1a2514c-94de664b541so981799241.1 for ; Mon, 20 Apr 2026 20:58:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776743917; cv=none; d=google.com; s=arc-20240605; b=XFUSINC3sH1Gkk3f/AEXm2KuAS0imWfnUKuDSiE0UFV/V6xCoZKEgpxQAmIiRnWf4z 8gACD2aaHs9ysgfRylSTrEQvhYXdUSKGfzGE5dSXSPqu9SyDhi1Jn4g1aSgt4wrr1ct8 USRDKe+/J+v1UrLScnu6Pbd77PiA7k4UIn5oWjDFE0U9SWZbcjS9lMcjuNP1enKLApFf WfAYQ4Z1vr/jGI2ZQ9Lj+Vp6Ano2uIZeii+Kw9HmHhDrS3l19CzE60JLaw2MtdhLARrs Zy5OiSOhzV/C1dBXGRkb04haAKC7XMvBrJ2JsFAMDwtV4kXZlx+QgqOCl510PhgEZ1rT rmKg== 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=sBYMAS2nCQ1x2foGO/NPlKWTuNIfpVxopxoAzILiocA=; fh=V7yPfxOIsz69KSZgNnV7JBSgJaoE6xBWWA/3OoJxfaI=; b=DVWuXo2+/sU2MX19plQwpz0roUWekth1PCx6ztdk3HcT+2vI9DBHcrOW91ZWFMnkWd GatPiz49uRKcWvSSEPQyz13mEydQb/VlaA9RwS1Gh4CtmPWJ6ROy0+Vtb4aMNsD8kQq2 qt8a+9V4yQ0BzXEtYr8RK/LR/XeWSP68zd0MhJbP+nzQ4ZB20OuHdybjmtH3Swq9+VZZ mrSkT6NjylkHf76qZXP6KYb7SXWCHmdmTpcuyQmqpcV0zOFLJP2lyMYDTdo7lCx17Zy8 jlptm6fmAfS8Sbgt5DR7B1lZjOy6zecnEeqiZ6ZG9mD9Uua18IP7aQyRbd3qi6DXnM2l gRHg==; 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=1776743917; x=1777348717; 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=sBYMAS2nCQ1x2foGO/NPlKWTuNIfpVxopxoAzILiocA=; b=NL9EThf/pdprYRnWi2WkTbh7pyhfl7/iUFC+MgCQ+syyVxSe3sKGXMPN+wikKcSrjT XcLV/g767riIQiWCRr+GehrEnRaNboxYQi+7Ito0ynwAOmMUReb9kRhguG+0dkphnvXo nAes3BLUToCn77FTnX75uRkVyDYXb1Q6RZXx/eiALmnx2uaRISkKOX70aYoJ0a6EvVbe CZ8lXzUWBhE1BP5VErCeHLEkw010p+vtgYq1ZoMLCJAYSvbQAq78TUGn4cj/x3zJPFHg me4rtgqu42LMXuD76luAzaGfbM8BMCAEa2/NykvJX1iqyiP22+cAE34WX1fgEkP6PAY+ 27oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776743917; x=1777348717; 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=sBYMAS2nCQ1x2foGO/NPlKWTuNIfpVxopxoAzILiocA=; b=nmNB3lJOVOP+6RbitVw+XpeRgiy+0bOQFyQ3wGXGxO+AYNN2ckrpOvLKWhRUgnfmF7 UJwr97mvN9HvBNMUaLpqvy8eQyyoJnNxA9S4m+e+CezeFkCH0aOZema8YqCNbYrlbF7K zOIaHD8O7Jo50HGbU1BhcifM9YjJ4LgQZIjG1aDsW7XDMu9VBXf97yRwW/CmNoV3rx9w T1FYkIL+0hpJcK22PzIj6VtJj1opCzzds58opwRwDQcr6H81ozvNBDaFqek5CEsTV1+r JI4t3JHV/nb4kjRCs+hUywgsw6mcb2xP2hvDFLkBGh16rWtILJFLJyVlk4u3EdWwkLrc W4Ow== X-Forwarded-Encrypted: i=1; AFNElJ/DPAS0uXIaieyyld2QiKR/C9t0XPbs/p1TAa6m8eGNrEmdVSBKcm773VYGxWTORy5FakMbbkS60LbABp5B@lists.postgresql.org X-Gm-Message-State: AOJu0Ywogebb9p5hIq5Kwc8xNvdAuPu6Km73A1ZJeQqgcfat2zctSGOt wC6uM5Fr6+ZKnuRa7EnDe6Rp74LmPnvSAy35wSaEybOVSSYgCMOtKMDIfmnFOZu0KRTKns9MxBO lZXGt7uK+0ENtgqZ5SVsp/UP3MrWoD5w= X-Gm-Gg: AeBDiev+b5pw9mmHMu7LbWhITnOml1Ea8bsqwi4li1euiYHvJOcI37VXyRk9oIn8xYB x5z23uN+rEiMDx9APgYbnrzddjAgxs04CzFNW0J3DA1ZueU12u6oKpzbXfdF3jU/K+C6mHmrK5r TIGfEEXez20cHsezeXr/ZOfR6lGKyCR0aNHO3NutbxsH+yEYGj0kix/Bs6+dLtCDK3+x1nKrL38 1jVnbM8kXmY6NY7DXyu63pSYxeT7bS21G7mj8UTaxpn7NXS7P1o+mJ5VjBOzheVS6KzASU0irvN tsW5VpJ8Y5wW4ARPNt1pxh6w6vwkamLICWqvA5u5ZZVjLiOafGdXBCguk5bbNbfee72YnGvqERG P+qWzU8VOJQjeLPixpEw0jyFGsCEqhiejE7tTruMkI9D3SXrWcuX2MUwykizbFvMp9aAFLIH4u+ wsZXYd9rCn/6i4RUgD5iZ0jaxd9Zw+ekKAOgNPvfM1Erg= X-Received: by 2002:a05:6102:2c82:b0:612:21f8:5af8 with SMTP id ada2fe7eead31-616f4546ff6mr7770291137.1.1776743917035; Mon, 20 Apr 2026 20:58:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Tue, 21 Apr 2026 11:57:59 +0800 X-Gm-Features: AQROBzCth6eqCLbIIkmH58xrJXt5MOcRU4tQnK5Kyn0YjxKoIgTxVlZSOgY-WaI Message-ID: Subject: Re: FOR PORTION OF does not recompute GENERATED STORED columns that depend on the range column To: Paul A Jungwirth Cc: SATYANARAYANA NARLAPURAM , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000008467f064ff06ed2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000008467f064ff06ed2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Apr 20, 2026 at 4:10=E2=80=AFAM Paul A Jungwirth wrote: > > v5 attached. > v5 will cause a segfault. + /* + * For UPDATE ... FOR PORTION OF, the range column is being modified + * (narrowed via intersection), but it is not included in updatedCols + * because the user does not need UPDATE permission on it. Now manualy + * add it to updatedCols. Since ri_forPortionOf->fp_rangeAttno is already + * mapped for the child partition, we have to add it after the mapping jus= t + * above. Also that makes it unsafe to mutate perminfo. XXX: Always add th= e + * unmapped attno instead (before mapping), and mutate perminfo, to avoid + * repeated allocations? + */ + if (relinfo->ri_forPortionOf) + { + AttrNumber rangeAttno =3D relinfo->ri_forPortionOf->fp_rangeAttno; + + if (!bms_is_member(rangeAttno - FirstLowInvalidHeapAttributeNumber, + updatedCols)) + { + MemoryContext oldContext; + + oldContext =3D MemoryContextSwitchTo(estate->es_query_cxt); + + updatedCols =3D + bms_add_member(updatedCols, + rangeAttno - FirstLowInvalidHeapAttributeNumber); + + MemoryContextSwitchTo(oldContext); + } + } + + return updatedCols; + updatedCols =3D + bms_add_member(updatedCols, + rangeAttno - FirstLowInvalidHeapAttributeNumber); Here, use "perminfo->updatedCols" not "updatedCols", otherwise segfault. The attached diff based on v5, fixes this issue. +ALTER TABLE temporal_partitioned_3 ADD COLUMN range_len int GENERATED ALWAYS AS (upper(valid_at) - lower(valid_at)) STORED; Slightly refactoring the tests will allow for easier comparison of range_len values. -- jian https://www.enterprisedb.com/ --00000000000008467f064ff06ed2 Content-Type: application/octet-stream; name="v6-0001-misc-fix-based-on-v5.no-cfbot" Content-Disposition: attachment; filename="v6-0001-misc-fix-based-on-v5.no-cfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo83fhp60 RnJvbSA3MDUyMjY5OGYzNTdlY2MxNGUxODc3YzQzNDY1ZTYzMDhkNDZiZGQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjEgQXByIDIwMjYgMTE6NTM6MzIgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDEvMV0gbWlzYyBmaXggYmFzZWQgb24gdjUKCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FIZytRRGNkPXQ2OWdMZjl5UWV4TzA3RUoybXgwWjcwTkZIbzZoOTRYMUVEQT1oTTBnQG1h aWwuZ21haWwuY29tCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FIZytRRGNzWHNV VmFaK0p3TTAyeURSUUVpPWNMX3JUSF9ST0xEWWdPeDAwNHNRdTdBQG1haWwuZ21haWwuY29tCi0t LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMgICAgICAgICAgICAgfCAzNSArKysr KysrKysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29m Lm91dCB8IDM2ICsrKysrKysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3Jf cG9ydGlvbl9vZi5zcWwgICAgICB8ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlv bnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKaW5kZXggMjlh OGQzYWJhNzQuLmZiNjk4MzJkYmViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwpAQCAtMTQw OSw3ICsxNDA5LDYgQEAgQml0bWFwc2V0ICoKIEV4ZWNHZXRVcGRhdGVkQ29scyhSZXN1bHRSZWxJ bmZvICpyZWxpbmZvLCBFU3RhdGUgKmVzdGF0ZSkKIHsKIAlSVEVQZXJtaXNzaW9uSW5mbyAqcGVy bWluZm8gPSBHZXRSZXN1bHRSVEVQZXJtaXNzaW9uSW5mbyhyZWxpbmZvLCBlc3RhdGUpOwotCUJp dG1hcHNldCAqdXBkYXRlZENvbHMgPSBwZXJtaW5mby0+dXBkYXRlZENvbHM7CiAKIAlpZiAocGVy bWluZm8gPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CkBAIC0xNDIwLDcgKzE0MTksMzEgQEAgRXhl Y0dldFVwZGF0ZWRDb2xzKFJlc3VsdFJlbEluZm8gKnJlbGluZm8sIEVTdGF0ZSAqZXN0YXRlKQog CQlUdXBsZUNvbnZlcnNpb25NYXAgKm1hcCA9IEV4ZWNHZXRSb290VG9DaGlsZE1hcChyZWxpbmZv LCBlc3RhdGUpOwogCiAJCWlmIChtYXApCi0JCQl1cGRhdGVkQ29scyA9IGV4ZWN1dGVfYXR0cl9t YXBfY29scyhtYXAtPmF0dHJNYXAsIHVwZGF0ZWRDb2xzKTsKKwkJeworCQkJLyogU2VlIGJlbG93 ICovCisJCQlpZiAocmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mKQorCQkJeworCQkJCUF0dHJOdW1i ZXIJcmFuZ2VBdHRubyA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZi0+ZnBfcmFuZ2VBdHRubzsK KworCQkJCXJhbmdlQXR0bm8gPSBtYXAtPmF0dHJNYXAtPmF0dG51bXNbcmFuZ2VBdHRubyAtIDFd OworCisJCQkJaWYgKCFibXNfaXNfbWVtYmVyKHJhbmdlQXR0bm8gLSBGaXJzdExvd0ludmFsaWRI ZWFwQXR0cmlidXRlTnVtYmVyLAorCQkJCQkJCQkgICBwZXJtaW5mby0+dXBkYXRlZENvbHMpKQor CQkJCXsKKwkJCQkJTWVtb3J5Q29udGV4dCBvbGRDb250ZXh0OworCisJCQkJCW9sZENvbnRleHQg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJCQkJCXBl cm1pbmZvLT51cGRhdGVkQ29scyA9CisJCQkJCQlibXNfYWRkX21lbWJlcihwZXJtaW5mby0+dXBk YXRlZENvbHMsCisJCQkJCQkJCQkgICByYW5nZUF0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0 dHJpYnV0ZU51bWJlcik7CisKKwkJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENvbnRleHQp OworCQkJCX0KKwkJCX0KKworCQkJcmV0dXJuIGV4ZWN1dGVfYXR0cl9tYXBfY29scyhtYXAtPmF0 dHJNYXAsIHBlcm1pbmZvLT51cGRhdGVkQ29scyk7CisJCX0KIAl9CiAKIAkvKgpAQCAtMTQzOCwy MSArMTQ2MSwyMSBAQCBFeGVjR2V0VXBkYXRlZENvbHMoUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywg RVN0YXRlICplc3RhdGUpCiAJCUF0dHJOdW1iZXIJcmFuZ2VBdHRubyA9IHJlbGluZm8tPnJpX2Zv clBvcnRpb25PZi0+ZnBfcmFuZ2VBdHRubzsKIAogCQlpZiAoIWJtc19pc19tZW1iZXIocmFuZ2VB dHRubyAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIsCi0JCQkJCQkgICB1cGRh dGVkQ29scykpCisJCQkJCQkgICBwZXJtaW5mby0+dXBkYXRlZENvbHMpKQogCQl7CiAJCQlNZW1v cnlDb250ZXh0IG9sZENvbnRleHQ7CiAKIAkJCW9sZENvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dp dGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOwogCi0JCQl1cGRhdGVkQ29scyA9Ci0JCQkJYm1z X2FkZF9tZW1iZXIodXBkYXRlZENvbHMsCisJCQlwZXJtaW5mby0+dXBkYXRlZENvbHMgPQorCQkJ CWJtc19hZGRfbWVtYmVyKHBlcm1pbmZvLT51cGRhdGVkQ29scywKIAkJCQkJCQkgICByYW5nZUF0 dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcik7CiAKIAkJCU1lbW9yeUNv bnRleHRTd2l0Y2hUbyhvbGRDb250ZXh0KTsKIAkJfQogCX0KIAotCXJldHVybiB1cGRhdGVkQ29s czsKKwlyZXR1cm4gcGVybWluZm8tPnVwZGF0ZWRDb2xzOwogfQogCiAvKiBSZXR1cm4gYSBiaXRt YXAgcmVwcmVzZW50aW5nIGdlbmVyYXRlZCBjb2x1bW5zIGJlaW5nIHVwZGF0ZWQgKi8KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKaW5kZXggNjAyYWNhNmU2 YWEuLjI3M2Q3MTBmODk1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zv cl9wb3J0aW9uX29mLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0 aW9uX29mLm91dApAQCAtMjA2NCwyNCArMjA2NCwyNCBAQCBVUERBVEUgdGVtcG9yYWxfcGFydGl0 aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScgVE8gJzIwMDAt MAogICAgICAgaWQgPSAnWzMsNCknCiAgIFdIRVJFIGlkID0gJ1s1LDYpJzsKIC0tIFVwZGF0ZSBh bGwgcGFydGl0aW9ucyBhdCBvbmNlIChlYWNoIHdpdGggbGVmdG92ZXJzKQotU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci0gIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgfCByYW5nZV9sZW4gCi0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gWzEsMikgfCBb MjAwMC0wMS0wMSwyMDAwLTAzLTAxKSB8IG9uZSAgICAgfCAgICAgICAgNjAKLSBbMSwyKSB8IFsy MDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgb25lXjEgICB8ICAgICAgICAzMQotIFsxLDIpIHwgWzIw MDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBvbmUgICAgIHwgICAgICAgIDYxCi0gWzEsMikgfCBbMjAw MC0wNy0wMSwyMDEwLTAxLTAxKSB8IG9uZSAgICAgfCAgICAgIDM0NzEKLSBbMiwzKSB8IFsyMDAw LTA2LTAxLDIwMDAtMDctMDEpIHwgdGhyZWVeMiB8ICAgICAgICAzMAotIFszLDQpIHwgWzIwMDAt MDEtMDEsMjAwMC0wMy0wMSkgfCB0aHJlZSAgIHwgICAgICAgIDYwCi0gWzMsNCkgfCBbMjAwMC0w My0wMSwyMDAwLTA0LTAxKSB8IHRocmVlXjEgfCAgICAgICAgMzEKLSBbMyw0KSB8IFsyMDAwLTA0 LTAxLDIwMDAtMDYtMDEpIHwgdGhyZWUgICB8ICAgICAgICA2MQotIFszLDQpIHwgWzIwMDAtMDYt MDEsMjAwMC0wNy0wMSkgfCBmaXZlXjIgIHwgICAgICAgIDMwCi0gWzMsNCkgfCBbMjAwMC0wNy0w MSwyMDEwLTAxLTAxKSB8IHRocmVlICAgfCAgICAgIDM0NzEKLSBbNCw1KSB8IFsyMDAwLTA2LTAx LDIwMDAtMDctMDEpIHwgb25lXjIgICB8ICAgICAgICAzMAotIFs1LDYpIHwgWzIwMDAtMDEtMDEs MjAwMC0wMy0wMSkgfCBmaXZlICAgIHwgICAgICAgIDYwCi0gWzUsNikgfCBbMjAwMC0wMy0wMSwy MDAwLTA0LTAxKSB8IGZpdmVeMSAgfCAgICAgICAgMzEKLSBbNSw2KSB8IFsyMDAwLTA0LTAxLDIw MDAtMDYtMDEpIHwgZml2ZSAgICB8ICAgICAgICA2MQotIFs1LDYpIHwgWzIwMDAtMDctMDEsMjAx MC0wMS0wMSkgfCBmaXZlICAgIHwgICAgICAzNDcxCitTRUxFQ1QgKiwgdXBwZXIodmFsaWRfYXQp IC0gbG93ZXIodmFsaWRfYXQpIGFzIHJhbmdlX2xlbjEgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8ICBuYW1lICAgfCByYW5nZV9sZW4gfCByYW5nZV9sZW4xIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwy KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgb25lICAgICB8ICAgICAgICA2MCB8ICAgICAg ICAgNjAKKyBbMSwyKSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgb25lXjEgICB8ICAgICAg ICAzMSB8ICAgICAgICAgMzEKKyBbMSwyKSB8IFsyMDAwLTA0LTAxLDIwMDAtMDYtMDEpIHwgb25l ICAgICB8ICAgICAgICA2MSB8ICAgICAgICAgNjEKKyBbMSwyKSB8IFsyMDAwLTA3LTAxLDIwMTAt MDEtMDEpIHwgb25lICAgICB8ICAgICAgMzQ3MSB8ICAgICAgIDM0NzEKKyBbMiwzKSB8IFsyMDAw LTA2LTAxLDIwMDAtMDctMDEpIHwgdGhyZWVeMiB8ICAgICAgICAzMCB8ICAgICAgICAgMzAKKyBb Myw0KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgdGhyZWUgICB8ICAgICAgICA2MCB8ICAg ICAgICAgNjAKKyBbMyw0KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgdGhyZWVeMSB8ICAg ICAgICAzMSB8ICAgICAgICAgMzEKKyBbMyw0KSB8IFsyMDAwLTA0LTAxLDIwMDAtMDYtMDEpIHwg dGhyZWUgICB8ICAgICAgICA2MSB8ICAgICAgICAgNjEKKyBbMyw0KSB8IFsyMDAwLTA2LTAxLDIw MDAtMDctMDEpIHwgZml2ZV4yICB8ICAgICAgICAzMCB8ICAgICAgICAgMzAKKyBbMyw0KSB8IFsy MDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUgICB8ICAgICAgMzQ3MSB8ICAgICAgIDM0NzEK KyBbNCw1KSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgb25lXjIgICB8ICAgICAgICAzMCB8 ICAgICAgICAgMzAKKyBbNSw2KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgZml2ZSAgICB8 ICAgICAgICA2MCB8ICAgICAgICAgNjAKKyBbNSw2KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEp IHwgZml2ZV4xICB8ICAgICAgICAzMSB8ICAgICAgICAgMzEKKyBbNSw2KSB8IFsyMDAwLTA0LTAx LDIwMDAtMDYtMDEpIHwgZml2ZSAgICB8ICAgICAgICA2MSB8ICAgICAgICAgNjEKKyBbNSw2KSB8 IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgZml2ZSAgICB8ICAgICAgMzQ3MSB8ICAgICAgIDM0 NzEKICgxNSByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9y X3BvcnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3Fs CmluZGV4IDAwMWU4M2U0Y2U0Li42OGQxMjk4NDJhMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zv cl9wb3J0aW9uX29mLnNxbApAQCAtMTM3MCw3ICsxMzcwLDcgQEAgVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcy MDAwLTAKIAogLS0gVXBkYXRlIGFsbCBwYXJ0aXRpb25zIGF0IG9uY2UgKGVhY2ggd2l0aCBsZWZ0 b3ZlcnMpCiAKLVNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworU0VMRUNUICosIHVwcGVyKHZhbGlkX2F0KSAtIGxvd2VyKHZhbGlkX2F0KSBh cyByYW5nZV9sZW4xIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlk X2F0OwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgT1JERVIg QlkgaWQsIHZhbGlkX2F0OwotLSAKMi4zNC4xCgo= --00000000000008467f064ff06ed2--