Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJZoc-0005hG-EB for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Nov 2017 06:56:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJZoa-0007yl-Gn for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Nov 2017 06:56:20 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1eJZoZ-0007yb-Ru for pgsql-hackers@lists.postgresql.org; Tue, 28 Nov 2017 06:56:20 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by makus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1eJZoU-0004r2-OR for pgsql-hackers@postgresql.org; Tue, 28 Nov 2017 06:56:18 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id 8D6FD21C1AA1; Tue, 28 Nov 2017 09:56:11 +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 3160D21C0644; Tue, 28 Nov 2017 09:56:11 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1511852171; bh=LormIwazFl3Me5yKwOZEjlTlt9/D4ssXEm0zWM53CzM=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=nWSCjkKQ2U9JYeV5ivA6aQWGfmuiFAwBs0waRG1xR/owIjYF9srww+RWDw0z7UOE2 +sVTKhC7suJ/GPTF0+xGjnAMnfEKZ0UeXRPcv7fynOHP1oguyizinmEQoGBuM9RkyK WPLvmckL/a0yxER+rfWPWsN0tPumS2Pu+WZGMvgk= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_82f072478f6161cec21d329f72ea2164" Date: Tue, 28 Nov 2017 09:56:10 +0300 From: Victor Drobny To: Tomas Vondra Cc: Thomas Munro , Robert Haas , pgsql-hackers@postgresql.org Subject: Re: [HACKERS] new function for tsquery creartion Organization: Postgres Professional In-Reply-To: References: <69234700d26674fc7c171e48b850824c@postgrespro.ru> Message-ID: <15517a04afd2be779e2e6d69611c348b@postgrespro.ru> X-Sender: v.drobny@postgrespro.ru User-Agent: Roundcube Webmail/1.2.4 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_82f072478f6161cec21d329f72ea2164 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2017-11-19 04:30, Tomas Vondra wrote: Hello, > Hi, > > On 09/13/2017 10:57 AM, Victor Drobny wrote: >> 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) >> > > I did a quick review of the patch today. The patch unfortunately no > longer applies, so I had to use an older commit from September. Please > rebase to current master. Thank you for your time. In the attachment you can find rebased version. (based on e842791b0 commit) > I've only looked on the diff at this point, will do more testing once > the rebase happens. > > Some comments: > > 1) This seems to mix multiple improvements into one patch. There's the > support for alternative query syntax, and then there are the new > operators (AROUND and ). I propose to split the patch into two or > more parts, each addressing one of those bits. I agree. I have split it in 3 parts: support for around operator, queryto_tsquery function and documentation. > I guess there will be two or three parts - first adding the syntax, > second adding and third adding the AROUND(n). Seems reasonable? > > 2) I don't think we should mention Google in the docs explicitly. Not > that I'm somehow anti-google, but this syntax was certainly not > invented > by Google - I vividly remember using something like that on Altavista > (yeah, I'm old). And it's used by pretty much every other web search > engine out there ... Yes, those syntax is not introduced by google, but, as for me, it was the easiest way to give a brief description of it. Of cause it can be changed, I just don't know how. Any suggestions are welcomed! ;) > 3) In the SGML docs, please use instead of just > quoting the values. So it should be | instead of '|' > etc. Just like in the parts describing plainto_tsquery, for example. Fixed. I hope that i didn't miss anything. > 4) Also, I recommend adding a brief explanation what the examples do. > Right now there's just a bunch of queryto_tsquery, and the reader is > expected to understand the output. I suggest adding a sentence or two, > explaining what's happening (just like for plainto_tsquery examples). > > 5) I'm not sure about negative values in the operator. I don't > find it particularly confusing - once you understand that (a b) > means "there are 'k' words between 'a' and 'b' (n <= k <= m)", then > negative values seem like a fairly straightforward extension. > > But I guess the main question is "Is there really a demand for the new > operator, or have we just invented if because we can?" The operator is not introduced yet. It's just a concept. It were our thoughts about implementation AROUND operator through in future. > 6) There seem to be some new constants defined, with names not > following > the naming convention. I mean this > > #define WAITOPERAND 1 > #define WAITOPERATOR 2 > #define WAITFIRSTOPERAND 3 > #define WAITSINGLEOPERAND 4 > #define INSIDEQUOTES 5 <-- the new one > > and > > #define TSPO_L_ONLY 0x01 > #define TSPO_R_ONLY 0x02 > #define TSPO_BOTH 0x04 > #define TS_NOT_EXAC 0x08 <-- the new one > > Perhaps that's OK, but it seems a bit inconsistent. I agree. I have fixed it. > > regards -- Victor Drobny Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_82f072478f6161cec21d329f72ea2164 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=queryto_tsquery3_01_around.patch Content-Disposition: attachment; filename=queryto_tsquery3_01_around.patch; size=12333 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNfc2VsZnVuY3MuYyBiL3NyYy9iYWNr ZW5kL3RzZWFyY2gvdHNfc2VsZnVuY3MuYwppbmRleCAwNDZmNTQzLi4zNzVjYjVjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90c2VhcmNoL3RzX3NlbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQv dHNlYXJjaC90c19zZWxmdW5jcy5jCkBAIC0zOTYsNiArMzk2LDcgQEAgdHNxdWVyeV9vcHJfc2Vs ZWMoUXVlcnlJdGVtICppdGVtLCBjaGFyICpvcGVyYW5kLAogCQkJCWJyZWFrOwogCiAJCQljYXNl IE9QX1BIUkFTRToKKwkJCWNhc2UgT1BfQVJPVU5EOgogCQkJY2FzZSBPUF9BTkQ6CiAJCQkJczEg PSB0c3F1ZXJ5X29wcl9zZWxlYyhpdGVtICsgMSwgb3BlcmFuZCwKIAkJCQkJCQkJCSAgIGxvb2t1 cCwgbGVuZ3RoLCBtaW5mcmVxKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90 c2dpbmlkeC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMKaW5kZXggYWJhNDU2 ZS4uMWM4NTJiZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMKQEAgLTIzOSwxMCArMjM5LDEx IEBAIFRTX2V4ZWN1dGVfdGVybmFyeShHaW5DaGtWYWwgKmdjdiwgUXVlcnlJdGVtICpjdXJpdGVt LCBib29sIGluX3BocmFzZSkKIAkJCXJldHVybiAhcmVzdWx0OwogCiAJCWNhc2UgT1BfUEhSQVNF OgorCQljYXNlIE9QX0FST1VORDoKIAogCQkJLyoKIAkJCSAqIEdJTiBkb2Vzbid0IGNvbnRhaW4g YW55IGluZm9ybWF0aW9uIGFib3V0IHBvc2l0aW9ucywgc28gdHJlYXQKLQkJCSAqIE9QX1BIUkFT RSBhcyBPUF9BTkQgd2l0aCByZWNoZWNrIHJlcXVpcmVtZW50CisJCQkgKiBPUF9QSFJBU0UgYW5k IE9QX0FST1VORCBhcyBPUF9BTkQgd2l0aCByZWNoZWNrIHJlcXVpcmVtZW50CiAJCQkgKi8KIAkJ CSooZ2N2LT5uZWVkX3JlY2hlY2spID0gdHJ1ZTsKIAkJCS8qIFBhc3MgZG93biBpbl9waHJhc2Ug PT0gdHJ1ZSBpbiBjYXNlIHRoZXJlJ3MgYSBOT1QgYmVsb3cgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVy eS5jCmluZGV4IDVjZGZlNGQuLjA3ZDU2YjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC90c3F1ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnkuYwpAQCAt MjksNyArMjksOCBAQCBjb25zdCBpbnQJdHNlYXJjaF9vcF9wcmlvcml0eVtPUF9DT1VOVF0gPQog CTQsCQkJCQkJCS8qIE9QX05PVCAqLwogCTIsCQkJCQkJCS8qIE9QX0FORCAqLwogCTEsCQkJCQkJ CS8qIE9QX09SICovCi0JMwkJCQkJCQkvKiBPUF9QSFJBU0UgKi8KKwkzLAkJCQkJCQkvKiBPUF9Q SFJBU0UgKi8KKwkzCQkJCQkJCS8qIE9QX0FST1VORCAqLwogfTsKIAogc3RydWN0IFRTUXVlcnlQ YXJzZXJTdGF0ZURhdGEKQEAgLTU4LDEwICs1OSwxMCBAQCBzdHJ1Y3QgVFNRdWVyeVBhcnNlclN0 YXRlRGF0YQogfTsKIAogLyogcGFyc2VyJ3Mgc3RhdGVzICovCi0jZGVmaW5lIFdBSVRPUEVSQU5E IDEKLSNkZWZpbmUgV0FJVE9QRVJBVE9SCTIKLSNkZWZpbmUgV0FJVEZJUlNUT1BFUkFORCAzCi0j ZGVmaW5lIFdBSVRTSU5HTEVPUEVSQU5EIDQKKyNkZWZpbmUgV0FJVE9QRVJBTkQJCQkxCisjZGVm aW5lIFdBSVRPUEVSQVRPUgkJMgorI2RlZmluZSBXQUlURklSU1RPUEVSQU5ECTMKKyNkZWZpbmUg V0FJVFNJTkdMRU9QRVJBTkQJNAogCiAvKgogICogc3Vicm91dGluZSB0byBwYXJzZSB0aGUgbW9k aWZpZXJzICh3ZWlnaHQgYW5kIHByZWZpeCBmbGFnIGN1cnJlbnRseSkKQEAgLTIxMCw2ICsyMTEs NjkgQEAgdHlwZWRlZiBlbnVtCiAJUFRfQ0xPU0UgPSA1CiB9IHRzX3Rva2VudHlwZTsKIAorc3Rh dGljIGJvb2wKK2hhc19wcmVmaXgoY2hhciAqIHN0ciwgY2hhciAqIHByZWZpeCkKK3sKKwlpZiAo c3RybGVuKHByZWZpeCkgPiBzdHJsZW4oc3RyKSkKKwl7CisJCXJldHVybiBmYWxzZTsKKwl9CisJ d2hpbGUgKCpwcmVmaXggIT0gJ1wwJykKKwl7CisJCWlmICgqKHN0cisrKSAhPSAqKHByZWZpeCsr KSkKKwkJeworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQorCXJldHVybiB0cnVlOworfQorCisv KgorICogUGFyc2UgYXJvdW5kIG9wZXJhdG9yLiBUaGUgb3BlcmF0b3IKKyAqIGhhdmUgdGhlIGZv bGxvd2luZyBmb3JtOgorICoKKyAqCQlhIEFST1VORChYKSBiIChkaXN0YW5jZSBpcyBubyBncmVh dGVyIHRoYW4gWCkKKyAqCisgKiBUaGUgYnVmZmVyIHNob3VsZCBiZWdpbnMgd2l0aCAiQVJPVU5E KCIgcHJlZml4CisgKi8KK3N0YXRpYyBjaGFyICoKK3BhcnNlX2Fyb3VuZF9vcGVyYXRvcihjaGFy ICpidWYsIGludDE2ICpkaXN0YW5jZSkKK3sKKwljaGFyCSAgICpwdHIgPSBidWY7CisJY2hhcgkg ICAqZW5kcHRyOworCWxvbmcJCWwgPSAxOworCisJQXNzZXJ0KGhhc19wcmVmaXgocHRyLCAiQVJP VU5EKCIpKTsKKworCXB0ciArPSBzdHJsZW4oIkFST1VORCgiKTsKKworCXdoaWxlICh0X2lzc3Bh Y2UocHRyKSkKKwkJcHRyKys7CisKKwlsID0gc3RydG9sKHB0ciwgJmVuZHB0ciwgMTApOworCWlm IChwdHIgPT0gZW5kcHRyKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBlcnJtc2coIkludmFsaWQgQVJPVU5EKFgp IG9wZXJhdG9yISIpKSk7CisJZWxzZSBpZiAoZXJybm8gPT0gRVJBTkdFIHx8IGwgPiBNQVhFTlRS WVBPUykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJkaXN0YW5jZSBpbiBBUk9VTkQgb3BlcmF0b3Ig c2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gJWQiLAorCQkJCQkJTUFYRU5UUllQT1MpKSk7CisK KwlwdHIgPSBlbmRwdHI7CisJKmRpc3RhbmNlID0gbDsKKwl3aGlsZSAodF9pc3NwYWNlKHB0cikp CisJCXB0cisrOworCisJaWYgKCF0X2lzZXEocHRyLCAnKScpKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBlcnJt c2coIk1pc3NpbmcgJyknIGluIEFST1VORChYKSBvcGVyYXRvciIpKSk7CisKKwlyZXR1cm4gKytw dHI7Cit9CisKIC8qCiAgKiBnZXQgdG9rZW4gZnJvbSBxdWVyeSBzdHJpbmcKICAqCkBAIC0zMDEs NiArMzY1LDE2IEBAIGdldHRva2VuX3F1ZXJ5KFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0ZSwKIAkJ CQkJCXJldHVybiBQVF9FUlI7CiAJCQkJCXJldHVybiBQVF9PUFI7CiAJCQkJfQorCQkJCWVsc2Ug aWYgKGhhc19wcmVmaXgoc3RhdGUtPmJ1ZiwgIkFST1VORCgiKSkKKwkJCQl7CisJCQkJCXN0YXRl LT5zdGF0ZSA9IFdBSVRPUEVSQU5EOworCQkJCQkqb3BlcmF0b3IgPSBPUF9BUk9VTkQ7CisJCQkJ CS8qIHdlaWdodCB2YXIgaXMgdXNlZCBhcyBzdG9yYWdlIGZvciBkaXN0YW5jZSAqLworCQkJCQlz dGF0ZS0+YnVmID0gcGFyc2VfYXJvdW5kX29wZXJhdG9yKHN0YXRlLT5idWYsIHdlaWdodCk7CisJ CQkJCWlmICgqd2VpZ2h0IDwgMCkKKwkJCQkJCXJldHVybiBQVF9FUlI7CisJCQkJCXJldHVybiBQ VF9PUFI7CisJCQkJfQogCQkJCWVsc2UgaWYgKHRfaXNlcShzdGF0ZS0+YnVmLCAnKScpKQogCQkJ CXsKIAkJCQkJKHN0YXRlLT5idWYpKys7CkBAIC0zMzYsMTIgKzQxMCwxMyBAQCBwdXNoT3BlcmF0 b3IoVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLCBpbnQ4IG9wZXIsIGludDE2IGRpc3RhbmNlKQog ewogCVF1ZXJ5T3BlcmF0b3IgKnRtcDsKIAotCUFzc2VydChvcGVyID09IE9QX05PVCB8fCBvcGVy ID09IE9QX0FORCB8fCBvcGVyID09IE9QX09SIHx8IG9wZXIgPT0gT1BfUEhSQVNFKTsKKwlBc3Nl cnQob3BlciA9PSBPUF9OT1QgfHwgb3BlciA9PSBPUF9BTkQgfHwgb3BlciA9PSBPUF9PUgorCQl8 fCBvcGVyID09IE9QX1BIUkFTRSB8fCBvcGVyID09IE9QX0FST1VORCk7CiAKIAl0bXAgPSAoUXVl cnlPcGVyYXRvciAqKSBwYWxsb2MwKHNpemVvZihRdWVyeU9wZXJhdG9yKSk7CiAJdG1wLT50eXBl ID0gUUlfT1BSOwogCXRtcC0+b3BlciA9IG9wZXI7Ci0JdG1wLT5kaXN0YW5jZSA9IChvcGVyID09 IE9QX1BIUkFTRSkgPyBkaXN0YW5jZSA6IDA7CisJdG1wLT5kaXN0YW5jZSA9IChvcGVyID09IE9Q X1BIUkFTRSB8fCBvcGVyID09IE9QX0FST1VORCkgPyBkaXN0YW5jZSA6IDA7CiAJLyogbGVmdCBp cyBmaWxsZWQgaW4gbGF0ZXIgd2l0aCBmaW5kb3BybmQgKi8KIAogCXN0YXRlLT5wb2xzdHIgPSBs Y29ucyh0bXAsIHN0YXRlLT5wb2xzdHIpOwpAQCAtNTU1LDcgKzYzMCw4IEBAIGZpbmRvcHJuZF9y ZWN1cnNlKFF1ZXJ5SXRlbSAqcHRyLCB1aW50MzIgKnBvcywgaW50IG5ub2RlcywgYm9vbCAqbmVl ZGNsZWFudXApCiAKIAkJCUFzc2VydChjdXJpdGVtLT5vcGVyID09IE9QX0FORCB8fAogCQkJCSAg IGN1cml0ZW0tPm9wZXIgPT0gT1BfT1IgfHwKLQkJCQkgICBjdXJpdGVtLT5vcGVyID09IE9QX1BI UkFTRSk7CisJCQkJICAgY3VyaXRlbS0+b3BlciA9PSBPUF9QSFJBU0UgfHwKKwkJCQkgICBjdXJp dGVtLT5vcGVyID09IE9QX0FST1VORCk7CiAKIAkJCSgqcG9zKSsrOwogCkBAIC04ODQsNiArOTYw LDkgQEAgaW5maXgoSU5GSVggKmluLCBpbnQgcGFyZW50UHJpb3JpdHksIGJvb2wgcmlnaHRQaHJh c2VPcCkKIAkJCQllbHNlCiAJCQkJCXNwcmludGYoaW4tPmN1ciwgIiA8LT4gJXMiLCBucm0uYnVm KTsKIAkJCQlicmVhazsKKwkJCWNhc2UgT1BfQVJPVU5EOgorCQkJCXNwcmludGYoaW4tPmN1ciwg IiBBUk9VTkQoJWQpICVzIiwgZGlzdGFuY2UsIG5ybS5idWYpOworCQkJCWJyZWFrOwogCQkJZGVm YXVsdDoKIAkJCQkvKiBPUF9OT1QgaXMgaGFuZGxlZCBpbiBhYm92ZSBpZi1icmFuY2ggKi8KIAkJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9wZXJhdG9yIHR5cGU6ICVkIiwgb3ApOwpAQCAt OTY2LDcgKzEwNDUsOCBAQCB0c3F1ZXJ5c2VuZChQR19GVU5DVElPTl9BUkdTKQogCQkJCWJyZWFr OwogCQkJY2FzZSBRSV9PUFI6CiAJCQkJcHFfc2VuZGludDgoJmJ1ZiwgaXRlbS0+cW9wZXJhdG9y Lm9wZXIpOwotCQkJCWlmIChpdGVtLT5xb3BlcmF0b3Iub3BlciA9PSBPUF9QSFJBU0UpCisJCQkJ aWYgKGl0ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX1BIUkFTRQorCQkJCQl8fCBpdGVtLT5xb3Bl cmF0b3Iub3BlciA9PSBPUF9BUk9VTkQpCiAJCQkJCXBxX3NlbmRpbnQxNigmYnVmLCBpdGVtLT5x b3BlcmF0b3IuZGlzdGFuY2UpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTEwNjIsMTQg KzExNDIsMTUgQEAgdHNxdWVyeXJlY3YoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWludDgJCW9wZXI7 CiAKIAkJCW9wZXIgPSAoaW50OCkgcHFfZ2V0bXNnaW50KGJ1Ziwgc2l6ZW9mKGludDgpKTsKLQkJ CWlmIChvcGVyICE9IE9QX05PVCAmJiBvcGVyICE9IE9QX09SICYmIG9wZXIgIT0gT1BfQU5EICYm IG9wZXIgIT0gT1BfUEhSQVNFKQorCQkJaWYgKG9wZXIgIT0gT1BfTk9UICYmIG9wZXIgIT0gT1Bf T1IgJiYgb3BlciAhPSBPUF9BTkQKKwkJCQkmJiBvcGVyICE9IE9QX1BIUkFTRSAmJiBvcGVyICE9 IE9QX0FST1VORCkKIAkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCB0c3F1ZXJ5OiB1bnJlY29nbml6 ZWQgb3BlcmF0b3IgdHlwZSAlZCIsCiAJCQkJCSAoaW50KSBvcGVyKTsKIAkJCWlmIChpID09IHNp emUgLSAxKQogCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHBvaW50ZXIgdG8gcmlnaHQgb3BlcmFu ZCIpOwogCiAJCQlpdGVtLT5xb3BlcmF0b3Iub3BlciA9IG9wZXI7Ci0JCQlpZiAob3BlciA9PSBP UF9QSFJBU0UpCisJCQlpZiAob3BlciA9PSBPUF9QSFJBU0UgfHwgb3BlciA9PSBPUF9BUk9VTkQp CiAJCQkJaXRlbS0+cW9wZXJhdG9yLmRpc3RhbmNlID0gKGludDE2KSBwcV9nZXRtc2dpbnQoYnVm LCBzaXplb2YoaW50MTYpKTsKIAkJfQogCQllbHNlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdHNxdWVyeV9jbGVhbnVwLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVy eV9jbGVhbnVwLmMKaW5kZXggMzUwMTcxYy4uYmI3ZmJkNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3RzcXVlcnlfY2xlYW51cC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC90c3F1ZXJ5X2NsZWFudXAuYwpAQCAtMTYxLDcgKzE2MSw4IEBAIGNsZWFuX05PVF9pbnRyZWUo Tk9ERSAqbm9kZSkKIAkJTk9ERQkgICAqcmVzID0gbm9kZTsKIAogCQlBc3NlcnQobm9kZS0+dmFs bm9kZS0+cW9wZXJhdG9yLm9wZXIgPT0gT1BfQU5EIHx8Ci0JCQkgICBub2RlLT52YWxub2RlLT5x b3BlcmF0b3Iub3BlciA9PSBPUF9QSFJBU0UpOworCQkJICAgbm9kZS0+dmFsbm9kZS0+cW9wZXJh dG9yLm9wZXIgPT0gT1BfUEhSQVNFIHx8CisJCQkgICBub2RlLT52YWxub2RlLT5xb3BlcmF0b3Iu b3BlciA9PSBPUF9BUk9VTkQpOwogCiAJCW5vZGUtPmxlZnQgPSBjbGVhbl9OT1RfaW50cmVlKG5v ZGUtPmxlZnQpOwogCQlub2RlLT5yaWdodCA9IGNsZWFuX05PVF9pbnRyZWUobm9kZS0+cmlnaHQp OwpAQCAtMjc3LDcgKzI3OCw4IEBAIGNsZWFuX3N0b3B3b3JkX2ludHJlZShOT0RFICpub2RlLCBp bnQgKmxhZGQsIGludCAqcmFkZCkKIAkJbm9kZS0+cmlnaHQgPSBjbGVhbl9zdG9wd29yZF9pbnRy ZWUobm9kZS0+cmlnaHQsICZybGFkZCwgJnJyYWRkKTsKIAogCQkvKiBDaGVjayBpZiBjdXJyZW50 IG5vZGUgaXMgT1BfUEhSQVNFLCBnZXQgaXRzIGRpc3RhbmNlICovCi0JCWlzcGhyYXNlID0gKG5v ZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVyID09IE9QX1BIUkFTRSk7CisJCWlzcGhyYXNlID0g KG5vZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVyID09IE9QX1BIUkFTRSB8fAorCQkJCQlub2Rl LT52YWxub2RlLT5xb3BlcmF0b3Iub3BlciA9PSBPUF9BUk9VTkQpOwogCQluZGlzdGFuY2UgPSBp c3BocmFzZSA/IG5vZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5kaXN0YW5jZSA6IDA7CiAKIAkJaWYg KG5vZGUtPmxlZnQgPT0gTlVMTCAmJiBub2RlLT5yaWdodCA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlfb3AuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC90c3F1ZXJ5X29wLmMKaW5kZXggNzU1YzNlOS4uN2NmOWI4YSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlfb3AuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv dHNxdWVyeV9vcC5jCkBAIC0zNyw3ICszNyw3IEBAIGpvaW5fdHNxdWVyaWVzKFRTUXVlcnkgYSwg VFNRdWVyeSBiLCBpbnQ4IG9wZXJhdG9yLCB1aW50MTYgZGlzdGFuY2UpCiAJcmVzLT52YWxub2Rl ID0gKFF1ZXJ5SXRlbSAqKSBwYWxsb2MwKHNpemVvZihRdWVyeUl0ZW0pKTsKIAlyZXMtPnZhbG5v ZGUtPnR5cGUgPSBRSV9PUFI7CiAJcmVzLT52YWxub2RlLT5xb3BlcmF0b3Iub3BlciA9IG9wZXJh dG9yOwotCWlmIChvcGVyYXRvciA9PSBPUF9QSFJBU0UpCisJaWYgKG9wZXJhdG9yID09IE9QX1BI UkFTRSB8fCBvcGVyYXRvciA9PSBPUF9BUk9VTkQpCiAJCXJlcy0+dmFsbm9kZS0+cW9wZXJhdG9y LmRpc3RhbmNlID0gZGlzdGFuY2U7CiAKIAlyZXMtPmNoaWxkID0gKFFUTm9kZSAqKikgcGFsbG9j MChzaXplb2YoUVROb2RlICopICogMik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvdHNxdWVyeV91dGlsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVyeV91dGlsLmMK aW5kZXggOTcxYmI4MS4uNTQ4YTg0NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RzcXVlcnlfdXRpbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X3V0aWwu YwpAQCAtMTIxLDcgKzEyMSw3IEBAIFFUTm9kZUNvbXBhcmUoUVROb2RlICphbiwgUVROb2RlICpi bikKIAkJCQkJcmV0dXJuIHJlczsKIAkJfQogCi0JCWlmIChhby0+b3BlciA9PSBPUF9QSFJBU0Ug JiYgYW8tPmRpc3RhbmNlICE9IGJvLT5kaXN0YW5jZSkKKwkJaWYgKChhby0+b3BlciA9PSBPUF9Q SFJBU0UgfHwgYW8tPm9wZXIgPT0gT1BfQVJPVU5EKSAmJiBhby0+ZGlzdGFuY2UgIT0gYm8tPmRp c3RhbmNlKQogCQkJcmV0dXJuIChhby0+ZGlzdGFuY2UgPiBiby0+ZGlzdGFuY2UpID8gLTEgOiAx OwogCiAJCXJldHVybiAwOwpAQCAtMTcxLDcgKzE3MSw4IEBAIFFUTlNvcnQoUVROb2RlICppbikK IAogCWZvciAoaSA9IDA7IGkgPCBpbi0+bmNoaWxkOyBpKyspCiAJCVFUTlNvcnQoaW4tPmNoaWxk W2ldKTsKLQlpZiAoaW4tPm5jaGlsZCA+IDEgJiYgaW4tPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVy ICE9IE9QX1BIUkFTRSkKKwlpZiAoaW4tPm5jaGlsZCA+IDEgJiYgaW4tPnZhbG5vZGUtPnFvcGVy YXRvci5vcGVyICE9IE9QX1BIUkFTRQorCQkmJiBpbi0+dmFsbm9kZS0+cW9wZXJhdG9yLm9wZXIg IT0gT1BfQVJPVU5EKQogCQlxc29ydCgodm9pZCAqKSBpbi0+Y2hpbGQsIGluLT5uY2hpbGQsIHNp emVvZihRVE5vZGUgKiksIGNtcFFUTik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90c3JhbmsuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3JhbmsuYwppbmRleCA0 NTc3YmNjLi5iNjJiMTRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNyYW5r LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcmFuay5jCkBAIC0zNjYsNyArMzY2LDgg QEAgY2FsY19yYW5rKGNvbnN0IGZsb2F0ICp3LCBUU1ZlY3RvciB0LCBUU1F1ZXJ5IHEsIGludDMy IG1ldGhvZCkKIAogCS8qIFhYWDogV2hhdCBhYm91dCBOT1Q/ICovCiAJcmVzID0gKGl0ZW0tPnR5 cGUgPT0gUUlfT1BSICYmIChpdGVtLT5xb3BlcmF0b3Iub3BlciA9PSBPUF9BTkQgfHwKLQkJCQkJ CQkJCWl0ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX1BIUkFTRSkpID8KKwkJCQkJCQkJCWl0ZW0t PnFvcGVyYXRvci5vcGVyID09IE9QX1BIUkFTRSB8fAorCQkJCQkJCQkJaXRlbS0+cW9wZXJhdG9y Lm9wZXIgPT0gT1BfQVJPVU5EKSkgPwogCQljYWxjX3JhbmtfYW5kKHcsIHQsIHEpIDoKIAkJY2Fs Y19yYW5rX29yKHcsIHQsIHEpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv dHN2ZWN0b3Jfb3AuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3ZlY3Rvcl9vcC5jCmluZGV4 IDgyMjUyMDIuLmU4YmM5ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3Zl Y3Rvcl9vcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3ZlY3Rvcl9vcC5jCkBAIC0x NDI5LDYgKzE0MjksNyBAQCBjaGVja2NvbmRpdGlvbl9zdHIodm9pZCAqY2hlY2t2YWwsIFF1ZXJ5 T3BlcmFuZCAqdmFsLCBFeGVjUGhyYXNlRGF0YSAqZGF0YSkKICNkZWZpbmUgVFNQT19MX09OTFkJ CTB4MDEJLyogZW1pdCBwb3NpdGlvbnMgYXBwZWFyaW5nIG9ubHkgaW4gTCAqLwogI2RlZmluZSBU U1BPX1JfT05MWQkJMHgwMgkvKiBlbWl0IHBvc2l0aW9ucyBhcHBlYXJpbmcgb25seSBpbiBSICov CiAjZGVmaW5lIFRTUE9fQk9USAkJMHgwNAkvKiBlbWl0IHBvc2l0aW9ucyBhcHBlYXJpbmcgaW4g Ym90aCBMJlIgKi8KKyNkZWZpbmUgVFNQT19OT1RfRVhBQwkweDA4CS8qIG5vdCBleGFjdCBkaXN0 YW5jZSBmb3IgQVJPVU5EKFgpICovCiAKIHN0YXRpYyBib29sCiBUU19waHJhc2Vfb3V0cHV0KEV4 ZWNQaHJhc2VEYXRhICpkYXRhLApAQCAtMTQ3Myw4ICsxNDc0LDE4IEBAIFRTX3BocmFzZV9vdXRw dXQoRXhlY1BocmFzZURhdGEgKmRhdGEsCiAJCQlScG9zID0gSU5UX01BWDsKIAkJfQogCisJCS8q IFByb2Nlc3NpbmcgT1BfQVJPVU5EICovCisJCWlmICgoZW1pdCAmIFRTUE9fTk9UX0VYQUMpICYm CisJCQlMcG9zIC0gUnBvcyA+PSAwICYmCisJCQlMcG9zIC0gUnBvcyA8PSAoTG9mZnNldCArIFJv ZmZzZXQpICogMiAtIFJkYXRhLT53aWR0aCArIExkYXRhLT53aWR0aCkKKwkJeworCQkJaWYgKGVt aXQgJiBUU1BPX0JPVEgpCisJCQkJb3V0cHV0X3BvcyA9IFJwb3M7CisJCQlMaW5kZXgrKzsKKwkJ CVJpbmRleCsrOworCQl9CiAJCS8qIE1lcmdlLWpvaW4gdGhlIHR3byBpbnB1dCBsaXN0cyAqLwot CQlpZiAoTHBvcyA8IFJwb3MpCisJCWVsc2UgaWYgKExwb3MgPCBScG9zKQogCQl7CiAJCQkvKiBM cG9zIGlzIG5vdCBtYXRjaGVkIGluIFJkYXRhLCBzaG91bGQgd2Ugb3V0cHV0IGl0PyAqLwogCQkJ aWYgKGVtaXQgJiBUU1BPX0xfT05MWSkKQEAgLTE2MjUsNiArMTYzNiw3IEBAIFRTX3BocmFzZV9l eGVjdXRlKFF1ZXJ5SXRlbSAqY3VyaXRlbSwgdm9pZCAqYXJnLCB1aW50MzIgZmxhZ3MsCiAJCQl9 CiAKIAkJY2FzZSBPUF9QSFJBU0U6CisJCWNhc2UgT1BfQVJPVU5EOgogCQljYXNlIE9QX0FORDoK IAkJCW1lbXNldCgmTGRhdGEsIDAsIHNpemVvZihMZGF0YSkpOwogCQkJbWVtc2V0KCZSZGF0YSwg MCwgc2l6ZW9mKFJkYXRhKSk7CkBAIC0xNjQ3LDcgKzE2NTksNyBAQCBUU19waHJhc2VfZXhlY3V0 ZShRdWVyeUl0ZW0gKmN1cml0ZW0sIHZvaWQgKmFyZywgdWludDMyIGZsYWdzLAogCQkJCShSZGF0 YS5ucG9zID09IDAgJiYgIVJkYXRhLm5lZ2F0ZSkpCiAJCQkJcmV0dXJuIChmbGFncyAmIFRTX0VY RUNfUEhSQVNFX05PX1BPUykgPyB0cnVlIDogZmFsc2U7CiAKLQkJCWlmIChjdXJpdGVtLT5xb3Bl cmF0b3Iub3BlciA9PSBPUF9QSFJBU0UpCisJCQlpZiAoY3VyaXRlbS0+cW9wZXJhdG9yLm9wZXIg PT0gT1BfUEhSQVNFIHx8IGN1cml0ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX0FST1VORCkKIAkJ CXsKIAkJCQkvKgogCQkJCSAqIENvbXB1dGUgTG9mZnNldCBhbmQgUm9mZnNldCBzdWl0YWJsZSBm b3IgcGhyYXNlIG1hdGNoLCBhbmQKQEAgLTE3MDMsNyArMTcxNSw4IEBAIFRTX3BocmFzZV9leGVj dXRlKFF1ZXJ5SXRlbSAqY3VyaXRlbSwgdm9pZCAqYXJnLCB1aW50MzIgZmxhZ3MsCiAJCQl7CiAJ CQkJLyogc3RyYWlnaHQgQU5EICovCiAJCQkJcmV0dXJuIFRTX3BocmFzZV9vdXRwdXQoZGF0YSwg JkxkYXRhLCAmUmRhdGEsCi0JCQkJCQkJCQkJVFNQT19CT1RILAorCQkJCQkJCQkJCVRTUE9fQk9U SCB8CisJCQkJCQkJCQkJKGN1cml0ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX0FST1VORCA/IFRT UE9fTk9UX0VYQUMgOiAwKSwKIAkJCQkJCQkJCQlMb2Zmc2V0LCBSb2Zmc2V0LAogCQkJCQkJCQkJ CU1pbihMZGF0YS5ucG9zLCBSZGF0YS5ucG9zKSk7CiAJCQl9CkBAIC0xODQzLDYgKzE4NTYsNyBA QCBUU19leGVjdXRlKFF1ZXJ5SXRlbSAqY3VyaXRlbSwgdm9pZCAqYXJnLCB1aW50MzIgZmxhZ3Ms CiAJCQkJcmV0dXJuIFRTX2V4ZWN1dGUoY3VyaXRlbSArIDEsIGFyZywgZmxhZ3MsIGNoa2NvbmQp OwogCiAJCWNhc2UgT1BfUEhSQVNFOgorCQljYXNlIE9QX0FST1VORDoKIAkJCXJldHVybiBUU19w aHJhc2VfZXhlY3V0ZShjdXJpdGVtLCBhcmcsIGZsYWdzLCBjaGtjb25kLCBOVUxMKTsKIAogCQlk ZWZhdWx0OgpAQCAtMTg4Miw5ICsxODk2LDEwIEBAIHRzcXVlcnlfcmVxdWlyZXNfbWF0Y2goUXVl cnlJdGVtICpjdXJpdGVtKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJCWNhc2UgT1BfUEhSQVNFOgor CQljYXNlIE9QX0FST1VORDoKIAogCQkJLyoKLQkJCSAqIFRyZWF0IE9QX1BIUkFTRSBhcyBPUF9B TkQgaGVyZQorCQkJICogVHJlYXQgT1BfUEhSQVNFIGFuZCBPUF9BUk9VTkQgYXMgT1BfQU5EIGhl cmUKIAkJCSAqLwogCQljYXNlIE9QX0FORDoKIAkJCS8qIElmIGVpdGhlciBzaWRlIHJlcXVpcmVz IGEgbWF0Y2gsIHdlJ3JlIGdvb2QgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3RzZWFyY2gv dHNfdHlwZS5oIGIvc3JjL2luY2x1ZGUvdHNlYXJjaC90c190eXBlLmgKaW5kZXggMzBkN2M0Yi4u ZWUxYTE4NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdHNlYXJjaC90c190eXBlLmgKKysrIGIv c3JjL2luY2x1ZGUvdHNlYXJjaC90c190eXBlLmgKQEAgLTE2Niw4ICsxNjYsOSBAQCB0eXBlZGVm IHN0cnVjdAogI2RlZmluZSBPUF9OT1QJCQkxCiAjZGVmaW5lIE9QX0FORAkJCTIKICNkZWZpbmUg T1BfT1IJCQkzCi0jZGVmaW5lIE9QX1BIUkFTRQkJNAkJLyogaGlnaGVzdCBjb2RlLCB0c3F1ZXJ5 X2NsZWFudXAuYyAqLwotI2RlZmluZSBPUF9DT1VOVAkJNAorI2RlZmluZSBPUF9QSFJBU0UJCTQK KyNkZWZpbmUgT1BfQVJPVU5ECQk1CQkvKiBoaWdoZXN0IGNvZGUsIHRzcXVlcnlfY2xlYW51cC5j ICovCisjZGVmaW5lIE9QX0NPVU5UCQk1CiAKIGV4dGVybiBjb25zdCBpbnQgdHNlYXJjaF9vcF9w cmlvcml0eVtPUF9DT1VOVF07CiAK --=_82f072478f6161cec21d329f72ea2164 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=queryto_tsquery3_02_queryto_tsquery.patch Content-Disposition: attachment; filename=queryto_tsquery3_02_queryto_tsquery.patch; size=18919 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdG9fdHNhbnkuYyBiL3NyYy9iYWNrZW5k L3RzZWFyY2gvdG9fdHNhbnkuYwppbmRleCBjZjU1ZTM5Li4yOTcyNTQwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90c2VhcmNoL3RvX3RzYW55LmMKKysrIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC90 b190c2FueS5jCkBAIC0zOTAsNyArMzkwLDggQEAgYWRkX3RvX3RzdmVjdG9yKHZvaWQgKl9zdGF0 ZSwgY2hhciAqZWxlbV92YWx1ZSwgaW50IGVsZW1fbGVuKQogICogYW5kIGRpZmZlcmVudCB2YXJp YW50cyBhcmUgT1JlZCB0b2dldGhlci4KICAqLwogc3RhdGljIHZvaWQKLXB1c2h2YWxfbW9ycGgo RGF0dW0gb3BhcXVlLCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0cnZhbCwgaW50 IGxlbnZhbCwgaW50MTYgd2VpZ2h0LCBib29sIHByZWZpeCkKK3B1c2h2YWxfbW9ycGgoRGF0dW0g b3BhcXVlLCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0cnZhbCwgaW50IGxlbnZh bCwKKwlpbnQxNiB3ZWlnaHQsIGJvb2wgcHJlZml4LCBib29sIGlzcGhyYXNlKQogewogCWludDMy CQljb3VudCA9IDA7CiAJUGFyc2VkVGV4dAlwcnM7CkBAIC00MjMsNyArNDI0LDEyIEBAIHB1c2h2 YWxfbW9ycGgoRGF0dW0gb3BhcXVlLCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0 cnZhbCwgaW50IGxlbnZhbCwKIAkJCQkJLyogcHV0IHBsYWNlaG9sZGVycyBmb3IgZWFjaCBtaXNz aW5nIHN0b3Agd29yZCAqLwogCQkJCQlwdXNoU3RvcChzdGF0ZSk7CiAJCQkJCWlmIChjbnRwb3Mp Ci0JCQkJCQlwdXNoT3BlcmF0b3Ioc3RhdGUsIGRhdGEtPnFvcGVyYXRvciwgMSk7CisJCQkJCXsK KwkJCQkJCWlmIChpc3BocmFzZSkKKwkJCQkJCQlwdXNoT3BlcmF0b3Ioc3RhdGUsIE9QX1BIUkFT RSwgMSk7CisJCQkJCQllbHNlCisJCQkJCQkJcHVzaE9wZXJhdG9yKHN0YXRlLCBkYXRhLT5xb3Bl cmF0b3IsIDEpOworCQkJCQl9CiAJCQkJCWNudHBvcysrOwogCQkJCQlwb3MrKzsKIAkJCQl9CkBA IC00NjQsNyArNDcwLDEwIEBAIHB1c2h2YWxfbW9ycGgoRGF0dW0gb3BhcXVlLCBUU1F1ZXJ5UGFy c2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0cnZhbCwgaW50IGxlbnZhbCwKIAkJCWlmIChjbnRwb3Mp CiAJCQl7CiAJCQkJLyogZGlzdGFuY2UgbWF5IGJlIHVzZWZ1bCAqLwotCQkJCXB1c2hPcGVyYXRv cihzdGF0ZSwgZGF0YS0+cW9wZXJhdG9yLCAxKTsKKwkJCQlpZiAoaXNwaHJhc2UpCisJCQkJCXB1 c2hPcGVyYXRvcihzdGF0ZSwgT1BfUEhSQVNFLCAxKTsKKwkJCQllbHNlCisJCQkJCXB1c2hPcGVy YXRvcihzdGF0ZSwgZGF0YS0+cW9wZXJhdG9yLCAxKTsKIAkJCX0KIAogCQkJY250cG9zKys7CkBA IC00OTAsNiArNDk5LDcgQEAgdG9fdHNxdWVyeV9ieWlkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcXVl cnkgPSBwYXJzZV90c3F1ZXJ5KHRleHRfdG9fY3N0cmluZyhpbiksCiAJCQkJCQkgIHB1c2h2YWxf bW9ycGgsCiAJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSgmZGF0YSksCisJCQkJCQkgIGZhbHNlLAog CQkJCQkJICBmYWxzZSk7CiAKIAlQR19SRVRVUk5fVFNRVUVSWShxdWVyeSk7CkBAIC01MjAsNyAr NTMwLDggQEAgcGxhaW50b190c3F1ZXJ5X2J5aWQoUEdfRlVOQ1RJT05fQVJHUykKIAlxdWVyeSA9 IHBhcnNlX3RzcXVlcnkodGV4dF90b19jc3RyaW5nKGluKSwKIAkJCQkJCSAgcHVzaHZhbF9tb3Jw aCwKIAkJCQkJCSAgUG9pbnRlckdldERhdHVtKCZkYXRhKSwKLQkJCQkJCSAgdHJ1ZSk7CisJCQkJ CQkgIHRydWUsCisJCQkJCQkgIGZhbHNlKTsKIAogCVBHX1JFVFVSTl9QT0lOVEVSKHF1ZXJ5KTsK IH0KQEAgLTU1MSw3ICs1NjIsOCBAQCBwaHJhc2V0b190c3F1ZXJ5X2J5aWQoUEdfRlVOQ1RJT05f QVJHUykKIAlxdWVyeSA9IHBhcnNlX3RzcXVlcnkodGV4dF90b19jc3RyaW5nKGluKSwKIAkJCQkJ CSAgcHVzaHZhbF9tb3JwaCwKIAkJCQkJCSAgUG9pbnRlckdldERhdHVtKCZkYXRhKSwKLQkJCQkJ CSAgdHJ1ZSk7CisJCQkJCQkgIHRydWUsCisJCQkJCQkgIGZhbHNlKTsKIAogCVBHX1JFVFVSTl9U U1FVRVJZKHF1ZXJ5KTsKIH0KQEAgLTU2NywzICs1NzksMzYgQEAgcGhyYXNldG9fdHNxdWVyeShQ R19GVU5DVElPTl9BUkdTKQogCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oY2ZnSWQpLAogCQkJ CQkJCQkJCVBvaW50ZXJHZXREYXR1bShpbikpKTsKIH0KKworRGF0dW0KK3F1ZXJ5dG9fdHNxdWVy eV9ieWlkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJdGV4dAkgICAqaW4gPSBQR19HRVRBUkdfVEVY VF9QUCgxKTsKKwlNb3JwaE9wYXF1ZQlkYXRhOworCVRTUXVlcnkJCXF1ZXJ5ID0gTlVMTDsKKwor CWRhdGEuY2ZnX2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKworCWRhdGEucW9wZXJhdG9yID0gT1Bf QU5EOworCisJcXVlcnkgPSBwYXJzZV90c3F1ZXJ5KHRleHRfdG9fY3N0cmluZyhpbiksCisJCQkJ CQkgIHB1c2h2YWxfbW9ycGgsCisJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSgmZGF0YSksCisJCQkJ CQkgIGZhbHNlLAorCQkJCQkJICB0cnVlKTsKKworCVBHX1JFVFVSTl9UU1FVRVJZKHF1ZXJ5KTsK K30KKworRGF0dW0KK3F1ZXJ5dG9fdHNxdWVyeShQR19GVU5DVElPTl9BUkdTKQoreworCXRleHQJ ICAgKmluID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7CisJT2lkCQkJY2ZnSWQ7CisKKwljZmdJZCA9 IGdldFRTQ3VycmVudENvbmZpZyh0cnVlKTsKKwlQR19SRVRVUk5fREFUVU0oRGlyZWN0RnVuY3Rp b25DYWxsMihxdWVyeXRvX3RzcXVlcnlfYnlpZCwKKwkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVt KGNmZ0lkKSwKKwkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oaW4pKSk7CisKK30KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNx dWVyeS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnkuYwppbmRleCAwN2Q1NmIwLi41 M2M5ZmM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVyeS5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5LmMKQEAgLTYzLDYgKzYzLDcgQEAgc3RydWN0 IFRTUXVlcnlQYXJzZXJTdGF0ZURhdGEKICNkZWZpbmUgV0FJVE9QRVJBVE9SCQkyCiAjZGVmaW5l IFdBSVRGSVJTVE9QRVJBTkQJMwogI2RlZmluZSBXQUlUU0lOR0xFT1BFUkFORAk0CisjZGVmaW5l IFdBSVRRVU9URQkJCTUKIAogLyoKICAqIHN1YnJvdXRpbmUgdG8gcGFyc2UgdGhlIG1vZGlmaWVy cyAod2VpZ2h0IGFuZCBwcmVmaXggZmxhZyBjdXJyZW50bHkpCkBAIC0yODUsNyArMjg2LDggQEAg cGFyc2VfYXJvdW5kX29wZXJhdG9yKGNoYXIgKmJ1ZiwgaW50MTYgKmRpc3RhbmNlKQogc3RhdGlj IHRzX3Rva2VudHlwZQogZ2V0dG9rZW5fcXVlcnkoVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAog CQkJICAgaW50OCAqb3BlcmF0b3IsCi0JCQkgICBpbnQgKmxlbnZhbCwgY2hhciAqKnN0cnZhbCwg aW50MTYgKndlaWdodCwgYm9vbCAqcHJlZml4KQorCQkJICAgaW50ICpsZW52YWwsIGNoYXIgKipz dHJ2YWwsIGludDE2ICp3ZWlnaHQsIGJvb2wgKnByZWZpeCwKKwkJCSAgIGJvb2wgaXNxdWVyeSkK IHsKIAkqd2VpZ2h0ID0gMDsKIAkqcHJlZml4ID0gZmFsc2U7CkBAIC0yOTYsNyArMjk4LDggQEAg Z2V0dG9rZW5fcXVlcnkoVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAogCQl7CiAJCQljYXNlIFdB SVRGSVJTVE9QRVJBTkQ6CiAJCQljYXNlIFdBSVRPUEVSQU5EOgotCQkJCWlmICh0X2lzZXEoc3Rh dGUtPmJ1ZiwgJyEnKSkKKwkJCQlpZiAodF9pc2VxKHN0YXRlLT5idWYsICchJykgfHwKKwkJCQkJ KGlzcXVlcnkgJiYgdF9pc2VxKHN0YXRlLT5idWYsICctJykpKQogCQkJCXsKIAkJCQkJKHN0YXRl LT5idWYpKys7IC8qIGNhbiBzYWZlbHkgKyssIHRfaXNlcSBndWFyYW50ZWUgdGhhdAogCQkJCQkJ CQkJICogcGdfbWJsZW4oKT09MSAqLwpAQCAtMzE4LDYgKzMyMSwyMCBAQCBnZXR0b2tlbl9xdWVy eShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJCQkJIGVycm1zZygic3ludGF4IGVycm9y IGluIHRzcXVlcnk6IFwiJXNcIiIsCiAJCQkJCQkJCQlzdGF0ZS0+YnVmZmVyKSkpOwogCQkJCX0K KwkJCQllbHNlIGlmIChpc3F1ZXJ5ICYmIHRfaXNlcShzdGF0ZS0+YnVmLCAnIicpKQorCQkJCXsK KwkJCQkJY2hhcgkgICAqcXVvdGUgPSBzdHJjaHIoc3RhdGUtPmJ1ZiArIDEsICciJyk7CisJCQkJ CWlmIChxdW90ZSA9PSBOVUxMKQorCQkJCQl7CisJCQkJCQlzdGF0ZS0+YnVmKys7CisJCQkJCQlj b250aW51ZTsKKwkJCQkJfQorCQkJCQkqc3RydmFsID0gc3RhdGUtPmJ1ZiArIDE7CisJCQkJCSps ZW52YWwgPSBxdW90ZSAtIHN0YXRlLT5idWYgLSAxOworCQkJCQlzdGF0ZS0+YnVmID0gcXVvdGUg KyAxOworCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUUVVPVEU7CisJCQkJCXJldHVybiBQVF9WQUw7 CisJCQkJfQogCQkJCWVsc2UgaWYgKCF0X2lzc3BhY2Uoc3RhdGUtPmJ1ZikpCiAJCQkJewogCQkJ CQkvKgpAQCAtMzU1LDYgKzM3MiwxMyBAQCBnZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3Rh dGUgc3RhdGUsCiAJCQkJCShzdGF0ZS0+YnVmKSsrOwogCQkJCQlyZXR1cm4gUFRfT1BSOwogCQkJ CX0KKwkJCQllbHNlIGlmIChpc3F1ZXJ5ICYmIGhhc19wcmVmaXgoc3RhdGUtPmJ1ZiwgIk9SICIp KQorCQkJCXsKKwkJCQkJc3RhdGUtPnN0YXRlID0gV0FJVE9QRVJBTkQ7CisJCQkJCSpvcGVyYXRv ciA9IE9QX09SOworCQkJCQkoc3RhdGUtPmJ1ZikgKz0gMzsKKwkJCQkJcmV0dXJuIFBUX09QUjsK KwkJCQl9CiAJCQkJZWxzZSBpZiAodF9pc2VxKHN0YXRlLT5idWYsICc8JykpCiAJCQkJewogCQkJ CQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsKQEAgLTM2NSw3ICszODksNyBAQCBnZXR0b2tl bl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJCQlyZXR1cm4gUFRfRVJSOwog CQkJCQlyZXR1cm4gUFRfT1BSOwogCQkJCX0KLQkJCQllbHNlIGlmIChoYXNfcHJlZml4KHN0YXRl LT5idWYsICJBUk9VTkQoIikpCisJCQkJZWxzZSBpZiAoaXNxdWVyeSAmJiBoYXNfcHJlZml4KHN0 YXRlLT5idWYsICJBUk9VTkQoIikpCiAJCQkJewogCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BF UkFORDsKIAkJCQkJKm9wZXJhdG9yID0gT1BfQVJPVU5EOwpAQCAtMzgxLDggKzQwNSwyMyBAQCBn ZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJCXN0YXRlLT5jb3Vu dC0tOwogCQkJCQlyZXR1cm4gKHN0YXRlLT5jb3VudCA8IDApID8gUFRfRVJSIDogUFRfQ0xPU0U7 CiAJCQkJfQorCQkJCWVsc2UgaWYgKHRfaXNlcShzdGF0ZS0+YnVmLCAnKCcpKQorCQkJCXsKKwkJ CQkJKm9wZXJhdG9yID0gT1BfQU5EOworCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsK KwkJCQkJcmV0dXJuIFBUX09QUjsKKwkJCQl9CiAJCQkJZWxzZSBpZiAoKihzdGF0ZS0+YnVmKSA9 PSAnXDAnKQogCQkJCQlyZXR1cm4gKHN0YXRlLT5jb3VudCkgPyBQVF9FUlIgOiBQVF9FTkQ7CisJ CQkJZWxzZSBpZiAoaXNxdWVyeSAmJgorCQkJCQkJCSh0X2lzYWxwaGEoc3RhdGUtPmJ1ZikgfHwg dF9pc2VxKHN0YXRlLT5idWYsICchJykKKwkJCQkJCQkJCQkJCSAgIHx8IHRfaXNlcShzdGF0ZS0+ YnVmLCAnLScpCisJCQkJCQkJCQkJCQkgICB8fCB0X2lzZXEoc3RhdGUtPmJ1ZiwgJyInKSkpCisJ CQkJeworCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsKKwkJCQkJKm9wZXJhdG9yID0g T1BfQU5EOworCQkJCQlyZXR1cm4gUFRfT1BSOworCQkJCX0KIAkJCQllbHNlIGlmICghdF9pc3Nw YWNlKHN0YXRlLT5idWYpKQogCQkJCQlyZXR1cm4gUFRfRVJSOwogCQkJCWJyZWFrOwpAQCAtMzk0 LDYgKzQzMyw5IEBAIGdldHRva2VuX3F1ZXJ5KFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0ZSwKIAkJ CQlzdGF0ZS0+YnVmICs9IHN0cmxlbihzdGF0ZS0+YnVmKTsKIAkJCQlzdGF0ZS0+Y291bnQrKzsK IAkJCQlyZXR1cm4gUFRfVkFMOworCQkJY2FzZSBXQUlUUVVPVEU6CisJCQkJc3RhdGUtPnN0YXRl ID0gV0FJVE9QRVJBVE9SOworCQkJCWNvbnRpbnVlOwogCQkJZGVmYXVsdDoKIAkJCQlyZXR1cm4g UFRfRVJSOwogCQkJCWJyZWFrOwpAQCAtNTUwLDcgKzU5Miw4IEBAIGNsZWFuT3BTdGFjayhUU1F1 ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiBzdGF0aWMgdm9pZAogbWFrZXBvbChUU1F1ZXJ5UGFyc2Vy U3RhdGUgc3RhdGUsCiAJCVB1c2hGdW5jdGlvbiBwdXNodmFsLAotCQlEYXR1bSBvcGFxdWUpCisJ CURhdHVtIG9wYXF1ZSwKKwkJYm9vbCBpc3F1ZXJ5KQogewogCWludDgJCW9wZXJhdG9yID0gMDsK IAl0c190b2tlbnR5cGUgdHlwZTsKQEAgLTU2NCwxOSArNjA3LDIwIEBAIG1ha2Vwb2woVFNRdWVy eVBhcnNlclN0YXRlIHN0YXRlLAogCS8qIHNpbmNlIHRoaXMgZnVuY3Rpb24gcmVjdXJzZXMsIGl0 IGNvdWxkIGJlIGRyaXZlbiB0byBzdGFjayBvdmVyZmxvdyAqLwogCWNoZWNrX3N0YWNrX2RlcHRo KCk7CiAKLQl3aGlsZSAoKHR5cGUgPSBnZXR0b2tlbl9xdWVyeShzdGF0ZSwgJm9wZXJhdG9yLCAm bGVudmFsLCAmc3RydmFsLCAmd2VpZ2h0LCAmcHJlZml4KSkgIT0gUFRfRU5EKQorCXdoaWxlICgo dHlwZSA9IGdldHRva2VuX3F1ZXJ5KHN0YXRlLCAmb3BlcmF0b3IsICZsZW52YWwsICZzdHJ2YWws ICZ3ZWlnaHQsCisJCQkJCQkJCSAgJnByZWZpeCwgaXNxdWVyeSkpICE9IFBUX0VORCkKIAl7CiAJ CXN3aXRjaCAodHlwZSkKIAkJewogCQkJY2FzZSBQVF9WQUw6Ci0JCQkJcHVzaHZhbChvcGFxdWUs IHN0YXRlLCBzdHJ2YWwsIGxlbnZhbCwgd2VpZ2h0LCBwcmVmaXgpOworCQkJCXB1c2h2YWwob3Bh cXVlLCBzdGF0ZSwgc3RydmFsLCBsZW52YWwsIHdlaWdodCwgcHJlZml4LCBzdGF0ZS0+c3RhdGUg PT0gV0FJVFFVT1RFKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFRfT1BSOgogCQkJCWNsZWFuT3BT dGFjayhzdGF0ZSwgb3BzdGFjaywgJmxlbnN0YWNrLCBvcGVyYXRvcik7CiAJCQkJcHVzaE9wU3Rh Y2sob3BzdGFjaywgJmxlbnN0YWNrLCBvcGVyYXRvciwgd2VpZ2h0KTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgUFRfT1BFTjoKLQkJCQltYWtlcG9sKHN0YXRlLCBwdXNodmFsLCBvcGFxdWUpOworCQkJ CW1ha2Vwb2woc3RhdGUsIHB1c2h2YWwsIG9wYXF1ZSwgaXNxdWVyeSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFBUX0NMT1NFOgogCQkJCWNsZWFuT3BTdGFjayhzdGF0ZSwgb3BzdGFjaywgJmxlbnN0 YWNrLCBPUF9PUiAvKiBsb3dlc3QgKi8gKTsKQEAgLTY4MSw3ICs3MjUsOCBAQCBUU1F1ZXJ5CiBw YXJzZV90c3F1ZXJ5KGNoYXIgKmJ1ZiwKIAkJCSAgUHVzaEZ1bmN0aW9uIHB1c2h2YWwsCiAJCQkg IERhdHVtIG9wYXF1ZSwKLQkJCSAgYm9vbCBpc3BsYWluKQorCQkJICBib29sIGlzcGxhaW4sCisJ CQkgIGJvb2wgaXNxdWVyeSkKIHsKIAlzdHJ1Y3QgVFNRdWVyeVBhcnNlclN0YXRlRGF0YSBzdGF0 ZTsKIAlpbnQJCQlpOwpAQCAtNzA4LDcgKzc1Myw3IEBAIHBhcnNlX3RzcXVlcnkoY2hhciAqYnVm LAogCSooc3RhdGUuY3Vyb3ApID0gJ1wwJzsKIAogCS8qIHBhcnNlIHF1ZXJ5ICYgbWFrZSBwb2xp c2ggbm90YXRpb24gKHBvc3RmaXgsIGJ1dCBpbiByZXZlcnNlIG9yZGVyKSAqLwotCW1ha2Vwb2wo JnN0YXRlLCBwdXNodmFsLCBvcGFxdWUpOworCW1ha2Vwb2woJnN0YXRlLCBwdXNodmFsLCBvcGFx dWUsIGlzcXVlcnkpOwogCiAJY2xvc2VfdHN2ZWN0b3JfcGFyc2VyKHN0YXRlLnZhbHN0YXRlKTsK IApAQCAtNzc5LDcgKzgyNCw3IEBAIHBhcnNlX3RzcXVlcnkoY2hhciAqYnVmLAogCiBzdGF0aWMg dm9pZAogcHVzaHZhbF9hc2lzKERhdHVtIG9wYXF1ZSwgVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRl LCBjaGFyICpzdHJ2YWwsIGludCBsZW52YWwsCi0JCQkgaW50MTYgd2VpZ2h0LCBib29sIHByZWZp eCkKKwkJCSBpbnQxNiB3ZWlnaHQsIGJvb2wgcHJlZml4LCBib29sIGlzcGhyYXNlKQogewogCXB1 c2hWYWx1ZShzdGF0ZSwgc3RydmFsLCBsZW52YWwsIHdlaWdodCwgcHJlZml4KTsKIH0KQEAgLTc5 Miw3ICs4MzcsNyBAQCB0c3F1ZXJ5aW4oUEdfRlVOQ1RJT05fQVJHUykKIHsKIAljaGFyCSAgICpp biA9IFBHX0dFVEFSR19DU1RSSU5HKDApOwogCi0JUEdfUkVUVVJOX1RTUVVFUlkocGFyc2VfdHNx dWVyeShpbiwgcHVzaHZhbF9hc2lzLCBQb2ludGVyR2V0RGF0dW0oTlVMTCksIGZhbHNlKSk7CisJ UEdfUkVUVVJOX1RTUVVFUlkocGFyc2VfdHNxdWVyeShpbiwgcHVzaHZhbF9hc2lzLCBQb2ludGVy R2V0RGF0dW0oTlVMTCksIGZhbHNlLCBmYWxzZSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlfY2xlYW51cC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RzcXVlcnlfY2xlYW51cC5jCmluZGV4IGU2NzliYjUuLmJiN2ZiZDUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X2NsZWFudXAuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdHNxdWVyeV9jbGVhbnVwLmMKQEAgLTI3OCw3ICsyNzgsNyBAQCBjbGVhbl9z dG9wd29yZF9pbnRyZWUoTk9ERSAqbm9kZSwgaW50ICpsYWRkLCBpbnQgKnJhZGQpCiAJCW5vZGUt PnJpZ2h0ID0gY2xlYW5fc3RvcHdvcmRfaW50cmVlKG5vZGUtPnJpZ2h0LCAmcmxhZGQsICZycmFk ZCk7CiAKIAkJLyogQ2hlY2sgaWYgY3VycmVudCBub2RlIGlzIE9QX1BIUkFTRSwgZ2V0IGl0cyBk aXN0YW5jZSAqLwotCQlpc3BocmFzZSA9IChub2RlLT52YWxub2RlLT5xb3BlcmF0b3Iub3BlciA9 PSBPUF9QSFJBU0UgfHwKKwkJaXNwaHJhc2UgPSAobm9kZS0+dmFsbm9kZS0+cW9wZXJhdG9yLm9w ZXIgPT0gT1BfUEhSQVNFIHx8CiAJCQkJCW5vZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVyID09 IE9QX0FST1VORCk7CiAJCW5kaXN0YW5jZSA9IGlzcGhyYXNlID8gbm9kZS0+dmFsbm9kZS0+cW9w ZXJhdG9yLmRpc3RhbmNlIDogMDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RzdmVjdG9yX29wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHN2ZWN0b3Jfb3AuYwppbmRl eCBjZTdlZTI1Li5lOGJjOWViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHN2 ZWN0b3Jfb3AuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHN2ZWN0b3Jfb3AuYwpAQCAt MTcxNSw3ICsxNzE1LDcgQEAgVFNfcGhyYXNlX2V4ZWN1dGUoUXVlcnlJdGVtICpjdXJpdGVtLCB2 b2lkICphcmcsIHVpbnQzMiBmbGFncywKIAkJCXsKIAkJCQkvKiBzdHJhaWdodCBBTkQgKi8KIAkJ CQlyZXR1cm4gVFNfcGhyYXNlX291dHB1dChkYXRhLCAmTGRhdGEsICZSZGF0YSwKLQkJCQkJCQkJ CQlUU1BPX0JPVEggfAorCQkJCQkJCQkJCVRTUE9fQk9USCB8CiAJCQkJCQkJCQkJKGN1cml0ZW0t PnFvcGVyYXRvci5vcGVyID09IE9QX0FST1VORCA/IFRTUE9fTk9UX0VYQUMgOiAwKSwKIAkJCQkJ CQkJCQlMb2Zmc2V0LCBSb2Zmc2V0LAogCQkJCQkJCQkJCU1pbihMZGF0YS5ucG9zLCBSZGF0YS5u cG9zKSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oCmluZGV4IGM5NjkzNzUuLjlhYmRlMTUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5oCkBAIC00OTA2LDYgKzQ5MDYsOCBAQCBEQVRBKGluc2VydCBPSUQgPSAzNzQ2 ICggIHRvX3RzcXVlcnkJCVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBpIHMg MgogREVTQ1IoIm1ha2UgdHNxdWVyeSIpOwogREFUQShpbnNlcnQgT0lEID0gMzc0NyAoICBwbGFp bnRvX3RzcXVlcnkJUEdOU1AgUEdVSUQgMTIgMTAwIDAgMCAwIGYgZiBmIGYgdCBmIGkgcyAyIDAg MzYxNSAiMzczNCAyNSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBwbGFpbnRv X3RzcXVlcnlfYnlpZCBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKIERFU0NSKCJ0cmFuc2Zvcm0g dG8gdHNxdWVyeSIpOworREFUQShpbnNlcnQgT0lEID0gODg4OSAoICBxdWVyeXRvX3RzcXVlcnkJ UEdOU1AgUEdVSUQgMTIgMTAwIDAgMCAwIGYgZiBmIGYgdCBmIGkgcyAyIDAgMzYxNSAiMzczNCAy NSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBxdWVyeXRvX3RzcXVlcnlfYnlp ZCBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKK0RFU0NSKCJ0cmFuc2Zvcm0gdG8gdHNxdWVyeSIp OwogREFUQShpbnNlcnQgT0lEID0gNTAwNiAoICBwaHJhc2V0b190c3F1ZXJ5CVBHTlNQIFBHVUlE IDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBpIHMgMiAwIDM2MTUgIjM3MzQgMjUiIF9udWxsXyBf bnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gcGhyYXNldG9fdHNxdWVyeV9ieWlkIF9udWxsXyBf bnVsbF8gX251bGxfICkpOwogREVTQ1IoInRyYW5zZm9ybSB0byB0c3F1ZXJ5Iik7CiBEQVRBKGlu c2VydCBPSUQgPSAzNzQ5ICggIHRvX3RzdmVjdG9yCQlQR05TUCBQR1VJRCAxMiAxMDAgMCAwIDAg ZiBmIGYgZiB0IGYgcyBzIDEgMCAzNjE0ICIyNSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxf IF9udWxsXyB0b190c3ZlY3RvciBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKQEAgLTQ5MTQsNiAr NDkxNiw4IEBAIERBVEEoaW5zZXJ0IE9JRCA9IDM3NTAgKCAgdG9fdHNxdWVyeQkJUEdOU1AgUEdV SUQgMTIgMTAwIDAgMCAwIGYgZiBmIGYgdCBmIHMgcyAxCiBERVNDUigibWFrZSB0c3F1ZXJ5Iik7 CiBEQVRBKGluc2VydCBPSUQgPSAzNzUxICggIHBsYWludG9fdHNxdWVyeQlQR05TUCBQR1VJRCAx MiAxMDAgMCAwIDAgZiBmIGYgZiB0IGYgcyBzIDEgMCAzNjE1ICIyNSIgX251bGxfIF9udWxsXyBf bnVsbF8gX251bGxfIF9udWxsXyBwbGFpbnRvX3RzcXVlcnkgX251bGxfIF9udWxsXyBfbnVsbF8g KSk7CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVlcnkiKTsKK0RBVEEoaW5zZXJ0IE9JRCA9IDg4 OTAgKCAgcXVlcnl0b190c3F1ZXJ5CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQg ZiBzIHMgMSAwIDM2MTUgIjI1IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIHF1 ZXJ5dG9fdHNxdWVyeSBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKK0RFU0NSKCJ0cmFuc2Zvcm0g dG8gdHNxdWVyeSIpOwogREFUQShpbnNlcnQgT0lEID0gNTAwMSAoICBwaHJhc2V0b190c3F1ZXJ5 CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTUgIjI1IiBf bnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIHBocmFzZXRvX3RzcXVlcnkgX251bGxf IF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVlcnkiKTsKIERBVEEo aW5zZXJ0IE9JRCA9IDQyMDkgKCAgdG9fdHN2ZWN0b3IJCVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAg MCBmIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTQgIjM4MDIiIF9udWxsXyBfbnVsbF8gX251bGxfIF9u dWxsXyBfbnVsbF8ganNvbmJfdG9fdHN2ZWN0b3IgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90c2VhcmNoL3RzX3V0aWxzLmggYi9zcmMvaW5jbHVkZS90 c2VhcmNoL3RzX3V0aWxzLmgKaW5kZXggNzgyNTQ4Yy4uZmZiMTc2MiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdHNlYXJjaC90c191dGlscy5oCisrKyBiL3NyYy9pbmNsdWRlL3RzZWFyY2gvdHNf dXRpbHMuaApAQCAtNDQsMTEgKzQ0LDEyIEBAIHR5cGVkZWYgdm9pZCAoKlB1c2hGdW5jdGlvbikg KERhdHVtIG9wYXF1ZSwgVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAogCQkJCQkJCSAgY2hhciAq dG9rZW4sIGludCB0b2tlbmxlbiwKIAkJCQkJCQkgIGludDE2IHRva2Vud2VpZ2h0cywJLyogYml0 bWFwIGFzIGRlc2NyaWJlZCBpbgogCQkJCQkJCQkJCQkJCSAqIFF1ZXJ5T3BlcmFuZCBzdHJ1Y3Qg Ki8KLQkJCQkJCQkgIGJvb2wgcHJlZml4KTsKKwkJCQkJCQkgIGJvb2wgcHJlZml4LAorCQkJCQkJ CSAgYm9vbCBpc3BocmFzZSk7CiAKIGV4dGVybiBUU1F1ZXJ5IHBhcnNlX3RzcXVlcnkoY2hhciAq YnVmLAogCQkJICBQdXNoRnVuY3Rpb24gcHVzaHZhbCwKLQkJCSAgRGF0dW0gb3BhcXVlLCBib29s IGlzcGxhaW4pOworCQkJICBEYXR1bSBvcGFxdWUsIGJvb2wgaXNwbGFpbiwgYm9vbCBpc3F1ZXJ5 KTsKIAogLyogRnVuY3Rpb25zIGZvciB1c2UgYnkgUHVzaEZ1bmN0aW9uIGltcGxlbWVudGF0aW9u cyAqLwogZXh0ZXJuIHZvaWQgcHVzaFZhbHVlKFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0ZSwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHNlYXJjaC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3RzZWFyY2gub3V0CmluZGV4IGQ2M2ZiMTIuLjJlYjQxMGIgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHNlYXJjaC5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC90c2VhcmNoLm91dApAQCAtMTY3MiwzICsxNjcyLDExNSBA QCBzZWxlY3QgKiBmcm9tIHBocmFzZV9pbmRleF90ZXN0IHdoZXJlIGZ0cyBAQCBwaHJhc2V0b190 c3F1ZXJ5KCdlbmdsaXNoJywgJ2ZhdCBjYQogKDEgcm93KQogCiBzZXQgZW5hYmxlX3NlcXNjYW4g PSBvbjsKKworLS10ZXN0IHF1ZXJ5dG9fdHNxdWVyeSBmdW5jdGlvbgorc2VsZWN0IHF1ZXJ5dG9f dHNxdWVyeSgnTXkgYnJhbmQgbmV3IHNtYXJ0cGhvbmUnKTsKKyAgICAgICAgcXVlcnl0b190c3F1 ZXJ5ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnYnJhbmQnICYg J25ldycgJiAnc21hcnRwaG9uJworKDEgcm93KQorCitzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCdN eSBicmFuZCAibmV3IHNtYXJ0cGhvbmUiJyk7CisgICAgICAgICBxdWVyeXRvX3RzcXVlcnkgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdicmFuZCcgJiAnbmV3 JyA8LT4gJ3NtYXJ0cGhvbicKKygxIHJvdykKKworc2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnIkEg ZmF0IGNhdCIgaGFzIGp1c3QgZWF0ZW4gYSAtcmF0LicpOworICAgICAgICAgIHF1ZXJ5dG9fdHNx dWVyeSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAn ZmF0JyA8LT4gJ2NhdCcgJiAnZWF0ZW4nICYgISdyYXQnCisoMSByb3cpCisKK3NlbGVjdCBxdWVy eXRvX3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBqdXN0IGVhdGVuIE9SIC1yYXQuJyk7CisgICAg ICAgICAgcXVlcnl0b190c3F1ZXJ5ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICdmYXQnIDwtPiAnY2F0JyAmICdlYXRlbicgfCAhJ3JhdCcKKygxIHJv dykKKworc2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnIkEgZmF0IGNhdCIgaGFzIGp1c3QgKGVhdGVu IE9SIC1yYXQpJyk7CisgICAgICAgICAgICBxdWVyeXRvX3RzcXVlcnkgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgPC0+ICdjYXQn ICYgKCAnZWF0ZW4nIHwgISdyYXQnICkKKygxIHJvdykKKworLS0gdGVzdGluZyBBUk9VTkQgb3Bl cmF0b3IgZXZhbHVhdGlvbgorc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlz IGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMg YW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitxdWVyeXRvX3Rz cXVlcnkoJyJnbnUgZGVidWdnZXIiIEFST1VORCg1KSBydW5zJyk7CisgP2NvbHVtbj8gCistLS0t LS0tLS0tCisgZgorKDEgcm93KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdn ZXIgaXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lz dGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1ZXJ5 dG9fdHNxdWVyeSgncnVuIEFST1VORCg1KSAiZ251IGRlYnVnZ2VyIicpOworID9jb2x1bW4/IAor LS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERl YnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtl IHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitx dWVyeXRvX3RzcXVlcnkoJyJnbnUgZGVidWdnZXIiIEFST1VORCg2KSBydW5zJyk7CisgP2NvbHVt bj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBH TlUgRGVidWdnZXIgaXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4 IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykg QEAKK3F1ZXJ5dG9fdHNxdWVyeSgncnVuIEFST1VORCg2KSAiZ251IGRlYnVnZ2VyIicpOworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworc2VsZWN0IHRvX3RzdmVjdG9yKCdU aGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkg VW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdl cycpIEBACitxdWVyeXRvX3RzcXVlcnkoJyJtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcyIgQVJP VU5EKDEwKSAicG9ydGFibGUgZGVidWdnZXIiJyk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisg ZgorKDEgcm93KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBw b3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQg d29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1ZXJ5dG9fdHNxdWVy eSgnInBvcnRhYmxlIGRlYnVnZ2VyIiBBUk9VTkQoMTApICJtYW55IHByb2dyYW1taW5nIGxhbmd1 YWdlcyInKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK3NlbGVjdCB0 b190c3ZlY3RvcignVGhlIEdOVSBEZWJ1Z2dlciBpcyBhIHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQg cnVucyBvbiBtYW55IFVuaXggbGlrZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBwcm9ncmFt bWluZyBsYW5ndWFnZXMnKSBAQAorcXVlcnl0b190c3F1ZXJ5KCcibWFueSBwcm9ncmFtbWluZyBs YW5ndWFnZXMiIEFST1VORCgxMSkgInBvcnRhYmxlIGRlYnVnZ2VyIicpOworID9jb2x1bW4/IAor LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERl YnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtl IHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitx dWVyeXRvX3RzcXVlcnkoJyJwb3J0YWJsZSBkZWJ1Z2dlciIgQVJPVU5EKDExKSAibWFueSBwcm9n cmFtbWluZyBsYW5ndWFnZXMiJyk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCciZmF0IGNhdCBBUk9VTkQoNSkgcmF0IicpOwor ICAgICAgICAgICAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnZmF0JyA8LT4gJ2Nh dCcgPC0+ICdhcm91bmQnIDwtPiAnNScgPC0+ICdyYXQnCisoMSByb3cpCisKK3NlbGVjdCBxdWVy eXRvX3RzcXVlcnkoJ3NpbXBsZScsJyJmYXQgY2F0IE9SIHJhdCInKTsKKyAgICAgICAgICBxdWVy eXRvX3RzcXVlcnkgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgJ2ZhdCcgPC0+ICdjYXQnIDwtPiAnb3InIDwtPiAncmF0JworKDEgcm93KQorCitzZWxl Y3QgcXVlcnl0b190c3F1ZXJ5KCdmYXQqcmF0Jyk7CisgcXVlcnl0b190c3F1ZXJ5IAorLS0tLS0t LS0tLS0tLS0tLS0KKyAnZmF0JyAmICdyYXQnCisoMSByb3cpCisKK3NlbGVjdCBxdWVyeXRvX3Rz cXVlcnkoJ2ZhdC1yYXQnKTsKKyAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdC1yYXQnICYgJ2ZhdCcgJiAncmF0JworKDEgcm93KQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHNlYXJjaC5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC90c2VhcmNoLnNxbAppbmRleCAxYzg1MjBiLi42NWU3MWRhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90c2VhcmNoLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC90c2VhcmNoLnNxbApAQCAtNTM5LDMgKzUzOSwzNCBAQCBjcmVhdGUgaW5kZXggcGhyYXNl X2luZGV4X3Rlc3RfaWR4IG9uIHBocmFzZV9pbmRleF90ZXN0IHVzaW5nIGdpbihmdHMpOwogc2V0 IGVuYWJsZV9zZXFzY2FuID0gb2ZmOwogc2VsZWN0ICogZnJvbSBwaHJhc2VfaW5kZXhfdGVzdCB3 aGVyZSBmdHMgQEAgcGhyYXNldG9fdHNxdWVyeSgnZW5nbGlzaCcsICdmYXQgY2F0Jyk7CiBzZXQg ZW5hYmxlX3NlcXNjYW4gPSBvbjsKKworLS10ZXN0IHF1ZXJ5dG9fdHNxdWVyeSBmdW5jdGlvbgor c2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnTXkgYnJhbmQgbmV3IHNtYXJ0cGhvbmUnKTsKK3NlbGVj dCBxdWVyeXRvX3RzcXVlcnkoJ015IGJyYW5kICJuZXcgc21hcnRwaG9uZSInKTsKK3NlbGVjdCBx dWVyeXRvX3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBqdXN0IGVhdGVuIGEgLXJhdC4nKTsKK3Nl bGVjdCBxdWVyeXRvX3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBqdXN0IGVhdGVuIE9SIC1yYXQu Jyk7CitzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCciQSBmYXQgY2F0IiBoYXMganVzdCAoZWF0ZW4g T1IgLXJhdCknKTsKKworLS0gdGVzdGluZyBBUk9VTkQgb3BlcmF0b3IgZXZhbHVhdGlvbgorc2Vs ZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIg dGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHBy b2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitxdWVyeXRvX3RzcXVlcnkoJyJnbnUgZGVidWdnZXIi IEFST1VORCg1KSBydW5zJyk7CitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIg aXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVt cyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1ZXJ5dG9f dHNxdWVyeSgncnVuIEFST1VORCg1KSAiZ251IGRlYnVnZ2VyIicpOworc2VsZWN0IHRvX3RzdmVj dG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9u IG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxh bmd1YWdlcycpIEBACitxdWVyeXRvX3RzcXVlcnkoJyJnbnUgZGVidWdnZXIiIEFST1VORCg2KSBy dW5zJyk7CitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBwb3J0YWJs ZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3Mg Zm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1ZXJ5dG9fdHNxdWVyeSgncnVu IEFST1VORCg2KSAiZ251IGRlYnVnZ2VyIicpOworCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBH TlUgRGVidWdnZXIgaXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4 IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykg QEAKK3F1ZXJ5dG9fdHNxdWVyeSgnIm1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIiBBUk9VTkQo MTApICJwb3J0YWJsZSBkZWJ1Z2dlciInKTsKK3NlbGVjdCB0b190c3ZlY3RvcignVGhlIEdOVSBE ZWJ1Z2dlciBpcyBhIHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVucyBvbiBtYW55IFVuaXggbGlr ZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMnKSBAQAor cXVlcnl0b190c3F1ZXJ5KCcicG9ydGFibGUgZGVidWdnZXIiIEFST1VORCgxMCkgIm1hbnkgcHJv Z3JhbW1pbmcgbGFuZ3VhZ2VzIicpOworc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERlYnVn Z2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5 c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBACitxdWVy eXRvX3RzcXVlcnkoJyJtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcyIgQVJPVU5EKDExKSAicG9y dGFibGUgZGVidWdnZXIiJyk7CitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIg aXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVt cyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3F1ZXJ5dG9f dHNxdWVyeSgnInBvcnRhYmxlIGRlYnVnZ2VyIiBBUk9VTkQoMTEpICJtYW55IHByb2dyYW1taW5n IGxhbmd1YWdlcyInKTsKKworc2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnImZhdCBjYXQgQVJPVU5E KDUpIHJhdCInKTsKK3NlbGVjdCBxdWVyeXRvX3RzcXVlcnkoJ3NpbXBsZScsJyJmYXQgY2F0IE9S IHJhdCInKTsKK3NlbGVjdCBxdWVyeXRvX3RzcXVlcnkoJ2ZhdCpyYXQnKTsKK3NlbGVjdCBxdWVy eXRvX3RzcXVlcnkoJ2ZhdC1yYXQnKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg== --=_82f072478f6161cec21d329f72ea2164 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=queryto_tsquery3_03_documentation.patch Content-Disposition: attachment; filename=queryto_tsquery3_03_documentation.patch; size=5009 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5z Z21sCmluZGV4IDRkZDlkMDIuLmI0ZDk1ZWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5j LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtOTUzNSw2ICs5NTM1LDE4IEBA IENSRUFURSBUWVBFIHJhaW5ib3cgQVMgRU5VTSAoJ3JlZCcsICdvcmFuZ2UnLCAneWVsbG93Jywg J2dyZWVuJywgJ2JsdWUnLCAncHVycGxlCiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5Pgog ICAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgICA8cHJpbWFyeT5xdWVyeXRvX3RzcXVlcnk8 L3ByaW1hcnk+CisgICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgICA8bGl0ZXJhbD48ZnVu Y3Rpb24+cXVlcnl0b190c3F1ZXJ5KDxvcHRpb25hbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbmZpZzwvcmVwbGFjZWFibGU+IDx0eXBlPnJlZ2NvbmZpZzwvdHlwZT4gLCA8L29w dGlvbmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cXVlcnk8L3JlcGxhY2VhYmxl PiA8dHlwZT50ZXh0PC90eXBlPik8L2Z1bmN0aW9uPjwvbGl0ZXJhbD4KKyAgICAgICAgIDwvZW50 cnk+CisgICAgICAgIDxlbnRyeT48dHlwZT50c3F1ZXJ5PC90eXBlPjwvZW50cnk+CisgICAgICAg IDxlbnRyeT5wcm9kdWNlIDx0eXBlPnRzcXVlcnk8L3R5cGU+IGZyb20gZ29vZ2xlIGxpa2UgcXVl cnk8L2VudHJ5PgorICAgICAgICA8ZW50cnk+PGxpdGVyYWw+cXVlcnl0b190c3F1ZXJ5KCdlbmds aXNoJywgJ1RoZSBGYXQgUmF0cycpPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeT48 bGl0ZXJhbD4nZmF0JyAmYW1wOyAncmF0JzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDwvcm93 PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT4KKyAgICAgICAgIDxpbmRleHRlcm0+CiAg ICAgICAgICAgPHByaW1hcnk+cXVlcnl0cmVlPC9wcmltYXJ5PgogICAgICAgICAgPC9pbmRleHRl cm0+CiAgICAgICAgICA8bGl0ZXJhbD48ZnVuY3Rpb24+cXVlcnl0cmVlKDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5xdWVyeTwvcmVwbGFjZWFibGU+IDx0eXBlPnRzcXVlcnk8L3R5cGU+ KTwvZnVuY3Rpb24+PC9saXRlcmFsPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3RleHRzZWFy Y2guc2dtbCBiL2RvYy9zcmMvc2dtbC90ZXh0c2VhcmNoLnNnbWwKaW5kZXggNGRjNTJlYy4uNWUw NTk4NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3RleHRzZWFyY2guc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvdGV4dHNlYXJjaC5zZ21sCkBAIC03OTcsMTMgKzc5NywxNSBAQCBVUERBVEUgdHQg U0VUIHRpID0KICAgIDxwYXJhPgogICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0 bmFtZT4gcHJvdmlkZXMgdGhlCiAgICAgZnVuY3Rpb25zIDxmdW5jdGlvbj50b190c3F1ZXJ5PC9m dW5jdGlvbj4sCi0gICAgPGZ1bmN0aW9uPnBsYWludG9fdHNxdWVyeTwvZnVuY3Rpb24+LCBhbmQK LSAgICA8ZnVuY3Rpb24+cGhyYXNldG9fdHNxdWVyeTwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9u PnBsYWludG9fdHNxdWVyeTwvZnVuY3Rpb24+LAorICAgIDxmdW5jdGlvbj5waHJhc2V0b190c3F1 ZXJ5PC9mdW5jdGlvbj4gYW5kCisgICAgPGZ1bmN0aW9uPnF1ZXJ5dG9fdHNxdWVyeTwvZnVuY3Rp b24+CiAgICAgZm9yIGNvbnZlcnRpbmcgYSBxdWVyeSB0byB0aGUgPHR5cGU+dHNxdWVyeTwvdHlw ZT4gZGF0YSB0eXBlLgogICAgIDxmdW5jdGlvbj50b190c3F1ZXJ5PC9mdW5jdGlvbj4gb2ZmZXJz IGFjY2VzcyB0byBtb3JlIGZlYXR1cmVzCiAgICAgdGhhbiBlaXRoZXIgPGZ1bmN0aW9uPnBsYWlu dG9fdHNxdWVyeTwvZnVuY3Rpb24+IG9yCiAgICAgPGZ1bmN0aW9uPnBocmFzZXRvX3RzcXVlcnk8 L2Z1bmN0aW9uPiwgYnV0IGl0IGlzIGxlc3MgZm9yZ2l2aW5nCi0gICAgYWJvdXQgaXRzIGlucHV0 LgorICAgIGFib3V0IGl0cyBpbnB1dC4gPGZ1bmN0aW9uPnF1ZXJ5dG9fdHNxdWVyeTwvZnVuY3Rp b24+IHByb3ZpZGVzIGEgCisgICAgZGlmZmVyZW50LCBHb29nbGUgbGlrZSBzeW50YXggdG8gY3Jl YXRlIHRzcXVlcnkuCiAgICA8L3BhcmE+CiAKICAgIDxpbmRleHRlcm0+CkBAIC05NjAsOCArOTYy LDcyIEBAIFNFTEVDVCBwaHJhc2V0b190c3F1ZXJ5KCdlbmdsaXNoJywgJ1RoZSBGYXQgJmFtcDsg UmF0czpDJyk7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICdmYXQnICZsdDstJmd0 OyAncmF0JyAmbHQ7LSZndDsgJ2MnCiA8L3NjcmVlbj4KLSAgIDwvcGFyYT4KKzwvcGFyYT4KKwor PHN5bm9wc2lzPgorcXVlcnl0b190c3F1ZXJ5KDxvcHRpb25hbD4gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbmZpZzwvcmVwbGFjZWFibGU+IDx0eXBlPnJlZ2NvbmZpZzwvdHlwZT4s IDwvb3B0aW9uYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5xdWVyeXRleHQ8L3Jl cGxhY2VhYmxlPiA8dHlwZT50ZXh0PC90eXBlPikgcmV0dXJucyA8dHlwZT50c3F1ZXJ5PC90eXBl PgorPC9zeW5vcHNpcz4KIAorICAgPHBhcmE+CisgICAgPGZ1bmN0aW9uPnF1ZXJ5dG9fdHNxdWVy eTwvZnVuY3Rpb24+IGNyZWF0ZXMgYSA8dHlwZT50c3F1ZXJ5PC90eXBlPiBmcm9tIGEgdW5mb3Jt YXRlZCB0ZXh0LgorICAgIEJ1dCBpbnN0ZWFkIG9mIDxmdW5jdGlvbj5wbGFpbnRvX3RzcXVlcnk8 L2Z1bmN0aW9uPiBhbmQgPGZ1bmN0aW9uPnBocmFzZXRvX3RzcXVlcnk8L2Z1bmN0aW9uPiBpdCB3 b24ndAorICAgIGlnbm9yZSBhbHJlYWR5IHBsYWNlZCBvcGVyYXRpb25zLiBUaGlzIGZ1bmN0aW9u IHN1cHBvcnRzIGZvbGxvd2luZyBvcGVyYXRvcnM6CisgICAgPGl0ZW1pemVkbGlzdCAgc3BhY2lu Zz0iY29tcGFjdCIgbWFyaz0iYnVsbGV0Ij4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+ CisgICAgICAgPGxpdGVyYWw+c29tZSB0ZXh0PC9saXRlcmFsPiAtIGFueSB0ZXh0IGluc2lkZSBx dW90ZSBzaWducyB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBwaHJhc2UgYW5kIHdpbGwgYmUKKyAgICAg ICAgcGVyZm9ybWVkIGxpa2UgaW4gPGZ1bmN0aW9uPnBocmFzZXRvX3RzcXVlcnk8L2Z1bmN0aW9u Pi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgPGxpdGVyYWw+T1I8L2xpdGVyYWw+IC0gc3RhbmRhcmQgbG9naWNh bCBvcGVyYXRvci4gSXQgaXMganVzdCBhbiBhbGlhcyBmb3IgPGxpdGVyYWw+fDwvbGl0ZXJhbD4g c2lnbi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgPGxpdGVyYWw+dGVybWEgQVJPVU5EKE4pIHRlcm1iPC9saXRl cmFsPiAtIHRoaXMgb3BlcmF0aW9uIHdpbGwgbWF0Y2ggaWYgdGhlIGRpc3RhbmNlIGJldHdlZW4g CisgICAgICAgdGVybWEgYW5kIHRlcm1iIGlzIGxlc3MgdGhhbiBOLgorICAgICAgPC9wYXJhPgor ICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8 bGl0ZXJhbD4tPC9saXRlcmFsPiAtIHN0YW5kYXJkIGxvZ2ljYWwgbmVnYXRpb24gc2lnbi4gSXQg aXMgYW4gYWxpYXMgZm9yIDxsaXRlcmFsPiE8L2xpdGVyYWw+IHNpZ24uCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgT3RoZXIgbWlzc2lu ZyBvcGVyYXRvcnMgd2lsbCBiZSByZXBsYWNlZCBieSBBTkQgbGlrZSBpbiA8ZnVuY3Rpb24+cGxh aW50b190c3F1ZXJ5PC9mdW5jdGlvbj4uCisgICA8L3BhcmE+CisgICA8cGFyYT4KKyAgICBFeGFt cGxlczoKKyAgICA8c2NyZWVuPgorICAgICAgc2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgnVGhlIGZh dCByYXRzJyk7CisgICAgICAgcXVlcnl0b190c3F1ZXJ5IAorICAgICAgLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAnZmF0JyAmYW1wOyAncmF0JworICAgICAgKDEgcm93KQorICAgIDwvc2NyZWVu PgorICAgIDxzY3JlZW4+CisgICAgICBzZWxlY3QgcXVlcnl0b190c3F1ZXJ5KCcic3VwZXJub3Zh ZSBzdGFycyIgQU5EIC1jcmFiJyk7CisgICAgICAgICAgICAgcXVlcnl0b190c3F1ZXJ5ICAgICAg ICAgIAorICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICdz dXBlcm5vdmEnICZsdDstJmd0OyAnc3RhcicgJmFtcDsgISdjcmFiJworICAgICgxIHJvdykKKyAg ICA8L3NjcmVlbj4KKyAgICA8c2NyZWVuPgorICAgICAgc2VsZWN0IHF1ZXJ5dG9fdHNxdWVyeSgn LXJ1biBBUk9VTkQoNSkgImdudSBkZWJ1Z2dlciIgT1IgIkkgbGlrZSBiYW5hbmFzIicpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5dG9fdHNxdWVyeSAgICAgICAgICAgICAgICAg ICAgICAKKyAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgISdydW4nIEFST1VORCg1KSAnZ251JyAmbHQ7LSZndDsg J2RlYnVnZycgfCAnbGlrZScgJmx0Oy0mZ3Q7ICdiYW5hbmEnCisgICAgICAoMSByb3cpCisgICAg PC9zY3JlZW4+CisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBOb3RlIHRoYXQgaW4gdGhl IGV4YW1wbGVzIDxmdW5jdGlvbj5xdWVyeXRvX3RzcXVlcnk8L2Z1bmN0aW9uPiBkaWRuJ3QgaWdu b3JlCisgICAgIG9wZXJhdG9ycyBpZiB0aGV5IHdlcmUgcGxhY2VkIGFuZCBwdXQgcmVxdWlyZWQg b3BlcmF0aW9ucworICAgICBpZiB0aGV5IHdlcmUgc2tpcHBlZC4gSW4gY2FzZSBvZiBpbnF1b3Rl IHRleHQgPGZ1bmN0aW9uPnF1ZXJ5dG9fdHNxdWVyeTwvZnVuY3Rpb24+CisgICAgIGhhcyBwbGFj ZWQgcGhyYXNlIG9wZXJhdG9yIGFuZCAmYW1wOyBpbiBvdGhlciBjYXNlcy4KKyAgICA8L3BhcmE+ CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJ0ZXh0c2VhcmNoLXJhbmtpbmciPgo= --=_82f072478f6161cec21d329f72ea2164--