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 1qBBVs-0004bt-3f for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Jun 2023 09:49:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qBBVr-0005eL-3i for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Jun 2023 09:49:31 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qBBVq-0005eC-8B for pgsql-hackers@lists.postgresql.org; Mon, 19 Jun 2023 09:49:30 +0000 Received: from mail-am6eur05on2130.outbound.protection.outlook.com ([40.107.22.130] helo=EUR05-AM6-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qBBVm-003276-EL for pgsql-hackers@lists.postgresql.org; Mon, 19 Jun 2023 09:49:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JXo17LyEsV8qqM8LVXKKYpVbOTmPonJgu9mFL9ldzGTXeA8Ce1G9dCtnNELcO9uiC7qJX04ArqKUcAwEfZMO1T1Vf6hiIbxejWv+j7fx6ga1ojG4nJcewpEXFK+U1sa106s49RKorsJdEe5SffZ98absYuYrIRupVa/417BiKhpthiQuzCiXyetT9mn6egm7ldBj2UNam3QfkfhTp57JvBf9VuUuS7Q+iaa2mdgHw2v88FcT9jemzaSTYegrevpx6og/fu1b5R9LAreu1eJ69/ZnZaji1kaxCZSGIyOs3x5a8bGqzS77omfknYxvLu3n/xWDVL5XOP0X8OU+oEfgTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=L6G3I35whFEldSeVDyOfQAfiVJPaBISZavB1tQjl2yc=; b=S9S7pazJhMTFT+ee1NTavLQbOYlzC6qSzr8CGacY3wQt77QbxhFd6GcYTk47v9+VN8dwuaqypGr7p3SnifxxP+5IiAd0/ODn5g/iVq8rsYxkk7Tjth/VYuHlnf0ee24hoI/ZsURDNYuc9Mb5E1dWDd/KWuKUyObY7rV2FKWRouA034lpOKH6+UdX2Xw1yatYkLfdNgcSOgNJ/cp6zANJpgW3hY5ZOz5G2BKAsqkbQ2wF/9ffvYEeAt4Grw/dupeJ4k0rhXYIgA4wEBSKkhFWB5O/y4tCKcckuJ23MfVdZ30kbTo5PFw/mF1vU2Bs4zEg5IaBKFvQ5n+LbDnmZfRf0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ulb.be; dmarc=pass action=none header.from=ulb.be; dkim=pass header.d=ulb.be; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ulb.be; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L6G3I35whFEldSeVDyOfQAfiVJPaBISZavB1tQjl2yc=; b=OmbfJhofCOaPqr9oNB4/CX0FAZQaHYEX3anu+//O6shOAs42lfa75XXrPIcMpqNCLTfF1veTLt/0vPBfHH4z5q5cYZ4FI2USyLUvFTpXSCeCy1qIV6HVGOEvj2e9DXK2uPXx6bqUJr/H2BX+SV1PHqiyku/XF7dOitqFHF5koQs= Received: from DB8P190MB0731.EURP190.PROD.OUTLOOK.COM (2603:10a6:10:125::14) by PR3P190MB1020.EURP190.PROD.OUTLOOK.COM (2603:10a6:102:85::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.36; Mon, 19 Jun 2023 09:49:23 +0000 Received: from DB8P190MB0731.EURP190.PROD.OUTLOOK.COM ([fe80::148d:3f2e:b0c5:9a9b]) by DB8P190MB0731.EURP190.PROD.OUTLOOK.COM ([fe80::148d:3f2e:b0c5:9a9b%4]) with mapi id 15.20.6500.025; Mon, 19 Jun 2023 09:49:23 +0000 From: Schoemans Maxime To: PostgreSQL Hackers CC: SAKR Mahmoud , Diogo Repas , LUO Zhicheng , Tomas Vondra , Andrey Lepikhov Subject: Re: Implement missing join selectivity estimation for range types Thread-Topic: Implement missing join selectivity estimation for range types Thread-Index: AQHZK2HTFElV4cAAG0qhvSWvkCiFBa6keKmAgAAVOQCAAtFcgIACBB+AgAYni4CAVKFYAICOo58A Date: Mon, 19 Jun 2023 09:49:22 +0000 Message-ID: References: <8afecd87-d1e5-241c-5e3e-75e1c62c279b@enterprisedb.com> <1bc5e1e4-380b-213d-6e6a-d5e8f7f0c7f5@enterprisedb.com> <84ffb566-8038-ab35-c841-7a5e5728a247@enterprisedb.com> <525ea957-88ff-e2c6-2975-474c849aa234@ulb.be> In-Reply-To: <525ea957-88ff-e2c6-2975-474c849aa234@ulb.be> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ulb.be; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DB8P190MB0731:EE_|PR3P190MB1020:EE_ x-ms-office365-filtering-correlation-id: 029f7e32-c42b-4b49-855f-08db70aa762a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 93KfHMVitUZeg3htAkLRuisFfjYeAOZJlx07AkS0xLqpjNIzKuHsB+J/xDhjGNgbh041ccTJourUEUIWYihd4cM7vNdUk771I/I/Y296vJw6fbp3BqeMOfOC3pvdDmE0iqhjENL6CPiC8C4h/oUMO4rhHd7tQOf40PlNRnUin9X3faWv1gB2R7YV9vfuJ28RS3MfWEtY6vd/hkVX5Dz75cXqIRhQPx7P0mFmmHOpe/Xy/c8m9bJj+su/Z7E7H9weRkN3e9dfo366YLfv5WmG9q10Yi5hhEP7jF0IO+WSp2LbgzdC9MfAHReVnALIC9+B6KScxIaOw8kE212PdVexZHzrbM0TxEI1yNI7MN+7G7ShDcu5LHcKG4OEtdd5A+4EuNYhpk76d+I4OCmmtok8TepKcJlHZMoED15kaOVsEYr4gXKYNnXeNRUR2aJadFTyEO2RbYc01ur6+vKEjxxPkzboA2+kSZxlQw5z7nhDgKDbrWDXGjeEUJHQUTBCSLO1QjeL7SqpmgN6wS+IUtLSUAsAs9cD/TXVbd9RkDEnQmKtaiXyUZoKuiGvQvvW/QWY239E7eysmbdpVfgQz4WeMlIZFk9xGuE+mreDJspR0jLvDS+EnAKvch5TLojKZVxB x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8P190MB0731.EURP190.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(366004)(39860400002)(136003)(376002)(346002)(396003)(451199021)(54906003)(99936003)(186003)(71200400001)(6486002)(31696002)(86362001)(53546011)(6506007)(6512007)(478600001)(2616005)(31686004)(38100700002)(786003)(316002)(83380400001)(76116006)(122000001)(66946007)(66446008)(91956017)(66556008)(64756008)(66476007)(6916009)(4326008)(41300700001)(166002)(5660300002)(38070700005)(2906002)(36756003)(8676002)(8936002)(45980500001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TGhsSmcrell5UkJmcDV6d09PWjluQUtjcithb1RZTUpZK2JYQXlzY3ZFdkxS?= =?utf-8?B?eEV1NjB5M0hiZ3VuMzNrVmxqR3ptOGVWdEdiTGFOTUc4VFo4QW5GNU9PaE52?= =?utf-8?B?QWsrUkZHRys4MFZPemsyYWdQT3dZQ29zTUpYdkhQMlVrMVBZdGNnQW1WZEtu?= =?utf-8?B?SW9landqaHFjcHZtYUV0d0M5UjVsb1MvTndjQ3I2NnlWWFVjYnZGQkFhdDFX?= =?utf-8?B?MlEzWm9VQXpXdVpjZGRMeTN1UHlFai9aa0hkeTB5b082K1ZaaW9XbkNJdXVk?= =?utf-8?B?US8xUEFYZnYvSy92d2tOWmhhYjR6dmlwSXRwci80RGNYUHRrQmhqb04vTVBo?= =?utf-8?B?TGI5WTVqY3Q5MVI0bzhEMmQ0UTVhR1NkK1B5SXEydkR2MC9CMmpkUGNqZnc3?= =?utf-8?B?TCtrRy9xcjdZRGFKMjZ6WWVpYW9CNElOR3dhS0tBeU9VNGlMQUlHWDlXcVlo?= =?utf-8?B?TVQwQWIzNkwvdm1IdXNnUFJULzVYVDdTWllINFdjaFF4V3c3ODY3SkVEMTF4?= =?utf-8?B?SGREa0ZyaUs4dUx1d1A4ck9md1BTTGVXVHJvbkRLWVhBKzZqZHc0b3Jubnlw?= =?utf-8?B?Y01yNjA3em56Ukp2NENESlp4TWVTdVBWeWhkWFQ5Nk5sTFBxVVpYTWdVWVNN?= =?utf-8?B?d0hVbVk3TEJwMktmTDF1blUrQVlhWTZJMW50NlVqaWRFMUlXeTdDR1pld1Nq?= =?utf-8?B?TGsyOFBwRHpRWmZGVkgrZ0Q5UHJmcnJVSVFPbTZGdEZPK1hkaHg2OEc4NnhR?= =?utf-8?B?alZ4VGxXNEVBSXIvRjg0cEVRdktrWGRuNmFGTVExbWJBUVk0Z2NCOERBYW9u?= =?utf-8?B?Tm45dGhtdmN4R3phVWRXY1JGWXRkR1F6Yms4SEtNS0pPZGU0Y29oZ3BCd25s?= =?utf-8?B?REVQVGVJOUlnZjBaVTFpaGN1M0VtRjZkQk4yUFJFZWhWdEN3eGZJMTNBVEZs?= =?utf-8?B?QjVhemFRMDRHYjEyUGYrWmxvYlRvQlE3enZZL1N0RmkvelhZWEQvWHp4YStX?= =?utf-8?B?N1BPRzNhRng4TURWWkN0WWNGU0ZvZDNyN05oNDVmNkZBaDJoVzJVU3cvTGZr?= =?utf-8?B?eE1rbTdlNTRsMXE2ZHY3cEdlTEZnWlFhSGo1dWRjMXhBY0RQa1BhMkJxWFht?= =?utf-8?B?VmRJWjlsNjRZQlZacFZuUjBSNFQyZkZ3ejlDVmd3YUgzTElOck5ZMHVNUDhT?= =?utf-8?B?SStUMmRoTDlqaFRpNDlMT0gwYW04R2l4VTd2VzFwVDJCcFBkc2FTcUY0dFl1?= =?utf-8?B?R1c4RGZQZ3l0dktkT0RkTzArMXlXbG5nNlNZVmpxa2JEVzJZdnh2K3JnYWta?= =?utf-8?B?aXlPN0k5bEE4cjdNaWxNM3BVeFFWWDAxNFV1Zk9QRXZmSExQVzU4L2V2Qlpk?= =?utf-8?B?RGN0RlFKQzRYL3BMNHFFWk82Y2x5NDRRczFRNXRwSU9pUU5aTVFPQ2FUZ2ZX?= =?utf-8?B?dk4vQjU5akt3T3hBN0NiRzNqV21BeWhxb3dqT3ZYRW1QTWYzK1FWZkdnV24r?= =?utf-8?B?ZzArSHViaVZGNWZ2YmVGV05FMTVTSm1tdWZwNWd3WDl5T1dJTitxanZmcDZG?= =?utf-8?B?N3RKWEswLy95dHRSRXBQbmczR2FHWXdnaVJTYnh0QWNvU2pYQmdhclBzSWo2?= =?utf-8?B?bnZqYkpZR2RVZjU1THBvRUFKcXFGVlZGekRZc2d5emxnTVArVEQzeXhqMXJU?= =?utf-8?B?K2Z2R0dCZU81Nmp3YlhuMmJRUnRXSTJGQUdIRnR2Q2ZMTGtKOW43Q1g0bVU5?= =?utf-8?B?NlByRVV2NkZsTExvakFqTnVwNXh2eUhjU1psV1BIbURicEsxQW5UbEdFTnJF?= =?utf-8?B?c3h6dENBNnpKYmY3WXRZdzhZakY0Y3BzU05NQXN6d3pybHI1NUVHZjRWMHlv?= =?utf-8?B?Q0lLTTJEa2VZV09FMmxlZWZ0NTdXclc2MkNSOHdJbUFJbU9lM3A5OUdJenp2?= =?utf-8?B?MW5uMW5RdytKUDZ2RnBDaTZkK09RNm5oOEJWQ3lJR0wrUml5b3RmYUNFVzhu?= =?utf-8?B?Nm5yMml1VFU0YWVrVzJOUWJ6R2x0dnNQeFRoSDdwQXVNeVpUdVdhTHlDRVB6?= =?utf-8?B?dXpkcnE1amtMV2RscmVvTUlHNkY2c0ZROW9UUU9VTXdBNmdUdnNiZG1OM0xB?= =?utf-8?B?M3FGN0h2OUp0WHF5OWg0YjV1U3NHNytrMFVCVGNKSk0yU1pPZWp4WFN0TWI3?= =?utf-8?Q?rDZ4idT71Fn9JqtuXNr/irgNaJhTd3fh+hzz3RVvuE9e?= Content-Type: multipart/mixed; boundary="_004_ac128d6a08a44848e35165cface6d6b5ulbbe_" MIME-Version: 1.0 X-OriginatorOrg: ulb.be X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB8P190MB0731.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 029f7e32-c42b-4b49-855f-08db70aa762a X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2023 09:49:23.1918 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 30a5145e-75bd-4212-bb02-8ff9c0ea4ae9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qRKrxsHwsH33KIyl806Y9LT53Y60ZAtftq2giDefzxxIJspTSWNxl8rmG4bPbz3sj0XkzKXnwBja0ywVIEczzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P190MB1020 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_ac128d6a08a44848e35165cface6d6b5ulbbe_ Content-Type: multipart/alternative; boundary="_000_ac128d6a08a44848e35165cface6d6b5ulbbe_" --_000_ac128d6a08a44848e35165cface6d6b5ulbbe_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCkluIHRoZSBzZWxlY3Rpdml0eSBhbGdvcml0aG0sIHRoZSBkaXZpc2lvbiB3YXMgYXBw bGllZCBhZnRlciBhZGRpbmcgdGhlIHJlbWFpbmluZyBoaXN0b2dyYW0gYnVja2V0cyBvZiBoaXN0 b2dyYW0yIHRoYXQgZG9uJ3Qgb3ZlcmxhcCB3aXRoIGhpc3RvZ3JhbTEuDQpUaGlzIGNvdWxkIGxl YWQgdG8gcmVkdWNpbmcgc2VsZWN0aXZpdHkgYnkgaGFsZiwgZS5nLiwgaW4gdGhlIGNhc2UgdGhh dCBoaXN0b2dyYW0yIGlzIGNvbXBsZXRlbHkgcmlnaHQgb2YgaGlzdG9ncmFtMS4NClRoZSBjb3Jy ZWN0IGNhbGN1bGF0aW9uIGlzIHRvIGRpdmlkZSBieSB0d28gYmVmb3JlIGFkZGluZyB0aGUgcmVt YWluZGVyLg0KVGhpcyBwYXRjaC1maXggZG9lcyB0aGUgbmVlZGVkLg0KDQpCZXN0IHJlZ2FyZHMs DQpNYXhpbWUgU2Nob2VtYW5zDQoNCk9uIDIwLzAzLzIwMjMgMTY6MzQsIG1heGltZSB3cm90ZToN CkhpIFRvbWFzLA0KDQpBcyBhIHF1aWNrIHVwZGF0ZSwgdGhlIHBhcGVyIHJlbGF0ZWQgdG8gdGhp cyB3b3JrIGhhcyBmaW5hbGx5IGJlZW4gcHVibGlzaGVkIGluIE1hdGhlbWF0aWNzIChodHRwczov L3d3dy5tZHBpLmNvbS8yMjI3LTczOTAvMTEvNi8xMzgzKS4NCkR1cmluZyByZXZpc2lvbiB3ZSBh bHNvIGFkZGVkIGEgZmlndXJlIHNob3dpbmcgYSBjb21wYXJpc29uIG9mIG91ciBhbGdvcml0aG0g dnMgdGhlIGV4aXN0aW5nIGFsZ29yaXRobXMgaW4gT3JhY2xlLCBTUUwgU2VydmVyLCBNeVNRTCBh bmQgUG9zdGdyZVNRTCwgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBleHBlcmltZW50cyBzZWN0 aW9uIG9mIHRoZSBwYXBlci4NCkFzIGNhbiBiZSBzZWVuLCBvdXIgYWxnb3JpdGhtIG91dHBlcmZv cm1zIGV2ZW4gT3JhY2xlIGFuZCBTUUwgU2VydmVyLg0KDQpEdXJpbmcgdGhpcyByZXZpc2lvbiB3 ZSBhbHNvIGZvdW5kIGEgc21hbGwgYnVnLCBzbyB3ZSBhcmUgd29ya2luZyBvbiBhIHJldmlzaW9u IG9mIHRoZSBwYXRjaCwgd2hpY2ggZml4ZXMgdGhpcy4NCg0KDQpBbHNvLCBjYWxjX2hpc3Rfc2Vs ZWN0aXZpdHlfY29udGFpbnMgaW4gbXVsdGlyYW5nZXR5cGVzX3NlbGZ1bmNzLmMgbmVlZHMNCmEg cHJvcGVyIGNvbW1lbnQsIG5vdCBqdXN0ICJ0aGlzIGlzIGEgY29weSBmcm9tIHJhbmdldHlwZXMi Lg0KDQoNClJpZ2h0LCB0aGUgY29tbWVudCBzaG91bGQgZWxhYm9yYXRlIG1vcmUgdGhhdCB0aGUg Y29sbGVjdGVkIHN0YXRpc3RpY3MgYXJlDQpjdXJyZW50bHkgdGhhdCBzYW1lIGFzIHJhbmdldHlw ZXMgYnV0IG1heSBwb3RlbnRpYWxseSBkZXZpYXRlLg0KDQoNCg0KSG93ZXZlciwgaXQgc2VlbXMg dGhlIHR3byBmdW5jdGlvbnMgYXJlIGV4YWN0bHkgdGhlIHNhbWUuIFdvdWxkIHRoZQ0KZnVuY3Rp b25zIGRpdmVyZ2UgaW4gdGhlIGZ1dHVyZT8gSWYgbm90LCBtYXliZSB0aGVyZSBzaG91bGQgYmUg anVzdCBhDQpzaW5nbGUgc2hhcmVkIGZ1bmN0aW9uPw0KDQoNCkluZGVlZCwgaXQgaXMgcG9zc2li bGUgdGhhdCB0aGUgdHdvIGZ1bmN0aW9ucyB3aWxsIGRldmlhdGUgaWYgdGhhdCBzdGF0aXN0aWNz DQpvZiBtdWx0aXJhbmdlIHR5cGVzIHdpbGwgYmUgcmVmaW5lZC4NCg0KDQoNClJpZ2h0LCBidXQg YXJlIHRoZXJlIGFueSBzdWNoIHBsYW5zPyBBbHNvLCB3aGF0J3MgdGhlIGxpa2VsaWhvb2Qgd2Un bGwNCmFkZCBuZXcgc3RhdGlzdGljcyB0byBvbmx5IG9uZSBvZiB0aGUgcGxhY2VzIChlLmcuIGZv ciBtdWx0aXJhbmdlcyBidXQNCm5vdCBwbGFpbiByYW5nZXMpPw0KDQpJJ2Qga2VlcCBhIHNpbmds ZSBmdW5jdGlvbiB1bnRpbCB3ZSBhY3R1YWxseSBuZWVkIHR3by4gVGhhdCdzIGFsc28NCmVhc2ll ciBmb3IgbWFpbnRlbmFuY2UgLSB3aXRoIHR3byBpdCdzIGVhc3kgdG8gZml4IGEgYnVnIGluIG9u ZSBwbGFjZQ0KYW5kIGZvcmdldCBhYm91dCB0aGUgb3RoZXIsIGV0Yy4NCg0KUmVnYXJkaW5nIG91 ciBwcmV2aW91cyBkaXNjdXNzaW9uIGFib3V0IHRoZSBkdXBsaWNhdGlvbiBvZiBjYWxjX2hpc3Rf am9pbl9zZWxlY3Rpdml0eSBpbiByYW5nZXR5cGVzX3NlbGZ1bmNzLmMgYW5kIG11bHRpcmFuZ2V0 eXBlc19zZWxmdW5jcy5jLCB3ZSBjYW4gYWxzbyByZW1vdmUgdGhpcyBkdXBsaWNhdGlvbiBpbiB0 aGUgcmV2aXNpb24gaWYgbmVlZGVkLg0KTm90ZSB0aGF0IGN1cnJlbnRseSwgdGhlcmUgYXJlIG5v IGV4dGVybmFsIGZ1bmN0aW9ucyBzaGFyZWQgYmV0d2VlbiByYW5nZXR5cGVzX3NlbGZ1bmNzLmMg YW5kIG11bHRpcmFuZ2V0eXBlc19zZWxmdW5jcy5jLg0KQW55IGZ1bmN0aW9uIHRoYXQgd2FzIHVz ZWQgaW4gYm90aCBmaWxlcyB3YXMgZHVwbGljYXRlZCBhcyBhIHN0YXRpYyBmdW5jdGlvbi4NClRo ZSBmdW5jdGlvbnMgY2FsY19oaXN0X3NlbGVjdGl2aXR5X3NjYWxhciwgY2FsY19sZW5ndGhfaGlz dF9mcmFjLCBjYWxjX2hpc3Rfc2VsZWN0aXZpdHlfY29udGFpbmVkIGFuZCBjYWxjX2hpc3Rfc2Vs ZWN0aXZpdHlfY29udGFpbnMgYXJlIGV4YW1wbGVzIG9mIHRoaXMsIHdoZXJlIHRoZSBmdW5jdGlv biBpcyBpZGVudGljYWwgYnV0IGhhcyBiZWVuIGRlY2xhcmVkIHN0YXRpYyBpbiBib3RoIGZpbGVz Lg0KVGhhdCBzYWlkLCB3ZSBjYW4gcmVtb3ZlIHRoZSBkdXBsaWNhdGlvbiBvZiBjYWxjX2hpc3Rf am9pbl9zZWxlY3Rpdml0eSBpZiBpdCBzdGlsbCBuZWVkZWQuDQpXZSB3b3VsZCwgaG93ZXZlciwg cmVxdWlyZSBzb21lIGd1aWRhbmNlIGFzIHRvIHdoZXJlIHRvIHB1dCB0aGUgZXh0ZXJuYWwgZGVm aW5pdGlvbiBvZiB0aGlzIGZ1bmN0aW9uLCBhcyB0aGVyZSBkb2VzIG5vdCBhcHBlYXIgdG8gYmUg YSByYW5nZXR5cGVzX3NlbGZ1bmNzLmggaGVhZGVyLg0KU2hvdWxkIGl0IHNpbXBseSBnbyBpbnRv IHV0aWxzL3NlbGZ1bmNzLmggb3Igc2hvdWxkIHdlIGNyZWF0ZSBhIG5ldyBoZWFkZXIgZmlsZT8N Cg0KQmVzdCByZWdhcmRzLA0KTWF4aW1lIFNjaG9lbWFucw0KDQo= --_000_ac128d6a08a44848e35165cface6d6b5ulbbe_ Content-Type: text/html; charset="utf-8" Content-ID: <2C79F70423E3E740AEA05A90C7A1AAB6@EURP190.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5Pg0KSGksPGJyPg0KPGJy Pg0KSW4gdGhlIHNlbGVjdGl2aXR5IGFsZ29yaXRobSwgdGhlIGRpdmlzaW9uIHdhcyBhcHBsaWVk IGFmdGVyIGFkZGluZyB0aGUgcmVtYWluaW5nIGhpc3RvZ3JhbSBidWNrZXRzIG9mIGhpc3RvZ3Jh bTIgdGhhdCBkb24ndCBvdmVybGFwIHdpdGggaGlzdG9ncmFtMS4NCjxicj4NClRoaXMgY291bGQg bGVhZCB0byByZWR1Y2luZyBzZWxlY3Rpdml0eSBieSBoYWxmLCBlLmcuLCBpbiB0aGUgY2FzZSB0 aGF0IGhpc3RvZ3JhbTIgaXMgY29tcGxldGVseSByaWdodCBvZiBoaXN0b2dyYW0xLg0KPGJyPg0K VGhlIGNvcnJlY3QgY2FsY3VsYXRpb24gaXMgdG8gZGl2aWRlIGJ5IHR3byBiZWZvcmUgYWRkaW5n IHRoZSByZW1haW5kZXIuIDxicj4NClRoaXMgcGF0Y2gtZml4IGRvZXMgdGhlIG5lZWRlZC48YnI+ DQo8YnI+DQpCZXN0IHJlZ2FyZHMsPGJyPg0KTWF4aW1lIFNjaG9lbWFuczxicj4NCjxicj4NCjxk aXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+T24gMjAvMDMvMjAyMyAxNjozNCwgbWF4aW1lIHdy b3RlOjxicj4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0ZT0ibWlkOjUyNWVh OTU3LTg4ZmYtZTJjNi0yOTc1LTQ3NGM4NDlhYTIzNEB1bGIuYmUiPkhpIFRvbWFzLDxicj4NCjxi cj4NCkFzIGEgcXVpY2sgdXBkYXRlLCB0aGUgcGFwZXIgcmVsYXRlZCB0byB0aGlzIHdvcmsgaGFz IGZpbmFsbHkgYmVlbiBwdWJsaXNoZWQgaW4gTWF0aGVtYXRpY3MgKDxhIGNsYXNzPSJtb3otdHh0 LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHBzOi8vd3d3Lm1kcGkuY29tLzIyMjctNzM5MC8xMS82 LzEzODMiIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSI+aHR0cHM6Ly93d3cubWRwaS5jb20vMjIyNy03 MzkwLzExLzYvMTM4MzwvYT4pLjxicj4NCkR1cmluZyByZXZpc2lvbiB3ZSBhbHNvIGFkZGVkIGEg ZmlndXJlIHNob3dpbmcgYSBjb21wYXJpc29uIG9mIG91ciBhbGdvcml0aG0gdnMgdGhlIGV4aXN0 aW5nIGFsZ29yaXRobXMgaW4gT3JhY2xlLCBTUUwgU2VydmVyLCBNeVNRTCBhbmQgUG9zdGdyZVNR TCwgd2hpY2ggY2FuIGJlIGZvdW5kIGluIHRoZSBleHBlcmltZW50cyBzZWN0aW9uIG9mIHRoZSBw YXBlci48YnI+DQpBcyBjYW4gYmUgc2Vlbiwgb3VyIGFsZ29yaXRobSBvdXRwZXJmb3JtcyBldmVu IE9yYWNsZSBhbmQgU1FMIFNlcnZlci48YnI+DQo8YnI+DQpEdXJpbmcgdGhpcyByZXZpc2lvbiB3 ZSBhbHNvIGZvdW5kIGEgc21hbGwgYnVnLCBzbyB3ZSBhcmUgd29ya2luZyBvbiBhIHJldmlzaW9u IG9mIHRoZSBwYXRjaCwgd2hpY2ggZml4ZXMgdGhpcy48YnI+DQo8YnI+DQo8YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIHN0eWxlPSJjb2xvcjogIzAwN2Nm ZjsiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9ImNvbG9yOiAjMDA3Y2ZmOyI+DQo8 cHJlIGNsYXNzPSJtb3otcXVvdGUtcHJlIiB3cmFwPSIiPkFsc28sIGNhbGNfaGlzdF9zZWxlY3Rp dml0eV9jb250YWlucyBpbiBtdWx0aXJhbmdldHlwZXNfc2VsZnVuY3MuYyBuZWVkcw0KYSBwcm9w ZXIgY29tbWVudCwgbm90IGp1c3QgJnF1b3Q7dGhpcyBpcyBhIGNvcHkgZnJvbSByYW5nZXR5cGVz JnF1b3Q7Lg0KPC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlIGNsYXNzPSJtb3otcXVvdGUtcHJl IiB3cmFwPSIiPlJpZ2h0LCB0aGUgY29tbWVudCBzaG91bGQgZWxhYm9yYXRlIG1vcmUgdGhhdCB0 aGUgY29sbGVjdGVkIHN0YXRpc3RpY3MgYXJlDQpjdXJyZW50bHkgdGhhdCBzYW1lIGFzIHJhbmdl dHlwZXMgYnV0IG1heSBwb3RlbnRpYWxseSBkZXZpYXRlLg0KDQo8L3ByZT4NCjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiIHN0eWxlPSJjb2xvcjogIzAwN2NmZjsiPg0KPHByZSBjbGFzcz0ibW96LXF1 b3RlLXByZSIgd3JhcD0iIj5Ib3dldmVyLCBpdCBzZWVtcyB0aGUgdHdvIGZ1bmN0aW9ucyBhcmUg ZXhhY3RseSB0aGUgc2FtZS4gV291bGQgdGhlDQpmdW5jdGlvbnMgZGl2ZXJnZSBpbiB0aGUgZnV0 dXJlPyBJZiBub3QsIG1heWJlIHRoZXJlIHNob3VsZCBiZSBqdXN0IGENCnNpbmdsZSBzaGFyZWQg ZnVuY3Rpb24/DQo8L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxwcmUgY2xhc3M9Im1vei1xdW90ZS1w cmUiIHdyYXA9IiI+SW5kZWVkLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB0d28gZnVuY3Rpb25z IHdpbGwgZGV2aWF0ZSBpZiB0aGF0IHN0YXRpc3RpY3MNCm9mIG11bHRpcmFuZ2UgdHlwZXMgd2ls bCBiZSByZWZpbmVkLg0KDQo8L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxwcmUgY2xhc3M9Im1vei1x dW90ZS1wcmUiIHdyYXA9IiI+UmlnaHQsIGJ1dCBhcmUgdGhlcmUgYW55IHN1Y2ggcGxhbnM/IEFs c28sIHdoYXQncyB0aGUgbGlrZWxpaG9vZCB3ZSdsbA0KYWRkIG5ldyBzdGF0aXN0aWNzIHRvIG9u bHkgb25lIG9mIHRoZSBwbGFjZXMgKGUuZy4gZm9yIG11bHRpcmFuZ2VzIGJ1dA0Kbm90IHBsYWlu IHJhbmdlcyk/DQoNCkknZCBrZWVwIGEgc2luZ2xlIGZ1bmN0aW9uIHVudGlsIHdlIGFjdHVhbGx5 IG5lZWQgdHdvLiBUaGF0J3MgYWxzbw0KZWFzaWVyIGZvciBtYWludGVuYW5jZSAtIHdpdGggdHdv IGl0J3MgZWFzeSB0byBmaXggYSBidWcgaW4gb25lIHBsYWNlDQphbmQgZm9yZ2V0IGFib3V0IHRo ZSBvdGhlciwgZXRjLjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPGJyPg0KUmVnYXJkaW5nIG91ciBw cmV2aW91cyBkaXNjdXNzaW9uIGFib3V0IHRoZSBkdXBsaWNhdGlvbiBvZiBjYWxjX2hpc3Rfam9p bl9zZWxlY3Rpdml0eSBpbiByYW5nZXR5cGVzX3NlbGZ1bmNzLmMgYW5kIG11bHRpcmFuZ2V0eXBl c19zZWxmdW5jcy5jLCB3ZSBjYW4gYWxzbyByZW1vdmUgdGhpcyBkdXBsaWNhdGlvbiBpbiB0aGUg cmV2aXNpb24gaWYgbmVlZGVkLjxicj4NCk5vdGUgdGhhdCBjdXJyZW50bHksIHRoZXJlIGFyZSBu byBleHRlcm5hbCBmdW5jdGlvbnMgc2hhcmVkIGJldHdlZW4gcmFuZ2V0eXBlc19zZWxmdW5jcy5j IGFuZCBtdWx0aXJhbmdldHlwZXNfc2VsZnVuY3MuYy48YnI+DQpBbnkgZnVuY3Rpb24gdGhhdCB3 YXMgdXNlZCBpbiBib3RoIGZpbGVzIHdhcyBkdXBsaWNhdGVkIGFzIGEgc3RhdGljIGZ1bmN0aW9u Ljxicj4NClRoZSBmdW5jdGlvbnMgY2FsY19oaXN0X3NlbGVjdGl2aXR5X3NjYWxhciwgY2FsY19s ZW5ndGhfaGlzdF9mcmFjLCBjYWxjX2hpc3Rfc2VsZWN0aXZpdHlfY29udGFpbmVkIGFuZCBjYWxj X2hpc3Rfc2VsZWN0aXZpdHlfY29udGFpbnMgYXJlIGV4YW1wbGVzIG9mIHRoaXMsIHdoZXJlIHRo ZSBmdW5jdGlvbiBpcyBpZGVudGljYWwgYnV0IGhhcyBiZWVuIGRlY2xhcmVkIHN0YXRpYyBpbiBi b3RoIGZpbGVzLjxicj4NClRoYXQgc2FpZCwgd2UgY2FuIHJlbW92ZSB0aGUgZHVwbGljYXRpb24g b2YgY2FsY19oaXN0X2pvaW5fc2VsZWN0aXZpdHkgaWYgaXQgc3RpbGwgbmVlZGVkLjxicj4NCldl IHdvdWxkLCBob3dldmVyLCByZXF1aXJlIHNvbWUgZ3VpZGFuY2UgYXMgdG8gd2hlcmUgdG8gcHV0 IHRoZSBleHRlcm5hbCBkZWZpbml0aW9uIG9mIHRoaXMgZnVuY3Rpb24sIGFzIHRoZXJlIGRvZXMg bm90IGFwcGVhciB0byBiZSBhIHJhbmdldHlwZXNfc2VsZnVuY3MuaCBoZWFkZXIuPGJyPg0KU2hv dWxkIGl0IHNpbXBseSBnbyBpbnRvIHV0aWxzL3NlbGZ1bmNzLmggb3Igc2hvdWxkIHdlIGNyZWF0 ZSBhIG5ldyBoZWFkZXIgZmlsZT88YnI+DQo8YnI+DQpCZXN0IHJlZ2FyZHMsPGJyPg0KTWF4aW1l IFNjaG9lbWFuczxicj4NCjwvYmxvY2txdW90ZT4NCjxicj4NCjwvYm9keT4NCjwvaHRtbD4NCg== --_000_ac128d6a08a44848e35165cface6d6b5ulbbe_-- --_004_ac128d6a08a44848e35165cface6d6b5ulbbe_ Content-Type: text/x-patch; name="v1-0002-apply-division-before-adding-remainder.patch" Content-Description: v1-0002-apply-division-before-adding-remainder.patch Content-Disposition: attachment; filename="v1-0002-apply-division-before-adding-remainder.patch"; size=1534; creation-date="Mon, 19 Jun 2023 09:49:22 GMT"; modification-date="Mon, 19 Jun 2023 09:49:22 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSA1MzI5MTkxOWY1MzZmNmU3YjA0Y2E4N2Y0MDhlNWI5NWU3MzBkZGIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgU2Nob2VtYW5zIDxtYXhpbWUuc2Nob2VtYW5zQHVs Yi5hYy5iZT4KRGF0ZTogTW9uLCAyMCBNYXIgMjAyMyAxMTo0ODowNSAtMDQwMApTdWJqZWN0OiBb UEFUQ0hdIEFwcGx5IGRpdmlzaW9uIGJlZm9yZSBhZGRpbmcgcmVtYWluZGVyCgotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXNfc2VsZnVuY3MuYyB8IDUgKysrKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX3NlbGZ1bmNzLmMgICAgICB8IDUgKysrKy0K IDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXNfc2VsZnVuY3MuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXNfc2VsZnVuY3MuYwppbmRleCA3 YmE0YWE4YjA0Li5hZDE0Yjc4OWY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv bXVsdGlyYW5nZXR5cGVzX3NlbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211 bHRpcmFuZ2V0eXBlc19zZWxmdW5jcy5jCkBAIC0xNDEyLDExICsxNDEyLDE0IEBAIGNhbGNfaGlz dF9qb2luX3NlbGVjdGl2aXR5KFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwKIAkJcHJldl9zZWwy ID0gY3VyX3NlbDI7CiAJfQogCisJLyogUChYIDwgWSkgPSAwLjUgKiBTdW0oLi4uKSAqLworCXNl bGVjdGl2aXR5IC89IDI7CisKIAkvKiBJbmNsdWRlIHJlbWFpbmRlciBvZiBoaXN0MiBpZiBhbnkg Ki8KIAlpZiAoaiA8IG5oaXN0MikKIAkJc2VsZWN0aXZpdHkgKz0gMSAtIHByZXZfc2VsMjsKIAot CXJldHVybiBzZWxlY3Rpdml0eSAvIDI7CisJcmV0dXJuIHNlbGVjdGl2aXR5OwogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXNfc2VsZnVuY3MuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX3NlbGZ1bmNzLmMKaW5kZXggMDA3ZTE0 YmNmNi4uMTI5ZWY5NjQ4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jhbmdl dHlwZXNfc2VsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlc19z ZWxmdW5jcy5jCkBAIC0xMzQyLDExICsxMzQyLDE0IEBAIGNhbGNfaGlzdF9qb2luX3NlbGVjdGl2 aXR5KFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwKIAkJcHJldl9zZWwyID0gY3VyX3NlbDI7CiAJ fQogCisJLyogUChYIDwgWSkgPSAwLjUgKiBTdW0oLi4uKSAqLworCXNlbGVjdGl2aXR5IC89IDIK KwogCS8qIEluY2x1ZGUgcmVtYWluZGVyIG9mIGhpc3QyIGlmIGFueSAqLwogCWlmIChqIDwgbmhp c3QyKQogCQlzZWxlY3Rpdml0eSArPSAxIC0gcHJldl9zZWwyOwogCi0JcmV0dXJuIHNlbGVjdGl2 aXR5IC8gMjsKKwlyZXR1cm4gc2VsZWN0aXZpdHk7CiB9CiAKIC8qCi0tIAoyLjE3LjEKCg== --_004_ac128d6a08a44848e35165cface6d6b5ulbbe_--