Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pzmOm-0003k8-Pf for pgsql-hackers@arkaria.postgresql.org; Thu, 18 May 2023 22:47:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pzmOk-0003kC-Rd for pgsql-hackers@arkaria.postgresql.org; Thu, 18 May 2023 22:47:02 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pzmOk-0003k2-7I for pgsql-hackers@lists.postgresql.org; Thu, 18 May 2023 22:47:02 +0000 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1pzmOd-000cAZ-LG for pgsql-hackers@lists.postgresql.org; Thu, 18 May 2023 22:47:01 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-2533d8f4a1eso1975637a91.1 for ; Thu, 18 May 2023 15:46:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1684450014; x=1687042014; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=MMATUqm4c9OAUwYceDqdSE2F0whM4lriaP7zKGHYv3k=; b=uJHAJaLjFhnadH7fTvgZ9XCYovO8b2wUab7NVKJLCxLKtJMlX7oyD9co4Rb1CnP4PU rXNYItIF0xtYjRQ/Z2b0tVBUtdr4I+UaGXm5XutayO5yNzz28RKMM5jxuIytLokwIvjE enrVWdPp688HT1rSjy9qnGX6e2KuGUX4pzn7nwbc8+WuiASZdwfhjgEkagylSNcqTdqG /cWRVf+sTthUGblzFyXeAiOhCusJ1m7ME0f8L6J5tIDawXHuVC3/+y1DWhMeDX8YuXH2 hAXZ72brH4RRPy5yKmTqQ35JB4VpPmMrib/wSh0+FARGC6aD09JXWEbeiqMc6mwlLPwb GSiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684450014; x=1687042014; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=MMATUqm4c9OAUwYceDqdSE2F0whM4lriaP7zKGHYv3k=; b=HFcHbBazaVK9OFJXnaiPNQjLmzFiJA9g6FMHvwdXvJiImK9DGjHL49507GHQMy9x8k deJ4fSNkS2+ZZcEY89CeeSaeG3K46bgihH33OKo5Mpwr2ULEdNZOCbwBaW3b+TvOYdqC 0S7KfgFXpU6LzyfoksheQ1aVMdoTZNiSztoc0up6zcY9GbvFeXqiC5oW7VXPgDQMq4us 4gVjGDr+wKYHQyWf4WSXjn7C+tMu7RfbUc8ArA7mRfXXAqOiNNpgUYqXL2faHbaw+XVP Nn6s3q1YtibNGVargx0uIc0YGj92l7+zoVG23FJdyCjQYKEPQ0YI07xd+mjE4LL1pCjJ rZdg== X-Gm-Message-State: AC+VfDwV+OUu48mrzLJXByX3W3mUh72VAn8L6I4L7+GceuNd310rTvLQ N8DHqeXFJyfS3NNf2KsEZC5njg== X-Google-Smtp-Source: ACHHUZ552yiOl/dVDt6zK0Q+EXPC3AJDixqG2eBM0F+b7NKoGlOESp1fr5/ZHCYqldQtZLRxwei0Xw== X-Received: by 2002:a17:90a:cb84:b0:23f:1165:b49f with SMTP id a4-20020a17090acb8400b0023f1165b49fmr49499pju.38.1684450014122; Thu, 18 May 2023 15:46:54 -0700 (PDT) Received: from [172.18.7.14] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id l19-20020a17090a599300b0024e2230fdafsm158029pji.54.2023.05.18.15.46.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 15:46:53 -0700 (PDT) Message-ID: <5f9bf4a0b040428c5db2dc1f23cc3ad96acb5672.camel@j-davis.com> Subject: Re: Order changes in PG16 since ICU introduction From: Jeff Davis To: Matthias van de Meent Cc: Andrew Gierth , Peter Eisentraut , Sandro Santilli , Tom Lane , Regina Obe , pgsql-hackers@lists.postgresql.org Date: Thu, 18 May 2023 15:46:52 -0700 In-Reply-To: References: <000b01d97465$c34bbd60$49e33820$@pcorp.us> <3353947.1682092131@sss.pgh.pa.us> <533d93c5-f604-8e5f-4a48-975c08c53d59@enterprisedb.com> <878relf7cb.fsf@news-spur.riddles.org.uk> <7d62b28d808617aae43a68bdfba14d7075f048ea.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-4HiYp7zcmkBoGIgoh6K1" User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-4HiYp7zcmkBoGIgoh6K1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2023-05-18 at 20:11 +0200, Matthias van de Meent wrote: > As I complain about in [0], since 5cd1a5af --no-locale has been > broken > / bahiving outside it's description: Instead of being equivalent to > `--locale=3DC` it now also overrides `--locale-provider=3Dlibc`, > resulting > in undocumented behaviour. I agree that 5cd1a5af is incomplete. Posting updated patches. Feedback on the approaches below would be appreciated. For context, in version 15: $ initdb -D data --locale-provider=3Dicu --icu-locale=3Den =3D> create database clocale template template0 locale=3D'C'; =3D> select datname, datlocprovider, daticulocale from pg_database where datname=3D'clocale'; datname | datlocprovider | daticulocale=20 ---------+----------------+-------------- clocale | i | en (1 row) That behavior is confusing, and when I made ICU the default provider in v16, the confusion was extended into more cases. If we leave the CREATE DATABASE (and createdb and initdb) syntax in place, such that LOCALE (and --locale) do not apply to ICU at all, then I don't see a path to a good ICU user experience. Therefore I conclude that we need LOCALE (and --locale) to apply to ICU somehow. (The LOCALE option already applies to ICU during CREATE COLLATION, just not CREATE DATABASE or initdb.) Patch 0003 does this. It's fairly straightforward and I believe we need this patch. But to actually fix your complaint we also need --no-locale to be equivalent to --locale=3DC and for those options to both use memcmp() semantics. There are several approaches to accomplish this, and I think this is the part where I most need some feedback. There are only so many approaches, and each one has some potential downsides, but I believe we need to select one: (1) Give up and leave the existing CREATE DATABASE (and createdb, and initdb) semantics in place, along with the confusing behavior in v15. This is a last resort, in my opinion. It gives us no path toward a good user experience with ICU, and leaves us with all of the problems of the OS as a collation provider. (2) Automatically change the provider to libc when locale=3DC. Almost works, but it's not clear how we handle the case "provider=3Dicu lc_collate=3D'fr_FR.utf8' locale=3DC". If we change it to "provider=3Dlibc lc_collate=3DC", we've overridden the specified lc_collate. If we ignore the locale=3DC, that would be surprising to users. If we throw an error, that would be a backwards compatibility issue. One possible solution would be to change the catalog representation to allow setting the default collation locale separately from datcollate even for the libc provider. For instance, rename daticulocale to datdeflocale, and store the default collation locale there for both libc and ICU. Then, "provider=3Dicu lc_collate=3D'fr_FR.utf8' locale=3DC" could be changed into "provider=3Dlibc lc_collate=3D'fr_FR.utf8' deflocale=3DC". It may be confusing that datcollate is a different concept from datdeflocale; but then again they are different concepts and it's confusing that they are currently combined into one. (3) Support iculocale=3DC in the ICU provider using the memcmp() path. In other words, if provider=3Dicu and iculocale=3DC, lc_collate_is_c() and lc_ctpye_is_c() would both return true. There's a potential problem for users who've misused ICU in the past (15 or earlier) by using provider=3Dicu and iculocale=3DC. ICU would accept such a locale name, but not recognize it and fall back to the root locale, so it never worked as the user intended it. But if we redefine C to be memcmp(), then such users will have broken indexes if they upgrade. We could add a check at pg_upgrade time for iculocale=3DC in versions 15 and earlier, and cause the check (and therefore the upgrade) to fail. That may be reasonable considering that it never really worked in the past, and perhaps very few users actually ever created such a collation. But if some user runs into that problem, we'd have to resort to a hack like telling them to "update pg_collation set iculocale=3D'und' where iculocale=3D'C'" and then try the upgrade again, which is not a great answer (as far as I can tell it would be a correct answer and should not break their indexes, but it feels pretty dangerous). There may be some other resolutions to this problem, such as catalog hacks that allow for different representations of iculocale=3DC pre-16 and post-16. That doesn't sound great though, and we'd have to figure out what to do with pg_dump. (4) Create a new "none" provider (which has no locale and always memcmp semantics), and automatically change the provider to "none" if provider=3Dicu and iculocale=3DC. This solves the problem case in #2 and the potential upgrade problem in #3. It also makes the documentation a bit more natural, in my opinion, even if we retain the special case for provider=3Dlibc collate=3DC. #4 is the approach I chose (patches 0001 and 0002), but I'd like to hear what others think. For historical reasons, users may assume that LC_COLLATE controls the default collation=C2=A0order because that's true in libc. And if their provider is ICU, they may be surprised that it doesn't. I believe we could extend each of the above approaches to use LC_COLLATE as the default for ICU_LOCALE if the former is specified and the latter is not, and that may make things smoother. --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-4HiYp7zcmkBoGIgoh6K1 Content-Disposition: attachment; filename="v6-0001-Introduce-collation-provider-none.patch" Content-Type: text/x-patch; name="v6-0001-Introduce-collation-provider-none.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkZTM3YmZiMDJkY2M0MWMyZTkzMmE3ODhiYTEwYTA1ZTVhNTM5ODcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEgTWF5IDIwMjMgMTU6Mzg6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIIHY2IDEvNV0gSW50 cm9kdWNlIGNvbGxhdGlvbiBwcm92aWRlciAibm9uZSIuCgpQcm92aWRlcyBsb2NhbGUtdW5hd2Fy ZSBzZW1hbnRpY3MgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgZmFzdCBieXRlCm9wZXJhdGlvbnMg aW4gUG9zdGdyZXMsIGluZGVwZW5kZW50IG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9yIGFueQpw cm92aWRlciBsaWJyYXJpZXMuCgpFcXVpdmFsZW50IChpbiBzZW1hbnRpY3MgYW5kIGltcGxlbWVu dGF0aW9uKSB0byB0aGUgbGliYyBwcm92aWRlciB3aXRoCmxvY2FsZSAiQyIsIGV4Y2VwdCB0aGF0 IExDX0NPTExBVEUgYW5kIExDX0NUWVBFIGNhbiBiZSBzZXQKaW5kZXBlbmRlbnRseS4KClVzZSBw cm92aWRlciAibm9uZSIgZm9yIGJ1aWx0LWluIGNvbGxhdGlvbiAidWNzX2Jhc2ljIiBpbnN0ZWFk IG9mCmxpYmMuCi0tLQogZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbCAgICAgICAgICAgICAgfCA4 NyArKysrKysrKysrKysrKysrKysrKystLS0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29s bGF0aW9uLnNnbWwgfCAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dt bCAgfCAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sICAgICAgICAgfCAgMiAr LQogZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbCAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb2xsYXRpb24uYyAgICAgfCAgNyArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbGxhdGlvbmNtZHMuYyAgIHwgODQgKysrKysrKysrKysrKysrKysrKysrLS0tLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jICAgICAgfCA2OSArKysrKysrKysrKysr KysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jICAgICAgfCAyNyArKysr KysrLQogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jICAgICAgfCAxMCArKy0KIHNy Yy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAgICAgICAgIHwgMzMgKysrKysrKysrLQogc3Jj L2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsICAgICAgICAgfCAyOSArKysrKysrKysKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgIHwgIDggKystCiBzcmMvYmluL3BnX3Vw Z3JhZGUvdC8wMDJfcGdfdXBncmFkZS5wbCB8IDE4ICsrKysrLQogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMg ICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsICAg ICAgfCAyOSArKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmRhdCAg IHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmggICAgIHwgIDMgKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91dCAgfCAxMCArKy0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuc3FsICAgICAgIHwgIDYgKysKIDIxIGZpbGVzIGNoYW5nZWQs IDM3MyBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2hhcnNldC5zZ21sIGIvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbAppbmRleCA5ZGIx NDY0OWFhLi43YTc5MWEyYjdjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKQEAgLTM0MiwyMiArMzQyLDE0IEBAIGlu aXRkYiAtLWxvY2FsZT1zdl9TRQogICAgPHRpdGxlPkxvY2FsZSBQcm92aWRlcnM8L3RpdGxlPgog CiAgICA8cGFyYT4KLSAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHN1 cHBvcnRzIG11bHRpcGxlIDxmaXJzdHRlcm0+bG9jYWxlCi0gICAgcHJvdmlkZXJzPC9maXJzdHRl cm0+LiAgVGhpcyBzcGVjaWZpZXMgd2hpY2ggbGlicmFyeSBzdXBwbGllcyB0aGUgbG9jYWxlCi0g ICAgZGF0YS4gIE9uZSBzdGFuZGFyZCBwcm92aWRlciBuYW1lIGlzIDxsaXRlcmFsPmxpYmM8L2xp dGVyYWw+LCB3aGljaCB1c2VzCi0gICAgdGhlIGxvY2FsZXMgcHJvdmlkZWQgYnkgdGhlIG9wZXJh dGluZyBzeXN0ZW0gQyBsaWJyYXJ5LiAgVGhlc2UgYXJlIHRoZQotICAgIGxvY2FsZXMgdXNlZCBi eSBtb3N0IHRvb2xzIHByb3ZpZGVkIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLiAgQW5vdGhlcgot ICAgIHByb3ZpZGVyIGlzIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD4sIHdoaWNoIHVzZXMgdGhlIGV4 dGVybmFsCi0gICAgSUNVPGluZGV4dGVybT48cHJpbWFyeT5JQ1U8L3ByaW1hcnk+PC9pbmRleHRl cm0+IGxpYnJhcnkuICBJQ1UgbG9jYWxlcyBjYW4KLSAgICBvbmx5IGJlIHVzZWQgaWYgc3VwcG9y dCBmb3IgSUNVIHdhcyBjb25maWd1cmVkIHdoZW4gUG9zdGdyZVNRTCB3YXMgYnVpbHQuCisgICAg QSBsb2NhbGUgcHJvdmlkZXIgc3BlY2lmaWVzIHdoaWNoIGxpYnJhcnkgZGVmaW5lcyB0aGUgbG9j YWxlIGJlaGF2aW9yIGZvcgorICAgIGNvbGxhdGlvbnMgYW5kIGNoYXJhY3RlciBjbGFzc2lmaWNh dGlvbnMuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgogICAgIFRoZSBjb21tYW5kcyBhbmQgdG9v bHMgdGhhdCBzZWxlY3QgdGhlIGxvY2FsZSBzZXR0aW5ncywgYXMgZGVzY3JpYmVkCi0gICAgYWJv dmUsIGVhY2ggaGF2ZSBhbiBvcHRpb24gdG8gc2VsZWN0IHRoZSBsb2NhbGUgcHJvdmlkZXIuICBU aGUgZXhhbXBsZXMKLSAgICBzaG93biBlYXJsaWVyIGFsbCB1c2UgdGhlIDxsaXRlcmFsPmxpYmM8 L2xpdGVyYWw+IHByb3ZpZGVyLCB3aGljaCBpcyB0aGUKLSAgICBkZWZhdWx0LiAgSGVyZSBpcyBh biBleGFtcGxlIHRvIGluaXRpYWxpemUgYSBkYXRhYmFzZSBjbHVzdGVyIHVzaW5nIHRoZQotICAg IElDVSBwcm92aWRlcjoKKyAgICBhYm92ZSwgZWFjaCBoYXZlIGFuIG9wdGlvbiB0byBzZWxlY3Qg dGhlIGxvY2FsZSBwcm92aWRlci4gSGVyZSBpcyBhbgorICAgIGV4YW1wbGUgdG8gaW5pdGlhbGl6 ZSBhIGRhdGFiYXNlIGNsdXN0ZXIgdXNpbmcgdGhlIElDVSBwcm92aWRlcjoKIDxwcm9ncmFtbGlz dGluZz4KIGluaXRkYiAtLWxvY2FsZS1wcm92aWRlcj1pY3UgLS1pY3UtbG9jYWxlPWVuCiA8L3By b2dyYW1saXN0aW5nPgpAQCAtMzcwLDEyICszNjIsNzMgQEAgaW5pdGRiIC0tbG9jYWxlLXByb3Zp ZGVyPWljdSAtLWljdS1sb2NhbGU9ZW4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgV2hp Y2ggbG9jYWxlIHByb3ZpZGVyIHRvIHVzZSBkZXBlbmRzIG9uIGluZGl2aWR1YWwgcmVxdWlyZW1l bnRzLiAgRm9yIG1vc3QKLSAgICBiYXNpYyB1c2VzLCBlaXRoZXIgcHJvdmlkZXIgd2lsbCBnaXZl IGFkZXF1YXRlIHJlc3VsdHMuICBGb3IgdGhlIGxpYmMKLSAgICBwcm92aWRlciwgaXQgZGVwZW5k cyBvbiB3aGF0IHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9mZmVyczsgc29tZSBvcGVyYXRpbmcKLSAg ICBzeXN0ZW1zIGFyZSBiZXR0ZXIgdGhhbiBvdGhlcnMuICBGb3IgYWR2YW5jZWQgdXNlcywgSUNV IG9mZmVycyBtb3JlIGxvY2FsZQotICAgIHZhcmlhbnRzIGFuZCBjdXN0b21pemF0aW9uIG9wdGlv bnMuCisgICAgUmVnYXJkbGVzcyBvZiB0aGUgbG9jYWxlIHByb3ZpZGVyLCB0aGUgb3BlcmF0aW5n IHN5c3RlbSBpcyBzdGlsbCB1c2VkIHRvCisgICAgcHJvdmlkZSBzb21lIGxvY2FsZS1hd2FyZSBi ZWhhdmlvciwgc3VjaCBhcyBtZXNzYWdlcyAoc2VlIDx4cmVmCisgICAgbGlua2VuZD0iZ3VjLWxj LW1lc3NhZ2VzIi8+KS4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIGF2YWlsYWJs ZSBsb2NhbGUgcHJvdmlkZXJzIGFyZSBsaXN0ZWQgYmVsb3cuCisgICA8L3BhcmE+CisKKyAgIDxz ZWN0MyBpZD0ibG9jYWxlLXByb3ZpZGVyLW5vbmUiPgorICAgIDx0aXRsZT5Ob25lPC90aXRsZT4K KyAgICA8cGFyYT4KKyAgICAgVGhlIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+IHByb3ZpZGVyIHVz ZXMgc2ltcGxlIGJ1aWx0LWluIG9wZXJhdGlvbnMKKyAgICAgd2hpY2ggYXJlIG5vdCBsb2NhbGUt YXdhcmUuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBUaGUgY29sbGF0aW9uIGFuZCBj aGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gYmVoYXZpb3IgaXMgZXF1aXZhbGVudCB0bworICAgICB1 c2luZyB0aGUgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4gcHJvdmlkZXIgd2l0aCBsb2NhbGUKKyAg ICAgPGxpdGVyYWw+QzwvbGl0ZXJhbD4sIGV4Y2VwdCB0aGF0IDxsaXRlcmFsPkxDX0NPTExBVEU8 L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD5MQ19DVFlQRTwvbGl0ZXJhbD4gY2FuIGJlIHNl dCBpbmRlcGVuZGVudGx5LgorICAgIDwvcGFyYT4KKyAgICA8bm90ZT4KKyAgICAgPHBhcmE+Cisg ICAgICBXaGVuIHVzaW5nIHRoZSA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiBsb2NhbGUgcHJvdmlk ZXIsIGJlaGF2aW9yIG1heQorICAgICAgZGVwZW5kIG9uIHRoZSBkYXRhYmFzZSBlbmNvZGluZy4K KyAgICAgPC9wYXJhPgorICAgIDwvbm90ZT4KKyAgIDwvc2VjdDM+CisgICA8c2VjdDMgaWQ9Imxv Y2FsZS1wcm92aWRlci1pY3UiPgorICAgIDx0aXRsZT5JQ1U8L3RpdGxlPgorICAgIDxwYXJhPgor ICAgICBUaGUgPGxpdGVyYWw+aWN1PC9saXRlcmFsPiBwcm92aWRlciB1c2VzIHRoZSBleHRlcm5h bAorICAgICBJQ1U8aW5kZXh0ZXJtPjxwcmltYXJ5PklDVTwvcHJpbWFyeT48L2luZGV4dGVybT4K KyAgICAgbGlicmFyeS4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBtdXN0 IGhhdmUgYmVlbiBjb25maWd1cmVkCisgICAgIHdpdGggc3VwcG9ydC4KKyAgICA8L3BhcmE+Cisg ICAgPHBhcmE+CisgICAgIElDVSBwcm92aWRlcyBjb2xsYXRpb24gYW5kIGNoYXJhY3RlciBjbGFz c2lmaWNhdGlvbiBiZWhhdmlvciB0aGF0IGlzCisgICAgIGluZGVwZW5kZW50IG9mIHRoZSBvcGVy YXRpbmcgc3lzdGVtIGFuZCBkYXRhYmFzZSBlbmNvZGluZywgd2hpY2ggaXMKKyAgICAgcHJlZmVy YWJsZSBpZiB5b3UgZXhwZWN0IHRvIHRyYW5zaXRpb24gdG8gb3RoZXIgcGxhdGZvcm1zIHdpdGhv dXQgYW55CisgICAgIGNoYW5nZSBpbiByZXN1bHRzLiA8bGl0ZXJhbD5MQ19DT0xMQVRFPC9saXRl cmFsPiBhbmQKKyAgICAgPGxpdGVyYWw+TENfQ1RZUEU8L2xpdGVyYWw+IGNhbiBiZSBzZXQgaW5k ZXBlbmRlbnRseSBvZiB0aGUgSUNVIGxvY2FsZS4KKyAgICA8L3BhcmE+CisgICAgPG5vdGU+Cisg ICAgIDxwYXJhPgorICAgICAgRm9yIHRoZSBJQ1UgcHJvdmlkZXIsIHJlc3VsdHMgbWF5IGRlcGVu ZCBvbiB0aGUgdmVyc2lvbiBvZiB0aGUgSUNVCisgICAgICBsaWJyYXJ5IHVzZWQsIGFzIGl0IGlz IHVwZGF0ZWQgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIG5hdHVyYWwgbGFuZ3VhZ2UKKyAgICAgIG92 ZXIgdGltZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbm90ZT4KKyAgIDwvc2VjdDM+CisgICA8c2Vj dDMgaWQ9ImxvY2FsZS1wcm92aWRlci1saWJjIj4KKyAgICA8dGl0bGU+bGliYzwvdGl0bGU+Cisg ICAgPHBhcmE+CisgICAgIFRoZSA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPiBwcm92aWRlciB1c2Vz IHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgQworICAgICBsaWJyYXJ5LiBUaGUgY29sbGF0aW9uIGFu ZCBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gYmVoYXZpb3IgaXMKKyAgICAgY29udHJvbGxlZCBi eSB0aGUgc2V0dGluZ3MgPGxpdGVyYWw+TENfQ09MTEFURTwvbGl0ZXJhbD4gYW5kCisgICAgIDxs aXRlcmFsPkxDX0NUWVBFPC9saXRlcmFsPiwgc28gdGhleSBjYW5ub3QgYmUgc2V0IGluZGVwZW5k ZW50bHkuCisgICAgPC9wYXJhPgorICAgIDxub3RlPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBz YW1lIGxvY2FsZSBuYW1lIG1heSBoYXZlIGRpZmZlcmVudCBiZWhhdmlvciBvbiBkaWZmZXJlbnQg cGxhdGZvcm1zCisgICAgICB3aGVuIHVzaW5nIHRoZSBsaWJjIHByb3ZpZGVyLgorICAgICA8L3Bh cmE+CisgICAgPC9ub3RlPgorICAgPC9zZWN0Mz4KKwogICA8L3NlY3QyPgogICA8c2VjdDIgaWQ9 ImljdS1sb2NhbGVzIj4KICAgIDx0aXRsZT5JQ1UgTG9jYWxlczwvdGl0bGU+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sCmluZGV4IGY2MzUzZGE1YzEuLjU0ODlhZTc0MTMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sCkBAIC0xMjAsNyArMTIwLDcgQEAg Q1JFQVRFIENPTExBVElPTiBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVw bGFjZWFibGU+IEZST00gPHJlcGxhY2UKICAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+CiAg ICAgICAgU3BlY2lmaWVzIHRoZSBwcm92aWRlciB0byB1c2UgZm9yIGxvY2FsZSBzZXJ2aWNlcyBh c3NvY2lhdGVkIHdpdGggdGhpcwotICAgICAgIGNvbGxhdGlvbi4gIFBvc3NpYmxlIHZhbHVlcyBh cmUKKyAgICAgICBjb2xsYXRpb24uICBQb3NzaWJsZSB2YWx1ZXMgYXJlIDxsaXRlcmFsPm5vbmU8 L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmlt YXJ5PklDVTwvcHJpbWFyeT48L2luZGV4dGVybT4KICAgICAgICAoaWYgdGhlIHNlcnZlciB3YXMg YnVpbHQgd2l0aCBJQ1Ugc3VwcG9ydCkgb3IgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4uCiAgICAg ICAgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuICBTZWUgPHhyZWYKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5zZ21sCmluZGV4IDEzNzkzYmI2YjcuLjYwYjlkYTA5 NTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbApAQCAtMjEyLDcgKzIxMiw3 IEBAIENSRUFURSBEQVRBQkFTRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFNw ZWNpZmllcyB0aGUgcHJvdmlkZXIgdG8gdXNlIGZvciB0aGUgZGVmYXVsdCBjb2xsYXRpb24gaW4g dGhpcwotICAgICAgICBkYXRhYmFzZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmUKKyAgICAgICAgZGF0 YWJhc2UuICBQb3NzaWJsZSB2YWx1ZXMgYXJlIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LAogICAg ICAgICA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5JQ1U8L3ByaW1h cnk+PC9pbmRleHRlcm0+CiAgICAgICAgIChpZiB0aGUgc2VydmVyIHdhcyBidWlsdCB3aXRoIElD VSBzdXBwb3J0KSBvciA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPi4KICAgICAgICAgQnkgZGVmYXVs dCwgdGhlIHByb3ZpZGVyIGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlIDx4cmVmCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZWRiLnNnbWwKaW5kZXggZTIzNDE5YmE2Yy4uMzI2YTM3MWQzNCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl ZGIuc2dtbApAQCAtMTY4LDcgKzE2OCw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAg ICA8L3Zhcmxpc3RlbnRyeT4KIAogICAgICA8dmFybGlzdGVudHJ5PgotICAgICAgPHRlcm0+PG9w dGlvbj4tLWxvY2FsZS1wcm92aWRlcj17PGxpdGVyYWw+bGliYzwvbGl0ZXJhbD58PGxpdGVyYWw+ aWN1PC9saXRlcmFsPn08L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0tbG9j YWxlLXByb3ZpZGVyPXs8bGl0ZXJhbD5ub25lPC9saXRlcmFsPnw8bGl0ZXJhbD5saWJjPC9saXRl cmFsPnw8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+fTwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0 aXRlbT4KICAgICAgICA8cGFyYT4KICAgICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgcHJvdmlk ZXIgZm9yIHRoZSBkYXRhYmFzZSdzIGRlZmF1bHQgY29sbGF0aW9uLgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwK aW5kZXggODc5NDViNGI2Mi4uZTYwNGFiNDhiNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9pbml0ZGIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sCkBAIC0zMjMs NyArMzIzLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgIDwvdmFybGlzdGVudHJ5 PgogCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1pbml0ZGItb3B0aW9uLWxvY2FsZS1wcm92 aWRlciI+Ci0gICAgICA8dGVybT48b3B0aW9uPi0tbG9jYWxlLXByb3ZpZGVyPXs8bGl0ZXJhbD5s aWJjPC9saXRlcmFsPnw8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+fTwvb3B0aW9uPjwvdGVybT4KKyAg ICAgIDx0ZXJtPjxvcHRpb24+LS1sb2NhbGUtcHJvdmlkZXI9ezxsaXRlcmFsPm5vbmU8L2xpdGVy YWw+fDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+fDxsaXRlcmFsPmljdTwvbGl0ZXJhbD59PC9vcHRp b24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAgICAgICBUaGlz IG9wdGlvbiBzZXRzIHRoZSBsb2NhbGUgcHJvdmlkZXIgZm9yIGRhdGFiYXNlcyBjcmVhdGVkIGlu IHRoZSBuZXcKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29sbGF0aW9uLmMg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbGxhdGlvbi5jCmluZGV4IGZkMDIyZTZmYzIuLjg2 YjZiYTIzNzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29sbGF0aW9uLmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb2xsYXRpb24uYwpAQCAtNjgsNyArNjgsMTIg QEAgQ29sbGF0aW9uQ3JlYXRlKGNvbnN0IGNoYXIgKmNvbGxuYW1lLCBPaWQgY29sbG5hbWVzcGFj ZSwKIAlBc3NlcnQoY29sbG5hbWUpOwogCUFzc2VydChjb2xsbmFtZXNwYWNlKTsKIAlBc3NlcnQo Y29sbG93bmVyKTsKLQlBc3NlcnQoKGNvbGxjb2xsYXRlICYmIGNvbGxjdHlwZSkgfHwgY29sbGlj dWxvY2FsZSk7CisJQXNzZXJ0KChjb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX05PTkUgJiYK KwkJCSFjb2xsY29sbGF0ZSAmJiAhY29sbGN0eXBlICYmICFjb2xsaWN1bG9jYWxlKSB8fAorCQkg ICAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDICYmCisJCQkgY29sbGNvbGxhdGUg JiYgIGNvbGxjdHlwZSAmJiAhY29sbGljdWxvY2FsZSkgfHwKKwkJICAgKGNvbGxwcm92aWRlciA9 PSBDT0xMUFJPVklERVJfSUNVICYmCisJCQkhY29sbGNvbGxhdGUgJiYgIWNvbGxjdHlwZSAmJiAg Y29sbGljdWxvY2FsZSkpOwogCiAJLyoKIAkgKiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gZXhpc3Rp bmcgY29sbGF0aW9uIG9mIHNhbWUgbmFtZSAmIGVuY29kaW5nLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29s bGF0aW9uY21kcy5jCmluZGV4IGM5MWZlNjZkOWIuLmFlYWY2YzQxOWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9jb2xsYXRpb25jbWRzLmMKQEAgLTIxNSw3ICsyMTUsOSBAQCBEZWZpbmVDb2xsYXRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBp Zl9ub3RfZQogCiAJCWlmIChjb2xscHJvdmlkZXJzdHIpCiAJCXsKLQkJCWlmIChwZ19zdHJjYXNl Y21wKGNvbGxwcm92aWRlcnN0ciwgImljdSIpID09IDApCisJCQlpZiAocGdfc3RyY2FzZWNtcChj b2xscHJvdmlkZXJzdHIsICJub25lIikgPT0gMCkKKwkJCQljb2xscHJvdmlkZXIgPSBDT0xMUFJP VklERVJfTk9ORTsKKwkJCWVsc2UgaWYgKHBnX3N0cmNhc2VjbXAoY29sbHByb3ZpZGVyc3RyLCAi aWN1IikgPT0gMCkKIAkJCQljb2xscHJvdmlkZXIgPSBDT0xMUFJPVklERVJfSUNVOwogCQkJZWxz ZSBpZiAocGdfc3RyY2FzZWNtcChjb2xscHJvdmlkZXJzdHIsICJsaWJjIikgPT0gMCkKIAkJCQlj b2xscHJvdmlkZXIgPSBDT0xMUFJPVklERVJfTElCQzsKQEAgLTIyOCw2ICsyMzAsMTMgQEAgRGVm aW5lQ29sbGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFt ZXRlcnMsIGJvb2wgaWZfbm90X2UKIAkJZWxzZQogCQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJ REVSX0xJQkM7CiAKKwkJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTk9ORQorCQkJ JiYgKGxvY2FsZUVsIHx8IGxjY29sbGF0ZUVsIHx8IGxjY3R5cGVFbCkpCisJCXsKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJtc2coImNvbGxhdGlvbiBwcm92aWRlciBcIm5vbmVcIiBkb2Vz IG5vdCBzdXBwb3J0IExPQ0FMRSwgTENfQ09MTEFURSwgb3IgTENfQ1RZUEUiKSkpOworCQl9CisK IAkJaWYgKGxvY2FsZUVsKQogCQl7CiAJCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURF Ul9MSUJDKQpAQCAtMzAyLDYgKzMxMSwxNiBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAogCQkJCQkgZXJy bXNnKCJJQ1UgcnVsZXMgY2Fubm90IGJlIHNwZWNpZmllZCB1bmxlc3MgbG9jYWxlIHByb3ZpZGVy IGlzIElDVSIpKSk7CiAKKwkJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTk9ORSkK KwkJeworCQkJLyoKKwkJCSAqIEJlaGF2aW9yIG1heSBiZSBkaWZmZXJlbnQgaW4gZGlmZmVyZW50 IGVuY29kaW5ncywgc28gc2V0CisJCQkgKiBjb2xsZW5jb2RpbmcgdG8gdGhlIGN1cnJlbnQgZGF0 YWJhc2UgZW5jb2RpbmcuIE5vIHZhbGlkYXRpb24gaXMKKwkJCSAqIHJlcXVpcmVkLCBiZWNhdXNl IHRoZSAibm9uZSIgcHJvdmlkZXIgaXMgY29tcGF0aWJsZSB3aXRoIGFueQorCQkJICogZW5jb2Rp bmcuCisJCQkgKi8KKwkJCWNvbGxlbmNvZGluZyA9IEdldERhdGFiYXNlRW5jb2RpbmcoKTsKKwkJ fQogCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJCXsKICNpZmRlZiBV U0VfSUNVCkBAIC0zMzEsNyArMzUwLDE4IEBAIERlZmluZUNvbGxhdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKm5hbWVzLCBMaXN0ICpwYXJhbWV0ZXJzLCBib29sIGlmX25vdF9lCiAJfQog CiAJaWYgKCFjb2xsdmVyc2lvbikKLQkJY29sbHZlcnNpb24gPSBnZXRfY29sbGF0aW9uX2FjdHVh bF92ZXJzaW9uKGNvbGxwcm92aWRlciwgY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1Ug PyBjb2xsaWN1bG9jYWxlIDogY29sbGNvbGxhdGUpOworCXsKKwkJY2hhciAqbG9jYWxlOworCisJ CWlmIChjb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCWxvY2FsZSA9IGNvbGxp Y3Vsb2NhbGU7CisJCWVsc2UgaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykK KwkJCWxvY2FsZSA9IGNvbGxjb2xsYXRlOworCQllbHNlCisJCQlsb2NhbGUgPSBOVUxMOyAvKiBD T0xMUFJPVklERVJfTk9ORSAqLworCisJCWNvbGx2ZXJzaW9uID0gZ2V0X2NvbGxhdGlvbl9hY3R1 YWxfdmVyc2lvbihjb2xscHJvdmlkZXIsIGxvY2FsZSk7CisJfQogCiAJbmV3b2lkID0gQ29sbGF0 aW9uQ3JlYXRlKGNvbGxOYW1lLAogCQkJCQkJCSBjb2xsTmFtZXNwYWNlLApAQCAtNDA2LDYgKzQz Niw3IEBAIEFsdGVyQ29sbGF0aW9uKEFsdGVyQ29sbGF0aW9uU3RtdCAqc3RtdCkKIAlGb3JtX3Bn X2NvbGxhdGlvbiBjb2xsRm9ybTsKIAlEYXR1bQkJZGF0dW07CiAJYm9vbAkJaXNudWxsOworCWNo YXIJICAgKmxvY2FsZTsKIAljaGFyCSAgICpvbGR2ZXJzaW9uOwogCWNoYXIJICAgKm5ld3ZlcnNp b247CiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwpAQCAtNDMwLDggKzQ2MSwyMCBAQCBBbHRlckNv bGxhdGlvbihBbHRlckNvbGxhdGlvblN0bXQgKnN0bXQpCiAJZGF0dW0gPSBTeXNDYWNoZUdldEF0 dHIoQ09MTE9JRCwgdHVwLCBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsdmVyc2lvbiwgJmlzbnVsbCk7 CiAJb2xkdmVyc2lvbiA9IGlzbnVsbCA/IE5VTEwgOiBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVt KTsKIAotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChDT0xMT0lELCB0dXAsIGNvbGxG b3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSA/IEFudW1fcGdfY29sbGF0aW9u X2NvbGxpY3Vsb2NhbGUgOiBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsY29sbGF0ZSk7Ci0JbmV3dmVy c2lvbiA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oY29sbEZvcm0tPmNvbGxwcm92aWRl ciwgVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpOworCWlmIChjb2xsRm9ybS0+Y29sbHByb3Zp ZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJeworCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5v dE51bGwoQ09MTE9JRCwgdHVwLCBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsaWN1bG9jYWxlKTsKKwkJ bG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJfQorCWVsc2UgaWYgKGNvbGxG b3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCisJeworCQlkYXR1bSA9IFN5 c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09MTE9JRCwgdHVwLCBBbnVtX3BnX2NvbGxhdGlvbl9jb2xs Y29sbGF0ZSk7CisJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCX0KKwll bHNlCisJCWxvY2FsZSA9IE5VTEw7IC8qIENPTExQUk9WSURFUl9OT05FICovCisKKwluZXd2ZXJz aW9uID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihjb2xsRm9ybS0+Y29sbHByb3ZpZGVy LCBsb2NhbGUpOwogCiAJLyogY2Fubm90IGNoYW5nZSBmcm9tIE5VTEwgdG8gbm9uLU5VTEwgb3Ig dmljZSB2ZXJzYSAqLwogCWlmICgoIW9sZHZlcnNpb24gJiYgbmV3dmVyc2lvbikgfHwgKG9sZHZl cnNpb24gJiYgIW5ld3ZlcnNpb24pKQpAQCAtNDk0LDExICs1MzcsMTggQEAgcGdfY29sbGF0aW9u X2FjdHVhbF92ZXJzaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJcHJvdmlkZXIgPSAoKEZvcm1f cGdfZGF0YWJhc2UpIEdFVFNUUlVDVChkYnR1cCkpLT5kYXRsb2Nwcm92aWRlcjsKIAotCQlkYXR1 bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoREFUQUJBU0VPSUQsIGRidHVwLAotCQkJCQkJCQkJ ICAgcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSA/Ci0JCQkJCQkJCQkgICBBbnVtX3BnX2Rh dGFiYXNlX2RhdGljdWxvY2FsZSA6IEFudW1fcGdfZGF0YWJhc2VfZGF0Y29sbGF0ZSk7Ci0KLQkJ bG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJCWlmIChwcm92aWRlciA9PSBD T0xMUFJPVklERVJfSUNVKQorCQl7CisJCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwo REFUQUJBU0VPSUQsIGRidHVwLCBBbnVtX3BnX2RhdGFiYXNlX2RhdGljdWxvY2FsZSk7CisJCQls b2NhbGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwkJfQorCQllbHNlIGlmIChwcm92 aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKKwkJeworCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0 dHJOb3ROdWxsKERBVEFCQVNFT0lELCBkYnR1cCwgQW51bV9wZ19kYXRhYmFzZV9kYXRjb2xsYXRl KTsKKwkJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCQl9CisJCWVsc2UK KwkJCWxvY2FsZSA9IE5VTEw7IC8qIENPTExQUk9WSURFUl9OT05FICovCiAKIAkJUmVsZWFzZVN5 c0NhY2hlKGRidHVwKTsKIAl9CkBAIC01MTQsMTEgKzU2NCwxOSBAQCBwZ19jb2xsYXRpb25fYWN0 dWFsX3ZlcnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIAogCQlwcm92aWRlciA9ICgoRm9ybV9wZ19j b2xsYXRpb24pIEdFVFNUUlVDVChjb2xsdHApKS0+Y29sbHByb3ZpZGVyOwogCQlBc3NlcnQocHJv dmlkZXIgIT0gQ09MTFBST1ZJREVSX0RFRkFVTFQpOwotCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0 ck5vdE51bGwoQ09MTE9JRCwgY29sbHRwLAotCQkJCQkJCQkJICAgcHJvdmlkZXIgPT0gQ09MTFBS T1ZJREVSX0lDVSA/Ci0JCQkJCQkJCQkgICBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsaWN1bG9jYWxl IDogQW51bV9wZ19jb2xsYXRpb25fY29sbGNvbGxhdGUpOwogCi0JCWxvY2FsZSA9IFRleHREYXR1 bUdldENTdHJpbmcoZGF0dW0pOworCQlpZiAocHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkK KwkJeworCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKENPTExPSUQsIGNvbGx0cCwg QW51bV9wZ19jb2xsYXRpb25fY29sbGljdWxvY2FsZSk7CisJCQlsb2NhbGUgPSBUZXh0RGF0dW1H ZXRDU3RyaW5nKGRhdHVtKTsKKwkJfQorCQllbHNlIGlmIChwcm92aWRlciA9PSBDT0xMUFJPVklE RVJfTElCQykKKwkJeworCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKENPTExPSUQs IGNvbGx0cCwgQW51bV9wZ19jb2xsYXRpb25fY29sbGNvbGxhdGUpOworCQkJbG9jYWxlID0gVGV4 dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJCX0KKwkJZWxzZQorCQkJbG9jYWxlID0gTlVMTDsg LyogQ09MTFBST1ZJREVSX05PTkUgKi8KIAogCQlSZWxlYXNlU3lzQ2FjaGUoY29sbHRwKTsKIAl9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKaW5kZXggMmUyNDJlZWZmMi4uOWU3M2Y1NDgwMyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwpAQCAtOTA5LDcgKzkwOSw5IEBAIGNyZWF0ZWRi KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCXsKIAkJY2hh cgkgICAqbG9jcHJvdmlkZXJzdHIgPSBkZWZHZXRTdHJpbmcoZGxvY3Byb3ZpZGVyKTsKIAotCQlp ZiAocGdfc3RyY2FzZWNtcChsb2Nwcm92aWRlcnN0ciwgImljdSIpID09IDApCisJCWlmIChwZ19z dHJjYXNlY21wKGxvY3Byb3ZpZGVyc3RyLCAibm9uZSIpID09IDApCisJCQlkYmxvY3Byb3ZpZGVy ID0gQ09MTFBST1ZJREVSX05PTkU7CisJCWVsc2UgaWYgKHBnX3N0cmNhc2VjbXAobG9jcHJvdmlk ZXJzdHIsICJpY3UiKSA9PSAwKQogCQkJZGJsb2Nwcm92aWRlciA9IENPTExQUk9WSURFUl9JQ1U7 CiAJCWVsc2UgaWYgKHBnX3N0cmNhc2VjbXAobG9jcHJvdmlkZXJzdHIsICJsaWJjIikgPT0gMCkK IAkJCWRibG9jcHJvdmlkZXIgPSBDT0xMUFJPVklERVJfTElCQzsKQEAgLTExNzcsOSArMTE3OSwx NyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZWRiU3RtdCAqc3Rt dCkKIAkgKi8KIAlpZiAoc3JjX2NvbGx2ZXJzaW9uICYmICFkY29sbHZlcnNpb24pCiAJewotCQlj aGFyCSAgICphY3R1YWxfdmVyc2lvbnN0cjsKKwkJY2hhcgkqYWN0dWFsX3ZlcnNpb25zdHI7CisJ CWNoYXIJKmxvY2FsZTsKIAotCQlhY3R1YWxfdmVyc2lvbnN0ciA9IGdldF9jb2xsYXRpb25fYWN0 dWFsX3ZlcnNpb24oZGJsb2Nwcm92aWRlciwgZGJsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJf SUNVID8gZGJpY3Vsb2NhbGUgOiBkYmNvbGxhdGUpOworCQlpZiAoZGJsb2Nwcm92aWRlciA9PSBD T0xMUFJPVklERVJfSUNVKQorCQkJbG9jYWxlID0gZGJpY3Vsb2NhbGU7CisJCWVsc2UgaWYgKGRi bG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCisJCQlsb2NhbGUgPSBkYmNvbGxhdGU7 CisJCWVsc2UKKwkJCWxvY2FsZSA9IE5VTEw7IC8qIENPTExQUk9WSURFUl9OT05FICovCisKKwkJ YWN0dWFsX3ZlcnNpb25zdHIgPSBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKGRibG9jcHJv dmlkZXIsIGxvY2FsZSk7CiAJCWlmICghYWN0dWFsX3ZlcnNpb25zdHIpCiAJCQllcmVwb3J0KEVS Uk9SLAogCQkJCQkoZXJybXNnKCJ0ZW1wbGF0ZSBkYXRhYmFzZSBcIiVzXCIgaGFzIGEgY29sbGF0 aW9uIHZlcnNpb24sIGJ1dCBubyBhY3R1YWwgY29sbGF0aW9uIHZlcnNpb24gY291bGQgYmUgZGV0 ZXJtaW5lZCIsCkBAIC0xMjA3LDcgKzEyMTcsMTggQEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJICogY29sbGF0aW9uIHZlcnNpb24sIHdo aWNoIGlzIG5vcm1hbGx5IG9ubHkgdGhlIGNhc2UgZm9yIHRlbXBsYXRlMC4KIAkgKi8KIAlpZiAo ZGJjb2xsdmVyc2lvbiA9PSBOVUxMKQotCQlkYmNvbGx2ZXJzaW9uID0gZ2V0X2NvbGxhdGlvbl9h Y3R1YWxfdmVyc2lvbihkYmxvY3Byb3ZpZGVyLCBkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURF Ul9JQ1UgPyBkYmljdWxvY2FsZSA6IGRiY29sbGF0ZSk7CisJeworCQljaGFyICpsb2NhbGU7CisK KwkJaWYgKGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCWxvY2FsZSA9IGRi aWN1bG9jYWxlOworCQllbHNlIGlmIChkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJD KQorCQkJbG9jYWxlID0gZGJjb2xsYXRlOworCQllbHNlCisJCQlsb2NhbGUgPSBOVUxMOyAvKiBD T0xMUFJPVklERVJfTk9ORSAqLworCisJCWRiY29sbHZlcnNpb24gPSBnZXRfY29sbGF0aW9uX2Fj dHVhbF92ZXJzaW9uKGRibG9jcHJvdmlkZXIsIGxvY2FsZSk7CisJfQogCiAJLyogUmVzb2x2ZSBk ZWZhdWx0IHRhYmxlc3BhY2UgZm9yIG5ldyBkYXRhYmFzZSAqLwogCWlmIChkdGFibGVzcGFjZW5h bWUgJiYgZHRhYmxlc3BhY2VuYW1lLT5hcmcpCkBAIC0yNDAzLDYgKzI0MjQsNyBAQCBBbHRlckRh dGFiYXNlUmVmcmVzaENvbGwoQWx0ZXJEYXRhYmFzZVJlZnJlc2hDb2xsU3RtdCAqc3RtdCkKIAlP YmplY3RBZGRyZXNzIGFkZHJlc3M7CiAJRGF0dW0JCWRhdHVtOwogCWJvb2wJCWlzbnVsbDsKKwlj aGFyCSAgICpsb2NhbGU7CiAJY2hhcgkgICAqb2xkdmVyc2lvbjsKIAljaGFyCSAgICpuZXd2ZXJz aW9uOwogCkBAIC0yNDI5LDEwICsyNDUxLDI0IEBAIEFsdGVyRGF0YWJhc2VSZWZyZXNoQ29sbChB bHRlckRhdGFiYXNlUmVmcmVzaENvbGxTdG10ICpzdG10KQogCWRhdHVtID0gaGVhcF9nZXRhdHRy KHR1cGxlLCBBbnVtX3BnX2RhdGFiYXNlX2RhdGNvbGx2ZXJzaW9uLCBSZWxhdGlvbkdldERlc2Ny KHJlbCksICZpc251bGwpOwogCW9sZHZlcnNpb24gPSBpc251bGwgPyBOVUxMIDogVGV4dERhdHVt R2V0Q1N0cmluZyhkYXR1bSk7CiAKLQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXBsZSwgZGF0Rm9y bS0+ZGF0bG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSA/IEFudW1fcGdfZGF0YWJhc2Vf ZGF0aWN1bG9jYWxlIDogQW51bV9wZ19kYXRhYmFzZV9kYXRjb2xsYXRlLCBSZWxhdGlvbkdldERl c2NyKHJlbCksICZpc251bGwpOwotCWlmIChpc251bGwpCi0JCWVsb2coRVJST1IsICJ1bmV4cGVj dGVkIG51bGwgaW4gcGdfZGF0YWJhc2UiKTsKLQluZXd2ZXJzaW9uID0gZ2V0X2NvbGxhdGlvbl9h Y3R1YWxfdmVyc2lvbihkYXRGb3JtLT5kYXRsb2Nwcm92aWRlciwgVGV4dERhdHVtR2V0Q1N0cmlu ZyhkYXR1bSkpOworCWlmIChkYXRGb3JtLT5kYXRsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJf SUNVKQorCXsKKwkJZGF0dW0gPSBoZWFwX2dldGF0dHIodHVwbGUsIEFudW1fcGdfZGF0YWJhc2Vf ZGF0aWN1bG9jYWxlLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwpOworCQlpZiAoaXNu dWxsKQorCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbnVsbCBpbiBwZ19kYXRhYmFzZSIpOwor CQlsb2NhbGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwl9CisJZWxzZSBpZiAoZGF0 Rm9ybS0+ZGF0bG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCisJeworCQlkYXR1bSA9 IGhlYXBfZ2V0YXR0cih0dXBsZSwgQW51bV9wZ19kYXRhYmFzZV9kYXRjb2xsYXRlLCBSZWxhdGlv bkdldERlc2NyKHJlbCksICZpc251bGwpOworCQlpZiAoaXNudWxsKQorCQkJZWxvZyhFUlJPUiwg InVuZXhwZWN0ZWQgbnVsbCBpbiBwZ19kYXRhYmFzZSIpOworCQlsb2NhbGUgPSBUZXh0RGF0dW1H ZXRDU3RyaW5nKGRhdHVtKTsKKwl9CisJZWxzZQorCQlsb2NhbGUgPSBOVUxMOyAvKiBDT0xMUFJP VklERVJfTk9ORSAqLworCisJbmV3dmVyc2lvbiA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNp b24oZGF0Rm9ybS0+ZGF0bG9jcHJvdmlkZXIsIGxvY2FsZSk7CiAKIAkvKiBjYW5ub3QgY2hhbmdl IGZyb20gTlVMTCB0byBub24tTlVMTCBvciB2aWNlIHZlcnNhICovCiAJaWYgKCghb2xkdmVyc2lv biAmJiBuZXd2ZXJzaW9uKSB8fCAob2xkdmVyc2lvbiAmJiAhbmV3dmVyc2lvbikpCkBAIC0yNjE3 LDYgKzI2NTMsNyBAQCBwZ19kYXRhYmFzZV9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oUEdfRlVO Q1RJT05fQVJHUykKIAlIZWFwVHVwbGUJdHA7CiAJY2hhcgkJZGF0bG9jcHJvdmlkZXI7CiAJRGF0 dW0JCWRhdHVtOworCWNoYXIJICAgKmxvY2FsZTsKIAljaGFyCSAgICp2ZXJzaW9uOwogCiAJdHAg PSBTZWFyY2hTeXNDYWNoZTEoREFUQUJBU0VPSUQsIE9iamVjdElkR2V0RGF0dW0oZGJpZCkpOwpA QCAtMjYyNyw4ICsyNjY0LDIwIEBAIHBnX2RhdGFiYXNlX2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lv bihQR19GVU5DVElPTl9BUkdTKQogCiAJZGF0bG9jcHJvdmlkZXIgPSAoKEZvcm1fcGdfZGF0YWJh c2UpIEdFVFNUUlVDVCh0cCkpLT5kYXRsb2Nwcm92aWRlcjsKIAotCWRhdHVtID0gU3lzQ2FjaGVH ZXRBdHRyTm90TnVsbChEQVRBQkFTRU9JRCwgdHAsIGRhdGxvY3Byb3ZpZGVyID09IENPTExQUk9W SURFUl9JQ1UgPyBBbnVtX3BnX2RhdGFiYXNlX2RhdGljdWxvY2FsZSA6IEFudW1fcGdfZGF0YWJh c2VfZGF0Y29sbGF0ZSk7Ci0JdmVyc2lvbiA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24o ZGF0bG9jcHJvdmlkZXIsIFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlpZiAoZGF0bG9j cHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwl7CisJCWRhdHVtID0gU3lzQ2FjaGVHZXRB dHRyTm90TnVsbChEQVRBQkFTRU9JRCwgdHAsIEFudW1fcGdfZGF0YWJhc2VfZGF0aWN1bG9jYWxl KTsKKwkJbG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJfQorCWVsc2UgaWYg KGRhdGxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCXsKKwkJZGF0dW0gPSBTeXND YWNoZUdldEF0dHJOb3ROdWxsKERBVEFCQVNFT0lELCB0cCwgQW51bV9wZ19kYXRhYmFzZV9kYXRj b2xsYXRlKTsKKwkJbG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJfQorCWVs c2UKKwkJbG9jYWxlID0gTlVMTDsgLyogQ09MTFBST1ZJREVSX05PTkUgKi8KKworCXZlcnNpb24g PSBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKGRhdGxvY3Byb3ZpZGVyLCBsb2NhbGUpOwog CiAJUmVsZWFzZVN5c0NhY2hlKHRwKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX2xvY2FsZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCmluZGV4 IGVlYTFkMWFlMGYuLjk1ZWI1Y2Y0NjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ19sb2NhbGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMKQEAg LTEyMjgsNyArMTIyOCwxMiBAQCBsb29rdXBfY29sbGF0aW9uX2NhY2hlKE9pZCBjb2xsYXRpb24s IGJvb2wgc2V0X2ZsYWdzKQogCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IGNvbGxhdGlvbiAldSIsIGNvbGxhdGlvbik7CiAJCWNvbGxmb3JtID0gKEZvcm1fcGdfY29sbGF0 aW9uKSBHRVRTVFJVQ1QodHApOwogCi0JCWlmIChjb2xsZm9ybS0+Y29sbHByb3ZpZGVyID09IENP TExQUk9WSURFUl9MSUJDKQorCQlpZiAoY29sbGZvcm0tPmNvbGxwcm92aWRlciA9PSBDT0xMUFJP VklERVJfTk9ORSkKKwkJeworCQkJY2FjaGVfZW50cnktPmNvbGxhdGVfaXNfYyA9IHRydWU7CisJ CQljYWNoZV9lbnRyeS0+Y3R5cGVfaXNfYyA9IHRydWU7CisJCX0KKwkJZWxzZSBpZiAoY29sbGZv cm0tPmNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKIAkJewogCQkJRGF0dW0JCWRh dHVtOwogCQkJY29uc3QgY2hhciAqY29sbGNvbGxhdGU7CkBAIC0xMjgxLDYgKzEyODYsOSBAQCBs Y19jb2xsYXRlX2lzX2MoT2lkIGNvbGxhdGlvbikKIAkJc3RhdGljIGludAlyZXN1bHQgPSAtMTsK IAkJY2hhcgkgICAqbG9jYWxlcHRyOwogCisJCWlmIChkZWZhdWx0X2xvY2FsZS5wcm92aWRlciA9 PSBDT0xMUFJPVklERVJfTk9ORSkKKwkJCXJldHVybiB0cnVlOworCiAJCWlmIChkZWZhdWx0X2xv Y2FsZS5wcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCQkJcmV0dXJuIGZhbHNlOwogCkBA IC0xMzM0LDYgKzEzNDIsOSBAQCBsY19jdHlwZV9pc19jKE9pZCBjb2xsYXRpb24pCiAJCXN0YXRp YyBpbnQJcmVzdWx0ID0gLTE7CiAJCWNoYXIJICAgKmxvY2FsZXB0cjsKIAorCQlpZiAoZGVmYXVs dF9sb2NhbGUucHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX05PTkUpCisJCQlyZXR1cm4gdHJ1ZTsK KwogCQlpZiAoZGVmYXVsdF9sb2NhbGUucHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAkJ CXJldHVybiBmYWxzZTsKIApAQCAtMTQ4Nyw4ICsxNDk4LDEwIEBAIHBnX25ld2xvY2FsZV9mcm9t X2NvbGxhdGlvbihPaWQgY29sbGlkKQogCXsKIAkJaWYgKGRlZmF1bHRfbG9jYWxlLnByb3ZpZGVy ID09IENPTExQUk9WSURFUl9JQ1UpCiAJCQlyZXR1cm4gJmRlZmF1bHRfbG9jYWxlOwotCQllbHNl CisJCWVsc2UgaWYgKGRlZmF1bHRfbG9jYWxlLnByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJD KQogCQkJcmV0dXJuIChwZ19sb2NhbGVfdCkgMDsKKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgImNh bm5vdCBvcGVuIGNvbGxhdGlvbiB3aXRoIHByb3ZpZGVyIFwibm9uZVwiIik7CiAJfQogCiAJY2Fj aGVfZW50cnkgPSBsb29rdXBfY29sbGF0aW9uX2NhY2hlKGNvbGxpZCwgZmFsc2UpOwpAQCAtMTUx Myw3ICsxNTI2LDExIEBAIHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlvbihPaWQgY29sbGlkKQog CQlyZXN1bHQucHJvdmlkZXIgPSBjb2xsZm9ybS0+Y29sbHByb3ZpZGVyOwogCQlyZXN1bHQuZGV0 ZXJtaW5pc3RpYyA9IGNvbGxmb3JtLT5jb2xsaXNkZXRlcm1pbmlzdGljOwogCi0JCWlmIChjb2xs Zm9ybS0+Y29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCQlpZiAoY29sbGZvcm0t PmNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTk9ORSkKKwkJeworCQkJZWxvZyhFUlJPUiwg ImNhbm5vdCBvcGVuIGNvbGxhdGlvbiB3aXRoIHByb3ZpZGVyIFwibm9uZVwiIik7CisJCX0KKwkJ ZWxzZSBpZiAoY29sbGZvcm0tPmNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKIAkJ ewogI2lmZGVmIEhBVkVfTE9DQUxFX1QKIAkJCWNvbnN0IGNoYXIgKmNvbGxjb2xsYXRlOwpAQCAt MTU5OSw2ICsxNjE2LDcgQEAgcGdfbmV3bG9jYWxlX2Zyb21fY29sbGF0aW9uKE9pZCBjb2xsaWQp CiAKIAkJCWNvbGx2ZXJzaW9uc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CiAKKwkJ CUFzc2VydChjb2xsZm9ybS0+Y29sbHByb3ZpZGVyICE9IENPTExQUk9WSURFUl9OT05FKTsKIAkJ CWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChDT0xMT0lELCB0cCwgY29sbGZvcm0tPmNv bGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVID8gQW51bV9wZ19jb2xsYXRpb25fY29sbGlj dWxvY2FsZSA6IEFudW1fcGdfY29sbGF0aW9uX2NvbGxjb2xsYXRlKTsKIAogCQkJYWN0dWFsX3Zl cnNpb25zdHIgPSBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKGNvbGxmb3JtLT5jb2xscHJv dmlkZXIsCkBAIC0xNjUwLDYgKzE2NjgsOSBAQCBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9u KGNoYXIgY29sbHByb3ZpZGVyLCBjb25zdCBjaGFyICpjb2xsY29sbGF0ZSkKIHsKIAljaGFyCSAg ICpjb2xsdmVyc2lvbiA9IE5VTEw7CiAKKwlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURF Ul9OT05FKQorCQlyZXR1cm4gTlVMTDsKKwogI2lmZGVmIFVTRV9JQ1UKIAlpZiAoY29sbHByb3Zp ZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvaW5pdC9wb3N0aW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCmlu ZGV4IDUzNDIwZjQ5NzQuLjgwNTM2NDJmZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2luaXQvcG9zdGluaXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMK QEAgLTQ2MSwxMCArNDYxLDE4IEBAIENoZWNrTXlEYXRhYmFzZShjb25zdCBjaGFyICpuYW1lLCBi b29sIGFtX3N1cGVydXNlciwgYm9vbCBvdmVycmlkZV9hbGxvd19jb25uZWN0CiAJewogCQljaGFy CSAgICphY3R1YWxfdmVyc2lvbnN0cjsKIAkJY2hhcgkgICAqY29sbHZlcnNpb25zdHI7CisJCWNo YXIJICAgKmxvY2FsZTsKIAogCQljb2xsdmVyc2lvbnN0ciA9IFRleHREYXR1bUdldENTdHJpbmco ZGF0dW0pOwogCi0JCWFjdHVhbF92ZXJzaW9uc3RyID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVy c2lvbihkYmZvcm0tPmRhdGxvY3Byb3ZpZGVyLCBkYmZvcm0tPmRhdGxvY3Byb3ZpZGVyID09IENP TExQUk9WSURFUl9JQ1UgPyBpY3Vsb2NhbGUgOiBjb2xsYXRlKTsKKwkJaWYgKGRiZm9ybS0+ZGF0 bG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCWxvY2FsZSA9IGljdWxvY2FsZTsK KwkJZWxzZSBpZiAoZGJmb3JtLT5kYXRsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykK KwkJCWxvY2FsZSA9IGNvbGxhdGU7CisJCWVsc2UKKwkJCWxvY2FsZSA9IE5VTEw7IC8qIENPTExQ Uk9WSURFUl9OT05FICovCisKKwkJYWN0dWFsX3ZlcnNpb25zdHIgPSBnZXRfY29sbGF0aW9uX2Fj dHVhbF92ZXJzaW9uKGRiZm9ybS0+ZGF0bG9jcHJvdmlkZXIsIGxvY2FsZSk7CiAJCWlmICghYWN0 dWFsX3ZlcnNpb25zdHIpCiAJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJZWxvZyhXQVJO SU5HLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMgYi9zcmMvYmluL2luaXRk Yi9pbml0ZGIuYwppbmRleCAzMGI1NzY5MzJmLi40YTZjYWQzY2I5IDEwMDY0NAotLS0gYS9zcmMv YmluL2luaXRkYi9pbml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtMjQw OCw2ICsyNDA4LDIyIEBAIHNldGxvY2FsZXModm9pZCkKIAogCS8qIHNldCBlbXB0eSBsY18qIHZh bHVlcyB0byBsb2NhbGUgY29uZmlnIGlmIHNldCAqLwogCisJaWYgKGxvY2FsZV9wcm92aWRlciA9 PSBDT0xMUFJPVklERVJfTk9ORSkKKwl7CisJCWlmICghbGNfY3R5cGUpCisJCQlsY19jdHlwZSA9 ICJDIjsKKwkJaWYgKCFsY19jb2xsYXRlKQorCQkJbGNfY29sbGF0ZSA9ICJDIjsKKwkJaWYgKCFs Y19udW1lcmljKQorCQkJbGNfbnVtZXJpYyA9ICJDIjsKKwkJaWYgKCFsY190aW1lKQorCQkJbGNf dGltZSA9ICJDIjsKKwkJaWYgKCFsY19tb25ldGFyeSkKKwkJCWxjX21vbmV0YXJ5ID0gIkMiOwor CQlpZiAoIWxjX21lc3NhZ2VzKQorCQkJbGNfbWVzc2FnZXMgPSAiQyI7CisJfQorCiAJaWYgKGxv Y2FsZSkKIAl7CiAJCWlmICghbGNfY3R5cGUpCkBAIC0yNTAyLDcgKzI1MTgsNyBAQCB1c2FnZShj b25zdCBjaGFyICpwcm9nbmFtZSkKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl dCBkZWZhdWx0IGxvY2FsZSBpbiB0aGUgcmVzcGVjdGl2ZSBjYXRlZ29yeSBmb3JcbiIKIAkJCSAi ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBkYXRhYmFzZXMgKGRlZmF1bHQgdGFrZW4g ZnJvbSBlbnZpcm9ubWVudClcbiIpKTsKIAlwcmludGYoXygiICAgICAgLS1uby1sb2NhbGUgICAg ICAgICAgIGVxdWl2YWxlbnQgdG8gLS1sb2NhbGU9Q1xuIikpOwotCXByaW50ZihfKCIgICAgICAt LWxvY2FsZS1wcm92aWRlcj17bGliY3xpY3V9XG4iCisJcHJpbnRmKF8oIiAgICAgIC0tbG9jYWxl LXByb3ZpZGVyPXtub25lfGxpYmN8aWN1fVxuIgogCQkJICIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2V0IGRlZmF1bHQgbG9jYWxlIHByb3ZpZGVyIGZvciBuZXcgZGF0YWJhc2VzXG4iKSk7 CiAJcHJpbnRmKF8oIiAgICAgIC0tcHdmaWxlPUZJTEUgICAgICAgICByZWFkIHBhc3N3b3JkIGZv ciB0aGUgbmV3IHN1cGVydXNlciBmcm9tIGZpbGVcbiIpKTsKIAlwcmludGYoXygiICAtVCwgLS10 ZXh0LXNlYXJjaC1jb25maWc9Q0ZHXG4iCkBAIC0yNjUyLDcgKzI2NjgsMTUgQEAgc2V0dXBfbG9j YWxlX2VuY29kaW5nKHZvaWQpCiB7CiAJc2V0bG9jYWxlcygpOwogCi0JaWYgKGxvY2FsZV9wcm92 aWRlciA9PSBDT0xMUFJPVklERVJfTElCQyAmJgorCWlmIChsb2NhbGVfcHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX05PTkUgJiYKKwkJc3RyY21wKGxjX2N0eXBlLCAiQyIpID09IDAgJiYKKwkJc3Ry Y21wKGxjX2NvbGxhdGUsICJDIikgPT0gMCAmJgorCQlzdHJjbXAobGNfdGltZSwgIkMiKSA9PSAw ICYmCisJCXN0cmNtcChsY19udW1lcmljLCAiQyIpID09IDAgJiYKKwkJc3RyY21wKGxjX21vbmV0 YXJ5LCAiQyIpID09IDAgJiYKKwkJc3RyY21wKGxjX21lc3NhZ2VzLCAiQyIpID09IDApCisJCXBy aW50ZihfKCJUaGUgZGF0YWJhc2UgY2x1c3RlciB3aWxsIGJlIGluaXRpYWxpemVkIHdpdGggbm8g bG9jYWxlLlxuIikpOworCWVsc2UgaWYgKGxvY2FsZV9wcm92aWRlciA9PSBDT0xMUFJPVklERVJf TElCQyAmJgogCQlzdHJjbXAobGNfY3R5cGUsIGxjX2NvbGxhdGUpID09IDAgJiYKIAkJc3RyY21w KGxjX2N0eXBlLCBsY190aW1lKSA9PSAwICYmCiAJCXN0cmNtcChsY19jdHlwZSwgbGNfbnVtZXJp YykgPT0gMCAmJgpAQCAtMzMyNiw3ICszMzUwLDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCQkJCQkJCQkJCSAiLWMgZGVidWdfZGlzY2FyZF9jYWNoZXM9MSIpOwogCQkJCWJyZWFr OwogCQkJY2FzZSAxNToKLQkJCQlpZiAoc3RyY21wKG9wdGFyZywgImljdSIpID09IDApCisJCQkJ aWYgKHN0cmNtcChvcHRhcmcsICJub25lIikgPT0gMCkKKwkJCQkJbG9jYWxlX3Byb3ZpZGVyID0g Q09MTFBST1ZJREVSX05PTkU7CisJCQkJZWxzZSBpZiAoc3RyY21wKG9wdGFyZywgImljdSIpID09 IDApCiAJCQkJCWxvY2FsZV9wcm92aWRlciA9IENPTExQUk9WSURFUl9JQ1U7CiAJCQkJZWxzZSBp ZiAoc3RyY21wKG9wdGFyZywgImxpYmMiKSA9PSAwKQogCQkJCQlsb2NhbGVfcHJvdmlkZXIgPSBD T0xMUFJPVklERVJfTElCQzsKQEAgLTMzNjUsNiArMzM5MSw3IEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKIAkJZXhpdCgxKTsKIAl9CiAKKwogCWlmIChpY3VfbG9jYWxlICYmIGxvY2Fs ZV9wcm92aWRlciAhPSBDT0xMUFJPVklERVJfSUNVKQogCQlwZ19mYXRhbCgiJXMgY2Fubm90IGJl IHNwZWNpZmllZCB1bmxlc3MgbG9jYWxlIHByb3ZpZGVyIFwiJXNcIiBpcyBjaG9zZW4iLAogCQkJ CSAiLS1pY3UtbG9jYWxlIiwgImljdSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvdC8w MDFfaW5pdGRiLnBsIGIvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsCmluZGV4IDE3YTQ0 NGQ4MGMuLmZlNmQyMjRlNWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRk Yi5wbAorKysgYi9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKQEAgLTE1NCw2ICsxNTQs MzUgQEAgZWxzZQogCQknbG9jYWxlIHByb3ZpZGVyIElDVSBmYWlscyBzaW5jZSBubyBJQ1Ugc3Vw cG9ydCcpOwogfQogCitjb21tYW5kX29rKAorCVsgJ2luaXRkYicsICctLW5vLXN5bmMnLCAnLS1s b2NhbGUtcHJvdmlkZXI9bm9uZScsICIkdGVtcGRpci9kYXRhNiIgXSwKKwknbG9jYWxlIHByb3Zp ZGVyIG5vbmUnKTsKKworY29tbWFuZF9vaygKKwlbICdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0t bG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAnLS1sb2NhbGU9QycsCisJICAiJHRlbXBkaXIvZGF0YTci IF0sCisJJ2xvY2FsZSBwcm92aWRlciBub25lIHdpdGggLS1sb2NhbGUnKTsKKworY29tbWFuZF9v aygKKwlbICdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAn LS1sYy1jb2xsYXRlPUMnLAorCSAgIiR0ZW1wZGlyL2RhdGE4IiBdLAorCSdsb2NhbGUgcHJvdmlk ZXIgbm9uZSB3aXRoIC0tbGMtY29sbGF0ZScpOworCitjb21tYW5kX29rKAorCVsgJ2luaXRkYics ICctLW5vLXN5bmMnLCAnLS1sb2NhbGUtcHJvdmlkZXI9bm9uZScsICctLWxjLWN0eXBlPUMnLAor CSAgIiR0ZW1wZGlyL2RhdGE5IiBdLAorCSdsb2NhbGUgcHJvdmlkZXIgbm9uZSB3aXRoIC0tbGMt Y3R5cGUnKTsKKworY29tbWFuZF9mYWlscygKKwlbICdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0t bG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAnLS1pY3UtbG9jYWxlPWVuJywKKwkgICIkdGVtcGRpci9k YXRhWCIgXSwKKwknZmFpbHMgZm9yIGxvY2FsZSBwcm92aWRlciBub25lIHdpdGggSUNVIGxvY2Fs ZScpOworCitjb21tYW5kX2ZhaWxzKAorCVsgJ2luaXRkYicsICctLW5vLXN5bmMnLCAnLS1sb2Nh bGUtcHJvdmlkZXI9bm9uZScsICctLWljdS1ydWxlcz0iIicsCisJICAiJHRlbXBkaXIvZGF0YVgi IF0sCisJJ2ZhaWxzIGZvciBsb2NhbGUgcHJvdmlkZXIgbm9uZSB3aXRoIElDVSBydWxlcycpOwor CiBjb21tYW5kX2ZhaWxzKAogCVsgJ2luaXRkYicsICctLW5vLXN5bmMnLCAnLS1sb2NhbGUtcHJv dmlkZXI9eHl6JywgIiR0ZW1wZGlyL2RhdGFYIiBdLAogCSdmYWlscyBmb3IgaW52YWxpZCBsb2Nh bGUgcHJvdmlkZXInKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGY5Y2JlYjY1YWIuLmRkYzhhNWY3MWYgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYwpAQCAtMzA3MCw3ICszMDcwLDkgQEAgZHVtcERhdGFiYXNlKEFyY2hpdmUgKmZv dXQpCiAJfQogCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoY3JlYVFyeSwgIiBMT0NBTEVfUFJPVklE RVIgPSAiKTsKLQlpZiAoZGF0bG9jcHJvdmlkZXJbMF0gPT0gJ2MnKQorCWlmIChkYXRsb2Nwcm92 aWRlclswXSA9PSAnbicpCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKGNyZWFRcnksICJub25lIik7 CisJZWxzZSBpZiAoZGF0bG9jcHJvdmlkZXJbMF0gPT0gJ2MnKQogCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cihjcmVhUXJ5LCAibGliYyIpOwogCWVsc2UgaWYgKGRhdGxvY3Byb3ZpZGVyWzBdID09ICdp JykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoY3JlYVFyeSwgImljdSIpOwpAQCAtMTM0MjksNyAr MTM0MzEsOSBAQCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbGxJbmZvICpj b2xsaW5mbykKIAkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsaW5mbykpOwogCiAJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocSwgInByb3ZpZGVyID0gIik7Ci0JaWYgKGNvbGxwcm92aWRlclsw XSA9PSAnYycpCisJaWYgKGNvbGxwcm92aWRlclswXSA9PSAnbicpCisJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHEsICJub25lIik7CisJZWxzZSBpZiAoY29sbHByb3ZpZGVyWzBdID09ICdjJykKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgImxpYmMiKTsKIAllbHNlIGlmIChjb2xscHJvdmlkZXJb MF0gPT0gJ2knKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiaWN1Iik7CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDJfcGdfdXBncmFkZS5wbCBiL3NyYy9iaW4vcGdfdXBn cmFkZS90LzAwMl9wZ191cGdyYWRlLnBsCmluZGV4IDRhNzg5NWE3NTYuLjZkNThmNjEwM2UgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwMl9wZ191cGdyYWRlLnBsCisrKyBiL3Ny Yy9iaW4vcGdfdXBncmFkZS90LzAwMl9wZ191cGdyYWRlLnBsCkBAIC0xMTQsMTIgKzExNCwyMCBA QCBteSAkb3JpZ2luYWxfbG9jYWxlID0gIkMiOwogbXkgJG9yaWdpbmFsX2ljdWxvY2FsZSA9ICIi OwogbXkgJHByb3ZpZGVyX2ZpZWxkID0gIidjJyBBUyBkYXRsb2Nwcm92aWRlciI7CiBteSAkaWN1 bG9jYWxlX2ZpZWxkID0gIk5VTEwgQVMgZGF0aWN1bG9jYWxlIjsKLWlmICgkb2xkbm9kZS0+cGdf dmVyc2lvbiA+PSAxNSAmJiAkRU5We3dpdGhfaWN1fSBlcSAneWVzJykKK2lmICgkb2xkbm9kZS0+ cGdfdmVyc2lvbiA+PSAxNSkKIHsKIAkkcHJvdmlkZXJfZmllbGQgPSAiZGF0bG9jcHJvdmlkZXIi OwogCSRpY3Vsb2NhbGVfZmllbGQgPSAiZGF0aWN1bG9jYWxlIjsKLQkkb3JpZ2luYWxfcHJvdmlk ZXIgPSAiaSI7Ci0JJG9yaWdpbmFsX2ljdWxvY2FsZSA9ICJmci1DQSI7CisKKwlpZiAoJEVOVnt3 aXRoX2ljdX0gZXEgJ3llcycpCisJeworCQkkb3JpZ2luYWxfcHJvdmlkZXIgPSAiaSI7CisJCSRv cmlnaW5hbF9pY3Vsb2NhbGUgPSAiZnItQ0EiOworCX0KKwllbHNlCisJeworCQkkb3JpZ2luYWxf cHJvdmlkZXIgPSAibiI7CisJfQogfQogCiBteSBAaW5pdGRiX3BhcmFtcyA9IEBjdXN0b21fb3B0 czsKQEAgLTEzMSw2ICsxMzksMTAgQEAgaWYgKCRvcmlnaW5hbF9wcm92aWRlciBlcSAiaSIpCiAJ cHVzaCBAaW5pdGRiX3BhcmFtcywgKCctLWxvY2FsZS1wcm92aWRlcicsICdpY3UnKTsKIAlwdXNo IEBpbml0ZGJfcGFyYW1zLCAoJy0taWN1LWxvY2FsZScsICdmci1DQScpOwogfQorZWxzaWYgKCRv cmlnaW5hbF9wcm92aWRlciBlcSAibiIpCit7CisJcHVzaCBAaW5pdGRiX3BhcmFtcywgKCctLWxv Y2FsZS1wcm92aWRlcicsICdub25lJyk7Cit9CiAKICRub2RlX3BhcmFtc3tleHRyYX0gPSBcQGlu aXRkYl9wYXJhbXM7CiAkb2xkbm9kZS0+aW5pdCglbm9kZV9wYXJhbXMpOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBh YjQyNzllZDU4Li5jODQyYTYyYWU5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtOTMyLDcgKzkzMiw3IEBAIGxpc3RB bGxEYnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRf bm9vcCgiRW5jb2RpbmciKSk7CiAJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQogCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJICAiICBDQVNFIGQuZGF0bG9jcHJvdmlkZXIgV0hF TiAnYycgVEhFTiAnbGliYycgV0hFTiAnaScgVEhFTiAnaWN1JyBFTkQgQVMgXCIlc1wiLFxuIiwK KwkJCQkJCSAgIiAgQ0FTRSBkLmRhdGxvY3Byb3ZpZGVyIFdIRU4gJ24nIFRIRU4gJ25vbmUnIFdI RU4gJ2MnIFRIRU4gJ2xpYmMnIFdIRU4gJ2knIFRIRU4gJ2ljdScgRU5EIEFTIFwiJXNcIixcbiIs CiAJCQkJCQkgIGdldHRleHRfbm9vcCgiTG9jYWxlIFByb3ZpZGVyIikpOwogCWVsc2UKIAkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVk Yi5jIGIvc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMKaW5kZXggYjQyMDVjNGZhNS4uNzkzNjdk OTMzYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMKKysrIGIvc3JjL2Jp bi9zY3JpcHRzL2NyZWF0ZWRiLmMKQEAgLTI5OSw3ICsyOTksNyBAQCBoZWxwKGNvbnN0IGNoYXIg KnByb2duYW1lKQogCXByaW50ZihfKCIgICAgICAtLWxjLWN0eXBlPUxPQ0FMRSAgICAgICAgTENf Q1RZUEUgc2V0dGluZyBmb3IgdGhlIGRhdGFiYXNlXG4iKSk7CiAJcHJpbnRmKF8oIiAgICAgIC0t aWN1LWxvY2FsZT1MT0NBTEUgICAgICBJQ1UgbG9jYWxlIHNldHRpbmcgZm9yIHRoZSBkYXRhYmFz ZVxuIikpOwogCXByaW50ZihfKCIgICAgICAtLWljdS1ydWxlcz1SVUxFUyAgICAgICAgSUNVIHJ1 bGVzIHNldHRpbmcgZm9yIHRoZSBkYXRhYmFzZVxuIikpOwotCXByaW50ZihfKCIgICAgICAtLWxv Y2FsZS1wcm92aWRlcj17bGliY3xpY3V9XG4iCisJcHJpbnRmKF8oIiAgICAgIC0tbG9jYWxlLXBy b3ZpZGVyPXtub25lfGxpYmN8aWN1fVxuIgogCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbG9jYWxlIHByb3ZpZGVyIGZvciB0aGUgZGF0YWJhc2UncyBkZWZhdWx0IGNvbGxhdGlv blxuIikpOwogCXByaW50ZihfKCIgIC1PLCAtLW93bmVyPU9XTkVSICAgICAgICAgICAgZGF0YWJh c2UgdXNlciB0byBvd24gdGhlIG5ldyBkYXRhYmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1TLCAt LXN0cmF0ZWd5PVNUUkFURUdZICAgICAgZGF0YWJhc2UgY3JlYXRpb24gc3RyYXRlZ3kgd2FsX2xv ZyBvciBmaWxlX2NvcHlcbiIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9j cmVhdGVkYi5wbCBiL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbAppbmRleCBhZjNi MTQ5MmUzLi41YWE2NThiNjcxIDEwMDY0NAotLS0gYS9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3Jl YXRlZGIucGwKKysrIGIvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCkBAIC04Myw2 ICs4MywzNSBAQCBlbHNlCiAJCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBJQ1UgZmFpbHMgc2luY2Ug bm8gSUNVIHN1cHBvcnQnKTsKIH0KIAorJG5vZGUtPmNvbW1hbmRfb2soCisJWyAnY3JlYXRlZGIn LCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAndGVzdG5vbmUx JyBdLAorCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBwcm92aWRlciAibm9uZSInKTsKKworJG5vZGUt PmNvbW1hbmRfb2soCisJWyAnY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9jYWxl LXByb3ZpZGVyPW5vbmUnLCAnLS1sb2NhbGU9QycsCisJICAndGVzdG5vbmUyJyBdLAorCSdjcmVh dGUgZGF0YWJhc2Ugd2l0aCBwcm92aWRlciAibm9uZSIgYW5kIGxvY2FsZSAiQyInKTsKKworJG5v ZGUtPmNvbW1hbmRfb2soCisJWyAnY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9j YWxlLXByb3ZpZGVyPW5vbmUnLCAnLS1sYy1jb2xsYXRlPUMnLAorCSAgJ3Rlc3Rub25lMycgXSwK KwknY3JlYXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgIm5vbmUiIGFuZCBMQ19DT0xMQVRFPUMn KTsKKworJG5vZGUtPmNvbW1hbmRfb2soCisJWyAnY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUw JywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAnLS1sYy1jdHlwZT1DJywKKwkgICd0ZXN0bm9u ZTQnIF0sCisJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJub25lIiBhbmQgTENfQ1RZ UEU9QycpOworCiskbm9kZS0+Y29tbWFuZF9mYWlscygKKwlbICdjcmVhdGVkYicsICctVCcsICd0 ZW1wbGF0ZTAnLCAnLS1sb2NhbGUtcHJvdmlkZXI9bm9uZScsICctLWljdS1sb2NhbGU9ZW4nLAor CSAgJ3Rlc3Rub25lNScgXSwKKwknY3JlYXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgIm5vbmUi IGFuZCBJQ1VfTE9DQUxFPSJlbiInKTsKKworJG5vZGUtPmNvbW1hbmRfZmFpbHMoCisJWyAnY3Jl YXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAnLS1p Y3UtcnVsZXM9IiInLAorCSAgJ3Rlc3Rub25lNicgXSwKKwknY3JlYXRlIGRhdGFiYXNlIHdpdGgg cHJvdmlkZXIgIm5vbmUiIGFuZCBJQ1VfUlVMRVM9IiInKTsKKwogJG5vZGUtPmNvbW1hbmRfZmFp bHMoWyAnY3JlYXRlZGInLCAnZm9vYmFyMScgXSwKIAknZmFpbHMgaWYgZGF0YWJhc2UgYWxyZWFk eSBleGlzdHMnKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xsYXRp b24uZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xsYXRpb24uZGF0CmluZGV4IGI2YTY5 ZDFkNDIuLjQwZDYyNDE2ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29s bGF0aW9uLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGxhdGlvbi5kYXQKQEAg LTI0LDggKzI0LDcgQEAKICAgY29sbG5hbWUgPT4gJ1BPU0lYJywgY29sbHByb3ZpZGVyID0+ICdj JywgY29sbGVuY29kaW5nID0+ICctMScsCiAgIGNvbGxjb2xsYXRlID0+ICdQT1NJWCcsIGNvbGxj dHlwZSA9PiAnUE9TSVgnIH0sCiB7IG9pZCA9PiAnOTYyJywgZGVzY3IgPT4gJ3NvcnRzIGJ5IFVu aWNvZGUgY29kZSBwb2ludCcsCi0gIGNvbGxuYW1lID0+ICd1Y3NfYmFzaWMnLCBjb2xscHJvdmlk ZXIgPT4gJ2MnLCBjb2xsZW5jb2RpbmcgPT4gJzYnLAotICBjb2xsY29sbGF0ZSA9PiAnQycsIGNv bGxjdHlwZSA9PiAnQycgfSwKKyAgY29sbG5hbWUgPT4gJ3Vjc19iYXNpYycsIGNvbGxwcm92aWRl ciA9PiAnbicsIGNvbGxlbmNvZGluZyA9PiAnNicgfSwKIHsgb2lkID0+ICc5NjMnLAogICBkZXNj ciA9PiAnc29ydHMgdXNpbmcgdGhlIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSB3aXRoIGRl ZmF1bHQgc2V0dGluZ3MnLAogICBjb2xsbmFtZSA9PiAndW5pY29kZScsIGNvbGxwcm92aWRlciA9 PiAnaScsIGNvbGxlbmNvZGluZyA9PiAnLTEnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb2xsYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmgK aW5kZXggYmZhMzU2ODQ1MS4uMjliZTNmOGQ5NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb2xsYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGxhdGlv bi5oCkBAIC02NCw2ICs2NCw3IEBAIERFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfY29sbGF0 aW9uX29pZF9pbmRleCwgMzA4NSwgQ29sbGF0aW9uT2lkSW5kZXhJZCwgb24KIAogI2lmZGVmIEVY UE9TRV9UT19DTElFTlRfQ09ERQogCisjZGVmaW5lIENPTExQUk9WSURFUl9OT05FCQknbicKICNk ZWZpbmUgQ09MTFBST1ZJREVSX0RFRkFVTFQJJ2QnCiAjZGVmaW5lIENPTExQUk9WSURFUl9JQ1UJ CSdpJwogI2RlZmluZSBDT0xMUFJPVklERVJfTElCQwkJJ2MnCkBAIC03Myw2ICs3NCw4IEBAIGNv bGxwcm92aWRlcl9uYW1lKGNoYXIgYykKIHsKIAlzd2l0Y2ggKGMpCiAJeworCQljYXNlIENPTExQ Uk9WSURFUl9OT05FOgorCQkJcmV0dXJuICJub25lIjsKIAkJY2FzZSBDT0xMUFJPVklERVJfSUNV OgogCQkJcmV0dXJuICJpY3UiOwogCQljYXNlIENPTExQUk9WSURFUl9MSUJDOgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sbGF0ZS5vdXQKaW5kZXggMDY0OTU2NDQ4NS4uYjc2MDNjOWY2YyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUub3V0CkBAIC02NTAsNiArNjUwLDEzIEBAIEVY UExBSU4gKENPU1RTIE9GRikKICgzIHJvd3MpCiAKIC0tIENSRUFURS9EUk9QIENPTExBVElPTgor Q1JFQVRFIENPTExBVElPTiBub25lICggUFJPVklERVIgPSBub25lICk7CitDUkVBVEUgQ09MTEFU SU9OIG5vbmUyICggUFJPVklERVIgPSBub25lLCBMT0NBTEU9IlBPU0lYIiApOyAtLSBmYWlscwor RVJST1I6ICBjb2xsYXRpb24gcHJvdmlkZXIgIm5vbmUiIGRvZXMgbm90IHN1cHBvcnQgTE9DQUxF LCBMQ19DT0xMQVRFLCBvciBMQ19DVFlQRQorQ1JFQVRFIENPTExBVElPTiBub25lMiAoIFBST1ZJ REVSID0gbm9uZSwgTENfQ1RZUEU9IlBPU0lYIiApOyAtLSBmYWlscworRVJST1I6ICBjb2xsYXRp b24gcHJvdmlkZXIgIm5vbmUiIGRvZXMgbm90IHN1cHBvcnQgTE9DQUxFLCBMQ19DT0xMQVRFLCBv ciBMQ19DVFlQRQorQ1JFQVRFIENPTExBVElPTiBub25lMiAoIFBST1ZJREVSID0gbm9uZSwgTENf Q09MTEFURT0iUE9TSVgiICk7IC0tIGZhaWxzCitFUlJPUjogIGNvbGxhdGlvbiBwcm92aWRlciAi bm9uZSIgZG9lcyBub3Qgc3VwcG9ydCBMT0NBTEUsIExDX0NPTExBVEUsIG9yIExDX0NUWVBFCiBD UkVBVEUgQ09MTEFUSU9OIG15Y29sbDEgRlJPTSAiQyI7CiBDUkVBVEUgQ09MTEFUSU9OIG15Y29s bDIgKCBMQ19DT0xMQVRFID0gIlBPU0lYIiwgTENfQ1RZUEUgPSAiUE9TSVgiICk7CiBDUkVBVEUg Q09MTEFUSU9OIG15Y29sbDMgRlJPTSAiZGVmYXVsdCI7ICAtLSBpbnRlbnRpb25hbGx5IHVuc3Vw cG9ydGVkCkBAIC03NTQsNyArNzYxLDcgQEAgREVUQUlMOiAgRlJPTSBjYW5ub3QgYmUgc3BlY2lm aWVkIHRvZ2V0aGVyIHdpdGggYW55IG90aGVyIG9wdGlvbnMuCiAtLSBtdXN0IGdldCByaWQgb2Yg dGhlbS4KIC0tCiBEUk9QIFNDSEVNQSBjb2xsYXRlX3Rlc3RzIENBU0NBREU7Ci1OT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIDE5IG90aGVyIG9iamVjdHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gMjAgb3RoZXIgb2JqZWN0cwogREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjb2xs YXRlX3Rlc3QxCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGNvbGxhdGVfdGVzdF9saWtlCiBkcm9w IGNhc2NhZGVzIHRvIHRhYmxlIGNvbGxhdGVfdGVzdDIKQEAgLTc3MSw2ICs3NzgsNyBAQCBkcm9w IGNhc2NhZGVzIHRvIGZ1bmN0aW9uIGR1cChhbnllbGVtZW50KQogZHJvcCBjYXNjYWRlcyB0byB0 YWJsZSBjb2xsYXRlX3Rlc3QyMAogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjb2xsYXRlX3Rlc3Qy MQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjb2xsYXRlX3Rlc3QyMgorZHJvcCBjYXNjYWRlcyB0 byBjb2xsYXRpb24gIm5vbmUiCiBkcm9wIGNhc2NhZGVzIHRvIGNvbGxhdGlvbiBteWNvbGwyCiBk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIGNvbGxhdGVfdGVzdDIzCiBkcm9wIGNhc2NhZGVzIHRvIHZp ZXcgY29sbGF0ZV9vbl9pbnQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxh dGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5zcWwKaW5kZXggYzNkNDBmYzE5 NS4uZTJkY2ViOGRmZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5zcWwKQEAgLTI0NCw2ICsyNDQs MTIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKQogCiAtLSBDUkVBVEUvRFJPUCBDT0xMQVRJT04KIAor Q1JFQVRFIENPTExBVElPTiBub25lICggUFJPVklERVIgPSBub25lICk7CisKK0NSRUFURSBDT0xM QVRJT04gbm9uZTIgKCBQUk9WSURFUiA9IG5vbmUsIExPQ0FMRT0iUE9TSVgiICk7IC0tIGZhaWxz CitDUkVBVEUgQ09MTEFUSU9OIG5vbmUyICggUFJPVklERVIgPSBub25lLCBMQ19DVFlQRT0iUE9T SVgiICk7IC0tIGZhaWxzCitDUkVBVEUgQ09MTEFUSU9OIG5vbmUyICggUFJPVklERVIgPSBub25l LCBMQ19DT0xMQVRFPSJQT1NJWCIgKTsgLS0gZmFpbHMKKwogQ1JFQVRFIENPTExBVElPTiBteWNv bGwxIEZST00gIkMiOwogQ1JFQVRFIENPTExBVElPTiBteWNvbGwyICggTENfQ09MTEFURSA9ICJQ T1NJWCIsIExDX0NUWVBFID0gIlBPU0lYIiApOwogQ1JFQVRFIENPTExBVElPTiBteWNvbGwzIEZS T00gImRlZmF1bHQiOyAgLS0gaW50ZW50aW9uYWxseSB1bnN1cHBvcnRlZAotLSAKMi4zNC4xCgo= --=-4HiYp7zcmkBoGIgoh6K1 Content-Disposition: attachment; filename*0=v6-0002-ICU-for-locale-C-automatically-use-none-provider-.pat; filename*1=ch Content-Type: text/x-patch; name="v6-0002-ICU-for-locale-C-automatically-use-none-provider-.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkYzcyMDAxNTNhOWFjNjVjMjUxOGIzMmI3ODlkMWE5ZGM0NDU0ODUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDggTWF5IDIwMjMgMTM6NDg6MDEgLTA3MDAKU3ViamVjdDogW1BBVENIIHY2IDIvNV0gSUNV OiBmb3IgbG9jYWxlICJDIiwgYXV0b21hdGljYWxseSB1c2UgIm5vbmUiIHByb3ZpZGVyCiBpbnN0 ZWFkLgoKUG9zdGdyZXMgZXhwZWN0cyBsb2NhbGUgQyB0byBiZSBvcHRpbWl6YWJsZSB0byBzaW1w bGUgbG9jYWxlLXVuYXdhcmUKYnl0ZSBvcGVyYXRpb25zOyB3aGlsZSBJQ1UgZG9lcyBub3QgcmVj b2duaXplIHRoZSBsb2NhbGUgIkMiIGF0IGFsbCwKYW5kIGZhbGxzIGJhY2sgdG8gdGhlIHJvb3Qg bG9jYWxlLgoKSWYgdGhlIHVzZXIgc3BlY2lmaWVzIGxvY2FsZSAiQyIgd2hlbiBjcmVhdGluZyBh IG5ldyBjb2xsYXRpb24gb3IgYQpuZXcgZGF0YWJhc2Ugd2l0aCB0aGUgSUNVIHByb3ZpZGVyLCBh dXRvbWF0aWNhbGx5IHN3aXRjaCBpdCB0byB0aGUKIm5vbmUiIHByb3ZpZGVyLgoKSWYgcHJvdmlk ZXIgaXMgbGliYywgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkLgotLS0KIGRvYy9zcmMvc2dtbC9jaGFy c2V0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfY29sbGF0aW9uLnNnbWwgICAgICAgIHwgIDYgKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9kYXRhYmFzZS5zZ21sICAgICAgICAgfCAgNSArKysKIGRvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlZGIuc2dtbCAgICAgICAgICAgICAgICB8ICA1ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9pbml0 ZGIuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDUgKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9j b2xsYXRpb25jbWRzLmMgICAgICAgICAgfCAxNyArKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGJjb21tYW5kcy5jICAgICAgICAgICAgIHwgMjEgKysrKysrKysrKwogc3JjL2Jpbi9pbml0 ZGIvaW5pdGRiLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKysKIHNyYy9iaW4vaW5p dGRiL3QvMDAxX2luaXRkYi5wbCAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysr KysKIHNyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jICAgICAgICAgICAgICAgICAgICB8IDExICsr KysrKwogc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsICAgICAgICAgICAgIHwgMTIg KysrKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAx NCArKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCAgICAg fCAgNiArKysKIDEzIGZpbGVzIGNoYW5nZWQsIDE1NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2hhcnNldC5zZ21sCmluZGV4IDdhNzkxYTJiN2MuLjY4YmFkNjQ2ZTkgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dt bApAQCAtNDA1LDYgKzQwNSwxMiBAQCBpbml0ZGIgLS1sb2NhbGUtcHJvdmlkZXI9aWN1IC0taWN1 LWxvY2FsZT1lbgogICAgICBjaGFuZ2UgaW4gcmVzdWx0cy4gPGxpdGVyYWw+TENfQ09MTEFURTwv bGl0ZXJhbD4gYW5kCiAgICAgIDxsaXRlcmFsPkxDX0NUWVBFPC9saXRlcmFsPiBjYW4gYmUgc2V0 IGluZGVwZW5kZW50bHkgb2YgdGhlIElDVSBsb2NhbGUuCiAgICAgPC9wYXJhPgorICAgIDxwYXJh PgorICAgICBUaGUgSUNVIHByb3ZpZGVyIGRvZXMgbm90IGFjY2VwdCB0aGUgPGxpdGVyYWw+Qzwv bGl0ZXJhbD4KKyAgICAgbG9jYWxlLiBDb21tYW5kcyB0aGF0IGNyZWF0ZSBjb2xsYXRpb25zIG9y IGRhdGFiYXNlIHdpdGggdGhlCisgICAgIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD4gcHJvdmlkZXIg YW5kIElDVSBsb2NhbGUgPGxpdGVyYWw+QzwvbGl0ZXJhbD4gdXNlCisgICAgIHRoZSBwcm92aWRl ciA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiBpbnN0ZWFkLgorICAgIDwvcGFyYT4KICAgICA8bm90 ZT4KICAgICAgPHBhcmE+CiAgICAgICBGb3IgdGhlIElDVSBwcm92aWRlciwgcmVzdWx0cyBtYXkg ZGVwZW5kIG9uIHRoZSB2ZXJzaW9uIG9mIHRoZSBJQ1UKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29s bGF0aW9uLnNnbWwKaW5kZXggNTQ4OWFlNzQxMy4uMWFjNDE4MzFkOCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfY29sbGF0aW9uLnNnbWwKQEAgLTEyNiw2ICsxMjYsMTIgQEAgQ1JFQVRFIENPTExB VElPTiBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IEZS T00gPHJlcGxhY2UKICAgICAgICA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPiBpcyB0aGUgZGVmYXVs dC4gIFNlZSA8eHJlZgogICAgICAgIGxpbmtlbmQ9ImxvY2FsZS1wcm92aWRlcnMiLz4gZm9yIGRl dGFpbHMuCiAgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0aGUgcHJvdmlk ZXIgaXMgPGxpdGVyYWw+aWN1PC9saXRlcmFsPiBhbmQgdGhlIGxvY2FsZSBpcworICAgICAgIDxs aXRlcmFsPkM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlBPU0lYPC9saXRlcmFsPiwgdGhlIHByb3Zp ZGVyIGlzCisgICAgICAgYXV0b21hdGljYWxseSBzZXQgdG8gPGxpdGVyYWw+bm9uZTwvbGl0ZXJh bD47IGFzIHRoZSBJQ1UgcHJvdmlkZXIKKyAgICAgICBkb2Vzbid0IHN1cHBvcnQgYW4gSUNVIGxv Y2FsZSBvZiA8bGl0ZXJhbD5DPC9saXRlcmFsPi4KKyAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0 aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfZGF0YWJhc2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNl LnNnbWwKaW5kZXggNjBiOWRhMDk1Mi4uYzczMGQwMmUxNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9kYXRhYmFzZS5zZ21sCkBAIC0xOTAsNiArMTkwLDExIEBAIENSRUFURSBEQVRBQkFTRSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgICAgPHBh cmE+CiAgICAgICAgIFNwZWNpZmllcyB0aGUgSUNVIGxvY2FsZSBJRCBpZiB0aGUgSUNVIGxvY2Fs ZSBwcm92aWRlciBpcyB1c2VkLgogICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAg ICAgSWYgc3BlY2lmaWVkIGFzIDxsaXRlcmFsPkM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlBPU0lY PC9saXRlcmFsPiwgdGhlCisgICAgICAgIHByb3ZpZGVyIGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRv IDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LCBhcyB0aGUgSUNVCisgICAgICAgIHByb3ZpZGVyIGRv ZXNuJ3Qgc3VwcG9ydCBhbiBJQ1UgbG9jYWxlIG9mIDxsaXRlcmFsPkM8L2xpdGVyYWw+LgorICAg ICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZWRiLnNnbWwKaW5kZXggMzI2YTM3MWQzNC4uN2M1NzNlODQ4YSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlZGIuc2dtbApAQCAtMTU0LDYgKzE1NCwxMSBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRp b24KICAgICAgICAgU3BlY2lmaWVzIHRoZSBJQ1UgbG9jYWxlIElEIHRvIGJlIHVzZWQgaW4gdGhp cyBkYXRhYmFzZSwgaWYgdGhlCiAgICAgICAgIElDVSBsb2NhbGUgcHJvdmlkZXIgaXMgc2VsZWN0 ZWQuCiAgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJZiBzcGVjaWZpZWQg YXMgPGxpdGVyYWw+QzwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+UE9TSVg8L2xpdGVyYWw+LCB0aGUK KyAgICAgICAgcHJvdmlkZXIgaXMgYXV0b21hdGljYWxseSBzZXQgdG8gPGxpdGVyYWw+bm9uZTwv bGl0ZXJhbD4sIGFzIHRoZSBJQ1UKKyAgICAgICAgcHJvdmlkZXIgZG9lc24ndCBzdXBwb3J0IGFu IElDVSBsb2NhbGUgb2YgPGxpdGVyYWw+QzwvbGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sCmlu ZGV4IGU2MDRhYjQ4YjcuLjc2OTkzYWNkZmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv aW5pdGRiLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbApAQCAtMjUwLDYg KzI1MCwxMSBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgICAgU3BlY2lmaWVzIHRo ZSBJQ1UgbG9jYWxlIHdoZW4gdGhlIElDVSBwcm92aWRlciBpcyB1c2VkLiBMb2NhbGUgc3VwcG9y dAogICAgICAgICBpcyBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0ibG9jYWxlIi8+LgogICAg ICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgc3BlY2lmaWVkIGFzIDxsaXRl cmFsPkM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlBPU0lYPC9saXRlcmFsPiwgdGhlCisgICAgICAg IHByb3ZpZGVyIGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+ LCBhcyB0aGUgSUNVCisgICAgICAgIHByb3ZpZGVyIGRvZXNuJ3Qgc3VwcG9ydCBhbiBJQ1UgbG9j YWxlIG9mIDxsaXRlcmFsPkM8L2xpdGVyYWw+LgorICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFy YT4KICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgbm90IHNwZWNpZmllZCwgdGhlIGxvY2FsZSBp cyBpbmhlcml0ZWQgZnJvbSB0aGUKICAgICAgICAgZW52aXJvbm1lbnQgaW4gd2hpY2ggPGNvbW1h bmQ+aW5pdGRiPC9jb21tYW5kPiBydW5zLiBUaGUgZW52aXJvbm1lbnQncwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29sbGF0aW9uY21kcy5jCmluZGV4IGFlYWY2YzQxOWUuLjhiYzZmODM0N2QgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKQEAgLTI1NCw2ICsyNTQsMjMgQEAgRGVmaW5lQ29s bGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFtZXRlcnMs IGJvb2wgaWZfbm90X2UKIAkJaWYgKGxjY3R5cGVFbCkKIAkJCWNvbGxjdHlwZSA9IGRlZkdldFN0 cmluZyhsY2N0eXBlRWwpOwogCisJCS8qCisJCSAqIFBvc3RncmVzIGRlZmluZXMgdGhlICJDIiAo YW5kIGVxdWl2YWxlbnRseSwgIlBPU0lYIikgbG9jYWxlcyB0byBiZQorCQkgKiBvcHRpbWl6YWJs ZSB0byBieXRlIG9wZXJhdGlvbnMgKG1lbWNtcCgpLCBwZ19hc2NpaV90b2xvd2VyKCksCisJCSAq IGV0Yy4pOyB0cmFuc2Zvcm0gaW50byB0aGUgIm5vbmUiIHByb3ZpZGVyLiBEb24ndCB0cmFuc2Zv cm0gZHVyaW5nCisJCSAqIGJpbmFyeSB1cGdyYWRlLgorCQkgKi8KKwkJaWYgKCFJc0JpbmFyeVVw Z3JhZGUgJiYgY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgJiYKKwkJCWNvbGxpY3Vs b2NhbGUgJiYgKHBnX3N0cmNhc2VjbXAoY29sbGljdWxvY2FsZSwgIkMiKSA9PSAwIHx8CisJCQkJ CQkJICBwZ19zdHJjYXNlY21wKGNvbGxpY3Vsb2NhbGUsICJQT1NJWCIpID09IDApKQorCQl7CisJ CQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygidXNpbmcgbG9jYWxlIHByb3ZpZGVyIFwi bm9uZVwiIGZvciBJQ1UgbG9jYWxlIFwiJXNcIiIsCisJCQkJCQkJY29sbGljdWxvY2FsZSkpKTsK KwkJCWNvbGxpY3Vsb2NhbGUgPSBOVUxMOworCQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVS X05PTkU7CisJCX0KKwogCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQog CQl7CiAJCQlpZiAoIWNvbGxjb2xsYXRlKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGJjb21tYW5kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCmluZGV4 IDllNzNmNTQ4MDMuLjZkYzczN2FlYmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2RiY29tbWFuZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKQEAg LTEwNDMsNiArMTA0MywyNyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENy ZWF0ZWRiU3RtdCAqc3RtdCkKIAogCWNoZWNrX2VuY29kaW5nX2xvY2FsZV9tYXRjaGVzKGVuY29k aW5nLCBkYmNvbGxhdGUsIGRiY3R5cGUpOwogCisJLyoKKwkgKiBQb3N0Z3JlcyBkZWZpbmVzIHRo ZSAiQyIgKGFuZCBlcXVpdmFsZW50bHksICJQT1NJWCIpIGxvY2FsZXMgdG8gYmUKKwkgKiBvcHRp bWl6YWJsZSB0byBieXRlIG9wZXJhdGlvbnMgKG1lbWNtcCgpLCBwZ19hc2NpaV90b2xvd2VyKCks IGV0Yy4pOworCSAqIHRyYW5zZm9ybSBpbnRvIHRoZSAibm9uZSIgcHJvdmlkZXIuCisJICoKKwkg KiBEb24ndCB0cmFuc2Zvcm0gZHVyaW5nIGJpbmFyeSB1cGdyYWRlIG9yIHdoZW4gYm90aCB0aGUg cHJvdmlkZXIgYW5kIElDVQorCSAqIGxvY2FsZSBhcmUgdW5jaGFuZ2VkIGZyb20gdGhlIHRlbXBs YXRlLgorCSAqLworCWlmICghSXNCaW5hcnlVcGdyYWRlICYmIGRibG9jcHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0lDVSAmJgorCQkoc3JjX2xvY3Byb3ZpZGVyICE9IENPTExQUk9WSURFUl9JQ1Ug fHwKKwkJIHN0cmNtcChkYmljdWxvY2FsZSwgc3JjX2ljdWxvY2FsZSkgIT0gMCkgJiYKKwkJZGJp Y3Vsb2NhbGUgJiYgKHBnX3N0cmNhc2VjbXAoZGJpY3Vsb2NhbGUsICJDIikgPT0gMCB8fAorCQkJ CQkJcGdfc3RyY2FzZWNtcChkYmljdWxvY2FsZSwgIlBPU0lYIikgPT0gMCkpCisJeworCQllcmVw b3J0KE5PVElDRSwKKwkJCQkoZXJybXNnKCJ1c2luZyBsb2NhbGUgcHJvdmlkZXIgXCJub25lXCIg Zm9yIElDVSBsb2NhbGUgXCIlc1wiIiwKKwkJCQkJCWRiaWN1bG9jYWxlKSkpOworCQlkYmljdWxv Y2FsZSA9IE5VTEw7CisJCWRibG9jcHJvdmlkZXIgPSBDT0xMUFJPVklERVJfTk9ORTsKKwl9CisK IAlpZiAoZGJsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCXsKIAkJaWYgKCEoaXNf ZW5jb2Rpbmdfc3VwcG9ydGVkX2J5X2ljdShlbmNvZGluZykpKQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9pbml0ZGIvaW5pdGRiLmMgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwppbmRleCA0YTZjYWQz Y2I5Li5lNWVjMmEyNDNlIDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYworKysg Yi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtMjQ0MCw2ICsyNDQwLDE2IEBAIHNldGxvY2Fs ZXModm9pZCkKIAkJCWxjX21lc3NhZ2VzID0gbG9jYWxlOwogCX0KIAorCWlmIChpY3VfbG9jYWxl ICYmIGxvY2FsZV9wcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVICYmCisJCShwZ19zdHJjYXNl Y21wKGljdV9sb2NhbGUsICJDIikgPT0gMCB8fAorCQkgcGdfc3RyY2FzZWNtcChpY3VfbG9jYWxl LCAiUE9TSVgiKSA9PSAwKSkKKwl7CisJCXBnX2xvZ19pbmZvKCJ1c2luZyBsb2NhbGUgcHJvdmlk ZXIgXCJub25lXCIgZm9yIElDVSBsb2NhbGUgXCIlc1wiIiwKKwkJCQkJIGljdV9sb2NhbGUpOwor CQlpY3VfbG9jYWxlID0gTlVMTDsKKwkJbG9jYWxlX3Byb3ZpZGVyID0gQ09MTFBST1ZJREVSX05P TkU7CisJfQorCiAJLyoKIAkgKiBjYW5vbmljYWxpemUgbG9jYWxlIG5hbWVzLCBhbmQgb2J0YWlu IGFueSBtaXNzaW5nIHZhbHVlcyBmcm9tIG91cgogCSAqIGN1cnJlbnQgZW52aXJvbm1lbnQKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbCBiL3NyYy9iaW4vaW5pdGRi L3QvMDAxX2luaXRkYi5wbAppbmRleCBmZTZkMjI0ZTViLi5lYTkyYjA4NTExIDEwMDY0NAotLS0g YS9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKKysrIGIvc3JjL2Jpbi9pbml0ZGIvdC8w MDFfaW5pdGRiLnBsCkBAIC0xMTEsNiArMTExLDQ1IEBAIGlmICgkRU5We3dpdGhfaWN1fSBlcSAn eWVzJykKIAkJXSwKIAkJJ29wdGlvbiAtLWljdS1sb2NhbGUnKTsKIAorCSMgdHJhbnNmb3JtZWQg dG8gcHJvdmlkZXI9bm9uZQorCWNvbW1hbmRfb2soCisJCVsKKwkJCSdpbml0ZGInLCAgICAgICAg ICAgICAgICAnLS1uby1zeW5jJywKKwkJCSctLWxvY2FsZS1wcm92aWRlcj1pY3UnLCAnLS1pY3Ut bG9jYWxlPUMnLAorCQkJIiR0ZW1wZGlyL2RhdGE0YSIKKwkJXSwKKwkJJ29wdGlvbiAtLWljdS1s b2NhbGU9QycpOworCisJIyB0cmFuc2Zvcm1lZCB0byBwcm92aWRlcj1ub25lCisJY29tbWFuZF9v aygKKwkJWworCQkJJ2luaXRkYicsICAgICAgICAgICAgICAgICctLW5vLXN5bmMnLAorCQkJJy0t bG9jYWxlLXByb3ZpZGVyPWljdScsICctLWljdS1sb2NhbGU9QycsCisJCQknLS1sb2NhbGU9Qycs CisJCQkiJHRlbXBkaXIvZGF0YTRiIgorCQldLAorCQknb3B0aW9uIC0taWN1LWxvY2FsZT1DIC0t bG9jYWxlPUMnKTsKKworCSMgdHJhbnNmb3JtZWQgdG8gcHJvdmlkZXI9bm9uZQorCWNvbW1hbmRf b2soCisJCVsKKwkJCSdpbml0ZGInLCAgICAgICAgICAgICAgICAnLS1uby1zeW5jJywKKwkJCSct LWxvY2FsZS1wcm92aWRlcj1pY3UnLCAnLS1pY3UtbG9jYWxlPUMnLAorCQkJJy0tbGMtY29sbGF0 ZT1DJywKKwkJCSIkdGVtcGRpci9kYXRhNGMiCisJCV0sCisJCSdvcHRpb24gLS1pY3UtbG9jYWxl PUMgLS1sYy1jb2xsYXRlPUMnKTsKKworCSMgdHJhbnNmb3JtZWQgdG8gcHJvdmlkZXI9bm9uZQor CWNvbW1hbmRfb2soCisJCVsKKwkJCSdpbml0ZGInLCAgICAgICAgICAgICAgICAnLS1uby1zeW5j JywKKwkJCSctLWxvY2FsZS1wcm92aWRlcj1pY3UnLCAnLS1pY3UtbG9jYWxlPUMnLAorCQkJJy0t bGMtY3R5cGU9QycsCisJCQkiJHRlbXBkaXIvZGF0YTRkIgorCQldLAorCQknb3B0aW9uIC0taWN1 LWxvY2FsZT1DIC0tbGMtY3R5cGU9QycpOworCiAJY29tbWFuZF9mYWlsc19saWtlKAogCQlbCiAJ CQknaW5pdGRiJywgICAgICAgICAgICAgICAgJy0tbm8tc3luYycsCmRpZmYgLS1naXQgYS9zcmMv YmluL3NjcmlwdHMvY3JlYXRlZGIuYyBiL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jCmluZGV4 IDc5MzY3ZDkzM2IuLjljYWY5MTkwY2YgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vc2NyaXB0cy9jcmVh dGVkYi5jCisrKyBiL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jCkBAIC0xNzIsNiArMTcyLDE3 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCWxjX2NvbGxhdGUgPSBsb2NhbGU7 CiAJfQogCisJaWYgKGxvY2FsZV9wcm92aWRlciAmJiBwZ19zdHJjYXNlY21wKGxvY2FsZV9wcm92 aWRlciwgImljdSIpID09IDAgJiYKKwkJaWN1X2xvY2FsZSAmJgorCQkocGdfc3RyY2FzZWNtcChp Y3VfbG9jYWxlLCAiQyIpID09IDAgfHwKKwkJIHBnX3N0cmNhc2VjbXAoaWN1X2xvY2FsZSwgIlBP U0lYIikgPT0gMCkpCisJeworCQlwZ19sb2dfaW5mbygidXNpbmcgbG9jYWxlIHByb3ZpZGVyIFwi bm9uZVwiIGZvciBJQ1UgbG9jYWxlIFwiJXNcIiIsCisJCQkJCSBpY3VfbG9jYWxlKTsKKwkJaWN1 X2xvY2FsZSA9IE5VTEw7CisJCWxvY2FsZV9wcm92aWRlciA9ICJub25lIjsKKwl9CisKIAlpZiAo ZW5jb2RpbmcpCiAJewogCQlpZiAocGdfY2hhcl90b19lbmNvZGluZyhlbmNvZGluZykgPCAwKQpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsIGIvc3JjL2Jpbi9z Y3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCmluZGV4IDVhYTY1OGI2NzEuLmViMzY4MmYwZmQgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbAorKysgYi9zcmMvYmlu L3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwKQEAgLTc1LDYgKzc1LDE4IEBAIGlmICgkRU5We3dp dGhfaWN1fSBlcSAneWVzJykKIAkkbm9kZTItPmNvbW1hbmRfb2soCiAJCVsgJ2NyZWF0ZWRiJywg Jy1UJywgJ3RlbXBsYXRlMCcsICctLWljdS1sb2NhbGUnLCAnZW4tVVMnLCAnZm9vYmFyNTYnIF0s CiAJCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBpY3UgbG9jYWxlIGZyb20gdGVtcGxhdGUgZGF0YWJh c2Ugd2l0aCBpY3UgcHJvdmlkZXInKTsKKworCSMgdHJhbnNmb3JtZWQgaW50byBwcm92aWRlciAi bm9uZSIKKwkkbm9kZS0+Y29tbWFuZF9vaygKKwkJWyAnY3JlYXRlZGInLCAnLVQnLCAndGVtcGxh dGUwJywgJy0tbG9jYWxlLXByb3ZpZGVyPWljdScsICctLWljdS1sb2NhbGU9QycsCisJCSAgJ3Rl c3Rfbm9uZV9pY3UxJyBdLAorCQknY3JlYXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgImljdSIg YW5kIElDVV9MT0NBTEU9IkMiJyk7CisKKwkjIHRyYW5zZm9ybWVkIGludG8gcHJvdmlkZXIgIm5v bmUiCisJJG5vZGUtPmNvbW1hbmRfb2soCisJCVsgJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBsYXRl MCcsICctLWxvY2FsZS1wcm92aWRlcj1pY3UnLCAnLS1pY3UtbG9jYWxlPUMnLAorCQkgICctLWxj LWN0eXBlPUMnLCAndGVzdF9ub25lX2ljdV8yJyBdLAorCQknY3JlYXRlIGRhdGFiYXNlIHdpdGgg cHJvdmlkZXIgImljdSIgYW5kIElDVV9MT0NBTEU9IkMiIGFuZCBMQ19DVFlQRT1DJyk7CiB9CiBl bHNlCiB7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1 LnV0Zjgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91 dAppbmRleCBjNjU4ZWUxNDA0Li43YzE4NmU5ZjY5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKQEAgLTEwMzUsNiArMTAzNSw5IEBAIEJFR0lO CiBFTkQKICQkOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKKy0tIHVzZXMgIm5vbmUiIHBy b3ZpZGVyIGluc3RlYWQKK0NSRUFURSBDT0xMQVRJT04gdGVzdGMgKHByb3ZpZGVyID0gaWN1LCBs b2NhbGU9J0MnKTsKK05PVElDRTogIHVzaW5nIGxvY2FsZSBwcm92aWRlciAibm9uZSIgZm9yIElD VSBsb2NhbGUgIkMiCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3QzIChwcm92aWRlciA9IGljdSwgbGNf Y29sbGF0ZSA9ICdlbl9VUy51dGY4Jyk7IC0tIGZhaWwsIG5lZWRzICJsb2NhbGUiCiBFUlJPUjog IHBhcmFtZXRlciAibG9jYWxlIiBtdXN0IGJlIHNwZWNpZmllZAogU0VUIGljdV92YWxpZGF0aW9u X2xldmVsID0gRVJST1I7CkBAIC0xMDU4LDggKzEwNjEsMTEgQEAgU0VMRUNUIGNvbGxuYW1lIEZS T00gcGdfY29sbGF0aW9uIFdIRVJFIGNvbGxuYW1lIExJS0UgJ3Rlc3QlJyBPUkRFUiBCWSAxOwog IHRlc3QwCiAgdGVzdDEKICB0ZXN0NQotKDMgcm93cykKKyB0ZXN0YworKDQgcm93cykKIAorRFJP UCBDT0xMQVRJT04gdGVzdDE7CitDUkVBVEUgQ09MTEFUSU9OIHRlc3QxIChwcm92aWRlciA9IGlj dSwgbG9jYWxlID0gJ3VuZCcpOwogQUxURVIgQ09MTEFUSU9OIHRlc3QxIFJFTkFNRSBUTyB0ZXN0 MTE7CiBBTFRFUiBDT0xMQVRJT04gdGVzdDAgUkVOQU1FIFRPIHRlc3QxMTsgLS0gZmFpbAogRVJS T1I6ICBjb2xsYXRpb24gInRlc3QxMSIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hICJjb2xsYXRl X3Rlc3RzIgpAQCAtMTA3OSw3ICsxMDg1LDggQEAgU0VMRUNUIGNvbGxuYW1lLCBuc3BuYW1lLCBv YmpfZGVzY3JpcHRpb24ocGdfY29sbGF0aW9uLm9pZCwgJ3BnX2NvbGxhdGlvbicpCiAgdGVzdDAg ICAgfCBjb2xsYXRlX3Rlc3RzIHwgVVMgRW5nbGlzaAogIHRlc3QxMSAgIHwgdGVzdF9zY2hlbWEg ICB8IAogIHRlc3Q1ICAgIHwgY29sbGF0ZV90ZXN0cyB8IAotKDMgcm93cykKKyB0ZXN0YyAgICB8 IGNvbGxhdGVfdGVzdHMgfCAKKyg0IHJvd3MpCiAKIERST1AgQ09MTEFUSU9OIHRlc3QwLCB0ZXN0 X3NjaGVtYS50ZXN0MTEsIHRlc3Q1OwogRFJPUCBDT0xMQVRJT04gdGVzdDA7IC0tIGZhaWwKQEAg LTEwODksNyArMTA5Niw4IEBAIE5PVElDRTogIGNvbGxhdGlvbiAidGVzdDAiIGRvZXMgbm90IGV4 aXN0LCBza2lwcGluZwogU0VMRUNUIGNvbGxuYW1lIEZST00gcGdfY29sbGF0aW9uIFdIRVJFIGNv bGxuYW1lIExJS0UgJ3Rlc3QlJzsKICBjb2xsbmFtZSAKIC0tLS0tLS0tLS0KLSgwIHJvd3MpCisg dGVzdGMKKygxIHJvdykKIAogRFJPUCBTQ0hFTUEgdGVzdF9zY2hlbWE7CiBEUk9QIFJPTEUgcmVn cmVzc190ZXN0X3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRl LmljdS51dGY4LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3Fs CmluZGV4IDdiZDA5MDEyODEuLmU1OTIwMGRmOWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv bGxhdGUuaWN1LnV0Zjguc3FsCkBAIC0zNzUsNiArMzc1LDkgQEAgJCQ7CiAKIFJFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CiAKKy0tIHVzZXMgIm5vbmUiIHByb3ZpZGVyIGluc3RlYWQKK0NSRUFU RSBDT0xMQVRJT04gdGVzdGMgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGU9J0MnKTsKKwogQ1JFQVRF IENPTExBVElPTiB0ZXN0MyAocHJvdmlkZXIgPSBpY3UsIGxjX2NvbGxhdGUgPSAnZW5fVVMudXRm OCcpOyAtLSBmYWlsLCBuZWVkcyAibG9jYWxlIgogU0VUIGljdV92YWxpZGF0aW9uX2xldmVsID0g RVJST1I7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0g J25vbnNlbnNlLW5vd2hlcmUnKTsgLS0gZmFpbHMKQEAgLTM4OCw2ICszOTEsOSBAQCBDUkVBVEUg Q09MTEFUSU9OIHRlc3Q1IEZST00gdGVzdDA7CiAKIFNFTEVDVCBjb2xsbmFtZSBGUk9NIHBnX2Nv bGxhdGlvbiBXSEVSRSBjb2xsbmFtZSBMSUtFICd0ZXN0JScgT1JERVIgQlkgMTsKIAorRFJPUCBD T0xMQVRJT04gdGVzdDE7CitDUkVBVEUgQ09MTEFUSU9OIHRlc3QxIChwcm92aWRlciA9IGljdSwg bG9jYWxlID0gJ3VuZCcpOworCiBBTFRFUiBDT0xMQVRJT04gdGVzdDEgUkVOQU1FIFRPIHRlc3Qx MTsKIEFMVEVSIENPTExBVElPTiB0ZXN0MCBSRU5BTUUgVE8gdGVzdDExOyAtLSBmYWlsCiBBTFRF UiBDT0xMQVRJT04gdGVzdDEgUkVOQU1FIFRPIHRlc3QyMjsgLS0gZmFpbAotLSAKMi4zNC4xCgo= --=-4HiYp7zcmkBoGIgoh6K1 Content-Disposition: attachment; filename*0=v6-0003-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.pat; filename*1=ch Content-Type: text/x-patch; name="v6-0003-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjMDQwNTMwMjFlYWE2ZGI0ODAxNDMzOTNhN2RlODM1MjVhOGY0ZjdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI1IEFwciAyMDIzIDE1OjAxOjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NiAzLzVdIE1h a2UgTE9DQUxFIGFwcGx5IHRvIElDVV9MT0NBTEUgZm9yIENSRUFURSBEQVRBQkFTRS4KCkxPQ0FM RSBpcyBub3cgYW4gYWxpYXMgZm9yIExDX0NPTExBVEUsIExDX0NUWVBFLCBhbmQgKGlmIHRoZSBw cm92aWRlcgppcyBJQ1UpIElDVV9MT0NBTEUuIFRoZSBJQ1UgcHJvdmlkZXIgYWNjZXB0cyBtb3Jl IGxvY2FsZSBuYW1lcyB0aGFuCmxpYmMgKGUuZy4gbGFuZ3VhZ2UgdGFncyBhbmQgbG9jYWxlIG5h bWVzIGNvbnRhaW5pbmcgY29sbGF0aW9uCmF0dHJpYnV0ZXMpLCBzbyBpbiBzb21lIGNhc2VzIExD X0NPTExBVEUsIExDX0NUWVBFLCBhbmQgSUNVX0xPQ0FMRQp3aWxsIHN0aWxsIG5lZWQgdG8gYmUg c3BlY2lmaWVkIHNlcGFyYXRlbHkuCgpQcmV2aW91c2x5LCBMT0NBTEUgYXBwbGllZCBvbmx5IHRv IExDX0NPTExBVEUgYW5kIExDX0NUWVBFIChhbmQKc2ltaWxhcmx5IGZvciAtLWxvY2FsZSBpbiBp bml0ZGIgYW5kIGNyZWF0ZWRiKS4gVGhhdCBjb3VsZCBsZWFkIHRvCmNvbmZ1c2lvbiB3aGVuIHRo ZSBwcm92aWRlciBpcyBpbXBsaWNpdCwgc3VjaCBhcyB3aGVuIGl0IGlzIGluaGVyaXRlZApmcm9t IHRoZSB0ZW1wbGF0ZSBkYXRhYmFzZSwgb3Igd2hlbiBJQ1Ugd2FzIG1hZGUgZGVmYXVsdCBhdCBp bml0ZGIKdGltZSBpbiBjb21taXQgMjdiNjIzNzdiNC4KClJldmVydHMgaW5jb21wbGV0ZSBmaXgg NWNkMWE1YWY0ZC4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vMzM5MTkzMi4xNjgy MTA3MjA5QHNzcy5wZ2gucGEudXMKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFz ZS5zZ21sICAgICAgICAgfCAgNiArKystLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21s ICAgICAgICAgICAgICAgIHwgIDUgKysrLQogZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbCAg ICAgICAgICAgICAgICAgIHwgIDcgKysrLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRp b25jbWRzLmMgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5k cy5jICAgICAgICAgICAgIHwgMTUgKysrKysrKystLS0tCiBzcmMvYmluL2luaXRkYi9pbml0ZGIu YyAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKystLS0KIHNyYy9iaW4vc2NyaXB0cy9j cmVhdGVkYi5jICAgICAgICAgICAgICAgICAgICB8IDEzICsrKystLS0tLS0tCiBzcmMvYmluL3Nj cmlwdHMvdC8wMjBfY3JlYXRlZGIucGwgICAgICAgICAgICAgfCAgNCArKy0tCiBzcmMvdGVzdC9p Y3UvdC8wMTBfZGF0YWJhc2UucGwgICAgICAgICAgICAgICAgfCAyMyArKysrKysrKysrKystLS0t LS0tCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAyMiAr KysrKysrKystLS0tLS0tLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDQz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFi YXNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5zZ21sCmluZGV4IGM3 MzBkMDJlMTUuLmRjNTdiYTBjOGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X2RhdGFiYXNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dt bApAQCAtMTQ1LDggKzE0NSwxMCBAQCBDUkVBVEUgREFUQUJBU0UgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICAgPHRlcm0+PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmxvY2FsZTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgICAgPGxp c3RpdGVtPgogICAgICAgIDxwYXJhPgotICAgICAgICBUaGlzIGlzIGEgc2hvcnRjdXQgZm9yIHNl dHRpbmcgPHN5bWJvbD5MQ19DT0xMQVRFPC9zeW1ib2w+Ci0gICAgICAgIGFuZCA8c3ltYm9sPkxD X0NUWVBFPC9zeW1ib2w+IGF0IG9uY2UuCisgICAgICAgIFRoaXMgaXMgYSBzaG9ydGN1dCBmb3Ig c2V0dGluZyA8c3ltYm9sPkxDX0NPTExBVEU8L3N5bWJvbD4sCisgICAgICAgIDxzeW1ib2w+TENf Q1RZUEU8L3N5bWJvbD4gYW5kIDxzeW1ib2w+SUNVX0xPQ0FMRTwvc3ltYm9sPiBhdAorICAgICAg ICBvbmNlLiBTb21lIGxvY2FsZXMgYXJlIG9ubHkgdmFsaWQgZm9yIElDVSwgYW5kIG11c3QgYmUg c2V0IHNlcGFyYXRlbHkKKyAgICAgICAgd2l0aCA8c3ltYm9sPklDVV9MT0NBTEU8L3N5bWJvbD4u CiAgICAgICAgPC9wYXJhPgogICAgICAgIDx0aXA+CiAgICAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVkYi5zZ21sCmluZGV4IDdjNTczZTg0OGEuLjc5OTExNTNlY2MgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRi LnNnbWwKQEAgLTEyNCw3ICsxMjQsMTAgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAg ICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxl IHRvIGJlIHVzZWQgaW4gdGhpcyBkYXRhYmFzZS4gIFRoaXMgaXMgZXF1aXZhbGVudAotICAgICAg ICB0byBzcGVjaWZ5aW5nIGJvdGggPG9wdGlvbj4tLWxjLWNvbGxhdGU8L29wdGlvbj4gYW5kIDxv cHRpb24+LS1sYy1jdHlwZTwvb3B0aW9uPi4KKyAgICAgICAgdG8gc3BlY2lmeWluZyA8b3B0aW9u Pi0tbGMtY29sbGF0ZTwvb3B0aW9uPiwKKyAgICAgICAgPG9wdGlvbj4tLWxjLWN0eXBlPC9vcHRp b24+LCBhbmQgPG9wdGlvbj4tLWljdS1sb2NhbGU8L29wdGlvbj4gdG8gdGhlCisgICAgICAgIHNh bWUgdmFsdWUuIFNvbWUgbG9jYWxlcyBhcmUgb25seSB2YWxpZCBmb3IgSUNVIGFuZCBtdXN0IGJl IHNldCB3aXRoCisgICAgICAgIDxvcHRpb24+LS1pY3UtbG9jYWxlPC9vcHRpb24+LgogICAgICAg IDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvaW5p dGRiLnNnbWwKaW5kZXggNzY5OTNhY2RmZS4uZDllZjIxYzQyMiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9pbml0ZGIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21s CkBAIC0xMTYsOSArMTE2LDEwIEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICA8cGFyYT4K ICAgIFRvIGNob29zZSBhIGRpZmZlcmVudCBsb2NhbGUgZm9yIHRoZSBjbHVzdGVyLCB1c2UgdGhl IG9wdGlvbgogICAgPG9wdGlvbj4tLWxvY2FsZTwvb3B0aW9uPi4gIFRoZXJlIGFyZSBhbHNvIGlu ZGl2aWR1YWwgb3B0aW9ucwotICAgPG9wdGlvbj4tLWxjLSo8L29wdGlvbj4gKHNlZSBiZWxvdykg dG8gc2V0IHZhbHVlcyBmb3IgdGhlIGluZGl2aWR1YWwgbG9jYWxlCi0gICBjYXRlZ29yaWVzLiAg Tm90ZSB0aGF0IGluY29uc2lzdGVudCBzZXR0aW5ncyBmb3IgZGlmZmVyZW50IGxvY2FsZQotICAg Y2F0ZWdvcmllcyBjYW4gZ2l2ZSBub25zZW5zaWNhbCByZXN1bHRzLCBzbyB0aGlzIHNob3VsZCBi ZSB1c2VkIHdpdGggY2FyZS4KKyAgIDxvcHRpb24+LS1sYy0qPC9vcHRpb24+IGFuZCA8b3B0aW9u Pi0taWN1LWxvY2FsZTwvb3B0aW9uPiAoc2VlIGJlbG93KSB0bworICAgc2V0IHZhbHVlcyBmb3Ig dGhlIGluZGl2aWR1YWwgbG9jYWxlIGNhdGVnb3JpZXMuICBOb3RlIHRoYXQgaW5jb25zaXN0ZW50 CisgICBzZXR0aW5ncyBmb3IgZGlmZmVyZW50IGxvY2FsZSBjYXRlZ29yaWVzIGNhbiBnaXZlIG5v bnNlbnNpY2FsIHJlc3VsdHMsIHNvCisgICB0aGlzIHNob3VsZCBiZSB1c2VkIHdpdGggY2FyZS4K ICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv Y29sbGF0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jCmlu ZGV4IDhiYzZmODM0N2QuLjIxNjE1NzQ2ZjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvbGxhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25j bWRzLmMKQEAgLTMwMiw3ICszMDIsNyBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQkJCWlm IChsYW5ndGFnICYmIHN0cmNtcChjb2xsaWN1bG9jYWxlLCBsYW5ndGFnKSAhPSAwKQogCQkJCXsK IAkJCQkJZXJlcG9ydChOT1RJQ0UsCi0JCQkJCQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQgZm9y bSBcIiVzXCIgZm9yIGxvY2FsZSBcIiVzXCIiLAorCQkJCQkJCShlcnJtc2coInVzaW5nIHN0YW5k YXJkIGZvcm0gXCIlc1wiIGZvciBJQ1UgbG9jYWxlIFwiJXNcIiIsCiAJCQkJCQkJCQlsYW5ndGFn LCBjb2xsaWN1bG9jYWxlKSkpOwogCiAJCQkJCWNvbGxpY3Vsb2NhbGUgPSBsYW5ndGFnOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZGJjb21tYW5kcy5jCmluZGV4IDZkYzczN2FlYmIuLjE1NGYyMDU3M2MgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKQEAgLTEwMTksNyArMTAxOSwxMiBAQCBjcmVhdGVkYihQ YXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZWRiU3RtdCAqc3RtdCkKIAlpZiAoZGJsb2Nw cm92aWRlciA9PSAnXDAnKQogCQlkYmxvY3Byb3ZpZGVyID0gc3JjX2xvY3Byb3ZpZGVyOwogCWlm IChkYmljdWxvY2FsZSA9PSBOVUxMICYmIGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lD VSkKLQkJZGJpY3Vsb2NhbGUgPSBzcmNfaWN1bG9jYWxlOworCXsKKwkJaWYgKGRsb2NhbGUgJiYg ZGxvY2FsZS0+YXJnKQorCQkJZGJpY3Vsb2NhbGUgPSBkZWZHZXRTdHJpbmcoZGxvY2FsZSk7CisJ CWVsc2UKKwkJCWRiaWN1bG9jYWxlID0gc3JjX2ljdWxvY2FsZTsKKwl9CiAJaWYgKGRiaWN1cnVs ZXMgPT0gTlVMTCAmJiBkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJCWRiaWN1 cnVsZXMgPSBzcmNfaWN1cnVsZXM7CiAKQEAgLTEwMzMsMTIgKzEwMzgsMTQgQEAgY3JlYXRlZGIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJaWYgKCFjaGVj a19sb2NhbGUoTENfQ09MTEFURSwgZGJjb2xsYXRlLCAmY2Fub25uYW1lKSkKIAkJZXJlcG9ydChF UlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJy bXNnKCJpbnZhbGlkIGxvY2FsZSBuYW1lOiBcIiVzXCIiLCBkYmNvbGxhdGUpKSk7CisJCQkJIGVy cm1zZygiaW52YWxpZCBMQ19DT0xMQVRFIGxvY2FsZSBuYW1lOiBcIiVzXCIiLCBkYmNvbGxhdGUp LAorCQkJCSBlcnJoaW50KCJJZiB0aGUgbG9jYWxlIG5hbWUgaXMgc3BlY2lmaWMgdG8gSUNVLCB1 c2UgSUNVX0xPQ0FMRS4iKSkpOwogCWRiY29sbGF0ZSA9IGNhbm9ubmFtZTsKIAlpZiAoIWNoZWNr X2xvY2FsZShMQ19DVFlQRSwgZGJjdHlwZSwgJmNhbm9ubmFtZSkpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygi aW52YWxpZCBsb2NhbGUgbmFtZTogXCIlc1wiIiwgZGJjdHlwZSkpKTsKKwkJCQkgZXJybXNnKCJp bnZhbGlkIExDX0NUWVBFIGxvY2FsZSBuYW1lOiBcIiVzXCIiLCBkYmN0eXBlKSwKKwkJCQkgZXJy aGludCgiSWYgdGhlIGxvY2FsZSBuYW1lIGlzIHNwZWNpZmljIHRvIElDVSwgdXNlIElDVV9MT0NB TEUuIikpKTsKIAlkYmN0eXBlID0gY2Fub25uYW1lOwogCiAJY2hlY2tfZW5jb2RpbmdfbG9jYWxl X21hdGNoZXMoZW5jb2RpbmcsIGRiY29sbGF0ZSwgZGJjdHlwZSk7CkBAIC0xMDk0LDcgKzExMDEs NyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZWRiU3RtdCAqc3Rt dCkKIAkJCWlmIChsYW5ndGFnICYmIHN0cmNtcChkYmljdWxvY2FsZSwgbGFuZ3RhZykgIT0gMCkK IAkJCXsKIAkJCQllcmVwb3J0KE5PVElDRSwKLQkJCQkJCShlcnJtc2coInVzaW5nIHN0YW5kYXJk IGZvcm0gXCIlc1wiIGZvciBsb2NhbGUgXCIlc1wiIiwKKwkJCQkJCShlcnJtc2coInVzaW5nIHN0 YW5kYXJkIGZvcm0gXCIlc1wiIGZvciBJQ1UgbG9jYWxlIFwiJXNcIiIsCiAJCQkJCQkJCWxhbmd0 YWcsIGRiaWN1bG9jYWxlKSkpOwogCiAJCQkJZGJpY3Vsb2NhbGUgPSBsYW5ndGFnOwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpp bmRleCBlNWVjMmEyNDNlLi5mMDgyNzE1NGNkIDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9p bml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtMjE2NCw3ICsyMTY0LDEx IEBAIGNoZWNrX2xvY2FsZV9uYW1lKGludCBjYXRlZ29yeSwgY29uc3QgY2hhciAqbG9jYWxlLCBj aGFyICoqY2Fub25uYW1lKQogCWlmIChyZXMgPT0gTlVMTCkKIAl7CiAJCWlmICgqbG9jYWxlKQot CQkJcGdfZmF0YWwoImludmFsaWQgbG9jYWxlIG5hbWUgXCIlc1wiIiwgbG9jYWxlKTsKKwkJewor CQkJcGdfbG9nX2Vycm9yKCJpbnZhbGlkIGxvY2FsZSBuYW1lIFwiJXNcIiIsIGxvY2FsZSk7CisJ CQlwZ19sb2dfZXJyb3JfaGludCgiSWYgdGhlIGxvY2FsZSBuYW1lIGlzIHNwZWNpZmljIHRvIElD VSwgdXNlIC0taWN1LWxvY2FsZS4iKTsKKwkJCWV4aXQoMSk7CisJCX0KIAkJZWxzZQogCQl7CiAJ CQkvKgpAQCAtMjQwNiw3ICsyNDEwLDcgQEAgc2V0bG9jYWxlcyh2b2lkKQogewogCWNoYXIJICAg KmNhbm9ubmFtZTsKIAotCS8qIHNldCBlbXB0eSBsY18qIHZhbHVlcyB0byBsb2NhbGUgY29uZmln IGlmIHNldCAqLworCS8qIHNldCBlbXB0eSBsY18qIGFuZCBpY3Vsb2NhbGUgdmFsdWVzIHRvIGxv Y2FsZSBjb25maWcgaWYgc2V0ICovCiAKIAlpZiAobG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9W SURFUl9OT05FKQogCXsKQEAgLTI0MzgsNiArMjQ0Miw4IEBAIHNldGxvY2FsZXModm9pZCkKIAkJ CWxjX21vbmV0YXJ5ID0gbG9jYWxlOwogCQlpZiAoIWxjX21lc3NhZ2VzKQogCQkJbGNfbWVzc2Fn ZXMgPSBsb2NhbGU7CisJCWlmICghaWN1X2xvY2FsZSAmJiBsb2NhbGVfcHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0lDVSkKKwkJCWljdV9sb2NhbGUgPSBsb2NhbGU7CiAJfQogCiAJaWYgKGljdV9s b2NhbGUgJiYgbG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgJiYKQEAgLTMzMzEs NyArMzMzNyw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCQlicmVhazsKIAkJ CWNhc2UgODoKIAkJCQlsb2NhbGUgPSAiQyI7Ci0JCQkJbG9jYWxlX3Byb3ZpZGVyID0gQ09MTFBS T1ZJREVSX0xJQkM7CiAJCQkJYnJlYWs7CiAJCQljYXNlIDk6CiAJCQkJcHdmaWxlbmFtZSA9IHBn X3N0cmR1cChvcHRhcmcpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMg Yi9zcmMvYmluL3NjcmlwdHMvY3JlYXRlZGIuYwppbmRleCA5Y2FmOTE5MGNmLi41MWM0YmIzNTky IDEwMDY0NAotLS0gYS9zcmMvYmluL3NjcmlwdHMvY3JlYXRlZGIuYworKysgYi9zcmMvYmluL3Nj cmlwdHMvY3JlYXRlZGIuYwpAQCAtMTY0LDE0ICsxNjQsNiBAQCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAJCQlleGl0KDEpOwogCX0KIAotCWlmIChsb2NhbGUpCi0JewotCQlpZiAoIWxj X2N0eXBlKQotCQkJbGNfY3R5cGUgPSBsb2NhbGU7Ci0JCWlmICghbGNfY29sbGF0ZSkKLQkJCWxj X2NvbGxhdGUgPSBsb2NhbGU7Ci0JfQotCiAJaWYgKGxvY2FsZV9wcm92aWRlciAmJiBwZ19zdHJj YXNlY21wKGxvY2FsZV9wcm92aWRlciwgImljdSIpID09IDAgJiYKIAkJaWN1X2xvY2FsZSAmJgog CQkocGdfc3RyY2FzZWNtcChpY3VfbG9jYWxlLCAiQyIpID09IDAgfHwKQEAgLTIzMCw2ICsyMjIs MTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcigm c3FsLCAiIFNUUkFURUdZICVzIiwgZm10SWQoc3RyYXRlZ3kpKTsKIAlpZiAodGVtcGxhdGUpCiAJ CWFwcGVuZFBRRXhwQnVmZmVyKCZzcWwsICIgVEVNUExBVEUgJXMiLCBmbXRJZCh0ZW1wbGF0ZSkp OworCWlmIChsb2NhbGUpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmc3FsLCAiIExPQ0FM RSAiKTsKKwkJYXBwZW5kU3RyaW5nTGl0ZXJhbENvbm4oJnNxbCwgbG9jYWxlLCBjb25uKTsKKwl9 CiAJaWYgKGxjX2NvbGxhdGUpCiAJewogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmc3FsLCAiIExD X0NPTExBVEUgIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIu cGwgYi9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwKaW5kZXggZWIzNjgyZjBmZC4u ODFhOTkzMWMwOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBs CisrKyBiL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbApAQCAtMTY3LDcgKzE2Nyw3 IEBAICRub2RlLT5jb21tYW5kX2NoZWNrc19hbGwoCiAJMSwKIAlbcXIvXiQvXSwKIAlbCi0JCXFy L15jcmVhdGVkYjogZXJyb3I6IGRhdGFiYXNlIGNyZWF0aW9uIGZhaWxlZDogRVJST1I6ICBpbnZh bGlkIGxvY2FsZSBuYW1lfF5jcmVhdGVkYjogZXJyb3I6IGRhdGFiYXNlIGNyZWF0aW9uIGZhaWxl ZDogRVJST1I6ICBuZXcgY29sbGF0aW9uIFwoZm9vJzsgU0VMRUNUICcxXCkgaXMgaW5jb21wYXRp YmxlIHdpdGggdGhlIGNvbGxhdGlvbiBvZiB0aGUgdGVtcGxhdGUgZGF0YWJhc2UvcworCQlxci9e Y3JlYXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgaW52YWxp ZCBMQ19DT0xMQVRFIGxvY2FsZSBuYW1lfF5jcmVhdGVkYjogZXJyb3I6IGRhdGFiYXNlIGNyZWF0 aW9uIGZhaWxlZDogRVJST1I6ICBuZXcgY29sbGF0aW9uIFwoZm9vJzsgU0VMRUNUICcxXCkgaXMg aW5jb21wYXRpYmxlIHdpdGggdGhlIGNvbGxhdGlvbiBvZiB0aGUgdGVtcGxhdGUgZGF0YWJhc2Uv cwogCV0sCiAJJ2NyZWF0ZWRiIHdpdGggaW5jb3JyZWN0IC0tbGMtY29sbGF0ZScpOwogJG5vZGUt PmNvbW1hbmRfY2hlY2tzX2FsbCgKQEAgLTE3NSw3ICsxNzUsNyBAQCAkbm9kZS0+Y29tbWFuZF9j aGVja3NfYWxsKAogCTEsCiAJW3FyL14kL10sCiAJWwotCQlxci9eY3JlYXRlZGI6IGVycm9yOiBk YXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgaW52YWxpZCBsb2NhbGUgbmFtZXxeY3Jl YXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgbmV3IExDX0NU WVBFIFwoZm9vJzsgU0VMRUNUICcxXCkgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIExDX0NUWVBF IG9mIHRoZSB0ZW1wbGF0ZSBkYXRhYmFzZS9zCisJCXFyL15jcmVhdGVkYjogZXJyb3I6IGRhdGFi YXNlIGNyZWF0aW9uIGZhaWxlZDogRVJST1I6ICBpbnZhbGlkIExDX0NUWVBFIGxvY2FsZSBuYW1l fF5jcmVhdGVkYjogZXJyb3I6IGRhdGFiYXNlIGNyZWF0aW9uIGZhaWxlZDogRVJST1I6ICBuZXcg TENfQ1RZUEUgXChmb28nOyBTRUxFQ1QgJzFcKSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgTENf Q1RZUEUgb2YgdGhlIHRlbXBsYXRlIGRhdGFiYXNlL3MKIAldLAogCSdjcmVhdGVkYiB3aXRoIGlu Y29ycmVjdCAtLWxjLWN0eXBlJyk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2ljdS90LzAxMF9k YXRhYmFzZS5wbCBiL3NyYy90ZXN0L2ljdS90LzAxMF9kYXRhYmFzZS5wbAppbmRleCA3MTViMWJm ZmQ2Li5kZjRhZjAwYWZlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pY3UvdC8wMTBfZGF0YWJhc2Uu cGwKKysrIGIvc3JjL3Rlc3QvaWN1L3QvMDEwX2RhdGFiYXNlLnBsCkBAIC01MSwxNiArNTEsMjMg QEAgYiksCiAJJ3NvcnQgYnkgZXhwbGljaXQgY29sbGF0aW9uIHVwcGVyIGZpcnN0Jyk7CiAKIAot IyBUZXN0IGVycm9yIGNhc2VzIGluIENSRUFURSBEQVRBQkFTRSBpbnZvbHZpbmcgbG9jYWxlLXJl bGF0ZWQgb3B0aW9ucworIyBUZXN0IHRoYXQgTE9DQUxFPSdDJyB3b3JrcyBmb3IgSUNVCiAKLW15 ICgkcmV0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlMS0+cHNxbCgncG9zdGdyZXMnLAotCXF7 Q1JFQVRFIERBVEFCQVNFIGRiaWN1IExPQ0FMRV9QUk9WSURFUiBpY3UgTE9DQUxFICdDJyBURU1Q TEFURSB0ZW1wbGF0ZTAgRU5DT0RJTkcgVVRGOH0pOwotaXNudCgkcmV0LCAwLAotCSJJQ1UgbG9j YWxlIG11c3QgYmUgc3BlY2lmaWVkIGZvciBJQ1UgcHJvdmlkZXI6IGV4aXQgY29kZSBub3QgMCIp OworbXkgJHJldDEgPSAkbm9kZTEtPnBzcWwoJ3Bvc3RncmVzJywKKwlxe0NSRUFURSBEQVRBQkFT RSBkYmljdTIgTE9DQUxFX1BST1ZJREVSIGljdSBMT0NBTEUgJ0MnIFRFTVBMQVRFIHRlbXBsYXRl MCBFTkNPRElORyBVVEY4fSk7CitpcygkcmV0MSwgMCwKKwkiQyBsb2NhbGUgd29ya3MgZm9yIElD VSIpOworCisjIFRlc3QgdGhhdCBJQ1Utc3BlY2lmaWMgbG9jYWxlIHN0cmluZyBtdXN0IGJlIHNw ZWNpZmllZCB3aXRoIElDVV9MT0NBTEUsCisjIG5vdCBMT0NBTEUKKworbXkgKCRyZXQyLCAkc3Rk b3V0LCAkc3RkZXJyKSA9ICRub2RlMS0+cHNxbCgncG9zdGdyZXMnLAorCXF7Q1JFQVRFIERBVEFC QVNFIGRiaWN1MyBMT0NBTEVfUFJPVklERVIgaWN1IExPQ0FMRSAnQGNvbFN0cmVuZ3RoPXByaW1h cnknIFRFTVBMQVRFIHRlbXBsYXRlMCBFTkNPRElORyBVVEY4fSk7Citpc250KCRyZXQyLCAwLAor CSJJQ1Utc3BlY2lmaWMgbG9jYWxlIG11c3QgYmUgc3BlY2lmaWVkIHdpdGggSUNVX0xPQ0FMRTog ZXhpdCBjb2RlIG5vdCAwIik7CiBsaWtlKAogCSRzdGRlcnIsCi0JcXIvRVJST1I6ICBJQ1UgbG9j YWxlIG11c3QgYmUgc3BlY2lmaWVkLywKLQkiSUNVIGxvY2FsZSBtdXN0IGJlIHNwZWNpZmllZCBm b3IgSUNVIHByb3ZpZGVyOiBlcnJvciBtZXNzYWdlIik7Ci0KKwlxci9FUlJPUjogIGludmFsaWQg TENfQ09MTEFURSBsb2NhbGUgbmFtZS8sCisJIklDVS1zcGVjaWZpYyBsb2NhbGUgbXVzdCBiZSBz cGVjaWZpZWQgd2l0aCBJQ1VfTE9DQUxFOiBlcnJvciBtZXNzYWdlIik7CiAKIGRvbmVfdGVzdGlu ZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51 dGY4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQK aW5kZXggN2MxODZlOWY2OS4uY2YxODUyYzg5ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CkBAIC0xMjAyLDkgKzEyMDIsOSBAQCBTRUxFQ1Qg J2NvdMOpJyA8ICdjw7R0ZScgQ09MTEFURSAidW5kLXgtaWN1IiwgJ2NvdMOpJyA+ICdjw7R0ZScg Q09MTEFURSB0ZXN0Y29sbAogKDEgcm93KQogCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Rjb2xsX2xv d2VyX2ZpcnN0IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xDYXNlRmlyc3Q9bG93ZXIn KTsKLU5PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtmLWxvd2VyIiBmb3IgbG9j YWxlICJAY29sQ2FzZUZpcnN0PWxvd2VyIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAi dW5kLXUta2YtbG93ZXIiIGZvciBJQ1UgbG9jYWxlICJAY29sQ2FzZUZpcnN0PWxvd2VyIgogQ1JF QVRFIENPTExBVElPTiB0ZXN0Y29sbF91cHBlcl9maXJzdCAocHJvdmlkZXIgPSBpY3UsIGxvY2Fs ZSA9ICdAY29sQ2FzZUZpcnN0PXVwcGVyJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3Jt ICJ1bmQtdS1rZi11cHBlciIgZm9yIGxvY2FsZSAiQGNvbENhc2VGaXJzdD11cHBlciIKK05PVElD RTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtmLXVwcGVyIiBmb3IgSUNVIGxvY2FsZSAi QGNvbENhc2VGaXJzdD11cHBlciIKIFNFTEVDVCAnYWFhJyA8ICdBQUEnIENPTExBVEUgdGVzdGNv bGxfbG93ZXJfZmlyc3QsICdhYWEnID4gJ0FBQScgQ09MTEFURSB0ZXN0Y29sbF91cHBlcl9maXJz dDsKICA/Y29sdW1uPyB8ID9jb2x1bW4/IAogLS0tLS0tLS0tLSstLS0tLS0tLS0tCkBAIC0xMjEy LDcgKzEyMTIsNyBAQCBTRUxFQ1QgJ2FhYScgPCAnQUFBJyBDT0xMQVRFIHRlc3Rjb2xsX2xvd2Vy X2ZpcnN0LCAnYWFhJyA+ICdBQUEnIENPTExBVEUgdGVzdGNvbAogKDEgcm93KQogCiBDUkVBVEUg Q09MTEFUSU9OIHRlc3Rjb2xsX3NoaWZ0ZWQgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQGNv bEFsdGVybmF0ZT1zaGlmdGVkJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQt dS1rYS1zaGlmdGVkIiBmb3IgbG9jYWxlICJAY29sQWx0ZXJuYXRlPXNoaWZ0ZWQiCitOT1RJQ0U6 ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1rYS1zaGlmdGVkIiBmb3IgSUNVIGxvY2FsZSAi QGNvbEFsdGVybmF0ZT1zaGlmdGVkIgogU0VMRUNUICdkZS1sdWdlJyA8ICdkZWFuemEnIENPTExB VEUgInVuZC14LWljdSIsICdkZS1sdWdlJyA+ICdkZWFuemEnIENPTExBVEUgdGVzdGNvbGxfc2hp ZnRlZDsKICA/Y29sdW1uPyB8ID9jb2x1bW4/IAogLS0tLS0tLS0tLSstLS0tLS0tLS0tCkBAIC0x MjI5LDEyICsxMjI5LDEyIEBAIFNFTEVDVCAnQS0yMScgPiAnQS0xMjMnIENPTExBVEUgInVuZC14 LWljdSIsICdBLTIxJyA8ICdBLTEyMycgQ09MTEFURSB0ZXN0Y29sbF9uCiAoMSByb3cpCiAKIENS RUFURSBDT0xMQVRJT04gdGVzdGNvbGxfZXJyb3IxIChwcm92aWRlciA9IGljdSwgbG9jYWxlID0g J0Bjb2xOdW1lcmljPWxvd2VyJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQt dS1rbi1sb3dlciIgZm9yIGxvY2FsZSAiQGNvbE51bWVyaWM9bG93ZXIiCitOT1RJQ0U6ICB1c2lu ZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1rbi1sb3dlciIgZm9yIElDVSBsb2NhbGUgIkBjb2xOdW1l cmljPWxvd2VyIgogRVJST1I6ICBjb3VsZCBub3Qgb3BlbiBjb2xsYXRvciBmb3IgbG9jYWxlICJ1 bmQtdS1rbi1sb3dlciI6IFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUgogLS0gdGVzdCB0aGF0IGF0 dHJpYnV0ZXMgbm90IGhhbmRsZWQgYnkgaWN1X3NldF9jb2xsYXRpb25fYXR0cmlidXRlcygpCiAt LSAoaGFuZGxlZCBieSB1Y29sX29wZW4oKSBkaXJlY3RseSkgYWxzbyB3b3JrCiBDUkVBVEUgQ09M TEFUSU9OIHRlc3Rjb2xsX2RlX3Bob25lYm9vayAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdk ZUBjb2xsYXRpb249cGhvbmVib29rJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJk ZS11LWNvLXBob25lYmsiIGZvciBsb2NhbGUgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siCitOT1RJ Q0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJkZS11LWNvLXBob25lYmsiIGZvciBJQ1UgbG9jYWxl ICJkZUBjb2xsYXRpb249cGhvbmVib29rIgogU0VMRUNUICdHb2xkbWFubicgPCAnR8O2dHonIENP TExBVEUgImRlLXgtaWN1IiwgJ0dvbGRtYW5uJyA+ICdHw7Z0eicgQ09MTEFURSB0ZXN0Y29sbF9k ZV9waG9uZWJvb2s7CiAgP2NvbHVtbj8gfCA/Y29sdW1uPyAKIC0tLS0tLS0tLS0rLS0tLS0tLS0t LQpAQCAtMTI0Myw3ICsxMjQzLDcgQEAgU0VMRUNUICdHb2xkbWFubicgPCAnR8O2dHonIENPTExB VEUgImRlLXgtaWN1IiwgJ0dvbGRtYW5uJyA+ICdHw7Z0eicgQ09MTEFURSB0ZXMKIAogLS0gcnVs ZXMKIENSRUFURSBDT0xMQVRJT04gdGVzdGNvbGxfcnVsZXMxIChwcm92aWRlciA9IGljdSwgbG9j YWxlID0gJycsIHJ1bGVzID0gJyZhIDwgZycpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9y bSAidW5kIiBmb3IgbG9jYWxlICIiCitOT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQi IGZvciBJQ1UgbG9jYWxlICIiCiBDUkVBVEUgVEFCTEUgdGVzdDcgKGEgdGV4dCk7CiAtLSBleGFt cGxlIGZyb20gaHR0cHM6Ly91bmljb2RlLW9yZy5naXRodWIuaW8vaWN1L3VzZXJndWlkZS9jb2xs YXRpb24vY3VzdG9taXphdGlvbi8jc3ludGF4CiBJTlNFUlQgSU5UTyB0ZXN0NyBWQUxVRVMgKCdB YmVybmF0aHknKSwgKCdhcHBsZScpLCAoJ2JpcmQnKSwgKCdCb3N0b24nKSwgKCdHcmFoYW0nKSwg KCdncmVlbicpOwpAQCAtMTI3MSwxMyArMTI3MSwxMyBAQCBTRUxFQ1QgKiBGUk9NIHRlc3Q3IE9S REVSIEJZIGEgQ09MTEFURSB0ZXN0Y29sbF9ydWxlczE7CiAKIERST1AgVEFCTEUgdGVzdDc7CiBD UkVBVEUgQ09MTEFUSU9OIHRlc3Rjb2xsX3J1bGVzeCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9 ICcnLCBydWxlcyA9ICchIXdyb25nISEnKTsKLU5PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0g InVuZCIgZm9yIGxvY2FsZSAiIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBm b3IgSUNVIGxvY2FsZSAiIgogRVJST1I6ICBjb3VsZCBub3Qgb3BlbiBjb2xsYXRvciBmb3IgbG9j YWxlICJ1bmQiIHdpdGggcnVsZXMgIiEhd3JvbmchISI6IFVfSU5WQUxJRF9GT1JNQVRfRVJST1IK IC0tIG5vbmRldGVybWluaXN0aWMgY29sbGF0aW9ucwogQ1JFQVRFIENPTExBVElPTiBjdGVzdF9k ZXQgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnJywgZGV0ZXJtaW5pc3RpYyA9IHRydWUpOwot Tk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBmb3IgbG9jYWxlICIiCitOT1RJQ0U6 ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBJQ1UgbG9jYWxlICIiCiBDUkVBVEUgQ09M TEFUSU9OIGN0ZXN0X25vbmRldCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICcnLCBkZXRlcm1p bmlzdGljID0gZmFsc2UpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBmb3Ig bG9jYWxlICIiCitOT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBJQ1UgbG9j YWxlICIiCiBDUkVBVEUgVEFCTEUgdGVzdDYgKGEgaW50LCBiIHRleHQpOwogLS0gc2FtZSBzdHJp bmcgaW4gZGlmZmVyZW50IG5vcm1hbCBmb3JtcwogSU5TRVJUIElOVE8gdGVzdDYgVkFMVUVTICgx LCBVJidcMDBFNGJjJyk7CkBAIC0xMzI3LDkgKzEzMjcsOSBAQCBTRUxFQ1QgKiBGUk9NIHRlc3Q2 YSBXSEVSRSBiID0gQVJSQVlbJ8OkYmMnXSBDT0xMQVRFIGN0ZXN0X25vbmRldDsKICgyIHJvd3Mp CiAKIENSRUFURSBDT0xMQVRJT04gY2FzZV9zZW5zaXRpdmUgKHByb3ZpZGVyID0gaWN1LCBsb2Nh bGUgPSAnJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBsb2NhbGUg IiIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZCIgZm9yIElDVSBsb2NhbGUgIiIK IENSRUFURSBDT0xMQVRJT04gY2FzZV9pbnNlbnNpdGl2ZSAocHJvdmlkZXIgPSBpY3UsIGxvY2Fs ZSA9ICdAY29sU3RyZW5ndGg9c2Vjb25kYXJ5JywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNlKTsKLU5P VElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtzLWxldmVsMiIgZm9yIGxvY2FsZSAi QGNvbFN0cmVuZ3RoPXNlY29uZGFyeSIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVu ZC11LWtzLWxldmVsMiIgZm9yIElDVSBsb2NhbGUgIkBjb2xTdHJlbmd0aD1zZWNvbmRhcnkiCiBT RUxFQ1QgJ2FiYycgPD0gJ0FCQycgQ09MTEFURSBjYXNlX3NlbnNpdGl2ZSwgJ2FiYycgPj0gJ0FC QycgQ09MTEFURSBjYXNlX3NlbnNpdGl2ZTsKICA/Y29sdW1uPyB8ID9jb2x1bW4/IAogLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0tIAoyLjM0LjEKCg== --=-4HiYp7zcmkBoGIgoh6K1 Content-Disposition: attachment; filename="v6-0004-Add-default_collation_provider-GUC.patch" Content-Type: text/x-patch; name="v6-0004-Add-default_collation_provider-GUC.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyYTg1N2EyY2IwODBkYmMwMTVjNTliODlhY2JiMTk1YWU3OTkxYTk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDExIE1heSAyMDIzIDEyOjU0OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NiA0LzVdIEFk ZCBkZWZhdWx0X2NvbGxhdGlvbl9wcm92aWRlciBHVUMuCgpDb250cm9scyBkZWZhdWx0IGNvbGxh dGlvbiBwcm92aWRlciBmb3IgQ1JFQVRFIENPTExBVElPTi4gRG9lcyBub3QKYWZmZWN0IENSRUFU RSBEQVRBQkFTRSwgd2hpY2ggZ2V0cyBpdHMgZGVmYXVsdCBmcm9tIHRoZSB0ZW1wbGF0ZQpkYXRh YmFzZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCAxNyArKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dt bCAgICAgICAgfCAxNSArKysrKysrKy0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9u Y21kcy5jICAgICAgICAgIHwgIDggKysrKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYyAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgNCArKysKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2NvbGxhdGlvbmNtZHMuaCAgICAgICAgICB8ICAyICsrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9j b2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAyNSArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCAgICAgfCAxMyArKysrKysrKysrCiA4 IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CmluZGV4IDE4Y2UwNjcyOWIuLjU4YTEwNDYzNDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9j b25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTk4MjAsNiArOTgy MCwyMyBAQCBTRVQgWE1MIE9QVElPTiB7IERPQ1VNRU5UIHwgQ09OVEVOVCB9OwogICAgICAgPC9s aXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0i Z3VjLWRlZmF1bHQtY29sbGF0aW9uLXByb3ZpZGVyIiB4cmVmbGFiZWw9ImRlZmF1bHRfY29sbGF0 aW9uX3Byb3ZpZGVyIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmRlZmF1bHRfY29sbGF0aW9uX3By b3ZpZGVyPC92YXJuYW1lPiAoPHR5cGU+ZW51bTwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgor ICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmRlZmF1bHRfY29sbGF0aW9uX3Byb3ZpZGVyPC92YXJu YW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJt PgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBEZWZhdWx0IGNvbGxhdGlvbiBwcm92aWRlciBmb3IgPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAg IENPTExBVElPTjwvY29tbWFuZD4uIERvZXMgbm90IGFmZmVjdCA8Y29tbWFuZD5DUkVBVEUKKyAg ICAgICAgREFUQUJBU0U8L2NvbW1hbmQ+LCB3aGljaCBnZXRzIHRoZSBkZWZhdWx0IGNvbGxhdGlv biBwcm92aWRlciBmcm9tIHRoZQorICAgICAgICB0ZW1wbGF0ZSBkYXRhYmFzZS4gVmFsaWQgdmFs dWVzIGFyZSA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+IGFuZAorICAgICAgICA8bGl0ZXJhbD5saWJj PC9saXRlcmFsPi4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4uCisgICAg ICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAg ICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLWljdS12YWxpZGF0aW9uLWxldmVsIiB4cmVmbGFiZWw9 ImljdV92YWxpZGF0aW9uX2xldmVsIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1lPmljdV92YWxpZGF0 aW9uX2xldmVsPC92YXJuYW1lPiAoPHR5cGU+ZW51bTwvdHlwZT4pCiAgICAgICA8aW5kZXh0ZXJt PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbAppbmRleCAxYWM0MTgzMWQ4Li5j OWIzZTZlMjE4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbApAQCAtMTIx LDEwICsxMjEsMTcgQEAgQ1JFQVRFIENPTExBVElPTiBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IEZST00gPHJlcGxhY2UKICAgICAgIDxwYXJhPgogICAg ICAgIFNwZWNpZmllcyB0aGUgcHJvdmlkZXIgdG8gdXNlIGZvciBsb2NhbGUgc2VydmljZXMgYXNz b2NpYXRlZCB3aXRoIHRoaXMKICAgICAgICBjb2xsYXRpb24uICBQb3NzaWJsZSB2YWx1ZXMgYXJl IDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LAotICAgICAgIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD48 aW5kZXh0ZXJtPjxwcmltYXJ5PklDVTwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICAgICAoaWYg dGhlIHNlcnZlciB3YXMgYnVpbHQgd2l0aCBJQ1Ugc3VwcG9ydCkgb3IgPGxpdGVyYWw+bGliYzwv bGl0ZXJhbD4uCi0gICAgICAgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQu ICBTZWUgPHhyZWYKLSAgICAgICBsaW5rZW5kPSJsb2NhbGUtcHJvdmlkZXJzIi8+IGZvciBkZXRh aWxzLgorICAgICAgIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PklD VTwvcHJpbWFyeT48L2luZGV4dGVybT4gKGlmCisgICAgICAgdGhlIHNlcnZlciB3YXMgYnVpbHQg d2l0aCBJQ1Ugc3VwcG9ydCkgb3IgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4uICBTZWUKKyAgICAg ICA8eHJlZiBsaW5rZW5kPSJsb2NhbGUtcHJvdmlkZXJzIi8+IGZvciBkZXRhaWxzLgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgPHJlcGxhY2VhYmxlPnByb3ZpZGVyPC9y ZXBsYWNlYWJsZT4gaXMgbm90IHNwZWNpZmllZCwgYW5kCisgICAgICAgPHJlcGxhY2VhYmxlPmxj X2NvbGxhdGU8L3JlcGxhY2VhYmxlPiBvcgorICAgICAgIDxyZXBsYWNlYWJsZT5sY19jdHlwZTwv cmVwbGFjZWFibGU+IGlzIHNwZWNpZmllZCwgdGhlCisgICAgICAgPGxpdGVyYWw+bGliYzwvbGl0 ZXJhbD4gcHJvdmlkZXIgaXMgdXNlZC4gT3RoZXJ3aXNlLCB0aGUgZGVmYXVsdAorICAgICAgIHBy b3ZpZGVyIGlzIGNvbnRyb2xsZWQgYnkgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJndWMtZGVmYXVs dC1jb2xsYXRpb24tcHJvdmlkZXIiLz4uCiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAg ICAgICBJZiB0aGUgcHJvdmlkZXIgaXMgPGxpdGVyYWw+aWN1PC9saXRlcmFsPiBhbmQgdGhlIGxv Y2FsZSBpcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jCmluZGV4IDIxNjE1NzQ2Zjku LjI1ZThkMzJmZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNt ZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKQEAgLTQ3LDYg KzQ3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlpbnQJCQllbmM7CQkJLyogZW5jb2RpbmcgKi8KIH0g Q29sbEFsaWFzRGF0YTsKIAoraW50CQlkZWZhdWx0X2NvbGxhdGlvbl9wcm92aWRlciA9IChpbnQp IENPTExQUk9WSURFUl9MSUJDOwogCiAvKgogICogQ1JFQVRFIENPTExBVElPTgpAQCAtMjI4LDcg KzIyOSwxMiBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1l cywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQkJCQkJCQljb2xscHJvdmlkZXJz dHIpKSk7CiAJCX0KIAkJZWxzZQotCQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJQkM7 CisJCXsKKwkJCWlmIChsY2NvbGxhdGVFbCB8fCBsY2N0eXBlRWwpCisJCQkJY29sbHByb3ZpZGVy ID0gQ09MTFBST1ZJREVSX0xJQkM7CisJCQllbHNlCisJCQkJY29sbHByb3ZpZGVyID0gKGNoYXIp IGRlZmF1bHRfY29sbGF0aW9uX3Byb3ZpZGVyOworCQl9CiAKIAkJaWYgKGNvbGxwcm92aWRlciA9 PSBDT0xMUFJPVklERVJfTk9ORQogCQkJJiYgKGxvY2FsZUVsIHx8IGxjY29sbGF0ZUVsIHx8IGxj Y3R5cGVFbCkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDg0NDc4MWE3ZjUu LjkwMWNmZGE4MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxl cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0zNSw4ICsz NSwxMCBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIKICNpbmNsdWRlICJhcmNo aXZlL2FyY2hpdmVfbW9kdWxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFn ZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29s bGF0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRl ICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdXNlci5oIgpAQCAtMTY2 LDYgKzE2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IGludGVy dmFsc3R5bGVfb3B0aW9uc1tdID0gewogCXtOVUxMLCAwLCBmYWxzZX0KIH07CiAKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgY29sbGF0aW9uX3Byb3ZpZGVyX29wdGlvbnNb XSA9IHsKKwl7ImljdSIsIChpbnQpICdpJywgZmFsc2V9LAorCXsibGliYyIsIChpbnQpICdjJywg ZmFsc2V9LAorCXtOVUxMLCAwLCBmYWxzZX0KK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29u ZmlnX2VudW1fZW50cnkgaWN1X3ZhbGlkYXRpb25fbGV2ZWxfb3B0aW9uc1tdID0gewogCXsiZGlz YWJsZWQiLCAtMSwgZmFsc2V9LAogCXsiZGVidWc1IiwgREVCVUc1LCBmYWxzZX0sCkBAIC00Njgz LDYgKzQ2OTEsMTYgQEAgc3RydWN0IGNvbmZpZ19lbnVtIENvbmZpZ3VyZU5hbWVzRW51bVtdID0K IAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsiZGVmYXVsdF9jb2xsYXRpb25fcHJv dmlkZXIiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fTE9DQUxFLAorCQkgZ2V0dGV4dF9ub29w KCJEZWZhdWx0IGNvbGxhdGlvbiBwcm92aWRlciBmb3IgQ1JFQVRFIENPTExBVElPTi4iKSwKKwkJ IE5VTEwKKwkJfSwKKwkJJmRlZmF1bHRfY29sbGF0aW9uX3Byb3ZpZGVyLAorCQkoaW50KSBDT0xM UFJPVklERVJfTElCQywgY29sbGF0aW9uX3Byb3ZpZGVyX29wdGlvbnMsCisJCU5VTEwsIE5VTEws IE5VTEwKKwl9LAorCiAJewogCQl7ImljdV92YWxpZGF0aW9uX2xldmVsIiwgUEdDX1VTRVJTRVQs IENMSUVOVF9DT05OX0xPQ0FMRSwKIAkJIGdldHRleHRfbm9vcCgiTG9nIGxldmVsIGZvciByZXBv cnRpbmcgaW52YWxpZCBJQ1UgbG9jYWxlIHN0cmluZ3MuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggYzgwMThkYTA0YS4uYzFmMjQ3Mzc4 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpA QCAtNzM0LDYgKzczNCwxMCBAQAogI2xjX251bWVyaWMgPSAnQycJCQkjIGxvY2FsZSBmb3IgbnVt YmVyIGZvcm1hdHRpbmcKICNsY190aW1lID0gJ0MnCQkJCSMgbG9jYWxlIGZvciB0aW1lIGZvcm1h dHRpbmcKIAorI2RlZmF1bHRfY29sbGF0aW9uX3Byb3ZpZGVyID0gJ2xpYmMnCSMgZGVmYXVsdCBj b2xsYXRpb24gcHJvdmlkZXIKKwkJCQkJIyBmb3IgQ1JFQVRFIENPTExBVElPTgorCQkJCQkjIChu b25lLCBpY3UsIGxpYmMpCisKICNpY3VfdmFsaWRhdGlvbl9sZXZlbCA9IFdBUk5JTkcJCSMgcmVw b3J0IElDVSBsb2NhbGUgdmFsaWRhdGlvbgogCQkJCQkjIGVycm9ycyBhdCB0aGUgZ2l2ZW4gbGV2 ZWwKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvY29sbGF0aW9uY21kcy5oCmluZGV4IGI3NmM3YjNkYzMuLmY1 NDM4OTUyNWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMu aAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmgKQEAgLTE4LDYgKzE4 LDggQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRlICJwYXJz ZXIvcGFyc2Vfbm9kZS5oIgogCitleHRlcm4gUEdETExJTVBPUlQgaW50IGRlZmF1bHRfY29sbGF0 aW9uX3Byb3ZpZGVyOworCiBleHRlcm4gT2JqZWN0QWRkcmVzcyBEZWZpbmVDb2xsYXRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9u b3RfZXhpc3RzKTsKIGV4dGVybiB2b2lkIElzVGhlcmVDb2xsYXRpb25Jbk5hbWVzcGFjZShjb25z dCBjaGFyICpjb2xsbmFtZSwgT2lkIG5zcE9pZCk7CiBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRl ckNvbGxhdGlvbihBbHRlckNvbGxhdGlvblN0bXQgKnN0bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKaW5kZXggY2YxODUyYzg5ZC4uZWE5NmUy N2Y0NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51 dGY4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgu b3V0CkBAIC0xMDM4LDYgKzEwMzgsMzEgQEAgUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0t IHVzZXMgIm5vbmUiIHByb3ZpZGVyIGluc3RlYWQKIENSRUFURSBDT0xMQVRJT04gdGVzdGMgKHBy b3ZpZGVyID0gaWN1LCBsb2NhbGU9J0MnKTsKIE5PVElDRTogIHVzaW5nIGxvY2FsZSBwcm92aWRl ciAibm9uZSIgZm9yIElDVSBsb2NhbGUgIkMiCitTRVQgZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlk ZXIgPSAnbGliYyc7CitDUkVBVEUgQ09MTEFUSU9OIGRlZl9saWJjIChMT0NBTEUgPSAnQycpOwor U0VMRUNUIGNvbGxuYW1lLCBjb2xscHJvdmlkZXIgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29s bG5hbWU9J2RlZl9saWJjJzsKKyBjb2xsbmFtZSB8IGNvbGxwcm92aWRlciAKKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0KKyBkZWZfbGliYyB8IGMKKygxIHJvdykKKworRFJPUCBDT0xMQVRJT04g ZGVmX2xpYmM7CitTRVQgZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlkZXIgPSAnaWN1JzsKK0NSRUFU RSBDT0xMQVRJT04gZGVmX2ljdSAoTE9DQUxFID0gJ3VuZCcpOworU0VMRUNUIGNvbGxuYW1lLCBj b2xscHJvdmlkZXIgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbG5hbWU9J2RlZl9pY3UnOwor IGNvbGxuYW1lIHwgY29sbHByb3ZpZGVyIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIGRl Zl9pY3UgIHwgaQorKDEgcm93KQorCitDUkVBVEUgQ09MTEFUSU9OIGRlZl9saWJjIChMQ19DT0xM QVRFID0gJ0MnLCBMQ19DVFlQRT0nQycpOworU0VMRUNUIGNvbGxuYW1lLCBjb2xscHJvdmlkZXIg RlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbG5hbWU9J2RlZl9saWJjJzsKKyBjb2xsbmFtZSB8 IGNvbGxwcm92aWRlciAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBkZWZfbGliYyB8IGMK KygxIHJvdykKKworUkVTRVQgZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlkZXI7CiBDUkVBVEUgQ09M TEFUSU9OIHRlc3QzIChwcm92aWRlciA9IGljdSwgbGNfY29sbGF0ZSA9ICdlbl9VUy51dGY4Jyk7 IC0tIGZhaWwsIG5lZWRzICJsb2NhbGUiCiBFUlJPUjogIHBhcmFtZXRlciAibG9jYWxlIiBtdXN0 IGJlIHNwZWNpZmllZAogU0VUIGljdV92YWxpZGF0aW9uX2xldmVsID0gRVJST1I7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCmluZGV4IGU1OTIwMGRmOWEuLmVlNjA3 Y2EzYTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjgu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCkBAIC0z NzgsNiArMzc4LDE5IEBAIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAtLSB1c2VzICJub25l IiBwcm92aWRlciBpbnN0ZWFkCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3RjIChwcm92aWRlciA9IGlj dSwgbG9jYWxlPSdDJyk7CiAKK1NFVCBkZWZhdWx0X2NvbGxhdGlvbl9wcm92aWRlciA9ICdsaWJj JzsKK0NSRUFURSBDT0xMQVRJT04gZGVmX2xpYmMgKExPQ0FMRSA9ICdDJyk7CitTRUxFQ1QgY29s bG5hbWUsIGNvbGxwcm92aWRlciBGUk9NIHBnX2NvbGxhdGlvbiBXSEVSRSBjb2xsbmFtZT0nZGVm X2xpYmMnOworRFJPUCBDT0xMQVRJT04gZGVmX2xpYmM7CisKK1NFVCBkZWZhdWx0X2NvbGxhdGlv bl9wcm92aWRlciA9ICdpY3UnOworQ1JFQVRFIENPTExBVElPTiBkZWZfaWN1IChMT0NBTEUgPSAn dW5kJyk7CitTRUxFQ1QgY29sbG5hbWUsIGNvbGxwcm92aWRlciBGUk9NIHBnX2NvbGxhdGlvbiBX SEVSRSBjb2xsbmFtZT0nZGVmX2ljdSc7CitDUkVBVEUgQ09MTEFUSU9OIGRlZl9saWJjIChMQ19D T0xMQVRFID0gJ0MnLCBMQ19DVFlQRT0nQycpOworU0VMRUNUIGNvbGxuYW1lLCBjb2xscHJvdmlk ZXIgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbG5hbWU9J2RlZl9saWJjJzsKKworUkVTRVQg ZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlkZXI7CisKIENSRUFURSBDT0xMQVRJT04gdGVzdDMgKHBy b3ZpZGVyID0gaWN1LCBsY19jb2xsYXRlID0gJ2VuX1VTLnV0ZjgnKTsgLS0gZmFpbCwgbmVlZHMg ImxvY2FsZSIKIFNFVCBpY3VfdmFsaWRhdGlvbl9sZXZlbCA9IEVSUk9SOwogQ1JFQVRFIENPTExB VElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdub25zZW5zZS1ub3doZXJlJyk7 IC0tIGZhaWxzCi0tIAoyLjM0LjEKCg== --=-4HiYp7zcmkBoGIgoh6K1 Content-Disposition: attachment; filename="v6-0005-ICU-fix-up-old-libc-style-locale-strings.patch" Content-Type: text/x-patch; name="v6-0005-ICU-fix-up-old-libc-style-locale-strings.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyNzRhODg3Zjg5NzA2NDdiMmM5MzJlZTU1YzQ3ODMwOTU3MTk5ODVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDI4IEFwciAyMDIzIDEyOjIyOjQxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NiA1LzVdIElD VTogZml4IHVwIG9sZCBsaWJjLXN0eWxlIGxvY2FsZSBzdHJpbmdzLgoKQmVmb3JlIHRyYW5zZm9y bWluZyBhIGxvY2FsZSBzdHJpbmcgaW50byBhIGxhbmd1YWdlIHRhZywgZml4IHVwIG9sZApsaWJj LXN0eWxlIGxvY2FsZSBzdHJpbmdzIHN1Y2ggYXMgJ2ZyX0ZSQGV1cm8nLiBPbGRlciBJQ1UgdmVy c2lvbnMgZGlkCnRoaXMgYXV0b21hdGljYWxseSwgYnV0IElDVSB2ZXJzaW9uIDY0IHJlbW92ZWQg dGhhdCBzdXBwb3J0LgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS82NTRhNDlmN2Zm NzQ2MWJjZjQ3YmU0MTgxNDMwNjc4ZDQ1ZjkzODU4LmNhbWVsJTQwai1kYXZpcy5jb20KLS0tCiBz cmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgICAgICAgICAgICAgfCA1NyArKysrKysr KysrKysrKysrLQogc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMgICAgICAgICAgICAgICAgICAgICAg IHwgNjEgKysrKysrKysrKysrKysrKysrLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5p Y3UudXRmOC5vdXQgICAgIHwgMTEgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5p Y3UudXRmOC5zcWwgICAgIHwgIDcgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z19sb2NhbGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYwppbmRleCA5NWVi NWNmNDY0Li4yZWU4MWU5ODA0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdf bG9jYWxlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCkBAIC0yNzg3 LDYgKzI3ODcsNTggQEAgaWN1X3NldF9jb2xsYXRpb25fYXR0cmlidXRlcyhVQ29sbGF0b3IgKmNv bGxhdG9yLCBjb25zdCBjaGFyICpsb2MsCiAKIAlwZnJlZShsb3dlcl9zdHIpOwogfQorCitzdGF0 aWMgY29uc3QgY2hhciAqaWN1X3ZhcmlhbnRfbWFwW11bMl0gPSB7CisJeyAiQEVVUk8iLCAgICJA Y3VycmVuY3k9RVVSIiB9LAorCXsgIkBQSU5ZSU4iLCAiQGNvbGxhdGlvbj1waW55aW4iIH0sCisJ eyAiQFNUUk9LRSIsICJAY29sbGF0aW9uPXN0cm9rZSIgfSwKK307CisKKy8qCisgKiBJQ1UgdmVy c2lvbiA2NCByZW1vdmVkIHRoZSBhYmlsaXR5IHRvIHRyYW5zZm9ybSBsb2NhbGUgc3RyaW5ncyBv ZiB0aGUgZm9ybQorICogJy4uLkBWQVJJQU5UJyBpbnRvIHByb3BlciBsYW5ndWFnZSB0YWdzLiBQ ZXJmb3JtIHRoZSB0cmFuc2Zvcm1hdGlvbiBmcm9tCisgKiB3aXRoaW4gUG9zdGdyZXMgc28gdGhh dCBJQ1Ugc3VwcG9ydHMgYW55IGxpYmMgbG9jYWxlIG5hbWUgY29uc2lzdGVudGx5LAorICogcmVn YXJkbGVzcyBvZiB0aGUgSUNVIHZlcnNpb24uCisgKi8KK3N0YXRpYyBjaGFyICoKK2ljdV9maXhf dmFyaWFudHMoY29uc3QgY2hhciAqbG9jX3N0cikKK3sKKwljb25zdCBjaGFyICpvbGRfdmFyaWFu dCA9IHN0cnJjaHIobG9jX3N0ciwgJ0AnKTsKKworCS8qCisJICogRXh0cmFjdCBhIHZhcmlhbnQg b2YgdGhlIGZvcm0gJy4uLkBWQVJJQU5UJywgYW5kIHJlcGxhY2Ugd2l0aAorCSAqIHRoZSBhcHBy b3ByaWF0ZSAnLi4uQGtleXdvcmQ9dmFsdWUnIGlmIGZvdW5kIGluIHRoZSBtYXAuCisJICovCisJ aWYgKG9sZF92YXJpYW50KQorCXsKKwkJc2l6ZV90IHByZWZpeF9sZW4gPSBvbGRfdmFyaWFudCAt IGxvY19zdHI7IC8qIGJ5dGVzIGJlZm9yZSB0aGUgJ0AnICovCisKKwkJZm9yIChpbnQgaSA9IDA7 IGkgPCBsZW5ndGhvZihpY3VfdmFyaWFudF9tYXApOyBpKyspCisJCXsKKwkJCWNvbnN0IGNoYXIg Km1hcF92YXJpYW50ID0gaWN1X3ZhcmlhbnRfbWFwW2ldWzBdOworCQkJY29uc3QgY2hhciAqbWFw X3JlcGxhY2VtZW50ID0gaWN1X3ZhcmlhbnRfbWFwW2ldWzFdOworCisJCQlpZiAocGdfc3RyY2Fz ZWNtcChvbGRfdmFyaWFudCwgbWFwX3ZhcmlhbnQpID09IDApCisJCQl7CisJCQkJc2l6ZV90CSBy ZXBsYWNlbWVudF9sZW4gPSBzdHJsZW4obWFwX3JlcGxhY2VtZW50KTsKKwkJCQlzaXplX3QJIHJl c3VsdF9sZW47CisJCQkJY2hhcgkqcmVzdWx0OworCisJCQkJcmVzdWx0X2xlbiA9IHByZWZpeF9s ZW4gKyByZXBsYWNlbWVudF9sZW4gKyAxOworCQkJCXJlc3VsdCA9IHBhbGxvYyhyZXN1bHRfbGVu KTsKKworCQkJCW1lbWNweShyZXN1bHQsIGxvY19zdHIsIHByZWZpeF9sZW4pOworCQkJCW1lbWNw eShyZXN1bHQgKyBwcmVmaXhfbGVuLCBtYXBfcmVwbGFjZW1lbnQsIHJlcGxhY2VtZW50X2xlbik7 CisJCQkJcmVzdWx0W3ByZWZpeF9sZW4gKyByZXBsYWNlbWVudF9sZW5dID0gJ1wwJzsKKworCQkJ CXJldHVybiByZXN1bHQ7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gcHN0cmR1cChsb2Nfc3Ry KTsKK30KKwogI2VuZGlmCiAKIC8qCkBAIC0yODAzLDYgKzI4NTUsNyBAQCBpY3VfbGFuZ3VhZ2Vf dGFnKGNvbnN0IGNoYXIgKmxvY19zdHIsIGludCBlbGV2ZWwpCiB7CiAjaWZkZWYgVVNFX0lDVQog CVVFcnJvckNvZGUJIHN0YXR1czsKKwljaGFyCQkqZml4ZWRfbG9jX3N0ciA9IGljdV9maXhfdmFy aWFudHMobG9jX3N0cik7CiAJY2hhcgkJIGxhbmdbVUxPQ19MQU5HX0NBUEFDSVRZXTsKIAljaGFy CQkqbGFuZ3RhZzsKIAlzaXplX3QJCSBidWZsZW4gPSAzMjsJLyogYXJiaXRyYXJ5IHN0YXJ0aW5n IGJ1ZmZlciBzaXplICovCkBAIC0yODMzLDcgKzI4ODYsNyBAQCBpY3VfbGFuZ3VhZ2VfdGFnKGNv bnN0IGNoYXIgKmxvY19zdHIsIGludCBlbGV2ZWwpCiAJd2hpbGUgKHRydWUpCiAJewogCQlzdGF0 dXMgPSBVX1pFUk9fRVJST1I7Ci0JCXVsb2NfdG9MYW5ndWFnZVRhZyhsb2Nfc3RyLCBsYW5ndGFn LCBidWZsZW4sIHN0cmljdCwgJnN0YXR1cyk7CisJCXVsb2NfdG9MYW5ndWFnZVRhZyhmaXhlZF9s b2Nfc3RyLCBsYW5ndGFnLCBidWZsZW4sIHN0cmljdCwgJnN0YXR1cyk7CiAKIAkJLyogdHJ5IGFn YWluIGlmIHRoZSBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCAqLwogCQlpZiAoKHN0YXR1cyA9 PSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB8fApAQCAtMjg0OCw2ICsyOTAxLDggQEAgaWN1X2xh bmd1YWdlX3RhZyhjb25zdCBjaGFyICpsb2Nfc3RyLCBpbnQgZWxldmVsKQogCQlicmVhazsKIAl9 CiAKKwlwZnJlZShmaXhlZF9sb2Nfc3RyKTsKKwogCWlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKIAl7 CiAJCXBmcmVlKGxhbmd0YWcpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMg Yi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwppbmRleCBmMDgyNzE1NGNkLi4xMzA0YTIzNWNlIDEw MDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9p bml0ZGIuYwpAQCAtMjI0MCw2ICsyMjQwLDYxIEBAIGNoZWNrX2ljdV9sb2NhbGVfZW5jb2Rpbmco aW50IHVzZXJfZW5jKQogCXJldHVybiB0cnVlOwogfQogCisjaWZkZWYgVVNFX0lDVQorCitzdGF0 aWMgY29uc3QgY2hhciAqaWN1X3ZhcmlhbnRfbWFwW11bMl0gPSB7CisJeyAiQEVVUk8iLCAgICJA Y3VycmVuY3k9RVVSIiB9LAorCXsgIkBQSU5ZSU4iLCAiQGNvbGxhdGlvbj1waW55aW4iIH0sCisJ eyAiQFNUUk9LRSIsICJAY29sbGF0aW9uPXN0cm9rZSIgfSwKK307CisKKy8qCisgKiBJQ1UgdmVy c2lvbiA2NCByZW1vdmVkIHRoZSBhYmlsaXR5IHRvIHRyYW5zZm9ybSBsb2NhbGUgc3RyaW5ncyBv ZiB0aGUgZm9ybQorICogJy4uLkBWQVJJQU5UJyBpbnRvIHByb3BlciBsYW5ndWFnZSB0YWdzLiBQ ZXJmb3JtIHRoZSB0cmFuc2Zvcm1hdGlvbiBmcm9tCisgKiB3aXRoaW4gUG9zdGdyZXMgc28gdGhh dCBJQ1Ugc3VwcG9ydHMgYW55IGxpYmMgbG9jYWxlIG5hbWUgY29uc2lzdGVudGx5LAorICogcmVn YXJkbGVzcyBvZiB0aGUgSUNVIHZlcnNpb24uCisgKi8KK3N0YXRpYyBjaGFyICoKK2ljdV9maXhf dmFyaWFudHMoY29uc3QgY2hhciAqbG9jX3N0cikKK3sKKwljb25zdCBjaGFyICpvbGRfdmFyaWFu dCA9IHN0cnJjaHIobG9jX3N0ciwgJ0AnKTsKKworCS8qCisJICogRXh0cmFjdCBhIHZhcmlhbnQg b2YgdGhlIGZvcm0gJy4uLkBWQVJJQU5UJywgYW5kIHJlcGxhY2Ugd2l0aAorCSAqIHRoZSBhcHBy b3ByaWF0ZSAnLi4uQGtleXdvcmQ9dmFsdWUnIGlmIGZvdW5kIGluIHRoZSBtYXAuCisJICovCisJ aWYgKG9sZF92YXJpYW50KQorCXsKKwkJc2l6ZV90IHByZWZpeF9sZW4gPSBvbGRfdmFyaWFudCAt IGxvY19zdHI7IC8qIGJ5dGVzIGJlZm9yZSB0aGUgJ0AnICovCisKKwkJZm9yIChpbnQgaSA9IDA7 IGkgPCBsZW5ndGhvZihpY3VfdmFyaWFudF9tYXApOyBpKyspCisJCXsKKwkJCWNvbnN0IGNoYXIg Km1hcF92YXJpYW50ID0gaWN1X3ZhcmlhbnRfbWFwW2ldWzBdOworCQkJY29uc3QgY2hhciAqbWFw X3JlcGxhY2VtZW50ID0gaWN1X3ZhcmlhbnRfbWFwW2ldWzFdOworCisJCQlpZiAocGdfc3RyY2Fz ZWNtcChvbGRfdmFyaWFudCwgbWFwX3ZhcmlhbnQpID09IDApCisJCQl7CisJCQkJc2l6ZV90CSBy ZXBsYWNlbWVudF9sZW4gPSBzdHJsZW4obWFwX3JlcGxhY2VtZW50KTsKKwkJCQlzaXplX3QJIHJl c3VsdF9sZW47CisJCQkJY2hhcgkqcmVzdWx0OworCisJCQkJcmVzdWx0X2xlbiA9IHByZWZpeF9s ZW4gKyByZXBsYWNlbWVudF9sZW4gKyAxOworCQkJCXJlc3VsdCA9IHBnX21hbGxvYyhyZXN1bHRf bGVuKTsKKworCQkJCW1lbWNweShyZXN1bHQsIGxvY19zdHIsIHByZWZpeF9sZW4pOworCQkJCW1l bWNweShyZXN1bHQgKyBwcmVmaXhfbGVuLCBtYXBfcmVwbGFjZW1lbnQsIHJlcGxhY2VtZW50X2xl bik7CisJCQkJcmVzdWx0W3ByZWZpeF9sZW4gKyByZXBsYWNlbWVudF9sZW5dID0gJ1wwJzsKKwor CQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gcGdfc3RyZHVwKGxv Y19zdHIpOworfQorCisjZW5kaWYKKwogLyoKICAqIENvbnZlcnQgdG8gY2Fub25pY2FsIEJDUDQ3 IGxhbmd1YWdlIHRhZy4gTXVzdCBiZSBjb25zaXN0ZW50IHdpdGgKICAqIGljdV9sYW5ndWFnZV90 YWcoKS4KQEAgLTIyNDksNiArMjMwNCw3IEBAIGljdV9sYW5ndWFnZV90YWcoY29uc3QgY2hhciAq bG9jX3N0cikKIHsKICNpZmRlZiBVU0VfSUNVCiAJVUVycm9yQ29kZQkgc3RhdHVzOworCWNoYXIJ CSpmaXhlZF9sb2Nfc3RyID0gaWN1X2ZpeF92YXJpYW50cyhsb2Nfc3RyKTsKIAljaGFyCQkgbGFu Z1tVTE9DX0xBTkdfQ0FQQUNJVFldOwogCWNoYXIJCSpsYW5ndGFnOwogCXNpemVfdAkJIGJ1Zmxl biA9IDMyOwkvKiBhcmJpdHJhcnkgc3RhcnRpbmcgYnVmZmVyIHNpemUgKi8KQEAgLTIyNzcsNyAr MjMzMyw4IEBAIGljdV9sYW5ndWFnZV90YWcoY29uc3QgY2hhciAqbG9jX3N0cikKIAl3aGlsZSAo dHJ1ZSkKIAl7CiAJCXN0YXR1cyA9IFVfWkVST19FUlJPUjsKLQkJdWxvY190b0xhbmd1YWdlVGFn KGxvY19zdHIsIGxhbmd0YWcsIGJ1Zmxlbiwgc3RyaWN0LCAmc3RhdHVzKTsKKworCQl1bG9jX3Rv TGFuZ3VhZ2VUYWcoZml4ZWRfbG9jX3N0ciwgbGFuZ3RhZywgYnVmbGVuLCBzdHJpY3QsICZzdGF0 dXMpOwogCiAJCS8qIHRyeSBhZ2FpbiBpZiB0aGUgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gg Ki8KIAkJaWYgKHN0YXR1cyA9PSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB8fApAQCAtMjI5MSw2 ICsyMzQ4LDggQEAgaWN1X2xhbmd1YWdlX3RhZyhjb25zdCBjaGFyICpsb2Nfc3RyKQogCQlicmVh azsKIAl9CiAKKwlwZ19mcmVlKGZpeGVkX2xvY19zdHIpOworCiAJaWYgKFVfRkFJTFVSRShzdGF0 dXMpKQogCXsKIAkJcGdfZnJlZShsYW5ndGFnKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CmluZGV4IGVhOTZlMjdmNDUuLjY5MmU4Y2RmMTggMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dApAQCAt MTA3MSwxMiArMTA3MSwyMyBAQCBFUlJPUjogIElDVSBsb2NhbGUgIm5vbnNlbnNlLW5vd2hlcmUi IGhhcyB1bmtub3duIGxhbmd1YWdlICJub25zZW5zZSIKIEhJTlQ6ICBUbyBkaXNhYmxlIElDVSBs b2NhbGUgdmFsaWRhdGlvbiwgc2V0IHBhcmFtZXRlciBpY3VfdmFsaWRhdGlvbl9sZXZlbCB0byBE SVNBQkxFRC4KIENSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUg PSAnQGNvbFN0cmVuZ3RoPXByaW1hcnk7bm9uc2Vuc2U9eWVzJyk7IC0tIGZhaWxzCiBFUlJPUjog IGNvdWxkIG5vdCBjb252ZXJ0IGxvY2FsZSBuYW1lICJAY29sU3RyZW5ndGg9cHJpbWFyeTtub25z ZW5zZT15ZXMiIHRvIGxhbmd1YWdlIHRhZzogVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SCitDUkVB VEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0BBU0RGJyk7IC0t IGZhaWxzCitFUlJPUjogIGNvdWxkIG5vdCBjb252ZXJ0IGxvY2FsZSBuYW1lICJAQVNERiIgdG8g bGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJHVU1FTlRfRVJST1IKIFJFU0VUIGljdV92YWxpZGF0 aW9uX2xldmVsOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2Fs ZSA9ICdAY29sU3RyZW5ndGg9cHJpbWFyeTtub25zZW5zZT15ZXMnKTsgRFJPUCBDT0xMQVRJT04g dGVzdHg7CiBXQVJOSU5HOiAgY291bGQgbm90IGNvbnZlcnQgbG9jYWxlIG5hbWUgIkBjb2xTdHJl bmd0aD1wcmltYXJ5O25vbnNlbnNlPXllcyIgdG8gbGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJH VU1FTlRfRVJST1IKIENSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2Nh bGUgPSAnbm9uc2Vuc2Utbm93aGVyZScpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKIFdBUk5JTkc6 ICBJQ1UgbG9jYWxlICJub25zZW5zZS1ub3doZXJlIiBoYXMgdW5rbm93biBsYW5ndWFnZSAibm9u c2Vuc2UiCiBISU5UOiAgVG8gZGlzYWJsZSBJQ1UgbG9jYWxlIHZhbGlkYXRpb24sIHNldCBwYXJh bWV0ZXIgaWN1X3ZhbGlkYXRpb25fbGV2ZWwgdG8gRElTQUJMRUQuCitDUkVBVEUgQ09MTEFUSU9O IHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0BBU0RGJyk7IERST1AgQ09MTEFUSU9O IHRlc3R4OworV0FSTklORzogIGNvdWxkIG5vdCBjb252ZXJ0IGxvY2FsZSBuYW1lICJAQVNERiIg dG8gbGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJHVU1FTlRfRVJST1IKKy0tIHRlc3Qgc3BlY2lh bCB2YXJpYW50cworQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2Fs ZSA9ICdARVVSTycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKK05PVElDRTogIHVzaW5nIHN0YW5k YXJkIGZvcm0gInVuZC11LWN1LWV1ciIgZm9yIElDVSBsb2NhbGUgIkBFVVJPIgorQ1JFQVRFIENP TExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAcGlueWluJyk7IERST1Ag Q09MTEFUSU9OIHRlc3R4OworTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUtY28t cGlueWluIiBmb3IgSUNVIGxvY2FsZSAiQHBpbnlpbiIKK0NSRUFURSBDT0xMQVRJT04gdGVzdHgg KHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQHN0cm9rZScpOyBEUk9QIENPTExBVElPTiB0ZXN0 eDsKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWNvLXN0cm9rZSIgZm9yIElD VSBsb2NhbGUgIkBzdHJva2UiCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q0IEZST00gbm9uc2Vuc2U7 CiBFUlJPUjogIGNvbGxhdGlvbiAibm9uc2Vuc2UiIGZvciBlbmNvZGluZyAiVVRGOCIgZG9lcyBu b3QgZXhpc3QKIENSRUFURSBDT0xMQVRJT04gdGVzdDUgRlJPTSB0ZXN0MDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKaW5kZXggZWU2MDdjYTNhNS4uMGI5MGUyYTVi OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKQEAgLTM5NSw5 ICszOTUsMTYgQEAgQ1JFQVRFIENPTExBVElPTiB0ZXN0MyAocHJvdmlkZXIgPSBpY3UsIGxjX2Nv bGxhdGUgPSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWUKIFNFVCBpY3VfdmFsaWRhdGlvbl9s ZXZlbCA9IEVSUk9SOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxv Y2FsZSA9ICdub25zZW5zZS1ub3doZXJlJyk7IC0tIGZhaWxzCiBDUkVBVEUgQ09MTEFUSU9OIHRl c3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0aD1wcmltYXJ5O25vbnNl bnNlPXllcycpOyAtLSBmYWlscworQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBp Y3UsIGxvY2FsZSA9ICdAQVNERicpOyAtLSBmYWlscwogUkVTRVQgaWN1X3ZhbGlkYXRpb25fbGV2 ZWw7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bj b2xTdHJlbmd0aD1wcmltYXJ5O25vbnNlbnNlPXllcycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsK IENSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnbm9uc2Vu c2Utbm93aGVyZScpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKK0NSRUFURSBDT0xMQVRJT04gdGVz dHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQEFTREYnKTsgRFJPUCBDT0xMQVRJT04gdGVz dHg7CisKKy0tIHRlc3Qgc3BlY2lhbCB2YXJpYW50cworQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAo cHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdARVVSTycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsK K0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQHBpbnlp bicpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3Zp ZGVyID0gaWN1LCBsb2NhbGUgPSAnQHN0cm9rZScpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKIAog Q1JFQVRFIENPTExBVElPTiB0ZXN0NCBGUk9NIG5vbnNlbnNlOwogQ1JFQVRFIENPTExBVElPTiB0 ZXN0NSBGUk9NIHRlc3QwOwotLSAKMi4zNC4xCgo= --=-4HiYp7zcmkBoGIgoh6K1--