Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vnECA-0040Z6-09 for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Feb 2026 11:03:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vnEC9-004WnI-0C for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Feb 2026 11:03:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vnEC8-004WnA-2E for pgsql-hackers@lists.postgresql.org; Tue, 03 Feb 2026 11:03:44 +0000 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vnEC5-00000000pEj-3lmV for pgsql-hackers@postgresql.org; Tue, 03 Feb 2026 11:03:44 +0000 Received: by mail-oi1-x22f.google.com with SMTP id 5614622812f47-45effa36240so3997245b6e.1 for ; Tue, 03 Feb 2026 03:03:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770116620; x=1770721420; darn=postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=QiVLVO+eOE3a/dVyY3BQROezIkN707vC9TXS8yYF7nU=; b=jLz13HQwWNr8vq8d5Pjk5TtInzjucO4TF4LryatToJRFEIqIGJzuuq42c4l3wtE6YA jntt39UtZuXo0S84M8oLkCy1pc+EChOlce3E3x9zvUG20h8+h4FthZh9AZSa2/qgIXE5 n94E5rQQsQbXrFx0IStpWE+L9E2P+Lop5S7RWA3KSfU5w2B8LXcBDo9a4SFPpf0TbX1A /+ZOWR1fBWWXTtYtkM/rCf/myal+QO892gZFtz1fs8vKSY3I2V5tLJCSXGAYGVWP7ujD xdOJWsSr5N8wsdj91nZNG46gfvuQZrRJZuMZ+f2VWK+ZIYiRObx54Bj20agiNYQDLS4O 9Cpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770116620; x=1770721420; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=QiVLVO+eOE3a/dVyY3BQROezIkN707vC9TXS8yYF7nU=; b=h07cVb3/SpJkHbYau1+uzUH/ZssvwCpubWstBEsU9bn6PttUdwUb3mcO0HTzJFwuxx pyadNVjEUd7V1S4npr/F/j590RkSYAQ7Jvl9QwiUjeMNnUzq3aeqqogjVWc0vTdWOiGv 0kdsJCLn1JVMTXKuhjUvh5fc6y7NIlKZGVUwxZdwSpRirbMFS18mf1b8FNZk19HkF+6+ SWWTCbYEQCvslw3cJWnRhlkqakQ5ybkciB2oJAsR44x4sOm4UWBzwF6vqR5Z5PKo7T/2 oBWaXdGnfTAJQmQe8eCAonbUnI8C+hWHnBCa1IyIdwAirAebPRhn3JjK/SXt2W6hTp0u IHCQ== X-Forwarded-Encrypted: i=1; AJvYcCXlvSpumOjSHDcmGpODqHmCbtF/gbUdy5skRPyGAlzOoFJt9PP0/ATu82DGCghoKfxHAGldkqOicOzf0z5o@postgresql.org X-Gm-Message-State: AOJu0YyGUtUobkHAlUcTA2Qs1z+tp23qafaxC6M0eRfPpMCjw6wMgfoZ 5IQGIVrtsC87BD/Mi8NcyZoTh5Xe8lqMrvI8+WYD7r/sJhG0gXY/lKh3 X-Gm-Gg: AZuq6aIeSNCJ1H5PJjsiGltROWcObgdNzTjSVaN5+U7ce7aQwwwduL6ZrVSPXoxFbBu KFIIeATqJm03zl5cQ1HhnB5BNxI1nnoghBafbpE34Od9ZDPav8g6lHg3wQv7fppIQ4uOtnpNjtK NlVL8Dl4ufEC/QjF+Jq72cpXaFdwbEZ7kP01LaEXXCOI3vkQemIUTdlW8JvSJAijxUV8U8W8CTO sdM9FHdZhEhy/WudlKMIA/zOXsu968w8jc1ybtBNCh5Tbo6aloRCukcvuNLP+YoxOvcznvTjaFV fZrnoRt27oI7FzAnVsTVhlcUMh3v4DVXmvDYKmMXJ0dKyFOQfTVV9dt+KOw9l8WfmRDUwA82kWU BM6EvfUynT69dlPXFSCSwLuByPruFAAoOZkYXylAbvP0QeuNj/rzbmGqZMSgSgeJ1JuPhg80oSB aoIbXtGYAJ+NtU7hPDrOzri6UmVQqaK7CxfxQm5twrXBR/GKsDWgEYUF8= X-Received: by 2002:a05:6808:3092:b0:459:b564:dd64 with SMTP id 5614622812f47-45f34d73e9dmr7479580b6e.61.1770116620110; Tue, 03 Feb 2026 03:03:40 -0800 (PST) Received: from [172.31.5.233] (vip-148-139-2-229.cust.service-now.com. [148.139.2.229]) by smtp.gmail.com with ESMTPSA id 5614622812f47-45f08f22826sm10615433b6e.11.2026.02.03.03.03.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 Feb 2026 03:03:39 -0800 (PST) Content-Type: multipart/mixed; boundary="------------5DsHqV6eH0lPVuBs2HNlTWMR" Message-ID: <7ae842f2-779c-466e-841d-d11e419a9428@gmail.com> Date: Tue, 3 Feb 2026 12:03:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Use correct collation in pg_trgm To: Zsolt Parragi Cc: Alexander Korotkov , pgsql-hackers , Heikki Linnakangas , Kirill Reshke References: <1981b5f0-7d06-4911-a231-23bbb6bf504c@gmail.com> <6f983adb-fd5d-4e0e-8400-513fbea304e0@gmail.com> Content-Language: en-US From: David Geier In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------5DsHqV6eH0lPVuBs2HNlTWMR Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 02.02.2026 21:33, Zsolt Parragi wrote: >>> * the new test should have a newline at the end of the file >> >> Done. > > It is still missing. Sorry, my bad. Now it's there. > Otherwise it looks good to me. > > (I don't see a commitfest entry for it?) I thought Alexander might pick it up without CF entry. I created now one, see [1]. Will you add yourself as reviewer? -- David Geier [1] https://commitfest.postgresql.org/patch/6454/ --------------5DsHqV6eH0lPVuBs2HNlTWMR Content-Type: text/x-patch; charset=UTF-8; name="v4-0002-Use-correct-collation-for-finding-word-boundaries.patch" Content-Disposition: attachment; filename*0="v4-0002-Use-correct-collation-for-finding-word-boundaries.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4NTk1OWVkMWRiYzNhODEzOGRiMDg2ZDZkMjQzZjBiMmQwODgxMzhiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCAyMyBKYW4gMjAyNiAxNTozOTowNiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggdjQgMi8yXSBVc2UgY29ycmVjdCBjb2xsYXRpb24gZm9yIGZpbmRpbmcgd29yZCBib3Vu ZGFyaWVzCgpwZ190cmdtIGZpbmRzIGFsbCB3b3JkcyBpbiB0aGUgaW5wdXQgc3RyaW5nIGFu ZCBjcmVhdGVzIHRyaWdyYW1zIGZvcgp0aGVtLiBXb3JkIGNoYXJhY3RlcnMgYXJlIGFscGhh LW51bWVyaWMgY2hhcmFjdGVycy4gV2hhdCBxdWFsaWZpZXMgYXMKYWxwaGEtbnVtZXJpYyBj aGFyYWN0ZXIgZGVwZW5kcyBvbiB0aGUgY29sbGF0aW9uLiBQcmV2aW91c2x5LCBwZ190cmdt CmFsd2F5cyB1c2VkIHRoZSBkZWZhdWx0IGNvbGxhdGlvbi4gTm93IHRoZSBzcGVjaWZpZWQg Y29sbGF0aW9uIGlzIHVzZWQKaW5zdGVhZC4KLS0tCiAuLi4vcGdfdHJnbS9leHBlY3RlZC9w Z190cmdtX2NvbGxhdGlvbi5vdXQgICAgfCAxMyArKysrKysrKysrKysKIGNvbnRyaWIvcGdf dHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsICAgICB8ICA1ICsrKysrCiBjb250cmli L3BnX3RyZ20vdHJnbS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIGNv bnRyaWIvcGdfdHJnbS90cmdtX29wLmMgICAgICAgICAgICAgICAgICAgICB8IDIxICsrKysr KysrKystLS0tLS0tLS0KIGNvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jICAgICAg ICAgICAgICAgfCAgNCArKy0tCiBzcmMvaW5jbHVkZS90c2VhcmNoL3RzX2xvY2FsZS5oICAg ICAgICAgICAgICAgfCAgOSArKysrKysrLQogNyBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRp b25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20v ZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0IGIvY29udHJpYi9wZ190cmdtL2V4cGVj dGVkL3BnX3RyZ21fY29sbGF0aW9uLm91dAppbmRleCA0NzJjZTg2NzY2NS4uMGNjNTNlZGQ4 MjEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS9leHBlY3RlZC9wZ190cmdtX2NvbGxh dGlvbi5vdXQKKysrIGIvY29udHJpYi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0 aW9uLm91dApAQCAtNDEsMyArNDEsMTYgQEAgU0VMRUNUIHNpbWlsYXJpdHkoJ8Sxc3RhbmJ1 bCcgQ09MTEFURSAiQyIsICdJU1RBTkJVTCcgQ09MTEFURSAiQyIpOwogIDAuNTQ1NDU0NTYK ICgxIHJvdykKIAorLS0gVGVzdCB0aGF0IHdvcmQgYm91bmRhcnkgaWRlbnRpZmljYXRpb24g dXNlcyBzcGVjaWZpZWQgY29sbGF0aW9uCitTRUxFQ1Qgc2hvd190cmdtKCdoZWxsb8SxdGVz dEl3b3JsZMSwY29kZScgQ09MTEFURSAidHIteC1pY3UiKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd190cmdtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7MHg4ZmMwYTIsMHg5M2RmYmYsMHgxYmY0M2Ms IiAgaCIsIiBoZSIsMHgyMmQ0NGYsMHg0Mzk4ZmYsY29kLCJkZSAiLGRpYyxlbGwsZXN0LGhl bCxpY28sbGRpLGxsbyxvZGUsb3JsLDB4NzFiOGY1LHJsZCx0ZXMsd29yfQorKDEgcm93KQor CitTRUxFQ1Qgc2hvd190cmdtKCdoZWxsb8SxdGVzdEl3b3JsZMSwY29kZScgQ09MTEFURSAi QyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaG93X3RyZ20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHsiICBjIiwiICBoIiwiICB0IiwiIGNvIiwiIGhlIiwiIHRlIixjb2Qs ImRlICIsZWxsLGVzdCxoZWwsaXdvLCJsZCAiLGxsbywibG8gIixvZGUsb3JsLHJsZCxzdGks dGVzLHRpdyx3b3J9CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS9z cWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsIGIvY29udHJpYi9wZ190cmdtL3NxbC9wZ190cmdt X2NvbGxhdGlvbi5zcWwKaW5kZXggYWZiMzk3M2E4YjMuLmUxYTVjN2M1ZmE4IDEwMDY0NAot LS0gYS9jb250cmliL3BnX3RyZ20vc3FsL3BnX3RyZ21fY29sbGF0aW9uLnNxbAorKysgYi9j b250cmliL3BnX3RyZ20vc3FsL3BnX3RyZ21fY29sbGF0aW9uLnNxbApAQCAtMjIsMyArMjIs OCBAQCBTRUxFQ1Qgc2hvd190cmdtKCdJU1RBTkJVTCcgQ09MTEFURSAiQyIpOwogU0VMRUNU IHNpbWlsYXJpdHkoJ8Sxc3RhbmJ1bCcgQ09MTEFURSAidHIteC1pY3UiLCAnSVNUQU5CVUwn IENPTExBVEUgInRyLXgtaWN1Iik7CiBTRUxFQ1Qgc2ltaWxhcml0eSgnxLFzdGFuYnVsJyBD T0xMQVRFICJDIiwgJ0lTVEFOQlVMJyBDT0xMQVRFICJDIik7CiAKKy0tIFRlc3QgdGhhdCB3 b3JkIGJvdW5kYXJ5IGlkZW50aWZpY2F0aW9uIHVzZXMgc3BlY2lmaWVkIGNvbGxhdGlvbgor CitTRUxFQ1Qgc2hvd190cmdtKCdoZWxsb8SxdGVzdEl3b3JsZMSwY29kZScgQ09MTEFURSAi dHIteC1pY3UiKTsKK1NFTEVDVCBzaG93X3RyZ20oJ2hlbGxvxLF0ZXN0SXdvcmxkxLBjb2Rl JyBDT0xMQVRFICJDIik7CisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS90cmdtLmgg Yi9jb250cmliL3BnX3RyZ20vdHJnbS5oCmluZGV4IDE0N2VlZmFhM2M2Li42ZjBlMGEyMDc4 OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ190cmdtL3RyZ20uaAorKysgYi9jb250cmliL3Bn X3RyZ20vdHJnbS5oCkBAIC00Nyw5ICs0Nyw5IEBAIHR5cGVkZWYgY2hhciB0cmdtWzNdOwog fSB3aGlsZSgwKQogZXh0ZXJuIGludAkoKkNNUFRSR00pIChjb25zdCB2b2lkICphLCBjb25z dCB2b2lkICpiKTsKIAotI2RlZmluZSBJU1dPUkRDSFIoYykJKHRfaXNhbG51bShjKSkKLSNk ZWZpbmUgSVNQUklOVEFCTEVDSEFSKGEpCSggaXNhc2NpaSggKih1bnNpZ25lZCBjaGFyKiko YSkgKSAmJiAoaXNhbG51bSggKih1bnNpZ25lZCBjaGFyKikoYSkgKSB8fCAqKHVuc2lnbmVk IGNoYXIqKShhKT09JyAnKSApCi0jZGVmaW5lIElTUFJJTlRBQkxFVFJHTSh0KQkoIElTUFJJ TlRBQkxFQ0hBUiggKChjaGFyKikodCkpICkgJiYgSVNQUklOVEFCTEVDSEFSKCAoKGNoYXIq KSh0KSkrMSApICYmIElTUFJJTlRBQkxFQ0hBUiggKChjaGFyKikodCkpKzIgKSApCisjZGVm aW5lIElTV09SRENIUihjLCBjb2xsYXRpb24pCSh0X2lzYWxudW1fY29sbGF0aW9uKGMsIGNv bGxhdGlvbikpCisjZGVmaW5lIElTUFJJTlRBQkxFQ0hBUihhKQkJKCBpc2FzY2lpKCAqKHVu c2lnbmVkIGNoYXIqKShhKSApICYmIChpc2FsbnVtKCAqKHVuc2lnbmVkIGNoYXIqKShhKSAp IHx8ICoodW5zaWduZWQgY2hhciopKGEpPT0nICcpICkKKyNkZWZpbmUgSVNQUklOVEFCTEVU UkdNKHQpCQkoIElTUFJJTlRBQkxFQ0hBUiggKChjaGFyKikodCkpICkgJiYgSVNQUklOVEFC TEVDSEFSKCAoKGNoYXIqKSh0KSkrMSApICYmIElTUFJJTlRBQkxFQ0hBUiggKChjaGFyKiko dCkpKzIgKSApCiAKICNkZWZpbmUgSVNFU0NBUEVDSEFSKHgpICgqKHgpID09ICdcXCcpCS8q IFdpbGRjYXJkIGVzY2FwZSBjaGFyYWN0ZXIgKi8KICNkZWZpbmUgSVNXSUxEQ0FSRENIQVIo eCkgKCooeCkgPT0gJ18nIHx8ICooeCkgPT0gJyUnKQkvKiBXaWxkY2FyZApkaWZmIC0tZ2l0 IGEvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX29w LmMKaW5kZXggZDRjNzVjYWVmZjkuLjM5OWU2YTI2ZjM0IDEwMDY0NAotLS0gYS9jb250cmli L3BnX3RyZ20vdHJnbV9vcC5jCisrKyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX29wLmMKQEAg LTIyMCwxMSArMjIwLDExIEBAIGNvbXBfdHJnbShjb25zdCB2b2lkICphLCBjb25zdCB2b2lk ICpiKQogICogZW5kd29yZCBwb2ludHMgdG8gdGhlIGNoYXJhY3RlciBhZnRlciB3b3JkCiAg Ki8KIHN0YXRpYyBjaGFyICoKLWZpbmRfd29yZChjaGFyICpzdHIsIGludCBsZW5zdHIsIGNo YXIgKiplbmR3b3JkLCBpbnQgKmNoYXJsZW4pCitmaW5kX3dvcmQoY2hhciAqc3RyLCBpbnQg bGVuc3RyLCBjaGFyICoqZW5kd29yZCwgaW50ICpjaGFybGVuLCBPaWQgY29sbGF0aW9uKQog ewogCWNoYXIJICAgKmJlZ2lud29yZCA9IHN0cjsKIAotCXdoaWxlIChiZWdpbndvcmQgLSBz dHIgPCBsZW5zdHIgJiYgIUlTV09SRENIUihiZWdpbndvcmQpKQorCXdoaWxlIChiZWdpbndv cmQgLSBzdHIgPCBsZW5zdHIgJiYgIUlTV09SRENIUihiZWdpbndvcmQsIGNvbGxhdGlvbikp CiAJCWJlZ2lud29yZCArPSBwZ19tYmxlbihiZWdpbndvcmQpOwogCiAJaWYgKGJlZ2lud29y ZCAtIHN0ciA+PSBsZW5zdHIpCkBAIC0yMzIsNyArMjMyLDcgQEAgZmluZF93b3JkKGNoYXIg KnN0ciwgaW50IGxlbnN0ciwgY2hhciAqKmVuZHdvcmQsIGludCAqY2hhcmxlbikKIAogCSpl bmR3b3JkID0gYmVnaW53b3JkOwogCSpjaGFybGVuID0gMDsKLQl3aGlsZSAoKmVuZHdvcmQg LSBzdHIgPCBsZW5zdHIgJiYgSVNXT1JEQ0hSKCplbmR3b3JkKSkKKwl3aGlsZSAoKmVuZHdv cmQgLSBzdHIgPCBsZW5zdHIgJiYgSVNXT1JEQ0hSKCplbmR3b3JkLCBjb2xsYXRpb24pKQog CXsKIAkJKmVuZHdvcmQgKz0gcGdfbWJsZW4oKmVuZHdvcmQpOwogCQkoKmNoYXJsZW4pKys7 CkBAIC0zNDksNyArMzQ5LDcgQEAgZ2VuZXJhdGVfdHJnbV9vbmx5KHRyZ20gKnRyZywgY2hh ciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxhdGlvbiwgVHJnbUJvdW5kICpib3UKIAl9CiAK IAlld29yZCA9IHN0cjsKLQl3aGlsZSAoKGJ3b3JkID0gZmluZF93b3JkKGV3b3JkLCBzbGVu IC0gKGV3b3JkIC0gc3RyKSwgJmV3b3JkLCAmY2hhcmxlbikpICE9IE5VTEwpCisJd2hpbGUg KChid29yZCA9IGZpbmRfd29yZChld29yZCwgc2xlbiAtIChld29yZCAtIHN0ciksICZld29y ZCwgJmNoYXJsZW4sIGNvbGxhdGlvbikpICE9IE5VTEwpCiAJewogI2lmZGVmIElHTk9SRUNB U0UKIAkJYndvcmQgPSBzdHJfdG9sb3dlcihid29yZCwgZXdvcmQgLSBid29yZCwgY29sbGF0 aW9uKTsKQEAgLTc3MSw3ICs3NzEsOCBAQCBjYWxjX3dvcmRfc2ltaWxhcml0eShjaGFyICpz dHIxLCBpbnQgc2xlbjEsIGNoYXIgKnN0cjIsIGludCBzbGVuMiwKICAqLwogc3RhdGljIGNv bnN0IGNoYXIgKgogZ2V0X3dpbGRjYXJkX3BhcnQoY29uc3QgY2hhciAqc3RyLCBpbnQgbGVu c3RyLAotCQkJCSAgY2hhciAqYnVmLCBpbnQgKmJ5dGVsZW4sIGludCAqY2hhcmxlbikKKwkJ CQkgIGNoYXIgKmJ1ZiwgaW50ICpieXRlbGVuLCBpbnQgKmNoYXJsZW4sCisJCQkJICBPaWQg Y29sbGF0aW9uKQogewogCWNvbnN0IGNoYXIgKmJlZ2lud29yZCA9IHN0cjsKIAljb25zdCBj aGFyICplbmR3b3JkOwpAQCAtNzkxLDcgKzc5Miw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNv bnN0IGNoYXIgKnN0ciwgaW50IGxlbnN0ciwKIAl7CiAJCWlmIChpbl9lc2NhcGUpCiAJCXsK LQkJCWlmIChJU1dPUkRDSFIoYmVnaW53b3JkKSkKKwkJCWlmIChJU1dPUkRDSFIoYmVnaW53 b3JkLCBjb2xsYXRpb24pKQogCQkJCWJyZWFrOwogCQkJaW5fZXNjYXBlID0gZmFsc2U7CiAJ CQlpbl9sZWFkaW5nX3dpbGRjYXJkX21ldGEgPSBmYWxzZTsKQEAgLTgwMiw3ICs4MDMsNyBA QCBnZXRfd2lsZGNhcmRfcGFydChjb25zdCBjaGFyICpzdHIsIGludCBsZW5zdHIsCiAJCQkJ aW5fZXNjYXBlID0gdHJ1ZTsKIAkJCWVsc2UgaWYgKElTV0lMRENBUkRDSEFSKGJlZ2lud29y ZCkpCiAJCQkJaW5fbGVhZGluZ193aWxkY2FyZF9tZXRhID0gdHJ1ZTsKLQkJCWVsc2UgaWYg KElTV09SRENIUihiZWdpbndvcmQpKQorCQkJZWxzZSBpZiAoSVNXT1JEQ0hSKGJlZ2lud29y ZCwgY29sbGF0aW9uKSkKIAkJCQlicmVhazsKIAkJCWVsc2UKIAkJCQlpbl9sZWFkaW5nX3dp bGRjYXJkX21ldGEgPSBmYWxzZTsKQEAgLTg0NSw3ICs4NDYsNyBAQCBnZXRfd2lsZGNhcmRf cGFydChjb25zdCBjaGFyICpzdHIsIGludCBsZW5zdHIsCiAJCWNsZW4gPSBwZ19tYmxlbihl bmR3b3JkKTsKIAkJaWYgKGluX2VzY2FwZSkKIAkJewotCQkJaWYgKElTV09SRENIUihlbmR3 b3JkKSkKKwkJCWlmIChJU1dPUkRDSFIoZW5kd29yZCwgY29sbGF0aW9uKSkKIAkJCXsKIAkJ CQltZW1jcHkocywgZW5kd29yZCwgY2xlbik7CiAJCQkJKCpjaGFybGVuKSsrOwpAQCAtODcz LDcgKzg3NCw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNoYXIgKnN0ciwgaW50IGxl bnN0ciwKIAkJCQlpbl90cmFpbGluZ193aWxkY2FyZF9tZXRhID0gdHJ1ZTsKIAkJCQlicmVh azsKIAkJCX0KLQkJCWVsc2UgaWYgKElTV09SRENIUihlbmR3b3JkKSkKKwkJCWVsc2UgaWYg KElTV09SRENIUihlbmR3b3JkLCBjb2xsYXRpb24pKQogCQkJewogCQkJCW1lbWNweShzLCBl bmR3b3JkLCBjbGVuKTsKIAkJCQkoKmNoYXJsZW4pKys7CkBAIC05NDUsNyArOTQ2LDcgQEAg Z2VuZXJhdGVfd2lsZGNhcmRfdHJnbShjb25zdCBjaGFyICpzdHIsIGludCBzbGVuLCBPaWQg Y29sbGF0aW9uKQogCSAqLwogCWV3b3JkID0gc3RyOwogCXdoaWxlICgoZXdvcmQgPSBnZXRf d2lsZGNhcmRfcGFydChld29yZCwgc2xlbiAtIChld29yZCAtIHN0ciksCi0JCQkJCQkJCQkg IGJ1ZiwgJmJ5dGVsZW4sICZjaGFybGVuKSkgIT0gTlVMTCkKKwkJCQkJCQkJCSAgYnVmLCAm Ynl0ZWxlbiwgJmNoYXJsZW4sIGNvbGxhdGlvbikpICE9IE5VTEwpCiAJewogI2lmZGVmIElH Tk9SRUNBU0UKIAkJYnVmMiA9IHN0cl90b2xvd2VyKGJ1ZiwgYnl0ZWxlbiwgY29sbGF0aW9u KTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jIGIvY29udHJp Yi9wZ190cmdtL3RyZ21fcmVnZXhwLmMKaW5kZXggY2RkMDRmYTAxYWQuLmE4OWRiZTE4ODBi IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYworKysgYi9jb250 cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYwpAQCAtODEwLDcgKzgxMCw3IEBAIGdldENvbG9y SW5mbyhyZWdleF90ICpyZWdleCwgVHJnbU5GQSAqdHJnbU5GQSwgT2lkIGNvbGxhdGlvbikK IAogCQkJaWYgKCFjb252ZXJ0UGdXY2hhcihjaGFyc1tqXSwgJmMsIGNvbGxhdGlvbikpCiAJ CQkJY29udGludWU7CQkvKiBvayB0byBpZ25vcmUgaXQgYWx0b2dldGhlciAqLwotCQkJaWYg KElTV09SRENIUihjLmJ5dGVzKSkKKwkJCWlmIChJU1dPUkRDSFIoYy5ieXRlcywgY29sbGF0 aW9uKSkKIAkJCQljb2xvckluZm8tPndvcmRDaGFyc1tjb2xvckluZm8tPndvcmRDaGFyc0Nv dW50KytdID0gYzsKIAkJCWVsc2UKIAkJCQljb2xvckluZm8tPmNvbnRhaW5zTm9uV29yZCA9 IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jIGIv c3JjL2JhY2tlbmQvdHNlYXJjaC90c19sb2NhbGUuYwppbmRleCAxZTk4ZjMyMTk1Ny4uM2Nh YWQyZTVjMmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNfbG9jYWxlLmMK KysrIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC90c19sb2NhbGUuYwpAQCAtMzcsNyArMzcsNyBA QCB0X2lzYWxwaGEoY29uc3QgY2hhciAqcHRyKQogfQogCiBpbnQKLXRfaXNhbG51bShjb25z dCBjaGFyICpwdHIpCit0X2lzYWxudW1fY29sbGF0aW9uKGNvbnN0IGNoYXIgKnB0ciwgT2lk IGNvbGxhdGlvbikKIHsKIAlwZ193Y2hhcgl3c3RyW1dDX0JVRl9MRU5dOwogCWludAkJCXds ZW4gcGdfYXR0cmlidXRlX3VudXNlZCgpOwpAQCAtNDYsNyArNDYsNyBAQCB0X2lzYWxudW0o Y29uc3QgY2hhciAqcHRyKQogCUFzc2VydCh3bGVuIDw9IDEpOwogCiAJLyogcGFzcyBzaW5n bGUgY2hhcmFjdGVyLCBvciBOVUwgaWYgZW1wdHkgKi8KLQlyZXR1cm4gcGdfaXN3YWxudW0o d3N0clswXSwgcGdfZGF0YWJhc2VfbG9jYWxlKCkpOworCXJldHVybiBwZ19pc3dhbG51bSh3 c3RyWzBdLCBwZ19uZXdsb2NhbGVfZnJvbV9jb2xsYXRpb24oY29sbGF0aW9uKSk7CiB9CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdHNlYXJjaC90c19sb2NhbGUuaCBiL3NyYy9p bmNsdWRlL3RzZWFyY2gvdHNfbG9jYWxlLmgKaW5kZXggY2VhNDE3YTkxYjUuLmIxYTJhNDVl ZDlkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90c2VhcmNoL3RzX2xvY2FsZS5oCisrKyBi L3NyYy9pbmNsdWRlL3RzZWFyY2gvdHNfbG9jYWxlLmgKQEAgLTE4LDYgKzE4LDcgQEAKIAog I2luY2x1ZGUgImxpYi9zdHJpbmdpbmZvLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgogI2luY2x1ZGUgInV0aWxzL3Bn X2xvY2FsZS5oIgogCiAvKiB3b3JraW5nIHN0YXRlIGZvciB0c2VhcmNoX3JlYWRsaW5lIChz aG91bGQgYmUgYSBsb2NhbCB2YXIgaW4gY2FsbGVyKSAqLwpAQCAtNDAsNyArNDEsMTMgQEAg dHlwZWRlZiBzdHJ1Y3QKICNkZWZpbmUgQ09QWUNIQVIoZCxzKQltZW1jcHkoZCwgcywgcGdf bWJsZW4ocykpCiAKIGV4dGVybiBpbnQJdF9pc2FscGhhKGNvbnN0IGNoYXIgKnB0cik7Ci1l eHRlcm4gaW50CXRfaXNhbG51bShjb25zdCBjaGFyICpwdHIpOworZXh0ZXJuIGludAl0X2lz YWxudW1fY29sbGF0aW9uKGNvbnN0IGNoYXIgKnB0ciwgT2lkIGNvbGxhdGlvbik7CisKK3N0 YXRpYyBpbmxpbmUgaW50Cit0X2lzYWxudW0oY29uc3QgY2hhciAqcHRyKQoreworCXJldHVy biB0X2lzYWxudW1fY29sbGF0aW9uKHB0ciwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKK30K IAogZXh0ZXJuIGJvb2wgdHNlYXJjaF9yZWFkbGluZV9iZWdpbih0c2VhcmNoX3JlYWRsaW5l X3N0YXRlICpzdHAsCiAJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKLS0gCjIu NTEuMAoK --------------5DsHqV6eH0lPVuBs2HNlTWMR Content-Type: text/x-patch; charset=UTF-8; name="v4-0001-Use-correct-collation-for-lowercasing.patch" Content-Disposition: attachment; filename="v4-0001-Use-correct-collation-for-lowercasing.patch" Content-Transfer-Encoding: base64 RnJvbSAzYzQ0MzQ3NGJkMWJhZTkyOTU0ODJkZGNjZTcwMzliOWMwYTI2MzdiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCAyMSBKYW4gMjAyNiAxNDo1NDoyOCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggdjQgMS8yXSBVc2UgY29ycmVjdCBjb2xsYXRpb24gZm9yIGxvd2VyY2FzaW5nCgpwZ190 cmdtIGNvbnZlcnRzIHRoZSBpbnB1dCB3b3JkcyB0byBsb3dlcmNhc2UgYmVmb3JlIGV4dHJh Y3RpbmcgdGhlCnRyaWdyYW1zLiBUaGUgbG93ZXJjYXNlIGNvbnZlcnNpb24gZGVwZW5kcyBv biB0aGUgY29sbGF0aW9uLiBQcmV2aW91c2x5LApwZ190cmdtIGFsd2F5cyB1c2VkIHRoZSBk ZWZhdWx0IGNvbGxhdGlvbi4gTm93LCB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbgppcyB1c2Vk IGluc3RlYWQuCi0tLQogY29udHJpYi9wZ190cmdtL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIC4uLi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0aW9u Lm91dCAgICB8IDQzICsrKysrKysrKysrKysKIC4uLi9wZ190cmdtL2V4cGVjdGVkL3BnX3Ry Z21fY29sbGF0aW9uXzEub3V0ICB8IDEwICsrKysKIGNvbnRyaWIvcGdfdHJnbS9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgICAgICB8ICAxICsKIGNvbnRyaWIvcGdfdHJnbS9zcWwvcGdf dHJnbV9jb2xsYXRpb24uc3FsICAgICB8IDI0ICsrKysrKysrCiBjb250cmliL3BnX3RyZ20v dHJnbS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogY29udHJpYi9wZ190cmdt L3RyZ21fZ2luLmMgICAgICAgICAgICAgICAgICAgIHwgIDcgKystCiBjb250cmliL3BnX3Ry Z20vdHJnbV9naXN0LmMgICAgICAgICAgICAgICAgICAgfCAxMCArKy0tCiBjb250cmliL3Bn X3RyZ20vdHJnbV9vcC5jICAgICAgICAgICAgICAgICAgICAgfCA2MCArKysrKysrKysrLS0t LS0tLS0tCiBjb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYyAgICAgICAgICAgICAgICAg fCAyMCArKystLS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwgNDgg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ190cmdtL2V4cGVj dGVkL3BnX3RyZ21fY29sbGF0aW9uLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIv cGdfdHJnbS9leHBlY3RlZC9wZ190cmdtX2NvbGxhdGlvbl8xLm91dAogY3JlYXRlIG1vZGUg MTAwNjQ0IGNvbnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCgpkaWZm IC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL01ha2VmaWxlIGIvY29udHJpYi9wZ190cmdtL01h a2VmaWxlCmluZGV4IDFmYmRjOWVjMWVmLi4xNDUwZjJhYWVhNyAxMDA2NDQKLS0tIGEvY29u dHJpYi9wZ190cmdtL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvcGdfdHJnbS9NYWtlZmlsZQpA QCAtMTQsNyArMTQsNyBAQCBEQVRBID0gcGdfdHJnbS0tMS41LS0xLjYuc3FsIHBnX3RyZ20t LTEuNC0tMS41LnNxbCBwZ190cmdtLS0xLjMtLTEuNC5zcWwgXAogCXBnX3RyZ20tLTEuMC0t MS4xLnNxbAogUEdGSUxFREVTQyA9ICJwZ190cmdtIC0gdHJpZ3JhbSBtYXRjaGluZyIKIAot UkVHUkVTUyA9IHBnX3RyZ20gcGdfd29yZF90cmdtIHBnX3N0cmljdF93b3JkX3RyZ20KK1JF R1JFU1MgPSBwZ190cmdtIHBnX3dvcmRfdHJnbSBwZ19zdHJpY3Rfd29yZF90cmdtIHBnX3Ry Z21fY29sbGF0aW9uCiAKIGlmZGVmIFVTRV9QR1hTCiBQR19DT05GSUcgPSBwZ19jb25maWcK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS9leHBlY3RlZC9wZ190cmdtX2NvbGxhdGlv bi5vdXQgYi9jb250cmliL3BnX3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NzJjZTg2NzY2NQot LS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfdHJnbS9leHBlY3RlZC9wZ190cmdtX2Nv bGxhdGlvbi5vdXQKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIFRoaXMgdGVzdCBpcyBmb3Ig SUNVIGNvbGxhdGlvbnMuCisgKi8KKy8qIHNraXAgdGVzdCBpZiBub3QgVVRGOCBzZXJ2ZXIg ZW5jb2Rpbmcgb3Igbm8gSUNVIGNvbGxhdGlvbnMgaW5zdGFsbGVkICovCitTRUxFQ1QgZ2V0 ZGF0YWJhc2VlbmNvZGluZygpIDw+ICdVVEY4JyBPUgorICAgICAgIChTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbHByb3ZpZGVyID0gJ2knIEFORCBjb2xs bmFtZSA8PiAndW5pY29kZScpID0gMAorICAgICAgIEFTIHNraXBfdGVzdCBcZ3NldAorXGlm IDpza2lwX3Rlc3QKK1xxdWl0CitcZW5kaWYKKy0tIFRlc3QgdGhhdCBsb3dlcmNhc2UgY29u dmVyc2lvbiBvZiB0cmlncmFtcyB1c2VzIHNwZWNpZmllZCBjb2xsYXRpb24KK0NSRUFURSBU QUJMRSB0ZXN0KGNvbCBURVhUIENPTExBVEUgInRyLXgtaWN1Iik7CitJTlNFUlQgSU5UTyB0 ZXN0IFZBTFVFUyAoJ0lTVEFOQlVMJyk7CitTRUxFQ1Qgc2hvd190cmdtKGNvbCkgRlJPTSB0 ZXN0OworICAgICAgICAgICAgICAgICAgICAgICBzaG93X3RyZ20gICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgezB4ZjMxZTFhLDB4ZmU1ODFkLDB4M2VmZDMwLGFuYixidWwsbmJ1 LHN0YSx0YW4sInVsICJ9CisoMSByb3cpCisKK1NFTEVDVCBzaG93X3RyZ20oJ0lTVEFOQlVM JyBDT0xMQVRFICJ0ci14LWljdSIpOworICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Ry Z20gICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgezB4ZjMxZTFhLDB4ZmU1ODFkLDB4 M2VmZDMwLGFuYixidWwsbmJ1LHN0YSx0YW4sInVsICJ9CisoMSByb3cpCisKK1NFTEVDVCBz aG93X3RyZ20oJ0lTVEFOQlVMJyBDT0xMQVRFICJDIik7CisgICAgICAgICAgICAgICAgICBz aG93X3RyZ20gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiICBpIiwiIGlzIixhbmIsYnVsLGlzdCxuYnUsc3Rh LHRhbiwidWwgIn0KKygxIHJvdykKKworU0VMRUNUIHNpbWlsYXJpdHkoJ8Sxc3RhbmJ1bCcg Q09MTEFURSAidHIteC1pY3UiLCAnSVNUQU5CVUwnIENPTExBVEUgInRyLXgtaWN1Iik7Cisg c2ltaWxhcml0eSAKKy0tLS0tLS0tLS0tLQorICAgICAgICAgIDEKKygxIHJvdykKKworU0VM RUNUIHNpbWlsYXJpdHkoJ8Sxc3RhbmJ1bCcgQ09MTEFURSAiQyIsICdJU1RBTkJVTCcgQ09M TEFURSAiQyIpOworIHNpbWlsYXJpdHkgCistLS0tLS0tLS0tLS0KKyAwLjU0NTQ1NDU2Ciso MSByb3cpCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS9leHBlY3RlZC9wZ190cmdt X2NvbGxhdGlvbl8xLm91dCBiL2NvbnRyaWIvcGdfdHJnbS9leHBlY3RlZC9wZ190cmdtX2Nv bGxhdGlvbl8xLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u OWE3MzdjMTY0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX3RyZ20vZXhwZWN0 ZWQvcGdfdHJnbV9jb2xsYXRpb25fMS5vdXQKQEAgLTAsMCArMSwxMCBAQAorLyoKKyAqIFRo aXMgdGVzdCBpcyBmb3IgSUNVIGNvbGxhdGlvbnMuCisgKi8KKy8qIHNraXAgdGVzdCBpZiBu b3QgVVRGOCBzZXJ2ZXIgZW5jb2Rpbmcgb3Igbm8gSUNVIGNvbGxhdGlvbnMgaW5zdGFsbGVk ICovCitTRUxFQ1QgZ2V0ZGF0YWJhc2VlbmNvZGluZygpIDw+ICdVVEY4JyBPUgorICAgICAg IChTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbHByb3ZpZGVy ID0gJ2knIEFORCBjb2xsbmFtZSA8PiAndW5pY29kZScpID0gMAorICAgICAgIEFTIHNraXBf dGVzdCBcZ3NldAorXGlmIDpza2lwX3Rlc3QKK1xxdWl0CitcZW5kaWYKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfdHJnbS9tZXNvbi5idWlsZCBiL2NvbnRyaWIvcGdfdHJnbS9tZXNvbi5i dWlsZAppbmRleCAzY2MyOTlkNWVhYS4uOTVkMjgwNmRkYTYgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvcGdfdHJnbS9tZXNvbi5idWlsZAorKysgYi9jb250cmliL3BnX3RyZ20vbWVzb24uYnVp bGQKQEAgLTQxLDYgKzQxLDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3BnX3RyZ20nLAogICAg ICAgJ3BnX3dvcmRfdHJnbScsCiAgICAgICAncGdfc3RyaWN0X3dvcmRfdHJnbScsCisgICAg ICAncGdfdHJnbV9jb2xsYXRpb24nLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9j b250cmliL3BnX3RyZ20vc3FsL3BnX3RyZ21fY29sbGF0aW9uLnNxbCBiL2NvbnRyaWIvcGdf dHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5hZmIzOTczYThiMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRy aWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCkBAIC0wLDAgKzEsMjQgQEAK Ky8qCisgKiBUaGlzIHRlc3QgaXMgZm9yIElDVSBjb2xsYXRpb25zLgorICovCisKKy8qIHNr aXAgdGVzdCBpZiBub3QgVVRGOCBzZXJ2ZXIgZW5jb2Rpbmcgb3Igbm8gSUNVIGNvbGxhdGlv bnMgaW5zdGFsbGVkICovCitTRUxFQ1QgZ2V0ZGF0YWJhc2VlbmNvZGluZygpIDw+ICdVVEY4 JyBPUgorICAgICAgIChTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUg Y29sbHByb3ZpZGVyID0gJ2knIEFORCBjb2xsbmFtZSA8PiAndW5pY29kZScpID0gMAorICAg ICAgIEFTIHNraXBfdGVzdCBcZ3NldAorXGlmIDpza2lwX3Rlc3QKK1xxdWl0CitcZW5kaWYK KworLS0gVGVzdCB0aGF0IGxvd2VyY2FzZSBjb252ZXJzaW9uIG9mIHRyaWdyYW1zIHVzZXMg c3BlY2lmaWVkIGNvbGxhdGlvbgorCitDUkVBVEUgVEFCTEUgdGVzdChjb2wgVEVYVCBDT0xM QVRFICJ0ci14LWljdSIpOworSU5TRVJUIElOVE8gdGVzdCBWQUxVRVMgKCdJU1RBTkJVTCcp OworU0VMRUNUIHNob3dfdHJnbShjb2wpIEZST00gdGVzdDsKK1NFTEVDVCBzaG93X3RyZ20o J0lTVEFOQlVMJyBDT0xMQVRFICJ0ci14LWljdSIpOworCitTRUxFQ1Qgc2hvd190cmdtKCdJ U1RBTkJVTCcgQ09MTEFURSAiQyIpOworCitTRUxFQ1Qgc2ltaWxhcml0eSgnxLFzdGFuYnVs JyBDT0xMQVRFICJ0ci14LWljdSIsICdJU1RBTkJVTCcgQ09MTEFURSAidHIteC1pY3UiKTsK K1NFTEVDVCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENPTExBVEUgIkMiLCAnSVNUQU5CVUwn IENPTExBVEUgIkMiKTsKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3RyZ20uaCBi L2NvbnRyaWIvcGdfdHJnbS90cmdtLmgKaW5kZXggY2EwMTc1ODUzNjkuLjE0N2VlZmFhM2M2 IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJnbS5oCisrKyBiL2NvbnRyaWIvcGdf dHJnbS90cmdtLmgKQEAgLTExOSw4ICsxMTksOCBAQCBleHRlcm4gZG91YmxlIHN0cmljdF93 b3JkX3NpbWlsYXJpdHlfdGhyZXNob2xkOwogZXh0ZXJuIGRvdWJsZSBpbmRleF9zdHJhdGVn eV9nZXRfbGltaXQoU3RyYXRlZ3lOdW1iZXIgc3RyYXRlZ3kpOwogZXh0ZXJuIHVpbnQzMiB0 cmdtMmludCh0cmdtICpwdHIpOwogZXh0ZXJuIHZvaWQgY29tcGFjdF90cmlncmFtKHRyZ20g KnRwdHIsIGNoYXIgKnN0ciwgaW50IGJ5dGVsZW4pOwotZXh0ZXJuIFRSR00gKmdlbmVyYXRl X3RyZ20oY2hhciAqc3RyLCBpbnQgc2xlbik7Ci1leHRlcm4gVFJHTSAqZ2VuZXJhdGVfd2ls ZGNhcmRfdHJnbShjb25zdCBjaGFyICpzdHIsIGludCBzbGVuKTsKK2V4dGVybiBUUkdNICpn ZW5lcmF0ZV90cmdtKGNoYXIgKnN0ciwgaW50IHNsZW4sIE9pZCBjb2xsYXRpb24pOworZXh0 ZXJuIFRSR00gKmdlbmVyYXRlX3dpbGRjYXJkX3RyZ20oY29uc3QgY2hhciAqc3RyLCBpbnQg c2xlbiwgT2lkIGNvbGxhdGlvbik7CiBleHRlcm4gZmxvYXQ0IGNudF9zbWwoVFJHTSAqdHJn MSwgVFJHTSAqdHJnMiwgYm9vbCBpbmV4YWN0KTsKIGV4dGVybiBib29sIHRyZ21fY29udGFp bmVkX2J5KFRSR00gKnRyZzEsIFRSR00gKnRyZzIpOwogZXh0ZXJuIGJvb2wgKnRyZ21fcHJl c2VuY2VfbWFwKFRSR00gKnF1ZXJ5LCBUUkdNICprZXkpOwpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wZ190cmdtL3RyZ21fZ2luLmMgYi9jb250cmliL3BnX3RyZ20vdHJnbV9naW4uYwppbmRl eCAwMTRiYjNjODQ4Yy4uMTI1ZTcxY2EyM2EgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJn bS90cmdtX2dpbi5jCisrKyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpbi5jCkBAIC00Miw3 ICs0Miw3IEBAIGdpbl9leHRyYWN0X3ZhbHVlX3RyZ20oUEdfRlVOQ1RJT05fQVJHUykKIAog CSpuZW50cmllcyA9IDA7CiAKLQl0cmcgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEFfQU5ZKHZh bCksIFZBUlNJWkVfQU5ZX0VYSERSKHZhbCkpOworCXRyZyA9IGdlbmVyYXRlX3RyZ20oVkFS REFUQV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIodmFsKSwgUEdfR0VUX0NPTExBVElP TigpKTsKIAl0cmdsZW4gPSBBUlJORUxFTSh0cmcpOwogCiAJaWYgKHRyZ2xlbiA+IDApCkBA IC05Myw3ICs5Myw3IEBAIGdpbl9leHRyYWN0X3F1ZXJ5X3RyZ20oUEdfRlVOQ1RJT05fQVJH UykKIAkJY2FzZSBXb3JkU2ltaWxhcml0eVN0cmF0ZWd5TnVtYmVyOgogCQljYXNlIFN0cmlj dFdvcmRTaW1pbGFyaXR5U3RyYXRlZ3lOdW1iZXI6CiAJCWNhc2UgRXF1YWxTdHJhdGVneU51 bWJlcjoKLQkJCXRyZyA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkodmFsKSwgVkFSU0la RV9BTllfRVhIRFIodmFsKSk7CisJCQl0cmcgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEFfQU5Z KHZhbCksIFZBUlNJWkVfQU5ZX0VYSERSKHZhbCksIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAJ CQlicmVhazsKIAkJY2FzZSBJTGlrZVN0cmF0ZWd5TnVtYmVyOgogI2lmbmRlZiBJR05PUkVD QVNFCkBAIC0xMDcsNyArMTA3LDggQEAgZ2luX2V4dHJhY3RfcXVlcnlfdHJnbShQR19GVU5D VElPTl9BUkdTKQogCQkJICogcG90ZW50aWFsbHktbWF0Y2hpbmcgc3RyaW5nIG11c3QgaW5j bHVkZS4KIAkJCSAqLwogCQkJdHJnID0gZ2VuZXJhdGVfd2lsZGNhcmRfdHJnbShWQVJEQVRB X0FOWSh2YWwpLAotCQkJCQkJCQkJCSBWQVJTSVpFX0FOWV9FWEhEUih2YWwpKTsKKwkJCQkJ CQkJCQkgVkFSU0laRV9BTllfRVhIRFIodmFsKSwKKwkJCQkJCQkJCQkgUEdfR0VUX0NPTExB VElPTigpKTsKIAkJCWJyZWFrOwogCQljYXNlIFJlZ0V4cElDYXNlU3RyYXRlZ3lOdW1iZXI6 CiAjaWZuZGVmIElHTk9SRUNBU0UKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS90cmdt X2dpc3QuYyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpc3QuYwppbmRleCAyZjBkNjE5ODVh NS4uMjJjYzJhNmY3YjEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpc3Qu YworKysgYi9jb250cmliL3BnX3RyZ20vdHJnbV9naXN0LmMKQEAgLTEyMyw3ICsxMjMsNyBA QCBndHJnbV9jb21wcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQlUUkdNCSAgICpyZXM7CiAJ CXRleHQJICAgKnZhbCA9IERhdHVtR2V0VGV4dFBQKGVudHJ5LT5rZXkpOwogCi0JCXJlcyA9 IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIodmFs KSk7CisJCXJlcyA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkodmFsKSwgVkFSU0laRV9B TllfRVhIRFIodmFsKSwgUEdfR0VUX0NPTExBVElPTigpKTsKIAkJcmV0dmFsID0gcGFsbG9j X29iamVjdChHSVNURU5UUlkpOwogCQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBvaW50ZXJH ZXREYXR1bShyZXMpLAogCQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdlLApAQCAtMjQy LDcgKzI0Miw4IEBAIGd0cmdtX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWNh c2UgU3RyaWN0V29yZFNpbWlsYXJpdHlTdHJhdGVneU51bWJlcjoKIAkJCWNhc2UgRXF1YWxT dHJhdGVneU51bWJlcjoKIAkJCQlxdHJnID0gZ2VuZXJhdGVfdHJnbShWQVJEQVRBKHF1ZXJ5 KSwKLQkJCQkJCQkJCSBxdWVyeXNpemUgLSBWQVJIRFJTWik7CisJCQkJCQkJCQkgcXVlcnlz aXplIC0gVkFSSERSU1osCisJCQkJCQkJCQkgUEdfR0VUX0NPTExBVElPTigpKTsKIAkJCQli cmVhazsKIAkJCWNhc2UgSUxpa2VTdHJhdGVneU51bWJlcjoKICNpZm5kZWYgSUdOT1JFQ0FT RQpAQCAtMjUxLDcgKzI1Miw4IEBAIGd0cmdtX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJH UykKIAkJCQkvKiBGQUxMIFRIUlUgKi8KIAkJCWNhc2UgTGlrZVN0cmF0ZWd5TnVtYmVyOgog CQkJCXF0cmcgPSBnZW5lcmF0ZV93aWxkY2FyZF90cmdtKFZBUkRBVEEocXVlcnkpLAotCQkJ CQkJCQkJCQkgIHF1ZXJ5c2l6ZSAtIFZBUkhEUlNaKTsKKwkJCQkJCQkJCQkJICBxdWVyeXNp emUgLSBWQVJIRFJTWiwKKwkJCQkJCQkJCQkJICBQR19HRVRfQ09MTEFUSU9OKCkpOwogCQkJ CWJyZWFrOwogCQkJY2FzZSBSZWdFeHBJQ2FzZVN0cmF0ZWd5TnVtYmVyOgogI2lmbmRlZiBJ R05PUkVDQVNFCkBAIC00NzUsNyArNDc3LDcgQEAgZ3RyZ21fZGlzdGFuY2UoUEdfRlVOQ1RJ T05fQVJHUykKIAl7CiAJCWNoYXIJICAgKm5ld2NhY2hlOwogCi0JCXF0cmcgPSBnZW5lcmF0 ZV90cmdtKFZBUkRBVEEocXVlcnkpLCBxdWVyeXNpemUgLSBWQVJIRFJTWik7CisJCXF0cmcg PSBnZW5lcmF0ZV90cmdtKFZBUkRBVEEocXVlcnkpLCBxdWVyeXNpemUgLSBWQVJIRFJTWiwg UEdfR0VUX0NPTExBVElPTigpKTsKIAogCQluZXdjYWNoZSA9IE1lbW9yeUNvbnRleHRBbGxv YyhmY2luZm8tPmZsaW5mby0+Zm5fbWN4dCwKIAkJCQkJCQkJCSAgTUFYQUxJR04ocXVlcnlz aXplKSArCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20vdHJnbV9vcC5jIGIvY29udHJp Yi9wZ190cmdtL3RyZ21fb3AuYwppbmRleCA4MTE4MmExNWUwNy4uZDRjNzVjYWVmZjkgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX29wLmMKKysrIGIvY29udHJpYi9wZ190 cmdtL3RyZ21fb3AuYwpAQCAtMzI0LDcgKzMyNCw3IEBAIG1ha2VfdHJpZ3JhbXModHJnbSAq dHB0ciwgY2hhciAqc3RyLCBpbnQgYnl0ZWxlbiwgaW50IGNoYXJsZW4pCiAgKiBSZXR1cm5z IGxlbmd0aCBvZiB0aGUgZ2VuZXJhdGVkIGFycmF5LgogICovCiBzdGF0aWMgaW50Ci1nZW5l cmF0ZV90cmdtX29ubHkodHJnbSAqdHJnLCBjaGFyICpzdHIsIGludCBzbGVuLCBUcmdtQm91 bmQgKmJvdW5kcykKK2dlbmVyYXRlX3RyZ21fb25seSh0cmdtICp0cmcsIGNoYXIgKnN0ciwg aW50IHNsZW4sIE9pZCBjb2xsYXRpb24sIFRyZ21Cb3VuZCAqYm91bmRzKQogewogCXRyZ20J ICAgKnRwdHI7CiAJY2hhcgkgICAqYnVmOwpAQCAtMzUyLDcgKzM1Miw3IEBAIGdlbmVyYXRl X3RyZ21fb25seSh0cmdtICp0cmcsIGNoYXIgKnN0ciwgaW50IHNsZW4sIFRyZ21Cb3VuZCAq Ym91bmRzKQogCXdoaWxlICgoYndvcmQgPSBmaW5kX3dvcmQoZXdvcmQsIHNsZW4gLSAoZXdv cmQgLSBzdHIpLCAmZXdvcmQsICZjaGFybGVuKSkgIT0gTlVMTCkKIAl7CiAjaWZkZWYgSUdO T1JFQ0FTRQotCQlid29yZCA9IHN0cl90b2xvd2VyKGJ3b3JkLCBld29yZCAtIGJ3b3JkLCBE RUZBVUxUX0NPTExBVElPTl9PSUQpOworCQlid29yZCA9IHN0cl90b2xvd2VyKGJ3b3JkLCBl d29yZCAtIGJ3b3JkLCBjb2xsYXRpb24pOwogCQlieXRlbGVuID0gc3RybGVuKGJ3b3JkKTsK ICNlbHNlCiAJCWJ5dGVsZW4gPSBld29yZCAtIGJ3b3JkOwpAQCAtNDA1LDcgKzQwNSw3IEBA IHByb3RlY3Rfb3V0X29mX21lbShpbnQgc2xlbikKICAqIFJldHVybnMgdGhlIHNvcnRlZCBh cnJheSBvZiB1bmlxdWUgdHJpZ3JhbXMuCiAgKi8KIFRSR00gKgotZ2VuZXJhdGVfdHJnbShj aGFyICpzdHIsIGludCBzbGVuKQorZ2VuZXJhdGVfdHJnbShjaGFyICpzdHIsIGludCBzbGVu LCBPaWQgY29sbGF0aW9uKQogewogCVRSR00JICAgKnRyZzsKIAlpbnQJCQlsZW47CkBAIC00 MTUsNyArNDE1LDcgQEAgZ2VuZXJhdGVfdHJnbShjaGFyICpzdHIsIGludCBzbGVuKQogCXRy ZyA9IChUUkdNICopIHBhbGxvYyhUUkdNSERSU0laRSArIHNpemVvZih0cmdtKSAqIChzbGVu IC8gMiArIDEpICogMyk7CiAJdHJnLT5mbGFnID0gQVJSS0VZOwogCi0JbGVuID0gZ2VuZXJh dGVfdHJnbV9vbmx5KEdFVEFSUih0cmcpLCBzdHIsIHNsZW4sIE5VTEwpOworCWxlbiA9IGdl bmVyYXRlX3RyZ21fb25seShHRVRBUlIodHJnKSwgc3RyLCBzbGVuLCBjb2xsYXRpb24sIE5V TEwpOwogCVNFVF9WQVJTSVpFKHRyZywgQ0FMQ0dUU0laRShBUlJLRVksIGxlbikpOwogCiAJ aWYgKGxlbiA9PSAwKQpAQCAtNjcxLDcgKzY3MSw3IEBAIGl0ZXJhdGVfd29yZF9zaW1pbGFy aXR5KGludCAqdHJnMmluZGV4ZXMsCiAgKi8KIHN0YXRpYyBmbG9hdDQKIGNhbGNfd29yZF9z aW1pbGFyaXR5KGNoYXIgKnN0cjEsIGludCBzbGVuMSwgY2hhciAqc3RyMiwgaW50IHNsZW4y LAotCQkJCQkgdWludDggZmxhZ3MpCisJCQkJCSB1aW50OCBmbGFncywgT2lkIGNvbGxhdGlv bikKIHsKIAlib29sCSAgICpmb3VuZDsKIAlwb3NfdHJnbSAgICpwdHJnOwpAQCAtNjk3LDgg KzY5Nyw4IEBAIGNhbGNfd29yZF9zaW1pbGFyaXR5KGNoYXIgKnN0cjEsIGludCBzbGVuMSwg Y2hhciAqc3RyMiwgaW50IHNsZW4yLAogCWVsc2UKIAkJYm91bmRzID0gTlVMTDsKIAotCWxl bjEgPSBnZW5lcmF0ZV90cmdtX29ubHkodHJnMSwgc3RyMSwgc2xlbjEsIE5VTEwpOwotCWxl bjIgPSBnZW5lcmF0ZV90cmdtX29ubHkodHJnMiwgc3RyMiwgc2xlbjIsIGJvdW5kcyk7CisJ bGVuMSA9IGdlbmVyYXRlX3RyZ21fb25seSh0cmcxLCBzdHIxLCBzbGVuMSwgY29sbGF0aW9u LCBOVUxMKTsKKwlsZW4yID0gZ2VuZXJhdGVfdHJnbV9vbmx5KHRyZzIsIHN0cjIsIHNsZW4y LCBjb2xsYXRpb24sIGJvdW5kcyk7CiAKIAlwdHJnID0gbWFrZV9wb3NpdGlvbmFsX3RyZ20o dHJnMSwgbGVuMSwgdHJnMiwgbGVuMik7CiAJbGVuID0gbGVuMSArIGxlbjI7CkBAIC05MTUs NyArOTE1LDcgQEAgZ2V0X3dpbGRjYXJkX3BhcnQoY29uc3QgY2hhciAqc3RyLCBpbnQgbGVu c3RyLAogICogIiBhIiwgImJjZCIgd291bGQgYmUgZXh0cmFjdGVkLgogICovCiBUUkdNICoK LWdlbmVyYXRlX3dpbGRjYXJkX3RyZ20oY29uc3QgY2hhciAqc3RyLCBpbnQgc2xlbikKK2dl bmVyYXRlX3dpbGRjYXJkX3RyZ20oY29uc3QgY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNv bGxhdGlvbikKIHsKIAlUUkdNCSAgICp0cmc7CiAJY2hhcgkgICAqYnVmLApAQCAtOTQ4LDcg Kzk0OCw3IEBAIGdlbmVyYXRlX3dpbGRjYXJkX3RyZ20oY29uc3QgY2hhciAqc3RyLCBpbnQg c2xlbikKIAkJCQkJCQkJCSAgYnVmLCAmYnl0ZWxlbiwgJmNoYXJsZW4pKSAhPSBOVUxMKQog CXsKICNpZmRlZiBJR05PUkVDQVNFCi0JCWJ1ZjIgPSBzdHJfdG9sb3dlcihidWYsIGJ5dGVs ZW4sIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJCWJ1ZjIgPSBzdHJfdG9sb3dlcihidWYs IGJ5dGVsZW4sIGNvbGxhdGlvbik7CiAJCWJ5dGVsZW4gPSBzdHJsZW4oYnVmMik7CiAjZWxz ZQogCQlidWYyID0gYnVmOwpAQCAtMTAwNyw3ICsxMDA3LDcgQEAgc2hvd190cmdtKFBHX0ZV TkNUSU9OX0FSR1MpCiAJdHJnbQkgICAqcHRyOwogCWludAkJCWk7CiAKLQl0cmcgPSBnZW5l cmF0ZV90cmdtKFZBUkRBVEFfQU5ZKGluKSwgVkFSU0laRV9BTllfRVhIRFIoaW4pKTsKKwl0 cmcgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEFfQU5ZKGluKSwgVkFSU0laRV9BTllfRVhIRFIo aW4pLCBQR19HRVRfQ09MTEFUSU9OKCkpOwogCWQgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIDEg KyBBUlJORUxFTSh0cmcpKTsKIAogCWZvciAoaSA9IDAsIHB0ciA9IEdFVEFSUih0cmcpOyBp IDwgQVJSTkVMRU0odHJnKTsgaSsrLCBwdHIrKykKQEAgLTExNzQsOCArMTE3NCw4IEBAIHNp bWlsYXJpdHkoUEdfRlVOQ1RJT05fQVJHUykKIAkJCSAgICp0cmcyOwogCWZsb2F0NAkJcmVz OwogCi0JdHJnMSA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9B TllfRVhIRFIoaW4xKSk7Ci0JdHJnMiA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkoaW4y KSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSk7CisJdHJnMSA9IGdlbmVyYXRlX3RyZ20oVkFS REFUQV9BTlkoaW4xKSwgVkFSU0laRV9BTllfRVhIRFIoaW4xKSwgUEdfR0VUX0NPTExBVElP TigpKTsKKwl0cmcyID0gZ2VuZXJhdGVfdHJnbShWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpF X0FOWV9FWEhEUihpbjIpLCBQR19HRVRfQ09MTEFUSU9OKCkpOwogCiAJcmVzID0gY250X3Nt bCh0cmcxLCB0cmcyLCBmYWxzZSk7CiAKQEAgLTExOTYsNyArMTE5Niw3IEBAIHdvcmRfc2lt aWxhcml0eShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzID0gY2FsY193b3JkX3NpbWlsYXJp dHkoVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9BTllfRVhIRFIoaW4xKSwKIAkJCQkJCQkg ICBWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjIpLAotCQkJCQkJCSAg IDApOworCQkJCQkJCSAgIDAsIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAKIAlQR19GUkVFX0lG X0NPUFkoaW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsKQEAgLTEyMTIsNyAr MTIxMiw3IEBAIHN0cmljdF93b3JkX3NpbWlsYXJpdHkoUEdfRlVOQ1RJT05fQVJHUykKIAog CXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVf QU5ZX0VYSERSKGluMSksCiAJCQkJCQkJICAgVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9B TllfRVhIRFIoaW4yKSwKLQkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfU1RSSUNUKTsKKwkJ CQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfU1RSSUNULCBQR19HRVRfQ09MTEFUSU9OKCkpOwog CiAJUEdfRlJFRV9JRl9DT1BZKGluMSwgMCk7CiAJUEdfRlJFRV9JRl9DT1BZKGluMiwgMSk7 CkBAIC0xMjIyLDkgKzEyMjIsMTAgQEAgc3RyaWN0X3dvcmRfc2ltaWxhcml0eShQR19GVU5D VElPTl9BUkdTKQogRGF0dW0KIHNpbWlsYXJpdHlfZGlzdChQR19GVU5DVElPTl9BUkdTKQog ewotCWZsb2F0NAkJcmVzID0gRGF0dW1HZXRGbG9hdDQoRGlyZWN0RnVuY3Rpb25DYWxsMihz aW1pbGFyaXR5LAotCQkJCQkJCQkJCQkJCQkgUEdfR0VUQVJHX0RBVFVNKDApLAotCQkJCQkJ CQkJCQkJCQkgUEdfR0VUQVJHX0RBVFVNKDEpKSk7CisJZmxvYXQ0CQlyZXMgPSBEYXR1bUdl dEZsb2F0NChEaXJlY3RGdW5jdGlvbkNhbGwyQ29sbChzaW1pbGFyaXR5LAorCQkJCQkJCQkJ CQkJCQkJIFBHX0dFVF9DT0xMQVRJT04oKSwKKwkJCQkJCQkJCQkJCQkJCSBQR19HRVRBUkdf REFUVU0oMCksCisJCQkJCQkJCQkJCQkJCQkgUEdfR0VUQVJHX0RBVFVNKDEpKSk7CiAKIAlQ R19SRVRVUk5fRkxPQVQ0KDEuMCAtIHJlcyk7CiB9CkBAIC0xMjMyLDkgKzEyMzMsMTAgQEAg c2ltaWxhcml0eV9kaXN0KFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQogc2ltaWxhcml0eV9v cChQR19GVU5DVElPTl9BUkdTKQogewotCWZsb2F0NAkJcmVzID0gRGF0dW1HZXRGbG9hdDQo RGlyZWN0RnVuY3Rpb25DYWxsMihzaW1pbGFyaXR5LAotCQkJCQkJCQkJCQkJCQkgUEdfR0VU QVJHX0RBVFVNKDApLAotCQkJCQkJCQkJCQkJCQkgUEdfR0VUQVJHX0RBVFVNKDEpKSk7CisJ ZmxvYXQ0CQlyZXMgPSBEYXR1bUdldEZsb2F0NChEaXJlY3RGdW5jdGlvbkNhbGwyQ29sbChz aW1pbGFyaXR5LAorCQkJCQkJCQkJCQkJCQkJIFBHX0dFVF9DT0xMQVRJT04oKSwKKwkJCQkJ CQkJCQkJCQkJCSBQR19HRVRBUkdfREFUVU0oMCksCisJCQkJCQkJCQkJCQkJCQkgUEdfR0VU QVJHX0RBVFVNKDEpKSk7CiAKIAlQR19SRVRVUk5fQk9PTChyZXMgPj0gc2ltaWxhcml0eV90 aHJlc2hvbGQpOwogfQpAQCAtMTI0OCw3ICsxMjUwLDcgQEAgd29yZF9zaW1pbGFyaXR5X29w KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXMgPSBjYWxjX3dvcmRfc2ltaWxhcml0eShWQVJE QVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjEpLAogCQkJCQkJCSAgIFZBUkRB VEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VYSERSKGluMiksCi0JCQkJCQkJICAgV09SRF9T SU1JTEFSSVRZX0NIRUNLX09OTFkpOworCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9DSEVD S19PTkxZLCBQR19HRVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwg MCk7CiAJUEdfRlJFRV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xMjY0LDcgKzEyNjYsNyBAQCB3 b3JkX3NpbWlsYXJpdHlfY29tbXV0YXRvcl9vcChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVz ID0gY2FsY193b3JkX3NpbWlsYXJpdHkoVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9BTllf RVhIRFIoaW4yKSwKIAkJCQkJCQkgICBWQVJEQVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9F WEhEUihpbjEpLAotCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9DSEVDS19PTkxZKTsKKwkJ CQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfQ0hFQ0tfT05MWSwgUEdfR0VUX0NPTExBVElPTigp KTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEsIDApOwogCVBHX0ZSRUVfSUZfQ09QWShpbjIs IDEpOwpAQCAtMTI4MCw3ICsxMjgyLDcgQEAgd29yZF9zaW1pbGFyaXR5X2Rpc3Rfb3AoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFf QU5ZKGluMSksIFZBUlNJWkVfQU5ZX0VYSERSKGluMSksCiAJCQkJCQkJICAgVkFSREFUQV9B TlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwKLQkJCQkJCQkgICAwKTsKKwkJCQkJ CQkgICAwLCBQR19HRVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwg MCk7CiAJUEdfRlJFRV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xMjk2LDcgKzEyOTgsNyBAQCB3 b3JkX3NpbWlsYXJpdHlfZGlzdF9jb21tdXRhdG9yX29wKFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAlyZXMgPSBjYWxjX3dvcmRfc2ltaWxhcml0eShWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpF X0FOWV9FWEhEUihpbjIpLAogCQkJCQkJCSAgIFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVf QU5ZX0VYSERSKGluMSksCi0JCQkJCQkJICAgMCk7CisJCQkJCQkJICAgMCwgUEdfR0VUX0NP TExBVElPTigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEsIDApOwogCVBHX0ZSRUVfSUZf Q09QWShpbjIsIDEpOwpAQCAtMTMxMiw3ICsxMzE0LDggQEAgc3RyaWN0X3dvcmRfc2ltaWxh cml0eV9vcChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzID0gY2FsY193b3JkX3NpbWlsYXJp dHkoVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9BTllfRVhIRFIoaW4xKSwKIAkJCQkJCQkg ICBWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjIpLAotCQkJCQkJCSAg IFdPUkRfU0lNSUxBUklUWV9DSEVDS19PTkxZIHwgV09SRF9TSU1JTEFSSVRZX1NUUklDVCk7 CisJCQkJCQkJICAgV09SRF9TSU1JTEFSSVRZX0NIRUNLX09OTFkgfCBXT1JEX1NJTUlMQVJJ VFlfU1RSSUNULAorCQkJCQkJCSAgIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAKIAlQR19GUkVF X0lGX0NPUFkoaW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsKQEAgLTEzMjgs NyArMTMzMSw4IEBAIHN0cmljdF93b3JkX3NpbWlsYXJpdHlfY29tbXV0YXRvcl9vcChQR19G VU5DVElPTl9BUkdTKQogCiAJcmVzID0gY2FsY193b3JkX3NpbWlsYXJpdHkoVkFSREFUQV9B TlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwKIAkJCQkJCQkgICBWQVJEQVRBX0FO WShpbjEpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjEpLAotCQkJCQkJCSAgIFdPUkRfU0lNSUxB UklUWV9DSEVDS19PTkxZIHwgV09SRF9TSU1JTEFSSVRZX1NUUklDVCk7CisJCQkJCQkJICAg V09SRF9TSU1JTEFSSVRZX0NIRUNLX09OTFkgfCBXT1JEX1NJTUlMQVJJVFlfU1RSSUNULAor CQkJCQkJCSAgIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4x LCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsKQEAgLTEzNDQsNyArMTM0OCw3IEBA IHN0cmljdF93b3JkX3NpbWlsYXJpdHlfZGlzdF9vcChQR19GVU5DVElPTl9BUkdTKQogCiAJ cmVzID0gY2FsY193b3JkX3NpbWlsYXJpdHkoVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9B TllfRVhIRFIoaW4xKSwKIAkJCQkJCQkgICBWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpFX0FO WV9FWEhEUihpbjIpLAotCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QpOworCQkJ CQkJCSAgIFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QsIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAK IAlQR19GUkVFX0lGX0NPUFkoaW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsK QEAgLTEzNjAsNyArMTM2NCw3IEBAIHN0cmljdF93b3JkX3NpbWlsYXJpdHlfZGlzdF9jb21t dXRhdG9yX29wKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXMgPSBjYWxjX3dvcmRfc2ltaWxh cml0eShWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjIpLAogCQkJCQkJ CSAgIFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVfQU5ZX0VYSERSKGluMSksCi0JCQkJCQkJ ICAgV09SRF9TSU1JTEFSSVRZX1NUUklDVCk7CisJCQkJCQkJICAgV09SRF9TSU1JTEFSSVRZ X1NUUklDVCwgUEdfR0VUX0NPTExBVElPTigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEs IDApOwogCVBHX0ZSRUVfSUZfQ09QWShpbjIsIDEpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9w Z190cmdtL3RyZ21fcmVnZXhwLmMgYi9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYwpp bmRleCAxZDFiNWZlMzA0ZC4uY2RkMDRmYTAxYWQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdf dHJnbS90cmdtX3JlZ2V4cC5jCisrKyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5j CkBAIC00NzksMTEgKzQ3OSwxMSBAQCB0eXBlZGVmIHN0cnVjdAogCiAvKiBwcm90b3R5cGVz IGZvciBwcml2YXRlIGZ1bmN0aW9ucyAqLwogc3RhdGljIFRSR00gKmNyZWF0ZVRyZ21ORkFJ bnRlcm5hbChyZWdleF90ICpyZWdleCwgVHJnbVBhY2tlZEdyYXBoICoqZ3JhcGgsCi0JCQkJ CQkJCSAgIE1lbW9yeUNvbnRleHQgcmNvbnRleHQpOworCQkJCQkJCQkgICBNZW1vcnlDb250 ZXh0IHJjb250ZXh0LCBPaWQgY29sbGF0aW9uKTsKIHN0YXRpYyB2b2lkIFJFX2NvbXBpbGUo cmVnZXhfdCAqcmVnZXgsIHRleHQgKnRleHRfcmUsCiAJCQkJCSAgIGludCBjZmxhZ3MsIE9p ZCBjb2xsYXRpb24pOwotc3RhdGljIHZvaWQgZ2V0Q29sb3JJbmZvKHJlZ2V4X3QgKnJlZ2V4 LCBUcmdtTkZBICp0cmdtTkZBKTsKLXN0YXRpYyBib29sIGNvbnZlcnRQZ1djaGFyKHBnX3dj aGFyIGMsIHRyZ21fbWJfY2hhciAqcmVzdWx0KTsKK3N0YXRpYyB2b2lkIGdldENvbG9ySW5m byhyZWdleF90ICpyZWdleCwgVHJnbU5GQSAqdHJnbU5GQSwgT2lkIGNvbGxhdGlvbik7Citz dGF0aWMgYm9vbCBjb252ZXJ0UGdXY2hhcihwZ193Y2hhciBjLCB0cmdtX21iX2NoYXIgKnJl c3VsdCwgT2lkIGNvbGxhdGlvbik7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1HcmFwaChUcmdt TkZBICp0cmdtTkZBKTsKIHN0YXRpYyB2b2lkIHByb2Nlc3NTdGF0ZShUcmdtTkZBICp0cmdt TkZBLCBUcmdtU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lkIGFkZEtleShUcmdtTkZBICp0 cmdtTkZBLCBUcmdtU3RhdGUgKnN0YXRlLCBUcmdtU3RhdGVLZXkgKmtleSk7CkBAIC01NTEs NyArNTUxLDcgQEAgY3JlYXRlVHJnbU5GQSh0ZXh0ICp0ZXh0X3JlLCBPaWQgY29sbGF0aW9u LAogCQkJICAgUkVHX0FEVkFOQ0VEIHwgUkVHX05PU1VCLCBjb2xsYXRpb24pOwogI2VuZGlm CiAKLQl0cmcgPSBjcmVhdGVUcmdtTkZBSW50ZXJuYWwoJnJlZ2V4LCBncmFwaCwgcmNvbnRl eHQpOworCXRyZyA9IGNyZWF0ZVRyZ21ORkFJbnRlcm5hbCgmcmVnZXgsIGdyYXBoLCByY29u dGV4dCwgY29sbGF0aW9uKTsKIAogCS8qIENsZWFuIHVwIGFsbCB0aGUgY3J1ZnQgd2UgY3Jl YXRlZCAoaW5jbHVkaW5nIHJlZ2V4KSAqLwogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj b250ZXh0KTsKQEAgLTU2NSw3ICs1NjUsNyBAQCBjcmVhdGVUcmdtTkZBKHRleHQgKnRleHRf cmUsIE9pZCBjb2xsYXRpb24sCiAgKi8KIHN0YXRpYyBUUkdNICoKIGNyZWF0ZVRyZ21ORkFJ bnRlcm5hbChyZWdleF90ICpyZWdleCwgVHJnbVBhY2tlZEdyYXBoICoqZ3JhcGgsCi0JCQkJ CSAgTWVtb3J5Q29udGV4dCByY29udGV4dCkKKwkJCQkJICBNZW1vcnlDb250ZXh0IHJjb250 ZXh0LCBPaWQgY29sbGF0aW9uKQogewogCVRSR00JICAgKnRyZzsKIAlUcmdtTkZBCQl0cmdt TkZBOwpAQCAtNTczLDcgKzU3Myw3IEBAIGNyZWF0ZVRyZ21ORkFJbnRlcm5hbChyZWdleF90 ICpyZWdleCwgVHJnbVBhY2tlZEdyYXBoICoqZ3JhcGgsCiAJdHJnbU5GQS5yZWdleCA9IHJl Z2V4OwogCiAJLyogQ29sbGVjdCBjb2xvciBpbmZvcm1hdGlvbiBmcm9tIHRoZSByZWdleCAq LwotCWdldENvbG9ySW5mbyhyZWdleCwgJnRyZ21ORkEpOworCWdldENvbG9ySW5mbyhyZWdl eCwgJnRyZ21ORkEsIGNvbGxhdGlvbik7CiAKICNpZmRlZiBUUkdNX1JFR0VYUF9ERUJVRwog CXByaW50U291cmNlTkZBKHJlZ2V4LCB0cmdtTkZBLmNvbG9ySW5mbywgdHJnbU5GQS5uY29s b3JzKTsKQEAgLTc2Miw3ICs3NjIsNyBAQCBSRV9jb21waWxlKHJlZ2V4X3QgKnJlZ2V4LCB0 ZXh0ICp0ZXh0X3JlLCBpbnQgY2ZsYWdzLCBPaWQgY29sbGF0aW9uKQogICogRmlsbCBUcmdt Q29sb3JJbmZvIHN0cnVjdHVyZSBmb3IgZWFjaCBjb2xvciB1c2luZyByZWdleCBleHBvcnQg ZnVuY3Rpb25zLgogICovCiBzdGF0aWMgdm9pZAotZ2V0Q29sb3JJbmZvKHJlZ2V4X3QgKnJl Z2V4LCBUcmdtTkZBICp0cmdtTkZBKQorZ2V0Q29sb3JJbmZvKHJlZ2V4X3QgKnJlZ2V4LCBU cmdtTkZBICp0cmdtTkZBLCBPaWQgY29sbGF0aW9uKQogewogCWludAkJCWNvbG9yc0NvdW50 ID0gcGdfcmVnX2dldG51bWNvbG9ycyhyZWdleCk7CiAJaW50CQkJaTsKQEAgLTgwOCw3ICs4 MDgsNyBAQCBnZXRDb2xvckluZm8ocmVnZXhfdCAqcmVnZXgsIFRyZ21ORkEgKnRyZ21ORkEp CiAJCXsKIAkJCXRyZ21fbWJfY2hhciBjOwogCi0JCQlpZiAoIWNvbnZlcnRQZ1djaGFyKGNo YXJzW2pdLCAmYykpCisJCQlpZiAoIWNvbnZlcnRQZ1djaGFyKGNoYXJzW2pdLCAmYywgY29s bGF0aW9uKSkKIAkJCQljb250aW51ZTsJCS8qIG9rIHRvIGlnbm9yZSBpdCBhbHRvZ2V0aGVy ICovCiAJCQlpZiAoSVNXT1JEQ0hSKGMuYnl0ZXMpKQogCQkJCWNvbG9ySW5mby0+d29yZENo YXJzW2NvbG9ySW5mby0+d29yZENoYXJzQ291bnQrK10gPSBjOwpAQCAtODI1LDcgKzgyNSw3 IEBAIGdldENvbG9ySW5mbyhyZWdleF90ICpyZWdleCwgVHJnbU5GQSAqdHJnbU5GQSkKICAq IFJldHVybnMgZmFsc2UgaWYgdGhlIGNoYXJhY3RlciBzaG91bGQgYmUgaWdub3JlZCBjb21w bGV0ZWx5LgogICovCiBzdGF0aWMgYm9vbAotY29udmVydFBnV2NoYXIocGdfd2NoYXIgYywg dHJnbV9tYl9jaGFyICpyZXN1bHQpCitjb252ZXJ0UGdXY2hhcihwZ193Y2hhciBjLCB0cmdt X21iX2NoYXIgKnJlc3VsdCwgT2lkIGNvbGxhdGlvbikKIHsKIAkvKiAicyIgaGFzIGVub3Vn aCBzcGFjZSBmb3IgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIGFuZCBhIHRyYWlsaW5nIE5VTCAq LwogCWNoYXIJCXNbTUFYX01VTFRJQllURV9DSEFSX0xFTiArIDFdOwpAQCAtODU3LDcgKzg1 Nyw3IEBAIGNvbnZlcnRQZ1djaGFyKHBnX3djaGFyIGMsIHRyZ21fbWJfY2hhciAqcmVzdWx0 KQogCSAqLwogI2lmZGVmIElHTk9SRUNBU0UKIAl7Ci0JCWNoYXIJICAgKmxvd2VyQ2FzZWQg PSBzdHJfdG9sb3dlcihzLCBzdHJsZW4ocyksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJ CWNoYXIJICAgKmxvd2VyQ2FzZWQgPSBzdHJfdG9sb3dlcihzLCBzdHJsZW4ocyksIGNvbGxh dGlvbik7CiAKIAkJaWYgKHN0cmNtcChsb3dlckNhc2VkLCBzKSAhPSAwKQogCQl7Ci0tIAoy LjUxLjAKCg== --------------5DsHqV6eH0lPVuBs2HNlTWMR--