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 1w1zDa-000mI0-2q for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 04:06:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w1zDZ-007JTG-24 for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 04:06:14 +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 1w1zDZ-007JT8-0j for pgsql-hackers@lists.postgresql.org; Mon, 16 Mar 2026 04:06:14 +0000 Received: from mail-vs1-xe29.google.com ([2607:f8b0:4864:20::e29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1zDX-00000000MY4-0FIC for pgsql-hackers@postgresql.org; Mon, 16 Mar 2026 04:06:13 +0000 Received: by mail-vs1-xe29.google.com with SMTP id ada2fe7eead31-5fff18d44fbso2658109137.1 for ; Sun, 15 Mar 2026 21:06:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773633969; cv=none; d=google.com; s=arc-20240605; b=jUmcDVSBXt3BnI+3j0NQIETEbvwLWGPLnPF2I9JqV11/dhpjzfp2FmpnkAXY7RJA4d L8VBmiNkebCuOsZucwGFDvY+mhyELDGgVVdWmyCLzjJiY9WRD4a/YixPZGGKftskpyE/ lbjpNnmqFaRQ5Gk9k+IZH2rjxXwQJRpqLxT5jGQ/SjLzse1SSZel7wrwJRZSwS2grKGH eLvux+Sn4zH1YvfpHMKDr56RYtS19ybT3YqHJaTuda6I6JSys8T2SdbeGCNqwTKJMjwa fA9JCgzGVytKY7Dw+5SRFmjZo6JQoOYMGnU26kDD5cm5oU/6O24ZyGE0p6eLIwtbX0cx ODnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=g6nO6VSQEh/2F0BXPMzkOxdAzPionyqECP8u3b/wxcg=; fh=FIa6CnAOcDlblDMIqVQXhn30ONA1aoHzZ0tfczHgg8I=; b=W55Z5P9nc28mBOlP7yNt5rN2u65BkLU9CeNaXe7Hv0/Wpg6mVrj8EMu+eZ2EjvtoyE llPok29w4v/g+6RcGHWRv61zYCuiYHoxjFyVqUPiGjnu79DtAK4DB3oOy9O4LxPo0qJp tZlztaxw2JCiyidPE3HQH5K37GyuRC9l49VcxNANbxwacYAPkOJiu2tCcYjquGqtSF2X +Vk/QTqo8EWiQExExy5dOJ+6XPJhRWr13P2+/TqqmcsNrQXHpJHzxD8wX55eJeHiuOM8 Qkqp/a1vfGFOEo4n+VyXpd0w9S2shv7OzmdYltH/vpxs4sxkSC6AV3W+Fij3lPpnKMvt 8b2g==; darn=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=20230601; t=1773633969; x=1774238769; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=g6nO6VSQEh/2F0BXPMzkOxdAzPionyqECP8u3b/wxcg=; b=ck2u3dNbm6xqwCdpwt0UDzOiPVHGcNaVBR42p62fidCkOuiBuNjkrrkFkslmeGt0q7 ACA4vN0rA9Q9ZfY1tZK2rJdDki47N+9of4itQzsmIy8R7G2KvzvfqeSLVZ000nNcNBgG MCHxiwYWl3jxy5TtBkYBbdlL/wZgG5M49zuSe4sjTyHbjZz9Ub+EikMwS0SLHJM/fdG7 aMvAbT5bJAxlXxcY3ELt2xmmWIiXs/ro1sKIZqw04PFSvLbghCZTEF89Pd48k4cD9JJj RwsvUHxJVWXCk+6xBh6GPozOtLLch6WEjRIMhUjkUs3F5ChqC4qxp1vm7vQ1k20fW1la hpAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773633969; x=1774238769; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=g6nO6VSQEh/2F0BXPMzkOxdAzPionyqECP8u3b/wxcg=; b=g7qrJCvmOiZSXjmv/R3UUlBvNqLUgECHqJzh5Dr5XhuzVNOHDYxnAyQFSwnrmLNI2B Acl9cTJKNWczow418S+Kpa91atiPiRofMNs48AvcfMsC0tW/eDtpZVZGT5Hgg85GLeuo l4ZqbVFTAHzPVI2LQGNoXFq2pknSiGJIw2Z8xCEJ5H1FmUiaQcH0zV8QiKqMYkhopdM+ E15jrygpzNp9XCDSB6DWEkuY6dN9XzV7680K6agQN2rZ344H95uBLPoaRf8i8LJjd4ur IoPNJm5qDsToe3RS26CYyR8Y1yK68Wy9gWi3Ma8ch2TzNX21Vmi5y+QSHL/UPY6Q8hwR HFgg== X-Gm-Message-State: AOJu0YwsKd6A+MsHSuVhPyv9+pH1jm1h51V90L6QQYKhSvNmqKoP4VhD vBEyoiR45r9Ha9PO2TH4k9r4CuQhb6SbRPlsNWosl+yYqkmE/bQQrnr0gHoHTOplLvlgVsYYBA2 O6fQh1tGBKpwh9C+TsOlKHW3mNtLJPNlYxpPB2vlazQ== X-Gm-Gg: ATEYQzwYeKp9R4Wo/hLBj5/QoxOTZV44z0CeG8K4dU7DubmT+Wvsf1fZGel5PUOz325 vIEDDKaNa1/utzP00qpL8fRkDX4uhnE5hdYB1fPvhzW5k+TjFQ0TwUcAicCDU7ldTVbRyfPx21u wpb2MWmJz9GV1xDfF/FJL1PDj4+I0DMEAUyorLqaEviNb+ko7bjGjcOun1C5mrmbglBeekY3swT 4M1qYkvGy7U4XJASSk+pl5/yUtkqS2Ca12X19xd7yyOlxZ5k/tS5E8JXdsXEHwtt27AIcGYK6lj ZRD10aPK9SgKgKxyoO570NQ8WISuoFit27zgoESuEaf8WHmozsYvlzJDk9oTv5z4t1KXU9nKNe6 /q0gzkynphk5fMV5EH7KJ34pPfnYhBd0h1ynW25Hi18DXWN6zMXEHL/JPSuqtpQKM4jY+JH1k8C nV1/uQmHpGBCXxaB/LV9BLSQ== X-Received: by 2002:a05:6102:38c8:b0:5db:d6dd:81c6 with SMTP id ada2fe7eead31-6020e2fbcd8mr5205217137.18.1773633968878; Sun, 15 Mar 2026 21:06:08 -0700 (PDT) MIME-Version: 1.0 From: jian he Date: Mon, 16 Mar 2026 12:05:32 +0800 X-Gm-Features: AaiRm527j6rmpMIHJ599rBlnQwV11aNuAElD89Nkk_H0naWQ_0inz2PHmPyxz_g Message-ID: Subject: AT_AddColumn container/composite type over constrained domain should table rewrite To: PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000ad568d064d1c5628" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ad568d064d1c5628 Content-Type: text/plain; charset="UTF-8" Hi. CREATE DOMAIN domain7 as int CHECK(random(min=>1::int, max=>11) < value); CREATE TABLE test_add_domain_col(a int); INSERT INTO test_add_domain_col VALUES (1), (2); ALTER TABLE test_add_domain_col ADD COLUMN x domain7[] default '{5}'; The above ALTER TABLE sometimes fails and sometimes not fail, but there no table rewrite. IMHO, We should do table rewrites for container types whose element types include constrained domains. Note, this issue exists before https://git.postgresql.org/cgit/postgresql.git/commit/?id=a0b6ef29a51818a4073a5f390ed10ef6453d5c11 The attached POC fix is for HEAD only (after a0b6ef29a51818a4073a5f390ed10ef6453d5c11) -- jian https://www.enterprisedb.com/ --000000000000ad568d064d1c5628 Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-table-rewrite-for-container-type-include-constrained-domain.patch" Content-Disposition: attachment; filename="v1-0001-table-rewrite-for-container-type-include-constrained-domain.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmsnttdb0 RnJvbSA2ZTkzZGQyYTcxMGIxM2I4ZWZmNzIzNDE0YjRjZTgyNjIyZjNlZDk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTYgTWFyIDIwMjYgMTI6MDQ6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx IDEvMV0gdGFibGUgcmV3cml0ZSBmb3IgY29udGFpbmVyIHR5cGUgaW5jbHVkZSBjb25zdHJhaW5l ZAogZG9tYWluCgpDUkVBVEUgRE9NQUlOIGRvbWFpbjcgYXMgaW50IENIRUNLKHJhbmRvbShtaW49 PjE6OmludCwgbWF4PT4xMSkgPCB2YWx1ZSk7CkNSRUFURSBUQUJMRSB0ZXN0X2FkZF9kb21haW5f Y29sKGEgaW50KTsKQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIHgg ZG9tYWluN1tdIGRlZmF1bHQgJ3s1fSc7CgpUaGUgYWJvdmUgQUxURVIgVEFCTEUgQUREIENPTFVN TiBzaG91bGQgZG8gdGFibGUgcmV3cml0ZS4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vCmNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC8K LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgfCAxMDMgKysr KysrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVs dC5vdXQgfCAgMjggKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3Fs ICAgICAgfCAgMjMgKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTUxIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBhMmUzYjcyZjE1Ni4u MzNjNWE0ZjkwMDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC01MDMsNiArNTAzLDgg QEAgc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFs dGVyZWRUYWJsZUluZm8gKnRhYiwKIAkJCQkJCQkJCSBib29sIHJlY3Vyc2UsIGJvb2wgcmVjdXJz aW5nLAogCQkJCQkJCQkJIExPQ0tNT0RFIGxvY2ttb2RlLCBBbHRlclRhYmxlUGFzcyBjdXJfcGFz cywKIAkJCQkJCQkJCSBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpOworc3RhdGlj IHZvaWQgdHlwZV9oYXNfY29uc3RyYWluZWRfZG9tYWluKE9pZCB0eXBvaWQsIGJvb2wgKmhhc19j b25zdHIsCisJCQkJCQkJCQkJYm9vbCAqaGFzX3ZvbGF0aWxlKTsKIHN0YXRpYyBib29sIGNoZWNr X2Zvcl9jb2x1bW5fbmFtZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xu YW1lLAogCQkJCQkJCQkJCQlib29sIGlmX25vdF9leGlzdHMpOwogc3RhdGljIHZvaWQgYWRkX2Nv bHVtbl9kYXRhdHlwZV9kZXBlbmRlbmN5KE9pZCByZWxpZCwgaW50MzIgYXR0bnVtLCBPaWQgdHlw aWQpOwpAQCAtNzUwNiw3ICs3NTA4LDcgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUs IEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCSAqLwogCWlmIChSRUxLSU5E X0hBU19TVE9SQUdFKHJlbGtpbmQpKQogCXsKLQkJYm9vbAkJaGFzX2RvbWFpbl9jb25zdHJhaW50 czsKKwkJYm9vbAkJaGFzX2RvbWFpbl9jb25zdHJhaW50cyA9IGZhbHNlOwogCQlib29sCQloYXNf bWlzc2luZyA9IGZhbHNlOwogCQlib29sCQloYXNfdm9sYXRpbGUgPSBmYWxzZTsKIApAQCAtNzUy Niw4ICs3NTI4LDkgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJs ZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQllbHNlCiAJCQlkZWZ2YWwgPSAoRXhwciAqKSBi dWlsZF9jb2x1bW5fZGVmYXVsdChyZWwsIGF0dHJpYnV0ZS0+YXR0bnVtKTsKIAotCQloYXNfZG9t YWluX2NvbnN0cmFpbnRzID0KLQkJCURvbWFpbkhhc0NvbnN0cmFpbnRzKGF0dHJpYnV0ZS0+YXR0 dHlwaWQsICZoYXNfdm9sYXRpbGUpOworCQl0eXBlX2hhc19jb25zdHJhaW5lZF9kb21haW4oYXR0 cmlidXRlLT5hdHR0eXBpZCwKKwkJCQkJCQkJCSZoYXNfZG9tYWluX2NvbnN0cmFpbnRzLAorCQkJ CQkJCQkJJmhhc192b2xhdGlsZSk7CiAKIAkJLyoKIAkJICogSWYgdGhlIGRvbWFpbiBoYXMgdm9s YXRpbGUgY29uc3RyYWludHMsIHdlIG11c3QgZG8gYSB0YWJsZSByZXdyaXRlCkBAIC03NzE0LDYg Kzc3MTcsMTAwIEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJ bmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlyZXR1cm4gYWRkcmVzczsKIH0KIAorIC8qCisgICog Q2hlY2tzIHdoZXRoZXIgYSB0eXBlIGNvbnRhaW5zIGEgY29uc3RyYWluZWQgZG9tYWluLiBUaGlz IHJlY3Vyc2VzIGludG8KKyAgKiBjb250YWluZXIgdHlwZXMgKGFycmF5cywgY29tcG9zaXRlcywg cmFuZ2VzLCBtdWx0aXJhbmdlcykgdG8gZXhhbWluZSB0aGVpcgorICAqIGVsZW1lbnQgb3Igc3Vi dHlwZXMuCisgICoKKyAgKiBUaGUgY2FsbGVyIG11c3QgaW5pdGlhbGl6ZSAqaGFzX2NvbnN0ciB0 byBmYWxzZSBiZWZvcmUgY2FsbGluZy4gSWYgYQorICAqIGNvbnN0cmFpbmVkIGRvbWFpbiBpcyBm b3VuZCBhdCBhbnkgbGV2ZWwsIGhhc19jb25zdHIgaXMgc2V0IHRvIHRydWUuCisgICogT2J2aW91 c2x5LCBoYXNfY29uc3RyIHdpbGwgc2V0IHRvIHRydWUgZm9yIHNpbXBsZSBjb25zdHJhaW5lZCBk b21haW4uCisgICoKKyAgKiBoYXNfdm9sYXRpbGUgaXMgc2V0IHRvIHRydWUgaWYgdGhlIGVsZW1l bnQvc3VidHlwZXMgdHlwZSBpcyBhIGRvbWFpbiBhbmQKKyAgKiB0aGF0IGRvbWFpbiBjb250YWlu cyBhIHZvbGF0aWxlIGV4cHJlc3Npb24uCisgICovCitzdGF0aWMgdm9pZAordHlwZV9oYXNfY29u c3RyYWluZWRfZG9tYWluKE9pZCB0eXBvaWQsIGJvb2wgKmhhc19jb25zdHIsIGJvb2wgKmhhc192 b2xhdGlsZSkKK3sKKwljaGFyCQlhdHRfdHlwdHlwZSA9IGdldF90eXB0eXBlKHR5cG9pZCk7CisK KwkvKiBzaW5jZSB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2VzLCBpdCBjb3VsZCBiZSBkcml2ZW4gdG8g c3RhY2sgb3ZlcmZsb3cgKi8KKwljaGVja19zdGFja19kZXB0aCgpOworCisJQXNzZXJ0KGhhc19j b25zdHIgIT0gTlVMTCk7CisKKwlpZiAoaGFzX3ZvbGF0aWxlKQorCXsKKwkJaWYgKCpoYXNfdm9s YXRpbGUpCisJCQlyZXR1cm47CisJfQorCWVsc2UgaWYgKCpoYXNfY29uc3RyKQorCQlyZXR1cm47 CisKKwlpZiAoYXR0X3R5cHR5cGUgPT0gVFlQVFlQRV9ET01BSU4pCisJeworCQkqaGFzX2NvbnN0 ciA9IERvbWFpbkhhc0NvbnN0cmFpbnRzKHR5cG9pZCwgaGFzX3ZvbGF0aWxlKTsKKwkJcmV0dXJu OworCX0KKwllbHNlIGlmIChhdHRfdHlwdHlwZSA9PSBUWVBUWVBFX0NPTVBPU0lURSkKKwl7CisJ CS8qCisJCSAqIEZvciBhIGNvbXBvc2l0ZSB0eXBlLCByZWN1cnNlIGludG8gaXRzIGF0dHJpYnV0 ZXMuICBVc2UgdGhlCisJCSAqIHR5cGNhY2hlIHRvIGF2b2lkIG9wZW5pbmcgdGhlIHJlbGF0aW9u IGRpcmVjdGx5LgorCQkgKi8KKwkJVHVwbGVEZXNjCXR1cGRlc2MgPSBsb29rdXBfcm93dHlwZV90 dXBkZXNjKHR5cG9pZCwgLTEpOworCisJCWZvciAoaW50IGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0 dHM7IGkrKykKKwkJeworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1cGxlRGVzY0F0dHIo dHVwZGVzYywgaSk7CisKKwkJCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCisJCQkJY29udGludWU7 CisKKwkJCXR5cGVfaGFzX2NvbnN0cmFpbmVkX2RvbWFpbihhdHRyLT5hdHR0eXBpZCwKKwkJCQkJ CQkJCQloYXNfY29uc3RyLAorCQkJCQkJCQkJCWhhc192b2xhdGlsZSk7CisKKwkJCWlmIChoYXNf dm9sYXRpbGUpCisJCQl7CisJCQkJaWYgKCpoYXNfdm9sYXRpbGUpCisJCQkJCWJyZWFrOworCQkJ fQorCQkJZWxzZSBpZiAoKmhhc19jb25zdHIpCisJCQkJYnJlYWs7CisJCX0KKwkJUmVsZWFzZVR1 cGxlRGVzYyh0dXBkZXNjKTsKKwkJcmV0dXJuOworCX0KKwllbHNlIGlmIChhdHRfdHlwdHlwZSA9 PSBUWVBUWVBFX1JBTkdFKQorCXsKKwkJdHlwZV9oYXNfY29uc3RyYWluZWRfZG9tYWluKGdldF9y YW5nZV9zdWJ0eXBlKHR5cG9pZCksCisJCQkJCQkJCQloYXNfY29uc3RyLAorCQkJCQkJCQkJaGFz X3ZvbGF0aWxlKTsKKwkJcmV0dXJuOworCX0KKwllbHNlIGlmIChhdHRfdHlwdHlwZSA9PSBUWVBU WVBFX01VTFRJUkFOR0UpCisJeworCQl0eXBlX2hhc19jb25zdHJhaW5lZF9kb21haW4oZ2V0X211 bHRpcmFuZ2VfcmFuZ2UodHlwb2lkKSwKKwkJCQkJCQkJCWhhc19jb25zdHIsCisJCQkJCQkJCQlo YXNfdm9sYXRpbGUpOworCQlyZXR1cm47CisJfQorCWVsc2UKKwl7CisJCU9pZAkJCWF0dF90eXBl bGVtID0gZ2V0X2VsZW1lbnRfdHlwZSh0eXBvaWQpOworCisJCWlmIChPaWRJc1ZhbGlkKGF0dF90 eXBlbGVtKSkKKwkJeworCQkJLyogcmVjdXJzZSBpbnRvIGFycmF5IGVsZW1lbnQgdHlwZSAqLwor CQkJdHlwZV9oYXNfY29uc3RyYWluZWRfZG9tYWluKGF0dF90eXBlbGVtLAorCQkJCQkJCQkJCWhh c19jb25zdHIsCisJCQkJCQkJCQkJaGFzX3ZvbGF0aWxlKTsKKwkJCXJldHVybjsKKwkJfQorCX0K K30KKwogLyoKICAqIElmIGEgbmV3IG9yIHJlbmFtZWQgY29sdW1uIHdpbGwgY29sbGlkZSB3aXRo IHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nCiAgKiBjb2x1bW4gYW5kIGlmX25vdF9leGlzdHMgaXMg ZmFsc2UgdGhlbiBlcnJvciBvdXQsIGVsc2UgZG8gbm90aGluZy4KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dAppbmRleCBmZmJjNDcwODliMS4uMTYzMzlkNmQyMDkg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQKQEAgLTM3Miw4 ICszNzIsMzYgQEAgTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHRlc3RfYWRkX2RvbWFpbl9jb2wg Zm9yIHJlYXNvbiAyCiBBTFRFUiBUQUJMRSB0ZXN0X2FkZF9kb21haW5fY29sIEFERCBDT0xVTU4g aCBkb21haW41CiAgIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKyAyMCkgVklSVFVBTDsgIC0tIGVy cm9yCiBFUlJPUjogIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiAiaCIgY2Fubm90IGhhdmUgYSBk b21haW4gdHlwZQorLS0gVGVzdCBjb250YWluZXIgdHlwZSBjb250YWlucyB2b2xhdGlsZSBkb21h aW4gZm9yIHRhYmxlIHJld3JpdGUKK0NSRUFURSBUWVBFIGRvbWFpbjZyYW5nZSBBUyByYW5nZShz dWJ0eXBlPWRvbWFpbjYpOworQ1JFQVRFIFRZUEUgY29tcF93aXRoX2RvbWFpbjYgQVMgKGEgZG9t YWluNik7CitDUkVBVEUgVFlQRSBkb21haW43cmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kb21haW43 KTsKK0NSRUFURSBUWVBFIGNvbXBfd2l0aF9kb21haW43IEFTIChhIGRvbWFpbjcpOworLS0gYWxs IG9mIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGhhdmUgdGFibGUgcmV3cml0ZQorQUxURVIgVEFCTEUg dGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIHggZG9tYWluN1tdIERFRkFVTFQgJ3syMH0n OworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHRlc3RfYWRkX2RvbWFpbl9jb2wgZm9yIHJlYXNv biAyCitBTFRFUiBUQUJMRSB0ZXN0X2FkZF9kb21haW5fY29sIEFERCBDT0xVTU4geDEgZG9tYWlu N1tdOworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHRlc3RfYWRkX2RvbWFpbl9jb2wgZm9yIHJl YXNvbiAyCitBTFRFUiBUQUJMRSB0ZXN0X2FkZF9kb21haW5fY29sIEFERCBDT0xVTU4geDIgZG9t YWluN3JhbmdlIERFRkFVTFQgJ1sxMiwgMjIpJzsKK05PVElDRTogIHJld3JpdGluZyB0YWJsZSB0 ZXN0X2FkZF9kb21haW5fY29sIGZvciByZWFzb24gMgorQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9t YWluX2NvbCBBREQgQ09MVU1OIHgzIGRvbWFpbjdyYW5nZVtdIERFRkFVTFQgJ3siWzEyLDIyKSJ9 JzsKK05PVElDRTogIHJld3JpdGluZyB0YWJsZSB0ZXN0X2FkZF9kb21haW5fY29sIGZvciByZWFz b24gMgorQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIHg0IGRvbWFp bjdtdWx0aXJhbmdlIERFRkFVTFQgJ3tbMTIsIDIyXX0nOworTk9USUNFOiAgcmV3cml0aW5nIHRh YmxlIHRlc3RfYWRkX2RvbWFpbl9jb2wgZm9yIHJlYXNvbiAyCitBTFRFUiBUQUJMRSB0ZXN0X2Fk ZF9kb21haW5fY29sIEFERCBDT0xVTU4geDUgZG9tYWluN211bHRpcmFuZ2VbXSBERUZBVUxUICd7 IntbMTIsMjJdfSJ9JzsKK05PVElDRTogIHJld3JpdGluZyB0YWJsZSB0ZXN0X2FkZF9kb21haW5f Y29sIGZvciByZWFzb24gMgorQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09M VU1OIHg2IGNvbXBfd2l0aF9kb21haW43IERFRkFVTFQgJygxMiknOworTk9USUNFOiAgcmV3cml0 aW5nIHRhYmxlIHRlc3RfYWRkX2RvbWFpbl9jb2wgZm9yIHJlYXNvbiAyCitBTFRFUiBUQUJMRSB0 ZXN0X2FkZF9kb21haW5fY29sIEFERCBDT0xVTU4geDcgY29tcF93aXRoX2RvbWFpbjdbXSBERUZB VUxUICd7KDEyKX0nOworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHRlc3RfYWRkX2RvbWFpbl9j b2wgZm9yIHJlYXNvbiAyCistLSBhbGwgb2YgdGhlIGFib3ZlIHNob3VsZCBoYXZlIHRhYmxlIHJl d3JpdGUKKy0tIE5vIG5lZWQgdGFibGUgcmV3cml0ZSwgYXMgZG9tYWluIHZvbGF0aWxlIGRlZmF1 bHQgZXhwcmVzc2lvbnMgYXJlIGlycmVsZXZhbnQgZm9yIGNvbnRhaW5lciB0eXBlcworQUxURVIg VEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIHgxMCBjb21wX3dpdGhfZG9tYWlu NiBERUZBVUxUICcoMTIpJzsKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENP TFVNTiB4MTEgY29tcF93aXRoX2RvbWFpbjZbXSBERUZBVUxUICd7KDEyKX0nOworQUxURVIgVEFC TEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIHgxMiBkb21haW44W10gREVGQVVMVCAn ezEyfSc7CiBEUk9QIFRBQkxFIHQyOwogRFJPUCBUQUJMRSB0ZXN0X2FkZF9kb21haW5fY29sOwor RFJPUCBUWVBFIGRvbWFpbjdyYW5nZSwgY29tcF93aXRoX2RvbWFpbjcsIGNvbXBfd2l0aF9kb21h aW42LCBkb21haW42cmFuZ2U7CiBEUk9QIERPTUFJTiBkb21haW4xOwogRFJPUCBET01BSU4gZG9t YWluMjsKIERST1AgRE9NQUlOIGRvbWFpbjM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9mYXN0X2RlZmF1bHQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0 LnNxbAppbmRleCA4ZmYyOWNmMjY5Ny4uMGJmMTFlZDc4NmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv ZmFzdF9kZWZhdWx0LnNxbApAQCAtMzMyLDggKzMzMiwzMSBAQCBBTFRFUiBUQUJMRSB0ZXN0X2Fk ZF9kb21haW5fY29sIEFERCBDT0xVTU4gZyBkb21haW45IERFRkFVTFQgMTQ7CiBBTFRFUiBUQUJM RSB0ZXN0X2FkZF9kb21haW5fY29sIEFERCBDT0xVTU4gaCBkb21haW41CiAgIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKyAyMCkgVklSVFVBTDsgIC0tIGVycm9yCiAKKy0tIFRlc3QgY29udGFpbmVy IHR5cGUgY29udGFpbnMgdm9sYXRpbGUgZG9tYWluIGZvciB0YWJsZSByZXdyaXRlCitDUkVBVEUg VFlQRSBkb21haW42cmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kb21haW42KTsKK0NSRUFURSBUWVBF IGNvbXBfd2l0aF9kb21haW42IEFTIChhIGRvbWFpbjYpOworQ1JFQVRFIFRZUEUgZG9tYWluN3Jh bmdlIEFTIHJhbmdlKHN1YnR5cGU9ZG9tYWluNyk7CitDUkVBVEUgVFlQRSBjb21wX3dpdGhfZG9t YWluNyBBUyAoYSBkb21haW43KTsKKworLS0gYWxsIG9mIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGhh dmUgdGFibGUgcmV3cml0ZQorQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09M VU1OIHggZG9tYWluN1tdIERFRkFVTFQgJ3syMH0nOworQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9t YWluX2NvbCBBREQgQ09MVU1OIHgxIGRvbWFpbjdbXTsKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2Rv bWFpbl9jb2wgQUREIENPTFVNTiB4MiBkb21haW43cmFuZ2UgREVGQVVMVCAnWzEyLCAyMiknOwor QUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIHgzIGRvbWFpbjdyYW5n ZVtdIERFRkFVTFQgJ3siWzEyLDIyKSJ9JzsKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9j b2wgQUREIENPTFVNTiB4NCBkb21haW43bXVsdGlyYW5nZSBERUZBVUxUICd7WzEyLCAyMl19JzsK K0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENPTFVNTiB4NSBkb21haW43bXVs dGlyYW5nZVtdIERFRkFVTFQgJ3sie1sxMiwyMl19In0nOworQUxURVIgVEFCTEUgdGVzdF9hZGRf ZG9tYWluX2NvbCBBREQgQ09MVU1OIHg2IGNvbXBfd2l0aF9kb21haW43IERFRkFVTFQgJygxMikn OworQUxURVIgVEFCTEUgdGVzdF9hZGRfZG9tYWluX2NvbCBBREQgQ09MVU1OIHg3IGNvbXBfd2l0 aF9kb21haW43W10gREVGQVVMVCAneygxMil9JzsKKy0tIGFsbCBvZiB0aGUgYWJvdmUgc2hvdWxk IGhhdmUgdGFibGUgcmV3cml0ZQorCistLSBObyBuZWVkIHRhYmxlIHJld3JpdGUsIGFzIGRvbWFp biB2b2xhdGlsZSBkZWZhdWx0IGV4cHJlc3Npb25zIGFyZSBpcnJlbGV2YW50IGZvciBjb250YWlu ZXIgdHlwZXMKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENPTFVNTiB4MTAg Y29tcF93aXRoX2RvbWFpbjYgREVGQVVMVCAnKDEyKSc7CitBTFRFUiBUQUJMRSB0ZXN0X2FkZF9k b21haW5fY29sIEFERCBDT0xVTU4geDExIGNvbXBfd2l0aF9kb21haW42W10gREVGQVVMVCAneygx Mil9JzsKK0FMVEVSIFRBQkxFIHRlc3RfYWRkX2RvbWFpbl9jb2wgQUREIENPTFVNTiB4MTIgZG9t YWluOFtdIERFRkFVTFQgJ3sxMn0nOworCiBEUk9QIFRBQkxFIHQyOwogRFJPUCBUQUJMRSB0ZXN0 X2FkZF9kb21haW5fY29sOworRFJPUCBUWVBFIGRvbWFpbjdyYW5nZSwgY29tcF93aXRoX2RvbWFp bjcsIGNvbXBfd2l0aF9kb21haW42LCBkb21haW42cmFuZ2U7CiBEUk9QIERPTUFJTiBkb21haW4x OwogRFJPUCBET01BSU4gZG9tYWluMjsKIERST1AgRE9NQUlOIGRvbWFpbjM7Ci0tIAoyLjM0LjEK Cg== --000000000000ad568d064d1c5628--