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 1qF9YN-0004rn-Qd for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jun 2023 08:32:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qF9YM-0002iQ-OI for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jun 2023 08:32:30 +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 1qF9YM-0002gu-6u for pgsql-hackers@lists.postgresql.org; Fri, 30 Jun 2023 08:32:30 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qF9YI-001FVB-4k for pgsql-hackers@lists.postgresql.org; Fri, 30 Jun 2023 08:32:29 +0000 Received: from sogo.postgrespro.ru (unknown [192.168.2.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix/587) with ESMTPS id 84CD4E21014 for ; Fri, 30 Jun 2023 11:32:23 +0300 (MSK) From: =?utf-8?q?=D0=9A=D0=B0=D1=80=D1=82=D1=8B=D1=88=D0=BE=D0=B2_=D0=98=D0=B2=D0=B0=D0=BD?= Content-Type: multipart/mixed; boundary="----=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366220-1------" In-Reply-To: <93bebdb1394575ee6a4e3fdde0c0bf0a@postgrespro.ru> X-Forward: 83.220.237.118 Date: Fri, 30 Jun 2023 11:32:23 +0300 To: pgsql-hackers@lists.postgresql.org MIME-Version: 1.0 Message-ID: <159ebb-649e9300-1-5b65b700@34109261> Subject: =?utf-8?q?Re=3A?= [HACKERS] make async slave to wait for lsn to be replayed User-Agent: SOGoMail 5.8.2 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366220-1------ Content-Type: multipart/alternative; boundary="----=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366073-0------" ------=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366073-0------ Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Length: 143 All rebased and tested -- Ivan Kartyshov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company@postgrespro.ru> =C2=A0 ------=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366073-0------ Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Length: 278 All rebased and = tested

--
Ivan Kartyshov
Postgres Professional: ht= tp://www.postgrespro.com
The Russian Postgres Company
  ------=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366073-0-------- ------=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366220-1------ Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="wait_proc_v5.patch" Content-Length: 21612 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggYmVj YzJiZGE2Mi4uYzc0NjBiZDliOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZ3JlY292ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZ3JlY292ZXJ5LmMKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJiYWNrdXAvYmFz ZWJhY2t1cC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udHJvbC5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy93YWl0LmgiCiAj aW5jbHVkZSAiY29tbW9uL2ZpbGVfdXRpbHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIK ICNpbmNsdWRlICJwZ3N0YXQuaCIKQEAgLTE3NTIsNiArMTc1MywxNSBAQCBQZXJmb3JtV2Fs UmVjb3Zlcnkodm9pZCkKIAkJCQlicmVhazsKIAkJCX0KIAorCQkJLyoKKwkJCSAqIElmIHdl IHJlcGxheWVkIGFuIExTTiB0aGF0IHNvbWVvbmUgd2FzIHdhaXRpbmcgZm9yLAorCQkJICog c2V0IGxhdGNoZXMgaW4gc2hhcmVkIG1lbW9yeSBhcnJheSB0byBub3RpZnkgdGhlIHdhaXRl ci4KKwkJCSAqLworCQkJaWYgKFhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkRW5kUmVj UHRyID49IEdldE1pbldhaXRlZExTTigpKQorCQkJeworCQkJCVdhaXRTZXRMYXRjaChYTG9n UmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0cik7CisJCQl9CisKIAkJCS8qIEVs c2UsIHRyeSB0byBmZXRjaCB0aGUgbmV4dCBXQUwgcmVjb3JkICovCiAJCQlyZWNvcmQgPSBS ZWFkUmVjb3JkKHhsb2dwcmVmZXRjaGVyLCBMT0csIGZhbHNlLCByZXBsYXlUTEkpOwogCQl9 IHdoaWxlIChyZWNvcmQgIT0gTlVMTCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4 ZjczNDhmOTEuLmQ4ZjY5NjVkOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC02MSw2 ICs2MSw3IEBAIE9CSlMgPSBcCiAJdmFjdXVtLm8gXAogCXZhY3V1bXBhcmFsbGVsLm8gXAog CXZhcmlhYmxlLm8gXAotCXZpZXcubworCXZpZXcubyBcCisJd2FpdC5vCiAKIGluY2x1ZGUg JCh0b3Bfc3JjZGlyKS9zcmMvYmFja2VuZC9jb21tb24ubWsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVz b24uYnVpbGQKaW5kZXggNDJjY2VkOWViZS4uZWM2YWI3NzIyYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvbWVzb24uYnVpbGQKQEAgLTUwLDQgKzUwLDUgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZp bGVzKAogICAndmFjdXVtcGFyYWxsZWwuYycsCiAgICd2YXJpYWJsZS5jJywKICAgJ3ZpZXcu YycsCisgICd3YWl0LmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv d2FpdC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvd2FpdC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLjJmOWJlNGY5YWQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy93YWl0LmMKQEAgLTAsMCArMSwyNzUgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIHdhaXQuYworICoJICBJbXBsZW1lbnRzIHdhaXQgbHNu LCB3aGljaCBhbGxvd3Mgd2FpdGluZyBmb3IgZXZlbnRzIHN1Y2ggYXMKKyAqCSAgTFNOIGhh dmluZyBiZWVuIHJlcGxheWVkIG9uIHJlcGxpY2EuCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMjMsIFJlZ2VudHMgb2YgUG9zdGdyZXNQ cm8KKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy93 YWl0LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3Rn cmVzLmgiCisKKyNpbmNsdWRlIDxtYXRoLmg+CisKKyNpbmNsdWRlICJhY2Nlc3MveGFjdC5o IgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIKKyNpbmNsdWRlICJhY2Nlc3Mv eGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy93YWl0LmgiCisjaW5jbHVkZSAiZnVu Y2FwaS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgor I2luY2x1ZGUgInN0b3JhZ2UvYmFja2VuZGlkLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wbXNp Z25hbC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInN0b3JhZ2Uv c2htZW0uaCIKKyNpbmNsdWRlICJzdG9yYWdlL3NpbnZhbGFkdC5oIgorI2luY2x1ZGUgInN0 b3JhZ2Uvc3Bpbi5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAi dXRpbHMvcGdfbHNuLmgiCisjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCisKKy8qIEFk ZCB0byBzaGFyZWQgbWVtb3J5IGFycmF5ICovCitzdGF0aWMgdm9pZCBBZGRXYWl0ZWRMU04o WExvZ1JlY1B0ciBsc25fdG9fd2FpdCk7CisKKy8qIFNoYXJlZCBtZW1vcnkgc3RydWN0dXJl ICovCit0eXBlZGVmIHN0cnVjdAoreworCWludAkJCWJhY2tlbmRfbWF4aWQ7CisJcGdfYXRv bWljX3VpbnQ2NCBtaW5fbHNuOyAvKiBYTG9nUmVjUHRyIG9mIG1pbmltYWwgd2FpdGVkIGZv ciBMU04gKi8KKwlzbG9ja190CQltdXRleDsKKwkvKiBMU05zIHRoYXQgZGlmZmVyZW50IGJh Y2tlbmRzIGFyZSB3YWl0aW5nICovCisJWExvZ1JlY1B0cglsc25bRkxFWElCTEVfQVJSQVlf TUVNQkVSXTsKK30gV2FpdFN0YXRlOworCitzdGF0aWMgV2FpdFN0YXRlICpzdGF0ZTsKKwor LyoKKyAqIEFkZCB0aGUgd2FpdCBldmVudCBvZiB0aGUgY3VycmVudCBiYWNrZW5kIHRvIHNo YXJlZCBtZW1vcnkgYXJyYXkKKyAqLworc3RhdGljIHZvaWQKK0FkZFdhaXRlZExTTihYTG9n UmVjUHRyIGxzbl90b193YWl0KQoreworCVNwaW5Mb2NrQWNxdWlyZSgmc3RhdGUtPm11dGV4 KTsKKwlpZiAoc3RhdGUtPmJhY2tlbmRfbWF4aWQgPCBNeUJhY2tlbmRJZCkKKwkJc3RhdGUt PmJhY2tlbmRfbWF4aWQgPSBNeUJhY2tlbmRJZDsKKworCXN0YXRlLT5sc25bTXlCYWNrZW5k SWRdID0gbHNuX3RvX3dhaXQ7CisKKwlpZiAobHNuX3RvX3dhaXQgPCBzdGF0ZS0+bWluX2xz bi52YWx1ZSkKKwkJc3RhdGUtPm1pbl9sc24udmFsdWUgPSBsc25fdG9fd2FpdDsKKwlTcGlu TG9ja1JlbGVhc2UoJnN0YXRlLT5tdXRleCk7Cit9CisKKy8qCisgKiBEZWxldGUgd2FpdCBl dmVudCBvZiB0aGUgY3VycmVudCBiYWNrZW5kIGZyb20gdGhlIHNoYXJlZCBtZW1vcnkgYXJy YXkuCisgKi8KK3ZvaWQKK0RlbGV0ZVdhaXRlZExTTih2b2lkKQoreworCWludAkJCWk7CisJ WExvZ1JlY1B0cglsc25fdG9fZGVsZXRlOworCisJU3BpbkxvY2tBY3F1aXJlKCZzdGF0ZS0+ bXV0ZXgpOworCisJbHNuX3RvX2RlbGV0ZSA9IHN0YXRlLT5sc25bTXlCYWNrZW5kSWRdOwor CXN0YXRlLT5sc25bTXlCYWNrZW5kSWRdID0gSW52YWxpZFhMb2dSZWNQdHI7CisKKwkvKiBJ ZiB3ZSBhcmUgZGVsZXRpbmcgdGhlIG1pbmltYWwgTFNOLCB0aGVuIGNob29zZSB0aGUgbmV4 dCBtaW5fbHNuICovCisJaWYgKGxzbl90b19kZWxldGUgIT0gSW52YWxpZFhMb2dSZWNQdHIg JiYKKwkJbHNuX3RvX2RlbGV0ZSA9PSBzdGF0ZS0+bWluX2xzbi52YWx1ZSkKKwl7CisJCXN0 YXRlLT5taW5fbHNuLnZhbHVlID0gUEdfVUlOVDY0X01BWDsKKwkJZm9yIChpID0gMjsgaSA8 PSBzdGF0ZS0+YmFja2VuZF9tYXhpZDsgaSsrKQorCQkJaWYgKHN0YXRlLT5sc25baV0gIT0g SW52YWxpZFhMb2dSZWNQdHIgJiYKKwkJCQlzdGF0ZS0+bHNuW2ldIDwgc3RhdGUtPm1pbl9s c24udmFsdWUpCisJCQkJc3RhdGUtPm1pbl9sc24udmFsdWUgPSBzdGF0ZS0+bHNuW2ldOwor CX0KKworCS8qIElmIGRlbGV0aW5nIGZyb20gdGhlIGVuZCBvZiB0aGUgYXJyYXksIHNob3J0 ZW4gdGhlIGFycmF5J3MgdXNlZCBwYXJ0ICovCisJaWYgKHN0YXRlLT5iYWNrZW5kX21heGlk ID09IE15QmFja2VuZElkKQorCQlmb3IgKGkgPSAoTXlCYWNrZW5kSWQpOyBpID49IDI7IGkt LSkKKwkJCWlmIChzdGF0ZS0+bHNuW2ldICE9IEludmFsaWRYTG9nUmVjUHRyKQorCQkJewor CQkJCXN0YXRlLT5iYWNrZW5kX21heGlkID0gaTsKKwkJCQlicmVhazsKKwkJCX0KKworCVNw aW5Mb2NrUmVsZWFzZSgmc3RhdGUtPm11dGV4KTsKK30KKworLyoKKyAqIFJlcG9ydCBhbW91 bnQgb2Ygc2hhcmVkIG1lbW9yeSBzcGFjZSBuZWVkZWQgZm9yIFdhaXRTdGF0ZQorICovCitT aXplCitXYWl0U2htZW1TaXplKHZvaWQpCit7CisJU2l6ZQkJc2l6ZTsKKworCXNpemUgPSBv ZmZzZXRvZihXYWl0U3RhdGUsIGxzbik7CisJc2l6ZSA9IGFkZF9zaXplKHNpemUsIG11bF9z aXplKE1heEJhY2tlbmRzICsgMSwgc2l6ZW9mKFhMb2dSZWNQdHIpKSk7CisJcmV0dXJuIHNp emU7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGFuIGFycmF5IG9mIGV2ZW50cyB0byB3YWl0 IGZvciBpbiBzaGFyZWQgbWVtb3J5CisgKi8KK3ZvaWQKK1dhaXRTaG1lbUluaXQodm9pZCkK K3sKKwlib29sCQlmb3VuZDsKKwl1aW50MzIJCWk7CisKKwlzdGF0ZSA9IChXYWl0U3RhdGUg KikgU2htZW1Jbml0U3RydWN0KCJwZ193YWl0X2xzbiIsCisJCQkJCQkJCQkJICBXYWl0U2ht ZW1TaXplKCksCisJCQkJCQkJCQkJICAmZm91bmQpOworCWlmICghZm91bmQpCisJeworCQlT cGluTG9ja0luaXQoJnN0YXRlLT5tdXRleCk7CisKKwkJZm9yIChpID0gMDsgaSA8IChNYXhC YWNrZW5kcyArIDEpOyBpKyspCisJCQlzdGF0ZS0+bHNuW2ldID0gSW52YWxpZFhMb2dSZWNQ dHI7CisKKwkJc3RhdGUtPmJhY2tlbmRfbWF4aWQgPSAwOworCQlzdGF0ZS0+bWluX2xzbi52 YWx1ZSA9IFBHX1VJTlQ2NF9NQVg7CisJfQorfQorCisvKgorICogU2V0IGxhdGNoZXMgaW4g c2hhcmVkIG1lbW9yeSB0byBzaWduYWwgdGhhdCBuZXcgTFNOIGhhcyBiZWVuIHJlcGxheWVk CisgKi8KK3ZvaWQKK1dhaXRTZXRMYXRjaChYTG9nUmVjUHRyIGN1cl9sc24pCit7CisJdWlu dDMyCQlpOworCWludAkJCWJhY2tlbmRfbWF4aWQ7CisJUEdQUk9DCSAgICpiYWNrZW5kOwor CisJU3BpbkxvY2tBY3F1aXJlKCZzdGF0ZS0+bXV0ZXgpOworCWJhY2tlbmRfbWF4aWQgPSBz dGF0ZS0+YmFja2VuZF9tYXhpZDsKKworCWZvciAoaSA9IDI7IGkgPD0gYmFja2VuZF9tYXhp ZDsgaSsrKQorCXsKKwkJYmFja2VuZCA9IEJhY2tlbmRJZEdldFByb2MoaSk7CisKKwkJaWYg KGJhY2tlbmQgJiYgc3RhdGUtPmxzbltpXSAhPSAwICYmCisJCQlzdGF0ZS0+bHNuW2ldIDw9 IGN1cl9sc24pCisJCXsKKwkJCVNldExhdGNoKCZiYWNrZW5kLT5wcm9jTGF0Y2gpOworCQl9 CisJfQorCVNwaW5Mb2NrUmVsZWFzZSgmc3RhdGUtPm11dGV4KTsKK30KKworLyoKKyAqIEdl dCBtaW5pbWFsIExTTiB0aGF0IHNvbWVvbmUgd2FpdHMgZm9yCisgKi8KK1hMb2dSZWNQdHIK K0dldE1pbldhaXRlZExTTih2b2lkKQoreworCXJldHVybiBzdGF0ZS0+bWluX2xzbi52YWx1 ZTsKK30KKworLyoKKyAqIE9uIFdBSVQgdXNlIGEgbGF0Y2ggdG8gd2FpdCB0aWxsIExTTiBp cyByZXBsYXllZCwKKyAqIHBvc3RtYXN0ZXIgZGllcyBvciB0aW1lb3V0IGhhcHBlbnMuIFRp bWVvdXQgaXMgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4KKyAqIFJldHVybnMgdHJ1ZSBp ZiBMU04gd2FzIHJlYWNoZWQgYW5kIGZhbHNlIG90aGVyd2lzZS4KKyAqLworYm9vbAorV2Fp dFV0aWxpdHkoWExvZ1JlY1B0ciB0YXJnZXRfbHNuLCBjb25zdCBpbnQgdGltZW91dF9tcykK K3sKKwlYTG9nUmVjUHRyCWN1cl9sc24gPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOwor CWludAkJCWxhdGNoX2V2ZW50czsKKwlmbG9hdDgJCWVuZHRpbWU7CisJYm9vbAkJcmVzID0g ZmFsc2U7CisJYm9vbAkJd2FpdF9mb3JldmVyID0gKHRpbWVvdXRfbXMgPD0gMCk7CisKKwkv KgorCSAqIEluIHRyYW5zYWN0aW9ucywgdGhhdCBoYXZlIGlzb2xhdGlvbiBsZXZlbCByZXBl YXRhYmxlIHJlYWQgb3IgaGlnaGVyCisJICogd2FpdCBsc24gY3JlYXRlcyBhIHNuYXBzaG90 IGlmIGNhbGxlZCBmaXJzdCBpbiBhIGJsb2NrLCB3aGljaCBjYW4KKwkgKiBsZWFkIHRoZSB0 cmFuc2FjdGlvbiB0byB3b3JraW5nIGluY29ycmVjdGx5CisJICovCisKKwlpZiAoSXNUcmFu c2FjdGlvbkJsb2NrKCkgJiYgWGFjdElzb0xldmVsICE9IFhBQ1RfUkVBRF9DT01NSVRURUQp IHsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCWVycm1zZygiV2FpdGxzbiBtYXkgd29yayBp bmNvcnJlY3RseSBpbiB0aGlzIGlzb2xhdGlvbiBsZXZlbCIpLAorCQkJCWVycmhpbnQoIkNh bGwgd2FpdCBsc24gYmVmb3JlIHN0YXJ0aW5nIHRoZSB0cmFuc2FjdGlvbiIpKTsKKwl9CisK KwllbmR0aW1lID0gR2V0Tm93RmxvYXQoKSArIHRpbWVvdXRfbXMgLyAxMDAwLjA7CisKKwls YXRjaF9ldmVudHMgPSBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9Q TV9ERUFUSDsKKworCS8qIENoZWNrIGlmIHdlIGFscmVhZHkgcmVhY2hlZCB0aGUgbmVlZGVk IExTTiAqLworCWlmIChjdXJfbHNuID49IHRhcmdldF9sc24pCisJCXJldHVybiB0cnVlOwor CisJQWRkV2FpdGVkTFNOKHRhcmdldF9sc24pOworCisJZm9yICg7OykKKwl7CisJCWludAkJ CXJjOworCQlmbG9hdDgJCXRpbWVfbGVmdCA9IDA7CisJCWxvbmcJCXRpbWVfbGVmdF9tcyA9 IDA7CisKKwkJdGltZV9sZWZ0ID0gZW5kdGltZSAtIEdldE5vd0Zsb2F0KCk7CisKKwkJLyog VXNlIDEwMCBtcyBhcyB0aGUgZGVmYXVsdCB0aW1lb3V0IHRvIGNoZWNrIGZvciBpbnRlcnJ1 cHRzICovCisJCWlmICh3YWl0X2ZvcmV2ZXIgfHwgdGltZV9sZWZ0IDwgMCB8fCB0aW1lX2xl ZnQgPiAwLjEpCisJCQl0aW1lX2xlZnRfbXMgPSAxMDA7CisJCWVsc2UKKwkJCXRpbWVfbGVm dF9tcyA9IChsb25nKSBjZWlsKHRpbWVfbGVmdCAqIDEwMDAuMCk7CisKKwkJLyogSWYgaW50 ZXJydXB0LCBMb2NrRXJyb3JDbGVhbnVwKCkgd2lsbCBkbyBEZWxldGVXYWl0ZWRMU04oKSBm b3IgdXMgKi8KKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQkvKiBJZiBwb3N0bWFz dGVyIGRpZXMsIGZpbmlzaCBpbW1lZGlhdGVseSAqLworCQlpZiAoIVBvc3RtYXN0ZXJJc0Fs aXZlKCkpCisJCQlicmVhazsKKworCQlyYyA9IFdhaXRMYXRjaChNeUxhdGNoLCBsYXRjaF9l dmVudHMsIHRpbWVfbGVmdF9tcywKKwkJCQkJICAgV0FJVF9FVkVOVF9DTElFTlRfUkVBRCk7 CisKKwkJUmVzZXRMYXRjaChNeUxhdGNoKTsKKworCQlpZiAocmMgJiBXTF9MQVRDSF9TRVQp CisJCQljdXJfbHNuID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxMKTsKKworCQlpZiAocmMg JiBXTF9USU1FT1VUKQorCQl7CisJCQljdXJfbHNuID0gR2V0WExvZ1JlcGxheVJlY1B0cihO VUxMKTsKKwkJCS8qIElmIHRoZSB0aW1lIHNwZWNpZmllZCBieSB1c2VyIGhhcyBwYXNzZWQs IHN0b3Agd2FpdGluZyAqLworCQkJdGltZV9sZWZ0ID0gZW5kdGltZSAtIEdldE5vd0Zsb2F0 KCk7CisJCQlpZiAoIXdhaXRfZm9yZXZlciAmJiB0aW1lX2xlZnQgPD0gMC4wKQorCQkJCWJy ZWFrOworCQl9CisKKwkJLyogSWYgTFNOIGhhcyBiZWVuIHJlcGxheWVkICovCisJCWlmICh0 YXJnZXRfbHNuIDw9IGN1cl9sc24pCisJCQlicmVhazsKKwl9CisKKwlEZWxldGVXYWl0ZWRM U04oKTsKKworCWlmIChjdXJfbHNuIDwgdGFyZ2V0X2xzbikKKwkJZXJlcG9ydChXQVJOSU5H LAorCQkJCSBlcnJtc2coIkxTTiB3YXMgbm90IHJlYWNoZWQiKSwKKwkJCQkgZXJyaGludCgi VHJ5IHRvIGluY3JlYXNlIHdhaXQgdGltZS4iKSk7CisJZWxzZQorCQlyZXMgPSB0cnVlOwor CisJcmV0dXJuIHJlczsKK30KKworRGF0dW0KK3BnX3dhaXRfbHNuKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisJWExvZ1JlY1B0cgkJdHJnX2xzbiA9IFBHX0dFVEFSR19MU04oMCk7CisJdWlu dDY0X3QJCWRlbGF5ID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCisJUEdfUkVUVVJOX0JPT0wo V2FpdFV0aWxpdHkodHJnX2xzbiwgZGVsYXkpKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2ku YwppbmRleCA4ZjFkZWQ3MzM4Li43NjBkNzYwMzU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9pcGNpLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBj aS5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dwcmVmZXRjaGVy LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dyZWNvdmVyeS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2FzeW5jLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvd2FpdC5oIgogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIv YXV0b3ZhY3V1bS5oIgpAQCAtMTQyLDYgKzE0Myw3IEBAIENhbGN1bGF0ZVNobWVtU2l6ZShp bnQgKm51bV9zZW1hcGhvcmVzKQogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBTeW5jU2NhblNo bWVtU2l6ZSgpKTsKIAlzaXplID0gYWRkX3NpemUoc2l6ZSwgQXN5bmNTaG1lbVNpemUoKSk7 CiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIFN0YXRzU2htZW1TaXplKCkpOworCXNpemUgPSBh ZGRfc2l6ZShzaXplLCBXYWl0U2htZW1TaXplKCkpOwogI2lmZGVmIEVYRUNfQkFDS0VORAog CXNpemUgPSBhZGRfc2l6ZShzaXplLCBTaG1lbUJhY2tlbmRBcnJheVNpemUoKSk7CiAjZW5k aWYKQEAgLTI5NSw2ICsyOTcsMTEgQEAgQ3JlYXRlU2hhcmVkTWVtb3J5QW5kU2VtYXBob3Jl cyh2b2lkKQogCUFzeW5jU2htZW1Jbml0KCk7CiAJU3RhdHNTaG1lbUluaXQoKTsKIAorCS8q CisJICogSW5pdCBhcnJheSBvZiBldmVudHMgZm9yIHRoZSB3YWl0IGNsYXVzZSBpbiBzaGFy ZWQgbWVtb3J5CisJICovCisJV2FpdFNobWVtSW5pdCgpOworCiAjaWZkZWYgRVhFQ19CQUNL RU5ECiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2Mu YyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKaW5kZXggZGFjOTIxMjE5Zi4u OTJlMzU0Yzg0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2Mu YworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jCkBAIC0zNiw2ICszNiw3 IEBACiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvdHdv cGhhc2UuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ3V0aWxzLmgiCisjaW5jbHVkZSAiY29t bWFuZHMvd2FpdC5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBnc3Rh dC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIgpAQCAtNzA0LDYgKzcw NSw5IEBAIExvY2tFcnJvckNsZWFudXAodm9pZCkKIAogCUFib3J0U3Ryb25nTG9ja0FjcXVp cmUoKTsKIAorCS8qIElmIHdhaXQgbHNuIHdhcyBpbnRlcnJ1cHRlZCwgdGhlbiBzdG9wIHdh aXRpbmcgZm9yIHRoYXQgTFNOICovCisJRGVsZXRlV2FpdGVkTFNOKCk7CisKIAkvKiBOb3Ro aW5nIHRvIGRvIGlmIHdlIHdlcmVuJ3Qgd2FpdGluZyBmb3IgYSBsb2NrICovCiAJaWYgKGxv Y2tBd2FpdGVkID09IE5VTEwpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L21pc2MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9taXNjLmMKaW5kZXggNWQ3OGQ2 ZGMwNi4uZmJjOTZkYjE5OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21p c2MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbWlzYy5jCkBAIC0zODQsOCArMzg0 LDYgQEAgcGdfc2xlZXAoUEdfRlVOQ1RJT05fQVJHUykKIAkgKiBsZXNzIHRoYW4gdGhlIHNw ZWNpZmllZCB0aW1lIHdoZW4gV2FpdExhdGNoIGlzIHRlcm1pbmF0ZWQgZWFybHkgYnkgYQog CSAqIG5vbi1xdWVyeS1jYW5jZWxpbmcgc2lnbmFsIHN1Y2ggYXMgU0lHSFVQLgogCSAqLwot I2RlZmluZSBHZXROb3dGbG9hdCgpCSgoZmxvYXQ4KSBHZXRDdXJyZW50VGltZXN0YW1wKCkg LyAxMDAwMDAwLjApCi0KIAllbmR0aW1lID0gR2V0Tm93RmxvYXQoKSArIHNlY3M7CiAKIAlm b3IgKDs7KQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggNjk5NjA3Mzk4OS4uZWJm ZjVjYWRjZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjAzNSw2ICsxMjAz NSwxMSBAQAogICBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdwZ19i cmluX21pbm1heF9tdWx0aV9zdW1tYXJ5JywKICAgcHJvc3JjID0+ICdicmluX21pbm1heF9t dWx0aV9zdW1tYXJ5X3NlbmQnIH0sCiAKK3sgb2lkID0+ICcxNjM4NycsIGRlc2NyID0+ICd3 YWl0IGZvciBMU04gdW50aWwgdGltZW91dCcsCisgIHByb25hbWUgPT4gJ3BnX3dhaXRfbHNu JywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdwZ19sc24gaW50OCcs CisgIHByb2FyZ25hbWVzID0+ICd7dHJnX2xzbixkZWxheX0nLAorICBwcm9zcmMgPT4gJ3Bn X3dhaXRfbHNuJyB9LAorCiB7IG9pZCA9PiAnNjI5MScsIGRlc2NyID0+ICdhcmJpdHJhcnkg dmFsdWUgZnJvbSBhbW9uZyBpbnB1dCB2YWx1ZXMnLAogICBwcm9uYW1lID0+ICdhbnlfdmFs dWUnLCBwcm9raW5kID0+ICdhJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAogICBwcm9yZXR0eXBl ID0+ICdhbnllbGVtZW50JywgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQnLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvd2FpdC5oIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvd2FpdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmJkNTI2 NjRkZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy93YWl0LmgK QEAgLTAsMCArMSwyNiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogd2FpdC5o CisgKgkgIHByb3RvdHlwZXMgZm9yIGNvbW1hbmRzL3dhaXQuYworICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDIzLCBSZWdlbnRzIG9mIFBv c3RncmVzUHJvCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFuZHMvd2FpdC5oCisgKgorICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgV0FJVF9ICisjZGVmaW5lIFdBSVRf SAorI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisjaW5j bHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorCitleHRlcm4gYm9vbCBXYWl0VXRpbGl0eShY TG9nUmVjUHRyIGxzbiwgY29uc3QgaW50IHRpbWVvdXRfbXMpOworZXh0ZXJuIFNpemUgV2Fp dFNobWVtU2l6ZSh2b2lkKTsKK2V4dGVybiB2b2lkIFdhaXRTaG1lbUluaXQodm9pZCk7Citl eHRlcm4gdm9pZCBXYWl0U2V0TGF0Y2goWExvZ1JlY1B0ciBjdXJfbHNuKTsKK2V4dGVybiBY TG9nUmVjUHRyIEdldE1pbldhaXRlZExTTih2b2lkKTsKK2V4dGVybiB2b2lkIERlbGV0ZVdh aXRlZExTTih2b2lkKTsKKworI2VuZGlmCQkJCQkJCS8qIFdBSVRfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0YW1wLmggYi9zcmMvaW5jbHVkZS91dGlscy90 aW1lc3RhbXAuaAppbmRleCBjNGRkOTZjOGM5Li42ZDc2M2QxMTc1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy90aW1lc3RhbXAuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy90 aW1lc3RhbXAuaApAQCAtMTQ0LDQgKzE0NCw2IEBAIGV4dGVybiBpbnQJZGF0ZTJpc295ZWFy ZGF5KGludCB5ZWFyLCBpbnQgbW9uLCBpbnQgbWRheSk7CiAKIGV4dGVybiBib29sIFRpbWVz dGFtcFRpbWVzdGFtcFR6UmVxdWlyZXNSZXdyaXRlKHZvaWQpOwogCisjZGVmaW5lIEdldE5v d0Zsb2F0KCkgKChmbG9hdDgpIEdldEN1cnJlbnRUaW1lc3RhbXAoKSAvIDEwMDAwMDAuMCkK KwogI2VuZGlmCQkJCQkJCS8qIFRJTUVTVEFNUF9IICovCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWNvdmVyeS90LzAzNF93YWl0bHNuLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRf d2FpdGxzbi5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kYzll ODk5NjcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfd2Fp dGxzbi5wbApAQCAtMCwwICsxLDc2IEBACisjIENoZWNrcyB3YWl0IGxzbgordXNlIHN0cmlj dDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0 aWFsaXplIHByaW1hcnkgbm9kZQorbXkgJG5vZGVfcHJpbWFyeSA9IFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXItPm5ldygncHJpbWFyeScpOworJG5vZGVfcHJpbWFyeS0+aW5pdChhbGxv d3Nfc3RyZWFtaW5nID0+IDEpOworJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CisKKyMgQW5kIHNv bWUgY29udGVudCBhbmQgdGFrZSBhIGJhY2t1cAorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB3YWl0X3Rlc3QgQVMgU0VMRUNUIGdlbmVy YXRlX3NlcmllcygxLDEwKSBBUyBhIik7CitteSAkYmFja3VwX25hbWUgPSAnbXlfYmFja3Vw JzsKKyRub2RlX3ByaW1hcnktPmJhY2t1cCgkYmFja3VwX25hbWUpOworCisjIFVzaW5nIHRo ZSBiYWNrdXAsIGNyZWF0ZSBhIHN0cmVhbWluZyBzdGFuZGJ5IHdpdGggYSAxIHNlY29uZCBk ZWxheQorbXkgJG5vZGVfc3RhbmRieSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygnc3RhbmRieScpOworbXkgJGRlbGF5ICAgICAgICA9IDE7Ciskbm9kZV9zdGFuZGJ5LT5p bml0X2Zyb21fYmFja3VwKCRub2RlX3ByaW1hcnksICRiYWNrdXBfbmFtZSwKKwloYXNfc3Ry ZWFtaW5nID0+IDEpOworJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsIHFxWworCXJlY292ZXJ5X21pbl9hcHBseV9kZWxheSA9ICcke2RlbGF5fXMnCitd KTsKKyRub2RlX3N0YW5kYnktPnN0YXJ0OworCisjIENoZWNrIHRoYXQgdGltZW91dHMgbWFr ZSB1cyB3YWl0IGZvciB0aGUgc3BlY2lmaWVkIHRpbWUgKDFzIGhlcmUpCitteSAkY3VycmVu dF90aW1lID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg bm93KCkiKTsKK215ICR0d29fc2Vjb25kcyA9IDIwMDA7ICMgaW4gbWlsbGlzZWNvbmRzCitt eSAkc3RhcnRfdGltZSA9IHRpbWUoKTsKKyRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJTRUxFQ1QgcGdfd2FpdF9sc24oJzAvRkZGRkZGRkYnLCAkdHdvX3NlY29u ZHMpIik7CitteSAkdGltZV93YWl0ZWQgPSAodGltZSgpIC0gJHN0YXJ0X3RpbWUpICogMTAw MDsgIyBjb252ZXJ0IHRvIG1pbGxpc2Vjb25kcworb2soJHRpbWVfd2FpdGVkID49ICR0d29f c2Vjb25kcywgIndhaXQgbHNuIHdhaXRzIGZvciBlbm91Z2ggdGltZSIpOworCisjIENoZWNr IHRoYXQgdGltZW91dHMgbGV0IHVzIHN0b3Agd2FpdGluZyByaWdodCBhd2F5LCBiZWZvcmUg cmVhY2hpbmcgdGFyZ2V0IExTTgorIyBXYWl0IGZvciBubyB3YWl0Ciskbm9kZV9wcmltYXJ5 LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gd2FpdF90ZXN0IFZBTFVF UyAoZ2VuZXJhdGVfc2VyaWVzKDExLCAyMCkpIik7CitteSAkbHNuMSA9ICRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHBnX2N1cnJlbnRfd2FsX2xzbigp Iik7CitteSAoJHJldCwgJG91dCwgJGVycikgPSAkbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0 Z3JlcycsCisJIlNFTEVDVCBwZ193YWl0X2xzbignJGxzbjEnLCAxKSIpOworCitvaygkcmV0 ID09IDAsICJ6ZXJvIHJldHVybiB2YWx1ZSB3aGVuIGZhaWxlZCB0byB3YWl0IGxzbiBvbiBz dGFuZGJ5Iik7CitvaygkZXJyID1+IC9XQVJOSU5HOiAgTFNOIHdhcyBub3QgcmVhY2hlZC8s CisJImNvcnJlY3QgZXJyb3IgbWVzc2FnZSB3aGVuIGZhaWxlZCB0byB3YWl0IGxzbiBvbiBz dGFuZGJ5Iik7Citvaygkb3V0IGVxICJmIiwgImlmIGdpdmVuIHRvbyBsaXR0bGUgd2FpdCB0 aW1lLCBXQUlUIGRvZXNuJ3QgcmVhY2ggdGFyZ2V0IExTTiIpOworCisKKyMgQ2hlY2sgdGhh dCB3YWl0IGxzbiB3b3JrcyBmaW5lIGFuZCByZWFjaGVzIHRhcmdldCBMU04gaWYgZ2l2ZW4g bm8gdGltZW91dAorIyBXYWl0IGZvciBpbmZpbml0ZQorCisjIEFkZCBkYXRhIG9uIHByaW1h cnksIG1lbW9yaXplIHByaW1hcnkncyBsYXN0IExTTgorJG5vZGVfcHJpbWFyeS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHdhaXRfdGVzdCBWQUxVRVMgKGdlbmVy YXRlX3NlcmllcygyMSwgMzApKSIpOworbXkgJGxzbjIgPSAkbm9kZV9wcmltYXJ5LT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBwZ19jdXJyZW50X3dhbF9sc24oKSIpOworCisj IFdhaXQgZm9yIGl0IHRvIGFwcGVhciBvbiByZXBsaWNhLCBtZW1vcml6ZSByZXBsaWNhJ3Mg bGFzdCBMU04KKyRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxF Q1QgcGdfd2FpdF9sc24oJyRsc24yJywgMCkiKTsKK215ICRyZWFjaGVkX2xzbiA9ICRub2Rl X3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdfbGFzdF93YWxf cmVwbGF5X2xzbigpIik7CisKKyMgTWFrZSBzdXJlIHRoYXQgcHJpbWFyeSdzIGFuZCByZXBs aWNhJ3MgTFNOcyBhcmUgdGhlIHNhbWUgYWZ0ZXIgV0FJVAorbXkgJGNvbXBhcmVfbHNucyA9 ICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdfbHNu X2NtcCgnJHJlYWNoZWRfbHNuJzo6cGdfbHNuLCAnJGxzbjInOjpwZ19sc24pIik7Citvaygk Y29tcGFyZV9sc25zIGVxIDAsCisJInN0YW5kYnkgcmVhY2hlZCB0aGUgc2FtZSBMU04gYXMg cHJpbWFyeSBiZWZvcmUgc3RhcnRpbmcgdHJhbnNhY3Rpb24iKTsKKworJG5vZGVfc3RhbmRi eS0+c3RvcDsKKyRub2RlX3ByaW1hcnktPnN0b3A7CisKK2RvbmVfdGVzdGluZygpOwpkaWZm IC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAyNjA4NTQ3NDdiLi4xN2UxZDE3NjYwIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjk5Miw2ICsyOTkyLDcgQEAgV2Fp dEV2ZW50SVBDCiBXYWl0RXZlbnRTZXQKIFdhaXRFdmVudFRpbWVvdXQKIFdhaXRQTVJlc3Vs dAorV2FpdFN0YXRlCiBXYWxDbG9zZU1ldGhvZAogV2FsQ29tcHJlc3Npb24KIFdhbExldmVs Cg== ------=_=-_OpenGroupware_org_NGMime-1416891-1688113943.366220-1--------