Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ds3Vj-0007en-Ls for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Sep 2017 08:59:08 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1ds3Vj-0003MQ-9R for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Sep 2017 08:59:07 +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 1ds3U7-0000Xs-1R for pgsql-hackers@postgresql.org; Wed, 13 Sep 2017 08:57:27 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by magus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ds3U1-0007tY-WC for pgsql-hackers@postgresql.org; Wed, 13 Sep 2017 08:57:26 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id 3CCD421C1D11; Wed, 13 Sep 2017 11:57:21 +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 F196D21C091B; Wed, 13 Sep 2017 11:57:20 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1505293041; bh=y1Gmh5Ohv57IvWe66ZDlp4dNHcF640NhdH8Ud+xPZ/Y=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=BZSGunieZqmuX9oebYKAdk71R3FNW7+IZ49YtaXORvlg4uVn+wWvXysrqJTj0w7+D 9O+Hm3JrubLm52V+cUJbkM3Wa2e0o1xYX/b7OzBMPyeK1NTocUFeSxKt1fmU/+X5R8 fRcfPp6UTRSyt8w+hwqs9+Qhj5I6smT1XNa94FMM= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_3b182b274c88320daeb32d98b548991d" Date: Wed, 13 Sep 2017 11:57:20 +0300 From: Victor Drobny To: Thomas Munro Cc: Robert Haas , pgsql-hackers@postgresql.org Subject: Re: new function for tsquery creartion Organization: Postgres Professional In-Reply-To: References: Message-ID: <69234700d26674fc7c171e48b850824c@postgrespro.ru> X-Sender: v.drobny@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 --=_3b182b274c88320daeb32d98b548991d Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2017-09-09 06:03, Thomas Munro wrote: > Please send a rebased version of the patch for people to review and > test as that one has bit-rotted. Hello, Thank you for interest. In the attachment you can find rebased version(based on 69835bc8988812c960f4ed5aeee86b62ac73602a commit) -- Victor Drobny Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_3b182b274c88320daeb32d98b548991d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=queryto_tsquery2.patch Content-Disposition: attachment; filename=queryto_tsquery2.patch; size=33252 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZnVuYy5zZ21sCmluZGV4IDY0MWIzYjguLmE2OTQ4MDEgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbApAQCAtOTUyMyw2ICs5NTIzLDE4IEBAIENSRUFURSBU WVBFIHJhaW5ib3cgQVMgRU5VTSAoJ3JlZCcsICdvcmFuZ2UnLCAneWVsbG93 JywgJ2dyZWVuJywgJ2JsdWUnLCAncHVycGxlCiAgICAgICAgPHJvdz4KICAg ICAgICAgPGVudHJ5PgogICAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAg ICA8cHJpbWFyeT5xdWVyeXRvX3RzcXVlcnk8L3ByaW1hcnk+CisgICAgICAg IDwvaW5kZXh0ZXJtPgorICAgICAgICAgPGxpdGVyYWw+PGZ1bmN0aW9uPnF1 ZXJ5dG9fdHNxdWVyeSg8b3B0aW9uYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0i UEFSQU1FVEVSIj5jb25maWc8Lz4gPHR5cGU+cmVnY29uZmlnPC8+ICwgPC9v cHRpb25hbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPnF1ZXJ5 PC8+IDx0eXBlPnRleHQ8L3R5cGU+KTwvZnVuY3Rpb24+PC9saXRlcmFsPgor ICAgICAgICA8L2VudHJ5PgorICAgICAgICA8ZW50cnk+PHR5cGU+dHNxdWVy eTwvdHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+cHJvZHVjZSA8dHlw ZT50c3F1ZXJ5PC8+IGZyb20gZ29vZ2xlIGxpa2UgcXVlcnk8L2VudHJ5Pgor ICAgICAgICA8ZW50cnk+PGxpdGVyYWw+cXVlcnl0b190c3F1ZXJ5KCdlbmds aXNoJywgJ1RoZSBGYXQgUmF0cycpPC9saXRlcmFsPjwvZW50cnk+CisgICAg ICAgIDxlbnRyeT48bGl0ZXJhbD4nZmF0JyAmYW1wOyAncmF0JzwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAg ICAgIDxlbnRyeT4KKyAgICAgICAgIDxpbmRleHRlcm0+CiAgICAgICAgICAg PHByaW1hcnk+cXVlcnl0cmVlPC9wcmltYXJ5PgogICAgICAgICAgPC9pbmRl eHRlcm0+CiAgICAgICAgICA8bGl0ZXJhbD48ZnVuY3Rpb24+cXVlcnl0cmVl KDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5xdWVyeTwvcmVwbGFj ZWFibGU+IDx0eXBlPnRzcXVlcnk8Lz4pPC9mdW5jdGlvbj48L2xpdGVyYWw+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvdGV4dHNlYXJjaC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3RleHRzZWFyY2guc2dtbAppbmRleCBmZTYzMGE2Li45 OTllNGFkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvdGV4dHNlYXJjaC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC90ZXh0c2VhcmNoLnNnbWwKQEAgLTc5 NywxMyArNzk3LDE1IEBAIFVQREFURSB0dCBTRVQgdGkgPQogICAgPHBhcmE+ CiAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBw cm92aWRlcyB0aGUKICAgICBmdW5jdGlvbnMgPGZ1bmN0aW9uPnRvX3RzcXVl cnk8L2Z1bmN0aW9uPiwKLSAgICA8ZnVuY3Rpb24+cGxhaW50b190c3F1ZXJ5 PC9mdW5jdGlvbj4sIGFuZAotICAgIDxmdW5jdGlvbj5waHJhc2V0b190c3F1 ZXJ5PC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24+cGxhaW50b190c3F1ZXJ5 PC9mdW5jdGlvbj4sCisgICAgPGZ1bmN0aW9uPnBocmFzZXRvX3RzcXVlcnk8 L2Z1bmN0aW9uPiBhbmQKKyAgICA8ZnVuY3Rpb24+cXVlcnl0b190c3F1ZXJ5 PC9mdW5jdGlvbj4KICAgICBmb3IgY29udmVydGluZyBhIHF1ZXJ5IHRvIHRo ZSA8dHlwZT50c3F1ZXJ5PC90eXBlPiBkYXRhIHR5cGUuCiAgICAgPGZ1bmN0 aW9uPnRvX3RzcXVlcnk8L2Z1bmN0aW9uPiBvZmZlcnMgYWNjZXNzIHRvIG1v cmUgZmVhdHVyZXMKICAgICB0aGFuIGVpdGhlciA8ZnVuY3Rpb24+cGxhaW50 b190c3F1ZXJ5PC9mdW5jdGlvbj4gb3IKICAgICA8ZnVuY3Rpb24+cGhyYXNl dG9fdHNxdWVyeTwvZnVuY3Rpb24+LCBidXQgaXQgaXMgbGVzcyBmb3JnaXZp bmcKLSAgICBhYm91dCBpdHMgaW5wdXQuCisgICAgYWJvdXQgaXRzIGlucHV0 LiA8ZnVuY3Rpb24+cXVlcnl0b190c3F1ZXJ5PC9mdW5jdGlvbj4gcHJvdmlk ZXMgYSAKKyAgICBkaWZmZXJlbnQsIEdvb2dsZSBsaWtlIHN5bnRheCB0byBj cmVhdGUgdHNxdWVyeS4KICAgIDwvcGFyYT4KIAogICAgPGluZGV4dGVybT4K QEAgLTk2MCw4ICs5NjIsNjggQEAgU0VMRUNUIHBocmFzZXRvX3RzcXVlcnko J2VuZ2xpc2gnLCAnVGhlIEZhdCAmYW1wOyBSYXRzOkMnKTsKIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgJ2ZhdCcgJmx0Oy0mZ3Q7ICdyYXQn ICZsdDstJmd0OyAnYycKIDwvc2NyZWVuPgorPC9wYXJhPgorCis8c3lub3Bz aXM+CitxdWVyeXRvX3RzcXVlcnkoPG9wdGlvbmFsPiA8cmVwbGFjZWFibGUg Y2xhc3M9IlBBUkFNRVRFUiI+Y29uZmlnPC9yZXBsYWNlYWJsZT4gPHR5cGU+ cmVnY29uZmlnPC8+LCA8L29wdGlvbmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9 IlBBUkFNRVRFUiI+cXVlcnl0ZXh0PC9yZXBsYWNlYWJsZT4gPHR5cGU+dGV4 dDwvPikgcmV0dXJucyA8dHlwZT50c3F1ZXJ5PC8+Cis8L3N5bm9wc2lzPgor CisgICA8cGFyYT4KKyAgICA8ZnVuY3Rpb24+cXVlcnl0b190c3F1ZXJ5PC8+ IGNyZWF0ZXMgYSA8dHlwZT50c3F1ZXJ5PC90eXBlPiBmcm9tIGEgdW5mb3Jt YXRlZCB0ZXh0LgorICAgIEJ1dCBpbnN0ZWFkIG9mIDxmdW5jdGlvbj5wbGFp bnRvX3RzcXVlcnk8Lz4gYW5kIDxmdW5jdGlvbj5waHJhc2V0b190c3F1ZXJ5 PC8+IGl0IHdvbid0CisgICAgaWdub3JlIGFscmVhZHkgcGxhY2VkIG9wZXJh dGlvbnMuIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgZm9sbG93aW5nIG9wZXJh dG9yczoKKyAgICA8aXRlbWl6ZWRsaXN0ICBzcGFjaW5nPSJjb21wYWN0IiBt YXJrPSJidWxsZXQiPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4K KyAgICAgICAnInNvbWUgdGV4dCIgLSBhbnkgdGV4dCBpbnNpZGUgcXVvdGUg c2lnbnMgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGhyYXNlIGFuZCB3aWxsIGJl CisgICAgICAgIHBlcmZvcm1lZCBsaWtlIGluIDxmdW5jdGlvbj5waHJhc2V0 b190c3F1ZXJ5PC8+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVt PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAnT1In IC0gc3RhbmRhcmQgbG9naWNhbCBvcGVyYXRvci4gSXQgaXMganVzdCBhbiBh bGlhcyBmb3IgJ3wnJyBzaWduLgorICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAg ICAndGVybWEgQVJPVU5EKE4pIHRlcm1iJyAtIHRoaXMgb3BlcmF0aW9uIHdp bGwgbWF0Y2ggaWYgdGhlIGRpc3RhbmNlIGJldHdlZW4gCisgICAgICAgdGVy bWEgYW5kIHRlcm1iIGlzIGxlc3MgdGhhbiBOLgorICAgICAgPC9wYXJhPgor ICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICAnLScgLSBzdGFuZGFyZCBsb2dpY2FsIG5lZ2F0aW9uIHNp Z24uIEl0IGlzIGFuIGFsaWFzIGZvciAnIScgc2lnbi4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKyAg ICBPdGhlciBtaXNzaW5nIG9wZXJhdG9ycyB3aWxsIGJlIHJlcGxhY2VkIGJ5 IEFORCBsaWtlIGluIDxmdW5jdGlvbj5wbGFpbnRvX3RzcXVlcnk8Lz4uCiAg ICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIEV4YW1wbGVzOgorICAgIDxz Y3JlZW4+CisgICAgICBzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCdUaGUgZmF0 IHJhdHMnKTsKKyAgICAgICBxdWVyeXRvX3RzcXVlcnkgCisgICAgICAtLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICdmYXQnICYgJ3JhdCcKKyAgICAgICgx IHJvdykKKyAgICA8L3NjcmVlbj4KKyAgICA8c2NyZWVuPgorICAgICAgc2Vs ZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnInN1cGVybm92YWUgc3RhcnMiIEFORCAt Y3JhYicpOworICAgICAgICAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAgICAg ICAKKyAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAnc3VwZXJub3ZhJyA8LT4gJ3N0YXInICYgISdjcmFiJworICAg ICgxIHJvdykKKyAgICA8L3NjcmVlbj4KKyAgICA8c2NyZWVuPgorICAgICAg c2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnLXJ1biBBUk9VTkQoNSkgImdudSBk ZWJ1Z2dlciIgT1IgIkkgbGlrZSBiYW5hbmFzIicpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAgICAgICAgICAg ICAgICAgICAKKyAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgISdydW4n IEFST1VORCg1KSAnZ251JyA8LT4gJ2RlYnVnZycgfCAnbGlrZScgPC0+ICdi YW5hbmEnCisgICAgICAoMSByb3cpCisgICAgPC9zY3JlZW4+CisgICAgPC9w YXJhPgorCiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJ0ZXh0c2VhcmNo LXJhbmtpbmciPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdHNlYXJjaC90 b190c2FueS5jIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC90b190c2FueS5jCmlu ZGV4IDM1ZDlhYjIuLmU4MjAwNDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3RzZWFyY2gvdG9fdHNhbnkuYworKysgYi9zcmMvYmFja2VuZC90c2VhcmNo L3RvX3RzYW55LmMKQEAgLTM5MCw3ICszOTAsOCBAQCBhZGRfdG9fdHN2ZWN0 b3Iodm9pZCAqX3N0YXRlLCBjaGFyICplbGVtX3ZhbHVlLCBpbnQgZWxlbV9s ZW4pCiAgKiBhbmQgZGlmZmVyZW50IHZhcmlhbnRzIGFyZSBPUmVkIHRvZ2V0 aGVyLgogICovCiBzdGF0aWMgdm9pZAotcHVzaHZhbF9tb3JwaChEYXR1bSBv cGFxdWUsIFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0ZSwgY2hhciAqc3RydmFs LCBpbnQgbGVudmFsLCBpbnQxNiB3ZWlnaHQsIGJvb2wgcHJlZml4KQorcHVz aHZhbF9tb3JwaChEYXR1bSBvcGFxdWUsIFRTUXVlcnlQYXJzZXJTdGF0ZSBz dGF0ZSwgY2hhciAqc3RydmFsLCBpbnQgbGVudmFsLAorCQkJCQkJCWludDE2 IHdlaWdodCwgYm9vbCBwcmVmaXgsIGJvb2wgaXNwaHJhc2UpCiB7CiAJaW50 MzIJCWNvdW50ID0gMDsKIAlQYXJzZWRUZXh0CXByczsKQEAgLTQyMyw3ICs0 MjQsMTIgQEAgcHVzaHZhbF9tb3JwaChEYXR1bSBvcGFxdWUsIFRTUXVlcnlQ YXJzZXJTdGF0ZSBzdGF0ZSwgY2hhciAqc3RydmFsLCBpbnQgbGVudmFsLAog CQkJCQkvKiBwdXQgcGxhY2Vob2xkZXJzIGZvciBlYWNoIG1pc3Npbmcgc3Rv cCB3b3JkICovCiAJCQkJCXB1c2hTdG9wKHN0YXRlKTsKIAkJCQkJaWYgKGNu dHBvcykKLQkJCQkJCXB1c2hPcGVyYXRvcihzdGF0ZSwgZGF0YS0+cW9wZXJh dG9yLCAxKTsKKwkJCQkJeworCQkJCQkJaWYgKGlzcGhyYXNlKQorCQkJCQkJ CXB1c2hPcGVyYXRvcihzdGF0ZSwgT1BfUEhSQVNFLCAxKTsKKwkJCQkJCWVs c2UKKwkJCQkJCQlwdXNoT3BlcmF0b3Ioc3RhdGUsIGRhdGEtPnFvcGVyYXRv ciwgMSk7CisJCQkJCX0KIAkJCQkJY250cG9zKys7CiAJCQkJCXBvcysrOwog CQkJCX0KQEAgLTQ2NCw3ICs0NzAsMTAgQEAgcHVzaHZhbF9tb3JwaChEYXR1 bSBvcGFxdWUsIFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0ZSwgY2hhciAqc3Ry dmFsLCBpbnQgbGVudmFsLAogCQkJaWYgKGNudHBvcykKIAkJCXsKIAkJCQkv KiBkaXN0YW5jZSBtYXkgYmUgdXNlZnVsICovCi0JCQkJcHVzaE9wZXJhdG9y KHN0YXRlLCBkYXRhLT5xb3BlcmF0b3IsIDEpOworCQkJCWlmIChpc3BocmFz ZSkKKwkJCQkJcHVzaE9wZXJhdG9yKHN0YXRlLCBPUF9QSFJBU0UsIDEpOwor CQkJCWVsc2UKKwkJCQkJcHVzaE9wZXJhdG9yKHN0YXRlLCBkYXRhLT5xb3Bl cmF0b3IsIDEpOwogCQkJfQogCiAJCQljbnRwb3MrKzsKQEAgLTQ5MCw2ICs0 OTksNyBAQCB0b190c3F1ZXJ5X2J5aWQoUEdfRlVOQ1RJT05fQVJHUykKIAlx dWVyeSA9IHBhcnNlX3RzcXVlcnkodGV4dF90b19jc3RyaW5nKGluKSwKIAkJ CQkJCSAgcHVzaHZhbF9tb3JwaCwKIAkJCQkJCSAgUG9pbnRlckdldERhdHVt KCZkYXRhKSwKKwkJCQkJCSAgZmFsc2UsCiAJCQkJCQkgIGZhbHNlKTsKIAog CVBHX1JFVFVSTl9UU1FVRVJZKHF1ZXJ5KTsKQEAgLTUyMCw3ICs1MzAsOCBA QCBwbGFpbnRvX3RzcXVlcnlfYnlpZChQR19GVU5DVElPTl9BUkdTKQogCXF1 ZXJ5ID0gcGFyc2VfdHNxdWVyeSh0ZXh0X3RvX2NzdHJpbmcoaW4pLAogCQkJ CQkJICBwdXNodmFsX21vcnBoLAogCQkJCQkJICBQb2ludGVyR2V0RGF0dW0o JmRhdGEpLAotCQkJCQkJICB0cnVlKTsKKwkJCQkJCSAgdHJ1ZSwKKwkJCQkJ CSAgZmFsc2UpOwogCiAJUEdfUkVUVVJOX1BPSU5URVIocXVlcnkpOwogfQpA QCAtNTUxLDcgKzU2Miw4IEBAIHBocmFzZXRvX3RzcXVlcnlfYnlpZChQR19G VU5DVElPTl9BUkdTKQogCXF1ZXJ5ID0gcGFyc2VfdHNxdWVyeSh0ZXh0X3Rv X2NzdHJpbmcoaW4pLAogCQkJCQkJICBwdXNodmFsX21vcnBoLAogCQkJCQkJ ICBQb2ludGVyR2V0RGF0dW0oJmRhdGEpLAotCQkJCQkJICB0cnVlKTsKKwkJ CQkJCSAgdHJ1ZSwKKwkJCQkJCSAgZmFsc2UpOwogCiAJUEdfUkVUVVJOX1RT UVVFUlkocXVlcnkpOwogfQpAQCAtNTY3LDMgKzU3OSwzNiBAQCBwaHJhc2V0 b190c3F1ZXJ5KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCQkJCQkJT2JqZWN0 SWRHZXREYXR1bShjZmdJZCksCiAJCQkJCQkJCQkJUG9pbnRlckdldERhdHVt KGluKSkpOwogfQorCitEYXR1bQorcXVlcnl0b190c3F1ZXJ5X2J5aWQoUEdf RlVOQ1RJT05fQVJHUykKK3sKKwl0ZXh0CSAgICppbiA9IFBHX0dFVEFSR19U RVhUX1BQKDEpOworCU1vcnBoT3BhcXVlCWRhdGE7CisJVFNRdWVyeQkJcXVl cnkgPSBOVUxMOworCisJZGF0YS5jZmdfaWQgPSBQR19HRVRBUkdfT0lEKDAp OworCisJZGF0YS5xb3BlcmF0b3IgPSBPUF9BTkQ7CisKKwlxdWVyeSA9IHBh cnNlX3RzcXVlcnkodGV4dF90b19jc3RyaW5nKGluKSwKKwkJCQkJCSAgcHVz aHZhbF9tb3JwaCwKKwkJCQkJCSAgUG9pbnRlckdldERhdHVtKCZkYXRhKSwK KwkJCQkJCSAgZmFsc2UsCisJCQkJCQkgIHRydWUpOworCisJUEdfUkVUVVJO X1RTUVVFUlkocXVlcnkpOworfQorCitEYXR1bQorcXVlcnl0b190c3F1ZXJ5 KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJdGV4dAkgICAqaW4gPSBQR19HRVRB UkdfVEVYVF9QUCgwKTsKKwlPaWQJCQljZmdJZDsKKworCWNmZ0lkID0gZ2V0 VFNDdXJyZW50Q29uZmlnKHRydWUpOworCVBHX1JFVFVSTl9EQVRVTShEaXJl Y3RGdW5jdGlvbkNhbGwyKHF1ZXJ5dG9fdHNxdWVyeV9ieWlkLAorCQkJCQkJ CQkJCU9iamVjdElkR2V0RGF0dW0oY2ZnSWQpLAorCQkJCQkJCQkJCVBvaW50 ZXJHZXREYXR1bShpbikpKTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdHNlYXJjaC90c19zZWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdHNlYXJj aC90c19zZWxmdW5jcy5jCmluZGV4IDA0NmY1NDMuLjM3NWNiNWMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNfc2VsZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC90c2VhcmNoL3RzX3NlbGZ1bmNzLmMKQEAgLTM5Niw2 ICszOTYsNyBAQCB0c3F1ZXJ5X29wcl9zZWxlYyhRdWVyeUl0ZW0gKml0ZW0s IGNoYXIgKm9wZXJhbmQsCiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgT1BfUEhS QVNFOgorCQkJY2FzZSBPUF9BUk9VTkQ6CiAJCQljYXNlIE9QX0FORDoKIAkJ CQlzMSA9IHRzcXVlcnlfb3ByX3NlbGVjKGl0ZW0gKyAxLCBvcGVyYW5kLAog CQkJCQkJCQkJICAgbG9va3VwLCBsZW5ndGgsIG1pbmZyZXEpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdHNnaW5pZHguYwppbmRleCA4M2E5MzlkLi43 ZGM4ZjM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNn aW5pZHguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNnaW5pZHgu YwpAQCAtMjM5LDYgKzIzOSw3IEBAIFRTX2V4ZWN1dGVfdGVybmFyeShHaW5D aGtWYWwgKmdjdiwgUXVlcnlJdGVtICpjdXJpdGVtLCBib29sIGluX3BocmFz ZSkKIAkJCXJldHVybiAhcmVzdWx0OwogCiAJCWNhc2UgT1BfUEhSQVNFOgor CQljYXNlIE9QX0FST1VORDoKIAogCQkJLyoKIAkJCSAqIEdJTiBkb2Vzbid0 IGNvbnRhaW4gYW55IGluZm9ybWF0aW9uIGFib3V0IHBvc2l0aW9ucywgc28g dHJlYXQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1 ZXJ5LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVyeS5jCmluZGV4 IGZkYjA0MTkuLmMyMzgwNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90c3F1ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RzcXVlcnkuYwpAQCAtMjksNiArMjksNyBAQCBjb25zdCBpbnQJdHNlYXJj aF9vcF9wcmlvcml0eVtPUF9DT1VOVF0gPQogCTQsCQkJCQkJCS8qIE9QX05P VCAqLwogCTIsCQkJCQkJCS8qIE9QX0FORCAqLwogCTEsCQkJCQkJCS8qIE9Q X09SICovCisJMywJCQkJCQkJLyogT1BfQVJPVU5EICovCiAJMwkJCQkJCQkv KiBPUF9QSFJBU0UgKi8KIH07CiAKQEAgLTU4LDEwICs1OSwxMSBAQCBzdHJ1 Y3QgVFNRdWVyeVBhcnNlclN0YXRlRGF0YQogfTsKIAogLyogcGFyc2VyJ3Mg c3RhdGVzICovCi0jZGVmaW5lIFdBSVRPUEVSQU5EIDEKLSNkZWZpbmUgV0FJ VE9QRVJBVE9SCTIKLSNkZWZpbmUgV0FJVEZJUlNUT1BFUkFORCAzCi0jZGVm aW5lIFdBSVRTSU5HTEVPUEVSQU5EIDQKKyNkZWZpbmUgV0FJVE9QRVJBTkQJ CQkxCisjZGVmaW5lIFdBSVRPUEVSQVRPUgkJMgorI2RlZmluZSBXQUlURklS U1RPUEVSQU5ECTMKKyNkZWZpbmUgV0FJVFNJTkdMRU9QRVJBTkQJNAorI2Rl ZmluZSBJTlNJREVRVU9URVMJCTUKIAogLyoKICAqIHN1YnJvdXRpbmUgdG8g cGFyc2UgdGhlIG1vZGlmaWVycyAod2VpZ2h0IGFuZCBwcmVmaXggZmxhZyBj dXJyZW50bHkpCkBAIC0yMTAsNiArMjEyLDY5IEBAIHR5cGVkZWYgZW51bQog CVBUX0NMT1NFID0gNQogfSB0c190b2tlbnR5cGU7CiAKKworc3RhdGljIGJv b2wKK2hhc19wcmVmaXgoY2hhciAqIHN0ciwgY2hhciAqIHByZWZpeCkKK3sK KwlpZiAoc3RybGVuKHByZWZpeCkgPiBzdHJsZW4oc3RyKSkKKwl7CisJCXJl dHVybiBmYWxzZTsKKwl9CisJd2hpbGUgKCpwcmVmaXggIT0gJ1wwJykKKwl7 CisJCWlmICgqKHN0cisrKSAhPSAqKHByZWZpeCsrKSkKKwkJeworCQkJcmV0 dXJuIGZhbHNlOworCQl9CisJfQorCXJldHVybiB0cnVlOworfQorCisvKgor ICogUGFyc2UgYXJvdW5kIG9wZXJhdG9yLiBUaGUgb3BlcmF0b3IKKyAqIGhh dmUgdGhlIGZvbGxvd2luZyBmb3JtOgorICoKKyAqCQlhIEFST1VORChYKSBi IChkaXN0YW5jZSBpcyBubyBncmVhdGVyIHRoYW4gWCkKKyAqCisgKiBUaGUg YnVmZmVyIHNob3VsZCBiZWdpbiB3aXRoICJBUk9VTkQoIiBwcmVmaXgKKyAq Lworc3RhdGljIGNoYXIgKgorcGFyc2VfYXJvdW5kX29wZXJhdG9yKGNoYXIg KmJ1ZiwgaW50MTYgKmRpc3RhbmNlKQoreworCWNoYXIJICAgKnB0ciA9IGJ1 ZjsKKwljaGFyCSAgICplbmRwdHI7CisJbG9uZwkJbCA9IDE7CisKKwlBc3Nl cnQoaGFzX3ByZWZpeChwdHIsICJBUk9VTkQoIikpOworCisJcHRyICs9IHN0 cmxlbigiQVJPVU5EKCIpOworCisJd2hpbGUgKHRfaXNzcGFjZShwdHIpKQor CQlwdHIrKzsKKworCWwgPSBzdHJ0b2wocHRyLCAmZW5kcHRyLCAxMCk7CisJ aWYgKHB0ciA9PSBlbmRwdHIpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJ IGVycm1zZygiSW52YWxpZCBBUk9VTkQoWCkgb3BlcmF0b3IhIikpKTsKKwll bHNlIGlmIChlcnJubyA9PSBFUkFOR0UgfHwgbCA+IE1BWEVOVFJZUE9TKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBlcnJtc2coImRpc3RhbmNlIGlu IEFST1VORCBvcGVyYXRvciBzaG91bGQgbm90IGJlIGdyZWF0ZXIgdGhhbiAl ZCIsCisJCQkJCQlNQVhFTlRSWVBPUykpKTsKKworCXB0ciA9IGVuZHB0cjsK KwkqZGlzdGFuY2UgPSBsOworCXdoaWxlICh0X2lzc3BhY2UocHRyKSkKKwkJ cHRyKys7CisKKwlpZiAoIXRfaXNlcShwdHIsICcpJykpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRF Ul9WQUxVRSksCisJCQkJIGVycm1zZygiTWlzc2luZyAnKScgaW4gQVJPVU5E KFgpIG9wZXJhdG9yIikpKTsKKworCXJldHVybiArK3B0cjsKK30KIC8qCiAg KiBnZXQgdG9rZW4gZnJvbSBxdWVyeSBzdHJpbmcKICAqCkBAIC0yMjEsNyAr Mjg2LDggQEAgdHlwZWRlZiBlbnVtCiBzdGF0aWMgdHNfdG9rZW50eXBlCiBn ZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkg ICBpbnQ4ICpvcGVyYXRvciwKLQkJCSAgIGludCAqbGVudmFsLCBjaGFyICoq c3RydmFsLCBpbnQxNiAqd2VpZ2h0LCBib29sICpwcmVmaXgpCisJCQkgICBp bnQgKmxlbnZhbCwgY2hhciAqKnN0cnZhbCwgaW50MTYgKndlaWdodCwgYm9v bCAqcHJlZml4LAorCQkJICAgYm9vbCBpc3F1ZXJ5KQogewogCSp3ZWlnaHQg PSAwOwogCSpwcmVmaXggPSBmYWxzZTsKQEAgLTIzMiw3ICsyOTgsNyBAQCBn ZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCXsK IAkJCWNhc2UgV0FJVEZJUlNUT1BFUkFORDoKIAkJCWNhc2UgV0FJVE9QRVJB TkQ6Ci0JCQkJaWYgKHRfaXNlcShzdGF0ZS0+YnVmLCAnIScpKQorCQkJCWlm ICh0X2lzZXEoc3RhdGUtPmJ1ZiwgJyEnKSB8fCAoaXNxdWVyeSAmJiB0X2lz ZXEoc3RhdGUtPmJ1ZiwgJy0nKSkpCiAJCQkJewogCQkJCQkoc3RhdGUtPmJ1 ZikrKzsgLyogY2FuIHNhZmVseSArKywgdF9pc2VxIGd1YXJhbnRlZSB0aGF0 CiAJCQkJCQkJCQkgKiBwZ19tYmxlbigpPT0xICovCkBAIC0yNTQsNiArMzIw LDIwIEBAIGdldHRva2VuX3F1ZXJ5KFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0 ZSwKIAkJCQkJCQkgZXJybXNnKCJzeW50YXggZXJyb3IgaW4gdHNxdWVyeTog XCIlc1wiIiwKIAkJCQkJCQkJCXN0YXRlLT5idWZmZXIpKSk7CiAJCQkJfQor CQkJCWVsc2UgaWYgKGlzcXVlcnkgJiYgdF9pc2VxKHN0YXRlLT5idWYsICci JykpCisJCQkJeworCQkJCQljaGFyCSAgICpxdW90ZSA9IHN0cmNocihzdGF0 ZS0+YnVmICsgMSwgJyInKTsKKwkJCQkJaWYgKHF1b3RlID09IE5VTEwpCisJ CQkJCXsKKwkJCQkJCXN0YXRlLT5idWYrKzsKKwkJCQkJCWNvbnRpbnVlOwor CQkJCQl9CisJCQkJCSpzdHJ2YWwgPSBzdGF0ZS0+YnVmICsgMTsKKwkJCQkJ KmxlbnZhbCA9IHF1b3RlIC0gc3RhdGUtPmJ1ZiAtIDE7CisJCQkJCXN0YXRl LT5idWYgPSBxdW90ZSArIDE7CisJCQkJCXN0YXRlLT5zdGF0ZSA9IElOU0lE RVFVT1RFUzsKKwkJCQkJcmV0dXJuIFBUX1ZBTDsKKwkJCQl9CiAJCQkJZWxz ZSBpZiAoIXRfaXNzcGFjZShzdGF0ZS0+YnVmKSkKIAkJCQl7CiAJCQkJCS8q CkBAIC0yOTEsNiArMzcxLDEzIEBAIGdldHRva2VuX3F1ZXJ5KFRTUXVlcnlQ YXJzZXJTdGF0ZSBzdGF0ZSwKIAkJCQkJKHN0YXRlLT5idWYpKys7CiAJCQkJ CXJldHVybiBQVF9PUFI7CiAJCQkJfQorCQkJCWVsc2UgaWYgKGlzcXVlcnkg JiYgaGFzX3ByZWZpeChzdGF0ZS0+YnVmLCAiT1IgIikpCisJCQkJeworCQkJ CQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsKKwkJCQkJKm9wZXJhdG9y ID0gT1BfT1I7CisJCQkJCShzdGF0ZS0+YnVmKSArPSAzOworCQkJCQlyZXR1 cm4gUFRfT1BSOworCQkJCX0KIAkJCQllbHNlIGlmICh0X2lzZXEoc3RhdGUt PmJ1ZiwgJzwnKSkKIAkJCQl7CiAJCQkJCXN0YXRlLT5zdGF0ZSA9IFdBSVRP UEVSQU5EOwpAQCAtMzAxLDE0ICszODgsMzkgQEAgZ2V0dG9rZW5fcXVlcnko VFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAogCQkJCQkJcmV0dXJuIFBUX0VS UjsKIAkJCQkJcmV0dXJuIFBUX09QUjsKIAkJCQl9CisJCQkJZWxzZSBpZiAo aXNxdWVyeSAmJiBoYXNfcHJlZml4KHN0YXRlLT5idWYsICJBUk9VTkQoIikp CisJCQkJeworCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsKKwkJ CQkJKm9wZXJhdG9yID0gT1BfQVJPVU5EOworCQkJCQkvKiB3ZWlnaHQgdmFy IGlzIHVzZWQgYXMgc3RvcmFnZSBmb3IgZGlzdGFuY2UgKi8KKwkJCQkJc3Rh dGUtPmJ1ZiA9IHBhcnNlX2Fyb3VuZF9vcGVyYXRvcihzdGF0ZS0+YnVmLCB3 ZWlnaHQpOworCQkJCQlpZiAoKndlaWdodCA8IDApCisJCQkJCQlyZXR1cm4g UFRfRVJSOworCQkJCQlyZXR1cm4gUFRfT1BSOworCQkJCX0KIAkJCQllbHNl IGlmICh0X2lzZXEoc3RhdGUtPmJ1ZiwgJyknKSkKIAkJCQl7CiAJCQkJCShz dGF0ZS0+YnVmKSsrOwogCQkJCQlzdGF0ZS0+Y291bnQtLTsKIAkJCQkJcmV0 dXJuIChzdGF0ZS0+Y291bnQgPCAwKSA/IFBUX0VSUiA6IFBUX0NMT1NFOwog CQkJCX0KKwkJCQllbHNlIGlmICh0X2lzZXEoc3RhdGUtPmJ1ZiwgJygnKSkK KwkJCQl7CisJCQkJCSpvcGVyYXRvciA9IE9QX0FORDsKKwkJCQkJc3RhdGUt PnN0YXRlID0gV0FJVE9QRVJBTkQ7CisJCQkJCXJldHVybiBQVF9PUFI7CisJ CQkJfQogCQkJCWVsc2UgaWYgKCooc3RhdGUtPmJ1ZikgPT0gJ1wwJykKIAkJ CQkJcmV0dXJuIChzdGF0ZS0+Y291bnQpID8gUFRfRVJSIDogUFRfRU5EOwor CQkJCWVsc2UgaWYgKGlzcXVlcnkgJiYKKwkJCQkJCQkodF9pc2FscGhhKHN0 YXRlLT5idWYpIHx8IHRfaXNlcShzdGF0ZS0+YnVmLCAnIScpCisJCQkJCQkJ CQkJCQkgICB8fCB0X2lzZXEoc3RhdGUtPmJ1ZiwgJy0nKQorCQkJCQkJCQkJ CQkJICAgfHwgdF9pc2VxKHN0YXRlLT5idWYsICciJykpKQorCQkJCXsKKwkJ CQkJc3RhdGUtPnN0YXRlID0gV0FJVE9QRVJBTkQ7CisJCQkJCSpvcGVyYXRv ciA9IE9QX0FORDsKKwkJCQkJcmV0dXJuIFBUX09QUjsKKwkJCQl9CiAJCQkJ ZWxzZSBpZiAoIXRfaXNzcGFjZShzdGF0ZS0+YnVmKSkKIAkJCQkJcmV0dXJu IFBUX0VSUjsKIAkJCQlicmVhazsKQEAgLTMyMCw2ICs0MzIsOSBAQCBnZXR0 b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJc3Rh dGUtPmJ1ZiArPSBzdHJsZW4oc3RhdGUtPmJ1Zik7CiAJCQkJc3RhdGUtPmNv dW50Kys7CiAJCQkJcmV0dXJuIFBUX1ZBTDsKKwkJCWNhc2UgSU5TSURFUVVP VEVTOgorCQkJCXN0YXRlLT5zdGF0ZSA9IFdBSVRPUEVSQVRPUjsKKwkJCQlj b250aW51ZTsKIAkJCWRlZmF1bHQ6CiAJCQkJcmV0dXJuIFBUX0VSUjsKIAkJ CQlicmVhazsKQEAgLTMzNiwxMiArNDUxLDEyIEBAIHB1c2hPcGVyYXRvcihU U1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGludDggb3BlciwgaW50MTYgZGlz dGFuY2UpCiB7CiAJUXVlcnlPcGVyYXRvciAqdG1wOwogCi0JQXNzZXJ0KG9w ZXIgPT0gT1BfTk9UIHx8IG9wZXIgPT0gT1BfQU5EIHx8IG9wZXIgPT0gT1Bf T1IgfHwgb3BlciA9PSBPUF9QSFJBU0UpOworCUFzc2VydChvcGVyID09IE9Q X05PVCB8fCBvcGVyID09IE9QX0FORCB8fCBvcGVyID09IE9QX09SIHx8IG9w ZXIgPT0gT1BfUEhSQVNFIHx8IG9wZXIgPT0gT1BfQVJPVU5EKTsKIAogCXRt cCA9IChRdWVyeU9wZXJhdG9yICopIHBhbGxvYzAoc2l6ZW9mKFF1ZXJ5T3Bl cmF0b3IpKTsKIAl0bXAtPnR5cGUgPSBRSV9PUFI7CiAJdG1wLT5vcGVyID0g b3BlcjsKLQl0bXAtPmRpc3RhbmNlID0gKG9wZXIgPT0gT1BfUEhSQVNFKSA/ IGRpc3RhbmNlIDogMDsKKwl0bXAtPmRpc3RhbmNlID0gKG9wZXIgPT0gT1Bf UEhSQVNFIHx8IG9wZXIgPT0gT1BfQVJPVU5EKSA/IGRpc3RhbmNlIDogMDsK IAkvKiBsZWZ0IGlzIGZpbGxlZCBpbiBsYXRlciB3aXRoIGZpbmRvcHJuZCAq LwogCiAJc3RhdGUtPnBvbHN0ciA9IGxjb25zKHRtcCwgc3RhdGUtPnBvbHN0 cik7CkBAIC00NzUsNyArNTkwLDggQEAgY2xlYW5PcFN0YWNrKFRTUXVlcnlQ YXJzZXJTdGF0ZSBzdGF0ZSwKIHN0YXRpYyB2b2lkCiBtYWtlcG9sKFRTUXVl cnlQYXJzZXJTdGF0ZSBzdGF0ZSwKIAkJUHVzaEZ1bmN0aW9uIHB1c2h2YWws Ci0JCURhdHVtIG9wYXF1ZSkKKwkJRGF0dW0gb3BhcXVlLAorCQlib29sIGlz cXVlcnkpCiB7CiAJaW50OAkJb3BlcmF0b3IgPSAwOwogCXRzX3Rva2VudHlw ZSB0eXBlOwpAQCAtNDg5LDE5ICs2MDUsMTkgQEAgbWFrZXBvbChUU1F1ZXJ5 UGFyc2VyU3RhdGUgc3RhdGUsCiAJLyogc2luY2UgdGhpcyBmdW5jdGlvbiBy ZWN1cnNlcywgaXQgY291bGQgYmUgZHJpdmVuIHRvIHN0YWNrIG92ZXJmbG93 ICovCiAJY2hlY2tfc3RhY2tfZGVwdGgoKTsKIAotCXdoaWxlICgodHlwZSA9 IGdldHRva2VuX3F1ZXJ5KHN0YXRlLCAmb3BlcmF0b3IsICZsZW52YWwsICZz dHJ2YWwsICZ3ZWlnaHQsICZwcmVmaXgpKSAhPSBQVF9FTkQpCisJd2hpbGUg KCh0eXBlID0gZ2V0dG9rZW5fcXVlcnkoc3RhdGUsICZvcGVyYXRvciwgJmxl bnZhbCwgJnN0cnZhbCwgJndlaWdodCwgJnByZWZpeCwgaXNxdWVyeSkpICE9 IFBUX0VORCkKIAl7CiAJCXN3aXRjaCAodHlwZSkKIAkJewogCQkJY2FzZSBQ VF9WQUw6Ci0JCQkJcHVzaHZhbChvcGFxdWUsIHN0YXRlLCBzdHJ2YWwsIGxl bnZhbCwgd2VpZ2h0LCBwcmVmaXgpOworCQkJCXB1c2h2YWwob3BhcXVlLCBz dGF0ZSwgc3RydmFsLCBsZW52YWwsIHdlaWdodCwgcHJlZml4LCBzdGF0ZS0+ c3RhdGUgPT0gSU5TSURFUVVPVEVTKTsKIAkJCQlicmVhazsKIAkJCWNhc2Ug UFRfT1BSOgogCQkJCWNsZWFuT3BTdGFjayhzdGF0ZSwgb3BzdGFjaywgJmxl bnN0YWNrLCBvcGVyYXRvcik7CiAJCQkJcHVzaE9wU3RhY2sob3BzdGFjaywg JmxlbnN0YWNrLCBvcGVyYXRvciwgd2VpZ2h0KTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgUFRfT1BFTjoKLQkJCQltYWtlcG9sKHN0YXRlLCBwdXNodmFsLCBv cGFxdWUpOworCQkJCW1ha2Vwb2woc3RhdGUsIHB1c2h2YWwsIG9wYXF1ZSwg aXNxdWVyeSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBUX0NMT1NFOgogCQkJ CWNsZWFuT3BTdGFjayhzdGF0ZSwgb3BzdGFjaywgJmxlbnN0YWNrLCBPUF9P UiAvKiBsb3dlc3QgKi8gKTsKQEAgLTU1NSw3ICs2NzEsOCBAQCBmaW5kb3By bmRfcmVjdXJzZShRdWVyeUl0ZW0gKnB0ciwgdWludDMyICpwb3MsIGludCBu bm9kZXMsIGJvb2wgKm5lZWRjbGVhbnVwKQogCiAJCQlBc3NlcnQoY3VyaXRl bS0+b3BlciA9PSBPUF9BTkQgfHwKIAkJCQkgICBjdXJpdGVtLT5vcGVyID09 IE9QX09SIHx8Ci0JCQkJICAgY3VyaXRlbS0+b3BlciA9PSBPUF9QSFJBU0Up OworCQkJCSAgIGN1cml0ZW0tPm9wZXIgPT0gT1BfUEhSQVNFIHx8CisJCQkJ ICAgY3VyaXRlbS0+b3BlciA9PSBPUF9BUk9VTkQpOwogCiAJCQkoKnBvcykr KzsKIApAQCAtNjA1LDcgKzcyMiw4IEBAIFRTUXVlcnkKIHBhcnNlX3RzcXVl cnkoY2hhciAqYnVmLAogCQkJICBQdXNoRnVuY3Rpb24gcHVzaHZhbCwKIAkJ CSAgRGF0dW0gb3BhcXVlLAotCQkJICBib29sIGlzcGxhaW4pCisJCQkgIGJv b2wgaXNwbGFpbiwKKwkJCSAgYm9vbCBpc3F1ZXJ5KQogewogCXN0cnVjdCBU U1F1ZXJ5UGFyc2VyU3RhdGVEYXRhIHN0YXRlOwogCWludAkJCWk7CkBAIC02 MzIsNyArNzUwLDcgQEAgcGFyc2VfdHNxdWVyeShjaGFyICpidWYsCiAJKihz dGF0ZS5jdXJvcCkgPSAnXDAnOwogCiAJLyogcGFyc2UgcXVlcnkgJiBtYWtl IHBvbGlzaCBub3RhdGlvbiAocG9zdGZpeCwgYnV0IGluIHJldmVyc2Ugb3Jk ZXIpICovCi0JbWFrZXBvbCgmc3RhdGUsIHB1c2h2YWwsIG9wYXF1ZSk7CisJ bWFrZXBvbCgmc3RhdGUsIHB1c2h2YWwsIG9wYXF1ZSwgaXNxdWVyeSk7CiAK IAljbG9zZV90c3ZlY3Rvcl9wYXJzZXIoc3RhdGUudmFsc3RhdGUpOwogCkBA IC03MDMsNyArODIxLDcgQEAgcGFyc2VfdHNxdWVyeShjaGFyICpidWYsCiAK IHN0YXRpYyB2b2lkCiBwdXNodmFsX2FzaXMoRGF0dW0gb3BhcXVlLCBUU1F1 ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0cnZhbCwgaW50IGxlbnZh bCwKLQkJCSBpbnQxNiB3ZWlnaHQsIGJvb2wgcHJlZml4KQorCQkJIGludDE2 IHdlaWdodCwgYm9vbCBwcmVmaXgsIGJvb2wgaXNwaHJhc2UpCiB7CiAJcHVz aFZhbHVlKHN0YXRlLCBzdHJ2YWwsIGxlbnZhbCwgd2VpZ2h0LCBwcmVmaXgp OwogfQpAQCAtNzE2LDcgKzgzNCw3IEBAIHRzcXVlcnlpbihQR19GVU5DVElP Tl9BUkdTKQogewogCWNoYXIJICAgKmluID0gUEdfR0VUQVJHX0NTVFJJTkco MCk7CiAKLQlQR19SRVRVUk5fVFNRVUVSWShwYXJzZV90c3F1ZXJ5KGluLCBw dXNodmFsX2FzaXMsIFBvaW50ZXJHZXREYXR1bShOVUxMKSwgZmFsc2UpKTsK KwlQR19SRVRVUk5fVFNRVUVSWShwYXJzZV90c3F1ZXJ5KGluLCBwdXNodmFs X2FzaXMsIFBvaW50ZXJHZXREYXR1bShOVUxMKSwgZmFsc2UsIGZhbHNlKSk7 CiB9CiAKIC8qCkBAIC04ODQsNiArMTAwMiw5IEBAIGluZml4KElORklYICpp biwgaW50IHBhcmVudFByaW9yaXR5LCBib29sIHJpZ2h0UGhyYXNlT3ApCiAJ CQkJZWxzZQogCQkJCQlzcHJpbnRmKGluLT5jdXIsICIgPC0+ICVzIiwgbnJt LmJ1Zik7CiAJCQkJYnJlYWs7CisJCQljYXNlIE9QX0FST1VORDoKKwkJCQlz cHJpbnRmKGluLT5jdXIsICIgQVJPVU5EKCVkKSAlcyIsIGRpc3RhbmNlLCBu cm0uYnVmKTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogT1Bf Tk9UIGlzIGhhbmRsZWQgaW4gYWJvdmUgaWYtYnJhbmNoICovCiAJCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBvcGVyYXRvciB0eXBlOiAlZCIsIG9w KTsKQEAgLTk2Niw3ICsxMDg3LDcgQEAgdHNxdWVyeXNlbmQoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCQlicmVhazsKIAkJCWNhc2UgUUlfT1BSOgogCQkJCXBx X3NlbmRpbnQoJmJ1ZiwgaXRlbS0+cW9wZXJhdG9yLm9wZXIsIHNpemVvZihp dGVtLT5xb3BlcmF0b3Iub3BlcikpOwotCQkJCWlmIChpdGVtLT5xb3BlcmF0 b3Iub3BlciA9PSBPUF9QSFJBU0UpCisJCQkJaWYgKGl0ZW0tPnFvcGVyYXRv ci5vcGVyID09IE9QX1BIUkFTRSB8fCBpdGVtLT5xb3BlcmF0b3Iub3BlciA9 PSBPUF9BUk9VTkQpCiAJCQkJCXBxX3NlbmRpbnQoJmJ1ZiwgaXRlbS0+cW9w ZXJhdG9yLmRpc3RhbmNlLAogCQkJCQkJCSAgIHNpemVvZihpdGVtLT5xb3Bl cmF0b3IuZGlzdGFuY2UpKTsKIAkJCQlicmVhazsKQEAgLTEwNjMsMTQgKzEx ODQsMTQgQEAgdHNxdWVyeXJlY3YoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWlu dDgJCW9wZXI7CiAKIAkJCW9wZXIgPSAoaW50OCkgcHFfZ2V0bXNnaW50KGJ1 Ziwgc2l6ZW9mKGludDgpKTsKLQkJCWlmIChvcGVyICE9IE9QX05PVCAmJiBv cGVyICE9IE9QX09SICYmIG9wZXIgIT0gT1BfQU5EICYmIG9wZXIgIT0gT1Bf UEhSQVNFKQorCQkJaWYgKG9wZXIgIT0gT1BfTk9UICYmIG9wZXIgIT0gT1Bf T1IgJiYgb3BlciAhPSBPUF9BTkQgJiYgb3BlciAhPSBPUF9QSFJBU0UgJiYg b3BlciAhPSBPUF9BUk9VTkQpCiAJCQkJZWxvZyhFUlJPUiwgImludmFsaWQg dHNxdWVyeTogdW5yZWNvZ25pemVkIG9wZXJhdG9yIHR5cGUgJWQiLAogCQkJ CQkgKGludCkgb3Blcik7CiAJCQlpZiAoaSA9PSBzaXplIC0gMSkKIAkJCQll bG9nKEVSUk9SLCAiaW52YWxpZCBwb2ludGVyIHRvIHJpZ2h0IG9wZXJhbmQi KTsKIAogCQkJaXRlbS0+cW9wZXJhdG9yLm9wZXIgPSBvcGVyOwotCQkJaWYg KG9wZXIgPT0gT1BfUEhSQVNFKQorCQkJaWYgKG9wZXIgPT0gT1BfUEhSQVNF IHx8IG9wZXIgPT0gT1BfQVJPVU5EKQogCQkJCWl0ZW0tPnFvcGVyYXRvci5k aXN0YW5jZSA9IChpbnQxNikgcHFfZ2V0bXNnaW50KGJ1Ziwgc2l6ZW9mKGlu dDE2KSk7CiAJCX0KIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RzcXVlcnlfY2xlYW51cC5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3RzcXVlcnlfY2xlYW51cC5jCmluZGV4IDM1MDE3MWMuLjA3MWJm YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5 X2NsZWFudXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVy eV9jbGVhbnVwLmMKQEAgLTE2MSw3ICsxNjEsOCBAQCBjbGVhbl9OT1RfaW50 cmVlKE5PREUgKm5vZGUpCiAJCU5PREUJICAgKnJlcyA9IG5vZGU7CiAKIAkJ QXNzZXJ0KG5vZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVyID09IE9QX0FO RCB8fAotCQkJICAgbm9kZS0+dmFsbm9kZS0+cW9wZXJhdG9yLm9wZXIgPT0g T1BfUEhSQVNFKTsKKwkJCSAgIG5vZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5v cGVyID09IE9QX1BIUkFTRSB8fAorCQkJICAgbm9kZS0+dmFsbm9kZS0+cW9w ZXJhdG9yLm9wZXIgPT0gT1BfQVJPVU5EKTsKIAogCQlub2RlLT5sZWZ0ID0g Y2xlYW5fTk9UX2ludHJlZShub2RlLT5sZWZ0KTsKIAkJbm9kZS0+cmlnaHQg PSBjbGVhbl9OT1RfaW50cmVlKG5vZGUtPnJpZ2h0KTsKQEAgLTI3Nyw3ICsy NzgsOCBAQCBjbGVhbl9zdG9wd29yZF9pbnRyZWUoTk9ERSAqbm9kZSwgaW50 ICpsYWRkLCBpbnQgKnJhZGQpCiAJCW5vZGUtPnJpZ2h0ID0gY2xlYW5fc3Rv cHdvcmRfaW50cmVlKG5vZGUtPnJpZ2h0LCAmcmxhZGQsICZycmFkZCk7CiAK IAkJLyogQ2hlY2sgaWYgY3VycmVudCBub2RlIGlzIE9QX1BIUkFTRSwgZ2V0 IGl0cyBkaXN0YW5jZSAqLwotCQlpc3BocmFzZSA9IChub2RlLT52YWxub2Rl LT5xb3BlcmF0b3Iub3BlciA9PSBPUF9QSFJBU0UpOworCQlpc3BocmFzZSA9 IChub2RlLT52YWxub2RlLT5xb3BlcmF0b3Iub3BlciA9PSBPUF9QSFJBU0UK KwkJCQkJfHwgbm9kZS0+dmFsbm9kZS0+cW9wZXJhdG9yLm9wZXIgPT0gT1Bf QVJPVU5EKTsKIAkJbmRpc3RhbmNlID0gaXNwaHJhc2UgPyBub2RlLT52YWxu b2RlLT5xb3BlcmF0b3IuZGlzdGFuY2UgOiAwOwogCiAJCWlmIChub2RlLT5s ZWZ0ID09IE5VTEwgJiYgbm9kZS0+cmlnaHQgPT0gTlVMTCkKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X29wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdHNxdWVyeV9vcC5jCmluZGV4IDc1NWMzZTku LjdjZjliOGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90 c3F1ZXJ5X29wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVl cnlfb3AuYwpAQCAtMzcsNyArMzcsNyBAQCBqb2luX3RzcXVlcmllcyhUU1F1 ZXJ5IGEsIFRTUXVlcnkgYiwgaW50OCBvcGVyYXRvciwgdWludDE2IGRpc3Rh bmNlKQogCXJlcy0+dmFsbm9kZSA9IChRdWVyeUl0ZW0gKikgcGFsbG9jMChz aXplb2YoUXVlcnlJdGVtKSk7CiAJcmVzLT52YWxub2RlLT50eXBlID0gUUlf T1BSOwogCXJlcy0+dmFsbm9kZS0+cW9wZXJhdG9yLm9wZXIgPSBvcGVyYXRv cjsKLQlpZiAob3BlcmF0b3IgPT0gT1BfUEhSQVNFKQorCWlmIChvcGVyYXRv ciA9PSBPUF9QSFJBU0UgfHwgb3BlcmF0b3IgPT0gT1BfQVJPVU5EKQogCQly ZXMtPnZhbG5vZGUtPnFvcGVyYXRvci5kaXN0YW5jZSA9IGRpc3RhbmNlOwog CiAJcmVzLT5jaGlsZCA9IChRVE5vZGUgKiopIHBhbGxvYzAoc2l6ZW9mKFFU Tm9kZSAqKSAqIDIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RzcXVlcnlfdXRpbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rz cXVlcnlfdXRpbC5jCmluZGV4IDk3MWJiODEuLjU0OGE4NDYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X3V0aWwuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVyeV91dGlsLmMKQEAgLTEy MSw3ICsxMjEsNyBAQCBRVE5vZGVDb21wYXJlKFFUTm9kZSAqYW4sIFFUTm9k ZSAqYm4pCiAJCQkJCXJldHVybiByZXM7CiAJCX0KIAotCQlpZiAoYW8tPm9w ZXIgPT0gT1BfUEhSQVNFICYmIGFvLT5kaXN0YW5jZSAhPSBiby0+ZGlzdGFu Y2UpCisJCWlmICgoYW8tPm9wZXIgPT0gT1BfUEhSQVNFIHx8IGFvLT5vcGVy ID09IE9QX0FST1VORCkgJiYgYW8tPmRpc3RhbmNlICE9IGJvLT5kaXN0YW5j ZSkKIAkJCXJldHVybiAoYW8tPmRpc3RhbmNlID4gYm8tPmRpc3RhbmNlKSA/ IC0xIDogMTsKIAogCQlyZXR1cm4gMDsKQEAgLTE3MSw3ICsxNzEsOCBAQCBR VE5Tb3J0KFFUTm9kZSAqaW4pCiAKIAlmb3IgKGkgPSAwOyBpIDwgaW4tPm5j aGlsZDsgaSsrKQogCQlRVE5Tb3J0KGluLT5jaGlsZFtpXSk7Ci0JaWYgKGlu LT5uY2hpbGQgPiAxICYmIGluLT52YWxub2RlLT5xb3BlcmF0b3Iub3BlciAh PSBPUF9QSFJBU0UpCisJaWYgKGluLT5uY2hpbGQgPiAxICYmIGluLT52YWxu b2RlLT5xb3BlcmF0b3Iub3BlciAhPSBPUF9QSFJBU0UKKwkJJiYgaW4tPnZh bG5vZGUtPnFvcGVyYXRvci5vcGVyICE9IE9QX0FST1VORCkKIAkJcXNvcnQo KHZvaWQgKikgaW4tPmNoaWxkLCBpbi0+bmNoaWxkLCBzaXplb2YoUVROb2Rl ICopLCBjbXBRVE4pOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdHNyYW5rLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNy YW5rLmMKaW5kZXggNDU3N2JjYy4uYjYyYjE0ZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3RzcmFuay5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC90c3JhbmsuYwpAQCAtMzY2LDcgKzM2Niw4IEBAIGNhbGNf cmFuayhjb25zdCBmbG9hdCAqdywgVFNWZWN0b3IgdCwgVFNRdWVyeSBxLCBp bnQzMiBtZXRob2QpCiAKIAkvKiBYWFg6IFdoYXQgYWJvdXQgTk9UPyAqLwog CXJlcyA9IChpdGVtLT50eXBlID09IFFJX09QUiAmJiAoaXRlbS0+cW9wZXJh dG9yLm9wZXIgPT0gT1BfQU5EIHx8Ci0JCQkJCQkJCQlpdGVtLT5xb3BlcmF0 b3Iub3BlciA9PSBPUF9QSFJBU0UpKSA/CisJCQkJCQkJCQlpdGVtLT5xb3Bl cmF0b3Iub3BlciA9PSBPUF9QSFJBU0UgfHwKKwkJCQkJCQkJCWl0ZW0tPnFv cGVyYXRvci5vcGVyID09IE9QX0FST1VORCkpID8KIAkJY2FsY19yYW5rX2Fu ZCh3LCB0LCBxKSA6CiAJCWNhbGNfcmFua19vcih3LCB0LCBxKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX29wLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHN2ZWN0b3Jfb3AuYwppbmRleCA4 MjI1MjAyLi45MmQyNjdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvdHN2ZWN0b3Jfb3AuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvdHN2ZWN0b3Jfb3AuYwpAQCAtMTQyOSw2ICsxNDI5LDcgQEAgY2hlY2tj b25kaXRpb25fc3RyKHZvaWQgKmNoZWNrdmFsLCBRdWVyeU9wZXJhbmQgKnZh bCwgRXhlY1BocmFzZURhdGEgKmRhdGEpCiAjZGVmaW5lIFRTUE9fTF9PTkxZ CQkweDAxCS8qIGVtaXQgcG9zaXRpb25zIGFwcGVhcmluZyBvbmx5IGluIEwg Ki8KICNkZWZpbmUgVFNQT19SX09OTFkJCTB4MDIJLyogZW1pdCBwb3NpdGlv bnMgYXBwZWFyaW5nIG9ubHkgaW4gUiAqLwogI2RlZmluZSBUU1BPX0JPVEgJ CTB4MDQJLyogZW1pdCBwb3NpdGlvbnMgYXBwZWFyaW5nIGluIGJvdGggTCZS ICovCisjZGVmaW5lIFRTX05PVF9FWEFDCQkweDA4CS8qIG5vdCBleGFjdCBk aXN0YW5jZSBmb3IgQVJPVU5EKFgpICovCiAKIHN0YXRpYyBib29sCiBUU19w aHJhc2Vfb3V0cHV0KEV4ZWNQaHJhc2VEYXRhICpkYXRhLApAQCAtMTQ3Myw4 ICsxNDc0LDE4IEBAIFRTX3BocmFzZV9vdXRwdXQoRXhlY1BocmFzZURhdGEg KmRhdGEsCiAJCQlScG9zID0gSU5UX01BWDsKIAkJfQogCisJCS8qIFByb2Nl c3NpbmcgT1BfQVJPVU5EICovCisJCWlmICgoZW1pdCAmIFRTX05PVF9FWEFD KSAmJgorCQkJTHBvcyAtIFJwb3MgPj0gMCAmJgorCQkJTHBvcyAtIFJwb3Mg PD0gKExvZmZzZXQgKyBSb2Zmc2V0KSAqIDIgLSBSZGF0YS0+d2lkdGggKyBM ZGF0YS0+d2lkdGgpCisJCXsKKwkJCWlmIChlbWl0ICYgVFNQT19CT1RIKQor CQkJCW91dHB1dF9wb3MgPSBScG9zOworCQkJTGluZGV4Kys7CisJCQlSaW5k ZXgrKzsKKwkJfQogCQkvKiBNZXJnZS1qb2luIHRoZSB0d28gaW5wdXQgbGlz dHMgKi8KLQkJaWYgKExwb3MgPCBScG9zKQorCQllbHNlIGlmIChMcG9zIDwg UnBvcykKIAkJewogCQkJLyogTHBvcyBpcyBub3QgbWF0Y2hlZCBpbiBSZGF0 YSwgc2hvdWxkIHdlIG91dHB1dCBpdD8gKi8KIAkJCWlmIChlbWl0ICYgVFNQ T19MX09OTFkpCkBAIC0xNjI1LDYgKzE2MzYsNyBAQCBUU19waHJhc2VfZXhl Y3V0ZShRdWVyeUl0ZW0gKmN1cml0ZW0sIHZvaWQgKmFyZywgdWludDMyIGZs YWdzLAogCQkJfQogCiAJCWNhc2UgT1BfUEhSQVNFOgorCQljYXNlIE9QX0FS T1VORDoKIAkJY2FzZSBPUF9BTkQ6CiAJCQltZW1zZXQoJkxkYXRhLCAwLCBz aXplb2YoTGRhdGEpKTsKIAkJCW1lbXNldCgmUmRhdGEsIDAsIHNpemVvZihS ZGF0YSkpOwpAQCAtMTY0Nyw3ICsxNjU5LDcgQEAgVFNfcGhyYXNlX2V4ZWN1 dGUoUXVlcnlJdGVtICpjdXJpdGVtLCB2b2lkICphcmcsIHVpbnQzMiBmbGFn cywKIAkJCQkoUmRhdGEubnBvcyA9PSAwICYmICFSZGF0YS5uZWdhdGUpKQog CQkJCXJldHVybiAoZmxhZ3MgJiBUU19FWEVDX1BIUkFTRV9OT19QT1MpID8g dHJ1ZSA6IGZhbHNlOwogCi0JCQlpZiAoY3VyaXRlbS0+cW9wZXJhdG9yLm9w ZXIgPT0gT1BfUEhSQVNFKQorCQkJaWYgKGN1cml0ZW0tPnFvcGVyYXRvci5v cGVyID09IE9QX1BIUkFTRSB8fCBjdXJpdGVtLT5xb3BlcmF0b3Iub3BlciA9 PSBPUF9BUk9VTkQpCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBDb21wdXRlIExv ZmZzZXQgYW5kIFJvZmZzZXQgc3VpdGFibGUgZm9yIHBocmFzZSBtYXRjaCwg YW5kCkBAIC0xNzAzLDcgKzE3MTUsNyBAQCBUU19waHJhc2VfZXhlY3V0ZShR dWVyeUl0ZW0gKmN1cml0ZW0sIHZvaWQgKmFyZywgdWludDMyIGZsYWdzLAog CQkJewogCQkJCS8qIHN0cmFpZ2h0IEFORCAqLwogCQkJCXJldHVybiBUU19w aHJhc2Vfb3V0cHV0KGRhdGEsICZMZGF0YSwgJlJkYXRhLAotCQkJCQkJCQkJ CVRTUE9fQk9USCwKKwkJCQkJCQkJCQlUU1BPX0JPVEggfCAoY3VyaXRlbS0+ cW9wZXJhdG9yLm9wZXIgPT0gT1BfQVJPVU5EID8gVFNfTk9UX0VYQUMgOiAw KSwKIAkJCQkJCQkJCQlMb2Zmc2V0LCBSb2Zmc2V0LAogCQkJCQkJCQkJCU1p bihMZGF0YS5ucG9zLCBSZGF0YS5ucG9zKSk7CiAJCQl9CkBAIC0xODQzLDYg KzE4NTUsNyBAQCBUU19leGVjdXRlKFF1ZXJ5SXRlbSAqY3VyaXRlbSwgdm9p ZCAqYXJnLCB1aW50MzIgZmxhZ3MsCiAJCQkJcmV0dXJuIFRTX2V4ZWN1dGUo Y3VyaXRlbSArIDEsIGFyZywgZmxhZ3MsIGNoa2NvbmQpOwogCiAJCWNhc2Ug T1BfUEhSQVNFOgorCQljYXNlIE9QX0FST1VORDoKIAkJCXJldHVybiBUU19w aHJhc2VfZXhlY3V0ZShjdXJpdGVtLCBhcmcsIGZsYWdzLCBjaGtjb25kLCBO VUxMKTsKIAogCQlkZWZhdWx0OgpAQCAtMTg4Miw2ICsxODk1LDcgQEAgdHNx dWVyeV9yZXF1aXJlc19tYXRjaChRdWVyeUl0ZW0gKmN1cml0ZW0pCiAJCQly ZXR1cm4gZmFsc2U7CiAKIAkJY2FzZSBPUF9QSFJBU0U6CisJCWNhc2UgT1Bf QVJPVU5EOgogCiAJCQkvKgogCQkJICogVHJlYXQgT1BfUEhSQVNFIGFzIE9Q X0FORCBoZXJlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oCmluZGV4 IGQ4MjBiNTYuLjc5ZDBjNDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5oCkBAIC00OTA3LDYgKzQ5MDcsOCBAQCBEQVRBKGluc2VydCBPSUQg PSAzNzQ2ICggIHRvX3RzcXVlcnkJCVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAg MCBmIGYgZiBmIHQgZiBpIHMgMgogREVTQ1IoIm1ha2UgdHNxdWVyeSIpOwog REFUQShpbnNlcnQgT0lEID0gMzc0NyAoICBwbGFpbnRvX3RzcXVlcnkJUEdO U1AgUEdVSUQgMTIgMTAwIDAgMCAwIGYgZiBmIGYgdCBmIGkgcyAyIDAgMzYx NSAiMzczNCAyNSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxs XyBwbGFpbnRvX3RzcXVlcnlfYnlpZCBfbnVsbF8gX251bGxfIF9udWxsXyAp KTsKIERFU0NSKCJ0cmFuc2Zvcm0gdG8gdHNxdWVyeSIpOworREFUQShpbnNl cnQgT0lEID0gODg4OSAoICBxdWVyeXRvX3RzcXVlcnkJUEdOU1AgUEdVSUQg MTIgMTAwIDAgMCAwIGYgZiBmIGYgdCBmIGkgcyAyIDAgMzYxNSAiMzczNCAy NSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBxdWVyeXRv X3RzcXVlcnlfYnlpZCBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKK0RFU0NS KCJ0cmFuc2Zvcm0gdG8gdHNxdWVyeSIpOwogREFUQShpbnNlcnQgT0lEID0g NTAwNiAoICBwaHJhc2V0b190c3F1ZXJ5CVBHTlNQIFBHVUlEIDEyIDEwMCAw IDAgMCBmIGYgZiBmIHQgZiBpIHMgMiAwIDM2MTUgIjM3MzQgMjUiIF9udWxs XyBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gcGhyYXNldG9fdHNxdWVy eV9ieWlkIF9udWxsXyBfbnVsbF8gX251bGxfICkpOwogREVTQ1IoInRyYW5z Zm9ybSB0byB0c3F1ZXJ5Iik7CiBEQVRBKGluc2VydCBPSUQgPSAzNzQ5ICgg IHRvX3RzdmVjdG9yCQlQR05TUCBQR1VJRCAxMiAxMDAgMCAwIDAgZiBmIGYg ZiB0IGYgcyBzIDEgMCAzNjE0ICIyNSIgX251bGxfIF9udWxsXyBfbnVsbF8g X251bGxfIF9udWxsXyB0b190c3ZlY3RvciBfbnVsbF8gX251bGxfIF9udWxs XyApKTsKQEAgLTQ5MTUsNiArNDkxNyw4IEBAIERBVEEoaW5zZXJ0IE9JRCA9 IDM3NTAgKCAgdG9fdHNxdWVyeQkJUEdOU1AgUEdVSUQgMTIgMTAwIDAgMCAw IGYgZiBmIGYgdCBmIHMgcyAxCiBERVNDUigibWFrZSB0c3F1ZXJ5Iik7CiBE QVRBKGluc2VydCBPSUQgPSAzNzUxICggIHBsYWludG9fdHNxdWVyeQlQR05T UCBQR1VJRCAxMiAxMDAgMCAwIDAgZiBmIGYgZiB0IGYgcyBzIDEgMCAzNjE1 ICIyNSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBwbGFp bnRvX3RzcXVlcnkgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigi dHJhbnNmb3JtIHRvIHRzcXVlcnkiKTsKK0RBVEEoaW5zZXJ0IE9JRCA9IDg4 OTAgKCAgcXVlcnl0b190c3F1ZXJ5CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAg MCBmIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTUgIjI1IiBfbnVsbF8gX251bGxf IF9udWxsXyBfbnVsbF8gX251bGxfIHF1ZXJ5dG9fdHNxdWVyeSBfbnVsbF8g X251bGxfIF9udWxsXyApKTsKK0RFU0NSKCJ0cmFuc2Zvcm0gdG8gdHNxdWVy eSIpOwogREFUQShpbnNlcnQgT0lEID0gNTAwMSAoICBwaHJhc2V0b190c3F1 ZXJ5CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBzIHMg MSAwIDM2MTUgIjI1IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gX251 bGxfIHBocmFzZXRvX3RzcXVlcnkgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7 CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVlcnkiKTsKIERBVEEoaW5zZXJ0 IE9JRCA9IDQyMDkgKCAgdG9fdHN2ZWN0b3IJCVBHTlNQIFBHVUlEIDEyIDEw MCAwIDAgMCBmIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTQgIjM4MDIiIF9udWxs XyBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8ganNvbmJfdG9fdHN2ZWN0 b3IgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS90c2VhcmNoL3RzX3R5cGUuaCBiL3NyYy9pbmNsdWRlL3RzZWFy Y2gvdHNfdHlwZS5oCmluZGV4IDMwZDdjNGIuLjJmNGMzNzQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3RzZWFyY2gvdHNfdHlwZS5oCisrKyBiL3NyYy9p bmNsdWRlL3RzZWFyY2gvdHNfdHlwZS5oCkBAIC0xNjYsOCArMTY2LDkgQEAg dHlwZWRlZiBzdHJ1Y3QKICNkZWZpbmUgT1BfTk9UCQkJMQogI2RlZmluZSBP UF9BTkQJCQkyCiAjZGVmaW5lIE9QX09SCQkJMworI2RlZmluZSBPUF9BUk9V TkQJCTUKICNkZWZpbmUgT1BfUEhSQVNFCQk0CQkvKiBoaWdoZXN0IGNvZGUs IHRzcXVlcnlfY2xlYW51cC5jICovCi0jZGVmaW5lIE9QX0NPVU5UCQk0Cisj ZGVmaW5lIE9QX0NPVU5UCQk1CiAKIGV4dGVybiBjb25zdCBpbnQgdHNlYXJj aF9vcF9wcmlvcml0eVtPUF9DT1VOVF07CiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3RzZWFyY2gvdHNfdXRpbHMuaCBiL3NyYy9pbmNsdWRlL3RzZWFy Y2gvdHNfdXRpbHMuaAppbmRleCAzMzEyMzUzLi4wMzRmMzZjIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS90c2VhcmNoL3RzX3V0aWxzLmgKKysrIGIvc3Jj L2luY2x1ZGUvdHNlYXJjaC90c191dGlscy5oCkBAIC00NCwxMSArNDQsMTIg QEAgdHlwZWRlZiB2b2lkICgqUHVzaEZ1bmN0aW9uKSAoRGF0dW0gb3BhcXVl LCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJCQkJICBjaGFyICp0 b2tlbiwgaW50IHRva2VubGVuLAogCQkJCQkJCSAgaW50MTYgdG9rZW53ZWln aHRzLAkvKiBiaXRtYXAgYXMgZGVzY3JpYmVkIGluCiAJCQkJCQkJCQkJCQkJ ICogUXVlcnlPcGVyYW5kIHN0cnVjdCAqLwotCQkJCQkJCSAgYm9vbCBwcmVm aXgpOworCQkJCQkJCSAgYm9vbCBwcmVmaXgsCisJCQkJCQkJICBib29sIGlz cGhyYXNlKTsKIAogZXh0ZXJuIFRTUXVlcnkgcGFyc2VfdHNxdWVyeShjaGFy ICpidWYsCiAJCQkgIFB1c2hGdW5jdGlvbiBwdXNodmFsLAotCQkJICBEYXR1 bSBvcGFxdWUsIGJvb2wgaXNwbGFpbik7CisJCQkgIERhdHVtIG9wYXF1ZSwg Ym9vbCBpc3BsYWluLCBib29sIGlzcXVlcnkpOwogCiAvKiBGdW5jdGlvbnMg Zm9yIHVzZSBieSBQdXNoRnVuY3Rpb24gaW1wbGVtZW50YXRpb25zICovCiBl eHRlcm4gdm9pZCBwdXNoVmFsdWUoVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRl LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90c2Vh cmNoLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHNlYXJjaC5v dXQKaW5kZXggYjJmYzllMi4uOTNkYjdiOCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC90c2VhcmNoLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3RzZWFyY2gub3V0CkBAIC0xNjYxLDMgKzE2 NjEsMTE1IEBAIHNlbGVjdCAqIGZyb20gcGhyYXNlX2luZGV4X3Rlc3Qgd2hl cmUgZnRzIEBAIHBocmFzZXRvX3RzcXVlcnkoJ2VuZ2xpc2gnLCAnZmF0IGNh CiAoMSByb3cpCiAKIHNldCBlbmFibGVfc2Vxc2NhbiA9IG9uOworLS10ZXN0 IHF1ZXJ5dG9fdHNxdWVyeSBmdW5jdGlvbgorc2VsZWN0IHF1ZXJ5dG9fdHNx dWVyeSgnTXkgYnJhbmQgbmV3IHNtYXJ0cGhvbmUnKTsKKyAgICAgICAgcXVl cnl0b190c3F1ZXJ5ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAnYnJhbmQnICYgJ25ldycgJiAnc21hcnRwaG9uJworKDEg cm93KQorCitzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCdNeSBicmFuZCAibmV3 IHNtYXJ0cGhvbmUiJyk7CisgICAgICAgICBxdWVyeXRvX3RzcXVlcnkgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdi cmFuZCcgJiAnbmV3JyA8LT4gJ3NtYXJ0cGhvbicKKygxIHJvdykKKworc2Vs ZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnIkEgZmF0IGNhdCIgaGFzIGp1c3QgZWF0 ZW4gYSAtcmF0LicpOworICAgICAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAnZmF0JyA8LT4gJ2NhdCcgJiAnZWF0ZW4nICYgISdyYXQnCisoMSByb3cp CisKK3NlbGVjdCBxdWVyeXRvX3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBq dXN0IGVhdGVuIE9SIC1yYXQuJyk7CisgICAgICAgICAgcXVlcnl0b190c3F1 ZXJ5ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICdmYXQnIDwtPiAnY2F0JyAmICdlYXRlbicgfCAhJ3JhdCcK KygxIHJvdykKKworc2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnIkEgZmF0IGNh dCIgaGFzIGp1c3QgKGVhdGVuIE9SIC1yYXQpJyk7CisgICAgICAgICAgICBx dWVyeXRvX3RzcXVlcnkgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgPC0+ICdjYXQnICYg KCAnZWF0ZW4nIHwgISdyYXQnICkKKygxIHJvdykKKworLS0gdGVzdGluZyBB Uk9VTkQgb3BlcmF0b3IgZXZhbHVhdGlvbgorc2VsZWN0IHRvX3RzdmVjdG9y KCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhh dCBydW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZv ciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitxdWVyeXRvX3Rz cXVlcnkoJyJnbnUgZGVidWdnZXIiIEFST1VORCg1KSBydW5zJyk7CisgP2Nv bHVtbj8gCistLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitzZWxlY3QgdG9f dHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBwb3J0YWJsZSBkZWJ1 Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQg d29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1 ZXJ5dG9fdHNxdWVyeSgncnVuIEFST1VORCg1KSAiZ251IGRlYnVnZ2VyIicp OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworc2Vs ZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFi bGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5c3Rl bXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycp IEBACitxdWVyeXRvX3RzcXVlcnkoJyJnbnUgZGVidWdnZXIiIEFST1VORCg2 KSBydW5zJyk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMg YSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxp a2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFu Z3VhZ2VzJykgQEAKK3F1ZXJ5dG9fdHNxdWVyeSgncnVuIEFST1VORCg2KSAi Z251IGRlYnVnZ2VyIicpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERlYnVn Z2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkg VW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1t aW5nIGxhbmd1YWdlcycpIEBACitxdWVyeXRvX3RzcXVlcnkoJyJtYW55IHBy b2dyYW1taW5nIGxhbmd1YWdlcyIgQVJPVU5EKDEwKSAicG9ydGFibGUgZGVi dWdnZXIiJyk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMg YSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxp a2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFu Z3VhZ2VzJykgQEAKK3F1ZXJ5dG9fdHNxdWVyeSgnInBvcnRhYmxlIGRlYnVn Z2VyIiBBUk9VTkQoMTApICJtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcyIn KTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK3Nl bGVjdCB0b190c3ZlY3RvcignVGhlIEdOVSBEZWJ1Z2dlciBpcyBhIHBvcnRh YmxlIGRlYnVnZ2VyIHRoYXQgcnVucyBvbiBtYW55IFVuaXggbGlrZSBzeXN0 ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMn KSBAQAorcXVlcnl0b190c3F1ZXJ5KCcibWFueSBwcm9ncmFtbWluZyBsYW5n dWFnZXMiIEFST1VORCgxMSkgInBvcnRhYmxlIGRlYnVnZ2VyIicpOworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworc2VsZWN0IHRv X3RzdmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVi dWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5k IHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitx dWVyeXRvX3RzcXVlcnkoJyJwb3J0YWJsZSBkZWJ1Z2dlciIgQVJPVU5EKDEx KSAibWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMiJyk7CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitzZWxlY3QgcXVlcnl0b190 c3F1ZXJ5KCciZmF0IGNhdCBBUk9VTkQoNSkgcmF0IicpOworICAgICAgICAg ICAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAnZmF0JyA8LT4gJ2NhdCcgPC0+ICdhcm91bmQnIDwtPiAnNScgPC0+ICdy YXQnCisoMSByb3cpCisKK3NlbGVjdCBxdWVyeXRvX3RzcXVlcnkoJ3NpbXBs ZScsJyJmYXQgY2F0IE9SIHJhdCInKTsKKyAgICAgICAgICBxdWVyeXRvX3Rz cXVlcnkgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgJ2ZhdCcgPC0+ICdjYXQnIDwtPiAnb3InIDwtPiAncmF0 JworKDEgcm93KQorCitzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCdmYXQqcmF0 Jyk7CisgcXVlcnl0b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0KKyAn ZmF0JyAmICdyYXQnCisoMSByb3cpCisKK3NlbGVjdCBxdWVyeXRvX3RzcXVl cnkoJ2ZhdC1yYXQnKTsKKyAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdC1yYXQnICYgJ2Zh dCcgJiAncmF0JworKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC90c2VhcmNoLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3RzZWFyY2guc3FsCmluZGV4IGU0YjIxZjguLjEyZGE3NWEgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RzZWFyY2guc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3RzZWFyY2guc3FsCkBAIC01MzUsMyArNTM1 LDM0IEBAIGNyZWF0ZSBpbmRleCBwaHJhc2VfaW5kZXhfdGVzdF9pZHggb24g cGhyYXNlX2luZGV4X3Rlc3QgdXNpbmcgZ2luKGZ0cyk7CiBzZXQgZW5hYmxl X3NlcXNjYW4gPSBvZmY7CiBzZWxlY3QgKiBmcm9tIHBocmFzZV9pbmRleF90 ZXN0IHdoZXJlIGZ0cyBAQCBwaHJhc2V0b190c3F1ZXJ5KCdlbmdsaXNoJywg J2ZhdCBjYXQnKTsKIHNldCBlbmFibGVfc2Vxc2NhbiA9IG9uOworCistLXRl c3QgcXVlcnl0b190c3F1ZXJ5IGZ1bmN0aW9uCitzZWxlY3QgcXVlcnl0b190 c3F1ZXJ5KCdNeSBicmFuZCBuZXcgc21hcnRwaG9uZScpOworc2VsZWN0IHF1 ZXJ5dG9fdHNxdWVyeSgnTXkgYnJhbmQgIm5ldyBzbWFydHBob25lIicpOwor c2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnIkEgZmF0IGNhdCIgaGFzIGp1c3Qg ZWF0ZW4gYSAtcmF0LicpOworc2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnIkEg ZmF0IGNhdCIgaGFzIGp1c3QgZWF0ZW4gT1IgLXJhdC4nKTsKK3NlbGVjdCBx dWVyeXRvX3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBqdXN0IChlYXRlbiBP UiAtcmF0KScpOworCistLSB0ZXN0aW5nIEFST1VORCBvcGVyYXRvciBldmFs dWF0aW9uCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIg aXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4 IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcg bGFuZ3VhZ2VzJykgQEAKK3F1ZXJ5dG9fdHNxdWVyeSgnImdudSBkZWJ1Z2dl ciIgQVJPVU5EKDUpIHJ1bnMnKTsKK3NlbGVjdCB0b190c3ZlY3RvcignVGhl IEdOVSBEZWJ1Z2dlciBpcyBhIHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVu cyBvbiBtYW55IFVuaXggbGlrZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFu eSBwcm9ncmFtbWluZyBsYW5ndWFnZXMnKSBAQAorcXVlcnl0b190c3F1ZXJ5 KCdydW4gQVJPVU5EKDUpICJnbnUgZGVidWdnZXIiJyk7CitzZWxlY3QgdG9f dHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBwb3J0YWJsZSBkZWJ1 Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQg d29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1 ZXJ5dG9fdHNxdWVyeSgnImdudSBkZWJ1Z2dlciIgQVJPVU5EKDYpIHJ1bnMn KTsKK3NlbGVjdCB0b190c3ZlY3RvcignVGhlIEdOVSBEZWJ1Z2dlciBpcyBh IHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVucyBvbiBtYW55IFVuaXggbGlr ZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBwcm9ncmFtbWluZyBsYW5n dWFnZXMnKSBAQAorcXVlcnl0b190c3F1ZXJ5KCdydW4gQVJPVU5EKDYpICJn bnUgZGVidWdnZXIiJyk7CisKK3NlbGVjdCB0b190c3ZlY3RvcignVGhlIEdO VSBEZWJ1Z2dlciBpcyBhIHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVucyBv biBtYW55IFVuaXggbGlrZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBw cm9ncmFtbWluZyBsYW5ndWFnZXMnKSBAQAorcXVlcnl0b190c3F1ZXJ5KCci bWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMiIEFST1VORCgxMCkgInBvcnRh YmxlIGRlYnVnZ2VyIicpOworc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05V IERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9u IG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHBy b2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitxdWVyeXRvX3RzcXVlcnkoJyJw b3J0YWJsZSBkZWJ1Z2dlciIgQVJPVU5EKDEwKSAibWFueSBwcm9ncmFtbWlu ZyBsYW5ndWFnZXMiJyk7CitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUg RGVidWdnZXIgaXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24g bWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJv Z3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1ZXJ5dG9fdHNxdWVyeSgnIm1h bnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIiBBUk9VTkQoMTEpICJwb3J0YWJs ZSBkZWJ1Z2dlciInKTsKK3NlbGVjdCB0b190c3ZlY3RvcignVGhlIEdOVSBE ZWJ1Z2dlciBpcyBhIHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVucyBvbiBt YW55IFVuaXggbGlrZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBwcm9n cmFtbWluZyBsYW5ndWFnZXMnKSBAQAorcXVlcnl0b190c3F1ZXJ5KCcicG9y dGFibGUgZGVidWdnZXIiIEFST1VORCgxMSkgIm1hbnkgcHJvZ3JhbW1pbmcg bGFuZ3VhZ2VzIicpOworCitzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCciZmF0 IGNhdCBBUk9VTkQoNSkgcmF0IicpOworc2VsZWN0IHF1ZXJ5dG9fdHNxdWVy eSgnc2ltcGxlJywnImZhdCBjYXQgT1IgcmF0IicpOworc2VsZWN0IHF1ZXJ5 dG9fdHNxdWVyeSgnZmF0KnJhdCcpOworc2VsZWN0IHF1ZXJ5dG9fdHNxdWVy eSgnZmF0LXJhdCcpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --=_3b182b274c88320daeb32d98b548991d 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 --=_3b182b274c88320daeb32d98b548991d--