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 1tvdVf-006bHz-25 for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Mar 2025 14:38:07 +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 1tvdVd-008bdV-QD for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Mar 2025 14:38:05 +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 1tvdVd-008bdN-8B for pgsql-hackers@lists.postgresql.org; Fri, 21 Mar 2025 14:38:05 +0000 Received: from forward100a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d100]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tvdVa-000Kpl-2N for pgsql-hackers@postgresql.org; Fri, 21 Mar 2025 14:38:04 +0000 Received: from mail-nwsmtp-smtp-production-main-84.vla.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-84.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1f:623d:0:640:ecee:0]) by forward100a.mail.yandex.net (Yandex) with ESMTPS id 7F3E1471EB; Fri, 21 Mar 2025 17:37:58 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-84.vla.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id vbMg5wHLoW20-a1ZLagfc; Fri, 21 Mar 2025 17:37:57 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.com; s=mail; t=1742567877; bh=RxbkK+76fByK+dJkY5AjUeBpUTT6SPGX+LT3qbWk42I=; h=In-Reply-To:Cc:Date:References:To:Subject:Message-ID:From; b=dW+Vg6YM1pD1gRkbM1osxbssLWNrJRfCSZymy7eI30msTtl6IaC2cYVjoTSLSrhf6 VjpsRIlxK8KUjKLBrTRMGJGKdaE37fly0+e7IKR5ZCCRj5cKunsEJVoRKi8jn0GZkO oYd1xhlRJa2L4xX8fiIYarsfMSsuNu+Q/h4upjZ8= Authentication-Results: mail-nwsmtp-smtp-production-main-84.vla.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.com Content-Type: multipart/mixed; boundary="------------rEG4tCm43N8XEao3IS5Xykz6" Message-ID: Date: Fri, 21 Mar 2025 17:37:57 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Sample rate added to pg_stat_statements From: Ilia Evdokimov To: Sami Imseih Cc: Alexander Korotkov , Michael Paquier , Greg Sabino Mullane , Andrey Borodin , Alena Rybakina , pgsql-hackers References: <0c7770bd-9750-4200-a472-bdb262583c2f@tantorlabs.com> <18631d46-1741-4edc-b116-8d9631cdf919@tantorlabs.com> <4f98ec33-c627-4eb4-84f3-9994a0982277@tantorlabs.com> <623db69f-b40a-4d50-b1bd-bb073fcc4336@tantorlabs.com> <3546e2a7-5831-4c0a-996b-358d4ec483a6@tantorlabs.com> <6bf3059f-7ebe-4640-8870-1220f83b88ed@tantorlabs.com> <7b9df88f-3015-464b-881e-4c6a7b3a5c03@tantorlabs.com> <6f305fd1-44c3-4189-81ef-238777277e5e@tantorlabs.com> <51e93798-cd3b-4855-aaa4-78985025cd76@tantorlabs.com> Content-Language: en-US In-Reply-To: <51e93798-cd3b-4855-aaa4-78985025cd76@tantorlabs.com> 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. --------------rEG4tCm43N8XEao3IS5Xykz6 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, I attached rebased patch v20. -- Best regards, Ilia Evdokimov, Tantor Labs LLC. --------------rEG4tCm43N8XEao3IS5Xykz6 Content-Type: text/x-patch; charset=UTF-8; name="v20-0001-Allow-setting-sample-rate-for-pg_stat_statements.patch" Content-Disposition: attachment; filename*0="v20-0001-Allow-setting-sample-rate-for-pg_stat_statements.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhY2NlZTQ2YjA3N2UxZGViZGMzZGI2MTU1NTkyM2IyYzExZTE4ZDVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZA dGFudG9ybGFicy5ydT4KRGF0ZTogRnJpLCAyMSBNYXIgMjAyNSAxNzozNzowOCArMDMwMApT dWJqZWN0OiBbUEFUQ0ggdjIwXSBBbGxvdyBzZXR0aW5nIHNhbXBsZSByYXRlIGZvciBwZ19z dGF0X3N0YXRlbWVudHMKCk5ldyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBwZ19zdGF0X3N0 YXRlbWVudHMuc2FtcGxlX3JhdGUgbWFrZXMgaXQKcG9zc2libGUgdG8gdHJhY2sganVzdCBh IGZyYWN0aW9uIG9mIHRoZSBxdWVyaWVzIG1lZXRpbmcgdGhlIGNvbmZpZ3VyZWQKdGhyZXNo b2xkLCB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiB0cmFja2luZy4KLS0tCiBjb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9NYWtlZmlsZSAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9wZ19z dGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2FtcGxpbmcub3V0ICB8IDE3NCArKysrKysrKysr KysrKysrKysKIGNvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL21lc29uLmJ1aWxkICAgICAg ICB8ICAgMSArCiAuLi4vcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5j ICAgfCAgNTMgKysrKystCiBjb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2FtcGxp bmcuc3FsICAgfCAgNTAgKysrKysKIGRvYy9zcmMvc2dtbC9wZ3N0YXRzdGF0ZW1lbnRzLnNn bWwgICAgICAgICAgICB8ICAxOSArKwogNiBmaWxlcyBjaGFuZ2VkLCAyOTEgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3N0 YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zYW1wbGluZy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBjb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2FtcGxpbmcuc3FsCgpkaWZmIC0t Z2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvTWFrZWZpbGUgYi9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9NYWtlZmlsZQppbmRleCBiMmJkODc5NGQyYS4uZjJkZjRmMTg1 MTMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL01ha2VmaWxlCisr KyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL01ha2VmaWxlCkBAIC0yMCw3ICsyMCw3 IEBAIExERkxBR1NfU0wgKz0gJChmaWx0ZXIgLWxtLCAkKExJQlMpKQogUkVHUkVTU19PUFRT ID0gLS10ZW1wLWNvbmZpZyAkKHRvcF9zcmNkaXIpL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1l bnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jb25mCiBSRUdSRVNTID0gc2VsZWN0IGRtbCBjdXJz b3JzIHV0aWxpdHkgbGV2ZWxfdHJhY2tpbmcgcGxhbm5pbmcgXAogCXVzZXJfYWN0aXZpdHkg d2FsIGVudHJ5X3RpbWVzdGFtcCBwcml2aWxlZ2VzIGV4dGVuZGVkIFwKLQlwYXJhbGxlbCBj bGVhbnVwIG9sZGV4dHZlcnNpb25zIHNxdWFzaGluZworCXBhcmFsbGVsIHNhbXBsaW5nIGNs ZWFudXAgb2xkZXh0dmVyc2lvbnMgc3F1YXNoaW5nCiAjIERpc2FibGVkIGJlY2F1c2UgdGhl c2UgdGVzdHMgcmVxdWlyZSAic2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzPXBnX3N0YXRfc3Rh dGVtZW50cyIsCiAjIHdoaWNoIHR5cGljYWwgaW5zdGFsbGNoZWNrIHVzZXJzIGRvIG5vdCBo YXZlIChlLmcuIGJ1aWxkZmFybSBjbGllbnRzKS4KIE5PX0lOU1RBTExDSEVDSyA9IDEKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NhbXBsaW5n Lm91dCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NhbXBsaW5nLm91 dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjIwNDIxNWY2NGIK LS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3Rl ZC9zYW1wbGluZy5vdXQKQEAgLTAsMCArMSwxNzQgQEAKKy0tCistLSBzYW1wbGUgc3RhdGVt ZW50cworLS0KKy0tIHRvcC1sZXZlbCB0cmFja2luZyAtIHNpbXBsZSBxdWVyeSBwcm90b2Nv bAorU0hPVyBwZ19zdGF0X3N0YXRlbWVudHMudHJhY2s7CisgcGdfc3RhdF9zdGF0ZW1lbnRz LnRyYWNrIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0b3AKKygxIHJvdykKKwor U0VUIHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSA9IDAuMDsKK1NFTEVDVCBwZ19z dGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworIHQgCistLS0KKyB0 CisoMSByb3cpCisKK1NFTEVDVCAxIEFTICJpbnQiOworIGludCAKKy0tLS0tCisgICAxCiso MSByb3cpCisKK1NFTEVDVCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMg T1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisgcXVlcnkgfCBjYWxscyAKKy0tLS0tLS0r LS0tLS0tLQorKDAgcm93cykKKworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0 ZSA9IDEuMDsKK1NFTEVDVCAxIEFTICJpbnQiOworIGludCAKKy0tLS0tCisgICAxCisoMSBy b3cpCisKK1NFTEVDVCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JE RVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisgICAgICAgcXVlcnkgICAgICAgIHwgY2FsbHMg CistLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgU0VMRUNUICQxIEFTICJpbnQiIHwg ICAgIDEKKygxIHJvdykKKworLS0gdG9wLWxldmVsIHRyYWNraW5nIC0gZXh0ZW5kZWQgcXVl cnkgcHJvdG9jb2wKK1NFVCBwZ19zdGF0X3N0YXRlbWVudHMuc2FtcGxlX3JhdGUgPSAwLjA7 CitTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdDsK KyB0IAorLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgMSBccGFyc2Ugc3RtdAorXGJpbmRf bmFtZWQgc3RtdCBcZworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICAgICAxCisoMSBy b3cpCisKK1NFTEVDVCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JE RVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CisgcXVlcnkgfCBjYWxscyAKKy0tLS0tLS0rLS0t LS0tLQorKDAgcm93cykKKworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSA9 IDEuMDsKK1xiaW5kX25hbWVkIHN0bXQgXGcKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAg ICAgICAgMQorKDEgcm93KQorCitTRUxFQ1QgcXVlcnksIGNhbGxzIEZST00gcGdfc3RhdF9z dGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOworICAgcXVlcnkgICB8IGNh bGxzIAorLS0tLS0tLS0tLS0rLS0tLS0tLQorIFNFTEVDVCAkMSB8ICAgICAxCisoMSByb3cp CisKK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0 OworIHQgCistLS0KKyB0CisoMSByb3cpCisKK0RFQUxMT0NBVEUgc3RtdDsKKy0tIG5lc3Rl ZCB0cmFja2luZyAtIHNpbXBsZSBxdWVyeSBwcm90b2NvbAorU0VUIHBnX3N0YXRfc3RhdGVt ZW50cy50cmFjayA9ICJhbGwiOworU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgp IElTIE5PVCBOVUxMIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKworU0VUIHBnX3N0 YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSA9IDE7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAxOworIFFVRVJZIFBMQU4gCistLS0tLS0tLS0tLS0KKyBSZXN1bHQKKygxIHJvdykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgMTsKKyBRVUVSWSBQTEFOIAorLS0tLS0t LS0tLS0tCisgUmVzdWx0CisoMSByb3cpCisKK1NFVCBwZ19zdGF0X3N0YXRlbWVudHMuc2Ft cGxlX3JhdGUgPSAwOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgMTsKKyBRVUVSWSBQ TEFOIAorLS0tLS0tLS0tLS0tCisgUmVzdWx0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUIDE7CisgUVVFUlkgUExBTiAKKy0tLS0tLS0tLS0tLQorIFJlc3VsdAor KDEgcm93KQorCitTRUxFQ1QgdG9wbGV2ZWwsIGNhbGxzLCBxdWVyeSBGUk9NIHBnX3N0YXRf c3RhdGVtZW50cworICBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKyB0b3BsZXZlbCB8 IGNhbGxzIHwgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5ICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQgICAgICAgIHwgICAgIDIgfCBFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAkMQorIGYgICAgICAgIHwgICAgIDIgfCBTRUxFQ1QgJDEK KyB0ICAgICAgICB8ICAgICAxIHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgp IElTIE5PVCBOVUxMIEFTIHQKKyB0ICAgICAgICB8ICAgICAyIHwgU0VUIHBnX3N0YXRfc3Rh dGVtZW50cy5zYW1wbGVfcmF0ZSA9ICQxCisoNCByb3dzKQorCistLSBuZXN0ZWQgdHJhY2tp bmcgLSBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50 cmFjayA9ICJhbGwiOworU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5P VCBOVUxMIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKworU0VUIHBnX3N0YXRfc3Rh dGVtZW50cy5zYW1wbGVfcmF0ZSA9IDE7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAx OyBccGFyc2Ugc3RtdAorIFFVRVJZIFBMQU4gCistLS0tLS0tLS0tLS0KKyBSZXN1bHQKKygx IHJvdykKKworXGJpbmRfbmFtZWQgc3RtdCBcZworIFFVRVJZIFBMQU4gCistLS0tLS0tLS0t LS0KKyBSZXN1bHQKKygxIHJvdykKKworXGJpbmRfbmFtZWQgc3RtdCBcZworIFFVRVJZIFBM QU4gCistLS0tLS0tLS0tLS0KKyBSZXN1bHQKKygxIHJvdykKKworU0VUIHBnX3N0YXRfc3Rh dGVtZW50cy5zYW1wbGVfcmF0ZSA9IDA7CitcYmluZF9uYW1lZCBzdG10IFxnCisgUVVFUlkg UExBTiAKKy0tLS0tLS0tLS0tLQorIFJlc3VsdAorKDEgcm93KQorCitcYmluZF9uYW1lZCBz dG10IFxnCisgUVVFUlkgUExBTiAKKy0tLS0tLS0tLS0tLQorIFJlc3VsdAorKDEgcm93KQor CitTRUxFQ1QgdG9wbGV2ZWwsIGNhbGxzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50 cworICBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKyB0b3BsZXZlbCB8IGNhbGxzIHwg ICAgICAgICAgICAgICAgICBxdWVyeSAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdCAg ICAgICAgfCAgICAgMiB8IEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICQxCisgZiAgICAg ICAgfCAgICAgMyB8IFNFTEVDVCAkMQorIHQgICAgICAgIHwgICAgIDEgfCBTRVQgcGdfc3Rh dF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlID0gJDEKKygzIHJvd3MpCisKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL21lc29uLmJ1aWxkIGIvY29udHJpYi9wZ19z dGF0X3N0YXRlbWVudHMvbWVzb24uYnVpbGQKaW5kZXggMDFhNmNiZGNmNjEuLjZmYTliN2Ri YTUwIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9tZXNvbi5idWls ZAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9tZXNvbi5idWlsZApAQCAtNTQs NiArNTQsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAncHJpdmlsZWdlcycsCiAgICAgICAnZXh0 ZW5kZWQnLAogICAgICAgJ3BhcmFsbGVsJywKKyAgICAgICdzYW1wbGluZycsCiAgICAgICAn Y2xlYW51cCcsCiAgICAgICAnb2xkZXh0dmVyc2lvbnMnLAogICAgICAgJ3NxdWFzaGluZycs CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRl bWVudHMuYyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50 cy5jCmluZGV4IDhhYjlhZDU4ZTFjLi5iNzIxYjgzMzFmOSAxMDA2NDQKLS0tIGEvY29udHJp Yi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJp Yi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKQEAgLTUwLDYgKzUw LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvcGFyYWxsZWwuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKKyNpbmNsdWRlICJjb21t b24vcGdfcHJuZy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1lbnQuaCIKICNpbmNs dWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAiaml0L2ppdC5oIgpAQCAtMjU3LDYgKzI1OCw5 IEBAIHR5cGVkZWYgc3RydWN0IHBnc3NTaGFyZWRTdGF0ZQogLyogQ3VycmVudCBuZXN0aW5n IGRlcHRoIG9mIHBsYW5uZXIvRXhlY3V0b3JSdW4vUHJvY2Vzc1V0aWxpdHkgY2FsbHMgKi8K IHN0YXRpYyBpbnQJbmVzdGluZ19sZXZlbCA9IDA7CiAKKy8qIElzIHRoZSBjdXJyZW50IHRv cC1sZXZlbCBxdWVyeSB0byBiZSBzYW1wbGVkPyAqLworc3RhdGljIGJvb2wgaXNfcXVlcnlf c2FtcGxlZCA9IGZhbHNlOworCiAvKiBTYXZlZCBob29rIHZhbHVlcyAqLwogc3RhdGljIHNo bWVtX3JlcXVlc3RfaG9va190eXBlIHByZXZfc2htZW1fcmVxdWVzdF9ob29rID0gTlVMTDsK IHN0YXRpYyBzaG1lbV9zdGFydHVwX2hvb2tfdHlwZSBwcmV2X3NobWVtX3N0YXJ0dXBfaG9v ayA9IE5VTEw7CkBAIC0yOTUsMTEgKzI5OSwxMyBAQCBzdGF0aWMgYm9vbCBwZ3NzX3RyYWNr X3V0aWxpdHkgPSB0cnVlOwkvKiB3aGV0aGVyIHRvIHRyYWNrIHV0aWxpdHkgY29tbWFuZHMg Ki8KIHN0YXRpYyBib29sIHBnc3NfdHJhY2tfcGxhbm5pbmcgPSBmYWxzZTsJLyogd2hldGhl ciB0byB0cmFjayBwbGFubmluZwogCQkJCQkJCQkJCQkgKiBkdXJhdGlvbiAqLwogc3RhdGlj IGJvb2wgcGdzc19zYXZlID0gdHJ1ZTsJLyogd2hldGhlciB0byBzYXZlIHN0YXRzIGFjcm9z cyBzaHV0ZG93biAqLworc3RhdGljIGRvdWJsZSBwZ3NzX3NhbXBsZV9yYXRlID0gMS4wOyAv KiBmcmFjdGlvbiBvZiBzdGF0ZW1lbnRzIHRvIHRyYWNrICovCiAKLSNkZWZpbmUgcGdzc19l bmFibGVkKGxldmVsKSBcCisjZGVmaW5lIHBnc3NfZW5hYmxlZChsZXZlbCwgc2tpcF9zYW1w bGluZ19jaGVjaykgXAogCSghSXNQYXJhbGxlbFdvcmtlcigpICYmIFwKIAkocGdzc190cmFj ayA9PSBQR1NTX1RSQUNLX0FMTCB8fCBcCi0JKHBnc3NfdHJhY2sgPT0gUEdTU19UUkFDS19U T1AgJiYgKGxldmVsKSA9PSAwKSkpCisJKHBnc3NfdHJhY2sgPT0gUEdTU19UUkFDS19UT1Ag JiYgKGxldmVsKSA9PSAwKSkgJiYgXAorCShza2lwX3NhbXBsaW5nX2NoZWNrID09IFBHU1Nf SU5WQUxJRCB8fCBjdXJyZW50X3F1ZXJ5X3NhbXBsZWQoKSkpCiAKICNkZWZpbmUgcmVjb3Jk X2djX3F0ZXh0cygpIFwKIAlkbyB7IFwKQEAgLTM3Myw2ICszNzksNyBAQCBzdGF0aWMgY2hh ciAqZ2VuZXJhdGVfbm9ybWFsaXplZF9xdWVyeShKdW1ibGVTdGF0ZSAqanN0YXRlLCBjb25z dCBjaGFyICpxdWVyeSwKIHN0YXRpYyB2b2lkIGZpbGxfaW5fY29uc3RhbnRfbGVuZ3RocyhK dW1ibGVTdGF0ZSAqanN0YXRlLCBjb25zdCBjaGFyICpxdWVyeSwKIAkJCQkJCQkJCSBpbnQg cXVlcnlfbG9jKTsKIHN0YXRpYyBpbnQJY29tcF9sb2NhdGlvbihjb25zdCB2b2lkICphLCBj b25zdCB2b2lkICpiKTsKK3N0YXRpYyBib29sCWN1cnJlbnRfcXVlcnlfc2FtcGxlZCh2b2lk KTsKIAogCiAvKgpAQCAtNDE0LDYgKzQyMSwxOSBAQCBfUEdfaW5pdCh2b2lkKQogCQkJCQkJ CU5VTEwsCiAJCQkJCQkJTlVMTCk7CiAKKwlEZWZpbmVDdXN0b21SZWFsVmFyaWFibGUoInBn X3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSIsCisJCQkJCQkJIkZyYWN0aW9uIG9mIHF1 ZXJpZXMgdG8gdHJhY2suIiwKKwkJCQkJCQlOVUxMLAorCQkJCQkJCSZwZ3NzX3NhbXBsZV9y YXRlLAorCQkJCQkJCTEuMCwKKwkJCQkJCQkwLjAsCisJCQkJCQkJMS4wLAorCQkJCQkJCVBH Q19TVVNFVCwKKwkJCQkJCQkwLAorCQkJCQkJCU5VTEwsCisJCQkJCQkJTlVMTCwKKwkJCQkJ CQlOVUxMKTsKKwogCURlZmluZUN1c3RvbUVudW1WYXJpYWJsZSgicGdfc3RhdF9zdGF0ZW1l bnRzLnRyYWNrIiwKIAkJCQkJCQkgIlNlbGVjdHMgd2hpY2ggc3RhdGVtZW50cyBhcmUgdHJh Y2tlZCBieSBwZ19zdGF0X3N0YXRlbWVudHMuIiwKIAkJCQkJCQkgTlVMTCwKQEAgLTgzNiw3 ICs4NTYsNyBAQCBwZ3NzX3Bvc3RfcGFyc2VfYW5hbHl6ZShQYXJzZVN0YXRlICpwc3RhdGUs IFF1ZXJ5ICpxdWVyeSwgSnVtYmxlU3RhdGUgKmpzdGF0ZSkKIAkJcHJldl9wb3N0X3BhcnNl X2FuYWx5emVfaG9vayhwc3RhdGUsIHF1ZXJ5LCBqc3RhdGUpOwogCiAJLyogU2FmZXR5IGNo ZWNrLi4uICovCi0JaWYgKCFwZ3NzIHx8ICFwZ3NzX2hhc2ggfHwgIXBnc3NfZW5hYmxlZChu ZXN0aW5nX2xldmVsKSkKKwlpZiAoIXBnc3MgfHwgIXBnc3NfaGFzaCB8fCAhcGdzc19lbmFi bGVkKG5lc3RpbmdfbGV2ZWwsIFBHU1NfSU5WQUxJRCkpCiAJCXJldHVybjsKIAogCS8qCkBA IC04OTQsNyArOTE0LDcgQEAgcGdzc19wbGFubmVyKFF1ZXJ5ICpwYXJzZSwKIAkgKiBwZ3Nz X3N0b3JlIG5lZWRzIGl0LiAgV2UgYWxzbyBpZ25vcmUgcXVlcnkgd2l0aG91dCBxdWVyeWlk LCBhcyBpdCB3b3VsZAogCSAqIGJlIHRyZWF0ZWQgYXMgYSB1dGlsaXR5IHN0YXRlbWVudCwg d2hpY2ggbWF5IG5vdCBiZSB0aGUgY2FzZS4KIAkgKi8KLQlpZiAocGdzc19lbmFibGVkKG5l c3RpbmdfbGV2ZWwpCisJaWYgKHBnc3NfZW5hYmxlZChuZXN0aW5nX2xldmVsLCBQR1NTX1BM QU4pCiAJCSYmIHBnc3NfdHJhY2tfcGxhbm5pbmcgJiYgcXVlcnlfc3RyaW5nCiAJCSYmIHBh cnNlLT5xdWVyeUlkICE9IFVJTlQ2NENPTlNUKDApKQogCXsKQEAgLTEwMDUsNyArMTAyNSw4 IEBAIHBnc3NfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFn cykKIAkgKiBjb3VudGluZyBvZiBvcHRpbWl6YWJsZSBzdGF0ZW1lbnRzIHRoYXQgYXJlIGRp cmVjdGx5IGNvbnRhaW5lZCBpbgogCSAqIHV0aWxpdHkgc3RhdGVtZW50cy4KIAkgKi8KLQlp ZiAocGdzc19lbmFibGVkKG5lc3RpbmdfbGV2ZWwpICYmIHF1ZXJ5RGVzYy0+cGxhbm5lZHN0 bXQtPnF1ZXJ5SWQgIT0gVUlOVDY0Q09OU1QoMCkpCisJaWYgKHBnc3NfZW5hYmxlZChuZXN0 aW5nX2xldmVsLCBQR1NTX0VYRUMpICYmCisJCXF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnF1 ZXJ5SWQgIT0gVUlOVDY0Q09OU1QoMCkpCiAJewogCQkvKgogCQkgKiBTZXQgdXAgdG8gdHJh Y2sgdG90YWwgZWxhcHNlZCB0aW1lIGluIEV4ZWN1dG9yUnVuLiAgTWFrZSBzdXJlIHRoZQpA QCAtMTA3Niw3ICsxMDk3LDcgQEAgcGdzc19FeGVjdXRvckVuZChRdWVyeURlc2MgKnF1ZXJ5 RGVzYykKIAl1aW50NjQJCXF1ZXJ5SWQgPSBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5xdWVy eUlkOwogCiAJaWYgKHF1ZXJ5SWQgIT0gVUlOVDY0Q09OU1QoMCkgJiYgcXVlcnlEZXNjLT50 b3RhbHRpbWUgJiYKLQkJcGdzc19lbmFibGVkKG5lc3RpbmdfbGV2ZWwpKQorCQlwZ3NzX2Vu YWJsZWQobmVzdGluZ19sZXZlbCwgUEdTU19FWEVDKSkKIAl7CiAJCS8qCiAJCSAqIE1ha2Ug c3VyZSBzdGF0cyBhY2N1bXVsYXRpb24gaXMgZG9uZS4gIChOb3RlOiBpdCdzIG9rYXkgaWYg c2V2ZXJhbApAQCAtMTExOSw3ICsxMTQwLDcgQEAgcGdzc19Qcm9jZXNzVXRpbGl0eShQbGFu bmVkU3RtdCAqcHN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCXVpbnQ2NAkJc2F2 ZWRfcXVlcnlJZCA9IHBzdG10LT5xdWVyeUlkOwogCWludAkJCXNhdmVkX3N0bXRfbG9jYXRp b24gPSBwc3RtdC0+c3RtdF9sb2NhdGlvbjsKIAlpbnQJCQlzYXZlZF9zdG10X2xlbiA9IHBz dG10LT5zdG10X2xlbjsKLQlib29sCQllbmFibGVkID0gcGdzc190cmFja191dGlsaXR5ICYm IHBnc3NfZW5hYmxlZChuZXN0aW5nX2xldmVsKTsKKwlib29sCQllbmFibGVkID0gcGdzc190 cmFja191dGlsaXR5ICYmIHBnc3NfZW5hYmxlZChuZXN0aW5nX2xldmVsLCBQR1NTX0VYRUMp OwogCiAJLyoKIAkgKiBGb3JjZSB1dGlsaXR5IHN0YXRlbWVudHMgdG8gZ2V0IHF1ZXJ5SWQg emVyby4gIFdlIGRvIHRoaXMgZXZlbiBpbiBjYXNlcwpAQCAtMzA4MSwzICszMTAyLDIxIEBA IGNvbXBfbG9jYXRpb24oY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIAogCXJldHVy biBwZ19jbXBfczMyKGwsIHIpOwogfQorCisvKgorICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhl IGN1cnJlbnQgcXVlcnkgc2hvdWxkIGJlIHNhbXBsZWQuCisgKgorICogQXQgdGhlIGJlZ2lu bmluZyBvZiBlYWNoIHRvcC1sZXZlbCBzdGF0ZW1lbnQsIGRlY2lkZSB3aGV0aGVyIHdlJ2xs CisgKiBzYW1wbGUgdGhpcyBzdGF0ZW1lbnQuIElmIG5lc3RlZC1zdGF0ZW1lbnQgdHJhY2tp bmcgaXMgZW5hYmxlZCwKKyAqIGVpdGhlciBhbGwgbmVzdGVkIHN0YXRlbWVudHMgd2lsbCBi ZSB0cmFja2VkIG9yIG5vbmUgd2lsbC4KKyAqLworc3RhdGljIGJvb2wKK2N1cnJlbnRfcXVl cnlfc2FtcGxlZCh2b2lkKQoreworCWlmIChuZXN0aW5nX2xldmVsID09IDApCisJCWlzX3F1 ZXJ5X3NhbXBsZWQgPSBwZ3NzX3NhbXBsZV9yYXRlICE9IDAuMCAmJgorCQkJKHBnc3Nfc2Ft cGxlX3JhdGUgPT0gMS4wIHx8CisJCQlwZ19wcm5nX2RvdWJsZSgmcGdfZ2xvYmFsX3Bybmdf c3RhdGUpIDw9IHBnc3Nfc2FtcGxlX3JhdGUpOworCisJcmV0dXJuIGlzX3F1ZXJ5X3NhbXBs ZWQ7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NhbXBsaW5nLnNxbCBiL2NvbnRyaWIvcGdfc3Rh dF9zdGF0ZW1lbnRzL3NxbC9zYW1wbGluZy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmIwOWY0NTk5MWJhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJp Yi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NhbXBsaW5nLnNxbApAQCAtMCwwICsxLDUwIEBA CistLQorLS0gc2FtcGxlIHN0YXRlbWVudHMKKy0tCisKKy0tIHRvcC1sZXZlbCB0cmFja2lu ZyAtIHNpbXBsZSBxdWVyeSBwcm90b2NvbAorU0hPVyBwZ19zdGF0X3N0YXRlbWVudHMudHJh Y2s7CitTRVQgcGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlID0gMC4wOworU0VMRUNU IHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CitTRUxFQ1Qg MSBBUyAiaW50IjsKK1NFTEVDVCBxdWVyeSwgY2FsbHMgRlJPTSBwZ19zdGF0X3N0YXRlbWVu dHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CitTRVQgcGdfc3RhdF9zdGF0ZW1lbnRz LnNhbXBsZV9yYXRlID0gMS4wOworU0VMRUNUIDEgQVMgImludCI7CitTRUxFQ1QgcXVlcnks IGNhbGxzIEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUg IkMiOworCistLSB0b3AtbGV2ZWwgdHJhY2tpbmcgLSBleHRlbmRlZCBxdWVyeSBwcm90b2Nv bAorU0VUIHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0ZSA9IDAuMDsKK1NFTEVDVCBw Z19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworU0VMRUNUIDEg XHBhcnNlIHN0bXQKK1xiaW5kX25hbWVkIHN0bXQgXGcKK1NFTEVDVCBxdWVyeSwgY2FsbHMg RlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CitT RVQgcGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBsZV9yYXRlID0gMS4wOworXGJpbmRfbmFtZWQg c3RtdCBcZworU0VMRUNUIHF1ZXJ5LCBjYWxscyBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBP UkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNf cmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworREVBTExPQ0FURSBzdG10OworCistLSBuZXN0 ZWQgdHJhY2tpbmcgLSBzaW1wbGUgcXVlcnkgcHJvdG9jb2wKK1NFVCBwZ19zdGF0X3N0YXRl bWVudHMudHJhY2sgPSAiYWxsIjsKK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQo KSBJUyBOT1QgTlVMTCBBUyB0OworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0 ZSA9IDE7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAxOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgMTsKK1NFVCBwZ19zdGF0X3N0YXRlbWVudHMuc2FtcGxlX3JhdGUgPSAw OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgMTsKK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUIDE7CitTRUxFQ1QgdG9wbGV2ZWwsIGNhbGxzLCBxdWVyeSBGUk9NIHBnX3N0YXRf c3RhdGVtZW50cworICBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKworLS0gbmVzdGVk IHRyYWNraW5nIC0gZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKK1NFVCBwZ19zdGF0X3N0YXRl bWVudHMudHJhY2sgPSAiYWxsIjsKK1NFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQo KSBJUyBOT1QgTlVMTCBBUyB0OworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy5zYW1wbGVfcmF0 ZSA9IDE7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAxOyBccGFyc2Ugc3RtdAorXGJp bmRfbmFtZWQgc3RtdCBcZworXGJpbmRfbmFtZWQgc3RtdCBcZworU0VUIHBnX3N0YXRfc3Rh dGVtZW50cy5zYW1wbGVfcmF0ZSA9IDA7CitcYmluZF9uYW1lZCBzdG10IFxnCitcYmluZF9u YW1lZCBzdG10IFxnCitTRUxFQ1QgdG9wbGV2ZWwsIGNhbGxzLCBxdWVyeSBGUk9NIHBnX3N0 YXRfc3RhdGVtZW50cworICBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9wZ3N0YXRzdGF0ZW1lbnRzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cGdzdGF0c3RhdGVtZW50cy5zZ21sCmluZGV4IGY0ZTM4NGU5NWFlLi4yNTA5N2I5ZmYwMiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Bnc3RhdHN0YXRlbWVudHMuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcGdzdGF0c3RhdGVtZW50cy5zZ21sCkBAIC05NjMsNiArOTYzLDI1IEBA IGNhbGxzIHwgMgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT4KKyAgICAgPHZhcm5hbWU+cGdfc3RhdF9zdGF0 ZW1lbnRzLnNhbXBsZV9yYXRlPC92YXJuYW1lPiAoPHR5cGU+cmVhbDwvdHlwZT4pCisgICAg IDxpbmRleHRlcm0+CisgICAgICA8cHJpbWFyeT48dmFybmFtZT5wZ19zdGF0X3N0YXRlbWVu dHMuc2FtcGxlX3JhdGU8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmlt YXJ5PgorICAgICA8L2luZGV4dGVybT4KKyAgICA8L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgPHZhcm5hbWU+cGdfc3RhdF9zdGF0ZW1lbnRzLnNhbXBs ZV9yYXRlPC92YXJuYW1lPiBjYXVzZXMgcGdfc3RhdF9zdGF0ZW1lbnRzIHRvIG9ubHkKKyAg ICAgIHRyYWNrIGEgZnJhY3Rpb24gb2YgdGhlIHN0YXRlbWVudHMgaW4gZWFjaCBzZXNzaW9u LiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD4xPC9saXRlcmFsPiwKKyAgICAgIG1lYW5pbmcg dHJhY2sgYWxsIHRoZSBxdWVyaWVzLiBTZXR0aW5nIHRoaXMgdG8gPGxpdGVyYWw+MDwvbGl0 ZXJhbD4gZGlzYWJsZXMgc2FtcGxlZCBzdGF0ZW1lbnRzCisgICAgICB0cmFja2luZywgdGhl IHNhbWUgYXMgc2V0dGluZyA8dmFybmFtZT5wZ19zdGF0X3N0YXRlbWVudHMudHJhY2s8L3Zh cm5hbWU+IHRvIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LgorICAgICAgSW4gY2FzZSBvZiBu ZXN0ZWQgc3RhdGVtZW50cywgZWl0aGVyIGFsbCB3aWxsIGJlIHRyYWNrZWQgb3Igbm9uZS4g T25seSBzdXBlcnVzZXJzIGNhbiBjaGFuZ2UgdGhpcyBzZXR0aW5nLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5PgogICAgIDx0ZXJtPgogICAgICA8dmFybmFtZT5wZ19zdGF0X3N0YXRlbWVudHMuc2F2 ZTwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQotLSAKMi4zNC4xCgo= --------------rEG4tCm43N8XEao3IS5Xykz6--