Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e6Z2p-0004yf-3X for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Oct 2017 09:29:15 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1e6Z2o-0003CR-Fv for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Oct 2017 09:29:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1e6Z2j-00035k-UL for pgsql-hackers@postgresql.org; Mon, 23 Oct 2017 09:29:10 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by magus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e6Z2f-0007VQ-Fc for pgsql-hackers@postgresql.org; Mon, 23 Oct 2017 09:29:09 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id 072EC21C1B04 for ; Mon, 23 Oct 2017 12:29:04 +0300 (MSK) X-Virus-Scanned: Debian amavisd-new at postgrespro.ru Received: from mail.postgrespro.ru (unknown [192.168.27.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id D5F3B21C0909 for ; Mon, 23 Oct 2017 12:29:03 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1508750943; bh=H5Y/9yMRF38JmwHItT46nNZz3JDUrJPm35W/euALwEY=; h=Date:From:To:Subject:In-Reply-To:References; b=HQNCxOn3TKcTMESu4MCDxvJx1ZQtc3acQZxhWX+qL3vnM8z6mRlEYoeYJYB8/SiQB meBT8c4tZUuuHKhWfFGiK4QK5Lz3IC8HGZu4sPR9MBvyYeqBe+DTqQ1upv6oI78wDU QmBh9Oxmpw3fl39GOoeTFiaOqORonMS/4K6AkyQc= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_ca5f7707046dac70928cbfe550e42419" Date: Mon, 23 Oct 2017 12:29:03 +0300 From: Ivan Kartyshov To: pgsql-hackers@postgresql.org Subject: Re: make async slave to wait for lsn to be replayed In-Reply-To: References: <0240c26c-9f84-30ea-fca9-93ab2df5f305@postgrespro.ru> Message-ID: X-Sender: i.kartyshov@postgrespro.ru User-Agent: Roundcube Webmail/1.2.4 List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org --=_ca5f7707046dac70928cbfe550e42419 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed Alexander Korotkov писал 2017-09-26 12:07: > I propose following syntax options. > > WAITLSN lsn; > WAITLSN lsn TIMEOUT delay; > WAITLSN lsn INFINITE; > WAITLSN lsn NOWAIT; > > For me that looks rather better. What do you think? I agree with you, now syntax looks better. New patch attached to tha mail. Ants Aasma писал 2017-09-26 13:00: > Exposing this interface as WAITLSN will encode that visibility order > matches LSN order. This removes any chance of fixing for example > visibility order of async/vs/sync transactions. Just renaming it so > the token is an opaque commit visibility token that just happens to be > a LSN would still allow for progress in transaction management. For > example, making PostgreSQL distributed will likely want timestamp > and/or vector clock based visibility rules. I'm sorry I did not understand exactly what you meant. Please explain this in more detail. -- Ivan Kartyshov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_ca5f7707046dac70928cbfe550e42419 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=waitlsn_11dev_v7.patch Content-Disposition: attachment; filename=waitlsn_11dev_v7.patch; size=23515 Y29tbWl0IDIxN2Y4NDI3MjY1MzFlZGIxYjAwNTZhNWM1NzI3YWIwMWJhYjdm OWIKQXV0aG9yOiBpLmthcnR5c2hvdiA8aS5rYXJ0eXNob3ZAcG9zdGdyZXNw cm8uY29tPgpEYXRlOiAgIE1vbiBPY3QgMjMgMTI6MDg6NTkgMjAxNyArMDMw MAoKICAgIENoZXJyeSBwaWNrZWQgYW5kIHBvcnRlZCAxMWRldgoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCAwMWFjYzJlLi42Nzky ZWIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0x ODEsNiArMTgxLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBz b3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSB1cGRh dGUgICAgICAgICAgICAgU1lTVEVNICJ1cGRhdGUuc2dtbCI+CiA8IUVOVElU WSB2YWN1dW0gICAgICAgICAgICAgU1lTVEVNICJ2YWN1dW0uc2dtbCI+CiA8 IUVOVElUWSB2YWx1ZXMgICAgICAgICAgICAgU1lTVEVNICJ2YWx1ZXMuc2dt bCI+Cis8IUVOVElUWSB3YWl0bHNuICAgICAgICAgICAgU1lTVEVNICJ3YWl0 bHNuLnNnbWwiPgogCiA8IS0tIGFwcGxpY2F0aW9ucyBhbmQgdXRpbGl0aWVz IC0tPgogPCFFTlRJVFkgY2x1c3RlcmRiICAgICAgICAgIFNZU1RFTSAiY2x1 c3RlcmRiLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi93 YWl0bHNuLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3dhaXRsc24uc2dtbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjM4OWNhCi0t LSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi93YWl0bHNuLnNn bWwKQEAgLTAsMCArMSwxNDQgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYv d2FpdGxzbi5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgor Cis8cmVmZW50cnkgaWQ9IlNRTC1XQUlUTFNOIj4KKyA8aW5kZXh0ZXJtIHpv bmU9InNxbC13YWl0bHNuIj4KKyAgPHByaW1hcnk+V0FJVExTTjwvcHJpbWFy eT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0 aXRsZT5XQUlUTFNOPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8 L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0 YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZu YW1lZGl2PgorICA8cmVmbmFtZT5XQUlUTFNOPC9yZWZuYW1lPgorICA8cmVm cHVycG9zZT53YWl0IGZvciB0aGUgdGFyZ2V0IDxhY3JvbnltPkxTTjwvPiB0 byBiZSByZXBsYXllZDwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisK KyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitXQUlUTFNOICc8cmVw bGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+TFNOPC9yZXBsYWNlYWJsZT4n IFsgSU5GSU5JVEVMWSBdCitXQUlUTFNOICc8cmVwbGFjZWFibGUgY2xhc3M9 IlBBUkFNRVRFUiI+TFNOPC9yZXBsYWNlYWJsZT4nIFRJTUVPVVQgPHJlcGxh Y2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPndhaXRfdGltZTwvcmVwbGFjZWFi bGU+CitXQUlUTFNOICc8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+ TFNOPC9yZXBsYWNlYWJsZT4nIE5PV0FJVAorPC9zeW5vcHNpcz4KKyA8L3Jl ZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3Jp cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgaW50ZXJwcm9jZXNzIGNv bW11bmljYXRpb24gbWVjaGFuaXNtIHRvIHdhaXQgZm9yIHRoZSB0YXJnZXQg bG9nIHNlcXVlbmNlCisgICBudW1iZXIgKDxhY3JvbnltPkxTTjwvPikgb24g c3RhbmRieSBpbiA8cHJvZHVjdG5hbWU+JnByb2R1Y3RuYW1lOzwvcHJvZHVj dG5hbWU+CisgICBkYXRhYmFzZXMgd2l0aCBtYXN0ZXItc3RhbmRieSBhc3lu Y2hyb25vdXMgcmVwbGljYXRpb24uIFdoZW4gcnVuIHdpdGggdGhlCisgICA8 cmVwbGFjZWFibGU+TFNOPC9yZXBsYWNlYWJsZT4gb3B0aW9uLCB0aGUgPGNv bW1hbmQ+V0FJVExTTjwvY29tbWFuZD4gY29tbWFuZAorICAgd2FpdHMgZm9y IHRoZSBzcGVjaWZpZWQgPGFjcm9ueW0+TFNOPC8+IHRvIGJlIHJlcGxheWVk LiBCeSBkZWZhdWx0LCB3YWl0CisgICB0aW1lIGlzIHVubGltaXRlZC4gV2Fp dGluZyBjYW4gYmUgaW50ZXJydXB0ZWQgdXNpbmcgPGxpdGVyYWw+Q3RybCtD PC8+LCBvcgorICAgYnkgc2h1dHRpbmcgZG93biB0aGUgPGxpdGVyYWw+cG9z dGdyZXM8Lz4gc2VydmVyLiBZb3UgY2FuIGFsc28gbGltaXQgdGhlIHdhaXQK KyAgIHRpbWUgdXNpbmcgdGhlIDxvcHRpb24+VElNRU9VVDwvPiBvcHRpb24s IG9yIGNoZWNrIHRoZSB0YXJnZXQgPGFjcm9ueW0+TFNOPC8+CisgICBzdGF0 dXMgaW1tZWRpYXRlbHkgdXNpbmcgdGhlIDxvcHRpb24+Tk9XQUlUPC8+IG9w dGlvbi4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJs ZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5MU048L3JlcGxhY2VhYmxlPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorCSAgU3BlY2lmeSB0 aGUgdGFyZ2V0IGxvZyBzZXF1ZW5jZSBudW1iZXIgdG8gd2FpdCBmb3IuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisgICA8dmFybGlzdGVudHJ5PgorCTx0ZXJtPklORklOSVRFTFk8L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKwkgIFdhaXQgdW50 aWwgdGhlIHRhcmdldCA8YWNyb255bT5MU048Lz4gaXMgcmVwbGF5ZWQgb24g c3RhbmRieS4KKwkgIFRoaXMgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHJl aW5mb3JjaW5nIHRoZSBkZWZhdWx0IGJlaGF2aW9yLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3Zh cmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgICA8dmFybGlzdGVudHJ5 PgorCTx0ZXJtPlRJTUVPVVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVU RVIiPndhaXRfdGltZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCTxsaXN0aXRl bT4KKwkgPHBhcmE+CisJICBMaW1pdCB0aGUgdGltZSB0byB3YWl0IGZvciB0 aGUgTFNOIHRvIGJlIHJlcGxheWVkLgorCSAgVGhlIHNwZWNpZmllZCA8cmVw bGFjZWFibGU+d2FpdF90aW1lPC9yZXBsYWNlYWJsZT4gbXVzdCBiZSBhbiBp bnRlZ2VyCisJICBhbmQgaXMgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzLgor CSA8L3BhcmE+CisJPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorCTx0ZXJtPk5PV0FJVDwvdGVybT4KKwk8 bGlzdGl0ZW0+CisJIDxwYXJhPgorCSAgUmVwb3J0IHdoZXRoZXIgdGhlIHRh cmdldCA8YWNyb255bT5MU048Lz4gaGFzIGJlZW4gcmVwbGF5ZWQgYWxyZWFk eSwKKwkgIHdpdGhvdXQgYW55IHdhaXRpbmcuCisJIDwvcGFyYT4KKwk8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgor CisgIDxwYXJhPgorICAgUnVuIDxsaXRlcmFsPldBSVRMU048Lz4gZnJvbSA8 YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+LAorICAgbGltaXRpbmcg d2FpdCB0aW1lIHRvIDEwMDAwIG1pbGxpc2Vjb25kczoKKworPHNjcmVlbj4K K1dBSVRMU04gJzAvM0YwN0E2QjEnIFRJTUVPVVQgMTAwMDA7CitOT1RJQ0U6 ICBMU04gaXMgbm90IHJlYWNoZWQuIFRyeSB0byBpbmNyZWFzZSB3YWl0IHRp bWUuCitMU04gcmVhY2hlZAorLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykK Kzwvc2NyZWVuPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXYWl0IHVu dGlsIHRoZSBzcGVjaWZpZWQgPGFjcm9ueW0+TFNOPC8+IGlzIHJlcGxheWVk OgorPHNjcmVlbj4KK1dBSVRMU04gJzAvM0YwN0E2MTEnOworTFNOIHJlYWNo ZWQKKy0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCis8L3NjcmVlbj4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgTGltaXQgPGFjcm9ueW0+TFNOPC8+ IHdhaXQgdGltZSB0byA1MDAwMDAgbWlsbGlzZWNvbmRzLCBhbmQgdGhlbiBj YW5jZWwgdGhlIGNvbW1hbmQ6Cis8c2NyZWVuPgorV0FJVExTTiAnMC8zRjBG Rjc5MScgVElNRU9VVCA1MDAwMDA7CiteQ0NhbmNlbCByZXF1ZXN0IHNlbnQK K05PVElDRTogIExTTiBpcyBub3QgcmVhY2hlZC4gVHJ5IHRvIGluY3JlYXNl IHdhaXQgdGltZS4KK0VSUk9SOiAgY2FuY2VsaW5nIHN0YXRlbWVudCBkdWUg dG8gdXNlciByZXF1ZXN0CisgTFNOIHJlYWNoZWQKKy0tLS0tLS0tLS0tLS0K KyBmCisoMSByb3cpCis8L3NjcmVlbj4KKzwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5XQUlU TFNOPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhlIFNRTAorICAgc3RhbmRh cmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCA5MDAwYjNhLi4wYzU5NTFh IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0yMDksNiArMjA5 LDcgQEAKICAgICZ1cGRhdGU7CiAgICAmdmFjdXVtOwogICAgJnZhbHVlczsK KyAgICZ3YWl0bHNuOwogCiAgPC9yZWZlcmVuY2U+CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCBkZDAyOGExLi4xMTdj YzliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250 cm9sLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKKyNpbmNsdWRlICJjb21t YW5kcy93YWl0bHNuLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5j bHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicG9ydC9hdG9taWNzLmgiCkBA IC0xNDksNyArMTUwLDYgQEAgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2Vu dHJ5IHN5bmNfbWV0aG9kX29wdGlvbnNbXSA9IHsKIAl7TlVMTCwgMCwgZmFs c2V9CiB9OwogCi0KIC8qCiAgKiBBbHRob3VnaCBvbmx5ICJvbiIsICJvZmYi LCBhbmQgImFsd2F5cyIgYXJlIGRvY3VtZW50ZWQsCiAgKiB3ZSBhY2NlcHQg YWxsIHRoZSBsaWtlbHkgdmFyaWFudHMgb2YgIm9uIiBhbmQgIm9mZiIuCkBA IC03MzEyLDYgKzczMTIsMTUgQEAgU3RhcnR1cFhMT0codm9pZCkKIAkJCQkJ YnJlYWs7CiAJCQkJfQogCisJCQkJLyoKKwkJCQkgKiBBZnRlciB1cGRhdGUg bGFzdFJlcGxheWVkRW5kUmVjUHRyIHNldCBMYXRjaGVzIGluIFNITUVNIGFy cmF5CisJCQkJICovCisJCQkJaWYgKFhMb2dDdGwtPmxhc3RSZXBsYXllZEVu ZFJlY1B0ciA+PSBHZXRNaW5XYWl0TFNOKCkpCisJCQkJeworCisJCQkJCVdh aXRMU05TZXRMYXRjaChYTG9nQ3RsLT5sYXN0UmVwbGF5ZWRFbmRSZWNQdHIp OworCQkJCX0KKwogCQkJCS8qIEVsc2UsIHRyeSB0byBmZXRjaCB0aGUgbmV4 dCBXQUwgcmVjb3JkICovCiAJCQkJcmVjb3JkID0gUmVhZFJlY29yZCh4bG9n cmVhZGVyLCBJbnZhbGlkWExvZ1JlY1B0ciwgTE9HLCBmYWxzZSk7CiAJCQl9 IHdoaWxlIChyZWNvcmQgIT0gTlVMTCk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L01ha2VmaWxlCmluZGV4IDRhNmM5OWUuLjBkMTAxMTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC0yMCw2ICsyMCw2IEBAIE9CSlMg PSBhbWNtZHMubyBhZ2dyZWdhdGVjbWRzLm8gYWx0ZXIubyBhbmFseXplLm8g YXN5bmMubyBjbHVzdGVyLm8gY29tbWVudC5vIFwKIAlwb2xpY3kubyBwb3J0 YWxjbWRzLm8gcHJlcGFyZS5vIHByb2NsYW5nLm8gcHVibGljYXRpb25jbWRz Lm8gXAogCXNjaGVtYWNtZHMubyBzZWNsYWJlbC5vIHNlcXVlbmNlLm8gc3Rh dHNjbWRzLm8gc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNtZHMubyB0 YWJsZXNwYWNlLm8gdHJpZ2dlci5vIHRzZWFyY2hjbWRzLm8gdHlwZWNtZHMu byB1c2VyLm8gXAotCXZhY3V1bS5vIHZhY3V1bWxhenkubyB2YXJpYWJsZS5v IHZpZXcubworCXZhY3V1bS5vIHZhY3V1bWxhenkubyB2YXJpYWJsZS5vIHZp ZXcubyB3YWl0bHNuLm8KIAogaW5jbHVkZSAkKHRvcF9zcmNkaXIpL3NyYy9i YWNrZW5kL2NvbW1vbi5tawpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvYXN5bmMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMK aW5kZXggZjdkZTc0Mi4uY2RlZGRmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvYXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9hc3luYy5jCkBAIC0xNDEsNyArMTQxLDYgQEAKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy90cXVhbC5oIgogCi0K IC8qCiAgKiBNYXhpbXVtIHNpemUgb2YgYSBOT1RJRlkgcGF5bG9hZCwgaW5j bHVkaW5nIHRlcm1pbmF0aW5nIE5VTEwuICBUaGlzCiAgKiBtdXN0IGJlIGtl cHQgc21hbGwgZW5vdWdoIHNvIHRoYXQgYSBub3RpZmljYXRpb24gbWVzc2Fn ZSBmaXRzIG9uIG9uZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvd2FpdGxzbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvd2FpdGxzbi5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMmY1NDkK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy93YWl0 bHNuLmMKQEAgLTAsMCArMSwyNzMgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHdhaXRsc24uYworICoJICBXYWl0TFNOIHN0 YXRtZW50OiBXQUlUTFNOCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMTcsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTcsIFJlZ2VudHMg b2YgUG9zdGdyZXNQcm8KKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBz cmMvYmFja2VuZC9jb21tYW5kcy93YWl0bHNuLmMKKyAqCisgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisvKgorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICogV2FpdCBmb3IgTFNOIGJlZW4gcmVw bGF5ZWQgb24gc2xhdmUKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgImZt Z3IuaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJ1dGlscy9w Z19sc24uaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xhdGNoLmgiCisjaW5jbHVk ZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAic3RvcmFnZS9zcGluLmgiCisj aW5jbHVkZSAic3RvcmFnZS9iYWNrZW5kaWQuaCIKKyNpbmNsdWRlICJhY2Nl c3MveGFjdC5oIgorI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNpbmNs dWRlICJzdG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFt cC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcG1zaWduYWwuaCIKKyNpbmNsdWRl ICJhY2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5o IgorI2luY2x1ZGUgImNvbW1hbmRzL3dhaXRsc24uaCIKKyNpbmNsdWRlICJz dG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgor I2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorCisvKiBMYXRj aGVzIE93bi1EaXNvd25MYXRjaCBhbmQgQWJvcnRD0LBsbEJhY2sgKi8KK3N0 YXRpYyB1aW50MzIgV2FpdExTTlNobWVtU2l6ZSh2b2lkKTsKK3N0YXRpYyB2 b2lkIFdMRGlzb3duTGF0Y2hBYm9ydChYYWN0RXZlbnQgZXZlbnQsIHZvaWQg KmFyZyk7CitzdGF0aWMgdm9pZCBXTE93bkxhdGNoKFhMb2dSZWNQdHIgdHJn X2xzbik7CitzdGF0aWMgdm9pZCBXTERpc293bkxhdGNoKHZvaWQpOworCit2 b2lkCQlfUEdfaW5pdCh2b2lkKTsKKworLyogU2hhcmVkIG1lbW9yeSBzdHJ1 Y3R1cmVzICovCit0eXBlZGVmIHN0cnVjdAoreworCWludAkJCQkJcGlkOwor CXZvbGF0aWxlIHNsb2NrX3QJc2xvY2s7CisJTGF0Y2gJCQkJbGF0Y2g7CisJ WExvZ1JlY1B0cgkJCXRyZ19sc247Cit9IEJJRExhdGNoOworCit0eXBlZGVm IHN0cnVjdAoreworCWNoYXIJCQlkdW1teTsJCQkvLyDQo9CR0KDQkNCi0KwK KwlpbnQJCQkJYmFja2VuZF9tYXhpZDsKKwlYTG9nUmVjUHRyCQltaW5fbHNu OworCUJJRExhdGNoCQlsX2FycltGTEVYSUJMRV9BUlJBWV9NRU1CRVJdOwor fSBHbG9iU3RhdGU7CisKK3N0YXRpYyB2b2xhdGlsZSBHbG9iU3RhdGUgICpz dGF0ZTsKK2Jvb2wJCQkJCQlpc19sYXRjaF9vd25lZCA9IGZhbHNlOworCisv KiBUYWtlIExhdGNoIGZvciBjdXJyZW50IGJhY2tlbmQgYXQgdGhlIGJlZ2lu aW5nIG9mIFdBSVRMU04gKi8KK3N0YXRpYyB2b2lkCitXTE93bkxhdGNoKFhM b2dSZWNQdHIgdHJnX2xzbikKK3sKKwlTcGluTG9ja0FjcXVpcmUoJnN0YXRl LT5sX2FycltNeUJhY2tlbmRJZF0uc2xvY2spOworCU93bkxhdGNoKCZzdGF0 ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLmxhdGNoKTsKKwlpc19sYXRjaF9vd25l ZCA9IHRydWU7CisKKwlpZiAoc3RhdGUtPmJhY2tlbmRfbWF4aWQgPCBNeUJh Y2tlbmRJZCkKKwkJc3RhdGUtPmJhY2tlbmRfbWF4aWQgPSBNeUJhY2tlbmRJ ZDsKKworCXN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0ucGlkID0gTXlQcm9j UGlkOworCXN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0udHJnX2xzbiA9IHRy Z19sc247CisJU3BpbkxvY2tSZWxlYXNlKCZzdGF0ZS0+bF9hcnJbTXlCYWNr ZW5kSWRdLnNsb2NrKTsKKworCWlmICh0cmdfbHNuIDwgc3RhdGUtPm1pbl9s c24pCisJCXN0YXRlLT5taW5fbHNuID0gdHJnX2xzbjsKK30KKworLyogUmVs ZWFzZSBMYXRjaCBmb3IgY3VycmVudCBiYWNrZW5kIGF0IHRoZSBlbmQgb2Yg V0FJVExTTiAqLworc3RhdGljIHZvaWQKK1dMRGlzb3duTGF0Y2godm9pZCkK K3sKKwlpbnQgaTsKKwlYTG9nUmVjUHRyIHRyZ19sc24gPSBzdGF0ZS0+bF9h cnJbTXlCYWNrZW5kSWRdLnRyZ19sc247CisKKwlTcGluTG9ja0FjcXVpcmUo JnN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0uc2xvY2spOworCURpc293bkxh dGNoKCZzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLmxhdGNoKTsKKwlpc19s YXRjaF9vd25lZCA9IGZhbHNlOworCXN0YXRlLT5sX2FycltNeUJhY2tlbmRJ ZF0ucGlkID0gMDsKKwlzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLnRyZ19s c24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKworCS8qIFVwZGF0ZSBzdGF0ZS0+ bWluX2xzbiBpZmYgaXQgaXMgbmVzc2VzYXJ5IGNob29zaW5nIG5leHQgbWlu X2xzbiAqLworCWlmIChzdGF0ZS0+bWluX2xzbiA9PSB0cmdfbHNuKQorCXsK KwkJc3RhdGUtPm1pbl9sc24gPSBQR19VSU5UNjRfTUFYOworCQlmb3IgKGkg PSAyOyBpIDw9IHN0YXRlLT5iYWNrZW5kX21heGlkOyBpKyspCisJCQlpZiAo c3RhdGUtPmxfYXJyW2ldLnRyZ19sc24gIT0gSW52YWxpZFhMb2dSZWNQdHIg JiYKKwkJCQlzdGF0ZS0+bF9hcnJbaV0udHJnX2xzbiA8IHN0YXRlLT5taW5f bHNuKQorCQkJCXN0YXRlLT5taW5fbHNuID0gc3RhdGUtPmxfYXJyW2ldLnRy Z19sc247CisJfQorCisJaWYgKHN0YXRlLT5iYWNrZW5kX21heGlkID09IE15 QmFja2VuZElkKQorCQlmb3IgKGkgPSAoTWF4Q29ubmVjdGlvbnMrMSk7IGkg Pj0yOyBpLS0pCisJCQlpZiAoc3RhdGUtPmxfYXJyW2ldLnBpZCAhPSAwKQor CQkJeworCQkJCXN0YXRlLT5iYWNrZW5kX21heGlkID0gaTsKKwkJCQlicmVh azsKKwkJCX0KKworCVNwaW5Mb2NrUmVsZWFzZSgmc3RhdGUtPmxfYXJyW015 QmFja2VuZElkXS5zbG9jayk7Cit9CisKKy8qIENhbGxCYWNrIGZ1bmN0aW9u IG9uIGFib3J0Ki8KK3N0YXRpYyB2b2lkCitXTERpc293bkxhdGNoQWJvcnQo WGFjdEV2ZW50IGV2ZW50LCB2b2lkICphcmcpCit7CisJaWYgKGlzX2xhdGNo X293bmVkICYmIChldmVudCA9PSBYQUNUX0VWRU5UX1BBUkFMTEVMX0FCT1JU IHx8CisJCQkJCQkgICBldmVudCA9PSBYQUNUX0VWRU5UX0FCT1JUKSkKKwl7 CisJCVdMRGlzb3duTGF0Y2goKTsKKwl9Cit9CisKKy8qIE1vZHVsZSBsb2Fk IGNhbGxiYWNrICovCit2b2lkCitfUEdfaW5pdCh2b2lkKQoreworCWlmICgh SXNVbmRlclBvc3RtYXN0ZXIpCisJCVJlZ2lzdGVyWGFjdENhbGxiYWNrKFdM RGlzb3duTGF0Y2hBYm9ydCwgTlVMTCk7Cit9CisKKy8qIEdldCBzaXplIG9m IHNoYXJlZCBtZW1vcnkgdG8gcm9vbSBHbG9iU3RhdGUgKi8KK3N0YXRpYyB1 aW50MzIKK1dhaXRMU05TaG1lbVNpemUodm9pZCkKK3sKKwlyZXR1cm4gb2Zm c2V0b2YoR2xvYlN0YXRlLCBsX2FycikgKyBzaXplb2YoQklETGF0Y2gpICog KE1heENvbm5lY3Rpb25zKzEpOworfQorCisvKiBJbml0IGFycmF5IG9mIExh dGNoZXMgaW4gc2hhcmVkIG1lbW9yeSAqLwordm9pZAorV2FpdExTTlNobWVt SW5pdCh2b2lkKQoreworCWJvb2wJZm91bmQ7CisJdWludDMyCWk7CisKKwlz dGF0ZSA9IChHbG9iU3RhdGUgKikgU2htZW1Jbml0U3RydWN0KCJwZ193YWl0 X2xzbiIsCisJCQkJCQkJCQkJICBXYWl0TFNOU2htZW1TaXplKCksCisJCQkJ CQkJCQkJICAmZm91bmQpOworCWlmICghZm91bmQpCisJeworCQlmb3IgKGkg PSAwOyBpIDwgKE1heENvbm5lY3Rpb25zKzEpOyBpKyspCisJCXsKKwkJCXN0 YXRlLT5sX2FycltpXS5waWQgPSAwOworCQkJc3RhdGUtPmxfYXJyW2ldLnRy Z19sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwkJCVNwaW5Mb2NrSW5pdCgm c3RhdGUtPmxfYXJyW2ldLnNsb2NrKTsKKwkJCUluaXRTaGFyZWRMYXRjaCgm c3RhdGUtPmxfYXJyW2ldLmxhdGNoKTsKKwkJfQorCQlzdGF0ZS0+YmFja2Vu ZF9tYXhpZCA9IDA7CisJCXN0YXRlLT5taW5fbHNuID0gUEdfVUlOVDY0X01B WDsKKwl9Cit9CisKKy8qIFNldCBhbGwgTGF0Y2hlcyBpbiBzaGFyZWQgbWVt b3J5IGNhdXNlIG5ldyBMU04gYmVlbiByZXBsYXllZCovCit2b2lkCitXYWl0 TFNOU2V0TGF0Y2goWExvZ1JlY1B0ciBjdXJfbHNuKQoreworCXVpbnQzMiBp OworCisJZm9yIChpID0gMjsgaSA8PSBzdGF0ZS0+YmFja2VuZF9tYXhpZDsg aSsrKQorCXsKKwkJaWYgKHN0YXRlLT5sX2FycltpXS50cmdfbHNuICE9IDAp CisJCXsKKwkJU3BpbkxvY2tBY3F1aXJlKCZzdGF0ZS0+bF9hcnJbaV0uc2xv Y2spOworCQlpZiAoc3RhdGUtPmxfYXJyW2ldLnRyZ19sc24gPD0gY3VyX2xz bikKKwkJCVNldExhdGNoKCZzdGF0ZS0+bF9hcnJbaV0ubGF0Y2gpOworCQlT cGluTG9ja1JlbGVhc2UoJnN0YXRlLT5sX2FycltpXS5zbG9jayk7CisJCX0K Kwl9Cit9CisKKy8qIEdldCBtaW5pbWFsIExTTiB0aGF0IHdpbGwgYmUgbmV4 dCAqLworWExvZ1JlY1B0cgorR2V0TWluV2FpdExTTih2b2lkKQoreworCXJl dHVybiBzdGF0ZS0+bWluX2xzbjsKK30KKworLyoKKyAqIE9uIFdBSVRMU04g b3duIGxhdGNoIGFuZCB3YWl0IHRpbGwgTFNOIGlzIHJlcGxheWVkLCBQb3N0 bWFzdGVyIGRlYXRoLCBpbnRlcnJ1cHRpb24KKyAqIG9yIHRpbWVvdXQuCisg Ki8KK3ZvaWQKK1dhaXRMU05VdGlsaXR5KGNvbnN0IGNoYXIgKmxzbiwgY29u c3QgaW50IGRlbGF5LCBEZXN0UmVjZWl2ZXIgKmRlc3QpCit7CisJWExvZ1Jl Y1B0cgkJdHJnX2xzbiA9IERhdHVtR2V0TFNOKERpcmVjdEZ1bmN0aW9uQ2Fs bDEocGdfbHNuX2luLCBDU3RyaW5nR2V0RGF0dW0obHNuKSkpOworCVhMb2dS ZWNQdHIJCWN1cl9sc247CisJaW50CQkJCWxhdGNoX2V2ZW50czsKKwl1aW50 NjQJCQl0ZGVsYXkgPSBkZWxheTsKKwlsb25nCQkJc2VjczsKKwlpbnQJCQkJ bWljcm9zZWNzOworCVRpbWVzdGFtcFR6CQl0aW1lciA9IEdldEN1cnJlbnRU aW1lc3RhbXAoKTsKKwlUdXBPdXRwdXRTdGF0ZQkqdHN0YXRlOworCVR1cGxl RGVzYwkJdHVwZGVzYzsKKwljaGFyCQkgICAqdmFsdWUgPSAiZiI7CisKKwlp ZiAoZGVsYXkgPiAwKQorCQlsYXRjaF9ldmVudHMgPSBXTF9MQVRDSF9TRVQg fCBXTF9USU1FT1VUIHwgV0xfUE9TVE1BU1RFUl9ERUFUSDsKKwllbHNlCisJ CWxhdGNoX2V2ZW50cyA9IFdMX0xBVENIX1NFVCB8IFdMX1BPU1RNQVNURVJf REVBVEg7CisKKwlXTE93bkxhdGNoKHRyZ19sc24pOworCisJZm9yICg7OykK Kwl7CisJCWN1cl9sc24gPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOwor CisJCS8qIElmIExTTiBoYWQgYmVlbiBSZXBsYXllZCAqLworCQlpZiAodHJn X2xzbiA8PSBjdXJfbHNuKQorCQkJYnJlYWs7CisKKwkJLyogSWYgdGhlIHBv c3RtYXN0ZXIgZGllcywgZmluaXNoIGltbWVkaWF0ZWx5ICovCisJCWlmICgh UG9zdG1hc3RlcklzQWxpdmUoKSkKKwkJCWJyZWFrOworCisJCS8qIElmIERl bGF5IHRpbWUgaXMgb3ZlciAqLworCQlpZiAobGF0Y2hfZXZlbnRzICYgV0xf VElNRU9VVCkKKwkJeworCQkJaWYgKFRpbWVzdGFtcERpZmZlcmVuY2VFeGNl ZWRzKHRpbWVyLEdldEN1cnJlbnRUaW1lc3RhbXAoKSxkZWxheSkpCisJCQkJ YnJlYWs7CisJCQlUaW1lc3RhbXBEaWZmZXJlbmNlKHRpbWVyLEdldEN1cnJl bnRUaW1lc3RhbXAoKSwmc2VjcywgJm1pY3Jvc2Vjcyk7CisJCQl0ZGVsYXkg PSBkZWxheSAtIChzZWNzKjEwMDAgKyBtaWNyb3NlY3MvMTAwMCk7CisJCX0K KworCQlNeVBnWGFjdC0+eG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwor CQlXYWl0TGF0Y2goJnN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0ubGF0Y2gs IGxhdGNoX2V2ZW50cywgdGRlbGF5LCBXQUlUX0VWRU5UX0NMSUVOVF9SRUFE KTsKKwkJUmVzZXRMYXRjaCgmc3RhdGUtPmxfYXJyW015QmFja2VuZElkXS5s YXRjaCk7CisKKwkJLyogQ0hFQ0tfRk9SX0lOVEVSUlVQVFMgaWYgdGhleSBj b21lcyB0aGVuIGRpc293biBsYXRjaCBjdXJyZW50ICovCisJCWlmIChJbnRl cnJ1cHRQZW5kaW5nKQorCQl7CisJCQlXTERpc293bkxhdGNoKCk7CisJCQlQ cm9jZXNzSW50ZXJydXB0cygpOworCQl9CisKKwl9CisKKwlXTERpc293bkxh dGNoKCk7CisKKwlpZiAodHJnX2xzbiA+IGN1cl9sc24pCisJCWVsb2coTk9U SUNFLCJMU04gaXMgbm90IHJlYWNoZWQuIFRyeSB0byBpbmNyZWFzZSB3YWl0 IHRpbWUuIik7CisJZWxzZQorCQl2YWx1ZSA9ICJ0IjsKKworCS8qIG5lZWQg YSB0dXBsZSBkZXNjcmlwdG9yIHJlcHJlc2VudGluZyBhIHNpbmdsZSBURVhU IGNvbHVtbiAqLworCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVz YygxLCBmYWxzZSk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSAxLCAiTFNOIHJlYWNoZWQiLCBURVhUT0lELCAtMSwgMCk7 CisJLyogcHJlcGFyZSBmb3IgcHJvamVjdGlvbiBvZiB0dXBsZXMgKi8KKwl0 c3RhdGUgPSBiZWdpbl90dXBfb3V0cHV0X3R1cGRlc2MoZGVzdCwgdHVwZGVz Yyk7CisJLyogU2VuZCBpdCAqLworCWRvX3RleHRfb3V0cHV0X29uZWxpbmUo dHN0YXRlLCB2YWx1ZSk7CisJZW5kX3R1cF9vdXRwdXQodHN0YXRlKTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDRjODNhNjMuLmExNDliNTQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjc1LDcgKzI3NSw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCVNlY0xh YmVsU3RtdCBTZWxlY3RTdG10IFRyYW5zYWN0aW9uU3RtdCBUcnVuY2F0ZVN0 bXQKIAkJVW5saXN0ZW5TdG10IFVwZGF0ZVN0bXQgVmFjdXVtU3RtdAogCQlW YXJpYWJsZVJlc2V0U3RtdCBWYXJpYWJsZVNldFN0bXQgVmFyaWFibGVTaG93 U3RtdAotCQlWaWV3U3RtdCBDaGVja1BvaW50U3RtdCBDcmVhdGVDb252ZXJz aW9uU3RtdAorCQlWaWV3U3RtdCBXYWl0TFNOU3RtdCBDaGVja1BvaW50U3Rt dCBDcmVhdGVDb252ZXJzaW9uU3RtdAogCQlEZWFsbG9jYXRlU3RtdCBQcmVw YXJlU3RtdCBFeGVjdXRlU3RtdAogCQlEcm9wT3duZWRTdG10IFJlYXNzaWdu T3duZWRTdG10CiAJCUFsdGVyVFNDb25maWd1cmF0aW9uU3RtdCBBbHRlclRT RGljdGlvbmFyeVN0bXQKQEAgLTMyMiw3ICszMjIsNyBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGxpc3Q+CU9wdFNj aGVtYUVsdExpc3QKIAogJXR5cGUgPGJvb2xlYW4+IFRyaWdnZXJGb3JTcGVj IFRyaWdnZXJGb3JUeXBlCi0ldHlwZSA8aXZhbD4JVHJpZ2dlckFjdGlvblRp bWUKKyV0eXBlIDxpdmFsPglUcmlnZ2VyQWN0aW9uVGltZSBXYWl0RGVsYXkK ICV0eXBlIDxsaXN0PglUcmlnZ2VyRXZlbnRzIFRyaWdnZXJPbmVFdmVudAog JXR5cGUgPHZhbHVlPglUcmlnZ2VyRnVuY0FyZwogJXR5cGUgPG5vZGU+CVRy aWdnZXJXaGVuCkBAIC02MzYsNyArNjM2LDcgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlIQU5ETEVSIEhBVklORyBIRUFERVJf UCBIT0xEIEhPVVJfUAogCiAJSURFTlRJVFlfUCBJRl9QIElMSUtFIElNTUVE SUFURSBJTU1VVEFCTEUgSU1QTElDSVRfUCBJTVBPUlRfUCBJTl9QCi0JSU5D TFVESU5HIElOQ1JFTUVOVCBJTkRFWCBJTkRFWEVTIElOSEVSSVQgSU5IRVJJ VFMgSU5JVElBTExZIElOTElORV9QCisJSU5DTFVESU5HIElOQ1JFTUVOVCBJ TkRFWCBJTkRFWEVTIElORklOSVRFTFkgSU5IRVJJVCBJTkhFUklUUyBJTklU SUFMTFkgSU5MSU5FX1AKIAlJTk5FUl9QIElOT1VUIElOUFVUX1AgSU5TRU5T SVRJVkUgSU5TRVJUIElOU1RFQUQgSU5UX1AgSU5URUdFUgogCUlOVEVSU0VD VCBJTlRFUlZBTCBJTlRPIElOVk9LRVIgSVMgSVNOVUxMIElTT0xBVElPTgog CkBAIC02NzUsNyArNjc1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJUFRJT04gU1VCU1RSSU5HIFNZTU1FVFJJ QyBTWVNJRCBTWVNURU1fUAogCiAJVEFCTEUgVEFCTEVTIFRBQkxFU0FNUExF IFRBQkxFU1BBQ0UgVEVNUCBURU1QTEFURSBURU1QT1JBUlkgVEVYVF9QIFRI RU4KLQlUSU1FIFRJTUVTVEFNUCBUTyBUUkFJTElORyBUUkFOU0FDVElPTiBU UkFOU0ZPUk0gVFJFQVQgVFJJR0dFUiBUUklNIFRSVUVfUAorCVRJTUUgVElN RU9VVCBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNG T1JNIFRSRUFUIFRSSUdHRVIgVFJJTSBUUlVFX1AKIAlUUlVOQ0FURSBUUlVT VEVEIFRZUEVfUCBUWVBFU19QCiAKIAlVTkJPVU5ERUQgVU5DT01NSVRURUQg VU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04gVU5MSVNURU4gVU5M T0dHRUQKQEAgLTY4NCw3ICs2ODQsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBWQUxJ REFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5H CiAJVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQogCi0J V0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJ VEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCisJV0FJVExTTiBXSEVOIFdIRVJF IFdISVRFU1BBQ0VfUCBXSU5ET1cKKwlXSVRIIFdJVEhJTiBXSVRIT1VUIFdP UksgV1JBUFBFUiBXUklURQogCiAJWE1MX1AgWE1MQVRUUklCVVRFUyBYTUxD T05DQVQgWE1MRUxFTUVOVCBYTUxFWElTVFMgWE1MRk9SRVNUIFhNTE5BTUVT UEFDRVMKIAlYTUxQQVJTRSBYTUxQSSBYTUxST09UIFhNTFNFUklBTElaRSBY TUxUQUJMRQpAQCAtOTM1LDYgKzkzNiw3IEBAIHN0bXQgOgogCQkJfCBWYXJp YWJsZVNldFN0bXQKIAkJCXwgVmFyaWFibGVTaG93U3RtdAogCQkJfCBWaWV3 U3RtdAorCQkJfCBXYWl0TFNOU3RtdAogCQkJfCAvKkVNUFRZKi8KIAkJCQl7 ICQkID0gTlVMTDsgfQogCQk7CkBAIC0xMzgzMSw2ICsxMzgzMyw0NCBAQCBm cmFtZV9ib3VuZDoKIAkJCQl9CiAJCTsKIAorLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZOgorICoJCQkJV0FJVExT TiA8TFNOPiBjYW4gYXBwZWFyIGFzIGEgcXVlcnktbGV2ZWwgY29tbWFuZAor ICoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisK K1dhaXRMU05TdG10OgorCQkJV0FJVExTTiBTY29uc3QKKwkJCQl7CisJCQkJ CVdhaXRMU05TdG10ICpuID0gbWFrZU5vZGUoV2FpdExTTlN0bXQpOworCQkJ CQluLT5sc24gPSAkMjsKKwkJCQkJbi0+ZGVsYXkgPSAwOworCQkJCQkkJCA9 IChOb2RlICopbjsKKwkJCQl9CisJCQl8IFdBSVRMU04gU2NvbnN0IFRJTUVP VVQgSWNvbnN0CisJCQkJeworCQkJCQlXYWl0TFNOU3RtdCAqbiA9IG1ha2VO b2RlKFdhaXRMU05TdG10KTsKKwkJCQkJbi0+bHNuID0gJDI7CisJCQkJCW4t PmRlbGF5ID0gJDQ7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJ CXwgV0FJVExTTiBTY29uc3QgSU5GSU5JVEVMWQorCQkJCXsKKwkJCQkJV2Fp dExTTlN0bXQgKm4gPSBtYWtlTm9kZShXYWl0TFNOU3RtdCk7CisJCQkJCW4t PmxzbiA9ICQyOworCQkJCQluLT5kZWxheSA9IDA7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KKwkJCXwgV0FJVExTTiBTY29uc3QgTk9XQUlUCisJ CQkJeworCQkJCQlXYWl0TFNOU3RtdCAqbiA9IG1ha2VOb2RlKFdhaXRMU05T dG10KTsKKwkJCQkJbi0+bHNuID0gJDI7CisJCQkJCW4tPmRlbGF5ID0gMTsK KwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQk7CiAKIC8qCiAgKiBT dXBwb3J0aW5nIG5vbnRlcm1pbmFscyBmb3IgZXhwcmVzc2lvbnMuCkBAIC0x NDcwNSw2ICsxNDc0NSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwg SU5DUkVNRU5UCiAJCQl8IElOREVYCiAJCQl8IElOREVYRVMKKwkJCXwgSU5G SU5JVEVMWQogCQkJfCBJTkhFUklUCiAJCQl8IElOSEVSSVRTCiAJCQl8IElO TElORV9QCkBAIC0xNDg0Myw2ICsxNDg4NCw3IEBAIHVucmVzZXJ2ZWRfa2V5 d29yZDoKIAkJCXwgVEVNUExBVEUKIAkJCXwgVEVNUE9SQVJZCiAJCQl8IFRF WFRfUAorCQkJfCBUSU1FT1VUCiAJCQl8IFRSQU5TQUNUSU9OCiAJCQl8IFRS QU5TRk9STQogCQkJfCBUUklHR0VSCkBAIC0xNDg2OCw2ICsxNDkxMCw3IEBA IHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVklFVwogCQkJfCBWSUVXUwog CQkJfCBWT0xBVElMRQorCQkJfCBXQUlUTFNOCiAJCQl8IFdISVRFU1BBQ0Vf UAogCQkJfCBXSVRISU4KIAkJCXwgV0lUSE9VVApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvaXBjaS5jCmluZGV4IDJkMWVkMTQuLjkzMjEzNmYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYworKysgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKQEAgLTIyLDYgKzIyLDcg QEAKICNpbmNsdWRlICJhY2Nlc3Mvc3VidHJhbnMuaCIKICNpbmNsdWRlICJh Y2Nlc3MvdHdvcGhhc2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5o IgorI2luY2x1ZGUgImNvbW1hbmRzL3dhaXRsc24uaCIKICNpbmNsdWRlICJt aXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJw b3N0bWFzdGVyL2F1dG92YWN1dW0uaCIKQEAgLTI3MSw2ICsyNzIsMTEgQEAg Q3JlYXRlU2hhcmVkTWVtb3J5QW5kU2VtYXBob3Jlcyhib29sIG1ha2VQcml2 YXRlLCBpbnQgcG9ydCkKIAlBc3luY1NobWVtSW5pdCgpOwogCUJhY2tlbmRS YW5kb21TaG1lbUluaXQoKTsKIAorCS8qCisJICogSW5pdCBhcnJheSBvZiBM YXRjaGVzICBpbiBTSE1FTSBmb3IgV0FJVExTTgorCSAqLworCVdhaXRMU05T aG1lbUluaXQoKTsKKwogI2lmZGVmIEVYRUNfQkFDS0VORAogCiAJLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggODJhNzA3YS4uNTQ0YmFlYiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIv c3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTU2LDYgKzU2LDcgQEAK ICNpbmNsdWRlICJjb21tYW5kcy91c2VyLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvdmFjdXVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmlldy5oIgorI2lu Y2x1ZGUgImNvbW1hbmRzL3dhaXRsc24uaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdXRpbGNtZC5oIgogI2lu Y2x1ZGUgInBvc3RtYXN0ZXIvYmd3cml0ZXIuaCIKQEAgLTkyMyw2ICs5MjQs MjAgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBz dG10LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgVF9XYWl0TFNOU3Rt dDoKKwkJCXsKKwkJCQlXYWl0TFNOU3RtdCAqc3RtdCA9IChXYWl0TFNOU3Rt dCAqKSBwYXJzZXRyZWU7CisJCQkJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3Mo KSkKKwkJCQl7CisJCQkJCWVyZXBvcnQoRVJST1IsKGVycmNvZGUoRVJSQ09E RV9SRUFEX09OTFlfU1FMX1RSQU5TQUNUSU9OKSwKKwkJCQkJCQllcnJtc2co ImNhbm5vdCBleGVjdXRlICVzIG5vdCBkdXJpbmcgcmVjb3ZlcnkiLAorCQkJ CQkJCSJXYWl0TFNOIikpKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCQlXYWl0 TFNOVXRpbGl0eShzdG10LT5sc24sIHN0bXQtPmRlbGF5LCBkZXN0KTsKKwkJ CX0KKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwgb3RoZXIg c3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICov CiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlT dHJpbmcsCkBAIC0yNDgxLDYgKzI0OTYsMTAgQEAgQ3JlYXRlQ29tbWFuZFRh ZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSAiTk9USUZZIjsKIAkJCWJy ZWFrOwogCisJCWNhc2UgVF9XYWl0TFNOU3RtdDoKKwkJCXRhZyA9ICJXQUlU TFNOIjsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9MaXN0ZW5TdG10OgogCQkJ dGFnID0gIkxJU1RFTiI7CiAJCQlicmVhazsKQEAgLTMxMDQsNiArMzEyMywx MCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJ bGV2ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKIAorCQljYXNlIFRfV2Fp dExTTlN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0FMTDsKKwkJCWJyZWFrOwor CiAJCWNhc2UgVF9MaXN0ZW5TdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7 CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3dhaXRsc24uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3dhaXRsc24uaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWNmOWU4Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvd2FpdGxz bi5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICoKKyAqIHdhaXRsc24uaAorICoJICBXYWl0TFNOIG5vdGlm aWNhdGlvbjogV0FJVExTTgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDE2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDE2LCBSZWdlbnRz IG9mIFBvc3RncmVzUFJPCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFuZHMv d2FpdGxzbi5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKyNpZm5kZWYgV0FJVExTTl9ICisjZGVmaW5lIFdBSVRMU05fSAor I2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitleHRlcm4gdm9pZCBXYWl0TFNO VXRpbGl0eShjb25zdCBjaGFyICpsc24sIGNvbnN0IGludCBkZWxheSwgRGVz dFJlY2VpdmVyICpkZXN0KTsKK2V4dGVybiB2b2lkIFdhaXRMU05TaG1lbUlu aXQodm9pZCk7CitleHRlcm4gdm9pZCBXYWl0TFNOU2V0TGF0Y2goWExvZ1Jl Y1B0ciBjdXJfbHNuKTsKK2V4dGVybiBYTG9nUmVjUHRyIEdldE1pbldhaXRM U04odm9pZCk7CisKKyNlbmRpZiAgIC8qIFdBSVRMU05fSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL25vZGVzLmgKaW5kZXggZmZlZWI0OS4uMjAxNjc3YiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9ub2Rlcy5oCkBAIC00NzksNiArNDc5LDcgQEAgdHlwZWRl ZiBlbnVtIE5vZGVUYWcKIAlUX0Ryb3BSZXBsaWNhdGlvblNsb3RDbWQsCiAJ VF9TdGFydFJlcGxpY2F0aW9uQ21kLAogCVRfVGltZUxpbmVIaXN0b3J5Q21k LAorCVRfV2FpdExTTlN0bXQsCiAJVF9TUUxDbWQsCiAKIAkvKgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDczMmU1ZDYuLjU1ZmZk YTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0 NDYsNCArMzQ0NiwxNiBAQCB0eXBlZGVmIHN0cnVjdCBEcm9wU3Vic2NyaXB0 aW9uU3RtdAogCURyb3BCZWhhdmlvciBiZWhhdmlvcjsJCS8qIFJFU1RSSUNU IG9yIENBU0NBREUgYmVoYXZpb3IgKi8KIH0gRHJvcFN1YnNjcmlwdGlvblN0 bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlXYWl0TFNO IFN0YXRlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0 eXBlZGVmIHN0cnVjdCBXYWl0TFNOU3RtdAoreworCU5vZGVUYWcJCXR5cGU7 CisJY2hhcgkgICAqbHNuOwkJCS8qIFRhcmFnZXQgTFNOIHRvIHdhaXQgZm9y ICovCisJaW50CQkJZGVsYXk7CQkJLyogRGVsYXkgdG8gd2FpdCBmb3IgTFNO Ki8KKwlib29sCQlub3dhaXQ7CQkJLyogTm8gd2FpdCBmb3IgTFNOIGp1c3Qg cmVzdWx0Ki8KK30gV2FpdExTTlN0bXQ7CisKICNlbmRpZgkJCQkJCQkvKiBQ QVJTRU5PREVTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRl eCBmNTBlNDVlLi42MThjZGIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCkBAIC0xOTgsNiArMTk4LDcgQEAgUEdfS0VZV09SRCgiaW5jbHVkaW5n IiwgSU5DTFVESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQpCiBQR19LRVlXT1JE KCJpbmNyZW1lbnQiLCBJTkNSRU1FTlQsIFVOUkVTRVJWRURfS0VZV09SRCkK IFBHX0tFWVdPUkQoImluZGV4IiwgSU5ERVgsIFVOUkVTRVJWRURfS0VZV09S RCkKIFBHX0tFWVdPUkQoImluZGV4ZXMiLCBJTkRFWEVTLCBVTlJFU0VSVkVE X0tFWVdPUkQpCitQR19LRVlXT1JEKCJpbmZpbml0ZWx5IiwgSU5GSU5JVEVM WSwgVU5SRVNFUlZFRF9LRVlXT1JEKQogUEdfS0VZV09SRCgiaW5oZXJpdCIs IElOSEVSSVQsIFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoImlu aGVyaXRzIiwgSU5IRVJJVFMsIFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tF WVdPUkQoImluaXRpYWxseSIsIElOSVRJQUxMWSwgUkVTRVJWRURfS0VZV09S RCkKQEAgLTM5NCw2ICszOTUsNyBAQCBQR19LRVlXT1JEKCJ0ZW1wb3Jhcnki LCBURU1QT1JBUlksIFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQo InRleHQiLCBURVhUX1AsIFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdP UkQoInRoZW4iLCBUSEVOLCBSRVNFUlZFRF9LRVlXT1JEKQogUEdfS0VZV09S RCgidGltZSIsIFRJTUUsIENPTF9OQU1FX0tFWVdPUkQpCitQR19LRVlXT1JE KCJ0aW1lb3V0IiwgVElNRU9VVCwgVU5SRVNFUlZFRF9LRVlXT1JEKQogUEdf S0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBDT0xfTkFNRV9LRVlX T1JEKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJWRURfS0VZV09SRCkK IFBHX0tFWVdPUkQoInRyYWlsaW5nIiwgVFJBSUxJTkcsIFJFU0VSVkVEX0tF WVdPUkQpCkBAIC00MzMsNiArNDM1LDcgQEAgUEdfS0VZV09SRCgidmVyc2lv biIsIFZFUlNJT05fUCwgVU5SRVNFUlZFRF9LRVlXT1JEKQogUEdfS0VZV09S RCgidmlldyIsIFZJRVcsIFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdP UkQoInZpZXdzIiwgVklFV1MsIFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tF WVdPUkQoInZvbGF0aWxlIiwgVk9MQVRJTEUsIFVOUkVTRVJWRURfS0VZV09S RCkKK1BHX0tFWVdPUkQoIndhaXRsc24iLCBXQUlUTFNOLCBVTlJFU0VSVkVE X0tFWVdPUkQpCiBQR19LRVlXT1JEKCJ3aGVuIiwgV0hFTiwgUkVTRVJWRURf S0VZV09SRCkKIFBHX0tFWVdPUkQoIndoZXJlIiwgV0hFUkUsIFJFU0VSVkVE X0tFWVdPUkQpCiBQR19LRVlXT1JEKCJ3aGl0ZXNwYWNlIiwgV0hJVEVTUEFD RV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQpCg== --=_ca5f7707046dac70928cbfe550e42419 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --=_ca5f7707046dac70928cbfe550e42419--