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 1uJUzw-000f8i-5X for pgsql-hackers@arkaria.postgresql.org; Mon, 26 May 2025 10:24:01 +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 1uJUyu-000d4f-Vu for pgsql-hackers@arkaria.postgresql.org; Mon, 26 May 2025 10:22:57 +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 1uJUyu-000d4X-Dl for pgsql-hackers@lists.postgresql.org; Mon, 26 May 2025 10:22:56 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uJUyq-000Axv-37 for pgsql-hackers@postgresql.org; Mon, 26 May 2025 10:22:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1748254972; bh=SC7k/xgSYqCgkCj2qGucAiwWMdAICyhzvFu5/HlU3ts=; h=From:In-Reply-To:References:Date:Cc:To:Message-ID:Subject: User-Agent:From; b=X5odF2hgLzKLKnPohq+ifLDqiu+CVJmfBAdECMq3ibmYYjAtgS1Maty9SOdAqc1YM HWhDpHvAmv69jKLRt4vRANQH21ik8P/bMd3vh8JQau2DgUpU5oNxaW+XUMGgYNV08R 66I+YhQ6fbsQ+P0qhnVtGsa3Qaf6XZbJPV5KzYNxdqFfcXD5u1rik4/+v0a7xX4k/q sXRWYCaxq8Jw86R3tVtBVK3+9wSbWRIuZLtu8esY9yDMyFRC0Lc2lgnBqXdjnUByWe aTF4zM42y6pozLowLuqXySvMMSo2L39LvDuCeoY8ChDgfL23pVz4siSnm+/CqfCZBm e9OVVvEtF6Hgw== Received: from sogo.postgrespro.ru (sogo.l.postgrespro.ru [192.168.2.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) by mail.postgrespro.ru (Postfix/587) with ESMTPS id 1D2BF60759; Mon, 26 May 2025 13:22:52 +0300 (MSK) From: "Vitaly Davydov" Content-Type: multipart/mixed; boundary="----=_=-_OpenGroupware_org_NGMime-11293-1748254971.998619-57------" In-Reply-To: X-Forward: 93.174.131.138 References: <1d12d2-67235980-35-19a406a0@63439497> <683f3c82-d38e-436d-88fd-27722af62005@vondra.me> <8679fea7-94ce-4a52-8e48-1a8cd0857fcb@vondra.me> <135e8-675c4600-21-304d7f40@228322535> <1538a2-67c5c700-7-77ec5a80@179382871> <27589a-680a4b80-6d-6e07880@117064404> <3ea6a1-68150580-1-7b53be0@80017081> <309f08-682ca380-25-139bf240@62751029> Date: Mon, 26 May 2025 13:22:51 +0300 Cc: "Alexander Korotkov" , "pgsql-hackers" , "Masahiko Sawada" , tomas@vondra.me To: "Amit Kapila" MIME-Version: 1.0 Message-ID: <2c1d-68344100-b7-3411b8c0@256938178> Subject: =?utf-8?q?Re=3A?= Slot's =?utf-8?q?restart=5Flsn?= may point to removed WAL segment after hard restart unexpectedly User-Agent: SOGoMail 5.12.0 X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/05/26 04:13:00 #27595448 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------=_=-_OpenGroupware_org_NGMime-11293-1748254971.998619-57------ Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Length: 2871 Dear Alexander, Amit, All > Amit wrote: > > Is my understanding correct that we need 0001 because > > PhysicalConfirmReceivedLocation() doesn't save the slot to disk aft= er > > changing the slot's restart=5Flsn? > > Yes. Also, even if it would save slot to the disk, there is still > race condition that concurrent checkpoint could use updated value fro= m > the shared memory to clean old WAL segments, and then crash happens > before we managed to write the slot to the disk. > > How can that happen, if we first write the updated value to disk and > then update the shared memory as we do in > LogicalConfirmReceivedLocation? I guess, that the problem with logical slots still exist. Please, see t= he tap test: src/test/recovery/t/046=5Flogical=5Fslot.pl from the v6 version o= f the patch. A race condition may happen when logical slot's restart=5Flsn was chang= ed but not yet written to the disk. Imagine, there is another physical slot which = is advanced at this moment. It recomputes oldest min LSN and takes into ac= count changed but not saved to disk restart=5Flsn of the logical slot. We com= e to the situation when the WAL segment for the logical slot's restart=5Flsn may= be truncated after immediate restart. I'm not sure what may happen with two checkpoints which execute in para= llel, but I would say that the patch 0001 guarantees that every checkpoint run wi= ll trim the WAL segments based on the already saved on disk restart LSNs of slo= ts. The rule to trim the WAL by saved slot's restart=5Flsn will not be violated= . > Amit wrote: > As per my understanding, neither the xmin nor the LSN problem exists > for logical slots. I am pointing this out to indicate we may need to > think of a different solution for physical slots, if these are > problems only for physical slots. As I've already told, it indirectly affects the logical slots as well. > Alexander wrote: > I spend more time on this. The next revision is attached. It > contains revised comments and other cosmetic changes. I'm going to > backpatch 0001 to all supported branches, and 0002 to 17 where > injection points were introduced. Alexander, thank you for polishing the patch. Just my opinion, I would = prefer to put tests before the fix due to reason that you can reproduce the pr= oblem when simply checkout the commit with tests. Once, the tests are after t= he fix you are not able to do this way. Anyway, I'm ok with your changes. Than= k you! I did some changes in the patch (v7 is attached): * Removed modules/test=5Freplslot=5Frequired=5Flsn directory. It is not= needed anymore, once you've moved test files to another directory. * Renamed tests to 046=5Fcheckpoint=5Flogical=5Fslot.pl, 047=5Fcheckpoi= nt=5Fphysical=5Fslot.pl. I believe, such names are more descriptive. Please, consider these changes. With best regards, Vitaly ------=_=-_OpenGroupware_org_NGMime-11293-1748254971.998619-57------ Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v7-0003-Remove-redundant-ReplicationSlotsComputeRequiredLSN-.patch" Content-Length: 8999 RnJvbSBiODVmZmQ1NmViMWUyOGQ1ZTYxZTYyMjFiYTk3ZTdlM2JlYTdhOTgyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBw b3N0Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAyNCBNYXkgMjAyNSAxMzozNDozNiArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMy8zXSBSZW1vdmUgcmVkdW5kYW50IFJlcGxpY2F0aW9uU2xvdHND b21wdXRlUmVxdWlyZWRMU04gY2FsbHMKClRoZSBmdW5jdGlvbiBSZXBsaWNhdGlvblNsb3Rz Q29tcHV0ZVJlcXVpcmVkTFNOIGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZQpvbGRlc3Qgc2xv dHMnIHJlcXVpcmVkIExTTi4gSXQgaXMgY2FsbGVkIGV2ZXJ5IHRpbWUgd2hlbiByZXN0YXJ0 X2xzbgp2YWx1ZSBvZiBhbnkgc2xvdCBpcyBjaGFuZ2VkIChmb3IgZXhhbXBsZSwgd2hlbiBh IHNsb3QgaXMgYWR2YW5jaW5nKS4KVGhlIHNsb3QncyBvbGRlc3QgcmVxdWlyZWQgTFNOIGlz IHVzZWQgdG8gcmVtb3RlIG9sZCBXQUwgc2VnbWVudHMgaW4gdHdvCnBsYWNlcyAtIHdoZW4g Y2hlY2twb2ludCBvciByZXN0YXJ0IHBvaW50IGlzIGNyZWF0ZWQgKENyZWF0ZUNoZWNrUG9p bnQsCkNyZWF0ZVJlc3RhcnRQb2ludCBmdW5jdGlvbnMpLiBPbGQgV0FMIHNlZ21lbnRzIHNl ZW1zIHRvIGJlIHRydW5jYXRlZCBpbgp0aGVzZSB0d28gZnVuY3Rpb25zIG9ubHkuCgpUaGUg aWRlYSBvZiB0aGUgcGF0Y2ggaXMgdG8gY2FsbCBSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJl cXVpcmVkTFNOIGluCkNyZWF0ZUNoZWNrUG9pbnQgb3IgQ3JlYXRlUmVzdGFydFBvaW50IGZ1 bmN0aW9ucyBvbmx5LCBiZWZvcmUgY2FsbCBvZgpSZW1vdmVPbGRYbG9nRmlsZXMgZnVuY3Rp b24gd2hlcmUgb2xkIFdBTCBzZWdtZW50cyBhcmUgcmVtb3ZlZC4gVGhlcmUKaXMgbm8gb2J2 aW91cyBuZWVkIHRvIHJlY2FsY3VsYXRlIG9sZGVzdCByZXF1aXJlZCBMU04gZXZlcnkgdGlt ZSB3aGVuIGEKc2xvdCdzIHJlc3RhcnRfbHNuIGlzIGNoYW5nZWQuCgpUaGUgdmFsdWUgb2Yg dGhlIG9sZGVzdCByZXF1aXJlZCBsc24gY2FuIGFmZmVjdCBvbiBzbG90IGludmFsaWRhdGlv bi4KVGhlIGZ1bmN0aW9uIEludmFsaWRhdGVPYnNvbGV0ZVJlcGxpY2F0aW9uU2xvdHMgd2l0 aCBub24gemVybyBzZWNvbmQKcGFyYW1ldGVyIChvbGRlc3RTZWdubykgaXMgY2FsbGVkIGlu IENyZWF0ZUNoZWNrUG9pbnQsCkNyZWF0ZVJlc3RhcnRQb2ludCBmdW5jdGlvbnMgb25seSB3 aGVyZSBzbG90IGludmFsaWRhdGlvbiBvY2N1cnMgd2l0aApyZWFzb24gUlNfSU5WQUxfV0FM X1JFTU9WRUQuIE9uY2Ugd2UgdXBkYXRlIHRoZSBvbGRlc3Qgc2xvdHMnIHJlcXVpcmVkCmxz biBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZXNlIGZ1bmN0aW9ucywgdGhlIHByb3Bvc2VkIHBh dGNoIHNob3VsZCBub3QKYnJlYWsgdGhlIGJlaGF2aW91ciBvZiBzbG90IGludmFsaWRhdGlv biBmdW5jdGlvbiBpbiB0aGlzIGNhc2UuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jICAgICAgICAgIHwgNCArKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2xvZ2ljYWwuYyAgfCAxIC0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvc2xvdHN5bmMuYyB8IDQgLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5j ICAgICAgICAgICAgIHwgNSAtLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1 bmNzLmMgICAgICAgIHwgMiAtLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMgICAgICAgIHwgMSAtCiA2IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMTMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDBhN2Y3 YTcxZDhiLi5iZGZkMGE1OWFiNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpA QCAtNzMyNCw2ICs3MzI0LDcgQEAgQ3JlYXRlQ2hlY2tQb2ludChpbnQgZmxhZ3MpCiAJICog bWlnaHQgYmUgYWR2YW5jZWQgY29uY3VycmVudGx5LCBzbyB3ZSBjYWxsIHRoaXMgYmVmb3Jl CiAJICogQ2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHMoKSBzeW5jaHJvbml6ZXMgcmVwbGlj YXRpb24gc2xvdHMuCiAJICovCisJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExT TigpOwogCXNsb3RzTWluUmVxTFNOID0gWExvZ0dldFJlcGxpY2F0aW9uU2xvdE1pbmltdW1M U04oKTsKIAogCS8qCkBAIC03NTI4LDYgKzc1MjksNyBAQCBDcmVhdGVDaGVja1BvaW50KGlu dCBmbGFncykKIAkJICogY2xlYW51cC4gIFRoZW4sIHdlIG11c3Qgc3luY2hyb25pemUgdGhl IHJlcGxpY2F0aW9uIHNsb3RzIGFnYWluIGluCiAJCSAqIG9yZGVyIHRvIG1ha2UgdGhpcyBM U04gc2FmZSB0byB1c2UuCiAJCSAqLworCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVp cmVkTFNOKCk7CiAJCXNsb3RzTWluUmVxTFNOID0gWExvZ0dldFJlcGxpY2F0aW9uU2xvdE1p bmltdW1MU04oKTsKIAkJQ2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHMoc2h1dGRvd24pOwog CkBAIC03OTAxLDYgKzc5MDMsNyBAQCBDcmVhdGVSZXN0YXJ0UG9pbnQoaW50IGZsYWdzKQog CSAqIG1pZ2h0IGJlIGFkdmFuY2VkIGNvbmN1cnJlbnRseSwgc28gd2UgY2FsbCB0aGlzIGJl Zm9yZQogCSAqIENoZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKCkgc3luY2hyb25pemVzIHJl cGxpY2F0aW9uIHNsb3RzLgogCSAqLworCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWly ZWRMU04oKTsKIAlzbG90c01pblJlcUxTTiA9IFhMb2dHZXRSZXBsaWNhdGlvblNsb3RNaW5p bXVtTFNOKCk7CiAKIAlpZiAobG9nX2NoZWNrcG9pbnRzKQpAQCAtODAwMSw2ICs4MDA0LDcg QEAgQ3JlYXRlUmVzdGFydFBvaW50KGludCBmbGFncykKIAkJICogY2xlYW51cC4gIFRoZW4s IHdlIG11c3Qgc3luY2hyb25pemUgdGhlIHJlcGxpY2F0aW9uIHNsb3RzIGFnYWluIGluCiAJ CSAqIG9yZGVyIHRvIG1ha2UgdGhpcyBMU04gc2FmZSB0byB1c2UuCiAJCSAqLworCQlSZXBs aWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7CiAJCXNsb3RzTWluUmVxTFNOID0g WExvZ0dldFJlcGxpY2F0aW9uU2xvdE1pbmltdW1MU04oKTsKIAkJQ2hlY2tQb2ludFJlcGxp Y2F0aW9uU2xvdHMoZmxhZ3MgJiBDSEVDS1BPSU5UX0lTX1NIVVRET1dOKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYwppbmRleCAwODFlNjU5Mzcy Mi4uMzRlOTczMzkzYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbC5jCkBAIC0xOTI1LDcgKzE5MjUsNiBAQCBMb2dpY2FsQ29uZmlybVJlY2VpdmVk TG9jYXRpb24oWExvZ1JlY1B0ciBsc24pCiAJCQlTcGluTG9ja1JlbGVhc2UoJk15UmVwbGlj YXRpb25TbG90LT5tdXRleCk7CiAKIAkJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWly ZWRYbWluKGZhbHNlKTsKLQkJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04o KTsKIAkJfQogCX0KIAllbHNlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3Nsb3RzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3Nsb3RzeW5jLmMKaW5kZXggNjU2ZTY2ZTBhZTAuLjMwNjYyYzA5Mjc1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCkBAIC0zMzUsNyArMzM1 LDYgQEAgdXBkYXRlX2xvY2FsX3N5bmNlZF9zbG90KFJlbW90ZVNsb3QgKnJlbW90ZV9zbG90 LCBPaWQgcmVtb3RlX2RiaWQsCiAJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwog CiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRYbWluKGZhbHNlKTsKLQkJUmVw bGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOwogCX0KIAogCXJldHVybiB1cGRh dGVkX2NvbmZpZyB8fCB1cGRhdGVkX3htaW5fb3JfbHNuOwpAQCAtNTAyLDkgKzUwMSw2IEBA IHJlc2VydmVfd2FsX2Zvcl9sb2NhbF9zbG90KFhMb2dSZWNQdHIgcmVzdGFydF9sc24pCiAJ CXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKIAkJU3BpbkxvY2tSZWxl YXNlKCZzbG90LT5tdXRleCk7CiAKLQkJLyogUHJldmVudCBXQUwgcmVtb3ZhbCBhcyBmYXN0 IGFzIHBvc3NpYmxlICovCi0JCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04o KTsKLQogCQlYTEJ5dGVUb1NlZyhzbG90LT5kYXRhLnJlc3RhcnRfbHNuLCBzZWdubywgd2Fs X3NlZ21lbnRfc2l6ZSk7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA2 MDBiODdmYTljYi4uZGQxOGZlMTBmN2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAg LTEwMDgsNyArMTAwOCw2IEBAIFJlcGxpY2F0aW9uU2xvdERyb3BQdHIoUmVwbGljYXRpb25T bG90ICpzbG90KQogCSAqIGxpbWl0cy4KIAkgKi8KIAlSZXBsaWNhdGlvblNsb3RzQ29tcHV0 ZVJlcXVpcmVkWG1pbihmYWxzZSk7Ci0JUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJl ZExTTigpOwogCiAJLyoKIAkgKiBJZiByZW1vdmluZyB0aGUgZGlyZWN0b3J5IGZhaWxzLCB0 aGUgd29yc3QgdGhpbmcgdGhhdCB3aWxsIGhhcHBlbiBpcwpAQCAtMTQ5NCw5ICsxNDkzLDYg QEAgUmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2b2lkKQogCQlzbG90LT5kYXRhLnJlc3Rh cnRfbHNuID0gcmVzdGFydF9sc247CiAJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgp OwogCi0JCS8qIHByZXZlbnQgV0FMIHJlbW92YWwgYXMgZmFzdCBhcyBwb3NzaWJsZSAqLwot CQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7Ci0KIAkJLyoKIAkJICog SWYgYWxsIHJlcXVpcmVkIFdBTCBpcyBzdGlsbCB0aGVyZSwgZ3JlYXQsIG90aGVyd2lzZSBy ZXRyeS4gVGhlCiAJCSAqIHNsb3Qgc2hvdWxkIHByZXZlbnQgZnVydGhlciByZW1vdmFsIG9m IFdBTCwgdW5sZXNzIHRoZXJlJ3MgYQpAQCAtMjAxNCw3ICsyMDEwLDYgQEAgcmVzdGFydDoK IAlpZiAoaW52YWxpZGF0ZWQpCiAJewogCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVp cmVkWG1pbihmYWxzZSk7Ci0JCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04o KTsKIAl9CiAKIAlyZXR1cm4gaW52YWxpZGF0ZWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3RmdW5jcy5jCmluZGV4IDM2Y2MyZWQ0ZTQ0Li4zMzAwZmI5YjFjOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKQEAgLTU4Myw3ICs1ODMsNiBAQCBwZ19yZXBsaWNh dGlvbl9zbG90X2FkdmFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAkgKiBhZHZhbmNpbmcgcG90 ZW50aWFsbHkgZG9uZS4KIAkgKi8KIAlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVk WG1pbihmYWxzZSk7Ci0JUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOwog CiAJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOwogCkBAIC04MTksNyArODE4LDYgQEAgY29w eV9yZXBsaWNhdGlvbl9zbG90KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGxvZ2lj YWxfc2xvdCkKIAogCQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKIAkJUmVwbGljYXRp b25TbG90c0NvbXB1dGVSZXF1aXJlZFhtaW4oZmFsc2UpOwotCQlSZXBsaWNhdGlvblNsb3Rz Q29tcHV0ZVJlcXVpcmVkTFNOKCk7CiAJCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKIAogI2lm ZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMKaW5kZXggZDc1MWQzNDI5NWQuLmRmZjc0OWYwMGE4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi93YWxzZW5kZXIuYwpAQCAtMjM4NCw3ICsyMzg0LDYgQEAgUGh5c2ljYWxDb25maXJt UmVjZWl2ZWRMb2NhdGlvbihYTG9nUmVjUHRyIGxzbikKIAlpZiAoY2hhbmdlZCkKIAl7CiAJ CVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOwotCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0 ZVJlcXVpcmVkTFNOKCk7CiAJCVBoeXNpY2FsV2FrZXVwTG9naWNhbFdhbFNuZCgpOwogCX0K IAotLSAKMi4zNC4xCgo= ------=_=-_OpenGroupware_org_NGMime-11293-1748254971.998619-57------ Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v7-0002-Add-TAP-tests-to-check-replication-slot-advance-duri.patch" Content-Length: 18870 RnJvbSBjOTc4Y2M4ODg0ODYxNTY3MGZjZTY2N2M4M2NkYTNmZTg3NGQ4MGMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBw b3N0Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAyNCBNYXkgMjAyNSAxMzoyNjoyOCArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMi8zXSBBZGQgVEFQIHRlc3RzIHRvIGNoZWNrIHJlcGxpY2F0aW9u IHNsb3QgYWR2YW5jZSBkdXJpbmcKIHRoZSBjaGVja3BvaW50CgpUaGUgbmV3IHRlc3RzIHZl cmlmeSB0aGF0IGxvZ2ljYWwgYW5kIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGFyZSBz dGlsbAp2YWxpZCBhZnRlciBhbiBpbW1lZGlhdGUgcmVzdGFydCBvbiBjaGVja3BvaW50IGNv bXBsZXRpb24gd2hlbiB0aGUgc2xvdCB3YXMKYWR2YW5jZWQgZHVyaW5nIHRoZSBjaGVja3Bv aW50LgoKVGhpcyBjb21taXQgaW50cm9kdWNlcyB0d28gbmV3IGluamVjdGlvbiBwb2ludHMg dG8gbWFrZSB0aGVzZSB0ZXN0cyBwb3NzaWJsZToKCiogY2hlY2twb2ludC1iZWZvcmUtb2xk LXdhbC1yZW1vdmFsIC0gdHJpZ2dlcmVkIGluIHRoZSBjaGVja3BvaW50ZXIgcHJvY2Vzcwog IGp1c3QgYmVmb3JlIG9sZCBXQUwgc2VnbWVudHMgY2xlYW51cDsKKiBsb2dpY2FsLXJlcGxp Y2F0aW9uLXNsb3QtYWR2YW5jZS1zZWdtZW50IC0gdHJpZ2dlcmVkIGluCiAgTG9naWNhbENv bmZpcm1SZWNlaXZlZExvY2F0aW9uKCkgd2hlbiByZXN0YXJ0X2xzbiB3YXMgY2hhbmdlZCBl bm91Z2ggdG8KICBwb2ludCB0byB0aGUgbmV4dCBXQUwgc2VnbWVudC4KCkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC8xZDEyZDItNjcyMzU5ODAtMzUtMTlhNDA2YTAl NDA2MzQzOTQ5NwpBdXRob3I6IFZpdGFseSBEYXZ5ZG92IDx2LmRhdnlkb3ZAcG9zdGdyZXNw cm8ucnU+CkF1dGhvcjogVG9tYXMgVm9uZHJhIDx0b21hc0B2b25kcmEubWU+ClJldmlld2Vk LWJ5OiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPgpCYWNrcGF0 Y2gtdGhyb3VnaDogMTcKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMg ICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9s b2dpY2FsLmMgICAgIHwgIDE4ICsrKwogc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQg ICAgICAgICAgICAgICAgIHwgICAyICsKIC4uLi9yZWNvdmVyeS90LzA0Nl9jaGVja3BvaW50 X2xvZ2ljYWxfc2xvdC5wbCB8IDEzOSArKysrKysrKysrKysrKysrKysKIC4uLi90LzA0N19j aGVja3BvaW50X3BoeXNpY2FsX3Nsb3QucGwgICAgICAgICB8IDEzMyArKysrKysrKysrKysr KysrKwogNSBmaWxlcyBjaGFuZ2VkLCAyOTYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L3JlY292ZXJ5L3QvMDQ2X2NoZWNrcG9pbnRfbG9naWNhbF9zbG90 LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNDdfY2hlY2tw b2ludF9waHlzaWNhbF9zbG90LnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmlu ZGV4IGEwZTU4OWU5YzRiLi4wYTdmN2E3MWQ4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2cuYwpAQCAtNzUwOSw2ICs3NTA5LDEwIEBAIENyZWF0ZUNoZWNrUG9pbnQoaW50IGZs YWdzKQogCWlmIChQcmlvclJlZG9QdHIgIT0gSW52YWxpZFhMb2dSZWNQdHIpCiAJCVVwZGF0 ZUNoZWNrUG9pbnREaXN0YW5jZUVzdGltYXRlKFJlZG9SZWNQdHIgLSBQcmlvclJlZG9QdHIp OwogCisjaWZkZWYgVVNFX0lOSkVDVElPTl9QT0lOVFMKKwlJTkpFQ1RJT05fUE9JTlQoImNo ZWNrcG9pbnQtYmVmb3JlLW9sZC13YWwtcmVtb3ZhbCIsIE5VTEwpOworI2VuZGlmCisKIAkv KgogCSAqIERlbGV0ZSBvbGQgbG9nIGZpbGVzLCB0aG9zZSBubyBsb25nZXIgbmVlZGVkIGZv ciBsYXN0IGNoZWNrcG9pbnQgdG8KIAkgKiBwcmV2ZW50IHRoZSBkaXNrIGhvbGRpbmcgdGhl IHhsb2cgZnJvbSBncm93aW5nIGZ1bGwuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbG9naWNhbC5jCmluZGV4IDZiMzk5NTEzM2UyLi4wODFlNjU5MzcyMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTI5LDYgKzI5 LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3Qu aCIKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImFjY2Vz cy94bG9ndXRpbHMuaCIKICNpbmNsdWRlICJmbWdyLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCkBAIC00MSw2ICs0Miw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5o IgorI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUgInV0aWxz L2ludmFsLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKIApAQCAtMTgyNSw5ICsx ODI3LDEzIEBAIExvZ2ljYWxDb25maXJtUmVjZWl2ZWRMb2NhdGlvbihYTG9nUmVjUHRyIGxz bikKIAl7CiAJCWJvb2wJCXVwZGF0ZWRfeG1pbiA9IGZhbHNlOwogCQlib29sCQl1cGRhdGVk X3Jlc3RhcnQgPSBmYWxzZTsKKwkJWExvZ1JlY1B0cglyZXN0YXJ0X2xzbiBwZ19hdHRyaWJ1 dGVfdW51c2VkKCk7CiAKIAkJU3BpbkxvY2tBY3F1aXJlKCZNeVJlcGxpY2F0aW9uU2xvdC0+ bXV0ZXgpOwogCisJCS8qIHJlbWVtYmVyIHRoZSBvbGQgcmVzdGFydCBsc24gKi8KKwkJcmVz dGFydF9sc24gPSBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbjsKKwogCQkv KgogCQkgKiBQcmV2ZW50IG1vdmluZyB0aGUgY29uZmlybWVkX2ZsdXNoIGJhY2t3YXJkcywg YXMgdGhpcyBjb3VsZCBsZWFkIHRvCiAJCSAqIGRhdGEgZHVwbGljYXRpb24gaXNzdWVzIGNh dXNlZCBieSByZXBsaWNhdGluZyBhbHJlYWR5IHJlcGxpY2F0ZWQKQEAgLTE4ODksNiArMTg5 NSwxOCBAQCBMb2dpY2FsQ29uZmlybVJlY2VpdmVkTG9jYXRpb24oWExvZ1JlY1B0ciBsc24p CiAJCSAqLwogCQlpZiAodXBkYXRlZF94bWluIHx8IHVwZGF0ZWRfcmVzdGFydCkKIAkJewor I2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJCQlYTG9nU2VnTm8Jc2VnMSwKKwkJCQkJ CXNlZzI7CisKKwkJCVhMQnl0ZVRvU2VnKHJlc3RhcnRfbHNuLCBzZWcxLCB3YWxfc2VnbWVu dF9zaXplKTsKKwkJCVhMQnl0ZVRvU2VnKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3Rh cnRfbHNuLCBzZWcyLCB3YWxfc2VnbWVudF9zaXplKTsKKworCQkJLyogdHJpZ2dlciBpbmpl Y3Rpb24gcG9pbnQsIGJ1dCBvbmx5IGlmIHNlZ21lbnQgY2hhbmdlcyAqLworCQkJaWYgKHNl ZzEgIT0gc2VnMikKKwkJCQlJTkpFQ1RJT05fUE9JTlQoImxvZ2ljYWwtcmVwbGljYXRpb24t c2xvdC1hZHZhbmNlLXNlZ21lbnQiLCBOVUxMKTsKKyNlbmRpZgorCiAJCQlSZXBsaWNhdGlv blNsb3RNYXJrRGlydHkoKTsKIAkJCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKIAkJCWVsb2co REVCVUcxLCAidXBkYXRlZCB4bWluOiAldSByZXN0YXJ0OiAldSIsIHVwZGF0ZWRfeG1pbiwg dXBkYXRlZF9yZXN0YXJ0KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29u LmJ1aWxkIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKaW5kZXggY2I5ODM3NjZj NjcuLjkyNDI5ZDI4NDAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5i dWlsZAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZApAQCAtNTQsNiArNTQs OCBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wNDNfbm9fY29udHJlY29yZF9zd2l0Y2gucGwn LAogICAgICAgJ3QvMDQ0X2ludmFsaWRhdGVfaW5hY3RpdmVfc2xvdHMucGwnLAogICAgICAg J3QvMDQ1X2FyY2hpdmVfcmVzdGFydHBvaW50LnBsJywKKyAgICAgICd0LzA0Nl9jaGVja3Bv aW50X2xvZ2ljYWxfc2xvdC5wbCcsCisgICAgICAndC8wNDdfY2hlY2twb2ludF9waHlzaWNh bF9zbG90LnBsJwogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNv dmVyeS90LzA0Nl9jaGVja3BvaW50X2xvZ2ljYWxfc2xvdC5wbCBiL3NyYy90ZXN0L3JlY292 ZXJ5L3QvMDQ2X2NoZWNrcG9pbnRfbG9naWNhbF9zbG90LnBsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNDI2NWM0YTZhNQotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDQ2X2NoZWNrcG9pbnRfbG9naWNhbF9zbG90LnBsCkBA IC0wLDAgKzEsMTM5IEBACisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMKKyMgVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBjYXNl IHdoZW4gdGhlIGxvZ2ljYWwgc2xvdCBpcyBhZHZhbmNlZCBkdXJpbmcKKyMgY2hlY2twb2lu dC4gVGhlIHRlc3QgY2hlY2tzIHRoYXQgdGhlIGxvZ2ljYWwgc2xvdCdzIHJlc3RhcnRfbHNu IHN0aWxsIHJlZmVycworIyB0byBhbiBleGlzdGVkIFdBTCBzZWdtZW50IGFmdGVyIGltbWVk aWF0ZSByZXN0YXJ0LgorIwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAn YWxsJzsKKwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM7CisKK3VzZSBUZXN0OjpNb3JlOworCitpZiAoJEVOVntlbmFibGVf aW5qZWN0aW9uX3BvaW50c30gbmUgJ3llcycpCit7CisJcGxhbiBza2lwX2FsbCA9PiAnSW5q ZWN0aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQnOworfQorCitteSAo JG5vZGUsICRyZXN1bHQpOworCiskbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXIt Pm5ldygnbWlrZScpOworJG5vZGUtPmluaXQ7Ciskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3Rn cmVzcWwuY29uZicsCisJInNoYXJlZF9wcmVsb2FkX2xpYnJhcmllcyA9ICdpbmplY3Rpb25f cG9pbnRzJyIpOworJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAid2Fs X2xldmVsID0gJ2xvZ2ljYWwnIik7Ciskbm9kZS0+c3RhcnQ7Ciskbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHEoQ1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzKSk7CisK KyMgQ3JlYXRlIGEgc2ltcGxlIHRhYmxlIHRvIGdlbmVyYXRlIGRhdGEgaW50by4KKyRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe2NyZWF0ZSB0YWJsZSB0IChpZCBzZXJpYWwg cHJpbWFyeSBrZXksIGIgdGV4dCl9KTsKKworIyBDcmVhdGUgdGhlIHR3byBzbG90cyB3ZSds bCBuZWVkLgorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7c2VsZWN0IHBnX2Ny ZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3Nsb3RfbG9naWNhbCcsICd0ZXN0X2Rl Y29kaW5nJyl9CispOworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7c2VsZWN0 IHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzbG90X3BoeXNpY2FsJywg dHJ1ZSl9KTsKKworIyBBZHZhbmNlIGJvdGggc2xvdHMgdG8gdGhlIGN1cnJlbnQgcG9zaXRp b24ganVzdCB0byBoYXZlIGV2ZXJ5dGhpbmcgInZhbGlkIi4KKyRub2RlLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwlxe3NlbGVjdCBjb3VudCgqKSBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9n ZXRfY2hhbmdlcygnc2xvdF9sb2dpY2FsJywgbnVsbCwgbnVsbCl9CispOworJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7c2VsZWN0IHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2 YW5jZSgnc2xvdF9waHlzaWNhbCcsIHBnX2N1cnJlbnRfd2FsX2xzbigpKX0KKyk7CisKKyMg UnVuIGNoZWNrcG9pbnQgdG8gZmx1c2ggY3VycmVudCBzdGF0ZSB0byBkaXNrIGFuZCBzZXQg YSBiYXNlbGluZS4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtjaGVja3BvaW50 fSk7CisKKyMgR2VuZXJhdGUgc29tZSB0cmFuc2FjdGlvbnMgdG8gZ2V0IFJVTk5JTkdfWEFD VFMuCitteSAkeGFjdHMgPSAkbm9kZS0+YmFja2dyb3VuZF9wc3FsKCdwb3N0Z3JlcycpOwor JHhhY3RzLT5xdWVyeV91bnRpbCgKKwlxci9ydW5feGFjdHMvLAorCXEoXGVjaG8gcnVuX3hh Y3RzCitTRUxFQ1QgMSBcd2F0Y2ggMC4xCitccQorKSk7CisKKyMgSW5zZXJ0IDJNIHJvd3M7 IHRoYXQncyBhYm91dCAyNjBNQiAofjIwIHNlZ21lbnRzKSB3b3J0aCBvZiBXQUwuCiskbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtpbnNlcnQgaW50byB0IChiKSBzZWxlY3Qg bWQ1KGk6OnRleHQpIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMDAwMCkgcyhpKX0KKyk7 CisKKyMgUnVuIGFub3RoZXIgY2hlY2twb2ludCB0byBzZXQgYSBuZXcgcmVzdG9yZSBMU04u Ciskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7Y2hlY2twb2ludH0pOworCisjIEFu b3RoZXIgMk0gcm93czsgdGhhdCdzIGFib3V0IDI2ME1CICh+MjAgc2VnbWVudHMpIHdvcnRo IG9mIFdBTC4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe2luc2VydCBpbnRv IHQgKGIpIHNlbGVjdCBtZDUoaTo6dGV4dCkgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAw MDAwKSBzKGkpfQorKTsKKworIyBSdW4gYW5vdGhlciBjaGVja3BvaW50LCB0aGlzIHRpbWUg aW4gdGhlIGJhY2tncm91bmQsIGFuZCBtYWtlIGl0IHdhaXQKKyMgb24gdGhlIGluamVjdGlv biBwb2ludCkgc28gdGhhdCB0aGUgY2hlY2twb2ludCBzdG9wcyByaWdodCBiZWZvcmUKKyMg cmVtb3Zpbmcgb2xkIFdBTCBzZWdtZW50cy4KK25vdGUoJ3N0YXJ0aW5nIGNoZWNrcG9pbnRc bicpOworCitteSAkY2hlY2twb2ludCA9ICRub2RlLT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3Rn cmVzJyk7CiskY2hlY2twb2ludC0+cXVlcnlfc2FmZSgKKwlxKHNlbGVjdCBpbmplY3Rpb25f cG9pbnRzX2F0dGFjaCgnY2hlY2twb2ludC1iZWZvcmUtb2xkLXdhbC1yZW1vdmFsJywnd2Fp dCcpKQorKTsKKyRjaGVja3BvaW50LT5xdWVyeV91bnRpbCgKKwlxci9zdGFydGluZ19jaGVj a3BvaW50LywKKwlxKFxlY2hvIHN0YXJ0aW5nX2NoZWNrcG9pbnQKK2NoZWNrcG9pbnQ7Citc cQorKSk7CisKKyMgV2FpdCB1bnRpbCB0aGUgY2hlY2twb2ludCBzdG9wcyByaWdodCBiZWZv cmUgcmVtb3ZpbmcgV0FMIHNlZ21lbnRzLgorbm90ZSgnd2FpdGluZyBmb3IgaW5qZWN0aW9u X3BvaW50XG4nKTsKKyRub2RlLT53YWl0X2Zvcl9ldmVudCgnY2hlY2twb2ludGVyJywgJ2No ZWNrcG9pbnQtYmVmb3JlLW9sZC13YWwtcmVtb3ZhbCcpOworbm90ZSgnaW5qZWN0aW9uX3Bv aW50IGlzIHJlYWNoZWQnKTsKKworIyBUcnkgdG8gYWR2YW5jZSB0aGUgbG9naWNhbCBzbG90 LCBidXQgbWFrZSBpdCBzdG9wIHdoZW4gaXQgbW92ZXMgdG8gdGhlIG5leHQKKyMgV0FMIHNl Z21lbnQgKHRoaXMgaGFzIHRvIGhhcHBlbiBpbiB0aGUgYmFja2dyb3VuZCwgdG9vKS4KK215 ICRsb2dpY2FsID0gJG5vZGUtPmJhY2tncm91bmRfcHNxbCgncG9zdGdyZXMnKTsKKyRsb2dp Y2FsLT5xdWVyeV9zYWZlKAorCXF7c2VsZWN0IGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCds b2dpY2FsLXJlcGxpY2F0aW9uLXNsb3QtYWR2YW5jZS1zZWdtZW50Jywnd2FpdCcpO30KKyk7 CiskbG9naWNhbC0+cXVlcnlfdW50aWwoCisJcXIvZ2V0X2NoYW5nZXMvLAorCXEoCitcZWNo byBnZXRfY2hhbmdlcworc2VsZWN0IGNvdW50KCopIGZyb20gcGdfbG9naWNhbF9zbG90X2dl dF9jaGFuZ2VzKCdzbG90X2xvZ2ljYWwnLCBudWxsLCBudWxsKSBcd2F0Y2ggMQorXHEKKykp OworCisjIFdhaXQgdW50aWwgdGhlIHNsb3QncyByZXN0YXJ0X2xzbiBwb2ludHMgdG8gdGhl IG5leHQgV0FMIHNlZ21lbnQuCitub3RlKCd3YWl0aW5nIGZvciBpbmplY3Rpb25fcG9pbnRc bicpOworJG5vZGUtPndhaXRfZm9yX2V2ZW50KCdjbGllbnQgYmFja2VuZCcsCisJJ2xvZ2lj YWwtcmVwbGljYXRpb24tc2xvdC1hZHZhbmNlLXNlZ21lbnQnKTsKK25vdGUoJ2luamVjdGlv bl9wb2ludCBpcyByZWFjaGVkJyk7CisKKyMgT0ssIHdlJ3JlIGluIHRoZSByaWdodCBzaXR1 YXRpb246IHRpbWUgdG8gYWR2YW5jZSB0aGUgcGh5c2ljYWwgc2xvdCwgd2hpY2gKKyMgcmVj YWxjdWxhdGVzIHRoZSByZXF1aXJlZCBMU04sIGFuZCB0aGVuIHVuYmxvY2sgdGhlIGNoZWNr cG9pbnQsIHdoaWNoCisjIHJlbW92ZXMgdGhlIFdBTCBzdGlsbCBuZWVkZWQgYnkgdGhlIGxv Z2ljYWwgc2xvdC4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe3NlbGVjdCBw Z19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoJ3Nsb3RfcGh5c2ljYWwnLCBwZ19jdXJyZW50 X3dhbF9sc24oKSl9CispOworCisjIENvbnRpbnVlIHRoZSBjaGVja3BvaW50LgorJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7c2VsZWN0IGluamVjdGlvbl9wb2ludHNfd2Fr ZXVwKCdjaGVja3BvaW50LWJlZm9yZS1vbGQtd2FsLXJlbW92YWwnKX0pOworCisjIEFicnVw dGx5IHN0b3AgdGhlIHNlcnZlciAoMSBzZWNvbmQgc2hvdWxkIGJlIGVub3VnaCBmb3IgdGhl IGNoZWNrcG9pbnQKKyMgdG8gZmluaXNoOyBpdCB3b3VsZCBiZSBiZXR0ZXIpLgorJG5vZGUt PnN0b3AoJ2ltbWVkaWF0ZScpOworCiskbm9kZS0+c3RhcnQ7CisKK2V2YWwgeworCSRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkJcXtzZWxlY3QgY291bnQoKikgZnJvbSBwZ19s b2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3Nsb3RfbG9naWNhbCcsIG51bGwsIG51bGwpO30K KwkpOworfTsKK2lzKCRALCAnJywgIkxvZ2ljYWwgc2xvdCBzdGlsbCB2YWxpZCIpOworCitk b25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDQ3X2No ZWNrcG9pbnRfcGh5c2ljYWxfc2xvdC5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDQ3X2No ZWNrcG9pbnRfcGh5c2ljYWxfc2xvdC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNDU0ZTU2YjliZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWNvdmVyeS90LzA0N19jaGVja3BvaW50X3BoeXNpY2FsX3Nsb3QucGwKQEAgLTAsMCArMSwx MzMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorIworIyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGNhc2Ugd2hlbiB0aGUg cGh5c2ljYWwgc2xvdCBpcyBhZHZhbmNlZCBkdXJpbmcKKyMgY2hlY2twb2ludC4gVGhlIHRl c3QgY2hlY2tzIHRoYXQgdGhlIHBoeXNpY2FsIHNsb3QncyByZXN0YXJ0X2xzbiBzdGlsbCBy ZWZlcnMKKyMgdG8gYW4gZXhpc3RlZCBXQUwgc2VnbWVudCBhZnRlciBpbW1lZGlhdGUgcmVz dGFydC4KKyMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7CisK K3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6 OlV0aWxzOworCit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7ZW5hYmxlX2luamVjdGlv bl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0luamVjdGlvbiBw b2ludHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKworbXkgKCRub2RlLCAk cmVzdWx0KTsKKworJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ21p a2UnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNv bmYnLAorCSJzaGFyZWRfcHJlbG9hZF9saWJyYXJpZXMgPSAnaW5qZWN0aW9uX3BvaW50cyci KTsKKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgIndhbF9sZXZlbCA9 ICdyZXBsaWNhJyIpOworJG5vZGUtPnN0YXJ0OworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxKENSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50cykpOworCisjIENyZWF0 ZSBhIHNpbXBsZSB0YWJsZSB0byBnZW5lcmF0ZSBkYXRhIGludG8uCiskbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJcXtjcmVhdGUgdGFibGUgdCAoaWQgc2VyaWFsIHByaW1hcnkg a2V5LCBiIHRleHQpfSk7CisKKyMgQ3JlYXRlIGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xv dC4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe3NlbGVjdCBwZ19jcmVhdGVf cGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnc2xvdF9waHlzaWNhbCcsIHRydWUpfSk7CisK KyMgQWR2YW5jZSBzbG90IHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uLCBqdXN0IHRvIGhhdmUg ZXZlcnl0aGluZyAidmFsaWQiLgorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7 c2VsZWN0IHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZSgnc2xvdF9waHlzaWNhbCcsIHBn X2N1cnJlbnRfd2FsX2xzbigpKX0KKyk7CisKKyMgUnVuIGNoZWNrcG9pbnQgdG8gZmx1c2gg Y3VycmVudCBzdGF0ZSB0byBkaXNrIGFuZCBzZXQgYSBiYXNlbGluZS4KKyRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXtjaGVja3BvaW50fSk7CisKKyMgSW5zZXJ0IDJNIHJvd3M7 IHRoYXQncyBhYm91dCAyNjBNQiAofjIwIHNlZ21lbnRzKSB3b3J0aCBvZiBXQUwuCiskbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtpbnNlcnQgaW50byB0IChiKSBzZWxlY3Qg bWQ1KGk6OnRleHQpIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMDAwKSBzKGkpfQorKTsK KworIyBBZHZhbmNlIHNsb3QgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24sIGp1c3QgdG8gaGF2 ZSBldmVyeXRoaW5nICJ2YWxpZCIuCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ cXtzZWxlY3QgcGdfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKCdzbG90X3BoeXNpY2FsJywg cGdfY3VycmVudF93YWxfbHNuKCkpfQorKTsKKworIyBSdW4gYW5vdGhlciBjaGVja3BvaW50 IHRvIHNldCBhIG5ldyByZXN0b3JlIExTTi4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXtjaGVja3BvaW50fSk7CisKKyMgQW5vdGhlciAyTSByb3dzOyB0aGF0J3MgYWJvdXQg MjYwTUIgKH4yMCBzZWdtZW50cykgd29ydGggb2YgV0FMLgorJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCXF7aW5zZXJ0IGludG8gdCAoYikgc2VsZWN0IG1kNShpOjp0ZXh0KSBm cm9tIGdlbmVyYXRlX3NlcmllcygxLDEwMDAwMDApIHMoaSl9CispOworCitteSAkcmVzdGFy dF9sc25faW5pdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe3NlbGVjdCBy ZXN0YXJ0X2xzbiBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHdoZXJlIHNsb3RfbmFtZSA9 ICdzbG90X3BoeXNpY2FsJ30KKyk7CitjaG9tcCgkcmVzdGFydF9sc25faW5pdCk7Citub3Rl KCJyZXN0YXJ0IGxzbiBiZWZvcmUgY2hlY2twb2ludDogJHJlc3RhcnRfbHNuX2luaXQiKTsK KworIyBSdW4gYW5vdGhlciBjaGVja3BvaW50LCB0aGlzIHRpbWUgaW4gdGhlIGJhY2tncm91 bmQsIGFuZCBtYWtlIGl0IHdhaXQKKyMgb24gdGhlIGluamVjdGlvbiBwb2ludCkgc28gdGhh dCB0aGUgY2hlY2twb2ludCBzdG9wcyByaWdodCBiZWZvcmUKKyMgcmVtb3Zpbmcgb2xkIFdB TCBzZWdtZW50cy4KK25vdGUoJ3N0YXJ0aW5nIGNoZWNrcG9pbnQnKTsKKworbXkgJGNoZWNr cG9pbnQgPSAkbm9kZS0+YmFja2dyb3VuZF9wc3FsKCdwb3N0Z3JlcycpOworJGNoZWNrcG9p bnQtPnF1ZXJ5X3NhZmUoCisJcXtzZWxlY3QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2No ZWNrcG9pbnQtYmVmb3JlLW9sZC13YWwtcmVtb3ZhbCcsJ3dhaXQnKX0KKyk7CiskY2hlY2tw b2ludC0+cXVlcnlfdW50aWwoCisJcXIvc3RhcnRpbmdfY2hlY2twb2ludC8sCisJcShcZWNo byBzdGFydGluZ19jaGVja3BvaW50CitjaGVja3BvaW50OworXHEKKykpOworCisjIFdhaXQg dW50aWwgdGhlIGNoZWNrcG9pbnQgc3RvcHMgcmlnaHQgYmVmb3JlIHJlbW92aW5nIFdBTCBz ZWdtZW50cy4KK25vdGUoJ3dhaXRpbmcgZm9yIGluamVjdGlvbl9wb2ludCcpOworJG5vZGUt PndhaXRfZm9yX2V2ZW50KCdjaGVja3BvaW50ZXInLCAnY2hlY2twb2ludC1iZWZvcmUtb2xk LXdhbC1yZW1vdmFsJyk7Citub3RlKCdpbmplY3Rpb25fcG9pbnQgaXMgcmVhY2hlZCcpOwor CisjIE9LLCB3ZSdyZSBpbiB0aGUgcmlnaHQgc2l0dWF0aW9uOiB0aW1lIHRvIGFkdmFuY2Ug dGhlIHBoeXNpY2FsIHNsb3QsIHdoaWNoCisjIHJlY2FsY3VsYXRlcyB0aGUgcmVxdWlyZWQg TFNOIGFuZCB0aGVuIHVuYmxvY2sgdGhlIGNoZWNrcG9pbnQsIHdoaWNoCisjIHJlbW92ZXMg dGhlIFdBTCBzdGlsbCBuZWVkZWQgYnkgdGhlIHBoeXNpY2FsIHNsb3QuCiskbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtzZWxlY3QgcGdfcmVwbGljYXRpb25fc2xvdF9hZHZh bmNlKCdzbG90X3BoeXNpY2FsJywgcGdfY3VycmVudF93YWxfbHNuKCkpfQorKTsKKworIyBD b250aW51ZSB0aGUgY2hlY2twb2ludC4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK Kwlxe3NlbGVjdCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2twb2ludC1iZWZvcmUt b2xkLXdhbC1yZW1vdmFsJyl9KTsKKworbXkgJHJlc3RhcnRfbHNuX29sZCA9ICRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe3NlbGVjdCByZXN0YXJ0X2xzbiBmcm9tIHBnX3Jl cGxpY2F0aW9uX3Nsb3RzIHdoZXJlIHNsb3RfbmFtZSA9ICdzbG90X3BoeXNpY2FsJ30KKyk7 CitjaG9tcCgkcmVzdGFydF9sc25fb2xkKTsKK25vdGUoInJlc3RhcnQgbHNuIGJlZm9yZSBz dG9wOiAkcmVzdGFydF9sc25fb2xkIik7CisKKyMgQWJydXB0bHkgc3RvcCB0aGUgc2VydmVy ICgxIHNlY29uZCBzaG91bGQgYmUgZW5vdWdoIGZvciB0aGUgY2hlY2twb2ludAorIyB0byBm aW5pc2g7IGl0IHdvdWxkIGJlIGJldHRlcikuCiskbm9kZS0+c3RvcCgnaW1tZWRpYXRlJyk7 CisKKyRub2RlLT5zdGFydDsKKworIyBHZXQgdGhlIHJlc3RhcnRfbHNuIG9mIHRoZSBzbG90 IHJpZ2h0IGFmdGVyIHJlc3RhcnRpbmcuCitteSAkcmVzdGFydF9sc24gPSAkbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtzZWxlY3QgcmVzdGFydF9sc24gZnJvbSBwZ19yZXBs aWNhdGlvbl9zbG90cyB3aGVyZSBzbG90X25hbWUgPSAnc2xvdF9waHlzaWNhbCd9CispOwor Y2hvbXAoJHJlc3RhcnRfbHNuKTsKK25vdGUoInJlc3RhcnQgbHNuOiAkcmVzdGFydF9sc24i KTsKKworIyBHZXQgdGhlIFdBTCBzZWdtZW50IG5hbWUgZm9yIHRoZSBzbG90J3MgcmVzdGFy dF9sc24uCitteSAkcmVzdGFydF9sc25fc2VnbWVudCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiU0VMRUNUIHBnX3dhbGZpbGVfbmFtZSgnJHJlc3RhcnRfbHNuJzo6cGdf bHNuKSIpOworY2hvbXAoJHJlc3RhcnRfbHNuX3NlZ21lbnQpOworCisjIENoZWNrIGlmIHRo ZSByZXF1aXJlZCB3YWwgc2VnbWVudCBleGlzdHMuCitub3RlKCJyZXF1aXJlZCBieSBzbG90 IHNlZ21lbnQgbmFtZTogJHJlc3RhcnRfbHNuX3NlZ21lbnQiKTsKK215ICRkYXRhZGlyID0g JG5vZGUtPmRhdGFfZGlyOworb2soIC1mICIkZGF0YWRpci9wZ193YWwvJHJlc3RhcnRfbHNu X3NlZ21lbnQiLAorCSJXQUwgc2VnbWVudCAkcmVzdGFydF9sc25fc2VnbWVudCBmb3IgcGh5 c2ljYWwgc2xvdCdzIHJlc3RhcnRfbHNuICRyZXN0YXJ0X2xzbiBleGlzdHMiCispOworCitk b25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQuMQoK ------=_=-_OpenGroupware_org_NGMime-11293-1748254971.998619-57------ Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v7-0001-Keep-WAL-segments-by-the-flushed-value-of-the-slot-s.patch" Content-Length: 12211 RnJvbSAxZTA2MjllZmM2NWYxOTBhNThlYzcyOWRiNmYzYWRhNGY4YjgzODk3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBw b3N0Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAyNCBNYXkgMjAyNSAxNjoyNjoyNyArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMS8zXSBLZWVwIFdBTCBzZWdtZW50cyBieSB0aGUgZmx1c2hlZCB2 YWx1ZSBvZiB0aGUgc2xvdCdzCiByZXN0YXJ0IExTTgoKVGhlIHBhdGNoIGZpeGVzIHRoZSBp c3N1ZSB3aXRoIHRoZSB1bmV4cGVjdGVkIHJlbW92YWwgb2Ygb2xkIFdBTCBzZWdtZW50cwph ZnRlciBjaGVja3BvaW50LCBmb2xsb3dlZCBieSBhbiBpbW1lZGlhdGUgcmVzdGFydC4gVGhl IGlzc3VlIG9jY3VycyB3aGVuCmEgc2xvdCBpcyBhZHZhbmNlZCBhZnRlciB0aGUgc3RhcnQg b2YgdGhlIGNoZWNrcG9pbnQgYW5kIGJlZm9yZSBvbGQgV0FMCnNlZ21lbnRzIGFyZSByZW1v dmVkIGF0IHRoZSBlbmQgb2YgdGhlIGNoZWNrcG9pbnQuCgpUaGUgaWRlYSBvZiB0aGUgcGF0 Y2ggaXMgdG8gZ2V0IHRoZSBtaW5pbWFsIHJlc3RhcnRfbHNuIGF0IHRoZSBiZWdpbm5pbmcK b2YgY2hlY2twb2ludCAob3IgcmVzdGFydCBwb2ludCkgY3JlYXRpb24gYW5kIHVzZSB0aGlz IHZhbHVlIHdoZW4gY2FsY3VsYXRpbmcKdGhlIG9sZGVzdCBMU04gZm9yIFdBTCBzZWdtZW50 cyByZW1vdmFsIGF0IHRoZSBlbmQgb2YgY2hlY2twb2ludC4gVGhpcyBpZGVhCndhcyBwcm9w b3NlZCBieSBUb21hcyBWb25kcmEgaW4gdGhlIGRpc2N1c3Npb24uCgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvMWQxMmQyLTY3MjM1OTgwLTM1LTE5YTQwNmEwJTQw NjM0Mzk0OTcKQXV0aG9yOiBWaXRhbHkgRGF2eWRvdiA8di5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpSZXZpZXdlZC1ieTogVG9tYXMgVm9uZHJhIDx0b21hc0B2b25kcmEubWU+ClJldmll d2VkLWJ5OiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPgpCYWNr cGF0Y2gtdGhyb3VnaDogMTMKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n LmMgICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyB8IDEwICsrKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICB8ICA0ICsrCiAzIGZpbGVzIGNoYW5nZWQs IDYwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCmluZGV4IDE5MTQ4NTliMmVlLi5hMGU1ODllOWM0YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNjc3LDcgKzY3Nyw4IEBAIHN0YXRpYyBYTG9nUmVj UHRyIENyZWF0ZU92ZXJ3cml0ZUNvbnRyZWNvcmRSZWNvcmQoWExvZ1JlY1B0ciBhYm9ydGVk X2xzbiwKIAkJCQkJCQkJCQkJCSAgWExvZ1JlY1B0ciBwYWdlUHRyLAogCQkJCQkJCQkJCQkJ ICBUaW1lTGluZUlEIG5ld1RMSSk7CiBzdGF0aWMgdm9pZCBDaGVja1BvaW50R3V0cyhYTG9n UmVjUHRyIGNoZWNrUG9pbnRSZWRvLCBpbnQgZmxhZ3MpOwotc3RhdGljIHZvaWQgS2VlcExv Z1NlZyhYTG9nUmVjUHRyIHJlY3B0ciwgWExvZ1NlZ05vICpsb2dTZWdObyk7CitzdGF0aWMg dm9pZCBLZWVwTG9nU2VnKFhMb2dSZWNQdHIgcmVjcHRyLCBYTG9nUmVjUHRyIHNsb3RzTWlu TFNOLAorCQkJCQkgICBYTG9nU2VnTm8gKmxvZ1NlZ05vKTsKIHN0YXRpYyBYTG9nUmVjUHRy IFhMb2dHZXRSZXBsaWNhdGlvblNsb3RNaW5pbXVtTFNOKHZvaWQpOwogCiBzdGF0aWMgdm9p ZCBBZHZhbmNlWExJbnNlcnRCdWZmZXIoWExvZ1JlY1B0ciB1cHRvLCBUaW1lTGluZUlEIHRs aSwKQEAgLTcwODcsNiArNzA4OCw3IEBAIENyZWF0ZUNoZWNrUG9pbnQoaW50IGZsYWdzKQog CVZpcnR1YWxUcmFuc2FjdGlvbklkICp2eGlkczsKIAlpbnQJCQludnhpZHM7CiAJaW50CQkJ b2xkWExvZ0FsbG93ZWQgPSAwOworCVhMb2dSZWNQdHIJc2xvdHNNaW5SZXFMU047CiAKIAkv KgogCSAqIEFuIGVuZC1vZi1yZWNvdmVyeSBjaGVja3BvaW50IGlzIHJlYWxseSBhIHNodXRk b3duIGNoZWNrcG9pbnQsIGp1c3QKQEAgLTczMTUsNiArNzMxNywxNSBAQCBDcmVhdGVDaGVj a1BvaW50KGludCBmbGFncykKIAkgKi8KIAlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKKwkvKgor CSAqIEdldCB0aGUgY3VycmVudCBtaW5pbXVtIExTTiB0byBiZSB1c2VkIGxhdGVyIGluIHRo ZSBXQUwgc2VnbWVudAorCSAqIGNsZWFudXAuICBXZSBtYXkgY2xlYW4gdXAgb25seSBXQUwg c2VnbWVudHMsIHdoaWNoIGFyZSBub3QgbmVlZGVkCisJICogYWNjb3JkaW5nIHRvIHN5bmNo cm9uaXplZCBMU05zIG9mIHJlcGxpY2F0aW9uIHNsb3RzLiAgVGhlIHNsb3QncyBMU04KKwkg KiBtaWdodCBiZSBhZHZhbmNlZCBjb25jdXJyZW50bHksIHNvIHdlIGNhbGwgdGhpcyBiZWZv cmUKKwkgKiBDaGVja1BvaW50UmVwbGljYXRpb25TbG90cygpIHN5bmNocm9uaXplcyByZXBs aWNhdGlvbiBzbG90cy4KKwkgKi8KKwlzbG90c01pblJlcUxTTiA9IFhMb2dHZXRSZXBsaWNh dGlvblNsb3RNaW5pbXVtTFNOKCk7CisKIAkvKgogCSAqIEluIHNvbWUgY2FzZXMgdGhlcmUg YXJlIGdyb3VwcyBvZiBhY3Rpb25zIHRoYXQgbXVzdCBhbGwgb2NjdXIgb24gb25lCiAJICog c2lkZSBvciB0aGUgb3RoZXIgb2YgYSBjaGVja3BvaW50IHJlY29yZC4gQmVmb3JlIGZsdXNo aW5nIHRoZQpAQCAtNzUwMywxNyArNzUxNCwyNSBAQCBDcmVhdGVDaGVja1BvaW50KGludCBm bGFncykKIAkgKiBwcmV2ZW50IHRoZSBkaXNrIGhvbGRpbmcgdGhlIHhsb2cgZnJvbSBncm93 aW5nIGZ1bGwuCiAJICovCiAJWExCeXRlVG9TZWcoUmVkb1JlY1B0ciwgX2xvZ1NlZ05vLCB3 YWxfc2VnbWVudF9zaXplKTsKLQlLZWVwTG9nU2VnKHJlY3B0ciwgJl9sb2dTZWdObyk7CisJ S2VlcExvZ1NlZyhyZWNwdHIsIHNsb3RzTWluUmVxTFNOLCAmX2xvZ1NlZ05vKTsKIAlpZiAo SW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25TbG90cyhSU19JTlZBTF9XQUxfUkVNT1ZF RCB8IFJTX0lOVkFMX0lETEVfVElNRU9VVCwKIAkJCQkJCQkJCQkgICBfbG9nU2VnTm8sIElu dmFsaWRPaWQsCiAJCQkJCQkJCQkJICAgSW52YWxpZFRyYW5zYWN0aW9uSWQpKQogCXsKKwkJ LyoKKwkJICogUmVjYWxjdWxhdGUgdGhlIGN1cnJlbnQgbWluaW11bSBMU04gdG8gYmUgdXNl ZCBpbiB0aGUgV0FMIHNlZ21lbnQKKwkJICogY2xlYW51cC4gIFRoZW4sIHdlIG11c3Qgc3lu Y2hyb25pemUgdGhlIHJlcGxpY2F0aW9uIHNsb3RzIGFnYWluIGluCisJCSAqIG9yZGVyIHRv IG1ha2UgdGhpcyBMU04gc2FmZSB0byB1c2UuCisJCSAqLworCQlzbG90c01pblJlcUxTTiA9 IFhMb2dHZXRSZXBsaWNhdGlvblNsb3RNaW5pbXVtTFNOKCk7CisJCUNoZWNrUG9pbnRSZXBs aWNhdGlvblNsb3RzKHNodXRkb3duKTsKKwogCQkvKgogCQkgKiBTb21lIHNsb3RzIGhhdmUg YmVlbiBpbnZhbGlkYXRlZDsgcmVjYWxjdWxhdGUgdGhlIG9sZC1zZWdtZW50CiAJCSAqIGhv cml6b24sIHN0YXJ0aW5nIGFnYWluIGZyb20gUmVkb1JlY1B0ci4KIAkJICovCiAJCVhMQnl0 ZVRvU2VnKFJlZG9SZWNQdHIsIF9sb2dTZWdObywgd2FsX3NlZ21lbnRfc2l6ZSk7Ci0JCUtl ZXBMb2dTZWcocmVjcHRyLCAmX2xvZ1NlZ05vKTsKKwkJS2VlcExvZ1NlZyhyZWNwdHIsIHNs b3RzTWluUmVxTFNOLCAmX2xvZ1NlZ05vKTsKIAl9CiAJX2xvZ1NlZ05vLS07CiAJUmVtb3Zl T2xkWGxvZ0ZpbGVzKF9sb2dTZWdObywgUmVkb1JlY1B0ciwgcmVjcHRyLApAQCAtNzc4OCw2 ICs3ODA3LDcgQEAgQ3JlYXRlUmVzdGFydFBvaW50KGludCBmbGFncykKIAlYTG9nUmVjUHRy CWVuZHB0cjsKIAlYTG9nU2VnTm8JX2xvZ1NlZ05vOwogCVRpbWVzdGFtcFR6IHh0aW1lOwor CVhMb2dSZWNQdHIJc2xvdHNNaW5SZXFMU047CiAKIAkvKiBDb25jdXJyZW50IGNoZWNrcG9p bnQvcmVzdGFydHBvaW50IGNhbm5vdCBoYXBwZW4gKi8KIAlBc3NlcnQoIUlzVW5kZXJQb3N0 bWFzdGVyIHx8IE15QmFja2VuZFR5cGUgPT0gQl9DSEVDS1BPSU5URVIpOwpAQCAtNzg3MCw2 ICs3ODkwLDE1IEBAIENyZWF0ZVJlc3RhcnRQb2ludChpbnQgZmxhZ3MpCiAJTWVtU2V0KCZD aGVja3BvaW50U3RhdHMsIDAsIHNpemVvZihDaGVja3BvaW50U3RhdHMpKTsKIAlDaGVja3Bv aW50U3RhdHMuY2twdF9zdGFydF90ID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOwogCisJLyoK KwkgKiBHZXQgdGhlIGN1cnJlbnQgbWluaW11bSBMU04gdG8gYmUgdXNlZCBsYXRlciBpbiB0 aGUgV0FMIHNlZ21lbnQKKwkgKiBjbGVhbnVwLiAgV2UgbWF5IGNsZWFuIHVwIG9ubHkgV0FM IHNlZ21lbnRzLCB3aGljaCBhcmUgbm90IG5lZWRlZAorCSAqIGFjY29yZGluZyB0byBzeW5j aHJvbml6ZWQgTFNOcyBvZiByZXBsaWNhdGlvbiBzbG90cy4gIFRoZSBzbG90J3MgTFNOCisJ ICogbWlnaHQgYmUgYWR2YW5jZWQgY29uY3VycmVudGx5LCBzbyB3ZSBjYWxsIHRoaXMgYmVm b3JlCisJICogQ2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHMoKSBzeW5jaHJvbml6ZXMgcmVw bGljYXRpb24gc2xvdHMuCisJICovCisJc2xvdHNNaW5SZXFMU04gPSBYTG9nR2V0UmVwbGlj YXRpb25TbG90TWluaW11bUxTTigpOworCiAJaWYgKGxvZ19jaGVja3BvaW50cykKIAkJTG9n Q2hlY2twb2ludFN0YXJ0KGZsYWdzLCB0cnVlKTsKIApAQCAtNzk1OCwxNyArNzk4NywyNSBA QCBDcmVhdGVSZXN0YXJ0UG9pbnQoaW50IGZsYWdzKQogCXJlY2VpdmVQdHIgPSBHZXRXYWxS Y3ZGbHVzaFJlY1B0cihOVUxMLCBOVUxMKTsKIAlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5 UmVjUHRyKCZyZXBsYXlUTEkpOwogCWVuZHB0ciA9IChyZWNlaXZlUHRyIDwgcmVwbGF5UHRy KSA/IHJlcGxheVB0ciA6IHJlY2VpdmVQdHI7Ci0JS2VlcExvZ1NlZyhlbmRwdHIsICZfbG9n U2VnTm8pOworCUtlZXBMb2dTZWcoZW5kcHRyLCBzbG90c01pblJlcUxTTiwgJl9sb2dTZWdO byk7CiAJaWYgKEludmFsaWRhdGVPYnNvbGV0ZVJlcGxpY2F0aW9uU2xvdHMoUlNfSU5WQUxf V0FMX1JFTU9WRUQgfCBSU19JTlZBTF9JRExFX1RJTUVPVVQsCiAJCQkJCQkJCQkJICAgX2xv Z1NlZ05vLCBJbnZhbGlkT2lkLAogCQkJCQkJCQkJCSAgIEludmFsaWRUcmFuc2FjdGlvbklk KSkKIAl7CisJCS8qCisJCSAqIFJlY2FsY3VsYXRlIHRoZSBjdXJyZW50IG1pbmltdW0gTFNO IHRvIGJlIHVzZWQgaW4gdGhlIFdBTCBzZWdtZW50CisJCSAqIGNsZWFudXAuICBUaGVuLCB3 ZSBtdXN0IHN5bmNocm9uaXplIHRoZSByZXBsaWNhdGlvbiBzbG90cyBhZ2FpbiBpbgorCQkg KiBvcmRlciB0byBtYWtlIHRoaXMgTFNOIHNhZmUgdG8gdXNlLgorCQkgKi8KKwkJc2xvdHNN aW5SZXFMU04gPSBYTG9nR2V0UmVwbGljYXRpb25TbG90TWluaW11bUxTTigpOworCQlDaGVj a1BvaW50UmVwbGljYXRpb25TbG90cyhmbGFncyAmIENIRUNLUE9JTlRfSVNfU0hVVERPV04p OworCiAJCS8qCiAJCSAqIFNvbWUgc2xvdHMgaGF2ZSBiZWVuIGludmFsaWRhdGVkOyByZWNh bGN1bGF0ZSB0aGUgb2xkLXNlZ21lbnQKIAkJICogaG9yaXpvbiwgc3RhcnRpbmcgYWdhaW4g ZnJvbSBSZWRvUmVjUHRyLgogCQkgKi8KIAkJWExCeXRlVG9TZWcoUmVkb1JlY1B0ciwgX2xv Z1NlZ05vLCB3YWxfc2VnbWVudF9zaXplKTsKLQkJS2VlcExvZ1NlZyhlbmRwdHIsICZfbG9n U2VnTm8pOworCQlLZWVwTG9nU2VnKGVuZHB0ciwgc2xvdHNNaW5SZXFMU04sICZfbG9nU2Vn Tm8pOwogCX0KIAlfbG9nU2VnTm8tLTsKIApAQCAtODA2Myw2ICs4MTAwLDcgQEAgR2V0V0FM QXZhaWxhYmlsaXR5KFhMb2dSZWNQdHIgdGFyZ2V0TFNOKQogCVhMb2dTZWdObwlvbGRlc3RT ZWdNYXhXYWxTaXplOwkvKiBvbGRlc3Qgc2VnaWQga2VwdCBieSBtYXhfd2FsX3NpemUgKi8K IAlYTG9nU2VnTm8Jb2xkZXN0U2xvdFNlZzsJLyogb2xkZXN0IHNlZ2lkIGtlcHQgYnkgc2xv dCAqLwogCXVpbnQ2NAkJa2VlcFNlZ3M7CisJWExvZ1JlY1B0cglzbG90c01pblJlcUxTTjsK IAogCS8qCiAJICogc2xvdCBkb2VzIG5vdCByZXNlcnZlIFdBTC4gRWl0aGVyIGRlYWN0aXZh dGVkLCBvciBoYXMgbmV2ZXIgYmVlbiBhY3RpdmUKQEAgLTgwNzYsOCArODExNCw5IEBAIEdl dFdBTEF2YWlsYWJpbGl0eShYTG9nUmVjUHRyIHRhcmdldExTTikKIAkgKiBvbGRlc3RTbG90 U2VnIHRvIHRoZSBjdXJyZW50IHNlZ21lbnQuCiAJICovCiAJY3VycnBvcyA9IEdldFhMb2dX cml0ZVJlY1B0cigpOworCXNsb3RzTWluUmVxTFNOID0gWExvZ0dldFJlcGxpY2F0aW9uU2xv dE1pbmltdW1MU04oKTsKIAlYTEJ5dGVUb1NlZyhjdXJycG9zLCBvbGRlc3RTbG90U2VnLCB3 YWxfc2VnbWVudF9zaXplKTsKLQlLZWVwTG9nU2VnKGN1cnJwb3MsICZvbGRlc3RTbG90U2Vn KTsKKwlLZWVwTG9nU2VnKGN1cnJwb3MsIHNsb3RzTWluUmVxTFNOLCAmb2xkZXN0U2xvdFNl Zyk7CiAKIAkvKgogCSAqIEZpbmQgdGhlIG9sZGVzdCBleHRhbnQgc2VnbWVudCBmaWxlLiBX ZSBnZXQgMSB1bnRpbCBjaGVja3BvaW50IHJlbW92ZXMKQEAgLTgxMzgsNyArODE3Nyw3IEBA IEdldFdBTEF2YWlsYWJpbGl0eShYTG9nUmVjUHRyIHRhcmdldExTTikKICAqIGludmFsaWRh dGlvbiBpcyBvcHRpb25hbGx5IGRvbmUgaGVyZSwgaW5zdGVhZC4KICAqLwogc3RhdGljIHZv aWQKLUtlZXBMb2dTZWcoWExvZ1JlY1B0ciByZWNwdHIsIFhMb2dTZWdObyAqbG9nU2VnTm8p CitLZWVwTG9nU2VnKFhMb2dSZWNQdHIgcmVjcHRyLCBYTG9nUmVjUHRyIHNsb3RzTWluUmVx TFNOLCBYTG9nU2VnTm8gKmxvZ1NlZ05vKQogewogCVhMb2dTZWdObwljdXJyU2VnTm87CiAJ WExvZ1NlZ05vCXNlZ25vOwpAQCAtODE1MSw3ICs4MTkwLDcgQEAgS2VlcExvZ1NlZyhYTG9n UmVjUHRyIHJlY3B0ciwgWExvZ1NlZ05vICpsb2dTZWdObykKIAkgKiBDYWxjdWxhdGUgaG93 IG1hbnkgc2VnbWVudHMgYXJlIGtlcHQgYnkgc2xvdHMgZmlyc3QsIGFkanVzdGluZyBmb3IK IAkgKiBtYXhfc2xvdF93YWxfa2VlcF9zaXplLgogCSAqLwotCWtlZXAgPSBYTG9nR2V0UmVw bGljYXRpb25TbG90TWluaW11bUxTTigpOworCWtlZXAgPSBzbG90c01pblJlcUxTTjsKIAlp ZiAoa2VlcCAhPSBJbnZhbGlkWExvZ1JlY1B0ciAmJiBrZWVwIDwgcmVjcHRyKQogCXsKIAkJ WExCeXRlVG9TZWcoa2VlcCwgc2Vnbm8sIHdhbF9zZWdtZW50X3NpemUpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYwppbmRleCAxZDU2ZDBjNGVmMy4u NmIzOTk1MTMzZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9n aWNhbC5jCkBAIC0xODc4LDcgKzE4NzgsMTUgQEAgTG9naWNhbENvbmZpcm1SZWNlaXZlZExv Y2F0aW9uKFhMb2dSZWNQdHIgbHNuKQogCiAJCVNwaW5Mb2NrUmVsZWFzZSgmTXlSZXBsaWNh dGlvblNsb3QtPm11dGV4KTsKIAotCQkvKiBmaXJzdCB3cml0ZSBuZXcgeG1pbiB0byBkaXNr LCBzbyB3ZSBrbm93IHdoYXQncyB1cCBhZnRlciBhIGNyYXNoICovCisJCS8qCisJCSAqIEZp cnN0LCB3cml0ZSBuZXcgeG1pbiBhbmQgcmVzdGFydF9sc24gdG8gZGlzayBzbyB3ZSBrbm93 IHdoYXQncyB1cAorCQkgKiBhZnRlciBhIGNyYXNoLiAgRXZlbiB3aGVuIHdlIGRvIHRoaXMs IHRoZSBjaGVja3BvaW50ZXIgY2FuIHNlZSB0aGUKKwkJICogdXBkYXRlZCByZXN0YXJ0X2xz biB2YWx1ZSBpbiB0aGUgc2hhcmVkIG1lbW9yeTsgdGhlbiwgYSBjcmFzaCBjYW4KKwkJICog aGFwcGVuIGJlZm9yZSB3ZSBtYW5hZ2UgdG8gd3JpdGUgdGhhdCB2YWx1ZSB0byB0aGUgZGlz ay4gIFRodXMsCisJCSAqIGNoZWNrcG9pbnRlciBzdGlsbCBuZWVkcyB0byBtYWtlIHNwZWNp YWwgZWZmb3J0cyB0byBrZWVwIFdBTAorCQkgKiBzZWdtZW50cyByZXF1aXJlZCBieSB0aGUg cmVzdGFydF9sc24gd3JpdHRlbiB0byB0aGUgZGlzay4gIFNlZQorCQkgKiBDcmVhdGVDaGVj a1BvaW50KCkgYW5kIENyZWF0ZVJlc3RhcnRQb2ludCgpIGZvciBkZXRhaWxzLgorCQkgKi8K IAkJaWYgKHVwZGF0ZWRfeG1pbiB8fCB1cGRhdGVkX3Jlc3RhcnQpCiAJCXsKIAkJCVJlcGxp Y2F0aW9uU2xvdE1hcmtEaXJ0eSgpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIu YwppbmRleCA5ZmE4YmViNjEwMy4uZDc1MWQzNDI5NWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3dhbHNlbmRlci5jCkBAIC0yMzkzLDYgKzIzOTMsMTAgQEAgUGh5c2ljYWxDb25maXJt UmVjZWl2ZWRMb2NhdGlvbihYTG9nUmVjUHRyIGxzbikKIAkgKiBiZSBlbmVyZ3kgd2FzdGVk IC0gdGhlIHdvcnN0IHRoaW5nIGxvc3QgaW5mb3JtYXRpb24gY291bGQgY2F1c2UgaGVyZSBp cwogCSAqIHRvIGdpdmUgd3JvbmcgaW5mb3JtYXRpb24gaW4gYSBzdGF0aXN0aWNzIHZpZXcg LSB3ZSdsbCBqdXN0IHBvdGVudGlhbGx5CiAJICogYmUgbW9yZSBjb25zZXJ2YXRpdmUgaW4g cmVtb3ZpbmcgZmlsZXMuCisJICoKKwkgKiBDaGVja3BvaW50ZXIgbWFrZXMgc3BlY2lhbCBl ZmZvcnRzIHRvIGtlZXAgdGhlIFdBTCBzZWdtZW50cyByZXF1aXJlZCBieQorCSAqIHRoZSBy ZXN0YXJ0X2xzbiB3cml0dGVuIHRvIHRoZSBkaXNrLiBTZWUgQ3JlYXRlQ2hlY2tQb2ludCgp IGFuZAorCSAqIENyZWF0ZVJlc3RhcnRQb2ludCgpIGZvciBkZXRhaWxzLgogCSAqLwogfQog Ci0tIAoyLjM0LjEKCg== ------=_=-_OpenGroupware_org_NGMime-11293-1748254971.998619-57--------