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.96) (envelope-from ) id 1voGbZ-0007Kh-1a for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Feb 2026 07:50:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1voGbY-002d8V-0k for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Feb 2026 07:50:16 +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.96) (envelope-from ) id 1voGbX-002d8M-1Z for pgsql-hackers@lists.postgresql.org; Fri, 06 Feb 2026 07:50:15 +0000 Received: from udcm-wwu2.uni-muenster.de ([128.176.118.28]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1voGbU-00000000o9C-02AR for pgsql-hackers@lists.postgresql.org; Fri, 06 Feb 2026 07:50:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=uni-muenster.de; i=@uni-muenster.de; q=dns/txt; s=uniout; t=1770364212; x=1801900212; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=Ory8Xvavkd2Ni4EF4vK/VvYYF/oXTzgL3umaHhZnijU=; b=Pc/ZyE9MvC73YrwoWkn3VaGtiH0Pdb8n7z5XYDJGJQeinh+IUc54Tk2C +vB6OFTfgxP7C9ljbOvIcKOhvVll3YeY4Yvd/T4QJ/Tj+vUNk9nEaE6bX J4gFtk7IgYX+3LoBKE10PzV8vcAtN9RC70ZnEB5Xel+di8C6h4UA2Z98r CvP/NC7RDomEElYQLUEv9WV53FMXDtatcj4JdUg3Rt06e14h70O2xdeTC jxaDDwcth1m95/+/i3/9FucjodObRfW474R9DeDQMnmA+zlz1qHr2fDAR a85EsVesJH9rz94h+fm4w1wlD3j/4cZr5g3Xba6VvY649HEsbWX4vDXIe Q==; X-CSE-ConnectionGUID: AMESHF2RR82x2W/WmMyhWg== X-CSE-MsgGUID: xiqclXvRQjuKrBELyR0lug== X-IronPort-AV: E=Sophos;i="6.21,276,1763420400"; d="scan'208,223";a="383880006" Received: from secmail.uni-muenster.de ([128.176.118.4]) by UDCM-RELAY2.UNI-MUENSTER.DE with ESMTP; 06 Feb 2026 08:50:08 +0100 Received: from [192.168.178.27] (dynamic-077-177-128-039.77.177.pool.telefonica.de [77.177.128.39]) by SECMAIL.UNI-MUENSTER.DE (Postfix) with ESMTPSA id F28D720ADF10; Fri, 6 Feb 2026 08:50:05 +0100 (CET) Content-Type: multipart/mixed; boundary="------------MEL6AA8YABP4L5Pmfk1LNIbs" Message-ID: <86088202-7ce1-4361-b4ee-8703b9e64dd6@uni-muenster.de> Date: Fri, 6 Feb 2026 08:50:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Truncate logs by max_log_size To: =?UTF-8?Q?=C3=81lvaro_Herrera?= Cc: Fujii Masao , Fujii Masao , Kirill Gavrilov , Kirill Reshke , "Andrey M. Borodin" , Euler Taveira , pgsql-hackers@lists.postgresql.org References: <202602051012.qer26xklakqb@alvherre.pgsql> Content-Language: de-DE, en-GB From: Jim Jones In-Reply-To: <202602051012.qer26xklakqb@alvherre.pgsql> 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. --------------MEL6AA8YABP4L5Pmfk1LNIbs Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 05/02/2026 11:22, Álvaro Herrera wrote: > My only comment at this point is that the proposed GUC name is not > great. I think it should be something like log_statement_max_length, or > something like that. Reading just the thread subject, people would > imagine this is about the size of the log file. Done. GUC changed to log_statement_max_length. > Another point is that the current patch does strlen() twice on each > query. It might be better to do away with need_truncate_query_log() and > have a single routine that both determines whether the truncation is > needed and returns the truncated query if it is. If it returns NULL > then caller assumes it's not needed. Done. Now truncate_query_log() returns a palloc'd truncated copy of the statement if truncation is needed, and NULL otherwise. == issue with issue with empty STATEMENT == This issue was mentioned by Fujii upthread. It is now fixed: postgres=# SET log_statement TO 'all'; SET postgres=# SET log_statement_max_length TO 3; SET postgres=# SELECT 1/0; ERROR: division by zero Log entries: 2026-02-05 17:54:47.521 CET [570568] LOG: statement: SEL 2026-02-05 17:54:47.521 CET [570568] ERROR: division by zero 2026-02-05 17:54:47.521 CET [570568] STATEMENT: SELECT 1/0; == default value == To be consistent with other parameters, such as log_parameter_max_length, the default (disabled) value is now -1. == tests == Added new tests for -1 and multi-byte characters. Best, Jim --------------MEL6AA8YABP4L5Pmfk1LNIbs Content-Type: text/x-patch; charset=UTF-8; name="v7-0001-Add-log_statement_max_length-GUC-to-limit-logged-.patch" Content-Disposition: attachment; filename*0="v7-0001-Add-log_statement_max_length-GUC-to-limit-logged-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkMTJhNTY1MjIwZDE4MjcwNzljMDMzNTA3OTE5YWM1MjI5MDA0Y2U3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0 ZXIuZGU+CkRhdGU6IFRodSwgNSBGZWIgMjAyNiAxODowMDoxMyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjddIEFkZCBsb2dfc3RhdGVtZW50X21heF9sZW5ndGggR1VDIHRvIGxpbWl0IGxv Z2dlZCBzdGF0ZW1lbnQKICBzaXplCgpXaGVuIGxvZ19zdGF0ZW1lbnQgaXMgZW5hYmxlZCwg cXVlcmllcyBjYW4gYmUgYXJiaXRyYXJpbHkgbG9uZyBhbmQgbWF5CmNvbnN1bWUgc2lnbmlm aWNhbnQgZGlzayBzcGFjZSBpbiBzZXJ2ZXIgbG9ncy4gVGhpcyBwYXRjaCBpbnRyb2R1Y2Vz IGEKbmV3IEdVQywgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoLCB3aGljaCBsaW1pdHMgdGhl IG1heGltdW0gYnl0ZSBsZW5ndGgKb2YgbG9nZ2VkIHN0YXRlbWVudHMuCgpBIHZhbHVlIGdy ZWF0ZXIgdGhhbiB6ZXJvIHRydW5jYXRlcyBlYWNoIGxvZ2dlZCBzdGF0ZW1lbnQgdG8gdGhl IGdpdmVuCm51bWJlciBvZiBieXRlcy4gVGhlIGRlZmF1bHQgaXMgLTEsIHdoaWNoIGRpc2Fi bGVzIHRydW5jYXRpb24gYW5kIGxvZ3MKZnVsbCBzdGF0ZW1lbnRzLiBJZiBzcGVjaWZpZWQg d2l0aG91dCB1bml0cywgdGhlIHZhbHVlIGlzIGludGVycHJldGVkCmFzIGJ5dGVzLgotLS0K IGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsr KysrKysrKysKIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAg ICB8IDExICsrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jICAgICAgICAg ICAgICAgIHwgMzQgKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWNfcGFyYW1ldGVycy5kYXQgICAgIHwgMTAgKysrKysrCiBzcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgMiArKwogc3JjL2Jpbi9wZ19jdGwv dC8wMDRfbG9ncm90YXRlLnBsICAgICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKwogc3Jj L2luY2x1ZGUvdXRpbHMvZWxvZy5oICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKIHNy Yy9pbmNsdWRlL3V0aWxzL2d1Yy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIDkg ZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZp Zy5zZ21sCmluZGV4IDU1NjBiOTVlZTYuLmQ5ZDcwOGQ3YjkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAg LTgyMzUsNiArODIzNSwyNCBAQCBsb2dfbGluZV9wcmVmaXggPSAnJW0gWyVwXSAlcSV1QCVk LyVhICcKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAg IDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1sb2ctc3RhdGVtZW50LW1heC1sZW5ndGgiIHhyZWZs YWJlbD0ibG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1l PmxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aDwvdmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5 cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5sb2df c3RhdGVtZW50X21heF9sZW5ndGg8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVy PC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIElmIGdyZWF0ZXIgdGhhbiB6ZXJv LCBlYWNoIHN0YXRlbWVudCBsb2dnZWQgYnkgPHhyZWYgbGlua2VuZD0iZ3VjLWxvZy1zdGF0 ZW1lbnQiLz4KKyAgICAgICAgaXMgdHJ1bmNhdGVkIHRvIGF0IG1vc3QgdGhpcyBtYW55IGJ5 dGVzLgorICAgICAgICA8bGl0ZXJhbD4tMTwvbGl0ZXJhbD4gKHRoZSBkZWZhdWx0KSBkaXNh YmxlcyB0cnVuY2F0aW9uLgorICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIHNwZWNpZmllZCB3 aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBhcyBieXRlcy4KKyAgICAgICAgT25seSBzdXBl cnVzZXJzIGFuZCB1c2VycyB3aXRoIHRoZSBhcHByb3ByaWF0ZSA8bGl0ZXJhbD5TRVQ8L2xp dGVyYWw+CisgICAgICAgIHByaXZpbGVnZSBjYW4gY2hhbmdlIHRoaXMgc2V0dGluZy4KKyAg ICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L3NlY3QyPgogICAgICA8c2VjdDIgaWQ9 InJ1bnRpbWUtY29uZmlnLWxvZ2dpbmctY3N2bG9nIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRl eCAwMmU5YWFhNmJjLi4xNDI2NWVjZDA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC03Miw2 ICs3Miw3IEBACiAjaW5jbHVkZSAidGNvcC9wcXVlcnkuaCIKICNpbmNsdWRlICJ0Y29wL3Rj b3Bwcm90LmgiCiAjaW5jbHVkZSAidGNvcC91dGlsaXR5LmgiCisjaW5jbHVkZSAidXRpbHMv ZWxvZy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgogI2luY2x1ZGUgInV0aWxz L2luamVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAt MTAyMywxMSArMTAyNCwxNSBAQCBleGVjX3NpbXBsZV9xdWVyeShjb25zdCBjaGFyICpxdWVy eV9zdHJpbmcpCiAJYm9vbAkJd2FzX2xvZ2dlZCA9IGZhbHNlOwogCWJvb2wJCXVzZV9pbXBs aWNpdF9ibG9jazsKIAljaGFyCQltc2VjX3N0clszMl07CisJY2hhcgkgICAqdHJ1bmNhdGVk X3F1ZXJ5ID0gTlVMTDsKKwljb25zdCBjaGFyICpxdWVyeV9sb2c7CiAKIAkvKgogCSAqIFJl cG9ydCBxdWVyeSB0byB2YXJpb3VzIG1vbml0b3JpbmcgZmFjaWxpdGllcy4KIAkgKi8KIAlk ZWJ1Z19xdWVyeV9zdHJpbmcgPSBxdWVyeV9zdHJpbmc7CisJdHJ1bmNhdGVkX3F1ZXJ5ID0g dHJ1bmNhdGVfcXVlcnlfbG9nKHF1ZXJ5X3N0cmluZyk7CisJcXVlcnlfbG9nID0gdHJ1bmNh dGVkX3F1ZXJ5ID8gdHJ1bmNhdGVkX3F1ZXJ5IDogcXVlcnlfc3RyaW5nOwogCiAJcGdzdGF0 X3JlcG9ydF9hY3Rpdml0eShTVEFURV9SVU5OSU5HLCBxdWVyeV9zdHJpbmcpOwogCkBAIC0x MDcyLDcgKzEwNzcsNyBAQCBleGVjX3NpbXBsZV9xdWVyeShjb25zdCBjaGFyICpxdWVyeV9z dHJpbmcpCiAJaWYgKGNoZWNrX2xvZ19zdGF0ZW1lbnQocGFyc2V0cmVlX2xpc3QpKQogCXsK IAkJZXJlcG9ydChMT0csCi0JCQkJKGVycm1zZygic3RhdGVtZW50OiAlcyIsIHF1ZXJ5X3N0 cmluZyksCisJCQkJKGVycm1zZygic3RhdGVtZW50OiAlcyIsIHF1ZXJ5X2xvZyksCiAJCQkJ IGVycmhpZGVzdG10KHRydWUpLAogCQkJCSBlcnJkZXRhaWxfZXhlY3V0ZShwYXJzZXRyZWVf bGlzdCkpKTsKIAkJd2FzX2xvZ2dlZCA9IHRydWU7CkBAIC0xMzcwLDcgKzEzNzUsNyBAQCBl eGVjX3NpbXBsZV9xdWVyeShjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcpCiAJCWNhc2UgMjoK IAkJCWVyZXBvcnQoTE9HLAogCQkJCQkoZXJybXNnKCJkdXJhdGlvbjogJXMgbXMgIHN0YXRl bWVudDogJXMiLAotCQkJCQkJCW1zZWNfc3RyLCBxdWVyeV9zdHJpbmcpLAorCQkJCQkJCW1z ZWNfc3RyLCBxdWVyeV9sb2cpLAogCQkJCQkgZXJyaGlkZXN0bXQodHJ1ZSksCiAJCQkJCSBl cnJkZXRhaWxfZXhlY3V0ZShwYXJzZXRyZWVfbGlzdCkpKTsKIAkJCWJyZWFrOwpAQCAtMTM4 MSw2ICsxMzg2LDggQEAgZXhlY19zaW1wbGVfcXVlcnkoY29uc3QgY2hhciAqcXVlcnlfc3Ry aW5nKQogCiAJVFJBQ0VfUE9TVEdSRVNRTF9RVUVSWV9ET05FKHF1ZXJ5X3N0cmluZyk7CiAK KwlpZiAodHJ1bmNhdGVkX3F1ZXJ5KQorCQlwZnJlZSh0cnVuY2F0ZWRfcXVlcnkpOwogCWRl YnVnX3F1ZXJ5X3N0cmluZyA9IE5VTEw7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2Vycm9yL2Vsb2cuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwpp bmRleCBlNmE0ZWY5OTA1Li5mZmFiYmZiY2ViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9lcnJvci9lbG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5j CkBAIC0zODA1LDYgKzM4MDUsNDAgQEAgd3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwu Li4pCiAJdmFfZW5kKGFwKTsKIH0KIAorLyoKKyAqIHRydW5jYXRlX3F1ZXJ5X2xvZyAtIHRy dW5jYXRlIHF1ZXJ5IHN0cmluZyBpZiBuZWVkZWQgZm9yIGxvZ2dpbmcKKyAqCisgKiBSZXR1 cm5zIGEgcGFsbG9jJ2QgdHJ1bmNhdGVkIGNvcHkgaWYgdHJ1bmNhdGlvbiBpcyBuZWVkZWQs CisgKiBvciBOVUxMIGlmIG5vIHRydW5jYXRpb24gaXMgcmVxdWlyZWQuCisgKi8KK2NoYXIg KgordHJ1bmNhdGVfcXVlcnlfbG9nKGNvbnN0IGNoYXIgKnF1ZXJ5KQoreworCXNpemVfdAkJ cXVlcnlfbGVuOworCXNpemVfdAkJdHJ1bmNhdGVkX2xlbjsKKwljaGFyCSAgICp0cnVuY2F0 ZWRfcXVlcnk7CisKKwkvKiBDaGVjayBpZiB0cnVuY2F0aW9uIGlzIGRpc2FibGVkICgtMSkg b3Igbm8gcXVlcnkgc3RyaW5nIHByb3ZpZGVkICovCisJaWYgKCFxdWVyeSB8fCBsb2dfc3Rh dGVtZW50X21heF9sZW5ndGggPCAwKQorCQlyZXR1cm4gTlVMTDsKKworCXF1ZXJ5X2xlbiA9 IHN0cmxlbihxdWVyeSk7CisKKwkvKgorCSAqIE5vIG5lZWQgdG8gYWxsb2NhdGUgYSB0cnVu Y2F0ZWQgY29weSBpZiB0aGUgcXVlcnkgaXMgc2hvcnRlcgorCSAqIHRoYW4gbG9nX3N0YXRl bWVudF9tYXhfbGVuZ3RoLgorCSAqLworCWlmIChxdWVyeV9sZW4gPD0gKHNpemVfdCkgbG9n X3N0YXRlbWVudF9tYXhfbGVuZ3RoKQorCQlyZXR1cm4gTlVMTDsKKworCS8qIFRydW5jYXRl IGF0IG11bHRpYnl0ZSBjaGFyYWN0ZXIgYm91bmRhcnkgKi8KKwl0cnVuY2F0ZWRfbGVuID0g cGdfbWJjbGlwbGVuKHF1ZXJ5LCBxdWVyeV9sZW4sIGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0 aCk7CisJdHJ1bmNhdGVkX3F1ZXJ5ID0gKGNoYXIgKikgcGFsbG9jKHRydW5jYXRlZF9sZW4g KyAxKTsKKwltZW1jcHkodHJ1bmNhdGVkX3F1ZXJ5LCBxdWVyeSwgdHJ1bmNhdGVkX2xlbik7 CisJdHJ1bmNhdGVkX3F1ZXJ5W3RydW5jYXRlZF9sZW5dID0gJ1wwJzsKKworCXJldHVybiB0 cnVuY2F0ZWRfcXVlcnk7Cit9CiAKIC8qCiAgKiBXcml0ZSBlcnJvcnMgdG8gc3RkZXJyIChv ciBieSBlcXVhbCBtZWFucyB3aGVuIHN0ZGVyciBpcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Y19wYXJhbWV0ZXJzLmRhdAppbmRleCBmMDI2MGU2ZTQxLi40ODY0ZGJiYmIyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdAor KysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdApAQCAtMTc3 Nyw2ICsxNzc3LDE2IEBACiAgIG9wdGlvbnMgPT4gJ2xvZ19zdGF0ZW1lbnRfb3B0aW9ucycs CiB9LAogCit7IG5hbWUgPT4gJ2xvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCcsIHR5cGUgPT4g J2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TVVNFVCcsIGdyb3VwID0+ICdMT0dHSU5HX1dIQVQn LAorICBzaG9ydF9kZXNjID0+ICdTZXRzIHRoZSBtYXhpbXVtIGxlbmd0aCBpbiBieXRlcyBv ZiBsb2dnZWQgc3RhdGVtZW50cy4nLAorICBsb25nX2Rlc2MgPT4gJy0xIG1lYW5zIG5vIHRy dW5jYXRpb24uJywKKyAgZmxhZ3MgPT4gJ0dVQ19VTklUX0JZVEUnLAorICB2YXJpYWJsZSA9 PiAnbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoJywKKyAgYm9vdF92YWwgPT4gJy0xJywKKyAg bWluID0+ICctMScsCisgIG1heCA9PiAnSU5UX01BWCAvIDInLAorfSwKKwogeyBuYW1lID0+ ICdsb2dfc3RhdGVtZW50X3NhbXBsZV9yYXRlJywgdHlwZSA9PiAncmVhbCcsIGNvbnRleHQg PT4gJ1BHQ19TVVNFVCcsIGdyb3VwID0+ICdMT0dHSU5HX1dIRU4nLAogICBzaG9ydF9kZXNj ID0+ICdGcmFjdGlvbiBvZiBzdGF0ZW1lbnRzIGV4Y2VlZGluZyAibG9nX21pbl9kdXJhdGlv bl9zYW1wbGUiIHRvIGJlIGxvZ2dlZC4nLAogICBsb25nX2Rlc2MgPT4gJ1VzZSBhIHZhbHVl IGJldHdlZW4gMC4wIChuZXZlciBsb2cpIGFuZCAxLjAgKGFsd2F5cyBsb2cpLicsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDEzYzU2OWQ4NzkuLmRiY2IyNWUx MzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC01NDQsNiArNTQ0 LDcgQEAgaW50CQkJbG9nX21pbl9kdXJhdGlvbl9zdGF0ZW1lbnQgPSAtMTsKIGludAkJCWxv Z19wYXJhbWV0ZXJfbWF4X2xlbmd0aCA9IC0xOwogaW50CQkJbG9nX3BhcmFtZXRlcl9tYXhf bGVuZ3RoX29uX2Vycm9yID0gMDsKIGludAkJCWxvZ190ZW1wX2ZpbGVzID0gLTE7CitpbnQJ CQlsb2dfc3RhdGVtZW50X21heF9sZW5ndGggPSAtMTsKIGRvdWJsZQkJbG9nX3N0YXRlbWVu dF9zYW1wbGVfcmF0ZSA9IDEuMDsKIGRvdWJsZQkJbG9nX3hhY3Rfc2FtcGxlX3JhdGUgPSAw OwogY2hhcgkgICAqYmFja3RyYWNlX2Z1bmN0aW9uczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBjNGY5MmZjZGFjLi4zY2M0 Mzk5MDI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNv bmYuc2FtcGxlCkBAIC02NDIsNiArNjQyLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIGJpbmQtcGFyYW1ldGVyIHZhbHVlcyB0byBOIGJ5dGVzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgLTEgbWVhbnMgcHJp bnQgaW4gZnVsbCwgMCBkaXNhYmxlcwogI2xvZ19zdGF0ZW1lbnQgPSAnbm9uZScgICAgICAg ICAgICAgICAgICMgbm9uZSwgZGRsLCBtb2QsIGFsbAorI2xvZ19zdGF0ZW1lbnRfbWF4X2xl bmd0aCA9IC0xICAgICAgICAgICMgbWF4IGxlbmd0aCBvZiBsb2dnZWQgc3RhdGVtZW50cwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgLTEgZGlzYWJsZXMg dHJ1bmNhdGlvbgogI2xvZ19yZXBsaWNhdGlvbl9jb21tYW5kcyA9IG9mZgogI2xvZ190ZW1w X2ZpbGVzID0gLTEgICAgICAgICAgICAgICAgICAgICMgbG9nIHRlbXBvcmFyeSBmaWxlcyBl cXVhbCBvciBsYXJnZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIHRoYW4gdGhlIHNwZWNpZmllZCBzaXplIGluIGtpbG9ieXRlczsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfY3RsL3QvMDA0X2xvZ3JvdGF0ZS5wbCBiL3NyYy9iaW4vcGdfY3RsL3Qv MDA0X2xvZ3JvdGF0ZS5wbAppbmRleCA3YjE5Zjg2NDY3Li5kZDFhYTIxZjRjIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2N0bC90LzAwNF9sb2dyb3RhdGUucGwKKysrIGIvc3JjL2Jpbi9w Z19jdGwvdC8wMDRfbG9ncm90YXRlLnBsCkBAIC0xMzUsNiArMTM1LDMwIEBAIGNoZWNrX2xv Z19wYXR0ZXJuKCdzdGRlcnInLCAkbmV3X2N1cnJlbnRfbG9nZmlsZXMsICdzeW50YXggZXJy b3InLCAkbm9kZSk7CiBjaGVja19sb2dfcGF0dGVybignY3N2bG9nJywgJG5ld19jdXJyZW50 X2xvZ2ZpbGVzLCAnc3ludGF4IGVycm9yJywgJG5vZGUpOwogY2hlY2tfbG9nX3BhdHRlcm4o J2pzb25sb2cnLCAkbmV3X2N1cnJlbnRfbG9nZmlsZXMsICdzeW50YXggZXJyb3InLCAkbm9k ZSk7CiAKKyMgVmVyaWZ5IHRydW5jYXRpb24gd29ya3Mgd2l0aCBBU0NJSQorJG5vZGUtPmFw cGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAibG9nX3N0YXRlbWVudCA9ICdhbGwnXG5s b2dfc3RhdGVtZW50X21heF9sZW5ndGggPSAyMFxuIik7Ciskbm9kZS0+cmVsb2FkKCk7Cisk bm9kZS0+cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICcxMjM0NTY3ODlBQkNERUYnIik7Citj aGVja19sb2dfcGF0dGVybignc3RkZXJyJywgICRuZXdfY3VycmVudF9sb2dmaWxlcywgIlNF TEVDVCAnMTIzNDU2Nzg5QUJDIiwgJG5vZGUpOworY2hlY2tfbG9nX3BhdHRlcm4oJ2Nzdmxv ZycsICAkbmV3X2N1cnJlbnRfbG9nZmlsZXMsICJTRUxFQ1QgJzEyMzQ1Njc4OUFCQyIsICRu b2RlKTsKK2NoZWNrX2xvZ19wYXR0ZXJuKCdqc29ubG9nJywgJG5ld19jdXJyZW50X2xvZ2Zp bGVzLCAiU0VMRUNUICcxMjM0NTY3ODlBQkMiLCAkbm9kZSk7CisKKyMgVmVyaWZ5IC0xIGRp c2FibGVzIHRydW5jYXRpb24gKGxvZ3MgZnVsbCBxdWVyeSkKKyRub2RlLT5hcHBlbmRfY29u ZigncG9zdGdyZXNxbC5jb25mJywgImxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCA9IC0xXG4i KTsKKyRub2RlLT5yZWxvYWQoKTsKKyRub2RlLT5wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg JzEyMzQ1Njc4OUFCQ0RFRiciKTsKK2NoZWNrX2xvZ19wYXR0ZXJuKCdzdGRlcnInLCAgJG5l d19jdXJyZW50X2xvZ2ZpbGVzLCAiU0VMRUNUICcxMjM0NTY3ODlBQkNERUYnIiwgJG5vZGUp OworY2hlY2tfbG9nX3BhdHRlcm4oJ2NzdmxvZycsICAkbmV3X2N1cnJlbnRfbG9nZmlsZXMs ICJTRUxFQ1QgJzEyMzQ1Njc4OUFCQ0RFRiciLCAkbm9kZSk7CitjaGVja19sb2dfcGF0dGVy bignanNvbmxvZycsICRuZXdfY3VycmVudF9sb2dmaWxlcywgIlNFTEVDVCAnMTIzNDU2Nzg5 QUJDREVGJyIsICRub2RlKTsKKworIyBWZXJpZnkgbXVsdGlieXRlIGNoYXJhY3RlciBoYW5k bGluZyAobXVzdCBub3QgcHJvZHVjZSBpbnZhbGlkIFVURi04KQorJG5vZGUtPmFwcGVuZF9j b25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAibG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoID0gMTJc biIpOworJG5vZGUtPnJlbG9hZCgpOworJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCAn8J+QmHRlc3QnIik7CitjaGVja19sb2dfcGF0dGVybignc3RkZXJyJywgICRuZXdfY3Vy cmVudF9sb2dmaWxlcywgIlNFTEVDVCAnIiwgJG5vZGUpOworY2hlY2tfbG9nX3BhdHRlcm4o J2NzdmxvZycsICAkbmV3X2N1cnJlbnRfbG9nZmlsZXMsICJTRUxFQ1QgJyIsICRub2RlKTsK K2NoZWNrX2xvZ19wYXR0ZXJuKCdqc29ubG9nJywgJG5ld19jdXJyZW50X2xvZ2ZpbGVzLCAi U0VMRUNUICciLCAkbm9kZSk7CisKICRub2RlLT5zdG9wKCk7CiAKIGRvbmVfdGVzdGluZygp OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvZWxvZy5oCmluZGV4IGExMmIzNzllMDkuLmFhYmVlNzNhYTQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL2Vsb2cuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9lbG9n LmgKQEAgLTQ5NCw2ICs0OTQsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IExvZ19kZXN0 aW5hdGlvbjsKIGV4dGVybiBQR0RMTElNUE9SVCBjaGFyICpMb2dfZGVzdGluYXRpb25fc3Ry aW5nOwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc3lzbG9nX3NlcXVlbmNlX251bWJlcnM7 CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzeXNsb2dfc3BsaXRfbWVzc2FnZXM7CitleHRl cm4gUEdETExJTVBPUlQgaW50IGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aDsKIAogLyogTG9n IGRlc3RpbmF0aW9uIGJpdG1hcCAqLwogI2RlZmluZSBMT0dfREVTVElOQVRJT05fU1RERVJS CSAxCkBAIC01MDgsNiArNTA5LDcgQEAgZXh0ZXJuIHZvaWQgbG9nX3N0YXR1c19mb3JtYXQo U3RyaW5nSW5mbyBidWYsIGNvbnN0IGNoYXIgKmZvcm1hdCwKIGV4dGVybiB2b2lkIERlYnVn RmlsZU9wZW4odm9pZCk7CiBleHRlcm4gY2hhciAqdW5wYWNrX3NxbF9zdGF0ZShpbnQgc3Fs X3N0YXRlKTsKIGV4dGVybiBib29sIGluX2Vycm9yX3JlY3Vyc2lvbl90cm91YmxlKHZvaWQp OworZXh0ZXJuIGNoYXIgKnRydW5jYXRlX3F1ZXJ5X2xvZyhjb25zdCBjaGFyICpxdWVyeSk7 CiAKIC8qIENvbW1vbiBmdW5jdGlvbnMgc2hhcmVkIGFjcm9zcyBkZXN0aW5hdGlvbnMgKi8K IGV4dGVybiB2b2lkIHJlc2V0X2Zvcm1hdHRlZF9zdGFydF90aW1lKHZvaWQpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjLmggYi9zcmMvaW5jbHVkZS91dGlscy9ndWMu aAppbmRleCBiZjM5ODc4YzQzLi44MDQzZDhmYTQ1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS91dGlscy9ndWMuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9ndWMuaApAQCAtMzAwLDYg KzMwMCw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgY2xpZW50X21pbl9tZXNzYWdlczsK IGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbG9nX21pbl9kdXJhdGlvbl9zYW1wbGU7CiBleHRl cm4gUEdETExJTVBPUlQgaW50IGxvZ19taW5fZHVyYXRpb25fc3RhdGVtZW50OwogZXh0ZXJu IFBHRExMSU1QT1JUIGludCBsb2dfdGVtcF9maWxlczsKK2V4dGVybiBQR0RMTElNUE9SVCBp bnQgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoOwogZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJs ZSBsb2dfc3RhdGVtZW50X3NhbXBsZV9yYXRlOwogZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJs ZSBsb2dfeGFjdF9zYW1wbGVfcmF0ZTsKIGV4dGVybiBQR0RMTElNUE9SVCBjaGFyICpiYWNr dHJhY2VfZnVuY3Rpb25zOwotLSAKMi40My4wCgo= --------------MEL6AA8YABP4L5Pmfk1LNIbs--