Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uoDAD-000Ltn-Pc for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Aug 2025 03:37:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uoDAC-005RdM-9B for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Aug 2025 03:37:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uoDAB-005RdE-J5 for pgsql-hackers@lists.postgresql.org; Tue, 19 Aug 2025 03:37:32 +0000 Received: from mail-vk1-xa2e.google.com ([2607:f8b0:4864:20::a2e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uoDA7-000a3f-1F for pgsql-hackers@lists.postgresql.org; Tue, 19 Aug 2025 03:37:31 +0000 Received: by mail-vk1-xa2e.google.com with SMTP id 71dfb90a1353d-53b17534eeeso1747131e0c.3 for ; Mon, 18 Aug 2025 20:37:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1755574646; x=1756179446; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Hq1FMcZ5Me8fF0PxjDYqI67AbIdC7wHZ4AaXaB/AAT4=; b=Md3plHhG2NR8ZgD/FQjkDrm176kHsCq0+FBoz5fmmAITRceUHg/Dtk89PKlk43nHJC 1qu9zmBXc5JlzcqKouyVeRXGudhBjTfcY/SiIKLEjgu+W/DTZVYc1yKCO6NfcE2WCRcO aR0SQlGqmPMVfsGqkVt6rp1nuW7KzYvvo0jOvwbSd5V84/YaPF/szwSWLbybJr2v8RWC L5ORcdmaDR2prsQ7RXoZs7U0kazoXsEihUZkZqVP32EJzaYyKmxBEpj4u7FQIT8kgrPq U6cdGy83ttwUAt6XycVxUObBskJVKrvrh1zaMeudp0ydF0Xndi2ThtR6DM4eCC82JPTJ sFSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755574646; x=1756179446; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Hq1FMcZ5Me8fF0PxjDYqI67AbIdC7wHZ4AaXaB/AAT4=; b=noc8GXIGkFMS2DLDuZPLaiMdBsWc0JBL9qFDi1zU1vNvhqiDZNEGmUqOyQd9mAvkiL pJEih+C7Db2ZA2UB3Tlebl0UUrOjDjLbX8k67pMBDI2vQWZDn4PGQ/jfr9fDT1kp8ERM 7y6rj8fJQ9GjEpSkrEfc9bfVZ7gNI8SO7MmgjfqB6OjF334xrRmv9FD7BhEYE/DHGsVv Iblexr2wLgPPz1VM/olPrWicUzeKPq2APeALKsmjhpCv30xVebkZIsZcuVeKLWxqmudm 2KC4Fy7nV9+RFNdnhveTcVdn7+4C2PAAb/YbKNf3fy5hfaov9XWzpNKwwCy3aFes49Ip sT0g== X-Forwarded-Encrypted: i=1; AJvYcCWbqAXdnCE46EyGh4kcBdLMo8OWtD808ieiHXsWh761lHrbZ0VZDThlBePKpwgU+rqUwqWqcOkTEtA/B1WO@lists.postgresql.org X-Gm-Message-State: AOJu0YylLRnUvZPpILmyICQ7MRPthvAuOQapShFrtKF38xLly3YCfwEz tlqbp6ZpQ1l6WNKyU6y03PlBmoiexR/2+kRajLphSiq//3KYgthYYHYMj7xe1Qao/VpqZlT6ZnU oyn9NSrAyjmZHv8cdDDj+nFG7b3lnQRA= X-Gm-Gg: ASbGncsvMCaA7kUKx/KFqY8m0RtWHbe0XlZJuOvcW2uDJMPAQf3Shq/DmYj8+yKJwJ6 3LA80S5kmUp4h11A1R6a2tmU+SLzbLeNd86uz9gkk6MJ4Zx/tKwOU6nCBEMgHXcww/oRBlf+8r2 WuBgT1xTXD0R90uCNTPIauSwvcwusLbpKhEtsy0UW20Dp07diXXVS7j0UnTrXfGlmXF5W4EVNBz MS+PsRHOtu4oqPthZ6i01h0jd4IzKt3PKWd4dUf17c9Y90= X-Google-Smtp-Source: AGHT+IFrPzCViDcFQSEG0ePApcpmaLPgSpkdYAjdA/RPrpK0WPmNwgUZLuiHGNISPjsTFc1uB3mgGZPOHqq4kPb9TBk= X-Received: by 2002:a05:6122:7c7:b0:537:45c4:be44 with SMTP id 71dfb90a1353d-53b5d3584d9mr375665e0c.12.1755574645740; Mon, 18 Aug 2025 20:37:25 -0700 (PDT) MIME-Version: 1.0 References: <1898722.1732732780@sss.pgh.pa.us> <2007224.1732773174@sss.pgh.pa.us> <1075425.1732993688@sss.pgh.pa.us> <345c20e5-a6d7-477a-9598-982661bb5740@eisentraut.org> <1990479.1733256458@sss.pgh.pa.us> <499425.1733936916@sss.pgh.pa.us> In-Reply-To: <499425.1733936916@sss.pgh.pa.us> From: jian he Date: Tue, 19 Aug 2025 11:36:49 +0800 X-Gm-Features: Ac12FXwL-kb-fIeL1mbXKJ0Hcct6E0eDaVWOJEm98Qcasw8TGrCSCMNYchgx-T4 Message-ID: Subject: Re: CREATE SCHEMA ... CREATE DOMAIN support To: Tom Lane Cc: Kirill Reshke , Peter Eisentraut , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000023083e063caf93d2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000023083e063caf93d2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Dec 12, 2024 at 1:08=E2=80=AFAM Tom Lane wrote: > > The problem is not too awful right now, because of the very limited > set of object types that CREATE SCHEMA supports. The only case > I can think of offhand is a table referencing a view's rowtype, > for example > > create schema s1 > create view v1 as select ... > create table t1 (compositecol v1, ...); > > Since transformCreateSchemaStmtElements re-orders views after > tables, this'll fail, and there is no way to fix that except > by giving up use of the elements-in-CREATE-SCHEMA feature. > Admittedly it's a strange usage, and probably no one has tried it. > > However, once we start adding in data types and functions, > the hazard grows substantially, because there are more usage > patterns and they can't all be satisfied by a simple object-type > ordering. For example, domains are already enough to cause > trouble, because we allow domains over composites: > > create schema s1 > create table t1 (...) > create domain d1 as t1 check(...); > > Re-ordering domains before tables would break this case, but > the other order has other problems. Looking a bit further > down the road, how would you handle creation of a base type > within CREATE SCHEMA? > > create schema s1 > create type myscalar > create function myscalar_in(cstring) returns myscalar ... > create function myscalar_out(myscalar) returns cstring ... > create type myscalar (input =3D myscalar_in, ...); > > This cannot possibly work if an object-type-based re-ordering > is done to it. > > So IMV, we have three possibilities: > > 1. CREATE SCHEMA's schema-element feature remains forevermore > a sad joke that (a) doesn't cover nearly enough to be useful and > (b) doesn't come close to doing what the spec says it should. > > 2. We invest an enormous amount of engineering effort on trying > to extract dependencies from not-yet-analyzed parse trees, after > which we invest a bunch more effort figuring out heuristics for > ordering the subcommands in the face of circular dependencies. > (Some of that could be stolen from pg_dump, but not all: pg_dump > only has to resolve a limited set of cases.) > > 3. We bypass the need for #2 by decreeing that we'll execute > the subcommands in order. > > > >> PS: if we were really excited about allowing circular FKs to be > >> made within CREATE SCHEMA, a possible though non-standard answer > >> would be to allow ALTER TABLE ADD CONSTRAINT as a . > > > That's a nice feature to have by itself? > > Not unless we abandon the idea of subcommand reordering, because > where are you going to put the ALTER TABLE subcommands? > hi. move this forward with option #3 (executing the subcommands in order). pg_dump don't use CREATE SCHEMA ...CREATE ... so if we error out CREATE SCHEMA regress_schema_2 CREATE VIEW abcd_view AS SELECT a FROM abcd CREATE TABLE abcd (a int); it won't be a big compatibility issue? Also this thread doesn=E2=80=99t show strong support for sorting the subcom= mands. the full in 11.1 is: 11.1 ::=3D | | | | | | | | | | | | | | | so I also add support for CREATE SCHEMA CREATE COLLATION. v6-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-SCHEMA.patch v6-0002-CREATE-SCHEMA-CREATE-DOMAIN.patch v6-0003-CREATE-SCHEMA-CREATE-COLLATION.patch v6-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-SCHEMA.patch is refactor/rebase based on v1-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-S.patch v6-0002-CREATE-SCHEMA-CREATE-DOMAIN.patch for CREATE SCHEMA ... CREATE-DOMAIN v6-0003-CREATE-SCHEMA-CREATE-COLLATION.patch for CREATE SCHEMA ... CREATE-COLLATION --00000000000023083e063caf93d2 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0002-CREATE-SCHEMA-CREATE-DOMAIN.patch" Content-Disposition: attachment; filename="v6-0002-CREATE-SCHEMA-CREATE-DOMAIN.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mehzr3830 RnJvbSAxNjJjYTBlNzEyYTNiYmUxNjE5MzI3NTEwNGU3YzUyNzM5NjMzNTAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTggQXVnIDIwMjUgMTY6Mjg6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDIvM10gQ1JFQVRFIFNDSEVNQSBDUkVBVEUgRE9NQUlOCgpTUUwgc3RhbmRhcmQgYWxsb3cgZG9t YWluIHRvIGJlIHNwZWNpZmllZCB3aXRoIENSRUFURSBTQ0hFTUEKc3RhdGVtZW50LiBUaGlzIHBh dGNoIGFkZHMgc3VwcG9ydCBpbiBQb3N0Z3JlU1FMIGZvciB0aGF0LgoKRm9yIGV4YW1wbGU6CiAg ICBDUkVBVEUgU0NIRU1BIHNjaGVtYV9uYW1lIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCiAg ICBjcmVhdGUgZG9tYWluIHNzIGFzIHRleHQgbm90IG51bGw7CgpUaGUgZG9tYWluIHdpbGwgYmUg Y3JlYXRlZCB3aXRoaW4gdGhlIHRvIGJlIGNyZWF0ZWQgc2NoZW1hLgpUaGUgZG9tYWluIG5hbWUg Y2FuIGJlIHNjaGVtYS1xdWFsaWZpZWQgb3IgZGF0YWJhc2UtcXVhbGlmaWVkLApob3dldmVyIGl0 J3Mgbm90IGFsbG93ZWQgdG8gbGV0IGRvbWFpbiBjcmVhdGUgd2l0aGluIGEgZGlmZmVyZW50IHNj aGVtYS4KCkF1dGhvcjogS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KQXV0 aG9yOiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBB bHZhcm8gSGVycmVyYSA8YWx2aGVycmVAYWx2aC5uby1pcC5vcmc+ClJldmlld2VkLWJ5OiBUb20g TGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+CgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBTGRTU1BoNGpVU0RzV3UzSzU4aGpPNjB3blRSUjBEdU80Q0tSY3dhOEVWdU9TZlh4Z0BtYWls LmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sICAgICAg ICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAg ICAgfCAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAg fCAyNSArKysrKysrKysKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8IDEyICsrLS0KIC4uLi9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dCAgICAgICAgICAg ICAgICB8ICA0ICstCiAuLi4vdGVzdF9kZGxfZGVwYXJzZS9zcWwvY3JlYXRlX3NjaGVtYS5zcWwg ICAgfCAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dCAg IHwgNTYgKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Nj aGVtYS5zcWwgICAgICAgIHwgMzUgKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDEzMCBp bnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5z Z21sCmluZGV4IDYyNTc5M2E2YjY3Li43OTE4NmQyYjkzNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf c2NoZW1hLnNnbWwKQEAgLTEwMCw4ICsxMDAsOCBAQCBDUkVBVEUgU0NIRU1BIElGIE5PVCBFWElT VFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcAog ICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAgICAgICBBbiBTUUwgc3RhdGVtZW50 IGRlZmluaW5nIGFuIG9iamVjdCB0byBiZSBjcmVhdGVkIHdpdGhpbiB0aGUKLSAgICAgICAgc2No ZW1hLiBDdXJyZW50bHksIG9ubHkgPGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRBQkxFPC9jb21t YW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFZJRVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKKyAg ICAgICAgc2NoZW1hLiBDdXJyZW50bHksIG9ubHkgPGNvbW1hbmQ+Q1JFQVRFIERPTUFJTjwvY29t bWFuZD4KKyAgICAgICAgPGNvbW1hbmQ+Q1JFQVRFIFRBQkxFPC9jb21tYW5kPiwgPGNvbW1hbmQ+ Q1JFQVRFIFZJRVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAgSU5ERVg8L2Nv bW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgU0VRVUVOQ0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVB VEUKICAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkdSQU5UPC9jb21tYW5k PiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcwogICAgICAgICB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRF IFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpp bmRleCBkYjQzMDM0YjlkYi4uM2FjYTUwOGIwOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTYyNiw2ICsx NjI2LDcgQEAgc2NoZW1hX3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3Rt dAogCQkJfCBWaWV3U3RtdAorCQkJfCBDcmVhdGVEb21haW5TdG10CiAJCTsKIAogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCA3NDY3MmE0NThkNS4uMjE4ZWM2ZjA5ODIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtNDE0Niw2ICs0MTQ2LDMxIEBAIHRyYW5zZm9y bUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnNjaGVt YUVsdHMsCiAJCQkJZWxlbWVudHMgPSBsYXBwZW5kKGVsZW1lbnRzLCBlbGVtZW50KTsKIAkJCQli cmVhazsKIAorCQkJY2FzZSBUX0NyZWF0ZURvbWFpblN0bXQ6CisJCQkJeworCQkJCQljaGFyCSAg ICpkb21haW5fc2NoZW1hID0gTlVMTDsKKwkJCQkJQ3JlYXRlRG9tYWluU3RtdCAqZWxwID0gKENy ZWF0ZURvbWFpblN0bXQgKikgZWxlbWVudDsKKworCQkJCQkvKgorCQkJCQkgKiBUaGUgc2NoZW1h IG9mIHRoZSBET01BSU4gbXVzdCBtYXRjaCB0aGUgc2NoZW1hIGJlaW5nIGNyZWF0ZWQuCisJCQkJ CSAqIElmIHRoZSBkb21haW4gbmFtZSBsZW5ndGggZXhjZWVkcyAzLCBpdCB3aWxsIGZhaWwgaW4K KwkJCQkJICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lLgorCQkJCQkqLworCQkJCQlpZiAobGlz dF9sZW5ndGgoZWxwLT5kb21haW5uYW1lKSA9PSAyKQorCQkJCQkJZG9tYWluX3NjaGVtYSA9IHN0 clZhbChsaXN0X250aChlbHAtPmRvbWFpbm5hbWUsIDApKTsKKwkJCQkJZWxzZSBpZiAobGlzdF9s ZW5ndGgoZWxwLT5kb21haW5uYW1lKSA9PSAzKQorCQkJCQkJZG9tYWluX3NjaGVtYSA9IHN0clZh bChsaXN0X250aChlbHAtPmRvbWFpbm5hbWUsIDEpKTsKKworCQkJCQlpZiAoZG9tYWluX3NjaGVt YSAhPSBOVUxMICYmIHN0cmNtcChkb21haW5fc2NoZW1hLCBzY2hlbWFOYW1lKSAhPSAwKQorCQkJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfU0NIRU1B X0RFRklOSVRJT04pLAorCQkJCQkJCQllcnJtc2coIkNSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEg KCVzKSAiCisJCQkJCQkJCQkgICAiZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVhdGVk ICglcykiLAorCQkJCQkJCQkJICAgc2NoZW1hTmFtZSwgZG9tYWluX3NjaGVtYSkpOworCQkJCQll bGVtZW50cyA9IGxhcHBlbmQoZWxlbWVudHMsIGVsZW1lbnQpOworCQkJCX0KKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTog JWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhlbGVtZW50KSk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK aW5kZXggOGIxMGYyMzEzZjMuLmQ3YThjNzY5ZTM1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBA IC0yMTc4LDcgKzIxNzgsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwK IAl7CiAJCS8qIG9ubHkgc29tZSBvYmplY3QgdHlwZXMgY2FuIGJlIGNyZWF0ZWQgYXMgcGFydCBv ZiBDUkVBVEUgU0NIRU1BICovCiAJCWlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlNDSEVNQSIp KQotCQkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAiVklFVyIsICJJTkRFWCIsICJTRVFVRU5DRSIs ICJUUklHR0VSIiwKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlZJRVciLCAiSU5ERVgiLCAi U0VRVUVOQ0UiLCAiVFJJR0dFUiIsICJET01BSU4iLAogCQkJLyogZm9yIElOREVYIGFuZCBUQUJM RS9TRVFVRU5DRSwgcmVzcGVjdGl2ZWx5ICovCiAJCQkJCQkgICJVTklRVUUiLCAiVU5MT0dHRUQi KTsKIAkJZWxzZQpAQCAtMzM5OSwxNSArMzM5OSwxNSBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiREFUQUJBU0UiLCBN YXRjaEFueSwgIlNUUkFURUdZIikpCiAJCUNPTVBMRVRFX1dJVEgoIldBTF9MT0ciLCAiRklMRV9D T1BZIik7CiAKLQkvKiBDUkVBVEUgRE9NQUlOICovCi0JZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRF IiwgIkRPTUFJTiIsIE1hdGNoQW55KSkKKwkvKiBDUkVBVEUgRE9NQUlOIC0tLSBpcyBhbGxvd2Vk IGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KKwllbHNlIGlmIChU YWlsTWF0Y2hlcygiQ1JFQVRFIiwgIkRPTUFJTiIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lU SCgiQVMiKTsKLQllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiRE9NQUlOIiwgTWF0Y2hBbnks ICJBUyIpKQorCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiRE9NQUlOIiwgTWF0Y2hB bnksICJBUyIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl9kYXRhdHlwZXMpOwotCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJET01BSU4iLCBNYXRj aEFueSwgIkFTIiwgTWF0Y2hBbnkpKQorCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAi RE9NQUlOIiwgTWF0Y2hBbnksICJBUyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ09M TEFURSIsICJERUZBVUxUIiwgIkNPTlNUUkFJTlQiLAogCQkJCQkgICJOT1QgTlVMTCIsICJOVUxM IiwgIkNIRUNLICgiKTsKLQllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiRE9NQUlOIiwgTWF0 Y2hBbnksICJDT0xMQVRFIikpCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJET01B SU4iLCBNYXRjaEFueSwgIkNPTExBVEUiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfY29sbGF0aW9ucyk7CiAKIAkvKiBDUkVBVEUgRVhURU5TSU9OICov CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvZXhwZWN0ZWQv Y3JlYXRlX3NjaGVtYS5vdXQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvZXhw ZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQKaW5kZXggOGFiNGViMDMzODUuLmQ3M2M0NzAyMDUxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvZXhwZWN0ZWQvY3Jl YXRlX3NjaGVtYS5vdXQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2RkbF9kZXBhcnNlL2V4 cGVjdGVkL2NyZWF0ZV9zY2hlbWEub3V0CkBAIC0xMyw3ICsxMyw5IEBAIENSRUFURSBTQ0hFTUEg SUYgTk9UIEVYSVNUUyBiYXo7CiBOT1RJQ0U6ICBzY2hlbWEgImJheiIgYWxyZWFkeSBleGlzdHMs IHNraXBwaW5nCiBDUkVBVEUgU0NIRU1BIGVsZW1lbnRfdGVzdAogICBDUkVBVEUgVEFCTEUgZm9v IChpZCBpbnQpCi0gIENSRUFURSBWSUVXIGJhciBBUyBTRUxFQ1QgKiBGUk9NIGZvbzsKKyAgQ1JF QVRFIFZJRVcgYmFyIEFTIFNFTEVDVCAqIEZST00gZm9vCisgIENSRUFURSBET01BSU4gZDEgQVMg SU5UOwogTk9USUNFOiAgRERMIHRlc3Q6IHR5cGUgc2ltcGxlLCB0YWcgQ1JFQVRFIFNDSEVNQQog Tk9USUNFOiAgRERMIHRlc3Q6IHR5cGUgc2ltcGxlLCB0YWcgQ1JFQVRFIFRBQkxFCiBOT1RJQ0U6 ICBEREwgdGVzdDogdHlwZSBzaW1wbGUsIHRhZyBDUkVBVEUgVklFVworTk9USUNFOiAgRERMIHRl c3Q6IHR5cGUgc2ltcGxlLCB0YWcgQ1JFQVRFIERPTUFJTgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2RkbF9kZXBhcnNlL3NxbC9jcmVhdGVfc2NoZW1hLnNxbCBiL3NyYy90ZXN0 L21vZHVsZXMvdGVzdF9kZGxfZGVwYXJzZS9zcWwvY3JlYXRlX3NjaGVtYS5zcWwKaW5kZXggZjMx NGRjMmI4NDAuLjU3YWRhNDYyMDcwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf ZGRsX2RlcGFyc2Uvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9kZGxfZGVwYXJzZS9zcWwvY3JlYXRlX3NjaGVtYS5zcWwKQEAgLTE0LDQgKzE0LDUgQEAg Q1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIGJhejsKIAogQ1JFQVRFIFNDSEVNQSBlbGVtZW50 X3Rlc3QKICAgQ1JFQVRFIFRBQkxFIGZvbyAoaWQgaW50KQotICBDUkVBVEUgVklFVyBiYXIgQVMg U0VMRUNUICogRlJPTSBmb287CisgIENSRUFURSBWSUVXIGJhciBBUyBTRUxFQ1QgKiBGUk9NIGZv bworICBDUkVBVEUgRE9NQUlOIGQxIEFTIElOVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NyZWF0ZV9zY2hlbWEub3V0CmluZGV4IDM4NTMwYzI4MmE5Li5kNjcxOGE5ZjUxOSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9zY2hlbWEub3V0CkBAIC0xMzEsNSArMTMx LDYxIEBAIENSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMSBBVVRIT1JJWkFUSU9OIENVUlJF TlRfUk9MRQogRFJPUCBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMSBDQVNDQURFOwogTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byB0YWJsZSByZWdyZXNzX3NjaGVtYV8xLnRhYgogUkVTRVQgUk9MRTsK Ky0tIENhc2VzIHdoZXJlIHRoZSBzY2hlbWEgY3JlYXRpb24gd2l0aCBkb21haW4uCistLWZhaWwu IGNhbm5vdCBDUkVBVEUgRE9NQUlOIHRvIG90aGVyIHNjaGVtYQorQ1JFQVRFIFNDSEVNQSByZWdy ZXNzX3NjaGVtYV8yIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCisgIENSRUFURSBET01BSU4g cHVibGljLnNzIEFTIFRFWFQgTk9UIE5VTEwgREVGQVVMVCAnaGVsbG8nIENPTlNUUkFJTlQgbm4g Q0hFQ0sgKFZBTFVFIDw+ICdoZWxsbycpCisgIENSRUFURSBUQUJMRSB0KGEgc3MpOworRVJST1I6 ICBDUkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hIChyZWdyZXNzX3NjaGVtYV8yKSBkaWZmZXJlbnQg ZnJvbSB0aGUgb25lIGJlaW5nIGNyZWF0ZWQgKHB1YmxpYykKKy0tZmFpbC4gY2Fubm90IENSRUFU RSBET01BSU4gdG8gb3RoZXIgc2NoZW1hCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIg QVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIERPTUFJTiBwb3N0Z3Jlcy5wdWJs aWMuc3MgQVMgVEVYVCBOT1QgTlVMTCBDT05TVFJBSU5UIG5uIENIRUNLIChWQUxVRSA8PiAnaGVs bG8nKSBERUZBVUxUICdoZWxsbycKKyAgQ1JFQVRFIFRBQkxFIHQoYSBzcyk7CitFUlJPUjogIENS RUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHJlZ3Jlc3Nfc2NoZW1hXzIpIGRpZmZlcmVudCBmcm9t IHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocHVibGljKQorLS1mYWlsLiBpbXByb3BlciBxdWFsaWZp ZWQgbmFtZQorQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8yIENSRUFURSBET01BSU4gc3Mu cG9zdGdyZXMucmVncmVzc19zY2hlbWFfMi5zcyBBUyBURVhUOworRVJST1I6ICBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogc3MucG9zdGdyZXMucmVncmVz c19zY2hlbWFfMi5zcworLS1mYWlsLiBFeGVjdXRlIHN1YmNvbW1hbmRzIGluIG9yZGVyOyB3ZSBk byBub3QgaW1wbGljaXRseSByZW9yZGVyIHRoZW0uCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2No ZW1hXzIgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIERPTUFJTiBzczEgQVMg c3MKKyAgQ1JFQVRFIERPTUFJTiBzcyBBUyBURVhUOworRVJST1I6ICB0eXBlICJzcyIgZG9lcyBu b3QgZXhpc3QKK0xJTkUgMjogICBDUkVBVEUgRE9NQUlOIHNzMSBBUyBzcworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KKy0tb2ssIHF1YWxpZmllZCBzY2hlbWEgbmFtZSBmb3IgZG9t YWluIHNob3VsZCBiZSBzYW1lIGFzIHRoZSBjcmVhdGVkIHNjaGVtYS4KK0NSRUFURSBTQ0hFTUEg cmVncmVzc19zY2hlbWFfMiBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBDUkVBVEUgRE9N QUlOIHJlZ3Jlc3Nfc2NoZW1hXzIuc3MgQVMgVEVYVCBOT1QgTlVMTCBDT05TVFJBSU5UIG5uIENI RUNLIChWQUxVRSA8PiAnaGVsbG8nKSBERUZBVUxUICdoZWxsbycgQ09MTEFURSAiQyIKKyAgQ1JF QVRFIFRBQkxFIHQoYSByZWdyZXNzX3NjaGVtYV8yLnNzKTsKK1xkRCByZWdyZXNzX3NjaGVtYV8y LioKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBk b21haW5zCisgICAgICBTY2hlbWEgICAgICB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCAgICBEZWZhdWx0ICAgIHwgICAgICAgICAgICAgQ2hlY2sgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3NjaGVtYV8yIHwgc3MgICB8IHRleHQgfCBDICAgICAgICAgfCBub3QgbnVsbCB8ICdoZWxsbyc6 OnRleHQgfCBDSEVDSyAoVkFMVUUgPD4gJ2hlbGxvJzo6dGV4dCkKKygxIHJvdykKKworLS1vaywg bm8gcXVhbGlmaWVkIHNjaGVtYSBuYW1lIGZvciBkb21haW4uCitDUkVBVEUgU0NIRU1BIHJlZ3Jl c3Nfc2NoZW1hXzMgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIERPTUFJTiBz cyBBUyBURVhUICBDT05TVFJBSU5UIG5uIENIRUNLIChWQUxVRSA8PiAnaGVsbG8nKSBOT1QgTlVM TCBERUZBVUxUICdoZWxsbycKKyAgQ1JFQVRFIERPTUFJTiBzczEgQVMgc3MKKyAgQ1JFQVRFIFZJ RVcgdGVzdCBBUyBTRUxFQ1QgJ2hlbGxvJzo6c3MgQVMgdGVzdAorICBDUkVBVEUgVEFCTEUgdChh IHNzMSk7CitcZEQgcmVncmVzc19zY2hlbWFfMy4qCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBkb21haW5zCisgICAgICBTY2hlbWEg ICAgICB8IE5hbWUgfCAgICAgICAgVHlwZSAgICAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICBEZWZhdWx0ICAgIHwgICAgICAgICAgICAgQ2hlY2sgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3NjaGVtYV8zIHwgc3MgICB8IHRleHQgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8ICdoZWxsbyc6OnRleHQgfCBDSEVDSyAoVkFMVUUgPD4gJ2hlbGxvJzo6 dGV4dCkKKyByZWdyZXNzX3NjaGVtYV8zIHwgc3MxICB8IHJlZ3Jlc3Nfc2NoZW1hXzMuc3MgfCAg ICAgICAgICAgfCAgICAgICAgICB8ICdoZWxsbyc6OnRleHQgfCAKKygyIHJvd3MpCisKK0RST1Ag U0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHR5cGUgcmVncmVz c19zY2hlbWFfMi5zcworZHJvcCBjYXNjYWRlcyB0byB0YWJsZSByZWdyZXNzX3NjaGVtYV8yLnQK K0RST1AgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzMgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2Fz Y2FkZXMgdG8gNCBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHR5cGUg cmVncmVzc19zY2hlbWFfMy5zcworZHJvcCBjYXNjYWRlcyB0byB0eXBlIHJlZ3Jlc3Nfc2NoZW1h XzMuc3MxCitkcm9wIGNhc2NhZGVzIHRvIHZpZXcgcmVncmVzc19zY2hlbWFfMy50ZXN0Citkcm9w IGNhc2NhZGVzIHRvIHRhYmxlIHJlZ3Jlc3Nfc2NoZW1hXzMudAogLS0gQ2xlYW4gdXAKIERST1Ag Uk9MRSByZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X3NjaGVtYS5zcWwKaW5kZXggYjNkYzFjZmQ3NTguLjMwMjgxNDhlOTZiIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfc2NoZW1hLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jcmVhdGVfc2NoZW1hLnNxbApAQCAtNzEsNSArNzEsNDAgQEAgQ1JFQVRFIFNDSEVN QSByZWdyZXNzX3NjaGVtYV8xIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCiBEUk9QIFNDSEVN QSByZWdyZXNzX3NjaGVtYV8xIENBU0NBREU7CiBSRVNFVCBST0xFOwogCistLSBDYXNlcyB3aGVy ZSB0aGUgc2NoZW1hIGNyZWF0aW9uIHdpdGggZG9tYWluLgorLS1mYWlsLiBjYW5ub3QgQ1JFQVRF IERPTUFJTiB0byBvdGhlciBzY2hlbWEKK0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMiBB VVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBDUkVBVEUgRE9NQUlOIHB1YmxpYy5zcyBBUyBU RVhUIE5PVCBOVUxMIERFRkFVTFQgJ2hlbGxvJyBDT05TVFJBSU5UIG5uIENIRUNLIChWQUxVRSA8 PiAnaGVsbG8nKQorICBDUkVBVEUgVEFCTEUgdChhIHNzKTsKKy0tZmFpbC4gY2Fubm90IENSRUFU RSBET01BSU4gdG8gb3RoZXIgc2NoZW1hCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIg QVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIERPTUFJTiBwb3N0Z3Jlcy5wdWJs aWMuc3MgQVMgVEVYVCBOT1QgTlVMTCBDT05TVFJBSU5UIG5uIENIRUNLIChWQUxVRSA8PiAnaGVs bG8nKSBERUZBVUxUICdoZWxsbycKKyAgQ1JFQVRFIFRBQkxFIHQoYSBzcyk7CisKKy0tZmFpbC4g aW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUKK0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMiBD UkVBVEUgRE9NQUlOIHNzLnBvc3RncmVzLnJlZ3Jlc3Nfc2NoZW1hXzIuc3MgQVMgVEVYVDsKKwor LS1mYWlsLiBFeGVjdXRlIHN1YmNvbW1hbmRzIGluIG9yZGVyOyB3ZSBkbyBub3QgaW1wbGljaXRs eSByZW9yZGVyIHRoZW0uCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIgQVVUSE9SSVpB VElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIERPTUFJTiBzczEgQVMgc3MKKyAgQ1JFQVRFIERP TUFJTiBzcyBBUyBURVhUOworCistLW9rLCBxdWFsaWZpZWQgc2NoZW1hIG5hbWUgZm9yIGRvbWFp biBzaG91bGQgYmUgc2FtZSBhcyB0aGUgY3JlYXRlZCBzY2hlbWEuCitDUkVBVEUgU0NIRU1BIHJl Z3Jlc3Nfc2NoZW1hXzIgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIERPTUFJ TiByZWdyZXNzX3NjaGVtYV8yLnNzIEFTIFRFWFQgTk9UIE5VTEwgQ09OU1RSQUlOVCBubiBDSEVD SyAoVkFMVUUgPD4gJ2hlbGxvJykgREVGQVVMVCAnaGVsbG8nIENPTExBVEUgIkMiCisgIENSRUFU RSBUQUJMRSB0KGEgcmVncmVzc19zY2hlbWFfMi5zcyk7CitcZEQgcmVncmVzc19zY2hlbWFfMi4q CisKKy0tb2ssIG5vIHF1YWxpZmllZCBzY2hlbWEgbmFtZSBmb3IgZG9tYWluLgorQ1JFQVRFIFND SEVNQSByZWdyZXNzX3NjaGVtYV8zIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCisgIENSRUFU RSBET01BSU4gc3MgQVMgVEVYVCAgQ09OU1RSQUlOVCBubiBDSEVDSyAoVkFMVUUgPD4gJ2hlbGxv JykgTk9UIE5VTEwgREVGQVVMVCAnaGVsbG8nCisgIENSRUFURSBET01BSU4gc3MxIEFTIHNzCisg IENSRUFURSBWSUVXIHRlc3QgQVMgU0VMRUNUICdoZWxsbyc6OnNzIEFTIHRlc3QKKyAgQ1JFQVRF IFRBQkxFIHQoYSBzczEpOworXGREIHJlZ3Jlc3Nfc2NoZW1hXzMuKgorCitEUk9QIFNDSEVNQSBy ZWdyZXNzX3NjaGVtYV8yIENBU0NBREU7CitEUk9QIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8zIENB U0NBREU7CisKIC0tIENsZWFuIHVwCiBEUk9QIFJPTEUgcmVncmVzc19jcmVhdGVfc2NoZW1hX3Jv bGU7Ci0tIAoyLjM0LjEKCg== --00000000000023083e063caf93d2 Content-Type: text/x-patch; charset="UTF-8"; name="v6-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-SCHEMA.patch" Content-Disposition: attachment; filename="v6-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-SCHEMA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mehzr38j2 RnJvbSAyMmJkM2Q5Mjk4NmI2NTdkMmE2YTVkZDBmOGU0ZDZjMjQ4NTc5NmIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+CkRhdGU6IFR1 ZSwgMTkgQXVnIDIwMjUgMTA6NTI6MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2IDEvM10gRG9u J3QgdHJ5IHRvIHJlLW9yZGVyIHRoZSBzdWJjb21tYW5kcyBvZiBDUkVBVEUgU0NIRU1BCk1JTUUt VmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgp0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxl bWVudHMgaGFzIGFsd2F5cyBiZWxpZXZlZCB0aGF0IGl0IGlzCnN1cHBvc2VkIHRvIHJlLW9yZGVy IHRoZSBzdWJjb21tYW5kcyBvZiBDUkVBVEUgU0NIRU1BIGludG8gYSBzYWZlCmV4ZWN1dGlvbiBv cmRlci4gIEhvd2V2ZXIsIGl0IGlzIG5vd2hlcmUgbmVhciBiZWluZyBjYXBhYmxlIG9mIGRvaW5n CnRoYXQgY29ycmVjdGx5LiAgTm9yIGlzIHRoZXJlIHJlYXNvbiB0byB0aGluayB0aGF0IGl0IGV2 ZXIgd2lsbCBiZSwKb3IgdGhhdCB0aGF0IGlzIGEgd2VsbC1kZWZpbmVkIHJlcXVpcmVtZW50LCBv ciB0aGF0IHRoZXJlJ3MgYW55IGJhc2lzCmluIHRoZSBTUUwgc3RhbmRhcmQgZm9yIGl0LiAgTW9y ZW92ZXIsIHRoZSBwcm9ibGVtIHdpbGwgZ2V0IHdvcnNlIGFzCndlIGFkZCBtb3JlIHN1YmNvbW1h bmQgdHlwZXMuICBMZXQncyBqdXN0IGRyb3AgdGhlIHdob2xlIGlkZWEgYW5kCmV4ZWN1dGUgdGhl IGNvbW1hbmRzIGluIHRoZSBvcmRlciBnaXZlbiwgd2hpY2ggc2VlbXMgbGlrZSBhIG11Y2ggbGVz cwphc3RvbmlzaG1lbnQtcHJvbmUgZGVmaW5pdGlvbiBhbnl3YXkuCgpBbG9uZyB0aGUgd2F5LCBw YXNzIGRvd24gYSBQYXJzZVN0YXRlIHNvIHRoYXQgd2UgY2FuIHByb3ZpZGUgYW4KZXJyb3IgY3Vy c29yIGZvciB0aGUgIndyb25nIHNjaGVtYSBuYW1lIiBlcnJvciwgYW5kIGZpeAp0cmFuc2Zvcm1D cmVhdGVTY2hlbWFTdG10RWxlbWVudHMgc28gdGhhdCBpdCBkb2Vzbid0IHNjcmliYmxlCm9uIHRo ZSBwYXJzZXRyZWUgcGFzc2VkIHRvIGl0LgoKTm90ZTogVGhpcyB3aWxsIGNhdXNlIGNvbXBhdGli aWxpdHkgaXNzdWUsCmZvciBleGFtcGxlOgpDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIK ICBDUkVBVEUgVklFVyBhYmNkX3ZpZXcgQVMgU0VMRUNUIGEgRlJPTSBhYmNkCiAgQ1JFQVRFIFRB QkxFIGFiY2QgKGEgaW50KTsKCldpdGggdGhlIHBhdGNoLCBpdCB3aWxsIHRocm93IGFuIGVycm9y LCB3aGVyZWFzIG9uIEhFQUQgaXQgd29u4oCZdC4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdy LmVzL20vMTA3NTQyNS4xNzMyOTkzNjg4QHNzcy5wZ2gucGEudXMKLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAgICAgICAgIHwgIDEwICstCiBzcmMvYmFja2VuZC9jb21t YW5kcy9leHRlbnNpb24uYyAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy9zY2hlbWFjbWRzLmMgICAgICAgICAgIHwgIDE1ICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3V0aWxjbWQuYyAgICAgICAgICB8IDEzNSArKysrKysrKy0tLS0tLS0tLS0tLQogc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2NoZW1hY21kcy5oICAgICAgICAgICB8ICAgNyArLQogc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX3V0aWxjbWQuaCAgICAgICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dCB8ICAzNyArKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY3JlYXRlX3ZpZXcub3V0ICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ldmVudF90cmlnZ2VyLm91dCB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9uYW1lc3BhY2Uub3V0ICAgICB8ICAgOSArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3Jl YXRlX3NjaGVtYS5zcWwgICAgICB8ICAgNSArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9uYW1lc3Bh Y2Uuc3FsICAgICAgICAgIHwgIDExICstCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCAgICAgICAgICAgIHwgICAxIC0KIDE0IGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCsp LCAxMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf c2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAppbmRleCBl ZDY5Mjk4Y2NjNi4uNjI1NzkzYTZiNjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21s CkBAIC0xOTMsMTIgKzE5MywxMCBAQCBDUkVBVEUgVklFVyBob2xseXdvb2Qud2lubmVycyBBUwog ICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBUaGUgU1FMIHN0YW5kYXJkIHNwZWNpZmllcyB0aGF0 IHRoZSBzdWJjb21tYW5kcyBpbiA8Y29tbWFuZD5DUkVBVEUKLSAgIFNDSEVNQTwvY29tbWFuZD4g Y2FuIGFwcGVhciBpbiBhbnkgb3JkZXIuICBUaGUgcHJlc2VudAotICAgPHByb2R1Y3RuYW1lPlBv c3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdAotICAgaGFuZGxl IGFsbCBjYXNlcyBvZiBmb3J3YXJkIHJlZmVyZW5jZXMgaW4gc3ViY29tbWFuZHM7IGl0IG1pZ2h0 Ci0gICBzb21ldGltZXMgYmUgbmVjZXNzYXJ5IHRvIHJlb3JkZXIgdGhlIHN1YmNvbW1hbmRzIGlu IG9yZGVyIHRvIGF2b2lkCi0gICBmb3J3YXJkIHJlZmVyZW5jZXMuCisgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4ZWN1dGVzIHRoZSBzdWJjb21tYW5kcworICAgaW4g PGNvbW1hbmQ+Q1JFQVRFIFNDSEVNQTwvY29tbWFuZD4gaW4gdGhlIG9yZGVyIGdpdmVuLiAgT3Ro ZXIKKyAgIGltcGxlbWVudGF0aW9ucyBtYXkgdHJ5IHRvIHJlYXJyYW5nZSB0aGUgc3ViY29tbWFu ZHMgaW50byBkZXBlbmRlbmN5CisgICBvcmRlciwgYnV0IHRoYXQgaXMgaGFyZCBpZiBub3QgaW1w b3NzaWJsZSB0byBkbyBjb3JyZWN0bHkuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXh0ZW5zaW9uLmMKaW5kZXggZTZmOWFiNmRmZDYuLmFkNTc4YmM3NmY3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9leHRlbnNpb24uYwpAQCAtMTc3MywxNCArMTc3MywxNyBAQCBDcmVhdGVFeHRlbnNpb25J bnRlcm5hbChjaGFyICpleHRlbnNpb25OYW1lLAogCiAJCWlmICghT2lkSXNWYWxpZChzY2hlbWFP aWQpKQogCQl7CisJCQlQYXJzZVN0YXRlICpwc3RhdGUgPSBtYWtlX3BhcnNlc3RhdGUoTlVMTCk7 CiAJCQlDcmVhdGVTY2hlbWFTdG10ICpjc3N0bXQgPSBtYWtlTm9kZShDcmVhdGVTY2hlbWFTdG10 KTsKIAorCQkJcHN0YXRlLT5wX3NvdXJjZXRleHQgPSAiKGdlbmVyYXRlZCBDUkVBVEUgU0NIRU1B IGNvbW1hbmQpIjsKKwogCQkJY3NzdG10LT5zY2hlbWFuYW1lID0gc2NoZW1hTmFtZTsKIAkJCWNz c3RtdC0+YXV0aHJvbGUgPSBOVUxMOwkvKiB3aWxsIGJlIGNyZWF0ZWQgYnkgY3VycmVudCB1c2Vy ICovCiAJCQljc3N0bXQtPnNjaGVtYUVsdHMgPSBOSUw7CiAJCQljc3N0bXQtPmlmX25vdF9leGlz dHMgPSBmYWxzZTsKLQkJCUNyZWF0ZVNjaGVtYUNvbW1hbmQoY3NzdG10LCAiKGdlbmVyYXRlZCBD UkVBVEUgU0NIRU1BIGNvbW1hbmQpIiwKLQkJCQkJCQkJLTEsIC0xKTsKKworCQkJQ3JlYXRlU2No ZW1hQ29tbWFuZChwc3RhdGUsIGNzc3RtdCwgLTEsIC0xKTsKIAogCQkJLyoKIAkJCSAqIENyZWF0 ZVNjaGVtYUNvbW1hbmQgaW5jbHVkZXMgQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQsIHNvIG5ldwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2NoZW1hY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2NoZW1hY21kcy5jCmluZGV4IDBmMDNkOTc0M2QyLi5iMzI5MzUyMTVmOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2NoZW1hY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3NjaGVtYWNtZHMuYwpAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgdm9p ZCBBbHRlclNjaGVtYU93bmVyX2ludGVybmFsKEhlYXBUdXBsZSB0dXAsIFJlbGF0aW9uIHJlbCwg T2lkIG5ld093bmVySQogICogYSBzdWJxdWVyeS4KICAqLwogT2lkCi1DcmVhdGVTY2hlbWFDb21t YW5kKENyZWF0ZVNjaGVtYVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAorQ3Jl YXRlU2NoZW1hQ29tbWFuZChQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNjaGVtYVN0bXQgKnN0 bXQsCiAJCQkJCWludCBzdG10X2xvY2F0aW9uLCBpbnQgc3RtdF9sZW4pCiB7CiAJY29uc3QgY2hh ciAqc2NoZW1hTmFtZSA9IHN0bXQtPnNjaGVtYW5hbWU7CkBAIC0xODksMTIgKzE4OSwxMyBAQCBD cmVhdGVTY2hlbWFDb21tYW5kKENyZWF0ZVNjaGVtYVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1 ZXJ5U3RyaW5nLAogCiAJLyoKIAkgKiBFeGFtaW5lIHRoZSBsaXN0IG9mIGNvbW1hbmRzIGVtYmVk ZGVkIGluIHRoZSBDUkVBVEUgU0NIRU1BIGNvbW1hbmQsIGFuZAotCSAqIHJlb3JnYW5pemUgdGhl bSBpbnRvIGEgc2VxdWVudGlhbGx5IGV4ZWN1dGFibGUgb3JkZXIgd2l0aCBubyBmb3J3YXJkCi0J ICogcmVmZXJlbmNlcy4gIE5vdGUgdGhhdCB0aGUgcmVzdWx0IGlzIHN0aWxsIGEgbGlzdCBvZiBy YXcgcGFyc2V0cmVlcyAtLS0KLQkgKiB3ZSBjYW5ub3QsIGluIGdlbmVyYWwsIHJ1biBwYXJzZSBh bmFseXNpcyBvbiBvbmUgc3RhdGVtZW50IHVudGlsIHdlCi0JICogaGF2ZSBhY3R1YWxseSBleGVj dXRlZCB0aGUgcHJpb3Igb25lcy4KKwkgKiBkbyBwcmVsaW1pbmFyeSB0cmFuc2Zvcm1hdGlvbnMg KG1vc3RseSwgdmVyaWZ5IHRoYXQgbm9uZSBhcmUgdHJ5aW5nIHRvCisJICogY3JlYXRlIG9iamVj dHMgb3V0c2lkZSB0aGUgbmV3IHNjaGVtYSkuICBOb3RlIHRoYXQgdGhlIHJlc3VsdCBpcyBzdGls bAorCSAqIGEgbGlzdCBvZiByYXcgcGFyc2V0cmVlcyAtLS0gd2UgY2Fubm90LCBpbiBnZW5lcmFs LCBydW4gcGFyc2UgYW5hbHlzaXMKKwkgKiBvbiBvbmUgc3RhdGVtZW50IHVudGlsIHdlIGhhdmUg YWN0dWFsbHkgZXhlY3V0ZWQgdGhlIHByaW9yIG9uZXMuCiAJICovCi0JcGFyc2V0cmVlX2xpc3Qg PSB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoc3RtdC0+c2NoZW1hRWx0cywKKwlw YXJzZXRyZWVfbGlzdCA9IHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhwc3RhdGUs CisJCQkJCQkJCQkJCQkJICAgc3RtdC0+c2NoZW1hRWx0cywKIAkJCQkJCQkJCQkJCQkgICBzY2hl bWFOYW1lKTsKIAogCS8qCkBAIC0yMTksNyArMjIwLDcgQEAgQ3JlYXRlU2NoZW1hQ29tbWFuZChD cmVhdGVTY2hlbWFTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAogCQkvKiBk byB0aGlzIHN0ZXAgKi8KIAkJUHJvY2Vzc1V0aWxpdHkod3JhcHBlciwKLQkJCQkJICAgcXVlcnlT dHJpbmcsCisJCQkJCSAgIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkgICBmYWxzZSwKIAkJ CQkJICAgUFJPQ0VTU19VVElMSVRZX1NVQkNPTU1BTkQsCiAJCQkJCSAgIE5VTEwsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBhZmNmNTQxNjljMy4uNzQ2NzJhNDU4ZDUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtOTUsMTggKzk1LDYgQEAgdHlwZWRlZiBzdHJ1 Y3QKIAlib29sCQlvZlR5cGU7CQkJLyogdHJ1ZSBpZiBzdGF0ZW1lbnQgY29udGFpbnMgT0YgdHlw ZW5hbWUgKi8KIH0gQ3JlYXRlU3RtdENvbnRleHQ7CiAKLS8qIFN0YXRlIHNoYXJlZCBieSB0cmFu c2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMgYW5kIGl0cyBzdWJyb3V0aW5lcyAqLwotdHlw ZWRlZiBzdHJ1Y3QKLXsKLQljb25zdCBjaGFyICpzY2hlbWFuYW1lOwkJLyogbmFtZSBvZiBzY2hl bWEgKi8KLQlMaXN0CSAgICpzZXF1ZW5jZXM7CQkvKiBDUkVBVEUgU0VRVUVOQ0UgaXRlbXMgKi8K LQlMaXN0CSAgICp0YWJsZXM7CQkJLyogQ1JFQVRFIFRBQkxFIGl0ZW1zICovCi0JTGlzdAkgICAq dmlld3M7CQkJLyogQ1JFQVRFIFZJRVcgaXRlbXMgKi8KLQlMaXN0CSAgICppbmRleGVzOwkJLyog Q1JFQVRFIElOREVYIGl0ZW1zICovCi0JTGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBDUkVBVEUgVFJJ R0dFUiBpdGVtcyAqLwotCUxpc3QJICAgKmdyYW50czsJCQkvKiBHUkFOVCBpdGVtcyAqLwotfSBD cmVhdGVTY2hlbWFTdG10Q29udGV4dDsKLQogCiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Db2x1bW5E ZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJCQkJCQkJCQkgIENvbHVtbkRlZiAq Y29sdW1uKTsKQEAgLTEzMyw3ICsxMjEsOCBAQCBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1DaGVja0Nv bnN0cmFpbnRzKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1D b25zdHJhaW50QXR0cnMoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKIAkJCQkJCQkJCSBMaXN0ICpj b25zdHJhaW50TGlzdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Db2x1bW5UeXBlKENyZWF0ZVN0 bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKTsKLXN0YXRpYyB2b2lkIHNldFNjaGVt YU5hbWUoY29uc3QgY2hhciAqY29udGV4dF9zY2hlbWEsIGNoYXIgKipzdG10X3NjaGVtYV9uYW1l KTsKK3N0YXRpYyB2b2lkIGNoZWNrU2NoZW1hTmFtZShQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0 IGNoYXIgKmNvbnRleHRfc2NoZW1hLAorCQkJCQkJCVJhbmdlVmFyICpyZWxhdGlvbik7CiBzdGF0 aWMgdm9pZCB0cmFuc2Zvcm1QYXJ0aXRpb25DbWQoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgUGFy dGl0aW9uQ21kICpjbWQpOwogc3RhdGljIExpc3QgKnRyYW5zZm9ybVBhcnRpdGlvblJhbmdlQm91 bmRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqYmxpc3QsCiAJCQkJCQkJCQkJICAgUmVsYXRp b24gcGFyZW50KTsKQEAgLTQwNzYsNTEgKzQwNjUsMzUgQEAgdHJhbnNmb3JtQ29sdW1uVHlwZShD cmVhdGVTdG10Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbikKICAqIHRyYW5zZm9ybUNy ZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyAtCiAgKgkgIGFuYWx5emVzIHRoZSBlbGVtZW50cyBvZiBh IENSRUFURSBTQ0hFTUEgc3RhdGVtZW50CiAgKgotICogU3BsaXQgdGhlIHNjaGVtYSBlbGVtZW50 IGxpc3QgZnJvbSBhIENSRUFURSBTQ0hFTUEgc3RhdGVtZW50IGludG8KLSAqIGluZGl2aWR1YWwg Y29tbWFuZHMgYW5kIHBsYWNlIHRoZW0gaW4gdGhlIHJlc3VsdCBsaXN0IGluIGFuIG9yZGVyCi0g KiBzdWNoIHRoYXQgdGhlcmUgYXJlIG5vIGZvcndhcmQgcmVmZXJlbmNlcyAoZS5nLiBHUkFOVCB0 byBhIHRhYmxlCi0gKiBjcmVhdGVkIGxhdGVyIGluIHRoZSBsaXN0KS4gTm90ZSB0aGF0IHRoZSBs b2dpYyB3ZSB1c2UgZm9yIGRldGVybWluaW5nCi0gKiBmb3J3YXJkIHJlZmVyZW5jZXMgaXMgcHJl c2VudGx5IHF1aXRlIGluY29tcGxldGUuCisgKiBUaGlzIGlzIG5vdyBzb21ld2hhdCB2ZXN0aWdp YWw6IGl0cyBvbmx5IHJlYWwgcmVzcG9uc2liaWxpdHkgaXMgdG8gY29tcGxhaW4KKyAqIGlmIGFu eSBvZiB0aGUgZWxlbWVudHMgYXJlIHRyeWluZyB0byBjcmVhdGUgb2JqZWN0cyBvdXRzaWRlIHRo ZSBuZXcgc2NoZW1hLgorICogV2UgdXNlZCB0byB0cnkgdG8gcmUtb3JkZXIgdGhlIGNvbW1hbmRz IGluIGEgd2F5IHRoYXQgd291bGQgd29yayBldmVuIGlmCisgKiB0aGUgdXNlci13cml0dGVuIG9y ZGVyIHdvdWxkIG5vdCwgYnV0IHRoYXQncyB0b28gaGFyZCAocGVyaGFwcyBpbXBvc3NpYmxlKQor ICogdG8gZG8gY29ycmVjdGx5IHdpdGggbm90LXlldC1wYXJzZS1hbmFseXplZCBjb21tYW5kcy4g IE5vdyB3ZSdsbCBqdXN0CisgKiBleGVjdXRlIHRoZSBlbGVtZW50cyBpbiB0aGUgb3JkZXIgZ2l2 ZW4uCiAgKgogICogInNjaGVtYU5hbWUiIGlzIHRoZSBuYW1lIG9mIHRoZSBzY2hlbWEgdGhhdCB3 aWxsIGJlIHVzZWQgZm9yIHRoZSBjcmVhdGlvbgotICogb2YgdGhlIG9iamVjdHMgbGlzdGVkLCB0 aGF0IG1heSBiZSBjb21waWxlZCBmcm9tIHRoZSBzY2hlbWEgbmFtZSBkZWZpbmVkCisgKiBvZiB0 aGUgb2JqZWN0cyBsaXN0ZWQuICBJdCBtYXkgYmUgb2J0YWluZWQgZnJvbSB0aGUgc2NoZW1hIG5h bWUgZGVmaW5lZAogICogaW4gdGhlIHN0YXRlbWVudCBvciBhIHJvbGUgc3BlY2lmaWNhdGlvbi4K ICAqCi0gKiBTUUwgYWxzbyBhbGxvd3MgY29uc3RyYWludHMgdG8gbWFrZSBmb3J3YXJkIHJlZmVy ZW5jZXMsIHNvIHRodW1iIHRocm91Z2gKLSAqIHRoZSB0YWJsZSBjb2x1bW5zIGFuZCBtb3ZlIGZv cndhcmQgcmVmZXJlbmNlcyB0byBhIHBvc3RlcmlvciBhbHRlci10YWJsZQotICogY29tbWFuZC4K LSAqCiAgKiBUaGUgcmVzdWx0IGlzIGEgbGlzdCBvZiBwYXJzZSBub2RlcyB0aGF0IHN0aWxsIG5l ZWQgdG8gYmUgYW5hbHl6ZWQgLS0tCiAgKiBidXQgd2UgY2FuJ3QgYW5hbHl6ZSB0aGUgbGF0ZXIg Y29tbWFuZHMgdW50aWwgd2UndmUgZXhlY3V0ZWQgdGhlIGVhcmxpZXIKICAqIG9uZXMsIGJlY2F1 c2Ugb2YgcG9zc2libGUgaW50ZXItb2JqZWN0IHJlZmVyZW5jZXMuCi0gKgotICogTm90ZTogdGhp cyBicmVha3MgdGhlIHJ1bGVzIGEgbGl0dGxlIGJpdCBieSBtb2RpZnlpbmcgc2NoZW1hLW5hbWUg ZmllbGRzCi0gKiB3aXRoaW4gcGFzc2VkLWluIHN0cnVjdHMuICBIb3dldmVyLCB0aGUgdHJhbnNm b3JtYXRpb24gd291bGQgYmUgdGhlIHNhbWUKLSAqIGlmIGRvbmUgb3Zlciwgc28gaXQgc2hvdWxk IGJlIGFsbCByaWdodCB0byBzY3JpYmJsZSBvbiB0aGUgaW5wdXQgdG8gdGhpcwotICogZXh0ZW50 LgogICovCiBMaXN0ICoKLXRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpz Y2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQordHJhbnNmb3JtQ3JlYXRlU2NoZW1h U3RtdEVsZW1lbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc2NoZW1hRWx0cywKKwkJCQkJ CQkJICBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogewotCUNyZWF0ZVNjaGVtYVN0bXRDb250ZXh0 IGN4dDsKLQlMaXN0CSAgICpyZXN1bHQ7Ci0JTGlzdENlbGwgICAqZWxlbWVudHM7Ci0KLQljeHQu c2NoZW1hbmFtZSA9IHNjaGVtYU5hbWU7Ci0JY3h0LnNlcXVlbmNlcyA9IE5JTDsKLQljeHQudGFi bGVzID0gTklMOwotCWN4dC52aWV3cyA9IE5JTDsKLQljeHQuaW5kZXhlcyA9IE5JTDsKLQljeHQu dHJpZ2dlcnMgPSBOSUw7Ci0JY3h0LmdyYW50cyA9IE5JTDsKKwlMaXN0CSAgICplbGVtZW50cyA9 IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKIAogCS8qCi0JICogUnVuIHRocm91Z2ggZWFjaCBzY2hl bWEgZWxlbWVudCBpbiB0aGUgc2NoZW1hIGVsZW1lbnQgbGlzdC4gU2VwYXJhdGUKLQkgKiBzdGF0 ZW1lbnRzIGJ5IHR5cGUsIGFuZCBkbyBwcmVsaW1pbmFyeSBhbmFseXNpcy4KKwkgKiBSdW4gdGhy b3VnaCBlYWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiAgQ2hl Y2sKKwkgKiB0YXJnZXQgc2NoZW1hIG5hbWVzLCBhbmQgY29sbGVjdCB0aGUgbGlzdCBvZiBhY3Rp b25zIHRvIGJlIGRvbmUuCiAJICovCi0JZm9yZWFjaChlbGVtZW50cywgc2NoZW1hRWx0cykKKwlm b3JlYWNoKGxjLCBzY2hlbWFFbHRzKQogCXsKLQkJTm9kZQkgICAqZWxlbWVudCA9IGxmaXJzdChl bGVtZW50cyk7CisJCU5vZGUJICAgKmVsZW1lbnQgPSBsZmlyc3QobGMpOwogCiAJCXN3aXRjaCAo bm9kZVRhZyhlbGVtZW50KSkKIAkJewpAQCAtNDEyOCw4ICs0MTAxLDggQEAgdHJhbnNmb3JtQ3Jl YXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVt YU5hbWUpCiAJCQkJewogCQkJCQlDcmVhdGVTZXFTdG10ICplbHAgPSAoQ3JlYXRlU2VxU3RtdCAq KSBlbGVtZW50OwogCi0JCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5hbWUsICZlbHAtPnNl cXVlbmNlLT5zY2hlbWFuYW1lKTsKLQkJCQkJY3h0LnNlcXVlbmNlcyA9IGxhcHBlbmQoY3h0LnNl cXVlbmNlcywgZWxlbWVudCk7CisJCQkJCWNoZWNrU2NoZW1hTmFtZShwc3RhdGUsIHNjaGVtYU5h bWUsIGVscC0+c2VxdWVuY2UpOworCQkJCQllbGVtZW50cyA9IGxhcHBlbmQoZWxlbWVudHMsIGVs ZW1lbnQpOwogCQkJCX0KIAkJCQlicmVhazsKIApAQCAtNDEzNywxMiArNDExMCw4IEBAIHRyYW5z Zm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFy ICpzY2hlbWFOYW1lKQogCQkJCXsKIAkJCQkJQ3JlYXRlU3RtdCAqZWxwID0gKENyZWF0ZVN0bXQg KikgZWxlbWVudDsKIAotCQkJCQlzZXRTY2hlbWFOYW1lKGN4dC5zY2hlbWFuYW1lLCAmZWxwLT5y ZWxhdGlvbi0+c2NoZW1hbmFtZSk7Ci0KLQkJCQkJLyoKLQkJCQkJICogWFhYIHRvZG86IGRlYWwg d2l0aCBjb25zdHJhaW50cwotCQkJCQkgKi8KLQkJCQkJY3h0LnRhYmxlcyA9IGxhcHBlbmQoY3h0 LnRhYmxlcywgZWxlbWVudCk7CisJCQkJCWNoZWNrU2NoZW1hTmFtZShwc3RhdGUsIHNjaGVtYU5h bWUsIGVscC0+cmVsYXRpb24pOworCQkJCQllbGVtZW50cyA9IGxhcHBlbmQoZWxlbWVudHMsIGVs ZW1lbnQpOwogCQkJCX0KIAkJCQlicmVhazsKIApAQCAtNDE1MCwxMiArNDExOSw4IEBAIHRyYW5z Zm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFy ICpzY2hlbWFOYW1lKQogCQkJCXsKIAkJCQkJVmlld1N0bXQgICAqZWxwID0gKFZpZXdTdG10ICop IGVsZW1lbnQ7CiAKLQkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2NoZW1hbmFtZSwgJmVscC0+dmll dy0+c2NoZW1hbmFtZSk7Ci0KLQkJCQkJLyoKLQkJCQkJICogWFhYIHRvZG86IGRlYWwgd2l0aCBy ZWZlcmVuY2VzIGJldHdlZW4gdmlld3MKLQkJCQkJICovCi0JCQkJCWN4dC52aWV3cyA9IGxhcHBl bmQoY3h0LnZpZXdzLCBlbGVtZW50KTsKKwkJCQkJY2hlY2tTY2hlbWFOYW1lKHBzdGF0ZSwgc2No ZW1hTmFtZSwgZWxwLT52aWV3KTsKKwkJCQkJZWxlbWVudHMgPSBsYXBwZW5kKGVsZW1lbnRzLCBl bGVtZW50KTsKIAkJCQl9CiAJCQkJYnJlYWs7CiAKQEAgLTQxNjMsOCArNDEyOCw4IEBAIHRyYW5z Zm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFy ICpzY2hlbWFOYW1lKQogCQkJCXsKIAkJCQkJSW5kZXhTdG10ICAqZWxwID0gKEluZGV4U3RtdCAq KSBlbGVtZW50OwogCi0JCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5hbWUsICZlbHAtPnJl bGF0aW9uLT5zY2hlbWFuYW1lKTsKLQkJCQkJY3h0LmluZGV4ZXMgPSBsYXBwZW5kKGN4dC5pbmRl eGVzLCBlbGVtZW50KTsKKwkJCQkJY2hlY2tTY2hlbWFOYW1lKHBzdGF0ZSwgc2NoZW1hTmFtZSwg ZWxwLT5yZWxhdGlvbik7CisJCQkJCWVsZW1lbnRzID0gbGFwcGVuZChlbGVtZW50cywgZWxlbWVu dCk7CiAJCQkJfQogCQkJCWJyZWFrOwogCkBAIC00MTcyLDEzICs0MTM3LDEzIEBAIHRyYW5zZm9y bUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpz Y2hlbWFOYW1lKQogCQkJCXsKIAkJCQkJQ3JlYXRlVHJpZ1N0bXQgKmVscCA9IChDcmVhdGVUcmln U3RtdCAqKSBlbGVtZW50OwogCi0JCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5hbWUsICZl bHAtPnJlbGF0aW9uLT5zY2hlbWFuYW1lKTsKLQkJCQkJY3h0LnRyaWdnZXJzID0gbGFwcGVuZChj eHQudHJpZ2dlcnMsIGVsZW1lbnQpOworCQkJCQljaGVja1NjaGVtYU5hbWUocHN0YXRlLCBzY2hl bWFOYW1lLCBlbHAtPnJlbGF0aW9uKTsKKwkJCQkJZWxlbWVudHMgPSBsYXBwZW5kKGVsZW1lbnRz LCBlbGVtZW50KTsKIAkJCQl9CiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgVF9HcmFudFN0bXQ6Ci0J CQkJY3h0LmdyYW50cyA9IGxhcHBlbmQoY3h0LmdyYW50cywgZWxlbWVudCk7CisJCQkJZWxlbWVu dHMgPSBsYXBwZW5kKGVsZW1lbnRzLCBlbGVtZW50KTsKIAkJCQlicmVhazsKIAogCQkJZGVmYXVs dDoKQEAgLTQxODcsMzIgKzQxNTIsNDAgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1l bnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCX0KIAl9CiAK LQlyZXN1bHQgPSBOSUw7Ci0JcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuc2VxdWVu Y2VzKTsKLQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC50YWJsZXMpOwotCXJlc3Vs dCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnZpZXdzKTsKLQlyZXN1bHQgPSBsaXN0X2NvbmNh dChyZXN1bHQsIGN4dC5pbmRleGVzKTsKLQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4 dC50cmlnZ2Vycyk7Ci0JcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuZ3JhbnRzKTsK LQotCXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGVsZW1lbnRzOwogfQogCiAvKgotICogc2V0U2No ZW1hTmFtZQotICoJCVNldCBvciBjaGVjayBzY2hlbWEgbmFtZSBpbiBhbiBlbGVtZW50IG9mIGEg Q1JFQVRFIFNDSEVNQSBjb21tYW5kCisgKiBjaGVja1NjaGVtYU5hbWUKKyAqCQlDaGVjayBzY2hl bWEgbmFtZSBpbiBhbiBlbGVtZW50IG9mIGEgQ1JFQVRFIFNDSEVNQSBjb21tYW5kCisgKgorICog SXQncyBva2F5IGlmIHRoZSBjb21tYW5kIGRvZXNuJ3Qgc3BlY2lmeSBhIHRhcmdldCBzY2hlbWEg bmFtZSwgYmVjYXVzZQorICogQ3JlYXRlU2NoZW1hQ29tbWFuZCB3aWxsIHNldCB1cCB0aGUgZGVm YXVsdCBjcmVhdGlvbiBzY2hlbWEgdG8gYmUgdGhlCisgKiBuZXcgc2NoZW1hLiAgQnV0IGlmIGEg dGFyZ2V0IHNjaGVtYSBuYW1lIGlzIGdpdmVuLCBpdCBoYWQgYmV0dGVyIG1hdGNoLgorICogV2Ug YWxzbyBoYXZlIHRvIGNoZWNrIHRoYXQgdGhlIGNvbW1hbmQgZG9lc24ndCBzYXkgQ1JFQVRFIFRF TVAsIHNpbmNlCisgKiB0aGF0IHdvdWxkIGxpa2V3aXNlIHB1dCB0aGUgb2JqZWN0IGludG8gdGhl IHdyb25nIHNjaGVtYS4KICAqLwogc3RhdGljIHZvaWQKLXNldFNjaGVtYU5hbWUoY29uc3QgY2hh ciAqY29udGV4dF9zY2hlbWEsIGNoYXIgKipzdG10X3NjaGVtYV9uYW1lKQorY2hlY2tTY2hlbWFO YW1lKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgY2hhciAqY29udGV4dF9zY2hlbWEsCisJCQkJ UmFuZ2VWYXIgKnJlbGF0aW9uKQogewotCWlmICgqc3RtdF9zY2hlbWFfbmFtZSA9PSBOVUxMKQot CQkqc3RtdF9zY2hlbWFfbmFtZSA9IHVuY29uc3RpZnkoY2hhciAqLCBjb250ZXh0X3NjaGVtYSk7 Ci0JZWxzZSBpZiAoc3RyY21wKGNvbnRleHRfc2NoZW1hLCAqc3RtdF9zY2hlbWFfbmFtZSkgIT0g MCkKKwlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUgIT0gTlVMTCAmJgorCQlzdHJjbXAoY29udGV4 dF9zY2hlbWEsIHJlbGF0aW9uLT5zY2hlbWFuYW1lKSAhPSAwKQogCQllcmVwb3J0KEVSUk9SLAot CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9TQ0hFTUFfREVGSU5JVElPTiksCi0JCQkJIGVy cm1zZygiQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVtYSAoJXMpICIKKwkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9TQ0hFTUFfREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJDUkVBVEUgc3BlY2lm aWVzIGEgc2NoZW1hICglcykgIgogCQkJCQkJImRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcg Y3JlYXRlZCAoJXMpIiwKLQkJCQkJCSpzdG10X3NjaGVtYV9uYW1lLCBjb250ZXh0X3NjaGVtYSkp KTsKKwkJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1lLCBjb250ZXh0X3NjaGVtYSksCisJCQkJcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgcmVsYXRpb24tPmxvY2F0aW9uKSk7CisKKwlpZiAocmVs YXRpb24tPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJeworCQkvKiBz cGVsbCB0aGlzIGVycm9yIHRoZSBzYW1lIGFzIGluIFJhbmdlVmFyQWRqdXN0UmVsYXRpb25QZXJz aXN0ZW5jZSAqLworCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1RBQkxFX0RFRklOSVRJT04pLAorCQkJCWVycm1zZygiY2Fubm90IGNyZWF0ZSB0ZW1wb3Jhcnkg cmVsYXRpb24gaW4gbm9uLXRlbXBvcmFyeSBzY2hlbWEiKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCByZWxhdGlvbi0+bG9jYXRpb24pKTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CmluZGV4IDRmNDE5MWIwZWE2Li5lYzJiYmU1NTg3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTExMTEs OCArMTExMSw3IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ ICogcmVsYXRpb24gYW5kIGF0dHJpYnV0ZSBtYW5pcHVsYXRpb24KIAkJCQkgKi8KIAkJCWNhc2Ug VF9DcmVhdGVTY2hlbWFTdG10OgotCQkJCUNyZWF0ZVNjaGVtYUNvbW1hbmQoKENyZWF0ZVNjaGVt YVN0bXQgKikgcGFyc2V0cmVlLAotCQkJCQkJCQkJcXVlcnlTdHJpbmcsCisJCQkJQ3JlYXRlU2No ZW1hQ29tbWFuZChwc3RhdGUsIChDcmVhdGVTY2hlbWFTdG10ICopIHBhcnNldHJlZSwKIAkJCQkJ CQkJCXBzdG10LT5zdG10X2xvY2F0aW9uLAogCQkJCQkJCQkJcHN0bXQtPnN0bXRfbGVuKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2NoZW1hY21kcy5oIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2NoZW1hY21kcy5oCmluZGV4IDg1NTcxNzZiNjZhLi44MzUyNjViYjY3YyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2NoZW1hY21kcy5oCisrKyBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3NjaGVtYWNtZHMuaApAQCAtMTYsMTIgKzE2LDkgQEAKICNkZWZpbmUg U0NIRU1BQ01EU19ICiAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKLSNpbmNs dWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCi0KLWV4dGVybiBPaWQJQ3JlYXRlU2NoZW1hQ29tbWFu ZChDcmVhdGVTY2hlbWFTdG10ICpzdG10LAotCQkJCQkJCQljb25zdCBjaGFyICpxdWVyeVN0cmlu ZywKLQkJCQkJCQkJaW50IHN0bXRfbG9jYXRpb24sIGludCBzdG10X2xlbik7CisjaW5jbHVkZSAi cGFyc2VyL3BhcnNlX25vZGUuaCIKIAorZXh0ZXJuIE9pZAlDcmVhdGVTY2hlbWFDb21tYW5kKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2NoZW1hU3RtdCAqc3RtdCwgaW50IHN0bXRfbG9jYXRp b24sIGludCBzdG10X2xlbik7CiBleHRlcm4gT2JqZWN0QWRkcmVzcyBSZW5hbWVTY2hlbWEoY29u c3QgY2hhciAqb2xkbmFtZSwgY29uc3QgY2hhciAqbmV3bmFtZSk7CiBleHRlcm4gT2JqZWN0QWRk cmVzcyBBbHRlclNjaGVtYU93bmVyKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuZXdPd25lcklkKTsK IGV4dGVybiB2b2lkIEFsdGVyU2NoZW1hT3duZXJfb2lkKE9pZCBzY2hlbWFvaWQsIE9pZCBuZXdP d25lcklkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oCmluZGV4IDlmMmI1OGRlNzk3Li5k YTUxNDE5OGNlZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oCkBAIC0zMCw3ICszMCw4 IEBAIGV4dGVybiBDcmVhdGVTdGF0c1N0bXQgKnRyYW5zZm9ybVN0YXRzU3RtdChPaWQgcmVsaWQs IENyZWF0ZVN0YXRzU3RtdCAqc3RtdCwKIAkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpxdWVyeVN0 cmluZyk7CiBleHRlcm4gdm9pZCB0cmFuc2Zvcm1SdWxlU3RtdChSdWxlU3RtdCAqc3RtdCwgY29u c3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkJICBMaXN0ICoqYWN0aW9ucywgTm9kZSAqKndo ZXJlQ2xhdXNlKTsKLWV4dGVybiBMaXN0ICp0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVu dHMoTGlzdCAqc2NoZW1hRWx0cywKK2V4dGVybiBMaXN0ICp0cmFuc2Zvcm1DcmVhdGVTY2hlbWFT dG10RWxlbWVudHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQkgICBMaXN0ICpzY2hl bWFFbHRzLAogCQkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpzY2hlbWFOYW1lKTsKIGV4dGVybiBQ YXJ0aXRpb25Cb3VuZFNwZWMgKnRyYW5zZm9ybVBhcnRpdGlvbkJvdW5kKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUmVsYXRpb24gcGFyZW50LAogCQkJCQkJCQkJCQkJICAgUGFydGl0aW9uQm91bmRTcGVj ICpzcGVjKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Nj aGVtYS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9zY2hlbWEub3V0Cmlu ZGV4IDkzMzAyYTA3ZWZjLi4zODUzMGMyODJhOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV9zY2hlbWEub3V0CkBAIC05LDU1ICs5LDkyIEBAIENSRUFURSBST0xFIHJlZ3Jl c3NfY3JlYXRlX3NjaGVtYV9yb2xlIFNVUEVSVVNFUjsKIENSRUFURSBTQ0hFTUEgQVVUSE9SSVpB VElPTiByZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZQogICBDUkVBVEUgU0VRVUVOQ0Ugc2NoZW1h X25vdF9leGlzdGluZy5zZXE7CiBFUlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNj aGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAo cmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUpCitMSU5FIDI6ICAgQ1JFQVRFIFNFUVVFTkNFIHNj aGVtYV9ub3RfZXhpc3Rpbmcuc2VxOworICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDUkVB VEUgU0NIRU1BIEFVVEhPUklaQVRJT04gcmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUKICAgQ1JF QVRFIFRBQkxFIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChpZCBpbnQpOwogRVJST1I6ICBDUkVB VEUgc3BlY2lmaWVzIGEgc2NoZW1hIChzY2hlbWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQgZnJv bSB0aGUgb25lIGJlaW5nIGNyZWF0ZWQgKHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlKQorTElO RSAyOiAgIENSRUFURSBUQUJMRSBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYiAoaWQgaW50KTsKKyAg ICAgICAgICAgICAgICAgICAgICAgXgogQ1JFQVRFIFNDSEVNQSBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfY3JlYXRlX3NjaGVtYV9yb2xlCiAgIENSRUFURSBWSUVXIHNjaGVtYV9ub3RfZXhpc3Rpbmcu dmlldyBBUyBTRUxFQ1QgMTsKIEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVtYSAoc2No ZW1hX25vdF9leGlzdGluZykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVhdGVkIChy ZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZSkKK0xJTkUgMjogICBDUkVBVEUgVklFVyBzY2hlbWFf bm90X2V4aXN0aW5nLnZpZXcgQVMgU0VMRUNUIDE7CisgICAgICAgICAgICAgICAgICAgICAgXgog Q1JFQVRFIFNDSEVNQSBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlCiAg IENSRUFURSBJTkRFWCBPTiBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYiAoaWQpOwogRVJST1I6ICBD UkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hIChzY2hlbWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQg ZnJvbSB0aGUgb25lIGJlaW5nIGNyZWF0ZWQgKHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlKQor TElORSAyOiAgIENSRUFURSBJTkRFWCBPTiBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYiAoaWQpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDUkVBVEUgU0NIRU1BIEFVVEhPUklaQVRJT04g cmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUKICAgQ1JFQVRFIFRSSUdHRVIgc2NoZW1hX3RyaWcg QkVGT1JFIElOU0VSVCBPTiBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYgogICBFWEVDVVRFIEZVTkNU SU9OIHNjaGVtYV90cmlnLm5vX2Z1bmMoKTsKIEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNj aGVtYSAoc2NoZW1hX25vdF9leGlzdGluZykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBj cmVhdGVkIChyZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZSkKK0xJTkUgMjogICBDUkVBVEUgVFJJ R0dFUiBzY2hlbWFfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIHNjaGVtYV9ub3RfZXhpLi4uCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBB Z2Fpbiwgd2l0aCBhIHJvbGUgc3BlY2lmaWNhdGlvbiBhbmQgbm8gc2NoZW1hIG5hbWVzLgogU0VU IFJPTEUgcmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGU7CiBDUkVBVEUgU0NIRU1BIEFVVEhPUkla QVRJT04gQ1VSUkVOVF9ST0xFCiAgIENSRUFURSBTRVFVRU5DRSBzY2hlbWFfbm90X2V4aXN0aW5n LnNlcTsKIEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVtYSAoc2NoZW1hX25vdF9leGlz dGluZykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVhdGVkIChyZWdyZXNzX2NyZWF0 ZV9zY2hlbWFfcm9sZSkKK0xJTkUgMjogICBDUkVBVEUgU0VRVUVOQ0Ugc2NoZW1hX25vdF9leGlz dGluZy5zZXE7CisgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIENSRUFURSBTQ0hFTUEgQVVU SE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKICAgQ1JFQVRFIFRBQkxFIHNjaGVtYV9ub3RfZXhpc3Rp bmcudGFiIChpZCBpbnQpOwogRVJST1I6ICBDUkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hIChzY2hl bWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIGJlaW5nIGNyZWF0ZWQgKHJl Z3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlKQorTElORSAyOiAgIENSRUFURSBUQUJMRSBzY2hlbWFf bm90X2V4aXN0aW5nLnRhYiAoaWQgaW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgXgogQ1JF QVRFIFNDSEVNQSBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQogICBDUkVBVEUgVklFVyBzY2hl bWFfbm90X2V4aXN0aW5nLnZpZXcgQVMgU0VMRUNUIDE7CiBFUlJPUjogIENSRUFURSBzcGVjaWZp ZXMgYSBzY2hlbWEgKHNjaGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUg YmVpbmcgY3JlYXRlZCAocmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUpCitMSU5FIDI6ICAgQ1JF QVRFIFZJRVcgc2NoZW1hX25vdF9leGlzdGluZy52aWV3IEFTIFNFTEVDVCAxOworICAgICAgICAg ICAgICAgICAgICAgIF4KIENSRUFURSBTQ0hFTUEgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUK ICAgQ1JFQVRFIElOREVYIE9OIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChpZCk7CiBFUlJPUjog IENSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNjaGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVu dCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUp CitMSU5FIDI6ICAgQ1JFQVRFIElOREVYIE9OIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChpZCk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIENSRUFURSBTQ0hFTUEgQVVUSE9SSVpBVElP TiBDVVJSRU5UX1JPTEUKICAgQ1JFQVRFIFRSSUdHRVIgc2NoZW1hX3RyaWcgQkVGT1JFIElOU0VS VCBPTiBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYgogICBFWEVDVVRFIEZVTkNUSU9OIHNjaGVtYV90 cmlnLm5vX2Z1bmMoKTsKIEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVtYSAoc2NoZW1h X25vdF9leGlzdGluZykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVhdGVkIChyZWdy ZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZSkKK0xJTkUgMjogICBDUkVBVEUgVFJJR0dFUiBzY2hlbWFf dHJpZyBCRUZPUkUgSU5TRVJUIE9OIHNjaGVtYV9ub3RfZXhpLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBBZ2Fpbiwgd2l0aCBh IHNjaGVtYSBuYW1lIGFuZCBhIHJvbGUgc3BlY2lmaWNhdGlvbi4KIENSRUFURSBTQ0hFTUEgcmVn cmVzc19zY2hlbWFfMSBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQogICBDUkVBVEUgU0VRVUVO Q0Ugc2NoZW1hX25vdF9leGlzdGluZy5zZXE7CiBFUlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBz Y2hlbWEgKHNjaGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcg Y3JlYXRlZCAocmVncmVzc19zY2hlbWFfMSkKK0xJTkUgMjogICBDUkVBVEUgU0VRVUVOQ0Ugc2No ZW1hX25vdF9leGlzdGluZy5zZXE7CisgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIENSRUFU RSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMSBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQogICBD UkVBVEUgVEFCTEUgc2NoZW1hX25vdF9leGlzdGluZy50YWIgKGlkIGludCk7CiBFUlJPUjogIENS RUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNjaGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVudCBm cm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVzc19zY2hlbWFfMSkKK0xJTkUgMjogICBD UkVBVEUgVEFCTEUgc2NoZW1hX25vdF9leGlzdGluZy50YWIgKGlkIGludCk7CisgICAgICAgICAg ICAgICAgICAgICAgIF4KIENSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMSBBVVRIT1JJWkFU SU9OIENVUlJFTlRfUk9MRQogICBDUkVBVEUgVklFVyBzY2hlbWFfbm90X2V4aXN0aW5nLnZpZXcg QVMgU0VMRUNUIDE7CiBFUlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNjaGVtYV9u b3RfZXhpc3RpbmcpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVz c19zY2hlbWFfMSkKK0xJTkUgMjogICBDUkVBVEUgVklFVyBzY2hlbWFfbm90X2V4aXN0aW5nLnZp ZXcgQVMgU0VMRUNUIDE7CisgICAgICAgICAgICAgICAgICAgICAgXgogQ1JFQVRFIFNDSEVNQSBy ZWdyZXNzX3NjaGVtYV8xIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCiAgIENSRUFURSBJTkRF WCBPTiBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYiAoaWQpOwogRVJST1I6ICBDUkVBVEUgc3BlY2lm aWVzIGEgc2NoZW1hIChzY2hlbWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQgZnJvbSB0aGUgb25l IGJlaW5nIGNyZWF0ZWQgKHJlZ3Jlc3Nfc2NoZW1hXzEpCitMSU5FIDI6ICAgQ1JFQVRFIElOREVY IE9OIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChpZCk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIENSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMSBBVVRIT1JJWkFUSU9OIENVUlJF TlRfUk9MRQogICBDUkVBVEUgVFJJR0dFUiBzY2hlbWFfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIHNj aGVtYV9ub3RfZXhpc3RpbmcudGFiCiAgIEVYRUNVVEUgRlVOQ1RJT04gc2NoZW1hX3RyaWcubm9f ZnVuYygpOwogRVJST1I6ICBDUkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hIChzY2hlbWFfbm90X2V4 aXN0aW5nKSBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIGJlaW5nIGNyZWF0ZWQgKHJlZ3Jlc3Nfc2No ZW1hXzEpCitMSU5FIDI6ICAgQ1JFQVRFIFRSSUdHRVIgc2NoZW1hX3RyaWcgQkVGT1JFIElOU0VS VCBPTiBzY2hlbWFfbm90X2V4aS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgogUkVTRVQgUk9MRTsKKy0tZXJyb3IuIEZvcndhcmQgcmVm ZXJlbmNlIGlzIG5vdCBhbGxvd2VkLgorQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8yCisg IENSRUFURSBWSUVXIGFiY2RfdmlldyBBUyBTRUxFQ1QgYSBGUk9NIGFiY2QKKyAgQ1JFQVRFIFRB QkxFIGFiY2QgKGEgaW50KTsKK0VSUk9SOiAgcmVsYXRpb24gImFiY2QiIGRvZXMgbm90IGV4aXN0 CitMSU5FIDI6ICAgQ1JFQVRFIFZJRVcgYWJjZF92aWV3IEFTIFNFTEVDVCBhIEZST00gYWJjZAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIENh c2VzIHdoZXJlIHRoZSBzY2hlbWEgY3JlYXRpb24gc3VjY2VlZHMuCiAtLSBUaGUgc2NoZW1hIGNy ZWF0ZWQgbWF0Y2hlcyB0aGUgcm9sZSBuYW1lLgogQ1JFQVRFIFNDSEVNQSBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NyZWF0ZV92aWV3Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX3ZpZXcub3V0CmluZGV4IGY1NTE2MjRhZmIzLi5iMzA1Y2VlYTAzMyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdmlldy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdmlldy5vdXQKQEAgLTEyNiw2ICsxMjYsOCBAQCBFUlJP UjogIGNhbm5vdCBjcmVhdGUgdGVtcG9yYXJ5IHJlbGF0aW9uIGluIG5vbi10ZW1wb3Jhcnkgc2No ZW1hCiBDUkVBVEUgU0NIRU1BIHRlc3Rfdmlld19zY2hlbWEKICAgICBDUkVBVEUgVEVNUCBWSUVX IHRlc3R2aWV3IEFTIFNFTEVDVCAxOwogRVJST1I6ICBjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBy ZWxhdGlvbiBpbiBub24tdGVtcG9yYXJ5IHNjaGVtYQorTElORSAyOiAgICAgQ1JFQVRFIFRFTVAg VklFVyB0ZXN0dmlldyBBUyBTRUxFQ1QgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogLS0gam9pbnM6IGlmIGFueSBvZiB0aGUgam9pbiByZWxhdGlvbnMgYXJlIHRlbXBvcmFyeSwg dGhlIHZpZXcKIC0tIHNob3VsZCBhbHNvIGJlIHRlbXBvcmFyeQogLS0gc2hvdWxkIGJlIG5vbi10 ZW1wCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V2ZW50X3RyaWdnZXIu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ldmVudF90cmlnZ2VyLm91dAppbmRleCA3 YjIxOThlYWM2Zi4uYmFmZGU4NzA2ZmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZXZlbnRfdHJpZ2dlci5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9l dmVudF90cmlnZ2VyLm91dApAQCAtNDExLDEyICs0MTEsMTIgQEAgTk9USUNFOiAgRU5EOiBjb21t YW5kX3RhZz1DUkVBVEUgVEFCTEUgdHlwZT10YWJsZSBpZGVudGl0eT1ldnR0cmlnLm9uZQogTk9U SUNFOiAgRU5EOiBjb21tYW5kX3RhZz1DUkVBVEUgSU5ERVggdHlwZT1pbmRleCBpZGVudGl0eT1l dnR0cmlnLm9uZV9wa2V5CiBOT1RJQ0U6ICBFTkQ6IGNvbW1hbmRfdGFnPUFMVEVSIFNFUVVFTkNF IHR5cGU9c2VxdWVuY2UgaWRlbnRpdHk9ZXZ0dHJpZy5vbmVfY29sX2Ffc2VxCiBOT1RJQ0U6ICBF TkQ6IGNvbW1hbmRfdGFnPUFMVEVSIFNFUVVFTkNFIHR5cGU9c2VxdWVuY2UgaWRlbnRpdHk9ZXZ0 dHJpZy5vbmVfY29sX2Nfc2VxCitOT1RJQ0U6ICBFTkQ6IGNvbW1hbmRfdGFnPUNSRUFURSBJTkRF WCB0eXBlPWluZGV4IGlkZW50aXR5PWV2dHRyaWcub25lX2lkeAogTk9USUNFOiAgRU5EOiBjb21t YW5kX3RhZz1DUkVBVEUgVEFCTEUgdHlwZT10YWJsZSBpZGVudGl0eT1ldnR0cmlnLnR3bwogTk9U SUNFOiAgRU5EOiBjb21tYW5kX3RhZz1BTFRFUiBUQUJMRSB0eXBlPXRhYmxlIGlkZW50aXR5PWV2 dHRyaWcudHdvCiBOT1RJQ0U6ICBFTkQ6IGNvbW1hbmRfdGFnPUNSRUFURSBTRVFVRU5DRSB0eXBl PXNlcXVlbmNlIGlkZW50aXR5PWV2dHRyaWcuaWRfY29sX2Rfc2VxCiBOT1RJQ0U6ICBFTkQ6IGNv bW1hbmRfdGFnPUNSRUFURSBUQUJMRSB0eXBlPXRhYmxlIGlkZW50aXR5PWV2dHRyaWcuaWQKIE5P VElDRTogIEVORDogY29tbWFuZF90YWc9QUxURVIgU0VRVUVOQ0UgdHlwZT1zZXF1ZW5jZSBpZGVu dGl0eT1ldnR0cmlnLmlkX2NvbF9kX3NlcQotTk9USUNFOiAgRU5EOiBjb21tYW5kX3RhZz1DUkVB VEUgSU5ERVggdHlwZT1pbmRleCBpZGVudGl0eT1ldnR0cmlnLm9uZV9pZHgKIC0tIFBhcnRpdGlv bmVkIHRhYmxlcyB3aXRoIGEgcGFydGl0aW9uZWQgaW5kZXgKIENSRUFURSBUQUJMRSBldnR0cmln LnBhcnRlZCAoCiAgICAgaWQgaW50IFBSSU1BUlkgS0VZKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9uYW1lc3BhY2Uub3V0CmluZGV4IGRiYmRhNzJkMzk1Li4yZTU4MmU3ODNjMiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dApAQCAtMTAsMTMgKzEwLDE0IEBAIFNFTEVD VCBwZ19jYXRhbG9nLnNldF9jb25maWcoJ3NlYXJjaF9wYXRoJywgJyAnLCBmYWxzZSk7CiAoMSBy b3cpCiAKIENSRUFURSBTQ0hFTUEgdGVzdF9uc19zY2hlbWFfMQorICAgICAgIENSRUFURSBUQUJM RSBhYmMgKAorICAgICAgICAgICAgICBhIHNlcmlhbCwKKyAgICAgICAgICAgICAgYiBpbnQgVU5J UVVFCisgICAgICAgKQogICAgICAgIENSRUFURSBVTklRVUUgSU5ERVggYWJjX2FfaWR4IE9OIGFi YyAoYSkKICAgICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBBUwogICAgICAgICAgICAgICBTRUxF Q1QgYSsxIEFTIGEsIGIrMSBBUyBiIEZST00gYWJjCi0gICAgICAgQ1JFQVRFIFRBQkxFIGFiYyAo Ci0gICAgICAgICAgICAgIGEgc2VyaWFsLAotICAgICAgICAgICAgICBiIGludCBVTklRVUUKLSAg ICAgICApOworOwogLS0gdmVyaWZ5IHRoYXQgdGhlIGNvcnJlY3Qgc2VhcmNoX3BhdGggcmVzdG9y ZWQgb24gYWJvcnQKIFNFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWM7CiBCRUdJTjsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX3NjaGVtYS5zcWwKaW5kZXggMWI3MDY0MjQ3YTEuLmIzZGMxY2ZkNzU4 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfc2NoZW1hLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfc2NoZW1hLnNxbApAQCAtNDcsNiArNDcsMTEg QEAgQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8xIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9S T0xFCiAgIEVYRUNVVEUgRlVOQ1RJT04gc2NoZW1hX3RyaWcubm9fZnVuYygpOwogUkVTRVQgUk9M RTsKIAorLS1lcnJvci4gRm9yd2FyZCByZWZlcmVuY2UgaXMgbm90IGFsbG93ZWQuCitDUkVBVEUg U0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIKKyAgQ1JFQVRFIFZJRVcgYWJjZF92aWV3IEFTIFNFTEVD VCBhIEZST00gYWJjZAorICBDUkVBVEUgVEFCTEUgYWJjZCAoYSBpbnQpOworCiAtLSBDYXNlcyB3 aGVyZSB0aGUgc2NoZW1hIGNyZWF0aW9uIHN1Y2NlZWRzLgogLS0gVGhlIHNjaGVtYSBjcmVhdGVk IG1hdGNoZXMgdGhlIHJvbGUgbmFtZS4KIENSRUFURSBTQ0hFTUEgQVVUSE9SSVpBVElPTiByZWdy ZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv bmFtZXNwYWNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL25hbWVzcGFjZS5zcWwKaW5kZXgg MzA2Y2RjMmQ4YzYuLmE3NWQ0ZjU4MGQzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9uYW1lc3BhY2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL25hbWVzcGFjZS5zcWwK QEAgLTcsMTUgKzcsMTYgQEAKIFNFTEVDVCBwZ19jYXRhbG9nLnNldF9jb25maWcoJ3NlYXJjaF9w YXRoJywgJyAnLCBmYWxzZSk7CiAKIENSRUFURSBTQ0hFTUEgdGVzdF9uc19zY2hlbWFfMQorICAg ICAgIENSRUFURSBUQUJMRSBhYmMgKAorICAgICAgICAgICAgICBhIHNlcmlhbCwKKyAgICAgICAg ICAgICAgYiBpbnQgVU5JUVVFCisgICAgICAgKQorCiAgICAgICAgQ1JFQVRFIFVOSVFVRSBJTkRF WCBhYmNfYV9pZHggT04gYWJjIChhKQogCiAgICAgICAgQ1JFQVRFIFZJRVcgYWJjX3ZpZXcgQVMK ICAgICAgICAgICAgICAgU0VMRUNUIGErMSBBUyBhLCBiKzEgQVMgYiBGUk9NIGFiYwotCi0gICAg ICAgQ1JFQVRFIFRBQkxFIGFiYyAoCi0gICAgICAgICAgICAgIGEgc2VyaWFsLAotICAgICAgICAg ICAgICBiIGludCBVTklRVUUKLSAgICAgICApOworOwogCiAtLSB2ZXJpZnkgdGhhdCB0aGUgY29y cmVjdCBzZWFyY2hfcGF0aCByZXN0b3JlZCBvbiBhYm9ydAogU0VUIHNlYXJjaF9wYXRoIHRvIHB1 YmxpYzsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggZTZmMmU5M2IyZDYuLjZhMjBiZmE0 YjRkIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNTU4LDcgKzU1OCw2IEBAIENyZWF0 ZVJhbmdlU3RtdAogQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kCiBDcmVhdGVSb2xlU3RtdAogQ3Jl YXRlU2NoZW1hU3RtdAotQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQKIENyZWF0ZVNlcVN0bXQKIENy ZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAotLSAKMi4zNC4xCgo= --00000000000023083e063caf93d2 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0003-CREATE-SCHEMA-CREATE-COLLATION.patch" Content-Disposition: attachment; filename="v6-0003-CREATE-SCHEMA-CREATE-COLLATION.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mehzr38h1 RnJvbSA5ZmYzN2UwOTIzMzE3Y2JjZTE3MjJlYTRjMDI2MGU3MmNlMGRiOWMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTkgQXVnIDIwMjUgMTE6MzE6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDMvM10gQ1JFQVRFIFNDSEVNQSBDUkVBVEUgQ09MTEFUSU9OCgpTUUwgc3RhbmRhcmQgYWxsb3cg Y29sbGF0aW9uIHRvIGJlIHNwZWNpZmllZCB3aXRoIENSRUFURSBTQ0hFTUEKc3RhdGVtZW50LiBU aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBpbiBQb3N0Z3JlU1FMIGZvciB0aGF0LgoKRm9yIGV4YW1w bGU6CiAgICBDUkVBVEUgU0NIRU1BIHNjaGVtYV9uYW1lIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9S T0xFCiAgICBDUkVBVEUgQ09MTEFUSU9OIGNvbGxfaWN1X3VuZCBGUk9NICJ1bmQteC1pY3UiOwoK VGhlIGNvbGxhdGlvbiB3aWxsIGJlIGNyZWF0ZWQgd2l0aGluIHRoZSB0byBiZSBjcmVhdGVkIHNj aGVtYS4KVGhlIGNvbGxhdGlvbiBuYW1lIGNhbiBiZSBzY2hlbWEtcXVhbGlmaWVkIG9yIGRhdGFi YXNlLXF1YWxpZmllZCwKaG93ZXZlciBpdCdzIG5vdCBhbGxvd2VkIHRvIGxldCBjb2xsYXRpb24g Y3JlYXRlIHdpdGhpbiBhIGRpZmZlcmVudCBzY2hlbWEuCgpOb3RlOiBzcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgY2hhbmdlcyBzZWVtcyBpbmNvcnJlY3QuCgpEaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBTGRTU1BoNGpVU0RzV3UzSzU4aGpPNjB3blRSUjBEdU80Q0tSY3dh OEVWdU9TZlh4Z0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jICAgICAgICAgICB8IDE2ICsrKysrKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0 aWxjbWQuYyAgICAgICAgICAgIHwgMjMgKysrKysrKysrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgOCArLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5oICAgICAgICAgICB8ICAxICsKIC4uLi9leHBlY3RlZC9jcmVhdGVfc2NoZW1h Lm91dCAgICAgICAgICAgICAgICB8ICA0ICstCiAuLi4vdGVzdF9kZGxfZGVwYXJzZS9zcWwvY3Jl YXRlX3NjaGVtYS5zcWwgICAgfCAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfc2NoZW1hLm91dCAgIHwgNTAgKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX3NjaGVtYS5zcWwgICAgICAgIHwgMzIgKysrKysrKysrKysrCiA5IGZpbGVz IGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9vYmplY3RhZGRyZXNzLmMKaW5kZXggMDEwMmM5OTg0ZTcuLjU1YjY1ZGQwOGEzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMjYyMiw2ICsyNjIyLDIyIEBAIHJlYWRfb2Jq dHlwZV9mcm9tX3N0cmluZyhjb25zdCBjaGFyICpvYmp0eXBlKQogCXJldHVybiAtMTsJCQkJCS8q IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KIH0KIAorY29uc3QgY2hhciAqCitzdHJpbmdpZnlfb2Jq dHlwZShPYmplY3RUeXBlIG9ianR5cGUpCit7CisJaW50CQkJaTsKKworCWZvciAoaSA9IDA7IGkg PCBsZW5ndGhvZihPYmplY3RUeXBlTWFwKTsgaSsrKQorCXsKKwkJaWYgKE9iamVjdFR5cGVNYXBb aV0udG1fdHlwZSA9PSBvYmp0eXBlKQorCQkJcmV0dXJuIE9iamVjdFR5cGVNYXBbaV0udG1fbmFt ZTsKKwl9CisJZXJlcG9ydChFUlJPUiwKKwkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCisJCQllcnJtc2coInVucmVjb2duaXplZCBvYmplY3QgdHlwZSAlZCIsIG9i anR5cGUpKTsKKworCXJldHVybiBOVUxMOwkJCQkJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwor fQogLyoKICAqIEludGVyZmFjZXMgdG8gcmVmZXJlbmNlIGZpZWxkcyBvZiBPYmplY3RQcm9wZXJ0 eVR5cGUKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggM2FjYTUwOGIwOGYuLjMwYzRhNTY3NTAyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTE2MjcsNiArMTYyNyw3IEBAIHNjaGVtYV9zdG10OgogCQkJfCBHcmFudFN0 bXQKIAkJCXwgVmlld1N0bXQKIAkJCXwgQ3JlYXRlRG9tYWluU3RtdAorCQkJfCBEZWZpbmVTdG10 CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAyMThlYzZmMDk4Mi4u NWZkNmZjNjNlZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21k LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtNDE3MSw2ICs0 MTcxLDI5IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKnNjaGVtYUVsdHMsCiAJCQkJfQogCQkJCWJyZWFrOwogCisJCQljYXNlIFRf RGVmaW5lU3RtdDoKKwkJCQl7CisJCQkJCWNoYXIJICAgKmNvbGxfc2NoZW1hID0gTlVMTDsKKwkJ CQkJY2hhcgkgICAqY29sbE5hbWU7CisJCQkJCURlZmluZVN0bXQgKnN0bXQgPSAoRGVmaW5lU3Rt dCAqKSBlbGVtZW50OworCisJCQkJCWlmIChzdG10LT5raW5kICE9IE9CSkVDVF9DT0xMQVRJT04p CisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJZXJybXNnKCJDUkVBVEUgU0NIRU1BIC4uLiBDUkVBVEUg T0JKRUNUIGN1cnJlbnRseSBub3Qgc3VwcG9ydCBmb3IgJXMiLAorCQkJCQkJCQkJICAgc3RyaW5n aWZ5X29ianR5cGUoc3RtdC0+a2luZCkpKTsKKworCQkJCQlEZWNvbnN0cnVjdFF1YWxpZmllZE5h bWUoc3RtdC0+ZGVmbmFtZXMsICZjb2xsX3NjaGVtYSwgJmNvbGxOYW1lKTsKKwkJCQkJaWYgKGNv bGxfc2NoZW1hICYmIHN0cmNtcChjb2xsX3NjaGVtYSwgc2NoZW1hTmFtZSkgIT0gMCkKKwkJCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1NDSEVNQV9E RUZJTklUSU9OKSwKKwkJCQkJCQkJZXJybXNnKCJDUkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hICgl cykgIgorCQkJCQkJCQkJICAgImRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAo JXMpIiwKKwkJCQkJCQkJCSAgIHNjaGVtYU5hbWUsIGNvbGxfc2NoZW1hKSk7CisKKwkJCQkJZWxl bWVudHMgPSBsYXBwZW5kKGVsZW1lbnRzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CiAJ CQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIs CiAJCQkJCSAoaW50KSBub2RlVGFnKGVsZW1lbnQpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRl eCBkN2E4Yzc2OWUzNS4uYjZiZWI4NjhlYjIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIx NzgsNyArMjE3OCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCXsK IAkJLyogb25seSBzb21lIG9iamVjdCB0eXBlcyBjYW4gYmUgY3JlYXRlZCBhcyBwYXJ0IG9mIENS RUFURSBTQ0hFTUEgKi8KIAkJaWYgKEhlYWRNYXRjaGVzKCJDUkVBVEUiLCAiU0NIRU1BIikpCi0J CQlDT01QTEVURV9XSVRIKCJUQUJMRSIsICJWSUVXIiwgIklOREVYIiwgIlNFUVVFTkNFIiwgIlRS SUdHRVIiLCAiRE9NQUlOIiwKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlZJRVciLCAiSU5E RVgiLCAiU0VRVUVOQ0UiLCAiVFJJR0dFUiIsICJET01BSU4iLCAiQ09MTEFUSU9OIiwKIAkJCS8q IGZvciBJTkRFWCBhbmQgVEFCTEUvU0VRVUVOQ0UsIHJlc3BlY3RpdmVseSAqLwogCQkJCQkJICAi VU5JUVVFIiwgIlVOTE9HR0VEIik7CiAJCWVsc2UKQEAgLTMzNzAsMTAgKzMzNzAsMTAgQEAgbWF0 Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JF QVRFIiwgIkFDQ0VTUyIsICJNRVRIT0QiLCBNYXRjaEFueSwgIlRZUEUiLCBNYXRjaEFueSkpCiAJ CUNPTVBMRVRFX1dJVEgoIkhBTkRMRVIiKTsKIAotCS8qIENSRUFURSBDT0xMQVRJT04gKi8KLQll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MTEFUSU9OIiwgTWF0Y2hBbnkpKQorCS8qIENS RUFURSBDT0xMQVRJT04gLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVz ZSBUYWlsTWF0Y2hlcyAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiQ09MTEFU SU9OIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCIoIiwgIkZST00iKTsKLQllbHNlIGlm IChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MTEFUSU9OIiwgTWF0Y2hBbnksICJGUk9NIikpCisJZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJDT0xMQVRJT04iLCBNYXRjaEFueSwgIkZST00i KSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY29sbGF0 aW9ucyk7CiAJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkNSRUFURSIsICJDT0xMQVRJT04iLCBNYXRj aEFueSwgIigqIikpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9vYmplY3Rh ZGRyZXNzLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL29iamVjdGFkZHJlc3MuaAppbmRleCA2MzA0 MzRiNzNjZi4uMDA3MGU3NzczMWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5oCkBA IC03OSw2ICs3OSw3IEBAIGV4dGVybiBjaGFyICpnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiBleHRlcm4gY2hhciAqZ2V0T2JqZWN0RGVzY3JpcHRpb25P aWRzKE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpOwogCiBleHRlcm4gaW50CXJlYWRfb2JqdHlwZV9m cm9tX3N0cmluZyhjb25zdCBjaGFyICpvYmp0eXBlKTsKK2NvbnN0IGNoYXIgKnN0cmluZ2lmeV9v Ymp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSk7CiBleHRlcm4gY2hhciAqZ2V0T2JqZWN0VHlwZURl c2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCQkJCSAgYm9vbCBt aXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRPYmplY3RJZGVudGl0eShjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2Rl cGFyc2UvZXhwZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf ZGRsX2RlcGFyc2UvZXhwZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQKaW5kZXggZDczYzQ3MDIwNTEu LjE5ZTBhYWQzY2IwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFy c2UvZXhwZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2RkbF9kZXBhcnNlL2V4cGVjdGVkL2NyZWF0ZV9zY2hlbWEub3V0CkBAIC0xNCw4ICsxNCwxMCBA QCBOT1RJQ0U6ICBzY2hlbWEgImJheiIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nCiBDUkVBVEUg U0NIRU1BIGVsZW1lbnRfdGVzdAogICBDUkVBVEUgVEFCTEUgZm9vIChpZCBpbnQpCiAgIENSRUFU RSBWSUVXIGJhciBBUyBTRUxFQ1QgKiBGUk9NIGZvbwotICBDUkVBVEUgRE9NQUlOIGQxIEFTIElO VDsKKyAgQ1JFQVRFIERPTUFJTiBkMSBBUyBJTlQKKyAgQ1JFQVRFIENPTExBVElPTiBjb2xsX2lj dV91bmQgRlJPTSAidW5kLXgtaWN1IjsKIE5PVElDRTogIERETCB0ZXN0OiB0eXBlIHNpbXBsZSwg dGFnIENSRUFURSBTQ0hFTUEKIE5PVElDRTogIERETCB0ZXN0OiB0eXBlIHNpbXBsZSwgdGFnIENS RUFURSBUQUJMRQogTk9USUNFOiAgRERMIHRlc3Q6IHR5cGUgc2ltcGxlLCB0YWcgQ1JFQVRFIFZJ RVcKIE5PVElDRTogIERETCB0ZXN0OiB0eXBlIHNpbXBsZSwgdGFnIENSRUFURSBET01BSU4KK05P VElDRTogIERETCB0ZXN0OiB0eXBlIHNpbXBsZSwgdGFnIENSRUFURSBDT0xMQVRJT04KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxfZGVwYXJzZS9zcWwvY3JlYXRlX3NjaGVt YS5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2Uvc3FsL2NyZWF0ZV9zY2hl bWEuc3FsCmluZGV4IDU3YWRhNDYyMDcwLi5jOWE3MGEwODYyYSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2RkbF9kZXBhcnNlL3NxbC9jcmVhdGVfc2NoZW1hLnNxbAorKysgYi9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2Uvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsCkBA IC0xNSw0ICsxNSw1IEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBiYXo7CiBDUkVBVEUg U0NIRU1BIGVsZW1lbnRfdGVzdAogICBDUkVBVEUgVEFCTEUgZm9vIChpZCBpbnQpCiAgIENSRUFU RSBWSUVXIGJhciBBUyBTRUxFQ1QgKiBGUk9NIGZvbwotICBDUkVBVEUgRE9NQUlOIGQxIEFTIElO VDsKKyAgQ1JFQVRFIERPTUFJTiBkMSBBUyBJTlQKKyAgQ1JFQVRFIENPTExBVElPTiBjb2xsX2lj dV91bmQgRlJPTSAidW5kLXgtaWN1IjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0 ZV9zY2hlbWEub3V0CmluZGV4IGQ2NzE4YTlmNTE5Li4yNjY5ZGEzYjE1YSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9zY2hlbWEub3V0CkBAIC0xNzcsNiArMTc3LDQ4IEBA IENSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMyBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9M RQogIHJlZ3Jlc3Nfc2NoZW1hXzMgfCBzczEgIHwgcmVncmVzc19zY2hlbWFfMy5zcyB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgJ2hlbGxvJzo6dGV4dCB8IAogKDIgcm93cykKIAorLS0gQ2FzZXMg d2hlcmUgdGhlIHNjaGVtYSBjcmVhdGlvbiB3aXRoIGNvbGxhdGlvbnMKKy0tZmFpbC4gY2Fubm90 IENSRUFURSBET01BSU4gdG8gb3RoZXIgc2NoZW1hCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2No ZW1hXzQgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIENPTExBVElPTiBwdWJs aWMuY29sbF9pY3VfdW5kIEZST00gInVuZC14LWljdSI7CitFUlJPUjogIENSRUFURSBzcGVjaWZp ZXMgYSBzY2hlbWEgKHJlZ3Jlc3Nfc2NoZW1hXzQpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVp bmcgY3JlYXRlZCAocHVibGljKQorLS1mYWlsLiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZQorQ1JF QVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV80IEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCisg IENSRUFURSBDT0xMQVRJT04gcG9zdGdyZXMucHVibGljLmNvbGxfaWN1X3VuZCBGUk9NICJ1bmQt eC1pY3UiOworRVJST1I6ICBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVt ZW50ZWQ6IHBvc3RncmVzLnB1YmxpYy5jb2xsX2ljdV91bmQKKy0tZmFpbC4gb25seSBzdXBwb3J0 IGNvbGxhdGlvbiBvYmpiZWN0IGZvciBEZWZpbmVTdG10IG5vZGUKK0NSRUFURSBTQ0hFTUEgcmVn cmVzc19zY2hlbWFfNCBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBDUkVBVEUgQUdHUkVH QVRFIGJhbGsoaW50NCkoU0ZVTkMgPSBpbnQ0X3N1bShpbnQ4LCBpbnQ0KSxTVFlQRSA9IGludDgs IFBBUkFMTEVMID0gU0FGRSwgSU5JVENPTkQgPSAnMCcpOworRVJST1I6ICBDUkVBVEUgU0NIRU1B IC4uLiBDUkVBVEUgT0JKRUNUIGN1cnJlbnRseSBub3Qgc3VwcG9ydCBmb3IgYWdncmVnYXRlCist LWZhaWwuIEV4ZWN1dGUgc3ViY29tbWFuZHMgaW4gb3JkZXI7IHdlIGRvIG5vdCBpbXBsaWNpdGx5 IHJlb3JkZXIgdGhlbS4KK0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfNCBBVVRIT1JJWkFU SU9OIENVUlJFTlRfUk9MRQorICBDUkVBVEUgVEFCTEUgdHRzKGEgVEVYVCBDT0xMQVRFIGNvbGxf aWN1X3VuZCkKKyAgQ1JFQVRFIENPTExBVElPTiBjb2xsX2ljdV91bmQgRlJPTSAidW5kLXgtaWN1 IjsKK0VSUk9SOiAgY29sbGF0aW9uICJjb2xsX2ljdV91bmQiIGZvciBlbmNvZGluZyAiVVRGOCIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMjogICBDUkVBVEUgVEFCTEUgdHRzKGEgVEVYVCBDT0xMQVRF IGNvbGxfaWN1X3VuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLW9r LCBxdWFsaWZpZWQgc2NoZW1hIG5hbWUgZm9yIGRvbWFpbiBzaG91bGQgYmUgc2FtZSBhcyB0aGUg Y3JlYXRlZCBzY2hlbWEKK0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfNCBBVVRIT1JJWkFU SU9OIENVUlJFTlRfUk9MRQorICBDUkVBVEUgQ09MTEFUSU9OIHJlZ3Jlc3Nfc2NoZW1hXzQuY29s bF9pY3VfdW5kIEZST00gInVuZC14LWljdSIKKyAgQ1JFQVRFIFRBQkxFIHQoYSBURVhUIENPTExB VEUgcmVncmVzc19zY2hlbWFfNC5jb2xsX2ljdV91bmQpOworXGRPIHJlZ3Jlc3Nfc2NoZW1hXzQu KgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIGNvbGxh dGlvbnMKKyAgICAgIFNjaGVtYSAgICAgIHwgICAgIE5hbWUgICAgIHwgUHJvdmlkZXIgfCBDb2xs YXRlIHwgQ3R5cGUgfCBMb2NhbGUgfCBJQ1UgUnVsZXMgfCBEZXRlcm1pbmlzdGljPyAKKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3NjaGVtYV80 IHwgY29sbF9pY3VfdW5kIHwgaWN1ICAgICAgfCAgICAgICAgIHwgICAgICAgfCB1bmQgICAgfCAg ICAgICAgICAgfCB5ZXMKKygxIHJvdykKKworLS1vaywgbm8gcXVhbGlmaWVkIHNjaGVtYSBuYW1l IGZvciBjb2xsYXRpb24KK0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfNSBBVVRIT1JJWkFU SU9OIENVUlJFTlRfUk9MRQorICBDUkVBVEUgQ09MTEFUSU9OIGNvbGxfaWN1X3VuZCBGUk9NICJ1 bmQteC1pY3UiCisgIENSRUFURSBUQUJMRSB0KGEgVEVYVCBDT0xMQVRFIHJlZ3Jlc3Nfc2NoZW1h XzUuY29sbF9pY3VfdW5kKTsKK1xkTyByZWdyZXNzX3NjaGVtYV81LioKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBjb2xsYXRpb25zCisgICAgICBTY2hl bWEgICAgICB8ICAgICBOYW1lICAgICB8IFByb3ZpZGVyIHwgQ29sbGF0ZSB8IEN0eXBlIHwgTG9j YWxlIHwgSUNVIFJ1bGVzIHwgRGV0ZXJtaW5pc3RpYz8gCistLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19zY2hlbWFfNSB8IGNvbGxfaWN1X3VuZCB8 IGljdSAgICAgIHwgICAgICAgICB8ICAgICAgIHwgdW5kICAgIHwgICAgICAgICAgIHwgeWVzCiso MSByb3cpCisKIERST1AgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIgQ0FTQ0FERTsKIE5PVElDRTog IGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCiBERVRBSUw6ICBkcm9wIGNhc2NhZGVz IHRvIHR5cGUgcmVncmVzc19zY2hlbWFfMi5zcwpAQCAtMTg3LDUgKzIyOSwxMyBAQCBERVRBSUw6 ICBkcm9wIGNhc2NhZGVzIHRvIHR5cGUgcmVncmVzc19zY2hlbWFfMy5zcwogZHJvcCBjYXNjYWRl cyB0byB0eXBlIHJlZ3Jlc3Nfc2NoZW1hXzMuc3MxCiBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgcmVn cmVzc19zY2hlbWFfMy50ZXN0CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHJlZ3Jlc3Nfc2NoZW1h XzMudAorRFJPUCBTQ0hFTUEgcmVncmVzc19zY2hlbWFfNCBDQVNDQURFOworTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8g Y29sbGF0aW9uIHJlZ3Jlc3Nfc2NoZW1hXzQuY29sbF9pY3VfdW5kCitkcm9wIGNhc2NhZGVzIHRv IHRhYmxlIHJlZ3Jlc3Nfc2NoZW1hXzQudAorRFJPUCBTQ0hFTUEgcmVncmVzc19zY2hlbWFfNSBD QVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJ TDogIGRyb3AgY2FzY2FkZXMgdG8gY29sbGF0aW9uIHJlZ3Jlc3Nfc2NoZW1hXzUuY29sbF9pY3Vf dW5kCitkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHJlZ3Jlc3Nfc2NoZW1hXzUudAogLS0gQ2xlYW4g dXAKIERST1AgUk9MRSByZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY3JlYXRlX3NjaGVtYS5zcWwKaW5kZXggMzAyODE0OGU5NmIuLmU5OTkxNWRhMzgzIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfc2NoZW1hLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfc2NoZW1hLnNxbApAQCAtMTAzLDggKzEwMyw0MCBAQCBD UkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzMgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUK ICAgQ1JFQVRFIFRBQkxFIHQoYSBzczEpOwogXGREIHJlZ3Jlc3Nfc2NoZW1hXzMuKgogCistLSBD YXNlcyB3aGVyZSB0aGUgc2NoZW1hIGNyZWF0aW9uIHdpdGggY29sbGF0aW9ucworLS1mYWlsLiBj YW5ub3QgQ1JFQVRFIERPTUFJTiB0byBvdGhlciBzY2hlbWEKK0NSRUFURSBTQ0hFTUEgcmVncmVz c19zY2hlbWFfNCBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBDUkVBVEUgQ09MTEFUSU9O IHB1YmxpYy5jb2xsX2ljdV91bmQgRlJPTSAidW5kLXgtaWN1IjsKKworLS1mYWlsLiBpbXByb3Bl ciBxdWFsaWZpZWQgbmFtZQorQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV80IEFVVEhPUkla QVRJT04gQ1VSUkVOVF9ST0xFCisgIENSRUFURSBDT0xMQVRJT04gcG9zdGdyZXMucHVibGljLmNv bGxfaWN1X3VuZCBGUk9NICJ1bmQteC1pY3UiOworCistLWZhaWwuIG9ubHkgc3VwcG9ydCBjb2xs YXRpb24gb2JqYmVjdCBmb3IgRGVmaW5lU3RtdCBub2RlCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nf c2NoZW1hXzQgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIEFHR1JFR0FURSBi YWxrKGludDQpKFNGVU5DID0gaW50NF9zdW0oaW50OCwgaW50NCksU1RZUEUgPSBpbnQ4LCBQQVJB TExFTCA9IFNBRkUsIElOSVRDT05EID0gJzAnKTsKKworLS1mYWlsLiBFeGVjdXRlIHN1YmNvbW1h bmRzIGluIG9yZGVyOyB3ZSBkbyBub3QgaW1wbGljaXRseSByZW9yZGVyIHRoZW0uCitDUkVBVEUg U0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzQgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JF QVRFIFRBQkxFIHR0cyhhIFRFWFQgQ09MTEFURSBjb2xsX2ljdV91bmQpCisgIENSRUFURSBDT0xM QVRJT04gY29sbF9pY3VfdW5kIEZST00gInVuZC14LWljdSI7CisKKy0tb2ssIHF1YWxpZmllZCBz Y2hlbWEgbmFtZSBmb3IgZG9tYWluIHNob3VsZCBiZSBzYW1lIGFzIHRoZSBjcmVhdGVkIHNjaGVt YQorQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV80IEFVVEhPUklaQVRJT04gQ1VSUkVOVF9S T0xFCisgIENSRUFURSBDT0xMQVRJT04gcmVncmVzc19zY2hlbWFfNC5jb2xsX2ljdV91bmQgRlJP TSAidW5kLXgtaWN1IgorICBDUkVBVEUgVEFCTEUgdChhIFRFWFQgQ09MTEFURSByZWdyZXNzX3Nj aGVtYV80LmNvbGxfaWN1X3VuZCk7CitcZE8gcmVncmVzc19zY2hlbWFfNC4qCisKKy0tb2ssIG5v IHF1YWxpZmllZCBzY2hlbWEgbmFtZSBmb3IgY29sbGF0aW9uCitDUkVBVEUgU0NIRU1BIHJlZ3Jl c3Nfc2NoZW1hXzUgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgQ1JFQVRFIENPTExBVElP TiBjb2xsX2ljdV91bmQgRlJPTSAidW5kLXgtaWN1IgorICBDUkVBVEUgVEFCTEUgdChhIFRFWFQg Q09MTEFURSByZWdyZXNzX3NjaGVtYV81LmNvbGxfaWN1X3VuZCk7CitcZE8gcmVncmVzc19zY2hl bWFfNS4qCisKIERST1AgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIgQ0FTQ0FERTsKIERST1AgU0NI RU1BIHJlZ3Jlc3Nfc2NoZW1hXzMgQ0FTQ0FERTsKK0RST1AgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1h XzQgQ0FTQ0FERTsKK0RST1AgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzUgQ0FTQ0FERTsKIAogLS0g Q2xlYW4gdXAKIERST1AgUk9MRSByZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZTsKLS0gCjIuMzQu MQoK --00000000000023083e063caf93d2--