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 1qBXda-0005FM-Cz for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jun 2023 09:26:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qBXdZ-0005AJ-BP for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jun 2023 09:26:57 +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 1qBXdY-0005AA-QP for pgsql-hackers@lists.postgresql.org; Tue, 20 Jun 2023 09:26:57 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qBXdU-003DJB-D0 for pgsql-hackers@lists.postgresql.org; Tue, 20 Jun 2023 09:26:55 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 04A21605FD for ; Tue, 20 Jun 2023 18:26:49 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.8 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_eb0ded237b60e0de5941276b3595e1dd" Content-Transfer-Encoding: 7bit Date: Tue, 20 Jun 2023 18:26:48 +0900 From: Masahiro Ikeda To: pgsql-hackers@lists.postgresql.org Subject: Re: Support to define custom wait events for extensions In-Reply-To: References: User-Agent: Roundcube Webmail/1.4.11 Message-ID: <135feae32cd28f9fb555fe46acb939a0@oss.nttdata.com> X-Sender: ikedamsh@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_eb0ded237b60e0de5941276b3595e1dd Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, I updated the patches. The main changes are * to support only dynamic wait event allocation * to add a regression test I appreciate any feedback. The followings are TODO items. * to check that meson.build works since I tested with old command `make` now * to make documents * to add custom wait events for existing contrib modules (ex. postgres_fdw) Regards, -- Masahiro Ikeda NTT DATA CORPORATION --=_eb0ded237b60e0de5941276b3595e1dd Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002-Add-test-codes-for-custom-wait-events.patch Content-Disposition: attachment; filename=0002-Add-test-codes-for-custom-wait-events.patch; size=11651 RnJvbSAyMDZjZTllMWQ3NGQxNDQ5YjUwY2ZjNzY1OTM2MTcyZGU5ODY4N2U4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlybyBJa2VkYSA8bWFzYWhpcm8uaWtlZGEudXNAaGNv Lm50dC5jby5qcD4KRGF0ZTogVHVlLCAyMCBKdW4gMjAyMyAxNzo1OTozNCArMDkwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBBZGQgdGVzdCBjb2RlcyBmb3IgY3VzdG9tIHdhaXQgZXZlbnRzCgotLS0K IHNyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAu Li4vdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvLmdpdGlnbm9yZSAgICAgICAgfCAgIDIgKwogLi4u L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvTWFrZWZpbGUgIHwgIDIzICsrKwogLi4u L3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL21lc29uLmJ1aWxkICAgICAgIHwgIDMzICsrKysKIC4u Li90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90LzAwMV9iYXNpYy5wbCAgICB8ICAzNCArKysrCiAu Li4vdGVzdF9jdXN0b21fd2FpdF9ldmVudHMtLTEuMC5zcWwgICAgICAgICAgfCAgMTQgKysKIC4u Li90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy5jICAgICAgICAgICAgICAgICB8IDE4MiArKysrKysr KysrKysrKysrKysKIC4uLi90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy5jb250cm9sICAgICAgICAg ICB8ICAgMyArCiA4IGZpbGVzIGNoYW5nZWQsIDI5MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy8uZ2l0aWdu b3JlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0 X2V2ZW50cy9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVz dF9jdXN0b21fd2FpdF9ldmVudHMvbWVzb24uYnVpbGQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL3QvMDAxX2Jhc2ljLnBsCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90 ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdGVzdF9jdXN0b21fd2FpdF9ldmVu dHMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2Fp dF9ldmVudHMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMuY29udHJvbAoKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L21vZHVsZXMvTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCmluZGV4 IDYzMzFjOTc2ZGMuLjg0MzEyYjdlNTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvTWFr ZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQpAQCAtMTcsNiArMTcsNyBAQCBT VUJESVJTID0gXAogCQkgIHRlc3RfYmxvb21maWx0ZXIgXAogCQkgIHRlc3RfY29weV9jYWxsYmFj a3MgXAogCQkgIHRlc3RfY3VzdG9tX3JtZ3JzIFwKKwkJICB0ZXN0X2N1c3RvbV93YWl0X2V2ZW50 cyBcCiAJCSAgdGVzdF9kZGxfZGVwYXJzZSBcCiAJCSAgdGVzdF9leHRlbnNpb25zIFwKIAkJICB0 ZXN0X2dpbnBvc3RpbmdsaXN0IFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9j dXN0b21fd2FpdF9ldmVudHMvLmdpdGlnbm9yZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0 b21fd2FpdF9ldmVudHMvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi43MTZlMTdmNWEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMiBAQAorIyBHZW5l cmF0ZWQgc3ViZGlyZWN0b3JpZXMKKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi5kZGEzNjVkNTIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy9NYWtlZmlsZQpAQCAtMCwwICsxLDIzIEBA CisjIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvTWFrZWZpbGUKKwor TU9EVUxFX2JpZyA9IHRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzCitPQkpTID0gXAorCSQoV0lOMzJS RVMpIFwKKwl0ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy5vCitQR0ZJTEVERVNDID0gInRlc3RfY3Vz dG9tX3dhaXRfZXZlbnRzIC0gdGVzdCBjdXN0b20gd2FpdCBldmVudHMiCisKK0VYVEVOU0lPTiA9 IHRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzCitEQVRBID0gdGVzdF9jdXN0b21fd2FpdF9ldmVudHMt LTEuMC5zcWwKKworVEFQX1RFU1RTID0gMQorCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0g cGdfY29uZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUg JChQR1hTKQorZWxzZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0 X2V2ZW50cwordG9wX2J1aWxkZGlyID0gLi4vLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRk aXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb250cmliL2Nv bnRyaWItZ2xvYmFsLm1rCitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2N1c3RvbV93YWl0X2V2ZW50cy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9j dXN0b21fd2FpdF9ldmVudHMvbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uZGEyYjcyMGY4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvbWVzb24uYnVpbGQKQEAgLTAsMCArMSwzMyBAQAor IyBDb3B5cmlnaHQgKGMpIDIwMjItMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKwordGVzdF9jdXN0b21fd2FpdF9ldmVudHMgPSBmaWxlcygKKyAgJ3Rlc3RfY3VzdG9t X3dhaXRfZXZlbnRzLmMnLAorKQorCitpZiBob3N0X3N5c3RlbSA9PSAnd2luZG93cycKKyAgdGVz dF9jdXN0b21fd2FpdF9ldmVudHMgKz0gcmNfbGliX2dlbi5wcm9jZXNzKHdpbjMydmVyX3JjLCBl eHRyYV9hcmdzOiBbCisgICAgJy0tTkFNRScsICd0ZXN0X2N1c3RvbV93YWl0X2V2ZW50cycsCisg ICAgJy0tRklMRURFU0MnLCAndGVzdF9jdXN0b21fd2FpdF9ldmVudHMgLSB0ZXN0IGN1c3RvbSB3 YWl0IGV2ZW50cycsXSkKK2VuZGlmCisKK3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzID0gc2hhcmVk X21vZHVsZSgndGVzdF9jdXN0b21fd2FpdF9ldmVudHMnLAorICB0ZXN0X2N1c3RvbV93YWl0X2V2 ZW50cywKKyAga3dhcmdzOiBwZ190ZXN0X21vZF9hcmdzLAorKQordGVzdF9pbnN0YWxsX2xpYnMg Kz0gdGVzdF9jdXN0b21fd2FpdF9ldmVudHMKKwordGVzdF9pbnN0YWxsX2RhdGEgKz0gZmlsZXMo CisgICd0ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy5jb250cm9sJywKKyAgJ3Rlc3RfY3VzdG9tX3dh aXRfZXZlbnRzLS0xLjAuc3FsJywKKykKKwordGVzdHMgKz0geworICAnbmFtZSc6ICd0ZXN0X2N1 c3RvbV93YWl0X2V2ZW50cycsCisgICdzZCc6IG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLAor ICAnYmQnOiBtZXNvbi5jdXJyZW50X2J1aWxkX2RpcigpLAorICAndGFwJzogeworICAgICd0ZXN0 cyc6IFsKKyAgICAgICd0LzAwMV9iYXNpYy5wbCcsCisgICAgXSwKKyAgfSwKK30KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdC8wMDFfYmFzaWMu cGwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL3QvMDAxX2Jhc2lj LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjU5YmExNDkxOWIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRz L3QvMDAxX2Jhc2ljLnBsCkBAIC0wLDAgKzEsMzQgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIw MjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1 c2Ugd2FybmluZ3M7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3Rn cmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRub2RlID0gUG9zdGdy ZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdtYWluJyk7CisKKyRub2RlLT5pbml0OworJG5vZGUt PmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCAKKwkic2hhcmVkX3ByZWxvYWRfbGli cmFyaWVzID0gJ3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzJyIKKyk7Ciskbm9kZS0+c3RhcnQ7CisK KyMgc2V0dXAKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBFWFRFTlNJT04g dGVzdF9jdXN0b21fd2FpdF9ldmVudHM7Jyk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgJ1NFTEVDVCB3YWl0X3dvcmtlcl9sYXVuY2goKTsnKTsKKworb2soJG5vZGUtPnBvbGxfcXVl cnlfdW50aWwoJ3Bvc3RncmVzJywKKwlxcVtTRUxFQ1QgCisJCShTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zdGF0X2FjdGl2aXR5CisJIAkJV0hFUkUgYmFja2VuZF90eXBlID0gJ3Rlc3RfY3VzdG9t X3dhaXRfZXZlbnRzJworCQkJICBBTkQgd2FpdF9ldmVudF90eXBlID0gJ0V4dGVuc2lvbicKKwkJ CSAgQU5EIHdhaXRfZXZlbnQgPSAnY3VzdG9tX3dhaXRfZXZlbnQnCisJCSkgPiAwO10pCispIG9y IGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgdGhlIGN1c3RvbSB3YWl0IGV2ZW50IHRvIGJlIHNob3dl ZCB1cCI7CisKKyRub2RlLT5zdG9wOworZG9uZV90ZXN0aW5nKCk7ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0 X2V2ZW50cy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy0tMS4wLnNxbCBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMtLTEuMC5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMWZjMjEzMGY4NAotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMv dGVzdF9jdXN0b21fd2FpdF9ldmVudHMtLTEuMC5zcWwKQEAgLTAsMCArMSwxNCBAQAorLyogc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90ZXN0X2N1c3RvbV93YWl0X2V2 ZW50cy0tMS4wLnNxbCAqLworCistLSBjb21wbGFpbiBpZiBzY3JpcHQgaXMgc291cmNlZCBpbiBw c3FsLCByYXRoZXIgdGhhbiB2aWEgQ1JFQVRFIEVYVEVOU0lPTgorXGVjaG8gVXNlICJDUkVBVEUg RVhURU5TSU9OIHRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzIiB0byBsb2FkIHRoaXMgZmlsZS4gXHF1 aXQKKworLS0KKy0tIHdhaXRfd29ya2VyX2xhdW5jaCgpCistLQorLS0gTGF1bmNoIGEgYmFja2dy b3VuZCB3b3JrZXIgdG8gd2FpdCBmb3JldmVyIHdpdGggYSBjdXN0b20gd2FpdCBldmVudC4KKy0t CitDUkVBVEUgRlVOQ1RJT04gd2FpdF93b3JrZXJfbGF1bmNoKCkKK1JFVFVSTlMgaW50CitBUyAn TU9EVUxFX1BBVEhOQU1FJywgJ3dhaXRfd29ya2VyX2xhdW5jaCcKK0xBTkdVQUdFIEMgU1RSSUNU IFBBUkFMTEVMIFNBRkU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9t X3dhaXRfZXZlbnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLmMgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYmEzZmU0NWFkNgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdGVzdF9jdXN0 b21fd2FpdF9ldmVudHMuYwpAQCAtMCwwICsxLDE4MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICoKKyAqIHRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLmMKKyAqCQlDb2RlIGZvciB0ZXN0aW5nIGN1 c3RvbSB3YWl0IGV2ZW50cworICoKKyAqIFRoaXMgY29kZSBpbml0aWFsaXplcyBhIGN1c3RvbSB3 YWl0IGV2ZW50IGluIHNobWVtX3JlcXVlc3RfaG9vaygpIGFuZAorICogcHJvdmlkZSBhIGZ1bmN0 aW9uIHRvIGxhdW5jaCBhIGJhY2tncm91bmQgd29ya2VyIHdhaXRpbmcgZm9yZXZlcgorICogd2l0 aCB0aGUgY3VzdG9tIHdhaXQgZXZlbnQuCisgKiAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy90ZXN0L21vZHVsZXMvdGVzdF9j dXN0b21fd2FpdF9ldmVudHMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMuYworICoKKyAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImZt Z3IuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL2Jnd29y a2VyLmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKKyNpbmNsdWRlICJzdG9y YWdlL2lwYy5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbGF0Y2guaCIKKyNpbmNsdWRlICJzdG9yYWdl L2x3bG9jay5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInN0b3JhZ2Uv c2htZW0uaCIKKyNpbmNsdWRlICJ0Y29wL3V0aWxpdHkuaCIKKyNpbmNsdWRlICJ1dGlscy93YWl0 X2V2ZW50LmgiCisKK1BHX01PRFVMRV9NQUdJQzsKKworUEdfRlVOQ1RJT05fSU5GT19WMSh3YWl0 X3dvcmtlcl9sYXVuY2gpOworCitQR0RMTEVYUE9SVCB2b2lkIHdvcmtlcl9tYWluKERhdHVtIG1h aW5fYXJnKTsKKworLyogR1VDIHZhcmlhYmxlcyAqLwordHlwZWRlZiBzdHJ1Y3Qgc3RhdGUKK3sK Kwl1aW50MzIJCQl3YWl0X2V2ZW50X2luZm87ICAvKiBhIGFsbG9jYXRlZCB3YWl0IGV2ZW50ICov Cit9CQkJc3RhdGU7CisKK3N0YXRpYyBzaG1lbV9yZXF1ZXN0X2hvb2tfdHlwZSBwcmV2X3NobWVt X3JlcXVlc3RfaG9vayA9IE5VTEw7CitzdGF0aWMgc2htZW1fcmVxdWVzdF9ob29rX3R5cGUgcHJl dl9zaG1lbV9zdGFydHVwX2hvb2sgPSBOVUxMOworCitzdGF0aWMgY2hhciAqIHdvcmtlcl9kYXRh YmFzZSA9ICJwb3N0Z3JlcyI7ICAgLyogY29ubmVjdGVkIGJ5IGEgYmFja2dyb3VuZCB3b3JrZXIg Ki8KK3N0YXRpYyBzdGF0ZSAqIHNzID0gTlVMTDsKKworc3RhdGljIHZvaWQgc2htZW1fcmVxdWVz dCh2b2lkKTsKK3N0YXRpYyB2b2lkIHNobWVtX3N0YXJ0dXAodm9pZCk7CitzdGF0aWMgU2l6ZSBt ZW1zaXplKHZvaWQpOworCit2b2lkCitfUEdfaW5pdCh2b2lkKQoreworCWlmICghcHJvY2Vzc19z aGFyZWRfcHJlbG9hZF9saWJyYXJpZXNfaW5fcHJvZ3Jlc3MpCisJCXJldHVybjsKKworCXByZXZf c2htZW1fcmVxdWVzdF9ob29rID0gc2htZW1fcmVxdWVzdF9ob29rOworCXNobWVtX3JlcXVlc3Rf aG9vayA9IHNobWVtX3JlcXVlc3Q7CisJcHJldl9zaG1lbV9zdGFydHVwX2hvb2sgPSBzaG1lbV9z dGFydHVwX2hvb2s7CisJc2htZW1fc3RhcnR1cF9ob29rID0gc2htZW1fc3RhcnR1cDsKK30KKwor c3RhdGljIHZvaWQKK3NobWVtX3JlcXVlc3Qodm9pZCkKK3sKKwlpZiAocHJldl9zaG1lbV9yZXF1 ZXN0X2hvb2spCisJCXByZXZfc2htZW1fcmVxdWVzdF9ob29rKCk7CisKKwlSZXF1ZXN0QWRkaW5T aG1lbVNwYWNlKG1lbXNpemUoKSk7Cit9CisKK3N0YXRpYyBTaXplCittZW1zaXplKHZvaWQpCit7 CisJcmV0dXJuIHNpemVvZihzdGF0ZSk7Cit9CisKKy8qCisgKiBBbGxvY2F0ZSBhbmQgcmVnaXN0 ZXIgYSBuZXcgd2FpdCBldmVudC4KKyAqCisgKiBUaGlzIHJvdXRpbmUgYWxsb2NhdGUgYSB3YWl0 IGV2ZW50IGlkIHdoZW4gaXQncyBjYWxsZWQgZmlyc3QgdGltZS4KKyAqIEFmdGVyIHRoYXQsIHRo ZSBuYW1lIG9mIHRoZSB3YWl0IGV2ZW50IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgaWQuIEl0J3MK KyAqIHJlZ2lzdGVyZWQgaW4gdGhlIGxvb2t1cCB0YWJsZSBvZiBlYWNoIHByb2Nlc3NlcyBkeW5h bWljYWxseS4KKyAqLworc3RhdGljIHZvaWQKK3NobWVtX3N0YXJ0dXAodm9pZCkKK3sKKwlib29s CQlmb3VuZDsKKworCWlmIChwcmV2X3NobWVtX3N0YXJ0dXBfaG9vaykKKwkJcHJldl9zaG1lbV9z dGFydHVwX2hvb2soKTsKKworCXNzID0gTlVMTDsKKworCS8qIENyZWF0ZSBvciBhdHRhY2ggdG8g dGhlIHNoYXJlZCBtZW1vcnkgc3RhdGUgKi8KKwlMV0xvY2tBY3F1aXJlKEFkZGluU2htZW1Jbml0 TG9jaywgTFdfRVhDTFVTSVZFKTsKKwlzcyA9IFNobWVtSW5pdFN0cnVjdCgiY3VzdG9tX3dhaXRf ZXZlbnQiLAorCQkJCQkJIHNpemVvZihzdGF0ZSksCisJCQkJCQkgJmZvdW5kKTsKKworCS8qIEFs bG9jYXRlIGEgbmV3IHdhaXQgZXZlbnQuICovCisJaWYgKCFmb3VuZCkKKwkJc3MtPndhaXRfZXZl bnRfaW5mbyA9IEV4dGVuc2lvbldhaXRFdmVudE5ld1RyYW5jaGUoKTsKKworCUxXTG9ja1JlbGVh c2UoQWRkaW5TaG1lbUluaXRMb2NrKTsKKworCS8qCisJICogUmVnaXN0ZXIgdGhlIHdhaXQgZXZl bnQgaW4gdGhlIGxvb2t1cCB0YWJsZSBvZiB0aGUgY3VycmVudCBwcm9jZXNzLgorCSAqLworCUV4 dGVuc2lvbldhaXRFdmVudFJlZ2lzdGVyVHJhbmNoZShzcy0+d2FpdF9ldmVudF9pbmZvLCAiY3Vz dG9tX3dhaXRfZXZlbnQiKTsKKworCXJldHVybjsKK30KKworLyoKKyAqIENvbm5lY3QgdG8gdGhl IGRhdGFiYXNlIGFuZCB3YWl0IGZvcmV2ZXIgd2l0aCB0aGUgY3VzdG9tIHdhaXQgZXZlbnQKKyAq Lwordm9pZAord29ya2VyX21haW4oRGF0dW0gbWFpbl9hcmcpCit7CisJcHFzaWduYWwoU0lHVEVS TSwgU2lnbmFsSGFuZGxlckZvclNodXRkb3duUmVxdWVzdCk7CisJQmFja2dyb3VuZFdvcmtlclVu YmxvY2tTaWduYWxzKCk7CisKKwkvKiBDb25uZWN0IHRvIG91ciBkYXRhYmFzZSB0byBzaG93IHVw IGEgd2FpdCBldmVudCBpbiBwZ19zdGF0X2FjdGl2aXR5ICovCisJQmFja2dyb3VuZFdvcmtlcklu aXRpYWxpemVDb25uZWN0aW9uKHdvcmtlcl9kYXRhYmFzZSwgTlVMTCwgMCk7CisKKwkvKiBXYWl0 IGZvcmV2ZXIgd2l0aCB0aGUgY3VzdG9tIHdhaXQgZXZlbnQgKi8KKwl3aGlsZSAoIVNodXRkb3du UmVxdWVzdFBlbmRpbmcpCisJeworCQkodm9pZCkgV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJCQkg V0xfTEFUQ0hfU0VUIHwgV0xfRVhJVF9PTl9QTV9ERUFUSCwKKwkJCQkJCSAtMUwsCisJCQkJCQkg c3MtPndhaXRfZXZlbnRfaW5mbyk7ICAvKiB0aGUgY3VzdG9tIHdhaXQgZXZlbnQgKi8KKwkJUmVz ZXRMYXRjaChNeUxhdGNoKTsKKwl9Cit9CisKKy8qCisgKiBEeW5hbWljYWxseSBsYXVuY2ggYSBi YWNrZ3JvdW5kIHdvcmtlciB3YWl0aW5nIGZvcmV2ZXIKKyAqLworRGF0dW0KK3dhaXRfd29ya2Vy X2xhdW5jaChQR19GVU5DVElPTl9BUkdTKQoreworCUJhY2tncm91bmRXb3JrZXIgd29ya2VyOwor CUJhY2tncm91bmRXb3JrZXJIYW5kbGUgKmhhbmRsZTsKKwlCZ3dIYW5kbGVTdGF0dXMgc3RhdHVz OworCXBpZF90CQlwaWQ7CisKKwltZW1zZXQoJndvcmtlciwgMCwgc2l6ZW9mKHdvcmtlcikpOwor CXdvcmtlci5iZ3dfZmxhZ3MgPSBCR1dPUktFUl9TSE1FTV9BQ0NFU1MgfAorCQlCR1dPUktFUl9C QUNLRU5EX0RBVEFCQVNFX0NPTk5FQ1RJT047CisJd29ya2VyLmJnd19zdGFydF90aW1lID0gQmdX b3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkOworCXdvcmtlci5iZ3dfcmVzdGFydF90aW1lID0g QkdXX05FVkVSX1JFU1RBUlQ7CisJc3ByaW50Zih3b3JrZXIuYmd3X2Z1bmN0aW9uX25hbWUsICJ3 b3JrZXJfbWFpbiIpOworCXNwcmludGYod29ya2VyLmJnd19saWJyYXJ5X25hbWUsICJ0ZXN0X2N1 c3RvbV93YWl0X2V2ZW50cyIpOworCXNucHJpbnRmKHdvcmtlci5iZ3dfbmFtZSwgQkdXX01BWExF TiwgInRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzIHdvcmtlciIpOworCXNucHJpbnRmKHdvcmtlci5i Z3dfdHlwZSwgQkdXX01BWExFTiwgInRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzIik7CisJd29ya2Vy LmJnd19ub3RpZnlfcGlkID0gTXlQcm9jUGlkOworCisJaWYgKCFSZWdpc3RlckR5bmFtaWNCYWNr Z3JvdW5kV29ya2VyKCZ3b3JrZXIsICZoYW5kbGUpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJ c3RhdHVzID0gV2FpdEZvckJhY2tncm91bmRXb3JrZXJTdGFydHVwKGhhbmRsZSwgJnBpZCk7CisK KwlpZiAoc3RhdHVzID09IEJHV0hfU1RPUFBFRCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9SRVNPVVJDRVMpLAorCQkJCSBlcnJtc2coImNvdWxk IG5vdCBzdGFydCBiYWNrZ3JvdW5kIHByb2Nlc3MiKSwKKwkJCQkgZXJyaGludCgiTW9yZSBkZXRh aWxzIG1heSBiZSBhdmFpbGFibGUgaW4gdGhlIHNlcnZlciBsb2cuIikpKTsKKwlpZiAoc3RhdHVz ID09IEJHV0hfUE9TVE1BU1RFUl9ESUVEKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1JFU09VUkNFUyksCisJCQkJIGVycm1zZygiY2Fubm90IHN0 YXJ0IGJhY2tncm91bmQgcHJvY2Vzc2VzIHdpdGhvdXQgcG9zdG1hc3RlciIpLAorCQkJCSBlcnJo aW50KCJLaWxsIGFsbCByZW1haW5pbmcgZGF0YWJhc2UgcHJvY2Vzc2VzIGFuZCByZXN0YXJ0IHRo ZSBkYXRhYmFzZS4iKSkpOworCUFzc2VydChzdGF0dXMgPT0gQkdXSF9TVEFSVEVEKTsKKworCVBH X1JFVFVSTl9JTlQzMihwaWQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2N1c3RvbV93YWl0X2V2ZW50cy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy5jb250cm9sIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90ZXN0X2N1c3RvbV93YWl0X2V2 ZW50cy5jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhkZDg3 NWEyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dh aXRfZXZlbnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLmNvbnRyb2wKQEAgLTAsMCArMSwzIEBA Citjb21tZW50ID0gJ1Rlc3QgY29kZSBmb3IgY3VzdG9tIHdhaXQgZXZlbnRzJworZGVmYXVsdF92 ZXJzaW9uID0gJzEuMCcKK21vZHVsZV9wYXRobmFtZSA9ICckbGliZGlyL3Rlc3RfY3VzdG9tX3dh aXRfZXZlbnRzJwotLSAKMi4yNS4xCgo= --=_eb0ded237b60e0de5941276b3595e1dd Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-Support-custom-wait-events-for-extensions.patch Content-Disposition: attachment; filename=0001-Support-custom-wait-events-for-extensions.patch; size=9301 RnJvbSA4YTgwOTNjN2NkZmZmNzg1YmRkZTFkOGU4MzAzNjdlNTc4M2FiMzdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlybyBJa2VkYSA8bWFzYWhpcm8uaWtlZGEudXNAaGNv Lm50dC5jby5qcD4KRGF0ZTogRnJpLCAxNiBKdW4gMjAyMyAxMTo1MzoyOSArMDkwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBTdXBwb3J0IGN1c3RvbSB3YWl0IGV2ZW50cyBmb3IgZXh0ZW5zaW9ucy4K ClRvIHN1cHBvcnQgY3VzdG9tIHdhaXQgZXZlbnRzLCBpdCBhZGQgMiBBUElzIHRvIGFsbG9jYXRl Cm5ldyB3YWl0IGV2ZW50cyBkeW5hbWljYWxseS4KClRoZSBBUElzIGFyZQoqIEV4dGVuc2lvbldh aXRFdmVudE5ld1RyYW5jaGUoKQoqIEV4dGVuc2lvbldhaXRFdmVudFJlZ2lzdGVyVHJhbmNoZSgp CgpUaGV5IHNpbWlsYXIgdG8gZXhpc3RpbmcgTFdMb2NrTmV3VHJhbmNoZUlkKCkgYW5kCkxXTG9j a1JlZ2lzdGVyVHJhbmNoZSgpLgoKRmlyc3QsIGV4dGVuc2lvbiBjYWxscyBFeHRlbnNpb25XYWl0 RXZlbnROZXdUcmFuY2hlKCkKanVzdCBvbmNlIHRvIG9idGFpbiBhIG5ldyB3YWl0IGV2ZW50IHRy YW5jaGU7IFRoZSBJRCBpcwphbGxvY2F0ZWQgZnJvbSBhIHNoYXJlZCBjb3VudGVyLiBOZXh0LCBl YWNoIGluZGl2aWR1YWwKcHJvY2VzcyB1c2luZyB0aGUgdHJhbmNoZSBzaG91bGQgY2FsbApFeHRl bnNpb25XYWl0RXZlbnRSZWdpc3RlclRyYW5jaGUoKSB0byBhc3NvY2lhdGUgdGhhdAp3YWl0IGV2 ZW50IHdpdGggYSBuYW1lLgotLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYyAgICAg ICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zaG1lbS5jICAgICAgICAgfCAg IDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQuYyB8IDEzOCArKysr KysrKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaCAgICAg ICAgICB8ICAyOSArKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKaW5kZXggOGYxZGVkNzMzOC4uZWQwNTEy MWZhMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUg InN0b3JhZ2Uvc3Bpbi5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxz L3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy93YWl0X2V2ZW50LmgiCiAKIC8qIEdVQ3MgKi8K IGludAkJCXNoYXJlZF9tZW1vcnlfdHlwZSA9IERFRkFVTFRfU0hBUkVEX01FTU9SWV9UWVBFOwpA QCAtMTQyLDYgKzE0Myw3IEBAIENhbGN1bGF0ZVNobWVtU2l6ZShpbnQgKm51bV9zZW1hcGhvcmVz KQogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBTeW5jU2NhblNobWVtU2l6ZSgpKTsKIAlzaXplID0g YWRkX3NpemUoc2l6ZSwgQXN5bmNTaG1lbVNpemUoKSk7CiAJc2l6ZSA9IGFkZF9zaXplKHNpemUs IFN0YXRzU2htZW1TaXplKCkpOworCXNpemUgPSBhZGRfc2l6ZShzaXplLCBXYWl0RXZlbnRTaG1l bVNpemUoKSk7CiAjaWZkZWYgRVhFQ19CQUNLRU5ECiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIFNo bWVtQmFja2VuZEFycmF5U2l6ZSgpKTsKICNlbmRpZgpAQCAtMjk0LDYgKzI5Niw3IEBAIENyZWF0 ZVNoYXJlZE1lbW9yeUFuZFNlbWFwaG9yZXModm9pZCkKIAlTeW5jU2NhblNobWVtSW5pdCgpOwog CUFzeW5jU2htZW1Jbml0KCk7CiAJU3RhdHNTaG1lbUluaXQoKTsKKwlXYWl0RXZlbnRTaG1lbUlu aXQoKTsKIAogI2lmZGVmIEVYRUNfQkFDS0VORAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9z dG9yYWdlL2lwYy9zaG1lbS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htZW0uYwppbmRl eCA1NDY1ZmExOTY0Li4wMmM3MmViYmIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdl L2lwYy9zaG1lbS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMKQEAgLTg1 LDcgKzg1LDggQEAgc3RhdGljIHZvaWQgKlNobWVtQmFzZTsJCQkvKiBzdGFydCBhZGRyZXNzIG9m IHNoYXJlZCBtZW1vcnkgKi8KIAogc3RhdGljIHZvaWQgKlNobWVtRW5kOwkJCS8qIGVuZCsxIGFk ZHJlc3Mgb2Ygc2hhcmVkIG1lbW9yeSAqLwogCi1zbG9ja190ICAgICpTaG1lbUxvY2s7CQkJLyog c3BpbmxvY2sgZm9yIHNoYXJlZCBtZW1vcnkgYW5kIExXTG9jaworc2xvY2tfdCAgICAqU2htZW1M b2NrOwkJCS8qIHNwaW5sb2NrIGZvciBzaGFyZWQgbWVtb3J5LCBMV0xvY2sKKwkJCQkJCQkJICog YWxsb2NhdGlvbiwgYW5kIG5hbWVkIGV4dGVuc2lvbiB3YWl0IGV2ZW50CiAJCQkJCQkJCSAqIGFs bG9jYXRpb24gKi8KIAogc3RhdGljIEhUQUIgKlNobWVtSW5kZXggPSBOVUxMOyAvKiBwcmltYXJ5 IGluZGV4IGhhc2h0YWJsZSBmb3Igc2htZW0gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dh aXRfZXZlbnQuYwppbmRleCA3OTQwZDY0NjM5Li43MjRhNzIwZjJjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jCkBAIC0yMiwxMSArMjIsMTggQEAKICAqLwogI2luY2x1 ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwb3J0 L3BnX2JpdHV0aWxzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCQkvKiBmb3IgR2V0TG9j a05hbWVGcm9tVGFnVHlwZSAqLwogI2luY2x1ZGUgInN0b3JhZ2UvbHdsb2NrLmgiCQkvKiBmb3Ig R2V0TFdMb2NrSWRlbnRpZmllciAqLworI2luY2x1ZGUgInN0b3JhZ2Uvc3Bpbi5oIgorI2luY2x1 ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvd2FpdF9ldmVudC5oIgogCiAK Ky8qIFdlIHVzZSB0aGUgU2htZW1Mb2NrIHNwaW5sb2NrIHRvIHByb3RlY3QgRXh0ZW5zaW9uV2Fp dEV2ZW50Q291bnRlciAqLworZXh0ZXJuIHNsb2NrX3QgKlNobWVtTG9jazsKKwogc3RhdGljIGNv bnN0IGNoYXIgKnBnc3RhdF9nZXRfd2FpdF9hY3Rpdml0eShXYWl0RXZlbnRBY3Rpdml0eSB3KTsK IHN0YXRpYyBjb25zdCBjaGFyICpwZ3N0YXRfZ2V0X3dhaXRfY2xpZW50KFdhaXRFdmVudENsaWVu dCB3KTsKIHN0YXRpYyBjb25zdCBjaGFyICpwZ3N0YXRfZ2V0X3dhaXRfaXBjKFdhaXRFdmVudElQ QyB3KTsKQEAgLTM4LDYgKzQ1LDIzIEBAIHN0YXRpYyB1aW50MzIgbG9jYWxfbXlfd2FpdF9ldmVu dF9pbmZvOwogdWludDMyCSAgICpteV93YWl0X2V2ZW50X2luZm8gPSAmbG9jYWxfbXlfd2FpdF9l dmVudF9pbmZvOwogCiAKKy8qIGR5bmFtaWMgYWxsb2NhdGlvbiBjb3VudGVyIGluIHNoYXJlZCBt ZW1vcnkgKi8KK3N0YXRpYyB1aW50MTYgKkV4dGVuc2lvbldhaXRFdmVudENvdW50ZXI7CisKKy8q IGZpcnN0IGV2ZW50IElEIGZvciBuYW1lZCBleHRlbnNpb24gd2FpdCBldmVudCB0cmFuY2hlICov CisjZGVmaW5lIE5VTV9CVUlMVElOX1dBSVRfRVZFTlRfRVhURU5TSU9OCVwKKwkoV0FJVF9FVkVO VF9FWFRFTlNJT05fRklSU1RfVVNFUl9ERUZJTkVEIC0gV0FJVF9FVkVOVF9FWFRFTlNJT04pCisK Ky8qCisgKiBUaGlzIGlzIGluZGV4ZWQgYnkgZXZlbnQgSUQgbWludXMgTlVNX0JVSUxUSU5fV0FJ VF9FVkVOVF9FWFRFTlNJT04sIGFuZAorICogc3RvcmVzIHRoZSBuYW1lcyBvZiBhbGwgZHluYW1p Y2FsbHktY3JlYXRlZCBldmVudCBJRCBrbm93biB0byB0aGUgY3VycmVudAorICogcHJvY2Vzcy4g IEFueSB1bnVzZWQgZW50cmllcyBpbiB0aGUgYXJyYXkgd2lsbCBjb250YWluIE5VTEwuCisgKi8K K3N0YXRpYyBjb25zdCBjaGFyICoqRXh0ZW5zaW9uV2FpdEV2ZW50VHJhbmNoZU5hbWVzID0gTlVM TDsKK3N0YXRpYyBpbnQJRXh0ZW5zaW9uV2FpdEV2ZW50VHJhbmNoZU5hbWVzQWxsb2NhdGVkID0g MDsKKworc3RhdGljIGNvbnN0IGNoYXIgKkdldEV4dGVuc2lvbldhaXRFdmVudElkZW50aWZpZXIo dWludDE2IGV2ZW50SWQpOworCiAvKgogICogQ29uZmlndXJlIHdhaXQgZXZlbnQgcmVwb3J0aW5n IHRvIHJlcG9ydCB3YWl0IGV2ZW50cyB0byAqd2FpdF9ldmVudF9pbmZvLgogICogKndhaXRfZXZl bnRfaW5mbyBuZWVkcyB0byBiZSB2YWxpZCB1bnRpbCBwZ3N0YXRfcmVzZXRfd2FpdF9ldmVudF9z dG9yYWdlKCkKQEAgLTE2NSw3ICsxODksNyBAQCBwZ3N0YXRfZ2V0X3dhaXRfZXZlbnQodWludDMy IHdhaXRfZXZlbnRfaW5mbykKIAkJCQlicmVhazsKIAkJCX0KIAkJY2FzZSBQR19XQUlUX0VYVEVO U0lPTjoKLQkJCWV2ZW50X25hbWUgPSAiRXh0ZW5zaW9uIjsKKwkJCWV2ZW50X25hbWUgPSBHZXRF eHRlbnNpb25XYWl0RXZlbnRJZGVudGlmaWVyKGV2ZW50SWQpOwogCQkJYnJlYWs7CiAJCWNhc2Ug UEdfV0FJVF9JUEM6CiAJCQl7CkBAIC03NjIsMyArNzg2LDExNSBAQCBwZ3N0YXRfZ2V0X3dhaXRf aW8oV2FpdEV2ZW50SU8gdykKIAogCXJldHVybiBldmVudF9uYW1lOwogfQorCisvKgorICogIFJl dHVybiB0aGUgc3BhY2UgZm9yIGR5bmFtaWMgYWxsb2NhdGlvbiBjb3VudGVyLgorICovCitTaXpl CitXYWl0RXZlbnRTaG1lbVNpemUodm9pZCkKK3sKKwlyZXR1cm4gc2l6ZW9mKCpFeHRlbnNpb25X YWl0RXZlbnRDb3VudGVyKTsKK30KKworLyoKKyAqIEFsbG9jYXRlIHNobWVtIHNwYWNlIGZvciBk eW5hbWljIGFsbG9jYXRpb24gY291bnRlci4KKyAqLwordm9pZAorV2FpdEV2ZW50U2htZW1Jbml0 KHZvaWQpCit7CisJaWYgKCFJc1VuZGVyUG9zdG1hc3RlcikKKwl7CisJCVNpemUJCXNwYWNlID0g V2FpdEV2ZW50U2htZW1TaXplKCk7CisKKwkJLyogSW5pdGlhbGl6ZSB0aGUgZHluYW1pYy1hbGxv Y2F0aW9uIGNvdW50ZXIgKi8KKwkJRXh0ZW5zaW9uV2FpdEV2ZW50Q291bnRlciA9ICh1aW50MTYg KikgU2htZW1BbGxvYyhzcGFjZSk7CisJCSpFeHRlbnNpb25XYWl0RXZlbnRDb3VudGVyID0gTlVN X0JVSUxUSU5fV0FJVF9FVkVOVF9FWFRFTlNJT047CisJfQorfQorCisvKgorICogQWxsb2NhdGUg YSBuZXcgZXZlbnQgSUQgYW5kIHJldHVybiB0aGUgd2FpdCBldmVudCBpbmZvLgorICovCit1aW50 MzIKK0V4dGVuc2lvbldhaXRFdmVudE5ld1RyYW5jaGUodm9pZCkKK3sKKwl1aW50MTYJCQlldmVu dElkOworCisJU3BpbkxvY2tBY3F1aXJlKFNobWVtTG9jayk7CisJZXZlbnRJZCA9ICgqRXh0ZW5z aW9uV2FpdEV2ZW50Q291bnRlcikrKzsKKwlTcGluTG9ja1JlbGVhc2UoU2htZW1Mb2NrKTsKKwor CXJldHVybiBQR19XQUlUX0VYVEVOU0lPTiB8IGV2ZW50SWQ7Cit9CisKKy8qCisgKiBSZWdpc3Rl ciBhIGR5bmFtaWMgdHJhbmNoZSBuYW1lIGluIHRoZSBsb29rdXAgdGFibGUgb2YgdGhlIGN1cnJl bnQgcHJvY2Vzcy4KKyAqCisgKiBUaGlzIHJvdXRpbmUgd2lsbCBzYXZlIGEgcG9pbnRlciB0byB0 aGUgd2FpdCBldmVudCB0cmFuY2hlIG5hbWUgcGFzc2VkCisgKiBhcyBhbiBhcmd1bWVudCwgc28g dGhlIG5hbWUgc2hvdWxkIGJlIGFsbG9jYXRlZCBpbiBhIGJhY2tlbmQtbGlmZXRpbWUgY29udGV4 dAorICogKHNoYXJlZCBtZW1vcnksIFRvcE1lbW9yeUNvbnRleHQsIHN0YXRpYyBjb25zdGFudCwg b3Igc2ltaWxhcikuCisgKgorICogVGhlICJ3YWl0X2V2ZW50X25hbWUiIHdpbGwgYmUgdXNlci12 aXNpYmxlIGFzIGEgd2FpdCBldmVudCBuYW1lLCBzbyB0cnkgdG8KKyAqIHVzZSBhIG5hbWUgdGhh dCBmaXRzIHRoZSBzdHlsZSBmb3IgdGhvc2UuCisgKi8KK3ZvaWQKK0V4dGVuc2lvbldhaXRFdmVu dFJlZ2lzdGVyVHJhbmNoZSh1aW50MzIgd2FpdF9ldmVudF9pbmZvLCBjb25zdCBjaGFyICp3YWl0 X2V2ZW50X25hbWUpCit7CisJdWludDMyCQljbGFzc0lkOworCXVpbnQxNgkJZXZlbnRJZDsKKwor CWNsYXNzSWQgPSB3YWl0X2V2ZW50X2luZm8gJiAweEZGMDAwMDAwOworCWV2ZW50SWQgPSB3YWl0 X2V2ZW50X2luZm8gJiAweDAwMDBGRkZGOworCUFzc2VydChjbGFzc0lkID09IFBHX1dBSVRfRVhU RU5TSU9OKTsKKwkKKwkvKiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmb3IgdXNlci1kZWZp bmVkIHRyYW5jaGVzLiAqLworCWlmIChldmVudElkIDwgTlVNX0JVSUxUSU5fV0FJVF9FVkVOVF9F WFRFTlNJT04pCisJCXJldHVybjsKKworCS8qIENvbnZlcnQgdG8gYXJyYXkgaW5kZXguICovCisJ ZXZlbnRJZCAtPSBOVU1fQlVJTFRJTl9XQUlUX0VWRU5UX0VYVEVOU0lPTjsKKworCS8qIElmIG5l Y2Vzc2FyeSwgY3JlYXRlIG9yIGVubGFyZ2UgYXJyYXkuICovCisJaWYgKGV2ZW50SWQgPj0gRXh0 ZW5zaW9uV2FpdEV2ZW50VHJhbmNoZU5hbWVzQWxsb2NhdGVkKQorCXsKKwkJaW50CQkJbmV3YWxs b2M7CisKKwkJbmV3YWxsb2MgPSBwZ19uZXh0cG93ZXIyXzMyKE1heCg4LCBldmVudElkICsgMSkp OworCisJCWlmIChFeHRlbnNpb25XYWl0RXZlbnRUcmFuY2hlTmFtZXMgPT0gTlVMTCkKKwkJCUV4 dGVuc2lvbldhaXRFdmVudFRyYW5jaGVOYW1lcyA9IChjb25zdCBjaGFyICoqKQorCQkJCU1lbW9y eUNvbnRleHRBbGxvY1plcm8oVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCSAgIG5ld2FsbG9j ICogc2l6ZW9mKGNoYXIgKikpOworCQllbHNlCisJCQlFeHRlbnNpb25XYWl0RXZlbnRUcmFuY2hl TmFtZXMgPQorCQkJCXJlcGFsbG9jMF9hcnJheShFeHRlbnNpb25XYWl0RXZlbnRUcmFuY2hlTmFt ZXMsIGNvbnN0IGNoYXIgKiwgRXh0ZW5zaW9uV2FpdEV2ZW50VHJhbmNoZU5hbWVzQWxsb2NhdGVk LCBuZXdhbGxvYyk7CisJCUV4dGVuc2lvbldhaXRFdmVudFRyYW5jaGVOYW1lc0FsbG9jYXRlZCA9 IG5ld2FsbG9jOworCX0KKworCUV4dGVuc2lvbldhaXRFdmVudFRyYW5jaGVOYW1lc1tldmVudElk XSA9IHdhaXRfZXZlbnRfbmFtZTsKK30KKworLyoKKyAqIFJldHVybiB0aGUgbmFtZSBvZiBhbiBF eHRlbnNpb24gd2FpdCBldmVudCBJRC4KKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKgorR2V0RXh0 ZW5zaW9uV2FpdEV2ZW50SWRlbnRpZmllcih1aW50MTYgZXZlbnRJZCkKK3sKKwkvKiBCdWlsZC1p biB0cmFuY2hlPyAqLworCWlmIChldmVudElkIDwgTlVNX0JVSUxUSU5fV0FJVF9FVkVOVF9FWFRF TlNJT04pCisJCXJldHVybiAiRXh0ZW5zaW9uIjsKKworCS8qCisJICogSXQncyBhbiBleHRlbnNp b24gdHJhbmNoZSwgc28gbG9vayBpbiBFeHRlbnNpb25XYWl0RXZlbnRUcmFuY2hlTmFtZXNbXS4K KwkgKiBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHRyYW5jaGUgaGFzIG5ldmVyIGJl ZW4gcmVnaXN0ZXJlZCBieQorCSAqIGNhbGxpbmcgRXh0ZW5zaW9uV2FpdEV2ZW50UmVnaXN0ZXJU cmFuY2hlKCkgaW4gdGhlIGN1cnJlbnQgcHJvY2VzcywgaW4KKwkgKiB3aGljaCBjYXNlIGdpdmUg dXAgYW5kIHJldHVybiAiRXh0ZW5zaW9uIi4KKwkgKi8KKwlldmVudElkIC09IE5VTV9CVUlMVElO X1dBSVRfRVZFTlRfRVhURU5TSU9OOworCisJaWYgKGV2ZW50SWQgPj0gRXh0ZW5zaW9uV2FpdEV2 ZW50VHJhbmNoZU5hbWVzQWxsb2NhdGVkIHx8CisJCUV4dGVuc2lvbldhaXRFdmVudFRyYW5jaGVO YW1lc1tldmVudElkXSA9PSBOVUxMKQorCQlyZXR1cm4gIkV4dGVuc2lvbiI7CisKKwlyZXR1cm4g RXh0ZW5zaW9uV2FpdEV2ZW50VHJhbmNoZU5hbWVzW2V2ZW50SWRdOworfQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9l dmVudC5oCmluZGV4IDUxOGQzYjBhMWYuLjc4OWZjYmY1MmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL3dhaXRfZXZlbnQuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50 LmgKQEAgLTcwLDYgKzcwLDM1IEBAIHR5cGVkZWYgZW51bQogCVdBSVRfRVZFTlRfV0FMX1NFTkRF Ul9XUklURV9EQVRBLAogfSBXYWl0RXZlbnRDbGllbnQ7CiAKKy8qIC0tLS0tLS0tLS0KKyAqIFdh aXQgRXZlbnRzIC0gRXh0ZW5zaW9uCisgKgorICogVXNlIHRoaXMgY2F0ZWdvcnkgd2hlbiB0aGUg c2VydmVyIHByb2Nlc3MgaXMgd2FpdGluZyBmb3Igc29tZSBjb25kaXRpb24KKyAqIGRlZmluZWQg YnkgYW4gZXh0ZW5zaW9uIG1vZHVsZS4KKyAqCisgKiBFeHRlbnNpb25zIGNhbiBkZWZpbmUgY3Vz dG9tIHdhaXQgZXZlbnRzLiAgRmlyc3QsIGNhbGwKKyAqIEV4dGVuc2lvbldhaXRFdmVudE5ld1Ry YW5jaGUoKSBqdXN0IG9uY2UgdG8gb2J0YWluIGEgbmV3IHdhaXQgZXZlbnQgdHJhbmNoZS4gCisg KiBUaGUgSUQgaXMgYWxsb2NhdGVkIGZyb20gYSBzaGFyZWQgY291bnRlci4gTmV4dCwgZWFjaCBp bmRpdmlkdWFsIHByb2Nlc3MgdXNpbmcKKyAqIHRoZSB0cmFuY2hlIHNob3VsZCBjYWxsIEV4dGVu c2lvbldhaXRFdmVudFJlZ2lzdGVyVHJhbmNoZSgpIHRvIGFzc29jaWF0ZQorICogdGhhdCB3YWl0 IGV2ZW50IHdpdGggYSBuYW1lLgorICoKKyAqIEl0IG1heSBzZWVtIHN0cmFuZ2UgdGhhdCBlYWNo IHByb2Nlc3MgdXNpbmcgdGhlIHRyYW5jaGUgbXVzdCByZWdpc3RlciBpdAorICogc2VwYXJhdGVs eSwgYnV0IGR5bmFtaWMgc2hhcmVkIG1lbW9yeSBzZWdtZW50cyBhcmVuJ3QgZ3VhcmFudGVlZCB0 byBiZQorICogbWFwcGVkIGF0IHRoZSBzYW1lIGFkZHJlc3MgaW4gYWxsIGNvb3JkaW5hdGluZyBi YWNrZW5kcywgc28gc3RvcmluZyB0aGUKKyAqIHJlZ2lzdHJhdGlvbiBpbiB0aGUgbWFpbiBzaGFy ZWQgbWVtb3J5IHNlZ21lbnQgd291bGRuJ3Qgd29yayBmb3IgdGhhdCBjYXNlLgorICovCit0eXBl ZGVmIGVudW0KK3sKKwlXQUlUX0VWRU5UX0VYVEVOU0lPTiA9IFBHX1dBSVRfRVhURU5TSU9OLAor CVdBSVRfRVZFTlRfRVhURU5TSU9OX0ZJUlNUX1VTRVJfREVGSU5FRAorfQkJCVdhaXRFdmVudEV4 dGVuc2lvbjsKKworZXh0ZXJuIHZvaWQgV2FpdEV2ZW50U2htZW1Jbml0KHZvaWQpOworZXh0ZXJu IFNpemUgV2FpdEV2ZW50U2htZW1TaXplKHZvaWQpOworCitleHRlcm4gdWludDMyCUV4dGVuc2lv bldhaXRFdmVudE5ld1RyYW5jaGUodm9pZCk7CitleHRlcm4gdm9pZCBFeHRlbnNpb25XYWl0RXZl bnRSZWdpc3RlclRyYW5jaGUodWludDMyIHdhaXRfZXZlbnRfaW5mbywgY29uc3QgY2hhciAqdHJh bmNoZV9uYW1lKTsKKwogLyogLS0tLS0tLS0tLQogICogV2FpdCBFdmVudHMgLSBJUEMKICAqCi0t IAoyLjI1LjEKCg== --=_eb0ded237b60e0de5941276b3595e1dd--