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 1tfDaR-000aPB-Sb for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Feb 2025 07:43: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 1tfDaQ-0029UE-7E for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Feb 2025 07:43:10 +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 1tfDaP-0029U6-RU for pgsql-hackers@lists.postgresql.org; Tue, 04 Feb 2025 07:43:09 +0000 Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tfDaM-003BLm-1b for pgsql-hackers@lists.postgresql.org; Tue, 04 Feb 2025 07:43:09 +0000 Received: by mail-vs1-xe33.google.com with SMTP id ada2fe7eead31-4affab62589so1629906137.1 for ; Mon, 03 Feb 2025 23:43:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738654985; x=1739259785; 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=+1IBq+Fp3xI5ukDXx84WV6yoFiZtENYjlHL4qH/bdG4=; b=NtNjjmy8hPaSvz25tGTX56dPJ01cYRX5++r+ZF1RlaPHGNOmnyiWxOTjmBNq5Eo8/F EV2rg9kXX4fbvJXjIRTMcgx3AePlPRCaO8D/yq+Q2VtvYj2sgD3LBBab2Yp/ByT9JxJT Mjp+aCa9QYhMmRGERL05qJ25YZBJjj4+2MmIRX3d0o/W82gVDwbB3mo/KuHAamirUwjY hY0RC7tDIza8vUD25RQdGIOLZWYhfGTaSklvrgC6oeLm8H4QXDlby0p2PrCh3nliogNp nVg9UMmi1ldLSjGTuRwtFgZTsbvwCIHysjRWOFabYvMxOyGWvawIzp5SwawofbsblCdz /B4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738654985; x=1739259785; 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=+1IBq+Fp3xI5ukDXx84WV6yoFiZtENYjlHL4qH/bdG4=; b=NbfFlTsZvXQ67bTBk9gU35rgzyf5OzU/0kUACgajxBNeXN4hfrdhRlUkg5qZukXJc3 UGB5xp5bHQQ6NGFVmHQOy15PWrP/7iZkUCDqD9zQRPZlPtS7ckYtLbgHL/AbMgb4RmuA OOTK5YkuGINfQJqLFrhVz5tV3nYNn1xe2sk+qoIMbtNcoMsKRrY9m+f33P14drSFPzt2 iWER0oyspUEGqyds5DbeEsQ4mYVwoXB6TUbt0f9WOAv1apv0LvpCkNYxmWzAAcH7lNyD 0Ph0fj12TpROrZATSg3G5T/YMyngQ894FojBfIFFiKcpUbO7u4+IAACR6WFltAvImG61 hThw== X-Forwarded-Encrypted: i=1; AJvYcCXHV0TggR/gCGRFiOJj0dTWdL22lSCy72LmNRC2neFlCLQ7WGOc2rkKxtBKwz9n3NEdWpxjCMuSMUEjeJ9U@lists.postgresql.org X-Gm-Message-State: AOJu0YxRUTYAYBd9s2hAowU9wUZYHJCODgvpizvVd7Wk80aKooGT61j0 1cuTPwPm3r+9jeRJYmOlkR7c2g7H3dUohKY6QzC4pFKGmUeU3g3lQRssNcjiCM0b1mvp4yPlulS VDcfuCp0ZpJef+kD1x+AX+WDL/6o= X-Gm-Gg: ASbGnctaGnQsOwFikE2Tad6Ua04/In7isiKUcTApkakollZikmexTRI5wntb47x4JBf GPJfxgUpp7e8E+qtlltrVuV5DVKViKHVGLsCkd90XIWWVcJeQ86Xgo1sf4AyzjhDa5vPwh3GB X-Google-Smtp-Source: AGHT+IGrIdUjCunn24muWCDg7qLFPxG82//BcGzJGI8GS+GTZnSwoo1IqB0iZQ8UTQoT/sExhf5L2b4E9Stme594gj0= X-Received: by 2002:a05:6102:32d6:b0:4b1:20b1:bff3 with SMTP id ada2fe7eead31-4b9a524fccfmr17990054137.16.1738654984920; Mon, 03 Feb 2025 23:43:04 -0800 (PST) MIME-Version: 1.0 References: <202501110844.5ztsym4vbflm@alvherre.pgsql> In-Reply-To: From: jian he Date: Tue, 4 Feb 2025 15:42:28 +0800 X-Gm-Features: AWEUYZmS545jin6vwRGNB3Ob8FhVwpdeEEnCz_oo9T8UhJHnDLJW2CaBPh7P7AI Message-ID: Subject: Re: Non-text mode for pg_dumpall To: Mahendra Singh Thalor Cc: Srinath Reddy , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000c39581062d4c2819" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c39581062d4c2819 Content-Type: text/plain; charset="UTF-8" hi. This attached patch solves problems mentioned in [1]. so pg_restore --file restoring multiple databases will have the ```\connect dbname``` command in it. the output plain text file can be used in psql. pg_restore --file output will be: -- -- Database "template1" dump -- -- Dumped from database version 18devel_debug_build_622f678c10 -- Dumped by pg_dump version 18devel_debug_build_622f678c10 -- Started on 2025-02-04 14:34:44 CST \connect template1 ..... -- Completed on 2025-02-04 14:34:53 CST -- -- Database "template1" dump complete -- [1] https://postgr.es/m/CACJufxFrzYJ0oZNm=v9hg10UpPQNe+p0+2ydNirHxyhUT_JtXw@mail.gmail.com --000000000000c39581062d4c2819 Content-Type: application/octet-stream; name="v15-0001-make-pg_restore-file-option-using-connect-for.no-cfbot" Content-Disposition: attachment; filename="v15-0001-make-pg_restore-file-option-using-connect-for.no-cfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6q5qa500 RnJvbSBhNDZkMjgzNzFmNjJiNTE3MTJmMjRmNjg3ZGVkZmExY2ZkY2NhMzQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgNCBGZWIgMjAyNSAxNToyNDo1OSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE1 IDEvMV0gbWFrZSBwZ19yZXN0b3JlIC0tZmlsZSBvcHRpb24gdXNpbmcgXGNvbm5lY3QgZm9yCiBy ZXRzb3JpbmcgbXVsdGlwbGUgZGF0YWJhc2VzLgoKVGhpcyBwYXRjaCBzb2x2ZXMgcHJvYmxlbXMg bWVudGlvbmVkIGluIFsxXS4Kc28gcGdfcmVzdG9yZSAtLWZpbGUgb3V0cHV0IGlzIHNhbmUuCgp3 ZSBwcmludCBvdXQgdGhlIGRhdGFiYXNlIG5hbWUgd2UgYXJlIHJlc3RvcmluZyB0aHJvdWdoCmBg YGFocHJpbnRmKEFILCAiLS1cbi0tIERhdGFiYXNlIFwiJXNcIiBkdW1wXG4tLVxuXG4iLCBkYm5h bWUpO2BgYC4KClNvIHRoZSBwZ19yZXN0b3JlIC0tZmlsZSBvdXRwdXQgY29tbWVudHMgbWFrZSBp dCBlYXN5IHRvIGRpc3Rpbmd1aXNoIHdoaWNoIGRhdGFiYXNlIGNvbnRlbnRzIHdlIGFyZSBkdW1w aW5nLgoKb3ZlcmFsbCBpdCB3aWxsIGJlIGxpa2U6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLQotLSBEYXRhYmFzZSAidGVt cGxhdGUxIiBkdW1wCi0tCgotLSBEdW1wZWQgZnJvbSBkYXRhYmFzZSB2ZXJzaW9uIDE4ZGV2ZWxf ZGVidWdfYnVpbGRfNjIyZjY3OGMxMAotLSBEdW1wZWQgYnkgcGdfZHVtcCB2ZXJzaW9uIDE4ZGV2 ZWxfZGVidWdfYnVpbGRfNjIyZjY3OGMxMAoKLS0gU3RhcnRlZCBvbiAyMDI1LTAyLTA0IDE0OjM0 OjQ0IENTVAoKXGNvbm5lY3QgdGVtcGxhdGUxCi4uLi4uCgotLSBDb21wbGV0ZWQgb24gMjAyNS0w Mi0wNCAxNDozNDo1MyBDU1QKCi0tCi0tIERhdGFiYXNlICJ0ZW1wbGF0ZTEiIGR1bXAgY29tcGxl dGUKLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpbMV0gaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4RnJ6WUowb1pObT12 OWhnMTBVcFBRTmUrcDArMnlkTmlySHh5aFVUX0p0WHdAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jIHwgMjEgKysrKysrKysrKysrKystLS0tLS0tCiBzcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jICAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYyAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMg ICAgICAgICB8IDEyICsrKysrKystLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25z KCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggNjUwMDBlNWEwOC4uNzI5 ZmZjOWUxMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMzA2LDcgKzMwNiw3IEBAIGV4dGVybiB2b2lk IFNldEFyY2hpdmVPcHRpb25zKEFyY2hpdmUgKkFILCBEdW1wT3B0aW9ucyAqZG9wdCwgUmVzdG9y ZU9wdGlvbnMgKnJvCiAKIGV4dGVybiB2b2lkIFByb2Nlc3NBcmNoaXZlUmVzdG9yZU9wdGlvbnMo QXJjaGl2ZSAqQUhYKTsKIAotZXh0ZXJuIHZvaWQgUmVzdG9yZUFyY2hpdmUoQXJjaGl2ZSAqQUhY LCBib29sIGFwcGVuZF9kYXRhKTsKK2V4dGVybiB2b2lkIFJlc3RvcmVBcmNoaXZlKEFyY2hpdmUg KkFIWCwgYm9vbCBhcHBlbmRfZGF0YSwgY29uc3QgY2hhciAqZGJuYW1lKTsKIAogLyogT3BlbiBh biBleGlzdGluZyBhcmNoaXZlICovCiBleHRlcm4gQXJjaGl2ZSAqT3BlbkFyY2hpdmUoY29uc3Qg Y2hhciAqRmlsZVNwZWMsIGNvbnN0IEFyY2hpdmVGb3JtYXQgZm10KTsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYwppbmRleCBlOTFmNGI4MzZmLi5mZDZmZDE2NjQyIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zMzYsOSArMzM2LDExIEBAIFByb2Nlc3NBcmNo aXZlUmVzdG9yZU9wdGlvbnMoQXJjaGl2ZSAqQUhYKQogICoKICAqIElmIGFwcGVuZF9kYXRhIGlz IHNldCwgdGhlbiBhcHBlbmQgZGF0YSBpbnRvIGZpbGUgYXMgd2UgYXJlIHJlc3RvcmluZyBkdW1w CiAgKiBvZiBtdWx0aXBsZSBkYXRhYmFzZXMgd2hpY2ggd2FzIHRha2VuIGJ5IHBnX2R1bXBhbGwu CisgKiBJZiBkYm5hbWUgaXMgbm90IE5VTEwsIHRoZW4gcGdfcmVzdG9yZSByZXN0b3JlIGFyY2hp dmUgdG8gZmlsZSB3aWxsIGhhdmUKKyAqIGNvbW1lbnRzIGFib3V0IHdoaWNoIGRhdGFiYXNlIGN1 cnJlbnRseSBpcyBiZWluZyBkdW1wZWQuCiAgKi8KIHZvaWQKLVJlc3RvcmVBcmNoaXZlKEFyY2hp dmUgKkFIWCwgYm9vbCBhcHBlbmRfZGF0YSkKK1Jlc3RvcmVBcmNoaXZlKEFyY2hpdmUgKkFIWCwg Ym9vbCBhcHBlbmRfZGF0YSwgY29uc3QgY2hhciAqZGJuYW1lKQogewogCUFyY2hpdmVIYW5kbGUg KkFIID0gKEFyY2hpdmVIYW5kbGUgKikgQUhYOwogCVJlc3RvcmVPcHRpb25zICpyb3B0ID0gQUgt PnB1YmxpYy5yb3B0OwpAQCAtNDU3LDcgKzQ1OSwxMCBAQCBSZXN0b3JlQXJjaGl2ZShBcmNoaXZl ICpBSFgsIGJvb2wgYXBwZW5kX2RhdGEpCiAJaWYgKHJvcHQtPmZpbGVuYW1lIHx8IHJvcHQtPmNv bXByZXNzaW9uX3NwZWMuYWxnb3JpdGhtICE9IFBHX0NPTVBSRVNTSU9OX05PTkUpCiAJCVNldE91 dHB1dChBSCwgcm9wdC0+ZmlsZW5hbWUsIHJvcHQtPmNvbXByZXNzaW9uX3NwZWMsIGFwcGVuZF9k YXRhKTsKIAotCWFocHJpbnRmKEFILCAiLS1cbi0tIFBvc3RncmVTUUwgZGF0YWJhc2UgZHVtcFxu LS1cblxuIik7CisJaWYgKGFwcGVuZF9kYXRhICYmIGRibmFtZSAhPSBOVUxMKQorCQlhaHByaW50 ZihBSCwgIi0tXG4tLSBEYXRhYmFzZSBcIiVzXCIgZHVtcFxuLS1cblxuIiwgZGJuYW1lKTsKKwll bHNlCisJCWFocHJpbnRmKEFILCAiLS1cbi0tIFBvc3RncmVTUUwgZGF0YWJhc2UgZHVtcFxuLS1c blxuIik7CiAKIAlpZiAoQUgtPmFyY2hpdmVSZW1vdGVWZXJzaW9uKQogCQlhaHByaW50ZihBSCwg Ii0tIER1bXBlZCBmcm9tIGRhdGFiYXNlIHZlcnNpb24gJXNcbiIsCkBAIC03OTcsOCArODAyLDEw IEBAIFJlc3RvcmVBcmNoaXZlKEFyY2hpdmUgKkFIWCwgYm9vbCBhcHBlbmRfZGF0YSkKIAlpZiAo QUgtPnB1YmxpYy52ZXJib3NlKQogCQlkdW1wVGltZXN0YW1wKEFILCAiQ29tcGxldGVkIG9uIiwg dGltZShOVUxMKSk7CiAKLQlhaHByaW50ZihBSCwgIi0tXG4tLSBQb3N0Z3JlU1FMIGRhdGFiYXNl IGR1bXAgY29tcGxldGVcbi0tXG5cbiIpOwotCisJaWYgKGFwcGVuZF9kYXRhICYmIGRibmFtZSAh PSBOVUxMKQorCQlhaHByaW50ZihBSCwgIi0tXG4tLSBEYXRhYmFzZSBcIiVzXCIgZHVtcCBjb21w bGV0ZVxuLS1cblxuIiwgZGJuYW1lKTsKKwllbHNlCisJCWFocHJpbnRmKEFILCAiLS1cbi0tIFBv c3RncmVTUUwgZGF0YWJhc2UgZHVtcFxuLS1cblxuIik7CiAJLyoKIAkgKiBDbGVhbiB1cCAmIHdl J3JlIGRvbmUuCiAJICovCkBAIC0yOTI2LDEzICsyOTMzLDEzIEBAIF90b2NFbnRyeVJlcXVpcmVk KFRvY0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNlY3Rpb24sIEFyY2hpdmVIYW5kbGUgKkFIKQog CiAJLyoKIAkgKiBEQVRBQkFTRSBhbmQgREFUQUJBU0UgUFJPUEVSVElFUyBhbHNvIGhhdmUgYSBz cGVjaWFsIHJ1bGU6IHRoZXkgYXJlCi0JICogcmVzdG9yZWQgaW4gY3JlYXRlREIgbW9kZSwgYW5k IG5vdCByZXN0b3JlZCBvdGhlcndpc2UsIGluZGVwZW5kZW50bHkgb2YKLQkgKiBhbGwgZWxzZS4K KwkgKiByZXN0b3JlZCBpbiBjcmVhdGVEQiBtb2RlIG9yIHJlc3RvcmVkIGZvcm1hdCBpcyBub3Qg cGxhaW4gZmlsZSwgYW5kIG5vdAorCSAqIHJlc3RvcmVkIG90aGVyd2lzZSwgaW5kZXBlbmRlbnRs eSBvZiBhbGwgZWxzZS4KIAkgKi8KIAlpZiAoc3RyY21wKHRlLT5kZXNjLCAiREFUQUJBU0UiKSA9 PSAwIHx8CiAJCXN0cmNtcCh0ZS0+ZGVzYywgIkRBVEFCQVNFIFBST1BFUlRJRVMiKSA9PSAwKQog CXsKLQkJaWYgKHJvcHQtPmNyZWF0ZURCKQorCQlpZiAocm9wdC0+Y3JlYXRlREIgfHwgQUgtPmZv cm1hdCAhPSBhcmNoTnVsbCkKIAkJCXJldHVybiBSRVFfU0NIRU1BOwogCQllbHNlCiAJCQlyZXR1 cm4gMDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfdGFyLmMgYi9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jCmluZGV4IGQ5NGQwZGUyYTUuLjQ1ZjBmYjQ2ZTAg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfdGFyLmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2JhY2t1cF90YXIuYwpAQCAtODI2LDcgKzgyNiw3IEBAIF9DbG9zZUFyY2hp dmUoQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCXNhdlZlcmJvc2UgPSBBSC0+cHVibGljLnZlcmJvc2U7 CiAJCUFILT5wdWJsaWMudmVyYm9zZSA9IDA7CiAKLQkJUmVzdG9yZUFyY2hpdmUoKEFyY2hpdmUg KikgQUgsIGZhbHNlKTsKKwkJUmVzdG9yZUFyY2hpdmUoKEFyY2hpdmUgKikgQUgsIGZhbHNlLCBO VUxMKTsKIAogCQlTZXRBcmNoaXZlT3B0aW9ucygoQXJjaGl2ZSAqKSBBSCwgc2F2RG9wdCwgc2F2 Um9wdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDYxMDY3ZTE1NDIuLjUxYzU5NWE3YTUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJ ICogcmlnaHQgbm93LgogCSAqLwogCWlmIChwbGFpblRleHQpCi0JCVJlc3RvcmVBcmNoaXZlKGZv dXQsIGZhbHNlKTsKKwkJUmVzdG9yZUFyY2hpdmUoZm91dCwgZmFsc2UsIE5VTEwpOwogCiAJQ2xv c2VBcmNoaXZlKGZvdXQpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwppbmRleCA0NDQ0MTVkMmVlLi5iMjE2 ODczNzczIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTc1LDcgKzc1LDggQEAgc3RhdGljIHZvaWQg dXNhZ2UoY29uc3QgY2hhciAqcHJvZ25hbWUpOwogc3RhdGljIHZvaWQgcmVhZF9yZXN0b3JlX2Zp bHRlcnMoY29uc3QgY2hhciAqZmlsZW5hbWUsIFJlc3RvcmVPcHRpb25zICpvcHRzKTsKIHN0YXRp YyBib29sIElzRmlsZUV4aXN0c0luRGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hh ciAqZmlsZW5hbWUpOwogc3RhdGljIGludCByZXN0b3JlT25lRGF0YWJhc2UoY29uc3QgY2hhciAq aW5wdXRGaWxlU3BlYywgUmVzdG9yZU9wdGlvbnMgKm9wdHMsCi0JCQkJCQkJICBpbnQgbnVtV29y a2VycywgYm9vbCBhcHBlbmRfZGF0YSk7CisJCQkJCQkJICBpbnQgbnVtV29ya2VycywgYm9vbCBh cHBlbmRfZGF0YSwKKwkJCQkJCQkgIGNvbnN0IGNoYXIgKmRibmFtZSk7CiBzdGF0aWMgaW50IFJl YWRPbmVTdGF0ZW1lbnQoU3RyaW5nSW5mbyBpbkJ1ZiwgRklMRSAqcGZpbGUpOwogc3RhdGljIGlu dCByZXN0b3JlQWxsRGF0YWJhc2VzKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqZHVtcGRpcnBh dGgsCiAJCQkJCQkJICAgU2ltcGxlU3RyaW5nTGlzdCBkYl9leGNsdWRlX3BhdHRlcm5zLCBSZXN0 b3JlT3B0aW9ucyAqb3B0cywgaW50IG51bVdvcmtlcnMpOwpAQCAtNTI1LDE2ICs1MjYsMTcgQEAg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCX0KIAl9CiAKLQlyZXR1cm4gcmVzdG9yZU9u ZURhdGFiYXNlKGlucHV0RmlsZVNwZWMsIG9wdHMsIG51bVdvcmtlcnMsIGZhbHNlKTsKKwlyZXR1 cm4gcmVzdG9yZU9uZURhdGFiYXNlKGlucHV0RmlsZVNwZWMsIG9wdHMsIG51bVdvcmtlcnMsIGZh bHNlLCBOVUxMKTsKIH0KIC8qCiAgKiByZXN0b3JlT25lRGF0YWJhc2UKICAqCiAgKiBUaGlzIHdp bGwgcmVzdG9yZSBvbmUgZGF0YWJhc2UgdXNpbmcgdG9jLmRhdCBmaWxlLgorICogZGJuYW1lIGlz IHRoZSBjdXJyZW50IHRvIGJlIHJlc3RvcmVkIGRhdGFiYXNlIG5hbWUuCiAgKi8KIHN0YXRpYyBp bnQKIHJlc3RvcmVPbmVEYXRhYmFzZShjb25zdCBjaGFyICppbnB1dEZpbGVTcGVjLCBSZXN0b3Jl T3B0aW9ucyAqb3B0cywKLQkJCQkgICBpbnQgbnVtV29ya2VycywgYm9vbCBhcHBlbmRfZGF0YSkK KwkJCQkgICBpbnQgbnVtV29ya2VycywgYm9vbCBhcHBlbmRfZGF0YSwgY29uc3QgY2hhciAqZGJu YW1lKQogewogCUFyY2hpdmUJCSpBSDsKIAlpbnQJCQlleGl0X2NvZGU7CkBAIC01NjgsNyArNTcw LDcgQEAgcmVzdG9yZU9uZURhdGFiYXNlKGNvbnN0IGNoYXIgKmlucHV0RmlsZVNwZWMsIFJlc3Rv cmVPcHRpb25zICpvcHRzLAogCWVsc2UKIAl7CiAJCVByb2Nlc3NBcmNoaXZlUmVzdG9yZU9wdGlv bnMoQUgpOwotCQlSZXN0b3JlQXJjaGl2ZShBSCwgYXBwZW5kX2RhdGEpOworCQlSZXN0b3JlQXJj aGl2ZShBSCwgYXBwZW5kX2RhdGEsIGRibmFtZSk7CiAJfQogCiAJLyogZG9uZSwgcHJpbnQgYSBz dW1tYXJ5IG9mIGlnbm9yZWQgZXJyb3JzICovCkBAIC0xMTM4LDcgKzExNDAsNyBAQCByZXN0b3Jl QWxsRGF0YWJhc2VzKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqZHVtcGRpcnBhdGgsCiAKIAkJ cGdfbG9nX2luZm8oInJlc3RvcmluZyBkYXRhYmFzZSBcIiVzXCIiLCBkYm9pZF9jZWxsLT5kYl9u YW1lKTsKIAotCQlkYmV4aXRfY29kZSA9IHJlc3RvcmVPbmVEYXRhYmFzZShzdWJkaXJwYXRoLCBv cHRzLCBudW1Xb3JrZXJzLCB0cnVlKTsKKwkJZGJleGl0X2NvZGUgPSByZXN0b3JlT25lRGF0YWJh c2Uoc3ViZGlycGF0aCwgb3B0cywgbnVtV29ya2VycywgdHJ1ZSwgZGJvaWRfY2VsbC0+ZGJfbmFt ZSk7CiAKIAkJLyogU3RvcmUgZXhpdF9jb2RlIHRvIHJlcG9ydCBpdCBiYWNrLiAqLwogCQlpZiAo ZXhpdF9jb2RlID09IDAgJiYgZGJleGl0X2NvZGUgIT0gMCkKLS0gCjIuMzQuMQoK --000000000000c39581062d4c2819--