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 1sYtuN-00EvBb-Mi for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jul 2024 20:57:24 +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 1sYtuK-00DYml-Ms for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jul 2024 20:57:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sYtuJ-00DYj0-NB for pgsql-hackers@lists.postgresql.org; Tue, 30 Jul 2024 20:57:20 +0000 Received: from mail-yb1-xb35.google.com ([2607:f8b0:4864:20::b35]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sYttz-002JiT-LC for pgsql-hackers@lists.postgresql.org; Tue, 30 Jul 2024 20:57:18 +0000 Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-e04196b7603so3478215276.0 for ; Tue, 30 Jul 2024 13:56:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722373018; x=1722977818; 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=AHa+iixj6T3g24Ym+g05WwrlyLF/rF9Il+zimqxOSWE=; b=jH/CfAnnUIQPcmn8TyhYV94IFFNy9F/p58XL5P7QXbOzXMeFntlBnbbK+py+zhjBmS r2RLp8A3oGGylpxaHZpLENCKm0NP15SJQZ/psfnjzCQ1Yvl6hCuP/BuREuStMhLI+/jH coPQ/JVlZ3QsHEJb6bmNcmGFrxqoPFqCsbTWH9K0DWkA/ikgH9ZVVwnFrnHxWrM9APt0 j3HAiM9RaAlwEx+ITLrsNnuO81teixqqoYUJ+wzxq+WQdZIr4hUdx8w2xEOoNheNtP9s nVv9PllKJvZ/J02Oz1E3I6LEhkcWTSUCpUEmPABi1UybL+tPKU+PBZRxxJGU3nNWtn6z /FRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722373018; x=1722977818; 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=AHa+iixj6T3g24Ym+g05WwrlyLF/rF9Il+zimqxOSWE=; b=jBBpy/54wWNJE2MIzbJAKhmJ13KmhOqfxNihK//YEXsmCVNabQJIPb3Djv5EgqNf4C N2/xoFrrff8DirCc2p3DBtaPlhPBcCERhOxbsO4CFI9t+vLRVLcTbCLC/gPGXun4MEqo bDKCfe6UU0rNRjq2WnV19HR2UbA0hE9PRxT/tzKP/+5UzvXIDWMyPk7xg8YMOPyCuJaR 3N1pEhJf0DMjVxTxIgG7k4zKu5Rf/lwpq5EkoUp2NsaLY7nmXro17aRORoisItJj2XTc zxK0DUjv5num039d+BOknA5Umq3ZxECWg6buy0Xhc227U4CoxVVxA9TlDlD2Omz5T/wp 2sIg== X-Forwarded-Encrypted: i=1; AJvYcCWYfbt747zol8esAi/vwl6xdUSPmzmqMLX9YxP+HQJfPYqNVSIJfXRuQVAVrAeBFindW9scTFWxE0haf/O+lyPHny6sY9sguvCvzP4uqujJfBgW X-Gm-Message-State: AOJu0YwbwKgnRQAQr/E6MQKGqGBESngEY7GVaG/xR19PgiVsG6/QGyeO y2GQbR91RLH8SofTTZybROTpDTTbTPKkNvpl7am+KVN5glsMruR1WDNkqObE0C0zOlPaeoKU26q TfiOuMvPmC4w+8sSyQE9l2kOO89k= X-Google-Smtp-Source: AGHT+IEeW2Baqh8wMwE6uEI4dQp+/GjGkza3HHgt8cA0hBkZEzMpb3ovWcLWwmb0kbCXNDxFI4QlzGnyZAaLcu+yfHc= X-Received: by 2002:a05:6902:1105:b0:e06:3823:fa72 with SMTP id 3f1490d57ef6-e0b5440202cmr13063454276.9.1722373017631; Tue, 30 Jul 2024 13:56:57 -0700 (PDT) MIME-Version: 1.0 References: <20200924035637.GF28585@paquier.xyz> <20201001033824.GC8130@paquier.xyz> <51a9a68e8a998d04df17417d45c1dbd4@xs4all.nl> <89817942c99da01cd5e7850fe418436b@xs4all.nl> <56ca532c37eb0b540961f74a7bd5db39@xs4all.nl> <8181bd3abc647bdae5a4f78e71e62478a98c75f4.camel@cybertec.at> <9e67d49deb18270eddb95e602c83f02b98459843.camel@cybertec.at> <3b662dc5b615d4c20a55e8e2fbe6fc00fe00609d.camel@cybertec.at> In-Reply-To: From: Pavel Stehule Date: Tue, 30 Jul 2024 22:56:19 +0200 Message-ID: Subject: Re: proposal: schema variables To: Laurenz Albe Cc: Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000e342c7061e7d37f9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e342c7061e7d37f9 Content-Type: multipart/alternative; boundary="000000000000e342c6061e7d37f7" --000000000000e342c6061e7d37f7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi so 27. 7. 2024 v 16:19 odes=C3=ADlatel Laurenz Albe napsal: > I went through the v20240724-2-0001 patch and mostly changed some > documentation > and the comments. Attached is my updated version. > > Comments: > > > --- a/src/backend/catalog/namespace.c > > +++ b/src/backend/catalog/namespace.c > > [...] > > +bool > > +VariableIsVisible(Oid varid) > > [...] > > + /* > > + * Quick check: if it ain't in the path at all, it ain't visible. > Items in > > + * the system namespace are surely in the path and so we needn't > even do > > + * list_member_oid() for them. > > + */ > > + varnamespace =3D varform->varnamespace; > > + if (varnamespace !=3D PG_CATALOG_NAMESPACE && > > + !list_member_oid(activeSearchPath, varnamespace)) > > + visible =3D false; > > + else > > I cannot imagine that we'll ever have session variables in "pg_catalog". > Did you put that there as defensive coding? > No, I just used a pattern for relations. I removed the test against PG_CATALOG_NAMESPACE and wrote comment <-->/* <--> * Quick check: if it ain't in the path at all, it ain't visible. We <--> * don't expect usage of session variables in the system namespace. <--> */ > > > --- a/src/backend/catalog/namespace.c > > +++ b/src/backend/catalog/namespace.c > > [...] > > +Datum > > +pg_variable_is_visible(PG_FUNCTION_ARGS) > > That function should get documented in > functions-info.html#FUNCTIONS-INFO-SCHEMA-TABLE > I have added an entry in the attached patch. > merged > > > --- /dev/null > > +++ b/doc/src/sgml/ref/create_variable.sgml > > [...] > > + > > + > > + Inside a query or an expression, the session variable can be > shadowed by > > + column or by routine's variable or routine argument. Such > collisions of > > + identifiers can be resolved by using qualified identifiers. Sessio= n > variables > > + can use schema name, columns can use table aliases, routine > variables > > + can use block labels, and routine arguments can use the routine > name. > > + > > + > > + > > I have slightly rewritten the text and moved it to doc/src/sgml/ddl.sgml. > I felt that to be a better place for generic information about session > variable's > behavior. Also, the single paragraph in doc/src/sgml/ddl.sgml felt lonel= y. > I left the note in CREATE VARIABLE, but it is now just a link to ddl.sgml= . > merged > > > --- a/src/bin/pg_dump/pg_dump.c > > +++ b/src/bin/pg_dump/pg_dump.c > > [...] > > +void > > +getVariables(Archive *fout) > > +{ > > [...] > > + for (i =3D 0; i < ntups; i++) > > + { > > [...] > > + /* Decide whether we want to dump it */ > > + selectDumpableObject(&(varinfo[i].dobj), fout); > > + > > + /* Do not try to dump ACL if no ACL exists. */ > > + if (!PQgetisnull(res, i, i_varacl)) > > + varinfo[i].dobj.components |=3D DUMP_COMPONENT_ACL; > > + > > + if (strlen(varinfo[i].rolname) =3D=3D 0) > > + pg_log_warning("owner of variable \"%s\" appears to be > invalid", > > + varinfo[i].dobj.name); > > + > > + /* Decide whether we want to dump it */ > > + selectDumpableObject(&(varinfo[i].dobj), fout); > > + > > + vtype =3D findTypeByOid(varinfo[i].vartype); > > + addObjectDependency(&varinfo[i].dobj, vtype->dobj.dumpId); > > + } > > One of the two selectDumpableObject() calls seems redundant. > I removed the first one; I hope that's OK. > sure > > > --- a/src/bin/psql/tab-complete.c > > +++ b/src/bin/psql/tab-complete.c > > [...] > > @@ -4421,7 +4449,7 @@ psql_completion(const char *text, int start, int > end) > > > > /* PREPARE xx AS */ > > else if (Matches("PREPARE", MatchAny, "AS")) > > - COMPLETE_WITH("SELECT", "UPDATE", "INSERT INTO", "DELETE FROM")= ; > > + COMPLETE_WITH("SELECT", "UPDATE", "INSERT INTO", "DELETE FROM", > "LET"); > > I guess that belongs in the second patch, but I didn't change it. > Since the feature cannot be committed without LET, it doesn't really > matter in > which of the two patches it is. > > > --- a/src/test/regress/expected/psql.out > > +++ b/src/test/regress/expected/psql.out > > [...] > > +\dV regression|mydb.public.var > > +cross-database references are not implemented: > regression|mydb.public.var > > That's a weird test - why the pipe? Is there something I don't get? > This test is not related to pipe, but usage of invalid multipart names These tests look weird, but when you look at the psql.out file, then it is consistent with others. There is already another test for cross-database references. > > > +\dV "no.such.database"."no.such.schema"."no.such.variable" > > +cross-database references are not implemented: > "no.such.database"."no.such.schema"."no.such.variable" > > And another one. Do we need so many tests for that? > It is crash psql parser test - these tests are designed like \dt or \di > > > I hope I didn't create too many conflicts with the rest of the patch set. > > I plan to review the other patches too, but I'll go on vacations for thre= e > weeks > in a week, and fall promises to be busy. So it might be a while. > I am sending patches with merged your changes (related to first patch) Regards Pavel > > Yours, > Laurenz Albe > --000000000000e342c6061e7d37f7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

so 27. 7. 2024 v=C2=A016:19 odes=C3=ADlatel L= aurenz Albe <laurenz.albe@cy= bertec.at> napsal:
I went through the v20240724-2-0001 patch and mostly changed som= e documentation
and the comments.=C2=A0 Attached is my updated version.

Comments:

> --- a/src/backend/catalog/namespace.c
> +++ b/src/backend/catalog/namespace.c
> [...]
> +bool
> +VariableIsVisible(Oid varid)
> [...]
> +=C2=A0 =C2=A0/*
> +=C2=A0 =C2=A0 * Quick check: if it ain't in the path at all, it a= in't visible. Items in
> +=C2=A0 =C2=A0 * the system namespace are surely in the path and so we= needn't even do
> +=C2=A0 =C2=A0 * list_member_oid() for them.
> +=C2=A0 =C2=A0 */
> +=C2=A0 =C2=A0varnamespace =3D varform->varnamespace;
> +=C2=A0 =C2=A0if (varnamespace !=3D PG_CATALOG_NAMESPACE && > +=C2=A0 =C2=A0 =C2=A0 =C2=A0!list_member_oid(activeSearchPath, varname= space))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0visible =3D false;
> +=C2=A0 =C2=A0else

I cannot imagine that we'll ever have session variables in "pg_cat= alog".
Did you put that there as defensive coding?

=
No, I just used a pattern for relations. I removed the test against PG= _CATALOG_NAMESPACE and wrote comment

<-->/*<= br><--> * Quick check: if it ain't in the path at all, it ain'= ;t visible. We
<--> * don't expect usage of session variables = in the system namespace.
<--> */


=C2=A0

> --- a/src/backend/catalog/namespace.c
> +++ b/src/backend/catalog/namespace.c
> [...]
> +Datum
> +pg_variable_is_visible(PG_FUNCTION_ARGS)

That function should get documented in functions-info.html#FUNCTIONS-INFO-S= CHEMA-TABLE
I have added an entry in the attached patch.

merged
=C2=A0

> --- /dev/null
> +++ b/doc/src/sgml/ref/create_variable.sgml
> [...]
> +=C2=A0 <note>
> +=C2=A0 =C2=A0<para>
> +=C2=A0 =C2=A0 Inside a query or an expression, the session variable c= an be shadowed by
> +=C2=A0 =C2=A0 column or by routine's variable or routine argument= . Such collisions of
> +=C2=A0 =C2=A0 identifiers can be resolved by using qualified identifi= ers. Session variables
> +=C2=A0 =C2=A0 can use schema name, columns can use table aliases, rou= tine variables
> +=C2=A0 =C2=A0 can use block labels, and routine arguments can use the= routine name.
> +=C2=A0 =C2=A0</para>
> +=C2=A0 </note>
> + </refsect1>

I have slightly rewritten the text and moved it to doc/src/sgml/ddl.sgml. I felt that to be a better place for generic information about session vari= able's
behavior.=C2=A0 Also, the single paragraph in doc/src/sgml/ddl.sgml felt lo= nely.
I left the note in CREATE VARIABLE, but it is now just a link to ddl.sgml.<= br>

merged
=C2=A0

> --- a/src/bin/pg_dump/pg_dump.c
> +++ b/src/bin/pg_dump/pg_dump.c
> [...]
> +void
> +getVariables(Archive *fout)
> +{
> [...]
> +=C2=A0 =C2=A0for (i =3D 0; i < ntups; i++)
> +=C2=A0 =C2=A0{
> [...]
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Decide whether we want to dump it */ > +=C2=A0 =C2=A0 =C2=A0 =C2=A0selectDumpableObject(&(varinfo[i].dobj= ), fout);
> +
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Do not try to dump ACL if no ACL exists= . */
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0if (!PQgetisnull(res, i, i_varacl))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0varinfo[i].dobj.components |= =3D DUMP_COMPONENT_ACL;
> +
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0if (strlen(varinfo[i].rolname) =3D=3D 0) > +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pg_log_warning("owner o= f variable \"%s\" appears to be invalid",
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 varinfo[i].dobj.name);
> +
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Decide whether we want to dump it */ > +=C2=A0 =C2=A0 =C2=A0 =C2=A0selectDumpableObject(&(varinfo[i].dobj= ), fout);
> +
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0vtype =3D findTypeByOid(varinfo[i].vartype= );
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0addObjectDependency(&varinfo[i].dobj, = vtype->dobj.dumpId);
> +=C2=A0 =C2=A0}

One of the two selectDumpableObject() calls seems redundant.
I removed the first one; I hope that's OK.

sure
=C2=A0

> --- a/src/bin/psql/tab-complete.c
> +++ b/src/bin/psql/tab-complete.c
> [...]
> @@ -4421,7 +4449,7 @@ psql_completion(const char *text, int start, int= end)
>=C2=A0
>=C2=A0 /* PREPARE xx AS */
>=C2=A0 =C2=A0 =C2=A0else if (Matches("PREPARE", MatchAny, &qu= ot;AS"))
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0COMPLETE_WITH("SELECT", "UP= DATE", "INSERT INTO", "DELETE FROM");
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0COMPLETE_WITH("SELECT", "UP= DATE", "INSERT INTO", "DELETE FROM", "LET&quo= t;);

I guess that belongs in the second patch, but I didn't change it.
Since the feature cannot be committed without LET, it doesn't really ma= tter in
which of the two patches it is.

> --- a/src/test/regress/expected/psql.out
> +++ b/src/test/regress/expected/psql.out
> [...]
> +\dV regression|mydb.public.var
> +cross-database references are not implemented: regression|mydb.public= .var

That's a weird test - why the pipe?=C2=A0 Is there something I don'= t get?

This test is not related to pipe= , but usage of invalid multipart names

These tests= look weird, but when you look at the psql.out file, then it is consistent = with others.

There is already another test for cross-database references.

> +\dV "no.such.database"."no.such.schema"."no.= such.variable"
> +cross-database references are not implemented: "no.such.database= "."no.such.schema"."no.such.variable"

And another one.=C2=A0 Do we need so many tests for that?
<= div>
It is crash psql parser test - these tests are designed = like \dt or \di
=C2=A0


I hope I didn't create too many conflicts with the rest of the patch se= t.

I plan to review the other patches too, but I'll go on vacations for th= ree weeks
in a week, and fall promises to be busy.=C2=A0 So it might be a while.
<= /blockquote>

I am sending patches with merged your chang= es (related to first patch)

Regards

=
Pavel

=C2=A0

Yours,
Laurenz Albe
--000000000000e342c6061e7d37f7-- --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20240730-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwj72 RnJvbSBiNWQ1NGYyYjBiMzliOTc5MDg0ZDBmMmY2MmUzYzk1ZjkyNTgxMmVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMTc6MDY6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIwXSB0aGlzIHBhdGNoIGNoYW5nZXMgZXJyb3IgbWVzc2FnZSAiY29sdW1uIGRvZXNuJ3QgZXhp c3QiCiB0byBtZXNzYWdlICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lc24ndCBleGlzdCIKClRoZSBl cnJvciBtZXNzYWdlIHdpbGwgYmUgbW9yZSBjb3JyZWN0LiBUb2RheSwgbWlzc2luZyBQTC9wZ1NR TCB2YXJpYWJsZSBjYW4gYmUgcmVwb3J0ZWQuIFRoZSBjaGFuZ2UgaGFzCmltcGFjdCBvbiBsb3Qg b2YgcmVncmVzcyB0ZXN0cyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxl cywgYW5kIHRoZW4gaXQgaXMgZGlzdHJpYnV0ZWQgYXMgc2VwYXJhdGUgcGF0Y2gKLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjQgKysrKysrKysrKyst LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICA4ICsr Ky0tCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAgICAgICAgICAgfCAgMiAr Kwogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0IHwgIDIgKy0K IC4uLi9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgICB8ICA0ICstLQog Li4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDIgKy0KIHNy Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgICAgICAgICB8IDEyICsrKy0tLS0K IC4uLi9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgICAgIHwgMzIgKysrKysr KysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgICAgICAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCAgICAgICAg ICB8ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAg ICAgfCAxMiArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgICAgICAg ICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAg ICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAg ICAgfCAgMiArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAg IHwgIDYgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0ICAg IHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCAgICAgICAgICAg fCAgMiArLQogMjEgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYTc2NTMwN2JmZTYuLmIwYmVlYWQ2OGYw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyMSw3ICs1MjEsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIFdo ZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90 IGJlIHVzZWQsIHdlIHJhaXNlCiAgKiB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgog ICovCi1zdGF0aWMgYm9vbAorYm9vbAogZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxl cyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQogewogCWJvb2wJCXJlc3VsdCA9IGZhbHNlOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCBiZGU1YjExMThjNS4uOTNhNTg5OGM2 YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yNyw2ICsyNyw3IEBACiAj aW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Vuci5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9l eHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCkBAIC0zNjU1 LDYgKzM2NTYsMTkgQEAgZXJyb3JNaXNzaW5nUlRFKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VW YXIgKnJlbGF0aW9uKQogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCByZWxhdGlvbi0+ bG9jYXRpb24pKSk7CiB9CiAKKy8qCisgKiBzZXQgbWVzc2FnZSAiY29sdW1uIGRvZXMgbm90IGV4 aXN0IiBvciAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IgorICogaW4gZGVwZW5k ZW5jeSBpZiBleHByZXNzaW9uIGNvbnRleHQgYWxsb3dzIHNlc3Npb24gdmFyaWFibGVzLgorICov CitzdGF0aWMgaW50Citjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgY29uc3QgY2hhciAqY29sbmFtZSkKK3sKKwlpZiAoZXhwcl9raW5kX2FsbG93 c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJcmV0dXJuIGVycm1z ZygiY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpOwor CWVsc2UKKwkJcmV0dXJuIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNv bG5hbWUpOworfQorCiAvKgogICogR2VuZXJhdGUgYSBzdWl0YWJsZSBlcnJvciBhYm91dCBhIG1p c3NpbmcgY29sdW1uLgogICoKQEAgLTM2ODksNyArMzcwMyw3IEBAIGVycm9yTWlzc2luZ0NvbHVt bihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NP TFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVycm1zZygiY29sdW1uICVzLiVzIGRvZXMg bm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJCSBjb2x1bW5fb3JfdmFyaWFibGVf ZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJCSBlcnJkZXRhaWwoIlRoZXJl IGFyZSBjb2x1bW5zIG5hbWVkIFwiJXNcIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4iLAogCQkJCQkJ CSAgIGNvbG5hbWUpLAogCQkJCQkgIXJlbG5hbWUgPyBlcnJoaW50KCJUcnkgdXNpbmcgYSB0YWJs ZS1xdWFsaWZpZWQgbmFtZS4iKSA6IDAsCkBAIC0zNjk5LDcgKzM3MTMsNyBAQCBlcnJvck1pc3Np bmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJ TkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBk b2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNnKCJjb2x1bW4g XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9vcl92YXJpYWJs ZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyZGV0YWlsKCJUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCBcIiVzXCIgaW4gdGFibGUgXCIlc1wiLCBidXQgaXQgY2Fubm90 IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIsCiAJCQkJCQkgICBj b2xuYW1lLCBzdGF0ZS0+cmV4YWN0MS0+ZXJlZi0+YWxpYXNuYW1lKSwKIAkJCQkgcnRlX3Zpc2li bGVfaWZfbGF0ZXJhbChwc3RhdGUsIHN0YXRlLT5yZXhhY3QxKSA/CkBAIC0zNzE3LDE0ICszNzMx LDE0IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVy cm1zZygiY29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgot CQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJ CQkJCSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSks CiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAkJLyogSGFu ZGxlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhIHNpbmdsZSBhbHRlcm5hdGl2ZSBzcGVsbGluZyB0byBv ZmZlciAqLwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2Vz IG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9k b2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyaGludCgiUGVyaGFwcyB5 b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIsCiAJCQkJCQkgc3Rh dGUtPnJmaXJzdC0+ZXJlZi0+YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChsaXN0X250aChzdGF0 ZS0+cmZpcnN0LT5lcmVmLT5jb2xuYW1lcywKQEAgLTM3MzgsNyArMzc1Miw3IEBAIGVycm9yTWlz c2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVzLiVz IGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNvbHVt biBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3Zhcmlh YmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQZXJo YXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIgb3IgdGhlIGNv bHVtbiBcIiVzLiVzXCIuIiwKIAkJCQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVmLT5hbGlhc25hbWUs CiAJCQkJCQkgc3RyVmFsKGxpc3RfbnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYtPmNvbG5hbWVzLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IGVlNmZjZDA1MDNhLi5lN2RjYzE2YjVkYyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc2LDcgKzc3Niw5IEBAIHRyYW5zZm9y bUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAoIXR5cHJl bGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBF X01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wi IG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUg dHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMo cHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQg XCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBp cyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmll bGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBj b21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJCQkJCQkJ Zm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODUsNyArNzg3LDkgQEAgdHJhbnNmb3JtQXNzaWdu bWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChhdHRudW0gPT0gSW52 YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZp ZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1 bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5kX2FsbG93c19zZXNz aW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJCSAiY2Fubm90IGFz c2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBiZWNhdXNl IHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgorCQkJCQkJCQkgImNh bm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSB0aGVy ZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJCQlzdHJWYWwobiks IHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkpLAogCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKaW5kZXggMGQ2NGIzMDBmOGEuLmU1YWViZjk5YjRhIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKQEAgLTIzLDQgKzIzLDYgQEAgZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW4KIAogZXh0 ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQp OwogCitleHRlcm4gYm9vbCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNl RXhwcktpbmQgcF9leHByX2tpbmQpOworCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfRVhQUl9IICov CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5v dXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKaW5kZXgg YWQ2MGUwZThiZTMuLmMxYWI5ZmQ3ZWQ5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfYXJyYXkub3V0CkBAIC00MSw3ICs0MSw3IEBAIE5PVElDRTogIGEgPSB7Iigs MTEpIn0sIGFbMV0uaSA9IDExCiAtLSBwZXJoYXBzIHRoaXMgb3VnaHQgdG8gd29yaywgYnV0IGZv ciBub3cgaXQgZG9lc24ndDoKIGRvICQkIGRlY2xhcmUgYSBjb21wbGV4W107CiBiZWdpbiBhWzE6 Ml0uaSA6PSBhcnJheVsxMSwxMl07IHJhaXNlIG5vdGljZSAnYSA9ICUnLCBhOyBlbmQkJDsKLUVS Uk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uICJhIiBiZWNhdXNlIGl0 cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorRVJST1I6ICBjYW5ub3Qg YXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGJlY2F1c2UgaXRz IHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCiBMSU5FIDE6IGFbMToyXS5p IDo9IGFycmF5WzExLDEyXQogICAgICAgICBeCiBRVUVSWTogIGFbMToyXS5pIDo9IGFycmF5WzEx LDEyXQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVj b3JkLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQK aW5kZXggYTliNWI3NzhlZmMuLjA3YWJjMmU4NGQ0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUsNyBAQCBFUlJPUjog IHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1l bnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYy5j Mi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBj b2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3Ig dmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYy5jMi54 ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBoYXMgbm8gZmllbGQg IngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEgPSAxIgogUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQk IDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54ID0gMTsgZW5kICQk OwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gImIiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6 ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImIiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElO RSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIueCA9IDEKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggNzg5YzMxMjNiMGMuLmYwMDZkYjRmYWE4IDEwMDY0NAotLS0gYS9zcmMv cGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysg Yi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91 dApAQCAtMjMyLDcgKzIzMiw3IEBAIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyBy ZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCBjcmFzaAog U0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKLUVSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3ZhcjEi IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicGxwZ3NxbF9zdl92 YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKICAgICAgICAgXgog UVVFUlk6ICBwbHBnc3FsX3N2X3ZhcjEKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvZXhwZWN0ZWQv cGx0Y2xfcXVlcmllcy5vdXQgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3F1ZXJpZXMub3V0 CmluZGV4IDM1Y2M2ZTYyYWFkLi40OTdjZDM4MTg5YiAxMDA2NDQKLS0tIGEvc3JjL3BsL3RjbC9l eHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAorKysgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3F1ZXJpZXMub3V0CkBAIC00NTAsMTIgKzQ1MCwxMiBAQCBDT05URVhUOiAgd2hpbGUgZXhlY3V0 aW5nCiAiX19QTFRjbF9wcm9jX3RjbF9ldmFsX3RleHQgc3BpX3ByZXBhcmVcIGFcIFwiYlwgXHtc IiIKIGluIFBML1RjbCBmdW5jdGlvbiB0Y2xfZXZhbCh0ZXh0KQogc2VsZWN0IHRjbF9lcnJvcl9o YW5kbGluZ190ZXN0KCR0Y2wkc3BpX3ByZXBhcmUgInNlbGVjdCBtb28iIFtdJHRjbCQpOwotICAg ICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gU1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAg KwotIGNvbmRpdGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICsKLSBjdXJzb3JfcG9zaXRp b246IDggICAgICAgICAgICAgICAgICArCi0gbWVzc2FnZTogY29sdW1uICJtb28iIGRvZXMgbm90 IGV4aXN0KworICAgICAgICAgICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIGNvbmRp dGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICAgICAgICAgICAgICsKKyBjdXJzb3JfcG9z aXRpb246IDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgbWVzc2FnZTogY29sdW1u IG9yIHZhcmlhYmxlICJtb28iIGRvZXMgbm90IGV4aXN0KwogIHN0YXRlbWVudDogc2VsZWN0IG1v bwogKDEgcm93KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKaW5kZXggMTlhMmU1YThmNjQuLjFjNDE0OWY2ZWYxIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3Jj L3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0xMCw3ICsx MCw3IEBAIHRlc3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QKIAogc3RhcnRp bmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxldDogTEVUIG15 dmFyID0gJ3Rlc3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBCRUdJTjsKIHN0 ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1F UlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKIHN0 YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDc5Y2Y4MmI1YWVkLi5l YjMxMGQ0ZTE5MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90 YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQK QEAgLTEzMDksMTkgKzEzMDksMTkgQEAgc2VsZWN0ICogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAK IHNlbGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5IGE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBi eSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9y IHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAog TElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgog c2VsZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgYTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5 ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIjsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5ICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBz ZWxlY3QgYXRhY2MxLiogZnJvbSBhdGFjYzE7CkBAIC0xMzMxLDcgKzEzMzEsNyBAQCBzZWxlY3Qg YXRhY2MxLiogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhIGZyb20gYXRhY2MxOwot RVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEgZnJvbSBhdGFjYzE7CiAg ICAgICAgICAgICAgICBeCiBzZWxlY3QgYXRhY2MxLmEgZnJvbSBhdGFjYzE7CkBAIC0xMzQ1LDE1 ICsxMzQ1LDE1IEBAIHNlbGVjdCBiLGMsZCBmcm9tIGF0YWNjMTsKICgxIHJvdykKIAogc2VsZWN0 IGEsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgYSxiLGMsZCBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZy b20gYXRhY2MxIHdoZXJlIGEgPSAxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJv bSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2Vs ZWN0IGF0YWNjMS4iLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJvbSBhdGFjYzE7CkBA IC0xMzYxLDExICsxMzYxLDExIEBAIEVSUk9SOiAgY29sdW1uIGF0YWNjMS4uLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhdGFjYzEuIi4u Li4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAg Xgogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCBmcm9tIGF0YWNj MTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9w cGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxl Y3QgKiBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAx OwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hl cmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIC0tIFVQREFURXMKQEAgLTEzNzQsNyArMTM3NCw3IEBAIEVS Uk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiYXRhY2MxIiBkb2VzIG5vdCBleGlzdAogTElO RSAxOiB1cGRhdGUgYXRhY2MxIHNldCBhID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAi YSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSBhID0gMzsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogdXBkYXRlIGF0YWNjMSBzZXQg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKQEAgLTEzODIsNyArMTM4Miw3IEBA IEVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBvZiByZWxhdGlv biAiYXRhY2MxIiBkb2VzIG5vdCBleGlzCiBMSU5FIDE6IHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4u Li4uLi4uIiA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2Mx IHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gSU5TRVJUcwpAQCAtMTQzMCwx MSArMTQzMCwxMSBAQCBMSU5FIDE6IGluc2VydCBpbnRvIGF0YWNjMSAoIi4uLi4uLi4ucGcuZHJv cHBlZC4xLi4uLi4uLi4iLGIsYyxkKSB2YS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIC0tIERFTEVURXMKIGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsKLUVSUk9SOiAg Y29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGRlbGV0ZSBmcm9tIGF0YWNjMSB3 aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6ICBjb2x1bW4g Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3Bw ZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBk ZWxldGUgZnJvbSBhdGFjYzE7CkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBzZWxlY3QgZjEgZnJvbSBj MTsKIAogYWx0ZXIgdGFibGUgYzEgZHJvcCBjb2x1bW4gZjE7CiBzZWxlY3QgZjEgZnJvbSBjMTsK LUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxIGZyb20gYzE7CiAg ICAgICAgICAgICAgICBeCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRo ZSBjb2x1bW4gImMxLmYyIi4KQEAgLTE3MzQsNyArMTczNCw3IEBAIEVSUk9SOiAgY2Fubm90IGRy b3AgaW5oZXJpdGVkIGNvbHVtbiAiZjEiCiBhbHRlciB0YWJsZSBwMSBkcm9wIGNvbHVtbiBmMTsK IC0tIGMxLmYxIGlzIGRyb3BwZWQgbm93LCBzaW5jZSB0aGVyZSBpcyBubyBsb2NhbCBkZWZpbml0 aW9uIGZvciBpdAogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAgICAgXgogSElOVDogIFBl cmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIuCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDkzMTU0MmYyNjg5Li5iNDg5NzBlNTZhYyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTE0NCw3ICsxNDQsNyBAQCBMSU5FIDE6 IENPUFkgeCBUTyBzdGRvdXQgV0hFUkUgYSA9IDE7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBh ID0gNTAwMDQ7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID4gNjAwMDM7CiBDT1BZIHggZnJv bSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7Ci1FUlJPUjogIGNvbHVtbiAiZiIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmIiBkb2VzIG5vdCBleGlzdAogTElORSAx OiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSBtYXgoeC5iKTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAppbmRleCA4YzUyNzQ3NGRhZi4uZTUzYWU0NTFk ZmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcgKzI3LDcgQEAg TElORSAxOiBzZWxlY3QgKiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAgIF4K IC0tIGJhZCBuYW1lIGluIHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJvbSBwZ19kYXRh YmFzZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0IG5vbmVzdWNoIGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBeCiAtLSBlbXB0 eSBkaXN0aW5jdCBsaXN0IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElORSAxOiBzZWxl Y3QgZGlzdGluY3QgZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIF4K IC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVjdCAqIGZyb20g cGdfZGF0YWJhc2Ugd2hlcmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1lOwotRVJST1I6 ICBjb2x1bW4gIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIHBn X2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUg b24gcmhzIG9mIG9wZXJhdG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2Rh dGFiYXNlLmRhdG5hbWUgPSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBu b3QgZXhpc3QKIExJTkUgMTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBwZ19kYXRh YmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBp biBzZWxlY3QgZGlzdGluY3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20g cGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0IGRpc3RpbmN0IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERBVEUKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2pvaW4ub3V0CmluZGV4IDUzZjcwZDcyZWQ2Li42NjFiYjFhMzBkZSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC02MjMwLDEzICs2MjMwLDEzIEBAIExJTkUg MTogc2VsZWN0IHQyLnV1bmlxdWUxIGZyb20KIEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byBy ZWZlcmVuY2UgdGhlIGNvbHVtbiAidDIudW5pcXVlMSIuCiBzZWxlY3QgdXVuaXF1ZTEgZnJvbQog ICB0ZW5rMSB0MSBqb2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIHN1 Z2dlc3QgYm90aCBhdCBvbmNlCi1FUlJPUjogIGNvbHVtbiAidXVuaXF1ZTEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidXVuaXF1ZTEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCB1dW5pcXVlMSBmcm9tCiAgICAgICAgICAgICAgICBeCiBISU5UOiAg UGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQxLnVuaXF1ZTEiIG9y IHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IGN0aWQgZnJvbQogICB0ZW5rMSB0MSBq b2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIG5lZWQgcXVhbGlmaWNh dGlvbgotRVJST1I6ICBjb2x1bW4gImN0aWQiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVt biBvciB2YXJpYWJsZSAiY3RpZCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGN0aWQg ZnJvbQogICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQg ImN0aWQiLCBidXQgdGhleSBhcmUgaW4gdGFibGVzIHRoYXQgY2Fubm90IGJlIHJlZmVyZW5jZWQg ZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzMzMyw3ICs3MzMzLDcgQEAgbGF0ZXJh bCAoc2VsZWN0ICogZnJvbSBpbnQ4X3RibCB0MSwKIAogLS0gdGVzdCBzb21lIGVycm9yIGNhc2Vz IHdoZXJlIExBVEVSQUwgc2hvdWxkIGhhdmUgYmVlbiB1c2VkIGJ1dCB3YXNuJ3QKIHNlbGVjdCBm MSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKLUVSUk9SOiAgY29sdW1u ICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmMSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBhLCAoc2VsZWN0 IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBpbiB0YWJsZSAiYSIs IGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku CkBAIC03MzQ1LDcgKzczNDUsNyBAQCBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSwgKHNlbGVjdCBhLmYxIGFzIGcpIHNzOwogREVUQUlMOiAgVGhlcmUgaXMgYW4gZW50cnkgZm9y IHRhYmxlICJhIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KIEhJTlQ6ICBUbyByZWZlcmVuY2UgdGhhdCB0YWJsZSwgeW91IG11c3QgbWFy ayB0aGlzIHN1YnF1ZXJ5IHdpdGggTEFURVJBTC4KIHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSBjcm9zcyBqb2luIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4 aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSBjcm9zcyBqb2luIChzZWxl Y3QgZjEgYXMgZykgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBp biB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBv ZiB0aGUgcXVlcnkuCkBAIC03MzgyLDcgKzczODIsNyBAQCBMSU5FIDE6IHNlbGVjdCAxIGZyb20g dGVuazEgYSwgbGF0ZXJhbCAoc2VsZWN0IG1heChhLnVuaXF1ZTEpIGZyb20gaS4uLgogY3JlYXRl IHRlbXAgdGFibGUgeHgxIGFzIHNlbGVjdCBmMSBhcyB4MSwgLWYxIGFzIHgyIGZyb20gaW50NF90 Ymw7CiAtLSBlcnJvciwgY2FuJ3QgZG8gdGhpczoKIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJv bSAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVSUk9SOiAgY29s dW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4MSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZy b20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUg aXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNhbm5vdCBiZSBy ZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc0MDIsNyArNzQwMiw3 IEBAIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJvbSB4eDEsIGxhdGVyYWwgKHNlbGVjdCAqIGZy b20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkKIEVSUk9SOiAgdGFibGUgbmFtZSAieHgxIiBzcGVj aWZpZWQgbW9yZSB0aGFuIG9uY2UKIC0tIGFsc28gZXJyb3JzOgogZGVsZXRlIGZyb20geHgxIHVz aW5nIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwotRVJST1I6ICBj b2x1bW4gIngxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIngx IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi50ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICog ZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCAieDEiIGluIHRhYmxlICJ4eDEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9uYW1lc3BhY2Uub3V0CmluZGV4IGRiYmRhNzJkMzk1Li5kOTg3OTNmOTJhNyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dApAQCAtMjMsNyArMjMsNyBAQCBC RUdJTjsKIFNFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHRlc3RfbnNfc2NoZW1hXzE7CiBDUkVB VEUgU0NIRU1BIHRlc3RfbnNfc2NoZW1hXzIKICAgICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBB UyBTRUxFQ1QgYyBGUk9NIGFiYzsKLUVSUk9SOiAgY29sdW1uICJjIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImMiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6ICAg ICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBBUyBTRUxFQ1QgYyBGUk9NIGFiYzsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAppbmRleCA3MTdhMjM3ZGY5OC4uMzg1YzRi MWI0Y2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dApAQCAtMzE0 LDcgKzMxNCw3IEBAIE5PVElDRTogIGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAwMwogLS0gZXJy b3IgY2FzZXMKIFNFTEVDVCBfMTAwOwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogU0VMRUNUIF8xMDA7CiAgICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAwXzsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CmluZGV4IDA3NGFmOGYzM2E4Li4wYTdhOWZlYjZl MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CkBAIC0yNTk4LDcgKzI1OTgs NyBAQCBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQgZmFpbDogU1FMU1RBVEUg YW5kIFNRTEVSUk0gYXJlIG9ubHkgaW4gZGVmaW5lZCBFWENFUFRJT04KIC0tIGJsb2Nrcwogc2Vs ZWN0IGV4Y3B0X3Rlc3QxKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUKQEAgLTI2MTMs NyArMjYxMyw3IEBAIGJlZ2luCiBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQg ZmFpbAogc2VsZWN0IGV4Y3B0X3Rlc3QyKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUK QEAgLTQ2NzUsNyArNDY3NSw3IEBAIEJFR0lOCiAgICAgICAgIFJBSVNFIE5PVElDRSAnJSwgJScs IHIucm9vbW5vLCByLmNvbW1lbnQ7CiAgICAgRU5EIExPT1A7CiBFTkQkJDsKLUVSUk9SOiAgY29s dW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZm9v IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBBUyByb29tbm8s IGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIFNFTEVDVCBydHJpbShyb29tbm8pIEFTIHJvb21u bywgZm9vIEZST00gUm9vbSBPUkRFUiBCWSByb29tbm8KQEAgLTQ3MTcsNyArNDcxNyw3IEBAIGJl Z2luCiAgIHJhaXNlIG5vdGljZSAneCA9ICUnLCB4OwogZW5kOwogJCQ7Ci1FUlJPUjogIGNvbHVt biAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4IiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAxCkBAIC00 NzI5LDcgKzQ3MjksNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlLCB5ID0gJScsIHgs IHk7CiBlbmQ7CiAkJDsKLUVSUk9SOiAgY29sdW1uICJ4IiBkb2VzIG5vdCBleGlzdAorRVJST1I6 ICBjb2x1bW4gb3IgdmFyaWFibGUgIngiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHggKyAxCiAg ICAgICAgIF4KIFFVRVJZOiAgeCArIDEKQEAgLTU3NjksNyArNTc2OSw3IEBAIEFMVEVSIFRBQkxF IGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIERST1AgY29sdW1uIG5hbWU7 CiBVUERBVEUgYWx0ZXJfdGFibGVfdW5kZXJfdHJhbnNpdGlvbl90YWJsZXMKICAgU0VUIGlkID0g aWQ7Ci1FUlJPUjogIGNvbHVtbiAibmFtZSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1u IG9yIHZhcmlhYmxlICJuYW1lIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAoU0VMRUNUIHN0cmlu Z19hZ2coaWQgfHwgJz0nIHx8IG5hbWUsICcsJykgRlJPTSBkKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIFFVRVJZOiAgKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8 ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0Cmlu ZGV4IGY3MDgyNjM5NjA1Li40NTFmZGRlMzFjZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0CkBAIC0xMjAsNyArMTIwLDcgQEAgU0VMRUNUICQxLCAkMiBcYmluZCAnZm9vJyAnYmFyJyBc ZwogLS0gZXJyb3JzCiAtLSBwYXJzZSBlcnJvcgogU0VMRUNUIGZvbyBcYmluZCBcZwotRVJST1I6 ICBjb2x1bW4gImZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJmb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBmb28gCiAgICAgICAgICAgICAg ICBeCiAtLSB0Y29wIGVycm9yCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDUy MDEyODA2Njk5Li4wMDg5Y2UxYTc5YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK QEAgLTExOTEsNyArMTE5MSw3IEBAIGRyb3AgcnVsZSBydWxlc19mb29ydWxlIG9uIHJ1bGVzX2Zv bzsKIC0tIHRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSBmMSBpcyBub3QgZXhwb3NlZCBmb3IgdW5x dWFsaWZpZWQgcmVmZXJlbmNlOgogY3JlYXRlIHJ1bGUgcnVsZXNfZm9vcnVsZSBhcyBvbiBpbnNl cnQgdG8gcnVsZXNfZm9vIHdoZXJlIGYxIDwgMTAwCiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1 bGVzX2ZvbzIgdmFsdWVzIChmMSk7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6 IGRvIGluc3RlYWQgaW5zZXJ0IGludG8gcnVsZXNfZm9vMiB2YWx1ZXMgKGYxKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhl cmUgYXJlIGNvbHVtbnMgbmFtZWQgImYxIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggYTc1YmM2 OWVlOGIuLjQxNWNmMmM4MmJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dApAQCAtMjk2LDcgKzI5Niw3IEBAIEVSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAogTElORSAxOiBMRVQgdmFyMSA9IHBpKCk7CiAg ICAgICAgICAgICBeCiBTRUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInZhcjEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAgICAgICAgXgogLS0gc2hvdWxkIGJlIG9r CkBAIC01MDcsNyArNTA3LDcgQEAgU0VMRUNUIHYxOwogCiAtLSBzaG91bGQgZmFpbCwgYXR0cmli dXRlIGRvZXNuJ3QgZXhpc3QKIExFVCB2MS54ID0gMTA7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24g dG8gZmllbGQgIngiIG9mIGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1 bW4gaW4gZGF0YSB0eXBlIHQxCitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9m IGNvbHVtbiBvciB2YXJpYWJsZSAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4g aW4gZGF0YSB0eXBlIHQxCiBMSU5FIDE6IExFVCB2MS54ID0gMTA7CiAgICAgICAgICAgICBeCiAt LSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CkBAIC0xMDU0LDcg KzEwNTQsNyBAQCBCRUdJTjsKIERST1AgVkFSSUFCTEUgdmFyMTsKIC0tIHNob3VsZCBmYWlsCiBT RUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6 ICBjb2x1bW4gb3IgdmFyaWFibGUgInZhcjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVD VCB2YXIxOwogICAgICAgICAgICAgICAgXgogUk9MTEJBQ0s7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKaW5kZXggN2Y1NzU3ZTg5YzQuLmIwNWIxNmQ5NGJmIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CkBAIC0yNTYsNyAr MjU2LDcgQEAgU0VMRUNUICogRlJPTSB0cmFuc19iYXJiYXo7CS0tIHNob3VsZCBoYXZlIDEKIEJF R0lOOwogCVNBVkVQT0lOVCBvbmU7CiAJCVNFTEVDVCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVt biAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg InRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAg ICAgICAgICAgICAgIF4KIAlST0xMQkFDSyBUTyBTQVZFUE9JTlQgb25lOwpAQCAtMzA1LDcgKzMw NSw3IEBAIEJFR0lOOwogCVNBVkVQT0lOVCBvbmU7CiAJCUlOU0VSVCBJTlRPIHNhdmVwb2ludHMg VkFMVUVTICg1KTsKIAkJU0VMRUNUIHRyYW5zX2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19m b28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9v IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAg ICAgXgogQ09NTUlUOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlv bi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dAppbmRleCAwZmQwZTFj MzhiMy4uZjg2OTg3ZGJkYzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dW5pb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC05 MjEsNyArOTIxLDcgQEAgT1JERVIgQlkgcTIscTE7CiAKIC0tIFRoaXMgc2hvdWxkIGZhaWwsIGJl Y2F1c2UgcTIgaXNuJ3QgYSBuYW1lIG9mIGFuIEVYQ0VQVCBvdXRwdXQgY29sdW1uCiBTRUxFQ1Qg cTEgRlJPTSBpbnQ4X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkg cTIgTElNSVQgMTsKLUVSUk9SOiAgY29sdW1uICJxMiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJxMiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIGludDhf dGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJPTSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgInEyIiBpbiB0YWJsZSAi KlNFTEVDVCogMiIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBv ZiB0aGUgcXVlcnkuCi0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0019-transactional-variables.patch" Content-Disposition: attachment; filename="v20240730-0019-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwiz1 RnJvbSA4ZGFkMDQxODVlM2UxYTVmYzNjNTUyYjc5YjFkODE2MTM2OWQyMzBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDIyOjQwOjU1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxOS8yMF0gdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKClRoaXMgY29tbWl0IGltcGxlbWVu dHMgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMuIFRoZSBjb250ZW50IG9mIHRyYW5zYWN0aW9uYWwK c2Vzc2lvbiB2YXJpYWJsZXMgaXMgc2Vuc2l0aXZlIHRvIHRyYW5zYWN0aW9ucyBhbmQgc3VidHJh bnNhY3Rpb25zLiBBbnkKdHJhbnNhY3Rpb25hbCB2YXJpYWJsZSBob2xkcyBhIGhpc3Rvcnkgb2Yg dmFsdWVzIG5lY2Vzc2FyeSBmb3IgcmV2ZXJ0LiBUaGlzIGhpc3RvcnkKaXMgY2xlYW5lZCAocHVy Z2VkKSB3aGVuIGEpIHdlIHJlYWQgdGhlIHZhcmlhYmxlLCBiKSB3aGVuIHRoZSB0cmFuc2FjdGlv biBpcyBmaW5pc2hlZC4KCldlIGRvbid0IHRyeSB0byBwdXJnZSwgd2hlbiB0aGUgbGFzdCBtb2Rp ZmljYXRpb24gb2YgYSB2YXJpYWJsZSBpcyBmcm9tCmN1cnJlbnQgc3VidHJhbnNhY3Rpb24sIG9y IHdoZW4gcHVyZ2Ugd2FzIHByb2Nlc3NlZCBpbiBjdXJyZW50IHN1YnRyYW5zYWN0aW9uLgoKVGhp cyBwYXRjaCBpcyBiYXNlZCBvbiBteSB3b3JrIGZyb20gRmViIDIwMjAgYW5kIGl0IGlzIHJlbGF0 ZWQgdG8gZGlzY3Vzc2lvbgphYm91dCBmZWF0dXJlcyByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLiBOb3csIHdoZW4gdGhlIGFsbCBmZWF0dXJlcyBhcmUKc2VwYXJhdGVkIHRvIGlzb2xhdGVk IHBhdGNoZXMgSSBjYW4gcmV2aXRhbGl6ZSB0aGlzIHBhdGNoLCBiZWNhdXNlIGl0IGRvZXNuJ3QK aW5jcmVhc2UgY29tcGxleGl0eSBvZiBiYXNpYyBwYXRjaGVzLgoKVW5saWtlIG90aGVyIHBhdGNo ZXMsIHRoaXMgcGF0Y2ggaXMgd2l0aG91dCBhbnkgcmV2aWV3IGF0IHRoaXMgbW9tZW50IChGZWIg MjAyNCksCmJ1dCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZnVsbHkgZnVuY3Rpb25hbCBmb3IgcGVv cGxlIHdobyBhcmUgaW50ZXJlc3RlZCBhYm91dAp0aGlzIGZlYXR1cmUgKGZvciB0ZXN0aW5nKS4K LS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTIg KwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDEwICst CiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMzAxICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgIDUwICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAg IHwgIDM2ICsrKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAg fCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICst LQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTEwICsr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1 OCArKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA1OTIgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCBiZGE3ZGY5M2NhYS4uMzFlODczMWVlNzEgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC05ODUxLDYgKzk4NTEsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+ Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxzdHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2Vu dHJ5PgorICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzIDxx dW90ZT50cmFuc2FjdGlvbmFsPC9xdW90ZT4uIEluIHRoZSBjYXNlCisgICAgICAgb2YgYSB0cmFu c2FjdGlvbiByb2xsYmFjaywgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgYXJlIHJlc2V0IHRvIHRo ZQorICAgICAgIHZhbHVlIHRoZXkgaGFkIHdoZW4gdGhlIHRyYW5zYWN0aW9uIHN0YXJ0ZWQuIFRo ZSBkZWZhdWx0IHZhbHVlIGlzCisgICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAg ICAgPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAg ICAgICAgPHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8 L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCAwMDkzODc0M2Mw ZC4uYjczZjAzMmRkYmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsNyArMjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFC TEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJ TU1VVEFCTEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIE5P VCBOVUxMIF0gWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0 X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTQ3LDYg KzQ3LDE0IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjCiAgICBzYW1lIGFzIHJlZ3VsYXIgdmFy aWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+Cisg ICBXaGVuIGEgc2NoZW1hIHZhcmlhYmxlIGlzIGNyZWF0ZWQgd2l0aCBhCisgICA8Y29tbWFuZD5D UkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCwgdGhlIHZhcmlh YmxlcworICAgY29udGVudCBjaGFuZ2VzIGFyZSB0cmFuc2FjdGlvbmFsOiBpbiBjYXNlIG9mIHJv bGxiYWNrLCB0aGV5IGFyZSByZXNldCB0bworICAgdGhlaXIgdmFsdWUgYXQgdGhlIGJlZ2lubmlu ZyBvZiB0aGUgdHJhbnNhY3Rpb24gb3IgdGhlIGxhdGVzdCBzdWJ0cmFuc2FjdGlvbi4KKyAgIFRo ZSB2YXJpYWJsZSBjb250ZW50IGlzIG9ubHkgaG9sZCBpbiBtZW1vcnksIGFuZCB0aHVzIGlzIG5v dCBwZXJzaXN0ZW50LgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CiAgICBjb21t YW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBhODljMGVjY2Q2YS4uYjk5 YzZkYzFlNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQyLDYgKzQyLDcgQEAg c3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUs CiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkJIGJvb2wgbm90X251bGws CiAJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCisJCQkJCQkJCQkgYm9vbCBpc190cmFuc2Fj dCwKIAkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVu ZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIApAQCAtNTksNiArNjAsNyBAQCBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCiAJCQkJ Ym9vbCBub3RfbnVsbCwKIAkJCQlib29sIGlzX2ltbXV0YWJsZSwKKwkJCQlib29sIGlzX3RyYW5z YWN0LAogCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CkBAIC0xMjMsNiArMTI1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9u IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKG5vdF9udWxsKTsKIAl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlz X2ltbXV0YWJsZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXN0cmFuc2FjdCAtIDFd ID0gQm9vbEdldERhdHVtKGlzX3RyYW5zYWN0KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAK IAlpZiAodmFyRGVmZXhwcikKQEAgLTI2Niw2ICsyNjksNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHN0 bXQtPmlmX25vdF9leGlzdHMsCiAJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCiAJCQkJCQkJICAg c3RtdC0+aXNfaW1tdXRhYmxlLAorCQkJCQkJCSAgIHN0bXQtPmlzX3RyYW5zYWN0LAogCQkJCQkJ CSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggOGM5OTdmZjJiNTEuLjlh Y2ZjYmFjYzBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC00 Nyw2ICs0NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIAlTdWJU cmFuc2FjdGlvbklkIGRlbGV0aW5nX3N1YmlkOwogfSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CiAK Ky8qCisgKiBVc2VkIGZvciB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcy4gSG9sZHMgcHJldiB2ZXJz aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBQcmV2VmFsdWUKK3sKKwlEYXR1bQkJdmFsdWU7CisJ Ym9vbAkJaXNudWxsOworCisJU3ViVHJhbnNhY3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwlzdHJ1 Y3QgUHJldlZhbHVlICpwcmV2X3ZhbHVlOworfSBQcmV2VmFsdWU7CisKIC8qCiAgKiBWYWx1ZXMg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCBsb2NhbCBtZW1v cnkKICAqIGluc2lkZSBzZXNzaW9udmFycyBoYXNoIHRhYmxlIGluIGJpbmFyeSBmb3JtYXQgaW5z aWRlIGEgZGVkaWNhdGVkIG1lbW9yeQpAQCAtNzUsNiArODgsMjUgQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCWJvb2wJCWlzbnVsbDsKIAlEYXR1bQkJdmFsdWU7CiAKKwkvKgorCSAq IFdlIGRvbid0IG5lZWQgc3RhY2sgdmVyc2lvbnMgbW9kaWZpZWQgaW4gc2FtZSBzdWJ0cmFuc2Fj dGlvbi4KKwkgKiBVc2VkIGJ5IHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIG9ubHkuIFRoZSB2YWx1 ZSBvZiB0cmFuc2FjdGlvbmFsCisJICogdmFyaWFibGUgY2FuIGJlIHJldHVybmVkIGltbWVkaWF0 ZWx5IHdoZW4gbW9kaWZ5X3N1YmlkIGlzIHNhbWUKKwkgKiBsaWtlIGN1cnJlbnQgc3ViaWQuCisJ ICovCisJU3ViVHJhbnNhY3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwkvKgorCSAqIFdoZW4gdGhl IG1vZGlmeV9zdWJpZCBpcyBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IHN1YmlkLCB0aGVuCisJICog d2UgbmVlZCB0byByZWNoZWNrIHZlcnNpb25zIGFuZCB0aHJvdyB2ZXJzaW9ucyByZWxhdGVkIHRv CisJICogcmV2ZXJ0ZWQgdHJhbnNhY3Rpb25zLiBXaGVuIHB1cmdlX3N1YmlkIGlzIHNhbWUgbGlr ZSBjdXJyZW50IHN1YmlkCisJICogd2UgY2FuIHJldHVybiB0aGUgdmFsdWUgb2YgdHJhbnNhY3Rp b24gdmFyaWFibGUgd2l0aG91dCB0aGlzCisJICogcmVjaGVjay4KKwkgKi8KKwlTdWJUcmFuc2Fj dGlvbklkIHB1cmdlX3N1YmlkOworCisJUHJldlZhbHVlICAqcHJldl92YWx1ZTsKKwogCU9pZAkJ CXR5cGlkOwogCWludDE2CQl0eXBsZW47CiAJYm9vbAkJdHlwYnl2YWw7CkBAIC05NCw2ICsxMjYs NyBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAKIAlib29sCQlub3RfbnVsbDsKIAli b29sCQlpc19pbW11dGFibGU7CisJYm9vbAkJaXNfdHJhbnNhY3Q7CiAKIAlib29sCQlyZXNldF9h dF9lb3g7CiAKQEAgLTEzMyw2ICsxNjYsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9u ID0gZmFsc2U7CiAgKi8KIHN0YXRpYyBib29sIGhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jl c2V0X2F0X2VveCA9IGZhbHNlOwogCisvKiB0cnVlLCB3aGVuIHRyYW5zYWN0aW9uYWwgdmFyaWFi bGVzIHdhcyBtb2RpZmllZCAqLworc3RhdGljIGJvb2wgaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9u YWxfdmFyaWFibGVzID0gZmFsc2U7CisKIC8qCiAgKiBUaGUgY29udGVudCBvZiBzZXNzaW9uIHZh cmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBpbW1lZGlhdGVseS4gV2hlbiBpdAogICogaXMgcG9zc2li bGUgd2UgZG8gdGhpcyBhdCB0aGUgdHJhbnNhY3Rpb24gZW5kLiBCdXQgd2hlbiB0aGUgdHJhbnNh Y3Rpb24gZmFpbGVkLApAQCAtMTQ4LDYgKzE4NCw3IEBAIHN0YXRpYyBMaXN0ICp4YWN0X2Ryb3Bf aXRlbXMgPSBOSUw7CiAKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFj dF9kcm9wKE9pZCB2YXJpZCk7CiBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFi bGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CitzdGF0aWMgYm9vbCBwdXJnZV9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyKTsKIAogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNz aW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KQEAgLTMwMyw4ICszNDAsMjUgQEAgdW5yZWdpc3Rl cl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQpCiAgKiBSZWxlYXNlIHN0b3Jl ZCB2YWx1ZSwgZnJlZSBtZW1vcnkKICAqLwogc3RhdGljIHZvaWQKLWZyZWVfc2Vzc2lvbl92YXJp YWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhcikKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShT VmFyaWFibGUgc3ZhciwgYm9vbCBkZWVwX2ZyZWUpCiB7CisJaWYgKGRlZXBfZnJlZSkKKwl7CisJ CVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJCVByZXZWYWx1ZSAq bmV4dF92YWx1ZTsKKworCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJeworCQkJaWYgKCFzdmFyLT50 eXBieXZhbCkKKwkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIocHJldl92YWx1ZS0+dmFsdWUpKTsK KworCQkJbmV4dF92YWx1ZSA9IHByZXZfdmFsdWUtPnByZXZfdmFsdWU7CisJCQlwZnJlZShwcmV2 X3ZhbHVlKTsKKworCQkJcHJldl92YWx1ZSA9IG5leHRfdmFsdWU7CisJCX0KKwl9CisKIAkvKiBD bGVhbiBjdXJyZW50IHZhbHVlICovCiAJaWYgKCFzdmFyLT5pc251bGwpCiAJewpAQCAtNDAzLDcg KzQ1Nyw3IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJ CQl7CiAJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKIAotCQkJCWZyZWVfc2Vzc2lvbl92 YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zh ciwgdHJ1ZSk7CiAJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwgSEFTSF9SRU1P VkUsIE5VTEwpOwogCQkJCXN2YXIgPSBOVUxMOwogCQkJfQpAQCAtNDM5LDYgKzQ5Myw5NCBAQCBy ZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKIAloYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIH0KIAorLyoKKyAqIHJl bW92ZSBwcmV2IHZhbHVlcyBhdCBlb3gKKyAqLworc3RhdGljIHZvaWQKK3JlbW92ZV9wcmV2X3Zh bHVlc19hdF9lb3goYm9vbCBpc0NvbW1pdCkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOwor CVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyog bGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJsZXMgKi8KKwlpZiAo IWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcykKKwkJcmV0dXJuOworCisJaGFz aF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChzdmFyID0gKFNWYXJp YWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsKKwkJaWYgKHN2YXIt PmlzX3RyYW5zYWN0ICYmIHN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rp b25JZCkKKwkJeworCQkJaWYgKGlzQ29tbWl0KQorCQkJeworCQkJCWlmIChwdXJnZV9zZXNzaW9u X3ZhcmlhYmxlKHN2YXIpKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zh ci0+cHJldl92YWx1ZTsKKworCQkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQkJeworCQkJCQkJ UHJldlZhbHVlICpjdXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQkJaWYgKCFzdmFyLT50 eXBieXZhbCAmJiAhY3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJCXBmcmVlKERhdHVtR2V0UG9p bnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9w di0+cHJldl92YWx1ZTsKKwkJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJCQl9CisJCQkJfQor CQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zhci0+dmFy aWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQorCQkJfQor CQkJZWxzZQorCQkJeworCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFs dWU7CisKKwkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCVByZXZWYWx1ZSAqY3Vy cmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJCQkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJp ZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJCQkJCWJyZWFrOworCisJCQkJCWlmICgh c3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJCXBmcmVlKERhdHVt R2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCXByZXZfdmFsdWUgPSBjdXJy ZW50X3B2LT5wcmV2X3ZhbHVlOworCQkJCQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQl9CisKKwkJ CQlpZiAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCXN2YXItPnZhbHVlID0gcHJldl92YWx1ZS0+ dmFsdWU7CisJCQkJCXN2YXItPmlzbnVsbCA9IHByZXZfdmFsdWUtPmlzbnVsbDsKKworCQkJCQlw ZnJlZShwcmV2X3ZhbHVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJaGFzaF9zZWFy Y2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCQlz dmFyID0gTlVMTDsKKwkJCQl9CisJCQl9CisKKwkJCS8qIFdoZW4gc3ZhciBpcyBzdGlsbCB2YWxp ZCAobm90IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaWYgKHN2YXIpCisJCQl7CisJ CQkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJCQkJc3Zh ci0+cHJldl92YWx1ZSA9IE5VTEw7CisJCQl9CisJCX0KKwl9CisKKwloYXNfbW9kaWZpZWRfdHJh bnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsKK30KKwogLyoKICAgKiBQZXJmb3JtIE9OIENP TU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAgICogYW5kIHJlbW92 ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00ODYsNiArNjI4LDggQEAg QXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQogCQlyZW1vdmVfaW52 YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKIAl9CiAKKwlyZW1vdmVfcHJldl92YWx1ZXNf YXRfZW94KGlzQ29tbWl0KTsKKwogCS8qCiAJICogV2UgaGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3Bf aXRlbXMuIEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUgZHJvcHBlZAogCSAqIG5vdywgb3IgbG9z dCBpbnNpZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KQEAgLTYzMSw2ICs3NzUsNyBAQCBzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUp CiAKIAlzdmFyLT5ub3RfbnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CiAJc3Zhci0+aXNfaW1t dXRhYmxlID0gdmFyZm9ybS0+dmFyaXNpbW11dGFibGU7CisJc3Zhci0+aXNfdHJhbnNhY3QgPSB2 YXJmb3JtLT52YXJpc3RyYW5zYWN0OwogCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBl KHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21haW5fY2hl Y2tfZXh0cmEgPSBOVUxMOwpAQCAtNjU2LDYgKzgwMSwxNyBAQCBzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJc3Zhci0+aXNu dWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKIAorCWlmIChzdmFyLT5pc190 cmFuc2FjdCkKKwl7CisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2Fj dGlvbklkKCk7CisJCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IHRydWU7 CisJfQorCWVsc2UKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQ7CisKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCXN2 YXItPnByZXZfdmFsdWUgPSBOVUxMOworCiAJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOwogCiAJc3Zh ci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELApAQCAtNjg5 LDYgKzg0NSw2OSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQg dmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAKKy8qCisg KiBUcnkgdG8gcmVtb3ZlIGFsbCBwcmV2aW91cyB2ZXJzaW9ucyByZWxhdGVkIHRvIHJldmVydGVk IHRyYW5zYWN0aW9ucy4KKyAqIFJldHVybnMgdHJ1ZSwgd2hlbiB2YWxpZCB2ZXJzaW9uIHdhcyBm b3VuZC4KKyAqLworc3RhdGljIGJvb2wKK3B1cmdlX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxl IHN2YXIpCit7CisJU3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkOworCVByZXZWYWx1ZQkg ICAqcHJldl92YWx1ZTsKKwlib29sCQkJZm91bmQgPSB0cnVlOworCisJQXNzZXJ0KHN2YXItPmlz X3RyYW5zYWN0KTsKKworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5z YWN0aW9uSWQpCisJCXJldHVybiB0cnVlOworCisJY3VycmVudF9zdWJpZCA9IEdldEN1cnJlbnRT dWJUcmFuc2FjdGlvbklkKCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1YmlkID09IGN1cnJlbnRf c3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKHN2YXItPnB1cmdlX3N1YmlkID09IGN1cnJl bnRfc3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKFN1YlRyYW5zYWN0aW9uSXNBY3RpdmUo c3Zhci0+bW9kaWZ5X3N1YmlkKSkKKwl7CisJCXN2YXItPnB1cmdlX3N1YmlkID0gY3VycmVudF9z dWJpZDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFs dWU7CisKKwl3aGlsZSAocHJldl92YWx1ZSkKKwl7CisJCVByZXZWYWx1ZSAqY3VycmVudF9wdiA9 IHByZXZfdmFsdWU7CisKKwkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlk U3ViVHJhbnNhY3Rpb25JZCB8fAorCQkJU3ViVHJhbnNhY3Rpb25Jc0FjdGl2ZShjdXJyZW50X3B2 LT5tb2RpZnlfc3ViaWQpKQorCQl7CisJCQlzdmFyLT52YWx1ZSA9IGN1cnJlbnRfcHYtPnZhbHVl OworCQkJc3Zhci0+aXNudWxsID0gY3VycmVudF9wdi0+aXNudWxsOworCQkJc3Zhci0+bW9kaWZ5 X3N1YmlkID0gY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkOworCisJCQlwcmV2X3ZhbHVlID0gY3Vy cmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCXBmcmVlKGN1cnJlbnRfcHYpOworCisJCQlmb3VuZCA9 IHRydWU7CisJCQlicmVhazsKKwkJfQorCisJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJl bnRfcHYtPmlzbnVsbCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1 ZSkpOworCisJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQlwZnJlZShj dXJyZW50X3B2KTsKKwl9CisKKwlzdmFyLT5wcmV2X3ZhbHVlID0gcHJldl92YWx1ZTsKKwlzdmFy LT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisKKwlyZXR1cm4gZm91bmQ7Cit9CisKIC8q CiAgKiBBc3NpZ24gc29tZSBjb250ZW50IHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiBJdCdzIGNv cGllZCB0bwogICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBuZWNlc3NhcnkuCkBAIC03MDEs NiArOTIwLDEwIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2 YWx1ZSwgYm9vbCBpc251bGwpCiAJRGF0dW0JCW5ld3ZhbDsKIAlTVmFyaWFibGVEYXRhIGxvY3N2 YXIsCiAJCQkgICAqX3N2YXI7CisJU3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkID0gR2V0 Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKTsKKwlTdWJUcmFuc2FjdGlvbklkIHByZXZfcHVyZ2Vf c3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwlib29sCQlzYXZlX3ByZXZfdmFsdWU7 CisJUHJldlZhbHVlICAqcHJldl92YWx1ZTsKIAogCUFzc2VydChzdmFyKTsKIAlBc3NlcnQoIWlz bnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOwpAQCAtNzM2LDYgKzk1OSwyMSBAQCBzZXRfc2Vz c2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQog CWVsc2UKIAkJX3N2YXIgPSBzdmFyOwogCisJaWYgKF9zdmFyLT5pc190cmFuc2FjdCAmJiBfc3Zh ci0+Y3JlYXRlX2xzbiA9PSBzdmFyLT5jcmVhdGVfbHNuKQorCXsKKwkJQXNzZXJ0KHN2YXItPnR5 cGlkID09IF9zdmFyLT50eXBpZCk7CisJCUFzc2VydChzdmFyLT50eXBieXZhbCA9PSBfc3Zhci0+ dHlwYnl2YWwpOworCQlBc3NlcnQoc3Zhci0+dHlwbGVuID09IF9zdmFyLT50eXBsZW4pOworCisJ CXNhdmVfcHJldl92YWx1ZSA9IHN2YXItPm1vZGlmeV9zdWJpZCAhPSBjdXJyZW50X3N1YmlkOwor CQlwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwl9CisJZWxzZQorCXsKKwkJc2F2ZV9w cmV2X3ZhbHVlID0gZmFsc2U7CisJCXByZXZfdmFsdWUgPSBOVUxMOworCX0KKwogCWlmICghaXNu dWxsKQogCXsKIAkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CkBAIC03NDcsNyArOTg1LDM3IEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJZWxz ZQogCQluZXd2YWwgPSB2YWx1ZTsKIAotCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFy KTsKKwlpZiAoc2F2ZV9wcmV2X3ZhbHVlKQorCXsKKwkJdm9sYXRpbGUgUHJldlZhbHVlICpuZXdf cHJldl92YWx1ZTsKKworCQlQR19UUlkoKTsKKwkJeworCQkJbmV3X3ByZXZfdmFsdWUgPSBNZW1v cnlDb250ZXh0QWxsb2MoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCQkJCXNpemVv ZihQcmV2VmFsdWUpKTsKKwkJfQorCQlQR19DQVRDSCgpOworCQl7CisJCQkvKiByZWxlYXNlIG1l bSBmcm9tIHBlcnNpc3RlbnQgY29udGVudCAqLworCQkJaWYgKG5ld3ZhbCAhPSB2YWx1ZSkKKwkJ CQlwZnJlZShEYXR1bUdldFBvaW50ZXIobmV3dmFsKSk7CisJCQlQR19SRV9USFJPVygpOworCQl9 CisJCVBHX0VORF9UUlkoKTsKKworCQluZXdfcHJldl92YWx1ZS0+dmFsdWUgPSBzdmFyLT52YWx1 ZTsKKwkJbmV3X3ByZXZfdmFsdWUtPmlzbnVsbCA9IHN2YXItPmlzbnVsbDsKKwkJbmV3X3ByZXZf dmFsdWUtPm1vZGlmeV9zdWJpZCA9IHN2YXItPm1vZGlmeV9zdWJpZDsKKwkJbmV3X3ByZXZfdmFs dWUtPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOworCisJCXByZXZfdmFsdWUgPSAoUHJldlZhbHVl ICopIG5ld19wcmV2X3ZhbHVlOworCQlwcmV2X3B1cmdlX3N1YmlkID0gc3Zhci0+cHVyZ2Vfc3Vi aWQ7CisKKwkJaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0gdHJ1ZTsKKwor CX0KKwllbHNlCisJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBwcmV2X3ZhbHVl ID09IE5VTEwpOwogCiAJLyogV2UgY2FuIG92ZXJ3cml0ZSBvbGQgdmFyaWFibGUgbm93LiBObyBl cnJvciBleHBlY3RlZCAqLwogCWlmIChzdmFyICE9IF9zdmFyKQpAQCAtNzU1LDYgKzEwMjMsOSBA QCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wg aXNudWxsKQogCiAJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNudWxs OworCXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJc3Zhci0+cHVyZ2Vfc3Vi aWQgPSBwcmV2X3B1cmdlX3N1YmlkOworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOwog CiAJLyogZG9uJ3QgYWxsb3cgbW9yZSBjaGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFibGUgaXMg SU1NVVRBQkxFICovCiAJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkKQEAgLTg3MCw2ICsxMTQxLDgg QEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCWVsc2UKIAkJc3Zhci0+aXNfdmFs aWQgPSBmYWxzZTsKIAorcmVpbml0OgorCiAJLyoKIAkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHll dCBpbml0aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CiAJICogYmUg dmFsaWRhdGVkLgpAQCAtOTAyLDYgKzExNzUsMjggQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lk IHZhcmlkKQogCQkJIHZhcmlkKTsKIAl9CiAKKwkvKgorCSAqIFRyYW5zYWN0aW9uYWwgdmFyaWFi bGVzIHNob3VsZCBiZSBwdXJnZWQgYmVmb3JlIChyZW1vdmUKKwkgKiB2ZXJzaW9ucyBjcmVhdGVk IGJ5IHBvc3NpYmx5IHJldmVydGVkIHN1YnRyYW5zYWN0aW9ucykuCisJICovCisJaWYgKHN2YXIt PmlzX3RyYW5zYWN0ICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBHZXRDdXJyZW50U3ViVHJh bnNhY3Rpb25JZCgpICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNh Y3Rpb25JZCkKKwl7CisJCWlmICghcHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJewor CQkJLyogZm9yY2UgcmVpbml0ICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCisJCQkv KgorCQkJICogSW4gbmV4dCBpdGVyYXRpb24gbW9kaWZ5X3N1YmlkIHNob3VsZCBiZQorCQkJICog SW52YWxpZFN1YlRyYW5zYWN0aW9uSWQgb3IgY3VycmVudCBzdWJpZCwKKwkJCSAqIHNvIHRoZXJl IGlzIG5vdCByaXNrIG9mIGluZmluaXR5IGN5Y2xlLgorCQkJICovCisJCQlnb3RvIHJlaW5pdDsK KwkJfQorCX0KKwogCS8qIEVuc3VyZSBzbyByZXR1cm5lZCBkYXRhIGlzIHN0aWxsIGNvcnJlY3Qg ZG9tYWluICovCiAJaWYgKHN2YXItPmlzX2RvbWFpbikKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAyYzI3 ZGFkOGQxMy4uYTEyYjA4OTBmNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjgzLDcgKzY4Myw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0b3JfbnVsbF9j bGF1c2Vfb3B0CiAJCQkJanNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAot JXR5cGUgPGJvb2xlYW4+CQlPcHROb3ROdWxsIE9wdEltbXV0YWJsZQorJXR5cGUgPGJvb2xlYW4+ CQlPcHROb3ROdWxsIE9wdEltbXV0YWJsZSBPcHRUcmFuc2FjdGlvbmFsCiAKIC8qCiAgKiBOb24t a2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4 IiBsZXhlci4KQEAgLTc4OCw3ICs3ODgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZp ZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVNV QlNDUklQVElPTiBTVUJTVFJJTkcgU1VQUE9SVCBTWU1NRVRSSUMgU1lTSUQgU1lTVEVNX1AgU1lT VEVNX1VTRVIKIAogCVRBQkxFIFRBQkxFUyBUQUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdFVCBU RU1QIFRFTVBMQVRFIFRFTVBPUkFSWSBURVhUX1AgVEhFTgotCVRJRVMgVElNRSBUSU1FU1RBTVAg VE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNGT1JNCisJVElFUyBUSU1FIFRJTUVTVEFNUCBU TyBUUkFJTElORyBUUkFOU0FDVElPTiBUUkFOU0FDVElPTkFMIFRSQU5TRk9STQogCVRSRUFUIFRS SUdHRVIgVFJJTSBUUlVFX1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKQEAg LTUyMzIsMzEgKzUyMzIsMzMgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVt cCBPcHRJbW11dGFibGUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9w dF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRB Y3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1tdXRh YmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9j bGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9u CiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKLQkJCQkJJDUtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPmlz X2ltbXV0YWJsZSA9ICQzOwotCQkJCQluLT52YXJpYWJsZSA9ICQ1OwotCQkJCQluLT50eXBlTmFt ZSA9ICQ3OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDg7Ci0JCQkJ CW4tPm5vdF9udWxsID0gJDk7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTA7Ci0JCQkJCW4tPlhhY3RF bmRBY3Rpb24gPSAkMTE7CisJCQkJCSQ2LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5p c19pbW11dGFibGUgPSAkNDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+dmFy aWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMDsKKwkJCQkJbi0+ ZGVmZXhwciA9ICQxMTsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJbi0+aWZf bm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBD UkVBVEUgT3B0VGVtcCBPcHRJbW11dGFibGUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxp ZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBP cHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRU ZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNU UyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5v dE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3Rt dCk7Ci0JCQkJCSQ4LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUg PSAkMzsKLQkJCQkJbi0+dmFyaWFibGUgPSAkODsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkMTA7Ci0J CQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTE7Ci0JCQkJCW4tPm5vdF9u dWxsID0gJDEyOwotCQkJCQluLT5kZWZleHByID0gJDEzOwotCQkJCQluLT5YYWN0RW5kQWN0aW9u ID0gJDE0OworCQkJCQkkOS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRh YmxlID0gJDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0g JDk7CisJCQkJCW4tPnR5cGVOYW1lID0gJDExOworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxh dGVDbGF1c2UgKikgJDEyOworCQkJCQluLT5ub3RfbnVsbCA9ICQxMzsKKwkJCQkJbi0+ZGVmZXhw ciA9ICQxNDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNTsKIAkJCQkJbi0+aWZfbm90X2V4 aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01Mjg0LDYgKzUy ODYsMTIgQEAgT3B0SW1tdXRhYmxlOiBJTU1VVEFCTEUJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CiAJ CQl8IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKK09wdFRyYW5zYWN0 aW9uYWw6CisJCQlUUkFOU0FDVElPTgkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgVFJBTlNB Q1RJT05BTAkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQk ID0gZmFsc2U7IH0KKwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBF WFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTE4MDQ1LDYgKzE4MDUzLDcg QEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBURVhUX1AKIAkJCXwgVElFUwogCQkJfCBUUkFO U0FDVElPTgorCQkJfCBUUkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUklHR0VS CiAJCQl8IFRSVU5DQVRFCkBAIC0xODY5NSw2ICsxODcwNCw3IEBAIGJhcmVfbGFiZWxfa2V5d29y ZDoKIAkJCXwgVElNRVNUQU1QCiAJCQl8IFRSQUlMSU5HCiAJCQl8IFRSQU5TQUNUSU9OCisJCQl8 IFRSQU5TQUNUSU9OQUwKIAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSRUFUCiAJCQl8IFRSSUdHRVIK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jCmluZGV4IDRjMjJjZTk1NTNiLi5kOWZjOWIyZDVjOCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBA IC01MzM2LDYgKzUzMzYsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlp X3ZhcmNvbGxhdGlvbjsKIAlpbnQJCQlpX3Zhcm5vdG51bGw7CiAJaW50CQkJaV92YXJpc2ltbXV0 YWJsZTsKKwlpbnQJCQlpX3ZhcmlzdHJhbnNhY3Q7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJ aV9hY2xkZWZhdWx0OwogCWludAkJCWksCkBAIC01MzYwLDYgKzUzNjEsNyBAQCBnZXRWYXJpYWJs ZXMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4i CiAJCQkJCSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcmlz aW1tdXRhYmxlLFxuIgorCQkJCQkgICIgICAgICAgdi52YXJpc3RyYW5zYWN0LFxuIgogCQkJCQkg ICIgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVm ZXhwcixcbiIKIAkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkg ICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKQEAg LTUzODIsNiArNTM4NCw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFyY29s bGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOwogCWlfdmFybm90bnVsbCA9 IFBRZm51bWJlcihyZXMsICJ2YXJub3RudWxsIik7CiAJaV92YXJpc2ltbXV0YWJsZSA9IFBRZm51 bWJlcihyZXMsICJ2YXJpc2ltbXV0YWJsZSIpOworCWlfdmFyaXN0cmFuc2FjdCA9IFBRZm51bWJl cihyZXMsICJ2YXJpc3RyYW5zYWN0Iik7CiAKIAlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywg InZhcm93bmVyIik7CiAJaV92YXJhY2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNsIik7CkBAIC01 NDEwLDYgKzU0MTMsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJdmFyaW5mb1tp XS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9u KSk7CiAJCXZhcmluZm9baV0udmFybm90bnVsbCA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFy bm90bnVsbCkpID09ICd0JzsKIAkJdmFyaW5mb1tpXS52YXJpc2ltbXV0YWJsZSA9ICooUFFnZXR2 YWx1ZShyZXMsIGksIGlfdmFyaXNpbW11dGFibGUpKSA9PSAndCc7CisJCXZhcmluZm9baV0udmFy aXN0cmFuc2FjdCA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyaXN0cmFuc2FjdCkpID09ICd0 JzsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQ UWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NDU3LDYgKzU0NjEsNyBAQCBk dW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQog CWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29uc3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsK IAljb25zdCBjaGFyICp2YXJpc2ltbXV0YWJsZTsKKwljb25zdCBjaGFyICp2YXJpc3RyYW5zYWN0 OwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIAlib29sCQl2YXJub3RudWxsOwogCkBAIC01NDc0LDEy ICs1NDc5LDEzIEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUlu Zm8gKnZhcmluZm8pCiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOwogCXZh cm5vdG51bGwgPSB2YXJpbmZvLT52YXJub3RudWxsOwogCXZhcmlzaW1tdXRhYmxlID0gdmFyaW5m by0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKKwl2YXJpc3RyYW5zYWN0ID0g dmFyaW5mby0+dmFyaXN0cmFuc2FjdCA/ICJUUkFOU0FDVElPTkFMICIgOiAiIjsKIAogCWFwcGVu ZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFy bmFtZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAlc1ZBUklBQkxFICVz IEFTICVzIiwKLQkJCQkJICB2YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUp OworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFICVzJXNWQVJJQUJMRSAlcyBBUyAl cyIsCisJCQkJCSAgdmFyaXN0cmFuc2FjdCwgdmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2 YXJ0eXBuYW1lKTsKIAogCWlmIChPaWRJc1ZhbGlkKHZhcmNvbGxhdGlvbikpCiAJewpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKaW5kZXggY2JiMDZiNjZmNzQuLjIyYmNhY2UzMzBlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcxMiw2 ICs3MTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY29uc3QgY2hhciAqcm9s bmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLwogCWJvb2wJCXZhcm5v dG51bGw7CiAJYm9vbAkJdmFyaXNpbW11dGFibGU7CisJYm9vbAkJdmFyaXN0cmFuc2FjdDsKIH0g VmFyaWFibGVJbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA5ZWJmZDZk YmE3Mi4uODY5ZTA5ZmIzZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC00MDMxLDYg KzQwMzEsNDIgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFRSQU5TQUNU SU9OQUwgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwK KwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVy ID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTggQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUNSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTggQVMgaW50 ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9z Y2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+ IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1 cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1V VEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwK KwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVy ID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJM RSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU5IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4g cXIvXgorCQkJXFFDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlOSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1 bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAx LAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEs CisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFU RSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9z cWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggMTVjYTc3 Nzk5NmEuLmNlMDc0YTAwYjhiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwor KysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTE1OSw3ICs1MTU5LDcgQEAgbGlzdFZh cmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJE YXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQu cG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAw KQogCXsKQEAgLTUxODIsNiArNTE4Miw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlk KHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBOT1Qgdi52YXJub3RudWxsIGFz IFwiJXNcIixcbiIKIAkJCQkJICAiICBOT1Qgdi52YXJpc2ltbXV0YWJsZSBhcyBcIiVzXCIsXG4i CisJCQkJCSAgIiAgdi52YXJpc3RyYW5zYWN0IGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19j YXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkg ICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVO ICdPTiBDT01NSVQgRFJPUCdcbiIKQEAgLTUxOTQsNiArNTE5NSw3IEBAIGxpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgi T3duZXIiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk51bGxhYmxlIiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJNdXRhYmxlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCA0ZDZhOTQz NzEyZi4uMDJjNjQxYWNkMWYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTEyODQsNiArMTI4NCw4IEBA IHN0YXRpYyBjb25zdCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0ZVtdID0gewogCQkJ CQkJCQkJCQkJCQkJCQkJCSAqIFRBQkxFIC4uLiAqLwogCXsiVEVYVCBTRUFSQ0giLCBOVUxMLCBO VUxMLCBOVUxMfSwKIAl7IlRSQU5TRk9STSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5H X05PX0FMVEVSfSwKKwl7IlRSQU5TQUNUSU9OQUwiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBU SElOR19OT19EUk9QIHwgVEhJTkdfTk9fQUxURVJ9LCAvKiBmb3IgQ1JFQVRFIFRSQU5TQUNUSU9O QUwKKwkJCQkJCQkJCQkJCQkJCQkJCQkJKiBWQVJJQUJMRSAuLi4gKi8KIAl7IlRSSUdHRVIiLCAi U0VMRUNUIHRnbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfdHJpZ2dlciBXSEVSRSB0Z25hbWUgTElL RSAnJXMnIEFORCBOT1QgdGdpc2ludGVybmFsIn0sCiAJeyJUWVBFIiwgTlVMTCwgTlVMTCwgJlF1 ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlc30sCiAJeyJVTklRVUUiLCBOVUxMLCBOVUxMLCBOVUxM LCBOVUxMLCBUSElOR19OT19EUk9QIHwgVEhJTkdfTk9fQUxURVJ9LCAvKiBmb3IgQ1JFQVRFIFVO SVFVRQpAQCAtMzU5Niw4ICszNTk4LDExIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0 ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJfQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBh bGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBD b21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChNYXRj aGVzKCJDUkVBVEUiLCAiVFJBTlNBQ1RJT058VFJBTlNBQ1RJT05BTCIpKQorCQlDT01QTEVURV9X SVRIKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JF QVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVN UE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIlRSQU5T QUNUSU9OfFRSQU5TQUNUSU9OQUwiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWls TWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9X SVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAi QVMiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCA1OGI1NzNmYWU0OS4uZDNmZThj ZjY1NTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTYwLDYgKzYwLDkgQEAgQ0FU QUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBkb24ndCBhbGxv dyBjaGFuZ2VzICovCiAJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CiAKKwkv KiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMgKi8KKwlib29sCQl2YXJpc3RyYW5zYWN0IEJLSV9ERUZB VUxUKGYpOworCiAJLyogYWN0aW9uIG9uIHRyYW5zYWN0aW9uIGVuZCAqLwogCWNoYXIJCXZhcnhh Y3RlbmRhY3Rpb24gQktJX0RFRkFVTFQobik7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAw Y2M1NjBkNTM4Zi4uMWY5ODFiYThjODUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NTks NiArMzQ1OSw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJYm9vbAkJ aWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLwogCWJv b2wJCW5vdF9udWxsOwkJLyogZGlzYWxsb3cgbnVsbHMgKi8KIAlib29sCQlpc19pbW11dGFibGU7 CS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KKwlib29sCQlpc190cmFuc2FjdDsJLyogc3VwcG9y dHMgdHJhbnNhY3Rpb25zICovCiAJTm9kZQkgICAqZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVz c2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rp b24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggMmU4OGQ3 ZDk1MDguLjc1M2NmMzYwZGI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00NTcsNiArNDU3LDcgQEAg UEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwp CiBQR19LRVlXT1JEKCJ0cmFpbGluZyIsIFRSQUlMSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBUUkFOU0FDVElPTiwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidHJhbnNhY3Rpb25hbCIsIFRSQU5T QUNUSU9OQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRy YW5zZm9ybSIsIFRSQU5TRk9STSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgidHJlYXQiLCBUUkVBVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInRyaWdnZXIiLCBUUklHR0VSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA0NTFmZGRlMzFjZS4uNzVmMTcz ZDIzMzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNTgzMywyMCArNTgzMywy MCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVn cmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09M TEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwot IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xs YXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJh bnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3Mg cHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNo YXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQg ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIx IElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxl IHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAg ICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9u ICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hh cmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAg ICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVz Y3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAg ICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAg ICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBN dXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAg IERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIg ICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CkBAIC02MzE0LDkgKzYzMTQsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkViAi bm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8 IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwg ZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNj aGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY0ODksOSArNjQ4OSw5IEBAIGltcHJvcGVyIHF1YWxp ZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgog aW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwg T3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRh dGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjYyOCw5ICs2NjI4 LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERl ZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8 IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0g YWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggNDE1Y2YyYzgyYmEuLmYxMzA3OGM5MTkxIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDUsMTEgKzQ1LDExIEBA IFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3Zh cnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZBVUxUOwogXGRWKyBzdmFydGVzdC52 YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSAgU2No ZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBE ZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAgICAgICB8ICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgIFNjaGVtYSAgfCBOYW1l IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJs ZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFy dGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l ciB8IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zh cmlhYmxlX293bmVyK3wgCisgICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAogKDEgcm93KQogCiBEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNzQ3LDMgKzE3NDcsMTAzIEBAIFNFTEVDVCB2YXIx OwogTEVUIHZhcjEgPSAzMDsKIEVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEi IGlzIGRlY2xhcmVkIElNTVVUQUJMRQogRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCB0cmFu c2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGlu dCBERUZBVUxUIDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CisgdHYg IAorLS0tLS0KKyAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgdHYgCist LS0tCisgIDAKKygxIHJvdykKKworTEVUIHR2ID0gMTAwOworQkVHSU47CisgIExFVCB0diA9IDEw MDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykK KworQkVHSU47CisgIExFVCB0diA9IDA7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMAor KDEgcm93KQorCitST0xMQkFDSzsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAor KDEgcm93KQorCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworQkVHSU47CisgIExFVCB0diA9IDE7 CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0diA9 IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAyCisoMSBy b3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworIHR2 IAorLS0tLQorICAxCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworICB0diAgCist LS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5U IHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJB Q0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExF VCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAg MQorKDEgcm93KQorCitDT01NSVQ7CitTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJv dykKKworRFJPUCBWQVJJQUJMRSB0djsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbAppbmRleCAwNzQ2MTljNGEwZS4uYzcxYjkwZGM4NWYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTExOTYsMyArMTE5Niw2MSBAQCBT RUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g dGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9OIFZBUklBQkxF IHR2IEFTIGludCBERUZBVUxUIDA7CisKK0JFR0lOOworICBMRVQgdHYgPSAxMDA7CisgIFNFTEVD VCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0xFVCB0diA9IDEwMDsKK0JFR0lOOwor ICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworCitTRUxFQ1QgdHY7CisKK0JFR0lOOworICBMRVQg dHYgPSAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCistLSB0ZXN0 IHN1YnRyYW5zYWN0aW9ucworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsK KyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRP IHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNF TEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0JFR0lOOworICBMRVQgdHYgPSAx OworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBMRVQgdHYg PSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAgTEVUIHR2ID0gMTA7CitST0xM QkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworQ09NTUlUOworCitTRUxFQ1QgdHY7CisKK0RST1Ag VkFSSUFCTEUgdHY7Ci0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0016-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20240730-0016-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwjk4 RnJvbSBkMTNiYjE4NjM3Y2RlY2RmODgyMmQ2ZTgwYmU5Y2M2NGVlNWEzMjI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2 LzIwXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAg ICAgICAgICAgIHwgMTIgKysrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICAgfCAgOCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMgICAgICAgICAgICAg fCAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgfCAgMiArCiBz cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggICAgICAgICAgICAgfCAgNCArKwogc3JjL3BsL3Bs cGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysr KysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgICAgICAgICAgIHwgMjQgKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAgICB8IDI4ICsrKysr KysrKysrKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCB8ICAxICsK IHNyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmggICAgICAgICAgICB8IDEyICsrKysrKwogc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgIHwgIDEgKwogMTIgZmlsZXMgY2hh bmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4 IGU1MTZjMGE2N2M2Li5jMzE5MWZkYzQzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5ODMsNiArMjk4 Myw5IEBAIF9TUElfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04zOgogCQkJCWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIl c1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6 CisJCQkJZXJyY29udGV4dCgiTEVUIHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwg cXVlcnkpOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggZDM2NjFhOWFkNDguLjc2 MmUwNThhNDk3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTE5MjgsNiArMTkyOCwxOCBAQCB0cmFu c2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKIAogCXN0bXQt PnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CiAKKwkvKgorCSAqIEluc2lkZSBQTC9wZ1NRTCB3ZSBk b24ndCB3YW50IHRvIGV4ZWN1dGUgTEVUIHN0YXRlbWVudCBhcyB1dGlsaXR5CisJICogY29tbWFu ZCwgYmVjYXVzZSBpdCBkaXNhbGxvdyB0byBleGVjdXRlIGV4cHJlc3Npb24gYXMgc2ltcGxlCisJ ICogZXhwcmVzc2lvbi4gU28gZm9yIFBML3BnU1FMIHdlIGhhdmUgZXh0cmEgcGF0aCwgYW5kIHdl IHJldHVybiBTRUxFQ1QuCisJICogVGhlbiBpdCBjYW4gYmUgZXhlY3V0ZWQgYnkgZXhlY19ldmFs X2V4cHIuIFJlc3VsdCBpcyBkaXJyZWN0bHkgYXNzaWduZWQKKwkgKiB0byB0YXJnZXQgc2Vzc2lv biB2YXJpYWJsZSBpbnNpZGUgUEwvcGdTUUwgTEVUIHN0YXRlbWVudCBoYW5kbGVyLiBUaGlzCisJ ICogaXMgZXh0cmEgY29kZSwgZXh0cmEgcGF0aCwgYnV0IHBvc3NpYmlsaXR5IHRvIGdldCBmYXN0 ZXIgZXhlY3V0aW9uIGlzCisJICogdG9vIGF0dHJhY3RpdmUuCisJICovCisJaWYgKHN0bXQtPnBs cGdzcWxfbW9kZSkKKwkJcmV0dXJuIHF1ZXJ5OworCiAJLyogcmVwcmVzZW50IHRoZSBjb21tYW5k IGFzIGEgdXRpbGl0eSBRdWVyeSAqLwogCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlyZXN1 bHQtPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBhMTEyNWRjNjI3 Yi4uMmMyN2RhZDhkMTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtODMyLDYgKzgzMiw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04xCiAldG9rZW4JCU1P REVfUExQR1NRTF9BU1NJR04yCiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04zCisldG9rZW4J CU1PREVfUExQR1NRTF9MRVQKIAogCiAvKiBQcmVjZWRlbmNlOiBsb3dlc3QgdG8gaGlnaGVzdCAq LwpAQCAtOTYzLDYgKzk2NCwxMyBAQCBwYXJzZV90b3BsZXZlbDoKIAkJCQlwZ195eWdldF9leHRy YSh5eXNjYW5uZXIpLT5wYXJzZXRyZWUgPQogCQkJCQlsaXN0X21ha2UxKG1ha2VSYXdTdG10KChO b2RlICopIG4sIDApKTsKIAkJCX0KKwkJCXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7 CisJCQkJTGV0U3RtdCAqbiA9IChMZXRTdG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9 IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJ bGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZXIuYwppbmRleCAxMTg0ODhjM2YzMC4uZjk0MzBhMzI5MTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VyLmMKQEAgLTYyLDYgKzYyLDcgQEAgcmF3X3BhcnNlcihjb25zdCBjaGFyICpzdHIsIFJhd1Bh cnNlTW9kZSBtb2RlKQogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjFdID0gTU9ERV9QTFBH U1FMX0FTU0lHTjEsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMl0gPSBNT0RFX1BMUEdT UUxfQVNTSUdOMiwKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zXSA9IE1PREVfUExQR1NR TF9BU1NJR04zLAorCQkJW1JBV19QQVJTRV9QTFBHU1FMX0xFVF0gPSBNT0RFX1BMUEdTUUxfTEVU LAogCQl9OwogCiAJCXl5ZXh0cmEuaGF2ZV9sb29rYWhlYWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IDc2ZDc2NTZkN2Y3Li4wY2M1NjBkNTM4ZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMjEwOSw2ICsyMTA5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAogCU5vZGVU YWcJCXR5cGU7CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLwogCU5v ZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJYm9vbAkJcGxwZ3NxbF9t b2RlOwkvKiB0cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZAorCQkJCQkJCQkgKiAo cGFyc2VkKSBieSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlpbnQJCQlsb2NhdGlvbjsKIH0gTGV0U3Rt dDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlci5oCmluZGV4IGJlMTg0ZWM1MDY2Li5lZmJjNzZmMGFkNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdO bjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4g YSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdp dmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1 bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1l bnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3Rt dCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBl bnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJ R04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVU LAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBH VUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDIzOWIzMjUwYTk1Li44MGQ1MTJkMzBhMCAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZXhlYy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyOCw2ICszMjksOCBAQCBzdGF0 aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4ZWNfc3RtdF9yb2xs YmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBMcGdTUUxfc3RtdF9y b2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExwZ1NRTF9leGVjc3Rh dGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsKIAogc3RhdGljIHZv aWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTIwLDYgKzIxMjMsMTAgQEAgZXhlY19z dG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykKIAkJCQlyYyA9IGV4 ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCQlyYyA9IGV4ZWNf c3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJlbnQsIHNpbmNlIHRo aXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10ID0gc2F2ZV9lc3Rt dDsKQEAgLTUwMDEsNiArNTAwOCw1NCBAQCBleGVjX3N0bXRfcm9sbGJhY2soUExwZ1NRTF9leGVj c3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQogCXJldHVybiBQTFBH U1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRfbGV0CQkJRXZhbHVh dGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBpbnRvIGEgc2Vzc2lv biB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAorZXhlY19zdG10X2xl dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQorewor CWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0eXBtb2Q7CisJRGF0 dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNvdXJjZXM7CisJQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19ldmFsX2V4cHIoZXN0 YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGwsCisJCQkJCQkgICAm dmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBPaWQgb2YgdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVyZS4gSXQgaXMKKwkg KiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUgcGxhbiB0aGFuIHRv IGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQsIGJlY2F1c2UgaXQn cyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBvZiB0aGUgY2FjaGVk IHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0CisJICogYW55IGFs bG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2YXJpZCBmcm9tIFF1 ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMgPSBTUElfcGxhbl9n ZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0X2xlbmd0aChwbGFu c291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVuZ3RoIG9mIHBsYW5z b3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFuc291cmNlID0gKENh Y2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlmIChsaXN0X2xlbmd0 aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRlbWVudCIpOworCisJ dmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVyeV9saXN0KS0+cmVz dWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxvZyhFUlJPUiwgIm9p ZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsKKworCVNldFNlc3Np b25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKKworCXJl dHVybiBQTFBHU1FMX1JDX09LOworfQorCiAvKiAtLS0tLS0tLS0tCiAgKiBleGVjX2Fzc2lnbl9l eHByCQkJUHV0IGFuIGV4cHJlc3Npb24ncyByZXN1bHQgaW50byBhIHZhcmlhYmxlLgogICogLS0t LS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwppbmRleCBlZWI3YzRkN2MwNC4uMWIzOTM1MWRiN2Yg MTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9w bHBnc3FsL3NyYy9wbF9mdW5jcy5jCkBAIC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5 cGVuYW1lKFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQ TFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBH U1FMX1NUTVRfTEVUOgorCQkJcmV0dXJuICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7 CkBAIC0zNzAsNiArMzcyLDcgQEAgc3RhdGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3Rt dF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2Fs bCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpz dG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpz dG10KTsKK3N0YXRpYyB2b2lkIGZyZWVfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgZnJlZV9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2 Miw5IEBAIGZyZWVfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1U X1JPTExCQUNLOgogCQkJZnJlZV9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0 bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQ THBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJ CWJyZWFrOwpAQCAtNzEzLDYgKzcxOSwxMiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dl dGRpYWcgKnN0bXQpCiB7CiB9CiAKK3N0YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRf bGV0ICpzdG10KQoreworCWZyZWVfZXhwcihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQK IGZyZWVfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3Rh dGljIHZvaWQgZHVtcF9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRp YyB2b2lkIGR1bXBfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBk dW1wX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBf cm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBf bGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdT UUxfZXhwciAqZXhwcik7CiAKIApAQCAtOTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FM X3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xs YmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2Ug UExQR1NRTF9TVE1UX0xFVDoKKwkJCWR1bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQp OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNt ZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2 LDE0IEBAIGR1bXBfZ2V0ZGlhZyhQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYo IlxuIik7CiB9CiAKK3N0YXRpYyB2b2lkCitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10 KQoreworCWR1bXBfaW5kKCk7CisJZHVtcF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4i KTsKK30KKwogc3RhdGljIHZvaWQKIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2dyYW0ueQppbmRleCAwNjcxZmY3ODcyMi4uNGY5ODI2MWFjNjkgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2dyYW0ueQpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFy YW1ldGVycyhQTHBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXR5cGUgPHN0bXQ+CXN0bXRfcmV0 dXJuIHN0bXRfcmFpc2Ugc3RtdF9hc3NlcnQgc3RtdF9leGVjc3FsCiAldHlwZSA8c3RtdD4Jc3Rt dF9keW5leGVjdXRlIHN0bXRfZm9yIHN0bXRfcGVyZm9ybSBzdG10X2NhbGwgc3RtdF9nZXRkaWFn CiAldHlwZSA8c3RtdD4Jc3RtdF9vcGVuIHN0bXRfZmV0Y2ggc3RtdF9tb3ZlIHN0bXRfY2xvc2Ug c3RtdF9udWxsCi0ldHlwZSA8c3RtdD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjaworJXR5cGUg PHN0bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sgc3RtdF9sZXQKICV0eXBlIDxzdG10Pglz dG10X2Nhc2Ugc3RtdF9mb3JlYWNoX2EKIAogJXR5cGUgPGxpc3Q+CXByb2NfZXhjZXB0aW9ucwpA QCAtMzA2LDYgKzMwNiw3IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFyYW1ldGVycyhQ THBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXRva2VuIDxrZXl3b3JkPglLX0lOVE8KICV0b2tl biA8a2V5d29yZD4JS19JUwogJXRva2VuIDxrZXl3b3JkPglLX0xBU1QKKyV0b2tlbiA8a2V5d29y ZD4JS19MRVQKICV0b2tlbiA8a2V5d29yZD4JS19MT0cKICV0b2tlbiA8a2V5d29yZD4JS19MT09Q CiAldG9rZW4gPGtleXdvcmQ+CUtfTUVSR0UKQEAgLTg3NSw2ICs4NzYsOCBAQCBwcm9jX3N0bXQJ CTogcGxfYmxvY2sgJzsnCiAJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQl8IHN0bXRfcm9sbGJhY2sK IAkJCQkJCXsgJCQgPSAkMTsgfQorCQkJCXwgc3RtdF9sZXQKKwkJCQkJCXsgJCQgPSAkMTsgfQog CQkJCTsKIAogc3RtdF9wZXJmb3JtCTogS19QRVJGT1JNCkBAIC05OTEsNiArOTk0LDI5IEBAIHN0 bXRfYXNzaWduCQk6IFRfREFUVU0KIAkJCQkJfQogCQkJCTsKIAorc3RtdF9sZXQJCTogS19MRVQK KwkJCQkJeworCQkJCQkJUExwZ1NRTF9zdG10X2xldCAqbmV3OworCQkJCQkJUmF3UGFyc2VNb2Rl IHBtb2RlOworCisJCQkJCQlwbW9kZSA9IFJBV19QQVJTRV9QTFBHU1FMX0xFVDsKKworCQkJCQkJ bmV3ID0gcGFsbG9jMChzaXplb2YoUExwZ1NRTF9zdG10X2xldCkpOworCQkJCQkJbmV3LT5jbWRf dHlwZSA9IFBMUEdTUUxfU1RNVF9MRVQ7CisJCQkJCQluZXctPmxpbmVubyAgID0gcGxwZ3NxbF9s b2NhdGlvbl90b19saW5lbm8oQDEpOworCQkJCQkJbmV3LT5zdG10aWQgPSArK3BscGdzcWxfY3Vy cl9jb21waWxlLT5uc3RhdGVtZW50czsKKworCQkJCQkJLyogUHVzaCBiYWNrIHRoZSBoZWFkIG5h bWUgdG8gaW5jbHVkZSBpdCBpbiB0aGUgc3RtdCAqLworCQkJCQkJcGxwZ3NxbF9wdXNoX2JhY2tf dG9rZW4oS19MRVQpOworCQkJCQkJbmV3LT5leHByID0gcmVhZF9zcWxfY29uc3RydWN0KCc7Jywg MCwgMCwgIjsiLAorCQkJCQkJCQkJCQkJCSAgIHBtb2RlLAorCQkJCQkJCQkJCQkJCSAgIGZhbHNl LCB0cnVlLAorCQkJCQkJCQkJCQkJCSAgIE5VTEwsIE5VTEwpOworCisJCQkJCQkkJCA9IChQTHBn U1FMX3N0bXQgKiluZXc7CisJCQkJCX0KKwkJCQk7CisKIHN0bXRfZ2V0ZGlhZwk6IEtfR0VUIGdl dGRpYWdfYXJlYV9vcHQgS19ESUFHTk9TVElDUyBnZXRkaWFnX2xpc3QgJzsnCiAJCQkJCXsKIAkJ CQkJCVBMcGdTUUxfc3RtdF9nZXRkaWFnICpuZXc7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2 ZWRfa3dsaXN0LmgKaW5kZXggZDMzOGU5ZjYzNzQuLmJlOTRhYTc1MWE0IDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQo ImZyb20iLCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlXT1JEKCJpbiIs IEtfSU4pCiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgibGV0IiwgS19M RVQpCiBQR19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90IiwgS19OT1Qp CiBQR19LRVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwv c3JjL3BscGdzcWwuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKaW5kZXggNTBjM2Iy ODQ3MmIuLmJiNDAwNjI5YWRiIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBA QCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQ TFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxfU1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NU TVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsKIAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAg dHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fzc2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsK IH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoKKyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlw ZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAoreworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90 eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25lZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhw ciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsKKwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50 CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYjU5YWZkNzkyMDIuLmJmOTFlNjA0 N2NlIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTg4Niw2ICsxODg2LDcgQEAgUExw Z1NRTF9zdG10X2ZvcnEKIFBMcGdTUUxfc3RtdF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwog UExwZ1NRTF9zdG10X2lmCitQTHBnU1FMX3N0bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExw Z1NRTF9zdG10X29wZW4KIFBMcGdTUUxfc3RtdF9wZXJmb3JtCi0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0017-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20240730-0017-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwjd3 RnJvbSBmMjZkNjQ1YTAyM2FhNTQyNzIxYWZlNTY5YWYwNWM5YTJmMTllMmZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE3 LzIwXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAwOTJlZDIzNTNhYy4uZDk4Y2YyMmRhZWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3MzIsOCArNDczMiw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5MzcsMjEgKzQ5MzYsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwKIAkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4dCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGNiZmYzODYzYzEw Li5hNzViYzY5ZWU4YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTEwNCw3ICsxMDQsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4 KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQotQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCkBAIC0yMTEsMTAgKzIxMCwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CiAKIC0tIGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEo c3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8 ICcsICc6OnRleHQpIHx8ICgodmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkK ICgyIHJvd3MpCiAKIERST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40NS4yCgo= --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0020-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20240730-0020-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwi80 RnJvbSA3NTFmNDYzZjA0OWUyNmIzZGZhYTI5NWZlNzZiZDllMzE5OWI1ZTk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDIxIEp1bCAyMDI0IDE3OjA0OjQxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMC8yMF0gcGdfcmVzdG9yZSAtQSwgLS12YXJpYWJsZQoKcG9zc2liaWxpdHkgdG8gcmVz dG9yZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9wZ19yZXN0b3JlLnNnbWwgfCAxMSArKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X3Jlc3RvcmUuYyAgICAgfCAgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdf cmVzdG9yZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggMmUz YmE4MDI1ODEuLjk1MmY1MmIxZjlkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jl c3RvcmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2 LDYgKzEwNiwxNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVy bT48b3B0aW9uPi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zhcmlh YmxlPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0t dmFyaWFibGU9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8 L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11 bHRpcGxlIHNlc3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBt dWx0aXBsZSA8b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+ PG9wdGlvbj4tLWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggZGYx MTk1OTFjY2EuLmE3YzNhZTliZmQxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVz dG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTEwNSw2ICsxMDUs NyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJ0cmlnZ2VyIiwgMSwgTlVMTCwg J1QnfSwKIAkJeyJ1c2UtbGlzdCIsIDEsIE5VTEwsICdMJ30sCiAJCXsidXNlcm5hbWUiLCAxLCBO VUxMLCAnVSd9LAorCQl7InZhcmlhYmxlIiwgMSwgTlVMTCwgJ0EnfSwKIAkJeyJ2ZXJib3NlIiwg MCwgTlVMTCwgJ3YnfSwKIAkJeyJzaW5nbGUtdHJhbnNhY3Rpb24iLCAwLCBOVUxMLCAnMSd9LAog CkBAIC0xNTUsNyArMTU2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCX0KIAl9 CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWNDZDplZjpGOmg6STpq OmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4MSIsCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmco YXJnYywgYXJndiwgIkE6YWNDZDplZjpGOmg6STpqOmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4 MSIsCiAJCQkJCQkJY21kb3B0cywgTlVMTCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAt MTYzLDYgKzE2NCwxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNhc2UgJ2En OgkJCS8qIER1bXAgZGF0YSBvbmx5ICovCiAJCQkJb3B0cy0+ZGF0YU9ubHkgPSAxOwogCQkJCWJy ZWFrOworCQkJY2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9 IDE7CisJCQkJb3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9h cHBlbmQoJm9wdHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNl ICdjJzoJCQkvKiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwog CQkJCW9wdHMtPmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDYzLDYgKzQ2OSw3IEBA IHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250 cm9sbGluZyB0aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkg ICAgICAgICAgICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJp bnRmKF8oIiAgLUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Np b24gdmFyaWFibGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAg ICAgIGNsZWFuIChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7 CiAJcHJpbnRmKF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRh cmdldCBkYXRhYmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAg ICAgICAgZXhpdCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40 NS4yCgo= --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20240730-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwjq5 RnJvbSAzNGUzNzMwYTM1MTE4OWYyMzBmOGE4MjRjMjNhMmFlYWE0ZjgxMjVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDc6NTc6MjkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1 LzIwXSBhbGxvdyBwYXJhbGxlbCBleGVjdXRpb24gcXVlcmllcyB3aXRoIHNlc3Npb24gdmFyaWFi bGVzCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDEyICstCiA0IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj TWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBmMmZiNjgwZGVm Yy4uNGZiZTdjNzE4NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWlu LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMjAzLDcgKzIwMywx OSBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZs YWdzKQogCSAqIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGNvcGllZCB0byBkZWRpY2F0 ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CiAJICogaXMgcGFzc2VkIHRvIGV4ZWN1dG9yLgogCSAq LwotCWlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChx dWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVu IGEgcGFyYWxsZWwgcXVlcnkgbmVlZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1 ZGluZworCQkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Np b24gdmFyaWFibGVzIGFyZQorCQkgKiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURl c2MgYWxyZWFkeS4gU28ganVzdCBwdXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBl eGVjdXRvcidzIGVzdGF0ZS4KKwkJICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOwor CQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3Zhcmlh YmxlczsKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51 bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3Rt dC0+c2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlpbnQJCQluU2Vz c2lvblZhcmlhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYmZiMzQx OWVmYjcuLmNiNDM0ZTI3NjhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAt MTIsOCArMTIsOSBAQAogICogd29ya2VycyBhbmQgZW5zdXJpbmcgdGhhdCB0aGVpciBzdGF0ZSBn ZW5lcmFsbHkgbWF0Y2hlcyB0aGF0IG9mIHRoZQogICogbGVhZGVyOyBzZWUgc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vUkVBRE1FLnBhcmFsbGVsIGZvciBkZXRhaWxzLgogICogSG93ZXZlciwg d2UgbXVzdCBzYXZlIGFuZCByZXN0b3JlIHJlbGV2YW50IGV4ZWN1dG9yIHN0YXRlLCBzdWNoIGFz Ci0gKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIv V0FMIHVzYWdlIGluZm8sIGFuZAotICogdGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBhc3NlZCBkb3du IHRvIHRoZSB3b3JrZXIuCisgKiBhbnkgUGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhl IHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdlIGluZm8sCisgKiBzZXNzaW9uIHZhcmlhYmxlcyBidWZm ZXIsIGFuZCB0aGUgYWN0dWFsIHBsYW4gdG8gYmUgcGFzc2VkIGRvd24gdG8KKyAqIHRoZSB3b3Jr ZXIuCiAgKgogICogSURFTlRJRklDQVRJT04KICAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1BhcmFsbGVsLmMKQEAgLTY0LDYgKzY1LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZ X1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxf S0VZX0pJVF9JTlNUUlVNRU5UQVRJT04gVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQog I2RlZmluZSBQQVJBTExFTF9LRVlfV0FMX1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAw MDAwMDBBKQorI2RlZmluZSBQQVJBTExFTF9LRVlfU0VTU0lPTl9WQVJJQUJMRVMJVUlOVDY0Q09O U1QoMHhFMDAwMDAwMDAwMDAwMDBCKQogCiAjZGVmaW5lIFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJ WkUJCTY1NTM2CiAKQEAgLTEzOCw2ICsxNDAsMTIgQEAgc3RhdGljIGJvb2wgRXhlY1BhcmFsbGVs UmV0cmlldmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiAvKiBIZWxwZXIg ZnVuY3Rpb24gdGhhdCBydW5zIGluIHRoZSBwYXJhbGxlbCB3b3JrZXIuICovCiBzdGF0aWMgRGVz dFJlY2VpdmVyICpFeGVjUGFyYWxsZWxHZXRSZWNlaXZlcihkc21fc2VnbWVudCAqc2VnLCBzaG1f dG9jICp0b2MpOwogCisvKiBIZWxwZXIgZnVuY3Rpb25zIHRoYXQgY2FuIHBhc3MgdmFsdWVzIG9m IHNlc3Npb24gdmFyaWFibGVzICovCitzdGF0aWMgU2l6ZSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJs ZXMoRVN0YXRlICplc3RhdGUpOworc3RhdGljIHZvaWQgU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxl cyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAqKnN0YXJ0X2FkZHJlc3MpOworc3RhdGljIFNlc3Npb25W YXJpYWJsZVZhbHVlICpSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVz cywKKwkJCQkJCQkJCQkJCQkgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAvKgogICog Q3JlYXRlIGEgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhbiB0byBiZSBzZW50 IHRvIGVhY2ggd29ya2VyLgogICovCkBAIC01OTYsNiArNjA0LDcgQEAgRXhlY0luaXRQYXJhbGxl bFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBz dG10X2RhdGE7CiAJY2hhcgkgICAqcHN0bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5m b19zcGFjZTsKKwljaGFyCSAgICpzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZTsKIAlCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2Vfc3BhY2U7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2Vfc3BhY2U7CiAJU2hhcmVk RXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC02MDUs NiArNjE0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVT dGF0ZSAqZXN0YXRlLAogCWludAkJCWluc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWpp dF9pbnN0cnVtZW50YXRpb25fbGVuID0gMDsKIAlpbnQJCQlpbnN0cnVtZW50X29mZnNldCA9IDA7 CisJaW50CQkJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gMDsKIAlTaXplCQlkc2FfbWluc2l6ZSA9 IGRzYV9taW5pbXVtX3NpemUoKTsKIAljaGFyCSAgICpxdWVyeV9zdHJpbmc7CiAJaW50CQkJcXVl cnlfbGVuOwpAQCAtNjYwLDYgKzY3MCwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBwYXJhbWxpc3RpbmZvX2xlbik7CiAJc2htX3RvY19lc3RpbWF0ZV9r ZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOwogCisJLyogRXN0aW1hdGUgc3BhY2UgZm9yIHNlcmlh bGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gRXN0 aW1hdGVTZXNzaW9uVmFyaWFibGVzKGVzdGF0ZSk7CisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygm cGN4dC0+ZXN0aW1hdG9yLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfZXN0aW1h dGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKKwogCS8qCiAJICogRXN0aW1hdGUgc3BhY2Ug Zm9yIEJ1ZmZlclVzYWdlLgogCSAqCkBAIC03NjEsNiArNzc2LDExIEBAIEV4ZWNJbml0UGFyYWxs ZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2lu c2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9QQVJBTUxJU1RJTkZPLCBwYXJhbWxpc3RpbmZv X3NwYWNlKTsKIAlTZXJpYWxpemVQYXJhbUxpc3QoZXN0YXRlLT5lc19wYXJhbV9saXN0X2luZm8s ICZwYXJhbWxpc3RpbmZvX3NwYWNlKTsKIAorCS8qIFN0b3JlIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2 YXJpYWJsZXMuICovCisJc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRl KHBjeHQtPnRvYywgc2Vzc2lvbl92YXJpYWJsZXNfbGVuKTsKKwlzaG1fdG9jX2luc2VydChwY3h0 LT50b2MsIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywgc2Vzc2lvbl92YXJpYWJsZXNf c3BhY2UpOworCVNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlLCAmc2Vzc2lvbl92YXJp YWJsZXNfc3BhY2UpOworCiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIGVhY2ggd29ya2VyJ3MgQnVm ZmVyVXNhZ2U7IG5vIG5lZWQgdG8gaW5pdGlhbGl6ZS4gKi8KIAlidWZ1c2FnZV9zcGFjZSA9IHNo bV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLAogCQkJCQkJCQkJICBtdWxfc2l6ZShzaXplb2YoQnVm ZmVyVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOwpAQCAtMTQxMSw2ICsxNDMxLDcgQEAgUGFyYWxs ZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCVNoYXJlZEppdElu c3RydW1lbnRhdGlvbiAqaml0X2luc3RydW1lbnRhdGlvbjsKIAlpbnQJCQlpbnN0cnVtZW50X29w dGlvbnMgPSAwOwogCXZvaWQJICAgKmFyZWFfc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbnZhcmlh YmxlX3NwYWNlOwogCWRzYV9hcmVhICAgKmFyZWE7CiAJUGFyYWxsZWxXb3JrZXJDb250ZXh0IHB3 Y3h0OwogCkBAIC0xNDM2LDYgKzE0NTcsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21l bnQgKnNlZywgc2htX3RvYyAqdG9jKQogCWFyZWFfc3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2Ms IFBBUkFMTEVMX0tFWV9EU0EsIGZhbHNlKTsKIAlhcmVhID0gZHNhX2F0dGFjaF9pbl9wbGFjZShh cmVhX3NwYWNlLCBzZWcpOwogCisJLyogUmVjb25zdHJ1Y3Qgc2Vzc2lvbiB2YXJpYWJsZXMuICov CisJc2Vzc2lvbnZhcmlhYmxlX3NwYWNlID0gc2htX3RvY19sb29rdXAodG9jLAorCQkJCQkJCQkJ CSAgIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUywKKwkJCQkJCQkJCQkgICBmYWxzZSk7 CisJcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlcyA9CisJCVJlc3RvcmVTZXNzaW9uVmFyaWFi bGVzKCZzZXNzaW9udmFyaWFibGVfc3BhY2UsCisJCQkJCQkJCSZxdWVyeURlc2MtPm51bV9zZXNz aW9uX3ZhcmlhYmxlcyk7CisKIAkvKiBTdGFydCB1cCB0aGUgZXhlY3V0b3IgKi8KIAlxdWVyeURl c2MtPnBsYW5uZWRzdG10LT5qaXRGbGFncyA9IGZwZXMtPmppdF9mbGFnczsKIAlFeGVjdXRvclN0 YXJ0KHF1ZXJ5RGVzYywgZnBlcy0+ZWZsYWdzKTsKQEAgLTE1MDQsMyArMTUzMywxMTcgQEAgUGFy YWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCUZyZWVRdWVy eURlc2MocXVlcnlEZXNjKTsKIAlyZWNlaXZlci0+ckRlc3Ryb3kocmVjZWl2ZXIpOwogfQorCisv KgorICogRXN0aW1hdGUgdGhlIGFtb3VudCBvZiBzcGFjZSByZXF1aXJlZCB0byBzZXJpYWxpemUg YSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgU2l6ZQorRXN0aW1hdGVTZXNzaW9uVmFy aWFibGVzKEVTdGF0ZSAqZXN0YXRlKQoreworCWludAkJCWk7CisJU2l6ZQkJc3ogPSBzaXplb2Yo aW50KTsKKworCWlmIChlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID09IE5VTEwpCisJCXJl dHVybiBzejsKKworCWZvciAoaSA9IDA7IGkgPCBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJ CXR5cGVPaWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2 YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQl0eXBlT2lkID0gc3Zh cnZhbC0+dHlwaWQ7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwgc2l6ZW9mKE9pZCkpOyAvKiBzcGFj ZSBmb3IgdHlwZSBPSUQgKi8KKworCQkvKiBzcGFjZSBmb3IgZGF0dW0vaXNudWxsICovCisJCUFz c2VydChPaWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5cGVPaWQsICZ0 eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJc3ogPSBhZGRfc2l6ZShzeiwKKwkJCQkJICBkYXR1bUVz dGltYXRlU3BhY2Uoc3ZhcnZhbC0+dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5 cExlbikpOworCX0KKworCXJldHVybiBzejsKK30KKworLyoKKyAqIFNlcmlhbGl6ZSBhIHNlc3Np b24gdmFyaWFibGVzIGJ1ZmZlciBpbnRvIGNhbGxlci1wcm92aWRlZCBzdG9yYWdlLgorICoKKyAq IFdlIHdyaXRlIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBmaXJzdCwgYXMgYSA0LWJ5dGUgaW50 ZWdlciwgYW5kIHRoZW4KKyAqIHdyaXRlIGRldGFpbHMgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHR1 cm4uICBUaGUgZGV0YWlscyBmb3IgZWFjaCBwYXJhbWV0ZXIKKyAqIGNvbnNpc3Qgb2YgYSA0LWJ5 dGUgdHlwZSBPSUQsIGFuZCB0aGVuIHRoZSBkYXR1bSBhcyBzZXJpYWxpemVkIGJ5CisgKiBkYXR1 bVNlcmlhbGl6ZSgpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhh dCB0aGVyZSBpcworICogZW5vdWdoIHN0b3JhZ2UgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBieXRl cyB0aGF0IHdpbGwgYmUgd3JpdHRlbjsgdXNlCisgKiBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMg dG8gZmluZCBvdXQgaG93IG1hbnkgd2lsbCBiZSBuZWVkZWQuCisgKiAqc3RhcnRfYWRkcmVzcyBp cyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aG9z ZQorICogd3JpdHRlbi4KKyAqCisgKiBSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyBjYW4gYmUgdXNl ZCB0byByZWNyZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgYnVmZmVyCisgKiBiYXNlZCBvbiB0aGUg c2VyaWFsaXplZCByZXByZXNlbnRhdGlvbjsKKyAqLworc3RhdGljIHZvaWQKK1NlcmlhbGl6ZVNl c3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipzdGFydF9hZGRyZXNzKQorewor CWludAkJCW5wYXJhbXM7CisJaW50CQkJaTsKKworCS8qIFdyaXRlIG51bWJlciBvZiBwYXJhbWV0 ZXJzLiAqLworCW5wYXJhbXMgPSBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwlt ZW1jcHkoKnN0YXJ0X2FkZHJlc3MsICZucGFyYW1zLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2Fk ZHJlc3MgKz0gc2l6ZW9mKGludCk7CisKKwkvKiBXcml0ZSBlYWNoIHBhcmFtZXRlciBpbiB0dXJu LiAqLworCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFi bGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJ Ym9vbAkJdHlwQnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzW2ldOworCQl0eXBlT2lkID0gc3ZhcnZhbC0+dHlwaWQ7CisKKwkJLyogV3JpdGUgdHlwZSBP SUQuICovCisJCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJnR5cGVPaWQsIHNpemVvZihPaWQpKTsK KwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQo dHlwZU9pZCkpOworCQlnZXRfdHlwbGVuYnl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFs KTsKKworCQlkYXR1bVNlcmlhbGl6ZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0 eXBCeVZhbCwgdHlwTGVuLAorCQkJCQkgICBzdGFydF9hZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRp YyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAqCitSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoq c3RhcnRfYWRkcmVzcywgaW50ICpudW1fc2Vzc2lvbl92YXJpYWJsZXMpCit7CisJU2Vzc2lvblZh cmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCWludAkJCWk7CisJaW50CQkJbnBhcmFt czsKKworCW1lbWNweSgmbnBhcmFtcywgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihpbnQpKTsKKwkq c3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCSpudW1fc2Vzc2lvbl92YXJpYWJsZXMg PSBucGFyYW1zOworCXNlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICop CisJCXBhbGxvYyhucGFyYW1zICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwlm b3IgKGkgPSAwOyBpIDwgbnBhcmFtczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUg KnN2YXJ2YWwgPSAmc2Vzc2lvbl92YXJpYWJsZXNbaV07CisKKwkJLyogUmVhZCB0eXBlIE9JRC4g Ki8KKwkJbWVtY3B5KCZzdmFydmFsLT50eXBpZCwgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihPaWQp KTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKE9pZCk7CisKKwkJLyogUmVhZCBkYXR1bS9p c251bGwuICovCisJCXN2YXJ2YWwtPnZhbHVlID0gZGF0dW1SZXN0b3JlKHN0YXJ0X2FkZHJlc3Ms ICZzdmFydmFsLT5pc251bGwpOworCX0KKworCXJldHVybiBzZXNzaW9uX3ZhcmlhYmxlczsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCAxYjFmYjZlY2Y4MS4uMDkyZWQy MzUzYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTkyNCwyNSArOTI0 LDE5IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxl bF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2UgY2FuJ3QgcGFzcyBQYXJh bXMgdG8gd29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhleSBhcmUgYWxzbwotCSAq IHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4gUGFyYW1z IG9yIGFyZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywg bWVhbmluZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2Vy cyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkgKiB0aGVuIHRoZWlyIHZh bHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1 bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklBQkxFCisJICogUGFyYW1z IG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5p bmcgdGhleQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3Ig Y2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhlbiB0aGVpciB2YWx1ZSBj YW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFt KSkKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQog CQkJcmV0dXJuIGZhbHNlOwogCi0JCS8qIFdlIGRvZXNuJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Np b24gdmFyaWFibGVzIHRvIHdvcmtlcnMgKi8KLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFS QU1fVkFSSUFCTEUpCi0JCXsKLQkJCWlmIChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFS QUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4dCkpCi0JCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQogCQlp ZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50 KGNvbnRleHQtPnNhZmVfcGFyYW1faWRzLCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMDVlNTk1 MjQwNWUuLmNiZmYzODYzYzEwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dApAQCAtNjI5LDEyICs2MjksMTQgQEAgU0VMRUNUIGNvdW50KCop IEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOwogCiAtLSBwYXJhbGxlbCBleGVjdXRp b24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50 KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOwotICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBZ2dyZWdhdGUKLSAgIC0+ICBTZXEg U2NhbiBvbiBzdmFyX3Rlc3QKLSAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKLSgz IHJvd3MpCisgICAtPiAgR2F0aGVyCisgICAgICAgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgICAg ICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgICAgICAgIEZp bHRlcjogKChhICUgMTApID0gemVybykKKyg1IHJvd3MpCiAKIExFVCB6ZXJvID0gKFNFTEVDVCBj b3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CiAtLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKLS0gCjIu NDUuMgoK --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20240730-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwjv6 RnJvbSA2MzA0NjNlOTA0ZGI1ZjMxOTBjM2VlZjY0MTZlOGNkYmY3MjIzOGJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDY6MzE6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDE0 LzIwXSBhbGxvdyByZWFkIGFuIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgZGlyZWN0bHkgZnJv bQogZXhwcmVzc2lvbiBleGVjdXRvcgoKVGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgY2FuIGJlIGNh bGxlZCBkaXJlY3RseSAobm90IGluc2lkZSBxdWVyeSBleGVjdXRvcikKd2hlbiBleHByZXNzaW9u IGlzIGV2YWx1YXRlZCBhcyBzaW1wbGUgZXhwcmVzc2lvbiBpbiBwbHBnc3FsIG9yIHdoZW4gZXhw cmVzc2lvbgppcyBhbiBhcmd1bWVudCBvZiBDQUxMIHN0YXRlbWVudC4gRm9yIHRoZXNlIGNhc2Vz IHdlIG5lZWQgdG8gYWxsb3cgZGlyZWN0CmFjY2VzcyB0byBjb250ZW50IG9mIHNlc3Npb24gdmFy aWFibGVzIGZyb20gZXhlY3V0b3IuIFdlIGNhbiBkbyBpdCwgYmVjYXVzZQp3ZSBrbm93IHNvIHRo ZSBleHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQgdW5kZXIgcXVlcnkgYW5kIGNhbm5vdCBiZQpl dmFsdWF0ZWQgaW5zaWRlIHBhcmFsbGVsIHdvcmtlci4KClRoaXMgcGF0Y2ggZW5hYmxlcyBzZXNz aW9uIHZhcmlhYmxlcyBmb3Igc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4KClRoaXMgcGF0 Y2ggZW5hYmxlcyB1c2FnZSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBhcmd1bWVudHMgb2YgQ0FMTCBz dG10LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8 IDg4ICsrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50 ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhw ci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAg ICAgICAgICAgICAgfCAgOCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaCAgICAg ICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAg ICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dCAgICB8IDE1ICsrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCAgICB8ICA3ICstCiA5IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCA1MCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCAzZmRkOWNiNjMwMy4uODY2NWU2 YjJiNDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMTAwMiwzMSArMTAwMiw2OSBAQCBF eGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkJZXNf bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNz aW9uX3ZhcmlhYmxlczsKIAkJCQkJCQl9CiAKLQkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJp YWJsZXMpOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkgKiBVc2UgYnVmZmVyZWQgc2Vzc2lvbiB2YXJp YWJsZXMgd2hlbiB0aGUKLQkJCQkJCQkgKiBidWZmZXIgd2l0aCBjb3BpZWQgdmFsdWVzIGlzIGF2 YWlhYmxlCi0JCQkJCQkJICogKHN0YW5kYXJkIHF1ZXJ5IGV4ZWN1dG9yIG1vZGUpCi0JCQkJCQkJ ICovCi0KLQkJCQkJCQkvKiBQYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcy4gKi8KLQkJCQkJCQlpZiAo cGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQotCQkJCQkJCQllbG9n KEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2Ui KTsKLQotCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07 Ci0KLQkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJhbS0+cGFyYW10eXBlKQotCQkJCQkJCQll bG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJB TV9WQVJJQUJMRSB0eXBlIik7Ci0KLQkJCQkJCQkvKgotCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwg cGFzcyB0aGUgdmFsdWUgbGlrZSBhCi0JCQkJCQkJICogY29uc3RhbnQuCi0JCQkJCQkJICovCi0J CQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOwotCQkJCQkJCXNjcmF0Y2guZC5jb25z dHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVs bCA9IHZhci0+aXNudWxsOwotCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNo KTsKKwkJCQkJCQlpZiAoZXNfc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJeworCQkJCQkJCQkv KgorCQkJCQkJCQkgKiBUaGlzIHBhdGggaXMgdXNlZCB3aGVuIGV4cHJlc3Npb24gaXMKKwkJCQkJ CQkJICogZXZhbHVhdGVkIGluc2lkZSBxdWVyeSBldmFsdWF0aW9uLiBGb3IKKwkJCQkJCQkJICog ZW5zdXJpbmcgb2YgaW1tdXRhYmlsaXR5IG9mIHNlc3Npb24gdmFyaWFibGUKKwkJCQkJCQkJICog aW5zaWRlIHF1ZXJ5IHdlIHVzZSBzcGVjaWFsIGJ1ZmZlciB3aXRoIGNvcHkKKwkJCQkJCQkJICog b2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhpcyBtZXRob2QgaGVscHMKKwkJCQkJCQkJICog d2l0aCBwYXJhbGxlbCBleGVjdXRpb24gdG9vLgorCQkJCQkJCQkgKi8KKworCQkJCQkJCQkvKiBQ YXJhbWV0ZXIgc2FuaXR5IGNoZWNrcy4gKi8KKwkJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49 IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlk IG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJCXZh ciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQkJaWYg KHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJCQkJCQkJCWVsb2coRVJST1IsICJ0 eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5 cGUiKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZh bHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJICovCisJCQkJCQkJCXNj cmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZh bHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZh ci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJ CQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCUFjbFJlc3VsdAlhY2xyZXN1 bHQ7CisJCQkJCQkJCU9pZAkJCXZhcmlkID0gcGFyYW0tPnBhcmFtdmFyaWQ7CisJCQkJCQkJCU9p ZAkJCXZhcnR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOworCisJCQkJCQkJCUFzc2VydCghSXNQYXJh bGxlbFdvcmtlcigpKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiBzb21lIGNhc2VzIChw bHBnc3FsJ3Mgc2ltcGxlIGV4cHJlc3Npb24KKwkJCQkJCQkJICogZXZhbHVhdGlvbiBvciBldmFs dWF0aW9uIG9mIENBTEwgYXJndW1lbnRzKSwKKwkJCQkJCQkJICogdGhlIGV4cHJlc3Npb24gZXhl Y3V0b3IgaXMgY2FsbGVkIGRpcmVjdGx5LgorCQkJCQkJCQkgKiBXZSBjYW4gYWxsb3cgZGlyZWN0 IGFjY2VzcyB0byBzZXNzaW9uCisJCQkJCQkJCSAqIHZhcmlhYmxlcyAoY29weSBvbmx5KSwgYmVj YXVzZSB3ZSBrbm93LCBzbworCQkJCQkJCQkgKiBvdXRzaWRlIGlzIG5vdCBhbnkgcXVlcnkgKGFu ZCBleHByZXNzaW9uCisJCQkJCQkJCSAqIGNhbm5vdCBiZSBleGVjdXRlZCBwYXJhbGxlbCkuCisJ CQkJCQkJCSAqCisJCQkJCQkJCSAqIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgdG8gZG8gYWNsY2hl Y2ssCisJCQkJCQkJCSAqIGJlY2F1c2UgdXN1YWwgYWNsY2hlY2sgZnJvbQorCQkJCQkJCQkgKiBz dGFuZGFyZF9FeGVjdXRvclN0YXJ0IGlzIG5vdCBleGVjdXRlZCBpbgorCQkJCQkJCQkgKiB0aGlz IGNhc2UuIEZvcnR1bmF0ZWx5IGl0IGlzIGp1c3Qgb25jZSBwZXIKKwkJCQkJCQkJICogdHJhbnNh Y3Rpb24uCisJCQkJCQkJCSAqLworCQkJCQkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBB Q0xfU0VMRUNUKTsKKwkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJ CQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkJ CQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQkJCQkJCXNjcmF0 Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJMRTsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJh bS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlzY3JhdGNoLmQudnBhcmFtLnZhcnR5cGUgPSB2YXJ0 eXBlOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJ fQogCQkJCQkJfQogCQkJCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCmluZGV4IDE2MzNlYTgzNzMxLi43YTc5M2I1N2Q0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0 b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBs YW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC00NTAsNiArNDUxLDcgQEAgRXhlY0ludGVy cEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251 bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMsCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYVEVS TiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJCSYmQ0FTRV9FRU9QX1BBUkFNX1ZB UklBQkxFLAogCQkmJkNBU0VfRUVPUF9DQVNFX1RFU1RWQUwsCiAJCSYmQ0FTRV9FRU9QX01BS0Vf UkVBRE9OTFksCiAJCSYmQ0FTRV9FRU9QX0lPQ09FUkNFLApAQCAtMTA5Myw2ICsxMDk1LDIwIEBA IEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfUEFS QU1fVkFSSUFCTEUpCisJCXsKKwkJCS8qCisJCQkgKiBEaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGUgKHdpdGhvdXQgYnVmZmVyaW5nKS4gQmVjYXVzZQorCQkJICogcmV0dXJuZWQgdmFs dWUgY2FuIGJlIHVzZWQgKHdpdGhvdXQgYW4gYXNzaWduZW1lbnQpIGFmdGVyIHRoZQorCQkJICog cmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyB1cGRhdGVkLCB3ZSBoYXZlIHRvIHVzZSBh biBjb3B5CisJCQkgKiBvZiBzdG9yZWQgdmFsdWUgZXZlcnkgdGltZS4KKwkJCSAqLworCQkJKm9w LT5yZXN2YWx1ZSA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2sob3AtPmQudnBhcmFt LnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJb3AtPnJlc251bGwsCisJCQkJCQkJCQkJCQkJCQlvcC0+ ZC52cGFyYW0udmFydHlwZSk7CisJCQlFRU9fTkVYVCgpOworCQl9CisKIAkJRUVPX0NBU0UoRUVP UF9DQVNFX1RFU1RWQUwpCiAJCXsKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9qaXQv bGx2bS9sbHZtaml0X2V4cHIuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5j CmluZGV4IGNiZDllZDdjYzRiLi43YWY4M2Y1YThlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv aml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKQEAgLTExNDUsNiArMTE0NSwxMiBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3Rh dGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNhc2UgRUVPUF9QQVJBTV9WQVJJ QUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVZhcmlhYmxl IiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1CdWlsZEJyKGIs IG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgRUVPUF9TQlNSRUZf U1VCU0NSSVBUUzoKIAkJCQl7CiAJCQkJCWludAkJCWp1bXBkb25lID0gb3AtPmQuc2JzcmVmX3N1 YnNjcmlwdC5qdW1wZG9uZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDQ3MDc0MTM2ZTZiLi5kMzY2 MWE5YWQ0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzgzLDE0ICszMzgzLDYgQEAgdHJhbnNm b3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkg dHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0aW9uKTsKIAotCS8qCi0JICogVGhl IGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZhbHVhdGVkIGJ5IGRpcmVjdAotCSAq IGV4cHJlc3Npb24gZXhlY3V0b3IgY2FsbC4gVGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwK LQkgKiBzbyBibG9jayBpdC4gSXQgd2lsbCBiZSBlbmFibGVkIGJ5IHNvbWUgb3RoZXIgcGF0Y2gu Ci0JICovCi0JaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9S LCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJ YXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4cHIgPSBjYXN0Tm9k ZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCBkOTgzYTlhN2Zl ZC4uYmQ4NzVlNTQ0ZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHBy LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtMTU2LDEwICsxNTYs MTEgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9QX0JPT0xURVNUX0lTX0ZBTFNFLAog CUVFT1BfQk9PTFRFU1RfSVNfTk9UX0ZBTFNFLAogCi0JLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9F WFRFUk4gcGFyYW1ldGVycyAqLworCS8qIGV2YWx1YXRlIFBBUkFNX0VYRUMvRVhURVJOL1ZBUklB QkxFIHBhcmFtZXRlcnMgKi8KIAlFRU9QX1BBUkFNX0VYRUMsCiAJRUVPUF9QQVJBTV9FWFRFUk4s CiAJRUVPUF9QQVJBTV9DQUxMQkFDSywKKwlFRU9QX1BBUkFNX1ZBUklBQkxFLAogCiAJLyogcmV0 dXJuIENhc2VUZXN0RXhwciB2YWx1ZSAqLwogCUVFT1BfQ0FTRV9URVNUVkFMLApAQCAtNDAwLDYg KzQwMSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlw ZTsJLyogT0lEIG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJ LyogZm9yIEVFT1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZh cmlkOwkJLyogT0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkv KiBPSUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBm b3IgRUVPUF9DQVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAg LTgwMiw2ICs4MTAsOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtRXhlYyhFeHByU3RhdGUg KnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0 KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhwclN0YXRlICpzdGF0ZSwgRXhw ckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiB2 b2lkIEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAg Km9wLAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVj RXZhbENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsK IGV4dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsQ3VycmVudE9mRXhwcihFeHBy U3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggZWMw N2YxY2JhZTkuLjc4OWMzMTIzYjBjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMjExLDggKzIxMSw3 IEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKIC0tIHNob3VsZCB0byBmYWls CiBTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSBwbHBnc3FsX3N2X3ZhcjEKLUNPTlRFWFQ6ICBTUUwgZXhwcmVzc2lv biAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxp bmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMo KSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGE5 ZTFlMzIzYWQxLi4yMzliMzI1MGE5NSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MTAxLDggKzgx MDEsNyBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5 LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRD b3VudCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAotCQlxdWVyeS0+aGFzU2Vzc2lvblZh cmlhYmxlcykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8q CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IDZlZjFhNmY4OGMxLi4wNWU1OTUyNDA1ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEwNyw4ICsxMDcsNyBAQCBFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBT UUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRF WFQ6ICBTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3Nx bGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlv biBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgogLS0gc2hvdWxkIGJlIG9rCiBT RUxFQ1Qgc3FsZnhfc2QoMjApOwogIHNxbGZ4X3NkIApAQCAtMjc4LDE3ICsyNzcsMTUgQEAgJCQ7 CiBOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0KIERST1AgVkFS SUFCTEUgdmFyMTsKIERST1AgVkFSSUFCTEUgdmFyMjsKLS0tIENBTEwgc3RhdGVtZW50IGlzIG5v dCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBpcyBzdXBw b3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMTsKIENSRUFURSBQUk9DRURV UkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOwotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0 ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorTk9USUNFOiAgMQogRE8gJCQg QkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90 IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAo dikiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAor Tk9USUNFOiAgMQogRFJPUCBQUk9DRURVUkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2OwogLS0g dGVzdCBzZWFyY2ggcGF0aApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IGQwMjIyZjgwYTQ5Li4wNzQ2MTljNGEwZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMjA3LDEzICsyMDcsMTQgQEAgJCQ7CiBEUk9Q IFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3RhdGVtZW50 IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Np b24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBp cyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOworCiBDUkVB VEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJn OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlz IG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKIAogRE8g JCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20240730-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwk58 RnJvbSA3ZmYwMmE0MWMxMGRhMjI1YTI4MmU2MTJkMDQxNjMxOWMzZDA5NTI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxMDo0NDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjBdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNzaW9u cwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1bHQg ZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9udmFy cwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNzZnVs bHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFnIGZv ciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21sL2Rk bC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKystCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAyMSArKystLQogZG9jL3NyYy9zZ21sL3Jl Zi9kaXNjYXJkLnNnbWwgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI3ICsrKysrKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgODcgKysrKysrKysrKysrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgIDIgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgIDQgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAzNiArKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAzICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8IDM2ICsrKystLS0tCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA3MyArKysrKysrKysrKysrKy0tCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCA0OCArKysrKysrKysr CiAyMCBmaWxlcyBjaGFuZ2VkLCAzNTMgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCAzODViZjNhNWY0Yy4uN2JmNzIzM2IyZTkgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODY2LDYgKzk4NjYsMTQgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dmFyZGVmZXhwcjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX25v ZGVfdHJlZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBp bnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFyaWFibGUgZGVmYXVsdCB2YWx1ZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCBiOGVjMDJhODVlZC4uMTg5NTViZjI4OWMgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAg LTUzNTIsMTMgKzUzNTIsMTIgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKIAogICAgPHBhcmE+ CiAgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCi0gICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKLSAgICBiZWVu IHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRoZQot ICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gVGhlIGNvbnRlbnQgb2YgYSB2YXJp YWJsZSBpcyBub3QKLSAgICB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzIHJlZ3Vs YXIgdmFyaWFibGVzIGluIFBMIGxhbmd1YWdlcy4KLSAgICBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHBlcnNpc3RlbnQgb3IgY2FuIGJlIHRlbXBvcmFyeS4gSW4gYm90aCBjYXNlcywKLSAg ICB0aGUgY29udGVudCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpcyB0ZW1wb3JhcnkgYW5kIG5vdCBz aGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBh IHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBlaXRoZXIgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFs PiBvciBhIGRlZmF1bHQKKyAgICB2YWx1ZSwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMgYmVlbiBzZXQg dG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQKKyAgICBzZXNzaW9uIHVzaW5nIHRoZSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuIFRoZSBjb250ZW50IG9mIGEgdmFyaWFibGUK KyAgICBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcyByZWd1bGFyIHZh cmlhYmxlcyBpbiBQTCBsYW5ndWFnZXMuCisgICAgVGhlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBw ZXJzaXN0ZW50LCBidXQgdGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKKyAgICBpcyB0 ZW1wb3JhcnkgYW5kIG5vdCBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRh YmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKaW5kZXggZTFjMjk0MGQ0Y2EuLjgxODdjMThlMjhiIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBb IHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCisgICAgWyBE RUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxh Y2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9 IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC00MSwx MCArNDEsMTAgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8cGFyYT4KICAgIFRoZSB2 YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lv bi4gIFJldHJpZXZpbmcKLSAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVM TCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8KLSAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBj dXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KLSAg IFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4g VGhpcyBpcyB0aGUgc2FtZSBhcwotICAgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBs YW5ndWFnZXMuCisgICBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwgb3Ig YSBkZWZhdWx0IHZhbHVlLCB1bmxlc3MgaXRzIHZhbHVlCisgICBpcyBzZXQgdG8gc29tZXRoaW5n IGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNvbW1hbmQ+TEVUPC9jb21tYW5k PgorICAgY29tbWFuZC4gIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3Qg dHJhbnNhY3Rpb25hbC4gIFRoaXMgaXMgdGhlCisgICBzYW1lIGFzIHJlZ3VsYXIgdmFyaWFibGVz IGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xMDUs NiArMTA1LDE3IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJ RiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAg IDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFi bGUtZGVmYXVsdCI+CisgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVMVCA8cmVwbGFjZWFibGU+ZGVm YXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+REVGQVVMVDwvbGl0ZXJhbD4gY2xhdXNl IGNhbiBiZSB1c2VkIHRvIGFzc2lnbiBhIGRlZmF1bHQKKyAgICAgIHZhbHVlIHRvIGEgc2Vzc2lv biB2YXJpYWJsZS4gVGhpcyBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCB3aGVuIHRoZSBzZXNzaW9u CisgICAgICB2YXJpYWJsZSBpcyBmaXJzdCBhY2Nlc3NlZCBmb3IgcmVhZGluZyBhbmQgaGFkIG5v dCB5ZXQgYmVlbiBhc3NpZ25lZCBhIHZhbHVlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUtb24tY29tbWl0LWRyb3AiPgogICAgIDx0ZXJtPjxsaXRlcmFsPk9OIENPTU1JVCBE Uk9QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCmlu ZGV4IDYxYjk2N2Y5YzliLi42YjBjYjk1MDM0ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKQEAgLTcx LDcgKzcxLDggQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZ IHwgVEVNUCB8IFZBUklBQkxFUyB9CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAg IFJlc2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxl Ci0gICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRlcmFs Pk5VTEw8L2xpdGVyYWw+LgorICAgICAgaXMgbGF0ZXIgcmV1c2VkLCBpdCBpcyByZS1pbml0aWFs aXplZCB0byBlaXRoZXIKKyAgICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDcwYjYyMmFhNjcyLi45NGRmZWFj NGY0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjQsNiArMjQsOSBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGFyc2VyL3Bh cnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgi CkBAIC0zNyw2ICs0MCw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShj b25zdCBjaGFyICp2YXJOYW1lLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBP aWQgdmFyQ29sbGF0aW9uLAogCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJ CSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJY YWN0RW5kQWN0aW9uKTsKIAogCkBAIC01MSw2ICs1NSw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25z dCBjaGFyICp2YXJOYW1lLAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9u LAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlOb2RlICp2YXJEZWZleHByLAogCQkJCVZh cmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFj bDsKQEAgLTExNCw2ICsxMTksMTEgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyeGFj dGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCisJaWYg KHZhckRlZmV4cHIpCisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmRlZmV4cHIgLSAxXSA9 IENTdHJpbmdHZXRUZXh0RGF0dW0obm9kZVRvU3RyaW5nKHZhckRlZmV4cHIpKTsKKwllbHNlCisJ CW51bGxzW0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciAtIDFdID0gdHJ1ZTsKKwogCXZhcmFj bCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCiAJCQkJ CQkJCSAgdmFyTmFtZXNwYWNlKTsKIAlpZiAodmFyYWNsICE9IE5VTEwpCkBAIC0xNTAsNiArMTYw LDExIEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXJlY29yZF9vYmpl Y3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFM KTsKIAlmcmVlX29iamVjdF9hZGRyZXNzZXMoYWRkcnMpOwogCisJLyogZGVwZW5kZW5jeSBvbiBk ZWZhdWx0IGV4cHIgKi8KKwlpZiAodmFyRGVmZXhwcikKKwkJcmVjb3JkRGVwZW5kZW5jeU9uRXhw cigmbXlzZWxmLCAoTm9kZSAqKSB2YXJEZWZleHByLAorCQkJCQkJCSAgIE5JTCwgREVQRU5ERU5D WV9OT1JNQUwpOworCiAJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLwogCXJlY29yZERlcGVuZGVu Y3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKIApAQCAtMTg1 LDYgKzIwMCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vz c2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJY29sbGF0aW9uOwogCU9pZAkJCXR5cGNvbGxhdGlv bjsKIAlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOworCU5vZGUJICAgKmNvb2tlZF9kZWZhdWx0ID0g TlVMTDsKIAogCS8qIENoZWNrIGNvbnNpc3RlbmN5IG9mIGFyZ3VtZW50cyAqLwogCWlmIChzdG10 LT5YYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUApAQCAtMjI2LDYgKzI0Miwx NiBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJT dG10ICpzdG10KQogCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKIAkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pKSk7CiAKKwlpZiAo c3RtdC0+ZGVmZXhwcikKKwl7CisJCWNvb2tlZF9kZWZhdWx0ID0gdHJhbnNmb3JtRXhwcihwc3Rh dGUsIHN0bXQtPmRlZmV4cHIsCisJCQkJCQkJCQkgICBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVM VCk7CisKKwkJY29va2VkX2RlZmF1bHQgPSBjb2VyY2VfdG9fc3BlY2lmaWNfdHlwZShwc3RhdGUs CisJCQkJCQkJCQkJCQkgY29va2VkX2RlZmF1bHQsIHR5cGlkLCAiREVGQVVMVCIpOworCQlhc3Np Z25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgY29va2VkX2RlZmF1bHQpOworCX0KKwogCXZhcmlh YmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLAogCQkJCQkJCSAg IG5hbWVzcGFjZWlkLAogCQkJCQkJCSAgIHR5cGlkLApAQCAtMjMzLDYgKzI1OSw3IEBAIENyZWF0 ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQp CiAJCQkJCQkJICAgdmFyb3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAogCQkJCQkJCSAgIHN0 bXQtPmlmX25vdF9leGlzdHMsCisJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAg c3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKIAllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGQ2NWE5MmQ4NWE0Li4z N2ZlMGZlY2Q1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAt MjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAj aW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgIm9w dGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCkBA IC01MjMsMTEgKzUyNCw2OCBAQCBBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXND b21taXQsCiAJfQogfQogCisvKgorICogZXZhbHVhdGUgYW4gZXhwcmVzc2lvbgorICovCitzdGF0 aWMgdm9pZAorZXZhbF9hc3NpZ25fZGVmZXhwcihTVmFyaWFibGUgc3ZhciwgSGVhcFR1cGxlIHR1 cCkKK3sKKwlEYXR1bQkJZGVmZXhwcl92YWx1ZTsKKwlib29sCQlpc251bGw7CisKKwlBc3NlcnQo c3Zhcik7CisJQXNzZXJ0KHN2YXItPmlzX3ZhbGlkKTsKKwlBc3NlcnQoSGVhcFR1cGxlSXNWYWxp ZCh0dXApKTsKKworCWRlZmV4cHJfdmFsdWUgPSBTeXNDYWNoZUdldEF0dHIoVkFSSUFCTEVPSUQs CisJCQkJCQkJCQl0dXAsCisJCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3ZhcmRlZmV4cHIsCisJ CQkJCQkJCQkmaXNudWxsKTsKKworCWlmICghaXNudWxsKQorCXsKKwkJRVN0YXRlCSAgICplc3Rh dGU7CisJCUV4cHJTdGF0ZSAgKmRlZmV4cHJzOworCQlFeHByCSAgICpkZWZleHByOworCQljaGFy CSAgICpkZWZleHByX3N0cjsKKwkJRGF0dW0JCXZhbHVlOworCQlNZW1vcnlDb250ZXh0IG9sZGN4 dDsKKworCQllc3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0YXRlKCk7CisKKwkJZGVmZXhwcl9zdHIg PSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRlZmV4cHJfdmFsdWUpOworCQlkZWZleHByID0gKEV4cHIg Kikgc3RyaW5nVG9Ob2RlKGRlZmV4cHJfc3RyKTsKKworCQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJCWRlZmV4cHIgPSBleHByZXNzaW9u X3BsYW5uZXIoKEV4cHIgKikgZGVmZXhwcik7CisJCWRlZmV4cHJzID0gRXhlY0luaXRFeHByKGRl ZmV4cHIsIE5VTEwpOworCisJCXZhbHVlID0gRXhlY0V2YWxFeHByU3dpdGNoQ29udGV4dChkZWZl eHBycywKKwkJCQkJCQkJCQkgIEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKSwKKwkJCQkJ CQkJCQkgICZpc251bGwpOworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCisJ CWlmICghaXNudWxsKQorCQl7CisJCQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1Zh cmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJCXN2YXItPnZhbHVlID0gZGF0dW1Db3B5KHZhbHVl LCBzdmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJCXN2YXItPmlzbnVsbCA9IGZhbHNl OworCisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKwkJfQorCisJCUZyZWVFeGVj dXRvclN0YXRlKGVzdGF0ZSk7CisJfQorfQorCiAvKgogICogVXBkYXRlIGF0dHJpYnV0ZXMgY2Fj aGVkIGluIHN2YXIKICAqLwogc3RhdGljIHZvaWQKLXNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zh cmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxl IHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIHsKIAlIZWFwVHVwbGUJdHVwOwogCUZv cm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKQEAgLTU3Nyw2ICs2MzUsOSBAQCBzZXR1cF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJc3Zhci0+aGFzaHZhbHVlID0g R2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAogCQkJCQkJCQkJCQlPYmplY3RJZEdl dERhdHVtKHZhcmlkKSk7CiAKKwlpZiAoIWlzX3dyaXRlKQorCQlldmFsX2Fzc2lnbl9kZWZleHBy KHN2YXIsIHR1cCk7CisKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIH0KIApAQCAtNjA2LDcgKzY2 Nyw3IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwg Ym9vbCBpc251bGwpCiAJICovCiAJaWYgKCFzdmFyLT5pc192YWxpZCkKIAl7Ci0JCXNldHVwX3Nl c3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlkKTsKKwkJc2V0dXBfc2Vzc2lvbl92 YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQsIGZhbHNlKTsKIAkJX3N2YXIgPSAmbG9jc3Zh cjsKIAl9CiAJZWxzZQpAQCAtNzQ4LDcgKzgwOSwyNSBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShP aWQgdmFyaWQpCiAJICovCiAJaWYgKCFzdmFyLT5pc192YWxpZCkKIAl7Ci0JCXNldHVwX3Nlc3Np b25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQkvKiBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byB1 c2UgZGVmZXhwIGlmIGl0IGlzIGRlZmluZWQgKi8KKwkJUEdfVFJZKCk7CisJCXsKKwkJCS8qCisJ CQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBzZXR1cCBjYW4gZXhlY3V0ZSBkZWZhdWx0IGV4cHJlc3Np b24uIFdoZW4KKwkJCSAqIHRoZSBleGVjdXRpb24gb2YgZGVmYXVsdCBleHByZXNzaW9uIGZhaWxz LCB0aGVuIHdlIG5lZWQgdG8KKwkJCSAqIHJlbW92ZSBlbnRyeSBmcm9tIHNlc3Npb24gdmFycy4K KwkJCSAqLworCQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCwgZmFsc2UpOwor CQl9CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIFRoaXMgZW50cnkgY2Fubm90IGJlIHZhbGlk LCByZW1vdmUgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCisJCQkvKiBwcm9wYWdhdGUgdGhlIGVycm9y ICovCisJCQlQR19SRV9USFJPVygpOworCQl9CisJCVBHX0VORF9UUlkoKTsKIAogCQllbG9nKERF QlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBl bnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQgYnkgUkVBRCkiLAogCQkJIGdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKQEAgLTgxMiw3ICs4OTEs NyBAQCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051 bGwpCiAKIAlpZiAoIWZvdW5kKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2 YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQsIHRydWUpOwogCiAJ CWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFz c2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBXUklURSkiLAogCQkJIGdldF9uYW1l c3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDY1NmFlZDYwNGM5Li43ODM1OWJjMWFmYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC02NTMsNiArNjUzLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxsaXN0PgkJ cGFydGl0aW9uc19saXN0CiAldHlwZSA8bGlzdD4JCWhhc2hfcGFydGJvdW5kCiAldHlwZSA8ZGVm ZWx0PgkJaGFzaF9wYXJ0Ym91bmRfZWxlbQorJXR5cGUgPG5vZGU+CQlPcHRTZXNzaW9uVmFyRGVm RXhwcgogCiAldHlwZSA8bm9kZT4JanNvbl9mb3JtYXRfY2xhdXNlCiAJCQkJanNvbl9mb3JtYXRf Y2xhdXNlX29wdApAQCAtNTIyMiwzMCArNTIyMywzNiBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9p dGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJ CUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBv cHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAg VkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK IAkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDQ7CiAJ CQkJCW4tPnR5cGVOYW1lID0gJDY7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkNzsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ4OworCQkJCQluLT5kZWZleHByID0g JDg7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkOTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9 IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVt cCBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1l IG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRU ZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5h bWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25P cHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3Jl YXRlU2Vzc2lvblZhclN0bXQpOwogCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKIAkJCQkJ bi0+dmFyaWFibGUgPSAkNzsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKIAkJCQkJbi0+Y29sbENs YXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQx MTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMTsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsK IAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CiAJCTsKIAorT3B0U2Vzc2lvblZhckRlZkV4cHI6IERFRkFVTFQgYl9leHByCQkJCQl7ICQk ID0gJDI7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAv KgogICogVGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nl c3NmdWwKICAqIHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YwppbmRleCBiNDk0Yzg4NWU5Zi4uY2I1NzIwM2UxODUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMK QEAgLTQ4NSw2ICs0ODUsNyBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9D T0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAogCQkJaWYgKGlzQWdnKQogCQkJCWVyciA9 IF8oImFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVz c2lvbnMiKTsKQEAgLTkzNCw2ICs5MzUsNyBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJz ZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQkJYnJlYWs7CiAJCWNhc2UgRVhQ Ul9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxU OgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93 IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJ YnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYwppbmRleCA0OGRmYTM3MzRmOC4uYTc2NTMwN2JmZTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYwpAQCAtNTgzLDYgKzU4Myw3IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfSk9JTl9V U0lORzoKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNT SUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJlc3Vs dCA9IGZhbHNlOwogCQkJYnJlYWs7CiAJfQpAQCAtNjY4LDYgKzY2OSw3IEBAIHRyYW5zZm9ybUNv bHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBS X0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKIAkJY2Fz ZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVM VDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC0yMDc5LDYgKzIwODEsNyBAQCB0cmFu c2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJCWJy ZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRf RlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJ CWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CiAJ CQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKQEAgLTM0MjksNiAr MzQzMiw3IEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQly ZXR1cm4gIkNIRUNLIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2Ug RVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RF RkFVTFQ6CiAJCQlyZXR1cm4gIkRFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBS RVNTSU9OOgogCQkJcmV0dXJuICJpbmRleCBleHByZXNzaW9uIjsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVu Yy5jCmluZGV4IDlhYTRmNjA3NjhiLi5mY2FjNjk0NDU1ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVu Yy5jCkBAIC0yNjIwLDYgKzI2MjAsNyBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQkJYnJlYWs7CiAJ CWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElP Tl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0g Xygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhw cmVzc2lvbnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9O OgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKaW5kZXggYTc5NmI4YzU1N2IuLjZhNzFhN2IwNTcxIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK QEAgLTUzMzAsNiArNTMzMCw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJ CWlfdmFybmFtZXNwYWNlOwogCWludAkJCWlfdmFydHlwZTsKIAlpbnQJCQlpX3ZhcnR5cG5hbWU7 CisJaW50CQkJaV92YXJkZWZleHByOwogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJ CQlpX3Zhcm93bmVyOwogCWludAkJCWlfdmFyY29sbGF0aW9uOwpAQCAtNTM1NSw2ICs1MzU2LDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4g di52YXJjb2xsYXRpb25cbiIKIAkJCQkJICAiICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAg IiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAi ICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVs dCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKIAkJCQkJICAiRlJPTSBwZ19jYXRh bG9nLnBnX3ZhcmlhYmxlIHZcbiIKQEAgLTUzNzEsNiArNTM3Myw3IEBAIGdldFZhcmlhYmxlcyhB cmNoaXZlICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVz cGFjZSIpOwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBlIik7CiAJaV92YXJ0 eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3ZhcmRlZmV4cHIgPSBQ UWZudW1iZXIocmVzLCAidmFyZGVmZXhwciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51 bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1i ZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAKQEAgLTU0MDYsNiArNTQwOSwxMSBAQCBnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7 CiAJCXZhcmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3Zhcm93bmVyKSk7CiAKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJkZWZleHByKSkK KwkJCXZhcmluZm9baV0udmFyZGVmZXhwciA9IE5VTEw7CisJCWVsc2UKKwkJCXZhcmluZm9baV0u dmFyZGVmZXhwciA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJkZWZleHByKSk7 CisKIAkJLyogRG8gbm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzLiAqLwogCQlp ZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJhY2wpKQogCQkJdmFyaW5mb1tpXS5kb2JqLmNv bXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRfQUNMOwpAQCAtNTQzOCw2ICs1NDQ2LDcgQEAgZHVt cFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQ UUV4cEJ1ZmZlciBxdWVyeTsKIAljaGFyCSAgICpxdWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2 YXJ0eXBuYW1lOworCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29uc3QgY2hhciAqdmFyeGFj dGVuZGFjdGlvbjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAKQEAgLTU0NTAsNiArNTQ1OSw3IEBA IGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8p CiAKIAlxdWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZv KSk7CiAJdmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyZGVmZXhwciA9IHZh cmluZm8tPnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3Rl bmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOwogCkBAIC01 NDY5LDYgKzU0NzksMTAgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlh YmxlSW5mbyAqdmFyaW5mbykKIAkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsK IAl9CiAKKwlpZiAodmFyZGVmZXhwcikKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgREVG QVVMVCAlcyIsCisJCQkJCQkgIHZhcmRlZmV4cHIpOworCiAJaWYgKHN0cmNtcCh2YXJ4YWN0ZW5k YWN0aW9uLCAiciIpID09IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OIFRSQU5T QUNUSU9OIEVORCBSRVNFVCIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAwOTEwNTA3ZDlhYy4uZTJjYjA2 Y2M4ODMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzAyLDYgKzcwMiw3IEBAIHR5cGVkZWYgc3RydWN0IF9W YXJpYWJsZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkg ICAqdmFydHlwbmFtZTsKKwljaGFyCSAgICp2YXJkZWZleHByOwogCWNoYXIJICAgKnZhcnhhY3Rl bmRhY3Rpb247CiAJY2hhcgkgICAqdmFyYWNsOwogCWNoYXIJICAgKnJ2YXJhY2w7CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsCmluZGV4IDA4ZWE3OTE0MjBhLi4wNGZlOTg0M2FlNiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwKQEAgLTM5NTksNiArMzk1OSw0MiBAQCBteSAldGVzdHMgPSAoCiAJ CX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUJyA9PiB7 CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29t bWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRF IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50ZWdlciBERUZBVUxUIDEwOycsCisJ CXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUz IEFTIGludGVnZXIgREVGQVVMVCAxMDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5z LAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwK KwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAor CQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUg VkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCcg PT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4u IGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NS RUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBP TiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUg VkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNCBBUyBpbnRlZ2VyIERFRkFVTFQgMTAgT04gVFJB TlNBQ1RJT04gRU5EIFJFU0VUO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJ CQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlv bmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVX IHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4g J0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTBiYWU1MzkxMTMu LjU2NjU1OTMxNmVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTE1OSw3ICs1MTU5LDcgQEAgbGlzdFZhcmlhYmxl cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1 ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsK LQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0 IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9u IDwgMTgwMDAwKQogCXsKQEAgLTUxODAsNiArNTE4MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFt ZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxu IgogCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2 LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wi LFxuIgogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFz IFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhw ciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4i CiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKIAkJCQkJICAi ICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKQEAgLTUxODks NiArNTE5MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi Q29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRl eHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK aW5kZXggZjM1MzFiZDQ1ZDQuLjNiOTY2N2IyNDdiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC02Niw2ICs2Niw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJl bGF0aW9uSWQpCiAJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCiAJYWNsaXRlbQkJdmFyYWNsWzFd IEJLSV9ERUZBVUxUKF9udWxsXyk7CiAKKwkvKiBsaXN0IG9mIGV4cHJlc3Npb24gdHJlZXMgZm9y IHZhcmlhYmxlIGRlZmF1bHQgKE5VTEwgaWYgbm9uZSkgKi8KKwlwZ19ub2RlX3RyZWUgdmFyZGVm ZXhwciBCS0lfREVGQVVMVChfbnVsbF8pOworCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFi bGU7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA1NmUyODRkYzA5Yy4uZWQwYTIxNGZmZTQg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NTUsNiArMzQ1NSw3IEBAIHR5cGVkZWYgc3Ry dWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUg dHlwZSBvZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJ aWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCU5v ZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5k QWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25W YXJTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA2ZDkzNjkxOTY1OS4uYmFiYTIy ZWQ4NDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODQsNiArODQsNyBAQCB0eXBlZGVm IGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFy ayB2YWx1ZSAqLwogCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25t ZW50IHRhcmdldCAqLwogCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdldCAqLwor CUVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxULCAvKiBkZWZhdWx0IHZhbHVlIGZvciBzZXNzaW9u IHZhcmlhYmxlICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQKaW5kZXggYWQ3Y2QxY2EzOTAuLmNhMTMxZTU2OGViIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHNxbC5vdXQKQEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xs YXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K LSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2Ny aXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwg Y2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg CiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENP TU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAg ICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdl cyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBj aGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAg ICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJp YWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAg ICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNz X3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25l ciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFy MTsKQEAgLTYzMTQsOSArNjMxNCw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRW ICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29s bGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRl ZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dl ciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENv bGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0t LS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJy ZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjYyOCw5 ICs2NjI4LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxk ViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5 cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1h IHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dAppbmRleCBlM2ZlODI4NWRmYS4uOWM0MmY4ZTRlMDkgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSAr NDUsMTEgQEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJ QUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2 YXJ0ZXN0LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBO YW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAg ICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQotIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAg ICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAg ICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBz dmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAg fCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVz dC52YXIxOwpAQCAtMTU0MSwzICsxNTQxLDY2IEBAIFNFTEVDVCB2YXIxIElTIE5VTEw7CiAoMSBy b3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFy dGVzdF9meCBleGVjdXRlZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKy0t IHZhcnRlc3RfZnggc2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAsIHNob3VsZCBmYWlsCitEUk9Q IEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24gdmFy dGVzdF9meCgpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNl c3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIGZ1bmN0aW9uIHZhcnRlc3RfZngoKQorSElO VDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRv by4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2YXJ0ZXN0X2Z4IGV4 ZWN1dGVkCisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworLS0gdGhlIGRlZmV4cHIg c2hvdWxkIGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0t LS0KKyAgICAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gaW4gdGhpcyBjYXNl LCB0aGUgZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAorTEVUIHZhcjEgPSAxMDA7CitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitESVNDQVJEIFZB UklBQkxFUzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQVElPTiAndmFydGVzdF9meCBpcyBleGVj dXRpbmcnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91 bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRl c3RfZnggaXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9m eCgpIGxpbmUgMyBhdCBSQUlTRQorLS0gYWdhaW4KK1NFTEVDVCB2YXIxOworRVJST1I6ICB2YXJ0 ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcnRlc3Rf ZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGJ1dCB3ZSBjYW4gd3JpdGUKK0xFVCB2YXIxID0gMTAw OworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMjIyMWYxN2Q1NWQuLjhiNDMyMTc3 OTgwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0x MDI1LDMgKzEwMjUsNTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogCiBEUk9Q IFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngo KQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBl eGVjdXRlZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSB2YXJ0 ZXN0X2Z4IHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5D VElPTiB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0t IHRoZSBkZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsK KworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hv dWxkIG5vdCBiZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RJ U0NBUkQgVkFSSUFCTEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4 KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3Rf ZnggaXMgZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworCistLSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CisK Ky0tIGFnYWluCitTRUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEg PSAxMDA7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElP TiB2YXJ0ZXN0X2Z4KCk7Ci0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20240730-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwka9 RnJvbSBkNjRmYzM3YzU1OGVlZThiYjU0M2NlZDhlODZmYjdjZGI4ZTcwOTE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjAgTWFyIDIwMjQgMDg6Mzc6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIwXSBJbXBsZW1lbnRhdGlvbiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlCgpUaGlz IGlzIHNpbXBsZSBwYXRjaCAtIGp1c3QgYWRkIHNwZWNpYWwgZmxhZyB0byBzZXNzaW9uIHZhcmlh YmxlIG1lbW9yeSBlbnRyeS4KVGhlIGVudHJpZXMgd2l0aCBhY3RpdmUgdGhpcyBmbGFnIGFyZSBy ZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZQphdCB0cmFuc2FjdGlvbiBlbmQuIFRo ZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBzeW5vbnltcyBmb3IgIkNPTU1JVCBST0xMQkFDSyIKYnV0 IHRoZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBtb3JlIGlsbHVzdHJhdGl2ZSBhbmQgbGVzcyBjb25m dXNpbmcgdGhlbiAiQ09NTUlUIFJPTExCQUNLIi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCAgICAgICAgIHwgMTMgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDE4ICsrKysrKysKIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstCiAuLi4vaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMzQgKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKysKIDEzIGZpbGVz IGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggNWUyNWQzN2I3MDkuLjM4NWJmM2E1ZjRjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTgzOCw3 ICs5ODM4LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA2NDIzNDYxODZmMC4uZTFjMjk0MGQ0Y2Eg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjcsNyArMjcsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBD UkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMTcsNiArMTE3LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCAzYTM0ODllYzc0My4uZDY1YTkyZDg1YTQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUgaWYgYW55LiAgV2UgbmVl ZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgpAQCAtMTE4LDYg KzEyMCwxMiBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIC8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2ludmFsIG1lc3NhZ2UgKi8KIHN0YXRpYyBi b29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4gc29tZSB1 c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBUUkFOU0FD VElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAg KiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVu IHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0zOTgsNiArNDA2LDMyIEBAIHJlbW92ZV9pbnZh bGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJfQogfQogCisvKgorICogcmVtb3Zl IGVudHJpZXMgbWFya2VkIGFzICJyZXNldF9hdF9lb3giCisgKi8KK3N0YXRpYyB2b2lkCityZW1v dmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykK KwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2 YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2Vv eCkKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKHN2YXItPnJlc2V0X2F0X2VveCkKKwkJCWhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwl9CisKKwloYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00MDUs NiArNDM5LDggQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkK IHZvaWQKIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIHsKKwly ZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3goKTsKKwogCWlmIChpc0Nv bW1pdCkKIAl7CiAJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCkBAIC01MTYsNiArNTUyLDIxIEBAIHNl dHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0 byBleHBsaWNpdGx5IHJlc2V0IHZhcmlhYmxlcyBtYXJrZWQgT04gQ09NTUlUIERST1AuIEl0CisJ ICogY2FuIGJlIGRvbmUgYnkgc2ludmFsIG1lc3NhZ2UgcHJvY2Vzc2luZy4gQnV0IHRoaXMgcHJv Y2Vzc2luZyBjYW4gYmUKKwkgKiBwb3N0cG9uZWQgZHVlIGFib3J0ZWQgdHJhbnNhY3Rpb24uIE9u IHNlY29uZCBoYW5kIHRoZXJlIGlzIG5vdCBhCisJICogcmVhc29uLCB3aHkgZG9uJ3QgZG8gaXQg YXQgdHJhbnNhY3Rpb24gZW5kIGltbWVkaWF0ZWx5LgorCSAqLworCWlmICh2YXJmb3JtLT52YXJ4 YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfUkVTRVQgfHwKKwkJdmFyZm9ybS0+dmFy eGFjdGVuZGFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1ApCisJeworCQlzdmFyLT5yZXNl dF9hdF9lb3ggPSB0cnVlOworCQloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9l b3ggPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXItPnJlc2V0X2F0X2VveCA9IGZhbHNlOworCiAJ c3Zhci0+ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAlzdmFyLT5pc251bGwg PSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMTcyZWUxZjQ1ZDEuLjY1NmFlZDYwNGM5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTUyNTEsNiArNTI1MSw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICogdHJh bnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAgT04g Q09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBPTiBU UkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VUOyB9 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsgfQog CQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCmluZGV4IGQ4Yzc0ZjRlMmU0Li5hNzk2YjhjNTU3YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCkBAIC01MzMwLDYgKzUzMzAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlp bnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBu YW1lOworCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVyOwogCWlu dAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFyYWNsOwpAQCAtNTM0Nyw2ICs1MzQ4LDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJLyogR2V0IHRoZSB2YXJpYWJsZXMgaW4g Y3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJICAi U0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2 LnZhcnhhY3RlbmRhY3Rpb24sXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVzcGFjZSwgdi52 YXJ0eXBlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgogCQkJCQkgICIgICAgICAgQ0FTRSBX SEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKQEAgLTUzNjksNiArNTM3MSw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVt YmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2 YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsK KwlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIocmVzLCAidmFyeGFjdGVuZGFjdGlvbiIp OwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOwogCiAJ aV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwpAQCAtNTM5Miw2ICs1Mzk1 LDkgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAKIAkJdmFyaW5mb1tpXS52YXJ0eXBl ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsKIAkJdmFyaW5mb1tpXS52 YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsK KwkJdmFyaW5mb1tpXS52YXJ4YWN0ZW5kYWN0aW9uID0KKwkJCXBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0aW9uKSk7CisKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRp b24gPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CiAKIAkJdmFy aW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wp KTsKQEAgLTU0MzIsNiArNTQzOCw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJ4 YWN0ZW5kYWN0aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIAogCS8qIFNraXAgaWYgbm90IHRv IGJlIGR1bXBlZCAqLwpAQCAtNTQ0Myw2ICs1NDUwLDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1YWx2YXJuYW1lID0gcGdf c3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2YXJ0eXBuYW1lID0gdmFy aW5mby0+dmFydHlwbmFtZTsKKwl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVu ZGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKIAlhcHBl bmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCkBAIC01NDYxLDYgKzU0 NjksOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlm IChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKKwogCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiO1xuIik7CiAKIAlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01Q T05FTlRfREVGSU5JVElPTikKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDM2YTY5YTA4MzI0Li4wOTEwNTA3ZDlh YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCkBAIC03MDIsNiArNzAyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1Zhcmlh YmxlSW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2 YXJ0eXBuYW1lOworCWNoYXIJICAgKnZhcnhhY3RlbmRhY3Rpb247CiAJY2hhcgkgICAqdmFyYWNs OwogCWNoYXIJICAgKnJ2YXJhY2w7CiAJY2hhcgkgICAqaW5pdHZhcmFjbDsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKaW5kZXggMGQzNzY1ZWVkNGYuLjA4ZWE3OTE0MjBhIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbApAQCAtMzk0MSw2ICszOTQxLDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwK IAl9LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIE9OIFRSQU5TQUNUSU9OIEVO RCBSRVNFVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUyIEFTIGludGVnZXIgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUyIEFTIGludGVnZXIgT04gVFJBTlNBQ1RJT04gRU5E IFJFU0VUO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0 X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2Ug PT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVh c3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3Rfdmlldycg PT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVX IGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j IGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggZjZhYThiYzVmNmMuLjUwYmFlNTM5MTEz IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwpAQCAtNTE4Miw2ICs1MTgyLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNl cmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0 ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdc biIKKwkJCQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdc biIKIAkJCQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2No ZW1hIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zhcmlh YmxlLmgKaW5kZXggM2E0YTk3OWQzNDkuLmYzNTMxYmQ0NWQ0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCkBAIC03Myw2ICs3Myw3IEBAIHR5cGVkZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRB Y3Rpb24KIHsKIAlWQVJJQUJMRV9YQUNURU5EX05PT1AgPSAnbicsCS8qIE5PT1AgKi8KIAlWQVJJ QUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBEUk9QICovCisJVkFSSUFCTEVf WEFDVEVORF9SRVNFVCA9ICdyJywJLyogT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUICovCiB9CQkJ VmFyaWFibGVYYWN0RW5kQWN0aW9uOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggOWZiYmY5 MDU3YTYuLjE5YTJlNWE4ZjY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC04NSwxMSArODUsMTIgQEAgbXl2YXIKIAogc3RlcCBz cjE6IFJPTExCQUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9f Y19kIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0 IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCiBzdGVwIGNy ZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsKIHN0ZXAgbGV0MzogTEVUIG15 dmFyMyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOwogc3RlcCBvX2NfZDogQ1JFQVRFIFRFTVAg VkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsKK3N0ZXAgb19lb3hf cjogQ1JFQVRFIFZBUklBQkxFIG15dmFyX29fZW94X3IgQVMgdGV4dCBPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQ7IExFVCBteXZhcl9vX2VveF9yID0gJ3Rlc3QnOwogc3RlcCBjcmVhdGU0OiBDUkVB VEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZhcjQgPSAndGVz dCc7CiBzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKQEAgLTEwMiw2ICsxMDMsNyBA QCB0CiAKIHN0ZXAgZGlzY2FyZDogRElTQ0FSRCBWQVJJQUJMRVM7CiBzdGVwIHNjMzogQ09NTUlU Oworc3RlcCBjbGVhbjogRFJPUCBWQVJJQUJMRSBteXZhcl9vX2VveF9yOwogc3RlcCBzdGF0ZTog U0VMRUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKIHZhcm5hbWUKIC0tLS0tLS0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IDQ1ZTY1 ZDQwODVkLi41ZDA4OWM4YTRlZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vz c2lvbi12YXJpYWJsZS5zcGVjCkBAIC0yNSwxMiArMjUsMTQgQEAgc2Vzc2lvbiBzMwogc3RlcCBz MwkJCXsgQkVHSU47IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CiBzdGVw IG9fY19kCQl7IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09N TUlUIERST1A7IH0KK3N0ZXAgb19lb3hfcgl7IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9y IEFTIHRleHQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0 ZXN0JzsgfQogc3RlcCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9 CiBzdGVwIGxldDQJCXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9Q IFZBUklBQkxFIG15dmFyNDsgfQogc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAg RlJPTSBwZ19mb3JlaWduX3RhYmxlOyB9CiBzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxF UzsgfQogc3RlcCBzYzMJCXsgQ09NTUlUOyB9CitzdGVwIGNsZWFuCQl7IERST1AgVkFSSUFCTEUg bXl2YXJfb19lb3hfcjsgfQogc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zh cmlhYmxlOyB9CiAKIHNlc3Npb24gczQKQEAgLTQ4LDQgKzUwLDQgQEAgcGVybXV0YXRpb24gbGV0 IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRl ciB0aGUgY29uY3VycmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNy ZWF0ZSBkYmcgdmFsIHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5h bCBxdWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0 MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0 YXRlCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0IGxl dDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDVjODFiM2Uz NDM1Li5lM2ZlODI4NWRmYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE1MDcsMyArMTUwNywzNyBAQCBTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogICAgICAwCiAoMSByb3cpCiAKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7CitCRUdJTjsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCiso MSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBOVUxMOworU0VMRUNUIHZhcjEgSVMgTlVM TDsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0JFR0lOOworICBMRVQg dmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJv dykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZhcjEgSVMgTlVMTDsK KyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAxZjJi YTgxMTFmNC4uMjIyMWYxN2Q1NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTEwMDUsMyArMTAwNSwyMyBAQCBDT01NSVQ7CiBTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOwogLS0gc2hvdWxkIGJl IHplcm8KIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7CisKK0JF R0lOOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitDT01NSVQ7CisKKy0tIHNo b3VsZCBiZSBOVUxMOworU0VMRUNUIHZhcjEgSVMgTlVMTDsKKworQkVHSU47CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgTlVMTAor U0VMRUNUIHZhcjEgSVMgTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40NS4yCgo= --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20240730-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwk17 RnJvbSBlZTU5NTYxMzk1OGZmOTU4ZjhiN2Y2YjI0YWZiOWIwYmRhZDE1N2FjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxNDo0MDozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MjBdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoKQWxt b3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8ICA2OSArKysrKysrLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBzcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBzcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArKy0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAxNTUgKysrKysrKysrKysrKysr KystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjIg KysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUyNCBpbnNlcnRpb25zKCspLCA0OSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDdiZjcyMzNiMmU5Li5iZGE3ZGY5M2NhYSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKQEAgLTk4MzQsNiArOTgzNCwyNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52 YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9l c24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRy dWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZS1p bW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisgICAgICAg VGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAgICAgPHN0 cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBl PgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBkNmQ0ZWJkMWEw My4uYjc1NzVhNTY3M2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjA0MSw5ICs2MDQxLDkgQEAgJCQgTEFO R1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogICAgIDxwYXJhPgogICAgICBUaGUgPGFw cGxpY2F0aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBhY2thZ2Vz LCBhbmQKICAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2thZ2UgY29u c3RhbnRzLgotICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGhhcyBz ZXNzaW9uIHZhcmlhYmxlcy4KLSAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGNyZWF0ZWQg YnkgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiwKLSAgICAgYXMgZGVzY3JpYmVk IGluIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KKyAgICAgPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBoYXMgc2Vzc2lvbiB2YXJpYWJsZXMgYW5kIGlt bXV0YWJsZQorICAgICBzZXNzaW9uIHZhcmlhYmxlcy4gU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJl IGNyZWF0ZWQgYnkgPGNvbW1hbmQ+Q1JFQVRFCisgICAgIFZBUklBQkxFPC9jb21tYW5kPiwgYXMg ZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPi4KICAgICA8 L3BhcmE+CiAgICA8L3NlY3QzPgogICA8L3NlY3QyPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKaW5kZXggODE4N2MxOGUyOGIuLjAwOTM4NzQzYzBkIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDggKzI2LDggQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgWyB7IFRFTVBP UkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAg IFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9y ZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVT RVQgfSBdCitDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFS SUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBOT1QgTlVMTCBdIFsgREVG QVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNl YWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBd CiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNjUsNiAr NjUsMjIgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5P VCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAKIAogICA8dmFyaWFibGVsaXN0PgogCisg ICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaW1tdXRhYmxlIj4KKyAgICA8 dGVybT48bGl0ZXJhbD5JTU1VVEFCTEU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGUgYXNzaWduZWQgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFy aWFibGUgY2FuIG5vdCBiZSBjaGFuZ2VkLgorICAgICAgT25seSBpZiB0aGUgc2Vzc2lvbiB2YXJp YWJsZSBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZhbHVlLCBhIHNpbmdsZQorICAgICAgaW5pdGlh bGl6YXRpb24gaXMgYWxsb3dlZCB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21t YW5kLiBPbmNlCisgICAgICBkb25lLCBubyBmdXJ0aGVyIGNoYW5nZSBpcyBhbGxvd2VkIHVudGls IGVuZCBvZiB0cmFuc2FjdGlvbgorICAgICAgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgd2FzIGNy ZWF0ZWQgd2l0aCBjbGF1c2UgPGxpdGVyYWw+T04gVFJBTlNBQ1RJT04KKyAgICAgIEVORCBSRVNF VDwvbGl0ZXJhbD4sIG9yIHVudGlsIHJlc2V0IG9mIGFsbCBzZXNzaW9uIHZhcmlhYmxlcyBieQor ICAgICAgPGNvbW1hbmQ+RElTQ0FSRCBWQVJJQUJMRVM8L2NvbW1hbmQ+LCBvciB1bnRpbCByZXNl dCBvZiBhbGwgc2Vzc2lvbgorICAgICAgb2JqZWN0cyBieSBjb21tYW5kIDxjb21tYW5kPkRJU0NB UkQgQUxMPC9jb21tYW5kPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1p Zi1ub3QtZXhpc3RzIj4KICAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0xMDUsNiArMTIxLDE4IEBAIENSRUFURSBbIHsg VEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtbm90LW51bGwiPgorICAgIDx0ZXJt PjxsaXRlcmFsPk5PVCBOVUxMPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPk5PVCBOVUxMPC9saXRlcmFsPiBjbGF1c2UgZm9y YmlkcyBzZXR0aW5nIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSB0byBhIG51bGwgdmFsdWUu IEEgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGVkIGFzIE5PVCBOVUxMCisgICAgICBzaG91bGQgbm90 IHRvIGhhdmUgYSBkZWNsYXJlZCBkZWZhdWx0IHZhbHVlLCBhbmQgaWYgdGhlIHZhcmlhYmxlCisg ICAgICBoYXMgbm90IGFzc2lnbmVkIHZhbHVlLCB0aGVuIHRoZSByZWFkaW5nIG9mIHRoaXMgdmFy aWFibGUgZmFpbHMuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0 Ij4KICAgICA8dGVybT48bGl0ZXJhbD5ERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8 L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCmluZGV4IDk0ZGZlYWM0ZjQ3Li5hODljMGVjY2Q2YSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDAsNiArNDAsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVz cyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBPaWQgdmFy T3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKIAkJCQkJCQkJCSBib29sIGlmX25v dF9leGlzdHMsCisJCQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKKwkJCQkJCQkJCSBib29sIGlzX2lt bXV0YWJsZSwKIAkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxl WGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIApAQCAtNTUsNiArNTcsOCBAQCBjcmVh dGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlPaWQgdmFyT3duZXIsCiAJCQkJ T2lkIHZhckNvbGxhdGlvbiwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCisJCQkJYm9vbCBub3Rf bnVsbCwKKwkJCQlib29sIGlzX2ltbXV0YWJsZSwKIAkJCQlOb2RlICp2YXJEZWZleHByLAogCQkJ CVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewpAQCAtMTE3LDYgKzEy MSw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwog CXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KHZhck93bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJub3RudWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOworCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRh YmxlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBD aGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKIAlpZiAodmFyRGVmZXhwcikKQEAgLTIw Miw3ICsyMDgsNiBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNl c3Npb25WYXJTdG10ICpzdG10KQogCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CiAJTm9kZQkgICAq Y29va2VkX2RlZmF1bHQgPSBOVUxMOwogCi0JLyogQ2hlY2sgY29uc2lzdGVuY3kgb2YgYXJndW1l bnRzICovCiAJaWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9Q CiAJCSYmIHN0bXQtPnZhcmlhYmxlLT5yZWxwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9U RU1QKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMjU5LDYgKzI2NCw4IEBAIENyZWF0ZVZhcmlhYmxl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJ ICAgdmFyb3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25v dF9leGlzdHMsCisJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCisJCQkJCQkJICAgc3RtdC0+aXNf aW1tdXRhYmxlLAogCQkJCQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhh Y3RFbmRBY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5k ZXggMzdmZTBmZWNkNTAuLjhjOTk3ZmYyYjUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCkBAIC05Miw2ICs5Miw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURh dGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7CiAJTG9jYWxUcmFuc2FjdGlvbklkIGRv bWFpbl9jaGVja19leHRyYV9seGlkOwogCisJYm9vbAkJbm90X251bGw7CisJYm9vbAkJaXNfaW1t dXRhYmxlOworCiAJYm9vbAkJcmVzZXRfYXRfZW94OwogCiAJLyoKQEAgLTExMCw2ICsxMTMsOSBA QCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJaXNfdmFsaWQ7CiAKIAl1aW50 MzIJCWhhc2h2YWx1ZTsJCS8qIHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KKwor CS8qIHRydWUsIHdoZW4gdGhlIHZhbHVlIGlzIGFscmVhZHkgc2V0LCBhbmQgY2Fubm90IGJlIGNo YW5nZWQgbW9yZSAqLworCWJvb2wJCXByb3RlY3RfdmFsdWU7CiB9IFNWYXJpYWJsZURhdGE7CiAK IHR5cGVkZWYgU1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxlOwpAQCAtNTc2LDYgKzU4MiwyMyBAQCBl dmFsX2Fzc2lnbl9kZWZleHByKFNWYXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVwKQogCiAJCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJ CQkgKiBSYWlzZSBhbiBlcnJvciBpZiB0aGlzIGlzIGEgTk9UIE5VTEwgdmFyaWFibGUgYnV0IHRo ZSByZXN1bHQgb2YKKwkJCSAqIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgorCQkJICovCisJ CQlpZiAoc3Zhci0+bm90X251bGwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2Rl KEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJCQkJCQkgZXJybXNnKCJudWxsIHZh bHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiIsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShz dmFyLT52YXJpZCkpLAorCQkJCQkJIGVycmRldGFpbCgiVGhlIHJlc3VsdCBvZiBERUZBVUxUIGV4 cHJlc3Npb24gaXMgTlVMTC4iKSkpOworCQl9CisKKwkJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkK KwkJCXN2YXItPnByb3RlY3RfdmFsdWUgPSB0cnVlOwogCiAJCUZyZWVFeGVjdXRvclN0YXRlKGVz dGF0ZSk7CiAJfQpAQCAtNjA2LDYgKzYyOSw5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zh cmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAogCWdldF90eXBsZW5ieXZh bChzdmFyLT50eXBpZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKIAorCXN2YXIt Pm5vdF9udWxsID0gdmFyZm9ybS0+dmFybm90bnVsbDsKKwlzdmFyLT5pc19pbW11dGFibGUgPSB2 YXJmb3JtLT52YXJpc2ltbXV0YWJsZTsKKwogCXN2YXItPmlzX2RvbWFpbiA9IChnZXRfdHlwdHlw ZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CiAJc3Zhci0+ZG9tYWluX2No ZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IEludmFs aWRMb2NhbFRyYW5zYWN0aW9uSWQ7CkBAIC02MzUsOSArNjYxLDMxIEBAIHNldHVwX3Nlc3Npb25f dmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAlzdmFy LT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCiAJCQkJCQkJ CQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKIAotCWlmICghaXNfd3JpdGUpCisJc3Zhci0+ cHJvdGVjdF92YWx1ZSA9IGZhbHNlOworCisJLyoKKwkgKiBXaGVuIHRoZSB2YXJpYWJsZSBpcyBt YXJrZWQgYXMgSU1NVVRBQkxFLCB3ZSBwcmVmZXIgdG8gZXZhbHVhdGUKKwkgKiBwb3NzaWJsZSBE RUZBVUxUIGJlZm9yZSB3cml0ZSBvcC4gSW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gcHJvdGVjdAor CSAqIGRlZmF1bHQgdmFsdWUgYWdhaW5zdCBhbnkgb3ZlcndyaXRlLgorCSAqLworCWlmICghaXNf d3JpdGUgfHwKKwkJc3Zhci0+aXNfaW1tdXRhYmxlKQorCXsKIAkJZXZhbF9hc3NpZ25fZGVmZXhw cihzdmFyLCB0dXApOwogCisJCS8qCisJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBO T1QgTlVMTCB2YXJpYWJsZSB3aXRob3V0IGRlZmF1bHQKKwkJICogZXhwcmVzc2lvbi4KKwkJICov CisJCWlmIChzdmFyLT5pc251bGwgJiYgc3Zhci0+bm90X251bGwpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkg ZXJybXNnKCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWUodmFyaWQpKSwKKwkJCQkJIGVycmRldGFpbCgiVGhlIHNlc3Npb24gdmFyaWFibGUgd2Fz IG5vdCBpbml0aWFsaXplZCB5ZXQuIikpKTsKKwl9CisKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK IH0KIApAQCAtNjU3LDYgKzcwNSwyMSBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUg c3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCUFzc2VydChzdmFyKTsKIAlBc3NlcnQo IWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOwogCisJaWYgKHN2YXItPnByb3RlY3RfdmFs dWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9FUlJPUl9JTl9BU1NJ R05NRU5UKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBkZWNs YXJlZCBJTU1VVEFCTEUiLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZShzdmFyLT52YXJpZCkpKSk7CisKKwkvKiBkb24ndCBhbGxvdyBhc3NpZ25tZW50IG9m IG51bGwgdG8gTk9UIE5VTEwgdmFyaWFibGUgKi8KKwlpZiAoaXNudWxsICYmIHN2YXItPm5vdF9u dWxsKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9O T1RfQUxMT1dFRCksCisJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3Ig Tk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAorCQkJCQkJZ2V0X25hbWVzcGFj ZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJ CQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJpZCkpKSk7CisKIAkvKgogCSAq IFVzZSB0eXBieXZhbCwgdHlwYnlsZW4gZnJvbSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hlbiB0 aGV5IGFyZQogCSAqIHRydXN0YWJsZSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3Qg YWNjZXB0ZWQgZm9yIHRoaXMgdmFyaWFibGUpLgpAQCAtNjkzLDYgKzc1NiwxMCBAQCBzZXRfc2Vz c2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQog CXN2YXItPnZhbHVlID0gbmV3dmFsOwogCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKIAorCS8qIGRv bid0IGFsbG93IG1vcmUgY2hhbmdlcyBvZiB2YWx1ZSB3aGVuIHZhcmlhYmxlIGlzIElNTVVUQUJM RSAqLworCWlmIChzdmFyLT5pc19pbW11dGFibGUpCisJCXN2YXItPnByb3RlY3RfdmFsdWUgPSB0 cnVlOworCiAJLyoKIAkgKiBYWFggV2hpbGUgdW5saWtlbHksIGFuIGVycm9yIGhlcmUgaXMgcG9z c2libGUuIEl0IHdvdWxkbid0IGxlYWsgbWVtb3J5CiAJICogYXMgdGhlIGFsbG9jYXRlZCBjaHVu ayBoYXMgYWxyZWFkeSBiZWVuIGNvcnJlY3RseSBhc3NpZ25lZCB0byB0aGUKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDc4MzU5YmMxYWZjLi5hMTEyNWRjNjI3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02ODMsNiArNjgz LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVjdF9jb25zdHJ1Y3Rv cl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9yX251bGxfY2xhdXNl X29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlCiAKIC8qCiAg KiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdpcmVkIGludG8gdGhl ICJmbGV4IiBsZXhlci4KQEAgLTUyMjMsMjcgKzUyMjQsMzEgQEAgY3JlYXRlX2V4dGVuc2lvbl9v cHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6 Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5h bWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25P cHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vz c2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vz c2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ0 LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ0OwotCQkJCQluLT50 eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7 Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ5OworCQkJ CQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7CisJ CQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVOYW1lID0gJDc7CisJCQkJCW4tPmNv bGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJCQkJbi0+bm90X251bGwgPSAkOTsK KwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKIAkJ CQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVk X25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVm RXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJs ZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1l IG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RF bmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFr ZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAk MjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKLQkJCQkJ bi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJbi0+ZGVmZXhwciA9 ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKKwkJCQkJJDgtPnJlbHBlcnNpc3Rl bmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOworCQkJCQluLT52YXJpYWJsZSA9 ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xs YXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTI7CisJCQkJCW4tPmRlZmV4 cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTQ7CiAJCQkJCW4tPmlmX25vdF9l eGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtNTI2Myw2ICs1 MjY4LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0g VkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitPcHROb3ROdWxsOiBOT1QgTlVMTF9Q CQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFs c2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7 IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8g dmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA2YTcxYTdiMDU3MS4uNGMyMmNlOTU1M2IgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwpAQCAtNTMzNCw2ICs1MzM0LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQp CiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJaW50CQkJ aV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJub3RudWxsOworCWludAkJCWlfdmFyaXNpbW11 dGFibGU7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJaV9hY2xkZWZhdWx0OwogCWludAkJCWks CkBAIC01MzU2LDYgKzUzNTgsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJ ICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgogCQkJCQkgICIgICAgICAgICAg ICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCisJCQkJ CSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcmlzaW1tdXRh YmxlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4 cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFy YWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFj bGRlZmF1bHRcbiIKQEAgLTUzNzYsNiArNTM4MCw4IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpm b3V0KQogCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMsICJ2YXJkZWZleHByIik7CiAJaV92 YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3RlbmRhY3Rpb24iKTsKIAlp X3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKwlpX3Zhcm5v dG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIpOworCWlfdmFyaXNpbW11dGFibGUg PSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsKIAogCWlfdmFyb3duZXIgPSBQUWZu dW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFjbCA9IFBRZm51bWJlcihyZXMsICJ2YXJh Y2wiKTsKQEAgLTU0MDIsNiArNTQwOCw4IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQog CQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnhhY3RlbmRhY3Rpb24pKTsKIAog CQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJjb2xsYXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJub3RudWxsID0gKihQUWdldHZhbHVlKHJl cywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxl ID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2ltbXV0YWJsZSkpID09ICd0JzsKIAogCQl2 YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFj bCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NDQ4LDcgKzU0NTYsOSBAQCBkdW1wVmFyaWFi bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCWNvbnN0IGNo YXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2 YXJ4YWN0ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZhcmlzaW1tdXRhYmxlOwogCU9pZAkJCXZh cmNvbGxhdGlvbjsKKwlib29sCQl2YXJub3RudWxsOwogCiAJLyogU2tpcCBpZiBub3QgdG8gYmUg ZHVtcGVkICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgZG9wdC0+ZGF0YU9ubHkpCkBA IC01NDYyLDEyICs1NDcyLDE0IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBW YXJpYWJsZUluZm8gKnZhcmluZm8pCiAJdmFyZGVmZXhwciA9IHZhcmluZm8tPnZhcmRlZmV4cHI7 CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29s bGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCXZhcm5vdG51bGwgPSB2YXJpbmZvLT52 YXJub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0gdmFyaW5mby0+dmFyaXNpbW11dGFibGUgPyAi SU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklB QkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFtZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihx dWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAgcXVhbHZhcm5hbWUsIHZh cnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFICVzVkFSSUFCTEUg JXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFt ZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKQEAgLTU0NzksNiArNTQ5 MSw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZh cmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYg KHZhcm5vdG51bGwpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE5PVCBOVUxMIik7CisK IAlpZiAodmFyZGVmZXhwcikKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAl cyIsCiAJCQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggZTJjYjA2Y2M4ODMuLmNi YjA2YjY2Zjc0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcxMCw2ICs3MTAsOCBAQCB0eXBlZGVmIHN0cnVj dCBfVmFyaWFibGVJbmZvCiAJY2hhcgkgICAqaW5pdHJ2YXJhY2w7CiAJT2lkCQkJdmFyY29sbGF0 aW9uOwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBz dHJpbmcgKi8KKwlib29sCQl2YXJub3RudWxsOworCWJvb2wJCXZhcmlzaW1tdXRhYmxlOwogfSBW YXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDA0ZmU5ODQz YWU2Li45ZWJmZDZkYmE3MiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTM5OTUsNiAr Mzk5NSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgSU1NVVRBQkxF IFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVz dC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJ TU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2VyO1xFL3htLAor CQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAor CQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVk ZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4g MSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJs ZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9h bGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFy aWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMCcsCisJCXJlZ2V4cCA9PiBxci9e CisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNyBBUyBp bnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxf cnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+ IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4g MSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JF QVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRl X3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA1NjY1 NTkzMTZlZS4uMTVjYTc3Nzk5NmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0 VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZl ckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNl dC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07 CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTE4MCw2ICs1 MTgwLDggQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2Up CiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRp b24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0g di52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24g PD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5w Z19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2 LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcmlzaW1tdXRhYmxl IGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVm ZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9u XG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKQEAgLTUx OTAsNiArNTE5Miw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9v cCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdl dHRleHRfbm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IGVjNTRhYmI5 YTczLi40ZDZhOTQzNzEyZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTI1Miw2ICsxMjUyLDggQEAg c3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJG T1JFSUdOIFRBQkxFIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJGVU5DVElPTiIsIE5VTEwsIE5V TEwsIFF1ZXJ5X2Zvcl9saXN0X29mX2Z1bmN0aW9uc30sCiAJeyJHUk9VUCIsIFF1ZXJ5X2Zvcl9s aXN0X29mX3JvbGVzfSwKKwl7IklNTVVUQUJMRSBWQVJJQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEws IE5VTEwsIFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgSU1N VVRBQkxFCisJCQkJCQkJCQkJCQkJCQkJCQkJCQkgKiBWQVJJQUJMRSAuLi4gKi8KIAl7IklOREVY IiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX2luZGV4ZXN9LAogCXsiTEFOR1VBR0Ui LCBRdWVyeV9mb3JfbGlzdF9vZl9sYW5ndWFnZXN9LAogCXsiTEFSR0UgT0JKRUNUIiwgTlVMTCwg TlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQ1JFQVRFIHwgVEhJTkdfTk9fRFJPUH0sCkBAIC0z Mjc3LDcgKzMyNzksOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0 YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVB VEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRF TVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVf V0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxF IiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGgg VEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVO TE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zNTk0 LDcgKzM1OTcsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0 LCBpbnQgZW5kKQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVB VEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFS SUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwg IlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8Ci0JCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZ IiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFS WSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJJTU1VVEFCTEUi LCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7CiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQogCQkvKiBDb21wbGV0 ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KQEAgLTQyNDIsNiArNDI0 NiwxMCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJGUk9NIiwgIlNFUlZFUiIsIE1hdGNoQW55LCAi SU5UTyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1BUSU9OUyAoIik7CiAKKy8qIElN TVVUQUJMRSAtLSBjYW4gYmUgZXhwZW5kIHRvIElNTVVUQUJMRSBWQVJJQUJMRSAqLworCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiSU1NVVRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEgo IlZBUklBQkxFIik7CisKIC8qIElOU0VSVCAtLS0gY2FuIGJlIGluc2lkZSBFWFBMQUlOLCBSVUxF LCBldGMgKi8KIAkvKiBDb21wbGV0ZSBOT1QgTUFUQ0hFRCBUSEVOIElOU0VSVCAqLwogCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJOT1QiLCAiTUFUQ0hFRCIsICJUSEVOIiwgIklOU0VSVCIpKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDNiOTY2N2IyNDdiLi41OGI1NzNmYWU0OSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTQsNiArNTQsMTIgQEAgQ0FUQUxPRyhwZ192 YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxl J3MgdHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogZG9u J3QgYWxsb3cgTlVMTCAqLworCWJvb2wJCXZhcm5vdG51bGwgQktJX0RFRkFVTFQoZik7CisKKwkv KiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFV TFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFj dGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGVk MGEyMTRmZmU0Li43NmQ3NjU2ZDdmNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ1NSw2 ICszNDU1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFt ZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVz ZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0 IGFscmVhZHkgZXhpc3RzICovCisJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAq LworCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCU5vZGUJ ICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0 aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJT dG10OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggY2ExMzFlNTY4ZWIuLmY3MDgy NjM5NjA1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU4MzMsMjAgKzU4MzMs MjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENP TExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8 IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZp bGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1h IHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwg Y2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg dCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJM RSB2YXIxIFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNj cmlwdGlvbic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAg IERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVz c192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAg ICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0 YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVy IHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAg fCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRp b24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAg ICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02MzE0 LDkgKzYzMTQsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52 YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFi bGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3 aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBp bXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZl bnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFt ZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93 cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hl bWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NjI4LDkgKzY2MjgsOSBAQCBMaXN0IG9mIHRleHQgc2Vh cmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg fCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0g YWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggOWM0MmY4ZTRlMDkuLjZlZjFhNmY4OGMxIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDUsMTEgKzQ1LDExIEBA IFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3Zh cnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZBVUxUOwogXGRWKyBzdmFydGVzdC52 YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1l IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZp bGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50 ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNz X3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2No ZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBE ZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJP UCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTYwNCwzICsxNjA0LDE0OCBAQCBTRUxFQ1Qg dmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7 CistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9S OiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJs ZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGlu aXRpYWxpemVkIHlldC4KKy0tc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwg REVGQVVMVCAwOworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVD VCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFC TEVTOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2 YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgor ICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQg dG8gZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQg Zm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhl IHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVT OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAgMTAKKygxIHJvdykKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFy dGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJM RQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gZmly c3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBz aG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVi bGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBz aG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAy MDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElN TVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVG QVVMVCAxMDsKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxU IHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitE Uk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFS SUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVGQVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWls CitMRVQgdmFyMSA9IDEwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIg aXMgZGVjbGFyZWQgSU1NVVRBQkxFCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNo b3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJw dWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggOGI0MzIxNzc5 ODAuLmQwMjIyZjgwYTQ5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xMDczLDMgKzEwNzMsMTI1IEBAIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBOT1QgTlVM TAorLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEw7 CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hv dWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAw OworCistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hv dWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCist LSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZB VUxUIHZhcnRlc3RfZngoKTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOworCitE SVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VM RUNUIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwor CistLSB0ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gZmlyc3Qgd3JpdGUgc2hvdWxk IG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZB UklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBiZSBv aworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBERUZBVUxUIDEwOworCistLSBkb24ndCBhbGxvdyBjaGFuZ2Ugd2hlbiB2YXJpYWJsZSBoYXMg REVGQVVMVCB2YWx1ZQorLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NB UkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxk IGJlIG9rCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgSU5UIE5PVCBOVUxMIERF RkFVTFQgMTA7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjEg PSAyMDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIHRvIGZh aWwKK0xFVCB2YXIxID0gMzA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0gCjIuNDUuMgoK --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0009-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20240730-0009-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwkl11 RnJvbSBmYzAzMzZlMGIzMjMwZTMyMjkwMThiZGFhMjY5NjJiZjE0NDAyMTFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIwXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCAxODlhYzQzYTg4YS4uNzdkZmY5MGY2YjMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxNjMsNyArMTIxNjMsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggZGU5YWU5YjQ4MzQuLmI0YjliNWI2MWM4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDBmMmZmYWQz MDQ5Li5kYTc2NDAzM2RiYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtNDI4Miw5ICs0MjgyLDkgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwg IlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKLS8qIExFVCAqLworLyogTEVULCBF WFBMQUlOIExFVCwgUFJFUEFSRSBMRVQgKi8KIAkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdn ZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KLQllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJs ZT4gd2l0aCAiPSIgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCAxMWVhZWE2NjlkYi4uMzU4NTAyZmEzMWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MjgsOSArNDI4LDkgQEAgRFJPUCBWQVJJ QUJMRSB2YXIxLCB2YXIyOwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93 ZWQgaW4gQ1RFCiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2 YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICJMRVQiCitFUlJPUjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUg MTogV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAg ICAgICAgICAgIF4KKyAgICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0g Z2VuZXJhdGVfc2VyaWVzKDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTEzMDgsNSArMTMwOCw4 MiBAQCBTRUxFQ1QgdmFyMTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1Qg Y291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAx CisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJf dGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElN SU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIEVYRUNVVEUgcDE7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1 YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rl c3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQg YmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKK0RFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIG51bWVyaWM7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxh bjsKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAkMTsKK1BSRVBBUkUgcDIgQVMg U0VMRUNUIHZhcjE7CitFWEVDVVRFIHAxKHBpKCkgKyAxMDApOworRVhFQ1VURSBwMjsKKyAgICAg IHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLQorIDEwMy4xNDE1OTI2NTM1OQorKDEgcm93 KQorCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklB QkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworLS0gc2hvdWxkIGJlIE5V TEwKK0VYRUNVVEUgcDI7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworREVBTExP Q0FURSBwMTsKK0RFQUxMT0NBVEUgcDI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgcGxhbl9j YWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWNbXTsKK1BSRVBBUkUgcDEoaW50LCBudW1lcmljKSBBUyBMRVQgdmFyMVskMV0gPSAkMjsK K0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VYRUNV VEUgcDEoMiwgMTAuMyk7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgICAKKy0tLS0tLS0tLS0t LS0KKyB7MTAuMiwxMC4zfQorKDEgcm93KQorCitERUFMTE9DQVRFIHAxOworRFJPUCBWQVJJQUJM RSB2YXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IGZhMGE1N2ZjNzdlLi4zNDM2YjU3ZThjNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtODgwLDUgKzg4MCw2MiBAQCBFWFBMQUlOIChDT1NUUyBPRkYs IFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291 bnQoKgogLS0gc2hvdWxkIGJlIDEwCiBTRUxFQ1QgdmFyMTsKIAorU0VUIHBsYW5fY2FjaGVfbW9k ZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VM RUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworTEVUIHZhcjEgPSBOVUxM OworCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDE7CisKKy0tIHNob3VsZCBiZSBOVUxM CitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpF LCBTVU1NQVJZIE9GRikgRVhFQ1VURSBwMTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFy MTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCitERUFMTE9DQVRFIHAxOwor CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAk MTsKK1BSRVBBUkUgcDIgQVMgU0VMRUNUIHZhcjE7CisKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7 CitFWEVDVVRFIHAyOworCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0 CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCist LSBzaG91bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKworREVBTExPQ0FURSBwMTsKK0RFQUxMT0NB VEUgcDI7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWNbXTsKKwor UFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQxXSA9ICQyOworCitMRVQgdmFy MSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRFIHAxKDIs IDEwLjMpOworCitTRUxFQ1QgdmFyMTsKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKLS0gCjIuNDUuMgoK --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0010-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20240730-0010-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwkf10 RnJvbSA0ZDkxMDJlYjFiNTFkMWVkZTU5NWZiMTY1NzgyYzNiOGU2ZWYyZTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjE6MzY6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDEw LzIwXSBpbXBsZW1lbnRhdGlvbiBvZiB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMKClRoZSB0 ZW1wb3JhcnkgdmFyaWFibGVzIGFyZSBjcmVhdGVkIGluc2lkZSB0ZW1wIHNjaGVtYSBhbmQgdGhl eSBhcmUgZHJvcHBlZCBieSBkcm9wcGluZwp0aGlzIHNjaGVtYS4gRm9yIGNvbnNpc3RlbmN5IHdp dGggdGVtcCB0YWJsZXMsIHRoZSBDUkVBVEUgVEVNUCBWQVJJQUJMRSBjb21tYW5kIHN1cHBvcnRz Ck9OIENPTU1JVCBEUk9QIGNsYXVzZS4gVGhlIHRlbXBvcmFyeSB2YXJpYWJsZXMgd2l0aCB0aGlz IGNsYXVzZSBhcmUgY29sbGVjdGVkIGluIHhhY3RfZHJvcF9pdGVtcwpsaXN0LiBUaGlzIGxpc3Qg c2hvdWxkIGJlIGNhcmVmdWxseSBtYWludGFpbmVkIGFuZCBjYW4gY29udGFpbiBvbmx5IHZhbGlk IGVudHJpZXMgKG5vdAp5ZXQgZHJvcHBlZCkuIEZyb20gdGhpcyByZWFzb25zIG5vdyB0aGUgc3Vi Y29tbWl0IGFuZCBzdWJhYm9ydGluZyBoYXZlIHRvIGJlIGhhbmRsZWQuCi0tLQogZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIGRvYy9zcmMvc2dt bC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAyNCArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE5MCArKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgMjIgKy0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDkgKwogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA3ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICAgMyArLQogLi4uL2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgIDY2ICsrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDIz IGZpbGVzIGNoYW5nZWQsIDUyMSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IDNlNWI3MDJiMDE2Li41ZTI1ZDM3YjcwOSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTk4MzIsNiArOTgzMiwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0 aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hh cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjdGlvbiBwZXJm b3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggNjVhMDNhOThlMWEuLmI4ZWMwMmE4NWVkIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzU2LDggKzUzNTYsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIGJlZW4gc2V0 IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhlCiAgICAg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiBUaGUgY29udGVudCBvZiBhIHZhcmlhYmxl IGlzIG5vdAogICAgIHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMgcmVndWxhciB2 YXJpYWJsZXMgaW4gUEwgbGFuZ3VhZ2VzLgotICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUg cGVyc2lzdGVudCwgYnV0IHRoZSBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGlzCi0gICAg dGVtcG9yYXJ5IGFuZCBub3Qgc2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mIHRlbXBvcmFyeSB0 YWJsZXMpLgorICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgcGVyc2lzdGVudCBvciBj YW4gYmUgdGVtcG9yYXJ5LiBJbiBib3RoIGNhc2VzLAorICAgIHRoZSBjb250ZW50IG9mIHNlc3Np b24gdmFyaWFibGVzIGlzIHRlbXBvcmFyeSBhbmQgbm90IHNoYXJlZCAobGlrZSB0aGUKKyAgICBj b250ZW50IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDA1YmY2N2UzNDExLi42NDIzNDYx ODZmMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw4 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9w c2lzPgotQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRF IFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENP TExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFi bGU+IF0KKyAgICBbIE9OIENPTU1JVCBEUk9QIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNp c2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMDQsNiArMTA1LDE4IEBAIENSRUFURSBWQVJJQUJMRSBb IElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFiCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tY29tbWl0LWRyb3AiPgorICAgIDx0ZXJt PjxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFs PiBjbGF1c2Ugc3BlY2lmaWVzIHRoZSBiZWhhdmlvdXIgb2YgYQorICAgICAgdGVtcG9yYXJ5IHNl c3Npb24gdmFyaWFibGUgYXQgdHJhbnNhY3Rpb24gY29tbWl0LiBXaXRoIHRoaXMgY2xhdXNlLCB0 aGUKKyAgICAgIHNlc3Npb24gdmFyaWFibGUgaXMgZHJvcHBlZCBhdCBjb21taXQgdGltZS4gVGhl IGNsYXVzZSBpcyBvbmx5IGFsbG93ZWQKKyAgICAgIGZvciB0ZW1wb3JhcnkgdmFyaWFibGVzLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwv dmFyaWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hhY3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpp bmRleCAyZDNlZDg2MDdhYi4uZDg3N2UxOGY5NmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0 LmMKQEAgLTIzMDcsNyArMjMwNyw3IEBAIENvbW1pdFRyYW5zYWN0aW9uKHZvaWQpCiAJc21nckRv UGVuZGluZ1N5bmNzKHRydWUsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAKIAkvKiBSZW1vdmUgdmFs dWVzIG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBtZW1vcnkgKi8KLQlBdFByZUVP WGFjdF9TZXNzaW9uVmFyaWFibGVzKCk7CisJQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyh0 cnVlKTsKIAogCS8qIGNsb3NlIGxhcmdlIG9iamVjdHMgYmVmb3JlIGxvd2VyLWxldmVsIGNsZWFu dXAgKi8KIAlBdEVPWGFjdF9MYXJnZU9iamVjdCh0cnVlKTsKQEAgLTI4OTksNiArMjg5OSw3IEBA IEFib3J0VHJhbnNhY3Rpb24odm9pZCkKIAlBdEFib3J0X1BvcnRhbHMoKTsKIAlzbWdyRG9QZW5k aW5nU3luY3MoZmFsc2UsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRFT1hhY3RfTGFyZ2VPYmpl Y3QoZmFsc2UpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoZmFsc2UpOwogCUF0QWJv cnRfTm90aWZ5KCk7CiAJQXRFT1hhY3RfUmVsYXRpb25NYXAoZmFsc2UsIGlzX3BhcmFsbGVsX3dv cmtlcik7CiAJQXRBYm9ydF9Ud29waGFzZSgpOwpAQCAtNTE3NSw2ICs1MTc2LDggQEAgQ29tbWl0 U3ViVHJhbnNhY3Rpb24odm9pZCkKIAlBdEVPU3ViWGFjdF9TUEkodHJ1ZSwgcy0+c3ViVHJhbnNh Y3Rpb25JZCk7CiAJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnModHJ1ZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKIAkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOworCUF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKKwkJ CQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfTmFtZXNw YWNlKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJh bnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfRmlsZXModHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25J ZCwKQEAgLTUzMzksNiArNTM0Miw4IEBAIEFib3J0U3ViVHJhbnNhY3Rpb24odm9pZCkKIAkJQXRF T1N1YlhhY3RfU1BJKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3Rf b25fY29tbWl0X2FjdGlvbnMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJCQkg IHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CisJCUF0RU9TdWJYYWN0X1Nlc3Npb25WYXJp YWJsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCQkgcy0+cGFyZW50LT5z dWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfTmFtZXNwYWNlKGZhbHNlLCBzLT5zdWJU cmFuc2FjdGlvbklkLAogCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJ QXRFT1N1YlhhY3RfRmlsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKaW5kZXggMGIyMTIwNGJjNDcuLjcwYjYyMmFhNjcyIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0zNiw3ICszNiw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNz IGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCQkJCQkJIGludDMyIHZh clR5cG1vZCwKIAkJCQkJCQkJCSBPaWQgdmFyT3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxh dGlvbiwKLQkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMpOworCQkJCQkJCQkJIGJvb2wgaWZf bm90X2V4aXN0cywKKwkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbik7CiAKIAogLyoKQEAgLTQ5LDcgKzUwLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJCQkJaW50MzIgdmFyVHlwbW9kLAogCQkJCU9pZCB2YXJPd25lciwKIAkJ CQlPaWQgdmFyQ29sbGF0aW9uLAotCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKKwkJCQlib29sIGlm X25vdF9leGlzdHMsCisJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24p CiB7CiAJQWNsCQkgICAqdmFyYWNsOwogCU5hbWVEYXRhCXZhcm5hbWU7CkBAIC0xMTAsNiArMTEy LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJbnQzMkdldERhdHVtKHZhclR5cG1vZCk7CiAJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o dmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0g T2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsK IAogCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwgdmFyT3du ZXIsCiAJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKQEAgLTE4Myw2ICsxODYsMTMgQEAgQ3JlYXRl VmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkK IAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsKIAorCS8qIENo ZWNrIGNvbnNpc3RlbmN5IG9mIGFyZ3VtZW50cyAqLworCWlmIChzdG10LT5YYWN0RW5kQWN0aW9u ID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUAorCQkmJiBzdG10LT52YXJpYWJsZS0+cmVscGVyc2lz dGVuY2UgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coIk9O IENPTU1JVCBEUk9QIGNhbiBvbmx5IGJlIHVzZWQgb24gdGVtcG9yYXJ5IHZhcmlhYmxlcyIpKSk7 CisKIAluYW1lc3BhY2VpZCA9CiAJCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFj ZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBOVUxMKTsKIApAQCAtMjIyLDcgKzIzMiw4IEBAIENy ZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0 bXQpCiAJCQkJCQkJICAgdHlwbW9kLAogCQkJCQkJCSAgIHZhcm93bmVyLAogCQkJCQkJCSAgIGNv bGxhdGlvbiwKLQkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKKwkJCQkJCQkgICBzdG10 LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCiAJZWxv ZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdh cyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKIAkJIHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLCB2 YXJpYWJsZS5vYmplY3RJZCk7CkBAIC0yMzAsNiArMjQxLDggQEAgQ3JlYXRlVmFyaWFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkvKiBXZSB3YW50 IFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzIHRvIHNlZSB0aGUgY2F0YWxvZyBjaGFu Z2VzLiAqLwogCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CiAKKwlTZXNzaW9uVmFyaWFibGVD cmVhdGVQb3N0cHJvY2Vzcyh2YXJpYWJsZS5vYmplY3RJZCwgc3RtdC0+WGFjdEVuZEFjdGlvbik7 CisKIAlyZXR1cm4gdmFyaWFibGU7CiB9CiAKQEAgLTI0Miw2ICsyNTUsNyBAQCBEcm9wVmFyaWFi bGVCeUlkKE9pZCB2YXJpZCkKIHsKIAlSZWxhdGlvbglyZWw7CiAJSGVhcFR1cGxlCXR1cDsKKwlj aGFyCQlYYWN0RW5kQWN0aW9uOwogCiAJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCkBAIC0yNTAsNiArMjY0LDggQEAgRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCiAJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAorCVhh Y3RFbmRBY3Rpb24gPSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApKS0+dmFyeGFj dGVuZGFjdGlvbjsKKwogCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CiAK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKQEAgLTI1Nyw1ICsyNzMsNSBAQCBEcm9wVmFyaWFibGVC eUlkKE9pZCB2YXJpZCkKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJ LyogRG8gdGhlIG5lY2Vzc2FyeSBjbGVhbnVwIGlmIG5lZWRlZCBpbiBsb2NhbCBtZW1vcnkgKi8K LQlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3ModmFyaWQpOworCVNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCwgWGFjdEVuZEFjdGlvbik7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggZDkxNjk4MjBhN2YuLjNhMzQ4OWVjNzQzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNiw2ICsxNiw4IEBA CiAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9n L25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNp bmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGku aCIKQEAgLTMxLDYgKzMzLDE5IEBACiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKK3R5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9w SXRlbQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHZhcmlkIG9mIHNlc3Npb24gdmFyaWFibGUgKi8K KworCS8qCisJICogY3JlYXRpbmdfc3ViaWQgaXMgdGhlIElEIG9mIHRoZSBjcmVhdGluZyBzdWJ4 YWN0LiBJZiB0aGUgYWN0aW9uIHdhcworCSAqIHVucmVnaXN0ZXJlZCBkdXJpbmcgdGhlIGN1cnJl bnQgdHJhbnNhY3Rpb24sIGRlbGV0aW5nX3N1YmlkIGlzIHRoZSBJRAorCSAqIG9mIHRoZSBkZWxl dGluZyBzdWJ4YWN0LCBvdGhlcndpc2UgSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQuCisJICovCisJ U3ViVHJhbnNhY3Rpb25JZCBjcmVhdGluZ19zdWJpZDsKKwlTdWJUcmFuc2FjdGlvbklkIGRlbGV0 aW5nX3N1YmlkOworfSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CisKIC8qCiAgKiBWYWx1ZXMgb2Yg c2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCBsb2NhbCBtZW1vcnkK ICAqIGluc2lkZSBzZXNzaW9udmFycyBoYXNoIHRhYmxlIGluIGJpbmFyeSBmb3JtYXQgaW5zaWRl IGEgZGVkaWNhdGVkIG1lbW9yeQpAQCAtMTEzLDYgKzEyOCwxMiBAQCBzdGF0aWMgYm9vbCBuZWVk c192YWxpZGF0aW9uID0gZmFsc2U7CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFs aWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRz IGZpZWxkcyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhh Y3RfZHJvcF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lv bl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0 aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTUxLDE2ICsx NzIsNDUgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVp ZCwgdWludDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdv cmsgdG8gc2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxl LgorICoKKyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2Fy eSBlbnRyeSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQK K1Nlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5k QWN0aW9uKQoreworCS8qCisJICogRm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8g Y3JlYXRlIGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBm cm9tIGNhdGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVO RF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0 X2Ryb3AodmFyaWQpOworCX0KK30KKwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNs ZWFudXAgZm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQg dGFrZSBjYXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwog dm9pZAotU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25W YXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsK IAlBc3NlcnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwog CisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNz ZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQp KSk7CisKKwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJ fQorCiAJaWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xODMsNiArMjMz LDU3IEBAIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCiAJfQogfQog CisvKgorICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMgdG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lv biB2YXJpYWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVuZCB0aW1lLiBXZSB3YW50IHRvIGRyb3Ag dGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGggY2xhdXNlIE9OIENPTU1JVAorICogRFJP UC4KKyAqLworCisvKgorICogUmVnaXN0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9u LgorICovCitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao T2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haTsKKwlNZW1vcnlD b250ZXh0IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1l bW9yeUNvbnRleHQpOworCisJeGFjdF9haSA9IChTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJ cGFsbG9jKHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0ZW0pKTsKKworCXhhY3RfYWktPnZhcmlk ID0gdmFyaWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFu c2FjdGlvbklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNh Y3Rpb25JZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxjb25zKHhhY3RfYWksIHhhY3RfZHJvcF9p dGVtcyk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKK30KKworLyoKKyAqIFVu cmVnaXN0ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0 LiBJbiB0aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24gaXMganVzdCBtYXJrZWQgYXMgZGVsZXRl ZCBieSBzZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUKKyAqIGNhbGxpbmcgZXZlbiBtaWdodCBi ZSByb2xsYmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZCBub3QgbG9zZSB0aGlzCisgKiBh Y3Rpb24uCisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFj dF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAgICpsOworCisJZm9yZWFjaChsLCB4YWN0 X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJ KFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJaWYgKHhhY3RfYWktPnZh cmlkID09IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3Vi VHJhbnNhY3Rpb25JZCgpOworCX0KK30KKwogLyoKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBm cmVlIG1lbW9yeQogICovCkBAIC0yOTgsMTUgKzM5OSw5MiBAQCByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogfQogCiAvKgotICogUmVtb3ZlIHZhbHVlcyBvZiBk cm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICAqIFBlcmZvcm0gT04gQ09N TUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKKyAgKiBhbmQgcmVtb3Zl IGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KICAqLwogdm9pZAotQXRQcmVFT1hh Y3RfU2Vzc2lvblZhcmlhYmxlcyh2b2lkKQorQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhi b29sIGlzQ29tbWl0KQogewotCS8qIFdlIGNhbm5vdCB0byBkbyBpdCB3aGVuIHRyYW5zYWN0aW9u IGlzIGFib3J0ZWQgKi8KLQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCWlmIChpc0Nv bW1pdCkKKwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJCXsKKwkJCUxpc3RDZWxsICAgKmw7 CisKKwkJCWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCQkJeworCQkJCVNWYXJpYWJsZVhB Y3REcm9wSXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZp cnN0KGwpOworCisJCQkJLyogSXRlcmF0ZSBvbmx5IG92ZXIgZW50cmllcyB0aGF0IGFyZSBzdGls bCBwZW5kaW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID09IEludmFsaWRT dWJUcmFuc2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJ CQkJb2JqZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9uSWQ7CisJCQkJCW9iamVjdC5vYmpl Y3RJZCA9IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJ CQkJCS8qCisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0b21hdGljIGRyb3AsIHJhdGhlciB0 aGFuIG9uZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQgYnkgdGhlIHVzZXIsIHdlIHBhc3Mg dGhlCisJCQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgZmxhZy4KKwkJCQkJICovCisJ CQkJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAob2lkOiV1KSB3aWxsIGJlIGRlbGV0 ZWQgKGZvcmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2UpIiwKKwkJCQkJCSB4YWN0X2FpLT52 YXJpZCk7CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJ CQkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJCQkJUEVSRk9STV9ERUxF VElPTl9RVUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KIAotCXJlbW92ZV9pbnZhbGlkX3Nlc3Np b25fdmFyaWFibGVzKHRydWUpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0 cnVlKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBB bGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkgKiBub3csIG9yIGxvc3QgaW5zaWRl IGFib3J0ZWQgdHJhbnNhY3Rpb24uCisJICovCisJbGlzdF9mcmVlX2RlZXAoeGFjdF9kcm9wX2l0 ZW1zKTsKKwl4YWN0X2Ryb3BfaXRlbXMgPSBOVUxMOworfQorCisvKgorICogUG9zdC1zdWJjb21t aXQgb3IgcG9zdC1zdWJhYm9ydCBjbGVhbnVwIG9mIHhhY3QgZHJvcCBsaXN0LgorICoKKyAqIER1 cmluZyBzdWJhYm9ydCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVzIGNyZWF0ZWQg ZHVyaW5nIHRoaXMKKyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0LCBqdXN0IHRy YW5zZmVyIGVudHJpZXMgbWFya2VkIGR1cmluZworICogdGhpcyBzdWJ0cmFuc2FjdGlvbiBhcyBi ZWluZyB0aGUgcGFyZW50J3MgcmVzcG9uc2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0RU9TdWJYYWN0 X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25J ZCBteVN1YmlkLAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKQoreworCUxp c3RDZWxsICAgKmN1cl9pdGVtOworCisJZm9yZWFjaChjdXJfaXRlbSwgeGFjdF9kcm9wX2l0ZW1z KQorCXsKKwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVY QWN0RHJvcEl0ZW0gKikgbGZpcnN0KGN1cl9pdGVtKTsKKworCQlpZiAoIWlzQ29tbWl0ICYmIHhh Y3RfYWktPmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1cl9pdGVtIG11 c3QgYmUgcmVtb3ZlZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9kZWxldGVfY3Vy cmVudCh4YWN0X2Ryb3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3RfYWkpOworCQl9 CisJCWVsc2UKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJCWlm ICh4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmNyZWF0 aW5nX3N1YmlkID0gcGFyZW50U3ViaWQ7CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQg PT0gbXlTdWJpZCkKKwkJCQl4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9IGlzQ29tbWl0ID8gcGFy ZW50U3ViaWQgOiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJfQorCX0KIH0KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZpZXcuYwppbmRleCBmZGFkODMzODMyNC4uNmY3NGYxNGY2YWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3 LmMKQEAgLTQ4NCw3ICs0ODQsNyBAQCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBj aGFyICpxdWVyeVN0cmluZywKIAkgKi8KIAl2aWV3ID0gY29weU9iamVjdChzdG10LT52aWV3KTsJ LyogZG9uJ3QgY29ycnVwdCBvcmlnaW5hbCBjb21tYW5kICovCiAJaWYgKHZpZXctPnJlbHBlcnNp c3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAotCQkmJiBpc1F1ZXJ5VXNpbmdUZW1w UmVsYXRpb24odmlld1BhcnNlKSkKKwkJJiYgaXNRdWVyeVVzaW5nVGVtcE9iamVjdCh2aWV3UGFy c2UpKQogCXsKIAkJdmlldy0+cmVscGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOwog CQllcmVwb3J0KE5PVElDRSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDJjMGE2NmZiMmNjLi40NzA3 NDEzNmU2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzAzLDEwICszMzAzLDEwIEBAIHRyYW5z Zm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0 bXQgKnN0bXQpCiAJCSAqIGNyZWF0aW9uIHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJl c2ggZGF0YSBvciBpbmNyZW1lbnRhbGx5CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRp c2FwcGVhcmVkLgogCQkgKi8KLQkJaWYgKGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkp CisJCWlmIChpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVy cm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9y IHZpZXdzIikpKTsKKwkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVz ZSB0ZW1wb3JhcnkgdGFibGVzLCB2aWV3cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJ LyoKIAkJICogQSBtYXRlcmlhbGl6ZWQgdmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBh cmFtZXRlcnMgZm9yIHVzZSBpbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzdkZmY5MGY2YjMuLjE3MmVlMWY0 NWQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQ4MCw2ICs0ODAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogJXR5cGUgPGl2YWw+CSBPcHRUZW1wCiAldHlwZSA8aXZhbD4JIE9wdE5vTG9nCiAldHlw ZSA8b25jb21taXQ+IE9uQ29tbWl0T3B0aW9uCisldHlwZSA8aXZhbD4JIFhhY3RFbmRBY3Rpb25P cHRpb24KIAogJXR5cGUgPGl2YWw+CWZvcl9sb2NraW5nX3N0cmVuZ3RoCiAldHlwZSA8bm9kZT4J Zm9yX2xvY2tpbmdfaXRlbQpAQCAtNTIyMSwyNiArNTIyMiwzOSBAQCBjcmVhdGVfZXh0ZW5zaW9u X29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3Rt dDoKLQkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0 X2NvbGxhdGVfY2xhdXNlCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFt ZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24K IAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vz c2lvblZhclN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQzOwotCQkJCQluLT50eXBlTmFtZSA9 ICQ1OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCSQ0 LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ0OworCQkJCQluLT50 eXBlTmFtZSA9ICQ2OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7 CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkODsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgVkFSSUFCTEUg SUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0 ZV9jbGF1c2UKKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFj dGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9k ZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDY7Ci0JCQkJCW4t PnR5cGVOYW1lID0gJDg7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAk OTsKKwkJCQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxlID0gJDc7 CisJCQkJCW4tPnR5cGVOYW1lID0gJDk7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNs YXVzZSAqKSAkMTA7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CiAJCQkJCW4tPmlmX25v dF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKKy8q CisgKiBUZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vz c2Z1bAorICogdHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgorICovCitYYWN0RW5kQWN0aW9u T3B0aW9uOiAgT04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsg fQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX05PT1A7IH0K KwkJOworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBu YW1lIFVQREFURSBbIFRPIHZlcnNpb24gXQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpp bmRleCAyZjY0ZWFmMGUzNy4uYmRlNWIxMTE4YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxh dGlvbi5jCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgZXhwYW5kVHVwbGVEZXNjKFR1 cGxlRGVzYyB0dXBkZXNjLCBBbGlhcyAqZXJlZiwKIHN0YXRpYyBpbnQJc3BlY2lhbEF0dE51bShj b25zdCBjaGFyICphdHRuYW1lKTsKIHN0YXRpYyBib29sIHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwo UGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwogc3RhdGljIGJvb2wgcnRl X3Zpc2libGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAq cnRlKTsKLXN0YXRpYyBib29sIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCk7CitzdGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0 X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIAogCiAvKgpAQCAtMzgyMSwxMyAr MzgyMSwxMyBAQCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBS YW5nZVRibEVudHJ5ICpydGUpCiAgKiB0aGUgcXVlcnkgaXMgYSB0ZW1wb3JhcnkgcmVsYXRpb24g KHRhYmxlLCB2aWV3LCBvciBtYXRlcmlhbGl6ZWQgdmlldykuCiAgKi8KIGJvb2wKLWlzUXVlcnlV c2luZ1RlbXBSZWxhdGlvbihRdWVyeSAqcXVlcnkpCitpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1 ZXJ5ICpxdWVyeSkKIHsKLQlyZXR1cm4gaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcigo Tm9kZSAqKSBxdWVyeSwgTlVMTCk7CisJcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fs a2VyKChOb2RlICopIHF1ZXJ5LCBOVUxMKTsKIH0KIAogc3RhdGljIGJvb2wKLWlzUXVlcnlVc2lu Z1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK2lzUXVlcnlV c2luZ1RlbXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiB7CiAJaWYg KG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzg1MywxMyArMzg1MywyMyBAQCBp c1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQp CiAJCX0KIAogCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCi0JCQkJCQkJCSBpc1F1 ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgaXNRdWVyeVVzaW5nVGVtcE9i amVjdF93YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LAogCQkJCQkJCQkgUVRXX0lHTk9SRV9KT0lO QUxJQVNFUyk7CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkg ICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFS SUFCTEUpCisJCXsKKwkJCWlmIChpc0FueVRlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHAtPnBhcmFtdmFyaWQpKSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0K IAogCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCi0JCQkJCQkJCSAgaXNRdWVy eVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wT2Jq ZWN0X3dhbGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBhZGY4M2Vk MTk3MC4uZjZhYThiYzVmNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisr KyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFy aWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRh dGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5w b3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBi b29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAw KQogCXsKQEAgLTUxNzksMTIgKzUxNzksMTYgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2 LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBj LmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190 eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0 Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBh cyBcIiVzXCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJv d25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlk KHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFj dGlvblxuIgorCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJ CQkJCSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlw ZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9u b29wKCJPd25lciIpKTsKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0 dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkK IAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggZGE3NjQwMzNkYmEuLmVjNTRhYmI5YTczIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jCkBAIC0zMjc3LDcgKzMyNzcsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hh ciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxv d2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21w bGV0ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVj dHMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikp Ci0JCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExF VEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCS8qIENv bXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNl IGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgo IlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zNTkzLDcgKzM1OTMsOCBAQCBwc3FsX2NvbXBsZXRp b24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIC8qIENSRUFURSBW QVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxN YXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICov Ci0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkK KwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8 CisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp KQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJM RSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1l PiB3aXRoIEFTIHR5cGVzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggY2YwNmUx MzlhYzguLjNhNGE5NzlkMzQ5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01NCw2 ICs1NCw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJ LyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlpbnQzMgkJdmFydHlwbW9kIEJLSV9E RUZBVUxUKC0xKTsKIAorCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KKwljaGFyCQl2 YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOworCiAJLyogdmFyaWFibGUgY29sbGF0aW9u ICovCiAJT2lkCQkJdmFyY29sbGF0aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBn X2NvbGxhdGlvbik7CiAKQEAgLTY2LDYgKzY5LDEyIEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIy MixWYXJpYWJsZVJlbGF0aW9uSWQpCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAK K3R5cGVkZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24KK3sKKwlWQVJJQUJMRV9YQUNURU5E X05PT1AgPSAnbicsCS8qIE5PT1AgKi8KKwlWQVJJQUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8q IE9OIENPTU1JVCBEUk9QICovCit9CQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uOworCiAvKiAtLS0t LS0tLS0tLS0tLS0tCiAgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50 ZXIgdG8gYSB0dXBsZSB3aXRoCiAgKgkJdGhlIGZvcm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVs YXRpb24uCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMGQ0YzYz NWFlN2IuLmRjODMyOTZiMWJhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCkBAIC0yMSw4ICsyMSwxMSBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVk ZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgogCi1leHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFi bGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsKLWV4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nl c3Npb25WYXJpYWJsZXModm9pZCk7CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQ b3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBT ZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rp b24pOworZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29t bWl0KTsKK2V4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0Nv bW1pdCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCQkJCSBTdWJUcmFuc2FjdGlv bklkIHBhcmVudFN1YmlkKTsKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2 YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25W YXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNO dWxsKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBmYmFiMzM4YTkzOC4uNTZlMjg0ZGMwOWMg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NTUsNiArMzQ1NSw3IEBAIHR5cGVkZWYgc3Ry dWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUg dHlwZSBvZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJ aWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWNo YXIJCVhhY3RFbmRBY3Rpb247CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3Jl YXRlU2Vzc2lvblZhclN0bXQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA3MjJkZjY5OTUz Ny4uMTg1MjdkMGY4NWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC01MSw3ICs1MSw5IEBAIHR5 cGVkZWYgc3RydWN0IEFsaWFzCiAJTGlzdAkgICAqY29sbmFtZXM7CQkvKiBvcHRpb25hbCBsaXN0 IG9mIGNvbHVtbiBhbGlhc2VzICovCiB9IEFsaWFzOwogCi0vKiBXaGF0IHRvIGRvIGF0IGNvbW1p dCB0aW1lIGZvciB0ZW1wb3JhcnkgcmVsYXRpb25zICovCisvKgorICogV2hhdCB0byBkbyBhdCBj b21taXQgdGltZSBmb3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyBvciBzZXNzaW9uIHZhcmlhYmxlcy4K KyAqLwogdHlwZWRlZiBlbnVtIE9uQ29tbWl0QWN0aW9uCiB7CiAJT05DT01NSVRfTk9PUCwJCQkJ LyogTm8gT04gQ09NTUlUIGNsYXVzZSAoZG8gbm90aGluZykgKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X3JlbGF0aW9uLmgKaW5kZXggYmVhMmRhNTQ5NjEuLjU4NWVhZGY2NTI0IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2VfcmVsYXRpb24uaApAQCAtMTI0LDYgKzEyNCw2IEBAIGV4dGVybiBpbnQJYXR0bmFt ZUF0dE51bShSZWxhdGlvbiByZCwgY29uc3QgY2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7 CiBleHRlcm4gY29uc3QgTmFtZURhdGEgKmF0dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBh dHRpZCk7CiBleHRlcm4gT2lkCWF0dG51bVR5cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsK IGV4dGVybiBPaWQJYXR0bnVtQ29sbGF0aW9uSWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1l eHRlcm4gYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVy biBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJ CQkJCS8qIFBBUlNFX1JFTEFUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBl Y3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAppbmRleCAyOTY4Y2NlMDg5NS4uOWZiYmY5MDU3YTYg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5v dXQKQEAgLTg1LDEwICs4NSwxMSBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKLXN0 YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRy b3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0 ZTMgbGV0MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQg c2MzIHN0YXRlCiBzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsK IHN0ZXAgbGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOworc3RlcCBv X2NfZDogQ1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQg RFJPUDsKIHN0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3Rl cCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBt eXZhcjQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJp YWJsZS5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3Bl YwppbmRleCBjODY0ZmVlNDAwNi4uNDVlNjVkNDA4NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0 aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpAQCAtMjQsNiArMjQsNyBAQCBzdGVwIGNy ZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQogc2Vzc2lvbiBzMwogc3Rl cCBzMwkJCXsgQkVHSU47IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9Citz dGVwIG9fY19kCQl7IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04g Q09NTUlUIERST1A7IH0KIHN0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMg dGV4dDsgfQogc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJ CXsgRFJPUCBWQVJJQUJMRSBteXZhcjQ7IH0KQEAgLTQ3LDQgKzQ4LDQgQEAgcGVybXV0YXRpb24g bGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBh ZnRlciB0aGUgY29uY3VycmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9w IGNyZWF0ZSBkYmcgdmFsIHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRl cm5hbCBxdWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMg bGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRl CitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRy b3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK aW5kZXggYzg5MDY3NDkwZjcuLmFkN2NkMWNhMzkwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQKQEAgLTU4MzMsMjAgKzU4MzMsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJs ZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlw dGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIx IElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAg ICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAg ICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUg ICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAg ICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2 YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJs ZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTYzMTQsOSArNjMx NCw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxl IgotICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8 IENvbGxhdGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NDg5LDkgKzY0ODksOSBAQCBpbXByb3Bl ciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJp Z2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0g U2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAK IC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1 YWxpZmljYXRpb25zLgpAQCAtNjYyOCw5ICs2NjI4LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0 ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fp biwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRp b25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCAzNTg1MDJmYTMxYy4uNWM4MWIzZTM0MzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEgQEAgU0VU IFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVz dC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgICAgICAgICBPd25lciAgICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxl Z2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3Zh cnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAK LSAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25l ciB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAg ICAgICAgICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192 YXJpYWJsZV9vd25lciB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7 CkBAIC0xMzg3LDMgKzEzODcsMTIzIEBAIFNFTEVDVCB2YXIxOwogCiBERUFMTE9DQVRFIHAxOwog RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVtcG9yYXJ5IHZhcmlhYmxlcworQ1JFQVRFIFRFTVAg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hvdWxkIGJlIHRlbXBvcmFyeQor Q1JFQVRFIFZJRVcgdmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZpZXcg InZhcl90ZXN0X3ZpZXciIHdpbGwgYmUgYSB0ZW1wb3JhcnkgdmlldworRFJPUCBWQVJJQUJMRSB2 YXIxIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdmFyX3Rlc3Rfdmll dworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBE Uk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor ICAxMDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50 IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFy MSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVy bworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIx JzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVy bworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFC TEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAg MAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQg T04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192 YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisK K0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJP UDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor ICAxMDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IDM0MzZiNTdlOGM3Li4xZjJiYTgxMTFmNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODEzLDYgKzgxMyw3IEBAIEJFR0lOOwogICBEUk9Q IFZBUklBQkxFIHZhcjE7CiAgIFNFTEVDVCB2YXIyOwogUk9MTEJBQ0s7CisKIC0tIHNob3VsZCBi ZSBvawogU0VMRUNUIHZhcjE7CiAKQEAgLTkzOSwzICs5NDAsNjggQEAgU0VMRUNUIHZhcjE7CiAK IERFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJp YWJsZXMKK0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNo b3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZh cjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRF TVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91 bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBE Uk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZh cm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxF IHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKwor LS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJF IHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklB QkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FW RVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBT RUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAt LWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYmMzZGJkNzI2MDQuLmI1OWFmZDc5MjAyIDEwMDY0NAot LS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjc4Nyw2ICsyNzg3LDcgQEAgU3VwcG9ydFJlcXVlc3RX RnVuY01vbm90b25pYwogU1ZhcmlhYmxlCiBTVmFyaWFibGVEYXRhCiBTVmFyaWFibGVTdGF0ZQor U1ZhcmlhYmxlWEFjdERyb3BJdGVtCiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25maWdEYXRhCi0t IAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0008-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20240730-0008-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwkp12 RnJvbSBkMWU5ODg2ZTA1NTFiNzY1ODQ4YzM1Y2VhYjBhZWYwMzdhYTMwMzFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE4OjI4OjA3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8yMF0gRVhQTEFJTiBMRVQgc3VwcG9ydAoKRW5oYW5jaW5nIEV4cGxhaW5PbmVQbGFu IGlzIG5lY2Vzc2FyeSB0byBiZSBFWFBMQUlOIEFOQUxZWkUgTEVUIGZ1bGx5IHdvcmthYmxlLgpJ biB0aGlzIGNhc2Ugd2Ugd2FudCB0byBiZSByZXN1bHQgb2YgcXVlcnkgb3IgZXhwcmVzc2lvbiB3 cml0dGVuIHRvIHRhcmdldCB2YXJpYWJsZS4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4u c2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaCAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA0MCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMSArKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2V4 cGxhaW4uc2dtbAppbmRleCBkYjlkM2E4NTQ5YS4uY2FjY2M3MDY1OGMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFp bi5zZ21sCkBAIC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAg PGNvbW1hbmQ+Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVD VVRFPC9jb21tYW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwK KyAgICBvciA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0 dGluZyB0aGUgY29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxw cm9ncmFtbGlzdGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDU3NzFhYWJm NDBhLi44ZWQyODcxNWYzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgsNiArMTgsNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL2NyZWF0ZWFzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNs dWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTUwNyw4ICs1 MDgsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29y T3B0aW9ucywKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0 ICovCi0JRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMs IHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2Fn ZSA6IE5VTEwpLAorCUV4cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIHF1ZXJ5LT5yZXN1bHRWYXJp YWJsZSwgZXMsIHF1ZXJ5U3RyaW5nLAorCQkJCSAgIHBhcmFtcywgcXVlcnlFbnYsICZwbGFuZHVy YXRpb24sCisJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJCQkJICAg ZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNTkyLDYgKzU5NCwy NSBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50 bywgRXhwbGFpblN0YXRlICplcywKIAkJZWxzZQogCQkJRXhwbGFpbkR1bW15R3JvdXAoIk5vdGlm eSIsIE5VTEwsIGVzKTsKIAl9CisJZWxzZSBpZiAoSXNBKHV0aWxpdHlTdG10LCBMZXRTdG10KSkK Kwl7CisJCUxldFN0bXQgICAgKmxldHN0bXQgPSAoTGV0U3RtdCAqKSB1dGlsaXR5U3RtdDsKKwkJ TGlzdAkgICAqcmV3cml0dGVuOworCQlRdWVyeQkgICAqcXVlcnk7CisKKwkJaWYgKGVzLT5mb3Jt YXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMt PnN0ciwgIlNFVCBTRVNTSU9OIFZBUklBQkxFXG4iKTsKKwkJZWxzZQorCQkJRXhwbGFpbkR1bW15 R3JvdXAoIlNldCBTZXNzaW9uIFZhcmlhYmxlIiwgTlVMTCwgZXMpOworCisJCXJld3JpdHRlbiA9 IFF1ZXJ5UmV3cml0ZShjYXN0Tm9kZShRdWVyeSwgY29weU9iamVjdChsZXRzdG10LT5xdWVyeSkp KTsKKworCQlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwkJcXVlcnkgPSBs aW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCQlFeHBsYWluT25lUXVlcnkocXVlcnks CisJCQkJCQlDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBOVUxMLCBlcywKKwkJCQkJCXF1ZXJ5U3Ry aW5nLCBwYXJhbXMsIHF1ZXJ5RW52KTsKKwl9CiAJZWxzZQogCXsKIAkJaWYgKGVzLT5mb3JtYXQg PT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKQEAgLTYxNSw4ICs2MzYsOCBAQCBFeHBsYWluT25lVXRp bGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICpl cywKICAqIHRvIGNhbGwgaXQuCiAgKi8KIHZvaWQKLUV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10 ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKLQkJCSAg IGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKK0V4cGxhaW5P bmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgT2lkIHRh cmdldHZhciwKKwkJCSAgIEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52 LCBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCiAJCQkgICBjb25zdCBCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3Vu dGVycykKQEAgLTY2NSw2ICs2ODYsOCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxh bm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJICovCiAJaWYg KGludG8pCiAJCWRlc3QgPSBDcmVhdGVJbnRvUmVsRGVzdFJlY2VpdmVyKGludG8pOworCWVsc2Ug aWYgKE9pZElzVmFsaWQodGFyZ2V0dmFyKSkKKwkJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJl Y2VpdmVyKHRhcmdldHZhcik7CiAJZWxzZSBpZiAoZXMtPnNlcmlhbGl6ZSAhPSBFWFBMQUlOX1NF UklBTElaRV9OT05FKQogCQlkZXN0ID0gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZl cihlcyk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDA3MjU3ZDRkYjk0Li4zNjRk Zjc3N2VhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNjU1LDggKzY1NSw5IEBAIEV4cGxh aW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBF eHBsYWluU3RhdGUgKmVzLAogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmlyc3Rfbm9kZShQbGFu bmVkU3RtdCwgcCk7CiAKIAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkK LQkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJ LCBxdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1 c2FnZSA6IE5VTEwpLAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQs IGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBxdWVyeUVudiwgJnBsYW5kdXJh dGlvbiwKKwkJCQkJCSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCQkJ ICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIAkJZWxzZQogCQkJRXhwbGFp bk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggZjlmZTI4OTIyOTUuLjE4OWFjNDNhODhhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTEyMTMyLDcgKzEyMTMyLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQK IAkJCXwgQ3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4 ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0 ZVN0bXQKKwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwog CQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IDli OGIzNTFkOWEyLi44OTY1NjYyNTA2NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApAQCAtMTAxLDcg KzEwMSw4IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJCSAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOwogCi1leHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVk U3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sCitleHRlcm4gdm9pZCBFeHBsYWlu T25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsCisJCQkJCQkgICBJbnRvQ2xhdXNlICpp bnRvLCBPaWQgdGFyZ2V0dmFyLAogCQkJCQkJICAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsCiAJCQkJCQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRp b24sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IDJmOTAzMjQzNzY3Li4xMWVhZWE2NjlkYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEyNzAsMyArMTI3MCw0MyBAQCBT RVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJM RSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKK0NSRUFURSBWQVJJQUJM RSB2YXIxIGJpZ2ludDsKK0NSRUFURSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOwor SU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTApOworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3Rf dGFibGUpOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNT SU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUK KyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykK KworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAg CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VN TUFSWSBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90 YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJ QUJMRQorIFJlc3VsdCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCiso NSByb3dzKQorCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFyX3Rh Yl90ZXN0X3RhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IGE1ZDNhZjZhZGUxLi5mYTBhNTdmYzc3ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODYxLDMgKzg2MSwyNCBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54 eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IGJpZ2ludDsKKworQ1JFQVRFIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZShhIGludCk7CisKK0lO U0VSVCBJTlRPIHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwKTsKKworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworCitFWFBMQUlO IChDT1NUUyBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVz dF90YWJsZSk7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJf dGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20240730-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwku13 RnJvbSBmNTYwZjA2ZTVlNDNiZWJlYWNjYTIzOGJmZDljODJhNzVjNDJhMDA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE3OjU1OjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8yMF0gR1VDIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCgpJbnNp ZGUgYW4gcXVlcnkgdGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZC4gVGhpcyBi ZWhhdmlvdXIgaXMgYnkgZGVzaWduLApiZWNhdXNlIHRoaXMgZW5zdXJpbmcgc28gbmV3IHZhcmlh YmxlcyBkb2Vzbid0IGJyZWFrIGV4aXN0aW5nIHF1ZXJpZXMuIEJ1dCB0aGlzCmJlaGF2aW91ciBj YW4gYmUgY29uZnVzaW5nLCBiZWNhdXNlIHNoYWRvd2luZyBpcyBxdWlldC4KCldoZW4gbmV3IEdV QyBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyBvbiwgdGhlbiB0aGUgd2Fy bmluZwppcyBkaXNwbGF5ZWQsIHdoZW4gc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2Vk LCBidXQgaXQgaXMgbm90IHVzZWQKZHVlIHNoYWRvd2luZy4gVGhpcyBmZWF0dXJlIHNob3VsZCB0 byBoZWxwIHdpdGggaW52ZXN0aWdhdGlvbiBvZiB1bmV4cGVjdGVkCmJlaGF2aW91ci4KCk5vdGU6 IFBMcGdTUUwgaGFzIGFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHByaW9yaXR5IG9mIGlkZW50aWZp ZXIncyBzcGFjZXMKKFNRTCBvciBQTHBnU1FMKS4gRGVmYXVsdCBiZWhhdmlvdXIgZG9lc24ndCBh bGxvd3MgY29sbGlzaW9ucy4gSSBiZWxpZXZlCnRoaXMgZGVmYXVsdCBpcyB0aGUgYmVzdC4gSSBj YW5ub3QgdG8gaW1wbGVtZW50IHNpbWlsYXIgdmVyeSBzdHJpY3QKYmVoYXZpb3VyIHRvIHNlc3Np b24gdmFyaWFibGVzLCBiZWNhdXNlIG9uZSB1bmhhcHB5IG5hbWVkIHNlc3Npb24gdmFyaWFibGUK Y2FuIGJyZWFrcyBhbiBhcHBsaWNhdGlvbnMuIFRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGJhZGx5 IG5hbWVkIFBMcGdTUUwncwp2YXJpYmxlIGlzIGxpbWl0dGVkIGp1c3QgdG8gb25seSBvbmUgcm91 dGluZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCA2MCArKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAg ICAgICAgICAgICAgIHwgNDggKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9l eHByLmggICAgICAgICAgICAgICB8ICAxICsKIC4uLi9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNz aW9uX3ZhcmlhYmxlLm91dCB8IDMzICsrKysrKysrKysKIC4uLi9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI5ICsrKysrKysrKwogLi4uL3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMjIgKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKwogMTAgZmlsZXMgY2hh bmdlZCwgMjI0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDU3 Y2Q3YmI5NzI3Li43MjJjOTg3ZTQ4NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTA2ODUsNiArMTA2ODUsNjYg QEAgZHluYW1pY19saWJyYXJ5X3BhdGggPSAnQzpcdG9vbHNccG9zdGdyZXNxbDtIOlxteV9wcm9q ZWN0XGxpYjskbGliZGlyJwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmlndWl0 eS13YXJuaW5nIiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n Ij4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgor ICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwv aW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJh PgorICAgICAgICBXaGVuIG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50aWZp ZXIgaW4gYSBxdWVyeSBjb3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4gaWRl bnRpZmllciwgcm91dGluZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFibGUg aWRlbnRpZmllci4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBi ZSBzaGFkb3dlZCBieSBjb2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAgICAg IGlzIGFuIGV4cGVjdGVkIGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMgc2hv dWxkbid0IGVycm9yIG91dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSwgc28gc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBpZiBh biBpZGVudGlmaWVyIGlzIGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJlbmNl ZCB1c2luZworICAgICAgICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkgcG9z c2liaWxpdHkgZm9yIGEgY29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBvdGhl ciBkYXRhYmFzZSBvYmplY3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1lcyku CisgICAgICAgIFRoZSB3YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8dmFy bmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAgICAg ICAgY2FuIGhlbHAgZmluZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dyYW1s aXN0aW5nPgorQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVT KDEwKTsKK0NSRUFURSBWQVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEgRlJP TSBmb287Cis8L3Byb2dyYW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAorKDEg cm93KQorPC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9ncmFt bGlzdGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBz aGFkb3dlZAorTElORSAxOiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4KK0RF VEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0 aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFt ZS4KKyBhCistLS0tCisgMTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKyAg ICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3Jl YXNlIGxvZyBzaXplLCBzbyBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBGb3Ig dGVzdGluZyBvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0bwor ICAgICAgICBlbmFibGUgaXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8 dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFi ZWw9InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5z dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBl PikKICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5 PnN0YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA1OTVl ZWJhNGMzYi4uNjVhMDNhOThlMWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzNjQsNyArNTM2NCwxMSBAQCBTRUxFQ1Qg Y3VycmVudF91c2VyX2lkOwogICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93 ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeS4gV2hlbgogICAgIGEgcXVlcnkgY29u dGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlkZW50aWZpZXJzIHRoYXQgY291bGQgYmUg dXNlZCBhcwogICAgIGJvdGggYSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBhcyBj b2x1bW4gaWRlbnRpZmllciwgdGhlbiB0aGUKLSAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBwcmVm ZXJyZWQgZXZlcnkgdGltZS4KKyAgICBjb2x1bW4gaWRlbnRpZmllciBpcyBwcmVmZXJyZWQgZXZl cnkgdGltZS4gV2FybmluZ3MgY2FuIGJlIGVtaXR0ZWQgd2hlbgorICAgIHRoaXMgc2l0dWF0aW9u IGhhcHBlbnMgYnkgZW5hYmxpbmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICBs aW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5pbmciLz4uIFVzZXIg Y2FuIGV4cGxpY2l0bHkKKyAgICBxdWFsaWZ5IHRoZSBzb3VyY2Ugb2JqZWN0IGJ5IHN5bnRheCA8 bGl0ZXJhbD50YWJsZS5jb2x1bW48L2xpdGVyYWw+IG9yCisgICAgPGxpdGVyYWw+c2NoZW1hLnZh cmlhYmxlPC9saXRlcmFsPi4KICAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKaW5kZXggZjZiMmUxOWEwZTIuLjQ4ZGZhMzczNGY4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKQEAgLTQ3LDYgKzQ3LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJ CVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZhbHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4cHJS ZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CkBAIC05 NDMsNyArOTQ0LDggQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29s dW1uUmVmICpjcmVmKQogCSAqIHF1ZXN0aW9uIGlzIGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkgc2Vz c2lvbidzIHZhcmlhYmxlcyBpbiB0aGVzZQogCSAqIGNvbnRleHRzPyBUaGUgY29kZSBjYW4gYmUg bW9yZSBzaW1wbGUsIHdoZW4gd2UgZG9uJ3QgZG8gaXQsIGJ1dCB0aGVuIHdlCiAJICogY2Fubm90 IHRvIHJhaXNlIG1heWJlIHVzZWZ1bCBtZXNzYWdlIGxpa2UgInlvdSBjYW5ub3QgdG8gdXNlIHNl c3Npb24KLQkgKiB2YXJpYWJsZXMgaGVyZSIuCisJICogdmFyaWFibGVzIGhlcmUiLiBPbiBzZWNv bmQgaGFuZCwgaW4gdGhpcyBjYXNlIHRoZSB3YXJuaW5ncyBhYm91dAorCSAqIHNlc3Npb24ncyB2 YXJpYWJsZSBzaGFkb3dpbmcgY2FuIGJlIG1lc3N5LgogCSAqLwogCWlmIChleHByX2tpbmRfYWxs b3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQogCXsKQEAgLTk2Miwx MCArOTY0LDQ4IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVt blJlZiAqY3JlZikKIAkJICogU0VMRUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJ CSAqCiAJCSAqIFRoaXMgY2FzZSBjYW4gYmUgbWVzc3kgYW5kIHRoZW4gd2UgZGlzYWxsb3cgaXQu IFdoZW4gd2Uga25vdyB0aGF0IGEKLQkJICogcG9zc2libGUgdmFyaWFibGUgd2lsbCBiZSBzaGFk b3dlZCwgd2UgZG9uJ3QgdHJ5IHRvIGlkZW50aWZ5Ci0JCSAqIHZhcmlhYmxlLgorCQkgKiBwb3Nz aWJsZSB2YXJpYWJsZSB3aWxsIGJlIHNoYWRvd2VkLCB3ZSB0cnkgdG8gaWRlbnRpZnkgdmFyaWFi bGUKKwkJICogb25seSB3aGVuIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlz IHJlcXVlc3RlZC4KIAkJICovCi0JCWlmICghbm9kZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIgPT0g Q1JFUlJfTk9fQ09MVU1OKSkKKwkJaWYgKG5vZGUgfHwgKHJlbG5hbWUgJiYgY3JlcnIgPT0gQ1JF UlJfTk9fQ09MVU1OKSkKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgcGF0aCB3ZSBqdXN0IHRy eSAoaWYgaXQgaXMgd2FudGVkKSBkZXRlY3QgaWYgc2Vzc2lvbgorCQkJICogdmFyaWFibGUgaXMg c2hhZG93ZWQuCisJCQkgKi8KKwkJCWlmIChzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoZSBBY2Nlc3NTaGFyZUxvY2sgaXMgY3JlYXRl ZCBvbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUuCisJCQkJICogVGhlIGxvY2sgd2lsbCBiZSBr ZXB0IGZvciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisJCQkJICovCisJCQkJdmFyaWQgPSBJZGVu dGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgdHJ1ZSk7 CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQkJeworCQkJCQkvKiBUaGlzIHBhdGgg d2lsbCBlbmRpbmcgYnkgV0FSTklORy4gVW5sb2NrIHZhcmlhYmxlIGZpcnN0ICovCisJCQkJCVVu bG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1No YXJlTG9jayk7CisKKwkJCQkJaWYgKG5vZGUpCisJCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX0NPTFVNTiksCisJCQkJCQkJCSBlcnJtc2co InNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIHNoYWRvd2VkIiwKKwkJCQkJCQkJCQlOYW1lTGlz dFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZh cmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBh bmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuIiksCisJCQkJCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKKwkJCQkJZWxzZQor CQkJCQkJLyogc2Vzc2lvbiB2YXJpYWJsZSBpcyBzaGFkb3dlZCBieSBSVEUgKi8KKwkJCQkJCWVy ZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1O KSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgc2hhZG93 ZWQiLAorCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZh cmlkKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFk b3dlZCBieSB0YWJsZXMgb3IgdGFibGUncyBhbGlhc2VzIHdpdGggdGhlIHNhbWUgbmFtZS4iKSwK KwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwor CQkJCX0KKwkJCX0KKwkJfQorCQllbHNlCiAJCXsKIAkJCS8qCiAJCQkgKiBUaGUgQWNjZXNzU2hh cmVMb2NrIGlzIGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLiBUaGUKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNmE2MjNmNWYzNDIuLmExMDVlOTg0ZmNhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTUzNSw2ICsxNTM1LDE1IEBAIHN0 cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNlLAogCQlOVUxM LCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmciLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fT1RIRVIsCisJCQlnZXR0ZXh0X25vb3Ao IlJhaXNlIGEgd2FybmluZyB3aGVuIHJlZmVyZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUgaXMg YW1iaWd1b3VzLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcsCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7CiAJCXsi ZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5f U1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBkZWZhdWx0IHJlYWQtb25seSBz dGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCA5ZWM5Zjk3ZTkyNi4uZWJmNmYwMTZkMmQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQor KysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTcx Myw2ICs3MTMsNyBAQAogI2RlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb2ZmCiAjZGVm YXVsdF90cmFuc2FjdGlvbl9kZWZlcnJhYmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9y b2xlID0gJ29yaWdpbicKKyNzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9m ZgogI3N0YXRlbWVudF90aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNh YmxlZAogI3RyYW5zYWN0aW9uX3RpbWVvdXQgPSAwCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMg ZGlzYWJsZWQKICNsb2NrX3RpbWVvdXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRp c2FibGVkCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCA5YjQ2ZGZkOWVjYy4uMGQ2NGIzMDBm OGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMTcsNiArMTcsNyBAQAogCiAvKiBHVUMg cGFyYW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgVHJhbnNmb3JtX251bGxfZXF1 YWxzOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmc7CiAKIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK aW5kZXggNmU4YjQxMzRjMDYuLmVjMDdmMWNiYWU5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMzU0 LDYgKzM1NCwzOSBAQCAkJDsKIE5PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCiBOT1RJ Q0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKIE5PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAK Ky0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9uKQor U0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworRE8gJCQKKzw8 bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcK KyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQg d2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vzc2lvbiB2YXJpYWJs ZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0 aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgdG8g cHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBS QUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsK K05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZhcmlh YmxlIGlzIDEwMDAKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJwbHBnc3FsX3N2X3ZhcjEi IGlzIHNoYWRvd2VkCitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitERVRBSUw6 ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdz IHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCitR VUVSWTogIHBscGdzcWxfc3ZfdmFyMQorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorU0VUIHNl c3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxOwogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCiBD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKaW5kZXggMzk4ZTdmZTJhN2Mu LmVmNzA1YTRjYzg3IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUuc3FsCkBAIC0yNjAsNiArMjYwLDM1IEBAIEJFR0lOCiBFTkQ7CiAk JDsKIAorLS0gYWdhaW50IHdpdGggc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmco b24pCisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKwor RE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0 IHdhcm5pbmcKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9r IHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vzc2lv biB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQg YmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdw bHBnc3FsIHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBz aG91bGQgdG8gcHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJpbnQg MTAwMAorICBSQUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9m ZjsKKwogRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjE7CiAKIC0tIHRoZSB2YWx1ZSBzaG91 bGQgbm90IGJlIGNvcnJ1cHRlZApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAppbmRleCBmY2EyMWY0MTM3ZC4uMmY5MDMyNDM3NjcgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMjQ4 LDMgKzEyNDgsMjUgQEAgU0VMRUNUIHZhcjE7CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFy MSwgdmFyMjsKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKK0NS RUFURSBTQ0hFTUEgeHh0YWI7CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CitDUkVB VEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy54eHRh YiBWQUxVRVMoMSk7CitMRVQgeHh0YWIuYXZhciA9IDIwOworU0VUIHNlc3Npb25fdmFyaWFibGVz X2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5nLCBz aG93IDEKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworV0FSTklORzogIHNl c3Npb24gdmFyaWFibGUgInh4dGFiLmF2YXIiIGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVDVCB4 eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworICAgICAgICAgICAgICAgXgorREVUQUlMOiAg U2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2 YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorIGF2 YXIgCistLS0tLS0KKyAgICAxCisoMSByb3cpCisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZyBUTyBvZmY7CitEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKK0RST1AgU0NI RU1BIHh4dGFiIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFy aWFibGUgeHh0YWIuYXZhcgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IDUxODZjZDlkYzlmLi5hNWQzYWY2YWRlMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODQxLDMgKzg0MSwyMyBAQCBCRUdJTjsgRFJP UCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxF IHZhcjEsIHZhcjI7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcKK0NSRUFURSBTQ0hFTUEgeHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSB4eHRhYi5hdmFyIGlu dDsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRP IHB1YmxpYy54eHRhYiBWQUxVRVMoMSk7CisKK0xFVCB4eHRhYi5hdmFyID0gMjA7CisKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8g cmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRh YjsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKKwor RFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwotLSAK Mi40NS4yCgo= --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20240730-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwky14 RnJvbSBkMmM0YzU1MzA2NjIzYjcxMDE2MmM3OGMxZTk4ZWJhMWM2ZWM1ZmQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTY6MDg6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2 LzIwXSBwbHBnc3FsIHRlc3RzCgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUub3V0IHwgMzgyICsrKysrKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3Jj L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI4OSArKysrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5v dXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZp bGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKaW5kZXggNjNjYjk2ZmFlM2UuLmJiY2Fl MjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi42ZThiNDEzNGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMzgy IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CistLSBwYXNz aW5nIHBhcmFtZXRlcnMgdG8gRE8gYmxvY2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug J3ZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyOworRU5EOwor JCQ7CitOT1RJQ0U6ICB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzIDMuMTQxNTkyNjUzNTg5 NzkKKy0tIHBhc3Npbmcgb3V0cHV0IGZyb20gRE8gYmxvY2s7CitETyAkJAorQkVHSU4KKyAgTEVU IHBscGdzcWxfc3ZfdmFyID0gMiAqIHBpKCk7CitFTkQKKyQkOworU0VMRUNUIHBscGdzcWxfc3Zf dmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKyAgcGlfbXVsdGlwbHlfMiAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgNi4yODMxODUzMDcxNzk1OQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyOworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIy IEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB1cGRhdGVyX2Z1bmMoKQor UkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gcGxwZ3Nx bF9zdl92YXIxICsgMTAwOworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gcGxwZ3NxbF9zdl92YXIy ICsgMTAwMDAwMDAwMDAwOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMyA9IHBscGdzcWxfc3ZfdmFyMyB8fCBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAw MCkpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9U SUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIyID0g JScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9ICUn LCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7Cist LSBleGVjdXRlIHVuZGVyIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygp OworIHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVh ZGVyX2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVw ZGF0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJf ZnVuYygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAw My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRl cl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91 dCBvZiB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMgCist LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9USUNF OiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAg bGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIFBML3BnU1FMIGJsb2NrCitETyAk JAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5j KCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsK K0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2 NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNFOiAgdmFyMSA9 IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxkIGJlIGNvcnJl Y3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxf c3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBzaG91bGQgdG8g d29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsKKyAgUEVS Rk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQRVJGT1JN IHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAg dmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIK K05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKK0RST1Ag RlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOworRFJPUCBG VU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBj YWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUg diBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTsK KyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBM RVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBnc3FsX3N2 X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAw fQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAwfQor Tk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwg cGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9OIFNDSEVN QSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3Jv bGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xFVCBwbHBn c3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBw bHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFyMQor Q09OVEVYVDogIFNRTCBleHByZXNzaW9uICJwbHBnc3FsX3N2X3ZhcjEiCitQTC9wZ1NRTCBmdW5j dGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxU OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitTRVQg Uk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOworTk9USUNFOiAgMTAKKyB2YXJf cmVhZF9mdW5jIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgY3Jhc2gKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBk b2VzIG5vdCBleGlzdAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorUVVFUlk6 ICBwbHBnc3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9m dW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBGVU5DVElP TiB2YXJfcmVhZF9mdW5jOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVz c192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4 ZWNfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX2ludChpbnQpCitS RVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IENPQUxFU0NF KHBscGdzcWxfc3ZfdmFyMSArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192 YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBp bmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0t LQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAgICA3 CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAgMTEK KyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdz cWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9u dW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIGluY192 YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIK KygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEu MCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAgICAg IDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAgICAx MQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitEUk9QIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworRFJPUCBGVU5DVElPTiBpbmNfdmFy X2ludDsKK0RST1AgRlVOQ1RJT04gaW5jX3Zhcl9udW07CistLSBwbHBnc3FsIHZhcmlhYmxlcyBh cmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdz cWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9U SUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBt eWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElD RSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAw MAorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjE7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKK0NSRUFURSBG VU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVu YyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNU SU9OIGdmdW5jKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdiA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK3NlbGVjdCBmZnVuYygpOworIGZmdW5jIAorLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVz b24uYnVpbGQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggM2RkNzM0Yjc3 NmIuLjM5MDVjMGI2ZDQ1IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBA IHRlc3RzICs9IHsKICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dl cicsCiAgICAgICAncGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3Jj L3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zOThlN2ZlMmE3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBn c3FsX3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2 YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFy MyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CisKKy0tIGV4ZWN1dGUgdW5kZXIgdHJhbnNhY3Rpb24KK0JFR0lOOworU0VMRUNUIHdyaXRl cl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsK K1NFTEVDVCByZWFkZXJfZnVuYygpOworRU5EOworCistLSBleGVjdXRlIG91dCBvZiB0cmFuc2Fj dGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVD VCB1cGRhdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworCistLSBleGVjdXRlIGlu c2lkZSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOwor ICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxhbiBjYWNoZXMgc2hv dWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIg QVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsK KworLS0gc2hvdWxkIHRvIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRl cl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1 bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKwor RFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitE Uk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBvZiBjb3JyZWN0 IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQK K0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltw bHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFy MjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKKwor RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKKworQ1JFQVRF IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RST1AgRlVOQ1RJ T04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3Fs X3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9OIFNDSEVNQSBw dWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUs IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJf cm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklU WSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyX3JlYWRfZnVu YygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3JlYWRf ZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFyX293 bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0g cmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVNDRShw bHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VMRUNU IGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5jX3Zh cl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0UocGxw Z3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VMRUNU IGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNUIGlu Y192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04gaW5j X3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZhcmlh YmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xB UkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx MDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBS QUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3Zh cjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUg aXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxkIG5v dCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBw bHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMg dGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitSRVRV Uk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOworICBS RVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygpOwor CitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDUuMgoK --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20240730-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwl315 RnJvbSA2OWM1MzZmY2JiZWI3YjRhZDc2MmFiYzMxYzFjZDkwMGZmZTUyNzRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTg6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1 LzIwXSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0IG9mIHNpbnZh bCBtZXNzYWdlIGludmFsaWRhdGVzIGVudHJpZXMgaW4gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZS4g VGhlc2UgZW50cmllcwphcmUgdmFsaWRhdGVkIGJlZm9yZSBhbnkgcmVhZCBvciB3cml0ZSBvcGVy YXRpb25zIG9uIHNlc3Npb24gdmFyaWFibGVzLiBXaGVuIHRoZSBlbnRyeQpjYW5ub3QgYmUgdmFs aWRhdGVkLCB0aGVuIGl0IGlzIHJlbW92ZWQuIFRoZSByZW1vdmluZyBjYW4gYmUgZGVsYXllZCB3 aGVuIHZhcmlhYmxlCmlzIGRyb3BwZWQgaW5zaWRlIGN1cnJlbnQgdHJhbnNhY3Rpb24uIFRoaXMg dHJhbnNhY3Rpb24gY2FuIGJlIGFib3J0ZWQgYW5kIGluIHRoaXMgY2FzZQp3ZSB3YW50IHRvIHBy ZXNlcnZlIGNvbnRlbnQgb2YgdGhlIHZhcmlhYmxlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jICAgICAgIHwgMTc3ICsrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDMgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTA5ICsrKysrKysrKwogc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMTkgKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjEg KysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmlu ZGV4IGQxMTlhYjkwOWRjLi4yZDNlZDg2MDdhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3Qu YwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Rh YmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t b24vcGdfcHJuZy5oIgpAQCAtMjMwNSw2ICsyMzA2LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9p ZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3luY3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsK IAorCS8qIFJlbW92ZSB2YWx1ZXMgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1l bW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoKTsKKwogCS8qIGNsb3NlIGxh cmdlIG9iamVjdHMgYmVmb3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJn ZU9iamVjdCh0cnVlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDFjNzMxODFj M2RhLi4wYjIxMjA0YmM0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjIsNiAr MjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKQEAgLTI1NCw0ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBEbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaWYgbmVlZGVkIGluIGxvY2Fs IG1lbW9yeSAqLworCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggYzc5Njg1ODcxMjUuLmQ5 MTY5ODIwYTdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0x NCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmgiCkBAIC03NSw2ICs3NiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVE YXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBk b21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5z YWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2 YXJpYWJsZSBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZnJlZWlu ZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGUgZHJvcHBlZCBieSB0aGUgbG9jYWwgYmFja2VuZCB0 aGF0IG1heSBiZSBldmVudHVhbGx5CisJICogcm9sbGJhY2tlZC4KKwkgKi8KKwlMb2NhbFRyYW5z YWN0aW9uSWQgZHJvcF9seGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVz Y3JpcHRpb24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZQogCSAqIHNpbnZhbCBtZXNz YWdlLiBXZSBoYXZlIHRvIGNoZWNrIGFsd2F5cyBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlCkBAIC05 MSw2ICsxMDAsMTkgQEAgc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0 YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1Zh cmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CiAKKy8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2lu dmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKKwor LyoKKyAqIFRoZSBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGlt bWVkaWF0ZWx5LiBXaGVuIGl0CisgKiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFu c2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCisgKiB3ZSBjYW5u b3QgZG8gaXQsIGJlY2F1c2Ugd2UgbG9zdCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSBjYXRhbG9nLiBT byB3ZQorICogdHJ5IHRvIGRvIGl0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIGJlZm9yZSBhbnkg Z2V0IG9yIHNldCBvZiBhbnkgc2Vzc2lvbgorICogdmFyaWFibGUuIFdlIGRvbid0IHdhbnQgdG8g cmVwZWF0IHRoaXMgb3BlbmluZyBjbGVhbmluZyBpbiB0cmFuc2FjdGlvbiwKKyAqIFNvIHdlIHN0 b3JlIHRoZSBpZCBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgb3BlbmluZyB2YWxpZGF0aW9uIHdh cyBkb25lLgorICovCitzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0g SW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv ciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTIzLDYgKzE0NSw0MCBA QCBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50 MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09 IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCQkJbmVlZHNf dmFsaWRhdGlvbiA9IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhlIGxvY2Fs IG1lbW9yeSBjbGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisgKiBDYWxs ZXIgc2hvdWxkIHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmly c3QuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQp Cit7CisJQXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQp KTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFyaWFibGUJ c3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJ CQkJCQkJCQkgICBIQVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7CisJCQkv KgorCQkJICogU2F2ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQg dG8gbWFrZSBzdXJlIHdlCisJCQkgKiBkb24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgbG9j YWwgdmFyaWFibGUgc3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFi bGVzLCBhcyB0aGUgRFJPUCBWQVJJQUJMRSB3aWxsIHNlbmQKKwkJCSAqIGFuIGludmFsaWRhdGlv biBtZXNzYWdlLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJc3Zhci0+ ZHJvcF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisKKwkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0 cnVlOwogCQl9CiAJfQogfQpAQCAtMTc2LDYgKzIzMiw4MyBAQCBpc19zZXNzaW9uX3ZhcmlhYmxl X3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBJdCBj aGVja3MgYWxsIHBvc3NpYmx5IGludmFsaWQgZW50cmllcyBhZ2FpbnN0IHRoZSBzeXN0ZW0gY2F0 YWxvZy4KKyAqIER1cmluZyB0aGlzIHZhbGlkYXRpb24sIHRoZSBzeXN0ZW0gY2FjaGUgY2FuIGJl IGludmFsaWRhdGVkLCBhbmQgdGhlCisgKiBzb21lIHNpbnZhbCBtZXNzYWdlIGNhbiBiZSBhY2Nl cHRlZC4gVGhpcyByb3V0aW5lIGRvZXNuJ3QgZW5zdXJlCisgKiBhbGwgbGl2aW5nIGVudHJpZXMg b2Ygc2Vzc2lvbnZhcnMgd2lsbCBoYXZlIGlzX3ZhbGlkIGZsYWcsIGJ1dCBpdCBlbnN1cmVzCisg KiB0aGF0IGFsbCBlbnRyaWVzIGFyZSBjaGVja2VkIG9uY2UuCisgKgorICogVGhpcyByb3V0aW5l IGlzIGNhbGxlZCBiZWZvcmUgYW55IHVzYWdlIChyZWFkLCB3cml0ZSwgZGVidWcpIG9mIHNlc3Np b24KKyAqIHZhcmlhYmxlcyAob25seSBvbmNlIGluIGEgdHJhbnNhY3Rpb24pIG9yIGF0IGEgdHJh bnNhY3Rpb24gZW5kLiAgQXQgdGhlCisgKiBlbmQgb2YgdHJhbnNhY3Rpb24gKHNwZWNpZmllZCBi eSB0cnVlIG9mIGFyZ3VtZW50IGF0RU9YKSB3ZSBjYW4KKyAqIHRocm93IGFsbCBpbnZhbGlkIHZh cmlhYmxlcy4gSW5zaWRlIHRoZSB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgZmFsc2UpIHdlIHdhbnQK KyAqIHRvIHBvc3Rwb25lIGNsZWFuaW5nIG9mIHZhcmlhYmxlcyBkcm9wcGVkIGluc2lkZSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbi4KKyAqIFRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGNhbiBiZSBh Ym9ydGVkLCB0aGUgcmVsYXRlZCBkcm9wIGNvbW1hbmQgd2lsbCBiZQorICogYWJvcnRlZCB0b28u IEluIHRoaXMgY2FzZSB3ZSBkb24ndCB3YW50IGxvc2UgdGhlIGNvbnRlbnQgb2YgdGhlIHZhcmlh YmxlLAorICogYW5kIHRoZXJlZm9yZSB3ZSBuZWVkIHRvIGhvbGQgdGhlIGNvbnRlbnQgb2YgdGhl IGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNh Y3Rpb24gKHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCkuCisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQoreworCUhBU0hf U0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRoZSB2YWxp ZGF0aW9uIHJlcXVpcmVzIGFuIGFjY2VzcyB0byBzeXN0ZW0gY2F0YWxvZywgYW5kIHRoZW4gdGhl CisJICogc2Vzc2lvbiBzdGF0ZSBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8KKwlB c3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9uIHx8 ICFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGlzIGZsYWcgaGVy ZSwgYmVmb3JlIHdlIHN0YXJ0IHRoZSB2YWxpZGF0aW9uLiBJdCBjYW4gYmUgc2V0IHRvCisJICog b24gYnkgaW5jb21taW5nIHNpbnZhbCBtZXNzYWdlLgorCSAqLworCW5lZWRzX3ZhbGlkYXRpb24g PSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRhdGVfYWxs X3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lv bnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3Rh dHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCWlmICgh YXRFT1ggJiYgc3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJ CW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQlpZiAo IWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCisJCQl7CisJCQkJT2lkCQkJdmFyaWQg PSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsK KwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7 CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOworCQl9CisJfQorfQorCisvKgorICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVkIHNlc3Np b24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9u VmFyaWFibGVzKHZvaWQpCit7CisJLyogV2UgY2Fubm90IHRvIGRvIGl0IHdoZW4gdHJhbnNhY3Rp b24gaXMgYWJvcnRlZCAqLworCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwlyZW1v dmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKK30KKwogLyoKICAqIFVwZGF0ZSBh dHRyaWJ1dGVzIGNhY2hlZCBpbiBzdmFyCiAgKi8KQEAgLTIwNSw2ICszMzgsOCBAQCBzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IElu dmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJh bnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+dmFsdWUgPSAoRGF0 dW0pIDA7CiAKQEAgLTMzNSwyNiArNDcwLDQ0IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2 YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxl cygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQg fHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiBUaHJv dyBpbnZhbGlkIGVudHJpZXMsIHNraXAgZW50cmllcyBkcm9wcGVkIGJ5IHRoaXMgdHJhbnNhY3Rp b24uICovCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKKworCQkv KiBEb24ndCByZXBlYXQgaXQgaW4gdGhpcyB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQp OwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Npb24gdmFyaWFibGUgY2Fu IGJlIGRyb3BwZWQgYnkgRFJPUCBWQVJJQUJMRSBjb21tYW5kLAorCQkgKiBidXQgZWZmZWN0IG9m IHRoaXMgY29tbWFuZCBjYW4gYmUgcmV2ZXJ0ZWQgYnkgUk9MTEJBQ0sgdG8gc2F2ZXBvaW50LAor CQkgKiBzbyB3ZSBjYW4gd29yayBoZXJlIHdpdGggcmVhZGFibGUgdmFsdWUgaW4gdmFyaWFibGUg bWFya2VkIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCQl7CiAJ CQkvKgogCQkJICogVGhlIHZhcmlhYmxlIGNhbiBiZSBmbGFnZ2VkIGFzIGludmFsaWQgYnkgcHJv Y2Vzc2luZyBpbnZhbGlkYXRpb24KIAkJCSAqIG1lc3NhZ2UsIGJ1dCBjYW4gYmUgdmFsaWRhdGVk IGJ5IHJlY2hlY2sgYWdhaW5zdCBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqCisJCQkgKiBJZiB3ZSBh Y2Nlc3MgdGhpcyBzZXNzaW9uIHZhcmlhYmxlLCB0aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUK KwkJCSAqIHBvc3NpYmx5IHZhbGlkYXRlZC4gVGhlIG9pZCBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgcmVsYXRlZAorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NrZWQgYWxyZWFkeSwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzCisJCQkgKiBzaG91bGQgdG8gcmVtb3Zl IHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJCSAqLwogCQkJaWYg KGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCQkJZWxzZQotCQkJCS8qCi0JCQkJICogV2hlbiB0aGUgdmFsdWUgY2Fubm90IGJlIHZh bGlkYXRlZCwgd2UgY2FuIHNhZmVseSB0aHJvdyBpdC4KLQkJCQkgKiBUaGVyZSBpcyBvaWQgaW4g Y2F0YWxvZywgYnV0IGl0IGlzIHJlbGF0ZWQgdG8gZGlmZmVyZW50Ci0JCQkJICogc2Vzc2lvbiB2 YXJpYWJsZSAoZGlmZmVyZW50IGNyZWF0ZV9sc24pLgotCQkJCSAqLwotCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCXsKKwkJCQkvKiBXZSBkb24ndCBleHBlY3QgaXQg Ki8KKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCQkJfQogCQl9CiAJfQogCWVsc2UKQEAgLTQxNSw2ICs1NjgsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIFRocm93IGludmFs aWQgZW50cmllcywgc2tpcCBlbnRyaWVzIGRyb3BwZWQgYnkgdGhpcyB0cmFuc2FjdGlvbi4gKi8K KwkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOworCisJCS8qIERvbid0 IHJlcGVhdCBpdCBpbiB0aGlzIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9seGlkID0gTXlQ cm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNl c3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CiAKQEAg LTYyMiw2ICs3ODUsOCBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CiAJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOwogCisJcmVtb3Zl X2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOworCiAJSW5pdE1hdGVyaWFsaXplZFNS RihmY2luZm8sIDApOwogCiAJaWYgKHNlc3Npb252YXJzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oCmluZGV4IDQ0M2FmYmFmZDRhLi4wZDRjNjM1YWU3YiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOSBAQAogI2luY2x1 ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgog CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsK K2V4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXModm9pZCk7CisKIGV4dGVy biB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlz TnVsbCk7CiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhP aWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBi L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjk2OGNjZTA4OTUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQK QEAgLTAsMCArMSwxMDkgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRyb3AgdmFsCitzdGVwIGxldDogTEVUIG15dmFy ID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAK KygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNF TEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKKworc3Rh cnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCitzdGVwIGxldDogTEVU IG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor dGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47CitzdGVwIGRyb3A6IERST1AgVkFSSUFC TEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4gIm15dmFy IiBkb2VzIG5vdCBleGlzdAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRh dGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZh ciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3Qg CisoMSByb3cpCisKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0t LS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBE Uk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBB UyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWV8cmVtb3ZlZAorLS0tLS0tKy0tLS0rLS0t LS0tLQorKDAgcm93cykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor ICAgICAKKygxIHJvdykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7Citz dGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0r LS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9w OiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0t LSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9M TEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBD UkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAn dGVzdCc7CitzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15 dmFyNCBBUyB0ZXh0Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9w NDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFy MzsKK3N0ZXAgaW52YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFi bGU7Cis/Y29sdW1uPworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2Fy ZDogRElTQ0FSRCBWQVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VM RUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAK KygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggNmRhOThj ZmZhY2EuLjA0NmJiMWE0OTdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUK QEAgLTExNywzICsxMTcsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDog c2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDog bG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBU ZXN0IHNlc3Npb24gdmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAK K3sKKyAgICBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sK KyAgICBEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3Rl cCBzMQkJeyBCRUdJTjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAg dmFsCXsgU0VMRUNUIG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJl bW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNL OyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9Citz dGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9u IHMzCitzdGVwIHMzCQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVz dCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQor c3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBW QVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZS T00gcGdfZm9yZWlnbl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7 IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBG Uk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBW QVJJQUJMRSBteXZhcjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15 dmFyMzsgfQorCisjIENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBs ZWFkIHRvIGFuIGVycm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1 dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZh cmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2Fj dGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4K KyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0 YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3Ig RElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3Rl cmVkCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3Az IGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAyMzM5ZmMxNGYzZi4uZmNhMjFmNDEzN2QgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xMDI5LDMgKzEwMjksMjIyIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CiAtLS0tLS0tCiAgICAgIDAKICgxIHJvdykKKworLS0gZHJvcHBlZCB2YXJpYWJs ZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkKKy0tIGF0IHRoZSBlbmQgb2YgdHJhbnNh Y3Rpb24gb3IgYmVmb3JlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGlu IG5leHQgdHJhbnNhY3Rpb24uCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBu YW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KyBuYW1lIHwgICAgICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIx IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CistLSB0aGUgY29udGVudCBvZiB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gdmFyaWFi bGUgaXMgZHJvcHBlZAorLS0gYnkgYWJvcnRlZCB0cmFuc2FjdGlvbgorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2onOworQkVHSU47CitEUk9QIFZBUklB QkxFIHZhcjE7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIGNvbHVtbiAi dmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAg ICBeCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorIEFob2oKKygxIHJvdykKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAw OworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0 ICdBaG9qJworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cp CisKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNh bl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2 YXIxIHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJM RSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK KyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91 cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIx IHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMg aW50OworTEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQg czE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hp bmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0t LS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsK KyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisg ICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJ TjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOwor ICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7Cisg dmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lO OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgU0FWRVBPSU5UIHMyOworICAt LSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAg U0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFD SyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9u IHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cp CisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVH SU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2 YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjBkMDYyYjMwY2MuLjUxODZjZDlkYzlmIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC03MjAsMyArNzIwLDEy NCBAQCBESVNDQVJEIFZBUklBQkxFUzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVD VCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFy aWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5CistLSBhdCB0aGUgZW5kIG9mIHRy YW5zYWN0aW9uIG9yIGJlZm9yZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBpbiBuZXh0IHRyYW5zYWN0aW9uLgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1l LCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIHRoZSBjb250ZW50IG9m IHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBi eSBhYm9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOwor TEVUIHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hv dWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxk IGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIx OworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwg Y2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsK KyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFy MiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExC QUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VM RUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7 CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhl ciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAg LS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisg IFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkg dG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlU OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0 cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7 IFJPTExCQUNLOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklB QkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20240730-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwld17 RnJvbSA0NGJjYjllNWRkZGQwNTNmZWIzNzM1MzNmNDQ1NDQ5NWVkNTkwYWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIwXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGUx OTBlZjczODljLi5jOGRkZWZjMjBlNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNjAwLDMgKzYwMCwxMDUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25f dmFyaWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rp b24gZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisg KiBjb250ZW50IG9mIHNlc3Npb252YXJzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNwbGF5 IGVudHJpZXMgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkIGJ1 dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVkIGlu dmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMgOAor CisJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOworCisJSW5pdE1h dGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJzKQorCXsKKwkJUmV0 dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZv OworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3ZhcjsKKworCQloYXNo X3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAoKHN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJCXsKKwkJCURhdHVt CQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJYm9vbAkJbnVsbHNb TlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxlCXRwOworCQkJYm9v bAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2 YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7CisKKwkJCXZhbHVl c1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFsdWVzWzNdID0gT2Jq ZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qIGNoZWNrIGlmIHNlc3Npb24gdmFy aWFibGUgaXMgdmlzaWJsZSBpbiBzeXN0ZW0gY2F0YWxvZyAqLworCQkJdHAgPSBTZWFyY2hTeXND YWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJ LyoKKwkJCSAqIFNlc3Npb252YXJzIGNhbiBob2xkIGRhdGEgb2YgdmFyaWFibGVzIHJlbW92ZWQg ZnJvbSBjYXRhbG9nLAorCQkJICogKGFuZCBub3QgcHVyZ2VkKSBhbmQgdGhlbiBuYW1lc3BhY2Vu YW1lIGFuZCBuYW1lIGNhbm5vdCBiZSByZWFkCisJCQkgKiBmcm9tIGNhdGFsb2cuCisJCQkgKi8K KwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKTsKKworCQkJCS8qIFdo ZW4gd2Ugc2VlIGRhdGEgaW4gY2F0YWxvZyAqLworCQkJCWlmIChzdmFyLT5jcmVhdGVfbHNuID09 IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJeworCQkJCQkvKiBhbmQgd2hlbiB3aGVuIHRo ZXNlIGRhdGEgYXJlIG5vdCBvdXQgb2YgZGF0ZSAqLworCQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52 YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKE5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlkKSk7CisJCQkJCXZhbHVlc1s1XSA9IEJv b2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVzWzZdID0gQm9vbEdldERhdHVtKAorCQkJ CQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgc3Zhci0+dmFyaWQs CisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpID09IEFDTENIRUNLX09L KTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJ CSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhcl9p c192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0K KworCQkJaWYgKCF2YXJfaXNfdmFsaWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBXaGVuIHNlc3Np b24gdmFyaWFibGUgd2FzIHJlbW92ZWQgZnJvbSBjYXRhbG9nLCBidXQgd2UKKwkJCQkgKiBoYXZl bid0IHByb2Nlc3NlZCB0aGUgaW52bGlkYXRpb24geWV0LiBJbiB0aGlzIGNhc2UsIHdlIGNhbgor CQkJCSAqIGRpc3BsYXkgb25seSBmZXcgb2lkcy4gT3RoZXIgZGF0YSBhcmUgbm90IGF2YWlsYWJs ZQorCQkJCSAqICh3aXRob3V0IEZvcm1fcGdfdmFyaWFibGUgcmVjb3JkKSwgb3IgY2FuIGJlIGxv c3QgKGJlY2F1c2UKKwkJCQkgKiB0aGVyZSBpcyBub3QgcHJvdGVjdGlvbiBieSBkZXBlbmRlbmN5 IChtb3JlKS4KKwkJCQkgKi8KKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0 cnVlOworCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVs bHNbN10gPSB0cnVlOworCisJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKHRydWUpOworCQkJ fQorCisJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCWVsb2coREVCVUcxLCAicGdfc2Vz c2lvbl92YXJpYWJsZXMgZW5kIik7CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggODM3ZDhkZmFlMTkuLmI2NmMzZjM0MzQwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTEyMjM4LDQgKzEyMjM4LDEyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7 c3VtbWFyaXplZF90bGksc3VtbWFyaXplZF9sc24scGVuZGluZ19sc24sc3VtbWFyaXplcl9waWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfd2FsX3N1bW1hcml6ZXJfc3RhdGUnIH0sCiAKK3sgb2lk ID0+ICc4NDg4JywgZGVzY3IgPT4gJ2xpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcycsCisg IHByb25hbWUgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJywgcHJvcm93cyA9PiAnMTAwMCcsIHBy b3JldHNldCA9PiAndCcsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsdGV4dCx0ZXh0LG9pZCx0ZXh0LGJvb2wsYm9vbCxib29sfScsCisgIHBy b2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7dmFy aWQsc2NoZW1hLG5hbWUsdHlwaWQsdHlwbmFtZSxyZW1vdmVkLGNhbl9zZWxlY3QsY2FuX3VwZGF0 ZX0nLAorICBwcm9zcmMgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJyB9LAorCiBdCi0tIAoyLjQ1 LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20240730-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwl716 RnJvbSAwYzBkM2QzNDkxM2U4YjVlMzUxMGM5NjZkNTdlNjcyZjhlNzNmY2M0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIwXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYyICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggOTJkOTgzYWM3 NDguLmQwNmViYWJhNmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBjOGRkZWZjMjBl NC4uYzc5Njg1ODcxMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTEwMiw3ICsxMDIsMTMgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJn LCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAogCWVsb2coREVCVUcxLCAicGdfdmFy aWFibGVfY2FjaGVfY2FsbGJhY2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNodmFsdWUpOwogCi0JQXNz ZXJ0KHNlc3Npb252YXJzKTsKKwkvKgorCSAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSBvZiBzZXNz aW9udmFycyBiZWluZyBpbml0aWFsaXplZCwgZXZlbiB3aGVuCisJICogcmVjZWl2aW5nIGFuIGlu dmFsaWRhdGlvbiBjYWxsYmFjaywgYXMgRElTQ0FSRCBbIEFMTCB8IFZBUklBQkxFUyBdCisJICog ZGVzdHJveXMgdGhlIGhhc2ggdGFibGUgZW50aXJlbHkuCisJICovCisJaWYgKCFzZXNzaW9udmFy cykKKwkJcmV0dXJuOwogCiAJLyoKIAkgKiBXaGVuIHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNp ZmllZCwgdGhlbiB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsCkBAIC03MDIsMyArNzA4LDIzIEBAIHBn X3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXR1cm4gKERhdHVtKSAw OwogfQorCisvKgorICogRmFzdCBkcm9wIG9mIHRoZSBjb21wbGV0ZSBjb250ZW50IG9mIGFsbCBz ZXNzaW9uIHZhcmlhYmxlcyBoYXNoIHRhYmxlLCBhbmQKKyAqIGNsZWFudXAgb2YgYW55IGxpc3Qg dGhhdCB3b3VsZG4ndCBiZSByZWxldmFudCBhbnltb3JlLgorICogVGhpcyBpcyB1c2VkIGJ5IERJ U0NBUkQgVkFSSUFCTEVTIChhbmQgRElTQ0FSRCBBTEwpIGNvbW1hbmQuCisgKi8KK3ZvaWQKK1Jl c2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKQoreworCS8qIERlc3Ryb3kgaGFzaCB0YWJsZSBhbmQg cmVzZXQgcmVsYXRlZCBtZW1vcnkgY29udGV4dCAqLworCWlmIChzZXNzaW9udmFycykKKwl7CisJ CWhhc2hfZGVzdHJveShzZXNzaW9udmFycyk7CisJCXNlc3Npb252YXJzID0gTlVMTDsKKwl9CisK KwkvKiBSZWxlYXNlIG1lbW9yeSBhbGxvY2F0ZWQgYnkgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlp ZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBOVUxMKQorCQlNZW1vcnlDb250ZXh0UmVzZXQo U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAzNmZlNGMxZWM4Mi4u ZjlmZTI4OTIyOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3NCw3ICsyMDc0LDEzIEBAIERpc2NhcmRT dG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURpc2Nh cmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9IERJ U0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYwppbmRleCA2NjJkYmNkMWRkNi4uZGI2MDA0YTA1Y2UgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CkBAIC0yOTU5LDYgKzI5NTksOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkK IAkJCQljYXNlIERJU0NBUkRfU0VRVUVOQ0VTOgogCQkJCQl0YWcgPSBDTURUQUdfRElTQ0FSRF9T RVFVRU5DRVM7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgRElTQ0FSRF9WQVJJQUJMRVM6CisJCQkJ CXRhZyA9IENNRFRBR19ESVNDQVJEX1ZBUklBQkxFUzsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVs dDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXgg YjRkZjAzNzk2NWUuLjBmMmZmYWQzMDQ5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0zNzM0LDcgKzM3 MzQsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlD T01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09N UExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxF UyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYjNmMDNjNjU4MjcuLjQ0M2FmYmFmZDRhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOSw0ICsyOSw2IEBA IGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwg Ym9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0CiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJ CQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwog CitleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCk7CisKICNlbmRpZgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDc0YmY1YWY3NzY2Li5mYmFiMzM4YTkzOCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzk2NSw2ICszOTY1LDcgQEAgdHlwZWRlZiBlbnVtIERpc2NhcmRN b2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NFUVVFTkNFUywKIAlESVNDQVJEX1RFTVAs CisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRNb2RlOwogCiB0eXBlZGVmIHN0cnVjdCBE aXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBhOTIxYWYyNDg2Zi4uYmQ3OTY0YWVh NmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01EVEFHKENN RFRBR19ESVNDQVJEX0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJU0NBUkQg U0VRVUVOQ0VTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9URU1QLCAiRElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhD TURUQUdfRElTQ0FSRF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRI T0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRF LCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDI4MWJkZDc5MjBiLi4y MzM5ZmMxNGYzZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTk2NywzICs5NjcsNjUgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIu OiJEQk5BTUUiLmI7CiBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUi OwogRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkg Y2xlYW5pbmcgYnkgRElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJj aGFyOworTEVUIHZhcjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0t CisgSGVsbG8KKygxIHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAor LS0tLS0tCisgCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorIEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tIGluaXRpYWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlv bgorLS0gc2hvdWxkIGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3Vs ZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FI T0onOworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9z ZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAg fCB0CisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdh aW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbAppbmRleCBjY2U1MmU3YWU2ZS4uNjBkMDYyYjMwY2MgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTY4NCwzICs2ODQsMzkgQEAg RFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1B IDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9yeSBjbGVhbmluZyBi eSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitMRVQg dmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFy MTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJM RVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBpbml0aWFsIHRl c3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6 ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CisK Ky0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNUIG5hbWUsIHR5cG5h bWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor CitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20240730-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwlj18 RnJvbSBlNzQwYjA3ZjQ0ZGU0YjVlMTUwOGRmMDQ2YWI4ZThiOTAzZDhhZjU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjBdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGRlZGljYXRlZCBo YXNoIHRhYmxlLiBUaGUKd3JpdGUgYWNjZXNzIGlzIGRvbmUgYnkgTEVUIGNvbW1hbmQuIFRoZSBy ZWFkIGFjY2VzcyBpcyBieSBTRUxFQ1QgY29tbWFuZC4KVGhlIGFjY2VzcyByaWdodHMgc2hvdWxk IGJlIGNoZWNrZWQuCgpUaGUgaWRlbnRpZmllcnMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc2hvdWxk IGJlIHNoYWRvd2VkIGJ5IHBvc3NpYmxlIGNvbHVtbidzCmlkZW50aWZpZXJzIGFsd2F5cy4gVGhp cyBpcyBieSBkZXNpZ24gZmVhdHVyZS4gV2UgZG9uJ3Qgd2FudCB0byBicmVhayBhbgphcHBsaWNh dGlvbiBieSBjcmVhdGluZyBzb21lIHNlc3Npb24gdmFyaWFibGUgdGhhdCBpcyBiYWRseSBuYW1l ZC4KClRoZSBsaW1pdHMgb2YgdGhpcyBwYXRjaCAoc29sdmVkIGJ5IG90aGVyIHBhdGNoZXMpOgoK LSBzZXNzaW9uIHZhcmlhYmxlcyBibG9jayBwYXJhbGxlbCBleGVjdXRpb24KLSBzZXNzaW9uIHZh cmlhYmxlcyBibG9ja3Mgc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlvbiAoaW4gcGxwZ3NxbCkK LSBTUUwgZnVuY3Rpb25zIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBpbmxpbmVkCi0g Q0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCAodXNhZ2Ugb2YgZGlyZWN0IGFjY2VzcyB0 byBleHByZXNzIGV4ZWN1dG9yKQotIG1lbW9yeSB1c2VkIGJ5IGRyb3BwZWQgc2Vzc2lvbiB2YXJp YWJsZXMgaXMgbm90IHJlbGVhc2VkCgpJbXBsZW1lbnRhdGlvbnMgb2YgRVhQTEFJTiBMRVQgYW5k IFBSRVBBUkUgTEVUIHN0YXRlbWVudHMKYXJlIGluIHNlcGFyYXRlIHBhdGNoZXMgKGZvciBiZXR0 ZXIgcmVhZGFiaWxpdHkpCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAg ICAgICAgICAgIHwgIDEzICsKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzOSArCiBkb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sICAgICAgICAg ICAgICAgfCAgMjQgKwogZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCAgICAgICAgICAgICAgICAg ICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAg ICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwg ICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAg MSArCiBkb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgOTcg KysKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDUgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwgMzI2ICsrKysr KysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDYwMiArKysrKysr KysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAgNDIg Kwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDQ3ICsK IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jICAgICAgfCAyMDEgKysrKwog c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNy Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgOCArCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICAgICAgfCAxMzggKystCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyAgICAgfCAgIDMgKwogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDM1ICstCiBzcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAgfCAyNzYgKysrKystCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAyMjQgKysrKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFj a2VuZC90Y29wL2Rlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2JhY2tl bmQvdGNvcC9wcXVlcnkuYyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNiArCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgNDYgKwogc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDQxICstCiBzcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYyAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMzIgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y2Rlc2MuaCAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmggICAgICB8ICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aCAgICAgICAgICAgICAgICAgfCAgMTkgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDE3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAg ICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgICAgICAgICAgICB8 ICAgMyArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwg OTEyICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsICAgIHwgNjI1ICsrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgICAgICAgICAgICAgIHwgICA1ICsKIDU3IGZpbGVzIGNoYW5nZWQsIDM5NTUgaW5z ZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2V4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVk ZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBkZTEyMmU1 NDNmNy4uM2U1YjcwMmIwMTYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05Nzc3LDYgKzk3NzcsMTkgQEAg U0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxh Y2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFy Y3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPlhMb2dSZWNQdHI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2YgdGhlIHRyYW5zYWN0aW9uIHdoZXJl IHZhcmlhYmxlIHdhcyBjcmVhdGVkLiBJdCBpcyB1c2VkCisgICAgICAgKGluIGNvbWJpbmF0aW9u IHdpdGggPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KSBhcyBldmVyeXRpbWUKKyAgICAg ICB1bmlxdWUgaWRlbnRpZmllci4gT25seSA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4g Y2Fubm90IGJlCisgICAgICAgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLCBiZWNhdXNlIHVudXNlZCA8 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICBjYW4gYmUgcmV1c2VkLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFt ZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dt bC9kZGwuc2dtbAppbmRleCA3NTMxZGUxN2ZkMy4uNTk1ZWViYTRjM2IgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzMjcs NiArNTMyNyw0NSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdI RVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICAgdGhlIHNjaGVtYSBuYW1l LCBjb2x1bW5zIGNhbiB1c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVz ZQogICAgIGJsb2NrIGxhYmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJv dXRpbmUgbmFtZS4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHZhbHVlIG9mIGEg c2Vzc2lvbiB2YXJpYWJsZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBT UUwKKyAgICBjb21tYW5kLiAgV2hpbGUgc2Vzc2lvbiB2YXJpYWJsZXMgc2hhcmUgcHJvcGVydGll cyB3aXRoIHRhYmxlcywgdGhlaXIgdmFsdWUKKyAgICBjYW5ub3QgYmUgdXBkYXRlZCB3aXRoIGFu IDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4gY29tbWFuZC4gVGhlIHZhbHVlIG9mIGEKKyAgICBz ZXNzaW9uIHZhcmlhYmxlIG1heSBiZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwv Y29tbWFuZD4gU1FMCisgICAgY29tbWFuZC4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIx OworPC9wcm9ncmFtbGlzdGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFU RSBWQVJJQUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBSRUFE IE9OIFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgVE8gUFVCTElDOworTEVUIGN1cnJl bnRfdXNlcl9pZCA9IChTRUxFQ1QgaWQgRlJPTSB1c2VycyBXSEVSRSB1c2VuYW1lID0gc2Vzc2lv bl91c2VyKTsKK1NFTEVDVCBjdXJyZW50X3VzZXJfaWQ7Cis8L3Byb2dyYW1saXN0aW5nPgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxl IGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBhIHZhcmlh YmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRz IHZhbHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50 IHNlc3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiBU aGUgY29udGVudCBvZiBhIHZhcmlhYmxlIGlzIG5vdAorICAgIHRyYW5zYWN0aW9uYWwuIFRoaXMg aXMgdGhlIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4gUEwgbGFuZ3VhZ2VzLgorICAgIFRo ZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgcGVyc2lzdGVudCwgYnV0IHRoZSBjb250ZW50IG9mIHNl c3Npb24gdmFyaWFibGVzIGlzCisgICAgdGVtcG9yYXJ5IGFuZCBub3Qgc2hhcmVkIChsaWtlIHRo ZSBjb250ZW50IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbiByZWZl cmVuY2VzIGluIGEgcXVlcnkuIFdoZW4KKyAgICBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZpZXJz IG9yIHF1YWxpZmllZCBpZGVudGlmaWVycyB0aGF0IGNvdWxkIGJlIHVzZWQgYXMKKyAgICBib3Ro IGEgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZpZXIs IHRoZW4gdGhlCisgICAgY29sdW1uIGlkZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRpbWUu CisgICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9l dmVudC10cmlnZ2VyLnNnbWwKaW5kZXggMTViMmFmOTlkY2EuLjU3OGI5N2FmZWVmIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9l dmVudC10cmlnZ2VyLnNnbWwKQEAgLTQzMiw2ICs0MzIsMTQgQEAKICAgICAgICAgPGVudHJ5IGFs aWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5 IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgogICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAg ICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+QUxURVIgVkFSSUFCTEU8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08 L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFs Pi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5 PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVm dCI+PGxpdGVyYWw+QUxURVIgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkg YWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtNzI4LDYgKzcz NiwxNCBAQAogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJh bD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAg PC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJh bD5DUkVBVEUgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWdu PSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFs aWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVu dHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAg PGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+ CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+Q1JFQVRFIFZJRVc8L2xpdGVy YWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xp dGVyYWw+PC9lbnRyeT4KQEAgLTEwMjQsNiArMTA0MCwxNCBAQAogICAgICAgICA8ZW50cnkgYWxp Z249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkg YWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAg ICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5EUk9QIFZBUklBQkxFPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4t PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4K KyAgICAgICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQi PjxsaXRlcmFsPkRST1AgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxp Z249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXgg YTY3NTkyMzg2NzIuLmQ2ZDRlYmQxYTAzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwMzQsNiArNjAzNCwx OCBAQCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiA8L3Byb2dyYW1saXN0 aW5nPgogICAgIDwvcGFyYT4KICAgIDwvc2VjdDM+CisKKyAgIDxzZWN0MyBpZD0icGxwZ3NxbC1z ZXNzaW9uLXZhcmlhYmxlcyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlNlc3Npb24gdmFyaWFibGVz PC9jb21tYW5kPjwvdGl0bGU+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIDxhcHBsaWNhdGlvbj5Q TC9wZ1NRTDwvYXBwbGljYXRpb24+IGxhbmd1YWdlIGhhcyBubyBwYWNrYWdlcywgYW5kCisgICAg IHRoZXJlZm9yZSBubyBwYWNrYWdlIHZhcmlhYmxlcyBvciBwYWNrYWdlIGNvbnN0YW50cy4KKyAg ICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBoYXMgc2Vzc2lvbiB2YXJp YWJsZXMuCisgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBjcmVhdGVkIGJ5IDxjb21tYW5k PkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4sCisgICAgIGFzIGRlc2NyaWJlZCBpbiA8eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz4uCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4K ICAgPC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9InBscGdzcWwtcG9ydGluZy1hcHBlbmRpeCI+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggMmY2N2RlM2UyMWIuLmNjM2JkNWFiNTQwIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbGxmaWxlcy5zZ21sCkBAIC0xNTgsNiArMTU4LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2Fi bGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBncmFudCAg ICAgICAgICAgICAgU1lTVEVNICJncmFudC5zZ21sIj4KIDwhRU5USVRZIGltcG9ydEZvcmVpZ25T Y2hlbWEgU1lTVEVNICJpbXBvcnRfZm9yZWlnbl9zY2hlbWEuc2dtbCI+CiA8IUVOVElUWSBpbnNl cnQgICAgICAgICAgICAgU1lTVEVNICJpbnNlcnQuc2dtbCI+Cis8IUVOVElUWSBsZXQgICAgICAg ICAgICAgICAgU1lTVEVNICJsZXQuc2dtbCI+CiA8IUVOVElUWSBsaXN0ZW4gICAgICAgICAgICAg U1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8IUVOVElUWSBsb2FkICAgICAgICAgICAgICAgU1lTVEVN ICJsb2FkLnNnbWwiPgogPCFFTlRJVFkgbG9jayAgICAgICAgICAgICAgIFNZU1RFTSAibG9jay5z Z21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAppbmRleCBkODc1NzBlN2Q4Yi4u ZDIwMzYzNTFlNTMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAgLTE3Myw2 ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOwogICA8c2lt cGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3Jl YXRldmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRy b3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0 Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogPC9yZWZlbnRyeT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGVjMTY1YWI5NmZjLi4wNWJm NjdlMzQxMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0xNDUsNiAr MTQ1LDcgQEAgU0VMRUNUIHZhcjE7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+ CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zhcmlh YmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRi MzU2MGYwYi4uNjc5ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92 YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBA IC0xMTEsNiArMTExLDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBl PSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIv PjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUi Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVy PgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYzOTY4ZWRkZDkwCi0tLSAvZGV2L251bGwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk3IEBACis8IS0tCitkb2Mv c3JjL3NnbWwvcmVmL2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8 cmVmZW50cnkgaWQ9InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+CisgIDxw cmltYXJ5PkxFVDwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxw cmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdpbmc8 L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRs ZT5MRVQ8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJlZnB1 cnBvc2U+Y2hhbmdlIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgorIDwv cmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ID0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJs ZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8 L2NvbW1hbmQ+IGNvbW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vzc2lv bgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5zZXNzaW9uX3ZhcmlhYmxlPC9saXRlcmFs PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2Yg dGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+ c3FsX2V4cHJlc3Npb248L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBBbiBTUUwgZXhwcmVzc2lvbiAoY2FuIGJlIHN1YnF1ZXJ5IGluIHBhcmVudGhl c2lzKS4gVGhlIHJlc3VsdCBtdXN0CisgICAgICBiZSBvZiBjYXN0YWJsZSB0byB0aGUgc2FtZSBk YXRhIHR5cGUgYXMgdGhlIHNlc3Npb24gdmFyaWFibGUgKGluCisgICAgICBpbXBsaWNpdCBvciBh c3NpZ25tZW50IGNvbnRleHQpLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorCisgIDxwYXJhPgorICAgRXhhbXBs ZToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOwor TEVUIG15dmFyID0gMTA7CitMRVQgbXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0 bmFtZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5s aW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21l bWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21l bWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5j ZS5zZ21sCmluZGV4IDI1NTc4ZjM5NDZjLi4xM2U0YWRjNWRmMyAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApA QCAtMTg2LDYgKzE4Niw3IEBACiAgICAmZ3JhbnQ7CiAgICAmaW1wb3J0Rm9yZWlnblNjaGVtYTsK ICAgICZpbnNlcnQ7CisgICAmbGV0OwogICAgJmxpc3RlbjsKICAgICZsb2FkOwogICAgJmxvY2s7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IGM5ZDY4NjY2NWRlLi4wNTU2MTg5Zjk3YSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTE4NjQsNiArMTg2NCwxMSBAQCBmaW5kX2V4 cHJfcmVmZXJlbmNlc193YWxrZXIoTm9kZSAqbm9kZSwKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9 IChQYXJhbSAqKSBub2RlOwogCisJCS8qIEEgdmFyaWFibGUgcGFyYW1ldGVyIGRlcGVuZHMgb24g dGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1f VkFSSUFCTEUpCisJCQlhZGRfb2JqZWN0X2FkZHJlc3MoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJh bS0+cGFyYW12YXJpZCwgMCwKKwkJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisKIAkJLyogQSBw YXJhbWV0ZXIgbXVzdCBkZXBlbmQgb24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCWFk ZF9vYmplY3RfYWRkcmVzcyhUeXBlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlwZSwgMCwKIAkJ CQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGM0NjQy Yjc1YmJlLi5kZjFlODc5NDMzNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1l c3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zMzk3LDYg KzMzOTcsMzMyIEBAIExvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsCiAJcmV0dXJu IHZhcm9pZDsKIH0KIAorLyoKKyAqIFRoZSBpbnB1dCBsaXN0IGNvbnRhaW5zIG5hbWVzIHdpdGgg aW5kaXJlY3Rpb24gZXhwcmVzc2lvbnMgdXNlZCBhcyB0aGUgbGVmdAorICogcGFydCBvZiBMRVQg c3RhdGVtZW50LiBUaGUgZm9sbG93aW5nIHJvdXRpbmUgcmV0dXJucyBhIG5ldyBsaXN0IHdpdGgg b25seQorICogaW5pdGlhbCBzdHJpbmdzIChuYW1lcykgLSB3aXRob3V0IGluZGlyZWN0aW9uIGV4 cHJlc3Npb25zLgorICovCitMaXN0ICoKK05hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCit7CisJ TGlzdENlbGwgICAqbDsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlmb3JlYWNoKGwsIG5h bWVzKQorCXsKKwkJTm9kZQkgICAqbiA9IGxmaXJzdChsKTsKKworCQlpZiAoSXNBKG4sIFN0cmlu ZykpCisJCXsKKwkJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwkJfQorCQllbHNlCisJ CQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSWRlbnRpZnlWYXJp YWJsZSAtIHRyeSB0byBmaW5kIHZhcmlhYmxlIGlkZW50aWZpZWQgYnkgbGlzdCBvZiBuYW1lcy4K KyAqCisgKiBCZWZvcmUgdGhpcyBjYWxsIHdlIGRvbid0IGtub3csIGhvdyB0aGVzZSBmaWVsZHMg c2hvdWxkIGJlIG1hcHBlZCB0bworICogc2NoZW1hIG5hbWUsIHZhcmlhYmxlIG5hbWUgYW5kIGF0 dHJpYnV0ZSBuYW1lLiBJbiB0aGlzIHJvdXRpbmUKKyAqIHdlIHRyeSB0byBhcHBseSBwYXNzZWQg bmFtZXMgdG8gYWxsIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiBzY2hlbWEgbmFtZSwKKyAqIHZh cmlhYmxlIG5hbWUgYW5kIGF0dHJpYnV0ZSBuYW1lLCBhbmQgd2UgY291bnQgdmFsaWQgY29tYmlu YXRpb25zLgorICoKKyAqIFJldHVybnMgb2lkIG9mIGlkZW50aWZpZWQgdmFyaWFibGUuIFdoZW4g bGFzdCBmaWVsZCBvZiBuYW1lcyBsaXN0IGlzCisgKiBpZGVudGlmaWVkIGFzIGFuIGF0dHJpYnV0 ZSwgdGhlbiB0aGUgYXJndW1lbnQgYXR0cm5hbWUgY29udGFpbnMgdGhlIG5hbWUgb2YKKyAqIHRo aXMgZmllbGQuCisgKgorICogV2hlbiB0aGVyZSBpcyBpcyBubyB2YWxpZCBjb21iaW5hdGlvbnMs IHdlIGNhbiBiZSBzdXJlIHRoZSBzcGVjaWZpZWQgbGlzdCBvZgorICogbmFtZXMgY2Fubm90IGlk ZW50aWZ5IGEgc2Vzc2lvbiB2YXJpYWJsZS4gSW4gdGhpcyBjYXNlIHdlIHJldHVybiBJbnZhbGlk T2lkLgorICoKKyAqIFdlIGNhbiBmaW5kIG1vcmUgdmFsaWQgY29tYmluYXRpb24gdGhhbiBvbmUu CisgKiBFeGFtcGxlOiB1c2VycyBjYW4gaGF2ZSBzZXNzaW9uIHZhcmlhYmxlIHggaW4gc2NoZW1h IHksIGFuZAorICogc2Vzc2lvbiB2YXJpYWJsZSB5IHdpdGggYXR0cmlidXRlIHggaW5zaWRlIHNv bWUgc2NoZW1hIGZyb20KKyAqIHNlYXJjaCBwYXRoLiBJbiB0aGlzIHNpdHVhdGlvbiB0aGUgbWVh bmluZyBvZiBleHByZXNzaW9uICJ5Ii4ieCIKKyAqIGlzIGFtYmlndW91cy4gSW4gdGhpcyBjYXNl IHRoaXMgcm91dGluZSByZXR1cm5zIG9pZCBvZiB2YXJpYWJsZQorICogeCBpbiBzY2hlbWEgeSwg YW5kIHRoZSBvdXRwdXQgcGFyYW1ldGVyICJub3RfdW5pcXVlIiBpcyBzZXQgdG8KKyAqIHRydWUu IEluIHRoaXMgY2FzZSB0aGlzIHZhcmlhYmxlIGlzIGxvY2tlZC4KKyAqCisgKiBUaGUgQWNjZXNz U2hhcmVMb2NrIGlzIGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLiBUaGUgbG9j aworICogd2lsbCBiZSBrZXB0IGZvciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisgKgorICogTm90 ZTogdGhlIG91dCBhdHRybmFtZSBzaG91bGQgYmUgdXNlZCBvbmx5IHdoZW4gdGhlIHNlc3Npb24g dmFyaWFibGUKKyAqIGlzIGlkZW50aWZpZWQuIFdoZW4gdGhlIHNlc3Npb24gdmFyaWFibGUgaXMg bm90IGlkZW50aWZpZWQsIHRoZW4gdGhpcworICogb3V0cHV0IHZhcmlhYmxlIGNhbiBob2xkIHJl ZmVyZW5jZSB0byBzb21lIHN0cmluZywgYnV0IGlzbid0IHN1cmUKKyAqIGFib3V0IGl0cyBzZW1h bnRpY3MuCisgKgorICogV2hlbiB3ZSB1c2UgdGhpcyByb3V0aW5lIGZvciBpZGVudGlmaWNhdGlv biBvZiBzaGFkb3dlZCB2YXJpYWJsZSwKKyAqIHdlIGRvbid0IHdhbnQgdG8gcmFpc2UgYW55IGVy cm9yLiBTaGFkb3dpbmcgY29sdW1uIHJlZmVyZW5jZSBpcyBjb3JyZWN0LAorICogYW5kIHdlIGRv bid0IHdhbnQgdG8gYnJlYWsgZXhlY3V0aW9uIGR1ZSBzaGFkb3dpbmcgY2hlY2suCisgKi8KK09p ZAorSWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpu b3RfdW5pcXVlLCBib29sIG5vZXJyb3IpCit7CisJTm9kZQkgICAqZmllbGQxID0gTlVMTDsKKwlO b2RlCSAgICpmaWVsZDIgPSBOVUxMOworCU5vZGUJICAgKmZpZWxkMyA9IE5VTEw7CisJTm9kZQkg ICAqZmllbGQ0ID0gTlVMTDsKKwljaGFyCSAgICphID0gTlVMTDsKKwljaGFyCSAgICpiID0gTlVM TDsKKwljaGFyCSAgICpjID0gTlVMTDsKKwljaGFyCSAgICpkID0gTlVMTDsKKwlPaWQJCQl2YXJp ZCA9IEludmFsaWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJ CWludmFsX2NvdW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVy YXRpb25zIGNhbiBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFs bCBzdWNoCisJICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdl cywgd2Uga2VlcCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1 cCB3aGlsZSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVu dGlsIGVpdGhlciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAo MikKKwkgKiB0aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJewor CQlPaWQJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gSW52YWxpZE9pZDsKKwkJT2lkCQkJdmFyb2lk X3dpdGhfYXR0ciA9IEludmFsaWRPaWQ7CisKKwkJKm5vdF91bmlxdWUgPSBmYWxzZTsKKwkJKmF0 dHJuYW1lID0gTlVMTDsKKwkJdmFyaWQgPSBJbnZhbGlkT2lkOworCisJCWludmFsX2NvdW50ID0g U2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyOworCisJCXN3aXRjaCAobGlzdF9sZW5ndGgobmFt ZXMpKQorCQl7CisJCQljYXNlIDE6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCisJ CQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCisJCQkJdmFyaWQgPSBMb29rdXBWYXJp YWJsZShOVUxMLCBzdHJWYWwoZmllbGQxKSwgdHJ1ZSk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2Ug MjoKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJZmllbGQyID0gbHNlY29uZChu YW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJYSA9IHN0clZh bChmaWVsZDEpOworCisJCQkJaWYgKElzQShmaWVsZDIsIFN0cmluZykpCisJCQkJeworCQkJCQkv KiB3aGVuIGJvdGggZmllbGRzIGFyZSBvZiBzdHJpbmcgdHlwZSAqLworCQkJCQliID0gc3RyVmFs KGZpZWxkMik7CisKKwkJCQkJLyoKKwkJCQkJICogYS5iIGNhbiBtZWFuICJzY2hlbWEiLiJ2YXJp YWJsZSIgb3IgInZhcmlhYmxlIi4iZmllbGQiLgorCQkJCQkgKiBDaGVjayBib3RoIHZhcmlhbnRz LCBhbmQgcmV0dXJucyBJbnZhbGlkT2lkIHdpdGgKKwkJCQkJICogbm90X3VuaXF1ZSBmbGFnLCB3 aGVuIGJvdGggaW50ZXJwcmV0YXRpb25zIGFyZQorCQkJCQkgKiBwb3NzaWJsZS4KKwkJCQkJICov CisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsK KwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIGEsIHRydWUpOwor CQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKiBUaGUgbGFzdCBmaWVsZCBvZiBsaXN0IGNh biBiZSBzdGFyIHRvby4gKi8KKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIEFfU3RhcikpOworCisJ CQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgdGhlIGZpZWxkMSBzaG91bGQgYmUgdmFyaWFi bGUgbmFtZS4gQnV0CisJCQkJCSAqIGRpcmVjdCB1bmJveGluZyBvZiBjb21wb3NpdGUgc2Vzc2lv biB2YXJpYWJsZXMgaXMgbm90CisJCQkJCSAqIHN1cHBvcnRlZCBub3csIGFuZCB0aGVuIHdlIGRv bid0IG5lZWQgdG8gdHJ5IGxvb2t1cAorCQkJCQkgKiByZWxhdGVkIHZhcmlhYmxlLgorCQkJCQkg KgorCQkJCQkgKiBVbmJveGluZyBpcyBzdXBwb3J0ZWQgYnkgc3ludGF4ICh2YXIpLioKKwkJCQkJ ICovCisJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCX0KKworCQkJCWlmIChPaWRJc1ZhbGlk KHZhcm9pZF93aXRob3V0X2F0dHIpICYmIE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJ CQkJeworCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhv dXRfYXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9h dHRyKSkKKwkJCQl7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJ CQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSph dHRybmFtZSA9IGI7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQl9CisJCQkJ YnJlYWs7CisKKwkJCWNhc2UgMzoKKwkJCQl7CisJCQkJCWJvb2wJCWZpZWxkMV9pc19jYXRhbG9n ID0gZmFsc2U7CisKKwkJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIg PSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKworCQkJCQlB c3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJp bmcpKTsKKworCQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQy KTsKKworCQkJCQlpZiAoSXNBKGZpZWxkMywgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJYyA9IHN0 clZhbChmaWVsZDMpOworCisJCQkJCQkvKgorCQkJCQkJICogYS5iLmMgY2FuIG1lYW4gY2F0YWxv Zy5zY2hlbWEudmFyaWFibGUgb3IKKwkJCQkJCSAqIHNjaGVtYS52YXJpYWJsZS5maWVsZC4KKwkJ CQkJCSAqCisJCQkJCQkgKiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQgc2V0IG5vdF91bmlxdWUg ZmxhZywgd2hlbgorCQkJCQkJICogYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgor CQkJCQkJICoKKwkJCQkJCSAqIFdoZW4gdGhpcmQgbm9kZSBpcyBzdGFyLCBvbmx5IHBvc3NpYmxl CisJCQkJCQkgKiBpbnRlcnByZXRhdGlvbiBpcyBzY2hlbWEudmFyaWFibGUuKiwgYnV0IHRoaXMK KwkJCQkJCSAqIHBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBub3cuCisJCQkJCQkgKi8KKwkJCQkJ CXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKworCQkJCQkJ LyoKKwkJCQkJCSAqIGNoZWNrIHBhdHRlcm4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb25seSB3 aGVuCisJCQkJCQkgKiB0aGVyZSBpcyBwb3NzaWJpbGl0eSB0byBzdWNjZXNzLgorCQkJCQkJICov CisJCQkJCQlpZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpID09 IDApCisJCQkJCQl7CisJCQkJCQkJZmllbGQxX2lzX2NhdGFsb2cgPSB0cnVlOworCQkJCQkJCXZh cm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQkJCX0K KwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQzLCBBX1N0 YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJaWYgKE9pZElz VmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRy KSkKKwkJCQkJeworCQkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQkJdmFyaWQgPSB2YXJv aWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lk X3dpdGhvdXRfYXR0cikpCisJCQkJCXsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0 cjsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQor CQkJCQl7CisJCQkJCQkqYXR0cm5hbWUgPSBjOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9h dHRyOworCQkJCQl9CisKKwkJCQkJLyoKKwkJCQkJICogV2hlbiB3ZSBkaWRuJ3QgZmluZCB2YXJp YWJsZSwgd2UgY2FuICh3aGVuIGl0IGlzCisJCQkJCSAqIGFsbG93ZWQpIHJhaXNlIGNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZSBlcnJvci4KKwkJCQkJICovCisJCQkJCWlmICghT2lkSXNWYWxpZCh2 YXJpZCkgJiYgIW5vZXJyb3IgJiYgIWZpZWxkMV9pc19jYXRhbG9nKQorCQkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVt ZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQl9 CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgNDoKKwkJCQl7CisJCQkJCWZpZWxkMSA9IGxpbml0aWFs KG5hbWVzKTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0 aGlyZChuYW1lcyk7CisJCQkJCWZpZWxkNCA9IGxmb3VydGgobmFtZXMpOworCisJCQkJCUFzc2Vy dChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykp OworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMywgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChm aWVsZDEpOworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisJCQkJCWMgPSBzdHJWYWwoZmllbGQz KTsKKworCQkJCQkvKgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsICJhIiBpcyB1c2VkIGFzIGNhdGFs b2cgbmFtZSAtIGNoZWNrIGl0LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0 YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCQl7CisJCQkJCQlpZiAoIW5vZXJy b3IpCisJCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJl ZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCQlOYW1lTGlzdFRv U3RyaW5nKG5hbWVzKSkpKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCWlmIChJ c0EoZmllbGQ0LCBTdHJpbmcpKQorCQkJCQkJeworCQkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsK KwkJCQkJCX0KKwkJCQkJCWVsc2UKKwkJCQkJCXsKKwkJCQkJCQlBc3NlcnQoSXNBKGZpZWxkNCwg QV9TdGFyKSk7CisJCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCQl9CisKKwkJCQkJCSph dHRybmFtZSA9IGQ7CisJCQkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOwor CQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWlmICghbm9lcnJv cikKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCisJCQkJCQkJIGVycm1zZygiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6ICVzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkp OworCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9CisKKwkJLyoKKwkJICogSWYsIHVwb24gcmV0 cnksIHdlIGdldCBiYWNrIHRoZSBzYW1lIE9JRCB3ZSBkaWQgbGFzdCB0aW1lLCB0aGVuIHRoZQor CQkgKiBpbnZhbGlkYXRpb24gbWVzc2FnZXMgd2UgcHJvY2Vzc2VkIGRpZCBub3QgY2hhbmdlIHRo ZSBmaW5hbCBhbnN3ZXIuCisJCSAqIFNvIHdlJ3JlIGRvbmUuCisJCSAqCisJCSAqIElmIHdlIGdv dCBhIGRpZmZlcmVudCBPSUQsIHdlJ3ZlIGxvY2tlZCB0aGUgdmFyaWFibGUgdGhhdCB1c2VkIHRv CisJCSAqIGhhdmUgdGhpcyBuYW1lIHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCBkb2VzIG5vdy4g IFNvIHJlbGVhc2UgdGhlCisJCSAqIGxvY2suCisJCSAqLworCQlpZiAocmV0cnkpCisJCXsKKwkJ CWlmIChvbGRfdmFyaWQgPT0gdmFyaWQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChPaWRJc1ZhbGlk KG9sZF92YXJpZCkpCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklk LCBvbGRfdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKworCQkvKgorCQkgKiBMb2Nr IHRoZSB2YXJpYWJsZS4gIFRoaXMgd2lsbCBhbHNvIGFjY2VwdCBhbnkgcGVuZGluZyBpbnZhbGlk YXRpb24KKwkJICogbWVzc2FnZXMuICBJZiB3ZSBnb3QgYmFjayBJbnZhbGlkT2lkLCBpbmRpY2F0 aW5nIG5vdCBmb3VuZCwgdGhlbgorCQkgKiB0aGVyZSdzIG5vdGhpbmcgdG8gbG9jaywgYnV0IHdl IGFjY2VwdCBpbnZhbGlkYXRpb24gbWVzc2FnZXMKKwkJICogYW55d2F5LCB0byBmbHVzaCBhbnkg bmVnYXRpdmUgY2F0Y2FjaGUgZW50cmllcyB0aGF0IG1heSBiZQorCQkgKiBsaW5nZXJpbmcuCisJ CSAqLworCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQkJQWNjZXB0SW52YWxpZGF0aW9uTWVz c2FnZXMoKTsKKwkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQlMb2NrRGF0YWJhc2VP YmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwor CQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQorCQkJYnJl YWs7CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRfdmFyaWQgPSB2YXJpZDsKKwkJdmFyaWQgPSBJ bnZhbGlkT2lkOworCX0KKworCXJldHVybiB2YXJpZDsKK30KKwogLyoKICAqIERlY29uc3RydWN0 UXVhbGlmaWVkTmFtZQogICoJCUdpdmVuIGEgcG9zc2libHktcXVhbGlmaWVkIG5hbWUgZXhwcmVz c2VkIGFzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK aW5kZXggZjY1MTIxNDQwYTkuLjFjNzMxODFjM2RhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgor I2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAK IHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LApAQCAtMTAxLDYgKzEwMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBB bnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cmNyZWF0ZV9sc24gLSAxXSA9IExTTkdldERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7CiAJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJu YW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0 eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpp bmRleCA0OGY3MzQ4ZjkxYy4uMWNmYWVjYTUxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC01 MCw2ICs1MCw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwKIAlz ZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlzdWJz Y3JpcHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQK aW5kZXggNmRkMDBhNGFiZGUuLmNhNjIxYmU1ZWNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWls ZApAQCAtMzgsNiArMzgsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hlbWFj bWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25fdmFy aWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAogICAn dGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMTkwZWY3Mzg5YwotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMCww ICsxLDYwMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbl92YXJpYWJsZS5j CisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24vbWFuaXB1bGF0aW9uIGNvbW1hbmRzCisg KgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2Vu dHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNB VElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVk ZSAiZnVuY2FwaS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInJld3JpdGUv cmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJz dG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5jbHVkZSAidXRp bHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgorI2luY2x1ZGUgInV0aWxz L2ludmFsLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMv c25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBWYWx1ZXMg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCBsb2NhbCBtZW1v cnkKKyAqIGluc2lkZSBzZXNzaW9udmFycyBoYXNoIHRhYmxlIGluIGJpbmFyeSBmb3JtYXQgaW5z aWRlIGEgZGVkaWNhdGVkIG1lbW9yeQorICogY29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0 LiAgVGhlIGhhc2gga2V5IGlzIG9pZAorICogb2YgcmVsYXRlZCBlbnRyeSBpbiBwZ192YXJpYWJs ZSB0YWJsZS4gQnV0IGxvbmcgdGVybSB1bmFtYmlndWl0eSBvZiBvaWQgaXMKKyAqIG5vdCBndWFy YW50ZWVkLiBBcyBhbiBleGFtcGxlLCBmb3IgYSB2YWx1ZSB3aXRoIG9uZSBvaWQgYSBzZXNzaW9u IGNhbiBiZQorICogaW5hY3RpdmUgZm9yIGxvbmcgdGltZSwgd2hpbGUgaW4gdGhlIG1lYW50aW1l IHRoZSByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUKKyAqIGNhbiBiZSBkcm9wcGVkIGluIGFub3Ro ZXIgc2Vzc2lvbiwgYXNzaWduZWQgb2lkIGNhbiBiZSByZWxlYXNlZCwgYW5kCisgKiB0aGVvcmV0 aWNhbHkgdGhpcyBvaWQgY2FuIGJlIGFzc2lnbmVkIHRvIGRpZmZlcmVudCBzZXNzaW9uIHZhcmlh YmxlLgorICogQXQgdGhlIGVuZCwgdGhlIHJlYWRpbmcgb2YgdmFsdWUgc3RvcmVkIGluIG9sZCBz ZXNzaW9uIHNob3VsZCB0byBmYWlsLAorICogYmVjYXVzZSByZWxhdGVkIGVudHJ5IGluIHBnX3Zh cmlhYmxlIHdpbGwgbm90IGJlIGNvbnNpc3RlbnQgd2l0aAorICogc3RvcmVkIHZhbHVlLiBUaGlz IGlzIHJlYXNvbiB3aHkgd2UgZG8gY2hlY2sgY29uc2lzdGVuY3kgYmV0d2VlbiBzdG9yZWQKKyAq IHZhbHVlIGFuZCBjYXRhbG9nIGJ5IGNyZWF0ZV9sc24gdmFsdWUuCisgKgorICogQmVmb3JlIGFu eSB1c2FnZSAobm90IG9ubHkgcmVhZCBpbiB0cmFuc2FjdGlvbikgd2UgbmVlZCB0byBjaGVjayBj b25zaXN0ZW5jeQorICogd2l0aCBwZ192YXJpYWJsZSBlbnRyeS4gV2hlbiB0aGVyZSBpcyBub3Qg ZW50cnkgd2l0aCBzdG9yZWQgb2lkLCB0aGUgcmVsYXRlZAorICogdmFyaWFibGUgd2FzIGRyb3Bw ZWQsIGFuZCBzdG9yZWQgdmFsdWUgaXMgbm90IGNvbnNpc3RlbnQuIFdoZW4gZW50cnkgd2l0aAor ICoga25vd24gb2lkLCBidXQgbHNuIG51bWJlciBpcyBkaWZmZXJlbnQsIGVudHJ5IG9mIHBnX3Zh cmlhYmxlIHdhcyBjcmVhdGVkCisgKiBmb3IgZGlmZmVyZW50IHZhcmlhYmxlIGFuZCBzdG9yZWQg dmFsdWUgaXMgbm90IGNvbnNpc3RlbnQgYWdhaW4uCisgKi8KK3R5cGVkZWYgc3RydWN0IFNWYXJp YWJsZURhdGEKK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJpYWJsZSBPSUQgb2YgdGhlIHZh cmlhYmxlIChoYXNoIGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0ZV9sc247CisKKwlib29sCQlp c251bGw7CisJRGF0dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7CisJaW50MTYJCXR5cGxlbjsK Kwlib29sCQl0eXBieXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsKKworCS8qCisJICogZG9tYWlu X2NoZWNrX2V4dHJhIGhvbGRzIGFuIGV4dHJhIChjYWNoZSkgZm9yIGRvbWFpbiBjaGVjay4KKwkg KiBUaGlzIGV4dHJhIGlzIHVzdWFsbHkgc3RvcmVkIGluIGZuX21jeHQuIFdlIGRvIG5vdCBoYXZl IHNhbWUKKwkgKiBtZW1vcnkgY29udGV4dCBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMsIGJ1dCB3ZSBj YW4gdXNlCisJICogVG9wVHJhbnNhY3Rpb25Db250ZXh0IGluc3RlYWQuIEZyZXNoIGV4dHJhIGlz IGZvcmNlZCB3aGVuCisJICogd2UgZGV0ZWN0IHdlIGFyZSBpbiBhIGRpZmZlcmVudCB0cmFuc2Fj dGlvbiAoZGlmZmVyZW50CisJICogbG9jYWwgdHJhbnNhY3Rpb24gaWQgZG9tYWluX2NoZWNrX2V4 dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRy YW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2 YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4gYmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZl CisJICogc2ludmFsIG1lc3NhZ2UuIFdlIGhhdmUgdG8gY2hlY2sgYWx3YXlzIGlmIHRoZSBzdG9y ZWQgZGF0YSBhcmUKKwkgKiB0cnVzdGZ1bC4KKwkgKi8KKwlib29sCQlpc192YWxpZDsKKworCXVp bnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLwor fSBTVmFyaWFibGVEYXRhOworCit0eXBlZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKKwor c3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lv biB2YXJpYWJsZXMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCA9IE5VTEw7CisKKy8qCisgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJp YWJsZSBpbnZhbGlkYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitwZ192YXJpYWJsZV9jYWNoZV9j YWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQoreworCUhB U0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwllbG9nKERFQlVHMSwg InBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsK KworCUFzc2VydChzZXNzaW9udmFycyk7CisKKwkvKgorCSAqIFdoZW4gdGhlIGhhc2h2YWx1ZSBp cyBub3Qgc3BlY2lmaWVkLCB0aGVuIHdlIGhhdmUgdG8gcmVjaGVjayBhbGwKKwkgKiBjdXJyZW50 bHkgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gU2luY2Ugd2UgY2FuJ3QgZ3VhcmFudGVlIHRoZSBl eGFjdAorCSAqIHNlc3Npb24gdmFyaWFibGUgZnJvbSBpdHMgaGFzaFZhbHVlLCB3ZSBhbHNvIGhh dmUgdG8gaXRlcmF0ZSBvdmVyIGFsbAorCSAqIGl0ZW1zIG9mIHRoZSBzZXNzaW9udmFycyBoYXNo IHRhYmxlLgorCSAqLworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOworCisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNo dmFsdWUpCisJCXsKKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCX0KKwl9Cit9CisKKy8q CisgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKKyAqLworc3RhdGljIHZvaWQK K2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhcikKK3sKKwkvKiBDbGVh biBjdXJyZW50IHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251bGwpCisJeworCQlpZiAoIXN2YXIt PnR5cGJ5dmFsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZhbHVlKSk7CisKKwkJ c3Zhci0+aXNudWxsID0gdHJ1ZTsKKwl9CisKKwlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKK30K KworLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBlbnRyeSBpbiBwZ192YXJpYWJsZSBpcyBj b25zaXN0ZW50IHdpdGgKKyAqIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0 aWMgYm9vbAoraXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKK3sKKwlI ZWFwVHVwbGUJdHA7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlBc3NlcnQoT2lkSXNWYWxp ZChzdmFyLT52YXJpZCkpOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9i amVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRw KSkKKwl7CisJCS8qCisJCSAqIEluIHRoaXMgY2FzZSwgdGhlIG9ubHkgb2lkIGNhbm5vdCBiZSB1 c2VkIGFzIHVuaXF1ZSBpZGVudGlmaWVyLAorCQkgKiBiZWNhdXNlIHRoZSBvaWQgY291bnRlciBj YW4gd3JhcGFyb3VuZCwgYW5kIHRoZSBvaWQgY2FuIGJlIHVzZWQgZm9yCisJCSAqIG5ldyBvdGhl ciBzZXNzaW9uIHZhcmlhYmxlLiBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IDY0Yml0CisJ CSAqIHVuaXF1ZSBpZGVudGlmaWVyLgorCQkgKi8KKwkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0g KChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFyY3JlYXRlX2xzbikKKwkJCXJl c3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwl9CisKKwlyZXR1cm4gcmVz dWx0OworfQorCisvKgorICogVXBkYXRlIGF0dHJpYnV0ZXMgY2FjaGVkIGluIHN2YXIKKyAqLwor c3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2 YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwor CUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9IHZhcmlkOworCXN2YXItPmNyZWF0ZV9s c24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJc3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52 YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAm c3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZv cm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2Fs VHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9IHRydWU7CisJc3Zhci0+dmFsdWUgPSAo RGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRydWU7CisKKwlzdmFyLT5oYXNodmFsdWUg PSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworfQorCisvKgorICog QXNzaWduIHNvbWUgY29udGVudCB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4gSXQncyBjb3BpZWQg dG8KKyAqIFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNzYXJ5LgorICoKKyAqIElmIGFu eSBlcnJvciBoYXBwZW5zLCB0aGUgZXhpc3RpbmcgdmFsdWUgc2hvdWxkbid0IGJlIG1vZGlmaWVk LgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIs IERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1bQkJbmV3dmFsOworCVNWYXJpYWJs ZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQo IWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJLyoKKwkgKiBVc2UgdHlwYnl2YWws IHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBhcmUKKwkgKiB0 cnVzdGFibGUgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3YXMgbm90IGFjY2VwdGVkIGZvciB0 aGlzIHZhcmlhYmxlKS4KKwkgKiBXaGVuIHRoZSB2YXJpYWJsZSBpcyBwb3NzaWJseSBpbnZhbGlk LCBmb3JjZSBzZXR1cC4KKwkgKgorCSAqIERvIG5vdCBkbyBpdCBhZ2FpbnN0IHBhc3NlZCBzdmFy LCBpdCBzaG91bGQgYmUgdW5jaGFuZ2VkLCB3aGVuIGFuCisJICogYXNzaWdubWVudCBpcyBub3Qg c3VjY2Vzc2Z1bCAodGhlIGRhdHVtQ29weSBjYW4gZmFpbCkuCisJICovCisJaWYgKCFzdmFyLT5p c192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZh cmlkKTsKKwkJX3N2YXIgPSAmbG9jc3ZhcjsKKwl9CisJZWxzZQorCQlfc3ZhciA9IHN2YXI7CisK KwlpZiAoIWlzbnVsbCkKKwl7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4 dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCW5ld3ZhbCA9IGRhdHVtQ29w eSh2YWx1ZSwgX3N2YXItPnR5cGJ5dmFsLCBfc3Zhci0+dHlwbGVuKTsKKworCQlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKwl9CisJZWxzZQorCQluZXd2YWwgPSB2YWx1ZTsKKworCWZy ZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKworCS8qIFdlIGNhbiBvdmVyd3JpdGUg b2xkIHZhcmlhYmxlIG5vdy4gTm8gZXJyb3IgZXhwZWN0ZWQgKi8KKwlpZiAoc3ZhciAhPSBfc3Zh cikKKwkJbWVtY3B5KHN2YXIsIF9zdmFyLCBzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCisJc3Zh ci0+dmFsdWUgPSBuZXd2YWw7CisJc3Zhci0+aXNudWxsID0gaXNudWxsOworCisJLyoKKwkgKiBY WFggV2hpbGUgdW5saWtlbHksIGFuIGVycm9yIGhlcmUgaXMgcG9zc2libGUuIEl0IHdvdWxkbid0 IGxlYWsgbWVtb3J5CisJICogYXMgdGhlIGFsbG9jYXRlZCBjaHVuayBoYXMgYWxyZWFkeSBiZWVu IGNvcnJlY3RseSBhc3NpZ25lZCB0byB0aGUKKwkgKiBzZXNzaW9uIHZhcmlhYmxlLCBidXQgd291 bGQgY29udHJhZGljdCB0aGlzIGZ1bmN0aW9uIGNvbnRyYWN0LCB3aGljaCBpcworCSAqIHRoYXQg dGhpcyBmdW5jdGlvbiBzaG91bGQgZWl0aGVyIHN1Y2NlZWQgb3IgbGVhdmUgdGhlIGN1cnJlbnQg dmFsdWUKKwkgKiB1bnRvdWNoZWQuCisJICovCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlh YmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3BhY2Vf bmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJIGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQpOwor fQorCisvKgorICogQ3JlYXRlIHRoZSBoYXNoIHRhYmxlIGZvciBzdG9yaW5nIHNlc3Npb24gdmFy aWFibGVzLgorICovCitzdGF0aWMgdm9pZAorY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMo dm9pZCkKK3sKKwlIQVNIQ1RMCQl2YXJzX2N0bDsKKworCUFzc2VydCghc2Vzc2lvbnZhcnMpOwor CisJaWYgKCFTVmFyaWFibGVNZW1vcnlDb250ZXh0KQorCXsKKwkJLyogUmVhZCBzaW52YWwgbWVz c2FnZXMgKi8KKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soVkFSSUFCTEVPSUQsCisJ CQkJCQkJCQkgIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrLAorCQkJCQkJCQkJICAoRGF0dW0p IDApOworCisJCS8qIFdlIG5lZWQgb3VyIG93biBsb25nIGxpdmVkIG1lbW9yeSBjb250ZXh0ICov CisJCVNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPQorCQkJQWxsb2NTZXRDb250ZXh0Q3JlYXRlKFRv cE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCSAgInNlc3Npb24gdmFyaWFibGVzIiwKKwkJCQkJCQkJ ICBBTExPQ1NFVF9TVEFSVF9TTUFMTF9TSVpFUyk7CisJfQorCisJbWVtc2V0KCZ2YXJzX2N0bCwg MCwgc2l6ZW9mKHZhcnNfY3RsKSk7CisJdmFyc19jdGwua2V5c2l6ZSA9IHNpemVvZihPaWQpOwor CXZhcnNfY3RsLmVudHJ5c2l6ZSA9IHNpemVvZihTVmFyaWFibGVEYXRhKTsKKwl2YXJzX2N0bC5o Y3h0ID0gU1ZhcmlhYmxlTWVtb3J5Q29udGV4dDsKKworCXNlc3Npb252YXJzID0gaGFzaF9jcmVh dGUoIlNlc3Npb24gdmFyaWFibGVzIiwgNjQsICZ2YXJzX2N0bCwKKwkJCQkJCQkgIEhBU0hfRUxF TSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NPTlRFWFQpOworfQorCisvKgorICogU2VhcmNoIGEgc2Vl c2lvbiB2YXJpYWJsZSBpbiB0aGUgaGFzaCB0YWJsZSBnaXZlbiBpdHMgb2lkLiBJZiBpdAorICog ZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQgdGhlcmUuCisgKgorICogQ2FsbGVyIGlzIHJl c3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqCisgKiBBcyBzaWRlIGVm ZmVjdCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIEFjY2Vzc1NoYXJlTG9jayBvbgorICogcmVsYXRl ZCBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICov CitzdGF0aWMgU1ZhcmlhYmxlCitnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCit7CisJ U1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisKKwkvKiBQcm90ZWN0IHVzZWQgc2Vzc2lv biB2YXJpYWJsZSBhZ2FpbnN0IGRyb3AgdW50aWwgdHJhbnNhY3Rpb24gZW5kICovCisJTG9ja0Rh dGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9j ayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxl cygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFy aWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAoZm91bmQpCisJewor CQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQkvKgorCQkJICogVGhlIHZhcmlhYmxlIGNh biBiZSBmbGFnZ2VkIGFzIGludmFsaWQgYnkgcHJvY2Vzc2luZyBpbnZhbGlkYXRpb24KKwkJCSAq IG1lc3NhZ2UsIGJ1dCBjYW4gYmUgdmFsaWRhdGVkIGJ5IHJlY2hlY2sgYWdhaW5zdCBzeXN0ZW0g Y2F0YWxvZy4KKwkJCSAqLworCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQkJZWxzZQorCQkJCS8qCisJCQkJICogV2hl biB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2UgY2FuIHNhZmVseSB0aHJvdyBpdC4K KwkJCQkgKiBUaGVyZSBpcyBvaWQgaW4gY2F0YWxvZywgYnV0IGl0IGlzIHJlbGF0ZWQgdG8gZGlm ZmVyZW50CisJCQkJICogc2Vzc2lvbiB2YXJpYWJsZSAoZGlmZmVyZW50IGNyZWF0ZV9sc24pLgor CQkJCSAqLworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0K KwllbHNlCisJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVw IGZvciBub3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5u b3QKKwkgKiBiZSB2YWxpZGF0ZWQuCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJ CXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAi c2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGlu IG1lbW9yeSAoZW1pdHRlZCBieSBSRUFEKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUodmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKiBFbnN1cmUgc28gcmV0dXJu ZWQgZGF0YSBpcyBzdGlsbCBjb3JyZWN0IGRvbWFpbiAqLworCWlmIChzdmFyLT5pc19kb21haW4p CisJeworCQkvKgorCQkgKiBTdG9yZSBkb21haW5fY2hlY2sgZXh0cmEgaW4gVG9wVHJhbnNhY3Rp b25Db250ZXh0LiBXaGVuIHdlIGFyZSBpbgorCQkgKiBvdGhlciB0cmFuc2FjdGlvbiwgdGhlIGRv bWFpbl9jaGVja19leHRyYSBjYWNoZSBpcyBub3QgdmFsaWQKKwkJICogYW55bW9yZS4KKwkJICov CisJCWlmIChzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhp ZCkKKwkJCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisKKwkJZG9tYWluX2NoZWNr KHN2YXItPnZhbHVlLCBzdmFyLT5pc251bGwsCisJCQkJCSBzdmFyLT50eXBpZCwgJnN2YXItPmRv bWFpbl9jaGVja19leHRyYSwKKwkJCQkJIFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisKKwkJc3Zh ci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKKwly ZXR1cm4gc3ZhcjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBnaXZlbiB2YWx1ZSBpbiBhbiBTVmFy aWFibGUsIGFuZCBjYWNoZSBpdCBpZiBub3QgYWxyZWFkeSBwcmVzZW50LgorICoKKyAqIENhbGxl ciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMg c2lkZSBlZmZlY3QgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBBY2Nlc3NTaGFyZUxvY2sgb24KKyAq IHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlv bi4KKyAqLwordm9pZAorU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUs IGJvb2wgaXNOdWxsKQoreworCVNWYXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCisJLyog UHJvdGVjdCB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBkcm9wIHVudGlsIHRyYW5zYWN0 aW9uIGVuZCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlk LCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nl c3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJj aChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOwor CisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQp OworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkg aGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBXUklURSkiLAorCQkJIGdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFy aWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJCSB2 YXJpZCk7CisJfQorCisJLyoKKwkgKiBUaGlzIHNob3VsZCBlaXRoZXIgc3VjY2VlZCBvciBmYWls IHdpdGhvdXQgY2hhbmdpbmcgdGhlIGN1cnJlbnRseQorCSAqIHN0b3JlZCB2YWx1ZS4KKwkgKi8K KwlzZXRfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAq IFdyYXBwZXIgYXJvdW5kIFNldFNlc3Npb25WYXJpYWJsZSBhZnRlciBjaGVja2luZyBmb3IgY29y cmVjdCBwZXJtaXNzaW9uLgorICovCit2b2lkCitTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJp dHlDaGVjayhPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKK3sKKwlBY2xSZXN1 bHQJYWNscmVzdWx0OworCisJLyoKKwkgKiBJcyBjYWxsZXIgYWxsb3dlZCB0byB1cGRhdGUgdGhl IHNlc3Npb24gdmFyaWFibGU/CisJICovCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZh cmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAo YWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9C SkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJU2V0 U2Vzc2lvblZhcmlhYmxlKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVy bnMgY29weSBvZiB2YWx1ZSBzdG9yZWQgaW4gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUg RGF0dW0KK2NvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAq aXNOdWxsKQoreworCURhdHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwg dmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2 YXItPnZhbHVlLCBzdmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZh bHNlOworCX0KKwllbHNlCisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRy dWU7CisJfQorCisJcmV0dXJuIHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2Yg dGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiBjdXJyZW50IG1lbW9yeQorICog Y29udGV4dCkgc3BlY2lmaWVkIGJ5IGl0cyBvaWQuIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3Ig ZG9pbmcgcGVybWlzc2lvbgorICogY2hlY2tzLgorICovCitEYXR1bQorR2V0U2Vzc2lvblZhcmlh YmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKQoreworCVNWYXJpYWJsZQlz dmFyOworCisJc3ZhciA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlKHZhcmlkKTsKKworCS8qCisJICog QWx0aG91Z2ggc3ZhciBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBvaW50LCB0aGUgc3Zh ci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGR1ZSBwb3NzaWJsZSBhY2NlcHRpbmcgaW52 YWxpZGF0aW9uIG1lc3NhZ2UgaW5zaWRlIGRvbWFpbgorCSAqIGNoZWNrLiBOb3csIHRoZSB2YWxp ZGF0aW9uIGlzIGRvbmUgYWZ0ZXIgbG9jaywgdGhhdCBjYW4gYWxzbyBhY2NlcHQKKwkgKiBpbnZh bGlkYXRpb24gbWVzc2FnZSwgc28gdmFsaWRhdGlvbiBzaG91bGQgYmUgdHJ1c3RmdWwuCisJICoK KwkgKiBGb3Igbm93LCB3ZSBkb24ndCBuZWVkIHRvIHJlcGVhdCB2YWxpZGF0aW9uLiBPbmx5IHN2 YXIgc2hvdWxkIGJlIHZhbGlkCisJICogcG9pbnRlci4KKwkgKi8KKwlBc3NlcnQoc3Zhcik7CisK KwkqdHlwaWQgPSBzdmFyLT50eXBpZDsKKworCXJldHVybiBjb3B5X3Nlc3Npb25fdmFyaWFibGVf dmFsdWUoc3ZhciwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2 YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgaXRzIG9pZAorICogd2l0 aCBhIGNoZWNrIG9mIHRoZSBleHBlY3RlZCB0eXBlLiBMaWtlIHByZXZpb3VzIEdldFNlc3Npb25W YXJpYWJsZSwgdGhlCisgKiBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Np b24gY2hlY2tzLgorICovCitEYXR1bQorR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhP aWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKQoreworCVNWYXJpYWJs ZQlzdmFyOworCisJc3ZhciA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlKHZhcmlkKTsKKworCUFzc2Vy dChzdmFyICYmIHN2YXItPmlzX3ZhbGlkKTsKKworCWlmIChleHBlY3RlZF90eXBpZCAhPSBzdmFy LT50eXBpZCkKKwkJZWxvZyhFUlJPUiwgInR5cGUgb2YgdmFyaWFibGUgXCIlcy4lc1wiIGlzIGRp ZmZlcmVudCB0aGFuIGV4cGVjdGVkIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpOworCisJcmV0dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFy LCBpc051bGwpOworfQorCisvKgorICogQXNzaWduIHJlc3VsdCBvZiBldmFsdWF0ZWQgZXhwcmVz c2lvbiB0byBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVMZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQYXJhbUxpc3RJbmZv IHBhcmFtcywKKwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAorCQkJICAgUXVlcnlD b21wbGV0aW9uICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9kZShRdWVyeSwgc3Rt dC0+cXVlcnkpOworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2ZXIgKmRlc3Q7CisJ QWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlQbGFubmVkU3RtdCAqcGxhbjsKKwlRdWVyeURlc2MgICpx dWVyeURlc2M7CisJT2lkCQkJdmFyaWQgPSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisKKwlBc3Nl cnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJLyoKKwkgKiBJcyBpdCBhbGxvd2VkIHRvIHdyaXRl IHRvIHNlc3Npb24gdmFyaWFibGU/CisJICovCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNr KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlp ZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQs IE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJ LyogQ3JlYXRlIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVWYXJpYWJs ZURlc3RSZWNlaXZlcih2YXJpZCk7CisKKwkvKiBydW4gcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNv cHlPYmplY3QocXVlcnkpOworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKwor CUFzc2VydChsaXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlh bF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0g Q01EX1NFTEVDVCk7CisKKwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1 ZXJ5KHF1ZXJ5LCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFM TEVMX09LLCBwYXJhbXMpOworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0 ZWQgY29tbWFuZCBJRCB0byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzCisJICogcmVzdWx0cyBvZiBh bnkgcHJldmlvdXNseSBleGVjdXRlZCBxdWVyaWVzLiAgKFRoaXMgY291bGQgb25seSBtYXR0ZXIg aWYKKwkgKiB0aGUgcGxhbm5lciBleGVjdXRlZCBhbiBhbGxlZ2VkbHktc3RhYmxlIGZ1bmN0aW9u IHRoYXQgY2hhbmdlZCB0aGUKKwkgKiBkYXRhYmFzZSBjb250ZW50cywgYnV0IGxldCdzIGRvIGl0 IGFueXdheSB0byBiZSBwYXJhbGxlbCB0byB0aGUgRVhQTEFJTgorCSAqIGNvZGUgcGF0aC4pCisJ ICovCisJUHVzaENvcGllZFNuYXBzaG90KEdldEFjdGl2ZVNuYXBzaG90KCkpOworCVVwZGF0ZUFj dGl2ZVNuYXBzaG90Q29tbWFuZElkKCk7CisKKwkvKiBDcmVhdGUgYSBRdWVyeURlc2MsIHJlZGly ZWN0aW5nIG91dHB1dCB0byBvdXIgdHVwbGUgcmVjZWl2ZXIgKi8KKwlxdWVyeURlc2MgPSBDcmVh dGVRdWVyeURlc2MocGxhbiwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCUdldEFjdGl2 ZVNuYXBzaG90KCksIEludmFsaWRTbmFwc2hvdCwKKwkJCQkJCQkJZGVzdCwgcGFyYW1zLCBxdWVy eUVudiwgMCk7CisKKwkvKiBjYWxsIEV4ZWN1dG9yU3RhcnQgdG8gcHJlcGFyZSB0aGUgcGxhbiBm b3IgZXhlY3V0aW9uICovCisJRXhlY3V0b3JTdGFydChxdWVyeURlc2MsIDApOworCisJLyoKKwkg KiBSdW4gdGhlIHBsYW4gdG8gY29tcGxldGlvbi4gVGhlIHJlc3VsdCBzaG91bGQgYmUgb25seSBv bmUgcm93LiBGb3IgYW4KKwkgKiBjaGVjayB0b29fbWFueV9yb3dzIHdlIG5lZWQgdG8gcmVhZCB0 d28gcm93cy4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRTY2FuRGlyZWN0 aW9uLCAyTCwgdHJ1ZSk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZlbiBh IHFjIHRvIGZpbGwgKi8KKwlpZiAocWMpCisJCVNldFF1ZXJ5Q29tcGxldGlvbihxYywgQ01EVEFH X0xFVCwgcXVlcnlEZXNjLT5lc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisKKwkvKiBhbmQgY2xlYW4g dXAgKi8KKwlFeGVjdXRvckZpbmlzaChxdWVyeURlc2MpOworCUV4ZWN1dG9yRW5kKHF1ZXJ5RGVz Yyk7CisKKwlGcmVlUXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CisKKwlQb3BBY3RpdmVTbmFwc2hvdCgp OworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9NYWtlZmlsZQppbmRleCAxMTExOGQwY2UwMi4uNzEyNDhhMzRmMjYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL01ha2VmaWxlCkBAIC03Niw2ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRv d0FnZy5vIFwKIAlub2RlV29ya3RhYmxlc2Nhbi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVj ZWl2ZXIubyBcCiAJdHF1ZXVlLm8gXAogCXRzdG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHByLmMKaW5kZXggOWI1MmJhYjUyZmMuLjNmZGQ5Y2I2MzAzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHByLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vz cy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVj dXRvci9leGVjRXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCiAjaW5j bHVkZSAiZnVuY2FwaS5oIgpAQCAtOTg4LDYgKzk4OSw0NyBAQCBFeGVjSW5pdEV4cHJSZWMoRXhw ciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCXNjcmF0Y2guZC5wYXJhbS5wYXJhbXR5 cGUgPSBwYXJhbS0+cGFyYW10eXBlOwogCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNj cmF0Y2gpOwogCQkJCQkJYnJlYWs7CisKKwkJCQkJY2FzZSBQQVJBTV9WQVJJQUJMRToKKwkJCQkJ CXsKKwkJCQkJCQlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSAwOworCQkJCQkJCVNl c3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7CisJCQkJCQkJ U2Vzc2lvblZhcmlhYmxlVmFsdWUgKnZhcjsKKworCQkJCQkJCWlmIChzdGF0ZS0+cGFyZW50ICYm IHN0YXRlLT5wYXJlbnQtPnN0YXRlKQorCQkJCQkJCXsKKwkJCQkJCQkJZXNfc2Vzc2lvbl92YXJp YWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJ CQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19u dW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJfQorCisJCQkJCQkJQXNzZXJ0KGVzX3Nlc3Np b25fdmFyaWFibGVzKTsKKworCQkJCQkJCS8qCisJCQkJCQkJICogVXNlIGJ1ZmZlcmVkIHNlc3Np b24gdmFyaWFibGVzIHdoZW4gdGhlCisJCQkJCQkJICogYnVmZmVyIHdpdGggY29waWVkIHZhbHVl cyBpcyBhdmFpYWJsZQorCQkJCQkJCSAqIChzdGFuZGFyZCBxdWVyeSBleGVjdXRvciBtb2RlKQor CQkJCQkJCSAqLworCisJCQkJCQkJLyogUGFyYW1ldGVyIHNhbml0eSBjaGVja3MuICovCisJCQkJ CQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJ CQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0gaXMgb3V0IG9m IHJhbmdlIik7CisKKwkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBh cmFtaWRdOworCisJCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJ CQkJCQkJZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUgaXMgZGlmZmVyZW50IHRo YW4gUEFSQU1fVkFSSUFCTEUgdHlwZSIpOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBJbiB0aGlz IGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCSAqIGNvbnN0YW50LgorCQkJCQkJ CSAqLworCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNo LmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZh bC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAm c2NyYXRjaCk7CisJCQkJCQl9CisJCQkJCQlicmVhazsKKwogCQkJCQljYXNlIFBBUkFNX0VYVEVS TjoKIAogCQkJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWlu LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDRkN2M5MmQ2M2MxLi5m MmZiNjgwZGVmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC00Myw3ICs0Myw5IEBACiAj aW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBs YW4uaCIKQEAgLTE5Niw2ICsxOTgsNTEgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURl c2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0 ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4 dDsKIAorCS8qCisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFy aWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVz IGFyZSBjb3BpZWQgdG8gZGVkaWNhdGVkIGFycmF5LCBhbmQgdGhpcyBhcnJheQorCSAqIGlzIHBh c3NlZCB0byBleGVjdXRvci4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKKwl7CisJCUxpc3RDZWxsICAgKmxjOworCQlpbnQJCQluU2Vzc2lvblZh cmlhYmxlczsKKwkJaW50CQkJaSA9IDA7CisKKwkJLyoKKwkJICogSW4gdGhpcyBjYXNlLCB0aGUg cXVlcnkgdXNlcyBzZXNzaW9uIHZhcmlhYmxlcywgYnV0IHdlIGhhdmUgdG8KKwkJICogcHJlcGFy ZSB0aGUgYXJyYXkgd2l0aCBwYXNzZWQgdmFsdWVzIChvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVz KQorCQkgKiBmaXJzdC4KKwkJICovCisJCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKwkJ blNlc3Npb25WYXJpYWJsZXMgPSBsaXN0X2xlbmd0aChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5z ZXNzaW9uVmFyaWFibGVzKTsKKworCQkvKiBDcmVhdGUgdGhlIGFycmF5IHVzZWQgZm9yIHBhc3Np bmcgdmFsdWVzIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJZXN0YXRlLT5lc19zZXNz aW9uX3ZhcmlhYmxlcyA9IChTZXNzaW9uVmFyaWFibGVWYWx1ZSAqKQorCQkJcGFsbG9jKG5TZXNz aW9uVmFyaWFibGVzICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwkJLyogRmls bCB0aGUgYXJyYXkgKi8KKwkJZm9yZWFjaChsYywgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKKwkJeworCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwkJCU9pZAkJCXZh cmlkID0gbGZpcnN0X29pZChsYyk7CisKKwkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhW YXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1NFTEVDVCk7CisJCQlp ZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3Vs dCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpKTsKKworCQkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS52YXJpZCA9IHZh cmlkOworCQkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS52YWx1ZSA9IEdldFNlc3Np b25WYXJpYWJsZSh2YXJpZCwKKwkJCQkJCQkJCQkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lv bl92YXJpYWJsZXNbaV0uaXNudWxsLAorCQkJCQkJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19z ZXNzaW9uX3ZhcmlhYmxlc1tpXS50eXBpZCk7CisKKwkJCWkrKzsKKwkJfQorCisJCWVzdGF0ZS0+ ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gblNlc3Npb25WYXJpYWJsZXM7CisJfQorCiAJLyoK IAkgKiBGaWxsIGluIHRoZSBxdWVyeSBlbnZpcm9ubWVudCwgaWYgYW55LCBmcm9tIHF1ZXJ5RGVz Yy4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKaW5kZXggYjUxMWE0MjlhZGYuLmI2NjYy YzZlOGZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAorKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZApAQCAtNjQsNiArNjQsNyBAQCBiYWNr ZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdub2RlV2luZG93QWdnLmMnLAogICAnbm9kZVdvcmt0 YWJsZXNjYW4uYycsCiAgICdzcGkuYycsCisgICdzdmFyaWFibGVSZWNlaXZlci5jJywKICAgJ3Rx dWV1ZS5jJywKICAgJ3RzdG9yZVJlY2VpdmVyLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2 YXJpYWJsZVJlY2VpdmVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu Ljc2Y2Q4YTBmYjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3Zh cmlhYmxlUmVjZWl2ZXIuYwpAQCAtMCwwICsxLDIwMSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoJICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBEZXN0 UmVjZWl2ZXIgdGhhdCBzdG9yZXMgdGhlIHJlc3VsdCB2YWx1ZSBpbgorICoJICBhIHNlc3Npb24g dmFyaWFibGUuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIK KyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKworI2luY2x1ZGUgImFjY2Vzcy9kZXRvYXN0LmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgor I2luY2x1ZGUgInN0b3JhZ2UvbG9jay5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK KworLyoKKyAqIFRoaXMgRGVzdFJlY2VpdmVyIGlzIHVzZWQgYnkgdGhlIExFVCBjb21tYW5kIGZv ciBzdG9yaW5nIHRoZSByZXN1bHQgdG8KKyAqIHNlc3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0 IGhhcyB0byBoYXZlIG9ubHkgb25lIHR1cGxlIHdpdGggb25seSBvbmUKKyAqIG5vdCBkZWxldGVk IGF0dHJpYnV0ZS4gIFRoZSByb3cgY291bnRlciAoZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRl ZAorICogYWZ0ZXIgcmVjZWl2aW5nIG9mIGFueSByb3csIGFuZCB0aGUgZXJyb3IgaXMgcmFpc2Vk IHdoZW4gdGhlcmUgYXJlIG5vIHJvd3MKKyAqIG9yIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHJl Y2VpdmVkIHJvd3MuICBCZWNhdXNlIHJlY2VpdmVkIHR1cGxlIGNhbiBoYXZlCisgKiBkZWxldGVk IGF0dHJpYnV0ZXMsIHdlIG5lZWQgdG8gZmluZCB3aXJzdCBub3QgZGVsZXRlZCBhdHRyaWJ1dGUK KyAqIChmaWVsZCAic2xvdF9vZmZzZXQiKS4gVGhlIHZhbHVlIGlzIGRldG9hc3RlZCBiZWZvcmUg c3RvcmluZyB0byBzZXNzaW9uCisgKiB2YXJpYWJsZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QKK3sK KwlEZXN0UmVjZWl2ZXIgcHViOworCU9pZAkJCXZhcmlkOworCWJvb2wJCW5lZWRfZGV0b2FzdDsJ CS8qIHdlIG5lZWQgZGV0b2FzdCBhdHRyPyAqLworCWludAkJCXNsb3Rfb2Zmc2V0OwkJLyogcG9z aXRpb24gb2Ygbm90IGRlbGV0ZWQgYXR0ciAqLworCWludAkJCXJvd3M7CQkJCS8qIHJvdyBjb3Vu dGVyICovCit9IFNWYXJpYWJsZVN0YXRlOworCisvKgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1 cGxlcyBmcm9tIGV4ZWN1dG9yLgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJl Y2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVp bmZvKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNl bGY7CisJaW50CQkJbmF0dHMgPSB0eXBlaW5mby0+bmF0dHM7CisJaW50CQkJb3V0Y29scyA9IDA7 CisJaW50CQkJaTsKKwlMT0NLVEFHCQlsb2NrdGFnIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsK KworCUFzc2VydChteVN0YXRlLT5wdWIubXlkZXN0ID09IERlc3RWYXJpYWJsZSk7CisJQXNzZXJ0 KE9pZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQoU2VhcmNoU3lzQ2FjaGVFeGlz dHMxKFZBUklBQkxFT0lELCBteVN0YXRlLT52YXJpZCkpOworCisjaWZkZWYgVVNFX0FTU0VSVF9D SEVDS0lORworCisJU0VUX0xPQ0tUQUdfT0JKRUNUKGxvY2t0YWcsCisJCQkJCSAgIE15RGF0YWJh c2VJZCwKKwkJCQkJICAgVmFyaWFibGVSZWxhdGlvbklkLAorCQkJCQkgICBteVN0YXRlLT52YXJp ZCwKKwkJCQkJICAgMCk7CisKKwlBc3NlcnQoTG9ja0hlbGRCeU1lKCZsb2NrdGFnLCBBY2Nlc3NT aGFyZUxvY2ssIGZhbHNlKSk7CisKKyNlbmRpZgorCisJZm9yIChpID0gMDsgaSA8IG5hdHRzOyBp KyspCisJeworCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBlaW5m bywgaSk7CisJCU9pZAkJCXR5cGlkOworCQlPaWQJCQljb2xsaWQ7CisJCWludDMyCQl0eXBtb2Q7 CisKKwkJaWYgKGF0dHItPmF0dGlzZHJvcHBlZCkKKwkJCWNvbnRpbnVlOworCisJCWlmICgrK291 dGNvbHMgPiAxKQorCQkJY29udGludWU7CisKKwkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90 eXBtb2RfY29sbGlkKG15U3RhdGUtPnZhcmlkLAorCQkJCQkJCQkJCQkJJnR5cGlkLAorCQkJCQkJ CQkJCQkJJnR5cG1vZCwKKwkJCQkJCQkJCQkJCSZjb2xsaWQpOworCisJCS8qCisJCSAqIGRvdWJs ZSBjaGVjayAtIHRoZSB0eXBlIGFuZCB0eXBtb2Qgb2YgdGFyZ2V0IHZhcmlhYmxlIHNob3VsZCBi ZQorCQkgKiBzYW1lIGFzIHR5cGUgYW5kIHR5cG1vZCBvZiBhc3NpZ25tZW50IGV4cHJlc3Npb24u IEl0IHNob3VsZCBiZSwgdGhlCisJCSAqIGV4cHJlc3Npb24gaXMgd3JhcHBlZCBieSBjYXN0IHRv IHRhcmdldCB0eXBlIGFuZCB0eXBtb2QuCisJCSAqLworCQlpZiAoYXR0ci0+YXR0dHlwaWQgIT0g dHlwaWQgfHwKKwkJCShhdHRyLT5hdHR0eXBtb2QgPj0gMCAmJgorCQkJIGF0dHItPmF0dHR5cG1v ZCAhPSB0eXBtb2QpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInRhcmdldCBzZXNzaW9uIHZhcmlhYmxl IGlzIG9mIHR5cGUgJXMiCisJCQkJCQkJIiBidXQgZXhwcmVzc2lvbiBpcyBvZiB0eXBlICVzIiwK KwkJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QodHlwaWQsIHR5cG1vZCksCisJCQkJCQkJ Zm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKGF0dHItPmF0dHR5cGlkLAorCQkJCQkJCQkJCQkJCSBh dHRyLT5hdHR0eXBtb2QpKSkpOworCisJCW15U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0 dGxlbiA9PSAtMTsKKwkJbXlTdGF0ZS0+c2xvdF9vZmZzZXQgPSBpOworCX0KKworCWlmIChvdXRj b2xzICE9IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJu ZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVk ICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIG91dGNvbHMsCisJCQkJCQkJICAgb3V0Y29scykpKTsK KworCW15U3RhdGUtPnJvd3MgPSAwOworfQorCisvKgorICogUmVjZWl2ZSBhIHR1cGxlIGZyb20g dGhlIGV4ZWN1dG9yIGFuZCBzdG9yZSBpdCBpbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0 aWMgYm9vbAorc3ZhcmlhYmxlUmVjZWl2ZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIERlc3RS ZWNlaXZlciAqc2VsZikKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVT dGF0ZSAqKSBzZWxmOworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisJYm9vbAkJZnJl ZXZhbCA9IGZhbHNlOworCisJLyogTWFrZSBzdXJlIHRoZSB0dXBsZSBpcyBmdWxseSBkZWNvbnN0 cnVjdGVkICovCisJc2xvdF9nZXRhbGxhdHRycyhzbG90KTsKKworCXZhbHVlID0gc2xvdC0+dHRz X3ZhbHVlc1tteVN0YXRlLT5zbG90X29mZnNldF07CisJaXNudWxsID0gc2xvdC0+dHRzX2lzbnVs bFtteVN0YXRlLT5zbG90X29mZnNldF07CisKKwlpZiAobXlTdGF0ZS0+bmVlZF9kZXRvYXN0ICYm ICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFMKERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpKQor CXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oZGV0b2FzdF9leHRlcm5hbF9hdHRyKChzdHJ1 Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAgRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkpOwor CQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0YXRlLT5yb3dzICs9IDE7CisKKwlpZiAobXlT dGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9U T09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhh biBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZShteVN0YXRlLT52YXJpZCwgdmFs dWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHZh bHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFuIHVwIGF0IGVuZCBvZiBh biBleGVjdXRvciBydW4KKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZVNodXRkb3duUmVjZWl2 ZXIoRGVzdFJlY2VpdmVyICpzZWxmKQoreworCWlmICgoKFNWYXJpYWJsZVN0YXRlICopIHNlbGYp LT5yb3dzID09IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OT19E QVRBX0ZPVU5EKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MiKSkp OworfQorCisvKgorICogRGVzdHJveSByZWNlaXZlciB3aGVuIGRvbmUgd2l0aCBpdAorICovCitz dGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikK K3sKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIEluaXRpYWxseSBjcmVhdGUgYSBEZXN0UmVj ZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIgKgorQ3JlYXRlVmFyaWFibGVEZXN0UmVj ZWl2ZXIoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVN0YXRlICpzZWxmID0gKFNWYXJpYWJsZVN0 YXRlICopIHBhbGxvYzAoc2l6ZW9mKFNWYXJpYWJsZVN0YXRlKSk7CisKKwlzZWxmLT5wdWIucmVj ZWl2ZVNsb3QgPSBzdmFyaWFibGVSZWNlaXZlU2xvdDsKKwlzZWxmLT5wdWIuclN0YXJ0dXAgPSBz dmFyaWFibGVTdGFydHVwUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJTaHV0ZG93biA9IHN2YXJpYWJs ZVNodXRkb3duUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJEZXN0cm95ID0gc3ZhcmlhYmxlRGVzdHJv eVJlY2VpdmVyOworCXNlbGYtPnB1Yi5teWRlc3QgPSBEZXN0VmFyaWFibGU7CisKKwlzZWxmLT52 YXJpZCA9IHZhcmlkOworCisJcmV0dXJuIChEZXN0UmVjZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMKaW5kZXggZDJlMmFmNGY4MTEuLjA3ZmUwNWRlYWZlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwpAQCAtNDMyOCw2ICs0MzI4LDE2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2Vy X2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJ Y2FzZSBUX0xldFN0bXQ6CisJCQl7CisJCQkJTGV0U3RtdCAgICAqc3RtdCA9IChMZXRTdG10ICop IG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzdG10LT50YXJnZXQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsK KwkJCQlpZiAoV0FMSyhzdG10LT5xdWVyeSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJ YnJlYWs7CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CiAJCQl7CiAJCQkJUExBc3NpZ25TdG10ICpz dG10ID0gKFBMQXNzaWduU3RtdCAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jCmluZGV4IDk0OGFmZDkwOTQ4Li4yMzBhZDFhOWEzYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3BsYW5uZXIuYwpAQCAtMzIzLDYgKzMyMyw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkg KnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCWds b2ItPmxhc3RQbGFuTm9kZUlkID0gMDsKIAlnbG9iLT50cmFuc2llbnRQbGFuID0gZmFsc2U7CiAJ Z2xvYi0+ZGVwZW5kc09uUm9sZSA9IGZhbHNlOworCWdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBO SUw7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUgdG8gdXNlIHBhcmFs bGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NTcsNiArNTU4LDcgQEAgc3RhbmRhcmRf cGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNv ck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2ItPnBhcmFtRXhlY1R5cGVz OwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBidXQgd2UgbWlnaHQgYXMgd2VsbCBj b3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBhcnNlLT51dGlsaXR5U3RtdDsKKwly ZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBnbG9iLT5zZXNzaW9uVmFyaWFibGVzOwogCXJlc3Vs dC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJlc3VsdC0+c3RtdF9s ZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTcyNyw2ICs3MjksMTIgQEAgc3VicXVlcnlfcGxh bm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2UsIFBsYW5uZXJJbmZvICpwYXJl bnRfcm9vdCwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAKKwkvKgorCSAqIENo ZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBzZXNzaW9uIHZhcmlhYmxlLiBGbGFnIGhhc1Nlc3Np b25WYXJpYWJsZXMKKwkgKiBzaG91bGQgYmUgdHJ1ZSBpZiBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5 IHVzZXMgYW55IHNlc3Npb24gdmFyaWFibGUuCisJICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92 YXJpYWJsZXMocm9vdCk7CisKIAkvKgogCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxM IHF1ZXJ5LCBmbGF0dGVuIGl0IGludG8gYW4gYXBwZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93 IGJlY2F1c2UgaXQgcmVxdWlyZXMgYXBwbHlpbmcgcHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBs ZWFmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggN2FlZDg0NTg0YzYuLjNm MzY2OTdmNjY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZz LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yMDksNyAr MjA5LDkgQEAgc3RhdGljIExpc3QgKnNldF9yZXR1cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxh bm5lckluZm8gKnJvb3QsCiBzdGF0aWMgTGlzdCAqc2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25f cmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNv bmRpdGlvbiwKIAkJCQkJCQkJCQkJCSAgIFBsYW4gKnBsYW4pOwotCitzdGF0aWMgYm9vbCBwdWxs X3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJ CSBQbGFubmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwogCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqCkBAIC0xMzA4LDYgKzEzMTAsNTAgQEAgc2V0X3BsYW5fcmVmcyhQbGFubmVy SW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0b2Zmc2V0KQogCXJldHVybiBwbGFuOwogfQog CisvKgorICogU2VhcmNoIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHN1YnF1ZXJpZXMK KyAqLwordm9pZAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8gKnJv b3QpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gcm9vdC0+cGFyc2U7CisKKwlpZiAocXVlcnktPmhh c1Nlc3Npb25WYXJpYWJsZXMpCisJeworCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1 ZTsKKwl9CisJZWxzZQorCXsKKwkJKHZvaWQpIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAorCQkJ CQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZv aWQgKikgcm9vdCwgMCk7CisJfQorfQorCitzdGF0aWMgYm9vbAorcHVsbF91cF9oYXNfc2Vzc2lv bl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpyb290KQoreworCWlm IChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoSXNBKG5vZGUsIFF1ZXJ5KSkK Kwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IChRdWVyeSAqKSBub2RlOworCisJCWlmIChxdWVyeS0+ aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQkvKiBSZWN1cnNlIGludG8gc3Vic2Vs ZWN0cyAqLworCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCisJCQkJ CQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9p ZCAqKSByb290LCAwKTsKKwl9CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwg cHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgICh2b2lkICop IHJvb3QpOworfQorCiAvKgogICogc2V0X2luZGV4b25seXNjYW5fcmVmZXJlbmNlcwogICoJCURv IHNldF9wbGFuX3JlZmVyZW5jZXMgcHJvY2Vzc2luZyBvbiBhbiBJbmRleE9ubHlTY2FuCkBAIC0x OTU2LDggKzIwMDIsOSBAQCBjb3B5VmFyKFZhciAqdmFyKQogICogVGhpcyBpcyBjb2RlIHRoYXQg aXMgY29tbW9uIHRvIGFsbCB2YXJpYW50cyBvZiBleHByZXNzaW9uLWZpeGluZy4KICAqIFdlIG11 c3QgbG9vayB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5v ZGVzLAogICogYWRkIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmds b2ItPnJlbGF0aW9uT2lkcywgYW5kCi0gKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVm aW5lZCBmdW5jdGlvbnMgaW50byByb290LT5nbG9iLT5pbnZhbEl0ZW1zLgotICogV2UgYWxzbyBm aWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKSBleHByZXNzaW9ucy4KKyAq IGFkZCBQbGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBhbmQgc2Vzc2lv biB2YXJpYWJsZXMgaW50bworICogcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4gIFdlIGFsc28gZmls bCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkKKyAqIGV4cHJlc3Npb25zLgog ICoKICAqIFdlIGFzc3VtZSBpdCdzIG9rYXkgdG8gdXBkYXRlIG9wY29kZSBpbmZvIGluLXBsYWNl LiAgU28gdGhpcyBjb3VsZCBwb3NzaWJseQogICogc2NyaWJibGUgb24gdGhlIHBsYW5uZXIncyBp bnB1dCBkYXRhIHN0cnVjdHVyZXMsIGJ1dCBpdCdzIE9LLgpAQCAtMjA0NywxNSArMjA5NCwyOCBA QCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJCQkJZy0+ Y29scyA9IGNvbHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJ CVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQ QVJBTV9WQVJJQUJMRSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3kocm9vdCwg cC0+cGFyYW12YXJpZCk7CisJfQogfQogCiAvKgogICogZml4X3BhcmFtX25vZGUKICAqCQlEbyBz ZXRfcGxhbl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24gYSBQYXJhbQorICoJCUNvbGxlY3Qgc2Vz c2lvbiB2YXJpYWJsZXMgbGlzdCBhbmQgcmVwbGFjZSB2YXJpYWJsZSBvaWQgYnkKKyAqCQlpbmRl eCB0byBjb2xsZWN0ZWQgbGlzdC4KICAqCiAgKiBJZiBpdCdzIGEgUEFSQU1fTVVMVElFWFBSLCBy ZXBsYWNlIGl0IHdpdGggdGhlIGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAqIHJvb3QtPm11bHRp ZXhwcl9wYXJhbXM7IG90aGVyd2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgogICogSnVzdCBmb3Ig cGFyYW5vaWEncyBzYWtlLCB3ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBpbiBlaXRoZXIgY2Fz ZS4KKyAqCisgKiBJZiBpdCdzIGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2UgY29sbGVjdCB1c2Vk IHNlc3Npb24gdmFyaWFibGVzIGluCisgKiBsaXN0IHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJs ZS4gV2Ugc2hvdWxkIGFzc2lnbiBQYXJhbSBwYXJhbXZhcmlkCisgKiB0b28sIGFuZCBpdCBpcyBw b3NpdGlvbiBvZiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUgaW4gbWVudGlvbmVkIGxpc3QuCiAg Ki8KIHN0YXRpYyBOb2RlICoKIGZpeF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJh bSAqcCkKQEAgLTIwNzQsNiArMjEzNCw0MSBAQCBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAq cm9vdCwgUGFyYW0gKnApCiAJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBQQVJBTV9NVUxUSUVY UFIgSUQ6ICVkIiwgcC0+cGFyYW1pZCk7CiAJCXJldHVybiBjb3B5T2JqZWN0KGxpc3RfbnRoKHBh cmFtcywgY29sbm8gLSAxKSk7CiAJfQorCisJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJ QUJMRSkKKwl7CisJCUxpc3RDZWxsICAgKmxjOworCQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91 bmQgPSBmYWxzZTsKKworCQkvKiBXZSB3aWxsIG1vZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJh bSAqKSBjb3B5T2JqZWN0KHApOworCisJCS8qCisJCSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBs aXN0IG9mIHNlc3Npb24gdmFyaWFibGVzLCBhbmQgd2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFt aWQgcGFyYW1ldGVyLgorCQkgKi8KKwkJZm9yZWFjaChsYywgcm9vdC0+Z2xvYi0+c2Vzc2lvblZh cmlhYmxlcykKKwkJeworCQkJaWYgKGxmaXJzdF9vaWQobGMpID09IHAtPnBhcmFtdmFyaWQpCisJ CQl7CisJCQkJcC0+cGFyYW1pZCA9IG47CisJCQkJZm91bmQgPSB0cnVlOworCQkJCWJyZWFrOwor CQkJfQorCQkJbiArPSAxOworCQl9CisKKwkJaWYgKCFmb3VuZCkKKwkJeworCQkJcm9vdC0+Z2xv Yi0+c2Vzc2lvblZhcmlhYmxlcyA9IGxhcHBlbmRfb2lkKHJvb3QtPmdsb2ItPnNlc3Npb25WYXJp YWJsZXMsCisJCQkJCQkJCQkJCQkJICAgcC0+cGFyYW12YXJpZCk7CisJCQlwLT5wYXJhbWlkID0g bjsKKwkJfQorCisJCXJldHVybiAoTm9kZSAqKSBwOworCX0KKwogCXJldHVybiAoTm9kZSAqKSBj b3B5T2JqZWN0KHApOwogfQogCkBAIC0yMTM1LDcgKzIyMzAsMTAgQEAgZml4X2FsdGVybmF0aXZl X3N1YnBsYW4oUGxhbm5lckluZm8gKnJvb3QsIEFsdGVybmF0aXZlU3ViUGxhbiAqYXNwbGFuLAog ICogcmVwbGFjaW5nIEFnZ3JlZiBub2RlcyB0aGF0IHNob3VsZCBiZSByZXBsYWNlZCBieSBpbml0 cGxhbiBvdXRwdXQgUGFyYW1zLAogICogY2hvb3NpbmcgdGhlIGJlc3QgaW1wbGVtZW50YXRpb24g Zm9yIEFsdGVybmF0aXZlU3ViUGxhbnMsCiAgKiBsb29raW5nIHVwIG9wZXJhdG9yIG9wY29kZSBp bmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCi0gKiBhbmQgYWRkaW5nIE9JRHMgZnJv bSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcy4KKyAq IGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5y ZWxhdGlvbk9pZHMsCisgKiBhbmQgYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFC TEUgcGFyYW1zLCBhbmQgY29sbGVjdGluZworICogb2YgT0lEcyBvZiBzZXNzaW9uIHZhcmlhYmxl cyBpbiByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZhcmlkIGlz IGFuIHBvc2l0aW9uIG9mIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3QpLgog ICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9mZnNl dCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIxNTcsNyArMjI1NSw4IEBA IGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9mZnNl dCwgZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8fAog CQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9IE5J TCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRlcm5h dGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlyZXR1 cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNTIwLDYg KzM2MTksMjUgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290 LCBPaWQgdHlwaWQpCiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNz aW9uIHZhcmlhYmxlLiBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICogc2Vzc2lvbiB2 YXJpYWJsZSBpbiBleHByZXNzaW9uIGxpc3QsIG9yIHRhcmdldCBvZiBMRVQgc3RhdGVtZW50Lgor ICovCitzdGF0aWMgdm9pZAorcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVy SW5mbyAqcm9vdCwgT2lkIHZhcmlkKQoreworCVBsYW5JbnZhbEl0ZW0gKmludmFsX2l0ZW0gPSBt YWtlTm9kZShQbGFuSW52YWxJdGVtKTsKKworCS8qIHBhcmFtaWQgaXMgc3RpbGwgc2Vzc2lvbiB2 YXJpYWJsZSBpZCAqLworCWludmFsX2l0ZW0tPmNhY2hlSWQgPSBWQVJJQUJMRU9JRDsKKwlpbnZh bF9pdGVtLT5oYXNoVmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJ CQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCS8qIEFwcGVuZCB0aGlz IHZhcmlhYmxlIHRvIGdsb2JhbCwgcmVnaXN0ZXIgZGVwZW5kZW5jeSAqLworCXJvb3QtPmdsb2It PmludmFsSXRlbXMgPSBsYXBwZW5kKHJvb3QtPmdsb2ItPmludmFsSXRlbXMsCisJCQkJCQkJCQkg aW52YWxfaXRlbSk7Cit9CisKIC8qCiAgKiBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcwogICoJ CUdpdmVuIGEgcmV3cml0dGVuLCBidXQgbm90IHlldCBwbGFubmVkLCBxdWVyeSBvciBxdWVyaWVz CkBAIC0zNjA1LDkgKzM3MjMsOSBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIo Tm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQl9CiAKIAkJCS8qCi0JCQkgKiBJ Z25vcmUgb3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQ TEFJTikKLQkJCSAqIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnku ICBGb3IgdGhvc2UsIHdlCi0JCQkgKiBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlv biB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgorCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3Rh dGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExBSU4KKwkJCSAqIG9yIExFVCkgdGhh dCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwKKwkJ CSAqIHdlIGp1c3QgbmVlZCB0byB0cmFuc2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWlu ZWQgcXVlcnkuCiAJCQkgKi8KIAkJCXF1ZXJ5ID0gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXVlcnkt PnV0aWxpdHlTdG10KTsKIAkJCWlmIChxdWVyeSA9PSBOVUxMKQpAQCAtMzYzMCw2ICszNzQ4LDEw IEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVy SW5mbyAqY29udGV4dCkKIAkJCQkJbGFwcGVuZF9vaWQoY29udGV4dC0+Z2xvYi0+cmVsYXRpb25P aWRzLCBydGUtPnJlbGlkKTsKIAkJfQogCisJCS8qIFJlY29yZCBkZXBlbmRlbmN5IG9uIHRhcmdl ciB2YXJpYWJsZSBvZiBMRVQgY29tbWFuZCAqLworCQlpZiAoT2lkSXNWYWxpZChxdWVyeS0+cmVz dWx0VmFyaWFibGUpKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShjb250ZXh0 LCBxdWVyeS0+cmVzdWx0VmFyaWFibGUpOworCiAJCS8qIEFuZCByZWN1cnNlIGludG8gdGhlIHF1 ZXJ5J3Mgc3ViZXhwcmVzc2lvbnMgKi8KIAkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5 LCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIsCiAJCQkJCQkJCSAodm9pZCAqKSBj b250ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBq b2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKaW5k ZXggOTY5ZTI1N2Y3MGIuLmEyMmVhMDM3Mjk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJl cC9wcmVwam9pbnRyZWUuYwpAQCAtMTMxNCw2ICsxMzE0LDkgQEAgcHVsbF91cF9zaW1wbGVfc3Vi cXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxFbnRyeSAqcnRl LAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlvbnMsIG5vdyBtYWluIHF1ZXJ5 IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9IHN1YnF1ZXJ5LT5oYXNSb3dT ZWN1cml0eTsKIAorCS8qIElmIHN1YnF1ZXJ5IGhhZCBzZXNzaW9uIHZhcmlhYmxlcywgbm93IG1h aW4gcXVlcnkgZG9lcyB0b28gKi8KKwlwYXJzZS0+aGFzU2Vzc2lvblZhcmlhYmxlcyB8PSBzdWJx dWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCS8qCiAJICogc3VicXVlcnkgd29uJ3QgYmUg cHVsbGVkIHVwIGlmIGl0IGhhc0FnZ3MsIGhhc1dpbmRvd0Z1bmNzLCBvcgogCSAqIGhhc1Rhcmdl dFNSRnMsIHNvIG5vIHdvcmsgbmVlZGVkIG9uIHRob3NlIGZsYWdzCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9jbGF1c2VzLmMKaW5kZXggYjRlMDg1ZTlkNGIuLjFiMWZiNmVjZjgxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9y L2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTkzNSw2ICs5MzYsMTMgQEAg bWF4X3BhcmFsbGVsX2hhemFyZF93YWxrZXIoTm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVsX2hhemFy ZF9jb250ZXh0ICpjb250ZXh0KQogCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4pCiAJCQlyZXR1cm4gZmFsc2U7CiAKKwkJLyogV2UgZG9lc24ndCBzdXBwb3J0IHBhc3Npbmcg c2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9wYXJhbGxlbF9oYXphcmRfdGVzdChQ Uk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQor CiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwKIAkJCSFsaXN0X21lbWJl cl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJhbWlkKSkKIAkJewpAQCAt MjM4OSw2ICsyMzk3LDcgQEAgY29udmVydF9zYW9wX3RvX2hhc2hlZF9zYW9wX3dhbGtlcihOb2Rl ICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBvZiB0aGUgUGFyYW0uCiAgKiAyLiBG b2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1bmN0aW9ucyB0byBjb25zdGFudHMu CiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMgdG8gdGhlaXIgY29udGFpbmVkIGV4 cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGNhbiBi ZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwog Tm9kZSAqCkBAIC0yNTE1LDYgKzI1MjQsMjkgQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRh dG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9CisJCQkJZWxzZSBpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgorCQkJCQkJIGNvbnRleHQtPmVzdGlt YXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJCQkJYm9vbAkJdHlwQnlWYWw7CisJ CQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7CisKKwkJCQkJZ2V0X3R5cGxlbmJ5 dmFsKHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJ CQkJCXB2YWwgPSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKHBhcmFtLT5wYXJhbXZh cmlkLAorCQkJCQkJCQkJCQkJCQkgICAmaXNudWxsLAorCQkJCQkJCQkJCQkJCQkgICBwYXJhbS0+ cGFyYW10eXBlKTsKKworCQkJCQlyZXR1cm4gKE5vZGUgKikgbWFrZUNvbnN0KHBhcmFtLT5wYXJh bXR5cGUsCisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFtdHlwbW9kLAorCQkJCQkJCQkJCQkgIHBh cmFtLT5wYXJhbWNvbGxpZCwKKwkJCQkJCQkJCQkJICAoaW50KSB0eXBMZW4sCisJCQkJCQkJCQkJ CSAgcHZhbCwKKwkJCQkJCQkJCQkJICBpc251bGwsCisJCQkJCQkJCQkJCSAgdHlwQnlWYWwpOwor CQkJCX0KIAogCQkJCS8qCiAJCQkJICogTm90IHJlcGxhY2VhYmxlLCBzbyBqdXN0IGNvcHkgdGhl IFBhcmFtIChubyBuZWVkIHRvCkBAIC00NzA2LDcgKzQ3MzgsOCBAQCBpbmxpbmVfZnVuY3Rpb24o T2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJcXVlcnl0 cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJcXVlcnl0 cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCWxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlz dCkgIT0gMSkKKwkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkgfHwK KwkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlnb3RvIGZhaWw7CiAKIAkvKiBJ ZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGNvbXBvc2l0ZSwgcmVzb2x2ZSBpdCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMKaW5kZXggMjhmZWQ5ZDg3ZjYuLjJjMGE2NmZiMmNjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMKQEAgLTI1LDkgKzI1LDEyIEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUg ImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVz L25vZGVGdW5jcy5oIgpAQCAtNTAsNiArNTMsNyBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRy ZWUuaCIKICNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxz L2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRp bHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIApAQCAtODIsNiArODYsOCBA QCBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkJCQkJCQkgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5 ICp0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxTdG10 ICpzdG10KTsKK3N0YXRpYyBRdWVyeSAqdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsCisJCQkJCQkJICAgTGV0U3RtdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Mb2Nr aW5nQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAgTG9j a2luZ0NsYXVzZSAqbGMsIGJvb2wgcHVzaGVkRG93bik7CiAjaWZkZWYgUkFXX0VYUFJFU1NJT05f Q09WRVJBR0VfVEVTVApAQCAtMzI1LDYgKzMzMSw3IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCWNhc2UgVF9VcGRhdGVTdG10OgogCQljYXNl IFRfRGVsZXRlU3RtdDoKIAkJY2FzZSBUX01lcmdlU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJ CQkodm9pZCkgdGVzdF9yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRyZWUsIE5VTEwpOwog CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC00MDMsNiArNDEwLDExIEBAIHRyYW5zZm9ybVN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAoQ2FsbFN0 bXQgKikgcGFyc2VUcmVlKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcmVz dWx0ID0gdHJhbnNmb3JtTGV0U3RtdChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10ICopIHBh cnNlVHJlZSk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNDU0LDYgKzQ2 Niw3IEBAIHN0bXRfcmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQog CQljYXNlIFRfU2VsZWN0U3RtdDoKIAkJY2FzZSBUX1JldHVyblN0bXQ6CiAJCWNhc2UgVF9QTEFz c2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJCWJyZWFr OwogCkBAIC01NjIsNiArNTc1LDcgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpw c3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+ cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFy Z2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nl c3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2ln bl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtOTg4LDYgKzEwMDIsNyBAQCB0 cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3RtdCkK IAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+ aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlf Y29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE0NTMsNiArMTQ2OCw3IEBAIHRyYW5zZm9y bVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+ aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJn ZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRl LT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nl c3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpA QCAtMTY3OSwxMiArMTY5NSwyNDcgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHBy KHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRl LT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9o YXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBx cnkpOwogCiAJcmV0dXJuIHFyeTsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQorICoJ ICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJhbnNm b3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVlcnkJ ICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxpc3QgPSBOSUw7 CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCUxpc3RD ZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxlY3RRdWVyeTsK KwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3Vu aXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7 CisJT2lkCQkJY29sbGlkOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJTGlzdAkgICAqbmFtZXMg PSBOVUxMOworCWludAkJCWluZGlyZWN0aW9uX3N0YXJ0OworCWludAkJCWkgPSAwOworCisJLyog VGhlcmUgY2FuJ3QgYmUgYW55IG91dGVyIFdJVEggdG8gd29ycnkgYWJvdXQgKi8KKwlBc3NlcnQo cHN0YXRlLT5wX2N0ZW5hbWVzcGFjZSA9PSBOSUwpOworCisJbmFtZXMgPSBOYW1lc0Zyb21MaXN0 KHN0bXQtPnRhcmdldCk7CisKKwkvKgorCSAqIFRoZSBBY2Nlc3NTaGFyZUxvY2sgaXMgY3JlYXRl ZCBvbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUuIFRoZSBsb2NrCisJICogd2lsbCBiZSBrZXB0 IGZvciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisJICovCisJdmFyaWQgPSBJZGVudGlmeVZhcmlh YmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisJaWYgKG5vdF91bmlx dWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFS QU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wiIG9mIExFVCBjb21tYW5kIGlzIGFt YmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSksCisJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJaWYgKCFPaWRJc1ZhbGlk KHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5F RF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3Qg ZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAorCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCS8qCisJICogQ2FsY3VsYXRl IHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGluZGlyZWN0aW9uIGluIGxpc3QsIGFu ZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBzdG9yZSBwb2ludGVyIG9uIGZpcnN0 IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJlY3Rpb25fc3RhcnQgPSBsaXN0X2xl bmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJaWYgKGxpc3RfbGVuZ3RoKHN0bXQt PnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5kaXJlY3Rpb25faGVhZCA9IGxpc3Rf bnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9zdGFydCk7CisKKwlnZXRfc2Vzc2lv bl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwgJmNv bGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0eXBlKHR5cGlkKTsKKworCWlmIChh dHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJ0eXBlIFwiJXNcIiBvZiB0 YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUi LAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1l KGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBzdG10LT5sb2NhdGlvbikpKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFj bHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpF Q1RfVkFSSUFCTEUsIE5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKTsKKworCS8qCisJICogVGhlIGJl aGF2aW9yIG9mIEVYUFJfS0lORF9MRVRfVEFSR0VUIGlzIGFsbW9zdCBzYW1lIGxpa2UKKwkgKiBF WFBSX0tJTkRfVVBEQVRFX1RBUkdFVC4gRVhQUl9LSU5EX0xFVF9UQVJHRVQgd2FzIGludHJvZHVj ZWQgdG8gYmUKKwkgKiBwb3NzaWJsZSB0byByYWlzZSBtb3JlIGNvcnJlY3QgZXJyb3JzLCB3aGVy ZSB0aGUgY29tbWFuZCBMRVQgaXMKKwkgKiBtZW50aW9uZWQgKGluc3RlYWQgVVBEQVRFIGNvbW1h bmQpLgorCSAqLworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfTEVUX1RBUkdFVDsK KworCS8qIFdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lvbiBvZiB1bmtub3duLXR5cGUgdG8g dGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0gZmFsc2U7CisKKwlzZWxlY3RR dWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5xdWVyeSk7CisKKwkvKiBUaGUgZ3Jh bW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAqLworCUFzc2VydChJc0Eoc2VsZWN0 UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7 CisKKwkvKi0tLS0tLS0tLS0KKwkgKiBHZW5lcmF0ZSBhbiBleHByZXNzaW9uIGxpc3QgZm9yIHRo ZSBMRVQgdGhhdCBzZWxlY3RzIGFsbCB0aGUKKwkgKiBub24tcmVzanVuayBjb2x1bW5zIGZyb20g dGhlIHN1YnF1ZXJ5LgorCSAqLS0tLS0tLS0tLQorCSAqLworCWV4cHJMaXN0ID0gTklMOworCWZv cmVhY2gobGMsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJVGFyZ2V0RW50cnkgKnRs ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCisJCWlmICh0bGUtPnJlc2p1bmspCisJ CQljb250aW51ZTsKKworCQlleHByTGlzdCA9IGxhcHBlbmQoZXhwckxpc3QsIHRsZS0+ZXhwcik7 CisJfQorCisJLyogZG9uJ3QgYWxsb3cgbXVsdGljb2x1bW4gcmVzdWx0ICovCisJaWYgKGxpc3Rf bGVuZ3RoKGV4cHJMaXN0KSAhPSAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnX3BsdXJhbCgiYXNzaWdubWVudCBleHBy ZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbiIsCisJCQkJCQkJICAgImFzc2lnbm1lbnQgZXhwcmVz c2lvbiByZXR1cm5lZCAlZCBjb2x1bW5zIiwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlz dCksCisJCQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxpc3QpKSwKKwkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAqKSBleHByTGlzdCkp KSk7CisKKwlleHByTGlzdENvZXIgPSBOSUw7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdCkKKwl7 CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlFeHByCSAgICpjb2Vy Y2VkX2V4cHI7CisJCVBhcmFtCSAgICpwYXJhbTsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8q IG5vdyB3ZSBjYW4gcmVhZCB0eXBlIG9mIGV4cHJlc3Npb24gKi8KKwkJZXhwcnR5cGlkID0gZXhw clR5cGUoKE5vZGUgKikgZXhwcik7CisKKwkJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisJCXBh cmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwkJcGFyYW0tPnBhcmFtdmFyaWQgPSB2 YXJpZDsKKwkJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCQlwYXJhbS0+cGFyYW10eXBtb2Qg PSB0eXBtb2Q7CisKKwkJaWYgKGluZGlyZWN0aW9uX2hlYWQpCisJCXsKKwkJCWJvb2wJCXRhcmdl dElzQXJyYXk7CisJCQljaGFyCSAgICp0YXJnZXROYW1lOworCisJCQl0YXJnZXROYW1lID0gZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCk7CisJCQl0YXJnZXRJc0FycmF5ID0gT2lkSXNW YWxpZChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSk7CisKKwkJCXBzdGF0ZS0+cF9oYXNTZXNzaW9u VmFyaWFibGVzID0gdHJ1ZTsKKworCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQl0cmFu c2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkgICAoTm9kZSAq KSBwYXJhbSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0TmFtZSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0 SXNBcnJheSwKKwkJCQkJCQkJCQkJICAgdHlwaWQsCisJCQkJCQkJCQkJCSAgIHR5cG1vZCwKKwkJ CQkJCQkJCQkJICAgSW52YWxpZE9pZCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+dGFyZ2V0LAorCQkJ CQkJCQkJCQkgICBpbmRpcmVjdGlvbl9oZWFkLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBleHBy LAorCQkJCQkJCQkJCQkgICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJCQkgICBzdG10 LT5sb2NhdGlvbik7CisJCX0KKwkJZWxzZQorCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJ CQljb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLAorCQkJCQkJCQkJICAoTm9kZSAqKSBleHBy LAorCQkJCQkJCQkJICBleHBydHlwaWQsCisJCQkJCQkJCQkgIHR5cGlkLCB0eXBtb2QsCisJCQkJ CQkJCQkgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9D QVNULAorCQkJCQkJCQkJICBzdG10LT5sb2NhdGlvbik7CisKKwkJaWYgKGNvZXJjZWRfZXhwciA9 PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBl ICVzLCIKKwkJCQkJCQkiIGJ1dCBleHByZXNzaW9uIGlzIG9mIHR5cGUgJXMiLAorCQkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwK KwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRf dHlwZV9iZSh0eXBpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwcnR5cGlkKSksCisJCQkJ CSBlcnJoaW50KCJZb3Ugd2lsbCBuZWVkIHRvIHJld3JpdGUgb3IgY2FzdCB0aGUgZXhwcmVzc2lv bi4iKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbigoTm9k ZSAqKSBleHByKSkpKTsKKworCQlleHByTGlzdENvZXIgPSBsYXBwZW5kKGV4cHJMaXN0Q29lciwg Y29lcmNlZF9leHByKTsKKwl9CisKKwkvKgorCSAqIEdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxp c3QgdXNpbmcgdGhlIGNvbXB1dGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMuCisJICovCisJcXVlcnkg PSBtYWtlTm9kZShRdWVyeSk7CisJcXVlcnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKKwor CWZvcmVhY2gobGMsIGV4cHJMaXN0Q29lcikKKwl7CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAq KSBsZmlyc3QobGMpOworCQlUYXJnZXRFbnRyeSAqdGxlOworCisJCXRsZSA9IG1ha2VUYXJnZXRF bnRyeShleHByLAorCQkJCQkJCSAgaSArIDEsCisJCQkJCQkJICBGaWd1cmVDb2xuYW1lKChOb2Rl ICopIGV4cHIpLAorCQkJCQkJCSAgZmFsc2UpOworCQlxdWVyeS0+dGFyZ2V0TGlzdCA9IGxhcHBl bmQocXVlcnktPnRhcmdldExpc3QsIHRsZSk7CisJfQorCisJLyogZG9uZSBidWlsZGluZyB0aGUg cmFuZ2UgdGFibGUgYW5kIGpvaW50cmVlICovCisJcXVlcnktPnJ0YWJsZSA9IHBzdGF0ZS0+cF9y dGFibGU7CisJcXVlcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlz dCwgTlVMTCk7CisKKwlxdWVyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOworCXF1ZXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxdWVy eS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwor CisJLyogVGhpcyBpcyB0b3AgcXVlcnkgKi8KKwlxdWVyeS0+Y2FuU2V0VGFnID0gdHJ1ZTsKKwor CS8qCisJICogU2F2ZSB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpZC4gVGhpcyB2YWx1ZSBpcyB1 c2VkIG11bHRpcGxlIHRpbWVzOiBieQorCSAqIHF1ZXJ5IHJld3JpdGVyIChmb3IgZ2V0dGluZyBy ZWxhdGVkIGRlZmV4cHIpLCBieSBwbGFubmVyIChmb3IgYWNxdWlyaW5nCisJICogQWNjZXNzU2hh cmVMb2NrIG9uIHRhcmdldCB2YXJpYWJsZSksIGFuZCBieSBleGVjdXRvciAod2UgbmVlZCB0byBr bm93CisJICogdGFyZ2V0IHZhcmlhYmxlIGlkKS4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0VmFyaWFi bGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVlcnkpOwor CisJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBxdWVyeTsKKworCS8qIHJlcHJlc2VudCB0aGUgY29t bWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8KKwlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CisJ cmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9VVElMSVRZOworCXJlc3VsdC0+dXRpbGl0eVN0bXQg PSAoTm9kZSAqKSBzdG10OworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIHRyYW5zZm9y bVNldE9wZXJhdGlvblN0bXQgLQogICoJICB0cmFuc2Zvcm1zIGEgc2V0LW9wZXJhdGlvbnMgdHJl ZQpAQCAtMTkzMCw2ICsyMTgxLDcgQEAgdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBz dGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBf aGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAog CWZvcmVhY2gobCwgbG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0yNDA0LDYgKzI2NTYsNyBAQCB0cmFu c2Zvcm1SZXR1cm5TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmV0dXJuU3RtdCAqc3RtdCkKIAlx cnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFz VGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBz dGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9o YXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBx cnkpOwogCkBAIC0yNDcxLDYgKzI3MjQsNyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBz dGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFz U3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAK QEAgLTI2NTgsOSArMjkxMiwxNSBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJLyoKIAkgKiBUcmFuc2Zvcm0gdGhlIHRhcmdl dCByZWZlcmVuY2UuICBUeXBpY2FsbHkgd2Ugd2lsbCBnZXQgYmFjayBhIFBhcmFtCiAJICogbm9k ZSwgYnV0IHRoZXJlJ3Mgbm8gcmVhc29uIHRvIGJlIHRvbyBwaWNreSBhYm91dCBpdHMgdHlwZS4K KwkgKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGFy Z2V0IG9mIFBML3BnU1FMIGFzc2lnbgorCSAqIHN0YXRlbWVudC4gU28gd2Ugc2hvdWxkIHRvIHVz ZSBkZWRpY2F0ZWQgZXhwcmVzc2lvbiBraW5kLCBhbmQgZGlzYWxsb3cKKwkgKiBzZXNzaW9uIHZh cmlhYmxlcyB0aGVyZS4gVGhlIGRlZGljYXRlZCBjb250ZXh0IGFsbG93cyB0byBlbGltaW5hdGUK KwkgKiBmYWxzZSBhbGFybSB3YXJuaW5ncyByZWxhdGVkIHRvIHBvc3NpYmlsaXR5IG9mIHRhcmdl dCBQTC9wZ1NRTCB2YXJpYWJsZQorCSAqIHNoYWRvd3MgYSBzZXNzaW9uIHZhcmlhYmxlLgogCSAq LwogCXRhcmdldCA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBjcmVmLAotCQkJCQkJ ICAgRVhQUl9LSU5EX1VQREFURV9UQVJHRVQpOworCQkJCQkJICAgRVhQUl9LSU5EX0FTU0lHTl9U QVJHRVQpOwogCXRhcmdldHR5cGUgPSBleHByVHlwZSh0YXJnZXQpOwogCXRhcmdldHR5cG1vZCA9 IGV4cHJUeXBtb2QodGFyZ2V0KTsKIAl0YXJnZXRjb2xsYXRpb24gPSBleHByQ29sbGF0aW9uKHRh cmdldCk7CkBAIC0yNzAyLDYgKzI5NjIsMTAgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCSAqLwogCXR5cGVfaWQgPSBleHBy VHlwZSgoTm9kZSAqKSB0bGUtPmV4cHIpOwogCisJLyoKKwkgKiBGb3IgaW5kaXJlY3Rpb24gcHJv Y2Vzc2luZyBhbmQgYWRkaXRpb25hbCBjYXN0cyB3ZSBjYW4gdXNlIGV4cHJfa2luZAorCSAqIEVY UFJfS0lORF9VUERBVEVfVEFSR0VUCisJICovCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJf S0lORF9VUERBVEVfVEFSR0VUOwogCiAJaWYgKGluZGlyZWN0aW9uKQpAQCAtMjg0NCw2ICszMTA4 LDggQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25T dG10ICpzdG10KQogCQkJCQkJCSAgIChMb2NraW5nQ2xhdXNlICopIGxmaXJzdChsKSwgZmFsc2Up OwogCX0KIAorCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9u VmFyaWFibGVzOworCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCiAJ LyogdGhpcyBtdXN0IGJlIGRvbmUgYWZ0ZXIgY29sbGF0aW9ucywgZm9yIHJlbGlhYmxlIGNvbXBh cmlzb24gb2YgZXhwcnMgKi8KQEAgLTMxMTcsNiArMzM4MywxNCBAQCB0cmFuc2Zvcm1DYWxsU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJ CQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRpb24pOwogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRz IG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFsdWF0ZWQgYnkgZGlyZWN0CisJICogZXhwcmVzc2lv biBleGVjdXRvciBjYWxsLiBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LAorCSAqIHNvIGJs b2NrIGl0LiBJdCB3aWxsIGJlIGVuYWJsZWQgYnkgc29tZSBvdGhlciBwYXRjaC4KKwkgKi8KKwlp ZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCisJCWVsb2coRVJST1IsICJzZXNzaW9u IHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Iik7CisKIAlhc3NpZ25fZXhw cl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHBy LCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDNmMmM1OTBjZTMyLi4zNmZlNGMxZWM4MiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJv cFRyYW5zZm9ybVN0bXQKIAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0 bXQKIAkJR3JhbnRTdG10IEdyYW50Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5k ZXhTdG10IEluc2VydFN0bXQKLQkJTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0 bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBM aXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5h YmxlU3RtdCBQcmVwYXJhYmxlU3RtdAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlv blN0bXQgUmVpbmRleFN0bXQgUmVtb3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3Zl T3BlclN0bXQgUmVuYW1lU3RtdCBSZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQK IAkJUnVsZUFjdGlvblN0bXQgUnVsZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC00NTcs NiArNDU3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlUcmlnZ2VyVHJhbnNpdGlv bnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3ZhY3V1 bV9yZWxhdGlvbl9saXN0CiAJCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJCQls ZXRfdGFyZ2V0CiAKICV0eXBlIDxub2RlPglvcHRfcm91dGluZV9ib2R5CiAldHlwZSA8Z3JvdXBj bGF1c2U+IGdyb3VwX2NsYXVzZQpAQCAtNzQ5LDcgKzc1MCw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJS0VFUCBLRVkgS0VZUwogCiAJTEFCRUwgTEFOR1VBR0UgTEFSR0VfUCBMQVNUX1Ag TEFURVJBTF9QCi0JTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVZFTCBMSUtFIExJTUlU IExJU1RFTiBMT0FEIExPQ0FMCisJTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVQgTEVW RUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFN UCBMT0NBVElPTiBMT0NLX1AgTE9DS0VEIExPR0dFRAogCiAJTUFQUElORyBNQVRDSCBNQVRDSEVE IE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVJHRV9BQ1RJT04gTUVUSE9ECkBAIC0xMTAw LDYgKzExMDEsNyBAQCBzdG10OgogCQkJfCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdAogCQkJfCBJ bmRleFN0bXQKIAkJCXwgSW5zZXJ0U3RtdAorCQkJfCBMZXRTdG10CiAJCQl8IExpc3RlblN0bXQK IAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10CiAJCQl8IExvYWRTdG10CkBAIC0xMjc2OCw2ICsxMjc3 MCw0NyBAQCBvcHRfaG9sZDogLyogRU1QVFkgKi8JCQkJCQl7ICQkID0gMDsgfQogCQkJfCBXSVRI T1VUIEhPTEQJCQkJCXsgJCQgPSAwOyB9CiAJCTsKIAorLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KgorICoJCVFVRVJZOgorICoJCQkJTEVUIFNUQVRFTUVOVFMKKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCitMZXRTdG10OglMRVQgbGV0X3RhcmdldCAnPScgYV9leHByCisJCQkJeworCQkJCQlM ZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJCVNlbGVjdFN0bXQgKnNlbGVj dDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRhcmdldCA9ICQyOworCisJCQkJ CXNlbGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0bXQpOworCQkJCQlyZXMgPSBtYWtlTm9kZShSZXNU YXJnZXQpOworCisJCQkJCS8qIENyZWF0ZSB0YXJnZXQgbGlzdCBmb3IgaW1wbGljaXQgcXVlcnkg Ki8KKwkJCQkJcmVzLT5uYW1lID0gTlVMTDsKKwkJCQkJcmVzLT5pbmRpcmVjdGlvbiA9IE5JTDsK KwkJCQkJcmVzLT52YWwgPSAoTm9kZSAqKSAkNDsKKwkJCQkJcmVzLT5sb2NhdGlvbiA9IEA0Owor CisJCQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9IGxpc3RfbWFrZTEocmVzKTsKKwkJCQkJbi0+cXVl cnkgPSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJCQkJbi0+bG9jYXRpb24gPSBAMjsKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCitsZXRfdGFyZ2V0OgorCQkJQ29sSWQgb3B0X2lu ZGlyZWN0aW9uCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTEobWFrZVN0cmluZygkMSkpOwor CQkJCQlpZiAoJDIpCisJCQkJCQkgICQkID0gbGlzdF9jb25jYXQoJCQsCisJCQkJCQkJCQkJICAg Y2hlY2tfaW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcikpOworCQkJCX0KKwkJOworCiAvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xNzc5OSw2ICsxNzg0Miw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0VfUAogCQkJfCBMQVNUX1AKIAkJCXwgTEVBS1BS T09GCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSVNURU4KIAkJCXwgTE9BRApAQCAtMTg0 MTIsNiArMTg0NTYsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExFQUtQUk9PRgogCQkJ fCBMRUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSUtFCiAJCQl8 IExJU1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGJlZTdkODM0NmEzLi5iNDk0Yzg4NWU5 ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTc3LDYgKzU3NywxMSBAQCBjaGVja19hZ2ds ZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJ CWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOwor CQkJYnJlYWs7CisKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1 bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKIAkJCSAqIGNvbXBpbGVyIHdpbGwgd2FybiBpZiB3 ZSBhZGQgYSBuZXcgUGFyc2VFeHByS2luZCB3aXRob3V0CkBAIC05NjcsNiArOTcyLDEwIEBAIHRy YW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1 bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJ CWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lO RF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKIAogCQkJLyoKIAkJ CSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0 IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggZDJkYjY5YTNmOTAuLmY2YjJlMTlhMGUy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zNCwxOCArMzUsMTkgQEAKICNp bmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf dGFyZ2V0LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJzdG9y YWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxz L2RhdGUuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2pz b25iLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGlt ZXN0YW1wLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy94 bWwuaCIKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFs cyA9IGZhbHNlOwogCi0KIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVBhcmFtUmVm KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpOwogc3RhdGljIE5vZGUgKnRyYW5z Zm9ybUFFeHByT3AoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0V4cHIgKmEpOwpAQCAtMTA4LDYgKzEx MCw5IEBAIHN0YXRpYyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGlzdCAqb3BuYW1lLAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQgbG9j YXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOwor c3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs CisJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xs aWQsCisJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBA IC01MDEsNiArNTA2LDg5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBSZXR1 cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24ga2luZCBpcyB2YWxpZCBmb3Igc2Vzc2lv biB2YXJpYWJsZXMKKyAqIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSB1c2VkIGV2ZXJ5d2hlcmUg d2hlcmUgZXh0ZXJuYWwgcGFyYW1ldGVycyBjYW4gYmUKKyAqIHVzZWQuIFNlc3Npb24gdmFyaWFi bGVzIGFyZSBub3QgYWxsb3dlZCBpbiBEREwgY29tbWFuZHMgb3IgaW4gY29uc3RyYWludHMuCisg KgorICogQW4gaWRlbnRpZmllciBjYW4gYmUgcGFyc2VkIGFzIGEgc2Vzc2lvbiB2YXJpYWJsZSBv bmx5IGZvciBleHByZXNzaW9uIGtpbmRzCisgKiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUg YWxsb3dlZC4gVGhpcyBpcyB0aGUgcHJpbWFyeSB1c2FnZSBvZiB0aGlzCisgKiBmdW5jdGlvbi4K KyAqCisgKiBTZWNvbmQgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBkZWNpZGUgd2hldGhl ciAiY29sdW1uIGRvZXMgbm90IGV4aXN0IiBvcgorICogImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vz IG5vdCBleGlzdCIgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUgcHJpbnRlZC4KKyAqIFdoZW4gd2Ug YXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlIHVz ZWQsIHdlIHJhaXNlCisgKiB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgorICovCitz dGF0aWMgYm9vbAorZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJL aW5kIHBfZXhwcl9raW5kKQoreworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJc3dpdGNoIChw X2V4cHJfa2luZCkKKwl7CisJCWNhc2UgRVhQUl9LSU5EX05PTkU6CisJCQlBc3NlcnQoZmFsc2Up OwkJLyogY2FuJ3QgaGFwcGVuICovCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJCS8qIGFsbG93ICov CisJCWNhc2UgRVhQUl9LSU5EX09USEVSOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX09OOgorCQlj YXNlIEVYUFJfS0lORF9GUk9NX1NVQlNFTEVDVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9GVU5D VElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0hFUkU6CisJCWNhc2UgRVhQUl9LSU5EX0hBVklORzoK KwkJY2FzZSBFWFBSX0tJTkRfRklMVEVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfUEFSVElU SU9OOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfT1JERVI6CisJCWNhc2UgRVhQUl9LSU5EX1dJ TkRPV19GUkFNRV9SQU5HRToKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JPV1M6CisJ CWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9HUk9VUFM6CisJCWNhc2UgRVhQUl9LSU5EX1NF TEVDVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOU0VSVF9UQVJHRVQ6CisJCWNhc2UgRVhQ Ul9LSU5EX1VQREFURV9TT1VSQ0U6CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ6CisJ CWNhc2UgRVhQUl9LSU5EX01FUkdFX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX01FUkdFX1JFVFVS TklORzoKKwkJY2FzZSBFWFBSX0tJTkRfR1JPVVBfQlk6CisJCWNhc2UgRVhQUl9LSU5EX09SREVS X0JZOgorCQljYXNlIEVYUFJfS0lORF9ESVNUSU5DVF9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfTElN SVQ6CisJCWNhc2UgRVhQUl9LSU5EX09GRlNFVDoKKwkJY2FzZSBFWFBSX0tJTkRfUkVUVVJOSU5H OgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVM6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5H TEU6CisJCWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06CisJCWNhc2UgRVhQUl9L SU5EX0VYRUNVVEVfUEFSQU1FVEVSOgorCQljYXNlIEVYUFJfS0lORF9QT0xJQ1k6CisJCWNhc2Ug RVhQUl9LSU5EX0NBTExfQVJHVU1FTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CisJ CWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXN1bHQgPSB0cnVlOworCQkJYnJlYWs7 CisKKwkJCS8qIG5vdCBhbGxvdyAqLworCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5U OgorCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CisJCWNhc2UgRVhQUl9LSU5EX0NPTFVN Tl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVY UFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9JTkRFWF9QUkVESUNB VEU6CisJCWNhc2UgRVhQUl9LSU5EX1NUQVRTX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5E X1RSSUdHRVJfV0hFTjoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0JPVU5EOgorCQljYXNl IEVYUFJfS0lORF9QQVJUSVRJT05fRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfR0VORVJB VEVEX0NPTFVNTjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoKKwkJY2FzZSBFWFBSX0tJ TkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJlc3Vs dCA9IGZhbHNlOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAq IFRyYW5zZm9ybSBhIENvbHVtblJlZi4KICAqCkBAIC01NzcsNiArNjY1LDggQEAgdHJhbnNmb3Jt Q29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVY UFJfS0lORF9DT1BZX1dIRVJFOgogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgog CQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFS R0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJl YWs7CiAKQEAgLTg0OCw2ICs5MzgsNjQgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0 ZSwgY3JlZi0+bG9jYXRpb24pKSk7CiAJfQogCisJLyoKKwkgKiBUaGVyZSBhcmUgY29udGV4dHMg d2hlcmUgc2Vzc2lvbidzIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQuIFRoZQorCSAqIHF1ZXN0 aW9uIGlzIGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkgc2Vzc2lvbidzIHZhcmlhYmxlcyBpbiB0aGVz ZQorCSAqIGNvbnRleHRzPyBUaGUgY29kZSBjYW4gYmUgbW9yZSBzaW1wbGUsIHdoZW4gd2UgZG9u J3QgZG8gaXQsIGJ1dCB0aGVuIHdlCisJICogY2Fubm90IHRvIHJhaXNlIG1heWJlIHVzZWZ1bCBt ZXNzYWdlIGxpa2UgInlvdSBjYW5ub3QgdG8gdXNlIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgaGVy ZSIuCisJICovCisJaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRl LT5wX2V4cHJfa2luZCkpCisJeworCQlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJCWNoYXIJ ICAgKmF0dHJuYW1lID0gTlVMTDsKKwkJYm9vbAkJbm90X3VuaXF1ZTsKKworCQkvKgorCQkgKiBT ZXNzaW9uIHZhcmlhYmxlcyBhcmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlh YmxlcyBvcgorCQkgKiByb3V0aW5lJ3MgYXJndW1lbnRzLiBXZSBkb24ndCB3YW50IHRvIHVzZSBz ZXNzaW9uIHZhcmlhYmxlCisJCSAqIHdoZW4gaXQgaXMgbm90IGV4YWN0bHkgc2hhZG93ZWQsIGJ1 dCBSVEUgbGlrZSB0aGlzIGlzIHZhbGlkOgorCQkgKgorCQkgKiBDUkVBVEUgVFlQRSBUIEFTIChj IGludCk7IENSRUFURSBWQVJJQUJMRSBmb28gQVMgVDsgQ1JFQVRFIFRBQkxFCisJCSAqIGZvbyhh IGludCwgYiBpbnQpOworCQkgKgorCQkgKiBTRUxFQ1QgZm9vLmEsIGZvby5iLCBmb28uYyBGUk9N IGZvbzsKKwkJICoKKwkJICogVGhpcyBjYXNlIGNhbiBiZSBtZXNzeSBhbmQgdGhlbiB3ZSBkaXNh bGxvdyBpdC4gV2hlbiB3ZSBrbm93IHRoYXQgYQorCQkgKiBwb3NzaWJsZSB2YXJpYWJsZSB3aWxs IGJlIHNoYWRvd2VkLCB3ZSBkb24ndCB0cnkgdG8gaWRlbnRpZnkKKwkJICogdmFyaWFibGUuCisJ CSAqLworCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNyZXJyID09IENSRVJSX05PX0NPTFVN TikpCisJCXsKKwkJCS8qCisJCQkgKiBUaGUgQWNjZXNzU2hhcmVMb2NrIGlzIGNyZWF0ZWQgb24g cmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLiBUaGUKKwkJCSAqIGxvY2sgd2lsbCBiZSBrZXB0IGZv ciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisJCQkgKi8KKwkJCXZhcmlkID0gSWRlbnRpZnlWYXJp YWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCQkJ aWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJeworCQkJCU9pZAkJCXR5cGlkOworCQkJCWludDMy CQl0eXBtb2Q7CisJCQkJT2lkCQkJY29sbGlkOworCisJCQkJaWYgKG5vdF91bmlxdWUpCisJCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1F VEVSKSwKKwkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBcIiVzXCIg aXMgYW1iaWd1b3VzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSks CisJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwor CisJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlw aWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJCQkJCSZjb2xsaWQpOworCisJCQkJbm9kZSA9IG1ha2VQ YXJhbVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5 cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJ CX0KKwkJfQorCX0KKwogCS8qCiAJICogVGhyb3cgZXJyb3IgaWYgbm8gdHJhbnNsYXRpb24gZm91 bmQuCiAJICovCkBAIC04ODIsNiArMTAzMCw3MiBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VT dGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJcmV0dXJuIG5vZGU7CiB9CiAKKy8qCisg KiBHZW5lcmF0ZSBwYXJhbSB2YXJpYWJsZSBmb3IgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFi bGUKKyAqLworc3RhdGljIE5vZGUgKgorbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKKwkJCQkJCSBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBP aWQgY29sbGlkLAorCQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pCit7CisJUGFy YW0JICAgKnBhcmFtOworCisJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisKKwlwYXJhbS0+cGFy YW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CisJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlw YXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOwor CXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNvbGxpZDsKKworCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFy aWFibGVzID0gdHJ1ZTsKKworCWlmIChhdHRybmFtZSAhPSBOVUxMKQorCXsKKwkJVHVwbGVEZXNj CXR1cGRlc2M7CisJCWludAkJCWk7CisKKwkJdHVwZGVzYyA9IGxvb2t1cF9yb3d0eXBlX3R1cGRl c2Nfbm9lcnJvcih0eXBpZCwgdHlwbW9kLCB0cnVlKTsKKwkJaWYgKCF0dXBkZXNjKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJ CQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlIFwiJXNcIiwgd2hpY2gg aXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisKKwkJZm9yIChpID0g MDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJCXsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIGF0 dCA9IFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSk7CisKKwkJCWlmIChzdHJjbXAoYXR0cm5hbWUs IE5hbWVTdHIoYXR0LT5hdHRuYW1lKSkgPT0gMCAmJgorCQkJCSFhdHQtPmF0dGlzZHJvcHBlZCkK KwkJCXsKKwkJCQkvKiBTdWNjZXNzLCBzbyBnZW5lcmF0ZSBhIEZpZWxkU2VsZWN0IGV4cHJlc3Np b24gKi8KKwkJCQlGaWVsZFNlbGVjdCAqZnNlbGVjdCA9IG1ha2VOb2RlKEZpZWxkU2VsZWN0KTsK KworCQkJCWZzZWxlY3QtPmFyZyA9IChFeHByICopIHBhcmFtOworCQkJCWZzZWxlY3QtPmZpZWxk bnVtID0gaSArIDE7CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwZSA9IGF0dC0+YXR0dHlwaWQ7CisJ CQkJZnNlbGVjdC0+cmVzdWx0dHlwbW9kID0gYXR0LT5hdHR0eXBtb2Q7CisJCQkJLyogc2F2ZSBh dHRyaWJ1dGUncyBjb2xsYXRpb24gZm9yIHBhcnNlX2NvbGxhdGUuYyAqLworCQkJCWZzZWxlY3Qt PnJlc3VsdGNvbGxpZCA9IGF0dC0+YXR0Y29sbGF0aW9uOworCisJCQkJUmVsZWFzZVR1cGxlRGVz Yyh0dXBkZXNjKTsKKwkJCQlyZXR1cm4gKE5vZGUgKikgZnNlbGVjdDsKKwkJCX0KKwkJfQorCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwK KwkJCQkgZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgY29sdW1uIFwiJXNcIiBpbiB2YXJpYWJs ZSIsIGF0dHJuYW1lKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24p KSk7CisJfQorCisJcmV0dXJuIChOb2RlICopIHBhcmFtOworfQorCiBzdGF0aWMgTm9kZSAqCiB0 cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQogewpA QCAtMTgxNiw2ICsyMDMwLDcgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUs IFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFUzoKIAkJY2FzZSBFWFBS X0tJTkRfVkFMVUVTX1NJTkdMRToKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2Fz ZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCQljYXNl IEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgpAQCAtMTg1OSw2ICsyMDc0LDkgQEAgdHJhbnNm b3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2Ug RVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1 ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOworCQljYXNl IEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVy eSBhcyB0YXJnZXQgb2YgYXNzaWduIHN0YXRlbWVudCIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJ CQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhh dCB0aGUKQEAgLTMxOTYsNiArMzQxNCwxMCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJL aW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJHRU5FUkFURUQgQVMiOwogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgogCQkJcmV0dXJuICJDWUNMRSI7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lH Tl9UQVJHRVQ6CisJCQlyZXR1cm4gIkFTU0lHTiI7CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJH RVQ6CisJCQlyZXR1cm4gIkxFVCI7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25h bGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVu Yy5jCmluZGV4IDliMjMzNDRhM2IxLi45YWE0ZjYwNzY4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVu Yy5jCkBAIC0yNjU2LDYgKzI2NTYsOCBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQkJZXJyID0gXygi c2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0 aW9uIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFS SzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVU X1RBUkdFVDoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKaW5kZXggOTZm ODBiMzA0NjMuLmRhYzc4YmE1Y2NlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL2Rlc3Qu YworKysgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1 ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgogI2luY2x1ZGUg ImxpYnBxL3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2ICsxNTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2 ZXIoQ29tbWFuZERlc3QgZGVzdCkKIAogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgogCQkJ cmV0dXJuIENyZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2Fz ZSBEZXN0VmFyaWFibGU6CisJCQlyZXR1cm4gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoSW52 YWxpZE9pZCk7CiAJfQogCiAJLyogc2hvdWxkIG5ldmVyIGdldCBoZXJlICovCkBAIC0xOTEsNiAr MTk1LDcgQEAgRW5kQ29tbWFuZChjb25zdCBRdWVyeUNvbXBsZXRpb24gKnFjLCBDb21tYW5kRGVz dCBkZXN0LCBib29sIGZvcmNlX3VuZGVjb3JhdGVkX28KIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVs OgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgor CQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBA QCBOdWxsQ29tbWFuZChDb21tYW5kRGVzdCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6 CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJ CWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBA IFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVs OgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgor CQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgYi9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCmluZGV4IDBj NDVmY2YzMThmLi44NWI4MDljYjA3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9wcXVl cnkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCkBAIC04Niw2ICs4Niw5IEBAIENy ZWF0ZVF1ZXJ5RGVzYyhQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsCiAJcWQtPnF1ZXJ5RW52ID0g cXVlcnlFbnY7CiAJcWQtPmluc3RydW1lbnRfb3B0aW9ucyA9IGluc3RydW1lbnRfb3B0aW9uczsJ LyogaW5zdHJ1bWVudGF0aW9uIHdhbnRlZD8gKi8KIAorCXFkLT5udW1fc2Vzc2lvbl92YXJpYWJs ZXMgPSAwOworCXFkLT5zZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7CisKIAkvKiBudWxsIHRoZXNl IGZpZWxkcyB1bnRpbCBzZXQgYnkgRXhlY3V0b3JTdGFydCAqLwogCXFkLT50dXBEZXNjID0gTlVM TDsKIAlxZC0+ZXN0YXRlID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggY2U4ZGI3Y2RhNDMuLjY2 MmRiY2QxZGQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgImNv bW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNs dWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNl LmgiCkBAIC0yMzUsNiArMjM2LDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHko Tm9kZSAqcGFyc2V0cmVlKQogCiAJCWNhc2UgVF9DYWxsU3RtdDoKIAkJY2FzZSBUX0RvU3RtdDoK KwkJY2FzZSBUX0xldFN0bXQ6CiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBDb21tYW5kcyBpbnNpZGUg dGhlIERPIGJsb2NrIG9yIHRoZSBjYWxsZWQgcHJvY2VkdXJlIG1pZ2h0CkBAIC0xMDY0LDYgKzEw NjYsMTEgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQkJ CWJyZWFrOwogCQkJfQogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJRXhlY3V0ZUxldFN0bXQocHN0 YXRlLCAoTGV0U3RtdCAqKSBwYXJzZXRyZWUsIHBhcmFtcywKKwkJCQkJCSAgIHF1ZXJ5RW52LCBx Yyk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogQWxsIG90aGVyIHN0YXRlbWVudCB0 eXBlcyBoYXZlIGV2ZW50IHRyaWdnZXIgc3VwcG9ydCAqLwogCQkJUHJvY2Vzc1V0aWxpdHlTbG93 KHBzdGF0ZSwgcHN0bXQsIHF1ZXJ5U3RyaW5nLApAQCAtMjIwMyw2ICsyMjEwLDEwIEBAIFV0aWxp dHlDb250YWluc1F1ZXJ5KE5vZGUgKnBhcnNldHJlZSkKIAkJCQlyZXR1cm4gVXRpbGl0eUNvbnRh aW5zUXVlcnkocXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlyZXR1cm4gcXJ5OwogCisJCWNhc2UgVF9M ZXRTdG10OgorCQkJcXJ5ID0gY2FzdE5vZGUoUXVlcnksICgoTGV0U3RtdCAqKSBwYXJzZXRyZWUp LT5xdWVyeSk7CisJCQlyZXR1cm4gcXJ5OworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsK IAl9CkBAIC0yNDAxLDYgKzI0MTIsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRy ZWUpCiAJCQl0YWcgPSBDTURUQUdfU0VMRUNUOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0 bXQ6CisJCQl0YWcgPSBDTURUQUdfTEVUOworCQkJYnJlYWs7CisKIAkJCS8qIHV0aWxpdHkgc3Rh dGVtZW50cyAtLS0gc2FtZSB3aGV0aGVyIHJhdyBvciBjb29rZWQgKi8KIAkJY2FzZSBUX1RyYW5z YWN0aW9uU3RtdDoKIAkJCXsKQEAgLTMyODYsNiArMzMwMSw3IEBAIEdldENvbW1hbmRMb2dMZXZl bChOb2RlICpwYXJzZXRyZWUpCiAJCQlicmVhazsKIAogCQljYXNlIFRfUExBc3NpZ25TdG10Ogor CQljYXNlIFRfTGV0U3RtdDoKIAkJCWxldiA9IExPR1NUTVRfQUxMOwogCQkJYnJlYWs7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA2NTM2ODViZmZjNS4uYTBlZGQ1ZTA0OTMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zh cmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jkcy5oIgpAQCAtNTE5LDYg KzUyMCw3IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9uYW1lKE9pZCBmdW5jaWQs IGludCBuYXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRvcl9uYW1lKE9pZCBvcGVy aWQsIE9pZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9pZCBhZGRfY2FzdF90byhTdHJpbmdJ bmZvIGJ1ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9xdWFsaWZpZWRfdHlw ZV9uYW1lKE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3RvX3RleHQoY2hhciAqc3Ry KTsKIHN0YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJlbGlkKTsKIHN0YXRpYyB2 b2lkIGdldF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBEYXR1bSByZWxvcHRpb25zKTsKQEAg LTgzNTEsNiArODM1MywxNCBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9j b250ZXh0ICpjb250ZXh0KQogCQlyZXR1cm47CiAJfQogCisJLyogdHJhbnNsYXRlIHBhcmFtdmFy aWQgdG8gc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCisJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVz IiwKKwkJCQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFy aWQpKTsKKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogQWx0ZXJuYXRpdmVseSwgbWF5YmUgaXQn cyBhIHN1YnBsYW4gb3V0cHV0LCB3aGljaCB3ZSBwcmludCBhcyBhCiAJICogcmVmZXJlbmNlIHRv IHRoZSBzdWJwbGFuLiAgKFdlIGNvdWxkIGRyaWxsIGRvd24gaW50byB0aGUgc3VicGxhbiBhbmQK QEAgLTEzMTMxLDYgKzEzMTQxLDQyIEBAIGdlbmVyYXRlX2NvbGxhdGlvbl9uYW1lKE9pZCBjb2xs aWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFi bGVfbmFtZQorICoJCUNvbXB1dGUgdGhlIG5hbWUgdG8gZGlzcGxheSBmb3IgYSBzZXNzaW9uIHZh cmlhYmxlIHNwZWNpZmllZCBieSBPSUQKKyAqCisgKiBUaGUgcmVzdWx0IGluY2x1ZGVzIGFsbCBu ZWNlc3NhcnkgcXVvdGluZyBhbmQgc2NoZW1hLXByZWZpeGluZy4KKyAqLworc3RhdGljIGNoYXIg KgorZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVw bGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOwor CWNoYXIJICAgKm5zcG5hbWU7CisJY2hhcgkgICAqcmVzdWx0OworCisJdHVwID0gU2VhcmNoU3lz Q2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhl YXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxl KSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUp OworCisJaWYgKCFWYXJpYWJsZUlzVmlzaWJsZSh2YXJpZCkpCisJCW5zcG5hbWUgPSBnZXRfbmFt ZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCWVsc2UKKwkJbnNw bmFtZSA9IE5VTEw7CisKKwlyZXN1bHQgPSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3Bu YW1lLCB2YXJuYW1lKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHJlc3Vs dDsKK30KKwogLyoKICAqIEdpdmVuIGEgQyBzdHJpbmcsIHByb2R1Y2UgYSBURVhUIGRhdHVtLgog ICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggNWFmMWExNjhlYzIuLjkyMjg0 Zjc3Yzc4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtNTgsNiArNTgsNyBA QAogCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVz cGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVj dXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVz L25vZGVGdW5jcy5oIgpAQCAtMTYyLDYgKzE2Myw3IEBAIEluaXRQbGFuQ2FjaGUodm9pZCkKIAlD YWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhBTU9QT1BJRCwgUGxhbkNhY2hlU3lzQ2FsbGJh Y2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTlNF UlZFUk9JRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3Rl clN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTkRBVEFXUkFQUEVST0lELCBQbGFuQ2FjaGVTeXNDYWxs YmFjaywgKERhdHVtKSAwKTsKKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJM RU9JRCwgUGxhbkNhY2hlT2JqZWN0Q2FsbGJhY2ssIChEYXR1bSkgMCk7CiB9CiAKIC8qCkBAIC0x OTAzLDE4ICsxOTA1LDMzIEBAIFNjYW5RdWVyeUZvckxvY2tzKFF1ZXJ5ICpwYXJzZXRyZWUsIGJv b2wgYWNxdWlyZSkKIAogCS8qCiAJICogUmVjdXJzZSBpbnRvIHN1Ymxpbmsgc3VicXVlcmllcywg dG9vLiAgQnV0IHdlIGFscmVhZHkgZGlkIHRoZSBvbmVzIGluCi0JICogdGhlIHJ0YWJsZSBhbmQg Y3RlTGlzdC4KKwkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LiBXZSBuZWVkIHRvIGZvcmNlIHJl Y3Vyc2l2ZSBjYWxsIGZvciBzZXNzaW9uCisJICogdmFyaWFibGVzIHRvbywgdG8gZmluZCBhbmQg bG9jayB2YXJpYWJsZXMgdXNlZCBpbiBxdWVyeSAoc2VlCisJICogU2NhblF1ZXJ5V2Fsa2VyKS4K IAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlpZiAocGFyc2V0cmVlLT5oYXNT dWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlxdWVy eV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwKIAkJCQkJCSAgKHZvaWQg KikgJmFjcXVpcmUsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQorCisJ LyogUHJvY2VzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNldHJl ZS0+cmVzdWx0VmFyaWFibGUpKQorCXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJhc2VP YmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJ CQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNlT2Jq ZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJ CQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJfQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZpbmQg c3VibGluayBzdWJxdWVyaWVzIGZvciBTY2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRvIGZp bmQgc3VibGluayBzdWJxdWVyaWVzIG9yIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAq IGZvciBTY2FuUXVlcnlGb3JMb2NrcwogICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fsa2Vy KE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCkBAIC0xOTI5LDYgKzE5NDYsMjAgQEAgU2NhblF1 ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxvY2tz KGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFsbCB0 aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhhbmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVsc2Ug aWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2Rl OworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChh Y3F1aXJlKQorCQkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBh cmFtdmFyaWQsCisJCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJCQkJ VW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAor CQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERvIE5P VCByZWN1cnNlIGludG8gUXVlcnkgbm9kZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3MgYWxy ZWFkeQpAQCAtMjA2MCw3ICsyMDkxLDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJn LCBPaWQgcmVsaWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2Nh Y2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hl cworICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9D T0lELCBOQU1FU1BBQ0VPSUQsCisgKiBPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlHTlNFUlZFUk9J RCwgRk9SRUlHTkRBVEFXUkFQUEVST0lEIGFuZCBWQVJJQUJMRU9JRAorICogY2FjaGVzLgogICoK ICAqIEludmFsaWRhdGUgYWxsIHBsYW5zIG1lbnRpb25pbmcgdGhlIG9iamVjdCB3aXRoIHRoZSBz cGVjaWZpZWQgaGFzaCB2YWx1ZSwKICAqIG9yIGFsbCBwbGFucyBtZW50aW9uaW5nIGFueSBtZW1i ZXIgb2YgdGhpcyBjYWNoZSBpZiBoYXNodmFsdWUgPT0gMC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5k ZXggZTQ4YTg2YmU1NGIuLmVhYWUwYzVhOTMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMjAy Niw5ICsyMDI2LDEzIEBAIGdldF9jYWxsX2V4cHJfYXJnX3N0YWJsZShOb2RlICpleHByLCBpbnQg YXJnbnVtKQogCSAqLwogCWlmIChJc0EoYXJnLCBDb25zdCkpCiAJCXJldHVybiB0cnVlOwotCWlm IChJc0EoYXJnLCBQYXJhbSkgJiYKLQkJKChQYXJhbSAqKSBhcmcpLT5wYXJhbWtpbmQgPT0gUEFS QU1fRVhURVJOKQotCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoSXNBKGFyZywgUGFyYW0pKQorCXsKKwkJ UGFyYW0JICAgKnAgPSAoUGFyYW0gKikgYXJnOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFS QU1fRVhURVJOIHx8IHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJldHVybiB0 cnVlOworCX0KIAogCXJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCA3Y2MxZmM1 NzE4OC4uYjRkZjAzNzk2NWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTE3MDksOCArMTcwOSw4IEBA IHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJ CSJBQk9SVCIsICJBTFRFUiIsICJBTkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQT0lO VCIsICJDTE9TRSIsICJDTFVTVEVSIiwKIAkJIkNPTU1FTlQiLCAiQ09NTUlUIiwgIkNPUFkiLCAi Q1JFQVRFIiwgIkRFQUxMT0NBVEUiLCAiREVDTEFSRSIsCiAJCSJERUxFVEUgRlJPTSIsICJESVND QVJEIiwgIkRPIiwgIkRST1AiLCAiRU5EIiwgIkVYRUNVVEUiLCAiRVhQTEFJTiIsCi0JCSJGRVRD SCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElT VEVOIiwgIkxPQUQiLCAiTE9DSyIsCi0JCSJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwg IlBSRVBBUkUiLAorCQkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwg IklOU0VSVCBJTlRPIiwgIkxFVCIsCisJCSJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdF IElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCiAJCSJSRUFTU0lHTiIsICJSRUZS RVNIIE1BVEVSSUFMSVpFRCBWSUVXIiwgIlJFSU5ERVgiLCAiUkVMRUFTRSIsCiAJCSJSRVNFVCIs ICJSRVZPS0UiLCAiUk9MTEJBQ0siLAogCQkiU0FWRVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwg IlNFTEVDVCIsICJTRVQiLCAiU0hPVyIsICJTVEFSVCIsCkBAIC00MjgyLDYgKzQyODIsMTQgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwg IlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKKy8qIExFVCAqLworCS8qIElmIHBy ZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9mIHZhcmlhYmxlcyAqLworCWVsc2UgaWYg KE1hdGNoZXMoIkxFVCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl92YXJpYWJsZXMpOworCS8qIENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdpdGggIj0i ICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxFVCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVf V0lUSCgiPSIpOworCiAvKiBMT0NLICovCiAJLyogQ29tcGxldGUgTE9DSyBbVEFCTEVdIFtPTkxZ XSB3aXRoIGEgbGlzdCBvZiB0YWJsZXMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJMT0NLIikpCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9uYW1lc3BhY2UuaAppbmRleCAxOGVhNmFjODNhNS4uZGVmNjkxZGFmYjMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9uYW1lc3BhY2UuaApAQCAtMTcxLDcgKzE3MSw5IEBAIGV4dGVybiBTZWFyY2hQYXRo TWF0Y2hlciAqR2V0U2VhcmNoUGF0aE1hdGNoZXIoTWVtb3J5Q29udGV4dCBjb250ZXh0KTsKIGV4 dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqQ29weVNlYXJjaFBhdGhNYXRjaGVyKFNlYXJjaFBhdGhN YXRjaGVyICpwYXRoKTsKIGV4dGVybiBib29sIFNlYXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmly b25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIAorZXh0ZXJuIExpc3QgKk5hbWVzRnJv bUxpc3QoTGlzdCAqbmFtZXMpOwogZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZShjb25zdCBjaGFy ICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1lLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJu IE9pZAlJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUsIGJvb2wg Km5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcik7CiAKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9v aWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252 ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z192YXJpYWJsZS5oCmluZGV4IDM4MTBlMDQwZjI4Li5jZjA2ZTEzOWFjOCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfdmFyaWFibGUuaApAQCAtMjYsNiArMjYsMTAgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0K ICAqCQlwZ192YXJpYWJsZSBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bwogICoJCXR5 cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3ZhcmlhYmxlCisgKgorICogVGhlIGNvbHVtbiB2YXJj cmVhdGVfbHNuIG9mIFhsb2dSZWNQdHIgdHlwZSAoOC1ieXRlKSBzaG91bGQgYmUgb24gcG9zaXRp b24KKyAqIGRpdmlzaWJsZSBieSA4IHVuY29uZGl0aW9uYWxseSBhbmQgYmVmb3JlIHZhcm5hbWUg Y29sdW1uIG9mIE5hbWVEYXRhIHR5cGUuCisgKiBzZWUgc2FuaXR5X2NoZWNrOmNoZWNrX2NvbHVt bnMKICAqIC0tLS0tLS0tLS0tLS0tLS0KICAqLwogQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZh cmlhYmxlUmVsYXRpb25JZCkKQEAgLTM1LDYgKzM5LDkgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5 MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBPSUQgb2YgZW50cnkgaW4gcGdfdHlwZSBmb3Ig dmFyaWFibGUncyB0eXBlICovCiAJT2lkCQkJdmFydHlwZSBCS0lfTE9PS1VQKHBnX3R5cGUpOwog CisJLyogdXNlZCBmb3IgaWRlbnRpdHkgY2hlY2sgW29pZCwgY3JlYXRlX2xzbl0gKi8KKwlYTG9n UmVjUHRyCXZhcmNyZWF0ZV9sc247CisKIAkvKiB2YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJ dmFybmFtZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iM2YwM2M2NTgyNwotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMCwwICsx LDMyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9udmFyaWFibGUuaAorICoJ ICBwcm90b3R5cGVzIGZvciBzZXNzaW9udmFyaWFibGUuYy4KKyAqCisgKgorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgU0VTU0lP TlZBUklBQkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVz L3BhcmFtcy5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2Vfbm9kZS5oIgorI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCisjaW5jbHVkZSAidXRp bHMvcXVlcnllbnZpcm9ubWVudC5oIgorCitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUo T2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOworZXh0ZXJuIHZvaWQgU2V0U2Vz c2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9v bCBpc051bGwpOworZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJv b2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxl V2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlk KTsKKworZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRT dG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1l bnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKKworI2VuZGlmCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY2Rlc2MuaAppbmRleCAwYTcyNzRlMjZjOC4uZDFiMmY1OWUwY2YgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY2Rlc2MuaApAQCAtNDgsNiArNDgsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnlEZXNjCiAJ RVN0YXRlCSAgICplc3RhdGU7CQkJLyogZXhlY3V0b3IncyBxdWVyeS13aWRlIHN0YXRlICovCiAJ UGxhblN0YXRlICAqcGxhbnN0YXRlOwkJLyogdHJlZSBvZiBwZXItcGxhbi1ub2RlIHN0YXRlICov CiAKKwkvKiByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyICovCisJaW50CQkJ bnVtX3Nlc3Npb25fdmFyaWFibGVzOworCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzZXNzaW9uX3Zh cmlhYmxlczsKKwogCS8qIFRoaXMgZmllbGQgaXMgc2V0IGJ5IEV4ZWN1dG9yUnVuICovCiAJYm9v bAkJYWxyZWFkeV9leGVjdXRlZDsJLyogdHJ1ZSBpZiBwcmV2aW91c2x5IGV4ZWN1dGVkICovCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9z cmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYjQ0ZDhiOTRjNgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwyMiBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJICBwcm90 b3R5cGVzIGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisgKgorICoKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5 IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNl aXZlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFSSUFCTEVf UkVDRUlWRVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVkZSAidGNv cC9kZXN0LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVzdFJlY2Vp dmVyKE9pZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlWRVJfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBjYWM2ODRkOWIzYS4uYmVjN2IwNDNkYTMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCkBAIC02MDksNiArNjA5LDE4IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5j UmVxdWVzdAogCQkJCQkJCQkgKiB0dXBsZXMpICovCiB9IEFzeW5jUmVxdWVzdDsKIAorLyogLS0t LS0tLS0tLS0tLS0tLQorICogU2Vzc2lvblZhcmlhYmxlVmFsdWUKKyAqIC0tLS0tLS0tLS0tLS0t LS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2Vzc2lvblZhcmlhYmxlVmFsdWUKK3sKKwlPaWQJCQl2 YXJpZDsKKwlPaWQJCQl0eXBpZDsKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworfSBT ZXNzaW9uVmFyaWFibGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3RhdGUg aW5mb3JtYXRpb24KICAqCkBAIC02NjEsNiArNjczLDEzIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0 ZQogCVBhcmFtTGlzdEluZm8gZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0ZXJu YWwgcGFyYW1zICovCiAJUGFyYW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2YWx1 ZXMgb2YgaW50ZXJuYWwgcGFyYW1zICovCiAKKwkvKiBWYXJpYWJsZXMgaW5mbzogKi8KKwkvKiBu dW1iZXIgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWludAkJCWVzX251bV9zZXNzaW9u X3ZhcmlhYmxlczsKKworCS8qIGFycmF5IG9mIGNvcGllZCB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgKi8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXM7CisK IAlRdWVyeUVudmlyb25tZW50ICplc19xdWVyeUVudjsJLyogcXVlcnkgZW52aXJvbm1lbnQgKi8K IAogCS8qIE90aGVyIHdvcmtpbmcgc3RhdGU6ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXgg ODBlYTU5MjhlZWYuLjc0YmY1YWY3NzY2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIs NiArMTQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxh dGlvbiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKKwkvKiB0YXJnZXQgdmFy aWFibGUgb2YgTEVUIHN0YXRlbWVudCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCiAJLyog aGFzIGFnZ3JlZ2F0ZXMgaW4gdGxpc3Qgb3IgaGF2aW5nUXVhbCAqLwogCWJvb2wJCWhhc0FnZ3Mg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rp b25zIGluIHRsaXN0ICovCkBAIC0xNjAsNiArMTYzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkK IAlib29sCQloYXNGb3JVcGRhdGUgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwog CS8qIHJld3JpdGVyIGhhcyBhcHBsaWVkIHNvbWUgUkxTIHBvbGljeSAqLwogCWJvb2wJCWhhc1Jv d1NlY3VyaXR5IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiB1c2VzIHNl c3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlcyBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4gc3RhdGVtZW50ICovCiAJ Ym9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCkBAIC0y MDk1LDYgKzIxMDAsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJV2l0aENsYXVzZSAq d2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCiB9IE1lcmdlU3RtdDsKIAorLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoJCUxldCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJ TGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLworCU5vZGUJICAgKnF1ZXJ5 OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJaW50CQkJbG9jYXRpb247Cit9IExldFN0bXQ7 CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlTZWxlY3QgU3RhdGVtZW50CiAgKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXRobm9kZXMuaAppbmRleCAxNGNjZmMxYWMxYy4uYzE2Mzg1NTEyZmMgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhdGhub2Rlcy5oCkBAIC0xNjMsNiArMTYzLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckds b2JhbAogCiAJLyogcGFydGl0aW9uIGRlc2NyaXB0b3JzICovCiAJUGFydGl0aW9uRGlyZWN0b3J5 IHBhcnRpdGlvbl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdub3JlKTsKKwor CS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25W YXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUg UGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTUwOCw2ICs1MTEsOCBA QCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlwbGFjZWhvbGRlcnNGcm96ZW47CiAJLyogdHJ1 ZSBpZiBwbGFubmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0ZW0gKi8KIAlib29sCQloYXNSZWN1cnNp b247CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQgKi8KKwlib29sCQlo YXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBJbmZvcm1hdGlvbiBhYm91dCBhZ2dyZWdh dGVzLiBGaWxsZWQgYnkgcHJlcHJvY2Vzc19hZ2dyZWZzKCkuCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCmlu ZGV4IDFhZWVhZWM5NWUxLi42YjliOTkwNGZkYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKQEAgLTQ5 LDcgKzQ5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAogCU5vZGVUYWcJCXR5cGU7 CiAKLQlDbWRUeXBlCQljb21tYW5kVHlwZTsJLyogc2VsZWN0fGluc2VydHx1cGRhdGV8ZGVsZXRl fG1lcmdlfHV0aWxpdHkgKi8KKwlDbWRUeXBlCQljb21tYW5kVHlwZTsJLyogc2VsZWN0fGxldHxp bnNlcnR8dXBkYXRlfGRlbGV0ZXxtZXJnZXx1dGlsaXR5ICovCiAKIAl1aW50NjQJCXF1ZXJ5SWQ7 CQkvKiBxdWVyeSBpZGVudGlmaWVyIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIApAQCAtOTQsNiAr OTQsOCBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVkU3RtdAogCiAJTm9kZQkgICAqdXRpbGl0eVN0 bXQ7CS8qIG5vbi1udWxsIGlmIHRoaXMgaXMgdXRpbGl0eSBzdG10ICovCiAKKwlMaXN0CSAgICpz ZXNzaW9uVmFyaWFibGVzOwkvKiBPSURzIGZvciBQQVJBTV9WQVJJQUJMRSBQYXJhbXMgKi8KKwog CS8qIHN0YXRlbWVudCBsb2NhdGlvbiBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVy eSkgKi8KIAlQYXJzZUxvYwlzdG10X2xvY2F0aW9uOwkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEg aWYgdW5rbm93biAqLwogCVBhcnNlTG9jCXN0bXRfbGVuOwkJLyogbGVuZ3RoIGluIGJ5dGVzOyAw IG1lYW5zICJyZXN0IG9mIHN0cmluZyIgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggZWE0NzY1 MmFkYjguLjcyMmRmNjk5NTM3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzYxLDYgKzM2MSw5 IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQnIGZpZWxkIGNv bnRhaW4gdGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxvdy1vcmRlciAx NiBiaXRzIGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAgKgkJCQlvZiBQ YXJhbSBpcyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFubmluZy4pCisg KgorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhlIHBhcmFtZXRlciBpcyBhbiBhY2Nlc3MgdG8gc2Vz c2lvbiB2YXJpYWJsZQorICoJCQkJcGFyYW1pZCBob2xkcyB2YXJpZC4KICAqLwogdHlwZWRlZiBl bnVtIFBhcmFtS2luZAogewpAQCAtMzY4LDYgKzM3MSw3IEBAIHR5cGVkZWYgZW51bSBQYXJhbUtp bmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJTkssCiAJUEFSQU1fTVVMVElFWFBSLAorCVBB UkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAKIHR5cGVkZWYgc3RydWN0IFBhcmFtCkBAIC0z ODAsNiArMzg0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQzMgkJcGFyYW10eXBtb2Qg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIE9JRCBvZiBjb2xsYXRpb24s IG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtY29sbGlkIHBnX25vZGVfYXR0 cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiBPSUQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpZiBp dCBpcyB1c2VkICovCisJT2lkCQkJcGFyYW12YXJpZDsKIAkvKiB0b2tlbiBsb2NhdGlvbiwgb3Ig LTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBQYXJhbTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oIGIvc3JjL2luY2x1ZGUvb3B0aW1p emVyL3BsYW5tYWluLmgKaW5kZXggYWFmYzE3Mzc5MjEuLmRlNDcxNjkyZTgyIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAorKysgYi9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGxhbm1haW4uaApAQCAtMTIwLDQgKzEyMCw2IEBAIGV4dGVybiB2b2lkIHJlY29yZF9w bGFuX2Z1bmN0aW9uX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCBmdW5jaWQpOwog ZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290 LCBPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fs a2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KTsKIAorZXh0ZXJuIHZvaWQgcHVs bF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8gKnJvb3QpOworCiAjZW5kaWYJ CQkJCQkJLyogUExBTk1BSU5fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGM4ODRjZDVjNDY3Li4y ZTg4ZDdkOTUwOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMjU2LDYgKzI1Niw3IEBAIFBHX0tFWVdP UkQoImxlYWRpbmciLCBMRUFESU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgibGVha3Byb29mIiwgTEVBS1BST09GLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJsZWFzdCIsIExFQVNULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgibGVmdCIsIExFRlQsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQs IEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJsZXQiLCBMRVQsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxldmVsIiwgTEVWRUwsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxpa2UiLCBMSUtFLCBUWVBFX0ZVTkNfTkFNRV9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGltaXQiLCBMSU1JVCwgUkVTRVJWRURf S0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA1Yjc4MWQ4N2E5 ZC4uNmQ5MzY5MTk2NTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODIsNiArODIsOCBA QCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DT1BZX1dIRVJFLAkJLyog V0hFUkUgY29uZGl0aW9uIGluIENPUFkgRlJPTSAqLwogCUVYUFJfS0lORF9HRU5FUkFURURfQ09M VU1OLCAvKiBnZW5lcmF0aW9uIGV4cHJlc3Npb24gZm9yIGEgY29sdW1uICovCiAJRVhQUl9LSU5E X0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJrIHZhbHVlICovCisJRVhQUl9LSU5EX0FTU0lHTl9U QVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1lbnQgdGFyZ2V0ICovCisJRVhQUl9LSU5EX0xFVF9U QVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApAQCAtMjI1LDYg KzIyNyw3IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJv b2wJCXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9o YXNTZXNzaW9uVmFyaWFibGVzOwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVj ZW50IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmlu ZGV4IDk0NjVkZjdiMmZmLi5hOTIxYWYyNDg2ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTE4 Niw2ICsxODYsNyBAQCBQR19DTURUQUcoQ01EVEFHX0dSQU5ULCAiR1JBTlQiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0dSQU5UX1JPTEUsICJHUkFOVCBST0xFIiwgZmFs c2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU1QT1JUX0ZPUkVJR05fU0NIRU1B LCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19JTlNFUlQsICJJTlNFUlQiLCBmYWxzZSwgZmFsc2UsIHRydWUpCitQR19DTURUQUco Q01EVEFHX0xFVCwgIkxFVCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0xPQUQsICJMT0FEIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTE9D S19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAppbmRleCBh M2Q1MjFiNmY5Ny4uMjg2ZTU3MWYyN2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVz dC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVk ZWYgZW51bQogCURlc3RUcmFuc2llbnRSZWwsCQkJLyogcmVzdWx0cyBzZW50IHRvIHRyYW5zaWVu dCByZWxhdGlvbiAqLwogCURlc3RUdXBsZVF1ZXVlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHVw bGUgcXVldWUgKi8KIAlEZXN0RXhwbGFpblNlcmlhbGl6ZSwJCS8qIHJlc3VsdHMgYXJlIHNlcmlh bGl6ZWQgYW5kIGRpc2NhcmRlZCAqLworCURlc3RWYXJpYWJsZSwJCQkJLyogcmVzdWx0cyBzZW50 cyB0byBzZXNzaW9uIHZhcmlhYmxlICovCiB9IENvbW1hbmREZXN0OwogCiAvKiAtLS0tLS0tLS0t LS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCAyMzliMzI1MGE5NS4uYTllMWUzMjNhZDEgMTAw NjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2V4ZWMuYwpAQCAtODEwMSw3ICs4MTAxLDggQEAgZXhlY19pc19zaW1wbGVfcXVl cnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+ bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJh dGlvbnMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8CisJCXF1ZXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBhY2E3NjYwNDJkYi4uMjgxYmRkNzky MGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC01NSwzICs1NSw5MTUgQEAgU0VUIFJPTEUgVE8gREVGQVVMVDsKIERST1AgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMTsKIERST1AgU0NIRU1BIHN2YXJ0ZXN0OwogRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CistLSBjaGVjayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSBy ZWdyZXNzX25vb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEg KyB2YXIxICQkIExBTkdVQUdFIHNxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4 X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ug c3FsIFNFQ1VSSVRZIERFRklORVI7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3Fs ZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQk IExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhf c2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQk IExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKK0xFVCB2YXIxID0gMTA7CistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cp CisKK1NFTEVDVCBzcWxmeCgyMCk7Cisgc3FsZnggCistLS0tLS0tCisgICAgMzAKKygxIHJvdykK KworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAz MAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0t LS0tLQorICAgICAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBw bHBnc3FsZnhfc2QgCistLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAzMAorKDEgcm93KQorCist LSBzaG91bGQgdG8gZmFpbAorU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZh cjE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEK K1NFTEVDVCBzcWxmeCgyMCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9u IHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQg MQorU0VMRUNUIHBscGdzcWxmeCgyMCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBz ZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIx IgorUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4K Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0t LS0tLS0KKyAgICAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBw bHBnc3FsZnhfc2QgCistLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAzMAorKDEgcm93KQorCitT RVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVn cmVzc19ub293bmVyOworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3du ZXI7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxF Q1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVD VCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMwCiso MSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IEZVTkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJP UCBGVU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50 KTsKK0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7CistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2 aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKy0tIHVzZSB2YXJpYWJsZXMg aW4gdmlld3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSAr IHYsIDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1Qg KiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAgMAor KDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7Cisg cmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHN0YXJ0 IGEgbmV3IHNlc3Npb24KK1xjCitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCist LS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0Owor U0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAg IDUuMTQKKygyIHJvd3MpCisKKy0tIHNob3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklB QkxFIHZhcjE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNlc3Npb24gdmFyaWFibGUgdmFyMSBiZWNh dXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB2aWV3IHRlc3RfdmlldyBk ZXBlbmRzIG9uIHNlc3Npb24gdmFyaWFibGUgdmFyMQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVND QURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvawor RFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZp ZXcgdGVzdF92aWV3CitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxF IHZhcjIgdGV4dDsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQg U0VMRUNUIHZhcjEgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VM RUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CitMRVQgdmFyMSA9ICdzdHIx JzsKK0xFVCB2YXIyID0gJ3N0cjInOworU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwor ICAgICAgc3FsZngxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorIHN0cjEsIHN0cjIsIEhl bGxvCisoMSByb3cpCisKKy0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1bHQKKyAgIE91 dHB1dDogc3FsZngxKHNxbGZ4MignSGVsbG8nOjpjaGFyYWN0ZXIgdmFyeWluZykpCisoMiByb3dz KQorCitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngy KHZhcmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0g YWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB0byB3b3JrCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBudW1lcmljOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KCkK K1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRVUk4gdmFyMTsgRU5EICQkIExBTkdVQUdF IHBscGdzcWw7CitzZXQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0xF VCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0t LS0tLQorICAgICAgMy4xNAorKDEgcm93KQorCitMRVQgdmFyMSA9IDMuMTQgKiAyOworU0VMRUNU IHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICA2LjI4CisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0 aW9uKSBzaG91bGQgdG8gd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0xF VCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0t LS0tLS0tLS0KKyAgICAgIDkuNDIKKygxIHJvdykKKworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NF TEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAxMi41Ngor KDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeCgp Oworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworLS0gdXNhZ2UgTEVUIHN0YXRlbWVu dCBpbiBwbHBnc3FsIHNob3VsZCB0byB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitD UkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmljW107CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjIg PSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0g aTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0Ug J3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitFTkQ7CiskJDsKK05PVElDRTogIHJlc3VsdCBhcnJh eTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJ QUJMRSB2YXIyOworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJl cXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24g ZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKK0NSRUFURSBQUk9DRURVUkUgcChhcmcg aW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBw bHBnc3FsOworLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQor Q0FMTCBwKHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFu IGFyZ3VtZW50CitETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorQ09OVEVYVDogIFNRTCBz dGF0ZW1lbnQgIkNBTEwgcCh2KSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2Nr IGxpbmUgMSBhdCBDQUxMCitEUk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxFIHY7 CistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworQ1JFQVRFIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQg dmFyMSA9IHBpKCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNuJ3QgZXhp c3QKK0xJTkUgMTogTEVUIHZhcjEgPSBwaSgpOworICAgICAgICAgICAgXgorU0VMRUNUIHZhcjE7 CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZh cjE7CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdC52YXIx ID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworICAgICAgIHZhcjEgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0KKyAzLjE0MTU5MjY1MzU4OTc5CisoMSByb3cpCisKK1NFVCBzZWFyY2hf cGF0aCBUTyBzdmFydGVzdDsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBwaSgpICsgMTA7 CitTRUxFQ1QgdmFyMTsKKyAgICAgICB2YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisg MTMuMTQxNTkyNjUzNTg5OAorKDEgcm93KQorCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NI RU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24g dmFyaWFibGUgc3ZhcnRlc3QudmFyMQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKKy0t IHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitT RVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOwor U0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgaGVsbG8KKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxOworLS0gdGVzdCBvZiBkb21haW5zCitDUkVBVEUgRE9NQUlOIGludF9kb21h aW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChWQUxVRSA+IDEwMCk7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnRfZG9tYWluOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6 ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisg MTAwMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAxMDsKK0VSUk9SOiAg dmFsdWUgZm9yIGRvbWFpbiBpbnRfZG9tYWluIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImlu dF9kb21haW5fY2hlY2siCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBOVUxMOworRVJST1I6 ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0gbm90ZSAt IGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NRTCkKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGludF9kb21haW47CistLSBhbiBleHByZXNz aW9uIHNob3VsZCBiZSB1bmtub3duLXR5cGUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDRt dWx0aXJhbmdlW107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xFVCB2YXIx ID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZhcjFbMl0g PSAne1s1LDgpLFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgICAgIHZh cjEgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQorKDEgcm93KQor CistLUl0IHNob3VsZCB0byB3b3JrIGluIHBscGdzcWwgdG9vCitETyAkJAorQkVHSU4KKyAgTEVU IHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxb MTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CisKKyAgUkFJ U0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgeyJ7WzIsOCksWzExLDE0 KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBTQ0hF TUEgc3ZhcnRlc3QgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IENSRUFURSBUQUJMRSBmb28o YSBpbnQpOworTEVUIHN2YXJ0ZXN0LnZhcjEgPSAxMDA7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsK KyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGggdG8gcHVi bGljLCBzdmFydGVzdDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSBy b3cpCisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBm b28KK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIx ID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CitMRVQgdmFyMlt2YXIxXSA9IDA7CitTRUxF Q1QgdmFyMjsKKyAgIHZhcjIgICAgCistLS0tLS0tLS0tLQorIFsyOjJdPXswfQorKDEgcm93KQor CitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIy ID0gJ3t9Jzo6aW50W107CitTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisge30KKygxIHJv dykKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hv dWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitX SVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJPUjogIHN5bnRh eCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVUIHZhcjEgPSAx MDApIFNFTEVDVCAqIEZST00geDsKKyAgICAgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUg b2sKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpOworLS0gc2hvdWxkIGZhaWwKK0xF VCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworRVJST1I6ICBleHByZXNzaW9uIHJldHVy bmVkIG1vcmUgdGhhbiBvbmUgcm93CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsK K0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitEUk9QIFZBUklBQkxFIHZhcjE7 CistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMgKHggaW50LCB5 IGludCwgeiBudW1lcmljKDEwLDIpKTsKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitD UkVBVEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworTEVUIHYxID0gKDEsIDIsIDMuMTQpOworTEVU IHYyID0gKDEwLCAyMCwgMy4xNCAqIDEwKTsKKy0tIHNob3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFy ZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworU0VMRUNUIHYxOworICAgICB2 MSAgICAgCistLS0tLS0tLS0tLS0KKyAoMSwyLDMuMDApCisoMSByb3cpCisKK1NFTEVDVCB2MjsK KyAgICAgIHYyICAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMxLjQwKQorKDEgcm93 KQorCitTRUxFQ1QgKHYxKS4qOworIHggfCB5IHwgIHogICAKKy0tLSstLS0rLS0tLS0tCisgMSB8 IDIgfCAzLjAwCisoMSByb3cpCisKK1NFTEVDVCAodjIpLio7CisgeCAgfCB5ICB8ICAgeiAgIAor LS0tLSstLS0tKy0tLS0tLS0KKyAxMCB8IDIwIHwgMzEuNDAKKygxIHJvdykKKworU0VMRUNUIHYx LnggKyB2MS56OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICA0LjAwCisoMSByb3cpCisK K1NFTEVDVCB2Mi54ICsgdjIuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICA0MS40MAor KDEgcm93KQorCistLSBhY2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0 b28KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdjIueDsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdjIKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgUk9MRSBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJp YywgYyB0ZXh0KTsKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgp LCAnaGVsbG8nKTsKK1NFTEVDVCB2MTsKKyAgICAgICAgICAgICB2MSAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMSwzLjE0MTU5MjY1MzU4OTc5LGhlbGxvKQor KDEgcm93KQorCitMRVQgdjEuYiA9IDEwLjIyMjI7CitTRUxFQ1QgdjE7CisgICAgICAgIHYxICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMixoZWxsbykKKygxIHJvdykK KworLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEw OworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNh dXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQorTElORSAxOiBMRVQg djEueCA9IDEwOworICAgICAgICAgICAgXgorLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11 bHRpIGNvbHVtbiBxdWVyeQorTEVUIHYxID0gKE5VTEw6OnQxKS4qOworRVJST1I6ICBhc3NpZ25t ZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgMyBjb2x1bW5zCitMSU5FIDE6IExFVCB2MSA9IChOVUxM Ojp0MSkuKjsKKyAgICAgICAgICAgICAgICAgIF4KKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJ QlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBE Uk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYxOworICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0t LQorICgxLDEwLjIyMjIpCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0 MSBBREQgQVRUUklCVVRFIGMgaW50OworU0VMRUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0t LS0tLS0tLS0tCisgKDEsMTAuMjIyMiwpCisoMSByb3cpCisKK0xFVCB2MSA9ICgxMCwgMTAuMywg MjApOworU0VMRUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEwLDEw LjMsMjApCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFU VFJJQlVURSBiOworU0VMRUNUIHYxOworICAgdjEgICAgCistLS0tLS0tLS0KKyAoMTAsMjApCiso MSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRF UiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50OworRVJST1I6ICBjYW5ub3QgYWx0 ZXIgdHlwZSAidDEiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnYxIiB1c2VzIGl0 CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBUWVBFIHQxOworLS0gdGhlIHRhYmxlIHR5cGUgY2Fu IGJlIHVzZWQgYXMgY29tcG9zaXRlIHR5cGUgdG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEg aW50LCBiIG51bWVyaWMsIGMgZGF0ZSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rl c3Q7CitMRVQgdmFyMSA9ICgxMCwgcGkoKSwgJzIwMjMtMDUtMjYnKTsKK1NFTEVDVCB2YXIxOwor ICAgICAgICAgICAgICAgdmFyMSAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICgxMCwzLjE0MTU5MjY1MzU4OTc5LDA1LTI2LTIwMjMpCisoMSByb3cp CisKKy0tIHNob3VsZCBmYWlsIGR1ZSBkZXBlbmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3Qg QUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInN2 YXJfdGVzdCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAor LS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworRVJST1I6ICBjYW5ub3QgZHJv cCB0YWJsZSBzdmFyX3Rlc3QgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVU QUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSBzdmFyX3Rlc3QKK0hJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0 b28uCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKy0tIGFycmF5 cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljW107CitMRVQg dmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOworU0VMRUNUIHZhcjE7 CisgICAgdmFyMSAgICAKKy0tLS0tLS0tLS0tLQorIHsxMC4xLDIuMX0KKygxIHJvdykKKworLS0g TEVUIHRhcmdldCBkb2Vzbid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVy YXRlX3NlcmllcygxLDMpXSA9IDEwMDsKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIExFVAorTElORSAxOiBMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMo MSwzKV0gPSAxMDA7CisgICAgICAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0t IGFycmF5cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBi IG51bWVyaWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEw LjEsIEFSUkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOwor ICAgICAgICB2YXIxICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIsInswLjAs MC4wfSIpCisoMSByb3cpCisKK0xFVCB2YXIxLmJbMV0gPSAxMC4zOworU0VMRUNUIHZhcjE7Cisg ICAgICAgIHZhcjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMC4yLCJ7MTAu MywwLjB9IikKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOwor LS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nv c3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90 YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIg PSAyOworLS0gdGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rl c3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJv IGludDsKK0xFVCB6ZXJvID0gMDsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwCitTRUxFQ1QgY291 bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisgY291bnQgCistLS0tLS0t CisgICAxMDAKKygxIHJvdykKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVz dCBXSEVSRSBhJTEwID0gemVybzsKKyAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4g IFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJv KQorKDMgcm93cykKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0 KTsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisgemVybyAKKy0tLS0t LQorIDEwMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFy X3Rlc3Q7CitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVf Y29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFy YWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworLS0gdGhlIHJlc3VsdCBvZiB2aWV3IHNob3VsZCBi ZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CitMRVQgdmFyMSA9IDEwOworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NF KHZhcjEsIDApIEFTIHJlc3VsdDsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAor LS0tLS0tLS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRP IG9uOworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAx MAorKDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb2ZmOworRFJPUCBWSUVX IHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcmlkIGlu dDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CitMRVQgdmFyaWQgPSAx OworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZS T00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwgMTAwCisoMSByb3cp CisKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVD VCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwgMjAwCiso MSByb3cpCisKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNU ICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCB2IAorLS0tLSstLS0KKygwIHJvd3MpCisKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKy0tIHZpc2liaWxpdHkgY2hl Y2sKKy0tIHZhcmlhYmxlcyBzaG91bGQgYmUgc2hhZG93ZWQgYWx3YXlzCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB0ZXh0OworU0VMRUNUIHZhcjEucmVsbmFtZSBGUk9NIHBnX2NsYXNzIHZhcjEg V0hFUkUgdmFyMS5yZWxuYW1lID0gJ3BnX2NsYXNzJzsKKyByZWxuYW1lICAKKy0tLS0tLS0tLS0K KyBwZ19jbGFzcworKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVEFCTEUg eHh0YWIoYXZhciBpbnQpOworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDMzMyk7CitDUkVBVEUg VFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB4eHRhYiBBUyB4eHR5 cGU7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOworLS0gaXQgaXMgYW1iaWd1b3VzLCBi dXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOwor IGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAor KDIgcm93cykKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKy0tIHNob3Vs ZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAor LS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHB1YmxpYy5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAgICAKKyAgICAgCiso MiByb3dzKQorCitEUk9QIFZBUklBQkxFIHh4dGFiOworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4 eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgcHVibGljLmF2YXI7CitEUk9QIFRZUEUgeHh0eXBlOworRFJPUCBUQUJMRSB4eHRhYjsK Ky0tIFRoZSB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkgdGFibGUgb3IgYnkgYWxpYXMKK0NS RUFURSBUWVBFIHB1YmxpYy5zdmFyX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQpOworQ1JF QVRFIFZBUklBQkxFIHB1YmxpYy5zdmFyIEFTIHB1YmxpYy5zdmFyX3R5cGU7CitDUkVBVEUgVEFC TEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZB TFVFUygxMCwgMjApOworTEVUIHB1YmxpYy5zdmFyID0gKDEwMCwgMjAwLCAzMDApOworLS0gc2hv dWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFyOworIGEg IHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJP TSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4q IEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJv dykKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAg ICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBw dWJsaWMuc3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVi bGljLnN2YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAg fCAyMDAgfCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlz ZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAg Y29sdW1uIHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIu YyBGUk9NIHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5 IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAor LS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOwor IGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3Zh cjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBzaG93IHZh cmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2YXIgICAgICAKKy0tLS0tLS0tLS0t LS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VMRUNUIHB1YmxpYy5zdmFyLmM7Cisg IGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKyAg YSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQorIDEwMCB8IDIwMCB8IDMwMAorKDEg cm93KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1Qg cHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJST1I6ICBjb2x1bW4gc3Zhci5jIGRv ZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2 YXI7CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBw dWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAgYyAgCistLS0tLQorIDMwMAorKDEg cm93KQorCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3Zh cjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworQ1JFQVRFIFRZUEUgYWIgQVMgKGEgaW50 ZWdlciwgYiBpbnRlZ2VyKTsKK0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworQ1JFQVRFIFRB QkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVT KDEwLDIwKTsKKy0tIHdlIHNob3VsZCB0byBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2 X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKK0NS RUFURSBWQVJJQUJMRSB2X2FiLmEgQVMgaW50ZWdlcjsKKy0tIHdlIHNob3VsZCB0byBzZWUgdGFi bGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdl9hYjsKK0RST1AgVEFCTEUgdl9hYjsKK0RST1AgVFlQRSBhYjsKK0NS RUFURSBUWVBFIHRfYW1fdHlwZSBBUyAoYiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CitT RVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbSBBUyB0X2Ft X3R5cGU7CitMRVQgeHh4X2FtID0gUk9XKDEwKTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4 eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkKKygxIHJvdykKKworQ1JFQVRFIFZBUklB QkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKy0tIHNo b3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgx MCkKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFt YmlndW91cworU0VMRUNUIHh4eF9hbS5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVy ZW5jZSAieHh4X2FtLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgeHh4X2FtLmI7Cisg ICAgICAgICAgICAgICBeCistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VM RUNUIHB1YmxpYy54eHhfYW0uYjsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qg OiJEQk5BTUUiLnh4eF9hbS5iOworIGIgIAorLS0tLQorIDIwCisoMSByb3cpCisKK0NSRUFURSBU QUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworLS0g d2Ugc2hvdWxkIHRvIHNlZSB0YWJsZQorU0VMRUNUIHh4eF9hbS5iIEZST00geHh4X2FtOworIGIg IAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKyBiICAK Ky0tLS0KKyAxMAorKDEgcm93KQorCitEUk9QIFRBQkxFIHh4eF9hbTsKK0RST1AgVkFSSUFCTEUg cHVibGljLnh4eF9hbTsKK0RST1AgVkFSSUFCTEUgeHh4X2FtLmI7CitEUk9QIFNDSEVNQSB4eHhf YW07CitDUkVBVEUgU0NIRU1BIDoiREJOQU1FIjsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIu OiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5B TUUiLjoiREJOQU1FIi5iIEFTIGludDsKK1NFVCBzZWFyY2hfcGF0aCBUTyA6IkRCTkFNRSI7Cist LSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Np b24gdmFyaWFibGUgcmVmZXJlbmNlICJyZWdyZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAx OiBTRUxFQ1QgInJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUg YW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJlZ3Jlc3Npb24ucmVncmVzc2lvbi5iIiBpcyBhbWJp Z3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdyZXNzaW9uIi4icmVncmVzc2lvbiIuYjsKKyAgICAg ICAgICAgICAgIF4KK0NSRUFURSBUQUJMRSA6IkRCTkFNRSIoYiBpbnQpOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6IkRCTkFNRSI7CisgYiAKKy0tLQorKDAgcm93 cykKKworRFJPUCBUQUJMRSA6IkRCTkFNRSI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRC TkFNRSIuYjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitE Uk9QIFNDSEVNQSA6IkRCTkFNRSI7CitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA0MmRmYjk1YTAyMi4uY2NlNTJlN2Fl NmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTU5 LDMgKzU5LDYyOCBAQCBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CiBEUk9QIFNDSEVNQSBz dmFydGVzdDsKIAogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKKy0tIGNoZWNr IGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKKworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeChp bnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50KQorUkVUVVJOUyBpbnQg QVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VDVVJJVFkgREVGSU5FUjsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkKK1JFVFVSTlMgaW50 IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KQorUkVUVVJOUyBp bnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWwg U0VDVVJJVFkgREVGSU5FUjsKKworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKK1NFTEVD VCBwbHBnc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisKKy0tIHNob3VsZCB0 byBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CisKK1NFTEVDVCB2YXIxOworU0VM RUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworCistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nf bm9vd25lcjsKKworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7 CisKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjAp OworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5D VElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsKK0RST1AgRlVO Q1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCk7CisK K0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZp ZXdzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCistLSB1c2UgdmFyaWFibGVz IGluIHZpZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEg KyB2LCAwKSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYpOworU0VMRUNU ICogRlJPTSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3Rf dmlldzsKKworLS0gc3RhcnQgYSBuZXcgc2Vzc2lvbgorXGMKKworU0VMRUNUICogRlJPTSB0ZXN0 X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKworLS0g c2hvdWxkIGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxk IGJlIG9rCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7CisKKy0tIHVzZSB2YXJpYWJsZXMg aW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngxKHZhcmNo YXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywgJyB8fCAkMSAkJCBM QU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MiggdmFyY2hh cikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8fCAnLCAnIHx8ICQxICQkIExB TkdVQUdFIHNxbDsKKworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9ICdzdHIyJzsKKwor U0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCistLSBpbmxpbmluZyBpcyBibG9ja2Vk CitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxs bycpKTsKKworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZVTkNUSU9OIHNx bGZ4Mih2YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsK KworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB0byB3b3JrCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBudW1lcmljOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBn c3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2YXIxOyBFTkQgJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmlj X3BsYW47CisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKK0xFVCB2YXIx ID0gMy4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK KworLS0gZGVwZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3VsZCB0byB3b3JrCitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VM RUNUIHBscGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngo KTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKKwor c2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCistLSB1c2FnZSBMRVQgc3RhdGVtZW50 IGluIHBscGdzcWwgc2hvdWxkIHRvIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NS RUFURSBWQVJJQUJMRSB2YXIyIG51bWVyaWNbXTsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIy ID0gJ3t9Jzo6aW50W107CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9 IGk7CisgICAgTEVUIHZhcjJbdmFyMV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNF ICdyZXN1bHQgYXJyYXk6ICUnLCB2YXIyOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBv cnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBm cm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKKworQ1JFQVRF IFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsg RU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBu b3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKKworRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBF TkQgJCQ7CisKK0RST1AgUFJPQ0VEVVJFIHAoaW50KTsKK0RST1AgVkFSSUFCTEUgdjsKKworLS0g dGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFy MSA9IHBpKCk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3Qu dmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKworU0VUIHNlYXJjaF9wYXRoIFRP IHN2YXJ0ZXN0OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gcGkoKSArIDEwOworU0VM RUNUIHZhcjE7CisKK1JFU0VUIHNlYXJjaF9wYXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FT Q0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKKworLS0gdmFyaWFibGVzIGNh biBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElP TiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitDT01NSVQ7CisKK1NFTEVDVCB2YXIx OworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3Qgb2YgZG9tYWlucworQ1JFQVRFIERP TUFJTiBpbnRfZG9tYWluIEFTIGludCBOT1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAxMDApOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50X2RvbWFpbjsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVD VCB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIx OworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAxMDsKKworLS0gc2hvdWxkIGZhaWwKK0xF VCB2YXIxID0gTlVMTDsKKworLS0gbm90ZSAtIGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90IHN1cHBv cnRlZCB5ZXQgKGxpa2UgUExwZ1NRTCkKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBET01B SU4gaW50X2RvbWFpbjsKKworLS0gYW4gZXhwcmVzc2lvbiBzaG91bGQgYmUgdW5rbm93bi10eXBl CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJl IG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntb NSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VM RUNUIHZhcjE7CisKKy0tSXQgc2hvdWxkIHRvIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RPICQkCitC RUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9 Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9 JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsK K1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCBzdmFy dGVzdDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CisK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGlu dFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitMRVQgdmFy Mlt2YXIxXSA9IDA7CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7 CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFT IGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitTRUxF Q1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0aGUgTEVUIHN0YXRl bWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKKworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKworLS0gc2hv dWxkIGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworTEVUIHZhcjEgPSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gY29tcG9z aXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQsIHogbnVt ZXJpYygxMCwyKSk7CisKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVBVEUgVkFS SUFCTEUgdjIgQVMgc3ZfeHl6OworCitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7CitMRVQgdjIgPSAo MTAsIDIwLCAzLjE0ICogMTApOworCistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBhcmUgcHJl cGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKKworU0VMRUNUIHYxOworU0VMRUNUIHYy OworU0VMRUNUICh2MSkuKjsKK1NFTEVDVCAodjIpLio7CisKK1NFTEVDVCB2MS54ICsgdjEuejsK K1NFTEVDVCB2Mi54ICsgdjIuejsKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hv dWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVD VCB2Mi54OworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHYxOworRFJP UCBWQVJJQUJMRSB2MjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworQ1JF QVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CisKK0NSRUFURSBWQVJJ QUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVDVCB2MTsK K0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGZhaWwsIGF0dHJp YnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworCistLSBzaG91bGQgZmFpbCwgZG9u J3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7CisKKy0t IGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYxOworCist LSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKK1NFTEVD VCB2MTsKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYxOworCist LSBzaG91bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQRSB0MSBB TFRFUiBBVFRSSUJVVEUgYyBUWVBFIGludDsKKworRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVFlQ RSB0MTsKKworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRlIHR5cGUg dG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0ZSk7CitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CisKK0xFVCB2YXIxID0gKDEwLCBwaSgp LCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsIGR1ZSBkZXBl bmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0Owor CistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCistLSBhcnJheXMgYXJlIHN1cHBvcnRlZAor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBBUlJBWVsxLjEs Mi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOworCistLSBMRVQgdGFyZ2V0 IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVz KDEsMyldID0gMTAwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGFycmF5cyBpbnNpZGUg Y29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVyaWNbXSk7CitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFSUkFZWzAuMCwg MC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOworTEVUIHZhcjEuYlsxXSA9 IDEwLjM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQx OworCistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0 dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFs bGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dh dGhlciA9IDI7CisKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFCTEUg c3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFSSUFC TEUgemVybyBpbnQ7CitMRVQgemVybyA9IDA7CisKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwCitT RUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisKKy0tIHBh cmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisKK0xF VCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CisKKy0tIHJlc3VsdCBz aG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworCitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFy YWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitS RVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworCistLSB0aGUgcmVzdWx0IG9m IHZpZXcgc2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CisKK0NSRUFURSBWSUVXIHZhcjF2aWV3IEFT IFNFTEVDVCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1bHQ7CisKK1NFTEVDVCAqIEZST00gdmFy MXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKKworU0VMRUNUICogRlJP TSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsKKworRFJPUCBW SUVXIHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgVkFSSUFCTEUgdmFy aWQgaW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKKworTEVUIHZh cmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitTRUxF Q1QgKiBGUk9NIHN2YXJfdGVzdDsKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUg aWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworREVMRVRFIEZST00gc3Zhcl90 ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKworRFJPUCBU QUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOworCisKKy0tIHZpc2liaWxpdHkg Y2hlY2sKKy0tIHZhcmlhYmxlcyBzaG91bGQgYmUgc2hhZG93ZWQgYWx3YXlzCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB0ZXh0OworU0VMRUNUIHZhcjEucmVsbmFtZSBGUk9NIHBnX2NsYXNzIHZh cjEgV0hFUkUgdmFyMS5yZWxuYW1lID0gJ3BnX2NsYXNzJzsKKworRFJPUCBWQVJJQUJMRSB2YXIx OworCitDUkVBVEUgVEFCTEUgeHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyB4eHRhYiBW QUxVRVMoMzMzKTsKKworQ1JFQVRFIFRZUEUgeHh0eXBlIEFTIChhdmFyIGludCk7CisKK0NSRUFU RSBWQVJJQUJMRSB4eHRhYiBBUyB4eHR5cGU7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygx MCk7CisKKy0tIGl0IGlzIGFtYmlndW91cywgYnV0IGNvbHVtbnMgYXJlIHByZWZlcnJlZAorU0VM RUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgYXZh ciBGUk9NIHh4dGFiOworCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmF2YXIgQVMgaW50OworCist LSBzaG91bGQgYmUgb2ssIHNlZSB0aGUgdGFibGUKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy5hdmFyIEZST00geHh0YWI7CisKK0RST1Ag VkFSSUFCTEUgeHh0YWI7CisKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisKK0RST1Ag VkFSSUFCTEUgcHVibGljLmF2YXI7CisKK0RST1AgVFlQRSB4eHR5cGU7CisKK0RST1AgVEFCTEUg eHh0YWI7CisKKy0tIFRoZSB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkgdGFibGUgb3IgYnkg YWxpYXMKK0NSRUFURSBUWVBFIHB1YmxpYy5zdmFyX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBp bnQpOworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5zdmFyIEFTIHB1YmxpYy5zdmFyX3R5cGU7CisK K0NSRUFURSBUQUJMRSBwdWJsaWMuc3ZhcihhIGludCwgYiBpbnQpOworCitJTlNFUlQgSU5UTyBw dWJsaWMuc3ZhciBWQUxVRVMoMTAsIDIwKTsKKworTEVUIHB1YmxpYy5zdmFyID0gKDEwMCwgMjAw LCAzMDApOworCistLSBzaG91bGQgYmUgb2sKKy0tIHNob3cgdGFibGUKK1NFTEVDVCAqIEZST00g cHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zh ci4qIEZST00gcHVibGljLnN2YXI7CisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMu c3ZhcjsKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKwor LS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5z dmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxF Q1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisKK1NFTEVDVCBzdmFyLmEgRlJP TSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hv dyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitT RUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJh aXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBj YW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2 YXIgeDsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVEFCTEUgcHVibGljLnN2 YXI7CitEUk9QIFRZUEUgcHVibGljLnN2YXJfdHlwZTsKKworQ1JFQVRFIFRZUEUgYWIgQVMgKGEg aW50ZWdlciwgYiBpbnRlZ2VyKTsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIgQVMgYWI7CisKK0NS RUFURSBUQUJMRSB2X2FiIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitJTlNFUlQgSU5UTyB2X2Fi IFZBTFVFUygxMCwyMCk7CisKKy0tIHdlIHNob3VsZCB0byBzZWUgdGFibGUKK1NFTEVDVCB2X2Fi LmEgRlJPTSB2X2FiOworCitDUkVBVEUgU0NIRU1BIHZfYWI7CisKK0NSRUFURSBWQVJJQUJMRSB2 X2FiLmEgQVMgaW50ZWdlcjsKKworLS0gd2Ugc2hvdWxkIHRvIHNlZSB0YWJsZQorU0VMRUNUIHZf YWIuYSBGUk9NIHZfYWI7CisKK0RST1AgVkFSSUFCTEUgdl9hYjsKK0RST1AgVEFCTEUgdl9hYjsK K0RST1AgVFlQRSBhYjsKKworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFTIChiIGludCk7CitDUkVB VEUgU0NIRU1BIHh4eF9hbTsKKworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKKworQ1JFQVRF IFZBUklBQkxFIHh4eF9hbSBBUyB0X2FtX3R5cGU7CitMRVQgeHh4X2FtID0gUk9XKDEwKTsKKwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgeHh4X2FtOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2Ft LmIgQVMgaW50OworTEVUIDoiREJOQU1FIi54eHhfYW0uYiA9IDIwOworCistLSBzaG91bGQgYmUg c3RpbGwgb2sKK1NFTEVDVCB4eHhfYW07CisKKy0tIHNob3VsZCBmYWlsLCB0aGUgcmVmZXJlbmNl IHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCB4eHhfYW0uYjsKKworLS0gZW5oYW5jZWQgcmVm ZXJlbmNlcyBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMueHh4X2FtLmI7CitTRUxFQ1QgOiJE Qk5BTUUiLnh4eF9hbS5iOworCitDUkVBVEUgVEFCTEUgeHh4X2FtKGIgIGludCk7CitJTlNFUlQg SU5UTyB4eHhfYW0gVkFMVUVTKDEwKTsKKworLS0gd2Ugc2hvdWxkIHRvIHNlZSB0YWJsZQorU0VM RUNUIHh4eF9hbS5iIEZST00geHh4X2FtOworU0VMRUNUIHguYiBGUk9NIHh4eF9hbSB4OworCitE Uk9QIFRBQkxFIHh4eF9hbTsKK0RST1AgVkFSSUFCTEUgcHVibGljLnh4eF9hbTsKK0RST1AgVkFS SUFCTEUgeHh4X2FtLmI7CitEUk9QIFNDSEVNQSB4eHhfYW07CisKK0NSRUFURSBTQ0hFTUEgOiJE Qk5BTUUiOworCitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSIg QVMgdF9hbV90eXBlOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYiBBUyBp bnQ7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyA6IkRCTkFNRSI7CisKKy0tIHNob3VsZCBiZSBhbWJp Z3VvdXMKK1NFTEVDVCA6IkRCTkFNRSIuYjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0b28K K1NFTEVDVCA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CisKK0NSRUFURSBUQUJMRSA6IkRCTkFNRSIo YiBpbnQpOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBGUk9NIDoiREJO QU1FIjsKKworRFJPUCBUQUJMRSA6IkRCTkFNRSI7CisKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUi LjoiREJOQU1FIi5iOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1F IjsKK0RST1AgU0NIRU1BIDoiREJOQU1FIjsKKworUkVTRVQgc2VhcmNoX3BhdGg7CmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDgzN2U1YjgzYTNmLi5iYzNkYmQ3MjYwNCAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE0OTQsNiArMTQ5NCw3IEBAIExhcmdlT2JqZWN0RGVzYwog TGF0Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xldFN0bXQKIExl eERlc2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQpAQCAtMjU5MCw2ICsyNTkxLDcgQEAg U2VyaWFsaXplZFRyYW5zYWN0aW9uU3RhdGUKIFNlc3Npb24KIFNlc3Npb25CYWNrdXBTdGF0ZQog U2Vzc2lvbkVuZFR5cGUKK1Nlc3Npb25WYXJpYWJsZVZhbHVlCiBTZXRDb25zdHJhaW50U3RhdGUK IFNldENvbnN0cmFpbnRTdGF0ZURhdGEKIFNldENvbnN0cmFpbnRUcmlnZ2VyRGF0YQpAQCAtMjc4 Miw2ICsyNzg0LDkgQEAgU3VwcG9ydFJlcXVlc3RSb3dzCiBTdXBwb3J0UmVxdWVzdFNlbGVjdGl2 aXR5CiBTdXBwb3J0UmVxdWVzdFNpbXBsaWZ5CiBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3Rvbmlj CitTVmFyaWFibGUKK1NWYXJpYWJsZURhdGEKK1NWYXJpYWJsZVN0YXRlCiBTeW4KIFN5bmNPcHMK IFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ1LjIKCg== --000000000000e342c7061e7d37f9 Content-Type: text/x-patch; charset="US-ASCII"; name="v20240730-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20240730-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lz8wdwln19 RnJvbSA1YmIxYWE3ODUwNDEyYTlhNThkMmEwM2E1MjZiZTg0Y2RkNTQ4ZWE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIwXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDMxICsrKwogZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCAgICAgICAg ICAgICAgIHwgIDI0ICsrCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTMgKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgIDE1ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAg ICAgfCAgIDMgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sICAg IHwgIDI2ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAg fCAxNzggKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAg ICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAg ICAgICAgIHwgICA3ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAg ICAgICAgfCAxNTEgKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5z Z21sICAgICAgICAgICB8IDExNyArKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21s ICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwg ICAgICAgICAgICAgICAgICB8ICAgNyArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAg ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAg ICAgICAgICAgICB8ICA3NyArKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5j ICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAg ICAgICAgICAgIHwgMTMzICsrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmMgICAgICAgICAgIHwgMTIxICsrKysrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyAgICAgICAgICAgICB8IDI1NSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgNDEgKysrCiBzcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysrKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAxMTMgKysrKysrKysKIHNyYy9iaW4vcGdfZHVt cC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgOSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jICAgICAgICAgICAgICAgICAgICAgfCAxOTUgKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxOSArKwogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA2NCArKysrKwogc3JjL2Jpbi9wc3Fs L2NvbW1hbmQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9k ZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrCiBzcmMvYmluL3Bz cWwvZGVzY3JpYmUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3Fs L2hlbHAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA0MiArKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFs b2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2RlZmF1bHRfYWNsLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaCAgICAgICAgICAgICB8ICA4MSArKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNiArKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hl LmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVw ZW5kZW5jeS5vdXQgICAgICB8ICAxNyArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5v dXQgICAgICAgICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgICAgfCAgNTcgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5 LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAg ICAgICAgICAgICAgIHwgIDIxICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwgICAgfCAgNjEgKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 ICAgICAgICAgICAgICB8ICAgNCArCiA2NiBmaWxlcyBjaGFuZ2VkLCAyMzg3IGluc2VydGlvbnMo KyksIDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBiNjU0ZmFl MWIyZi4uZGUxMjJlNTQzZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0zNjksNiArMzY5LDExIEBACiAg ICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy11c2VyLW1hcHBpbmciPjxzdHJ1 Y3RuYW1lPnBnX3VzZXJfbWFwcGluZzwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAg IDxlbnRyeT5tYXBwaW5ncyBvZiB1c2VycyB0byBmb3JlaWduIHNlcnZlcnM8L2VudHJ5PgogICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctdmFyaWFibGUiPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvbGlu az48L2VudHJ5PgorICAgICAgPGVudHJ5PnNlc3Npb24gdmFyaWFibGVzPC9lbnRyeT4KKyAgICAg PC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpAQCAtOTcyNiw0 ICs5NzMxLDExOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICA8L3RhYmxlPgogIDwvc2Vj dDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpv bmU9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICAgPHByaW1hcnk+cGdfdmFyaWFibGU8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5h bWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IHN0b3JlcyBpbmZvcm1hdGlvbiBhYm91dAorICAg c2Vzc2lvbiB2YXJpYWJsZXMuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBE ZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhl YWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ0eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVjdG5h bWU+cGdfdHlwZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhl IHZhcmlhYmxlJ3MgZGF0YSB0eXBlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5h bWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lc3BhY2U8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1uYW1lc3Bh Y2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIHRoaXMgdmFyaWFibGUK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIE93bmVyIG9mIHRoZSB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0Zmll bGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZpYyBkYXRhCisgICAgICAgc3VwcGxpZWQgYXQgdmFyaWFi bGUgY3JlYXRpb24gdGltZSAoZm9yIGV4YW1wbGUsIHRoZSBtYXhpbXVtCisgICAgICAgbGVuZ3Ro IG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlwZT4gY29sdW1uKS4gIEl0IGlzIHBhc3NlZCB0bworICAg ICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQgZnVuY3Rpb25zIGFuZCBsZW5ndGggY29lcmNpb24gZnVu Y3Rpb25zLgorICAgICAgIFRoZSB2YWx1ZSB3aWxsIGdlbmVyYWxseSBiZSAtMSBmb3IgdHlwZXMg dGhhdCBkbyBub3QgbmVlZCA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4uCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0aW9uIG9mIHRoZSB2YXJpYWJsZSwgb3Ig emVybyBpZiB0aGUgdmFyaWFibGUgaXMKKyAgICAgICBub3Qgb2YgYSBjb2xsYXRhYmxlIGRhdGEg dHlwZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyYWNsPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+YWNsaXRlbVtdPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgQWNjZXNzIHByaXZpbGVnZXM7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1ncmFu dCIvPiBhbmQKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtcmV2b2tlIi8+CisgICAgICAgZm9y IGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJv ZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgogPC9jaGFwdGVyPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmlu ZGV4IDYyNmQzNTUxNGNjLi43NTMxZGUxN2ZkMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTI5OCw2ICs1Mjk4LDM3IEBA IEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAm Z3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgIDxzZWN0 MSBpZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlhYmxl czwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4K KyAgICA8cHJpbWFyeT5TZXNzaW9uIHZhcmlhYmxlczwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJt PgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1h cnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIGRhdGFiYXNlIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24g dmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVp ciBhY2Nlc3MKKyAgICBpcyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4g YW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2 YXJpYWJsZSBjYW4gYmUgY3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFC TEU8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluc2lk ZSBhIHF1ZXJ5IG9yIGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUKKyAg ICA8cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBzYW1lIG5hbWUu ICBTaW1pbGFybHksIHRoZQorICAgIG5hbWUgb2YgYSBmdW5jdGlvbiBvciBwcm9jZWR1cmUgYXJn dW1lbnQgb3IgYSBQTC9wZ1NRTCB2YXJpYWJsZSAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0icGxw Z3NxbC1kZWNsYXJhdGlvbnMiLz4pIGNhbiBzaGFkb3cgYSBzZXNzaW9uIHZhcmlhYmxlCisgICAg aW4gdGhlIHJvdXRpbmUncyBib2R5LiAgU3VjaCBjb2xsaXNpb25zIG9mIGlkZW50aWZpZXJzIGNh biBiZSByZXNvbHZlZAorICAgIGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVyczogU2Vzc2lv biB2YXJpYWJsZXMgY2FuIGJlIHF1YWxpZmllZCB3aXRoCisgICAgdGhlIHNjaGVtYSBuYW1lLCBj b2x1bW5zIGNhbiB1c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQor ICAgIGJsb2NrIGxhYmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRp bmUgbmFtZS4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVy cyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9ldmVudC10 cmlnZ2VyLnNnbWwKaW5kZXggOGUwMDljY2EwNTAuLjE1YjJhZjk5ZGNhIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9ldmVudC10 cmlnZ2VyLnNnbWwKQEAgLTQyNCw2ICs0MjQsMTQgQEAKICAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWdu PSJsZWZ0Ij48L2VudHJ5PgogICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxl bnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+QUxURVIgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAg ICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxp dGVyYWw+QUxURVIgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249 ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtNzEyLDYgKzcyMCwxNCBA QAogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2Vu dHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+ CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5DUkVB VEUgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50 ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWdu PSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFs aWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAg ICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+Q1JFQVRFIFZJRVc8L2xpdGVyYWw+PC9l bnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+ PC9lbnRyeT4KQEAgLTEwMDAsNiArMTAxNiwxNCBAQAogICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249 ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVu dHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5EUk9QIFZBUklBQkxFPC9saXRlcmFsPjwvZW50cnk+ CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KKyAgICAg ICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRl cmFsPkRST1AgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggYjM5Zjk3ZGM4ZGUu LmMzYzRmYmIzZDliIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAgLTI1NjQ3LDYgKzI1NjQ3LDE5IEBAIFNFTEVDVCByZWxu YW1lIEZST00gcGdfY2xhc3MgV0hFUkUgcGdfdGFibGVfaXNfdmlzaWJsZShvaWQpOwogICAgICAg ICBJcyB0eXBlIChvciBkb21haW4pIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CiAgICAgICAgPC9w YXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkg cm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAg ICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdfdmFyaWFibGVfaXNfdmlzaWJs ZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ192 YXJpYWJsZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhcmlhYmxlPC9wYXJh bWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwv cmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJcyBz ZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwv dGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IDQwNWZlNmRjOGI5Li5kNWY0YmNjNmUwOCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKQEAgLTE2NTQsNiArMTY1NCwyMSBAQAogICAgPC9nbG9zc2RlZj4KICAgPC9nbG9z c2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zZXNzaW9uLXZhcmlhYmxlIj4K KyAgIDxnbG9zc3Rlcm0+U2Vzc2lvbiB2YXJpYWJsZTwvZ2xvc3N0ZXJtPgorICAgPGdsb3NzZGVm PgorICAgIDxwYXJhPgorICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9s ZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKKyAgICAgdmFsdWUgaXMgcHJpdmF0 ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4K KyAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJv bGxlZCBieSBwcml2aWxlZ2VzLAorICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVj dHMuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwg c2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAgICA8L3BhcmE+ CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LXNoYXJlZC1tZW1vcnkiPgogICAgPGdsb3NzdGVybT5TaGFyZWQgbWVtb3J5PC9nbG9z c3Rlcm0+CiAgICA8Z2xvc3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2 N2EuLjJmNjdkZTNlMjFiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0Nyw3IEBA IENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0 b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlwZS5zZ21s Ij4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAgICAgICBTWVNURU0gImFsdGVyX3VzZXIuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5nICAgU1lTVEVNICJhbHRlcl91c2VyX21hcHBpbmcu c2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlhYmxlICAgICAgU1lTVEVNICJhbHRlcl92YXJpYWJs ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcu c2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXplLnNnbWwi PgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CkBAIC05 OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBp biB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZVR5cGUgICAgICAgICBTWVNURU0gImNy ZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3Jl YXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVh dGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlVmFyaWFibGUgICAgIFNZU1RF TSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZ U1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBkZWFsbG9jYXRlICAgICAgICAgU1lT VEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFFTlRJVFkgZGVjbGFyZSAgICAgICAgICAgIFNZU1RF TSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVz YWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BU eXBlICAgICAgICAgICBTWVNURU0gImRyb3BfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2Vy ICAgICAgICAgICBTWVNURU0gImRyb3BfdXNlci5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyTWFw cGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgZHJvcFZh cmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BW aWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21sIj4KIDwhRU5USVRZIGVuZCAgICAg ICAgICAgICAgICBTWVNURU0gImVuZC5zZ21sIj4KIDwhRU5USVRZIGV4ZWN1dGUgICAgICAgICAg ICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZh dWx0X3ByaXZpbGVnZXMuc2dtbAppbmRleCA4OWFhY2VjNGZhYi4uMDQxYzc4ZDQzMmYgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbApAQCAtNTEs NiArNTEsMTAgQEAgR1JBTlQgeyB7IFVTQUdFIHwgQ1JFQVRFIH0KICAgICBPTiBTQ0hFTUFTCiAg ICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFt ZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0K IAorR1JBTlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9O IFZBUklBQkxFUworICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdS QU5UIE9QVElPTiBdCisKIFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQogICAgIHsgeyBTRUxF Q1QgfCBJTlNFUlQgfCBVUERBVEUgfCBERUxFVEUgfCBUUlVOQ0FURSB8IFJFRkVSRU5DRVMgfCBU UklHR0VSIHwgTUFJTlRBSU4gfQogICAgIFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQpA QCAtODMsNiArODcsMTIgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gU0NI RU1BUwogICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FE RSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNF TEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZB UklBQkxFUworICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FT Q0FERSB8IFJFU1RSSUNUIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAt MTE3LDE0ICsxMjcsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgog ICAgQ3VycmVudGx5LAogICAgb25seSB0aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVz IChpbmNsdWRpbmcgdmlld3MgYW5kIGZvcmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVu Y3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1ZGluZyBkb21haW5zKSBjYW4gYmUKLSAgIGFsdGVyZWQu ICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9j ZWR1cmVzLgotICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxs aXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21t YW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5n IGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJl cyB0YWtlbgotICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9u bHkgdGhlCi0gICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQu ICBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNl cywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpLCBhbmQgc2Vzc2lvbgorICAg dmFyaWFibGVzIGNhbiBiZSBhbHRlcmVkLiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGlu Y2x1ZGUgYWdncmVnYXRlcworICAgYW5kIHByb2NlZHVyZXMuICBUaGUgd29yZHMgPGxpdGVyYWw+ RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQKKyAgIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBh cmUgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuCisgICAoPGxpdGVyYWw+Uk9VVElORVM8L2xp dGVyYWw+IGlzIHByZWZlcnJlZCBnb2luZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZAorICAgdGVy bSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuIHRvZ2V0aGVyLiAgSW4gZWFybGll ciBQb3N0Z3JlU1FMCisgICByZWxlYXNlcywgb25seSB0aGUgd29yZCA8bGl0ZXJhbD5GVU5DVElP TlM8L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90CisgICBwb3NzaWJsZSB0byBzZXQg ZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVs eS4pCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDg3NTcwZTdkOGIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAg LTAsMCArMSwxNzggQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0 ZXJ2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgIDxw cmltYXJ5PkFMVEVSIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5hbHRlcmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkFMVEVSIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVt Pjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8 L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5B TFRFUiBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+CisgICBjaGFuZ2UgdGhlIGRl ZmluaXRpb24gb2YgYSBzZXNzaW9uIHZhcmlhYmxlCisgIDwvcmVmcHVycG9zZT4KKyA8L3JlZm5h bWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBWQVJJQUJMRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRP IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIFZB UklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVOQU1FIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFj ZWFibGU+CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgVGhlIDxjb21tYW5kPkFMVEVSIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNoYW5n ZXMgdGhlIGRlZmluaXRpb24gb2YgYW4KKyAgIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUuIFRo ZXJlIGFyZSBzZXZlcmFsIHN1YmZvcm1zOgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPk9XTkVSPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG93bmVy IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPlJFTkFNRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlNFVCBTQ0hFTUE8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gbW92 ZXMgdGhlIHNlc3Npb24gdmFyaWFibGUgaW50byBhbm90aGVyIHNjaGVtYS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlz dD4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgT25seSB0aGUgb3duZXIgb3IgYSBzdXBlcnVz ZXIgaXMgYWxsb3dlZCB0byBhbHRlciBhIHNlc3Npb24gdmFyaWFibGUuCisgICBJbiBvcmRlciB0 byBtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIG9uZSBzY2hlbWEgdG8gYW5vdGhlciwgdGhl IHVzZXIKKyAgIG11c3QgYWxzbyBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHBy aXZpbGVnZSBvbiB0aGUgbmV3IHNjaGVtYSAob3IKKyAgIGJlIGEgc3VwZXJ1c2VyKS4KKworICAg SW4gb3JkZXIgdG8gbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBvd25lcnNoaXAgZnJvbSBvbmUg cm9sZSB0byBhbm90aGVyLAorICAgdGhlIHVzZXIgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGlu ZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3CisgICBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBt dXN0IGhhdmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlCisgICBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSdzIHNjaGVtYSAob3IgYmUgYSBzdXBlcnVzZXIpLiBUaGVzZSBy ZXN0cmljdGlvbnMKKyAgIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBk byBhbnl0aGluZyB5b3UgY291bGRuJ3QgZG8gYnkKKyAgIGRyb3BwaW5nIGFuZCByZWNyZWF0aW5n IHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICA8dmFy aWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5hbWUgKHBvc3NpYmx5IHNjaGVtYS1x dWFsaWZpZWQpIG9mIHRoZSBleGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlCisgICAgICAgIHRvIGFs dGVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vzc2lv biB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg ICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgdXNlciBuYW1lIG9mIHRo ZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAg ICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1h PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoZSBuZXcgc2NoZW1hIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8L3Zh cmlhYmxlbGlzdD4KKyAgIDwvcGFyYT4KKyAgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSBhIHNlc3Np b24gdmFyaWFibGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBmb28gUkVOQU1F IFRPIGJvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRv IGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9s aXRlcmFsPiB0bworICAgPGxpdGVyYWw+am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4K K0FMVEVSIFZBUklBQkxFIGJvbyBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIHNjaGVtYSBvZiB0aGUgc2Vzc2lv biB2YXJpYWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5wcml2YXRl PC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NI RU1BIHByaXZhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJh PgorICAgU2Vzc2lvbiB2YXJpYWJsZXMgYW5kIHRoaXMgY29tbWFuZCBpbiBwYXJ0aWN1bGFyIGFy ZSBhIFBvc3RncmVTUUwgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MSBpZD0ic3FsLWFsdGVydmFyaWFibGUtc2VlLWFsc28iPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlz dD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY29tbWVudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0 M2M1NmIxMzMuLjIxY2Q4MDgxOGZiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1l bnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtNjUsNiArNjUs NyBAQCBDT01NRU5UIE9OCiAgIFRSQU5TRk9STSBGT1IgPHJlcGxhY2VhYmxlPnR5cGVfbmFtZTwv cmVwbGFjZWFibGU+IExBTkdVQUdFIDxyZXBsYWNlYWJsZT5sYW5nX25hbWU8L3JlcGxhY2VhYmxl PiB8CiAgIFRSSUdHRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFt ZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9u YW1lPC9yZXBsYWNlYWJsZT4gfAogICBUWVBFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKKyAgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBWSUVXIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+CiB9IElT IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0cmluZ19saXRlcmFsPC9yZXBsYWNl YWJsZT4gfCBOVUxMIH0KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2No ZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAppbmRleCBlZDY5 Mjk4Y2NjNi4uYTgzNGM4NzZiYzkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCkBA IC0xMDMsOSArMTAzLDEwIEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBBVVRIT1JJWkFU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwCiAgICAgICAgIHNjaGVt YS4gQ3VycmVudGx5LCBvbmx5IDxjb21tYW5kPkNSRUFURQogICAgICAgICBUQUJMRTwvY29tbWFu ZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCiAgICAg ICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFNFUVVFTkNFPC9jb21tYW5kPiwg PGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5H UkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMKLSAgICAgICAgd2l0aGluIDxj b21tYW5kPkNSRUFURSBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1h eQotICAgICAgICBiZSBjcmVhdGVkIGluIHNlcGFyYXRlIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hl bWEgaXMgY3JlYXRlZC4KKyAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4sIDxjb21tYW5kPkdSQU5U PC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFZBUklBQkxFPC9jb21tYW5k PiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcyB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAg IFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5IGJlIGNyZWF0ZWQg aW4gc2VwYXJhdGUKKyAgICAgICAgY29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVk LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5 PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmVjMTY1YWI5NmZjCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE1MSBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZBUklB QkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+ c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vjb25k YXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFU RSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+Cisg IDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8 L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxFPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJw b3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NS RUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KKzwvc3lub3BzaXM+Cisg PC9yZWZzeW5vcHNpc2Rpdj4KKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5k PiBjb21tYW5kIGNyZWF0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgU2Vzc2lvbiB2YXJpYWJs ZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2Vz cyBpcworICAgY29udHJvbGxlZCB2aWEgdGhlIGNvbW1hbmRzIDxjb21tYW5kPkdSQU5UPC9jb21t YW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPi4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiAgUmV0cmlldmluZworICAgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUg cmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNldCB0bworICAgc29tZXRoaW5nIGVs c2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBj b21tYW5kLgorICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFu c2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCisgICByZWd1bGFyIHZhcmlhYmxlcyBpbiBw cm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2 YXJpYWJsZXMgYXJlIHJldHJpZXZlZCBieSB0aGUgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPgor ICAgY29tbWFuZC4gIFRoZWlyIHZhbHVlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFuZD5MRVQ8L2Nv bW1hbmQ+IGNvbW1hbmQuCisgIDwvcGFyYT4KKworICA8bm90ZT4KKyAgIDxwYXJhPgorICAgIFNl c3Npb24gdmFyaWFibGVzIGNhbiBiZSA8cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBvdGhlciBp ZGVudGlmaWVycy4KKyAgICBGb3IgZGV0YWlscywgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNz aW9uLXZhcmlhYmxlcyIvPi4KKyAgIDwvcGFyYT4KKyAgPC9ub3RlPgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVs aXN0PgorCisgICA8dmFybGlzdGVudHJ5ICBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWlmLW5vdC1l eGlzdHMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xpdGVyYWw+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJy b3IgaWYgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMuIEEgbm90aWNlIGlzIGlzc3VlZCBpbgorICAg ICAgdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtbmFtZSI+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUs IG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kYXRhX3R5cGUiPgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlv bmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIGRhdGEgdHlwZSBvZiB0aGUgc2Vzc2lvbgor ICAgICAgdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1jb2xs YXRlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5DT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248 L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5DT0xMQVRFPC9saXRlcmFsPiBjbGF1c2UgYXNzaWducyBh IGNvbGxhdGlvbiB0byB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgKHdoaWNoIG11c3QgYmUg b2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZSkuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgdGhl IGRhdGEgdHlwZSdzIGRlZmF1bHQgY29sbGF0aW9uIGlzIHVzZWQuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPk5vdGVzPC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFVzZSB0aGUgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFu ZCB0byByZW1vdmUgYSBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBDcmVhdGUgYW4gZGF0ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVy YWw+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0 aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklB QkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJp bmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwv bWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNWJkYjM1NjBmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDExNyBAQAorPCEtLQorZG9jL3NyYy9zZ21s L3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisK KzxyZWZlbnRyeSBpZD0ic3FsLWRyb3B2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwt ZHJvcHZhcmlhYmxlIj4KKyAgPHByaW1hcnk+RFJPUCBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgIDxzZWNvbmRhcnk+cmVtb3Zpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIFZBUklBQkxFPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExh bmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1l ZGl2PgorICA8cmVmbmFtZT5EUk9QIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5y ZW1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgVkFSSUFCTEUgWyBJRiBFWElTVFMg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gcmVtb3ZlcyBhIHNlc3Npb24g dmFyaWFibGUuCisgICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIG9ubHkgYmUgcmVtb3ZlZCBieSBp dHMgb3duZXIgb3IgYSBzdXBlcnVzZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4K KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93 IGFuIGVycm9yIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0LiBBIG5vdGlj ZSBpcworICAgICAgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxs eSBzY2hlbWEtcXVhbGlmaWVkLCBvZiBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQg ZGVwZW5kIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChzdWNoIGFzCisgICAgICB2aWV3cyksIGFu ZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAg IChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBp ZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlzCisgICAgICB0aGUgZGVmYXVsdC4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92 YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKworPHByb2dyYW1saXN0aW5nPgorRFJPUCBWQVJJ QUJMRSB2YXIxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHBy b2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgor CisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZz ZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5OTlmNjU3ZDVjMC4uNzhm ZjEwZmNmNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKQEAgLTEwMSw2ICsxMDEsMTIgQEAgR1JBTlQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gVE8gPHJlcGxhY2UKICAgICBbIFdJVEggeyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSB7IE9Q VElPTiB8IFRSVUUgfCBGQUxTRSB9IF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KIAorR1JB TlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklB QkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAg ICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgVE8gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFss IC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisK IDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lm aWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3Jldm9rZS5zZ21sCmluZGV4IDhkZjQ5MjI4MWExLi42MjZjMDIzMWQwZCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9r ZS5zZ21sCkBAIC0xMzcsNiArMTM3LDEzIEBAIFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklUIHwg U0VUIH0gT1BUSU9OIEZPUiBdCiAgIHwgQ1VSUkVOVF9ST0xFCiAgIHwgQ1VSUkVOVF9VU0VSCiAg IHwgU0VTU0lPTl9VU0VSCisKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsgeyBT RUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBW QVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0K KyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZST00geyBb IEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFj ZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwv c3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGZmODVh Y2U4M2ZjLi4yNTU3OGYzOTQ2YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtNzUsNiArNzUsNyBAQAog ICAgJmFsdGVyVHlwZTsKICAgICZhbHRlclVzZXI7CiAgICAmYWx0ZXJVc2VyTWFwcGluZzsKKyAg ICZhbHRlclZhcmlhYmxlOwogICAgJmFsdGVyVmlldzsKICAgICZhbmFseXplOwogICAgJmJlZ2lu OwpAQCAtMTI3LDYgKzEyOCw3IEBACiAgICAmY3JlYXRlVHlwZTsKICAgICZjcmVhdGVVc2VyOwog ICAgJmNyZWF0ZVVzZXJNYXBwaW5nOworICAgJmNyZWF0ZVZhcmlhYmxlOwogICAgJmNyZWF0ZVZp ZXc7CiAgICAmZGVhbGxvY2F0ZTsKICAgICZkZWNsYXJlOwpAQCAtMTc1LDYgKzE3Nyw3IEBACiAg ICAmZHJvcFR5cGU7CiAgICAmZHJvcFVzZXI7CiAgICAmZHJvcFVzZXJNYXBwaW5nOworICAgJmRy b3BWYXJpYWJsZTsKICAgICZkcm9wVmlldzsKICAgICZlbmQ7CiAgICAmZXhlY3V0ZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9n L01ha2VmaWxlCmluZGV4IDE1ODlhNzVmZDUzLi43YTkwZmNmYzQ1NyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlCkBAIC00NSw2ICs0NSw3IEBAIE9CSlMgPSBcCiAJcGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vi c2NyaXB0aW9uLm8gXAogCXBnX3R5cGUubyBcCisJcGdfdmFyaWFibGUubyBcCiAJc3RvcmFnZS5v IFwKIAl0b2FzdGluZy5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hr LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGE0NGNjZWUzYjY4Li42OTY4 YjFlNmViZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJs ZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5k cy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC0yOTAs NiArMjkxLDkgQEAgcmVzdHJpY3RfYW5kX2NoZWNrX2dyYW50KGJvb2wgaXNfZ3JhbnQsIEFjbE1v ZGUgYXZhaWxfZ29wdGlvbnMsIGJvb2wgYWxsX3ByaXZzLAogCQljYXNlIE9CSkVDVF9QQVJBTUVU RVJfQUNMOgogCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FM TF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBub3QgcmVh Y2hlZCwgYnV0IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTUzNCw2ICs1MzgsMTAgQEAgRXhl Y3V0ZUdyYW50U3RtdChHcmFudFN0bXQgKnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9B TExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcGFyYW1ldGVyIik7CiAJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAo aW50KSBzdG10LT5vYmp0eXBlKTsKQEAgLTYzOSw2ICs2NDcsOSBAQCBFeGVjR3JhbnRTdG10X29p ZHMoSW50ZXJuYWxHcmFudCAqaXN0bXQpCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJ CQlFeGVjR3JhbnRfUGFyYW1ldGVyKGlzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIFZhcmlhYmxlUmVsYXRpb25JZCwg QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUsIE5VTEwpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJ IChpbnQpIGlzdG10LT5vYmp0eXBlKTsKQEAgLTgyOSw2ICs4NDAsMTggQEAgb2JqZWN0TmFtZXNU b09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmpuYW1lcywgYm9vbCBpc19ncmFudCkK IAkJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIHBhcmFtZXRlcklkKTsKIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2goY2VsbCwgb2Jq bmFtZXMpCisJCQl7CisJCQkJUmFuZ2VWYXIgICAqdmFydmFyID0gKFJhbmdlVmFyICopIGxmaXJz dChjZWxsKTsKKwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBMb29rdXBWYXJpYWJs ZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxuYW1lLAorCQkJCQkJ CQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcmVsT2lkKTsK KwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXpl ZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBvYmp0eXBlKTsKQEAgLTkxOCw2 ICs5NDEsMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlz dCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJ CQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQl7CisJCQkJCVNj YW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJsZVNjYW5EZXNjIHNj YW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5pdCgma2V5LAorCQkJ CQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJQlRFcXVhbFN0cmF0 ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlk KSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIEFjY2Vzc1No YXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhyZWwsIDEsICZr ZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2NhbiwgRm9yd2FyZFNj YW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlvaWQgPSAoKEZvcm1f cGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2JqZWN0cyA9IGxhcHBl bmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9lbmRzY2FuKHNjYW4p OworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJfQorCQkJCWJy ZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKQEAgLTEwNzcsNiAr MTEyNiwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19TQ0hFTUE7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxp ZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2NoZW1hIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxF OworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBh Y3Rpb24tPm9ianR5cGUpOwpAQCAtMTI2OCw2ICsxMzIxLDEyIEBAIFNldERlZmF1bHRBQ0woSW50 ZXJuYWxEZWZhdWx0QUNMICppYWNscykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJ R0hUU19TQ0hFTUE7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW9i anR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFsbF9wcml2cyAmJiB0 aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlhY2xz LT5vYmp0eXBlKTsKQEAgLTE1MTEsNiArMTU3MCw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNM KE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIERFRkFDTE9CSl9O QU1FU1BBQ0U6CiAJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9TQ0hFTUE7CiAJCQkJYnJlYWs7 CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNU X1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91bGRuJ3QgZ2V0 IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFDTCB0eXBlOiAl ZCIsCkBAIC0xNTcxLDYgKzE2MzMsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9s ZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJBY2xSZWxhdGlv bklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsKIAkJCQlicmVh azsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1 bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFrOwpAQCAtMjgx MCw2ICsyODc1LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlw ZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9u b29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJ CWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24g ZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI5MjEsNiArMjk4OSw5IEBA IGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJ CQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBv d25lciBvZiB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJ CQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIpOwogCQkJCQkJ YnJlYWs7CkBAIC0zMDY5LDYgKzMxNDAsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5cGUgb2JqdHlw ZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlkLAogCQkJcmV0 dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gb2JqZWN0 X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soVmFyaWFi bGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChp bnQpIG9ianR5cGUpOwpAQCAtNDMzNiw2ICs0NDA5LDEwIEBAIGdldF91c2VyX2RlZmF1bHRfYWNs KE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQogCQkJZGVmYWNs b2JqdHlwZSA9IERFRkFDTE9CSl9OQU1FU1BBQ0U7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQli cmVhazsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVu ZGVuY3kuYwppbmRleCAwNDg5Y2JhYmNiOC4uYzlkNjg2NjY1ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCkBAIC02NSwxMiArNjUsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3Rl bXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5k cy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRz LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXF1ZW5jZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTE0NDQsNiArMTQ0 NiwxMCBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdz KQogCQkJUmVtb3ZlUHVibGljYXRpb25CeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7 CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlEcm9wVmFyaWFibGVCeUlkKG9iamVj dC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoKIAkJY2Fz ZSBDb2xsYXRpb25SZWxhdGlvbklkOgogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMmYzZGVkOGEwZTcuLmJmZGI0ZGEzMzAxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKQEAgLTMyLDYgKzMyLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZp bGVzKAogICAncGdfc2hkZXBlbmQuYycsCiAgICdwZ19zdWJzY3JpcHRpb24uYycsCiAgICdwZ190 eXBlLmMnLAorICAncGdfdmFyaWFibGUuYycsCiAgICdzdG9yYWdlLmMnLAogICAndG9hc3Rpbmcu YycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA0M2I3MDc2OTlkNy4uYzQ2NDJiNzVi YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2hhc2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk3MSw2 ICs5NzIsNjcgQEAgUmVsYXRpb25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBib29sICppc19taXNz aW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogVmFyaWFibGVJc1Zpc2libGUKKyAq CQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlz aWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3Vs ZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxl IG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpCit7CisJSGVh cFR1cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFt ZXNwYWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodmFydHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBH RVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCS8qCisJ ICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwgaXQgYWluJ3Qg dmlzaWJsZS4gV2UKKwkgKiBkb24ndCBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg aW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+ dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJjaFBhdGgsIHZh cm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkvKgorCQkgKiBJ ZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2libGU7IGl0IGNv dWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUg ZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9y IGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCQlMaXN0Q2VsbCAgICpsOworCisJCXZpc2libGUgPSBm YWxzZTsKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQlPaWQJCQluYW1l c3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2YXJuYW1l c3BhY2UpCisJCQl7CisJCQkJLyogRm91bmQgaXQgZmlyc3QgaW4gcGF0aCAqLworCQkJCXZpc2li bGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0X3Zhcm5h bWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJCXsKKwkJCQkvKiBGb3VuZCBzb21l dGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisK KwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVybiB2aXNpYmxlOworfQogCiAvKgog ICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI3NCw2ICszMzM2LDY2IEBAIFRTQ29uZmlnSXNWaXNp YmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0K IAorLyoKKyAqIFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBv c3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJu cyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQK K0xvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2 YXJuYW1lLAorCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCW5hbWVzcGFjZUlkOwor CU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisJTGlzdENlbGwgICAqbDsKKworCWlmIChuc3Bu YW1lKQorCXsKKwkJbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1l LCBtaXNzaW5nX29rKTsKKworCQkvKiBpZiBuc3BuYW1lIGlzIGEga25vd24gbmFtZXNwYWNlLCB0 aGUgdmFyaWFibGUgbXVzdCBiZSB0aGVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJ ZCkpCisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFu dW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwK KwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9CisJZWxz ZQorCXsKKwkJLyogaXRlcmF0ZSBvdmVyIHRoZSBzY2hlbWFzIG9uIHRoZSBzZWFyY2hfcGF0aCAq LworCQlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFy Y2hQYXRoKQorCQl7CisJCQluYW1lc3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCXZhcm9p ZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lk LAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJ ZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZCkpCisJ CQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIU9pZElzVmFsaWQodmFyb2lkKSAmJiAhbWlzc2lu Z19vaykKKwl7CisJCWlmIChuc3BuYW1lKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCW5zcG5hbWUsIHZhcm5hbWUp KSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2YXJuYW1lKSkpOworCX0KKworCXJldHVybiB2YXJvaWQ7 Cit9CiAKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUKQEAgLTUwNzUsMyArNTE5Nywx NCBAQCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVU VVJOX0JPT0woaXNPdGhlclRlbXBOYW1lc3BhY2Uob2lkKSk7CiB9CisKK0RhdHVtCitwZ192YXJp YWJsZV9pc192aXNpYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VU QVJHX09JRCgwKTsKKworCWlmICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKFZBUklBQkxFT0lELCBP YmplY3RJZEdldERhdHVtKG9pZCkpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJO X0JPT0woVmFyaWFibGVJc1Zpc2libGUob2lkKSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jCmluZGV4IDg1YTdiN2U2NDFhLi5lZTcwZWVlZWQ0NCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9v YmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Rz X3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTYzNiw2ICs2 MzcsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlwZSBPYmplY3RQcm9wZXJ0eVtd ID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJZmFsc2UKIAl9LAorCXsKKwkJInNlc3Npb24g dmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9uSWQsCisJCVZhcmlhYmxlT2lkSW5kZXhJZCwK KwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFNRU5TUCwKKwkJQW51bV9wZ192YXJpYWJsZV9v aWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJu YW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyb3duZXIsCisJCUFudW1fcGdfdmFyaWFi bGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUsCisJCXRydWUKKwl9CiB9OwogCiAvKgpAQCAt ODMxLDYgKzg0Niw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJfSwK IAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9CSkVDVF9TVEFUSVNUSUNfRVhUCisJfSwKKwl7 CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNUX1ZBUklBQkxFCiAJfQogfTsKIApAQCAtODU2 LDYgKzg3NCw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19hdHRy ZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJCWJvb2wgbWlzc2luZ19vayk7CiBz dGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfdHlwZShPYmplY3RUeXBlIG9i anR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAqdHlwZW5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAq b2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVj dF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkJ CQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9h ZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBvYmp0eXBlLApAQCAtMTEyNiw2ICsxMTQ1LDkg QEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAog CQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwogCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAw OwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJYWRkcmVzcyA9IGdl dF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5n X29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBkZWZhdWx0LCB0byBsZXQgY29tcGlsZXIgd2Fy biBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQogCkBAIC0yMDAwLDE2ICsyMDIyLDIwIEBAIGdl dF9vYmplY3RfYWRkcmVzc19kZWZhY2woTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJ CWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCW9ianR5cGVfc3RyID0gInNjaGVtYXMiOwog CQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJb2JqdHlwZV9zdHIgPSAi dmFyaWFibGVzIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJCSBlcnJt c2coInVucmVjb2duaXplZCBkZWZhdWx0IEFDTCBvYmplY3QgdHlwZSBcIiVjXCIiLCBvYmp0eXBl KSwKLQkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIs IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwKKwkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0 eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4i LAogCQkJCQkJCSBERUZBQ0xPQkpfUkVMQVRJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9TRVFVRU5D RSwKIAkJCQkJCQkgREVGQUNMT0JKX0ZVTkNUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfVFlQRSwK LQkJCQkJCQkgREVGQUNMT0JKX05BTUVTUEFDRSkpKTsKKwkJCQkJCQkgREVGQUNMT0JKX05BTUVT UEFDRSwKKwkJCQkJCQkgREVGQUNMT0JKX1ZBUklBQkxFKSkpOwogCX0KIAogCS8qCkBAIC0yMDkz LDYgKzIxMTksMjQgQEAgdGV4dGFycmF5X3RvX3N0cnZhbHVlbGlzdChBcnJheVR5cGUgKmFycikK IAlyZXR1cm4gbGlzdDsKIH0KIAorLyoKKyAqIEZpbmQgdGhlIE9iamVjdEFkZHJlc3MgZm9yIGEg c2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworZ2V0X29iamVjdF9h ZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9iamVj dEFkZHJlc3MgYWRkcmVzczsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2 YXJuYW1lID0gTlVMTDsKKworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgVmFyaWFibGVSZWxh dGlvbklkLCBJbnZhbGlkT2lkKTsKKworCURlY29uc3RydWN0UXVhbGlmaWVkTmFtZShvYmplY3Qs ICZuc3BuYW1lLCAmdmFybmFtZSk7CisJYWRkcmVzcy5vYmplY3RJZCA9IExvb2t1cFZhcmlhYmxl KG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdfb2spOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisK IC8qCiAgKiBTUUwtY2FsbGFibGUgdmVyc2lvbiBvZiBnZXRfb2JqZWN0X2FkZHJlc3MKICAqLwpA QCAtMjI4Nyw2ICsyMzMxLDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6 CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCW9i am5vZGUgPSAoTm9kZSAqKSBuYW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19N RVRIT0Q6CkBAIC0yNDU4LDYgKzI1MDMsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCBy b2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNl IE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNh c2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlp ZiAoIW9iamVjdF9vd25lcmNoZWNrKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJZCwg cm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUs CiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CkBA IC0zNDQ2LDYgKzM0OTIsMzIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2Fz ZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlI ZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9 IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJ CSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAoVmFyaWFibGVJc1Zpc2libGUob2JqZWN0LT5vYmpl Y3RJZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdl dF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJzZXNzaW9uIHZhcmlhYmxlICVzIiksCisJCQkJCQkJCSBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cih2 YXJmb3JtLT52YXJuYW1lKSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJl YWs7CisJCQl9CisKIAkJY2FzZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1 cGxlCXR1cDsKQEAgLTM3OTgsNiArMzg3MCwxNiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25z dCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgXygi ZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzY2hlbWFzIGJlbG9uZ2luZyB0byByb2xlICVzIiks CiAJCQkJCQkJCQkJIHJvbGVuYW1lKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9C Sl9WQVJJQUJMRToKKwkJCQkJCWlmIChuc3BuYW1lKQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lv biB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMgaW4gc2NoZW1hICVzIiksCisJCQkJCQkJ CQkJCSByb2xlbmFtZSwgbnNwbmFtZSk7CisJCQkJCQllbHNlCisJCQkJCQkJYXBwZW5kU3RyaW5n SW5mbygmYnVmZmVyLAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBz ZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAorCQkJCQkJCQkJCQkgcm9s ZW5hbWUpOworCQkJCQkJYnJlYWs7CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQkvKiBzaG91bGRuJ3Qg Z2V0IGhlcmUgKi8KIAkJCQkJCWlmIChuc3BuYW1lKQpAQCAtNDYxNCw2ICs0Njk2LDEwIEBAIGdl dE9iamVjdFR5cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaykKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInRyYW5zZm9y bSIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsK KwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczog JXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KQEAgLTU3MjAsNiArNTgwNiwxMCBAQCBnZXRPYmpl Y3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKIAkJCQkJCQkJCQkJICAgIiBvbiBzY2hlbWFzIik7 CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkJCSAgICIgb24gc2Vzc2lvbiB2 YXJpYWJsZXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCWlmIChvYmpuYW1lKQpAQCAt NTk2MCw2ICs2MDUwLDMzIEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9u SWQ6CisJCQl7CisJCQkJY2hhcgkgICAqc2NoZW1hOworCQkJCWNoYXIJICAgKnZhcm5hbWU7CisJ CQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJCQl0 dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0 LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJ CQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFi bGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29y X3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwkJCQl2YXJuYW1lID0gTmFtZVN0cih2YXJm b3JtLT52YXJuYW1lKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiVzIiwKKwkJ CQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKHNjaGVtYSwgdmFybmFtZSkpOworCisJ CQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHZhcm5h bWUpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwg b2JqZWN0LT5jbGFzc0lkKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKaW5kZXggNzUz YWZiODg0NTMuLjFlYTNkNmRiMDVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCkBAIC00 Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0 ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCkBAIC0xNzE0LDYgKzE3MTUsNyBAQCBzaGRlcFJlYXNzaWduT3duZWRfT3du ZXIoRm9ybV9wZ19zaGRlcGVuZCBzZGVwRm9ybSwgT2lkIG5ld3JvbGUpCiAJCWNhc2UgRGF0YWJh c2VSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKIAkJY2FzZSBUU0RpY3Rp b25hcnlSZWxhdGlvbklkOgorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKIAkJCUFsdGVyT2Jq ZWN0T3duZXJfaW50ZXJuYWwoc2RlcEZvcm0tPmNsYXNzaWQsCiAJCQkJCQkJCQkgIHNkZXBGb3Jt LT5vYmppZCwKIAkJCQkJCQkJCSAgbmV3cm9sZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY2NTEyMTQ0MGE5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0wLDAg KzEsMjU1IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192YXJpYWJsZS5jCisgKgkJ c2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy NCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIK KworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVu Y3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2Uu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCisKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBj aGFyICp2YXJOYW1lLAorCQkJCQkJCQkJIE9pZCB2YXJOYW1lc3BhY2UsCisJCQkJCQkJCQkgT2lk IHZhclR5cGUsCisJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAorCQkJCQkJCQkJIE9pZCB2YXJP d25lciwKKwkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAorCQkJCQkJCQkJIGJvb2wgaWZfbm90 X2V4aXN0cyk7CisKKworLyoKKyAqIENyZWF0ZXMgZW50cnkgaW4gcGdfdmFyaWFibGUgdGFibGUK KyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5cGUsCisJCQkJaW50 MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9uLAor CQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlBY2wJCSAgICp2YXJhY2w7CisJTmFtZURhdGEJ dmFybmFtZTsKKwlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CisJRGF0dW0JCXZhbHVl c1tOYXR0c19wZ192YXJpYWJsZV07CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisJ VHVwbGVEZXNjCXR1cGRlc2M7CisJT2JqZWN0QWRkcmVzcyBteXNlbGYsCisJCQkJcmVmZXJlbmNl ZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOworCU9pZAkJCXZhcmlkOworCisJQXNzZXJ0KHZh ck5hbWUpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck5hbWVzcGFjZSkpOworCUFzc2VydChPaWRJ c1ZhbGlkKHZhclR5cGUpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJPd25lcikpOworCisJcmVs ID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJ LyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRlcy4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcmVh bGx5IHByZXZlbnQKKwkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5p Y2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCisJICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlv biBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KKwkgKi8KKwlpZiAoU2VhcmNoU3lz Q2FjaGVFeGlzdHMyKFZBUklBQkxFTkFNRU5TUCwKKwkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSh2 YXJOYW1lKSwKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKSkpCisJewor CQlpZiAoaWZfbm90X2V4aXN0cykKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxl IFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJCXZhck5hbWUpKSk7CisJ CWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkg ZXhpc3RzIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhj bHVzaXZlTG9jayk7CisKKwkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOworCX0KKworCW1l bXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBz aXplb2YobnVsbHMpKTsKKworCW5hbWVzdHJjcHkoJnZhcm5hbWUsIHZhck5hbWUpOworCisJdmFy aWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdf dmFyaWFibGVfb2lkKTsKKworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAt IDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKKwl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5 cGUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXRE YXR1bSh2YXJUeXBtb2QpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0g PSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKworCXZh cmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCisJ CQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlpZiAodmFyYWNsICE9IE5VTEwpCisJCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gUG9pbnRlckdldERhdHVtKHZhcmFjbCk7CisJ ZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUo dHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJl c3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRk X2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRl bmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJl bGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNl ZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNW YWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElP Tl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0 aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJl bmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMo Jm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNz ZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVu Y3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRl cGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQgaW4gZGVmYXVsdCBBQ0wgKi8KKwlyZWNvcmRE ZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgdmFyT3duZXIs IHZhcmFjbCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLworCXJlY29yZERlcGVu ZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisJaGVhcF9mcmVldHVw bGUodHVwKTsKKworCS8qIFBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IGZ1bmN0aW9uICovCisJ SW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCk7 CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2Vs ZjsKK30KKworLyoKKyAqIENyZWF0ZXMgYSBuZXcgdmFyaWFibGUKKyAqCisgKiBVc2VkIGJ5IENS RUFURSBWQVJJQUJMRSBjb21tYW5kCisgKi8KK09iamVjdEFkZHJlc3MKK0NyZWF0ZVZhcmlhYmxl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCit7CisJT2lk CQkJbmFtZXNwYWNlaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQl0eXBpZDsKKwlp bnQzMgkJdHlwbW9kOworCU9pZAkJCXZhcm93bmVyID0gR2V0VXNlcklkKCk7CisJT2lkCQkJY29s bGF0aW9uOworCU9pZAkJCXR5cGNvbGxhdGlvbjsKKwlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOwor CisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uo c3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CisKKwl0eXBlbmFtZVR5cGVJZEFuZE1vZChw c3RhdGUsIHN0bXQtPnR5cGVOYW1lLCAmdHlwaWQsICZ0eXBtb2QpOworCisJLyogRGlzYWxsb3cg cHNldWRvdHlwZXMgKi8KKwlpZiAoZ2V0X3R5cHR5cGUodHlwaWQpID09IFRZUFRZUEVfUFNFVURP KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZ UEUpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBl ICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSkpKTsKKworCWFjbHJlc3VsdCA9IG9i amVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNB R0UpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yX3R5 cGUoYWNscmVzdWx0LCB0eXBpZCk7CisKKwl0eXBjb2xsYXRpb24gPSBnZXRfdHlwY29sbGF0aW9u KHR5cGlkKTsKKworCWlmIChzdG10LT5jb2xsQ2xhdXNlKQorCQljb2xsYXRpb24gPSBMb29rdXBD b2xsYXRpb24ocHN0YXRlLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+Y29sbG5hbWUsCisJ CQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbik7CisJZWxzZQorCQljb2xsYXRpb24g PSB0eXBjb2xsYXRpb247OworCisJLyogQ29tcGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRv IGFuIHVuY29sbGF0YWJsZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAh T2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQgYnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkp LAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2Nh dGlvbikpKTsKKworCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5y ZWxuYW1lLAorCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJ CSAgIHR5cG1vZCwKKwkJCQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJ CQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBm b3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFy aWFibGUiLAorCQkgc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsK KworCS8qIFdlIHdhbnQgU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nlc3MgdG8gc2VlIHRo ZSBjYXRhbG9nIGNoYW5nZXMuICovCisJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCXJl dHVybiB2YXJpYWJsZTsKK30KKworLyoKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQgcmVn aXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgorICovCit2b2lk CitEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKK3sKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1 cGxlCXR1cDsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNs dXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0 SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsK KworCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CisKKwlSZWxlYXNlU3lz Q2FjaGUodHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvYWx0ZXIuYwppbmRleCA0Zjk5ZWJiNDQ3MC4uNjNmYTk5ZmFkMzQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv YWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC0xMzksNiArMTQwLDEwIEBA IHJlcG9ydF9uYW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUs IE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9 IGdldHRleHRfbm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBl eGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxh dGlvbklkOgorCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0 ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVt YSBcIiVzXCIiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3Vw cG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDE4LDYg KzQyMyw3IEBAIEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNU X1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9T VUJTQ1JJUFRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFk ZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpAQCAtNTYxLDYgKzU2Nyw3IEBA IEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAog CQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQlj YXNlIE9CSkVDVF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJ CQlSZWxhdGlvbgljYXRhbG9nOwogCQkJCVJlbGF0aW9uCXJlbGF0aW9uOwpAQCAtNjQ1LDYgKzY1 Miw3IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJZCwgT2lkIG9iamlkLCBP aWQgbnNwT2lkLAogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNUZW1w bGF0ZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgorCQljYXNlIFZhcmlh YmxlUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCkBAIC04NzUsNiAr ODgzLDcgQEAgRXhlY0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10ICpzdG10KQogCQljYXNl IE9CSkVDVF9UQUJMRVNQQUNFOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2Ug T0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJ CQkJUmVsYXRpb24JcmVsYXRpb247CiAJCQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMKaW5kZXggODVlZWM3ZTM5NDcuLjNjY2UxN2U5MmFmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMKQEAgLTQ3Niw2ICs0NzYsMTAgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBp bmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QpCiAJCQltc2cgPSBnZXR0ZXh0X25v b3AoInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKIAkJCW5h bWUgPSBzdHJWYWwob2JqZWN0KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCW1zZyA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QsIHNraXBwaW5nIik7CisJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShM aXN0LCBvYmplY3QpKTsKKwkJCWJyZWFrOwogCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2Fz ZSBPQkpFQ1RfREFUQUJBU0U6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXgg N2E1ZWQ2Yjk4NTAuLjZkNDFhYTdlYzNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5jCkBAIC0yMTU2LDYgKzIxNTYsOCBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9UWVBF OgogCQkJcmV0dXJuICJUWVBFIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4g IlZBUklBQkxFIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNl IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0yMjM5 LDYgKzIyNDEsOCBAQCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0 eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFUyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQly ZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklB QkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpF Q1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMKaW5kZXggNTYwNzI3M2JmOWYuLmMwMjZhYjVkY2I4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2Jq ZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1Rf VFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKaW5kZXggMGIyYTUyNDYzZjEuLmYzNTY0ZTYwMTczIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKQEAgLTY3MjMsNiArNjcyNCw3IEBAIEFUVHlwZWRUYWJs ZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNt ZCwKICAqIChwb3NzaWJseSBuZXN0ZWQgc2V2ZXJhbCBsZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUg dHlwZXMsIGFycmF5cywgZXRjISkuCiAgKiBFdmVudHVhbGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFn YXRlIHRoZSBjaGVjayBvciByZXdyaXRlIG9wZXJhdGlvbgogICogaW50byBzdWNoIHRhYmxlcywg YnV0IGZvciBub3csIGp1c3QgZXJyb3Igb3V0IGlmIHdlIGZpbmQgYW55LgorICogQWxzbywgY2hl Y2sgaWYgInR5cGVPaWQiIGlzIHVzZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFibGUu CiAgKgogICogQ2FsbGVyIHNob3VsZCBwcm92aWRlIGVpdGhlciB0aGUgYXNzb2NpYXRlZCByZWxh dGlvbiBvZiBhIHJvd3R5cGUsCiAgKiBvciBhIHR5cGUgbmFtZSAobm90IGJvdGgpIGZvciB1c2Ug aW4gdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFueS4KQEAgLTY3ODYsNiArNjc4OCw0NSBAQCBmaW5k X2NvbXBvc2l0ZV90eXBlX2RlcGVuZGVuY2llcyhPaWQgdHlwZU9pZCwgUmVsYXRpb24gb3JpZ1Jl bGF0aW9uLAogCQkJY29udGludWU7CiAJCX0KIAorCQkvKiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1 c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwZ19kZXBlbmQt PmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJCQlPaWQJCQl2YXJpZCA9IHBn X2RlcGVuZC0+b2JqaWQ7CisKKwkJCWlmIChvcmlnVHlwZU5hbWUpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJ CSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlvcmlnVHlwZU5hbWUsCisJCQkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwK KwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlm IChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBF KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVj YXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9u YW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlv bi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGZvcmVpZ24gdGFibGUgXCIlc1wiIGJlY2F1c2Ug c2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkJCSBvcmlnUmVsYXRpb24t PnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlv bi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNz aW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKworCQkJY29udGludWU7CisJCX0KKwogCQkvKiBFbHNl LCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHJlbGF0aW9ucyAqLwogCQlpZiAocGdfZGVw ZW5kLT5jbGFzc2lkICE9IFJlbGF0aW9uUmVsYXRpb25JZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggYTA0M2ZkNGM2NjkuLjNmMmM1OTBjZTMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUzLDYg KzUzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdyYW1wYXJzZS5oIgpAQCAtMjk1 LDggKzI5Niw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCUNvbnN0cmFpbnRzU2V0U3Rt dCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQKIAkJQ3JlYXRlRG9tYWluU3Rt dCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBDcmVhdGVPcENsYXNzU3RtdAog CQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQgQ3JlYXRlUExhbmdTdG10Ci0J CUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3Rt dCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2 ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVT ZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQgQ3JlYXRlU3RhdHNTdG10CisJ CUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3JlYXRlRm9yZWlnblNlcnZlclN0 bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3NlcnRpb25TdG10IENyZWF0ZVRy YW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRUcmlnU3RtdAogCQlDcmVhdGVV c2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9sZVN0bXQgQ3JlYXRlUG9saWN5 U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQgRGVmaW5lU3RtdCBEZWxldGVT dG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzkwLDggKzc5MSw4IEBAIHN0YXRpYyBOb2RlICpt YWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2Rl ICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJT05BTCBVTkNPTU1JVFRFRCBV TkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElTVEVOIFVOTE9HR0VEIFVOVElM IFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZB TFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJPU0UgVkVSU0lPTl9Q IFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZB TFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFCTEUgVkFSSUFCTEVTCisJVkFSSUFESUMgVkFSWUlO RyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxFCiAKIAlXSEVOIFdIRVJFIFdI SVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JLIFdSQVBQRVIgV1JJVEUK IApAQCAtMTA2MSw2ICsxMDYyLDcgQEAgc3RtdDoKIAkJCXwgQ3JlYXRlUG9saWN5U3RtdAogCQkJ fCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3RtdAorCQkJfCBDcmVhdGVTZXNz aW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENyZWF0ZVN0bXQKIAkJCXwgQ3Jl YXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTYwNSw2ICsxNjA3LDcgQEAgc2NoZW1hX3N0bXQ6CiAJ CQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAogCQkJfCBWaWV3U3RtdAorCQkJfCBD cmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTIwMiw2ICs1MjA1LDM0IEBAIGNyZWF0 ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFSSUFCTEUgdmFybmFtZSBbQVNdIHR5 cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0ZVNlc3Npb25WYXJTdG10Ogor CQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5v ZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQzOworCQkJCQlu LT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBu OworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVh dGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJ CQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29s bENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0g dHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9u IF0KQEAgLTcwMDYsNiArNzAzNyw3IEBAIG9iamVjdF90eXBlX2FueV9uYW1lOgogCQkJfCBURVhU X1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVDVF9UU0RJQ1RJT05BUlk7IH0KIAkJ CXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0gT0JKRUNUX1RTVEVNUExBVEU7IH0K IAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJeyAkJCA9IE9CSkVDVF9UU0NPTkZJ R1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7 IH0KIAkJOwogCiAvKgpAQCAtNzg4Miw2ICs3OTE0LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJ CQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgVkFSSUFCTEUgcXVh bGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0 ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFDTF9U QVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQlu LT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IEFMTCBUQUJMRVMgSU5fUCBT Q0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQg KikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC03OTI3LDYgKzc5NjcsMTQgQEAgcHJp dmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJCQkkJCA9IG47CiAJCQkJfQor CQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJp dlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwor CQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1NDSEVNQTsKKwkJCQkJbi0+b2Jq dHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQ1OworCQkJCQkkJCA9IG47 CisJCQkJfQogCQk7CiAKIApAQCAtODEyNCw2ICs4MTcyLDcgQEAgZGVmYWNsX3ByaXZpbGVnZV90 YXJnZXQ6CiAJCQl8IFNFUVVFTkNFUwkJeyAkJCA9IE9CSkVDVF9TRVFVRU5DRTsgfQogCQkJfCBU WVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwgU0NIRU1BUwkJeyAkJCA9IE9CSkVD VF9TQ0hFTUE7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJ CTsKIAogCkBAIC05OTA2LDYgKzk5NTUsMjQgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRF IGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFS SUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4g PSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJ QUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld25hbWUgPSAk NjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJ CQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFueV9uYW1lIFJFTkFNRSBUTyBu YW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJ CQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChO b2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0 cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogb3B0X2NvbHVtbjogQ09M VU1OCkBAIC0xMDI2Nyw2ICsxMDMzNCwyNCBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJ CW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJ CXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlB bHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQp OworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3Qg PSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDY7CisJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJ QUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFs dGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7 CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9 IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19v ayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKQEAgLTEwNTQ4LDYgKzEwNjMzLDE0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRF UiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJ CQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwg QUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9sZVNwZWMKKwkJCQl7CisJCQkJCUFs dGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0bXQpOworCQkJCQluLT5vYmpl Y3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsK KwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7 CiAKIApAQCAtMTc4NzgsNiArMTc5NzEsOCBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZB TElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCisJCQl8IFZBUklBQkxFCisJCQl8 IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0x ODUzMyw2ICsxODYyOCw4IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJ fCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJ CXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJTSU9OX1AKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCmluZGV4IGQ1YzJiMmZmMGIwLi4yZmJhOTBjOTVhMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMDcsNiArMTA3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlM aXN0CSAgICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0ZW1zICovCiAJTGlzdAkgICAqdHJp Z2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwogCUxpc3QJICAgKmdyYW50czsJCQkv KiBHUkFOVCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxlczsJCS8qIENSRUFURSBWQVJJQUJM RSBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsKIAogCkBAIC0zOTY2LDYgKzM5 NjcsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0 cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5kZXhlcyA9IE5JTDsKIAljeHQudHJp Z2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwljeHQudmFyaWFibGVzID0gTklMOwog CiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEg ZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpAQCAtNDAzNCw2ICs0MDM2LDE1IEBAIHRyYW5zZm9ybUNy ZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hl bWFOYW1lKQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4dC5ncmFudHMsIGVsZW1lbnQpOwog CQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJeworCQkJ CQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIGVs ZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2NoZW1hbmFtZSwgJmVscC0+dmFyaWFi bGUtPnNjaGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVzID0gbGFwcGVuZChjeHQudmFyaWFi bGVzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkJIChpbnQpIG5vZGVU YWcoZWxlbWVudCkpOwpAQCAtNDA0Nyw2ICs0MDU4LDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1h U3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJ cmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5kZXhlcyk7CiAJcmVzdWx0ID0gbGlz dF9jb25jYXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJl c3VsdCwgY3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmFy aWFibGVzKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IGZhNjZiODAx N2VkLi5jZThkYjdjZGE0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK KysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgpAQCAtMTgyLDYgKzE4 Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkK IAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgogCQlj YXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10Ogog CQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0YXRzU3RtdDoKIAkJY2Fz ZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg2LDYgKzEzODgsMTAgQEAgUHJvY2Vzc1V0aWxpdHlTbG93 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVh dGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3JlYXRlVmFyaWFibGUocHN0YXRlLCAo Q3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJCS8q CiAJCQkJICogKioqKioqKioqKioqKiBvYmplY3QgY3JlYXRpb24gLyBkZXN0cnVjdGlvbiAqKioq KioqKioqKioqKgogCQkJCSAqLwpAQCAtMjMzOCw2ICsyMzQ0LDkgQEAgQWx0ZXJPYmplY3RUeXBl Q29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19F WFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfU1RBVElTVElDUzsKIAkJCWJyZWFrOworCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9WQVJJQUJMRTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQlicmVhazsKQEAg LTI2NDYsNiArMjY1NSw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJ CWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJ U1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQl0YWcg PSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJ dGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0zMjIyLDYgKzMyMzQsMTAgQEAgQ3JlYXRl Q29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRf Q3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX1ZBUklBQkxFOwor CQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9h Y2wuYwppbmRleCBkN2IzOTE0MGIzZC4uNWY4MGFmNGY1ZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKQEAg LTg1MCw2ICs4NTAsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25l cklkKQogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJCQlvd25lcl9kZWZhdWx0 ID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOworCQkJb3duZXJf ZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9i anR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KQEAgLTk0Nyw2ICs5NTEsOSBAQCBhY2xkZWZhdWx0X3NxbChQR19GVU5DVElP Tl9BUkdTKQogCQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfVFlQRTsKIAkJCWJyZWFr OworCQljYXNlICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgYWJi cmV2aWF0aW9uOiAlYyIsIG9ianR5cGVjKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNo ZS5jCmluZGV4IDQ4YTI4MGQwODliLi4yZWVkOTQ4OWY5ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgInV0aWxzL2FycmF5LmgiCkBAIC0zNzE0LDMgKzM3MTUsMTE1IEBAIGdldF9zdWJzY3JpcHRp b25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwog fQorCisvKgkJCQktLS0tLS0tLS0tIFBHX1ZBUklBQkxFIENBQ0hFIC0tLS0tLS0tLS0JCQkJICov CisKKy8qCisgKiBnZXRfdmFybmFtZV92YXJpZAorICoJCUdpdmVuIG5hbWUgYW5kIG5hbWVzcGFj ZSBvZiB2YXJpYWJsZSwgbG9vayB1cCB0aGUgT0lELgorICovCitPaWQKK2dldF92YXJuYW1lX3Zh cmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpCit7CisJcmV0dXJuIEdl dFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJ CQkJICAgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1 bSh2YXJuYW1lc3BhY2UpKTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUK KyAqCQlSZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUgbmFtZSBvZiBhIGdpdmVuIHNlc3Np b24gdmFyaWFibGUuCisgKi8KK2NoYXIgKgorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQg dmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJ Y2hhcgkgICAqdmFybmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkp CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHVwKTsKKworCXZhcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOwor CisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZTsKK30KKworLyoKKyAq IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZQorICoJCVJldHVybnMgdGhlIHBnX25hbWVz cGFjZSBPSUQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor T2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQoreworCUhlYXBU dXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFj ZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lc3BhY2Ug PSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJl dHVybiB2YXJuYW1lc3BhY2U7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBn aXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5 cGUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCU9pZAkJCXZhcnR5cGU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVP SUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHR1cCk7CisKKwl2YXJ0eXBlID0gdmFyZm9ybS0+dmFydHlwZTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworCisJcmV0dXJuIHZhcnR5cGU7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0 eXBlLCB0eXBtb2QgYW5kIGNvbGxpZCBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAq Lwordm9pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2YXJp ZCwgT2lkICp0eXBpZCwgaW50MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQlPaWQgKmNvbGxpZCkKK3sK KwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCSp0eXBpZCA9IHZhcmZvcm0tPnZh cnR5cGU7CisJKnR5cG1vZCA9IHZhcmZvcm0tPnZhcnR5cG1vZDsKKwkqY29sbGlkID0gdmFyZm9y bS0+dmFyY29sbGF0aW9uOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Cit9CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5k ZXggYzMyM2I1YmQzZDkuLjQwNzlhZDYwM2FjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0yNDcsNiArMjQ3LDkg QEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19s b2dfaW5mbygicmVhZGluZyBzdWJzY3JpcHRpb24gbWVtYmVyc2hpcCBvZiB0YWJsZXMiKTsKIAln ZXRTdWJzY3JpcHRpb25UYWJsZXMoZm91dCk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyB2YXJp YWJsZXMiKTsKKwlnZXRWYXJpYWJsZXMoZm91dCk7CisKIAlmcmVlKGluaGluZm8pOwkJCQkvKiBu b3QgbmVlZGVkIGFueSBsb25nZXIgKi8KIAogCSpudW1UYWJsZXNQdHIgPSBudW1UYWJsZXM7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMKaW5kZXggNTY0OTg1OWFhMWUuLjUwZGU1ZDBlYTI5IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGls cy5jCkBAIC01MTEsNiArNTExLDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VM RUNUIik7CiAJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKIAl9CisJZWxzZSBpZiAoc3Ry Y21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlZBUklBQkxF UyIpID09IDApCisJeworCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CisJCUNPTlZFUlRf UFJJVigndycsICJVUERBVEUiKTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmgKaW5kZXggZmJmNWYxYzUxNWUuLmU4MWNmZGUyNzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0x MzMsMTIgKzEzMywxNCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlz ZWxGdW5jdGlvbjsKIAlpbnQJCQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJ CXNlbFZhcmlhYmxlOwogCVNpbXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJp bmdMaXN0IGZ1bmN0aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlT aW1wbGVTdHJpbmdMaXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRy aWdnZXJOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5n TGlzdCB2YXJpYWJsZU5hbWVzOwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1z OwkJLyogcGFyYW1ldGVycyB0byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuYwppbmRleCA4YzIwYzI2M2M0Yi4uNmYwMTJhMWI1NTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTMwOTgsNiArMzA5OCwxNCBAQCBfdG9jRW50cnlSZXF1 aXJlZChUb2NFbnRyeSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZlSGFuZGxlICpB SCkKIAkJCQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdnZXJOYW1lcywg dGUtPnRhZykpCiAJCQkJCXJldHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKHRlLT5k ZXNjLCAiVkFSSUFCTEUiKSA9PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2VsVmFyaWFibGUp CisJCQkJCXJldHVybiAwOworCQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhlYWQgIT0gTlVM TCAmJgorCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFyaWFibGVOYW1l cywgdGUtPnRhZykpCisJCQkJCXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJCXJldHVybiAw OwogCQl9CkBAIC0zNjQ3LDYgKzM2NTUsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBC dWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFS Q0ggRElDVElPTkFSWSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBDT05G SUdVUkFUSU9OIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAwIHx8CisJCXN0 cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVklFVyIpID09 IDAgfHwKIAkvKiBub24tc2NoZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBl LCAiREFUQUJBU0UiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAyYjAyMTQ4NTU5Yi4uZDhjNzRm NGUyZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMzI0LDYgKzMyNCw3IEBAIHN0YXRpYyB2b2lkIGR1bXBQ dWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8p Owogc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3Qg UHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0 aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pOwogc3Rh dGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YlJl bEluZm8gKnN1YnJpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNl KEFyY2hpdmUgKmZvdXQpOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUg KkFILCBQUUV4cEJ1ZmZlciBvdXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lLCBP aWQgZGJvaWQpOwpAQCAtNTMxMyw2ICs1MzE0LDE5MCBAQCBnZXRfbmV4dF9wb3NzaWJsZV9mcmVl X3BnX3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVlcnkpCiAJ cmV0dXJuIG5leHRfcG9zc2libGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJpYWJsZXMK KyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAg ICpyZXM7CisJVmFyaWFibGVJbmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50 CQkJaV9vaWQ7CisJaW50CQkJaV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNlOworCWlu dAkJCWlfdmFydHlwZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJvd25lcjsK KwlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlpX2FjbGRl ZmF1bHQ7CisJaW50CQkJaSwKKwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9u IDwgMTgwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisK KwlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCS8qIEdldCB0aGUgdmFyaWFibGVzIGluIGN1 cnJlbnQgZGF0YWJhc2UuICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNF TEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkgICIgICAgICAgdi52 YXJuYW1lc3BhY2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cuZm9y bWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIKKwkJCQkJ ICAiICAgICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbiAiCisJ CQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKKwkJCQkJICAiICAgICAg ICAgICAgRUxTRSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgor CQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJCQkJCSAgIiAgICAgICBh Y2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgorCQkJCQkgICJGUk9N IHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdf dHlwZSB0ICIKKwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIpOworCisJcmVzID0gRXhl Y3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1 cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFi bGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX3Zhcm5hbWUgPSBQ UWZudW1iZXIocmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJl cywgInZhcm5hbWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBl Iik7CisJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3Zh cmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKworCWlfdmFyb3du ZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFjbCA9IFBRZm51bWJlcihy ZXMsICJ2YXJhY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIocmVzLCAiYWNsZGVmYXVs dCIpOworCisJdmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihWYXJpYWJsZUluZm8p KTsKKworCWZvciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJVHlwZUluZm8gICAqdnR5 cGU7CisKKwkJdmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJQUJMRTsKKwkJdmFyaW5m b1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwg aV90YWJsZW9pZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZhcmluZm9baV0uZG9iaik7 CisJCXZhcmluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3Zhcm5hbWUpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9CisJCQlmaW5kTmFtZXNw YWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3BhY2UpKSk7CisKKwkJdmFy aW5mb1tpXS52YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsK KwkJdmFyaW5mb1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3ZhcnR5cG5hbWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKKwkJdmFyaW5mb1tpXS5k YWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVs dCkpOworCQl2YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2YXJpbmZvW2ldLmRhY2wu aW5pdHByaXZzID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBEbyBub3QgdHJ5IHRvIGR1bXAg QUNMIGlmIG5vIEFDTCBleGlzdHMuICovCisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3Zh cmFjbCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9B Q0w7CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09IDApCisJCQlwZ19sb2df d2FybmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgdG8gYmUgaW52YWxpZCIs CisJCQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyogRGVjaWRlIHdoZXRoZXIg d2Ugd2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tp XS5kb2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lkKHZhcmluZm9baV0udmFy dHlwZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0uZG9iaiwgdnR5cGUtPmRv YmouZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1 ZXJ5KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9u IG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyB2b2lkCitkdW1wVmFy aWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQoreworCUR1 bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFF eHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJY29uc3QgY2hhciAqdmFy dHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBTa2lwIGlmIG5vdCB0byBiZSBk dW1wZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCBkb3B0LT5kYXRhT25seSkKKwkJ cmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQ UUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVt cGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKworCWFwcGVuZFBRRXhwQnVmZmVy KGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBxdWFsdmFybmFtZSk7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJ CSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0 aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29sbCA9IGZpbmRDb2xsYXRpb25C eU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAodmFyaW5m by0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5 KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRvYmouZHVtcElkLAorCQkJCQkg QVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVz cGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93 bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiVkFSSUFC TEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKKwkJCQkJCQkJICAu Y3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRlbHEtPmRh dGEpKTsKKworCS8qIER1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIlZBUklB QkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCXZh cmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVtcElkKTsKKworCS8qIER1bXAg QUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9B Q0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1cChmbXRJZCh2YXJpbmZvLT5k b2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8tPmRvYmouZHVtcElkLCBJbnZh bGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBOVUxMLAorCQkJCXZhcmluZm8t PmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJ JnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOworCX0KKworCWRlc3Ryb3lQUUV4 cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCisJZnJlZShxdWFs dmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBncmFkZV9zZXRfdHlwZV9vaWRz X2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJIFBRRXhwQnVmZmVyIHVwZ3Jh ZGVfYnVmZmVyLApAQCAtOTg3NSw3ICsxMDA2MCw4IEBAIGdldEFkZGl0aW9uYWxBQ0xzKEFyY2hp dmUgKmZvdXQpCiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fVEFCTEUgfHwKIAkJCQkJZG9iai0+ b2JqVHlwZSA9PSBET19QUk9DTEFORyB8fAogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX0ZEVyB8 fAotCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX0ZPUkVJR05fU0VSVkVSKQorCQkJCQlkb2JqLT5v YmpUeXBlID09IERPX0ZPUkVJR05fU0VSVkVSIHx8CisJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9f VkFSSUFCTEUpCiAJCQkJewogCQkJCQlEdW1wYWJsZU9iamVjdFdpdGhBY2wgKmRhb2JqID0gKER1 bXBhYmxlT2JqZWN0V2l0aEFjbCAqKSBkb2JqOwogCkBAIC0xMDQ3NCw2ICsxMDY2MCw5IEBAIGR1 bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJ Y2FzZSBET19TVUJTQ1JJUFRJT05fUkVMOgogCQkJZHVtcFN1YnNjcmlwdGlvblRhYmxlKGZvdXQs IChjb25zdCBTdWJSZWxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fVkFSSUFC TEU6CisJCQlkdW1wVmFyaWFibGUoZm91dCwgKFZhcmlhYmxlSW5mbyAqKSBkb2JqKTsKKwkJCWJy ZWFrOwogCQljYXNlIERPX1BSRV9EQVRBX0JPVU5EQVJZOgogCQljYXNlIERPX1BPU1RfREFUQV9C T1VOREFSWToKIAkJCS8qIG5ldmVyIGR1bXBlZCwgbm90aGluZyB0byBkbyAqLwpAQCAtMTQ5MjMs NiArMTUxMTIsOSBAQCBkdW1wRGVmYXVsdEFDTChBcmNoaXZlICpmb3V0LCBjb25zdCBEZWZhdWx0 QUNMSW5mbyAqZGFjbGluZm8pCiAJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCXR5cGUg PSAiU0NIRU1BUyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQl0 eXBlID0gIlZBUklBQkxFUyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4n dCBnZXQgaGVyZSAqLwogCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBpbiBk ZWZhdWx0IHByaXZpbGVnZXM6ICVkIiwKQEAgLTE4NDMyLDYgKzE4NjI0LDcgQEAgYWRkQm91bmRh cnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQlj YXNlIERPX0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9B VFRBQ0g6CisJCQljYXNlIERPX1ZBUklBQkxFOgogCQkJY2FzZSBET19BVFRSREVGOgogCQkJY2Fz ZSBET19QUk9DTEFORzoKIAkJCWNhc2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDRiMmU1ODcw YTljLi4zNmE2OWEwODMyNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01Miw2ICs1Miw3IEBAIHR5cGVkZWYg ZW51bQogCURPX1RBQkxFLAogCURPX1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAorCURPX1ZB UklBQkxFLAogCURPX0lOREVYLAogCURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VYVCwKQEAg LTY5Miw2ICs2OTMsMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpz cnN1YmxzbjsKIH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8gc3RydWN0 IGlzIHVzZWQgdG8gcmVwcmVzZW50IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVkZWYgc3Ry dWN0IF9WYXJpYWJsZUluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBhYmxlQWNs IGRhY2w7CisJT2lkCQkJdmFydHlwZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCWNoYXIJICAg KnZhcmFjbDsKKwljaGFyCSAgICpydmFyYWNsOworCWNoYXIJICAgKmluaXR2YXJhY2w7CisJY2hh cgkgICAqaW5pdHJ2YXJhY2w7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCWNvbnN0IGNoYXIgKnJv bG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KK30gVmFyaWFibGVJ bmZvOworCiAvKgogICoJY29tbW9uIHV0aWxpdHkgZnVuY3Rpb25zCiAgKi8KQEAgLTc3NSw1ICs3 OTMsNiBAQCBleHRlcm4gdm9pZCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLAogCQkJCQkJCQkgaW50IG51bVRhYmxlcyk7CiBleHRlcm4gdm9p ZCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2Ny aXB0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQpOworZXh0ZXJuIHZvaWQgZ2V0VmFyaWFibGVzKEFy Y2hpdmUgKmZvdXQpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfRFVNUF9IICovCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cF9zb3J0LmMKaW5kZXggNGNiNzU0Y2FhNTUuLmViYjliZjAzN2M5IDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jCkBAIC03OCw2ICs3OCw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBS SU9fRFVNTVlfVFlQRSwKIAlQUklPX0FUVFJERUYsCiAJUFJJT19MQVJHRV9PQkpFQ1QsCisJUFJJ T19WQVJJQUJMRSwKIAlQUklPX1BSRV9EQVRBX0JPVU5EQVJZLAkJLyogYm91bmRhcnkhICovCiAJ UFJJT19UQUJMRV9EQVRBLAogCVBSSU9fU0VRVUVOQ0VfU0VULApAQCAtMTE5LDYgKzEyMCw3IEBA IHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX1RBQkxFXSA9 IFBSSU9fVEFCTEUsCiAJW0RPX1RBQkxFX0FUVEFDSF0gPSBQUklPX1RBQkxFX0FUVEFDSCwKIAlb RE9fQVRUUkRFRl0gPSBQUklPX0FUVFJERUYsCisJW0RPX1ZBUklBQkxFXSA9IFBSSU9fVkFSSUFC TEUsCiAJW0RPX0lOREVYXSA9IFBSSU9fSU5ERVgsCiAJW0RPX0lOREVYX0FUVEFDSF0gPSBQUklP X0lOREVYX0FUVEFDSCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19TVEFUU0VYVCwKQEAgLTE0OTAs NiArMTQ5MiwxMCBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmos IGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUE9TVC1EQVRBIEJPVU5EQVJZICAoSUQg JWQpIiwKIAkJCQkJIG9iai0+ZHVtcElkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19WQVJJQUJM RToKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJWQVJJQUJMRSAlcyAgKElEICVk IE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQp OwogCX0KIAkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAlzbnByaW50ZihidWYsIGJ1ZnNpemUs CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDViY2MyMjQ0ZDU4Li4wZDM3NjVlZWQ0ZiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTc4OSw2ICs3ODksMTYgQEAgbXkgJXRlc3Rz ID0gKAogCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAogCSAgfSwKIAorCSdBTFRFUiBE RUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBT RUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQycKKwkgID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDU2LAorCQljcmVhdGVfc3FsICAgPT4gJ0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9M RSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVC TElDOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBG T1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMg VE8gUFVCTElDO1xFL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2Rh dGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKKwkgIH0sCisKIAkn QUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9e CiAJCQlcUUFMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBXSVRIIFxFCkBAIC0xNjM4 LDYgKzE2NDgsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ09NTUVOVCBPTiBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3MSwK KwkJY3JlYXRlX3NxbCAgID0+ICdDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJs ZTEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIHZhcmlhYmxlXCc7JywKKwkJcmVnZXhwID0+CisJ CSAgcXIvXlxRQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIElTICdjb21t ZW50IG9uIHZhcmlhYmxlJztcRS9tLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQkl ZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSAgICAgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ b25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDT1BZIHRlc3Rf dGFibGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQsCiAJCWNyZWF0ZV9zcWwgPT4gJ0lOU0VS VCBJTlRPIGR1bXBfdGVzdC50ZXN0X3RhYmxlIChjb2wxKSAnCkBAIC0zODk2LDYgKzM5MjMsMjQg QEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFy aWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JF QVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAg ID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyOycsCisJ CXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUx IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1w X3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVu bGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVt cF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92 aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRF IFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpAQCAtNDM1OCw2ICs0NDAzLDI1IEBAIG15ICV0ZXN0 cyA9ICgKIAkJbGlrZSA9PiB7fSwKIAl9LAogCisJJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBk dW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3MywKKwkJY3JlYXRl X3NxbCA9PgorCQkgICdHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxl MSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUdS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIFRPIHJlZ3Jlc3NfZHVt cF90ZXN0X3JvbGU7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJ JWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwK KwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJbm9f cHJpdnMgICAgICAgICAgICAgICAgID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAg PT4gMSwKKwkJfSwKKwl9LAorCiAJJ1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgbWF0dmlldycg PT4gewogCQlyZWdleHAgPT4gcXIvXlxRUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBkdW1wX3Rl c3QubWF0dmlldztcRS9tLAogCQlsaWtlID0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29t bWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCAxODA3ODFlY2QwNS4uMjZhOWEz ZmFjN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYwpAQCAtOTg2LDYgKzk4Niw5IEBAIGV4ZWNfY29tbWFuZF9kKFBzcWxTY2Fu U3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpjbWQpCiAJ CQkJCQlicmVhazsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlICdWJzoJCQkvKiBWYXJpYWJs ZXMgKi8KKwkJCQlzdWNjZXNzID0gbGlzdFZhcmlhYmxlcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2Up OworCQkJCWJyZWFrOwogCQkJY2FzZSAneCc6CQkJLyogRXh0ZW5zaW9ucyAqLwogCQkJCWlmIChz aG93X3ZlcmJvc2UpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5zaW9uQ29udGVudHMocGF0dGVy bik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCmluZGV4IDdjOWExZjIzNGM2Li5hZGY4M2VkMTk3MCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUx NDgsNiArNTE0OCwxMDIgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoK KyAqIFxkVgorICoKKyAqIGxpc3RWYXJpYWJsZXMoKQorICovCitib29sCitsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEg YnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCisJaWYgKHBzZXQuc3ZlcnNp b24gPCAxODAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19sb2dfZXJyb3Io IlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJs ZXMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwK KwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7 CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1 ZiwKKwkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgdi52 YXJuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYu dmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICAoU0VMRUNUIGMu Y29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5 cGUgYnRcbiIKKwkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQu b2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFz IFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3du ZXIiKSk7CisKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIsXG4gICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAidi52YXJhY2wiKTsKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRp b24odi5vaWQsICdwZ192YXJpYWJsZScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9v cCgiRGVzY3JpcHRpb24iKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJ CQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIKKwkJCQkJCSAiXG4gICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gdi52YXJuYW1lc3Bh Y2UiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbldIRVJFIHRydWVcbiIpOwor CWlmICghcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiAgICAgIEFORCBu Lm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICIgICAgICBBTkQgbi5uc3BuYW1l IDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKworCWlmICghdmFsaWRhdGVTUUxOYW1lUGF0 dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJIm4ubnNwbmFtZSIsICJ2 LnZhcm5hbWUiLCBOVUxMLAorCQkJCQkJCQkicGdfY2F0YWxvZy5wZ192YXJpYWJsZV9pc192aXNp YmxlKHYub2lkKSIsCisJCQkJCQkJCU5VTEwsIDMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSwyOyIpOworCisJcmVzID0gUFNRTGV4 ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0 dXJuIGZhbHNlOworCisJLyoKKwkgKiBNb3N0IGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGNv bnRlbnQgdG8gcHJpbnQgYW4gZW1wdHkgdGFibGUgd2hlbgorCSAqIHRoZXJlIGFyZSBubyBtYXRj aGluZyBvYmplY3RzLiAgV2UgaW50ZW50aW9uYWxseSBkZXZpYXRlIGZyb20gdGhhdAorCSAqIGhl cmUsIGJ1dCBvbmx5IGluICFxdWlldCBtb2RlLCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgorCSAq LworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwICYmICFwc2V0LnF1aWV0KQorCXsKKwkJaWYgKHBh dHRlcm4pCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCSBwYXR0ZXJuKTsKKwkJZWxzZQorCQkJcGdfbG9nX2Vy cm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGVzLiIpOworCX0KKwllbHNlCisJ eworCQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCQlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2Yg dmFyaWFibGVzIik7CisJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCQlteW9wdC50 cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCQlteW9wdC5uX3RyYW5zbGF0 ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJCXByaW50UXVlcnko cmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKwl9CisK KwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCiAgKiBcZEZwCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCmlu ZGV4IDI3M2Y5NzQ1MzhlLi40ZTE1YTE4MGVhNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKQEAgLTE0OSw0ICsxNDksNyBA QCBleHRlcm4gYm9vbCBsaXN0T3BGYW1pbHlGdW5jdGlvbnMoY29uc3QgY2hhciAqYWNjZXNzX21l dGhvZF9wYXR0ZXJuLAogLyogXGRsIG9yIFxsb19saXN0ICovCiBleHRlcm4gYm9vbCBsaXN0TGFy Z2VPYmplY3RzKGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxkViAqLworZXh0ZXJuIGJvb2wgbGlzdFZh cmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZhcmJvc2UpOworCiAjZW5kaWYJCQkJ CQkJLyogREVTQ1JJQkVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3Ny Yy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggNmY1OGExMTA3NDguLmJkYzMyN2ZmZTMwIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTI2 NSw2ICsyNjUsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlIRUxQ MCgiICBcXGRUW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGRhdGEgdHlwZXNcbiIpOwogCUhFTFAw KCIgIFxcZHVbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpOwogCUhFTFAwKCIgIFxc ZHZbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgdmlld3NcbiIpOworCUhFTFAwKCIgIFxcZFYgICAg IFtQQVRURVJOXSAgICAgIGxpc3Qgc2Vzc2lvbiB2YXJpYWJsZXNcbiIpOwogCUhFTFAwKCIgIFxc ZHhbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5zaW9uc1xuIik7CiAJSEVMUDAoIiAgXFxk WCAgICAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbmRlZCBzdGF0aXN0aWNzXG4iKTsKIAlIRUxQ MCgiICBcXGR5WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGV2ZW50IHRyaWdnZXJzXG4iKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYwppbmRleCAwMjQ0Njk0NzRkYS4uN2NjMWZjNTcxODggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmMKQEAgLTk2Myw2ICs5NjMsMTMgQEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zv cl90cmlnZ2VyX29mX3RhYmxlID0gewogCS5yZWZuYW1lc3BhY2UgPSAiYzEucmVsbmFtZXNwYWNl IiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl92YXJp YWJsZXMgPSB7CisJLm1pbl9zZXJ2ZXJfdmVyc2lvbiA9IDE4MDAwMCwKKwkuY2F0bmFtZSA9ICJw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiLAorCS52aXNjb25kaXRpb24gPSAicGdfY2F0YWxvZy5w Z192YXJpYWJsZV9pc192aXNpYmxlKHYub2lkKSIsCisJLm5hbWVzcGFjZSA9ICJ2LnZhcm5hbWVz cGFjZSIsCisJLnJlc3VsdCA9ICJ2LnZhcm5hbWUiLAorfTsKIAogLyoKICAqIFF1ZXJpZXMgdG8g Z2V0IGxpc3RzIG9mIG5hbWVzIG9mIHZhcmlvdXMga2luZHMgb2YgdGhpbmdzLCBwb3NzaWJseQpA QCAtMTI4Myw2ICsxMjkwLDcgQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0 ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFCTEUgLi4uICovCiAJeyJV U0VSIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMsIE5VTEwsIE5VTEwsIEtleXdvcmRzX2Zvcl91 c2VyX3RoaW5nfSwKIAl7IlVTRVIgTUFQUElORyBGT1IiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7 IlZBUklBQkxFIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlc30sCiAJ eyJWSUVXIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzfSwKIAl7TlVMTH0J CQkJCQkvKiBlbmQgb2YgbGlzdCAqLwogfTsKQEAgLTE3MjIsNyArMTczMCw3IEBAIHBzcWxfY29t cGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSJcXGRGIiwg IlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAiXFxkaSIsICJcXGRsIiwgIlxcZEwi LAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxkTyIsICJcXGRwIiwgIlxcZFAiLCAiXFxk UGkiLCAiXFxkUHQiLAogCQkiXFxkcmRzIiwgIlxcZHJnIiwgIlxcZFJzIiwgIlxcZFJwIiwgIlxc ZHMiLAotCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJcXGR4IiwgIlxcZFgiLCAi XFxkeSIsCisJCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIs ICJcXGR5IiwgIlxcZFYiLAogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxcZWxpZiIs ICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9zZSIsICJc XGV2IiwKIAkJIlxcZiIsCkBAIC0yMjI0LDYgKzIyMzIsOSBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJCQkJCQkJCSAgIkFMTCIpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNZU1RFTSIsICJTRVQiLCBNYXRjaEFueSkpCiAJ CUNPTVBMRVRFX1dJVEgoIlRPIik7CisJLyogQUxURVIgVkFSSUFCTEUgPG5hbWU+ICovCisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRF X1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CiAJLyogQUxURVIg VklFVyA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWSUVXIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBTFRFUiBDT0xVTU4iLCAiT1dORVIgVE8iLCAiUkVOQU1F IiwgIlJFU0VUIiwgIlNFVCIpOwpAQCAtMjgwNCw3ICsyODE1LDcgQEAgcHNxbF9jb21wbGV0aW9u KGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCQkJICAiUk9VVElORSIs ICJSVUxFIiwgIlNDSEVNQSIsICJTRVFVRU5DRSIsICJTRVJWRVIiLAogCQkJCQkgICJTVEFUSVNU SUNTIiwgIlNVQlNDUklQVElPTiIsICJUQUJMRSIsCiAJCQkJCSAgIlRBQkxFU1BBQ0UiLCAiVEVY VCBTRUFSQ0giLCAiVFJBTlNGT1JNIEZPUiIsCi0JCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJW SUVXIik7CisJCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJBQ0NFU1MiLCAiTUVUSE9EIikpCiAJ CUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiQ09OU1RSQUlOVCIpKQpAQCAtMzU4 MCw2ICszNTkxLDEzIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlFeGNlcHQo IiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRFIFZBUklB QkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNo ZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlD T01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1h dGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBD UkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUg WyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC0zODQzLDYg KzM4NjEsMTIgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIsICJGT1IiLCBN YXRjaEFueSwgIkxBTkdVQUdFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJDQVNDQURF IiwgIlJFU1RSSUNUIik7CiAKKwkvKiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hl cygiRFJPUCIsICJWQVJJQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJQ1Qi KTsKKwogLyogRVhFQ1VURSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUiKSkKIAkJQ09N UExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0ZW1lbnRzKTsK QEAgLTQwNDYsNyArNDA3MCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBp bnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9iamVjdHMgc3VwcG9ydGVkLgogCQkgKi8KIAkJaWYg KEhlYWRNYXRjaGVzKCJBTFRFUiIsICJERUZBVUxUIiwgIlBSSVZJTEVHRVMiKSkKLQkJCUNPTVBM RVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMi LCAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIpOworCQkJQ09NUExFVEVfV0lUSCgiVEFC TEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIs ICJUWVBFUyIsICJTQ0hFTUFTIiwgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJ CQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00MDY4LDcgKzQwOTIsOCBAQCBw c3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJ CQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFC TEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJ CQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZP S0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIs ICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQw NzYsNyArNDEwMSw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiUk9V VElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElOIFNDSEVNQSIsCi0JCQkJCSAg IlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIsCisJCQkJCSAg IlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlR8UkVW T0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVW T0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04i KSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNFUlZFUiIpOwpAQCAtNDExMiw2 ICs0MTM4LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVz cGFjZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVfV0lU SF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBpZiAo VGFpbE1hdGNoZXMoIlZBUklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JB TlQiLCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgoIlRP Iik7CiAJCWVsc2UKQEAgLTQ0MTUsNyArNDQ0Myw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBj aGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAKIC8qIFBSRVBBUkUgeHggQVMgKi8KIAll bHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnksICJBUyIpKQotCQlDT01QTEVURV9X SVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIik7CisJ CUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRF IEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRSQU5TQUNUSU9OIGlzIG1pc3Npbmcg b24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNhY3Rpb24KQEAgLTQ4ODMsNiArNDkx MSw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMpOwogCWVs c2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJc XGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92 YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHgqIikpCiAJCUNPTVBMRVRF X1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0ZW5zaW9ucyk7CiAJZWxzZSBpZiAoVGFp bE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFr ZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5MWE2ZTNmLi41 MDdmMzgwODIxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSw4IEBAIENBVEFMT0df SEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAogCXBnX3B1YmxpY2F0 aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2NyaXB0aW9uX3JlbC5o CisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJsZS5oCiAKIEdFTkVSQVRFRF9I RUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24u YnVpbGQKaW5kZXggZjcwZDFkYWJhNTIuLjZlZWM3OWQyZWVjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24u YnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAncGdfcHVibGlj YXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdfc3Vic2NyaXB0aW9u X3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAjIFRoZSAuZGF0IGZpbGVzIHdlIG5l ZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKaW5kZXggOGQ0MzRkNDhkNTcuLjE4ZWE2YWM4M2E1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkKGNvbnN0IGNo YXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkRXh0ZW5kZWQoY29uc3Qg Y2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBib29sIFR5cGVJc1Zpc2libGUo T2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKTsK KwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0Q2FuZGlkYXRlcyhMaXN0ICpu YW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICphcmduYW1lcywKIAkJCQkJCQkJ CQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksNiArMTcxLDggQEAgZXh0ZXJuIFNl YXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRl eHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNoUGF0aE1hdGNoZXIoU2Vh cmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJy ZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCitleHRlcm4gT2lkCUxv b2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJv b2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAqY29s bG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252ZXJzaW9uX29pZChM aXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlGaW5kRGVmYXVsdENv bnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGluZywgaW50MzIgdG9fZW5jb2RpbmcpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCmluZGV4IGQyNzJjZGYwOGI0Li41MjlkNTNjNmJi NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjgsNiArNjgsNyBAQCBN QUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNwX29i al9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJJ2YnIC8qIGZ1bmN0aW9u ICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUgREVG QUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2RlZmluZSBERUZBQ0xPQkpf VkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RP X0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDA2YjJmNGJhNjZj Li44MzdkOGRmYWUxOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC02NDcyLDYgKzY0NzIs OSBAQAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4g JzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJn dHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0s Cit7IG9pZCA9PiAnOTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUg aW4gc2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScs IHByb2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdi b29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlz aWJsZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50 IHNlc3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3Rl bXBfc2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjM4MTBlMDQwZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z192YXJpYWJsZS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IHBnX3ZhcmlhYmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0 ZW0gY2F0YWxvZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgor ICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQg ZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKyNpZm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNp bmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVz cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgorI2luY2x1ZGUgInV0aWxz L2FjbC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlv bi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192 YXJpYWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KKworCS8q IE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlPaWQJCQl2 YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFt ZURhdGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJs ZSBjbGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFjZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7 CisKKwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9pZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdf YXV0aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCisJaW50MzIJCXZh cnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlP aWQJCQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0 aW9uKTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmll bGRzIHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0J CXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOworCisjZW5kaWYKK30gRm9ybURhdGFfcGdf dmFyaWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNv cnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9m IHRoZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlw ZWRlZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9ybV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9U T0FTVChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BL RVkocGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3Zh cmlhYmxlLCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFy aWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYsIFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBn X3ZhcmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVfb3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykp OworCitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3Rh dGUsCisJCQkJCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CitleHRlcm4gdm9pZCBE cm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCk7CisKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVOQU1F TlNQLCBwZ192YXJpYWJsZV92YXJuYW1lX25zcF9pbmRleCwgOCk7CitNQUtFX1NZU0NBQ0hFKFZB UklBQkxFT0lELCBwZ192YXJpYWJsZV9vaWRfaW5kZXgsIDgpOworCisjZW5kaWYJCQkJCQkJLyog UEdfVkFSSUFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDg1YTYyYjUzOGU1Li44 MGVhNTkyOGVlZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjMwOSw2ICsyMzA5LDcgQEAg dHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQ RSwKIAlPQkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklF VywKIH0gT2JqZWN0VHlwZTsKIApAQCAtMzQyNSw2ICszNDI2LDIxIEBAIHR5cGVkZWYgc3RydWN0 IEFsdGVyU3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3Rh dGlzdGljcyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVt ZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0 ZVNlc3Npb25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJs ZTsJCS8qIHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJ CS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsK Kwlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3Rz ICovCit9IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqCQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggZjdmZTgzNGNmNDUuLmM4ODRjZDVjNDY3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCkBAIC00ODYsNiArNDg2LDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFM SURBVE9SLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1 ZSIsIFZBTFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhbHVlcyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInZhcmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQorUEdfS0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVO UkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9T RSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgK aW5kZXggN2ZkY2VjNmRkOTMuLjk0NjVkZjdiMmZmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAt NjgsNiArNjgsNyBAQCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRS QU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJ R0dFUiwgIkFMVEVSIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0FMVEVSX1RZUEUsICJBTFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0FMVEVSX1VTRVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUs IGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBW QVJJQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklF VywgIkFMVEVSIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FO QUxZWkUsICJBTkFMWVpFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf QkVHSU4sICJCRUdJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAg UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVB VEUgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRF X1RZUEUsICJDUkVBVEUgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX1VTRVJfTUFQUElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJ QUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcs ICJDUkVBVEUgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVB TExPQ0FURSwgIkRFQUxMT0NBVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19ERUFMTE9DQVRFX0FMTCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKQEAgLTE3NSw2ICsxNzcsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAi RFJPUCBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVFJJR0dFUiwgIkRST1AgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9UWVBFLCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19EUk9QX1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBW QVJJQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVX LCAiRFJPUCBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVD VVRFLCAiRVhFQ1VURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VY UExBSU4sICJFWFBMQUlOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggNzMxZDg0 YjJhOTMuLjk4YWFiOTgyMjllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAor KysgYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYg c3RydWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFD TF9VU0FHRXxBQ0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShB Q0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNk ZWZpbmUgQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAK IC8qIG9wZXJhdGlvbiBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRp bHMvbHN5c2NhY2hlLmgKaW5kZXggMjA0NDZmNmY4MzYuLjhhMzY4NGU3MTFmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaApAQCAtMTM0LDYgKzEzNCw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tp bmQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNp ZCk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBl eHRlcm4gT2lkCWdldF9yZWxuYW1lX3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxu YW1lc3BhY2UpOworZXh0ZXJuIE9pZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJu YW1lLCBPaWQgdmFybmFtZXNwYWNlKTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJl bGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBP aWQJZ2V0X3JlbF90eXBlX2lkKE9pZCByZWxpZCk7CkBAIC0yMDYsNiArMjA3LDE0IEBAIGV4dGVy biBjaGFyICpnZXRfcHVibGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gT2lkCWdldF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJv b2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBz dWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKE9pZCB2YXJpZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUo T2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9k X2NvbGxpZChPaWQgdmFyaWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJ CQlpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0 eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRP aWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFu ZCBkb21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5 cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc0ZDlmZjI5OThkLi5jMzM2 ZjY3YTU5NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5 Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CkBAIC0x NTEsMyArMTUxLDIwIEBAIG93bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9XTkVEIEJZIHJl Z3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2Rl cF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVuZGVuY3kgb24g dHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlw ZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB2YXJ0eXBlOworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0VSUk9S OiAgY2Fubm90IGRyb3AgdHlwZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFydHlwZSBkZXBl bmRzIG9uIHR5cGUgdmFyZG9tYWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJv cCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7CitFUlJPUjog IGNhbm5vdCBkcm9wIHR5cGUgdmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHZhcnR5 cGUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2Jq ZWN0cyB0b28uCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZh cnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CmluZGV4IDIxNWViODk5YmUzLi5kOTk1MzMyMTQwMiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVj a2luZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJ Q0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBn X3N1YnNjcmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3Jl bCB7c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Zhcmlh YmxlIHt2YXJ0eXBlfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJp YWJsZSB7dmFybmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNr aW5nIHBnX3ZhcmlhYmxlIHt2YXJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBj aGVja2luZyBwZ192YXJpYWJsZSB7dmFyY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDNiYmU0YzVmOTc0Li5jODkwNjc0OTBm NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01ODI4LDYgKzU4MjgsMzAgQEAg Q09NTUlUOwogIyBmaW5hbCBPTl9FUlJPUl9ST0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsK IERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMi OworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFS SUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRp b24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZp bGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1y dy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAK KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RS T1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZh bGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlm aWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjA0 OSw2ICs2MDczLDEyIEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVz dWNoLm15ZXZ0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVz KTogbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9w ZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lv bi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1Ymxp Yy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2Vz IGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQg ZG90cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5v LnN1Y2guYWNjZXNzLm1ldGhvZCIKIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKQEAgLTYyODMsNiAr NjMxMywxMiBAQCBMaXN0IG9mIHNjaGVtYXMKIC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tCiAoMCByb3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUi CisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwg Q29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIK IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC02NDUyLDYgKzY0ODgsMTIgQEAg aW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIAogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu ZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0t LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdh aW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNh dGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJl bGF0aW9uIgogICAgICAgTGlzdCBvZiByZWxhdGlvbnMKQEAgLTY1ODUsNiArNjYyNywxMiBAQCBM aXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25l ciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykK KwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBx dWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5v dCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudGFibGUucmVsYXRpb24iCkBAIC02NjMyLDYgKzY2ODAsOCBAQCBjcm9zcy1kYXRhYmFzZSBy ZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3Vj aC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAi bm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBc ZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7 CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYWNhNzY2MDQyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMCwwICsxLDU3IEBACitDUkVB VEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5v dCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSBhbnllbGVtZW50CistLSBzaG91 bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIyIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKKy0t IGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50Owor Tk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5n CistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cworLS0gc2hvdWxkIGJlIG9rCitE Uk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJs ZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIx IElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2Ny aXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnOworICAgIG9ial9kZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgc29tZSB2YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tLSBjaGVjayBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBT Q0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSBzdmFydGVzdC52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworUkVWT0tFIEFM TCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7 CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FM VEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcnh4IFNFVCBTQ0hFTUEgcHVibGljOworRFJPUCBWQVJJ QUJMRSBwdWJsaWMudmFyeHg7CitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIKKyAgIElOIFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFUyBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tIGNyZWF0 aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50Owor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1xkVisgc3ZhcnRlc3QudmFyMQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJP UCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQppbmRleCAyNDI5ZWMyYmJhYS4uZWQ2ODkzZDQ3OTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQpAQCAtMTExLDcgKzExMSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGlu ZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5C OiB0ZW1wLnNxbCBkb2VzIGEgcmVjb25uZWN0IHdoaWNoIHRyYW5zaWVudGx5IHVzZXMgMiBjb25u ZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBhcmFsbGVsIGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVz dHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVt cCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFi bGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3 aXRoIHhtbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4g cmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVu Y2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBz ZXNzaW9uX3ZhcmlhYmxlcwogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJh bGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAppbmRleCA4ZDc0ZWQ3MTIy Yy4uNmMxOGI3Zjg0MGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVu Y3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0xMTQs MyArMTE0LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQgQlkg cmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3Nf ZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRlbmN5 IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZh cnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsK K0RST1AgVFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwu c3FsCmluZGV4IDNiM2M2ZjZlMjk0Li5iODBkNTZhMjdhZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwK QEAgLTE1OTEsNiArMTU5MSwxOSBAQCBDT01NSVQ7CiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVO Q1RJT04gcHNxbF9lcnJvcjsKIAorLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYr IHZhcjEKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQg T04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworCiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0 IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBcZEEgbm9uZXN1Y2guaGVhcApAQCAtMTcwMiw2 ICsxNzE1LDkgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRYIG5vbmVzdWNoLnB1Ymxp Yy5mdW5jX2RlcHNfc3RhdAogXGR5IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2 dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1 YmxpYy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCiAKIC0tIGNoZWNrIHRoYXQgZG90cyB3 aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2gu YWNjZXNzLm1ldGhvZCIKQEAgLTE3NDMsNiArMTc1OSw4IEBAIERST1AgRlVOQ1RJT04gcHNxbF9l cnJvcjsKIFxkeCAibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNoLmV4 dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8u c3VjaC52YXJpYWJsZSIKKwogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2Qi CkBAIC0xNzgzLDYgKzE4MDEsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtMTgwNyw2ICsxODI2LDcgQEAgRFJPUCBG VU5DVElPTiBwc3FsX2Vycm9yOwogXGRQIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxkVCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRh YmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4MzIs NiArMTg1Miw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxk VCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUi CiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5k ZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC52YXJpYWJsZSIKIAogLS0gY2hlY2sgXGRyZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSBy ZWdyZXNzX2R1X3JvbGUwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MmRmYjk1YTAyMgot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbApAQCAtMCwwICsxLDYxIEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OworCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0g c2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxF IHZhcjIgQVMgYW55ZWxlbWVudDsKKworLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9Q IFZBUklBQkxFIElGIEVYSVNUUyB2YXIyOworCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFC TEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElG IEVYSVNUUyB2YXIxOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFy aWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAn cGdfdmFyaWFibGUnKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBv cnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg c3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRl cjsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192 YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJP TSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBT RVQgU0NIRU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVS IERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgor ICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1 bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFU RSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisK K1xkVisgc3ZhcnRlc3QudmFyMQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CisKK0RS T1AgU0NIRU1BIHN2YXJ0ZXN0OworCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggM2RlYjYxMTNiODAuLjgzN2U1YjgzYTNmIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNTMzLDYgKzUzMyw3IEBAIENyZWF0ZVJvbGVT dG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVhdGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2Vx U3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQKIENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAog Q3JlYXRlU3RtdENvbnRleHQKQEAgLTg3Miw2ICs4NzMsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJz ZXIKIEZvcm1EYXRhX3BnX3RzX3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9w Z191c2VyX21hcHBpbmcKK0Zvcm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0 dHJpYnV0ZQogRm9ybV9wZ19hZ2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTkzMSw2ICs5MzMsNyBA QCBGb3JtX3BnX3RzX3BhcnNlcgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBG b3JtX3BnX3VzZXJfbWFwcGluZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJs b2NrTnVtYmVyQXJyYXkKIEZyZWVMaXN0RGF0YQpAQCAtMzA2MSw2ICszMDY0LDcgQEAgVmFyU3Ry aW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFyaWFibGUKIFZhcmlhYmxlQXNzaWduSG9vawor VmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQKIFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVT aG93U3RtdAotLSAKMi40NS4yCgo= --000000000000e342c7061e7d37f9--