Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eK3nw-00026s-MQ for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Nov 2017 14:57:40 +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 1eK3nw-00011B-7E for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Nov 2017 14:57:40 +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 1eK3nv-000111-Tu for pgsql-hackers@lists.postgresql.org; Wed, 29 Nov 2017 14:57:40 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by magus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1eK3nr-0003S0-7t for pgsql-hackers@postgresql.org; Wed, 29 Nov 2017 14:57:39 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id 14C5021C1692; Wed, 29 Nov 2017 17:57:34 +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 D34B221C0644; Wed, 29 Nov 2017 17:57:33 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1511967453; bh=y/xoOAMW9PwWKmD6YTAL/3ZlMvNDSBRymqXsR1Y4r7w=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=fW07CcFfeTLO/+/igbWP+oHt+klqBWfjcV+QF092IWeAgCee6DIRTZVXc//kAL8Pw gS0srMa1eB/QnGBB7pmEUwmBAWMBPMhCVcUpnFna5RHQyINNfMMEdxdv9lPT6q8aJq mMOrxO61Y9IqMkKVXo33nIOzGQnhbTPrPhduXBPM= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_98d54c165b0f78c39d2e9a96b3f3bd01" Date: Wed, 29 Nov 2017 17:57:33 +0300 From: Victor Drobny To: Aleksander Alekseev Cc: pgsql-hackers@postgresql.org Subject: Re: new function for tsquery creartion Organization: Postgres Professional In-Reply-To: <157ea1194ec9c416df45bfddab10cacd@postgrespro.ru> References: <15517a04afd2be779e2e6d69611c348b@postgrespro.ru> <20171128143916.1377.5847.pgcf@coridan.postgresql.org> <20171128145659.GA32487@e733.localdomain> <157ea1194ec9c416df45bfddab10cacd@postgrespro.ru> Message-ID: 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 --=_98d54c165b0f78c39d2e9a96b3f3bd01 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2017-11-29 17:56, Victor Drobny wrote: Sorry, forgot to attach new version of the patch. > On 2017-11-28 17:57, Aleksander Alekseev wrote: > Hi Aleksander, > > Thank you for review. I have tried to fix all of your comments. > However i want to mention that the absence of comments for functions > in to_tsany.c is justified by the absence of comments for other > similar functions. >> Hi Victor, >> >>> I like the idea and I think it's a great patch. However in current >>> shape it >>> requires some amount of reworking to meet PostgreSQL standards of >>> code quality. >> >> Also I would like to add that I agree with Thomas Munro: >> >>> Calling this search syntax just "query" seems too general and >>> overloaded. "Simple search", "simple query", "web search", "web >>> syntax", "web query", "Google-style query", "Poogle" (kidding!) ... >>> well I'm not sure, but I feel like it deserves a proper name. >>> websearch_to_tsquery()? >> >> websearch_to_tsquery() sounds much better than query_to_tsquery(). >> >> Also I agree Tomas Vondra in regard that: >> >>> 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 ... >> >> I suggest to rephrase: >> >> ``` >> + about its input. queryto_tsquery provides a >> + different, Google like syntax to create tsquery. >> ``` >> >> .. to something more like "provides a different syntax, similar to one >> used in web search engines, to create tsqeury". And maybe give a few >> examples right in the next sentence. > Best, -- Victor Drobny Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_98d54c165b0f78c39d2e9a96b3f3bd01 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=queryto_tsquery4_01_around.patch Content-Disposition: attachment; filename=queryto_tsquery4_01_around.patch; size=12371 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNfc2VsZnVuY3MuYyBiL3NyYy9iYWNr ZW5kL3RzZWFyY2gvdHNfc2VsZnVuY3MuYwppbmRleCAwNDZmNTQzLi4zNzVjYjVjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90c2VhcmNoL3RzX3NlbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQv dHNlYXJjaC90c19zZWxmdW5jcy5jCkBAIC0zOTYsNiArMzk2LDcgQEAgdHNxdWVyeV9vcHJfc2Vs ZWMoUXVlcnlJdGVtICppdGVtLCBjaGFyICpvcGVyYW5kLAogCQkJCWJyZWFrOwogCiAJCQljYXNl IE9QX1BIUkFTRToKKwkJCWNhc2UgT1BfQVJPVU5EOgogCQkJY2FzZSBPUF9BTkQ6CiAJCQkJczEg PSB0c3F1ZXJ5X29wcl9zZWxlYyhpdGVtICsgMSwgb3BlcmFuZCwKIAkJCQkJCQkJCSAgIGxvb2t1 cCwgbGVuZ3RoLCBtaW5mcmVxKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90 c2dpbmlkeC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMKaW5kZXggYWJhNDU2 ZS4uMWM4NTJiZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMKQEAgLTIzOSwxMCArMjM5LDEx IEBAIFRTX2V4ZWN1dGVfdGVybmFyeShHaW5DaGtWYWwgKmdjdiwgUXVlcnlJdGVtICpjdXJpdGVt LCBib29sIGluX3BocmFzZSkKIAkJCXJldHVybiAhcmVzdWx0OwogCiAJCWNhc2UgT1BfUEhSQVNF OgorCQljYXNlIE9QX0FST1VORDoKIAogCQkJLyoKIAkJCSAqIEdJTiBkb2Vzbid0IGNvbnRhaW4g YW55IGluZm9ybWF0aW9uIGFib3V0IHBvc2l0aW9ucywgc28gdHJlYXQKLQkJCSAqIE9QX1BIUkFT RSBhcyBPUF9BTkQgd2l0aCByZWNoZWNrIHJlcXVpcmVtZW50CisJCQkgKiBPUF9QSFJBU0UgYW5k IE9QX0FST1VORCBhcyBPUF9BTkQgd2l0aCByZWNoZWNrIHJlcXVpcmVtZW50CiAJCQkgKi8KIAkJ CSooZ2N2LT5uZWVkX3JlY2hlY2spID0gdHJ1ZTsKIAkJCS8qIFBhc3MgZG93biBpbl9waHJhc2Ug PT0gdHJ1ZSBpbiBjYXNlIHRoZXJlJ3MgYSBOT1QgYmVsb3cgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVy eS5jCmluZGV4IDVjZGZlNGQuLjljMDQzOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC90c3F1ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnkuYwpAQCAt MjksNyArMjksOCBAQCBjb25zdCBpbnQJdHNlYXJjaF9vcF9wcmlvcml0eVtPUF9DT1VOVF0gPQog CTQsCQkJCQkJCS8qIE9QX05PVCAqLwogCTIsCQkJCQkJCS8qIE9QX0FORCAqLwogCTEsCQkJCQkJ CS8qIE9QX09SICovCi0JMwkJCQkJCQkvKiBPUF9QSFJBU0UgKi8KKwkzLAkJCQkJCQkvKiBPUF9Q SFJBU0UgKi8KKwkzCQkJCQkJCS8qIE9QX0FST1VORCAqLwogfTsKIAogc3RydWN0IFRTUXVlcnlQ YXJzZXJTdGF0ZURhdGEKQEAgLTU4LDEwICs1OSwxMCBAQCBzdHJ1Y3QgVFNRdWVyeVBhcnNlclN0 YXRlRGF0YQogfTsKIAogLyogcGFyc2VyJ3Mgc3RhdGVzICovCi0jZGVmaW5lIFdBSVRPUEVSQU5E IDEKLSNkZWZpbmUgV0FJVE9QRVJBVE9SCTIKLSNkZWZpbmUgV0FJVEZJUlNUT1BFUkFORCAzCi0j ZGVmaW5lIFdBSVRTSU5HTEVPUEVSQU5EIDQKKyNkZWZpbmUgV0FJVE9QRVJBTkQJCQkxCisjZGVm aW5lIFdBSVRPUEVSQVRPUgkJMgorI2RlZmluZSBXQUlURklSU1RPUEVSQU5ECTMKKyNkZWZpbmUg V0FJVFNJTkdMRU9QRVJBTkQJNAogCiAvKgogICogc3Vicm91dGluZSB0byBwYXJzZSB0aGUgbW9k aWZpZXJzICh3ZWlnaHQgYW5kIHByZWZpeCBmbGFnIGN1cnJlbnRseSkKQEAgLTIxMSw2ICsyMTIs NjUgQEAgdHlwZWRlZiBlbnVtCiB9IHRzX3Rva2VudHlwZTsKIAogLyoKKyAqIENoZWNrcyBpZiAn c3RyJyBzdGFydHMgd2l0aCBhICdwcmVmaXgnCisgKi8KK3N0YXRpYyBib29sCitoYXNfcHJlZml4 KGNoYXIgKiBzdHIsIGNoYXIgKiBwcmVmaXgpCit7CisJaWYgKHN0cmxlbihwcmVmaXgpID4gc3Ry bGVuKHN0cikpCisJeworCQlyZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiBzdHJzdHIoc3RyLCBw cmVmaXgpID09IHN0cjsKK30KKworLyoKKyAqIFBhcnNlIGFyb3VuZCBvcGVyYXRvci4gVGhlIG9w ZXJhdG9yCisgKiBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybToKKyAqCisgKgkJYSBBUk9VTkQoWCkg YiAoZGlzdGFuY2UgaXMgbm8gZ3JlYXRlciB0aGFuIFgpCisgKgorICogVGhlIGJ1ZmZlciBzaG91 bGQgYmVnaW5zIHdpdGggIkFST1VORCgiIHByZWZpeAorICovCitzdGF0aWMgY2hhciAqCitwYXJz ZV9hcm91bmRfb3BlcmF0b3IoY2hhciAqYnVmLCBpbnQxNiAqZGlzdGFuY2UpCit7CisJY2hhcgkg ICAqcHRyID0gYnVmOworCWNoYXIJICAgKmVuZHB0cjsKKwlsb25nCQlsID0gMTsKKworCUFzc2Vy dChoYXNfcHJlZml4KHB0ciwgIkFST1VORCgiKSk7CisKKwlwdHIgKz0gc3RybGVuKCJBUk9VTkQo Iik7CisKKwl3aGlsZSAodF9pc3NwYWNlKHB0cikpCisJCXB0cisrOworCisJbCA9IHN0cnRvbChw dHIsICZlbmRwdHIsIDEwKTsKKwlpZiAocHRyID09IGVuZHB0cikKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJy bXNnKCJJbnZhbGlkIEFST1VORChYKSBvcGVyYXRvciEiKSkpOworCWVsc2UgaWYgKGVycm5vID09 IEVSQU5HRSB8fCBsID4gTUFYRU5UUllQT1MpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygiZGlzdGFu Y2UgaW4gQVJPVU5EIG9wZXJhdG9yIHNob3VsZCBub3QgYmUgZ3JlYXRlciB0aGFuICVkIiwKKwkJ CQkJCU1BWEVOVFJZUE9TKSkpOworCisJcHRyID0gZW5kcHRyOworCSpkaXN0YW5jZSA9IGw7CisJ d2hpbGUgKHRfaXNzcGFjZShwdHIpKQorCQlwdHIrKzsKKworCWlmICghdF9pc2VxKHB0ciwgJykn KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1F VEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJNaXNzaW5nICcpJyBpbiBBUk9VTkQoWCkgb3BlcmF0 b3IiKSkpOworCisJcmV0dXJuICsrcHRyOworfQorCisvKgogICogZ2V0IHRva2VuIGZyb20gcXVl cnkgc3RyaW5nCiAgKgogICogKm9wZXJhdG9yIGlzIGZpbGxlZCBpbiB3aXRoIE9QXyogd2hlbiBy ZXR1cm4gdmFsdWVzIGlzIFBUX09QUiwKQEAgLTMwMSw2ICszNjEsMTYgQEAgZ2V0dG9rZW5fcXVl cnkoVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAogCQkJCQkJcmV0dXJuIFBUX0VSUjsKIAkJCQkJ cmV0dXJuIFBUX09QUjsKIAkJCQl9CisJCQkJZWxzZSBpZiAoaGFzX3ByZWZpeChzdGF0ZS0+YnVm LCAiQVJPVU5EKCIpKQorCQkJCXsKKwkJCQkJc3RhdGUtPnN0YXRlID0gV0FJVE9QRVJBTkQ7CisJ CQkJCSpvcGVyYXRvciA9IE9QX0FST1VORDsKKwkJCQkJLyogd2VpZ2h0IHZhciBpcyB1c2VkIGFz IHN0b3JhZ2UgZm9yIGRpc3RhbmNlICovCisJCQkJCXN0YXRlLT5idWYgPSBwYXJzZV9hcm91bmRf b3BlcmF0b3Ioc3RhdGUtPmJ1Ziwgd2VpZ2h0KTsKKwkJCQkJaWYgKCp3ZWlnaHQgPCAwKQorCQkJ CQkJcmV0dXJuIFBUX0VSUjsKKwkJCQkJcmV0dXJuIFBUX09QUjsKKwkJCQl9CiAJCQkJZWxzZSBp ZiAodF9pc2VxKHN0YXRlLT5idWYsICcpJykpCiAJCQkJewogCQkJCQkoc3RhdGUtPmJ1ZikrKzsK QEAgLTMzNiwxMiArNDA2LDEzIEBAIHB1c2hPcGVyYXRvcihUU1F1ZXJ5UGFyc2VyU3RhdGUgc3Rh dGUsIGludDggb3BlciwgaW50MTYgZGlzdGFuY2UpCiB7CiAJUXVlcnlPcGVyYXRvciAqdG1wOwog Ci0JQXNzZXJ0KG9wZXIgPT0gT1BfTk9UIHx8IG9wZXIgPT0gT1BfQU5EIHx8IG9wZXIgPT0gT1Bf T1IgfHwgb3BlciA9PSBPUF9QSFJBU0UpOworCUFzc2VydChvcGVyID09IE9QX05PVCB8fCBvcGVy ID09IE9QX0FORCB8fCBvcGVyID09IE9QX09SCisJCXx8IG9wZXIgPT0gT1BfUEhSQVNFIHx8IG9w ZXIgPT0gT1BfQVJPVU5EKTsKIAogCXRtcCA9IChRdWVyeU9wZXJhdG9yICopIHBhbGxvYzAoc2l6 ZW9mKFF1ZXJ5T3BlcmF0b3IpKTsKIAl0bXAtPnR5cGUgPSBRSV9PUFI7CiAJdG1wLT5vcGVyID0g b3BlcjsKLQl0bXAtPmRpc3RhbmNlID0gKG9wZXIgPT0gT1BfUEhSQVNFKSA/IGRpc3RhbmNlIDog MDsKKwl0bXAtPmRpc3RhbmNlID0gKG9wZXIgPT0gT1BfUEhSQVNFIHx8IG9wZXIgPT0gT1BfQVJP VU5EKSA/IGRpc3RhbmNlIDogMDsKIAkvKiBsZWZ0IGlzIGZpbGxlZCBpbiBsYXRlciB3aXRoIGZp bmRvcHJuZCAqLwogCiAJc3RhdGUtPnBvbHN0ciA9IGxjb25zKHRtcCwgc3RhdGUtPnBvbHN0cik7 CkBAIC01NTUsNyArNjI2LDggQEAgZmluZG9wcm5kX3JlY3Vyc2UoUXVlcnlJdGVtICpwdHIsIHVp bnQzMiAqcG9zLCBpbnQgbm5vZGVzLCBib29sICpuZWVkY2xlYW51cCkKIAogCQkJQXNzZXJ0KGN1 cml0ZW0tPm9wZXIgPT0gT1BfQU5EIHx8CiAJCQkJICAgY3VyaXRlbS0+b3BlciA9PSBPUF9PUiB8 fAotCQkJCSAgIGN1cml0ZW0tPm9wZXIgPT0gT1BfUEhSQVNFKTsKKwkJCQkgICBjdXJpdGVtLT5v cGVyID09IE9QX1BIUkFTRSB8fAorCQkJCSAgIGN1cml0ZW0tPm9wZXIgPT0gT1BfQVJPVU5EKTsK IAogCQkJKCpwb3MpKys7CiAKQEAgLTg4NCw2ICs5NTYsOSBAQCBpbmZpeChJTkZJWCAqaW4sIGlu dCBwYXJlbnRQcmlvcml0eSwgYm9vbCByaWdodFBocmFzZU9wKQogCQkJCWVsc2UKIAkJCQkJc3By aW50Zihpbi0+Y3VyLCAiIDwtPiAlcyIsIG5ybS5idWYpOwogCQkJCWJyZWFrOworCQkJY2FzZSBP UF9BUk9VTkQ6CisJCQkJc25wcmludGYoaW4tPmN1ciwgMjU2LCAiIEFST1VORCglZCkgJXMiLCBk aXN0YW5jZSwgbnJtLmJ1Zik7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIE9QX05P VCBpcyBoYW5kbGVkIGluIGFib3ZlIGlmLWJyYW5jaCAqLwogCQkJCWVsb2coRVJST1IsICJ1bnJl Y29nbml6ZWQgb3BlcmF0b3IgdHlwZTogJWQiLCBvcCk7CkBAIC05NjYsNyArMTA0MSw4IEBAIHRz cXVlcnlzZW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJYnJlYWs7CiAJCQljYXNlIFFJX09QUjoK IAkJCQlwcV9zZW5kaW50OCgmYnVmLCBpdGVtLT5xb3BlcmF0b3Iub3Blcik7Ci0JCQkJaWYgKGl0 ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX1BIUkFTRSkKKwkJCQlpZiAoaXRlbS0+cW9wZXJhdG9y Lm9wZXIgPT0gT1BfUEhSQVNFCisJCQkJCXx8IGl0ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX0FS T1VORCkKIAkJCQkJcHFfc2VuZGludDE2KCZidWYsIGl0ZW0tPnFvcGVyYXRvci5kaXN0YW5jZSk7 CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgpAQCAtMTA2MiwxNCArMTEzOCwxNSBAQCB0c3F1ZXJ5 cmVjdihQR19GVU5DVElPTl9BUkdTKQogCQkJaW50OAkJb3BlcjsKIAogCQkJb3BlciA9IChpbnQ4 KSBwcV9nZXRtc2dpbnQoYnVmLCBzaXplb2YoaW50OCkpOwotCQkJaWYgKG9wZXIgIT0gT1BfTk9U ICYmIG9wZXIgIT0gT1BfT1IgJiYgb3BlciAhPSBPUF9BTkQgJiYgb3BlciAhPSBPUF9QSFJBU0Up CisJCQlpZiAob3BlciAhPSBPUF9OT1QgJiYgb3BlciAhPSBPUF9PUiAmJiBvcGVyICE9IE9QX0FO RAorCQkJCSYmIG9wZXIgIT0gT1BfUEhSQVNFICYmIG9wZXIgIT0gT1BfQVJPVU5EKQogCQkJCWVs b2coRVJST1IsICJpbnZhbGlkIHRzcXVlcnk6IHVucmVjb2duaXplZCBvcGVyYXRvciB0eXBlICVk IiwKIAkJCQkJIChpbnQpIG9wZXIpOwogCQkJaWYgKGkgPT0gc2l6ZSAtIDEpCiAJCQkJZWxvZyhF UlJPUiwgImludmFsaWQgcG9pbnRlciB0byByaWdodCBvcGVyYW5kIik7CiAKIAkJCWl0ZW0tPnFv cGVyYXRvci5vcGVyID0gb3BlcjsKLQkJCWlmIChvcGVyID09IE9QX1BIUkFTRSkKKwkJCWlmIChv cGVyID09IE9QX1BIUkFTRSB8fCBvcGVyID09IE9QX0FST1VORCkKIAkJCQlpdGVtLT5xb3BlcmF0 b3IuZGlzdGFuY2UgPSAoaW50MTYpIHBxX2dldG1zZ2ludChidWYsIHNpemVvZihpbnQxNikpOwog CQl9CiAJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X2Ns ZWFudXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X2NsZWFudXAuYwppbmRleCAz NTAxNzFjLi5lNjc5YmI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVy eV9jbGVhbnVwLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlfY2xlYW51cC5j CkBAIC0xNjEsNyArMTYxLDggQEAgY2xlYW5fTk9UX2ludHJlZShOT0RFICpub2RlKQogCQlOT0RF CSAgICpyZXMgPSBub2RlOwogCiAJCUFzc2VydChub2RlLT52YWxub2RlLT5xb3BlcmF0b3Iub3Bl ciA9PSBPUF9BTkQgfHwKLQkJCSAgIG5vZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVyID09IE9Q X1BIUkFTRSk7CisJCQkgICBub2RlLT52YWxub2RlLT5xb3BlcmF0b3Iub3BlciA9PSBPUF9QSFJB U0UgfHwKKwkJCSAgIG5vZGUtPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVyID09IE9QX0FST1VORCk7 CiAKIAkJbm9kZS0+bGVmdCA9IGNsZWFuX05PVF9pbnRyZWUobm9kZS0+bGVmdCk7CiAJCW5vZGUt PnJpZ2h0ID0gY2xlYW5fTk9UX2ludHJlZShub2RlLT5yaWdodCk7CkBAIC0yNzcsNyArMjc4LDgg QEAgY2xlYW5fc3RvcHdvcmRfaW50cmVlKE5PREUgKm5vZGUsIGludCAqbGFkZCwgaW50ICpyYWRk KQogCQlub2RlLT5yaWdodCA9IGNsZWFuX3N0b3B3b3JkX2ludHJlZShub2RlLT5yaWdodCwgJnJs YWRkLCAmcnJhZGQpOwogCiAJCS8qIENoZWNrIGlmIGN1cnJlbnQgbm9kZSBpcyBPUF9QSFJBU0Us IGdldCBpdHMgZGlzdGFuY2UgKi8KLQkJaXNwaHJhc2UgPSAobm9kZS0+dmFsbm9kZS0+cW9wZXJh dG9yLm9wZXIgPT0gT1BfUEhSQVNFKTsKKwkJaXNwaHJhc2UgPSAobm9kZS0+dmFsbm9kZS0+cW9w ZXJhdG9yLm9wZXIgPT0gT1BfUEhSQVNFIHx8CisJCQkJCW5vZGUtPnZhbG5vZGUtPnFvcGVyYXRv ci5vcGVyID09IE9QX0FST1VORCk7CiAJCW5kaXN0YW5jZSA9IGlzcGhyYXNlID8gbm9kZS0+dmFs bm9kZS0+cW9wZXJhdG9yLmRpc3RhbmNlIDogMDsKIAogCQlpZiAobm9kZS0+bGVmdCA9PSBOVUxM ICYmIG5vZGUtPnJpZ2h0ID09IE5VTEwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvdHNxdWVyeV9vcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlfb3AuYwppbmRl eCA3NTVjM2U5Li43Y2Y5YjhhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNx dWVyeV9vcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X29wLmMKQEAgLTM3 LDcgKzM3LDcgQEAgam9pbl90c3F1ZXJpZXMoVFNRdWVyeSBhLCBUU1F1ZXJ5IGIsIGludDggb3Bl cmF0b3IsIHVpbnQxNiBkaXN0YW5jZSkKIAlyZXMtPnZhbG5vZGUgPSAoUXVlcnlJdGVtICopIHBh bGxvYzAoc2l6ZW9mKFF1ZXJ5SXRlbSkpOwogCXJlcy0+dmFsbm9kZS0+dHlwZSA9IFFJX09QUjsK IAlyZXMtPnZhbG5vZGUtPnFvcGVyYXRvci5vcGVyID0gb3BlcmF0b3I7Ci0JaWYgKG9wZXJhdG9y ID09IE9QX1BIUkFTRSkKKwlpZiAob3BlcmF0b3IgPT0gT1BfUEhSQVNFIHx8IG9wZXJhdG9yID09 IE9QX0FST1VORCkKIAkJcmVzLT52YWxub2RlLT5xb3BlcmF0b3IuZGlzdGFuY2UgPSBkaXN0YW5j ZTsKIAogCXJlcy0+Y2hpbGQgPSAoUVROb2RlICoqKSBwYWxsb2MwKHNpemVvZihRVE5vZGUgKikg KiAyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X3V0aWwuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5X3V0aWwuYwppbmRleCA5NzFiYjgxLi41NDhh ODQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVyeV91dGlsLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlfdXRpbC5jCkBAIC0xMjEsNyArMTIxLDcg QEAgUVROb2RlQ29tcGFyZShRVE5vZGUgKmFuLCBRVE5vZGUgKmJuKQogCQkJCQlyZXR1cm4gcmVz OwogCQl9CiAKLQkJaWYgKGFvLT5vcGVyID09IE9QX1BIUkFTRSAmJiBhby0+ZGlzdGFuY2UgIT0g Ym8tPmRpc3RhbmNlKQorCQlpZiAoKGFvLT5vcGVyID09IE9QX1BIUkFTRSB8fCBhby0+b3BlciA9 PSBPUF9BUk9VTkQpICYmIGFvLT5kaXN0YW5jZSAhPSBiby0+ZGlzdGFuY2UpCiAJCQlyZXR1cm4g KGFvLT5kaXN0YW5jZSA+IGJvLT5kaXN0YW5jZSkgPyAtMSA6IDE7CiAKIAkJcmV0dXJuIDA7CkBA IC0xNzEsNyArMTcxLDggQEAgUVROU29ydChRVE5vZGUgKmluKQogCiAJZm9yIChpID0gMDsgaSA8 IGluLT5uY2hpbGQ7IGkrKykKIAkJUVROU29ydChpbi0+Y2hpbGRbaV0pOwotCWlmIChpbi0+bmNo aWxkID4gMSAmJiBpbi0+dmFsbm9kZS0+cW9wZXJhdG9yLm9wZXIgIT0gT1BfUEhSQVNFKQorCWlm IChpbi0+bmNoaWxkID4gMSAmJiBpbi0+dmFsbm9kZS0+cW9wZXJhdG9yLm9wZXIgIT0gT1BfUEhS QVNFCisJCSYmIGluLT52YWxub2RlLT5xb3BlcmF0b3Iub3BlciAhPSBPUF9BUk9VTkQpCiAJCXFz b3J0KCh2b2lkICopIGluLT5jaGlsZCwgaW4tPm5jaGlsZCwgc2l6ZW9mKFFUTm9kZSAqKSwgY21w UVROKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcmFuay5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcmFuay5jCmluZGV4IDQ1NzdiY2MuLmI2MmIxNGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3JhbmsuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdHNyYW5rLmMKQEAgLTM2Niw3ICszNjYsOCBAQCBjYWxjX3JhbmsoY29uc3Qg ZmxvYXQgKncsIFRTVmVjdG9yIHQsIFRTUXVlcnkgcSwgaW50MzIgbWV0aG9kKQogCiAJLyogWFhY OiBXaGF0IGFib3V0IE5PVD8gKi8KIAlyZXMgPSAoaXRlbS0+dHlwZSA9PSBRSV9PUFIgJiYgKGl0 ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX0FORCB8fAotCQkJCQkJCQkJaXRlbS0+cW9wZXJhdG9y Lm9wZXIgPT0gT1BfUEhSQVNFKSkgPworCQkJCQkJCQkJaXRlbS0+cW9wZXJhdG9yLm9wZXIgPT0g T1BfUEhSQVNFIHx8CisJCQkJCQkJCQlpdGVtLT5xb3BlcmF0b3Iub3BlciA9PSBPUF9BUk9VTkQp KSA/CiAJCWNhbGNfcmFua19hbmQodywgdCwgcSkgOgogCQljYWxjX3Jhbmtfb3IodywgdCwgcSk7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3ZlY3Rvcl9vcC5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX29wLmMKaW5kZXggODIyNTIwMi4uY2U3ZWUyNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX29wLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX29wLmMKQEAgLTE0MjksNiArMTQyOSw3IEBAIGNo ZWNrY29uZGl0aW9uX3N0cih2b2lkICpjaGVja3ZhbCwgUXVlcnlPcGVyYW5kICp2YWwsIEV4ZWNQ aHJhc2VEYXRhICpkYXRhKQogI2RlZmluZSBUU1BPX0xfT05MWQkJMHgwMQkvKiBlbWl0IHBvc2l0 aW9ucyBhcHBlYXJpbmcgb25seSBpbiBMICovCiAjZGVmaW5lIFRTUE9fUl9PTkxZCQkweDAyCS8q IGVtaXQgcG9zaXRpb25zIGFwcGVhcmluZyBvbmx5IGluIFIgKi8KICNkZWZpbmUgVFNQT19CT1RI CQkweDA0CS8qIGVtaXQgcG9zaXRpb25zIGFwcGVhcmluZyBpbiBib3RoIEwmUiAqLworI2RlZmlu ZSBUU1BPX05PVF9FWEFDCTB4MDgJLyogbm90IGV4YWN0IGRpc3RhbmNlIGZvciBBUk9VTkQoWCkg Ki8KIAogc3RhdGljIGJvb2wKIFRTX3BocmFzZV9vdXRwdXQoRXhlY1BocmFzZURhdGEgKmRhdGEs CkBAIC0xNDczLDggKzE0NzQsMTggQEAgVFNfcGhyYXNlX291dHB1dChFeGVjUGhyYXNlRGF0YSAq ZGF0YSwKIAkJCVJwb3MgPSBJTlRfTUFYOwogCQl9CiAKKwkJLyogUHJvY2Vzc2luZyBPUF9BUk9V TkQgKi8KKwkJaWYgKChlbWl0ICYgVFNQT19OT1RfRVhBQykgJiYKKwkJCUxwb3MgLSBScG9zID49 IDAgJiYKKwkJCUxwb3MgLSBScG9zIDw9IChMb2Zmc2V0ICsgUm9mZnNldCkgKiAyIC0gUmRhdGEt PndpZHRoICsgTGRhdGEtPndpZHRoKQorCQl7CisJCQlpZiAoZW1pdCAmIFRTUE9fQk9USCkKKwkJ CQlvdXRwdXRfcG9zID0gUnBvczsKKwkJCUxpbmRleCsrOworCQkJUmluZGV4Kys7CisJCX0KIAkJ LyogTWVyZ2Utam9pbiB0aGUgdHdvIGlucHV0IGxpc3RzICovCi0JCWlmIChMcG9zIDwgUnBvcykK KwkJZWxzZSBpZiAoTHBvcyA8IFJwb3MpCiAJCXsKIAkJCS8qIExwb3MgaXMgbm90IG1hdGNoZWQg aW4gUmRhdGEsIHNob3VsZCB3ZSBvdXRwdXQgaXQ/ICovCiAJCQlpZiAoZW1pdCAmIFRTUE9fTF9P TkxZKQpAQCAtMTYyNSw2ICsxNjM2LDcgQEAgVFNfcGhyYXNlX2V4ZWN1dGUoUXVlcnlJdGVtICpj dXJpdGVtLCB2b2lkICphcmcsIHVpbnQzMiBmbGFncywKIAkJCX0KIAogCQljYXNlIE9QX1BIUkFT RToKKwkJY2FzZSBPUF9BUk9VTkQ6CiAJCWNhc2UgT1BfQU5EOgogCQkJbWVtc2V0KCZMZGF0YSwg MCwgc2l6ZW9mKExkYXRhKSk7CiAJCQltZW1zZXQoJlJkYXRhLCAwLCBzaXplb2YoUmRhdGEpKTsK QEAgLTE2NDcsNyArMTY1OSw3IEBAIFRTX3BocmFzZV9leGVjdXRlKFF1ZXJ5SXRlbSAqY3VyaXRl bSwgdm9pZCAqYXJnLCB1aW50MzIgZmxhZ3MsCiAJCQkJKFJkYXRhLm5wb3MgPT0gMCAmJiAhUmRh dGEubmVnYXRlKSkKIAkJCQlyZXR1cm4gKGZsYWdzICYgVFNfRVhFQ19QSFJBU0VfTk9fUE9TKSA/ IHRydWUgOiBmYWxzZTsKIAotCQkJaWYgKGN1cml0ZW0tPnFvcGVyYXRvci5vcGVyID09IE9QX1BI UkFTRSkKKwkJCWlmIChjdXJpdGVtLT5xb3BlcmF0b3Iub3BlciA9PSBPUF9QSFJBU0UgfHwgY3Vy aXRlbS0+cW9wZXJhdG9yLm9wZXIgPT0gT1BfQVJPVU5EKQogCQkJewogCQkJCS8qCiAJCQkJICog Q29tcHV0ZSBMb2Zmc2V0IGFuZCBSb2Zmc2V0IHN1aXRhYmxlIGZvciBwaHJhc2UgbWF0Y2gsIGFu ZApAQCAtMTcwMyw3ICsxNzE1LDggQEAgVFNfcGhyYXNlX2V4ZWN1dGUoUXVlcnlJdGVtICpjdXJp dGVtLCB2b2lkICphcmcsIHVpbnQzMiBmbGFncywKIAkJCXsKIAkJCQkvKiBzdHJhaWdodCBBTkQg Ki8KIAkJCQlyZXR1cm4gVFNfcGhyYXNlX291dHB1dChkYXRhLCAmTGRhdGEsICZSZGF0YSwKLQkJ CQkJCQkJCQlUU1BPX0JPVEgsCisJCQkJCQkJCQkJVFNQT19CT1RIIHwKKwkJCQkJCQkJCQkoY3Vy aXRlbS0+cW9wZXJhdG9yLm9wZXIgPT0gT1BfQVJPVU5EID8gVFNQT19OT1RfRVhBQyA6IDApLAog CQkJCQkJCQkJCUxvZmZzZXQsIFJvZmZzZXQsCiAJCQkJCQkJCQkJTWluKExkYXRhLm5wb3MsIFJk YXRhLm5wb3MpKTsKIAkJCX0KQEAgLTE4NDMsNiArMTg1Niw3IEBAIFRTX2V4ZWN1dGUoUXVlcnlJ dGVtICpjdXJpdGVtLCB2b2lkICphcmcsIHVpbnQzMiBmbGFncywKIAkJCQlyZXR1cm4gVFNfZXhl Y3V0ZShjdXJpdGVtICsgMSwgYXJnLCBmbGFncywgY2hrY29uZCk7CiAKIAkJY2FzZSBPUF9QSFJB U0U6CisJCWNhc2UgT1BfQVJPVU5EOgogCQkJcmV0dXJuIFRTX3BocmFzZV9leGVjdXRlKGN1cml0 ZW0sIGFyZywgZmxhZ3MsIGNoa2NvbmQsIE5VTEwpOwogCiAJCWRlZmF1bHQ6CkBAIC0xODgyLDkg KzE4OTYsMTAgQEAgdHNxdWVyeV9yZXF1aXJlc19tYXRjaChRdWVyeUl0ZW0gKmN1cml0ZW0pCiAJ CQlyZXR1cm4gZmFsc2U7CiAKIAkJY2FzZSBPUF9QSFJBU0U6CisJCWNhc2UgT1BfQVJPVU5EOgog CiAJCQkvKgotCQkJICogVHJlYXQgT1BfUEhSQVNFIGFzIE9QX0FORCBoZXJlCisJCQkgKiBUcmVh dCBPUF9QSFJBU0UgYW5kIE9QX0FST1VORCBhcyBPUF9BTkQgaGVyZQogCQkJICovCiAJCWNhc2Ug T1BfQU5EOgogCQkJLyogSWYgZWl0aGVyIHNpZGUgcmVxdWlyZXMgYSBtYXRjaCwgd2UncmUgZ29v ZCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdHNlYXJjaC90c190eXBlLmggYi9zcmMvaW5j bHVkZS90c2VhcmNoL3RzX3R5cGUuaAppbmRleCAzMGQ3YzRiLi5lZTFhMTg0IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS90c2VhcmNoL3RzX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS90c2VhcmNo L3RzX3R5cGUuaApAQCAtMTY2LDggKzE2Niw5IEBAIHR5cGVkZWYgc3RydWN0CiAjZGVmaW5lIE9Q X05PVAkJCTEKICNkZWZpbmUgT1BfQU5ECQkJMgogI2RlZmluZSBPUF9PUgkJCTMKLSNkZWZpbmUg T1BfUEhSQVNFCQk0CQkvKiBoaWdoZXN0IGNvZGUsIHRzcXVlcnlfY2xlYW51cC5jICovCi0jZGVm aW5lIE9QX0NPVU5UCQk0CisjZGVmaW5lIE9QX1BIUkFTRQkJNAorI2RlZmluZSBPUF9BUk9VTkQJ CTUJCS8qIGhpZ2hlc3QgY29kZSwgdHNxdWVyeV9jbGVhbnVwLmMgKi8KKyNkZWZpbmUgT1BfQ09V TlQJCTUKIAogZXh0ZXJuIGNvbnN0IGludCB0c2VhcmNoX29wX3ByaW9yaXR5W09QX0NPVU5UXTsK IAo= --=_98d54c165b0f78c39d2e9a96b3f3bd01 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=queryto_tsquery4_02_queryto_tsquery.patch Content-Disposition: attachment; filename=queryto_tsquery4_02_queryto_tsquery.patch; size=19308 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdG9fdHNhbnkuYyBiL3NyYy9iYWNrZW5k L3RzZWFyY2gvdG9fdHNhbnkuYwppbmRleCBjZjU1ZTM5Li4wZjI2ZDJkIDEwMDY0NAotLS0gYS9z 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 CQkJCQkJCVBvaW50ZXJHZXREYXR1bShpbikpKTsKIH0KKworRGF0dW0KK3dlYnNlYXJjaF90b190 c3F1ZXJ5X2J5aWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0ZXh0CSAgICppbiA9IFBHX0dFVEFS R19URVhUX1BQKDEpOworCU1vcnBoT3BhcXVlCWRhdGE7CisJVFNRdWVyeQkJcXVlcnkgPSBOVUxM OworCisJZGF0YS5jZmdfaWQgPSBQR19HRVRBUkdfT0lEKDApOworCisJZGF0YS5xb3BlcmF0b3Ig PSBPUF9BTkQ7CisKKwlxdWVyeSA9IHBhcnNlX3RzcXVlcnkodGV4dF90b19jc3RyaW5nKGluKSwK KwkJCQkJCSAgcHVzaHZhbF9tb3JwaCwKKwkJCQkJCSAgUG9pbnRlckdldERhdHVtKCZkYXRhKSwK KwkJCQkJCSAgZmFsc2UsCisJCQkJCQkgIHRydWUpOworCisJUEdfUkVUVVJOX1RTUVVFUlkocXVl cnkpOworfQorCitEYXR1bQord2Vic2VhcmNoX3RvX3RzcXVlcnkoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwl0ZXh0CSAgICppbiA9IFBHX0dFVEFSR19URVhUX1BQKDApOworCU9pZAkJCWNmZ0lkOwor CisJY2ZnSWQgPSBnZXRUU0N1cnJlbnRDb25maWcodHJ1ZSk7CisJUEdfUkVUVVJOX0RBVFVNKERp cmVjdEZ1bmN0aW9uQ2FsbDIod2Vic2VhcmNoX3RvX3RzcXVlcnlfYnlpZCwKKwkJCQkJCQkJCQlP YmplY3RJZEdldERhdHVtKGNmZ0lkKSwKKwkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oaW4pKSk7 CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdHNxdWVyeS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnkuYwpp bmRleCA5YzA0MzkxLi5hNGRmOTBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv dHNxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5LmMKQEAgLTYzLDYg KzYzLDcgQEAgc3RydWN0IFRTUXVlcnlQYXJzZXJTdGF0ZURhdGEKICNkZWZpbmUgV0FJVE9QRVJB VE9SCQkyCiAjZGVmaW5lIFdBSVRGSVJTVE9QRVJBTkQJMwogI2RlZmluZSBXQUlUU0lOR0xFT1BF UkFORAk0CisjZGVmaW5lIFdBSVRRVU9URQkJCTUKIAogLyoKICAqIHN1YnJvdXRpbmUgdG8gcGFy c2UgdGhlIG1vZGlmaWVycyAod2VpZ2h0IGFuZCBwcmVmaXggZmxhZyBjdXJyZW50bHkpCkBAIC0y ODEsNyArMjgyLDggQEAgcGFyc2VfYXJvdW5kX29wZXJhdG9yKGNoYXIgKmJ1ZiwgaW50MTYgKmRp c3RhbmNlKQogc3RhdGljIHRzX3Rva2VudHlwZQogZ2V0dG9rZW5fcXVlcnkoVFNRdWVyeVBhcnNl clN0YXRlIHN0YXRlLAogCQkJICAgaW50OCAqb3BlcmF0b3IsCi0JCQkgICBpbnQgKmxlbnZhbCwg Y2hhciAqKnN0cnZhbCwgaW50MTYgKndlaWdodCwgYm9vbCAqcHJlZml4KQorCQkJICAgaW50ICps ZW52YWwsIGNoYXIgKipzdHJ2YWwsIGludDE2ICp3ZWlnaHQsIGJvb2wgKnByZWZpeCwKKwkJCSAg IGJvb2wgaXNxdWVyeSkKIHsKIAkqd2VpZ2h0ID0gMDsKIAkqcHJlZml4ID0gZmFsc2U7CkBAIC0y OTIsNyArMjk0LDggQEAgZ2V0dG9rZW5fcXVlcnkoVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAog CQl7CiAJCQljYXNlIFdBSVRGSVJTVE9QRVJBTkQ6CiAJCQljYXNlIFdBSVRPUEVSQU5EOgotCQkJ CWlmICh0X2lzZXEoc3RhdGUtPmJ1ZiwgJyEnKSkKKwkJCQlpZiAodF9pc2VxKHN0YXRlLT5idWYs ICchJykgfHwKKwkJCQkJKGlzcXVlcnkgJiYgdF9pc2VxKHN0YXRlLT5idWYsICctJykpKQogCQkJ CXsKIAkJCQkJKHN0YXRlLT5idWYpKys7IC8qIGNhbiBzYWZlbHkgKyssIHRfaXNlcSBndWFyYW50 ZWUgdGhhdAogCQkJCQkJCQkJICogcGdfbWJsZW4oKT09MSAqLwpAQCAtMzE0LDYgKzMxNywyMCBA QCBnZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJCQkJIGVycm1z Zygic3ludGF4IGVycm9yIGluIHRzcXVlcnk6IFwiJXNcIiIsCiAJCQkJCQkJCQlzdGF0ZS0+YnVm ZmVyKSkpOwogCQkJCX0KKwkJCQllbHNlIGlmIChpc3F1ZXJ5ICYmIHRfaXNlcShzdGF0ZS0+YnVm LCAnIicpKQorCQkJCXsKKwkJCQkJY2hhcgkgICAqcXVvdGUgPSBzdHJjaHIoc3RhdGUtPmJ1ZiAr IDEsICciJyk7CisJCQkJCWlmIChxdW90ZSA9PSBOVUxMKQorCQkJCQl7CisJCQkJCQlzdGF0ZS0+ YnVmKys7CisJCQkJCQljb250aW51ZTsKKwkJCQkJfQorCQkJCQkqc3RydmFsID0gc3RhdGUtPmJ1 ZiArIDE7CisJCQkJCSpsZW52YWwgPSBxdW90ZSAtIHN0YXRlLT5idWYgLSAxOworCQkJCQlzdGF0 ZS0+YnVmID0gcXVvdGUgKyAxOworCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUUVVPVEU7CisJCQkJ CXJldHVybiBQVF9WQUw7CisJCQkJfQogCQkJCWVsc2UgaWYgKCF0X2lzc3BhY2Uoc3RhdGUtPmJ1 ZikpCiAJCQkJewogCQkJCQkvKgpAQCAtMzUxLDYgKzM2OCwxMyBAQCBnZXR0b2tlbl9xdWVyeShU U1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJCShzdGF0ZS0+YnVmKSsrOwogCQkJCQlyZXR1 cm4gUFRfT1BSOwogCQkJCX0KKwkJCQllbHNlIGlmIChpc3F1ZXJ5ICYmIGhhc19wcmVmaXgoc3Rh dGUtPmJ1ZiwgIk9SICIpKQorCQkJCXsKKwkJCQkJc3RhdGUtPnN0YXRlID0gV0FJVE9QRVJBTkQ7 CisJCQkJCSpvcGVyYXRvciA9IE9QX09SOworCQkJCQkoc3RhdGUtPmJ1ZikgKz0gMzsKKwkJCQkJ cmV0dXJuIFBUX09QUjsKKwkJCQl9CiAJCQkJZWxzZSBpZiAodF9pc2VxKHN0YXRlLT5idWYsICc8 JykpCiAJCQkJewogCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsKQEAgLTM2MSw3ICsz ODUsNyBAQCBnZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJCQly ZXR1cm4gUFRfRVJSOwogCQkJCQlyZXR1cm4gUFRfT1BSOwogCQkJCX0KLQkJCQllbHNlIGlmICho YXNfcHJlZml4KHN0YXRlLT5idWYsICJBUk9VTkQoIikpCisJCQkJZWxzZSBpZiAoaXNxdWVyeSAm JiBoYXNfcHJlZml4KHN0YXRlLT5idWYsICJBUk9VTkQoIikpCiAJCQkJewogCQkJCQlzdGF0ZS0+ c3RhdGUgPSBXQUlUT1BFUkFORDsKIAkJCQkJKm9wZXJhdG9yID0gT1BfQVJPVU5EOwpAQCAtMzc3 LDggKzQwMSwyMyBAQCBnZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJ CQkJCXN0YXRlLT5jb3VudC0tOwogCQkJCQlyZXR1cm4gKHN0YXRlLT5jb3VudCA8IDApID8gUFRf RVJSIDogUFRfQ0xPU0U7CiAJCQkJfQorCQkJCWVsc2UgaWYgKHRfaXNlcShzdGF0ZS0+YnVmLCAn KCcpKQorCQkJCXsKKwkJCQkJKm9wZXJhdG9yID0gT1BfQU5EOworCQkJCQlzdGF0ZS0+c3RhdGUg PSBXQUlUT1BFUkFORDsKKwkJCQkJcmV0dXJuIFBUX09QUjsKKwkJCQl9CiAJCQkJZWxzZSBpZiAo KihzdGF0ZS0+YnVmKSA9PSAnXDAnKQogCQkJCQlyZXR1cm4gKHN0YXRlLT5jb3VudCkgPyBQVF9F UlIgOiBQVF9FTkQ7CisJCQkJZWxzZSBpZiAoaXNxdWVyeSAmJgorCQkJCQkJCSh0X2lzYWxwaGEo c3RhdGUtPmJ1ZikgfHwgdF9pc2VxKHN0YXRlLT5idWYsICchJykKKwkJCQkJCQkJCQkJCSAgIHx8 IHRfaXNlcShzdGF0ZS0+YnVmLCAnLScpCisJCQkJCQkJCQkJCQkgICB8fCB0X2lzZXEoc3RhdGUt PmJ1ZiwgJyInKSkpCisJCQkJeworCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsKKwkJ CQkJKm9wZXJhdG9yID0gT1BfQU5EOworCQkJCQlyZXR1cm4gUFRfT1BSOworCQkJCX0KIAkJCQll bHNlIGlmICghdF9pc3NwYWNlKHN0YXRlLT5idWYpKQogCQkJCQlyZXR1cm4gUFRfRVJSOwogCQkJ CWJyZWFrOwpAQCAtMzkwLDYgKzQyOSw5IEBAIGdldHRva2VuX3F1ZXJ5KFRTUXVlcnlQYXJzZXJT dGF0ZSBzdGF0ZSwKIAkJCQlzdGF0ZS0+YnVmICs9IHN0cmxlbihzdGF0ZS0+YnVmKTsKIAkJCQlz dGF0ZS0+Y291bnQrKzsKIAkJCQlyZXR1cm4gUFRfVkFMOworCQkJY2FzZSBXQUlUUVVPVEU6CisJ CQkJc3RhdGUtPnN0YXRlID0gV0FJVE9QRVJBVE9SOworCQkJCWNvbnRpbnVlOwogCQkJZGVmYXVs dDoKIAkJCQlyZXR1cm4gUFRfRVJSOwogCQkJCWJyZWFrOwpAQCAtNTQ2LDcgKzU4OCw4IEBAIGNs ZWFuT3BTdGFjayhUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiBzdGF0aWMgdm9pZAogbWFrZXBv bChUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCVB1c2hGdW5jdGlvbiBwdXNodmFsLAotCQlE YXR1bSBvcGFxdWUpCisJCURhdHVtIG9wYXF1ZSwKKwkJYm9vbCBpc3F1ZXJ5KQogewogCWludDgJ CW9wZXJhdG9yID0gMDsKIAl0c190b2tlbnR5cGUgdHlwZTsKQEAgLTU2MCwxOSArNjAzLDIwIEBA IG1ha2Vwb2woVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAogCS8qIHNpbmNlIHRoaXMgZnVuY3Rp b24gcmVjdXJzZXMsIGl0IGNvdWxkIGJlIGRyaXZlbiB0byBzdGFjayBvdmVyZmxvdyAqLwogCWNo ZWNrX3N0YWNrX2RlcHRoKCk7CiAKLQl3aGlsZSAoKHR5cGUgPSBnZXR0b2tlbl9xdWVyeShzdGF0 ZSwgJm9wZXJhdG9yLCAmbGVudmFsLCAmc3RydmFsLCAmd2VpZ2h0LCAmcHJlZml4KSkgIT0gUFRf RU5EKQorCXdoaWxlICgodHlwZSA9IGdldHRva2VuX3F1ZXJ5KHN0YXRlLCAmb3BlcmF0b3IsICZs ZW52YWwsICZzdHJ2YWwsICZ3ZWlnaHQsCisJCQkJCQkJCSAgJnByZWZpeCwgaXNxdWVyeSkpICE9 IFBUX0VORCkKIAl7CiAJCXN3aXRjaCAodHlwZSkKIAkJewogCQkJY2FzZSBQVF9WQUw6Ci0JCQkJ cHVzaHZhbChvcGFxdWUsIHN0YXRlLCBzdHJ2YWwsIGxlbnZhbCwgd2VpZ2h0LCBwcmVmaXgpOwor CQkJCXB1c2h2YWwob3BhcXVlLCBzdGF0ZSwgc3RydmFsLCBsZW52YWwsIHdlaWdodCwgcHJlZml4 LCBzdGF0ZS0+c3RhdGUgPT0gV0FJVFFVT1RFKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFRfT1BS OgogCQkJCWNsZWFuT3BTdGFjayhzdGF0ZSwgb3BzdGFjaywgJmxlbnN0YWNrLCBvcGVyYXRvcik7 CiAJCQkJcHVzaE9wU3RhY2sob3BzdGFjaywgJmxlbnN0YWNrLCBvcGVyYXRvciwgd2VpZ2h0KTsK IAkJCQlicmVhazsKIAkJCWNhc2UgUFRfT1BFTjoKLQkJCQltYWtlcG9sKHN0YXRlLCBwdXNodmFs LCBvcGFxdWUpOworCQkJCW1ha2Vwb2woc3RhdGUsIHB1c2h2YWwsIG9wYXF1ZSwgaXNxdWVyeSk7 CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBUX0NMT1NFOgogCQkJCWNsZWFuT3BTdGFjayhzdGF0ZSwg b3BzdGFjaywgJmxlbnN0YWNrLCBPUF9PUiAvKiBsb3dlc3QgKi8gKTsKQEAgLTY3Nyw3ICs3MjEs OCBAQCBUU1F1ZXJ5CiBwYXJzZV90c3F1ZXJ5KGNoYXIgKmJ1ZiwKIAkJCSAgUHVzaEZ1bmN0aW9u IHB1c2h2YWwsCiAJCQkgIERhdHVtIG9wYXF1ZSwKLQkJCSAgYm9vbCBpc3BsYWluKQorCQkJICBi b29sIGlzcGxhaW4sCisJCQkgIGJvb2wgaXNxdWVyeSkKIHsKIAlzdHJ1Y3QgVFNRdWVyeVBhcnNl clN0YXRlRGF0YSBzdGF0ZTsKIAlpbnQJCQlpOwpAQCAtNzA0LDcgKzc0OSw3IEBAIHBhcnNlX3Rz cXVlcnkoY2hhciAqYnVmLAogCSooc3RhdGUuY3Vyb3ApID0gJ1wwJzsKIAogCS8qIHBhcnNlIHF1 ZXJ5ICYgbWFrZSBwb2xpc2ggbm90YXRpb24gKHBvc3RmaXgsIGJ1dCBpbiByZXZlcnNlIG9yZGVy KSAqLwotCW1ha2Vwb2woJnN0YXRlLCBwdXNodmFsLCBvcGFxdWUpOworCW1ha2Vwb2woJnN0YXRl LCBwdXNodmFsLCBvcGFxdWUsIGlzcXVlcnkpOwogCiAJY2xvc2VfdHN2ZWN0b3JfcGFyc2VyKHN0 YXRlLnZhbHN0YXRlKTsKIApAQCAtNzc1LDcgKzgyMCw3IEBAIHBhcnNlX3RzcXVlcnkoY2hhciAq YnVmLAogCiBzdGF0aWMgdm9pZAogcHVzaHZhbF9hc2lzKERhdHVtIG9wYXF1ZSwgVFNRdWVyeVBh cnNlclN0YXRlIHN0YXRlLCBjaGFyICpzdHJ2YWwsIGludCBsZW52YWwsCi0JCQkgaW50MTYgd2Vp Z2h0LCBib29sIHByZWZpeCkKKwkJCSBpbnQxNiB3ZWlnaHQsIGJvb2wgcHJlZml4LCBib29sIGlz cGhyYXNlKQogewogCXB1c2hWYWx1ZShzdGF0ZSwgc3RydmFsLCBsZW52YWwsIHdlaWdodCwgcHJl Zml4KTsKIH0KQEAgLTc4OCw3ICs4MzMsNyBAQCB0c3F1ZXJ5aW4oUEdfRlVOQ1RJT05fQVJHUykK IHsKIAljaGFyCSAgICppbiA9IFBHX0dFVEFSR19DU1RSSU5HKDApOwogCi0JUEdfUkVUVVJOX1RT UVVFUlkocGFyc2VfdHNxdWVyeShpbiwgcHVzaHZhbF9hc2lzLCBQb2ludGVyR2V0RGF0dW0oTlVM TCksIGZhbHNlKSk7CisJUEdfUkVUVVJOX1RTUVVFUlkocGFyc2VfdHNxdWVyeShpbiwgcHVzaHZh bF9hc2lzLCBQb2ludGVyR2V0RGF0dW0oTlVMTCksIGZhbHNlLCBmYWxzZSkpOwogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuaAppbmRleCBjOTY5Mzc1Li4zMTEwNTAzIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuaApAQCAtNDkwNiw2ICs0OTA2LDggQEAgREFUQShpbnNlcnQgT0lEID0gMzc0NiAoICB0b190 c3F1ZXJ5CQlQR05TUCBQR1VJRCAxMiAxMDAgMCAwIDAgZiBmIGYgZiB0IGYgaSBzIDIKIERFU0NS KCJtYWtlIHRzcXVlcnkiKTsKIERBVEEoaW5zZXJ0IE9JRCA9IDM3NDcgKCAgcGxhaW50b190c3F1 ZXJ5CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBpIHMgMiAwIDM2MTUgIjM3 MzQgMjUiIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gcGxhaW50b190c3F1ZXJ5 X2J5aWQgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVl cnkiKTsKK0RBVEEoaW5zZXJ0IE9JRCA9IDg4ODkgKCAgd2Vic2VhcmNoX3RvX3RzcXVlcnkJUEdO U1AgUEdVSUQgMTIgMTAwIDAgMCAwIGYgZiBmIGYgdCBmIGkgcyAyIDAgMzYxNSAiMzczNCAyNSIg X251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyB3ZWJzZWFyY2hfdG9fdHNxdWVyeV9i eWlkIF9udWxsXyBfbnVsbF8gX251bGxfICkpOworREVTQ1IoInRyYW5zZm9ybSB0byB0c3F1ZXJ5 Iik7CiBEQVRBKGluc2VydCBPSUQgPSA1MDA2ICggIHBocmFzZXRvX3RzcXVlcnkJUEdOU1AgUEdV SUQgMTIgMTAwIDAgMCAwIGYgZiBmIGYgdCBmIGkgcyAyIDAgMzYxNSAiMzczNCAyNSIgX251bGxf IF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBwaHJhc2V0b190c3F1ZXJ5X2J5aWQgX251bGxf IF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVlcnkiKTsKIERBVEEo aW5zZXJ0IE9JRCA9IDM3NDkgKCAgdG9fdHN2ZWN0b3IJCVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAg MCBmIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTQgIjI1IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVs bF8gX251bGxfIHRvX3RzdmVjdG9yIF9udWxsXyBfbnVsbF8gX251bGxfICkpOwpAQCAtNDkxNCw2 ICs0OTE2LDggQEAgREFUQShpbnNlcnQgT0lEID0gMzc1MCAoICB0b190c3F1ZXJ5CQlQR05TUCBQ R1VJRCAxMiAxMDAgMCAwIDAgZiBmIGYgZiB0IGYgcyBzIDEKIERFU0NSKCJtYWtlIHRzcXVlcnki KTsKIERBVEEoaW5zZXJ0IE9JRCA9IDM3NTEgKCAgcGxhaW50b190c3F1ZXJ5CVBHTlNQIFBHVUlE IDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTUgIjI1IiBfbnVsbF8gX251bGxf IF9udWxsXyBfbnVsbF8gX251bGxfIHBsYWludG9fdHNxdWVyeSBfbnVsbF8gX251bGxfIF9udWxs XyApKTsKIERFU0NSKCJ0cmFuc2Zvcm0gdG8gdHNxdWVyeSIpOworREFUQShpbnNlcnQgT0lEID0g ODg5MCAoICB3ZWJzZWFyY2hfdG9fdHNxdWVyeQlQR05TUCBQR1VJRCAxMiAxMDAgMCAwIDAgZiBm IGYgZiB0IGYgcyBzIDEgMCAzNjE1ICIyNSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9u dWxsXyB3ZWJzZWFyY2hfdG9fdHNxdWVyeSBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKK0RFU0NS KCJ0cmFuc2Zvcm0gdG8gdHNxdWVyeSIpOwogREFUQShpbnNlcnQgT0lEID0gNTAwMSAoICBwaHJh c2V0b190c3F1ZXJ5CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBzIHMgMSAw IDM2MTUgIjI1IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIHBocmFzZXRvX3Rz cXVlcnkgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVl cnkiKTsKIERBVEEoaW5zZXJ0IE9JRCA9IDQyMDkgKCAgdG9fdHN2ZWN0b3IJCVBHTlNQIFBHVUlE IDEyIDEwMCAwIDAgMCBmIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTQgIjM4MDIiIF9udWxsXyBfbnVs bF8gX251bGxfIF9udWxsXyBfbnVsbF8ganNvbmJfdG9fdHN2ZWN0b3IgX251bGxfIF9udWxsXyBf bnVsbF8gKSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90c2VhcmNoL3RzX3V0aWxzLmggYi9z cmMvaW5jbHVkZS90c2VhcmNoL3RzX3V0aWxzLmgKaW5kZXggNzgyNTQ4Yy4uZmZiMTc2MiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdHNlYXJjaC90c191dGlscy5oCisrKyBiL3NyYy9pbmNsdWRl L3RzZWFyY2gvdHNfdXRpbHMuaApAQCAtNDQsMTEgKzQ0LDEyIEBAIHR5cGVkZWYgdm9pZCAoKlB1 c2hGdW5jdGlvbikgKERhdHVtIG9wYXF1ZSwgVFNRdWVyeVBhcnNlclN0YXRlIHN0YXRlLAogCQkJ CQkJCSAgY2hhciAqdG9rZW4sIGludCB0b2tlbmxlbiwKIAkJCQkJCQkgIGludDE2IHRva2Vud2Vp Z2h0cywJLyogYml0bWFwIGFzIGRlc2NyaWJlZCBpbgogCQkJCQkJCQkJCQkJCSAqIFF1ZXJ5T3Bl cmFuZCBzdHJ1Y3QgKi8KLQkJCQkJCQkgIGJvb2wgcHJlZml4KTsKKwkJCQkJCQkgIGJvb2wgcHJl Zml4LAorCQkJCQkJCSAgYm9vbCBpc3BocmFzZSk7CiAKIGV4dGVybiBUU1F1ZXJ5IHBhcnNlX3Rz cXVlcnkoY2hhciAqYnVmLAogCQkJICBQdXNoRnVuY3Rpb24gcHVzaHZhbCwKLQkJCSAgRGF0dW0g b3BhcXVlLCBib29sIGlzcGxhaW4pOworCQkJICBEYXR1bSBvcGFxdWUsIGJvb2wgaXNwbGFpbiwg Ym9vbCBpc3F1ZXJ5KTsKIAogLyogRnVuY3Rpb25zIGZvciB1c2UgYnkgUHVzaEZ1bmN0aW9uIGlt cGxlbWVudGF0aW9ucyAqLwogZXh0ZXJuIHZvaWQgcHVzaFZhbHVlKFRTUXVlcnlQYXJzZXJTdGF0 ZSBzdGF0ZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHNlYXJjaC5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RzZWFyY2gub3V0CmluZGV4IGQ2M2ZiMTIu LmMxNmNmY2EgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHNlYXJjaC5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90c2VhcmNoLm91dApAQCAtMTY3Miwz ICsxNjcyLDE0MiBAQCBzZWxlY3QgKiBmcm9tIHBocmFzZV9pbmRleF90ZXN0IHdoZXJlIGZ0cyBA QCBwaHJhc2V0b190c3F1ZXJ5KCdlbmdsaXNoJywgJ2ZhdCBjYQogKDEgcm93KQogCiBzZXQgZW5h YmxlX3NlcXNjYW4gPSBvbjsKKy0tdGVzdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSBmdW5jdGlvbgor c2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdNeSBicmFuZCBuZXcgc21hcnRwaG9uZScpOwor ICAgICB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICdicmFuZCcgJiAnbmV3JyAmICdzbWFydHBob24nCisoMSByb3cpCisKK3NlbGVj dCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnTXkgYnJhbmQgIm5ldyBzbWFydHBob25lIicpOworICAg ICAgd2Vic2VhcmNoX3RvX3RzcXVlcnkgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAnYnJhbmQnICYgJ25ldycgPC0+ICdzbWFydHBob24nCisoMSByb3cpCisKK3Nl bGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnIkEgZmF0IGNhdCIgaGFzIGp1c3QgZWF0ZW4gYSAt cmF0LicpOworICAgICAgICB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnZmF0JyA8LT4gJ2NhdCcgJiAnZWF0ZW4nICYg ISdyYXQnCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnIkEgZmF0IGNh dCIgaGFzIGp1c3QgZWF0ZW4gT1IgLXJhdC4nKTsKKyAgICAgICAgd2Vic2VhcmNoX3RvX3RzcXVl cnkgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcg PC0+ICdjYXQnICYgJ2VhdGVuJyB8ICEncmF0JworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNo X3RvX3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBqdXN0IChlYXRlbiBPUiAtcmF0KScpOworICAg ICAgICAgIHdlYnNlYXJjaF90b190c3F1ZXJ5ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdmYXQnIDwtPiAnY2F0JyAmICggJ2VhdGVuJyB8ICEn cmF0JyApCisoMSByb3cpCisKKy0tIHRlc3RpbmcgQVJPVU5EIG9wZXJhdG9yIGV2YWx1YXRpb24K K3NlbGVjdCB0b190c3ZlY3RvcignVGhlIEdOVSBEZWJ1Z2dlciBpcyBhIHBvcnRhYmxlIGRlYnVn Z2VyIHRoYXQgcnVucyBvbiBtYW55IFVuaXggbGlrZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFu eSBwcm9ncmFtbWluZyBsYW5ndWFnZXMnKSBAQAord2Vic2VhcmNoX3RvX3RzcXVlcnkoJyJnbnUg ZGVidWdnZXIiIEFST1VORCg1KSBydW5zJyk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgZgor KDEgcm93KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBwb3J0 YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQgd29y a3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3dlYnNlYXJjaF90b190c3F1 ZXJ5KCdydW4gQVJPVU5EKDUpICJnbnUgZGVidWdnZXIiJyk7CisgP2NvbHVtbj8gCistLS0tLS0t LS0tCisgZgorKDEgcm93KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIg aXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVt cyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3dlYnNlYXJj aF90b190c3F1ZXJ5KCciZ251IGRlYnVnZ2VyIiBBUk9VTkQoNikgcnVucycpOworID9jb2x1bW4/ IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05V IERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBs aWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBA Cit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgncnVuIEFST1VORCg2KSAiZ251IGRlYnVnZ2VyIicpOwor ID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworc2VsZWN0IHRvX3RzdmVjdG9y KCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1h bnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1 YWdlcycpIEBACit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnIm1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3Vh Z2VzIiBBUk9VTkQoMTApICJwb3J0YWJsZSBkZWJ1Z2dlciInKTsKKyA/Y29sdW1uPyAKKy0tLS0t LS0tLS0KKyBmCisoMSByb3cpCisKK3NlbGVjdCB0b190c3ZlY3RvcignVGhlIEdOVSBEZWJ1Z2dl ciBpcyBhIHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVucyBvbiBtYW55IFVuaXggbGlrZSBzeXN0 ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMnKSBAQAord2Vic2Vh cmNoX3RvX3RzcXVlcnkoJyJwb3J0YWJsZSBkZWJ1Z2dlciIgQVJPVU5EKDEwKSAibWFueSBwcm9n cmFtbWluZyBsYW5ndWFnZXMiJyk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBwb3J0YWJsZSBk ZWJ1Z2dlciB0aGF0IHJ1bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9y IG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzJykgQEAKK3dlYnNlYXJjaF90b190c3F1ZXJ5KCci bWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMiIEFST1VORCgxMSkgInBvcnRhYmxlIGRlYnVnZ2Vy IicpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworc2VsZWN0IHRvX3Rz dmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5z IG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5n IGxhbmd1YWdlcycpIEBACit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnInBvcnRhYmxlIGRlYnVnZ2Vy IiBBUk9VTkQoMTEpICJtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcyInKTsKKyA/Y29sdW1uPyAK Ky0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgn ImZhdCBjYXQgQVJPVU5EKDUpIHJhdCInKTsKKyAgICAgICAgICAgICAgd2Vic2VhcmNoX3RvX3Rz cXVlcnkgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgJ2ZhdCcgPC0+ICdjYXQnIDwtPiAnYXJvdW5kJyA8LT4gJzUnIDwtPiAn cmF0JworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ3NpbXBsZScsJyJm YXQgY2F0IE9SIHJhdCInKTsKKyAgICAgICAgd2Vic2VhcmNoX3RvX3RzcXVlcnkgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgPC0+ICdjYXQnIDwt PiAnb3InIDwtPiAncmF0JworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnko J2ZhdCpyYXQnKTsKKyB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAnZmF0JyAmICdyYXQnCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVy eSgnZmF0LXJhdCcpOworICAgd2Vic2VhcmNoX3RvX3RzcXVlcnkgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAnZmF0LXJhdCcgJiAnZmF0JyAmICdyYXQnCisoMSByb3cpCisKK3Nl bGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnIkEgdGhlIiBPUiBqdXN0IG9uJyk7CitOT1RJQ0U6 ICB0ZXh0LXNlYXJjaCBxdWVyeSBjb250YWlucyBvbmx5IHN0b3Agd29yZHMgb3IgZG9lc24ndCBj b250YWluIGxleGVtZXMsIGlnbm9yZWQKKyB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5 KCdydXNzaWFuJywgJyLRgtC+0LvRgdGC0LDRjyDQutC+0YjQutCwIiDRgdGK0LXQu9CwINC60YDR i9GB0YMnKTsKKyAgICAgICAgIHdlYnNlYXJjaF90b190c3F1ZXJ5ICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICfRgtC+0LvRgdGCJyA8LT4gJ9C60L7R iNC6JyAmICfRgdGK0LXQuycgJiAn0LrRgNGL0YEnCisoMSByb3cpCisKK3NlbGVjdCB0b190c3Zl Y3RvcigncnVzc2lhbicsICfRgdGK0LXQu9CwINGC0L7Qu9GB0YLQsNGPINC60L7RiNC60LAg0LrR gNGL0YHRgycpIEBACit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgncnVzc2lhbicsICci0YLQvtC70YHR gtCw0Y8g0LrQvtGI0LrQsCIg0YHRitC10LvQsCDQutGA0YvRgdGDJyk7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ3J1c3NpYW4nLCAn 0YHRitC10LvQsCDRgtC+0LvRgdGC0LDRjyDRgdC10YDQsNGPINC60L7RiNC60LAg0LrRgNGL0YHR gycpIEBACit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgncnVzc2lhbicsICci0YLQvtC70YHRgtCw0Y8g 0LrQvtGI0LrQsCIg0YHRitC10LvQsCDQutGA0YvRgdGDJyk7CisgP2NvbHVtbj8gCistLS0tLS0t LS0tCisgZgorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90c2Vh cmNoLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RzZWFyY2guc3FsCmluZGV4IDFjODUyMGIu LjBlZjZlNTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RzZWFyY2guc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RzZWFyY2guc3FsCkBAIC01MzksMyArNTM5LDQzIEBA IGNyZWF0ZSBpbmRleCBwaHJhc2VfaW5kZXhfdGVzdF9pZHggb24gcGhyYXNlX2luZGV4X3Rlc3Qg dXNpbmcgZ2luKGZ0cyk7CiBzZXQgZW5hYmxlX3NlcXNjYW4gPSBvZmY7CiBzZWxlY3QgKiBmcm9t IHBocmFzZV9pbmRleF90ZXN0IHdoZXJlIGZ0cyBAQCBwaHJhc2V0b190c3F1ZXJ5KCdlbmdsaXNo JywgJ2ZhdCBjYXQnKTsKIHNldCBlbmFibGVfc2Vxc2NhbiA9IG9uOworCistLXRlc3Qgd2Vic2Vh cmNoX3RvX3RzcXVlcnkgZnVuY3Rpb24KK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnTXkg YnJhbmQgbmV3IHNtYXJ0cGhvbmUnKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnTXkg YnJhbmQgIm5ldyBzbWFydHBob25lIicpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCci QSBmYXQgY2F0IiBoYXMganVzdCBlYXRlbiBhIC1yYXQuJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3Rv X3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBqdXN0IGVhdGVuIE9SIC1yYXQuJyk7CitzZWxlY3Qg d2Vic2VhcmNoX3RvX3RzcXVlcnkoJyJBIGZhdCBjYXQiIGhhcyBqdXN0IChlYXRlbiBPUiAtcmF0 KScpOworCistLSB0ZXN0aW5nIEFST1VORCBvcGVyYXRvciBldmFsdWF0aW9uCitzZWxlY3QgdG9f dHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1 bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1p bmcgbGFuZ3VhZ2VzJykgQEAKK3dlYnNlYXJjaF90b190c3F1ZXJ5KCciZ251IGRlYnVnZ2VyIiBB Uk9VTkQoNSkgcnVucycpOworc2VsZWN0IHRvX3RzdmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlz IGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMg YW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcycpIEBACit3ZWJzZWFyY2hf dG9fdHNxdWVyeSgncnVuIEFST1VORCg1KSAiZ251IGRlYnVnZ2VyIicpOworc2VsZWN0IHRvX3Rz dmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5z IG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5n IGxhbmd1YWdlcycpIEBACit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnImdudSBkZWJ1Z2dlciIgQVJP VU5EKDYpIHJ1bnMnKTsKK3NlbGVjdCB0b190c3ZlY3RvcignVGhlIEdOVSBEZWJ1Z2dlciBpcyBh IHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVucyBvbiBtYW55IFVuaXggbGlrZSBzeXN0ZW1zIGFu ZCB3b3JrcyBmb3IgbWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMnKSBAQAord2Vic2VhcmNoX3Rv X3RzcXVlcnkoJ3J1biBBUk9VTkQoNikgImdudSBkZWJ1Z2dlciInKTsKKworc2VsZWN0IHRvX3Rz dmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBydW5z IG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1taW5n IGxhbmd1YWdlcycpIEBACit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnIm1hbnkgcHJvZ3JhbW1pbmcg bGFuZ3VhZ2VzIiBBUk9VTkQoMTApICJwb3J0YWJsZSBkZWJ1Z2dlciInKTsKK3NlbGVjdCB0b190 c3ZlY3RvcignVGhlIEdOVSBEZWJ1Z2dlciBpcyBhIHBvcnRhYmxlIGRlYnVnZ2VyIHRoYXQgcnVu cyBvbiBtYW55IFVuaXggbGlrZSBzeXN0ZW1zIGFuZCB3b3JrcyBmb3IgbWFueSBwcm9ncmFtbWlu ZyBsYW5ndWFnZXMnKSBAQAord2Vic2VhcmNoX3RvX3RzcXVlcnkoJyJwb3J0YWJsZSBkZWJ1Z2dl ciIgQVJPVU5EKDEwKSAibWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMiJyk7CitzZWxlY3QgdG9f dHN2ZWN0b3IoJ1RoZSBHTlUgRGVidWdnZXIgaXMgYSBwb3J0YWJsZSBkZWJ1Z2dlciB0aGF0IHJ1 bnMgb24gbWFueSBVbml4IGxpa2Ugc3lzdGVtcyBhbmQgd29ya3MgZm9yIG1hbnkgcHJvZ3JhbW1p bmcgbGFuZ3VhZ2VzJykgQEAKK3dlYnNlYXJjaF90b190c3F1ZXJ5KCcibWFueSBwcm9ncmFtbWlu ZyBsYW5ndWFnZXMiIEFST1VORCgxMSkgInBvcnRhYmxlIGRlYnVnZ2VyIicpOworc2VsZWN0IHRv X3RzdmVjdG9yKCdUaGUgR05VIERlYnVnZ2VyIGlzIGEgcG9ydGFibGUgZGVidWdnZXIgdGhhdCBy dW5zIG9uIG1hbnkgVW5peCBsaWtlIHN5c3RlbXMgYW5kIHdvcmtzIGZvciBtYW55IHByb2dyYW1t aW5nIGxhbmd1YWdlcycpIEBACit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnInBvcnRhYmxlIGRlYnVn Z2VyIiBBUk9VTkQoMTEpICJtYW55IHByb2dyYW1taW5nIGxhbmd1YWdlcyInKTsKKworc2VsZWN0 IHdlYnNlYXJjaF90b190c3F1ZXJ5KCciZmF0IGNhdCBBUk9VTkQoNSkgcmF0IicpOworc2VsZWN0 IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCciZmF0IGNhdCBPUiByYXQiJyk7CitzZWxl Y3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ2ZhdCpyYXQnKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9f dHNxdWVyeSgnZmF0LXJhdCcpOworCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJyJBIHRo ZSIgT1IganVzdCBvbicpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdydXNzaWFuJywg JyLRgtC+0LvRgdGC0LDRjyDQutC+0YjQutCwIiDRgdGK0LXQu9CwINC60YDRi9GB0YMnKTsKKwor c2VsZWN0IHRvX3RzdmVjdG9yKCdydXNzaWFuJywgJ9GB0YrQtdC70LAg0YLQvtC70YHRgtCw0Y8g 0LrQvtGI0LrQsCDQutGA0YvRgdGDJykgQEAKK3dlYnNlYXJjaF90b190c3F1ZXJ5KCdydXNzaWFu JywgJyLRgtC+0LvRgdGC0LDRjyDQutC+0YjQutCwIiDRgdGK0LXQu9CwINC60YDRi9GB0YMnKTsK Kworc2VsZWN0IHRvX3RzdmVjdG9yKCdydXNzaWFuJywgJ9GB0YrQtdC70LAg0YLQvtC70YHRgtCw 0Y8g0YHQtdGA0LDRjyDQutC+0YjQutCwINC60YDRi9GB0YMnKSBAQAord2Vic2VhcmNoX3RvX3Rz cXVlcnkoJ3J1c3NpYW4nLCAnItGC0L7Qu9GB0YLQsNGPINC60L7RiNC60LAiINGB0YrQtdC70LAg 0LrRgNGL0YHRgycpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --=_98d54c165b0f78c39d2e9a96b3f3bd01 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=queryto_tsquery4_03_documentation.patch Content-Disposition: attachment; filename=queryto_tsquery4_03_documentation.patch; size=5117 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5z Z21sCmluZGV4IDRkZDlkMDIuLmUzNDc5YjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5j LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtOTUzNSw2ICs5NTM1LDE4IEBA IENSRUFURSBUWVBFIHJhaW5ib3cgQVMgRU5VTSAoJ3JlZCcsICdvcmFuZ2UnLCAneWVsbG93Jywg J2dyZWVuJywgJ2JsdWUnLCAncHVycGxlCiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5Pgog ICAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgICA8cHJpbWFyeT53ZWJzZWFyY2hfdG9fdHNx dWVyeTwvcHJpbWFyeT4KKyAgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICAgIDxsaXRlcmFs PjxmdW5jdGlvbj53ZWJzZWFyY2hfdG9fdHNxdWVyeSg8b3B0aW9uYWw+IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb25maWc8L3JlcGxhY2VhYmxlPiA8dHlwZT5yZWdjb25maWc8L3R5 cGU+ICwgPC9vcHRpb25hbD4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnF1ZXJ5PC9y ZXBsYWNlYWJsZT4gPHR5cGU+dGV4dDwvdHlwZT4pPC9mdW5jdGlvbj48L2xpdGVyYWw+CisgICAg ICAgICA8L2VudHJ5PgorICAgICAgICA8ZW50cnk+PHR5cGU+dHNxdWVyeTwvdHlwZT48L2VudHJ5 PgorICAgICAgICA8ZW50cnk+cHJvZHVjZSA8dHlwZT50c3F1ZXJ5PC90eXBlPiBmcm9tIHdlYnNl YXJjaCBsaWtlIHF1ZXJ5PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PjxsaXRlcmFsPndlYnNlYXJj aF90b190c3F1ZXJ5KCdlbmdsaXNoJywgJ1RoZSBGYXQgUmF0cycpPC9saXRlcmFsPjwvZW50cnk+ CisgICAgICAgIDxlbnRyeT48bGl0ZXJhbD4nZmF0JyAmYW1wOyAncmF0JzwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT4KKyAgICAg ICAgIDxpbmRleHRlcm0+CiAgICAgICAgICAgPHByaW1hcnk+cXVlcnl0cmVlPC9wcmltYXJ5Pgog ICAgICAgICAgPC9pbmRleHRlcm0+CiAgICAgICAgICA8bGl0ZXJhbD48ZnVuY3Rpb24+cXVlcnl0 cmVlKDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5xdWVyeTwvcmVwbGFjZWFibGU+IDx0 eXBlPnRzcXVlcnk8L3R5cGU+KTwvZnVuY3Rpb24+PC9saXRlcmFsPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3RleHRzZWFyY2guc2dtbCBiL2RvYy9zcmMvc2dtbC90ZXh0c2VhcmNoLnNnbWwK aW5kZXggNGRjNTJlYy4uNmY5YzA0MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3RleHRzZWFy Y2guc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvdGV4dHNlYXJjaC5zZ21sCkBAIC03OTcsMTMgKzc5 NywxNSBAQCBVUERBVEUgdHQgU0VUIHRpID0KICAgIDxwYXJhPgogICAgIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gcHJvdmlkZXMgdGhlCiAgICAgZnVuY3Rpb25zIDxmdW5j dGlvbj50b190c3F1ZXJ5PC9mdW5jdGlvbj4sCi0gICAgPGZ1bmN0aW9uPnBsYWludG9fdHNxdWVy eTwvZnVuY3Rpb24+LCBhbmQKLSAgICA8ZnVuY3Rpb24+cGhyYXNldG9fdHNxdWVyeTwvZnVuY3Rp b24+CisgICAgPGZ1bmN0aW9uPnBsYWludG9fdHNxdWVyeTwvZnVuY3Rpb24+LAorICAgIDxmdW5j dGlvbj5waHJhc2V0b190c3F1ZXJ5PC9mdW5jdGlvbj4gYW5kCisgICAgPGZ1bmN0aW9uPndlYnNl YXJjaF90b190c3F1ZXJ5PC9mdW5jdGlvbj4KICAgICBmb3IgY29udmVydGluZyBhIHF1ZXJ5IHRv IHRoZSA8dHlwZT50c3F1ZXJ5PC90eXBlPiBkYXRhIHR5cGUuCiAgICAgPGZ1bmN0aW9uPnRvX3Rz cXVlcnk8L2Z1bmN0aW9uPiBvZmZlcnMgYWNjZXNzIHRvIG1vcmUgZmVhdHVyZXMKICAgICB0aGFu IGVpdGhlciA8ZnVuY3Rpb24+cGxhaW50b190c3F1ZXJ5PC9mdW5jdGlvbj4gb3IKICAgICA8ZnVu Y3Rpb24+cGhyYXNldG9fdHNxdWVyeTwvZnVuY3Rpb24+LCBidXQgaXQgaXMgbGVzcyBmb3JnaXZp bmcKLSAgICBhYm91dCBpdHMgaW5wdXQuCisgICAgYWJvdXQgaXRzIGlucHV0LiA8ZnVuY3Rpb24+ d2Vic2VhcmNoX3RvX3RzcXVlcnk8L2Z1bmN0aW9uPiBwcm92aWRlcyBhIGRpZmZlcmVudCBzeW50 YXgsCisgICAgc2ltaWxhciB0byBvbmUgdXNlZCBpbiB3ZWIgc2VhcmNoIGVuZ2luZXMsIHRvIGNy ZWF0ZSB0c3FldXJ5LgogICAgPC9wYXJhPgogCiAgICA8aW5kZXh0ZXJtPgpAQCAtOTYwLDggKzk2 Miw3MiBAQCBTRUxFQ1QgcGhyYXNldG9fdHNxdWVyeSgnZW5nbGlzaCcsICdUaGUgRmF0ICZhbXA7 IFJhdHM6QycpOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAnZmF0JyAmbHQ7LSZn dDsgJ3JhdCcgJmx0Oy0mZ3Q7ICdjJwogPC9zY3JlZW4+Ci0gICA8L3BhcmE+Cis8L3BhcmE+CisK KzxzeW5vcHNpcz4KK3dlYnNlYXJjaF90b190c3F1ZXJ5KDxvcHRpb25hbD4gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbmZpZzwvcmVwbGFjZWFibGU+IDx0eXBlPnJlZ2NvbmZpZzwv dHlwZT4sIDwvb3B0aW9uYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5xdWVyeXRl eHQ8L3JlcGxhY2VhYmxlPiA8dHlwZT50ZXh0PC90eXBlPikgcmV0dXJucyA8dHlwZT50c3F1ZXJ5 PC90eXBlPgorPC9zeW5vcHNpcz4KIAorICAgPHBhcmE+CisgICAgPGZ1bmN0aW9uPndlYnNlYXJj aF90b190c3F1ZXJ5PC9mdW5jdGlvbj4gY3JlYXRlcyBhIDx0eXBlPnRzcXVlcnk8L3R5cGU+IGZy b20gYSB1bmZvcm1hdGVkIHRleHQuCisgICAgQnV0IGluc3RlYWQgb2YgPGZ1bmN0aW9uPnBsYWlu dG9fdHNxdWVyeTwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+cGhyYXNldG9fdHNxdWVyeTwvZnVu Y3Rpb24+IGl0IHdvbid0CisgICAgaWdub3JlIGFscmVhZHkgcGxhY2VkIG9wZXJhdGlvbnMuIFRo aXMgZnVuY3Rpb24gc3VwcG9ydHMgZm9sbG93aW5nIG9wZXJhdG9yczoKKyAgICA8aXRlbWl6ZWRs aXN0ICBzcGFjaW5nPSJjb21wYWN0IiBtYXJrPSJidWxsZXQiPgorICAgICA8bGlzdGl0ZW0+Cisg ICAgICA8cGFyYT4KKyAgICAgICA8bGl0ZXJhbD5zb21lIHRleHQ8L2xpdGVyYWw+IC0gYW55IHRl eHQgaW5zaWRlIHF1b3RlIHNpZ25zIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBocmFzZSBhbmQgd2ls bCBiZQorICAgICAgICBwZXJmb3JtZWQgbGlrZSBpbiA8ZnVuY3Rpb24+cGhyYXNldG9fdHNxdWVy eTwvZnVuY3Rpb24+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8bGl0ZXJhbD5PUjwvbGl0ZXJhbD4gLSBzdGFu ZGFyZCBsb2dpY2FsIG9wZXJhdG9yLiBJdCBpcyBqdXN0IGFuIGFsaWFzIGZvciA8bGl0ZXJhbD58 PC9saXRlcmFsPiBzaWduLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8bGl0ZXJhbD50ZXJtYSBBUk9VTkQoTikg dGVybWI8L2xpdGVyYWw+IC0gdGhpcyBvcGVyYXRpb24gd2lsbCBtYXRjaCBpZiB0aGUgZGlzdGFu Y2UgYmV0d2VlbiAKKyAgICAgICB0ZXJtYSBhbmQgdGVybWIgaXMgbGVzcyB0aGFuIE4uCisgICAg ICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJh PgorICAgICAgIDxsaXRlcmFsPi08L2xpdGVyYWw+IC0gc3RhbmRhcmQgbG9naWNhbCBuZWdhdGlv biBzaWduLiBJdCBpcyBhbiBhbGlhcyBmb3IgPGxpdGVyYWw+ITwvbGl0ZXJhbD4gc2lnbi4KKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICBP dGhlciBtaXNzaW5nIG9wZXJhdG9ycyB3aWxsIGJlIHJlcGxhY2VkIGJ5IEFORCBsaWtlIGluIDxm dW5jdGlvbj5wbGFpbnRvX3RzcXVlcnk8L2Z1bmN0aW9uPi4KKyAgIDwvcGFyYT4KKyAgIDxwYXJh PgorICAgIEV4YW1wbGVzOgorICAgIDxzY3JlZW4+CisgICAgICBzZWxlY3Qgd2Vic2VhcmNoX3Rv X3RzcXVlcnkoJ1RoZSBmYXQgcmF0cycpOworICAgICAgIHdlYnNlYXJjaF90b190c3F1ZXJ5IAor ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAnZmF0JyAmYW1wOyAncmF0JworICAgICAg KDEgcm93KQorICAgIDwvc2NyZWVuPgorICAgIDxzY3JlZW4+CisgICAgICBzZWxlY3Qgd2Vic2Vh cmNoX3RvX3RzcXVlcnkoJyJzdXBlcm5vdmFlIHN0YXJzIiBBTkQgLWNyYWInKTsKKyAgICAgICAg ICAgICB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAgICAgICAgICAKKyAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAnc3VwZXJub3ZhJyAmbHQ7LSZndDsgJ3N0YXIn ICZhbXA7ICEnY3JhYicKKyAgICAoMSByb3cpCisgICAgPC9zY3JlZW4+CisgICAgPHNjcmVlbj4K KyAgICAgIHNlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnLXJ1biBBUk9VTkQoNSkgImdudSBk ZWJ1Z2dlciIgT1IgIkkgbGlrZSBiYW5hbmFzIicpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHdlYnNlYXJjaF90b190c3F1ZXJ5ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAhJ3J1bicgQVJPVU5EKDUpICdnbnUnICZsdDstJmd0OyAnZGVidWdnJyB8ICdsaWtl JyAmbHQ7LSZndDsgJ2JhbmFuYScKKyAgICAgICgxIHJvdykKKyAgICA8L3NjcmVlbj4KKyAgICA8 L3BhcmE+CisgICAgPHBhcmE+CisgICAgIE5vdGUgdGhhdCBpbiB0aGUgZXhhbXBsZXMgPGZ1bmN0 aW9uPndlYnNlYXJjaF90b190c3F1ZXJ5PC9mdW5jdGlvbj4gZGlkbid0IGlnbm9yZQorICAgICBv cGVyYXRvcnMgaWYgdGhleSB3ZXJlIHBsYWNlZCBhbmQgcHV0IHJlcXVpcmVkIG9wZXJhdGlvbnMK KyAgICAgaWYgdGhleSB3ZXJlIHNraXBwZWQuIEluIGNhc2Ugb2YgaW5xdW90ZSB0ZXh0IDxmdW5j dGlvbj53ZWJzZWFyY2hfdG9fdHNxdWVyeTwvZnVuY3Rpb24+CisgICAgIGhhcyBwbGFjZWQgcGhy YXNlIG9wZXJhdG9yIGFuZCAmYW1wOyBpbiBvdGhlciBjYXNlcy4KKyAgICA8L3BhcmE+CiAgIDwv c2VjdDI+CiAKICAgPHNlY3QyIGlkPSJ0ZXh0c2VhcmNoLXJhbmtpbmciPgo= --=_98d54c165b0f78c39d2e9a96b3f3bd01--