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.98.2) (envelope-from ) id 1x77FT-000000006Wi-2duw for pgsql-hackers@arkaria.postgresql.org; Thu, 17 Sep 2026 08:13:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1x77FR-00000002vn0-2zyr for pgsql-hackers@arkaria.postgresql.org; Thu, 17 Sep 2026 08:13:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1x77FR-00000002vms-09nJ for pgsql-hackers@lists.postgresql.org; Thu, 17 Sep 2026 08:13:37 +0000 Received: from mail-wm2-x11.google.com ([2a00:1450:4864:31::11]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1x77FN-0000000064N-1gJY for pgsql-hackers@postgresql.org; Thu, 17 Sep 2026 08:13:35 +0000 Received: by mail-wm2-x11.google.com with SMTP id 5b1f17b1804b1-49b912d3920so4058525e9.1 for ; Thu, 17 Sep 2026 01:13:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789632811; x=1790237611; darn=postgresql.org; h=in-reply-to:content-language:references:cc:to:subject:user-agent :mime-version:date:message-id:content-type:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=o/KxYrtQ1CoxPJSDpNOnv772hzFVUN/3AhWsup6uR3s=; b=Vy5i75XaVgpqgiqiMVjIQDK13aJEagEVADZ0uIHk7NIJlBoJYHmj0z6C6Up4f/FxTV TvrVh+OCIItL8oVpD8fA+GjLI6jUjn6ZRCXSuvfSn3IfpX3rRJ05gGjU6PCWCCcCjQht ob8wgZ6T0FAmh1ywifaJl1Mju244fUxqj/IB4hBZFfgjhzAgz+APbZFzwiZA3/fwOzGX 8nJdeFQTBmn8uKZfGfTKzpqfDnCoHKDJnXMoI6DQILizjR8nmrb8TQH7begKc2OqpG7i kigVItbrI+D2AXDjcNYpWMATGLgGkVBV4dZa+wY5+gHnuTzk3ZuJs7VJzs9ES9WyRJpm cUyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789632811; x=1790237611; h=in-reply-to:content-language:references:cc:to:subject:user-agent :mime-version:date:message-id:content-type:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=o/KxYrtQ1CoxPJSDpNOnv772hzFVUN/3AhWsup6uR3s=; b=2kw6H9IvI4RlBXVHIeY5uSwG54b5dZCSGNJNHxDxCdk7s0Z/8itRJ/zEE8YpTUx7Tg ivN+N+o9PxoO5WJkikK0A7bmGaN6DJ970l793gPNThqIpr98ZNWkUoyEEo/ssDxwC5EW lzSmHvCO2mnLGiHF+0YIlRAa4YcNTBOT34k45LrNM3H253LPU/B6W+dbWoZv/sQ/oLAD Qu+p8s3ZCNZyCYPAdI78fRsiZ8ENy61nhpZbP7OMuV75d6JePWMMMHqoTXtuzT68+HS8 NE7RJdyVCsndL0Z0MKXRxewF/b0IwZ9R60c848ok+Ug5NebWPI34KO3MPqjBZ+9EYyc2 /AuQ== X-Forwarded-Encrypted: i=1; AKwUvBxqbODTXMe5qy0LSsJY7o9+FjrGH5QLOJ9z296od5K/M54uQIgTe/B0jKE1+ED2Ck+sOYUUOpmQhCMVZgzo@postgresql.org X-Gm-Message-State: AFuF++mhGk3rl+1BiEOSTqrX9cp5rIoF4gLuPdv9U7fl897Qvv+S9vf/ HtWrNVjqj+zL2f6XbdbA6vXJgmFtypf+DrPaJ4OlvTynFvh99QGs881q X-Gm-Gg: AYBFou33VTCJzBrfP+C1HeQxncLK0bLf/MbmxpwojfmDRbQYTIU7cV7aCdScnZGKkHT ObOHoCQp5l+2OR/I/6/MSvrihgXZpqZjDkFM40fSbu5RqN/Cyz/creYQCia7ydhyNsaBWwj0KlL ULjGxihYjfqc5E4pLdNijyVe2uc2OM5zGtuYc9SdY4eGsNu1XvgIx2mjpYyXcclfll9IhE7TVzZ GwZ8iHSmKKOgPvUJWf9/su17GXUL53rBGYOqXpz/+uMb0uwI58UKl9RSf7gLhgcWSzQyr8aNhtg gT+D1TusyX8+9VxQBvbvzAmQhzMbPN2x4W3ROE3eB6G72E91Bb51V/sdM+14RKNm0KX2ed3w4s8 XYb4L3s6UYiequKe3fPqAWnFbycJjVuMLDB5dL13pLVv/seHQ2FMHk+6GojL4PM/CFEBwGC5x5n kzC7e5PCecGS3KQujABMuu3MOs8r0hG5Wwkb3HVbJamxed2pYkzPx2FPAW3ksclP6gcVoLgDy6b YWiuhc6VVG6sY3LuE2WE7gnbh0fReflIPnecAMSWx+QCpr8NNnK5LlmgvoPk2+7/gWb+z+yHIdA yJL6wEEjoLj6dzpNC2UefqnQOZTdLRgufeO7 X-Received: by 2002:a05:600c:3b9c:b0:49e:74b6:740f with SMTP id 5b1f17b1804b1-49eb732e48cmr88383295e9.17.1789632810793; Thu, 17 Sep 2026 01:13:30 -0700 (PDT) Received: from ?IPV6:2003:c1:5f42:fe03:76f3:c200:ac55:baf5? (p200300062339a60376f3c200ac55baf5.dip0.t-ipconnect.de. [2003:6:2339:a603:76f3:c200:ac55:baf5]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fbfd9f49dsm15544565e9.1.2026.09.17.01.13.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Sep 2026 01:13:29 -0700 (PDT) From: David Geier X-Google-Original-From: David Geier Content-Type: multipart/mixed; boundary="------------X1E0f7817rrcBDr2DJyWchjG" Message-ID: Date: Thu, 17 Sep 2026 10:13:28 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Use correct collation in pg_trgm To: David Geier , 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> <7ae842f2-779c-466e-841d-d11e419a9428@gmail.com> <27121a4c-2186-47ad-84c4-136b99413df1@gmail.com> <8e054492-3984-403e-a959-9b2a6a85f3eb@gmail.com> Content-Language: en-US In-Reply-To: <8e054492-3984-403e-a959-9b2a6a85f3eb@gmail.com> 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. --------------X1E0f7817rrcBDr2DJyWchjG Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit > Attached is v6 of the patch which fixes a problem with the tests: > > pg_trgm_collation_1.out mistakenly contained \endif at the end of the file. Attached is v7 of the patch set. No changes, except for rebasing on latest master and changing the "len" argument to "mblen" in extern int    t_is##character_class##_with_len_collation(const char *ptr, int mblen, Oid collation); \ -- David Geier --------------X1E0f7817rrcBDr2DJyWchjG Content-Type: text/x-patch; charset=UTF-8; name="v7-0002-Use-correct-collation-for-finding-word-boundaries.patch" Content-Disposition: attachment; filename*0="v7-0002-Use-correct-collation-for-finding-word-boundaries.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjMTJmOTBmZTkyMWMzMzM0OWZlN2Y0Y2QwMjU5MjlhYTk0ODBjZjQyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCAyMyBKYW4gMjAyNiAxNTozOTowNiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggdjcgMi8zXSBVc2UgY29ycmVjdCBjb2xsYXRpb24gZm9yIGZpbmRpbmcgd29yZCBib3Vu ZGFyaWVzCgpwZ190cmdtIGZpbmRzIGFsbCB3b3JkcyBpbiB0aGUgaW5wdXQgc3RyaW5nIGFu ZCBjcmVhdGVzIHRyaWdyYW1zIGZvcgp0aGVtLiBXb3JkIGNoYXJhY3RlcnMgYXJlIGFscGhh LW51bWVyaWMgY2hhcmFjdGVycy4gV2hhdCBxdWFsaWZpZXMgYXMKYWxwaGEtbnVtZXJpYyBj aGFyYWN0ZXIgZGVwZW5kcyBvbiB0aGUgY29sbGF0aW9uLiBQcmV2aW91c2x5LCBwZ190cmdt CmFsd2F5cyB1c2VkIHRoZSBkZWZhdWx0IGNvbGxhdGlvbi4gTm93IHRoZSBzcGVjaWZpZWQg Y29sbGF0aW9uIGlzIHVzZWQKaW5zdGVhZC4KLS0tCiAuLi4vcGdfdHJnbS9leHBlY3RlZC9w Z190cmdtX2NvbGxhdGlvbi5vdXQgICAgfCAxMyArKysrKysrKysrKysKIGNvbnRyaWIvcGdf dHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsICAgICB8ICA1ICsrKysrCiBjb250cmli L3BnX3RyZ20vdHJnbS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIGNv bnRyaWIvcGdfdHJnbS90cmdtX29wLmMgICAgICAgICAgICAgICAgICAgICB8IDIwICsrKysr KysrKy0tLS0tLS0tLS0KIGNvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jICAgICAg ICAgICAgICAgfCAgOCArKysrLS0tLQogc3JjL2luY2x1ZGUvdHNlYXJjaC90c19sb2NhbGUu aCAgICAgICAgICAgICAgIHwgIDMgKystCiA3IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlv bnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS9l eHBlY3RlZC9wZ190cmdtX2NvbGxhdGlvbi5vdXQgYi9jb250cmliL3BnX3RyZ20vZXhwZWN0 ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0CmluZGV4IDQ3MmNlODY3NjY1Li4wY2M1M2VkZDgy MSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0 aW9uLm91dAorKysgYi9jb250cmliL3BnX3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRp b24ub3V0CkBAIC00MSwzICs0MSwxNiBAQCBTRUxFQ1Qgc2ltaWxhcml0eSgnxLFzdGFuYnVs JyBDT0xMQVRFICJDIiwgJ0lTVEFOQlVMJyBDT0xMQVRFICJDIik7CiAgMC41NDU0NTQ1Ngog KDEgcm93KQogCistLSBUZXN0IHRoYXQgd29yZCBib3VuZGFyeSBpZGVudGlmaWNhdGlvbiB1 c2VzIHNwZWNpZmllZCBjb2xsYXRpb24KK1NFTEVDVCBzaG93X3RyZ20oJ2hlbGxvxLF0ZXN0 SXdvcmxkxLBjb2RlJyBDT0xMQVRFICJ0ci14LWljdSIpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3RyZ20gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsweDhmYzBhMiwweDkzZGZiZiwweDFiZjQzYywi ICBoIiwiIGhlIiwweDIyZDQ0ZiwweDQzOThmZixjb2QsImRlICIsZGljLGVsbCxlc3QsaGVs LGljbyxsZGksbGxvLG9kZSxvcmwsMHg3MWI4ZjUscmxkLHRlcyx3b3J9CisoMSByb3cpCisK K1NFTEVDVCBzaG93X3RyZ20oJ2hlbGxvxLF0ZXN0SXdvcmxkxLBjb2RlJyBDT0xMQVRFICJD Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNob3dfdHJnbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgeyIgIGMiLCIgIGgiLCIgIHQiLCIgY28iLCIgaGUiLCIgdGUiLGNvZCwi ZGUgIixlbGwsZXN0LGhlbCxpd28sImxkICIsbGxvLCJsbyAiLG9kZSxvcmwscmxkLHN0aSx0 ZXMsdGl3LHdvcn0KKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3Nx bC9wZ190cmdtX2NvbGxhdGlvbi5zcWwgYi9jb250cmliL3BnX3RyZ20vc3FsL3BnX3RyZ21f Y29sbGF0aW9uLnNxbAppbmRleCBhZmIzOTczYThiMy4uZTFhNWM3YzVmYTggMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCisrKyBiL2Nv bnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCkBAIC0yMiwzICsyMiw4 IEBAIFNFTEVDVCBzaG93X3RyZ20oJ0lTVEFOQlVMJyBDT0xMQVRFICJDIik7CiBTRUxFQ1Qg c2ltaWxhcml0eSgnxLFzdGFuYnVsJyBDT0xMQVRFICJ0ci14LWljdSIsICdJU1RBTkJVTCcg Q09MTEFURSAidHIteC1pY3UiKTsKIFNFTEVDVCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENP TExBVEUgIkMiLCAnSVNUQU5CVUwnIENPTExBVEUgIkMiKTsKIAorLS0gVGVzdCB0aGF0IHdv cmQgYm91bmRhcnkgaWRlbnRpZmljYXRpb24gdXNlcyBzcGVjaWZpZWQgY29sbGF0aW9uCisK K1NFTEVDVCBzaG93X3RyZ20oJ2hlbGxvxLF0ZXN0SXdvcmxkxLBjb2RlJyBDT0xMQVRFICJ0 ci14LWljdSIpOworU0VMRUNUIHNob3dfdHJnbSgnaGVsbG/EsXRlc3RJd29ybGTEsGNvZGUn IENPTExBVEUgIkMiKTsKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3RyZ20uaCBi L2NvbnRyaWIvcGdfdHJnbS90cmdtLmgKaW5kZXggYjY5MTFlOTE0NTguLjNjNGRiMTI5ZTIw IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJnbS5oCisrKyBiL2NvbnRyaWIvcGdf dHJnbS90cmdtLmgKQEAgLTQ3LDkgKzQ3LDkgQEAgdHlwZWRlZiBjaGFyIHRyZ21bM107CiB9 IHdoaWxlKDApCiBleHRlcm4gaW50CSgqQ01QVFJHTSkgKGNvbnN0IHZvaWQgKmEsIGNvbnN0 IHZvaWQgKmIpOwogCi0jZGVmaW5lIElTV09SRENIUihjLCBsZW4pCSh0X2lzYWxudW1fd2l0 aF9sZW4oYywgbGVuKSkKLSNkZWZpbmUgSVNQUklOVEFCTEVDSEFSKGEpCSggaXNhc2NpaSgg Kih1bnNpZ25lZCBjaGFyKikoYSkgKSAmJiAoaXNhbG51bSggKih1bnNpZ25lZCBjaGFyKiko YSkgKSB8fCAqKHVuc2lnbmVkIGNoYXIqKShhKT09JyAnKSApCi0jZGVmaW5lIElTUFJJTlRB QkxFVFJHTSh0KQkoIElTUFJJTlRBQkxFQ0hBUiggKChjaGFyKikodCkpICkgJiYgSVNQUklO VEFCTEVDSEFSKCAoKGNoYXIqKSh0KSkrMSApICYmIElTUFJJTlRBQkxFQ0hBUiggKChjaGFy KikodCkpKzIgKSApCisjZGVmaW5lIElTV09SRENIUihjLCBsZW4sIGNvbGxhdGlvbikJKHRf aXNhbG51bV93aXRoX2xlbl9jb2xsYXRpb24oYywgbGVuLCBjb2xsYXRpb24pKQorI2RlZmlu ZSBJU1BSSU5UQUJMRUNIQVIoYSkJCQkJKCBpc2FzY2lpKCAqKHVuc2lnbmVkIGNoYXIqKShh KSApICYmIChpc2FsbnVtKCAqKHVuc2lnbmVkIGNoYXIqKShhKSApIHx8ICoodW5zaWduZWQg Y2hhciopKGEpPT0nICcpICkKKyNkZWZpbmUgSVNQUklOVEFCTEVUUkdNKHQpCQkJCSggSVNQ UklOVEFCTEVDSEFSKCAoKGNoYXIqKSh0KSkgKSAmJiBJU1BSSU5UQUJMRUNIQVIoICgoY2hh ciopKHQpKSsxICkgJiYgSVNQUklOVEFCTEVDSEFSKCAoKGNoYXIqKSh0KSkrMiApICkKIAog I2RlZmluZSBJU0VTQ0FQRUNIQVIoeCkgKCooeCkgPT0gJ1xcJykJLyogV2lsZGNhcmQgZXNj YXBlIGNoYXJhY3RlciAqLwogI2RlZmluZSBJU1dJTERDQVJEQ0hBUih4KSAoKih4KSA9PSAn XycgfHwgKih4KSA9PSAnJScpCS8qIFdpbGRjYXJkCmRpZmYgLS1naXQgYS9jb250cmliL3Bn X3RyZ20vdHJnbV9vcC5jIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwppbmRleCBjMDRk NzI2NTE1My4uZGQ4OGIxZmRkZjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdt X29wLmMKKysrIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwpAQCAtMzM1LDcgKzMzNSw3 IEBAIHNob3dfbGltaXQoUEdfRlVOQ1RJT05fQVJHUykKICAqIGVuZHdvcmQgcG9pbnRzIHRv IHRoZSBjaGFyYWN0ZXIgYWZ0ZXIgd29yZAogICovCiBzdGF0aWMgY2hhciAqCi1maW5kX3dv cmQoY2hhciAqc3RyLCBpbnQgbGVuc3RyLCBjaGFyICoqZW5kd29yZCkKK2ZpbmRfd29yZChj aGFyICpzdHIsIGludCBsZW5zdHIsIGNoYXIgKiplbmR3b3JkLCBPaWQgY29sbGF0aW9uKQog ewogCWNoYXIJICAgKmJlZ2lud29yZCA9IHN0cjsKIAljb25zdCBjaGFyICplbmRzdHIgPSBz dHIgKyBsZW5zdHI7CkBAIC0zNDQsNyArMzQ0LDcgQEAgZmluZF93b3JkKGNoYXIgKnN0ciwg aW50IGxlbnN0ciwgY2hhciAqKmVuZHdvcmQpCiAJewogCQlpbnQJCQljbGVuID0gcGdfbWJs ZW5fcmFuZ2UoYmVnaW53b3JkLCBlbmRzdHIpOwogCi0JCWlmIChJU1dPUkRDSFIoYmVnaW53 b3JkLCBjbGVuKSkKKwkJaWYgKElTV09SRENIUihiZWdpbndvcmQsIGNsZW4sIGNvbGxhdGlv bikpCiAJCQlicmVhazsKIAkJYmVnaW53b3JkICs9IGNsZW47CiAJfQpAQCAtMzU3LDcgKzM1 Nyw3IEBAIGZpbmRfd29yZChjaGFyICpzdHIsIGludCBsZW5zdHIsIGNoYXIgKiplbmR3b3Jk KQogCXsKIAkJaW50CQkJY2xlbiA9IHBnX21ibGVuX3JhbmdlKCplbmR3b3JkLCBlbmRzdHIp OwogCi0JCWlmICghSVNXT1JEQ0hSKCplbmR3b3JkLCBjbGVuKSkKKwkJaWYgKCFJU1dPUkRD SFIoKmVuZHdvcmQsIGNsZW4sIGNvbGxhdGlvbikpCiAJCQlicmVhazsKIAkJKmVuZHdvcmQg Kz0gY2xlbjsKIAl9CkBAIC01MzMsNyArNTMzLDcgQEAgZ2VuZXJhdGVfdHJnbV9vbmx5KGdy b3dhYmxlX3RyZ21fYXJyYXkgKmRzdCwgY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxh dGlvbiwKIAl9CiAKIAlld29yZCA9IHN0cjsKLQl3aGlsZSAoKGJ3b3JkID0gZmluZF93b3Jk KGV3b3JkLCBzbGVuIC0gKGV3b3JkIC0gc3RyKSwgJmV3b3JkKSkgIT0gTlVMTCkKKwl3aGls ZSAoKGJ3b3JkID0gZmluZF93b3JkKGV3b3JkLCBzbGVuIC0gKGV3b3JkIC0gc3RyKSwgJmV3 b3JkLCBjb2xsYXRpb24pKSAhPSBOVUxMKQogCXsKIAkJaW50CQkJb2xkbGVuOwogCkBAIC05 NTAsNyArOTUwLDcgQEAgY2FsY193b3JkX3NpbWlsYXJpdHkoY2hhciAqc3RyMSwgaW50IHNs ZW4xLCBjaGFyICpzdHIyLCBpbnQgc2xlbjIsCiAgKi8KIHN0YXRpYyBjb25zdCBjaGFyICoK IGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbnN0ciwKLQkJCQkg IGNoYXIgKmJ1ZiwgaW50ICpieXRlbGVuKQorCQkJCSAgY2hhciAqYnVmLCBpbnQgKmJ5dGVs ZW4sIE9pZCBjb2xsYXRpb24pCiB7CiAJY29uc3QgY2hhciAqYmVnaW53b3JkID0gc3RyOwog CWNvbnN0IGNoYXIgKmVuZHdvcmQ7CkBAIC05NzMsNyArOTczLDcgQEAgZ2V0X3dpbGRjYXJk X3BhcnQoY29uc3QgY2hhciAqc3RyLCBpbnQgbGVuc3RyLAogCiAJCWlmIChpbl9lc2NhcGUp CiAJCXsKLQkJCWlmIChJU1dPUkRDSFIoYmVnaW53b3JkLCBjbGVuKSkKKwkJCWlmIChJU1dP UkRDSFIoYmVnaW53b3JkLCBjbGVuLCBjb2xsYXRpb24pKQogCQkJCWJyZWFrOwogCQkJaW5f ZXNjYXBlID0gZmFsc2U7CiAJCQlpbl9sZWFkaW5nX3dpbGRjYXJkX21ldGEgPSBmYWxzZTsK QEAgLTk4NCw3ICs5ODQsNyBAQCBnZXRfd2lsZGNhcmRfcGFydChjb25zdCBjaGFyICpzdHIs IGludCBsZW5zdHIsCiAJCQkJaW5fZXNjYXBlID0gdHJ1ZTsKIAkJCWVsc2UgaWYgKElTV0lM RENBUkRDSEFSKGJlZ2lud29yZCkpCiAJCQkJaW5fbGVhZGluZ193aWxkY2FyZF9tZXRhID0g dHJ1ZTsKLQkJCWVsc2UgaWYgKElTV09SRENIUihiZWdpbndvcmQsIGNsZW4pKQorCQkJZWxz ZSBpZiAoSVNXT1JEQ0hSKGJlZ2lud29yZCwgY2xlbiwgY29sbGF0aW9uKSkKIAkJCQlicmVh azsKIAkJCWVsc2UKIAkJCQlpbl9sZWFkaW5nX3dpbGRjYXJkX21ldGEgPSBmYWxzZTsKQEAg LTEwMjIsNyArMTAyMiw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNoYXIgKnN0ciwg aW50IGxlbnN0ciwKIAkJY2xlbiA9IHBnX21ibGVuX3JhbmdlKGVuZHdvcmQsIGVuZHN0cik7 CiAJCWlmIChpbl9lc2NhcGUpCiAJCXsKLQkJCWlmIChJU1dPUkRDSFIoZW5kd29yZCwgY2xl bikpCisJCQlpZiAoSVNXT1JEQ0hSKGVuZHdvcmQsIGNsZW4sIGNvbGxhdGlvbikpCiAJCQl7 CiAJCQkJbWVtY3B5KHMsIGVuZHdvcmQsIGNsZW4pOwogCQkJCXMgKz0gY2xlbjsKQEAgLTEw NDksNyArMTA0OSw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNoYXIgKnN0ciwgaW50 IGxlbnN0ciwKIAkJCQlpbl90cmFpbGluZ193aWxkY2FyZF9tZXRhID0gdHJ1ZTsKIAkJCQli cmVhazsKIAkJCX0KLQkJCWVsc2UgaWYgKElTV09SRENIUihlbmR3b3JkLCBjbGVuKSkKKwkJ CWVsc2UgaWYgKElTV09SRENIUihlbmR3b3JkLCBjbGVuLCBjb2xsYXRpb24pKQogCQkJewog CQkJCW1lbWNweShzLCBlbmR3b3JkLCBjbGVuKTsKIAkJCQlzICs9IGNsZW47CkBAIC0xMTEz LDcgKzExMTMsNyBAQCBnZW5lcmF0ZV93aWxkY2FyZF90cmdtKGNvbnN0IGNoYXIgKnN0ciwg aW50IHNsZW4sIE9pZCBjb2xsYXRpb24pCiAJICovCiAJZXdvcmQgPSBzdHI7CiAJd2hpbGUg KChld29yZCA9IGdldF93aWxkY2FyZF9wYXJ0KGV3b3JkLCBzbGVuIC0gKGV3b3JkIC0gc3Ry KSwKLQkJCQkJCQkJCSAgYnVmLCAmYnl0ZWxlbikpICE9IE5VTEwpCisJCQkJCQkJCQkgIGJ1 ZiwgJmJ5dGVsZW4sIGNvbGxhdGlvbikpICE9IE5VTEwpCiAJewogCQljaGFyCSAgICp3b3Jk OwogCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYyBiL2NvbnRy aWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jCmluZGV4IDBlNzJlZmEwMzc4Li5kZDQ5ZTE1NDMz MSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ190cmdtL3RyZ21fcmVnZXhwLmMKKysrIGIvY29u dHJpYi9wZ190cmdtL3RyZ21fcmVnZXhwLmMKQEAgLTgxMCw3ICs4MTAsNyBAQCBnZXRDb2xv ckluZm8ocmVnZXhfdCAqcmVnZXgsIFRyZ21ORkEgKnRyZ21ORkEsIE9pZCBjb2xsYXRpb24p CiAKIAkJCWlmICghY2xlbikKIAkJCQljb250aW51ZTsJCS8qIG9rIHRvIGlnbm9yZSBpdCBh bHRvZ2V0aGVyICovCi0JCQlpZiAoSVNXT1JEQ0hSKGMuYnl0ZXMsIGNsZW4pKQorCQkJaWYg KElTV09SRENIUihjLmJ5dGVzLCBjbGVuLCBjb2xsYXRpb24pKQogCQkJCWNvbG9ySW5mby0+ d29yZENoYXJzW2NvbG9ySW5mby0+d29yZENoYXJzQ291bnQrK10gPSBjOwogCQkJZWxzZQog CQkJCWNvbG9ySW5mby0+Y29udGFpbnNOb25Xb3JkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3RzZWFyY2gvdHNfbG9jYWxlLmMgYi9zcmMvYmFja2VuZC90c2VhcmNoL3Rz X2xvY2FsZS5jCmluZGV4IGRmMDJmZmIxMmZkLi42ZjMzMWUwNTRhMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdHNlYXJjaC90c19sb2NhbGUuYworKysgYi9zcmMvYmFja2VuZC90c2Vh cmNoL3RzX2xvY2FsZS5jCkBAIC0yNiwyNyArMjYsMjcgQEAgc3RhdGljIHZvaWQgdHNlYXJj aF9yZWFkbGluZV9jYWxsYmFjayh2b2lkICphcmcpOwogI2RlZmluZSBHRU5FUkFURV9UX0lT Q0xBU1NfREVGKGNoYXJhY3Rlcl9jbGFzcykgXAogLyogbWJsZW4gc2hhbGwgYmUgdGhhdCBv ZiB0aGUgZmlyc3QgY2hhcmFjdGVyICovIFwKIGludCBcCi10X2lzIyNjaGFyYWN0ZXJfY2xh c3MjI193aXRoX2xlbihjb25zdCBjaGFyICpwdHIsIGludCBtYmxlbikgXAordF9pcyMjY2hh cmFjdGVyX2NsYXNzIyNfd2l0aF9sZW5fY29sbGF0aW9uKGNvbnN0IGNoYXIgKnB0ciwgaW50 IG1ibGVuLCBPaWQgY29sbGF0aW9uKSBcCiB7IFwKIAlwZ193Y2hhcgl3c3RyW1dDX0JVRl9M RU5dOyBcCiAJaW50CQkJd2xlbiBwZ19hdHRyaWJ1dGVfdW51c2VkKCk7IFwKIAl3bGVuID0g cGdfbWIyd2NoYXJfd2l0aF9sZW4ocHRyLCB3c3RyLCBtYmxlbik7IFwKIAlBc3NlcnQod2xl biA8PSAxKTsgXAogCS8qIHBhc3Mgc2luZ2xlIGNoYXJhY3Rlciwgb3IgTlVMIGlmIGVtcHR5 ICovIFwKLQlyZXR1cm4gcGdfaXN3IyNjaGFyYWN0ZXJfY2xhc3Mod3N0clswXSwgcGdfZGF0 YWJhc2VfbG9jYWxlKCkpOyBcCisJcmV0dXJuIHBnX2lzdyMjY2hhcmFjdGVyX2NsYXNzKHdz dHJbMF0sIHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlvbihjb2xsYXRpb24pKTsgXAogfSBc CiBcCiAvKiBwdHIgc2hhbGwgcG9pbnQgdG8gYSBOVUwtdGVybWluYXRlZCBzdHJpbmcgKi8g XAogaW50IFwKIHRfaXMjI2NoYXJhY3Rlcl9jbGFzcyMjX2NzdHIoY29uc3QgY2hhciAqcHRy KSBcCiB7IFwKLQlyZXR1cm4gdF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfd2l0aF9sZW4ocHRy LCBwZ19tYmxlbl9jc3RyKHB0cikpOyBcCisJcmV0dXJuIHRfaXMjI2NoYXJhY3Rlcl9jbGFz cyMjX3dpdGhfbGVuX2NvbGxhdGlvbihwdHIsIHBnX21ibGVuX2NzdHIocHRyKSwgREVGQVVM VF9DT0xMQVRJT05fT0lEKTsgXAogfSBcCiAvKiBwdHIgc2hhbGwgcG9pbnQgdG8gYSBzdHJp bmcgd2l0aCBwcmUtdmFsaWRhdGVkIGVuY29kaW5nICovIFwKIGludCBcCiB0X2lzIyNjaGFy YWN0ZXJfY2xhc3MjI191bmJvdW5kZWQoY29uc3QgY2hhciAqcHRyKSBcCiB7IFwKLQlyZXR1 cm4gdF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfd2l0aF9sZW4ocHRyLCBwZ19tYmxlbl91bmJv dW5kZWQocHRyKSk7IFwKKwlyZXR1cm4gdF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfd2l0aF9s ZW5fY29sbGF0aW9uKHB0ciwgcGdfbWJsZW5fdW5ib3VuZGVkKHB0ciksIERFRkFVTFRfQ09M TEFUSU9OX09JRCk7IFwKIH0gXAogLyogaGlzdG9yaWNhbCBuYW1lIGZvciBfdW5ib3VuZGVk ICovIFwKIGludCBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90c2VhcmNoL3RzX2xvY2Fs ZS5oIGIvc3JjL2luY2x1ZGUvdHNlYXJjaC90c19sb2NhbGUuaAppbmRleCBmNGVkZjMwMGMy Yi4uNDNhNjA2NTA1YTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3RzZWFyY2gvdHNfbG9j YWxlLmgKKysrIGIvc3JjL2luY2x1ZGUvdHNlYXJjaC90c19sb2NhbGUuaApAQCAtMTgsNiAr MTgsNyBAQAogCiAjaW5jbHVkZSAibGliL3N0cmluZ2luZm8uaCIKICNpbmNsdWRlICJtYi9w Z193Y2hhci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVk ZSAidXRpbHMvcGdfbG9jYWxlLmgiCiAKIC8qIHdvcmtpbmcgc3RhdGUgZm9yIHRzZWFyY2hf cmVhZGxpbmUgKHNob3VsZCBiZSBhIGxvY2FsIHZhciBpbiBjYWxsZXIpICovCkBAIC01Niw3 ICs1Nyw3IEBAIHRzX2NvcHljaGFyX2NzdHIodm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3Jj KQogI2RlZmluZSBDT1BZQ0hBUiB0c19jb3B5Y2hhcl9jc3RyCiAKICNkZWZpbmUgR0VORVJB VEVfVF9JU0NMQVNTX0RFQ0woY2hhcmFjdGVyX2NsYXNzKSBcCi1leHRlcm4gaW50CXRfaXMj I2NoYXJhY3Rlcl9jbGFzcyMjX3dpdGhfbGVuKGNvbnN0IGNoYXIgKnB0ciwgaW50IG1ibGVu KTsgXAorZXh0ZXJuIGludAl0X2lzIyNjaGFyYWN0ZXJfY2xhc3MjI193aXRoX2xlbl9jb2xs YXRpb24oY29uc3QgY2hhciAqcHRyLCBpbnQgbWJsZW4sIE9pZCBjb2xsYXRpb24pOyBcCiBl eHRlcm4gaW50CXRfaXMjI2NoYXJhY3Rlcl9jbGFzcyMjX2NzdHIoY29uc3QgY2hhciAqcHRy KTsgXAogZXh0ZXJuIGludAl0X2lzIyNjaGFyYWN0ZXJfY2xhc3MjI191bmJvdW5kZWQoY29u c3QgY2hhciAqcHRyKTsgXAogXAotLSAKMi41My4wCgo= --------------X1E0f7817rrcBDr2DJyWchjG Content-Type: text/x-patch; charset=UTF-8; name="v7-0001-Use-correct-collation-for-lowercasing.patch" Content-Disposition: attachment; filename="v7-0001-Use-correct-collation-for-lowercasing.patch" Content-Transfer-Encoding: base64 RnJvbSAwM2I1MTlmNWViZDdmYjFjMmM4YTNhZGJiOTJlZWVmMGZlNjZjZGNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCAyMSBKYW4gMjAyNiAxNDo1NDoyOCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggdjcgMS8zXSBVc2UgY29ycmVjdCBjb2xsYXRpb24gZm9yIGxvd2VyY2FzaW5nCgpwZ190 cmdtIGNvbnZlcnRzIHRoZSBpbnB1dCB3b3JkcyB0byBsb3dlcmNhc2UgYmVmb3JlIGV4dHJh Y3RpbmcgdGhlCnRyaWdyYW1zLiBUaGUgbG93ZXJjYXNlIGNvbnZlcnNpb24gZGVwZW5kcyBv biB0aGUgY29sbGF0aW9uLiBQcmV2aW91c2x5LApwZ190cmdtIGFsd2F5cyB1c2VkIHRoZSBk ZWZhdWx0IGNvbGxhdGlvbi4gTm93LCB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbgppcyB1c2Vk IGluc3RlYWQuCi0tLQogY29udHJpYi9wZ190cmdtL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIC4uLi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0aW9u Lm91dCAgICB8IDQzICsrKysrKysrKysrKysKIC4uLi9wZ190cmdtL2V4cGVjdGVkL3BnX3Ry Z21fY29sbGF0aW9uXzEub3V0ICB8ICA5ICsrKwogY29udHJpYi9wZ190cmdtL21lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICAgIHwgIDEgKwogY29udHJpYi9wZ190cmdtL3NxbC9wZ190 cmdtX2NvbGxhdGlvbi5zcWwgICAgIHwgMjQgKysrKysrKysKIGNvbnRyaWIvcGdfdHJnbS90 cmdtLmggICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBjb250cmliL3BnX3RyZ20v dHJnbV9naW4uYyAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0KIGNvbnRyaWIvcGdfdHJn bS90cmdtX2dpc3QuYyAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0KIGNvbnRyaWIvcGdf dHJnbS90cmdtX29wLmMgICAgICAgICAgICAgICAgICAgICB8IDYwICsrKysrKysrKystLS0t LS0tLS0KIGNvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jICAgICAgICAgICAgICAgICB8 IDIwICsrKy0tLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCA0OCBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3RyZ20vZXhwZWN0 ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9w Z190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0aW9uXzEub3V0CiBjcmVhdGUgbW9kZSAx MDA2NDQgY29udHJpYi9wZ190cmdtL3NxbC9wZ190cmdtX2NvbGxhdGlvbi5zcWwKCmRpZmYg LS1naXQgYS9jb250cmliL3BnX3RyZ20vTWFrZWZpbGUgYi9jb250cmliL3BnX3RyZ20vTWFr ZWZpbGUKaW5kZXggYzE3NTY5OTNlYzcuLjI2YjMwMjhiNzVlIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3RyZ20vTWFrZWZpbGUKKysrIGIvY29udHJpYi9wZ190cmdtL01ha2VmaWxlCkBA IC0xNCw3ICsxNCw3IEBAIERBVEEgPSBwZ190cmdtLS0xLjUtLTEuNi5zcWwgcGdfdHJnbS0t MS40LS0xLjUuc3FsIHBnX3RyZ20tLTEuMy0tMS40LnNxbCBcCiAJcGdfdHJnbS0tMS4wLS0x LjEuc3FsCiBQR0ZJTEVERVNDID0gInBnX3RyZ20gLSB0cmlncmFtIG1hdGNoaW5nIgogCi1S RUdSRVNTID0gcGdfdHJnbSBwZ191dGY4X3RyZ20gcGdfd29yZF90cmdtIHBnX3N0cmljdF93 b3JkX3RyZ20KK1JFR1JFU1MgPSBwZ190cmdtIHBnX3V0ZjhfdHJnbSBwZ193b3JkX3RyZ20g cGdfc3RyaWN0X3dvcmRfdHJnbSBwZ190cmdtX2NvbGxhdGlvbgogCiBpZmRlZiBVU0VfUEdY UwogUEdfQ09ORklHID0gcGdfY29uZmlnCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20v ZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0IGIvY29udHJpYi9wZ190cmdtL2V4cGVj dGVkL3BnX3RyZ21fY29sbGF0aW9uLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNDcyY2U4Njc2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Bn X3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0CkBAIC0wLDAgKzEsNDMgQEAK Ky8qCisgKiBUaGlzIHRlc3QgaXMgZm9yIElDVSBjb2xsYXRpb25zLgorICovCisvKiBza2lw IHRlc3QgaWYgbm90IFVURjggc2VydmVyIGVuY29kaW5nIG9yIG5vIElDVSBjb2xsYXRpb25z IGluc3RhbGxlZCAqLworU0VMRUNUIGdldGRhdGFiYXNlZW5jb2RpbmcoKSA8PiAnVVRGOCcg T1IKKyAgICAgICAoU0VMRUNUIGNvdW50KCopIEZST00gcGdfY29sbGF0aW9uIFdIRVJFIGNv bGxwcm92aWRlciA9ICdpJyBBTkQgY29sbG5hbWUgPD4gJ3VuaWNvZGUnKSA9IDAKKyAgICAg ICBBUyBza2lwX3Rlc3QgXGdzZXQKK1xpZiA6c2tpcF90ZXN0CitccXVpdAorXGVuZGlmCist LSBUZXN0IHRoYXQgbG93ZXJjYXNlIGNvbnZlcnNpb24gb2YgdHJpZ3JhbXMgdXNlcyBzcGVj aWZpZWQgY29sbGF0aW9uCitDUkVBVEUgVEFCTEUgdGVzdChjb2wgVEVYVCBDT0xMQVRFICJ0 ci14LWljdSIpOworSU5TRVJUIElOVE8gdGVzdCBWQUxVRVMgKCdJU1RBTkJVTCcpOworU0VM RUNUIHNob3dfdHJnbShjb2wpIEZST00gdGVzdDsKKyAgICAgICAgICAgICAgICAgICAgICAg c2hvd190cmdtICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsweGYzMWUxYSwweGZl NTgxZCwweDNlZmQzMCxhbmIsYnVsLG5idSxzdGEsdGFuLCJ1bCAifQorKDEgcm93KQorCitT RUxFQ1Qgc2hvd190cmdtKCdJU1RBTkJVTCcgQ09MTEFURSAidHIteC1pY3UiKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgc2hvd190cmdtICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHsweGYzMWUxYSwweGZlNTgxZCwweDNlZmQzMCxhbmIsYnVsLG5idSxzdGEsdGFuLCJ1 bCAifQorKDEgcm93KQorCitTRUxFQ1Qgc2hvd190cmdtKCdJU1RBTkJVTCcgQ09MTEFURSAi QyIpOworICAgICAgICAgICAgICAgICAgc2hvd190cmdtICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IiAgaSIs IiBpcyIsYW5iLGJ1bCxpc3QsbmJ1LHN0YSx0YW4sInVsICJ9CisoMSByb3cpCisKK1NFTEVD VCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENPTExBVEUgInRyLXgtaWN1IiwgJ0lTVEFOQlVM JyBDT0xMQVRFICJ0ci14LWljdSIpOworIHNpbWlsYXJpdHkgCistLS0tLS0tLS0tLS0KKyAg ICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENP TExBVEUgIkMiLCAnSVNUQU5CVUwnIENPTExBVEUgIkMiKTsKKyBzaW1pbGFyaXR5IAorLS0t LS0tLS0tLS0tCisgMC41NDU0NTQ1NgorKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmli L3BnX3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb25fMS5vdXQgYi9jb250cmliL3Bn X3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb25fMS5vdXQKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1Yzk5YzRhYmYwCi0tLSAvZGV2L251bGwKKysr IGIvY29udHJpYi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0aW9uXzEub3V0CkBA IC0wLDAgKzEsOSBAQAorLyoKKyAqIFRoaXMgdGVzdCBpcyBmb3IgSUNVIGNvbGxhdGlvbnMu CisgKi8KKy8qIHNraXAgdGVzdCBpZiBub3QgVVRGOCBzZXJ2ZXIgZW5jb2Rpbmcgb3Igbm8g SUNVIGNvbGxhdGlvbnMgaW5zdGFsbGVkICovCitTRUxFQ1QgZ2V0ZGF0YWJhc2VlbmNvZGlu ZygpIDw+ICdVVEY4JyBPUgorICAgICAgIChTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jb2xs YXRpb24gV0hFUkUgY29sbHByb3ZpZGVyID0gJ2knIEFORCBjb2xsbmFtZSA8PiAndW5pY29k ZScpID0gMAorICAgICAgIEFTIHNraXBfdGVzdCBcZ3NldAorXGlmIDpza2lwX3Rlc3QKK1xx dWl0CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20vbWVzb24uYnVpbGQgYi9jb250cmli L3BnX3RyZ20vbWVzb24uYnVpbGQKaW5kZXggM2VjZjk1YmE4NjIuLjVlYWZhNzc0NDM1IDEw MDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9w Z190cmdtL21lc29uLmJ1aWxkCkBAIC00Miw2ICs0Miw3IEBAIHRlc3RzICs9IHsKICAgICAg ICdwZ191dGY4X3RyZ20nLAogICAgICAgJ3BnX3dvcmRfdHJnbScsCiAgICAgICAncGdfc3Ry aWN0X3dvcmRfdHJnbScsCisgICAgICAncGdfdHJnbV9jb2xsYXRpb24nLAogICAgIF0sCiAg IH0sCiB9CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20vc3FsL3BnX3RyZ21fY29sbGF0 aW9uLnNxbCBiL2NvbnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hZmIzOTczYThiMwotLS0g L2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24u c3FsCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBUaGlzIHRlc3QgaXMgZm9yIElDVSBjb2xs YXRpb25zLgorICovCisKKy8qIHNraXAgdGVzdCBpZiBub3QgVVRGOCBzZXJ2ZXIgZW5jb2Rp bmcgb3Igbm8gSUNVIGNvbGxhdGlvbnMgaW5zdGFsbGVkICovCitTRUxFQ1QgZ2V0ZGF0YWJh c2VlbmNvZGluZygpIDw+ICdVVEY4JyBPUgorICAgICAgIChTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbHByb3ZpZGVyID0gJ2knIEFORCBjb2xsbmFtZSA8 PiAndW5pY29kZScpID0gMAorICAgICAgIEFTIHNraXBfdGVzdCBcZ3NldAorXGlmIDpza2lw X3Rlc3QKK1xxdWl0CitcZW5kaWYKKworLS0gVGVzdCB0aGF0IGxvd2VyY2FzZSBjb252ZXJz aW9uIG9mIHRyaWdyYW1zIHVzZXMgc3BlY2lmaWVkIGNvbGxhdGlvbgorCitDUkVBVEUgVEFC TEUgdGVzdChjb2wgVEVYVCBDT0xMQVRFICJ0ci14LWljdSIpOworSU5TRVJUIElOVE8gdGVz dCBWQUxVRVMgKCdJU1RBTkJVTCcpOworU0VMRUNUIHNob3dfdHJnbShjb2wpIEZST00gdGVz dDsKK1NFTEVDVCBzaG93X3RyZ20oJ0lTVEFOQlVMJyBDT0xMQVRFICJ0ci14LWljdSIpOwor CitTRUxFQ1Qgc2hvd190cmdtKCdJU1RBTkJVTCcgQ09MTEFURSAiQyIpOworCitTRUxFQ1Qg c2ltaWxhcml0eSgnxLFzdGFuYnVsJyBDT0xMQVRFICJ0ci14LWljdSIsICdJU1RBTkJVTCcg Q09MTEFURSAidHIteC1pY3UiKTsKK1NFTEVDVCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENP TExBVEUgIkMiLCAnSVNUQU5CVUwnIENPTExBVEUgIkMiKTsKKwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wZ190cmdtL3RyZ20uaCBiL2NvbnRyaWIvcGdfdHJnbS90cmdtLmgKaW5kZXggY2Ey M2FhZDRkZDkuLmI2OTExZTkxNDU4IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJn bS5oCisrKyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtLmgKQEAgLTExOSw4ICsxMTksOCBAQCBl eHRlcm4gZG91YmxlIHN0cmljdF93b3JkX3NpbWlsYXJpdHlfdGhyZXNob2xkOwogZXh0ZXJu IGRvdWJsZSBpbmRleF9zdHJhdGVneV9nZXRfbGltaXQoU3RyYXRlZ3lOdW1iZXIgc3RyYXRl Z3kpOwogZXh0ZXJuIHVpbnQzMiB0cmdtMmludCh0cmdtICpwdHIpOwogZXh0ZXJuIHZvaWQg Y29tcGFjdF90cmlncmFtKHRyZ20gKnRwdHIsIGNoYXIgKnN0ciwgaW50IGJ5dGVsZW4pOwot ZXh0ZXJuIFRSR00gKmdlbmVyYXRlX3RyZ20oY2hhciAqc3RyLCBpbnQgc2xlbik7Ci1leHRl cm4gVFJHTSAqZ2VuZXJhdGVfd2lsZGNhcmRfdHJnbShjb25zdCBjaGFyICpzdHIsIGludCBz bGVuKTsKK2V4dGVybiBUUkdNICpnZW5lcmF0ZV90cmdtKGNoYXIgKnN0ciwgaW50IHNsZW4s IE9pZCBjb2xsYXRpb24pOworZXh0ZXJuIFRSR00gKmdlbmVyYXRlX3dpbGRjYXJkX3RyZ20o Y29uc3QgY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxhdGlvbik7CiBleHRlcm4gZmxv YXQ0IGNudF9zbWwoVFJHTSAqdHJnMSwgVFJHTSAqdHJnMiwgYm9vbCBpbmV4YWN0KTsKIGV4 dGVybiBib29sIHRyZ21fY29udGFpbmVkX2J5KFRSR00gKnRyZzEsIFRSR00gKnRyZzIpOwog ZXh0ZXJuIGJvb2wgKnRyZ21fcHJlc2VuY2VfbWFwKFRSR00gKnF1ZXJ5LCBUUkdNICprZXkp OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3RyZ21fZ2luLmMgYi9jb250cmliL3Bn X3RyZ20vdHJnbV9naW4uYwppbmRleCA1NzY2YjNlOTk1NS4uMTRhODkyYzY1N2QgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpbi5jCisrKyBiL2NvbnRyaWIvcGdfdHJn bS90cmdtX2dpbi5jCkBAIC00Miw3ICs0Miw3IEBAIGdpbl9leHRyYWN0X3ZhbHVlX3RyZ20o UEdfRlVOQ1RJT05fQVJHUykKIAogCSpuZW50cmllcyA9IDA7CiAKLQl0cmcgPSBnZW5lcmF0 ZV90cmdtKFZBUkRBVEFfQU5ZKHZhbCksIFZBUlNJWkVfQU5ZX0VYSERSKHZhbCkpOworCXRy ZyA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIo dmFsKSwgUEdfR0VUX0NPTExBVElPTigpKTsKIAl0cmdsZW4gPSBBUlJORUxFTSh0cmcpOwog CiAJaWYgKHRyZ2xlbiA+IDApCkBAIC05Myw3ICs5Myw3IEBAIGdpbl9leHRyYWN0X3F1ZXJ5 X3RyZ20oUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSBXb3JkU2ltaWxhcml0eVN0cmF0ZWd5 TnVtYmVyOgogCQljYXNlIFN0cmljdFdvcmRTaW1pbGFyaXR5U3RyYXRlZ3lOdW1iZXI6CiAJ CWNhc2UgRXF1YWxTdHJhdGVneU51bWJlcjoKLQkJCXRyZyA9IGdlbmVyYXRlX3RyZ20oVkFS REFUQV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIodmFsKSk7CisJCQl0cmcgPSBnZW5l cmF0ZV90cmdtKFZBUkRBVEFfQU5ZKHZhbCksIFZBUlNJWkVfQU5ZX0VYSERSKHZhbCksIFBH X0dFVF9DT0xMQVRJT04oKSk7CiAJCQlicmVhazsKIAkJY2FzZSBJTGlrZVN0cmF0ZWd5TnVt YmVyOgogI2lmbmRlZiBJR05PUkVDQVNFCkBAIC0xMDcsNyArMTA3LDggQEAgZ2luX2V4dHJh Y3RfcXVlcnlfdHJnbShQR19GVU5DVElPTl9BUkdTKQogCQkJICogcG90ZW50aWFsbHktbWF0 Y2hpbmcgc3RyaW5nIG11c3QgaW5jbHVkZS4KIAkJCSAqLwogCQkJdHJnID0gZ2VuZXJhdGVf d2lsZGNhcmRfdHJnbShWQVJEQVRBX0FOWSh2YWwpLAotCQkJCQkJCQkJCSBWQVJTSVpFX0FO WV9FWEhEUih2YWwpKTsKKwkJCQkJCQkJCQkgVkFSU0laRV9BTllfRVhIRFIodmFsKSwKKwkJ CQkJCQkJCQkgUEdfR0VUX0NPTExBVElPTigpKTsKIAkJCWJyZWFrOwogCQljYXNlIFJlZ0V4 cElDYXNlU3RyYXRlZ3lOdW1iZXI6CiAjaWZuZGVmIElHTk9SRUNBU0UKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpc3QuYyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dp c3QuYwppbmRleCA0MmQwYjdhNWQ2NS4uNzk1NzBmMjkzMzQgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvcGdfdHJnbS90cmdtX2dpc3QuYworKysgYi9jb250cmliL3BnX3RyZ20vdHJnbV9naXN0 LmMKQEAgLTEyMyw3ICsxMjMsNyBAQCBndHJnbV9jb21wcmVzcyhQR19GVU5DVElPTl9BUkdT KQogCQlUUkdNCSAgICpyZXM7CiAJCXRleHQJICAgKnZhbCA9IERhdHVtR2V0VGV4dFBQKGVu dHJ5LT5rZXkpOwogCi0JCXJlcyA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkodmFsKSwg VkFSU0laRV9BTllfRVhIRFIodmFsKSk7CisJCXJlcyA9IGdlbmVyYXRlX3RyZ20oVkFSREFU QV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIodmFsKSwgUEdfR0VUX0NPTExBVElPTigp KTsKIAkJcmV0dmFsID0gcGFsbG9jX29iamVjdChHSVNURU5UUlkpOwogCQlnaXN0ZW50cnlp bml0KCpyZXR2YWwsIFBvaW50ZXJHZXREYXR1bShyZXMpLAogCQkJCQkgIGVudHJ5LT5yZWws IGVudHJ5LT5wYWdlLApAQCAtMjQyLDcgKzI0Miw4IEBAIGd0cmdtX2NvbnNpc3RlbnQoUEdf RlVOQ1RJT05fQVJHUykKIAkJCWNhc2UgU3RyaWN0V29yZFNpbWlsYXJpdHlTdHJhdGVneU51 bWJlcjoKIAkJCWNhc2UgRXF1YWxTdHJhdGVneU51bWJlcjoKIAkJCQlxdHJnID0gZ2VuZXJh dGVfdHJnbShWQVJEQVRBKHF1ZXJ5KSwKLQkJCQkJCQkJCSBxdWVyeXNpemUgLSBWQVJIRFJT Wik7CisJCQkJCQkJCQkgcXVlcnlzaXplIC0gVkFSSERSU1osCisJCQkJCQkJCQkgUEdfR0VU X0NPTExBVElPTigpKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgSUxpa2VTdHJhdGVneU51bWJl cjoKICNpZm5kZWYgSUdOT1JFQ0FTRQpAQCAtMjUxLDcgKzI1Miw4IEBAIGd0cmdtX2NvbnNp c3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQlwZ19mYWxsdGhyb3VnaDsKIAkJCWNhc2Ug TGlrZVN0cmF0ZWd5TnVtYmVyOgogCQkJCXF0cmcgPSBnZW5lcmF0ZV93aWxkY2FyZF90cmdt KFZBUkRBVEEocXVlcnkpLAotCQkJCQkJCQkJCQkgIHF1ZXJ5c2l6ZSAtIFZBUkhEUlNaKTsK KwkJCQkJCQkJCQkJICBxdWVyeXNpemUgLSBWQVJIRFJTWiwKKwkJCQkJCQkJCQkJICBQR19H RVRfQ09MTEFUSU9OKCkpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBSZWdFeHBJQ2FzZVN0cmF0 ZWd5TnVtYmVyOgogI2lmbmRlZiBJR05PUkVDQVNFCkBAIC00NzUsNyArNDc3LDcgQEAgZ3Ry Z21fZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAl7CiAJCWNoYXIJICAgKm5ld2NhY2hl OwogCi0JCXF0cmcgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEEocXVlcnkpLCBxdWVyeXNpemUg LSBWQVJIRFJTWik7CisJCXF0cmcgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEEocXVlcnkpLCBx dWVyeXNpemUgLSBWQVJIRFJTWiwgUEdfR0VUX0NPTExBVElPTigpKTsKIAogCQluZXdjYWNo ZSA9IE1lbW9yeUNvbnRleHRBbGxvYyhmY2luZm8tPmZsaW5mby0+Zm5fbWN4dCwKIAkJCQkJ CQkJCSAgTUFYQUxJR04ocXVlcnlzaXplKSArCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Ry Z20vdHJnbV9vcC5jIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwppbmRleCAyMmJjYzNj MzM2MS4uYzA0ZDcyNjUxNTMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX29w LmMKKysrIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwpAQCAtNDkwLDcgKzQ5MCw3IEBA IGRvbmU6CiAgKiBib3VuZHNfcDogd2hlcmUgdG8gcmV0dXJuIGJvdW5kcyBvZiB0cmlncmFt cyAoaWYgbmVlZGVkKS4KICAqLwogc3RhdGljIHZvaWQKLWdlbmVyYXRlX3RyZ21fb25seShn cm93YWJsZV90cmdtX2FycmF5ICpkc3QsIGNoYXIgKnN0ciwgaW50IHNsZW4sIFRyZ21Cb3Vu ZCAqKmJvdW5kc19wKQorZ2VuZXJhdGVfdHJnbV9vbmx5KGdyb3dhYmxlX3RyZ21fYXJyYXkg KmRzdCwgY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxhdGlvbiwgVHJnbUJvdW5kICoq Ym91bmRzX3ApCiB7CiAJc2l6ZV90CQlidWZsZW47CiAJY2hhcgkgICAqYnVmOwpAQCAtNTQy LDcgKzU0Miw3IEBAIGdlbmVyYXRlX3RyZ21fb25seShncm93YWJsZV90cmdtX2FycmF5ICpk c3QsIGNoYXIgKnN0ciwgaW50IHNsZW4sIFRyZ21Cb3VuZCAqKmJvCiAJCXsKIAkJCWNoYXIJ ICAgKmxvd2VyZWQ7CiAKLQkJCWxvd2VyZWQgPSBzdHJfdG9sb3dlcihid29yZCwgZXdvcmQg LSBid29yZCwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwkJCWxvd2VyZWQgPSBzdHJfdG9s b3dlcihid29yZCwgZXdvcmQgLSBid29yZCwgY29sbGF0aW9uKTsKIAkJCWJ5dGVsZW4gPSBz dHJsZW4obG93ZXJlZCk7CiAKIAkJCS8qIGdyb3cgdGhlIGJ1ZmZlciBpZiBuZWNlc3Nhcnkg Ki8KQEAgLTU5NiwxMyArNTk2LDEzIEBAIGdlbmVyYXRlX3RyZ21fb25seShncm93YWJsZV90 cmdtX2FycmF5ICpkc3QsIGNoYXIgKnN0ciwgaW50IHNsZW4sIFRyZ21Cb3VuZCAqKmJvCiAg KiBSZXR1cm5zIHRoZSBzb3J0ZWQgYXJyYXkgb2YgdW5pcXVlIHRyaWdyYW1zLgogICovCiBU UkdNICoKLWdlbmVyYXRlX3RyZ20oY2hhciAqc3RyLCBpbnQgc2xlbikKK2dlbmVyYXRlX3Ry Z20oY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxhdGlvbikKIHsKIAlUUkdNCSAgICp0 cmc7CiAJZ3Jvd2FibGVfdHJnbV9hcnJheSBhcnI7CiAJaW50CQkJbGVuOwogCi0JZ2VuZXJh dGVfdHJnbV9vbmx5KCZhcnIsIHN0ciwgc2xlbiwgTlVMTCk7CisJZ2VuZXJhdGVfdHJnbV9v bmx5KCZhcnIsIHN0ciwgc2xlbiwgY29sbGF0aW9uLCBOVUxMKTsKIAlsZW4gPSBhcnIubGVu Z3RoOwogCXRyZyA9IGFyci5kYXR1bTsKIAl0cmctPmZsYWcgPSBBUlJLRVk7CkBAIC04NTcs NyArODU3LDcgQEAgaXRlcmF0ZV93b3JkX3NpbWlsYXJpdHkoaW50ICp0cmcyaW5kZXhlcywK ICAqLwogc3RhdGljIGZsb2F0NAogY2FsY193b3JkX3NpbWlsYXJpdHkoY2hhciAqc3RyMSwg aW50IHNsZW4xLCBjaGFyICpzdHIyLCBpbnQgc2xlbjIsCi0JCQkJCSB1aW50OCBmbGFncykK KwkJCQkJIHVpbnQ4IGZsYWdzLCBPaWQgY29sbGF0aW9uKQogewogCWJvb2wJICAgKmZvdW5k OwogCXBvc190cmdtICAgKnB0cmc7CkBAIC04NzUsOSArODc1LDkgQEAgY2FsY193b3JkX3Np bWlsYXJpdHkoY2hhciAqc3RyMSwgaW50IHNsZW4xLCBjaGFyICpzdHIyLCBpbnQgc2xlbjIs CiAKIAkvKiBNYWtlIHBvc2l0aW9uYWwgdHJpZ3JhbXMgKi8KIAotCWdlbmVyYXRlX3RyZ21f b25seSgmdHJnMSwgc3RyMSwgc2xlbjEsIE5VTEwpOworCWdlbmVyYXRlX3RyZ21fb25seSgm dHJnMSwgc3RyMSwgc2xlbjEsIGNvbGxhdGlvbiwgTlVMTCk7CiAJbGVuMSA9IHRyZzEubGVu Z3RoOwotCWdlbmVyYXRlX3RyZ21fb25seSgmdHJnMiwgc3RyMiwgc2xlbjIsIChmbGFncyAm IFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QpID8gJmJvdW5kcyA6IE5VTEwpOworCWdlbmVyYXRl X3RyZ21fb25seSgmdHJnMiwgc3RyMiwgc2xlbjIsIGNvbGxhdGlvbiwgKGZsYWdzICYgV09S RF9TSU1JTEFSSVRZX1NUUklDVCkgPyAmYm91bmRzIDogTlVMTCk7CiAJbGVuMiA9IHRyZzIu bGVuZ3RoOwogCiAJcHRyZyA9IG1ha2VfcG9zaXRpb25hbF90cmdtKEdFVEFSUih0cmcxLmRh dHVtKSwgbGVuMSwgR0VUQVJSKHRyZzIuZGF0dW0pLCBsZW4yKTsKQEAgLTEwODYsNyArMTA4 Niw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbnN0ciwK ICAqICIgYSIsICJiY2QiIHdvdWxkIGJlIGV4dHJhY3RlZC4KICAqLwogVFJHTSAqCi1nZW5l cmF0ZV93aWxkY2FyZF90cmdtKGNvbnN0IGNoYXIgKnN0ciwgaW50IHNsZW4pCitnZW5lcmF0 ZV93aWxkY2FyZF90cmdtKGNvbnN0IGNoYXIgKnN0ciwgaW50IHNsZW4sIE9pZCBjb2xsYXRp b24pCiB7CiAJVFJHTQkgICAqdHJnOwogCWdyb3dhYmxlX3RyZ21fYXJyYXkgYXJyOwpAQCAt MTExOCw3ICsxMTE4LDcgQEAgZ2VuZXJhdGVfd2lsZGNhcmRfdHJnbShjb25zdCBjaGFyICpz dHIsIGludCBzbGVuKQogCQljaGFyCSAgICp3b3JkOwogCiAjaWZkZWYgSUdOT1JFQ0FTRQot CQl3b3JkID0gc3RyX3RvbG93ZXIoYnVmLCBieXRlbGVuLCBERUZBVUxUX0NPTExBVElPTl9P SUQpOworCQl3b3JkID0gc3RyX3RvbG93ZXIoYnVmLCBieXRlbGVuLCBjb2xsYXRpb24pOwog CQlieXRlbGVuID0gc3RybGVuKHdvcmQpOwogI2Vsc2UKIAkJd29yZCA9IGJ1ZjsKQEAgLTEx NzcsNyArMTE3Nyw3IEBAIHNob3dfdHJnbShQR19GVU5DVElPTl9BUkdTKQogCXRyZ20JICAg KnB0cjsKIAlpbnQJCQlpOwogCi0JdHJnID0gZ2VuZXJhdGVfdHJnbShWQVJEQVRBX0FOWShp biksIFZBUlNJWkVfQU5ZX0VYSERSKGluKSk7CisJdHJnID0gZ2VuZXJhdGVfdHJnbShWQVJE QVRBX0FOWShpbiksIFZBUlNJWkVfQU5ZX0VYSERSKGluKSwgUEdfR0VUX0NPTExBVElPTigp KTsKIAlkID0gcGFsbG9jX2FycmF5KERhdHVtLCAxICsgQVJSTkVMRU0odHJnKSk7CiAKIAlm b3IgKGkgPSAwLCBwdHIgPSBHRVRBUlIodHJnKTsgaSA8IEFSUk5FTEVNKHRyZyk7IGkrKywg cHRyKyspCkBAIC0xMzQ0LDggKzEzNDQsOCBAQCBzaW1pbGFyaXR5KFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkgICAqdHJnMjsKIAlmbG9hdDQJCXJlczsKIAotCXRyZzEgPSBnZW5lcmF0ZV90 cmdtKFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVfQU5ZX0VYSERSKGluMSkpOwotCXRyZzIg PSBnZW5lcmF0ZV90cmdtKFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VYSERSKGlu MikpOworCXRyZzEgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVf QU5ZX0VYSERSKGluMSksIFBHX0dFVF9DT0xMQVRJT04oKSk7CisJdHJnMiA9IGdlbmVyYXRl X3RyZ20oVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwgUEdfR0VU X0NPTExBVElPTigpKTsKIAogCXJlcyA9IGNudF9zbWwodHJnMSwgdHJnMiwgZmFsc2UpOwog CkBAIC0xMzY2LDcgKzEzNjYsNyBAQCB3b3JkX3NpbWlsYXJpdHkoUEdfRlVOQ1RJT05fQVJH UykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFfQU5ZKGluMSksIFZB UlNJWkVfQU5ZX0VYSERSKGluMSksCiAJCQkJCQkJICAgVkFSREFUQV9BTlkoaW4yKSwgVkFS U0laRV9BTllfRVhIRFIoaW4yKSwKLQkJCQkJCQkgICAwKTsKKwkJCQkJCQkgICAwLCBQR19H RVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwgMCk7CiAJUEdfRlJF RV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xMzgyLDcgKzEzODIsNyBAQCBzdHJpY3Rfd29yZF9z aW1pbGFyaXR5KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXMgPSBjYWxjX3dvcmRfc2ltaWxh cml0eShWQVJEQVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjEpLAogCQkJCQkJ CSAgIFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VYSERSKGluMiksCi0JCQkJCQkJ ICAgV09SRF9TSU1JTEFSSVRZX1NUUklDVCk7CisJCQkJCQkJICAgV09SRF9TSU1JTEFSSVRZ X1NUUklDVCwgUEdfR0VUX0NPTExBVElPTigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEs IDApOwogCVBHX0ZSRUVfSUZfQ09QWShpbjIsIDEpOwpAQCAtMTM5Miw5ICsxMzkyLDEwIEBA IHN0cmljdF93b3JkX3NpbWlsYXJpdHkoUEdfRlVOQ1RJT05fQVJHUykKIERhdHVtCiBzaW1p bGFyaXR5X2Rpc3QoUEdfRlVOQ1RJT05fQVJHUykKIHsKLQlmbG9hdDQJCXJlcyA9IERhdHVt R2V0RmxvYXQ0KERpcmVjdEZ1bmN0aW9uQ2FsbDIoc2ltaWxhcml0eSwKLQkJCQkJCQkJCQkJ CQkJIFBHX0dFVEFSR19EQVRVTSgwKSwKLQkJCQkJCQkJCQkJCQkJIFBHX0dFVEFSR19EQVRV TSgxKSkpOworCWZsb2F0NAkJcmVzID0gRGF0dW1HZXRGbG9hdDQoRGlyZWN0RnVuY3Rpb25D YWxsMkNvbGwoc2ltaWxhcml0eSwKKwkJCQkJCQkJCQkJCQkJCSBQR19HRVRfQ09MTEFUSU9O KCksCisJCQkJCQkJCQkJCQkJCQkgUEdfR0VUQVJHX0RBVFVNKDApLAorCQkJCQkJCQkJCQkJ CQkJIFBHX0dFVEFSR19EQVRVTSgxKSkpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNCgxLjAgLSBy ZXMpOwogfQpAQCAtMTQwMiw5ICsxNDAzLDEwIEBAIHNpbWlsYXJpdHlfZGlzdChQR19GVU5D VElPTl9BUkdTKQogRGF0dW0KIHNpbWlsYXJpdHlfb3AoUEdfRlVOQ1RJT05fQVJHUykKIHsK LQlmbG9hdDQJCXJlcyA9IERhdHVtR2V0RmxvYXQ0KERpcmVjdEZ1bmN0aW9uQ2FsbDIoc2lt aWxhcml0eSwKLQkJCQkJCQkJCQkJCQkJIFBHX0dFVEFSR19EQVRVTSgwKSwKLQkJCQkJCQkJ CQkJCQkJIFBHX0dFVEFSR19EQVRVTSgxKSkpOworCWZsb2F0NAkJcmVzID0gRGF0dW1HZXRG bG9hdDQoRGlyZWN0RnVuY3Rpb25DYWxsMkNvbGwoc2ltaWxhcml0eSwKKwkJCQkJCQkJCQkJ CQkJCSBQR19HRVRfQ09MTEFUSU9OKCksCisJCQkJCQkJCQkJCQkJCQkgUEdfR0VUQVJHX0RB VFVNKDApLAorCQkJCQkJCQkJCQkJCQkJIFBHX0dFVEFSR19EQVRVTSgxKSkpOwogCiAJUEdf UkVUVVJOX0JPT0wocmVzID49IHNpbWlsYXJpdHlfdGhyZXNob2xkKTsKIH0KQEAgLTE0MTgs NyArMTQyMCw3IEBAIHdvcmRfc2ltaWxhcml0eV9vcChQR19GVU5DVElPTl9BUkdTKQogCiAJ cmVzID0gY2FsY193b3JkX3NpbWlsYXJpdHkoVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9B TllfRVhIRFIoaW4xKSwKIAkJCQkJCQkgICBWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpFX0FO WV9FWEhEUihpbjIpLAotCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9DSEVDS19PTkxZKTsK KwkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfQ0hFQ0tfT05MWSwgUEdfR0VUX0NPTExBVElP TigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEsIDApOwogCVBHX0ZSRUVfSUZfQ09QWShp bjIsIDEpOwpAQCAtMTQzNCw3ICsxNDM2LDcgQEAgd29yZF9zaW1pbGFyaXR5X2NvbW11dGF0 b3Jfb3AoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5 KFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VYSERSKGluMiksCiAJCQkJCQkJICAg VkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9BTllfRVhIRFIoaW4xKSwKLQkJCQkJCQkgICBX T1JEX1NJTUlMQVJJVFlfQ0hFQ0tfT05MWSk7CisJCQkJCQkJICAgV09SRF9TSU1JTEFSSVRZ X0NIRUNLX09OTFksIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAKIAlQR19GUkVFX0lGX0NPUFko aW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsKQEAgLTE0NTAsNyArMTQ1Miw3 IEBAIHdvcmRfc2ltaWxhcml0eV9kaXN0X29wKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXMg PSBjYWxjX3dvcmRfc2ltaWxhcml0eShWQVJEQVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9F WEhEUihpbjEpLAogCQkJCQkJCSAgIFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VY SERSKGluMiksCi0JCQkJCQkJICAgMCk7CisJCQkJCQkJICAgMCwgUEdfR0VUX0NPTExBVElP TigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEsIDApOwogCVBHX0ZSRUVfSUZfQ09QWShp bjIsIDEpOwpAQCAtMTQ2Niw3ICsxNDY4LDcgQEAgd29yZF9zaW1pbGFyaXR5X2Rpc3RfY29t bXV0YXRvcl9vcChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzID0gY2FsY193b3JkX3NpbWls YXJpdHkoVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwKIAkJCQkJ CQkgICBWQVJEQVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjEpLAotCQkJCQkJ CSAgIDApOworCQkJCQkJCSAgIDAsIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAKIAlQR19GUkVF X0lGX0NPUFkoaW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsKQEAgLTE0ODIs NyArMTQ4NCw4IEBAIHN0cmljdF93b3JkX3NpbWlsYXJpdHlfb3AoUEdfRlVOQ1RJT05fQVJH UykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFfQU5ZKGluMSksIFZB UlNJWkVfQU5ZX0VYSERSKGluMSksCiAJCQkJCQkJICAgVkFSREFUQV9BTlkoaW4yKSwgVkFS U0laRV9BTllfRVhIRFIoaW4yKSwKLQkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfQ0hFQ0tf T05MWSB8IFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QpOworCQkJCQkJCSAgIFdPUkRfU0lNSUxB UklUWV9DSEVDS19PTkxZIHwgV09SRF9TSU1JTEFSSVRZX1NUUklDVCwKKwkJCQkJCQkgICBQ R19HRVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwgMCk7CiAJUEdf RlJFRV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xNDk4LDcgKzE1MDEsOCBAQCBzdHJpY3Rfd29y ZF9zaW1pbGFyaXR5X2NvbW11dGF0b3Jfb3AoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlcyA9 IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VY SERSKGluMiksCiAJCQkJCQkJICAgVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9BTllfRVhI RFIoaW4xKSwKLQkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfQ0hFQ0tfT05MWSB8IFdPUkRf U0lNSUxBUklUWV9TVFJJQ1QpOworCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9DSEVDS19P TkxZIHwgV09SRF9TSU1JTEFSSVRZX1NUUklDVCwKKwkJCQkJCQkgICBQR19HRVRfQ09MTEFU SU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwgMCk7CiAJUEdfRlJFRV9JRl9DT1BZ KGluMiwgMSk7CkBAIC0xNTE0LDcgKzE1MTgsNyBAQCBzdHJpY3Rfd29yZF9zaW1pbGFyaXR5 X2Rpc3Rfb3AoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFy aXR5KFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVfQU5ZX0VYSERSKGluMSksCiAJCQkJCQkJ ICAgVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwKLQkJCQkJCQkg ICBXT1JEX1NJTUlMQVJJVFlfU1RSSUNUKTsKKwkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlf U1RSSUNULCBQR19HRVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwg MCk7CiAJUEdfRlJFRV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xNTMwLDcgKzE1MzQsNyBAQCBz dHJpY3Rfd29yZF9zaW1pbGFyaXR5X2Rpc3RfY29tbXV0YXRvcl9vcChQR19GVU5DVElPTl9B UkdTKQogCiAJcmVzID0gY2FsY193b3JkX3NpbWlsYXJpdHkoVkFSREFUQV9BTlkoaW4yKSwg VkFSU0laRV9BTllfRVhIRFIoaW4yKSwKIAkJCQkJCQkgICBWQVJEQVRBX0FOWShpbjEpLCBW QVJTSVpFX0FOWV9FWEhEUihpbjEpLAotCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9TVFJJ Q1QpOworCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QsIFBHX0dFVF9DT0xMQVRJ T04oKSk7CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFko aW4yLCAxKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jIGIv Y29udHJpYi9wZ190cmdtL3RyZ21fcmVnZXhwLmMKaW5kZXggYjNlY2ExNzhjNWEuLjBlNzJl ZmEwMzc4IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYworKysg Yi9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYwpAQCAtNDc5LDExICs0NzksMTEgQEAg dHlwZWRlZiBzdHJ1Y3QKIAogLyogcHJvdG90eXBlcyBmb3IgcHJpdmF0ZSBmdW5jdGlvbnMg Ki8KIHN0YXRpYyBUUkdNICpjcmVhdGVUcmdtTkZBSW50ZXJuYWwocmVnZXhfdCAqcmVnZXgs IFRyZ21QYWNrZWRHcmFwaCAqKmdyYXBoLAotCQkJCQkJCQkgICBNZW1vcnlDb250ZXh0IHJj b250ZXh0KTsKKwkJCQkJCQkJICAgTWVtb3J5Q29udGV4dCByY29udGV4dCwgT2lkIGNvbGxh dGlvbik7CiBzdGF0aWMgdm9pZCBSRV9jb21waWxlKHJlZ2V4X3QgKnJlZ2V4LCB0ZXh0ICp0 ZXh0X3JlLAogCQkJCQkgICBpbnQgY2ZsYWdzLCBPaWQgY29sbGF0aW9uKTsKLXN0YXRpYyB2 b2lkIGdldENvbG9ySW5mbyhyZWdleF90ICpyZWdleCwgVHJnbU5GQSAqdHJnbU5GQSk7Ci1z dGF0aWMgaW50CWNvbnZlcnRQZ1djaGFyKHBnX3djaGFyIGMsIHRyZ21fbWJfY2hhciAqcmVz dWx0KTsKK3N0YXRpYyB2b2lkIGdldENvbG9ySW5mbyhyZWdleF90ICpyZWdleCwgVHJnbU5G QSAqdHJnbU5GQSwgT2lkIGNvbGxhdGlvbik7CitzdGF0aWMgaW50CWNvbnZlcnRQZ1djaGFy KHBnX3djaGFyIGMsIHRyZ21fbWJfY2hhciAqcmVzdWx0LCBPaWQgY29sbGF0aW9uKTsKIHN0 YXRpYyB2b2lkIHRyYW5zZm9ybUdyYXBoKFRyZ21ORkEgKnRyZ21ORkEpOwogc3RhdGljIHZv aWQgcHJvY2Vzc1N0YXRlKFRyZ21ORkEgKnRyZ21ORkEsIFRyZ21TdGF0ZSAqc3RhdGUpOwog c3RhdGljIHZvaWQgYWRkS2V5KFRyZ21ORkEgKnRyZ21ORkEsIFRyZ21TdGF0ZSAqc3RhdGUs IFRyZ21TdGF0ZUtleSAqa2V5KTsKQEAgLTU1MSw3ICs1NTEsNyBAQCBjcmVhdGVUcmdtTkZB KHRleHQgKnRleHRfcmUsIE9pZCBjb2xsYXRpb24sCiAJCQkgICBSRUdfQURWQU5DRUQgfCBS RUdfTk9TVUIsIGNvbGxhdGlvbik7CiAjZW5kaWYKIAotCXRyZyA9IGNyZWF0ZVRyZ21ORkFJ bnRlcm5hbCgmcmVnZXgsIGdyYXBoLCByY29udGV4dCk7CisJdHJnID0gY3JlYXRlVHJnbU5G QUludGVybmFsKCZyZWdleCwgZ3JhcGgsIHJjb250ZXh0LCBjb2xsYXRpb24pOwogCiAJLyog Q2xlYW4gdXAgYWxsIHRoZSBjcnVmdCB3ZSBjcmVhdGVkIChpbmNsdWRpbmcgcmVnZXgpICov CiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwpAQCAtNTY1LDcgKzU2NSw3 IEBAIGNyZWF0ZVRyZ21ORkEodGV4dCAqdGV4dF9yZSwgT2lkIGNvbGxhdGlvbiwKICAqLwog c3RhdGljIFRSR00gKgogY3JlYXRlVHJnbU5GQUludGVybmFsKHJlZ2V4X3QgKnJlZ2V4LCBU cmdtUGFja2VkR3JhcGggKipncmFwaCwKLQkJCQkJICBNZW1vcnlDb250ZXh0IHJjb250ZXh0 KQorCQkJCQkgIE1lbW9yeUNvbnRleHQgcmNvbnRleHQsIE9pZCBjb2xsYXRpb24pCiB7CiAJ VFJHTQkgICAqdHJnOwogCVRyZ21ORkEJCXRyZ21ORkE7CkBAIC01NzMsNyArNTczLDcgQEAg Y3JlYXRlVHJnbU5GQUludGVybmFsKHJlZ2V4X3QgKnJlZ2V4LCBUcmdtUGFja2VkR3JhcGgg KipncmFwaCwKIAl0cmdtTkZBLnJlZ2V4ID0gcmVnZXg7CiAKIAkvKiBDb2xsZWN0IGNvbG9y IGluZm9ybWF0aW9uIGZyb20gdGhlIHJlZ2V4ICovCi0JZ2V0Q29sb3JJbmZvKHJlZ2V4LCAm dHJnbU5GQSk7CisJZ2V0Q29sb3JJbmZvKHJlZ2V4LCAmdHJnbU5GQSwgY29sbGF0aW9uKTsK IAogI2lmZGVmIFRSR01fUkVHRVhQX0RFQlVHCiAJcHJpbnRTb3VyY2VORkEocmVnZXgsIHRy Z21ORkEuY29sb3JJbmZvLCB0cmdtTkZBLm5jb2xvcnMpOwpAQCAtNzYyLDcgKzc2Miw3IEBA IFJFX2NvbXBpbGUocmVnZXhfdCAqcmVnZXgsIHRleHQgKnRleHRfcmUsIGludCBjZmxhZ3Ms IE9pZCBjb2xsYXRpb24pCiAgKiBGaWxsIFRyZ21Db2xvckluZm8gc3RydWN0dXJlIGZvciBl YWNoIGNvbG9yIHVzaW5nIHJlZ2V4IGV4cG9ydCBmdW5jdGlvbnMuCiAgKi8KIHN0YXRpYyB2 b2lkCi1nZXRDb2xvckluZm8ocmVnZXhfdCAqcmVnZXgsIFRyZ21ORkEgKnRyZ21ORkEpCitn ZXRDb2xvckluZm8ocmVnZXhfdCAqcmVnZXgsIFRyZ21ORkEgKnRyZ21ORkEsIE9pZCBjb2xs YXRpb24pCiB7CiAJaW50CQkJY29sb3JzQ291bnQgPSBwZ19yZWdfZ2V0bnVtY29sb3JzKHJl Z2V4KTsKIAlpbnQJCQlpOwpAQCAtODA2LDcgKzgwNiw3IEBAIGdldENvbG9ySW5mbyhyZWdl eF90ICpyZWdleCwgVHJnbU5GQSAqdHJnbU5GQSkKIAkJZm9yIChqID0gMDsgaiA8IGNoYXJz Q291bnQ7IGorKykKIAkJewogCQkJdHJnbV9tYl9jaGFyIGM7Ci0JCQlpbnQJCQljbGVuID0g Y29udmVydFBnV2NoYXIoY2hhcnNbal0sICZjKTsKKwkJCWludAkJCWNsZW4gPSBjb252ZXJ0 UGdXY2hhcihjaGFyc1tqXSwgJmMsIGNvbGxhdGlvbik7CiAKIAkJCWlmICghY2xlbikKIAkJ CQljb250aW51ZTsJCS8qIG9rIHRvIGlnbm9yZSBpdCBhbHRvZ2V0aGVyICovCkBAIC04MjYs NyArODI2LDcgQEAgZ2V0Q29sb3JJbmZvKHJlZ2V4X3QgKnJlZ2V4LCBUcmdtTkZBICp0cmdt TkZBKQogICogYnl0ZSBsZW5ndGguCiAgKi8KIHN0YXRpYyBpbnQKLWNvbnZlcnRQZ1djaGFy KHBnX3djaGFyIGMsIHRyZ21fbWJfY2hhciAqcmVzdWx0KQorY29udmVydFBnV2NoYXIocGdf d2NoYXIgYywgdHJnbV9tYl9jaGFyICpyZXN1bHQsIE9pZCBjb2xsYXRpb24pCiB7CiAJLyog InMiIGhhcyBlbm91Z2ggc3BhY2UgZm9yIGEgbXVsdGlieXRlIGNoYXJhY3RlciBhbmQgYSB0 cmFpbGluZyBOVUwgKi8KIAljaGFyCQlzW01BWF9NVUxUSUJZVEVfQ0hBUl9MRU4gKyAxXTsK QEAgLTg1OSw3ICs4NTksNyBAQCBjb252ZXJ0UGdXY2hhcihwZ193Y2hhciBjLCB0cmdtX21i X2NoYXIgKnJlc3VsdCkKIAkgKi8KICNpZmRlZiBJR05PUkVDQVNFCiAJewotCQljaGFyCSAg ICpsb3dlckNhc2VkID0gc3RyX3RvbG93ZXIocywgY2xlbiwgREVGQVVMVF9DT0xMQVRJT05f T0lEKTsKKwkJY2hhcgkgICAqbG93ZXJDYXNlZCA9IHN0cl90b2xvd2VyKHMsIGNsZW4sIGNv bGxhdGlvbik7CiAKIAkJaWYgKHN0cmNtcChsb3dlckNhc2VkLCBzKSAhPSAwKQogCQl7Ci0t IAoyLjUzLjAKCg== --------------X1E0f7817rrcBDr2DJyWchjG--