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 1sPzUp-007J9l-Uk for pgsql-hackers@arkaria.postgresql.org; Sat, 06 Jul 2024 07:06:12 +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 1sPzUn-001GVT-CF for pgsql-hackers@arkaria.postgresql.org; Sat, 06 Jul 2024 07:06:10 +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.94.2) (envelope-from ) id 1sPzUm-001GVK-Pu for pgsql-hackers@lists.postgresql.org; Sat, 06 Jul 2024 07:06:09 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sPzUf-000evZ-B4 for pgsql-hackers@lists.postgresql.org; Sat, 06 Jul 2024 07:06:07 +0000 Received: from [192.168.11.6] (p3619047-ipxg13201funabasi.chiba.ocn.ne.jp [61.207.96.47]) by oss.nttdata.com (Postfix) with ESMTPSA id B86656069B for ; Sat, 6 Jul 2024 16:05:56 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com Content-Type: multipart/mixed; boundary="------------KtNqD0tnPw5liZDKb8sTLl30" Message-ID: Date: Sat, 6 Jul 2024 16:05:56 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: PostgreSQL Developers Content-Language: en-US From: Fujii Masao Subject: MERGE/SPLIT partition commands should create new partitions in the parent's tablespace? List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------KtNqD0tnPw5liZDKb8sTLl30 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, I noticed that ALTER TABLE MERGE PARTITIONS and SPLIT PARTITION commands always create new partitions in the default tablespace, regardless of the parent's tablespace. However, the indexes of these new partitions inherit the tablespaces of their parent indexes. This inconsistency seems odd. Is this an oversight or intentional? Here are the steps I used to test this: ------------------------------------------------------- CREATE TABLESPACE tblspc LOCATION '/tmp/tblspc'; CREATE TABLE t (i int PRIMARY KEY USING INDEX TABLESPACE tblspc) PARTITION BY RANGE (i) TABLESPACE tblspc; CREATE TABLE tp_0_1 PARTITION OF t FOR VALUES FROM (0) TO (1); CREATE TABLE tp_1_2 PARTITION OF t FOR VALUES FROM (1) TO (2); ALTER TABLE t MERGE PARTITIONS (tp_0_1, tp_1_2) INTO tp_0_2; SELECT tablename, tablespace FROM pg_tables WHERE tablename IN ('t', 'tp_0_2') ORDER BY tablename; tablename | tablespace -----------+------------ t | tblspc tp_0_2 | (null) (2 rows) SELECT indexname, tablespace FROM pg_indexes WHERE tablename IN ('t', 'tp_0_2') ORDER BY indexname; indexname | tablespace -------------+------------ t_pkey | tblspc tp_0_2_pkey | tblspc ------------------------------------------------------- If it's an oversight, I've attached a patch to ensure these commands create new partitions in the parent's tablespace. Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------KtNqD0tnPw5liZDKb8sTLl30 Content-Type: text/plain; charset=UTF-8; name="v1-0001-Ensure-MERGE-SPLIT-partition-commands-create-new-.patch" Content-Disposition: attachment; filename*0="v1-0001-Ensure-MERGE-SPLIT-partition-commands-create-new-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxY2U5MDFkNTZiZDZmMGU3Y2IxNGYzMDU3MDE4N2IzNmYyNDlmY2Q3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFNhdCwgNiBKdWwgMjAyNCAxNDoxODo1NCArMDkwMApTdWJqZWN0OiBbUEFU Q0ggdjFdIEVuc3VyZSBNRVJHRS9TUExJVCBwYXJ0aXRpb24gY29tbWFuZHMgY3JlYXRlIG5l dwogcGFydGl0aW9ucyBpbiB0aGUgcGFyZW50J3MgdGFibGVzcGFjZS4KClByZXZpb3VzbHks IEFMVEVSIFRBQkxFIE1FUkdFIFBBUlRJVElPTlMgYW5kIEFMVEVSIFRBQkxFIFNQTElUIFBB UlRJVElPTgpjb21tYW5kcyBhbHdheXMgY3JlYXRlZCBuZXcgcGFydGl0aW9ucyBpbiB0aGUg ZGVmYXVsdCB0YWJsZXNwYWNlLAppZ25vcmluZyB0aGUgcGFyZW50J3MgdGFibGVzcGFjZS4g VGhpcyBjb21taXQgZml4ZXMgdGhhdCwgbWFraW5nIHN1cmUKbmV3IHBhcnRpdGlvbnMgaW5o ZXJpdCB0aGUgcGFyZW50J3MgdGFibGVzcGFjZS4KCkJhY2twYXRjaCB0byB2MTcgd2hlcmUg dGhvc2UgY29tbWFuZHMgd2VyZSBhZGRlZC4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3RhYmxlLnNnbWwgICAgICAgICAgICAgfCAgNiArKystLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dCB8IDIxICsrKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dCB8IDI0ICsrKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5z cWwgICAgICB8IDEwICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25f c3BsaXQuc3FsICAgICAgfCAxMSArKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNzEgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNn bWwKaW5kZXggYzA2MmEzNjg4MC4uNmEyODIyYWRhZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf dGFibGUuc2dtbApAQCAtMTE2Myw3ICsxMTYzLDggQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+ LCBSRU0KICAgICAgIE5ldyBwYXJ0aXRpb25zIHdpbGwgaGF2ZSB0aGUgc2FtZSB0YWJsZSBh Y2Nlc3MgbWV0aG9kIGFzIHRoZSBwYXJlbnQuCiAgICAgICBJZiB0aGUgcGFyZW50IHRhYmxl IGlzIHBlcnNpc3RlbnQgdGhlbiBuZXcgcGFydGl0aW9ucyBhcmUgY3JlYXRlZAogICAgICAg cGVyc2lzdGVudC4gIElmIHRoZSBwYXJlbnQgdGFibGUgaXMgdGVtcG9yYXJ5IHRoZW4gbmV3 IHBhcnRpdGlvbnMKLSAgICAgIGFyZSBhbHNvIGNyZWF0ZWQgdGVtcG9yYXJ5LgorICAgICAg YXJlIGFsc28gY3JlYXRlZCB0ZW1wb3JhcnkuICBOZXcgcGFydGl0aW9ucyB3aWxsIGFsc28g YmUgY3JlYXRlZCBpbgorICAgICAgdGhlIHNhbWUgdGFibGVzcGFjZSBhcyB0aGUgcGFyZW50 LgogICAgICA8L3BhcmE+CiAgICAgIDxub3RlPgogICAgICAgPHBhcmE+CkBAIC0xMjM1LDcg KzEyMzYsOCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgVGhlIG5ldyBw YXJ0aXRpb24gd2lsbCBoYXZlIHRoZSBzYW1lIHRhYmxlIGFjY2VzcyBtZXRob2QgYXMgdGhl IHBhcmVudC4KICAgICAgIElmIHRoZSBwYXJlbnQgdGFibGUgaXMgcGVyc2lzdGVudCB0aGVu IHRoZSBuZXcgcGFydGl0aW9uIGlzIGNyZWF0ZWQKICAgICAgIHBlcnNpc3RlbnQuICBJZiB0 aGUgcGFyZW50IHRhYmxlIGlzIHRlbXBvcmFyeSB0aGVuIHRoZSBuZXcgcGFydGl0aW9uCi0g ICAgICBpcyBhbHNvIGNyZWF0ZWQgdGVtcG9yYXJ5LgorICAgICAgaXMgYWxzbyBjcmVhdGVk IHRlbXBvcmFyeS4gIFRoZSBuZXcgcGFydGl0aW9uIHdpbGwgYWxzbyBiZSBjcmVhdGVkIGlu CisgICAgICB0aGUgc2FtZSB0YWJsZXNwYWNlIGFzIHRoZSBwYXJlbnQuCiAgICAgIDwvcGFy YT4KICAgICAgPG5vdGU+CiAgICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKaW5kZXggZGJmZTBkNmIxYy4uOWUxZWZmMTllMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTIwMzMxLDcgKzIwMzMxLDcgQEAgY3JlYXRlUGFydGl0aW9uVGFibGUo UmFuZ2VWYXIgKm5ld1BhcnROYW1lLCBSZWxhdGlvbiBtb2RlbFJlbCwKIAljcmVhdGVTdG10 LT5jb25zdHJhaW50cyA9IE5JTDsKIAljcmVhdGVTdG10LT5vcHRpb25zID0gTklMOwogCWNy ZWF0ZVN0bXQtPm9uY29tbWl0ID0gT05DT01NSVRfTk9PUDsKLQljcmVhdGVTdG10LT50YWJs ZXNwYWNlbmFtZSA9IE5VTEw7CisJY3JlYXRlU3RtdC0+dGFibGVzcGFjZW5hbWUgPSBnZXRf dGFibGVzcGFjZV9uYW1lKG1vZGVsUmVsLT5yZF9yZWwtPnJlbHRhYmxlc3BhY2UpOwogCWNy ZWF0ZVN0bXQtPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAljcmVhdGVTdG10LT5hY2Nlc3NN ZXRob2QgPSBnZXRfYW1fbmFtZShtb2RlbFJlbC0+cmRfcmVsLT5yZWxhbSk7CiAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dAppbmRleCA5 YzY3YTRhOGIxLi5kMTlhYjg3YjVhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CkBAIC04NjEsNiArODYxLDI3IEBAIFNFVCBzZWFy Y2hfcGF0aCA9IHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hLCBwZ190ZW1wLCBwdWJsaWM7CiAt LSBDYW4ndCBtZXJnZSB0ZW1wb3JhcnkgcGFydGl0aW9ucyBpbnRvIGEgcGVyc2lzdGVudCBw YXJ0aXRpb24KIEFMVEVSIFRBQkxFIHQgTUVSR0UgUEFSVElUSU9OUyAodHBfMF8xLCB0cF8x XzIpIElOVE8gdHBfMF8yOwogUk9MTEJBQ0s7CistLSBDaGVjayB0aGUgbmV3IHBhcnRpdGlv biBpbmhlcml0cyBwYXJlbnQncyB0YWJsZXNwYWNlCitDUkVBVEUgVEFCTEUgdCAoaSBpbnQg UFJJTUFSWSBLRVkgVVNJTkcgSU5ERVggVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKQor ICBQQVJUSVRJT04gQlkgUkFOR0UgKGkpIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZTsK K0NSRUFURSBUQUJMRSB0cF8wXzEgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgw KSBUTyAoMSk7CitDUkVBVEUgVEFCTEUgdHBfMV8yIFBBUlRJVElPTiBPRiB0IEZPUiBWQUxV RVMgRlJPTSAoMSkgVE8gKDIpOworQUxURVIgVEFCTEUgdCBNRVJHRSBQQVJUSVRJT05TICh0 cF8wXzEsIHRwXzFfMikgSU5UTyB0cF8wXzI7CitTRUxFQ1QgdGFibGVzcGFjZSBGUk9NIHBn X3RhYmxlcyBXSEVSRSB0YWJsZW5hbWUgSU4gKCd0JywgJ3RwXzBfMicpIE9SREVSIEJZIHRh Ymxlc3BhY2U7CisgICAgdGFibGVzcGFjZSAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3NfdGJsc3BhY2UKKyByZWdyZXNzX3RibHNwYWNlCisoMiByb3dzKQorCitTRUxFQ1Qg dGFibGVzcGFjZSBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVuYW1lIElOICgndCcsICd0 cF8wXzInKSBPUkRFUiBCWSB0YWJsZXNwYWNlOworICAgIHRhYmxlc3BhY2UgICAgCistLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3RibHNwYWNlCisgcmVncmVzc190YmxzcGFjZQor KDIgcm93cykKKworRFJPUCBUQUJMRSB0OwogLS0gQ2hlY2sgdGhlIG5ldyBwYXJ0aXRpb24g aW5oZXJpdHMgcGFyZW50J3MgdGFibGUgYWNjZXNzIG1ldGhvZAogU0VUIHNlYXJjaF9wYXRo ID0gcGFydGl0aW9uc19tZXJnZV9zY2hlbWEsIHB1YmxpYzsKIENSRUFURSBBQ0NFU1MgTUVU SE9EIHBhcnRpdGlvbnNfbWVyZ2VfaGVhcCBUWVBFIFRBQkxFIEhBTkRMRVIgaGVhcF90YWJs ZWFtX2hhbmRsZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bh cnRpdGlvbl9zcGxpdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlv bl9zcGxpdC5vdXQKaW5kZXggNWZiZmM4ZjgwNS4uM2Y1MWEwYjRmNiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fc3BsaXQub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dApAQCAtMTQ5Myw2 ICsxNDkzLDMwIEBAIFNFTEVDVCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgcGdfY2F0 YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpCiAgdHBfMV8yIHwgRk9S IFZBTFVFUyBGUk9NICgxKSBUTyAoMikgfCB0CiAoMiByb3dzKQogCitEUk9QIFRBQkxFIHQ7 CistLSBDaGVjayBuZXcgcGFydGl0aW9ucyBpbmhlcml0cyBwYXJlbnQncyB0YWJsZXNwYWNl CitDUkVBVEUgVEFCTEUgdCAoaSBpbnQgUFJJTUFSWSBLRVkgVVNJTkcgSU5ERVggVEFCTEVT UEFDRSByZWdyZXNzX3RibHNwYWNlKQorICBQQVJUSVRJT04gQlkgUkFOR0UgKGkpIFRBQkxF U1BBQ0UgcmVncmVzc190YmxzcGFjZTsKK0NSRUFURSBUQUJMRSB0cF8wXzIgUEFSVElUSU9O IE9GIHQgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMik7CitBTFRFUiBUQUJMRSB0IFNQTElU IFBBUlRJVElPTiB0cF8wXzIgSU5UTworICAoUEFSVElUSU9OIHRwXzBfMSBGT1IgVkFMVUVT IEZST00gKDApIFRPICgxKSwKKyAgIFBBUlRJVElPTiB0cF8xXzIgRk9SIFZBTFVFUyBGUk9N ICgxKSBUTyAoMikpOworU0VMRUNUIHRhYmxlc3BhY2UgRlJPTSBwZ190YWJsZXMgV0hFUkUg dGFibGVuYW1lIElOICgndCcsICd0cF8wXzEnLCAndHBfMV8yJykgT1JERVIgQlkgdGFibGVz cGFjZTsKKyAgICB0YWJsZXNwYWNlICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c190YmxzcGFjZQorIHJlZ3Jlc3NfdGJsc3BhY2UKKyByZWdyZXNzX3RibHNwYWNlCisoMyBy b3dzKQorCitTRUxFQ1QgdGFibGVzcGFjZSBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVu YW1lIElOICgndCcsICd0cF8wXzEnLCAndHBfMV8yJykgT1JERVIgQlkgdGFibGVzcGFjZTsK KyAgICB0YWJsZXNwYWNlICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190Ymxz cGFjZQorIHJlZ3Jlc3NfdGJsc3BhY2UKKyByZWdyZXNzX3RibHNwYWNlCisoMyByb3dzKQor CiBEUk9QIFRBQkxFIHQ7CiAtLSBDaGVjayBuZXcgcGFydGl0aW9ucyBpbmhlcml0cyBwYXJl bnQncyB0YWJsZSBhY2Nlc3MgbWV0aG9kCiBDUkVBVEUgQUNDRVNTIE1FVEhPRCBwYXJ0aXRp b25fc3BsaXRfaGVhcCBUWVBFIFRBQkxFIEhBTkRMRVIgaGVhcF90YWJsZWFtX2hhbmRsZXI7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbAppbmRleCA1NjI0 OTczMjAwLi42YzMyNDJhYjE1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w YXJ0aXRpb25fbWVyZ2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlv bl9tZXJnZS5zcWwKQEAgLTUzNiw2ICs1MzYsMTYgQEAgU0VUIHNlYXJjaF9wYXRoID0gcGFy dGl0aW9uc19tZXJnZV9zY2hlbWEsIHBnX3RlbXAsIHB1YmxpYzsKIEFMVEVSIFRBQkxFIHQg TUVSR0UgUEFSVElUSU9OUyAodHBfMF8xLCB0cF8xXzIpIElOVE8gdHBfMF8yOwogUk9MTEJB Q0s7CiAKKy0tIENoZWNrIHRoZSBuZXcgcGFydGl0aW9uIGluaGVyaXRzIHBhcmVudCdzIHRh Ymxlc3BhY2UKK0NSRUFURSBUQUJMRSB0IChpIGludCBQUklNQVJZIEtFWSBVU0lORyBJTkRF WCBUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpCisgIFBBUlRJVElPTiBCWSBSQU5HRSAo aSkgVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlOworQ1JFQVRFIFRBQkxFIHRwXzBfMSBQ QVJUSVRJT04gT0YgdCBGT1IgVkFMVUVTIEZST00gKDApIFRPICgxKTsKK0NSRUFURSBUQUJM RSB0cF8xXzIgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7CitB TFRFUiBUQUJMRSB0IE1FUkdFIFBBUlRJVElPTlMgKHRwXzBfMSwgdHBfMV8yKSBJTlRPIHRw XzBfMjsKK1NFTEVDVCB0YWJsZXNwYWNlIEZST00gcGdfdGFibGVzIFdIRVJFIHRhYmxlbmFt ZSBJTiAoJ3QnLCAndHBfMF8yJykgT1JERVIgQlkgdGFibGVzcGFjZTsKK1NFTEVDVCB0YWJs ZXNwYWNlIEZST00gcGdfaW5kZXhlcyBXSEVSRSB0YWJsZW5hbWUgSU4gKCd0JywgJ3RwXzBf MicpIE9SREVSIEJZIHRhYmxlc3BhY2U7CitEUk9QIFRBQkxFIHQ7CisKIC0tIENoZWNrIHRo ZSBuZXcgcGFydGl0aW9uIGluaGVyaXRzIHBhcmVudCdzIHRhYmxlIGFjY2VzcyBtZXRob2QK IFNFVCBzZWFyY2hfcGF0aCA9IHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hLCBwdWJsaWM7CiBD UkVBVEUgQUNDRVNTIE1FVEhPRCBwYXJ0aXRpb25zX21lcmdlX2hlYXAgVFlQRSBUQUJMRSBI QU5ETEVSIGhlYXBfdGFibGVhbV9oYW5kbGVyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Bh cnRpdGlvbl9zcGxpdC5zcWwKaW5kZXggOWM3ZDQ3OTYzYy4uNWYwZjkzZGQwNyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fc3BsaXQuc3FsCkBAIC04ODAsNiArODgw LDE3IEBAIFNFTEVDVCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgcGdfY2F0YWxvZy5w Z19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpCiAKIERST1AgVEFCTEUgdDsKIAor LS0gQ2hlY2sgbmV3IHBhcnRpdGlvbnMgaW5oZXJpdHMgcGFyZW50J3MgdGFibGVzcGFjZQor Q1JFQVRFIFRBQkxFIHQgKGkgaW50IFBSSU1BUlkgS0VZIFVTSU5HIElOREVYIFRBQkxFU1BB Q0UgcmVncmVzc190YmxzcGFjZSkKKyAgUEFSVElUSU9OIEJZIFJBTkdFIChpKSBUQUJMRVNQ QUNFIHJlZ3Jlc3NfdGJsc3BhY2U7CitDUkVBVEUgVEFCTEUgdHBfMF8yIFBBUlRJVElPTiBP RiB0IEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDIpOworQUxURVIgVEFCTEUgdCBTUExJVCBQ QVJUSVRJT04gdHBfMF8yIElOVE8KKyAgKFBBUlRJVElPTiB0cF8wXzEgRk9SIFZBTFVFUyBG Uk9NICgwKSBUTyAoMSksCisgICBQQVJUSVRJT04gdHBfMV8yIEZPUiBWQUxVRVMgRlJPTSAo MSkgVE8gKDIpKTsKK1NFTEVDVCB0YWJsZXNwYWNlIEZST00gcGdfdGFibGVzIFdIRVJFIHRh YmxlbmFtZSBJTiAoJ3QnLCAndHBfMF8xJywgJ3RwXzFfMicpIE9SREVSIEJZIHRhYmxlc3Bh Y2U7CitTRUxFQ1QgdGFibGVzcGFjZSBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVuYW1l IElOICgndCcsICd0cF8wXzEnLCAndHBfMV8yJykgT1JERVIgQlkgdGFibGVzcGFjZTsKK0RS T1AgVEFCTEUgdDsKKwogLS0gQ2hlY2sgbmV3IHBhcnRpdGlvbnMgaW5oZXJpdHMgcGFyZW50 J3MgdGFibGUgYWNjZXNzIG1ldGhvZAogQ1JFQVRFIEFDQ0VTUyBNRVRIT0QgcGFydGl0aW9u X3NwbGl0X2hlYXAgVFlQRSBUQUJMRSBIQU5ETEVSIGhlYXBfdGFibGVhbV9oYW5kbGVyOwog Q1JFQVRFIFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpIFVTSU5HIHBh cnRpdGlvbl9zcGxpdF9oZWFwOwotLSAKMi40NS4yCgo= --------------KtNqD0tnPw5liZDKb8sTLl30--