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 1qCAhO-0004y9-1t for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Jun 2023 03:09:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qCAhM-0008OD-30 for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Jun 2023 03:09:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qCAeF-00029H-LC for pgsql-hackers@lists.postgresql.org; Thu, 22 Jun 2023 03:06:15 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qCAe8-003wFA-VM for pgsql-hackers@lists.postgresql.org; Thu, 22 Jun 2023 03:06:12 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id C6711604F2 for ; Thu, 22 Jun 2023 12:06:04 +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="=_42470d36db36c61c6377e4fcaa0e111c" Content-Transfer-Encoding: 7bit Date: Thu, 22 Jun 2023 12:06:04 +0900 From: Masahiro Ikeda To: pgsql-hackers@lists.postgresql.org Subject: Re: Support to define custom wait events for extensions In-Reply-To: <135feae32cd28f9fb555fe46acb939a0@oss.nttdata.com> References: <135feae32cd28f9fb555fe46acb939a0@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: X-Sender: ikedamsh@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_42470d36db36c61c6377e4fcaa0e111c Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2023-06-20 18:26, Masahiro Ikeda wrote: > The followings are TODO items. > * to check that meson.build works since I tested with old command > `make` now I test with meson and I updated the patches to work with it. My test procedure is the following. ``` export builddir=/mnt/tmp/build export prefix=/mnt/tmp/master # setup meson setup $builddir --prefix=$prefix -Ddebug=true -Dcassert=true -Dtap_tests=enabled # build and install with src/test/modules ninja -C $builddir install install-test-files # test meson test -v -C $builddir meson test -v -C $builddir --suite test_custom_wait_events # run the test only ``` Regards, -- Masahiro Ikeda NTT DATA CORPORATION --=_42470d36db36c61c6377e4fcaa0e111c Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0002-Add-test-codes-for-custom-wait-events.patch Content-Disposition: attachment; filename=v3-0002-Add-test-codes-for-custom-wait-events.patch; size=12130 RnJvbSA5MDFiNzVkMzEwNzBlZjAwMjk1NTdkYjY5ODFjOThlMDZmNWMxNmMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlybyBJa2VkYSA8bWFzYWhpcm8uaWtlZGEudXNAaGNv Lm50dC5jby5qcD4KRGF0ZTogVHVlLCAyMCBKdW4gMjAyMyAxNzo1OTozNCArMDkwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBBZGQgdGVzdCBjb2RlcyBmb3IgY3VzdG9tIHdhaXQgZXZlbnRzCgotLS0K IHNyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4u L3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLy5naXRpZ25vcmUgICAgICAgIHwgICAyICsKIC4uLi9t b2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL01ha2VmaWxlICB8ICAyMyArKysKIC4uLi90 ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy9tZXNvbi5idWlsZCAgICAgICB8ICAzMyArKysrCiAuLi4v dGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdC8wMDFfYmFzaWMucGwgICAgfCAgMzQgKysrKwogLi4u L3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLS0xLjAuc3FsICAgICAgICAgIHwgIDE0ICsrCiAuLi4v dGVzdF9jdXN0b21fd2FpdF9ldmVudHMuYyAgICAgICAgICAgICAgICAgfCAxODIgKysrKysrKysr KysrKysrKysrCiAuLi4vdGVzdF9jdXN0b21fd2FpdF9ldmVudHMuY29udHJvbCAgICAgICAgICAg fCAgIDMgKwogOSBmaWxlcyBjaGFuZ2VkLCAyOTMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvLmdpdGlnbm9y ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9l dmVudHMvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf Y3VzdG9tX3dhaXRfZXZlbnRzL21lc29uLmJ1aWxkCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90LzAwMV9iYXNpYy5wbAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdGVz dF9jdXN0b21fd2FpdF9ldmVudHMtLTEuMC5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRz LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRf ZXZlbnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLmNvbnRyb2wKCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9tb2R1bGVzL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQppbmRleCA2 MzMxYzk3NmRjLi44NDMxMmI3ZTU3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL01ha2Vm aWxlCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKQEAgLTE3LDYgKzE3LDcgQEAgU1VC RElSUyA9IFwKIAkJICB0ZXN0X2Jsb29tZmlsdGVyIFwKIAkJICB0ZXN0X2NvcHlfY2FsbGJhY2tz IFwKIAkJICB0ZXN0X2N1c3RvbV9ybWdycyBcCisJCSAgdGVzdF9jdXN0b21fd2FpdF9ldmVudHMg XAogCQkgIHRlc3RfZGRsX2RlcGFyc2UgXAogCQkgIHRlc3RfZXh0ZW5zaW9ucyBcCiAJCSAgdGVz dF9naW5wb3N0aW5nbGlzdCBcCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1 aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZAppbmRleCAxN2QzNjllMzc4Li44M2Ex ZDhmZDE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKQEAgLTE0LDYgKzE0LDcgQEAgc3ViZGlyKCdzc2xf cGFzc3BocmFzZV9jYWxsYmFjaycpCiBzdWJkaXIoJ3Rlc3RfYmxvb21maWx0ZXInKQogc3ViZGly KCd0ZXN0X2NvcHlfY2FsbGJhY2tzJykKIHN1YmRpcigndGVzdF9jdXN0b21fcm1ncnMnKQorc3Vi ZGlyKCd0ZXN0X2N1c3RvbV93YWl0X2V2ZW50cycpCiBzdWJkaXIoJ3Rlc3RfZGRsX2RlcGFyc2Un KQogc3ViZGlyKCd0ZXN0X2V4dGVuc2lvbnMnKQogc3ViZGlyKCd0ZXN0X2dpbnBvc3RpbmdsaXN0 JykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMv LmdpdGlnbm9yZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvLmdp dGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43MTZlMTdmNWEy Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2 ZW50cy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMiBAQAorIyBHZW5lcmF0ZWQgc3ViZGlyZWN0b3Jp ZXMKKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9t X3dhaXRfZXZlbnRzL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0 X2V2ZW50cy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5k ZGEzNjVkNTIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3Rv bV93YWl0X2V2ZW50cy9NYWtlZmlsZQpAQCAtMCwwICsxLDIzIEBACisjIHNyYy90ZXN0L21vZHVs ZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvTWFrZWZpbGUKKworTU9EVUxFX2JpZyA9IHRlc3Rf Y3VzdG9tX3dhaXRfZXZlbnRzCitPQkpTID0gXAorCSQoV0lOMzJSRVMpIFwKKwl0ZXN0X2N1c3Rv bV93YWl0X2V2ZW50cy5vCitQR0ZJTEVERVNDID0gInRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzIC0g dGVzdCBjdXN0b20gd2FpdCBldmVudHMiCisKK0VYVEVOU0lPTiA9IHRlc3RfY3VzdG9tX3dhaXRf ZXZlbnRzCitEQVRBID0gdGVzdF9jdXN0b21fd2FpdF9ldmVudHMtLTEuMC5zcWwKKworVEFQX1RF U1RTID0gMQorCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdfY29uZmlnCitQR1hTIDo9 ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQR1hTKQorZWxzZQorc3Vi ZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cwordG9wX2J1aWxk ZGlyID0gLi4vLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5n bG9iYWwKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb250cmliL2NvbnRyaWItZ2xvYmFsLm1rCitl bmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50 cy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMv bWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGFkMDcz ZTU3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2Fp dF9ldmVudHMvbWVzb24uYnVpbGQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKGMpIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3Rlc3RfY3VzdG9tX3dhaXRfZXZl bnRzID0gZmlsZXMoCisgICd0ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy5jJywKKykKKworaWYgaG9z dF9zeXN0ZW0gPT0gJ3dpbmRvd3MnCisgIHRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzICs9IHJjX2xp Yl9nZW4ucHJvY2Vzcyh3aW4zMnZlcl9yYywgZXh0cmFfYXJnczogWworICAgICctLU5BTUUnLCAn dGVzdF9jdXN0b21fd2FpdF9ldmVudHMnLAorICAgICctLUZJTEVERVNDJywgJ3Rlc3RfY3VzdG9t X3dhaXRfZXZlbnRzIC0gdGVzdCBjdXN0b20gd2FpdCBldmVudHMnLF0pCitlbmRpZgorCit0ZXN0 X2N1c3RvbV93YWl0X2V2ZW50cyA9IHNoYXJlZF9tb2R1bGUoJ3Rlc3RfY3VzdG9tX3dhaXRfZXZl bnRzJywKKyAgdGVzdF9jdXN0b21fd2FpdF9ldmVudHMsCisgIGt3YXJnczogcGdfdGVzdF9tb2Rf YXJncywKKykKK3Rlc3RfaW5zdGFsbF9saWJzICs9IHRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzCisK K3Rlc3RfaW5zdGFsbF9kYXRhICs9IGZpbGVzKAorICAndGVzdF9jdXN0b21fd2FpdF9ldmVudHMu Y29udHJvbCcsCisgICd0ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy0tMS4wLnNxbCcsCispCisKK3Rl c3RzICs9IHsKKyAgJ25hbWUnOiAndGVzdF9jdXN0b21fd2FpdF9ldmVudHMnLAorICAnc2QnOiBt ZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3VycmVudF9idWlsZF9k aXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAndGVzdHMnOiBbCisgICAgICAndC8wMDFfYmFzaWMucGwn LAorICAgIF0sCisgIH0sCit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3Vz dG9tX3dhaXRfZXZlbnRzL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1 c3RvbV93YWl0X2V2ZW50cy90LzAwMV9iYXNpYy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi4yODA5YWZiZDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90LzAwMV9iYXNpYy5wbApAQCAtMCwwICsxLDM0 IEBACisjIENvcHlyaWdodCAoYykgMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9y ZTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ21haW4nKTsK KworJG5vZGUtPmluaXQ7Ciskbm9kZS0+YXBwZW5kX2NvbmYoCisJJ3Bvc3RncmVzcWwuY29uZics IAorCSJzaGFyZWRfcHJlbG9hZF9saWJyYXJpZXMgPSAndGVzdF9jdXN0b21fd2FpdF9ldmVudHMn IgorKTsKKyRub2RlLT5zdGFydDsKKworIyBzZXR1cAorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2N1c3RvbV93YWl0X2V2ZW50czsnKTsKKworJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNUIHdhaXRfd29ya2VyX2xhdW5jaCgpOycp OworCitvaygkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLAorCXFxW1NFTEVDVCAK KwkJKFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3N0YXRfYWN0aXZpdHkKKwkgCQlXSEVSRSBiYWNr ZW5kX3R5cGUgPSAndGVzdF9jdXN0b21fd2FpdF9ldmVudHMnCisJCQkgIEFORCB3YWl0X2V2ZW50 X3R5cGUgPSAnRXh0ZW5zaW9uJworCQkJICBBTkQgd2FpdF9ldmVudCA9ICdjdXN0b21fd2FpdF9l dmVudCcKKwkJKSA+IDA7XSkKKykgb3IgZGllICJUaW1lZCBvdXQgd2FpdGluZyB0aGUgY3VzdG9t IHdhaXQgZXZlbnQgdG8gYmUgc2hvd2VkIHVwIjsKKworJG5vZGUtPnN0b3A7Citkb25lX3Rlc3Rp bmcoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLS0x LjAuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90ZXN0X2N1 c3RvbV93YWl0X2V2ZW50cy0tMS4wLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi4xZmMyMTMwZjg0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy0tMS4wLnNxbApA QCAtMCwwICsxLDE0IEBACisvKiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZl bnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLS0xLjAuc3FsICovCisKKy0tIGNvbXBsYWluIGlm IHNjcmlwdCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5T SU9OCitcZWNobyBVc2UgIkNSRUFURSBFWFRFTlNJT04gdGVzdF9jdXN0b21fd2FpdF9ldmVudHMi IHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAorCistLQorLS0gd2FpdF93b3JrZXJfbGF1bmNoKCkK Ky0tCistLSBMYXVuY2ggYSBiYWNrZ3JvdW5kIHdvcmtlciB0byB3YWl0IGZvcmV2ZXIgd2l0aCBh IGN1c3RvbSB3YWl0IGV2ZW50LgorLS0KK0NSRUFURSBGVU5DVElPTiB3YWl0X3dvcmtlcl9sYXVu Y2goKQorUkVUVVJOUyBpbnQKK0FTICdNT0RVTEVfUEFUSE5BTUUnLCAnd2FpdF93b3JrZXJfbGF1 bmNoJworTEFOR1VBR0UgQyBTVFJJQ1QgUEFSQUxMRUwgU0FGRTsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdGVzdF9jdXN0b21fd2FpdF9ldmVu dHMuYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdGVzdF9jdXN0 b21fd2FpdF9ldmVudHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5i YTNmZTQ1YWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3Rv bV93YWl0X2V2ZW50cy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy5jCkBAIC0wLDAgKzEsMTgyIEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdGVzdF9jdXN0b21fd2FpdF9ldmVudHMuYwor ICoJCUNvZGUgZm9yIHRlc3RpbmcgY3VzdG9tIHdhaXQgZXZlbnRzCisgKgorICogVGhpcyBjb2Rl IGluaXRpYWxpemVzIGEgY3VzdG9tIHdhaXQgZXZlbnQgaW4gc2htZW1fcmVxdWVzdF9ob29rKCkg YW5kCisgKiBwcm92aWRlIGEgZnVuY3Rpb24gdG8gbGF1bmNoIGEgYmFja2dyb3VuZCB3b3JrZXIg d2FpdGluZyBmb3JldmVyCisgKiB3aXRoIHRoZSBjdXN0b20gd2FpdCBldmVudC4KKyAqIAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJ c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2N1c3RvbV93YWl0X2V2ZW50cy90ZXN0X2N1c3RvbV93YWl0 X2V2ZW50cy5jCisgKgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0 Z3Jlcy5oIgorCisjaW5jbHVkZSAiZm1nci5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2lu Y2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL2ludGVy cnVwdC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sYXRj aC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbHdsb2NrLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9j LmgiCisjaW5jbHVkZSAic3RvcmFnZS9zaG1lbS5oIgorI2luY2x1ZGUgInRjb3AvdXRpbGl0eS5o IgorI2luY2x1ZGUgInV0aWxzL3dhaXRfZXZlbnQuaCIKKworUEdfTU9EVUxFX01BR0lDOworCitQ R19GVU5DVElPTl9JTkZPX1YxKHdhaXRfd29ya2VyX2xhdW5jaCk7CisKK1BHRExMRVhQT1JUIHZv aWQgd29ya2VyX21haW4oRGF0dW0gbWFpbl9hcmcpOworCisvKiBHVUMgdmFyaWFibGVzICovCit0 eXBlZGVmIHN0cnVjdCBzdGF0ZQoreworCXVpbnQzMgkJCXdhaXRfZXZlbnRfaW5mbzsgIC8qIGEg YWxsb2NhdGVkIHdhaXQgZXZlbnQgKi8KK30JCQlzdGF0ZTsKKworc3RhdGljIHNobWVtX3JlcXVl c3RfaG9va190eXBlIHByZXZfc2htZW1fcmVxdWVzdF9ob29rID0gTlVMTDsKK3N0YXRpYyBzaG1l bV9yZXF1ZXN0X2hvb2tfdHlwZSBwcmV2X3NobWVtX3N0YXJ0dXBfaG9vayA9IE5VTEw7CisKK3N0 YXRpYyBjaGFyICogd29ya2VyX2RhdGFiYXNlID0gInBvc3RncmVzIjsgICAvKiBjb25uZWN0ZWQg YnkgYSBiYWNrZ3JvdW5kIHdvcmtlciAqLworc3RhdGljIHN0YXRlICogc3MgPSBOVUxMOworCitz dGF0aWMgdm9pZCBzaG1lbV9yZXF1ZXN0KHZvaWQpOworc3RhdGljIHZvaWQgc2htZW1fc3RhcnR1 cCh2b2lkKTsKK3N0YXRpYyBTaXplIG1lbXNpemUodm9pZCk7CisKK3ZvaWQKK19QR19pbml0KHZv aWQpCit7CisJaWYgKCFwcm9jZXNzX3NoYXJlZF9wcmVsb2FkX2xpYnJhcmllc19pbl9wcm9ncmVz cykKKwkJcmV0dXJuOworCisJcHJldl9zaG1lbV9yZXF1ZXN0X2hvb2sgPSBzaG1lbV9yZXF1ZXN0 X2hvb2s7CisJc2htZW1fcmVxdWVzdF9ob29rID0gc2htZW1fcmVxdWVzdDsKKwlwcmV2X3NobWVt X3N0YXJ0dXBfaG9vayA9IHNobWVtX3N0YXJ0dXBfaG9vazsKKwlzaG1lbV9zdGFydHVwX2hvb2sg PSBzaG1lbV9zdGFydHVwOworfQorCitzdGF0aWMgdm9pZAorc2htZW1fcmVxdWVzdCh2b2lkKQor eworCWlmIChwcmV2X3NobWVtX3JlcXVlc3RfaG9vaykKKwkJcHJldl9zaG1lbV9yZXF1ZXN0X2hv b2soKTsKKworCVJlcXVlc3RBZGRpblNobWVtU3BhY2UobWVtc2l6ZSgpKTsKK30KKworc3RhdGlj IFNpemUKK21lbXNpemUodm9pZCkKK3sKKwlyZXR1cm4gc2l6ZW9mKHN0YXRlKTsKK30KKworLyoK KyAqIEFsbG9jYXRlIGFuZCByZWdpc3RlciBhIG5ldyB3YWl0IGV2ZW50LgorICoKKyAqIFRoaXMg cm91dGluZSBhbGxvY2F0ZSBhIHdhaXQgZXZlbnQgaWQgd2hlbiBpdCdzIGNhbGxlZCBmaXJzdCB0 aW1lLgorICogQWZ0ZXIgdGhhdCwgdGhlIG5hbWUgb2YgdGhlIHdhaXQgZXZlbnQgaXMgYXNzb2Np YXRlZCB3aXRoIHRoZSBpZC4gSXQncworICogcmVnaXN0ZXJlZCBpbiB0aGUgbG9va3VwIHRhYmxl IG9mIGVhY2ggcHJvY2Vzc2VzIGR5bmFtaWNhbGx5LgorICovCitzdGF0aWMgdm9pZAorc2htZW1f c3RhcnR1cCh2b2lkKQoreworCWJvb2wJCWZvdW5kOworCisJaWYgKHByZXZfc2htZW1fc3RhcnR1 cF9ob29rKQorCQlwcmV2X3NobWVtX3N0YXJ0dXBfaG9vaygpOworCisJc3MgPSBOVUxMOworCisJ LyogQ3JlYXRlIG9yIGF0dGFjaCB0byB0aGUgc2hhcmVkIG1lbW9yeSBzdGF0ZSAqLworCUxXTG9j a0FjcXVpcmUoQWRkaW5TaG1lbUluaXRMb2NrLCBMV19FWENMVVNJVkUpOworCXNzID0gU2htZW1J bml0U3RydWN0KCJjdXN0b21fd2FpdF9ldmVudCIsCisJCQkJCQkgc2l6ZW9mKHN0YXRlKSwKKwkJ CQkJCSAmZm91bmQpOworCisJLyogQWxsb2NhdGUgYSBuZXcgd2FpdCBldmVudC4gKi8KKwlpZiAo IWZvdW5kKQorCQlzcy0+d2FpdF9ldmVudF9pbmZvID0gRXh0ZW5zaW9uV2FpdEV2ZW50TmV3VHJh bmNoZSgpOworCisJTFdMb2NrUmVsZWFzZShBZGRpblNobWVtSW5pdExvY2spOworCisJLyoKKwkg KiBSZWdpc3RlciB0aGUgd2FpdCBldmVudCBpbiB0aGUgbG9va3VwIHRhYmxlIG9mIHRoZSBjdXJy ZW50IHByb2Nlc3MuCisJICovCisJRXh0ZW5zaW9uV2FpdEV2ZW50UmVnaXN0ZXJUcmFuY2hlKHNz LT53YWl0X2V2ZW50X2luZm8sICJjdXN0b21fd2FpdF9ldmVudCIpOworCisJcmV0dXJuOworfQor CisvKgorICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2UgYW5kIHdhaXQgZm9yZXZlciB3aXRoIHRo ZSBjdXN0b20gd2FpdCBldmVudAorICovCit2b2lkCit3b3JrZXJfbWFpbihEYXR1bSBtYWluX2Fy ZykKK3sKKwlwcXNpZ25hbChTSUdURVJNLCBTaWduYWxIYW5kbGVyRm9yU2h1dGRvd25SZXF1ZXN0 KTsKKwlCYWNrZ3JvdW5kV29ya2VyVW5ibG9ja1NpZ25hbHMoKTsKKworCS8qIENvbm5lY3QgdG8g b3VyIGRhdGFiYXNlIHRvIHNob3cgdXAgYSB3YWl0IGV2ZW50IGluIHBnX3N0YXRfYWN0aXZpdHkg Ki8KKwlCYWNrZ3JvdW5kV29ya2VySW5pdGlhbGl6ZUNvbm5lY3Rpb24od29ya2VyX2RhdGFiYXNl LCBOVUxMLCAwKTsKKworCS8qIFdhaXQgZm9yZXZlciB3aXRoIHRoZSBjdXN0b20gd2FpdCBldmVu dCAqLworCXdoaWxlICghU2h1dGRvd25SZXF1ZXN0UGVuZGluZykKKwl7CisJCSh2b2lkKSBXYWl0 TGF0Y2goTXlMYXRjaCwKKwkJCQkJCSBXTF9MQVRDSF9TRVQgfCBXTF9FWElUX09OX1BNX0RFQVRI LAorCQkJCQkJIC0xTCwKKwkJCQkJCSBzcy0+d2FpdF9ldmVudF9pbmZvKTsgIC8qIHRoZSBjdXN0 b20gd2FpdCBldmVudCAqLworCQlSZXNldExhdGNoKE15TGF0Y2gpOworCX0KK30KKworLyoKKyAq IER5bmFtaWNhbGx5IGxhdW5jaCBhIGJhY2tncm91bmQgd29ya2VyIHdhaXRpbmcgZm9yZXZlcgor ICovCitEYXR1bQord2FpdF93b3JrZXJfbGF1bmNoKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJQmFj a2dyb3VuZFdvcmtlciB3b3JrZXI7CisJQmFja2dyb3VuZFdvcmtlckhhbmRsZSAqaGFuZGxlOwor CUJnd0hhbmRsZVN0YXR1cyBzdGF0dXM7CisJcGlkX3QJCXBpZDsKKworCW1lbXNldCgmd29ya2Vy LCAwLCBzaXplb2Yod29ya2VyKSk7CisJd29ya2VyLmJnd19mbGFncyA9IEJHV09SS0VSX1NITUVN X0FDQ0VTUyB8CisJCUJHV09SS0VSX0JBQ0tFTkRfREFUQUJBU0VfQ09OTkVDVElPTjsKKwl3b3Jr ZXIuYmd3X3N0YXJ0X3RpbWUgPSBCZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ7CisJd29y a2VyLmJnd19yZXN0YXJ0X3RpbWUgPSBCR1dfTkVWRVJfUkVTVEFSVDsKKwlzcHJpbnRmKHdvcmtl ci5iZ3dfZnVuY3Rpb25fbmFtZSwgIndvcmtlcl9tYWluIik7CisJc3ByaW50Zih3b3JrZXIuYmd3 X2xpYnJhcnlfbmFtZSwgInRlc3RfY3VzdG9tX3dhaXRfZXZlbnRzIik7CisJc25wcmludGYod29y a2VyLmJnd19uYW1lLCBCR1dfTUFYTEVOLCAidGVzdF9jdXN0b21fd2FpdF9ldmVudHMgd29ya2Vy Iik7CisJc25wcmludGYod29ya2VyLmJnd190eXBlLCBCR1dfTUFYTEVOLCAidGVzdF9jdXN0b21f d2FpdF9ldmVudHMiKTsKKwl3b3JrZXIuYmd3X25vdGlmeV9waWQgPSBNeVByb2NQaWQ7CisKKwlp ZiAoIVJlZ2lzdGVyRHluYW1pY0JhY2tncm91bmRXb3JrZXIoJndvcmtlciwgJmhhbmRsZSkpCisJ CVBHX1JFVFVSTl9OVUxMKCk7CisKKwlzdGF0dXMgPSBXYWl0Rm9yQmFja2dyb3VuZFdvcmtlclN0 YXJ0dXAoaGFuZGxlLCAmcGlkKTsKKworCWlmIChzdGF0dXMgPT0gQkdXSF9TVE9QUEVEKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1JFU09VUkNF UyksCisJCQkJIGVycm1zZygiY291bGQgbm90IHN0YXJ0IGJhY2tncm91bmQgcHJvY2VzcyIpLAor CQkJCSBlcnJoaW50KCJNb3JlIGRldGFpbHMgbWF5IGJlIGF2YWlsYWJsZSBpbiB0aGUgc2VydmVy IGxvZy4iKSkpOworCWlmIChzdGF0dXMgPT0gQkdXSF9QT1NUTUFTVEVSX0RJRUQpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTKSwK KwkJCQkgZXJybXNnKCJjYW5ub3Qgc3RhcnQgYmFja2dyb3VuZCBwcm9jZXNzZXMgd2l0aG91dCBw b3N0bWFzdGVyIiksCisJCQkJIGVycmhpbnQoIktpbGwgYWxsIHJlbWFpbmluZyBkYXRhYmFzZSBw cm9jZXNzZXMgYW5kIHJlc3RhcnQgdGhlIGRhdGFiYXNlLiIpKSk7CisJQXNzZXJ0KHN0YXR1cyA9 PSBCR1dIX1NUQVJURUQpOworCisJUEdfUkVUVVJOX0lOVDMyKHBpZCk7Cit9CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzL3Rlc3RfY3VzdG9tX3dh aXRfZXZlbnRzLmNvbnRyb2wgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3VzdG9tX3dhaXRfZXZl bnRzL3Rlc3RfY3VzdG9tX3dhaXRfZXZlbnRzLmNvbnRyb2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uOGRkODc1YTI1MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L21vZHVsZXMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMu Y29udHJvbApAQCAtMCwwICsxLDMgQEAKK2NvbW1lbnQgPSAnVGVzdCBjb2RlIGZvciBjdXN0b20g d2FpdCBldmVudHMnCitkZWZhdWx0X3ZlcnNpb24gPSAnMS4wJworbW9kdWxlX3BhdGhuYW1lID0g JyRsaWJkaXIvdGVzdF9jdXN0b21fd2FpdF9ldmVudHMnCi0tIAoyLjI1LjEKCg== --=_42470d36db36c61c6377e4fcaa0e111c Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0001-Support-custom-wait-events-for-extensions.patch Content-Disposition: attachment; filename=v3-0001-Support-custom-wait-events-for-extensions.patch; size=9301 RnJvbSBiZjA2YjgxMDBjYjc0NzAzMTk1OWZlODFhMmQxOWJhYWJjNDgzOGNmIE1vbiBTZXAgMTcg 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== --=_42470d36db36c61c6377e4fcaa0e111c--