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 1pC7o7-0001Ch-Ey for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Jan 2023 23:31:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pC7o5-0000JW-Vj for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Jan 2023 23:31:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pC7o5-0000JN-LS for pgsql-hackers@lists.postgresql.org; Sun, 01 Jan 2023 23:31:57 +0000 Received: from relay5-d.mail.gandi.net ([217.70.183.197]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pC7o2-0008BQ-HE for pgsql-hackers@lists.postgresql.org; Sun, 01 Jan 2023 23:31:56 +0000 Received: (Authenticated sender: adsend@dunslane.net) by mail.gandi.net (Postfix) with ESMTPSA id 192871C0006; Sun, 1 Jan 2023 23:31:51 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------AOd1gEIPZK03OL2WY07e7Tu5" Message-ID: Date: Sun, 1 Jan 2023 18:31:50 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: Add a test to ldapbindpasswd Content-Language: en-US To: Thomas Munro Cc: PostgreSQL Hackers References: <06005bfb-0fd7-9d08-e0e5-440f277b73b4@dunslane.net> From: Andrew Dunstan In-Reply-To: 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. --------------AOd1gEIPZK03OL2WY07e7Tu5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 2023-01-01 Su 14:02, Thomas Munro wrote: > On Mon, Jan 2, 2023 at 3:04 AM Andrew Dunstan wrote: >> On 2022-12-19 Mo 11:16, Andrew Dunstan wrote: >>> There is currently no test for the use of ldapbindpasswd in the >>> pg_hba.conf file. This patch, mostly the work of John Naylor, remedies that. >>> >>> >> This currently has failures on the cfbot for meson builds on FBSD13 and >> Debian Bullseye, but it's not at all clear why. In both cases it fails >> where the ldap server is started. > I think it's failing when using meson. I guess it fails to fail on > macOS only because you need to add a new path for Homebrew/ARM like > commit 14d63dd2, so it's skipping (it'd be nice if we didn't need > another copy of all that logic). Trying locally... it looks like > slapd is failing silently, and with some tracing I can see it's > sending an error message to my syslog daemon, which logged: > > 2023-01-02T07:50:20.853019+13:00 x1 slapd[153599]: main: TLS init def > ctx failed: -1 > > Ah, it looks like this test is relying on "slapd-certs", which doesn't exist: > > tmunro@x1:~/projects/postgresql/build$ ls testrun/ldap/001_auth/data/ > ldap.conf ldappassword openldap-data portlock slapd-certs slapd.conf > tmunro@x1:~/projects/postgresql/build$ ls testrun/ldap/002_bindpasswd/data/ > portlock slapd.conf > > I didn't look closely, but apparently there is something wrong in the > part that copies certs from the ssl test? Not sure why it works for > autoconf... Let's see how we fare with this patch. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com --------------AOd1gEIPZK03OL2WY07e7Tu5 Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-a-test-for-ldapbindpasswd-v2.patch" Content-Disposition: attachment; filename="0001-Add-a-test-for-ldapbindpasswd-v2.patch" Content-Transfer-Encoding: base64 RnJvbSBkYWNlMjNkZjI5ZWZiNDNhYTVlNGJkZGM5OTA5ODIwM2MwZTVlZDAwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNsYW5l Lm5ldD4KRGF0ZTogU3VuLCAxIEphbiAyMDIzIDE4OjI3OjMwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSF0gQWRkIGEgdGVzdCBmb3IgbGRhcGJpbmRwYXNzd2QKClRoZSBleGlzdGluZyBMREFQ IHRlc3RzIGRvbid0IGNvdmVyIHRoZSB1c2Ugb2YgbGRhcGJpbmRwYXNzd2QgaW4KcGdfaGJh LmNvbmYsIHNvIHJlbWVkeSB0aGF0LgoKQXV0aG9yOiBKb2huIE5heWxvcgotLS0KIHNyYy90 ZXN0L2xkYXAvbWVzb24uYnVpbGQgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9sZGFwL3Qv MDAyX2JpbmRwYXNzd2QucGwgfCAyMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAyIGZpbGVzIGNoYW5nZWQsIDIwOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvbGRhcC90LzAwMl9iaW5kcGFzc3dkLnBsCgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbGRhcC9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L2xkYXAvbWVzb24uYnVpbGQKaW5k ZXggOTBkODgxMzhlNy4uNzYyOGE5YzdjNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbGRhcC9t ZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9sZGFwL21lc29uLmJ1aWxkCkBAIC03LDYgKzcs NyBAQCB0ZXN0cyArPSB7CiAgICd0YXAnOiB7CiAgICAgJ3Rlc3RzJzogWwogICAgICAgJ3Qv MDAxX2F1dGgucGwnLAorCSAgJ3QvMDAyX2JpbmRwYXNzd2QucGwnLAogICAgIF0sCiAgICAg J2Vudic6IHsKICAgICAgICd3aXRoX2xkYXAnOiBsZGFwLmZvdW5kKCkgPyAneWVzJyA6ICdu bycsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9sZGFwL3QvMDAyX2JpbmRwYXNzd2QucGwgYi9z cmMvdGVzdC9sZGFwL3QvMDAyX2JpbmRwYXNzd2QucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uODI5Njg2NDIwOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L2xkYXAvdC8wMDJfYmluZHBhc3N3ZC5wbApAQCAtMCwwICsxLDIwNyBAQAorCisjIENv cHlyaWdodCAoYykgMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBGaWxlOjpDb3B5OwordXNlIFBv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7 Cit1c2UgVGVzdDo6TW9yZTsKKworCitteSAoJHNsYXBkLCAkbGRhcF9iaW5fZGlyLCAkbGRh cF9zY2hlbWFfZGlyKTsKKworJGxkYXBfYmluX2RpciA9IHVuZGVmOyAgICAjIHVzdWFsbHkg aW4gUEFUSAorCitpZiAoJEVOVnt3aXRoX2xkYXB9IG5lICd5ZXMnKQoreworCXBsYW4gc2tp cF9hbGwgPT4gJ0xEQVAgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KK2Vsc2lm ICgkRU5We1BHX1RFU1RfRVhUUkF9ICF+IC9cYmxkYXBcYi8pCit7CisJcGxhbiBza2lwX2Fs bCA9PiAnUG90ZW50aWFsbHkgdW5zYWZlIHRlc3QgTERBUCBub3QgZW5hYmxlZCBpbiBQR19U RVNUX0VYVFJBJzsKK30KK2Vsc2lmICgkXk8gZXEgJ2RhcndpbicgJiYgLWQgJy91c3IvbG9j YWwvb3B0L29wZW5sZGFwJykKK3sKKwkjIHR5cGljYWwgcGF0aHMgZm9yIEhvbWVicmV3CisJ JHNsYXBkICAgICAgICAgICA9ICcvdXNyL2xvY2FsL29wdC9vcGVubGRhcC9saWJleGVjL3Ns YXBkJzsKKwkkbGRhcF9zY2hlbWFfZGlyID0gJy91c3IvbG9jYWwvZXRjL29wZW5sZGFwL3Nj aGVtYSc7Cit9CitlbHNpZiAoJF5PIGVxICdkYXJ3aW4nICYmIC1kICcvb3B0L2hvbWVicmV3 L29wdC9vcGVubGRhcCcpCit7CisgICAjIHR5cGljYWwgcGF0aHMgZm9yIEhvbWVicmV3IG9u IEFSTQorICAgJHNsYXBkICAgICAgICAgICA9ICcvb3B0L2hvbWVicmV3L29wdC9vcGVubGRh cC9saWJleGVjL3NsYXBkJzsKKyAgICRsZGFwX3NjaGVtYV9kaXIgPSAnL29wdC9ob21lYnJl dy9ldGMvb3BlbmxkYXAvc2NoZW1hJzsKK30KK2Vsc2lmICgkXk8gZXEgJ2RhcndpbicgJiYg LWQgJy9vcHQvbG9jYWwvZXRjL29wZW5sZGFwJykKK3sKKwkjIHR5cGljYWwgcGF0aHMgZm9y IE1hY1BvcnRzCisJJHNsYXBkICAgICAgICAgICA9ICcvb3B0L2xvY2FsL2xpYmV4ZWMvc2xh cGQnOworCSRsZGFwX3NjaGVtYV9kaXIgPSAnL29wdC9sb2NhbC9ldGMvb3BlbmxkYXAvc2No ZW1hJzsKK30KK2Vsc2lmICgkXk8gZXEgJ2xpbnV4JykKK3sKKwkkc2xhcGQgICAgICAgICAg ID0gJy91c3Ivc2Jpbi9zbGFwZCc7CisJJGxkYXBfc2NoZW1hX2RpciA9ICcvZXRjL2xkYXAv c2NoZW1hJyBpZiAtZCAnL2V0Yy9sZGFwL3NjaGVtYSc7CisJJGxkYXBfc2NoZW1hX2RpciA9 ICcvZXRjL29wZW5sZGFwL3NjaGVtYScgaWYgLWQgJy9ldGMvb3BlbmxkYXAvc2NoZW1hJzsK K30KK2Vsc2lmICgkXk8gZXEgJ2ZyZWVic2QnKQoreworCSRzbGFwZCAgICAgICAgICAgPSAn L3Vzci9sb2NhbC9saWJleGVjL3NsYXBkJzsKKwkkbGRhcF9zY2hlbWFfZGlyID0gJy91c3Iv bG9jYWwvZXRjL29wZW5sZGFwL3NjaGVtYSc7Cit9CitlbHNpZiAoJF5PIGVxICdvcGVuYnNk JykKK3sKKwkkc2xhcGQgICAgICAgICAgID0gJy91c3IvbG9jYWwvbGliZXhlYy9zbGFwZCc7 CisJJGxkYXBfc2NoZW1hX2RpciA9ICcvdXNyL2xvY2FsL3NoYXJlL2V4YW1wbGVzL29wZW5s ZGFwL3NjaGVtYSc7Cit9CitlbHNlCit7CisJcGxhbiBza2lwX2FsbCA9PiAibGRhcCB0ZXN0 cyBub3Qgc3VwcG9ydGVkIG9uICReTyBvciBkZXBlbmRlbmNpZXMgbm90IGluc3RhbGxlZCI7 Cit9CisKKyMgbWFrZSB5b3VyIG93biBlZGl0cyBoZXJlCisjJHNsYXBkID0gJyc7CisjJGxk YXBfYmluX2RpciA9ICcnOworIyRsZGFwX3NjaGVtYV9kaXIgPSAnJzsKKworJEVOVntQQVRI fSA9ICIkbGRhcF9iaW5fZGlyOiRFTlZ7UEFUSH0iIGlmICRsZGFwX2Jpbl9kaXI7CisKK215 ICRsZGFwX2RhdGFkaXIgID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVj a30vb3BlbmxkYXAtZGF0YSI7CitteSAkc2xhcGRfY2VydHMgICA9ICIke1Bvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9L3NsYXBkLWNlcnRzIjsKK215ICRzbGFwZF9jb25m ICAgID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vc2xhcGQuY29u ZiI7CitteSAkc2xhcGRfcGlkZmlsZSA9ICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0 bXBfY2hlY2t9L3NsYXBkLnBpZCI7CitteSAkc2xhcGRfbG9nZmlsZSA9ICIke1Bvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOjpsb2dfcGF0aH0vc2xhcGQubG9nIjsKK215ICRsZGFwX2NvbmYg ICAgID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vbGRhcC5jb25m IjsKK215ICRsZGFwX3NlcnZlciAgID0gJ2xvY2FsaG9zdCc7CitteSAkbGRhcF9wb3J0ICAg ICA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI6OmdldF9mcmVlX3BvcnQoKTsKK215ICRs ZGFwc19wb3J0ICAgID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlcjo6Z2V0X2ZyZWVfcG9y dCgpOworbXkgJGxkYXBfdXJsICAgICAgPSAibGRhcDovLyRsZGFwX3NlcnZlcjokbGRhcF9w b3J0IjsKK215ICRsZGFwc191cmwgICAgID0gImxkYXBzOi8vJGxkYXBfc2VydmVyOiRsZGFw c19wb3J0IjsKK215ICRsZGFwX2Jhc2VkbiAgID0gJ2RjPWV4YW1wbGUsZGM9bmV0JzsKK215 ICRsZGFwX3Jvb3RkbiAgID0gJ2NuPU1hbmFnZXIsZGM9ZXhhbXBsZSxkYz1uZXQnOworbXkg JGxkYXBfcm9vdHB3ICAgPSAnc2VjcmV0JzsKK215ICRsZGFwX3B3ZmlsZSAgID0gIiR7UG9z dGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vbGRhcHBhc3N3b3JkIjsKKworbm90 ZSAic2V0dGluZyB1cCBzbGFwZCI7CisKKyMgbmVlZCB0byBjcmVhdGUgbmV3IGNvbmZpZyB3 aXRob3V0IGFub255bW91cyBhdXRoCit1bmxpbmsgJHNsYXBkX2NvbmY7CisKK2FwcGVuZF90 b19maWxlKAorCSRzbGFwZF9jb25mLAorCXFxe2luY2x1ZGUgJGxkYXBfc2NoZW1hX2Rpci9j b3JlLnNjaGVtYQoraW5jbHVkZSAkbGRhcF9zY2hlbWFfZGlyL2Nvc2luZS5zY2hlbWEKK2lu Y2x1ZGUgJGxkYXBfc2NoZW1hX2Rpci9uaXMuc2NoZW1hCitpbmNsdWRlICRsZGFwX3NjaGVt YV9kaXIvaW5ldG9yZ3BlcnNvbi5zY2hlbWEKKworcGlkZmlsZSAkc2xhcGRfcGlkZmlsZQor bG9nZmlsZSAkc2xhcGRfbG9nZmlsZQorCithY2Nlc3MgdG8gKgorICAgICAgICBieSAqIHJl YWQKKyAgICAgICAgYnkgdXNlcnMgYXV0aAorCitkYXRhYmFzZSBsZGlmCitkaXJlY3Rvcnkg JGxkYXBfZGF0YWRpcgorCitUTFNDQUNlcnRpZmljYXRlRmlsZSAkc2xhcGRfY2VydHMvY2Eu Y3J0CitUTFNDZXJ0aWZpY2F0ZUZpbGUgJHNsYXBkX2NlcnRzL3NlcnZlci5jcnQKK1RMU0Nl cnRpZmljYXRlS2V5RmlsZSAkc2xhcGRfY2VydHMvc2VydmVyLmtleQorCitzdWZmaXggImRj PWV4YW1wbGUsZGM9bmV0Igorcm9vdGRuICIkbGRhcF9yb290ZG4iCityb290cHcgJGxkYXBf cm9vdHB3fSk7CisKK21rZGlyICRsZGFwX2RhdGFkaXIgb3IgZGllOworbWtkaXIgJHNsYXBk X2NlcnRzICBvciBkaWU7CisKK2NvcHkgIi4uL3NzbC9zc2wvc2VydmVyX2NhLmNydCIsICIk c2xhcGRfY2VydHMvY2EuY3J0IgorICB8fCBkaWUgImNvcHlpbmcgY2EuY3J0OiAkISI7Citj b3B5ICIuLi9zc2wvc3NsL3NlcnZlci1jbi1vbmx5LmNydCIsICIkc2xhcGRfY2VydHMvc2Vy dmVyLmNydCIKKyAgfHwgZGllICJjb3B5aW5nIHNlcnZlci5jcnQ6ICQhIjs7Citjb3B5ICIu Li9zc2wvc3NsL3NlcnZlci1jbi1vbmx5LmtleSIsICIkc2xhcGRfY2VydHMvc2VydmVyLmtl eSIKKyAgfHwgZGllICJjb3B5aW5nIHNlcnZlci5rZXk6ICQhIjs7CisKK3N5c3RlbV9vcl9i YWlsICRzbGFwZCwgJy1mJywgJHNsYXBkX2NvbmYsICctaCcsICIkbGRhcF91cmwgJGxkYXBz X3VybCI7CisKK0VORAoreworCWtpbGwgJ0lOVCcsIGBjYXQgJHNsYXBkX3BpZGZpbGVgIGlm IC1mICRzbGFwZF9waWRmaWxlOworfQorCisjIHdhaXQgdW50aWwgc2xhcGQgYWNjZXB0cyBy ZXF1ZXN0cworbXkgJHJldHJpZXMgPSAwOword2hpbGUgKDEpCit7CisJbGFzdAorCSAgaWYg KAorCQlzeXN0ZW1fbG9nKAorCQkJImxkYXBzZWFyY2giLCAiLXNiYXNlIiwKKwkJCSItSCIs ICAgICAgICAgJGxkYXBfdXJsLAorCQkJIi1iIiwgICAgICAgICAkbGRhcF9iYXNlZG4sCisJ CQkiLUQiLCAgICAgICAgICRsZGFwX3Jvb3RkbiwKKwkJCSIteSIsICAgICAgICAgJGxkYXBf cHdmaWxlLAorCQkJIi1uIiwgICAgICAgICAiJ29iamVjdGNsYXNzPSonIikgPT0gMCk7CisJ ZGllICJjYW5ub3QgY29ubmVjdCB0byBzbGFwZCIgaWYgKyskcmV0cmllcyA+PSAzMDA7CisJ bm90ZSAid2FpdGluZyBmb3Igc2xhcGQgdG8gYWNjZXB0IHJlcXVlc3RzLi4uIjsKKwlUaW1l OjpIaVJlczo6dXNsZWVwKDEwMDAwMDApOworfQorCiskRU5WeydMREFQVVJJJ30gICAgPSAk bGRhcF91cmw7CiskRU5WeydMREFQQklOREROJ30gPSAkbGRhcF9yb290ZG47CiskRU5WeydM REFQQ09ORid9ICAgPSAkbGRhcF9jb25mOworCisjIHVzZSBzYW1lIGRhdGEgYXMgMDAxIHRl c3QKKworbm90ZSAic2V0dGluZyB1cCBQb3N0Z3JlU1FMIGluc3RhbmNlIjsKKworbXkgJG5v ZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2RlLT5p bml0OworJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAibG9nX2Nvbm5l Y3Rpb25zID0gb25cbiIpOworJG5vZGUtPnN0YXJ0OworCiskbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICdDUkVBVEUgVVNFUiB0ZXN0MDsnKTsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgJ0NSRUFURSBVU0VSIHRlc3QxOycpOworJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAnQ1JFQVRFIFVTRVIgInRlc3QyQGV4YW1wbGUubmV0IjsnKTsKKworbm90ZSAi cnVubmluZyB0ZXN0cyI7CisKK3N1YiB0ZXN0X2FjY2VzcworeworCWxvY2FsICRUZXN0OjpC dWlsZGVyOjpMZXZlbCA9ICRUZXN0OjpCdWlsZGVyOjpMZXZlbCArIDE7CisKKwlteSAoJG5v ZGUsICRyb2xlLCAkZXhwZWN0ZWRfcmVzLCAkdGVzdF9uYW1lLCAlcGFyYW1zKSA9IEBfOwor CW15ICRjb25uc3RyID0gInVzZXI9JHJvbGUiOworCisJaWYgKCRleHBlY3RlZF9yZXMgZXEg MCkKKwl7CisJCSRub2RlLT5jb25uZWN0X29rKCRjb25uc3RyLCAkdGVzdF9uYW1lLCAlcGFy YW1zKTsKKwl9CisJZWxzZQorCXsKKwkJIyBObyBjaGVja3Mgb2YgdGhlIGVycm9yIG1lc3Nh Z2UsIG9ubHkgdGhlIHN0YXR1cyBjb2RlLgorCQkkbm9kZS0+Y29ubmVjdF9mYWlscygkY29u bnN0ciwgJHRlc3RfbmFtZSwgJXBhcmFtcyk7CisJfQorfQorCitub3RlICJ1c2UgbGRhcGJp bmRwYXNzd2QiOworCit1bmxpbmsoJG5vZGUtPmRhdGFfZGlyIC4gJy9wZ19oYmEuY29uZicp OworJG5vZGUtPmFwcGVuZF9jb25mKCdwZ19oYmEuY29uZicsCisJcXF7bG9jYWwgYWxsIGFs bCBsZGFwIGxkYXBzZXJ2ZXI9JGxkYXBfc2VydmVyIGxkYXBwb3J0PSRsZGFwX3BvcnQgbGRh cGJhc2Vkbj0iJGxkYXBfYmFzZWRuIiBsZGFwYmluZGRuPSIkbGRhcF9yb290ZG4iIGxkYXBi aW5kcGFzc3dkPXdyb25nfQorKTsKKyRub2RlLT5yZXN0YXJ0OworCiskRU5WeyJQR1BBU1NX T1JEIn0gPSAnc2VjcmV0MSc7Cit0ZXN0X2FjY2Vzcygkbm9kZSwgJ3Rlc3QxJywgMiwgJ3Nl YXJjaCtiaW5kIGF1dGhlbnRpY2F0aW9uIGZhaWxzIHdpdGggd3JvbmcgbGRhcGJpbmRwYXNz d2QnKTsKKwordW5saW5rKCRub2RlLT5kYXRhX2RpciAuICcvcGdfaGJhLmNvbmYnKTsKKyRu b2RlLT5hcHBlbmRfY29uZigncGdfaGJhLmNvbmYnLAorCXFxe2xvY2FsIGFsbCBhbGwgbGRh cCBsZGFwc2VydmVyPSRsZGFwX3NlcnZlciBsZGFwcG9ydD0kbGRhcF9wb3J0IGxkYXBiYXNl ZG49IiRsZGFwX2Jhc2VkbiIgbGRhcGJpbmRkbj0iJGxkYXBfcm9vdGRuIiBsZGFwYmluZHBh c3N3ZD0iJGxkYXBfcm9vdHB3In0KKyk7Ciskbm9kZS0+cmVzdGFydDsKKwordGVzdF9hY2Nl c3MoJG5vZGUsICd0ZXN0MScsIDAsICdzZWFyY2grYmluZCBhdXRoZW50aWNhdGlvbiBzdWNj ZWVkcyB3aXRoIGxkYXBiaW5kcGFzc3dkJyk7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4z NC4xCgo= --------------AOd1gEIPZK03OL2WY07e7Tu5--