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 1u0cKY-004TDT-Ts for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 08:23:15 +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 1u0cKX-00FEZv-LY for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 08:23:13 +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.94.2) (envelope-from ) id 1u0cKX-00FEZn-AR for pgsql-hackers@lists.postgresql.org; Fri, 04 Apr 2025 08:23:13 +0000 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u0cKU-003Jiv-2j for pgsql-hackers@lists.postgresql.org; Fri, 04 Apr 2025 08:23:12 +0000 Received: by mail-qt1-x833.google.com with SMTP id d75a77b69052e-4769aef457bso18048251cf.2 for ; Fri, 04 Apr 2025 01:23:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743754989; x=1744359789; 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=cHCnhlkyBUKRTq0JK6pr2Boj7US3Q8l1k+30gvx/Pts=; b=EjPQTKf0FfR7e8S8bnWoWaGdi9dSG3wQo3VmYwGFSAAg+S1iRhylG9r4uOv8EewOvI aZmXcTPj+ekHvFwIPENDBjjPI/DBsTV3H/7b++EjViGfo9bdPyMo5NqVxdEv6cqlg46P QUBaxePaBFxte8kkZKy3juIsAl1AT3lg91RTj4CPv3ZoKrlbvBxaQbeqm5lEsrGimuuU kcylpuvrBEu9dcHAIMsxMZzIajaX/kqy0B+7q7b307wj8MNLAs4WcwRnNjx3Ma3f/X7+ H71OmEpmzvEtVYhyuUK+pF0gqkAfP/YfKH17vk+XobDeDtPb9ptxanqFmakY/9LtCENO xgSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743754989; x=1744359789; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cHCnhlkyBUKRTq0JK6pr2Boj7US3Q8l1k+30gvx/Pts=; b=qqI80OkzGqszvdGQt+ZuwSJZLUNsLRMT/hngkbQCwIyHD5kLbis7S1D7RutL82Yb5m 3rAYLTwcdxMi/XpJ67/WWvoZbSl/YeDBo6ZykuOb8JgMBQ+s8+qN5PDmmah6p+9quywf pl7os+AEwiRSRNQpJ/duCjAX2s9pK7Y1EwG00EXxIvpoTlLHs/zfURYKnFm/Jb5rZpL+ qf2/DRJc0S8Wn1wucnPBMPzHQjRmYsCLoyeB3unb8oX9+6d+/n95QZRyXLcaL5USaC2q SzZNGLVCaKy8r1iP8UAUaQkdZ8zKHFil70N67OXdKV/YU7J0UirUdU01Z15RUcaWmseA 5mog== X-Forwarded-Encrypted: i=1; AJvYcCVybAUZFA6g3KnD8oPMfDSp8s7vGOg6WTT4VZcGMLcl20GGnvZK8APwrT4P5rJaBdvJb0LC5IiM3fGvvCYe@lists.postgresql.org X-Gm-Message-State: AOJu0Yz8cpN470H6LX0qwG1It5i5++Y8TOgxmwZuG9OepQvq7DRoQPC4 Lc8JP+QDLFBf8RNsVPm/dqOhSjusW+32hFsXWqxgXJdpsbE9mtpTvW1dK6KmgS3Lvfr7z4rvcwF bxW1woY27PCR5Mh9nCxS2YA7tLGc= X-Gm-Gg: ASbGncuvPNCiQ/F3L+XLnsxsYlPhiixNNpK9+MaBViW2AdqLJAgPgmtxFVa9wB8fbzf PxiMJXzpVbA7SKQzjwlFoE9veJ57DNNv/0jpgo7JDyr8i+RqT8kpOscCl8/D4WYfKClzey9Uy8j nSXQaC7iNC2iXe0zPE+4AjLeNimcti94RUS2VoG7AqOt3pwKU1WVpLwKqgBg== X-Google-Smtp-Source: AGHT+IEpUK5z6I2BcgAvLx5zAPPdap+jrPTZP92k0IXkBcGjIevPT88vr1V0sWxtDnUjrxZL90KG9PD48Hjb8u+SvYM= X-Received: by 2002:a05:622a:28a:b0:476:8e3e:2da4 with SMTP id d75a77b69052e-47925a406dbmr29622981cf.38.1743754988930; Fri, 04 Apr 2025 01:23:08 -0700 (PDT) MIME-Version: 1.0 References: <202503311812.vxg5b7rzfgf6@alvherre.pgsql> <616efe2c-3986-43cf-b88c-4435849acf9e@dunslane.net> In-Reply-To: <616efe2c-3986-43cf-b88c-4435849acf9e@dunslane.net> From: Mahendra Singh Thalor Date: Fri, 4 Apr 2025 13:52:56 +0530 X-Gm-Features: AQ5f1Jq1ixsB_X3LOvKbe4V-6fmvk3S0qTQbVBqD4s6xZssoOiTz7492GybzYQY Message-ID: Subject: Re: Non-text mode for pg_dumpall To: Andrew Dunstan Cc: =?UTF-8?Q?=C3=81lvaro_Herrera?= , jian he , Srinath Reddy , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000b0e76a0631ef9820" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b0e76a0631ef9820 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 4 Apr 2025 at 01:17, Andrew Dunstan wrote: > > > On 2025-04-01 Tu 1:59 AM, Mahendra Singh Thalor wrote: > > On Mon, 31 Mar 2025 at 23:43, =C3=81lvaro Herrera wrote: > >> Hi > >> > >> FWIW I don't think the on_exit_nicely business is in final shape just > >> yet. We're doing something super strange and novel about keeping trac= k > >> of an array index, so that we can modify it later. Or something like > >> that, I think? That doesn't sound all that nice to me. Elsewhere it > >> was suggested that we need some way to keep track of the list of thing= s > >> that need cleanup (a list of connections IIRC?) -- perhaps in a > >> thread-local variable or a global or something -- and we install the > >> cleanup function once, and that reads from the variable. The program > >> can add things to the list, or remove them, at will; and we don't need > >> to modify the cleanup function in any way. > >> > >> -- > >> =C3=81lvaro Herrera Breisgau, Deutschland =E2=80=94 https://w= ww.EnterpriseDB.com/ > > Thanks =C3=81lvaro for the feedback. > > > > I removed the old handling of on_exit_nicely_list from the last patch > > set and added one simple function to just update the archive handle in > > shutdown_info. (shutdown_info.AHX =3D AHX;) > > > > For first database, we will add entry into on_exit_nicely_list array > > and for rest database, we will update only shutdown_info as we already > > closed connection for previous database.With this fix, we will not > > touch entry of on_exit_nicely_list for each database. > > > > Here, I am attaching updated patches. > > > > > OK, looks good. here's my latest. I'm currently working on tidying up > docco and comments. > > > cheers > > > andrew > > > > > -- > Andrew Dunstan > EDB: https://www.enterprisedb.com Thanks Andrew for the updated patches. Here, I am attaching a delta patch with some more TAP-test cases. --=20 Thanks and Regards Mahendra Singh Thalor EnterpriseDB: http://www.enterprisedb.com --000000000000b0e76a0631ef9820 Content-Type: application/octet-stream; name="delta_0004-some-negative-TAP-test-case-for-pg_restore-when-dump.noci" Content-Disposition: attachment; filename="delta_0004-some-negative-TAP-test-case-for-pg_restore-when-dump.noci" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m92ioqop0 RnJvbSA2Y2E1MDAwM2YwODRiNmQwMWYxZDllZThiYzlkZDU2MzY5Y2E0MDU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYWhlbmRyYSBTaW5naCBUaGFsb3IgPG1haGk2cnVuQGdtYWls LmNvbT4KRGF0ZTogRnJpLCA0IEFwciAyMDI1IDEzOjQ4OjMwICswNTMwClN1YmplY3Q6IFtQQVRD SF0gc29tZSBuZWdhdGl2ZSBUQVAtdGVzdCBjYXNlIGZvciBwZ19yZXN0b3JlIHdoZW4gZHVtcCBv ZgogcGdfZHVtcGFsbCBpcyB1c2VkLgoKLS0tCiBzcmMvYmluL3BnX2R1bXAvdC8wMDZfcGdfZHVt cGFsbC5wbCB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNjggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIG1vZGUgY2hhbmdlIDEwMDY0NCA9 PiAxMDA3NTUgc3JjL2Jpbi9wZ19kdW1wL3QvMDA2X3BnX2R1bXBhbGwucGwKCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvdC8wMDZfcGdfZHVtcGFsbC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90 LzAwNl9wZ19kdW1wYWxsLnBsCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXgg ZmRmZDFhZTk5MGIuLjQ0YWZkZjUyNWZmCi0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwNl9wZ19k dW1wYWxsLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwNl9wZ19kdW1wYWxsLnBsCkBAIC0x MTUsNiArMTE1LDcgQEAgbXkgJXBnZHVtcGFsbF9ydW5zID0gKAogCQlDUkVBVEUgUk9MRSBncmFu dDg7CiAKIAkJQ1JFQVRFIFRBQkxFIHQgKGlkIGludCk7CisJCUlOU0VSVCBJTlRPIHQgVkFMVUVT ICgxKSwgKDIpLCAoMyksICg0KTsKIAogCQlHUkFOVCBTRUxFQ1QgT04gVEFCTEUgdCBUTyBncmFu dDE7CiAJCUdSQU5UIElOU0VSVCBPTiBUQUJMRSB0IFRPIGdyYW50MjsKQEAgLTE1NywyNyArMTU4 LDM3IEBAIG15ICVwZ2R1bXBhbGxfcnVucyA9ICgKIAkJc2V0dXBfc3FsID0+ICdDUkVBVEUgREFU QUJBU0UgZGIxOwogCQlcYyBkYjEKIAkJQ1JFQVRFIFRBQkxFIHQxIChpZCBpbnQpOworCQlJTlNF UlQgSU5UTyB0MSBWQUxVRVMgKDEpLCAoMiksICgzKSwgKDQpOwogCQlDUkVBVEUgVEFCTEUgdDIg KGlkIGludCk7CisJCUlOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMSksICgyKSwgKDMpLCAoNCk7CiAK IAkJQ1JFQVRFIERBVEFCQVNFIGRiMjsKIAkJXGMgZGIyCiAJCUNSRUFURSBUQUJMRSB0MyAoaWQg aW50KTsKKwkJSU5TRVJUIElOVE8gdDMgVkFMVUVTICgxKSwgKDIpLCAoMyksICg0KTsKIAkJQ1JF QVRFIFRBQkxFIHQ0IChpZCBpbnQpOworCQlJTlNFUlQgSU5UTyB0NCBWQUxVRVMgKDEpLCAoMiks ICgzKSwgKDQpOwogCiAJCUNSRUFURSBEQVRBQkFTRSBkYmV4MzsKIAkJXGMgZGJleDMKIAkJQ1JF QVRFIFRBQkxFIHQ1IChpZCBpbnQpOworCQlJTlNFUlQgSU5UTyB0NSBWQUxVRVMgKDEpLCAoMiks ICgzKSwgKDQpOwogCQlDUkVBVEUgVEFCTEUgdDYgKGlkIGludCk7CisJCUlOU0VSVCBJTlRPIHQ2 IFZBTFVFUyAoMSksICgyKSwgKDMpLCAoNCk7CiAKIAkJQ1JFQVRFIERBVEFCQVNFIGRiZXg0Owog CQlcYyBkYmV4NAogCQlDUkVBVEUgVEFCTEUgdDcgKGlkIGludCk7CisJCUlOU0VSVCBJTlRPIHQ3 IFZBTFVFUyAoMSksICgyKSwgKDMpLCAoNCk7CiAJCUNSRUFURSBUQUJMRSB0OCAoaWQgaW50KTsK KwkJSU5TRVJUIElOVE8gdDggVkFMVUVTICgxKSwgKDIpLCAoMyksICg0KTsKIAogCQlDUkVBVEUg REFUQUJBU0UgZGI1OwogCQlcYyBkYjUKIAkJQ1JFQVRFIFRBQkxFIHQ5IChpZCBpbnQpOworCQlJ TlNFUlQgSU5UTyB0OSBWQUxVRVMgKDEpLCAoMiksICgzKSwgKDQpOwogCQlDUkVBVEUgVEFCTEUg dDEwIChpZCBpbnQpOworCQlJTlNFUlQgSU5UTyB0MTAgVkFMVUVTICgxKSwgKDIpLCAoMyksICg0 KTsKIAkJJywKIAkJZHVtcF9jbWQgPT4gWwogCQkJJ3BnX2R1bXBhbGwnLApAQCAtMjI1LDggKzIz Niw4IEBAIG15ICVwZ2R1bXBhbGxfcnVucyA9ICgKIAl9LAogCiAJZm9ybWF0X2RpcmVjdG9yeSA9 PiB7Ci0JCXNldHVwX3NxbCA9PgotCQkgICdDUkVBVEUgVEFCTEUgZm9ybWF0X2RpcmVjdG9yeShh IGludCwgYiBib29sZWFuLCBjIHRleHQpOycsCisJCXNldHVwX3NxbCA9PiAiQ1JFQVRFIFRBQkxF IGZvcm1hdF9kaXJlY3RvcnkoYSBpbnQsIGIgYm9vbGVhbiwgYyB0ZXh0KTsKKwkJSU5TRVJUIElO VE8gZm9ybWF0X2RpcmVjdG9yeSBWQUxVRVMgKDEsIHRydWUsICduYW1lMScpLCAoMiwgZmFsc2Us ICduYW1lMicpOyIsCiAJCWR1bXBfY21kID0+IFsKIAkJCSdwZ19kdW1wYWxsJywKIAkJCSctLWZv cm1hdCcgPT4gJ2RpcmVjdG9yeScsCkBAIC0yMzgsMTEgKzI0OSwxMiBAQCBteSAlcGdkdW1wYWxs X3J1bnMgPSAoCiAJCQknLS1maWxlJyA9PiAiJHRlbXBkaXIvZm9ybWF0X2RpcmVjdG9yeS5zcWwi LAogCQkJIiR0ZW1wZGlyL2Zvcm1hdF9kaXJlY3RvcnkiLAogCQldLAotCQlsaWtlID0+IHFyL15c blxRQ1JFQVRFIFRBQkxFIHB1YmxpYy5mb3JtYXRfZGlyZWN0b3J5ICgveG0KKwkJbGlrZSA9PiBx ci9eXG5cUUNPUFkgcHVibGljLmZvcm1hdF9kaXJlY3RvcnkgKGEsIGIsIGMpIEZST00gc3RkaW47 L3htCiAJfSwKIAogCWZvcm1hdF90YXIgPT4gewotCQlzZXR1cF9zcWwgPT4gJ0NSRUFURSBUQUJM RSBmb3JtYXRfdGFyKGlkIGludCk7JywKKwkJc2V0dXBfc3FsID0+ICJDUkVBVEUgVEFCTEUgZm9y bWF0X3RhcihhIGludCwgYiBib29sZWFuLCBjIHRleHQpOworCQlJTlNFUlQgSU5UTyBmb3JtYXRf dGFyIFZBTFVFUyAoMSwgZmFsc2UsICduYW1lMycpLCAoMiwgdHJ1ZSwgJ25hbWU0Jyk7IiwKIAkJ ZHVtcF9jbWQgPT4gWwogCQkJJ3BnX2R1bXBhbGwnLAogCQkJJy0tZm9ybWF0JyA9PiAndGFyJywK QEAgLTI1NCwxMSArMjY2LDEyIEBAIG15ICVwZ2R1bXBhbGxfcnVucyA9ICgKIAkJCSctLWZpbGUn ID0+ICIkdGVtcGRpci9mb3JtYXRfdGFyLnNxbCIsCiAJCQkiJHRlbXBkaXIvZm9ybWF0X3RhciIs CiAJCV0sCi0JCWxpa2UgPT4gcXIvXlxuXFFDUkVBVEUgVEFCTEUgcHVibGljLmZvcm1hdF90YXIg KC94bQorCQlsaWtlID0+IHFyL15cblxRQ09QWSBwdWJsaWMuZm9ybWF0X3RhciAoYSwgYiwgYykg RlJPTSBzdGRpbjsveG0KIAl9LAogCiAJZm9ybWF0X2N1c3RvbSA9PiB7Ci0JCXNldHVwX3NxbCA9 PiAnQ1JFQVRFIFRBQkxFIGZvcm1hdF9jdXN0b20oYSBpbnQsIGIgYm9vbGVhbiwgYyB0ZXh0KTsn LAorCQlzZXR1cF9zcWwgPT4gIkNSRUFURSBUQUJMRSBmb3JtYXRfY3VzdG9tKGEgaW50LCBiIGJv b2xlYW4sIGMgdGV4dCk7CisJCUlOU0VSVCBJTlRPIGZvcm1hdF9jdXN0b20gVkFMVUVTICgxLCBm YWxzZSwgJ25hbWU1JyksICgyLCB0cnVlLCAnbmFtZTYnKTsiLAogCQlkdW1wX2NtZCA9PiBbCiAJ CQkncGdfZHVtcGFsbCcsCiAJCQknLS1mb3JtYXQnID0+ICdjdXN0b20nLApAQCAtMjcwLDkgKzI4 MywyOCBAQCBteSAlcGdkdW1wYWxsX3J1bnMgPSAoCiAJCQknLS1maWxlJyA9PiAiJHRlbXBkaXIv Zm9ybWF0X2N1c3RvbS5zcWwiLAogCQkJIiR0ZW1wZGlyL2Zvcm1hdF9jdXN0b20iLAogCQldLAot CQlsaWtlID0+IHFyL14gXG5cUUNSRUFURSBUQUJMRSBwdWJsaWMuZm9ybWF0X2N1c3RvbSAoL3ht Ci0JfSwpOworCQlsaWtlID0+IHFyL14gXG5cUUNPUFkgcHVibGljLmZvcm1hdF9jdXN0b20gKGEs IGIsIGMpIEZST00gc3RkaW47L3htCisJfSwKIAorCWR1bXBfZ2xvYmFsc19vbmx5ID0+IHsKKwkJ c2V0dXBfc3FsID0+ICJDUkVBVEUgVEFCTEUgZm9ybWF0X2RpcihhIGludCwgYiBib29sZWFuLCBj IHRleHQpOworCQlJTlNFUlQgSU5UTyBmb3JtYXRfZGlyIFZBTFVFUyAoMSwgZmFsc2UsICduYW1l NScpLCAoMiwgdHJ1ZSwgJ25hbWU2Jyk7IiwKKwkJZHVtcF9jbWQgPT4gWworCQkJJ3BnX2R1bXBh bGwnLAorCQkJJy0tZm9ybWF0JyA9PiAnZGlyZWN0b3J5JywKKwkJCSctLWdsb2JhbHMtb25seScs CisJCQknLS1maWxlJyA9PiAiJHRlbXBkaXIvZHVtcF9nbG9iYWxzX29ubHkiLAorCQkJXSwKKwkJ CXJlc3RvcmVfY21kID0+IFsKKwkJCQkncGdfcmVzdG9yZScsICctQycsICctLWdsb2JhbHMtb25s eScsCisJCQkJJy0tZm9ybWF0JyA9PiAnZGlyZWN0b3J5JywKKwkJCQknLS1maWxlJyA9PiAiJHRl bXBkaXIvZHVtcF9nbG9iYWxzX29ubHkuc3FsIiwKKwkJCQkiJHRlbXBkaXIvZHVtcF9nbG9iYWxz X29ubHkiLAorCQkJCV0sCisJCQkJbGlrZSA9PiBxci8KKyAgICAgICAgICAgIF5ccypcUUNSRUFU RSBST0xFIGR1bXBhbGw7XEVccypcbgorCQkJL3htCisJCQl9LCApOwogCiAjIEZpcnN0IGV4ZWN1 dGUgdGhlIHNldHVwX3NxbAogZm9yZWFjaCBteSAkcnVuIChzb3J0IGtleXMgJXBnZHVtcGFsbF9y dW5zKQpAQCAtMzI2LDYgKzM1OCwzNCBAQCBmb3JlYWNoIG15ICRydW4gKHNvcnQga2V5cyAlcGdk dW1wYWxsX3J1bnMpCiAJfQogfQogCisjIFNvbWUgbmVnYXRpdmUgdGVzdCBjYXNlIHdpdGggZHVt cCBvZiBwZ19kdW1wYWxsIGFuZCByZXN0b3JlIHVzaW5nIHBnX3Jlc3RvcmUKKyMgdGVzdCBjYXNl IDE6IHdoZW4gLUMgaXMgbm90IHVzZWQgaW4gcGdfcmVzdG9yZSB3aXRoIGR1bXAgb2YgcGdfZHVt cGFsbAorJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlrZSgKKyAgICBbICdwZ19yZXN0b3JlJywKKyAg ICAiJHRlbXBkaXIvZm9ybWF0X2N1c3RvbSIsCisgICAgJy0tZm9ybWF0JyA9PiAnY3VzdG9tJywK KyAgICAnLS1maWxlJyA9PiAiJHRlbXBkaXIvZXJyb3JfdGVzdC5zcWwiLCBdLAorICAgIHFyL1xR cGdfcmVzdG9yZTogZXJyb3I6IC1DXC8tLWNyZWF0ZSBvcHRpb24gc2hvdWxkIGJlIHNwZWNpZmll ZCB3aGVuIHJlc3RvcmluZyBtdWx0aXBsZSBkYXRhYmFzZXMgYnkgYXJjaGl2ZSBvZiBwZ19kdW1w YWxsXEUvLAorICAgICdXaGVuIC1DIGlzIG5vdCB1c2VkIGluIHBnX3Jlc3RvcmUgd2l0aCBkdW1w IG9mIHBnX2R1bXBhbGwnKTsKKworIyB0ZXN0IGNhc2UgMjogV2hlbiAtLWxpc3Qgb3B0aW9uIGlz IHVzZWQgd2l0aCBkdW1wIG9mIHBnX2R1bXBhbGwKKyRub2RlLT5jb21tYW5kX2ZhaWxzX2xpa2Uo CisJWyAncGdfcmVzdG9yZScsCisJCSIkdGVtcGRpci9mb3JtYXRfY3VzdG9tIiwgJy1DJywKKwkJ Jy0tZm9ybWF0JyA9PiAnY3VzdG9tJywgJy0tbGlzdCcsCisJCSctLWZpbGUnID0+ICIkdGVtcGRp ci9lcnJvcl90ZXN0LnNxbCIsIF0sCisJcXIvXFFwZ19yZXN0b3JlOiBlcnJvcjogb3B0aW9uIC1s XC8tLWxpc3QgY2Fubm90IGJlIHVzZWQgd2hlbiByZXN0b3JpbmcgbXVsdGlwbGUgZGF0YWJhc2Vz IGJ5IGFyY2hpdmUgb2YgcGdfZHVtcGFsbFxFLywKKwknV2hlbiAtLWxpc3QgaXMgdXNlZCBpbiBw Z19yZXN0b3JlIHdpdGggZHVtcCBvZiBwZ19kdW1wYWxsJyk7CisKKyMgdGVzdCBjYXNlIDM6IFdo ZW4gbm9uLWV4aXN0IGRhdGFiYXNlIGlzIGdpdmVuIHdpdGggLWQgb3B0aW9uCiskbm9kZS0+Y29t bWFuZF9mYWlsc19saWtlKAorCVsgJ3BnX3Jlc3RvcmUnLAorCQkiJHRlbXBkaXIvZm9ybWF0X2N1 c3RvbSIsICctQycsCisJCSctLWZvcm1hdCcgPT4gJ2N1c3RvbScsCisJCSctZCcgPT4gJ2RicHEn LCBdLAorCXFyL1xRcGdfcmVzdG9yZTogZXJyb3I6IGNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFi YXNlICJkYnBxIlxFLywKKwknV2hlbiBub24tZXhpc3QgZGF0YmFzZSBpcyBnaXZlbiB3aXRoIC1k IG9wdGlvbiBpbiBwZ19yZXN0b3JlIHdpdGggZHVtcCBvZiBwZ19kdW1wYWxsJyk7CisKICRub2Rl LT5zdG9wKCdmYXN0Jyk7CiAKIGRvbmVfdGVzdGluZygpOwotLSAKMi4zOS4zCgo= --000000000000b0e76a0631ef9820--