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 1pJIzc-0000au-Tm for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Jan 2023 18:53:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pJIza-0002Ja-DY for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Jan 2023 18:53:30 +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 1pJIzZ-0002JR-S3 for pgsql-hackers@lists.postgresql.org; Sat, 21 Jan 2023 18:53:30 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pJIzS-0003kO-Of for pgsql-hackers@lists.postgresql.org; Sat, 21 Jan 2023 18:53:28 +0000 Received: from [192.168.28.31] (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 4F01B21C7F5F; Sat, 21 Jan 2023 21:53:21 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1674327201; bh=8IBeoDsY+Hc+7MeOYlYi1+Ytb0yg0XxEG6NOpW3gp4A=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=V8y7QdTF5Fabl9YT4wx6ZkKxE6ckk887bet5qJKmCCJiwiweFN+pa2F4rflmjfmAt JTZCp1UEwYaLfUItwA6/ma1Nzymgk6zHCL+TRISeYdGAxoXkU4fCYBVtzFa67grHiO ZqbGNBYy8mvMe5XgbPsfAAmVpI8KKLNWgpEpcK4Q= Content-Type: multipart/mixed; boundary="------------xXJA1ltMm9odoFamp3yiQFOS" Message-ID: Date: Sat, 21 Jan 2023 21:53:20 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: pg_stats and range statistics Content-Language: en-US To: Tomas Vondra , Soumyadeep Chakraborty Cc: PostgreSQL Hackers References: <55c8ecd4-57d0-5c63-6fe3-1b81e8caea9d@enterprisedb.com> From: Egor Rogov 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. --------------xXJA1ltMm9odoFamp3yiQFOS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Tomas, On 21.01.2023 00:50, Tomas Vondra wrote: > Hi Egor, > > While reviewing a patch improving join estimates for ranges [1] I > realized we don't show stats for ranges in pg_stats, and I recalled we > had this patch. > > I rebased the v2, and I decided to took a stab at showing separate > histograms for lower/upper histogram bounds. I believe it makes it way > more readable, which is what pg_stats is about IMHO. Thanks for looking into this. I have to admit it looks much better this way, so +1. > This simply adds two functions, accepting/producing anyarray - one for > lower bounds, one for upper bounds. I don't think it can be done with a > plain subquery (or at least I don't know how). Anyarray is an alien to SQL, so functions are well justified here. What makes me a bit uneasy is two almost identical functions. Should we consider other options like a function with an additional parameter or a function returning an array of bounds arrays (which is somewhat wasteful, but probably it doesn't matter much here)? > Finally, it renames the empty_range_frac to start with range_, per the > earlier discussion. I wonder if the new column names for lower/upper > bounds (range_lower_bounds_histograms/range_upper_bounds_histograms) are > too long ... It seems so. The ending -s should be left out since it's a single histogram now. And I think that range_lower_histogram/range_upper_histogram are descriptive enough. I'm adding one more patch to shorten the column names, refresh the docs, and make 'make check' happy (unfortunately, we have to edit src/regress/expected/rules.out every time pg_stats definition changes). > > regards > > [1] https://commitfest.postgresql.org/41/3821/ > --------------xXJA1ltMm9odoFamp3yiQFOS Content-Type: text/plain; charset=UTF-8; name="0001-Display-length-and-bounds-histograms-in-pg_-20230120.patch" Content-Disposition: attachment; filename*0="0001-Display-length-and-bounds-histograms-in-pg_-20230120.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiMzM5YzBlYWI1NjE2Y2VjNjFlOWQ5ZTg1Mzk4MDM0ODYxNjA4ZDMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAyMCBKYW4gMjAyMyAyMDo1MDo0MSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMS8zXSBEaXNwbGF5IGxlbmd0aCBhbmQgYm91bmRzIGhpc3RvZ3JhbXMg aW4gcGdfc3RhdHMKClZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIFNUQVRJU1RJQ19LSU5EX1JB TkdFX0xFTkdUSF9ISVNUT0dSQU0gYW5kClNUQVRJU1RJQ19LSU5EX0JPVU5EU19ISVNUT0dS QU0gd2VyZSBub3QgZXhwb3NlZCB0byBwZ19zdGF0cyB3aGVuIHRoZXNlCnNsb3Qga2luZHMg d2VyZSBpbnRyb2R1Y2VkIGluIDkxOGVlZTBjNDkuCgpUaGlzIGNvbW1pdCBhZGRzIHRoZSBt aXNzaW5nIGZpZWxkcyB0byBwZ19zdGF0cy4KClRPRE86IGNhdGFsb2cgdmVyc2lvbiBidW1w Ci0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgIHwgMzIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmll d3Muc3FsIHwgMjMgKysrKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfc3RhdGlzdGljLmggICB8ICAzICsrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQgIHwgMjYgKysrKysrKysrKysrKysrKysrKysrLQogNCBmaWxlcyBjaGFuZ2Vk LCA4MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5k ZXggYzFlNDA0ODA1NGUuLmM4YmQ4NGM1NmViIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTYz NCw2ICs5NjM0LDM4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRp b24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICAgVXNl ciBtYXBwaW5nIHNwZWNpZmljIG9wdGlvbnMsIGFzIDxxdW90ZT5rZXl3b3JkPXZhbHVlPC9x dW90ZT4gc3RyaW5ncwogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yYW5n ZV9sZW5ndGhfaGlzdG9ncmFtPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YW55YXJyYXk8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBIGhpc3RvZ3JhbSBvZiB0 aGUgbGVuZ3RocyBvZiBub24tZW1wdHkgYW5kIG5vbi1udWxsIHJhbmdlIHZhbHVlcyBvZiBh CisgICAgICAgcmFuZ2UgdHlwZSBjb2x1bW4uIChOdWxsIGZvciBub24tcmFuZ2UgdHlwZXMu KQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lbXB0eV9yYW5nZV9mcmFj PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgRnJhY3Rpb24gb2YgY29sdW1uIGVudHJpZXMgd2hvc2UgdmFs dWVzIGFyZSBlbXB0eSByYW5nZXMuCisgICAgICAgKE51bGwgZm9yIG5vbi1yYW5nZSB0eXBl cy4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJhbmdlX2JvdW5kc19o aXN0b2dyYW1zPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YW55YXJyYXk8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBIaXN0b2dyYW1zIG9mIGxvd2VyIGFuZCB1 cHBlciBib3VuZHMgb2Ygbm9uLWVtcHR5LCBub24tbnVsbCByYW5nZXMsCisgICAgICAgY29t YmluZWQgaW50byBhIHNpbmdsZSBhcnJheSBvZiByYW5nZSB2YWx1ZXMuIFRoZSBsb3dlciBh bmQgdXBwZXIgYm91bmRzCisgICAgICAgb2YgZWFjaCB2YWx1ZSBjb3JyZXNwb25kIHRvIHRo ZSBoaXN0b2dyYW1zIG9mIGxvd2VyIGFuZCB1cHBlciBib3VuZHMKKyAgICAgICByZXNwZWN0 aXZlbHkuIChOdWxsIGZvciBub24tcmFuZ2UgdHlwZXMuKQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJs ZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCA4NjA4ZTNmYTVi MS4uY2NkNmM3ZmZkYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwK QEAgLTI0Myw3ICsyNDMsMjggQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdHMgV0lUSCAoc2VjdXJp dHlfYmFycmllcikgQVMKICAgICAgICAgICAgIFdIRU4gc3Rha2luZDMgPSA1IFRIRU4gc3Rh bnVtYmVyczMKICAgICAgICAgICAgIFdIRU4gc3Rha2luZDQgPSA1IFRIRU4gc3RhbnVtYmVy czQKICAgICAgICAgICAgIFdIRU4gc3Rha2luZDUgPSA1IFRIRU4gc3RhbnVtYmVyczUKLSAg ICAgICAgRU5EIEFTIGVsZW1fY291bnRfaGlzdG9ncmFtCisgICAgICAgIEVORCBBUyBlbGVt X2NvdW50X2hpc3RvZ3JhbSwKKyAgICAgICAgQ0FTRQorICAgICAgICAgICAgV0hFTiBzdGFr aW5kMSA9IDYgVEhFTiBzdGF2YWx1ZXMxCisgICAgICAgICAgICBXSEVOIHN0YWtpbmQyID0g NiBUSEVOIHN0YXZhbHVlczIKKyAgICAgICAgICAgIFdIRU4gc3Rha2luZDMgPSA2IFRIRU4g c3RhdmFsdWVzMworICAgICAgICAgICAgV0hFTiBzdGFraW5kNCA9IDYgVEhFTiBzdGF2YWx1 ZXM0CisgICAgICAgICAgICBXSEVOIHN0YWtpbmQ1ID0gNiBUSEVOIHN0YXZhbHVlczUKKyAg ICAgICAgRU5EIEFTIHJhbmdlX2xlbmd0aF9oaXN0b2dyYW0sCisgICAgICAgIENBU0UKKyAg ICAgICAgICAgIFdIRU4gc3Rha2luZDEgPSA2IFRIRU4gc3RhbnVtYmVyczFbMV0KKyAgICAg ICAgICAgIFdIRU4gc3Rha2luZDIgPSA2IFRIRU4gc3RhbnVtYmVyczJbMV0KKyAgICAgICAg ICAgIFdIRU4gc3Rha2luZDMgPSA2IFRIRU4gc3RhbnVtYmVyczNbMV0KKyAgICAgICAgICAg IFdIRU4gc3Rha2luZDQgPSA2IFRIRU4gc3RhbnVtYmVyczRbMV0KKyAgICAgICAgICAgIFdI RU4gc3Rha2luZDUgPSA2IFRIRU4gc3RhbnVtYmVyczVbMV0KKyAgICAgICAgRU5EIEFTIGVt cHR5X3JhbmdlX2ZyYWMsCisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4gc3Rha2lu ZDEgPSA3IFRIRU4gc3RhdmFsdWVzMQorICAgICAgICAgICAgV0hFTiBzdGFraW5kMiA9IDcg VEhFTiBzdGF2YWx1ZXMyCisgICAgICAgICAgICBXSEVOIHN0YWtpbmQzID0gNyBUSEVOIHN0 YXZhbHVlczMKKyAgICAgICAgICAgIFdIRU4gc3Rha2luZDQgPSA3IFRIRU4gc3RhdmFsdWVz NAorICAgICAgICAgICAgV0hFTiBzdGFraW5kNSA9IDcgVEhFTiBzdGF2YWx1ZXM1CisgICAg ICAgICAgICBFTkQgQVMgcmFuZ2VfYm91bmRzX2hpc3RvZ3JhbXMKICAgICBGUk9NIHBnX3N0 YXRpc3RpYyBzIEpPSU4gcGdfY2xhc3MgYyBPTiAoYy5vaWQgPSBzLnN0YXJlbGlkKQogICAg ICAgICAgSk9JTiBwZ19hdHRyaWJ1dGUgYSBPTiAoYy5vaWQgPSBhdHRyZWxpZCBBTkQgYXR0 bnVtID0gcy5zdGFhdHRudW0pCiAgICAgICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG4g T04gKG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3N0YXRpc3RpYy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdGF0aXN0 aWMuaAppbmRleCA4NzcwYzViNGM2MC4uMTA0MDFkZWNlMGQgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3RhdGlzdGljLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdGF0aXN0aWMuaApAQCAtMTUyLDYgKzE1Miw5IEBAIERFQ0xBUkVfRk9SRUlHTl9L RVkoKHN0YXJlbGlkLCBzdGFhdHRudW0pLCBwZ19hdHRyaWJ1dGUsIChhdHRyZWxpZCwgYXR0 bnVtKSk7CiAgKiBkYXRhICJraW5kIiB3aWxsIGFwcGVhciBpbiBhbnkgcGFydGljdWxhciBz bG90LiAgSW5zdGVhZCwgc2VhcmNoIHRoZQogICogc3Rha2luZCBmaWVsZHMgdG8gc2VlIGlm IHRoZSBkZXNpcmVkIGRhdGEgaXMgYXZhaWxhYmxlLiAgKFRoZSBzdGFuZGFyZAogICogZnVu Y3Rpb24gZ2V0X2F0dHN0YXRzc2xvdCgpIG1heSBiZSB1c2VkIGZvciB0aGlzLikKKyAqCisg KiBOb3RlOiBUaGUgcGdfc3RhdHMgdmlldyBuZWVkcyB0byBiZSBtb2RpZmllZCB3aGVuZXZl ciBhIG5ldyBzbG90IGtpbmQgaXMKKyAqIGFkZGVkIHRvIGNvcmUuCiAgKi8KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggZTdhMmY1ODU2YWEuLmNlZDU5 MzMyNzFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjQzNiw3 ICsyNDM2LDMxIEBAIHBnX3N0YXRzfCBTRUxFQ1Qgbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUs CiAgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQ0ID0gNSkgVEhFTiBzLnN0YW51bWJlcnM0 CiAgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQ1ID0gNSkgVEhFTiBzLnN0YW51bWJlcnM1 CiAgICAgICAgICAgICBFTFNFIE5VTEw6OnJlYWxbXQotICAgICAgICBFTkQgQVMgZWxlbV9j b3VudF9oaXN0b2dyYW0KKyAgICAgICAgRU5EIEFTIGVsZW1fY291bnRfaGlzdG9ncmFtLAor ICAgICAgICBDQVNFCisgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQxID0gNikgVEhFTiBz LnN0YXZhbHVlczEKKyAgICAgICAgICAgIFdIRU4gKHMuc3Rha2luZDIgPSA2KSBUSEVOIHMu c3RhdmFsdWVzMgorICAgICAgICAgICAgV0hFTiAocy5zdGFraW5kMyA9IDYpIFRIRU4gcy5z dGF2YWx1ZXMzCisgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQ0ID0gNikgVEhFTiBzLnN0 YXZhbHVlczQKKyAgICAgICAgICAgIFdIRU4gKHMuc3Rha2luZDUgPSA2KSBUSEVOIHMuc3Rh dmFsdWVzNQorICAgICAgICAgICAgRUxTRSBOVUxMOjphbnlhcnJheQorICAgICAgICBFTkQg QVMgcmFuZ2VfbGVuZ3RoX2hpc3RvZ3JhbSwKKyAgICAgICAgQ0FTRQorICAgICAgICAgICAg V0hFTiAocy5zdGFraW5kMSA9IDYpIFRIRU4gcy5zdGFudW1iZXJzMVsxXQorICAgICAgICAg ICAgV0hFTiAocy5zdGFraW5kMiA9IDYpIFRIRU4gcy5zdGFudW1iZXJzMlsxXQorICAgICAg ICAgICAgV0hFTiAocy5zdGFraW5kMyA9IDYpIFRIRU4gcy5zdGFudW1iZXJzM1sxXQorICAg ICAgICAgICAgV0hFTiAocy5zdGFraW5kNCA9IDYpIFRIRU4gcy5zdGFudW1iZXJzNFsxXQor ICAgICAgICAgICAgV0hFTiAocy5zdGFraW5kNSA9IDYpIFRIRU4gcy5zdGFudW1iZXJzNVsx XQorICAgICAgICAgICAgRUxTRSBOVUxMOjpyZWFsCisgICAgICAgIEVORCBBUyBlbXB0eV9y YW5nZV9mcmFjLAorICAgICAgICBDQVNFCisgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQx ID0gNykgVEhFTiBzLnN0YXZhbHVlczEKKyAgICAgICAgICAgIFdIRU4gKHMuc3Rha2luZDIg PSA3KSBUSEVOIHMuc3RhdmFsdWVzMgorICAgICAgICAgICAgV0hFTiAocy5zdGFraW5kMyA9 IDcpIFRIRU4gcy5zdGF2YWx1ZXMzCisgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQ0ID0g NykgVEhFTiBzLnN0YXZhbHVlczQKKyAgICAgICAgICAgIFdIRU4gKHMuc3Rha2luZDUgPSA3 KSBUSEVOIHMuc3RhdmFsdWVzNQorICAgICAgICAgICAgRUxTRSBOVUxMOjphbnlhcnJheQor ICAgICAgICBFTkQgQVMgcmFuZ2VfYm91bmRzX2hpc3RvZ3JhbXMKICAgIEZST00gKCgocGdf c3RhdGlzdGljIHMKICAgICAgSk9JTiBwZ19jbGFzcyBjIE9OICgoYy5vaWQgPSBzLnN0YXJl bGlkKSkpCiAgICAgIEpPSU4gcGdfYXR0cmlidXRlIGEgT04gKCgoYy5vaWQgPSBhLmF0dHJl bGlkKSBBTkQgKGEuYXR0bnVtID0gcy5zdGFhdHRudW0pKSkpCi0tIAoyLjM5LjAKCg== --------------xXJA1ltMm9odoFamp3yiQFOS Content-Type: text/plain; charset=UTF-8; name="0002-add-functions-to-extract-lower-upper-ramge--20230120.patch" Content-Disposition: attachment; filename*0="0002-add-functions-to-extract-lower-upper-ramge--20230120.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5YmQyYmJlZjlkYzA5MmFiNWZkYWNlNzRlMjZmM2FmZWFhNjI4MzBkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAyMCBKYW4gMjAyMyAyMjoyOTo1MyArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMi8zXSBhZGQgZnVuY3Rpb25zIHRvIGV4dHJhY3QgbG93ZXIvdXBwZXIg cmFtZ2UgYm91bmRzCgotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bCAgICAgICAgICB8ICAxOSArKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVz X3R5cGFuYWx5emUuYyB8IDExOCArKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAxMCArKwogMyBmaWxlcyBjaGFu Z2VkLCAxNDEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggY2NkNmM3ZmZkYjcuLmUzMzE0NTUwZTMyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0yNTksMTIgKzI1OSwx OSBAQCBDUkVBVEUgVklFVyBwZ19zdGF0cyBXSVRIIChzZWN1cml0eV9iYXJyaWVyKSBBUwog ICAgICAgICAgICAgV0hFTiBzdGFraW5kNSA9IDYgVEhFTiBzdGFudW1iZXJzNVsxXQogICAg ICAgICBFTkQgQVMgZW1wdHlfcmFuZ2VfZnJhYywKICAgICAgICAgQ0FTRQotICAgICAgICAg ICAgV0hFTiBzdGFraW5kMSA9IDcgVEhFTiBzdGF2YWx1ZXMxCi0gICAgICAgICAgICBXSEVO IHN0YWtpbmQyID0gNyBUSEVOIHN0YXZhbHVlczIKLSAgICAgICAgICAgIFdIRU4gc3Rha2lu ZDMgPSA3IFRIRU4gc3RhdmFsdWVzMwotICAgICAgICAgICAgV0hFTiBzdGFraW5kNCA9IDcg VEhFTiBzdGF2YWx1ZXM0Ci0gICAgICAgICAgICBXSEVOIHN0YWtpbmQ1ID0gNyBUSEVOIHN0 YXZhbHVlczUKLSAgICAgICAgICAgIEVORCBBUyByYW5nZV9ib3VuZHNfaGlzdG9ncmFtcwor ICAgICAgICAgICAgV0hFTiBzdGFraW5kMSA9IDcgVEhFTiByYW5nZXNfbG93ZXJfYm91bmRz KHN0YXZhbHVlczEpCisgICAgICAgICAgICBXSEVOIHN0YWtpbmQyID0gNyBUSEVOIHJhbmdl c19sb3dlcl9ib3VuZHMoc3RhdmFsdWVzMikKKyAgICAgICAgICAgIFdIRU4gc3Rha2luZDMg PSA3IFRIRU4gcmFuZ2VzX2xvd2VyX2JvdW5kcyhzdGF2YWx1ZXMzKQorICAgICAgICAgICAg V0hFTiBzdGFraW5kNCA9IDcgVEhFTiByYW5nZXNfbG93ZXJfYm91bmRzKHN0YXZhbHVlczQp CisgICAgICAgICAgICBXSEVOIHN0YWtpbmQ1ID0gNyBUSEVOIHJhbmdlc19sb3dlcl9ib3Vu ZHMoc3RhdmFsdWVzNSkKKyAgICAgICAgICAgIEVORCBBUyByYW5nZV9sb3dlcl9ib3VuZHNf aGlzdG9ncmFtcywKKyAgICAgICAgQ0FTRQorICAgICAgICAgICAgV0hFTiBzdGFraW5kMSA9 IDcgVEhFTiByYW5nZXNfdXBwZXJfYm91bmRzKHN0YXZhbHVlczEpCisgICAgICAgICAgICBX SEVOIHN0YWtpbmQyID0gNyBUSEVOIHJhbmdlc191cHBlcl9ib3VuZHMoc3RhdmFsdWVzMikK KyAgICAgICAgICAgIFdIRU4gc3Rha2luZDMgPSA3IFRIRU4gcmFuZ2VzX3VwcGVyX2JvdW5k cyhzdGF2YWx1ZXMzKQorICAgICAgICAgICAgV0hFTiBzdGFraW5kNCA9IDcgVEhFTiByYW5n ZXNfdXBwZXJfYm91bmRzKHN0YXZhbHVlczQpCisgICAgICAgICAgICBXSEVOIHN0YWtpbmQ1 ID0gNyBUSEVOIHJhbmdlc191cHBlcl9ib3VuZHMoc3RhdmFsdWVzNSkKKyAgICAgICAgICAg IEVORCBBUyByYW5nZV91cHBlcl9ib3VuZHNfaGlzdG9ncmFtcwogICAgIEZST00gcGdfc3Rh dGlzdGljIHMgSk9JTiBwZ19jbGFzcyBjIE9OIChjLm9pZCA9IHMuc3RhcmVsaWQpCiAgICAg ICAgICBKT0lOIHBnX2F0dHJpYnV0ZSBhIE9OIChjLm9pZCA9IGF0dHJlbGlkIEFORCBhdHRu dW0gPSBzLnN0YWF0dG51bSkKICAgICAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbiBP TiAobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9yYW5nZXR5cGVzX3R5cGFuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9yYW5nZXR5cGVzX3R5cGFuYWx5emUuYwppbmRleCA4NjgxMGExYTZlNi4uYTAwOTcyODJm YzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX3R5cGFu YWx5emUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlc190eXBhbmFs eXplLmMKQEAgLTI2LDYgKzI2LDggQEAKIAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0 b3IuaCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5YWNjZXNzLmgiCiAjaW5jbHVkZSAidXRp bHMvZmxvYXQuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdycHJvdG9zLmgiCiAjaW5jbHVkZSAi dXRpbHMvbHN5c2NhY2hlLmgiCkBAIC00MjcsMyArNDI5LDExOSBAQCBjb21wdXRlX3Jhbmdl X3N0YXRzKFZhY0F0dHJTdGF0cyAqc3RhdHMsIEFuYWx5emVBdHRyRmV0Y2hGdW5jIGZldGNo ZnVuYywKIAkgKiBoYXNodGFibGUgc2hvdWxkIGFsc28gZ28gYXdheSwgYXMgaXQgdXNlZCBh IGNoaWxkIG1lbW9yeSBjb250ZXh0LgogCSAqLwogfQorCitEYXR1bQorcmFuZ2VzX2xvd2Vy X2JvdW5kcyhQR19GVU5DVElPTl9BUkdTKQoreworCUFueUFycmF5VHlwZSAqYXJyYXkgPSBQ R19HRVRBUkdfQU5ZX0FSUkFZX1AoMCk7CisJaW50CQkJbmRpbXMgPSBBQVJSX05ESU0oYXJy YXkpOworCWludAkJICAgKmRpbXMgPSBBQVJSX0RJTVMoYXJyYXkpOworCU9pZAkJCWVsZW1l bnRfdHlwZSA9IEFBUlJfRUxFTVRZUEUoYXJyYXkpOworCWludAkJCWk7CisJYXJyYXlfaXRl cglpdGVyOworCWludAkJCW5lbGVtczsKKwlEYXR1bQkgICAqZWxlbXM7CisJVHlwZUNhY2hl RW50cnkgKnR5cGVudHJ5OworCVR5cGVDYWNoZUVudHJ5ICp0eXBlbnRyeV9lbGVtZW50Owor CisJLyogR2V0IGluZm9ybWF0aW9uIGFib3V0IHJhbmdlIHR5cGU7IG5vdGUgY29sdW1uIG1p Z2h0IGJlIGEgZG9tYWluICovCisJdHlwZW50cnkgPSByYW5nZV9nZXRfdHlwY2FjaGUoZmNp bmZvLCBnZXRCYXNlVHlwZShlbGVtZW50X3R5cGUpKTsKKworCWlmICh0eXBlbnRyeS0+dHlw dHlwZSAhPSBUWVBUWVBFX1JBTkdFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImV4cGVjdGVkIGFy cmF5IG9mIHJhbmdlcyIpKSk7CisKKwluZGltcyA9IEFBUlJfTkRJTShhcnJheSk7CisJZGlt cyA9IEFBUlJfRElNUyhhcnJheSk7CisJbmVsZW1zID0gQXJyYXlHZXROSXRlbXMobmRpbXMs IGRpbXMpOworCisJZWxlbXMgPSAoRGF0dW0gKikgcGFsbG9jKG5lbGVtcyAqIHNpemVvZihE YXR1bSkpOworCisJYXJyYXlfaXRlcl9zZXR1cCgmaXRlciwgYXJyYXkpOworCisJZm9yIChp ID0gMDsgaSA8IG5lbGVtczsgaSsrKQorCXsKKwkJRGF0dW0JCWl0ZW12YWx1ZTsKKwkJYm9v bAkJaXNudWxsOworCQlSYW5nZUJvdW5kCWxvd2VyOworCQlSYW5nZUJvdW5kCXVwcGVyOwor CQlib29sCQllbXB0eTsKKworCQkvKiBHZXQgc291cmNlIGVsZW1lbnQsIGNoZWNraW5nIGZv ciBOVUxMICovCisJCWl0ZW12YWx1ZSA9IGFycmF5X2l0ZXJfbmV4dCgmaXRlciwgJmlzbnVs bCwgaSwKKwkJCQkJCQkJCXR5cGVudHJ5LT50eXBsZW4sIHR5cGVudHJ5LT50eXBieXZhbCwK KwkJCQkJCQkJCXR5cGVudHJ5LT50eXBhbGlnbik7CisKKwkJQXNzZXJ0KCFpc251bGwpOwor CisJCXJhbmdlX2Rlc2VyaWFsaXplKHR5cGVudHJ5LCAoUmFuZ2VUeXBlICopIGl0ZW12YWx1 ZSwgJmxvd2VyLCAmdXBwZXIsICZlbXB0eSk7CisJCWVsZW1zW2ldID0gbG93ZXIudmFsOwor CX0KKworCXR5cGVudHJ5X2VsZW1lbnQgPSB0eXBlbnRyeS0+cm5nZWxlbXR5cGU7CisKKwlQ R19SRVRVUk5fQVJSQVlUWVBFX1AoY29uc3RydWN0X2FycmF5KGVsZW1zLCBuZWxlbXMsCisJ CQkJCQkgIHR5cGVudHJ5X2VsZW1lbnQtPnR5cGVfaWQsCisJCQkJCQkgIHR5cGVudHJ5X2Vs ZW1lbnQtPnR5cGxlbiwKKwkJCQkJCSAgdHlwZW50cnlfZWxlbWVudC0+dHlwYnl2YWwsCisJ CQkJCQkgIHR5cGVudHJ5X2VsZW1lbnQtPnR5cGFsaWduKSk7Cit9CisKK0RhdHVtCityYW5n ZXNfdXBwZXJfYm91bmRzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJQW55QXJyYXlUeXBlICph cnJheSA9IFBHX0dFVEFSR19BTllfQVJSQVlfUCgwKTsKKwlpbnQJCQluZGltcyA9IEFBUlJf TkRJTShhcnJheSk7CisJaW50CQkgICAqZGltcyA9IEFBUlJfRElNUyhhcnJheSk7CisJT2lk CQkJZWxlbWVudF90eXBlID0gQUFSUl9FTEVNVFlQRShhcnJheSk7CisJaW50CQkJaTsKKwlh cnJheV9pdGVyCWl0ZXI7CisJaW50CQkJbmVsZW1zOworCURhdHVtCSAgICplbGVtczsKKwlU eXBlQ2FjaGVFbnRyeSAqdHlwZW50cnk7CisJVHlwZUNhY2hlRW50cnkgKnR5cGVudHJ5X2Vs ZW1lbnQ7CisKKwkvKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgcmFuZ2UgdHlwZTsgbm90ZSBj b2x1bW4gbWlnaHQgYmUgYSBkb21haW4gKi8KKwl0eXBlbnRyeSA9IHJhbmdlX2dldF90eXBj YWNoZShmY2luZm8sIGdldEJhc2VUeXBlKGVsZW1lbnRfdHlwZSkpOworCisJaWYgKHR5cGVu dHJ5LT50eXB0eXBlICE9IFRZUFRZUEVfUkFOR0UpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygiZXhw ZWN0ZWQgYXJyYXkgb2YgcmFuZ2VzIikpKTsKKworCW5kaW1zID0gQUFSUl9ORElNKGFycmF5 KTsKKwlkaW1zID0gQUFSUl9ESU1TKGFycmF5KTsKKwluZWxlbXMgPSBBcnJheUdldE5JdGVt cyhuZGltcywgZGltcyk7CisKKwllbGVtcyA9IChEYXR1bSAqKSBwYWxsb2MobmVsZW1zICog c2l6ZW9mKERhdHVtKSk7CisKKwlhcnJheV9pdGVyX3NldHVwKCZpdGVyLCBhcnJheSk7CisK Kwlmb3IgKGkgPSAwOyBpIDwgbmVsZW1zOyBpKyspCisJeworCQlEYXR1bQkJaXRlbXZhbHVl OworCQlib29sCQlpc251bGw7CisJCVJhbmdlQm91bmQJbG93ZXI7CisJCVJhbmdlQm91bmQJ dXBwZXI7CisJCWJvb2wJCWVtcHR5OworCisJCS8qIEdldCBzb3VyY2UgZWxlbWVudCwgY2hl Y2tpbmcgZm9yIE5VTEwgKi8KKwkJaXRlbXZhbHVlID0gYXJyYXlfaXRlcl9uZXh0KCZpdGVy LCAmaXNudWxsLCBpLAorCQkJCQkJCQkJdHlwZW50cnktPnR5cGxlbiwgdHlwZW50cnktPnR5 cGJ5dmFsLAorCQkJCQkJCQkJdHlwZW50cnktPnR5cGFsaWduKTsKKworCQlBc3NlcnQoIWlz bnVsbCk7CisKKwkJcmFuZ2VfZGVzZXJpYWxpemUodHlwZW50cnksIChSYW5nZVR5cGUgKikg aXRlbXZhbHVlLCAmbG93ZXIsICZ1cHBlciwgJmVtcHR5KTsKKwkJZWxlbXNbaV0gPSB1cHBl ci52YWw7CisJfQorCisJdHlwZW50cnlfZWxlbWVudCA9IHR5cGVudHJ5LT5ybmdlbGVtdHlw ZTsKKworCVBHX1JFVFVSTl9BUlJBWVRZUEVfUChjb25zdHJ1Y3RfYXJyYXkoZWxlbXMsIG5l bGVtcywKKwkJCQkJCSAgdHlwZW50cnlfZWxlbWVudC0+dHlwZV9pZCwKKwkJCQkJCSAgdHlw ZW50cnlfZWxlbWVudC0+dHlwbGVuLAorCQkJCQkJICB0eXBlbnRyeV9lbGVtZW50LT50eXBi eXZhbCwKKwkJCQkJCSAgdHlwZW50cnlfZWxlbWVudC0+dHlwYWxpZ24pKTsKK30KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDg2ZWI4ZThjNThhLi4xNjE1NTdlNGNiMiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTg5MSw0ICsxMTg5MSwxNCBAQAogICBw cm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdwZ19icmluX21pbm1heF9t dWx0aV9zdW1tYXJ5JywKICAgcHJvc3JjID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5 X3NlbmQnIH0sCiAKK3sgb2lkID0+ICc5NjkzJywgZGVzY3IgPT4gJ2xvd2VyIGJvdW5kcyBv ZiByYW5nZXMnLAorICBwcm9uYW1lID0+ICdyYW5nZXNfbG93ZXJfYm91bmRzJywgcHJvdm9s YXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdhbnlhcnJheScsIHByb2FyZ3R5cGVz ID0+ICdhbnlhcnJheScsCisgIHByb3NyYyA9PiAncmFuZ2VzX2xvd2VyX2JvdW5kcycgfSwK KworeyBvaWQgPT4gJzk2OTQnLCBkZXNjciA9PiAndXBwZXIgYm91bmRzIG9mIHJhbmdlcycs CisgIHByb25hbWUgPT4gJ3Jhbmdlc191cHBlcl9ib3VuZHMnLCBwcm92b2xhdGlsZSA9PiAn cycsCisgIHByb3JldHR5cGUgPT4gJ2FueWFycmF5JywgcHJvYXJndHlwZXMgPT4gJ2FueWFy cmF5JywKKyAgcHJvc3JjID0+ICdyYW5nZXNfdXBwZXJfYm91bmRzJyB9LAorCiBdCi0tIAoy LjM5LjAKCg== --------------xXJA1ltMm9odoFamp3yiQFOS Content-Type: text/plain; charset=UTF-8; name="0003-rename-empty_range_frac-20230120.patch" Content-Disposition: attachment; filename="0003-rename-empty_range_frac-20230120.patch" Content-Transfer-Encoding: base64 RnJvbSA2MDBmZWQxZmFhZTM2OWI4MjkxZWMzYTdmYzY0ZjZhZDgwOTljMTI0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAyMCBKYW4gMjAyMyAyMjo0MDoyOCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMy8zXSByZW5hbWUgZW1wdHlfcmFuZ2VfZnJhYwoKLS0tCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwKaW5kZXggZTMzMTQ1NTBlMzIuLmFjOTlkNDFmODA4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0yNTcsNyArMjU3LDcgQEAgQ1JFQVRF IFZJRVcgcGdfc3RhdHMgV0lUSCAoc2VjdXJpdHlfYmFycmllcikgQVMKICAgICAgICAgICAg IFdIRU4gc3Rha2luZDMgPSA2IFRIRU4gc3RhbnVtYmVyczNbMV0KICAgICAgICAgICAgIFdI RU4gc3Rha2luZDQgPSA2IFRIRU4gc3RhbnVtYmVyczRbMV0KICAgICAgICAgICAgIFdIRU4g c3Rha2luZDUgPSA2IFRIRU4gc3RhbnVtYmVyczVbMV0KLSAgICAgICAgRU5EIEFTIGVtcHR5 X3JhbmdlX2ZyYWMsCisgICAgICAgIEVORCBBUyByYW5nZV9lbXB0eV9mcmFjLAogICAgICAg ICBDQVNFCiAgICAgICAgICAgICBXSEVOIHN0YWtpbmQxID0gNyBUSEVOIHJhbmdlc19sb3dl cl9ib3VuZHMoc3RhdmFsdWVzMSkKICAgICAgICAgICAgIFdIRU4gc3Rha2luZDIgPSA3IFRI RU4gcmFuZ2VzX2xvd2VyX2JvdW5kcyhzdGF2YWx1ZXMyKQotLSAKMi4zOS4wCgo= --------------xXJA1ltMm9odoFamp3yiQFOS Content-Type: text/plain; charset=UTF-8; name="0004-shorten_names-refresh_docs-tests-20230121.patch" Content-Disposition: attachment; filename="0004-shorten_names-refresh_docs-tests-20230121.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggYzhiZDg0YzU2ZS4uZTA4NTFjNTJiNCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwKQEAgLTk2NDcsNyArOTY0Nyw3IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2Vh YmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxl PiZsCiAKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Ci0gICAgICAgPHN0cnVjdGZp ZWxkPmVtcHR5X3JhbmdlX2ZyYWM8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDQ8L3R5cGU+ CisgICAgICAgPHN0cnVjdGZpZWxkPnJhbmdlX2VtcHR5X2ZyYWM8L3N0cnVjdGZpZWxkPiA8 dHlwZT5mbG9hdDQ8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAg ICBGcmFjdGlvbiBvZiBjb2x1bW4gZW50cmllcyB3aG9zZSB2YWx1ZXMgYXJlIGVtcHR5IHJh bmdlcy4KQEAgLTk2NTcsMTMgKzk2NTcsMjEgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFi bGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+ JmwKIAogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KLSAgICAgICA8c3RydWN0Zmll bGQ+cmFuZ2VfYm91bmRzX2hpc3RvZ3JhbXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5hbnlhcnJh eTwvdHlwZT4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmFuZ2VfbG93ZXJfaGlzdG9ncmFtPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+YW55YXJyYXk8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAg ICA8cGFyYT4KLSAgICAgICBIaXN0b2dyYW1zIG9mIGxvd2VyIGFuZCB1cHBlciBib3VuZHMg b2Ygbm9uLWVtcHR5LCBub24tbnVsbCByYW5nZXMsCi0gICAgICAgY29tYmluZWQgaW50byBh IHNpbmdsZSBhcnJheSBvZiByYW5nZSB2YWx1ZXMuIFRoZSBsb3dlciBhbmQgdXBwZXIgYm91 bmRzCi0gICAgICAgb2YgZWFjaCB2YWx1ZSBjb3JyZXNwb25kIHRvIHRoZSBoaXN0b2dyYW1z IG9mIGxvd2VyIGFuZCB1cHBlciBib3VuZHMKLSAgICAgICByZXNwZWN0aXZlbHkuIChOdWxs IGZvciBub24tcmFuZ2UgdHlwZXMuKQorICAgICAgIEEgaGlzdG9ncmFtIG9mIGxvd2VyIGJv dW5kcyBvZiBub24tZW1wdHkgYW5kIG5vbi1udWxsIHJhbmdlIHZhbHVlcy4KKyAgICAgICAo TnVsbCBmb3Igbm9uLXJhbmdlIHR5cGVzLikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+cmFuZ2VfdXBwZXJfaGlzdG9ncmFtPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YW55 YXJyYXk8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBIGhp c3RvZ3JhbSBvZiB1cHBlciBib3VuZHMgb2Ygbm9uLWVtcHR5IGFuZCBub24tbnVsbCByYW5n ZSB2YWx1ZXMuCisgICAgICAgKE51bGwgZm9yIG5vbi1yYW5nZSB0eXBlcy4pCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBhYzk5ZDQxZjgwLi5iM2I5ZTY0YWUyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0yNjQsMTQgKzI2NCwx NCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0cyBXSVRIIChzZWN1cml0eV9iYXJyaWVyKSBBUwog ICAgICAgICAgICAgV0hFTiBzdGFraW5kMyA9IDcgVEhFTiByYW5nZXNfbG93ZXJfYm91bmRz KHN0YXZhbHVlczMpCiAgICAgICAgICAgICBXSEVOIHN0YWtpbmQ0ID0gNyBUSEVOIHJhbmdl c19sb3dlcl9ib3VuZHMoc3RhdmFsdWVzNCkKICAgICAgICAgICAgIFdIRU4gc3Rha2luZDUg PSA3IFRIRU4gcmFuZ2VzX2xvd2VyX2JvdW5kcyhzdGF2YWx1ZXM1KQotICAgICAgICAgICAg RU5EIEFTIHJhbmdlX2xvd2VyX2JvdW5kc19oaXN0b2dyYW1zLAorICAgICAgICAgICAgRU5E IEFTIHJhbmdlX2xvd2VyX2hpc3RvZ3JhbSwKICAgICAgICAgQ0FTRQogICAgICAgICAgICAg V0hFTiBzdGFraW5kMSA9IDcgVEhFTiByYW5nZXNfdXBwZXJfYm91bmRzKHN0YXZhbHVlczEp CiAgICAgICAgICAgICBXSEVOIHN0YWtpbmQyID0gNyBUSEVOIHJhbmdlc191cHBlcl9ib3Vu ZHMoc3RhdmFsdWVzMikKICAgICAgICAgICAgIFdIRU4gc3Rha2luZDMgPSA3IFRIRU4gcmFu Z2VzX3VwcGVyX2JvdW5kcyhzdGF2YWx1ZXMzKQogICAgICAgICAgICAgV0hFTiBzdGFraW5k NCA9IDcgVEhFTiByYW5nZXNfdXBwZXJfYm91bmRzKHN0YXZhbHVlczQpCiAgICAgICAgICAg ICBXSEVOIHN0YWtpbmQ1ID0gNyBUSEVOIHJhbmdlc191cHBlcl9ib3VuZHMoc3RhdmFsdWVz NSkKLSAgICAgICAgICAgIEVORCBBUyByYW5nZV91cHBlcl9ib3VuZHNfaGlzdG9ncmFtcwor ICAgICAgICAgICAgRU5EIEFTIHJhbmdlX3VwcGVyX2hpc3RvZ3JhbQogICAgIEZST00gcGdf c3RhdGlzdGljIHMgSk9JTiBwZ19jbGFzcyBjIE9OIChjLm9pZCA9IHMuc3RhcmVsaWQpCiAg ICAgICAgICBKT0lOIHBnX2F0dHJpYnV0ZSBhIE9OIChjLm9pZCA9IGF0dHJlbGlkIEFORCBh dHRudW0gPSBzLnN0YWF0dG51bSkKICAgICAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiAobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQKaW5kZXggY2VkNTkzMzI3MS4uMjYwODdkZmRmNSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTI0NTIsMTUgKzI0NTIsMjMgQEAgcGdfc3RhdHN8 IFNFTEVDVCBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICAgICAgICAgIFdIRU4gKHMu c3Rha2luZDQgPSA2KSBUSEVOIHMuc3RhbnVtYmVyczRbMV0KICAgICAgICAgICAgIFdIRU4g KHMuc3Rha2luZDUgPSA2KSBUSEVOIHMuc3RhbnVtYmVyczVbMV0KICAgICAgICAgICAgIEVM U0UgTlVMTDo6cmVhbAotICAgICAgICBFTkQgQVMgZW1wdHlfcmFuZ2VfZnJhYywKKyAgICAg ICAgRU5EIEFTIHJhbmdlX2VtcHR5X2ZyYWMsCiAgICAgICAgIENBU0UKLSAgICAgICAgICAg IFdIRU4gKHMuc3Rha2luZDEgPSA3KSBUSEVOIHMuc3RhdmFsdWVzMQotICAgICAgICAgICAg V0hFTiAocy5zdGFraW5kMiA9IDcpIFRIRU4gcy5zdGF2YWx1ZXMyCi0gICAgICAgICAgICBX SEVOIChzLnN0YWtpbmQzID0gNykgVEhFTiBzLnN0YXZhbHVlczMKLSAgICAgICAgICAgIFdI RU4gKHMuc3Rha2luZDQgPSA3KSBUSEVOIHMuc3RhdmFsdWVzNAotICAgICAgICAgICAgV0hF TiAocy5zdGFraW5kNSA9IDcpIFRIRU4gcy5zdGF2YWx1ZXM1CisgICAgICAgICAgICBXSEVO IChzLnN0YWtpbmQxID0gNykgVEhFTiByYW5nZXNfbG93ZXJfYm91bmRzKHMuc3RhdmFsdWVz MSkKKyAgICAgICAgICAgIFdIRU4gKHMuc3Rha2luZDIgPSA3KSBUSEVOIHJhbmdlc19sb3dl cl9ib3VuZHMocy5zdGF2YWx1ZXMyKQorICAgICAgICAgICAgV0hFTiAocy5zdGFraW5kMyA9 IDcpIFRIRU4gcmFuZ2VzX2xvd2VyX2JvdW5kcyhzLnN0YXZhbHVlczMpCisgICAgICAgICAg ICBXSEVOIChzLnN0YWtpbmQ0ID0gNykgVEhFTiByYW5nZXNfbG93ZXJfYm91bmRzKHMuc3Rh dmFsdWVzNCkKKyAgICAgICAgICAgIFdIRU4gKHMuc3Rha2luZDUgPSA3KSBUSEVOIHJhbmdl c19sb3dlcl9ib3VuZHMocy5zdGF2YWx1ZXM1KQogICAgICAgICAgICAgRUxTRSBOVUxMOjph bnlhcnJheQotICAgICAgICBFTkQgQVMgcmFuZ2VfYm91bmRzX2hpc3RvZ3JhbXMKKyAgICAg ICAgRU5EIEFTIHJhbmdlX2xvd2VyX2hpc3RvZ3JhbSwKKyAgICAgICAgQ0FTRQorICAgICAg ICAgICAgV0hFTiAocy5zdGFraW5kMSA9IDcpIFRIRU4gcmFuZ2VzX3VwcGVyX2JvdW5kcyhz LnN0YXZhbHVlczEpCisgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQyID0gNykgVEhFTiBy YW5nZXNfdXBwZXJfYm91bmRzKHMuc3RhdmFsdWVzMikKKyAgICAgICAgICAgIFdIRU4gKHMu c3Rha2luZDMgPSA3KSBUSEVOIHJhbmdlc191cHBlcl9ib3VuZHMocy5zdGF2YWx1ZXMzKQor ICAgICAgICAgICAgV0hFTiAocy5zdGFraW5kNCA9IDcpIFRIRU4gcmFuZ2VzX3VwcGVyX2Jv dW5kcyhzLnN0YXZhbHVlczQpCisgICAgICAgICAgICBXSEVOIChzLnN0YWtpbmQ1ID0gNykg VEhFTiByYW5nZXNfdXBwZXJfYm91bmRzKHMuc3RhdmFsdWVzNSkKKyAgICAgICAgICAgIEVM U0UgTlVMTDo6YW55YXJyYXkKKyAgICAgICAgRU5EIEFTIHJhbmdlX3VwcGVyX2hpc3RvZ3Jh bQogICAgRlJPTSAoKChwZ19zdGF0aXN0aWMgcwogICAgICBKT0lOIHBnX2NsYXNzIGMgT04g KChjLm9pZCA9IHMuc3RhcmVsaWQpKSkKICAgICAgSk9JTiBwZ19hdHRyaWJ1dGUgYSBPTiAo KChjLm9pZCA9IGEuYXR0cmVsaWQpIEFORCAoYS5hdHRudW0gPSBzLnN0YWF0dG51bSkpKSkK --------------xXJA1ltMm9odoFamp3yiQFOS--