Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1msgOq-0007Q9-Q6 for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Dec 2021 07:21:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1msgOp-0000ma-M8 for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Dec 2021 07:20:59 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1msgOp-0000kf-3K for pgsql-hackers@lists.postgresql.org; Thu, 02 Dec 2021 07:20:59 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1msgOl-0001zy-Eh for pgsql-hackers@postgresql.org; Thu, 02 Dec 2021 07:20:57 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 719093201CD3 for ; Thu, 2 Dec 2021 02:20:53 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Thu, 02 Dec 2021 02:20:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=ASep5A0bvGtORgyZLRwGq4VZf8ITY 0HiCdkWykfV0aM=; b=np/swNRRkn9UySzbv0oxV17oVf6QHZCeIXVUGr3l4ygLh v0cbBvlBO7ecnuTx9q8GqEH9kP3qYGB91lxZ2JNGPMGDWvIzMkUf7iL/FD3fkCqX cwCvfyTxbLhyQmF4926x/y/x5UZ0KNlQH5zOSF3XyKLo4hCR4jMs3trpigjp+Sk3 n9FRiVYSfPwLIwVwq1w8bZvoiLTxyrLywfw9NwaEiDa9gfOC29VZMZvrNKVvu/y6 rEYGs6JzfCkrgg75xSkTpif9HrZkiHmTXHQ4AuKO/5qQdv7YpsjrcaJGPY5fNkdL fwlLkp44MndFCp4PX33imhKUF6tyqn1wrymwi8JNg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrieeggddutdelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfhffuvfesmhdtreertd efjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghi shgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvg hrnhepteevuedvieekieeghfevfffhhfdvjeevleelfeeikeeikedvffegteekuddtfeel necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvth gvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Thu, 2 Dec 2021 02:20:50 -0500 (EST) Content-Type: multipart/mixed; boundary="------------1bjDk88hH20aFRG1POP5yuV1" Message-ID: Date: Thu, 2 Dec 2021 08:20:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Content-Language: en-US From: Peter Eisentraut Subject: Replace uses of deprecated Python module distutils.sysconfig To: pgsql-hackers 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. --------------1bjDk88hH20aFRG1POP5yuV1 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit With Python 3.10, configure spits out warnings about the module distutils.sysconfig being deprecated and scheduled for removal in Python 3.12: :1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead :1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives This patch changes the uses in configure to use the module sysconfig instead. The logic stays the same. (It's basically the same module but as its own top-level module.) Note that sysconfig exists since Python 2.7, so this moves the minimum required version up from Python 2.6. Buildfarm impact: gaur and prariedog use Python 2.6 and would need to be upgraded. Possible backpatching: Backpatching should be considered, since surely someone will otherwise complain when Python 3.12 comes around. But dropping support for Python versions in stable branches should be done with some care. Python 3.10 was released Oct. 4, 2021, so it is quite new. Python major releases are now yearly, so the above-mentioned Python 3.12 can be expected in autumn of 2023. Current PostgreSQL releases support Python versions as follows: PG10: 2.4+ PG11: 2.4+ PG12: 2.4+ (EOL Nov. 2024) PG13: 2.6+ PG14: 2.6+ So unfortunately, we won't be able to EOL all versions with Python 2.4 support before Python 3.12 arrives. I suggest leaving the backbranches alone for now. At the moment, we don't even know whether additional changes will be required for 3.12 (and 3.11) support, so the overall impact isn't known yet. In a few months, we will probably know more about this. In the meantime, the warnings can be silenced using export PYTHONWARNINGS='ignore::DeprecationWarning' (It ought to be possible to be more specific, like 'ignore::DeprecationWarning:distutils.sysconfig', but it doesn't seem to work for me.) (I don't recommend putting that into configure, since then we wouldn't be able to learn about issues like this.) --------------1bjDk88hH20aFRG1POP5yuV1 Content-Type: text/plain; charset=UTF-8; name="0001-Replace-uses-of-deprecated-Python-module-distutils.s.patch" Content-Disposition: attachment; filename*0="0001-Replace-uses-of-deprecated-Python-module-distutils.s.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmY2ZkNGYxNzAyZjBjZWY3ZDBmNjU2NGFmZjk0YzRhNjI1OGYyNGU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyIERlYyAyMDIxIDA4OjA4OjQ0ICswMTAwClN1YmplY3Q6 IFtQQVRDSF0gUmVwbGFjZSB1c2VzIG9mIGRlcHJlY2F0ZWQgUHl0aG9uIG1vZHVsZSBkaXN0 dXRpbHMuc3lzY29uZmlnCgpXaXRoIFB5dGhvbiAzLjEwLCBjb25maWd1cmUgc3BpdHMgb3V0 IHdhcm5pbmdzIGFib3V0IHRoZSBtb2R1bGUKZGlzdHV0aWxzLnN5c2NvbmZpZyBiZWluZyBk ZXByZWNhdGVkIGFuZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4KUHl0aG9uIDMuMTIuICBD aGFuZ2UgdGhlIHVzZXMgaW4gY29uZmlndXJlIHRvIHVzZSB0aGUgbW9kdWxlIHN5c2NvbmZp ZwppbnN0ZWFkLiAgVGhlIGxvZ2ljIHN0YXlzIHRoZSBzYW1lLgoKTm90ZSB0aGF0IHN5c2Nv bmZpZyBleGlzdHMgc2luY2UgUHl0aG9uIDIuNywgc28gdGhpcyBtb3ZlcyB0aGUgbWluaW11 bQpyZXF1aXJlZCB2ZXJzaW9uIHVwIGZyb20gUHl0aG9uIDIuNi4KLS0tCiBjb25maWcvcHl0 aG9uLm00ICAgICAgICAgICAgICAgfCAyOCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t CiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgfCAzMCArKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dtbCB8ICA0ICsr LS0KIDMgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvY29uZmlnL3B5dGhvbi5tNCBiL2NvbmZpZy9weXRob24ubTQKaW5k ZXggZDQxYWViMjg3Ni4uOGNhMWVhYTY0YiAxMDA2NDQKLS0tIGEvY29uZmlnL3B5dGhvbi5t NAorKysgYi9jb25maWcvcHl0aG9uLm00CkBAIC0zNywyOCArMzcsMjggQEAgcHl0aG9uX21h am9ydmVyc2lvbj1gZWNobyAiJHB5dGhvbl9mdWxsdmVyc2lvbiIgfCBzZWQgJ1tzL15cKFsw LTldKlwpLiovXDEvXSdgCiBweXRob25fbWlub3J2ZXJzaW9uPWBlY2hvICIkcHl0aG9uX2Z1 bGx2ZXJzaW9uIiB8IHNlZCAnW3MvXlswLTldKlwuXChbMC05XSpcKS4qL1wxL10nYAogcHl0 aG9uX3ZlcnNpb249YGVjaG8gIiRweXRob25fZnVsbHZlcnNpb24iIHwgc2VkICdbcy9eXChb MC05XSpcLlswLTldKlwpLiovXDEvXSdgCiAjIFJlamVjdCB1bnN1cHBvcnRlZCBQeXRob24g dmVyc2lvbnMgYXMgc29vbiBhcyBwcmFjdGljYWwuCi1pZiB0ZXN0ICIkcHl0aG9uX21ham9y dmVyc2lvbiIgLWx0IDMgLWEgIiRweXRob25fbWlub3J2ZXJzaW9uIiAtbHQgNjsgdGhlbgot ICBBQ19NU0dfRVJST1IoW1B5dGhvbiB2ZXJzaW9uICRweXRob25fdmVyc2lvbiBpcyB0b28g b2xkICh2ZXJzaW9uIDIuNiBvciBsYXRlciBpcyByZXF1aXJlZCldKQoraWYgdGVzdCAiJHB5 dGhvbl9tYWpvcnZlcnNpb24iIC1sdCAzIC1hICIkcHl0aG9uX21pbm9ydmVyc2lvbiIgLWx0 IDc7IHRoZW4KKyAgQUNfTVNHX0VSUk9SKFtQeXRob24gdmVyc2lvbiAkcHl0aG9uX3ZlcnNp b24gaXMgdG9vIG9sZCAodmVyc2lvbiAyLjcgb3IgbGF0ZXIgaXMgcmVxdWlyZWQpXSkKIGZp CiAKLUFDX01TR19DSEVDS0lORyhbZm9yIFB5dGhvbiBkaXN0dXRpbHMgbW9kdWxlXSkKLWlm ICIke1BZVEhPTn0iIC1jICdpbXBvcnQgZGlzdHV0aWxzJyAyPiZBU19NRVNTQUdFX0xPR19G RAorQUNfTVNHX0NIRUNLSU5HKFtmb3IgUHl0aG9uIHN5c2NvbmZpZyBtb2R1bGVdKQoraWYg IiR7UFlUSE9OfSIgLWMgJ2ltcG9ydCBzeXNjb25maWcnIDI+JkFTX01FU1NBR0VfTE9HX0ZE CiB0aGVuCiAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCiBlbHNlCiAgICAgQUNfTVNHX1JFU1VM VChubykKLSAgICBBQ19NU0dfRVJST1IoW2Rpc3R1dGlscyBtb2R1bGUgbm90IGZvdW5kXSkK KyAgICBBQ19NU0dfRVJST1IoW3N5c2NvbmZpZyBtb2R1bGUgbm90IGZvdW5kXSkKIGZpCiAK IEFDX01TR19DSEVDS0lORyhbUHl0aG9uIGNvbmZpZ3VyYXRpb24gZGlyZWN0b3J5XSkKLXB5 dGhvbl9jb25maWdkaXI9YCR7UFlUSE9OfSAtYyAiaW1wb3J0IGRpc3R1dGlscy5zeXNjb25m aWc7IHByaW50KCcgJy5qb2luKGZpbHRlcihOb25lLGRpc3R1dGlscy5zeXNjb25maWcuZ2V0 X2NvbmZpZ192YXJzKCdMSUJQTCcpKSkpImAKK3B5dGhvbl9jb25maWdkaXI9YCR7UFlUSE9O fSAtYyAiaW1wb3J0IHN5c2NvbmZpZzsgcHJpbnQoJyAnLmpvaW4oZmlsdGVyKE5vbmUsc3lz Y29uZmlnLmdldF9jb25maWdfdmFycygnTElCUEwnKSkpKSJgCiBBQ19NU0dfUkVTVUxUKFsk cHl0aG9uX2NvbmZpZ2Rpcl0pCiAKIEFDX01TR19DSEVDS0lORyhbUHl0aG9uIGluY2x1ZGUg ZGlyZWN0b3JpZXNdKQogcHl0aG9uX2luY2x1ZGVzcGVjPWAke1BZVEhPTn0gLWMgIgotaW1w b3J0IGRpc3R1dGlscy5zeXNjb25maWcKLWEgPSAnLUknICsgZGlzdHV0aWxzLnN5c2NvbmZp Zy5nZXRfcHl0aG9uX2luYyhGYWxzZSkKLWIgPSAnLUknICsgZGlzdHV0aWxzLnN5c2NvbmZp Zy5nZXRfcHl0aG9uX2luYyhUcnVlKQoraW1wb3J0IHN5c2NvbmZpZworYSA9ICctSScgKyBz eXNjb25maWcuZ2V0X3BhdGgoJ2luY2x1ZGUnKQorYiA9ICctSScgKyBzeXNjb25maWcuZ2V0 X3BhdGgoJ3BsYXRpbmNsdWRlJykKIGlmIGEgPT0gYjoKICAgICBwcmludChhKQogZWxzZToK QEAgLTk2LDggKzk2LDggQEAgQUNfREVGVU4oW1BHQUNfQ0hFQ0tfUFlUSE9OX0VNQkVEX1NF VFVQXSwKIFtBQ19SRVFVSVJFKFtfUEdBQ19DSEVDS19QWVRIT05fRElSU10pCiBBQ19NU0df Q0hFQ0tJTkcoW2hvdyB0byBsaW5rIGFuIGVtYmVkZGVkIFB5dGhvbiBhcHBsaWNhdGlvbl0p CiAKLXB5dGhvbl9saWJkaXI9YCR7UFlUSE9OfSAtYyAiaW1wb3J0IGRpc3R1dGlscy5zeXNj b25maWc7IHByaW50KCcgJy5qb2luKGZpbHRlcihOb25lLGRpc3R1dGlscy5zeXNjb25maWcu Z2V0X2NvbmZpZ192YXJzKCdMSUJESVInKSkpKSJgCi1weXRob25fbGRsaWJyYXJ5PWAke1BZ VEhPTn0gLWMgImltcG9ydCBkaXN0dXRpbHMuc3lzY29uZmlnOyBwcmludCgnICcuam9pbihm aWx0ZXIoTm9uZSxkaXN0dXRpbHMuc3lzY29uZmlnLmdldF9jb25maWdfdmFycygnTERMSUJS QVJZJykpKSkiYAorcHl0aG9uX2xpYmRpcj1gJHtQWVRIT059IC1jICJpbXBvcnQgc3lzY29u ZmlnOyBwcmludCgnICcuam9pbihmaWx0ZXIoTm9uZSxzeXNjb25maWcuZ2V0X2NvbmZpZ192 YXJzKCdMSUJESVInKSkpKSJgCitweXRob25fbGRsaWJyYXJ5PWAke1BZVEhPTn0gLWMgImlt cG9ydCBzeXNjb25maWc7IHByaW50KCcgJy5qb2luKGZpbHRlcihOb25lLHN5c2NvbmZpZy5n ZXRfY29uZmlnX3ZhcnMoJ0xETElCUkFSWScpKSkpImAKIAogIyBJZiBMRExJQlJBUlkgZXhp c3RzIGFuZCBoYXMgYSBzaGxpYiBleHRlbnNpb24sIHVzZSBpdCB2ZXJiYXRpbS4KIGxkbGli cmFyeT1gZWNobyAiJHtweXRob25fbGRsaWJyYXJ5fSIgfCBzZWQgLWUgJ3MvXC5zbyQvLycg LWUgJ3MvXC5kbGwkLy8nIC1lICdzL1wuZHlsaWIkLy8nIC1lICdzL1wuc2wkLy8nYApAQCAt MTA5LDExICsxMDksMTEgQEAgZWxzZQogCSMgT3RoZXJ3aXNlLCBndWVzcyB0aGUgYmFzZSBu YW1lIG9mIHRoZSBzaGxpYi4KIAkjIExEVkVSU0lPTiB3YXMgYWRkZWQgaW4gUHl0aG9uIDMu MiwgYmVmb3JlIHRoYXQgdXNlIFZFUlNJT04sCiAJIyBvciBmYWlsaW5nIHRoYXQsICRweXRo b25fdmVyc2lvbiBmcm9tIF9QR0FDX0NIRUNLX1BZVEhPTl9ESVJTLgotCXB5dGhvbl9sZHZl cnNpb249YCR7UFlUSE9OfSAtYyAiaW1wb3J0IGRpc3R1dGlscy5zeXNjb25maWc7IHByaW50 KCcgJy5qb2luKGZpbHRlcihOb25lLGRpc3R1dGlscy5zeXNjb25maWcuZ2V0X2NvbmZpZ192 YXJzKCdMRFZFUlNJT04nKSkpKSJgCisJcHl0aG9uX2xkdmVyc2lvbj1gJHtQWVRIT059IC1j ICJpbXBvcnQgc3lzY29uZmlnOyBwcmludCgnICcuam9pbihmaWx0ZXIoTm9uZSxzeXNjb25m aWcuZ2V0X2NvbmZpZ192YXJzKCdMRFZFUlNJT04nKSkpKSJgCiAJaWYgdGVzdCB4IiR7cHl0 aG9uX2xkdmVyc2lvbn0iICE9IHgiIjsgdGhlbgogCQlsZGxpYnJhcnk9InB5dGhvbiR7cHl0 aG9uX2xkdmVyc2lvbn0iCiAJZWxzZQotCQlweXRob25fdmVyc2lvbl92YXI9YCR7UFlUSE9O fSAtYyAiaW1wb3J0IGRpc3R1dGlscy5zeXNjb25maWc7IHByaW50KCcgJy5qb2luKGZpbHRl cihOb25lLGRpc3R1dGlscy5zeXNjb25maWcuZ2V0X2NvbmZpZ192YXJzKCdWRVJTSU9OJykp KSkiYAorCQlweXRob25fdmVyc2lvbl92YXI9YCR7UFlUSE9OfSAtYyAiaW1wb3J0IHN5c2Nv bmZpZzsgcHJpbnQoJyAnLmpvaW4oZmlsdGVyKE5vbmUsc3lzY29uZmlnLmdldF9jb25maWdf dmFycygnVkVSU0lPTicpKSkpImAKIAkJaWYgdGVzdCB4IiR7cHl0aG9uX3ZlcnNpb25fdmFy fSIgIT0geCIiOyB0aGVuCiAJCQlsZGxpYnJhcnk9InB5dGhvbiR7cHl0aG9uX3ZlcnNpb25f dmFyfSIKIAkJZWxzZQpAQCAtMTczLDcgKzE3Myw3IEBAIFBML1B5dGhvbi5dKQogZmkKIHB5 dGhvbl9saWJzcGVjPSItTCR7cHl0aG9uX2xpYmRpcn0gLWwke2xkbGlicmFyeX0iCiAKLXB5 dGhvbl9hZGRpdGlvbmFsX2xpYnM9YCR7UFlUSE9OfSAtYyAiaW1wb3J0IGRpc3R1dGlscy5z eXNjb25maWc7IHByaW50KCcgJy5qb2luKGZpbHRlcihOb25lLGRpc3R1dGlscy5zeXNjb25m aWcuZ2V0X2NvbmZpZ192YXJzKCdMSUJTJywnTElCQycsJ0xJQk0nLCdCQVNFTU9ETElCUycp KSkpImAKK3B5dGhvbl9hZGRpdGlvbmFsX2xpYnM9YCR7UFlUSE9OfSAtYyAiaW1wb3J0IHN5 c2NvbmZpZzsgcHJpbnQoJyAnLmpvaW4oZmlsdGVyKE5vbmUsc3lzY29uZmlnLmdldF9jb25m aWdfdmFycygnTElCUycsJ0xJQkMnLCdMSUJNJywnQkFTRU1PRExJQlMnKSkpKSJgCiAKIEFD X01TR19SRVNVTFQoWyR7cHl0aG9uX2xpYnNwZWN9ICR7cHl0aG9uX2FkZGl0aW9uYWxfbGli c31dKQogCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggNWQ3MmVl M2ZkZS4uYWM2MWFkOGFkMCAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3Vy ZQpAQCAtMTAzNDUsMzQgKzEwMzQ1LDM0IEBAIHB5dGhvbl9tYWpvcnZlcnNpb249YGVjaG8g IiRweXRob25fZnVsbHZlcnNpb24iIHwgc2VkICdzL15cKFswLTldKlwpLiovXDEvJ2AKIHB5 dGhvbl9taW5vcnZlcnNpb249YGVjaG8gIiRweXRob25fZnVsbHZlcnNpb24iIHwgc2VkICdz L15bMC05XSpcLlwoWzAtOV0qXCkuKi9cMS8nYAogcHl0aG9uX3ZlcnNpb249YGVjaG8gIiRw eXRob25fZnVsbHZlcnNpb24iIHwgc2VkICdzL15cKFswLTldKlwuWzAtOV0qXCkuKi9cMS8n YAogIyBSZWplY3QgdW5zdXBwb3J0ZWQgUHl0aG9uIHZlcnNpb25zIGFzIHNvb24gYXMgcHJh Y3RpY2FsLgotaWYgdGVzdCAiJHB5dGhvbl9tYWpvcnZlcnNpb24iIC1sdCAzIC1hICIkcHl0 aG9uX21pbm9ydmVyc2lvbiIgLWx0IDY7IHRoZW4KLSAgYXNfZm5fZXJyb3IgJD8gIlB5dGhv biB2ZXJzaW9uICRweXRob25fdmVyc2lvbiBpcyB0b28gb2xkICh2ZXJzaW9uIDIuNiBvciBs YXRlciBpcyByZXF1aXJlZCkiICIkTElORU5PIiA1CitpZiB0ZXN0ICIkcHl0aG9uX21ham9y dmVyc2lvbiIgLWx0IDMgLWEgIiRweXRob25fbWlub3J2ZXJzaW9uIiAtbHQgNzsgdGhlbgor ICBhc19mbl9lcnJvciAkPyAiUHl0aG9uIHZlcnNpb24gJHB5dGhvbl92ZXJzaW9uIGlzIHRv byBvbGQgKHZlcnNpb24gMi43IG9yIGxhdGVyIGlzIHJlcXVpcmVkKSIgIiRMSU5FTk8iIDUK IGZpCiAKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIFB5dGhvbiBkaXN0dXRpbHMgbW9kdWxlIiA+JjUKLSRhc19lY2hvX24gImNoZWNr aW5nIGZvciBQeXRob24gZGlzdHV0aWxzIG1vZHVsZS4uLiAiID4mNjsgfQotaWYgIiR7UFlU SE9OfSIgLWMgJ2ltcG9ydCBkaXN0dXRpbHMnIDI+JjUKK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIFB5dGhvbiBzeXNjb25maWcgbW9k dWxlIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBQeXRob24gc3lzY29uZmlnIG1v ZHVsZS4uLiAiID4mNjsgfQoraWYgIiR7UFlUSE9OfSIgLWMgJ2ltcG9ydCBzeXNjb25maWcn IDI+JjUKIHRoZW4KICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogeWVzIiA+JjUKICRhc19lY2hvICJ5ZXMiID4mNjsgfQogZWxzZQogICAg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1CiAkYXNfZWNobyAibm8iID4mNjsgfQotICAgIGFzX2ZuX2Vycm9yICQ/ICJkaXN0dXRp bHMgbW9kdWxlIG5vdCBmb3VuZCIgIiRMSU5FTk8iIDUKKyAgICBhc19mbl9lcnJvciAkPyAi c3lzY29uZmlnIG1vZHVsZSBub3QgZm91bmQiICIkTElORU5PIiA1CiBmaQogCiB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIFB5dGhvbiBjb25m aWd1cmF0aW9uIGRpcmVjdG9yeSIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBQeXRob24g Y29uZmlndXJhdGlvbiBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KLXB5dGhvbl9jb25maWdkaXI9 YCR7UFlUSE9OfSAtYyAiaW1wb3J0IGRpc3R1dGlscy5zeXNjb25maWc7IHByaW50KCcgJy5q b2luKGZpbHRlcihOb25lLGRpc3R1dGlscy5zeXNjb25maWcuZ2V0X2NvbmZpZ192YXJzKCdM SUJQTCcpKSkpImAKK3B5dGhvbl9jb25maWdkaXI9YCR7UFlUSE9OfSAtYyAiaW1wb3J0IHN5 c2NvbmZpZzsgcHJpbnQoJyAnLmpvaW4oZmlsdGVyKE5vbmUsc3lzY29uZmlnLmdldF9jb25m aWdfdmFycygnTElCUEwnKSkpKSJgCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJHB5dGhvbl9jb25maWdkaXIiID4mNQogJGFzX2VjaG8gIiRw eXRob25fY29uZmlnZGlyIiA+JjY7IH0KIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBQeXRob24gaW5jbHVkZSBkaXJlY3RvcmllcyIgPiY1 CiAkYXNfZWNob19uICJjaGVja2luZyBQeXRob24gaW5jbHVkZSBkaXJlY3Rvcmllcy4uLiAi ID4mNjsgfQogcHl0aG9uX2luY2x1ZGVzcGVjPWAke1BZVEhPTn0gLWMgIgotaW1wb3J0IGRp c3R1dGlscy5zeXNjb25maWcKLWEgPSAnLUknICsgZGlzdHV0aWxzLnN5c2NvbmZpZy5nZXRf cHl0aG9uX2luYyhGYWxzZSkKLWIgPSAnLUknICsgZGlzdHV0aWxzLnN5c2NvbmZpZy5nZXRf cHl0aG9uX2luYyhUcnVlKQoraW1wb3J0IHN5c2NvbmZpZworYSA9ICctSScgKyBzeXNjb25m aWcuZ2V0X3BhdGgoJ2luY2x1ZGUnKQorYiA9ICctSScgKyBzeXNjb25maWcuZ2V0X3BhdGgo J3BsYXRpbmNsdWRlJykKIGlmIGEgPT0gYjoKICAgICBwcmludChhKQogZWxzZToKQEAgLTEw Mzg4LDggKzEwMzg4LDggQEAgJGFzX2VjaG8gIiRweXRob25faW5jbHVkZXNwZWMiID4mNjsg fQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBo b3cgdG8gbGluayBhbiBlbWJlZGRlZCBQeXRob24gYXBwbGljYXRpb24iID4mNQogJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaG93IHRvIGxpbmsgYW4gZW1iZWRkZWQgUHl0aG9uIGFwcGxpY2F0 aW9uLi4uICIgPiY2OyB9CiAKLXB5dGhvbl9saWJkaXI9YCR7UFlUSE9OfSAtYyAiaW1wb3J0 IGRpc3R1dGlscy5zeXNjb25maWc7IHByaW50KCcgJy5qb2luKGZpbHRlcihOb25lLGRpc3R1 dGlscy5zeXNjb25maWcuZ2V0X2NvbmZpZ192YXJzKCdMSUJESVInKSkpKSJgCi1weXRob25f bGRsaWJyYXJ5PWAke1BZVEhPTn0gLWMgImltcG9ydCBkaXN0dXRpbHMuc3lzY29uZmlnOyBw cmludCgnICcuam9pbihmaWx0ZXIoTm9uZSxkaXN0dXRpbHMuc3lzY29uZmlnLmdldF9jb25m aWdfdmFycygnTERMSUJSQVJZJykpKSkiYAorcHl0aG9uX2xpYmRpcj1gJHtQWVRIT059IC1j ICJpbXBvcnQgc3lzY29uZmlnOyBwcmludCgnICcuam9pbihmaWx0ZXIoTm9uZSxzeXNjb25m aWcuZ2V0X2NvbmZpZ192YXJzKCdMSUJESVInKSkpKSJgCitweXRob25fbGRsaWJyYXJ5PWAk e1BZVEhPTn0gLWMgImltcG9ydCBzeXNjb25maWc7IHByaW50KCcgJy5qb2luKGZpbHRlcihO b25lLHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcnMoJ0xETElCUkFSWScpKSkpImAKIAogIyBJ ZiBMRExJQlJBUlkgZXhpc3RzIGFuZCBoYXMgYSBzaGxpYiBleHRlbnNpb24sIHVzZSBpdCB2 ZXJiYXRpbS4KIGxkbGlicmFyeT1gZWNobyAiJHtweXRob25fbGRsaWJyYXJ5fSIgfCBzZWQg LWUgJ3MvXC5zbyQvLycgLWUgJ3MvXC5kbGwkLy8nIC1lICdzL1wuZHlsaWIkLy8nIC1lICdz L1wuc2wkLy8nYApAQCAtMTA0MDEsMTEgKzEwNDAxLDExIEBAIGVsc2UKIAkjIE90aGVyd2lz ZSwgZ3Vlc3MgdGhlIGJhc2UgbmFtZSBvZiB0aGUgc2hsaWIuCiAJIyBMRFZFUlNJT04gd2Fz IGFkZGVkIGluIFB5dGhvbiAzLjIsIGJlZm9yZSB0aGF0IHVzZSBWRVJTSU9OLAogCSMgb3Ig ZmFpbGluZyB0aGF0LCAkcHl0aG9uX3ZlcnNpb24gZnJvbSBfUEdBQ19DSEVDS19QWVRIT05f RElSUy4KLQlweXRob25fbGR2ZXJzaW9uPWAke1BZVEhPTn0gLWMgImltcG9ydCBkaXN0dXRp bHMuc3lzY29uZmlnOyBwcmludCgnICcuam9pbihmaWx0ZXIoTm9uZSxkaXN0dXRpbHMuc3lz Y29uZmlnLmdldF9jb25maWdfdmFycygnTERWRVJTSU9OJykpKSkiYAorCXB5dGhvbl9sZHZl cnNpb249YCR7UFlUSE9OfSAtYyAiaW1wb3J0IHN5c2NvbmZpZzsgcHJpbnQoJyAnLmpvaW4o ZmlsdGVyKE5vbmUsc3lzY29uZmlnLmdldF9jb25maWdfdmFycygnTERWRVJTSU9OJykpKSki YAogCWlmIHRlc3QgeCIke3B5dGhvbl9sZHZlcnNpb259IiAhPSB4IiI7IHRoZW4KIAkJbGRs aWJyYXJ5PSJweXRob24ke3B5dGhvbl9sZHZlcnNpb259IgogCWVsc2UKLQkJcHl0aG9uX3Zl cnNpb25fdmFyPWAke1BZVEhPTn0gLWMgImltcG9ydCBkaXN0dXRpbHMuc3lzY29uZmlnOyBw cmludCgnICcuam9pbihmaWx0ZXIoTm9uZSxkaXN0dXRpbHMuc3lzY29uZmlnLmdldF9jb25m aWdfdmFycygnVkVSU0lPTicpKSkpImAKKwkJcHl0aG9uX3ZlcnNpb25fdmFyPWAke1BZVEhP Tn0gLWMgImltcG9ydCBzeXNjb25maWc7IHByaW50KCcgJy5qb2luKGZpbHRlcihOb25lLHN5 c2NvbmZpZy5nZXRfY29uZmlnX3ZhcnMoJ1ZFUlNJT04nKSkpKSJgCiAJCWlmIHRlc3QgeCIk e3B5dGhvbl92ZXJzaW9uX3Zhcn0iICE9IHgiIjsgdGhlbgogCQkJbGRsaWJyYXJ5PSJweXRo b24ke3B5dGhvbl92ZXJzaW9uX3Zhcn0iCiAJCWVsc2UKQEAgLTEwNDY1LDcgKzEwNDY1LDcg QEAgUEwvUHl0aG9uLiIgIiRMSU5FTk8iIDUKIGZpCiBweXRob25fbGlic3BlYz0iLUwke3B5 dGhvbl9saWJkaXJ9IC1sJHtsZGxpYnJhcnl9IgogCi1weXRob25fYWRkaXRpb25hbF9saWJz PWAke1BZVEhPTn0gLWMgImltcG9ydCBkaXN0dXRpbHMuc3lzY29uZmlnOyBwcmludCgnICcu am9pbihmaWx0ZXIoTm9uZSxkaXN0dXRpbHMuc3lzY29uZmlnLmdldF9jb25maWdfdmFycygn TElCUycsJ0xJQkMnLCdMSUJNJywnQkFTRU1PRExJQlMnKSkpKSJgCitweXRob25fYWRkaXRp b25hbF9saWJzPWAke1BZVEhPTn0gLWMgImltcG9ydCBzeXNjb25maWc7IHByaW50KCcgJy5q b2luKGZpbHRlcihOb25lLHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcnMoJ0xJQlMnLCdMSUJD JywnTElCTScsJ0JBU0VNT0RMSUJTJykpKSkiYAogCiB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHtweXRob25fbGlic3BlY30gJHtweXRob25f YWRkaXRpb25hbF9saWJzfSIgPiY1CiAkYXNfZWNobyAiJHtweXRob25fbGlic3BlY30gJHtw eXRob25fYWRkaXRpb25hbF9saWJzfSIgPiY2OyB9CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvaW5zdGFsbGF0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwK aW5kZXggZDM4ZjliYzkxNi4uYTQ0OTcxOWZkMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2luc3RhbGxhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dt bApAQCAtMTk1LDggKzE5NSw4IEBAIDx0aXRsZT5SZXF1aXJlbWVudHM8L3RpdGxlPgogICAg ICAgVG8gYnVpbGQgdGhlIDxhcHBsaWNhdGlvbj5QTC9QeXRob248L2FwcGxpY2F0aW9uPiBz ZXJ2ZXIgcHJvZ3JhbW1pbmcKICAgICAgIGxhbmd1YWdlLCB5b3UgbmVlZCBhIDxwcm9kdWN0 bmFtZT5QeXRob248L3Byb2R1Y3RuYW1lPgogICAgICAgaW5zdGFsbGF0aW9uIHdpdGggdGhl IGhlYWRlciBmaWxlcyBhbmQKLSAgICAgIHRoZSA8YXBwbGljYXRpb24+ZGlzdHV0aWxzPC9h cHBsaWNhdGlvbj4gbW9kdWxlLiAgVGhlIG1pbmltdW0KLSAgICAgIHJlcXVpcmVkIHZlcnNp b24gaXMgPHByb2R1Y3RuYW1lPlB5dGhvbjwvcHJvZHVjdG5hbWU+IDIuNi4KKyAgICAgIHRo ZSA8YXBwbGljYXRpb24+c3lzY29uZmlnPC9hcHBsaWNhdGlvbj4gbW9kdWxlLiAgVGhlIG1p bmltdW0KKyAgICAgIHJlcXVpcmVkIHZlcnNpb24gaXMgPHByb2R1Y3RuYW1lPlB5dGhvbjwv cHJvZHVjdG5hbWU+IDIuNy4KICAgICAgIDxwcm9kdWN0bmFtZT5QeXRob24gMzwvcHJvZHVj dG5hbWU+IGlzIHN1cHBvcnRlZCBpZiBpdCdzCiAgICAgICB2ZXJzaW9uIDMuMSBvciBsYXRl cjsgYnV0IHNlZQogICAgICAgPHhyZWYgbGlua2VuZD0icGxweXRob24tcHl0aG9uMjMiLz4K LS0gCjIuMzQuMQoK --------------1bjDk88hH20aFRG1POP5yuV1--